Internationalization support (#477)

* add i18next lib
add some translations

* add translations

* fix font-family

* fix pin versions
This commit is contained in:
Fernando Alava Zambrano 2020-01-21 01:14:10 +02:00 committed by Christopher Chedeau
parent 1a03a29025
commit ff7a340d2f
15 changed files with 286 additions and 162 deletions

View file

@ -12,6 +12,8 @@ import { getExportCanvasPreview } from "../scene/getExportCanvasPreview";
import { ActionsManagerInterface, UpdaterFn } from "../actions/types";
import Stack from "./Stack";
import { useTranslation } from "react-i18next";
const probablySupportsClipboard =
"toBlob" in HTMLCanvasElement.prototype &&
"clipboard" in navigator &&
@ -42,6 +44,7 @@ export function ExportDialog({
onExportToClipboard: ExportCB;
onExportToBackend: ExportCB;
}) {
const { t } = useTranslation();
const someElementIsSelected = elements.some(element => element.isSelected);
const [modalIsShown, setModalIsShown] = useState(false);
const [scale, setScale] = useState(defaultScale);
@ -90,7 +93,7 @@ export function ExportDialog({
icon={exportFile}
type="button"
aria-label="Show export dialog"
title="Export"
title={t("buttons.export")}
/>
{modalIsShown && (
<Modal maxWidth={640} onCloseRequest={handleClose}>
@ -99,23 +102,23 @@ export function ExportDialog({
<button className="ExportDialog__close" onClick={handleClose}>
</button>
<h2>Export</h2>
<h2>{t("buttons.export")}</h2>
<div className="ExportDialog__preview" ref={previeRef}></div>
<div className="ExportDialog__actions">
<Stack.Row gap={2}>
<ToolIcon
type="button"
icon={downloadFile}
title="Export to PNG"
aria-label="Export to PNG"
title={t("buttons.exportToPng")}
aria-label={t("buttons.exportToPng")}
onClick={() => onExportToPng(exportedElements, scale)}
/>
{probablySupportsClipboard && (
<ToolIcon
type="button"
icon={clipboard}
title="Copy to clipboard"
aria-label="Copy to clipboard"
title={t("buttons.copyToClipboard")}
aria-label={t("buttons.copyToClipboard")}
onClick={() =>
onExportToClipboard(exportedElements, scale)
}
@ -134,7 +137,8 @@ export function ExportDialog({
"changeProjectName",
elements,
appState,
syncActionResult
syncActionResult,
t
)}
<Stack.Col gap={1}>
<div className="ExportDialog__scales">
@ -157,7 +161,8 @@ export function ExportDialog({
"changeExportBackground",
elements,
appState,
syncActionResult
syncActionResult,
t
)}
{someElementIsSelected && (
<div>
@ -169,7 +174,7 @@ export function ExportDialog({
setExportSelected(e.currentTarget.checked)
}
/>{" "}
Only selected
{t("labels.onlySelected")}
</label>
</div>
)}