我无法使用angular-translate建立与其他语言的链接。
var translations = {
"en": {
"HELLO": "hello",
"ORANGE": "orange"
},
"fr": {
"HELLO": "salut",
"ORANGE": "@:en.ORANGE"
},
};
请参阅以下plunker。
显示" en.ORANGE"而不是" orange"。
供参考,请参阅documentation部分"快捷方式和链接"。
答案 0 :(得分:2)
文档中的NAMESPACE
指的是同一种语言中的var translations = {
"en": {
"HELLO": "hello",
"ORANGE": "orange"
},
"fr": {
"HELLO": "salut",
"ORANGE": "@:en.ORANGE"
},
};
$translateProvider
.translations('en', translations['en'])
.translations('fr', translations['fr'])
。
在你的plunker中,你有这个:
.translations('fr', translations['fr'])
当您设置{
"HELLO": "salut",
"ORANGE": "@:en.ORANGE"
}
时,您将其作为法语的命名空间:
angular-translate
每当en.ORANGE
搜索angular-translate
时,它都会在上述对象中进行搜索。
尚未实现使用其他语言翻译的功能。看一下if (translation.substr(0, 2) === '@:') {
getFallbackTranslation(langKey, translation.substr(2), interpolateParams, Interpolator)
.then(deferred.resolve, deferred.reject);
} else {...}
的源代码,就是这段代码:
@:
每当您拥有langKey
个字符时,它都不会更改GREETING
,这意味着它会在当前语言的翻译字典中搜索翻译。
目前你的plunker工作正常。我已经制作了fork,以表明它正在使用命名空间中的链接。查看class Destination
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
* @Assert\NotBlank()
*/
private $name;
/**
* @var \Application\ModelBundle\Entity\Destination
*
* @ORM\ManyToOne(targetEntity="Application\ModelBundle\Entity\Destination", inversedBy="children")
* @ORM\JoinColumn(name="parent", referencedColumnName="id", onDelete="cascade")
*/
private $parent;
/**
* @var \Application\ModelBundle\Entity\Destination
*
* @ORM\OneToMany(targetEntity="Application\ModelBundle\Entity\Destination", mappedBy="parent", cascade={"persist", "remove"})
*/
private $children;
/**
* @var \Application\ModelBundle\Entity\User
*
* @ORM\ManyToOne(targetEntity="Application\ModelBundle\Entity\User", inversedBy="destinations")
* @ORM\JoinColumn(name="user", referencedColumnName="id", onDelete="cascade")
* @Assert\Type(type="Application\ModelBundle\Entity\User")
*/
private $user;
/**
* @var \Application\ModelBundle\Entity\Hotel
*
* ORM\OneToMany(targetEntity="Application\ModelBundle\Entity\Hotel", mappedBy="touristDestination", cascade={"persist"})
*/
private $hotels;
}
取值的位置。