En iyi seçenek spritf () işlevini kullanmaktır. Sonra dizeleri dinamik içeriği işlemek için printf gösterimini kullanabilirsiniz. İşte sizin için kolayca bu işlemek için bir süre önce burada bulunan bir işlevdir:
function translate()
{
$args = func_get_args();
$num = func_num_args();
$args[0] = gettext($args[0]);
if($num <= 1)
return $args[0];
return call_user_func_array('sprintf', $args);
}
Şimdi, örneğin, 1. size dize değiştirmek isteyeyim:
%s poked %s
Hangi olur böyle translate () fonksiyonu içine girdi:
<?php echo translate('%s poked %s', $user1, $user2); ?>
Sen poEdit ile) (işlevlerini tüm çevirmek ayrıştırmak istiyorum. ve sonra dize %s dizesi yer tutucuları değiştirmeden sen ne istediğini dile, "% s% s dürttü" çevirmek. Bunlar sırasıyla user1 ve user2 ile translate () fonksiyonu ile çıkış üzerine yerine olacaktı. Daha gelişmiş kullanımlar için PHP Kılavuzunda) (sprintf hakkında daha fazla bilgi edinebilirsiniz.
Sorun # 2. Sen poEdit kategori adlarını içeren ayrıştırmak statik bir dosya oluşturmanız gerekir. Örneğin, "misctranslations.php":
<?php
_('Cars');
_('Trains');
_('Airplanes');
Sonra poEdit ayrıştırma misctranslations.php var. Daha sonra çıkış kullanarak kategori adı çeviri <?php echo gettext($data['name']); ?>
mümkün olacaktır