summaryrefslogtreecommitdiff
path: root/web-ui/app
diff options
context:
space:
mode:
authorTayane Fernandes <tayane.rmf@gmail.com>2017-02-07 17:48:30 -0200
committerGitHub <noreply@github.com>2017-02-07 17:48:30 -0200
commitb31c7cea4048b6e3e529652f006fbd04eb840529 (patch)
tree189c9aa1dff54a59aa0e5d297c6b85c1d3e1c78a /web-ui/app
parent4ee98503c8dcd715afceaf1baf7d4afb686ef02e (diff)
parentebd5b3adce44a16213e5c1ec763a642899eba908 (diff)
Merge pull request #961 from pixelated/backup-email-page
Add translation for account recovery
Diffstat (limited to 'web-ui/app')
-rw-r--r--web-ui/app/js/account_recovery.js9
-rw-r--r--web-ui/app/js/account_recovery/i18n.js39
-rw-r--r--web-ui/app/js/account_recovery/page.js21
-rw-r--r--web-ui/app/locales/en_US/translation.json11
-rw-r--r--web-ui/app/locales/pt_BR/translation.json11
5 files changed, 77 insertions, 14 deletions
diff --git a/web-ui/app/js/account_recovery.js b/web-ui/app/js/account_recovery.js
index 441a8936..cd01378d 100644
--- a/web-ui/app/js/account_recovery.js
+++ b/web-ui/app/js/account_recovery.js
@@ -1,13 +1,18 @@
import React from 'react'
import { render } from 'react-dom'
-import Page from 'js/account_recovery/page'
import a11y from 'react-a11y'
+import { I18nextProvider } from 'react-i18next'
+
+import Page from 'js/account_recovery/page'
+import i18n from 'js/account_recovery/i18n'
import 'font-awesome/scss/font-awesome.scss'
if(process.env.NODE_ENV === 'development') a11y(React);
render(
- <Page/>,
+ <I18nextProvider i18n={ i18n }>
+ <Page/>
+ </I18nextProvider>,
document.getElementById('root')
);
diff --git a/web-ui/app/js/account_recovery/i18n.js b/web-ui/app/js/account_recovery/i18n.js
new file mode 100644
index 00000000..9c6ad550
--- /dev/null
+++ b/web-ui/app/js/account_recovery/i18n.js
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2017 ThoughtWorks, Inc.
+ *
+ * Pixelated is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Pixelated is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+ */
+import i18n from 'i18next'
+import i18nBackend from 'i18nextXHRBackend'
+import i18nDetector from 'i18nextBrowserLanguageDetector'
+
+const detector = new i18nDetector();
+const detect = detector.detect.bind(detector);
+
+detector.detect = function(detectionOrder) {
+ let result = detect(detectionOrder);
+ return result.replace('-', '_');
+};
+
+i18n
+ .use(i18nBackend)
+ .use(detector)
+ .init({
+ fallbackLng: 'en_US',
+ backend: {
+ loadPath: 'assets/locales/{{lng}}/{{ns}}.json'
+ }
+ });
+
+export default i18n;
diff --git a/web-ui/app/js/account_recovery/page.js b/web-ui/app/js/account_recovery/page.js
index 5d4f2c36..a94c2c45 100644
--- a/web-ui/app/js/account_recovery/page.js
+++ b/web-ui/app/js/account_recovery/page.js
@@ -1,27 +1,28 @@
import React from 'react'
+import { translate } from 'react-i18next'
import 'scss/account_recovery/page.scss'
-const Page = () => (
+export const Page = ({ t }) => (
<div className='container'>
- <img src='assets/images/forgot-my-password.svg' alt="Esqueci minha senha!"/>
+ <img src='assets/images/forgot-my-password.svg' alt={t('backup-account.image-description')}/>
<form>
- <h1>E se você esquecer sua senha?</h1>
- <p>Informe outro e-mail que você usa regularmente. Esse será o seu e-mail de recuperação.</p>
- <p>Instruções para recuperar sua senha serão enviadas para esse e-mail, guarde com carinho.</p>
+ <h1>{t('backup-account.title')}</h1>
+ <p>{t('backup-account.paragraph1')}</p>
+ <p>{t('backup-account.paragraph2')}</p>
<div className="field-group">
<input type="text" name="email" className="email" required/>
- <label className="animated-label" htmlFor="email">Digite seu e-mail de recuperação</label>
+ <label className="animated-label" htmlFor="email">{t('backup-account.input-label')}</label>
</div>
- <button>Adicionar e-mail</button>
+ <button>{t('backup-account.button')}</button>
<div>
<a href="/">
<i className="fa fa-angle-left" aria-hidden="true"></i>
- <span>Voltar</span>
+ <span>{t('back-to-inbox')}</span>
</a>
</div>
</form>
</div>
-);
+)
-export default Page
+export default translate('', { wait: true })(Page)
diff --git a/web-ui/app/locales/en_US/translation.json b/web-ui/app/locales/en_US/translation.json
index 6e2cef80..db018db4 100644
--- a/web-ui/app/locales/en_US/translation.json
+++ b/web-ui/app/locales/en_US/translation.json
@@ -73,5 +73,14 @@
"trash": "Trash",
"all": "All",
"tags": "Tags"
- }
+ },
+ "backup-account": {
+ "image-description": "Forgot my password!",
+ "title": "What if you forget your password?",
+ "paragraph1": "You will need a backup account. Choose an alternative email address you use regularly.",
+ "paragraph2": "Instructions to recover your password will be sent to this email address, save it.",
+ "input-label": "Type your backup account",
+ "button": "Add Account"
+ },
+ "back-to-inbox": "Back to my inbox"
}
diff --git a/web-ui/app/locales/pt_BR/translation.json b/web-ui/app/locales/pt_BR/translation.json
index d1ab7245..87b2655e 100644
--- a/web-ui/app/locales/pt_BR/translation.json
+++ b/web-ui/app/locales/pt_BR/translation.json
@@ -73,5 +73,14 @@
"trash": "Lixeira",
"all": "Todas",
"tags": "Etiquetas"
- }
+ },
+ "backup-account": {
+ "image-description": "Esqueci minha senha!",
+ "title": "E se você esquecer sua senha?",
+ "paragraph1": "Informe outro e-mail que você usa regularmente. Esse será o seu e-mail de recuperação.",
+ "paragraph2": "Instruções para recuperar sua senha serão enviadas para esse e-mail, guarde com carinho.",
+ "input-label": "Digite seu e-mail de recuperação.",
+ "button": "Adicionar e-mail"
+ },
+ "back-to-inbox": "Voltar"
}