Project

General

Profile

Bug(バグ) #2800

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

Added by Kousuke Ebihara over 7 years ago. Updated about 2 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Target version:
Start date:
2011-10-14
Due date:
% Done:

100%

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

Description

概要

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)


Related issues

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

Associated revisions

Revision 285e317d (diff)
Added by Kousuke Ebihara over 7 years ago

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

History

#1 Updated by Kousuke Ebihara over 7 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Kousuke Ebihara

#2 Updated by Kousuke Ebihara over 7 years ago

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

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

#3 Updated by Kousuke Ebihara over 7 years ago

  • Tracker changed from Backport(バックポート) to Bug(バグ)
  • Subject changed from 翻訳ファイルの優先順位がキャッシュ時に逆になっている to 翻訳ファイルの読み込みが誤った順序でおこなわれてしまい、たとえば、携帯版で「Login」が「ログイン」ではなく「ログイン」と翻訳されてしまう
  • Description updated (diff)
  • 3.6 で発生するか set to Unknown (未調査)
  • 3.4 で発生するか set to Unknown (未調査)

#4 Updated by Kousuke Ebihara over 7 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

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

#5 Updated by Yuya Watanabe over 7 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#6 Updated by Yuma Sakata over 7 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです。

#7 Updated by Chiharu Nakajima about 2 years ago

3.6発生せず
3.8発生せず

Also available in: Atom PDF