-
Notifications
You must be signed in to change notification settings - Fork 3
JavaI18N
To specify your application’s languages, you need a valid language code, specified by a valid ISO Language Code, optionally followed by a valid ISO Country Code. For example, fr
or en-US
.
To start, you need to specify the languages that your application supports in its conf/application.conf
file:
application.langs="en,en-US,fr"
You can externalize messages in the conf/messages.xxx
files.
The default conf/messages
file matches all languages. You can specify additional language messages files, such as conf/messages.fr
or conf/messages.en-US
.
You can retrieve messages for the current language using the play.i18n.Messages
object:
String title = Messages.get("home.title")
You can also specify the language explicitly:
String title = Messages.get(new Lang("fr"), "home.title")
Note: If you have a
Request
in the scope, it will provide a defaultLang
value corresponding to the preferred language extracted from theAccept-Language
header and matching one of the application’s supported languages. You should also add aLang
implicit parameter to your template like this:@()(implicit lang: Lang)
.
@import play.i18n._
@Messages.get("key")
Messages can be formatted using the java.text.MessageFormat
library. For example, if you have defined a message like this:
files.summary=The disk {1} contains {0} file(s).
You can then specify parameters as:
Messages.get("files.summary", d.files.length, d.name)
You can retrieve a specific HTTP request’s supported languages:
public static Result index() {
return ok(request().acceptLanguages());
}
- HTTP programming
- Asynchronous HTTP programming
- The template engine
- HTTP form submission and validation
- Working with JSON
- Working with XML
- Handling file upload
- Accessing an SQL database
- Using the Cache
- Calling web services
- Integrating with Akka
- Internationalization
- The application Global object
- Testing your application