diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index 57793d776142d1b89928e9f7f5db3d8108cba5ec..851e62d1b723770448f4f0f7949b74b3081b49a6 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -27,7 +27,7 @@ class Settings::PreferencesController < ApplicationController def user_params params.require(:user).permit( :locale, - filtered_languages: [] + chosen_languages: [] ) end diff --git a/app/models/account.rb b/app/models/account.rb index 72e850aa75f49723142885192648e3ec340819b5..c3eea79cc7e6b783729174a13730e23719dccb48 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -141,7 +141,7 @@ class Account < ApplicationRecord prefix: true, allow_nil: true - delegate :filtered_languages, to: :user, prefix: false, allow_nil: true + delegate :chosen_languages, to: :user, prefix: false, allow_nil: true def local? domain.nil? diff --git a/app/models/status.rb b/app/models/status.rb index 7fa0690832a9517b17762f5ae17feb1671314edc..e7dd0df29e0d66588d680513127a12d020b4ab64 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -190,8 +190,8 @@ class Status < ApplicationRecord before_validation :set_local class << self - def not_in_filtered_languages(account) - where(language: nil).or where.not(language: account.filtered_languages) + def in_chosen_languages(account) + where(language: nil).or where(language: account.chosen_languages) end def as_home_timeline(account) @@ -333,7 +333,7 @@ class Status < ApplicationRecord def filter_timeline_for_account(query, account, local_only) query = query.not_excluded_by_account(account) query = query.not_domain_blocked_by_account(account) unless local_only - query = query.not_in_filtered_languages(account) if account.filtered_languages.present? + query = query.in_chosen_languages(account) if account.chosen_languages.present? query.merge(account_silencing_filter(account)) end diff --git a/app/models/user.rb b/app/models/user.rb index 0becfa7e96669d16a76bcc16dbd6b7bfb5ee7285..c95960dc6d4488d0835f452fbe480624941bbf65 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -35,6 +35,7 @@ # moderator :boolean default(FALSE), not null # invite_id :bigint(8) # remember_token :string +# chosen_languages :string is an Array # class User < ApplicationRecord @@ -317,7 +318,9 @@ class User < ApplicationRecord private def sanitize_languages - filtered_languages.reject!(&:blank?) + return if chosen_languages.nil? + chosen_languages.reject!(&:blank?) + self.chosen_languages = nil if chosen_languages.empty? end def prepare_new_user! diff --git a/app/views/settings/preferences/show.html.haml b/app/views/settings/preferences/show.html.haml index d2e8663731565f3688f8ab4613643dbf86819111..6ec03ab4bd608eb909fe361655ad58f4a3059f0e 100644 --- a/app/views/settings/preferences/show.html.haml +++ b/app/views/settings/preferences/show.html.haml @@ -12,7 +12,7 @@ .fields-group = f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, selected: I18n.locale - = f.input :filtered_languages, collection: filterable_languages, wrapper: :with_block_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + = f.input :chosen_languages, collection: filterable_languages.sort, wrapper: :with_block_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' %h4= t 'preferences.publishing' diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index e028781fc5c7f1aa4f5608f720d4c5ab82dffd33..06f9613412d395e3033d84ee30813c9a91053459 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -23,8 +23,6 @@ ar: data: مل٠CSV تم تصديره Ù…ÙÙ† مثيل خادوم ماستدون آخر sessions: otp: 'قم بإدخال رمز المصادقة بخطوتين الذي قام بتوليده تطبيق جهازك أو إستخدم Ø£ØØ¯ رموز Ø§Ù„Ù†ÙØ§Ø° Ø§Ù„Ø¥ØØªÙŠØ§Ø·ÙŠØ© :' - user: - filtered_languages: سو٠يتم تصÙية Ùˆ Ø¥Ø®ÙØ§Ø¡ اللغات المختارة من خيوطك العمومية labels: account: fields: @@ -42,7 +40,6 @@ ar: email: عنوان البريد الإلكتروني expires_in: تنتهي مدة صلاØÙŠØªÙ‡ بعد fields: ÙˆØ§ØµÙØ§Øª بيانات المل٠الشخصي - filtered_languages: اللغات التي تم تصÙيتها header: الرأسية locale: اللغة locked: تجميد Ø§Ù„ØØ³Ø§Ø¨ diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 088a6f067a7c351779ac24665dfd9ed39a4d7d56..43230e5cf77e32d3123192e783ddcb1ecae82346 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -23,8 +23,6 @@ ca: data: Fitxer CSV exportat des de una altra instà ncia de Mastodon sessions: otp: 'Introdueix el codi de dos factors generat per el teu telèfon o utilitza un dels teus codis de recuperació:' - user: - filtered_languages: Les llengües seleccionades s'eliminaran de les lÃnies de temps públiques labels: account: fields: @@ -42,7 +40,6 @@ ca: email: Adreça de correu electrònic expires_in: Expira després fields: Metadades del perfil - filtered_languages: Llengües filtrades header: Capçalera locale: Llengua locked: Fes aquest compte privat diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml index 25d4a05fb55853f261bcf11e3e1c1591de044e18..ac8b89a7bb151106f8f0877e9395258b2ef087d7 100644 --- a/config/locales/simple_form.co.yml +++ b/config/locales/simple_form.co.yml @@ -22,8 +22,6 @@ co: data: Un fugliale CSV da un’altr’istanza di Mastodon sessions: otp: 'Entrate u codice d’identificazione à dui fattori nant’à u vostru telefuninu, o unu di i vostri codici di ricuperazione:' - user: - filtered_languages: Ùn viderete micca e lingue selezziunate nant’à e linee pubbliche labels: account: fields: @@ -40,7 +38,6 @@ co: email: Indirizzu e-mail expires_in: Spira dopu à fields: Metadata di u prufile - filtered_languages: Lingue filtrate header: Ritrattu di cuprendula locale: Lingua locked: Privatizà u contu diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index c0a45100004513b03e45e8b12fa78b4ff45d08d7..f09f717f0acab1135bd701d6e5bd9d3f3e82a90b 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -22,8 +22,6 @@ de: data: CSV-Datei, die aus einer anderen Mastodon-Instanz exportiert wurde sessions: otp: 'Gib den Zwei-Faktor-Authentisierungscode von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:' - user: - filtered_languages: Ausgewählte Sprachen werden aus deinen öffentlichen Zeitleisten gefiltert labels: account: fields: @@ -40,7 +38,6 @@ de: email: E-Mail-Adresse expires_in: Gültig bis fields: Profil-Metadaten - filtered_languages: Gefilterte Sprachen header: Kopfbild locale: Sprache locked: Gesperrtes Profil diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 247a7921876288ccdae93c4fce83ba24fe3d1788..a75a0f567f309602fee892792e94692bcaba7dd8 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -24,7 +24,7 @@ en: sessions: otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' user: - filtered_languages: Checked languages will be filtered from public timelines for you + chosen_languages: Only toots in selected languages will be displayed in public timelines. Select nothing to see toots in all languages labels: account: fields: @@ -34,6 +34,7 @@ en: autofollow: Invite to follow your account avatar: Avatar bot: This is a bot account + chosen_languages: Filter languages confirm_new_password: Confirm new password confirm_password: Confirm password current_password: Current password @@ -42,9 +43,8 @@ en: email: E-mail address expires_in: Expire after fields: Profile metadata - filtered_languages: Filtered languages header: Header - locale: Language + locale: Interface language locked: Lock account max_uses: Max number of uses new_password: New password diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index 4027c1b603a33573edf76f09b2401572413bbeaa..c235929ad0f3380e2a9d10e3660d1c771e6cce64 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -22,8 +22,6 @@ eo: data: CSV-dosiero el alia nodo de Mastodon sessions: otp: 'Enmetu la kodon de dufaktora aÅtentigo el via telefono aÅ uzu unu el viaj realiraj kodoj:' - user: - filtered_languages: Markitaj lingvoj estos elfiltritaj de publikaj tempolinioj por vi labels: account: fields: @@ -40,7 +38,6 @@ eo: email: Retadreso expires_in: EksvalidiÄas post fields: Profilaj metadatumoj - filtered_languages: Filtritaj lingvoj header: Fonbildo locale: Lingvo locked: Åœlosi konton diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 38661b00ff02dda88ef7ce7b0fa62d807b117bb1..000a33edc62467fb0e263bd35ca09bd9601e7dbc 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -19,8 +19,6 @@ es: data: Archivo CSV exportado desde otra instancia de Mastodon sessions: otp: Introduce el código de autenticación de dos factores de tu teléfono o usa uno de tus códigos de recuperación. - user: - filtered_languages: Los idiomas seleccionados dejarán de mostrarse para ti en las lÃneas de tiempo públicas labels: defaults: avatar: Avatar @@ -31,7 +29,6 @@ es: display_name: Nombre para mostrar email: Dirección de correo electrónico expires_in: Expirar tras - filtered_languages: Idiomas filtrados header: Img. cabecera locale: Idioma locked: Hacer privada esta cuenta diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index 364a2e1182b594089273d5710e7ea05e41e0ff1a..f89786dc9e91665dd09826722097f6697e85a920 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -22,8 +22,6 @@ eu: data: Beste Mastodon instantzia batetik esportatutako CSV fitxategia sessions: otp: 'Sartu zure telefonoko aplikazioak sortutako bi faktoreetako kodea, edo erabili zure berreskuratze kodeetako bat:' - user: - filtered_languages: Ez dira aukeratutako hizkuntzak erakutsiko zure denbora-lerro publikoetan labels: account: fields: @@ -40,7 +38,6 @@ eu: email: E-mail helbidea expires_in: Iraungitzea fields: Profilaren metadatuak - filtered_languages: Iragazitako hizkuntzak header: Goiburua locale: Hizkuntza locked: Giltzapetu kontua diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml index 6c72fa7b05bd223986eed75bbc74cecaf112404c..e8a2c38aaf09f5bc79400c40820f1f1299a15ce5 100644 --- a/config/locales/simple_form.fa.yml +++ b/config/locales/simple_form.fa.yml @@ -23,8 +23,6 @@ fa: data: پروندهٔ CSV Ú©Ù‡ از سرور ماستدون دیگری برون‌سپاری شده sessions: otp: 'کد تأیید دومرØÙ„ه‌ای Ú©Ù‡ اپ روی تلÙÙ† شما ساخته را وارد کنید یا یکی از کدهای بازیابی را به کار ببرید:' - user: - filtered_languages: زبان‌های انتخاب‌شده از Ùهرست عمومی نوشته‌هایی Ú©Ù‡ می‌بینید ØØ°Ù می‌شوند labels: account: fields: @@ -42,7 +40,6 @@ fa: email: نشانی ایمیل expires_in: تاریخ انقضا fields: اطلاعات تکمیلی نمایه - filtered_languages: زبان‌های Ùیلترشده header: تصویر زمینه locale: زبان locked: خصوصی‌کردن ØØ³Ø§Ø¨ diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index b7b97395a340a5f8ba4e8187207c7e8c14ef55d2..190790ca55814468586d1153f6a5e072182aef50 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -20,8 +20,6 @@ fi: data: Toisesta Mastodon-instanssista tuotu CSV-tiedosto sessions: otp: Syötä puhelimeen saamasi kaksivaiheisen tunnistautumisen koodi tai käytä palautuskoodia. - user: - filtered_languages: Valitut kielet suodatetaan pois julkisilta aikajanoilta labels: account: fields: @@ -36,7 +34,6 @@ fi: email: Sähköpostiosoite expires_in: Vanhenee fields: Profiilin metadata - filtered_languages: Suodatetut kielet header: Otsakekuva locale: Kieli locked: Lukitse tili diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 4e535cdf4612fc6757f0cd9efc4ed21c64e4f6ef..8af0201e6a63d085206298a23eed04acac8dd46b 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -22,8 +22,6 @@ fr: data: Un fichier CSV généré par une autre instance de Mastodon sessions: otp: 'Entrez le code d’authentification à deux facteurs généré par votre téléphone ou utilisez un de vos codes de récupération :' - user: - filtered_languages: Les langues sélectionnées seront filtrées hors de vos fils publics pour vous labels: account: fields: @@ -40,7 +38,6 @@ fr: email: Adresse courriel expires_in: Expire après fields: Métadonnées du profil - filtered_languages: Langues filtrées header: Image d’en-tête locale: Langue locked: Verrouiller le compte diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index bae49a65dc006f092a5ea54dcd52501664487616..f621d35878f9b20bd5a55f3bd6e65580efb01151 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -22,8 +22,6 @@ gl: data: Ficheiro CSV exportado desde outra instancia Mastodon sessions: otp: Introduza o código de doble-factor xerado no aplicativo do seu móbil ou utilice un dos seus códigos de recuperación. - user: - filtered_languages: Os idiomas marcados filtraranse das liñas temporais públicas para vostede labels: account: fields: @@ -40,7 +38,6 @@ gl: email: enderezo correo electrónico expires_in: Caducidade despois de fields: Metadatos do perfil - filtered_languages: Idiomas filtrados header: Cabeceira locale: Idioma locked: Protexer conta diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 20cf1029eedff49d4ee2cb369357e04a238a7e62..96cdccd2b4b1ddaf8f2aeba93e81925a72e3cbe8 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -19,8 +19,6 @@ he: data: קובץ CSV ×©×™×•×¦× ×ž×©×¨×ª מסטודון ×חר sessions: otp: × × ×œ×”×§×œ×™×“ קוד ×ימות דו-שלבי ממכשירך ×ו קוד ×חזור גישה. - user: - filtered_languages: שפות ×©× ×‘×—×¨×• יוסתרו מציר הזמן הציבורי בשבילך labels: defaults: avatar: ×ª×ž×•× ×ª פרופיל @@ -31,7 +29,6 @@ he: display_name: ×©× ×œ×”×¦×’×” email: כתובת דו×"ל expires_in: תפוגה ל×חר - filtered_languages: שפות ×ž×¡×•× × ×•×ª header: ר×שה locale: שפה locked: הפוך חשבון לפרטי diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index 6ec39aa79bdc6aea269db1da8d3ea9f25be0f688..2b36dc85b2faec2ffd6eaec0b807a28b2956b3ac 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -19,8 +19,6 @@ hu: data: Egy másik Mastodon szerverrÅ‘l exportált CSV fájl sessions: otp: Add meg a Második-faktor kódodat a telefonodról vagy használd az egyik tartalék bejelentkezÅ‘ kódodat. - user: - filtered_languages: A kiválasztott nyelvek nem jelennek majd meg a nyilvános idÅ‘vonaladon labels: defaults: avatar: Profilkép @@ -31,7 +29,6 @@ hu: display_name: MegjelenÃtett név email: E-mail cÃm expires_in: Elévül - filtered_languages: Szűrt nyelvek header: Fejléc locale: Nyelv locked: Zárt felhasználói fiók diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index cd77bffe3fa72e2cd0648e001ec5138f1102e2bd..6a0658395ed60a7c72202d5aa9438f4c9ca365d3 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -22,8 +22,6 @@ it: data: File CSV esportato da un'altra istanza di Mastodon sessions: otp: 'Inserisci il codice a due fattori generato dall''app del tuo telefono o usa uno dei codici di recupero:' - user: - filtered_languages: Le lingue selezionate verranno filtrate dalla tua timeline pubblica labels: account: fields: @@ -40,7 +38,6 @@ it: email: Indirizzo email expires_in: Scade dopo fields: Metadati del profilo - filtered_languages: Lingue filtrate header: Header locale: Lingua locked: Blocca account diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 5fa53aaee56e2e259cf629eb2dc35c469f82ebe5..dd5caa0ba83959094edeceb85f21691382b7ee36 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -19,8 +19,6 @@ ja: data: ä»–ã® Mastodon インスタンスã‹ã‚‰ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã—ãŸCSVãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ä¸‹ã•ã„ sessions: otp: 'æºå¸¯é›»è©±ã®ã‚¢ãƒ—リã§ç”Ÿæˆã•れãŸäºŒæ®µéšŽèªè¨¼ã‚³ãƒ¼ãƒ‰ã‚’入力ã™ã‚‹ã‹ã€ãƒªã‚«ãƒãƒªãƒ¼ã‚³ãƒ¼ãƒ‰ã‚’使用ã—ã¦ãã ã•ã„:' - user: - filtered_languages: é¸æŠžã—ãŸè¨€èªžãŒã‚ãªãŸã®å…¬é–‹ã‚¿ã‚¤ãƒ ラインã‹ã‚‰å–り除ã‹ã‚Œã¾ã™ labels: account: fields: @@ -38,7 +36,6 @@ ja: email: メールアドレス expires_in: æœ‰åŠ¹æœŸé™ fields: プãƒãƒ•ã‚£ãƒ¼ãƒ«è£œè¶³æƒ…å ± - filtered_languages: 除外ã™ã‚‹è¨€èªž header: ヘッダー locale: 言語 locked: 承èªåˆ¶ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«ã™ã‚‹ diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index f198009469c353ec676270aaf68472310665abdf..421357b4929ba353f8ebec4c7c41f2c5f0ec3e2f 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -23,8 +23,6 @@ ko: data: 다른 ë§ˆìŠ¤í† ëˆ ì¸ìŠ¤í„´ìŠ¤ì—서 ì¶”ì¶œëœ CSV íŒŒì¼ sessions: otp: 'íœ´ëŒ€ì „í™”ì—서 ìƒì„± ëœ 2단계 ì¸ì¦ 코드를 ìž…ë ¥í•˜ê±°ë‚˜, 복구 코드 중 하나를 사용하세요:' - user: - filtered_languages: ì„ íƒëœ 언어가 공개 타임ë¼ì¸ì—서 ì œì™¸ ë 것입니다 labels: account: fields: @@ -42,7 +40,6 @@ ko: email: ì´ë©”ì¼ ì£¼ì†Œ expires_in: ë§Œë£Œì‹œê° fields: 프로필 메타ë°ì´í„° - filtered_languages: 숨긴 언어들 header: í—¤ë” locale: 언어 locked: ê³„ì • ìž ê¸ˆ diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 6c7ff4464e8e81aaff8b1c7e47c2d8e5f652ec67..f3320f46bcf9f0a0957b13b517ae84c94f88838a 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -23,8 +23,6 @@ nl: data: CSV-bestand dat op een andere Mastodonserver werd geëxporteerd sessions: otp: Voer de tweestaps-aanmeldcode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcodes. - user: - filtered_languages: Geselecteerde talen worden uit de lokale en globale tijdlijn verwijderd labels: account: fields: @@ -42,7 +40,6 @@ nl: email: E-mailadres expires_in: Vervalt na fields: Metadata profiel - filtered_languages: Gefilterde talen header: Omslagfoto locale: Taal locked: Maak account besloten diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml index 48710cabda213f0008b090908cd53dfa4a99efcb..aba8feeb610c7e995575c58028d7ca409c887bda 100644 --- a/config/locales/simple_form.no.yml +++ b/config/locales/simple_form.no.yml @@ -19,8 +19,6 @@ data: CSV-fil eksportert fra en annen Mastodon-instans sessions: otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. - user: - filtered_languages: SprÃ¥k som er avhuket vil ikke vises pÃ¥ offentlige tidslinjer fra deg labels: defaults: avatar: Avatar @@ -31,7 +29,6 @@ display_name: Visningsnavn email: E-postadresse expires_in: Utløper etter - filtered_languages: Filtrerte sprÃ¥k header: Overskrift locale: SprÃ¥k locked: LÃ¥s konto diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml index f21852fbb11ad59e74639a5384bc0bffab6dda5e..510e76e383fdfb1ee1e85e5a398baa8fc64f4984 100644 --- a/config/locales/simple_form.oc.yml +++ b/config/locales/simple_form.oc.yml @@ -23,8 +23,6 @@ oc: data: Fichièr CSV exportat d’una autra instà ncia Mastodon sessions: otp: 'Picatz lo còdi d’autentificacion en dos temps (Two factor code) de vòstra aplicacion mobil o utilizatz un de vòstres còdis de recuperacion :' - user: - filtered_languages: Las lengas seleccionadas serà n levadas de vòstre flux d’actualitat labels: account: fields: @@ -42,7 +40,6 @@ oc: email: Corrièl expires_in: Expira aprèp fields: Metadonada del perfil - filtered_languages: Lengas filtradas header: Bandièra locale: Lenga locked: Far venir lo compte privat diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 66f2a0f0b7b67de275836fc9fa5d703746792f24..274af2b73b0568a08c48b717aac79cc71afce5e8 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -26,8 +26,6 @@ pl: data: Plik CSV wyeksportowany z innej instancji Mastodona sessions: otp: 'Wprowadź kod weryfikacji dwuetapowej z telefonu lub wykorzystaj jeden z kodów zapasowych:' - user: - filtered_languages: Wpisy w wybranych jÄ™zykach nie bÄ™dÄ… wyÅ›wietlać siÄ™ na publicznych osiach czasu labels: account: fields: @@ -44,7 +42,6 @@ pl: email: Adres e-mail expires_in: WygaÅ›nie po fields: Metadane profilu - filtered_languages: Filtrowane jÄ™zyki header: Nagłówek locale: JÄ™zyk locked: Ustaw konto jako prywatne diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 50ed5eb1a8090c5e9581b256c2abef527245a38d..cec96739f902e02e39e7d7281860a8b82222bd37 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -22,8 +22,6 @@ pt-BR: data: Arquivo CSV exportado de outra instância do Mastodon sessions: otp: 'Insira o código de autenticação gerado pelo app no seu celular ou use um dos códigos de recuperação:' - user: - filtered_languages: Selecione os idiomas que devem ser removidos de suas timelines públicas labels: account: fields: @@ -40,7 +38,6 @@ pt-BR: email: Endereço de e-mail expires_in: Expira em fields: Metadados do perfil - filtered_languages: Idiomas filtrados header: Cabeçalho locale: Idioma locked: Trancar conta diff --git a/config/locales/simple_form.pt.yml b/config/locales/simple_form.pt.yml index 67fed495cc6821c91fa31b0c9c5540019d95017c..5b79bd29f75277cefa516ff80d226ea577a05f51 100644 --- a/config/locales/simple_form.pt.yml +++ b/config/locales/simple_form.pt.yml @@ -19,8 +19,6 @@ pt: data: Arquivo CSV exportado de outra instância do Mastodon sessions: otp: Inserir o código de autenticação de dois factores do teu telemóvel ou usa um dos códigos de recuperação. - user: - filtered_languages: Seleciona os idiomas que devem ser removidos das tuas timelines públicas labels: defaults: avatar: Imagem de Perfil @@ -31,7 +29,6 @@ pt: display_name: Nome Público email: Endereço de e-mail expires_in: Expira em - filtered_languages: Idiomas filtrados header: Cabeçalho locale: Idioma locked: Trancar conta diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index a6b50b9d2e619730e03b0f2f25f2c38d0d4ba8f3..6bb95b13faa6422fb21ef085ab438f5195719e1b 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -26,8 +26,6 @@ ru: data: Файл CSV, ÑкÑпортированный Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ узла Mastodon sessions: otp: 'Введите код двухфакторной аутентификации, Ñгенерированный в мобильном приложении, или иÑпользуйте один из Ваших кодов воÑÑтановлениÑ:' - user: - filtered_languages: Выбранные Ñзыки будут убраны из Ваших публичных лет. labels: account: fields: @@ -44,7 +42,6 @@ ru: email: ÐÐ´Ñ€ÐµÑ e-mail expires_in: Срок дейÑÑ‚Ð²Ð¸Ñ fields: Метаданные Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ - filtered_languages: Фильтруемые Ñзыки header: Заголовок locale: Язык locked: Сделать аккаунт закрытым diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml index 74cb3ac568fd7aacbb313b3467e01e27dfef27fc..279e9a96728e838ab7115bce2f34c6ad244417c2 100644 --- a/config/locales/simple_form.sk.yml +++ b/config/locales/simple_form.sk.yml @@ -25,8 +25,6 @@ sk: data: CSV súbor vyexportovaný z inej Mastodon inÅ¡tancie sessions: otp: 'NapÃÅ¡ sem dvoj-faktorový kód z telefónu, alebo použi jeden z tvojÃch obnovovacÃch kódov:' - user: - filtered_languages: ZaÅ¡krtnuté jazyky budú pre teba vynechané z verejnej Äasovej osi labels: account: fields: @@ -44,7 +42,6 @@ sk: email: Emailová adresa expires_in: ExpirovaÅ¥ po fields: Metadáta profilu - filtered_languages: Vynechanie jazykov header: Obrázok v hlaviÄke locale: Jazyk locked: Zamknúť úÄet diff --git a/config/locales/simple_form.sr-Latn.yml b/config/locales/simple_form.sr-Latn.yml index 30f7eada7031c33843b4a642a0f96ef0c6025938..608630c0ce300d6b8b6f3f70044ddafb772864cd 100644 --- a/config/locales/simple_form.sr-Latn.yml +++ b/config/locales/simple_form.sr-Latn.yml @@ -23,8 +23,6 @@ sr-Latn: data: CSV fajl izvezen sa druge Mastodont instance sessions: otp: Unesite dvofaktorski kod sa VaÅ¡eg telefona ili koristite jedan od kodova za oporavak. - user: - filtered_languages: OznaÄeni jezici će za Vas biti isfiltrirani sa javnih lajni labels: defaults: avatar: Avatar @@ -35,7 +33,6 @@ sr-Latn: display_name: Ime za prikaz email: Adresa e-poÅ¡te expires_in: IstiÄe nakon - filtered_languages: Filtrirani jezici header: Zaglavlje locale: Jezik locked: ZakljuÄaj nalog diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index 3345f7b4194b65bdfb6e631137c08ecd433bfd27..ab9ef0f492a14e95675808988709582b9cca4799 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -23,8 +23,6 @@ sr: data: CSV фајл извезен Ñа друге МаÑтодонт инÑтанце sessions: otp: УнеÑите двофакторÑки код Ñа Вашег телефона или кориÑтите један од кодова за опоравак. - user: - filtered_languages: Означени језици ће за Ð’Ð°Ñ Ð±Ð¸Ñ‚Ð¸ иÑфилтрирани Ñа јавних лајни labels: defaults: avatar: Ðватар @@ -35,7 +33,6 @@ sr: display_name: Име за приказ email: ÐдреÑа е-поште expires_in: ИÑтиче након - filtered_languages: Филтрирани језици header: Заглавље locale: Језик locked: Закључај налог diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index f027d684b88dae4ff63b4b915c22b8202fdb4a8a..346ab39317932d1b75c0432e2858381e9b742bee 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -22,8 +22,6 @@ sv: data: CSV-fil som exporteras frÃ¥n en annan Mastodon-instans sessions: otp: 'Ange tvÃ¥faktorkoden genererad frÃ¥n din telefonapp eller använd nÃ¥gon av dina Ã¥terställningskoder:' - user: - filtered_languages: Kontrollerade sprÃ¥k filtreras frÃ¥n offentliga tidslinjer för dig labels: account: fields: @@ -40,7 +38,6 @@ sv: email: E-postadress expires_in: Förfaller efter fields: Profil-metadata - filtered_languages: Filtrerade sprÃ¥k header: Bakgrundsbild locale: SprÃ¥k locked: LÃ¥s konto diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 3a315a7db1fa4521826934a797ae8be7e19ad1f8..f1947e9617df9260c52f4ed79b55adb6bef127a5 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -19,8 +19,6 @@ zh-CN: data: è¯·ä¸Šä¼ ä»Žå…¶ä»– Mastodon 实例导出的 CSV 文件 sessions: otp: è¾“å…¥ä½ æ‰‹æœºåº”ç”¨ä¸Šç”Ÿæˆçš„åŒé‡è®¤è¯ç ,或者任æ„一个æ¢å¤ä»£ç : - user: - filtered_languages: 被勾选è¯è¨€çš„嘟文将ä¸ä¼šå‡ºçŽ°åœ¨ä½ çš„å…¬å…±æ—¶é—´è½´ä¸Š labels: account: fields: @@ -38,7 +36,6 @@ zh-CN: email: 电åé‚®ä»¶åœ°å€ expires_in: 失效时间 fields: ä¸ªäººèµ„æ–™é™„åŠ ä¿¡æ¯ - filtered_languages: è¯è¨€è¿‡æ»¤ header: 个人资料页横幅图片 locale: è¯è¨€ locked: ä¿æŠ¤ä½ çš„å¸æˆ·ï¼ˆé”嘟) diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml index 06d3f6f6c6f51b39b8cacc5ba027ea0d19987680..7a1cae68dc92d611a036bae64b34e863f116d6eb 100644 --- a/config/locales/simple_form.zh-HK.yml +++ b/config/locales/simple_form.zh-HK.yml @@ -22,8 +22,6 @@ zh-HK: data: 自其他æœå‹™ç«™åŒ¯å‡ºçš„ CSV 檔案 sessions: otp: è¼¸å…¥ä½ æ‰‹æ©Ÿä¸Šç”Ÿæˆçš„é›™é‡èªè‰ç¢¼ï¼Œæˆ–者任æ„一個æ¢å¾©ä»£ç¢¼ï¼š - user: - filtered_languages: 下é¢è¢«é¸æ“‡çš„èªžè¨€çš„æ–‡ç« å°‡ä¸æœƒå‡ºç¾åœ¨ä½ 的公共時間軸上 labels: account: fields: @@ -40,7 +38,6 @@ zh-HK: email: é›»éƒµåœ°å€ expires_in: 失效時間 fields: 資料 - filtered_languages: å°éޖ䏋é¢èªžè¨€çš„æ–‡ç« header: 個人é é¢é ‚部 locale: 語言 locked: 將用戶轉為「ç§äººã€ diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index c7c5a37f0319c68bdd99d7392b3f6597182481a1..a3f6627afd9f1596e594cd79e51061f8fe071d70 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -10,8 +10,6 @@ zh-TW: note: 最多 160 個å—å…ƒ imports: data: 自其他æœå‹™ç«™åŒ¯å‡ºçš„ CSV 檔案 - user: - filtered_languages: 下é¢è¢«é¸æ“‡çš„èªžè¨€çš„æ–‡ç« å°‡ä¸æœƒå‡ºç¾åœ¨ä½ 的公共時間軸上。 labels: defaults: avatar: 大é è²¼ @@ -21,7 +19,6 @@ zh-TW: data: 資料 display_name: 顯示å稱 email: é›»åä¿¡ç®± - filtered_languages: å°éޖ䏋é¢èªžè¨€çš„æ–‡ç« header: 個人é é¢é ‚部 locale: 語言 locked: 將帳號轉為「ç§å¯†ã€ diff --git a/db/migrate/20180616192031_add_chosen_languages_to_users.rb b/db/migrate/20180616192031_add_chosen_languages_to_users.rb new file mode 100644 index 0000000000000000000000000000000000000000..48b53019d6d1b9d4bfe63a25f94682e5cd5372e0 --- /dev/null +++ b/db/migrate/20180616192031_add_chosen_languages_to_users.rb @@ -0,0 +1,5 @@ +class AddChosenLanguagesToUsers < ActiveRecord::Migration[5.2] + def change + add_column :users, :chosen_languages, :string, array: true, null: true, default: nil + end +end diff --git a/db/schema.rb b/db/schema.rb index 4c39de26a60d76b5fea00c4777f382df7537fbc4..c06387ba6771d6fc302278d76040bb482da4e057 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2018_06_15_122121) do +ActiveRecord::Schema.define(version: 2018_06_16_192031) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -525,6 +525,7 @@ ActiveRecord::Schema.define(version: 2018_06_15_122121) do t.boolean "moderator", default: false, null: false t.bigint "invite_id" t.string "remember_token" + t.string "chosen_languages", array: true t.index ["account_id"], name: "index_users_on_account_id" t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true t.index ["email"], name: "index_users_on_email", unique: true diff --git a/spec/controllers/settings/preferences_controller_spec.rb b/spec/controllers/settings/preferences_controller_spec.rb index 7877c73621244e4e9a0ec1b3831bb50f3d301f20..f2028cf39b4f0f15cb4b755cfbc3a94892f735b8 100644 --- a/spec/controllers/settings/preferences_controller_spec.rb +++ b/spec/controllers/settings/preferences_controller_spec.rb @@ -18,12 +18,12 @@ describe Settings::PreferencesController do describe 'PUT #update' do it 'updates the user record' do - put :update, params: { user: { locale: 'en', filtered_languages: ['es', 'fr', ''] } } + put :update, params: { user: { locale: 'en', chosen_languages: ['es', 'fr', ''] } } expect(response).to redirect_to(settings_preferences_path) user.reload expect(user.locale).to eq 'en' - expect(user.filtered_languages).to eq ['es', 'fr'] + expect(user.chosen_languages).to eq ['es', 'fr'] end it 'updates user settings' do diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index 5113b652fcf326b497689d6674c2d428d70071ca..b3e475d99cfe9acdeb400e56caa958db28150dbd 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -259,18 +259,18 @@ RSpec.describe Status, type: :model do end end - describe '.not_in_filtered_languages' do + describe '.in_chosen_languages' do context 'for accounts with language filters' do - let(:user) { Fabricate(:user, filtered_languages: ['en']) } + let(:user) { Fabricate(:user, chosen_languages: ['en']) } - it 'does not include statuses in filtered languages' do - status = Fabricate(:status, language: 'en') - expect(Status.not_in_filtered_languages(user.account)).not_to include status + it 'does not include statuses in not in chosen languages' do + status = Fabricate(:status, language: 'de') + expect(Status.in_chosen_languages(user.account)).not_to include status end it 'includes status with unknown language' do status = Fabricate(:status, language: nil) - expect(Status.not_in_filtered_languages(user.account)).to include status + expect(Status.in_chosen_languages(user.account)).to include status end end end @@ -518,7 +518,7 @@ RSpec.describe Status, type: :model do context 'with language preferences' do it 'excludes statuses in languages not allowed by the account user' do - user = Fabricate(:user, filtered_languages: [:fr]) + user = Fabricate(:user, chosen_languages: [:en, :es]) @account.update(user: user) en_status = Fabricate(:status, language: 'en') es_status = Fabricate(:status, language: 'es') @@ -531,7 +531,7 @@ RSpec.describe Status, type: :model do end it 'includes all languages when user does not have a setting' do - user = Fabricate(:user, filtered_languages: []) + user = Fabricate(:user, chosen_languages: nil) @account.update(user: user) en_status = Fabricate(:status, language: 'en') diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index cc8d88cc85b76724554c61be9c44da33a9d180cd..93a6c26fb25abfbd7709125092984d4fc1aff401 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -41,9 +41,9 @@ RSpec.describe User, type: :model do end it 'cleans out empty string from languages' do - user = Fabricate.build(:user, filtered_languages: ['']) + user = Fabricate.build(:user, chosen_languages: ['']) user.valid? - expect(user.filtered_languages).to eq [] + expect(user.chosen_languages).to eq nil end end