diff --git a/client/i18n.js b/client/i18n.js index 8fa6959f6a..3b54262990 100644 --- a/client/i18n.js +++ b/client/i18n.js @@ -70,7 +70,7 @@ export function languageKeyToLabel(lang) { it: 'Italiano', ja: '日本語', ko: '한국어', - 'pt-BR': 'Português', + 'pt-BR': 'Português do Brasil', sv: 'Svenska', 'uk-UA': 'Українська', 'zh-CN': '简体中文', diff --git a/client/modules/IDE/actions/project.js b/client/modules/IDE/actions/project.js index 5b3aaf7743..c303f691b1 100644 --- a/client/modules/IDE/actions/project.js +++ b/client/modules/IDE/actions/project.js @@ -413,7 +413,7 @@ export function deleteProject(id) { }); }; } -export function changeVisibility(projectId, projectName, visibility) { +export function changeVisibility(projectId, projectName, visibility, t) { return (dispatch, getState) => { const state = getState(); @@ -443,11 +443,25 @@ export function changeVisibility(projectId, projectName, visibility) { name: response.data.name }); - dispatch( - setToastText( - `${projectName} is now ${newVisibility.toLowerCase()}` - ) - ); + let visibilityLabel; + + switch (newVisibility) { + case 'Public': + visibilityLabel = t('Visibility.Public.Label'); + break; + case 'Private': + visibilityLabel = t('Visibility.Private.Label'); + break; + default: + visibilityLabel = newVisibility; + } + + const visibilityToastText = t('Visibility.Changed', { + projectName, + newVisibility: visibilityLabel.toLowerCase() + }); + + dispatch(setToastText(visibilityToastText)); dispatch(showToast(2000)); } } diff --git a/client/modules/IDE/components/Header/Toolbar.jsx b/client/modules/IDE/components/Header/Toolbar.jsx index 35add9795b..fbf0b5d091 100644 --- a/client/modules/IDE/components/Header/Toolbar.jsx +++ b/client/modules/IDE/components/Header/Toolbar.jsx @@ -33,7 +33,6 @@ const Toolbar = (props) => { const dispatch = useDispatch(); const { t } = useTranslation(); const userIsOwner = user?.username === project.owner?.username; - const showVisibilityDropdown = project?.owner && userIsOwner; const playButtonClass = classNames({ @@ -51,7 +50,7 @@ const Toolbar = (props) => { const handleVisibilityChange = useCallback( (sketchId, sketchName, newVisibility) => { - dispatch(changeVisibility(sketchId, sketchName, newVisibility)); + dispatch(changeVisibility(sketchId, sketchName, newVisibility, t)); }, [changeVisibility] ); diff --git a/client/modules/IDE/components/SketchListRowBase.jsx b/client/modules/IDE/components/SketchListRowBase.jsx index 4d83ee0304..e1c4c80f13 100644 --- a/client/modules/IDE/components/SketchListRowBase.jsx +++ b/client/modules/IDE/components/SketchListRowBase.jsx @@ -91,7 +91,7 @@ const SketchListRowBase = ({ const handleVisibilityChange = useCallback( (sketchId, sketchName, newVisibility) => { - changeVisibility(sketchId, sketchName, newVisibility); + changeVisibility(sketchId, sketchName, newVisibility, t); }, [changeVisibility] ); diff --git a/translations/locales/en-US/translations.json b/translations/locales/en-US/translations.json index b101b56e8f..4069fd2621 100644 --- a/translations/locales/en-US/translations.json +++ b/translations/locales/en-US/translations.json @@ -29,8 +29,8 @@ "Reference": "Reference", "About": "About", "ReportBug": "Report a Bug", - "ChatOnDiscord":"Chat On Discord", - "PostOnTheForum":"Post on the Forum" + "ChatOnDiscord": "Chat On Discord", + "PostOnTheForum": "Post on the Forum" }, "Lang": "Language", "BackEditor": "Back to Editor", @@ -690,6 +690,7 @@ "Private": { "Description": "Only you can see this sketch.", "Label": "Private" - } + }, + "Changed": "'{{projectName}}' is now {{newVisibility}}..." } } diff --git a/translations/locales/pt-BR/translations.json b/translations/locales/pt-BR/translations.json index eac7eeb2a7..15a0aecf68 100644 --- a/translations/locales/pt-BR/translations.json +++ b/translations/locales/pt-BR/translations.json @@ -27,7 +27,10 @@ "Title": "Ajuda", "KeyboardShortcuts": "Atalhos de Teclado", "Reference": "Referência", - "About": "Sobre" + "About": "Sobre", + "ReportBug": "Reportar um Erro", + "ChatOnDiscord": "Conversar no Discord", + "PostOnTheForum": "Postar no Fórum" }, "BackEditor": "Voltar ao Editor", "WarningUnsavedChanges": "Realmente quer sair da página? Há mudanças não salvas.", @@ -208,7 +211,7 @@ "AutocompleteHinterOnARIA": "Geração de dicas do Autocompleter ativada", "AutocompleteHinterOffARIA": "Geração de dicas do Autocompleter desativada", "LibraryVersion": "Versão do p5.js", - "LibraryVersionInfo": "Há uma [nova versão 2.0](https://github.com/processing/p5.js/releases/) do p5.js disponível! Ela se tornará padrão em agosto de 2026, então aproveite este tempo para testá-la e relatar bugs. Está interessado em transitar esboços de 1.x para 2.0? Confira os [recursos de compatibilidade e transição.](https://github.com/processing/p5.js-compatibility)", + "LibraryVersionInfo": "Há uma [nova versão 2.0](https://github.com/processing/p5.js/releases/) do p5.js disponível! Ela se tornará padrão em agosto de 2026, então aproveite este tempo para testá-la e relatar erros. Está interessado em migrar esboços de 1.x para 2.0? Confira os [recursos de compatibilidade e migração.](https://github.com/processing/p5.js-compatibility)", "CustomVersionTitle": "Gerenciando suas próprias bibliotecas? Legal!", "CustomVersionInfo": "A versão do p5.js está atualmente sendo gerenciada no código do index.html. Isso significa que não pode ser ajustada a partir desta aba.", "CustomVersionReset": "Se você gostaria de usar as bibliotecas padrão, pode substituir as tags de script no index.html pelo seguinte:", @@ -621,6 +624,7 @@ "Private": { "Description": "Apenas você pode ver este esboço.", "Label": "Privado" - } + }, + "Changed": "'{{projectName}}' agora é {{newVisibility}}..." } }