在 PHP < 5.5 中,不支持具有命名参数的 Intl MessageFormatter 字符串。对于某些语言和字符串,这会导致翻译字符串非常难以理解。
PHP 5.4 ( PHP < 5.5 )
$Formater = new MessageFormatter($locale, "{0} inhabit {1}.");
print $Formater->format(array('Wookies', 'Kashyyyk'));
与 PHP 5.5 命名参数对比
$Formater = new MessageFormatter($locale, "{raceName} inhabit {planetName}.");
print $Formater->format(array('raceName'=>'Wookies', 'planetName=>'Kashyyyk'));
我们的软件必须支持从 5.3 -> 到最新的 PHP 版本,但我想让翻译人员的工作更轻松。
任何人都可以提出一种在 PHP < 5.5 上实现 MessageFormatter 命名参数的方法吗?