翻訳置換の旧バージョンが翻訳漏れの原因に

皆さん、こんにちは。
約1週間前に行ったアップデートにより、ユーザープロフィールページに以下のようなボタン表示の問題が発生しました。数日後に行われるアップデートで修正できると考え、継続的なアップデートを行いましたが、改善されませんでした。

「いいね!」 1

Metaのプロフィールでこのテキストは機能しますか?

過去に文字列をカスタマイズしましたか?

このトピックも見つけました Turkish translation issue with share dialog なので、再構築を試してみてください。

「いいね!」 4

メタには問題がないようです。しかし、私のサイトでは問題が続いています。カスタマイズやローカライズは一切行っていません。
お教えいただいたリンクの解決策も試して、Discourseを再構築しましたが、残念ながらうまくいきませんでした。

別のブラウザまたはプライベートブラウジング/シークレットタブを試しましたか?

ご心配いただきありがとうございます。
4つの異なるブラウザとモバイルで試しましたが、明らかに動作しません。

それでは、セーフモードも試されたことでしょう。

「いいね!」 1

残念ながら、セーフモードでも問題は継続しています。。。

サポートに移動しました。

ここでテキストが正しく表示されています…本当に最新バージョンにアップデートしましたか?

「いいね!」 1

確認したところ、最新の状態でした。
何が原因でこうなったのか理解できません。


これに関連していると思います

トルコ語の「設定」の文字列が壊れているという問題を再現できました。更新前に js.user.preferences をカスタマイズしましたが、更新後に新しい js.user.preferences.title が壊れていました。
その後、以下を実行しました。

TranslationOverride.where(translation_key: "js.user.preferences").delete_all
TranslationOverride.send(:reload_locale!)

これで直りました :tada:

ただし、本番サイトでこれを試す前に、より知識のある人からの確認を待ちます。

「いいね!」 3

確認したところ、テキストの値は正しく表示されています。

デフォルトのテキストを変更しましたが、うまくいかず、同じ問題が続いています。

本番環境でこれを実行しても安全ですか?どなたか教えていただけますか?
フォーラムではテキストのカスタマイズが機能しません。この領域だけでなく、すべてで機能しません。

「いいね!」 1

TL;DR: 既存の翻訳オーバーライドが、古いカスタム翻訳を新しい翻訳で失礼に上書きし、型エラーを引き起こします。または、ここでは、古い翻訳オーバーライドを「古い」に更新できませんでした。

問題

管理しているフォーラムには、翻訳 js.user.preferences のオーバーライドがあります。このコミット このコミット より前は文字列だったので、翻訳オーバーライドは正常に機能していました。

このコミットの後、キーはオブジェクトになります。しかし、翻訳オーバーライドはキーの型を検出せず、直接古い定義済みの文字列で上書きします。これにより、インターフェースでキーの翻訳が欠落します。

再現方法

最新のフォーラムでは、古いレコードを手動で挿入してトリガーする必要があるようです。

INSERT INTO translation_overrides
  (locale, translation_key, value, created_at, updated_at)
VALUES
  ('en', 'js.user.preferences', 'test', current_timestamp, current_timestamp);

次に、ランダムにサイトテキストを変更して更新をトリガーします。

どういうわけか、このオーバーライドのステータスが「古い」に更新されなかったようです。

[5] pry(main)> TranslationOverride.last
  TranslationOverride Load (1.2ms)  SELECT "translation_overrides".* FROM "translation_overrides" ORDER BY "translation_overrides"."id" DESC LIMIT 1
=> #<TranslationOverride:0x00007f0b20a31e20
  id: 18,
  locale: "en",
  translation_key: "js.user.preferences",
  value: "test",
  created_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
  updated_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
  compiled_js: nil,
  original_translation: nil,
  status: "up_to_date">
「いいね!」 2

以前のレポートにあなたのリポジトリを移動して、まとめておきました。:+1:

「いいね!」 1

おお、ここに同じバグレポートがあるのを見ませんでした()

すでに追跡していますが、奇妙です。これはうまくいくはずだと思います…何が起こっているのかわかりません。

「いいね!」 2

これは本番サイトで行っても安全なはずです。:+1: (ただし、コンソールで変更を試みる前に必ずバックアップを取ってください。事故が起こりうるため)

しかし、テキストのカスタマイズが機能しないのであれば、これが同じ問題であると確信していますか?

「いいね!」 2

この問題は最新のアップデートで解決されました。(3.4.0.beta1-dev)

「いいね!」 1

はい、現在のアップデートで問題が解決されたことも確認しました。

「いいね!」 2

これで完了です。修正のプルリクエストはこちらです: :partying_face:

「いいね!」 2

このトピックは14時間後に自動的に閉じられました。返信はもう受け付けられません。