Web applications can be made available in multiple languages through the use of internationalization. This allows the server to plug in the correct version of a piece of text based on the language chosen, but it requires that internationalization messages be used instead of hard-coded text.


== Noncompliant Code Example

----
  <form method="post">
    <label for="username">Username:</label>  <!-- Noncompliant -->
    <input type="text" id="username" name="username">
    <br>
    <label for="password">Password:</label>  <!-- Noncompliant -->
    <input type="password" id="password" name="password">
    <br>
    <input type="submit" name="submit" value="${buttonValue}">
  </form>
----


== Compliant Solution

----
  <form method="post">
    <label for="username"><fmt:message key="login.label.username" />:</label>
    <input type="text" id="username" name="username">
    <br>
    <label for="password"><fmt:message key="login.label.password" />:</label>
    <input type="password" id="password" name="password">
    <br>
    <input type="submit" name="submit" value="${buttonValue}">
  </form>
----

