diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index dd38d566b7..3c709e3abf 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -81,6 +81,7 @@ "free_accounts_have_timeout_upgrade_to_increase": "", "from_another_project": "", "from_external_url": "", + "from_provider": "", "full_doc_history": "", "full_screen": "", "generic_something_went_wrong": "", @@ -236,6 +237,7 @@ "repository_name": "", "resend": "", "review": "", + "revoke": "", "revoke_invite": "", "run_syntax_check_now": "", "select_a_file": "", diff --git a/services/web/frontend/js/features/share-project-modal/components/edit-member.js b/services/web/frontend/js/features/share-project-modal/components/edit-member.js index cb50b1fe4a..119448e6db 100644 --- a/services/web/frontend/js/features/share-project-modal/components/edit-member.js +++ b/services/web/frontend/js/features/share-project-modal/components/edit-member.js @@ -120,6 +120,7 @@ SelectPrivilege.propTypes = { } function RemoveMemberAction({ member }) { + const { t } = useTranslation() const { updateProject, monitorRequest } = useShareProjectContext() const project = useProjectContext() @@ -148,7 +149,7 @@ function RemoveMemberAction({ member }) { bsStyle="link" onClick={handleClick} className="remove-button" - aria-label="Remove from project" + aria-label={t('remove_collaborator')} > diff --git a/services/web/frontend/js/features/share-project-modal/components/invite.js b/services/web/frontend/js/features/share-project-modal/components/invite.js index 3cf25f1e33..bcf27de71e 100644 --- a/services/web/frontend/js/features/share-project-modal/components/invite.js +++ b/services/web/frontend/js/features/share-project-modal/components/invite.js @@ -6,7 +6,7 @@ import { } from './share-project-modal' import Icon from '../../../shared/components/icon' import { Button, Col, Row, OverlayTrigger, Tooltip } from 'react-bootstrap' -import { Trans } from 'react-i18next' +import { Trans, useTranslation } from 'react-i18next' import MemberPrivileges from './member-privileges' import { resendInvite, revokeInvite } from '../utils/api' @@ -75,6 +75,7 @@ ResendInvite.propTypes = { } function RevokeInvite({ invite }) { + const { t } = useTranslation() const { updateProject, monitorRequest } = useShareProjectContext() const project = useProjectContext() @@ -101,7 +102,7 @@ function RevokeInvite({ invite }) { type="button" bsStyle="link" onClick={handleClick} - aria-label="Revoke" + aria-label={t('revoke')} className="btn-inline-link" > diff --git a/services/web/frontend/js/shared/components/copy-link.js b/services/web/frontend/js/shared/components/copy-link.js index 547fbee804..60af68f22e 100644 --- a/services/web/frontend/js/shared/components/copy-link.js +++ b/services/web/frontend/js/shared/components/copy-link.js @@ -1,10 +1,12 @@ import React, { useCallback, useState } from 'react' import { Button, OverlayTrigger, Tooltip } from 'react-bootstrap' import PropTypes from 'prop-types' -import { Trans } from 'react-i18next' +import { Trans, useTranslation } from 'react-i18next' import Icon from './icon' export default function CopyLink({ link, tooltipId }) { + const { t } = useTranslation() + const [copied, setCopied] = useState(false) const handleClick = useCallback(() => { @@ -36,7 +38,7 @@ export default function CopyLink({ link, tooltipId }) { bsSize="xsmall" bsStyle="link" className="copy-button" - aria-label="Copy" + aria-label={t('copy')} > {copied ? : } diff --git a/services/web/locales/en.json b/services/web/locales/en.json index e4aad5e777..a4ae06ffda 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -634,6 +634,7 @@ "invite_not_accepted": "Invite not yet accepted", "resend": "Resend", "syntax_check": "Syntax check", + "revoke": "Revoke", "revoke_invite": "Revoke Invite", "pending": "Pending", "invite_not_valid": "This is not a valid project invite", @@ -705,6 +706,7 @@ "unlink_warning_reference": "Warning: When you unlink your account from this provider you will not be able to import references into your projects.", "mendeley": "Mendeley", "zotero": "Zotero", + "from_provider": "From __provider__", "suggest_new_doc": "Suggest new doc", "request_sent_thank_you": "Message sent! Our team will review it and reply by email.", "suggestion": "Suggestion", diff --git a/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.js b/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.js index 33a3383796..0516eb01e8 100644 --- a/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.js +++ b/services/web/test/frontend/features/share-project-modal/components/share-project-modal.test.js @@ -484,7 +484,7 @@ describe('', function () { expect(screen.queryAllByText('member-viewer@example.com')).to.have.length(1) const removeButton = screen.getByRole('button', { - name: 'Remove from project', + name: 'Remove collaborator', }) fireEvent.click(removeButton)