Change “Translate” button to only show up when a translation backend is configured (#19434)
* Change “Translate” button to only show up when a translation backend is configured Fixes #19346 * Add `translation` attribute to /api/v2/instance to expose whether the translation feature is enabled Fixes #19328
This commit is contained in:
		
					parent
					
						
							
								dd76bbf8b7
							
						
					
				
			
			
				commit
				
					
						8046cf34d6
					
				
			
		
					 5 changed files with 13 additions and 2 deletions
				
			
		|  | @ -6,7 +6,7 @@ import Permalink from './permalink'; | |||
| import classnames from 'classnames'; | ||||
| import PollContainer from 'mastodon/containers/poll_container'; | ||||
| import Icon from 'mastodon/components/icon'; | ||||
| import { autoPlayGif, languages as preloadedLanguages } from 'mastodon/initial_state'; | ||||
| import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'mastodon/initial_state'; | ||||
| 
 | ||||
| const MAX_HEIGHT = 642; // 20px * 32 (+ 2px padding at the top)
 | ||||
| 
 | ||||
|  | @ -181,7 +181,7 @@ class StatusContent extends React.PureComponent { | |||
|     const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; | ||||
|     const renderReadMore = this.props.onClick && status.get('collapsed'); | ||||
|     const renderViewThread = this.props.showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id']); | ||||
|     const renderTranslate = this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language'); | ||||
|     const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language'); | ||||
|     const language = preloadedLanguages.find(lang => lang[0] === status.get('language')); | ||||
|     const languageName = language ? language[2] : status.get('language'); | ||||
| 
 | ||||
|  |  | |||
|  | @ -77,6 +77,7 @@ | |||
|  * @property {boolean} use_blurhash | ||||
|  * @property {boolean=} use_pending_items | ||||
|  * @property {string} version | ||||
|  * @property {boolean} translation_enabled | ||||
|  */ | ||||
| 
 | ||||
| /** | ||||
|  | @ -125,6 +126,7 @@ export const unfollowModal = getMeta('unfollow_modal'); | |||
| export const useBlurhash = getMeta('use_blurhash'); | ||||
| export const usePendingItems = getMeta('use_pending_items'); | ||||
| export const version = getMeta('version'); | ||||
| export const translationEnabled = getMeta('translation_enabled'); | ||||
| export const languages = initialState?.languages; | ||||
| 
 | ||||
| export default initialState; | ||||
|  |  | |||
|  | @ -17,6 +17,10 @@ class TranslationService | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def self.configured? | ||||
|     ENV['DEEPL_API_KEY'].present? || ENV['LIBRE_TRANSLATE_ENDPOINT'].present? | ||||
|   end | ||||
| 
 | ||||
|   def translate(_text, _source_language, _target_language) | ||||
|     raise NotImplementedError | ||||
|   end | ||||
|  |  | |||
|  | @ -31,6 +31,7 @@ class InitialStateSerializer < ActiveModel::Serializer | |||
|       timeline_preview: Setting.timeline_preview, | ||||
|       activity_api_enabled: Setting.activity_api_enabled, | ||||
|       single_user_mode: Rails.configuration.x.single_user_mode, | ||||
|       translation_enabled: TranslationService.configured?, | ||||
|     } | ||||
| 
 | ||||
|     if object.current_account | ||||
|  |  | |||
|  | @ -72,6 +72,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer | |||
|         min_expiration: PollValidator::MIN_EXPIRATION, | ||||
|         max_expiration: PollValidator::MAX_EXPIRATION, | ||||
|       }, | ||||
| 
 | ||||
|       translation: { | ||||
|         enabled: TranslationService.configured?, | ||||
|       }, | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue