From d730e2a5b1a2b7f0631e10dab9acba38223f0869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Platero?= Date: Mon, 9 Nov 2026 11:12:22 +0100 Subject: [PATCH 1/2] fix(whats-new): translate the fixes list and keep the pages of the version line --- .../contrib/picode/browser/picodeWhatsNew.ts | 11 ++--- .../picode/browser/picodeWhatsNewData.ts | 15 +++++++ .../picode/browser/picodeWhatsNewFixes.ts | 43 +++++++++++++++++++ .../browser/test/picodeWhatsNewData.test.ts | 13 +++++- src/vs/workbench/contrib/picode/l10n/cs.json | 4 ++ src/vs/workbench/contrib/picode/l10n/de.json | 4 ++ src/vs/workbench/contrib/picode/l10n/es.json | 4 ++ src/vs/workbench/contrib/picode/l10n/fr.json | 4 ++ src/vs/workbench/contrib/picode/l10n/it.json | 4 ++ src/vs/workbench/contrib/picode/l10n/ja.json | 4 ++ src/vs/workbench/contrib/picode/l10n/ko.json | 4 ++ src/vs/workbench/contrib/picode/l10n/pl.json | 4 ++ .../workbench/contrib/picode/l10n/pt-br.json | 4 ++ src/vs/workbench/contrib/picode/l10n/ru.json | 4 ++ .../workbench/contrib/picode/l10n/source.json | 4 ++ src/vs/workbench/contrib/picode/l10n/tr.json | 4 ++ .../workbench/contrib/picode/l10n/zh-cn.json | 4 ++ .../workbench/contrib/picode/l10n/zh-tw.json | 4 ++ 18 files changed, 132 insertions(+), 6 deletions(-) create mode 100644 src/vs/workbench/contrib/picode/browser/picodeWhatsNewFixes.ts diff --git a/src/vs/workbench/contrib/picode/browser/picodeWhatsNew.ts b/src/vs/workbench/contrib/picode/browser/picodeWhatsNew.ts index a4be044e..60c0e5da 100644 --- a/src/vs/workbench/contrib/picode/browser/picodeWhatsNew.ts +++ b/src/vs/workbench/contrib/picode/browser/picodeWhatsNew.ts @@ -20,7 +20,8 @@ import { IHostService } from '../../../services/host/browser/host.js'; import { IWorkbenchLayoutService } from '../../../services/layout/browser/layoutService.js'; import { IPaneCompositePartService } from '../../../services/panecomposite/browser/panecomposite.js'; import { ILifecycleService, LifecyclePhase } from '../../../services/lifecycle/common/lifecycle.js'; -import { composeWhatsNew, sameVersionLine, extractWhatChanged, highlightsSince, readHistory, shouldShowWhatsNew, whatsNewHistoryUrl, whatsNewSince, WhatsNewEntry } from './picodeWhatsNewData.js'; +import { composeWhatsNew, fixesMarkdown, inVersionLine, sameVersionLine, extractWhatChanged, highlightsSince, readHistory, shouldShowWhatsNew, whatsNewHistoryUrl, whatsNewSince, WhatsNewEntry } from './picodeWhatsNewData.js'; +import { whatsNewFixes } from './picodeWhatsNewFixes.js'; import { whatsNewHighlights } from './picodeWhatsNewHighlights.js'; import { IPicodeProEntitlement } from './account/picodeProEntitlement.js'; import { IWhatsNewWindowServices, showWhatsNewWindow } from './picodeWhatsNewWindow.js'; @@ -50,14 +51,16 @@ const RELEASES_API = 'https://api.github.com/repos/Tomas-Platero/PiCode/releases */ async function showWhatsNew(version: string, last: string, accessor: { readonly requestService: IRequestService; readonly productService: IProductService; readonly services: IWhatsNewWindowServices }, manual = false): Promise { const { requestService, productService, services } = accessor; - const changes = (async () => { + // Inside one line of versions (2.0.0 to 2.0.2) the window keeps the line's pages and lists every fix the line brought, in the person's language. + const fixesOnly = !manual && sameVersionLine(last, version); + const changes = fixesOnly ? Promise.resolve(fixesMarkdown(whatsNewFixes(), version)) : (async () => { const [notes, history] = await Promise.all([fetchNotes(requestService, version), fetchHistory(requestService, productService.quality)]); // Asked for by hand (Help menu), a version without its own summary shows the newest one the // channel has, so the window is never empty when something is on record. const current = notes ? { version, notes } : history.find(entry => entry.version === version) ?? (manual ? history[0] : undefined); return current ? composeWhatsNew(whatsNewSince(last, current, history)) : undefined; })(); - const highlights = highlightsSince(whatsNewHighlights(), last, version); + const highlights = fixesOnly ? inVersionLine(whatsNewHighlights(), version) : highlightsSince(whatsNewHighlights(), last, version); // With nothing of our own to tell, the window is only worth opening if the release has something. if (highlights.length === 0 && !(await changes)) { return false; @@ -66,8 +69,6 @@ async function showWhatsNew(version: string, last: string, accessor: { readonly const subtitle = last ? localize('picodeWhatsNew.subtitleSince', "New since {0}", last) : localize('picodeWhatsNew.subtitleAll', "Try each one right here."); - // Inside one line of versions (2.0.0 to 2.0.1) the list is the fixes that came since: the page says so. - const fixesOnly = !manual && sameVersionLine(last, version); showWhatsNewWindow({ version, subtitle, highlights, changes, fixesOnly, releaseUrl }, services); return true; } diff --git a/src/vs/workbench/contrib/picode/browser/picodeWhatsNewData.ts b/src/vs/workbench/contrib/picode/browser/picodeWhatsNewData.ts index 2c6a2c35..d779eef8 100644 --- a/src/vs/workbench/contrib/picode/browser/picodeWhatsNewData.ts +++ b/src/vs/workbench/contrib/picode/browser/picodeWhatsNewData.ts @@ -96,6 +96,21 @@ export function sameVersionLine(a: string, b: string): boolean { return left !== undefined && left === line(b); } +/** What belongs to the line of `current` (`2.0.x`) and came by it, newest first: the news and fixes a fix release keeps showing. */ +export function inVersionLine(all: readonly T[], current: string): T[] { + return all + .filter(item => sameVersionLine(item.since, current) && compareVersions(item.since, current) <= 0) + .sort((a, b) => compareVersions(b.since, a.since)); +} + +/** + * The fixes of the line up to `current`, as a Markdown list. Undefined when there are none. + */ +export function fixesMarkdown(fixes: readonly { readonly since: string; readonly text: string }[], current: string): string | undefined { + const list = inVersionLine(fixes, current).map(fix => `- ${fix.text}`); + return list.length > 0 ? list.join('\n') : undefined; +} + /** * Whether the window opens after this start. * diff --git a/src/vs/workbench/contrib/picode/browser/picodeWhatsNewFixes.ts b/src/vs/workbench/contrib/picode/browser/picodeWhatsNewFixes.ts new file mode 100644 index 00000000..6445ff3f --- /dev/null +++ b/src/vs/workbench/contrib/picode/browser/picodeWhatsNewFixes.ts @@ -0,0 +1,43 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) PiCode. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { localize } from '../../../../nls.js'; + +/** + * One thing a release fixed, written for the person using PiCode. The text is Markdown (a bold + * lead, then one or two sentences) and is translated with the rest of the editor, unlike the + * release page, which is only in English. + */ +export interface IWhatsNewFix { + /** The version that first carries the fix (`2.0.1`). */ + readonly since: string; + readonly text: string; +} + +/** + * What each release fixed, newest first. A fix release adds its entries here with `since` set to its + * own version; the "Bugs fixed" page shows all of the current line (2.0.x), so a person who skipped + * a fix release still sees it. + */ +export function whatsNewFixes(): readonly IWhatsNewFix[] { + return [ + { + since: '2.0.3', + text: localize('picodeWhatsNew.fix.language', "**What's New now speaks your language.** The list of fixes is translated, and the window keeps the news of this version line together with every fix since."), + }, + { + since: '2.0.2', + text: localize('picodeWhatsNew.fix.whatsNew', "**What's New opens after every update.** Updates that only fix things now show their fixes here, and the window no longer opens blank."), + }, + { + since: '2.0.2', + text: localize('picodeWhatsNew.fix.updateAccess', "**Updating no longer stops at \"Access denied\".** The memory engine that PiCode carries now closes right before the update replaces its folder."), + }, + { + since: '2.0.1', + text: localize('picodeWhatsNew.fix.jira', "**Connecting Jira no longer depends on your browser.** Some browsers never opened PiCode again after you agreed on Atlassian's page. Now a PiCode page shows which account gets the connection, you confirm it there, and the editor notices by itself."), + }, + ]; +} diff --git a/src/vs/workbench/contrib/picode/browser/test/picodeWhatsNewData.test.ts b/src/vs/workbench/contrib/picode/browser/test/picodeWhatsNewData.test.ts index f016f290..6a09e044 100644 --- a/src/vs/workbench/contrib/picode/browser/test/picodeWhatsNewData.test.ts +++ b/src/vs/workbench/contrib/picode/browser/test/picodeWhatsNewData.test.ts @@ -13,7 +13,7 @@ import assert from 'assert'; import { test } from 'node:test'; -import { composeWhatsNew, extractWhatChanged, highlightsSince, readHistory, sameVersionLine, shouldShowWhatsNew, whatsNewHistoryUrl, whatsNewSince } from '../picodeWhatsNewData.js'; +import { composeWhatsNew, extractWhatChanged, fixesMarkdown, highlightsSince, inVersionLine, readHistory, sameVersionLine, shouldShowWhatsNew, whatsNewHistoryUrl, whatsNewSince } from '../picodeWhatsNewData.js'; test('returns the grouped summary without its heading or the sections after it', () => { const body = ['Channel text', '', '## What changed', '', '### ✨ New', '', '- A thing', '', '## What\'s Changed', '', '* raw changelog'].join('\n'); @@ -112,3 +112,14 @@ test('asked for by hand, everything on record, newest first', () => { const all = [{ id: 'old', since: '1.0.0' }, { id: 'new', since: '1.0.9' }]; assert.deepStrictEqual(highlightsSince(all, '', '1.0.8').map(h => h.id), ['new', 'old']); }); + +test('a fix release keeps the pages of its line and drops those of other lines', () => { + const pages = [{ since: '2.0.0' }, { since: '1.0.0' }, { since: '2.1.0' }]; + assert.deepStrictEqual(inVersionLine(pages, '2.0.2'), [{ since: '2.0.0' }]); +}); + +test('the fixes of the whole line are listed, newest first, and nothing from later versions', () => { + const fixes = [{ since: '2.0.3', text: 'c' }, { since: '2.0.2', text: 'b' }, { since: '2.0.1', text: 'a' }, { since: '1.9.9', text: 'old' }]; + assert.strictEqual(fixesMarkdown(fixes, '2.0.2'), '- b\n- a'); + assert.strictEqual(fixesMarkdown(fixes, '2.2.0'), undefined); +}); diff --git a/src/vs/workbench/contrib/picode/l10n/cs.json b/src/vs/workbench/contrib/picode/l10n/cs.json index 5989ce28..44f09d08 100644 --- a/src/vs/workbench/contrib/picode/l10n/cs.json +++ b/src/vs/workbench/contrib/picode/l10n/cs.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Zobrazit novinky", "picodeWhatsNew.connect": "Připojit GitHub nebo Jira", "picodeWhatsNew.done": "Hotovo", + "picodeWhatsNew.fix.jira": "**Připojení k Jiře už nezávisí na prohlížeči.** Některé prohlížeče po vašem souhlasu na stránce Atlassian PiCode nikdy znovu neotevřely. Nyní stránka PiCode ukáže, ke kterému účtu se připojení provádí, potvrdíte ho tam a editor si toho všimne sám.", + "picodeWhatsNew.fix.language": "**Novinky nyní mluví vaším jazykem.** Seznam oprav je přeložen a okno uchovává novinky této řady verzí spolu se všemi opravami od té doby.", + "picodeWhatsNew.fix.updateAccess": "**Aktualizace se už nezastaví na „Přístup byl odepřen“.** Paměťový modul, který PiCode obsahuje, se zavře těsně předtím, než aktualizace nahradí jeho složku.", + "picodeWhatsNew.fix.whatsNew": "**Novinky se otevřou po každé aktualizaci.** Aktualizace, které jen opravují chyby, nyní zobrazují své opravy zde a okno se už neotevírá prázdné.", "picodeWhatsNew.full": "Úplné poznámky k verzi", "picodeWhatsNew.group.free": "Zdarma pro všechny", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/de.json b/src/vs/workbench/contrib/picode/l10n/de.json index 93b19e86..b8d8a121 100644 --- a/src/vs/workbench/contrib/picode/l10n/de.json +++ b/src/vs/workbench/contrib/picode/l10n/de.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Neuigkeiten anzeigen", "picodeWhatsNew.connect": "GitHub oder Jira verbinden", "picodeWhatsNew.done": "Fertig", + "picodeWhatsNew.fix.jira": "**Die Verbindung zu Jira hängt nicht mehr von deinem Browser ab.** Manche Browser haben PiCode nach der Zustimmung auf der Atlassian-Seite nie wieder geöffnet. Jetzt zeigt eine PiCode-Seite, mit welchem Konto die Verbindung entsteht, du bestätigst sie dort, und der Editor bemerkt es selbst.", + "picodeWhatsNew.fix.language": "**„Neuigkeiten“ spricht jetzt deine Sprache.** Die Liste der Korrekturen ist übersetzt, und das Fenster behält die Neuigkeiten dieser Versionslinie zusammen mit allen seitherigen Korrekturen.", + "picodeWhatsNew.fix.updateAccess": "**Das Aktualisieren bleibt nicht mehr bei „Zugriff verweigert“ hängen.** Die Speicher-Engine von PiCode wird jetzt direkt vor dem Austausch ihres Ordners durch das Update beendet.", + "picodeWhatsNew.fix.whatsNew": "**„Neuigkeiten“ öffnet sich nach jedem Update.** Updates, die nur Fehler beheben, zeigen ihre Korrekturen jetzt hier, und das Fenster erscheint nicht mehr leer.", "picodeWhatsNew.full": "Vollständige Versionshinweise", "picodeWhatsNew.group.free": "Kostenlos für alle", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/es.json b/src/vs/workbench/contrib/picode/l10n/es.json index a15b44d1..06770f57 100644 --- a/src/vs/workbench/contrib/picode/l10n/es.json +++ b/src/vs/workbench/contrib/picode/l10n/es.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Mostrar las novedades", "picodeWhatsNew.connect": "Conectar GitHub o Jira", "picodeWhatsNew.done": "Hecho", + "picodeWhatsNew.fix.jira": "**Conectar Jira ya no depende de tu navegador.** Algunos navegadores nunca volvían a abrir PiCode después de aceptar en la página de Atlassian. Ahora una página de PiCode te dice a qué cuenta se conecta, lo confirmas ahí y el editor se entera solo.", + "picodeWhatsNew.fix.language": "**Las novedades ya hablan tu idioma.** La lista de arreglos está traducida y la ventana conserva las novedades de esta línea de versiones junto con todos los arreglos desde entonces.", + "picodeWhatsNew.fix.updateAccess": "**Actualizar ya no se detiene en «Acceso denegado».** El motor de memoria que lleva PiCode se cierra justo antes de que la actualización reemplace su carpeta.", + "picodeWhatsNew.fix.whatsNew": "**Las novedades salen tras cada actualización.** Las actualizaciones que solo corrigen errores ahora muestran aquí sus arreglos, y la ventana ya no se abre en blanco.", "picodeWhatsNew.full": "Notas completas de la versión", "picodeWhatsNew.group.free": "Gratis para todos", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/fr.json b/src/vs/workbench/contrib/picode/l10n/fr.json index 15c8b469..04d67f74 100644 --- a/src/vs/workbench/contrib/picode/l10n/fr.json +++ b/src/vs/workbench/contrib/picode/l10n/fr.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Afficher les nouveautés", "picodeWhatsNew.connect": "Connecter GitHub ou Jira", "picodeWhatsNew.done": "Terminer", + "picodeWhatsNew.fix.jira": "**La connexion à Jira ne dépend plus de votre navigateur.** Certains navigateurs ne rouvraient jamais PiCode après votre accord sur la page d'Atlassian. Désormais, une page PiCode indique à quel compte la connexion est faite, vous la confirmez là, et l'éditeur s'en aperçoit tout seul.", + "picodeWhatsNew.fix.language": "**Les nouveautés parlent maintenant votre langue.** La liste des corrections est traduite, et la fenêtre conserve les nouveautés de cette série de versions avec toutes les corrections depuis.", + "picodeWhatsNew.fix.updateAccess": "**La mise à jour ne s'arrête plus sur « Accès refusé ».** Le moteur de mémoire livré avec PiCode se ferme juste avant que la mise à jour remplace son dossier.", + "picodeWhatsNew.fix.whatsNew": "**Les nouveautés s'affichent après chaque mise à jour.** Les mises à jour qui ne font que corriger des erreurs montrent désormais leurs corrections ici, et la fenêtre ne s'ouvre plus vide.", "picodeWhatsNew.full": "Notes de version complètes", "picodeWhatsNew.group.free": "Gratuit pour tous", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/it.json b/src/vs/workbench/contrib/picode/l10n/it.json index 50484ca5..6036df62 100644 --- a/src/vs/workbench/contrib/picode/l10n/it.json +++ b/src/vs/workbench/contrib/picode/l10n/it.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Mostra le novità", "picodeWhatsNew.connect": "Connetti GitHub o Jira", "picodeWhatsNew.done": "Fine", + "picodeWhatsNew.fix.jira": "**Collegare Jira non dipende più dal browser.** Alcuni browser non riaprivano mai PiCode dopo il tuo consenso sulla pagina di Atlassian. Ora una pagina di PiCode mostra a quale account viene collegata la connessione, la confermi lì e l'editor se ne accorge da solo.", + "picodeWhatsNew.fix.language": "**Le novità ora parlano la tua lingua.** L'elenco delle correzioni è tradotto e la finestra conserva le novità di questa linea di versioni insieme a tutte le correzioni successive.", + "picodeWhatsNew.fix.updateAccess": "**L'aggiornamento non si ferma più su «Accesso negato».** Il motore di memoria incluso in PiCode si chiude subito prima che l'aggiornamento sostituisca la sua cartella.", + "picodeWhatsNew.fix.whatsNew": "**Le novità si aprono dopo ogni aggiornamento.** Gli aggiornamenti che correggono soltanto errori ora mostrano qui le correzioni, e la finestra non si apre più vuota.", "picodeWhatsNew.full": "Note di rilascio complete", "picodeWhatsNew.group.free": "Gratis per tutti", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/ja.json b/src/vs/workbench/contrib/picode/l10n/ja.json index 952be6b9..573f329e 100644 --- a/src/vs/workbench/contrib/picode/l10n/ja.json +++ b/src/vs/workbench/contrib/picode/l10n/ja.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "新着情報を表示", "picodeWhatsNew.connect": "GitHub または Jira を接続", "picodeWhatsNew.done": "完了", + "picodeWhatsNew.fix.jira": "**Jira への接続がブラウザーに左右されなくなりました。** 一部のブラウザーでは、Atlassian のページで許可しても PiCode が再び開かないことがありました。今は PiCode のページに接続先のアカウントが表示され、そこで確認すると、エディターが自動で検知します。", + "picodeWhatsNew.fix.language": "**「新機能」があなたの言語で表示されます。** 修正の一覧が翻訳され、このバージョンラインの新機能と、それ以降のすべての修正がまとめて残ります。", + "picodeWhatsNew.fix.updateAccess": "**更新が「アクセスが拒否されました」で止まらなくなりました。** PiCode に同梱されているメモリエンジンは、更新がそのフォルダーを置き換える直前に終了します。", + "picodeWhatsNew.fix.whatsNew": "**更新のたびに「新機能」が開きます。** 不具合の修正だけの更新でも、修正内容がここに表示されるようになり、ウィンドウが空白で開くこともなくなりました。", "picodeWhatsNew.full": "リリースノート全文", "picodeWhatsNew.group.free": "すべての方に無料", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/ko.json b/src/vs/workbench/contrib/picode/l10n/ko.json index 52a447b0..38237bd5 100644 --- a/src/vs/workbench/contrib/picode/l10n/ko.json +++ b/src/vs/workbench/contrib/picode/l10n/ko.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "새 소식 보기", "picodeWhatsNew.connect": "GitHub 또는 Jira 연결", "picodeWhatsNew.done": "완료", + "picodeWhatsNew.fix.jira": "**Jira 연결이 더 이상 브라우저에 좌우되지 않습니다.** 일부 브라우저는 Atlassian 페이지에서 동의한 뒤 PiCode를 다시 열지 않았습니다. 이제 PiCode 페이지가 연결될 계정을 보여 주고, 거기서 확인하면 편집기가 스스로 알아챕니다.", + "picodeWhatsNew.fix.language": "**새 소식이 이제 사용자의 언어로 표시됩니다.** 수정 목록이 번역되었고, 창은 이 버전 계열의 새 기능과 그 이후의 모든 수정 사항을 함께 유지합니다.", + "picodeWhatsNew.fix.updateAccess": "**업데이트가 더 이상 '액세스 거부됨'에서 멈추지 않습니다.** PiCode에 포함된 메모리 엔진이 업데이트가 폴더를 교체하기 직전에 종료됩니다.", + "picodeWhatsNew.fix.whatsNew": "**업데이트할 때마다 새 소식이 열립니다.** 오류만 수정한 업데이트도 이제 수정 내용을 여기에 보여 주며, 창이 비어 있는 채로 열리지 않습니다.", "picodeWhatsNew.full": "전체 릴리스 노트", "picodeWhatsNew.group.free": "모두에게 무료", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/pl.json b/src/vs/workbench/contrib/picode/l10n/pl.json index 11e1cbcb..ce94a6bb 100644 --- a/src/vs/workbench/contrib/picode/l10n/pl.json +++ b/src/vs/workbench/contrib/picode/l10n/pl.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Pokaż nowości", "picodeWhatsNew.connect": "Połącz GitHub lub Jira", "picodeWhatsNew.done": "Gotowe", + "picodeWhatsNew.fix.jira": "**Łączenie z Jirą nie zależy już od przeglądarki.** Niektóre przeglądarki nigdy nie otwierały ponownie PiCode po wyrażeniu zgody na stronie Atlassian. Teraz strona PiCode pokazuje, z jakim kontem zostanie nawiązane połączenie, potwierdzasz to tam, a edytor sam to zauważa.", + "picodeWhatsNew.fix.language": "**Nowości mówią teraz w Twoim języku.** Lista poprawek jest przetłumaczona, a okno zachowuje nowości tej linii wersji razem ze wszystkimi poprawkami od tamtej pory.", + "picodeWhatsNew.fix.updateAccess": "**Aktualizacja nie zatrzymuje się już na «Odmowa dostępu».** Silnik pamięci dołączony do PiCode zamyka się tuż przed tym, jak aktualizacja zastąpi jego folder.", + "picodeWhatsNew.fix.whatsNew": "**Nowości otwierają się po każdej aktualizacji.** Aktualizacje, które tylko naprawiają błędy, pokazują teraz tutaj swoje poprawki, a okno nie otwiera się już puste.", "picodeWhatsNew.full": "Pełne informacje o wydaniu", "picodeWhatsNew.group.free": "Za darmo dla wszystkich", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/pt-br.json b/src/vs/workbench/contrib/picode/l10n/pt-br.json index de3f5802..a6f696bc 100644 --- a/src/vs/workbench/contrib/picode/l10n/pt-br.json +++ b/src/vs/workbench/contrib/picode/l10n/pt-br.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Mostrar novidades", "picodeWhatsNew.connect": "Conectar GitHub ou Jira", "picodeWhatsNew.done": "Concluir", + "picodeWhatsNew.fix.jira": "**Conectar o Jira não depende mais do seu navegador.** Alguns navegadores nunca voltavam a abrir o PiCode depois que você aceitava na página da Atlassian. Agora uma página do PiCode mostra a qual conta a conexão será feita, você confirma ali e o editor percebe sozinho.", + "picodeWhatsNew.fix.language": "**As novidades agora falam o seu idioma.** A lista de correções está traduzida e a janela mantém as novidades desta linha de versões junto com todas as correções desde então.", + "picodeWhatsNew.fix.updateAccess": "**Atualizar não para mais em «Acesso negado».** O mecanismo de memória que o PiCode traz é fechado logo antes de a atualização substituir sua pasta.", + "picodeWhatsNew.fix.whatsNew": "**As novidades aparecem após cada atualização.** Atualizações que só corrigem erros agora mostram aqui as correções, e a janela não abre mais em branco.", "picodeWhatsNew.full": "Notas de versão completas", "picodeWhatsNew.group.free": "Grátis para todos", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/ru.json b/src/vs/workbench/contrib/picode/l10n/ru.json index c827ed56..200da882 100644 --- a/src/vs/workbench/contrib/picode/l10n/ru.json +++ b/src/vs/workbench/contrib/picode/l10n/ru.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Показать «Что нового»", "picodeWhatsNew.connect": "Подключить GitHub или Jira", "picodeWhatsNew.done": "Готово", + "picodeWhatsNew.fix.jira": "**Подключение Jira больше не зависит от браузера.** Некоторые браузеры так и не открывали PiCode снова после вашего согласия на странице Atlassian. Теперь страница PiCode показывает, к какой учётной записи подключается соединение, вы подтверждаете его там, а редактор замечает это сам.", + "picodeWhatsNew.fix.language": "**Окно «Что нового» теперь говорит на вашем языке.** Список исправлений переведён, а окно сохраняет новинки этой линейки версий вместе со всеми исправлениями после неё.", + "picodeWhatsNew.fix.updateAccess": "**Обновление больше не останавливается на «Отказано в доступе».** Движок памяти, который поставляется с PiCode, закрывается прямо перед тем, как обновление заменит его папку.", + "picodeWhatsNew.fix.whatsNew": "**Окно «Что нового» открывается после каждого обновления.** Обновления, которые только исправляют ошибки, теперь показывают здесь свои исправления, а окно больше не открывается пустым.", "picodeWhatsNew.full": "Полные заметки о выпуске", "picodeWhatsNew.group.free": "Бесплатно для всех", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/source.json b/src/vs/workbench/contrib/picode/l10n/source.json index 49931d0b..ce8ecf37 100644 --- a/src/vs/workbench/contrib/picode/l10n/source.json +++ b/src/vs/workbench/contrib/picode/l10n/source.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Show What's New", "picodeWhatsNew.connect": "Connect GitHub or Jira", "picodeWhatsNew.done": "Done", + "picodeWhatsNew.fix.jira": "**Connecting Jira no longer depends on your browser.** Some browsers never opened PiCode again after you agreed on Atlassian's page. Now a PiCode page shows which account gets the connection, you confirm it there, and the editor notices by itself.", + "picodeWhatsNew.fix.language": "**What's New now speaks your language.** The list of fixes is translated, and the window keeps the news of this version line together with every fix since.", + "picodeWhatsNew.fix.updateAccess": "**Updating no longer stops at \"Access denied\".** The memory engine that PiCode carries now closes right before the update replaces its folder.", + "picodeWhatsNew.fix.whatsNew": "**What's New opens after every update.** Updates that only fix things now show their fixes here, and the window no longer opens blank.", "picodeWhatsNew.full": "Full release notes", "picodeWhatsNew.group.free": "Free for everyone", "picodeWhatsNew.group.pro": "With PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/tr.json b/src/vs/workbench/contrib/picode/l10n/tr.json index 83f207de..1f827240 100644 --- a/src/vs/workbench/contrib/picode/l10n/tr.json +++ b/src/vs/workbench/contrib/picode/l10n/tr.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "Yenilikleri göster", "picodeWhatsNew.connect": "GitHub veya Jira’yı bağla", "picodeWhatsNew.done": "Bitti", + "picodeWhatsNew.fix.jira": "**Jira'ya bağlanmak artık tarayıcınıza bağlı değil.** Bazı tarayıcılar, Atlassian sayfasında onay verdikten sonra PiCode'u bir daha açmıyordu. Artık bir PiCode sayfası bağlantının hangi hesaba yapılacağını gösteriyor, onu orada onaylıyorsunuz ve editör bunu kendisi fark ediyor.", + "picodeWhatsNew.fix.language": "**Yenilikler artık sizin dilinizi konuşuyor.** Düzeltme listesi çevrildi ve pencere, bu sürüm hattının yeniliklerini o zamandan beri gelen tüm düzeltmelerle birlikte koruyor.", + "picodeWhatsNew.fix.updateAccess": "**Güncelleme artık «Erişim reddedildi» hatasında takılmıyor.** PiCode'un içindeki bellek motoru, güncelleme klasörünü değiştirmeden hemen önce kapatılıyor.", + "picodeWhatsNew.fix.whatsNew": "**Yenilikler her güncellemeden sonra açılır.** Yalnızca hata düzelten güncellemeler artık düzeltmelerini burada gösteriyor ve pencere artık boş açılmıyor.", "picodeWhatsNew.full": "Sürüm notlarının tamamı", "picodeWhatsNew.group.free": "Herkese ücretsiz", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/zh-cn.json b/src/vs/workbench/contrib/picode/l10n/zh-cn.json index 8be10800..b3033556 100644 --- a/src/vs/workbench/contrib/picode/l10n/zh-cn.json +++ b/src/vs/workbench/contrib/picode/l10n/zh-cn.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "显示新增功能", "picodeWhatsNew.connect": "连接 GitHub 或 Jira", "picodeWhatsNew.done": "完成", + "picodeWhatsNew.fix.jira": "**连接 Jira 不再依赖你的浏览器。** 有些浏览器在你于 Atlassian 页面同意后,再也不会重新打开 PiCode。现在 PiCode 页面会显示连接到哪个账户,你在那里确认,编辑器会自动发现。", + "picodeWhatsNew.fix.language": "**“新功能”现在使用你的语言。** 修复列表已翻译,窗口会同时保留这个版本系列的新功能和此后的所有修复。", + "picodeWhatsNew.fix.updateAccess": "**更新不再卡在“访问被拒绝”。** PiCode 自带的内存引擎会在更新替换其文件夹之前关闭。", + "picodeWhatsNew.fix.whatsNew": "**每次更新后都会打开“新功能”。** 只修复问题的更新现在也会在这里显示修复内容,窗口也不会再以空白状态打开。", "picodeWhatsNew.full": "完整发行说明", "picodeWhatsNew.group.free": "所有人免费", "picodeWhatsNew.group.pro": "PiCode Pro", diff --git a/src/vs/workbench/contrib/picode/l10n/zh-tw.json b/src/vs/workbench/contrib/picode/l10n/zh-tw.json index 531b4a22..a4c84f59 100644 --- a/src/vs/workbench/contrib/picode/l10n/zh-tw.json +++ b/src/vs/workbench/contrib/picode/l10n/zh-tw.json @@ -642,6 +642,10 @@ "picodeWhatsNew.command": "顯示新功能", "picodeWhatsNew.connect": "連接 GitHub 或 Jira", "picodeWhatsNew.done": "完成", + "picodeWhatsNew.fix.jira": "**連線 Jira 不再依賴你的瀏覽器。** 有些瀏覽器在你於 Atlassian 頁面同意後,再也不會重新開啟 PiCode。現在 PiCode 頁面會顯示連線到哪個帳戶,你在那裡確認,編輯器會自動察覺。", + "picodeWhatsNew.fix.language": "**「新功能」現在使用你的語言。** 修正清單已翻譯,視窗會同時保留這個版本系列的新功能與此後的所有修正。", + "picodeWhatsNew.fix.updateAccess": "**更新不再卡在「存取被拒」。** PiCode 內建的記憶引擎會在更新取代其資料夾之前關閉。", + "picodeWhatsNew.fix.whatsNew": "**每次更新後都會開啟「新功能」。** 只修正問題的更新現在也會在這裡顯示修正內容,視窗也不會再以空白狀態開啟。", "picodeWhatsNew.full": "完整版本資訊", "picodeWhatsNew.group.free": "所有人免費", "picodeWhatsNew.group.pro": "PiCode Pro", From bbb6ce70b9b83b4cd171f9f3039541f62c525d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Platero?= Date: Mon, 9 Nov 2026 11:12:22 +0100 Subject: [PATCH 2/2] release: v2.0.3-experimental --- package.json | 2 +- product.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 770b39f6..28a7b3d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "code-oss-dev", - "version": "1.144.11", + "version": "1.144.12", "distro": "c842171bd42ca4aef20b0a186c94d99edd763842", "author": { "name": "PiCode" diff --git a/product.json b/product.json index c27e52eb..fc7c2e19 100644 --- a/product.json +++ b/product.json @@ -758,7 +758,7 @@ "default": false } }, - "version": "1.144.11", - "picodeVersion": "2.0.2-experimental", + "version": "1.144.12", + "picodeVersion": "2.0.3-experimental", "hotfixPublicKey": "MCowBQYDK2VwAyEAZes8irGrgqOvvCEWRBn3rwOG6qxSNp+zxWOX3HqXyjo=" }