From c577983b995026c5a4f02410cbabbce9432d00eb Mon Sep 17 00:00:00 2001
From: Valentine Zavgorodnev <i@valzav.com>
Date: Fri, 7 Oct 2016 14:34:28 -0400
Subject: [PATCH] add i18n support (#430)

* merge i18n related changes from steemit-intl #233

* Readme typo
---
 app/Translator.js          | 136 +++++++++++
 app/components/App.jsx     |  93 ++++++--
 app/locales/README.md      |  38 +++
 app/locales/en.js          | 460 +++++++++++++++++++++++++++++++++++++
 app/locales/es.js          | 460 +++++++++++++++++++++++++++++++++++++
 app/locales/es_AR.js       | 460 +++++++++++++++++++++++++++++++++++++
 app/locales/fr.js          | 460 +++++++++++++++++++++++++++++++++++++
 app/locales/it.js          | 460 +++++++++++++++++++++++++++++++++++++
 app/locales/jp.js          | 460 +++++++++++++++++++++++++++++++++++++
 app/locales/ru.js          | 459 ++++++++++++++++++++++++++++++++++++
 package.json               |   2 +
 shared/UniversalRender.jsx |   5 +
 12 files changed, 3470 insertions(+), 23 deletions(-)
 create mode 100644 app/Translator.js
 create mode 100644 app/locales/README.md
 create mode 100644 app/locales/en.js
 create mode 100644 app/locales/es.js
 create mode 100644 app/locales/es_AR.js
 create mode 100644 app/locales/fr.js
 create mode 100644 app/locales/it.js
 create mode 100644 app/locales/jp.js
 create mode 100644 app/locales/ru.js

diff --git a/app/Translator.js b/app/Translator.js
new file mode 100644
index 000000000..4239df667
--- /dev/null
+++ b/app/Translator.js
@@ -0,0 +1,136 @@
+import React from 'react';
+import isString from 'lodash/isString';
+import isObject from 'lodash/isObject';
+import isUndefined from 'lodash/isUndefined';
+import { IntlProvider, addLocaleData, injectIntl } from 'react-intl';
+
+// most of this code creates a wrapper for i18n API.
+// this is needed to make i18n future proof
+
+/*
+module exports two functions: translate and translateHtml
+usage example:
+translate('reply_to_user', {username: 'undeadlol1') == 'Reply to undeadlol1'
+translateHtml works the same, expcept it renders string with html tags in it
+*/
+
+// locale data is needed for various messages, ie 'N minutes ago'
+import enLocaleData from 'react-intl/locale-data/en';
+import ruLocaleData from 'react-intl/locale-data/ru';
+import frLocaleData from 'react-intl/locale-data/fr';
+import esLocaleData from 'react-intl/locale-data/es';
+import itLocaleData from 'react-intl/locale-data/it';
+addLocaleData([...enLocaleData, ...ruLocaleData, ...frLocaleData, ...esLocaleData, ...itLocaleData]);
+
+// Our translated strings
+import { en } from './locales/en';
+import { ru } from './locales/ru';
+import { fr } from './locales/fr';
+import { es } from './locales/es';
+import { it } from './locales/it';
+const translations = {
+	en: en,
+	ru: ru,
+	fr: fr,
+	es: es,
+	it: it
+}
+
+// exported function placeholders
+// this is needed for proper export before react-intl functions with locale data,
+// will be properly created (they depend on react props and context,
+// which is not available until component is being created)
+let translate = () => {};
+let translateHtml = () => {};
+let translatePlural = () => {};
+
+// react-intl's formatMessage and formatHTMLMessage functions depend on context(this is where strings are stored)
+// thats why we:
+// 1) create instance of <IntlProvider /> which wraps our application and creates react context (see "Translator" component below)
+// 2) create <DummyComponentToExportProps /> inside <IntlProvider /> (the "Translator" component)
+// 3) now we have proper context which we use to export translate() and translateHtml() to be used anywhere
+// all of this shenanigans are needed because many times translations are needed outside of components(in reducers and redux "connect" functions)
+// but since react-intl functions depends on components context it would be not possible
+
+class DummyComponentToExportProps extends React.Component {
+
+	render() { // render hidden placeholder
+		return <span hidden>{' '}</span>
+	}
+
+	// IMPORTANT
+	// use 'componentWillMount' instead of 'componentDidMount',
+	// or there will be all sorts of partially renddered components
+	componentWillMount() {
+		// assign functions after component is created (context is picked up)
+		translate = 	(...params) => this.translateHandler('string', ...params)
+		translateHtml = (...params) => this.translateHandler('html', ...params)
+		translatePlural = (...params) => this.translateHandler('plural', ...params)
+	}
+
+	translateHandler(translateType, id, values, options) {
+		const 	{ formatMessage, formatHTMLMessage, formatPlural } = this.props.intl
+		// choose which method of rendering to choose: normal string or string with html
+		// handler = translateType === 'string' ? formatMessage : formatHTMLMessage
+		let handler
+		switch (translateType) {
+			case 'string':
+				handler = formatMessage; break
+			case 'html':
+				handler = formatHTMLMessage; break
+			case 'plural':
+				handler = formatPlural; break
+			default:
+				throw new Error('unknown translate handler type')
+		}
+		// check if right parameters were used before running function
+		if (isString(id)) {
+			if (!isUndefined(values) && !isObject(values)) throw new Error('translating function second parameter must be an object!');
+			// map parameters for react-intl,
+			// which uses formatMessage({id: 'stringId', values: {some: 'values'}, options: {}}) structure
+			else return handler({id}, values, options)
+		}
+		else throw new Error('translating function first parameter must be a string!');
+	}
+}
+
+// inject translation functions through 'intl' prop (not using decorator)
+DummyComponentToExportProps = injectIntl(DummyComponentToExportProps)
+
+// actual wrapper for application
+class Translator extends React.Component {
+	render() {
+        /* LANGUAGE PICKER */
+
+		// Define user's language. Different browsers have the user locale defined
+		// on different fields on the `navigator` object, so we make sure to account
+		// for these different by checking all of them
+		let language = 'en';
+		// while Server Side Rendering is in process, 'navigator' is undefined
+		if (process.env.BROWSER) {
+			language = navigator ? (navigator.languages && navigator.languages[0])
+		                        || navigator.language
+		                        || navigator.userLanguage
+								: 'en';
+		}
+
+	    //Split locales with a region code (ie. 'en-EN' to 'en')
+	    const languageWithoutRegionCode = language.toLowerCase().split(/[_-]+/)[0];
+
+		// TODO: don't forget to add Safari polyfill
+
+		// to ensure dynamic language change, "key" property with same "locale" info must be added
+		// see: https://github.com/yahoo/react-intl/wiki/Components#multiple-intl-contexts
+		let messages = translations[languageWithoutRegionCode]
+		return 	<IntlProvider locale={languageWithoutRegionCode} key={languageWithoutRegionCode} messages={messages}>
+					<div>
+						<DummyComponentToExportProps />
+						{this.props.children}
+					</div>
+				</IntlProvider>
+	}
+}
+
+export { translate, translateHtml, translatePlural }
+
+export default Translator
diff --git a/app/components/App.jsx b/app/components/App.jsx
index 516905b31..48f573320 100644
--- a/app/components/App.jsx
+++ b/app/components/App.jsx
@@ -15,6 +15,7 @@ import Modals from 'app/components/modules/Modals';
 import Icon from 'app/components/elements/Icon';
 import {key_utils} from 'shared/ecc';
 import MiniHeader from 'app/components/modules/MiniHeader';
+import { translate } from '../Translator.js';
 
 class App extends React.Component {
     constructor(props) {
@@ -101,12 +102,12 @@ class App extends React.Component {
                         <ul>
                             <li>
                                 <a href="https://steemit.com/steemit/@steemitblog/steemit-com-is-now-open-source">
-                                    Steemit.com is now Open Source
+                                    {translate('steemit_is_now_open_source')}
                                 </a>
                             </li>
                             <li>
                                 <a href="https://steemit.com/steemit/@steemitblog/all-recovered-accounts-have-been-fully-refunded">
-                                    All Recovered Accounts have been fully Refunded
+                                    {translate("all_accounts_refunded")}
                                 </a>
                             </li>
                         </ul>
@@ -119,7 +120,7 @@ class App extends React.Component {
                 <div className="column">
                     <div className={classNames('callout warning', {alert}, {warning}, {success})}>
                         <CloseButton onClick={() => this.setState({showCallout: false})} />
-                        <p>Due to server maintenance we are running in read only mode.  We are sorry for the inconvenience.</p>
+                        <p>{translate("read_only_mode")}</p>
                     </div>
                 </div>
             </div>;
@@ -132,16 +133,16 @@ class App extends React.Component {
                     <div className="welcomeBanner">
                         <CloseButton onClick={() => this.setState({showBanner: false})} />
                         <div className="text-center">
-                            <h2>Welcome to the Blockchain!</h2>
-                            <h4>Your voice is worth something</h4>
+                            <h2>{translate("welcome_to_the_blockchain")}</h2>
+                            <h4>{translate("your_voice_is_worth_something")}</h4>
                             <br />
-                            <a className="button" href="/create_account" onClick={showSignUp}> <b>SIGN UP</b> </a>
+                            <a className="button" href="/create_account" onClick={showSignUp}> <b>{translate("sign_up")}</b> </a>
                             &nbsp; &nbsp; &nbsp;
-                            <a className="button hollow" href="https://steem.io" target="_blank"> <b>LEARN MORE</b> </a>
+                            <a className="button hollow uppercase" href="https://steem.io" target="_blank"> <b>{translate("learn_more")}</b> </a>
                             <br />
                             <br />
                             <div className="tag3">
-                                <b>Get {signup_bonus} of Steem Power when you sign up today.</b>
+                                <b>{translate("get_sp_when_sign_up", {signupBonus: signup_bonus})}</b>
                             </div>
                         </div>
                     </div>
@@ -154,22 +155,68 @@ class App extends React.Component {
             <SidePanel ref="side_panel" alignment="right">
                 <TopRightMenu vertical navigate={this.navigate} />
                 <ul className="vertical menu">
-                    <li><a href="https://steem.io" onClick={this.navigate}>About</a></li>
-                    <li><a href="/tags.html/hot" onClick={this.navigate}>Explore</a></li>
-                    <li><a href="https://steem.io/SteemWhitePaper.pdf" onClick={this.navigate}>Steem Whitepaper</a></li>
-                    <li><a onClick={() => depositSteem()}>Buy Steem</a></li>
-                    <li><a href="/market" onClick={this.navigate}>Market</a></li>
-                    <li><a href="http://steemtools.com/" onClick={this.navigate}>Steem App Center</a></li>
-                    <li><a href="/recover_account_step_1" onClick={this.navigate}>Stolen Account Recovery</a></li>
-                    <li><a href="/change_password" onClick={this.navigate}>Change Account Password</a></li>
-                    <li><a href="https://steemit.chat/home" target="_blank">Steemit Chat&nbsp;<Icon name="extlink"/></a></li>
-                    <li className="last"><a onClick={this.navigate} href="/~witnesses">Witnesses</a></li>
-                    <li className="last"><a onClick={this.navigate} href="/@steemitjobs">Careers</a></li>
-                    <li className="last"><a href="mailto:contact@steemit.com">Contact Steemit</a></li>
+                    <li>
+                        <a href="https://steem.io" onClick={this.navigate}>
+                            {translate("about")}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="/tags.html/hot" onClick={this.navigate}>
+                            {translate("explore")}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="https://steem.io/SteemWhitePaper.pdf" onClick={this.navigate}>
+                            {translate("whitepaper")}
+                        </a>
+                    </li>
+                    <li>
+                        <a onClick={() => depositSteem()}>
+                            {translate("buy_steem")}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="http://steemtools.com/" onClick={this.navigate}>
+                            {translate('steem_app_center')}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="/market" onClick={this.navigate}>
+                            {translate("market")}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="/recover_account_step_1" onClick={this.navigate}>
+                        {translate("stolen_account_recovery")}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="/change_password" onClick={this.navigate}>
+                            {translate("change_account_password")}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="https://steemit.chat/home" target="_blank">
+                            {translate("steemit_chat")}&nbsp;<Icon name="extlink" />
+                        </a>
+                    </li>
+                    <li className="last">
+                        <a href="/~witnesses" onClick={this.navigate}>
+                            {translate("witnesses")}
+                        </a>
+                    </li>
                 </ul>
                 <ul className="vertical menu">
-                    <li><a href="/privacy.html" onClick={this.navigate} rel="nofollow">Privacy Policy</a></li>
-                    <li><a href="/tos.html" onClick={this.navigate} rel="nofollow">Terms of Service</a></li>
+                    <li>
+                        <a href="/privacy.html" onClick={this.navigate} rel="nofollow">
+                            {translate("privacy_policy")}
+                        </a>
+                    </li>
+                    <li>
+                        <a href="/tos.html" onClick={this.navigate} rel="nofollow">
+                            {translate("terms_of_service")}
+                        </a>
+                    </li>
                 </ul>
             </SidePanel>
             {miniHeader ? <MiniHeader /> : <Header toggleOffCanvasMenu={this.toggleOffCanvasMenu} menuOpen={this.state.open} />}
@@ -181,7 +228,7 @@ class App extends React.Component {
             </div>
             <Dialogs />
             <Modals />
-        </div>;
+        </div>
     }
 }
 
diff --git a/app/locales/README.md b/app/locales/README.md
new file mode 100644
index 000000000..be0751eaa
--- /dev/null
+++ b/app/locales/README.md
@@ -0,0 +1,38 @@
+# internationalization guide
+
+## how to add your own language
+
+1. copy ./en.js
+2. rename it (for example jp.js)
+3. translate it
+5. go to server-html.jsx
+6. add your locale date as it is done in https://cdn.polyfill.io script (add ',Intl.~locale.XX' at the end of url)
+7. add localeData and newly translated strings as it is done in Translator.jsx (read the comments)
+
+## Notes for hackers and translators
+'keep_syntax_lowercase_with_dashes' on string names. Example: show_password: 'Show Password'
+Please keep in mind that none of the strings are bind directly to components to keep them reusable. For example: 'messages_count' can be used in one page today, but also can be placed in another tomorrow.
+Strings must be as close to source as possible.
+They must keep proper structure because "change_password" can translate both 'Change Password' and 'Change Account Password'.
+Same with "user hasn't started posting" and "user hasn't started posting yet", 'user_hasnt_followed_anything_yet' and 'user_hasnt_followed_anything' is not the same
+
+### About syntax rules
+
+Do not use anything to style strings unless you are 100% sure what you are doing.
+This is no good: 'LOADING' instead of 'Loading'. Avoid whitespace styling: '   Loading' - is no good.
+Also, try to avoid using syntax signs, unless it's a long ass string which will always end with dot no matter where you put it. Example: 'Loading...', 'Loading!' is no good, use 'Loading' instead.
+If you are not sure which syntax to use and how to write your translations just copy the way original string have been written.
+
+### How to use plurals
+
+Plurals are strings which look differently depending on what numbers are used.
+We use formatJs syntax, read the docs http://formatjs.io/guides/message-syntax/
+Pay special attention to '{plural} Format' section.
+[This link](http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html) shows how they determine which plural to use in different languages (they explain how string falls under 'few', 'many' and 'other' category. If you are completely lost, just look at the other translation files (en.js or ru.js).
+
+### How to use special symbols
+\n means new line break
+\' means ' (single quote sign)
+this works: 'hasn\'t', "hasn't" (double quotes > single quotes)
+this does not: 'hasn't'
+Some languages require certain strings to be empty. For example, Russian language in some context does not have equivalent for 'by'('Post created by Misha'). For empty strings use ' '(empty quotes with single space)  instead of '', otherwise you will see string name instead of nothing.
diff --git a/app/locales/en.js b/app/locales/en.js
new file mode 100644
index 000000000..bacb9ccf2
--- /dev/null
+++ b/app/locales/en.js
@@ -0,0 +1,460 @@
+const en = 	{
+	// this variables mainly used in navigation section
+	about: "About",
+	explore: "Explore",
+	whitepaper: "Steem Whitepaper",
+	buy_steem: "Buy Steem",
+	sell_steem: "Sell Steem",
+	market: "Market",
+	stolen_account_recovery: "Stolen Accounts Recovery",
+	change_account_password: "Change Account Password",
+	steemit_chat: "Steemit Chat",
+	witnesses: "Witnesses",
+	privacy_policy: "Privacy Policy",
+	terms_of_service: "Terms of Service",
+	sign_up: "Sign Up",
+	/* end navigation */
+	buy: 'Buy',
+	sell: 'Sell',
+	buy_steem_power: 'Buy Steem Power',
+	transaction_history: 'Transaction History',
+	submit_a_story: 'Submit a Story',
+	nothing_yet: 'Nothing yet',
+	close: 'Close',
+	post_promo_text: "Authors get paid when people like you upvote their post \n If you enjoyed what you read here, earn ${amount} of Steem Power \n when you {link} and vote for it.",
+	read_only_mode: 'Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.',
+	membership_invitation_only: 'Membership to Steemit.com is now under invitation only because of unexpectedly high sign up rate.',
+	submit_email_to_get_on_waiting_list: 'Submit your email to get on the waiting list',
+	login: 'Login',
+	logout: 'Logout',
+	show_less_low_value_posts: "Show less low value posts",
+	show_more_low_value_posts: "Show more low value posts",
+	select_topic: 'Select Topic',
+	tags_and_topics: "Tags and Topics",
+	filter: "Filter",
+	show_more_topics: "Show more topics",
+	we_require_social_account: 'Steemit funds each account with over ${signup_bonus} worth of Steem Power; to prevent abuse, we require new users to login via social media.',
+	personal_info_will_be_private: 'Your personal information will be kept',
+	personal_info_will_be_private_link: 'Private',
+	continue_with_facebook: 'Continue with Facebook',
+	continue_with_reddit: 'Continue with Reddit',
+	requires_positive_karma: 'requires positive Reddit comment karma',
+	dont_have_facebook: 'Don\'t have a Facebook or Reddit account?',
+	subscribe_to_get_sms_confirm: 'Subscribe to get a notification when SMS confirmation is available',
+	by_verifying_you_agree: 'By verifying your account you agree to the Steemit',
+	by_verifying_you_agree_terms_and_conditions: 'terms and conditions',
+	terms_and_conditions: 'Terms and Conditions',
+	// this is from top-right dropdown menu
+	hot: 'hot',
+	trending: 'trending',
+	payout_time: 'payout time',
+	active: 'active',
+	responses: 'responses',
+	popular: 'popular',
+	/* end dropdown menu */
+	loading: 'Loading',
+	cryptography_test_failed: 'Cryptography test failed',
+	unable_to_log_you_in: 'We will be unable to log you in with this browser',
+	latest_browsers_do_work: 'The latest versions of {chromeLink} and {mozillaLink} are well tested and known to work with steemit.com.',
+	account_creation_succes: 'Your account has been successfully created!',
+	account_recovery_succes: 'Your account has been successfully recovered!',
+	password_update_succes: 'The password for {accountName} was successfully updated',
+	password_is_bound_to_account: "This password is bound to your account\'s owner key and can not be used to login to this site. \nHowever, you can use it to {changePasswordLink} to obtain a more secure set of keys.",
+	update_your_password: 'update your password',
+	enter_username: 'Enter your username',
+	password_or_wif: 'Password or WIF',
+	requires_auth_key: 'This operation requires your {authType} key (or use your master password)',
+	keep_me_logged_in: 'Keep me logged in',
+	// this are used mainly in "submit a story" form
+	title: "Title",
+	write_your_story: 'Write your story',
+	editor: 'Editor',
+	reply: 'Reply',
+	edit: 'Edit',
+	delete: 'Delete',
+	cancel: 'Cancel',
+	clear: 'Clear',
+	save: 'Save',
+	upvote_post: 'Upvote post',
+	update_post: 'Update Post',
+	markdown_is_supported: 'Styling with Markdown is supported',
+	preview: 'Preview',
+	// TODO do not forget to implment REQUIRED error in reply Editor
+	markdown_not_supported: 'Markdown is not supported here',
+	// markdown: 'Markdown', // this will probably be removed
+	welcome_to_the_blockchain: 'Welcome to the Blockchain!',
+	your_voice_is_worth_something: 'Your voice is worth something',
+	learn_more: 'Learn More',
+	get_sp_when_sign_up: 'Get ${signupBonus} of Steem Power when you sign up today.',
+	all_accounts_refunded: 'All Recovered Accounts have been fully Refunded',
+	steemit_is_now_open_source: 'Steemit.com is now Open Source',
+	// this is mainly from ReplyEditor
+	tag_your_story: 'Tag (up to 5 tags), the first tag is your main category.',
+	select_a_tag: 'Select a tag',
+	required: 'Required',
+	shorten_title: 'Shorten title',
+	exceeds_maximum_length: 'Exceeds maximum length ({maxKb}KB)',
+	including_the_category: "(including the category '{rootCategory}')",
+	use_limited_amount_of_tags: 'You have {tagsLength} tags total{includingCategory}.  Please use only 5 in your post and category line.',
+	// this is mainly used in CategorySelector
+	use_limitied_amount_of_categories: 'Please use only {amount} categories',
+	use_one_dash: 'Use only one dash',
+	use_spaces_to_separate_tags: 'Use spaces to separate tags',
+	use_only_allowed_characters: 'Use only lowercase letters, digits and one dash',
+	must_start_with_a_letter: 'Must start with a letter',
+	must_end_with_a_letter_or_number: 'Must end with a letter or number',
+	// tags page
+	tag: 'Tag',
+	replies: 'Replies',
+	payouts: 'Payouts',
+	need_password_or_key: 'You need a private password or key (not a public key)',
+	// BlocktradesDeposit
+	change_deposit_address: 'Change Deposit Address',
+	get_deposit_address: 'Get Deposit Address',
+	// for example 'powered by Blocktrades'
+	powered_by: 'Powered by',
+	send_amount_of_coins_to: 'Send {value} {coinName} to',
+	amount_is_in_form: 'Amount is in the form 99999.999',
+	insufficent_funds: 'Insufficent funds',
+	update_estimate: 'Update Estimate',
+	get_estimate: 'Get Estimate',
+	memo: 'Memo',
+	must_include_memo: 'You must include the memo above',
+	estimate_using: 'Estimate using',
+	amount_to_send: 'Amount to send {estimateInputCoin}',
+	deposit_using: 'Deposit using', // example: 'deposit using Steem Power' // TODO: is this example right?
+	suggested_limit: 'Suggested limit {depositLimit}',
+	internal_server_error: 'Internal Server Error',
+	enter_amount: 'Enter Amount',
+	processing: 'Processing',
+	broadcasted: 'Broadcasted',
+	confirmed: 'Confirmed',
+	remove: 'Remove',
+	collapse_or_expand: "Collapse/Expand",
+	reveal_comment: 'Reveal comment',
+	are_you_sure: 'Are you sure?',
+	// PostFull.jsx
+	by: 'by',
+	in: 'in',
+	share: 'Share',
+	in_reply_to: 'in reply to',
+	replied_to: 'replied to',
+	transfer_amount_to_steem_power: "Transfer {amount} to STEEM POWER",
+	transfer_amount_steem_power_to: "Transfer {amount} STEEM POWER to",
+	recieve_amount_steem_power_from: "Receive {amount} STEEM POWER from",
+	transfer_amount_steem_power_from_to: "Transfer {amount} STEEM POWER from {from} to",
+	transfer_amount_to: "Transfer {amount} to",
+	recieve_amount_from: "Receive {amount} from",
+	transfer_amount_from: "Transfer {amount} from",
+	stop_power_down: "Stop power down",
+	start_power_down_of: "Start power down of",
+	curation_reward_of_steem_power_for: 'Curation reward of {reward} STEEM POWER for',
+	author_reward_of_steem_power_for: 'Author reward of {payout} and {reward} STEEM POWER for',
+	recieve_interest_of: 'Receive interest of {interest}',
+	// TODO find where this is used and write an example
+	to: 'to',
+	account_not_found: 'Account not found',
+	this_is_wrong_password: 'This is the wrong password',
+	do_you_need_to: 'Do you need to',
+	recover_your_account: 'recover your account', // this probably will end with question mark
+	reset_usernames_password: "Reset {username}\'s Password",
+	this_will_update_usernames_authtype_key: 'This will update {username} {authType} key',
+	the_rules_of_steemit: "The first rule of Steemit is: Do not lose your password.<br /> The second rule of Steemit is: Do <strong>not</strong> lose your password.<br /> The third rule of Steemit is: We cannot recover your password.<br /> The fourth rule: If you can remember the password, it&apos;s not secure.<br /> The fifth rule: Use only randomly-generated passwords.<br /> The sixth rule: Do not tell anyone your password.<br /> The seventh rule: Always back up your password.",
+	account_name: 'Account Name',
+	recover_password: 'Recover Account',
+	current_password: 'Current Password',
+	recent_password: 'Recent Password',
+	generated_password: 'Generated Password',
+	recover_account: 'Recover Account',
+	new: 'new', // ex. 'Generated Password (new)', but not exclusively
+	backup_password_by_storing_it: 'Back it up by storing in your password manager or a text file',
+	click_to_generate_password: 'Click to generate password',
+	re_enter_generate_password: 'Re-enter Generated Password',
+	understand_that_steemit_cannot_recover_password: 'I understand that Steemit cannot recover lost passwords',
+	i_saved_password: 'I have securely saved my generated password',
+	update_password: 'Update Password',
+	password_must_be_characters_or_more: 'Password must be {amount} characters or more',
+	passwords_do_not_match: 'Passwords do not match',
+	you_need_private_password_or_key_not_a_public_key: 'You need a private password or key (not a public key)',
+	account_updated: 'Account Updated',
+	warning: 'warning',
+	your_password_permissions_were_reduced: 'Your password permissions were reduced',
+	if_you_did_not_make_this_change: 'If you did not make this change please',
+	owhership_changed_on: 'Ownership Changed On',
+	deadline_for_recovery_is: 'Deadline for recovery is',
+	i_understand_dont_show_again: "I understand, don't show me again",
+	ok: 'Ok',
+	convert_to_steem: 'Convert to Steem',
+	steem_dollars_will_be_unavailable: 'This action will take place one week from now and can not be canceled. These Steem Dollars will immediatly become unavailable',
+	amount: 'Amount',
+	steem_dollars: 'STEEM DOLLARS',
+	convert: 'Convert',
+	invalid_amount: 'Invalid amount',
+	insufficent_balance: 'Insufficient balance',
+	in_week_convert_steem_dollars_to_steem: 'In one week, convert {amount} STEEM DOLLARS into STEEM',
+	order_placed: 'Order placed', // ex.: "Order placed: Sell {someamount_to_sell} for atleast {min_to_receive}"
+	follow: 'Follow',
+	unfollow: 'Unfollow',
+	mute: 'Mute',
+	unmute: 'Unmute',
+	confirm_password: 'Confirm Password',
+	login_to_see_memo: 'login to see memo',
+	post: 'Post', // places used: tooltip in MediumEditor
+	unknown: 'Unknown', // exp.: 'unknown error'
+	account_name_is_not_available: 'Account name is not available',
+	type: 'Type',
+	price: 'Price',
+	// Market.jsx
+	last_price: 'Last price',
+	'24h_volume': '24h volume',
+	bid: 'Bid',
+	ask: 'Ask',
+	spread: 'Spread',
+	total: 'Total',
+	available: 'Available',
+	lowest_ask: 'Lowest ask',
+	highest_bid: 'Highest bid',
+	buy_orders: 'Buy Orders',
+	sell_orders: 'Sell Orders',
+	trade_history: 'Trade History',
+	open_orders: 'Open Orders',
+	sell_amount_for_atleast: 'Sell {amount_to_sell} for at least {min_to_receive} ({effectivePrice})',
+	buy_atleast_amount_for: 'Buy at least {min_to_receive} for {amount_to_sell} ({effectivePrice})',
+	higher: 'Higher', // context is about prices
+	lower: 'Lower', // context is about prices
+	total_sd_dollars: "Total SD ($)",
+	sd_dollars: "SD ($)",
+	// RecoverAccountStep1.jsx // recover account stuff
+	not_valid: 'Not valid',
+	account_name_is_not_found: 'Account name is not found',
+	unable_to_recover_account_not_change_ownership_recently: 'We are unable to recover this account, it has not changed ownership recently.',
+	password_not_used_in_last_days: 'This password was not used on this account in the last 30 days.',
+	request_already_submitted_contact_support: 'Your request has been already submitted and we are working on it. Please contact support@steemit.com for the status of your request.',
+	recover_account_intro: "From time to time, a Steemian’s owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on steemit.com if the account owner had perviously listed ‘Steemit’ as their account trustee and complied with Steemit’s Terms of Service.",
+	login_with_facebook_or_reddit_media_to_verify_identity: 'Please login with Facebook or Reddit to verify your identity',
+	login_with_social_media_to_verify_identity: 'Please login with {show_social_login} to verify you identity',
+	enter_email_toverify_identity: 'We need to verify your identity. Please enter your email address below to begin the verification.',
+	email: 'Email',
+	continue_with_email: "Continue with Email",
+	thanks_for_submitting_request_for_account_recovery: '<p>Thanks for submitting your request for Account Recovery using Steem’s blockchain-based multi factor authentication.</p> <p>We will respond to you as quickly as possible, however, please expect there may be some delay in response due to high volume of emails.</p> <p>Please be prepared to verify your identity.</p> <p>Regards,</p> <p>Ned Scott</p> <p>CEO Steemit</p>',
+	recovering_account: 'Recovering account',
+	checking_account_owner: 'Checking account owner',
+	sending_recovery_request: 'Sending recovery request',
+	cant_confirm_account_ownership: 'We can\'t confirm account ownership. Check your password',
+	account_recovery_request_not_confirmed: "Account recovery request is not confirmed yet, please get back later, thank you for your patience.",
+	vote: 'Vote',
+	witness: 'Witness',
+	top_witnesses: 'Top Witnesses',
+	// user's navigational menu
+	feed: 'Feed',
+	wallet: 'Wallet',
+	blog: 'Blog',
+	change_password: 'Change Password',
+	// UserProfile
+	unknown_account: 'Unknown Account',
+	user_hasnt_made_any_posts_yet: "Looks like {name} hasn't made any posts yet!",
+	user_hasnt_started_bloggin_yet: "Looks like {name} hasn't started blogging yet!",
+	user_hasnt_followed_anything_yet: "Looks like {name} hasn't followed anything yet!",
+	user_hasnt_had_any_replies_yet: "{name} hasn't had any replies yet",
+	users_blog: "{name}'s blog",
+	users_posts: "{name}'s posts",
+	users_wallet: "{name}'s wallet",
+	users_curation_rewards: "{name}'s curation rewards",
+	users_author_rewards: "{name}'s author rewards",
+	users_permissions: "{name}'s permissions",
+	recent_replies_to_users_posts: "Recent replies to {name}'s posts",
+	print: 'Print',
+	curation_rewards: "Curation rewards",
+	author_rewards: 'Author rewards',
+	feeds: 'Feeds',
+	rewards: 'Rewards',
+	permissions: 'Permissions',
+	password: 'Password',
+	posts: 'Posts',
+	// english language does not need plurals, but your language might need it
+	// context usually is about profile stats: 'User has: 3 posts, 2 followers, 5 followed'
+	post_count: `{postCount, plural,
+		zero {0 posts}
+		one {# post}
+		few {# posts}
+		many {# posts}
+	}`,
+	follower_count: `{followerCount, plural,
+		zero {0 followers}
+		one {# followers}
+		few {# followers}
+		many {# followers}
+	}`,
+	followed_count: `{followingCount, plural,
+		zero {0 followed}
+		one {# followed}
+		few {# followed}
+		many {# followed}
+	}`,
+	vote_count: `{voteCount, plural,
+		zero {0 votes}
+		one {# votes}
+		few {# votes}
+		many {# votes}
+	}`,
+	response_count: `{responseCount, plural,
+		zero {0 responses}
+		one {# responses}
+		few {# responses}
+		many {# responses}
+	}`,
+	reply_count: `{replyCount, plural,
+		zero {0 replies}
+		one {# replies}
+		few {# replies}
+		many {# replies}
+	}`,
+	this_is_users_reputations_score_it_is_based_on_history_of_votes: "This is ${name}'s reputation score.\n\nThe reputation score is based on the history of votes received by the account, and is used to hide low quality content.",
+	newer: 'Newer',
+	older: 'Older',
+	author_rewards_last_24_hours: 'Author rewards last 24 hours',
+	daily_average_author_rewards: 'Daily average author rewards',
+	author_rewards_history: 'Author Rewards History',
+	balances: 'Balances',
+	estimate_account_value: 'Estimated Account Value',
+	next_power_down_is_scheduled_to_happen_at: 'The next power down is scheduled to happen',
+	transfers_are_temporary_disabled: 'Transfers are temporary disabled',
+	history: 'History',
+	// CurationRewards.jsx
+	curation_rewards_last_24_hours: 'Curation rewards last 24 hours',
+	daily_average_curation_rewards: 'Daily average curation rewards',
+	estimated_curation_rewards_last_week: "Estimated curation rewards last week",
+	curation_rewards_last_week: "Curation rewards last week",
+	curation_rewards_history: 'Curation Rewards History',
+	// Post.jsx
+	now_showing_comments_with_low_ratings: 'Now showing comments with low ratings',
+	hide: 'Hide',
+	show: 'Show',
+	sort_order: 'Sort Order',
+	comments_were_hidden_due_to_low_ratings: 'Comments were hidden due to low ratings',
+	we_will_be_unable_to_create_account_with_this_browser: 'We will be unable to create your Steem account with this browser',
+	you_need_to_logout_before_creating_account: 'You need to {logoutLink} before you can create another account',
+	steemit_can_only_register_one_account_per_verified_user: 'Please note that Steemit can only register one account per verified user',
+	username: 'Username',
+	couldnt_create_account_server_returned_error: "Couldn't create account. Server returned the following error",
+	form_requires_javascript_to_be_enabled: 'This form requires javascript to be enabled in your browser',
+	our_records_indicate_you_already_have_account: 'Our records indicate that you already have steem account',
+	to_prevent_abuse_steemit_can_only_register_one_account_per_user: 'In order to prevent abuse (each registered account costs 3 STEEM) Steemit can only register one account per verified user.',
+	you_can_either_login_or_send_us_email: 'You can either {loginLink} to your existing account or  if you need a new account',
+	send_us_email: 'send us email',
+	connection_lost_reconnecting: 'Connection lost, reconnecting',
+	// Voting.jsx
+	stop_seeing_content_from_this_user: 'Stop seeing content from this user',
+	flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following: 'Flagging a post can remove rewards and make this material less visible. The flag should be used for the following',
+	fraud_or_plagiarism: 'Fraud or Plagiarism',
+	hate_speech_or_internet_trolling: 'Hate Speech or Internet Trolling',
+	intentional_miss_categorized_content_or_spam: 'Intentional miss-categorized content or Spam',
+	downvote: 'Downvote',
+	pending_payout: 'Pending Payout',
+	past_payouts: 'Past Payouts',
+	and: 'and',
+	more: 'more',
+	remove_vote: 'Remove Vote',
+	upvote: 'Upvote',
+	we_will_reset_curation_rewards_for_this_post: 'will reset your curation rewards for this post',
+	removing_your_vote: 'Removing your vote',
+	changing_to_an_upvote: 'Changing to an Up-Vote',
+	changing_to_a_downvote: 'Changing to a Down-Vote',
+	confirm_flag: 'Confirm Flag',
+	//  TODO
+	date_created: 'Date Created',
+	search: 'Search',
+	begin_recovery: "Begin Recovery",
+	post_as: 'Post as', // 'Post as Misha'
+	action: 'Action',
+	steem_app_center: 'Steem App Center',
+	witness_thread: 'witness thread',
+	you_have_votes_remaining: 'You have {votesCount} votes remaining',
+	you_can_vote_for_maximum_of_witnesses: 'You can vote for a maximum of 30 witnesses',
+	information: 'Information',
+	if_you_want_to_vote_outside_of_top_enter_account_name: 'If you would like to vote for a witness outside of the top 50, enter the account name below to cast a vote',
+	view_the_direct_parent: 'View the direct parent',
+	you_are_viewing_single_comments_thread_from: 'You are viewing a single comment&#39;s thread from',
+	view_the_full_context: 'View the full context',
+	this_is_a_price_feed_conversion: 'This is a price feed conversion. The one week day delay is necessary to prevent abuse from gaming the price feed average',
+	your_existing_SD_are_liquid_and_transferable: 'Your existing Steem Dollars are liquid and transferable.  Instead you may wish to trade Steem Dollars directly in this site under {link} or transfer to an external market.',
+	buy_or_sell: 'Buy or Sells',
+	trending_30_day: 'trending (30 day)',
+	promoted: 'promoted',
+	comments: 'Comments',
+	topics: 'Topics',
+	this_password_is_bound_to_your_accounts_private_key: 'This password is bound to your account\'s active key and can not be used to login to this page. You may use this active key on other more secure pages like the Wallet or Market pages.',
+	potential_payout: 'Potential Payout',
+	boost_payments: 'Boost Payments',
+	authors: 'Authors',
+	curators: 'Curators',
+	date: 'Date',
+	no_responses_yet_click_to_respond: 'No responses yet. Click to respond.',
+	click_to_respond: 'Click to respond',
+	new_password: 'New Password',
+	paste_a_youtube_or_vimeo_and_press_enter: 'Paste a YouTube or Vimeo and press Enter',
+	there_was_an_error_uploading_your_image: 'There was an error uploading your image',
+	raw_html: 'Raw HTML',
+	please_remove_following_html_elements: 'Please remove the following HTML elements from your post: ',
+	reputation: "Reputation",
+	remember_voting_and_posting_key: "Remember voting & posting key",
+	// example usage: 'Autologin? yes/no'
+	auto_login_question_mark: 'Auto login?',
+	yes: 'Yes',
+	no: 'No',
+	hide_private_key: 'Hide private key',
+	login_to_show: 'Login to show',
+	steemit_cannot_recover_passwords_keep_this_page_in_a_secure_location: 'Steemit cannot recover passwords.  Keep this page in a secure location, such as a fireproof safe or safety deposit box.',
+	steemit_password_backup: 'Steemit Password Backup',
+	steemit_password_backup_required: 'Steemit Password Backup (required)',
+	after_printing_write_down_your_user_name: 'After printing, write down your user name',
+	public: 'Public',
+	private: 'Private',
+	public_something_key: 'Public {key} Key',
+	private_something_key: 'Private {key} Key',
+	posting_key_is_required_it_should_be_different: 'The posting key is used for posting and voting. It should be different from the active and owner keys.',
+	the_active_key_is_used_to_make_transfers_and_place_orders: 'The active key is used to make transfers and place orders in the internal market.',
+	the_owner_key_is_required_to_change_other_keys: 'The owner key is the master key for the account and is required to change the other keys.',
+	the_private_key_or_password_should_be_kept_offline: 'The private key or password for the owner key should be kept offline as much as possible.',
+	the_memo_key_is_used_to_create_and_read_memos: 'The memo key is used to create and read memos.',
+	previous: 'Previous',
+	next: 'Next',
+	browse: 'Browse',
+	not_valid_email: 'Not valid email',
+	thank_you_for_being_an_early_visitor_to_steemit: 'Thank you for being an early visitor to Steemit. We will get back to you at the earliest possible opportunity.',
+	estimated_author_rewards_last_week: "Estimated author rewards last week",
+	author_rewards_last_week: "Estimated author rewards last week",
+	confirm: 'Confirm',
+	canceled: 'Canceled',
+	asset: "Asset",
+	this_memo_is_private: 'This Memo is Private',
+	this_memo_is_public: 'This Memo is Public',
+	power_up: 'Power Up',
+	transfer: 'Transfer',
+	basic: 'Basic',
+	advanced: 'Advanced',
+	convert_to_steem_power: 'Convert to Steem Power',
+	transfer_to_account: 'Transfer to Account',
+	buy_steem_or_steem_power: 'Buy Steem or Steem Power',
+	version: 'Version',
+	about_steemit: 'About Steemit',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content: 'Steemit is a social media platform where <strong>everyone</strong>&nbsp;gets <strong>paid</strong> for creating and curating content',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid: 'Steemit is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Steem, that supports real value for digital rewards through market price discovery and liquidity.',
+	learn_more_at_steem_io: 'Learn more at steem.io',
+	resources: 'Resources',
+	steem_whitepaper: 'Steem Whitepaper',
+	join_our_slack: 'Join our Slack',
+	steemit_support: 'Steemit Support',
+	please_email_questions_to: 'Please email your questions to',
+	sorry_your_reddit_account_doesnt_have_enough_karma: "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
+	register_with_facebook: 'Register with Facebook',
+	or_click_the_button_below_to_register_with_facebook: 'Or click the button below to register with Facebook',
+	trending_24_hour: 'trending (24 hour)',
+	home: 'home',
+	'24_hour': '24 hour',
+	'30_day': '30 day',
+	flag: "Flag",
+
+}
+
+export { en }
diff --git a/app/locales/es.js b/app/locales/es.js
new file mode 100644
index 000000000..99a2142cc
--- /dev/null
+++ b/app/locales/es.js
@@ -0,0 +1,460 @@
+const es = 	{
+	// this variables mainly used in navigation section
+	about: "Acerca de",
+	explore: "Explorar",
+	whitepaper: "Whitepaper",
+	buy_steem: "Comprar Steem",
+	sell_steem: "Vender Steem",
+	market: "Mercado",
+	stolen_account_recovery: "Recuperación de Cuentas Robadas",
+	change_account_password: "Cambiar Contraseña",
+	steemit_chat: "Chat de Steemit",
+	witnesses: "Witnesses",
+	privacy_policy: "Política de Privacidad",
+	terms_of_service: "Terminos de Servicio",
+	sign_up: "Sign Up",
+	/* end navigation */
+	buy: 'Comprar',
+	sell: 'Vender',
+	buy_steem_power: 'Compra Steem Power',
+	transaction_history: 'Historial de Transacciones',
+	submit_a_story: 'Escribir Post',
+	nothing_yet: 'Aun Nada',
+	close: 'Cerrar',
+	post_promo_text: "Authors get paid when people like you upvote their post \n If you enjoyed what you read here, earn ${amount} of Steem Power \n when you {link} and vote for it.",
+	read_only_mode: 'Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.',
+	membership_invitation_only: 'Membership to Steemit.com is now under invitation only because of unexpectedly high sign up rate.',
+	submit_email_to_get_on_waiting_list: 'Submit your email to get on the waiting list',
+	login: 'Entrar',
+	logout: 'Salir',
+	show_less_low_value_posts: "Show less low value posts",
+	show_more_low_value_posts: "Show more low value posts",
+	select_topic: 'Seleccionar Tópicos',
+	tags_and_topics: "Tags y Tópicos",
+	filter: "Filtros",
+	show_more_topics: "Mostrar más tópicos",
+	we_require_social_account: 'Steemit funds each account with over ${signup_bonus} worth of Steem Power; to prevent abuse, we require new users to login via social media.',
+	personal_info_will_be_private: 'Your personal information will be kept',
+	personal_info_will_be_private_link: 'Privado',
+	continue_with_facebook: 'Continuar con Facebook',
+	continue_with_reddit: 'Continuar con Reddit',
+	requires_positive_karma: 'requires positive Reddit comment karma',
+	dont_have_facebook: 'Don\'t have a Facebook or Reddit account?',
+	subscribe_to_get_sms_confirm: 'Subscribe to get a notification when SMS confirmation is available',
+	by_verifying_you_agree: 'By verifying your account you agree to the Steemit',
+	by_verifying_you_agree_terms_and_conditions: 'Terminos y Condiciones',
+	terms_and_conditions: 'Terminos y Condiciones',
+	// this is from top-right dropdown menu
+	hot: 'caliente',
+	trending: 'trending',
+	payout_time: 'tiempo de pago',
+	active: 'activo',
+	responses: 'respuesta',
+	popular: 'popular',
+	/* end dropdown menu */
+	loading: 'Cargando',
+	cryptography_test_failed: 'Prueba criptografica fallida',
+	unable_to_log_you_in: 'We will be unable to log you in with this browser',
+	latest_browsers_do_work: 'The latest versions of {chromeLink} and {mozillaLink} are well tested and known to work with steemit.com.',
+	account_creation_succes: 'Your account has been successfully created!',
+	account_recovery_succes: 'Your account has been successfully recovered!',
+	password_update_succes: 'The password for {accountName} was successfully updated',
+	password_is_bound_to_account: "This password is bound to your account\'s owner key and can not be used to login to this site. \nHowever, you can use it to {changePasswordLink} to obtain a more secure set of keys.",
+	update_your_password: 'actualiza tu contraseña',
+	enter_username: 'Ingresa tu nombre de usuario',
+	password_or_wif: 'Contraseña o WIF',
+	requires_auth_key: 'This operation requires your {authType} key (or use your master password)',
+	keep_me_logged_in: 'Mantenme firmado',
+	// this are used mainly in "submit a story" form
+	title: "Título",
+	write_your_story: 'Escribe tu historia',
+	editor: 'Editor',
+	reply: 'Responder',
+	edit: 'Editar',
+	delete: 'Borrar',
+	cancel: 'Cancelar',
+	clear: 'Limpiar',
+	save: 'Guardar',
+	upvote_post: 'Vota la publicación',
+	update_post: 'Actualiza la publicación',
+	markdown_is_supported: 'Estilos y Markdown es soportado',
+	preview: 'Vista Previa',
+	// TODO do not forget to implment REQUIRED error in reply Editor
+	markdown_not_supported: 'Markdown no esta soportado aquí',
+	// markdown: 'Markdown', // this will probably be removed
+	welcome_to_the_blockchain: 'Bienvenidos al Blockchain!',
+	your_voice_is_worth_something: 'Tu voz vale algo',
+	learn_more: 'Aprende más',
+	get_sp_when_sign_up: 'Get ${signupBonus} of Steem Power when you sign up today.',
+	all_accounts_refunded: 'All Recovered Accounts have been fully Refunded',
+	steemit_is_now_open_source: 'Steemit.com es ahora Software Libre',
+	// this is mainly from ReplyEditor
+	tag_your_story: 'Tag (up to 5 tags), the first tag is your main category.',
+	select_a_tag: 'Selecciona una etiqueta',
+	required: 'Requerido',
+	shorten_title: 'Acortar título!',
+	exceeds_maximum_length: 'Excede el máximo de ({maxKb}KB)',
+	including_the_category: "(incluyendo la categoria '{rootCategory}')",
+	use_limited_amount_of_tags: 'Tienes etiqueta {tagsLength} total{includingCategory}.  Por favor usa solo 5 en tu publicación y linea de categoría.',
+	// this is mainly used in CategorySelector
+	use_limitied_amount_of_categories: 'Por favor solo usa {amount} categorías',
+	use_one_dash: 'Solo usa un guión',
+	use_spaces_to_separate_tags: 'Usa espacios para separar las etiquetas',
+	use_only_allowed_characters: 'Usa solo minusculas, digitos o un guión',
+	must_start_with_a_letter: 'Debe iniciar con una letra',
+	must_end_with_a_letter_or_number: 'Debe iniciar con una letra o número',
+	// tags page
+	tag: 'Etiqueta',
+	replies: 'Respuestas',
+	payouts: 'Pagos',
+	need_password_or_key: 'Tu necesitas una contraseña privada o llave (no la llave pública)',
+	// BlocktradesDeposit
+	change_deposit_address: 'Cambia la dirección de depósito',
+	get_deposit_address: 'Obtener la dirección de depósito',
+	// for example 'powered by Blocktrades'
+	powered_by: 'Funcionando gracias a',
+	send_amount_of_coins_to: 'Enviar {value} {coinName} a',
+	amount_is_in_form: 'Cantidad en formato 99999.999',
+	insufficent_funds: 'Fondos insuficientes',
+	update_estimate: 'Actualizar estimación',
+	get_estimate: 'Obtener estimaciones',
+	memo: 'Memo',
+	must_include_memo: 'You must include the memo above',
+	estimate_using: 'Estimar usando',
+	amount_to_send: 'Cantidad para enviar {estimateInputCoin}',
+	deposit_using: 'Deposit using', // example: 'deposit using Steem Power' // TODO: is this example right?
+	suggested_limit: 'Suggested limit {depositLimit}',
+	internal_server_error: 'Internal Server Error',
+	enter_amount: 'Ingresar Cantidad',
+	processing: 'Procesando',
+	broadcasted: 'Transmitido',
+	confirmed: 'Confirmado',
+	remove: 'Eliminar',
+	collapse_or_expand: "Colapsar/Expandir",
+	reveal_comment: 'Revelar comentario',
+	are_you_sure: 'Esta seguro?',
+	// PostFull.jsx
+	by: 'por',
+	in: 'dentro',
+	share: 'Compartir',
+	in_reply_to: 'en respuesta a',
+	replied_to: 'respondido a',
+	transfer_amount_to_steem_power: "Transfer {amount} to STEEM POWER",
+	transfer_amount_steem_power_to: "Transfer {amount} STEEM POWER to",
+	recieve_amount_steem_power_from: "Receive {amount} STEEM POWER from",
+	transfer_amount_steem_power_from_to: "Transfer {amount} STEEM POWER from {from} to",
+	transfer_amount_to: "Transferir {amount} a",
+	recieve_amount_from: "Recibir {amount} de",
+	transfer_amount_from: "Transferir {amount} de",
+	stop_power_down: "Stop power down",
+	start_power_down_of: "Start power down of",
+	curation_reward_of_steem_power_for: 'Curation reward of {reward} STEEM POWER for',
+	author_reward_of_steem_power_for: 'Author reward of {payout} and {reward} STEEM POWER for',
+	recieve_interest_of: 'Receive interest of {interest}',
+	// TODO find where this is used and write an example
+	to: 'to',
+	account_not_found: 'Cuenta no encontrada',
+	this_is_wrong_password: 'Esta contraseña es incorrecta',
+	do_you_need_to: 'Do you need to',
+	recover_your_account: 'recover your account', // this probably will end with question mark
+	reset_usernames_password: "Reset {username}\'s Password",
+	this_will_update_usernames_authtype_key: 'This will update {username} {authType} key',
+	the_rules_of_steemit: "The first rule of Steemit is: Do not lose your password.<br /> The second rule of Steemit is: Do <strong>not</strong> lose your password.<br /> The third rule of Steemit is: We cannot recover your password.<br /> The fourth rule: If you can remember the password, it&apos;s not secure.<br /> The fifth rule: Use only randomly-generated passwords.<br /> The sixth rule: Do not tell anyone your password.<br /> The seventh rule: Always back up your password.",
+	account_name: 'Nombre de la cuenta',
+	recover_password: 'Recuperar cuenta',
+	current_password: 'Contraseña actual',
+	recent_password: 'Contraseña reciente',
+	generated_password: 'Contraseña generada',
+	recover_account: 'Recuperar cuenta',
+	new: 'new', // ex. 'Generated Password (new)', but not exclusively
+	backup_password_by_storing_it: 'Back it up by storing in your password manager or a text file',
+	click_to_generate_password: 'Click to generate password',
+	re_enter_generate_password: 'Re-enter Generated Password',
+	understand_that_steemit_cannot_recover_password: 'I understand that Steemit cannot recover lost passwords',
+	i_saved_password: 'I have securely saved my generated password',
+	update_password: 'Actualizar contraseña',
+	password_must_be_characters_or_more: 'Password must be {amount} characters or more',
+	passwords_do_not_match: 'Passwords do not match',
+	you_need_private_password_or_key_not_a_public_key: 'You need a private password or key (not a public key)',
+	account_updated: 'Cuenta actualizada',
+	warning: 'aviso',
+	your_password_permissions_were_reduced: 'Your password permissions were reduced',
+	if_you_did_not_make_this_change: 'If you did not make this change please',
+	owhership_changed_on: 'Ownership Changed On',
+	deadline_for_recovery_is: 'Deadline for recovery is',
+	i_understand_dont_show_again: "I understand, don't show me again",
+	ok: 'Ok',
+	convert_to_steem: 'Convertir a Steem',
+	steem_dollars_will_be_unavailable: 'This action will take place one week from now and can not be canceled. These Steem Dollars will immediatly become unavailable',
+	amount: 'Cantidad',
+	steem_dollars: 'STEEM DOLLARS',
+	convert: 'Convertir',
+	invalid_amount: 'Invalid amount',
+	insufficent_balance: 'Balance insuficiente',
+	in_week_convert_steem_dollars_to_steem: 'In one week, convert {amount} STEEM DOLLARS into STEEM',
+	order_placed: 'Order placed', // ex.: "Order placed: Sell {someamount_to_sell} for atleast {min_to_receive}"
+	follow: 'Seguir',
+	unfollow: 'No seguir',
+	mute: 'Silenciar',
+	unmute: 'Activar',
+	confirm_password: 'Confirmar contraseña',
+	login_to_see_memo: 'login to see memo',
+	post: 'Post', // places used: tooltip in MediumEditor
+	unknown: 'Unknown', // exp.: 'unknown error'
+	account_name_is_not_available: 'Account name is not available',
+	type: 'Tipo',
+	price: 'Precio',
+	// Market.jsx
+	last_price: 'Último precio',
+	'24h_volume': 'volumen de 24h',
+	bid: 'Bid',
+	ask: 'Ask',
+	spread: 'Spread',
+	total: 'Total',
+	available: 'Disponible',
+	lowest_ask: 'Lowest ask',
+	highest_bid: 'Highest bid',
+	buy_orders: 'Ordenes de compra',
+	sell_orders: 'Ordenes de venta',
+	trade_history: 'Trade History',
+	open_orders: 'Ordenes abiertas',
+	sell_amount_for_atleast: 'Sell {amount_to_sell} for at least {min_to_receive} ({effectivePrice})',
+	buy_atleast_amount_for: 'Buy at least {min_to_receive} for {amount_to_sell} ({effectivePrice})',
+	higher: 'Más alto', // context is about prices
+	lower: 'Más bajo', // context is about prices
+	total_sd_dollars: "Total SD ($)",
+	sd_dollars: "SD ($)",
+	// RecoverAccountStep1.jsx // recover account stuff
+	not_valid: 'No valido',
+	account_name_is_not_found: 'Account name is not found',
+	unable_to_recover_account_not_change_ownership_recently: 'We are unable to recover this account, it has not changed ownership recently.',
+	password_not_used_in_last_days: 'This password was not used on this account in the last 30 days.',
+	request_already_submitted_contact_support: 'Your request has been already submitted and we are working on it. Please contact support@steemit.com for the status of your request.',
+	recover_account_intro: "From time to time, a Steemian’s owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on steemit.com if the account owner had perviously listed ‘Steemit’ as their account trustee and complied with Steemit’s Terms of Service.",
+	login_with_facebook_or_reddit_media_to_verify_identity: 'Please login with Facebook or Reddit to verify your identity',
+	login_with_social_media_to_verify_identity: 'Please login with {show_social_login} to verify you identity',
+	enter_email_toverify_identity: 'We need to verify your identity. Please enter your email address below to begin the verification.',
+	email: 'Correo electrónico',
+	continue_with_email: "Continuar con correo",
+	thanks_for_submitting_request_for_account_recovery: '<p>Thanks for submitting your request for Account Recovery using Steem’s blockchain-based multi factor authentication.</p> <p>We will respond to you as quickly as possible, however, please expect there may be some delay in response due to high volume of emails.</p> <p>Please be prepared to verify your identity.</p> <p>Regards,</p> <p>Ned Scott</p> <p>CEO Steemit</p>',
+	recovering_account: 'Recuperar cuenta',
+	checking_account_owner: 'Revisando el dueño de la cuenta',
+	sending_recovery_request: 'Enviando petición de recuperación',
+	cant_confirm_account_ownership: 'We can\'t confirm account ownership. Check your password',
+	account_recovery_request_not_confirmed: "Account recovery request is not confirmed yet, please get back later, thank you for your patience.",
+	vote: 'Votar',
+	witness: 'Witness',
+	top_witnesses: 'Mejores Witnesses',
+	// user's navigational menu
+	feed: 'Feed',
+	wallet: 'Wallet',
+	blog: 'Blog',
+	change_password: 'Cambiar contraseña',
+	// UserProfile
+	unknown_account: 'Cuenta no conocida',
+	user_hasnt_made_any_posts_yet: "Looks like {name} hasn't made any posts yet!",
+	user_hasnt_started_bloggin_yet: "Looks like {name} hasn't started blogging yet!",
+	user_hasnt_followed_anything_yet: "Looks like {name} hasn't followed anything yet!",
+	user_hasnt_had_any_replies_yet: "{name} hasn't had any replies yet",
+	users_blog: "Blog de {name}",
+	users_posts: "Publicaciones de {name}",
+	users_wallet: "Wallet de {name}",
+	users_curation_rewards: "{name}'s curation rewards",
+	users_author_rewards: "{name}'s author rewards",
+	users_permissions: "{name}'s permissions",
+	recent_replies_to_users_posts: "Recent replies to {name}'s posts",
+	print: 'Imprimir',
+	curation_rewards: "Recompensa para curadores",
+	author_rewards: 'Recompensa para autores',
+	feeds: 'Feeds',
+	rewards: 'Recompensas',
+	permissions: 'Permisos',
+	password: 'Contraseña',
+	posts: 'Publicación',
+	// english language does not need plurals, but your language might need it
+	// context usually is about profile stats: 'User has: 3 posts, 2 followers, 5 followed'
+	post_count: `{postCount, plural,
+		zero {0 posts}
+		one {# post}
+		few {# posts}
+		many {# posts}
+	}`,
+	follower_count: `{followerCount, plural,
+		zero {0 followers}
+		one {# followers}
+		few {# followers}
+		many {# followers}
+	}`,
+	followed_count: `{followingCount, plural,
+		zero {0 followed}
+		one {# followed}
+		few {# followed}
+		many {# followed}
+	}`,
+	vote_count: `{voteCount, plural,
+		zero {0 votes}
+		one {# votes}
+		few {# votes}
+		many {# votes}
+	}`,
+	response_count: `{responseCount, plural,
+		zero {0 responses}
+		one {# responses}
+		few {# responses}
+		many {# responses}
+	}`,
+	reply_count: `{replyCount, plural,
+		zero {0 replies}
+		one {# replies}
+		few {# replies}
+		many {# replies}
+	}`,
+	this_is_users_reputations_score_it_is_based_on_history_of_votes: "This is ${name}'s reputation score.\n\nThe reputation score is based on the history of votes received by the account, and is used to hide low quality content.",
+	newer: 'Más reciente',
+	older: 'Más viejo',
+	author_rewards_last_24_hours: 'Author rewards last 24 hours',
+	daily_average_author_rewards: 'Daily average author rewards',
+	author_rewards_history: 'Author Rewards History',
+	balances: 'Balances',
+	estimate_account_value: 'Valor estimado de la cuenta',
+	next_power_down_is_scheduled_to_happen_at: 'The next power down is scheduled to happen',
+	transfers_are_temporary_disabled: 'Transfers are temporary disabled',
+	history: 'Historia',
+	// CurationRewards.jsx
+	curation_rewards_last_24_hours: 'Curation rewards last 24 hours',
+	daily_average_curation_rewards: 'Daily average curation rewards',
+	estimated_curation_rewards_last_week: "Estimated curation rewards last week",
+	curation_rewards_last_week: "Curation rewards last week",
+	curation_rewards_history: 'Curation Rewards History',
+	// Post.jsx
+	now_showing_comments_with_low_ratings: 'Now showing comments with low ratings',
+	hide: 'Ocultar',
+	show: 'Mostrar',
+	sort_order: 'Alinear orden',
+	comments_were_hidden_due_to_low_ratings: 'Comments were hidden due to low ratings',
+	we_will_be_unable_to_create_account_with_this_browser: 'We will be unable to create your Steem account with this browser',
+	you_need_to_logout_before_creating_account: 'You need to {logoutLink} before you can create another account',
+	steemit_can_only_register_one_account_per_verified_user: 'Please note that Steemit can only register one account per verified user',
+	username: 'Nombre de usuario',
+	couldnt_create_account_server_returned_error: "Couldn't create account. Server returned the following error",
+	form_requires_javascript_to_be_enabled: 'This form requires javascript to be enabled in your browser',
+	our_records_indicate_you_already_have_account: 'Our records indicate that you already have steem account',
+	to_prevent_abuse_steemit_can_only_register_one_account_per_user: 'In order to prevent abuse (each registered account costs 3 STEEM) Steemit can only register one account per verified user.',
+	you_can_either_login_or_send_us_email: 'You can either {loginLink} to your existing account or  if you need a new account',
+	send_us_email: 'envianos correo electrónico',
+	connection_lost_reconnecting: 'Conexión perdida, reconectando',
+	// Voting.jsx
+	stop_seeing_content_from_this_user: 'Stop seeing content from this user',
+	flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following: 'Flagging a post can remove rewards and make this material less visible. The flag should be used for the following',
+	fraud_or_plagiarism: 'Fraud or Plagiarism',
+	hate_speech_or_internet_trolling: 'Hate Speech or Internet Trolling',
+	intentional_miss_categorized_content_or_spam: 'Intentional miss-categorized content or Spam',
+	downvote: 'Votar abajo',
+	pending_payout: 'Pagos pendientes',
+	past_payouts: 'Pagos pasados',
+	and: 'y',
+	more: 'más',
+	remove_vote: 'Eliminar voto',
+	upvote: 'Votar',
+	we_will_reset_curation_rewards_for_this_post: 'will reset your curation rewards for this post',
+	removing_your_vote: 'Removing your vote',
+	changing_to_an_upvote: 'Changing to an Up-Vote',
+	changing_to_a_downvote: 'Changing to a Down-Vote',
+	confirm_flag: 'Confirm Flag',
+	//  TODO
+	date_created: 'Fecha Creada',
+	search: 'Buscar',
+	begin_recovery: "Iniciar recuperación",
+	post_as: 'Publicar como', // 'Post as Misha'
+	action: 'Acción',
+	steem_app_center: 'Centro de Aplicaciones de Steem',
+	witness_thread: 'witness thread',
+	you_have_votes_remaining: 'You have {votesCount} votes remaining',
+	you_can_vote_for_maximum_of_witnesses: 'You can vote for a maximum of 30 witnesses',
+	information: 'Información',
+	if_you_want_to_vote_outside_of_top_enter_account_name: 'If you would like to vote for a witness outside of the top 50, enter the account name below to cast a vote',
+	view_the_direct_parent: 'Vista directa del padre',
+	you_are_viewing_single_comments_thread_from: 'You are viewing a single comment&#39;s thread from',
+	view_the_full_context: 'View the full context',
+	this_is_a_price_feed_conversion: 'This is a price feed conversion. The one week day delay is necessary to prevent abuse from gaming the price feed average',
+	your_existing_SD_are_liquid_and_transferable: 'Your existing Steem Dollars are liquid and transferable.  Instead you may wish to trade Steem Dollars directly in this site under {link} or transfer to an external market.',
+	buy_or_sell: 'Buy or Sells',
+	trending_30_day: 'trending (30 day)',
+	promoted: 'promoted',
+	comments: 'Comments',
+	topics: 'Topics',
+	this_password_is_bound_to_your_accounts_private_key: 'This password is bound to your account\'s active key and can not be used to login to this page. You may use this active key on other more secure pages like the Wallet or Market pages.',
+	potential_payout: 'Potential Payout',
+	boost_payments: 'Boost Payments',
+	authors: 'Authors',
+	curators: 'Curators',
+	date: 'Date',
+	no_responses_yet_click_to_respond: 'No responses yet. Click to respond.',
+	click_to_respond: 'Click to respond',
+	new_password: 'New Password',
+	paste_a_youtube_or_vimeo_and_press_enter: 'Paste a YouTube or Vimeo and press Enter',
+	there_was_an_error_uploading_your_image: 'There was an error uploading your image',
+	raw_html: 'Raw HTML',
+	please_remove_following_html_elements: 'Please remove the following HTML elements from your post: ',
+	reputation: "Reputation",
+	remember_voting_and_posting_key: "Remember voting & posting key",
+	// example usage: 'Autologin? yes/no'
+	auto_login_question_mark: 'Auto login?',
+	yes: 'Yes',
+	no: 'No',
+	hide_private_key: 'Hide private key',
+	login_to_show: 'Login to show',
+	steemit_cannot_recover_passwords_keep_this_page_in_a_secure_location: 'Steemit cannot recover passwords.  Keep this page in a secure location, such as a fireproof safe or safety deposit box.',
+	steemit_password_backup: 'Steemit Password Backup',
+	steemit_password_backup_required: 'Steemit Password Backup (required)',
+	after_printing_write_down_your_user_name: 'After printing, write down your user name',
+	public: 'Public',
+	private: 'Private',
+	public_something_key: 'Public {key} Key',
+	private_something_key: 'Private {key} Key',
+	posting_key_is_required_it_should_be_different: 'The posting key is used for posting and voting. It should be different from the active and owner keys.',
+	the_active_key_is_used_to_make_transfers_and_place_orders: 'The active key is used to make transfers and place orders in the internal market.',
+	the_owner_key_is_required_to_change_other_keys: 'The owner key is the master key for the account and is required to change the other keys.',
+	the_private_key_or_password_should_be_kept_offline: 'The private key or password for the owner key should be kept offline as much as possible.',
+	the_memo_key_is_used_to_create_and_read_memos: 'The memo key is used to create and read memos.',
+	previous: 'Previous',
+	next: 'Next',
+	browse: 'Browse',
+	not_valid_email: 'Not valid email',
+	thank_you_for_being_an_early_visitor_to_steemit: 'Thank you for being an early visitor to Steemit. We will get back to you at the earliest possible opportunity.',
+	estimated_author_rewards_last_week: "Estimated author rewards last week",
+	author_rewards_last_week: "Estimated author rewards last week",
+	confirm: 'Confirm',
+	canceled: 'Canceled',
+	asset: "Asset",
+	this_memo_is_private: 'This Memo is Private',
+	this_memo_is_public: 'This Memo is Public',
+	power_up: 'Power Up',
+	transfer: 'Transfer',
+	basic: 'Basic',
+	advanced: 'Advanced',
+	convert_to_steem_power: 'Convert to Steem Power',
+	transfer_to_account: 'Transfer to Account',
+	buy_steem_or_steem_power: 'Buy Steem or Steem Power',
+	version: 'Version',
+	about_steemit: 'About Steemit',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content: 'Steemit is a social media platform where <strong>everyone</strong>&nbsp;gets <strong>paid</strong> for creating and curating content',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid: 'Steemit is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Steem, that supports real value for digital rewards through market price discovery and liquidity.',
+	learn_more_at_steem_io: 'Learn more at steem.io',
+	resources: 'Resources',
+	steem_whitepaper: 'Steem Whitepaper',
+	join_our_slack: 'Join our Slack',
+	steemit_support: 'Steemit Support',
+	please_email_questions_to: 'Please email your questions to',
+	sorry_your_reddit_account_doesnt_have_enough_karma: "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
+	register_with_facebook: 'Register with Facebook',
+	or_click_the_button_below_to_register_with_facebook: 'Or click the button below to register with Facebook',
+	trending_24_hour: 'trending (24 hour)',
+	home: 'home',
+	'24_hour': '24 hour',
+	'30_day': '30 day',
+	flag: "Flag",
+
+}
+
+export { es }
diff --git a/app/locales/es_AR.js b/app/locales/es_AR.js
new file mode 100644
index 000000000..cba26de94
--- /dev/null
+++ b/app/locales/es_AR.js
@@ -0,0 +1,460 @@
+const es = 	{
+	// this variables mainly used in navigation section
+	about: "Acerca de",
+	explore: "Explorar",
+	whitepaper: "Whitepaper",
+	buy_steem: "Comprar Steem",
+	sell_steem: "Vender Steem",
+	market: "Mercado",
+	stolen_account_recovery: "Recuperación de Cuentas Robadas",
+	change_account_password: "Cambiar Contraseña",
+	steemit_chat: "Chat de Steemit",
+	witnesses: "Testigos",
+	privacy_policy: "Política de Privacidad",
+	terms_of_service: "Términos de Servicio",
+	sign_up: "Registro",
+	/* end navigation */
+	buy: 'Comprar',
+	sell: 'Vender',
+	buy_steem_power: 'Compra Steem Power',
+	transaction_history: 'Historial de Transacciones',
+	submit_a_story: 'Escribir Post',
+	nothing_yet: 'Nada por ahora',
+	close: 'Cerrar',
+	post_promo_text: "Authors get paid when people like you upvote their post \n If you enjoyed what you read here, earn ${amount} of Steem Power \n when you {link} and vote for it.",
+	read_only_mode: 'Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.',
+	membership_invitation_only: 'Membership to Steemit.com is now under invitation only because of unexpectedly high sign up rate.',
+	submit_email_to_get_on_waiting_list: 'Submit your email to get on the waiting list',
+	login: 'Entrar',
+	logout: 'Salir',
+	show_less_low_value_posts: "Ocultar contenido de baja calidad",
+	show_more_low_value_posts: "No ocultar contenido de baja calidad",
+	select_topic: 'Seleccionar Temas',
+	tags_and_topics: "Tags y Temas",
+	filter: "Filtros",
+	show_more_topics: "Mostrar más temas",
+	we_require_social_account: 'Steemit funds each account with over ${signup_bonus} worth of Steem Power; to prevent abuse, we require new users to login via social media.',
+	personal_info_will_be_private: 'Tu información personal se mantendrá',
+	personal_info_will_be_private_link: 'Privado',
+	continue_with_facebook: 'Continuar con Facebook',
+	continue_with_reddit: 'Continuar con Reddit',
+	requires_positive_karma: 'Requiere karma de comentarios positivo en Reddit',
+	dont_have_facebook: '¿No tenés cuenta en Facebook o Reddit?',
+	subscribe_to_get_sms_confirm: 'Suscribite para recibir un aviso cuando la confirmación via SMS esté disponible.',
+	by_verifying_you_agree: 'Al verificar tu cuenta aceptás los',
+	by_verifying_you_agree_terms_and_conditions: 'Terminos y Condiciones',
+	terms_and_conditions: 'Terminos y Condiciones',
+	// this is from top-right dropdown menu
+	hot: 'caliente',
+	trending: 'trending',
+	payout_time: 'tiempo de pago',
+	active: 'activo',
+	responses: 'respuesta',
+	popular: 'popular',
+	/* end dropdown menu */
+	loading: 'Cargando',
+	cryptography_test_failed: 'Prueba criptografica fallida',
+	unable_to_log_you_in: 'We will be unable to log you in with this browser',
+	latest_browsers_do_work: 'The latest versions of {chromeLink} and {mozillaLink} are well tested and known to work with steemit.com.',
+	account_creation_succes: 'Your account has been successfully created!',
+	account_recovery_succes: 'Your account has been successfully recovered!',
+	password_update_succes: 'The password for {accountName} was successfully updated',
+	password_is_bound_to_account: "This password is bound to your account\'s owner key and can not be used to login to this site. \nHowever, you can use it to {changePasswordLink} to obtain a more secure set of keys.",
+	update_your_password: 'actualiza tu contraseña',
+	enter_username: 'Ingresa tu nombre de usuario',
+	password_or_wif: 'Contraseña o WIF',
+	requires_auth_key: 'This operation requires your {authType} key (or use your master password)',
+	keep_me_logged_in: 'Mantenme firmado',
+	// this are used mainly in "submit a story" form
+	title: "Título",
+	write_your_story: 'Escribe tu historia',
+	editor: 'Editor',
+	reply: 'Responder',
+	edit: 'Editar',
+	delete: 'Borrar',
+	cancel: 'Cancelar',
+	clear: 'Limpiar',
+	save: 'Guardar',
+	upvote_post: 'Vota la publicación',
+	update_post: 'Actualiza la publicación',
+	markdown_is_supported: 'Estilos y Markdown es soportado',
+	preview: 'Vista Previa',
+	// TODO do not forget to implment REQUIRED error in reply Editor
+	markdown_not_supported: 'Markdown no esta soportado aquí',
+	// markdown: 'Markdown', // this will probably be removed
+	welcome_to_the_blockchain: 'Bienvenidos al Blockchain!',
+	your_voice_is_worth_something: 'Tu voz vale algo',
+	learn_more: 'Aprende más',
+	get_sp_when_sign_up: 'Get ${signupBonus} of Steem Power when you sign up today.',
+	all_accounts_refunded: 'All Recovered Accounts have been fully Refunded',
+	steemit_is_now_open_source: 'Steemit.com es ahora Software Libre',
+	// this is mainly from ReplyEditor
+	tag_your_story: 'Tag (up to 5 tags), the first tag is your main category.',
+	select_a_tag: 'Selecciona una etiqueta',
+	required: 'Requerido',
+	shorten_title: 'Acortar título!',
+	exceeds_maximum_length: 'Excede el máximo de ({maxKb}KB)',
+	including_the_category: "(incluyendo la categoria '{rootCategory}')",
+	use_limited_amount_of_tags: 'Tienes {tagsLength} etiquetas en uso, total{includingCategory}.  Por favor usa solo 5 en tu publicación y linea de categoría.',
+	// this is mainly used in CategorySelector
+	use_limitied_amount_of_categories: 'Por favor solo usa {amount} categorías',
+	use_one_dash: 'Solo usa un guión',
+	use_spaces_to_separate_tags: 'Usa espacios para separar las etiquetas',
+	use_only_allowed_characters: 'Usa solo minusculas, digitos o un guión',
+	must_start_with_a_letter: 'Debe iniciar con una letra',
+	must_end_with_a_letter_or_number: 'Debe iniciar con una letra o número',
+	// tags page
+	tag: 'Etiqueta',
+	replies: 'Respuestas',
+	payouts: 'Pagos',
+	need_password_or_key: 'Tu necesitas una contraseña privada o llave (no la llave pública)',
+	// BlocktradesDeposit
+	change_deposit_address: 'Cambia la dirección de depósito',
+	get_deposit_address: 'Obtener la dirección de depósito',
+	// for example 'powered by Blocktrades'
+	powered_by: 'Funcionando gracias a',
+	send_amount_of_coins_to: 'Enviar {value} {coinName} a',
+	amount_is_in_form: 'Cantidad en formato 99999.999',
+	insufficent_funds: 'Fondos insuficientes',
+	update_estimate: 'Actualizar estimación',
+	get_estimate: 'Obtener estimaciones',
+	memo: 'Memo',
+	must_include_memo: 'Debes incluír el Memo indicado arriba',
+	estimate_using: 'Estimar usando',
+	amount_to_send: 'Cantidad para enviar {estimateInputCoin}',
+	deposit_using: 'Deposit using', // example: 'deposit using Steem Power' // TODO: is this example right?
+	suggested_limit: 'Límite sugerido {depositLimit}',
+	internal_server_error: 'Internal Server Error',
+	enter_amount: 'Ingresar Cantidad',
+	processing: 'Procesando',
+	broadcasted: 'Transmitido',
+	confirmed: 'Confirmado',
+	remove: 'Eliminar',
+	collapse_or_expand: "Colapsar/Expandir",
+	reveal_comment: 'Revelar comentario',
+	are_you_sure: '¿Estás seguro?',
+	// PostFull.jsx
+	by: 'por',
+	in: 'dentro',
+	share: 'Compartir',
+	in_reply_to: 'en respuesta a',
+	replied_to: 'respondido a',
+	transfer_amount_to_steem_power: "Transfer {amount} to STEEM POWER",
+	transfer_amount_steem_power_to: "Transfer {amount} STEEM POWER to",
+	recieve_amount_steem_power_from: "Receive {amount} STEEM POWER from",
+	transfer_amount_steem_power_from_to: "Transfer {amount} STEEM POWER from {from} to",
+	transfer_amount_to: "Transferir {amount} a",
+	recieve_amount_from: "Recibir {amount} de",
+	transfer_amount_from: "Transferir {amount} de",
+	stop_power_down: "Stop power down",
+	start_power_down_of: "Start power down of",
+	curation_reward_of_steem_power_for: 'Curation reward of {reward} STEEM POWER for',
+	author_reward_of_steem_power_for: 'Author reward of {payout} and {reward} STEEM POWER for',
+	recieve_interest_of: 'Interés recibido: {interest}',
+	// TODO find where this is used and write an example
+	to: 'a',
+	account_not_found: 'Cuenta inexistente',
+	this_is_wrong_password: 'Esta contraseña es incorrecta',
+	do_you_need_to: 'Tenés que',
+	recover_your_account: 'recuperar cuenta', // this probably will end with question mark
+	reset_usernames_password: "Restaurar la contraseña para {username}",
+	this_will_update_usernames_authtype_key: 'Esto actualizará la llave {authType} del usuario {username}',
+	the_rules_of_steemit: "The first rule of Steemit is: Do not lose your password.<br /> The second rule of Steemit is: Do <strong>not</strong> lose your password.<br /> The third rule of Steemit is: We cannot recover your password.<br /> The fourth rule: If you can remember the password, it&apos;s not secure.<br /> The fifth rule: Use only randomly-generated passwords.<br /> The sixth rule: Do not tell anyone your password.<br /> The seventh rule: Always back up your password.",
+	account_name: 'Nombre de la cuenta',
+	recover_password: 'Recuperar cuenta',
+	current_password: 'Contraseña actual',
+	recent_password: 'Contraseña reciente',
+	generated_password: 'Contraseña generada',
+	recover_account: 'Recuperar cuenta',
+	new: 'nueva', // ex. 'Generated Password (new)', but not exclusively
+	backup_password_by_storing_it: 'Asegurá esta contraseña almacenándola en un gestor de contraseñas, en un papel, y/o en un archivo de texto seguro',
+	click_to_generate_password: 'Click para generar contraseña',
+	re_enter_generate_password: 'Re-ingresar constaseña generada',
+	understand_that_steemit_cannot_recover_password: 'Entiendo que Steemit no tiene forma de recuperar mi contraseña perdida',
+	i_saved_password: 'I have securely saved my generated password',
+	update_password: 'Actualizar contraseña',
+	password_must_be_characters_or_more: 'Password must be {amount} characters or more',
+	passwords_do_not_match: 'Passwords do not match',
+	you_need_private_password_or_key_not_a_public_key: 'You need a private password or key (not a public key)',
+	account_updated: 'Cuenta actualizada',
+	warning: 'aviso',
+	your_password_permissions_were_reduced: 'Los permisos de tu password fueron reducidos',
+	if_you_did_not_make_this_change: 'Si no haz realizado este cambio por favor',
+	owhership_changed_on: 'Ownership Changed On',
+	deadline_for_recovery_is: 'Deadline for recovery is',
+	i_understand_dont_show_again: "I understand, don't show me again",
+	ok: 'Ok',
+	convert_to_steem: 'Convertir a Steem',
+	steem_dollars_will_be_unavailable: 'This action will take place one week from now and can not be canceled. These Steem Dollars will immediatly become unavailable',
+	amount: 'Cantidad',
+	steem_dollars: 'STEEM DOLLARS',
+	convert: 'Convertir',
+	invalid_amount: 'Invalid amount',
+	insufficent_balance: 'Balance insuficiente',
+	in_week_convert_steem_dollars_to_steem: 'Dentro de una semana, convertir ${amount} STEEM DOLLARS en STEEM',
+	order_placed: 'Orden ingresada', // ex.: "Order placed: Sell {someamount_to_sell} for atleast {min_to_receive}"
+	follow: 'Seguir',
+	unfollow: 'No seguir',
+	mute: 'Silenciar',
+	unmute: 'Activar',
+	confirm_password: 'Confirmar contraseña',
+	login_to_see_memo: 'Acceder para ver el memo',
+	post: 'Post', // places used: tooltip in MediumEditor
+	unknown: 'Desconocido', // exp.: 'unknown error'
+	account_name_is_not_available: 'Nombre de cuenta no disponible',
+	type: 'Tipo',
+	price: 'Precio',
+	// Market.jsx
+	last_price: 'Último precio',
+	'24h_volume': 'volumen de 24h',
+	bid: 'Oferta',
+	ask: 'Demanda',
+	spread: 'Spread',
+	total: 'Total',
+	available: 'Disponible',
+	lowest_ask: 'Lowest ask',
+	highest_bid: 'Highest bid',
+	buy_orders: 'Ordenes de compra',
+	sell_orders: 'Ordenes de venta',
+	trade_history: 'Trade History',
+	open_orders: 'Ordenes abiertas',
+	sell_amount_for_atleast: 'Sell {amount_to_sell} for at least {min_to_receive} ({effectivePrice})',
+	buy_atleast_amount_for: 'Buy at least {min_to_receive} for {amount_to_sell} ({effectivePrice})',
+	higher: 'Más alto', // context is about prices
+	lower: 'Más bajo', // context is about prices
+	total_sd_dollars: "Total SD ($)",
+	sd_dollars: "SD ($)",
+	// RecoverAccountStep1.jsx // recover account stuff
+	not_valid: 'No valido',
+	account_name_is_not_found: 'Account name is not found',
+	unable_to_recover_account_not_change_ownership_recently: 'We are unable to recover this account, it has not changed ownership recently.',
+	password_not_used_in_last_days: 'This password was not used on this account in the last 30 days.',
+	request_already_submitted_contact_support: 'Your request has been already submitted and we are working on it. Please contact support@steemit.com for the status of your request.',
+	recover_account_intro: "From time to time, a Steemian’s owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on steemit.com if the account owner had perviously listed ‘Steemit’ as their account trustee and complied with Steemit’s Terms of Service.",
+	login_with_facebook_or_reddit_media_to_verify_identity: 'Please login with Facebook or Reddit to verify your identity',
+	login_with_social_media_to_verify_identity: 'Please login with {show_social_login} to verify you identity',
+	enter_email_toverify_identity: 'We need to verify your identity. Please enter your email address below to begin the verification.',
+	email: 'Correo electrónico',
+	continue_with_email: "Continuar con correo",
+	thanks_for_submitting_request_for_account_recovery: '<p>Thanks for submitting your request for Account Recovery using Steem’s blockchain-based multi factor authentication.</p> <p>We will respond to you as quickly as possible, however, please expect there may be some delay in response due to high volume of emails.</p> <p>Please be prepared to verify your identity.</p> <p>Regards,</p> <p>Ned Scott</p> <p>CEO Steemit</p>',
+	recovering_account: 'Recuperá tu cuenta',
+	checking_account_owner: 'Revisando el dueño de la cuenta',
+	sending_recovery_request: 'Enviando petición de recuperación',
+	cant_confirm_account_ownership: 'No se pudieron confirmar las credenciales. Verificá tu password',
+	account_recovery_request_not_confirmed: "Account recovery request is not confirmed yet, please get back later, thank you for your patience.",
+	vote: 'Votar',
+	witness: 'Testigo',
+	top_witnesses: 'Mejores Testigos',
+	// user's navigational menu
+	feed: 'Feed',
+	wallet: 'Wallet',
+	blog: 'Blog',
+	change_password: 'Cambiar contraseña',
+	// UserProfile
+	unknown_account: 'Cuenta no conocida',
+	user_hasnt_made_any_posts_yet: "Parece que {name} aún no hizo ningún post!",
+	user_hasnt_started_bloggin_yet: "Parece que {name} aún no empezó a bloguear!",
+	user_hasnt_followed_anything_yet: "Parece que {name} aún no sigue a nadie!",
+	user_hasnt_had_any_replies_yet: "{name} aún no recibió respuestas.",
+	users_blog: "Blog de {name}",
+	users_posts: "Publicaciones de {name}",
+	users_wallet: "Wallet de {name}",
+	users_curation_rewards: "Recompensas de curado de {name}",
+	users_author_rewards: "Recompensas de autoría de {name}",
+	users_permissions: "Permisos de {name}",
+	recent_replies_to_users_posts: "Respuestas recientes a posts de {name}",
+	print: 'Imprimir',
+	curation_rewards: "Recompensa para curadores",
+	author_rewards: 'Recompensa para autores',
+	feeds: 'Feeds',
+	rewards: 'Recompensas',
+	permissions: 'Permisos',
+	password: 'Password',
+	posts: 'Publicación',
+	// english language does not need plurals, but your language might need it
+	// context usually is about profile stats: 'User has: 3 posts, 2 followers, 5 followed'
+	post_count: `{postCount, plural,
+		zero {0 posts}
+		one {# post}
+		few {# posts}
+		many {# posts}
+	}`,
+	follower_count: `{followerCount, plural,
+		zero {0 followers}
+		one {# followers}
+		few {# followers}
+		many {# followers}
+	}`,
+	followed_count: `{followingCount, plural,
+		zero {0 followed}
+		one {# followed}
+		few {# followed}
+		many {# followed}
+	}`,
+	vote_count: `{voteCount, plural,
+		zero {0 votes}
+		one {# votes}
+		few {# votes}
+		many {# votes}
+	}`,
+	response_count: `{responseCount, plural,
+		zero {0 responses}
+		one {# responses}
+		few {# responses}
+		many {# responses}
+	}`,
+	reply_count: `{replyCount, plural,
+		zero {0 replies}
+		one {# replies}
+		few {# replies}
+		many {# replies}
+	}`,
+	this_is_users_reputations_score_it_is_based_on_history_of_votes: "Esta es la reputación de ${name}.\n\nEste puntaje se calcula en base al historial de votos recibidos por el usuario, y es utilizado para ocultar contenido de baja calidad.",
+	newer: 'Más reciente',
+	older: 'Más viejo',
+	author_rewards_last_24_hours: 'Recompensas de autor en las últimas 24 horas',
+	daily_average_author_rewards: 'Promedio diario de recompenzas de autoría',
+	author_rewards_history: 'Historial de recompensas de autoría',
+	balances: 'Balances',
+	estimate_account_value: 'Valor estimado de la cuenta',
+	next_power_down_is_scheduled_to_happen_at: 'El próximo Power Down está va a ocurrir',
+	transfers_are_temporary_disabled: 'Transferencias temporalmente deshabilitadas',
+	history: 'Historial',
+	// CurationRewards.jsx
+	curation_rewards_last_24_hours: 'Recompensas de curado en las últimas 24 horas',
+	daily_average_curation_rewards: 'Promedio diario de recompesas de curado',
+	estimated_curation_rewards_last_week: "Recompensas de curado estimadas en la última semana",
+	curation_rewards_last_week: "Recompensas de curado en los últimos 7 dias",
+	curation_rewards_history: 'Historial de recompesas de curado',
+	// Post.jsx
+	now_showing_comments_with_low_ratings: 'Se ocultaron comentarios denunciados',
+	hide: 'Ocultar',
+	show: 'Mostrar',
+	sort_order: 'Orden',
+	comments_were_hidden_due_to_low_ratings: 'Comentarios ocultados por recibir denuncias',
+	we_will_be_unable_to_create_account_with_this_browser: 'We will be unable to create your Steem account with this browser',
+	you_need_to_logout_before_creating_account: 'Tenés que {logoutLink} antes de poder crear otra cuenta',
+	steemit_can_only_register_one_account_per_verified_user: 'Por favor tené en cuenta que Steemit puede registrar una sola cuenta por usuario verificado',
+	username: 'Nombre de usuario',
+	couldnt_create_account_server_returned_error: "No se pudo crear la cuenta. El servidor devolvió el siguiente error:",
+	form_requires_javascript_to_be_enabled: 'Este formulario necesita que tengas Javascript activado en tu navegador',
+	our_records_indicate_you_already_have_account: 'Los registros indican que ya tenés una cuenta en Steem',
+	to_prevent_abuse_steemit_can_only_register_one_account_per_user: 'Para prevenir abusos (cada cuenta registrada tiene un costo de 3 STEEM) Steemit puede registrar una sola cuenta por usuario verificado.',
+	you_can_either_login_or_send_us_email: 'Podés {loginLink} a tu cuenta existente o {createAccount} si necesitas una cuenta nueva',
+	send_us_email: 'envianos un correo electrónico',
+	connection_lost_reconnecting: 'Conexión perdida, reconectando',
+	// Voting.jsx
+	stop_seeing_content_from_this_user: 'Dejar de ver contenido de este usuario',
+	flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following: 'Denunciar un post puede anula premios de curado y lo hace menos visible. Las denuncias deben utilizarse para prevenir lo siguiente:',
+	fraud_or_plagiarism: 'Fraude o Plagio',
+	hate_speech_or_internet_trolling: 'Expresiones de odio, acoso, o comentarios ofensivos',
+	intentional_miss_categorized_content_or_spam: 'Contenido mal categorizado intencionalmente o Spam',
+	downvote: 'Votar abajo',
+	pending_payout: 'Pagos pendientes',
+	past_payouts: 'Pagos pasados',
+	and: 'y',
+	more: 'más',
+	remove_vote: 'Eliminar voto',
+	upvote: 'Votar',
+	we_will_reset_curation_rewards_for_this_post: 'inhibirá tus premios de curado para este post.',
+	removing_your_vote: 'Deshacer voto',
+	changing_to_an_upvote: 'Cambiar a voto positivo',
+	changing_to_a_downvote: 'Votar negativo',
+	confirm_flag: 'Confirmar Denuncia',
+	//  TODO
+	date_created: 'Fecha Creada',
+	search: 'Buscar',
+	begin_recovery: "Iniciar recuperación",
+	post_as: 'Publicar como', // 'Post as Misha'
+	action: 'Acción',
+	steem_app_center: 'Centro de Aplicaciones de Steem',
+	witness_thread: 'hilo de testigo',
+	you_have_votes_remaining: 'Te quedan {votesCount} votos disponibles',
+	you_can_vote_for_maximum_of_witnesses: 'Podés votar un máximo de 30 testigos',
+	information: 'Información',
+	if_you_want_to_vote_outside_of_top_enter_account_name: 'Si te gustaría votar un testigo fuera del top 50, ingresá el nombre de su cuenta abajo para emitir tu voto.',
+	view_the_direct_parent: 'Vista directa del padre',
+	you_are_viewing_single_comments_thread_from: 'Estás viendo un comentario individual de',
+	view_the_full_context: 'Ver todo el contexto',
+	this_is_a_price_feed_conversion: 'This is a price feed conversion. The one week day delay is necessary to prevent abuse from gaming the price feed average',
+	your_existing_SD_are_liquid_and_transferable: 'Your existing Steem Dollars are liquid and transferable.  Instead you may wish to trade Steem Dollars directly in this site under {link} or transfer to an external market.',
+	buy_or_sell: 'Comprar o vender',
+	trending_30_day: 'Popular (30 dias)',
+	promoted: 'Promocionados',
+	comments: 'Comentarios',
+	topics: 'Topics',
+	this_password_is_bound_to_your_accounts_private_key: 'This password is bound to your account\'s active key and can not be used to login to this page. You may use this active key on other more secure pages like the Wallet or Market pages.',
+	potential_payout: 'Pago potencial',
+	boost_payments: 'Pagos para promoción',
+	authors: 'Autores',
+	curators: 'Curadores',
+	date: 'Fecha',
+	no_responses_yet_click_to_respond: 'Aún no hay respuestas. Click para responder',
+	click_to_respond: 'Click para responder',
+	new_password: 'Nuevo Password',
+	paste_a_youtube_or_vimeo_and_press_enter: 'Pegar un enlace de YouTube o Vimeo y presionar Enter',
+	there_was_an_error_uploading_your_image: 'Hubo un error subiendo tu imagen',
+	raw_html: 'HTML crudo',
+	please_remove_following_html_elements: 'Por favor, remové los siguientes elementos HTML de tu post: ',
+	reputation: "Reputación",
+	remember_voting_and_posting_key: "Recordar llave de voto y publicación",
+	// example usage: 'Autologin? yes/no'
+	auto_login_question_mark: 'Auto login?',
+	yes: 'Si',
+	no: 'No',
+	hide_private_key: 'Ocultar llave privada',
+	login_to_show: 'Acceder para ver',
+	steemit_cannot_recover_passwords_keep_this_page_in_a_secure_location: 'Steemit no puede recuperar passwords. Mantené esta información en un lugar extremadamente seguro.',
+	steemit_password_backup: 'Respaldo de Password de Steemit',
+	steemit_password_backup_required: 'Respaldo de Password de Steemit (obligatorio)',
+	after_printing_write_down_your_user_name: 'Luego de imprimir, anotá tu nombre de usuario',
+	public: 'Publica',
+	private: 'Privada',
+	public_something_key: 'Clave pública {key}',
+	private_something_key: 'Clave privada {key}',
+	posting_key_is_required_it_should_be_different: 'The posting key is used for posting and voting. It should be different from the active and owner keys.',
+	the_active_key_is_used_to_make_transfers_and_place_orders: 'The active key is used to make transfers and place orders in the internal market.',
+	the_owner_key_is_required_to_change_other_keys: 'The owner key is the master key for the account and is required to change the other keys.',
+	the_private_key_or_password_should_be_kept_offline: 'The private key or password for the owner key should be kept offline as much as possible.',
+	the_memo_key_is_used_to_create_and_read_memos: 'The memo key is used to create and read memos.',
+	previous: 'Anterior',
+	next: 'Siguiente',
+	browse: 'Navegar',
+	not_valid_email: 'Email inválido',
+	thank_you_for_being_an_early_visitor_to_steemit: 'Thank you for being an early visitor to Steemit. We will get back to you at the earliest possible opportunity.',
+	estimated_author_rewards_last_week: "Recompensas de autoría estimadas de la semana pasada",
+	author_rewards_last_week: "Recompensas de autoría en los últimos 7 dias",
+	confirm: 'Confirmar',
+	canceled: 'Cancelado',
+	asset: "Mercancía (Asset)",
+	this_memo_is_private: 'Este Memo es Privado',
+	this_memo_is_public: 'Este Memo es Público',
+	power_up: 'Power Up',
+	transfer: 'Transferir',
+	basic: 'Básico',
+	advanced: 'Avanzado',
+	convert_to_steem_power: 'Convertir a Steem Power',
+	transfer_to_account: 'Transferir a una cuenta',
+	buy_steem_or_steem_power: 'Comprar Steem ó Steem Power',
+	version: 'Versión',
+	about_steemit: 'Sobre Steemit',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content: 'Steem es una plataforma de social media donde <strong>todos</strong>&nbsp;reciben <strong>pagos</strong> por crear y votar contenido.',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid: 'Steemit es una red social de contenido donde todos reciben pagos por la creación y curado de contenido. Utiliza un sistema de puntaje, llamado Steem, que soporta valor real para premios digitales a través del descubrimiento de precios de mercado y liquidez.',
+	learn_more_at_steem_io: 'Leer más en steem.io',
+	resources: 'Recursos',
+	steem_whitepaper: 'Steem Whitepaper',
+	join_our_slack: 'Acceder al Chat',
+	steemit_support: 'Soporte de Steemit',
+	please_email_questions_to: 'Por favor enviá tus preguntas por email a:',
+	sorry_your_reddit_account_doesnt_have_enough_karma: "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
+	register_with_facebook: 'Registrate con Facebook',
+	or_click_the_button_below_to_register_with_facebook: 'O hacé click en el botón de abajo para registrarte con tu cuenta de Facebook',
+	trending_24_hour: 'popular (24 horas)',
+	home: 'Inicio',
+	'24_hour': '24 horas',
+	'30_day': '30 dias',
+	flag: "Denunciar",
+
+}
+
+export { es_AR }
diff --git a/app/locales/fr.js b/app/locales/fr.js
new file mode 100644
index 000000000..b8293b559
--- /dev/null
+++ b/app/locales/fr.js
@@ -0,0 +1,460 @@
+const fr = 	{
+	// this variables mainly used in navigation section
+	about: "À Propos",
+	explore: "Explorer",
+	whitepaper: "Steem Whitepaper",
+	buy_steem: "Acheter du Steem",
+	sell_steem: "Vendre du Steem",
+	market: "Marché",
+	stolen_account_recovery: "Récuperation de compte volé",
+	change_account_password: "Changer mot de passe du compte",
+	steemit_chat: "Steemit Chat",
+	witnesses: "Witnesses",
+	privacy_policy: "Politique de Confidentialité",
+	terms_of_service: "Conditions d'utilisation",
+	sign_up: "Inscription",
+	/* end navigation */
+	buy: 'Acheter',
+	sell: 'Vendre',
+	buy_steem_power: 'Acheter du Steem Power',
+	transaction_history: 'Historique des Transactions',
+	submit_a_story: 'Soumettre un Article',
+	nothing_yet: 'Rien pour l\'instant',
+	close: 'Fermer',
+	post_promo_text: "Authors get paid when people like you upvote their post \n If you enjoyed what you read here, earn ${amount} of Steem Power \n when you {link} and vote for it.",
+	read_only_mode: 'Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.',
+	membership_invitation_only: 'Membership to Steemit.com is now under invitation only because of unexpectedly high sign up rate.',
+	submit_email_to_get_on_waiting_list: 'Submit your email to get on the waiting list',
+	login: 'Connexion',
+	logout: 'Deconnexion',
+	show_less_low_value_posts: "Voir moins d'articles à faible valeur",
+	show_more_low_value_posts: "Voir plus d'articles à faible valeur",
+	select_topic: 'Selectionner un sujet',
+	tags_and_topics: "Tags et sujets",
+	filter: "Filtre",
+	show_more_topics: "Afficher plus de sujets",
+	we_require_social_account: 'Steemit rémunere chaque nouveau compte avec ${signup_bonus} de Steem Power; afin d\'éviter les abus, nous demandons aux nouveaux utilisateurs de lier leur compte social.',
+	personal_info_will_be_private: 'Vos informations personelles seront privées',
+	personal_info_will_be_private_link: 'Privé',
+	continue_with_facebook: 'Continuer avec Facebook',
+	continue_with_reddit: 'Continuer avec Reddit',
+	requires_positive_karma: 'neccessite un karma de commentaire positif',
+	dont_have_facebook: 'Vous n\'avez ni Facebook ni Reddit?',
+	subscribe_to_get_sms_confirm: 'Subscribe to get a notification when SMS confirmation is available',
+	by_verifying_you_agree: 'By verifying your account you agree to the Steemit',
+	by_verifying_you_agree_terms_and_conditions: 'conditions générales',
+	terms_and_conditions: 'Conditions générales',
+	// this is from top-right dropdown menu
+	hot: 'hot',
+	trending: 'tendance',
+	payout_time: 'heure de paiement',
+	active: 'actif',
+	responses: 'réponses',
+	popular: 'populaire',
+	/* end dropdown menu */
+	loading: 'Chargement',
+	cryptography_test_failed: 'Test cryptographique echoué',
+	unable_to_log_you_in: 'Ce navigateur ne vous permet pas de vous connecter',
+	latest_browsers_do_work: 'Les dernieres version de {chromeLink} et {mozillaLink} sont compatibles avec steemit.com.',
+	account_creation_succes: 'Votre compte a bien été créé!',
+	account_recovery_succes: 'Votre compte a bien été recupéré!',
+	password_update_succes: 'Le mot de passe de {accountName} a bien été changé',
+	password_is_bound_to_account: "This password is bound to your account\'s owner key and can not be used to login to this site. \nHowever, you can use it to {changePasswordLink} to obtain a more secure set of keys.",
+	update_your_password: 'mettre à jour votre mot de passe',
+	enter_username: 'Entrez votre nom d\'utilisateur',
+	password_or_wif: 'Mot de passe ou WIF',
+	requires_auth_key: 'Ce opération necessite une clé de type {authType} (ou utilisez votre mot de passe)',
+	keep_me_logged_in: 'Rester connecté',
+	// this are used mainly in "submit a story" form
+	title: "Titre",
+	write_your_story: 'Écrivez votre Article',
+	editor: 'Editeur',
+	reply: 'Répondre',
+	edit: 'Modifier',
+	delete: 'Supprimer',
+	cancel: 'Annuler',
+	clear: 'Effacer',
+	save: 'Sauvegarder',
+	upvote_post: 'Upvoter l\'article',
+	update_post: 'Mettre à jour l\'article',
+	markdown_is_supported: 'La mise en page Markdown est compatible',
+	preview: 'Aperçu',
+	// TODO do not forget to implment REQUIRED error in reply Editor
+	markdown_not_supported: 'Markdown n\'es pas compatible ici',
+	// markdown: 'Markdown', // this will probably be removed
+	welcome_to_the_blockchain: 'Bienvenue sur la Blockchain!',
+	your_voice_is_worth_something: 'Votre voix a une valeur',
+	learn_more: 'En savoir plus',
+	get_sp_when_sign_up: 'Obtenez ${signupBonus} de Steem Power à votre inscription.',
+	all_accounts_refunded: 'Vous les comptes récupérés ont été remboursés.',
+	steemit_is_now_open_source: 'Steemit.com est maintenant Open Source',
+	// this is mainly from ReplyEditor
+	tag_your_story: 'Tag (jusqu\'à 5 tags), le premier tag est votre catégorie principale.',
+	select_a_tag: 'Choisir un tag',
+	required: 'Obligatoire',
+	shorten_title: 'Raccourcir le titre',
+	exceeds_maximum_length: 'Depasse la taille maximum ({maxKb}KB)',
+	including_the_category: "(y compris la catégorie '{rootCategory}')",
+	use_limited_amount_of_tags: 'Vous avez {tagsLength} tags en tout{includingCategory}. Veuillez n\'utiliser que 5 tags en tout.',
+	// this is mainly used in CategorySelector
+	use_limitied_amount_of_categories: 'S\'il vous plait, n\'utilisez que {amount} catégories',
+	use_one_dash: 'N\'utilisez qu\'un seul signe dièse',
+	use_spaces_to_separate_tags: 'Utilisez des espaces pour séparer les tags',
+	use_only_allowed_characters: 'Utilisez uniquement des lettres minuscules, des chiffres et un signe dièse',
+	must_start_with_a_letter: 'Doit commencer par une lettre',
+	must_end_with_a_letter_or_number: 'Doit se terminer par une lettre ou un chiffre',
+	// tags page
+	tag: 'Tag',
+	replies: 'Réponses',
+	payouts: 'Paiements',
+	need_password_or_key: 'Vous avez besoin d\'un mot de passe ou d\'une clef privée',
+	// BlocktradesDeposit
+	change_deposit_address: 'Changer Adresse de Depot',
+	get_deposit_address: 'Obtenir Adresse de Depot',
+	// for example 'powered by Blocktrades'
+	powered_by: 'Propulsé par',
+	send_amount_of_coins_to: 'Envoyez {value} {coinName} à',
+	amount_is_in_form: 'Le montant est de la forme 99999.999',
+	insufficent_funds: 'Fonds insuffisants',
+	update_estimate: 'Mettre à jour l\'estimation',
+	get_estimate: 'Obtenir l\'estimation',
+	memo: 'Memo',
+	must_include_memo: 'Vous devez inclure le memo ci-dessus',
+	estimate_using: 'Estimation avec',
+	amount_to_send: 'Montant à envoyer {estimateInputCoin}',
+	deposit_using: 'Depot avec', // example: 'deposit using Steem Power' // TODO: is this example right?
+	suggested_limit: 'Limite conseillée {depositLimit}',
+	internal_server_error: 'Internal Server Error',
+	enter_amount: 'Entrer montant',
+	processing: 'Traitement',
+	broadcasted: 'Diffusé',
+	confirmed: 'Confirmé',
+	remove: 'Enlever',
+	collapse_or_expand: "Réduire/Agrandir",
+	reveal_comment: 'Réveler le commentaire',
+	are_you_sure: 'Êtes-vous certain?',
+	// PostFull.jsx
+	by: 'par',
+	in: 'dans',
+	share: 'Partager',
+	in_reply_to: 'en réponse à',
+	replied_to: 'a répondu à',
+	transfer_amount_to_steem_power: "Transfert {amount} en STEEM POWER",
+	transfer_amount_steem_power_to: "Transfert {amount} STEEM POWER à",
+	recieve_amount_steem_power_from: "Reçu {amount} STEEM POWER de",
+	transfer_amount_steem_power_from_to: "Transfert {amount} STEEM POWER de {from} à",
+	transfer_amount_to: "Transfert {amount} à",
+	recieve_amount_from: "Reçu {amount} de",
+	transfer_amount_from: "Transfert {amount} de",
+	stop_power_down: "Arreter de power down",
+	start_power_down_of: "Commencer le power down de",
+	curation_reward_of_steem_power_for: 'Recompenses de curation de {reward} STEEM POWER for',
+	author_reward_of_steem_power_for: 'Recompenses d\'auteur de {payout} et {reward} STEEM POWER pour',
+	recieve_interest_of: 'Reçu interets de {interest}',
+	// TODO find where this is used and write an example
+	to: 'to',
+	account_not_found: 'Compte introuvable',
+	this_is_wrong_password: 'Ceci est un mauvais mot de passe',
+	do_you_need_to: 'Vous n\'avez pas besoin de',
+	recover_your_account: 'recuperer votre compte', // this probably will end with question mark
+	reset_usernames_password: "Réinitializer le mot de passe de {username}",
+	this_will_update_usernames_authtype_key: 'Ceci mettra à jour la clef {authType} de {username}',
+	the_rules_of_steemit: "La première règle de Steemit est: Ne perdez pas votre mot de passe.<br /> La deuzieme règle de Steemit est: Ne perdez <strong>pas</strong> votre mot de passe.<br /> La troixieme règle de Steemit est: Nous ne pouvons pas récuperer votre mot de passe.<br /> La quatrième règle: Si vous pouvez vous souvenir de votre mot de passe, il n'est pas sécurisé.<br /> La cinquième règle: N'utilisez que des mots de passes générés automatiquement..<br /> La sixieme règle: Ne dites à personne votre mot de passe.<br /> La septième règle: Gardez toujours une copie de votre mot de passe.",
+	account_name: 'Nom du Compte',
+	recover_password: 'Récuperer Mot de Passe',
+	current_password: 'Mot de Passe Actuel',
+	recent_password: 'Mot de Passe Recent',
+	generated_password: 'Mot de Passe Généré',
+	recover_account: 'Récuperer Compte',
+	new: 'nouveau', // ex. 'Generated Password (new)', but not exclusively
+	backup_password_by_storing_it: 'Gardez une copie de votre mot de passe dans votre gestionnaire de mot de passe ou dans un fichier texte',
+	click_to_generate_password: 'Cliquez pour génerer un mot de passe',
+	re_enter_generate_password: 'Retaper le Mot de Passe Généré',
+	understand_that_steemit_cannot_recover_password: 'Je comprend que Steemit ne peux pas récuperer un mot de passe perdu',
+	i_saved_password: 'J\'ai sauvegardé de façon sécurisée mon mot de passe généré',
+	update_password: 'Mettre à jour Mot de Passe',
+	password_must_be_characters_or_more: 'Votre mot de passe doit contenir {amount} caractères au minimum',
+	passwords_do_not_match: 'Les mots de passe ne correspondent pas',
+	you_need_private_password_or_key_not_a_public_key: 'Vous avez besoin d\'un mot de passe ou d\'une clef privée',
+	account_updated: 'Compte mis-à-jour',
+	warning: 'avertissement',
+	your_password_permissions_were_reduced: 'Your password permissions were reduced',
+	if_you_did_not_make_this_change: 'Si vous n\'avez pas fait ce changement s\'il vous plait',
+	owhership_changed_on: 'Ownership Changed On',
+	deadline_for_recovery_is: 'Deadline for recovery is',
+	i_understand_dont_show_again: "Je comprends, ne plus afficher",
+	ok: 'Ok',
+	convert_to_steem: 'Convertir en Steem',
+	steem_dollars_will_be_unavailable: 'Cette action sera effective dans une semaine et ne peux pas être annulée. Ces Steem Dollars ne seront plus accessibles immediatement',
+	amount: 'Montant',
+	steem_dollars: 'STEEM DOLLARS',
+	convert: 'Convertir',
+	invalid_amount: 'Montant invalide',
+	insufficent_balance: 'Solde insuffisant',
+	in_week_convert_steem_dollars_to_steem: 'Dans une semaine, convertir {amount} STEEM DOLLARS en STEEM',
+	order_placed: 'Order placed', // ex.: "Order placed: Sell {someamount_to_sell} for atleast {min_to_receive}"
+	follow: 'Suivre',
+	unfollow: 'Ne plus suivre',
+	mute: 'Ignorer',
+	unmute: 'Ne plus ignorer',
+	confirm_password: 'Confirmer Mot de Passe',
+	login_to_see_memo: 'se connecter pour voir le memo',
+	post: 'Article', // places used: tooltip in MediumEditor
+	unknown: 'Inconnu', // exp.: 'unknown error'
+	account_name_is_not_available: 'Ce nom d\'utilisateur n\'est pas disponible',
+	type: 'Type',
+	price: 'Prix',
+	// Market.jsx
+	last_price: 'Dernier prix',
+	'24h_volume': 'Volume 24h',
+	bid: 'Bid',
+	ask: 'Ask',
+	spread: 'Spread',
+	total: 'Total',
+	available: 'Disponible',
+	lowest_ask: 'Lowest ask',
+	highest_bid: 'Highest bid',
+	buy_orders: 'Buy Orders',
+	sell_orders: 'Sell Orders',
+	trade_history: 'Trade History',
+	open_orders: 'Open Orders',
+	sell_amount_for_atleast: 'Sell {amount_to_sell} for at least {min_to_receive} ({effectivePrice})',
+	buy_atleast_amount_for: 'Buy at least {min_to_receive} for {amount_to_sell} ({effectivePrice})',
+	higher: 'Higher', // context is about prices
+	lower: 'Lower', // context is about prices
+	total_sd_dollars: "Total SD ($)",
+	sd_dollars: "SD ($)",
+	// RecoverAccountStep1.jsx // recover account stuff
+	not_valid: 'Non valide',
+	account_name_is_not_found: 'Compte introuvable',
+	unable_to_recover_account_not_change_ownership_recently: 'Nous ne pouvons pas récuperer ce compte, car il n\'à pas changé de propriétaire recemment',
+	password_not_used_in_last_days: 'Ce mot de passe n\'a pas été utilisé pour ce compte dans les 30 derniers jours.',
+	request_already_submitted_contact_support: 'Votre demande a déjà été soumise et nous travaillons dessus. Veuillez contacter support@steemit.com à propos du status de votre demande.',
+	recover_account_intro: "From time to time, a Steemian’s owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on steemit.com if the account owner had perviously listed ‘Steemit’ as their account trustee and complied with Steemit’s Terms of Service.",
+	login_with_facebook_or_reddit_media_to_verify_identity: 'Veuillez vous connecter avec Facebook ou Reddit pour verifier votre identité',
+	login_with_social_media_to_verify_identity: 'Veuillez vous connecter avec {show_social_login} pour verifier votre identité',
+	enter_email_toverify_identity: 'Nous devons verifier votre identité. Veuillez entrer votre addresse email ci-dessous pour commencer la verification.',
+	email: 'Email',
+	continue_with_email: "Continuer par Email",
+	thanks_for_submitting_request_for_account_recovery: '<p>Thanks for submitting your request for Account Recovery using Steem’s blockchain-based multi factor authentication.</p> <p>We will respond to you as quickly as possible, however, please expect there may be some delay in response due to high volume of emails.</p> <p>Please be prepared to verify your identity.</p> <p>Regards,</p> <p>Ned Scott</p> <p>CEO Steemit</p>',
+	recovering_account: 'Récuperation du compte',
+	checking_account_owner: 'Verification du propriétaire du compte',
+	sending_recovery_request: 'Envoi de la demande de récuperation',
+	cant_confirm_account_ownership: 'Nous ne pouvons pas confirmer que vous êtes le propriétaire. Verifiez votre mot de passe',
+	account_recovery_request_not_confirmed: "Votre demande de recupération de compte n'est pas encore confirmée, revenez plus tard, merci pour votre patience.",
+	vote: 'Vote',
+	witness: 'Witness',
+	top_witnesses: 'Top Witnesses',
+	// user's navigational menu
+	feed: 'Fil',
+	wallet: 'Wallet',
+	blog: 'Blog',
+	change_password: 'Modifier Mot de Passe',
+	// UserProfile
+	unknown_account: 'Compte Inconnu',
+	user_hasnt_made_any_posts_yet: "Il s\'emble que {name} n\'a pas encore publié d\'articles!",
+	user_hasnt_started_bloggin_yet: "Il s\'emble que {name} n\'a pas encore commencé à blogger!",
+	user_hasnt_followed_anything_yet: "Il s\'emble que {name} ne suit personne pour l\'instant!",
+	user_hasnt_had_any_replies_yet: "{name} n\'a pas eu de réponses pour l\'instant",
+	users_blog: "Le blog de {name}",
+	users_posts: "Les articles de {name}",
+	users_wallet: "Wallet de {name}",
+	users_curation_rewards: "Récompenses de curation de {name}",
+	users_author_rewards: "Récompenses d'auteur de {name}",
+	users_permissions: "Permissions de {name}",
+	recent_replies_to_users_posts: "Réponses recentes aux articles de {name}",
+	print: 'Imprimmer',
+	curation_rewards: "Récompenses de curation",
+	author_rewards: 'Récompenses d\'auteur',
+	feeds: 'Fils',
+	rewards: 'Récompenses',
+	permissions: 'Permissions',
+	password: 'Mot de Passe',
+	posts: 'Articles',
+	// english language does not need plurals, but your language might need it
+	// context usually is about profile stats: 'User has: 3 posts, 2 followers, 5 followed'
+	post_count: `{postCount, plural,
+		zero {0 posts}
+		one {# post}
+		few {# posts}
+		many {# posts}
+	}`,
+	follower_count: `{followerCount, plural,
+		zero {0 followers}
+		one {# followers}
+		few {# followers}
+		many {# followers}
+	}`,
+	followed_count: `{followingCount, plural,
+		zero {0 followed}
+		one {# followed}
+		few {# followed}
+		many {# followed}
+	}`,
+	vote_count: `{voteCount, plural,
+		zero {0 votes}
+		one {# votes}
+		few {# votes}
+		many {# votes}
+	}`,
+	response_count: `{responseCount, plural,
+		zero {0 responses}
+		one {# responses}
+		few {# responses}
+		many {# responses}
+	}`,
+	reply_count: `{replyCount, plural,
+		zero {0 replies}
+		one {# replies}
+		few {# replies}
+		many {# replies}
+	}`,
+	this_is_users_reputations_score_it_is_based_on_history_of_votes: "This is ${name}'s reputation score.\n\nThe reputation score is based on the history of votes received by the account, and is used to hide low quality content.",
+	newer: 'Newer',
+	older: 'Older',
+	author_rewards_last_24_hours: 'Revenus Auteur ces dernières 24h',
+	daily_average_author_rewards: 'Revenus Auteur moyen par jour',
+	author_rewards_history: 'Revenus Auteur History',
+	balances: 'Balances',
+	estimate_account_value: 'Valeur estimée du compte',
+	next_power_down_is_scheduled_to_happen_at: 'Le prochain power down est programmé pour',
+	transfers_are_temporary_disabled: 'Les transfers sont temporairement désactivés',
+	history: 'Historique',
+	// CurationRewards.jsx
+	curation_rewards_last_24_hours: 'Revenus de Curation ces dernières 24h',
+	daily_average_curation_rewards: 'Revenus de Curation moyen par jour',
+	estimated_curation_rewards_last_week: "Revenus de Curation estimé la semaine dernière",
+	curation_rewards_last_week: "Revenus de Curation la semaine dernière",
+	curation_rewards_history: 'Historique Revenus de Curation',
+	// Post.jsx
+	now_showing_comments_with_low_ratings: 'Montrer maintenant les commentaires low rating',
+	hide: 'Masquer',
+	show: 'Montrer',
+	sort_order: 'Classer par',
+	comments_were_hidden_due_to_low_ratings: 'Commentaires cachés en raison du Low rating',
+	we_will_be_unable_to_create_account_with_this_browser: 'Ne nous sommes pas en mesure de créer votre compte Steem à partir de ce navigateur',
+	you_need_to_logout_before_creating_account: 'You need to {logoutLink} before you can create another account',
+	steemit_can_only_register_one_account_per_verified_user: 'Vous ne pouvez enregistrer qu\'un compte par utilisateur vérifié',
+	username: 'Nom d\'utilisateur',
+	couldnt_create_account_server_returned_error: "Couldn't create account. Server returned the following error",
+	form_requires_javascript_to_be_enabled: 'This form requires javascript to be enabled in your browser',
+	our_records_indicate_you_already_have_account: 'Our records indicate that you already have steem account',
+	to_prevent_abuse_steemit_can_only_register_one_account_per_user: 'In order to prevent abuse (each registered account costs 3 STEEM) Steemit can only register one account per verified user.',
+	you_can_either_login_or_send_us_email: 'You can either {loginLink} to your existing account or  if you need a new account',
+	send_us_email: 'send us email',
+	connection_lost_reconnecting: 'Connection lost, reconnecting',
+	// Voting.jsx
+	stop_seeing_content_from_this_user: 'Stop seeing content from this user',
+	flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following: 'Flagging a post can remove rewards and make this material less visible. The flag should be used for the following',
+	fraud_or_plagiarism: 'Fraud or Plagiarism',
+	hate_speech_or_internet_trolling: 'Hate Speech or Internet Trolling',
+	intentional_miss_categorized_content_or_spam: 'Intentional miss-categorized content or Spam',
+	downvote: 'Downvote',
+	pending_payout: 'Paiement en attente',
+	past_payouts: 'Paiements passés',
+	and: 'and',
+	more: 'more',
+	remove_vote: 'Retirer le Vote',
+	upvote: 'Upvote',
+	we_will_reset_curation_rewards_for_this_post: 'will reset your curation rewards for this post',
+	removing_your_vote: 'Retirer votre vote',
+	changing_to_an_upvote: 'Changer en un Up-Vote',
+	changing_to_a_downvote: 'Changer en un Down-Vote',
+	confirm_flag: 'Confirm Flag',
+	//  TODO
+	date_created: 'Date Created',
+	search: 'Rechercher',
+	begin_recovery: "Begin Recovery",
+	post_as: 'Post as', // 'Post as Misha'
+	action: 'Action',
+	steem_app_center: 'Steem App Center',
+	witness_thread: 'witness thread',
+	you_have_votes_remaining: 'You have {votesCount} votes remaining',
+	you_can_vote_for_maximum_of_witnesses: 'You can vote for a maximum of 30 witnesses',
+	information: 'Information',
+	if_you_want_to_vote_outside_of_top_enter_account_name: 'If you would like to vote for a witness outside of the top 50, enter the account name below to cast a vote',
+	view_the_direct_parent: 'View the direct parent',
+	you_are_viewing_single_comments_thread_from: 'You are viewing a single comment&#39;s thread from',
+	view_the_full_context: 'View the full context',
+	this_is_a_price_feed_conversion: 'This is a price feed conversion. The one week day delay is necessary to prevent abuse from gaming the price feed average',
+	your_existing_SD_are_liquid_and_transferable: 'Your existing Steem Dollars are liquid and transferable.  Instead you may wish to trade Steem Dollars directly in this site under {link} or transfer to an external market.',
+	buy_or_sell: 'Buy or Sells',
+	trending_30_day: 'trending (30 day)',
+	promoted: 'promoted',
+	comments: 'Commentaires',
+	topics: 'Topics',
+	this_password_is_bound_to_your_accounts_private_key: 'This password is bound to your account\'s active key and can not be used to login to this page. You may use this active key on other more secure pages like the Wallet or Market pages.',
+	potential_payout: 'Paiement potentiel',
+	boost_payments: 'Boost Payments',
+	authors: 'Auteurs',
+	curators: 'Curateurs',
+	date: 'Date',
+	no_responses_yet_click_to_respond: 'Encore aucune réponse. Cliquer pour repondre.',
+	click_to_respond: 'Cliquer pour repondre',
+	new_password: 'New Password',
+	paste_a_youtube_or_vimeo_and_press_enter: 'Paste a YouTube or Vimeo and press Enter',
+	there_was_an_error_uploading_your_image: 'There was an error uploading your image',
+	raw_html: 'Raw HTML',
+	please_remove_following_html_elements: 'Please remove the following HTML elements from your post: ',
+	reputation: "Reputation",
+	remember_voting_and_posting_key: "Remember voting & posting key",
+	// example usage: 'Autologin? yes/no'
+	auto_login_question_mark: 'Auto login?',
+	yes: 'Oui',
+	no: 'No',
+	hide_private_key: 'Hide private key',
+	login_to_show: 'Login to show',
+	steemit_cannot_recover_passwords_keep_this_page_in_a_secure_location: 'Steemit cannot recover passwords.  Keep this page in a secure location, such as a fireproof safe or safety deposit box.',
+	steemit_password_backup: 'Steemit Password Backup',
+	steemit_password_backup_required: 'Steemit Password Backup (required)',
+	after_printing_write_down_your_user_name: 'After printing, write down your user name',
+	public: 'Public',
+	private: 'Private',
+	public_something_key: 'Public {key} Key',
+	private_something_key: 'Private {key} Key',
+	posting_key_is_required_it_should_be_different: 'The posting key is used for posting and voting. It should be different from the active and owner keys.',
+	the_active_key_is_used_to_make_transfers_and_place_orders: 'The active key is used to make transfers and place orders in the internal market.',
+	the_owner_key_is_required_to_change_other_keys: 'The owner key is the master key for the account and is required to change the other keys.',
+	the_private_key_or_password_should_be_kept_offline: 'The private key or password for the owner key should be kept offline as much as possible.',
+	the_memo_key_is_used_to_create_and_read_memos: 'The memo key is used to create and read memos.',
+	previous: 'Précédent',
+	next: 'Suivant',
+	browse: 'Browse',
+	not_valid_email: 'Email non valide',
+	thank_you_for_being_an_early_visitor_to_steemit: 'Thank you for being an early visitor to Steemit. We will get back to you at the earliest possible opportunity.',
+	estimated_author_rewards_last_week: "Estimated author rewards last week",
+	author_rewards_last_week: "Estimated author rewards last week",
+	confirm: 'Confirm',
+	canceled: 'Canceled',
+	asset: "Asset",
+	this_memo_is_private: 'This Memo is Private',
+	this_memo_is_public: 'This Memo is Public',
+	power_up: 'Power Up',
+	transfer: 'Transfer',
+	basic: 'Basic',
+	advanced: 'Advanced',
+	convert_to_steem_power: 'Convert to Steem Power',
+	transfer_to_account: 'Transfer to Account',
+	buy_steem_or_steem_power: 'Acheter du Steem ou Steem Power',
+	version: 'Version',
+	about_steemit: 'A propos de Steemit',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content: 'Steemit is a social media platform where <strong>everyone</strong>&nbsp;gets <strong>paid</strong> for creating and curating content',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid: 'Steemit is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Steem, that supports real value for digital rewards through market price discovery and liquidity.',
+	learn_more_at_steem_io: 'Learn more at steem.io',
+	resources: 'Resources',
+	steem_whitepaper: 'Steem Whitepaper',
+	join_our_slack: 'Join our Slack',
+	steemit_support: 'Steemit Support',
+	please_email_questions_to: 'Please email your questions to',
+	sorry_your_reddit_account_doesnt_have_enough_karma: "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
+	register_with_facebook: 'S\'enregistrer avec Facebook',
+	or_click_the_button_below_to_register_with_facebook: 'Ou cliquer le bouton ci-dessous pour s\'enregister avec Facebook',
+	trending_24_hour: 'trending (24 hour)',
+	home: 'home',
+	'24_hour': '24 hour',
+	'30_day': '30 day',
+	flag: "Flag",
+
+}
+
+export { fr }
diff --git a/app/locales/it.js b/app/locales/it.js
new file mode 100644
index 000000000..0a632f1b6
--- /dev/null
+++ b/app/locales/it.js
@@ -0,0 +1,460 @@
+const it = 	{
+	// this variables mainly used in navigation section
+	about: "About",
+	explore: "Explore",
+	whitepaper: "Steem Whitepaper",
+	buy_steem: "Compra Steem",
+	sell_steem: "Vendi Steem",
+	market: "Mercato",
+	stolen_account_recovery: "Recupera Account Perso",
+	change_account_password: "Modifica Password Account",
+	steemit_chat: "Steemit Chat",
+	witnesses: "Witnesses",
+	privacy_policy: "Privacy Policy",
+	terms_of_service: "Termini di Servizio",
+	sign_up: "Iscriviti",
+	/* end navigation */
+	buy: 'Compra',
+	sell: 'Vendi',
+	buy_steem_power: 'Compra Steem Power',
+	transaction_history: 'Storico delle Transazioni',
+	submit_a_story: 'Scrivi un Articolo',
+	nothing_yet: 'Ancora nulla',
+	close: 'Chiudi',
+	post_promo_text: "Gli autori vengono pagati nel momento in cui persone come te votano i loro post \n Se ti è piaciuto quello che hai letto, guadagni ${amount} di Steem Power \n quando tu {link} e lo voti.",
+	read_only_mode: 'A causa della manutenzione server, il sistema sta funzionando in modalità di sola lettura. Ci scusiamo per il contrattempo.',
+	membership_invitation_only: 'Diventare membri di Steemit.com avviene solamente tramite invito a causa di un inaspettato numero di iscrizioni.',
+	submit_email_to_get_on_waiting_list: 'Inserisci la tua email per entrare nella lista di attesa',
+	login: 'Login',
+	logout: 'Logout',
+	show_less_low_value_posts: "Mostra meno articoli di poco valore",
+	show_more_low_value_posts: "Mostra più articoli di poco valore",
+	select_topic: 'Seleziona Argomento',
+	tags_and_topics: "Tags e Argomenti",
+	filter: "Filtro",
+	show_more_topics: "Mostra più argomenti",
+	we_require_social_account: 'Steemit assegna ad ogni account ${signup_bonus} valorizzati in Steem Power; per prevenire gli abusi, ai nuovi utenti è richiesto di accedere tramite social.',
+	personal_info_will_be_private: 'Le tue informazioni personali verranno custodite',
+	personal_info_will_be_private_link: 'Privato',
+	continue_with_facebook: 'Continua con Facebook',
+	continue_with_reddit: 'Continua con Reddit',
+	requires_positive_karma: 'richiede Reddit comment karma positivi',
+	dont_have_facebook: 'Non hai un account Facebook o Reddit?',
+	subscribe_to_get_sms_confirm: 'Iscritivi per ottenere una notifica quando il sistema a conferma SMS sia attivo',
+	by_verifying_you_agree: 'Verificando il tuo account l\'utente accetta Steemit',
+	by_verifying_you_agree_terms_and_conditions: 'termini e condizioni',
+	terms_and_conditions: 'Termini e Condizioni',
+	// this is from top-right dropdown menu
+	hot: 'hot',
+	trending: 'trending',
+	payout_time: 'in corso di pagamento',
+	active: 'attivi',
+	responses: 'con più risposte',
+	popular: 'popolari',
+	/* end dropdown menu */
+	loading: 'Loading',
+	cryptography_test_failed: 'Test di crittografia fallito',
+	unable_to_log_you_in: 'Non è possibile fare il login con questo browser',
+	latest_browsers_do_work: 'L\'ultima versione di {chromeLink} e di {mozillaLink} sono state testate e funzionano con steemit.com.',
+	account_creation_succes: 'Il tuo account è stato creato con successo!',
+	account_recovery_succes: 'Il tuo account è stato recuperato con successo!',
+	password_update_succes: 'La password dell\'account {accountName} è stata aggiornata',
+	password_is_bound_to_account: "Questa password è legata alla chiave proprietaria del tuo account e non può essere usata per effettuare il login a questo sito. \nPerò, puoi utilizzarla per {changePasswordLink} ottenere un set più sicuro di chiavi.",
+	update_your_password: 'Aggiorna password',
+	enter_username: 'Inserisci username',
+	password_or_wif: 'Password o WIF',
+	requires_auth_key: 'Questa operazione necessita l\'uso della chiave {authType} (o l\'utilizzo della tua master password)',
+	keep_me_logged_in: 'Mantieni l\'accesso',
+	// this are used mainly in "submit a story" form
+	title: "Titolo",
+	write_your_story: 'Scrivi Articolo',
+	editor: 'Editor',
+	reply: 'Rispondi',
+	edit: 'Modifica',
+	delete: 'Elminina',
+	cancel: 'Annulla',
+	clear: 'Pulisci',
+	save: 'Salva',
+	upvote_post: 'Vota il post',
+	update_post: 'Aggiorna il Post',
+	markdown_is_supported: 'I tag di Styling con Markdown sono supportati',
+	preview: 'Anteprima',
+	// TODO do not forget to implment REQUIRED error in reply Editor
+	markdown_not_supported: 'I Markdown non sono supportati qui',
+	// markdown: 'Markdown', // this will probably be removed
+	welcome_to_the_blockchain: 'Welcome to the Blockchain!',
+	your_voice_is_worth_something: 'La tua voce ha un certo valore',
+	learn_more: 'Approfondisci',
+	get_sp_when_sign_up: 'Ottieni un bonus di ${signupBonus} di Steem Power se ti iscrivi oggi.',
+	all_accounts_refunded: 'Tutti gli account recuperati sono stati rimborsati pienamente',
+	steemit_is_now_open_source: 'Steemit.com è ora Open Source',
+	// this is mainly from ReplyEditor
+	tag_your_story: 'Tag (massimo 5 tags), il primo tag rappresenta la categoria principale.',
+	select_a_tag: 'Seleziona un tag',
+	required: 'Richiesto',
+	shorten_title: 'Titoletto',
+	exceeds_maximum_length: 'Exceeds maximum length ({maxKb}KB)',
+	including_the_category: "(including the category '{rootCategory}')",
+	use_limited_amount_of_tags: 'You have {tagsLength} tags total{includingCategory}.  Per cortesia utilizzane un massimo di 5 per post.',
+	// this is mainly used in CategorySelector
+	use_limitied_amount_of_categories: 'Please use only {amount} categories',
+	use_one_dash: 'Utilizza un solo trattino',
+	use_spaces_to_separate_tags: 'Usa gli spazi per separare i vari tag',
+	use_only_allowed_characters: 'Usa solo lettere minuscole, numeri e un trattino',
+	must_start_with_a_letter: 'Deve iniziare con una lettera',
+	must_end_with_a_letter_or_number: 'Deve terminare con una lettera o numero',
+	// tags page
+	tag: 'Tag',
+	replies: 'Risposte',
+	payouts: 'Pagamenti',
+	need_password_or_key: 'Hai bisogno di una password o della chiave privata (non chiave pubblica)',
+	// BlocktradesDeposit
+	change_deposit_address: 'Cambia Indirizzo di Deposito',
+	get_deposit_address: 'Ottieni Indirizzo di Deposito',
+	// for example 'powered by Blocktrades'
+	powered_by: 'Offerto da',
+	send_amount_of_coins_to: 'Invia {value} {coinName} a',
+	amount_is_in_form: 'L\'ammontare è nella forma di 99999.999',
+	insufficent_funds: 'Fondi insufficienti',
+	update_estimate: 'Aggiorna stima',
+	get_estimate: 'Ottieni stima',
+	memo: 'Memo',
+	must_include_memo: 'Devi includere il campo memo',
+	estimate_using: 'Estimate using',
+	amount_to_send: 'Ammontare da inviare {estimateInputCoin}',
+	deposit_using: 'Deposita usando', // example: 'deposit using Steem Power' // TODO: is this example right?
+	suggested_limit: 'Limite suggerito {depositLimit}',
+	internal_server_error: 'Internal Server Error',
+	enter_amount: 'Inserisci ammontare',
+	processing: 'Processing',
+	broadcasted: 'Broadcasted',
+	confirmed: 'Confirmed',
+	remove: 'Remove',
+	collapse_or_expand: "Richiudi/Espandi",
+	reveal_comment: 'Rivela commento',
+	are_you_sure: 'Sei sicuro?',
+	// PostFull.jsx
+	by: 'by',
+	in: 'in',
+	share: 'Condividi',
+	in_reply_to: 'in risposta a',
+	replied_to: 'risposto a',
+	transfer_amount_to_steem_power: "Trasferisci {amount} a STEEM POWER",
+	transfer_amount_steem_power_to: "Trasferisci {amount} STEEM POWER a",
+	recieve_amount_steem_power_from: "Ricevuto {amount} STEEM POWER da",
+	transfer_amount_steem_power_from_to: "Trasferisci {amount} STEEM POWER da {from} a",
+	transfer_amount_to: "Trasferisci {amount} a",
+	recieve_amount_from: "Ricevuto {amount} da",
+	transfer_amount_from: "Trasferisci {amount} da",
+	stop_power_down: "Stop power down",
+	start_power_down_of: "Start power down of",
+	curation_reward_of_steem_power_for: 'Curation reward di {reward} STEEM POWER per',
+	author_reward_of_steem_power_for: 'Author reward di {payout} e {reward} STEEM POWER per',
+	recieve_interest_of: 'Ricevuti interessi di {interest}',
+	// TODO find where this is used and write an example
+	to: 'a',
+	account_not_found: 'Account non trovato',
+	this_is_wrong_password: 'Questa è la password sbagliata',
+	do_you_need_to: 'Hai bisogno di',
+	recover_your_account: 'recuperare il tuo account', // this probably will end with question mark
+	reset_usernames_password: "Reimpostare {username}\'s Password",
+	this_will_update_usernames_authtype_key: 'Questo aggiornerà la {username} {authType} chiave',
+	the_rules_of_steemit: "La prima regola di Steemit è: Non smarrire la tua password.<br /> La seconda regola di Steemit è: <strong>Non</strong> smarrire la tua password.<br /> La terza regola di Steemit è: Non possiamo recuperare la tua password smarrita.<br /> La quarta regola: Se riesci a ricordarti la password, non è abbastanza sicura.<br /> La quinta regola: Usa password generate randomaticamente.<br /> La sesta regola: Non condividere con nessuno la tua password.<br /> La settima regola: Conserva sempre una copia della tua password.",
+	account_name: 'Nome Account',
+	recover_password: 'Recupera Account',
+	current_password: 'Password Attuale',
+	recent_password: 'Password Recente',
+	generated_password: 'Password Generata',
+	recover_account: 'Recupera Account',
+	new: 'nuovo', // ex. 'Generated Password (new)', but not exclusively
+	backup_password_by_storing_it: 'Fai un backup della tua password o scrivila su un foglio di carta',
+	click_to_generate_password: 'Clicca per generare una password',
+	re_enter_generate_password: 'Riscrivi la Password generata',
+	understand_that_steemit_cannot_recover_password: 'Io capisco che Steemit non può recuperare le password smarrite',
+	i_saved_password: 'Io ho salvato e messo al sicuro la mia password generata',
+	update_password: 'Aggiorna Password',
+	password_must_be_characters_or_more: 'La password deve essere di {amount} caratteri o più',
+	passwords_do_not_match: 'Password non corretta',
+	you_need_private_password_or_key_not_a_public_key: 'Hai bisogno di una password privata o chiave (non chiave pubblica)',
+	account_updated: 'Account Aggiornato',
+	warning: 'attenzione',
+	your_password_permissions_were_reduced: 'I permessi della tua password sono stati ridotti',
+	if_you_did_not_make_this_change: 'Se non sei stato tu a fare questo, modifica',
+	owhership_changed_on: 'Ownership Changed On',
+	deadline_for_recovery_is: 'La Deadline per il recupero è',
+	i_understand_dont_show_again: "Ho capito, non mostrare più",
+	ok: 'Ok',
+	convert_to_steem: 'Converti in Steem',
+	steem_dollars_will_be_unavailable: 'Questa azione durerà una settimana da ora e non potrà essere cancellata. Questi Steem Dollars diventeranno immediatamente inutilizzabili',
+	amount: 'Quantità',
+	steem_dollars: 'STEEM DOLLARS',
+	convert: 'Converti',
+	invalid_amount: 'Quantità non valida',
+	insufficent_balance: 'Saldo insufficiente',
+	in_week_convert_steem_dollars_to_steem: 'in una settimana, converte {amount} STEEM DOLLARS in STEEM',
+	order_placed: 'Ordine piazzato', // ex.: "Order placed: Sell {someamount_to_sell} for atleast {min_to_receive}"
+	follow: 'Follow',
+	unfollow: 'Unfollow',
+	mute: 'Mute',
+	unmute: 'Unmute',
+	confirm_password: 'Conferma Password',
+	login_to_see_memo: 'effettua login per vedere memo',
+	post: 'Post', // places used: tooltip in MediumEditor
+	unknown: 'Unknown', // exp.: 'unknown error'
+	account_name_is_not_available: 'Il nome account non è disponibile',
+	type: 'Type',
+	price: 'Prezzo',
+	// Market.jsx
+	last_price: 'Ultimo prezzo',
+	'24h_volume': '24h volume',
+	bid: 'Bid',
+	ask: 'Ask',
+	spread: 'Spread',
+	total: 'Total',
+	available: 'Disponibile',
+	lowest_ask: 'Lowest ask',
+	highest_bid: 'Highest bid',
+	buy_orders: 'Buy Orders',
+	sell_orders: 'Sell Orders',
+	trade_history: 'Storia Ordini',
+	open_orders: 'Open Orders',
+	sell_amount_for_atleast: 'Vendi {amount_to_sell} per almeno {min_to_receive} ({effectivePrice})',
+	buy_atleast_amount_for: 'Buy at least {min_to_receive} for {amount_to_sell} ({effectivePrice})',
+	higher: 'Higher', // context is about prices
+	lower: 'Lower', // context is about prices
+	total_sd_dollars: "Total SD ($)",
+	sd_dollars: "SD ($)",
+	// RecoverAccountStep1.jsx // recover account stuff
+	not_valid: 'Non valido',
+	account_name_is_not_found: 'Il nome account non è stato trovato',
+	unable_to_recover_account_not_change_ownership_recently: 'Non è possibile recuperare questo account, non è stata cambiata la sua proprietà di recente.',
+	password_not_used_in_last_days: 'Questa password non è stata utilizzata per questo account negli ultimi 30 giorni.',
+	request_already_submitted_contact_support: 'La tua richiesta è stata aggiunta e ci stiamo lavorando. Per cortesia contatta support@steemit.com per richiede lo stato della tua richiesta.',
+	recover_account_intro: "Di volta in volta, una chiave proprietaria di uno Steemian’s può essere compromessa. Stolen Account Recovery dà al proprietario dell'account legittimo 30 giorni per recuperarlo dal momento in cui il ladro ha cambiato la chiave proprietaria. Stolen Account Recovery può essere usata su steemit.com if se il proprietario dell\'account ha precedentemente legato ‘Steemit’ tramite account fiduciario e rispettato i termini di servizio.",
+	login_with_facebook_or_reddit_media_to_verify_identity: 'Per cortesia effettua un login con Facebook o Reddit per verificare la tua identità',
+	login_with_social_media_to_verify_identity: 'Per cortesia effettua un login con {show_social_login} per verificare la tua identità',
+	enter_email_toverify_identity: 'Abbiamo bisogono di verificare la tua identità. Per cortesia inserisci il tuo indirizzo email di seguito per iniziare la procedura di verifica.',
+	email: 'Email',
+	continue_with_email: "Continua con Email",
+	thanks_for_submitting_request_for_account_recovery: '<p>Grazie per aver inserito la tua richiesta per l\'Account Recovery usando Steem’s blockchain-based multi factor authentication.</p> <p>Risponderemo il prima possibile, ma aspettati per cortesia dei possibili ritardi dovuti al gran numero di email che riceviamo.</p> <p>Per cortesia sii preparato per verificare la tua idendità.</p> <p>Cordiali Saluti,</p> <p>Ned Scott</p> <p>CEO Steemit</p>',
+	recovering_account: 'Recupero account',
+	checking_account_owner: 'Controllo account proprietario',
+	sending_recovery_request: 'Invia richiesta di recupero',
+	cant_confirm_account_ownership: 'Non possiamo confermare la proprietà dell\'account. Controlla la tua password',
+	account_recovery_request_not_confirmed: "La richiesta del recupero account non è stata ancora confermata, per cortesia controlla più tardi, grazie per la tua pazienza.",
+	vote: 'Vote',
+	witness: 'Witness',
+	top_witnesses: 'Top Witnesses',
+	// user's navigational menu
+	feed: 'Feed',
+	wallet: 'Portafoglio',
+	blog: 'Blog',
+	change_password: 'Cambia Password',
+	// UserProfile
+	unknown_account: 'Account Sconosciuto',
+	user_hasnt_made_any_posts_yet: "Sembra che {name} non ha ancora scritto nessun post!",
+	user_hasnt_started_bloggin_yet: "Sembra che {name} non ha ancora scritto nessun articolo!",
+	user_hasnt_followed_anything_yet: "Sembra che {name} non ha ancora seguito nessuno!",
+	user_hasnt_had_any_replies_yet: "{name} non ha avuto ancora nessuna risposta",
+	users_blog: "{name}'s blog",
+	users_posts: "{name}'s posts",
+	users_wallet: "{name}'s portafoglio",
+	users_curation_rewards: "{name}'s curation rewards",
+	users_author_rewards: "{name}'s author rewards",
+	users_permissions: "{name}'s permessi",
+	recent_replies_to_users_posts: "Risposta recente al post di {name}",
+	print: 'Stampa',
+	curation_rewards: "Curation rewards",
+	author_rewards: 'Author rewards',
+	feeds: 'Feeds',
+	rewards: 'Ricompensa',
+	permissions: 'Permessi',
+	password: 'Password',
+	posts: 'Posts',
+	// english language does not need plurals, but your language might need it
+	// context usually is about profile stats: 'User has: 3 posts, 2 followers, 5 followed'
+	post_count: `{postCount, plural,
+		zero {0 posts}
+		one {# post}
+		few {# posts}
+		many {# posts}
+	}`,
+	follower_count: `{followerCount, plural,
+		zero {0 followers}
+		one {# followers}
+		few {# followers}
+		many {# followers}
+	}`,
+	followed_count: `{followingCount, plural,
+		zero {0 followed}
+		one {# followed}
+		few {# followed}
+		many {# followed}
+	}`,
+	vote_count: `{voteCount, plural,
+		zero {0 votes}
+		one {# votes}
+		few {# votes}
+		many {# votes}
+	}`,
+	response_count: `{responseCount, plural,
+		zero {0 responses}
+		one {# responses}
+		few {# responses}
+		many {# responses}
+	}`,
+	reply_count: `{replyCount, plural,
+		zero {0 replies}
+		one {# replies}
+		few {# replies}
+		many {# replies}
+	}`,
+	this_is_users_reputations_score_it_is_based_on_history_of_votes: "Questo è il punteggo di reputazione di ${name}.\n\nIl punteggio di reputazione si basa sulla storia dei voti ricevuti dall\'account, e viene utilizzato per nascondere i contenuti di bassa qualità.",
+	newer: 'Recenti',
+	older: 'Più Vecchi',
+	author_rewards_last_24_hours: 'Author rewards delle ultime 24 ore',
+	daily_average_author_rewards: 'Media giornaliera author rewards',
+	author_rewards_history: 'Storico Author Rewards',
+	balances: 'Bilancio',
+	estimate_account_value: 'Stima Valore Account',
+	next_power_down_is_scheduled_to_happen_at: 'Il prossimo power down è previsto per',
+	transfers_are_temporary_disabled: 'I trasferimento sono temporaneamente disabilitati',
+	history: 'Storia',
+	// CurationRewards.jsx
+	curation_rewards_last_24_hours: 'Curation rewards delle ultime 24 ore',
+	daily_average_curation_rewards: 'Media giornaliera curation rewards',
+	estimated_curation_rewards_last_week: "Curation rewards stimata di settimana scorsa",
+	curation_rewards_last_week: "Curation rewards settimana scorsa",
+	curation_rewards_history: 'Storico Curation Rewards',
+	// Post.jsx
+	now_showing_comments_with_low_ratings: 'mostra commenti di bassa qualità',
+	hide: 'Nascondi',
+	show: 'Mostra',
+	sort_order: 'Ordinamento',
+	comments_were_hidden_due_to_low_ratings: 'commenti nascosti per via della qualità scadente',
+	we_will_be_unable_to_create_account_with_this_browser: 'Potremmo avere problemi a creare il tuo account Steem con questo browser',
+	you_need_to_logout_before_creating_account: 'Dovresti fare il {logoutLink} prima di poter creare un nuvoo account',
+	steemit_can_only_register_one_account_per_verified_user: 'Steemit può registrare un solo account per utente verificato',
+	username: 'Username',
+	couldnt_create_account_server_returned_error: "Non è possibile creare l'\account. Il Server ha riportato il seguente errore",
+	form_requires_javascript_to_be_enabled: 'Questo form necessita l\'abilitazione del javascript',
+	our_records_indicate_you_already_have_account: 'Hai già un account Steemit',
+	to_prevent_abuse_steemit_can_only_register_one_account_per_user: 'Per prevenire abusi, Steemit può registrare un solo account per utente per ogni utente verificato (ogni registrazione costa all\'incirca 3 STEEM).',
+	you_can_either_login_or_send_us_email: 'è possibile fare il {loginLink} al tuo account esistente o se ne hai bisogno ad un nuovo account',
+	send_us_email: 'inviaci un\'email',
+	connection_lost_reconnecting: 'Connessione persa, riconnessione in corso',
+	// Voting.jsx
+	stop_seeing_content_from_this_user: 'Smetti di visualizzare il contentuto da questo utente',
+	flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following: 'Flaggare un post ne riduce il valore e lo rende meno visibile. Il flag dovrebbe essere utilizzato per le seguenti categorie',
+	fraud_or_plagiarism: 'post Fraudolento o Plagio',
+	hate_speech_or_internet_trolling: 'Pessimi discorsi o Internet Trolling',
+	intentional_miss_categorized_content_or_spam: 'Contenuto non categorizzato o Spam',
+	downvote: 'Downvote',
+	pending_payout: 'Payout in corso',
+	past_payouts: 'Vecchi Payouts',
+	and: 'e',
+	more: 'altro',
+	remove_vote: 'Rimuovi Voto',
+	upvote: 'Upvote',
+	we_will_reset_curation_rewards_for_this_post: 'cancellerà la tua curation rewards per questo post',
+	removing_your_vote: 'Rimuovi il tuo voto',
+	changing_to_an_upvote: 'Cambia in un Upvote',
+	changing_to_a_downvote: 'Cambia in un  Downvote',
+	confirm_flag: 'Conferma Flag',
+	//  TODO
+	date_created: 'Data di Creazione',
+	search: 'Cerca',
+	begin_recovery: "Inizia recupero",
+	post_as: 'Posta come', // 'Post as Misha'
+	action: 'Azione',
+	steem_app_center: 'Steem App Center',
+	witness_thread: 'witness thread',
+	you_have_votes_remaining: 'Hai ancora {votesCount} upvote rimasti',
+	you_can_vote_for_maximum_of_witnesses: 'puoi votare per un massimo di 30 witnesses',
+	information: 'Informationi',
+	if_you_want_to_vote_outside_of_top_enter_account_name: 'Se vuoi votare per un witness al di fuori della top 50, scrivine il nome account ed esegui un upvote',
+	view_the_direct_parent: 'Visualizza cartella principale',
+	you_are_viewing_single_comments_thread_from: 'You are viewing a single comment&#39;s thread from',
+	view_the_full_context: 'Visualizza tutto il contesto',
+	this_is_a_price_feed_conversion: 'This is a price feed conversion. The one week day delay is necessary to prevent abuse from gaming the price feed average',
+	your_existing_SD_are_liquid_and_transferable: 'I tuoi Steem Dollars esistenti sono liquidi and trasferibili.  Instead you may wish to trade Steem Dollars directly in this site under {link} or transfer to an external market.',
+	buy_or_sell: 'Compra or Vendi',
+	trending_30_day: 'trending (30 day)',
+	promoted: 'Pubblicizzati',
+	comments: 'Commenti',
+	topics: 'Topics',
+	this_password_is_bound_to_your_accounts_private_key: 'Questa password è legata alla chiave attiva del tuo account e non può essere utilizzata per effettuare il login a questa pagina. Dovresti utilizzarla per la pagine realvite al tuo portafoglio o alla pagina di mercato.',
+	potential_payout: 'Payout Potenziale',
+	boost_payments: 'Incentiva Compenso',
+	authors: 'Autori',
+	curators: 'Curatori',
+	date: 'Data',
+	no_responses_yet_click_to_respond: 'Ancora nessuna risposta. Clicca per rispondere.',
+	click_to_respond: 'Clicca per rispondere',
+	new_password: 'Nuova Password',
+	paste_a_youtube_or_vimeo_and_press_enter: 'Incolla un vido YouTube o un video Vimeo e premi Invio',
+	there_was_an_error_uploading_your_image: 'C\'è stato un errore durante l\'upload della tua immagine',
+	raw_html: 'Raw HTML',
+	please_remove_following_html_elements: 'Per cortesia, rimuovi i seguenti elementi HTML dal tuo post: ',
+	reputation: "Reputazione",
+	remember_voting_and_posting_key: "Remember voting & posting key",
+	// example usage: 'Autologin? yes/no'
+	auto_login_question_mark: 'Auto login?',
+	yes: 'Yes',
+	no: 'No',
+	hide_private_key: 'Nascondi private key',
+	login_to_show: 'Login per visualizzare',
+	steemit_cannot_recover_passwords_keep_this_page_in_a_secure_location: 'Steemit non può recuperare le password. Tieni al sicuro questa pagina.',
+	steemit_password_backup: 'Steemit Password Backup',
+	steemit_password_backup_required: 'Steemit Password Backup (richiesto)',
+	after_printing_write_down_your_user_name: 'Dopo la stampa, scrivi il tuo username',
+	public: 'Public',
+	private: 'Private',
+	public_something_key: 'Public {key} Key',
+	private_something_key: 'Private {key} Key',
+	posting_key_is_required_it_should_be_different: 'La posting key è utilizzata per creare e votare post. Dovrebbe essere differente dalla active key e dalla owner key.',
+	the_active_key_is_used_to_make_transfers_and_place_orders: 'L\'active key è utilizzata per trasferire e piazzare ordini nel mercato interno.',
+	the_owner_key_is_required_to_change_other_keys: 'L\'owner key è la chiave master dell\'account e viene utilizzata per modificare tutte le altre.',
+	the_private_key_or_password_should_be_kept_offline: 'La private key o la password proprietaria dovrebbero essere tenute offline il più possibile.', 
+	the_memo_key_is_used_to_create_and_read_memos: 'La memo key è utilizzata per creare e visualizzare memo.',
+	previous: 'Precedente',
+	next: 'Prossimo',
+	browse: 'Browse',
+	not_valid_email: 'email non valida',
+	thank_you_for_being_an_early_visitor_to_steemit: 'Grazie per essere uno dei primi visitatori di Steemit. Ci metteremo in contatto con voi il più presto possibile.',
+	estimated_author_rewards_last_week: "Stima dell\'author rewards di settimana scorsa",
+	author_rewards_last_week: "author rewards di settimana scorsa",
+	confirm: 'Conferma',
+	canceled: 'Annulla',
+	asset: "Asset",
+	this_memo_is_private: 'Questa Memo is Privata',
+	this_memo_is_public: 'Questa Memo is Pubblica',
+	power_up: 'Power Up',
+	transfer: 'Trasferisci',
+	basic: 'Base',
+	advanced: 'Avanzato',
+	convert_to_steem_power: 'Converti in Steem Power',
+	transfer_to_account: 'Trasferisci all\'Account',
+	buy_steem_or_steem_power: 'Compra Steem o Steem Power',
+	version: 'Versione',
+	about_steemit: 'About Steemit',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content: 'Steemit è una piattaforma social dove <strong>tutti</strong>&nbsp;ottengono <strong>un guadagno</strong> per la creazione e per la valutazione degli articoli',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid: 'Steemit è una piattaforma social dove tutti ottengono un guadagno per la creazione e per la valutazione degli articoli. Sfrutta un robusto sistema a punteggio, chiamato Steem, che supporta il reale valore digitale attraverso la liquidità presente nei mercati.',
+	learn_more_at_steem_io: 'Approfondisci su steem.io',
+	resources: 'Risorse',
+	steem_whitepaper: 'Steem Whitepaper',
+	join_our_slack: 'Vieni a far parte del nostro Slack',
+	steemit_support: 'Steemit Support',
+	please_email_questions_to: 'Per cortesia invia tramite email la tua domanda a',
+	sorry_your_reddit_account_doesnt_have_enough_karma: "Scusa, il tuo account Reddit non ha abbastanza Reddit Karma per essere qualificato e utilizzato per iscriversi. Per cortesia, inserisci la tua email per essere aggiunto alla lista di attesa",
+	register_with_facebook: 'Registra tramite Facebook',
+	or_click_the_button_below_to_register_with_facebook: 'O clicca qui sotto per registrare tramite Facebook',
+	trending_24_hour: 'trending (24 ore)',
+	home: 'home',
+	'24_hour': '24 ore',
+	'30_day': '30 giorni',
+	flag: "Flag",
+
+}
+
+export { it }
\ No newline at end of file
diff --git a/app/locales/jp.js b/app/locales/jp.js
new file mode 100644
index 000000000..78733a67c
--- /dev/null
+++ b/app/locales/jp.js
@@ -0,0 +1,460 @@
+const jp = 	{
+	// this variables mainly used in navigation section
+	about: "Steemとは",
+	explore: "探す",
+	whitepaper: "SteemのWhitepaper",
+	buy_steem: "Steemを買う",
+	sell_steem: "Steemを売る",
+	market: "マーケット",
+	stolen_account_recovery: "盗まれたアカウントの復旧",
+	change_account_password: "パスワードの変更",
+	steemit_chat: "Steemitでチャット",
+	witnesses: "Witnesses",
+	privacy_policy: "プライバシーポリシー",
+	terms_of_service: "利用規約",
+	sign_up: "サインアップ",
+	/* end navigation */
+	buy: '買う',
+	sell: '売る',
+	buy_steem_power: 'Steem Powerを買う',
+	transaction_history: '取引履歴',
+	submit_a_story: 'ストーリーを投稿する',
+	nothing_yet: 'まだなにもありません',
+	close: '閉じる',
+	post_promo_text: "著者やクリエイターは、あなたの投票によってSteemからリワードをえることができます。 \n もし興味深い記事や制作物を発見したら、{link}して、投票してみてください \n ${amount} Steem Powerのサインアップボーナスが得られます。 ",
+	read_only_mode: 'サーバーのメンテナンスのため、読みこみ専用モードに入ります。 ご迷惑をおかけします。',
+	membership_invitation_only: 'Steemit.comのメンバーは招待者のみとなっております。',
+	submit_email_to_get_on_waiting_list: 'メールアドレスを提出してキャンセル待ちリストに登録しよう',
+	login: 'ログイン',
+	logout: 'ログアウト',
+	show_less_low_value_posts: "みんなから投票されている投稿を見てみる",
+	show_more_low_value_posts: "みんなから投票されていない投稿を見てみる",
+	select_topic: 'トピックを選択する',
+	tags_and_topics: "タグとトピック",
+	filter: "フィルター",
+	show_more_topics: "さらにトピックを見る",
+	we_require_social_account: 'Steemitは、それぞれのアカウントに対して、${signup_bonus} Steem Powerを付与しています。; 乱用を防ぐため、ソーシャルメディアアカウントでのログインを新しいユーザーには求めています。',
+	personal_info_will_be_private: 'あなたの個人情報を保存する',
+	personal_info_will_be_private_link: 'プライベート',
+	continue_with_facebook: 'Facebookで続ける',
+	continue_with_reddit: 'Redditで続ける',
+	requires_positive_karma: 'Redditの積極的なcommentやkarmaが必要',
+	dont_have_facebook: 'FacebookやRedditアカウントを持っていない?',
+	subscribe_to_get_sms_confirm: 'SMS確認が利用可能になったら、通知する',
+	by_verifying_you_agree: 'あなたが許可するアカウントで認証',
+	by_verifying_you_agree_terms_and_conditions: '規約と条件を承認',
+	terms_and_conditions: '規約と条件',
+	// this is from top-right dropdown menu
+	hot: '今話題',
+	trending: 'トレンド',
+	payout_time: 'ペイアウトタイミング',
+	active: 'アクティブ',
+	responses: '返信',
+	popular: '有名',
+	/* end dropdown menu */
+	loading: 'ローディング',
+	cryptography_test_failed: '暗号テストが失敗',
+	unable_to_log_you_in: 'このブラウザではログインができません',
+	latest_browsers_do_work: '最新の{chromeLink} や {mozillaLink} バージョンは、steemit.com上でちゃんと動きます',
+	account_creation_succes: 'アカウント作成に成功しました!',
+	account_recovery_succes: 'アカウントの復元に成功しました!',
+	password_update_succes: '{accountName} さんのアカウントは更新されました',
+	password_is_bound_to_account: "This password is bound to your account\'s owner key and can not be used to login to this site. \nHowever, you can use it to {changePasswordLink} to obtain a more secure set of keys.",
+	update_your_password: 'パスワードを更新',
+	enter_username: 'ユーザーネームを記入',
+	password_or_wif: 'Password または WIF',
+	requires_auth_key: 'この処理はあなたの {authType} キーを要求します (もしくはあなたのパスワード)',
+	keep_me_logged_in: 'ログインし続ける',
+	// this are used mainly in "submit a story" form
+	title: "タイトル",
+	write_your_story: 'あなたのストーリーを投稿する',
+	editor: 'エディター',
+	reply: 'リプライ',
+	edit: '編集する',
+	delete: '削除する',
+	cancel: 'キャンセル',
+	clear: 'クリア',
+	save: 'セーブ',
+	upvote_post: '投稿をupvoteする',
+	update_post: '投稿をupvoteする',
+	markdown_is_supported: 'Markdownでの記入ができます',
+	preview: 'プレビュー',
+	// TODO do not forget to implment REQUIRED error in reply Editor
+	markdown_not_supported: 'Markdownはサポートされていません',
+	// markdown: 'Markdown', // this will probably be removed
+	welcome_to_the_blockchain: '新しいBlockchainの世界へようこそ!',
+	your_voice_is_worth_something: 'あなたの言葉はどこかの世界のだれかに必ず役に立つ',
+	learn_more: 'もっと学ぶ',
+	get_sp_when_sign_up: '${signupBonus} 分のSteem Powerサインアップボーナスをゲットしよう',
+	all_accounts_refunded: '復元されたアカウント全てに対して払い戻されます',
+	steemit_is_now_open_source: 'Steemit.comはオープンソースプロジェクトです',
+	// this is mainly from ReplyEditor
+	tag_your_story: '最大5つまでタグ付けができます。最初のタグはメインカテゴリーになります',
+	select_a_tag: 'タグを選択する',
+	required: 'å¿…é ˆ',
+	shorten_title: 'タイトルを短く',
+	exceeds_maximum_length: '最大 ({maxKb}KB)を超えている',
+	including_the_category: "('{rootCategory}'を含む)",
+	use_limited_amount_of_tags: 'You have {tagsLength} tags total{includingCategory}. 最大5つのタグを選びましょう',
+	// this is mainly used in CategorySelector
+	use_limitied_amount_of_categories: ' {amount}だけカテゴリを選びましょう',
+	use_one_dash: 'ダッシュ(-)は一回だけ',
+	use_spaces_to_separate_tags: 'スペースでタグ分け',
+	use_only_allowed_characters: '小文字、英数字、ダッシュのみ',
+	must_start_with_a_letter: '文字から始める',
+	must_end_with_a_letter_or_number: '文字が数字で終える',
+	// tags page
+	tag: 'ã‚¿ã‚°',
+	replies: 'リプライ',
+	payouts: 'ペイアウト',
+	need_password_or_key: 'プライベートパスワードまたはキーが必要',
+	// BlocktradesDeposit
+	change_deposit_address: '預金アドレスを変える',
+	get_deposit_address: '預金アドレスをゲットする',
+	// for example 'powered by Blocktrades'
+	powered_by: 'Powered by',
+	send_amount_of_coins_to: '{coinName} へ {value} を送る',
+	amount_is_in_form: 'Amount is in the form 99999.999',
+	insufficent_funds: '残高不足',
+	update_estimate: '見積もりを更新する',
+	get_estimate: '見積もりをする',
+	memo: 'メモ',
+	must_include_memo: 'メモを含む必要がある',
+	estimate_using: '見積もり',
+	amount_to_send: '送る総額 {estimateInputCoin}',
+	deposit_using: '預金', // example: 'Steem Powerの預金' // TODO: is this example right?
+	suggested_limit: 'Suggested limit {depositLimit}',
+	internal_server_error: 'サーバーエラー',
+	enter_amount: '総額を入れる',
+	processing: 'Processing',
+	broadcasted: 'Broadcasted',
+	confirmed: '確認',
+	remove: '削除',
+	collapse_or_expand: "Collapse/Expand",
+	reveal_comment: 'コメントを公開する',
+	are_you_sure: '大丈夫ですか?',
+	// PostFull.jsx
+	by: 'by',
+	in: 'in',
+	share: 'ã‚·ã‚§ã‚¢',
+	in_reply_to: 'in reply to',
+	replied_to: 'replied to',
+	transfer_amount_to_steem_power: "{amount} をSTEEM POWERへ移行する",
+	transfer_amount_steem_power_to: "{amount} のSTEEM POWERを移行する",
+	recieve_amount_steem_power_from: "{amount} のSTEEM POWERを受け取る",
+	transfer_amount_steem_power_from_to: "{from}から{amount} のSTEEM POWER を移行する",
+	transfer_amount_to: " {amount} へ移行する",
+	recieve_amount_from: " {amount} を受け取る",
+	transfer_amount_from: "{amount} を移行する",
+	stop_power_down: "Stop power down",
+	start_power_down_of: "Start power down of",
+	curation_reward_of_steem_power_for: '{reward} STEEM POWERのキュレーションリワード',
+	author_reward_of_steem_power_for: ' {payout} オーサーリワードと {reward} STEEM POWER',
+	recieve_interest_of: ' {interest}の利子を受け取る',
+	// TODO find where this is used and write an example
+	to: 'to',
+	account_not_found: 'アカウントが見つかりません',
+	this_is_wrong_password: 'これは間違ったパスワードです',
+	do_you_need_to: 'あなたは必要ですか',
+	recover_your_account: 'アカウントを復元する', // this probably will end with question mark
+	reset_usernames_password: " {username}さんのパスワードをリセットします",
+	this_will_update_usernames_authtype_key: ' {username} {authType} キーを更新します',
+	the_rules_of_steemit: "ルール①: パスワードを無くさないこと<br /> ルール②: 絶対にパスワードを無くさないこと.<br /> ルール③: パスワードは復元できないということを記憶に留めておいておくこと<br />ルール④: もしも覚えておけるパスワードならば、それは安全ではないということを理解しておくこと<br /> ルール⑤: ランダムに生成されるパスワードを使うこと.<br /> ルール⑥: パスワードは誰にも言わないこと.<br /> ルール⑦: パスワードのバックアップを取っておくこと",
+	account_name: 'アカウント名',
+	recover_password: 'パスワードの復元',
+	current_password: '現在のパスワード',
+	recent_password: '最新のパスワード',
+	generated_password: '生成するパスワード',
+	recover_account: 'アカウントの復元',
+	new: 'new', // ex. 'Generated Password (new)', but not exclusively
+	backup_password_by_storing_it: 'パスワードマネジャーやテキストファイルでパスワードのバックアップを取ろう',
+	click_to_generate_password: 'パスワードを生成する',
+	re_enter_generate_password: '生成されたパスワードで入室する',
+	understand_that_steemit_cannot_recover_password: '私は私が無くしたパスワードをSteemitでは復元できないということに同意します',
+	i_saved_password: '安全にパスワードを保存しました',
+	update_password: 'パスワードの更新',
+	password_must_be_characters_or_more: 'パスワードは{amount} 文字以上である必要があります',
+	passwords_do_not_match: 'パスワードがマッチしません',
+	you_need_private_password_or_key_not_a_public_key: 'あなたはプライベートパスワード/キーが必要です。',
+	account_updated: '更新されたアカウント',
+	warning: '警告',
+	your_password_permissions_were_reduced: 'パスワードアクセス権限が減りました',
+	if_you_did_not_make_this_change: 'この変更をしないならば',
+	owhership_changed_on: '変更されたオーナー',
+	deadline_for_recovery_is: '復元期限',
+	i_understand_dont_show_again: "わかりました。これ以上は表示しません",
+	ok: 'OK',
+	convert_to_steem: 'Steemへ変換',
+	steem_dollars_will_be_unavailable: 'このアクションは、今から1週間で実行されます。これらのSteem Dollarsは、すぐに利用が不可能になります。',
+	amount: '総額',
+	steem_dollars: 'STEEM DOLLARS',
+	convert: '変換',
+	invalid_amount: '無効な量',
+	insufficent_balance: '残高不足',
+	in_week_convert_steem_dollars_to_steem: '1週間後に、 {amount} STEEM DOLLARSが、 STEEMへ変換されます。',
+	order_placed: '発注額', // ex.: "Order placed: Sell {someamount_to_sell} for atleast {min_to_receive}"
+	follow: 'フォロー',
+	unfollow: '解除',
+	mute: 'ミュート',
+	unmute: 'アンミュート',
+	confirm_password: 'パスワード確認',
+	login_to_see_memo: 'メモをみる為にログイン',
+	post: '投稿', // places used: tooltip in MediumEditor
+	unknown: 'Unknown', // exp.: 'unknown error'
+	account_name_is_not_available: 'アカウント名は利用できません',
+	type: 'Type',
+	price: 'Price',
+	// Market.jsx
+	last_price: '終値',
+	'24h_volume': '24h volume',
+	bid: 'BID',
+	ask: 'ASK',
+	spread: 'スプレッド',
+	total: 'TOTAL',
+	available: 'Available',
+	lowest_ask: 'Lowest ASK',
+	highest_bid: 'Highest BID',
+	buy_orders: '買い注文',
+	sell_orders: '売り注文',
+	trade_history: 'トレード履歴',
+	open_orders: '見計らい注文',
+	sell_amount_for_atleast: 'Sell {amount_to_sell} for at least {min_to_receive} ({effectivePrice})',
+	buy_atleast_amount_for: 'Buy at least {min_to_receive} for {amount_to_sell} ({effectivePrice})',
+	higher: 'Higher', // context is about prices
+	lower: 'Lower', // context is about prices
+	total_sd_dollars: "Total SD ($)",
+	sd_dollars: "SD ($)",
+	// RecoverAccountStep1.jsx // recover account stuff
+	not_valid: '利用できません',
+	account_name_is_not_found: 'このアカウント名は見つかりません。',
+	unable_to_recover_account_not_change_ownership_recently: 'このアカウントを復元することができません。このアカウントの持ち主は最近変更されていません。',
+	password_not_used_in_last_days: 'このパスワードは、少なくともここ最近30日の間はこのアカウントに使われていません。',
+	request_already_submitted_contact_support: 'あなたの要望はすでに提出されており、ただいまSteemitメンバーで対応中です。状況を確認したい場合は、support@steemit.com にコンタクトをしてください。',
+	recover_account_intro: "From time to time, a Steemian’s owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on steemit.com if the account owner had perviously listed ‘Steemit’ as their account trustee and complied with Steemit’s Terms of Service.",
+	login_with_facebook_or_reddit_media_to_verify_identity: '認証のため、FaccebookまたはRedditアカウントでログインしてください。',
+	login_with_social_media_to_verify_identity: '認証のため、 {show_social_login} でログインしてください。',
+	enter_email_toverify_identity: '認証する必要があります。認証を開始する為に、下記にメールアドレスを記入してください。',
+	email: 'Email',
+	continue_with_email: "メールアドレスで続行",
+	thanks_for_submitting_request_for_account_recovery: '<p>ご要望ありがとうございます。Steemのブロックチェーンをベースとした多要素認証 (Multi Factor Authentification)を用いて、アカウントの復元を行なっています。</p> <p>できるだけ早く、お問い合わせについてご対応させていただくよう、努めさせていただきます。しかしながら、ご対応が遅れてしまうことがありますので、ご容赦ください。</p> <p>あなたの個人認証をする準備を行なっています。</p> <p>感謝を込めて,</p> <p>Ned Scott</p> <p>CEO Steemit</p>',
+	recovering_account: 'アカウント復旧',
+	checking_account_owner: 'アカウントオーナーの確認',
+	sending_recovery_request: '復旧のリクエスト送信',
+	cant_confirm_account_ownership: 'アカウントオーナーを確認できません。パスワードを確かめてください。',
+	account_recovery_request_not_confirmed: "アカウント復旧のリクエストはまだ確認できていません。再度やり直してください。",
+	vote: 'Vote',
+	witness: 'Witness',
+	top_witnesses: 'Top Witnesses',
+	// user's navigational menu
+	feed: 'フィード',
+	wallet: 'ウォレット',
+	blog: 'ブログ',
+	change_password: 'パスワードの変更',
+	// UserProfile
+	unknown_account: '正体不明のアカウント',
+	user_hasnt_made_any_posts_yet: " {name} さんはまだ投稿をしたことがないようです!",
+	user_hasnt_started_bloggin_yet: "{name} さんはまだブログを始めていないようです!",
+	user_hasnt_followed_anything_yet: " {name} さんはまだ誰のフォローもしていないようです!",
+	user_hasnt_had_any_replies_yet: "{name} さんはまだ返信していないようです!",
+	users_blog: "{name}さんのブログ",
+	users_posts: "{name}さんの投稿",
+	users_wallet: "{name}さんのウォレット",
+	users_curation_rewards: "{name}さんのキュレーションリワード",
+	users_author_rewards: "{name}さんのオーサーリワード",
+	users_permissions: "{name}さんの承認",
+	recent_replies_to_users_posts: "{name}さんの投稿への最近のリプライ",
+	print: 'プリント',
+	curation_rewards: "キュレーションリワード",
+	author_rewards: 'オーサーリワード',
+	feeds: 'フィード',
+	rewards: 'リワード',
+	permissions: '承認',
+	password: 'パスワード',
+	posts: '投稿',
+	// english language does not need plurals, but your language might need it
+	// context usually is about profile stats: 'User has: 3 posts, 2 followers, 5 followed'
+	post_count: `{postCount, plural,
+		zero {0 posts}
+		one {# post}
+		few {# posts}
+		many {# posts}
+	}`,
+	follower_count: `{followerCount, plural,
+		zero {0 followers}
+		one {# followers}
+		few {# followers}
+		many {# followers}
+	}`,
+	followed_count: `{followingCount, plural,
+		zero {0 followed}
+		one {# followed}
+		few {# followed}
+		many {# followed}
+	}`,
+	vote_count: `{voteCount, plural,
+		zero {0 votes}
+		one {# votes}
+		few {# votes}
+		many {# votes}
+	}`,
+	response_count: `{responseCount, plural,
+		zero {0 responses}
+		one {# responses}
+		few {# responses}
+		many {# responses}
+	}`,
+	reply_count: `{replyCount, plural,
+		zero {0 replies}
+		one {# replies}
+		few {# replies}
+		many {# replies}
+	}`,
+	this_is_users_reputations_score_it_is_based_on_history_of_votes: "これは ${name}さんのレピュテーションスコアです。\n\nレピュテーションスコアは、このアカウントが獲得した投票の履歴がベースとなっています。また、低い価値のコンテンツを隠すために使われます。",
+	newer: 'Newer',
+	older: 'Older',
+	author_rewards_last_24_hours: '24時間以内のオーサーリワード',
+	daily_average_author_rewards: '1日平均のオーサーリワード',
+	author_rewards_history: 'オーサーリワード履歴',
+	balances: '残高',
+	estimate_account_value: 'アカウントバリュー',
+	next_power_down_is_scheduled_to_happen_at: '次に予定されているパワーダウン',
+	transfers_are_temporary_disabled: '振替は一時的に利用できません。',
+	history: '履歴',
+	// CurationRewards.jsx
+	curation_rewards_last_24_hours: '24時間以内のキュレーションリワード',
+	daily_average_curation_rewards: '1にち平均のキュレーションリワード',
+	estimated_curation_rewards_last_week: "先週の予定されているキュレーションリワード",
+	curation_rewards_last_week: "先週のキュレーションリワード",
+	curation_rewards_history: 'キュレーションリワード履歴',
+	// Post.jsx
+	now_showing_comments_with_low_ratings: '評価が低いコメントを表示しています',
+	hide: 'hide',
+	show: 'Show',
+	sort_order: 'Sort Order',
+	comments_were_hidden_due_to_low_ratings: '評価が低いコメントは非表示になります。',
+	we_will_be_unable_to_create_account_with_this_browser: 'このブラウザでは、Steemアカウントの作成ができません。',
+	you_need_to_logout_before_creating_account: '異なるアカウントを作成する前に、{logoutLink} を行う必要があります。',
+	steemit_can_only_register_one_account_per_verified_user: 'Steemでは、認証済みアカウントに対して、1アカウントのみ登録が可能です。',
+	username: 'ユーザー名',
+	couldnt_create_account_server_returned_error: "アカウント作成ができませんでした。サーバーから次のエラーが返ってきています。",
+	form_requires_javascript_to_be_enabled: 'このフォームは、このブラウザでは表示ができないJavaScriptを必要としています。',
+	our_records_indicate_you_already_have_account: '記録によると、あなたはすでにアカウントを持っています。',
+	to_prevent_abuse_steemit_can_only_register_one_account_per_user: '迷惑行為を防ぐため、Steemitは認証済ユーザーに対して、1アカウントを登録できるようにしています。',
+	you_can_either_login_or_send_us_email: ' すでにあるアカウントに{loginLink} するか、新しいアカウントを作成する',
+	send_us_email: 'Emailを送る',
+	connection_lost_reconnecting: '接続が切れました, 再度接続してください',
+	// Voting.jsx
+	stop_seeing_content_from_this_user: 'このユーザーで、コンテンツを見るのをやめる',
+	flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following: '投稿へのフラグは、リワードを取り除き、表示を減らすことを意味します。 フラグは次のような場合に使われます。',
+	fraud_or_plagiarism: '詐欺行為や剽窃行為',
+	hate_speech_or_internet_trolling: 'ヘイトスピーチや挑発行為',
+	intentional_miss_categorized_content_or_spam: '故意の誹謗中傷やスパム',
+	downvote: 'Downvote',
+	pending_payout: 'ペイアウト止め',
+	past_payouts: '過去のペイアウト',
+	and: 'and',
+	more: 'more',
+	remove_vote: 'voteをやめる',
+	upvote: 'upvote',
+	we_will_reset_curation_rewards_for_this_post: 'この投稿のキュレーションリワードをリセットする',
+	removing_your_vote: 'あなたの投票をやめる',
+	changing_to_an_upvote: 'Up-Voteに変更する',
+	changing_to_a_downvote: 'Down-Voteに変更する',
+	confirm_flag: 'Flagを確認する',
+	//  TODO
+	date_created: 'é–‹å§‹æ—¥',
+	search: '検索',
+	begin_recovery: "Begin Recovery",
+	post_as: '投稿する', // 'Post as Misha'
+	action: 'アクション',
+	steem_app_center: 'Steem App Center',
+	witness_thread: 'witnessのスレッド',
+	you_have_votes_remaining: 'あなたは {votesCount} votesが残っています',
+	you_can_vote_for_maximum_of_witnesses: '最大で30 Witnesses に投票することができます。',
+	information: 'Information',
+	if_you_want_to_vote_outside_of_top_enter_account_name: 'もし、トップ50位以外のWitnessに投票したい場合、投票をする前に、アカウント名を入れてください。',
+	view_the_direct_parent: 'View the direct parent',
+	you_are_viewing_single_comments_thread_from: 'You are viewing a single comment&#39;s thread from',
+	view_the_full_context: 'View the full context',
+	this_is_a_price_feed_conversion: 'This is a price feed conversion. The one week day delay is necessary to prevent abuse from gaming the price feed average',
+	your_existing_SD_are_liquid_and_transferable: 'Your existing Steem Dollars are liquid and transferable.  Instead you may wish to trade Steem Dollars directly in this site under {link} or transfer to an external market.',
+	buy_or_sell: '買い/売り',
+	trending_30_day: '30日間のトレンド',
+	promoted: 'プロモ',
+	comments: 'コメント',
+	topics: 'トピックス',
+	this_password_is_bound_to_your_accounts_private_key: 'This password is bound to your account\'s active key and can not be used to login to this page. You may use this active key on other more secure pages like the Wallet or Market pages.',
+	potential_payout: 'ポテンシャルペイアウト',
+	boost_payments: 'ブーストペイメント',
+	authors: 'オーサー',
+	curators: 'キュレーター',
+	date: 'æ—¥',
+	no_responses_yet_click_to_respond: 'レスポンスがありません. クリックしてください.',
+	click_to_respond: 'クリックしてください',
+	new_password: '新しいパスワード',
+	paste_a_youtube_or_vimeo_and_press_enter: 'YoutubeかVimeoを貼り付けて、Enterを押してください。',
+	there_was_an_error_uploading_your_image: 'アップロード中の写真にエラーがありました。',
+	raw_html: 'Raw HTML',
+	please_remove_following_html_elements: 'あなたの投稿から次のHTML elementsを取り除いてください。: ',
+	reputation: "レピュテーション",
+	remember_voting_and_posting_key: "Remember voting & posting key",
+	// example usage: 'Autologin? yes/no'
+	auto_login_question_mark: '自動ログイン?',
+	yes: 'Yes',
+	no: 'No',
+	hide_private_key: 'プライベードキーをかくす',
+	login_to_show: '表示するためのログインする',
+	steemit_cannot_recover_passwords_keep_this_page_in_a_secure_location: 'Steemitは、パスワードを復旧できません。 fireproof safe や safety deposit boxのような安全な場所にこのページを保管してください',
+	steemit_password_backup: 'Steemit パスワードバックアップ',
+	steemit_password_backup_required: 'Steemit パスワードバックアップ (required)',
+	after_printing_write_down_your_user_name: 'After printing, write down your user name',
+	public: 'Public',
+	private: 'Private',
+	public_something_key: 'Public {key} Key',
+	private_something_key: 'Private {key} Key',
+	posting_key_is_required_it_should_be_different: 'The posting key is used for posting and voting. It should be different from the active and owner keys.',
+	the_active_key_is_used_to_make_transfers_and_place_orders: 'The active key is used to make transfers and place orders in the internal market.',
+	the_owner_key_is_required_to_change_other_keys: 'The owner key is the master key for the account and is required to change the other keys.',
+	the_private_key_or_password_should_be_kept_offline: 'The private key or password for the owner key should be kept offline as much as possible.',
+	the_memo_key_is_used_to_create_and_read_memos: 'The memo key is used to create and read memos.',
+	previous: '前へ',
+	next: '次',
+	browse: 'ブラウザ',
+	not_valid_email: '利用不可能なメールアドレス',
+	thank_you_for_being_an_early_visitor_to_steemit: 'Thank you for being an early visitor to Steemit. We will get back to you at the earliest possible opportunity.',
+	estimated_author_rewards_last_week: "予定されている、先週のオーサーリワード",
+	author_rewards_last_week: "先週のオーサーリワード",
+	confirm: 'Confirm',
+	canceled: 'Canceled',
+	asset: "Asset",
+	this_memo_is_private: 'このメモはPrivateです。',
+	this_memo_is_public: 'このメモはPublicです。',
+	power_up: 'パワーアップ',
+	transfer: '振替',
+	basic: 'Basic',
+	advanced: 'Advanced',
+	convert_to_steem_power: 'Steem Powerへ変換',
+	transfer_to_account: 'アカウントへ振替',
+	buy_steem_or_steem_power: 'Steem または Steem Powerを購入する',
+	version: 'バージョン',
+	about_steemit: 'Steemitについて',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content: 'Steemitは、クリエイターやキュレーターが価値を生み出すことで、リワードが得られるソーシャルメディアプラットフォームです。',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid: 'Steemitは、クリエイターやキュレーターが価値を生み出すことで、リワードが得られるソーシャルメディアプラットフォームです。Steemと呼ばれる強固なデジタルポイントシステムを活用し、市場における価格発見と流動性を通して、デジタルリワードによって本来の価値を支えます。',
+	learn_more_at_steem_io: 'Learn more at steem.io',
+	resources: 'Resources',
+	steem_whitepaper: 'Steem Whitepaper',
+	join_our_slack: 'Join our Slack',
+	steemit_support: 'Steemit Support',
+	please_email_questions_to: '質問を送ってください。',
+	sorry_your_reddit_account_doesnt_have_enough_karma: "申し訳ありません。あなたのRedditアカウントは、サインアップをする為に、十分なReddit Karmaがありません。登録待ちリストにメールアドレスを追加してください。",
+	register_with_facebook: 'Facebookで登録',
+	or_click_the_button_below_to_register_with_facebook: 'または、Facebookで登録する為に次のボタンをクリックする',
+	trending_24_hour: '24時間以内のトレンド',
+	home: 'home',
+	'24_hour': '24時間',
+	'30_day': '30æ—¥',
+	flag: "フラグ",
+
+}
+
+export { jp }
diff --git a/app/locales/ru.js b/app/locales/ru.js
new file mode 100644
index 000000000..9b39ba7df
--- /dev/null
+++ b/app/locales/ru.js
@@ -0,0 +1,459 @@
+const ru = {
+	// this variables mainly used in navigation section
+	about: "О проекте",
+	explore: "Исследовать",
+	whitepaper: "Бумага о Steem",
+	buy_steem: "Купить Steem",
+	sell_steem: "Продать Steem",
+	market: "Маркет",
+	stolen_account_recovery: "Возврат украденного аккаунта",
+	change_account_password: "Изменить пароль аккаунта",
+	steemit_chat: "Steemit чат",
+	witnesses: "Свидетели",
+	privacy_policy: "Политика Конфиденциальности",
+	terms_of_service: "Условия пользования",
+	sign_up: "Регистрация",
+	/* end navigation */
+	buy: 'Купить',
+	sell: 'Продать',
+	buy_steem_power: 'Купить Steem Power',
+	transaction_history: 'История транзакций',
+	submit_a_story: 'Добавить историю',
+	nothing_yet: 'Пока ничего нет',
+	close: 'Закрыть',
+	post_promo_text: "Authors get paid when people like you upvote their post \n If you enjoyed what you read here, earn ${amount} of Steem Power \n when you {link} and vote for it.",
+	read_only_mode: 'Due to server maintenance we are running in read only mode. We are sorry for the inconvenience.',
+	membership_invitation_only: 'Membership to Steemit.com is now under invitation only because of unexpectedly high sign up rate.',
+	submit_email_to_get_on_waiting_list: 'Submit your email to get on the waiting list',
+	login: 'Войти',
+	logout: 'Выйти',
+	show_less_low_value_posts: "Show less low value posts",
+	show_more_low_value_posts: "Show more low value posts",
+	select_topic: 'Выбрать топик',
+	tags_and_topics: "Тэги и топики",
+	filter: "Фильтр",
+	show_more_topics: "Показать больше топиков",
+	we_require_social_account: 'Steemit funds each account with over ${signup_bonus} worth of Steem Power; to prevent abuse, we require new users to login via social media.',
+	personal_info_will_be_private: 'Твоя персональная информация будет оставаться',
+	personal_info_will_be_private_link: 'приватной',
+	continue_with_facebook: 'Продолжить с Facebook',
+	continue_with_reddit: 'Продолжить с Reddit',
+	requires_positive_karma: 'необходима позитивная карма Reddit комментирования',
+	dont_have_facebook: 'Нет Facebook или Reddit аккаунта?',
+	subscribe_to_get_sms_confirm: 'Subscribe to get a notification when SMS confirmation is available',
+	by_verifying_you_agree: 'Подтверждая ваш аккаунт вы соглашаетесь с Steemit',
+	by_verifying_you_agree_terms_and_conditions: 'условиями и соглашениями',
+	terms_and_conditions: 'Условия и Соглашения',
+	// this is from top-right dropdown menu
+	hot: 'горячее',
+	trending: 'набирающее популярность',
+	payout_time: 'время выплаты',
+	active: 'активное',
+	responses: 'ответы',
+	popular: 'популярное',
+	/* end dropdown menu */
+	loading: 'Загрузка',
+	cryptography_test_failed: 'Криптографический тест провален',
+	unable_to_log_you_in: 'У нас не получится залогинить вас в этом браузере',
+	latest_browsers_do_work: 'Последние версии {chromeLink} и {mozillaLink} хорошо тестированы и работают с steemit.com.',
+	account_creation_succes: 'Твой аккаунт успешно создан!',
+	account_recovery_succes: 'Твой аккаунт успено восстановлен!',
+	password_update_succes: 'Пароль для {accountName} был успешно обновлен',
+	password_is_bound_to_account: "This password is bound to your account\'s owner key and can not be used to login to this site. \nHowever, you can use it to {changePasswordLink} to obtain a more secure set of keys.",
+	update_your_password: 'обновить твой пароль',
+	enter_username: 'Введи свой username',
+	password_or_wif: 'Пароль или WIF',
+	requires_auth_key: 'This operation requires your {authType} key (or use your master password)',
+	keep_me_logged_in: 'Оставлять меня залогиненным',
+	// this are used mainly in "submit a story" form
+	title: "Заголовок",
+	write_your_story: 'Написать свою историю',
+	editor: 'Редактор',
+	reply: 'Ответить',
+	edit: 'Редактировать',
+	delete: 'Удалить',
+	cancel: 'Отмена',
+	clear: 'Очистить',
+	save: 'Сохранить',
+	upvote_post: 'Проголосовать за пост',
+	update_post: 'Обновить пост',
+	markdown_is_supported: 'Поддерживается стилизация с Markdown',
+	preview: 'Предварительный просмотр',
+	// TODO do not forget to implment REQUIRED error in reply Editor
+	markdown_not_supported: 'Markdown здесь не поддерживается',
+	// markdown: 'Markdown', // эта строка возможно будет удалена
+	welcome_to_the_blockchain: 'Добро пожаловать в Blockchain!',
+	your_voice_is_worth_something: 'Your voice is worth something',
+	learn_more: 'Узнать больше',
+	get_sp_when_sign_up: 'Get ${signupBonus} of Steem Power when you sign up today.',
+	all_accounts_refunded: 'All Recovered Accounts have been fully Refunded',
+	steemit_is_now_open_source: 'Steemit.com is now Open Source',
+	// this is mainly from ReplyEditor
+	tag_your_story: 'Tag (up to 5 tags), the first tag is your main category.',
+	select_a_tag: 'Выбрать тэг',
+	required: 'Обязательно',
+	shorten_title: 'Сократите заголовок',
+	exceeds_maximum_length: 'Пребывает максимальную длину ({maxKb}KB)',
+	including_the_category: "(including the category '{rootCategory}')",
+	use_limited_amount_of_tags: 'You have {tagsLength} tags total{includingCategory}.  Please use only 5 in your post and category line.',
+	// this is mainly used in CategorySelector
+	use_limitied_amount_of_categories: 'Пожалуйста используйте не более {amount} категорий',
+	use_one_dash: 'Используйте только одно тире',
+	use_spaces_to_separate_tags: 'Используйте пробел чтобы разделить тэги',
+	use_only_allowed_characters: 'Используйте только строчные буквы, цифры и одно тире',
+	must_start_with_a_letter: 'Должно начинаться с буквы',
+	must_end_with_a_letter_or_number: 'Должно заканчиваться с буквы или номера',
+	// tags page
+	tag: 'Тэг',
+	replies: 'Ответы',
+	payouts: 'Выплаты',
+	need_password_or_key: 'Вам нужен приватный пароль или ключ (не публичный ключ)',
+	// BlocktradesDeposit
+	change_deposit_address: 'Изменить адрес депозита',
+	get_deposit_address: 'Получить адрес депозита',
+	// for example 'powered by Blocktrades'
+	powered_by: 'Powered by',
+	send_amount_of_coins_to: 'Отправить {value} {coinName} к',
+	amount_is_in_form: 'Amount is in the form 99999.999',
+	insufficent_funds: 'Insufficent funds',
+	update_estimate: 'Update Estimate',
+	get_estimate: 'Get Estimate',
+	memo: 'Memo',
+	must_include_memo: 'You must include the memo above',
+	estimate_using: 'Подсчитать используя',
+	amount_to_send: 'Amount to send {estimateInputCoin}',
+	deposit_using: 'Deposit using', // example: 'deposit using Steem Power' // TODO: is this example right?
+	suggested_limit: 'Suggested limit {depositLimit}',
+	internal_server_error: 'Внутренняя ошибка сервера',
+	enter_amount: 'Ввести количество',
+	processing: 'Обрабатывается',
+	broadcasted: 'Транслируется',
+	confirmed: 'Подтверждено',
+	remove: 'Удалить',
+	collapse_or_expand: "Свернуть/Развернуть",
+	reveal_comment: 'Показать комментарий',
+	are_you_sure: 'Вы уверены?',
+	// PostFull.jsx
+	by: ' ', // здеь специально ничего нет, пример: "posted by 'Vitya'" > "добавил 'Vitya'"
+	in: 'в',
+	share: 'Поделиться',
+	in_reply_to: 'в ответ на',
+	replied_to: 'ответил', // тоже что и 'by'
+	transfer_amount_to_steem_power: "Передать {amount} в STEEM POWER",
+	transfer_amount_steem_power_to: "Передать {amount} STEEM POWER в",
+	recieve_amount_steem_power_from: "Получить {amount} STEEM POWER от",
+	transfer_amount_steem_power_from_to: "Передать {amount} STEEM POWER от {from} к",
+	transfer_amount_to: "Передать {amount} к",
+	recieve_amount_from: "Получить {amount} от",
+	transfer_amount_from: "Передать {amount} от",
+	stop_power_down: "Stop power down",
+	start_power_down_of: "Start power down of",
+	curation_reward_of_steem_power_for: 'Curation reward of {reward} STEEM POWER for',
+	author_reward_of_steem_power_for: 'Author reward of {payout} and {reward} STEEM POWER for',
+	recieve_interest_of: 'Receive interest of {interest}',
+	// TODO find where this is used and write an example
+	to: 'to',
+	account_not_found: 'Аккаунт не найден',
+	this_is_wrong_password: 'Это неправильный пароль',
+	do_you_need_to: 'Вам нужно',
+	recover_your_account: 'восстановить ваш аккаунт', // this probably will end with question mark
+	reset_usernames_password: "Сбросить пароль пользователя {username}",
+	this_will_update_usernames_authtype_key: 'Это обновит {username} {authType} ключ',
+	the_rules_of_steemit: "The first rule of Steemit is: Do not lose your password.<br /> The second rule of Steemit is: Do <strong>not</strong> lose your password.<br /> The third rule of Steemit is: We cannot recover your password.<br /> The fourth rule: If you can remember the password, it&apos;s not secure.<br /> The fifth rule: Use only randomly-generated passwords.<br /> The sixth rule: Do not tell anyone your password.<br /> The seventh rule: Always back up your password.",
+	account_name: 'Имя аккаунта',
+	recover_password: 'Восстановить аккаунт',
+	current_password: 'Текущий пароль',
+	recent_password: 'Недавний пароль',
+	generated_password: 'Сгенерированный пароль',
+	recover_account: 'Восстановить аккаунт',
+	new: 'новый', // ex. 'Generated Password (new)', but not exclusively
+	backup_password_by_storing_it: 'Back it up by storing in your password manager or a text file',
+	click_to_generate_password: 'Нажмите чтобы сгененировать пароль',
+	re_enter_generate_password: 'Повторно введите пароль',
+	understand_that_steemit_cannot_recover_password: 'Я понимаю что Steemit не сможет восстановить утраченный пароль',
+	i_saved_password: 'Я надежно сохранил сгенерированный пароль',
+	update_password: 'Обновить пароль',
+	password_must_be_characters_or_more: 'Пароль должен быть {amount} символов или больше',
+	passwords_do_not_match: 'Пароли не совпадают',
+	you_need_private_password_or_key_not_a_public_key: 'You need a private password or key (not a public key)',
+	account_updated: 'Аккаунт обновлен',
+	warning: 'внимание',
+	your_password_permissions_were_reduced: 'Your password permissions were reduced',
+	if_you_did_not_make_this_change: 'If you did not make this change please',
+	owhership_changed_on: 'Ownership Changed On',
+	deadline_for_recovery_is: 'Deadline for recovery is',
+	i_understand_dont_show_again: "Понимаю, больше не показывать",
+	ok: 'Ок', // Лучше использовать "хорошо" или "ладно"?
+	convert_to_steem: 'Convert to Steem',
+	steem_dollars_will_be_unavailable: 'This action will take place one week from now and can not be canceled. These Steem Dollars will immediatly become unavailable',
+	amount: 'Количество',
+	steem_dollars: 'STEEM ДОЛЛАРЫ',
+	convert: 'Конвертировать',
+	invalid_amount: 'Неверное количество',
+	insufficent_balance: 'Недостаточный баланс',
+	in_week_convert_steem_dollars_to_steem: 'In one week, convert {amount} STEEM DOLLARS into STEEM',
+	order_placed: 'Заказ размещен', // ex.: "Order placed: Sell {someamount_to_sell} for atleast {min_to_receive}"
+	follow: 'Подписаться',
+	unfollow: 'Отписаться',
+	mute: 'Блокировать',
+	unmute: 'Разблокировать',
+	confirm_password: 'Подтвердить пароль',
+	login_to_see_memo: 'login to see memo',
+	post: 'Пост', // places used: tooltip in MediumEditor
+	unknown: 'Неизвестный', // exp.: 'unknown error'
+	account_name_is_not_available: 'Имя аккаунта не доступно',
+	type: 'Тип',
+	price: 'Цена',
+	// Market.jsx
+	last_price: 'Последняя цена',
+	'24h_volume': 'Объем за 24 часа',
+	bid: 'Покупка',
+	ask: 'Продажа',
+	spread: 'Разница',
+	total: 'Итого',
+	available: 'Доступно',
+	lowest_ask: 'Лучшая цена продажи',
+	highest_bid: 'Лучшая цена покупки',
+	buy_orders: 'Заказы на покупку',
+	sell_orders: 'Заказы на продажу',
+	trade_history: 'История сделок',
+	open_orders: 'Открытые сделки',
+	sell_amount_for_atleast: 'Продать {amount_to_sell} за {min_to_receive} по цене  ({effectivePrice})',
+	buy_atleast_amount_for: 'Купить {min_to_receive} за {amount_to_sell} ({effectivePrice})',
+	higher: 'Дороже', // context is about prices
+	lower: 'Дешевле', // context is about prices
+	total_sd_dollars: "Сумма SD ($)",
+	sd_dollars: "SD ($)",
+	// RecoverAccountStep1.jsx // recover account stuff
+	not_valid: 'Недействительно',
+	account_name_is_not_found: 'Имя аккаунта не найдено',
+	unable_to_recover_account_not_change_ownership_recently: 'We are unable to recover this account, it has not changed ownership recently.',
+	password_not_used_in_last_days: 'This password was not used on this account in the last 30 days.',
+	request_already_submitted_contact_support: 'Your request has been already submitted and we are working on it. Please contact support@steemit.com for the status of your request.',
+	recover_account_intro: "From time to time, a Steemian’s owner key may be compromised. Stolen Account Recovery gives the rightful account owner 30 days to recover their account from the moment the thief changed their owner key. Stolen Account Recovery can only be used on steemit.com if the account owner had perviously listed ‘Steemit’ as their account trustee and complied with Steemit’s Terms of Service.",
+	login_with_facebook_or_reddit_media_to_verify_identity: 'Please login with Facebook or Reddit to verify your identity',
+	login_with_social_media_to_verify_identity: 'Please login with {show_social_login} to verify you identity',
+	enter_email_toverify_identity: 'We need to verify your identity. Please enter your email address below to begin the verification.',
+	email: 'Электронная почта',
+	continue_with_email: "Продолжить с электронной почтой",
+	thanks_for_submitting_request_for_account_recovery: '<p>Thanks for submitting your request for Account Recovery using Steem’s blockchain-based multi factor authentication.</p> <p>We will respond to you as quickly as possible, however, please expect there may be some delay in response due to high volume of emails.</p> <p>Please be prepared to verify your identity.</p> <p>Regards,</p> <p>Ned Scott</p> <p>CEO Steemit</p>',
+	recovering_account: 'Recovering account',
+	checking_account_owner: 'Checking account owner',
+	sending_recovery_request: 'Sending recovery request',
+	cant_confirm_account_ownership: 'We can\'t confirm account ownership. Check your password',
+	account_recovery_request_not_confirmed: "Account recovery request is not confirmed yet, please get back later, thank you for your patience.",
+	vote: 'Vote',
+	witness: 'Свидетели',
+	top_witnesses: 'Топ свидетелей',
+	// user's navigational menu
+	feed: 'Лента',
+	wallet: 'Кошелек',
+	blog: 'Блог',
+	change_password: 'Сменить пароль',
+	// UserProfile
+	unknown_account: 'Неизвестный аккаунт',
+	user_hasnt_made_any_posts_yet: "Looks like {name} hasn't made any posts yet!",
+	user_hasnt_started_bloggin_yet: "Looks like {name} hasn't started blogging yet!",
+	user_hasnt_followed_anything_yet: "Looks like {name} hasn't followed anything yet!",
+	user_hasnt_had_any_replies_yet: "{name} hasn't had any replies yet",
+	users_blog: "блог {name}",
+	users_posts: "посты {name}",
+	users_wallet: "кошелек {name}",
+	users_curation_rewards: "Кураторские вознаграждения {name}",
+	users_author_rewards: "Авторские награды {name}",
+	users_permissions: "Разрешения {name}",
+	recent_replies_to_users_posts: "Recent replies to {name}'s posts",
+	print: 'Print',
+	curation_rewards: "Кураторские награды",
+	author_rewards: 'Авторские награды',
+	feeds: 'Лента',
+	rewards: 'Награды',
+	permissions: 'Разрешения',
+	password: 'Пароль',
+	posts: 'Посты',
+	// english language does not need plurals, but your language might need it
+	// context usually is about profile stats: 'User has: 3 posts, 2 followers, 5 followed'
+	post_count: `{postCount, plural,
+		zero {0 постов}
+		one {# пост}
+		few {# поста}
+		many {# постов}
+	}`,
+	follower_count: `{followerCount, plural,
+		zero {0 подписчиков}
+		one {# подписчик}
+		few {# подписчика}
+		many {# подписчиков}
+	}`,
+	followed_count: `{followingCount, plural,
+		zero {0 подписок}
+		one {# подписка}
+		few {# подписки}
+		many {# подписок}
+	}`,
+	vote_count: `{voteCount, plural,
+		zero {0 голосов}
+		one {# голос}
+		few {# голоса}
+		many {# голосов}
+	}`,
+	response_count: `{responseCount, plural,
+		zero {0 ответов}
+		one {# ответ}
+		few {# ответа}
+		many {# ответов}
+	}`,
+	reply_count: `{replyCount, plural,
+		zero {0 ответов}
+		one {# ответ}
+		few {# ответа}
+		many {# ответов}
+	}`,
+	this_is_users_reputations_score_it_is_based_on_history_of_votes: "This is ${name}'s reputation score.\n\nThe reputation score is based on the history of votes received by the account, and is used to hide low quality content.",
+	newer: 'Новее',
+	older: 'Старее',
+	author_rewards_last_24_hours: 'Авторские вознаграждения за последние 24 часа',
+	daily_average_author_rewards: 'Среднесуточные авторские вознаграждения',
+	author_rewards_history: 'История авторских наград',
+	balances: 'Балансы',
+	estimate_account_value: 'Оценочная ценность аккаунта',
+	next_power_down_is_scheduled_to_happen_at: 'The next power down is scheduled to happen',
+	transfers_are_temporary_disabled: 'Переводы временно отключены',
+	history: 'История',
+	// CurationRewards.jsx
+	curation_rewards_last_24_hours: 'Кураторские награды за полседние 24 часа',
+	daily_average_curation_rewards: 'Среднесуточные кураторские награды',
+	estimated_curation_rewards_last_week: "Оценочные кураторские награды за последгюю неделю",
+	curation_rewards_last_week: "Кураторские награды за последнюю неделю",
+	curation_rewards_history: 'История кураторских наград',
+	// Post.jsx
+	now_showing_comments_with_low_ratings: 'Отображаем комментарии с низким рейтингом',
+	hide: 'Скрыть',
+	show: 'Показать',
+	sort_order: 'Порядок сортировки',
+	comments_were_hidden_due_to_low_ratings: 'Комментарии были скрыты из-за низкого рейтинга',
+	we_will_be_unable_to_create_account_with_this_browser: 'У нас не получится создать аккаунт с этим браузером',
+	you_need_to_logout_before_creating_account: 'Вам нужно {logoutLink} прежде чем вы сможете создать другой аккаунт',
+	steemit_can_only_register_one_account_per_verified_user: 'Пожалуйста, имейте ввиду что Steemit может регистрировть только один аккаунт для каждого подтвержденного пользователя',
+	username: 'Юзернейм',
+	couldnt_create_account_server_returned_error: "Не получилось создать аккаунт. Сервер вернул эту ошибку",
+	form_requires_javascript_to_be_enabled: 'Эта форма требует активированный в браузере javascript',
+	our_records_indicate_you_already_have_account: 'Наши записи показывают что у вас уже есть steem аккант',
+	to_prevent_abuse_steemit_can_only_register_one_account_per_user: 'In order to prevent abuse (each registered account costs 3 STEEM) Steemit can only register one account per verified user.',
+	you_can_either_login_or_send_us_email: 'You can either {loginLink} to your existing account or  if you need a new account',
+	send_us_email: 'отправьте нам электронная почта',
+	connection_lost_reconnecting: 'Связь потеряна, переподключаемся',
+	// Voting.jsx
+	stop_seeing_content_from_this_user: 'Stop seeing content from this user',
+	flagging_post_can_remove_rewards_the_flag_should_be_used_for_the_following: 'Flagging a post can remove rewards and make this material less visible. The flag should be used for the following',
+	fraud_or_plagiarism: 'Fraud or Plagiarism',
+	hate_speech_or_internet_trolling: 'Hate Speech or Internet Trolling',
+	intentional_miss_categorized_content_or_spam: 'Intentional miss-categorized content or Spam',
+	downvote: 'Проголосовать против',
+	pending_payout: 'Pending Payout',
+	past_payouts: 'Past Payouts',
+	and: 'и',
+	more: 'больше',
+	remove_vote: 'Убрать голос',
+	upvote: 'Проголосовать за',
+	we_will_reset_curation_rewards_for_this_post: 'will reset your curation rewards for this post',
+	removing_your_vote: 'Удаляем ваш голос',
+	changing_to_an_upvote: 'Изменяем на голос за',
+	changing_to_a_downvote: 'Изменяем на голос против',
+	confirm_flag: 'Confirm Flag',
+	// TODO
+	date_created: 'Дата создания',
+	search: 'Поиск',
+	begin_recovery: 'Начать восстановление',
+	post_as: 'Запостить как', // 'Post as Misha'
+	action: 'Действие',
+	steem_app_center: 'Steem App Center',
+	witness_thread: 'witness thread',
+	you_have_votes_remaining: 'You have {votesCount} votes remaining',
+	you_can_vote_for_maximum_of_witnesses: 'You can vote for a maximum of 30 witnesses',
+	information: 'Информация',
+	if_you_want_to_vote_outside_of_top_enter_account_name: 'If you would like to vote for a witness outside of the top 50, enter the account name below to cast a vote',
+	view_the_direct_parent: 'View the direct parent',
+	you_are_viewing_single_comments_thread_from: 'You are viewing a single comment&#39;s thread from',
+	view_the_full_context: 'View the full context',
+	this_is_a_price_feed_conversion: 'This is a price feed conversion. The one week day delay is necessary to prevent abuse from gaming the price feed average',
+	your_existing_SD_are_liquid_and_transferable: 'Your existing Steem Dollars are liquid and transferable.  Instead you may wish to trade Steem Dollars directly in this site under {link} or transfer to an external market.',
+	buy_or_sell: 'Buy or Sells',
+	trending_30_day: 'трендовое (30 дней)',
+	promoted: 'Продвигаемое',
+	comments: 'Комментарии',
+	topics: 'Topics',
+	this_password_is_bound_to_your_accounts_private_key: 'This password is bound to your account\'s active key and can not be used to login to this page. You may use this active key on other more secure pages like the Wallet or Market pages.',
+	potential_payout: 'Potential Payout',
+	boost_payments: 'Boost Payments',
+	authors: 'Authors',
+	curators: 'Curators',
+	date: 'Дата',
+	no_responses_yet_click_to_respond: 'Ответов пока нет. Нажмите чтобы ответить.',
+	click_to_respond: 'Нажмите чтобы ответить',
+	new_password: 'Новый пароль',
+	paste_a_youtube_or_vimeo_and_press_enter: 'Paste a YouTube or Vimeo and press Enter',
+	there_was_an_error_uploading_your_image: 'There was an error uploading your image',
+	raw_html: 'Raw HTML',
+	please_remove_following_html_elements: 'Please remove the following HTML elements from your post: ',
+	reputation: "Репутация",
+	remember_voting_and_posting_key: "Remember voting & posting key",
+	// example usage: 'Autologin? yes/no'
+	auto_login_question_mark: 'Заходить автоматически?',
+	yes: 'Да',
+	no: 'Нет',
+	hide_private_key: 'Скрыть приватный ключ',
+	login_to_show: 'Войти чтобы показать',
+	steemit_cannot_recover_passwords_keep_this_page_in_a_secure_location: 'Steemit cannot recover passwords.  Keep this page in a secure location, such as a fireproof safe or safety deposit box.',
+	steemit_password_backup: 'Steemit Password Backup',
+	steemit_password_backup_required: 'Steemit Password Backup (required)',
+	after_printing_write_down_your_user_name: 'After printing, write down your user name',
+	public: 'Публичное',
+	private: 'Приватное',
+	public_something_key: 'Публичный {key} ключ',
+	private_something_key: 'Приватный {key} ключ',
+	posting_key_is_required_it_should_be_different: 'The posting key is used for posting and voting. It should be different from the active and owner keys.',
+	the_active_key_is_used_to_make_transfers_and_place_orders: 'The active key is used to make transfers and place orders in the internal market.',
+	the_owner_key_is_required_to_change_other_keys: 'The owner key is the master key for the account and is required to change the other keys.',
+	the_private_key_or_password_should_be_kept_offline: 'The private key or password for the owner key should be kept offline as much as possible.',
+	the_memo_key_is_used_to_create_and_read_memos: 'The memo key is used to create and read memos.',
+	previous: 'Предыдущий',
+	next: 'Следующий',
+	browse: 'Посмотреть',
+	not_valid_email: 'Не действительный адресы',
+	thank_you_for_being_an_early_visitor_to_steemit: 'Thank you for being an early visitor to Steemit. We will get back to you at the earliest possible opportunity.',
+	estimated_author_rewards_last_week: "Estimated author rewards last week",
+	author_rewards_last_week: "Estimated author rewards last week",
+	confirm: 'Подтвердить',
+	asset: 'Актив',
+	this_memo_is_private: 'This Memo is Private',
+	this_memo_is_public: 'This Memo is Public',
+	power_up: 'Power Up',
+	transfer: 'Transfer',
+	basic: 'Basic',
+	advanced: 'Advanced',
+	convert_to_steem_power: 'Convert to Steem Power',
+	transfer_to_account: 'Transfer to Account',
+	buy_steem_or_steem_power: 'Buy Steem or Steem Power',
+	version: 'Version',
+	about_steemit: 'About Steemit',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid_for_creating_and_curating_content: 'Steemit is a social media platform where <strong>everyone</strong>&nbsp;gets <strong>paid</strong> for creating and curating content',
+	steemit_is_a_social_media_platform_where_everyone_gets_paid: 'Steemit is a social media platform where everyone gets paid for creating and curating content. It leverages a robust digital points system, called Steem, that supports real value for digital rewards through market price discovery and liquidity.',
+	learn_more_at_steem_io: 'Learn more at steem.io',
+	resources: 'Resources',
+	steem_whitepaper: 'Steem Whitepaper',
+	join_our_slack: 'Join our Slack',
+	steemit_support: 'Steemit Support',
+	please_email_questions_to: 'Please email your questions to',
+	sorry_your_reddit_account_doesnt_have_enough_karma: "Sorry, your Reddit account doesn't have enough Reddit Karma to qualify for a free sign up. Please add your email for a place on the waiting list",
+	register_with_facebook: 'Register with Facebook',
+	or_click_the_button_below_to_register_with_facebook: 'Or click the button below to register with Facebook',
+	trending_24_hour: 'trending (24 hour)',
+	home: 'home',
+	'24_hour': '24 hour',
+	'30_day': '30 day',
+	flag: "Flag",
+
+}
+
+export { ru }
diff --git a/package.json b/package.json
index 6743deeff..8a94a547d 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
     "babel-core": "^6.8.0",
     "babel-eslint": "^6.0.4",
     "babel-loader": "^6.2.1",
+    "babel-plugin-react-intl": "^2.2.0",
     "babel-plugin-transform-runtime": "^6.8.0",
     "babel-preset-es2015": "^6.3.13",
     "babel-preset-react": "^6.3.13",
@@ -86,6 +87,7 @@
     "react-dom": "^15.3.2",
     "react-foundation-components": "git+https://github.com/valzav/react-foundation-components.git#lib",
     "react-highcharts": "^8.3.3",
+    "react-intl": "^2.1.3",
     "react-medium-editor": "^1.8.0",
     "react-notification": "^5.0.7",
     "react-overlays": "0.6.4",
diff --git a/shared/UniversalRender.jsx b/shared/UniversalRender.jsx
index b7b430fc1..9132d9dc7 100644
--- a/shared/UniversalRender.jsx
+++ b/shared/UniversalRender.jsx
@@ -28,6 +28,7 @@ import PollDataSaga from 'app/redux/PollDataSaga';
 import {component as NotFound} from 'app/components/pages/NotFound';
 import extractMeta from 'app/utils/ExtractMeta';
 import {serverApiRecordEvent} from 'app/utils/ServerApiClient';
+import Translator from 'app/Translator';
 
 const sagaMiddleware = createSagaMiddleware(
     ...userWatches, // keep first to remove keys early when a page change happens
@@ -120,11 +121,13 @@ async function universalRender({ location, initial_state, offchain }) {
         }
         return render(
             <Provider store={store}>
+                    <Translator>
                 <Router
                     routes={RootRoute}
                     history={history}
                     onError={onRouterError}
                     render={applyRouterMiddleware(scroll)} />
+                    </Translator>
             </Provider>,
             document.getElementById('content')
         );
@@ -169,7 +172,9 @@ async function universalRender({ location, initial_state, offchain }) {
     try {
         app = renderToString(
             <Provider store={server_store}>
+                <Translator>
                 <RouterContext { ...renderProps } />
+                </Translator>
             </Provider>
         );
         meta = extractMeta(onchain, renderProps.params);
-- 
GitLab