1

私はこのエンティティの __toString メソッドを持っています:

/**
 * String
 * 
 * @return string
 */
public function __toString()
{
    // I Have:
    // (EMR132 - Escuela Superior Mariano Moreno) Primary - 3 Bº Degree - Afternoon Shift
    // I Want:
    // (EMR132 - Escuela Superior Mariano Moreno) Primario - 3er Grado Bº - Turno tarde

    $levels = array(
        'primary' => 'Degree',
        'secondary' => 'Year',
    );

    return sprintf("(%s) %s - %s %sº %s - %s Shift", // Translate Format
            $this->school, 
            ucfirst($this->level), // Translate (fixed values)
            $this->degree, 
            $this->division, 
            $levels[$this->level], // Translate (fixed values)
            ucfirst($this->shift)  // Translate (fixed values)
    );
}

メソッド内の文字列を翻訳する必要があります。ただし、エンティティ内でサービス (翻訳者) を取得することはできません。

翻訳可能な __toString メソッドを作成するには?

4

1 に答える 1

0

翻訳は、ビュー レイヤーの問題です。メソッドから英語を出力し__toString()、それを表示するときに翻訳を取得することをお勧めします(つまり、ビューレイヤー/テンプレートで)。

于 2013-02-03T19:08:40.333 に答える