Merge remote-tracking branch 'upstream/master'

# Conflicts:
#	Cargo.lock
#	src/server/connection.rs
This commit is contained in:
mcfans
2023-11-07 12:13:15 +08:00
166 changed files with 10361 additions and 6739 deletions

View File

@@ -31,8 +31,8 @@ use hbb_common::{
anyhow::{anyhow, Context},
bail,
config::{
Config, LocalConfig, PeerConfig, PeerInfoSerde, Resolution, CONNECT_TIMEOUT, READ_TIMEOUT,
RELAY_PORT,
Config, LocalConfig, PeerConfig, PeerInfoSerde, Resolution, CONNECT_TIMEOUT,
PUBLIC_RS_PUB_KEY, READ_TIMEOUT, RELAY_PORT, RENDEZVOUS_PORT, RENDEZVOUS_SERVERS,
},
get_version_number, log,
message_proto::{option_message::BoolOption, *},
@@ -55,6 +55,7 @@ use scrap::{
};
use crate::{
check_port,
common::input::{MOUSE_BUTTON_LEFT, MOUSE_BUTTON_RIGHT, MOUSE_TYPE_DOWN, MOUSE_TYPE_UP},
is_keyboard_mode_supported,
ui_session_interface::{InvokeUiSession, Session},
@@ -134,6 +135,8 @@ lazy_static::lazy_static! {
static ref TEXT_CLIPBOARD_STATE: Arc<Mutex<TextClipboardState>> = Arc::new(Mutex::new(TextClipboardState::new()));
}
const PUBLIC_SERVER: &str = "public";
#[inline]
#[cfg(not(any(target_os = "android", target_os = "ios")))]
pub fn get_old_clipboard_text() -> &'static Arc<Mutex<String>> {
@@ -219,6 +222,7 @@ impl Client {
conn_type: ConnType,
interface: impl Interface,
) -> ResultType<(Stream, bool, Option<Vec<u8>>)> {
debug_assert!(peer == interface.get_id());
interface.update_direct(None);
interface.update_received(false);
match Self::_start(peer, key, token, conn_type, interface).await {
@@ -245,11 +249,8 @@ impl Client {
// to-do: remember the port for each peer, so that we can retry easier
if hbb_common::is_ip_str(peer) {
return Ok((
socket_client::connect_tcp(
crate::check_port(peer, RELAY_PORT + 1),
CONNECT_TIMEOUT,
)
.await?,
socket_client::connect_tcp(check_port(peer, RELAY_PORT + 1), CONNECT_TIMEOUT)
.await?,
true,
None,
));
@@ -262,12 +263,36 @@ impl Client {
None,
));
}
let (mut rendezvous_server, servers, contained) = crate::get_rendezvous_server(1_000).await;
let other_server = interface.get_lch().read().unwrap().other_server.clone();
let (peer, other_server, key, token) = if let Some((a, b, c)) = other_server.as_ref() {
(a.as_ref(), b.as_ref(), c.as_ref(), "")
} else {
(peer, "", key, token)
};
let (mut rendezvous_server, servers, contained) = if other_server.is_empty() {
crate::get_rendezvous_server(1_000).await
} else {
if other_server == PUBLIC_SERVER {
(
check_port(RENDEZVOUS_SERVERS[0], RENDEZVOUS_PORT),
RENDEZVOUS_SERVERS[1..]
.iter()
.map(|x| x.to_string())
.collect(),
true,
)
} else {
(check_port(other_server, RENDEZVOUS_PORT), Vec::new(), true)
}
};
let mut socket = socket_client::connect_tcp(&*rendezvous_server, CONNECT_TIMEOUT).await;
debug_assert!(!servers.contains(&rendezvous_server));
if socket.is_err() && !servers.is_empty() {
log::info!("try the other servers: {:?}", servers);
for server in servers {
let server = check_port(server, RENDEZVOUS_PORT);
socket = socket_client::connect_tcp(&*server, CONNECT_TIMEOUT).await;
if socket.is_ok() {
rendezvous_server = server;
@@ -423,7 +448,7 @@ impl Client {
conn_type: ConnType,
interface: impl Interface,
) -> ResultType<(Stream, bool, Option<Vec<u8>>)> {
let direct_failures = PeerConfig::load(peer_id).direct_failures;
let direct_failures = interface.get_lch().read().unwrap().direct_failures;
let mut connect_timeout = 0;
const MIN: u64 = 1000;
if is_local || peer_nat_type == NatType::SYMMETRIC {
@@ -484,10 +509,9 @@ impl Client {
}
}
if !relay_server.is_empty() && (direct_failures == 0) != direct {
let mut config = PeerConfig::load(peer_id);
config.direct_failures = if direct { 0 } else { 1 };
log::info!("direct_failures updated to {}", config.direct_failures);
config.store(peer_id);
let n = if direct { 0 } else { 1 };
log::info!("direct_failures updated to {}", n);
interface.get_lch().write().unwrap().set_direct_failure(n);
}
let mut conn = conn?;
log::info!("{:?} used to establish connection", start.elapsed());
@@ -648,7 +672,7 @@ impl Client {
ipv4: bool,
) -> ResultType<Stream> {
let mut conn = socket_client::connect_tcp(
socket_client::ipv4_to_ipv6(crate::check_port(relay_server, RELAY_PORT), ipv4),
socket_client::ipv4_to_ipv6(check_port(relay_server, RELAY_PORT), ipv4),
CONNECT_TIMEOUT,
)
.await
@@ -1017,10 +1041,16 @@ impl VideoHandler {
/// Handle a new video frame.
#[inline]
pub fn handle_frame(&mut self, vf: VideoFrame) -> ResultType<bool> {
pub fn handle_frame(
&mut self,
vf: VideoFrame,
chroma: &mut Option<Chroma>,
) -> ResultType<bool> {
match &vf.union {
Some(frame) => {
let res = self.decoder.handle_video_frame(frame, &mut self.rgb);
let res = self
.decoder
.handle_video_frame(frame, &mut self.rgb, chroma);
if self.record {
self.recorder
.lock()
@@ -1082,6 +1112,7 @@ pub struct LoginConfigHandler {
pub received: bool,
switch_uuid: Option<String>,
pub save_ab_password_to_recent: bool, // true: connected with ab password
pub other_server: Option<(String, String, String)>,
}
impl Deref for LoginConfigHandler {
@@ -1092,16 +1123,6 @@ impl Deref for LoginConfigHandler {
}
}
/// Load [`PeerConfig`] from id.
///
/// # Arguments
///
/// * `id` - id of peer
#[inline]
pub fn load_config(id: &str) -> PeerConfig {
PeerConfig::load(id)
}
impl LoginConfigHandler {
/// Initialize the login config handler.
///
@@ -1114,8 +1135,39 @@ impl LoginConfigHandler {
id: String,
conn_type: ConnType,
switch_uuid: Option<String>,
force_relay: bool,
mut force_relay: bool,
) {
let mut id = id;
if id.contains("@") {
let mut v = id.split("@");
let raw_id: &str = v.next().unwrap_or_default();
let mut server_key = v.next().unwrap_or_default().split('?');
let server = server_key.next().unwrap_or_default();
let args = server_key.next().unwrap_or_default();
let key = if server == PUBLIC_SERVER {
PUBLIC_RS_PUB_KEY
} else {
let mut args_map: HashMap<&str, &str> = HashMap::new();
for arg in args.split('&') {
if let Some(kv) = arg.find('=') {
let k = &arg[0..kv];
let v = &arg[kv + 1..];
args_map.insert(k, v);
}
}
let key = args_map.remove("key").unwrap_or_default();
key
};
// here we can check <id>/r@server
let real_id = crate::ui_interface::handle_relay_id(raw_id).to_string();
if real_id != raw_id {
force_relay = true;
}
self.other_server = Some((real_id.clone(), server.to_owned(), key.to_owned()));
id = format!("{real_id}@{server}");
}
self.id = id;
self.conn_type = conn_type;
let config = self.load_config();
@@ -1130,6 +1182,12 @@ impl LoginConfigHandler {
self.supported_encoding = Default::default();
self.restarting_remote_device = false;
self.force_relay = !self.get_option("force-always-relay").is_empty() || force_relay;
if let Some((real_id, server, key)) = &self.other_server {
let other_server_key = self.get_option("other-server-key");
if !other_server_key.is_empty() && key.is_empty() {
self.other_server = Some((real_id.to_owned(), server.to_owned(), other_server_key));
}
}
self.direct = None;
self.received = false;
self.switch_uuid = switch_uuid;
@@ -1149,8 +1207,9 @@ impl LoginConfigHandler {
}
/// Load [`PeerConfig`].
fn load_config(&self) -> PeerConfig {
load_config(&self.id)
pub fn load_config(&self) -> PeerConfig {
debug_assert!(self.id.len() > 0);
PeerConfig::load(&self.id)
}
/// Save a [`PeerConfig`] into the handler.
@@ -1259,6 +1318,12 @@ impl LoginConfigHandler {
self.save_config(config);
}
pub fn set_direct_failure(&mut self, value: i32) {
let mut config = self.load_config();
config.direct_failures = value;
self.save_config(config);
}
/// Get a ui config of flutter for handler's [`PeerConfig`].
/// Return String if the option is found, otherwise return "".
///
@@ -1411,7 +1476,7 @@ impl LoginConfigHandler {
msg.image_quality = q.into();
n += 1;
} else if q == "custom" {
let config = PeerConfig::load(&self.id);
let config = self.load_config();
let quality = if config.custom_image_quality.is_empty() {
50
} else {
@@ -1705,6 +1770,18 @@ impl LoginConfigHandler {
log::debug!("remove password of {}", self.id);
}
}
if let Some((_, b, c)) = self.other_server.as_ref() {
if b != PUBLIC_SERVER {
config
.options
.insert("other-server-key".to_owned(), c.clone());
}
}
if self.force_relay {
config
.options
.insert("force-always-relay".to_owned(), "Y".to_owned());
}
#[cfg(feature = "flutter")]
{
// sync ab password with PeerConfig password
@@ -1766,8 +1843,14 @@ impl LoginConfigHandler {
let my_id = Config::get_id_or(crate::DEVICE_ID.lock().unwrap().clone());
#[cfg(not(any(target_os = "android", target_os = "ios")))]
let my_id = Config::get_id();
let (my_id, pure_id) = if let Some((id, _, _)) = self.other_server.as_ref() {
let server = Config::get_rendezvous_server();
(format!("{my_id}@{server}"), id.clone())
} else {
(my_id, self.id.clone())
};
let mut lr = LoginRequest {
username: self.id.clone(),
username: pure_id,
password: password.into(),
my_id,
my_name: crate::username(),
@@ -1855,6 +1938,7 @@ pub fn start_video_audio_threads<F, T>(
MediaSender,
Arc<RwLock<HashMap<usize, ArrayQueue<VideoFrame>>>>,
Arc<RwLock<HashMap<usize, usize>>>,
Arc<RwLock<Option<Chroma>>>,
)
where
F: 'static + FnMut(usize, &mut scrap::ImageRgb) + Send,
@@ -1866,6 +1950,9 @@ where
let mut video_callback = video_callback;
let fps_map = Arc::new(RwLock::new(HashMap::new()));
let decode_fps_map = fps_map.clone();
let chroma = Arc::new(RwLock::new(None));
let chroma_cloned = chroma.clone();
let mut last_chroma = None;
std::thread::spawn(move || {
#[cfg(windows)]
@@ -1911,10 +1998,17 @@ where
}
}
if let Some(handler_controller) = handler_controller_map.get_mut(display) {
match handler_controller.handler.handle_frame(vf) {
let mut tmp_chroma = None;
match handler_controller.handler.handle_frame(vf, &mut tmp_chroma) {
Ok(true) => {
video_callback(display, &mut handler_controller.handler.rgb);
// chroma
if tmp_chroma.is_some() && last_chroma != tmp_chroma {
last_chroma = tmp_chroma;
*chroma.write().unwrap() = tmp_chroma;
}
// fps calculation
// The first frame will be very slow
if handler_controller.skip_beginning < 5 {
@@ -1992,6 +2086,7 @@ where
audio_sender,
video_queue_map_cloned,
decode_fps_map,
chroma_cloned,
);
}
@@ -2543,40 +2638,42 @@ pub trait Interface: Send + Clone + 'static + Sized {
);
async fn handle_test_delay(&self, t: TestDelay, peer: &mut Stream);
fn get_login_config_handler(&self) -> Arc<RwLock<LoginConfigHandler>>;
fn get_lch(&self) -> Arc<RwLock<LoginConfigHandler>>;
fn get_id(&self) -> String {
self.get_lch().read().unwrap().id.clone()
}
fn is_force_relay(&self) -> bool {
self.get_login_config_handler().read().unwrap().force_relay
self.get_lch().read().unwrap().force_relay
}
fn swap_modifier_mouse(&self, _msg: &mut hbb_common::protos::message::MouseEvent) {}
fn update_direct(&self, direct: Option<bool>) {
self.get_login_config_handler().write().unwrap().direct = direct;
self.get_lch().write().unwrap().direct = direct;
}
fn update_received(&self, received: bool) {
self.get_login_config_handler().write().unwrap().received = received;
self.get_lch().write().unwrap().received = received;
}
fn on_establish_connection_error(&self, err: String) {
log::error!("Connection closed: {}", err);
let title = "Connection Error";
let text = err.to_string();
let lc = self.get_login_config_handler();
let lc = self.get_lch();
let direct = lc.read().unwrap().direct;
let received = lc.read().unwrap().received;
let relay_condition = direct == Some(true) && !received;
// force relay
let errno = errno::errno().0;
log::error!("Connection closed: {err}({errno})");
if relay_condition
&& (cfg!(windows) && (errno == 10054 || err.contains("10054"))
|| !cfg!(windows) && (errno == 104 || err.contains("104")))
{
lc.write().unwrap().force_relay = true;
lc.write()
.unwrap()
.set_option("force-always-relay".to_owned(), "Y".to_owned());
}
// relay-hint

View File

@@ -1,9 +1,9 @@
use std::collections::HashMap;
use hbb_common::{
get_time,
message_proto::{Message, VoiceCallRequest, VoiceCallResponse},
};
use scrap::CodecFormat;
use std::collections::HashMap;
#[derive(Debug, Default)]
pub struct QualityStatus {
@@ -12,6 +12,7 @@ pub struct QualityStatus {
pub delay: Option<i32>,
pub target_bitrate: Option<i32>,
pub codec_format: Option<CodecFormat>,
pub chroma: Option<String>,
}
#[inline]

View File

@@ -7,14 +7,14 @@ use std::{
},
};
#[cfg(windows)]
use clipboard::{cliprdr::CliprdrClientContext, empty_clipboard, ContextSend};
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
use clipboard::ContextSend;
use crossbeam_queue::ArrayQueue;
#[cfg(not(any(target_os = "android", target_os = "ios")))]
use hbb_common::sleep;
#[cfg(not(target_os = "ios"))]
use hbb_common::tokio::sync::mpsc::error::TryRecvError;
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
use hbb_common::tokio::sync::Mutex as TokioMutex;
use hbb_common::{
allow_err,
@@ -34,7 +34,7 @@ use hbb_common::{
sync::mpsc,
time::{self, Duration, Instant, Interval},
},
Stream,
ResultType, Stream,
};
use scrap::CodecFormat;
@@ -66,7 +66,7 @@ pub struct Remote<T: InvokeUiSession> {
last_update_jobs_status: (Instant, HashMap<i32, u64>),
is_connected: bool,
first_frame: bool,
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
client_conn_id: i32, // used for file clipboard
data_count: Arc<AtomicUsize>,
frame_count_map: Arc<RwLock<HashMap<usize, usize>>>,
@@ -74,6 +74,7 @@ pub struct Remote<T: InvokeUiSession> {
elevation_requested: bool,
fps_control_map: HashMap<usize, FpsControl>,
decode_fps_map: Arc<RwLock<HashMap<usize, usize>>>,
chroma: Arc<RwLock<Option<Chroma>>>,
}
impl<T: InvokeUiSession> Remote<T> {
@@ -86,6 +87,7 @@ impl<T: InvokeUiSession> Remote<T> {
sender: mpsc::UnboundedSender<Data>,
frame_count_map: Arc<RwLock<HashMap<usize, usize>>>,
decode_fps: Arc<RwLock<HashMap<usize, usize>>>,
chroma: Arc<RwLock<Option<Chroma>>>,
) -> Self {
Self {
handler,
@@ -101,7 +103,7 @@ impl<T: InvokeUiSession> Remote<T> {
last_update_jobs_status: (Instant::now(), Default::default()),
is_connected: false,
first_frame: false,
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
client_conn_id: 0,
data_count: Arc::new(AtomicUsize::new(0)),
frame_count_map,
@@ -111,6 +113,7 @@ impl<T: InvokeUiSession> Remote<T> {
elevation_requested: false,
fps_control_map: Default::default(),
decode_fps_map: decode_fps,
chroma,
}
}
@@ -124,7 +127,7 @@ impl<T: InvokeUiSession> Remote<T> {
};
match Client::start(
&self.handler.id,
&self.handler.get_id(),
key,
token,
conn_type,
@@ -146,24 +149,25 @@ impl<T: InvokeUiSession> Remote<T> {
}
// just build for now
#[cfg(not(windows))]
#[cfg(not(any(target_os = "windows", target_os = "linux", target_os = "macos")))]
let (_tx_holder, mut rx_clip_client) = mpsc::unbounded_channel::<i32>();
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
let (_tx_holder, rx) = mpsc::unbounded_channel();
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
let mut rx_clip_client_lock = Arc::new(TokioMutex::new(rx));
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
{
let is_conn_not_default = self.handler.is_file_transfer()
|| self.handler.is_port_forward()
|| self.handler.is_rdp();
if !is_conn_not_default {
log::debug!("get cliprdr client for conn_id {}", self.client_conn_id);
(self.client_conn_id, rx_clip_client_lock) =
clipboard::get_rx_cliprdr_client(&self.handler.id);
clipboard::get_rx_cliprdr_client(&self.handler.get_id());
};
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
let mut rx_clip_client = rx_clip_client_lock.lock().await;
let mut status_timer = time::interval(Duration::new(1, 0));
@@ -193,7 +197,7 @@ impl<T: InvokeUiSession> Remote<T> {
} else {
if self.handler.is_restarting_remote_device() {
log::info!("Restart remote device");
self.handler.msgbox("restarting", "Restarting Remote Device", "remote_restarting_tip", "");
self.handler.msgbox("restarting", "Restarting remote device", "remote_restarting_tip", "");
} else {
log::info!("Reset by the peer");
self.handler.msgbox("error", "Connection Error", "Reset by the peer", "");
@@ -209,8 +213,8 @@ impl<T: InvokeUiSession> Remote<T> {
}
}
_msg = rx_clip_client.recv() => {
#[cfg(windows)]
self.handle_local_clipboard_msg(&mut peer, _msg).await;
#[cfg(any(target_os="windows", target_os="linux", target_os = "macos"))]
self.handle_local_clipboard_msg(&mut peer, _msg).await;
}
_ = self.timer.tick() => {
if last_recv_time.elapsed() >= SEC30 {
@@ -246,15 +250,23 @@ impl<T: InvokeUiSession> Remote<T> {
// Correcting the inaccuracy of status_timer
(k.clone(), (*v as i32) * 1000 / elapsed as i32)
}).collect::<HashMap<usize, i32>>();
let chroma = self.chroma.read().unwrap().clone();
let chroma = match chroma {
Some(Chroma::I444) => "4:4:4",
Some(Chroma::I420) => "4:2:0",
None => "-",
};
let chroma = Some(chroma.to_string());
self.handler.update_quality_status(QualityStatus {
speed: Some(speed),
fps,
chroma,
..Default::default()
});
}
}
}
log::debug!("Exit io_loop of id={}", self.handler.id);
log::debug!("Exit io_loop of id={}", self.handler.get_id());
// Stop client audio server.
if let Some(s) = self.stop_voice_call_sender.take() {
s.send(()).ok();
@@ -274,20 +286,21 @@ impl<T: InvokeUiSession> Remote<T> {
#[cfg(not(any(target_os = "android", target_os = "ios")))]
if _set_disconnected_ok {
Client::try_stop_clipboard(&self.handler.id);
Client::try_stop_clipboard(&self.handler.get_id());
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
if _set_disconnected_ok {
let conn_id = self.client_conn_id;
ContextSend::proc(|context: &mut CliprdrClientContext| -> u32 {
empty_clipboard(context, conn_id);
0
log::debug!("try empty cliprdr for conn_id {}", conn_id);
let _ = ContextSend::proc(|context| -> ResultType<()> {
context.empty_clipboard(conn_id)?;
Ok(())
});
}
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
async fn handle_local_clipboard_msg(
&self,
peer: &mut crate::client::FramedStream,
@@ -315,7 +328,12 @@ impl<T: InvokeUiSession> Remote<T> {
if stop {
ContextSend::set_is_stopped();
} else {
allow_err!(peer.send(&crate::clipboard_file::clip_2_msg(clip)).await);
if let Err(e) = ContextSend::make_sure_enabled() {
log::error!("failed to restart clipboard context: {}", e);
};
log::debug!("Send system clipboard message to remote");
let msg = crate::clipboard_file::clip_2_msg(clip);
allow_err!(peer.send(&msg).await);
}
}
},
@@ -1069,7 +1087,6 @@ impl<T: InvokeUiSession> Remote<T> {
}
Some(login_response::Union::PeerInfo(pi)) => {
self.handler.handle_peer_info(pi);
#[cfg(not(feature = "flutter"))]
self.check_clipboard_file_context();
if !(self.handler.is_file_transfer() || self.handler.is_port_forward()) {
#[cfg(feature = "flutter")]
@@ -1102,7 +1119,7 @@ impl<T: InvokeUiSession> Remote<T> {
#[cfg(not(any(target_os = "android", target_os = "ios")))]
crate::plugin::handle_listen_event(
crate::plugin::EVENT_ON_CONN_CLIENT.to_owned(),
self.handler.id.clone(),
self.handler.get_id(),
)
}
@@ -1140,7 +1157,7 @@ impl<T: InvokeUiSession> Remote<T> {
}
}
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
Some(message::Union::Cliprdr(clip)) => {
self.handle_cliprdr_msg(clip);
}
@@ -1330,6 +1347,9 @@ impl<T: InvokeUiSession> Remote<T> {
Ok(Permission::Recording) => {
self.handler.set_permission("recording", p.enabled);
}
Ok(Permission::BlockInput) => {
self.handler.set_permission("block_input", p.enabled);
}
_ => {}
}
}
@@ -1445,14 +1465,14 @@ impl<T: InvokeUiSession> Remote<T> {
}
Some(misc::Union::SwitchBack(_)) => {
#[cfg(feature = "flutter")]
self.handler.switch_back(&self.handler.id);
self.handler.switch_back(&self.handler.get_id());
}
#[cfg(all(feature = "flutter", feature = "plugin_framework"))]
#[cfg(not(any(target_os = "android", target_os = "ios")))]
Some(misc::Union::PluginRequest(p)) => {
allow_err!(crate::plugin::handle_server_event(
&p.id,
&self.handler.id,
&self.handler.get_id(),
&p.content
));
// to-do: show message box on UI when error occurs?
@@ -1700,9 +1720,14 @@ impl<T: InvokeUiSession> Remote<T> {
true
}
#[cfg(not(feature = "flutter"))]
fn check_clipboard_file_context(&self) {
#[cfg(windows)]
#[cfg(any(
target_os = "windows",
all(
feature = "unix-file-copy-paste",
any(target_os = "linux", target_os = "macos")
)
))]
{
let enabled = *self.handler.server_file_transfer_enabled.read().unwrap()
&& self.handler.lc.read().unwrap().enable_file_transfer.v;
@@ -1710,8 +1735,9 @@ impl<T: InvokeUiSession> Remote<T> {
}
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
fn handle_cliprdr_msg(&self, clip: hbb_common::message_proto::Cliprdr) {
log::debug!("handling cliprdr msg from server peer");
#[cfg(feature = "flutter")]
if let Some(hbb_common::message_proto::cliprdr::Union::FormatList(_)) = &clip.union {
if self.client_conn_id
@@ -1721,18 +1747,26 @@ impl<T: InvokeUiSession> Remote<T> {
}
}
if let Some(clip) = crate::clipboard_file::msg_2_clip(clip) {
let is_stopping_allowed = clip.is_stopping_allowed_from_peer();
let file_transfer_enabled = self.handler.lc.read().unwrap().enable_file_transfer.v;
let stop = is_stopping_allowed && !file_transfer_enabled;
log::debug!(
let Some(clip) = crate::clipboard_file::msg_2_clip(clip) else {
log::warn!("failed to decode cliprdr msg from server peer");
return;
};
let is_stopping_allowed = clip.is_stopping_allowed_from_peer();
let file_transfer_enabled = self.handler.lc.read().unwrap().enable_file_transfer.v;
let stop = is_stopping_allowed && !file_transfer_enabled;
log::debug!(
"Process clipboard message from server peer, stop: {}, is_stopping_allowed: {}, file_transfer_enabled: {}",
stop, is_stopping_allowed, file_transfer_enabled);
if !stop {
ContextSend::proc(|context: &mut CliprdrClientContext| -> u32 {
clipboard::server_clip_file(context, self.client_conn_id, clip)
});
}
if !stop {
if let Err(e) = ContextSend::make_sure_enabled() {
log::error!("failed to restart clipboard context: {}", e);
};
let _ = ContextSend::proc(|context| -> ResultType<()> {
context
.server_clip_file(self.client_conn_id, clip)
.map_err(|e| e.into())
});
}
}
}

View File

@@ -11,9 +11,118 @@ pub enum GrabState {
Exit,
}
#[cfg(not(any(target_os = "android", target_os = "ios")))]
#[cfg(not(any(
target_os = "android",
target_os = "ios",
all(target_os = "linux", feature = "unix-file-copy-paste")
)))]
pub use arboard::Clipboard as ClipboardContext;
#[cfg(all(target_os = "linux", feature = "unix-file-copy-paste"))]
static X11_CLIPBOARD: once_cell::sync::OnceCell<x11_clipboard::Clipboard> =
once_cell::sync::OnceCell::new();
#[cfg(all(target_os = "linux", feature = "unix-file-copy-paste"))]
fn get_clipboard() -> Result<&'static x11_clipboard::Clipboard, String> {
X11_CLIPBOARD
.get_or_try_init(|| x11_clipboard::Clipboard::new())
.map_err(|e| e.to_string())
}
#[cfg(all(target_os = "linux", feature = "unix-file-copy-paste"))]
pub struct ClipboardContext {
string_setter: x11rb::protocol::xproto::Atom,
string_getter: x11rb::protocol::xproto::Atom,
text_uri_list: x11rb::protocol::xproto::Atom,
clip: x11rb::protocol::xproto::Atom,
prop: x11rb::protocol::xproto::Atom,
}
#[cfg(all(target_os = "linux", feature = "unix-file-copy-paste"))]
fn parse_plain_uri_list(v: Vec<u8>) -> Result<String, String> {
let text = String::from_utf8(v).map_err(|_| "ConversionFailure".to_owned())?;
let mut list = String::new();
for line in text.lines() {
if !line.starts_with("file://") {
continue;
}
let decoded = percent_encoding::percent_decode_str(line)
.decode_utf8()
.map_err(|_| "ConversionFailure".to_owned())?;
list = list + "\n" + decoded.trim_start_matches("file://");
}
list = list.trim().to_owned();
Ok(list)
}
#[cfg(all(target_os = "linux", feature = "unix-file-copy-paste"))]
impl ClipboardContext {
pub fn new() -> Result<Self, String> {
let clipboard = get_clipboard()?;
let string_getter = clipboard
.getter
.get_atom("UTF8_STRING")
.map_err(|e| e.to_string())?;
let string_setter = clipboard
.setter
.get_atom("UTF8_STRING")
.map_err(|e| e.to_string())?;
let text_uri_list = clipboard
.getter
.get_atom("text/uri-list")
.map_err(|e| e.to_string())?;
let prop = clipboard.getter.atoms.property;
let clip = clipboard.getter.atoms.clipboard;
Ok(Self {
text_uri_list,
string_setter,
string_getter,
clip,
prop,
})
}
pub fn get_text(&mut self) -> Result<String, String> {
let clip = self.clip;
let prop = self.prop;
const TIMEOUT: std::time::Duration = std::time::Duration::from_millis(120);
let text_content = get_clipboard()?
.load(clip, self.string_getter, prop, TIMEOUT)
.map_err(|e| e.to_string())?;
let file_urls = get_clipboard()?.load(clip, self.text_uri_list, prop, TIMEOUT);
if file_urls.is_err() || file_urls.as_ref().unwrap().is_empty() {
log::trace!("clipboard get text, no file urls");
return String::from_utf8(text_content).map_err(|e| e.to_string());
}
let file_urls = parse_plain_uri_list(file_urls.unwrap())?;
let text_content = String::from_utf8(text_content).map_err(|e| e.to_string())?;
if text_content.trim() == file_urls.trim() {
log::trace!("clipboard got text but polluted");
return Err(String::from("polluted text"));
}
Ok(text_content)
}
pub fn set_text(&mut self, content: String) -> Result<(), String> {
let clip = self.clip;
let value = content.clone().into_bytes();
get_clipboard()?
.store(clip, self.string_setter, value)
.map_err(|e| e.to_string())?;
Ok(())
}
}
#[cfg(not(any(target_os = "android", target_os = "ios")))]
use hbb_common::compress::decompress;
use hbb_common::{

View File

@@ -471,6 +471,7 @@ impl InvokeUiSession for FlutterHandler {
"codec_format",
&status.codec_format.map_or(NULL, |it| it.to_string()),
),
("chroma", &status.chroma.map_or(NULL, |it| it.to_string())),
],
);
}
@@ -862,7 +863,6 @@ pub fn session_add(
LocalConfig::set_remote_id(&id);
let session: Session<FlutterHandler> = Session {
id: id.to_owned(),
password,
server_keyboard_enabled: Arc::new(RwLock::new(true)),
server_file_transfer_enabled: Arc::new(RwLock::new(true)),
@@ -1030,8 +1030,8 @@ pub mod connection_manager {
self.push_event("update_voice_call_state", vec![("client", &client_json)]);
}
fn file_transfer_log(&self, log: String) {
self.push_event("cm_file_transfer_log", vec![("log", &log.to_string())]);
fn file_transfer_log(&self, action: &str, log: &str) {
self.push_event("cm_file_transfer_log", vec![(action, log)]);
}
}
@@ -1465,25 +1465,7 @@ pub mod sessions {
if write_lock.is_empty() {
remove_peer_key = Some(peer_key.clone());
} else {
// Set capture displays if some are not used any more.
let mut remains_displays = HashSet::new();
for (_, h) in write_lock.iter() {
remains_displays.extend(
h.renderer
.map_display_sessions
.read()
.unwrap()
.keys()
.cloned(),
);
}
if !remains_displays.is_empty() {
s.capture_displays(
vec![],
vec![],
remains_displays.iter().map(|d| *d as i32).collect(),
);
}
check_remove_unused_displays(None, id, s, &write_lock);
}
break;
}
@@ -1493,12 +1475,75 @@ pub mod sessions {
SESSIONS.write().unwrap().remove(&remove_peer_key?)
}
#[cfg(feature = "flutter_texture_render")]
fn check_remove_unused_displays(
current: Option<usize>,
session_id: &SessionID,
session: &FlutterSession,
handlers: &HashMap<SessionID, SessionHandler>,
) {
// Set capture displays if some are not used any more.
let mut remains_displays = HashSet::new();
if let Some(current) = current {
remains_displays.insert(current);
}
for (k, h) in handlers.iter() {
if k == session_id {
continue;
}
remains_displays.extend(
h.renderer
.map_display_sessions
.read()
.unwrap()
.keys()
.cloned(),
);
}
if !remains_displays.is_empty() {
session.capture_displays(
vec![],
vec![],
remains_displays.iter().map(|d| *d as i32).collect(),
);
}
}
pub fn session_switch_display(session_id: SessionID, value: Vec<i32>) {
for s in SESSIONS.read().unwrap().values() {
let read_lock = s.ui_handler.session_handlers.read().unwrap();
if read_lock.contains_key(&session_id) {
if value.len() == 1 {
// Switch display.
// This operation will also cause the peer to send a switch display message.
// The switch display message will contain `SupportedResolutions`, which is useful when changing resolutions.
s.switch_display(value[0]);
// Check if other displays are needed.
#[cfg(feature = "flutter_texture_render")]
if value.len() == 1 {
check_remove_unused_displays(
Some(value[0] as _),
&session_id,
&s,
&read_lock,
);
}
} else {
// Try capture all displays.
s.capture_displays(vec![], vec![], value);
}
break;
}
}
}
#[inline]
pub fn insert_session(session_id: SessionID, conn_type: ConnType, session: FlutterSession) {
SESSIONS
.write()
.unwrap()
.entry((session.id.clone(), conn_type))
.entry((session.get_id(), conn_type))
.or_insert(session)
.ui_handler
.session_handlers

View File

@@ -430,13 +430,7 @@ pub fn session_ctrl_alt_del(session_id: SessionID) {
}
pub fn session_switch_display(session_id: SessionID, value: Vec<i32>) {
if let Some(session) = sessions::get_session_by_session_id(&session_id) {
if value.len() == 1 {
session.switch_display(value[0]);
} else {
session.capture_displays(vec![], vec![], value);
}
}
sessions::session_switch_display(session_id, value);
}
pub fn session_handle_flutter_key_event(
@@ -1095,7 +1089,7 @@ pub fn main_get_user_default_option(key: String) -> SyncReturn<String> {
}
pub fn main_handle_relay_id(id: String) -> String {
handle_relay_id(id)
handle_relay_id(&id).to_owned()
}
pub fn main_get_main_display() -> SyncReturn<String> {
@@ -1726,6 +1720,17 @@ pub fn main_use_texture_render() -> SyncReturn<bool> {
}
}
pub fn main_has_file_clipboard() -> SyncReturn<bool> {
let ret = cfg!(any(
target_os = "windows",
all(
feature = "unix-file-copy-paste",
any(target_os = "linux", target_os = "macos")
)
));
SyncReturn(ret)
}
pub fn cm_init() {
#[cfg(not(any(target_os = "android", target_os = "ios")))]
crate::flutter::connection_manager::cm_init();

View File

@@ -177,6 +177,7 @@ pub enum Data {
file_transfer_enabled: bool,
restart: bool,
recording: bool,
block_input: bool,
from_switch: bool,
},
ChatMessage {
@@ -232,7 +233,7 @@ pub enum Data {
Plugin(Plugin),
#[cfg(windows)]
SyncWinCpuUsage(Option<f64>),
FileTransferLog(String),
FileTransferLog((String, String)),
#[cfg(windows)]
ControlledSessionCount(usize),
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "جاهز"),
("Established", "تم الانشاء"),
("connecting_status", "جاري الاتصال بشبكة RustDesk..."),
("Enable Service", "تفعيل الخدمة"),
("Start Service", "بدء الخدمة"),
("Enable service", "تفعيل الخدمة"),
("Start service", "بدء الخدمة"),
("Service is running", "الخدمة تعمل"),
("Service is not running", "الخدمة لا تعمل"),
("not_ready_status", "غير جاهز. الرجاء التأكد من الاتصال"),
("Control Remote Desktop", "التحكم بسطح المكتب البعيد"),
("Transfer File", "نقل ملف"),
("Transfer file", "نقل ملف"),
("Connect", "اتصال"),
("Recent Sessions", "الجلسات الحديثة"),
("Address Book", "كتاب العناوين"),
("Recent sessions", "الجلسات الحديثة"),
("Address book", "كتاب العناوين"),
("Confirmation", "التأكيد"),
("TCP Tunneling", "نفق TCP"),
("TCP tunneling", "نفق TCP"),
("Remove", "ازالة"),
("Refresh random password", "تحديث كلمة مرور عشوائية"),
("Set your own password", "تعيين كلمة مرور خاصة بك"),
("Enable Keyboard/Mouse", "تفعيل لوحة المفاتيح/الفأرة"),
("Enable Clipboard", "تفعيل الحافظة"),
("Enable File Transfer", "تفعيل نقل الملفات"),
("Enable TCP Tunneling", "تفعيل نفق TCP"),
("Enable keyboard/mouse", "تفعيل لوحة المفاتيح/الفأرة"),
("Enable clipboard", "تفعيل الحافظة"),
("Enable file transfer", "تفعيل نقل الملفات"),
("Enable TCP tunneling", "تفعيل نفق TCP"),
("IP Whitelisting", "القائمة البيضاء للـ IP"),
("ID/Relay Server", "معرف خادم الوسيط"),
("Import Server Config", "استيراد إعدادات الخادم"),
("Import server config", "استيراد إعدادات الخادم"),
("Export Server Config", "تصدير إعدادات الخادم"),
("Import server configuration successfully", "تم استيراد إعدادات الخادم بنجاح"),
("Export server configuration successfully", "تم تصدير إعدادات الخادم بنجاح"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "قبول"),
("Dismiss", "صرف"),
("Disconnect", "قطع الاتصال"),
("Allow using keyboard and mouse", "السماح باستخدام لوحة المفاتيح والفأرة"),
("Allow using clipboard", "السماح باستخدام الحافظة"),
("Allow hearing sound", "السماح بسماع الصوت"),
("Allow file copy and paste", "السماح بالنسخ واللصق"),
("Enable file copy and paste", "السماح بالنسخ واللصق"),
("Connected", "متصل"),
("Direct and encrypted connection", "اتصال مباشر مشفر"),
("Relayed and encrypted connection", "اتصال غير مباشر مشفر"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "جاري تسجيل الدخول..."),
("Enable RDP session sharing", "تفعيل مشاركة الجلسة باستخدام RDP"),
("Auto Login", "تسجيل دخول تلقائي"),
("Enable Direct IP Access", "تفعيل الوصول المباشر لعنوان IP"),
("Enable direct IP access", "تفعيل الوصول المباشر لعنوان IP"),
("Rename", "اعادة تسمية"),
("Space", "مساحة"),
("Create Desktop Shortcut", "انشاء اختصار سطح مكتب"),
("Create desktop shortcut", "انشاء اختصار سطح مكتب"),
("Change Path", "تغيير المسار"),
("Create Folder", "انشاء مجلد"),
("Please enter the folder name", "الرجاء ادخال اسم المجلد"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "ابق خدمة RustDesk تعمل في الخلفية"),
("Ignore Battery Optimizations", "تجاهل تحسينات البطارية"),
("android_open_battery_optimizations_tip", "اذا اردت تعطيل هذه الميزة, الرجاء الذهاب الى صفحة اعدادات تطبيق RustDesk, ابحث عن البطارية, الغ تحديد غير مقيد"),
("Start on Boot", "البدء عند تشغيل النظام"),
("Start on boot", "البدء عند تشغيل النظام"),
("Start the screen sharing service on boot, requires special permissions", "تشغيل خدمة مشاركة الشاشة عند بدء تشغيل النظام, يحتاج الى اذونات خاصة"),
("Connection not allowed", "الاتصال غير مسموح"),
("Legacy mode", "الوضع التقليدي"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "استخدام كلمة مرور دائمة"),
("Use both passwords", "استخدام طريقتي كلمة المرور"),
("Set permanent password", "تعيين كلمة مرور دائمة"),
("Enable Remote Restart", "تفعيل اعداة تشغيل البعيد"),
("Allow remote restart", "السماح باعادة تشغيل البعيد"),
("Restart Remote Device", "اعادة تشغيل الجهاز البعيد"),
("Enable remote restart", "تفعيل اعداة تشغيل البعيد"),
("Restart remote device", "اعادة تشغيل الجهاز البعيد"),
("Are you sure you want to restart", "هل انت متاكد من انك تريد اعادة التشغيل؟"),
("Restarting Remote Device", "جاري اعادة تشغيل البعيد"),
("Restarting remote device", "جاري اعادة تشغيل البعيد"),
("remote_restarting_tip", "الجهاز البعيد يعيد التشغيل. الرجاء اغلاق هذه الرسالة واعادة الاتصال باستخدام كلمة المرور الدائمة بعد فترة بسيطة."),
("Copied", "منسوخ"),
("Exit Fullscreen", "الخروج من ملئ الشاشة"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "نفس نظام التشغيل"),
("Enable hardware codec", "تفعيل ترميز العتاد"),
("Unlock Security Settings", "فتح اعدادات الامان"),
("Enable Audio", "تفعيل الصوت"),
("Enable audio", "تفعيل الصوت"),
("Unlock Network Settings", "فتح اعدادات الشبكة"),
("Server", "الخادم"),
("Direct IP Access", "وصول مباشر للـ IP"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "تغيير"),
("Start session recording", "بدء تسجيل الجلسة"),
("Stop session recording", "ايقاف تسجيل الجلسة"),
("Enable Recording Session", "تفعيل تسجيل الجلسة"),
("Allow recording session", "السماح بتسجيل الجلسة"),
("Enable LAN Discovery", "تفعيل اكتشاف الشبكة المحلية"),
("Deny LAN Discovery", "رفض اكتشاف الشبكة المحلية"),
("Enable recording session", "تفعيل تسجيل الجلسة"),
("Enable LAN discovery", "تفعيل اكتشاف الشبكة المحلية"),
("Deny LAN discovery", "رفض اكتشاف الشبكة المحلية"),
("Write a message", "اكتب رسالة"),
("Prompt", ""),
("Please wait for confirmation of UAC...", "الرجاء انتظار تاكيد تحكم حساب المستخدم..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "دعم Wayland لازال في المرحلة التجريبية. الرجاء استخدام X11 اذا اردت وصول كامل."),
("Right click to select tabs", "الضغط بالزر الايمن لتحديد الالسنة"),
("Skipped", "متجاوز"),
("Add to Address Book", "اضافة الى كتاب العناوين"),
("Add to address book", "اضافة الى كتاب العناوين"),
("Group", "مجموعة"),
("Search", "بحث"),
("Closed manually by web console", "اغلق يدويا عبر طرفية الويب"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Llest"),
("Established", "Establert"),
("connecting_status", "Connexió a la xarxa RustDesk en progrés..."),
("Enable Service", "Habilitar Servei"),
("Start Service", "Iniciar Servei"),
("Enable service", "Habilitar Servei"),
("Start service", "Iniciar Servei"),
("Service is running", "El servei s'està executant"),
("Service is not running", "El servei no s'està executant"),
("not_ready_status", "No està llest. Comprova la teva connexió"),
("Control Remote Desktop", "Controlar escriptori remot"),
("Transfer File", "Transferir arxiu"),
("Transfer file", "Transferir arxiu"),
("Connect", "Connectar"),
("Recent Sessions", "Sessions recents"),
("Address Book", "Directori"),
("Recent sessions", "Sessions recents"),
("Address book", "Directori"),
("Confirmation", "Confirmació"),
("TCP Tunneling", "Túnel TCP"),
("TCP tunneling", "Túnel TCP"),
("Remove", "Eliminar"),
("Refresh random password", "Actualitzar contrasenya aleatòria"),
("Set your own password", "Estableix la teva pròpia contrasenya"),
("Enable Keyboard/Mouse", "Habilitar teclat/ratolí"),
("Enable Clipboard", "Habilitar portapapers"),
("Enable File Transfer", "Habilitar transferència d'arxius"),
("Enable TCP Tunneling", "Habilitar túnel TCP"),
("Enable keyboard/mouse", "Habilitar teclat/ratolí"),
("Enable clipboard", "Habilitar portapapers"),
("Enable file transfer", "Habilitar transferència d'arxius"),
("Enable TCP tunneling", "Habilitar túnel TCP"),
("IP Whitelisting", "Direccions IP admeses"),
("ID/Relay Server", "Servidor ID/Relay"),
("Import Server Config", "Importar configuració de servidor"),
("Import server config", "Importar configuració de servidor"),
("Export Server Config", "Exportar configuració del servidor"),
("Import server configuration successfully", "Configuració de servidor importada amb èxit"),
("Export server configuration successfully", "Configuració de servidor exportada con èxit"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Acceptar"),
("Dismiss", "Cancel·lar"),
("Disconnect", "Desconnectar"),
("Allow using keyboard and mouse", "Permetre l'ús del teclat i ratolí"),
("Allow using clipboard", "Permetre usar portapapers"),
("Allow hearing sound", "Permetre escoltar so"),
("Allow file copy and paste", "Permetre copiar i enganxar arxius"),
("Enable file copy and paste", "Permetre copiar i enganxar arxius"),
("Connected", "Connectat"),
("Direct and encrypted connection", "Connexió directa i xifrada"),
("Relayed and encrypted connection", "connexió retransmesa i xifrada"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Iniciant sessió..."),
("Enable RDP session sharing", "Habilitar l'ús compartit de sessions RDP"),
("Auto Login", "Inici de sessió automàtic"),
("Enable Direct IP Access", "Habilitar accés IP directe"),
("Enable direct IP access", "Habilitar accés IP directe"),
("Rename", "Renombrar"),
("Space", "Espai"),
("Create Desktop Shortcut", "Crear accés directe a l'escriptori"),
("Create desktop shortcut", "Crear accés directe a l'escriptori"),
("Change Path", "Cnviar ruta"),
("Create Folder", "Crear carpeta"),
("Please enter the folder name", "Indiqui el nom de la carpeta"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Mantenir RustDesk com a servei en segon pla"),
("Ignore Battery Optimizations", "Ignorar optimizacions de la bateria"),
("android_open_battery_optimizations_tip", ""),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Connexió no disponible"),
("Legacy mode", "Mode heretat"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Utilitzar contrasenya permament"),
("Use both passwords", "Utilitzar ambdues contrasenyas"),
("Set permanent password", "Establir contrasenya permament"),
("Enable Remote Restart", "Activar reinici remot"),
("Allow remote restart", "Permetre reinici remot"),
("Restart Remote Device", "Reiniciar dispositiu"),
("Enable remote restart", "Activar reinici remot"),
("Restart remote device", "Reiniciar dispositiu"),
("Are you sure you want to restart", "Està segur que vol reiniciar?"),
("Restarting Remote Device", "Reiniciant dispositiu remot"),
("Restarting remote device", "Reiniciant dispositiu remot"),
("remote_restarting_tip", "Dispositiu remot reiniciant, tanqui aquest missatge i tornis a connectar amb la contrasenya."),
("Copied", "Copiat"),
("Exit Fullscreen", "Sortir de la pantalla completa"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Tema del sistema"),
("Enable hardware codec", "Habilitar còdec per hardware"),
("Unlock Security Settings", "Desbloquejar ajustaments de seguretat"),
("Enable Audio", "Habilitar àudio"),
("Enable audio", "Habilitar àudio"),
("Unlock Network Settings", "Desbloquejar Ajustaments de Xarxa"),
("Server", "Servidor"),
("Direct IP Access", "Accés IP Directe"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Canviar"),
("Start session recording", "Començar gravació de sessió"),
("Stop session recording", "Aturar gravació de sessió"),
("Enable Recording Session", "Habilitar gravació de sessió"),
("Allow recording session", "Permetre gravació de sessió"),
("Enable LAN Discovery", "Habilitar descobriment de LAN"),
("Deny LAN Discovery", "Denegar descobriment de LAN"),
("Enable recording session", "Habilitar gravació de sessió"),
("Enable LAN discovery", "Habilitar descobriment de LAN"),
("Deny LAN discovery", "Denegar descobriment de LAN"),
("Write a message", "Escriure un missatge"),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "就绪"),
("Established", "已建立"),
("connecting_status", "正在接入 RustDesk 网络..."),
("Enable Service", "允许服务"),
("Start Service", "启动服务"),
("Enable service", "允许服务"),
("Start service", "启动服务"),
("Service is running", "服务正在运行"),
("Service is not running", "服务未运行"),
("not_ready_status", "未就绪,请检查网络连接"),
("Control Remote Desktop", "控制远程桌面"),
("Transfer File", "传输文件"),
("Transfer file", "传输文件"),
("Connect", "连接"),
("Recent Sessions", "最近访问过"),
("Address Book", "地址簿"),
("Recent sessions", "最近访问过"),
("Address book", "地址簿"),
("Confirmation", "确认"),
("TCP Tunneling", "TCP 隧道"),
("TCP tunneling", "TCP 隧道"),
("Remove", "删除"),
("Refresh random password", "刷新随机密码"),
("Set your own password", "设置密码"),
("Enable Keyboard/Mouse", "允许控制键盘/鼠标"),
("Enable Clipboard", "允许同步剪贴板"),
("Enable File Transfer", "允许传输文件"),
("Enable TCP Tunneling", "允许建立 TCP 隧道"),
("Enable keyboard/mouse", "允许控制键盘/鼠标"),
("Enable clipboard", "允许同步剪贴板"),
("Enable file transfer", "允许传输文件"),
("Enable TCP tunneling", "允许建立 TCP 隧道"),
("IP Whitelisting", "IP 白名单"),
("ID/Relay Server", "ID/中继服务器"),
("Import Server Config", "导入服务器配置"),
("Import server config", "导入服务器配置"),
("Export Server Config", "导出服务器配置"),
("Import server configuration successfully", "导入服务器配置信息成功"),
("Export server configuration successfully", "导出服务器配置信息成功"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "接受"),
("Dismiss", "拒绝"),
("Disconnect", "断开连接"),
("Allow using keyboard and mouse", "允许使用键盘鼠标"),
("Allow using clipboard", "允许使用剪贴板"),
("Allow hearing sound", "允许听到声音"),
("Allow file copy and paste", "允许复制粘贴文件"),
("Enable file copy and paste", "允许复制粘贴文件"),
("Connected", "已连接"),
("Direct and encrypted connection", "加密直连"),
("Relayed and encrypted connection", "加密中继连接"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "正在登录..."),
("Enable RDP session sharing", "允许 RDP 会话共享"),
("Auto Login", "自动登录(设置断开后锁定才有效)"),
("Enable Direct IP Access", "允许 IP 直接访问"),
("Enable direct IP access", "允许 IP 直接访问"),
("Rename", "重命名"),
("Space", "空格"),
("Create Desktop Shortcut", "创建桌面快捷方式"),
("Create desktop shortcut", "创建桌面快捷方式"),
("Change Path", "更改路径"),
("Create Folder", "创建文件夹"),
("Please enter the folder name", "请输入文件夹名称"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "保持 RustDesk 后台服务"),
("Ignore Battery Optimizations", "忽略电池优化"),
("android_open_battery_optimizations_tip", "如需关闭此功能,请在接下来的 RustDesk 应用设置页面中,找到并进入 [电源] 页面,取消勾选 [不受限制]"),
("Start on Boot", "开机自启动"),
("Start on boot", "开机自启动"),
("Start the screen sharing service on boot, requires special permissions", "开机自动启动屏幕共享服务,此功能需要一些特殊权限。"),
("Connection not allowed", "对方不允许连接"),
("Legacy mode", "传统模式"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "使用固定密码"),
("Use both passwords", "同时使用两种密码"),
("Set permanent password", "设置固定密码"),
("Enable Remote Restart", "允许远程重启"),
("Allow remote restart", "允许远程重启"),
("Restart Remote Device", "重启远程电脑"),
("Enable remote restart", "允许远程重启"),
("Restart remote device", "重启远程电脑"),
("Are you sure you want to restart", "确定要重启"),
("Restarting Remote Device", "正在重启远程设备"),
("Restarting remote device", "正在重启远程设备"),
("remote_restarting_tip", "远程设备正在重启, 请关闭当前提示框, 并在一段时间后使用永久密码重新连接"),
("Copied", "已复制"),
("Exit Fullscreen", "退出全屏"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "跟随系统"),
("Enable hardware codec", "使用硬件编解码"),
("Unlock Security Settings", "解锁安全设置"),
("Enable Audio", "允许传输音频"),
("Enable audio", "允许传输音频"),
("Unlock Network Settings", "解锁网络设置"),
("Server", "服务器"),
("Direct IP Access", "IP 直接访问"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "更改"),
("Start session recording", "开始录屏"),
("Stop session recording", "结束录屏"),
("Enable Recording Session", "允许录制会话"),
("Allow recording session", "允许录制会话"),
("Enable LAN Discovery", "允许局域网发现"),
("Deny LAN Discovery", "拒绝局域网发现"),
("Enable recording session", "允许录制会话"),
("Enable LAN discovery", "允许局域网发现"),
("Deny LAN discovery", "拒绝局域网发现"),
("Write a message", "输入聊天消息"),
("Prompt", "提示"),
("Please wait for confirmation of UAC...", "请等待对方确认 UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland 支持处于实验阶段,如果你需要使用无人值守访问,请使用 X11。"),
("Right click to select tabs", "右键选择选项卡"),
("Skipped", "已跳过"),
("Add to Address Book", "添加到地址簿"),
("Add to address book", "添加到地址簿"),
("Group", "小组"),
("Search", "搜索"),
("Closed manually by web console", "被 web 控制台手动关闭"),
@@ -566,11 +561,14 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Show displays as individual windows", "在单个窗口中打开显示器"),
("Use all my displays for the remote session", "将我的所有显示器用于远程会话"),
("selinux_tip", "SELinux 处于启用状态RustDesk 可能无法作为被控正常运行。"),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("Change view", "更改视图"),
("Big tiles", "大磁贴"),
("Small tiles", "小磁贴"),
("List", "列表"),
("Virtual display", "虚拟显示器"),
("Plug out all", "拔出所有"),
("True color (4:4:4)", "真彩模式4:4:4"),
("Enable blocking user input", "允许阻止用户输入"),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Připraveno"),
("Established", "Navázáno"),
("connecting_status", "Připojování k RustDesk síti..."),
("Enable Service", "Povolit službu"),
("Start Service", "Spustit službu"),
("Enable service", "Povolit službu"),
("Start service", "Spustit službu"),
("Service is running", "Služba je spuštěná"),
("Service is not running", "Služba není spuštěná"),
("not_ready_status", "Nepřipraveno. Zkontrolujte své připojení."),
("Control Remote Desktop", "Ovládat vzdálenou plochu"),
("Transfer File", "Přenos souborů"),
("Transfer file", "Přenos souborů"),
("Connect", "Připojit"),
("Recent Sessions", "Nedávné relace"),
("Address Book", "Adresář kontaktů"),
("Recent sessions", "Nedávné relace"),
("Address book", "Adresář kontaktů"),
("Confirmation", "Potvrzení"),
("TCP Tunneling", "TCP tunelování"),
("TCP tunneling", "TCP tunelování"),
("Remove", "Odebrat"),
("Refresh random password", "Vytvořit nové náhodné heslo"),
("Set your own password", "Nastavte si své vlastní heslo"),
("Enable Keyboard/Mouse", "Povolit klávesnici/myš"),
("Enable Clipboard", "Povolit schránku"),
("Enable File Transfer", "Povolit přenos souborů"),
("Enable TCP Tunneling", "Povolit TCP tunelování"),
("Enable keyboard/mouse", "Povolit klávesnici/myš"),
("Enable clipboard", "Povolit schránku"),
("Enable file transfer", "Povolit přenos souborů"),
("Enable TCP tunneling", "Povolit TCP tunelování"),
("IP Whitelisting", "Povolování pouze z daných IP adres"),
("ID/Relay Server", "ID/předávací server"),
("Import Server Config", "Importovat konfiguraci serveru"),
("Import server config", "Importovat konfiguraci serveru"),
("Export Server Config", "Exportovat konfiguraci serveru"),
("Import server configuration successfully", "Konfigurace serveru úspěšně importována"),
("Export server configuration successfully", "Konfigurace serveru úspěšně exportována"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Přijmout"),
("Dismiss", "Zahodit"),
("Disconnect", "Odpojit"),
("Allow using keyboard and mouse", "Povolit ovládání klávesnice a myši"),
("Allow using clipboard", "Povolit použití schránky"),
("Allow hearing sound", "Povolit slyšet zvuk"),
("Allow file copy and paste", "Povolit kopírování a vkládání souborů"),
("Enable file copy and paste", "Povolit kopírování a vkládání souborů"),
("Connected", "Připojeno"),
("Direct and encrypted connection", "Přímé a šifrované spojení"),
("Relayed and encrypted connection", "Předávané a šifrované spojení"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Přihlašování..."),
("Enable RDP session sharing", "Povolit sdílení relace RDP"),
("Auto Login", "Automatické přihlášení"),
("Enable Direct IP Access", "Povolit přímý přístup k IP"),
("Enable direct IP access", "Povolit přímý přístup k IP"),
("Rename", "Přejmenovat"),
("Space", "Mezera"),
("Create Desktop Shortcut", "Vytvořit zástupce na ploše"),
("Create desktop shortcut", "Vytvořit zástupce na ploše"),
("Change Path", "Změnit umístění"),
("Create Folder", "Vytvořit složku"),
("Please enter the folder name", "Zadejte název pro složku"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Zachovat službu RustDesk na pozadí"),
("Ignore Battery Optimizations", "Ignorovat optimalizaci baterie"),
("android_open_battery_optimizations_tip", "Pokud chcete tuto funkci zakázat, přejděte na další stránku nastavení aplikace RustDesk, najděte a zadejte [Baterie], zrušte zaškrtnutí [Neomezeno]."),
("Start on Boot", "Spustit při startu systému"),
("Start on boot", "Spustit při startu systému"),
("Start the screen sharing service on boot, requires special permissions", "Spuštění služby sdílení obrazovky při spuštění systému, vyžaduje zvláštní oprávnění"),
("Connection not allowed", "Připojení není povoleno"),
("Legacy mode", "Režim Legacy"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Použít trvalé heslo"),
("Use both passwords", "Použít obě hesla"),
("Set permanent password", "Nastavit trvalé heslo"),
("Enable Remote Restart", "Povolit vzdálené restartování"),
("Allow remote restart", "Povolit vzdálený restart"),
("Restart Remote Device", "Restartovat vzdálené zařízení"),
("Enable remote restart", "Povolit vzdálené restartování"),
("Restart remote device", "Restartovat vzdálené zařízení"),
("Are you sure you want to restart", "Jste si jisti, že chcete restartovat"),
("Restarting Remote Device", "Restartování vzdáleného zařízení"),
("Restarting remote device", "Restartování vzdáleného zařízení"),
("remote_restarting_tip", "Vzdálené zařízení se restartuje, zavřete prosím toto okno a po chvíli se znovu připojte pomocí trvalého hesla."),
("Copied", "Zkopírováno"),
("Exit Fullscreen", "Ukončit celou obrazovku"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Podle systému"),
("Enable hardware codec", "Povolit hardwarový kodek"),
("Unlock Security Settings", "Odemknout nastavení zabezpečení"),
("Enable Audio", "Povolit zvuk"),
("Enable audio", "Povolit zvuk"),
("Unlock Network Settings", "Odemknout nastavení sítě"),
("Server", "Server"),
("Direct IP Access", "Přímý IP přístup"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Změnit"),
("Start session recording", "Spustit záznam relace"),
("Stop session recording", "Zastavit záznam relace"),
("Enable Recording Session", "Povolit nahrávání relace"),
("Allow recording session", "Povolit nahrávání relace"),
("Enable LAN Discovery", "Povolit zjišťování sítě LAN"),
("Deny LAN Discovery", "Zakázat zjišťování sítě LAN"),
("Enable recording session", "Povolit nahrávání relace"),
("Enable LAN discovery", "Povolit zjišťování sítě LAN"),
("Deny LAN discovery", "Zakázat zjišťování sítě LAN"),
("Write a message", "Napsat zprávu"),
("Prompt", "Výzva"),
("Please wait for confirmation of UAC...", "Počkejte prosím na potvrzení UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Podpora Waylandu je v experimentální fázi, pokud potřebujete bezobslužný přístup, použijte prosím X11."),
("Right click to select tabs", "Výběr karet kliknutím pravým tlačítkem myši"),
("Skipped", "Vynecháno"),
("Add to Address Book", "Přidat do adresáře"),
("Add to address book", "Přidat do adresáře"),
("Group", "Skupina"),
("Search", "Vyhledávání"),
("Closed manually by web console", "Uzavřeno ručně pomocí webové konzole"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", "Seznam"),
("Virtual display", "Virtuální obrazovka"),
("Plug out all", "Odpojit všechny"),
("True color (4:4:4)", "Skutečné barvy (4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Klar"),
("Established", "Etableret"),
("connecting_status", "Opretter forbindelse til RustDesk-netværket..."),
("Enable Service", "Tænd forbindelsesserveren"),
("Start Service", "Start forbindelsesserveren"),
("Enable service", "Tænd forbindelsesserveren"),
("Start service", "Start forbindelsesserveren"),
("Service is running", "Tjenesten kører"),
("Service is not running", "Den tilknyttede tjeneste kører ikke"),
("not_ready_status", "Ikke klar. Tjek venligst din forbindelse"),
("Control Remote Desktop", "Styr fjernskrivebord"),
("Transfer File", "Overfør fil"),
("Transfer file", "Overfør fil"),
("Connect", "Forbind"),
("Recent Sessions", "Seneste sessioner"),
("Address Book", "Adressebog"),
("Recent sessions", "Seneste sessioner"),
("Address book", "Adressebog"),
("Confirmation", "Bekræftelse"),
("TCP Tunneling", "TCP tunneling"),
("TCP tunneling", "TCP tunneling"),
("Remove", "Fjern"),
("Refresh random password", "Opdater tilfældig adgangskode"),
("Set your own password", "Indstil din egen adgangskode"),
("Enable Keyboard/Mouse", "Tænd for tastatur/mus"),
("Enable Clipboard", "Tænd for udklipsholderen"),
("Enable File Transfer", "Aktivér filoverførsel"),
("Enable TCP Tunneling", "Slå TCP-tunneling til"),
("Enable keyboard/mouse", "Tænd for tastatur/mus"),
("Enable clipboard", "Tænd for udklipsholderen"),
("Enable file transfer", "Aktivér filoverførsel"),
("Enable TCP tunneling", "Slå TCP-tunneling til"),
("IP Whitelisting", "IP whitelisting"),
("ID/Relay Server", "ID/forbindelsesserver"),
("Import Server Config", "Importér serverkonfiguration"),
("Import server config", "Importér serverkonfiguration"),
("Export Server Config", "Eksportér serverkonfiguration"),
("Import server configuration successfully", "Importering af serverkonfigurationen lykkedes"),
("Export server configuration successfully", "Eksportering af serverkonfigurationen lykkedes"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Accepter"),
("Dismiss", "Afvis"),
("Disconnect", "Frakobl"),
("Allow using keyboard and mouse", "Tillad brug af tastatur og mus"),
("Allow using clipboard", "Tillad brug af udklipsholderen"),
("Allow hearing sound", "Tillad at høre lyd"),
("Allow file copy and paste", "Tillad kopiering og indsæt af filer"),
("Enable file copy and paste", "Tillad kopiering og indsæt af filer"),
("Connected", "Forbundet"),
("Direct and encrypted connection", "Direkte og krypteret forbindelse"),
("Relayed and encrypted connection", "Viderestillet og krypteret forbindelse"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Logger ind..."),
("Enable RDP session sharing", "Aktivér RDP sessiongodkendelse"),
("Auto Login", "Automatisk login (kun gyldigt hvis du har konfigureret \"Lås efter afslutningen af sessionen\")"),
("Enable Direct IP Access", "Aktivér direkte IP-adgang"),
("Enable direct IP access", "Aktivér direkte IP-adgang"),
("Rename", "Omdøb"),
("Space", "Plads"),
("Create Desktop Shortcut", "Opret skrivebords-genvej"),
("Create desktop shortcut", "Opret skrivebords-genvej"),
("Change Path", "Skift stien"),
("Create Folder", "Opret mappe"),
("Please enter the folder name", "Indtast venligst mappens navn"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Behold RustDesk baggrundstjeneste"),
("Ignore Battery Optimizations", "Ignorér betteri optimeringer"),
("android_open_battery_optimizations_tip", ""),
("Start on Boot", "Start under opstart"),
("Start on boot", "Start under opstart"),
("Start the screen sharing service on boot, requires special permissions", "Start skærmdelingstjenesten under opstart, kræver specielle rettigheder"),
("Connection not allowed", "Forbindelse ikke tilladt"),
("Legacy mode", "Bagudkompatibilitetstilstand"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Brug permanent adgangskode"),
("Use both passwords", "Brug begge adgangskoder"),
("Set permanent password", "Sæt permanent adgangskode"),
("Enable Remote Restart", "Aktivér fjerngenstart"),
("Allow remote restart", "Tillad fjerngenstart"),
("Restart Remote Device", "Genstart fjernenhed"),
("Enable remote restart", "Aktivér fjerngenstart"),
("Restart remote device", "Genstart fjernenhed"),
("Are you sure you want to restart", "Er du sikker på at du vil genstarte"),
("Restarting Remote Device", "Genstarter fjernenhed"),
("Restarting remote device", "Genstarter fjernenhed"),
("remote_restarting_tip", "Enheden genstarter - Lukker denne besked ned, og tilslutter igen om et øjeblik"),
("Copied", "Kopieret"),
("Exit Fullscreen", "Afslut fuldskærm"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Følg System"),
("Enable hardware codec", "Aktivér hardware-codec"),
("Unlock Security Settings", "Lås op for sikkerhedsindstillinger"),
("Enable Audio", "Aktivér Lyd"),
("Enable audio", "Aktivér Lyd"),
("Unlock Network Settings", "Lås op for Netværksindstillinger"),
("Server", "Server"),
("Direct IP Access", "Direkte IP Adgang"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Ændr"),
("Start session recording", "Start sessionsoptagelse"),
("Stop session recording", "Stop sessionsoptagelse"),
("Enable Recording Session", "Aktivér optagelsessession"),
("Allow recording session", "Tillad optagelsessession"),
("Enable LAN Discovery", "Aktivér LAN Discovery"),
("Deny LAN Discovery", "Afvis LAN Discovery"),
("Enable recording session", "Aktivér optagelsessession"),
("Enable LAN discovery", "Aktivér LAN Discovery"),
("Deny LAN discovery", "Afvis LAN Discovery"),
("Write a message", "Skriv en besked"),
("Prompt", "Prompt"),
("Please wait for confirmation of UAC...", "Vent venligst på UAC-bekræftelse..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", "Højreklik for at vælge faner"),
("Skipped", "Sprunget over"),
("Add to Address Book", "Tilføj til adressebog"),
("Add to address book", "Tilføj til adressebog"),
("Group", "Gruppe"),
("Search", "Søg"),
("Closed manually by web console", "Lukket ned manuelt af webkonsollen"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Bereit"),
("Established", "Verbunden"),
("connecting_status", "Verbinden mit dem RustDesk-Netzwerk …"),
("Enable Service", "Vermittlungsdienst aktivieren"),
("Start Service", "Vermittlungsdienst starten"),
("Enable service", "Vermittlungsdienst aktivieren"),
("Start service", "Vermittlungsdienst starten"),
("Service is running", "Vermittlungsdienst aktiv"),
("Service is not running", "Vermittlungsdienst deaktiviert"),
("not_ready_status", "Nicht bereit. Bitte überprüfen Sie Ihre Netzwerkverbindung."),
("Control Remote Desktop", "Entfernten Desktop steuern"),
("Transfer File", "Datei übertragen"),
("Transfer file", "Datei übertragen"),
("Connect", "Verbinden"),
("Recent Sessions", "Letzte Sitzungen"),
("Address Book", "Adressbuch"),
("Recent sessions", "Letzte Sitzungen"),
("Address book", "Adressbuch"),
("Confirmation", "Bestätigung"),
("TCP Tunneling", "TCP-Tunnelung"),
("TCP tunneling", "TCP-Tunnelung"),
("Remove", "Entfernen"),
("Refresh random password", "Zufälliges Passwort erzeugen"),
("Set your own password", "Eigenes Passwort setzen"),
("Enable Keyboard/Mouse", "Tastatur und Maus aktivieren"),
("Enable Clipboard", "Zwischenablage aktivieren"),
("Enable File Transfer", "Dateiübertragung aktivieren"),
("Enable TCP Tunneling", "TCP-Tunnelung aktivieren"),
("Enable keyboard/mouse", "Tastatur und Maus aktivieren"),
("Enable clipboard", "Zwischenablage aktivieren"),
("Enable file transfer", "Dateiübertragung aktivieren"),
("Enable TCP tunneling", "TCP-Tunnelung aktivieren"),
("IP Whitelisting", "IP-Whitelist"),
("ID/Relay Server", "ID/Relay-Server"),
("Import Server Config", "Serverkonfiguration importieren"),
("Import server config", "Serverkonfiguration importieren"),
("Export Server Config", "Serverkonfiguration exportieren"),
("Import server configuration successfully", "Serverkonfiguration erfolgreich importiert"),
("Export server configuration successfully", "Serverkonfiguration erfolgreich exportiert"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Akzeptieren"),
("Dismiss", "Ablehnen"),
("Disconnect", "Verbindung trennen"),
("Allow using keyboard and mouse", "Verwendung von Maus und Tastatur zulassen"),
("Allow using clipboard", "Verwendung der Zwischenablage zulassen"),
("Allow hearing sound", "Soundübertragung zulassen"),
("Allow file copy and paste", "Kopieren und Einfügen von Dateien zulassen"),
("Enable file copy and paste", "Kopieren und Einfügen von Dateien zulassen"),
("Connected", "Verbunden"),
("Direct and encrypted connection", "Direkte und verschlüsselte Verbindung"),
("Relayed and encrypted connection", "Vermittelte und verschlüsselte Verbindung"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Anmelden …"),
("Enable RDP session sharing", "RDP-Sitzungsfreigabe aktivieren"),
("Auto Login", "Automatisch anmelden (nur gültig, wenn Sie \"Nach Sitzungsende sperren\" aktiviert haben)"),
("Enable Direct IP Access", "Direkten IP-Zugriff aktivieren"),
("Enable direct IP access", "Direkten IP-Zugriff aktivieren"),
("Rename", "Umbenennen"),
("Space", "Speicherplatz"),
("Create Desktop Shortcut", "Desktop-Verknüpfung erstellen"),
("Create desktop shortcut", "Desktop-Verknüpfung erstellen"),
("Change Path", "Pfad ändern"),
("Create Folder", "Ordner erstellen"),
("Please enter the folder name", "Bitte geben Sie den Ordnernamen ein"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "RustDesk im Hintergrund ausführen"),
("Ignore Battery Optimizations", "Akkuoptimierung ignorieren"),
("android_open_battery_optimizations_tip", "Möchten Sie die Einstellungen zur Akkuoptimierung öffnen?"),
("Start on Boot", "Beim Booten starten"),
("Start on boot", "Beim Booten starten"),
("Start the screen sharing service on boot, requires special permissions", "Bildschirmfreigabedienst beim Booten starten, erfordert zusätzliche Berechtigungen"),
("Connection not allowed", "Verbindung abgelehnt"),
("Legacy mode", "Kompatibilitätsmodus"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Permanentes Passwort verwenden"),
("Use both passwords", "Beide Passwörter verwenden"),
("Set permanent password", "Permanentes Passwort setzen"),
("Enable Remote Restart", "Entfernten Neustart aktivieren"),
("Allow remote restart", "Entfernten Neustart erlauben"),
("Restart Remote Device", "Entferntes Gerät neu starten"),
("Enable remote restart", "Entfernten Neustart aktivieren"),
("Restart remote device", "Entferntes Gerät neu starten"),
("Are you sure you want to restart", "Möchten Sie das entfernte Gerät wirklich neu starten?"),
("Restarting Remote Device", "Entferntes Gerät wird neu gestartet"),
("Restarting remote device", "Entferntes Gerät wird neu gestartet"),
("remote_restarting_tip", "Entferntes Gerät startet neu, bitte schließen Sie diese Meldung und verbinden Sie sich mit dem permanenten Passwort erneut."),
("Copied", "Kopiert"),
("Exit Fullscreen", "Vollbild beenden"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Systemstandard"),
("Enable hardware codec", "Hardware-Codec aktivieren"),
("Unlock Security Settings", "Sicherheitseinstellungen entsperren"),
("Enable Audio", "Audio aktivieren"),
("Enable audio", "Audio aktivieren"),
("Unlock Network Settings", "Netzwerkeinstellungen entsperren"),
("Server", "Server"),
("Direct IP Access", "Direkter IP-Zugang"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Ändern"),
("Start session recording", "Sitzungsaufzeichnung starten"),
("Stop session recording", "Sitzungsaufzeichnung beenden"),
("Enable Recording Session", "Sitzungsaufzeichnung aktivieren"),
("Allow recording session", "Sitzungsaufzeichnung erlauben"),
("Enable LAN Discovery", "LAN-Erkennung aktivieren"),
("Deny LAN Discovery", "LAN-Erkennung verbieten"),
("Enable recording session", "Sitzungsaufzeichnung aktivieren"),
("Enable LAN discovery", "LAN-Erkennung aktivieren"),
("Deny LAN discovery", "LAN-Erkennung verbieten"),
("Write a message", "Nachricht schreiben"),
("Prompt", "Meldung"),
("Please wait for confirmation of UAC...", "Bitte auf die Bestätigung des Nutzers warten …"),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Die Unterstützung von Wayland ist nur experimentell. Bitte nutzen Sie X11, wenn Sie einen unbeaufsichtigten Zugriff benötigen."),
("Right click to select tabs", "Tabs mit rechtem Mausklick auswählen"),
("Skipped", "Übersprungen"),
("Add to Address Book", "Zum Adressbuch hinzufügen"),
("Add to address book", "Zum Adressbuch hinzufügen"),
("Group", "Gruppe"),
("Search", "Suchen"),
("Closed manually by web console", "Manuell über die Webkonsole geschlossen"),
@@ -570,7 +565,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Big tiles", "Große Kacheln"),
("Small tiles", "Kleine Kacheln"),
("List", "Liste"),
("Virtual display", ""),
("Plug out all", ""),
("Virtual display", "Virtueller Bildschirm"),
("Plug out all", "Alle ausschalten"),
("True color (4:4:4)", "True Color (4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Έτοιμο"),
("Established", "Συνδέθηκε"),
("connecting_status", "Σύνδεση στο δίκτυο RustDesk..."),
("Enable Service", "Ενεργοποίηση υπηρεσίας"),
("Start Service", "Έναρξη υπηρεσίας"),
("Enable service", "Ενεργοποίηση υπηρεσίας"),
("Start service", "Έναρξη υπηρεσίας"),
("Service is running", "Η υπηρεσία εκτελείται"),
("Service is not running", "Η υπηρεσία δεν εκτελείται"),
("not_ready_status", "Δεν είναι έτοιμο. Ελέγξτε τη σύνδεσή σας στο δίκτυο"),
("Control Remote Desktop", "Έλεγχος απομακρυσμένου σταθμού εργασίας"),
("Transfer File", "Μεταφορά αρχείου"),
("Transfer file", "Μεταφορά αρχείου"),
("Connect", "Σύνδεση"),
("Recent Sessions", "Πρόσφατες συνεδρίες"),
("Address Book", "Βιβλίο διευθύνσεων"),
("Recent sessions", "Πρόσφατες συνεδρίες"),
("Address book", "Βιβλίο διευθύνσεων"),
("Confirmation", "Επιβεβαίωση"),
("TCP Tunneling", "TCP Tunneling"),
("TCP tunneling", "TCP tunneling"),
("Remove", "Κατάργηση"),
("Refresh random password", "Νέος τυχαίος κωδικός πρόσβασης"),
("Set your own password", "Ορίστε τον δικό σας κωδικό πρόσβασης"),
("Enable Keyboard/Mouse", "Ενεργοποίηση πληκτρολογίου/ποντικιού"),
("Enable Clipboard", "Ενεργοποίηση προχείρου"),
("Enable File Transfer", "Ενεργοποίηση μεταφοράς αρχείων"),
("Enable TCP Tunneling", "Ενεργοποίηση TCP Tunneling"),
("Enable keyboard/mouse", "Ενεργοποίηση πληκτρολογίου/ποντικιού"),
("Enable clipboard", "Ενεργοποίηση προχείρου"),
("Enable file transfer", "Ενεργοποίηση μεταφοράς αρχείων"),
("Enable TCP tunneling", "Ενεργοποίηση TCP tunneling"),
("IP Whitelisting", "Λίστα επιτρεπόμενων IP"),
("ID/Relay Server", "Διακομιστής ID/Αναμετάδοσης"),
("Import Server Config", "Εισαγωγή διαμόρφωσης διακομιστή"),
("Import server config", "Εισαγωγή διαμόρφωσης διακομιστή"),
("Export Server Config", "Εξαγωγή διαμόρφωσης διακομιστή"),
("Import server configuration successfully", "Επιτυχής εισαγωγή διαμόρφωσης διακομιστή"),
("Export server configuration successfully", "Επιτυχής εξαγωγή διαμόρφωσης διακομιστή"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Αποδοχή"),
("Dismiss", "Απόρριψη"),
("Disconnect", "Αποσύνδεση"),
("Allow using keyboard and mouse", "Να επιτρέπεται η χρήση πληκτρολογίου και ποντικιού"),
("Allow using clipboard", "Να επιτρέπεται η χρήση του προχείρου"),
("Allow hearing sound", "Να επιτρέπεται η αναπαραγωγή ήχου"),
("Allow file copy and paste", "Να επιτρέπεται η αντιγραφή και επικόλληση αρχείων"),
("Enable file copy and paste", "Να επιτρέπεται η αντιγραφή και επικόλληση αρχείων"),
("Connected", "Συνδεδεμένο"),
("Direct and encrypted connection", "Άμεση και κρυπτογραφημένη σύνδεση"),
("Relayed and encrypted connection", "Κρυπτογραφημένη σύνδεση με αναμετάδοση"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Γίνεται σύνδεση..."),
("Enable RDP session sharing", "Ενεργοποίηση κοινής χρήσης RDP"),
("Auto Login", "Αυτόματη είσοδος"),
("Enable Direct IP Access", "Ενεργοποίηση άμεσης πρόσβασης IP"),
("Enable direct IP access", "Ενεργοποίηση άμεσης πρόσβασης IP"),
("Rename", "Μετονομασία"),
("Space", "Χώρος"),
("Create Desktop Shortcut", "Δημιουργία συντόμευσης στην επιφάνεια εργασίας"),
("Create desktop shortcut", "Δημιουργία συντόμευσης στην επιφάνεια εργασίας"),
("Change Path", "Αλλαγή διαδρομής δίσκου"),
("Create Folder", "Δημιουργία φακέλου"),
("Please enter the folder name", "Παρακαλώ εισάγετε το όνομα του φακέλου"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Εκτέλεση του RustDesk στο παρασκήνιο"),
("Ignore Battery Optimizations", "Παράβλεψη βελτιστοποιήσεων μπαταρίας"),
("android_open_battery_optimizations_tip", "Θέλετε να ανοίξετε τις ρυθμίσεις βελτιστοποίησης μπαταρίας;"),
("Start on Boot", "Έναρξη κατά την εκκίνηση"),
("Start on boot", "Έναρξη κατά την εκκίνηση"),
("Start the screen sharing service on boot, requires special permissions", "Η έναρξη της υπηρεσίας κοινής χρήσης οθόνης κατά την εκκίνηση, απαιτεί ειδικά δικαιώματα"),
("Connection not allowed", "Η σύνδεση δεν επιτρέπεται"),
("Legacy mode", "Λειτουργία συμβατότητας"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Χρήση μόνιμου κωδικού πρόσβασης"),
("Use both passwords", "Χρήση και των δύο κωδικών πρόσβασης"),
("Set permanent password", "Ορισμός μόνιμου κωδικού πρόσβασης"),
("Enable Remote Restart", "Ενεργοποίηση απομακρυσμένης επανεκκίνησης"),
("Allow remote restart", "Να επιτρέπεται η απομακρυσμένη επανεκκίνηση"),
("Restart Remote Device", "Επανεκκίνηση απομακρυσμένης συσκευής"),
("Enable remote restart", "Ενεργοποίηση απομακρυσμένης επανεκκίνησης"),
("Restart remote device", "Επανεκκίνηση απομακρυσμένης συσκευής"),
("Are you sure you want to restart", "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση"),
("Restarting Remote Device", "Γίνεται επανεκκίνηση της απομακρυσμένης συσκευής"),
("Restarting remote device", "Γίνεται επανεκκίνηση της απομακρυσμένης συσκευής"),
("remote_restarting_tip", "Η απομακρυσμένη συσκευή επανεκκινείται, κλείστε αυτό το μήνυμα και επανασυνδεθείτε χρησιμοποιώντας τον μόνιμο κωδικό πρόσβασης."),
("Copied", "Αντιγράφηκε"),
("Exit Fullscreen", "Έξοδος από πλήρη οθόνη"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Από το σύστημα"),
("Enable hardware codec", "Ενεργοποίηση κωδικοποιητή υλικού"),
("Unlock Security Settings", "Ξεκλείδωμα ρυθμίσεων ασφαλείας"),
("Enable Audio", "Ενεργοποίηση ήχου"),
("Enable audio", "Ενεργοποίηση ήχου"),
("Unlock Network Settings", "Ξεκλείδωμα ρυθμίσεων δικτύου"),
("Server", "Διακομιστής"),
("Direct IP Access", "Πρόσβαση με χρήση IP"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Αλλαγή"),
("Start session recording", "Έναρξη εγγραφής συνεδρίας"),
("Stop session recording", "Διακοπή εγγραφής συνεδρίας"),
("Enable Recording Session", "Ενεργοποίηση εγγραφής συνεδρίας"),
("Allow recording session", "Να επιτρέπεται η εγγραφή συνεδρίας"),
("Enable LAN Discovery", "Ενεργοποίηση εντοπισμού LAN"),
("Deny LAN Discovery", "Απαγόρευση εντοπισμού LAN"),
("Enable recording session", "Ενεργοποίηση εγγραφής συνεδρίας"),
("Enable LAN discovery", "Ενεργοποίηση εντοπισμού LAN"),
("Deny LAN discovery", "Απαγόρευση εντοπισμού LAN"),
("Write a message", "Γράψτε ένα μήνυμα"),
("Prompt", "Υπενθυμίζω"),
("Please wait for confirmation of UAC...", "Παρακαλώ περιμένετε για επιβεβαίωση του UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Η υποστήριξη Wayland βρίσκεται σε πειραματικό στάδιο, χρησιμοποιήστε το X11 εάν χρειάζεστε πρόσβαση χωρίς επίβλεψη."),
("Right click to select tabs", "Κάντε δεξί κλικ για να επιλέξετε καρτέλες"),
("Skipped", "Παράλειψη"),
("Add to Address Book", "Προσθήκη στο Βιβλίο Διευθύνσεων"),
("Add to address book", "Προσθήκη στο Βιβλίο Διευθύνσεων"),
("Group", "Ομάδα"),
("Search", "Αναζήτηση"),
("Closed manually by web console", "Κλειστό χειροκίνητα από την κονσόλα web"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -3,21 +3,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
[
("desk_tip", "Your desktop can be accessed with this ID and password."),
("connecting_status", "Connecting to the RustDesk network..."),
("Enable Service", "Enable service"),
("Start Service", "Enable service"),
("not_ready_status", "Not ready. Please check your connection"),
("Transfer File", "Transfer file"),
("Recent Sessions", "Recent sessions"),
("Address Book", "Address book"),
("TCP Tunneling", "TCP tunneling"),
("Enable Keyboard/Mouse", "Enable keyboard/mouse"),
("Enable Clipboard", "Enable clipboard"),
("Enable File Transfer", "Enable file transfer"),
("Enable TCP Tunneling", "Enable TCP tunneling"),
("IP Whitelisting", "IP whitelisting"),
("ID/Relay Server", "ID/Relay server"),
("Import Server Config", "Import server config"),
("Export Server Config", "Export server config"),
("id_change_tip", "Only a-z, A-Z, 0-9 and _ (underscore) characters allowed. The first letter must be a-z, A-Z. Length between 6 and 16."),
("Slogan_tip", "Made with heart in this chaotic world!"),
("Build Date", "Build date"),
@@ -61,8 +48,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("setup_server_tip", "For faster connection, please set up your own server"),
("Enter Remote ID", "Enter remote ID"),
("Auto Login", "Auto Login (Only valid if you set \"Lock after session end\")"),
("Enable Direct IP Access", "Enable direct IP access"),
("Create Desktop Shortcut", "Create desktop shortcut"),
("Change Path", "Change path"),
("Create Folder", "Create folder"),
("whitelist_tip", "Only whitelisted IP can access me"),
@@ -104,15 +89,11 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Turning on \"Screen Capture\" will automatically start the service, allowing other devices to request a connection to your device."),
("android_stop_service_tip", "Closing the service will automatically close all established connections."),
("android_version_audio_tip", "The current Android version does not support audio capture, please upgrade to Android 10 or higher."),
("android_start_service_tip", "Tap [Start Service] or enable [Screen Capture] permission to start the screen sharing service."),
("android_start_service_tip", "Tap [Start service] or enable [Screen Capture] permission to start the screen sharing service."),
("android_permission_may_not_change_tip", "Permissions for established connections may not be changed instantly until reconnected."),
("doc_mac_permission", "https://rustdesk.com/docs/en/manual/mac/#enable-permissions"),
("Ignore Battery Optimizations", "Ignore battery optimizations"),
("android_open_battery_optimizations_tip", "If you want to disable this feature, please go to the next RustDesk application settings page, find and enter [Battery], Uncheck [Unrestricted]"),
("Start on Boot", "Start on boot"),
("Enable Remote Restart", "Enable remote restart"),
("Restart Remote Device", "Restart remote device"),
("Restarting Remote Device", "Restarting remote device"),
("remote_restarting_tip", "Remote device is restarting, please close this message box and reconnect with permanent password after a while"),
("Exit Fullscreen", "Exit fullscreen"),
("Mobile Actions", "Mobile actions"),
@@ -131,16 +112,12 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Light Theme", "Light theme"),
("Follow System", "Follow system"),
("Unlock Security Settings", "Unlock security settings"),
("Enable Audio", "Enable audio"),
("Unlock Network Settings", "Unlock network settings"),
("Direct IP Access", "Direct IP access"),
("Audio Input Device", "Audio input device"),
("Use IP Whitelisting", "Use IP whitelisting"),
("Pin Toolbar", "Pin toolbar"),
("Unpin Toolbar", "Unpin toolbar"),
("Enable Recording Session", "Enable recording session"),
("Enable LAN Discovery", "Enable LAN discovery"),
("Deny LAN Discovery", "Deny LAN discovery"),
("elevated_foreground_window_tip", "The current window of the remote desktop requires higher privilege to operate, so it's unable to use the mouse and keyboard temporarily. You can request the remote user to minimize the current window, or click elevation button on the connection management window. To avoid this problem, it is recommended to install the software on the remote device."),
("Keyboard Settings", "Keyboard settings"),
("Full Access", "Full access"),
@@ -150,7 +127,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("One-time Password", "One-time password"),
("hide_cm_tip", "Allow hiding only if accepting sessions via password and using permanent password"),
("wayland_experiment_tip", "Wayland support is in experimental stage, please use X11 if you require unattended access."),
("Add to Address Book", "Add to address book"),
("software_render_tip", "If you're using Nvidia graphics card under Linux and the remote window closes immediately after connecting, switching to the open-source Nouveau driver and choosing to use software rendering may help. A software restart is required."),
("config_input", "In order to control remote desktop with keyboard, you need to grant RustDesk \"Input Monitoring\" permissions."),
("config_microphone", "In order to speak remotely, you need to grant RustDesk \"Record Audio\" permissions."),
@@ -226,5 +202,6 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("display_is_plugged_out_msg", "The display is plugged out, switch to the first display."),
("elevated_switch_display_msg", "Switch to the primary display because multiple displays are not supported in elevated mode."),
("selinux_tip", "SELinux is enabled on your device, which may prevent RustDesk from running properly as controlled side."),
("id_input_tip", "You can input an ID, a direct IP, or a domain with a port (<domain>:<port>).\nIf you want to access a device on another server, please append the server address (<id>@<server_address>?key=<key_value>), for example,\n9123456234@192.168.16.1:21117?key=5Qbwsde3unUcJBtrx9ZkvUmwFNoExHzpryHuPUdqlWM=.\nIf you want to access a device on a public server, please input \"<id>@public\", the key is not needed for public server"),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Preta"),
("Established", ""),
("connecting_status", "Konektante al la reto RustDesk..."),
("Enable Service", "Ebligi servon"),
("Start Service", "Starti servon"),
("Enable service", "Ebligi servon"),
("Start service", "Starti servon"),
("Service is running", ""),
("Service is not running", "La servo ne funkcias"),
("not_ready_status", "Ne preta, bonvolu kontroli la retkonekto"),
("Control Remote Desktop", "Kontroli foran aparaton"),
("Transfer File", "Transigi dosieron"),
("Transfer file", "Transigi dosieron"),
("Connect", "Konekti al"),
("Recent Sessions", "Lastaj sesioj"),
("Address Book", "Adresaro"),
("Recent sessions", "Lastaj sesioj"),
("Address book", "Adresaro"),
("Confirmation", "Konfirmacio"),
("TCP Tunneling", "Tunelado TCP"),
("TCP tunneling", "Tunelado TCP"),
("Remove", "Forigi"),
("Refresh random password", "Regeneri hazardan pasvorton"),
("Set your own password", "Agordi vian propran pasvorton"),
("Enable Keyboard/Mouse", "Ebligi klavaro/muso"),
("Enable Clipboard", "Sinkronigi poŝon"),
("Enable File Transfer", "Ebligi dosiertransigado"),
("Enable TCP Tunneling", "Ebligi tunelado TCP"),
("Enable keyboard/mouse", "Ebligi klavaro/muso"),
("Enable clipboard", "Sinkronigi poŝon"),
("Enable file transfer", "Ebligi dosiertransigado"),
("Enable TCP tunneling", "Ebligi tunelado TCP"),
("IP Whitelisting", "Listo de IP akceptataj"),
("ID/Relay Server", "Identigila/Relajsa servilo"),
("Import Server Config", "Enporti servilan agordon"),
("Import server config", "Enporti servilan agordon"),
("Export Server Config", ""),
("Import server configuration successfully", "Importi servilan agordon sukcese"),
("Export server configuration successfully", ""),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Akcepti"),
("Dismiss", "Malakcepti"),
("Disconnect", "Malkonekti"),
("Allow using keyboard and mouse", "Permesi la uzon de la klavaro kaj muso"),
("Allow using clipboard", "Permesi la uzon de la poŝo"),
("Allow hearing sound", "Permesi la uzon de la sono"),
("Allow file copy and paste", "Permesu kopii kaj alglui dosierojn"),
("Enable file copy and paste", "Permesu kopii kaj alglui dosierojn"),
("Connected", "Konektata"),
("Direct and encrypted connection", "Konekcio direkta ĉifrata"),
("Relayed and encrypted connection", "Konekcio relajsa ĉifrata"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Konektante..."),
("Enable RDP session sharing", "Ebligi la kundivido de sesio RDP"),
("Auto Login", "Aŭtomata konektado (la ŝloso nur estos ebligita post la malebligado de la unua parametro)"),
("Enable Direct IP Access", "Permesi direkta eniro per IP"),
("Enable direct IP access", "Permesi direkta eniro per IP"),
("Rename", "Renomi"),
("Space", "Spaco"),
("Create Desktop Shortcut", "Krei ligilon sur la labortablon"),
("Create desktop shortcut", "Krei ligilon sur la labortablon"),
("Change Path", "Ŝanĝi vojon"),
("Create Folder", "Krei dosierujon"),
("Please enter the folder name", "Bonvolu enigi la dosiernomon"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", ""),
("Ignore Battery Optimizations", ""),
("android_open_battery_optimizations_tip", ""),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", ""),
("Legacy mode", ""),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", ""),
("Use both passwords", ""),
("Set permanent password", ""),
("Enable Remote Restart", ""),
("Allow remote restart", ""),
("Restart Remote Device", ""),
("Enable remote restart", ""),
("Restart remote device", ""),
("Are you sure you want to restart", ""),
("Restarting Remote Device", ""),
("Restarting remote device", ""),
("remote_restarting_tip", ""),
("Copied", ""),
("Exit Fullscreen", "Eliru Plenekranon"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", ""),
("Enable hardware codec", ""),
("Unlock Security Settings", ""),
("Enable Audio", ""),
("Enable audio", ""),
("Unlock Network Settings", ""),
("Server", ""),
("Direct IP Access", ""),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", ""),
("Start session recording", ""),
("Stop session recording", ""),
("Enable Recording Session", ""),
("Allow recording session", ""),
("Enable LAN Discovery", ""),
("Deny LAN Discovery", ""),
("Enable recording session", ""),
("Enable LAN discovery", ""),
("Deny LAN discovery", ""),
("Write a message", ""),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Listo"),
("Established", "Establecido"),
("connecting_status", "Conexión a la red RustDesk en progreso..."),
("Enable Service", "Habilitar Servicio"),
("Start Service", "Iniciar Servicio"),
("Enable service", "Habilitar Servicio"),
("Start service", "Iniciar Servicio"),
("Service is running", "El servicio se está ejecutando"),
("Service is not running", "El servicio no se está ejecutando"),
("not_ready_status", "No está listo. Comprueba tu conexión"),
("Control Remote Desktop", "Controlar escritorio remoto"),
("Transfer File", "Transferir archivo"),
("Transfer file", "Transferir archivo"),
("Connect", "Conectar"),
("Recent Sessions", "Sesiones recientes"),
("Address Book", "Directorio"),
("Recent sessions", "Sesiones recientes"),
("Address book", "Directorio"),
("Confirmation", "Confirmación"),
("TCP Tunneling", "Túnel TCP"),
("TCP tunneling", "Túnel TCP"),
("Remove", "Quitar"),
("Refresh random password", "Actualizar contraseña aleatoria"),
("Set your own password", "Establece tu propia contraseña"),
("Enable Keyboard/Mouse", "Habilitar teclado/ratón"),
("Enable Clipboard", "Habilitar portapapeles"),
("Enable File Transfer", "Habilitar transferencia de archivos"),
("Enable TCP Tunneling", "Habilitar túnel TCP"),
("Enable keyboard/mouse", "Habilitar teclado/ratón"),
("Enable clipboard", "Habilitar portapapeles"),
("Enable file transfer", "Habilitar transferencia de archivos"),
("Enable TCP tunneling", "Habilitar túnel TCP"),
("IP Whitelisting", "Direcciones IP admitidas"),
("ID/Relay Server", "Servidor ID/Relay"),
("Import Server Config", "Importar configuración de servidor"),
("Import server config", "Importar configuración de servidor"),
("Export Server Config", "Exportar configuración del servidor"),
("Import server configuration successfully", "Configuración de servidor importada con éxito"),
("Export server configuration successfully", "Configuración de servidor exportada con éxito"),
@@ -48,7 +48,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Privacy Statement", "Declaración de privacidad"),
("Mute", "Silenciar"),
("Build Date", "Fecha de compilación"),
("Version", ""),
("Version", "¨Versión"),
("Home", "Inicio"),
("Audio Input", "Entrada de audio"),
("Enhancements", "Mejoras"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Aceptar"),
("Dismiss", "Cancelar"),
("Disconnect", "Desconectar"),
("Allow using keyboard and mouse", "Permitir el uso del teclado y el mouse"),
("Allow using clipboard", "Permitir usar portapapeles"),
("Allow hearing sound", "Permitir escuchar sonido"),
("Allow file copy and paste", "Permitir copiar y pegar archivos"),
("Enable file copy and paste", "Permitir copiar y pegar archivos"),
("Connected", "Conectado"),
("Direct and encrypted connection", "Conexión directa y cifrada"),
("Relayed and encrypted connection", "Conexión retransmitida y cifrada"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Iniciando sesión..."),
("Enable RDP session sharing", "Habilitar el uso compartido de sesiones RDP"),
("Auto Login", "Inicio de sesión automático"),
("Enable Direct IP Access", "Habilitar acceso IP directo"),
("Enable direct IP access", "Habilitar acceso IP directo"),
("Rename", "Renombrar"),
("Space", "Espacio"),
("Create Desktop Shortcut", "Crear acceso directo en el escritorio"),
("Create desktop shortcut", "Crear acceso directo en el escritorio"),
("Change Path", "Cambiar ruta"),
("Create Folder", "Crear carpeta"),
("Please enter the folder name", "Por favor introduzca el nombre de la carpeta"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Dejar RustDesk como Servicio en 2do plano"),
("Ignore Battery Optimizations", "Ignorar optimizacioens de bateria"),
("android_open_battery_optimizations_tip", "Si deseas deshabilitar esta característica, por favor, ve a la página siguiente de ajustes, busca y entra en [Batería] y desmarca [Sin restricción]"),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Conexión no disponible"),
("Legacy mode", "Modo heredado"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Usar contraseña permamente"),
("Use both passwords", "Usar ambas contraseñas"),
("Set permanent password", "Establecer contraseña permamente"),
("Enable Remote Restart", "Habilitar reinicio remoto"),
("Allow remote restart", "Permitir reinicio remoto"),
("Restart Remote Device", "Reiniciar dispositivo"),
("Enable remote restart", "Habilitar reinicio remoto"),
("Restart remote device", "Reiniciar dispositivo"),
("Are you sure you want to restart", "¿Estás seguro de que deseas reiniciar?"),
("Restarting Remote Device", "Reiniciando dispositivo remoto"),
("Restarting remote device", "Reiniciando dispositivo remoto"),
("remote_restarting_tip", "El dispositivo remoto se está reiniciando. Por favor cierre este mensaje y vuelva a conectarse con la contraseña peremanente en unos momentos."),
("Copied", "Copiado"),
("Exit Fullscreen", "Salir de pantalla completa"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Tema del sistema"),
("Enable hardware codec", "Habilitar códec por hardware"),
("Unlock Security Settings", "Desbloquear ajustes de seguridad"),
("Enable Audio", "Habilitar Audio"),
("Enable audio", "Habilitar Audio"),
("Unlock Network Settings", "Desbloquear Ajustes de Red"),
("Server", "Servidor"),
("Direct IP Access", "Acceso IP Directo"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Cambiar"),
("Start session recording", "Comenzar grabación de sesión"),
("Stop session recording", "Detener grabación de sesión"),
("Enable Recording Session", "Habilitar grabación de sesión"),
("Allow recording session", "Permitir grabación de sesión"),
("Enable LAN Discovery", "Habilitar descubrimiento de LAN"),
("Deny LAN Discovery", "Denegar descubrimiento de LAN"),
("Enable recording session", "Habilitar grabación de sesión"),
("Enable LAN discovery", "Habilitar descubrimiento de LAN"),
("Deny LAN discovery", "Denegar descubrimiento de LAN"),
("Write a message", "Escribir un mensaje"),
("Prompt", ""),
("Please wait for confirmation of UAC...", "Por favor, espera confirmación de UAC"),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "El soporte para Wayland está en fase experimental, por favor, use X11 si necesita acceso desatendido."),
("Right click to select tabs", "Clic derecho para seleccionar pestañas"),
("Skipped", "Omitido"),
("Add to Address Book", "Añadir al directorio"),
("Add to address book", "Añadir al directorio"),
("Group", "Grupo"),
("Search", "Búsqueda"),
("Closed manually by web console", "Cerrado manualmente por la consola web"),
@@ -566,12 +561,14 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Show displays as individual windows", "Mostrar pantallas como ventanas individuales"),
("Use all my displays for the remote session", "Usar todas mis pantallas para la sesión remota"),
("selinux_tip", "SELinux está activado en tu dispositivo, lo que puede hacer que RustDesk no se ejecute correctamente como lado controlado."),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("selinux_tip", ""),
("Virtual display", ""),
("Plug out all", ""),
("Change view", "Cambiar vista"),
("Big tiles", "Mosaicos grandes"),
("Small tiles", "Mosaicos pequeños"),
("List", "Lista"),
("Virtual display", "Pantalla virtual"),
("Plug out all", "Desconectar todo"),
("True color (4:4:4)", "Color real (4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "آماده به کار"),
("Established", "اتصال برقرار شد"),
("connecting_status", "...در حال برقراری ارتباط با سرور"),
("Enable Service", "فعالسازی سرویس"),
("Start Service", "اجرای سرویس"),
("Enable service", "فعالسازی سرویس"),
("Start service", "اجرای سرویس"),
("Service is running", "سرویس در حال اجرا است"),
("Service is not running", "سرویس اجرا نشده"),
("not_ready_status", "ارتباط برقرار نشد. لطفا شبکه خود را بررسی کنید"),
("Control Remote Desktop", "کنترل دسکتاپ میزبان"),
("Transfer File", "انتقال فایل"),
("Transfer file", "انتقال فایل"),
("Connect", "اتصال"),
("Recent Sessions", "جلسات اخیر"),
("Address Book", "دفترچه آدرس"),
("Recent sessions", "جلسات اخیر"),
("Address book", "دفترچه آدرس"),
("Confirmation", "تایید"),
("TCP Tunneling", "TCP تانل"),
("TCP tunneling", "TCP تانل"),
("Remove", "حذف"),
("Refresh random password", "بروزرسانی رمز عبور تصادفی"),
("Set your own password", "!رمز عبور دلخواه بگذارید"),
("Enable Keyboard/Mouse", " فعالسازی ماوس/صفحه کلید"),
("Enable Clipboard", "فعال سازی کلیپبورد"),
("Enable File Transfer", "انتقال فایل را فعال کنید"),
("Enable TCP Tunneling", "را فعال کنید TCP تانل"),
("Enable keyboard/mouse", " فعالسازی ماوس/صفحه کلید"),
("Enable clipboard", "فعال سازی کلیپبورد"),
("Enable file transfer", "انتقال فایل را فعال کنید"),
("Enable TCP tunneling", "را فعال کنید TCP تانل"),
("IP Whitelisting", "های مجاز IP لیست"),
("ID/Relay Server", "ID/Relay سرور"),
("Import Server Config", "تنظیم سرور با فایل"),
("Import server config", "تنظیم سرور با فایل"),
("Export Server Config", "ایجاد فایل تظیمات از سرور فعلی"),
("Import server configuration successfully", "تنظیمات سرور با فایل کانفیگ با موفقیت انجام شد"),
("Export server configuration successfully", "ایجاد فایل کانفیگ از تنظیمات فعلی با موفقیت انجام شد"),
@@ -172,17 +172,14 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Local Port", "پورت محلی"),
("Local Address", "آدرس محلی"),
("Change Local Port", "تغییر پورت محلی"),
("setup_server_tip", "برای اتصال سریعتر، سرور اتصال ضخصی خود را راه اندازی کنید"),
("setup_server_tip", "برای اتصال سریعتر، سرور اتصال شخصی خود را راه اندازی کنید"),
("Too short, at least 6 characters.", "بسیار کوتاه حداقل 6 کاراکتر مورد نیاز است"),
("The confirmation is not identical.", "تأیید ناموفق بود."),
("Permissions", "دسترسی ها"),
("Accept", "پذیرفتن"),
("Dismiss", "رد کردن"),
("Disconnect", "قطع اتصال"),
("Allow using keyboard and mouse", "مجاز بودن استفاده از صفحه کلید و ماوس"),
("Allow using clipboard", "مجاز بودن استفاده از کلیپبورد"),
("Allow hearing sound", "مجاز بودن شنیدن صدا"),
("Allow file copy and paste", "مجاز بودن کپی و چسباندن فایل"),
("Enable file copy and paste", "مجاز بودن کپی و چسباندن فایل"),
("Connected", "متصل شده"),
("Direct and encrypted connection", "اتصال مستقیم و رمزگذاری شده"),
("Relayed and encrypted connection", "و رمزگذاری شده Relay اتصال از طریق"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "...در حال ورود"),
("Enable RDP session sharing", "را فعال کنید RDP اشتراک گذاری جلسه"),
("Auto Login", "ورود خودکار"),
("Enable Direct IP Access", "را فعال کنید IP دسترسی مستقیم"),
("Enable direct IP access", "را فعال کنید IP دسترسی مستقیم"),
("Rename", "تغییر نام"),
("Space", "فضا"),
("Create Desktop Shortcut", "ساخت میانبر روی دسکتاپ"),
("Create desktop shortcut", "ساخت میانبر روی دسکتاپ"),
("Change Path", "تغییر مسیر"),
("Create Folder", "ایجاد پوشه"),
("Please enter the folder name", "نام پوشه را وارد کنید"),
@@ -289,7 +286,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "فعال کردن ضبط صفحه به طور خودکار سرویس را راه اندازی می کند و به دستگاه های دیگر امکان می دهد درخواست اتصال به آن دستگاه را داشته باشند."),
("android_stop_service_tip", "با بستن سرویس، تمام اتصالات برقرار شده به طور خودکار بسته می شود"),
("android_version_audio_tip", "نسخه فعلی اندروید از ضبط صدا پشتیبانی نمی‌کند، لطفاً به اندروید 10 یا بالاتر به‌روزرسانی کنید"),
("android_start_service_tip", "را فعال کنید [Screen Capture] ضربه بزنید یا مجوز [Start Service] برای شروع سرویس اشتراک ‌گذاری صفحه، روی"),
("android_start_service_tip", "را فعال کنید [Screen Capture] ضربه بزنید یا مجوز [Start service] برای شروع سرویس اشتراک ‌گذاری صفحه، روی"),
("android_permission_may_not_change_tip", "مجوزهای ایجاد شده یا تغییر یافته برای اتصالات جاری تغییر نخواهد کرد، برای تغییر نیاز است مجددا اتصال برقرار گردد"),
("Account", "حساب کاربری"),
("Overwrite", "بازنویسی"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "را در پس زمینه نگه دارید RustDesk سرویس"),
("Ignore Battery Optimizations", "بهینه سازی باتری نادیده گرفته شود"),
("android_open_battery_optimizations_tip", "به صفحه تنظیمات بعدی بروید"),
("Start on Boot", "در هنگام بوت شروع شود"),
("Start on boot", "در هنگام بوت شروع شود"),
("Start the screen sharing service on boot, requires special permissions", "سرویس اشتراک‌گذاری صفحه را در بوت راه‌اندازی کنید، به مجوزهای خاصی نیاز دارد"),
("Connection not allowed", "اتصال مجاز نیست"),
("Legacy mode", "legacy حالت"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "از رمز عبور دائمی استفاده شود"),
("Use both passwords", "از هر دو رمز عبور استفاده شود"),
("Set permanent password", "یک رمز عبور دائمی تنظیم شود"),
("Enable Remote Restart", "فعال کردن قابلیت ریستارت از راه دور"),
("Allow remote restart", "مجاز بودن ریستارت از راه دور"),
("Restart Remote Device", "ریستارت کردن از راه دور"),
("Enable remote restart", "فعال کردن قابلیت ریستارت از راه دور"),
("Restart remote device", "ریستارت کردن از راه دور"),
("Are you sure you want to restart", "ایا مطمئن هستید میخواهید راه اندازی مجدد انجام بدید؟"),
("Restarting Remote Device", "در حال راه اندازی مجدد دستگاه راه دور"),
("Restarting remote device", "در حال راه اندازی مجدد دستگاه راه دور"),
("remote_restarting_tip", "دستگاه راه دور در حال راه اندازی مجدد است. این پیام را ببندید و پس از مدتی با استفاده از یک رمز عبور دائمی دوباره وصل شوید."),
("Copied", "کپی شده است"),
("Exit Fullscreen", "از حالت تمام صفحه خارج شوید"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "پیروی از سیستم"),
("Enable hardware codec", "فعال سازی کدک سخت افزاری"),
("Unlock Security Settings", "دسترسی کامل به تنظیمات امنیتی"),
("Enable Audio", "فعال شدن صدا"),
("Enable audio", "فعال شدن صدا"),
("Unlock Network Settings", "دسترسی کامل به تنظیمات شبکه"),
("Server", "سرور"),
("Direct IP Access", "IP دسترسی مستقیم به"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "تغییر"),
("Start session recording", "شروع ضبط جلسه"),
("Stop session recording", "توقف ضبط جلسه"),
("Enable Recording Session", "فعالسازی ضبط جلسه"),
("Allow recording session", "مجومجاز بودن ضبط جلسه"),
("Enable LAN Discovery", "فعالسازی جستجو در شبکه"),
("Deny LAN Discovery", "غیر فعالسازی جستجو در شبکه"),
("Enable recording session", "فعالسازی ضبط جلسه"),
("Enable LAN discovery", "فعالسازی جستجو در شبکه"),
("Deny LAN discovery", "غیر فعالسازی جستجو در شبکه"),
("Write a message", "یک پیام بنویسید"),
("Prompt", "سریع"),
("Please wait for confirmation of UAC...", "باشید UAC لطفا منتظر تایید"),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "پشتیبانی Wayland در مرحله آزمایشی است، لطفاً در صورت نیاز به دسترسی بدون مراقبت از X11 استفاده کنید."),
("Right click to select tabs", "برای انتخاب تب ها راست کلیک کنید"),
("Skipped", "رد شد"),
("Add to Address Book", "افزودن به دفترچه آدرس"),
("Add to address book", "افزودن به دفترچه آدرس"),
("Group", "گروه"),
("Search", "جستجو"),
("Closed manually by web console", "به صورت دستی توسط کنسول وب بسته شد"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Prêt"),
("Established", "Établi"),
("connecting_status", "Connexion au réseau RustDesk..."),
("Enable Service", "Autoriser le service"),
("Start Service", "Démarrer le service"),
("Enable service", "Autoriser le service"),
("Start service", "Démarrer le service"),
("Service is running", "Le service est en cours d'exécution"),
("Service is not running", "Le service ne fonctionne pas"),
("not_ready_status", "Pas prêt, veuillez vérifier la connexion réseau"),
("Control Remote Desktop", "Contrôler le bureau à distance"),
("Transfer File", "Transfert de fichiers"),
("Transfer file", "Transfert de fichiers"),
("Connect", "Se connecter"),
("Recent Sessions", "Sessions récentes"),
("Address Book", "Carnet d'adresses"),
("Recent sessions", "Sessions récentes"),
("Address book", "Carnet d'adresses"),
("Confirmation", "Confirmation"),
("TCP Tunneling", "Tunnel TCP"),
("TCP tunneling", "Tunnel TCP"),
("Remove", "Supprimer"),
("Refresh random password", "Actualiser le mot de passe aléatoire"),
("Set your own password", "Définir votre propre mot de passe"),
("Enable Keyboard/Mouse", "Activer le contrôle clavier/souris"),
("Enable Clipboard", "Activer la synchronisation du presse-papier"),
("Enable File Transfer", "Activer le transfert de fichiers"),
("Enable TCP Tunneling", "Activer le tunnel TCP"),
("Enable keyboard/mouse", "Activer le contrôle clavier/souris"),
("Enable clipboard", "Activer la synchronisation du presse-papier"),
("Enable file transfer", "Activer le transfert de fichiers"),
("Enable TCP tunneling", "Activer le tunnel TCP"),
("IP Whitelisting", "Liste blanche IP"),
("ID/Relay Server", "ID/Serveur Relais"),
("Import Server Config", "Importer la configuration du serveur"),
("Import server config", "Importer la configuration du serveur"),
("Export Server Config", "Exporter la configuration du serveur"),
("Import server configuration successfully", "Configuration du serveur importée avec succès"),
("Export server configuration successfully", "Configuration du serveur exportée avec succès"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Accepter"),
("Dismiss", "Rejeter"),
("Disconnect", "Déconnecter"),
("Allow using keyboard and mouse", "Autoriser l'utilisation du clavier et de la souris"),
("Allow using clipboard", "Autoriser l'utilisation du presse-papier"),
("Allow hearing sound", "Autoriser l'envoi du son"),
("Allow file copy and paste", "Autoriser le copier-coller de fichiers"),
("Enable file copy and paste", "Autoriser le copier-coller de fichiers"),
("Connected", "Connecté"),
("Direct and encrypted connection", "Connexion directe chiffrée"),
("Relayed and encrypted connection", "Connexion relais chiffrée"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "En cours de connexion ..."),
("Enable RDP session sharing", "Activer le partage de session RDP"),
("Auto Login", "Connexion automatique (le verrouillage ne sera effectif qu'après la désactivation du premier paramètre)"),
("Enable Direct IP Access", "Autoriser l'accès direct par IP"),
("Enable direct IP access", "Autoriser l'accès direct par IP"),
("Rename", "Renommer"),
("Space", "Espace"),
("Create Desktop Shortcut", "Créer un raccourci sur le bureau"),
("Create desktop shortcut", "Créer un raccourci sur le bureau"),
("Change Path", "Changer de chemin"),
("Create Folder", "Créer un dossier"),
("Please enter the folder name", "Veuillez saisir le nom du dossier"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Gardez le service RustDesk en arrière plan"),
("Ignore Battery Optimizations", "Ignorer les optimisations batterie"),
("android_open_battery_optimizations_tip", "Conseil android d'optimisation de batterie"),
("Start on Boot", "Lancer au démarrage"),
("Start on boot", "Lancer au démarrage"),
("Start the screen sharing service on boot, requires special permissions", "Lancer le service de partage d'écran au démarrage, nécessite des autorisations spéciales"),
("Connection not allowed", "Connexion non autorisée"),
("Legacy mode", "Mode hérité"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Utiliser un mot de passe permanent"),
("Use both passwords", "Utiliser les mots de passe unique et permanent"),
("Set permanent password", "Définir le mot de passe permanent"),
("Enable Remote Restart", "Activer le redémarrage à distance"),
("Allow remote restart", "Autoriser le redémarrage à distance"),
("Restart Remote Device", "Redémarrer l'appareil à distance"),
("Enable remote restart", "Activer le redémarrage à distance"),
("Restart remote device", "Redémarrer l'appareil à distance"),
("Are you sure you want to restart", "Êtes-vous sûrs de vouloir redémarrer l'appareil ?"),
("Restarting Remote Device", "Redémarrage de l'appareil distant"),
("Restarting remote device", "Redémarrage de l'appareil distant"),
("remote_restarting_tip", "L'appareil distant redémarre, veuillez fermer cette boîte de message et vous reconnecter avec un mot de passe permanent après un certain temps"),
("Copied", "Copié"),
("Exit Fullscreen", "Quitter le mode plein écran"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Suivi système"),
("Enable hardware codec", "Activer le transcodage matériel"),
("Unlock Security Settings", "Déverrouiller les configurations de sécurité"),
("Enable Audio", "Activer l'audio"),
("Enable audio", "Activer l'audio"),
("Unlock Network Settings", "Déverrouiller les configurations réseau"),
("Server", "Serveur"),
("Direct IP Access", "Accès IP direct"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Modifier"),
("Start session recording", "Commencer l'enregistrement"),
("Stop session recording", "Stopper l'enregistrement"),
("Enable Recording Session", "Activer l'enregistrement de session"),
("Allow recording session", "Autoriser l'enregistrement de session"),
("Enable LAN Discovery", "Activer la découverte sur réseau local"),
("Deny LAN Discovery", "Interdir la découverte sur réseau local"),
("Enable recording session", "Activer l'enregistrement de session"),
("Enable LAN discovery", "Activer la découverte sur réseau local"),
("Deny LAN discovery", "Interdir la découverte sur réseau local"),
("Write a message", "Ecrire un message"),
("Prompt", "Annonce"),
("Please wait for confirmation of UAC...", "Veuillez attendre la confirmation de l'UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Le support Wayland est en phase expérimentale, veuillez utiliser X11 si vous avez besoin d'un accès sans surveillance."),
("Right click to select tabs", "Clique droit pour selectionner les onglets"),
("Skipped", "Ignoré"),
("Add to Address Book", "Ajouter au carnet d'adresses"),
("Add to address book", "Ajouter au carnet d'adresses"),
("Group", "Groupe"),
("Search", "Rechercher"),
("Closed manually by web console", "Fermé manuellement par la console Web"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Kész"),
("Established", "Létrejött"),
("connecting_status", "Csatlakozás folyamatban..."),
("Enable Service", "Szolgáltatás engedélyezése"),
("Start Service", "Szolgáltatás indítása"),
("Enable service", "Szolgáltatás engedélyezése"),
("Start service", "Szolgáltatás indítása"),
("Service is running", "Szolgáltatás aktív"),
("Service is not running", "Szolgáltatás inaktív"),
("not_ready_status", "Kapcsolódási hiba. Kérlek ellenőrizze a hálózati beállításokat."),
("Control Remote Desktop", "Távoli számítógép vezérlése"),
("Transfer File", "Fájlátvitel"),
("Transfer file", "Fájlátvitel"),
("Connect", "Csatlakozás"),
("Recent Sessions", "Legutóbbi munkamanetek"),
("Address Book", "Címjegyzék"),
("Recent sessions", "Legutóbbi munkamanetek"),
("Address book", "Címjegyzék"),
("Confirmation", "Megerősítés"),
("TCP Tunneling", "TCP Tunneling"),
("TCP tunneling", "TCP tunneling"),
("Remove", "Eltávolít"),
("Refresh random password", "Új véletlenszerű jelszó"),
("Set your own password", "Saját jelszó beállítása"),
("Enable Keyboard/Mouse", "Billentyűzet/egér engedélyezése"),
("Enable Clipboard", "Megosztott vágólap engedélyezése"),
("Enable File Transfer", "Fájlátvitel engedélyezése"),
("Enable TCP Tunneling", "TCP Tunneling engedélyezése"),
("Enable keyboard/mouse", "Billentyűzet/egér engedélyezése"),
("Enable clipboard", "Megosztott vágólap engedélyezése"),
("Enable file transfer", "Fájlátvitel engedélyezése"),
("Enable TCP tunneling", "TCP tunneling engedélyezése"),
("IP Whitelisting", "IP engedélyezési lista"),
("ID/Relay Server", "Kiszolgáló szerver"),
("Import Server Config", "Szerver konfiguráció importálása"),
("Import server config", "Szerver konfiguráció importálása"),
("Export Server Config", "Szerver konfiguráció exportálása"),
("Import server configuration successfully", "Szerver konfiguráció sikeresen importálva"),
("Export server configuration successfully", "Szerver konfiguráció sikeresen exportálva"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Elfogadás"),
("Dismiss", "Elutasítás"),
("Disconnect", "Kapcsolat bontása"),
("Allow using keyboard and mouse", "Billentyűzet és egér használatának engedélyezése"),
("Allow using clipboard", "Vágólap használatának engedélyezése"),
("Allow hearing sound", "Hang átvitelének engedélyezése"),
("Allow file copy and paste", "Fájlok másolásának és beillesztésének engedélyezése"),
("Enable file copy and paste", "Fájlok másolásának és beillesztésének engedélyezése"),
("Connected", "Csatlakozva"),
("Direct and encrypted connection", "Közvetlen, és titkosított kapcsolat"),
("Relayed and encrypted connection", "Továbbított, és titkosított kapcsolat"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "A belépés folyamatban..."),
("Enable RDP session sharing", "RDP-munkamenet-megosztás engedélyezése"),
("Auto Login", "Automatikus bejelentkezés"),
("Enable Direct IP Access", "Közvetlen IP-elérés engedélyezése"),
("Enable direct IP access", "Közvetlen IP-elérés engedélyezése"),
("Rename", "Átnevezés"),
("Space", ""),
("Create Desktop Shortcut", "Asztali parancsikon létrehozása"),
("Create desktop shortcut", "Asztali parancsikon létrehozása"),
("Change Path", "Elérési út módosítása"),
("Create Folder", "Mappa létrehozás"),
("Please enter the folder name", "Kérjük, adja meg a mappa nevét"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "RustDesk futtatása a háttérben"),
("Ignore Battery Optimizations", "Akkumulátorkímélő figyelmen kívűl hagyása"),
("android_open_battery_optimizations_tip", "Ha le szeretné tiltani ezt a funkciót, lépjen a RustDesk alkalmazás beállítási oldalára, keresse meg az [Akkumulátorkímélő] lehetőséget és válassza a nincs korlátozás lehetőséget."),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "A csatlakozás nem engedélyezett"),
("Legacy mode", ""),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Állandó jelszó használata"),
("Use both passwords", "Mindkét jelszó használata"),
("Set permanent password", "Állandó jelszó beállítása"),
("Enable Remote Restart", "Távoli újraindítás engedélyezése"),
("Allow remote restart", "Távoli újraindítás engedélyezése"),
("Restart Remote Device", "Távoli eszköz újraindítása"),
("Enable remote restart", "Távoli újraindítás engedélyezése"),
("Restart remote device", "Távoli eszköz újraindítása"),
("Are you sure you want to restart", "Biztos szeretné újraindítani?"),
("Restarting Remote Device", "Távoli eszköz újraindítása..."),
("Restarting remote device", "Távoli eszköz újraindítása..."),
("remote_restarting_tip", "A távoli eszköz újraindul, zárja be ezt az üzenetet, csatlakozzon újra, állandó jelszavával"),
("Copied", "Másolva"),
("Exit Fullscreen", "Kilépés teljes képernyős módból"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", ""),
("Enable hardware codec", "Hardveres kodek engedélyezése"),
("Unlock Security Settings", "Biztonsági beállítások feloldása"),
("Enable Audio", "Hang engedélyezése"),
("Enable audio", "Hang engedélyezése"),
("Unlock Network Settings", "Hálózati beállítások feloldása"),
("Server", "Szerver"),
("Direct IP Access", "Közvetlen IP hozzáférés"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Változtatás"),
("Start session recording", "Munkamenet rögzítés indítása"),
("Stop session recording", "Munkamenet rögzítés leállítása"),
("Enable Recording Session", "Munkamenet rögzítés engedélyezése"),
("Allow recording session", "Munkamenet rögzítés engedélyezése"),
("Enable LAN Discovery", "Felfedezés enegedélyezése"),
("Deny LAN Discovery", "Felfedezés tiltása"),
("Enable recording session", "Munkamenet rögzítés engedélyezése"),
("Enable LAN discovery", "Felfedezés enegedélyezése"),
("Deny LAN discovery", "Felfedezés tiltása"),
("Write a message", "Üzenet írása"),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Sudah siap"),
("Established", "Didirikan"),
("connecting_status", "Menghubungkan ke jaringan RustDesk..."),
("Enable Service", "Aktifkan Layanan"),
("Start Service", "Mulai Layanan"),
("Enable service", "Aktifkan Layanan"),
("Start service", "Mulai Layanan"),
("Service is running", "Layanan berjalan"),
("Service is not running", "Layanan tidak berjalan"),
("not_ready_status", "Belum siap. Silakan periksa koneksi Anda"),
("Control Remote Desktop", "Kontrol Remote Desktop"),
("Transfer File", "File Transfer"),
("Transfer file", "File Transfer"),
("Connect", "Hubungkan"),
("Recent Sessions", "Sesi Terkini"),
("Address Book", "Buku Alamat"),
("Recent sessions", "Sesi Terkini"),
("Address book", "Buku Alamat"),
("Confirmation", "Konfirmasi"),
("TCP Tunneling", "Tunneling TCP"),
("TCP tunneling", "Tunneling TCP"),
("Remove", "Hapus"),
("Refresh random password", "Perbarui kata sandi acak"),
("Set your own password", "Tetapkan kata sandi Anda"),
("Enable Keyboard/Mouse", "Aktifkan Keyboard/Mouse"),
("Enable Clipboard", "Aktifkan Papan Klip"),
("Enable File Transfer", "Aktifkan Transfer File"),
("Enable TCP Tunneling", "Aktifkan TCP Tunneling"),
("Enable keyboard/mouse", "Aktifkan Keyboard/Mouse"),
("Enable clipboard", "Aktifkan Papan Klip"),
("Enable file transfer", "Aktifkan Transfer file"),
("Enable TCP tunneling", "Aktifkan TCP tunneling"),
("IP Whitelisting", "Daftar IP yang diizinkan"),
("ID/Relay Server", "ID/Relay Server"),
("Import Server Config", "Impor Konfigurasi Server"),
("Import server config", "Impor Konfigurasi Server"),
("Export Server Config", "Ekspor Konfigurasi Server"),
("Import server configuration successfully", "Impor konfigurasi server berhasil"),
("Export server configuration successfully", "Ekspor konfigurasi server berhasil"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Terima"),
("Dismiss", "Hentikan"),
("Disconnect", "Terputus"),
("Allow using keyboard and mouse", "Izinkan menggunakan keyboard dan mouse"),
("Allow using clipboard", "Izinkan menggunakan papan klip"),
("Allow hearing sound", "Izinkan mendengarkan suara"),
("Allow file copy and paste", "Izinkan salin dan tempel file"),
("Enable file copy and paste", "Izinkan salin dan tempel file"),
("Connected", "Terhubung"),
("Direct and encrypted connection", "Koneksi langsung dan terenkripsi"),
("Relayed and encrypted connection", "Koneksi relay dan terenkripsi"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Masuk..."),
("Enable RDP session sharing", "Aktifkan berbagi sesi RDP"),
("Auto Login", "Login Otomatis (Hanya berlaku jika Anda mengatur \"Kunci setelah sesi berakhir\")"),
("Enable Direct IP Access", "Aktifkan Akses IP Langsung"),
("Enable direct IP access", "Aktifkan Akses IP Langsung"),
("Rename", "Ubah nama"),
("Space", "Spasi"),
("Create Desktop Shortcut", "Buat Pintasan Desktop"),
("Create desktop shortcut", "Buat Pintasan Desktop"),
("Change Path", "Ubah Direktori"),
("Create Folder", "Buat Folder"),
("Please enter the folder name", "Silahkan masukkan nama folder"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Pertahankan RustDesk berjalan pada service background"),
("Ignore Battery Optimizations", "Abaikan Pengoptimalan Baterai"),
("android_open_battery_optimizations_tip", "Jika anda ingin menonaktifkan fitur ini, buka halam pengaturan, cari dan pilih [Baterai], Uncheck [Tidak dibatasi]"),
("Start on Boot", "Mulai saat dihidupkan"),
("Start on boot", "Mulai saat dihidupkan"),
("Start the screen sharing service on boot, requires special permissions", "Mulai layanan berbagi layar saat sistem dinyalakan, memerlukan izin khusus."),
("Connection not allowed", "Koneksi tidak dizinkan"),
("Legacy mode", "Mode lawas"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Gunakan kata sandi permanaen"),
("Use both passwords", "Gunakan kedua kata sandi"),
("Set permanent password", "Setel kata sandi permanen"),
("Enable Remote Restart", "Aktifkan Restart Secara Remote"),
("Allow remote restart", "Ijinkan Restart Secara Remote"),
("Restart Remote Device", "Restart Perangkat Secara Remote"),
("Enable remote restart", "Aktifkan Restart Secara Remote"),
("Restart remote device", "Restart Perangkat Secara Remote"),
("Are you sure you want to restart", "Apakah Anda yakin ingin merestart"),
("Restarting Remote Device", "Merestart Perangkat Remote"),
("Restarting remote device", "Merestart Perangkat Remote"),
("remote_restarting_tip", "Perangkat remote sedang merestart, harap tutup pesan ini dan sambungkan kembali dengan kata sandi permanen setelah beberapa saat."),
("Copied", "Disalin"),
("Exit Fullscreen", "Keluar dari Layar Penuh"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Ikuti Sistem"),
("Enable hardware codec", "Aktifkan kodek perangkat keras"),
("Unlock Security Settings", "Buka Keamanan Pengaturan"),
("Enable Audio", "Aktifkan Audio"),
("Enable audio", "Aktifkan Audio"),
("Unlock Network Settings", "Buka Keamanan Pengaturan Jaringan"),
("Server", "Server"),
("Direct IP Access", "Akses IP Langsung"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Ubah"),
("Start session recording", "Mulai sesi perekaman"),
("Stop session recording", "Hentikan sesi perekaman"),
("Enable Recording Session", "Aktifkan Sesi Perekaman"),
("Allow recording session", "Izinkan sesi perekaman"),
("Enable LAN Discovery", "Aktifkan Pencarian Jaringan Lokal (LAN)"),
("Deny LAN Discovery", "Tolak Pencarian Jaringan Lokal (LAN)"),
("Enable recording session", "Aktifkan Sesi Perekaman"),
("Enable LAN discovery", "Aktifkan Pencarian Jaringan Lokal (LAN)"),
("Deny LAN discovery", "Tolak Pencarian Jaringan Lokal (LAN)"),
("Write a message", "Tulis pesan"),
("Prompt", ""),
("Please wait for confirmation of UAC...", "Harap tunggu konfirmasi UAC"),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Dukungan Wayland masih dalam tahap percobaan, harap gunakan X11 jika Anda memerlukan akses tanpa pengawasan"),
("Right click to select tabs", "Klik kanan untuk memilih tab"),
("Skipped", "Dilewati"),
("Add to Address Book", "Tambahkan ke Buku Alamat"),
("Add to address book", "Tambahkan ke Buku Alamat"),
("Group", "Grup"),
("Search", "Pencarian"),
("Closed manually by web console", "Ditutup secara manual dari konsol web."),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", "Tampilan virtual"),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Pronto"),
("Established", "Stabilita"),
("connecting_status", "Connessione alla rete RustDesk..."),
("Enable Service", "Abilita servizio"),
("Start Service", "Avvia servizio"),
("Enable service", "Abilita servizio"),
("Start service", "Avvia servizio"),
("Service is running", "Il servizio è in esecuzione"),
("Service is not running", "Il servizio non è in esecuzione"),
("not_ready_status", "Non pronto. Verifica la connessione"),
("Control Remote Desktop", "Controlla desktop remoto"),
("Transfer File", "Trasferisci file"),
("Transfer file", "Trasferisci file"),
("Connect", "Connetti"),
("Recent Sessions", "Sessioni recenti"),
("Address Book", "Rubrica"),
("Recent sessions", "Sessioni recenti"),
("Address book", "Rubrica"),
("Confirmation", "Conferma"),
("TCP Tunneling", "Tunnel TCP"),
("TCP tunneling", "Tunnel TCP"),
("Remove", "Rimuovi"),
("Refresh random password", "Nuova password casuale"),
("Set your own password", "Imposta la password"),
("Enable Keyboard/Mouse", "Abilita tastiera/mouse"),
("Enable Clipboard", "Abilita appunti"),
("Enable File Transfer", "Abilita trasferimento file"),
("Enable TCP Tunneling", "Abilita tunnel TCP"),
("Enable keyboard/mouse", "Abilita tastiera/mouse"),
("Enable clipboard", "Abilita appunti"),
("Enable file transfer", "Abilita trasferimento file"),
("Enable TCP tunneling", "Abilita tunnel TCP"),
("IP Whitelisting", "IP autorizzati"),
("ID/Relay Server", "Server ID/Relay"),
("Import Server Config", "Importa configurazione server dagli appunti"),
("Import server config", "Importa configurazione server dagli appunti"),
("Export Server Config", "Esporta configurazione server negli appunti"),
("Import server configuration successfully", "Configurazione server importata completata"),
("Export server configuration successfully", "Configurazione Server esportata completata"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Accetta"),
("Dismiss", "Rifiuta"),
("Disconnect", "Disconnetti"),
("Allow using keyboard and mouse", "Consenti uso tastiera e mouse"),
("Allow using clipboard", "Consenti uso degli appunti"),
("Allow hearing sound", "Consenti la riproduzione dell'audio"),
("Allow file copy and paste", "Consenti copia e incolla di file"),
("Enable file copy and paste", "Consenti copia e incolla di file"),
("Connected", "Connesso"),
("Direct and encrypted connection", "Connessione diretta e cifrata"),
("Relayed and encrypted connection", "Connessione tramite relay e cifrata"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Autenticazione..."),
("Enable RDP session sharing", "Abilita condivisione sessione RDP"),
("Auto Login", "Accesso automatico"),
("Enable Direct IP Access", "Abilita accesso diretto tramite IP"),
("Enable direct IP access", "Abilita accesso diretto tramite IP"),
("Rename", "Rinomina"),
("Space", "Spazio"),
("Create Desktop Shortcut", "Crea collegamento sul desktop"),
("Create desktop shortcut", "Crea collegamento sul desktop"),
("Change Path", "Modifica percorso"),
("Create Folder", "Crea cartella"),
("Please enter the folder name", "Inserisci il nome della cartella"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Mantieni il servizio di RustDesk in background"),
("Ignore Battery Optimizations", "Ignora le ottimizzazioni della batteria"),
("android_open_battery_optimizations_tip", "Se vuoi disabilitare questa funzione, vai nelle impostazioni dell'applicazione RustDesk, apri la sezione 'Batteria' e deseleziona 'Senza restrizioni'."),
("Start on Boot", "Avvia all'accensione"),
("Start on boot", "Avvia all'accensione"),
("Start the screen sharing service on boot, requires special permissions", "L'avvio del servizio di condivisione dello schermo all'accensione richiede autorizzazioni speciali"),
("Connection not allowed", "Connessione non consentita"),
("Legacy mode", "Modalità legacy"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Usa password permanente"),
("Use both passwords", "Usa password monouso e permanente"),
("Set permanent password", "Imposta password permanente"),
("Enable Remote Restart", "Abilita riavvio da remoto"),
("Allow remote restart", "Consenti riavvio da remoto"),
("Restart Remote Device", "Riavvia dispositivo remoto"),
("Enable remote restart", "Abilita riavvio da remoto"),
("Restart remote device", "Riavvia dispositivo remoto"),
("Are you sure you want to restart", "Sei sicuro di voler riavviare?"),
("Restarting Remote Device", "Il dispositivo remoto si sta riavviando"),
("Restarting remote device", "Il dispositivo remoto si sta riavviando"),
("remote_restarting_tip", "Riavvia il dispositivo remoto"),
("Copied", "Copiato"),
("Exit Fullscreen", "Esci dalla modalità schermo intero"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Sistema"),
("Enable hardware codec", "Abilita codec hardware"),
("Unlock Security Settings", "Sblocca impostazioni sicurezza"),
("Enable Audio", "Abilita audio"),
("Enable audio", "Abilita audio"),
("Unlock Network Settings", "Sblocca impostazioni di rete"),
("Server", "Server"),
("Direct IP Access", "Accesso IP diretto"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Modifica"),
("Start session recording", "Inizia registrazione sessione"),
("Stop session recording", "Ferma registrazione sessione"),
("Enable Recording Session", "Abilita registrazione sessione"),
("Allow recording session", "Permetti registrazione sessione"),
("Enable LAN Discovery", "Abilita rilevamento LAN"),
("Deny LAN Discovery", "Nega rilevamento LAN"),
("Enable recording session", "Abilita registrazione sessione"),
("Enable LAN discovery", "Abilita rilevamento LAN"),
("Deny LAN discovery", "Nega rilevamento LAN"),
("Write a message", "Scrivi un messaggio"),
("Prompt", "Richiedi"),
("Please wait for confirmation of UAC...", "Attendi la conferma dell'UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Il supporto Wayland è in fase sperimentale, se vuoi un accesso stabile usa X11."),
("Right click to select tabs", "Clic con il tasto destro per selezionare le schede"),
("Skipped", "Saltato"),
("Add to Address Book", "Aggiungi alla rubrica"),
("Add to address book", "Aggiungi alla rubrica"),
("Group", "Gruppo"),
("Search", "Cerca"),
("Closed manually by web console", "Chiudi manualmente dalla console web"),
@@ -570,7 +565,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Big tiles", "Icone grandi"),
("Small tiles", "Icone piccole"),
("List", "Elenco"),
("Virtual display", ""),
("Plug out all", ""),
("Virtual display", "Scehrmo virtuale"),
("Plug out all", "Scollega tutto"),
("True color (4:4:4)", "Colore reale (4:4:4)"),
("Enable blocking user input", "Abilita blocco input utente"),
("id_input_tip", "Puoi inserire un ID, un IP diretto o un dominio con una porta (<dominio>:<porta>).\nSe vuoi accedere as un dispositivo in un altro server, aggiungi l'indirizzo del server (<id>@<indirizzo_server >?key=<valore_chiave>), ad esempio\n9123456234@192.168.16.1:21117?key=5Qbwsde3unUcJBtrx9ZkvUmwFNoExHzpryHuPUdqlWM=.\nSe vuoi accedere as un dispositivo in un server pubblico, inserisci \"<id>@public\", per il server pubblico la chiave non è necessaria"),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "準備完了"),
("Established", "接続完了"),
("connecting_status", "RuskDeskネットワークに接続中..."),
("Enable Service", "サービスを有効化"),
("Start Service", "サービスを開始"),
("Enable service", "サービスを有効化"),
("Start service", "サービスを開始"),
("Service is running", "サービスは動作中"),
("Service is not running", "サービスは動作していません"),
("not_ready_status", "準備できていません。接続を確認してください。"),
("Control Remote Desktop", "リモートのデスクトップを操作する"),
("Transfer File", "ファイルを転送"),
("Transfer file", "ファイルを転送"),
("Connect", "接続"),
("Recent Sessions", "最近のセッション"),
("Address Book", "アドレス帳"),
("Recent sessions", "最近のセッション"),
("Address book", "アドレス帳"),
("Confirmation", "確認用"),
("TCP Tunneling", "TCPトンネリング"),
("TCP tunneling", "TCPトンネリング"),
("Remove", "削除"),
("Refresh random password", "ランダムパスワードを再生成"),
("Set your own password", "自分のパスワードを設定"),
("Enable Keyboard/Mouse", "キーボード・マウスを有効化"),
("Enable Clipboard", "クリップボードを有効化"),
("Enable File Transfer", "ファイル転送を有効化"),
("Enable TCP Tunneling", "TCPトンネリングを有効化"),
("Enable keyboard/mouse", "キーボード・マウスを有効化"),
("Enable clipboard", "クリップボードを有効化"),
("Enable file transfer", "ファイル転送を有効化"),
("Enable TCP tunneling", "TCPトンネリングを有効化"),
("IP Whitelisting", "IPホワイトリスト"),
("ID/Relay Server", "認証・中継サーバー"),
("Import Server Config", "サーバー設定をインポート"),
("Import server config", "サーバー設定をインポート"),
("Export Server Config", ""),
("Import server configuration successfully", "サーバー設定をインポートしました"),
("Export server configuration successfully", ""),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "承諾"),
("Dismiss", "無視"),
("Disconnect", "切断"),
("Allow using keyboard and mouse", "キーボード・マウスの使用を許可"),
("Allow using clipboard", "クリップボードの使用を許可"),
("Allow hearing sound", "サウンドの受信を許可"),
("Allow file copy and paste", "ファイルのコピーアンドペーストを許可"),
("Enable file copy and paste", "ファイルのコピーアンドペーストを許可"),
("Connected", "接続済み"),
("Direct and encrypted connection", "接続は暗号化され、直接つながっている"),
("Relayed and encrypted connection", "接続は暗号化され、中継されている"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "ログイン中..."),
("Enable RDP session sharing", "RDPセッション共有を有効化"),
("Auto Login", "自動ログイン"),
("Enable Direct IP Access", "直接IPアクセスを有効化"),
("Enable direct IP access", "直接IPアクセスを有効化"),
("Rename", "名前の変更"),
("Space", "スペース"),
("Create Desktop Shortcut", "デスクトップにショートカットを作成する"),
("Create desktop shortcut", "デスクトップにショートカットを作成する"),
("Change Path", "パスを変更"),
("Create Folder", "フォルダを作成"),
("Please enter the folder name", "フォルダ名を入力してください"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "RustDesk バックグラウンドサービスを維持"),
("Ignore Battery Optimizations", "バッテリーの最適化を無効にする"),
("android_open_battery_optimizations_tip", "この機能を使わない場合は、次のRestDeskアプリ設定ページから「バッテリー」に進み、「制限なし」の選択を外してください"),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "接続が許可されていません"),
("Legacy mode", ""),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "固定のパスワードを使用"),
("Use both passwords", "どちらのパスワードも使用"),
("Set permanent password", "固定のパスワードを設定"),
("Enable Remote Restart", "リモートからの再起動を有効化"),
("Allow remote restart", "リモートからの再起動を許可"),
("Restart Remote Device", "リモートの端末を再起動"),
("Enable remote restart", "リモートからの再起動を有効化"),
("Restart remote device", "リモートの端末を再起動"),
("Are you sure you want to restart", "本当に再起動しますか"),
("Restarting Remote Device", "リモート端末を再起動中"),
("Restarting remote device", "リモート端末を再起動中"),
("remote_restarting_tip", "リモート端末は再起動中です。このメッセージボックスを閉じて、しばらくした後に固定のパスワードを使用して再接続してください。"),
("Copied", ""),
("Exit Fullscreen", "全画面表示を終了"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", ""),
("Enable hardware codec", ""),
("Unlock Security Settings", ""),
("Enable Audio", ""),
("Enable audio", ""),
("Unlock Network Settings", ""),
("Server", ""),
("Direct IP Access", ""),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", ""),
("Start session recording", ""),
("Stop session recording", ""),
("Enable Recording Session", ""),
("Allow recording session", ""),
("Enable LAN Discovery", ""),
("Deny LAN Discovery", ""),
("Enable recording session", ""),
("Enable LAN discovery", ""),
("Deny LAN discovery", ""),
("Write a message", ""),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -3,61 +3,61 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
[
("Status", "상태"),
("Your Desktop", "당신의 데스크탑"),
("desk_tip", "아래 ID와 비밀번호를 통해 당신의 데스크탑으로 접속할 수 있습니다."),
("desk_tip", "아래 ID와 비밀번호 데스크탑 접속할수 있습니다"),
("Password", "비밀번호"),
("Ready", "준비"),
("Established", "연결됨"),
("connecting_status", "RustDesk 네트워크로 연결중입니다..."),
("Enable Service", "서비스 활성화"),
("Start Service", "서비스 시작"),
("Service is running", "서비스 동작"),
("Service is not running", "서비스가 동작하고 있지 않습니다"),
("Enable service", "서비스 활성화"),
("Start service", "서비스 시작"),
("Service is running", "서비스 실행"),
("Service is not running", "서비스가 실행되지 않습니다"),
("not_ready_status", "준비되지 않음. 연결을 확인해주시길 바랍니다."),
("Control Remote Desktop", "원격 데스크탑 제어"),
("Transfer File", "파일 전송"),
("Transfer file", "파일 전송"),
("Connect", "접속하기"),
("Recent Sessions", "최근 세션"),
("Address Book", "세션 주소록"),
("Recent sessions", "최근 세션"),
("Address book", "세션 주소록"),
("Confirmation", "확인"),
("TCP Tunneling", "TCP 터널링"),
("TCP tunneling", "TCP 터널링"),
("Remove", "삭제"),
("Refresh random password", "랜덤 비밀번호 새로고침"),
("Set your own password", "개인 비밀번호 설정"),
("Enable Keyboard/Mouse", "키보드/마우스 활성화"),
("Enable Clipboard", "클립보드 활성화"),
("Enable File Transfer", "파일 전송 활성화"),
("Enable TCP Tunneling", "TCP 터널링 활성화"),
("Enable keyboard/mouse", "키보드/마우스 활성화"),
("Enable clipboard", "클립보드 활성화"),
("Enable file transfer", "파일 전송 활성화"),
("Enable TCP tunneling", "TCP 터널링 활성화"),
("IP Whitelisting", "IP 화이트리스트"),
("ID/Relay Server", "ID/Relay 서버"),
("Import Server Config", "서버 설정 가져오기"),
("Export Server Config", ""),
("Import server config", "서버 설정 가져오기"),
("Export Server Config", "서버 설정 내보내기"),
("Import server configuration successfully", "서버 설정 가져오기 성공"),
("Export server configuration successfully", ""),
("Export server configuration successfully", "서버 설정 내보내기 성공"),
("Invalid server configuration", "잘못된 서버 설정"),
("Clipboard is empty", "클립보드가 비어있습니다"),
("Stop service", "서비스 중단"),
("Change ID", "ID 변경"),
("Your new ID", ""),
("length %min% to %max%", ""),
("starts with a letter", ""),
("allowed characters", ""),
("id_change_tip", "a-z, A-Z, 0-9, _(밑줄 문자)만 입력 가능합니다. 첫 문자는 a-z 혹은 A-Z로 시작해야 합니다. 길이는 6 ~ 16글자가 요구됩니다."),
("Your new ID", "당신의 새로운 ID"),
("length %min% to %max%", "길이 %min% ~ %max%"),
("starts with a letter", "문자로 시작해야 합니다"),
("allowed characters", "허용되는 문자"),
("id_change_tip", "a-z, A-Z, 0-9, _(언더바)만 입력 가능합니다. 첫 문자는 a-z 혹은 A-Z로 시작해야 합니다. 길이는 6~16글자가 요구됩니다."),
("Website", "웹사이트"),
("About", "정보"),
("Slogan_tip", ""),
("Privacy Statement", ""),
("Privacy Statement", "개인 정보 보호 정책"),
("Mute", "음소거"),
("Build Date", ""),
("Version", ""),
("Home", ""),
("Build Date", "빌드 날짜"),
("Version", "버전"),
("Home", ""),
("Audio Input", "오디오 입력"),
("Enhancements", ""),
("Enhancements", "향상된 기능"),
("Hardware Codec", "하드웨어 코덱"),
("Adaptive bitrate", "가변 비트레이트"),
("ID Server", "ID 서버"),
("Relay Server", "Relay 서버"),
("API Server", "API 서버"),
("invalid_http", "다음과 같이 시작해야 합니다. http:// 또는 https://"),
("invalid_http", "http:// 또는 https:// 로 시작해야합니다"),
("Invalid IP", "유효하지 않은 IP"),
("Invalid format", "유효하지 않은 형식"),
("server_not_support", "해당 서버가 아직 지원하지 않습니다"),
@@ -71,7 +71,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Password Required", "비밀번호 입력"),
("Please enter your password", "비밀번호를 입력해주세요"),
("Remember password", "이 비밀번호 기억하기"),
("Wrong Password", "틀린 비밀번호"),
("Wrong Password", "비밀번호가 틀렸습니다"),
("Do you want to enter again?", "다시 접속하시겠습니까?"),
("Connection Error", "연결 에러"),
("Error", "에러"),
@@ -86,7 +86,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Type", "유형"),
("Modified", "수정됨"),
("Size", "크기"),
("Show Hidden Files", " 파일 보기"),
("Show Hidden Files", "겨진 파일 표시"),
("Receive", "받기"),
("Send", "보내기"),
("Refresh File", "파일 새로고침"),
@@ -98,15 +98,15 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Delete", "삭제"),
("Properties", "속성"),
("Multi Select", "다중 선택"),
("Select All", ""),
("Unselect All", ""),
("Empty Directory", "빈 디렉터리"),
("Not an empty directory", "디렉터리가 비어있지 않습니다"),
("Are you sure you want to delete this file?", "정말로 해당 파일을 삭제하시겠습니까?"),
("Are you sure you want to delete this empty directory?", "정말로 비어있는 해당 디렉터리를 삭제하시겠습니까?"),
("Are you sure you want to delete the file of this directory?", "정말로 해당 파일 혹은 디렉터리를 삭제하시겠습니까?"),
("Do this for all conflicts", "모든 충돌에 대해 해당 작업 수행"),
("This is irreversible!", "해당 결정은 돌이킬 수 없습니다!"),
("Select All", "전체 선택"),
("Unselect All", "전체 선택 해제"),
("Empty Directory", "폴더가 비어있습니다"),
("Not an empty directory", "폴더가 비어있지 않습니다"),
("Are you sure you want to delete this file?", " 파일을 삭제하시겠습니까?"),
("Are you sure you want to delete this empty directory?", "이 빈 폴더를 삭제하시겠습니까?"),
("Are you sure you want to delete the file of this directory?", "이 폴더의 파일을 삭제하시겠습니까?"),
("Do this for all conflicts", "모든 충돌에 대해 작업 수행합니다"),
("This is irreversible!", "이 작업은 되돌릴 수 없습니다.!"),
("Deleting", "삭제중"),
("files", "파일"),
("Waiting", "대기중"),
@@ -120,12 +120,12 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Original", "원본"),
("Shrink", "축소"),
("Stretch", "확대"),
("Scrollbar", ""),
("ScrollAuto", ""),
("Scrollbar", "스크롤바"),
("ScrollAuto", "자동스크롤"),
("Good image quality", "최적 이미지 품질"),
("Balanced", "균형"),
("Optimize reaction time", "반응 시간 최적화"),
("Custom", ""),
("Custom", "커스텀"),
("Show remote cursor", "원격 커서 보이기"),
("Show quality monitor", "품질 모니터 띄우기"),
("Disable clipboard", "클립보드 비활성화"),
@@ -134,14 +134,14 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Insert Lock", "입력 잠금"),
("Refresh", "새로고침"),
("ID does not exist", "ID가 존재하지 않습니다"),
("Failed to connect to rendezvous server", "rendezvous 서버에 접속을 실패하였습니다"),
("Failed to connect to rendezvous server", "등록 서버에 연결하지 못했습니다."),
("Please try later", "다시 시도해주세요"),
("Remote desktop is offline", "원격 데스크탑이 연결되어 있지 않습니다"),
("Key mismatch", "키가 일치하지 않습니다."),
("Timeout", "시간 초과"),
("Failed to connect to relay server", "relay 서버에 접속을 실패하였습니다"),
("Failed to connect via rendezvous server", "rendezvous 서버를 통한 접속에 실패하였습니다"),
("Failed to connect via relay server", "relay 서버를 통한 접속에 실패하였습니다"),
("Failed to connect to relay server", "릴레이 서버에 접속을 실패하였습니다"),
("Failed to connect via rendezvous server", "등록 서버를 통한 접속에 실패하였습니다"),
("Failed to connect via relay server", "릴레이 서버를 통한 접속에 실패하였습니다"),
("Failed to make direct connection to remote desktop", "원격 데스크탑으로의 직접 연결 생성에 실패하였습니다"),
("Set Password", "비밀번호 설정"),
("OS Password", "OS 비밀번호"),
@@ -170,19 +170,16 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Action", "액션"),
("Add", "추가"),
("Local Port", "로컬 포트"),
("Local Address", ""),
("Change Local Port", ""),
("Local Address", "현재 주소"),
("Change Local Port", "로컬 포트 변경"),
("setup_server_tip", "빠른 접속을 위해, 당신의 서버를 설정하세요"),
("Too short, at least 6 characters.", "너무 짧습니다, 최소 6글자 이상 입력해주세요."),
("The confirmation is not identical.", "확인용 입력이 일치하지 않습니다."),
("The confirmation is not identical.", " 입력이 일치하지 않습니다."),
("Permissions", "권한"),
("Accept", "수락"),
("Dismiss", "거부"),
("Disconnect", "연결 종료"),
("Allow using keyboard and mouse", "키보드와 마우스 허용"),
("Allow using clipboard", "클립보드 허용"),
("Allow hearing sound", "소리 듣기 허용"),
("Allow file copy and paste", "파일 복사 및 붙여넣기 허용"),
("Enable file copy and paste", "파일 복사 및 붙여넣기 허용"),
("Connected", "연결됨"),
("Direct and encrypted connection", "암호화된 직접 연결"),
("Relayed and encrypted connection", "암호화된 릴레이 연결"),
@@ -191,12 +188,12 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Enter Remote ID", "원격지 ID를 입력하세요"),
("Enter your password", "비밀번호를 입력하세요"),
("Logging in...", "로그인 중..."),
("Enable RDP session sharing", "RDP 세션 공유 활성화하세요"),
("Enable RDP session sharing", "RDP 세션 공유 활성화"),
("Auto Login", "자동 로그인"),
("Enable Direct IP Access", "IP 직접 접근 활성화하세요"),
("Enable direct IP access", "IP 직접 접근 활성화"),
("Rename", "이름 변경"),
("Space", "공간"),
("Create Desktop Shortcut", "데스크탑 바로가기 생성"),
("Create desktop shortcut", "데스크탑 바로가기 생성"),
("Change Path", "경로 변경"),
("Create Folder", "폴더 생성"),
("Please enter the folder name", "폴더명을 입력해주세요"),
@@ -205,23 +202,23 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Login screen using Wayland is not supported", "Wayland를 사용한 로그인 화면이 지원되지 않습니다"),
("Reboot required", "재부팅이 필요합니다"),
("Unsupported display server", "지원하지 않는 디스플레이 서버"),
("x11 expected", "x11 예상됨"),
("Port", ""),
("x11 expected", "x11로 전환해주세요"),
("Port", "포트"),
("Settings", "설정"),
("Username", "사용자명"),
("Invalid port", "유효하지 않은 포트"),
("Closed manually by the peer", "다른 사용자에 의해 종료됨"),
("Enable remote configuration modification", "원격 구성 변경 활성화"),
("Run without install", "설치 없이 실행"),
("Connect via relay", ""),
("Always connect via relay", "항상 relay를 통해 접속하기"),
("Connect via relay", "릴레이를 통해 연결"),
("Always connect via relay", "항상 릴레이를 통해 접속"),
("whitelist_tip", "화이트리스트에 있는 IP만 현 데스크탑에 접속 가능합니다"),
("Login", "로그인"),
("Verify", ""),
("Remember me", ""),
("Trust this device", ""),
("Verification code", ""),
("verification_tip", ""),
("Verify", "확인"),
("Remember me", "기억하기"),
("Trust this device", "이 기기 신뢰"),
("Verification code", "확인 코드"),
("verification_tip", "확인_팁"),
("Logout", "로그아웃"),
("Tags", "태그"),
("Search ID", "ID 검색"),
@@ -233,7 +230,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Username missed", "사용자명 누락"),
("Password missed", "비밀번호 누락"),
("Wrong credentials", "틀린 인증 정보"),
("The verification code is incorrect or has expired", ""),
("The verification code is incorrect or has expired", "인증 코드가 잘못되었거나 시간이 초과되었습니다."),
("Edit Tag", "태그 수정"),
("Forget Password", "패스워드 기억하지 않기"),
("Favorites", "즐겨찾기"),
@@ -289,9 +286,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "\"화면 캡처\"를 켜면 서비스가 자동으로 시작되어 다른 장치에서 사용자 장치에 대한 연결을 요청할 수 있습니다."),
("android_stop_service_tip", "서비스를 종료하면 모든 연결이 자동으로 닫힙니다."),
("android_version_audio_tip", "현재 Android 버전은 오디오 캡처를 지원하지 않습니다. Android 10 이상으로 업그레이드하십시오."),
("android_start_service_tip", ""),
("android_permission_may_not_change_tip", ""),
("Account", ""),
("android_start_service_tip", "서비스 시작을 클릭하거나 화면 캡처 권한을 활성화하여 화면 공유 서비스를 시작하세요."),
("android_permission_may_not_change_tip", "설정된 연결의 경우 연결이 재설정되지 않는 한 권한이 즉시 변경되지 않을 수 있습니다."),
("Account", "계정"),
("Overwrite", "덮어쓰기"),
("This file exists, skip or overwrite this file?", "해당 파일이 이미 존재합니다, 넘어가거나 덮어쓰시겠습니까?"),
("Quit", "종료"),
@@ -311,22 +308,21 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "RustDesk 백그라운드 서비스로 유지하기"),
("Ignore Battery Optimizations", "배터리 최적화 무시하기"),
("android_open_battery_optimizations_tip", "해당 기능을 비활성화하려면 RustDesk 응용 프로그램 설정 페이지로 이동하여 [배터리]에서 [제한 없음] 선택을 해제하십시오."),
("Start on Boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Start on boot", "부팅시 시작"),
("Start the screen sharing service on boot, requires special permissions", "부팅 시 화면 공유 서비스를 시작하려면 특별한 권한이 필요합니다."),
("Connection not allowed", "연결이 허용되지 않음"),
("Legacy mode", ""),
("Map mode", ""),
("Translate mode", ""),
("Legacy mode", "레거시 모드"),
("Map mode", "맵 모드"),
("Translate mode", "번역 모드"),
("Use permanent password", "영구 비밀번호 사용"),
("Use both passwords", "두 비밀번호 (임시/영구) 사용"),
("Use both passwords", "(임시/영구) 비밀번호 모두 사용"),
("Set permanent password", "영구 비밀번호 설정"),
("Enable Remote Restart", "원격지 재시작 활성화"),
("Allow remote restart", "원격 재시작 허용"),
("Restart Remote Device", "원격 기기 재시작"),
("Enable remote restart", "원격지 재시작 활성화"),
("Restart remote device", "원격 기기 재시작"),
("Are you sure you want to restart", "정말로 재시작 하시겠습니까"),
("Restarting Remote Device", "원격 기기를 다시 시작하는중"),
("Restarting remote device", "원격 기기를 다시 시작하는중"),
("remote_restarting_tip", "원격 장치를 다시 시작하는 중입니다. 이 메시지 상자를 닫고 잠시 후 영구 비밀번호로 다시 연결하십시오."),
("Copied", ""),
("Copied", "복사됨"),
("Exit Fullscreen", "전체 화면 종료"),
("Fullscreen", "전체화면"),
("Mobile Actions", "모바일 액션"),
@@ -336,241 +332,243 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ratio", "비율"),
("Image Quality", "이미지 품질"),
("Scroll Style", "스크롤 스타일"),
("Show Toolbar", ""),
("Hide Toolbar", ""),
("Show Toolbar", "툴바 보기"),
("Hide Toolbar", "툴바 숨기기"),
("Direct Connection", "직접 연결"),
("Relay Connection", "릴레이 연결"),
("Secure Connection", "보안 연결"),
("Insecure Connection", "안전하지 않은 연결"),
("Scale original", "원래 크기"),
("Scale adaptive", "맞는 창"),
("General", ""),
("Security", ""),
("Theme", ""),
("Dark Theme", ""),
("Light Theme", ""),
("Dark", ""),
("Light", ""),
("Follow System", ""),
("Enable hardware codec", ""),
("Unlock Security Settings", ""),
("Enable Audio", ""),
("Unlock Network Settings", ""),
("Server", ""),
("Direct IP Access", ""),
("Proxy", ""),
("Apply", ""),
("Disconnect all devices?", ""),
("Clear", ""),
("Audio Input Device", ""),
("Use IP Whitelisting", ""),
("Network", ""),
("Pin Toolbar", ""),
("Unpin Toolbar", ""),
("Recording", ""),
("Directory", ""),
("Automatically record incoming sessions", ""),
("Change", ""),
("Start session recording", ""),
("Stop session recording", ""),
("Enable Recording Session", ""),
("Allow recording session", ""),
("Enable LAN Discovery", ""),
("Deny LAN Discovery", ""),
("Write a message", ""),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
("elevated_foreground_window_tip", ""),
("Disconnected", ""),
("Other", ""),
("Confirm before closing multiple tabs", ""),
("Keyboard Settings", ""),
("Full Access", ""),
("Screen Share", ""),
("General", "일반적인"),
("Security", "보안"),
("Theme", "테마"),
("Dark Theme", "다크 테마"),
("Light Theme", "라이트 테마"),
("Dark", "다크"),
("Light", "라이트"),
("Follow System", "시스템 설정에따름"),
("Enable hardware codec", "하드웨어 코덱 활성화"),
("Unlock Security Settings", "보안 설정 잠금 해제"),
("Enable audio", "오디오 활성화"),
("Unlock Network Settings", "네트워크 설정 잠금 해제"),
("Server", "서버"),
("Direct IP Access", "다이렉트 IP 접근"),
("Proxy", "프록시"),
("Apply", "적용"),
("Disconnect all devices?", "모든 기기를 연결 해제하시겠습니까?"),
("Clear", "지우기"),
("Audio Input Device", "오디오 입력 장치"),
("Use IP Whitelisting", "IP 화이트리스트 사용"),
("Network", "네트워크"),
("Pin Toolbar", "툴바 고정"),
("Unpin Toolbar", "툴바 고정 해제"),
("Recording", "녹화"),
("Directory", "경로"),
("Automatically record incoming sessions", "들어오는 세션을 자동으로 녹화"),
("Change", "변경"),
("Start session recording", "세션 녹화 시작"),
("Stop session recording", "세션 녹화 중지"),
("Enable recording session", "세션 녹화 활성화"),
("Enable LAN discovery", "LAN 검색 활성화"),
("Deny LAN discovery", "LAN 검색 거부"),
("Write a message", "메시지 쓰기"),
("Prompt", "프롬프트"),
("Please wait for confirmation of UAC...", "상대방이 UAC를 확인할 때까지 기다려주세요..."),
("elevated_foreground_window_tip", "원격 데스크톱의 현재 창을 작동하려면 더 높은 권한이 필요하며 마우스와 키보드를 일시적으로 사용할 수 없는 경우 상대방에게 현재 창을 최소화하도록 요청하거나 연결 관리 창에서 권한 상승을 클릭할 수 있습니다. 이 문제를 방지하려면 원격 장치에 이 소프트웨어를 설치하는 것이 좋습니다"),
("Disconnected", "연결이 끊김"),
("Other", "기타"),
("Confirm before closing multiple tabs", "여러 탭을 닫기 전에 확인하세요"),
("Keyboard Settings", "키보드 설정"),
("Full Access", "전체 권한"),
("Screen Share", "화면 공유"),
("Wayland requires Ubuntu 21.04 or higher version.", "Wayland는 Ubuntu 21.04 이상 버전이 필요합니다."),
("Wayland requires higher version of linux distro. Please try X11 desktop or change your OS.", "Wayland에는 더 높은 버전의 Linux 배포판이 필요합니다. X11 데스크탑을 시도하거나 OS를 변경하십시오."),
("JumpLink", "View"),
("JumpLink", "링크연결"),
("Please Select the screen to be shared(Operate on the peer side).", "공유할 화면을 선택하십시오(피어 측에서 작동)."),
("Show RustDesk", ""),
("This PC", ""),
("or", ""),
("Continue with", ""),
("Elevate", ""),
("Zoom cursor", ""),
("Accept sessions via password", ""),
("Accept sessions via click", ""),
("Accept sessions via both", ""),
("Please wait for the remote side to accept your session request...", ""),
("One-time Password", ""),
("Use one-time password", ""),
("One-time password length", ""),
("Request access to your device", ""),
("Hide connection management window", ""),
("hide_cm_tip", ""),
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
("Local keyboard type", ""),
("Select local keyboard type", ""),
("software_render_tip", ""),
("Always use software rendering", ""),
("config_input", ""),
("config_microphone", ""),
("request_elevation_tip", ""),
("Wait", ""),
("Elevation Error", ""),
("Ask the remote user for authentication", ""),
("Choose this if the remote account is administrator", ""),
("Transmit the username and password of administrator", ""),
("still_click_uac_tip", ""),
("Request Elevation", ""),
("wait_accept_uac_tip", ""),
("Elevate successfully", ""),
("uppercase", ""),
("lowercase", ""),
("digit", ""),
("special character", ""),
("length>=8", ""),
("Weak", ""),
("Medium", ""),
("Strong", ""),
("Switch Sides", ""),
("Please confirm if you want to share your desktop?", ""),
("Display", ""),
("Default View Style", ""),
("Default Scroll Style", ""),
("Default Image Quality", ""),
("Default Codec", ""),
("Bitrate", ""),
("FPS", ""),
("Auto", ""),
("Other Default Options", ""),
("Voice call", ""),
("Text chat", ""),
("Stop voice call", ""),
("relay_hint_tip", ""),
("Reconnect", ""),
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
("Set one-time password length", ""),
("install_cert_tip", ""),
("confirm_install_cert_tip", ""),
("RDP Settings", ""),
("Sort by", ""),
("New Connection", ""),
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
("empty_recent_tip", ""),
("empty_favorite_tip", ""),
("empty_lan_tip", ""),
("empty_address_book_tip", ""),
("eg: admin", ""),
("Empty Username", ""),
("Empty Password", ""),
("Me", ""),
("identical_file_tip", ""),
("show_monitors_tip", ""),
("View Mode", ""),
("login_linux_tip", ""),
("verify_rustdesk_password_tip", ""),
("remember_account_tip", ""),
("os_account_desk_tip", ""),
("OS Account", ""),
("another_user_login_title_tip", ""),
("another_user_login_text_tip", ""),
("xorg_not_found_title_tip", ""),
("xorg_not_found_text_tip", ""),
("no_desktop_title_tip", ""),
("no_desktop_text_tip", ""),
("No need to elevate", ""),
("System Sound", ""),
("Default", ""),
("New RDP", ""),
("Fingerprint", ""),
("Copy Fingerprint", ""),
("no fingerprints", ""),
("Select a peer", ""),
("Select peers", ""),
("Plugins", ""),
("Uninstall", ""),
("Update", ""),
("Enable", ""),
("Disable", ""),
("Options", ""),
("resolution_original_tip", ""),
("resolution_fit_local_tip", ""),
("resolution_custom_tip", ""),
("Collapse toolbar", ""),
("Accept and Elevate", ""),
("accept_and_elevate_btn_tooltip", ""),
("clipboard_wait_response_timeout_tip", ""),
("Incoming connection", ""),
("Outgoing connection", ""),
("Exit", ""),
("Open", ""),
("logout_tip", ""),
("Service", ""),
("Start", ""),
("Stop", ""),
("exceed_max_devices", ""),
("Sync with recent sessions", ""),
("Sort tags", ""),
("Open connection in new tab", ""),
("Move tab to new window", ""),
("Can not be empty", ""),
("Already exists", ""),
("Change Password", ""),
("Refresh Password", ""),
("ID", ""),
("Grid View", ""),
("List View", ""),
("Select", ""),
("Toggle Tags", ""),
("pull_ab_failed_tip", ""),
("push_ab_failed_tip", ""),
("synced_peer_readded_tip", ""),
("Change Color", ""),
("Primary Color", ""),
("HSV Color", ""),
("Installation Successful!", ""),
("Installation failed!", ""),
("Reverse mouse wheel", ""),
("{} sessions", ""),
("scam_title", ""),
("scam_text1", ""),
("scam_text2", ""),
("Don't show again", ""),
("I Agree", ""),
("Decline", ""),
("Timeout in minutes", ""),
("auto_disconnect_option_tip", ""),
("Connection failed due to inactivity", ""),
("Check for software update on startup", ""),
("upgrade_rustdesk_server_pro_to_{}_tip", ""),
("pull_group_failed_tip", ""),
("Filter by intersection", ""),
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),
("Open in new window", ""),
("Show displays as individual windows", ""),
("Use all my displays for the remote session", ""),
("selinux_tip", ""),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("Show RustDesk", "RustDesk 표시"),
("This PC", "이 PC"),
("or", "또는"),
("Continue with", "계속"),
("Elevate", "권한 상승"),
("Zoom cursor", "커서 줌"),
("Accept sessions via password", "비밀번호를 통해 세션 수락"),
("Accept sessions via click", "클릭을 통해 세션 수락"),
("Accept sessions via both", "두 가지 모두를 통해 세션을 수락합니다"),
("Please wait for the remote side to accept your session request...", "원격 측에서 세션 요청을 수락할 때까지 기다리십시오..."),
("One-time Password", "일회용 비밀번호"),
("Use one-time password", "일회용 비밀번호 사용"),
("One-time password length", "일회용 비밀번호 길이"),
("Request access to your device", "장치에 대한 액세스를 요청하세요"),
("Hide connection management window", "연결 관리 창 숨기기"),
("hide_cm_tip", "숨기기는 비밀번호 연결만 허용되고 고정 비밀번호만 사용되는 경우에만 허용됩니다"),
("wayland_experiment_tip", "Wayland 지원은 실험적입니다. 무인 액세스가 필요한 경우 X11을 사용하십시오"),
("Right click to select tabs", "마우스 오른쪽 버튼을 클릭하고 탭을 선택하세요"),
("Skipped", "건너뛰기"),
("Add to address book", "주소록에 추가"),
("Group", "그룹"),
("Search", "검색"),
("Closed manually by web console", "웹 콘솔에 의해 수동으로 닫힘"),
("Local keyboard type", "로컬 키보드 유형"),
("Select local keyboard type", "로컬 키보드 유형 선택"),
("software_render_tip", "Nvidia 그래픽 카드를 사용하고 세션이 설정된 후 원격 창이 즉시 닫히는 경우 nouveau 드라이버를 설치하고 소프트웨어 렌더링을 사용하도록 선택하는 것이 도움이 될 수 있습니다. 소프트웨어를 다시 시작하면 적용됩니다."),
("Always use software rendering", "항상 소프트웨어 렌더링 사용"),
("config_input", "키보드를 통해 원격 데스크톱을 제어할 수 있으려면 RustDesk의 \"입력 모니터링\" 권한을 부여해 주세요"),
("config_microphone", "마이크를 통한 오디오 전송을 지원하려면 RustDesk에 \"녹음\" 권한을 부여하세요"),
("request_elevation_tip", "상대방이 있다면 권한 상승을 요청할 수도 있습니다"),
("Wait", "대기"),
("Elevation Error", "권한 상승 에러"),
("Ask the remote user for authentication", "원격 사용자에게 인증 요청"),
("Choose this if the remote account is administrator", "원격 계정이 관리자인 경우 선택하세요"),
("Transmit the username and password of administrator", "관리자의 사용자 이름과 비밀번호를 전송합니다"),
("still_click_uac_tip", "통제된 사용자는 여전히 RustDesk를 실행하는 UAC 창에서 확인을 클릭해야 합니다"),
("Request Elevation", "권한 상승 요청"),
("wait_accept_uac_tip", "원격 사용자가 UAC 대화 상자를 확인할 때까지 기다리십시오"),
("Elevate successfully", "권한 상승이 완료되었습니다"),
("uppercase", "대문자"),
("lowercase", "소문자"),
("digit", "숫자"),
("special character", "특수문자"),
("length>=8", "8자 이상"),
("Weak", "약함"),
("Medium", "보통"),
("Strong", "강력"),
("Switch Sides", "역방향 액세스 전환"),
("Please confirm if you want to share your desktop?", "데스크탑을 공유하시겠습니까?"),
("Display", "디스플레이"),
("Default View Style", "기본 보기 스타일"),
("Default Scroll Style", "기본 스크롤 스타일"),
("Default Image Quality", "기본 이미지 품질"),
("Default Codec", "기본 코덱"),
("Bitrate", "비트레이트"),
("FPS", "FPS"),
("Auto", "자동"),
("Other Default Options", "기타 기본 옵션"),
("Voice call", "음성통화"),
("Text chat", "문자 채팅"),
("Stop voice call", "음성통화 종료"),
("relay_hint_tip", "직접 연결이 안될 수도 있으니 릴레이 연결을 시도해보세요. \n또한 릴레이 연결을 직접 사용하고 싶다면 ID 뒤에 /r을 추가하면 되고, 최근 방문에 해당 카드가 존재한다면 카드 옵션에서 릴레이 연결을 강제하도록 선택할 수도 있습니다."),
("Reconnect", "다시 연결"),
("Codec", "코덱"),
("Resolution", "해상도"),
("No transfers in progress", "진행 중인 전송이 없습니다"),
("Set one-time password length", "일회용 비밀번호 길이 설정"),
("install_cert_tip", "RustDesk 인증서 설치"),
("confirm_install_cert_tip", "이 인증서는 RustDesk 테스트 인증서이므로 신뢰할 수 있습니다. 인증서는 RustDesk 드라이버를 신뢰하고 설치하는 데 사용됩니다"),
("RDP Settings", "RDP 설정"),
("Sort by", "정렬 기준"),
("New Connection", "새로운 연결"),
("Restore", "복원"),
("Minimize", "최소화"),
("Maximize", "최대화"),
("Your Device", "당신의 장치"),
("empty_recent_tip", "최근 세션이 없습니다. 새 세션을 시작해보세요"),
("empty_favorite_tip", "장치 즐겨찾기가 없습니다. 새 즐겨찾기를 추가해보세요"),
("empty_lan_tip", "제어되는 장치가 발견되지 않았습니다."),
("empty_address_book_tip", "현재 주소록에 제어되는 클라이언트가 없습니다"),
("eg: admin", "예: 관리자"),
("Empty Username", "사용자명이 비어있습니다"),
("Empty Password", "비밀번호가 비어있습니다"),
("Me", ""),
("identical_file_tip", "이 파일은 상대방의 파일과 일치합니다."),
("show_monitors_tip", "도구 모음에 모니터 표시"),
("View Mode", "보기 모드"),
("login_linux_tip", "X 데스크탑을 활성화하려면 제어되는 터미널의 Linux 계정에 로그인하세요"),
("verify_rustdesk_password_tip", "RustDesk 비밀번호 확인"),
("remember_account_tip", "이 계정을 기억하세요"),
("os_account_desk_tip", "모니터가 없는 환경에서 이 계정은 제어되는 시스템에 로그인하고 데스크탑을 활성화하는 데 사용됩니다"),
("OS Account", "OS 계정"),
("another_user_login_title_tip", "다른 사용자가 로그인되어 있습니다"),
("another_user_login_text_tip", "연결 종료"),
("xorg_not_found_title_tip", "Xorg가 설치되지 않았습니다"),
("xorg_not_found_text_tip", "Xorg를 설치해주세요"),
("no_desktop_title_tip", "데스크탑이 설치되지 않았습니다"),
("no_desktop_text_tip", "데스크탑을 설치해주세요"),
("No need to elevate", "권한 상승이 필요없습니다."),
("System Sound", "시스템 사운드"),
("Default", "기본"),
("New RDP", "새로운 RDP"),
("Fingerprint", "지문"),
("Copy Fingerprint", "지문 복사"),
("no fingerprints", "지문이 없습니다"),
("Select a peer", "동료를 선택하세요"),
("Select peers", "동료 선택"),
("Plugins", "플러그인"),
("Uninstall", "제거"),
("Update", "업데이트"),
("Enable", "활성화"),
("Disable", "비활성화"),
("Options", "옵션"),
("resolution_original_tip", "기본 해상도"),
("resolution_fit_local_tip", "로컬 해상도로 변경"),
("resolution_custom_tip", "맞춤 해상도"),
("Collapse toolbar", "툴바 접기"),
("Accept and Elevate", "권한 상승 승인"),
("accept_and_elevate_btn_tooltip", "연결 수락 및 UAC 권한 상승"),
("clipboard_wait_response_timeout_tip", "복사 응답을 기다리는 동안 시간이 초과되었습니다."),
("Incoming connection", "들어오는 연결"),
("Outgoing connection", "나가는 연결"),
("Exit", "나가기"),
("Open", "열기"),
("logout_tip", "정말로 로그아웃하시겠습니까?"),
("Service", "서비스"),
("Start", "시작"),
("Stop", "중지"),
("exceed_max_devices", "최대_장치_초과"),
("Sync with recent sessions", "최근 세션과 동기화"),
("Sort tags", "태그 정렬"),
("Open connection in new tab", "새 탭에서 연결 열기"),
("Move tab to new window", "탭을 새 창으로 이동"),
("Can not be empty", "비워둘 수 없습니다"),
("Already exists", "이미 존재 함"),
("Change Password", "비밀번호 변경"),
("Refresh Password", "비밀번호 새로고침"),
("ID", "ID"),
("Grid View", "그리드 보기"),
("List View", "리스트 보기"),
("Select", "선택"),
("Toggle Tags", "태그 전환"),
("pull_ab_failed_tip", "주소록을 가져오지 못했습니다."),
("push_ab_failed_tip", "주소록 업로드 실패"),
("synced_peer_readded_tip", "최근 세션에 있는 장치는 주소록에 다시 동기화됩니다."),
("Change Color", "색상 변경"),
("Primary Color", "기본 색상"),
("HSV Color", "HSV 색상"),
("Installation Successful!", "설치 성공!"),
("Installation failed!", "설치 실패!"),
("Reverse mouse wheel", "마우스 휠 반전"),
("{} sessions", "{} 세션"),
("scam_title", "당신은 사기를 당했을 수도 있습니다"),
("scam_text1", "모르는 사람과 통화 중이고 그들이 RustDesk를 사용하여 서비스를 시작하라고 요청하는 경우, 계속하지 말고 즉시 전화를 끊으세요"),
("scam_text2", "그들은 귀하의 돈이나 기타 개인 정보를 훔치려는 사기꾼일 가능성이 높습니다"),
("Don't show again", "다시 표시하지 않음"),
("I Agree", "동의"),
("Decline", "거절"),
("Timeout in minutes", "시간 초과(분)"),
("auto_disconnect_option_tip", "비활성 세션 자동 종료"),
("Connection failed due to inactivity", "장시간 활동이 없어 연결이 자동으로 끊어졌습니다"),
("Check for software update on startup", "시작 시 소프트웨어 업데이트 확인"),
("upgrade_rustdesk_server_pro_to_{}_tip", "RustDesk 서버 전문가 버전 {} 으로 업그레이드하세요"),
("pull_group_failed_tip", "그룹 정보를 가져오지 못했습니다"),
("Filter by intersection", "교차로로 필터링"),
("Remove wallpaper during incoming sessions", "세션 수락시 배경화면 제거"),
("Test", "테스트"),
("switch_display_elevated_connections_tip", "권한을 승격한 후에는 사용자에게 다중 연결 요금이 부과되며 기본이 아닌 디스플레이로 전환할 수 없습니다. 여러 대의 모니터를 제어하려면 설치 후 다시 시도하세요"),
("display_is_plugged_out_msg", "모니터의 연결이 끈어지면 첫 번째 모니터로 전환됩니다"),
("No displays", "디스플레이 없음"),
("elevated_switch_display_msg", "권한 상승 이후에는 다중 모니터 화면이 지원되지 않으므로 메인 모니터로 전환하세요"),
("Open in new window", "새 창에서 열기"),
("Show displays as individual windows", "디스플레이를 개별 창으로 표시"),
("Use all my displays for the remote session", "원격 세션에 내 모든 디스플레이 사용"),
("selinux_tip", "SELinux를 활성화하면 RustDesk가 호스트로 제대로 실행되지 않을 수 있습니다"),
("Change view", "보기 변경"),
("Big tiles", "큰 타일"),
("Small tiles", "작은 타일"),
("List", "리스트"),
("Virtual display", "가상 디스플레이"),
("Plug out all", "모두 플러그 아웃"),
("True color (4:4:4)", "트루컬러(4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Дайын"),
("Established", "Қосылды"),
("connecting_status", "RustDesk желісіне қосылуда..."),
("Enable Service", "Сербесті қосу"),
("Start Service", "Сербесті іске қосу"),
("Enable service", "Сербесті қосу"),
("Start service", "Сербесті іске қосу"),
("Service is running", "Сербес істеуде"),
("Service is not running", "Сербес істемеуде"),
("not_ready_status", "Дайын емес. Қосылымды тексеруді өтінеміз"),
("Control Remote Desktop", "Қашықтағы Жұмыс үстелін Басқару"),
("Transfer File", "Файыл Тасымалдау"),
("Transfer file", "Файыл Тасымалдау"),
("Connect", "Қосылу"),
("Recent Sessions", "Соңғы Сештер"),
("Address Book", "Мекенжай Кітабы"),
("Recent sessions", "Соңғы Сештер"),
("Address book", "Мекенжай Кітабы"),
("Confirmation", "Мақұлдау"),
("TCP Tunneling", "TCP тунелдеу"),
("TCP tunneling", "TCP тунелдеу"),
("Remove", "Жою"),
("Refresh random password", "Кездейсоқ құпия сөзді жаңарту"),
("Set your own password", "Өз құпия сөзіңізді орнатыңыз"),
("Enable Keyboard/Mouse", "Пернетақта/Тінтуірді қосу"),
("Enable Clipboard", "Көшіру-тақтасын қосу"),
("Enable File Transfer", "Файыл Тасымалдауды қосу"),
("Enable TCP Tunneling", "TCP тунелдеуді қосу"),
("Enable keyboard/mouse", "Пернетақта/Тінтуірді қосу"),
("Enable clipboard", "Көшіру-тақтасын қосу"),
("Enable file transfer", "Файыл Тасымалдауды қосу"),
("Enable TCP tunneling", "TCP тунелдеуді қосу"),
("IP Whitelisting", "IP Ақ-тізімі"),
("ID/Relay Server", "ID/Relay сербері"),
("Import Server Config", "Серверді импорттау"),
("Import server config", "Серверді импорттау"),
("Export Server Config", ""),
("Import server configuration successfully", "Сервердің конфигурациясы сәтті импортталды"),
("Export server configuration successfully", ""),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Қабылдау"),
("Dismiss", "Босату"),
("Disconnect", "Ажырату"),
("Allow using keyboard and mouse", "Пернетақта мен тінтуірді қолдануды рұқсат ету"),
("Allow using clipboard", "Көшіру-тақтасын рұқсат ету"),
("Allow hearing sound", "Дыбыс естуді рұқсат ету"),
("Allow file copy and paste", "Файылды көшіру мен қоюды рұқсат ету"),
("Enable file copy and paste", "Файылды көшіру мен қоюды рұқсат ету"),
("Connected", "Қосылды"),
("Direct and encrypted connection", "Тікелей және кіриптелген қосылым"),
("Relayed and encrypted connection", "Релайданған және кіриптелген қосылым"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Кіруде..."),
("Enable RDP session sharing", "RDP сешті бөлісуді іске қосу"),
("Auto Login", "Ауты Кіру (\"Сеш аяқталған соң құлыптау\"'ды орнатқанда ғана жарамды)"),
("Enable Direct IP Access", "Тікелей IP Қолжетімді іске қосу"),
("Enable direct IP access", "Тікелей IP Қолжетімді іске қосу"),
("Rename", "Атын өзгерту"),
("Space", "Орын"),
("Create Desktop Shortcut", "Жұмыс үстелі Таңбашасын Жасау"),
("Create desktop shortcut", "Жұмыс үстелі Таңбашасын Жасау"),
("Change Path", "Жолды өзгерту"),
("Create Folder", "Бума жасау"),
("Please enter the folder name", "Буманың атауын еңгізуді өтінеміз"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Артжақтағы RustDesk сербесін сақтап тұру"),
("Ignore Battery Optimizations", "Бәтері Оңтайландыруларын Елемеу"),
("android_open_battery_optimizations_tip", "Егер де бұл ерекшелікті өшіруді қаласаңыз, келесі RustDesk апылқат орнатпалары бетіне барып, [Бәтері]'ні тауып кіріңіз де [Шектеусіз]'ден құсбелгіні алып тастауды өтінеміз"),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Қосылу рұқсат етілмеген"),
("Legacy mode", ""),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Тұрақты құпия сөзді қолдану"),
("Use both passwords", "Қос құпия сөзді қолдану"),
("Set permanent password", "Тұрақты құпия сөзді орнату"),
("Enable Remote Restart", "Қашықтан қайта-қосуды іске қосу"),
("Allow remote restart", "Қашықтан қайта-қосуды рұқсат ету"),
("Restart Remote Device", "Қашықтағы құрылғыны қайта-қосу"),
("Enable remote restart", "Қашықтан қайта-қосуды іске қосу"),
("Restart remote device", "Қашықтағы құрылғыны қайта-қосу"),
("Are you sure you want to restart", "Қайта-қосуға сенімдісіз бе?"),
("Restarting Remote Device", "Қашықтағы Құрылғыны қайта-қосуда"),
("Restarting remote device", "Қашықтағы Құрылғыны қайта-қосуда"),
("remote_restarting_tip", "Қашықтағы құрылғы қайта-қосылуда, бұл хабар терезесін жабып, біраздан соң тұрақты құпия сөзбен қайта қосылуды өтінеміз"),
("Copied", "Көшірілді"),
("Exit Fullscreen", "Толық екіреннен Шығу"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", ""),
("Enable hardware codec", ""),
("Unlock Security Settings", ""),
("Enable Audio", ""),
("Enable audio", ""),
("Unlock Network Settings", ""),
("Server", ""),
("Direct IP Access", ""),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", ""),
("Start session recording", ""),
("Stop session recording", ""),
("Enable Recording Session", ""),
("Allow recording session", ""),
("Enable LAN Discovery", ""),
("Deny LAN Discovery", ""),
("Enable recording session", ""),
("Enable LAN discovery", ""),
("Deny LAN discovery", ""),
("Write a message", ""),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Pasiruošęs"),
("Established", "Įsteigta"),
("connecting_status", "Prisijungiama prie RustDesk tinklo..."),
("Enable Service", "Įgalinti paslaugą"),
("Start Service", "Pradėti paslaugą"),
("Enable service", "Įgalinti paslaugą"),
("Start service", "Pradėti paslaugą"),
("Service is running", "Paslauga veikia"),
("Service is not running", "Paslauga neveikia"),
("not_ready_status", "Neprisijungęs. Patikrinkite ryšį."),
("Control Remote Desktop", "Nuotolinio darbalaukio valdymas"),
("Transfer File", "Perkelti failą"),
("Transfer file", "Perkelti failą"),
("Connect", "Prisijungti"),
("Recent Sessions", "Seansų istorija"),
("Address Book", "Adresų knyga"),
("Recent sessions", "Seansų istorija"),
("Address book", "Adresų knyga"),
("Confirmation", "Patvirtinimas"),
("TCP Tunneling", "TCP tuneliavimas"),
("TCP tunneling", "TCP tuneliavimas"),
("Remove", "Pašalinti"),
("Refresh random password", "Atnaujinti atsitiktinį slaptažodį"),
("Set your own password", "Nustatykite savo slaptažodį"),
("Enable Keyboard/Mouse", "Įgalinti klaviatūrą/pelę"),
("Enable Clipboard", "Įgalinti iškarpinę"),
("Enable File Transfer", "Įgalinti failų perdavimą"),
("Enable TCP Tunneling", "Įgalinti TCP tuneliavimą"),
("Enable keyboard/mouse", "Įgalinti klaviatūrą/pelę"),
("Enable clipboard", "Įgalinti iškarpinę"),
("Enable file transfer", "Įgalinti failų perdavimą"),
("Enable TCP tunneling", "Įgalinti TCP tuneliavimą"),
("IP Whitelisting", "IP baltasis sąrašas"),
("ID/Relay Server", "ID / perdavimo serveris"),
("Import Server Config", "Importuoti serverio konfigūraciją"),
("Import server config", "Importuoti serverio konfigūraciją"),
("Export Server Config", "Eksportuoti serverio konfigūraciją"),
("Import server configuration successfully", "Sėkmingai importuoti serverio konfigūraciją"),
("Export server configuration successfully", "Sėkmingai eksportuoti serverio konfigūraciją"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Priimti"),
("Dismiss", "Atmesti"),
("Disconnect", "Atjungti"),
("Allow using keyboard and mouse", "Leisti naudoti klaviatūrą ir pelę"),
("Allow using clipboard", "Leisti naudoti mainų sritį"),
("Allow hearing sound", "Leisti girdėti kompiuterio garsą"),
("Allow file copy and paste", "Leisti kopijuoti ir įklijuoti failus"),
("Enable file copy and paste", "Leisti kopijuoti ir įklijuoti failus"),
("Connected", "Prisijungta"),
("Direct and encrypted connection", "Tiesioginis ir šifruotas ryšys"),
("Relayed and encrypted connection", "Perduotas ir šifruotas ryšys"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Prisijungiama..."),
("Enable RDP session sharing", "Įgalinti RDP seansų bendrinimą"),
("Auto Login", "Automatinis prisijungimas"),
("Enable Direct IP Access", "Įgalinti tiesioginę IP prieigą"),
("Enable direct IP access", "Įgalinti tiesioginę IP prieigą"),
("Rename", "Pervardyti"),
("Space", "Erdvė"),
("Create Desktop Shortcut", "Sukurti nuorodą darbalaukyje"),
("Create desktop shortcut", "Sukurti nuorodą darbalaukyje"),
("Change Path", "Keisti kelią"),
("Create Folder", "Sukurti aplanką"),
("Please enter the folder name", "Įveskite aplanko pavadinimą"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Palikti RustDesk fonine paslauga"),
("Ignore Battery Optimizations", "Ignoruoti akumuliatoriaus optimizavimą"),
("android_open_battery_optimizations_tip", "Eikite į kitą nustatymų puslapį"),
("Start on Boot", "Pradėti paleidžiant"),
("Start on boot", "Pradėti paleidžiant"),
("Start the screen sharing service on boot, requires special permissions", "Paleiskite ekrano bendrinimo paslaugą įkrovos metu, reikia specialių leidimų"),
("Connection not allowed", "Ryšys neleidžiamas"),
("Legacy mode", "Senasis režimas"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Naudoti nuolatinį slaptažodį"),
("Use both passwords", "Naudoti abu slaptažodžius"),
("Set permanent password", "Nustatyti nuolatinį slaptažodį"),
("Enable Remote Restart", "Įgalinti nuotolinį paleidimą iš naujo"),
("Allow remote restart", "Leisti nuotolinio kompiuterio paleidimą iš naujo"),
("Restart Remote Device", "Paleisti nuotolinį kompiuterį iš naujo"),
("Enable remote restart", "Įgalinti nuotolinį paleidimą iš naujo"),
("Restart remote device", "Paleisti nuotolinį kompiuterį iš naujo"),
("Are you sure you want to restart", "Ar tikrai norite paleisti iš naujo?"),
("Restarting Remote Device", "Nuotolinio įrenginio paleidimas iš naujo"),
("Restarting remote device", "Nuotolinio įrenginio paleidimas iš naujo"),
("remote_restarting_tip", "Nuotolinis įrenginys paleidžiamas iš naujo. Uždarykite šį pranešimą ir po kurio laiko vėl prisijunkite naudodami nuolatinį slaptažodį."),
("Copied", "Nukopijuota"),
("Exit Fullscreen", "Išeiti iš pilno ekrano"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Kaip sistemos"),
("Enable hardware codec", "Įgalinti"),
("Unlock Security Settings", "Atrakinti saugos nustatymus"),
("Enable Audio", "Įgalinti garsą"),
("Enable audio", "Įgalinti garsą"),
("Unlock Network Settings", "Atrakinti tinklo nustatymus"),
("Server", "Serveris"),
("Direct IP Access", "Tiesioginė IP prieiga"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Keisti"),
("Start session recording", "Pradėti seanso įrašinėjimą"),
("Stop session recording", "Sustabdyti seanso įrašinėjimą"),
("Enable Recording Session", "Įgalinti seanso įrašinėjimą"),
("Allow recording session", "Leisti seanso įrašinėjimą"),
("Enable LAN Discovery", "Įgalinti LAN aptikimą"),
("Deny LAN Discovery", "Neleisti LAN aptikimo"),
("Enable recording session", "Įgalinti seanso įrašinėjimą"),
("Enable LAN discovery", "Įgalinti LAN aptikimą"),
("Deny LAN discovery", "Neleisti LAN aptikimo"),
("Write a message", "Rašyti žinutę"),
("Prompt", "Užuomina"),
("Please wait for confirmation of UAC...", "Palaukite UAC patvirtinimo..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland palaikymas yra eksperimentinis, naudokite X11, jei jums reikalingas automatinis prisijungimas."),
("Right click to select tabs", "Dešiniuoju pelės mygtuku spustelėkite, kad pasirinktumėte skirtukus"),
("Skipped", "Praleisti"),
("Add to Address Book", "Pridėti prie adresų knygos"),
("Add to address book", "Pridėti prie adresų knygos"),
("Group", "Grupė"),
("Search", "Paieška"),
("Closed manually by web console", "Uždaryta rankiniu būdu naudojant žiniatinklio konsolę"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Gatavs"),
("Established", "Izveidots"),
("connecting_status", "Notiek savienojuma izveide ar RustDesk tīklu..."),
("Enable Service", "Iespējot servisu"),
("Start Service", "Sākt servisu"),
("Enable service", "Iespējot servisu"),
("Start service", "Sākt servisu"),
("Service is running", "Pakalpojums darbojas"),
("Service is not running", "Pakalpojums nedarbojas"),
("not_ready_status", "Nav gatavs. Lūdzu, pārbaudiet savienojumu"),
("Control Remote Desktop", "Vadīt attālo darbvirsmu"),
("Transfer File", "Pārsūtīt failu"),
("Transfer file", "Pārsūtīt failu"),
("Connect", "Savienoties"),
("Recent Sessions", "Pēdējās sesijas"),
("Address Book", "Adrešu grāmata"),
("Recent sessions", "Pēdējās sesijas"),
("Address book", "Adrešu grāmata"),
("Confirmation", "Apstiprinājums"),
("TCP Tunneling", "TCP tunelēšana"),
("TCP tunneling", "TCP tunelēšana"),
("Remove", "Noņemt"),
("Refresh random password", "Atsvaidzināt nejaušo paroli"),
("Set your own password", "Iestatiet savu paroli"),
("Enable Keyboard/Mouse", "Iespējot tastatūru/peli"),
("Enable Clipboard", "Iespējot starpliktuvi"),
("Enable File Transfer", "Iespējot failu pārsūtīšanu"),
("Enable TCP Tunneling", "Iespējot TCP tunelēšanu"),
("Enable keyboard/mouse", "Iespējot tastatūru/peli"),
("Enable clipboard", "Iespējot starpliktuvi"),
("Enable file transfer", "Iespējot failu pārsūtīšanu"),
("Enable TCP tunneling", "Iespējot TCP tunelēšanu"),
("IP Whitelisting", "IP baltais saraksts"),
("ID/Relay Server", "ID/releja serveris"),
("Import Server Config", "Importēt servera konfigurāciju"),
("Import server config", "Importēt servera konfigurāciju"),
("Export Server Config", "Eksportēt servera konfigurāciju"),
("Import server configuration successfully", "Servera konfigurācija veiksmīgi importēta"),
("Export server configuration successfully", "Servera konfigurācija veiksmīgi eksportēta"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Pieņemt"),
("Dismiss", "Noraidīt"),
("Disconnect", "Atvienot"),
("Allow using keyboard and mouse", "Atļaut izmantot tastatūru un peli"),
("Allow using clipboard", "Atļaut izmantot starpliktuvi"),
("Allow hearing sound", "Atļaut klausīties skaņu"),
("Allow file copy and paste", "Atļaut failu kopēšanu un ielīmēšanu"),
("Enable file copy and paste", "Atļaut failu kopēšanu un ielīmēšanu"),
("Connected", "Savienots"),
("Direct and encrypted connection", "Tiešs un šifrēts savienojums"),
("Relayed and encrypted connection", "Pārslēgts un šifrēts savienojums"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Ielogoties..."),
("Enable RDP session sharing", "Iespējot RDP sesiju koplietošanu"),
("Auto Login", "Automātiskā pieteikšanās (derīga tikai tad, ja esat iestatījis \"Bloķēt pēc sesijas beigām\")"),
("Enable Direct IP Access", "Iespējot tiešo IP piekļuvi"),
("Enable direct IP access", "Iespējot tiešo IP piekļuvi"),
("Rename", "Pārdēvēt"),
("Space", "Vieta"),
("Create Desktop Shortcut", "Izveidot saīsni uz darbvirsmas"),
("Create desktop shortcut", "Izveidot saīsni uz darbvirsmas"),
("Change Path", "Mainīt ceļu"),
("Create Folder", "Izveidot mapi"),
("Please enter the folder name", "Lūdzu, ievadiet mapes nosaukumu"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Saglabāt RustDesk fona servisu"),
("Ignore Battery Optimizations", "Ignorēt akumulatora optimizāciju"),
("android_open_battery_optimizations_tip", "Ja vēlaties atspējot šo funkciju, lūdzu, dodieties uz nākamo RustDesk lietojumprogrammas iestatījumu lapu, atrodiet un atveriet [Akumulators], noņemiet atzīmi no [Neierobežots]"),
("Start on Boot", "Palaist pie ieslēgšanas"),
("Start on boot", "Palaist pie ieslēgšanas"),
("Start the screen sharing service on boot, requires special permissions", "Startējiet ekrāna koplietošanas pakalpojumu ieslēgšanas laikā, nepieciešamas īpašas atļaujas"),
("Connection not allowed", "Savienojums nav atļauts"),
("Legacy mode", "Novecojis režīms"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Izmantot pastāvīgo paroli"),
("Use both passwords", "Izmantot abas paroles"),
("Set permanent password", "Iestatīt pastāvīgo paroli"),
("Enable Remote Restart", "Iespējot attālo restartēšanu"),
("Allow remote restart", "Atļaut attālo restartēšanu"),
("Restart Remote Device", "Restartēt attālo ierīci"),
("Enable remote restart", "Iespējot attālo restartēšanu"),
("Restart remote device", "Restartēt attālo ierīci"),
("Are you sure you want to restart", "Vai tiešām vēlaties restartēt"),
("Restarting Remote Device", "Attālās ierīces restartēšana"),
("Restarting remote device", "Attālās ierīces restartēšana"),
("remote_restarting_tip", "Attālā ierīce tiek restartēta, lūdzu, aizveriet šo ziņojuma lodziņu un pēc kāda laika izveidojiet savienojumu ar pastāvīgo paroli"),
("Copied", "Kopēts"),
("Exit Fullscreen", "Iziet no pilnekrāna"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Sekot sistēmai"),
("Enable hardware codec", "Iespējot aparatūras kodeku"),
("Unlock Security Settings", "Atbloķēt drošības iestatījumus"),
("Enable Audio", "Iespējot audio"),
("Enable audio", "Iespējot audio"),
("Unlock Network Settings", "Atbloķēt tīkla iestatījumus"),
("Server", "Serveris"),
("Direct IP Access", "Tiešā IP piekļuve"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Mainīt"),
("Start session recording", "Sākt sesijas ierakstīšanu"),
("Stop session recording", "Apturēt sesijas ierakstīšanu"),
("Enable Recording Session", "Iespējot sesijas ierakstīšanu"),
("Allow recording session", "Atļaut sesijas ierakstīšanu"),
("Enable LAN Discovery", "Iespējot LAN atklāšanu"),
("Deny LAN Discovery", "Liegt LAN atklāšanu"),
("Enable recording session", "Iespējot sesijas ierakstīšanu"),
("Enable LAN discovery", "Iespējot LAN atklāšanu"),
("Deny LAN discovery", "Liegt LAN atklāšanu"),
("Write a message", "Rakstīt ziņojumu"),
("Prompt", "Uzvedne"),
("Please wait for confirmation of UAC...", "Lūdzu, uzgaidiet UAC apstiprinājumu..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland atbalsts ir eksperimentālā stadijā. Ja nepieciešama neuzraudzīta piekļuve, lūdzu, izmantojiet X11."),
("Right click to select tabs", "Ar peles labo pogu noklikšķiniet, lai atlasītu cilnes"),
("Skipped", "Izlaists"),
("Add to Address Book", "Pievienot adrešu grāmatai"),
("Add to address book", "Pievienot adrešu grāmatai"),
("Group", "Grupa"),
("Search", "Meklēt"),
("Closed manually by web console", "Manuāli aizvērta tīmekļa konsole"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", "Saraksts"),
("Virtual display", "Virtuālais displejs"),
("Plug out all", "Atvienot visu"),
("True color (4:4:4)", "Īstā krāsa (4:4:4)"),
("Enable blocking user input", "Iespējot lietotāja ievades bloķēšanu"),
("id_input_tip", "Varat ievadīt ID, tiešo IP vai domēnu ar portu (<domēns>:<ports>).\nJa vēlaties piekļūt ierīcei citā serverī, lūdzu, pievienojiet servera adresi (<id>@<servera_adrese>?key=<atslēgas_vērtība>), piemēram,\n9123456234@192.168.16.1:21117?key=5Qbwsde3unUcJBtrx9ZkvUmwFNoExHzpryHuPUdqlWM=.\nJa vēlaties piekļūt ierīcei publiskajā serverī, lūdzu, ievadiet \"<id>@public\", publiskajam serverim atslēga nav nepieciešama"),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Klaar"),
("Established", "Opgezet"),
("connecting_status", "Verbinding maken met het RustDesk netwerk..."),
("Enable Service", "Service Inschakelen"),
("Start Service", "Start Service"),
("Enable service", "Service Inschakelen"),
("Start service", "Start service"),
("Service is running", "De service loopt."),
("Service is not running", "De service loopt niet"),
("not_ready_status", "Niet klaar, controleer de netwerkverbinding"),
("Control Remote Desktop", "Beheer Extern Bureaublad"),
("Transfer File", "Bestand Overzetten"),
("Transfer file", "Bestand Overzetten"),
("Connect", "Verbinden"),
("Recent Sessions", "Recente Behandelingen"),
("Address Book", "Adresboek"),
("Recent sessions", "Recente Behandelingen"),
("Address book", "Adresboek"),
("Confirmation", "Bevestiging"),
("TCP Tunneling", "TCP Tunneling"),
("TCP tunneling", "TCP tunneling"),
("Remove", "Verwijder"),
("Refresh random password", "Vernieuw willekeurig wachtwoord"),
("Set your own password", "Stel uw eigen wachtwoord in"),
("Enable Keyboard/Mouse", "Toetsenbord/Muis Inschakelen"),
("Enable Clipboard", "Klembord Inschakelen"),
("Enable File Transfer", "Bestandsoverdracht Inschakelen"),
("Enable TCP Tunneling", "TCP Tunneling Inschakelen"),
("Enable keyboard/mouse", "Toetsenbord/Muis Inschakelen"),
("Enable clipboard", "Klembord Inschakelen"),
("Enable file transfer", "Bestandsoverdracht Inschakelen"),
("Enable TCP tunneling", "TCP tunneling Inschakelen"),
("IP Whitelisting", "IP Witte Lijst"),
("ID/Relay Server", "ID/Relay Server"),
("Import Server Config", "Importeer Serverconfiguratie"),
("Import server config", "Importeer Serverconfiguratie"),
("Export Server Config", "Exporteer Serverconfiguratie"),
("Import server configuration successfully", "Importeren serverconfiguratie succesvol"),
("Export server configuration successfully", "Exporteren serverconfiguratie succesvol"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Accepteren"),
("Dismiss", "Afwijzen"),
("Disconnect", "Verbinding verbreken"),
("Allow using keyboard and mouse", "Gebruik toetsenbord en muis toestaan"),
("Allow using clipboard", "Gebruik klembord toestaan"),
("Allow hearing sound", "Geluidsweergave toestaan"),
("Allow file copy and paste", "Kopiëren en plakken van bestanden toestaan"),
("Enable file copy and paste", "Kopiëren en plakken van bestanden toestaan"),
("Connected", "Verbonden"),
("Direct and encrypted connection", "Directe en versleutelde verbinding"),
("Relayed and encrypted connection", "Doorgeschakelde en versleutelde verbinding"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Aanmelden..."),
("Enable RDP session sharing", "Delen van RDP-sessie inschakelen"),
("Auto Login", "Automatisch Aanmelden"),
("Enable Direct IP Access", "Directe IP-toegang inschakelen"),
("Enable direct IP access", "Directe IP-toegang inschakelen"),
("Rename", "Naam wijzigen"),
("Space", "Spatie"),
("Create Desktop Shortcut", "Snelkoppeling op bureaublad maken"),
("Create desktop shortcut", "Snelkoppeling op bureaublad maken"),
("Change Path", "Pad wijzigen"),
("Create Folder", "Map Maken"),
("Please enter the folder name", "Geef de mapnaam op"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "RustDesk achtergronddienst behouden"),
("Ignore Battery Optimizations", "Negeer Batterij Optimalisaties"),
("android_open_battery_optimizations_tip", "Ga naar de volgende pagina met instellingen"),
("Start on Boot", "Starten bij Opstarten"),
("Start on boot", "Starten bij Opstarten"),
("Start the screen sharing service on boot, requires special permissions", "Start de schermdelings service bij het opstarten, vereist speciale rechten"),
("Connection not allowed", "Verbinding niet toegestaan"),
("Legacy mode", "Verouderde modus"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Gebruik permanent wachtwoord"),
("Use both passwords", "Gebruik beide wachtwoorden"),
("Set permanent password", "Stel permanent wachtwoord in"),
("Enable Remote Restart", "Schakel Herstart op afstand in"),
("Allow remote restart", "Opnieuw Opstarten op afstand toestaan"),
("Restart Remote Device", "Apparaat op afstand herstarten"),
("Enable remote restart", "Schakel Herstart op afstand in"),
("Restart remote device", "Apparaat op afstand herstarten"),
("Are you sure you want to restart", "Weet u zeker dat u wilt herstarten"),
("Restarting Remote Device", "Apparaat op afstand herstarten"),
("Restarting remote device", "Apparaat op afstand herstarten"),
("remote_restarting_tip", "Apparaat op afstand wordt opnieuw opgestart, sluit dit bericht en maak na een ogenblik opnieuw verbinding met het permanente wachtwoord."),
("Copied", "Gekopieerd"),
("Exit Fullscreen", "Volledig Scherm sluiten"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Volg Systeem"),
("Enable hardware codec", "Hardware codec inschakelen"),
("Unlock Security Settings", "Beveiligingsinstellingen vrijgeven"),
("Enable Audio", "Audio Inschakelen"),
("Enable audio", "Audio Inschakelen"),
("Unlock Network Settings", "Netwerkinstellingen Vrijgeven"),
("Server", "Server"),
("Direct IP Access", "Directe IP toegang"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Wissel"),
("Start session recording", "Start de sessieopname"),
("Stop session recording", "Stop de sessieopname"),
("Enable Recording Session", "Opnamesessie Activeren"),
("Allow recording session", "Opnamesessie toestaan"),
("Enable LAN Discovery", "LAN-detectie inschakelen"),
("Deny LAN Discovery", "LAN-detectie Weigeren"),
("Enable recording session", "Opnamesessie Activeren"),
("Enable LAN discovery", "LAN-detectie inschakelen"),
("Deny LAN discovery", "LAN-detectie Weigeren"),
("Write a message", "Schrijf een bericht"),
("Prompt", "Verzoek"),
("Please wait for confirmation of UAC...", "Wacht op bevestiging van UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland ondersteuning is slechts experimenteel. Gebruik alsjeblieft X11 als u onbeheerde toegang nodig hebt."),
("Right click to select tabs", "Rechts klikken om tabbladen te selecteren"),
("Skipped", "Overgeslagen"),
("Add to Address Book", "Toevoegen aan Adresboek"),
("Add to address book", "Toevoegen aan Adresboek"),
("Group", "Groep"),
("Search", "Zoek"),
("Closed manually by web console", "Handmatig gesloten door webconsole"),
@@ -566,11 +561,14 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Show displays as individual windows", "Beeldschermen weergeven als afzonderlijke vensters"),
("Use all my displays for the remote session", "Gebruik al mijn beeldschermen voor de externe sessie"),
("selinux_tip", ""),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("Change view", "Weergave wijzigen"),
("Big tiles", "Grote tegels"),
("Small tiles", "Kleine tegels"),
("List", "Overzicht"),
("Virtual display", "Virtuele weergave"),
("Plug out all", "Sluit alle"),
("True color (4:4:4)", "Ware kleur (4:4:4)"),
("Enable blocking user input", "Blokkeren van gebruikersinvoer inschakelen"),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Gotowe"),
("Established", "Nawiązano"),
("connecting_status", "Łączenie"),
("Enable Service", "Włącz usługę"),
("Start Service", "Uruchom usługę"),
("Enable service", "Włącz usługę"),
("Start service", "Uruchom usługę"),
("Service is running", "Usługa uruchomiona"),
("Service is not running", "Usługa nie jest uruchomiona"),
("not_ready_status", "Brak gotowości"),
("Control Remote Desktop", "Połącz się z"),
("Transfer File", "Transfer plików"),
("Transfer file", "Transfer plików"),
("Connect", "Połącz"),
("Recent Sessions", "Ostatnie sesje"),
("Address Book", "Książka adresowa"),
("Recent sessions", "Ostatnie sesje"),
("Address book", "Książka adresowa"),
("Confirmation", "Potwierdzenie"),
("TCP Tunneling", "Tunelowanie TCP"),
("TCP tunneling", "Tunelowanie TCP"),
("Remove", "Usuń"),
("Refresh random password", "Odśwież losowe hasło"),
("Set your own password", "Ustaw własne hasło"),
("Enable Keyboard/Mouse", "Włącz klawiaturę/mysz"),
("Enable Clipboard", "Włącz schowek"),
("Enable File Transfer", "Włącz transfer pliku"),
("Enable TCP Tunneling", "Włącz tunelowanie TCP"),
("Enable keyboard/mouse", "Włącz klawiaturę/mysz"),
("Enable clipboard", "Włącz schowek"),
("Enable file transfer", "Włącz transfer pliku"),
("Enable TCP tunneling", "Włącz tunelowanie TCP"),
("IP Whitelisting", "Biała lista IP"),
("ID/Relay Server", "Serwer ID/Pośredniczący"),
("Import Server Config", "Importuj konfigurację serwera"),
("Import server config", "Importuj konfigurację serwera"),
("Export Server Config", "Eksportuj konfigurację serwera"),
("Import server configuration successfully", "Import konfiguracji serwera zakończono pomyślnie"),
("Export server configuration successfully", "Eksport konfiguracji serwera zakończono pomyślnie"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Akceptuj"),
("Dismiss", "Odrzuć"),
("Disconnect", "Rozłącz"),
("Allow using keyboard and mouse", "Zezwalaj na używanie klawiatury i myszy"),
("Allow using clipboard", "Zezwalaj na używanie schowka"),
("Allow hearing sound", "Zezwól na transmisję audio"),
("Allow file copy and paste", "Zezwalaj na kopiowanie i wklejanie plików"),
("Enable file copy and paste", "Zezwalaj na kopiowanie i wklejanie plików"),
("Connected", "Połączony"),
("Direct and encrypted connection", "Połączenie bezpośrednie i szyfrowane"),
("Relayed and encrypted connection", "Połączenie pośrednie i szyfrowane"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Trwa logowanie..."),
("Enable RDP session sharing", "Włącz udostępnianie sesji RDP"),
("Auto Login", "Automatyczne logowanie"),
("Enable Direct IP Access", "Włącz bezpośredni dostęp IP"),
("Enable direct IP access", "Włącz bezpośredni dostęp IP"),
("Rename", "Zmień nazwę"),
("Space", "Przestrzeń"),
("Create Desktop Shortcut", "Utwórz skrót na pulpicie"),
("Create desktop shortcut", "Utwórz skrót na pulpicie"),
("Change Path", "Zmień ścieżkę"),
("Create Folder", "Utwórz folder"),
("Please enter the folder name", "Wpisz nazwę folderu"),
@@ -274,7 +271,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Chat", "Czat"),
("Total", "Łącznie"),
("items", "elementów"),
("Selected", "Zaznaczonych"),
("Selected", "zaznaczonych"),
("Screen Capture", "Przechwytywanie ekranu"),
("Input Control", "Kontrola wejścia"),
("Audio Capture", "Przechwytywanie dźwięku"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Zachowaj usługę RustDesk w tle"),
("Ignore Battery Optimizations", "Ignoruj optymalizację baterii"),
("android_open_battery_optimizations_tip", "Jeśli chcesz wyłączyć tę funkcję, przejdź do następnej strony ustawień aplikacji RustDesk, znajdź i wprowadź [Bateria], odznacz [Bez ograniczeń]"),
("Start on Boot", "Autostart"),
("Start on boot", "Autostart"),
("Start the screen sharing service on boot, requires special permissions", "Uruchom usługę udostępniania ekranu podczas startu, wymaga specjalnych uprawnień"),
("Connection not allowed", "Połączenie niedozwolone"),
("Legacy mode", "Tryb kompatybilności wstecznej (legacy)"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Użyj hasła permanentnego"),
("Use both passwords", "Użyj obu haseł"),
("Set permanent password", "Ustaw hasło permanentne"),
("Enable Remote Restart", "Włącz zdalne restartowanie"),
("Allow remote restart", "Zezwól na zdalne restartowanie"),
("Restart Remote Device", "Zrestartuj zdalne urządzenie"),
("Enable remote restart", "Włącz zdalne restartowanie"),
("Restart remote device", "Zrestartuj zdalne urządzenie"),
("Are you sure you want to restart", "Czy na pewno uruchomić ponownie"),
("Restarting Remote Device", "Trwa restartowanie Zdalnego Urządzenia"),
("Restarting remote device", "Trwa restartowanie Zdalnego Urządzenia"),
("remote_restarting_tip", "Trwa ponownie uruchomienie zdalnego urządzenia, zamknij ten komunikat i ponownie nawiąż za chwilę połączenie używając hasła permanentnego"),
("Copied", "Skopiowano"),
("Exit Fullscreen", "Wyłączyć tryb pełnoekranowy"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Zgodny z systemem"),
("Enable hardware codec", "Włącz akcelerację sprzętową kodeków"),
("Unlock Security Settings", "Odblokuj ustawienia zabezpieczeń"),
("Enable Audio", "Włącz dźwięk"),
("Enable audio", "Włącz dźwięk"),
("Unlock Network Settings", "Odblokuj ustawienia Sieciowe"),
("Server", "Serwer"),
("Direct IP Access", "Bezpośredni adres IP"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Zmień"),
("Start session recording", "Zacznij nagrywać sesję"),
("Stop session recording", "Zatrzymaj nagrywanie sesji"),
("Enable Recording Session", "Włącz nagrywanie sesji"),
("Allow recording session", "Zezwól na nagrywanie sesji"),
("Enable LAN Discovery", "Włącz wykrywanie urządzenia w sieci LAN"),
("Deny LAN Discovery", "Zablokuj wykrywanie urządzenia w sieci LAN"),
("Enable recording session", "Włącz nagrywanie sesji"),
("Enable LAN discovery", "Włącz wykrywanie urządzenia w sieci LAN"),
("Deny LAN discovery", "Zablokuj wykrywanie urządzenia w sieci LAN"),
("Write a message", "Napisz wiadomość"),
("Prompt", "Monit"),
("Please wait for confirmation of UAC...", "Poczekaj na potwierdzenie uprawnień UAC"),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wsparcie dla Wayland jest niekompletne, użyj X11 jeżeli chcesz korzystać z dostępu nienadzorowanego"),
("Right click to select tabs", "Kliknij prawym przyciskiem myszy, aby wybrać zakładkę"),
("Skipped", "Pominięte"),
("Add to Address Book", "Dodaj do Książki Adresowej"),
("Add to address book", "Dodaj do Książki Adresowej"),
("Group", "Grupy"),
("Search", "Szukaj"),
("Closed manually by web console", "Zakończone manualnie z konsoli Web"),
@@ -555,7 +550,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Check for software update on startup", "Sprawdź aktualizacje przy starcie programu"),
("upgrade_rustdesk_server_pro_to_{}_tip", "Proszę zaktualizować RustDesk Server Pro do wersji {} lub nowszej!"),
("pull_group_failed_tip", "Błąd odświeżania grup"),
("Filter by intersection", ""),
("Filter by intersection", "Filtruj wg przecięcia"),
("Remove wallpaper during incoming sessions", "Usuń tapetę podczas sesji przychodzących"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Przełączanie na ekran inny niż główny nie jest obsługiwane przy podniesionych uprawnieniach, gdy istnieje wiele połączeń. Jeśli chcesz sterować wieloma ekranami, należy zainstalować program."),
@@ -564,13 +559,16 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("elevated_switch_display_msg", "Przełącz się na ekran główny, ponieważ wyświetlanie kilku ekranów nie jest obsługiwane przy podniesionych uprawnieniach."),
("Open in new window", "Otwórz w nowym oknie"),
("Show displays as individual windows", "Pokaż ekrany w osobnych oknach"),
("Use all my displays for the remote session", ""),
("selinux_tip", ""),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("Use all my displays for the remote session", "Użyj wszystkich moich ekranów do zdalnej sesji"),
("selinux_tip", "SELinux jest włączony na Twoim urządzeniu, co może przeszkodzić w uruchomieniu RustDesk po stronie kontrolowanej."),
("Change view", "Zmień widok"),
("Big tiles", "Duże kafelki"),
("Small tiles", "Małe kafelki"),
("List", "Lista"),
("Virtual display", "Witualne ekrany"),
("Plug out all", "Odłącz wszystko"),
("True color (4:4:4)", "True color (4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Pronto"),
("Established", "Estabelecido"),
("connecting_status", "A ligar à rede do RustDesk..."),
("Enable Service", "Activar Serviço"),
("Start Service", "Iniciar Serviço"),
("Enable service", "Activar Serviço"),
("Start service", "Iniciar Serviço"),
("Service is running", "Serviço está activo"),
("Service is not running", "Serviço não está activo"),
("not_ready_status", "Indisponível. Por favor verifique a sua ligação"),
("Control Remote Desktop", "Controle o Ambiente de Trabalho à distância"),
("Transfer File", "Transferir Ficheiro"),
("Transfer file", "Transferir Ficheiro"),
("Connect", "Ligar"),
("Recent Sessions", "Sessões recentes"),
("Address Book", "Lista de Endereços"),
("Recent sessions", "Sessões recentes"),
("Address book", "Lista de Endereços"),
("Confirmation", "Confirmação"),
("TCP Tunneling", "Túnel TCP"),
("TCP tunneling", "Túnel TCP"),
("Remove", "Remover"),
("Refresh random password", "Actualizar palavra-chave"),
("Set your own password", "Configure a sua palavra-passe"),
("Enable Keyboard/Mouse", "Activar Teclado/Rato"),
("Enable Clipboard", "Activar Área de Transferência"),
("Enable File Transfer", "Activar Transferência de Ficheiros"),
("Enable TCP Tunneling", "Activar Túnel TCP"),
("Enable keyboard/mouse", "Activar Teclado/Rato"),
("Enable clipboard", "Activar Área de Transferência"),
("Enable file transfer", "Activar Transferência de Ficheiros"),
("Enable TCP tunneling", "Activar Túnel TCP"),
("IP Whitelisting", "Whitelist de IP"),
("ID/Relay Server", "Servidor ID/Relay"),
("Import Server Config", "Importar Configuração do Servidor"),
("Import server config", "Importar Configuração do Servidor"),
("Export Server Config", "Exportar Configuração do Servidor"),
("Import server configuration successfully", "Configuração do servidor importada com sucesso"),
("Export server configuration successfully", ""),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Aceitar"),
("Dismiss", "Dispensar"),
("Disconnect", "Desconectar"),
("Allow using keyboard and mouse", "Permitir o uso de teclado e rato"),
("Allow using clipboard", "Permitir o uso da área de transferência"),
("Allow hearing sound", "Permitir ouvir som"),
("Allow file copy and paste", "Permitir copiar e mover ficheiros"),
("Enable file copy and paste", "Permitir copiar e mover ficheiros"),
("Connected", "Ligado"),
("Direct and encrypted connection", "Ligação directa e encriptada"),
("Relayed and encrypted connection", "Ligação via relay e encriptada"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "A efectuar Login..."),
("Enable RDP session sharing", "Activar partilha de sessão RDP"),
("Auto Login", "Login Automático (Somente válido se você activou \"Bloquear após o fim da sessão\")"),
("Enable Direct IP Access", "Activar Acesso IP Directo"),
("Enable direct IP access", "Activar Acesso IP Directo"),
("Rename", "Renomear"),
("Space", "Espaço"),
("Create Desktop Shortcut", "Criar Atalho no Ambiente de Trabalho"),
("Create desktop shortcut", "Criar Atalho no Ambiente de Trabalho"),
("Change Path", "Alterar Caminho"),
("Create Folder", "Criar Diretório"),
("Please enter the folder name", "Por favor introduza o nome do diretório"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Manter o serviço RustDesk em funcionamento"),
("Ignore Battery Optimizations", "Ignorar optimizações de Bateria"),
("android_open_battery_optimizations_tip", ""),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Ligação não autorizada"),
("Legacy mode", ""),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Utilizar palavra-chave permanente"),
("Use both passwords", "Utilizar ambas as palavras-chave"),
("Set permanent password", "Definir palavra-chave permanente"),
("Enable Remote Restart", "Activar reiniciar remoto"),
("Allow remote restart", "Permitir reiniciar remoto"),
("Restart Remote Device", "Reiniciar Dispositivo Remoto"),
("Enable remote restart", "Activar reiniciar remoto"),
("Restart remote device", "Reiniciar Dispositivo Remoto"),
("Are you sure you want to restart", "Tem a certeza que pretende reiniciar"),
("Restarting Remote Device", "A reiniciar sistema remoto"),
("Restarting remote device", "A reiniciar sistema remoto"),
("remote_restarting_tip", ""),
("Copied", ""),
("Exit Fullscreen", "Sair da tela cheia"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", ""),
("Enable hardware codec", ""),
("Unlock Security Settings", ""),
("Enable Audio", ""),
("Enable audio", ""),
("Unlock Network Settings", ""),
("Server", ""),
("Direct IP Access", ""),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", ""),
("Start session recording", ""),
("Stop session recording", ""),
("Enable Recording Session", ""),
("Allow recording session", ""),
("Enable LAN Discovery", ""),
("Deny LAN Discovery", ""),
("Enable recording session", ""),
("Enable LAN discovery", ""),
("Deny LAN discovery", ""),
("Write a message", ""),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Pronto"),
("Established", "Estabelecido"),
("connecting_status", "Conectando à rede do RustDesk..."),
("Enable Service", "Habilitar Serviço"),
("Start Service", "Iniciar Serviço"),
("Enable service", "Habilitar Serviço"),
("Start service", "Iniciar Serviço"),
("Service is running", "Serviço está em execução"),
("Service is not running", "Serviço não está em execução"),
("not_ready_status", "Não está pronto. Por favor verifique sua conexão"),
("Control Remote Desktop", "Controle um Computador Remoto"),
("Transfer File", "Transferir Arquivos"),
("Transfer file", "Transferir Arquivos"),
("Connect", "Conectar"),
("Recent Sessions", "Sessões Recentes"),
("Address Book", "Lista de Endereços"),
("Recent sessions", "Sessões Recentes"),
("Address book", "Lista de Endereços"),
("Confirmation", "Confirmação"),
("TCP Tunneling", "Tunelamento TCP"),
("TCP tunneling", "Tunelamento TCP"),
("Remove", "Remover"),
("Refresh random password", "Atualizar senha aleatória"),
("Set your own password", "Configure sua própria senha"),
("Enable Keyboard/Mouse", "Habilitar teclado/mouse"),
("Enable Clipboard", "Habilitar Área de Transferência"),
("Enable File Transfer", "Habilitar Transferência de Arquivos"),
("Enable TCP Tunneling", "Habilitar Tunelamento TCP"),
("Enable keyboard/mouse", "Habilitar teclado/mouse"),
("Enable clipboard", "Habilitar Área de Transferência"),
("Enable file transfer", "Habilitar Transferência de Arquivos"),
("Enable TCP tunneling", "Habilitar Tunelamento TCP"),
("IP Whitelisting", "Lista de IPs Confiáveis"),
("ID/Relay Server", "Servidor ID/Relay"),
("Import Server Config", "Importar Configuração do Servidor"),
("Import server config", "Importar Configuração do Servidor"),
("Export Server Config", "Exportar Configuração do Servidor"),
("Import server configuration successfully", "Configuração do servidor importada com sucesso"),
("Export server configuration successfully", "Configuração do servidor exportada com sucesso"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Aceitar"),
("Dismiss", "Dispensar"),
("Disconnect", "Desconectar"),
("Allow using keyboard and mouse", "Permitir o uso de teclado e mouse"),
("Allow using clipboard", "Permitir o uso da área de transferência"),
("Allow hearing sound", "Permitir escutar som"),
("Allow file copy and paste", "Permitir copiar e colar arquivos"),
("Enable file copy and paste", "Permitir copiar e colar arquivos"),
("Connected", "Conectado"),
("Direct and encrypted connection", "Conexão direta e criptografada"),
("Relayed and encrypted connection", "Conexão via relay e criptografada"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Fazendo Login..."),
("Enable RDP session sharing", "Habilitar compartilhamento de sessão RDP"),
("Auto Login", "Login Automático (Somente válido se você habilitou \"Bloquear após o fim da sessão\")"),
("Enable Direct IP Access", "Habilitar Acesso IP Direto"),
("Enable direct IP access", "Habilitar Acesso IP Direto"),
("Rename", "Renomear"),
("Space", "Espaço"),
("Create Desktop Shortcut", "Criar Atalho na Área de Trabalho"),
("Create desktop shortcut", "Criar Atalho na Área de Trabalho"),
("Change Path", "Alterar Caminho"),
("Create Folder", "Criar Diretório"),
("Please enter the folder name", "Por favor informe o nome do diretório"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Manter o serviço do RustDesk executando em segundo plano"),
("Ignore Battery Optimizations", "Ignorar otimizações de bateria"),
("android_open_battery_optimizations_tip", "Abrir otimizações de bateria"),
("Start on Boot", "Iniciar na Inicialização"),
("Start on boot", "Iniciar na Inicialização"),
("Start the screen sharing service on boot, requires special permissions", "Inicie o serviço de compartilhamento de tela na inicialização, requer permissões especiais"),
("Connection not allowed", "Conexão não permitida"),
("Legacy mode", "Modo legado"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Utilizar senha permanente"),
("Use both passwords", "Utilizar ambas as senhas"),
("Set permanent password", "Configurar senha permanente"),
("Enable Remote Restart", "Habilitar Reinicialização Remota"),
("Allow remote restart", "Permitir reinicialização remota"),
("Restart Remote Device", "Reiniciar Dispositivo Remoto"),
("Enable remote restart", "Habilitar Reinicialização Remota"),
("Restart remote device", "Reiniciar Dispositivo Remoto"),
("Are you sure you want to restart", "Você tem certeza que deseja reiniciar?"),
("Restarting Remote Device", "Reiniciando dispositivo remoto"),
("Restarting remote device", "Reiniciando dispositivo remoto"),
("remote_restarting_tip", "O dispositivo remoto está reiniciando, feche esta caixa de mensagem e reconecte com a senha permanente depois de um tempo"),
("Copied", "Copiado"),
("Exit Fullscreen", "Sair da Tela Cheia"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Seguir sistema"),
("Enable hardware codec", "Habilitar codec de hardware"),
("Unlock Security Settings", "Desbloquear configurações de segurança"),
("Enable Audio", "Habilitar áudio"),
("Enable audio", "Habilitar áudio"),
("Unlock Network Settings", "Desbloquear configurações de rede"),
("Server", "Servidor"),
("Direct IP Access", "Acesso direto por IP"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Alterar"),
("Start session recording", "Iniciar gravação da sessão"),
("Stop session recording", "Parar gravação da sessão"),
("Enable Recording Session", "Habilitar gravação da sessão"),
("Allow recording session", "Permitir gravação da sessão"),
("Enable LAN Discovery", "Habilitar descoberta da LAN"),
("Deny LAN Discovery", "Negar descoberta da LAN"),
("Enable recording session", "Habilitar gravação da sessão"),
("Enable LAN discovery", "Habilitar descoberta da LAN"),
("Deny LAN discovery", "Negar descoberta da LAN"),
("Write a message", "Escrever uma mensagem"),
("Prompt", "Prompt de comando"),
("Please wait for confirmation of UAC...", "Favor aguardar a confirmação do UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "O suporte ao Wayland está em estágio experimental, use o X11 se precisar de acesso autônomo."),
("Right click to select tabs", "Clique com o botão direito para selecionar as guias"),
("Skipped", "Ignorado"),
("Add to Address Book", "Adicionar ao livro de endereços"),
("Add to address book", "Adicionar ao livro de endereços"),
("Group", "Grupo"),
("Search", "Buscar"),
("Closed manually by web console", "Fechado manualmente pelo console da web"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Pregătit"),
("Established", "Stabilit"),
("connecting_status", "În curs de conectare la rețeaua RustDesk..."),
("Enable Service", "Activează serviciul"),
("Start Service", "Pornește serviciul"),
("Enable service", "Activează serviciul"),
("Start service", "Pornește serviciul"),
("Service is running", "Serviciul rulează..."),
("Service is not running", "Serviciul nu funcționează"),
("not_ready_status", "Nepregătit. Verifică conexiunea la rețea."),
("Control Remote Desktop", "Controlează desktopul la distanță"),
("Transfer File", "Transferă fișiere"),
("Transfer file", "Transferă fișiere"),
("Connect", "Conectează-te"),
("Recent Sessions", "Sesiuni recente"),
("Address Book", "Agendă"),
("Recent sessions", "Sesiuni recente"),
("Address book", "Agendă"),
("Confirmation", "Confirmare"),
("TCP Tunneling", "Tunel TCP"),
("TCP tunneling", "Tunel TCP"),
("Remove", "Elimină"),
("Refresh random password", "Actualizează parola aleatorie"),
("Set your own password", "Setează propria parolă"),
("Enable Keyboard/Mouse", "Activează control tastatură/mouse"),
("Enable Clipboard", "Activează clipboard"),
("Enable File Transfer", "Activează transferul de fișiere"),
("Enable TCP Tunneling", "Activează tunelul TCP"),
("Enable keyboard/mouse", "Activează control tastatură/mouse"),
("Enable clipboard", "Activează clipboard"),
("Enable file transfer", "Activează transferul de fișiere"),
("Enable TCP tunneling", "Activează tunelul TCP"),
("IP Whitelisting", "Listă de IP-uri autorizate"),
("ID/Relay Server", "Server de ID/retransmisie"),
("Import Server Config", "Importă configurație server"),
("Import server config", "Importă configurație server"),
("Export Server Config", "Exportă configurație server"),
("Import server configuration successfully", "Configurație server importată cu succes"),
("Export server configuration successfully", "Configurație server exportată cu succes"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Acceptă"),
("Dismiss", "Respinge"),
("Disconnect", "Deconectează-te"),
("Allow using keyboard and mouse", "Permite utilizarea tastaturii și a mouse-ului"),
("Allow using clipboard", "Permite utilizarea clipboardului"),
("Allow hearing sound", "Permite auzirea sunetului"),
("Allow file copy and paste", "Permite copierea și lipirea fișierelor"),
("Enable file copy and paste", "Permite copierea și lipirea fișierelor"),
("Connected", "Conectat"),
("Direct and encrypted connection", "Conexiune directă criptată"),
("Relayed and encrypted connection", "Conexiune retransmisă criptată"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Se conectează..."),
("Enable RDP session sharing", "Activează partajarea sesiunii RDP"),
("Auto Login", "Conectare automată (validă doar dacă opțiunea Blocare după deconectare este selectată)"),
("Enable Direct IP Access", "Activează accesul direct cu IP"),
("Enable direct IP access", "Activează accesul direct cu IP"),
("Rename", "Redenumește"),
("Space", "Spațiu"),
("Create Desktop Shortcut", "Creează comandă rapidă de desktop"),
("Create desktop shortcut", "Creează comandă rapidă de desktop"),
("Change Path", "Schimbă calea"),
("Create Folder", "Creează folder"),
("Please enter the folder name", "Introdu numele folderului"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Rulează serviciul RustDesk în fundal"),
("Ignore Battery Optimizations", "Ignoră optimizările de baterie"),
("android_open_battery_optimizations_tip", "Pentru dezactivarea acestei funcții, accesează setările aplicației RustDesk, deschide secțiunea [Baterie] și deselectează [Fără restricții]."),
("Start on Boot", "Pornește la boot"),
("Start on boot", "Pornește la boot"),
("Start the screen sharing service on boot, requires special permissions", "Pornește serviciul de partajare a ecranului la boot; necesită permisiuni speciale"),
("Connection not allowed", "Conexiune neautoriztă"),
("Legacy mode", "Mod legacy"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Folosește parola permanentă"),
("Use both passwords", "Folosește ambele programe"),
("Set permanent password", "Setează parola permanentă"),
("Enable Remote Restart", "Activează repornirea la distanță"),
("Allow remote restart", "Permite repornirea la distanță"),
("Restart Remote Device", "Repornește dispozivul la distanță"),
("Enable remote restart", "Activează repornirea la distanță"),
("Restart remote device", "Repornește dispozivul la distanță"),
("Are you sure you want to restart", "Sigur vrei să repornești dispozitivul?"),
("Restarting Remote Device", "Se repornește dispozitivul la distanță"),
("Restarting remote device", "Se repornește dispozitivul la distanță"),
("remote_restarting_tip", "Dispozitivul este în curs de repornire. Închide acest mesaj și reconectează-te cu parola permanentă după un timp."),
("Copied", "Copiat"),
("Exit Fullscreen", "Ieși din modul ecran complet"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Temă sistem"),
("Enable hardware codec", "Activează codec hardware"),
("Unlock Security Settings", "Deblochează setările de securitate"),
("Enable Audio", "Activează audio"),
("Enable audio", "Activează audio"),
("Unlock Network Settings", "Deblochează setările de rețea"),
("Server", "Server"),
("Direct IP Access", "Acces direct IP"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Modifică"),
("Start session recording", "Începe înregistrarea"),
("Stop session recording", "Oprește înregistrarea"),
("Enable Recording Session", "Activează înregistrarea sesiunii"),
("Allow recording session", "Permite înregistrarea sesiunii"),
("Enable LAN Discovery", "Activează descoperirea LAN"),
("Deny LAN Discovery", "Interzice descoperirea LAN"),
("Enable recording session", "Activează înregistrarea sesiunii"),
("Enable LAN discovery", "Activează descoperirea LAN"),
("Deny LAN discovery", "Interzice descoperirea LAN"),
("Write a message", "Scrie un mesaj"),
("Prompt", "Prompt"),
("Please wait for confirmation of UAC...", "Așteaptă confirmarea CCU..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland este acceptat doar într-o formă experimentală. Folosește X11 dacă nu ai nevoie de acces supravegheat."),
("Right click to select tabs", "Dă clic dreapta pentru a selecta file"),
("Skipped", "Ignorat"),
("Add to Address Book", "Adaugă la agendă"),
("Add to address book", "Adaugă la agendă"),
("Group", "Grup"),
("Search", "Caută"),
("Closed manually by web console", "Conexiune închisă manual de consola web"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Готово"),
("Established", "Установлено"),
("connecting_status", "Подключение к сети RustDesk..."),
("Enable Service", "Включить службу"),
("Start Service", "Запустить службу"),
("Enable service", "Включить службу"),
("Start service", "Запустить службу"),
("Service is running", "Служба запущена"),
("Service is not running", "Служба не запущена"),
("not_ready_status", "Не подключено. Проверьте соединение."),
("Control Remote Desktop", "Управление удалённым рабочим столом"),
("Transfer File", "Передача файла"),
("Transfer file", "Передача файла"),
("Connect", "Подключиться"),
("Recent Sessions", "Последние сеансы"),
("Address Book", "Адресная книга"),
("Recent sessions", "Последние сеансы"),
("Address book", "Адресная книга"),
("Confirmation", "Подтверждение"),
("TCP Tunneling", "TCP-туннелирование"),
("TCP tunneling", "TCP-туннелирование"),
("Remove", "Удалить"),
("Refresh random password", "Обновить случайный пароль"),
("Set your own password", "Установить свой пароль"),
("Enable Keyboard/Mouse", "Включить клавиатуру/мышь"),
("Enable Clipboard", "Включить буфер обмена"),
("Enable File Transfer", "Включить передачу файлов"),
("Enable TCP Tunneling", "Включить туннелирование TCP"),
("Enable keyboard/mouse", "Включить клавиатуру/мышь"),
("Enable clipboard", "Включить буфер обмена"),
("Enable file transfer", "Включить передачу файлов"),
("Enable TCP tunneling", "Включить туннелирование TCP"),
("IP Whitelisting", "Список разрешённых IP-адресов"),
("ID/Relay Server", "ID/Ретранслятор"),
("Import Server Config", "Импортировать конфигурацию сервера"),
("Import server config", "Импортировать конфигурацию сервера"),
("Export Server Config", "Экспортировать конфигурацию сервера"),
("Import server configuration successfully", "Конфигурация сервера успешно импортирована"),
("Export server configuration successfully", "Конфигурация сервера успешно экспортирована"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Принять"),
("Dismiss", "Отклонить"),
("Disconnect", "Отключить"),
("Allow using keyboard and mouse", "Разрешить использование клавиатуры и мыши"),
("Allow using clipboard", "Разрешить использование буфера обмена"),
("Allow hearing sound", "Разрешить передачу звука"),
("Allow file copy and paste", "Разрешить копирование и вставку файлов"),
("Enable file copy and paste", "Разрешить копирование и вставку файлов"),
("Connected", "Подключено"),
("Direct and encrypted connection", "Прямое и зашифрованное подключение"),
("Relayed and encrypted connection", "Ретранслируемое и зашифрованное подключение"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Вход..."),
("Enable RDP session sharing", "Включить общий доступ к сеансу RDP"),
("Auto Login", "Автоматический вход (действителен только если вы установили \"Завершение пользовательского сеанса после завершения удалённого подключения\""),
("Enable Direct IP Access", "Включить прямой IP-доступ"),
("Enable direct IP access", "Включить прямой IP-доступ"),
("Rename", "Переименовать"),
("Space", "Место"),
("Create Desktop Shortcut", "Создать ярлык на рабочем столе"),
("Create desktop shortcut", "Создать ярлык на рабочем столе"),
("Change Path", "Изменить путь"),
("Create Folder", "Создать папку"),
("Please enter the folder name", "Введите имя папки"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Держать в фоне службу RustDesk"),
("Ignore Battery Optimizations", "Игнорировать оптимизацию батареи"),
("android_open_battery_optimizations_tip", "Перейдите на следующую страницу настроек"),
("Start on Boot", "Начинать при загрузке"),
("Start on boot", "Начинать при загрузке"),
("Start the screen sharing service on boot, requires special permissions", "Запускать службу демонстрации экрана при загрузке (требуются специальные разрешения)"),
("Connection not allowed", "Подключение не разрешено"),
("Legacy mode", "Устаревший режим"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Использовать постоянный пароль"),
("Use both passwords", "Использовать оба пароля"),
("Set permanent password", "Установить постоянный пароль"),
("Enable Remote Restart", "Включить удалённый перезапуск"),
("Allow remote restart", "Разрешить удалённый перезапуск"),
("Restart Remote Device", "Перезапустить удалённое устройство"),
("Enable remote restart", "Включить удалённый перезапуск"),
("Restart remote device", "Перезапустить удалённое устройство"),
("Are you sure you want to restart", "Вы уверены, что хотите выполнить перезапуск?"),
("Restarting Remote Device", "Перезагрузка удалённого устройства"),
("Restarting remote device", "Перезагрузка удалённого устройства"),
("remote_restarting_tip", "Удалённое устройство перезапускается. Закройте это сообщение и через некоторое время переподключитесь, используя постоянный пароль."),
("Copied", "Скопировано"),
("Exit Fullscreen", "Выйти из полноэкранного режима"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Системная"),
("Enable hardware codec", "Использовать аппаратный кодек"),
("Unlock Security Settings", "Разблокировать настройки безопасности"),
("Enable Audio", "Включить звук"),
("Enable audio", "Включить звук"),
("Unlock Network Settings", "Разблокировать сетевые настройки"),
("Server", "Сервер"),
("Direct IP Access", "Прямой IP-доступ"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Изменить"),
("Start session recording", "Начать запись сеанса"),
("Stop session recording", "Остановить запись сеанса"),
("Enable Recording Session", "Включить запись сеанса"),
("Allow recording session", "Разрешить запись сеанса"),
("Enable LAN Discovery", "Включить обнаружение в локальной сети"),
("Deny LAN Discovery", "Запретить обнаружение в локальной сети"),
("Enable recording session", "Включить запись сеанса"),
("Enable LAN discovery", "Включить обнаружение в локальной сети"),
("Deny LAN discovery", "Запретить обнаружение в локальной сети"),
("Write a message", "Написать сообщение"),
("Prompt", "Подсказка"),
("Please wait for confirmation of UAC...", "Дождитесь подтверждения UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Поддержка Wayland находится на экспериментальной стадии, используйте X11, если вам требуется автоматический доступ."),
("Right click to select tabs", "Выбор вкладок щелчком правой кнопки мыши"),
("Skipped", "Пропущено"),
("Add to Address Book", "Добавить в адресную книгу"),
("Add to address book", "Добавить в адресную книгу"),
("Group", "Группа"),
("Search", "Поиск"),
("Closed manually by web console", "Закрыто вручную через веб-консоль"),
@@ -570,7 +565,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Big tiles", "Большие значки"),
("Small tiles", "Маленькие значки"),
("List", "Список"),
("Virtual display", ""),
("Plug out all", ""),
("Virtual display", "Виртуальный дисплей"),
("Plug out all", "Отключить все"),
("True color (4:4:4)", "Истинный цвет (4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,52 +8,52 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Pripravené"),
("Established", "Nadviazané"),
("connecting_status", "Pripájam sa na RusDesk server..."),
("Enable Service", "Povoliť službu"),
("Start Service", "Spustiť službu"),
("Enable service", "Povoliť službu"),
("Start service", "Spustiť službu"),
("Service is running", "Služba je aktívna"),
("Service is not running", "Služba je vypnutá"),
("not_ready_status", "Nepripravené. Skontrolujte svoje sieťové pripojenie."),
("Control Remote Desktop", "Ovládať vzdialenú plochu"),
("Transfer File", "Prenos súborov"),
("Transfer file", "Prenos súborov"),
("Connect", "Pripojiť"),
("Recent Sessions", "Nedávne pripojenie"),
("Address Book", "Adresár kontaktov"),
("Recent sessions", "Nedávne pripojenie"),
("Address book", "Adresár kontaktov"),
("Confirmation", "Potvrdenie"),
("TCP Tunneling", "TCP tunelovanie"),
("TCP tunneling", "TCP tunelovanie"),
("Remove", "Odstrániť"),
("Refresh random password", "Aktualizovať náhodné heslo"),
("Set your own password", "Nastavte si svoje vlastné heslo"),
("Enable Keyboard/Mouse", "Povoliť klávesnicu/myš"),
("Enable Clipboard", "Povoliť schránku"),
("Enable File Transfer", "Povoliť prenos súborov"),
("Enable TCP Tunneling", "Povoliť TCP tunelovanie"),
("Enable keyboard/mouse", "Povoliť klávesnicu/myš"),
("Enable clipboard", "Povoliť schránku"),
("Enable file transfer", "Povoliť prenos súborov"),
("Enable TCP tunneling", "Povoliť TCP tunelovanie"),
("IP Whitelisting", "Zoznam povolených IP adries"),
("ID/Relay Server", "ID/Prepojovací server"),
("Import Server Config", "Importovať konfiguráciu servera"),
("Export Server Config", ""),
("Import server config", "Importovať konfiguráciu servera"),
("Export Server Config", "Exportovať konfiguráciu servera"),
("Import server configuration successfully", "Konfigurácia servera bola úspešne importovaná"),
("Export server configuration successfully", ""),
("Export server configuration successfully", "Konfigurácia servera bola úspešne exportovaná"),
("Invalid server configuration", "Neplatná konfigurácia servera"),
("Clipboard is empty", "Schránka je prázdna"),
("Stop service", "Zastaviť službu"),
("Change ID", "Zmeniť ID"),
("Your new ID", ""),
("length %min% to %max%", ""),
("starts with a letter", ""),
("allowed characters", ""),
("Your new ID", "Vaše nové ID"),
("length %min% to %max%", "dĺžka medzi %min% a %max%"),
("starts with a letter", "začína písmenom"),
("allowed characters", "povolené znaky"),
("id_change_tip", "Povolené sú len znaky a-z, A-Z, 0-9 a _ (podčiarkovník). Prvý znak musí byť a-z, A-Z. Dĺžka musí byť medzi 6 a 16 znakmi."),
("Website", "Webová stránka"),
("About", "O RustDesk"),
("Slogan_tip", ""),
("Privacy Statement", ""),
("Slogan_tip", "Stvorené srdcom v tomto chaotickom svete!"),
("Privacy Statement", "Vyhlásenie o ochrane osobných údajov"),
("Mute", "Stíšiť"),
("Build Date", ""),
("Version", ""),
("Home", ""),
("Build Date", "Dátum zostavenia"),
("Version", "Verzia"),
("Home", "Domov"),
("Audio Input", "Zvukový vstup"),
("Enhancements", ""),
("Hardware Codec", ""),
("Adaptive bitrate", ""),
("Enhancements", "Vylepšenia"),
("Hardware Codec", "Hardvérový kodek"),
("Adaptive bitrate", "Adaptívny dátový tok"),
("ID Server", "ID server"),
("Relay Server", "Prepojovací server"),
("API Server", "API server"),
@@ -98,8 +98,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Delete", "Zmazať"),
("Properties", "Vlastnosti"),
("Multi Select", "Viacnásobný výber"),
("Select All", ""),
("Unselect All", ""),
("Select All", "Vybrať všetko"),
("Unselect All", "Zrušiť výber všetkého"),
("Empty Directory", "Prázdny adresár"),
("Not an empty directory", "Nie prázdny adresár"),
("Are you sure you want to delete this file?", "Ste si istý, že chcete zmazať tento súbor?"),
@@ -125,9 +125,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Good image quality", "Dobrá kvalita obrazu"),
("Balanced", "Vyvážené"),
("Optimize reaction time", "Optimalizované pre čas odozvy"),
("Custom", ""),
("Custom", "Vlastné"),
("Show remote cursor", "Zobrazovať vzdialený ukazovateľ myši"),
("Show quality monitor", ""),
("Show quality monitor", "Zobraziť monitor kvality"),
("Disable clipboard", "Vypnúť schránku"),
("Lock after session end", "Po skončení uzamknúť plochu"),
("Insert", "Vložiť"),
@@ -170,8 +170,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Action", "Akcia"),
("Add", "Pridať"),
("Local Port", "Lokálny port"),
("Local Address", ""),
("Change Local Port", ""),
("Local Address", "Lokálna adresa"),
("Change Local Port", "Zmena lokálneho portu"),
("setup_server_tip", "Pre zrýchlenie pripojenia si nainštalujte svoj vlastný server"),
("Too short, at least 6 characters.", "Príliš krátke, vyžaduje sa aspoň 6 znakov."),
("The confirmation is not identical.", "Potvrdenie nie je zhodné."),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Prijať"),
("Dismiss", "Odmietnuť"),
("Disconnect", "Odpojiť"),
("Allow using keyboard and mouse", "Povoliť používanie klávesnice a myši"),
("Allow using clipboard", "Povoliť používanie schránky"),
("Allow hearing sound", "Povoliť zvuky"),
("Allow file copy and paste", "Povoliť kopírovanie a vkladanie súborov"),
("Enable file copy and paste", "Povoliť kopírovanie a vkladanie súborov"),
("Connected", "Pripojené"),
("Direct and encrypted connection", "Priame a šifrované spojenie"),
("Relayed and encrypted connection", "Sprostredkované a šifrované spojenie"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Prihlasovanie sa...."),
("Enable RDP session sharing", "Povoliť zdieľanie RDP relácie"),
("Auto Login", "Automatické prihlásenie"),
("Enable Direct IP Access", "Povoliť priame pripojenie cez IP"),
("Enable direct IP access", "Povoliť priame pripojenie cez IP"),
("Rename", "Premenovať"),
("Space", "Medzera"),
("Create Desktop Shortcut", "Vytvoriť zástupcu na ploche"),
("Create desktop shortcut", "Vytvoriť zástupcu na ploche"),
("Change Path", "Zmeniť adresár"),
("Create Folder", "Vytvoriť adresár"),
("Please enter the folder name", "Zadajte názov adresára"),
@@ -206,22 +203,22 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Reboot required", "Vyžaduje sa reštart"),
("Unsupported display server", "Nepodporovaný zobrazovací (display) server"),
("x11 expected", "očakáva sa x11"),
("Port", ""),
("Port", "Port"),
("Settings", "Nastavenia"),
("Username", "Uživateľské meno"),
("Invalid port", "Neplatný port"),
("Closed manually by the peer", "Manuálne ukončené opačnou stranou pripojenia"),
("Enable remote configuration modification", "Povoliť zmeny konfigurácie zo vzdialeného PC"),
("Run without install", "Spustiť bez inštalácie"),
("Connect via relay", ""),
("Connect via relay", "Pripojenie prostredníctvom relay servera"),
("Always connect via relay", "Vždy pripájať cez prepájací server"),
("whitelist_tip", "Len vymenované IP adresy majú oprávnenie sa pripojiť k vzdialenej správe"),
("Login", "Prihlásenie"),
("Verify", ""),
("Remember me", ""),
("Trust this device", ""),
("Verification code", ""),
("verification_tip", ""),
("Verify", "Overiť"),
("Remember me", "Zapamätať si"),
("Trust this device", "Dôverovať tomuto zariadeniu"),
("Verification code", "Overovací kód"),
("verification_tip", "Na vašu registrovanú e-mailovú adresu bol odoslaný overovací kód, zadajte ho a pokračujte v prihlasovaní."),
("Logout", "Odhlásenie"),
("Tags", "Štítky"),
("Search ID", "Hľadať ID"),
@@ -233,7 +230,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Username missed", "Chýba užívateľské meno"),
("Password missed", "Chýba heslo"),
("Wrong credentials", "Nesprávne prihlasovacie údaje"),
("The verification code is incorrect or has expired", ""),
("The verification code is incorrect or has expired", "Overovací kód je nesprávny alebo jeho platnosť vypršala"),
("Edit Tag", "Upraviť štítok"),
("Forget Password", "Zabudnúť heslo"),
("Favorites", "Obľúbené"),
@@ -289,9 +286,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("android_service_will_start_tip", "Zapnutie \"Zachytávanie obsahu obrazovky\" automaticky spistí službu, čo iným zariadeniam umožní požiadať o pripojenie k tomuto zariadeniu."),
("android_stop_service_tip", "Zastavenie služby automaticky ukončí všetky naviazané spojenia."),
("android_version_audio_tip", "Vaša verzia Androidu neumožňuje zaznamenávanie zvuku. Prejdite na verziu Android 10 alebo vyššiu."),
("android_start_service_tip", ""),
("android_permission_may_not_change_tip", ""),
("Account", ""),
("android_start_service_tip", "Ťuknutím na položku [Spustiť službu] alebo povolením povolenia [Snímanie obrazovky] spustite službu zdieľania obrazovky."),
("android_permission_may_not_change_tip", "Oprávnenia pre vytvorené pripojenia možno zmeniť až po opätovnom pripojení."),
("Account", "Účet"),
("Overwrite", "Prepísať"),
("This file exists, skip or overwrite this file?", "Preskočiť alebo prepísať existujúci súbor?"),
("Quit", "Ukončiť"),
@@ -307,26 +304,25 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Turned off", "Vypnutý"),
("In privacy mode", "V režime súkromia"),
("Out privacy mode", "Mimo režimu súkromia"),
("Language", ""),
("Keep RustDesk background service", ""),
("Ignore Battery Optimizations", ""),
("android_open_battery_optimizations_tip", ""),
("Start on Boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", ""),
("Legacy mode", ""),
("Map mode", ""),
("Translate mode", ""),
("Use permanent password", ""),
("Use both passwords", ""),
("Set permanent password", ""),
("Enable Remote Restart", ""),
("Allow remote restart", ""),
("Restart Remote Device", ""),
("Are you sure you want to restart", ""),
("Restarting Remote Device", ""),
("remote_restarting_tip", ""),
("Copied", ""),
("Language", "Jazyk"),
("Keep RustDesk background service", "Ponechať službu RustDesk na pozadí"),
("Ignore Battery Optimizations", "Ignorovať optimalizácie batérie"),
("android_open_battery_optimizations_tip", "Ak chcete túto funkciu vypnúť, prejdite na ďalšiu stránku nastavení RustDesku, vyhľadajte a zadajte položku [Batéria], zrušte začiarknutie položky [Neobmedzené]."),
("Start on boot", "Spustenie po štarte"),
("Start the screen sharing service on boot, requires special permissions", "Spustenie služby zdieľania obrazovky pri štarte systému, vyžaduje špeciálne oprávnenia"),
("Connection not allowed", "Spojenie nie je povolené"),
("Legacy mode", "Režim Legacy"),
("Map mode", "Režim mapovania"),
("Translate mode", "Režim prekladania"),
("Use permanent password", "Použitie trvalého hesla"),
("Use both passwords", "Používanie oboch hesiel"),
("Set permanent password", "Nastaviť trvalé heslo"),
("Enable remote restart", "Povoliť vzdialený reštart"),
("Restart remote device", "Reštartovať vzdialené zariadenie"),
("Are you sure you want to restart", "Ste si istý, že chcete reštartovať"),
("Restarting remote device", "Reštartovanie vzdialeného zariadenia"),
("remote_restarting_tip", "Vzdialené zariadenie sa reštartuje, zatvorte toto okno a po chvíli sa znovu pripojte pomocou trvalého hesla."),
("Copied", "Skopírované"),
("Exit Fullscreen", "Ukončiť celú obrazovku"),
("Fullscreen", "Celá obrazovka"),
("Mobile Actions", "Mobilné akcie"),
@@ -336,241 +332,243 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ratio", "Pomer"),
("Image Quality", "Kvalita obrazu"),
("Scroll Style", "Štýl posúvania"),
("Show Toolbar", ""),
("Hide Toolbar", ""),
("Show Toolbar", "Zobrazenie panela nástrojov"),
("Hide Toolbar", "Skrytie panela nástrojov"),
("Direct Connection", "Priame pripojenie"),
("Relay Connection", "Reléové pripojenie"),
("Secure Connection", "Zabezpečené pripojenie"),
("Insecure Connection", "Nezabezpečené pripojenie"),
("Scale original", "Pôvodná mierka"),
("Scale adaptive", "Prispôsobivá mierka"),
("General", ""),
("Security", ""),
("Theme", ""),
("Dark Theme", ""),
("Light Theme", ""),
("Dark", ""),
("Light", ""),
("Follow System", ""),
("Enable hardware codec", ""),
("Unlock Security Settings", ""),
("Enable Audio", ""),
("Unlock Network Settings", ""),
("Server", ""),
("Direct IP Access", ""),
("Proxy", ""),
("Apply", ""),
("Disconnect all devices?", ""),
("Clear", ""),
("Audio Input Device", ""),
("Use IP Whitelisting", ""),
("Network", ""),
("Pin Toolbar", ""),
("Unpin Toolbar", ""),
("Recording", ""),
("Directory", ""),
("Automatically record incoming sessions", ""),
("Change", ""),
("Start session recording", ""),
("Stop session recording", ""),
("Enable Recording Session", ""),
("Allow recording session", ""),
("Enable LAN Discovery", ""),
("Deny LAN Discovery", ""),
("Write a message", ""),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
("elevated_foreground_window_tip", ""),
("Disconnected", ""),
("Other", ""),
("Confirm before closing multiple tabs", ""),
("Keyboard Settings", ""),
("Full Access", ""),
("Screen Share", ""),
("General", "Všeobecné"),
("Security", "Zabezpečenie"),
("Theme", "Motív"),
("Dark Theme", "Tmavý motív"),
("Light Theme", "Svetlý motív"),
("Dark", "Tmavý"),
("Light", "Svetlý"),
("Follow System", "Podľa systému"),
("Enable hardware codec", "Povoliť hardwarový kodek"),
("Unlock Security Settings", "Odomknúť nastavenie zabezpečenia"),
("Enable audio", "Povoliť zvuk"),
("Unlock Network Settings", "Odomknúť nastavenie siete"),
("Server", "Server"),
("Direct IP Access", "Priamy IP prístup"),
("Proxy", "Proxy"),
("Apply", "Použiť"),
("Disconnect all devices?", "Odpojiť všetky zariadenia?"),
("Clear", "Zmazať"),
("Audio Input Device", "Vstupné zvukové zariadenie"),
("Use IP Whitelisting", "Použiť IP whitelisting"),
("Network", "Sieť"),
("Pin Toolbar", "Pripnúť panel nástrojov"),
("Unpin Toolbar", "Odpojiť panel nástrojov"),
("Recording", "Nahrávanie"),
("Directory", "Adresár"),
("Automatically record incoming sessions", "Automaticky nahrávať prichádzajúce relácie"),
("Change", "Zmeniť"),
("Start session recording", "Spustiť záznam relácie"),
("Stop session recording", "Zastaviť záznam relácie"),
("Enable recording session", "Povoliť nahrávanie relácie"),
("Enable LAN discovery", "Povolenie zisťovania siete LAN"),
("Deny LAN discovery", "Zakázať zisťovania siete LAN"),
("Write a message", "Napísať správu"),
("Prompt", "Výzva"),
("Please wait for confirmation of UAC...", "Počkajte, prosím, na potvrdenie UAC..."),
("elevated_foreground_window_tip", "Aktuálne okno vzdialenej plochy vyžaduje vyššie oprávnenia, takže dočasne nemôže používať myš a klávesnicu. Môžete požiadať vzdialeného používateľa, aby minimalizoval aktuálne okno, alebo kliknúť na tlačidlo povýšiť v okne správy pripojenia. Ak sa chcete vyhnúť tomuto problému, odporúčame nainštalovať softvér na vzdialené zariadenie."),
("Disconnected", "Odpojené"),
("Other", "Iné"),
("Confirm before closing multiple tabs", "Potvrdiť pred zatvorením viacerých kariet"),
("Keyboard Settings", "Nastavenia klávesnice"),
("Full Access", "Úplný prístup"),
("Screen Share", "Zdielanie obrazovky"),
("Wayland requires Ubuntu 21.04 or higher version.", "Wayland vyžaduje Ubuntu 21.04 alebo vyššiu verziu."),
("Wayland requires higher version of linux distro. Please try X11 desktop or change your OS.", "Wayland vyžaduje vyššiu verziu linuxovej distribúcie. Skúste X11 desktop alebo zmeňte OS."),
("JumpLink", "View"),
("Please Select the screen to be shared(Operate on the peer side).", "Vyberte obrazovku, ktorú chcete zdieľať (Ovládajte na strane partnera)."),
("Show RustDesk", ""),
("This PC", ""),
("or", ""),
("Continue with", ""),
("Elevate", ""),
("Zoom cursor", ""),
("Accept sessions via password", ""),
("Accept sessions via click", ""),
("Accept sessions via both", ""),
("Please wait for the remote side to accept your session request...", ""),
("One-time Password", ""),
("Use one-time password", ""),
("One-time password length", ""),
("Request access to your device", ""),
("Hide connection management window", ""),
("hide_cm_tip", ""),
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
("Local keyboard type", ""),
("Select local keyboard type", ""),
("software_render_tip", ""),
("Always use software rendering", ""),
("config_input", ""),
("config_microphone", ""),
("request_elevation_tip", ""),
("Wait", ""),
("Elevation Error", ""),
("Ask the remote user for authentication", ""),
("Choose this if the remote account is administrator", ""),
("Transmit the username and password of administrator", ""),
("still_click_uac_tip", ""),
("Request Elevation", ""),
("wait_accept_uac_tip", ""),
("Elevate successfully", ""),
("uppercase", ""),
("lowercase", ""),
("digit", ""),
("special character", ""),
("length>=8", ""),
("Weak", ""),
("Medium", ""),
("Strong", ""),
("Switch Sides", ""),
("Please confirm if you want to share your desktop?", ""),
("Display", ""),
("Default View Style", ""),
("Default Scroll Style", ""),
("Default Image Quality", ""),
("Default Codec", ""),
("Bitrate", ""),
("FPS", ""),
("Auto", ""),
("Other Default Options", ""),
("Voice call", ""),
("Text chat", ""),
("Stop voice call", ""),
("relay_hint_tip", ""),
("Reconnect", ""),
("Codec", ""),
("Resolution", ""),
("No transfers in progress", ""),
("Set one-time password length", ""),
("install_cert_tip", ""),
("confirm_install_cert_tip", ""),
("RDP Settings", ""),
("Sort by", ""),
("New Connection", ""),
("Restore", ""),
("Minimize", ""),
("Maximize", ""),
("Your Device", ""),
("empty_recent_tip", ""),
("empty_favorite_tip", ""),
("empty_lan_tip", ""),
("empty_address_book_tip", ""),
("eg: admin", ""),
("Empty Username", ""),
("Empty Password", ""),
("Me", ""),
("identical_file_tip", ""),
("show_monitors_tip", ""),
("View Mode", ""),
("login_linux_tip", ""),
("verify_rustdesk_password_tip", ""),
("remember_account_tip", ""),
("os_account_desk_tip", ""),
("OS Account", ""),
("another_user_login_title_tip", ""),
("another_user_login_text_tip", ""),
("xorg_not_found_title_tip", ""),
("xorg_not_found_text_tip", ""),
("no_desktop_title_tip", ""),
("no_desktop_text_tip", ""),
("No need to elevate", ""),
("System Sound", ""),
("Default", ""),
("New RDP", ""),
("Fingerprint", ""),
("Copy Fingerprint", ""),
("no fingerprints", ""),
("Select a peer", ""),
("Select peers", ""),
("Plugins", ""),
("Uninstall", ""),
("Update", ""),
("Enable", ""),
("Disable", ""),
("Options", ""),
("resolution_original_tip", ""),
("resolution_fit_local_tip", ""),
("resolution_custom_tip", ""),
("Collapse toolbar", ""),
("Accept and Elevate", ""),
("accept_and_elevate_btn_tooltip", ""),
("clipboard_wait_response_timeout_tip", ""),
("Incoming connection", ""),
("Outgoing connection", ""),
("Exit", ""),
("Open", ""),
("logout_tip", ""),
("Service", ""),
("Start", ""),
("Stop", ""),
("exceed_max_devices", ""),
("Sync with recent sessions", ""),
("Sort tags", ""),
("Open connection in new tab", ""),
("Move tab to new window", ""),
("Can not be empty", ""),
("Already exists", ""),
("Change Password", ""),
("Refresh Password", ""),
("ID", ""),
("Grid View", ""),
("List View", ""),
("Select", ""),
("Toggle Tags", ""),
("pull_ab_failed_tip", ""),
("push_ab_failed_tip", ""),
("synced_peer_readded_tip", ""),
("Change Color", ""),
("Primary Color", ""),
("HSV Color", ""),
("Installation Successful!", ""),
("Installation failed!", ""),
("Reverse mouse wheel", ""),
("{} sessions", ""),
("scam_title", ""),
("scam_text1", ""),
("scam_text2", ""),
("Don't show again", ""),
("I Agree", ""),
("Decline", ""),
("Timeout in minutes", ""),
("auto_disconnect_option_tip", ""),
("Connection failed due to inactivity", ""),
("Check for software update on startup", ""),
("upgrade_rustdesk_server_pro_to_{}_tip", ""),
("pull_group_failed_tip", ""),
("Filter by intersection", ""),
("Remove wallpaper during incoming sessions", ""),
("Test", ""),
("switch_display_elevated_connections_tip", ""),
("display_is_plugged_out_msg", ""),
("No displays", ""),
("elevated_switch_display_msg", ""),
("Open in new window", ""),
("Show displays as individual windows", ""),
("Use all my displays for the remote session", ""),
("selinux_tip", ""),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("Show RustDesk", "Zobraziť RustDesk"),
("This PC", "Tento počítač"),
("or", "alebo"),
("Continue with", "Pokračovať s"),
("Elevate", "Zvýšiť"),
("Zoom cursor", "Kurzor priblíženia"),
("Accept sessions via password", "Prijímanie relácií pomocou hesla"),
("Accept sessions via click", "Prijímanie relácií kliknutím"),
("Accept sessions via both", "Prijímanie relácií prostredníctvom oboch"),
("Please wait for the remote side to accept your session request...", "Počkajte, kým vzdialená strana prijme vašu žiadosť o reláciu..."),
("One-time Password", "Jednorázové heslo"),
("Use one-time password", "Použiť jednorázové heslo"),
("One-time password length", "Dĺžka jednorázového hesla"),
("Request access to your device", "Žiadosť o prístup k vášmu zariadeniu"),
("Hide connection management window", "Skryť okno správy pripojenia"),
("hide_cm_tip", "Skrývanie povoľte len vtedy, ak relácie prijímate pomocou hesla a používate trvalé heslo."),
("wayland_experiment_tip", "Podpora Waylandu je v experimentálnej fáze, ak potrebujete bezobslužný prístup, použite X11."),
("Right click to select tabs", "Výber karty kliknutím pravým tlačidlom myši"),
("Skipped", "Vynechané"),
("Add to address book", "Pridať do adresára"),
("Group", "Skupina"),
("Search", "Vyhľadávanie"),
("Closed manually by web console", "Zatvorené ručne pomocou webovej konzoly"),
("Local keyboard type", "Typ lokálnej klávesnice"),
("Select local keyboard type", "Výber typu lokálnej klávesnice"),
("software_render_tip", "Ak používate grafickú kartu Nvidia v systéme Linux a vzdialené okno sa po pripojení okamžite zatvorí, môže vám pomôcť prepnutie na ovládač Nouveau s otvoreným zdrojovým kódom a výber softvérového vykresľovania. Vyžaduje sa softvérový reštart."),
("Always use software rendering", "Vždy použiť softvérové vykresľovanie"),
("config_input", "Ak chcete ovládať vzdialenú plochu pomocou klávesnice, musíte udeliť oprávnenie RustDesk \"Sledovanie vstupu\"."),
("config_microphone", "Ak chcete hovoriť na diaľku, musíte RustDesku udeliť povolenie \"Nahrávať zvuk\"."),
("request_elevation_tip", "Môžete tiež požiadať o zvýšenie, ak je niekto na vzdialenej strane."),
("Wait", "Počkajte"),
("Elevation Error", "Chyba navýšenia"),
("Ask the remote user for authentication", "Požiadať vzdialeného používateľa o overenie"),
("Choose this if the remote account is administrator", "Túto možnosť vyberte, ak je účet vzdialeného správcu"),
("Transmit the username and password of administrator", "Prenos používateľského mena a hesla správcu"),
("still_click_uac_tip", "Stále sa vyžaduje, aby vzdialený používateľ klikol na tlačidlo OK v okne UAC spusteného programu RustDesk."),
("Request Elevation", "Žiadosť o navýšenie"),
("wait_accept_uac_tip", "Počkajte, kým vzdialený používateľ prijme dialógové okno UAC."),
("Elevate successfully", "Úspešné navýšenie"),
("uppercase", "velké písmená"),
("lowercase", "malé písmená"),
("digit", "číslice"),
("special character", "špeciálny znak"),
("length>=8", "dĺžka>=8"),
("Weak", "Slabé"),
("Medium", "Stredné"),
("Strong", "Silné"),
("Switch Sides", "Prepínanie strán"),
("Please confirm if you want to share your desktop?", "Potvrďte, prosím, či chcete zdieľať svoju plochu?"),
("Display", "Obrazovka"),
("Default View Style", "Predvolený štýl zobrazenia"),
("Default Scroll Style", "Predvolený štýl posúvania"),
("Default Image Quality", "Predvolená kvalita obrazu"),
("Default Codec", "Predvolený kodek"),
("Bitrate", "Dátový tok"),
("FPS", "FPS"),
("Auto", "Auto"),
("Other Default Options", "Ďalšie predvolené možnosti"),
("Voice call", "Hlasový hovor"),
("Text chat", "Textový chat"),
("Stop voice call", "Zastaviť hlasový hovor"),
("relay_hint_tip", "Priame pripojenie nemusí byť možné, môžete sa pokúsiť pripojiť prostredníctvom presmerovacieho servera. Okrem toho, ak chcete pri prvom pokuse použiť presmerovací server, môžete k ID pridať príponu \"/r\" alebo vybrať možnosť \"Vždy sa pripájať cez bránu\" na karte posledných relácií, ak existuje."),
("Reconnect", "Znovu pripojiť"),
("Codec", "Kodek"),
("Resolution", "Rozlíšenie"),
("No transfers in progress", "Žiadne prebiehajúce presuny"),
("Set one-time password length", "Nastaviť dĺžku jednorazového hesla"),
("install_cert_tip", "Inštalácia certifikátu RustDesk"),
("confirm_install_cert_tip", "Ide o testovací certifikát RustDesk, ktorému možno dôverovať. Certifikát sa v prípade potreby použije na dôveryhodnosť a inštaláciu ovládačov RustDesk."),
("RDP Settings", "Nastavenia RDP"),
("Sort by", "Usporiadať podľa"),
("New Connection", "Nové pripojenie"),
("Restore", "Obnoviť"),
("Minimize", "Minimalizovať"),
("Maximize", "Maximalizovať"),
("Your Device", "Vaše zariadenie"),
("empty_recent_tip", "Ups, žiadna nedávna relácia!\nČas naplánovať novú."),
("empty_favorite_tip", "Ešte nemáte obľúbeného partnera?\nNájdite niekoho, s kým sa môžete spojiť, a pridajte si ho do obľúbených!"),
("empty_lan_tip", "Ale nie, zdá sa, že sme zatiaľ neobjavili žiadnu protistranu."),
("empty_address_book_tip", "Ach bože, zdá sa, že vo vašom adresári momentálne nie sú uvedení žiadni kolegovia."),
("eg: admin", "napr. admin"),
("Empty Username", "Prázdne používateľské meno"),
("Empty Password", "Prázdne heslo"),
("Me", "Ja"),
("identical_file_tip", "Tento súbor je identický so súborom partnera."),
("show_monitors_tip", "Zobraziť monitory na paneli nástrojov"),
("View Mode", "Režim zobrazenia"),
("login_linux_tip", "Ak chcete povoliť reláciu Desktop X, musíte sa prihlásiť do vzdialeného konta Linuxu."),
("verify_rustdesk_password_tip", "Overenie hesla RustDesk"),
("remember_account_tip", "Zapamätať si tento účet"),
("os_account_desk_tip", "Toto konto sa používa na prihlásenie do vzdialeného operačného systému a na povolenie relácie pracovnej plochy v režime headless."),
("OS Account", "Účet operačného systému"),
("another_user_login_title_tip", "Ďalší používateľ je už prihlásený"),
("another_user_login_text_tip", "Odpojiť"),
("xorg_not_found_title_tip", "Xorg nebol nájdený"),
("xorg_not_found_text_tip", "Prosím, nainštalujte Xorg"),
("no_desktop_title_tip", "Nie je k dispozícii žiadna plocha"),
("no_desktop_text_tip", "Nainštalujte si prostredie GNOME"),
("No need to elevate", "Navýšenie nie je potrebné"),
("System Sound", "Systémový zvuk"),
("Default", "Predvolené"),
("New RDP", "Nové RDP"),
("Fingerprint", "Odtlačok prsta"),
("Copy Fingerprint", "Kopírovať odtlačok prsta"),
("no fingerprints", "žiadne odtlačky prstov"),
("Select a peer", "Výber partnera"),
("Select peers", "Výber partnerov"),
("Plugins", "Pluginy"),
("Uninstall", "Odinštalovať"),
("Update", "Aktualizovať"),
("Enable", "Povoliť"),
("Disable", "Zakázať"),
("Options", "Možnosti"),
("resolution_original_tip", "Pôvodné rozlíšenie"),
("resolution_fit_local_tip", "Prispôsobiť miestne rozlíšenie"),
("resolution_custom_tip", "Vlastné rozlíšenie"),
("Collapse toolbar", "Zbaliť panel nástrojov"),
("Accept and Elevate", "Prijať navýšenie"),
("accept_and_elevate_btn_tooltip", "Prijmite pripojenie a zvýšte oprávnenia UAC."),
("clipboard_wait_response_timeout_tip", "Čas na čakanie na kópiu odpovede uplynul."),
("Incoming connection", "Prichádzajúce pripojenie"),
("Outgoing connection", "Odchádzajúce pripojenie"),
("Exit", "Ukončiť"),
("Open", "Otvoriť"),
("logout_tip", "Naozaj sa chcete odhlásiť?"),
("Service", "Služba"),
("Start", "Spustiť"),
("Stop", "Zastaviť"),
("exceed_max_devices", "Dosiahli ste maximálny počet spravovaných zariadení."),
("Sync with recent sessions", "Synchronizovať s poslednými reláciami"),
("Sort tags", "Zoradiť štítky"),
("Open connection in new tab", "Otvoriť pripojenie v novej karte"),
("Move tab to new window", "Presunúť kartu do nového okna"),
("Can not be empty", "Nemôže byť prázdne"),
("Already exists", "Už existuje"),
("Change Password", "Zmeniť heslo"),
("Refresh Password", "Obnoviť heslo"),
("ID", "ID"),
("Grid View", "Mriežka"),
("List View", "Zoznam"),
("Select", "Vybrať"),
("Toggle Tags", "Prepnúť štítky"),
("pull_ab_failed_tip", "Nepodarilo sa obnoviť adresár"),
("push_ab_failed_tip", "Nepodarilo sa synchronizovať adresár so serverom"),
("synced_peer_readded_tip", "Zariadenia, ktoré boli prítomné v posledných reláciách, budú synchronizované späť do adresára."),
("Change Color", "Zmeniť farbu"),
("Primary Color", "Hlavná farba"),
("HSV Color", "HSV farba"),
("Installation Successful!", "Inštalácia úspešná!"),
("Installation failed!", "Inštalácia zlyhala!"),
("Reverse mouse wheel", "Reverzné koliesko myši"),
("{} sessions", "{} relácií"),
("scam_title", "Možno ste boli oklamaní!"),
("scam_text1", "Ak telefonujete s niekým, koho nepoznáte a komu nedôverujete a kto vás požiadal o použitie a spustenie aplikácie RustDesk, nepokračujte v hovore a okamžite zaveste."),
("scam_text2", "Pravdepodobne ide o podvodníka, ktorý sa snaží ukradnúť vaše peniaze alebo iné súkromné informácie."),
("Don't show again", "Nezobrazovať znova"),
("I Agree", "Súhlasím"),
("Decline", "Odmietnuť"),
("Timeout in minutes", "Časový limit v minútach"),
("auto_disconnect_option_tip", "Automatické ukončenie prichádzajúcich relácií, keď je používateľ nečinný"),
("Connection failed due to inactivity", "Pripojenie zlyhalo z dôvodu nečinnosti"),
("Check for software update on startup", "Kontrola aktualizácií softvéru pri spustení"),
("upgrade_rustdesk_server_pro_to_{}_tip", "Aktualizujte RustDesk Server Pro na verziu {} alebo novšiu!"),
("pull_group_failed_tip", "Nepodarilo sa obnoviť skupinu"),
("Filter by intersection", "Filtrovať podľa križovatky"),
("Remove wallpaper during incoming sessions", "Odstrániť tapetu počas prichádzajúcich relácií"),
("Test", "Test"),
("switch_display_elevated_connections_tip", "Prepínanie na inú ako primárnu obrazovku nie je podporované vo zvýšenom režime, ak existuje viacero pripojení. Ak chcete ovládať viacero obrazoviek, skúste to po inštalácii znova."),
("display_is_plugged_out_msg", "Obrazovka je odpojená, prepnite na prvú obrazovku."),
("No displays", "Žiadne obrazovky"),
("elevated_switch_display_msg", "Prepnite na primárnu obrazovku, pretože viacero obrazoviek nie je podporovaných vo zvýšenom režime."),
("Open in new window", "Otvoriť v novom okne"),
("Show displays as individual windows", "Zobraziť obrazovky ako jednotlivé okná"),
("Use all my displays for the remote session", "Použiť všetky moje obrazovky pre vzdialenú reláciu"),
("selinux_tip", "Na vašom zariadení je povolený SELinux, čo môže brániť správnemu spusteniu RustDesku ako spravovanej strany."),
("Change view", "Zmeniť pohľad"),
("Big tiles", "Veľké dlaždice"),
("Small tiles", "Malé dlaždice"),
("List", "Zoznam"),
("Virtual display", "Virtuálny displej"),
("Plug out all", "Odpojiť všetky"),
("True color (4:4:4)", "Skutočná farba (4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Pripravljen"),
("Established", "Povezava vzpostavljena"),
("connecting_status", "Vzpostavljanje povezave z omrežjem RustDesk..."),
("Enable Service", "Omogoči storitev"),
("Start Service", "Zaženi storitev"),
("Enable service", "Omogoči storitev"),
("Start service", "Zaženi storitev"),
("Service is running", "Storitev se izvaja"),
("Service is not running", "Storitev se ne izvaja"),
("not_ready_status", "Ni pripravljeno, preverite vašo mrežno povezavo"),
("Control Remote Desktop", "Nadzoruj oddaljeno namizje"),
("Transfer File", "Prenos datotek"),
("Transfer file", "Prenos datotek"),
("Connect", "Poveži"),
("Recent Sessions", "Nedavne seje"),
("Address Book", "Adresar"),
("Recent sessions", "Nedavne seje"),
("Address book", "Adresar"),
("Confirmation", "Potrditev"),
("TCP Tunneling", "TCP tuneliranje"),
("TCP tunneling", "TCP tuneliranje"),
("Remove", "Odstrani"),
("Refresh random password", "Osveži naključno geslo"),
("Set your own password", "Nastavi lastno geslo"),
("Enable Keyboard/Mouse", "Omogoči tipkovnico in miško"),
("Enable Clipboard", "Omogoči odložišče"),
("Enable File Transfer", "Omogoči prenos datotek"),
("Enable TCP Tunneling", "Omogoči TCP tuneliranje"),
("Enable keyboard/mouse", "Omogoči tipkovnico in miško"),
("Enable clipboard", "Omogoči odložišče"),
("Enable file transfer", "Omogoči prenos datotek"),
("Enable TCP tunneling", "Omogoči TCP tuneliranje"),
("IP Whitelisting", "Omogoči seznam dovoljenih IPjev"),
("ID/Relay Server", "Strežnik za ID/posredovanje"),
("Import Server Config", "Uvozi nastavitve strežnika"),
("Import server config", "Uvozi nastavitve strežnika"),
("Export Server Config", "Izvozi nastavitve strežnika"),
("Import server configuration successfully", "Nastavitve strežnika uspešno uvožene"),
("Export server configuration successfully", "Nastavitve strežnika uspešno izvožene"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Sprejmi"),
("Dismiss", "Opusti"),
("Disconnect", "Prekini povezavo"),
("Allow using keyboard and mouse", "Dovoli uporabo tipkovnice in miške"),
("Allow using clipboard", "Dovoli uporabo odložišča"),
("Allow hearing sound", "Dovoli prenos zvoka"),
("Allow file copy and paste", "Dovoli kopiranje in lepljenje datotek"),
("Enable file copy and paste", "Dovoli kopiranje in lepljenje datotek"),
("Connected", "Povezan"),
("Direct and encrypted connection", "Neposredna šifrirana povezava"),
("Relayed and encrypted connection", "Posredovana šifrirana povezava"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Prijavljanje..."),
("Enable RDP session sharing", "Omogoči deljenje RDP seje"),
("Auto Login", "Samodejna prijava"),
("Enable Direct IP Access", "Omogoči neposredni dostop preko IP"),
("Enable direct IP access", "Omogoči neposredni dostop preko IP"),
("Rename", "Preimenuj"),
("Space", "Prazno"),
("Create Desktop Shortcut", "Ustvari bližnjico na namizju"),
("Create desktop shortcut", "Ustvari bližnjico na namizju"),
("Change Path", "Spremeni pot"),
("Create Folder", "Ustvari mapo"),
("Please enter the folder name", "Vnesite ime mape"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Ohrani RustDeskovo storitev v ozadju"),
("Ignore Battery Optimizations", "Prezri optimizacije baterije"),
("android_open_battery_optimizations_tip", "Če želite izklopiti to možnost, pojdite v nastavitve aplikacije RustDesk, poiščite »Baterija« in izklopite »Neomejeno«"),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Povezava ni dovoljena"),
("Legacy mode", "Stari način"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Uporabi stalno geslo"),
("Use both passwords", "Uporabi obe gesli"),
("Set permanent password", "Nastavi stalno geslo"),
("Enable Remote Restart", "Omogoči oddaljeni ponovni zagon"),
("Allow remote restart", "Dovoli oddaljeni ponovni zagon"),
("Restart Remote Device", "Znova zaženi oddaljeno napravo"),
("Enable remote restart", "Omogoči oddaljeni ponovni zagon"),
("Restart remote device", "Znova zaženi oddaljeno napravo"),
("Are you sure you want to restart", "Ali ste prepričani, da želite znova zagnati"),
("Restarting Remote Device", "Ponovni zagon oddaljene naprave"),
("Restarting remote device", "Ponovni zagon oddaljene naprave"),
("remote_restarting_tip", "Oddaljena naprava se znova zaganja, prosim zaprite to sporočilo in se čez nekaj časa povežite s stalnim geslom."),
("Copied", "Kopirano"),
("Exit Fullscreen", "Izhod iz celozaslonskega načina"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Sistemska"),
("Enable hardware codec", "Omogoči strojno pospeševanje"),
("Unlock Security Settings", "Odkleni varnostne nastavitve"),
("Enable Audio", "Omogoči zvok"),
("Enable audio", "Omogoči zvok"),
("Unlock Network Settings", "Odkleni mrežne nastavitve"),
("Server", "Strežnik"),
("Direct IP Access", "Neposredni dostop preko IPja"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Spremeni"),
("Start session recording", "Začni snemanje seje"),
("Stop session recording", "Ustavi snemanje seje"),
("Enable Recording Session", "Omogoči snemanje seje"),
("Allow recording session", "Dovoli snemanje seje"),
("Enable LAN Discovery", "Omogoči odkrivanje lokalnega omrežja"),
("Deny LAN Discovery", "Onemogoči odkrivanje lokalnega omrežja"),
("Enable recording session", "Omogoči snemanje seje"),
("Enable LAN discovery", "Omogoči odkrivanje lokalnega omrežja"),
("Deny LAN discovery", "Onemogoči odkrivanje lokalnega omrežja"),
("Write a message", "Napiši spoorčilo"),
("Prompt", "Poziv"),
("Please wait for confirmation of UAC...", "Počakajte za potrditev nadzora uporabniškega računa"),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Podpora za Wayland je v preizkusni fazi. Uporabite X11, če rabite nespremljan dostop."),
("Right click to select tabs", "Desno-kliknite za izbiro zavihkov"),
("Skipped", "Izpuščeno"),
("Add to Address Book", "Dodaj v adresar"),
("Add to address book", "Dodaj v adresar"),
("Group", "Skupina"),
("Search", "Iskanje"),
("Closed manually by web console", "Ročno zaprto iz spletne konzole"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Gati"),
("Established", "I themeluar"),
("connecting_status", "statusi_i_lidhjes"),
("Enable Service", "Aktivizo Shërbimin"),
("Start Service", "Nis Shërbimin"),
("Enable service", "Aktivizo Shërbimin"),
("Start service", "Nis Shërbimin"),
("Service is running", "Shërbimi është duke funksionuar"),
("Service is not running", "Shërbimi nuk është duke funksionuar"),
("not_ready_status", "Jo gati.Ju lutem kontolloni lidhjen tuaj."),
("Control Remote Desktop", "Kontrolli i desktopit në distancë"),
("Transfer File", "Transfero dosje"),
("Transfer file", "Transfero dosje"),
("Connect", "Lidh"),
("Recent Sessions", "Sessioni i fundit"),
("Address Book", "Libër adresash"),
("Recent sessions", "Sessioni i fundit"),
("Address book", "Libër adresash"),
("Confirmation", "Konfirmimi"),
("TCP Tunneling", "TCP tunel"),
("TCP tunneling", "TCP tunel"),
("Remove", "Hiqni"),
("Refresh random password", "Rifreskoni fjalëkalimin e rastësishëm"),
("Set your own password", "Vendosni fjalëkalimin tuaj"),
("Enable Keyboard/Mouse", "Aktivizoni Tastierën/Mousin"),
("Enable Clipboard", "Aktivizo"),
("Enable File Transfer", "Aktivizoni transferimin e skedarëve"),
("Enable TCP Tunneling", "Aktivizoni TCP Tunneling"),
("Enable keyboard/mouse", "Aktivizoni Tastierën/Mousin"),
("Enable clipboard", "Aktivizo"),
("Enable file transfer", "Aktivizoni transferimin e skedarëve"),
("Enable TCP tunneling", "Aktivizoni TCP tunneling"),
("IP Whitelisting", ""),
("ID/Relay Server", "ID/server rele"),
("Import Server Config", "Konfigurimi i severit të importit"),
("Import server config", "Konfigurimi i severit të importit"),
("Export Server Config", "Konfigurimi i severit të eksportit"),
("Import server configuration successfully", "Konfigurimi i severit të importit i suksesshëm"),
("Export server configuration successfully", "Konfigurimi i severit të eksprotit i suksesshëm"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Prano"),
("Dismiss", "Hiq"),
("Disconnect", "Shkëput"),
("Allow using keyboard and mouse", "Lejoni përdorimin e Tastierës dhe Mousit"),
("Allow using clipboard", "Lejoni përdorimin e clipboard"),
("Allow hearing sound", "Lejoni dëgjimin e zërit"),
("Allow file copy and paste", "Lejoni kopjimin dhe pastimin e skedarëve"),
("Enable file copy and paste", "Lejoni kopjimin dhe pastimin e skedarëve"),
("Connected", "I lidhur"),
("Direct and encrypted connection", "Lidhje direkte dhe enkriptuar"),
("Relayed and encrypted connection", "Lidhje transmetuese dhe e enkriptuar"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Duke u loguar"),
("Enable RDP session sharing", "Aktivizoni shpërndarjen e sesionit RDP"),
("Auto Login", "Hyrje automatike"),
("Enable Direct IP Access", "Aktivizoni aksesimin e IP direkte"),
("Enable direct IP access", "Aktivizoni aksesimin e IP direkte"),
("Rename", "Riemërto"),
("Space", "Hapërsirë"),
("Create Desktop Shortcut", "Krijoni shortcut desktop"),
("Create desktop shortcut", "Krijoni shortcut desktop"),
("Change Path", "Ndrysho rrugëzimin"),
("Create Folder", "Krijoni një folder"),
("Please enter the folder name", "Ju lutem vendosni emrin e folderit"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Mbaje shërbimin e sfondit të RustDesk"),
("Ignore Battery Optimizations", "Injoro optimizimet e baterisë"),
("android_open_battery_optimizations_tip", "Nëse dëshironi ta çaktivizoni këtë veçori, ju lutemi shkoni te faqja tjetër e cilësimeve të aplikacionit RustDesk, gjeni dhe shtypni [Batteri], hiqni zgjedhjen [Te pakufizuara]"),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Lidhja nuk lejohet"),
("Legacy mode", "Modaliteti i trashëgimisë"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Përdor fjalëkalim të përhershëm"),
("Use both passwords", "Përdor të dy fjalëkalimet"),
("Set permanent password", "Vendos fjalëkalimin e përhershëm"),
("Enable Remote Restart", "Aktivizo rinisjen në distancë"),
("Allow remote restart", "Lejo rinisjen në distancë"),
("Restart Remote Device", "Rinisni pajisjen në distancë"),
("Enable remote restart", "Aktivizo rinisjen në distancë"),
("Restart remote device", "Rinisni pajisjen në distancë"),
("Are you sure you want to restart", "A jeni i sigurt që dëshironi të rinisni"),
("Restarting Remote Device", "Rinisja e pajisjes në distancë"),
("Restarting remote device", "Rinisja e pajisjes në distancë"),
("remote_restarting_tip", "Pajisja në distancë po riniset, ju lutemi mbyllni këtë kuti mesazhi dhe lidheni përsëri me fjalëkalim të përhershëm pas një kohe"),
("Copied", "Kopjuar"),
("Exit Fullscreen", "Dil nga ekrani i plotë"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Ndiq sistemin"),
("Enable hardware codec", "Aktivizo kodekun e harduerit"),
("Unlock Security Settings", "Zhbllokoni cilësimet e sigurisë"),
("Enable Audio", "Aktivizo audio"),
("Enable audio", "Aktivizo audio"),
("Unlock Network Settings", "Zhbllokoni cilësimet e rrjetit"),
("Server", "Server"),
("Direct IP Access", "Qasje e drejtpërdrejtë IP"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Ndrysho"),
("Start session recording", "Fillo regjistrimin e sesionit"),
("Stop session recording", "Ndalo regjistrimin e sesionit"),
("Enable Recording Session", "Aktivizo seancën e regjistrimit"),
("Allow recording session", "Lejo regjistrimin e sesionit"),
("Enable LAN Discovery", "Aktivizo zbulimin e LAN"),
("Deny LAN Discovery", "Mohoni zbulimin e LAN"),
("Enable recording session", "Aktivizo seancën e regjistrimit"),
("Enable LAN discovery", "Aktivizo zbulimin e LAN"),
("Deny LAN discovery", "Mohoni zbulimin e LAN"),
("Write a message", "Shkruani një mesazh"),
("Prompt", "Prompt"),
("Please wait for confirmation of UAC...", "Ju lutemi prisni për konfirmimin e UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Spremno"),
("Established", "Uspostavljeno"),
("connecting_status", "Spajanje na RustDesk mrežu..."),
("Enable Service", "Dozvoli servis"),
("Start Service", "Pokreni servis"),
("Enable service", "Dozvoli servis"),
("Start service", "Pokreni servis"),
("Service is running", "Servis je pokrenut"),
("Service is not running", "Servis nije pokrenut"),
("not_ready_status", "Nije spremno. Proverite konekciju."),
("Control Remote Desktop", "Upravljanje udaljenom radnom površinom"),
("Transfer File", "Prenos fajla"),
("Transfer file", "Prenos fajla"),
("Connect", "Spajanje"),
("Recent Sessions", "Poslednje sesije"),
("Address Book", "Adresar"),
("Recent sessions", "Poslednje sesije"),
("Address book", "Adresar"),
("Confirmation", "Potvrda"),
("TCP Tunneling", "TCP tunel"),
("TCP tunneling", "TCP tunel"),
("Remove", "Ukloni"),
("Refresh random password", "Osveži slučajnu lozinku"),
("Set your own password", "Postavi lozinku"),
("Enable Keyboard/Mouse", "Dozvoli tastaturu/miša"),
("Enable Clipboard", "Dozvoli clipboard"),
("Enable File Transfer", "Dozvoli prenos fajlova"),
("Enable TCP Tunneling", "Dozvoli TCP tunel"),
("Enable keyboard/mouse", "Dozvoli tastaturu/miša"),
("Enable clipboard", "Dozvoli clipboard"),
("Enable file transfer", "Dozvoli prenos fajlova"),
("Enable TCP tunneling", "Dozvoli TCP tunel"),
("IP Whitelisting", "IP pouzdana lista"),
("ID/Relay Server", "ID/Posredni server"),
("Import Server Config", "Import server konfiguracije"),
("Import server config", "Import server konfiguracije"),
("Export Server Config", "Eksport server konfiguracije"),
("Import server configuration successfully", "Import server konfiguracije uspešan"),
("Export server configuration successfully", "Eksport server konfiguracije uspešan"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Prihvati"),
("Dismiss", "Odbaci"),
("Disconnect", "Raskini konekciju"),
("Allow using keyboard and mouse", "Dozvoli korišćenje tastature i miša"),
("Allow using clipboard", "Dozvoli korišćenje clipboard-a"),
("Allow hearing sound", "Dozvoli da se čuje zvuk"),
("Allow file copy and paste", "Dozvoli kopiranje i lepljenje fajlova"),
("Enable file copy and paste", "Dozvoli kopiranje i lepljenje fajlova"),
("Connected", "Spojeno"),
("Direct and encrypted connection", "Direktna i kriptovana konekcija"),
("Relayed and encrypted connection", "Posredna i kriptovana konekcija"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Prijava..."),
("Enable RDP session sharing", "Dozvoli deljenje RDP sesije"),
("Auto Login", "Auto prijavljivanje (Važeće samo ako ste postavili \"Lock after session end\")"),
("Enable Direct IP Access", "Dozvoli direktan pristup preko IP"),
("Enable direct IP access", "Dozvoli direktan pristup preko IP"),
("Rename", "Preimenuj"),
("Space", "Prazno"),
("Create Desktop Shortcut", "Kreiraj prečicu na radnoj površini"),
("Create desktop shortcut", "Kreiraj prečicu na radnoj površini"),
("Change Path", "Promeni putanju"),
("Create Folder", "Kreiraj direktorijum"),
("Please enter the folder name", "Unesite ime direktorijuma"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Zadrži RustDesk kao pozadinski servis"),
("Ignore Battery Optimizations", "Zanemari optimizacije baterije"),
("android_open_battery_optimizations_tip", "Ako želite da onemogućite ovu funkciju, molimo idite na sledeću stranicu za podešavanje RustDesk aplikacije, pronađite i uđite u [Battery], isključite [Unrestricted]"),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Konekcija nije dozvoljena"),
("Legacy mode", "Zastareli mod"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Koristi trajnu lozinku"),
("Use both passwords", "Koristi obe lozinke"),
("Set permanent password", "Postavi trajnu lozinku"),
("Enable Remote Restart", "Omogući daljinsko restartovanje"),
("Allow remote restart", "Dozvoli daljinsko restartovanje"),
("Restart Remote Device", "Restartuj daljinski uređaj"),
("Enable remote restart", "Omogući daljinsko restartovanje"),
("Restart remote device", "Restartuj daljinski uređaj"),
("Are you sure you want to restart", "Da li ste sigurni da želite restart"),
("Restarting Remote Device", "Restartovanje daljinskog uređaja"),
("Restarting remote device", "Restartovanje daljinskog uređaja"),
("remote_restarting_tip", "Udaljeni uređaj se restartuje, molimo zatvorite ovu poruku i ponovo se kasnije povežite trajnom šifrom"),
("Copied", "Kopirano"),
("Exit Fullscreen", "Napusti mod celog ekrana"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Prema sistemu"),
("Enable hardware codec", "Omogući hardverski kodek"),
("Unlock Security Settings", "Otključaj postavke bezbednosti"),
("Enable Audio", "Dozvoli zvuk"),
("Enable audio", "Dozvoli zvuk"),
("Unlock Network Settings", "Otključaj postavke mreže"),
("Server", "Server"),
("Direct IP Access", "Direktan IP pristup"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Promeni"),
("Start session recording", "Započni snimanje sesije"),
("Stop session recording", "Zaustavi snimanje sesije"),
("Enable Recording Session", "Omogući snimanje sesije"),
("Allow recording session", "Dozvoli snimanje sesije"),
("Enable LAN Discovery", "Omogući LAN otkrivanje"),
("Deny LAN Discovery", "Zabrani LAN otkrivanje"),
("Enable recording session", "Omogući snimanje sesije"),
("Enable LAN discovery", "Omogući LAN otkrivanje"),
("Deny LAN discovery", "Zabrani LAN otkrivanje"),
("Write a message", "Napiši poruku"),
("Prompt", "Prompt"),
("Please wait for confirmation of UAC...", "Molimo sačekajte UAC potvrdu..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland eksperiment savet"),
("Right click to select tabs", "Desni klik za izbor kartica"),
("Skipped", ""),
("Add to Address Book", "Dodaj u adresar"),
("Add to address book", "Dodaj u adresar"),
("Group", "Grupa"),
("Search", "Pretraga"),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Redo"),
("Established", "Uppkopplad"),
("connecting_status", "Ansluter till RustDesk..."),
("Enable Service", "Sätt på tjänsten"),
("Start Service", "Starta tjänsten"),
("Enable service", "Sätt på tjänsten"),
("Start service", "Starta tjänsten"),
("Service is running", "Tjänsten är startad"),
("Service is not running", "Tjänsten är ej startad"),
("not_ready_status", "Ej redo. Kontrollera din nätverksanslutning"),
("Control Remote Desktop", "Kontrollera fjärrskrivbord"),
("Transfer File", "Överför fil"),
("Transfer file", "Överför fil"),
("Connect", "Anslut"),
("Recent Sessions", "Dina senaste sessioner"),
("Address Book", "Addressbok"),
("Recent sessions", "Dina senaste sessioner"),
("Address book", "Addressbok"),
("Confirmation", "Bekräftelse"),
("TCP Tunneling", "TCP Tunnel"),
("TCP tunneling", "TCP Tunnel"),
("Remove", "Ta bort"),
("Refresh random password", "Skapa nytt slumpmässigt lösenord"),
("Set your own password", "Skapa ditt eget lösenord"),
("Enable Keyboard/Mouse", "Tillåt tangentbord/mus"),
("Enable Clipboard", "Tillåt urklipp"),
("Enable File Transfer", "Tillåt filöverföring"),
("Enable TCP Tunneling", "Tillåt TCP tunnel"),
("Enable keyboard/mouse", "Tillåt tangentbord/mus"),
("Enable clipboard", "Tillåt urklipp"),
("Enable file transfer", "Tillåt filöverföring"),
("Enable TCP tunneling", "Tillåt TCP tunnel"),
("IP Whitelisting", "IP Vitlisting"),
("ID/Relay Server", "ID/Relay Server"),
("Import Server Config", "Importera Server config"),
("Import server config", "Importera Server config"),
("Export Server Config", "Exportera Server config"),
("Import server configuration successfully", "Importering lyckades"),
("Export server configuration successfully", "Exportering lyckades"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Acceptera"),
("Dismiss", "Tillåt inte"),
("Disconnect", "Koppla ifrån"),
("Allow using keyboard and mouse", "Tillåt tangentbord och mus"),
("Allow using clipboard", "Tillåt urklipp"),
("Allow hearing sound", "Tillåt att höra ljud"),
("Allow file copy and paste", "Tillåt kopiering av filer"),
("Enable file copy and paste", "Tillåt kopiering av filer"),
("Connected", "Ansluten"),
("Direct and encrypted connection", "Direkt och krypterad anslutning"),
("Relayed and encrypted connection", "Vidarebefodrad och krypterad anslutning"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Loggar in..."),
("Enable RDP session sharing", "Tillåt RDP sessionsdelning"),
("Auto Login", "Auto Login (Bara giltigt om du sätter \"Lås efter sessionens slut\")"),
("Enable Direct IP Access", "Tillåt direkt IP anslutningar"),
("Enable direct IP access", "Tillåt direkt IP anslutningar"),
("Rename", "Byt namn"),
("Space", "Mellanslag"),
("Create Desktop Shortcut", "Skapa skrivbordsgenväg"),
("Create desktop shortcut", "Skapa skrivbordsgenväg"),
("Change Path", "Ändra plats"),
("Create Folder", "Skapa mapp"),
("Please enter the folder name", "Skriv in namnet på mappen"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Behåll RustDesk i bakgrunden"),
("Ignore Battery Optimizations", "Ignorera batterioptimering"),
("android_open_battery_optimizations_tip", "Om du vill stänga av denna funktion, gå till nästa RustDesk programs inställningar, hitta [Batteri], Checka ur [Obegränsad]"),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "Anslutning ej tillåten"),
("Legacy mode", "Legacy mode"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Använd permanent lösenord"),
("Use both passwords", "Använd båda lösenorden"),
("Set permanent password", "Ställ in permanent lösenord"),
("Enable Remote Restart", "Sätt på fjärromstart"),
("Allow remote restart", "Tillåt fjärromstart"),
("Restart Remote Device", "Starta om fjärrenheten"),
("Enable remote restart", "Sätt på fjärromstart"),
("Restart remote device", "Starta om fjärrenheten"),
("Are you sure you want to restart", "Är du säker att du vill starta om?"),
("Restarting Remote Device", "Startar om fjärrenheten"),
("Restarting remote device", "Startar om fjärrenheten"),
("remote_restarting_tip", "Enheten startar om, stäng detta meddelande och anslut igen om en liten stund"),
("Copied", "Kopierad"),
("Exit Fullscreen", "Gå ur fullskärmsläge"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Följ system"),
("Enable hardware codec", "Aktivera hårdvarucodec"),
("Unlock Security Settings", "Lås upp säkerhetsinställningar"),
("Enable Audio", "Sätt på ljud"),
("Enable audio", "Sätt på ljud"),
("Unlock Network Settings", "Lås upp nätverksinställningar"),
("Server", "Server"),
("Direct IP Access", "Direkt IP åtkomst"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Byt"),
("Start session recording", "Starta inspelning"),
("Stop session recording", "Avsluta inspelning"),
("Enable Recording Session", "Sätt på sessionsinspelning"),
("Allow recording session", "Tillåt sessionsinspelning"),
("Enable LAN Discovery", "Sätt på LAN upptäckt"),
("Deny LAN Discovery", "Neka LAN upptäckt"),
("Enable recording session", "Sätt på sessionsinspelning"),
("Enable LAN discovery", "Sätt på LAN upptäckt"),
("Deny LAN discovery", "Neka LAN upptäckt"),
("Write a message", "Skriv ett meddelande"),
("Prompt", "Prompt"),
("Please wait for confirmation of UAC...", "Var god vänta för UAC bekräftelse..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", ""),
("Established", ""),
("connecting_status", ""),
("Enable Service", ""),
("Start Service", ""),
("Enable service", ""),
("Start service", ""),
("Service is running", ""),
("Service is not running", ""),
("not_ready_status", ""),
("Control Remote Desktop", ""),
("Transfer File", ""),
("Transfer file", ""),
("Connect", ""),
("Recent Sessions", ""),
("Address Book", ""),
("Recent sessions", ""),
("Address book", ""),
("Confirmation", ""),
("TCP Tunneling", ""),
("TCP tunneling", ""),
("Remove", ""),
("Refresh random password", ""),
("Set your own password", ""),
("Enable Keyboard/Mouse", ""),
("Enable Clipboard", ""),
("Enable File Transfer", ""),
("Enable TCP Tunneling", ""),
("Enable keyboard/mouse", ""),
("Enable clipboard", ""),
("Enable file transfer", ""),
("Enable TCP tunneling", ""),
("IP Whitelisting", ""),
("ID/Relay Server", ""),
("Import Server Config", ""),
("Import server config", ""),
("Export Server Config", ""),
("Import server configuration successfully", ""),
("Export server configuration successfully", ""),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", ""),
("Dismiss", ""),
("Disconnect", ""),
("Allow using keyboard and mouse", ""),
("Allow using clipboard", ""),
("Allow hearing sound", ""),
("Allow file copy and paste", ""),
("Enable file copy and paste", ""),
("Connected", ""),
("Direct and encrypted connection", ""),
("Relayed and encrypted connection", ""),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", ""),
("Enable RDP session sharing", ""),
("Auto Login", ""),
("Enable Direct IP Access", ""),
("Enable direct IP access", ""),
("Rename", ""),
("Space", ""),
("Create Desktop Shortcut", ""),
("Create desktop shortcut", ""),
("Change Path", ""),
("Create Folder", ""),
("Please enter the folder name", ""),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", ""),
("Ignore Battery Optimizations", ""),
("android_open_battery_optimizations_tip", ""),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", ""),
("Legacy mode", ""),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", ""),
("Use both passwords", ""),
("Set permanent password", ""),
("Enable Remote Restart", ""),
("Allow remote restart", ""),
("Restart Remote Device", ""),
("Enable remote restart", ""),
("Restart remote device", ""),
("Are you sure you want to restart", ""),
("Restarting Remote Device", ""),
("Restarting remote device", ""),
("remote_restarting_tip", ""),
("Copied", ""),
("Exit Fullscreen", ""),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", ""),
("Enable hardware codec", ""),
("Unlock Security Settings", ""),
("Enable Audio", ""),
("Enable audio", ""),
("Unlock Network Settings", ""),
("Server", ""),
("Direct IP Access", ""),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", ""),
("Start session recording", ""),
("Stop session recording", ""),
("Enable Recording Session", ""),
("Allow recording session", ""),
("Enable LAN Discovery", ""),
("Deny LAN Discovery", ""),
("Enable recording session", ""),
("Enable LAN discovery", ""),
("Deny LAN discovery", ""),
("Write a message", ""),
("Prompt", ""),
("Please wait for confirmation of UAC...", ""),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", ""),
("Right click to select tabs", ""),
("Skipped", ""),
("Add to Address Book", ""),
("Add to address book", ""),
("Group", ""),
("Search", ""),
("Closed manually by web console", ""),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "พร้อม"),
("Established", "เชื่อมต่อแล้ว"),
("connecting_status", "กำลังเชื่อมต่อไปยังเครือข่าย RustDesk..."),
("Enable Service", "เปิดใช้การงานเซอร์วิส"),
("Start Service", "เริ่มต้นใช้งานเซอร์วิส"),
("Enable service", "เปิดใช้การงานเซอร์วิส"),
("Start service", "เริ่มต้นใช้งานเซอร์วิส"),
("Service is running", "เซอร์วิสกำลังทำงาน"),
("Service is not running", "เซอร์วิสไม่ทำงาน"),
("not_ready_status", "ไม่พร้อมใช้งาน กรุณาตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ"),
("Control Remote Desktop", "การควบคุมเดสก์ท็อปปลายทาง"),
("Transfer File", "การถ่ายโอนไฟล์"),
("Transfer file", "การถ่ายโอนไฟล์"),
("Connect", "เชื่อมต่อ"),
("Recent Sessions", "เซสชันล่าสุด"),
("Address Book", "สมุดรายชื่อ"),
("Recent sessions", "เซสชันล่าสุด"),
("Address book", "สมุดรายชื่อ"),
("Confirmation", "การยืนยัน"),
("TCP Tunneling", "อุโมงค์การเชื่อมต่อ TCP"),
("TCP tunneling", "อุโมงค์การเชื่อมต่อ TCP"),
("Remove", "ลบ"),
("Refresh random password", "รีเฟรชรหัสผ่านใหม่แบบสุ่ม"),
("Set your own password", "ตั้งรหัสผ่านของคุณเอง"),
("Enable Keyboard/Mouse", "เปิดการใช้งาน คีย์บอร์ด/เมาส์"),
("Enable Clipboard", "เปิดการใช้งาน คลิปบอร์ด"),
("Enable File Transfer", "เปิดการใช้งาน การถ่ายโอนไฟล์"),
("Enable TCP Tunneling", "เปิดการใช้งาน อุโมงค์การเชื่อมต่อ TCP"),
("Enable keyboard/mouse", "เปิดการใช้งาน คีย์บอร์ด/เมาส์"),
("Enable clipboard", "เปิดการใช้งาน คลิปบอร์ด"),
("Enable file transfer", "เปิดการใช้งาน การถ่ายโอนไฟล์"),
("Enable TCP tunneling", "เปิดการใช้งาน อุโมงค์การเชื่อมต่อ TCP"),
("IP Whitelisting", "IP ไวท์ลิสต์"),
("ID/Relay Server", "เซิร์ฟเวอร์ ID/Relay"),
("Import Server Config", "นำเข้าการตั้งค่าเซิร์ฟเวอร์"),
("Import server config", "นำเข้าการตั้งค่าเซิร์ฟเวอร์"),
("Export Server Config", "ส่งออกการตั้งค่าเซิร์ฟเวอร์"),
("Import server configuration successfully", "นำเข้าการตั้งค่าเซิร์ฟเวอร์เสร็จสมบูรณ์"),
("Export server configuration successfully", "ส่งออกการตั้งค่าเซิร์ฟเวอร์เสร็จสมบูรณ์"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "ยอมรับ"),
("Dismiss", "ปิด"),
("Disconnect", "ยกเลิกการเชื่อมต่อ"),
("Allow using keyboard and mouse", "อนุญาตให้ใช้งานคีย์บอร์ดและเมาส"),
("Allow using clipboard", "อนุญาตให้ใช้คลิปบอร์ด"),
("Allow hearing sound", "อนุญาตให้ได้ยินเสียง"),
("Allow file copy and paste", "อนุญาตให้มีการคัดลอกและวางไฟล์"),
("Enable file copy and paste", "อนุญาตให้มีการคัดลอกและวางไฟล"),
("Connected", "เชื่อมต่อแล้ว"),
("Direct and encrypted connection", "การเชื่อมต่อตรงที่มีการเข้ารหัส"),
("Relayed and encrypted connection", "การเชื่อมต่อแบบ Relay ที่มีการเข้ารหัส"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "กำลังเข้าสู่ระบบ..."),
("Enable RDP session sharing", "เปิดการใช้งานการแชร์เซสชัน RDP"),
("Auto Login", "เข้าสู่ระบอัตโนมัติ"),
("Enable Direct IP Access", "เปิดการใช้งาน IP ตรง"),
("Enable direct IP access", "เปิดการใช้งาน IP ตรง"),
("Rename", "ปลายทาง"),
("Space", "พื้นที่ว่าง"),
("Create Desktop Shortcut", "สร้างทางลัดบนเดสก์ท็อป"),
("Create desktop shortcut", "สร้างทางลัดบนเดสก์ท็อป"),
("Change Path", "เปลี่ยนตำแหน่ง"),
("Create Folder", "สร้างโฟลเดอร์"),
("Please enter the folder name", "กรุณาใส่ชื่อโฟลเดอร์"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "คงสถานะการทำงานเบื้องหลังของเซอร์วิส RustDesk"),
("Ignore Battery Optimizations", "เพิกเฉยการตั้งค่าการใช้งาน Battery Optimization"),
("android_open_battery_optimizations_tip", "หากคุณต้องการปิดการใช้งานฟีเจอร์นี้ กรุณาไปยังหน้าตั้งค่าในแอปพลิเคชัน RustDesk ค้นหาหัวข้อ [Battery] และยกเลิกการเลือกรายการ [Unrestricted]"),
("Start on Boot", "เริ่มต้นเมื่อเปิดเครื่อง"),
("Start on boot", "เริ่มต้นเมื่อเปิดเครื่อง"),
("Start the screen sharing service on boot, requires special permissions", "เริ่มต้นใช้งานเซอร์วิสสำหรับการแบ่งปันหน้าจอเมื่อเปิดเครื่อง (ต้องมีการให้สิทธิ์การใช้งานพิเศษเพิ่มเติม)"),
("Connection not allowed", "การเชื่อมต่อไม่อนุญาต"),
("Legacy mode", "โหมดดั้งเดิม"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "ใช้รหัสผ่านถาวร"),
("Use both passwords", "ใช้รหัสผ่านทั้งสองแบบ"),
("Set permanent password", "ตั้งค่ารหัสผ่านถาวร"),
("Enable Remote Restart", "เปิดการใช้งานการรีสตาร์ทระบบทางไกล"),
("Allow remote restart", "อนุญาตการรีสตาร์ทระบบทางไกล"),
("Restart Remote Device", "รีสตาร์ทอุปกรณ์ปลายทาง"),
("Enable remote restart", "เปิดการใช้งานการรีสตาร์ทระบบทางไกล"),
("Restart remote device", "รีสตาร์ทอุปกรณ์ปลายทาง"),
("Are you sure you want to restart", "คุณแน่ใจหรือไม่ที่จะรีสตาร์ท"),
("Restarting Remote Device", "กำลังรีสตาร์ทระบบปลายทาง"),
("Restarting remote device", "กำลังรีสตาร์ทระบบปลายทาง"),
("remote_restarting_tip", "ระบบปลายทางกำลังรีสตาร์ท กรุณาปิดกล่องข้อความนี้และดำเนินการเขื่อมต่อใหม่อีกครั้งด้วยรหัสผ่านถาวรหลังจากผ่านไปซักครู่"),
("Copied", "คัดลอกแล้ว"),
("Exit Fullscreen", "ออกจากเต็มหน้าจอ"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "ตามระบบ"),
("Enable hardware codec", "เปิดการใช้งานฮาร์ดแวร์ codec"),
("Unlock Security Settings", "ปลดล็อคการตั้งค่าความปลอดภัย"),
("Enable Audio", "เปิดการใช้งานเสียง"),
("Enable audio", "เปิดการใช้งานเสียง"),
("Unlock Network Settings", "ปลดล็อคการตั้งค่าเครือข่าย"),
("Server", "เซิร์ฟเวอร์"),
("Direct IP Access", "การเข้าถึง IP ตรง"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "เปลี่ยน"),
("Start session recording", "เริ่มต้นการบันทึกเซสชัน"),
("Stop session recording", "หยุดการบันทึกเซสซัน"),
("Enable Recording Session", "เปิดใช้งานการบันทึกเซสชัน"),
("Allow recording session", "อนุญาตการบันทึกเซสชัน"),
("Enable LAN Discovery", "เปิดการใช้งานการค้นหาในวง LAN"),
("Deny LAN Discovery", "ปฏิเสธการใช้งานการค้นหาในวง LAN"),
("Enable recording session", "เปิดใช้งานการบันทึกเซสชัน"),
("Enable LAN discovery", "เปิดการใช้งานการค้นหาในวง LAN"),
("Deny LAN discovery", "ปฏิเสธการใช้งานการค้นหาในวง LAN"),
("Write a message", "เขียนข้อความ"),
("Prompt", ""),
("Please wait for confirmation of UAC...", "กรุณารอการยืนยันจาก UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "การสนับสนุน Wayland ยังอยู่ในขั้นตอนการทดลอง กรุณาใช้ X11 หากคุณต้องการใช้งานการเข้าถึงแบบไม่มีผู้ดูแล"),
("Right click to select tabs", "คลิกขวาเพื่อเลือกแท็บ"),
("Skipped", "ข้าม"),
("Add to Address Book", "เพิ่มไปยังสมุดรายชื่อ"),
("Add to address book", "เพิ่มไปยังสมุดรายชื่อ"),
("Group", "กลุ่ม"),
("Search", "ค้นหา"),
("Closed manually by web console", "ถูกปิดโดยเว็บคอนโซล"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Hazır"),
("Established", "Bağlantı sağlandı"),
("connecting_status", "Bağlanılıyor "),
("Enable Service", "Servisi aktif et"),
("Start Service", "Servisi başlat"),
("Enable service", "Servisi aktif et"),
("Start service", "Servisi başlat"),
("Service is running", "Servis çalışıyor"),
("Service is not running", "Servis çalışmıyor"),
("not_ready_status", "Hazır değil. Bağlantınızı kontrol edin"),
("Control Remote Desktop", "Bağlanılacak Uzak Bağlantı ID"),
("Transfer File", "Dosya transferi"),
("Transfer file", "Dosya transferi"),
("Connect", "Bağlan"),
("Recent Sessions", "Son Bağlanılanlar"),
("Address Book", "Adres Defteri"),
("Recent sessions", "Son Bağlanılanlar"),
("Address book", "Adres Defteri"),
("Confirmation", "Onayla"),
("TCP Tunneling", "TCP Tünelleri"),
("TCP tunneling", "TCP Tünelleri"),
("Remove", "Kaldır"),
("Refresh random password", "Yeni rastgele şifre oluştur"),
("Set your own password", "Kendi şifreni oluştur"),
("Enable Keyboard/Mouse", "Klavye ve Fareye izin ver"),
("Enable Clipboard", "Kopyalanan geçici veriye izin ver"),
("Enable File Transfer", "Dosya Transferine izin ver"),
("Enable TCP Tunneling", "TCP Tüneline izin ver"),
("Enable keyboard/mouse", "Klavye ve Fareye izin ver"),
("Enable clipboard", "Kopyalanan geçici veriye izin ver"),
("Enable file transfer", "Dosya Transferine izin ver"),
("Enable TCP tunneling", "TCP Tüneline izin ver"),
("IP Whitelisting", "İzinli IP listesi"),
("ID/Relay Server", "ID/Relay Sunucusu"),
("Import Server Config", "Sunucu ayarlarını içe aktar"),
("Import server config", "Sunucu ayarlarını içe aktar"),
("Export Server Config", "Sunucu Yapılandırmasını Dışa Aktar"),
("Import server configuration successfully", "Sunucu ayarları başarıyla içe aktarıldı"),
("Export server configuration successfully", "Sunucu yapılandırmasını başarıyla dışa aktar"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Kabul Et"),
("Dismiss", "Reddet"),
("Disconnect", "Bağlanıyı kes"),
("Allow using keyboard and mouse", "Klavye ve fare kullanımına izin ver"),
("Allow using clipboard", "Pano kullanımına izin ver"),
("Allow hearing sound", "Sesi duymaya izin ver"),
("Allow file copy and paste", "Dosya kopyalamaya ve yapıştırmaya izin ver"),
("Enable file copy and paste", "Dosya kopyalamaya ve yapıştırmaya izin ver"),
("Connected", "Bağlandı"),
("Direct and encrypted connection", "Doğrudan ve şifreli bağlantı"),
("Relayed and encrypted connection", "Aktarmalı ve şifreli bağlantı"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Giriş yapılıyor..."),
("Enable RDP session sharing", "RDP oturum paylaşımını etkinleştir"),
("Auto Login", "Otomatik giriş"),
("Enable Direct IP Access", "Doğrudan IP Erişimini Etkinleştir"),
("Enable direct IP access", "Doğrudan IP Erişimini Etkinleştir"),
("Rename", "Yeniden adlandır"),
("Space", "Boşluk"),
("Create Desktop Shortcut", "Masaüstü kısayolu oluşturun"),
("Create desktop shortcut", "Masaüstü kısayolu oluşturun"),
("Change Path", "Yolu değiştir"),
("Create Folder", "Klasör oluşturun"),
("Please enter the folder name", "Lütfen klasör adını girin"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "RustDesk arka plan hizmetini sürdürün"),
("Ignore Battery Optimizations", "Pil Optimizasyonlarını Yoksay"),
("android_open_battery_optimizations_tip", ""),
("Start on Boot", ""),
("Start on boot", ""),
("Start the screen sharing service on boot, requires special permissions", ""),
("Connection not allowed", "bağlantıya izin verilmedi"),
("Legacy mode", "Eski mod"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Kalıcı şifre kullan"),
("Use both passwords", "İki şifreyide kullan"),
("Set permanent password", "Kalıcı şifre oluştur"),
("Enable Remote Restart", "Uzaktan yeniden başlatmayı aktif et"),
("Allow remote restart", "Uzaktan yeniden başlatmaya izin ver"),
("Restart Remote Device", "Uzaktaki cihazı yeniden başlat"),
("Enable remote restart", "Uzaktan yeniden başlatmayı aktif et"),
("Restart remote device", "Uzaktaki cihazı yeniden başlat"),
("Are you sure you want to restart", "Yeniden başlatmak istediğinize emin misin?"),
("Restarting Remote Device", "Uzaktan yeniden başlatılıyor"),
("Restarting remote device", "Uzaktan yeniden başlatılıyor"),
("remote_restarting_tip", "remote_restarting_tip"),
("Copied", "Kopyalandı"),
("Exit Fullscreen", "Tam ekrandan çık"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Sisteme Uy"),
("Enable hardware codec", "Donanımsal codec aktif et"),
("Unlock Security Settings", "Güvenlik Ayarlarını"),
("Enable Audio", "Sesi Aktif Et"),
("Enable audio", "Sesi Aktif Et"),
("Unlock Network Settings", "Ağ Ayarlarını"),
("Server", "Sunucu"),
("Direct IP Access", "Direk IP Erişimi"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Değiştir"),
("Start session recording", "Oturum kaydını başlat"),
("Stop session recording", "Oturum kaydını sonlandır"),
("Enable Recording Session", "Kayıt Oturumunu Aktif Et"),
("Allow recording session", "Oturum kaydına izin ver"),
("Enable LAN Discovery", "Yerel Ağ Keşfine İzin Ver"),
("Deny LAN Discovery", "Yerl Ağ Keşfine İzin Verme"),
("Enable recording session", "Kayıt Oturumunu Aktif Et"),
("Enable LAN discovery", "Yerel Ağ Keşfine İzin Ver"),
("Deny LAN discovery", "Yerl Ağ Keşfine İzin Verme"),
("Write a message", "Bir mesaj yazın"),
("Prompt", "İstem"),
("Please wait for confirmation of UAC...", "UAC onayı için lütfen bekleyiniz..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland desteği deneysel aşamada olduğundan, gerektiğinde X11'i kullanmanız önerilir"),
("Right click to select tabs", "Sekmeleri seçmek için sağ tıklayın"),
("Skipped", "Atlandı"),
("Add to Address Book", "Adres Defterine Ekle"),
("Add to address book", "Adres Defterine Ekle"),
("Group", "Grup"),
("Search", "Ara"),
("Closed manually by web console", "Web konsoluyla manuel olarak kapatıldı"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "就緒"),
("Established", "已建立"),
("connecting_status", "正在連線到 RustDesk 網路 ..."),
("Enable Service", "啟用服務"),
("Start Service", "啟動服務"),
("Enable service", "啟用服務"),
("Start service", "啟動服務"),
("Service is running", "服務正在執行"),
("Service is not running", "服務尚未執行"),
("not_ready_status", "尚未就緒,請檢查您的網路連線。"),
("Control Remote Desktop", "控制遠端桌面"),
("Transfer File", "傳輸檔案"),
("Transfer file", "傳輸檔案"),
("Connect", "連線"),
("Recent Sessions", "近期的工作階段"),
("Address Book", "通訊錄"),
("Recent sessions", "近期的工作階段"),
("Address book", "通訊錄"),
("Confirmation", "確認"),
("TCP Tunneling", "TCP 通道"),
("TCP tunneling", "TCP 通道"),
("Remove", "移除"),
("Refresh random password", "重新產生隨機密碼"),
("Set your own password", "自行設定密碼"),
("Enable Keyboard/Mouse", "啟用鍵盤和滑鼠"),
("Enable Clipboard", "啟用剪貼簿"),
("Enable File Transfer", "啟用檔案傳輸"),
("Enable TCP Tunneling", "啟用 TCP 通道"),
("Enable keyboard/mouse", "啟用鍵盤和滑鼠"),
("Enable clipboard", "啟用剪貼簿"),
("Enable file transfer", "啟用檔案傳輸"),
("Enable TCP tunneling", "啟用 TCP 通道"),
("IP Whitelisting", "IP 白名單"),
("ID/Relay Server", "ID / 中繼伺服器"),
("Import Server Config", "匯入伺服器設定"),
("Import server config", "匯入伺服器設定"),
("Export Server Config", "匯出伺服器設定"),
("Import server configuration successfully", "匯入伺服器設定成功"),
("Export server configuration successfully", "匯出伺服器設定成功"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "接受"),
("Dismiss", "關閉"),
("Disconnect", "中斷連線"),
("Allow using keyboard and mouse", "允許使用鍵盤和滑鼠"),
("Allow using clipboard", "允許使用剪貼簿"),
("Allow hearing sound", "允許分享音訊"),
("Allow file copy and paste", "允許檔案複製和貼上"),
("Enable file copy and paste", "允許檔案複製和貼上"),
("Connected", "已連線"),
("Direct and encrypted connection", "加密直接連線"),
("Relayed and encrypted connection", "加密中繼連線"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "正在登入 ..."),
("Enable RDP session sharing", "啟用 RDP 工作階段共享"),
("Auto Login", "自動登入 (只在您設定「工作階段結束後鎖定」時有效)"),
("Enable Direct IP Access", "啟用 IP 直接存取"),
("Enable direct IP access", "啟用 IP 直接存取"),
("Rename", "重新命名"),
("Space", "空白"),
("Create Desktop Shortcut", "新增桌面捷徑"),
("Create desktop shortcut", "新增桌面捷徑"),
("Change Path", "更改路徑"),
("Create Folder", "新增資料夾"),
("Please enter the folder name", "請輸入資料夾名稱"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "保持 RustDesk 後台服務"),
("Ignore Battery Optimizations", "忽略電池最佳化"),
("android_open_battery_optimizations_tip", "如果您想要停用此功能,請前往下一個 RustDesk 應用程式設定頁面,找到並進入「電池」,取消勾選「不受限制」"),
("Start on Boot", "開機時啟動"),
("Start on boot", "開機時啟動"),
("Start the screen sharing service on boot, requires special permissions", "開機時啟動螢幕分享服務,需要特殊權限。"),
("Connection not allowed", "不允許連線"),
("Legacy mode", "傳統模式"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "使用固定密碼"),
("Use both passwords", "同時使用兩種密碼"),
("Set permanent password", "設定固定密碼"),
("Enable Remote Restart", "啟用遠端重新啟動"),
("Allow remote restart", "允許遠端重新啟動"),
("Restart Remote Device", "重新啟動遠端裝置"),
("Enable remote restart", "啟用遠端重新啟動"),
("Restart remote device", "重新啟動遠端裝置"),
("Are you sure you want to restart", "確定要重新啟動嗎?"),
("Restarting Remote Device", "正在重新啟動遠端裝置"),
("Restarting remote device", "正在重新啟動遠端裝置"),
("remote_restarting_tip", "遠端裝置正在重新啟動,請關閉此對話框,並在一段時間後使用永久密碼重新連線"),
("Copied", "已複製"),
("Exit Fullscreen", "退出全螢幕"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "跟隨系統"),
("Enable hardware codec", "啟用硬體編解碼器"),
("Unlock Security Settings", "解鎖安全設定"),
("Enable Audio", "啟用音訊"),
("Enable audio", "啟用音訊"),
("Unlock Network Settings", "解鎖網路設定"),
("Server", "伺服器"),
("Direct IP Access", "IP 直接連線"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "變更"),
("Start session recording", "開始錄影"),
("Stop session recording", "停止錄影"),
("Enable Recording Session", "啟用錄製工作階段"),
("Allow recording session", "允許錄製工作階段"),
("Enable LAN Discovery", "允許區域網路探索"),
("Deny LAN Discovery", "拒絕區域網路探索"),
("Enable recording session", "啟用錄製工作階段"),
("Enable LAN discovery", "允許區域網路探索"),
("Deny LAN discovery", "拒絕區域網路探索"),
("Write a message", "輸入聊天訊息"),
("Prompt", "提示"),
("Please wait for confirmation of UAC...", "請等待對方確認 UAC ..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Wayland 支援處於實驗階段,如果您需要使用無人值守存取,請使用 X11。"),
("Right click to select tabs", "右鍵選擇分頁"),
("Skipped", "已跳過"),
("Add to Address Book", "新增到通訊錄"),
("Add to address book", "新增到通訊錄"),
("Group", "群組"),
("Search", "搜尋"),
("Closed manually by web console", "被 Web 控制台手動關閉"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Готово"),
("Established", "Встановлено"),
("connecting_status", "Підключення до мережі RustDesk..."),
("Enable Service", "Включити службу"),
("Start Service", "Запустити службу"),
("Enable service", "Включити службу"),
("Start service", "Запустити службу"),
("Service is running", "Служба працює"),
("Service is not running", "Служба не запущена"),
("not_ready_status", "Не готово. Будь ласка, перевірте ваше підключення"),
("Control Remote Desktop", "Керування віддаленою стільницею"),
("Transfer File", "Надіслати файл"),
("Transfer file", "Надіслати файл"),
("Connect", "Підключитися"),
("Recent Sessions", "Нещодавні сеанси"),
("Address Book", "Адресна книга"),
("Recent sessions", "Нещодавні сеанси"),
("Address book", "Адресна книга"),
("Confirmation", "Підтвердження"),
("TCP Tunneling", "TCP-тунелювання"),
("TCP tunneling", "TCP-тунелювання"),
("Remove", "Видалити"),
("Refresh random password", "Оновити випадковий пароль"),
("Set your own password", "Встановити свій пароль"),
("Enable Keyboard/Mouse", "Увімкнути клавіатуру/мишу"),
("Enable Clipboard", "Увімкнути буфер обміну"),
("Enable File Transfer", "Увімкнути передачу файлів"),
("Enable TCP Tunneling", "Увімкнути тунелювання TCP"),
("Enable keyboard/mouse", "Увімкнути клавіатуру/мишу"),
("Enable clipboard", "Увімкнути буфер обміну"),
("Enable file transfer", "Увімкнути передачу файлів"),
("Enable TCP tunneling", "Увімкнути тунелювання TCP"),
("IP Whitelisting", "Список дозволених IP-адрес"),
("ID/Relay Server", "ID/Сервер ретрансляції"),
("Import Server Config", "Імпортувати конфігурацію сервера"),
("Import server config", "Імпортувати конфігурацію сервера"),
("Export Server Config", "Експортувати конфігурацію сервера"),
("Import server configuration successfully", "Конфігурацію сервера успішно імпортовано"),
("Export server configuration successfully", "Конфігурацію сервера успішно експортовано"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Прийняти"),
("Dismiss", "Відхилити"),
("Disconnect", "Відʼєднати"),
("Allow using keyboard and mouse", "Дозволити використання клавіатури та миші"),
("Allow using clipboard", "Дозволити використання буфера обміну"),
("Allow hearing sound", "Дозволити передачу звуку"),
("Allow file copy and paste", "Дозволити копіювання та вставку файлів"),
("Enable file copy and paste", "Дозволити копіювання та вставку файлів"),
("Connected", "Підключено"),
("Direct and encrypted connection", "Пряме та зашифроване підключення"),
("Relayed and encrypted connection", "Релейне та зашифроване підключення"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Вхід..."),
("Enable RDP session sharing", "Включити загальний доступ до сеансу RDP"),
("Auto Login", "Автоматичний вхід (дійсний, тільки якщо ви встановили \"Завершення користувацького сеансу після завершення віддаленого підключення\")"),
("Enable Direct IP Access", "Увімкнути прямий IP-доступ"),
("Enable direct IP access", "Увімкнути прямий IP-доступ"),
("Rename", "Перейменувати"),
("Space", "Місце"),
("Create Desktop Shortcut", "Створити ярлик на стільниці"),
("Create desktop shortcut", "Створити ярлик на стільниці"),
("Change Path", "Змінити шлях"),
("Create Folder", "Створити теку"),
("Please enter the folder name", "Будь ласка, введіть назву для теки"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Зберегти фонову службу RustDesk"),
("Ignore Battery Optimizations", "Ігнорувати оптимізації батареї"),
("android_open_battery_optimizations_tip", "Перейдіть на наступну сторінку налаштувань"),
("Start on Boot", "Автозапуск"),
("Start on boot", "Автозапуск"),
("Start the screen sharing service on boot, requires special permissions", "Запустити службу службу спільного доступу до екрана під час завантаження, потребує спеціальних дозволів"),
("Connection not allowed", "Підключення не дозволено"),
("Legacy mode", "Застарілий режим"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Використовувати постійний пароль"),
("Use both passwords", "Використовувати обидва паролі"),
("Set permanent password", "Встановити постійний пароль"),
("Enable Remote Restart", "Увімкнути віддалений перезапуск"),
("Allow remote restart", "Дозволити віддалений перезапуск"),
("Restart Remote Device", "Перезапустити віддалений пристрій"),
("Enable remote restart", "Увімкнути віддалений перезапуск"),
("Restart remote device", "Перезапустити віддалений пристрій"),
("Are you sure you want to restart", "Ви впевнені, що хочете виконати перезапуск?"),
("Restarting Remote Device", "Перезавантаження віддаленого пристрою"),
("Restarting remote device", "Перезавантаження віддаленого пристрою"),
("remote_restarting_tip", "Віддалений пристрій перезапускається. Будь ласка, закрийте це повідомлення та через деякий час перепідʼєднайтесь, використовуючи постійний пароль."),
("Copied", "Скопійовано"),
("Exit Fullscreen", "Вийти з повноекранного режиму"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Як в системі"),
("Enable hardware codec", "Увімкнути апаратний кодек"),
("Unlock Security Settings", "Розблокувати налаштування безпеки"),
("Enable Audio", "Увімкнути аудіо"),
("Enable audio", "Увімкнути аудіо"),
("Unlock Network Settings", "Розблокувати мережеві налаштування"),
("Server", "Сервер"),
("Direct IP Access", "Прямий IP доступ"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Змінити"),
("Start session recording", "Розпочати запис сесії"),
("Stop session recording", "Закінчити запис сесії"),
("Enable Recording Session", "Увімкнути запис сесії"),
("Allow recording session", "Дозволити запис сеансу"),
("Enable LAN Discovery", "Увімкнути пошук локальної мережі"),
("Deny LAN Discovery", "Заборонити виявлення локальної мережі"),
("Enable recording session", "Увімкнути запис сесії"),
("Enable LAN discovery", "Увімкнути пошук локальної мережі"),
("Deny LAN discovery", "Заборонити виявлення локальної мережі"),
("Write a message", "Написати повідомлення"),
("Prompt", "Підказка"),
("Please wait for confirmation of UAC...", "Будь ласка, зачекайте підтвердження UAC..."),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Підтримка Wayland на експериментальній стадії, будь ласка, використовуйте X11, якщо необхідний автоматичний доступ."),
("Right click to select tabs", "Правий клік для вибору вкладки"),
("Skipped", "Пропущено"),
("Add to Address Book", "Додати IP до Адресної книги"),
("Add to address book", "Додати IP до Адресної книги"),
("Group", "Група"),
("Search", "Пошук"),
("Closed manually by web console", "Закрито вручну з веб-консолі"),
@@ -565,12 +560,15 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Open in new window", "Відкрити в новому вікні"),
("Show displays as individual windows", "Відображати дисплеї в якості окремих вікон"),
("Use all my displays for the remote session", "Використовувати всі мої дисплеї для віддаленого сеансу"),
("selinux_tip", ""),
("Change view", ""),
("Big tiles", ""),
("Small tiles", ""),
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("selinux_tip", "SELinux увімкнено на вашому пристрої, що може ускладнити для іншої сторони віддалене керування за допомогою RustDesk."),
("Change view", "Режим перегляду"),
("Big tiles", "Великі плитки"),
("Small tiles", "Маленькі плитки"),
("List", "Список"),
("Virtual display", "Віртуальний дисплей"),
("Plug out all", "Відключити все"),
("True color (4:4:4)", "Спражній колір (4:4:4)"),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -8,28 +8,28 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Ready", "Sẵn sàng"),
("Established", "Đã đuợc thiết lập"),
("connecting_status", "Đang kết nối đến mạng lưới RustDesk..."),
("Enable Service", "Bật dịch vụ"),
("Start Service", "Bắt đầu dịch vụ"),
("Enable service", "Bật dịch vụ"),
("Start service", "Bắt đầu dịch vụ"),
("Service is running", "Dịch vụ hiện đang chạy"),
("Service is not running", "Dịch vụ hiện đang dừng"),
("not_ready_status", "Hiện chưa sẵn sàng. Hãy kiểm tra kết nối của bạn"),
("Control Remote Desktop", "Điều khiển Desktop Từ Xa"),
("Transfer File", "Truyền Tệp Tin"),
("Transfer file", "Truyền Tệp Tin"),
("Connect", "Kết nối"),
("Recent Sessions", "Các session gần đây"),
("Address Book", "Quyển địa chỉ"),
("Recent sessions", "Các session gần đây"),
("Address book", "Quyển địa chỉ"),
("Confirmation", "Xác nhận"),
("TCP Tunneling", "TCP Tunneling"),
("TCP tunneling", "TCP tunneling"),
("Remove", "Loại bỏ"),
("Refresh random password", "Làm mới mật khẩu ngẫu nhiên"),
("Set your own password", "Đặt mật khẩu riêng"),
("Enable Keyboard/Mouse", "Cho phép sử dụng bàn phím/chuột"),
("Enable Clipboard", "Cho phép sử dụng clipboard"),
("Enable File Transfer", "Cho phép truyền tệp tin"),
("Enable TCP Tunneling", "Cho phép TCP Tunneling"),
("Enable keyboard/mouse", "Cho phép sử dụng bàn phím/chuột"),
("Enable clipboard", "Cho phép sử dụng clipboard"),
("Enable file transfer", "Cho phép truyền tệp tin"),
("Enable TCP tunneling", "Cho phép TCP tunneling"),
("IP Whitelisting", "Cho phép IP"),
("ID/Relay Server", "Máy chủ ID/chuyển tiếp"),
("Import Server Config", "Nhập cấu hình máy chủ"),
("Import server config", "Nhập cấu hình máy chủ"),
("Export Server Config", "Xuất cấu hình máy chủ"),
("Import server configuration successfully", "Nhập cấu hình máy chủ thành công"),
("Export server configuration successfully", "Xuất cấu hình máy chủ thành công"),
@@ -179,10 +179,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Accept", "Chấp nhận"),
("Dismiss", "Bỏ qua"),
("Disconnect", "Ngắt kết nối"),
("Allow using keyboard and mouse", "Cho phép sử dụng bàn phím và chuột"),
("Allow using clipboard", "Cho phép sử dụng clipboard"),
("Allow hearing sound", "Cho phép nghe âm thanh"),
("Allow file copy and paste", "Cho phép sao chép và dán tệp tin"),
("Enable file copy and paste", "Cho phép sao chép và dán tệp tin"),
("Connected", "Đã kết nối"),
("Direct and encrypted connection", "Kết nối trực tiếp và đuợc mã hóa"),
("Relayed and encrypted connection", "Kết nối chuyển tiếp và mã hóa"),
@@ -193,10 +190,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Logging in...", "Đang đăng nhập"),
("Enable RDP session sharing", "Cho phép chia sẻ phiên kết nối RDP"),
("Auto Login", "Tự động đăng nhập"),
("Enable Direct IP Access", "Cho phép truy cập trực tiếp qua IP"),
("Enable direct IP access", "Cho phép truy cập trực tiếp qua IP"),
("Rename", "Đổi tên"),
("Space", "Dấu cách"),
("Create Desktop Shortcut", "Tạo shortcut trên desktop"),
("Create desktop shortcut", "Tạo shortcut trên desktop"),
("Change Path", "Đổi địa điểm"),
("Create Folder", "Tạo thư mục"),
("Please enter the folder name", "Hãy nhập tên thư mục"),
@@ -311,7 +308,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Keep RustDesk background service", "Giữ dịch vụ nền RustDesk"),
("Ignore Battery Optimizations", "Bỏ qua các tối ưu pin"),
("android_open_battery_optimizations_tip", "Nếu bạn muốn tắt tính năng này, vui lòng chuyển đến trang cài đặt ứng dụng RustDesk tiếp theo, tìm và nhập [Pin], Bỏ chọn [Không hạn chế]"),
("Start on Boot", "Chạy khi khởi động"),
("Start on boot", "Chạy khi khởi động"),
("Start the screen sharing service on boot, requires special permissions", "Chạy dịch vụ chia sẻ màn hình khi khởi động, yêu cầu quyền đặc biệt"),
("Connection not allowed", "Kết nối không đuợc phép"),
("Legacy mode", "Chế độ cũ"),
@@ -320,11 +317,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Use permanent password", "Sử dụng mật khẩu vĩnh viễn"),
("Use both passwords", "Sử dụng cả hai mật khẩu"),
("Set permanent password", "Đặt mật khẩu vĩnh viễn"),
("Enable Remote Restart", "Bật khởi động lại từ xa"),
("Allow remote restart", "Cho phép khởi động lại từ xa"),
("Restart Remote Device", "Khởi động lại thiết bị từ xa"),
("Enable remote restart", "Bật khởi động lại từ xa"),
("Restart remote device", "Khởi động lại thiết bị từ xa"),
("Are you sure you want to restart", "Bạn có chắc bạn muốn khởi động lại không"),
("Restarting Remote Device", "Đang khởi động lại thiết bị từ xa"),
("Restarting remote device", "Đang khởi động lại thiết bị từ xa"),
("remote_restarting_tip", "Thiết bị từ xa đang khởi động lại, hãy đóng cửa sổ tin nhắn này và kết nối lại với mật khẩu vĩnh viễn sau một khoảng thời gian"),
("Copied", "Đã sao chép"),
("Exit Fullscreen", "Thoát toàn màn hình"),
@@ -354,7 +350,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Follow System", "Theo hệ thống"),
("Enable hardware codec", "Bật codec phần cứng"),
("Unlock Security Settings", "Mở khóa cài đặt bảo mật"),
("Enable Audio", "Bật âm thanh"),
("Enable audio", "Bật âm thanh"),
("Unlock Network Settings", "Mở khóa cài đặt mạng"),
("Server", "Máy chủ"),
("Direct IP Access", "Truy cập trực tiếp qua IP"),
@@ -373,10 +369,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Change", "Thay đổi"),
("Start session recording", "Bắt đầu ghi hình phiên kết nối"),
("Stop session recording", "Dừng ghi hình phiên kết nối"),
("Enable Recording Session", "Bật ghi hình phiên kết nối"),
("Allow recording session", "Cho phép ghi hình phiên kết nối"),
("Enable LAN Discovery", "Bật phát hiện mạng nội bộ (LAN)"),
("Deny LAN Discovery", "Từ chối phát hiện mạng nội bộ (LAN)"),
("Enable recording session", "Bật ghi hình phiên kết nối"),
("Enable LAN discovery", "Bật phát hiện mạng nội bộ (LAN)"),
("Deny LAN discovery", "Từ chối phát hiện mạng nội bộ (LAN)"),
("Write a message", "Viết một tin nhắn"),
("Prompt", ""),
("Please wait for confirmation of UAC...", "Vui lòng chờ cho phép UAC"),
@@ -410,7 +405,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("wayland_experiment_tip", "Hỗ trợ cho Wayland đang trong giai đoạn thử nghiệm, vui lòng dùng DX11 nếu bạn muốn sử dụng kết nối không giám sát."),
("Right click to select tabs", "Chuột phải để chọn cửa sổ"),
("Skipped", "Đã bỏ qua"),
("Add to Address Book", "Thêm vào Quyển địa chỉ"),
("Add to address book", "Thêm vào Quyển địa chỉ"),
("Group", "Nhóm"),
("Search", "Tìm"),
("Closed manually by web console", "Đã đóng thủ công bằng bảng điều khiển web"),
@@ -572,5 +567,8 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("List", ""),
("Virtual display", ""),
("Plug out all", ""),
("True color (4:4:4)", ""),
("Enable blocking user input", ""),
("id_input_tip", ""),
].iter().cloned().collect();
}

View File

@@ -58,7 +58,7 @@ mod ui_session_interface;
mod hbbs_http;
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
pub mod clipboard_file;
#[cfg(windows)]

View File

@@ -126,7 +126,7 @@ pub fn is_can_screen_recording(prompt: bool) -> bool {
if !can_record_screen && prompt {
use scrap::{Capturer, Display};
if let Ok(d) = Display::primary() {
Capturer::new(d, true).ok();
Capturer::new(d).ok();
}
}
can_record_screen

View File

@@ -95,7 +95,7 @@ pub fn new() -> ServerPtr {
id_count: hbb_common::rand::random::<i32>() % 1000 + 1000, // ensure positive
};
server.add_service(Box::new(audio_service::new()));
#[cfg(not(any(target_os = "android", target_os = "ios")))]
#[cfg(not(target_os = "ios"))]
server.add_service(Box::new(display_service::new()));
server.add_service(Box::new(video_service::new(
*display_service::PRIMARY_DISPLAY_IDX,

View File

@@ -1,5 +1,5 @@
use super::{input_service::*, *};
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
use crate::clipboard_file::*;
#[cfg(not(any(target_os = "android", target_os = "ios")))]
use crate::common::update_clipboard;
@@ -44,12 +44,14 @@ use hbb_common::{
use scrap::android::{call_main_service_pointer_input, call_main_service_key_event};
#[cfg(target_os = "android")]
use crate::keyboard::client::map_key_to_control_key;
use serde_derive::Serialize;
use serde_json::{json, value::Value};
use sha2::{Digest, Sha256};
#[cfg(not(any(target_os = "android", target_os = "ios")))]
use std::sync::atomic::Ordering;
use std::{
num::NonZeroI64,
path::PathBuf,
sync::{atomic::AtomicI64, mpsc as std_mpsc},
};
#[cfg(not(any(target_os = "android", target_os = "ios")))]
@@ -181,6 +183,7 @@ pub struct Connection {
file: bool,
restart: bool,
recording: bool,
block_input: bool,
last_test_delay: i64,
network_delay: Option<u32>,
lock_after_session_end: bool,
@@ -194,7 +197,7 @@ pub struct Connection {
// by peer
disable_audio: bool,
// by peer
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
enable_file_transfer: bool,
// by peer
audio_sender: Option<MediaSender>,
@@ -225,6 +228,7 @@ pub struct Connection {
start_cm_ipc_para: Option<StartCmIpcPara>,
auto_disconnect_timer: Option<(Instant, u64)>,
authed_conn_id: Option<self::raii::AuthedConnID>,
file_remove_log_control: FileRemoveLogControl,
}
impl ConnInner {
@@ -326,13 +330,14 @@ impl Connection {
file: Connection::permission("enable-file-transfer"),
restart: Connection::permission("enable-remote-restart"),
recording: Connection::permission("enable-record-session"),
block_input: Connection::permission("enable-block-input"),
last_test_delay: 0,
network_delay: None,
lock_after_session_end: false,
show_remote_cursor: false,
ip: "".to_owned(),
disable_audio: false,
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
enable_file_transfer: false,
disable_clipboard: false,
disable_keyboard: false,
@@ -367,6 +372,7 @@ impl Connection {
}),
auto_disconnect_timer: None,
authed_conn_id: None,
file_remove_log_control: FileRemoveLogControl::new(id),
};
let addr = hbb_common::try_into_v4(addr);
if !conn.on_open(addr).await {
@@ -395,6 +401,9 @@ impl Connection {
if !conn.recording {
conn.send_permission(Permission::Recording, false).await;
}
if !conn.block_input {
conn.send_permission(Permission::BlockInput, false).await;
}
let mut test_delay_timer =
time::interval_at(Instant::now() + TEST_DELAY_TIMEOUT, TEST_DELAY_TIMEOUT);
let mut last_recv_time = Instant::now();
@@ -476,12 +485,15 @@ impl Connection {
} else if &name == "recording" {
conn.recording = enabled;
conn.send_permission(Permission::Recording, enabled).await;
} else if &name == "block_input" {
conn.block_input = enabled;
conn.send_permission(Permission::BlockInput, enabled).await;
}
}
ipc::Data::RawMessage(bytes) => {
allow_err!(conn.stream.send_raw(bytes).await);
}
#[cfg(windows)]
#[cfg(any(target_os="windows", target_os="linux", target_os = "macos"))]
ipc::Data::ClipboardFile(clip) => {
allow_err!(conn.stream.send(&clip_2_msg(clip)).await);
}
@@ -558,11 +570,11 @@ impl Connection {
},
_ = conn.file_timer.tick() => {
if !conn.read_jobs.is_empty() {
conn.send_to_cm(ipc::Data::FileTransferLog(fs::serialize_transfer_jobs(&conn.read_jobs)));
conn.send_to_cm(ipc::Data::FileTransferLog(("transfer".to_string(), fs::serialize_transfer_jobs(&conn.read_jobs))));
match fs::handle_read_jobs(&mut conn.read_jobs, &mut conn.stream).await {
Ok(log) => {
if !log.is_empty() {
conn.send_to_cm(ipc::Data::FileTransferLog(log));
conn.send_to_cm(ipc::Data::FileTransferLog(("transfer".to_string(), log)));
}
}
Err(err) => {
@@ -634,6 +646,7 @@ impl Connection {
break;
}
}
conn.file_remove_log_control.on_timer().drain(..).map(|x| conn.send_to_cm(x)).count();
}
_ = test_delay_timer.tick() => {
if last_recv_time.elapsed() >= SEC30 {
@@ -672,7 +685,6 @@ impl Connection {
conn.lr.my_id.clone(),
);
video_service::notify_video_frame_fetched(id, None);
scrap::codec::Encoder::update(id, scrap::codec::EncodingUpdate::Remove);
if conn.authorized {
password::update_temporary_password();
}
@@ -1034,7 +1046,7 @@ impl Connection {
pi.hostname = DEVICE_NAME.lock().unwrap().clone();
pi.platform = "Android".into();
}
#[cfg(any(target_os = "linux", target_os = "windows"))]
#[cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))]
let mut platform_additions = serde_json::Map::new();
#[cfg(target_os = "linux")]
{
@@ -1064,7 +1076,18 @@ impl Connection {
}
}
#[cfg(any(target_os = "linux", target_os = "windows"))]
#[cfg(any(
target_os = "windows",
all(
any(target_os = "linux", target_os = "macos"),
feature = "unix-file-copy-paste"
)
))]
{
platform_additions.insert("has_file_clipboard".into(), json!(true));
}
#[cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))]
if !platform_additions.is_empty() {
pi.platform_additions = serde_json::to_string(&platform_additions).unwrap_or("".into());
}
@@ -1164,7 +1187,7 @@ impl Connection {
sub_service = true;
}
}
Self::on_remote_authorized();
self.on_remote_authorized();
}
let mut msg_out = Message::new();
msg_out.set_login_response(res);
@@ -1203,9 +1226,10 @@ impl Connection {
}
}
fn on_remote_authorized() {
fn on_remote_authorized(&self) {
use std::sync::Once;
static ONCE: Once = Once::new();
static _ONCE: Once = Once::new();
self.update_codec_on_login();
#[cfg(any(target_os = "windows", target_os = "linux"))]
if !Config::get_option("allow-remove-wallpaper").is_empty() {
// multi connections set once
@@ -1214,7 +1238,7 @@ impl Connection {
match crate::platform::WallPaperRemover::new() {
Ok(remover) => {
*wallpaper = Some(remover);
ONCE.call_once(|| {
_ONCE.call_once(|| {
shutdown_hooks::add_shutdown_hook(shutdown_hook);
});
}
@@ -1238,7 +1262,7 @@ impl Connection {
self.audio && !self.disable_audio
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
fn file_transfer_enabled(&self) -> bool {
self.file && self.enable_file_transfer
}
@@ -1258,6 +1282,7 @@ impl Connection {
file_transfer_enabled: self.file,
restart: self.restart,
recording: self.recording,
block_input: self.block_input,
from_switch: self.from_switch,
});
}
@@ -1403,8 +1428,8 @@ impl Connection {
return Config::get_option(enable_prefix_option).is_empty();
}
fn update_codec_on_login(&self, lr: &LoginRequest) {
if let Some(o) = lr.option.as_ref() {
fn update_codec_on_login(&self) {
if let Some(o) = self.lr.clone().option.as_ref() {
if let Some(q) = o.supported_decoding.clone().take() {
scrap::codec::Encoder::update(
self.inner.id(),
@@ -1429,9 +1454,6 @@ impl Connection {
if let Some(o) = lr.option.as_ref() {
self.options_in_login = Some(o.clone());
}
if lr.union.is_none() {
self.update_codec_on_login(&lr);
}
self.video_ack_required = lr.video_ack_required;
}
@@ -1856,8 +1878,9 @@ impl Connection {
}
Some(message::Union::Cliprdr(_clip)) =>
{
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
if let Some(clip) = msg_2_clip(_clip) {
log::debug!("got clipfile from client peer");
self.send_to_cm(ipc::Data::ClipboardFile(clip))
}
}
@@ -1952,30 +1975,43 @@ impl Connection {
}
Some(file_action::Union::RemoveDir(d)) => {
self.send_fs(ipc::FS::RemoveDir {
path: d.path,
path: d.path.clone(),
id: d.id,
recursive: d.recursive,
});
self.file_remove_log_control.on_remove_dir(d);
}
Some(file_action::Union::RemoveFile(f)) => {
self.send_fs(ipc::FS::RemoveFile {
path: f.path,
path: f.path.clone(),
id: f.id,
file_num: f.file_num,
});
self.file_remove_log_control.on_remove_file(f);
}
Some(file_action::Union::Create(c)) => {
self.send_fs(ipc::FS::CreateDir {
path: c.path,
path: c.path.clone(),
id: c.id,
});
self.send_to_cm(ipc::Data::FileTransferLog((
"create_dir".to_string(),
serde_json::to_string(&FileActionLog {
id: c.id,
conn_id: self.inner.id(),
path: c.path,
dir: true,
})
.unwrap_or_default(),
)));
}
Some(file_action::Union::Cancel(c)) => {
self.send_fs(ipc::FS::CancelWrite { id: c.id });
if let Some(job) = fs::get_job_immutable(c.id, &self.read_jobs) {
self.send_to_cm(ipc::Data::FileTransferLog(
self.send_to_cm(ipc::Data::FileTransferLog((
"transfer".to_string(),
fs::serialize_transfer_job(job, false, true, ""),
));
)));
}
fs::remove_job(c.id, &mut self.read_jobs);
}
@@ -2215,8 +2251,9 @@ impl Connection {
}
// Send display changed message.
// For compatibility with old versions ( < 1.2.4 ).
// sciter need it in new version
// 1. For compatibility with old versions ( < 1.2.4 ).
// 2. Sciter version.
// 3. Update `SupportedResolutions`.
if let Some(msg_out) = video_service::make_display_changed_msg(self.display_idx, None) {
self.send(msg_out).await;
}
@@ -2232,7 +2269,11 @@ impl Connection {
lock.add_service(Box::new(video_service::new(display_idx)));
}
}
lock.subscribe(&old_service_name, self.inner.clone(), false);
// For versions greater than 1.2.4, a `CaptureDisplays` message will be sent immediately.
// Unnecessary capturers will be removed then.
if !crate::common::is_support_multi_ui_session(&self.lr.version) {
lock.subscribe(&old_service_name, self.inner.clone(), false);
}
lock.subscribe(&new_service_name, self.inner.clone(), true);
self.display_idx = display_idx;
}
@@ -2439,7 +2480,7 @@ impl Connection {
}
}
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
if let Ok(q) = o.enable_file_transfer.enum_value() {
if q != BoolOption::NotSet {
self.enable_file_transfer = q == BoolOption::Yes;
@@ -2544,8 +2585,8 @@ impl Connection {
}
}
}
if self.keyboard {
if let Ok(q) = o.block_input.enum_value() {
if let Ok(q) = o.block_input.enum_value() {
if self.keyboard && self.block_input {
match q {
BoolOption::Yes => {
self.tx_input.send(MessageInput::BlockOn).ok();
@@ -2555,6 +2596,17 @@ impl Connection {
}
_ => {}
}
} else {
if q != BoolOption::NotSet {
let state = if q == BoolOption::Yes {
back_notification::BlockInputState::BlkOnFailed
} else {
back_notification::BlockInputState::BlkOffFailed
};
if let Some(tx) = &self.inner.tx {
Self::send_block_input_error(tx, state, "No permission".to_string());
}
}
}
}
}
@@ -2909,6 +2961,114 @@ pub enum FileAuditType {
RemoteReceive = 1,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
struct FileActionLog {
id: i32,
conn_id: i32,
path: String,
dir: bool,
}
struct FileRemoveLogControl {
conn_id: i32,
instant: Instant,
removed_files: Vec<FileRemoveFile>,
removed_dirs: Vec<FileRemoveDir>,
}
impl FileRemoveLogControl {
fn new(conn_id: i32) -> Self {
FileRemoveLogControl {
conn_id,
instant: Instant::now(),
removed_files: vec![],
removed_dirs: vec![],
}
}
fn on_remove_file(&mut self, f: FileRemoveFile) -> Option<ipc::Data> {
self.instant = Instant::now();
self.removed_files.push(f.clone());
Some(ipc::Data::FileTransferLog((
"remove".to_string(),
serde_json::to_string(&FileActionLog {
id: f.id,
conn_id: self.conn_id,
path: f.path,
dir: false,
})
.unwrap_or_default(),
)))
}
fn on_remove_dir(&mut self, d: FileRemoveDir) -> Option<ipc::Data> {
self.instant = Instant::now();
let direct_child = |parent: &str, child: &str| {
PathBuf::from(child).parent().map(|x| x.to_path_buf()) == Some(PathBuf::from(parent))
};
self.removed_files
.retain(|f| !direct_child(&f.path, &d.path));
self.removed_dirs
.retain(|x| !direct_child(&d.path, &x.path));
if !self
.removed_dirs
.iter()
.any(|x| direct_child(&x.path, &d.path))
{
self.removed_dirs.push(d.clone());
}
Some(ipc::Data::FileTransferLog((
"remove".to_string(),
serde_json::to_string(&FileActionLog {
id: d.id,
conn_id: self.conn_id,
path: d.path,
dir: true,
})
.unwrap_or_default(),
)))
}
fn on_timer(&mut self) -> Vec<ipc::Data> {
if self.instant.elapsed().as_secs() < 1 {
return vec![];
}
let mut v: Vec<ipc::Data> = vec![];
self.removed_files
.drain(..)
.map(|f| {
v.push(ipc::Data::FileTransferLog((
"remove".to_string(),
serde_json::to_string(&FileActionLog {
id: f.id,
conn_id: self.conn_id,
path: f.path,
dir: false,
})
.unwrap_or_default(),
)));
})
.count();
self.removed_dirs
.drain(..)
.map(|d| {
v.push(ipc::Data::FileTransferLog((
"remove".to_string(),
serde_json::to_string(&FileActionLog {
id: d.id,
conn_id: self.conn_id,
path: d.path,
dir: true,
})
.unwrap_or_default(),
)));
})
.count();
v
}
}
#[cfg(windows)]
pub struct PortableState {
pub last_uac: bool,
@@ -3002,18 +3162,6 @@ mod raii {
fn drop(&mut self) {
let mut active_conns_lock = ALIVE_CONNS.lock().unwrap();
active_conns_lock.retain(|&c| c != self.0);
#[cfg(not(any(target_os = "android", target_os = "ios")))]
if active_conns_lock.is_empty() {
display_service::reset_resolutions();
}
#[cfg(all(windows, feature = "virtual_display_driver"))]
if active_conns_lock.is_empty() {
let _ = virtual_display_manager::reset_all();
}
#[cfg(all(windows))]
if active_conns_lock.is_empty() {
crate::privacy_win_mag::stop();
}
video_service::VIDEO_QOS
.lock()
.unwrap()
@@ -3021,17 +3169,20 @@ mod raii {
}
}
pub struct AuthedConnID(i32);
pub struct AuthedConnID(i32, AuthConnType);
impl AuthedConnID {
pub fn new(id: i32, conn_type: AuthConnType) -> Self {
AUTHED_CONNS.lock().unwrap().push((id, conn_type));
Self(id)
Self(id, conn_type)
}
}
impl Drop for AuthedConnID {
fn drop(&mut self) {
if self.1 == AuthConnType::Remote {
scrap::codec::Encoder::update(self.0, scrap::codec::EncodingUpdate::Remove);
}
let mut lock = AUTHED_CONNS.lock().unwrap();
lock.retain(|&c| c.0 != self.0);
if lock.iter().filter(|c| c.1 == AuthConnType::Remote).count() == 0 {
@@ -3039,6 +3190,12 @@ mod raii {
{
*WALLPAPER_REMOVER.lock().unwrap() = None;
}
#[cfg(not(any(target_os = "android", target_os = "ios")))]
display_service::reset_resolutions();
#[cfg(all(windows, feature = "virtual_display_driver"))]
let _ = virtual_display_manager::reset_all();
#[cfg(all(windows))]
crate::privacy_win_mag::stop();
}
}
}

View File

@@ -12,6 +12,7 @@ use scrap::Display;
pub const NAME: &'static str = "display";
#[cfg(all(windows, feature = "virtual_display_driver"))]
const DUMMY_DISPLAY_SIDE_MAX_SIZE: usize = 1024;
struct ChangedResolution {
@@ -349,7 +350,7 @@ pub fn try_get_displays() -> ResultType<Vec<Display>> {
#[cfg(all(windows, feature = "virtual_display_driver"))]
pub fn try_get_displays() -> ResultType<Vec<Display>> {
let mut displays = Display::all()?;
if no_displays(&displays) {
if crate::platform::is_installed() && no_displays(&displays) {
log::debug!("no displays, create virtual display");
if let Err(e) = virtual_display_manager::plug_in_headless() {
log::error!("plug in headless failed {}", e);

View File

@@ -8,7 +8,7 @@ use hbb_common::{
tokio::{self, sync::mpsc},
ResultType,
};
use scrap::{Capturer, Frame, TraitCapturer};
use scrap::{Capturer, Frame, TraitCapturer, TraitFrame};
use shared_memory::*;
use std::{
mem::size_of,
@@ -300,7 +300,6 @@ pub mod server {
fn run_capture(shmem: Arc<SharedMemory>) {
let mut c = None;
let mut last_current_display = usize::MAX;
let mut last_use_yuv = false;
let mut last_timeout_ms: i32 = 33;
let mut spf = Duration::from_millis(last_timeout_ms as _);
let mut first_frame_captured = false;
@@ -316,14 +315,7 @@ pub mod server {
let para = para_ptr as *const CapturerPara;
let recreate = (*para).recreate;
let current_display = (*para).current_display;
let use_yuv = (*para).use_yuv;
let use_yuv_set = (*para).use_yuv_set;
let timeout_ms = (*para).timeout_ms;
if !use_yuv_set {
c = None;
std::thread::sleep(spf);
continue;
}
if c.is_none() {
let Ok(mut displays) = display_service::try_get_displays() else {
log::error!("Failed to get displays");
@@ -338,11 +330,10 @@ pub mod server {
let display = displays.remove(current_display);
display_width = display.width();
display_height = display.height();
match Capturer::new(display, use_yuv) {
match Capturer::new(display) {
Ok(mut v) => {
c = {
last_current_display = current_display;
last_use_yuv = use_yuv;
first_frame_captured = false;
if dxgi_failed_times > MAX_DXGI_FAIL_TIME {
dxgi_failed_times = 0;
@@ -353,8 +344,6 @@ pub mod server {
CapturerPara {
recreate: false,
current_display: (*para).current_display,
use_yuv: (*para).use_yuv,
use_yuv_set: (*para).use_yuv_set,
timeout_ms: (*para).timeout_ms,
},
);
@@ -368,16 +357,11 @@ pub mod server {
}
}
} else {
if recreate
|| current_display != last_current_display
|| use_yuv != last_use_yuv
{
if recreate || current_display != last_current_display {
log::info!(
"create capturer, display:{}->{}, use_yuv:{}->{}",
"create capturer, display:{}->{}",
last_current_display,
current_display,
last_use_yuv,
use_yuv
);
c = None;
continue;
@@ -401,12 +385,12 @@ pub mod server {
utils::set_frame_info(
&shmem,
FrameInfo {
length: f.0.len(),
length: f.data().len(),
width: display_width,
height: display_height,
},
);
shmem.write(ADDR_CAPTURE_FRAME, f.0);
shmem.write(ADDR_CAPTURE_FRAME, f.data());
shmem.write(ADDR_CAPTURE_WOULDBLOCK, &utils::i32_to_vec(TRUE));
utils::increase_counter(shmem.as_ptr().add(ADDR_CAPTURE_FRAME_COUNTER));
first_frame_captured = true;
@@ -651,7 +635,7 @@ pub mod client {
}
impl CapturerPortable {
pub fn new(current_display: usize, use_yuv: bool) -> Self
pub fn new(current_display: usize) -> Self
where
Self: Sized,
{
@@ -665,8 +649,6 @@ pub mod client {
CapturerPara {
recreate: true,
current_display,
use_yuv,
use_yuv_set: false,
timeout_ms: 33,
},
);
@@ -684,26 +666,6 @@ pub mod client {
}
impl TraitCapturer for CapturerPortable {
fn set_use_yuv(&mut self, use_yuv: bool) {
let mut option = SHMEM.lock().unwrap();
if let Some(shmem) = option.as_mut() {
unsafe {
let para_ptr = shmem.as_ptr().add(ADDR_CAPTURER_PARA);
let para = para_ptr as *const CapturerPara;
utils::set_para(
shmem,
CapturerPara {
recreate: (*para).recreate,
current_display: (*para).current_display,
use_yuv,
use_yuv_set: true,
timeout_ms: (*para).timeout_ms,
},
);
}
}
}
fn frame<'a>(&'a mut self, timeout: Duration) -> std::io::Result<Frame<'a>> {
let mut lock = SHMEM.lock().unwrap();
let shmem = lock.as_mut().ok_or(std::io::Error::new(
@@ -720,8 +682,6 @@ pub mod client {
CapturerPara {
recreate: (*para).recreate,
current_display: (*para).current_display,
use_yuv: (*para).use_yuv,
use_yuv_set: (*para).use_yuv_set,
timeout_ms: timeout.as_millis() as _,
},
);
@@ -744,7 +704,7 @@ pub mod client {
}
let frame_ptr = base.add(ADDR_CAPTURE_FRAME);
let data = slice::from_raw_parts(frame_ptr, (*frame_info).length);
Ok(Frame(data))
Ok(Frame::new(data, self.width, self.height))
} else {
let ptr = base.add(ADDR_CAPTURE_WOULDBLOCK);
let wouldblock = utils::ptr_to_i32(ptr);
@@ -910,7 +870,6 @@ pub mod client {
pub fn create_capturer(
current_display: usize,
display: scrap::Display,
use_yuv: bool,
portable_service_running: bool,
) -> ResultType<Box<dyn TraitCapturer>> {
if portable_service_running != RUNNING.lock().unwrap().clone() {
@@ -919,7 +878,7 @@ pub mod client {
if portable_service_running {
log::info!("Create shared memory capturer");
if current_display == *display_service::PRIMARY_DISPLAY_IDX {
return Ok(Box::new(CapturerPortable::new(current_display, use_yuv)));
return Ok(Box::new(CapturerPortable::new(current_display)));
} else {
bail!(
"Ignore capture display index: {}, the primary display index is: {}",
@@ -930,7 +889,7 @@ pub mod client {
} else {
log::debug!("Create capturer dxgi|gdi");
return Ok(Box::new(
Capturer::new(display, use_yuv).with_context(|| "Failed to create capturer")?,
Capturer::new(display).with_context(|| "Failed to create capturer")?,
));
}
}
@@ -981,8 +940,6 @@ pub mod client {
pub struct CapturerPara {
recreate: bool,
current_display: usize,
use_yuv: bool,
use_yuv_set: bool,
timeout_ms: i32,
}

View File

@@ -42,9 +42,10 @@ use scrap::Capturer;
use scrap::{
aom::AomEncoderConfig,
codec::{Encoder, EncoderCfg, HwEncoderConfig, Quality},
convert_to_yuv,
record::{Recorder, RecorderContext},
vpxcodec::{VpxEncoderConfig, VpxVideoCodecId},
CodecName, Display, TraitCapturer,
CodecName, Display, Frame, TraitCapturer, TraitFrame,
};
#[cfg(windows)]
use std::sync::Once;
@@ -171,7 +172,6 @@ pub fn new(idx: usize) -> GenericService {
fn create_capturer(
privacy_mode_id: i32,
display: Display,
use_yuv: bool,
_current: usize,
_portable_service_running: bool,
) -> ResultType<Box<dyn TraitCapturer>> {
@@ -182,12 +182,7 @@ fn create_capturer(
if privacy_mode_id > 0 {
#[cfg(windows)]
{
match scrap::CapturerMag::new(
display.origin(),
display.width(),
display.height(),
use_yuv,
) {
match scrap::CapturerMag::new(display.origin(), display.width(), display.height()) {
Ok(mut c1) => {
let mut ok = false;
let check_begin = Instant::now();
@@ -236,12 +231,11 @@ fn create_capturer(
return crate::portable_service::client::create_capturer(
_current,
display,
use_yuv,
_portable_service_running,
);
#[cfg(not(windows))]
return Ok(Box::new(
Capturer::new(display, use_yuv).with_context(|| "Failed to create capturer")?,
Capturer::new(display).with_context(|| "Failed to create capturer")?,
));
}
};
@@ -265,7 +259,7 @@ pub fn test_create_capturer(
)
} else {
let display = displays.remove(display_idx);
match create_capturer(privacy_mode_id, display, true, display_idx, false) {
match create_capturer(privacy_mode_id, display, display_idx, false) {
Ok(_) => return "".to_owned(),
Err(e) => e,
}
@@ -320,11 +314,7 @@ impl DerefMut for CapturerInfo {
}
}
fn get_capturer(
current: usize,
use_yuv: bool,
portable_service_running: bool,
) -> ResultType<CapturerInfo> {
fn get_capturer(current: usize, portable_service_running: bool) -> ResultType<CapturerInfo> {
#[cfg(target_os = "linux")]
{
if !is_x11() {
@@ -382,7 +372,6 @@ fn get_capturer(
let capturer = create_capturer(
capturer_privacy_mode_id,
display,
use_yuv,
current,
portable_service_running,
)?;
@@ -424,7 +413,7 @@ fn run(vs: VideoService) -> ResultType<()> {
let display_idx = vs.idx;
let sp = vs.sp;
let mut c = get_capturer(display_idx, true, last_portable_service_running)?;
let mut c = get_capturer(display_idx, last_portable_service_running)?;
let mut video_qos = VIDEO_QOS.lock().unwrap();
video_qos.refresh(None);
@@ -439,11 +428,11 @@ fn run(vs: VideoService) -> ResultType<()> {
let encoder_cfg = get_encoder_config(&c, quality, last_recording);
let mut encoder;
match Encoder::new(encoder_cfg) {
let use_i444 = Encoder::use_i444(&encoder_cfg);
match Encoder::new(encoder_cfg.clone(), use_i444) {
Ok(x) => encoder = x,
Err(err) => bail!("Failed to create encoder: {}", err),
}
c.set_use_yuv(encoder.use_yuv());
VIDEO_QOS.lock().unwrap().store_bitrate(encoder.bitrate());
if sp.is_option_true(OPTION_REFRESH) {
@@ -463,6 +452,8 @@ fn run(vs: VideoService) -> ResultType<()> {
#[cfg(target_os = "linux")]
let mut would_block_count = 0u32;
let mut yuv = Vec::new();
let mut mid_data = Vec::new();
while sp.ok() {
#[cfg(windows)]
@@ -493,6 +484,9 @@ fn run(vs: VideoService) -> ResultType<()> {
if last_portable_service_running != crate::portable_service::client::running() {
bail!("SWITCH");
}
if Encoder::use_i444(&encoder_cfg) != use_i444 {
bail!("SWITCH");
}
check_privacy_mode_changed(&sp, c.privacy_mode_id)?;
#[cfg(windows)]
{
@@ -512,40 +506,23 @@ fn run(vs: VideoService) -> ResultType<()> {
frame_controller.reset();
#[cfg(any(target_os = "android", target_os = "ios"))]
let res = match c.frame(spf) {
Ok(frame) => {
let time = now - start;
let ms = (time.as_secs() * 1000 + time.subsec_millis() as u64) as i64;
match frame {
scrap::Frame::RAW(data) => {
if data.len() != 0 {
let send_conn_ids = handle_one_frame(
display_idx,
&sp,
data,
ms,
&mut encoder,
recorder.clone(),
)?;
frame_controller.set_send(now, send_conn_ids);
}
}
_ => {}
};
Ok(())
}
Err(err) => Err(err),
};
#[cfg(not(any(target_os = "android", target_os = "ios")))]
let res = match c.frame(spf) {
Ok(frame) => {
let time = now - start;
let ms = (time.as_secs() * 1000 + time.subsec_millis() as u64) as i64;
let send_conn_ids =
handle_one_frame(display_idx, &sp, &frame, ms, &mut encoder, recorder.clone())?;
frame_controller.set_send(now, send_conn_ids);
if frame.data().len() != 0 {
let send_conn_ids = handle_one_frame(
display_idx,
&sp,
frame,
&mut yuv,
&mut mid_data,
ms,
&mut encoder,
recorder.clone(),
)?;
frame_controller.set_send(now, send_conn_ids);
}
#[cfg(windows)]
{
try_gdi = 0;
@@ -718,7 +695,9 @@ fn check_privacy_mode_changed(sp: &GenericService, privacy_mode_id: i32) -> Resu
fn handle_one_frame(
display: usize,
sp: &GenericService,
frame: &[u8],
frame: Frame,
yuv: &mut Vec<u8>,
mid_data: &mut Vec<u8>,
ms: i64,
encoder: &mut Encoder,
recorder: Arc<Mutex<Option<Recorder>>>,
@@ -732,7 +711,8 @@ fn handle_one_frame(
})?;
let mut send_conn_ids: HashSet<i32> = Default::default();
if let Ok(mut vf) = encoder.encode_to_message(frame, ms) {
convert_to_yuv(&frame, encoder.yuvfmt(), yuv, mid_data)?;
if let Ok(mut vf) = encoder.encode_to_message(yuv, ms) {
vf.display = display as _;
let mut msg = Message::new();
msg.set_video_frame(vf);

View File

@@ -76,12 +76,6 @@ impl TraitCapturer for CapturerPtr {
fn frame<'a>(&'a mut self, timeout: Duration) -> io::Result<Frame<'a>> {
unsafe { (*self.0).frame(timeout) }
}
fn set_use_yuv(&mut self, use_yuv: bool) {
unsafe {
(*self.0).set_use_yuv(use_yuv);
}
}
}
struct CapDisplayInfo {
@@ -192,7 +186,8 @@ pub(super) async fn check_init() -> ResultType<()> {
maxy = max_height;
let capturer = Box::into_raw(Box::new(
Capturer::new(display, true).with_context(|| "Failed to create capturer")?,
Capturer::new(display)
.with_context(|| "Failed to create capturer")?,
));
let capturer = CapturerPtr(capturer);
let cap_display_info = Box::into_raw(Box::new(CapDisplayInfo {

View File

@@ -589,7 +589,7 @@ impl UI {
}
fn handle_relay_id(&self, id: String) -> String {
handle_relay_id(id)
handle_relay_id(&id).to_owned()
}
fn get_login_device_info(&self) -> String {

View File

@@ -325,15 +325,15 @@ class SessionList: Reactor.Component {
<popup>
<menu.context #remote-context>
<li #connect>{translate('Connect')}</li>
<li #transfer>{translate('Transfer File')}</li>
<li #tunnel>{translate('TCP Tunneling')}</li>
<li #transfer>{translate('Transfer file')}</li>
<li #tunnel>{translate('TCP tunneling')}</li>
<li #force-always-relay><span>{svg_checkmark}</span>{translate('Always connect via relay')}</li>
<li #rdp>RDP<EditRdpPort /></li>
<li #wol>{translate('WOL')}</li>
<div .separator />
{this.type != "lan" && <li #rename>{translate('Rename')}</li>}
{this.type != "fav" && <li #remove>{translate('Remove')}</li>}
{is_win && <li #shortcut>{translate('Create Desktop Shortcut')}</li>}
{is_win && <li #shortcut>{translate('Create desktop shortcut')}</li>}
<li #forget-password>{translate('Forget Password')}</li>
{(!this.type || this.type == "fav") && <li #add-fav>{translate('Add to Favorites')}</li>}
{(!this.type || this.type == "fav") && <li #remove-fav>{translate('Remove from Favorites')}</li>}
@@ -540,10 +540,10 @@ class MultipleSessions: Reactor.Component {
return <div style="size: *">
<div .sessions-bar>
<div style="width:*" .sessions-tab #sessions-type>
<span class={!type ? 'active' : 'inactive'}>{translate('Recent Sessions')}</span>
<span class={!type ? 'active' : 'inactive'}>{translate('Recent sessions')}</span>
<span #fav class={type == "fav" ? 'active' : 'inactive'}>{translate('Favorites')}</span>
{handler.is_installed() && <span #lan class={type == "lan" ? 'active' : 'inactive'}>{translate('Discovered')}</span>}
<span #ab class={type == "ab" ? 'active' : 'inactive'}>{translate('Address Book')}</span>
<span #ab class={type == "ab" ? 'active' : 'inactive'}>{translate('Address book')}</span>
</div>
{!this.hidden && <SearchBar type={type} />}
{!this.hidden && <SessionStyle type={type} />}
@@ -578,7 +578,7 @@ class MultipleSessions: Reactor.Component {
function onSize() {
var w = this.$(.sessions-bar .sessions-tab).box(#width);
var len = translate('Recent Sessions').length;
var len = translate('Recent sessions').length;
var totalChars = 0;
var nEle = 0;
for (var el in this.$$(#sessions-type span)) {

View File

@@ -112,6 +112,10 @@ icon.recording {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAANpJREFUWEftltENAiEMhtsJ1NcynG6gI+gGugEOR591gppeQoIYSDBILxEeydH/57u2FMF4obE+TAOTwLoIhBDOAHBExG2n6rgR0akW640AM0sn4SWMiDycc7s8JjN7Ijro/k8NqAAR5RoeAPZxv2ggP9hCJiWZxtGbq3hqbJiBVHy4gVx8qAER8Yi4JFy6huVAKXemgb8icI+1b5KEitq0DOO/Nm1EEX1TK27p/bVvv36MOhl4EtHHbFF7jq8AoG1z08OAiFycczrkFNe6RrIet26NMQlMAuYEXiayryF/QQktAAAAAElFTkSuQmCC');
}
icon.block_input {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAjdJREFUWEe1V8tNAzEQfXOHAx2QG0UgQSqBFIIgHdABoQqOhBq4cCMlcMh90FvZq/HEXtvJxlKUZNceP783no+gY6jqNYBHAHcA+JufXTDBb37eRWTbalZqE82mz7W55v0ABMBGRCLA7PJJAKr6AiC3sT11NHyf2SEyQjvtAMKp3wBYo9VTGbYegjxxU65d5tg4YEBVbwF8ALgw2lLX4in80QqyZUEkAMLCb7P5n4hcdWifTA32Pg0bByA8AE4+oL3n9A1s7ERkEeeNAJzD/QC4OVaCAgjrU7wdK86zAHREJSKqyvvORRxVb67JFOT4NfYGpxwAqCo34oYcKxHZhOdzg7D2BhYigHj6RJ+5QbjrPezlqR61sZTOKYfztSUBWPoXpdA5FwjnC2sCGK+eiNRC8yw+oap0RiayLQHEPwf65zx7DibMoXcEEB0wq/85QJQAbEVkWbvP8f0pTFi/65ZgjtuRyJ7QYWL0OZnwTmiLDobH5nLqGDlUlcmON49jQwnsg/Wxma/VJ1zcGQIR7+OYJGyqbJWhhwlDPxh3JpNRL4Ba7nAsJckoYaFUv7UCyslBvQ3TNDWEfVsPJGH2FCkKTPAxD8ox+poFwJfZqqX15H6eYyK+TgJeriidLCJ7wAQHZ4Udy7u9iFxaG7mynEx4EF1leZDANzV7AE8i8joJICz2cvBxbExIYTZYTTQmxTxTzP+VnvC8rZlLOLEj7m5OW6JqtTs2US6247Hvy7XnX0OV05FP/gHde5fLZaGS8AAAAABJRU5ErkJggg==');
}
div.outer_buttons {
flow:vertical;
border-spacing:8;

View File

@@ -18,4 +18,4 @@
</header>
<body #handler>
</body>
</html>
</html>

View File

@@ -28,7 +28,8 @@ impl InvokeUiCM for SciterHandler {
client.audio,
client.file,
client.restart,
client.recording
client.recording,
client.block_input
),
);
}
@@ -63,7 +64,7 @@ impl InvokeUiCM for SciterHandler {
);
}
fn file_transfer_log(&self, _log: String) {}
fn file_transfer_log(&self, _action: &str, _log: &str) {}
}
impl SciterHandler {

View File

@@ -50,13 +50,14 @@ class Body: Reactor.Component
<div />
{c.is_file_transfer || c.port_forward || disconnected ? "" : <div>{translate('Permissions')}</div>}
{c.is_file_transfer || c.port_forward || disconnected ? "" : <div> <div .permissions>
<div class={!c.keyboard ? "disabled" : ""} title={translate('Allow using keyboard and mouse')}><icon .keyboard /></div>
<div class={!c.clipboard ? "disabled" : ""} title={translate('Allow using clipboard')}><icon .clipboard /></div>
<div class={!c.audio ? "disabled" : ""} title={translate('Allow hearing sound')}><icon .audio /></div>
<div class={!c.file ? "disabled" : ""} title={translate('Allow file copy and paste')}><icon .file /></div>
<div class={!c.restart ? "disabled" : ""} title={translate('Allow remote restart')}><icon .restart /></div>
<div class={!c.keyboard ? "disabled" : ""} title={translate('Enable keyboard/mouse')}><icon .keyboard /></div>
<div class={!c.clipboard ? "disabled" : ""} title={translate('Enable clipboard')}><icon .clipboard /></div>
<div class={!c.audio ? "disabled" : ""} title={translate('Enable audio')}><icon .audio /></div>
<div class={!c.file ? "disabled" : ""} title={translate('Enable file copy and paste')}><icon .file /></div>
<div class={!c.restart ? "disabled" : ""} title={translate('Enable remote restart')}><icon .restart /></div>
</div> <div .permissions style="margin-top:8px;" >
<div class={!c.recording ? "disabled" : ""} title={translate('Allow recording session')}><icon .recording /></div>
<div class={!c.recording ? "disabled" : ""} title={translate('Enable recording session')}><icon .recording /></div>
<div class={!c.block_input ? "disabled" : ""} title={translate('Enable blocking user input')} style={is_win ? "" : "display:none;"}><icon .block_input /></div>
</div></div>
}
{c.port_forward ? <div>Port Forwarding: {c.port_forward}</div> : ""}
@@ -143,6 +144,15 @@ class Body: Reactor.Component
});
}
event click $(icon.block_input) {
var { cid, connection } = this;
checkClickTime(function() {
connection.block_input = !connection.block_input;
body.update();
handler.switch_permission(cid, "block_input", connection.block_input);
});
}
event click $(button#accept) {
var { cid, connection } = this;
checkClickTime(function() {
@@ -346,7 +356,7 @@ function bring_to_top(idx=-1) {
}
}
handler.addConnection = function(id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, restart, recording) {
handler.addConnection = function(id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, restart, recording, block_input) {
stdout.println("new connection #" + id + ": " + peer_id);
var conn;
connections.map(function(c) {
@@ -368,6 +378,7 @@ handler.addConnection = function(id, is_file_transfer, port_forward, peer_id, na
name: name, authorized: authorized, time: new Date(), now: new Date(),
keyboard: keyboard, clipboard: clipboard, msgs: [], unreaded: 0,
audio: audio, file: file, restart: restart, recording: recording,
block_input:block_input,
disconnected: false
};
if (idx < 0) {

View File

@@ -196,11 +196,12 @@ class Header: Reactor.Component {
{!cursor_embedded && <li #show-remote-cursor .toggle-option><span>{svg_checkmark}</span>{translate('Show remote cursor')}</li>}
<li #show-quality-monitor .toggle-option><span>{svg_checkmark}</span>{translate('Show quality monitor')}</li>
{audio_enabled ? <li #disable-audio .toggle-option><span>{svg_checkmark}</span>{translate('Mute')}</li> : ""}
{is_win && pi.platform == 'Windows' && file_enabled ? <li #enable-file-transfer .toggle-option><span>{svg_checkmark}</span>{translate('Allow file copy and paste')}</li> : ""}
{(is_win && pi.platform == "Windows") && file_enabled ? <li #enable-file-transfer .toggle-option><span>{svg_checkmark}</span>{translate('Allow file copy and paste')}</li> : ""}
{keyboard_enabled && clipboard_enabled ? <li #disable-clipboard .toggle-option><span>{svg_checkmark}</span>{translate('Disable clipboard')}</li> : ""}
{keyboard_enabled ? <li #lock-after-session-end .toggle-option><span>{svg_checkmark}</span>{translate('Lock after session end')}</li> : ""}
{keyboard_enabled && pi.platform == "Windows" ? <li #privacy-mode><span>{svg_checkmark}</span>{translate('Privacy mode')}</li> : ""}
{keyboard_enabled && ((is_osx && pi.platform != "Mac OS") || (!is_osx && pi.platform == "Mac OS")) ? <li #allow_swap_key .toggle-option><span>{svg_checkmark}</span>{translate('Swap control-command key')}</li> : ""}
{handler.version_cmp(pi.version, '1.2.4') >= 0 ? <li #i444><span>{svg_checkmark}</span>{translate('True color (4:4:4)')}</li> : ""}
</menu>
</popup>;
}
@@ -209,12 +210,12 @@ class Header: Reactor.Component {
return <popup>
<menu.context #action-options>
{keyboard_enabled ? <li #os-password>{translate('OS Password')}<EditOsPassword /></li> : ""}
<li #transfer-file>{translate('Transfer File')}</li>
<li #tunnel>{translate('TCP Tunneling')}</li>
<li #transfer-file>{translate('Transfer file')}</li>
<li #tunnel>{translate('TCP tunneling')}</li>
{handler.get_audit_server("conn") && <li #note>{translate('Note')}</li>}
<div .separator />
{keyboard_enabled && (pi.platform == "Linux" || pi.sas_enabled) ? <li #ctrl-alt-del>{translate('Insert')} Ctrl + Alt + Del</li> : ""}
{restart_enabled && (pi.platform == "Linux" || pi.platform == "Windows" || pi.platform == "Mac OS") ? <li #restart_remote_device>{translate('Restart Remote Device')}</li> : ""}
{restart_enabled && (pi.platform == "Linux" || pi.platform == "Windows" || pi.platform == "Mac OS") ? <li #restart_remote_device>{translate('Restart remote device')}</li> : ""}
{keyboard_enabled ? <li #lock-screen>{translate('Insert Lock')}</li> : ""}
{keyboard_enabled && pi.platform == "Windows" && pi.sas_enabled ? <li #block-input>{translate("Block user input")}</li> : ""}
<li #refresh>{translate('Refresh')}</li>
@@ -365,7 +366,7 @@ class Header: Reactor.Component {
event click $(#restart_remote_device) {
msgbox(
"restart-confirmation",
translate("Restart Remote Device"),
translate("Restart remote device"),
translate("Are you sure you want to restart") + " " + pi.username + "@" + pi.hostname + "(" + get_id() + ") ?",
"",
function(res=null) {
@@ -402,6 +403,8 @@ class Header: Reactor.Component {
togglePrivacyMode(me.id);
} else if (me.id == "show-quality-monitor") {
toggleQualityMonitor(me.id);
} else if (me.id == "i444") {
toggleI444(me.id);
} else if (me.attributes.hasClass("toggle-option")) {
handler.toggle_option(me.id);
toggleMenuState();
@@ -476,7 +479,7 @@ function toggleMenuState() {
for (var el in $$(menu#keyboard-options>li)) {
el.attributes.toggleClass("selected", values.indexOf(el.id) >= 0);
}
for (var id in ["show-remote-cursor", "show-quality-monitor", "disable-audio", "enable-file-transfer", "disable-clipboard", "lock-after-session-end", "allow_swap_key"]) {
for (var id in ["show-remote-cursor", "show-quality-monitor", "disable-audio", "enable-file-transfer", "disable-clipboard", "lock-after-session-end", "allow_swap_key", "i444"]) {
var el = self.select('#' + id);
if (el) {
var value = handler.get_toggle_option(id);
@@ -563,6 +566,12 @@ function toggleQualityMonitor(name) {
toggleMenuState();
}
function toggleI444(name) {
handler.toggle_option(name);
handler.change_prefer_codec();
toggleMenuState();
}
handler.updateBlockInputState = function(input_blocked) {
if (!input_blocked) {
handler.toggle_option("block-input");

View File

@@ -33,7 +33,7 @@ class ConnectStatus: Reactor.Component {
<div .connect-status>
<span class={"connect-status-icon connect-status" + (service_stopped ? 0 : connect_status)} />
{this.getConnectStatusStr()}
{service_stopped ? <span .link #start-service>{translate('Start Service')}</span> : ""}
{service_stopped ? <span .link #start-service>{translate('Start service')}</span> : ""}
</div>;
}
@@ -93,7 +93,7 @@ class DirectServer: Reactor.Component {
}
function render() {
var text = translate("Enable Direct IP Access");
var text = translate("Enable direct IP access");
var enabled = handler.get_option("direct-server") == "Y";
var cls = enabled ? "selected" : "line-through";
return <li class={cls}><span>{svg_checkmark}</span>{text}{enabled && <EditDirectAccessPort />}</li>;
@@ -249,7 +249,7 @@ class Enhancements: Reactor.Component {
var ts1 = handler.get_option("allow-auto-record-incoming") == 'Y' ? { checked: true } : {};
msgbox("custom-recording", translate('Recording'),
<div .form>
<div><button|checkbox(enable_record_session) {ts0}>{translate('Enable Recording Session')}</button></div>
<div><button|checkbox(enable_record_session) {ts0}>{translate('Enable recording session')}</button></div>
<div><button|checkbox(auto_record_incoming) {ts1}>{translate('Automatically record incoming sessions')}</button></div>
<div>
<div style="word-wrap:break-word"><span>{translate("Directory")}:&nbsp;&nbsp;</span><span #folderPath>{dir}</span></div>
@@ -301,12 +301,13 @@ class MyIdMenu: Reactor.Component {
var username = handler.get_local_option("access_token") ? getUserName() : '';
return <popup>
<menu.context #config-options>
<li #enable-keyboard><span>{svg_checkmark}</span>{translate('Enable Keyboard/Mouse')}</li>
<li #enable-clipboard><span>{svg_checkmark}</span>{translate('Enable Clipboard')}</li>
<li #enable-file-transfer><span>{svg_checkmark}</span>{translate('Enable File Transfer')}</li>
<li #enable-remote-restart><span>{svg_checkmark}</span>{translate('Enable Remote Restart')}</li>
<li #enable-tunnel><span>{svg_checkmark}</span>{translate('Enable TCP Tunneling')}</li>
<li #enable-lan-discovery><span>{svg_checkmark}</span>{translate('Enable LAN Discovery')}</li>
<li #enable-keyboard><span>{svg_checkmark}</span>{translate('Enable keyboard/mouse')}</li>
<li #enable-clipboard><span>{svg_checkmark}</span>{translate('Enable clipboard')}</li>
<li #enable-file-transfer><span>{svg_checkmark}</span>{translate('Enable file transfer')}</li>
<li #enable-remote-restart><span>{svg_checkmark}</span>{translate('Enable remote restart')}</li>
<li #enable-tunnel><span>{svg_checkmark}</span>{translate('Enable TCP tunneling')}</li>
{is_win ? <li #enable-block-input><span>{svg_checkmark}</span>{translate('Enable blocking user input')}</li> : ""}
<li #enable-lan-discovery><span>{svg_checkmark}</span>{translate('Enable LAN discovery')}</li>
<AudioInputs />
<Enhancements />
<li #allow-remote-config-modification><span>{svg_checkmark}</span>{translate('Enable remote configuration modification')}</li>
@@ -315,7 +316,7 @@ class MyIdMenu: Reactor.Component {
<li #whitelist title={translate('whitelist_tip')}>{translate('IP Whitelisting')}</li>
<li #socks5-server>{translate('Socks5 Proxy')}</li>
<div .separator />
<li #stop-service class={service_stopped ? "line-through" : "selected"}><span>{svg_checkmark}</span>{translate("Enable Service")}</li>
<li #stop-service class={service_stopped ? "line-through" : "selected"}><span>{svg_checkmark}</span>{translate("Enable service")}</li>
{handler.is_rdp_service_open() ? <ShareRdp /> : ""}
<DirectServer />
{false && handler.using_public_server() && <li #allow-always-relay><span>{svg_checkmark}</span>{translate('Always connect via relay')}</li>}
@@ -578,7 +579,7 @@ class App: Reactor.Component
<div .title>{translate('Control Remote Desktop')}</div>
<ID @{this.remote_id} />
<div .right-buttons>
<button .button .outline #file-transfer>{translate('Transfer File')}</button>
<button .button .outline #file-transfer>{translate('Transfer file')}</button>
<button .button #connect>{translate('Connect')}</button>
</div>
</div>
@@ -1016,7 +1017,7 @@ updatePasswordArea();
class ID: Reactor.Component {
function render() {
return <input type="text" #remote_id .outline-focus novalue={translate("Enter Remote ID")} maxlength="21"
return <input type="text" #remote_id .outline-focus novalue={translate("Enter Remote ID")}
value={formatId(handler.get_remote_id())} />;
}

View File

@@ -131,7 +131,8 @@ impl InvokeUiSession for SciterHandler {
status.target_bitrate.map_or(Value::null(), |it| it.into()),
status
.codec_format
.map_or(Value::null(), |it| it.to_string().into())
.map_or(Value::null(), |it| it.to_string().into()),
status.chroma.map_or(Value::null(), |it| it.into())
),
);
}
@@ -481,8 +482,7 @@ impl sciter::EventHandler for SciterSession {
impl SciterSession {
pub fn new(cmd: String, id: String, password: String, args: Vec<String>) -> Self {
let force_relay = args.contains(&"--relay".to_string());
let session: Session<SciterHandler> = Session {
id: id.clone(),
let mut session: Session<SciterHandler> = Session {
password: password.clone(),
args,
server_keyboard_enabled: Arc::new(RwLock::new(true)),

View File

@@ -510,17 +510,21 @@ class QualityMonitor: Reactor.Component
<div>
Codec: {qualityMonitorData[4]}
</div>
<div>
Chroma: {qualityMonitorData[5]}
</div>
</div>;
}
}
$(#quality-monitor).content(<QualityMonitor />);
handler.updateQualityStatus = function(speed, fps, delay, bitrate, codec_format) {
handler.updateQualityStatus = function(speed, fps, delay, bitrate, codec_format, chroma) {
speed ? qualityMonitorData[0] = speed:null;
fps ? qualityMonitorData[1] = fps:null;
delay ? qualityMonitorData[2] = delay:null;
bitrate ? qualityMonitorData[3] = bitrate:null;
codec_format ? qualityMonitorData[4] = codec_format:null;
chroma ? qualityMonitorData[5] = chroma:null;
qualityMonitor.update();
}

View File

@@ -1,6 +1,6 @@
#[cfg(any(target_os = "android", target_os = "ios", feature = "flutter"))]
use std::iter::FromIterator;
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
use std::sync::Arc;
use std::{
collections::HashMap,
@@ -15,11 +15,11 @@ use std::{
use crate::ipc::Connection;
#[cfg(not(any(target_os = "ios")))]
use crate::ipc::{self, Data};
#[cfg(windows)]
use clipboard::{cliprdr::CliprdrClientContext, empty_clipboard, ContextSend};
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
use clipboard::ContextSend;
#[cfg(not(any(target_os = "android", target_os = "ios")))]
use hbb_common::tokio::sync::mpsc::unbounded_channel;
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
use hbb_common::tokio::sync::Mutex as TokioMutex;
use hbb_common::{
allow_err,
@@ -34,6 +34,7 @@ use hbb_common::{
sync::mpsc::{self, UnboundedSender},
task::spawn_blocking,
},
ResultType,
};
use serde_derive::Serialize;
@@ -52,6 +53,7 @@ pub struct Client {
pub file: bool,
pub restart: bool,
pub recording: bool,
pub block_input: bool,
pub from_switch: bool,
pub in_voice_call: bool,
pub incoming_voice_call: bool,
@@ -69,9 +71,9 @@ struct IpcTaskRunner<T: InvokeUiCM> {
close: bool,
running: bool,
conn_id: i32,
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
file_transfer_enabled: bool,
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
file_transfer_enabled_peer: bool,
}
@@ -100,7 +102,7 @@ pub trait InvokeUiCM: Send + Clone + 'static + Sized {
fn update_voice_call_state(&self, client: &Client);
fn file_transfer_log(&self, log: String);
fn file_transfer_log(&self, action: &str, log: &str);
}
impl<T: InvokeUiCM> Deref for ConnectionManager<T> {
@@ -132,6 +134,7 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
file: bool,
restart: bool,
recording: bool,
block_input: bool,
from_switch: bool,
#[cfg(not(any(target_os = "ios")))] tx: mpsc::UnboundedSender<Data>,
) {
@@ -149,6 +152,7 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
file,
restart,
recording,
block_input,
from_switch,
#[cfg(not(any(target_os = "ios")))]
tx,
@@ -164,7 +168,7 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
}
#[inline]
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
fn is_authorized(&self, id: i32) -> bool {
CLIENTS
.read()
@@ -185,11 +189,11 @@ impl<T: InvokeUiCM> ConnectionManager<T> {
.map(|c| c.disconnected = true);
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
{
ContextSend::proc(|context: &mut CliprdrClientContext| -> u32 {
empty_clipboard(context, id);
0
let _ = ContextSend::proc(|context| -> ResultType<()> {
context.empty_clipboard(id)?;
Ok(())
});
}
@@ -328,31 +332,35 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
// for tmp use, without real conn id
let mut write_jobs: Vec<fs::TransferJob> = Vec::new();
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
let is_authorized = self.cm.is_authorized(self.conn_id);
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
let rx_clip1;
let mut rx_clip;
let _tx_clip;
#[cfg(windows)]
if is_authorized {
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
if self.conn_id > 0 && is_authorized {
log::debug!("Clipboard is enabled from client peer: type 1");
rx_clip1 = clipboard::get_rx_cliprdr_server(self.conn_id);
rx_clip = rx_clip1.lock().await;
} else {
log::debug!("Clipboard is enabled from client peer, actually useless: type 2");
let rx_clip2;
(_tx_clip, rx_clip2) = unbounded_channel::<clipboard::ClipboardFile>();
rx_clip1 = Arc::new(TokioMutex::new(rx_clip2));
rx_clip = rx_clip1.lock().await;
}
#[cfg(not(windows))]
#[cfg(not(any(target_os = "windows", target_os = "linux", target_os = "macos")))]
{
(_tx_clip, rx_clip) = unbounded_channel::<i32>();
}
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
{
if ContextSend::is_enabled() {
log::debug!("Clipboard is enabled");
allow_err!(
self.stream
.send(&Data::ClipboardFile(clipboard::ClipboardFile::MonitorReady))
@@ -373,11 +381,11 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
}
Ok(Some(data)) => {
match data {
Data::Login{id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, file_transfer_enabled: _file_transfer_enabled, restart, recording, from_switch} => {
Data::Login{id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, file_transfer_enabled: _file_transfer_enabled, restart, recording, block_input, from_switch} => {
log::debug!("conn_id: {}", id);
self.cm.add_connection(id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, restart, recording, from_switch,self.tx.clone());
self.cm.add_connection(id, is_file_transfer, port_forward, peer_id, name, authorized, keyboard, clipboard, audio, file, restart, recording, block_input, from_switch, self.tx.clone());
self.conn_id = id;
#[cfg(windows)]
#[cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))]
{
self.file_transfer_enabled = _file_transfer_enabled;
}
@@ -413,14 +421,14 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
handle_fs(fs, &mut write_jobs, &self.tx, Some(&tx_log)).await;
}
let log = fs::serialize_transfer_jobs(&write_jobs);
self.cm.ui_handler.file_transfer_log(log);
self.cm.ui_handler.file_transfer_log("transfer", &log);
}
Data::FileTransferLog(log) => {
self.cm.ui_handler.file_transfer_log(log);
Data::FileTransferLog((action, log)) => {
self.cm.ui_handler.file_transfer_log(&action, &log);
}
#[cfg(not(any(target_os = "android", target_os = "ios")))]
Data::ClipboardFile(_clip) => {
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os="linux", target_os = "macos"))]
{
let is_stopping_allowed = _clip.is_stopping_allowed_from_peer();
let is_clipboard_enabled = ContextSend::is_enabled();
@@ -437,14 +445,15 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
continue;
}
let conn_id = self.conn_id;
ContextSend::proc(|context: &mut CliprdrClientContext| -> u32 {
clipboard::server_clip_file(context, conn_id, _clip)
let _ = ContextSend::proc(|context| -> ResultType<()> {
context.server_clip_file(conn_id, _clip)
.map_err(|e| e.into())
});
}
}
}
Data::ClipboardFileEnabled(_enabled) => {
#[cfg(windows)]
#[cfg(any(target_os= "windows",target_os ="linux", target_os = "macos"))]
{
self.file_transfer_enabled_peer = _enabled;
}
@@ -477,12 +486,13 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
}
}
Some(data) = self.rx.recv() => {
if self.stream.send(&data).await.is_err() {
if let Err(e) = self.stream.send(&data).await {
log::error!("error encountered in IPC task, quitting: {}", e);
break;
}
match &data {
Data::SwitchPermission{name: _name, enabled: _enabled} => {
#[cfg(windows)]
#[cfg(any(target_os="linux", target_os="windows", target_os = "macos"))]
if _name == "file" {
self.file_transfer_enabled = *_enabled;
}
@@ -497,7 +507,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
},
clip_file = rx_clip.recv() => match clip_file {
Some(_clip) => {
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os ="linux", target_os = "macos"))]
{
let is_stopping_allowed = _clip.is_stopping_allowed();
let is_clipboard_enabled = ContextSend::is_enabled();
@@ -505,7 +515,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
let file_transfer_enabled_peer = self.file_transfer_enabled_peer;
let stop = is_stopping_allowed && !(is_clipboard_enabled && file_transfer_enabled && file_transfer_enabled_peer);
log::debug!(
"Process clipboard message from cm, stop: {}, is_stopping_allowed: {}, is_clipboard_enabled: {}, file_transfer_enabled: {}, file_transfer_enabled_peer: {}",
"Process clipboard message from clip, stop: {}, is_stopping_allowed: {}, is_clipboard_enabled: {}, file_transfer_enabled: {}, file_transfer_enabled_peer: {}",
stop, is_stopping_allowed, is_clipboard_enabled, file_transfer_enabled, file_transfer_enabled_peer);
if stop {
ContextSend::set_is_stopped();
@@ -519,7 +529,7 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
}
},
Some(job_log) = rx_log.recv() => {
self.cm.ui_handler.file_transfer_log(job_log);
self.cm.ui_handler.file_transfer_log("transfer", &job_log);
}
}
}
@@ -536,9 +546,9 @@ impl<T: InvokeUiCM> IpcTaskRunner<T> {
close: true,
running: true,
conn_id: 0,
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
file_transfer_enabled: false,
#[cfg(windows)]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
file_transfer_enabled_peer: false,
};
@@ -568,7 +578,13 @@ pub async fn start_ipc<T: InvokeUiCM>(cm: ConnectionManager<T>) {
}
});
#[cfg(target_os = "windows")]
#[cfg(any(
target_os = "windows",
all(
any(target_os = "linux", target_os = "macos"),
feature = "unix-file-copy-paste"
),
))]
ContextSend::enable(Config::get_option("enable-file-transfer").is_empty());
match ipc::new_listener("_cm").await {
@@ -619,6 +635,7 @@ pub async fn start_listen<T: InvokeUiCM>(
file,
restart,
recording,
block_input,
from_switch,
..
}) => {
@@ -636,6 +653,7 @@ pub async fn start_listen<T: InvokeUiCM>(
file,
restart,
recording,
block_input,
from_switch,
tx.clone(),
);

View File

@@ -1007,7 +1007,8 @@ async fn check_connect_status_(reconnect: bool, rx: mpsc::UnboundedReceiver<ipc:
let mut mouse_time = 0;
#[cfg(not(feature = "flutter"))]
let mut id = "".to_owned();
#[cfg(target_os = "windows")]
#[cfg(any(target_os = "windows", target_os = "linux", target_os = "macos"))]
#[allow(unused_mut, dead_code)]
let mut enable_file_transfer = "".to_owned();
loop {
@@ -1030,7 +1031,13 @@ async fn check_connect_status_(reconnect: bool, rx: mpsc::UnboundedReceiver<ipc:
*OPTIONS.lock().unwrap() = v;
*OPTION_SYNCED.lock().unwrap() = true;
#[cfg(target_os="windows")]
#[cfg(any(
target_os = "windows",
all(
any(target_os="linux", target_os = "macos"),
feature = "unix-file-copy-paste"
)
))]
{
let b = OPTIONS.lock().unwrap().get("enable-file-transfer").map(|x| x.to_string()).unwrap_or_default();
if b != enable_file_transfer {
@@ -1249,9 +1256,9 @@ async fn check_id(
}
// if it's relay id, return id processed, otherwise return original id
pub fn handle_relay_id(id: String) -> String {
pub fn handle_relay_id(id: &str) -> &str {
if id.ends_with(r"\r") || id.ends_with(r"/r") {
id[0..id.len() - 2].to_string()
&id[0..id.len() - 2]
} else {
id
}

View File

@@ -32,8 +32,8 @@ use hbb_common::{
use crate::client::io_loop::Remote;
use crate::client::{
check_if_retry, handle_hash, handle_login_error, handle_login_from_ui, handle_test_delay,
input_os_password, load_config, send_mouse, send_pointer_device_event,
start_video_audio_threads, FileManager, Key, LoginConfigHandler, QualityStatus, KEY_MAP,
input_os_password, send_mouse, send_pointer_device_event, start_video_audio_threads,
FileManager, Key, LoginConfigHandler, QualityStatus, KEY_MAP,
};
#[cfg(not(any(target_os = "android", target_os = "ios")))]
use crate::common::GrabState;
@@ -47,7 +47,6 @@ const CHANGE_RESOLUTION_VALID_TIMEOUT_SECS: u64 = 15;
#[derive(Clone, Default)]
pub struct Session<T: InvokeUiSession> {
pub id: String, // peer id
pub password: String,
pub args: Vec<String>,
pub lc: Arc<RwLock<LoginConfigHandler>>,
@@ -365,7 +364,7 @@ impl<T: InvokeUiSession> Session<T> {
display as usize,
w,
h,
self.id.clone(),
self.get_id(),
));
}
@@ -470,7 +469,7 @@ impl<T: InvokeUiSession> Session<T> {
pub fn send_note(&self, note: String) {
let url = self.get_audit_server("conn".to_string());
let id = self.id.clone();
let id = self.get_id();
let session_id = self.lc.read().unwrap().session_id;
std::thread::spawn(move || {
send_note(url, id, session_id, note);
@@ -514,11 +513,6 @@ impl<T: InvokeUiSession> Session<T> {
self.send(Data::AddPortForward(pf));
}
#[cfg(not(feature = "flutter"))]
pub fn get_id(&self) -> String {
self.id.clone()
}
pub fn get_option(&self, k: String) -> String {
if k.eq("remote_dir") {
return self.lc.read().unwrap().get_remote_dir();
@@ -536,7 +530,7 @@ impl<T: InvokeUiSession> Session<T> {
#[inline]
pub fn load_config(&self) -> PeerConfig {
load_config(&self.id)
self.lc.read().unwrap().load_config()
}
#[inline]
@@ -1110,7 +1104,7 @@ impl<T: InvokeUiSession> Session<T> {
match crate::ipc::connect(1000, "").await {
Ok(mut conn) => {
if conn
.send(&crate::ipc::Data::SwitchSidesRequest(self.id.to_string()))
.send(&crate::ipc::Data::SwitchSidesRequest(self.get_id()))
.await
.is_ok()
{
@@ -1286,7 +1280,7 @@ impl<T: InvokeUiSession> FileManager for Session<T> {}
#[async_trait]
impl<T: InvokeUiSession> Interface for Session<T> {
fn get_login_config_handler(&self) -> Arc<RwLock<LoginConfigHandler>> {
fn get_lch(&self) -> Arc<RwLock<LoginConfigHandler>> {
return self.lc.clone();
}
@@ -1361,7 +1355,7 @@ impl<T: InvokeUiSession> Interface for Session<T> {
#[cfg(windows)]
{
let mut path = std::env::temp_dir();
path.push(&self.id);
path.push(self.get_id());
let path = path.with_extension(crate::get_app_name().to_lowercase());
std::fs::File::create(&path).ok();
if let Some(path) = path.to_str() {
@@ -1438,7 +1432,13 @@ impl<T: InvokeUiSession> Session<T> {
#[tokio::main(flavor = "current_thread")]
pub async fn io_loop<T: InvokeUiSession>(handler: Session<T>, round: u32) {
// It is ok to call this function multiple times.
#[cfg(target_os = "windows")]
#[cfg(any(
target_os = "windows",
all(
any(target_os = "linux", target_os = "macos"),
feature = "unix-file-copy-paste"
)
))]
if !handler.is_file_transfer() && !handler.is_port_forward() {
clipboard::ContextSend::enable(true);
}
@@ -1539,16 +1539,17 @@ pub async fn io_loop<T: InvokeUiSession>(handler: Session<T>, round: u32) {
let frame_count_map: Arc<RwLock<HashMap<usize, usize>>> = Default::default();
let frame_count_map_cl = frame_count_map.clone();
let ui_handler = handler.ui_handler.clone();
let (video_sender, audio_sender, video_queue_map, decode_fps_map) = start_video_audio_threads(
handler.clone(),
move |display: usize, data: &mut scrap::ImageRgb| {
let mut write_lock = frame_count_map_cl.write().unwrap();
let count = write_lock.get(&display).unwrap_or(&0) + 1;
write_lock.insert(display, count);
drop(write_lock);
ui_handler.on_rgba(display, data);
},
);
let (video_sender, audio_sender, video_queue_map, decode_fps_map, chroma) =
start_video_audio_threads(
handler.clone(),
move |display: usize, data: &mut scrap::ImageRgb| {
let mut write_lock = frame_count_map_cl.write().unwrap();
let count = write_lock.get(&display).unwrap_or(&0) + 1;
write_lock.insert(display, count);
drop(write_lock);
ui_handler.on_rgba(display, data);
},
);
let mut remote = Remote::new(
handler,
@@ -1559,6 +1560,7 @@ pub async fn io_loop<T: InvokeUiSession>(handler: Session<T>, round: u32) {
sender,
frame_count_map,
decode_fps_map,
chroma,
);
remote.io_loop(&key, &token, round).await;
remote.sync_jobs_status_to_local().await;
@@ -1575,7 +1577,7 @@ async fn start_one_port_forward<T: InvokeUiSession>(
token: &str,
) {
if let Err(err) = crate::port_forward::listen(
handler.id.clone(),
handler.get_id(),
handler.password.clone(),
port,
handler.clone(),

View File

@@ -139,10 +139,10 @@ pub fn plug_in_index_modes(
}
pub fn reset_all() -> ResultType<()> {
let mut manager = VIRTUAL_DISPLAY_MANAGER.lock().unwrap();
if !manager.peer_index_name.is_empty() || manager.headless_index_name.is_some() {
manager.install_update_driver()?;
if let Err(e) = plug_out_peer_request(&get_virtual_displays()) {
log::error!("Failed to plug out virtual displays: {}", e);
}
let _ = plug_out_headless();
Ok(())
}