2012-02-28 24 views
6

Symfony2 projem için çevirmen hizmetini ekledim. Ben hem denetleyicilerde hem de dal şablonlarında kullanıyorum. İyi yapılandırılmış ve {% trans %} etiketlerinin anlamı, oldukları gibi çalışır. Ancak bazı durumlarda {% transchoice %} etiketini kullanmam gerekiyor ve çeviriyi almıyor. İşte kodumdan bir örnek. Ayrıca, bir satırda yazmayı da denediniz.Symfony2 transchoice etiketi

Yorum sayımı için doğru seçimi alıyorum, ancak kelimenin kendisi tercüme edilmedi. Çeviricinin karşılık gelen çeviriyi bulamaması gibi. messages.de.yml ben benim transchoice sözdizimi yanlış bir şey

Comment: "Kommentar" 
Comments: "Kommentare" 

mi var? Belki bir yere ya da böyle bir yere yer açmam gerekiyordur?

çeviri dosyasında

cevap

10

, bu yazmalıdır:

{0} Comments| {1} Comment| ]1,Inf] Comments: "{0} Kommentare| {1} Kommentar| ]1,Inf] Kommentare" 

GÜNCELLEME: bir xliff örnek benim için çalışıyor:

 <trans-unit id="search.results.summary"> 
      <source>search.results.summary</source> 
      <target>{0}Pas d'annotations trouvée pour "%search_text%"|{1}Une annotation trouvée pour "%search_text%"|]1,Inf]%search_count% annotations trouvées pour "%search_text%"</target> 
     </trans-unit> 

Bunu kullanmak nasıl:

<h2>{{ 'search.results.summary' | transchoice(search_count, { 
'%search_text%': search_text, 
'%search_count%': search_count}) }}</h2> 

Gördüğünüz gibi, compl kullanmıyorum çeviri için kaynak olarak icat edilmiş notasyon, çünkü oldukça işe yaramaz ve şablonu daha az okunabilir hale getirecektir. Bunun yerine, dizgemin semantik değerini temsil eden noktadan ayrılmış bir dize koydum.

comment.summary: "{0} Kommentare|{1} Kommentar|]1,Inf] Kommentare" 

ve

{% transchoice post['comments']['count'] %} 
    'comment.summary' 
{% endtranschoice %} 

iyi şanslar: Senin durumunda

, böyle bir şey olurdu kullanılacak doğru olanı sanırım. Çeviri seçimi için doğru olmayacak

+0

. Bu arada, bu dalda bile ayrıştırılamaz. – ArVan

+0

Neden bunun doğru olmayacağını söylüyorsunuz? Çeviriler için yml'ye aşina değilim, ama bunu xliff ile kullandım ve işe yarıyor (ve gayet iyi ayrışıyor). Belki bazı şeyleri ayarlaman gerekecek. Bu arada, yazdıklarınızı yeniden kullandım, bu yüzden ayrıştırmazsa, * senin * arızanın. Ve boruları ve parantez arasındaki boşluk nedeniyle ayrılmıyor düşünüyorum. Gönderiyi benim için çalışan bir xliff örneği ile güncelleyeceğim, umarım size yardımcı olacaktır. – greg0ire

+0

Şimdi işe yarıyor. Tek sorun, eksik çeviri durumunda, 'comment.summary' metni görüntülenecektir ... – ArVan