§ Mesajları haricileştirme ve uluslarlarasılaştırma
§Uygulamanızın desteklediği dilleri belirtmek
Uygulamanızın dillerini belirtmek için, geçerli bir ISO Dil Kodu tarafından belirtilen ve tercihen geçerli bir ISO Ülke Kodu ile devam eden geçerli bir dil koduna ihtiyacınız vardır. Örneğin, fr
veya en-US
.
Başlangıç olarak, uygulamanızın desteklediği dilleri conf/application.conf
dosyasında belirtmelisiniz:
application.langs="en,en-US,fr"
§Mesajları haricileştirme
Mesajları, conf/messages.xxx
dosyalarında haricileştirebilirsiniz.
Varsayılan conf/messages
dosyası tüm dillerle eşleşir. Dilerseniz, örneğin conf/messages.fr
veya conf/messages.en-US
şeklinde ilave dil mesaj dosyaları belirtebilirsiniz.
play.i18n.Messages
nesnesini kullanarak mevcut dil için mesajları çağırabilirsiniz:
String title = Messages.get("home.title")
Aynı zamanda, dili belirtebilirsiniz:
String title = Messages.get(new Lang(Lang.forCode("fr")), "home.title")
Not: Eğer kapsamda bir
Request
iniz varsa o,Accept-Language
başlığından çıkarılan ve uygulamanın desteklenen dillerinden biriyle eşleşen tercih edilen dil için varsayılan birLang
değeri sağlayacaktır. Aynı zamanda,Lang
ı şablonunuza şu şekilde kapalı bir parametre olarak da eklemelisiniz:@()(implicit lang: Lang)
.
§Şablonlarda kullanım
@import play.i18n._
@Messages.get("key")
§Mesajları biçimlendirme
Mesajlar, java.text.MessageFormat
kütüphanesi kullanılarak biçimlendirilirler. Örneğin, bu şekilde bir mesaj tanımladıysanız:
files.summary=The disk {1} contains {0} file(s).
Parametreleri şöyle belirtebilirsiniz:
Messages.get("files.summary", d.files.length, d.name)
§Kesme işaretleri üzerine notlar
Mesajlar java.text.MessageFormat
kullandığından, lütfen kesme işaretlerinin (tek tırnakların) parametre yer değişimlerini kurtama işlemi için birer meta karakter olarak kullanıldığının farkında olun.
Örneğin, aşağıdaki mesajları tanımladıysanız:
info.error=You aren''t logged in!
example.formatting=When using MessageFormat, '''{0}''' is replaced with the first parameter.
aşağıdaki sonucu elde etmeyi beklemelisiniz:
String errorMessage = Messages.get("info.error");
Boolean areEqual = errorMessage.equals("You aren't logged in!");
String errorMessage = Messages.get("example.formatting");
Boolean areEqual = errorMessage.equals("When using MessageFormat, '{0}' is replaced with the first parameter.");
§Bir HTTP isteğinden desteklenen dilleri almak
Belirli bir HTTP isteğinin desteklenen dillerini şu şekilde alabilirsiniz:
public static Result index() {
return ok(request().acceptLanguages());
}
Sonraki: Uygulama Global nesnesi
Dokümantasyonun bu çevirisi Play ekibi tarafından yapılmamaktadır. Eğer bir hata bulduysanız, bu sayfanın kaynak kodu burada bulunmaktadır. Dokümantasyon yönergelerini okuduktan sonra lütfen katkı yapmaktan çekinmeyin.