From 28a578ec85cf0fb68b5b2ad40bdcf117a43756dd Mon Sep 17 00:00:00 2001 From: claude Date: Mon, 1 Jun 2026 19:40:47 +0000 Subject: [PATCH] Fix untranslated UI keys (raw "snake_case" labels) + anonymous edit links MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The frontend bundles only the locale keys listed in frontend/extracted-translations.json (a custom webpack translations-loader filters en.json to that set, normally regenerated by i18next-scanner). Every key added by hand to en.json without also adding it here renders as its raw key — which is why "blank_quarto_project", "share_compiled_presentation", etc. showed up literally in the New-project menu and Share dialog. Add all introduced keys to extracted-translations.json: blank_/example_ {quarto,latex,typst}_project, share_compiled_presentation(_info), presentation_link_{members,private,public}, reset_link. Also enable anonymous read-AND-write share links (edit without an account) via OVERLEAF_ALLOW_ANONYMOUS_READ_AND_WRITE_SHARING; read-only links already worked through OVERLEAF_ALLOW_PUBLIC_ACCESS. Co-Authored-By: Claude Opus 4.8 --- .gitea/workflows/deploy-verso.yml | 5 +++++ services/web/frontend/extracted-translations.json | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/.gitea/workflows/deploy-verso.yml b/.gitea/workflows/deploy-verso.yml index c050610847..dc2f84c86d 100644 --- a/.gitea/workflows/deploy-verso.yml +++ b/.gitea/workflows/deploy-verso.yml @@ -282,6 +282,11 @@ jobs: # apply; private presentation links still require login. - name: OVERLEAF_ALLOW_PUBLIC_ACCESS value: "true" + # Also let anonymous visitors use read-AND-write share + # links (edit without an account). Read-only links only + # need OVERLEAF_ALLOW_PUBLIC_ACCESS above. + - name: OVERLEAF_ALLOW_ANONYMOUS_READ_AND_WRITE_SHARING + value: "true" --- apiVersion: v1 kind: Service diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index 157e8f4a70..adac57a432 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -218,7 +218,10 @@ "billing": "", "billing_period_sentence_case": "", "binary_history_error": "", + "blank_latex_project": "", "blank_project": "", + "blank_quarto_project": "", + "blank_typst_project": "", "blocked_filename": "", "blog": "", "bold": "", @@ -639,7 +642,10 @@ "errors": "", "essential_cookies_only": "", "event_type": "", + "example_latex_project": "", "example_project": "", + "example_quarto_project": "", + "example_typst_project": "", "existing_plan_active_until_term_end": "", "expand": "", "experiment_enabled_refresh_page": "", @@ -1462,6 +1468,9 @@ "premium_feature": "", "premium_plan_label": "", "preparing_for_export": "", + "presentation_link_members": "", + "presentation_link_private": "", + "presentation_link_public": "", "presentation_mode": "", "press_shift_space_for_suggestions": "", "press_space_to_open_the_ai_assistant": "", @@ -1642,6 +1651,7 @@ "resend_link_sso": "", "resend_managed_user_invite": "", "resending_confirmation_code": "", + "reset_link": "", "resize": "", "resolve_comment": "", "resolve_comment_error_message": "", @@ -1796,6 +1806,8 @@ "settings": "", "setup_another_account_under_a_personal_email_address": "", "share": "", + "share_compiled_presentation": "", + "share_compiled_presentation_info": "", "share_feedback": "", "share_project": "", "share_project_name": "",