mirror of
https://github.com/discourse/discourse.git
synced 2024-12-24 09:43:51 +08:00
319075e4dd
* 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
28 lines
842 B
Ruby
28 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
|