diff --git a/bigbluebutton-html5/imports/ui/components/LanguageOverlay/component.jsx b/bigbluebutton-html5/imports/ui/components/LanguageOverlay/component.jsx index 8f682aa32f6f76229bae4c4c6fc18eded950bc5c..508325c6e0e104c4733f1e197578d5e27dd075fd 100644 --- a/bigbluebutton-html5/imports/ui/components/LanguageOverlay/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/LanguageOverlay/component.jsx @@ -57,6 +57,7 @@ class LanguageOverlay extends Component{ } = this.props; const connectionMessage = intl.formatMessage(isConnecting ? intlMessages.connectionSettingUp : intlMessages.connectionEstablished); + const filteredLanguageExtensions = new Set(this.props.filteredLanguages.map(language => language.extension)); return( <div @@ -64,14 +65,31 @@ class LanguageOverlay extends Component{ > <ul> {this.state.languages.map(function (language) { - return <li - className={language.isFiltered? styles.filteredLanguageOption : styles.languageOption} - key={language.extension} - onClick={language.isFiltered? null : () => this.clickHandler(language)} - > - <span>{language.name}</span> - {((this.props.current && language.extension === this.props.current.extension) || (this.props.current === null && language.extension === -1)) && <span>{connectionMessage}</span>} - </li> + let languageMarker = null; + const languageIsFiltered = language.extension !== -1 && filteredLanguageExtensions.has(language.extension); + + if (languageIsFiltered) { + languageMarker = this.props.filterMarker; + } else if (this.props.current && language.extension === this.props.current.extension) { //language language is selected + languageMarker = connectionMessage; + } else if (this.props.current === null && language.extension === -1) { //if no language is select use standart language(-1) + languageMarker = connectionMessage; + } + + return ( + <li + className={languageIsFiltered ? styles.filteredLanguageOption : styles.languageOption} + key={language.extension} + onClick={languageIsFiltered ? null : () => this.clickHandler(language)} + > + <span> + {language.name} + </span> + <span> + {languageMarker} + </span> + </li> + ); },this)} </ul> </div>); @@ -82,11 +100,6 @@ class LanguageOverlay extends Component{ } = this.props; Meeting.getLanguages().then(languages => { - if(this.props.filteredLanguages) { - let filteredLanguageExtensions = new Set(this.props.filteredLanguages - .map(language => language.extension)); - languages = languages.map(language => Object.assign(language, {isFiltered: filteredLanguageExtensions.has(language.extension)})); - } languages.push({ name: intl.formatMessage(this.props.translator ? intlMessages.noneLanguage : intlMessages.originLanguage), extension: -1, diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx index 49f6a2570b709c3bd3e86a3ba2c3566845bed88d..8d2fdd5283c0fd119263933b86e4d22921aa63c2 100755 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx @@ -65,6 +65,16 @@ const intlMessages = defineMessages({ description: 'Label for select translation button', defaultMessage: 'Available languages', }, + filterMarkerLanguageListening: { + id: 'app.translation.filterMarker.languageListening', + description: 'Label for filter text in translator language selection for already listening language', + defaultMessage: 'listening', + }, + filterMarkerLanguageTranslating: { + id: 'app.translation.filterMarker.languageTranslating', + description: 'Label for filter text in listening language selection for already translating language', + defaultMessage: 'speaking', + }, }); class ActionsBar extends PureComponent { @@ -292,6 +302,7 @@ class ActionsBar extends PureComponent { <LanguageOverlay current={this.state.translationLanguage} filteredLanguages={this.state.translatorLanguage ? [this.state.translatorLanguage] : []} + filterMarker={intl.formatMessage(intlMessages.filterMarkerLanguageTranslating)} clickHandler={this.handleLanguageSelection.bind(this)} intl={intl} /> @@ -358,6 +369,7 @@ class ActionsBar extends PureComponent { translator={true} current={this.state.translatorLanguage} filteredLanguages={this.state.translationLanguage ? [this.state.translationLanguage] : []} + filterMarker={intl.formatMessage(intlMessages.filterMarkerLanguageListening)} clickHandler={this.handleTranslatorLanguageSelection.bind(this)} intl={intl} /> diff --git a/bigbluebutton-html5/private/locales/de.json b/bigbluebutton-html5/private/locales/de.json index 89df70c2dc1dd8cfe11e34445a3a15c2576cc2ef..57b19179d6112564e9a849373bbb15b065d6c521 100644 --- a/bigbluebutton-html5/private/locales/de.json +++ b/bigbluebutton-html5/private/locales/de.json @@ -706,7 +706,9 @@ "app.translation.translator.selectLanguage": "Sprache dolmetschen", "app.translation.selectTranslation": "Verfügbare Sprachen", "app.translation.language.origin": "Original", - "app.translation.language.none": "Keine" + "app.translation.language.none": "Keine", + "app.translation.filterMarker.languageListening": "hören", + "app.translation.filterMarker.languageTranslating": "sprechen" } diff --git a/bigbluebutton-html5/private/locales/en.json b/bigbluebutton-html5/private/locales/en.json index e43540d8bb5f585ec8ce943984c7e812c4a4739e..44251e3b7371862134ece986c93a2806a3090e10 100755 --- a/bigbluebutton-html5/private/locales/en.json +++ b/bigbluebutton-html5/private/locales/en.json @@ -708,6 +708,8 @@ "app.translation.translator.selectLanguage": "Interpret to", "app.translation.selectTranslation": "Available languages", "app.translation.language.origin": "Floor", - "app.translation.language.none": "None" + "app.translation.language.none": "None", + "app.translation.filterMarker.languageListening": "listening", + "app.translation.filterMarker.languageTranslating": "speaking" }