将标签从yml转换为php文件

将标签从yml转换为php文件,php,symfony,yaml,Php,Symfony,Yaml,我有一个YAML文件,其中包含大量翻译,如下所示: wizard admin title: example public function getTypesChart(){ $charts = array( array( 'title' => 'wizard.admin.title' ), ); return $charts; } 我在PHP文件中这样调用它: wizard admin title: ex

我有一个YAML文件,其中包含大量翻译,如下所示:

wizard
  admin
    title: example
public function getTypesChart(){
   $charts = array(
      array(
        'title' => 'wizard.admin.title'
      ),
   );
   return $charts;
}
我在PHP文件中这样调用它:

wizard
  admin
    title: example
public function getTypesChart(){
   $charts = array(
      array(
        'title' => 'wizard.admin.title'
      ),
   );
   return $charts;
}

但是我得到的唯一输出是“wizard.admin.title”,而不是“example”。

您需要调用翻译服务,如下所示(假设您在控制器中,或者您的服务容器中):


除非您将翻译键放入自动翻译的内容中(如表单的字段标签),否则您需要明确要求翻译来完成这项工作

假设您的代码位于某个控制器中,您可以调用:

$this->get("translator")->trans("wizard.admin.title");

这里有很多问题。首先也是最重要的是,您的输入不是有效的YAML:

wizard
  admin
    title: example
尽管您可以在YAML中使用多行无引号标量,如:

 x: wizard
      admin
        title
(这与执行
x:'wizard admin title'
x:wizard admin title
相同)此类标量不能用作映射的键

如果无效,您必须将YAML更正为:

wizard:
  admin:
    title: example
更正后,请确保调用


查看yaml_parse php函数可能很有用。请注意,此输入文件是无效的yaml