From a4876c3c19a54cb19c695335fcb2f8b9651a54d5 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Tue, 17 Oct 2023 14:07:03 +0300 Subject: [PATCH] image, notes, special char translations --- editors/demo/src/locale/en.js | 8 ++++++++ editors/demo/src/locale/es.js | 8 ++++++++ .../src/ImageService/Image.js | 2 +- .../src/ImageService/components/ImageUpload.js | 16 ++++++++++++---- .../components/SpecialCharactersComponent.js | 13 ++++++++++--- .../components/SpecialCharactersTool.js | 11 +++++++++-- 6 files changed, 48 insertions(+), 10 deletions(-) diff --git a/editors/demo/src/locale/en.js b/editors/demo/src/locale/en.js index 3aad7acae..288f37915 100644 --- a/editors/demo/src/locale/en.js +++ b/editors/demo/src/locale/en.js @@ -20,6 +20,7 @@ const en = { 'Wrap in ordered list': 'Wrap in ordered list', 'Join with above block': 'Join with above block', 'Lift out of enclosing block': 'Lift out of enclosing block', + 'Insert Note': 'Insert Note', }, BlockLevel: { 'Block Level': ' Heading styles', @@ -62,6 +63,13 @@ const en = { 'Lower Case': 'Lower Case', 'Sentence Case': 'Sentence Case', }, + Images: { + 'Upload Image': 'Upload Image', + }, + SpecialCharacters: { + 'Special Characters': 'Special Characters', + Search: 'Search', + }, Tables: { 'Insert table': 'Insert Table', 'Table Options': 'Table Options', diff --git a/editors/demo/src/locale/es.js b/editors/demo/src/locale/es.js index cfff57a69..89ae0ba16 100644 --- a/editors/demo/src/locale/es.js +++ b/editors/demo/src/locale/es.js @@ -20,6 +20,7 @@ const es = { 'Wrap in ordered list': 'Envolver en lista ordenada', 'Join with above block': 'Unirse al bloque anterior', 'Lift out of enclosing block': 'Levante fuera del bloque envolvente', + 'Insert Note': 'Insertar nota', }, BlockLevel: { 'Block Level': 'Estilos de encabezado', @@ -62,6 +63,13 @@ const es = { 'Lower Case': 'Minúscula', 'Sentence Case': 'Caso de sentencia', }, + Images: { + 'Upload Image': 'Cargar imagen', + }, + SpecialCharacters: { + 'Special Characters': 'Caracteres especiales', + Search: 'Buscar', + }, Tables: { 'Insert table': 'Insertar tabla', 'Table Options': 'Opciones de tabla', diff --git a/wax-prosemirror-services/src/ImageService/Image.js b/wax-prosemirror-services/src/ImageService/Image.js index e76e68c38..48212224d 100644 --- a/wax-prosemirror-services/src/ImageService/Image.js +++ b/wax-prosemirror-services/src/ImageService/Image.js @@ -7,7 +7,7 @@ import ImageUploadComponent from './components/ImageUploadComponent'; @injectable() export default class Image extends Tools { - title = 'Insert image'; + title = 'Upload Image'; icon = 'image'; name = 'Image'; diff --git a/wax-prosemirror-services/src/ImageService/components/ImageUpload.js b/wax-prosemirror-services/src/ImageService/components/ImageUpload.js index 26a59f7e9..899b7d219 100644 --- a/wax-prosemirror-services/src/ImageService/components/ImageUpload.js +++ b/wax-prosemirror-services/src/ImageService/components/ImageUpload.js @@ -1,7 +1,9 @@ /* eslint react/prop-types: 0 */ -import React, { useContext, useRef, useMemo, useEffect } from 'react'; -import { WaxContext, DocumentHelpers, MenuButton } from 'wax-prosemirror-core'; +import React, { useContext, useRef, useMemo } from 'react'; import { TextSelection } from 'prosemirror-state'; +import { isEmpty } from 'lodash'; +import { useTranslation } from 'react-i18next'; +import { WaxContext, DocumentHelpers, MenuButton } from 'wax-prosemirror-core'; import styled from 'styled-components'; import insertImage from './Upload'; @@ -12,6 +14,8 @@ const Wrapper = styled.div` `; const ImageUpload = ({ item, fileUpload, view }) => { + const { t, i18n } = useTranslation(); + const { title } = item; const context = useContext(WaxContext); const { app, @@ -79,7 +83,11 @@ const ImageUpload = ({ item, fileUpload, view }) => { e.preventDefault(); handleMouseDown(); }} - title="Upload Image" + title={ + !isEmpty(i18n) && i18n.exists(`Wax.Images.${title}`) + ? t(`Wax.Images.${title}`) + : title + } /> <input @@ -96,7 +104,7 @@ const ImageUpload = ({ item, fileUpload, view }) => { </label> </Wrapper> ), - [isDisabled, activeViewId], + [isDisabled, activeViewId, t(`Wax.Images.${title}`)], ); return ImageUploadComponent; diff --git a/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersComponent.js b/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersComponent.js index d1adfc181..8cdebefe2 100644 --- a/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersComponent.js +++ b/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersComponent.js @@ -7,10 +7,11 @@ import React, { useEffect, } from 'react'; import styled from 'styled-components'; +import { filter, groupBy, debounce, isEmpty } from 'lodash'; +import { useTranslation } from 'react-i18next'; import { grid, th, override } from '@pubsweet/ui-toolkit'; import { v4 as uuidv4 } from 'uuid'; import { WaxContext } from 'wax-prosemirror-core'; -import { filter, groupBy, debounce } from 'lodash'; const Wrapper = styled.div` width: 400px; @@ -105,7 +106,9 @@ const SpecialCharacter = styled.div` ${override('Wax.SpecialCharacterButton')} `; -const SpecialCharactersComponent = ({ close }) => { +const SpecialCharactersComponent = () => { + const { t, i18n } = useTranslation(); + const searchRef = useRef(null); const { activeView, app } = useContext(WaxContext); const [searchValue, setSearchValue] = useState(''); @@ -184,7 +187,11 @@ const SpecialCharactersComponent = ({ close }) => { <SearchInputContainer> <SearchInput onChange={onChange} - placeholder="Search" + placeholder={ + !isEmpty(i18n) && i18n.exists('Wax.SpecialCharacters.Search') + ? t('Wax.SpecialCharacters.Search') + : 'Search' + } ref={searchRef} type="text" value={searchValue} diff --git a/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersTool.js b/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersTool.js index 8943b8c38..04b4299c3 100644 --- a/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersTool.js +++ b/wax-prosemirror-services/src/SpecialCharactersService/components/SpecialCharactersTool.js @@ -1,5 +1,7 @@ import React, { useContext, useMemo, useState, useRef } from 'react'; import styled from 'styled-components'; +import { isEmpty } from 'lodash'; +import { useTranslation } from 'react-i18next'; import { grid, override } from '@pubsweet/ui-toolkit'; import { WaxContext, @@ -24,6 +26,7 @@ const DropWrapper = styled.div` `; const SpecialCharactersTool = ({ item }) => { + const { t, i18n } = useTranslation(); const { pmViews: { main }, } = useContext(WaxContext); @@ -50,7 +53,11 @@ const SpecialCharactersTool = ({ item }) => { onMouseDown={() => { setIsOpen(!isOpen); }} - title={title} + title={ + !isEmpty(i18n) && i18n.exists(`Wax.SpecialCharacters.${title}`) + ? t(`Wax.SpecialCharacters.${title}`) + : title + } /> {isOpen && ( @@ -64,7 +71,7 @@ const SpecialCharactersTool = ({ item }) => { )} </Wrapper> ), - [isOpen, isDisabled], + [isOpen, isDisabled, t(`Wax.SpecialCharacters.${title}`)], ); return MemorizedDropdown; -- GitLab