2012-07-19 24 views
6

PoEdit'in PHP ek açıklamalarını anlamasını sağlamanın bir yolunu arıyorum. İşte poEdit alıp katalog haline koymak istediğiniz kod örneği verilmiştir:PoEdit ve PHP ek açıklamaları

class MyController extends Controller { 

    /** 
    * @Title "Home" 
    */ 
    public function index() { 
     ... 
    } 

} 

ilginç kısmı @Title şerhleridir. Ön denetleyicide erişilir ve <title>...</title> etiketinde etkin bir şekilde sona eren ana görünüme atanır.

Şimdi bu dizgeye dönüştürülmem gerekiyor, ancak PoEdit yalnızca _() ifadelerini anlıyor ve anahtar kelimelere @Title ekleniyor görünüyor. Bunun nedeni, PHP'deki ek açıklamaların yorum bloğunda bulunmasıdır.

PoEdit'i ek açıklamaları anlamaya zorlamanın bir yolu var mı?

+4

Aslında belge üzerinde şeyler yapmak yorumların kullanımını sevmediğim. Yorumlar, kodu anlamak için insan tarafından okunabilir metinler için ayrılmalı ve belki de değişken türlerini seçmede IDE'lere yardımcı olmalıdır. Uygulamada herhangi bir işlev sunucu olmamalıdır. –

+0

PHP'de ek açıklama yapmanın tek yolu budur ve aslında dilde yansıma alt sistemi tarafından onaylanmıştır. Çeşitli Yansıma sınıflarında getDocComment() yöntemine bakın. Ayrıca, insanlar için gerçekten okunabilirler - yukarıdaki örneğe alternatif olarak, eylem kodunda PageView :: getInstance() -> setTitle ("Home") gibi bir şey olur. –

+0

Orada @Truth ile aynı fikirdeyim, bir şeyler yapmak için ek açıklamaları kullanarak değişkenleri boş dosya isimleri olarak kaydetmek gibidir; yapabilirsin, ama sadece garip. Bunun yanı sıra, dosyanın sadece okunan değeri okumak için metin olarak erişilmesi, ne zaman gerekli olursa olsun, sıradan bir değişken, örneğin bir kamusal sınıf mülkü belirleyebildiği zaman, bir israf gibi görünüyor. – Mahn

cevap

0

Gerçekten bu şekilde yapmak istiyorsanız, ek açıklama dizisini _ (string) ile değiştirirken, ihtiyacınız olan dizeleri php dosyalarından harici bir dosyaya çıkarabilirsiniz; Her maç için ve bu dosyada Poedit'i çalıştırın. (Ev)

3

Kısa cevap, yapamazsınız: $2 değeri olacaktır, ek açıklama olacak maçında $1 (Başlık) -

Sen .*\*\s\@(\w+)\s\"(\w+)\".* ile eşleşebilir.

POEdit, dosyalarınızı taramak için xgettext kullanır ve bu nedenle belirli bir sözdizimi kullanarak yorum satırlarını göz ardı eder. > String 'test'

_("test"); - -> string 'test'

_('test' -> dize

_('test');: anahtar kelimeleriniz _ ise Örneğin

, aşağıdaki örnekler gibi ayrıştırılır 'Test'

_ 'test -> hiçbir yakalamak

_('test -> hiçbir yakalayacağım

_(test) -> hiçbir yakalamak

_($test) -> hiçbir yakalamak

//_('test'); -> hiçbir yakalamak

/*_('test');*/ -> hiçbir yakalamak

Sen xgettext yürütebilirsiniz diğer parametreleri kullanarak ama hedefinize ulaşabileceksiniz emin değilim.


(değil standart ofc) placeholder gibi diğer anahtar kelime eklemek ve yapmak bir php fonksiyonu

function placeholder($string){} 

gibi ve onu kullanmaktır biri kolay düzeltme yüzden poEdit ayrıştırmak o

class MyController extends Controller { 

    /** 
    * @Title "Home" 
    */ 
    public function index() { 
     placeholder('Home'); 
     ... 
    } 

} 

Önceden ayrıştırıcınızdaki basit _($value)'u kullanın ve başlığınız tercüme edilecek. Dunno kodunuz nasıl ancak buna benzer bir şey varsayar.

o $ etiketi = 'başlığı' $ ve değerini varsayarsak = 'Ev'

echo '<'.$tag.'>'._($value).'</'.$tag.'>';