【问题标题】:Is it possible to override Symfony Intl JSON data?是否可以覆盖 Symfony Intl JSON 数据?
【发布时间】:2015-10-11 13:33:17
【问题描述】:

是否可以覆盖symfony/src/Symfony/Component/Intl/Resources下的json数据?例如,在data/languages/en.json 中,我想将"zh": "Chinese" 更改为更具体的"zh": "Mandarin Chinese"

【问题讨论】:

    标签: symfony intl


    【解决方案1】:

    我不是 Symfony 的专业人士,但我遇到了同样的问题,对我来说,我确实找到了一种可行的解决方法。我没有在表单中使用它,我只是用它来显示。

    我确实创建了一个名为 Country 的模型来访问和操作 RegionBundle:

    namespace AppBundle\Model;
    
    use Symfony\Component\Intl\Data\Bundle\Reader\BufferedBundleReader;
    use Symfony\Component\Intl\Data\Bundle\Reader\BundleEntryReader;
    use Symfony\Component\Intl\Data\Bundle\Reader\JsonBundleReader;
    use Symfony\Component\Intl\Intl;
    use Symfony\Component\Intl\ResourceBundle\RegionBundle;
    
    
    class Country
    {
    
        public static function getCountryName($countryCode, $locale='de')
        {
            $test = new RegionBundle(
                __DIR__.'/../Resources/Intl/data'.'/'.Intl::REGION_DIR,
                new BundleEntryReader(new BufferedBundleReader(
                    new JsonBundleReader(),
                    Intl::BUFFER_SIZE
                )),
                Intl::getLocaleBundle()
            );
    
            return $test->getCountryName($countryCode, $locale);
    
        }
    
    }
    

    我可以通过控制器调用它们:

    Country::getCountryName('AF')
    

    也许这不是“最先进”的方法,但我花了数小时搜索另一个解决方案 - 但没有找到任何对我有用的方法。

    【讨论】:

      【解决方案2】:

      您是否尝试在 app/Resources/data/languages/en.json 下复制该文件而不是在那里更改它?

      别忘了清除缓存

      【讨论】:

      • 尝试了app/Resources/data/languages/en.jsonapp/Resources/Intl/data/languages/en.json,但没有任何乐趣。
      • 现在尝试复制到 src/YOURBUNDLE/Resources/data/languages/en.json
      • 也试过了。没有骰子。
      • @nurikabe 你运气好吗?
      • @PavelDubinin 不,我最终放弃了。没有重温这个问题。
      猜你喜欢
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 2019-05-11
      • 2011-04-06
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多