Merge remote-tracking branch 'origin/main' into dbkr/spatial_audio_ff_only
This commit is contained in:
commit
2d8c33d66d
4 changed files with 185 additions and 29 deletions
|
@ -133,6 +133,6 @@
|
|||
"Copy": "Копировать",
|
||||
"Allow analytics": "Разрешить аналитику",
|
||||
"Advanced": "Расширенные",
|
||||
"<0>Join call now</0><1>Or</1><2>Copy call link and join later</2>": "<0>Присоедениться к звонку сейчас</0><1>Or<1><2>Скопировать ссылку на звонок и присоедениться позже</2>",
|
||||
"<0>Join call now</0><1>Or</1><2>Copy call link and join later</2>": "<0>Присоединиться сейчас</0><1>или<1><2>Скопировать ссылку на звонок и присоединиться позже</2>",
|
||||
"{{name}} (Connecting...)": "{{name}} (Соединение...)"
|
||||
}
|
||||
|
|
141
public/locales/zh-Hans/app.json
Normal file
141
public/locales/zh-Hans/app.json
Normal file
|
@ -0,0 +1,141 @@
|
|||
{
|
||||
"Your recent calls": "最近通话",
|
||||
"You can't talk at the same time": "你不能在同一时间发言",
|
||||
"Yes, join call": "是,加入通话",
|
||||
"Whether to enable single-key keyboard shortcuts, e.g. 'm' to mute/unmute the mic.": "是否启用单键键盘快捷键,例如,'m'可使麦克风静音/取消静音。",
|
||||
"WebRTC is not supported or is being blocked in this browser.": "此浏览器不支持WebRTC或WebRTC被浏览器阻止。",
|
||||
"Walkie-talkie call name": "对讲机通话名称",
|
||||
"Walkie-talkie call": "对讲机通话",
|
||||
"Waiting for other participants…": "等待其他参与者……",
|
||||
"Waiting for network": "正在等待网络",
|
||||
"Video call name": "视频通话名称",
|
||||
"Video call": "视频通话",
|
||||
"Video": "视频",
|
||||
"Version: {{version}}": "版本:{{version}}",
|
||||
"Username": "用户名",
|
||||
"User menu": "用户菜单",
|
||||
"User ID": "用户ID",
|
||||
"Unmute microphone": "取消麦克风静音",
|
||||
"Turn on camera": "开启摄像头",
|
||||
"Turn off camera": "关闭摄像头",
|
||||
"This will send anonymised data (such as the duration of a call and the number of participants) to the Element Call team to help us optimise the application based on how it is used.": "这将向Element Call团队发送匿名数据(如通话的持续时间和参与者的数量),以帮助我们根据使用方式优化应用程序。",
|
||||
"This will make a speaker's audio seem as if it is coming from where their tile is positioned on screen. (Experimental feature: this may impact the stability of audio.)": "这将使发言人的音频看起来像是来自他们在屏幕上的位置。(实验性功能:这可能影响音频的稳定性)",
|
||||
"This site is protected by ReCAPTCHA and the Google <2>Privacy Policy</2> and <6>Terms of Service</6> apply.<9></9>By clicking \"Register\", you agree to our <12>Terms and conditions</12>": "本网站受reCaptcha保护,并适用Google<2>隐私政策</2>和<6>服务条款</6>。<9></9>点击\"注册\"则表明您同意我们的<12>条款和条件</12>",
|
||||
"This call already exists, would you like to join?": "该通话已存在,你想加入吗?",
|
||||
"Thanks! We'll get right on it.": "谢谢!我们会马上去做的。",
|
||||
"Talking…": "正在发言……",
|
||||
"Talk over speaker": "通过扬声器发言",
|
||||
"Take me Home": "返回主页",
|
||||
"Submitting feedback…": "正在提交反馈……",
|
||||
"Submit feedback": "提交反馈",
|
||||
"Stop sharing screen": "停止屏幕共享",
|
||||
"Spotlight": "聚焦模式",
|
||||
"Speaker {{n}}": "发言人 {{n}}",
|
||||
"Speaker": "发言人",
|
||||
"Spatial audio": "空间音频",
|
||||
"Single-key keyboard shortcuts": "单键键盘快捷方式",
|
||||
"Sign out": "注销登录",
|
||||
"Sign in": "登录",
|
||||
"Audio": "音频",
|
||||
"Another user on this call is having an issue. In order to better diagnose these issues we'd like to collect a debug log.": "这个通话中的另一个用户出现了问题。为了更好地诊断这些问题,我们想收集调试日志。",
|
||||
"Allow analytics": "允许进行分析",
|
||||
"Advanced": "偏好",
|
||||
"Accept microphone permissions to join the call.": "授予麦克风权限以加入通话。",
|
||||
"Accept camera/microphone permissions to join the call.": "授予摄像头/麦克风权限以加入通话。",
|
||||
"<0>Why not finish by setting up a password to keep your account?</0><1>You'll be able to keep your name and set an avatar for use on future calls</1>": "<0>为什么不设置一个密码来保留你的账户?</0><1>你将可以保留你的名字并设置一个头像,以便在未来的通话中使用。</1>",
|
||||
"<0>Oops, something's gone wrong.</0><1>Submitting debug logs will help us track down the problem.</1>": "<0>哎呀,出错了。</0><1>提交调试日志将有助于我们追踪问题。</1>",
|
||||
"<0>Join call now</0><1>Or</1><2>Copy call link and join later</2>": "<0>现在加入通话</0><1>或</1><2>复制通话链接并稍后加入</2>",
|
||||
"<0>Create an account</0> Or <2>Access as a guest</2>": "<0>创建账户</0> Or <2>以访客身份继续</2>",
|
||||
"<0>Already have an account?</0><1><0>Log in</0> Or <2>Access as a guest</2></1>": "<0>已有账户?</0><1><0>登录</0> Or <2>以访客身份继续</2></1>",
|
||||
"{{roomName}} - Walkie-talkie call": "{{roomName}} - 对讲机通话",
|
||||
"{{names}}, {{name}}": "{{names}}, {{name}}",
|
||||
"{{name}} is talking…": "{{name}}正在发言……",
|
||||
"{{name}} is presenting": "{{name}}正在展示",
|
||||
"{{name}} (Waiting for video...)": "{{name}}(等待视频……)",
|
||||
"{{name}} (Connecting...)": "{{name}} (正在连接……)",
|
||||
"{{displayName}}, your call is now ended": "{{displayName}},您的通话已结束",
|
||||
"{{count}} people connected|other": "{{count}}人已连接",
|
||||
"{{count}} people connected|one": "{{count}}人已连接",
|
||||
"Inspector": "检查器",
|
||||
"Show call inspector": "显示通话检查器",
|
||||
"Share screen": "屏幕共享",
|
||||
"Settings": "设置",
|
||||
"Sending…": "正在发送……",
|
||||
"Sending debug logs…": "正在发送调试日志……",
|
||||
"Send debug logs": "发送调试日志",
|
||||
"Select an option": "选择一个选项",
|
||||
"Saving…": "正在保存……",
|
||||
"Save": "保存",
|
||||
"Return to home screen": "返回主页",
|
||||
"Remove": "移除",
|
||||
"Release to stop": "松开后停止",
|
||||
"Release spacebar key to stop": "松开空格键停止",
|
||||
"Registering…": "正在注册……",
|
||||
"Register": "注册",
|
||||
"Recaptcha not loaded": "reCaptcha未加载",
|
||||
"Recaptcha dismissed": "reCaptcha验证失败",
|
||||
"Profile": "个人信息",
|
||||
"Press and hold to talk over {{name}}": "按住不放即可与 {{name}} 通话",
|
||||
"Press and hold to talk": "按住不放即可通话",
|
||||
"Press and hold spacebar to talk over {{name}}": "按住空格键,与 {{name}} 对话",
|
||||
"Press and hold spacebar to talk": "按住空格键发言",
|
||||
"Passwords must match": "密码必须匹配",
|
||||
"Password": "密码",
|
||||
"Other users are trying to join this call from incompatible versions. These users should ensure that they have refreshed their browsers:<1>{userLis}</1>": "其他用户正试图从不兼容的版本加入这一呼叫。这些用户应该确保已经刷新了浏览器:<1>{userLis}</1>",
|
||||
"Not registered yet? <2>Create an account</2>": "还没有注册? <2>创建账户<2>",
|
||||
"Not now, return to home screen": "暂不,先返回主页",
|
||||
"No": "否",
|
||||
"Mute microphone": "麦克风静音",
|
||||
"More menu": "更多",
|
||||
"More": "更多",
|
||||
"Microphone permissions needed to join the call.": "加入通话需要麦克风权限。",
|
||||
"Microphone {{n}}": "麦克风 {{n}}",
|
||||
"Microphone": "麦克风",
|
||||
"Login to your account": "登录你的账户",
|
||||
"Login": "登录",
|
||||
"Logging in…": "登录中……",
|
||||
"Local volume": "本地音量",
|
||||
"Loading…": "加载中……",
|
||||
"Loading room…": "加载房间中……",
|
||||
"Leave": "离开",
|
||||
"Join existing call?": "加入现有的通话?",
|
||||
"Join call now": "现在加入通话",
|
||||
"Join call": "加入通话",
|
||||
"Invite people": "邀请他人",
|
||||
"Invite": "邀请",
|
||||
"Incompatible versions!": "版本不兼容!",
|
||||
"Incompatible versions": "不兼容版本",
|
||||
"Include debug logs": "包含调试日志",
|
||||
"Home": "主页",
|
||||
"Having trouble? Help us fix it.": "遇到麻烦?帮助我们解决问题。",
|
||||
"Grid layout menu": "网格布局菜单",
|
||||
"Go": "开始",
|
||||
"Full screen": "全屏",
|
||||
"Freedom": "自由模式",
|
||||
"Fetching group call timed out.": "获取群组通话超时。",
|
||||
"Exit full screen": "退出全屏",
|
||||
"Element Call Home": "Element Call 主页",
|
||||
"Download debug logs": "下载调试日志",
|
||||
"Display name": "显示名称",
|
||||
"Developer": "开发者",
|
||||
"Details": "详情",
|
||||
"Description (optional)": "描述(可选)",
|
||||
"Debug log request": "调试日志请求",
|
||||
"Debug log": "调试日志",
|
||||
"Create account": "创建账户",
|
||||
"Copy and share this call link": "复制并分享该链接",
|
||||
"Copy": "复制",
|
||||
"Copied!": "已复制!",
|
||||
"Connection lost": "连接丢失",
|
||||
"Confirm password": "确认密码",
|
||||
"Close": "关闭",
|
||||
"By clicking \"Go\", you agree to our <2>Terms and conditions</2>": "点击开始则代表同意我们的<2>条款和条件<2>",
|
||||
"Change layout": "更改布局",
|
||||
"Camera/microphone permissions needed to join the call.": "加入通话需要摄像头/麦克风权限。",
|
||||
"Camera {{n}}": "摄像头 {{n}}",
|
||||
"Camera": "摄像头",
|
||||
"Call type menu": "通话类型菜单",
|
||||
"Call link copied": "链接已复制",
|
||||
"By clicking \"Join call now\", you agree to our <2>Terms and conditions</2>": "点击“现在加入”则表示同意我们的<2>条款与条件<2>",
|
||||
"Avatar": "头像"
|
||||
}
|
1
public/locales/zh-Hant/app.json
Normal file
1
public/locales/zh-Hant/app.json
Normal file
|
@ -0,0 +1 @@
|
|||
{}
|
|
@ -231,22 +231,23 @@ export function InCallView({
|
|||
return tileDescriptors;
|
||||
}, [client, participants, userMediaFeeds, activeSpeaker, screenshareFeeds]);
|
||||
|
||||
const reducedControls = boundsValid && bounds.width <= 400;
|
||||
const noControls = reducedControls && bounds.height <= 400;
|
||||
|
||||
// The maximised participant: either the participant that the user has
|
||||
// manually put in fullscreen, or the focused (active) participant if the
|
||||
// window is too small to show everyone
|
||||
const maximisedParticipant = useMemo(
|
||||
() =>
|
||||
fullscreenParticipant ??
|
||||
(boundsValid && bounds.height <= 400 && bounds.width <= 400
|
||||
(noControls
|
||||
? items.find((item) => item.focused) ??
|
||||
items.find((item) => item.callFeed) ??
|
||||
null
|
||||
: null),
|
||||
[fullscreenParticipant, boundsValid, bounds, items]
|
||||
[fullscreenParticipant, noControls, items]
|
||||
);
|
||||
|
||||
const reducedControls = boundsValid && bounds.width <= 400;
|
||||
|
||||
const renderAvatar = useCallback(
|
||||
(roomMember: RoomMember, width: number, height: number) => {
|
||||
const avatarUrl = roomMember.getMxcAvatarUrl();
|
||||
|
@ -353,6 +354,42 @@ export function InCallView({
|
|||
}
|
||||
}
|
||||
|
||||
let footer: JSX.Element | null;
|
||||
|
||||
if (noControls) {
|
||||
footer = null;
|
||||
} else if (reducedControls) {
|
||||
footer = (
|
||||
<div className={styles.footer}>
|
||||
<MicButton muted={microphoneMuted} onPress={toggleMicrophoneMuted} />
|
||||
<VideoButton muted={localVideoMuted} onPress={toggleLocalVideoMuted} />
|
||||
<HangupButton onPress={onLeave} />
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
footer = (
|
||||
<div className={styles.footer}>
|
||||
<MicButton muted={microphoneMuted} onPress={toggleMicrophoneMuted} />
|
||||
<VideoButton muted={localVideoMuted} onPress={toggleLocalVideoMuted} />
|
||||
{canScreenshare && !hideScreensharing && !isSafari && (
|
||||
<ScreenshareButton
|
||||
enabled={isScreensharing}
|
||||
onPress={toggleScreensharing}
|
||||
/>
|
||||
)}
|
||||
<OverflowMenu
|
||||
inCall
|
||||
roomIdOrAlias={roomIdOrAlias}
|
||||
groupCall={groupCall}
|
||||
showInvite={joinRule === JoinRule.Public}
|
||||
feedbackModalState={feedbackModalState}
|
||||
feedbackModalProps={feedbackModalProps}
|
||||
/>
|
||||
<HangupButton onPress={onLeave} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={containerClasses} ref={containerRef}>
|
||||
<>{audioElements}</>
|
||||
|
@ -372,30 +409,7 @@ export function InCallView({
|
|||
</Header>
|
||||
)}
|
||||
{renderContent()}
|
||||
<div className={styles.footer}>
|
||||
<MicButton muted={microphoneMuted} onPress={toggleMicrophoneMuted} />
|
||||
<VideoButton muted={localVideoMuted} onPress={toggleLocalVideoMuted} />
|
||||
{canScreenshare &&
|
||||
!hideScreensharing &&
|
||||
!isSafari &&
|
||||
!reducedControls && (
|
||||
<ScreenshareButton
|
||||
enabled={isScreensharing}
|
||||
onPress={toggleScreensharing}
|
||||
/>
|
||||
)}
|
||||
{!reducedControls && (
|
||||
<OverflowMenu
|
||||
inCall
|
||||
roomIdOrAlias={roomIdOrAlias}
|
||||
groupCall={groupCall}
|
||||
showInvite={joinRule === JoinRule.Public}
|
||||
feedbackModalState={feedbackModalState}
|
||||
feedbackModalProps={feedbackModalProps}
|
||||
/>
|
||||
)}
|
||||
<HangupButton onPress={onLeave} />
|
||||
</div>
|
||||
{footer}
|
||||
<GroupCallInspector
|
||||
client={client}
|
||||
groupCall={groupCall}
|
||||
|
|
Loading…
Reference in a new issue