mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-05 05:30:44 +08:00
* FIX: Ensure JsLocaleHelper to obly outputs up-to-date translations The old implementation forgot to filter out deprecated translations, causing these translations to incorrectly override the new locale in the frontend. This commit fills in the forgotten where clause, filtering only the up-to-date part. Related meta topic: https://meta.discourse.org/t/outdated-translation-replacement-causing-missing-translation/314352
27 lines
842 B
Ruby
27 lines
842 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Jobs
|
|
class CheckTranslationOverrides < ::Jobs::Scheduled
|
|
every 1.day
|
|
|
|
def execute(args)
|
|
deprecated_ids = []
|
|
invalid_ids = []
|
|
outdated_ids = []
|
|
|
|
TranslationOverride.find_each do |override|
|
|
if override.original_translation_deleted?
|
|
deprecated_ids << override.id
|
|
elsif override.invalid_interpolation_keys.present?
|
|
invalid_ids << override.id
|
|
elsif override.original_translation_updated?
|
|
outdated_ids << override.id
|
|
end
|
|
end
|
|
|
|
TranslationOverride.where(id: outdated_ids).update_all(status: "outdated")
|
|
TranslationOverride.where(id: invalid_ids).update_all(status: "invalid_interpolation_keys")
|
|
TranslationOverride.where(id: deprecated_ids).update_all(status: "deprecated")
|
|
end
|
|
end
|
|
end
|