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 回答