プロジェクト

全般

プロフィール

Bug(バグ) #2800

翻訳ファイルの読み込みが誤った順序でおこなわれてしまい、たとえば、携帯版で「Login」が「ログイン」ではなく「ログイン」と翻訳されてしまう

Kousuke Ebihara約12年前に追加. 6年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2011-10-14
期日:
進捗率:

100%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

説明

概要

i18n 翻訳用のメッセージファイルは複数ファイルで同じ語に対する翻訳を記述した場合、「モジュール → アプリケーション → 全体」の優先順に読み込まれる仕様であるが、読み込むべき翻訳ファイルリストの順序に誤りがあり、誤った翻訳ファイルが選択されてしまう問題がある。

これにより、たとえば、 mobile_frontend 用の i18n ファイルに半角カタカナのエントリーを追加しているにもかかわらず、全角カタカナが表示されてしまうような現象が発生する(例:「Login」が「ログイン」ではなく「ログイン」と表示される)。

この問題は #2490 (翻訳ファイルの優先順位がキャッシュ時に逆になっている) 対応中に発覚したものである。 (https://redmine.openpne.jp/issues/2490#note-4)

#2490 はキャッシュ前とキャッシュ後の翻訳の優先順位がそれぞれ異なるという問題で、キャッシュ後の翻訳結果(実装上の誤りが存在していた)がキャッシュ前のものと一致するように修正がおこなわれた。しかし、このチケットで扱う予定の問題により、そもそもキャッシュ前の翻訳結果が適切ではなかったことが明らかになり、 #2490 にて対処がおこなわれた。このとき採用された修正方針を以下に引用する。

opApplicationConfiguration::getI18NDirs() により生成される配列要素の順序は以下のようになります(太字は sfApplicationConfiguration::getI18NDirs() の生成した配列要素)。

0. [sf_root_dir]/i18n
1. plugins/op*Plugin/apps/[app_name]/i18n
2. plugins/op*Plugin/apps/[app_name]/modules/[module_name]/i18n
3. apps/[app_name]/modules/[module_name]/i18n
4. apps/[app_name]/i18n
5. plugins/*/modules/[module_name]/i18n
6. plugins/*/i18n

しかし、これは期待通りの結果ではありません。上述の結果を、期待通りの順番に並び替えたものが以下です。

(略)

ということで、これでよさそうに思いますが、「0. [sf_root_dir]/i18n 」の順番が妥当かどうかは若干怪しいところです(このディレクトリの立ち位置はいまひとつ明確でない気がしています)。

なので、 [sf_root_dir]/i18n に関してだけはとりあえずこの修正前の挙動を維持する形で、以下のような順序にすることもアリだと思います。ちなみに、この順序ならば sfApplicationConfiguration::getI18NDirs() の結果が利用できます。

2. plugins/op*Plugin/apps/[app_name]/modules/[module_name]/i18n
1. plugins/op*Plugin/apps/[app_name]/i18n
3. apps/[app_name]/modules/[module_name]/i18n
4. apps/[app_name]/i18n
5. plugins/*/modules/[module_name]/i18n
6. plugins/*/i18n
0. [sf_root_dir]/i18n

3.4 には #2490 で扱われているキャッシュの問題は存在しないが、翻訳ファイルリストの順序が誤っている問題は存在するため、 https://redmine.openpne.jp/issues/2490#note-4 以降のやりとりを参考にした上で、修正を取り込む必要がある。

詳細

確認バージョン

OpenPNE 3.4.21-dev (stable-3.4.x)


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #2490: 翻訳ファイルの優先順位がキャッシュ時に逆になっている Fixed(完了) 2011-10-14

関係しているリビジョン

リビジョン 285e317d (差分)
Kousuke Ebihara約12年前に追加

changed ordering of i18n files which are constructed by the sfOpenPNEApplicationConfiguration::getI18NDirs() (fixes #2800)

履歴

#1 Kousuke Ebihara約12年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Kousuke Ebihara にセット

#2 Kousuke Ebihara約12年前に更新

  • 3.4 ではキャッシュ時と未キャッシュ時に同様の翻訳が使われるので、このチケットの主題である問題は存在しない
  • だが、元チケットである #2490 で不完全な修正を施した状態 (7047ccf4 時点) と同様の状態に陥っている。そのため、 http://redmine.openpne.jp/issues/2490#note-4 で指摘している問題は生じるし、ここで示している解決策はとる必要がある

ということで、このチケットでは http://redmine.openpne.jp/issues/2490#note-4 で指摘している問題の解決をおこなうべきだと思います。その場合、チケットの内容は実情に即していないためふさわしくなく、というよりもはやバックポートチケットではなくなるので、そのあたりを諸々変更するべきだと思います。

#3 Kousuke Ebihara約12年前に更新

  • トラッカーBackport(バックポート) から Bug(バグ) に変更
  • 題名翻訳ファイルの優先順位がキャッシュ時に逆になっている から 翻訳ファイルの読み込みが誤った順序でおこなわれてしまい、たとえば、携帯版で「Login」が「ログイン」ではなく「ログイン」と翻訳されてしまう に変更
  • 説明 を更新 (diff)
  • 3.6 で発生するかUnknown (未調査) にセット
  • 3.4 で発生するかUnknown (未調査) にセット

#4 Kousuke Ebihara約12年前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴 285e317d514e467ea2ac8bbab2f232eedcc02235 で適用されました。

#5 Yuya Watanabe約12年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#6 Yuma Sakata約12年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

#7 Chiharu Nakajima6年以上前に更新

3.6発生せず
3.8発生せず

他の形式にエクスポート: Atom PDF