2016-04-09 25 views
0

Şimdiden teşekkürler.Freemarker Dinamik olarak yerelleştirilmiş dizgiyi çağırın

Veritabanından gelen birkaç durum kodum var. Ben aşağıdaki gibi dizeleri çevirmek çalışıyorum, ftl itibaren

VA_PRODCODE_200=Valid Product 
VA_PRODCODE_205=Limited Edition Product 

- vs. Benim dil dosyasında

Örnek 200, 205, ben gibi dizeleri var. productstatus.productStatusCode veritabanından gelen ve 200 gibi değerlere sahip olan

${"VA_PRODCODE_" + productstatus.productStatusCode} 

,

205 Ama sonuç her zaman olduğu gibi geliyor:

VA_PRODCODE_200 
VA_PRODCODE_205 

herkes nasıl bu çeviriyi yapmak için bana söyleyebilir .

Teşekkür değişkeni varsayarsak benimdir

+0

Depends ... Anahtar dinamik olmadığında nasıl bir şeyleri dil dosyanızdan yazdırırsınız? – ddekany

+0

Değerleri anahtar değer çifti kullanarak ftl'ye aktarıyorum. Daha sonra ftl'de, $ {PRINT_THIS} 'u kullanarak yazdırıyorum. Bu, dil dosyasından uygun değeri yazdırır. –

cevap

0

böyle, veri modelindeki geçerli:

${.data['VA_PRODCODE_' + productstatus.productStatusCode?c]} 

?c bin ayırıcılar ekleme gibi şeyler yapabilirsiniz biçimlendirme lokalize numarayı orada önlemektir. (Ayrıca, hem yerel hem de veri modeli değişkenleri için çalışan .vars'u da kullanabilirsiniz.)

+0

Bu çok yardımcı oldu. Bu kod çalıştı - '$ {. Vars ['VA_PRODCODE_' + productstatus.productStatusCode]}' Ben 'c' kullanamazsınız çünkü bu değer dize ve tamsayı değil. –