Bir komut dosyası kullanarak şablonları bir demet işlev çağrıları için arayın

1 Cevap php

Ben "__" özel bir işlevi çevirmek kullanan php şablonları bir yük var, yani

<?php echo __("Hello"); ?>

Ben tüm bu işlev çağrıları (yaklaşık 200 şablonlar vardır) arayacaktır bir komut dosyası yazmak gerekiyor.

Yani o ("Merhaba") __ bulmak ve tercüme dizisi olmak üzere bir cümle eklemek olacaktır. Örneğin o bulacaksınız:

$sentences[] = "Hello";
$sentences[] = "Goodbye";
$sentences[] = "Random sentence to be translated";

Temelde ben tercüme edilmesi gereken dizeleri bulmak gerekir.

Eğer komut yapıyor için en iyi dil hangisi sizce? ve bunu düzenli bir ifade kullanmak daha iyi olacak sizce?

Bana doğru yönde işaret herhangi bir yardım muhteşem olurdu!

Teşekkürler

1 Cevap

Ben her zaman dize işleme sorunları için Perl atlamak.

Ancak, awk veya sed kolayca sorunu çözmek olabilir.

Örneğin, Perl:

 while(<>) {
   if( $_ =~ /echo __\((".*?")\)/ ) {
     print '$sentences[] = ' + $1;
   }
 }

Not, bu satıra bir tek dize yakalayacaktır. Sen daha fazlasını yapabilirsiniz, ama okuyucu için bir alıştırma olarak bırakacağım.

Ayrıca, döngü komut satırında geçmek her dosyada her hattı üzerinden olacak '(<>) ise'. Bu neye ihtiyacınız varsa bir dizindeki tüm dosyaları okumak bir yol da var.