From 5479e7e94bd40271f8b849eedceb862772ca25b6 Mon Sep 17 00:00:00 2001
From: jamaljsr <1356600+jamaljsr@users.noreply.github.com>
Date: Thu, 17 Oct 2019 21:58:23 -0400
Subject: [PATCH] feat(i18n): update translations for home and network
components
---
src/components/common/NavMenu.tsx | 8 ++--
src/components/home/GetStarted.tsx | 8 ++--
src/components/home/Home.tsx | 31 ++++++++--------
src/components/home/NetworkCard.tsx | 6 ++-
src/components/layouts/AppLayout.spec.tsx | 2 +-
src/components/network/NetworkActions.tsx | 10 ++---
src/components/network/NewNetwork.spec.tsx | 2 +-
src/components/network/NewNetwork.tsx | 31 ++++++----------
src/i18n/locales/en-US.json | 43 +++++++++++-----------
src/i18n/locales/es.json | 43 +++++++++++-----------
10 files changed, 89 insertions(+), 95 deletions(-)
diff --git a/src/components/common/NavMenu.tsx b/src/components/common/NavMenu.tsx
index 778fa95..b67cbc8 100644
--- a/src/components/common/NavMenu.tsx
+++ b/src/components/common/NavMenu.tsx
@@ -1,7 +1,7 @@
import React from 'react';
-import { useTranslation } from 'react-i18next';
import styled from '@emotion/styled';
import { Dropdown, Icon, Menu } from 'antd';
+import { usePrefixedTranslation } from 'hooks';
import { useStoreActions } from 'store';
import { NETWORK } from 'components/routing';
@@ -16,17 +16,17 @@ const Styled = {
};
const NavMenu: React.FC = () => {
- const { t } = useTranslation();
+ const { l } = usePrefixedTranslation('cmps.common.NavMenu');
const { navigateTo } = useStoreActions(s => s.app);
const menu = (
);
diff --git a/src/components/home/GetStarted.tsx b/src/components/home/GetStarted.tsx
index 2efa05f..71350ec 100644
--- a/src/components/home/GetStarted.tsx
+++ b/src/components/home/GetStarted.tsx
@@ -1,8 +1,8 @@
import React from 'react';
-import { useTranslation } from 'react-i18next';
import { Link } from 'react-router-dom';
import styled from '@emotion/styled';
import { Button } from 'antd';
+import { usePrefixedTranslation } from 'hooks';
import { NETWORK } from 'components/routing';
import logobw from 'resources/logo_bw.png';
@@ -27,14 +27,14 @@ const Styled = {
};
const GetStarted: React.FC = () => {
- const { t } = useTranslation();
+ const { l } = usePrefixedTranslation('cmps.home.GetStarted');
return (
- {t('cmps.get-started.title', "Let's get started!")}
+ {l('title')}
diff --git a/src/components/home/Home.tsx b/src/components/home/Home.tsx
index e5302d9..8270949 100644
--- a/src/components/home/Home.tsx
+++ b/src/components/home/Home.tsx
@@ -1,8 +1,8 @@
import React, { useEffect } from 'react';
import { useAsync } from 'react-async-hook';
-import { useTranslation } from 'react-i18next';
import { info } from 'electron-log';
-import { Alert, Col, Row } from 'antd';
+import { Col, Row } from 'antd';
+import { usePrefixedTranslation } from 'hooks';
import { useStoreActions, useStoreState } from 'store';
import { Loader } from 'components/common';
import { GetStarted, NetworkCard } from './';
@@ -10,10 +10,21 @@ import { GetStarted, NetworkCard } from './';
const Home: React.FC = () => {
useEffect(() => info('Rendering Home component'), []);
- const { t } = useTranslation();
+ const { l } = usePrefixedTranslation('cmps.home.Home');
+ const { notify } = useStoreActions(s => s.app);
const { networks, loaded } = useStoreState(s => s.network);
const { load } = useStoreActions(s => s.network);
- const loadAsync = useAsync(() => load(), [], { executeOnMount: !loaded });
+ const loadAsync = useAsync(
+ async () => {
+ try {
+ await load();
+ } catch (error) {
+ notify({ message: l('loadError'), error });
+ }
+ },
+ [],
+ { executeOnMount: !loaded },
+ );
if (loadAsync.loading) {
return ;
@@ -21,18 +32,6 @@ const Home: React.FC = () => {
return (
<>
- {loadAsync.error && (
-
- )}
{networks.length === 0 && }
{networks.map(n => (
diff --git a/src/components/home/NetworkCard.tsx b/src/components/home/NetworkCard.tsx
index febde83..a6e71e4 100644
--- a/src/components/home/NetworkCard.tsx
+++ b/src/components/home/NetworkCard.tsx
@@ -1,6 +1,7 @@
import React from 'react';
import styled from '@emotion/styled';
import { Card, Col, Icon, Row, Statistic } from 'antd';
+import { usePrefixedTranslation } from 'hooks';
import { useStoreActions } from 'store';
import { Network } from 'types';
import { StatusBadge } from 'components/common';
@@ -13,6 +14,7 @@ const Styled = {
};
const NetworkCard: React.FC<{ network: Network }> = ({ network }) => {
+ const { l } = usePrefixedTranslation('cmps.home.NetworkCard');
const { navigateTo } = useStoreActions(s => s.app);
return (
@@ -25,14 +27,14 @@ const NetworkCard: React.FC<{ network: Network }> = ({ network }) => {
}
/>
}
/>
diff --git a/src/components/layouts/AppLayout.spec.tsx b/src/components/layouts/AppLayout.spec.tsx
index 1b3170b..ed26c8f 100644
--- a/src/components/layouts/AppLayout.spec.tsx
+++ b/src/components/layouts/AppLayout.spec.tsx
@@ -12,7 +12,7 @@ describe('AppLayout component', () => {
return (
Hello World!
- {t('cmps.get-started.title')}
+ {t('cmps.home.GetStarted.title')}
);
};
diff --git a/src/components/network/NetworkActions.tsx b/src/components/network/NetworkActions.tsx
index 0b31e91..595258b 100644
--- a/src/components/network/NetworkActions.tsx
+++ b/src/components/network/NetworkActions.tsx
@@ -1,7 +1,7 @@
import React from 'react';
-import { useTranslation } from 'react-i18next';
import { Button, Dropdown, Icon, Menu } from 'antd';
import { ButtonType } from 'antd/lib/button';
+import { usePrefixedTranslation } from 'hooks';
import { Status } from 'types';
interface Props {
@@ -44,7 +44,7 @@ const config: {
};
const NetworkActions: React.FC = ({ status, onClick }) => {
- const { t } = useTranslation();
+ const { l } = usePrefixedTranslation('cmps.network.NetworkActions');
const loading = status === Status.Starting || status === Status.Stopping;
const { label, type, icon } = config[status];
@@ -52,11 +52,11 @@ const NetworkActions: React.FC = ({ status, onClick }) => {
);
@@ -64,7 +64,7 @@ const NetworkActions: React.FC = ({ status, onClick }) => {
return (
<>
diff --git a/src/components/network/NewNetwork.spec.tsx b/src/components/network/NewNetwork.spec.tsx
index a5d5d51..226b714 100644
--- a/src/components/network/NewNetwork.spec.tsx
+++ b/src/components/network/NewNetwork.spec.tsx
@@ -27,7 +27,7 @@ describe('NewNetwork component', () => {
it('should display an error if empty name is submitted', () => {
const { getByText, createBtn } = renderComponent();
fireEvent.click(createBtn);
- expect(getByText('name is required')).toBeInTheDocument();
+ expect(getByText('required')).toBeInTheDocument();
});
describe('with valid submission', () => {
diff --git a/src/components/network/NewNetwork.tsx b/src/components/network/NewNetwork.tsx
index 910fb8a..e506eb3 100644
--- a/src/components/network/NewNetwork.tsx
+++ b/src/components/network/NewNetwork.tsx
@@ -1,8 +1,8 @@
import React, { FormEvent, useEffect } from 'react';
-import { useTranslation } from 'react-i18next';
import { info } from 'electron-log';
import { Button, Card, Col, Form, Input, InputNumber, Row } from 'antd';
import { FormComponentProps } from 'antd/lib/form';
+import { usePrefixedTranslation } from 'hooks';
import { useStoreActions } from 'store';
interface FormProps {
@@ -14,7 +14,7 @@ interface FormProps {
const NewNetwork: React.SFC = ({ form }) => {
useEffect(() => info('Rendering NewNetwork component'), []);
- const { t } = useTranslation();
+ const { l } = usePrefixedTranslation('cmps.network.NewNetwork');
const { addNetwork } = useStoreActions(s => s.network);
const handleSubmit = (e: FormEvent) => {
@@ -27,35 +27,26 @@ const NewNetwork: React.SFC = ({ form }) => {
};
return (
-
+
+
{form.getFieldDecorator('name', {
- rules: [{ required: true, message: 'name is required' }],
- })(
- ,
- )}
+ rules: [{ required: true, message: l('cmps.forms.required') }],
+ })()}
-
+
{form.getFieldDecorator('lndNodes', {
- rules: [{ required: true, message: 'required' }],
+ rules: [{ required: true, message: l('cmps.forms.required') }],
initialValue: 2,
})()}
{form.getFieldDecorator('bitcoindNodes', {
rules: [{ required: true, message: 'required' }],
@@ -66,7 +57,7 @@ const NewNetwork: React.SFC = ({ form }) => {
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 016c7ab..ddf886e 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -5,28 +5,10 @@
"enums.status.Stopped": "Stopped",
"enums.status.Error": "Error",
"cmps.forms.required": "required",
- "cmps.nav-menu.create-network": "Create Network",
- "cmps.nav-menu.settings": "Settings",
- "cmps.home.load-error-msg": "Unable to load previously save networks",
- "cmps.get-started.title": "Let's get started!",
- "cmps.get-started.create-btn": "Create a Lightning Network",
- "cmps.new-network.title": "Create a new Lightning Network",
- "cmps.new-network.name-label": "Network Name",
- "cmps.new-network.name-phldr": "My Lightning Simnet",
- "cmps.new-network.lnd-nodes-label": "How many LND nodes?",
- "cmps.new-network.bitcoind-nodes-label": "How many bitcoind nodes?",
- "cmps.new-network.bitcoind-nodes-soon": "Coming Soon",
- "cmps.new-network.btn-create": "Create",
- "cmps.new-network.success-msg": "Created network",
- "cmps.network-actions.menu-rename": "Rename",
- "cmps.network-actions.menu-delete": "Delete",
- "cmps.network-actions.primary-btn-starting": "Starting",
- "cmps.network-actions.primary-btn-stop": "Stop",
- "cmps.network-actions.primary-btn-stopping": "Stopping",
- "cmps.network-actions.primary-btn-start": "Start",
- "cmps.network-actions.primary-btn-restart": "Restart",
"cmps.common.form.LightningNodeSelect.balance": "Balance",
"cmps.common.CopyIcon.message": "Copied {{label}} to clipboard",
+ "cmps.common.NavMenu.createNetwork": "Create Network",
+ "cmps.common.NavMenu.settings": "Settings",
"cmps.designer.lnd.OpenChannelModal.title": "Open New Channel",
"cmps.designer.lnd.OpenChannelModal.source": "Source",
"cmps.designer.lnd.OpenChannelModal.dest": "Destination",
@@ -112,5 +94,24 @@
"cmps.designer.lnd.LndDetails.connect": "Connect",
"cmps.designer.lnd.LndDetails.actions": "Actions",
"cmps.designer.lnd.LndDetails.waitingNotice": "Waiting for LND to come online",
- "cmps.designer.lnd.LndDetails.connectError": "Unable to connect to node"
+ "cmps.designer.lnd.LndDetails.connectError": "Unable to connect to node",
+ "cmps.home.GetStarted.title": "Let's get started!",
+ "cmps.home.GetStarted.createBtn": "Create a Lightning Network",
+ "cmps.home.Home.loadError": "Unable to load previously save networks",
+ "cmps.home.NetworkCard.lightningNodes": "Lightning Nodes",
+ "cmps.home.NetworkCard.bitcoinNodes": "Bitcoin Nodes",
+ "cmps.network.NetworkActions.menuRename": "Rename",
+ "cmps.network.NetworkActions.menuDelete": "Delete",
+ "cmps.network.NetworkActions.primaryBtnStarting": "Starting",
+ "cmps.network.NetworkActions.primaryBtnStop": "Stop",
+ "cmps.network.NetworkActions.primaryBtnStopping": "Stopping",
+ "cmps.network.NetworkActions.primaryBtnStart": "Start",
+ "cmps.network.NetworkActions.primaryBtnRestart": "Restart",
+ "cmps.network.NewNetwork.title": "Create a new Lightning Network",
+ "cmps.network.NewNetwork.nameLabel": "Network Name",
+ "cmps.network.NewNetwork.namePhldr": "My Lightning Simnet",
+ "cmps.network.NewNetwork.lndNodesLabel": "How many LND nodes?",
+ "cmps.network.NewNetwork.bitcoindNodesLabel": "How many bitcoind nodes?",
+ "cmps.network.NewNetwork.bitcoindNodesSoon": "Coming Soon",
+ "cmps.network.NewNetwork.btnCreate": "Create"
}
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 3c2826a..2c83f12 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -5,28 +5,10 @@
"enums.status.Stopped": "Detenido",
"enums.status.Error": "Error",
"cmps.forms.required": "necesario",
- "cmps.nav-menu.create-network": "Crear red",
- "cmps.nav-menu.settings": "Configuraciones",
- "cmps.home.load-error-msg": "No se pueden cargar las redes guardadas previamente",
- "cmps.get-started.title": "Empecemos",
- "cmps.get-started.create-btn": "Crea tu primera red",
- "cmps.new-network.title": "Crear una nueva red Lightning",
- "cmps.new-network.name-label": "Nombre de red",
- "cmps.new-network.name-phldr": "Mi Lightning Simnet",
- "cmps.new-network.lnd-nodes-label": "¿Cuántos nodos de LND?",
- "cmps.new-network.bitcoind-nodes-label": "¿Cuántos nodos de bitcoind?",
- "cmps.new-network.bitcoind-nodes-soon": "Próximamente",
- "cmps.new-network.btn-create": "Crear",
- "cmps.new-network.success-msg": "Red creada",
- "cmps.network-actions.menu-rename": "Rebautizar",
- "cmps.network-actions.menu-delete": "Borrar",
- "cmps.network-actions.primary-btn-starting": "Comenzando",
- "cmps.network-actions.primary-btn-stop": "Detener",
- "cmps.network-actions.primary-btn-stopping": "Parada",
- "cmps.network-actions.primary-btn-start": "Comienzo",
- "cmps.network-actions.primary-btn-restart": "Reiniciar",
"cmps.common.form.LightningNodeSelect.balance": "Equilibrar",
"cmps.common.CopyIcon.message": "Copiado {{label}} al portapapeles",
+ "cmps.common.NavMenu.createNetwork": "Crear red",
+ "cmps.common.NavMenu.settings": "Configuraciones",
"cmps.designer.lnd.OpenChannelModal.title": "Abrir nuevo canal",
"cmps.designer.lnd.OpenChannelModal.source": "Fuente",
"cmps.designer.lnd.OpenChannelModal.dest": "Destino",
@@ -112,5 +94,24 @@
"cmps.designer.lnd.LndDetails.connect": "Conectar",
"cmps.designer.lnd.LndDetails.actions": "Comportamiento",
"cmps.designer.lnd.LndDetails.waitingNotice": "Esperando a que LND se conecte",
- "cmps.designer.lnd.LndDetails.connectError": "No se puede conectar al nodo"
+ "cmps.designer.lnd.LndDetails.connectError": "No se puede conectar al nodo",
+ "cmps.home.GetStarted.title": "Empecemos",
+ "cmps.home.GetStarted.createBtn": "Crea tu primera red",
+ "cmps.home.Home.loadError": "No se pueden cargar las redes guardadas previamente",
+ "cmps.home.NetworkCard.lightningNodes": "Nodos Relámpagos",
+ "cmps.home.NetworkCard.bitcoinNodes": "Nodos de Bitcoin",
+ "cmps.network.NetworkActions.menuRename": "Rebautizar",
+ "cmps.network.NetworkActions.menuDelete": "Borrar",
+ "cmps.network.NetworkActions.primaryBtnStarting": "Comenzando",
+ "cmps.network.NetworkActions.primaryBtnStop": "Detener",
+ "cmps.network.NetworkActions.primaryBtnStopping": "Parada",
+ "cmps.network.NetworkActions.primaryBtnStart": "Comienzo",
+ "cmps.network.NetworkActions.primaryBtnRestart": "Reiniciar",
+ "cmps.network.NewNetwork.title": "Crear una nueva red Lightning",
+ "cmps.network.NewNetwork.nameLabel": "Nombre de red",
+ "cmps.network.NewNetwork.namePhldr": "Mi Lightning Simnet",
+ "cmps.network.NewNetwork.lndNodesLabel": "¿Cuántos nodos de LND?",
+ "cmps.network.NewNetwork.bitcoindNodesLabel": "¿Cuántos nodos de bitcoind?",
+ "cmps.network.NewNetwork.bitcoindNodesSoon": "Próximamente",
+ "cmps.network.NewNetwork.btnCreate": "Crear"
}