HTML-Etiketler yerelleştirme

3 Cevap php

I wanted to localizate some texts in my Zend Framework applicaiton. There are some texts like:

Hello, I'm <a href="test.php" title="Title-Attribute" rel="test">a sample text</a>, greetings to all of you! :)

Bunu hiçbir html varsa, bu localizate için basit, ama HTML içinde, ben onu en iyi nasıl yapmalıyım?

3 Cevap

Gibi bazı yerelleştirme araçları Virtaal XML (HTML) etiketleri kolları way bu kolay çevirmen ile çalışmak için yapar. Diğer seçenek bir dize biçimlendirme değişken etiketi değiştirme ve biçimlendirme sonucu yerine biçim dizesi localisable yaparak localisers sunulan dize basitleştirmek için. (Örneğin çoğunlukla örnek uğruna tahmin ediyorum ve çok iyi PHP bilmiyorum):

printf(_("Hello, I'm %sa sample%s, greetings to all of you!"), '<a href="test.php" title="Title-Attribute" rel="test">', "</a>");

Yukarıdaki açıklamada localiser göreceksiniz dize (o _() gettext işlevinde sarılır çünkü) %s biçimlendirme sadece değişken içeren bir tanesidir. Bu, elbette, o değişkenlerin yerini ne olacağını habersiz olan (lar) varsa bir localiser oldukça kafa karıştırıcı olmanın dezavantajı var, bu nedenle uygun bir yerelleştirme yorum dahil edebilirim.

Sen UI herhangi bir dize lokalize edilmelidir. Bu durumda, UI / kontrol elemanlarının bir arada var. Bu title özniteliğin içeriği ayrı ayrı lokalize edilmesi anlamına gelir.

Bu durumda, bu şu anlama gelir:

$guilink = "<a href='test.php' "
           ."title='".gettext("Title-Attribute")."'"
           ." rel='test'>"
           .gettext( "a sample text" )
           ."</a>";

$guistring = sprintf( 
      gettext( "Hello, I'm %s, greetings to all of you! :)" ),  $guilink );

Ancak, Gordon dediği gibi: overcomplicate yok.

Çeviri adaptörleri için çeviri HTML veya içerip içermediğini bir fark olmamalıdır. Eğer inline HTML ile kısa dizeleri var ise gerektiği gibi, sadece dil kaynak dosyasına HTML ile birlikte çeviri koydu. Sadece HTML dizesi içinde olduğunda çıkış kaçan olmadığından emin olmak gerekir.


EDIT xtofl gibi çevirmenler HTML işleme aşina olabilir, çünkü dil dosyası içinde HTML olan, optimal bir çözüm değildir, yorumlar da dikkat çekti. Buna bazı gerçekler olmasına rağmen, ben ihmal buluyorum. HTML roket bilimi değildir ve inline HTML elemanları görünebilir bazı durumlarda için, bir hile levha ile onlara sağlayabilir. Profesyonel çevirmenler bu işlemek gerekir. Başka bir endişe onları örneğin, istenmeyen içerik ekleyerek olacak bağlantılar (yerine profesyonellerin toplum çevirmenler ile çalışıyorsanız). Eğer zaten herhangi çevirmenlere söz etmedi ama beri, seni yagni . There is no need to overcomplicate things. yukarıdaki tüm bu durumda çeviri kendinizi yaptığını varsayalım