I18next update (#4456)

* Removes unused translations.

* Fixes using translated strings.

* Moves using latest i18next versions and stop using compatibility modes.

* Sorts i18next options.

* Fixes defaultNS used by i18next.

This is used when translating html tags with data-i18n keys as attributes, used by jQuery-Impromptu.
This commit is contained in:
Дамян Минков 2019-07-22 11:10:25 +01:00 committed by GitHub
parent 0097360396
commit 9f4da84701
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 161 additions and 171 deletions

View File

@ -6,17 +6,15 @@
"disabled": "You can't invite people.", "disabled": "You can't invite people.",
"failedToAdd": "Failed to add participants", "failedToAdd": "Failed to add participants",
"footerText": "Dialing out is disabled.", "footerText": "Dialing out is disabled.",
"invite": "Invite",
"loading": "Searching for people and phone numbers", "loading": "Searching for people and phone numbers",
"loadingNumber": "Validating phone number", "loadingNumber": "Validating phone number",
"loadingPeople": "Searching for people to invite", "loadingPeople": "Searching for people to invite",
"noResults": "No matching search results", "noResults": "No matching search results",
"notAvailable": "You can't invite people.",
"noValidNumbers": "Please enter a phone number", "noValidNumbers": "Please enter a phone number",
"searchNumbers": "Add phone numbers", "searchNumbers": "Add phone numbers",
"searchPeople": "Search for people", "searchPeople": "Search for people",
"searchPeopleAndNumbers": "Search for people or add their phone numbers", "searchPeopleAndNumbers": "Search for people or add their phone numbers",
"telephone": "Telephone: __number__", "telephone": "Telephone: {{number}}",
"title": "Invite people to this meeting" "title": "Invite people to this meeting"
}, },
"audioDevices": { "audioDevices": {
@ -26,13 +24,11 @@
"speaker": "Speaker" "speaker": "Speaker"
}, },
"audioOnly": { "audioOnly": {
"audioOnly": "Audio only", "audioOnly": "Audio only"
"featureToggleDisabled": "Toggling of __feature__ is disabled while in audio only mode"
}, },
"calendarSync": { "calendarSync": {
"addMeetingURL": "Add a meeting link", "addMeetingURL": "Add a meeting link",
"confirmAddLink": "Do you want to add a Jitsi link to this event?", "confirmAddLink": "Do you want to add a Jitsi link to this event?",
"confirmAddLinkTitle": "Calendar",
"error": { "error": {
"appConfiguration": "Calendar integration is not properly configured.", "appConfiguration": "Calendar integration is not properly configured.",
"generic": "An error has occurred. Please check your calendar settings or try refreshing the calendar.", "generic": "An error has occurred. Please check your calendar settings or try refreshing the calendar.",
@ -49,7 +45,7 @@
"today": "Today" "today": "Today"
}, },
"chat": { "chat": {
"error": "Error: your message \"__originalText__\" was not sent. Reason: __error__", "error": "Error: your message \"{{originalText}}\" was not sent. Reason: {{error}}",
"messagebox": "Type a message", "messagebox": "Type a message",
"nickname": { "nickname": {
"popover": "Choose a nickname", "popover": "Choose a nickname",
@ -71,11 +67,11 @@
"DISCONNECTING": "Disconnecting", "DISCONNECTING": "Disconnecting",
"ERROR": "Error", "ERROR": "Error",
"FETCH_SESSION_ID": "Obtaining session-id...", "FETCH_SESSION_ID": "Obtaining session-id...",
"GET_SESSION_ID_ERROR": "Get session-id error: __code__", "GET_SESSION_ID_ERROR": "Get session-id error: {{code}}",
"GOT_SESSION_ID": "Obtaining session-id... Done", "GOT_SESSION_ID": "Obtaining session-id... Done",
"LOW_BANDWIDTH": "Video for __displayName__ has been turned off to save bandwidth", "LOW_BANDWIDTH": "Video for {{displayName}} has been turned off to save bandwidth",
"RECONNECTING": "A network problem occurred. Reconnecting...", "RECONNECTING": "A network problem occurred. Reconnecting...",
"USER_CONNECTION_INTERRUPTED": "__displayName__ is having connectivity issues..." "USER_CONNECTION_INTERRUPTED": "{{displayName}} is having connectivity issues..."
}, },
"connectionindicator": { "connectionindicator": {
"address": "Address:", "address": "Address:",
@ -85,14 +81,12 @@
"connectedTo": "Connected to:", "connectedTo": "Connected to:",
"e2e_rtt": "E2E RTT:", "e2e_rtt": "E2E RTT:",
"framerate": "Frame rate:", "framerate": "Frame rate:",
"header": "Connection data",
"less": "Show less", "less": "Show less",
"localaddress": "Local address:", "localaddress": "Local address:",
"localaddress_plural": "Local addresses:", "localaddress_plural": "Local addresses:",
"localport": "Local port:", "localport": "Local port:",
"localport_plural": "Local ports:", "localport_plural": "Local ports:",
"more": "Show more", "more": "Show more",
"na": "Come back here for connection information once the conference starts",
"packetloss": "Packet loss:", "packetloss": "Packet loss:",
"peer_to_peer": " (p2p)", "peer_to_peer": " (p2p)",
"quality": { "quality": {
@ -118,17 +112,16 @@
"yesterday": "Yesterday" "yesterday": "Yesterday"
}, },
"deepLinking": { "deepLinking": {
"appNotInstalled": "You need the __app__ mobile app to join this meeting on your phone.", "appNotInstalled": "You need the {{app}} mobile app to join this meeting on your phone.",
"description": "Nothing happened? We tried launching your meeting in the __app__ desktop app. Try again or launch it in the __app__ web app.", "description": "Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.",
"descriptionWithoutWeb": "Nothing happened? We tried launching your meeting in the __app__ desktop app.", "descriptionWithoutWeb": "Nothing happened? We tried launching your meeting in the {{app}} desktop app.",
"downloadApp": "Download the app", "downloadApp": "Download the app",
"launchWebButton": "Launch in web", "launchWebButton": "Launch in web",
"openApp": "Continue to the app", "openApp": "Continue to the app",
"title": "Launching your meeting in __app__...", "title": "Launching your meeting in {{app}}...",
"tryAgainButton": "Try again in desktop" "tryAgainButton": "Try again in desktop"
}, },
"defaultLink": "e.g. __url__", "defaultLink": "e.g. {{url}}",
"defaultNickname": "ex. Jane Pink",
"deviceError": { "deviceError": {
"cameraError": "Failed to access your camera", "cameraError": "Failed to access your camera",
"cameraPermission": "Error obtaining camera permission", "cameraPermission": "Error obtaining camera permission",
@ -136,7 +129,6 @@
"microphonePermission": "Error obtaining microphone permission" "microphonePermission": "Error obtaining microphone permission"
}, },
"deviceSelection": { "deviceSelection": {
"deviceSettings": "Device settings",
"noPermission": "Permission not granted", "noPermission": "Permission not granted",
"previewUnavailable": "Preview unavailable", "previewUnavailable": "Preview unavailable",
"selectADevice": "Select a device", "selectADevice": "Select a device",
@ -160,47 +152,39 @@
"cameraUnsupportedResolutionError": "Your camera does not support required video resolution.", "cameraUnsupportedResolutionError": "Your camera does not support required video resolution.",
"Cancel": "Cancel", "Cancel": "Cancel",
"close": "Close", "close": "Close",
"conferenceDisconnectMsg": "You may want to check your network connection. Reconnecting in __seconds__ sec...", "conferenceDisconnectMsg": "You may want to check your network connection. Reconnecting in {{seconds}} sec...",
"conferenceDisconnectTitle": "You have been disconnected.", "conferenceDisconnectTitle": "You have been disconnected.",
"conferenceReloadMsg": "We're trying to fix this. Reconnecting in __seconds__ sec...", "conferenceReloadMsg": "We're trying to fix this. Reconnecting in {{seconds}} sec...",
"conferenceReloadTitle": "Unfortunately, something went wrong.", "conferenceReloadTitle": "Unfortunately, something went wrong.",
"confirm": "Confirm", "confirm": "Confirm",
"confirmNo": "No", "confirmNo": "No",
"confirmYes": "Yes", "confirmYes": "Yes",
"connectError": "Oops! Something went wrong and we couldn't connect to the conference.", "connectError": "Oops! Something went wrong and we couldn't connect to the conference.",
"connectErrorWithMsg": "Oops! Something went wrong and we couldn't connect to the conference: __msg__", "connectErrorWithMsg": "Oops! Something went wrong and we couldn't connect to the conference: {{msg}}",
"connecting": "Connecting", "connecting": "Connecting",
"contactSupport": "Contact support", "contactSupport": "Contact support",
"copy": "Copy", "copy": "Copy",
"defaultError": "There was some kind of error",
"detectext": "Error when trying to detect desktopsharing extension.",
"dismiss": "Dismiss", "dismiss": "Dismiss",
"displayNameRequired": "Hi! Whats your name?", "displayNameRequired": "Hi! Whats your name?",
"done": "Done", "done": "Done",
"doNotShowMessageAgain": "Don't show this message again",
"enterDisplayName": "Please enter your name here", "enterDisplayName": "Please enter your name here",
"error": "Error", "error": "Error",
"externalInstallationMsg": "You need to install our desktop sharing extension.", "externalInstallationMsg": "You need to install our desktop sharing extension.",
"externalInstallationTitle": "Extension required", "externalInstallationTitle": "Extension required",
"failedpermissions": "Failed to obtain permissions to use the local microphone and/or camera.",
"feedbackHelp": "Your feedback will help us to improve our video experience.",
"feedbackQuestion": "Tell us about your call!",
"goToStore": "Go to the webstore", "goToStore": "Go to the webstore",
"gracefulShutdown": "Our service is currently down for maintenance. Please try again later.", "gracefulShutdown": "Our service is currently down for maintenance. Please try again later.",
"hungUp": "You hung up",
"IamHost": "I am the host", "IamHost": "I am the host",
"incorrectRoomLockPassword": "Incorrect password", "incorrectRoomLockPassword": "Incorrect password",
"incorrectPassword": "Incorrect username or password", "incorrectPassword": "Incorrect username or password",
"inlineInstallationMsg": "You need to install our desktop sharing extension.", "inlineInstallationMsg": "You need to install our desktop sharing extension.",
"inlineInstallExtension": "Install now", "inlineInstallExtension": "Install now",
"internalError": "Oops! Something went wrong. The following error occurred: __error__", "internalError": "Oops! Something went wrong. The following error occurred: {{error}}",
"internalErrorTitle": "Internal error", "internalErrorTitle": "Internal error",
"joinAgain": "Join again", "kickMessage": "You can contact {{participantDisplayName}} for more details.",
"kickMessage": "You can contact __participantDisplayName__ for more details.",
"kickParticipantButton": "Kick", "kickParticipantButton": "Kick",
"kickParticipantDialog": "Are you sure you want to kick this participant?", "kickParticipantDialog": "Are you sure you want to kick this participant?",
"kickParticipantTitle": "Kick this participant?", "kickParticipantTitle": "Kick this participant?",
"kickTitle": "Ouch! __participantDisplayName__ kicked you out of the meeting", "kickTitle": "Ouch! {{participantDisplayName}} kicked you out of the meeting",
"liveStreaming": "Live Streaming", "liveStreaming": "Live Streaming",
"liveStreamingDisabledForGuestTooltip": "Guests can't start live streaming.", "liveStreamingDisabledForGuestTooltip": "Guests can't start live streaming.",
"liveStreamingDisabledTooltip": "Start live stream disabled.", "liveStreamingDisabledTooltip": "Start live stream disabled.",
@ -222,23 +206,20 @@
"muteParticipantDialog": "Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.", "muteParticipantDialog": "Are you sure you want to mute this participant? You won't be able to unmute them, but they can unmute themselves at any time.",
"muteParticipantTitle": "Mute this participant?", "muteParticipantTitle": "Mute this participant?",
"Ok": "Ok", "Ok": "Ok",
"oops": "Oops!",
"passwordLabel": "$t(lockRoomPasswordUppercase)", "passwordLabel": "$t(lockRoomPasswordUppercase)",
"passwordNotSupported": "Setting a meeting $t(lockRoomPassword) is not supported.", "passwordNotSupported": "Setting a meeting $t(lockRoomPassword) is not supported.",
"passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) not supported", "passwordNotSupportedTitle": "$t(lockRoomPasswordUppercase) not supported",
"passwordRequired": "$t(lockRoomPasswordUppercase) required", "passwordRequired": "$t(lockRoomPasswordUppercase) required",
"permissionDenied": "Permission Denied",
"popupError": "Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser's security settings and try again.", "popupError": "Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser's security settings and try again.",
"popupErrorTitle": "Pop-up blocked", "popupErrorTitle": "Pop-up blocked",
"recording": "Recording", "recording": "Recording",
"recordingDisabledForGuestTooltip": "Guests can't start recordings.", "recordingDisabledForGuestTooltip": "Guests can't start recordings.",
"recordingDisabledTooltip": "Start recording disabled.", "recordingDisabledTooltip": "Start recording disabled.",
"recordingToken": "Enter recording token",
"rejoinNow": "Rejoin now", "rejoinNow": "Rejoin now",
"remoteControlAllowedMessage": "__user__ accepted your remote control request!", "remoteControlAllowedMessage": "{{user}} accepted your remote control request!",
"remoteControlDeniedMessage": "__user__ rejected your remote control request!", "remoteControlDeniedMessage": "{{user}} rejected your remote control request!",
"remoteControlErrorMessage": "An error occurred while trying to request remote control permissions from __user__!", "remoteControlErrorMessage": "An error occurred while trying to request remote control permissions from {{user}}!",
"remoteControlRequestMessage": "Will you allow __user__ to remotely control your desktop?", "remoteControlRequestMessage": "Will you allow {{user}} to remotely control your desktop?",
"remoteControlShareScreenWarning": "Note that if you press \"Allow\" you will share your screen!", "remoteControlShareScreenWarning": "Note that if you press \"Allow\" you will share your screen!",
"remoteControlStopMessage": "The remote control session ended!", "remoteControlStopMessage": "The remote control session ended!",
"remoteControlTitle": "Remote desktop control", "remoteControlTitle": "Remote desktop control",
@ -247,9 +228,8 @@
"removeSharedVideoMsg": "Are you sure you would like to remove your shared video?", "removeSharedVideoMsg": "Are you sure you would like to remove your shared video?",
"removeSharedVideoTitle": "Remove shared video", "removeSharedVideoTitle": "Remove shared video",
"reservationError": "Reservation system error", "reservationError": "Reservation system error",
"reservationErrorMsg": "Error code: __code__, message: __msg__", "reservationErrorMsg": "Error code: {{code}}, message: {{msg}}",
"retry": "Retry", "retry": "Retry",
"Save": "Save",
"screenSharingFailedToInstall": "Oops! Your screen sharing extension failed to install.", "screenSharingFailedToInstall": "Oops! Your screen sharing extension failed to install.",
"screenSharingFailedToInstallTitle": "Screen sharing extension failed to install", "screenSharingFailedToInstallTitle": "Screen sharing extension failed to install",
"screenSharingFirefoxPermissionDeniedError": "Something went wrong while we were trying to share your screen. Please make sure that you have given us permission to do so. ", "screenSharingFirefoxPermissionDeniedError": "Something went wrong while we were trying to share your screen. Please make sure that you have given us permission to do so. ",
@ -263,9 +243,6 @@
"shareYourScreen": "Share your screen", "shareYourScreen": "Share your screen",
"shareYourScreenDisabled": "Screen sharing disabled.", "shareYourScreenDisabled": "Screen sharing disabled.",
"shareYourScreenDisabledForGuest": "Guests can't screen share.", "shareYourScreenDisabledForGuest": "Guests can't screen share.",
"SLDFailure": "Oops! Something went wrong and we failed to mute! (SLD Failure)",
"sorryFeedback": "We're sorry to hear that. Would you like to tell us more?",
"SRDFailure": "Oops! Something went wrong and we failed to stop video! (SRD Failure)",
"startLiveStreaming": "Start live stream", "startLiveStreaming": "Start live stream",
"startRecording": "Start recording", "startRecording": "Start recording",
"startRemoteControlErrorMessage": "An error occurred while trying to start the remote control session!", "startRemoteControlErrorMessage": "An error occurred while trying to start the remote control session!",
@ -275,23 +252,21 @@
"stopStreamingWarning": "Are you sure you would like to stop the live streaming?", "stopStreamingWarning": "Are you sure you would like to stop the live streaming?",
"streamKey": "Live stream key", "streamKey": "Live stream key",
"Submit": "Submit", "Submit": "Submit",
"thankYou": "Thank you for using __appName__!", "thankYou": "Thank you for using {{appName}}!",
"token": "token", "token": "token",
"tokenAuthFailed": "Sorry, you're not allowed to join this call.", "tokenAuthFailed": "Sorry, you're not allowed to join this call.",
"tokenAuthFailedTitle": "Authentication failed", "tokenAuthFailedTitle": "Authentication failed",
"transcribing": "Transcribing", "transcribing": "Transcribing",
"unableToSwitch": "Unable to switch video stream.",
"unlockRoom": "Remove meeting $t(lockRoomPassword)", "unlockRoom": "Remove meeting $t(lockRoomPassword)",
"userPassword": "user password", "userPassword": "user password",
"WaitForHostMsg": "The conference <b>__room__</b> has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.", "WaitForHostMsg": "The conference <b>{{room}}</b> has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.",
"WaitForHostMsgWOk": "The conference <b>__room__</b> has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.", "WaitForHostMsgWOk": "The conference <b>{{room}}</b> has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.",
"WaitingForHost": "Waiting for the host ...", "WaitingForHost": "Waiting for the host ...",
"warning": "Warning",
"Yes": "Yes", "Yes": "Yes",
"yourEntireScreen": "Your entire screen" "yourEntireScreen": "Your entire screen"
}, },
"dialOut": { "dialOut": {
"statusMessage": "is now __status__" "statusMessage": "is now {{status}}"
}, },
"feedback": { "feedback": {
"average": "Average", "average": "Average",
@ -322,12 +297,12 @@
"dialInSummaryError": "Error fetching dial-in info now. Please try again later.", "dialInSummaryError": "Error fetching dial-in info now. Please try again later.",
"dialInTollFree": "Toll Free", "dialInTollFree": "Toll Free",
"genericError": "Whoops, something went wrong.", "genericError": "Whoops, something went wrong.",
"inviteLiveStream": "To view the live stream of this meeting, click this link: __url__", "inviteLiveStream": "To view the live stream of this meeting, click this link: {{url}}",
"invitePhone": "To join by phone instead, tap this: __number__,,__conferenceID__#\n", "invitePhone": "To join by phone instead, tap this: {{number}},,{{conferenceID}}#\n",
"invitePhoneAlternatives": "Looking for a different dial-in number?\nSee meeting dial-in numbers: __url__\n\n\nIf also dialing-in through a room phone, join without connecting to audio: __silentUrl__", "invitePhoneAlternatives": "Looking for a different dial-in number?\nSee meeting dial-in numbers: {{url}}\n\n\nIf also dialing-in through a room phone, join without connecting to audio: {{silentUrl}}",
"inviteURLFirstPartGeneral": "You are invited to join a meeting.", "inviteURLFirstPartGeneral": "You are invited to join a meeting.",
"inviteURLFirstPartPersonal": "__name__ is inviting you to a meeting.\n", "inviteURLFirstPartPersonal": "{{name}} is inviting you to a meeting.\n",
"inviteURLSecondPart": "\nJoin the meeting:\n__url__\n", "inviteURLSecondPart": "\nJoin the meeting:\n{{url}}\n",
"liveStreamURL": "Live stream:", "liveStreamURL": "Live stream:",
"moreNumbers": "More numbers", "moreNumbers": "More numbers",
"noNumbers": "No dial-in numbers.", "noNumbers": "No dial-in numbers.",
@ -353,7 +328,6 @@
"support": "Support", "support": "Support",
"supportMsg": "If this keeps happening, reach out to" "supportMsg": "If this keeps happening, reach out to"
}, },
"inviteUrlDefaultMsg": "Your conference is currently being created...",
"keyboardShortcuts": { "keyboardShortcuts": {
"focusLocal": "Focus on your video", "focusLocal": "Focus on your video",
"focusRemote": "Focus on another person's video", "focusRemote": "Focus on another person's video",
@ -373,14 +347,13 @@
"liveStreaming": { "liveStreaming": {
"busy": "We're working on freeing streaming resources. Please try again in a few minutes.", "busy": "We're working on freeing streaming resources. Please try again in a few minutes.",
"busyTitle": "All streamers are currently busy", "busyTitle": "All streamers are currently busy",
"buttonTooltip": "Start / Stop Live Stream",
"changeSignIn": "Switch accounts.", "changeSignIn": "Switch accounts.",
"choose": "Choose a live stream", "choose": "Choose a live stream",
"chooseCTA": "Choose a streaming option. You're currently logged in as __email__.", "chooseCTA": "Choose a streaming option. You're currently logged in as {{email}}.",
"enterStreamKey": "Enter your YouTube live stream key here.", "enterStreamKey": "Enter your YouTube live stream key here.",
"error": "Live Streaming failed. Please try again.", "error": "Live Streaming failed. Please try again.",
"errorAPI": "An error occurred while accessing your YouTube broadcasts. Please try logging in again.", "errorAPI": "An error occurred while accessing your YouTube broadcasts. Please try logging in again.",
"errorLiveStreamNotEnabled": "Live Streaming is not enabled on __email__. Please enable live streaming or log into an account with live streaming enabled.", "errorLiveStreamNotEnabled": "Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.",
"expandedOff": "The live streaming has stopped", "expandedOff": "The live streaming has stopped",
"expandedOn": "The meeting is currently being streamed to YouTube.", "expandedOn": "The meeting is currently being streamed to YouTube.",
"expandedPending": "The live streaming is being started...", "expandedPending": "The live streaming is being started...",
@ -415,8 +388,8 @@
"me": "Me", "me": "Me",
"messages": { "messages": {
"engaged": "Local recording engaged.", "engaged": "Local recording engaged.",
"finished": "Recording session __token__ finished. Please send the recorded file to the moderator.", "finished": "Recording session {{token}} finished. Please send the recorded file to the moderator.",
"finishedModerator": "Recording session __token__ finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.", "finishedModerator": "Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.",
"notModerator": "You are not the moderator. You cannot start or stop local recording." "notModerator": "You are not the moderator. You cannot start or stop local recording."
}, },
"moderator": "Moderator", "moderator": "Moderator",
@ -432,30 +405,30 @@
"lockRoomPasswordUppercase": "Password", "lockRoomPasswordUppercase": "Password",
"me": "me", "me": "me",
"notify": { "notify": {
"connectedOneMember": "__name__ joined the meeting", "connectedOneMember": "{{name}} joined the meeting",
"connectedThreePlusMembers": "__name__ and __count__ others joined the meeting", "connectedThreePlusMembers": "{{name}} and {{count}} others joined the meeting",
"connectedTwoMembers": "__first__ and __second__ joined the meeting", "connectedTwoMembers": "{{first}} and {{second}} joined the meeting",
"disconnected": "disconnected", "disconnected": "disconnected",
"focus": "Conference focus", "focus": "Conference focus",
"focusFail": "__component__ not available - retry in __ms__ sec", "focusFail": "{{component}} not available - retry in {{ms}} sec",
"grantedTo": "Moderator rights granted to __to__!", "grantedTo": "Moderator rights granted to {{to}}!",
"invitedOneMember": "__name__ has been invited", "invitedOneMember": "{{name}} has been invited",
"invitedThreePlusMembers": "__name__ and __count__ others have been invited", "invitedThreePlusMembers": "{{name}} and {{count}} others have been invited",
"invitedTwoMembers": "__first__ and __second__ have been invited", "invitedTwoMembers": "{{first}} and {{second}} have been invited",
"kickParticipant": "__kicked__ was kicked by __kicker__", "kickParticipant": "{{kicked}} was kicked by {{kicker}}",
"me": "Me", "me": "Me",
"moderator": "Moderator rights granted!", "moderator": "Moderator rights granted!",
"muted": "You have started the conversation muted.", "muted": "You have started the conversation muted.",
"mutedTitle": "You're muted!", "mutedTitle": "You're muted!",
"mutedRemotelyTitle": "You have been muted by __participantDisplayName__!", "mutedRemotelyTitle": "You have been muted by {{participantDisplayName}}!",
"mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.", "mutedRemotelyDescription": "You can always unmute when you're ready to speak. Mute back when you're done to keep noise away from the meeting.",
"passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant", "passwordRemovedRemotely": "$t(lockRoomPasswordUppercase) removed by another participant",
"passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant", "passwordSetRemotely": "$t(lockRoomPasswordUppercase) set by another participant",
"raisedHand": "__name__ would like to speak.", "raisedHand": "{{name}} would like to speak.",
"somebody": "Somebody", "somebody": "Somebody",
"startSilentTitle": "You joined with no audio output!", "startSilentTitle": "You joined with no audio output!",
"startSilentDescription": "Rejoin the meeting to enable audio", "startSilentDescription": "Rejoin the meeting to enable audio",
"suboptimalExperienceDescription": "Eer... we are afraid your experience with __appName__ isn't going to be that great here. We are looking for ways to improve this but, until then, please try using one of the <a href='static/recommendedBrowsers.html' target='_blank'>fully supported browsers</a>.", "suboptimalExperienceDescription": "Eer... we are afraid your experience with {{appName}} isn't going to be that great here. We are looking for ways to improve this but, until then, please try using one of the <a href='static/recommendedBrowsers.html' target='_blank'>fully supported browsers</a>.",
"suboptimalExperienceTitle": "Browser Warning", "suboptimalExperienceTitle": "Browser Warning",
"unmute": "Unmute", "unmute": "Unmute",
"newDeviceCameraTitle": "New camera detected", "newDeviceCameraTitle": "New camera detected",
@ -463,7 +436,7 @@
"newDeviceAction": "Use" "newDeviceAction": "Use"
}, },
"passwordSetRemotely": "set by another participant", "passwordSetRemotely": "set by another participant",
"passwordDigitsOnly": "Up to __number__ digits", "passwordDigitsOnly": "Up to {{number}} digits",
"poweredby": "powered by", "poweredby": "powered by",
"presenceStatus": { "presenceStatus": {
"busy": "Busy", "busy": "Busy",
@ -485,17 +458,12 @@
"setEmailLabel": "Set your gravatar email", "setEmailLabel": "Set your gravatar email",
"title": "Profile" "title": "Profile"
}, },
"raisedHand": "Would like to speak",
"recentList": {
"joinPastMeeting": "Join a past meeting"
},
"recording": { "recording": {
"authDropboxText": "Upload to Dropbox", "authDropboxText": "Upload to Dropbox",
"availableSpace": "Available space: __spaceLeft__ MB (approximately __duration__ minutes of recording)", "availableSpace": "Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)",
"beta": "BETA", "beta": "BETA",
"busy": "We're working on freeing recording resources. Please try again in a few minutes.", "busy": "We're working on freeing recording resources. Please try again in a few minutes.",
"busyTitle": "All recorders are currently busy", "busyTitle": "All recorders are currently busy",
"buttonTooltip": "Start / Stop recording",
"error": "Recording failed. Please try again.", "error": "Recording failed. Please try again.",
"expandedOff": "Recording has stopped", "expandedOff": "Recording has stopped",
"expandedOn": "The meeting is currently being recorded.", "expandedOn": "The meeting is currently being recorded.",
@ -503,7 +471,7 @@
"failedToStart": "Recording failed to start", "failedToStart": "Recording failed to start",
"fileSharingdescription": "Share recording with meeting participants", "fileSharingdescription": "Share recording with meeting participants",
"live": "LIVE", "live": "LIVE",
"loggedIn": "Logged in as __userName__", "loggedIn": "Logged in as {{userName}}",
"off": "Recording stopped", "off": "Recording stopped",
"on": "Recording", "on": "Recording",
"pending": "Preparing to record the meeting...", "pending": "Preparing to record the meeting...",
@ -512,27 +480,24 @@
"serviceName": "Recording service", "serviceName": "Recording service",
"signIn": "Sign in", "signIn": "Sign in",
"signOut": "Sign out", "signOut": "Sign out",
"startRecordingBody": "Are you sure you would like to start recording?", "unavailable": "Oops! The {{serviceName}} is currently unavailable. We're working on resolving the issue. Please try again later.",
"unavailable": "Oops! The __serviceName__ is currently unavailable. We're working on resolving the issue. Please try again later.",
"unavailableTitle": "Recording unavailable" "unavailableTitle": "Recording unavailable"
}, },
"sectionList": { "sectionList": {
"pullToRefresh": "Pull to refresh" "pullToRefresh": "Pull to refresh"
}, },
"settings": { "settings": {
"audioVideo": "AUDIO AND VIDEO",
"calendar": { "calendar": {
"about": "The __appName__ calendar integration is used to securely access your calendar so it can read upcoming events.", "about": "The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.",
"disconnect": "Disconnect", "disconnect": "Disconnect",
"microsoftSignIn": "Sign in with Microsoft", "microsoftSignIn": "Sign in with Microsoft",
"signedIn": "Currently accessing calendar events for __email__. Click the Disconnect button below to stop accessing calendar events.", "signedIn": "Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.",
"title": "Calendar" "title": "Calendar"
}, },
"cameraAndMic": "Camera and microphone",
"devices": "Devices", "devices": "Devices",
"followMe": "Everyone follows me", "followMe": "Everyone follows me",
"language": "Language", "language": "Language",
"loggedIn": "Logged in as __name__", "loggedIn": "Logged in as {{name}}",
"moderator": "Moderator", "moderator": "Moderator",
"more": "More", "more": "More",
"name": "Name", "name": "Name",
@ -542,8 +507,7 @@
"selectMic": "Microphone", "selectMic": "Microphone",
"startAudioMuted": "Everyone starts muted", "startAudioMuted": "Everyone starts muted",
"startVideoMuted": "Everyone starts hidden", "startVideoMuted": "Everyone starts hidden",
"title": "Settings", "title": "Settings"
"update": "Update"
}, },
"settingsView": { "settingsView": {
"alertOk": "OK", "alertOk": "OK",
@ -561,21 +525,21 @@
"version": "Version" "version": "Version"
}, },
"share": { "share": {
"dialInfoText": "\n\n=====\n\nJust want to dial in on your phone?\n\n__defaultDialInNumber__Click this link to see the dial in phone numbers for this meeting\n__dialInfoPageUrl__", "dialInfoText": "\n\n=====\n\nJust want to dial in on your phone?\n\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\n{{dialInfoPageUrl}}",
"mainText": "Click the following link to join the meeting:\n__roomUrl__" "mainText": "Click the following link to join the meeting:\n{{roomUrl}}"
}, },
"speaker": "Speaker", "speaker": "Speaker",
"speakerStats": { "speakerStats": {
"hours": "__count__h", "hours": "{{count}}h",
"minutes": "__count__m", "minutes": "{{count}}m",
"name": "Name", "name": "Name",
"seconds": "__count__s", "seconds": "{{count}}s",
"speakerStats": "Speaker Stats", "speakerStats": "Speaker Stats",
"speakerTime": "Speaker Time" "speakerTime": "Speaker Time"
}, },
"startupoverlay": { "startupoverlay": {
"policyText": " ", "policyText": " ",
"title": "__app__ needs to use your microphone and camera." "title": "{{app}} needs to use your microphone and camera."
}, },
"suspendedoverlay": { "suspendedoverlay": {
"rejoinKeyTitle": "Rejoin", "rejoinKeyTitle": "Rejoin",
@ -618,33 +582,25 @@
"videoblur": "Toggle video blur" "videoblur": "Toggle video blur"
}, },
"addPeople": "Add people to your call", "addPeople": "Add people to your call",
"audioonly": "Enable / Disable audio only mode",
"audioOnlyOff": "Disable audio only mode", "audioOnlyOff": "Disable audio only mode",
"audioOnlyOn": "Enable audio only mode", "audioOnlyOn": "Enable audio only mode",
"audioRoute": "Select the sound device", "audioRoute": "Select the sound device",
"authenticate": "Authenticate", "authenticate": "Authenticate",
"callQuality": "Manage video quality", "callQuality": "Manage video quality",
"cameraDisabled": "Camera is not available",
"chat": "Open / Close chat", "chat": "Open / Close chat",
"closeChat": "Close chat", "closeChat": "Close chat",
"documentClose": "Close shared document", "documentClose": "Close shared document",
"documentOpen": "Open shared document", "documentOpen": "Open shared document",
"enterFullScreen": "View full screen", "enterFullScreen": "View full screen",
"enterTileView": "Enter tile view", "enterTileView": "Enter tile view",
"etherpad": "Open / Close shared document",
"exitFullScreen": "Exit full screen", "exitFullScreen": "Exit full screen",
"exitTileView": "Exit tile view", "exitTileView": "Exit tile view",
"feedback": "Leave feedback", "feedback": "Leave feedback",
"filmstrip": "Show / Hide videos",
"fullscreen": "View / Exit full screen",
"hangup": "Leave", "hangup": "Leave",
"invite": "Invite people", "invite": "Invite people",
"lock": "Lock / Unlock room",
"login": "Login", "login": "Login",
"logout": "Logout", "logout": "Logout",
"lowerYourHand": "Lower your hand", "lowerYourHand": "Lower your hand",
"micDisabled": "Microphone is not available",
"micMutedPopup": "Your microphone has been muted so that you would fully enjoy your shared video.",
"moreActions": "More actions", "moreActions": "More actions",
"mute": "Mute / Unmute", "mute": "Mute / Unmute",
"openChat": "Open chat", "openChat": "Open chat",
@ -654,10 +610,8 @@
"raiseYourHand": "Raise your hand", "raiseYourHand": "Raise your hand",
"Settings": "Settings", "Settings": "Settings",
"sharedvideo": "Share a YouTube video", "sharedvideo": "Share a YouTube video",
"sharedVideoMutedPopup": "Your shared video has been muted so that you can talk to the other participants.",
"shareRoom": "Invite someone", "shareRoom": "Invite someone",
"shortcuts": "View shortcuts", "shortcuts": "View shortcuts",
"sip": "Call SIP number",
"speakerStats": "Speaker stats", "speakerStats": "Speaker stats",
"startScreenSharing": "Start screen sharing", "startScreenSharing": "Start screen sharing",
"startSubtitles": "Start subtitles", "startSubtitles": "Start subtitles",
@ -667,7 +621,6 @@
"talkWhileMutedPopup": "Trying to speak? You are muted.", "talkWhileMutedPopup": "Trying to speak? You are muted.",
"tileViewToggle": "Toggle tile view", "tileViewToggle": "Toggle tile view",
"toggleCamera": "Toggle camera", "toggleCamera": "Toggle camera",
"unableToUnmutePopup": "You cannot un-mute while the shared video is on.",
"videomute": "Start / Stop camera", "videomute": "Start / Stop camera",
"startvideoblur": "Blur my background", "startvideoblur": "Blur my background",
"stopvideoblur": "Disable background blur" "stopvideoblur": "Disable background blur"
@ -699,36 +652,29 @@
"videoSIPGW": { "videoSIPGW": {
"busy": "We're working on freeing resources. Please try again in a few minutes.", "busy": "We're working on freeing resources. Please try again in a few minutes.",
"busyTitle": "The Room service is currently busy", "busyTitle": "The Room service is currently busy",
"errorAlreadyInvited": "__displayName__ already invited", "errorAlreadyInvited": "{{displayName}} already invited",
"errorInvite": "Conference not established yet. Please try again later.", "errorInvite": "Conference not established yet. Please try again later.",
"errorInviteFailed": "We're working on resolving the issue. Please try again later.", "errorInviteFailed": "We're working on resolving the issue. Please try again later.",
"errorInviteFailedTitle": "Inviting __displayName__ failed", "errorInviteFailedTitle": "Inviting {{displayName}} failed",
"errorInviteTitle": "Error inviting room", "errorInviteTitle": "Error inviting room",
"pending": "__displayName__ has been invited", "pending": "{{displayName}} has been invited"
"serviceName": "Room service",
"unavailableTitle": "Room service unavailable"
}, },
"videoStatus": { "videoStatus": {
"audioOnly": "AUD", "audioOnly": "AUD",
"audioOnlyExpanded": "You are in audio only mode. This mode saves bandwidth but you won't see videos of others.", "audioOnlyExpanded": "You are in audio only mode. This mode saves bandwidth but you won't see videos of others.",
"callQuality": "Video Quality", "callQuality": "Video Quality",
"hd": "HD", "hd": "HD",
"hdTooltip": "Viewing high definition video",
"highDefinition": "High definition", "highDefinition": "High definition",
"labelTooiltipNoVideo": "No video", "labelTooiltipNoVideo": "No video",
"labelTooltipAudioOnly": "Audio-only mode enabled", "labelTooltipAudioOnly": "Audio-only mode enabled",
"labelTooltipVideo": "Current video quality",
"ld": "LD", "ld": "LD",
"ldTooltip": "Viewing low definition video",
"lowDefinition": "Low definition", "lowDefinition": "Low definition",
"onlyAudioAvailable": "Only audio is available", "onlyAudioAvailable": "Only audio is available",
"onlyAudioSupported": "We only support audio in this browser.", "onlyAudioSupported": "We only support audio in this browser.",
"p2pEnabled": "Peer to Peer Enabled", "p2pEnabled": "Peer to Peer Enabled",
"p2pVideoQualityDescription": "In peer to peer mode, received video quality can only be toggled between high and audio only. Other settings will not be honored until peer to peer is exited.", "p2pVideoQualityDescription": "In peer to peer mode, received video quality can only be toggled between high and audio only. Other settings will not be honored until peer to peer is exited.",
"qualityButtonTip": "Change received video quality",
"recHighDefinitionOnly": "Will prefer high definition.", "recHighDefinitionOnly": "Will prefer high definition.",
"sd": "SD", "sd": "SD",
"sdTooltip": "Viewing standard definition video",
"standardDefinition": "Standard definition" "standardDefinition": "Standard definition"
}, },
"videothumbnail": { "videothumbnail": {
@ -747,14 +693,14 @@
"join": "Tap to join", "join": "Tap to join",
"roomname": "Enter room name" "roomname": "Enter room name"
}, },
"appDescription": "Go ahead, video chat with the whole team. In fact, invite everyone you know. __app__ is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.", "appDescription": "Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.",
"audioVideoSwitch": { "audioVideoSwitch": {
"audio": "Voice", "audio": "Voice",
"video": "Video" "video": "Video"
}, },
"calendar": "Calendar", "calendar": "Calendar",
"connectCalendarButton": "Connect your calendar", "connectCalendarButton": "Connect your calendar",
"connectCalendarText": "Connect your calendar to view all your meetings in __app__. Plus, add __provider__ meetings to your calendar and start them with one click.", "connectCalendarText": "Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.",
"enterRoomTitle": "Start a new meeting", "enterRoomTitle": "Start a new meeting",
"go": "GO", "go": "GO",
"join": "JOIN", "join": "JOIN",
@ -763,7 +709,7 @@
"recentList": "Recent", "recentList": "Recent",
"recentListDelete": "Delete", "recentListDelete": "Delete",
"recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.", "recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",
"reducedUIText": "Welcome to __app__!", "reducedUIText": "Welcome to {{app}}!",
"roomname": "Enter room name", "roomname": "Enter room name",
"roomnameHint": "Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.", "roomnameHint": "Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.",
"sendFeedback": "Send feedback", "sendFeedback": "Send feedback",

91
package-lock.json generated
View File

@ -7643,11 +7643,6 @@
"minimalistic-crypto-utils": "^1.0.1" "minimalistic-crypto-utils": "^1.0.1"
} }
}, },
"hoist-non-react-statics": {
"version": "2.5.5",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
"integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
},
"hosted-git-info": { "hosted-git-info": {
"version": "2.5.0", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
@ -8106,19 +8101,55 @@
"integrity": "sha512-NkT3lRiw7D4kKtSAVjVdHCvGlc2UOe0ALKa9IfEx0LkEDf0q3YgjP/veVk0d/OZ7yqUNzV8aJP4lJc6RPj++Gw==" "integrity": "sha512-NkT3lRiw7D4kKtSAVjVdHCvGlc2UOe0ALKa9IfEx0LkEDf0q3YgjP/veVk0d/OZ7yqUNzV8aJP4lJc6RPj++Gw=="
}, },
"i18next": { "i18next": {
"version": "8.4.3", "version": "17.0.6",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-8.4.3.tgz", "resolved": "https://registry.npmjs.org/i18next/-/i18next-17.0.6.tgz",
"integrity": "sha1-Nrb/UWxPmSAQ7tzOJKNsRgnox9w=" "integrity": "sha512-bdNhzhcM6RG5m82RypVguCrAQNie/ycxW0Q5C6K9UDWD5hqApZfdJFbj4Ikz9jxIR+Ja1eg0yCQLhlCT+opwIg==",
"requires": {
"@babel/runtime": "^7.3.1"
},
"dependencies": {
"@babel/runtime": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.4.tgz",
"integrity": "sha512-Na84uwyImZZc3FKf4aUF1tysApzwf3p2yuFBIyBfbzT5glzKTdvYI4KVW4kcgjrzoGUjC7w3YyCHcJKaRxsr2Q==",
"requires": {
"regenerator-runtime": "^0.13.2"
}
},
"regenerator-runtime": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
"integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
}
}
}, },
"i18next-browser-languagedetector": { "i18next-browser-languagedetector": {
"version": "2.0.0", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-2.0.0.tgz", "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-3.0.1.tgz",
"integrity": "sha1-TZ3yvRpd7aPIwKbT22LVA4i57t0=" "integrity": "sha512-WFjPLNPWl62uu07AHY2g+KsC9qz0tyMq+OZEB/H7N58YKL/JLiCz9U709gaR20Mule/Ppn+uyfVx5REJJjn1HA=="
}, },
"i18next-xhr-backend": { "i18next-xhr-backend": {
"version": "1.4.2", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/i18next-xhr-backend/-/i18next-xhr-backend-1.4.2.tgz", "resolved": "https://registry.npmjs.org/i18next-xhr-backend/-/i18next-xhr-backend-3.0.0.tgz",
"integrity": "sha1-eqdmKSxGyoP/ZHe7VQdLNjpkamI=" "integrity": "sha512-Pi/X91Zk2nEqdEHTV+FG6VeMHRcMcPKRsYW/A0wlaCfKsoJc3TI7A75Tqse/d5LVGN2Ymzx0FT+R+gLag9Eb2g==",
"requires": {
"@babel/runtime": "^7.4.5"
},
"dependencies": {
"@babel/runtime": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.4.tgz",
"integrity": "sha512-Na84uwyImZZc3FKf4aUF1tysApzwf3p2yuFBIyBfbzT5glzKTdvYI4KVW4kcgjrzoGUjC7w3YyCHcJKaRxsr2Q==",
"requires": {
"regenerator-runtime": "^0.13.2"
}
},
"regenerator-runtime": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
"integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
}
}
}, },
"iconv-lite": { "iconv-lite": {
"version": "0.4.19", "version": "0.4.19",
@ -8807,9 +8838,9 @@
"integrity": "sha1-5lrOBg2M2tTQ5d94FdDXA55RdFA=" "integrity": "sha1-5lrOBg2M2tTQ5d94FdDXA55RdFA="
}, },
"jquery-i18next": { "jquery-i18next": {
"version": "1.2.0", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/jquery-i18next/-/jquery-i18next-1.2.0.tgz", "resolved": "https://registry.npmjs.org/jquery-i18next/-/jquery-i18next-1.2.1.tgz",
"integrity": "sha1-jQMDa7ip1v090MX7H+jK0jO94qM=" "integrity": "sha512-UNcw3rgxoKjGEg4w23FEn2h3OlPJU7rPzsgDuXDBZktIzeiVbJohs9Cv9hj8oP8KNfBRKOoErL/OVxg2FaAR4g=="
}, },
"js-base64": { "js-base64": {
"version": "2.4.3", "version": "2.4.3",
@ -12138,13 +12169,27 @@
} }
}, },
"react-i18next": { "react-i18next": {
"version": "7.13.0", "version": "10.11.4",
"resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-7.13.0.tgz", "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-10.11.4.tgz",
"integrity": "sha512-35M+MZFPqHwVIas7tXWQKFrf+ozCJukNplUTiGqL8mczSk+VRBsHxxXuuQKRkz/4CcWkONGWbp/AzxfM6wZncg==", "integrity": "sha512-/CWXaf3a5BLNeVnBGxzWOIZLQgSNEc2LWHX4ZaJb7ww0xgY0S5K9HRAMzJIHeHGe7jfpSraprD66VDblWb4ZXA==",
"requires": { "requires": {
"hoist-non-react-statics": "^2.3.1", "@babel/runtime": "^7.3.1",
"html-parse-stringify2": "2.0.1", "html-parse-stringify2": "2.0.1"
"prop-types": "^15.6.0" },
"dependencies": {
"@babel/runtime": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.4.tgz",
"integrity": "sha512-Na84uwyImZZc3FKf4aUF1tysApzwf3p2yuFBIyBfbzT5glzKTdvYI4KVW4kcgjrzoGUjC7w3YyCHcJKaRxsr2Q==",
"requires": {
"regenerator-runtime": "^0.13.2"
}
},
"regenerator-runtime": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
"integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
}
} }
}, },
"react-is": { "react-is": {

View File

@ -42,14 +42,14 @@
"bc-css-flags": "3.0.0", "bc-css-flags": "3.0.0",
"dropbox": "4.0.9", "dropbox": "4.0.9",
"i18n-iso-countries": "3.7.8", "i18n-iso-countries": "3.7.8",
"i18next": "8.4.3", "i18next": "17.0.6",
"i18next-browser-languagedetector": "2.0.0", "i18next-browser-languagedetector": "3.0.1",
"i18next-xhr-backend": "1.4.2", "i18next-xhr-backend": "3.0.0",
"jQuery-Impromptu": "github:trentrichardson/jQuery-Impromptu#v6.0.0", "jQuery-Impromptu": "github:trentrichardson/jQuery-Impromptu#v6.0.0",
"jitsi-meet-logger": "github:jitsi/jitsi-meet-logger#6fff754a77a56ab52499f3559105a15886942a1e", "jitsi-meet-logger": "github:jitsi/jitsi-meet-logger#6fff754a77a56ab52499f3559105a15886942a1e",
"jquery": "3.3.1", "jquery": "3.3.1",
"jquery-contextmenu": "2.4.5", "jquery-contextmenu": "2.4.5",
"jquery-i18next": "1.2.0", "jquery-i18next": "1.2.1",
"js-md5": "0.6.1", "js-md5": "0.6.1",
"js-utils": "github:jitsi/js-utils#192b1c996e8c05530eb1f19e82a31069c3021e31", "js-utils": "github:jitsi/js-utils#192b1c996e8c05530eb1f19e82a31069c3021e31",
"jsrsasign": "8.0.12", "jsrsasign": "8.0.12",
@ -63,7 +63,7 @@
"react": "16.8.3", "react": "16.8.3",
"react-dom": "16.8.3", "react-dom": "16.8.3",
"react-emoji-render": "0.4.6", "react-emoji-render": "0.4.6",
"react-i18next": "7.13.0", "react-i18next": "10.11.4",
"react-linkify": "0.2.2", "react-linkify": "0.2.2",
"react-native": "0.59.8", "react-native": "0.59.8",
"react-native-background-timer": "2.1.1", "react-native-background-timer": "2.1.1",

View File

@ -1,20 +1,16 @@
import React from 'react'; import React from 'react';
import { translate as reactI18nextTranslate } from 'react-i18next'; import { withTranslation } from 'react-i18next';
/** /**
* Wraps a specific React Component in order to enable translations in it. * Wraps a specific React Component in order to enable translations in it.
* *
* @param {Component} component - The React Component to wrap. * @param {Component} component - The React Component to wrap.
* @param {Object} options - Additional options to pass into react-i18next's
* initialization.
* @returns {Component} The React Component which wraps {@link component} and * @returns {Component} The React Component which wraps {@link component} and
* enables translations in it. * enables translations in it.
*/ */
export function translate(component, options = { wait: true }) { export function translate(component) {
// Use the default list of namespaces. // Use the default list of namespaces.
return ( return withTranslation([ 'main', 'languages', 'countries' ])(component);
reactI18nextTranslate([ 'main', 'languages', 'countries' ], options)(
component));
} }
/** /**

View File

@ -40,22 +40,25 @@ const options = {
app: app:
(typeof interfaceConfig !== 'undefined' && interfaceConfig.APP_NAME) (typeof interfaceConfig !== 'undefined' && interfaceConfig.APP_NAME)
|| 'Jitsi Meet', || 'Jitsi Meet',
compatibilityAPI: 'v1', backend: {
compatibilityJSON: 'v1', loadPath: 'lang/__ns__-__lng__.json'
},
defaultNS: 'main',
fallbackLng: DEFAULT_LANGUAGE, fallbackLng: DEFAULT_LANGUAGE,
fallbackOnEmpty: true, interpolation: {
fallbackOnNull: true, escapeValue: false // not needed for react as it escapes by default
},
load: 'languageOnly',
ns: [ 'main', 'languages', 'countries' ],
react: {
useSuspense: false
},
returnEmptyString: false,
returnNull: false,
// XXX i18next modifies the array lngWhitelist so make sure to clone // XXX i18next modifies the array lngWhitelist so make sure to clone
// LANGUAGES. // LANGUAGES.
lngWhitelist: LANGUAGES.slice(), whitelist: LANGUAGES.slice()
load: 'unspecific',
ns: {
defaultNs: 'main',
namespaces: [ 'main', 'languages', 'countries' ]
},
resGetPath: 'lang/__ns__-__lng__.json',
useDataAttrOptions: true
}; };
i18next i18next

View File

@ -97,4 +97,4 @@ class ChatMessage extends AbstractChatMessage<Props> {
} }
} }
export default translate(ChatMessage, { wait: false }); export default translate(ChatMessage);

View File

@ -182,8 +182,8 @@ function _showRecordingErrorNotification(recorderSession, dispatch) {
descriptionKey: 'recording.unavailable', descriptionKey: 'recording.unavailable',
descriptionArguments: { descriptionArguments: {
serviceName: isStreamMode serviceName: isStreamMode
? 'Live Streaming service' ? '$t(liveStreaming.serviceName)'
: 'Recording service' : '$t(recording.serviceName)'
}, },
titleKey: isStreamMode titleKey: isStreamMode
? 'liveStreaming.unavailableTitle' ? 'liveStreaming.unavailableTitle'