Bug(バグ) #1453
完了
文言設定で指定の言語がない場合Fatalエラーとなる
Shogo Kawahara さんが14年以上前に追加.
約9年前に更新.
説明
Overview (概要)¶
文言設定で指定の言語がない場合Fatalエラーとなる
再現手順
- OpenPNE.ymlのsupported_languagesに新たな言語を追加
- ログイン画面で新たな言語に切り替え
- ログイン
- Fatal error
Causes¶
指定言語で文言設定を行っていないとFatalエラーとなります。
文言設定がない場合は、Englishの文言設定を行うなどの対処は必要かと思います。
関連するチケット
4 (0件未完了 — 4件完了)
- 優先度 を Normal(通常) から Low(低め) に変更
- 優先度 を Low(低め) から Normal(通常) に変更
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Itsuro Tajima にセット
i18nではなく、sns_termの問題のようです。
現状では、対応している言語はOpenPNEプロジェクトの実装によってあらかじめ決まっており、利用者がsuppoerted_languagesを編集する必要、利益がそもそもないと考えられます。このため、
■suppoerted_languagesを、OpenPNE.ymlから隔離する
■OpenPNE.ymlに「Do not change this line」などの注釈を加える
などの対策で、ユーザーに無用な混乱を起こすのを避ける方が望ましいのではないかと検討しています。
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
http://github.com/openpne/OpenPNE3/commit/cae4f98c95d3e7a817d831bd6231f3aceabe8ed4
でコミットしました。
方針としては
■文言設定があるかどうかを調べるため、SnsTermTableに'member'がないかどうか調べる
・SnsTermTableはcountで言語を指定しない結果を返す
・SnsTermTableは個別の文言単位でしかアクセスできない
ため、このような判定形式になりました。もしユーザーがbackendから文言を設定しようとした場合、memberだけでなく他の文言も設定しないとバリデーションで弾かれるため、memberが存在して、他の文言が存在しないということは、通常の場合ありえません。このため、memberだけを見ても大丈夫だと判断しました。
■文言設定がなかった場合、cultureを英語(en)に設定
これはチケットの通りの対処です。
■その他
opI18N.class.php
に1b01151702b51846de0a15b486d5ade3b9f24b6cで追加されていた不要な行を削除しました。
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
説明に修正内容の記述をお願いします。
また、3.4でこの問題が発生しないか確認をお願いします。
- 3.6 で発生するか を Yes から No (いいえ) に変更
- 3.4 で発生するか を Unknown (未調査) にセット
このコミット以降の何らかの修正によって問題が発生しなくなっていています.
どのコミットの修正によって発生しなくなっている状態を調査し,本チケットの修正が妥当かを検討する必要があります.
このバグは、 856bb28d によって発生されなくなっています。
#1787 [仕様バグ] サイドバナーで切り替える言語設定が保持されない
- ステータス を Rejected(差し戻し) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
このバグは、 856bb28d によって発生されなくなっているため、テストOKとします。
- 3.8 で発生するか を Unknown (未調査) にセット
他の形式にエクスポート: Atom
PDF