Documentation

You are viewing the documentation for the 2.3.x release series. The latest stable release series is 2.4.x.

§ 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/messagesdosyası 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 Requestiniz 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 bir Langdeğ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.