プロジェクト

全般

プロフィール

Backport(バックポート) #2550

翻訳ファイルの優先順位がキャッシュ時に逆になっている

Maki Takahashi12年以上前に追加. 約12年前に更新.

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

100%


説明

概要

i18n 翻訳用のメッセージファイルは複数ファイルで同じ語に対する翻訳を記述した場合、「モジュール → アプリケーション → 全体」の優先順に読み込まれる仕様であるが、翻訳ファイルのキャッシュを生成する過程の処理に誤りがあり、この優先順位が逆になってしまう問題がある。

これにより mobile_frontend 用の i18n ファイルに半角カタカナのエントリーを追加しているにもかかわらず、全角カタカナが表示されてしまうような現象が発生する。

なお、キャッシュファイルがない状態でアクセスした場合にはこの現象は発生しない。

詳細

opI18N::generateApplicationMessages() でキャッシュファイルを生成するが、この中で複数の i18n のメッセージファイルの内容をマージする処理で優先度の低いファイルの内容を優先してマージをしてしまっている。

opI18N::generateApplicationMessages() の引数 $dirs には優先度の高い順にディレクトリパスが格納された配列が渡されるが、foreach のループ内では後の値を前の値よりも優先させる形で array_merge() を使っているために本来の優先順位と逆の内容のキャッシュファイルが生成されていた。

修正前のコード:

  public function generateApplicationMessages($dirs)
  {
    $catalogues = array();
...
    foreach ($files as $file)
    {
...
      $data = $messageSource->loadData($file);

      $catalogues[$name] = array_merge($catalogues[$name], $data);
    }

確認バージョン

OpenPNE 3.7.0-dev (master)
OpenPNE 3.6.1 (stable-3.6.x)


関連するチケット

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

関係しているリビジョン

リビジョン d2a27414 (差分)
Maki Takahashi約12年前に追加

(fixes #2550, BP from #2490) fixed merge order in i18n

リビジョン 75ac98e5 (差分)
Maki Takahashi約12年前に追加

(refs #2550, BP from #2490) fixed to get correct order i18n dirs

リビジョン 53332913 (差分)
Maki Takahashi約12年前に追加

(fixes #2550, BP from #2490) fixed to get correct order i18n dirs

履歴

#1 Maki Takahashi12年以上前に更新

  • 対象バージョンOpenPNE 3.6.1 から OpenPNE 3.6.x に変更

#2 Minoru Takai12年以上前に更新

  • 優先度Normal(通常) から High(高め) に変更

親チケットに併せてステータスを変更します。

#3 Yuya Watanabe約12年前に更新

  • 対象バージョンOpenPNE 3.6.x から OpenPNE 3.6.2 に変更

#4 Maki Takahashi約12年前に更新

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

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

#5 Kousuke Ebihara約12年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

http://redmine.openpne.jp/issues/2490#note-6 親チケットに従ってステータスを変更します。

#6 Maki Takahashi約12年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

更新履歴 53332913db4a9743da6ce2684c3f3b6252da7d44 で適用されました。

#7 Kousuke Ebihara約12年前に更新

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

#8 Yuma Sakata約12年前に更新

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

テストOKです。

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