symfony 1.4 中缺少瑞典文化的货币

问题描述 投票:0回答:1

我必须使用Diem 5.1(实际上是symfony 1.4)构建一个具有货币兑换功能的多语言应用程序。我依赖 sfWidgetFormI18nChoiceCurrency,但它会引发瑞典文化异常:

以下货币不存在: 保加利亚列弗、墨西哥比索、卢布

小部件初始化为:

sfWidgetFormI18nChoiceCurrency->configure(array(
'culture' => 'sw',
'currencies' => array('HUF', 'AUD', 'BGN', 'BRL', 'CAD', 'CHF', 'CNY', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HRK', 'ISK', 'JPY', 'KRW', 'LTL', 'LVL', 'MXN', 'NOK', 'NZD', 'PLN', 'RON', 'RSD', 'RUB', 'SEK', 'SGD', 'TRY', 'UAH', 'USD', 'ZAR'), 'add_empty' => false, 'default' => 'EUR'
))

货币来自网络服务,所以我不能简单地删除失败的货币。 对于其他文化,一切都很好。

有什么解决方案/补丁/东西吗?或者我如何自己添加缺少的货币? 预先感谢您的帮助!

php internationalization symfony1 currency
1个回答
0
投票

您可以像这样过滤掉缺失的货币:

$cur = array_diff(
  array('HUF', 'AUD', 'BGN', 'BRL', 'CAD', 'CHF', 'CNY', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HRK', 'ISK', 'JPY', 'KRW', 'LTL', 'LVL', 'MXN', 'NOK', 'NZD', 'PLN', 'RON', 'RSD', 'RUB', 'SEK', 'SGD', 'TRY', 'UAH', 'USD', 'ZAR'),
  array('BGN', 'MXN', 'RUB')
);  


$w = new sfWidgetFormI18nChoiceCurrency(array(
'culture' => 'sw',
'currencies' => $cur,
'add_empty' => false, 
'default' => 'EUR',
));

echo $w->render('cur');

异常来自 sfCultureInfo.php(第 761 行),其中将请求的货币与预定义的货币进行比较,以便 symfony 可以确保处理它们。

可以但不应该做是改变root.dat并添加缺少的货币,但我想这还不是全部,它会改变你的symfony核心代码(坏)

© www.soinside.com 2019 - 2024. All rights reserved.