diff options
| author | Adam Soltys <[email protected]> | 2026-10-10 08:39:24 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-10 08:39:24 -0700 |
| commit | 336fd6da53ace71af2c949e35edd9f0aac664df7 (patch) | |
| tree | e2212759231fd6f02a397e1816bd1c5646d28614 /src/i18n.js | |
| parent | 2338345063b0f1c816469401264b0cd0d7b7636b (diff) | |
| download | coinosv3-336fd6da53ace71af2c949e35edd9f0aac664df7.tar.gz coinosv3-336fd6da53ace71af2c949e35edd9f0aac664df7.zip | |
Translation: into the phone's language, and DeepL with your own key. isolabellart saw the Translate button but nothing became Italian: the target was the app's language, coinos has no Italian UI (so it ran in English), and the language guess didn't know Italian. Posts now translate into the reader's choice (Settings → Nostr → Translation, any of 31 languages), else the phone's language when the app has no UI for it, else the app's; the guess knows Italian, Dutch and Polish. And, as Jumble offers: a DeepL API key of your own, kept on the device and sent per request as x-deepl-key — the registrar passes it to DeepL (api-free for ":fx" keys; DeepL refuses browsers) and never stores or logs it; a refused key or used-up quota says so once. names: translateDeepl (prose only, links/tags kept, detected source back, 401/402/422 statuses), CORS allows the header. Deployed to cs names. tools/translate-italian-test.js, tools/deepl-translate.test.js.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Vps2H27rhbG9ZqseGfMrc3
Diffstat (limited to 'src/i18n.js')
| -rw-r--r-- | src/i18n.js | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/i18n.js b/src/i18n.js index 2d2c976..17f1107 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -445,6 +445,15 @@ const STR = { translateNothing: 'There are no words in this post to translate', translateFailed: 'Couldn’t translate this post', translateTitle: 'Translation', + translateTo: 'Translate posts into', + translateHelpDeepl: 'Posts that look like they’re in another language are translated by DeepL with your own key. The key stays on this device; coinos’s server passes each request on to DeepL (DeepL doesn’t accept requests from browsers) and never keeps it.', + deeplKeyPh: 'DeepL API key (optional)', + deeplSave: 'Use DeepL', + deeplSaved: 'Translations now come from DeepL', + deeplOn: 'Using your DeepL key {key}', + deeplRemove: 'Remove', + deeplBadKey: 'That DeepL key wasn’t accepted', + deeplQuota: 'Your DeepL key is out of quota for this month', translateAutoToggle: 'Translate posts into {lang} automatically', translateHelp: 'Posts that look like they’re in another language are shown in yours, with a way back to the original. Translations come from your browser when it can, otherwise from coinos’s own LibreTranslate server — posts are public, but the text passes through it.', postEditTitle: 'Edit post', |
