【发布时间】:2015-10-11 13:33:17
【问题描述】:
是否可以覆盖symfony/src/Symfony/Component/Intl/Resources下的json数据?例如,在data/languages/en.json 中,我想将"zh": "Chinese" 更改为更具体的"zh": "Mandarin Chinese"。
【问题讨论】:
是否可以覆盖symfony/src/Symfony/Component/Intl/Resources下的json数据?例如,在data/languages/en.json 中,我想将"zh": "Chinese" 更改为更具体的"zh": "Mandarin Chinese"。
【问题讨论】:
我不是 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')
也许这不是“最先进”的方法,但我花了数小时搜索另一个解决方案 - 但没有找到任何对我有用的方法。
【讨论】:
您是否尝试在 app/Resources/data/languages/en.json 下复制该文件而不是在那里更改它?
别忘了清除缓存
【讨论】:
app/Resources/data/languages/en.json 和app/Resources/Intl/data/languages/en.json,但没有任何乐趣。