Quelle est la bonne façon de faire ? Depuis mysql, en utilisant des requêtes dans Discourse, peut-être avec un script ?
Il semble que l’utilisation d’un plugin pour créer des langues personnalisées cause des problèmes dans notre instance.
Quelle est la bonne façon de faire ? Depuis mysql, en utilisant des requêtes dans Discourse, peut-être avec un script ?
Il semble que l’utilisation d’un plugin pour créer des langues personnalisées cause des problèmes dans notre instance.
L’exécution de ce qui suit dans une console Rails devrait fonctionner :
old_locale = "es_XX"
new_locale = "es"
DB.exec <<~SQL
UPDATE users
SET locale = '#{new_locale}'
WHERE locale = '#{old_locale}'
SQL
DB.exec <<~SQL
UPDATE site_settings
SET value = '#{new_locale}'
WHERE name = 'default_locale' AND value = '#{old_locale}'
SQL
DB.exec <<~SQL
UPDATE translation_overrides
SET locale = '#{new_locale}'
WHERE locale = '#{old_locale}'
SQL
DB.exec <<~SQL
UPDATE theme_translation_overrides
SET locale = '#{new_locale}'
WHERE locale = '#{old_locale}'
SQL
def fix_search_data(model)
key = "#{model}_id"
table = "#{model}_search_data"
puts "Migration de #{table} vers la locale new_locale."
sql = <<~SQL
UPDATE #{table}
SET locale = '#{new_locale}'
WHERE #{key} IN (
SELECT #{key}
FROM #{table}
WHERE locale = '#{old_locale}'
LIMIT 100000
)
SQL
loop do
count = DB.exec(sql)
break if count == 0
puts "Migrated #{count} rows of #{table} to new locale."
end
end
%w[category tag topic user].each { |model| fix_search_data(model) }
Merci ! Quelle est la méthode la plus efficace pour gérer les chaînes de caractères remplacées dans la locale ?
Le code semble fonctionner, mais pas avec les chaînes remplacées dans la locale de destination « par défaut ».
L’exécution de ce qui suit dans la console Rails devrait aider :
I18n.reload!
ExtraLocalesController.clear_cache!
MessageBus.publish("/i18n-flush", refresh: true)
Si cela ne fonctionne pas, redémarrer le serveur devrait certainement fonctionner.
Merci, il semble que cela soit lié à quelque chose dans mon instance, mais peut-être que je ne me suis pas bien exprimé dans mon message précédent ![]()
Je copie le message d’erreur, au cas où :
PG::UniqueViolation : ERREUR : la violation de la clé unique contraint la clé unique « index_translation_overrides_on_locale_and_translation_key »
DÉTAIL : La clé (locale, translation_key)=(es, js.docs.categories) existe déjà.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.