mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-10-28 00:33:06 +08:00
[feat] add system language support across desktop and mobile
This commit is contained in:
@@ -6,11 +6,12 @@
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<application android:theme="@style/AppTheme" android:label="CrossDesk"
|
||||
<application android:name=".CrossDeskApplication" android:localeConfig="@xml/locales_config"
|
||||
android:theme="@style/AppTheme" android:label="CrossDesk"
|
||||
android:icon="@mipmap/ic_launcher" android:allowBackup="false"
|
||||
android:fullBackupContent="false"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:supportsRtl="true" android:usesCleartextTraffic="false">
|
||||
android:supportsRtl="false" android:usesCleartextTraffic="false">
|
||||
<service android:name=".RemoteSessionService" android:exported="false"
|
||||
android:foregroundServiceType="specialUse">
|
||||
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
|
||||
|
||||
@@ -26,18 +26,18 @@ final class AboutPages {
|
||||
LicenseCatalog loaded;try{loaded=new LicenseCatalog(activity);}catch(Exception error){loaded=null;}catalog=loaded;
|
||||
}
|
||||
void show(){
|
||||
LinearLayout content=activity.formPage("about","关于 CrossDesk",settings);
|
||||
LinearLayout version=activity.section(content,"");value(version,"版本",applicationVersion());
|
||||
LinearLayout content=activity.formPage("about",L10n.tr("关于 CrossDesk"),settings);
|
||||
LinearLayout version=activity.section(content,"");value(version,L10n.tr("版本"),applicationVersion());
|
||||
updateRow=ui.row();updateRow.setPadding(ui.dp(16),0,ui.dp(16),0);updateRow.addView(activity.updateDot(),ui.size(8,8));
|
||||
updateLink=ui.action("",BLUE,()->open("https://crossdesk.cn"));updateLink.setGravity(Gravity.START|Gravity.CENTER_VERTICAL);updateLink.setPadding(ui.dp(8),ui.dp(12),0,ui.dp(12));updateRow.addView(updateLink,new LinearLayout.LayoutParams(0,-2,1));version.addView(updateRow);
|
||||
updateStatus=ui.text("",13,false);updateStatus.setPadding(ui.dp(16),ui.dp(8),ui.dp(16),ui.dp(8));version.addView(updateStatus);
|
||||
checkButton=ui.action("检查更新",BLUE,activity::checkAppUpdates);version.addView(checkButton);renderUpdates();ui.gap(content,28);
|
||||
checkButton=ui.action(L10n.tr("检查更新"),BLUE,activity::checkAppUpdates);version.addView(checkButton);renderUpdates();ui.gap(content,28);
|
||||
if(catalog==null){unavailable(content);return;}
|
||||
LinearLayout links=activity.section(content,"");
|
||||
activity.link(links,"软件许可","",()->component(catalog.find("crossdesk"),this::show));ui.divider(links);
|
||||
activity.link(links,"开源组件","",this::components);ui.divider(links);
|
||||
activity.link(links,"源码与构建说明","",this::source);
|
||||
activity.footer(content,"许可与版权声明可离线查阅。");
|
||||
activity.link(links,L10n.tr("软件许可"),"",()->component(catalog.find("crossdesk"),this::show));ui.divider(links);
|
||||
activity.link(links,L10n.tr("开源组件"),"",this::components);ui.divider(links);
|
||||
activity.link(links,L10n.tr("源码与构建说明"),"",this::source);
|
||||
activity.footer(content,L10n.tr("许可与版权声明可离线查阅。"));
|
||||
}
|
||||
private String applicationVersion(){
|
||||
return activity.applicationVersion();
|
||||
@@ -45,11 +45,11 @@ final class AboutPages {
|
||||
void renderUpdates(){
|
||||
if(updateStatus==null)return;
|
||||
updateRow.setVisibility(updates.updateAvailable()?View.VISIBLE:View.GONE);
|
||||
updateLink.setText("新版本可用:v"+updates.availableVersion);
|
||||
String status=!activity.hasNetworkConsent()?"完成隐私授权后可检查更新":switch(updates.status){
|
||||
case CHECKING -> "正在检查更新…";
|
||||
case UP_TO_DATE -> "当前已是最新版本";
|
||||
case FAILED -> "检查失败,请稍后重试";
|
||||
updateLink.setText(L10n.format("新版本可用:v{0}",updates.availableVersion));
|
||||
String status=!activity.hasNetworkConsent()?L10n.tr("完成隐私授权后可检查更新"):switch(updates.status){
|
||||
case CHECKING -> L10n.tr("正在检查更新…");
|
||||
case UP_TO_DATE -> L10n.tr("当前已是最新版本");
|
||||
case FAILED -> L10n.tr("检查失败,请稍后重试");
|
||||
default -> "";
|
||||
};
|
||||
updateStatus.setText(status);updateStatus.setVisibility(status.isEmpty()?View.GONE:View.VISIBLE);
|
||||
@@ -58,11 +58,11 @@ final class AboutPages {
|
||||
checkButton.setAlpha(checkButton.isEnabled()?1f:.5f);
|
||||
}
|
||||
private void components(){
|
||||
LinearLayout content=activity.formPage("open-source","开源组件",this::show);
|
||||
LinearLayout notice=activity.section(content,"OpenFEC 告知");
|
||||
paragraph(notice,"本应用使用 OpenFEC 提供前向纠错功能,遵循 CeCILL-C 1.0 许可。该许可规定了有限保证及责任限制,详情见许可全文。",SECONDARY);
|
||||
LinearLayout content=activity.formPage("open-source",L10n.tr("开源组件"),this::show);
|
||||
LinearLayout notice=activity.section(content,L10n.tr("OpenFEC 告知"));
|
||||
paragraph(notice,L10n.tr("本应用使用 OpenFEC 提供前向纠错功能,遵循 CeCILL-C 1.0 许可。该许可规定了有限保证及责任限制,详情见许可全文。"),SECONDARY);
|
||||
ui.divider(notice);paragraph(notice,"(c) Copyright 2009 - 2012 INRIA - All rights reserved",INK);ui.divider(notice);
|
||||
activity.link(notice,"OpenFEC 许可与源码","",()->component(catalog.find("openfec"),this::components));ui.gap(content,28);
|
||||
activity.link(notice,L10n.tr("OpenFEC 许可与源码"),"",()->component(catalog.find("openfec"),this::components));ui.gap(content,28);
|
||||
LinearLayout list=activity.section(content,"");boolean first=true;
|
||||
for(LicenseCatalog.Component item:catalog.components){
|
||||
if(item.id.equals("crossdesk")||item.id.equals("openfec"))continue;
|
||||
@@ -73,41 +73,41 @@ final class AboutPages {
|
||||
row.addView(labels,new LinearLayout.LayoutParams(0,-2,1));TextView chevron=ui.text(" ›",23,false);chevron.setTextColor(0xFFB7B7BD);row.addView(chevron);
|
||||
row.setContentDescription(item.name+","+item.license);row.setClickable(true);row.setFocusable(true);row.setOnClickListener(v->component(item,this::components));list.addView(row);
|
||||
}
|
||||
activity.footer(content,"各组件遵循所列开源许可证,其授予的权利不受本应用普通使用条款限制。查看源码需要网络连接。");
|
||||
activity.footer(content,L10n.tr("各组件遵循所列开源许可证,其授予的权利不受本应用普通使用条款限制。查看源码需要网络连接。"));
|
||||
}
|
||||
private void component(LicenseCatalog.Component item,Runnable back){
|
||||
LinearLayout content=activity.formPage("license:"+item.id,item.name,back);LinearLayout info=activity.section(content,"");
|
||||
String version=item.id.equals("crossdesk")?applicationVersion():item.version.length()==40?item.version.substring(0,12):item.version;
|
||||
value(info,"版本",version);ui.divider(info);value(info,"许可",item.license);ui.divider(info);
|
||||
external(info,"查看源码",item.sourceURL);
|
||||
value(info,L10n.tr("版本"),version);ui.divider(info);value(info,L10n.tr("许可"),item.license);ui.divider(info);
|
||||
external(info,L10n.tr("查看源码"),item.sourceURL);
|
||||
if(!item.buildDocuments.isEmpty()||!item.buildSourceURL.isEmpty()){
|
||||
ui.divider(info);
|
||||
if(!item.buildDocuments.isEmpty())activity.link(info,"构建配方与项目补丁","",()->buildSources(item,back));
|
||||
else external(info,"构建配方与项目补丁",item.buildSourceURL);
|
||||
if(!item.buildDocuments.isEmpty())activity.link(info,L10n.tr("构建配方与项目补丁"),"",()->buildSources(item,back));
|
||||
else external(info,L10n.tr("构建配方与项目补丁"),item.buildSourceURL);
|
||||
}
|
||||
ui.gap(content,16);LinearLayout docs=activity.section(content,"许可与版权声明");
|
||||
ui.gap(content,16);LinearLayout docs=activity.section(content,L10n.tr("许可与版权声明"));
|
||||
for(int i=0;i<item.documents.size();i++){
|
||||
if(i>0)ui.divider(docs);LicenseCatalog.Document document=item.documents.get(i);
|
||||
activity.link(docs,item.documentTitle(document),"",()->document(item.documentTitle(document),document,()->component(item,back)));
|
||||
}
|
||||
}
|
||||
private void source(){
|
||||
LinearLayout content=activity.formPage("source","源码与构建说明",this::show);
|
||||
LinearLayout info=activity.section(content,"本版本源码与构建说明");
|
||||
if(catalog.source==null){paragraph(info,"本版本源码信息暂不可用。",SECONDARY);ui.divider(info);external(info,"项目主页","https://github.com/kunkundi/crossdesk");return;}
|
||||
LinearLayout content=activity.formPage("source",L10n.tr("源码与构建说明"),this::show);
|
||||
LinearLayout info=activity.section(content,L10n.tr("本版本源码与构建说明"));
|
||||
if(catalog.source==null){paragraph(info,L10n.tr("本版本源码信息暂不可用。"),SECONDARY);ui.divider(info);external(info,L10n.tr("项目主页"),"https://github.com/kunkundi/crossdesk");return;}
|
||||
String revision=catalog.source.optString("revision","");String tag=catalog.source.isNull("tag")?"":catalog.source.optString("tag","");
|
||||
value(info,"源码版本",tag.isEmpty()?revision.substring(0,Math.min(12,revision.length())):tag);ui.divider(info);
|
||||
if(catalog.source.optBoolean("isModified")){paragraph(info,"开发版本包含尚未发布的修改,以下链接为基础版本源码。",SECONDARY);ui.divider(info);}
|
||||
external(info,"查看源码",catalog.source.optString("sourceURL",catalog.find("crossdesk").sourceURL));ui.divider(info);
|
||||
value(info,L10n.tr("源码版本"),tag.isEmpty()?revision.substring(0,Math.min(12,revision.length())):tag);ui.divider(info);
|
||||
if(catalog.source.optBoolean("isModified")){paragraph(info,L10n.tr("开发版本包含尚未发布的修改,以下链接为基础版本源码。"),SECONDARY);ui.divider(info);}
|
||||
external(info,L10n.tr("查看源码"),catalog.source.optString("sourceURL",catalog.find("crossdesk").sourceURL));ui.divider(info);
|
||||
try{
|
||||
List<LicenseCatalog.Document> documents=LicenseCatalog.documents(catalog.source.optJSONArray("buildDocuments"));
|
||||
if(!documents.isEmpty())actionLink(info,"构建说明",()->document("构建说明",documents.get(0),this::source));
|
||||
else external(info,"构建说明",catalog.source.optString("buildInstructionsURL","https://github.com/kunkundi/crossdesk"));
|
||||
}catch(org.json.JSONException error){paragraph(info,"本版本源码信息暂不可用。",SECONDARY);}
|
||||
if(!documents.isEmpty())actionLink(info,L10n.tr("构建说明"),()->document(L10n.tr("构建说明"),documents.get(0),this::source));
|
||||
else external(info,L10n.tr("构建说明"),catalog.source.optString("buildInstructionsURL","https://github.com/kunkundi/crossdesk"));
|
||||
}catch(org.json.JSONException error){paragraph(info,L10n.tr("本版本源码信息暂不可用。"),SECONDARY);}
|
||||
}
|
||||
private void buildSources(LicenseCatalog.Component item,Runnable back){
|
||||
LinearLayout content=activity.formPage("build:"+item.id,"构建配方与项目补丁",()->component(item,back));
|
||||
if(!item.buildSourceURL.isEmpty()){LinearLayout upstream=activity.section(content,"");external(upstream,"查看源码",item.buildSourceURL);ui.gap(content,28);}
|
||||
LinearLayout content=activity.formPage("build:"+item.id,L10n.tr("构建配方与项目补丁"),()->component(item,back));
|
||||
if(!item.buildSourceURL.isEmpty()){LinearLayout upstream=activity.section(content,"");external(upstream,L10n.tr("查看源码"),item.buildSourceURL);ui.gap(content,28);}
|
||||
LinearLayout docs=activity.section(content,"");
|
||||
for(int i=0;i<item.buildDocuments.size();i++){
|
||||
if(i>0)ui.divider(docs);LicenseCatalog.Document document=item.buildDocuments.get(i);
|
||||
@@ -129,10 +129,10 @@ final class AboutPages {
|
||||
private void actionLink(LinearLayout parent,String title,Runnable action){TextView link=ui.action(title,BLUE,action);link.setTypeface(android.graphics.Typeface.DEFAULT);link.setGravity(Gravity.START|Gravity.CENTER_VERTICAL);link.setPadding(ui.dp(16),ui.dp(12),ui.dp(16),ui.dp(12));parent.addView(link);}
|
||||
private void open(String url){
|
||||
Uri uri=Uri.parse(url);if(!"https".equals(uri.getScheme())&&!"http".equals(uri.getScheme()))return;
|
||||
try{activity.startActivity(new Intent(Intent.ACTION_VIEW,uri).addCategory(Intent.CATEGORY_BROWSABLE));}catch(ActivityNotFoundException error){Toast.makeText(activity,"未找到可打开链接的浏览器",Toast.LENGTH_SHORT).show();}
|
||||
try{activity.startActivity(new Intent(Intent.ACTION_VIEW,uri).addCategory(Intent.CATEGORY_BROWSABLE));}catch(ActivityNotFoundException error){Toast.makeText(activity,L10n.tr("未找到可打开链接的浏览器"),Toast.LENGTH_SHORT).show();}
|
||||
}
|
||||
private void unavailable(LinearLayout content){
|
||||
content.setGravity(Gravity.CENTER);ui.gap(content,32);TextView icon=ui.text("▤",36,false);icon.setTextColor(SECONDARY);content.addView(icon);ui.gap(content,12);
|
||||
content.addView(ui.text("无法读取开源许可",17,true));TextView message=ui.text("应用中的许可文件缺失或损坏,请重新安装应用。",14,false);message.setGravity(Gravity.CENTER);message.setTextColor(SECONDARY);content.addView(message);
|
||||
content.addView(ui.text(L10n.tr("无法读取开源许可"),17,true));TextView message=ui.text(L10n.tr("应用中的许可文件缺失或损坏,请重新安装应用。"),14,false);message.setGravity(Gravity.CENTER);message.setTextColor(SECONDARY);content.addView(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,15 +51,15 @@ final class AnnouncementView extends ScrollView {
|
||||
TextView text=ui.text(value,14,false);text.setTextColor(color);text.setLineSpacing(ui.dp(3),1);return text;
|
||||
}
|
||||
private void renderList(){
|
||||
if(inbox.deleteFailed){content.addView(message("无法删除这条公告,请重试。",RED));ui.gap(content,12);}
|
||||
if(inbox.deleteFailed){content.addView(message(L10n.tr("无法删除这条公告,请重试。"),RED));ui.gap(content,12);}
|
||||
if(!inbox.isConnected()){
|
||||
content.addView(message("连接服务器后可获取最新公告。",SECONDARY));
|
||||
content.addView(ui.action("连接服务器",BLUE,authorize));ui.gap(content,8);
|
||||
content.addView(message(L10n.tr("连接服务器后可获取最新公告。"),SECONDARY));
|
||||
content.addView(ui.action(L10n.tr("连接服务器"),BLUE,authorize));ui.gap(content,8);
|
||||
}else if(inbox.failed){
|
||||
LinearLayout error=ui.row();error.addView(message("公告加载失败,请重试。",SECONDARY),new LinearLayout.LayoutParams(0,-2,1));
|
||||
error.addView(ui.action("重试",BLUE,inbox::refresh),ui.size(64,48));content.addView(error);ui.gap(content,8);
|
||||
LinearLayout error=ui.row();error.addView(message(L10n.tr("公告加载失败,请重试。"),SECONDARY),new LinearLayout.LayoutParams(0,-2,1));
|
||||
error.addView(ui.action(L10n.tr("重试"),BLUE,inbox::refresh),ui.size(64,48));content.addView(error);ui.gap(content,8);
|
||||
}
|
||||
countLabel=ui.text("共 "+inbox.total+" 条 · "+inbox.unread+" 条未读",13,false);
|
||||
countLabel=ui.text(L10n.format("共 {0} 条 · {1} 条未读",inbox.total,inbox.unread),13,false);
|
||||
countLabel.setTextColor(SECONDARY);countLabel.setPadding(ui.dp(16),ui.dp(8),0,ui.dp(8));content.addView(countLabel);
|
||||
LinearLayout card=ui.column();ui.card(card,12);content.addView(card);
|
||||
for(AnnouncementInbox.Item item:inbox.items){
|
||||
@@ -69,11 +69,11 @@ final class AnnouncementView extends ScrollView {
|
||||
if(inbox.loading){
|
||||
LinearLayout loading=ui.row();loading.setGravity(Gravity.CENTER);loading.setPadding(0,ui.dp(18),0,ui.dp(18));
|
||||
ProgressBar spinner=new ProgressBar(getContext());spinner.setIndeterminateTintList(ColorStateList.valueOf(BLUE));loading.addView(spinner,ui.size(20,20));
|
||||
TextView label=message("加载中…",SECONDARY);label.setPadding(ui.dp(10),0,0,0);loading.addView(label);card.addView(loading);
|
||||
TextView label=message(L10n.tr("加载中…"),SECONDARY);label.setPadding(ui.dp(10),0,0,0);loading.addView(label);card.addView(loading);
|
||||
}else if(inbox.items.size()<inbox.total&&!inbox.failed){
|
||||
TextView more=ui.action("加载更多",BLUE,inbox::loadMore);more.setEnabled(inbox.isConnected());card.addView(more,ui.size(-1,48));
|
||||
TextView more=ui.action(L10n.tr("加载更多"),BLUE,inbox::loadMore);more.setEnabled(inbox.isConnected());card.addView(more,ui.size(-1,48));
|
||||
}else if(inbox.loaded&&inbox.total==0&&!inbox.failed&&inbox.isConnected()){
|
||||
TextView empty=message("暂无公告",SECONDARY);empty.setGravity(Gravity.CENTER);card.addView(empty,ui.size(-1,120));
|
||||
TextView empty=message(L10n.tr("暂无公告"),SECONDARY);empty.setGravity(Gravity.CENTER);card.addView(empty,ui.size(-1,120));
|
||||
}
|
||||
}
|
||||
private View itemRow(AnnouncementInbox.Item item){
|
||||
@@ -86,23 +86,23 @@ final class AnnouncementView extends ScrollView {
|
||||
words.addView(title,ui.size(-1,-2));ui.gap(words,7);TextView date=ui.text(date(item),12,false);date.setTextColor(SECONDARY);words.addView(date);
|
||||
top.addView(words,new LinearLayout.LayoutParams(0,-2,1));row.addView(top,new LinearLayout.LayoutParams(0,-2,1));
|
||||
TextView chevron=ui.text("›",23,false);chevron.setTextColor(0xFFB7B7BD);chevron.setPadding(ui.dp(10),0,0,0);row.addView(chevron);
|
||||
row.setContentDescription(item.title+","+date(item)+","+(item.read?"已读":"未读"));row.setFocusable(true);
|
||||
row.setContentDescription(item.title+","+date(item)+","+(item.read?L10n.tr("已读"):L10n.tr("未读")));row.setFocusable(true);
|
||||
row.setOnClickListener(v->open.accept(item));row.setOnLongClickListener(v->{confirmDelete(item);return true;});
|
||||
return new SwipeRow(row,()->confirmDelete(item));
|
||||
}
|
||||
private void confirmDelete(AnnouncementInbox.Item item){
|
||||
if(deleteDialog!=null)deleteDialog.dismiss();
|
||||
deleteDialog=new AlertDialog.Builder(getContext()).setTitle("删除公告").setMessage("删除这条公告?")
|
||||
.setNegativeButton("取消",null).setPositiveButton("删除",(dialog,which)->inbox.dismiss(item)).show();
|
||||
deleteDialog=new AlertDialog.Builder(getContext()).setTitle(L10n.tr("删除公告")).setMessage(L10n.tr("删除这条公告?"))
|
||||
.setNegativeButton(L10n.tr("取消"),null).setPositiveButton(L10n.tr("删除"),(dialog,which)->inbox.dismiss(item)).show();
|
||||
}
|
||||
private void renderDetail(){
|
||||
AnnouncementInbox.Item item=inbox.find(id,revision);
|
||||
if(item==null){content.addView(message("这条公告已更新或删除,请返回公告列表查看。",SECONDARY));return;}
|
||||
if(item==null){content.addView(message(L10n.tr("这条公告已更新或删除,请返回公告列表查看。"),SECONDARY));return;}
|
||||
content.addView(ui.text(item.title,22,true));ui.gap(content,16);
|
||||
TextView date=ui.text(date(item)+" · "+(item.read?"已读":"未读"),12,false);date.setTextColor(SECONDARY);content.addView(date);ui.gap(content,16);
|
||||
TextView date=ui.text(date(item)+" · "+(item.read?L10n.tr("已读"):L10n.tr("未读")),12,false);date.setTextColor(SECONDARY);content.addView(date);ui.gap(content,16);
|
||||
if(inbox.readSaveFailed){
|
||||
content.addView(message("无法保存本地阅读状态,请重试。",RED));
|
||||
content.addView(ui.action("重试保存阅读状态",BLUE,()->inbox.markRead(item)));ui.gap(content,16);
|
||||
content.addView(message(L10n.tr("无法保存本地阅读状态,请重试。"),RED));
|
||||
content.addView(ui.action(L10n.tr("重试保存阅读状态"),BLUE,()->inbox.markRead(item)));ui.gap(content,16);
|
||||
}
|
||||
TextView body=ui.text("",17,false);body.setText(AnnouncementText.format(item.body));body.setTextIsSelectable(true);
|
||||
body.setMovementMethod(LinkMovementMethod.getInstance());body.setLinksClickable(true);body.setLinkTextColor(BLUE);body.setLineSpacing(ui.dp(4),1);
|
||||
@@ -127,7 +127,7 @@ final class AnnouncementView extends ScrollView {
|
||||
trackPull(event);
|
||||
if(!pulling)return super.onTouchEvent(event);
|
||||
boolean reached=event.getY()-downY>=ui.dp(72);
|
||||
if(event.getActionMasked()==MotionEvent.ACTION_MOVE&&countLabel!=null)countLabel.setText(reached?"松开刷新":"下拉刷新");
|
||||
if(event.getActionMasked()==MotionEvent.ACTION_MOVE&&countLabel!=null)countLabel.setText(reached?L10n.tr("松开刷新"):L10n.tr("下拉刷新"));
|
||||
if(event.getActionMasked()==MotionEvent.ACTION_UP||event.getActionMasked()==MotionEvent.ACTION_CANCEL){
|
||||
pulling=false;if(reached&&event.getActionMasked()==MotionEvent.ACTION_UP)inbox.refresh();else render();
|
||||
}
|
||||
@@ -142,7 +142,7 @@ final class AnnouncementView extends ScrollView {
|
||||
private boolean dragging;
|
||||
SwipeRow(View front,Runnable delete){
|
||||
super(ui.context);this.front=front;setClipChildren(true);
|
||||
remove=ui.action("删除",Color.WHITE,delete);remove.setBackgroundColor(RED);
|
||||
remove=ui.action(L10n.tr("删除"),Color.WHITE,delete);remove.setBackgroundColor(RED);
|
||||
remove.setVisibility(INVISIBLE);
|
||||
remove.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);remove.setFocusable(false);
|
||||
addView(remove,new FrameLayout.LayoutParams(ui.dp(76),-1,Gravity.END));addView(front,new FrameLayout.LayoutParams(-1,-2));
|
||||
|
||||
@@ -46,7 +46,7 @@ final class BackgroundSession implements NativeSession.Listener {
|
||||
if (listener != null) listener.ended(reason);
|
||||
}
|
||||
@Override public void ended(String reason) { finish(reason); }
|
||||
@Override public void passwordRejected() { finish("远端访问密码已失效,请重新连接"); }
|
||||
@Override public void passwordRejected() { finish(L10n.tr("远端访问密码已失效,请重新连接")); }
|
||||
@Override public void connected() { /* Already connected before the service takes ownership. */ }
|
||||
@Override public void status(String message) { if (view != null) view.status(message); }
|
||||
@Override public void signaling(int state, String id) {
|
||||
@@ -75,8 +75,8 @@ final class BackgroundSession implements NativeSession.Listener {
|
||||
@Override public void statistics(RemoteNetworkStatistics.Snapshot value) { if (view != null) view.statistics(value); }
|
||||
@Override public void fileTransfer(String name, double progress, boolean sending, File received) {
|
||||
if (received != null) receivedFile = received;
|
||||
fileStatus = progress < 0 ? name + " 传输失败" : (sending ? "发送 " : "接收 ") + name
|
||||
+ (progress >= 1 ? " · 已完成" : " · " + (int)(progress * 100) + "%");
|
||||
fileStatus = progress < 0 ? L10n.format("{0} 传输失败", name) : (sending ? L10n.tr("发送 ") : L10n.tr("接收 ")) + name
|
||||
+ (progress >= 1 ? L10n.tr(" · 已完成") : " · " + (int)(progress * 100) + "%");
|
||||
if (view != null) view.fileTransfer(name, progress, sending, received);
|
||||
}
|
||||
@Override public void controlFeedback(String text) { if (view != null) view.controlFeedback(text); }
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package cn.crossdesk.mobile;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
/** Initialize localization before any activity, background service or model. */
|
||||
public final class CrossDeskApplication extends Application {
|
||||
@Override public void onCreate() {
|
||||
super.onCreate();
|
||||
L10n.initialize(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package cn.crossdesk.mobile;
|
||||
|
||||
import android.content.Context;
|
||||
import java.util.Locale;
|
||||
|
||||
/** Native resource lookup; never translates remote content, file names or protocol data. */
|
||||
final class L10n {
|
||||
private static volatile Context application;
|
||||
static void initialize(Context context) { application = context.getApplicationContext(); }
|
||||
static String tr(String key) {
|
||||
Context context = application;
|
||||
Integer id = LocalizationKeys.IDS.get(key);
|
||||
return context == null || id == null ? key : context.getString(id);
|
||||
}
|
||||
static String format(String key, Object... args) {
|
||||
java.util.regex.Matcher matcher = java.util.regex.Pattern.compile("\\{(\\d+)\\}").matcher(tr(key));
|
||||
StringBuffer result = new StringBuffer();
|
||||
while (matcher.find()) {
|
||||
int index = Integer.parseInt(matcher.group(1));
|
||||
String value = index < args.length ? String.valueOf(args[index]) : matcher.group();
|
||||
matcher.appendReplacement(result, java.util.regex.Matcher.quoteReplacement(value));
|
||||
}
|
||||
matcher.appendTail(result);
|
||||
return result.toString();
|
||||
}
|
||||
static boolean isChinese() {
|
||||
Context context = application;
|
||||
Locale locale = context == null ? Locale.getDefault()
|
||||
: context.getResources().getConfiguration().getLocales().get(0);
|
||||
return locale.getLanguage().equals("zh");
|
||||
}
|
||||
private L10n() {}
|
||||
}
|
||||
@@ -28,9 +28,9 @@ final class LicenseCatalog {
|
||||
if(documents.isEmpty())throw new JSONException("Missing documents");
|
||||
}
|
||||
String documentTitle(Document document){
|
||||
if(document.title.equals("Source copyright and license notices"))return "版权与许可声明";
|
||||
if(document.title.equals("apps/android/licenses/OPEN_SOURCE_NOTICE.txt"))return "开源软件权利说明";
|
||||
if(id.equals("crossdesk")&&document.title.equals("LICENSE"))return "GNU GPL 第 3 版";
|
||||
if(document.title.equals("Source copyright and license notices"))return L10n.tr("版权与许可声明");
|
||||
if(document.title.equals("apps/android/licenses/OPEN_SOURCE_NOTICE.txt"))return L10n.tr("开源软件权利说明");
|
||||
if(id.equals("crossdesk")&&document.title.equals("LICENSE"))return L10n.tr("GNU GPL 第 3 版");
|
||||
return document.title;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,316 @@
|
||||
package cn.crossdesk.mobile;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/** Generated resource keys; text and locale selection live in Android resources. */
|
||||
final class LocalizationKeys {
|
||||
static final Map<String, Integer> IDS = new HashMap<>();
|
||||
static {
|
||||
IDS.put(" · 已完成", R.string.text_58b6df1059088699);
|
||||
IDS.put(" 传输失败", R.string.text_53af552fb3af7f6e);
|
||||
IDS.put(" 台设备", R.string.text_23ebae95d26dfe5e);
|
||||
IDS.put(" 条 · ", R.string.text_a7f4dfd234a43b16);
|
||||
IDS.put(" 条未读", R.string.text_2c894057fc526576);
|
||||
IDS.put("CrossDesk 远程连接", R.string.text_d0ac753c6681e578);
|
||||
IDS.put("GNU GPL 第 3 版", R.string.text_0991c6fc1de4ffd6);
|
||||
IDS.put("OpenFEC 告知", R.string.text_5ae7dc4079223967);
|
||||
IDS.put("OpenFEC 许可与源码", R.string.text_69ad29820a259526);
|
||||
IDS.put("P2P 直连", R.string.text_63ae4a0c7a448d21);
|
||||
IDS.put("SRTP 已启用", R.string.text_70cae3c6aad8e152);
|
||||
IDS.put("TURN 中继", R.string.text_ef813fec7d6d8a3b);
|
||||
IDS.put("{0} 传输失败", R.string.text_ebede975edd52aee);
|
||||
IDS.put("{0} 台设备", R.string.text_b3ffb6e982ecf5df);
|
||||
IDS.put("{0} 条未读", R.string.text_fc66a78b9e27fecf);
|
||||
IDS.put("{0},接收 {1},发送 {2},丢包率 {3}", R.string.text_dcb59cdcf66150a1);
|
||||
IDS.put("● 已连接", R.string.text_01965b3249458d01);
|
||||
IDS.put("下拉刷新", R.string.text_eb4236fe6a926a5a);
|
||||
IDS.put("丢包率", R.string.text_37772187ab854191);
|
||||
IDS.put("中", R.string.text_a567bdaa11367f26);
|
||||
IDS.put("优先保持画面流畅,带宽或编码压力较大时会更积极地降低分辨率。", R.string.text_e6ff95a9fe6acc7f);
|
||||
IDS.put("低", R.string.text_aa9e366f68d3d097);
|
||||
IDS.put("使用自定义服务器", R.string.text_f03d03eb35e3330c);
|
||||
IDS.put("保存密码", R.string.text_2e9f4819e064ce12);
|
||||
IDS.put("保存收到的文件", R.string.text_10019cef593819ed);
|
||||
IDS.put("保存远程画面预览", R.string.text_3bcdcd330bb3044c);
|
||||
IDS.put("保存远程画面预览?", R.string.text_0f197074373e38fd);
|
||||
IDS.put("信令连接中断,请重新连接", R.string.text_71ca53f95a8484da);
|
||||
IDS.put("公告加载失败,请重试。", R.string.text_789f22a8b1b34797);
|
||||
IDS.put("公告详情", R.string.text_00554b17c432937e);
|
||||
IDS.put("共 ", R.string.text_2428420e407fe2e8);
|
||||
IDS.put("共 {0} 条 · {1} 条未读", R.string.text_d977c7568cc5201e);
|
||||
IDS.put("关于", R.string.text_52d25a9e30ba94f1);
|
||||
IDS.put("关于 CrossDesk", R.string.text_459c1e980c1c8ce2);
|
||||
IDS.put("关于,有新版本", R.string.text_390a95b65eb33052);
|
||||
IDS.put("关闭", R.string.text_3fd47edce45b3603);
|
||||
IDS.put("关闭控制栏", R.string.text_56a18c93e12fdc4e);
|
||||
IDS.put("关闭隐私屏", R.string.text_4eb0565cc4658d7f);
|
||||
IDS.put("兼顾清晰度和流畅度,只在持续压力下逐步降低分辨率。", R.string.text_7d466b69be42fc43);
|
||||
IDS.put("分辨率", R.string.text_b92421822c213c2b);
|
||||
IDS.put("删除", R.string.text_2f9daa828907b93f);
|
||||
IDS.put("删除公告", R.string.text_0e46cdb3442edfba);
|
||||
IDS.put("删除记录", R.string.text_f2cf9101bb2d8816);
|
||||
IDS.put("删除这条公告?", R.string.text_d087671ca7df7f0f);
|
||||
IDS.put("刷新公告", R.string.text_33e7584cd5c252d7);
|
||||
IDS.put("剪贴板", R.string.text_8c10e2c1728ddf8e);
|
||||
IDS.put("加载中…", R.string.text_4927a53bcc886afb);
|
||||
IDS.put("加载更多", R.string.text_af90a08fec8ee28d);
|
||||
IDS.put("升级提示", R.string.text_a739f24a9fd8a5d9);
|
||||
IDS.put("原生连接初始化失败", R.string.text_861521c9e107c648);
|
||||
IDS.put("发送", R.string.text_edecf0ae6e5144f9);
|
||||
IDS.put("发送 ", R.string.text_43b7b60867ca51e7);
|
||||
IDS.put("发送后,在远程键盘中点击“粘贴”。接收的远端文本可手动复制到本机。", R.string.text_da7df5a5543c4ba1);
|
||||
IDS.put("发送文件", R.string.text_e7281fbca7af369c);
|
||||
IDS.put("发送文本", R.string.text_ce6c02d19022e016);
|
||||
IDS.put("取消", R.string.text_2cd0f3be8738a86c);
|
||||
IDS.put("取消连接", R.string.text_3687f953cfe85fb8);
|
||||
IDS.put("各组件遵循所列开源许可证,其授予的权利不受本应用普通使用条款限制。查看源码需要网络连接。", R.string.text_72814b15a6fa152c);
|
||||
IDS.put("合计", R.string.text_e009c148d1890dac);
|
||||
IDS.put("同意并继续", R.string.text_81c92013219dd115);
|
||||
IDS.put("后台保持连接,点按返回远程桌面", R.string.text_409696774c9998ce);
|
||||
IDS.put("后台保活未能启动,请保持应用在前台", R.string.text_dcb8d4e2e6973912);
|
||||
IDS.put("后台保活未能启动,请保持应用在前台后重新连接", R.string.text_d96a21463557171d);
|
||||
IDS.put("后台连接已结束,请重新连接", R.string.text_952f7300de0a7bd9);
|
||||
IDS.put("后台连接服务已停止,请重新连接", R.string.text_da904f715e1cff87);
|
||||
IDS.put("后续连接仍会保存新的预览图。", R.string.text_0812359e18082071);
|
||||
IDS.put("在线", R.string.text_b9086662b1df1f20);
|
||||
IDS.put("填写主机名或 IPv4 地址,不含协议和路径", R.string.text_39f2f444a042643e);
|
||||
IDS.put("声音", R.string.text_473400815c0f687d);
|
||||
IDS.put("复制远端文本", R.string.text_ab5ca1fab212f4ca);
|
||||
IDS.put("始终保持较高分辨率,带宽不足时通过降低帧率来保证画面清晰度。", R.string.text_c92269b2039e7aa3);
|
||||
IDS.put("媒体加密", R.string.text_7ff73de85ec16d15);
|
||||
IDS.put("字母数字", R.string.text_22dc6217af77bc37);
|
||||
IDS.put("安全存储或证书初始化失败,请重试或清除应用数据", R.string.text_9ca1cdaf831182e3);
|
||||
IDS.put("完成", R.string.text_c0b3fbff51ccc40b);
|
||||
IDS.put("完成隐私授权后可检查更新", R.string.text_678328f6f02881c7);
|
||||
IDS.put("完成隐私授权后登记本机身份", R.string.text_c4361f9abdba4882);
|
||||
IDS.put("密码保存失败,本次连接仍可使用", R.string.text_c29b888e357d727d);
|
||||
IDS.put("密码将加密保存在本机 Android Keystore 中", R.string.text_3f31300a23afb390);
|
||||
IDS.put("对端 ID", R.string.text_8d3b052c4c67acda);
|
||||
IDS.put("对端 ID ", R.string.text_0512084e130984bc);
|
||||
IDS.put("对端 ID {0}", R.string.text_c5147d65960196b0);
|
||||
IDS.put("将删除本机保存的所有远程预览图,保留连接记录和密码。", R.string.text_882b705d31ac7e2a);
|
||||
IDS.put("屏幕方向", R.string.text_60cc99cc0013972e);
|
||||
IDS.put("展开远程控制菜单", R.string.text_9e7294d264afecb7);
|
||||
IDS.put("已从通知断开远程连接", R.string.text_9343612ee473edd6);
|
||||
IDS.put("已保存密码", R.string.text_9d32476fe83aef60);
|
||||
IDS.put("已保存密码无法读取,请重新输入", R.string.text_1cbd391383283924);
|
||||
IDS.put("已保存的密码未能保留,请重新输入一次", R.string.text_6792b9f341380c68);
|
||||
IDS.put("已发送 Ctrl+Alt+Del", R.string.text_74d3f0927d465047);
|
||||
IDS.put("已启用后台保活,切换应用可继续保持连接", R.string.text_c28d86acbedba3b6);
|
||||
IDS.put("已启用后台保活,可从连接通知返回或断开", R.string.text_506409ec08cb2a79);
|
||||
IDS.put("已授权", R.string.text_521e65ffc7d0ff2d);
|
||||
IDS.put("已读", R.string.text_efdd1a47e4beb2f9);
|
||||
IDS.put("已连接 ", R.string.text_1f672b9b18d18e87);
|
||||
IDS.put("已连接服务器", R.string.text_9c05d9d7fa1b0abd);
|
||||
IDS.put("帧率", R.string.text_f9404bf335bc14cf);
|
||||
IDS.put("帧率优先", R.string.text_9ae0c69e26db1d6a);
|
||||
IDS.put("平衡", R.string.text_df544e46aa4d5c17);
|
||||
IDS.put("应用中的许可文件缺失或损坏,请重新安装应用。", R.string.text_3362e8fa7f65cc2f);
|
||||
IDS.put("开发版本包含尚未发布的修改,以下链接为基础版本源码。", R.string.text_3f2904435942cc0f);
|
||||
IDS.put("开启保存", R.string.text_4338afaad52ea445);
|
||||
IDS.put("开启隐私屏", R.string.text_c8bb8255390df3b6);
|
||||
IDS.put("开源组件", R.string.text_c6ecaca362ae1c80);
|
||||
IDS.put("开源软件权利说明", R.string.text_6099db946bdb5ee4);
|
||||
IDS.put("当前已是最新版本", R.string.text_6e86570183c3cdd0);
|
||||
IDS.put("当前远端不支持直接输入此文本,请使用支持文本输入的被控端版本,或通过剪贴板发送", R.string.text_24a52788cf474bf6);
|
||||
IDS.put("成功连接后,这里会显示最近的远程设备。", R.string.text_33f25b500697a7d9);
|
||||
IDS.put("我已阅读并同意《隐私政策》", R.string.text_70341256d7317e7d);
|
||||
IDS.put("所选文件(无法读取或空间不足)", R.string.text_85c4c8fda0461f35);
|
||||
IDS.put("找不到该设备 ID", R.string.text_9b58c9ff5f6a856f);
|
||||
IDS.put("指令发送失败,请重试", R.string.text_97b7b18df07b9787);
|
||||
IDS.put("指令已发送,等待电脑确认…", R.string.text_cb782027ca5986c7);
|
||||
IDS.put("授权状态", R.string.text_3ca40a586103f6b7);
|
||||
IDS.put("接收", R.string.text_6e684586884ebee6);
|
||||
IDS.put("接收 ", R.string.text_84ae92e54e3078aa);
|
||||
IDS.put("控制端解码器", R.string.text_d16488b987723161);
|
||||
IDS.put("撤回", R.string.text_6b58198955259066);
|
||||
IDS.put("撤回后将停止远程连接、关闭画面预览保存并清除已有预览。连接记录和密码会保留,重新连接前需再次授权。", R.string.text_c52e42ee856825db);
|
||||
IDS.put("撤回联网授权", R.string.text_61f4788032ec596b);
|
||||
IDS.put("撤回联网授权?", R.string.text_e736e419008ac10a);
|
||||
IDS.put("收起远程控制菜单", R.string.text_73431dcf0afb7a65);
|
||||
IDS.put("收起键盘", R.string.text_d826c4ece4dd4031);
|
||||
IDS.put("收起鼠标", R.string.text_6e9a457c0c3c34ed);
|
||||
IDS.put("数据", R.string.text_5440f7424f2865bf);
|
||||
IDS.put("文件保存失败,请重试", R.string.text_94244f41d0a41378);
|
||||
IDS.put("文件已保存", R.string.text_2553a785fef2a405);
|
||||
IDS.put("文件选择已超时,会话已结束", R.string.text_d573b3f9a810ea04);
|
||||
IDS.put("文本超过 128 KB", R.string.text_985a5c380be49f4f);
|
||||
IDS.put("断开", R.string.text_f33ac04eece6a6a6);
|
||||
IDS.put("断开后将返回首页", R.string.text_09b1395f50589327);
|
||||
IDS.put("断开远程连接?", R.string.text_a73c0680db0d2e06);
|
||||
IDS.put("断开连接", R.string.text_a33f3804768e68ee);
|
||||
IDS.put("新版本", R.string.text_47ceaf502c5a05d6);
|
||||
IDS.put("新版本可用:v", R.string.text_78823e6cf1a8afe5);
|
||||
IDS.put("新版本可用:v{0}", R.string.text_b7e58b67fa8f7e78);
|
||||
IDS.put("无未读公告", R.string.text_ef23787ec32c5588);
|
||||
IDS.put("无法保存本地阅读状态,请重试。", R.string.text_dca2c418ac967366);
|
||||
IDS.put("无法删除这条公告,请重试。", R.string.text_5c92da76360056cc);
|
||||
IDS.put("无法发起远程连接", R.string.text_615709dd3129313c);
|
||||
IDS.put("无法读取开源许可", R.string.text_a5c4f4ad79a640ae);
|
||||
IDS.put("显示器", R.string.text_1a13ea5910a0c5e6);
|
||||
IDS.put("显示密码", R.string.text_ffe21a671190323e);
|
||||
IDS.put("暂不同意", R.string.text_a94460e8a04f04c5);
|
||||
IDS.put("暂无公告", R.string.text_6d9a7758610a2432);
|
||||
IDS.put("最近连接", R.string.text_0b290c6600d92f43);
|
||||
IDS.put("服务器", R.string.text_2388cbc6a486af9f);
|
||||
IDS.put("服务器 TLS 证书校验失败", R.string.text_dfe408e686175095);
|
||||
IDS.put("服务器地址", R.string.text_d3716cc5a2f5a810);
|
||||
IDS.put("服务器登录失败,请检查服务器地址和网络", R.string.text_2a9608d4465d0f70);
|
||||
IDS.put("服务器端口", R.string.text_d270868960e68629);
|
||||
IDS.put("服务器连接超时,请检查服务器地址和网络", R.string.text_7a4e4a6a1b479a52);
|
||||
IDS.put("未启用", R.string.text_f95ea7f4c063eea7);
|
||||
IDS.put("未找到可打开链接的浏览器", R.string.text_c8f7ed6f2186fb98);
|
||||
IDS.put("未授权", R.string.text_94bc3d40defef3e9);
|
||||
IDS.put("未读", R.string.text_4d0680f9efaef147);
|
||||
IDS.put("未连接服务器 · 点击重试", R.string.text_d1fcb66a323a16f5);
|
||||
IDS.put("本应用使用 OpenFEC 提供前向纠错功能,遵循 CeCILL-C 1.0 许可。该许可规定了有限保证及责任限制,详情见许可全文。", R.string.text_7eea7966c0b746c5);
|
||||
IDS.put("本机 ID ", R.string.text_c611b4e50b0dbc08);
|
||||
IDS.put("本机 ID {0}", R.string.text_97d10220f08dd7fc);
|
||||
IDS.put("本版本源码与构建说明", R.string.text_91f15d505770d7a0);
|
||||
IDS.put("本版本源码信息暂不可用。", R.string.text_5b2c8ca2c5a87241);
|
||||
IDS.put("松开刷新", R.string.text_f0e274aa130e08a2);
|
||||
IDS.put("构建说明", R.string.text_47077144715b7074);
|
||||
IDS.put("构建配方与项目补丁", R.string.text_837ab2d0b2f4cb98);
|
||||
IDS.put("查看源码", R.string.text_921c3b62f1f7d6f4);
|
||||
IDS.put("检查失败,请稍后重试", R.string.text_fdd1059f10c4b979);
|
||||
IDS.put("检查更新", R.string.text_7f68ebad19ba6bcd);
|
||||
IDS.put("正在关闭隐私屏…", R.string.text_4f4d1e704e38c161);
|
||||
IDS.put("正在建立安全连接…", R.string.text_2a05f6fbd3f4436e);
|
||||
IDS.put("正在开启隐私屏…", R.string.text_0da575e3c92de73a);
|
||||
IDS.put("正在检查更新…", R.string.text_91834aebecabcbc3);
|
||||
IDS.put("正在清除…", R.string.text_0571a5f5f8ec4c83);
|
||||
IDS.put("正在获取本机 ID…", R.string.text_0e6336c8fe918730);
|
||||
IDS.put("正在读取所选文件…", R.string.text_faebd20c2801fd0f);
|
||||
IDS.put("正在连接", R.string.text_694186911ae3e4da);
|
||||
IDS.put("正在连接信令服务器…", R.string.text_c3ccc7f7d37533e3);
|
||||
IDS.put("正在连接服务器…", R.string.text_4024d3c0f467a4f6);
|
||||
IDS.put("正在重连服务器…", R.string.text_46fe1ef52ec3a10f);
|
||||
IDS.put("此设备没有可用的文件选择器", R.string.text_4e4fce649fc00238);
|
||||
IDS.put("清除", R.string.text_bce2377283c2455a);
|
||||
IDS.put("清除预览图", R.string.text_ee0e76b8507212de);
|
||||
IDS.put("清除预览图?", R.string.text_ecc809e44637de18);
|
||||
IDS.put("源码与构建说明", R.string.text_2782e4485ad23d34);
|
||||
IDS.put("源码版本", R.string.text_1f566fe8f8b718f3);
|
||||
IDS.put("版本", R.string.text_5f76b2bf82dd2c5d);
|
||||
IDS.put("版权与许可声明", R.string.text_16410ee9663fad10);
|
||||
IDS.put("电脑键盘", R.string.text_11de77e1e41e680f);
|
||||
IDS.put("画质优先", R.string.text_20f57900234debd7);
|
||||
IDS.put("画面偏好", R.string.text_43b04aba53a54cf5);
|
||||
IDS.put("画面延时", R.string.text_82a5600c470179fa);
|
||||
IDS.put("画面设置", R.string.text_33b458faaf967e15);
|
||||
IDS.put("画面质量", R.string.text_afb5acdf8f07fadb);
|
||||
IDS.put("画面采集帧率", R.string.text_12b41b7a3fbcf8ca);
|
||||
IDS.put("相对位置", R.string.text_66062971234f422d);
|
||||
IDS.put("相对鼠标", R.string.text_c421dc051bea3f11);
|
||||
IDS.put("知道了", R.string.text_de32e20193ad1042);
|
||||
IDS.put("确定", R.string.text_fac2a67ad87807c4);
|
||||
IDS.put("确认", R.string.text_36f33adaf0942634);
|
||||
IDS.put("确认连接", R.string.text_a5b7fba4dbd8f622);
|
||||
IDS.put("离线", R.string.text_be1b4f3c6c1cda1e);
|
||||
IDS.put("空格", R.string.text_bfa4a6e0fe42ac28);
|
||||
IDS.put("端口范围为 1–65535", R.string.text_471a579e8d87faac);
|
||||
IDS.put("符号功能", R.string.text_c7d0c77862e32b52);
|
||||
IDS.put("等待电脑返回隐私屏状态;旧版电脑端可能不支持", R.string.text_a562f07bd38c1a49);
|
||||
IDS.put("等待远端屏幕信息", R.string.text_5ee880e2524a983a);
|
||||
IDS.put("等待远端画面…", R.string.text_674c723a85ee7f57);
|
||||
IDS.put("等待隐私授权", R.string.text_119f0483da4756c4);
|
||||
IDS.put("系统键盘", R.string.text_7916071c1a8ee458);
|
||||
IDS.put("绝对位置", R.string.text_02e9ba6fda719e2e);
|
||||
IDS.put("绝对鼠标", R.string.text_8527c8c6d1ccc1ca);
|
||||
IDS.put("网络状态", R.string.text_872428a7210d5e0c);
|
||||
IDS.put("自定义", R.string.text_4eafa9e925b30bcd);
|
||||
IDS.put("虚拟鼠标", R.string.text_dffd0c12b8f27247);
|
||||
IDS.put("被控端已通过组合键解除隐私屏。点击“锁定”将重新开启隐私屏,并禁止本机使用组合键解锁。", R.string.text_62c199f37bf95869);
|
||||
IDS.put("被控端版本过低,请升级到最新版本。", R.string.text_a569ce729c1d6e19);
|
||||
IDS.put("被控端编码器", R.string.text_d814476826827b78);
|
||||
IDS.put("要发送到远端的文本", R.string.text_488402883e27f6f0);
|
||||
IDS.put("视频", R.string.text_c20f7618d330a854);
|
||||
IDS.put("许可", R.string.text_310c625425f014d8);
|
||||
IDS.put("许可与版权声明", R.string.text_5c34f7d0e2124dca);
|
||||
IDS.put("许可与版权声明可离线查阅。", R.string.text_e24134b643a17975);
|
||||
IDS.put("设备身份保存失败,请检查安全存储", R.string.text_5e7628f043ce71d0);
|
||||
IDS.put("设备身份及选择保存的访问密码使用 Android Keystore 加密。连接记录仅保存在本机,不纳入设备备份。剪贴板内容在结束会话时清除。离开应用后通过画中画或连接通知保持会话,可在应用或通知中断开。", R.string.text_5d35ee0d7945fcbc);
|
||||
IDS.put("设置", R.string.text_df3d58c7d84b85f2);
|
||||
IDS.put("设置,有新版本", R.string.text_4f8771952222a011);
|
||||
IDS.put("访问密码", R.string.text_f4f712d5be91721a);
|
||||
IDS.put("访问密码错误,请重新输入", R.string.text_dd6c465847af1b60);
|
||||
IDS.put("证书校验失败 · 点击重试", R.string.text_defba1d2989bfab4);
|
||||
IDS.put("请先完成联网授权", R.string.text_44f3d4d52347095a);
|
||||
IDS.put("请在远端启用 CrossDesk 系统服务后重试", R.string.text_2a07ca002bc5093d);
|
||||
IDS.put("请求超时,尚未确认电脑的隐私屏状态", R.string.text_990fd23c62de5ccf);
|
||||
IDS.put("请等待当前文件发送完成", R.string.text_e5c8fa6dcf7b2a8b);
|
||||
IDS.put("请输入 1–65535 范围内的端口", R.string.text_9305d9d72b06110d);
|
||||
IDS.put("请输入 9 位设备 ID", R.string.text_3c7223dfb8dde5cf);
|
||||
IDS.put("请输入有效访问密码", R.string.text_285a0714894d2899);
|
||||
IDS.put("调整失败,请重试。", R.string.text_c808bb77ffd2b4cd);
|
||||
IDS.put("软件许可", R.string.text_a762e7e650e285fa);
|
||||
IDS.put("返回", R.string.text_572cf45ba43634b3);
|
||||
IDS.put("返回控制栏", R.string.text_7565f94031582c7c);
|
||||
IDS.put("还没有连接记录", R.string.text_55113b6925c362fd);
|
||||
IDS.put("这条公告已更新或删除,请返回公告列表查看。", R.string.text_3aa527b2106cc987);
|
||||
IDS.put("远程任务已关闭", R.string.text_e357aa9a0fb28c16);
|
||||
IDS.put("远程桌面", R.string.text_c255841f68096d3b);
|
||||
IDS.put("远程桌面触控区域", R.string.text_133f4c7dabd88b97);
|
||||
IDS.put("远程桌面:轻触点击,拖动移动,长按右键,双指捏合缩放,放大后双指拖动画面,原始比例下双指上下滑动滚动", R.string.text_5931aeb3778f28f1);
|
||||
IDS.put("远程电脑", R.string.text_3535087994d050de);
|
||||
IDS.put("远程窗口已关闭,或后台保活未能启动,会话已结束", R.string.text_ed2e03072ce131de);
|
||||
IDS.put("远程连接", R.string.text_678b783fb578172b);
|
||||
IDS.put("远端密码错误", R.string.text_deccbd3eb9ba45f2);
|
||||
IDS.put("远端已关闭连接", R.string.text_a2ce499295e358ae);
|
||||
IDS.put("远端当前不可用", R.string.text_176e117df3ace734);
|
||||
IDS.put("远端访问密码已失效,请重新连接", R.string.text_d2c0694243f93249);
|
||||
IDS.put("连接", R.string.text_a5574109f0208e89);
|
||||
IDS.put("连接 ", R.string.text_1d54bfbae5f8ac08);
|
||||
IDS.put("连接失败", R.string.text_89c4766afc85125f);
|
||||
IDS.put("连接失败 · 点击重试", R.string.text_04bf1a61ba1369f6);
|
||||
IDS.put("连接已断开", R.string.text_2ab7d89557e779ab);
|
||||
IDS.put("连接已结束", R.string.text_c1d20bf4c3e471c1);
|
||||
IDS.put("连接延时(RTT)", R.string.text_e57d2cbc0e9908e6);
|
||||
IDS.put("连接建立后可调整,需被控端支持。", R.string.text_db4d4f0fab78498a);
|
||||
IDS.put("连接建立后锁定横屏", R.string.text_2123a9ed718f2c40);
|
||||
IDS.put("连接提示", R.string.text_f741e0536210eafa);
|
||||
IDS.put("连接方式", R.string.text_485a26050ce57431);
|
||||
IDS.put("连接服务器", R.string.text_5a048351a77fe88d);
|
||||
IDS.put("连接服务器后可获取最新公告。", R.string.text_5854c4add7ab0f7a);
|
||||
IDS.put("连接超时,请检查设备 ID、服务器及远端在线状态", R.string.text_32cd27b5a72515f3);
|
||||
IDS.put("连接远程桌面", R.string.text_6edc4b54cc1a9838);
|
||||
IDS.put("退格", R.string.text_d5407b4f3c666681);
|
||||
IDS.put("通知公告", R.string.text_e02926784fcedb91);
|
||||
IDS.put("部分预览图未能清除,请重试。", R.string.text_465a092680d132b3);
|
||||
IDS.put("重试", R.string.text_b8784c8dd5636ff2);
|
||||
IDS.put("重试保存阅读状态", R.string.text_a504fb6f162bdb20);
|
||||
IDS.put("锁定", R.string.text_ff9872a023e3a8aa);
|
||||
IDS.put("键盘", R.string.text_864200bbb241e067);
|
||||
IDS.put("阅读并授权", R.string.text_1f0f014d4177a0cc);
|
||||
IDS.put("隐私", R.string.text_86651d17a401c55b);
|
||||
IDS.put("隐私与授权", R.string.text_26c6e011e343708c);
|
||||
IDS.put("隐私屏", R.string.text_6cad42fd3da85585);
|
||||
IDS.put("隐私屏已关闭", R.string.text_e157fafb76aad954);
|
||||
IDS.put("隐私屏已开启", R.string.text_bbef0eac0c04f214);
|
||||
IDS.put("隐私屏已被解锁", R.string.text_0c7535f7c5e43b6f);
|
||||
IDS.put("隐私屏异常", R.string.text_b62ac3dfb606c00b);
|
||||
IDS.put("隐私屏暂不可用", R.string.text_598a2747dbd21dd5);
|
||||
IDS.put("隐私屏状态已过期,等待电脑确认", R.string.text_4d59be3c75189032);
|
||||
IDS.put("隐私屏状态待确认", R.string.text_1674532c70ed1db2);
|
||||
IDS.put("隐私政策", R.string.text_e464b41fd5c45ba5);
|
||||
IDS.put("隐私政策暂时无法读取,请拒绝联网并重新安装应用。", R.string.text_554e957e8e3c00af);
|
||||
IDS.put("静音", R.string.text_7db2e189ecb01065);
|
||||
IDS.put("音频", R.string.text_296c632ec857a0ba);
|
||||
IDS.put("项目主页", R.string.text_0cadb49096a382e0);
|
||||
IDS.put("预览可能包含远程电脑上的个人或工作信息。开启后,每次连接会自动将一张画面保存在本机并显示在最近连接中。你可以随时关闭并清除。", R.string.text_3beca60bd0c654f7);
|
||||
IDS.put("高", R.string.text_b1c27820fec23edb);
|
||||
IDS.put("默认", R.string.text_844b8cc8dff7c1d8);
|
||||
IDS.put("默认关闭。开启后,手机连接时进入并保持横屏;关闭时跟随设备方向。平板和多窗口不受影响。", R.string.text_4db8737054f3b0cc);
|
||||
IDS.put("鼠标右键,按住并拖动,松开结束拖拽", R.string.text_1184a97edd8e1646);
|
||||
IDS.put("鼠标左键,按住并拖动,松开结束拖拽", R.string.text_926eaa3af0b5e48e);
|
||||
IDS.put("鼠标控制", R.string.text_269f39a07b4a4e01);
|
||||
IDS.put("鼠标滚轮,上下滑动,可滑出按键范围", R.string.text_cba62aeeb4a63a23);
|
||||
IDS.put(",丢包率 ", R.string.text_9aa238fc6121dede);
|
||||
IDS.put(",发送 ", R.string.text_0b5d16c21095fe10);
|
||||
IDS.put(",已保存密码", R.string.text_ba9a792d063a8c86);
|
||||
IDS.put(",接收 ", R.string.text_f4c1f9d7896760a7);
|
||||
IDS.put(",点击重试", R.string.text_42237b5ec70c26f3);
|
||||
}
|
||||
private LocalizationKeys() {}
|
||||
}
|
||||
@@ -89,7 +89,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
private static final int PICK_FILE=41,SAVE_FILE=42;
|
||||
private NativeSession documentSession;
|
||||
private java.io.File receivedFile,documentToSave;
|
||||
private final Runnable documentTimeout=()->{if(documentSession!=null&&!foreground)end("文件选择已超时,会话已结束");};
|
||||
private final Runnable documentTimeout=()->{if(documentSession!=null&&!foreground)end(L10n.tr("文件选择已超时,会话已结束"));};
|
||||
private RemoteVideoSettings videoSettings=new RemoteVideoSettings(1);
|
||||
private final android.os.Handler mainHandler=new android.os.Handler(android.os.Looper.getMainLooper());
|
||||
private Runnable videoSettingsTimeout;
|
||||
@@ -158,7 +158,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
}
|
||||
private LinearLayout navigation(String title,Runnable back){
|
||||
LinearLayout bar=row();bar.setPadding(dp(12),0,dp(12),0);root.addView(bar,ui.size(-1,56));
|
||||
bar.addView(ui.iconButton("back","返回",this::navigateBack),ui.size(44,44));
|
||||
bar.addView(ui.iconButton("back",L10n.tr("返回"),this::navigateBack),ui.size(44,44));
|
||||
TextView label=text(title,17,true);label.setGravity(Gravity.CENTER);label.setSingleLine();label.setEllipsize(TextUtils.TruncateAt.END);bar.addView(label,new LinearLayout.LayoutParams(0,-1,1));
|
||||
bar.addView(new View(this),ui.size(44,44));backAction=back;return bar;
|
||||
}
|
||||
@@ -200,34 +200,34 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
signalBadge=text("",12,true);signalBadge.setGravity(Gravity.CENTER);signalBadge.setPadding(dp(11),0,dp(11),0);signalBadge.setSingleLine(true);
|
||||
signalBadge.setOnClickListener(v->{
|
||||
if(!preferences.getBoolean("networkConsent",false))consent(this::renderSignaling);
|
||||
else if(signalState==1)toast("已连接 "+serverKey());
|
||||
else if(signalState==1)toast(L10n.tr("已连接 ")+serverKey());
|
||||
else {stopSignaling();ensureSignaling();}
|
||||
});renderSignaling();toolbar.addView(signalBadge,ui.size(-2,34));toolbar.addView(new View(this),new LinearLayout.LayoutParams(0,1,1));
|
||||
FrameLayout announcementButton=(FrameLayout)ui.iconButton("envelope","通知公告",this::announcements);announcementButton.setClipChildren(false);toolbar.setClipChildren(false);toolbar.setClipToPadding(false);
|
||||
FrameLayout announcementButton=(FrameLayout)ui.iconButton("envelope",L10n.tr("通知公告"),this::announcements);announcementButton.setClipChildren(false);toolbar.setClipChildren(false);toolbar.setClipToPadding(false);
|
||||
announcementBadge=text("",10,true);announcementBadge.setTextColor(Color.WHITE);announcementBadge.setGravity(Gravity.CENTER);announcementBadge.setMinWidth(dp(16));announcementBadge.setPadding(dp(4),0,dp(4),0);announcementBadge.setBackground(ui.background(RED,12));announcementBadge.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
|
||||
FrameLayout.LayoutParams badgePosition=new FrameLayout.LayoutParams(-2,dp(16),Gravity.TOP|Gravity.END);badgePosition.topMargin=-dp(3);badgePosition.setMarginEnd(-dp(5));announcementButton.addView(announcementBadge,badgePosition);renderAnnouncements();
|
||||
toolbar.addView(announcementButton,ui.size(40,40));View spacer=new View(this);toolbar.addView(spacer,ui.size(12,1));
|
||||
FrameLayout settingsButton=(FrameLayout)ui.iconButton("settings","设置",this::settings);settingsButton.setClipChildren(false);settingsUpdateButton=settingsButton;
|
||||
FrameLayout settingsButton=(FrameLayout)ui.iconButton("settings",L10n.tr("设置"),this::settings);settingsButton.setClipChildren(false);settingsUpdateButton=settingsButton;
|
||||
TextView updateBadge=text("!",10,true);updateBadge.setTextColor(Color.WHITE);updateBadge.setGravity(Gravity.CENTER);updateBadge.setIncludeFontPadding(false);updateBadge.setBackground(ui.background(RED,8));updateBadge.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);settingsUpdateDot=updateBadge;
|
||||
FrameLayout.LayoutParams updatePosition=new FrameLayout.LayoutParams(dp(16),dp(16),Gravity.TOP|Gravity.END);updatePosition.topMargin=-dp(3);updatePosition.setMarginEnd(-dp(5));settingsButton.addView(settingsUpdateDot,updatePosition);
|
||||
toolbar.addView(settingsButton,ui.size(40,40));renderAppUpdates();
|
||||
HomeLayout layout=new HomeLayout(ui);root.addView(layout,new LinearLayout.LayoutParams(-1,0,1));LinearLayout content=layout.panels;
|
||||
LinearLayout connection=column();connection.setPadding(dp(18),dp(18),dp(18),dp(18));content.addView(ui.shadowCard(connection,20));
|
||||
connection.addView(text("远程桌面",20,true));ui.gap(connection,16);
|
||||
connection.addView(text(L10n.tr("远程桌面"),20,true));ui.gap(connection,16);
|
||||
LinearLayout entry=row();connection.addView(entry,ui.size(-1,54));
|
||||
remote=field("对端 ID",InputType.TYPE_CLASS_NUMBER);remote.setTextSize(20);remote.setTypeface(Typeface.create("sans-serif-medium",Typeface.NORMAL));
|
||||
remote=field(L10n.tr("对端 ID"),InputType.TYPE_CLASS_NUMBER);remote.setTextSize(20);remote.setTypeface(Typeface.create("sans-serif-medium",Typeface.NORMAL));
|
||||
remote.setOnFocusChangeListener((view,focused)->{GradientDrawable shape=ui.background(BACKGROUND,12);shape.setStroke(dp(focused?2:1),focused?BLUE:LINE);remote.setBackground(shape);});
|
||||
remote.setFilters(new InputFilter[]{new InputFilter.LengthFilter(11)});remote.setText(formatId(preferences.getString("lastRemote","")));
|
||||
entry.addView(remote,new LinearLayout.LayoutParams(0,-1,1));
|
||||
TextView connect=ui.primary("连接",()->promptConnection(id()));connect.setContentDescription("连接");LinearLayout.LayoutParams buttonParams=ui.size(96,54);buttonParams.leftMargin=dp(10);entry.addView(connect,buttonParams);
|
||||
TextView connect=ui.primary(L10n.tr("连接"),()->promptConnection(id()));connect.setContentDescription(L10n.tr("连接"));LinearLayout.LayoutParams buttonParams=ui.size(96,54);buttonParams.leftMargin=dp(10);entry.addView(connect,buttonParams);
|
||||
Runnable update=()->{connect.setEnabled(!id().isEmpty());connect.setAlpha(id().isEmpty()?.45f:1);};update.run();
|
||||
remote.addTextChangedListener(new TextWatcher(){boolean editing;public void beforeTextChanged(CharSequence s,int start,int count,int after){}public void onTextChanged(CharSequence s,int start,int before,int count){update.run();}public void afterTextChanged(Editable value){if(editing)return;String formatted=formatId(value.toString());if(!formatted.equals(value.toString())){editing=true;int cursor=remote.getSelectionStart(),digits=value.subSequence(0,Math.max(0,cursor)).toString().replaceAll("[^0-9]","").length();remote.setText(formatted);remote.setSelection(Math.min(formatted.length(),digits+Math.max(0,digits-1)/3));editing=false;}}});
|
||||
LinearLayout recent=column();recent.setPadding(dp(16),dp(16),dp(16),dp(16));ui.card(recent,18);LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(-1,0,1);p.topMargin=dp(20);content.addView(recent,p);
|
||||
JSONArray records=history.list(serverKey());recentPresence.watch(records,android.os.SystemClock.elapsedRealtime());LinearLayout heading=row();heading.addView(text("最近连接",20,true),new LinearLayout.LayoutParams(0,-2,1));
|
||||
if(records.length()>0){TextView count=text(records.length()+" 台设备",12,false);count.setTextColor(SECONDARY);heading.addView(count);}recent.addView(heading);
|
||||
JSONArray records=history.list(serverKey());recentPresence.watch(records,android.os.SystemClock.elapsedRealtime());LinearLayout heading=row();heading.addView(text(L10n.tr("最近连接"),20,true),new LinearLayout.LayoutParams(0,-2,1));
|
||||
if(records.length()>0){TextView count=text(L10n.format("{0} 台设备",records.length()),12,false);count.setTextColor(SECONDARY);heading.addView(count);}recent.addView(heading);
|
||||
if(records.length()==0){
|
||||
LinearLayout empty=column();empty.setGravity(Gravity.CENTER);recent.addView(empty,new LinearLayout.LayoutParams(-1,0,1));empty.addView(ui.icon("history",0xFFB6B6BB),ui.size(34,34));ui.gap(empty,12);
|
||||
TextView emptyTitle=text("还没有连接记录",17,true);emptyTitle.setGravity(Gravity.CENTER);empty.addView(emptyTitle);ui.gap(empty,8);TextView hint=text("成功连接后,这里会显示最近的远程设备。",13,false);hint.setTextColor(SECONDARY);hint.setGravity(Gravity.CENTER);empty.addView(hint);
|
||||
TextView emptyTitle=text(L10n.tr("还没有连接记录"),17,true);emptyTitle.setGravity(Gravity.CENTER);empty.addView(emptyTitle);ui.gap(empty,8);TextView hint=text(L10n.tr("成功连接后,这里会显示最近的远程设备。"),13,false);hint.setTextColor(SECONDARY);hint.setGravity(Gravity.CENTER);empty.addView(hint);
|
||||
}else{
|
||||
ui.gap(recent,14);ScrollView scroll=new ScrollView(this);recent.addView(scroll,new LinearLayout.LayoutParams(-1,0,1));recentGrid=column();scroll.addView(recentGrid);
|
||||
recentGrid.addOnLayoutChangeListener((view,left,top,right,bottom,oldLeft,oldTop,oldRight,oldBottom)->{
|
||||
@@ -243,7 +243,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
private void showConnectionMessage(){
|
||||
if(pendingConnectionMessage.isEmpty()||!foreground||isFinishing()||isDestroyed())return;
|
||||
if(connectionDialog!=null)connectionDialog.dismiss();
|
||||
connectionDialog=new AlertDialog.Builder(this).setTitle("连接提示").setMessage(pendingConnectionMessage).setPositiveButton("确定",null).create();
|
||||
connectionDialog=new AlertDialog.Builder(this).setTitle(L10n.tr("连接提示")).setMessage(pendingConnectionMessage).setPositiveButton(L10n.tr("确定"),null).create();
|
||||
connectionDialog.setOnDismissListener(dialog->connectionDialog=null);
|
||||
pendingConnectionMessage="";connectionDialog.show();
|
||||
}
|
||||
@@ -259,27 +259,27 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
if(item==null)return new View(this);String id=item.optString("id"),platform=item.optString("platform");
|
||||
LinearLayout card=column();ui.card(card,14);FrameLayout preview=new FrameLayout(this){@Override protected void onMeasure(int w,int h){super.onMeasure(w,MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(w)*9/16,MeasureSpec.EXACTLY));}};
|
||||
int color=platform.equals("windows")?0xFF316AB7:platform.equals("macos")?0xFF8057B9:platform.equals("linux")?0xFFAE642B:0xFF677587;preview.setBackgroundColor(color);
|
||||
TextView label=text(platform.equals("windows")?"Windows":platform.equals("macos")?"macOS":platform.equals("linux")?"Linux":"远程电脑",19,true);label.setGravity(Gravity.CENTER);label.setTextColor(Color.WHITE);preview.addView(label,new FrameLayout.LayoutParams(-1,-1));card.addView(preview,ui.size(-1,80));
|
||||
TextView label=text(platform.equals("windows")?"Windows":platform.equals("macos")?"macOS":platform.equals("linux")?"Linux":L10n.tr("远程电脑"),19,true);label.setGravity(Gravity.CENTER);label.setTextColor(Color.WHITE);preview.addView(label,new FrameLayout.LayoutParams(-1,-1));card.addView(preview,ui.size(-1,80));
|
||||
ImageView image=new ImageView(this);image.setScaleType(ImageView.ScaleType.CENTER_CROP);image.setVisibility(View.GONE);image.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);preview.addView(image,new FrameLayout.LayoutParams(-1,-1));
|
||||
String server=serverKey();Runnable load=()->{if(!image.isAttachedToWindow())return;Object binding=new Object();image.setTag(binding);image.setImageDrawable(null);image.setVisibility(View.GONE);label.setVisibility(View.VISIBLE);
|
||||
previews.load(server,id,bitmap->{if(image.getTag()!=binding||!image.isAttachedToWindow()){if(bitmap!=null)bitmap.recycle();return;}if(bitmap!=null){image.setImageBitmap(bitmap);image.setVisibility(View.VISIBLE);label.setVisibility(View.GONE);}});};previewCards.add(load);image.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener(){public void onViewAttachedToWindow(View view){load.run();}public void onViewDetachedFromWindow(View view){image.setTag(null);}});if(image.isAttachedToWindow())load.run();
|
||||
LinearLayout caption=column();caption.setPadding(dp(9),dp(9),dp(9),dp(9));TextView name=text(item.optString("name",id),12,true);name.setSingleLine();name.setEllipsize(TextUtils.TruncateAt.END);caption.addView(name);ui.gap(caption,4);
|
||||
LinearLayout details=row();TextView detail=text("ID "+id,10,false);detail.setTypeface(Typeface.create("sans-serif",Typeface.NORMAL));detail.setTextColor(SECONDARY);detail.setSingleLine();detail.setEllipsize(TextUtils.TruncateAt.END);details.addView(detail,new LinearLayout.LayoutParams(0,-2,1));
|
||||
if(item.optBoolean("remember")){View key=ui.icon("key",SECONDARY);key.setContentDescription("已保存密码");LinearLayout.LayoutParams keySize=ui.size(10,10);keySize.leftMargin=dp(4);details.addView(key,keySize);}
|
||||
boolean online=recentPresence.isOnline(id,android.os.SystemClock.elapsedRealtime());String availability=online?"在线":"离线";TextView presence=text(availability,10,true);presence.setSingleLine();presence.setTextColor(online?GREEN:SECONDARY);LinearLayout.LayoutParams presenceSize=ui.size(-2,-2);presenceSize.leftMargin=dp(5);details.addView(presence,presenceSize);caption.addView(details);card.addView(caption);
|
||||
card.setContentDescription("连接 "+item.optString("name",id)+",ID "+id+(item.optBoolean("remember")?",已保存密码":"")+","+availability);card.setClickable(true);card.setFocusable(true);card.setOnClickListener(v->{remote.setText(formatId(id));promptConnection(id);});
|
||||
card.setOnLongClickListener(v->{new AlertDialog.Builder(this).setTitle(item.optString("name",id)).setItems(new String[]{"连接","删除记录"},(d,w)->{if(w==0)promptConnection(id);else{history.delete(serverKey(),id);home("");}}).show();return true;});return card;
|
||||
if(item.optBoolean("remember")){View key=ui.icon("key",SECONDARY);key.setContentDescription(L10n.tr("已保存密码"));LinearLayout.LayoutParams keySize=ui.size(10,10);keySize.leftMargin=dp(4);details.addView(key,keySize);}
|
||||
boolean online=recentPresence.isOnline(id,android.os.SystemClock.elapsedRealtime());String availability=online?L10n.tr("在线"):L10n.tr("离线");TextView presence=text(availability,10,true);presence.setSingleLine();presence.setTextColor(online?GREEN:SECONDARY);LinearLayout.LayoutParams presenceSize=ui.size(-2,-2);presenceSize.leftMargin=dp(5);details.addView(presence,presenceSize);caption.addView(details);card.addView(caption);
|
||||
card.setContentDescription(L10n.tr("连接 ")+item.optString("name",id)+",ID "+id+(item.optBoolean("remember")?L10n.tr(",已保存密码"):"")+","+availability);card.setClickable(true);card.setFocusable(true);card.setOnClickListener(v->{remote.setText(formatId(id));promptConnection(id);});
|
||||
card.setOnLongClickListener(v->{new AlertDialog.Builder(this).setTitle(item.optString("name",id)).setItems(new String[]{L10n.tr("连接"),L10n.tr("删除记录")},(d,w)->{if(w==0)promptConnection(id);else{history.delete(serverKey(),id);home("");}}).show();return true;});return card;
|
||||
}
|
||||
private void promptConnection(String id){
|
||||
hideKeyboard();if(!id.matches("[0-9]{9}")){remote.setError("请输入 9 位设备 ID");remote.requestFocus();return;}
|
||||
hideKeyboard();if(!id.matches("[0-9]{9}")){remote.setError(L10n.tr("请输入 9 位设备 ID"));remote.requestFocus();return;}
|
||||
if(!preferences.getBoolean("networkConsent",false)){consent(()->connectOrPrompt(id));return;}connectOrPrompt(id);
|
||||
}
|
||||
private void connectOrPrompt(String id){
|
||||
String stored;
|
||||
try{stored=history.password(serverKey(),id);}catch(Exception error){passwordSheet(id,"已保存密码无法读取,请重新输入",true);return;}
|
||||
try{stored=history.password(serverKey(),id);}catch(Exception error){passwordSheet(id,L10n.tr("已保存密码无法读取,请重新输入"),true);return;}
|
||||
if(!stored.isEmpty()){rememberPassword=true;begin(id,stored);return;}
|
||||
boolean remember=history.remembersPassword(serverKey(),id);
|
||||
passwordSheet(id,remember?"已保存的密码未能保留,请重新输入一次":"",remember);
|
||||
passwordSheet(id,remember?L10n.tr("已保存的密码未能保留,请重新输入一次"):"",remember);
|
||||
}
|
||||
private void consent(Runnable accepted){
|
||||
if(privacyDialog!=null&&privacyDialog.isShowing())return;
|
||||
@@ -291,15 +291,15 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
private void passwordSheet(String id,String error,boolean rememberDefault){
|
||||
Dialog dialog=new Dialog(this);passwordDialog=dialog;LinearLayout sheet=column();sheet.setPadding(dp(22),dp(10),dp(22),dp(22));sheet.setBackground(ui.background(BACKGROUND,24));
|
||||
View handle=new View(this);handle.setBackground(ui.background(0xFFC6C6CB,3));LinearLayout.LayoutParams hp=ui.size(36,5);hp.gravity=Gravity.CENTER;sheet.addView(handle,hp);ui.gap(sheet,20);
|
||||
LinearLayout header=row(),titles=column();titles.addView(text("连接远程桌面",22,true));ui.gap(titles,5);TextView subtitle=text("对端 ID "+id,15,false);subtitle.setTextColor(SECONDARY);titles.addView(subtitle);header.addView(titles,new LinearLayout.LayoutParams(0,-2,1));header.addView(ui.iconButton("close","关闭",dialog::dismiss),ui.size(36,36));sheet.addView(header);ui.gap(sheet,18);
|
||||
LinearLayout passwordRow=row();ui.card(passwordRow,10);EditText password=field("访问密码",InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD);password.setBackgroundColor(Color.TRANSPARENT);passwordRow.addView(password,new LinearLayout.LayoutParams(0,dp(50),1));
|
||||
View eye=ui.iconButton("eye","显示密码",()->{boolean hidden=password.getTransformationMethod()!=null;password.setTransformationMethod(hidden?null:PasswordTransformationMethod.getInstance());password.setSelection(password.length());});passwordRow.addView(eye,ui.size(44,44));sheet.addView(passwordRow);ui.gap(sheet,18);
|
||||
LinearLayout save=row(),saveText=column();saveText.addView(text("保存密码",15,true));ui.gap(saveText,3);TextView security=text("密码将加密保存在本机 Android Keystore 中",11,false);security.setTextColor(SECONDARY);saveText.addView(security);save.addView(saveText,new LinearLayout.LayoutParams(0,-2,1));Switch remember=new Switch(this);remember.setContentDescription("保存密码");save.addView(remember);sheet.addView(save);
|
||||
LinearLayout header=row(),titles=column();titles.addView(text(L10n.tr("连接远程桌面"),22,true));ui.gap(titles,5);TextView subtitle=text(L10n.format("对端 ID {0}",id),15,false);subtitle.setTextColor(SECONDARY);titles.addView(subtitle);header.addView(titles,new LinearLayout.LayoutParams(0,-2,1));header.addView(ui.iconButton("close",L10n.tr("关闭"),dialog::dismiss),ui.size(36,36));sheet.addView(header);ui.gap(sheet,18);
|
||||
LinearLayout passwordRow=row();ui.card(passwordRow,10);EditText password=field(L10n.tr("访问密码"),InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD);password.setBackgroundColor(Color.TRANSPARENT);passwordRow.addView(password,new LinearLayout.LayoutParams(0,dp(50),1));
|
||||
View eye=ui.iconButton("eye",L10n.tr("显示密码"),()->{boolean hidden=password.getTransformationMethod()!=null;password.setTransformationMethod(hidden?null:PasswordTransformationMethod.getInstance());password.setSelection(password.length());});passwordRow.addView(eye,ui.size(44,44));sheet.addView(passwordRow);ui.gap(sheet,18);
|
||||
LinearLayout save=row(),saveText=column();saveText.addView(text(L10n.tr("保存密码"),15,true));ui.gap(saveText,3);TextView security=text(L10n.tr("密码将加密保存在本机 Android Keystore 中"),11,false);security.setTextColor(SECONDARY);saveText.addView(security);save.addView(saveText,new LinearLayout.LayoutParams(0,-2,1));Switch remember=new Switch(this);remember.setContentDescription(L10n.tr("保存密码"));save.addView(remember);sheet.addView(save);
|
||||
remember.setChecked(rememberDefault);
|
||||
ui.gap(sheet,18);TextView connect=ui.primary("连接",()->{
|
||||
String secret=password.getText().toString();if(secret.isEmpty()||secret.length()>128||secret.contains("@")){password.setError("请输入有效访问密码");return;}
|
||||
ui.gap(sheet,18);TextView connect=ui.primary(L10n.tr("连接"),()->{
|
||||
String secret=password.getText().toString();if(secret.isEmpty()||secret.length()>128||secret.contains("@")){password.setError(L10n.tr("请输入有效访问密码"));return;}
|
||||
rememberPassword=remember.isChecked();password.setText("");dialog.dismiss();begin(id,secret);
|
||||
});connect.setContentDescription("确认连接");sheet.addView(connect,ui.size(-1,48));
|
||||
});connect.setContentDescription(L10n.tr("确认连接"));sheet.addView(connect,ui.size(-1,48));
|
||||
ScrollView scroll=new ScrollView(this);scroll.addView(sheet);
|
||||
dialog.setContentView(scroll);Window window=dialog.getWindow();if(window!=null){window.setBackgroundDrawableResource(android.R.color.transparent);window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);window.setDimAmount(.22f);}dialog.show();sizePasswordDialog();password.requestFocus();if(!error.isEmpty())password.setError(error);
|
||||
dialog.setOnDismissListener(d->{password.setText("");passwordDialog=null;});
|
||||
@@ -319,12 +319,12 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
previewCapture=previews.begin(serverKey(),id);previewCopying=false;previewAttempts=0;
|
||||
connectedRemote=id;pendingPassword=rememberPassword?secret:"";ready=false;muted=false;selectedDisplay=0;hostPlatform="";remoteClipboard="";displays=new JSONArray();preferences.edit().putString("lastRemote",id).apply();
|
||||
ensureSignaling();
|
||||
if(signaling==null){pendingPassword="";toast("请先完成联网授权");return;}
|
||||
if(signaling==null){pendingPassword="";toast(L10n.tr("请先完成联网授权"));return;}
|
||||
session=signaling;showProgress();session.connect(id,secret);
|
||||
}
|
||||
private void showProgress(){
|
||||
Dialog dialog=new Dialog(this);progressDialog=dialog;LinearLayout card=column();ui.card(card,24);card.setGravity(Gravity.CENTER_HORIZONTAL);LinearLayout body=column();body.setGravity(Gravity.CENTER);body.setPadding(dp(26),dp(24),dp(26),dp(20));
|
||||
ProgressBar spinner=new ProgressBar(this);spinner.setIndeterminateTintList(ColorStateList.valueOf(BLUE));body.addView(spinner,ui.size(34,34));ui.gap(body,14);TextView title=text("正在连接",20,true);title.setGravity(Gravity.CENTER);body.addView(title);ui.gap(body,6);status=text("正在连接信令服务器…",14,false);status.setGravity(Gravity.CENTER);status.setTextColor(SECONDARY);status.setMinHeight(dp(36));body.addView(status);card.addView(body,ui.size(-1,-2));ui.divider(card);card.addView(ui.action("取消连接",RED,()->end("")),ui.size(-1,46));
|
||||
ProgressBar spinner=new ProgressBar(this);spinner.setIndeterminateTintList(ColorStateList.valueOf(BLUE));body.addView(spinner,ui.size(34,34));ui.gap(body,14);TextView title=text(L10n.tr("正在连接"),20,true);title.setGravity(Gravity.CENTER);body.addView(title);ui.gap(body,6);status=text(L10n.tr("正在连接信令服务器…"),14,false);status.setGravity(Gravity.CENTER);status.setTextColor(SECONDARY);status.setMinHeight(dp(36));body.addView(status);card.addView(body,ui.size(-1,-2));ui.divider(card);card.addView(ui.action(L10n.tr("取消连接"),RED,()->end("")),ui.size(-1,46));
|
||||
dialog.setContentView(card);dialog.setCanceledOnTouchOutside(false);dialog.setOnCancelListener(d->end(""));Window w=dialog.getWindow();if(w!=null){w.setBackgroundDrawableResource(android.R.color.transparent);w.setDimAmount(.08f);}dialog.show();if(w!=null)w.setLayout(dp(292),-2);
|
||||
}
|
||||
private void sessionScreen(boolean autoLandscape){
|
||||
@@ -349,7 +349,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
});
|
||||
pictureInPicture.connected();updatePictureInPicture();
|
||||
}
|
||||
private void confirmDisconnect(){disconnectDialog=new AlertDialog.Builder(this).setTitle("断开远程连接?").setMessage("断开后将返回首页").setNegativeButton("取消",null).setPositiveButton("断开连接",(d,w)->end("")).show();}
|
||||
private void confirmDisconnect(){disconnectDialog=new AlertDialog.Builder(this).setTitle(L10n.tr("断开远程连接?")).setMessage(L10n.tr("断开后将返回首页")).setNegativeButton(L10n.tr("取消"),null).setPositiveButton(L10n.tr("断开连接"),(d,w)->end("")).show();}
|
||||
private void end(String reason){
|
||||
dismissPrivacyUnlockDialog();
|
||||
remoteOrientation.end();
|
||||
@@ -367,48 +367,48 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
appUpdates.checkNow();
|
||||
}
|
||||
private void settings(){
|
||||
LinearLayout content=formPage("settings","设置",()->home(""));
|
||||
LinearLayout mouse=section(content,"鼠标控制",MobileUi.SETTINGS_CARD_RADIUS);mouse.setPadding(dp(12),dp(12),dp(12),dp(12));boolean relative=preferences.getBoolean("relativeMouse",true);
|
||||
mouse.addView(segments(new String[]{"相对位置","绝对位置"},relative?0:1,true,index->preferences.edit().putBoolean("relativeMouse",index==0).apply()));
|
||||
LinearLayout picture=section(content,"画面偏好",MobileUi.SETTINGS_CARD_RADIUS);picture.setPadding(dp(12),dp(12),dp(12),dp(12));int preference=Math.max(0,Math.min(2,preferences.getInt("videoPreference",1)));
|
||||
picture.addView(segments(RemoteVideoSettings.PREFERENCES,preference,true,index->preferences.edit().putInt("videoPreference",index).apply()));ui.gap(content,28);
|
||||
LinearLayout direction=section(content,"屏幕方向",MobileUi.SETTINGS_CARD_RADIUS);LinearLayout directionRow=row();directionRow.setPadding(dp(16),dp(10),dp(16),dp(10));directionRow.addView(text("连接建立后锁定横屏",16,false),new LinearLayout.LayoutParams(0,-2,1));
|
||||
Switch autoLandscape=new Switch(this);autoLandscape.setContentDescription("连接建立后锁定横屏");autoLandscape.setChecked(preferences.getBoolean("autoLandscape",false));autoLandscape.setOnCheckedChangeListener((button,checked)->preferences.edit().putBoolean("autoLandscape",checked).apply());directionRow.addView(autoLandscape);direction.addView(directionRow);
|
||||
footer(content,"默认关闭。开启后,手机连接时进入并保持横屏;关闭时跟随设备方向。平板和多窗口不受影响。");
|
||||
LinearLayout content=formPage("settings",L10n.tr("设置"),()->home(""));
|
||||
LinearLayout mouse=section(content,L10n.tr("鼠标控制"),MobileUi.SETTINGS_CARD_RADIUS);mouse.setPadding(dp(12),dp(12),dp(12),dp(12));boolean relative=preferences.getBoolean("relativeMouse",true);
|
||||
mouse.addView(segments(new String[]{L10n.tr("相对位置"),L10n.tr("绝对位置")},relative?0:1,true,index->preferences.edit().putBoolean("relativeMouse",index==0).apply()));
|
||||
LinearLayout picture=section(content,L10n.tr("画面偏好"),MobileUi.SETTINGS_CARD_RADIUS);picture.setPadding(dp(12),dp(12),dp(12),dp(12));int preference=Math.max(0,Math.min(2,preferences.getInt("videoPreference",1)));
|
||||
picture.addView(segments(RemoteVideoSettings.preferences(),preference,true,index->preferences.edit().putInt("videoPreference",index).apply()));ui.gap(content,28);
|
||||
LinearLayout direction=section(content,L10n.tr("屏幕方向"),MobileUi.SETTINGS_CARD_RADIUS);LinearLayout directionRow=row();directionRow.setPadding(dp(16),dp(10),dp(16),dp(10));directionRow.addView(text(L10n.tr("连接建立后锁定横屏"),16,false),new LinearLayout.LayoutParams(0,-2,1));
|
||||
Switch autoLandscape=new Switch(this);autoLandscape.setContentDescription(L10n.tr("连接建立后锁定横屏"));autoLandscape.setChecked(preferences.getBoolean("autoLandscape",false));autoLandscape.setOnCheckedChangeListener((button,checked)->preferences.edit().putBoolean("autoLandscape",checked).apply());directionRow.addView(autoLandscape);direction.addView(directionRow);
|
||||
footer(content,L10n.tr("默认关闭。开启后,手机连接时进入并保持横屏;关闭时跟随设备方向。平板和多窗口不受影响。"));
|
||||
LinearLayout server=section(content,"",MobileUi.SETTINGS_CARD_RADIUS);LinearLayout fields=column();fields.setVisibility(View.GONE);boolean custom=!host.equals("api.crossdesk.cn")||port!=9099;
|
||||
link(server,"服务器",custom?"自定义":"默认",()->fields.setVisibility(fields.getVisibility()==View.VISIBLE?View.GONE:View.VISIBLE));server.addView(fields);
|
||||
LinearLayout toggleRow=row();toggleRow.setPadding(dp(16),dp(8),dp(16),dp(8));toggleRow.addView(text("使用自定义服务器",16,false),new LinearLayout.LayoutParams(0,-2,1));Switch toggle=new Switch(this);toggle.setContentDescription("使用自定义服务器");toggle.setChecked(custom);toggleRow.addView(toggle);fields.addView(toggleRow);
|
||||
LinearLayout inputs=column();inputs.setPadding(dp(12),0,dp(12),dp(12));EditText address=field("服务器地址",InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_URI),number=field("服务器端口",InputType.TYPE_CLASS_NUMBER);address.setText(custom?host:"");number.setText(custom?String.valueOf(port):"");inputs.addView(address,ui.size(-1,48));ui.gap(inputs,8);inputs.addView(number,ui.size(-1,48));ui.gap(inputs,8);
|
||||
inputs.addView(ui.action("完成",BLUE,()->{if(saveServer(address,number)){hideKeyboard();settings();}}));fields.addView(inputs);inputs.setVisibility(custom?View.VISIBLE:View.GONE);
|
||||
link(server,L10n.tr("服务器"),custom?L10n.tr("自定义"):L10n.tr("默认"),()->fields.setVisibility(fields.getVisibility()==View.VISIBLE?View.GONE:View.VISIBLE));server.addView(fields);
|
||||
LinearLayout toggleRow=row();toggleRow.setPadding(dp(16),dp(8),dp(16),dp(8));toggleRow.addView(text(L10n.tr("使用自定义服务器"),16,false),new LinearLayout.LayoutParams(0,-2,1));Switch toggle=new Switch(this);toggle.setContentDescription(L10n.tr("使用自定义服务器"));toggle.setChecked(custom);toggleRow.addView(toggle);fields.addView(toggleRow);
|
||||
LinearLayout inputs=column();inputs.setPadding(dp(12),0,dp(12),dp(12));EditText address=field(L10n.tr("服务器地址"),InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_URI),number=field(L10n.tr("服务器端口"),InputType.TYPE_CLASS_NUMBER);address.setText(custom?host:"");number.setText(custom?String.valueOf(port):"");inputs.addView(address,ui.size(-1,48));ui.gap(inputs,8);inputs.addView(number,ui.size(-1,48));ui.gap(inputs,8);
|
||||
inputs.addView(ui.action(L10n.tr("完成"),BLUE,()->{if(saveServer(address,number)){hideKeyboard();settings();}}));fields.addView(inputs);inputs.setVisibility(custom?View.VISIBLE:View.GONE);
|
||||
toggle.setOnCheckedChangeListener((button,checked)->{inputs.setVisibility(checked?View.VISIBLE:View.GONE);if(!checked){host="api.crossdesk.cn";port=9099;preferences.edit().putString("host",host).putInt("port",port).apply();ensureSignaling();} });
|
||||
backAction=()->{if(toggle.isChecked()&&!saveServer(address,number))return;hideKeyboard();home("");};
|
||||
identitySummary=text("",12,false);identitySummary.setTextColor(SECONDARY);identitySummary.setGravity(Gravity.CENTER);identitySummary.setPadding(dp(16),dp(12),dp(16),dp(16));identitySummary.setTextIsSelectable(true);content.addView(identitySummary);renderSignaling();
|
||||
LinearLayout privacy=section(content,"隐私",MobileUi.SETTINGS_CARD_RADIUS);link(privacy,"隐私与授权",preferences.getBoolean("networkConsent",false)?"已授权":"未授权",this::privacyPage);ui.divider(privacy);
|
||||
LinearLayout preview=row();preview.setPadding(dp(16),dp(10),dp(16),dp(10));preview.addView(text("保存远程画面预览",16,false),new LinearLayout.LayoutParams(0,-2,1));previewSwitch=new Switch(this);previewSwitch.setContentDescription("保存远程画面预览");preview.addView(previewSwitch);privacy.addView(preview);
|
||||
LinearLayout privacy=section(content,L10n.tr("隐私"),MobileUi.SETTINGS_CARD_RADIUS);link(privacy,L10n.tr("隐私与授权"),preferences.getBoolean("networkConsent",false)?L10n.tr("已授权"):L10n.tr("未授权"),this::privacyPage);ui.divider(privacy);
|
||||
LinearLayout preview=row();preview.setPadding(dp(16),dp(10),dp(16),dp(10));preview.addView(text(L10n.tr("保存远程画面预览"),16,false),new LinearLayout.LayoutParams(0,-2,1));previewSwitch=new Switch(this);previewSwitch.setContentDescription(L10n.tr("保存远程画面预览"));preview.addView(previewSwitch);privacy.addView(preview);
|
||||
previewSwitch.setOnCheckedChangeListener((button,checked)->{if(updatingPreviewSwitch)return;if(checked){renderPreviews();confirmPreviewSaving();}else previews.setEnabled(false);});
|
||||
ui.divider(privacy);clearPreviewsButton=ui.action("清除预览图",RED,this::confirmClearPreviews);clearPreviewsButton.setGravity(Gravity.START|Gravity.CENTER_VERTICAL);clearPreviewsButton.setTypeface(Typeface.DEFAULT);clearPreviewsButton.setPadding(dp(16),0,dp(16),0);privacy.addView(clearPreviewsButton,ui.size(-1,48));
|
||||
ui.divider(privacy);clearPreviewsButton=ui.action(L10n.tr("清除预览图"),RED,this::confirmClearPreviews);clearPreviewsButton.setGravity(Gravity.START|Gravity.CENTER_VERTICAL);clearPreviewsButton.setTypeface(Typeface.DEFAULT);clearPreviewsButton.setPadding(dp(16),0,dp(16),0);privacy.addView(clearPreviewsButton,ui.size(-1,48));
|
||||
previewCleanupError=text("",12,false);previewCleanupError.setTextColor(RED);previewCleanupError.setPadding(dp(16),dp(8),dp(16),dp(12));privacy.addView(previewCleanupError);renderPreviews();
|
||||
ui.gap(content,28);LinearLayout about=section(content,"",MobileUi.SETTINGS_CARD_RADIUS);LinearLayout aboutLink=link(about,"关于","新版本",this::about);aboutUpdateRow=aboutLink;
|
||||
ui.gap(content,28);LinearLayout about=section(content,"",MobileUi.SETTINGS_CARD_RADIUS);LinearLayout aboutLink=link(about,L10n.tr("关于"),L10n.tr("新版本"),this::about);aboutUpdateRow=aboutLink;
|
||||
aboutUpdateLabel=(TextView)aboutLink.getChildAt(1);aboutUpdateLabel.setPadding(0,0,dp(8),0);
|
||||
aboutUpdateDot=updateDot();LinearLayout.LayoutParams dotPosition=new LinearLayout.LayoutParams(dp(8),dp(8));dotPosition.setMarginEnd(dp(8));aboutLink.addView(aboutUpdateDot,2,dotPosition);renderAppUpdates();
|
||||
}
|
||||
private void confirmPreviewSaving(){
|
||||
previewDialog=new AlertDialog.Builder(this).setTitle("保存远程画面预览?")
|
||||
.setMessage("预览可能包含远程电脑上的个人或工作信息。开启后,每次连接会自动将一张画面保存在本机并显示在最近连接中。你可以随时关闭并清除。")
|
||||
.setNegativeButton("取消",null).setPositiveButton("开启保存",(d,w)->previews.setEnabled(true)).show();
|
||||
previewDialog=new AlertDialog.Builder(this).setTitle(L10n.tr("保存远程画面预览?"))
|
||||
.setMessage(L10n.tr("预览可能包含远程电脑上的个人或工作信息。开启后,每次连接会自动将一张画面保存在本机并显示在最近连接中。你可以随时关闭并清除。"))
|
||||
.setNegativeButton(L10n.tr("取消"),null).setPositiveButton(L10n.tr("开启保存"),(d,w)->previews.setEnabled(true)).show();
|
||||
previewDialog.setOnDismissListener(d->{previewDialog=null;renderPreviews();});
|
||||
}
|
||||
private void confirmClearPreviews(){
|
||||
previewDialog=new AlertDialog.Builder(this).setTitle("清除预览图?")
|
||||
.setMessage("将删除本机保存的所有远程预览图,保留连接记录和密码。"+(previews.enabled()?"后续连接仍会保存新的预览图。":""))
|
||||
.setNegativeButton("取消",null).setPositiveButton("清除",(d,w)->previews.clear()).show();
|
||||
previewDialog=new AlertDialog.Builder(this).setTitle(L10n.tr("清除预览图?"))
|
||||
.setMessage(L10n.tr("将删除本机保存的所有远程预览图,保留连接记录和密码。")+(previews.enabled()?L10n.tr("后续连接仍会保存新的预览图。"):""))
|
||||
.setNegativeButton(L10n.tr("取消"),null).setPositiveButton(L10n.tr("清除"),(d,w)->previews.clear()).show();
|
||||
previewDialog.setOnDismissListener(d->previewDialog=null);
|
||||
}
|
||||
private void renderPreviews(){
|
||||
if(previews==null)return;
|
||||
if(!previews.enabled()||previews.cleaning)previewCapture=null;
|
||||
if(previewSwitch!=null){updatingPreviewSwitch=true;previewSwitch.setChecked(previews.enabled());previewSwitch.setEnabled(preferences.getBoolean("networkConsent",false)&&!previews.cleaning);updatingPreviewSwitch=false;}
|
||||
if(clearPreviewsButton!=null){clearPreviewsButton.setText(previews.cleaning?"正在清除…":"清除预览图");clearPreviewsButton.setEnabled(!previews.cleaning);}
|
||||
if(clearPreviewsButton!=null){clearPreviewsButton.setText(previews.cleaning?L10n.tr("正在清除…"):L10n.tr("清除预览图"));clearPreviewsButton.setEnabled(!previews.cleaning);}
|
||||
if(previewCleanupError!=null){previewCleanupError.setText(previews.cleanupError);previewCleanupError.setVisibility(previews.cleanupError.isEmpty()?View.GONE:View.VISIBLE);}
|
||||
for(Runnable card:previewCards)card.run();
|
||||
}
|
||||
@@ -427,17 +427,17 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
return new SegmentedControl(ui,titles,selected,enabled,changed);
|
||||
}
|
||||
private boolean saveServer(EditText address,EditText number){
|
||||
String name=address.getText().toString().trim();int value;try{value=Integer.parseInt(number.getText().toString());}catch(NumberFormatException e){number.setError("请输入 1–65535 范围内的端口");return false;}
|
||||
if(name.length()>253||!name.matches("[A-Za-z0-9.-]+")||name.startsWith(".")||name.endsWith(".")){address.setError("填写主机名或 IPv4 地址,不含协议和路径");return false;}if(value<1||value>65535){number.setError("端口范围为 1–65535");return false;}host=name;port=value;preferences.edit().putString("host",host).putInt("port",port).apply();ensureSignaling();return true;
|
||||
String name=address.getText().toString().trim();int value;try{value=Integer.parseInt(number.getText().toString());}catch(NumberFormatException e){number.setError(L10n.tr("请输入 1–65535 范围内的端口"));return false;}
|
||||
if(name.length()>253||!name.matches("[A-Za-z0-9.-]+")||name.startsWith(".")||name.endsWith(".")){address.setError(L10n.tr("填写主机名或 IPv4 地址,不含协议和路径"));return false;}if(value<1||value>65535){number.setError(L10n.tr("端口范围为 1–65535"));return false;}host=name;port=value;preferences.edit().putString("host",host).putInt("port",port).apply();ensureSignaling();return true;
|
||||
}
|
||||
private void announcements(){
|
||||
installRoot("announcements",false);LinearLayout bar=navigation("通知公告",()->home(""));
|
||||
bar.removeViewAt(bar.getChildCount()-1);announcementRefresh=ui.iconButton("refresh","刷新公告",announcementInbox::refresh);bar.addView(announcementRefresh,ui.size(44,44));
|
||||
installRoot("announcements",false);LinearLayout bar=navigation(L10n.tr("通知公告"),()->home(""));
|
||||
bar.removeViewAt(bar.getChildCount()-1);announcementRefresh=ui.iconButton("refresh",L10n.tr("刷新公告"),announcementInbox::refresh);bar.addView(announcementRefresh,ui.size(44,44));
|
||||
announcementView=new AnnouncementView(ui,announcementInbox,null,this::announcementDetail,this::connectAnnouncements);
|
||||
root.addView(announcementView,new LinearLayout.LayoutParams(-1,0,1));announcementInbox.refresh();renderAnnouncements();
|
||||
}
|
||||
private void announcementDetail(AnnouncementInbox.Item item){
|
||||
installRoot("announcement-detail",false);navigation("公告详情",this::announcements);
|
||||
installRoot("announcement-detail",false);navigation(L10n.tr("公告详情"),this::announcements);
|
||||
announcementView=new AnnouncementView(ui,announcementInbox,item,this::announcementDetail,this::connectAnnouncements);
|
||||
root.addView(announcementView,new LinearLayout.LayoutParams(-1,0,1));announcementInbox.markRead(item);
|
||||
}
|
||||
@@ -447,7 +447,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
}
|
||||
private void renderAnnouncements(){
|
||||
if(announcementBadge!=null){int unread=announcementInbox.unread;announcementBadge.setText(unread>99?"99+":String.valueOf(unread));announcementBadge.setVisibility(unread>0?View.VISIBLE:View.GONE);
|
||||
if(android.os.Build.VERSION.SDK_INT>=30)((View)announcementBadge.getParent()).setStateDescription(unread>0?unread+" 条未读":"无未读公告");}
|
||||
if(android.os.Build.VERSION.SDK_INT>=30)((View)announcementBadge.getParent()).setStateDescription(unread>0?L10n.format("{0} 条未读",unread):L10n.tr("无未读公告"));}
|
||||
if(announcementRefresh!=null){boolean enabled=announcementInbox.isConnected()&&!announcementInbox.loading;announcementRefresh.setEnabled(enabled);announcementRefresh.setAlpha(enabled?1:.4f);}
|
||||
if(announcementView!=null)announcementView.render();
|
||||
}
|
||||
@@ -457,12 +457,12 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
}
|
||||
@Override public void announcementFailed(String requestId){announcementInbox.failed(requestId);}
|
||||
private void privacyPage(){
|
||||
LinearLayout content=formPage("privacy","隐私与授权",this::settings);LinearLayout card=section(content,"");boolean consent=preferences.getBoolean("networkConsent",false);link(card,"授权状态",consent?"已授权":"未授权",()->{});ui.divider(card);link(card,"隐私政策","",this::privacyPolicyPage);
|
||||
footer(content,"设备身份及选择保存的访问密码使用 Android Keystore 加密。连接记录仅保存在本机,不纳入设备备份。剪贴板内容在结束会话时清除。离开应用后通过画中画或连接通知保持会话,可在应用或通知中断开。");
|
||||
if(consent)content.addView(ui.action("撤回联网授权",RED,()->new AlertDialog.Builder(this).setTitle("撤回联网授权?").setMessage("撤回后将停止远程连接、关闭画面预览保存并清除已有预览。连接记录和密码会保留,重新连接前需再次授权。").setNegativeButton("取消",null).setPositiveButton("撤回",(d,w)->{preferences.edit().putBoolean("networkConsent",false).apply();appUpdates.setEnabled(false);previews.setEnabled(false);stopSignaling();announcementInbox.reset();privacyPage();}).show()));else content.addView(ui.primary("阅读并授权",()->consent(this::privacyPage)));
|
||||
LinearLayout content=formPage("privacy",L10n.tr("隐私与授权"),this::settings);LinearLayout card=section(content,"");boolean consent=preferences.getBoolean("networkConsent",false);link(card,L10n.tr("授权状态"),consent?L10n.tr("已授权"):L10n.tr("未授权"),()->{});ui.divider(card);link(card,L10n.tr("隐私政策"),"",this::privacyPolicyPage);
|
||||
footer(content,L10n.tr("设备身份及选择保存的访问密码使用 Android Keystore 加密。连接记录仅保存在本机,不纳入设备备份。剪贴板内容在结束会话时清除。离开应用后通过画中画或连接通知保持会话,可在应用或通知中断开。"));
|
||||
if(consent)content.addView(ui.action(L10n.tr("撤回联网授权"),RED,()->new AlertDialog.Builder(this).setTitle(L10n.tr("撤回联网授权?")).setMessage(L10n.tr("撤回后将停止远程连接、关闭画面预览保存并清除已有预览。连接记录和密码会保留,重新连接前需再次授权。")).setNegativeButton(L10n.tr("取消"),null).setPositiveButton(L10n.tr("撤回"),(d,w)->{preferences.edit().putBoolean("networkConsent",false).apply();appUpdates.setEnabled(false);previews.setEnabled(false);stopSignaling();announcementInbox.reset();privacyPage();}).show()));else content.addView(ui.primary(L10n.tr("阅读并授权"),()->consent(this::privacyPage)));
|
||||
}
|
||||
private void privacyPolicyPage(){
|
||||
installRoot("privacy-policy",false);navigation("隐私政策",this::privacyPage);
|
||||
installRoot("privacy-policy",false);navigation(L10n.tr("隐私政策"),this::privacyPage);
|
||||
root.addView(new PrivacyPolicyDocument(this).view(ui),new LinearLayout.LayoutParams(-1,0,1));
|
||||
}
|
||||
String applicationVersion(){
|
||||
@@ -479,8 +479,8 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
if(settingsUpdateDot!=null)settingsUpdateDot.setVisibility(available?View.VISIBLE:View.GONE);
|
||||
if(aboutUpdateDot!=null)aboutUpdateDot.setVisibility(available?View.VISIBLE:View.GONE);
|
||||
if(aboutUpdateLabel!=null)aboutUpdateLabel.setVisibility(available?View.VISIBLE:View.GONE);
|
||||
if(settingsUpdateButton!=null)settingsUpdateButton.setContentDescription(available?"设置,有新版本":"设置");
|
||||
if(aboutUpdateRow!=null)aboutUpdateRow.setContentDescription(available?"关于,有新版本":"关于");
|
||||
if(settingsUpdateButton!=null)settingsUpdateButton.setContentDescription(available?L10n.tr("设置,有新版本"):L10n.tr("设置"));
|
||||
if(aboutUpdateRow!=null)aboutUpdateRow.setContentDescription(available?L10n.tr("关于,有新版本"):L10n.tr("关于"));
|
||||
if(aboutPages!=null&&page.equals("about"))aboutPages.renderUpdates();
|
||||
}
|
||||
private void about(){
|
||||
@@ -490,16 +490,16 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
private boolean sendTextEdit(int count,String value){
|
||||
if(session==null)return false;
|
||||
if(session.textEdit(count,value))return true;
|
||||
toast("当前远端不支持直接输入此文本,请使用支持文本输入的被控端版本,或通过剪贴板发送");return false;
|
||||
toast(L10n.tr("当前远端不支持直接输入此文本,请使用支持文本输入的被控端版本,或通过剪贴板发送"));return false;
|
||||
}
|
||||
private void tapKey(int code){if(session!=null){session.key(code,true);session.key(code,false);}}
|
||||
private void shortcut(int code){if(session!=null){int modifier=hostPlatform.equals("macos")?0x5B:0x11;session.key(modifier,true);tapKey(code);session.key(modifier,false);}}
|
||||
private void selectDisplay(){
|
||||
if(!ready)return;int count=Math.min(displays.length(),8);if(count==0){toast("等待远端屏幕信息");return;}String[] labels=new String[count];for(int i=0;i<count;i++){JSONObject display=displays.optJSONObject(i);labels[i]=(i+1)+" · "+(display==null?"显示器":display.optString("name","显示器"));}new AlertDialog.Builder(this).setTitle("显示器").setItems(labels,(d,w)->{if(session!=null){if(w!=selectedDisplay&&video!=null)video.resetViewport();selectedDisplay=w;session.control(4,w);if(controls!=null)controls.resetVideoStatistics();}}).show();
|
||||
if(!ready)return;int count=Math.min(displays.length(),8);if(count==0){toast(L10n.tr("等待远端屏幕信息"));return;}String[] labels=new String[count];for(int i=0;i<count;i++){JSONObject display=displays.optJSONObject(i);labels[i]=(i+1)+" · "+(display==null?L10n.tr("显示器"):display.optString("name",L10n.tr("显示器")));}new AlertDialog.Builder(this).setTitle(L10n.tr("显示器")).setItems(labels,(d,w)->{if(session!=null){if(w!=selectedDisplay&&video!=null)video.resetViewport();selectedDisplay=w;session.control(4,w);if(controls!=null)controls.resetVideoStatistics();}}).show();
|
||||
}
|
||||
private void secureAttention(){
|
||||
if(!ready||session==null||!hostPlatform.equals("windows"))return;
|
||||
if(!remoteServiceAvailable){controlFeedback("请在远端启用 CrossDesk 系统服务后重试");return;}
|
||||
if(!remoteServiceAvailable){controlFeedback(L10n.tr("请在远端启用 CrossDesk 系统服务后重试"));return;}
|
||||
session.secureAttention();
|
||||
}
|
||||
private void chooseFile(){
|
||||
@@ -516,7 +516,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
documentSession=session;releaseKeys();
|
||||
pictureInPicture.choosingDocument(true);updatePictureInPicture();
|
||||
try{startActivityForResult(intent,request);mainHandler.postDelayed(documentTimeout,5*60*1000);}
|
||||
catch(android.content.ActivityNotFoundException error){documentSession=null;documentToSave=null;pictureInPicture.choosingDocument(false);updatePictureInPicture();controlFeedback("此设备没有可用的文件选择器");}
|
||||
catch(android.content.ActivityNotFoundException error){documentSession=null;documentToSave=null;pictureInPicture.choosingDocument(false);updatePictureInPicture();controlFeedback(L10n.tr("此设备没有可用的文件选择器"));}
|
||||
}
|
||||
@Override protected void onActivityResult(int request,int result,Intent data){
|
||||
super.onActivityResult(request,result,data);
|
||||
@@ -530,7 +530,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
@Override public void fileTransfer(String name,double progress,boolean sending,java.io.File received){
|
||||
if(!ready)return;
|
||||
if(received!=null)receivedFile=received;
|
||||
String fileStatus=progress<0?name+" 传输失败":(sending?"发送 ":"接收 ")+name+(progress>=1?" · 已完成":" · "+(int)(progress*100)+"%");
|
||||
String fileStatus=progress<0?L10n.format("{0} 传输失败",name):(sending?L10n.tr("发送 "):L10n.tr("接收 "))+name+(progress>=1?L10n.tr(" · 已完成"):" · "+(int)(progress*100)+"%");
|
||||
if(controls!=null)controls.fileStatus(fileStatus,receivedFile!=null);
|
||||
if(progress<0||progress>=1)toast(fileStatus);
|
||||
}
|
||||
@@ -539,14 +539,14 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
}
|
||||
private void clipboard(){
|
||||
if(!ready)return;
|
||||
EditText input=field("要发送到远端的文本",InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);input.setSingleLine(false);input.setMinLines(3);
|
||||
new AlertDialog.Builder(this).setTitle("剪贴板").setView(input)
|
||||
.setMessage("发送后,在远程键盘中点击“粘贴”。接收的远端文本可手动复制到本机。")
|
||||
.setNegativeButton("关闭",null).setNeutralButton("复制远端文本",(d,w)->{
|
||||
EditText input=field(L10n.tr("要发送到远端的文本"),InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);input.setSingleLine(false);input.setMinLines(3);
|
||||
new AlertDialog.Builder(this).setTitle(L10n.tr("剪贴板")).setView(input)
|
||||
.setMessage(L10n.tr("发送后,在远程键盘中点击“粘贴”。接收的远端文本可手动复制到本机。"))
|
||||
.setNegativeButton(L10n.tr("关闭"),null).setNeutralButton(L10n.tr("复制远端文本"),(d,w)->{
|
||||
if(!remoteClipboard.isEmpty())((ClipboardManager)getSystemService(CLIPBOARD_SERVICE)).setPrimaryClip(ClipData.newPlainText("CrossDesk",remoteClipboard));
|
||||
}).setPositiveButton("发送文本",(d,w)->{
|
||||
}).setPositiveButton(L10n.tr("发送文本"),(d,w)->{
|
||||
String value=input.getText().toString();
|
||||
if(value.getBytes(java.nio.charset.StandardCharsets.UTF_8).length>128*1024){Toast.makeText(this,"文本超过 128 KB",Toast.LENGTH_SHORT).show();return;}
|
||||
if(value.getBytes(java.nio.charset.StandardCharsets.UTF_8).length>128*1024){Toast.makeText(this,L10n.tr("文本超过 128 KB"),Toast.LENGTH_SHORT).show();return;}
|
||||
if(session!=null)session.clipboard(value);
|
||||
}).show();
|
||||
}
|
||||
@@ -581,17 +581,17 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
boolean consent=preferences.getBoolean("networkConsent",false);
|
||||
boolean connected=consent&&signalError.isEmpty()&&signalState==1;
|
||||
String label;int tint,background;
|
||||
if(!consent){label="等待隐私授权";tint=0xFFB76A00;background=0xFFFFEBD2;}
|
||||
else if(!signalError.isEmpty()){label=signalError.contains("TLS")?"证书校验失败 · 点击重试":"连接失败 · 点击重试";tint=RED;background=0xFFFFE8E6;}
|
||||
else if(connected){label="已连接服务器";tint=GREEN;background=0xFFE5F4E8;}
|
||||
else{label=signalState==0?"正在连接服务器…":signalState==4?"正在重连服务器…":"未连接服务器 · 点击重试";tint=0xFFB76A00;background=0xFFFFEBD2;}
|
||||
if(!consent){label=L10n.tr("等待隐私授权");tint=0xFFB76A00;background=0xFFFFEBD2;}
|
||||
else if(!signalError.isEmpty()){label=signalError.contains("TLS")?L10n.tr("证书校验失败 · 点击重试"):L10n.tr("连接失败 · 点击重试");tint=RED;background=0xFFFFE8E6;}
|
||||
else if(connected){label=L10n.tr("已连接服务器");tint=GREEN;background=0xFFE5F4E8;}
|
||||
else{label=signalState==0?L10n.tr("正在连接服务器…"):signalState==4?L10n.tr("正在重连服务器…"):L10n.tr("未连接服务器 · 点击重试");tint=0xFFB76A00;background=0xFFFFEBD2;}
|
||||
if(signalBadge!=null){
|
||||
android.graphics.drawable.Drawable icon=connected?getDrawable(R.drawable.ic_check_circle):null;
|
||||
if(icon!=null){int size=dp(14);icon.setBounds(0,0,size,size);}
|
||||
signalBadge.setCompoundDrawablesRelative(icon,null,null,null);signalBadge.setCompoundDrawablePadding(dp(6));
|
||||
signalBadge.setText(label);signalBadge.setTextColor(tint);signalBadge.setBackground(ui.background(background,20));signalBadge.setContentDescription(signalError.isEmpty()?label:signalError+",点击重试");
|
||||
signalBadge.setText(label);signalBadge.setTextColor(tint);signalBadge.setBackground(ui.background(background,20));signalBadge.setContentDescription(signalError.isEmpty()?label:signalError+L10n.tr(",点击重试"));
|
||||
}
|
||||
if(identitySummary!=null)identitySummary.setText(!consent?"完成隐私授权后登记本机身份":!localIdentity.isEmpty()?"本机 ID "+localIdentity:!signalError.isEmpty()?signalError:"正在获取本机 ID…");
|
||||
if(identitySummary!=null)identitySummary.setText(!consent?L10n.tr("完成隐私授权后登记本机身份"):!localIdentity.isEmpty()?L10n.format("本机 ID {0}",localIdentity):!signalError.isEmpty()?signalError:L10n.tr("正在获取本机 ID…"));
|
||||
}
|
||||
@Override public void signaling(int state,String deviceId){
|
||||
signalState=state;localIdentity=deviceId;signalError="";renderSignaling();
|
||||
@@ -606,7 +606,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
// Transport readiness can be reported again after ICE changes its selected path.
|
||||
// The first success consumes pendingPassword; a duplicate must not save it again.
|
||||
if(session==null||ready)return;ready=true;if(progressDialog!=null){progressDialog.dismiss();progressDialog=null;}
|
||||
try{history.save(serverKey(),connectedRemote,connectedRemote,hostPlatform,rememberPassword,pendingPassword);}catch(Exception error){toast("密码保存失败,本次连接仍可使用");}pendingPassword="";sessionScreen(preferences.getBoolean("autoLandscape",false));
|
||||
try{history.save(serverKey(),connectedRemote,connectedRemote,hostPlatform,rememberPassword,pendingPassword);}catch(Exception error){toast(L10n.tr("密码保存失败,本次连接仍可使用"));}pendingPassword="";sessionScreen(preferences.getBoolean("autoLandscape",false));
|
||||
if(!canUsePictureInPicture())prepareBackgroundSession(true);
|
||||
if(videoSettings.supported&&videoSettings.requestId==0)updateVideoSettings(videoSettings.selection);
|
||||
if(foreground&&preferences.getBoolean("networkConsent",false))remoteVersionCheck.connected();
|
||||
@@ -620,12 +620,12 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
String id=connectedRemote;boolean remember=rememberPassword;
|
||||
end("");
|
||||
// Let the user replace an expired credential; never retry it automatically.
|
||||
if(foreground)passwordSheet(id,"访问密码错误,请重新输入",remember);
|
||||
if(foreground)passwordSheet(id,L10n.tr("访问密码错误,请重新输入"),remember);
|
||||
}
|
||||
private void cancelVideoSettingsTimeout(){if(videoSettingsTimeout!=null)mainHandler.removeCallbacks(videoSettingsTimeout);videoSettingsTimeout=null;}
|
||||
private void showRemoteUpdate(){
|
||||
if(!ready||session==null||!foreground||pictureInPictureUi||isInPictureInPictureMode()||isFinishing()||!preferences.getBoolean("networkConsent",false))return;
|
||||
remoteUpdateDialog=new AlertDialog.Builder(this).setTitle("升级提示").setMessage(RemoteVersionCheck.NOTICE).setPositiveButton("知道了",null).create();
|
||||
remoteUpdateDialog=new AlertDialog.Builder(this).setTitle(L10n.tr("升级提示")).setMessage(L10n.tr(RemoteVersionCheck.NOTICE)).setPositiveButton(L10n.tr("知道了"),null).create();
|
||||
remoteUpdateDialog.setOnDismissListener(dialog->remoteUpdateDialog=null);
|
||||
remoteUpdateDialog.setCanceledOnTouchOutside(false);
|
||||
remoteUpdateDialog.show();
|
||||
@@ -673,12 +673,12 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
releaseKeys();
|
||||
if (controls != null) { controls.closeKeyboard(); controls.cancelMouseInput(); }
|
||||
if (video != null) video.releaseMouse();
|
||||
privacyUnlockDialog = new AlertDialog.Builder(this).setTitle("隐私屏已被解锁")
|
||||
.setMessage("被控端已通过组合键解除隐私屏。点击“锁定”将重新开启隐私屏,并禁止本机使用组合键解锁。")
|
||||
.setNegativeButton("确认", (dialog, which) -> {
|
||||
privacyUnlockDialog = new AlertDialog.Builder(this).setTitle(L10n.tr("隐私屏已被解锁"))
|
||||
.setMessage(L10n.tr("被控端已通过组合键解除隐私屏。点击“锁定”将重新开启隐私屏,并禁止本机使用组合键解锁。"))
|
||||
.setNegativeButton(L10n.tr("确认"), (dialog, which) -> {
|
||||
if (session != null) session.privacyScreen.unlockNotice = false;
|
||||
dismissPrivacyUnlockDialog();
|
||||
}).setPositiveButton("锁定", null).create();
|
||||
}).setPositiveButton(L10n.tr("锁定"), null).create();
|
||||
privacyUnlockDialog.setCancelable(false);
|
||||
privacyUnlockDialog.show();
|
||||
privacyUnlockDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(view -> {
|
||||
@@ -686,7 +686,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
});
|
||||
}
|
||||
String feedback = session.privacyScreen.feedback(android.os.SystemClock.elapsedRealtime());
|
||||
privacyUnlockDialog.setMessage("被控端已通过组合键解除隐私屏。点击“锁定”将重新开启隐私屏,并禁止本机使用组合键解锁。"
|
||||
privacyUnlockDialog.setMessage(L10n.tr("被控端已通过组合键解除隐私屏。点击“锁定”将重新开启隐私屏,并禁止本机使用组合键解锁。")
|
||||
+ (feedback.isEmpty() ? "" : "\n\n" + feedback));
|
||||
privacyUnlockDialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(
|
||||
session.privacyScreen.canLock(android.os.SystemClock.elapsedRealtime()));
|
||||
@@ -744,10 +744,10 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
backgroundSession=retained;captureBackgroundSession();retained.attach(this);session.setListener(retained);
|
||||
if(!RemoteSessionService.retain(this,retained)){
|
||||
session.setListener(this);retained.detach(this);backgroundSession=null;
|
||||
if(inform)toast("后台保活未能启动,请保持应用在前台");return false;
|
||||
if(inform)toast(L10n.tr("后台保活未能启动,请保持应用在前台"));return false;
|
||||
}
|
||||
if(inform){
|
||||
toast("已启用后台保活,可从连接通知返回或断开");
|
||||
toast(L10n.tr("已启用后台保活,可从连接通知返回或断开"));
|
||||
requestBackgroundNotifications();
|
||||
}
|
||||
return true;
|
||||
@@ -762,7 +762,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
BackgroundSession retained=backgroundSession!=null?backgroundSession:RemoteSessionService.current();
|
||||
if(retained==null)return false;
|
||||
if(retained.ended||retained.session.isClosed()||!hasNetworkConsent()||!host.equals(retained.host)||port!=retained.port){
|
||||
retained.detach(this);retained.finish("后台连接已结束,请重新连接");backgroundSession=null;
|
||||
retained.detach(this);retained.finish(L10n.tr("后台连接已结束,请重新连接"));backgroundSession=null;
|
||||
if(session==retained.session)end(retained.endReason);return false;
|
||||
}
|
||||
boolean rebuild=session!=retained.session||video==null||!page.equals("session");
|
||||
@@ -832,7 +832,7 @@ public final class MainActivity extends Activity implements NativeSession.Listen
|
||||
mainHandler.removeCallbacks(presenceTick);recentPresence.setConnected(false,android.os.SystemClock.elapsedRealtime());announcementInbox.setConnected(false);
|
||||
cancelVideoSettingsTimeout();if(videoSettings.pending)videoSettings.expire(videoSettings.requestId);
|
||||
resetRemoteVersionCheck();if(disconnectDialog!=null)disconnectDialog.dismiss();
|
||||
}else if(documentSession==null||documentSession!=session||isFinishing()){if(session!=null)end(isFinishing()?"":"远程窗口已关闭,或后台保活未能启动,会话已结束");stopSignaling();}
|
||||
}else if(documentSession==null||documentSession!=session||isFinishing()){if(session!=null)end(isFinishing()?"":L10n.tr("远程窗口已关闭,或后台保活未能启动,会话已结束"));stopSignaling();}
|
||||
super.onStop();}
|
||||
@Override protected void onDestroy(){dismissPrivacyUnlockDialog();mainHandler.removeCallbacks(documentTimeout);documentSession=null;documentToSave=null;appUpdates.setEnabled(false);pageHost.finish();resetRemoteVersionCheck();cancelVideoSettingsTimeout();previews.removeListener(previewChanged);if(privacyDialog!=null)privacyDialog.dismiss();if(previewDialog!=null)previewDialog.dismiss();announcementInbox.close();if(disconnectDialog!=null)disconnectDialog.dismiss();if(passwordDialog!=null)passwordDialog.dismiss();if(progressDialog!=null)progressDialog.dismiss();
|
||||
if(connectionDialog!=null)connectionDialog.dismiss();
|
||||
|
||||
@@ -52,6 +52,7 @@ final class MobileUi {
|
||||
}
|
||||
TextView primary(String title,Runnable click) {
|
||||
TextView v=action(title,Color.WHITE,click);
|
||||
v.setMaxLines(2);v.setAutoSizeTextTypeUniformWithConfiguration(11,16,1,android.util.TypedValue.COMPLEX_UNIT_SP);
|
||||
GradientDrawable gradient=new GradientDrawable(GradientDrawable.Orientation.TL_BR,new int[]{BLUE,0xFF1F61C7});gradient.setCornerRadius(dp(12));v.setBackground(gradient);return v;
|
||||
}
|
||||
View iconButton(String icon,String label,Runnable click) {
|
||||
|
||||
@@ -35,7 +35,7 @@ final class NativeSession implements AutoCloseable {
|
||||
default void presence(JSONObject message) { }
|
||||
default void announcement(JSONObject message) { }
|
||||
default void announcementFailed(String requestId) { }
|
||||
default void passwordRejected() { ended("远端密码错误"); }
|
||||
default void passwordRejected() { ended(L10n.tr("远端密码错误")); }
|
||||
}
|
||||
// Serializes all peer creation/API calls/destruction, including across activities.
|
||||
private static final ExecutorService RTC = Executors.newSingleThreadExecutor(r -> new Thread(r, "CrossDesk RTC"));
|
||||
@@ -71,8 +71,8 @@ final class NativeSession implements AutoCloseable {
|
||||
if(!closed)main.postDelayed(this,1000);
|
||||
}};
|
||||
private final Runnable timeout = () -> fail(remote.isEmpty()
|
||||
? "服务器连接超时,请检查服务器地址和网络"
|
||||
: "连接超时,请检查设备 ID、服务器及远端在线状态");
|
||||
? L10n.tr("服务器连接超时,请检查服务器地址和网络")
|
||||
: L10n.tr("连接超时,请检查设备 ID、服务器及远端在线状态"));
|
||||
|
||||
NativeSession(Context context, String host, int port, String remote, String password, Listener listener) {
|
||||
this.context = context.getApplicationContext(); this.listener = listener;
|
||||
@@ -92,10 +92,10 @@ final class NativeSession implements AutoCloseable {
|
||||
File logs = new File(context.getNoBackupFilesDir(), "logs");
|
||||
if (!logs.isDirectory() && !logs.mkdirs()) throw new IllegalStateException("Log directory unavailable");
|
||||
handle = nCreate(this, host, port, identity, logs.getAbsolutePath(), certificates.getAbsolutePath());
|
||||
if (handle == 0) { fail("原生连接初始化失败"); return; }
|
||||
if (handle == 0) { fail(L10n.tr("原生连接初始化失败")); return; }
|
||||
nFileDirectory(handle,new File(documents.directory,"received").getAbsolutePath());
|
||||
if (surface != null && surface.isValid()) nSurface(handle, surface);
|
||||
} catch (Exception error) { fail("安全存储或证书初始化失败,请重试或清除应用数据"); }
|
||||
} catch (Exception error) { fail(L10n.tr("安全存储或证书初始化失败,请重试或清除应用数据")); }
|
||||
});
|
||||
}
|
||||
/** Promote the already registered identity peer to an outgoing desktop session. */
|
||||
@@ -147,7 +147,7 @@ final class NativeSession implements AutoCloseable {
|
||||
if (handle == 0 || joining || remote.isEmpty() || !signalReady || identity.isEmpty()) return;
|
||||
joining = true;
|
||||
String base = identity.split("@", 2)[0];
|
||||
if (!nConnect(handle, base, remote, password)) fail("无法发起远程连接");
|
||||
if (!nConnect(handle, base, remote, password)) fail(L10n.tr("无法发起远程连接"));
|
||||
password = "";
|
||||
}
|
||||
// Called on arbitrary native callback threads; borrowed payloads were copied by JNI.
|
||||
@@ -175,10 +175,10 @@ final class NativeSession implements AutoCloseable {
|
||||
publishSignaling();
|
||||
tryJoin();
|
||||
}
|
||||
if (status == 6) fail("服务器 TLS 证书校验失败");
|
||||
else if (status == 2) fail("服务器登录失败,请检查服务器地址和网络");
|
||||
else if (status >= 3 && connected) fail("信令连接中断,请重新连接");
|
||||
else if (status == 0 || status == 4) ui(() -> listener.status("正在连接信令服务器…"));
|
||||
if (status == 6) fail(L10n.tr("服务器 TLS 证书校验失败"));
|
||||
else if (status == 2) fail(L10n.tr("服务器登录失败,请检查服务器地址和网络"));
|
||||
else if (status >= 3 && connected) fail(L10n.tr("信令连接中断,请重新连接"));
|
||||
else if (status == 0 || status == 4) ui(() -> listener.status(L10n.tr("正在连接信令服务器…")));
|
||||
} else if (type == 2) {
|
||||
int status = event.getInt("status");
|
||||
if (status == 1) {
|
||||
@@ -187,12 +187,12 @@ final class NativeSession implements AutoCloseable {
|
||||
audio = new AudioPlayer();
|
||||
nControl(handle, 2, 1);
|
||||
ui(() -> { listener.connected(); if(!closed){statisticsTick.run();fileTick.run();} });
|
||||
} else if (status == 0 || status == 2) ui(() -> listener.status("正在建立安全连接…"));
|
||||
} else if (status == 0 || status == 2) ui(() -> listener.status(L10n.tr("正在建立安全连接…")));
|
||||
else if (status == 6) ui(() -> { listener.passwordRejected(); close(); });
|
||||
else {
|
||||
String[] reasons = {"", "", "", "连接已断开", "连接失败", "远端已关闭连接",
|
||||
"远端密码错误", "找不到该设备 ID", "远端当前不可用"};
|
||||
fail(status >= 0 && status < reasons.length ? reasons[status] : "连接已结束");
|
||||
String[] reasons = {"", "", "", L10n.tr("连接已断开"), L10n.tr("连接失败"), L10n.tr("远端已关闭连接"),
|
||||
L10n.tr("远端密码错误"), L10n.tr("找不到该设备 ID"), L10n.tr("远端当前不可用")};
|
||||
fail(status >= 0 && status < reasons.length ? reasons[status] : L10n.tr("连接已结束"));
|
||||
}
|
||||
} else if (type == 4) {
|
||||
if(event.optInt("type",-1)==14){
|
||||
@@ -228,7 +228,7 @@ final class NativeSession implements AutoCloseable {
|
||||
listener.fileTransfer(name,progress,sending,path.isEmpty()?null:new File(path));});
|
||||
}
|
||||
} catch (Exception error) {
|
||||
if (type == 3) fail("设备身份保存失败,请检查安全存储");
|
||||
if (type == 3) fail(L10n.tr("设备身份保存失败,请检查安全存储"));
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -303,24 +303,24 @@ final class NativeSession implements AutoCloseable {
|
||||
}
|
||||
void secureAttention(){execute(()->{
|
||||
boolean sent=connected&&nSecureAttention(handle);
|
||||
ui(()->listener.controlFeedback(sent?"已发送 Ctrl+Alt+Del":"指令发送失败,请重试"));
|
||||
ui(()->listener.controlFeedback(sent?L10n.tr("已发送 Ctrl+Alt+Del"):L10n.tr("指令发送失败,请重试")));
|
||||
});}
|
||||
void sendFile(android.net.Uri uri){
|
||||
if(closed)return;
|
||||
if(sendingFile){listener.controlFeedback("请等待当前文件发送完成");return;}
|
||||
sendingFile=true;listener.fileTransfer("正在读取所选文件…",0,true,null);
|
||||
if(sendingFile){listener.controlFeedback(L10n.tr("请等待当前文件发送完成"));return;}
|
||||
sendingFile=true;listener.fileTransfer(L10n.tr("正在读取所选文件…"),0,true,null);
|
||||
documents.prepare(uri,new SessionDocuments.Prepared(){
|
||||
public void ready(File file,String name){execute(()->{
|
||||
if(!connected||!nSendFile(handle,file.getAbsolutePath(),name.getBytes(StandardCharsets.UTF_8))){
|
||||
file.delete();ui(()->{sendingFile=false;listener.fileTransfer(name,-1,true,null);});
|
||||
}
|
||||
});}
|
||||
public void failed(){ui(()->{sendingFile=false;listener.fileTransfer("所选文件(无法读取或空间不足)",-1,true,null);});}
|
||||
public void failed(){ui(()->{sendingFile=false;listener.fileTransfer(L10n.tr("所选文件(无法读取或空间不足)"),-1,true,null);});}
|
||||
});
|
||||
}
|
||||
void saveFile(File file,android.net.Uri destination){
|
||||
if(closed)return;
|
||||
documents.save(file,destination,success->ui(()->listener.controlFeedback(success?"文件已保存":"文件保存失败,请重试")));
|
||||
documents.save(file,destination,success->ui(()->listener.controlFeedback(success?L10n.tr("文件已保存"):L10n.tr("文件保存失败,请重试"))));
|
||||
}
|
||||
@Override public void close() {
|
||||
if (closed) return;
|
||||
|
||||
@@ -20,16 +20,16 @@ final class PrivacyConsentDialog extends Dialog {
|
||||
PrivacyConsentDialog(Activity activity,MobileUi ui,PrivacyPolicyDocument policy,Runnable accepted){
|
||||
super(activity);this.activity=activity;this.ui=ui;requestWindowFeature(Window.FEATURE_NO_TITLE);setCancelable(false);setCanceledOnTouchOutside(false);
|
||||
LinearLayout sheet=ui.column();sheet.setBackground(ui.background(android.graphics.Color.WHITE,20));sheet.setClipToOutline(true);
|
||||
TextView title=ui.text("隐私政策",17,true);title.setGravity(Gravity.CENTER);sheet.addView(title,ui.size(-1,56));ui.divider(sheet);
|
||||
TextView title=ui.text(L10n.tr("隐私政策"),17,true);title.setGravity(Gravity.CENTER);sheet.addView(title,ui.size(-1,56));ui.divider(sheet);
|
||||
sheet.addView(policy.view(ui),new LinearLayout.LayoutParams(-1,0,1));ui.divider(sheet);
|
||||
LinearLayout actions=ui.column();actions.setPadding(ui.dp(20),ui.dp(12),ui.dp(20),ui.dp(12));sheet.addView(actions);
|
||||
CheckBox hasReadPolicy=new CheckBox(activity);hasReadPolicy.setText("我已阅读并同意《隐私政策》");hasReadPolicy.setTextColor(INK);hasReadPolicy.setTextSize(14);hasReadPolicy.setMinHeight(ui.dp(44));actions.addView(hasReadPolicy,ui.size(-1,-2));ui.gap(actions,12);
|
||||
TextView agree=ui.primary("同意并继续",()->{
|
||||
CheckBox hasReadPolicy=new CheckBox(activity);hasReadPolicy.setText(L10n.tr("我已阅读并同意《隐私政策》"));hasReadPolicy.setTextColor(INK);hasReadPolicy.setTextSize(14);hasReadPolicy.setMinHeight(ui.dp(44));actions.addView(hasReadPolicy,ui.size(-1,-2));ui.gap(actions,12);
|
||||
TextView agree=ui.primary(L10n.tr("同意并继续"),()->{
|
||||
if(!hasReadPolicy.isChecked()||!policy.available)return;
|
||||
dismiss();accepted.run();
|
||||
});agree.setEnabled(false);agree.setAlpha(.45f);actions.addView(agree,ui.size(-1,48));
|
||||
hasReadPolicy.setOnCheckedChangeListener((button,checked)->{boolean enabled=checked&&policy.available;agree.setEnabled(enabled);agree.setAlpha(enabled?1:.45f);});
|
||||
ui.gap(actions,12);actions.addView(ui.action("暂不同意",SECONDARY,this::dismiss),ui.size(-1,44));
|
||||
ui.gap(actions,12);actions.addView(ui.action(L10n.tr("暂不同意"),SECONDARY,this::dismiss),ui.size(-1,44));
|
||||
setContentView(sheet);Window window=getWindow();if(window!=null){window.setBackgroundDrawableResource(android.R.color.transparent);window.setDimAmount(.22f);}
|
||||
}
|
||||
@Override public void show(){
|
||||
|
||||
@@ -13,12 +13,14 @@ final class PrivacyPolicyDocument {
|
||||
final boolean available;
|
||||
final String text;
|
||||
|
||||
PrivacyPolicyDocument(Context context){this(load(context));}
|
||||
PrivacyPolicyDocument(String document){
|
||||
PrivacyPolicyDocument(Context context){this(load(context),L10n.isChinese());}
|
||||
PrivacyPolicyDocument(String document){this(document,true);}
|
||||
private PrivacyPolicyDocument(String document,boolean chinese){
|
||||
available=document!=null&&!document.trim().isEmpty();
|
||||
String value=available?document:"隐私政策暂时无法读取,请拒绝联网并重新安装应用。";
|
||||
String value=available?document:L10n.tr("隐私政策暂时无法读取,请拒绝联网并重新安装应用。");
|
||||
int start=value.indexOf("## 中文\n"),end=start<0?-1:value.indexOf("## English",start);
|
||||
text=start>=0&&end>start?value.substring(start+"## 中文\n".length(),end).trim():value;
|
||||
text=chinese&&start>=0&&end>start?value.substring(start+"## 中文\n".length(),end).trim():
|
||||
!chinese&&end>=0?value.substring(end+"## English".length()).trim():value;
|
||||
}
|
||||
private static String load(Context context){
|
||||
try{return LicenseCatalog.read(context,"PRIVACY.md");}catch(IOException error){return null;}
|
||||
@@ -28,7 +30,7 @@ final class PrivacyPolicyDocument {
|
||||
LinearLayout content=ui.column();content.setPadding(ui.dp(20),ui.dp(20),ui.dp(20),ui.dp(20));scroll.addView(content);
|
||||
for(String paragraph:text.split("\n\n")){
|
||||
paragraph=paragraph.trim();if(paragraph.isEmpty()||paragraph.equals("---"))continue;
|
||||
boolean heading=paragraph.startsWith("#"),date=paragraph.startsWith("更新日期:");
|
||||
boolean heading=paragraph.startsWith("#"),date=paragraph.startsWith("更新日期:")||paragraph.startsWith("Last updated:");
|
||||
String value=heading?paragraph.replaceFirst("^#+\\s*",""):paragraph.replace("**","");
|
||||
TextView label=ui.text(value,date?12:16,heading);label.setTextIsSelectable(true);label.setLineSpacing(ui.dp(4),1);
|
||||
if(date)label.setTextColor(SECONDARY);
|
||||
|
||||
@@ -39,12 +39,12 @@ final class RemoteKeyboard extends LinearLayout {
|
||||
header.addView(editor,new FrameLayout.LayoutParams(1,1,Gravity.BOTTOM));
|
||||
toolbar=ui.row();toolbar.setGravity(Gravity.CENTER_VERTICAL);toolbar.setPadding(ui.dp(6),0,ui.dp(6),0);
|
||||
header.addView(toolbar,new FrameLayout.LayoutParams(-1,-1));
|
||||
switchButton=button("电脑键盘",this::switchKeyboard);switchButton.setPadding(ui.dp(8),0,ui.dp(8),0);
|
||||
switchButton=button(L10n.tr("电脑键盘"),this::switchKeyboard);switchButton.setPadding(ui.dp(8),0,ui.dp(8),0);
|
||||
toolbar.addView(switchButton,new LayoutParams(-2,-1));
|
||||
LinearLayout pages=ui.row();pages.setGravity(Gravity.CENTER);toolbar.addView(pages,new LayoutParams(0,-1,1));
|
||||
lettersButton=button("字母数字",()->page(false));functionsButton=button("符号功能",()->page(true));
|
||||
lettersButton=button(L10n.tr("字母数字"),()->page(false));functionsButton=button(L10n.tr("符号功能"),()->page(true));
|
||||
pages.addView(lettersButton,new LayoutParams(-2,ui.dp(32)));pages.addView(functionsButton,new LayoutParams(-2,ui.dp(32)));
|
||||
FrameLayout hide=new FrameLayout(context);hide.setContentDescription("收起键盘");hide.setClickable(true);hide.setFocusable(true);
|
||||
FrameLayout hide=new FrameLayout(context);hide.setContentDescription(L10n.tr("收起键盘"));hide.setClickable(true);hide.setFocusable(true);
|
||||
hide.addView(ui.icon("keyboard_hide",foreground()),new FrameLayout.LayoutParams(ui.dp(24),ui.dp(24),Gravity.CENTER));
|
||||
hide.setOnClickListener(v->{feedback(v);close();});toolbar.addView(hide,new LayoutParams(ui.dp(44),ui.dp(44)));
|
||||
keys=ui.column();keys.setPadding(ui.dp(3),ui.dp(4),ui.dp(3),ui.dp(4));addView(keys,new LayoutParams(-1,0,1));
|
||||
@@ -157,7 +157,7 @@ final class RemoteKeyboard extends LinearLayout {
|
||||
}
|
||||
private void render(){
|
||||
setBackgroundColor(dark()?0xFF202124:0xFFE8EAED);
|
||||
switchButton.setText(computer?"系统键盘":"电脑键盘");switchButton.setTextColor(foreground());
|
||||
switchButton.setText(computer?L10n.tr("系统键盘"):L10n.tr("电脑键盘"));switchButton.setTextColor(foreground());
|
||||
lettersButton.setVisibility(computer?VISIBLE:GONE);functionsButton.setVisibility(computer?VISIBLE:GONE);
|
||||
for(TextView view:new TextView[]{lettersButton,functionsButton}){
|
||||
boolean selected=(view==functionsButton)==functions;view.setSelected(selected);
|
||||
@@ -185,12 +185,12 @@ final class RemoteKeyboard extends LinearLayout {
|
||||
LinearLayout line=ui.row();line.setGravity(Gravity.CENTER);
|
||||
for(String value:values){
|
||||
boolean shift=modifiers.contains(16);String shown=shift&&value.length()==1?shifted(value):value;
|
||||
TextView key=button(shown,()->key(value));key.setPadding(0,0,0,0);
|
||||
TextView key=button(L10n.tr(shown),()->key(value));key.setPadding(0,0,0,0);
|
||||
key.setTextSize(value.length()>1?12:18);key.setSingleLine(true);
|
||||
int modifier=modifier(value);boolean selected=modifier!=0&&modifiers.contains(modifier);key.setSelected(selected);
|
||||
int color=selected?(dark()?0xFF596D8C:0xFFA8C7FA):value.length()>1||value.equals("⇧")||value.equals("⌫")?(dark()?0xFF30343B:0xFFD0D5DC):(dark()?0xFF3C4043:Color.WHITE);
|
||||
StateListDrawable background=new StateListDrawable();background.addState(new int[]{android.R.attr.state_pressed},ui.background(dark()?0xFF68717D:0xFFBDC9D8,7));background.addState(new int[]{},ui.background(color,7));key.setBackground(background);
|
||||
if(value.equals("⇧"))key.setContentDescription("Shift");else if(value.equals("⌫"))key.setContentDescription("退格");
|
||||
if(value.equals("⇧"))key.setContentDescription("Shift");else if(value.equals("⌫"))key.setContentDescription(L10n.tr("退格"));
|
||||
// Both penultimate rows allocate exactly 1/8 to Shift and Backspace.
|
||||
boolean penultimate=values[0].equals("⇧");float weight=value.equals("空格")?4:1;
|
||||
if(penultimate)weight=value.equals("⇧")||value.equals("⌫")?1:(6f/(values.length-2));
|
||||
|
||||
@@ -24,7 +24,7 @@ final class RemoteNetworkStatistics {
|
||||
final Report report;final int fps,width,height;final double latency,rtt;
|
||||
final String remoteEncoder,localDecoder;
|
||||
Snapshot(Report report,int fps,int width,int height,double latency,double rtt,String remoteEncoder,String localDecoder){this.report=report;this.fps=fps;this.width=width;this.height=height;this.latency=latency;this.rtt=rtt;this.remoteEncoder=remoteEncoder;this.localDecoder=localDecoder;}
|
||||
String mode(){return report==null?"—":report.mode==0?"P2P 直连":report.mode==1?"TURN 中继":"—";}
|
||||
String mode(){return report==null?"—":report.mode==0?L10n.tr("P2P 直连"):report.mode==1?L10n.tr("TURN 中继"):"—";}
|
||||
String resolution(){return width>0&&height>0?width+" × "+height:"—";}
|
||||
}
|
||||
private static final class Frame {
|
||||
|
||||
@@ -127,7 +127,7 @@ final class RemotePreviewStore {
|
||||
new AtomicFile(new File(directory,key+".jpg")).delete();
|
||||
synchronized(this){
|
||||
boolean saved=index.edit().putStringSet("files",new HashSet<>(files)).commit();
|
||||
if(!saved||new File(directory,key+".jpg").exists())cleanupError="部分预览图未能清除,请重试。";
|
||||
if(!saved||new File(directory,key+".jpg").exists())cleanupError=L10n.tr("部分预览图未能清除,请重试。");
|
||||
}
|
||||
changed();
|
||||
});changed();
|
||||
@@ -139,7 +139,7 @@ final class RemotePreviewStore {
|
||||
try{deleteTree(directory);}catch(IOException error){success=false;}
|
||||
synchronized(this){
|
||||
if(epoch!=generation)return;
|
||||
cleaning=false;cleanupError=success?"":"部分预览图未能清除,请重试。";
|
||||
cleaning=false;cleanupError=success?"":L10n.tr("部分预览图未能清除,请重试。");
|
||||
}
|
||||
changed();
|
||||
});
|
||||
|
||||
@@ -45,9 +45,9 @@ final class RemotePrivacyScreen {
|
||||
boolean fresh(long now) { return received && now - receivedAt <= 5000; }
|
||||
boolean enabled(long now) { return fresh(now) && state == 3 && overlay && !remotePaused; }
|
||||
String buttonTitle(long now) {
|
||||
if (enabled(now)) return "隐私屏已开启";
|
||||
if (fresh(now) && supported && state == 1 && !active()) return "隐私屏已关闭";
|
||||
return "隐私屏";
|
||||
if (enabled(now)) return L10n.tr("隐私屏已开启");
|
||||
if (fresh(now) && supported && state == 1 && !active()) return L10n.tr("隐私屏已关闭");
|
||||
return L10n.tr("隐私屏");
|
||||
}
|
||||
String feedback(long now) {
|
||||
if (!desktopAvailable) return "";
|
||||
@@ -71,25 +71,25 @@ final class RemotePrivacyScreen {
|
||||
return ++requestId;
|
||||
}
|
||||
void failed(long id) {
|
||||
if (pending && requestId == id) { pending = false; failure = "指令发送失败,请重试"; }
|
||||
if (pending && requestId == id) { pending = false; failure = L10n.tr("指令发送失败,请重试"); }
|
||||
}
|
||||
void tick(long now) {
|
||||
if (pending && now - requestedAt >= 15000) {
|
||||
pending = false; failure = "请求超时,尚未确认电脑的隐私屏状态";
|
||||
pending = false; failure = L10n.tr("请求超时,尚未确认电脑的隐私屏状态");
|
||||
}
|
||||
}
|
||||
String status(long now) {
|
||||
if (!failure.isEmpty()) return failure;
|
||||
if (!received) return "等待电脑返回隐私屏状态;旧版电脑端可能不支持";
|
||||
if (!fresh(now)) return "隐私屏状态已过期,等待电脑确认";
|
||||
if (state == 2) return "正在开启隐私屏…";
|
||||
if (state == 4) return "正在关闭隐私屏…";
|
||||
if (pending) return "指令已发送,等待电脑确认…";
|
||||
if (state == 5) return "隐私屏异常";
|
||||
if (!supported || state == 0) return "隐私屏暂不可用";
|
||||
if (!received) return L10n.tr("等待电脑返回隐私屏状态;旧版电脑端可能不支持");
|
||||
if (!fresh(now)) return L10n.tr("隐私屏状态已过期,等待电脑确认");
|
||||
if (state == 2) return L10n.tr("正在开启隐私屏…");
|
||||
if (state == 4) return L10n.tr("正在关闭隐私屏…");
|
||||
if (pending) return L10n.tr("指令已发送,等待电脑确认…");
|
||||
if (state == 5) return L10n.tr("隐私屏异常");
|
||||
if (!supported || state == 0) return L10n.tr("隐私屏暂不可用");
|
||||
if (state == 3 && overlay && !remotePaused)
|
||||
return "隐私屏已开启";
|
||||
return state == 1 && !active() ? "隐私屏已关闭" : "隐私屏状态待确认";
|
||||
return L10n.tr("隐私屏已开启");
|
||||
return state == 1 && !active() ? L10n.tr("隐私屏已关闭") : L10n.tr("隐私屏状态待确认");
|
||||
}
|
||||
String detail(long now) {
|
||||
return fresh(now) && (state == 0 || state == 5 || !supported) ? reason : "";
|
||||
|
||||
@@ -51,7 +51,7 @@ public final class RemoteSessionService extends Service {
|
||||
@Override public void onCreate() {
|
||||
super.onCreate(); running = this;
|
||||
getSystemService(NotificationManager.class).createNotificationChannel(
|
||||
new NotificationChannel(CHANNEL, "远程连接", NotificationManager.IMPORTANCE_LOW));
|
||||
new NotificationChannel(CHANNEL, L10n.tr("远程连接"), NotificationManager.IMPORTANCE_LOW));
|
||||
wakeLock = getSystemService(PowerManager.class).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CrossDesk:RemoteSession");
|
||||
wakeLock.setReferenceCounted(false);
|
||||
}
|
||||
@@ -60,7 +60,7 @@ public final class RemoteSessionService extends Service {
|
||||
if (value == null || value.ended || value.session.isClosed()) { stopSelf(startId); return START_NOT_STICKY; }
|
||||
if (intent == null || !value.token.equals(intent.getStringExtra("session"))) return START_NOT_STICKY;
|
||||
owned = value;
|
||||
if (STOP.equals(intent.getAction())) { value.finish("已从通知断开远程连接"); return START_NOT_STICKY; }
|
||||
if (STOP.equals(intent.getAction())) { value.finish(L10n.tr("已从通知断开远程连接")); return START_NOT_STICKY; }
|
||||
try {
|
||||
Notification notification = notification();
|
||||
if (Build.VERSION.SDK_INT >= 34) startForeground(NOTIFICATION, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
|
||||
@@ -68,7 +68,7 @@ public final class RemoteSessionService extends Service {
|
||||
update();
|
||||
} catch (RuntimeException error) {
|
||||
Log.w("CrossDesk", "Background session foreground promotion failed", error);
|
||||
value.finish("后台保活未能启动,请保持应用在前台后重新连接");
|
||||
value.finish(L10n.tr("后台保活未能启动,请保持应用在前台后重新连接"));
|
||||
}
|
||||
return START_NOT_STICKY;
|
||||
}
|
||||
@@ -80,12 +80,12 @@ public final class RemoteSessionService extends Service {
|
||||
.setData(android.net.Uri.parse("crossdesk-session:" + owned.token)).putExtra("session", owned.token);
|
||||
PendingIntent stop = PendingIntent.getService(this, 1, stopIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||
return new Notification.Builder(this, CHANNEL).setSmallIcon(R.drawable.ic_remote_session)
|
||||
.setContentTitle("CrossDesk 远程连接")
|
||||
.setContentText(owned.background ? "后台保持连接,点按返回远程桌面" : "已启用后台保活,切换应用可继续保持连接")
|
||||
.setContentTitle(L10n.tr("CrossDesk 远程连接"))
|
||||
.setContentText(owned.background ? L10n.tr("后台保持连接,点按返回远程桌面") : L10n.tr("已启用后台保活,切换应用可继续保持连接"))
|
||||
.setContentIntent(open).setOngoing(true).setOnlyAlertOnce(true).setShowWhen(false)
|
||||
.setCategory(Notification.CATEGORY_SERVICE).setVisibility(Notification.VISIBILITY_PRIVATE)
|
||||
.addAction(new Notification.Action.Builder(null, "返回", open).build())
|
||||
.addAction(new Notification.Action.Builder(null, "断开", stop).build()).build();
|
||||
.addAction(new Notification.Action.Builder(null, L10n.tr("返回"), open).build())
|
||||
.addAction(new Notification.Action.Builder(null, L10n.tr("断开"), stop).build()).build();
|
||||
}
|
||||
@android.annotation.SuppressLint("WakelockTimeout") // Released on foreground return, disconnect, task removal and service destruction.
|
||||
private void update() {
|
||||
@@ -96,14 +96,14 @@ public final class RemoteSessionService extends Service {
|
||||
}
|
||||
private void releaseWakeLock() { if (wakeLock != null && wakeLock.isHeld()) wakeLock.release(); }
|
||||
@Override public void onTaskRemoved(Intent rootIntent) {
|
||||
if (current == owned && owned != null) owned.finish("远程任务已关闭");
|
||||
if (current == owned && owned != null) owned.finish(L10n.tr("远程任务已关闭"));
|
||||
stopSelf();
|
||||
}
|
||||
@Override public void onDestroy() {
|
||||
if (running == this) running = null;
|
||||
releaseWakeLock(); stopForeground(STOP_FOREGROUND_REMOVE);
|
||||
BackgroundSession value = owned;
|
||||
if (current == value && value != null) { current = null; value.finish("后台连接服务已停止,请重新连接"); }
|
||||
if (current == value && value != null) { current = null; value.finish(L10n.tr("后台连接服务已停止,请重新连接")); }
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,11 +4,11 @@ import org.json.JSONObject;
|
||||
|
||||
/** Same request/acknowledgement and rollback rules as the iOS controller. */
|
||||
final class RemoteVideoSettings {
|
||||
static final String[] PREFERENCES={"帧率优先","画质优先","平衡"};
|
||||
static final String[] DETAILS={
|
||||
"优先保持画面流畅,带宽或编码压力较大时会更积极地降低分辨率。",
|
||||
"始终保持较高分辨率,带宽不足时通过降低帧率来保证画面清晰度。",
|
||||
"兼顾清晰度和流畅度,只在持续压力下逐步降低分辨率。"};
|
||||
static String[] preferences(){return new String[]{L10n.tr("帧率优先"),L10n.tr("画质优先"),L10n.tr("平衡")};}
|
||||
static String[] details(){return new String[]{
|
||||
L10n.tr("优先保持画面流畅,带宽或编码压力较大时会更积极地降低分辨率。"),
|
||||
L10n.tr("始终保持较高分辨率,带宽不足时通过降低帧率来保证画面清晰度。"),
|
||||
L10n.tr("兼顾清晰度和流畅度,只在持续压力下逐步降低分辨率。")};}
|
||||
static final class Values {
|
||||
final int quality,frameRate,preference;
|
||||
Values(int quality,int frameRate,int preference){this.quality=quality;this.frameRate=frameRate;this.preference=preference;}
|
||||
@@ -54,5 +54,5 @@ final class RemoteVideoSettings {
|
||||
}catch(org.json.JSONException ignored){ }
|
||||
}
|
||||
void expire(long expiredId){if(pending&&expiredId==requestId){selection=applied;pending=false;failed=true;}}
|
||||
String feedback(){return !supported?"连接建立后可调整,需被控端支持。":failed?"调整失败,请重试。":"";}
|
||||
String feedback(){return !supported?L10n.tr("连接建立后可调整,需被控端支持。"):failed?L10n.tr("调整失败,请重试。"):"";}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ final class RemoteVideoView extends FrameLayout implements SurfaceHolder.Callbac
|
||||
}
|
||||
return true;
|
||||
});
|
||||
setContentDescription("远程桌面:轻触点击,拖动移动,长按右键,双指捏合缩放,放大后双指拖动画面,原始比例下双指上下滑动滚动");
|
||||
setContentDescription(L10n.tr("远程桌面:轻触点击,拖动移动,长按右键,双指捏合缩放,放大后双指拖动画面,原始比例下双指上下滑动滚动"));
|
||||
}
|
||||
void videoSize(int width, int height) {
|
||||
if (width <= 0 || height <= 0) return;
|
||||
@@ -244,7 +244,7 @@ final class RemoteVideoView extends FrameLayout implements SurfaceHolder.Callbac
|
||||
private final Path arrow = new Path();
|
||||
private final float arrowWidth = 12, arrowHeight = 15;
|
||||
Cursor(Context context) {
|
||||
super(context); setClickable(true); setContentDescription("远程桌面触控区域");
|
||||
super(context); setClickable(true); setContentDescription(L10n.tr("远程桌面触控区域"));
|
||||
// Match the iOS RemoteCursorArrowShape in density-independent units.
|
||||
arrow.moveTo(arrowWidth*.08f,arrowHeight*.04f);
|
||||
arrow.lineTo(arrowWidth*.08f,arrowHeight*.78f);
|
||||
|
||||
@@ -31,7 +31,7 @@ final class SegmentedControl extends LinearLayout {
|
||||
setGravity(Gravity.CENTER_VERTICAL);setPadding(inset,inset,inset,inset);setBackground(ui.background(0xFFE9E9EF,MobileUi.SEGMENT_HEIGHT/2));paint.setColor(Color.WHITE);
|
||||
for(int i=0;i<titles.length;i++){
|
||||
final int index=i;TextView choice=ui.action(titles[i],MobileUi.INK,()->select(index));
|
||||
choice.setTextSize(13);choice.setMinHeight(height);choice.setSelected(i==selected);choice.setEnabled(enabled);choice.setAlpha(enabled?1:.45f);
|
||||
choice.setTextSize(13);choice.setSingleLine();choice.setAutoSizeTextTypeUniformWithConfiguration(9,13,1,android.util.TypedValue.COMPLEX_UNIT_SP);choice.setMinHeight(height);choice.setSelected(i==selected);choice.setEnabled(enabled);choice.setAlpha(enabled?1:.45f);
|
||||
addView(choice,new LayoutParams(0,height,1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,8 +59,8 @@ final class SessionControls extends FrameLayout {
|
||||
addView(keyboard,new LayoutParams(-1,ui.dp(44),Gravity.BOTTOM));
|
||||
// This container must remain transparent to remote touch outside its controls.
|
||||
waiting=ui.column();waiting.setMinimumWidth(ui.dp(200));waiting.setGravity(Gravity.CENTER);waiting.setPadding(ui.dp(20),ui.dp(20),ui.dp(20),ui.dp(20));waiting.setBackground(ui.background(0xB0202024,14));
|
||||
ProgressBar progress=new ProgressBar(context);progress.setIndeterminateTintList(android.content.res.ColorStateList.valueOf(Color.WHITE));waiting.addView(progress,ui.size(28,28));ui.gap(waiting,12);TextView message=ui.text("等待远端画面…",14,false);message.setTextColor(Color.WHITE);message.setGravity(Gravity.CENTER);waiting.addView(message);addView(waiting,new LayoutParams(-2,-2,Gravity.CENTER));
|
||||
orb=ui.iconButton("display","展开远程控制菜单",()->{if(menu==null)openMenu("controls");else closeMenu();});
|
||||
ProgressBar progress=new ProgressBar(context);progress.setIndeterminateTintList(android.content.res.ColorStateList.valueOf(Color.WHITE));waiting.addView(progress,ui.size(28,28));ui.gap(waiting,12);TextView message=ui.text(L10n.tr("等待远端画面…"),14,false);message.setTextColor(Color.WHITE);message.setGravity(Gravity.CENTER);waiting.addView(message);addView(waiting,new LayoutParams(-2,-2,Gravity.CENTER));
|
||||
orb=ui.iconButton("display",L10n.tr("展开远程控制菜单"),()->{if(menu==null)openMenu("controls");else closeMenu();});
|
||||
ImageView brand=new ImageView(context);brand.setImageResource(R.drawable.mobile_brand);brand.setScaleType(ImageView.ScaleType.CENTER_CROP);brand.setBackground(ui.background(Color.WHITE,23));brand.setClipToOutline(true);brand.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
|
||||
((FrameLayout)orb).removeAllViews();((FrameLayout)orb).addView(brand,new LayoutParams(ui.dp(46),ui.dp(46),Gravity.CENTER));
|
||||
orb.setBackground(ui.background(0xFFF5F5F7,27));orb.setElevation(ui.dp(7));addView(orb,new LayoutParams(ui.dp(54),ui.dp(54)));
|
||||
@@ -117,15 +117,15 @@ final class SessionControls extends FrameLayout {
|
||||
if(transferLabel!=null){transferLabel.setText(transferStatus);transferLabel.setVisibility(transferStatus.isEmpty()?GONE:VISIBLE);}
|
||||
if(saveFileButton!=null)saveFileButton.setVisibility(hasReceivedFile?VISIBLE:GONE);
|
||||
}
|
||||
private void closeMenu(){if(menu!=null){removeView(menu);menu=null;menuScroll=null;}if(shield!=null){removeView(shield);shield=null;}videoFeedback=transferLabel=saveFileButton=null;privacyFeedback=privacyCaption=null;privacyButton=null;privacyIcon=null;trafficCells=null;trafficRows=null;networkDetails=null;encryptionLock=encryptionOpen=null;settingRows.clear();orb.setContentDescription("展开远程控制菜单");positionMouse();}
|
||||
private void closeMenu(){if(menu!=null){removeView(menu);menu=null;menuScroll=null;}if(shield!=null){removeView(shield);shield=null;}videoFeedback=transferLabel=saveFileButton=null;privacyFeedback=privacyCaption=null;privacyButton=null;privacyIcon=null;trafficCells=null;trafficRows=null;networkDetails=null;encryptionLock=encryptionOpen=null;settingRows.clear();orb.setContentDescription(L10n.tr("展开远程控制菜单"));positionMouse();}
|
||||
private void openMenu(String page){
|
||||
cancelMouseInput();
|
||||
closeMenu();menuPage=page;shield=new View(getContext());shield.setOnClickListener(v->closeMenu());addView(shield,new LayoutParams(-1,-1));
|
||||
menu=ui.column();menu.setPadding(ui.dp(12),ui.dp(12),ui.dp(12),ui.dp(12));ui.card(menu,18);menu.setElevation(ui.dp(12));
|
||||
LinearLayout header=ui.row();
|
||||
if(!page.equals("controls"))header.addView(ui.iconButton("back","返回控制栏",()->openMenu("controls")),ui.size(28,32));
|
||||
TextView title=ui.text(page.equals("controls")?"● 已连接":page.equals("video")?"画面设置":"网络状态",14,true);
|
||||
header.addView(title,new LinearLayout.LayoutParams(0,-2,1));header.addView(ui.iconButton("close","关闭控制栏",this::closeMenu),ui.size(30,32));menu.addView(header);ui.gap(menu,9);
|
||||
if(!page.equals("controls"))header.addView(ui.iconButton("back",L10n.tr("返回控制栏"),()->openMenu("controls")),ui.size(28,32));
|
||||
TextView title=ui.text(page.equals("controls")?L10n.tr("● 已连接"):page.equals("video")?L10n.tr("画面设置"):L10n.tr("网络状态"),14,true);
|
||||
header.addView(title,new LinearLayout.LayoutParams(0,-2,1));header.addView(ui.iconButton("close",L10n.tr("关闭控制栏"),this::closeMenu),ui.size(30,32));menu.addView(header);ui.gap(menu,9);
|
||||
if(page.equals("video")){videoFeedback=ui.text("",12,false);videoFeedback.setTextColor(SECONDARY);videoFeedback.setPadding(0,0,0,ui.dp(9));menu.addView(videoFeedback);}
|
||||
ScrollView scroll=new ScrollView(getContext());menuScroll=scroll;menu.addView(scroll,new LinearLayout.LayoutParams(-1,0,1));LinearLayout body=ui.column();scroll.addView(body);
|
||||
if(page.equals("network")){
|
||||
@@ -133,7 +133,7 @@ final class SessionControls extends FrameLayout {
|
||||
scroll.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_INSET);body.setPadding(0,0,ui.dp(6),0);
|
||||
}
|
||||
if(page.equals("controls")){
|
||||
String[] labels={"键盘",mouseVisible?"收起鼠标":"虚拟鼠标",relative?"相对鼠标":"绝对鼠标","显示器","画面设置",muted?"静音":"声音","发送文件","网络状态","Ctrl+Alt+Del","剪贴板","隐私屏"};
|
||||
String[] labels={L10n.tr("键盘"),mouseVisible?L10n.tr("收起鼠标"):L10n.tr("虚拟鼠标"),relative?L10n.tr("相对鼠标"):L10n.tr("绝对鼠标"),L10n.tr("显示器"),L10n.tr("画面设置"),muted?L10n.tr("静音"):L10n.tr("声音"),L10n.tr("发送文件"),L10n.tr("网络状态"),"Ctrl+Alt+Del",L10n.tr("剪贴板"),L10n.tr("隐私屏")};
|
||||
String[] icons={"keyboard","mouse","mouse","display","sliders","audio","folder","chart","lock","clipboard","eye"};
|
||||
Runnable[] clicks={()->{closeMenu();toggleKeyboard();},this::toggleMouse,actions::mouse,actions::display,()->openMenu("video"),actions::mute,actions::sendFile,()->openMenu("network"),actions::secureAttention,actions::clipboard,actions::togglePrivacy};
|
||||
menuColumns=controlColumns();
|
||||
@@ -143,22 +143,22 @@ final class SessionControls extends FrameLayout {
|
||||
visibleControls.add(index);
|
||||
}
|
||||
int controlCount=visibleControls.size();
|
||||
for(int row=0;row<(controlCount+menuColumns-1)/menuColumns;row++){LinearLayout line=ui.row();for(int col=0;col<menuColumns;col++){int position=row*menuColumns+col;if(position>=controlCount){View spacer=new View(getContext());LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(0,ui.dp(52),1);if(col>0)p.leftMargin=ui.dp(7);line.addView(spacer,p);continue;}int index=visibleControls.get(position);LinearLayout control=ui.column();control.setGravity(Gravity.CENTER);control.setBackground(ui.background(0xFFF0F0F2,10));MobileUi.Icon icon=ui.icon(icons[index],INK);control.addView(icon,ui.size(19,19));ui.gap(control,4);TextView caption=ui.text(labels[index],10,false);caption.setSingleLine();caption.setGravity(Gravity.CENTER);control.addView(caption);control.setContentDescription(labels[index]);control.setClickable(true);control.setFocusable(true);control.setOnClickListener(v->clicks[index].run());
|
||||
for(int row=0;row<(controlCount+menuColumns-1)/menuColumns;row++){LinearLayout line=ui.row();for(int col=0;col<menuColumns;col++){int position=row*menuColumns+col;if(position>=controlCount){View spacer=new View(getContext());LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(0,ui.dp(52),1);if(col>0)p.leftMargin=ui.dp(7);line.addView(spacer,p);continue;}int index=visibleControls.get(position);LinearLayout control=ui.column();control.setGravity(Gravity.CENTER);control.setBackground(ui.background(0xFFF0F0F2,10));MobileUi.Icon icon=ui.icon(icons[index],INK);control.addView(icon,ui.size(19,19));ui.gap(control,4);TextView caption=ui.text(labels[index],10,false);caption.setMaxLines(2);caption.setAutoSizeTextTypeUniformWithConfiguration(8,10,1,android.util.TypedValue.COMPLEX_UNIT_SP);caption.setGravity(Gravity.CENTER);control.addView(caption);control.setContentDescription(labels[index]);control.setClickable(true);control.setFocusable(true);control.setOnClickListener(v->clicks[index].run());
|
||||
if(index==10){privacyButton=control;privacyIcon=icon;privacyCaption=caption;}
|
||||
LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(0,ui.dp(52),1);if(col>0)p.leftMargin=ui.dp(7);line.addView(control,p);
|
||||
}body.addView(line);if((row+1)*menuColumns<controlCount)ui.gap(body,7);}
|
||||
privacyFeedback=ui.text("",11,false);privacyFeedback.setTextColor(SECONDARY);privacyFeedback.setPadding(0,ui.dp(7),0,0);privacyFeedback.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE);body.addView(privacyFeedback);renderPrivacy();
|
||||
ui.gap(body,7);transferLabel=ui.text(transferStatus,11,false);transferLabel.setTextColor(SECONDARY);transferLabel.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE);body.addView(transferLabel);
|
||||
saveFileButton=ui.action("保存收到的文件",BLUE,actions::saveFile);body.addView(saveFileButton);renderFileStatus();
|
||||
saveFileButton=ui.action(L10n.tr("保存收到的文件"),BLUE,actions::saveFile);body.addView(saveFileButton);renderFileStatus();
|
||||
}else if(page.equals("network")){
|
||||
networkPage(body);
|
||||
}else{
|
||||
settingRows.add(new SettingRow(body,0,"画面质量",new String[]{"低","中","高"},new int[]{0,1,2}));ui.gap(body,12);
|
||||
settingRows.add(new SettingRow(body,1,"画面采集帧率",new String[]{"30 fps","60 fps"},new int[]{30,60}));ui.gap(body,12);
|
||||
settingRows.add(new SettingRow(body,2,"画面偏好",RemoteVideoSettings.PREFERENCES,new int[]{0,1,2}));renderVideoSettings();
|
||||
settingRows.add(new SettingRow(body,0,L10n.tr("画面质量"),new String[]{L10n.tr("低"),L10n.tr("中"),L10n.tr("高")},new int[]{0,1,2}));ui.gap(body,12);
|
||||
settingRows.add(new SettingRow(body,1,L10n.tr("画面采集帧率"),new String[]{"30 fps","60 fps"},new int[]{30,60}));ui.gap(body,12);
|
||||
settingRows.add(new SettingRow(body,2,L10n.tr("画面偏好"),RemoteVideoSettings.preferences(),new int[]{0,1,2}));renderVideoSettings();
|
||||
}
|
||||
ui.gap(menu,9);TextView disconnect=ui.action("断开连接",Color.WHITE,()->{closeMenu();closeKeyboard();actions.disconnect();});disconnect.setMinHeight(ui.dp(34));disconnect.setTextSize(14);disconnect.setBackground(ui.background(RED,8));menu.addView(disconnect,ui.size(-1,34));
|
||||
addView(menu,new LayoutParams(panelWidth(getWidth()),panelHeight(getHeight())));orb.bringToFront();orb.setContentDescription("收起远程控制菜单");
|
||||
ui.gap(menu,9);TextView disconnect=ui.action(L10n.tr("断开连接"),Color.WHITE,()->{closeMenu();closeKeyboard();actions.disconnect();});disconnect.setMinHeight(ui.dp(34));disconnect.setTextSize(14);disconnect.setBackground(ui.background(RED,8));menu.addView(disconnect,ui.size(-1,34));
|
||||
addView(menu,new LayoutParams(panelWidth(getWidth()),panelHeight(getHeight())));orb.bringToFront();orb.setContentDescription(L10n.tr("收起远程控制菜单"));
|
||||
positionMouse();
|
||||
}
|
||||
private void renderPrivacy(){
|
||||
@@ -168,7 +168,7 @@ final class SessionControls extends FrameLayout {
|
||||
long now=android.os.SystemClock.elapsedRealtime();privacy.tick(now);
|
||||
if(privacyFeedback!=null){String feedback=privacy.feedback(now);privacyFeedback.setText(feedback);privacyFeedback.setVisibility(feedback.isEmpty()?GONE:VISIBLE);}
|
||||
if(privacyButton==null)return;
|
||||
boolean enabled=privacy.enabled(now);String action=privacy.active()?"关闭隐私屏":"开启隐私屏";
|
||||
boolean enabled=privacy.enabled(now);String action=privacy.active()?L10n.tr("关闭隐私屏"):L10n.tr("开启隐私屏");
|
||||
privacyIcon.setName(enabled?"eye_off":"eye");
|
||||
privacyCaption.setText(privacy.buttonTitle(now));
|
||||
privacyButton.setSelected(enabled);
|
||||
@@ -183,7 +183,7 @@ final class SessionControls extends FrameLayout {
|
||||
group=new SegmentedControl(ui,labels,selectionIndex(),settings.supported,index->actions.videoSettings(field,values[index]));
|
||||
group.setPadding(ui.dp(2),ui.dp(2),ui.dp(2),ui.dp(2));body.addView(group);
|
||||
for(int i=0;i<labels.length;i++){
|
||||
TextView button=(TextView)group.getChildAt(i);button.setTextSize(12);button.setMinHeight(ui.dp(28));button.setSingleLine();button.setContentDescription(title+","+labels[i]);
|
||||
TextView button=(TextView)group.getChildAt(i);button.setTextSize(12);button.setMinHeight(ui.dp(28));button.setSingleLine();button.setAutoSizeTextTypeUniformWithConfiguration(9,12,1,android.util.TypedValue.COMPLEX_UNIT_SP);button.setContentDescription(title+","+labels[i]);
|
||||
button.setLayoutParams(new LinearLayout.LayoutParams(0,ui.dp(28),1));
|
||||
}
|
||||
}
|
||||
@@ -197,12 +197,12 @@ final class SessionControls extends FrameLayout {
|
||||
for(SettingRow row:settingRows)row.render();
|
||||
}
|
||||
private void networkPage(LinearLayout body){
|
||||
trafficCells=new TextView[4][3];trafficRows=new LinearLayout[4];String[] names={"视频","音频","数据","合计"};
|
||||
LinearLayout heading=trafficRow(body,"",new TextView[3],false);((TextView)heading.getChildAt(1)).setText("接收");((TextView)heading.getChildAt(2)).setText("发送");((TextView)heading.getChildAt(3)).setText("丢包率");
|
||||
trafficCells=new TextView[4][3];trafficRows=new LinearLayout[4];String[] names={L10n.tr("视频"),L10n.tr("音频"),L10n.tr("数据"),L10n.tr("合计")};
|
||||
LinearLayout heading=trafficRow(body,"",new TextView[3],false);((TextView)heading.getChildAt(1)).setText(L10n.tr("接收"));((TextView)heading.getChildAt(2)).setText(L10n.tr("发送"));((TextView)heading.getChildAt(3)).setText(L10n.tr("丢包率"));
|
||||
for(int i=0;i<heading.getChildCount();i++)((TextView)heading.getChildAt(i)).setTextColor(SECONDARY);
|
||||
for(int i=0;i<4;i++)trafficRows[i]=trafficRow(body,names[i],trafficCells[i],i==3);
|
||||
ui.gap(body,10);ui.divider(body);ui.gap(body,10);
|
||||
String[] titles={"帧率","分辨率","画面延时","连接延时(RTT)","连接方式","媒体加密","被控端编码器","控制端解码器"};networkDetails=new TextView[titles.length];
|
||||
String[] titles={L10n.tr("帧率"),L10n.tr("分辨率"),L10n.tr("画面延时"),L10n.tr("连接延时(RTT)"),L10n.tr("连接方式"),L10n.tr("媒体加密"),L10n.tr("被控端编码器"),L10n.tr("控制端解码器")};networkDetails=new TextView[titles.length];
|
||||
for(int i=0;i<titles.length;i++){LinearLayout row=ui.row();TextView title=ui.text(titles[i],12,false);title.setTextColor(SECONDARY);row.addView(title,i>=6?new LinearLayout.LayoutParams(-2,-2):new LinearLayout.LayoutParams(0,-2,1));
|
||||
if(i==5){encryptionLock=ui.icon("lock",GREEN);encryptionOpen=ui.icon("unlock",SECONDARY);for(View icon:new View[]{encryptionLock,encryptionOpen}){LinearLayout.LayoutParams p=ui.size(14,14);p.rightMargin=ui.dp(4);row.addView(icon,p);}}
|
||||
TextView value=ui.text("—",12,false);value.setFontFeatureSettings("tnum");
|
||||
@@ -219,13 +219,13 @@ final class SessionControls extends FrameLayout {
|
||||
}
|
||||
private void renderNetwork(){
|
||||
if(trafficCells==null)return;
|
||||
String[] names={"视频","音频","数据","合计"};
|
||||
String[] names={L10n.tr("视频"),L10n.tr("音频"),L10n.tr("数据"),L10n.tr("合计")};
|
||||
for(int i=0;i<4;i++){
|
||||
RemoteNetworkStatistics.Traffic traffic=network.report==null?null:network.report.traffic[i];
|
||||
String in=RemoteNetworkStatistics.bitrate(traffic==null?-1:traffic.inbound),out=RemoteNetworkStatistics.bitrate(traffic==null?-1:traffic.outbound),loss=RemoteNetworkStatistics.loss(traffic==null?Double.NaN:traffic.loss);
|
||||
trafficCells[i][0].setText(in);trafficCells[i][1].setText(out);trafficCells[i][2].setText(loss);trafficRows[i].setContentDescription(names[i]+",接收 "+in+",发送 "+out+",丢包率 "+loss);
|
||||
trafficCells[i][0].setText(in);trafficCells[i][1].setText(out);trafficCells[i][2].setText(loss);trafficRows[i].setContentDescription(L10n.format("{0},接收 {1},发送 {2},丢包率 {3}",names[i],in,out,loss));
|
||||
}
|
||||
String[] values={network.fps+" FPS",network.resolution(),RemoteNetworkStatistics.latency(network.latency),RemoteNetworkStatistics.latency(network.rtt),network.mode(),network.report==null?"—":network.report.srtp?"SRTP 已启用":"未启用",network.remoteEncoder.isEmpty()?"—":network.remoteEncoder,network.localDecoder.isEmpty()?"—":network.localDecoder};
|
||||
String[] values={network.fps+" FPS",network.resolution(),RemoteNetworkStatistics.latency(network.latency),RemoteNetworkStatistics.latency(network.rtt),network.mode(),network.report==null?"—":network.report.srtp?L10n.tr("SRTP 已启用"):L10n.tr("未启用"),network.remoteEncoder.isEmpty()?"—":network.remoteEncoder,network.localDecoder.isEmpty()?"—":network.localDecoder};
|
||||
// Reassigning identical text every statistics tick restarts the marquee.
|
||||
for(int i=0;i<values.length;i++)if(!android.text.TextUtils.equals(networkDetails[i].getText(),values[i]))networkDetails[i].setText(values[i]);networkDetails[5].setTextColor(network.report!=null&&network.report.srtp?GREEN:SECONDARY);
|
||||
encryptionLock.setVisibility(network.report!=null&&network.report.srtp?VISIBLE:GONE);encryptionOpen.setVisibility(network.report!=null&&!network.report.srtp?VISIBLE:GONE);
|
||||
|
||||
@@ -29,11 +29,11 @@ final class VirtualMouseBar extends LinearLayout {
|
||||
shell.setStroke(ui.dp(.5f), 0xFFD4DAE2);
|
||||
setBackground(shell);
|
||||
setMotionEventSplittingEnabled(true);
|
||||
keys[0] = key("鼠标左键,按住并拖动,松开结束拖拽", 0);
|
||||
keys[1] = key("鼠标滚轮,上下滑动,可滑出按键范围", 1);
|
||||
keys[2] = key("鼠标右键,按住并拖动,松开结束拖拽", 2);
|
||||
keys[0] = key(L10n.tr("鼠标左键,按住并拖动,松开结束拖拽"), 0);
|
||||
keys[1] = key(L10n.tr("鼠标滚轮,上下滑动,可滑出按键范围"), 1);
|
||||
keys[2] = key(L10n.tr("鼠标右键,按住并拖动,松开结束拖拽"), 2);
|
||||
input.didCancel = this::resetTouches;
|
||||
setContentDescription("虚拟鼠标");
|
||||
setContentDescription(L10n.tr("虚拟鼠标"));
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility") // Touch sends real down/up; performClick serves accessibility only.
|
||||
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · 已完成"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" 传输失败"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" 台设备"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" 条 · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" 条未读"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"CrossDesk 远程连接"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL 第 3 版"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"OpenFEC 告知"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"OpenFEC 许可与源码"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"P2P 直连"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP 已启用"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"TURN 中继"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"{0} 传输失败"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"{0} 台设备"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0} 条未读"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0},接收 {1},发送 {2},丢包率 {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● 已连接"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"下拉刷新"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"丢包率"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"中"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"优先保持画面流畅,带宽或编码压力较大时会更积极地降低分辨率。"</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"低"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"使用自定义服务器"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"保存密码"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"保存收到的文件"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"保存远程画面预览"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"保存远程画面预览?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"信令连接中断,请重新连接"</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"公告加载失败,请重试。"</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"公告详情"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"共 "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"共 {0} 条 · {1} 条未读"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"关于"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"关于 CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"关于,有新版本"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"关闭"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"关闭控制栏"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"关闭隐私屏"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"兼顾清晰度和流畅度,只在持续压力下逐步降低分辨率。"</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"分辨率"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"删除"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"删除公告"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"删除记录"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"删除这条公告?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"刷新公告"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"剪贴板"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"加载中…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"加载更多"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"升级提示"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"原生连接初始化失败"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"发送"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"发送 "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"发送后,在远程键盘中点击“粘贴”。接收的远端文本可手动复制到本机。"</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"发送文件"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"发送文本"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"取消"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"取消连接"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"各组件遵循所列开源许可证,其授予的权利不受本应用普通使用条款限制。查看源码需要网络连接。"</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"合计"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"同意并继续"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"后台保持连接,点按返回远程桌面"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"后台保活未能启动,请保持应用在前台"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"后台保活未能启动,请保持应用在前台后重新连接"</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"后台连接已结束,请重新连接"</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"后台连接服务已停止,请重新连接"</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"后续连接仍会保存新的预览图。"</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"在线"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"填写主机名或 IPv4 地址,不含协议和路径"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"声音"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"复制远端文本"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"始终保持较高分辨率,带宽不足时通过降低帧率来保证画面清晰度。"</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"媒体加密"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"字母数字"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"安全存储或证书初始化失败,请重试或清除应用数据"</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"完成"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"完成隐私授权后可检查更新"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"完成隐私授权后登记本机身份"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"密码保存失败,本次连接仍可使用"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"密码将加密保存在本机 Android Keystore 中"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"对端 ID"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"对端 ID "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"对端 ID {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"将删除本机保存的所有远程预览图,保留连接记录和密码。"</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"屏幕方向"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"展开远程控制菜单"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"已从通知断开远程连接"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"已保存密码"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"已保存密码无法读取,请重新输入"</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"已保存的密码未能保留,请重新输入一次"</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"已发送 Ctrl+Alt+Del"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"已启用后台保活,切换应用可继续保持连接"</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"已启用后台保活,可从连接通知返回或断开"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"已授权"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"已读"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"已连接 "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"已连接服务器"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"帧率"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"帧率优先"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"平衡"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"应用中的许可文件缺失或损坏,请重新安装应用。"</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"开发版本包含尚未发布的修改,以下链接为基础版本源码。"</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"开启保存"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"开启隐私屏"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"开源组件"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"开源软件权利说明"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"当前已是最新版本"</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"当前远端不支持直接输入此文本,请使用支持文本输入的被控端版本,或通过剪贴板发送"</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"成功连接后,这里会显示最近的远程设备。"</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"我已阅读并同意《隐私政策》"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"所选文件(无法读取或空间不足)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"找不到该设备 ID"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"指令发送失败,请重试"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"指令已发送,等待电脑确认…"</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"授权状态"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"接收"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"接收 "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"控制端解码器"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"撤回"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"撤回后将停止远程连接、关闭画面预览保存并清除已有预览。连接记录和密码会保留,重新连接前需再次授权。"</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"撤回联网授权"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"撤回联网授权?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"收起远程控制菜单"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"收起键盘"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"收起鼠标"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"数据"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"文件保存失败,请重试"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"文件已保存"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"文件选择已超时,会话已结束"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"文本超过 128 KB"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"断开"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"断开后将返回首页"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"断开远程连接?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"断开连接"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"新版本"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"新版本可用:v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"新版本可用:v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"无未读公告"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"无法保存本地阅读状态,请重试。"</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"无法删除这条公告,请重试。"</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"无法发起远程连接"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"无法读取开源许可"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"显示器"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"显示密码"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"暂不同意"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"暂无公告"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"最近连接"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"服务器"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"服务器 TLS 证书校验失败"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"服务器地址"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"服务器登录失败,请检查服务器地址和网络"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"服务器端口"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"服务器连接超时,请检查服务器地址和网络"</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"未启用"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"未找到可打开链接的浏览器"</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"未授权"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"未读"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"未连接服务器 · 点击重试"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"本应用使用 OpenFEC 提供前向纠错功能,遵循 CeCILL-C 1.0 许可。该许可规定了有限保证及责任限制,详情见许可全文。"</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"本机 ID "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"本机 ID {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"本版本源码与构建说明"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"本版本源码信息暂不可用。"</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"松开刷新"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"构建说明"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"构建配方与项目补丁"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"查看源码"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"检查失败,请稍后重试"</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"检查更新"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"正在关闭隐私屏…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"正在建立安全连接…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"正在开启隐私屏…"</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"正在检查更新…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"正在清除…"</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"正在获取本机 ID…"</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"正在读取所选文件…"</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"正在连接"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"正在连接信令服务器…"</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"正在连接服务器…"</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"正在重连服务器…"</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"此设备没有可用的文件选择器"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"清除"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"清除预览图"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"清除预览图?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"源码与构建说明"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"源码版本"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"版本"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"版权与许可声明"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"电脑键盘"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"画质优先"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"画面偏好"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"画面延时"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"画面设置"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"画面质量"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"画面采集帧率"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"相对位置"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"相对鼠标"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"知道了"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"确定"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"确认"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"确认连接"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"离线"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"空格"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"端口范围为 1–65535"</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"符号功能"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"等待电脑返回隐私屏状态;旧版电脑端可能不支持"</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"等待远端屏幕信息"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"等待远端画面…"</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"等待隐私授权"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"系统键盘"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"绝对位置"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"绝对鼠标"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"网络状态"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"自定义"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"虚拟鼠标"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"被控端已通过组合键解除隐私屏。点击“锁定”将重新开启隐私屏,并禁止本机使用组合键解锁。"</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"被控端版本过低,请升级到最新版本。"</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"被控端编码器"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"要发送到远端的文本"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"视频"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"许可"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"许可与版权声明"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"许可与版权声明可离线查阅。"</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"设备身份保存失败,请检查安全存储"</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"设备身份及选择保存的访问密码使用 Android Keystore 加密。连接记录仅保存在本机,不纳入设备备份。剪贴板内容在结束会话时清除。离开应用后通过画中画或连接通知保持会话,可在应用或通知中断开。"</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"设置"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"设置,有新版本"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"访问密码"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"访问密码错误,请重新输入"</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"证书校验失败 · 点击重试"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"请先完成联网授权"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"请在远端启用 CrossDesk 系统服务后重试"</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"请求超时,尚未确认电脑的隐私屏状态"</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"请等待当前文件发送完成"</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"请输入 1–65535 范围内的端口"</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"请输入 9 位设备 ID"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"请输入有效访问密码"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"调整失败,请重试。"</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"软件许可"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"返回"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"返回控制栏"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"还没有连接记录"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"这条公告已更新或删除,请返回公告列表查看。"</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"远程任务已关闭"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"远程桌面"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"远程桌面触控区域"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"远程桌面:轻触点击,拖动移动,长按右键,双指捏合缩放,放大后双指拖动画面,原始比例下双指上下滑动滚动"</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"远程电脑"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"远程窗口已关闭,或后台保活未能启动,会话已结束"</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"远程连接"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"远端密码错误"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"远端已关闭连接"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"远端当前不可用"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"远端访问密码已失效,请重新连接"</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"连接"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"连接 "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"连接失败"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"连接失败 · 点击重试"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"连接已断开"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"连接已结束"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"连接延时(RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"连接建立后可调整,需被控端支持。"</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"连接建立后锁定横屏"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"连接提示"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"连接方式"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"连接服务器"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"连接服务器后可获取最新公告。"</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"连接超时,请检查设备 ID、服务器及远端在线状态"</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"连接远程桌面"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"退格"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"通知公告"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"部分预览图未能清除,请重试。"</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"重试"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"重试保存阅读状态"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"锁定"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"键盘"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"阅读并授权"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"隐私"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"隐私与授权"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"隐私屏"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"隐私屏已关闭"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"隐私屏已开启"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"隐私屏已被解锁"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"隐私屏异常"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"隐私屏暂不可用"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"隐私屏状态已过期,等待电脑确认"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"隐私屏状态待确认"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"隐私政策"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"隐私政策暂时无法读取,请拒绝联网并重新安装应用。"</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"静音"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"音频"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"项目主页"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"预览可能包含远程电脑上的个人或工作信息。开启后,每次连接会自动将一张画面保存在本机并显示在最近连接中。你可以随时关闭并清除。"</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"高"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"默认"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"默认关闭。开启后,手机连接时进入并保持横屏;关闭时跟随设备方向。平板和多窗口不受影响。"</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"鼠标右键,按住并拖动,松开结束拖拽"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"鼠标左键,按住并拖动,松开结束拖拽"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"鼠标控制"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"鼠标滚轮,上下滑动,可滑出按键范围"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">",丢包率 "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">",发送 "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">",已保存密码"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">",接收 "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">",点击重试"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · 已完成"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" 傳輸失敗"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" 臺裝置"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" 條 · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" 條未讀"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"CrossDesk 遠端連線"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL 第 3 版"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"OpenFEC 告知"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"OpenFEC 許可與原始碼"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"P2P 直連"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP 已啟用"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"TURN 中繼"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"{0} 傳輸失敗"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"{0} 臺裝置"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0} 條未讀"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0},接收 {1},傳送 {2},丟包率 {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● 已連線"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"下拉重新整理"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"丟包率"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"中"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"優先保持畫面流暢,頻寬或編碼壓力較大時會更積極地降低解析度。"</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"低"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"使用自定義伺服器"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"儲存密碼"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"儲存收到的檔案"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"儲存遠端畫面預覽"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"儲存遠端畫面預覽?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"信令連線中斷,請重新連線"</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"公告載入失敗,請重試。"</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"公告詳情"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"共 "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"共 {0} 條 · {1} 條未讀"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"關於"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"關於 CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"關於,有新版本"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"關閉"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"關閉控制欄"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"關閉隱私屏"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"兼顧清晰度和流暢度,只在持續壓力下逐步降低解析度。"</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"解析度"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"刪除"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"刪除公告"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"刪除記錄"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"刪除這條公告?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"重新整理公告"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"剪貼簿"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"載入中…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"載入更多"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"更新提示"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"原生連線初始化失敗"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"傳送"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"傳送 "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"傳送後,在遠端鍵盤中點選“貼上”。接收的遠端文字可手動複製到本機。"</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"傳送檔案"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"傳送文字"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"取消"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"取消連線"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"各元件遵循所列開源許可證,其授予的權利不受本應用普通使用條款限制。檢視原始碼需要網路連線。"</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"合計"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"同意並繼續"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"後臺保持連線,點按返回遠端桌面"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"後臺保活未能啟動,請保持應用在前臺"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"後臺保活未能啟動,請保持應用在前臺後重新連線"</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"後臺連線已結束,請重新連線"</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"後臺連線服務已停止,請重新連線"</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"後續連線仍會儲存新的預覽圖。"</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"線上"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"填寫主機名或 IPv4 地址,不含協議和路徑"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"聲音"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"複製遠端文字"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"始終保持較高解析度,頻寬不足時透過降低幀率來保證畫面清晰度。"</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"媒體加密"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"字母數字"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"安全儲存或證書初始化失敗,請重試或清除應用資料"</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"完成"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"完成隱私授權後可檢查更新"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"完成隱私授權後登記本機身份"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"密碼儲存失敗,本次連線仍可使用"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"密碼將加密儲存在本機 Android Keystore 中"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"對端 ID"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"對端 ID "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"對端 ID {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"將刪除本機儲存的所有遠端預覽圖,保留連線記錄和密碼。"</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"螢幕方向"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"展開遠端控制選單"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"已從通知斷開遠端連線"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"已儲存密碼"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"已儲存密碼無法讀取,請重新輸入"</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"已儲存的密碼未能保留,請重新輸入一次"</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"已傳送 Ctrl+Alt+Del"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"已啟用後臺保活,切換應用可繼續保持連線"</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"已啟用後臺保活,可從連線通知返回或斷開"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"已授權"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"已讀"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"已連線 "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"已連線伺服器"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"幀率"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"影格率優先"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"平衡"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"應用中的許可檔案缺失或損壞,請重新安裝應用。"</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"開發版本包含尚未釋出的修改,以下連結為基礎版本原始碼。"</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"啟用儲存"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"開啟隱私屏"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"開源元件"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"開源軟體權利說明"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"當前已是最新版本"</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"當前遠端不支援直接輸入此文字,請使用支援文字輸入的被控端版本,或透過剪貼簿傳送"</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"成功連線後,這裡會顯示最近的遠端裝置。"</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"我已閱讀並同意《隱私政策》"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"所選檔案(無法讀取或空間不足)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"找不到該裝置 ID"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"指令傳送失敗,請重試"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"指令已傳送,等待電腦確認…"</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"授權狀態"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"接收"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"接收 "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"控制端解碼器"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"撤回"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"撤回後將停止遠端連線、關閉畫面預覽儲存並清除已有預覽。連線記錄和密碼會保留,重新連線前需再次授權。"</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"撤回聯網授權"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"撤回聯網授權?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"收起遠端控制選單"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"收起鍵盤"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"收起滑鼠"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"資料"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"檔案儲存失敗,請重試"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"檔案已儲存"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"檔案選擇已超時,會話已結束"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"文字超過 128 KB"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"斷開"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"斷開後將返回首頁"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"斷開遠端連線?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"中斷連線"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"新版本"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"新版本可用:v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"新版本可用:v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"無未讀公告"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"無法儲存本地閱讀狀態,請重試。"</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"無法刪除這條公告,請重試。"</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"無法發起遠端連線"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"無法讀取開源許可"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"顯示器"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"顯示密碼"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"暫不同意"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"暫無公告"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"最近連線"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"伺服器"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"伺服器 TLS 證書校驗失敗"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"伺服器地址"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"伺服器登入失敗,請檢查伺服器地址和網路"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"伺服器埠"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"伺服器連線超時,請檢查伺服器地址和網路"</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"未啟用"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"未找到可開啟連結的瀏覽器"</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"未授權"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"未讀"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"未連線伺服器 · 點選重試"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"本應用使用 OpenFEC 提供前向糾錯功能,遵循 CeCILL-C 1.0 許可。該許可規定了有限保證及責任限制,詳情見許可全文。"</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"本機 ID "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"本機 ID {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"本版本原始碼與構建說明"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"本版本原始碼資訊暫不可用。"</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"鬆開重新整理"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"構建說明"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"構建配方與專案補丁"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"檢視原始碼"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"檢查失敗,請稍後重試"</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"檢查更新"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"正在關閉隱私屏…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"正在建立安全連線…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"正在開啟隱私屏…"</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"正在檢查更新…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"正在清除…"</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"正在獲取本機 ID…"</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"正在讀取所選檔案…"</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"正在連線"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"正在連線信令伺服器…"</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"正在連線伺服器…"</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"正在重連伺服器…"</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"此裝置沒有可用的檔案選擇器"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"清除"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"清除預覽圖"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"清除預覽圖?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"原始碼與構建說明"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"原始碼版本"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"版本"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"版權與許可宣告"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"電腦鍵盤"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"畫質優先"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"畫面偏好"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"畫面延遲"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"畫面設定"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"畫面質量"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"畫面採集幀率"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"相對位置"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"相對滑鼠"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"知道了"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"確定"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"確認"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"確認連線"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"離線"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"空白鍵"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"埠範圍為 1–65535"</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"符號功能"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"等待電腦返回隱私屏狀態;舊版電腦端可能不支援"</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"等待遠端螢幕資訊"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"等待遠端畫面…"</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"等待隱私授權"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"系統鍵盤"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"絕對位置"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"絕對滑鼠"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"網路狀態"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"自定義"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"虛擬滑鼠"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"被控端已透過組合鍵解除隱私屏。點選“鎖定”將重新開啟隱私屏,並禁止本機使用組合鍵解鎖。"</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"被控端版本過低,請升級到最新版本。"</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"被控端編碼器"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"要傳送到遠端的文字"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"影片"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"許可"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"許可與版權宣告"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"許可與版權宣告可離線查閱。"</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"裝置身份儲存失敗,請檢查安全儲存"</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"裝置身份及選擇儲存的訪問密碼使用 Android Keystore 加密。連線記錄僅儲存在本機,不納入裝置備份。剪貼簿內容在結束會話時清除。離開應用後透過畫中畫或連線通知保持會話,可在應用或通知中斷開。"</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"設定"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"設定,有新版本"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"訪問密碼"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"訪問密碼錯誤,請重新輸入"</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"證書校驗失敗 · 點選重試"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"請先完成聯網授權"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"請在遠端啟用 CrossDesk 系統服務後重試"</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"請求超時,尚未確認電腦的隱私屏狀態"</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"請等待當前檔案傳送完成"</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"請輸入 1–65535 範圍內的埠"</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"請輸入 9 位裝置 ID"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"請輸入有效訪問密碼"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"調整失敗,請重試。"</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"軟體許可"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"返回"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"返回控制欄"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"還沒有連線記錄"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"這條公告已更新或刪除,請返回公告列表檢視。"</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"遠端任務已關閉"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"遠端桌面"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"遠端桌面觸控區域"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"遠端桌面:輕觸點選,拖動移動,長按右鍵,雙指捏合縮放,放大後雙指拖動畫面,原始比例下雙指上下滑動滾動"</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"遠端電腦"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"遠端視窗已關閉,或後臺保活未能啟動,會話已結束"</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"遠端連線"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"遠端密碼錯誤"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"遠端已關閉連線"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"遠端當前不可用"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"遠端訪問密碼已失效,請重新連線"</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"連線"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"連線 "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"連線失敗"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"連線失敗 · 點選重試"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"連線已斷開"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"連線已結束"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"連線延時(RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"連線建立後可調整,需被控端支援。"</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"連線建立後鎖定橫屏"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"連線提示"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"連線方式"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"連線伺服器"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"連線伺服器後可獲取最新公告。"</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"連線超時,請檢查裝置 ID、伺服器及遠端線上狀態"</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"連線遠端桌面"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"退格"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"通知公告"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"部分預覽圖未能清除,請重試。"</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"重試"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"重試儲存閱讀狀態"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"鎖定"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"鍵盤"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"閱讀並授權"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"隱私"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"隱私與授權"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"隱私屏"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"隱私屏已關閉"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"隱私屏已開啟"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"隱私屏已被解鎖"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"隱私屏異常"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"隱私屏暫不可用"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"隱私屏狀態已過期,等待電腦確認"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"隱私屏狀態待確認"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"隱私政策"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"隱私政策暫時無法讀取,請拒絕聯網並重新安裝應用。"</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"靜音"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"音訊"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"專案主頁"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"預覽可能包含遠端電腦上的個人或工作資訊。開啟後,每次連線會自動將一張畫面儲存在本機並顯示在最近連線中。你可以隨時關閉並清除。"</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"高"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"預設"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"預設關閉。開啟後,手機連線時進入並保持橫屏;關閉時跟隨裝置方向。平板和多視窗不受影響。"</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"滑鼠右鍵,按住並拖動,鬆開結束拖拽"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"滑鼠左鍵,按住並拖動,鬆開結束拖拽"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"滑鼠控制"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"滑鼠滾輪,上下滑動,可滑出按鍵範圍"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">",丟包率 "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">",傳送 "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">",已儲存密碼"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">",接收 "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">",點選重試"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · Abgeschlossen"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" Übertragung fehlgeschlagen"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" Geräte"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" Artikel · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" ungelesene Artikel"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"CrossDesk Remote-Verbindung"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL Version 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"OpenFEC-Hinweis"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"OpenFEC Lizenz und Quelle"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"P2P-Direktverbindung"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP enabled"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"TURN-Relais"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"{0}-Übertragung fehlgeschlagen"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"Geräte: {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0} ungelesene Elemente"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}, Empfangen von {1}, Senden von {2}, Paketverlustrate {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● Verbunden"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"Zum Aktualisieren nach unten ziehen"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"Verlustrate"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"Mittel"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"Priorisiert die Aufrechterhaltung eines flüssigen Bildes und reduziert die Auflösung stärker, wenn die Bandbreite oder der Codierungsdruck hoch ist."</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"Niedrig"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"Verwendung eines benutzerdefinierten Servers"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"Passwort speichern"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"Empfangene Datei speichern"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"Remote-Bildschirmvorschauen speichern"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"Remote-Bildschirmvorschau speichern?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"Die Signalverbindung ist unterbrochen. Bitte stellen Sie die Verbindung wieder her."</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"Das Laden der Ankündigung ist fehlgeschlagen. Bitte versuchen Sie es erneut."</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"Einzelheiten zur Ankündigung"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"Insgesamt "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"Insgesamt {0} Artikel ·{1} ungelesene Artikel"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"Ungefähr"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"Über CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"Ungefähr, es gibt eine neue Version"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"Schließen"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"Bedienbügel schließen"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"Privatsphäre-Bildschirm deaktivieren"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"Gleicht Klarheit und Glätte aus und verringert die Auflösung bei konstantem Druck nur allmählich."</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"Auflösung"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"Löschen"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"Ansage löschen"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"Datensatz löschen"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"Diese Ankündigung löschen?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"Ankündigung aktualisieren"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"Zwischenablage"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"Laden…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"Mehr laden"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"Update empfohlen"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"Die Initialisierung der nativen Verbindung ist fehlgeschlagen"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"Senden"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"Senden "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"Klicken Sie nach dem Senden auf der Remote-Tastatur auf „Einfügen“. Der empfangene Remote-Text kann manuell auf den lokalen Computer kopiert werden."</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"Datei senden"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"Text senden"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"Abbrechen"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"Verbindung abbrechen"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"Jede Komponente unterliegt der aufgeführten Open-Source-Lizenz und die gewährten Rechte unterliegen nicht den allgemeinen Nutzungsbedingungen dieser Anwendung. Für die Anzeige des Quellcodes ist eine Internetverbindung erforderlich."</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"Insgesamt"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"Zustimmen und fortfahren"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"Bleiben Sie im Hintergrund verbunden. Klicken Sie, um zum Remote-Desktop zurückzukehren"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"Hintergrund-Keepalive konnte nicht gestartet werden. Bitte lassen Sie die Anwendung im Vordergrund"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"Hintergrund-Keepalive konnte nicht gestartet werden. Bitte lassen Sie die Anwendung im Vordergrund und stellen Sie die Verbindung erneut her."</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"Die Hintergrundverbindung wurde beendet. Bitte stellen Sie die Verbindung wieder her."</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"Der Hintergrundverbindungsdienst wurde beendet. Bitte stellen Sie die Verbindung wieder her."</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"Neue Vorschauen werden bei nachfolgenden Verbindungen weiterhin gespeichert."</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"Online"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"Geben Sie den Hostnamen oder die IPv4-Adresse ein, ohne Protokoll und Pfad"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"Ton"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"Remote-Text kopieren"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"Behalten Sie immer eine höhere Auflösung bei und reduzieren Sie die Bildrate, um die Bildschärfe zu gewährleisten, wenn die Bandbreite nicht ausreicht."</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"Medienverschlüsselung"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"Buchstaben & Zahlen"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"Der sichere Speicher oder die Initialisierung des Zertifikats ist fehlgeschlagen. Bitte versuchen Sie es erneut oder löschen Sie die Anwendungsdaten"</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"Fertig"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"Sie können nach Abschluss der Datenschutzautorisierung nach Updates suchen"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"Registrieren Sie die lokale Identität, nachdem Sie die Datenschutzautorisierung abgeschlossen haben"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"Das Speichern des Passworts ist fehlgeschlagen. Diese Verbindung kann weiterhin verwendet werden"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"Passwörter werden verschlüsselt im nativen Android Keystore gespeichert"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"Remote-ID"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"Peer-ID "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"Peer-ID {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"Alle auf diesem Computer gespeicherten Remote-Vorschauen werden gelöscht und die Verbindungsdatensätze und Passwörter bleiben erhalten."</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"Bildschirmausrichtung"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"Fernbedienungsmenü erweitern"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"Remote-Verbindung wegen Benachrichtigung getrennt"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"Passwort gespeichert"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"Das gespeicherte Passwort kann nicht gelesen werden, bitte geben Sie es erneut ein."</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"Das gespeicherte Passwort kann nicht beibehalten werden, bitte geben Sie es erneut ein."</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Del gesendet"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"Hintergrund-Keep-Alive ist aktiviert, wechselnde Anwendungen können die Verbindung weiterhin aufrechterhalten"</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"Hintergrund-Keepalive aktiviert, um Verbindungsbenachrichtigungen zurückzugeben oder zu trennen"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"Zugegeben"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"Lesen"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"Verbunden "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"Mit Server verbunden"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"Bildrate"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"Flüssig"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"Balance"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"Die Lizenzdatei in der Anwendung fehlt oder ist beschädigt. Bitte installieren Sie die Anwendung neu."</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"Die Entwicklungsversion enthält Änderungen, die noch nicht veröffentlicht wurden. Der folgende Link ist der Quellcode der Basisversion."</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"Speichern aktivieren"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"Privatsphärenschutz aktivieren"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"Open-Source-Komponenten"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"Beschreibung der Open-Source-Softwarerechte"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"Dies ist derzeit die neueste Version"</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"Derzeit unterstützt die Gegenstelle keine direkte Eingabe dieses Textes. Bitte verwenden Sie eine Version des gesteuerten Endes, die die Texteingabe unterstützt, oder senden Sie sie über die Zwischenablage."</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"Nach erfolgreicher Verbindung wird hier das nächstgelegene Remote-Gerät angezeigt."</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"Ausgewählte Datei (kann nicht gelesen werden oder nicht genügend Speicherplatz)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"Die Geräte-ID wurde nicht gefunden"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"Das Senden des Befehls ist fehlgeschlagen. Bitte versuchen Sie es erneut"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"Der Befehl wurde gesendet und wartet auf die Bestätigung des Computers ..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"Autorisierungsstatus"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"Empfangen"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"erhalten "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"Lokaler Decoder"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"Widerrufen"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"Nach dem Abheben wird die Fernverbindung beendet, die Bildschirmvorschau geschlossen und die bestehende Vorschau gelöscht. Der Verbindungsdatensatz und das Passwort bleiben erhalten und vor der erneuten Verbindung ist eine erneute Autorisierung erforderlich."</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"Netzwerkberechtigung entziehen"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"Netzwerkberechtigung entziehen?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"Fernbedienungsmenü einklappen"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"Tastatur ausblenden"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"Maus ausblenden"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"Daten"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"Das Speichern der Datei ist fehlgeschlagen. Bitte versuchen Sie es erneut"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"Datei gespeichert"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"Zeitüberschreitung bei der Dateiauswahl und Sitzung beendet"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"Der Text ist größer als 128 KB"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"Trennen"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"Kehrt nach dem Trennen der Verbindung zur Startseite zurück"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"Remote-Verbindung trennen?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"Trennen"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"Neue Version"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"Neue Version verfügbar: v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"Neue Version verfügbar: v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"Keine ungelesenen Ankündigungen"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"Lesestatus kann nicht lokal gespeichert werden. Bitte versuchen Sie es erneut."</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"Diese Ankündigung kann nicht gelöscht werden. Bitte versuchen Sie es erneut."</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"Remote-Verbindung konnte nicht initiiert werden"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"Open-Source-Lizenz kann nicht gelesen werden"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"Bildschirm"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"Passwort anzeigen"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"Jetzt nicht"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"Keine Ankündigungen"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"Letzte Verbindungen"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"Server"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"Server TLS certificate-Überprüfung fehlgeschlagen"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"Serveradresse"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"Die Serveranmeldung ist fehlgeschlagen. Bitte überprüfen Sie die Serveradresse und das Netzwerk"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"Server-Port"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"Zeitüberschreitung bei der Serververbindung. Bitte überprüfen Sie die Serveradresse und das Netzwerk"</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"Nicht aktiviert"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"Es wurde kein Browser zum Öffnen des Links gefunden"</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"Nicht autorisiert"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"Ungelesen"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"Server nicht verbunden · Klicken Sie, um es erneut zu versuchen"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"Diese Anwendung verwendet OpenFEC zur Vorwärtsfehlerkorrektur unterCeCILL-C1.0, was eingeschränkte Garantien und Haftungsbeschränkungen bietet. Einzelheiten finden Sie in der vollständigen Lizenz."</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"Lokale ID "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"Lokale ID {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"Quellcode und Build-Anweisungen für diese Version"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"Die Quellrevision ist für diesen Build nicht verfügbar."</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"Zum Aktualisieren loslassen"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"Bauanleitung"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"Erstellen Sie Rezepte und Projekt-Patches"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"Quellcode anzeigen"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"Prüfung fehlgeschlagen. Bitte versuchen Sie es später noch einmal."</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"Suchen Sie nach Updates"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"Sichtschutz wird geschlossen…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"Sichere Verbindung wird hergestellt…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"Privatsphärenschutz einschalten..."</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"Suche nach Updates…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"Löschen..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"Lokale ID erhalten..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"Ausgewählte Datei wird gelesen..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"Verbinden"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"Verbindung zum Signalisierungsserver wird hergestellt..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"Verbindung zum Server herstellen..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"Verbindung zum Server wird wiederhergestellt..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"Für dieses Gerät ist keine Dateiauswahl verfügbar"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"Klar"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"Vorschaubilder löschen"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"Vorschaubilder löschen?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"Quellcode und Build-Anweisungen"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"Quellcode-Version"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"Version"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"Urheberrechts- und Lizenzerklärung"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"Computertastatur"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"Qualität"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"Videopräferenz"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"Videolatenz"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"Videoeinstellungen"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"Videoqualität"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"Bildrate der Videoaufnahme"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"Touchpad"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"Relative Maus"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"Verstanden"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"Okay"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"Bestätigen"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"Verbindung bestätigen"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"Offline"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"Leertaste"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"Der Portbereich liegt zwischen 1 und 65535"</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"Symbole & Tasten"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"Warten Sie, bis der Computer in den Datenschutzstatus zurückkehrt. Ältere Computer unterstützen dies möglicherweise nicht."</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"Warten auf Remote-Bildschirminformationen"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"Warten auf den Remote-Bildschirm ..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"Datenschutzzustimmung ausstehend"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"Systemtastatur"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"Direkte Berührung"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"Absolute Maus"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"Netzwerk"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"Benutzerdefiniert"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"Virtuelle Maus"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"Der Remote-Datenschutzbildschirm wurde über die lokale Verknüpfung entsperrt. Sperren Sie es erneut, um die Privatsphäre wiederherzustellen und das Entsperren lokaler Verknüpfungen zu deaktivieren."</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"Die kontrollierte Version ist zu niedrig, bitte aktualisieren Sie auf die neueste Version."</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"Remote-Encoder"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"Text, der an die Gegenstelle gesendet werden soll"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"Video"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"Lizenz"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"Lizenzen und Urheberrechtshinweise"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"Die Lizenz- und Urheberrechtshinweise sind offline verfügbar."</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"Die Geräteidentität konnte nicht gespeichert werden. Bitte überprüfen Sie den sicheren Speicher"</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"Geräteidentität und ausgewählte gespeicherte Zugangskennwörter werden mit Android Keystore verschlüsselt. Verbindungsdatensätze werden nur lokal gespeichert und sind nicht in der Gerätesicherung enthalten. Der Inhalt der Zwischenablage wird gelöscht, wenn die Sitzung beendet wird. Bleiben Sie mit Bild-in-Bild- oder verbundenen Benachrichtigungen in der Sitzung, nachdem Sie die App verlassen haben, und trennen Sie die Verbindung innerhalb der App oder der Benachrichtigungen."</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"Einstellungen"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"Einstellungen, es gibt eine neue Version"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"Zugangspasswort"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"Das Zugangspasswort ist falsch, bitte geben Sie es erneut ein."</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"Zertifikatsüberprüfung fehlgeschlagen · Klicken Sie, um es erneut zu versuchen"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"Bitte füllen Sie zunächst die Online-Autorisierung aus"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"Bitte aktivieren Sie den CrossDesk-Systemdienst auf der Gegenseite und versuchen Sie es erneut"</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"Die Anfrage ist abgelaufen und der Datenschutzstatus des Computers wurde nicht bestätigt."</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"Bitte warten Sie, bis die aktuelle Datei gesendet wird."</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"Bitte geben Sie einen Port im Bereich 1–65535 ein"</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"Geben Sie eine 9-stellige Geräte-ID ein"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"Bitte geben Sie ein gültiges Zugangspasswort ein"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"Einstellungen konnten nicht angewendet werden. Versuchen Sie es erneut."</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"Softwarelizenz"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"Zurück"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"Zurück zur Steuerleiste"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"Noch kein Verbindungsdatensatz"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"Diese Ankündigung wurde aktualisiert oder gelöscht. Bitte kehren Sie zur Ankündigungsliste zurück, um sie anzuzeigen."</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"Remote-Aufgabe ist geschlossen"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"Remotedesktop"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"Remote-Desktop-Touchbereich"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"Remote-Desktop: Berühren und klicken, zum Verschieben ziehen, die rechte Taste gedrückt halten, zum Zoomen zusammenziehen, hineinzoomen und den Bildschirm mit zwei Fingern ziehen, mit zwei Fingern nach oben und unten streichen, um im Originalmaßstab zu scrollen"</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"Remote-Computer"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"Das Remote-Fenster wurde geschlossen oder der Hintergrund-Keepalive konnte nicht gestartet werden und die Sitzung wurde beendet."</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"Remote-Verbindung"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"Falsches Remote-Passwort"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"Die Gegenstelle hat die Verbindung geschlossen"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"Die Gegenstelle ist derzeit nicht verfügbar"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"Das Passwort für den Fernzugriff ist abgelaufen. Bitte verbinden Sie sich erneut."</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"Verbinden"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"Verbindung "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"Verbindung fehlgeschlagen"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"Verbindung fehlgeschlagen · Klicken Sie, um es erneut zu versuchen"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"Verbindung verloren"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"Verbindung beendet"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"Verbindungsverzögerung (RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"Verfügbar bei Verbindung mit einem unterstützten Remote-Gerät."</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"Querformatbildschirm sperren, nachdem die Verbindung hergestellt wurde"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"Verbindungsaufforderung"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"Verbindungsmethode"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"Mit dem Server verbinden"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"Stellen Sie eine Verbindung zum Server her, um die neuesten Ankündigungen zu erhalten."</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"Zeitüberschreitung bei der Verbindung. Bitte überprüfen Sie die Geräte-ID, den Server und den Remote-Online-Status"</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"Mit Remote-Desktop verbinden"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"Rücktaste"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"Mitteilungen"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"Einige Vorschauen konnten nicht gelöscht werden. Bitte versuchen Sie es erneut."</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"Versuchen Sie es erneut"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"Versuchen Sie erneut, den Lesestatus zu speichern"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"Sperren"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"Tastatur"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"Lesen und autorisieren"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"Datenschutz"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"Datenschutz und Autorisierung"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"Sichtschutz"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"Sichtschutz aus"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"Sichtschutz an"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"Datenschutzbildschirm entsperrt"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"Anomalie des Sichtschutzbildschirms"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"Der Datenschutzbildschirm ist vorübergehend nicht verfügbar"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"Der Status des Datenschutzbildschirms ist abgelaufen und wartet auf Computerbestätigung"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"Status des Datenschutzbildschirms muss bestätigt werden"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"Datenschutzrichtlinie"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"Die Datenschutzerklärung kann vorübergehend nicht gelesen werden. Bitte verweigern Sie die Verbindung zum Internet und installieren Sie die Anwendung neu."</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"Stumm"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"Audio"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"Projektwebsite"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"Vorschauen können persönliche oder geschäftliche Informationen vom Remote-Computer enthalten. Nach dem Einschalten speichert jede Verbindung automatisch ein Bild auf dem Gerät und zeigt es in den letzten Verbindungen an. Sie können jederzeit schließen und löschen."</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"Hoch"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"Standard"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"Standardmäßig deaktiviert. Wenn es eingeschaltet ist, wird der Bildschirm angezeigt und bleibt im Querformat, wenn das Telefon angeschlossen ist. Wenn es ausgeschaltet ist, folgt es der Richtung des Geräts. Tablets und Multi-Windows sind nicht betroffen."</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"Rechte Maustaste, drücken und ziehen, loslassen, um das Ziehen zu beenden"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"Linke Maustaste, drücken und ziehen, loslassen, um das Ziehen zu beenden"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"Maussteuerung"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"Mausrad, nach oben und unten schieben, um aus dem Tastenbereich zu gleiten"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">", Paketverlustrate "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">", senden "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">", Passwort gespeichert"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">", empfangen "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">", klicken Sie auf Wiederholen"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · Completado"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" Transferencia fallida"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" dispositivos"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" Artículo · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" elementos no leídos"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"Conexión remota CrossDesk"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL versión 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"Aviso OpenFEC"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"Licencia y fuente OpenFEC"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"Conexión directa P2P"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP habilitado"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"Relé de GIRO"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"Error en la transmisión {0}"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"Dispositivos: {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0} elementos no leídos"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}, recepción de {1}, envío de {2}, tasa de pérdida de paquetes {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● Conectado"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"Tire hacia abajo para actualizar"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"Tasa de pérdidas"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"Media"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"Da prioridad a mantener la imagen fluida y reducirá la resolución de manera más agresiva cuando el ancho de banda o la presión de codificación sean altos."</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"Baja"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"Usando un servidor personalizado"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"Guardar contraseña"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"Guardar archivo recibido"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"Guardar vistas previas de pantalla remotas"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"¿Guardar vista previa de pantalla remota?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"La conexión de señalización está interrumpida, vuelva a conectarse."</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"Error al cargar el anuncio, inténtelo de nuevo."</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"Detalles del anuncio"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"totales "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"Total de elementos {0}· Elementos no leídos {1}"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"Acerca de"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"Acerca de CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"Acerca de, hay una nueva versión."</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"Cerrar"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"Cerrar barra de control"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"Desactivar la pantalla de privacidad"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"Equilibra la claridad y la suavidad, reduciendo solo gradualmente la resolución bajo presión constante."</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"Resolución"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"Eliminar"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"Eliminar anuncio"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"Eliminar registro"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"¿Eliminar este anuncio?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"Actualizar anuncio"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"Portapapeles"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"Cargando…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"Cargar más"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"Actualización recomendada"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"Falló la inicialización de la conexión nativa"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"Enviar"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"Enviar "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"Después de enviar, haga clic en \"Pegar\" en el teclado remoto. El texto remoto recibido se puede copiar manualmente a la máquina local."</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"Enviar archivo"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"Enviar texto"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"Cancelar"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"Cancelar conexión"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"Cada componente está sujeto a la licencia de código abierto enumerada y los derechos otorgados no están sujetos a los términos generales de uso de esta aplicación. Para ver el código fuente se requiere una conexión a Internet."</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"Total"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"Aceptar y continuar"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"Manténgase conectado en segundo plano, haga clic para regresar al escritorio remoto"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"No se pudo iniciar el mantenimiento en segundo plano; mantenga la aplicación en primer plano"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"No se pudo iniciar el mantenimiento en segundo plano. Mantenga la aplicación en primer plano y vuelva a conectarse."</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"La conexión en segundo plano ha finalizado; vuelva a conectarse."</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"El servicio de conexión en segundo plano se detuvo; vuelva a conectarse."</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"Las nuevas vistas previas aún se guardarán en conexiones posteriores."</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"En línea"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"Complete el nombre del host o la dirección IPv4, sin protocolo ni ruta"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"Sonido"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"Copiar texto remoto"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"Mantenga siempre una resolución más alta y reduzca la velocidad de fotogramas para garantizar la claridad de la imagen cuando el ancho de banda sea insuficiente."</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"Cifrado de medios"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"Letras y números"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"Error en el almacenamiento seguro o en la inicialización del certificado. Inténtelo de nuevo o borre los datos de la aplicación."</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"Hecho"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"Puede buscar actualizaciones después de completar la autorización de privacidad"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"Registre la identidad local después de completar la autorización de privacidad"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"Error al guardar la contraseña, esta conexión aún se puede utilizar"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"Las contraseñas se guardan cifradas en el almacén de claves nativo de Android"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"Identificación remota"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"Identificación de pares "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"ID de igual {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"Se eliminarán todas las vistas previas remotas guardadas en esta máquina y se conservarán los registros de conexión y las contraseñas."</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"Orientación de la pantalla"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"Ampliar el menú del control remoto"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"Conexión remota desconectada de la notificación"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"Contraseña guardada"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"La contraseña guardada no se puede leer; vuelva a ingresarla."</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"La contraseña guardada no se puede conservar; vuelva a ingresarla."</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Del enviado"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"Mantener vivo en segundo plano está habilitado, cambiar de aplicación puede continuar manteniendo la conexión"</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"Keepalive en segundo plano habilitado para regresar o desconectarse de las notificaciones de conexión"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"Concedido"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"Leer"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"Conectado "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"Conectado al servidor"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"Velocidad de fotogramas"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"Fluidez"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"Equilibrado"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"El archivo de licencia de la aplicación falta o está dañado; reinstale la aplicación."</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"La versión de desarrollo contiene modificaciones que aún no han sido publicadas. El siguiente enlace es el código fuente de la versión básica."</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"Activar guardado"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"Habilitar pantalla de privacidad"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"Componentes de código abierto"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"Descripción de los derechos del software de código abierto"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"Esta es actualmente la última versión."</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"Actualmente, el extremo remoto no admite la entrada directa de este texto. Utilice una versión del extremo controlado que admita la entrada de texto o envíela a través del portapapeles."</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"Tras una conexión exitosa, aquí se mostrará el dispositivo remoto más cercano."</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"He leído y acepto la Política de Privacidad"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"Archivo seleccionado (no se puede leer o no hay suficiente espacio)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"No se encontró el ID del dispositivo"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"Error al enviar el comando, inténtelo de nuevo"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"El comando ha sido enviado, esperando confirmación por computadora..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"Estado de autorización"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"Recibir"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"recibir "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"Decodificador local"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"Retirar"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"Después de retirarse, se detendrá la conexión remota, se cerrará la vista previa de la pantalla y se borrará la vista previa existente. El registro de conexión y la contraseña se conservarán y se requerirá autorización nuevamente antes de volver a conectarse."</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"Retirar la autorización de red"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"¿Retirar la autorización de la red?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"Contraer menú de control remoto"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"Ocultar teclado"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"Ocultar ratón"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"Datos"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"Error al guardar el archivo, inténtelo de nuevo"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"Archivo guardado"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"Se agotó el tiempo de selección de archivos y la sesión finalizó"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"El texto supera los 128 KB"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"Desconectar"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"Volverá a la página de inicio después de desconectarse"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"¿Desconectar la conexión remota?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"Desconectar"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"Nueva versión"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"Nueva versión disponible :v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"Nueva versión disponible: v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"No hay anuncios no leídos"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"No se puede guardar el estado de lectura localmente. Por favor inténtalo de nuevo."</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"No se puede eliminar este anuncio. Por favor inténtalo de nuevo."</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"No se puede iniciar la conexión remota"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"No se puede leer la licencia de código abierto"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"Pantalla"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"Mostrar contraseña"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"Ahora no"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"Sin anuncios"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"Conexiones recientes"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"Servidor"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"Error en la verificación del certificado Server TLS"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"Dirección del servidor"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"Error al iniciar sesión en el servidor; verifique la dirección y la red del servidor"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"Puerto del servidor"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"Se agotó el tiempo de espera de la conexión del servidor; verifique la dirección y la red del servidor."</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"No habilitado"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"No se encontró ningún navegador para abrir el enlace."</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"No autorizado"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"No leído"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"Servidor no conectado · Haga clic para intentar nuevamente"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"Esta aplicación utiliza OpenFEC para la corrección de errores directos bajoCeCILL-C1.0, que proporciona garantías limitadas y limita la responsabilidad. Consulte la licencia completa para obtener más detalles."</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"Identificación local "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"ID local {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"Código fuente e instrucciones de compilación para esta versión"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"La revisión fuente no está disponible para esta compilación."</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"Suelte para actualizar"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"Instrucciones de construcción"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"Crear recetas y parches de proyectos"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"Ver código fuente"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"La verificación falló. Inténtelo de nuevo más tarde."</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"Buscar actualizaciones"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"Cerrando la pantalla de privacidad..."</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"Estableciendo una conexión segura..."</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"Activando la pantalla de privacidad..."</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"Buscando actualizaciones..."</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"Borrando..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"Obtención de identificación local..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"Leyendo el archivo seleccionado..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"Conexión"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"Conectándose al servidor de señalización..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"Conectándose al servidor..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"Reconectándose al servidor..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"No hay selector de archivos disponible para este dispositivo"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"Borrar"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"Borrar vistas previas"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"¿Borrar vistas previas?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"Código fuente e instrucciones de compilación"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"Versión del código fuente"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"Versión"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"Declaración de derechos de autor y licencia"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"Teclado de computadora"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"Calidad"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"Preferencia de vídeo"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"Latencia de vídeo"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"Configuración de vídeo"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"Calidad de vídeo"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"Velocidad de fotogramas de captura de vídeo"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"Panel táctil"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"Ratón relativo"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"Entendido"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"Aceptar"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"Confirmar"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"Confirmar conexión"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"Sin conexión"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"Espacio"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"El rango de puertos es 1–65535"</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"Símbolos y teclas"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"Espere a que la computadora vuelva al estado de pantalla de privacidad; Es posible que las computadoras más antiguas no lo admitan."</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"Esperando información de la pantalla remota"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"Esperando la pantalla remota..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"Esperando autorización de privacidad"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"Teclado del sistema"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"Toque directo"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"Ratón absoluto"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"Red"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"Personalizado"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"Ratón virtual"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"La pantalla de privacidad remota se desbloqueó usando el acceso directo local. Bloquéelo nuevamente para restaurar la privacidad y deshabilitar el desbloqueo de accesos directos locales."</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"La versión controlada es demasiado baja; actualice a la última versión."</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"Codificador remoto"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"Texto a enviar al extremo remoto"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"Vídeo"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"Licencia"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"Licencias y avisos de derechos de autor"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"La licencia y el aviso de derechos de autor están disponibles sin conexión."</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"No se pudo guardar la identidad del dispositivo; verifique el almacenamiento seguro"</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"La identidad del dispositivo y las contraseñas de acceso guardadas seleccionadas se cifran mediante Android Keystore. Los registros de conexión solo se guardan localmente y no se incluyen en la copia de seguridad del dispositivo. El contenido del portapapeles se borra cuando finaliza la sesión. Manténgase en sesión con imagen en imagen o notificaciones conectadas después de salir de la aplicación y desconéctese dentro de la aplicación o las notificaciones."</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"Ajustes"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"Configuración, hay una nueva versión."</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"Contraseña de acceso"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"La contraseña de acceso es incorrecta, por favor vuelva a ingresarla."</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"Error en la verificación del certificado · Haga clic para intentar nuevamente"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"Primero complete la autorización en línea"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"Habilite el servicio del sistema CrossDesk en el extremo remoto y vuelva a intentarlo."</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"Se agotó el tiempo de espera de la solicitud y no se ha confirmado el estado de la pantalla de privacidad de la computadora."</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"Espere a que se envíe el archivo actual."</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"Ingrese un puerto en el rango 1–65535"</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"Ingrese una ID de dispositivo de 9 dígitos"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"Por favor ingrese una contraseña de acceso válida"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"No se pudieron aplicar las configuraciones. Intentar otra vez."</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"Licencia de software"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"Volver"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"Volver a la barra de control"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"Aún no hay registro de conexión"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"Este anuncio ha sido actualizado o eliminado, regrese a la lista de anuncios para verlo."</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"La tarea remota está cerrada"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"Escritorio remoto"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"Área táctil del escritorio remoto"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"Escritorio remoto: toque y haga clic, arrastre para mover, presione y mantenga presionado el botón derecho, pellizque para hacer zoom, acerque y arrastre la pantalla con dos dedos, deslice hacia arriba y hacia abajo con dos dedos para desplazarse a la escala original"</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"Computadora remota"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"La ventana remota se cerró o el mantenimiento en segundo plano no se pudo iniciar y la sesión finalizó."</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"Conexión remota"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"Contraseña remota incorrecta"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"El extremo remoto ha cerrado la conexión"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"El extremo remoto no está disponible actualmente"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"La contraseña de acceso remoto ha caducado, vuelva a conectarse."</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"Conectar"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"Conexión "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"Error de conexión"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"Error de conexión · Haga clic para intentarlo de nuevo"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"Conexión perdida"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"Conexión finalizada"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"Retardo de conexión (RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"Disponible cuando se conecta a un dispositivo remoto compatible."</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"Bloquear la pantalla horizontal después de establecer la conexión"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"Aviso de conexión"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"Método de conexión"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"Conectarse al servidor"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"Conéctese al servidor para obtener los últimos anuncios."</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"Se agotó el tiempo de conexión; verifique el ID del dispositivo, el servidor y el estado en línea remoto"</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"Conectarse al escritorio remoto"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"Retroceso"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"Anuncios"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"Algunas vistas previas no se pudieron borrar, inténtalo de nuevo."</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"Inténtalo de nuevo"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"Reintentar guardar el estado de lectura"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"Bloquear"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"Teclado"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"Leer y autorizar"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"Privacidad"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"Privacidad y autorización"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"Pantalla de privacidad"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"Privacidad desactivada"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"Privacidad activada"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"Pantalla de privacidad desbloqueada"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"Anormalidad en la pantalla de privacidad"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"La pantalla de privacidad no está disponible temporalmente"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"El estado de la pantalla de privacidad ha caducado, esperando confirmación por computadora"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"Estado de la pantalla de privacidad por confirmar"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"Política de privacidad"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"La política de privacidad no se puede leer temporalmente. Rechace conectarse a Internet y reinstale la aplicación."</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"Silencio"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"Audio"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"Sitio web del proyecto"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"Las vistas previas pueden contener información personal o laboral de la computadora remota. Después de encenderlo, cada conexión guardará automáticamente una imagen en la máquina y la mostrará en las conexiones recientes. Puedes cerrar y borrar en cualquier momento."</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"Alta"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"Predeterminado"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"Desactivado de forma predeterminada. Cuando esté encendido, la pantalla entrará y permanecerá en orientación horizontal cuando el teléfono esté conectado; cuando esté apagado, seguirá la dirección del dispositivo. Las tabletas y las ventanas múltiples no se ven afectadas."</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"Botón derecho del mouse, presione y arrastre, suelte para finalizar el arrastre"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"Botón izquierdo del mouse, presione y arrastre, suelte para finalizar el arrastre"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"Control del ratón"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"Rueda del mouse, deslícela hacia arriba y hacia abajo para salir del rango de teclas"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">", tasa de pérdida de paquetes "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">", enviar "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">", contraseña guardada"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">", recibir "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">", haga clic en Reintentar"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · Terminé"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" Échec du transfert"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" appareils"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" Article · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" éléments non lus"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"Connexion à distance CrossDesk"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL version 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"Avis OpenFEC"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"Licence et source OpenFEC"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"Connexion directe P2P"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP activé"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"Relais TOUR"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"Échec de la transmission {0}"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"Appareils : {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"Éléments non lus {0}"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}, réception de {1}, envoi de {2}, taux de perte de paquets {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● Connecté"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"Déroulez pour actualiser"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"Taux de perte"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"Moyenne"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"Donne la priorité au maintien de la fluidité de l\'image et réduira la résolution de manière plus agressive lorsque la bande passante ou la pression d\'encodage est élevée."</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"Faible"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"Utilisation d\'un serveur personnalisé"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"Enregistrer le mot de passe"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"Enregistrer le fichier reçu"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"Enregistrer les aperçus de l\'écran distant"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"Enregistrer l\'aperçu de l\'écran distant ?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"La connexion de signalisation est interrompue, veuillez vous reconnecter."</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"Le chargement de l\'annonce a échoué, veuillez réessayer."</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"Détails de l\'annonce"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"Total "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"Total des éléments {0}· Éléments non lus {1}"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"À propos"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"À propos de CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"À propos, il existe une nouvelle version"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"Fermer"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"Fermer la barre de contrôle"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"Désactiver l\'écran de confidentialité"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"Équilibre la clarté et la douceur, en réduisant seulement progressivement la résolution sous une pression constante."</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"Résolution"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"Supprimer"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"Supprimer l\'annonce"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"Supprimer l\'enregistrement"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"Supprimer cette annonce ?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"Actualiser l\'annonce"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"Presse-papiers"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"Chargement…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"Charger plus"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"Mise à jour conseillée"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"L\'initialisation de la connexion native a échoué"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"Envoi"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"Envoyer "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"Après l\'envoi, cliquez sur \"Coller\" sur le clavier distant. Le texte distant reçu peut être copié manuellement sur la machine locale."</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"Envoyer le fichier"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"Envoyer un SMS"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"Annuler"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"Annuler la connexion"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"Chaque composant est soumis à la licence open source répertoriée, et les droits accordés ne sont pas soumis aux conditions générales d\'utilisation de cette application. La visualisation du code source nécessite une connexion Internet."</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"Total"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"Accepter et continuer"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"Restez connecté en arrière-plan, cliquez pour revenir au bureau distant"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"Échec du démarrage de Keepalive en arrière-plan, veuillez conserver l\'application au premier plan"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"L\'application Keepalive en arrière-plan n\'a pas pu démarrer. Veuillez conserver l\'application au premier plan et vous reconnecter."</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"La connexion en arrière-plan est terminée, veuillez vous reconnecter."</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"Le service de connexion en arrière-plan s\'est arrêté, veuillez vous reconnecter."</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"Les nouveaux aperçus seront toujours enregistrés lors des connexions ultérieures."</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"En ligne"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"Remplissez le nom d\'hôte ou l\'adresse IPv4, sans protocole ni chemin"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"Son"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"Copier le texte distant"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"Maintenez toujours une résolution plus élevée et réduisez la fréquence d\'images pour garantir la clarté de l\'image lorsque la bande passante est insuffisante."</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"Cryptage multimédia"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"Lettres et chiffres"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"Échec du stockage sécurisé ou de l\'initialisation du certificat. Veuillez réessayer ou effacer les données de l\'application."</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"Terminé"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"Vous pouvez vérifier les mises à jour après avoir terminé l\'autorisation de confidentialité"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"Enregistrez l\'identité locale après avoir terminé l\'autorisation de confidentialité"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"L\'enregistrement du mot de passe a échoué, cette connexion peut toujours être utilisée"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"Les mots de passe sont enregistrés cryptés dans le Keystore Android natif"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"ID à distance"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"Identification des pairs "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"ID homologue {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"Tous les aperçus à distance enregistrés sur cette machine seront supprimés et les enregistrements de connexion et les mots de passe seront conservés."</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"Orientation de l\'écran"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"Développer le menu de la télécommande"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"Connexion à distance déconnectée de la notification"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"Mot de passe enregistré"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"Le mot de passe enregistré ne peut pas être lu, veuillez le saisir à nouveau."</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"Le mot de passe enregistré ne peut pas être conservé, veuillez le saisir à nouveau."</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Del envoyé"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"Le maintien de l\'activité en arrière-plan est activé, les applications de commutation peuvent continuer à maintenir la connexion."</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"Keepalive en arrière-plan activé pour revenir ou se déconnecter des notifications de connexion"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"Accordé"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"Lire"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"Connecté "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"Connecté au serveur"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"Fréquence d\'images"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"Fluidité"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"Équilibré"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"Le fichier de licence dans l\'application est manquant ou endommagé, veuillez réinstaller l\'application."</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"La version de développement contient des modifications qui n\'ont pas encore été publiées. Le lien suivant est le code source de la version de base."</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"Activer l’enregistrement"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"Activer l\'écran de confidentialité"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"Composants open source"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"Description des droits sur les logiciels open source"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"Il s\'agit actuellement de la dernière version"</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"Actuellement, l\'extrémité distante ne prend pas en charge la saisie directe de ce texte. Veuillez utiliser une version de l\'extrémité contrôlée qui prend en charge la saisie de texte ou envoyez-la via le presse-papiers."</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"Une fois la connexion réussie, l\'appareil distant le plus proche sera affiché ici."</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"J\'ai lu et accepté la politique de confidentialité"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"Fichier sélectionné (impossible en lecture ou espace insuffisant)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"L\'ID de l\'appareil n\'a pas été trouvé"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"L\'envoi de la commande a échoué, veuillez réessayer"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"La commande a été envoyée, en attente de confirmation informatique..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"Statut d\'autorisation"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"Réception"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"recevoir "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"Décodeur local"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"Retirer"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"Après le retrait, la connexion à distance sera arrêtée, l\'aperçu de l\'écran sera fermé et l\'aperçu existant sera effacé. L\'enregistrement de connexion et le mot de passe seront conservés et une autorisation sera à nouveau requise avant de se reconnecter."</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"Retirer l\'autorisation réseau"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"Retirer l\'autorisation réseau ?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"Réduire le menu de la télécommande"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"Masquer le clavier"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"Masquer la souris"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"Données"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"L\'enregistrement du fichier a échoué, veuillez réessayer"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"Fichier enregistré"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"La sélection de fichier a expiré et la session s\'est terminée"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"Le texte dépasse 128 Ko"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"Déconnecter"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"Reviendra à la page d\'accueil après la déconnexion"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"Déconnecter la connexion à distance ?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"Déconnecter"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"Nouvelle version"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"Nouvelle version disponible : v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"Nouvelle version disponible : v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"Aucune annonce non lue"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"Impossible d\'enregistrer l\'état de lecture localement. Veuillez réessayer."</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"Impossible de supprimer cette annonce. Veuillez réessayer."</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"Impossible d\'établir une connexion à distance"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"Impossible de lire la licence open source"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"Écran"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"Afficher le mot de passe"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"Pas maintenant"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"Aucune annonce"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"Connexions récentes"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"Serveur"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"La vérification du certificat Server TLS a échoué"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"Adresse du serveur"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"Échec de la connexion au serveur, veuillez vérifier l\'adresse du serveur et le réseau"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"Port du serveur"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"La connexion au serveur a expiré, veuillez vérifier l\'adresse du serveur et le réseau"</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"Non activé"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"Aucun navigateur trouvé pour ouvrir le lien"</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"Non autorisé"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"Non lu"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"Serveur non connecté · Cliquez pour réessayer"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"Cette application utilise OpenFEC pour la correction d\'erreur directe sousCeCILL-C1.0, qui offre des garanties limitées et limite la responsabilité. Consultez la licence complète pour plus de détails."</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"ID local "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"ID local {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"Code source et instructions de construction pour cette version"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"La révision source n\'est pas disponible pour cette version."</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"Relâchez pour actualiser"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"Instructions de construction"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"Créer des recettes et des correctifs de projet"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"Afficher le code source"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"La vérification a échoué. Veuillez réessayer plus tard."</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"Rechercher des mises à jour"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"Fermeture de l\'écran de confidentialité…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"Établir une connexion sécurisée…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"Activation de l\'écran de confidentialité..."</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"Vérification des mises à jour…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"Effacement..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"Obtention d\'une pièce d\'identité locale..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"Lecture du fichier sélectionné..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"Connexion"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"Connexion au serveur de signalisation..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"Connexion au serveur..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"Reconnexion au serveur..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"Aucun sélecteur de fichiers disponible pour cet appareil"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"Effacer"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"Supprimer les aperçus"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"Supprimer les aperçus ?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"Code source et instructions de construction"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"Version du code source"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"Version"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"Déclaration de droits d\'auteur et de licence"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"Clavier d\'ordinateur"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"Qualité"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"Préférence vidéo"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"Latence vidéo"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"Paramètres vidéo"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"Qualité vidéo"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"Fréquence d\'images de capture vidéo"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"Pavé tactile"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"Souris relative"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"Compris"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"D\'accord"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"Confirmer"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"Confirmer la connexion"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"Hors ligne"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"Espace"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"La plage de ports est comprise entre 1 et 65 535."</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"Symboles et touches"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"Attendez que l\'ordinateur revienne à l\'état de l\'écran de confidentialité ; les ordinateurs plus anciens peuvent ne pas le prendre en charge."</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"En attente d\'informations sur l\'écran distant"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"En attente de l\'écran distant..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"En attente d\'une autorisation de confidentialité"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"Clavier système"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"Toucher direct"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"Souris absolue"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"Réseau"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"Personnalisé"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"Souris virtuelle"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"L\'écran de confidentialité à distance a été déverrouillé à l\'aide du raccourci local. Verrouillez-le à nouveau pour restaurer la confidentialité et désactiver le déverrouillage des raccourcis locaux."</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"La version contrôlée est trop basse, veuillez mettre à niveau vers la dernière version."</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"Encodeur déporté"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"Texte à envoyer à l\'extrémité distante"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"Vidéo"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"Licence"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"Licences et mentions de droits d\'auteur"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"La licence et la notice de copyright sont disponibles hors ligne."</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"L\'identité de l\'appareil n\'a pas pu être enregistrée. Veuillez vérifier le stockage sécurisé."</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"L\'identité de l\'appareil et les mots de passe d\'accès enregistrés sélectionnés sont cryptés à l\'aide d\'Android Keystore. Les enregistrements de connexion sont uniquement enregistrés localement et ne sont pas inclus dans la sauvegarde de l\'appareil. Le contenu du presse-papiers est effacé à la fin de la session. Restez en session avec des notifications d\'image dans l\'image ou connectées après avoir quitté l\'application, et déconnectez-vous de l\'application ou des notifications."</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"Réglages"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"Paramètres, il existe une nouvelle version"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"Mot de passe d\'accès"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"Le mot de passe d\'accès est erroné, veuillez le saisir à nouveau."</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"Échec de la vérification du certificat · Cliquez pour réessayer"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"Veuillez d\'abord remplir l\'autorisation en ligne"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"Veuillez activer le service système CrossDesk sur l\'extrémité distante et réessayer."</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"Le délai de demande a expiré et l\'état de l\'écran de confidentialité de l\'ordinateur n\'a pas été confirmé."</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"Veuillez attendre que le fichier actuel soit envoyé."</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"Veuillez saisir un port compris entre 1 et 65535."</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"Saisissez un identifiant d\'appareil à 9 chiffres"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"Veuillez saisir un mot de passe d\'accès valide"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"Impossible d\'appliquer les paramètres. Essayer à nouveau."</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"Licence du logiciel"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"Retour"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"Retour à la barre de contrôle"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"Aucun enregistrement de connexion pour l\'instant"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"Cette annonce a été mise à jour ou supprimée, veuillez revenir à la liste des annonces pour la consulter."</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"La tâche distante est fermée"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"Bureau à distance"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"Zone tactile du bureau à distance"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"Bureau à distance : touchez et cliquez, faites glisser pour déplacer, appuyez et maintenez le bouton droit enfoncé, pincez pour zoomer, zoomez et faites glisser l\'écran avec deux doigts, faites glisser de haut en bas avec deux doigts pour faire défiler à l\'échelle d\'origine."</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"Ordinateur distant"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"La fenêtre distante a été fermée ou le keepalive en arrière-plan n\'a pas pu démarrer et la session est terminée."</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"Connexion à distance"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"Mot de passe distant incorrect"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"L\'extrémité distante a fermé la connexion"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"L\'extrémité distante est actuellement indisponible"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"Le mot de passe d\'accès à distance a expiré, veuillez vous reconnecter."</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"Connecter"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"Connexion "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"Échec de la connexion"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"Échec de la connexion · Cliquez pour réessayer"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"Connexion perdue"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"Connexion terminée"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"Délai de connexion (RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"Disponible lors de la connexion à un appareil distant pris en charge."</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"Verrouiller l\'écran paysage une fois la connexion établie"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"Invite de connexion"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"Méthode de connexion"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"Connectez-vous au serveur"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"Connectez-vous au serveur pour recevoir les dernières annonces."</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"La connexion a expiré. Veuillez vérifier l\'ID de l\'appareil, le serveur et l\'état en ligne à distance."</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"Connectez-vous au bureau à distance"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"Retour arrière"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"Annonces"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"Certains aperçus n\'ont pas pu être effacés, veuillez réessayer."</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"Réessayez"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"Réessayez d\'enregistrer l\'état de lecture"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"Verrouillage"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"Clavier"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"Lire et autoriser"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"Confidentialité"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"Confidentialité et autorisation"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"Écran de confidentialité"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"Confidentialité inactive"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"Confidentialité active"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"Écran de confidentialité déverrouillé"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"Anomalie de l\'écran de confidentialité"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"L\'écran de confidentialité est temporairement indisponible"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"L\'état de l\'écran de confidentialité a expiré, en attente de confirmation par l\'ordinateur"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"Statut de l\'écran de confidentialité à confirmer"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"Politique de confidentialité"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"La politique de confidentialité ne peut pas être lue temporairement. Veuillez refuser de vous connecter à Internet et réinstaller l\'application."</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"Muet"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"Audio"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"Site Web du projet"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"Les aperçus peuvent contenir des informations personnelles ou professionnelles provenant de l\'ordinateur distant. Après l\'avoir allumé, chaque connexion enregistrera automatiquement une image sur la machine et l\'affichera dans les connexions récentes. Vous pouvez fermer et effacer à tout moment."</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"Élevée"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"Par défaut"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"Désactivé par défaut. Lorsqu\'il est allumé, l\'écran entre et reste en orientation paysage lorsque le téléphone est connecté ; lorsqu\'il est éteint, il suivra la direction de l\'appareil. Les tablettes et multi-fenêtres ne sont pas concernées."</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"Bouton droit de la souris, appuyez et faites glisser, relâchez pour terminer le glisser"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"Bouton gauche de la souris, appuyez et faites glisser, relâchez pour terminer le glisser"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"Contrôle de la souris"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"Molette de la souris, faites-la glisser de haut en bas pour sortir de la plage de touches"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">", taux de perte de paquets "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">", envoyer "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">", mot de passe enregistré"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">", recevoir "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">", cliquez sur Réessayer"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" ・完了"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" 転送に失敗しました"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" 台のデバイス"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" 記事 ・ "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" 未読項目"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"CrossDeskリモート接続"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL バージョン 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"OpenFEC通知"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"OpenFECライセンスとソース"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"P2P直接接続"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRT有効"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"ターンリレー"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"{0}送信失敗"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"デバイス数: {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0}の未読アイテム"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}、受信{1}、送信{2}、パケットロス率{3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● 接続されました"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"プルダウンして更新します"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"損失率"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"中"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"画像を滑らかに保つことを優先し、帯域幅やエンコード圧力が高い場合には、より積極的に解像度を下げます。"</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"低"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"カスタムサーバーの使用"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"パスワードの保存"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"受信したファイルを保存する"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"リモート画面のプレビューを保存する"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"リモート画面のプレビューを保存しますか?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"信号接続が中断されました。再接続してください。"</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"お知らせを読み込めませんでした。再試行してください。"</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"発表内容"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"合計 "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"合計{0}個のアイテム ·{1}個の未読アイテム"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"概要"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"CrossDesk について"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"について、新しいバージョンがあります"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"閉じる"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"コントロールバーを閉じる"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"プライバシー画面を無効にする"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"明瞭さと滑らかさのバランスを保ち、一定の圧力下で解像度を徐々に低下させるだけです。"</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"解像度"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"削除"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"お知らせの削除"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"レコードの削除"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"このお知らせを削除しますか?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"リフレッシュのお知らせ"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"クリップボード"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"読み込み中…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"さらに読み込む"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"更新のご案内"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"ネイティブ接続の初期化に失敗しました"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"送信"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"送信 "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"送信後、リモートキーボードの「貼り付け」をクリックしてください。受信したリモート テキストはローカル マシンに手動でコピーできます。"</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"ファイル送信"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"テキストを送信する"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"キャンセル"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"接続をキャンセルする"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"各コンポーネントは、リストされているオープン ソース ライセンスの対象となり、付与された権利は、このアプリケーションの一般的な使用条件の対象ではありません。ソース コードを表示するには、インターネット接続が必要です。"</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"合計"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"同意して続行"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"バックグラウンドで接続を維持し、クリックしてリモート デスクトップに戻ります"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"バックグラウンドのキープアライブを開始できませんでした。アプリケーションをフォアグラウンドで維持してください。"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"バックグラウンド キープアライブの開始に失敗しました。アプリケーションをフォアグラウンドに保ち、再接続してください。"</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"バックグラウンド接続が終了しました。再接続してください。"</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"バックグラウンド接続サービスが停止しました。再接続してください。"</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"新しいプレビューはその後の接続でも保存されます。"</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"オンライン"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"プロトコルとパスを除いて、ホスト名または IPv4 アドレスを入力します。"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"サウンド"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"リモートテキストをコピーする"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"帯域幅が不十分な場合は、常に高い解像度を維持し、フレーム レートを下げて画像の鮮明さを確保します。"</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"メディアの暗号化"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"英数字"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"安全なストレージまたは証明書の初期化に失敗しました。再試行するか、アプリケーション データをクリアしてください。"</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"完了"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"プライバシー認証を完了すると、アップデートを確認できます"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"プライバシー認証完了後、ローカル ID を登録します"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"パスワードの保存に失敗しました。この接続はまだ使用できます"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"パスワードは暗号化されてネイティブ Android キーストアに保存されます"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"リモートID"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"ピアID "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"ピアID{0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"本機に保存されているリモートプレビューはすべて削除され、接続記録とパスワードは保持されます。"</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"画面の向き"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"リモコンメニューを展開する"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"通知によりリモート接続が切断されました"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"パスワード保存済み"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"保存したパスワードが読み取れないため、再入力してください。"</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"保存したパスワードは保持できませんので、再度入力してください。"</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Delを送信しました"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"バックグラウンドキープアライブが有効になり、アプリケーションを切り替えて接続を維持し続けることができます。"</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"バックグラウンドキープアライブを有効にして、接続通知を返すか接続を切断することができます"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"認められる"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"読む"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"接続されました "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"サーバーに接続しました"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"フレームレート"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"滑らかさ"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"バランス"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"アプリケーション内のライセンス ファイルが見つからないか破損しています。アプリケーションを再インストールしてください。"</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"開発バージョンには、まだリリースされていない修正が含まれています。以下のリンクは基本バージョンのソースコードです。"</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"保存を有効にする"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"プライバシー画面を有効にする"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"オープンソースコンポーネント"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"オープンソース ソフトウェアの権利の説明"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"これが現在の最新バージョンです"</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"現在、リモート エンドはこのテキストの直接入力をサポートしていません。テキスト入力をサポートするバージョンのコントロール エンドを使用するか、クリップボード経由で送信してください。"</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"接続に成功すると、最も近いリモート デバイスがここに表示されます。"</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"プライバシーポリシーを読んで同意します"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"選択したファイル(読み込み不可、または容量不足)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"デバイスIDが見つかりませんでした"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"コマンドの送信に失敗しました。もう一度お試しください。"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"コマンドが送信され、コンピューターの確認を待っています..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"認可ステータス"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"受信"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"受け取る "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"ローカルデコーダ"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"撤回"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"退会後はリモート接続が停止され、画面プレビューが閉じられ、既存のプレビューが消去されます。接続記録とパスワードは保持され、再接続する前に再度認証が必要になります。"</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"ネットワーク認証の撤回"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"ネットワーク認証を取り消しますか?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"リモコンメニューを折りたたむ"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"キーボードを隠す"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"マウスを隠す"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"データ"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"ファイルの保存に失敗しました。もう一度お試しください。"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"ファイルを保存しました"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"ファイル選択がタイムアウトし、セッションが終了しました"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"テキストが128KBを超えています"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"切断"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"切断後ホームページに戻ります"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"リモート接続を切断しますか?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"切断"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"新しいバージョン"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"利用可能な新しいバージョン: v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"利用可能な新しいバージョン: v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"未読のお知らせはありません"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"読み取りステータスをローカルに保存できません。もう一度試してください。"</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"このお知らせは削除できません。もう一度試してください。"</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"リモート接続を開始できません"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"オープンソースライセンスを読み取れません"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"ディスプレイ"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"パスワードを表示"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"今は同意しない"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"アナウンスはありません"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"最近の接続"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"サーバー"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"ServerTLS証明書の検証に失敗しました"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"サーバーアドレス"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"サーバーへのログインに失敗しました。サーバーのアドレスとネットワークを確認してください。"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"サーバーポート"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"サーバー接続がタイムアウトしました。サーバーのアドレスとネットワークを確認してください。"</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"有効ではありません"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"リンクを開くブラウザが見つかりませんでした"</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"無許可"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"未読"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"サーバーが接続されていません · クリックして再試行してください"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"このアプリケーションは、限定保証を提供し、責任を制限するCeCILL-C1.0 に基づく前方誤り訂正にOpenFECを使用します。詳細については、完全なライセンスを参照してください。"</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"ローカルID "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"ローカルID{0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"このバージョンのソース コードとビルド手順"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"このビルドではソース リビジョンが利用できません。"</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"放してリフレッシュ"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"組み立て説明書"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"ビルドレシピとプロジェクトパッチ"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"ソースコードを表示する"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"チェックに失敗しました。後でもう一度試してください。"</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"アップデートを確認する"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"プライバシー画面を閉じています…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"安全な接続を確立中…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"プライバシー画面を有効化中…"</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"アップデートを確認しています…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"クリア中..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"ローカルIDを取得中..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"選択したファイルを読み込み中..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"接続する"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"シグナリングサーバーに接続しています..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"サーバーに接続中..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"サーバーに再接続中..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"このデバイスでは使用できるファイル ピッカーがありません"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"クリア"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"プレビューを削除"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"プレビューを削除しますか?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"ソースコードとビルド手順"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"ソースコードのバージョン"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"バージョン"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"著作権およびライセンスに関する声明"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"コンピューターのキーボード"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"画質"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"ビデオ設定"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"映像遅延"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"ビデオ設定"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"ビデオ品質"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"ビデオキャプチャフレームレート"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"トラックパッド"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"相対マウス"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"分かりました"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"OK"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"確認する"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"接続を確認する"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"オフライン"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"スペース"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"ポート範囲は 1 ~ 65535 です。"</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"記号・機能"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"コンピューターがプライバシー画面の状態に戻るまで待ちます。古いコンピューターではサポートされていない可能性があります。"</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"リモート画面情報待ち"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"リモート画面を待っています..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"プライバシー認証待ち"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"システムキーボード"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"直接タッチ"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"アブソリュートマウス"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"ネットワーク"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"カスタム"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"仮想マウス"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"ローカル ショートカットを使用してリモート プライバシー画面のロックが解除されました。再度ロックするとプライバシーが回復され、ローカル ショートカットのロック解除が無効になります。"</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"管理されているバージョンが低すぎるため、最新バージョンにアップグレードしてください。"</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"リモートエンコーダー"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"相手側に送信するテキスト"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"ビデオ"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"ライセンス"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"ライセンスと著作権表示"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"ライセンスと著作権表示はオフラインでも利用できます。"</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"デバイス ID を保存できませんでした。安全なストレージを確認してください。"</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"デバイス ID と選択された保存されたアクセス パスワードは、Android キーストアを使用して暗号化されます。接続記録はローカルにのみ保存され、デバイスのバックアップには含まれません。クリップボードの内容はセッションが終了するとクリアされます。アプリを終了した後もピクチャーインピクチャーまたは接続された通知でセッションを維持し、アプリまたは通知内で切断します。"</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"設定"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"設定、新しいバージョンがあります"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"アクセスパスワード"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"アクセスパスワードが間違っていますので、再度入力してください。"</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"証明書の検証に失敗しました · クリックして再試行してください"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"最初にオンライン認証を完了してください"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"リモート エンドでCrossDeskシステム サービスを有効にして、再試行してください。"</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"リクエストがタイムアウトし、コンピュータのプライバシー画面の状態が確認できませんでした。"</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"現在のファイルが送信されるまでお待ちください。"</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"1 ~ 65535 の範囲でポートを入力してください"</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"9桁のデバイスIDを入力"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"有効なアクセスパスワードを入力してください"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"設定を適用できませんでした。もう一度やり直してください。"</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"ソフトウェアライセンス"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"戻る"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"コントロールバーに戻る"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"まだ接続実績がありません"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"このお知らせは更新または削除されました。表示するにはお知らせリストに戻ってください。"</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"リモートタスクが終了しました"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"リモートデスクトップ"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"リモートデスクトップタッチエリア"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"リモート デスクトップ: タッチしてクリック、ドラッグして移動、右ボタンを押したまま、ピンチしてズーム、ズームインして 2 本の指で画面をドラッグ、2 本の指で上下にスライドして元のスケールでスクロール"</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"リモートコンピュータ"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"リモート ウィンドウが閉じられたか、バックグラウンド キープアライブの開始に失敗し、セッションが終了しました。"</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"リモート接続"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"リモートパスワードが正しくありません"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"リモートエンドが接続を閉じました"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"リモートエンドは現在利用できません"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"リモートアクセスパスワードの有効期限が切れています。再接続してください。"</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"接続"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"接続 "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"接続に失敗しました"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"接続に失敗しました · クリックして再試行してください"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"接続が失われました"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"接続が終了しました"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"接続遅延 (RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"サポートされているリモート デバイスに接続されている場合に使用できます。"</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"接続完了後、横画面をロックする"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"接続プロンプト"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"接続方法"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"サーバーに接続する"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"サーバーに接続して最新のお知らせを取得します。"</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"接続がタイムアウトしました。デバイス ID、サーバー、リモートのオンライン ステータスを確認してください。"</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"リモートデスクトップに接続する"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"バックスペース"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"お知らせ"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"一部のプレビューをクリアできませんでした。もう一度お試しください。"</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"もう一度お試しください"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"読み取りステータスの保存をリトライする"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"ロック"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"キーボード"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"読んで承認する"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"プライバシー"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"プライバシーと認証"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"プライバシー画面"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"プライバシー画面:オフ"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"プライバシー画面:オン"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"プライバシー画面のロックが解除されました"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"プライバシー画面異常"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"プライバシー画面が一時的に利用できなくなります"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"プライバシー画面のステータスが期限切れになり、コンピュータの確認を待っています"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"プライバシー画面のステータスを確認する"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"プライバシーポリシー"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"一時的にプライバシーポリシーが閲覧できなくなります。インターネットへの接続を拒否し、アプリケーションを再インストールしてください。"</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"ミュート"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"オーディオ"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"プロジェクトWebサイト"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"プレビューには、リモート コンピューターからの個人情報または仕事情報が含まれる場合があります。オンにすると、接続するたびにマシンに写真が自動的に保存され、最近の接続で表示されます。いつでも閉じてクリアできます。"</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"高"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"デフォルト"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"デフォルトではオフです。オンにすると、電話が接続されているときに画面が横向きになり、横向きのままになります。オフにすると、デバイスの方向に従います。タブレットやマルチウィンドウは影響を受けません。"</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"マウスの右ボタンを押してドラッグし、放してドラッグを終了します"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"マウスの左ボタンを押してドラッグし、放してドラッグを終了します"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"マウスコントロール"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"マウスホイール、上下にスライドしてキー範囲外にスライドします"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">"、パケットロス率 "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">"、送信します "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">"、パスワードが保存されました"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">"、受け取ります "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">"、「再試行」をクリックします"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · 완료"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" 전송 실패"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" 장치"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" 기사 · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" 읽지 않은 항목"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"CrossDesk원격접속"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL 버전 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"OpenFEC공지"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"OpenFEC라이선스 및 소스"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"P2P 직접 연결"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP 활성화됨"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"TURN 릴레이"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"{0}전송 실패"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"기기: {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0}읽지 않은 항목"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}, 수신{1}, 송신{2}, 패킷 손실률{3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● 연결됨"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"아래로 당겨 새로고침"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"손실률"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"중간"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"영상을 부드럽게 유지하는 데 우선 순위를 두며 대역폭이나 인코딩 압력이 높을 때 해상도를 더욱 적극적으로 줄입니다."</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"낮음"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"커스텀 서버 이용하기"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"비밀번호 저장"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"수신된 파일 저장"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"원격 화면 미리보기 저장"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"원격 화면 미리보기를 저장하시겠습니까?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"신호 연결이 중단되었습니다. 다시 연결하십시오."</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"공지사항 로딩에 실패했습니다. 다시 시도해주세요."</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"공지사항"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"합계 "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"총{0}항목 ·{1}읽지 않은 항목"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"소개"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"CrossDesk 정보"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"새 버전이 있습니다."</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"닫기"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"컨트롤 바 닫기"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"개인 정보 보호 화면 비활성화"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"선명도와 부드러움의 균형을 유지하며 일정한 압력을 가하면 해상도가 점차 감소합니다."</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"해상도"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"삭제"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"공지사항 삭제"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"기록 삭제"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"이 공지를 삭제하시겠습니까?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"새로고침 안내"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"클립보드"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"로드 중…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"더 로드하기"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"업데이트 안내"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"기본 연결 초기화 실패"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"송신"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"보내기 "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"전송 후 원격 키보드에서 \"붙여넣기\"를 클릭하세요. 수신된 원격 텍스트를 로컬 시스템에 수동으로 복사할 수 있습니다."</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"파일 보내기"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"문자 보내기"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"취소"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"연결 취소"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"각 구성 요소에는 나열된 오픈 소스 라이선스가 적용되며 부여된 권리에는 이 애플리케이션의 일반 사용 약관이 적용되지 않습니다. 소스 코드를 보려면 인터넷 연결이 필요합니다."</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"합계"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"동의하고 계속하기"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"백그라운드에서 연결을 유지하고 원격 데스크톱으로 돌아가려면 클릭하세요."</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"백그라운드 연결 유지를 시작하지 못했습니다. 애플리케이션을 포그라운드에 유지하세요."</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"백그라운드 연결 유지를 시작하지 못했습니다. 애플리케이션을 포그라운드에 유지하고 다시 연결하세요."</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"백그라운드 연결이 종료되었습니다. 다시 연결해 주세요."</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"백그라운드 연결 서비스가 중지되었습니다. 다시 연결해 주세요."</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"새로운 미리보기는 후속 연결에도 계속 저장됩니다."</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"온라인"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"프로토콜 및 경로 없이 호스트 이름 또는 IPv4 주소를 입력하세요."</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"소리"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"원격 텍스트 복사"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"대역폭이 부족할 때 영상 선명도를 보장하려면 항상 더 높은 해상도를 유지하고 프레임 속도를 낮추십시오."</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"미디어 암호화"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"문자·숫자"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"보안 저장 또는 인증서 초기화에 실패했습니다. 다시 시도하거나 애플리케이션 데이터를 삭제하세요."</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"완료"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"개인정보 동의 완료 후 업데이트 내용을 확인할 수 있습니다."</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"개인정보 인증 완료 후 로컬 신원 등록"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"비밀번호 저장에 실패했습니다. 이 연결은 계속 사용할 수 있습니다."</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"비밀번호는 기본 Android 키 저장소에 암호화되어 저장됩니다."</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"원격 ID"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"피어 ID "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"피어 ID{0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"이 기기에 저장된 원격 미리보기는 모두 삭제되며, 연결 기록과 비밀번호는 유지됩니다."</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"화면 방향"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"원격제어 메뉴 확장"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"알림으로 인해 원격 연결이 끊어졌습니다."</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"비밀번호 저장됨"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"저장된 비밀번호를 읽을 수 없습니다. 다시 입력해 주세요."</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"저장된 비밀번호는 보관할 수 없으므로 다시 입력해 주세요."</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Del가 전송되었습니다."</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"백그라운드 연결 유지가 활성화되어 전환 애플리케이션이 계속 연결을 유지할 수 있습니다."</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"연결 알림에서 돌아가거나 연결을 끊기 위해 백그라운드 연결 유지가 활성화되었습니다."</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"승인됨"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"읽기"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"연결됨 "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"서버에 연결됨"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"프레임 속도"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"부드러움"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"균형"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"애플리케이션의 라이센스 파일이 없거나 손상되었습니다. 애플리케이션을 다시 설치하십시오."</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"개발 버전에는 아직 출시되지 않은 수정 사항이 포함되어 있습니다. 다음 링크는 기본 버전의 소스 코드입니다."</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"저장 사용"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"개인 정보 보호 화면 활성화"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"오픈 소스 구성 요소"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"오픈소스 소프트웨어 권리 설명"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"현재 최신 버전입니다."</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"현재 원격측에서는 이 텍스트를 직접 입력하는 기능을 지원하지 않습니다. 텍스트 입력을 지원하는 제어된 버전을 사용하거나 클립보드를 통해 보내주세요."</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"성공적으로 연결되면 가장 가까운 원격 장치가 여기에 표시됩니다."</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"개인정보 보호정책을 읽었으며 이에 동의합니다."</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"선택한 파일(읽을 수 없거나 공간이 부족함)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"장치 ID를 찾을 수 없습니다"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"명령 전송에 실패했습니다. 다시 시도해 주세요."</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"명령이 전송되었으며 컴퓨터 확인을 기다리고 있습니다..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"인증상태"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"수신"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"받다 "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"로컬 디코더"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"철회"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"탈퇴 후에는 원격접속이 중단되며 화면 미리보기가 닫히고 기존 미리보기는 지워집니다. 접속 기록과 비밀번호는 유지되며, 재접속 전 다시 인증이 필요합니다."</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"네트워크 승인 철회"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"네트워크 승인을 철회하시겠습니까?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"리모컨 메뉴 접기"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"키보드 숨기기"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"마우스 숨기기"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"데이터"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"파일 저장에 실패했습니다. 다시 시도해 주세요."</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"파일이 저장되었습니다"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"파일 선택 시간이 초과되어 세션이 종료되었습니다."</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"텍스트가 128KB를 초과합니다."</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"연결 끊기"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"연결을 끊으면 홈페이지로 돌아갑니다."</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"원격 연결을 끊으시겠습니까?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"연결 해제"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"새 버전"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"새 버전 사용 가능: v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"새 버전 사용 가능: v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"읽지 않은 공지사항 없음"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"읽기 상태를 로컬에 저장할 수 없습니다. 다시 시도해 주세요."</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"이 공지를 삭제할 수 없습니다. 다시 시도해 주세요."</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"원격 연결을 시작할 수 없습니다"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"오픈소스 라이선스를 읽을 수 없습니다."</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"디스플레이"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"비밀번호 표시"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"나중에"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"공지 없음"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"최근 연결"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"서버"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"ServerTLS인증서 확인 실패"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"서버 주소"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"서버 로그인에 실패했습니다. 서버 주소와 네트워크를 확인해주세요."</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"서버 포트"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"서버 연결 시간이 초과되었습니다. 서버 주소와 네트워크를 확인하세요."</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"활성화되지 않음"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"링크를 열 수 있는 브라우저가 없습니다."</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"무단"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"읽지 않음"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"서버가 연결되지 않았습니다. · 다시 시도하려면 클릭하세요."</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"이 애플리케이션은 제한된 보증과 책임 제한을 제공하는CeCILL-C1.0에 따라 순방향 오류 수정을 위해OpenFEC를 사용합니다. 자세한 내용은 전체 라이센스를 참조하세요."</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"로컬 ID "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"로컬 ID{0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"이 버전의 소스 코드 및 빌드 지침"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"이 빌드에는 소스 개정을 사용할 수 없습니다."</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"새로고침하려면 릴리즈하세요"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"빌드 지침"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"레시피 및 프로젝트 패치 빌드"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"소스코드 보기"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"확인에 실패했습니다. 나중에 다시 시도해 주세요."</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"업데이트 확인"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"개인정보 보호 화면을 닫는 중…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"보안 연결 설정 중…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"개인정보 보호 화면을 켜는 중..."</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"업데이트 확인 중…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"지우는 중..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"로컬 ID를 얻는 중..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"선택한 파일을 읽는 중..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"연결 중"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"시그널링 서버에 연결 중..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"서버에 연결하는 중..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"서버에 재접속하는 중..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"이 장치에 사용할 수 있는 파일 선택기가 없습니다."</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"클리어"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"미리보기 삭제"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"미리보기를 삭제할까요?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"소스 코드 및 빌드 지침"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"소스코드 버전"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"버전"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"저작권 및 라이선스 정책"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"컴퓨터 키보드"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"화질"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"영상 선호도"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"영상 지연"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"영상 설정"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"비디오 품질"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"비디오 캡처 프레임 속도"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"트랙패드"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"상대 마우스"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"알겠습니다"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"알았어"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"확인"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"연결 확인"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"오프라인"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"스페이스"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"포트 범위는 1~65535입니다."</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"기호·기능"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"컴퓨터가 개인 정보 보호 화면 상태로 돌아갈 때까지 기다립니다. 오래된 컴퓨터에서는 이를 지원하지 않을 수 있습니다."</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"원격 화면 정보를 기다리는 중"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"원격 화면을 기다리는 중..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"개인정보 인증 대기 중"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"시스템 키보드"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"직접 터치"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"앱솔루트 마우스"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"네트워크"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"커스텀"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"가상마우스"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"로컬 단축키를 사용하여 원격 개인정보 보호 화면을 잠금 해제했습니다. 개인정보 보호를 복원하고 로컬 바로가기 잠금 해제를 비활성화하려면 다시 잠그세요."</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"제어 버전이 너무 낮습니다. 최신 버전으로 업그레이드하세요."</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"리모트 엔코더"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"원격지로 보낼 텍스트"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"영상"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"라이센스"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"라이센스 및 저작권 고지"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"라이센스 및 저작권 고지는 오프라인에서 확인할 수 있습니다."</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"기기 ID를 저장하지 못했습니다. 보안 저장소를 확인하세요."</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"기기 ID와 선택된 저장된 액세스 비밀번호는 Android Keystore를 사용하여 암호화됩니다. 연결 기록은 로컬에만 저장되며 장치 백업에는 포함되지 않습니다. 세션이 종료되면 클립보드 내용이 지워집니다. 앱을 종료한 후에도 PIP(picture-in-picture) 또는 연결된 알림으로 세션을 유지하고 앱 또는 알림 내에서 연결을 끊습니다."</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"설정"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"설정, 새 버전이 있습니다"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"접속 비밀번호"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"접속비밀번호가 잘못되었습니다. 다시 입력해 주세요."</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"인증서 확인 실패 · 다시 시도하려면 클릭하세요."</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"먼저 온라인 인증을 완료해주세요."</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"원격 측에서CrossDesk시스템 서비스를 활성화하고 다시 시도하십시오."</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"요청 시간이 초과되어 컴퓨터의 개인 정보 보호 화면 상태가 확인되지 않았습니다."</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"현재 파일이 전송될 때까지 기다려 주십시오."</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"1~65535 범위의 포트를 입력하세요."</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"기기 ID 9자리를 입력하세요."</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"유효한 접속 비밀번호를 입력해주세요"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"설정을 적용할 수 없습니다. 다시 시도해 보세요."</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"소프트웨어 라이센스"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"뒤로"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"컨트롤 바로 돌아가기"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"아직 접속기록이 없습니다"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"본 공지사항은 업데이트 또는 삭제되었습니다. 공지사항 목록으로 돌아가서 확인하시기 바랍니다."</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"원격 작업이 종료되었습니다."</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"원격 데스크톱"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"원격 데스크톱 터치 영역"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"원격 데스크톱: 터치하고 클릭하고, 드래그하여 이동하고, 오른쪽 버튼을 길게 누르고, 핀치하여 확대/축소하고, 두 손가락으로 화면을 확대하고 드래그하고, 두 손가락으로 위아래로 밀어 원래 크기로 스크롤합니다."</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"원격 컴퓨터"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"원격 창이 닫혔거나 백그라운드 Keepalive 시작에 실패하여 세션이 종료되었습니다."</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"원격 접속"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"원격 비밀번호가 올바르지 않습니다."</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"원격 측에서 연결을 종료했습니다."</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"현재 원격 끝을 사용할 수 없습니다."</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"원격 접속 비밀번호가 만료되었습니다. 다시 접속해 주세요."</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"연결"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"연결 "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"연결 실패"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"연결 실패 · 다시 시도하려면 클릭하세요."</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"연결 끊김"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"연결이 종료되었습니다"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"연결 지연(RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"지원되는 원격 장치에 연결된 경우 사용할 수 있습니다."</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"연결 완료 후 가로 화면 잠금"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"연결 프롬프트"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"연결 방법"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"서버에 접속"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"서버에 접속하여 최신 공지사항을 받아보세요."</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"연결 시간이 초과되었습니다. 장치 ID, 서버 및 원격 온라인 상태를 확인하십시오."</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"원격 데스크톱에 연결"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"백스페이스"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"공지사항"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"일부 미리보기를 삭제할 수 없습니다. 다시 시도해 주세요."</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"다시 시도해 보세요"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"읽은 상태 저장 다시 시도"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"잠금"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"키보드"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"읽기 및 승인"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"개인 정보 보호"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"개인 정보 보호 및 승인"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"개인정보 보호 화면"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"화면 보호 꺼짐"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"화면 보호 켜짐"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"개인정보 보호 화면 잠금 해제됨"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"개인정보 화면 이상"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"개인 정보 보호 화면을 일시적으로 사용할 수 없습니다."</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"개인 정보 보호 화면 상태가 만료되어 컴퓨터 확인을 기다리는 중입니다."</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"개인정보 보호 화면 상태 확인 예정"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"개인정보 보호정책"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"개인정보취급방침은 일시적으로 열람할 수 없습니다. 인터넷 연결을 거부하고 애플리케이션을 다시 설치하십시오."</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"음소거"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"오디오"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"프로젝트 홈페이지"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"미리보기에는 원격 컴퓨터의 개인 정보나 업무 정보가 포함될 수 있습니다. 전원을 켜면 각 연결이 자동으로 기기에 사진을 저장하고 최근 연결에 표시됩니다. 언제든지 닫고 지울 수 있습니다."</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"높음"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"기본값"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"기본적으로 꺼져 있습니다. 전원을 켜면 휴대폰이 연결되면 화면이 가로 방향으로 전환되고 유지됩니다. 꺼지면 장치의 방향을 따릅니다. 태블릿과 멀티 윈도우는 영향을 받지 않습니다."</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"마우스 오른쪽 버튼을 누르고 드래그한 후 떼면 드래그가 종료됩니다."</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"마우스 왼쪽 버튼을 누르고 드래그한 후 떼면 드래그가 종료됩니다."</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"마우스 제어"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"마우스 휠, 위아래로 밀어 키 범위 밖으로 슬라이드"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">", 패킷 손실률 "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">", 보내다 "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">", 비밀번호가 저장되었습니다"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">", 수신 "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">", 재시도를 클릭하세요."</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · Concluído"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" Falha na transferência"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" dispositivos"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" Artigo · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" itens não lidos"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"Conexão remota CrossDesk"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL versão 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"Aviso OpenFEC"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"Licença e fonte OpenFEC"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"Conexão direta P2P"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRT habilitado"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"GIRAR relé"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"Falha na transmissão {0}"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"Dispositivos: {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"Itens não lidos {0}"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}, recebendo {1}, enviando {2}, taxa de perda de pacotes {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● Conectado"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"Puxe para baixo para atualizar"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"Taxa de perda"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"Média"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"Prioriza manter a imagem suave e reduzirá a resolução de forma mais agressiva quando a largura de banda ou a pressão de codificação forem altas."</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"Baixa"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"Usando um servidor personalizado"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"Salvar senha"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"Salvar arquivo recebido"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"Salvar visualizações de tela remotas"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"Salvar visualização remota da tela?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"A conexão de sinalização foi interrompida, reconecte."</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"Falha ao carregar o anúncio. Tente novamente."</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"Detalhes do anúncio"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"Total "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"Total de itens {0}· Itens não lidos {1}"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"Sobre"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"Sobre o CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"Sobre, há uma nova versão"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"Fechar"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"Fechar barra de controle"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"Desativar tela de privacidade"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"Equilibra clareza e suavidade, reduzindo apenas gradualmente a resolução sob pressão constante."</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"Resolução"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"Excluir"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"Excluir anúncio"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"Excluir registro"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"Excluir este anúncio?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"Anúncio de atualização"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"Área de transferência"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"Carregando…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"Carregue mais"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"Atualização recomendada"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"Falha na inicialização da conexão nativa"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"Enviar"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"Enviar "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"Após o envio, clique em “Colar” no teclado remoto. O texto remoto recebido pode ser copiado manualmente para a máquina local."</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"Enviar arquivo"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"Enviar texto"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"Cancelar"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"Cancelar conexão"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"Cada componente está sujeito à licença de código aberto listada e os direitos concedidos não estão sujeitos aos termos gerais de uso deste aplicativo. A visualização do código-fonte requer uma conexão com a Internet."</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"Total"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"Concorde e continue"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"Mantenha-se conectado em segundo plano, clique para retornar à área de trabalho remota"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"Falha ao iniciar a manutenção de atividade em segundo plano, mantenha o aplicativo em primeiro plano"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"Falha ao iniciar a manutenção de atividade em segundo plano. Mantenha o aplicativo em primeiro plano e reconecte."</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"A conexão em segundo plano foi encerrada. Reconecte."</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"O serviço de conexão em segundo plano foi interrompido, reconecte."</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"Novas visualizações ainda serão salvas nas conexões subsequentes."</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"On-line"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"Preencha o nome do host ou endereço IPv4, sem protocolo e caminho"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"Som"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"Copiar texto remoto"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"Sempre mantenha uma resolução mais alta e reduza a taxa de quadros para garantir a clareza da imagem quando a largura de banda for insuficiente."</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"Criptografia de mídia"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"Letras e números"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"Falha no armazenamento seguro ou na inicialização do certificado. Tente novamente ou limpe os dados do aplicativo"</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"Feito"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"Você pode verificar se há atualizações após concluir a autorização de privacidade"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"Registre a identidade local após concluir a autorização de privacidade"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"Falha ao salvar a senha, esta conexão ainda pode ser usada"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"As senhas são salvas criptografadas no Android Keystore nativo"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"ID remoto"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"ID do par "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"ID de par {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"Todas as visualizações remotas salvas nesta máquina serão excluídas e os registros de conexão e senhas serão mantidos."</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"Orientação da tela"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"Expandir menu de controle remoto"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"Conexão remota desconectada da notificação"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"Senha salva"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"A senha salva não pode ser lida, digite-a novamente."</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"A senha salva não pode ser mantida, digite-a novamente."</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Del enviado"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"O keep-alive em segundo plano está habilitado, a troca de aplicativos pode continuar a manter a conexão"</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"Manutenção de atividade em segundo plano habilitada para retornar ou desconectar das notificações de conexão"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"Concedido"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"Leia"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"Conectado "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"Conectado ao servidor"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"Taxa de quadros"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"Fluidez"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"Equilibrado"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"O arquivo de licença do aplicativo está ausente ou danificado. Reinstale o aplicativo."</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"A versão de desenvolvimento contém modificações que ainda não foram lançadas. O link a seguir é o código fonte da versão básica."</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"Ativar salvamento"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"Habilitar tela de privacidade"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"Componentes de código aberto"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"Descrição dos direitos de software de código aberto"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"Esta é atualmente a versão mais recente"</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"Atualmente, a extremidade remota não suporta a entrada direta deste texto. Use uma versão do final controlado que suporte entrada de texto ou envie-o através da área de transferência."</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"Após a conexão bem-sucedida, o dispositivo remoto mais próximo será exibido aqui."</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"Li e concordo com a Política de Privacidade"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"Arquivo selecionado (não pode ser lido ou espaço insuficiente)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"O ID do dispositivo não foi encontrado"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"Falha no envio do comando, tente novamente"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"O comando foi enviado, aguardando confirmação do computador..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"Status de autorização"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"Receber"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"receber "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"Decodificador local"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"Revogar"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"Após a retirada, a conexão remota será interrompida, a visualização da tela será fechada e a visualização existente será apagada. O registro de conexão e a senha serão mantidos e será necessária autorização novamente antes de reconectar."</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"Retirar autorização de rede"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"Retirar a autorização da rede?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"Recolher menu de controle remoto"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"Ocultar teclado"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"Ocultar mouse"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"Dados"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"Falha ao salvar o arquivo, tente novamente"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"Arquivo salvo"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"A seleção do arquivo expirou e a sessão foi encerrada"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"O texto excede 128 KB"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"Desconectar"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"Retornará à página inicial após desconectar"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"Desconectar a conexão remota?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"Desconectar"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"Nova versão"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"Nova versão disponível: v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"Nova versão disponível: v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"Nenhum anúncio não lido"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"Não é possível salvar o status de leitura localmente. Por favor, tente novamente."</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"Não é possível excluir este anúncio. Por favor, tente novamente."</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"Não é possível iniciar a conexão remota"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"Não é possível ler a licença de código aberto"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"Tela"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"Mostrar senha"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"Agora não"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"Sem anúncios"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"Conexões recentes"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"Servidor"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"Falha na verificação do certificado Server TLS"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"Endereço do servidor"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"Falha no login do servidor, verifique o endereço do servidor e a rede"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"Porta do servidor"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"A conexão do servidor expirou, verifique o endereço do servidor e a rede"</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"Não habilitado"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"Nenhum navegador encontrado para abrir o link"</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"Não autorizado"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"Não lido"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"Servidor não conectado · Clique para tentar novamente"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"Este aplicativo usa OpenFEC para correção direta de erros noCeCILL-C1.0, que fornece garantias limitadas e limita a responsabilidade. Veja a licença completa para detalhes."</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"ID local "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"ID local {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"Código-fonte e instruções de construção para esta versão"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"A revisão fonte não está disponível para esta compilação."</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"Solte para atualizar"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"Instruções de construção"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"Crie receitas e patches de projeto"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"Ver código-fonte"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"Falha na verificação. Por favor, tente novamente mais tarde."</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"Verifique se há atualizações"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"Fechando a tela de privacidade…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"Estabelecendo conexão segura…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"Ativando a tela de privacidade..."</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"Verificando atualizações…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"Limpando..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"Obtendo ID local..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"Lendo arquivo selecionado..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"Conectando"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"Conectando ao servidor de sinalização..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"Conectando ao servidor..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"Reconectando ao servidor..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"Nenhum seletor de arquivos disponível para este dispositivo"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"Limpar"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"Limpar prévias"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"Limpar prévias?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"Código-fonte e instruções de construção"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"Versão do código-fonte"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"Versão"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"Declaração de direitos autorais e licença"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"Teclado de computador"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"Qualidade"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"Preferência de vídeo"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"Latência do vídeo"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"Configurações de vídeo"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"Qualidade de vídeo"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"Taxa de quadros de captura de vídeo"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"Touchpad"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"Rato relativo"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"Entendi"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"OK"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"Confirmar"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"Confirme a conexão"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"Off-line"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"Espaço"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"O intervalo de portas é 1–65535"</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"Símbolos e teclas"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"Aguarde o computador retornar ao estado da tela de privacidade; computadores mais antigos podem não suportá-lo."</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"Aguardando informações da tela remota"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"Aguardando a tela remota..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"Aguardando autorização de privacidade"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"Teclado do sistema"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"Toque direto"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"Rato Absoluto"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"Rede"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"Personalizado"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"Rato virtual"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"A tela de privacidade remota foi desbloqueada usando o atalho local. Bloqueie-o novamente para restaurar a privacidade e desativar o desbloqueio de atalhos locais."</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"A versão controlada é muito baixa, atualize para a versão mais recente."</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"Codificador remoto"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"Texto a ser enviado para o terminal remoto"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"Vídeo"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"Licença"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"Licenças e avisos de direitos autorais"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"A licença e o aviso de direitos autorais estão disponíveis offline."</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"Falha ao salvar a identidade do dispositivo. Verifique o armazenamento seguro"</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"A identidade do dispositivo e as senhas de acesso salvas selecionadas são criptografadas usando o Android Keystore. Os registros de conexão são salvos apenas localmente e não são incluídos no backup do dispositivo. O conteúdo da área de transferência é apagado quando a sessão é encerrada. Mantenha a sessão com notificações picture-in-picture ou conectadas depois de sair do aplicativo e desconecte-se do aplicativo ou das notificações."</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"Configurações"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"Configurações, há uma nova versão"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"Senha de acesso"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"A senha de acesso está errada, digite-a novamente."</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"Falha na verificação do certificado · Clique para tentar novamente"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"Por favor, preencha primeiro a autorização online"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"Ative o serviço do sistema CrossDesk na extremidade remota e tente novamente"</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"A solicitação expirou e o status da tela de privacidade do computador não foi confirmado."</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"Aguarde o envio do arquivo atual."</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"Insira uma porta no intervalo 1–65535"</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"Insira um ID de dispositivo de 9 dígitos"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"Por favor, insira uma senha de acesso válida"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"Não foi possível aplicar as configurações. Tente novamente."</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"Licença de software"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"Voltar"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"Retornar à barra de controle"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"Ainda não há registro de conexão"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"Este anúncio foi atualizado ou excluído. Volte à lista de anúncios para visualizá-lo."</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"A tarefa remota está fechada"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"Área de Trabalho Remota"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"Área de toque da área de trabalho remota"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"Área de trabalho remota: toque e clique, arraste para mover, pressione e segure o botão direito, aperte para ampliar, amplie e arraste a tela com dois dedos, deslize para cima e para baixo com dois dedos para rolar na escala original"</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"Computador remoto"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"A janela remota foi fechada ou a manutenção de atividade em segundo plano falhou ao iniciar e a sessão foi encerrada."</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"Conexão remota"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"Senha remota incorreta"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"A extremidade remota fechou a conexão"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"A extremidade remota está indisponível no momento"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"A senha de acesso remoto expirou, reconecte."</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"Conectar"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"Conexão "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"Falha na conexão"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"Falha na conexão · Clique para tentar novamente"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"Conexão perdida"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"Conexão encerrada"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"Atraso de conexão (RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"Disponível quando conectado a um dispositivo remoto compatível."</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"Bloqueie a tela paisagem após a conexão ser estabelecida"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"Solicitação de conexão"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"Método de conexão"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"Conecte-se ao servidor"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"Conecte-se ao servidor para obter os anúncios mais recentes."</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"A conexão expirou, verifique o ID do dispositivo, o servidor e o status on-line remoto"</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"Conecte-se à área de trabalho remota"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"Retrocesso"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"Avisos"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"Não foi possível limpar algumas visualizações. Tente novamente."</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"Tente novamente"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"Tente salvar novamente o status de leitura"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"Bloqueio"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"Teclado"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"Ler e autorizar"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"Privacidade"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"Privacidade e Autorização"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"Tela de privacidade"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"Privacidade desativada"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"Privacidade ativada"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"Tela de privacidade desbloqueada"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"Anormalidade na tela de privacidade"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"A tela de privacidade está temporariamente indisponível"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"O status da tela de privacidade expirou, aguardando confirmação do computador"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"Status da tela de privacidade a ser confirmado"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"Política de Privacidade"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"A política de privacidade não pode ser lida temporariamente. Recuse-se a se conectar à Internet e reinstale o aplicativo."</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"Mudo"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"Áudio"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"Site do projeto"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"As visualizações podem conter informações pessoais ou de trabalho do computador remoto. Após ligá-lo, cada conexão salvará automaticamente uma imagem na máquina e a exibirá nas conexões recentes. Você pode fechar e limpar a qualquer momento."</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"Alta"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"Padrão"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"Desligado por padrão. Quando ligado, a tela entrará e permanecerá na orientação paisagem quando o telefone estiver conectado; quando desligado, seguirá a direção do dispositivo. Tablets e janelas múltiplas não são afetados."</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"Botão direito do mouse, pressione e arraste, solte para finalizar o arrasto"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"Botão esquerdo do mouse, pressione e arraste, solte para finalizar o arrasto"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"Controle do mouse"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"Roda do mouse, deslize para cima e para baixo para sair do intervalo de teclas"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">", taxa de perda de pacotes "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">", enviar "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">", senha salva"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">", receba "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">", clique em Tentar novamente"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · Завершено"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" Передача не удалась"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" устройства"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" Статья · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" непрочитанные элементы"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"Удаленное подключение CrossDesk"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL версия 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"Уведомление OpenFEC"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"Лицензия и исходный код OpenFEC"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"Прямое соединение P2P"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP включен"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"Реле ПОВОРОТА"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"Передача {0} не удалась."</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"Устройства: {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0} непрочитанные элементы"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}, прием {1}, отправка {2}, скорость потери пакетов {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● Подключено"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"Потяните вниз, чтобы обновить"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"Потери пакетов"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"Среднее"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"Отдает приоритет сохранению плавности изображения и более агрессивно снижает разрешение при высокой пропускной способности или нагрузке на кодирование."</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"Низкое"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"Использование пользовательского сервера"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"Сохранить пароль"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"Сохранить полученный файл"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"Сохранять превью удалённого экрана"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"Сохранить предварительный просмотр удаленного экрана?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"Сигнальное соединение прервано, пожалуйста, переподключитесь."</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"Не удалось загрузить объявление. Повторите попытку."</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"Подробности объявления"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"Итого "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"Всего элементов {0}· Непрочитанные элементы {1}"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"О программе"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"О CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"О, вышла новая версия"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"Закрыть"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"Закрыть панель управления"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"Выключить приватный экран"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"Балансирует четкость и плавность изображения, постепенно снижая разрешение под постоянным давлением."</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"Разрешение"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"Удалить"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"Удалить объявление"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"Удалить запись"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"Удалить это объявление?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"Обновить объявление"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"Буфер обмена"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"Загрузка…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"Загрузить еще"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"Рекомендуется обновление"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"Не удалось инициализировать собственное соединение."</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"Отправка"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"Отправить "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"После отправки нажмите «Вставить» на удаленной клавиатуре. Полученный удаленный текст можно вручную скопировать на локальный компьютер."</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"Отправить файл"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"Отправить текст"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"Отмена"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"Отмена соединения"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"На каждый компонент распространяется действие указанной лицензии с открытым исходным кодом, а предоставленные права не подпадают под действие общих условий использования этого приложения. Для просмотра исходного кода требуется подключение к Интернету."</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"Итого"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"Согласитесь и продолжайте."</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"Оставайтесь на связи в фоновом режиме, нажмите, чтобы вернуться к удаленному рабочему столу."</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"Не удалось запустить фоновую поддержку активности, оставьте приложение на переднем плане."</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"Не удалось запустить фоновую поддержку активности. Оставьте приложение в активном режиме и переподключитесь."</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"Фоновое соединение прервано, подключитесь заново."</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"Служба фонового подключения остановлена, подключитесь повторно."</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"Новые превью по-прежнему будут сохраняться при последующих подключениях."</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"В сети"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"Введите имя хоста или IPv4-адрес без протокола и пути."</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"Звук"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"Копирование удаленного текста"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"Всегда поддерживайте более высокое разрешение и уменьшайте частоту кадров, чтобы обеспечить четкость изображения при недостаточной полосе пропускания."</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"Шифрование мультимедиа"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"Буквы и цифры"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"Не удалось инициализировать безопасное хранилище или сертификат. Повторите попытку или очистите данные приложения."</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"Готово"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"Вы можете проверить наличие обновлений после завершения авторизации конфиденциальности."</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"Зарегистрируйте локальную личность после завершения авторизации конфиденциальности."</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"Не удалось сохранить пароль, это соединение все еще можно использовать."</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"Пароли сохраняются в зашифрованном виде в собственном хранилище ключей Android."</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"Удаленный ID"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"Идентификатор узла "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"Идентификатор узла {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"Все удаленные просмотры, сохраненные на этом компьютере, будут удалены, а записи подключений и пароли сохранятся."</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"Ориентация экрана"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"Развернуть меню пульта дистанционного управления"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"Удаленное соединение отключено из-за уведомления"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"Пароль сохранён"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"Сохраненный пароль невозможно прочитать, введите его еще раз."</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"Сохраненный пароль невозможно сохранить, введите его еще раз."</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Del отправлено"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"Фоновая поддержка активности включена, переключающиеся приложения могут продолжать поддерживать соединение."</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"Фоновая поддержка активности включена для возврата или отключения от уведомлений о соединении."</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"Разрешено"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"Прочитано"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"Подключено "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"Подключено к серверу"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"Частота кадров"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"Плавность"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"Баланс"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"Файл лицензии в приложении отсутствует или поврежден, переустановите приложение."</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"Версия для разработки содержит модификации, которые еще не были выпущены. По следующей ссылке приведен исходный код базовой версии."</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"Включить сохранение"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"Включить приватный экран"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"Компоненты с открытым кодом"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"Описание прав на программное обеспечение с открытым исходным кодом."</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"На данный момент это последняя версия."</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"В настоящее время удаленный конец не поддерживает прямой ввод этого текста. Пожалуйста, используйте версию управляемого конца, поддерживающую ввод текста, или отправьте его через буфер обмена."</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"При успешном подключении здесь будет отображено ближайшее удаленное устройство."</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"Я прочитал и согласен с Политикой конфиденциальности."</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"Выбранный файл (невозможно прочитать или недостаточно места)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"Идентификатор устройства не найден."</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"Не удалось отправить команду. Повторите попытку."</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"Команда отправлена, ждём подтверждения от компьютера..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"Статус авторизации"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"Приём"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"получить "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"Локальный декодер"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"Отозвать"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"После выхода удаленное соединение будет остановлено, предварительный просмотр экрана закроется, а существующий предварительный просмотр будет очищен. Запись о подключении и пароль будут сохранены, и перед повторным подключением потребуется повторная авторизация."</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"Отозвать сетевую авторизацию"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"Отозвать сетевую авторизацию?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"Свернуть меню пульта дистанционного управления"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"Скрыть клавиатуру"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"Скрыть мышь"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"Данные"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"Не удалось сохранить файл. Повторите попытку."</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"Файл сохранен."</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"Тайм-аут выбора файла истек, сеанс завершен."</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"Размер текста превышает 128 КБ."</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"Отключить"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"Вернется на домашнюю страницу после отключения."</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"Отключить удаленное соединение?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"Отключить"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"Новая версия"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"Доступна новая версия: v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"Доступна новая версия: v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"Нет непрочитанных объявлений"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"Не удалось сохранить статус чтения локально. Повторите попытку."</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"Не удалось удалить объявление. Повторите попытку."</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"Невозможно инициировать удаленное соединение."</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"Невозможно прочитать лицензию с открытым исходным кодом."</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"Экран"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"Показать пароль"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"Не сейчас"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"Нет объявлений"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"Недавние связи"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"Сервер"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"Проверка Server TLS certificate не удалась."</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"Адрес сервера"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"Не удалось войти на сервер, проверьте адрес сервера и сеть."</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"Порт сервера"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"Тайм-аут подключения к серверу истек, проверьте адрес сервера и сеть."</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"Не включено"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"Не найден браузер, в котором можно было бы открыть ссылку."</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"Несанкционированное"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"Не прочитано"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"Сервер не подключен · Нажмите, чтобы повторить попытку."</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"Приложение использует OpenFEC для прямого исправления ошибок по лицензии CeCILL-C 1.0 с ограниченной гарантией и ответственностью. Подробности — в тексте лицензии."</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"Местный идентификатор "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"Локальный идентификатор {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"Исходный код и инструкции по сборке этой версии."</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"Ревизия исходного кода этой сборки недоступна."</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"Отпустите, чтобы обновить"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"Инструкции по сборке"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"Рецепты сборки и исправления проектов."</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"Открыть исходный код"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"Не удалось проверить обновления. Повторите позже."</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"Проверить обновления"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"Закрытие экрана конфиденциальности…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"Установление безопасного соединения…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"Включение экрана конфиденциальности..."</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"Проверка обновлений…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"Очистка..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"Получение локального идентификатора..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"Чтение выбранного файла..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"Подключение"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"Подключение к серверу сигнализации..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"Подключение к серверу..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"Повторное подключение к серверу..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"Для этого устройства средство выбора файлов недоступно."</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"Очистить"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"Удалить превью"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"Удалить превью?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"Исходный код и сборка"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"Версия исходного кода"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"Версия"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"Положение об авторских правах и лицензии."</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"Компьютерная клавиатура"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"Качество"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"Режим видео"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"Задержка видео"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"Настройки видео"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"Качество видео"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"Частота захвата видео"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"Тачпад"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"Родственная мышь"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"Понятно"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"ОК"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"Подтвердить"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"Подтвердите соединение"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"Не в сети"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"Пробел"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"Диапазон портов: 1–65535."</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"Символы и клавиши"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"Подождите, пока компьютер вернется в состояние экрана конфиденциальности; старые компьютеры могут его не поддерживать."</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"Ожидание информации об удаленном экране."</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"Ожидание удаленного экрана..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"Ожидание разрешения на конфиденциальность."</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"Системная клавиатура"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"Касание"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"Абсолютная мышь"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"Сеть"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"Пользовательский"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"Виртуальная мышь"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"Приватный экран отключён локальным сочетанием клавиш. Заблокируйте его снова, чтобы восстановить защиту и запретить локальную разблокировку."</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"Управляемая версия слишком низкая, обновите ее до последней версии."</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"Кодер удалённой стороны"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"Текст для отправки на удаленный конец"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"Видео"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"Лицензия"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"Лицензии и авторские права"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"Лицензия и уведомление об авторских правах доступны в автономном режиме."</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"Не удалось сохранить идентификационные данные устройства. Проверьте безопасное хранилище."</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"Идентификатор устройства и выбранные сохраненные пароли доступа шифруются с помощью хранилища ключей Android. Записи подключений сохраняются только локально и не включаются в резервную копию устройства. Содержимое буфера обмена очищается после завершения сеанса. Оставайтесь в сеансе с помощью «картинка в картинке» или подключенных уведомлений после выхода из приложения и отключайтесь внутри приложения или уведомлений."</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"Настройки"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"Настройки, есть новая версия"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"Пароль доступа"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"Неверный пароль доступа, пожалуйста, введите его еще раз."</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"Не удалось проверить сертификат · Нажмите, чтобы повторить попытку."</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"Сначала пройдите онлайн-авторизацию."</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"Пожалуйста, включите системную службу CrossDesk на удаленном конце и повторите попытку."</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"Время ожидания запроса истекло, а состояние экрана конфиденциальности компьютера не подтверждено."</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"Пожалуйста, дождитесь отправки текущего файла."</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"Введите порт в диапазоне 1–65535."</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"Введите ID из 9 цифр"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"Пожалуйста, введите действительный пароль доступа."</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"Не удалось применить настройки. Повторите попытку."</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"Лицензия программы"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"Назад"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"Возврат к панели управления."</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"Пока нет записей о подключении"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"Это объявление было обновлено или удалено. Чтобы просмотреть его, вернитесь к списку объявлений."</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"Удаленная задача закрыта."</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"Удаленный рабочий стол"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"Сенсорная область удаленного рабочего стола"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"Удаленный рабочий стол: коснитесь и щелкните, перетащите для перемещения, нажмите и удерживайте правую кнопку, сведите пальцы для масштабирования, увеличьте масштаб и перетащите экран двумя пальцами, проведите двумя пальцами вверх и вниз для прокрутки в исходном масштабе."</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"Удаленный компьютер"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"Удаленное окно было закрыто, или не удалось запустить фоновую проверку активности, и сеанс завершился."</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"Удаленное подключение"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"Неверный удаленный пароль."</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"Удаленная сторона закрыла соединение."</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"Удаленный конец в настоящее время недоступен."</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"Срок действия пароля удаленного доступа истек, подключитесь повторно."</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"Подключиться"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"Подключение "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"Соединение не удалось"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"Не удалось подключиться · Нажмите, чтобы повторить попытку."</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"Соединение потеряно"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"Соединение завершено"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"Задержка соединения (RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"Доступно при подключении к поддерживаемому устройству."</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"Блокировка горизонтального экрана после установления соединения."</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"Запрос на подключение"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"Способ подключения"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"Подключиться к серверу"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"Подключитесь к серверу, чтобы получать последние объявления."</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"Тайм-аут соединения истек, проверьте идентификатор устройства, сервер и удаленный онлайн-статус."</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"Подключение к удаленному рабочему столу"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"Возврат"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"Объявления"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"Некоторые предварительные просмотры не удалось удалить. Повторите попытку."</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"Попробуйте еще раз"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"Повторить попытку сохранения статуса чтения."</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"Заблокировать"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"Клавиатура"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"Прочитать и авторизоваться"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"Конфиденциальность"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"Конфиденциальность и авторизация"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"Приватный экран"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"Приватный экран выкл."</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"Приватный экран вкл."</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"Приватный экран разблокирован"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"Неисправность экрана конфиденциальности."</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"Экран конфиденциальности временно недоступен."</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"Срок действия статуса экрана конфиденциальности истек, ожидание подтверждения от компьютера."</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"Статус экрана конфиденциальности подлежит подтверждению."</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"Политика конфиденциальности"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"Политику конфиденциальности временно невозможно прочитать. Пожалуйста, откажитесь от подключения к Интернету и переустановите приложение."</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"Без звука"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"Аудио"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"Сайт проекта"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"Предварительный просмотр может содержать личную или рабочую информацию с удаленного компьютера. После его включения каждое подключение будет автоматически сохранять изображение на устройстве и отображать его при последних подключениях. Вы можете закрыть и очистить в любое время."</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"Высокое"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"По умолчанию"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"По умолчанию выключено. При включении экран войдет и останется в альбомной ориентации при подключении телефона; в выключенном состоянии он будет следовать направлению устройства. Планшеты и мультиокна не затронуты."</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"Правая кнопка мыши, нажмите и перетащите, отпустите, чтобы завершить перетаскивание."</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"Левую кнопку мыши нажмите и перетащите, отпустите, чтобы завершить перетаскивание."</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"Управление мышью"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"Колесо мыши: проведите вверх и вниз, чтобы выйти за пределы диапазона клавиш."</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">", коэффициент потери пакетов "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">", отправить "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">", пароль сохранен"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">", получить "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">"нажмите «Повторить»."</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,308 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generated by localization/generate.py. -->
|
||||
<resources>
|
||||
<string name="text_58b6df1059088699" formatted="false">" · Completed"</string>
|
||||
<string name="text_53af552fb3af7f6e" formatted="false">" Transfer failed"</string>
|
||||
<string name="text_23ebae95d26dfe5e" formatted="false">" devices"</string>
|
||||
<string name="text_a7f4dfd234a43b16" formatted="false">" Article · "</string>
|
||||
<string name="text_2c894057fc526576" formatted="false">" unread items"</string>
|
||||
<string name="text_d0ac753c6681e578" formatted="false">"CrossDesk remote connection"</string>
|
||||
<string name="text_0991c6fc1de4ffd6" formatted="false">"GNU GPL version 3"</string>
|
||||
<string name="text_5ae7dc4079223967" formatted="false">"OpenFEC notice"</string>
|
||||
<string name="text_69ad29820a259526" formatted="false">"OpenFEC license and source"</string>
|
||||
<string name="text_63ae4a0c7a448d21" formatted="false">"P2P direct connection"</string>
|
||||
<string name="text_70cae3c6aad8e152" formatted="false">"SRTP enabled"</string>
|
||||
<string name="text_ef813fec7d6d8a3b" formatted="false">"TURN relay"</string>
|
||||
<string name="text_ebede975edd52aee" formatted="false">"{0} transmission failed"</string>
|
||||
<string name="text_b3ffb6e982ecf5df" formatted="false">"Devices: {0}"</string>
|
||||
<string name="text_fc66a78b9e27fecf" formatted="false">"{0} unread items"</string>
|
||||
<string name="text_dcb59cdcf66150a1" formatted="false">"{0}, receiving {1}, sending {2}, packet loss rate {3}"</string>
|
||||
<string name="text_01965b3249458d01" formatted="false">"● Connected"</string>
|
||||
<string name="text_eb4236fe6a926a5a" formatted="false">"Pull down to refresh"</string>
|
||||
<string name="text_37772187ab854191" formatted="false">"Loss Rate"</string>
|
||||
<string name="text_a567bdaa11367f26" formatted="false">"Medium"</string>
|
||||
<string name="text_e6ff95a9fe6acc7f" formatted="false">"Prioritizes keeping the picture smooth, and will reduce resolution more aggressively when bandwidth or encoding pressure is high."</string>
|
||||
<string name="text_aa9e366f68d3d097" formatted="false">"Low"</string>
|
||||
<string name="text_f03d03eb35e3330c" formatted="false">"Using a custom server"</string>
|
||||
<string name="text_2e9f4819e064ce12" formatted="false">"Save password"</string>
|
||||
<string name="text_10019cef593819ed" formatted="false">"Save received file"</string>
|
||||
<string name="text_3bcdcd330bb3044c" formatted="false">"Save remote screen previews"</string>
|
||||
<string name="text_0f197074373e38fd" formatted="false">"Save remote screen preview?"</string>
|
||||
<string name="text_71ca53f95a8484da" formatted="false">"The signaling connection is interrupted, please reconnect."</string>
|
||||
<string name="text_789f22a8b1b34797" formatted="false">"Announcement loading failed, please try again."</string>
|
||||
<string name="text_00554b17c432937e" formatted="false">"Announcement details"</string>
|
||||
<string name="text_2428420e407fe2e8" formatted="false">"Total "</string>
|
||||
<string name="text_d977c7568cc5201e" formatted="false">"Total {0} items ·{1} unread items"</string>
|
||||
<string name="text_52d25a9e30ba94f1" formatted="false">"About"</string>
|
||||
<string name="text_459c1e980c1c8ce2" formatted="false">"About CrossDesk"</string>
|
||||
<string name="text_390a95b65eb33052" formatted="false">"About, there is a new version"</string>
|
||||
<string name="text_3fd47edce45b3603" formatted="false">"Close"</string>
|
||||
<string name="text_56a18c93e12fdc4e" formatted="false">"Close control bar"</string>
|
||||
<string name="text_4eb0565cc4658d7f" formatted="false">"Disable privacy screen"</string>
|
||||
<string name="text_7d466b69be42fc43" formatted="false">"Balances clarity and smoothness, only gradually reducing resolution under constant pressure."</string>
|
||||
<string name="text_b92421822c213c2b" formatted="false">"Resolution"</string>
|
||||
<string name="text_2f9daa828907b93f" formatted="false">"Delete"</string>
|
||||
<string name="text_0e46cdb3442edfba" formatted="false">"Delete announcement"</string>
|
||||
<string name="text_f2cf9101bb2d8816" formatted="false">"Delete record"</string>
|
||||
<string name="text_d087671ca7df7f0f" formatted="false">"Delete this announcement?"</string>
|
||||
<string name="text_33e7584cd5c252d7" formatted="false">"Refresh announcement"</string>
|
||||
<string name="text_8c10e2c1728ddf8e" formatted="false">"Clipboard"</string>
|
||||
<string name="text_4927a53bcc886afb" formatted="false">"Loading…"</string>
|
||||
<string name="text_af90a08fec8ee28d" formatted="false">"Load more"</string>
|
||||
<string name="text_a739f24a9fd8a5d9" formatted="false">"Update recommended"</string>
|
||||
<string name="text_861521c9e107c648" formatted="false">"Native connection initialization failed"</string>
|
||||
<string name="text_edecf0ae6e5144f9" formatted="false">"Send"</string>
|
||||
<string name="text_43b7b60867ca51e7" formatted="false">"Send "</string>
|
||||
<string name="text_da7df5a5543c4ba1" formatted="false">"After sending, click \"Paste\" on the remote keyboard. The received remote text can be manually copied to the local machine."</string>
|
||||
<string name="text_e7281fbca7af369c" formatted="false">"Send file"</string>
|
||||
<string name="text_ce6c02d19022e016" formatted="false">"Send text"</string>
|
||||
<string name="text_2cd0f3be8738a86c" formatted="false">"Cancel"</string>
|
||||
<string name="text_3687f953cfe85fb8" formatted="false">"Cancel connection"</string>
|
||||
<string name="text_72814b15a6fa152c" formatted="false">"Each component is subject to the listed open source license, and the rights granted are not subject to the general terms of use of this application. Viewing source code requires an internet connection."</string>
|
||||
<string name="text_e009c148d1890dac" formatted="false">"Total"</string>
|
||||
<string name="text_81c92013219dd115" formatted="false">"Agree and continue"</string>
|
||||
<string name="text_409696774c9998ce" formatted="false">"Keep connected in the background, click to return to the remote desktop"</string>
|
||||
<string name="text_dcb8d4e2e6973912" formatted="false">"Background keepalive failed to start, please keep the application in the foreground"</string>
|
||||
<string name="text_d96a21463557171d" formatted="false">"Background keepalive failed to start, please keep the application in the foreground and reconnect."</string>
|
||||
<string name="text_952f7300de0a7bd9" formatted="false">"The background connection has ended, please reconnect."</string>
|
||||
<string name="text_da904f715e1cff87" formatted="false">"The background connection service has stopped, please reconnect."</string>
|
||||
<string name="text_0812359e18082071" formatted="false">"New previews will still be saved on subsequent connections."</string>
|
||||
<string name="text_b9086662b1df1f20" formatted="false">"Online"</string>
|
||||
<string name="text_39f2f444a042643e" formatted="false">"Fill in the host name or IPv4 address, without protocol and path"</string>
|
||||
<string name="text_473400815c0f687d" formatted="false">"Sound"</string>
|
||||
<string name="text_ab5ca1fab212f4ca" formatted="false">"Copy remote text"</string>
|
||||
<string name="text_c92269b2039e7aa3" formatted="false">"Always maintain a higher resolution and reduce the frame rate to ensure picture clarity when bandwidth is insufficient."</string>
|
||||
<string name="text_7ff73de85ec16d15" formatted="false">"Media encryption"</string>
|
||||
<string name="text_22dc6217af77bc37" formatted="false">"Letters & numbers"</string>
|
||||
<string name="text_9ca1cdaf831182e3" formatted="false">"Secure storage or certificate initialization failed, please try again or clear application data"</string>
|
||||
<string name="text_c0b3fbff51ccc40b" formatted="false">"Done"</string>
|
||||
<string name="text_678328f6f02881c7" formatted="false">"You can check for updates after completing privacy authorization"</string>
|
||||
<string name="text_c4361f9abdba4882" formatted="false">"Register the local identity after completing privacy authorization"</string>
|
||||
<string name="text_c29b888e357d727d" formatted="false">"Password saving failed, this connection can still be used"</string>
|
||||
<string name="text_3f31300a23afb390" formatted="false">"Passwords are saved encrypted in the native Android Keystore"</string>
|
||||
<string name="text_8d3b052c4c67acda" formatted="false">"Remote ID"</string>
|
||||
<string name="text_0512084e130984bc" formatted="false">"Peer ID "</string>
|
||||
<string name="text_c5147d65960196b0" formatted="false">"Peer ID {0}"</string>
|
||||
<string name="text_882b705d31ac7e2a" formatted="false">"All remote previews saved on this machine will be deleted, and the connection records and passwords will be retained."</string>
|
||||
<string name="text_60cc99cc0013972e" formatted="false">"Screen orientation"</string>
|
||||
<string name="text_9e7294d264afecb7" formatted="false">"Expand remote control menu"</string>
|
||||
<string name="text_9343612ee473edd6" formatted="false">"Remote connection disconnected from notification"</string>
|
||||
<string name="text_9d32476fe83aef60" formatted="false">"Password saved"</string>
|
||||
<string name="text_1cbd391383283924" formatted="false">"The saved password cannot be read, please re-enter it."</string>
|
||||
<string name="text_6792b9f341380c68" formatted="false">"The saved password cannot be retained, please re-enter it."</string>
|
||||
<string name="text_74d3f0927d465047" formatted="false">"Ctrl+Alt+Del sent"</string>
|
||||
<string name="text_c28d86acbedba3b6" formatted="false">"Background keep-alive is enabled, switching applications can continue to maintain the connection"</string>
|
||||
<string name="text_506409ec08cb2a79" formatted="false">"Background keepalive enabled to return or disconnect from connection notifications"</string>
|
||||
<string name="text_521e65ffc7d0ff2d" formatted="false">"Granted"</string>
|
||||
<string name="text_efdd1a47e4beb2f9" formatted="false">"Read"</string>
|
||||
<string name="text_1f672b9b18d18e87" formatted="false">"Connected "</string>
|
||||
<string name="text_9c05d9d7fa1b0abd" formatted="false">"Connected to server"</string>
|
||||
<string name="text_f9404bf335bc14cf" formatted="false">"Frame rate"</string>
|
||||
<string name="text_9ae0c69e26db1d6a" formatted="false">"Smooth"</string>
|
||||
<string name="text_df544e46aa4d5c17" formatted="false">"Balanced"</string>
|
||||
<string name="text_3362e8fa7f65cc2f" formatted="false">"The license file in the application is missing or damaged, please reinstall the application."</string>
|
||||
<string name="text_3f2904435942cc0f" formatted="false">"The development version contains modifications that have not yet been released. The following link is the source code of the basic version."</string>
|
||||
<string name="text_4338afaad52ea445" formatted="false">"Enable saving"</string>
|
||||
<string name="text_c8bb8255390df3b6" formatted="false">"Enable privacy screen"</string>
|
||||
<string name="text_c6ecaca362ae1c80" formatted="false">"Open-source components"</string>
|
||||
<string name="text_6099db946bdb5ee4" formatted="false">"Open source software rights description"</string>
|
||||
<string name="text_6e86570183c3cdd0" formatted="false">"This is currently the latest version"</string>
|
||||
<string name="text_24a52788cf474bf6" formatted="false">"Currently, the remote end does not support direct input of this text. Please use a version of the controlled end that supports text input, or send it through the clipboard."</string>
|
||||
<string name="text_33f25b500697a7d9" formatted="false">"Upon successful connection, the nearest remote device will be displayed here."</string>
|
||||
<string name="text_70341256d7317e7d" formatted="false">"I have read and agreed to the Privacy Policy"</string>
|
||||
<string name="text_85c4c8fda0461f35" formatted="false">"Selected file (cannot be read or insufficient space)"</string>
|
||||
<string name="text_9b58c9ff5f6a856f" formatted="false">"The device ID was not found"</string>
|
||||
<string name="text_97b7b18df07b9787" formatted="false">"Command sending failed, please try again"</string>
|
||||
<string name="text_cb782027ca5986c7" formatted="false">"The command has been sent, waiting for computer confirmation..."</string>
|
||||
<string name="text_3ca40a586103f6b7" formatted="false">"Authorization status"</string>
|
||||
<string name="text_6e684586884ebee6" formatted="false">"Receive"</string>
|
||||
<string name="text_84ae92e54e3078aa" formatted="false">"receive "</string>
|
||||
<string name="text_d16488b987723161" formatted="false">"Local decoder"</string>
|
||||
<string name="text_6b58198955259066" formatted="false">"Withdraw"</string>
|
||||
<string name="text_c52e42ee856825db" formatted="false">"After withdrawing, the remote connection will be stopped, the screen preview will be closed and the existing preview will be cleared. The connection record and password will be retained, and authorization is required again before reconnecting."</string>
|
||||
<string name="text_61f4788032ec596b" formatted="false">"Withdraw network authorization"</string>
|
||||
<string name="text_e736e419008ac10a" formatted="false">"Withdraw network authorization?"</string>
|
||||
<string name="text_73431dcf0afb7a65" formatted="false">"Collapse remote control menu"</string>
|
||||
<string name="text_d826c4ece4dd4031" formatted="false">"Hide keyboard"</string>
|
||||
<string name="text_6e9a457c0c3c34ed" formatted="false">"Hide mouse"</string>
|
||||
<string name="text_5440f7424f2865bf" formatted="false">"Data"</string>
|
||||
<string name="text_94244f41d0a41378" formatted="false">"File saving failed, please try again"</string>
|
||||
<string name="text_2553a785fef2a405" formatted="false">"File saved"</string>
|
||||
<string name="text_d573b3f9a810ea04" formatted="false">"File selection timed out and session ended"</string>
|
||||
<string name="text_985a5c380be49f4f" formatted="false">"Text exceeds 128 KB"</string>
|
||||
<string name="text_f33ac04eece6a6a6" formatted="false">"Disconnect"</string>
|
||||
<string name="text_09b1395f50589327" formatted="false">"Will return to the homepage after disconnecting"</string>
|
||||
<string name="text_a73c0680db0d2e06" formatted="false">"Disconnect remote connection?"</string>
|
||||
<string name="text_a33f3804768e68ee" formatted="false">"Disconnect"</string>
|
||||
<string name="text_47ceaf502c5a05d6" formatted="false">"New version"</string>
|
||||
<string name="text_78823e6cf1a8afe5" formatted="false">"New version available: v"</string>
|
||||
<string name="text_b7e58b67fa8f7e78" formatted="false">"New version available: v{0}"</string>
|
||||
<string name="text_ef23787ec32c5588" formatted="false">"No unread announcements"</string>
|
||||
<string name="text_dca2c418ac967366" formatted="false">"Unable to save reading status locally. Please try again."</string>
|
||||
<string name="text_5c92da76360056cc" formatted="false">"Unable to delete this announcement. Please try again."</string>
|
||||
<string name="text_615709dd3129313c" formatted="false">"Unable to initiate remote connection"</string>
|
||||
<string name="text_a5c4f4ad79a640ae" formatted="false">"Unable to read open source license"</string>
|
||||
<string name="text_1a13ea5910a0c5e6" formatted="false">"Display"</string>
|
||||
<string name="text_ffe21a671190323e" formatted="false">"Show password"</string>
|
||||
<string name="text_a94460e8a04f04c5" formatted="false">"Not now"</string>
|
||||
<string name="text_6d9a7758610a2432" formatted="false">"No announcements"</string>
|
||||
<string name="text_0b290c6600d92f43" formatted="false">"Recent connections"</string>
|
||||
<string name="text_2388cbc6a486af9f" formatted="false">"Server"</string>
|
||||
<string name="text_dfe408e686175095" formatted="false">"Server TLS certificate verification failed"</string>
|
||||
<string name="text_d3716cc5a2f5a810" formatted="false">"Server Address"</string>
|
||||
<string name="text_2a9608d4465d0f70" formatted="false">"Server login failed, please check the server address and network"</string>
|
||||
<string name="text_d270868960e68629" formatted="false">"Server port"</string>
|
||||
<string name="text_7a4e4a6a1b479a52" formatted="false">"Server connection timed out, please check the server address and network"</string>
|
||||
<string name="text_f95ea7f4c063eea7" formatted="false">"Not enabled"</string>
|
||||
<string name="text_c8f7ed6f2186fb98" formatted="false">"No browser found to open the link"</string>
|
||||
<string name="text_94bc3d40defef3e9" formatted="false">"Unauthorized"</string>
|
||||
<string name="text_4d0680f9efaef147" formatted="false">"Unread"</string>
|
||||
<string name="text_d1fcb66a323a16f5" formatted="false">"Server not connected · Click to try again"</string>
|
||||
<string name="text_7eea7966c0b746c5" formatted="false">"This application uses OpenFEC for forward error correction under CeCILL-C 1.0, which provides limited warranties and limits liability. See the full license for details."</string>
|
||||
<string name="text_c611b4e50b0dbc08" formatted="false">"Local ID "</string>
|
||||
<string name="text_97d10220f08dd7fc" formatted="false">"Local ID {0}"</string>
|
||||
<string name="text_91f15d505770d7a0" formatted="false">"Source code and build instructions for this version"</string>
|
||||
<string name="text_5b2c8ca2c5a87241" formatted="false">"Source revision is unavailable for this build."</string>
|
||||
<string name="text_f0e274aa130e08a2" formatted="false">"Release to refresh"</string>
|
||||
<string name="text_47077144715b7074" formatted="false">"Build instructions"</string>
|
||||
<string name="text_837ab2d0b2f4cb98" formatted="false">"Build recipes and project patches"</string>
|
||||
<string name="text_921c3b62f1f7d6f4" formatted="false">"View source code"</string>
|
||||
<string name="text_fdd1059f10c4b979" formatted="false">"Check failed. Please try again later."</string>
|
||||
<string name="text_7f68ebad19ba6bcd" formatted="false">"Check for updates"</string>
|
||||
<string name="text_4f4d1e704e38c161" formatted="false">"Closing privacy screen…"</string>
|
||||
<string name="text_2a05f6fbd3f4436e" formatted="false">"Establishing secure connection…"</string>
|
||||
<string name="text_0da575e3c92de73a" formatted="false">"Turning on privacy screen..."</string>
|
||||
<string name="text_91834aebecabcbc3" formatted="false">"Checking for updates…"</string>
|
||||
<string name="text_0571a5f5f8ec4c83" formatted="false">"Clearing..."</string>
|
||||
<string name="text_0e6336c8fe918730" formatted="false">"Obtaining local ID..."</string>
|
||||
<string name="text_faebd20c2801fd0f" formatted="false">"Reading selected file..."</string>
|
||||
<string name="text_694186911ae3e4da" formatted="false">"Connecting"</string>
|
||||
<string name="text_c3ccc7f7d37533e3" formatted="false">"Connecting to signaling server..."</string>
|
||||
<string name="text_4024d3c0f467a4f6" formatted="false">"Connecting to server..."</string>
|
||||
<string name="text_46fe1ef52ec3a10f" formatted="false">"Reconnecting to server..."</string>
|
||||
<string name="text_4e4fce649fc00238" formatted="false">"No file picker available for this device"</string>
|
||||
<string name="text_bce2377283c2455a" formatted="false">"Clear"</string>
|
||||
<string name="text_ee0e76b8507212de" formatted="false">"Clear previews"</string>
|
||||
<string name="text_ecc809e44637de18" formatted="false">"Clear previews?"</string>
|
||||
<string name="text_2782e4485ad23d34" formatted="false">"Source code and build instructions"</string>
|
||||
<string name="text_1f566fe8f8b718f3" formatted="false">"Source code version"</string>
|
||||
<string name="text_5f76b2bf82dd2c5d" formatted="false">"Version"</string>
|
||||
<string name="text_16410ee9663fad10" formatted="false">"Copyright and License Statement"</string>
|
||||
<string name="text_11de77e1e41e680f" formatted="false">"Computer keyboard"</string>
|
||||
<string name="text_20f57900234debd7" formatted="false">"Quality"</string>
|
||||
<string name="text_43b04aba53a54cf5" formatted="false">"Video Preference"</string>
|
||||
<string name="text_82a5600c470179fa" formatted="false">"Video latency"</string>
|
||||
<string name="text_33b458faaf967e15" formatted="false">"Video settings"</string>
|
||||
<string name="text_afb5acdf8f07fadb" formatted="false">"Video Quality"</string>
|
||||
<string name="text_12b41b7a3fbcf8ca" formatted="false">"Video Capture Frame Rate"</string>
|
||||
<string name="text_66062971234f422d" formatted="false">"Trackpad"</string>
|
||||
<string name="text_c421dc051bea3f11" formatted="false">"Relative mouse"</string>
|
||||
<string name="text_de32e20193ad1042" formatted="false">"Got it"</string>
|
||||
<string name="text_fac2a67ad87807c4" formatted="false">"OK"</string>
|
||||
<string name="text_36f33adaf0942634" formatted="false">"Confirm"</string>
|
||||
<string name="text_a5b7fba4dbd8f622" formatted="false">"Confirm connection"</string>
|
||||
<string name="text_be1b4f3c6c1cda1e" formatted="false">"Offline"</string>
|
||||
<string name="text_bfa4a6e0fe42ac28" formatted="false">"Space"</string>
|
||||
<string name="text_471a579e8d87faac" formatted="false">"Port range is 1–65535"</string>
|
||||
<string name="text_c7d0c77862e32b52" formatted="false">"Symbols & keys"</string>
|
||||
<string name="text_a562f07bd38c1a49" formatted="false">"Wait for the computer to return to the privacy screen state; older computers may not support it."</string>
|
||||
<string name="text_5ee880e2524a983a" formatted="false">"Waiting for remote screen information"</string>
|
||||
<string name="text_674c723a85ee7f57" formatted="false">"Waiting for the remote screen..."</string>
|
||||
<string name="text_119f0483da4756c4" formatted="false">"Waiting for privacy authorization"</string>
|
||||
<string name="text_7916071c1a8ee458" formatted="false">"System keyboard"</string>
|
||||
<string name="text_02e9ba6fda719e2e" formatted="false">"Direct touch"</string>
|
||||
<string name="text_8527c8c6d1ccc1ca" formatted="false">"Absolute Mouse"</string>
|
||||
<string name="text_872428a7210d5e0c" formatted="false">"Network"</string>
|
||||
<string name="text_4eafa9e925b30bcd" formatted="false">"Custom"</string>
|
||||
<string name="text_dffd0c12b8f27247" formatted="false">"Virtual mouse"</string>
|
||||
<string name="text_62c199f37bf95869" formatted="false">"The remote privacy screen was unlocked using the local shortcut. Lock it again to restore privacy and disable local shortcut unlocking."</string>
|
||||
<string name="text_a569ce729c1d6e19" formatted="false">"The controlled version is too low, please upgrade to the latest version."</string>
|
||||
<string name="text_d814476826827b78" formatted="false">"Remote encoder"</string>
|
||||
<string name="text_488402883e27f6f0" formatted="false">"Text to be sent to the remote end"</string>
|
||||
<string name="text_c20f7618d330a854" formatted="false">"Video"</string>
|
||||
<string name="text_310c625425f014d8" formatted="false">"License"</string>
|
||||
<string name="text_5c34f7d0e2124dca" formatted="false">"Licenses and copyright notices"</string>
|
||||
<string name="text_e24134b643a17975" formatted="false">"The license and copyright notice are available offline."</string>
|
||||
<string name="text_5e7628f043ce71d0" formatted="false">"Device identity failed to save, please check secure storage"</string>
|
||||
<string name="text_5d35ee0d7945fcbc" formatted="false">"Device identity and selected saved access passwords are encrypted using Android Keystore. Connection records are only saved locally and are not included in device backup. The clipboard contents are cleared when the session is ended. Stay in session with picture-in-picture or connected notifications after leaving the app, and disconnect within the app or notifications."</string>
|
||||
<string name="text_df3d58c7d84b85f2" formatted="false">"Settings"</string>
|
||||
<string name="text_4f8771952222a011" formatted="false">"Settings, there is a new version"</string>
|
||||
<string name="text_f4f712d5be91721a" formatted="false">"Access password"</string>
|
||||
<string name="text_dd6c465847af1b60" formatted="false">"The access password is wrong, please re-enter it."</string>
|
||||
<string name="text_defba1d2989bfab4" formatted="false">"Certificate verification failed · Click to try again"</string>
|
||||
<string name="text_44f3d4d52347095a" formatted="false">"Please complete the online authorization first"</string>
|
||||
<string name="text_2a07ca002bc5093d" formatted="false">"Please enable the CrossDesk system service on the remote end and try again"</string>
|
||||
<string name="text_990fd23c62de5ccf" formatted="false">"The request timed out and the computer\'s privacy screen status has not been confirmed."</string>
|
||||
<string name="text_e5c8fa6dcf7b2a8b" formatted="false">"Please wait for the current file to be sent."</string>
|
||||
<string name="text_9305d9d72b06110d" formatted="false">"Please enter a port in the range 1–65535"</string>
|
||||
<string name="text_3c7223dfb8dde5cf" formatted="false">"Enter a 9-digit device ID"</string>
|
||||
<string name="text_285a0714894d2899" formatted="false">"Please enter a valid access password"</string>
|
||||
<string name="text_c808bb77ffd2b4cd" formatted="false">"Could not apply settings. Try again."</string>
|
||||
<string name="text_a762e7e650e285fa" formatted="false">"Software license"</string>
|
||||
<string name="text_572cf45ba43634b3" formatted="false">"Back"</string>
|
||||
<string name="text_7565f94031582c7c" formatted="false">"Return to control bar"</string>
|
||||
<string name="text_55113b6925c362fd" formatted="false">"No connection record yet"</string>
|
||||
<string name="text_3aa527b2106cc987" formatted="false">"This announcement has been updated or deleted, please return to the announcement list to view it."</string>
|
||||
<string name="text_e357aa9a0fb28c16" formatted="false">"Remote task is closed"</string>
|
||||
<string name="text_c255841f68096d3b" formatted="false">"Remote Desktop"</string>
|
||||
<string name="text_133f4c7dabd88b97" formatted="false">"Remote desktop touch area"</string>
|
||||
<string name="text_5931aeb3778f28f1" formatted="false">"Remote desktop: Touch and click, drag to move, press and hold the right button, pinch to zoom, zoom in and drag the screen with two fingers, slide up and down with two fingers to scroll at the original scale"</string>
|
||||
<string name="text_3535087994d050de" formatted="false">"Remote computer"</string>
|
||||
<string name="text_ed2e03072ce131de" formatted="false">"The remote window has been closed, or the background keepalive failed to start, and the session has ended."</string>
|
||||
<string name="text_678b783fb578172b" formatted="false">"Remote connection"</string>
|
||||
<string name="text_deccbd3eb9ba45f2" formatted="false">"Incorrect remote password"</string>
|
||||
<string name="text_a2ce499295e358ae" formatted="false">"The remote end has closed the connection"</string>
|
||||
<string name="text_176e117df3ace734" formatted="false">"The remote end is currently unavailable"</string>
|
||||
<string name="text_d2c0694243f93249" formatted="false">"The remote access password has expired, please reconnect."</string>
|
||||
<string name="text_a5574109f0208e89" formatted="false">"Connect"</string>
|
||||
<string name="text_1d54bfbae5f8ac08" formatted="false">"Connection "</string>
|
||||
<string name="text_89c4766afc85125f" formatted="false">"Connection failed"</string>
|
||||
<string name="text_04bf1a61ba1369f6" formatted="false">"Connection failed · Click to try again"</string>
|
||||
<string name="text_2ab7d89557e779ab" formatted="false">"Connection lost"</string>
|
||||
<string name="text_c1d20bf4c3e471c1" formatted="false">"Connection ended"</string>
|
||||
<string name="text_e57d2cbc0e9908e6" formatted="false">"Connection delay (RTT)"</string>
|
||||
<string name="text_db4d4f0fab78498a" formatted="false">"Available when connected to a supported remote device."</string>
|
||||
<string name="text_2123a9ed718f2c40" formatted="false">"Lock landscape screen after connection is established"</string>
|
||||
<string name="text_f741e0536210eafa" formatted="false">"Connection prompt"</string>
|
||||
<string name="text_485a26050ce57431" formatted="false">"Connection method"</string>
|
||||
<string name="text_5a048351a77fe88d" formatted="false">"Connect to server"</string>
|
||||
<string name="text_5854c4add7ab0f7a" formatted="false">"Connect to the server to get the latest announcements."</string>
|
||||
<string name="text_32cd27b5a72515f3" formatted="false">"Connection timed out, please check the device ID, server and remote online status"</string>
|
||||
<string name="text_6edc4b54cc1a9838" formatted="false">"Connect to remote desktop"</string>
|
||||
<string name="text_d5407b4f3c666681" formatted="false">"Backspace"</string>
|
||||
<string name="text_e02926784fcedb91" formatted="false">"Announcements"</string>
|
||||
<string name="text_465a092680d132b3" formatted="false">"Some previews could not be cleared, please try again."</string>
|
||||
<string name="text_b8784c8dd5636ff2" formatted="false">"Try again"</string>
|
||||
<string name="text_a504fb6f162bdb20" formatted="false">"Retry saving reading status"</string>
|
||||
<string name="text_ff9872a023e3a8aa" formatted="false">"Lock"</string>
|
||||
<string name="text_864200bbb241e067" formatted="false">"Keyboard"</string>
|
||||
<string name="text_1f0f014d4177a0cc" formatted="false">"Read and authorize"</string>
|
||||
<string name="text_86651d17a401c55b" formatted="false">"Privacy"</string>
|
||||
<string name="text_26c6e011e343708c" formatted="false">"Privacy and Authorization"</string>
|
||||
<string name="text_6cad42fd3da85585" formatted="false">"Privacy screen"</string>
|
||||
<string name="text_e157fafb76aad954" formatted="false">"Privacy screen off"</string>
|
||||
<string name="text_bbef0eac0c04f214" formatted="false">"Privacy screen on"</string>
|
||||
<string name="text_0c7535f7c5e43b6f" formatted="false">"Privacy screen unlocked"</string>
|
||||
<string name="text_b62ac3dfb606c00b" formatted="false">"Privacy screen abnormality"</string>
|
||||
<string name="text_598a2747dbd21dd5" formatted="false">"Privacy screen is temporarily unavailable"</string>
|
||||
<string name="text_4d59be3c75189032" formatted="false">"Privacy screen status has expired, waiting for computer confirmation"</string>
|
||||
<string name="text_1674532c70ed1db2" formatted="false">"Privacy screen status to be confirmed"</string>
|
||||
<string name="text_e464b41fd5c45ba5" formatted="false">"Privacy Policy"</string>
|
||||
<string name="text_554e957e8e3c00af" formatted="false">"The privacy policy cannot be read temporarily. Please refuse to connect to the Internet and reinstall the application."</string>
|
||||
<string name="text_7db2e189ecb01065" formatted="false">"Mute"</string>
|
||||
<string name="text_296c632ec857a0ba" formatted="false">"Audio"</string>
|
||||
<string name="text_0cadb49096a382e0" formatted="false">"Project website"</string>
|
||||
<string name="text_3beca60bd0c654f7" formatted="false">"Previews may contain personal or work information from the remote computer. After turning it on, each connection will automatically save a picture on the machine and display it in recent connections. You can close and clear at any time."</string>
|
||||
<string name="text_b1c27820fec23edb" formatted="false">"High"</string>
|
||||
<string name="text_844b8cc8dff7c1d8" formatted="false">"Default"</string>
|
||||
<string name="text_4db8737054f3b0cc" formatted="false">"Off by default. When turned on, the screen will enter and remain in landscape orientation when the phone is connected; when turned off, it will follow the direction of the device. Tablets and multi-windows are not affected."</string>
|
||||
<string name="text_1184a97edd8e1646" formatted="false">"Right mouse button, press and drag, release to end dragging"</string>
|
||||
<string name="text_926eaa3af0b5e48e" formatted="false">"Left mouse button, press and drag, release to end dragging"</string>
|
||||
<string name="text_269f39a07b4a4e01" formatted="false">"Mouse control"</string>
|
||||
<string name="text_cba62aeeb4a63a23" formatted="false">"Mouse wheel, slide up and down to slide out of the key range"</string>
|
||||
<string name="text_9aa238fc6121dede" formatted="false">", packet loss rate "</string>
|
||||
<string name="text_0b5d16c21095fe10" formatted="false">", send "</string>
|
||||
<string name="text_ba9a792d063a8c86" formatted="false">", password saved"</string>
|
||||
<string name="text_f4c1f9d7896760a7" formatted="false">", receive "</string>
|
||||
<string name="text_42237b5ec70c26f3" formatted="false">", click Retry"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<locale android:name="en" />
|
||||
<locale android:name="zh-Hans" />
|
||||
<locale android:name="zh-Hant" />
|
||||
<locale android:name="ja" />
|
||||
<locale android:name="ko" />
|
||||
<locale android:name="de" />
|
||||
<locale android:name="fr" />
|
||||
<locale android:name="es" />
|
||||
<locale android:name="pt-BR" />
|
||||
<locale android:name="ru" />
|
||||
</locale-config>
|
||||
Reference in New Issue
Block a user