From 1bfcb75105baae556101f44957d0fa5b28ef013b Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Thu, 10 Feb 2022 03:09:44 +0100
Subject: [PATCH] Fix outdated iso-639 reference in update status service
 (#17496)

---
 app/services/update_status_service.rb | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/app/services/update_status_service.rb b/app/services/update_status_service.rb
index 69dc18e87..68e73d3b4 100644
--- a/app/services/update_status_service.rb
+++ b/app/services/update_status_service.rb
@@ -2,6 +2,7 @@
 
 class UpdateStatusService < BaseService
   include Redisable
+  include LanguagesHelper
 
   # @param [Status] status
   # @param [Integer] account_id
@@ -95,16 +96,12 @@ class UpdateStatusService < BaseService
     @status.text         = @options[:text].presence || @options.delete(:spoiler_text) || ''
     @status.spoiler_text = @options[:spoiler_text] || ''
     @status.sensitive    = @options[:sensitive] || @options[:spoiler_text].present?
-    @status.language     = language_from_option || @status.language
+    @status.language     = valid_locale_or_nil(@options[:language] || @status.language || @status.account.user&.preferred_posting_language || I18n.default_locale)
     @status.edited_at    = Time.now.utc
 
     @status.save!
   end
 
-  def language_from_option
-    ISO_639.find(@options[:language])&.alpha2
-  end
-
   def reset_preview_card!
     return unless @status.text_previously_changed?