Как интегрировать перевод доктрины i18n в Zend Framework? - PullRequest
0 голосов
/ 02 марта 2012

Скажем, у меня есть простая сущность UserType. Я хотел бы, чтобы usertype был доступен на разных языках, потому что он будет отображаться в выпадающем списке в пользовательском интерфейсе. Как настроить i18n для работы в моем проекте? Это было не ясно в документах.

<?php

namespace Entities;

/**
 * @Entity (repositoryClass="Repositories\UserType") 
 * @Table(name="usertypes") 
 * @HasLifecycleCallbacks
 */
class UserType {

    /**
     * @Id @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;

    /** @Column(type="string", length=30,unique=TRUE) */
    private $usertype;

    /** @Column(type="boolean") */
    private $active;


    public function __construct() {

        $this->active = true;
    }

    /**
     * @return the $id
     */
    public function getId() {
        return $this->id;
    }

    /**
     * @return the $usertype
     */
    public function getUserType() {
        return $this->usertype;
    }

    /**
     * @return the $active
     */
    public function getActive() {
        return $this->active;
    }

    /**
     * @param field_type $usertype
     */
    public function setUsertype($usertype) {
        $this->usertype = $usertype;
    }

    /**
     * @param field_type $active
     */
    public function setActive($active) {
        $this->active = $active;
    }

}

1 Ответ

0 голосов
/ 02 марта 2012

Вы просто добавляете "@gedmo: Transhable" в свой блок комментариев для переводимых полей

<?php

namespace Entities;

/**
 * @Entity (repositoryClass="Repositories\UserType") 
 * @Table(name="usertypes") 
 * @HasLifecycleCallbacks
 */
class UserType {

    /**
     * @Id @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @gedmo:Translatable
     * @Column(type="string", length=30,unique=TRUE)
     */
    private $usertype;

    /** @Column(type="boolean") */
    private $active;

    /**
     * @gedmo:Locale
     */
    private $locale;

    public function __construct() {

        $this->active = true;
    }

    /**
     * @return the $id
     */
    public function getId() {
        return $this->id;
    }

    /**
     * @return the $usertype
     */
    public function getUserType() {
        return $this->usertype;
    }

    /**
     * @return the $active
     */
    public function getActive() {
        return $this->active;
    }

    /**
     * @param field_type $usertype
     */
    public function setUsertype($usertype) {
        $this->usertype = $usertype;
    }

    /**
     * @param field_type $active
     */
    public function setActive($active) {
        $this->active = $active;
    }

    public function setTranslatableLocale($locale)
    {
        $this->locale = $locale;
    }

}
...