JSFiddle - React, Tailwind, and code Playground

Fliplet component i18n example

by Hugo Carneiro

HTML

<script src="https://api.fliplet.com/sdk.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/i18next/19.4.4/i18next.min.js"></script>
<h1 data-i18n-key="component.login:title">Login</h1>
<p data-i18n-key="component.login:instruction">Enter your access details below</p>
<input type="email" class="form-control profile_email" name="Email" data-i18n-key="component.login:emailPlaceholder" data-i18n-type="attr" data-i18n-attr="placeholder" placeholder="Enter your email" autocomplete="false" />
<input type="password" class="form-control profile_password" data-i18n-key="component.login:passwordPlaceholder" data-i18n-type="attr" data-i18n-attr="placeholder" name="Password" placeholder="Enter your password" autocomplete="false" />
<p class="text-danger login-error hidden" data-i18n-key="component.login:mismatch">The details you entered don’t match our records. Please try again.</p>
<p><button class="btn btn-primary btn-login" type="submit">
  <span class="btn-label" data-i18n-key="component.login:action">Log in</span>
</button></p>

JavaScript

i18next.init({
  lng: 'ua',
  fallbackLng: 'en',
  resources: {
    ua: {
      'component.login': {
        title: 'Логін',
        instruction: 'Введіть ваші деталі',
        mismatch: 'Помилка. Спробуйте ще раз',
        action: 'Логін',
        loading: 'Loading...',
        emailPlaceholder: 'Enter your email address',
        passwordPlaceholder: 'Enter your password',
        loginError: 'Login error'
      }
    },
    zh: {
      'component.login': {
        title: '登入',
        instruction: '請填入帳號資料',
        mismatch: '您輸入的資料不符合我們的紀錄。請再嘗試一次。',
        action: '登入',
        loading: '載入中',
        emailPlaceholder: '輸入您的電子郵件',
        passwordPlaceholder: '輸入您的密碼',
        loginError: '登入失敗'
      }
    },
    it: {
      'component.login': {
        title: 'Accesso',
        instruction: 'Inserisci i dettagli di accesso di seguito',
        mismatch: 'I dettagli che hai inserito non corrispondono ai nostri record. Per favore riprova.',
        action: 'Accesso',
        loading: 'Caricamento in corso...',
        emailPlaceholder: 'Inserisci il tuo indirizzo email',
        passwordPlaceholder: 'Inserisci la tua password',
        loginError: 'Errore di accesso'
      }
    },
    it: {
      'component.login': {
        title: 'Accesso',
        instruction: 'Inserisci i dettagli di accesso di seguito',
        mismatch: 'I dettagli che hai inserito non corrispondono ai nostri record. Per favore riprova.',
        action: 'Accesso',
        loading: 'Caricamento in corso...',
        emailPlaceholder: 'Inserisci il tuo indirizzo email',
        passwordPlaceholder: 'Inserisci la tua password',
        loginError: 'Errore di accesso'
      }
    },
    en: {
      'component.login': {
        title: 'Login',
        instruction: 'Enter your access details below',
        mismatch: 'The details you entered don’t match our records. Please try again.',
        action: 'Login',
        loading: 'Loading...',
        emailPlaceholder: 'Enter your email...