It's the exact same question: Localization/Internationalization for Polymer 1.0
Polymer has dropped support for i18n (apparently) and has moved to use format.js with its app-localize-behavior component. So far all the examples work with data binding. But I need to set an element's attribute through JavaScript's setAttribute method.. How can I achieve this?
    <dom-module id="pgarena-login">
      <template>
        <style is="custom-style" include="pgarena-login-styles"></style>
        <style>
        </style>
        <form is="iron-form" method="post" action$="{{action}}" id="login">
           <h2>Login</h2>
          <paper-input label="Username" required tabindex="0" name="UserName"></paper-input>
          <paper-input label="Password" type="password" required tabindex="0" name="Password"></paper-input>
          <!-- Anti Forgery Token -->
          <content></content>
          <paper-button onclick="_submit(event)">Login</paper-button>
        </form>
      </template>
      <script>
          function _submit(event) {
              Polymer.dom(event).localTarget.parentElement.submit();
          }
      (function() {
          'use strict';
           Polymer({
               is: 'pgarena-login',
               behaviors: [
                Polymer.AppLocalizeBehavior
               ],
               ready: function () {
                   var $this = this;
           this.$.login.addEventListener('iron-form-error', function (event) {
                       console.log(event);
                       if (event.detail.request.xhr.status === 400) {
                           Array.prototype.slice.call(Polymer.dom(this.root).querySelectorAll('paper-input'))
                               .forEach(function(element) {
                                   element.setAttribute("invalid", true);
//Problematic Line here=>                                    element.setAttribute("error-message",         $this.localize("Login_Fail_UsernameInvalid"));
                               });
                       }
                   });
                   this.$.login.addEventListener('iron-form-response', function (event) {
                       console.log('chapewn');
                       console.log(event);
                       console.log(event.detail);
                   });
               },
            properties : {
              action : {
                type: String
              }
            },
            attached: function () {
                this.loadResources(this.resolveUrl('../locales.json'));
            },
          });
        })();
      </script>
    </dom-module>
 
     
    