它类似于Drupal 所拥有的。
我当前的函数定义是这样的:
string t(string $singular, [string $plural, int $number, mixed $arg1, ...])
参数的顺序不必遵循这种模式。只string $singular
需要出于明显的原因成为第一个。
一些示例来演示它是如何工作的:
翻译“你好”:
t('Hello')
翻译“Hello”并格式化字符串(我正在使用
vsprintf
withfunc_get_args()
)t('Hello %s', $user)
复数翻译:
t('%d apple', '%d apples', 5, 5)
所以问题就从这里开始了。如果第二个参数是字符串并且第三个参数是整数,我假设这是对复数翻译的请求。
问题是我可能会错误地截获单个翻译请求:
$user = 'Mary'; t('%s, you need at least %d apples for me to take you srsly', $user, 420)
您对如何更好地实现此类功能并避免此类冲突有任何建议吗?