Qual è il modo corretto per farlo? Da mysql, usando query all’interno di Discourse, magari con qualche script?
Sembra che usare un plugin per creare lingue personalizzate causi alcuni problemi nella nostra istanza.
Qual è il modo corretto per farlo? Da mysql, usando query all’interno di Discourse, magari con qualche script?
Sembra che usare un plugin per creare lingue personalizzate causi alcuni problemi nella nostra istanza.
L’esecuzione di quanto segue in una console Rails dovrebbe funzionare:
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 "Migrating #{table} to new_locale 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) }
Grazie! Qual è il metodo più efficace per gestire le stringhe sovrascritte in locale?
Il codice sembra funzionare ma non con le stringhe sovrascritte nella locale di destinazione ‘default’.
L’esecuzione di quanto segue nella console di Rails dovrebbe aiutare:
I18n.reload!
ExtraLocalesController.clear_cache!
MessageBus.publish("/i18n-flush", refresh: true)
Se non dovesse funzionare, il riavvio del server dovrebbe sicuramente risolvere il problema.
Grazie, sembra essere correlato a qualcosa nella mia istanza, ma forse non mi sono espresso bene nel messaggio precedente ![]()
Copio il messaggio di errore, non si sa mai:
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_translation_overrides_on_locale_and_translation_key"
DETAIL: Key (locale, translation_key)=(es, js.docs.categories) already exists.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.