Project

General

Profile

Bug(バグ) #2256

Text-translation method, opI18N::__(), always parse text in disregard of parsed text cache (翻訳に用いられる opI18N::__() がパース済みテキストのキャッシュを無視して常にテキストのパースをおこなっている)

Added by Kousuke Ebihara almost 8 years ago. Updated almost 8 years ago.

Status:
Invalid(無効)
Priority:
Normal(通常)
Assignee:
-
Target version:
Start date:
2011-07-01
Due date:
% Done:

0%

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

Description

Overview (現象)

Text-translation method, opI18N::__(), always parse text in disregard of parsed text cache.

翻訳に用いられる opI18N::__() がパース済みテキストのキャッシュを無視して常にテキストのパースをおこなっている。

Causes (原因)

opI18N stores cached texts in opI18N::$parsed. A new entry of opI18N::$parsed is added by end of opI18N::__() to skip parsing from the next time. But checking available caches in opI18N::__() is wrong.

opI18N はキャッシュされたテキストを opI18N::$parsed に格納する。 opI18N::$parsed のエントリは次回以降のパースをスキップするために opI18N::__() の末尾で追加される。しかし、 opI18N::__() における有効なキャッシュの確認処理に誤りがある。

public function __($string, $args = array(), $catalogue = 'messages')
{
  if (empty($parsed[$string]))
  {
    $this->parsed[$string] = array();

The above is the main point in this issue. Calling empty() looks like a checking available caches, but this empty() calls to check the undefined local variable $parsed, not $this->parsed. In this code, $parsed is always an empty value. So you get non-cached result from opI18N::__().

これがこのチケットのポイントとなる部分である。 empty() のコール部分は有効なキャッシュの確認をおこなっているように見えるが、 $this->parsed ではなく未定義のローカル変数である $parsed に対して empty() がコールされている。このコードでは $parsed は常に空の値となるため、 opI18N::__() の結果は常にキャッシュされていない値ということになる。

Way to fix (修正内容)

Replace $parsed to $this->parsed.

$parsed を $this->parsed に置き換える。


Related issues

Duplicates OpenPNE 3 - Bug(バグ) #1842: Text-translation method, opI18N::__(), always parse text in disregard of parsed text cache (翻訳に用いられる opI18N::__() がパース済みテキストのキャッシュを無視して常にテキストのパースをおこなっている) Fixed(完了) 2010-12-13

History

#1 Updated by Shingo Yamada almost 8 years ago

  • Status changed from New(新規) to Invalid(無効)

重複しているため、閉じます。

Also available in: Atom PDF