Benutzerdefakatlsprache auf die Standardsprache verschieben (ES_XX zu es)

Was ist der richtige Weg, das zu tun? Von MySQL aus, mit Abfragen innerhalb von Discourse, vielleicht mit einem Skript?

Es scheint, dass die Verwendung eines Plugins zum Erstellen benutzerdefinierter Sprachen einige Probleme in unserer Instanz verursacht.

Die Ausführung des Folgenden in einer Rails-Konsole sollte funktionieren:

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) }
3 „Gefällt mir“

Danke! Was ist die effektivste Methode, um mit überschriebenen Zeichenfolgen in Gebietsschemata umzugehen?

Der Code scheint zu funktionieren, aber nicht mit überschriebenen Zeichenfolgen im Ziel-„Standard“-Gebietsschema.

2 „Gefällt mir“

Das Ausführen des Folgenden in der Rails-Konsole sollte helfen:

I18n.reload!
ExtraLocalesController.clear_cache!
MessageBus.publish("/i18n-flush", refresh: true)

Wenn das nicht hilft, sollte ein Neustart des Servers definitiv funktionieren.

3 „Gefällt mir“

Danke, es scheint etwas mit meiner Instanz zu tun zu haben, aber vielleicht habe ich mich in meiner vorherigen Nachricht nicht gut ausgedrückt :slight_smile:

Ich kopiere die Fehlermeldung, nur für den Fall:

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.