diff --git a/app/Http/Controllers/CompareController.php b/app/Http/Controllers/CompareController.php index f756a592..1f6d91f9 100644 --- a/app/Http/Controllers/CompareController.php +++ b/app/Http/Controllers/CompareController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Services\Releases\LinuxReleaseService; use App\Services\Releases\PlatformCatalog; use App\Support\Content\ContentRepository; use Illuminate\Support\Arr; @@ -29,13 +30,13 @@ */ class CompareController extends Controller { - public function index(ContentRepository $content, PlatformCatalog $platforms): Response + public function index(ContentRepository $content, PlatformCatalog $platforms, LinuxReleaseService $linux): Response { $locale = App::getLocale(); $data = $this->comparisons(); $products = $this->comparedProducts($data); $checkedAt = is_string($data['checkedAt'] ?? null) ? $data['checkedAt'] : null; - $tablepro = $this->tablepro($platforms); + $tablepro = $this->tablepro($platforms, $linux); return Inertia::render('Compare/Index', [ 'content' => $content->page('compare/index', $locale), @@ -48,7 +49,7 @@ public function index(ContentRepository $content, PlatformCatalog $platforms): R ]); } - public function show(ContentRepository $content, PlatformCatalog $platforms, string $slug): Response + public function show(ContentRepository $content, PlatformCatalog $platforms, LinuxReleaseService $linux, string $slug): Response { $locale = App::getLocale(); $data = $this->comparisons(); @@ -57,7 +58,7 @@ public function show(ContentRepository $content, PlatformCatalog $platforms, str abort_if($product === null, 404); - $tablepro = $this->tablepro($platforms); + $tablepro = $this->tablepro($platforms, $linux); return Inertia::render('Compare/Show', [ 'slug' => $slug, @@ -169,16 +170,21 @@ private function others(ContentRepository $content, array $products, string $cur /** * The TablePro facts the page states but should not bundle: the featured * engine names, and the Mac and iPhone and iPad releases the column - * describes (`platforms.json` → `release`). + * describes (`platforms.json` → `release`). Linux reports its newest + * release on its channel, and is null until platforms.json releases it. * - * @return array{featuredEngines: list, mac: array{version: string, date: string}|null, ios: array{version: string, date: string}|null} + * @return array{featuredEngines: list, mac: array{version: string, date: string}|null, ios: array{version: string, date: string}|null, linux: array{version: string|null, date: string|null, deviceNames: list, channel: string, distributions: list, via: string}>}|null} */ - private function tablepro(PlatformCatalog $platforms): array + private function tablepro(PlatformCatalog $platforms, LinuxReleaseService $linux): array { + $summary = $platforms->linuxSummary(); + $release = $summary !== null ? $linux->latest() : null; + return [ 'featuredEngines' => $this->featuredEngines(), 'mac' => $this->release($platforms, 'mac'), 'ios' => $this->release($platforms, 'ios'), + 'linux' => $summary === null ? null : ['version' => $release?->version, 'date' => $release?->publishedAt, ...$summary], ]; } diff --git a/app/Http/Controllers/DatabaseController.php b/app/Http/Controllers/DatabaseController.php index cd74543e..2fea4f97 100644 --- a/app/Http/Controllers/DatabaseController.php +++ b/app/Http/Controllers/DatabaseController.php @@ -129,6 +129,7 @@ private function summary(array $engine, bool $detailed = false): array 'inPicker' => ($engine['ios']['inPicker'] ?? false) === true, 'openable' => ($engine['ios']['openable'] ?? false) === true, ], + 'linux' => $this->linuxSupport($engine), 'limits' => array_map( fn(array $limit): array => ['id' => (string) $limit['id'], 'value' => is_int($limit['value'] ?? null) ? $limit['value'] : null], is_array($engine['limits'] ?? null) ? $engine['limits'] : [], @@ -342,13 +343,29 @@ private function product(): array * list and the closing band's requirement line. Null for an app that is * not released. * - * @return array{mac: array{deviceNames: list, requirements: array{systems: list, minVersion: string, displayVersion: string, releaseName: string|null}}|null, ios: array{deviceNames: list, requirements: array{systems: list, minVersion: string, displayVersion: string, releaseName: string|null}}|null} + * @return array{mac: array{deviceNames: list, requirements: array{systems: list, minVersion: string, displayVersion: string, releaseName: string|null}}|null, ios: array{deviceNames: list, requirements: array{systems: list, minVersion: string, displayVersion: string, releaseName: string|null}}|null, linux: array{deviceNames: list, channel: string, distributions: list, via: string}>}|null} */ private function platformSummaries(): array { return [ 'mac' => $this->platforms->summary('mac'), 'ios' => $this->platforms->summary('ios'), + 'linux' => $this->platforms->linuxSummary(), + ]; + } + + /** + * @param array $engine + * @return array{support: string, tested: list} + */ + private function linuxSupport(array $engine): array + { + $linux = is_array($engine['linux'] ?? null) ? $engine['linux'] : []; + $support = in_array($linux['support'] ?? null, ['tested', 'untested', 'blocked', 'none'], true) ? $linux['support'] : 'none'; + + return [ + 'support' => $support, + 'tested' => $support === 'tested' ? array_values(array_filter(is_array($linux['tested'] ?? null) ? $linux['tested'] : [], 'is_string')) : [], ]; } diff --git a/app/Http/Controllers/DownloadController.php b/app/Http/Controllers/DownloadController.php index a8423d41..f08e589a 100644 --- a/app/Http/Controllers/DownloadController.php +++ b/app/Http/Controllers/DownloadController.php @@ -80,22 +80,11 @@ private function ios(PlatformCatalog $platforms, SiteFacts $facts, string $local private function linux(PlatformCatalog $platforms, ?LinuxRelease $release, string $locale): array { $platform = $platforms->find('linux') ?? []; + $summary = $platforms->linuxSummary() ?? ['deviceNames' => [], 'channel' => $platforms->linuxChannel(), 'distributions' => []]; $packages = $platforms->linuxPackages(); $architectures = $this->strings($platform['architectures'] ?? []); $desktop = $platform['desktop'] ?? null; - - $distributions = []; - - foreach (is_array($platform['distributions'] ?? null) ? $platform['distributions'] : [] as $distribution) { - if (is_array($distribution) && is_string($distribution['id'] ?? null) && is_string($distribution['via'] ?? null)) { - $distributions[] = [ - 'id' => $distribution['id'], - 'name' => $this->string($distribution['name'] ?? null), - 'versions' => $this->strings($distribution['versions'] ?? []), - 'via' => $distribution['via'], - ]; - } - } + $distributions = $summary['distributions']; $methods = []; @@ -134,8 +123,8 @@ private function linux(PlatformCatalog $platforms, ?LinuxRelease $release, strin } return [ - 'deviceNames' => $this->strings($platform['deviceNames'] ?? []), - 'channel' => $platforms->linuxChannel(), + 'deviceNames' => $summary['deviceNames'], + 'channel' => $summary['channel'], 'distributions' => $distributions, 'desktop' => is_array($desktop) && is_string($desktop['name'] ?? null) && is_string($desktop['version'] ?? null) ? ['name' => $desktop['name'], 'version' => $desktop['version']] : null, 'architectures' => $architectures, diff --git a/app/Http/Controllers/FeatureController.php b/app/Http/Controllers/FeatureController.php index 212b88bc..cb1f7539 100644 --- a/app/Http/Controllers/FeatureController.php +++ b/app/Http/Controllers/FeatureController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Services\Releases\PlatformCatalog; use App\Support\Content\ContentRepository; use App\Support\Content\Slugs\FeatureSlugs; use App\Support\Features\FeatureFacts; @@ -38,7 +39,7 @@ public function index(ContentRepository $content, FeatureFacts $facts): Response ]); } - public function show(ContentRepository $content, FeatureFacts $facts, string $slug): Response + public function show(ContentRepository $content, FeatureFacts $facts, PlatformCatalog $platforms, string $slug): Response { $locale = App::getLocale(); $page = $content->page("features/{$slug}", $locale); @@ -49,6 +50,7 @@ public function show(ContentRepository $content, FeatureFacts $facts, string $sl 'content' => $page, 'labels' => $labels, 'facts' => $facts->for($page), + 'linux' => $platforms->linuxSummary(), ]); } diff --git a/app/Services/Releases/PlatformCatalog.php b/app/Services/Releases/PlatformCatalog.php index 3395453d..3f18c4d6 100644 --- a/app/Services/Releases/PlatformCatalog.php +++ b/app/Services/Releases/PlatformCatalog.php @@ -157,12 +157,6 @@ public function macFloorVersion(): ?string return is_string($floor) && $floor !== '' ? $floor : null; } - /** - * The facts the download page states about a released platform, or null - * when the platform is not released. - * - * @return array{deviceNames: list, requirements: array{systems: list, minVersion: string, displayVersion: string, releaseName: string|null}}|null - */ /** * The Linux packages destination: GitHub release file templates, the tag prefix and how to verify a file. * @@ -184,6 +178,36 @@ public function linuxChannel(): string return ($this->find('linux')['channel'] ?? null) === 'stable' ? 'stable' : 'beta'; } + /** + * @return array{deviceNames: list, channel: string, distributions: list, via: string}>}|null + */ + public function linuxSummary(): ?array + { + if (! $this->isReleased('linux')) { + return null; + } + + $platform = $this->find('linux') ?? []; + $distributions = []; + + foreach (is_array($platform['distributions'] ?? null) ? $platform['distributions'] : [] as $distribution) { + if (is_array($distribution) && is_string($distribution['id'] ?? null) && is_string($distribution['via'] ?? null)) { + $distributions[] = [ + 'id' => $distribution['id'], + 'name' => is_string($distribution['name'] ?? null) && $distribution['name'] !== '' ? $distribution['name'] : null, + 'versions' => array_values(array_filter(is_array($distribution['versions'] ?? null) ? $distribution['versions'] : [], 'is_string')), + 'via' => $distribution['via'], + ]; + } + } + + return [ + 'deviceNames' => array_values(array_filter(is_array($platform['deviceNames'] ?? null) ? $platform['deviceNames'] : [], 'is_string')), + 'channel' => $this->linuxChannel(), + 'distributions' => $distributions, + ]; + } + /** * Every file a Linux release carries for each format, series and architecture, in data order. * @@ -232,6 +256,9 @@ public function linuxDataRelease(): ?array ]; } + /** + * @return array{deviceNames: list, requirements: array{systems: list, minVersion: string, displayVersion: string, releaseName: string|null}}|null + */ public function summary(string $id): ?array { $platform = $this->find($id); diff --git a/docs/rebuild/design/positioning.md b/docs/rebuild/design/positioning.md index 61d1f3f5..ece5d250 100644 --- a/docs/rebuild/design/positioning.md +++ b/docs/rebuild/design/positioning.md @@ -145,7 +145,8 @@ promote the badge on an iPhone or iPad. The labels do not change, nothing auto-d - A file size. - A star count or "#1 trending". - "No account". -- Any Linux or Windows line. +- Any Windows line. Linux appears in the hero only as the visitor's own system's action, decided in the browser + (the Home redesign), never as a list of platforms. - "View source". Open source is in the line under both actions. GitHub is linked from the header, the footer and the homepage open-source section (sitemap §B.1, §B.3, §D). @@ -725,7 +726,7 @@ Structured data and OG cards take their text from those sources, so they need no | Class | About | Banned (EN) | Banned (VI) | Allowed form | |---|---|---|---|---| | Universals | TablePro | every database, all databases, any database, all platforms, every platform, cross-platform, one app everywhere, works everywhere | mọi cơ sở dữ liệu, tất cả cơ sở dữ liệu, mọi nền tảng, đa nền tảng, trên mọi thiết bị | "{featuredEngines} and more"; "each platform it supports". A link to the hub says "Supported databases" / "Cơ sở dữ liệu được hỗ trợ" | -| Platform futures | TablePro | coming soon, waitlist, release dates for unreleased platforms; any Windows or Linux availability (a reviewer check, because comparison pages name competitors' Windows and Linux builds) | sắp ra mắt, danh sách chờ | TablePro's Windows and Linux status appears only in the FAQ ("a prototype exists, nothing to install, no date") and on `/download#other-platforms` ("not available, no date", sitemap §A.1) | +| Platform futures | TablePro | coming soon, waitlist, release dates for unreleased platforms; any Windows availability (a reviewer check, because comparison pages name competitors' Windows builds) | sắp ra mắt, danh sách chờ | TablePro's Windows status appears only in the FAQ and on `/download` ("not available, no date"). Linux shipped as a beta on 2026-11-06: say "beta" beside it, name its engines from `engines.json`, and never claim a Mac-only feature or a paid feature for it (the feature pages' "Where it works" tables and `/databases#linux` hold what runs where) | | Brand defined by Mac | TablePro | "Mac database client", or "for Mac" as the identity (tested on identity keys by §13; reviewers check the rest); "TablePro Mobile"; Universal, Universal Binary; Mac App Store; Setapp; visionOS app | TablePro Mobile | "Download for Mac" on Mac actions; platform-specific page titles; "separate builds for Apple silicon and Intel". On `/ios`, "one app for iPhone and iPad" rather than "universal app" | | Unscoped free | Any | the whole app is free, all of it, no feature gating, no per-feature gate, no paywall, free forever, completely free, 100% free, free software as a price | hoàn toàn miễn phí, miễn phí hoàn toàn, miễn phí mãi mãi, miễn phí trọn đời | "free to use" next to "paid plans add optional features"; "free, with no in-app purchases" for iPhone | | Unlock framing | Any | unlock, unlocks | mở khóa | "adds" / "bổ sung" for paid features. iPhone App Lock is written "lock the app with Face ID" / "khóa ứng dụng bằng Face ID", as in the App Store listing | @@ -773,7 +774,7 @@ Structured data and OG cards take their text from those sources, so they need no hits ordinary prose. A reviewer treats an "anywhere" claim about TablePro as a Universal. - **Reviewers check these by hand, not the test:** - safety-overreach paraphrases, against the allowed form; - - TablePro's Windows and Linux availability; + - TablePro's Windows availability, and any Linux claim against the feature pages' "Where it works" tables and `/databases#linux`; - "fast" as a claim; - "for Mac" as the identity outside the identity keys; - counts that `Content/NoTypedCountsTest` cannot see. diff --git a/resources/data/content/de/about.json b/resources/data/content/de/about.json index 2886ba0e..68081472 100644 --- a/resources/data/content/de/about.json +++ b/resources/data/content/de/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Wer TablePro entwickelt", - "body": "{maker} entwickelt die Mac-App mit ihren Plugins, die iPhone- und iPad-App und diese Website.", + "body": "{maker} entwickelt die Mac-App mit ihren Plugins, die iPhone- und iPad-App, die Linux-App und diese Website.", "identity": "Derselbe Entwickler veröffentlicht TablePro im App Store und erhält Unterstützung über GitHub Sponsors.", "facts": { "maker": "Entwickler", @@ -32,7 +32,7 @@ }, "source": { "title": "Quellcode", - "body": "Beide Apps sind quelloffen unter der AGPLv3, einschließlich des Codes der Bezahlfunktionen, in einem Repository auf GitHub.", + "body": "Die Apps sind quelloffen unter der AGPLv3, einschließlich des Codes der Bezahlfunktionen, in einem Repository auf GitHub.", "license": "Der Lizenztext liegt im selben Repository." }, "contact": { diff --git a/resources/data/content/de/black-friday.json b/resources/data/content/de/black-friday.json index efad10f9..26bce6cd 100644 --- a/resources/data/content/de/black-friday.json +++ b/resources/data/content/de/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro einmalig", "unit": "einmalige Zahlung", - "detail": "Kein Ablaufdatum. {activations} Macs." + "detail": "Kein Ablaufdatum. {activations} Computer, Mac oder Linux." }, "yearly": { "name": "Pro jährlich", "unit": "im ersten Jahr", - "detail": "Danach {yearlyList} pro Jahr. {activations} Macs." + "detail": "Danach {yearlyList} pro Jahr. {activations} Computer, Mac oder Linux." }, "buy": "Für {price} kaufen", "soon": "Ab dem {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "Was Pro ergänzt", - "lead": "TablePro ist kostenlos, auch bei der Arbeit. Pro ergänzt diese Funktionen auf {activations} Macs.", + "lead": "TablePro ist kostenlos, auch bei der Arbeit. Pro ergänzt die Mac-App um diese Funktionen.", "more": "Außerdem in Pro", "link": "Mehr zu {feature}" }, diff --git a/resources/data/content/de/compare/beekeeper-studio.json b/resources/data/content/de/compare/beekeeper-studio.json index cf67644b..089efaaf 100644 --- a/resources/data/content/de/compare/beekeeper-studio.json +++ b/resources/data/content/de/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "Eine native App und eine separate kostenlose App für iPhone und iPad." ], "competitor": [ - "Derselbe Client auf Windows, macOS und Linux.", + "Unterstützung für Windows, mit denselben Funktionen auf macOS und Linux.", "Verbindungen zu Firebird, SQL Anywhere oder GreengageDB.", "Cloud-Arbeitsbereiche zum Teilen von Verbindungen und Abfragen, ab {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro ist eine in Swift geschriebene Mac-App mit nativen Datenbanktreibern. Beekeeper Studio basiert auf {technology}. Beide bieten separate Builds für Apple silicon und Intel-Macs.", + "text": "Die Mac-App von TablePro ist in Swift geschrieben, mit nativen Datenbanktreibern. Beekeeper Studio basiert auf {technology}. Beide bieten separate Builds für Apple silicon und Intel-Macs.", "cite": [ "technology", "mac" diff --git a/resources/data/content/de/compare/datagrip.json b/resources/data/content/de/compare/datagrip.json index 35ff5472..efb5026c 100644 --- a/resources/data/content/de/compare/datagrip.json +++ b/resources/data/content/de/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Codeprüfungen und Versionskontrolle neben Abfragen.", "Eine vollständige IDE, kostenlos für nichtkommerzielle Nutzung.", - "Windows oder Linux oder JDBC-Engines wie Firebird, Informix und Databricks." + "Windows oder JDBC-Engines wie Firebird, Informix und Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro ist eine in Swift geschriebene Mac-App mit nativen Datenbanktreibern. DataGrip basiert auf {technology}.", + "text": "Die Mac-App von TablePro ist in Swift geschrieben, mit nativen Datenbanktreibern. DataGrip basiert auf {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/de/compare/dbeaver.json b/resources/data/content/de/compare/dbeaver.json index a98e2974..fab09501 100644 --- a/resources/data/content/de/compare/dbeaver.json +++ b/resources/data/content/de/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver: Funktionen und Editionen", - "description": "DBeaver nutzt Java und JDBC auf Windows, macOS und Linux. TablePro ist nativ auf Mac, iPhone und iPad. Datenbanken, KI, MCP und Preise vergleichen." + "description": "DBeaver nutzt Java und JDBC auf Windows, macOS und Linux. TablePro ist nativ auf Mac, iPhone, iPad und Linux. Datenbanken, KI, MCP und Preise vergleichen." }, "og": { "kicker": "Vergleichen", @@ -18,7 +18,7 @@ "Kostenloses MCP und KI-Chat mit dem Anbieter deiner Wahl." ], "competitor": [ - "Unterstützung für Windows oder Linux.", + "Unterstützung für Windows.", "JDBC-Engines über TablePros unterstützte Treiber hinaus.", "Kostenpflichtige Werkzeuge wie ein visueller Abfrageeditor, bearbeitbare ER-Diagramme und geplante Aufgaben." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro ist eine in Swift geschriebene Mac-App mit nativen Datenbanktreibern. DBeaver basiert auf Java, und sein Download enthält eine Java-Laufzeitumgebung.", + "text": "Die Mac-App von TablePro ist in Swift geschrieben, mit nativen Datenbanktreibern. DBeaver basiert auf Java, und sein Download enthält eine Java-Laufzeitumgebung.", "cite": [ "technology" ], diff --git a/resources/data/content/de/compare/dbgate.json b/resources/data/content/de/compare/dbgate.json index dbd60b8f..8c46a1bd 100644 --- a/resources/data/content/de/compare/dbgate.json +++ b/resources/data/content/de/compare/dbgate.json @@ -18,7 +18,7 @@ "Kostenlose Backups mit den Dump-Werkzeugen unterstützter Engines." ], "competitor": [ - "Ein Client für Windows, Linux oder einen Webserver.", + "Ein Client für Windows oder einen Webserver.", "Verbindungen zu Firebird, Azure Cosmos DB oder Firestore.", "Ein visueller Abfrageeditor in {cells.queryDesigner.edition} oder DbGate-Cloud-Synchronisierung." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro ist eine Mac-App in Swift mit nativen Datenbanktreibern. DbGate basiert auf {technology}. Beide bieten Builds für Macs mit Apple silicon und Intel.", + "text": "Die Mac-App von TablePro ist in Swift geschrieben, mit nativen Datenbanktreibern. DbGate basiert auf {technology}. Beide bieten Builds für Macs mit Apple silicon und Intel.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "Gibt es eine Webversion von TablePro?", - "answer": "Nein. TablePro läuft auf deinem Mac, iPhone und iPad. Braucht dein Team einen Datenbankclient im Browser, läuft DbGate auch als Web-App.", + "answer": "Nein. TablePro ist eine App für Mac, iPhone, iPad und Linux. Braucht dein Team einen Datenbankclient im Browser, läuft DbGate auch als Web-App.", "href": null }, { diff --git a/resources/data/content/de/compare/heidisql.json b/resources/data/content/de/compare/heidisql.json index fb617631..bcaf0d6f 100644 --- a/resources/data/content/de/compare/heidisql.json +++ b/resources/data/content/de/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL: Datenbanken, Plattformen und Preise", - "description": "HeidiSQL ist gratis auf Windows, Linux und seit 2026 Apple-silicon-Macs. TablePro ist nativ auf Mac, iPhone und iPad. Datenbanken und Preise vergleichen." + "description": "HeidiSQL ist gratis auf Windows, Linux und seit 2026 Apple-silicon-Macs. TablePro ist nativ auf Mac, iPhone, iPad und Linux. Datenbanken und Preise vergleichen." }, "og": { "kicker": "Vergleichen", @@ -18,7 +18,7 @@ "Kostenloser KI-Chat und MCP plus eine separate App für iPhone und iPad." ], "competitor": [ - "Derselbe kostenlose Client auf Windows, Linux und Macs mit Apple silicon.", + "Derselbe kostenlose Client auf Windows und Macs mit Apple silicon.", "Verbindungen zu Firebird, Interbase oder ProxySQL.", "Alle Funktionen kostenlos, ohne kostenpflichtige Tarife." ] diff --git a/resources/data/content/de/compare/index.json b/resources/data/content/de/compare/index.json index 56529029..4a0eb863 100644 --- a/resources/data/content/de/compare/index.json +++ b/resources/data/content/de/compare/index.json @@ -16,7 +16,7 @@ "lead": "Beginne mit den Werkzeugen, die du brauchst.", "tablepro": "TablePro ist ein nativer Open-Source-Client für mehrere Datenbanktypen. KI-Chat und MCP sind in der Mac-App kostenlos. Verbindungen lassen sich aus {apps} importieren.", "items": { - "tableplus": "Windows oder Linux sowie Vertica und Greenplum.", + "tableplus": "Windows sowie Vertica und Greenplum.", "dbeaver": "Ein plattformübergreifender Client mit JDBC-Treibern.", "datagrip": "Eine Datenbank-IDE mit Codeprüfungen und Versionskontrolle. Kostenlos für nichtkommerzielle Nutzung.", "navicat": "Datenmodellierung und gemeinsame Projekte über Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "Ein kostenloser Client aus dem Mac App Store für MySQL und MariaDB.", "sequel-pro": "Du wechselst von Sequel Pro? Die letzte Version war {status.version} vom {status.date}. Vergleiche Sequel Ace und TablePro.", "postico": "Ein spezialisierter PostgreSQL-Client mit Einmalkauf-Lizenz.", - "heidisql": "Ein kostenloser Client für Windows, Linux und Macs mit Apple silicon.", + "heidisql": "Ein kostenloser Client für Windows und Macs mit Apple silicon.", "phpmyadmin": "MySQL oder MariaDB im Browser, auch beim Hosting mit cPanel.", "mysql-workbench": "Oracles MySQL-Werkzeug mit SQL-Notebooks und MySQL Enterprise Backup.", "pgadmin": "PostgreSQL-Verwaltung mit Debugger, pgAgent-Aufgaben und gemeinsamem Serverbetrieb.", @@ -218,6 +218,7 @@ "retrieved": "geprüft am {date}", "latest": "Letzte {name}-Version an diesem Datum: {version}, veröffentlicht am {date}.", "tablepro": "Die TablePro-Spalte beschreibt TablePro {macVersion} für Mac und {iosVersion} für iPhone und iPad.", + "tableproLinux": "Die TablePro-Spalte beschreibt TablePro {macVersion} für Mac, {iosVersion} für iPhone und iPad und {linuxVersion} für Linux.", "trademarks": "TablePro ist ein unabhängiges Open-Source-Projekt. Es steht in keiner Verbindung zu den Herstellern der hier verglichenen Produkte und wird von ihnen nicht unterstützt. Produktnamen sind Marken ihrer jeweiligen Inhaber." }, "cta": { diff --git a/resources/data/content/de/compare/mysql-workbench.json b/resources/data/content/de/compare/mysql-workbench.json index 8d8a2fad..8ee80747 100644 --- a/resources/data/content/de/compare/mysql-workbench.json +++ b/resources/data/content/de/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench: Funktionen und Kompatibilität", - "description": "MySQL Workbench ist Oracles kostenloses MySQL-Tool, neu aufgebaut auf MySQL Shell. TablePro deckt MySQL und weitere Engines auf Mac, iPhone und iPad ab." + "description": "MySQL Workbench ist Oracles kostenloses MySQL-Tool, neu aufgebaut auf MySQL Shell. TablePro deckt MySQL und weitere Engines auf Mac, iPhone, iPad und Linux ab." }, "og": { "kicker": "Vergleichen", diff --git a/resources/data/content/de/compare/navicat.json b/resources/data/content/de/compare/navicat.json index a0a0bd55..fb3f9a73 100644 --- a/resources/data/content/de/compare/navicat.json +++ b/resources/data/content/de/compare/navicat.json @@ -18,7 +18,7 @@ "Verbindungen zu ClickHouse, DuckDB oder Cassandra." ], "competitor": [ - "Unterstützung für Windows oder Linux.", + "Unterstützung für Windows.", "Datenmodellierung in Premium Enterprise.", "Navicat Cloud oder Navicat On-Prem Server zum Teilen von Verbindungen, Abfragen und Modellen." ] diff --git a/resources/data/content/de/compare/pgadmin.json b/resources/data/content/de/compare/pgadmin.json index f08eee21..043e355b 100644 --- a/resources/data/content/de/compare/pgadmin.json +++ b/resources/data/content/de/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "PostgreSQL-Verwaltung mit PL/pgSQL-Debugger und pgAgent-Aufgaben.", "Mitgelieferte Werkzeuge psql, pg_dump und pg_restore.", - "Gemeinsamer Betrieb auf einem Webserver oder Unterstützung für Windows und Linux." + "Gemeinsamer Betrieb auf einem Webserver oder Unterstützung für Windows." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro ist eine Mac-App in Swift mit nativen Datenbanktreibern. pgAdmin ist eine Python-Webanwendung, die in einer {technology}-Desktop-Laufzeit oder auf einem Webserver läuft.", + "text": "Die Mac-App von TablePro ist in Swift geschrieben, mit nativen Datenbanktreibern. pgAdmin ist eine Python-Webanwendung, die in einer {technology}-Desktop-Laufzeit oder auf einem Webserver läuft.", "cite": [ "technology" ], diff --git a/resources/data/content/de/compare/phpmyadmin.json b/resources/data/content/de/compare/phpmyadmin.json index c52385ca..8b6a8bf9 100644 --- a/resources/data/content/de/compare/phpmyadmin.json +++ b/resources/data/content/de/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "Es ist eine App für deinen Mac, dein iPhone und iPad. Du kannst sie nicht im Browser eines beliebigen Computers öffnen.", + "text": "Es ist eine App für Mac, iPhone, iPad und Linux. Du kannst sie nicht im Browser eines beliebigen Computers öffnen.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/de/compare/tableplus.json b/resources/data/content/de/compare/tableplus.json index 38b49da3..04f9d9ea 100644 --- a/resources/data/content/de/compare/tableplus.json +++ b/resources/data/content/de/compare/tableplus.json @@ -18,7 +18,7 @@ "Eine kostenlose App für iPhone und iPad ohne In-App-Käufe." ], "competitor": [ - "Unterstützung für Windows oder Linux.", + "Unterstützung für Windows.", "Verbindungen zu Vertica oder Greenplum.", "Ein Client, der über Setapp erhältlich ist." ] diff --git a/resources/data/content/de/databases/index.json b/resources/data/content/de/databases/index.json index c249cd6c..47f277e8 100644 --- a/resources/data/content/de/databases/index.json +++ b/resources/data/content/de/databases/index.json @@ -84,6 +84,13 @@ "others": "Verbindungen zu anderen Engines werden mit iPhone und iPad synchronisiert und erscheinen in der Liste, lassen sich dort aber nicht öffnen.", "link": "TablePro für iPhone und iPad" }, + "linux": { + "title": "Unter Linux", + "tested": "Die Linux-App ist eine Beta und mit {engines} getestet.", + "untested": "Verbindungen zu {engines} sind unter Linux nicht getestet.", + "others": "Andere Engines lassen sich dort nicht öffnen.", + "link": "Unter Linux installieren" + }, "license": { "title": "In Free enthalten", "body": "Jede unterstützte Datenbankverbindung ist in Free enthalten. Pro und Team ergänzen optionale Funktionen in der Mac-App.", @@ -131,6 +138,12 @@ "synced": "Lässt sich nach Synchronisierung vom Mac öffnen", "none": "Lässt sich nicht öffnen" }, + "linux": { + "tested": "Getestet", + "versions": "Getestet: {versions}", + "untested": "Nicht getestet", + "none": "Nicht verfügbar" + }, "availability": { "devices": "Funktioniert auf {devices}", "bundled": "Treiber in der Mac-App enthalten", @@ -184,6 +197,7 @@ "title": "TablePro herunterladen", "mac": "Lade die Mac-App kostenlos herunter. Pro und Team ergänzen optionale Funktionen.", "ios": "Die App für iPhone und iPad ist im App Store erhältlich.", + "linux": "Die Linux-App ist eine kostenlose Beta.", "pricing": "Preise ansehen" } } diff --git a/resources/data/content/de/download.json b/resources/data/content/de/download.json index d33ddf66..86b4aba6 100644 --- a/resources/data/content/de/download.json +++ b/resources/data/content/de/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro herunterladen", - "description": "Lade TablePro für Macs mit Apple silicon und Intel herunter oder installiere es mit Homebrew. Die App für iPhone und iPad gibt es im App Store." + "description": "Lade TablePro für den Mac herunter oder nutze Homebrew. Die Linux-Beta gibt es für Ubuntu, Fedora oder per Flatpak, die iPhone- und iPad-App im App Store." }, "og": { "kicker": "Download", diff --git a/resources/data/content/de/faq.json b/resources/data/content/de/faq.json index 724cb77e..ddf202bf 100644 --- a/resources/data/content/de/faq.json +++ b/resources/data/content/de/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "Was ist TablePro?", "answer": [ - "Ein nativer Open-Source-Datenbankclient. Auf dem Mac kannst du {featuredEngines} und weitere Engines abfragen und bearbeiten sowie mit Schemas arbeiten. Die App für iPhone und iPad bietet einen kleineren Umfang an Datenbankwerkzeugen.", + "Ein nativer Open-Source-Datenbankclient. Auf dem Mac kannst du {featuredEngines} und weitere Engines abfragen und bearbeiten sowie mit Schemas arbeiten. Die App für iPhone und iPad und die Linux-Beta bieten einen kleineren Umfang an Datenbankwerkzeugen.", "Alle Funktionen ansehen." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "Was bedeutet hier „nativ“?", "answer": [ - "TablePro nutzt native Oberflächen und Datenbanktreiber, ohne Electron oder JDBC. Die aktuellen Apps sind in Swift entwickelt: AppKit und SwiftUI auf dem Mac sowie Gerätefunktionen wie Face ID und Shortcuts auf iPhone und iPad." + "TablePro nutzt native Oberflächen und Datenbanktreiber, ohne Electron oder JDBC. Die Apps für Mac, iPhone und iPad sind in Swift entwickelt: AppKit und SwiftUI auf dem Mac sowie Gerätefunktionen wie Face ID und Shortcuts auf iPhone und iPad. Die Linux-App nutzt Rust, GTK 4 und libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "Ist TablePro kostenlos?", "answer": [ "Ja. Die Mac-App hat keinen Testzeitraum und kein Zeitlimit. Alle unterstützten Engines, KI, MCP und Safe Mode sind kostenlos. Pro und Team ergänzen die Funktionen auf der Preisseite.", - "Die App für iPhone und iPad ist kostenlos, ohne Lizenz oder In-App-Käufe." + "Die App für iPhone und iPad ist kostenlos, ohne Lizenz oder In-App-Käufe. Die Linux-App ist kostenlos nutzbar, und die Bezahlfunktionen gibt es vorerst nur auf dem Mac." ] }, { "id": "open-source", "question": "Ist TablePro quelloffen?", "answer": [ - "Ja. Beide Apps, einschließlich des Codes kostenpflichtiger Funktionen, stehen unter der AGPLv3 in einem GitHub-Repository. Auch selbst erstellte Builds prüfen Lizenzen für kostenpflichtige Funktionen." + "Ja. Die Apps, einschließlich des Codes kostenpflichtiger Funktionen, stehen unter der AGPLv3 in einem GitHub-Repository. Auch selbst erstellte Builds prüfen Lizenzen für kostenpflichtige Funktionen." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Gibt es eine Version für Windows oder Linux?", "answer": [ - "Nein. Es gibt keine Windows-Version. Ein Linux-Prototyp existiert, aber es gibt nichts zum Installieren und keinen Erscheinungstermin." + "Für Linux ja: TablePro für Linux ist als Beta verfügbar, mit eigenen Engines und Funktionen. Windows ist nicht verfügbar, und es gibt keinen Erscheinungstermin." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "Wo werden meine Passwörter gespeichert?", "answer": [ - "Gespeicherte Passwörter bleiben im Schlüsselbund. Auf dem Mac kannst du sie stattdessen aus Dateien, Umgebungsvariablen, Shell-Befehlen, 1Password, Vault oder AWS Secrets Manager beziehen.", + "Gespeicherte Passwörter bleiben im Schlüsselbund, unter Linux in einem Secret-Service-Schlüsselbund wie GNOME Keyring oder KWallet. Auf dem Mac kannst du sie stattdessen aus Dateien, Umgebungsvariablen, Shell-Befehlen, 1Password, Vault oder AWS Secrets Manager beziehen.", "Passwortsynchronisierung wird separat aktiviert: mit Passwords auf dem Mac oder Sync Passwords auf iPhone und iPad. Sie nutzt den iCloud-Schlüsselbund." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "Wie viele Macs deckt eine Lizenz ab?", + "question": "Wie viele Computer deckt eine Lizenz ab?", "answer": [ - "Pro gilt für eine Person auf bis zu {deviceLimit} Macs. Team hat mindestens {teamMinSeats} Arbeitsplätze, und jeder Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Macs. Das Limit gilt pro Konto, über Pro und Team hinweg. iPhone und iPad benötigen keinen Arbeitsplatz.", - "Um deine Lizenz auf einem anderen Mac zu nutzen, entferne einen unter Settings > Account oder auf der Geräte-Seite in deinem Konto. Bis dahin behält der andere Mac die kostenlosen Funktionen." + "Pro gilt für eine Person auf bis zu {deviceLimit} Computern, Mac oder Linux. Team hat mindestens {teamMinSeats} Arbeitsplätze, und jeder Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Computern. Das Limit gilt pro Konto, über Pro und Team hinweg. Die Bezahlfunktionen gibt es vorerst nur auf dem Mac, aber ein Linux-Computer, auf dem du dich anmeldest, zählt trotzdem mit. iPhone und iPad benötigen keinen Arbeitsplatz.", + "Um deine Lizenz auf einem anderen Computer zu nutzen, entferne einen auf der Geräte-Seite in deinem Konto oder unter Settings > Account auf dem Mac. Bis dahin behält der andere Computer die kostenlosen Funktionen." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "Was senden die Apps an TablePro?", "answer": [ - "Die Mac-App teilt standardmäßig Nutzungsdaten; deaktiviere das unter Settings > General > Privacy. Ab der Version, die TablePro-Konten einführt, gehen sie direkt an PostHog: App-Ereignisse mit dem Modell deines Macs, App- und macOS-Version und Datenbanktypen, vor der Anmeldung unter einer zufälligen ID und danach unter deiner Konto-ID. Versionen vor den TablePro-Konten senden stattdessen über unseren Server einen täglichen Bericht mit einer gehashten Geräte-ID. Beides enthält nie Hostnamen, Benutzernamen, Passwörter, Abfragen oder Zeilen.", + "Die Mac-App teilt standardmäßig Nutzungsdaten; deaktiviere das unter Settings > General > Privacy. Ab der Version, die TablePro-Konten einführt, gehen sie direkt an PostHog: App-Ereignisse mit dem Modell deines Macs, App- und macOS-Version und Datenbanktypen, vor der Anmeldung unter einer zufälligen ID und danach unter deiner Konto-ID. Versionen vor den TablePro-Konten senden stattdessen über unseren Server einen täglichen Bericht mit einer gehashten Geräte-ID. Beides enthält nie Hostnamen, Benutzernamen, Passwörter, Abfragen oder Zeilen. Die Linux-App teilt ebenfalls standardmäßig Nutzungsdaten, ohne diese Angaben; du schaltest das in ihren Einstellungen ab.", "Sobald du dich anmeldest, registriert die Mac-App deinen Mac mit Geräte-ID, Name sowie App- und macOS-Version in deinem Konto und erneuert deinen Tarif einmal täglich. Versionen vor den TablePro-Konten senden den Lizenzschlüssel mit diesen Angaben alle {revalidateDays} Tage. Berichte auf iPhone und iPad sind optional. Team Library erhält veröffentlichte Einstellungen und gespeichertes SQL. Siehe die Datenschutzerklärung, einschließlich IP-Protokollierung." ] }, diff --git a/resources/data/content/de/features/ai-mcp.json b/resources/data/content/de/features/ai-mcp.json index b7bf72f7..9d66b8c8 100644 --- a/resources/data/content/de/features/ai-mcp.json +++ b/resources/data/content/de/features/ai-mcp.json @@ -117,7 +117,7 @@ "id": "iphone", "title": "Verfügbarkeit", "paragraphs": [ - "KI, MCP und die Automatisierungswerkzeuge dieser Seite sind derzeit nur auf dem Mac verfügbar." + "Die App für iPhone und iPad hat keines der KI-, MCP- und Automatisierungswerkzeuge dieser Seite." ], "links": [ { diff --git a/resources/data/content/de/features/connections.json b/resources/data/content/de/features/connections.json index e4a1eebc..f4e40ea3 100644 --- a/resources/data/content/de/features/connections.json +++ b/resources/data/content/de/features/connections.json @@ -175,7 +175,7 @@ "title": "Auf iPhone und iPad", "paragraphs": [ "Die App für iPhone und iPad hat ein eigenes Verbindungsformular für {iosPicker} mit Gruppen, einem Tag pro Verbindung und Favoriten. SSH-Tunnel melden sich mit einem Passwort oder einem privaten Schlüssel aus einer Datei oder aus eingefügtem Text an und prüfen den Hostschlüssel; SSH-Agenten und Jump-Hosts werden auf iPhone und iPad nicht unterstützt. TLS kann das Serverzertifikat prüfen, außer bei SQL Server, wo es ohne Prüfung verschlüsselt. Zertifikate bleiben auf dem Gerät und werden nie synchronisiert.", - "Passwörter und eingefügte Schlüssel werden im Schlüsselbund gespeichert. Vom Mac synchronisierte SQL-Server-Verbindungen können sich mit Microsoft Entra ID anmelden. Import aus anderen Apps, AWS IAM, Kerberos und Google-Anmeldung, Proxys und Tunnelbefehle, Passwortquellen und Zeitlimits gibt es nur in der Mac-App." + "Passwörter und eingefügte Schlüssel werden im Schlüsselbund gespeichert. Vom Mac synchronisierte SQL-Server-Verbindungen können sich mit Microsoft Entra ID anmelden. Import aus anderen Apps, AWS IAM, Kerberos und Google-Anmeldung, Proxys und Tunnelbefehle, Passwortquellen und Zeitlimits gibt es nicht in der App für iPhone und iPad." ], "links": [ { diff --git a/resources/data/content/de/features/data-editing.json b/resources/data/content/de/features/data-editing.json index eed2e503..ac3add9d 100644 --- a/resources/data/content/de/features/data-editing.json +++ b/resources/data/content/de/features/data-editing.json @@ -105,7 +105,7 @@ "title": "Auf iPhone und iPad", "paragraphs": [ "Durchsuche Zeilen als Karten, sortiere und filtere sie oder tippe auf einen Fremdschlüssel für die Zeilenvorschau. Bearbeite Werte oder setze NULL; Bearbeiten und Löschen benötigen einen Primärschlüssel. Neue Zeilen starten mit DEFAULT-Werten, alternativ NULL oder leerem String.", - "Mobiles Safe Mode bietet {iosSafeModeLevels}, standardmäßig {iosSafeModeDefault}. Vorgemerkte Änderungen, Preview SQL, Hervorhebungsregeln und Data Rewind sind derzeit nur auf dem Mac verfügbar." + "Mobiles Safe Mode bietet {iosSafeModeLevels}, standardmäßig {iosSafeModeDefault}. Vorgemerkte Änderungen, Preview SQL, Hervorhebungsregeln und Data Rewind gibt es nicht in der App für iPhone und iPad." ], "links": [ { diff --git a/resources/data/content/de/features/schema.json b/resources/data/content/de/features/schema.json index 9d75e143..6b06ee20 100644 --- a/resources/data/content/de/features/schema.json +++ b/resources/data/content/de/features/schema.json @@ -121,7 +121,7 @@ "title": "Auf iPhone und iPad", "paragraphs": [ "Die iPhone- und iPad-App zeigt Spalten, Indizes und Fremdschlüssel einer Tabelle schreibgeschützt an. Über die Tabellenliste kannst du Tabellen auf SQL-Systemen leeren oder löschen, außer bei Read-Only-Verbindungen.", - "Strukturbearbeitung, ER-Diagramm, Compare & Sync, Copy To, Users & Roles und Server-Dashboard gibt es nur auf dem Mac." + "Strukturbearbeitung, ER-Diagramm, Compare & Sync, Copy To, Users & Roles und Server-Dashboard gibt es nicht in der App für iPhone und iPad." ], "links": [ { diff --git a/resources/data/content/de/features/sync-and-teams.json b/resources/data/content/de/features/sync-and-teams.json index 3270ebc9..39ed2e32 100644 --- a/resources/data/content/de/features/sync-and-teams.json +++ b/resources/data/content/de/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Team-Arbeitsplätze", "paragraphs": [ - "Ein Team-Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Macs. Inhaber und Admins laden im Kontoportal per E-Mail ein, mit oder ohne Arbeitsplatz, und Eingeladene treten über den Link in der E-Mail bei.", + "Ein Team-Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Computern, Mac oder Linux. Inhaber und Admins laden im Kontoportal per E-Mail ein, mit oder ohne Arbeitsplatz, und Eingeladene treten über den Link in der E-Mail bei.", "Der Inhaber ändert die Arbeitsplätze eines Abos unter Abrechnung, und ein Team mit einmal gekauften Arbeitsplätzen behält sie; weitere Arbeitsplätze gibt es mit einem Abo von Team. Das Entfernen eines Mitglieds gibt seinen Arbeitsplatz frei, und seine Macs verlieren die Funktionen von Team, sobald TablePro sich das nächste Mal meldet." ], "links": [ diff --git a/resources/data/content/de/home.json b/resources/data/content/de/home.json index 2855c1fa..63728f93 100644 --- a/resources/data/content/de/home.json +++ b/resources/data/content/de/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Deine Verbindungen übernehmen", - "lead": "Der Import aus anderen Apps und Open Project Folder sind nur in der {macApp} verfügbar.", + "lead": "Die iPhone- und iPad-App importiert nicht aus anderen Apps, und Open Project Folder ist nur in der {macApp} verfügbar.", "import": "Importiere Verbindungen aus {apps}, einschließlich gespeicherter Passwörter.", "importWithoutPasswords": "Verbindungen aus {apps} werden ohne Passwörter importiert.", "project": "Open Project Folder erstellt Verbindungen aus unterstützten Projektdateien, darunter .env, docker-compose.yml und Prisma-Schemas.", diff --git a/resources/data/content/de/ios.json b/resources/data/content/de/ios.json index d9e371eb..dc58f100 100644 --- a/resources/data/content/de/ios.json +++ b/resources/data/content/de/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "Nicht auf iPhone und iPad verfügbar", - "lead": "Diese Funktionen gibt es nur in TablePro für Mac:", + "lead": "Diese Funktionen gibt es in TablePro für Mac:", "items": [ "KI-Assistent und MCP-Server", "Gespeicherte Abfragen, Autovervollständigung, Abfrageformatierung und EXPLAIN", diff --git a/resources/data/content/de/pricing.json b/resources/data/content/de/pricing.json index 4dcf7a04..c92c4c1d 100644 --- a/resources/data/content/de/pricing.json +++ b/resources/data/content/de/pricing.json @@ -30,8 +30,8 @@ "title": "Lizenzen", "items": { "macs": { - "question": "Für wie viele Macs gilt eine Lizenz?", - "answer": "Pro gilt für eine Person auf bis zu {deviceLimit} Macs, ebenso jeder Team-Arbeitsplatz. Einen Mac gibst du unter Settings > Account oder in deinem Konto frei." + "question": "Für wie viele Computer gilt eine Lizenz?", + "answer": "Pro gilt für eine Person auf bis zu {deviceLimit} Computern, Mac oder Linux, ebenso jeder Team-Arbeitsplatz. Einen Computer gibst du in deinem Konto oder unter Settings > Account auf dem Mac frei." }, "offline": { "question": "Muss TablePro online sein?", diff --git a/resources/data/content/de/security.json b/resources/data/content/de/security.json index 80d3c8ac..c89723ab 100644 --- a/resources/data/content/de/security.json +++ b/resources/data/content/de/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Safe-Mode-Stufen", - "text": "Jede Verbindung hat eine Safe-Mode-Stufe: {macSafeModeLevels}. Alert fragt vor einem Schreibvorgang, die Safe-Mode-Stufen verlangen zusätzlich Touch ID oder dein Mac-Passwort, die Stufen mit (Full) fragen auch vor Lesevorgängen, und Read-Only verweigert Schreibvorgänge. Eine Organisation kann auf ihren Macs per Konfigurationsprofil eine Mindeststufe erzwingen. Auf iPhone und iPad heißen die Stufen {iosSafeModeLevels}." + "text": "Auf dem Mac hat jede Verbindung eine Safe-Mode-Stufe: {macSafeModeLevels}. Alert fragt vor einem Schreibvorgang, die Safe-Mode-Stufen verlangen zusätzlich Touch ID oder dein Mac-Passwort, die Stufen mit (Full) fragen auch vor Lesevorgängen, und Read-Only verweigert Schreibvorgänge. Eine Organisation kann auf ihren Macs per Konfigurationsprofil eine Mindeststufe erzwingen. Auf iPhone und iPad heißen die Stufen {iosSafeModeLevels}, unter Linux {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Nur auf deinem Mac", - "text": "Der MCP-Server gibt es nur in der Mac-App, und er bleibt aus, bis du ihn einschaltest oder ein eingerichteter Client ihn startet. Er lauscht auf {mcpHost}, ohne Remote-Modus, und Clients sehen nie ein Passwort." + "text": "In der Mac-App bleibt der MCP-Server aus, bis du ihn einschaltest oder ein eingerichteter Client ihn startet. Er lauscht auf {mcpHost}, ohne Remote-Modus, und Clients sehen nie ein Passwort." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "Der Code ist öffentlich", - "text": "Beide Apps sind quelloffen unter der AGPLv3, einschließlich des Codes der Bezahlfunktionen. Was diese Seite beschreibt, lässt sich im Repository nachlesen, zusammen mit den Skripten, die jede Version signieren und notarisieren, und du kannst die Mac-App selbst bauen." + "text": "Die Apps sind quelloffen unter der AGPLv3, einschließlich des Codes der Bezahlfunktionen. Was diese Seite beschreibt, lässt sich im Repository nachlesen, zusammen mit den Skripten, die jede Version signieren und notarisieren, und du kannst die Mac-App selbst bauen." } ], "limits": [], diff --git a/resources/data/content/de/teams.json b/resources/data/content/de/teams.json index 266c8e59..aa462d7c 100644 --- a/resources/data/content/de/teams.json +++ b/resources/data/content/de/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Arbeitsplätze und Mitglieder", "items": [ - "Ein Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Macs.", + "Ein Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Computern, Mac oder Linux.", "Inhaber und Admins laden auf der Seite Mitglieder in deinem Konto per E-Mail ein, mit einer Rolle und auf Wunsch einem Arbeitsplatz. Der Link gilt 7 Tage, und jedes TablePro-Konto kann ihn annehmen.", "Der Inhaber kümmert sich um die Abrechnung. Admins verwalten Mitglieder, Einladungen, die Team Library und das Audit-Log des Teams. Mitglieder nutzen, was geteilt wird.", "Der Inhaber ändert die Arbeitsplätze eines Abos unter Abrechnung, und {merchant} berechnet oder erstattet die anteilige Differenz sofort.", diff --git a/resources/data/content/en/about.json b/resources/data/content/en/about.json index 47a07653..535eaa95 100644 --- a/resources/data/content/en/about.json +++ b/resources/data/content/en/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Who makes it", - "body": "{maker} makes the Mac app and its plugins, the iPhone and iPad app, and this website.", + "body": "{maker} makes the Mac app and its plugins, the iPhone and iPad app, the Linux app and this website.", "identity": "The same developer publishes TablePro on the App Store and receives sponsorship through GitHub Sponsors.", "facts": { "maker": "Maker", @@ -32,7 +32,7 @@ }, "source": { "title": "Source code", - "body": "Both apps are open source under the AGPLv3, including the code for the paid features, in one repository on GitHub.", + "body": "The apps are open source under the AGPLv3, including the code for the paid features, in one repository on GitHub.", "license": "The license text is in the same repository." }, "contact": { diff --git a/resources/data/content/en/black-friday.json b/resources/data/content/en/black-friday.json index 0ff850b6..37ddc699 100644 --- a/resources/data/content/en/black-friday.json +++ b/resources/data/content/en/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro one-time", "unit": "paid once", - "detail": "No expiry date. {activations} Macs." + "detail": "No expiry date. {activations} computers, Mac or Linux." }, "yearly": { "name": "Pro yearly", "unit": "first year", - "detail": "Then {yearlyList} a year. {activations} Macs." + "detail": "Then {yearlyList} a year. {activations} computers, Mac or Linux." }, "buy": "Buy for {price}", "soon": "From {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "What Pro adds", - "lead": "TablePro is free, at work too. Pro adds these on {activations} Macs.", + "lead": "TablePro is free, at work too. Pro adds these to the Mac app.", "more": "Also in Pro", "link": "More about {feature}" }, diff --git a/resources/data/content/en/compare/beekeeper-studio.json b/resources/data/content/en/compare/beekeeper-studio.json index 7839ca11..208c7998 100644 --- a/resources/data/content/en/compare/beekeeper-studio.json +++ b/resources/data/content/en/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "A native app with a separate free iPhone and iPad app." ], "competitor": [ - "The same client on Windows, macOS and Linux.", + "Windows support, with the same features on macOS and Linux.", "Firebird, SQL Anywhere or GreengageDB connections.", "Cloud workspaces for sharing connections and queries, from {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro is a Mac app written in Swift, with native database drivers. Beekeeper Studio is built on {technology}. Both offer separate builds for Apple silicon and Intel Macs.", + "text": "TablePro’s Mac app is written in Swift, with native database drivers. Beekeeper Studio is built on {technology}. Both offer separate builds for Apple silicon and Intel Macs.", "cite": [ "technology", "mac" diff --git a/resources/data/content/en/compare/datagrip.json b/resources/data/content/en/compare/datagrip.json index 1c993486..f1a5a734 100644 --- a/resources/data/content/en/compare/datagrip.json +++ b/resources/data/content/en/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Code inspections and version control alongside queries.", "A full-featured IDE for non-commercial work, at no charge.", - "Windows or Linux support, or JDBC engines such as Firebird, Informix and Databricks." + "Windows support, or JDBC engines such as Firebird, Informix and Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro is a Mac app written in Swift, with native database drivers. DataGrip is built on the {technology}.", + "text": "TablePro’s Mac app is written in Swift, with native database drivers. DataGrip is built on the {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/en/compare/dbeaver.json b/resources/data/content/en/compare/dbeaver.json index ac92eafc..e0a992cb 100644 --- a/resources/data/content/en/compare/dbeaver.json +++ b/resources/data/content/en/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver: features and editions", - "description": "DBeaver runs on Windows, macOS and Linux on Java and JDBC. TablePro is a native client for Mac, iPhone and iPad. Compare databases, AI, MCP and prices." + "description": "DBeaver runs on Windows, macOS and Linux on Java and JDBC. TablePro is a native client for Mac, iPhone, iPad and Linux. Compare databases, AI, MCP and prices." }, "og": { "kicker": "Compare", @@ -18,7 +18,7 @@ "Free MCP and AI chat with your choice of provider." ], "competitor": [ - "Windows or Linux support.", + "Windows support.", "JDBC engines beyond TablePro’s supported drivers.", "Paid tools such as a visual query builder, editable ER diagrams and scheduled tasks." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro is a Mac app written in Swift, with native database drivers. DBeaver is built on Java, and its download includes a Java runtime.", + "text": "TablePro’s Mac app is written in Swift, with native database drivers. DBeaver is built on Java, and its download includes a Java runtime.", "cite": [ "technology" ], diff --git a/resources/data/content/en/compare/dbgate.json b/resources/data/content/en/compare/dbgate.json index 11022051..64a30f3e 100644 --- a/resources/data/content/en/compare/dbgate.json +++ b/resources/data/content/en/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DbGate: editions and supported platforms", - "description": "DbGate is an open-source client for Windows, macOS, Linux and the web, with paid Premium editions. TablePro is open source and native on Mac and iPhone." + "description": "DbGate is an open-source client for Windows, macOS, Linux and the web, with paid Premium editions. TablePro is open source and native on Mac, iPhone and Linux." }, "og": { "kicker": "Compare", @@ -18,7 +18,7 @@ "Free backups through supported engines’ dump tools." ], "competitor": [ - "A client for Windows, Linux or a web server.", + "A client for Windows or a web server.", "Firebird, Azure Cosmos DB or Firestore connections.", "A visual query designer in {cells.queryDesigner.edition}, or DbGate Cloud sync." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro is a Mac app written in Swift, with native database drivers. DbGate is built on {technology}. Both offer builds for Apple silicon and Intel Macs.", + "text": "TablePro’s Mac app is written in Swift, with native database drivers. DbGate is built on {technology}. Both offer builds for Apple silicon and Intel Macs.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "Is there a web version of TablePro?", - "answer": "No. TablePro runs on your Mac, iPhone and iPad. If your team needs a database client in the browser, DbGate also runs as a web app.", + "answer": "No. TablePro is an app for Mac, iPhone, iPad and Linux. If your team needs a database client in the browser, DbGate also runs as a web app.", "href": null }, { diff --git a/resources/data/content/en/compare/heidisql.json b/resources/data/content/en/compare/heidisql.json index d2327aae..b53e94f6 100644 --- a/resources/data/content/en/compare/heidisql.json +++ b/resources/data/content/en/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL: databases, platforms and pricing", - "description": "HeidiSQL is free on Windows, Linux and, since 2026, Apple silicon Macs. TablePro is native on Mac, iPhone and iPad. Compare databases, builds and prices." + "description": "HeidiSQL is free on Windows, Linux and, since 2026, Apple silicon Macs. TablePro is native on Mac, iPhone, iPad and Linux. Compare databases, builds and prices." }, "og": { "kicker": "Compare", @@ -18,7 +18,7 @@ "Free AI chat and MCP, plus a separate iPhone and iPad app." ], "competitor": [ - "The same free client on Windows, Linux and Apple silicon Macs.", + "The same free client on Windows and Apple silicon Macs.", "Firebird, Interbase or ProxySQL connections.", "Every feature free, with no paid plans." ] diff --git a/resources/data/content/en/compare/index.json b/resources/data/content/en/compare/index.json index d31b5100..92276120 100644 --- a/resources/data/content/en/compare/index.json +++ b/resources/data/content/en/compare/index.json @@ -16,7 +16,7 @@ "lead": "Start with the tools you need.", "tablepro": "TablePro is a native, open-source client for several database types. AI chat and MCP are free in the Mac app. It imports connections from {apps}.", "items": { - "tableplus": "Windows or Linux support, plus Vertica and Greenplum.", + "tableplus": "Windows support, plus Vertica and Greenplum.", "dbeaver": "A cross-platform client with JDBC driver support.", "datagrip": "A database IDE with code inspections and version control. Free for non-commercial work.", "navicat": "Data modeling and shared projects through Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "A free Mac App Store client focused on MySQL and MariaDB.", "sequel-pro": "Moving from Sequel Pro? Its last release was {status.version}, on {status.date}. Compare Sequel Ace and TablePro.", "postico": "A focused PostgreSQL client with a one-time license.", - "heidisql": "A free client for Windows, Linux and Apple silicon Macs.", + "heidisql": "A free client for Windows and Apple silicon Macs.", "phpmyadmin": "MySQL or MariaDB access through your browser, including cPanel hosting.", "mysql-workbench": "Oracle’s MySQL tool, with SQL notebooks and MySQL Enterprise Backup integration.", "pgadmin": "PostgreSQL administration, with a debugger, pgAgent jobs and a shared-server option.", @@ -218,6 +218,7 @@ "retrieved": "checked {date}", "latest": "Latest {name} release at that date: {version}, published {date}.", "tablepro": "TablePro’s column describes TablePro {macVersion} for Mac and {iosVersion} for iPhone and iPad.", + "tableproLinux": "TablePro’s column describes TablePro {macVersion} for Mac, {iosVersion} for iPhone and iPad, and {linuxVersion} for Linux.", "trademarks": "TablePro is an independent open-source project, not affiliated with or endorsed by the makers of the products compared here. Product names are trademarks of their owners." }, "cta": { diff --git a/resources/data/content/en/compare/mysql-workbench.json b/resources/data/content/en/compare/mysql-workbench.json index efabfa46..f05f2af4 100644 --- a/resources/data/content/en/compare/mysql-workbench.json +++ b/resources/data/content/en/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench: features and compatibility", - "description": "MySQL Workbench is Oracle’s free tool for MySQL, now rebuilt on MySQL Shell. TablePro covers MySQL and other engines on Mac, iPhone and iPad." + "description": "MySQL Workbench is Oracle’s free tool for MySQL, now rebuilt on MySQL Shell. TablePro covers MySQL and other engines on Mac, iPhone, iPad and Linux." }, "og": { "kicker": "Compare", diff --git a/resources/data/content/en/compare/navicat.json b/resources/data/content/en/compare/navicat.json index 4e751363..17a9a389 100644 --- a/resources/data/content/en/compare/navicat.json +++ b/resources/data/content/en/compare/navicat.json @@ -18,7 +18,7 @@ "ClickHouse, DuckDB or Cassandra connections." ], "competitor": [ - "Windows or Linux support.", + "Windows support.", "Data modeling in Premium Enterprise.", "Navicat Cloud or Navicat On-Prem Server for shared connections, queries and models." ] diff --git a/resources/data/content/en/compare/pgadmin.json b/resources/data/content/en/compare/pgadmin.json index d28b745a..ebd131c9 100644 --- a/resources/data/content/en/compare/pgadmin.json +++ b/resources/data/content/en/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "PostgreSQL administration, including a PL/pgSQL debugger and pgAgent jobs.", "Bundled psql, pg_dump and pg_restore.", - "A shared web-server installation, or Windows and Linux support." + "A shared web-server installation, or Windows support." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro is a Mac app written in Swift, with native database drivers. pgAdmin is a Python web application that runs in an {technology} desktop runtime or on a web server.", + "text": "TablePro’s Mac app is written in Swift, with native database drivers. pgAdmin is a Python web application that runs in an {technology} desktop runtime or on a web server.", "cite": [ "technology" ], diff --git a/resources/data/content/en/compare/phpmyadmin.json b/resources/data/content/en/compare/phpmyadmin.json index 52bcb833..b228081a 100644 --- a/resources/data/content/en/compare/phpmyadmin.json +++ b/resources/data/content/en/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "It is an app for your Mac, iPhone and iPad. You cannot open it from any computer’s browser.", + "text": "It is an app for Mac, iPhone, iPad and Linux. You cannot open it from any computer’s browser.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/en/compare/tableplus.json b/resources/data/content/en/compare/tableplus.json index 79c191e8..43042c46 100644 --- a/resources/data/content/en/compare/tableplus.json +++ b/resources/data/content/en/compare/tableplus.json @@ -18,7 +18,7 @@ "A free iPhone and iPad app with no in-app purchases." ], "competitor": [ - "Windows or Linux support.", + "Windows support.", "Vertica or Greenplum connections.", "A client available through Setapp." ] diff --git a/resources/data/content/en/databases/index.json b/resources/data/content/en/databases/index.json index 1899f30b..e07898f7 100644 --- a/resources/data/content/en/databases/index.json +++ b/resources/data/content/en/databases/index.json @@ -84,6 +84,13 @@ "others": "Connections to other engines sync to iPhone and iPad and appear in the list, but they do not open there.", "link": "TablePro for iPhone and iPad" }, + "linux": { + "title": "On Linux", + "tested": "The Linux app is a beta, tested with {engines}.", + "untested": "Connections to {engines} are not tested on Linux.", + "others": "Other engines do not open there.", + "link": "Install on Linux" + }, "license": { "title": "Included in Free", "body": "Every supported database connection is included in Free. Pro and Team add optional features to the Mac app.", @@ -131,6 +138,12 @@ "synced": "Opens when synced from a Mac", "none": "Does not open" }, + "linux": { + "tested": "Tested", + "versions": "Tested: {versions}", + "untested": "Not tested", + "none": "Not available" + }, "availability": { "devices": "Works on {devices}", "bundled": "Driver comes with the Mac app", @@ -184,6 +197,7 @@ "title": "Get TablePro", "mac": "Download the Mac app for free. Pro and Team add optional features.", "ios": "The iPhone and iPad app is on the App Store.", + "linux": "The Linux app is a free beta.", "pricing": "See pricing" } } diff --git a/resources/data/content/en/download.json b/resources/data/content/en/download.json index 175a59c5..e28d434c 100644 --- a/resources/data/content/en/download.json +++ b/resources/data/content/en/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "Download TablePro", - "description": "Download TablePro for Apple silicon and Intel Macs, or install it with Homebrew. The iPhone and iPad app is on the App Store." + "description": "Download TablePro for Mac or install it with Homebrew. Get the Linux beta for Ubuntu, Fedora or Flatpak, and the iPhone and iPad app on the App Store." }, "og": { "kicker": "Download", diff --git a/resources/data/content/en/faq.json b/resources/data/content/en/faq.json index 45d610c3..ce7493cd 100644 --- a/resources/data/content/en/faq.json +++ b/resources/data/content/en/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "What is TablePro?", "answer": [ - "A native, open-source database client. On the Mac, query and edit {featuredEngines} and more, and work with schemas. The iPhone and iPad app offers a smaller set of database tools.", + "A native, open-source database client. On the Mac, query and edit {featuredEngines} and more, and work with schemas. The iPhone and iPad app and the Linux beta offer a smaller set of database tools.", "See all features." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "What does “native” mean here?", "answer": [ - "TablePro uses native interfaces and database drivers, without Electron or JDBC. The current apps use Swift: AppKit and SwiftUI on the Mac, and device features such as Face ID and Shortcuts on iPhone and iPad." + "TablePro uses native interfaces and database drivers, without Electron or JDBC. The Mac, iPhone and iPad apps use Swift: AppKit and SwiftUI on the Mac, and device features such as Face ID and Shortcuts on iPhone and iPad. The Linux app uses Rust, GTK 4 and libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "Is TablePro free?", "answer": [ "Yes. The Mac app has no trial period or time limit. All supported engines, AI, MCP and Safe Mode are free. Pro and Team add the features on the pricing page.", - "The iPhone and iPad app is free, with no license or in-app purchases." + "The iPhone and iPad app is free, with no license or in-app purchases. The Linux app is free to use, and the paid features are on the Mac for now." ] }, { "id": "open-source", "question": "Is TablePro open source?", "answer": [ - "Yes. Both apps, including paid-feature code, are under the AGPLv3 in one GitHub repository. Builds from source still check licenses for paid features." + "Yes. The apps, including paid-feature code, are under the AGPLv3 in one GitHub repository. Builds from source still check licenses for paid features." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Is there a version for Windows or Linux?", "answer": [ - "No. There is no Windows version. A Linux prototype exists, but there is nothing to install and no release date." + "Linux, yes: TablePro for Linux is available as a beta, with its own set of engines and features. Windows is not available, and there is no release date." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "Where are my passwords stored?", "answer": [ - "Saved passwords stay in the Keychain. On the Mac, you can instead resolve them from files, environment variables, shell commands, 1Password, Vault or AWS Secrets Manager.", + "Saved passwords stay in the Keychain, or on Linux in a Secret Service keyring such as GNOME Keyring or KWallet. On the Mac, you can instead resolve them from files, environment variables, shell commands, 1Password, Vault or AWS Secrets Manager.", "Password sync is a separate opt-in: enable Passwords on the Mac or Sync Passwords on iPhone and iPad. It uses iCloud Keychain." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "How many Macs does a license cover?", + "question": "How many computers does a license cover?", "answer": [ - "Pro covers one person on up to {deviceLimit} Macs. Team has at least {teamMinSeats} seats, and each seat covers one person on up to {deviceLimit} Macs. The limit is per account, across Pro and Team. iPhone and iPad use no seat.", - "To use your license on another Mac, remove one in Settings > Account or on the Devices page in your account. Until then, the other Mac keeps the free features." + "Pro covers one person on up to {deviceLimit} computers, Mac or Linux. Team has at least {teamMinSeats} seats, and each seat covers one person on up to {deviceLimit} computers. The limit is per account, across Pro and Team. The paid features are on the Mac for now, but a Linux computer you sign in on still counts. iPhone and iPad use no seat.", + "To use your license on another computer, remove one on the Devices page in your account, or in Settings > Account on the Mac. Until then, the other computer keeps the free features." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "What do the apps send to TablePro?", "answer": [ - "The Mac app shares usage data by default; disable it in Settings > General > Privacy. From the version that adds TablePro accounts, it goes straight to PostHog: app events with your Mac’s model, the app and macOS versions and database types, under a random ID before you sign in and your account ID after. Versions before TablePro accounts send a daily report with a hashed machine ID through our server instead. Neither includes hostnames, usernames, passwords, queries or rows.", + "The Mac app shares usage data by default; disable it in Settings > General > Privacy. From the version that adds TablePro accounts, it goes straight to PostHog: app events with your Mac’s model, the app and macOS versions and database types, under a random ID before you sign in and your account ID after. Versions before TablePro accounts send a daily report with a hashed machine ID through our server instead. Neither includes hostnames, usernames, passwords, queries or rows. The Linux app also shares usage data by default, without those details; turn it off in its Preferences.", "Once you sign in, the Mac app registers your Mac with your account, sending its machine ID, name and app and macOS versions, and renews your plan once a day. Versions before TablePro accounts send the license key with those details every {revalidateDays} days. iPhone and iPad reports are opt-in. Team Library receives settings and saved SQL you publish. See the privacy policy, including IP logging." ] }, diff --git a/resources/data/content/en/features/ai-mcp.json b/resources/data/content/en/features/ai-mcp.json index 2169cc65..b5da54df 100644 --- a/resources/data/content/en/features/ai-mcp.json +++ b/resources/data/content/en/features/ai-mcp.json @@ -100,7 +100,7 @@ "id": "iphone", "title": "Availability", "paragraphs": [ - "AI, MCP and the automation tools on this page are currently available on Mac only." + "The iPhone and iPad app has none of the AI, MCP or automation tools on this page." ], "links": [{ "label": "What the iPhone and iPad app does", "href": "/ios" }] } diff --git a/resources/data/content/en/features/connections.json b/resources/data/content/en/features/connections.json index df186e7c..c71367af 100644 --- a/resources/data/content/en/features/connections.json +++ b/resources/data/content/en/features/connections.json @@ -141,7 +141,7 @@ "title": "On iPhone and iPad", "paragraphs": [ "The iPhone and iPad app has its own connection form for {iosPicker}, with groups, one tag per connection and favorites. SSH tunnels sign in with a password or a private key, from a file or pasted in, and check the host key; SSH agents and jump hosts are not supported on iPhone and iPad. TLS can verify the server’s certificate, except on SQL Server, where it encrypts without verifying. Certificates stay on the device and never sync.", - "Passwords and pasted keys are kept in the Keychain. SQL Server connections synced from a Mac can sign in with Microsoft Entra ID. Importing from other apps, AWS IAM, Kerberos and Google sign-in, proxies and tunnel commands, password sources and timeouts are in the Mac app only." + "Passwords and pasted keys are kept in the Keychain. SQL Server connections synced from a Mac can sign in with Microsoft Entra ID. Importing from other apps, AWS IAM, Kerberos and Google sign-in, proxies and tunnel commands, password sources and timeouts are not in the iPhone and iPad app." ], "links": [{ "label": "Connecting securely on iPhone and iPad", "href": "/ios#security" }] } diff --git a/resources/data/content/en/features/data-editing.json b/resources/data/content/en/features/data-editing.json index 41d31642..fc50bbb4 100644 --- a/resources/data/content/en/features/data-editing.json +++ b/resources/data/content/en/features/data-editing.json @@ -91,7 +91,7 @@ "title": "On iPhone and iPad", "paragraphs": [ "Browse rows as cards, sort and filter them, or tap a foreign key to preview its row. Edit values or set NULL; editing and deleting require a primary key. New rows start with DEFAULT values, with NULL and empty string available instead.", - "Mobile Safe Mode offers {iosSafeModeLevels}, defaulting to {iosSafeModeDefault}. Staged edits, Preview SQL, highlight rules and Data Rewind are currently Mac-only." + "Mobile Safe Mode offers {iosSafeModeLevels}, defaulting to {iosSafeModeDefault}. Staged edits, Preview SQL, highlight rules and Data Rewind are not in the iPhone and iPad app." ], "links": [ { "label": "Browsing and editing on iPhone and iPad", "href": "/ios#browse" }, diff --git a/resources/data/content/en/features/schema.json b/resources/data/content/en/features/schema.json index 90877f00..f8f97b34 100644 --- a/resources/data/content/en/features/schema.json +++ b/resources/data/content/en/features/schema.json @@ -103,7 +103,7 @@ "title": "On iPhone and iPad", "paragraphs": [ "The iPhone and iPad app shows a table’s columns, indexes and foreign keys, read-only. From the table list you can truncate or drop a table on a SQL engine, unless the connection is Read-Only.", - "Structure editing, the ER diagram, Compare & Sync, Copy To, Users & Roles and the Server Dashboard are in the Mac app only." + "Structure editing, the ER diagram, Compare & Sync, Copy To, Users & Roles and the Server Dashboard are not in the iPhone and iPad app." ], "links": [{ "label": "Tables on iPhone and iPad", "href": "/ios#browse" }] } diff --git a/resources/data/content/en/features/sync-and-teams.json b/resources/data/content/en/features/sync-and-teams.json index b853476d..00016a09 100644 --- a/resources/data/content/en/features/sync-and-teams.json +++ b/resources/data/content/en/features/sync-and-teams.json @@ -90,7 +90,7 @@ "id": "seats", "title": "Team seats", "paragraphs": [ - "A Team seat covers one person on up to {deviceLimit} Macs. Owners and admins invite people by email from the account portal, with or without a seat, and each invitee joins from the emailed link.", + "A Team seat covers one person on up to {deviceLimit} computers, Mac or Linux. Owners and admins invite people by email from the account portal, with or without a seat, and each invitee joins from the emailed link.", "The owner changes a subscription’s seats in Billing, and a team with one-time seats keeps them; more seats come with a Team subscription. Removing a member frees their seat, and their Macs lose Team’s features the next time TablePro checks in." ], "links": [ diff --git a/resources/data/content/en/home.json b/resources/data/content/en/home.json index 8d9bbbc4..357ed77c 100644 --- a/resources/data/content/en/home.json +++ b/resources/data/content/en/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Bring your connections", - "lead": "Importing from other apps and Open Project Folder are in the {macApp} only.", + "lead": "The iPhone and iPad app does not import from other apps, and Open Project Folder is in the {macApp} only.", "import": "Import connections from {apps}, saved passwords included.", "importWithoutPasswords": "Connections from {apps} import without their passwords.", "project": "Open Project Folder creates connections from supported project files, including .env, docker-compose.yml and Prisma schemas.", diff --git a/resources/data/content/en/ios.json b/resources/data/content/en/ios.json index 5a9c8cbb..1f641fbc 100644 --- a/resources/data/content/en/ios.json +++ b/resources/data/content/en/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "Not on iPhone and iPad", - "lead": "These are in TablePro for Mac only:", + "lead": "These are in TablePro for Mac:", "items": [ "The AI assistant and the MCP server", "Saved queries, autocomplete, query formatting and EXPLAIN", diff --git a/resources/data/content/en/pricing.json b/resources/data/content/en/pricing.json index 0aae35f4..d8c3646d 100644 --- a/resources/data/content/en/pricing.json +++ b/resources/data/content/en/pricing.json @@ -30,8 +30,8 @@ "title": "Licenses", "items": { "macs": { - "question": "How many Macs does a license cover?", - "answer": "Pro covers one person on up to {deviceLimit} Macs, and so does each Team seat. Free up a Mac in Settings > Account or in your account." + "question": "How many computers does a license cover?", + "answer": "Pro covers one person on up to {deviceLimit} computers, Mac or Linux, and so does each Team seat. Free one up in your account or in Settings > Account on the Mac." }, "offline": { "question": "Does TablePro need to be online?", diff --git a/resources/data/content/en/security.json b/resources/data/content/en/security.json index efa2fcca..136c8812 100644 --- a/resources/data/content/en/security.json +++ b/resources/data/content/en/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Safe Mode levels", - "text": "Each connection has a Safe Mode level: {macSafeModeLevels}. Alert asks before a write runs, the Safe Mode levels also ask for Touch ID or your Mac password, the Full levels ask before reads too, and Read-Only refuses writes. An organization can enforce a minimum level on its Macs through a configuration profile. On iPhone and iPad the levels are {iosSafeModeLevels}." + "text": "On the Mac, each connection has a Safe Mode level: {macSafeModeLevels}. Alert asks before a write runs, the Safe Mode levels also ask for Touch ID or your Mac password, the Full levels ask before reads too, and Read-Only refuses writes. An organization can enforce a minimum level on its Macs through a configuration profile. On iPhone and iPad the levels are {iosSafeModeLevels}, and on Linux {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Local only", - "text": "The MCP server is in the Mac app only, off until you turn it on or a client you set up starts it. It listens on {mcpHost}, with no remote mode, and clients never see a password." + "text": "In the Mac app, the MCP server is off until you turn it on or a client you set up starts it. It listens on {mcpHost}, with no remote mode, and clients never see a password." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "The code is public", - "text": "Both apps are open source under the AGPLv3, including the code for the paid features. What this page describes can be read in the repository, with the scripts that sign and notarize each release, and you can build the Mac app yourself." + "text": "The apps are open source under the AGPLv3, including the code for the paid features. What this page describes can be read in the repository, with the scripts that sign and notarize each release, and you can build the Mac app yourself." } ], "limits": [], diff --git a/resources/data/content/en/teams.json b/resources/data/content/en/teams.json index b777f12d..215e6a0d 100644 --- a/resources/data/content/en/teams.json +++ b/resources/data/content/en/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Seats and members", "items": [ - "A seat covers one person on up to {deviceLimit} Macs.", + "A seat covers one person on up to {deviceLimit} computers, Mac or Linux.", "Owners and admins invite people by email from the Members page of your account, with a role and, if they choose, a seat. The link works for 7 days, and any TablePro account can accept it.", "The owner handles billing. Admins manage members, invitations, the Team Library and the team's audit log. Members use what is shared.", "The owner changes a subscription's seats in Billing, and {merchant} charges or credits the prorated difference at once.", diff --git a/resources/data/content/es/about.json b/resources/data/content/es/about.json index ac5306c0..2320f8f1 100644 --- a/resources/data/content/es/about.json +++ b/resources/data/content/es/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Quién lo crea", - "body": "{maker} crea la app para Mac y sus plugins, la app para iPhone y iPad, y este sitio web.", + "body": "{maker} crea la app para Mac y sus plugins, la app para iPhone y iPad, la app para Linux y este sitio web.", "identity": "El mismo desarrollador publica TablePro en la App Store y recibe apoyo a través de GitHub Sponsors.", "facts": { "maker": "Creador", @@ -32,7 +32,7 @@ }, "source": { "title": "Código fuente", - "body": "Ambas apps son de código abierto bajo AGPLv3, incluido el código de las funciones de pago, en un repositorio en GitHub.", + "body": "Las apps son de código abierto bajo AGPLv3, incluido el código de las funciones de pago, en un repositorio en GitHub.", "license": "El texto de la licencia está en el mismo repositorio." }, "contact": { diff --git a/resources/data/content/es/black-friday.json b/resources/data/content/es/black-friday.json index 114cc8f6..a57a572c 100644 --- a/resources/data/content/es/black-friday.json +++ b/resources/data/content/es/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro de pago único", "unit": "pago único", - "detail": "Sin fecha de caducidad. {activations} Mac." + "detail": "Sin fecha de caducidad. {activations} ordenadores, Mac o Linux." }, "yearly": { "name": "Pro anual", "unit": "primer año", - "detail": "Después, {yearlyList} al año. {activations} Mac." + "detail": "Después, {yearlyList} al año. {activations} ordenadores, Mac o Linux." }, "buy": "Comprar por {price}", "soon": "Desde el {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "Qué añade Pro", - "lead": "TablePro es gratis, también en el trabajo. Pro añade estas funciones en {activations} Mac.", + "lead": "TablePro es gratis, también en el trabajo. Pro añade estas funciones a la app para Mac.", "more": "También en Pro", "link": "Más sobre {feature}" }, diff --git a/resources/data/content/es/compare/beekeeper-studio.json b/resources/data/content/es/compare/beekeeper-studio.json index 72f6e022..7f2f0392 100644 --- a/resources/data/content/es/compare/beekeeper-studio.json +++ b/resources/data/content/es/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "Una app nativa y otra gratuita e independiente para iPhone y iPad." ], "competitor": [ - "El mismo cliente en Windows, macOS y Linux.", + "Compatibilidad con Windows, con las mismas funciones en macOS y Linux.", "Conexiones a Firebird, SQL Anywhere o GreengageDB.", "Espacios de trabajo en la nube para compartir conexiones y consultas, desde {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro es una app para Mac escrita en Swift, con controladores de bases de datos nativos. Beekeeper Studio está basado en {technology}. Ambos ofrecen compilaciones independientes para Apple silicon y Macs Intel.", + "text": "La app de TablePro para Mac está escrita en Swift, con controladores de bases de datos nativos. Beekeeper Studio está basado en {technology}. Ambos ofrecen compilaciones independientes para Apple silicon y Macs Intel.", "cite": [ "technology", "mac" diff --git a/resources/data/content/es/compare/datagrip.json b/resources/data/content/es/compare/datagrip.json index f67948d6..3287b268 100644 --- a/resources/data/content/es/compare/datagrip.json +++ b/resources/data/content/es/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Inspecciones de código y control de versiones junto con las consultas.", "Un IDE completo, gratuito para uso no comercial.", - "Windows o Linux, o motores JDBC como Firebird, Informix y Databricks." + "Windows, o motores JDBC como Firebird, Informix y Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro es una app para Mac escrita en Swift con controladores de bases de datos nativos. DataGrip está basado en {technology}.", + "text": "La app de TablePro para Mac está escrita en Swift, con controladores de bases de datos nativos. DataGrip está basado en {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/es/compare/dbeaver.json b/resources/data/content/es/compare/dbeaver.json index 86ad47ae..1b4e5458 100644 --- a/resources/data/content/es/compare/dbeaver.json +++ b/resources/data/content/es/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver: funciones y ediciones", - "description": "DBeaver usa Java y JDBC en Windows, macOS y Linux. TablePro es nativo en Mac, iPhone y iPad. Compara bases, IA, MCP y precios." + "description": "DBeaver usa Java y JDBC en Windows, macOS y Linux. TablePro es nativo en Mac, iPhone, iPad y Linux. Compara bases, IA, MCP y precios." }, "og": { "kicker": "Comparar", @@ -18,7 +18,7 @@ "MCP y chat de IA gratuitos, con el proveedor que elijas." ], "competitor": [ - "Compatibilidad con Windows o Linux.", + "Compatibilidad con Windows.", "Motores JDBC que no están entre los controladores compatibles de TablePro.", "Herramientas de pago como un editor visual de consultas, diagramas ER editables y tareas programadas." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro es una app para Mac escrita en Swift, con controladores de bases de datos nativos. DBeaver está basado en Java, y su descarga incluye un runtime de Java.", + "text": "La app de TablePro para Mac está escrita en Swift, con controladores de bases de datos nativos. DBeaver está basado en Java, y su descarga incluye un runtime de Java.", "cite": [ "technology" ], diff --git a/resources/data/content/es/compare/dbgate.json b/resources/data/content/es/compare/dbgate.json index 823b2a68..308d57ff 100644 --- a/resources/data/content/es/compare/dbgate.json +++ b/resources/data/content/es/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DbGate: ediciones y plataformas compatibles", - "description": "DbGate es un cliente de código abierto para Windows, macOS, Linux y la web, con ediciones Premium de pago. TablePro es abierto y nativo en Mac y iPhone." + "description": "DbGate es un cliente de código abierto para Windows, macOS, Linux y la web, con ediciones Premium de pago. TablePro es abierto y nativo en Mac, iPhone y Linux." }, "og": { "kicker": "Comparar", @@ -18,7 +18,7 @@ "Copias de seguridad gratuitas con las herramientas de volcado de los motores compatibles." ], "competitor": [ - "Un cliente para Windows, Linux o un servidor web.", + "Un cliente para Windows o un servidor web.", "Conexiones a Firebird, Azure Cosmos DB o Firestore.", "Un editor visual de consultas en {cells.queryDesigner.edition}, o sincronización con DbGate Cloud." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro es una app para Mac escrita en Swift, con controladores de bases de datos nativos. DbGate está basado en {technology}. Ambos ofrecen compilaciones para Macs con Apple silicon e Intel.", + "text": "La app de TablePro para Mac está escrita en Swift, con controladores de bases de datos nativos. DbGate está basado en {technology}. Ambos ofrecen compilaciones para Macs con Apple silicon e Intel.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "¿Hay una versión web de TablePro?", - "answer": "No. TablePro funciona en tu Mac, iPhone y iPad. Si tu equipo necesita un cliente de bases de datos en el navegador, DbGate también funciona como app web.", + "answer": "No. TablePro es una app para Mac, iPhone, iPad y Linux. Si tu equipo necesita un cliente de bases de datos en el navegador, DbGate también funciona como app web.", "href": null }, { diff --git a/resources/data/content/es/compare/heidisql.json b/resources/data/content/es/compare/heidisql.json index c043777a..20a01b4e 100644 --- a/resources/data/content/es/compare/heidisql.json +++ b/resources/data/content/es/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL: bases de datos, plataformas y precios", - "description": "HeidiSQL es gratis en Windows, Linux y Mac Apple silicon desde 2026. TablePro es nativo en Mac, iPhone y iPad. Compara bases, versiones y precios." + "description": "HeidiSQL es gratis en Windows, Linux y Mac Apple silicon desde 2026. TablePro es nativo en Mac, iPhone, iPad y Linux. Compara bases, versiones y precios." }, "og": { "kicker": "Comparar", @@ -18,7 +18,7 @@ "Chat de IA y MCP gratuitos, más una app independiente para iPhone y iPad." ], "competitor": [ - "El mismo cliente gratuito en Windows, Linux y Mac con Apple silicon.", + "El mismo cliente gratuito en Windows y Mac con Apple silicon.", "Conexiones a Firebird, Interbase o ProxySQL.", "Todas las funciones gratuitas, sin planes de pago." ] diff --git a/resources/data/content/es/compare/index.json b/resources/data/content/es/compare/index.json index a8ec0c9e..3281f062 100644 --- a/resources/data/content/es/compare/index.json +++ b/resources/data/content/es/compare/index.json @@ -16,7 +16,7 @@ "lead": "Empieza por las herramientas que necesitas.", "tablepro": "TablePro es un cliente nativo y de código abierto para varios tipos de bases de datos. El chat de IA y MCP son gratis en la app para Mac. Importa conexiones de {apps}.", "items": { - "tableplus": "Windows o Linux, además de Vertica y Greenplum.", + "tableplus": "Windows, además de Vertica y Greenplum.", "dbeaver": "Un cliente multiplataforma compatible con controladores JDBC.", "datagrip": "Un IDE de bases de datos con inspecciones de código y control de versiones. Gratis para uso no comercial.", "navicat": "Modelado de datos y proyectos compartidos mediante Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "Un cliente gratuito de la Mac App Store centrado en MySQL y MariaDB.", "sequel-pro": "¿Vas a dejar Sequel Pro? Su última versión fue {status.version}, del {status.date}. Compara Sequel Ace y TablePro.", "postico": "Un cliente centrado en PostgreSQL con licencia de compra única.", - "heidisql": "Un cliente gratuito para Windows, Linux y Mac con Apple silicon.", + "heidisql": "Un cliente gratuito para Windows y Mac con Apple silicon.", "phpmyadmin": "Acceso a MySQL o MariaDB desde el navegador, incluido el alojamiento con cPanel.", "mysql-workbench": "La herramienta de Oracle para MySQL, con notebooks SQL e integración con MySQL Enterprise Backup.", "pgadmin": "Administración de PostgreSQL con depurador, tareas pgAgent y opción de servidor compartido.", @@ -218,6 +218,7 @@ "retrieved": "verificado el {date}", "latest": "Última versión de {name} entonces: {version}, publicada el {date}.", "tablepro": "La columna TablePro describe TablePro {macVersion} para Mac y {iosVersion} para iPhone y iPad.", + "tableproLinux": "La columna TablePro describe TablePro {macVersion} para Mac, {iosVersion} para iPhone y iPad, y {linuxVersion} para Linux.", "trademarks": "TablePro es un proyecto independiente de código abierto, sin afiliación con los creadores de los productos comparados aquí ni respaldo por su parte. Los nombres de producto son marcas de sus respectivos propietarios." }, "cta": { diff --git a/resources/data/content/es/compare/mysql-workbench.json b/resources/data/content/es/compare/mysql-workbench.json index 7c19c225..b8161328 100644 --- a/resources/data/content/es/compare/mysql-workbench.json +++ b/resources/data/content/es/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench: funciones y compatibilidad", - "description": "MySQL Workbench es la herramienta gratuita de Oracle para MySQL, rehecha sobre MySQL Shell. TablePro cubre MySQL y otros motores en Mac, iPhone y iPad." + "description": "MySQL Workbench es la herramienta gratuita de Oracle para MySQL, rehecha sobre MySQL Shell. TablePro cubre MySQL y otros motores en Mac, iPhone, iPad y Linux." }, "og": { "kicker": "Comparar", diff --git a/resources/data/content/es/compare/navicat.json b/resources/data/content/es/compare/navicat.json index 3936f626..d6615150 100644 --- a/resources/data/content/es/compare/navicat.json +++ b/resources/data/content/es/compare/navicat.json @@ -18,7 +18,7 @@ "Conexiones a ClickHouse, DuckDB o Cassandra." ], "competitor": [ - "Compatibilidad con Windows o Linux.", + "Compatibilidad con Windows.", "Modelado de datos en Premium Enterprise.", "Navicat Cloud o Navicat On-Prem Server para compartir conexiones, consultas y modelos." ] diff --git a/resources/data/content/es/compare/pgadmin.json b/resources/data/content/es/compare/pgadmin.json index 6413f079..c43ddfc4 100644 --- a/resources/data/content/es/compare/pgadmin.json +++ b/resources/data/content/es/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "Administración de PostgreSQL con depurador PL/pgSQL y tareas pgAgent.", "psql, pg_dump y pg_restore incluidos.", - "Una instalación en un servidor web compartido, o compatibilidad con Windows y Linux." + "Una instalación en un servidor web compartido, o compatibilidad con Windows." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro es una app para Mac escrita en Swift, con controladores de bases de datos nativos. pgAdmin es una aplicación web en Python que se ejecuta en un entorno de escritorio {technology} o en un servidor web.", + "text": "La app de TablePro para Mac está escrita en Swift, con controladores de bases de datos nativos. pgAdmin es una aplicación web en Python que se ejecuta en un entorno de escritorio {technology} o en un servidor web.", "cite": [ "technology" ], diff --git a/resources/data/content/es/compare/phpmyadmin.json b/resources/data/content/es/compare/phpmyadmin.json index fb346b6d..281cd908 100644 --- a/resources/data/content/es/compare/phpmyadmin.json +++ b/resources/data/content/es/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "Es una app para tu Mac, iPhone y iPad. No puedes abrirla desde el navegador de cualquier ordenador.", + "text": "Es una app para Mac, iPhone, iPad y Linux. No puedes abrirla desde el navegador de cualquier ordenador.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/es/compare/tableplus.json b/resources/data/content/es/compare/tableplus.json index 02625058..c0796bb8 100644 --- a/resources/data/content/es/compare/tableplus.json +++ b/resources/data/content/es/compare/tableplus.json @@ -18,7 +18,7 @@ "Una app gratuita para iPhone y iPad sin compras dentro de la app." ], "competitor": [ - "Compatibilidad con Windows o Linux.", + "Compatibilidad con Windows.", "Conexiones a Vertica o Greenplum.", "Un cliente disponible a través de Setapp." ] diff --git a/resources/data/content/es/databases/index.json b/resources/data/content/es/databases/index.json index 3d08e75c..e78d3b7d 100644 --- a/resources/data/content/es/databases/index.json +++ b/resources/data/content/es/databases/index.json @@ -84,6 +84,13 @@ "others": "Las conexiones a otros motores se sincronizan con iPhone y iPad y aparecen en la lista, pero no se pueden abrir allí.", "link": "TablePro para iPhone y iPad" }, + "linux": { + "title": "En Linux", + "tested": "La app para Linux es una beta, probada con {engines}.", + "untested": "Las conexiones a {engines} no están probadas en Linux.", + "others": "Otros motores no se abren allí.", + "link": "Instalar en Linux" + }, "license": { "title": "Incluido en Free", "body": "Todas las conexiones a bases admitidas están incluidas en Free. Pro y Team añaden funciones opcionales a la app para Mac.", @@ -131,6 +138,12 @@ "synced": "Se abre al sincronizar desde un Mac", "none": "No se abre" }, + "linux": { + "tested": "Probado", + "versions": "Probado: {versions}", + "untested": "Sin probar", + "none": "No disponible" + }, "availability": { "devices": "Funciona en {devices}", "bundled": "El controlador viene con la app para Mac", @@ -184,6 +197,7 @@ "title": "Consigue TablePro", "mac": "Descarga gratis la app para Mac. Pro y Team añaden funciones opcionales.", "ios": "La app para iPhone y iPad está en el App Store.", + "linux": "La app para Linux es una beta gratuita.", "pricing": "Ver precios" } } diff --git a/resources/data/content/es/download.json b/resources/data/content/es/download.json index 12aa8fc9..722340f4 100644 --- a/resources/data/content/es/download.json +++ b/resources/data/content/es/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "Descargar TablePro", - "description": "Descarga TablePro para Mac con Apple silicon e Intel, o instálalo con Homebrew. La app para iPhone y iPad está en la App Store." + "description": "Descarga TablePro para Mac o instálalo con Homebrew. Instala la beta para Linux en Ubuntu, Fedora o con Flatpak, y la app para iPhone y iPad desde la App Store." }, "og": { "kicker": "Descargar", diff --git a/resources/data/content/es/faq.json b/resources/data/content/es/faq.json index 227a1aac..c122d8e5 100644 --- a/resources/data/content/es/faq.json +++ b/resources/data/content/es/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "¿Qué es TablePro?", "answer": [ - "Un cliente nativo de bases de datos y de código abierto. En el Mac puedes consultar y editar {featuredEngines} y otros motores, y trabajar con esquemas. La app para iPhone y iPad ofrece menos herramientas de bases de datos.", + "Un cliente nativo de bases de datos y de código abierto. En el Mac puedes consultar y editar {featuredEngines} y otros motores, y trabajar con esquemas. La app para iPhone y iPad y la beta para Linux ofrecen menos herramientas de bases de datos.", "Ver todas las funciones." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "¿Qué significa «nativo» aquí?", "answer": [ - "TablePro usa interfaces y controladores nativos, sin Electron ni JDBC. Las apps actuales usan Swift: AppKit y SwiftUI en el Mac, y funciones como Face ID y Atajos en iPhone y iPad." + "TablePro usa interfaces y controladores nativos, sin Electron ni JDBC. Las apps para Mac, iPhone y iPad usan Swift: AppKit y SwiftUI en el Mac, y funciones como Face ID y Atajos en iPhone y iPad. La app para Linux usa Rust, GTK 4 y libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "¿TablePro es gratis?", "answer": [ "Sí. La app para Mac no tiene periodo de prueba ni límite de tiempo. Todos los motores compatibles, IA, MCP y Safe Mode son gratis. Pro y Team añaden las funciones de la página de precios.", - "La app para iPhone y iPad es gratis, sin licencia ni compras dentro de la app." + "La app para iPhone y iPad es gratis, sin licencia ni compras dentro de la app. La app para Linux es de uso gratuito, y por ahora las funciones de pago están en el Mac." ] }, { "id": "open-source", "question": "¿TablePro es de código abierto?", "answer": [ - "Sí. Ambas apps, incluido el código de las funciones de pago, están bajo AGPLv3 en un repositorio de GitHub. Las compilaciones desde el código también verifican las licencias para funciones de pago." + "Sí. Las apps, incluido el código de las funciones de pago, están bajo AGPLv3 en un repositorio de GitHub. Las compilaciones desde el código también verifican las licencias para funciones de pago." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "¿Hay una versión para Windows o Linux?", "answer": [ - "No. No hay versión para Windows. Existe un prototipo para Linux, pero no hay nada que instalar ni fecha de lanzamiento." + "Para Linux, sí: TablePro para Linux está disponible como beta, con su propio conjunto de motores y funciones. Windows no está disponible y no hay fecha de lanzamiento." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "¿Dónde se guardan mis contraseñas?", "answer": [ - "Las contraseñas guardadas permanecen en el llavero. En el Mac también puedes obtenerlas de archivos, variables de entorno, comandos shell, 1Password, Vault o AWS Secrets Manager.", + "Las contraseñas guardadas permanecen en el llavero o, en Linux, en un llavero de Secret Service como GNOME Keyring o KWallet. En el Mac también puedes obtenerlas de archivos, variables de entorno, comandos shell, 1Password, Vault o AWS Secrets Manager.", "La sincronización de contraseñas se activa por separado: Passwords en el Mac o Sync Passwords en iPhone y iPad. Usa el llavero de iCloud." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "¿Cuántos Mac cubre una licencia?", + "question": "¿Cuántos ordenadores cubre una licencia?", "answer": [ - "Pro cubre a una persona en hasta {deviceLimit} Mac. Team tiene al menos {teamMinSeats} puestos, y cada puesto cubre a una persona en hasta {deviceLimit} Mac. El límite es por cuenta, sumando Pro y Team. iPhone y iPad no usan puesto.", - "Para usar tu licencia en otro Mac, elimina uno en Settings > Account o en la página Dispositivos de tu cuenta. Mientras tanto, el otro Mac conserva las funciones gratuitas." + "Pro cubre a una persona en hasta {deviceLimit} ordenadores, Mac o Linux. Team tiene al menos {teamMinSeats} puestos, y cada puesto cubre a una persona en hasta {deviceLimit} ordenadores. El límite es por cuenta, sumando Pro y Team. Por ahora las funciones de pago están en el Mac, pero un ordenador Linux en el que inicies sesión también cuenta. iPhone y iPad no usan puesto.", + "Para usar tu licencia en otro ordenador, elimina uno en la página Dispositivos de tu cuenta o en Settings > Account en el Mac. Mientras tanto, el otro ordenador conserva las funciones gratuitas." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "¿Qué envían las apps a TablePro?", "answer": [ - "La app para Mac comparte datos de uso por defecto; desactívalo en Settings > General > Privacy. A partir de la versión que añade las cuentas de TablePro, van directamente a PostHog: eventos de la app con el modelo de tu Mac, las versiones de la app y de macOS y los tipos de bases, con un ID aleatorio antes de iniciar sesión y el ID de tu cuenta después. Las versiones anteriores a las cuentas de TablePro envían en su lugar un informe diario con un ID de máquina con hash a través de nuestro servidor. Ninguno incluye nombres de host, usuarios, contraseñas, consultas ni filas.", + "La app para Mac comparte datos de uso por defecto; desactívalo en Settings > General > Privacy. A partir de la versión que añade las cuentas de TablePro, van directamente a PostHog: eventos de la app con el modelo de tu Mac, las versiones de la app y de macOS y los tipos de bases, con un ID aleatorio antes de iniciar sesión y el ID de tu cuenta después. Las versiones anteriores a las cuentas de TablePro envían en su lugar un informe diario con un ID de máquina con hash a través de nuestro servidor. Ninguno incluye nombres de host, usuarios, contraseñas, consultas ni filas. La app para Linux también comparte datos de uso por defecto, sin esos datos; desactívalo en sus preferencias.", "Cuando inicias sesión, la app para Mac registra tu Mac en tu cuenta con su ID de máquina, su nombre y las versiones de la app y de macOS, y renueva tu plan una vez al día. Las versiones anteriores a las cuentas de TablePro envían la clave de licencia con esos datos cada {revalidateDays} días. Los informes de iPhone y iPad son opcionales. Team Library recibe los ajustes y SQL guardado que publiques. Consulta la política de privacidad, incluido el registro de IP." ] }, diff --git a/resources/data/content/es/features/ai-mcp.json b/resources/data/content/es/features/ai-mcp.json index fafaf61c..cbdb6931 100644 --- a/resources/data/content/es/features/ai-mcp.json +++ b/resources/data/content/es/features/ai-mcp.json @@ -117,7 +117,7 @@ "id": "iphone", "title": "Disponibilidad", "paragraphs": [ - "IA, MCP y las herramientas de automatización de esta página están disponibles actualmente solo en el Mac." + "La app para iPhone y iPad no tiene la IA, MCP ni las herramientas de automatización de esta página." ], "links": [ { diff --git a/resources/data/content/es/features/connections.json b/resources/data/content/es/features/connections.json index 31e0c001..5cbb97a7 100644 --- a/resources/data/content/es/features/connections.json +++ b/resources/data/content/es/features/connections.json @@ -175,7 +175,7 @@ "title": "En iPhone y iPad", "paragraphs": [ "La app para iPhone y iPad tiene su propio formulario de conexión para {iosPicker}, con grupos, una etiqueta por conexión y favoritos. Los túneles SSH se autentican con contraseña o clave privada, desde un archivo o pegada, y comprueban la clave del host; los agentes SSH y los hosts de salto no se admiten en iPhone y iPad. TLS puede verificar el certificado del servidor, excepto en SQL Server, donde cifra sin verificar. Los certificados permanecen en el dispositivo y nunca se sincronizan.", - "Las contraseñas y las claves pegadas se guardan en el Llavero. Las conexiones de SQL Server sincronizadas desde un Mac pueden autenticarse con Microsoft Entra ID. La importación desde otras apps, AWS IAM, Kerberos, la autenticación de Google, los proxies, los comandos de túnel, los orígenes de contraseña y los tiempos de espera solo están en la app para Mac." + "Las contraseñas y las claves pegadas se guardan en el Llavero. Las conexiones de SQL Server sincronizadas desde un Mac pueden autenticarse con Microsoft Entra ID. La importación desde otras apps, AWS IAM, Kerberos, la autenticación de Google, los proxies, los comandos de túnel, los orígenes de contraseña y los tiempos de espera no están en la app para iPhone y iPad." ], "links": [ { diff --git a/resources/data/content/es/features/data-editing.json b/resources/data/content/es/features/data-editing.json index 8289497e..a0096d47 100644 --- a/resources/data/content/es/features/data-editing.json +++ b/resources/data/content/es/features/data-editing.json @@ -105,7 +105,7 @@ "title": "En iPhone y iPad", "paragraphs": [ "Explora filas como tarjetas, ordénalas y filtra, o toca una clave foránea para ver su fila. Edita valores o establece NULL; editar y eliminar requiere clave primaria. Las filas nuevas empiezan con DEFAULT, con NULL o cadena vacía como alternativas.", - "Safe Mode móvil ofrece {iosSafeModeLevels}, con {iosSafeModeDefault} por defecto. Los cambios pendientes, Preview SQL, reglas de resaltado y Data Rewind están disponibles actualmente solo en el Mac." + "Safe Mode móvil ofrece {iosSafeModeLevels}, con {iosSafeModeDefault} por defecto. Los cambios pendientes, Preview SQL, reglas de resaltado y Data Rewind no están en la app para iPhone y iPad." ], "links": [ { diff --git a/resources/data/content/es/features/schema.json b/resources/data/content/es/features/schema.json index ac772046..844dcb63 100644 --- a/resources/data/content/es/features/schema.json +++ b/resources/data/content/es/features/schema.json @@ -121,7 +121,7 @@ "title": "En iPhone y iPad", "paragraphs": [ "La app muestra columnas, índices y claves foráneas de una tabla en solo lectura. Desde la lista de tablas puedes truncar o eliminar tablas de motores SQL, salvo en conexiones Read-Only.", - "La edición de estructuras, el diagrama ER, Compare & Sync, Copy To, Users & Roles y Server Dashboard solo están en la app para Mac." + "La edición de estructuras, el diagrama ER, Compare & Sync, Copy To, Users & Roles y Server Dashboard no están en la app para iPhone y iPad." ], "links": [ { diff --git a/resources/data/content/es/features/sync-and-teams.json b/resources/data/content/es/features/sync-and-teams.json index 798123dd..4b5580d5 100644 --- a/resources/data/content/es/features/sync-and-teams.json +++ b/resources/data/content/es/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Puestos de Team", "paragraphs": [ - "Un puesto de Team cubre a una persona en hasta {deviceLimit} Mac. Los propietarios y administradores invitan por correo desde el portal de la cuenta, con o sin puesto, y cada invitado se une con el enlace del correo.", + "Un puesto de Team cubre a una persona en hasta {deviceLimit} ordenadores, Mac o Linux. Los propietarios y administradores invitan por correo desde el portal de la cuenta, con o sin puesto, y cada invitado se une con el enlace del correo.", "El propietario cambia los puestos de una suscripción en Facturación, y un equipo con puestos de pago único los conserva; los puestos nuevos llegan con una suscripción a Team. Eliminar a un miembro libera su puesto, y sus Mac pierden las funciones de Team la próxima vez que TablePro se comunica con el servidor." ], "links": [ diff --git a/resources/data/content/es/home.json b/resources/data/content/es/home.json index e311239e..dcbcb138 100644 --- a/resources/data/content/es/home.json +++ b/resources/data/content/es/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Trae tus conexiones", - "lead": "La importación desde otras apps y Open Project Folder solo están en la {macApp}.", + "lead": "La app para iPhone y iPad no importa desde otras apps, y Open Project Folder solo está en la {macApp}.", "import": "Importa conexiones de {apps}, incluidas las contraseñas guardadas.", "importWithoutPasswords": "Las conexiones de {apps} se importan sin sus contraseñas.", "project": "Open Project Folder crea conexiones desde archivos de proyecto compatibles, incluidos .env, docker-compose.yml y esquemas Prisma.", diff --git a/resources/data/content/es/ios.json b/resources/data/content/es/ios.json index 1b6c1de4..d3d732e1 100644 --- a/resources/data/content/es/ios.json +++ b/resources/data/content/es/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "No disponible en iPhone y iPad", - "lead": "Estas funciones solo están en TablePro para Mac:", + "lead": "Estas funciones están en TablePro para Mac:", "items": [ "El asistente de IA y el servidor MCP", "Consultas guardadas, autocompletado, formato de consultas y EXPLAIN", diff --git a/resources/data/content/es/pricing.json b/resources/data/content/es/pricing.json index 0449ae49..97da0206 100644 --- a/resources/data/content/es/pricing.json +++ b/resources/data/content/es/pricing.json @@ -30,8 +30,8 @@ "title": "Licencias", "items": { "macs": { - "question": "¿En cuántos Mac sirve una licencia?", - "answer": "Pro cubre a una persona en hasta {deviceLimit} Mac, igual que cada puesto de Team. Libera un Mac en Settings > Account o en tu cuenta." + "question": "¿En cuántos ordenadores sirve una licencia?", + "answer": "Pro cubre a una persona en hasta {deviceLimit} ordenadores, Mac o Linux, igual que cada puesto de Team. Libera uno en tu cuenta o en Settings > Account en el Mac." }, "offline": { "question": "¿TablePro necesita conexión?", diff --git a/resources/data/content/es/security.json b/resources/data/content/es/security.json index c628eb92..43f173a0 100644 --- a/resources/data/content/es/security.json +++ b/resources/data/content/es/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Niveles de Safe Mode", - "text": "Cada conexión tiene un nivel de Safe Mode: {macSafeModeLevels}. Alert pregunta antes de una escritura, los niveles Safe Mode también piden Touch ID o la contraseña del Mac, los niveles Full preguntan también antes de las lecturas y Read-Only rechaza las escrituras. Una organización puede imponer un nivel mínimo en sus Macs mediante un perfil de configuración. En iPhone y iPad, los niveles son {iosSafeModeLevels}." + "text": "En el Mac, cada conexión tiene un nivel de Safe Mode: {macSafeModeLevels}. Alert pregunta antes de una escritura, los niveles Safe Mode también piden Touch ID o la contraseña del Mac, los niveles Full preguntan también antes de las lecturas y Read-Only rechaza las escrituras. Una organización puede imponer un nivel mínimo en sus Macs mediante un perfil de configuración. En iPhone y iPad, los niveles son {iosSafeModeLevels}, y en Linux, {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Solo local", - "text": "El servidor MCP solo está en la app para Mac y permanece apagado hasta que lo actives o un cliente que hayas configurado lo inicie. Escucha en {mcpHost}, sin modo remoto, y los clientes nunca ven una contraseña." + "text": "En la app para Mac, el servidor MCP permanece apagado hasta que lo actives o un cliente que hayas configurado lo inicie. Escucha en {mcpHost}, sin modo remoto, y los clientes nunca ven una contraseña." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "El código es público", - "text": "Ambas apps son de código abierto bajo AGPLv3, incluido el código de las funciones de pago. Lo que describe esta página se puede leer en el repositorio, junto con los scripts que firman y notarizan cada versión, y puedes compilar la app para Mac tú mismo." + "text": "Las apps son de código abierto bajo AGPLv3, incluido el código de las funciones de pago. Lo que describe esta página se puede leer en el repositorio, junto con los scripts que firman y notarizan cada versión, y puedes compilar la app para Mac tú mismo." } ], "limits": [], diff --git a/resources/data/content/es/teams.json b/resources/data/content/es/teams.json index bfa96c84..18c94782 100644 --- a/resources/data/content/es/teams.json +++ b/resources/data/content/es/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Puestos y miembros", "items": [ - "Un puesto cubre a una persona en hasta {deviceLimit} Mac.", + "Un puesto cubre a una persona en hasta {deviceLimit} ordenadores, Mac o Linux.", "Los propietarios y administradores invitan por correo desde la página Miembros de tu cuenta, con un rol y, si quieren, un puesto. El enlace sirve 7 días y cualquier cuenta de TablePro puede aceptarlo.", "El propietario se encarga de la facturación. Los administradores gestionan los miembros, las invitaciones, Team Library y el registro de auditoría del equipo. Los miembros usan lo que se comparte.", "El propietario cambia los puestos de una suscripción en Facturación, y {merchant} cobra o abona la diferencia prorrateada al momento.", diff --git a/resources/data/content/fr/about.json b/resources/data/content/fr/about.json index d95ba2fb..d5180816 100644 --- a/resources/data/content/fr/about.json +++ b/resources/data/content/fr/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Qui le développe", - "body": "{maker} développe l’application Mac et ses plugins, l’application iPhone et iPad, ainsi que ce site web.", + "body": "{maker} développe l’application Mac et ses plugins, l’application iPhone et iPad, l’application Linux ainsi que ce site web.", "identity": "Le même développeur publie TablePro sur l’App Store et reçoit des contributions via GitHub Sponsors.", "facts": { "maker": "Développeur", @@ -32,7 +32,7 @@ }, "source": { "title": "Code source", - "body": "Les deux applications sont open source sous AGPLv3, y compris le code des fonctionnalités payantes, dans un dépôt GitHub.", + "body": "Les applications sont open source sous AGPLv3, y compris le code des fonctionnalités payantes, dans un dépôt GitHub.", "license": "Le texte de la licence se trouve dans ce même dépôt." }, "contact": { diff --git a/resources/data/content/fr/black-friday.json b/resources/data/content/fr/black-friday.json index 77073a3e..83c7a951 100644 --- a/resources/data/content/fr/black-friday.json +++ b/resources/data/content/fr/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro en paiement unique", "unit": "paiement unique", - "detail": "Sans date d’expiration. {activations} Mac." + "detail": "Sans date d’expiration. {activations} ordinateurs, Mac ou Linux." }, "yearly": { "name": "Pro annuel", "unit": "première année", - "detail": "Puis {yearlyList} par an. {activations} Mac." + "detail": "Puis {yearlyList} par an. {activations} ordinateurs, Mac ou Linux." }, "buy": "Acheter pour {price}", "soon": "À partir du {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "Ce que Pro ajoute", - "lead": "TablePro est gratuit, y compris au travail. Pro ajoute ces fonctionnalités sur {activations} Mac.", + "lead": "TablePro est gratuit, y compris au travail. Pro ajoute ces fonctionnalités à l’app Mac.", "more": "Également dans Pro", "link": "En savoir plus sur {feature}" }, diff --git a/resources/data/content/fr/compare/beekeeper-studio.json b/resources/data/content/fr/compare/beekeeper-studio.json index 3342a811..37615e59 100644 --- a/resources/data/content/fr/compare/beekeeper-studio.json +++ b/resources/data/content/fr/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "Une app native et une app gratuite distincte pour iPhone et iPad." ], "competitor": [ - "Le même client sur Windows, macOS et Linux.", + "La prise en charge de Windows, avec les mêmes fonctions sur macOS et Linux.", "Des connexions à Firebird, SQL Anywhere ou GreengageDB.", "Des espaces cloud pour partager connexions et requêtes, à partir de {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro est une app Mac écrite en Swift avec des pilotes de bases de données natifs. Beekeeper Studio repose sur {technology}. Les deux proposent des compilations distinctes pour Apple silicon et les Mac Intel.", + "text": "L’app Mac de TablePro est écrite en Swift, avec des pilotes de bases de données natifs. Beekeeper Studio repose sur {technology}. Les deux proposent des compilations distinctes pour Apple silicon et les Mac Intel.", "cite": [ "technology", "mac" diff --git a/resources/data/content/fr/compare/datagrip.json b/resources/data/content/fr/compare/datagrip.json index 54ecbb4a..bfdc521d 100644 --- a/resources/data/content/fr/compare/datagrip.json +++ b/resources/data/content/fr/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Des inspections de code et un contrôle de version en plus des requêtes.", "Un IDE complet, gratuit pour un usage non commercial.", - "Windows ou Linux, ou des moteurs JDBC comme Firebird, Informix et Databricks." + "Windows, ou des moteurs JDBC comme Firebird, Informix et Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro est une app Mac écrite en Swift avec des pilotes de bases de données natifs. DataGrip repose sur {technology}.", + "text": "L’app Mac de TablePro est écrite en Swift, avec des pilotes de bases de données natifs. DataGrip repose sur {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/fr/compare/dbeaver.json b/resources/data/content/fr/compare/dbeaver.json index c9f28db1..9fac3e03 100644 --- a/resources/data/content/fr/compare/dbeaver.json +++ b/resources/data/content/fr/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver : fonctions et éditions", - "description": "DBeaver utilise Java et JDBC sur Windows, macOS et Linux. TablePro est natif sur Mac, iPhone et iPad. Comparez bases, IA, MCP et prix." + "description": "DBeaver utilise Java et JDBC sur Windows, macOS et Linux. TablePro est natif sur Mac, iPhone, iPad et Linux. Comparez bases, IA, MCP et prix." }, "og": { "kicker": "Comparer", @@ -18,7 +18,7 @@ "MCP et chat IA gratuits, avec le fournisseur de votre choix." ], "competitor": [ - "La prise en charge de Windows ou Linux.", + "La prise en charge de Windows.", "Des moteurs JDBC au-delà des pilotes pris en charge par TablePro.", "Des outils payants comme un éditeur visuel de requêtes, des diagrammes ER modifiables et des tâches planifiées." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro est une app Mac écrite en Swift, avec des pilotes de bases de données natifs. DBeaver est développé en Java, et son téléchargement inclut un environnement d’exécution Java.", + "text": "L’app Mac de TablePro est écrite en Swift, avec des pilotes de bases de données natifs. DBeaver est développé en Java, et son téléchargement inclut un environnement d’exécution Java.", "cite": [ "technology" ], diff --git a/resources/data/content/fr/compare/dbgate.json b/resources/data/content/fr/compare/dbgate.json index 6ad15ed6..3a719522 100644 --- a/resources/data/content/fr/compare/dbgate.json +++ b/resources/data/content/fr/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DbGate : éditions et plateformes", - "description": "DbGate est un client open source pour Windows, macOS, Linux et le web, avec des éditions Premium payantes. TablePro est open source et natif sur Mac." + "description": "DbGate est un client open source pour Windows, macOS, Linux et le web, avec des éditions Premium payantes. TablePro est open source et natif sur Mac et Linux." }, "og": { "kicker": "Comparer", @@ -18,7 +18,7 @@ "Des sauvegardes gratuites avec les outils de dump des moteurs pris en charge." ], "competitor": [ - "Un client pour Windows, Linux ou un serveur web.", + "Un client pour Windows ou un serveur web.", "Des connexions à Firebird, Azure Cosmos DB ou Firestore.", "Un éditeur visuel de requêtes dans {cells.queryDesigner.edition}, ou la synchronisation DbGate Cloud." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro est une app Mac écrite en Swift, avec des pilotes de base de données natifs. DbGate est construit sur {technology}. Les deux proposent des versions pour les Mac Apple silicon et Intel.", + "text": "L’app Mac de TablePro est écrite en Swift, avec des pilotes de base de données natifs. DbGate est construit sur {technology}. Les deux proposent des versions pour les Mac Apple silicon et Intel.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "Existe-t-il une version web de TablePro ?", - "answer": "Non. TablePro fonctionne sur votre Mac, votre iPhone et votre iPad. Si votre équipe a besoin d’un client de base de données dans le navigateur, DbGate fonctionne aussi comme app web.", + "answer": "Non. TablePro est une app pour Mac, iPhone, iPad et Linux. Si votre équipe a besoin d’un client de base de données dans le navigateur, DbGate fonctionne aussi comme app web.", "href": null }, { diff --git a/resources/data/content/fr/compare/heidisql.json b/resources/data/content/fr/compare/heidisql.json index a2950e6e..a99e1288 100644 --- a/resources/data/content/fr/compare/heidisql.json +++ b/resources/data/content/fr/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL : bases, plateformes et tarifs", - "description": "HeidiSQL est gratuit sur Windows, Linux et Mac Apple silicon depuis 2026. TablePro est natif sur Mac, iPhone et iPad. Comparez bases, versions et prix." + "description": "HeidiSQL est gratuit sur Windows, Linux et Mac Apple silicon depuis 2026. TablePro est natif sur Mac, iPhone, iPad et Linux. Comparez bases, versions et prix." }, "og": { "kicker": "Comparer", @@ -18,7 +18,7 @@ "Chat IA et MCP gratuits, avec une app distincte pour iPhone et iPad." ], "competitor": [ - "Le même client gratuit sur Windows, Linux et Mac avec Apple silicon.", + "Le même client gratuit sur Windows et Mac avec Apple silicon.", "Des connexions à Firebird, Interbase ou ProxySQL.", "Toutes les fonctions gratuites, sans forfait payant." ] diff --git a/resources/data/content/fr/compare/index.json b/resources/data/content/fr/compare/index.json index 8574161e..5c29e10a 100644 --- a/resources/data/content/fr/compare/index.json +++ b/resources/data/content/fr/compare/index.json @@ -16,7 +16,7 @@ "lead": "Partez des outils dont vous avez besoin.", "tablepro": "TablePro est un client natif et open source pour plusieurs types de bases. Le chat IA et MCP sont gratuits dans l’app Mac. Il importe les connexions de {apps}.", "items": { - "tableplus": "Windows ou Linux, ainsi que Vertica et Greenplum.", + "tableplus": "Windows, ainsi que Vertica et Greenplum.", "dbeaver": "Un client multiplateforme compatible avec les pilotes JDBC.", "datagrip": "Un IDE de bases de données avec inspections de code et contrôle de version. Gratuit pour un usage non commercial.", "navicat": "Modélisation des données et projets partagés via Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "Un client gratuit du Mac App Store centré sur MySQL et MariaDB.", "sequel-pro": "Vous quittez Sequel Pro ? Sa dernière version est {status.version}, publiée le {status.date}. Comparez Sequel Ace et TablePro.", "postico": "Un client dédié à PostgreSQL, avec une licence à achat unique.", - "heidisql": "Un client gratuit pour Windows, Linux et Mac avec Apple silicon.", + "heidisql": "Un client gratuit pour Windows et Mac avec Apple silicon.", "phpmyadmin": "Accès à MySQL ou MariaDB dans le navigateur, y compris chez les hébergeurs cPanel.", "mysql-workbench": "L’outil MySQL d’Oracle, avec notebooks SQL et intégration de MySQL Enterprise Backup.", "pgadmin": "Administration PostgreSQL avec débogueur, tâches pgAgent et possibilité de serveur partagé.", @@ -218,6 +218,7 @@ "retrieved": "vérifié le {date}", "latest": "Dernière version {name} à cette date : {version}, publiée le {date}.", "tablepro": "La colonne TablePro décrit TablePro {macVersion} sur Mac et {iosVersion} sur iPhone et iPad.", + "tableproLinux": "La colonne TablePro décrit TablePro {macVersion} sur Mac, {iosVersion} sur iPhone et iPad, et {linuxVersion} sur Linux.", "trademarks": "TablePro est un projet open source indépendant, sans lien avec les éditeurs des produits comparés ici et sans leur aval. Les noms de produits sont des marques de leurs propriétaires respectifs." }, "cta": { diff --git a/resources/data/content/fr/compare/mysql-workbench.json b/resources/data/content/fr/compare/mysql-workbench.json index 071f0449..f0f03d93 100644 --- a/resources/data/content/fr/compare/mysql-workbench.json +++ b/resources/data/content/fr/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench : fonctions et compatibilité", - "description": "MySQL Workbench est l’outil gratuit d’Oracle pour MySQL, reconstruit sur MySQL Shell. TablePro couvre MySQL et d’autres moteurs sur Mac, iPhone et iPad." + "description": "MySQL Workbench est l’outil gratuit d’Oracle pour MySQL, reconstruit sur MySQL Shell. TablePro couvre MySQL et d’autres bases sur Mac, iPhone, iPad et Linux." }, "og": { "kicker": "Comparer", diff --git a/resources/data/content/fr/compare/navicat.json b/resources/data/content/fr/compare/navicat.json index f67a6b4d..342c5fe1 100644 --- a/resources/data/content/fr/compare/navicat.json +++ b/resources/data/content/fr/compare/navicat.json @@ -18,7 +18,7 @@ "Des connexions à ClickHouse, DuckDB ou Cassandra." ], "competitor": [ - "La prise en charge de Windows ou Linux.", + "La prise en charge de Windows.", "La modélisation des données dans Premium Enterprise.", "Navicat Cloud ou Navicat On-Prem Server pour partager connexions, requêtes et modèles." ] diff --git a/resources/data/content/fr/compare/pgadmin.json b/resources/data/content/fr/compare/pgadmin.json index ebc3b00a..8a096bd5 100644 --- a/resources/data/content/fr/compare/pgadmin.json +++ b/resources/data/content/fr/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "L’administration PostgreSQL, avec débogueur PL/pgSQL et tâches pgAgent.", "psql, pg_dump et pg_restore inclus.", - "Une installation sur serveur web partagé, ou la prise en charge de Windows et Linux." + "Une installation sur serveur web partagé, ou la prise en charge de Windows." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro est une app Mac écrite en Swift, avec des pilotes de base de données natifs. pgAdmin est une application web en Python qui s’exécute dans un environnement de bureau {technology} ou sur un serveur web.", + "text": "L’app Mac de TablePro est écrite en Swift, avec des pilotes de base de données natifs. pgAdmin est une application web en Python qui s’exécute dans un environnement de bureau {technology} ou sur un serveur web.", "cite": [ "technology" ], diff --git a/resources/data/content/fr/compare/phpmyadmin.json b/resources/data/content/fr/compare/phpmyadmin.json index 50a4c72d..f8ea618f 100644 --- a/resources/data/content/fr/compare/phpmyadmin.json +++ b/resources/data/content/fr/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "C’est une app pour votre Mac, iPhone et iPad. Vous ne pouvez pas l’ouvrir depuis le navigateur de n’importe quel ordinateur.", + "text": "C’est une app pour Mac, iPhone, iPad et Linux. Vous ne pouvez pas l’ouvrir depuis le navigateur de n’importe quel ordinateur.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/fr/compare/tableplus.json b/resources/data/content/fr/compare/tableplus.json index 7fb052d8..f2833d15 100644 --- a/resources/data/content/fr/compare/tableplus.json +++ b/resources/data/content/fr/compare/tableplus.json @@ -18,7 +18,7 @@ "Une app gratuite pour iPhone et iPad, sans achats intégrés." ], "competitor": [ - "La prise en charge de Windows ou Linux.", + "La prise en charge de Windows.", "Des connexions à Vertica ou Greenplum.", "Un client disponible via Setapp." ] diff --git a/resources/data/content/fr/databases/index.json b/resources/data/content/fr/databases/index.json index 6c03d71a..8200b8a6 100644 --- a/resources/data/content/fr/databases/index.json +++ b/resources/data/content/fr/databases/index.json @@ -84,6 +84,13 @@ "others": "Les connexions aux autres moteurs se synchronisent sur iPhone et iPad et apparaissent dans la liste, mais ne peuvent pas s’y ouvrir.", "link": "TablePro pour iPhone et iPad" }, + "linux": { + "title": "Sur Linux", + "tested": "L’app Linux est une bêta, testée avec {engines}.", + "untested": "Les connexions à {engines} ne sont pas testées sur Linux.", + "others": "Les autres moteurs ne s’y ouvrent pas.", + "link": "Installer sur Linux" + }, "license": { "title": "Inclus dans Free", "body": "Toutes les connexions aux bases prises en charge sont incluses dans Free. Pro et Team ajoutent des fonctions facultatives à l’app Mac.", @@ -131,6 +138,12 @@ "synced": "S’ouvre après synchronisation depuis un Mac", "none": "Ne s’ouvre pas" }, + "linux": { + "tested": "Testé", + "versions": "Testé : {versions}", + "untested": "Non testé", + "none": "Non disponible" + }, "availability": { "devices": "Fonctionne sur {devices}", "bundled": "Pilote intégré à l’app Mac", @@ -184,6 +197,7 @@ "title": "Obtenez TablePro", "mac": "Téléchargez gratuitement l’app Mac. Pro et Team ajoutent des fonctions facultatives.", "ios": "L’app iPhone et iPad est disponible sur l’App Store.", + "linux": "L’app Linux est une bêta gratuite.", "pricing": "Voir les tarifs" } } diff --git a/resources/data/content/fr/download.json b/resources/data/content/fr/download.json index 8768beb2..48802f6f 100644 --- a/resources/data/content/fr/download.json +++ b/resources/data/content/fr/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "Télécharger TablePro", - "description": "Téléchargez TablePro pour les Mac Apple silicon et Intel, ou installez-le avec Homebrew. L’app iPhone et iPad est sur l’App Store." + "description": "Téléchargez TablePro pour Mac ou installez-le via Homebrew. La bêta Linux s’installe sur Ubuntu, Fedora ou Flatpak, l’app iPhone et iPad depuis l’App Store." }, "og": { "kicker": "Télécharger", diff --git a/resources/data/content/fr/faq.json b/resources/data/content/fr/faq.json index 8c821227..9dbb3758 100644 --- a/resources/data/content/fr/faq.json +++ b/resources/data/content/fr/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "Qu’est-ce que TablePro ?", "answer": [ - "Un client natif et open source de bases de données. Sur Mac, interrogez et modifiez {featuredEngines} et d’autres moteurs, et travaillez sur les schémas. L’app iPhone et iPad propose un ensemble plus restreint d’outils.", + "Un client natif et open source de bases de données. Sur Mac, interrogez et modifiez {featuredEngines} et d’autres moteurs, et travaillez sur les schémas. L’app iPhone et iPad et la bêta Linux proposent un ensemble plus restreint d’outils.", "Voir toutes les fonctions." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "Que signifie « natif » ici ?", "answer": [ - "TablePro utilise des interfaces et pilotes natifs, sans Electron ni JDBC. Les apps actuelles sont écrites en Swift : AppKit et SwiftUI sur Mac, et des fonctions comme Face ID et Raccourcis sur iPhone et iPad." + "TablePro utilise des interfaces et pilotes natifs, sans Electron ni JDBC. Les apps Mac, iPhone et iPad sont écrites en Swift : AppKit et SwiftUI sur Mac, et des fonctions comme Face ID et Raccourcis sur iPhone et iPad. L’app Linux utilise Rust, GTK 4 et libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "TablePro est-il gratuit ?", "answer": [ "Oui. L’app Mac n’a ni période d’essai ni limite de durée. Tous les moteurs compatibles, l’IA, MCP et Safe Mode sont gratuits. Pro et Team ajoutent les fonctions de la page des tarifs.", - "L’app iPhone et iPad est gratuite, sans licence ni achats intégrés." + "L’app iPhone et iPad est gratuite, sans licence ni achats intégrés. L’app Linux est gratuite, et les fonctions payantes sont pour l’instant sur Mac." ] }, { "id": "open-source", "question": "TablePro est-il open source ?", "answer": [ - "Oui. Les deux apps, y compris le code des fonctions payantes, sont sous AGPLv3 dans un dépôt GitHub. Les versions compilées depuis le code vérifient aussi les licences des fonctions payantes." + "Oui. Les apps, y compris le code des fonctions payantes, sont sous AGPLv3 dans un dépôt GitHub. Les versions compilées depuis le code vérifient aussi les licences des fonctions payantes." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Existe-t-il une version Windows ou Linux ?", "answer": [ - "Non. Il n’y a aucune version Windows. Un prototype Linux existe, mais il n’y a rien à installer et aucune date de sortie." + "Pour Linux, oui : TablePro pour Linux est disponible en bêta, avec ses propres moteurs et fonctions. Windows n’est pas disponible, et il n’y a aucune date de sortie." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "Où mes mots de passe sont-ils stockés ?", "answer": [ - "Les mots de passe enregistrés restent dans le trousseau. Sur Mac, vous pouvez aussi les lire depuis des fichiers, variables d’environnement, commandes shell, 1Password, Vault ou AWS Secrets Manager.", + "Les mots de passe enregistrés restent dans le trousseau ou, sur Linux, dans un trousseau Secret Service comme GNOME Keyring ou KWallet. Sur Mac, vous pouvez aussi les lire depuis des fichiers, variables d’environnement, commandes shell, 1Password, Vault ou AWS Secrets Manager.", "La synchronisation des mots de passe s’active séparément : Mots de passe (Passwords) sur Mac ou Sync Passwords sur iPhone et iPad. Elle utilise le trousseau iCloud." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "Combien de Mac une licence couvre-t-elle ?", + "question": "Combien d’ordinateurs une licence couvre-t-elle ?", "answer": [ - "Pro couvre une personne sur {deviceLimit} Mac au maximum. Team propose au moins {teamMinSeats} postes, et chaque poste couvre une personne sur {deviceLimit} Mac au maximum. La limite s’applique par compte, Pro et Team confondus. iPhone et iPad n’utilisent aucun poste.", - "Pour utiliser votre licence sur un autre Mac, retirez-en un dans Réglages > Compte (Settings > Account) ou sur la page Appareils de votre compte. En attendant, l’autre Mac garde les fonctions gratuites." + "Pro couvre une personne sur {deviceLimit} ordinateurs au maximum, Mac ou Linux. Team propose au moins {teamMinSeats} postes, et chaque poste couvre une personne sur {deviceLimit} ordinateurs au maximum. La limite s’applique par compte, Pro et Team confondus. Les fonctions payantes sont pour l’instant sur Mac, mais un ordinateur Linux sur lequel vous vous connectez compte aussi. iPhone et iPad n’utilisent aucun poste.", + "Pour utiliser votre licence sur un autre ordinateur, retirez-en un sur la page Appareils de votre compte ou dans Réglages > Compte (Settings > Account) sur Mac. En attendant, l’autre ordinateur garde les fonctions gratuites." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "Que transmettent les applications à TablePro ?", "answer": [ - "L’app Mac partage par défaut des données d’utilisation ; désactivez ce partage dans Réglages > Général > Confidentialité (Settings > General > Privacy). À partir de la version qui ajoute les comptes TablePro, elles vont directement à PostHog : des événements de l’app avec le modèle de votre Mac, les versions de l’app et de macOS et les types de bases, sous un identifiant aléatoire avant la connexion, puis sous l’identifiant de votre compte. Les versions antérieures aux comptes TablePro envoient à la place un rapport quotidien avec un identifiant de machine haché, via notre serveur. Aucun des deux ne contient les noms d’hôtes, identifiants, mots de passe, requêtes ou lignes.", + "L’app Mac partage par défaut des données d’utilisation ; désactivez ce partage dans Réglages > Général > Confidentialité (Settings > General > Privacy). À partir de la version qui ajoute les comptes TablePro, elles vont directement à PostHog : des événements de l’app avec le modèle de votre Mac, les versions de l’app et de macOS et les types de bases, sous un identifiant aléatoire avant la connexion, puis sous l’identifiant de votre compte. Les versions antérieures aux comptes TablePro envoient à la place un rapport quotidien avec un identifiant de machine haché, via notre serveur. Aucun des deux ne contient les noms d’hôtes, identifiants, mots de passe, requêtes ou lignes. L’app Linux partage aussi par défaut des données d’utilisation, sans ces informations ; désactivez ce partage dans ses préférences.", "Une fois que vous êtes connecté, l’app Mac enregistre votre Mac dans votre compte avec son identifiant de machine, son nom et les versions de l’app et de macOS, puis renouvelle votre offre une fois par jour. Les versions antérieures aux comptes TablePro envoient la clé de licence avec ces informations tous les {revalidateDays} jours. Les rapports iPhone et iPad sont facultatifs. Team Library reçoit les réglages et SQL enregistrés que vous publiez. Voir la politique de confidentialité, y compris la journalisation des IP." ] }, diff --git a/resources/data/content/fr/features/ai-mcp.json b/resources/data/content/fr/features/ai-mcp.json index 88efd3c0..49a40b61 100644 --- a/resources/data/content/fr/features/ai-mcp.json +++ b/resources/data/content/fr/features/ai-mcp.json @@ -117,7 +117,7 @@ "id": "iphone", "title": "Sur Mac", "paragraphs": [ - "L’IA, MCP et les outils d’automatisation de cette page sont actuellement disponibles uniquement sur Mac." + "L’app iPhone et iPad n’a ni l’IA, ni MCP, ni les outils d’automatisation de cette page." ], "links": [ { diff --git a/resources/data/content/fr/features/connections.json b/resources/data/content/fr/features/connections.json index 1b9add00..e9cac437 100644 --- a/resources/data/content/fr/features/connections.json +++ b/resources/data/content/fr/features/connections.json @@ -175,7 +175,7 @@ "title": "Sur iPhone et iPad", "paragraphs": [ "L’app iPhone et iPad possède son propre formulaire de connexion pour {iosPicker}, avec des groupes, un tag par connexion et des favoris. Les tunnels SSH s’authentifient avec un mot de passe ou une clé privée provenant d’un fichier ou collée, et vérifient la clé de l’hôte ; les agents SSH et les hôtes de rebond ne sont pas pris en charge sur iPhone et iPad. TLS peut vérifier le certificat du serveur, sauf sur SQL Server, où il chiffre sans vérification. Les certificats restent sur l’appareil et ne sont jamais synchronisés.", - "Les mots de passe et les clés collées sont conservés dans le Trousseau. Les connexions SQL Server synchronisées depuis un Mac peuvent s’authentifier avec Microsoft Entra ID. L’import depuis d’autres apps, AWS IAM, Kerberos, l’authentification Google, les proxys et commandes de tunnel, les sources de mot de passe et les délais d’expiration sont réservés à l’app Mac." + "Les mots de passe et les clés collées sont conservés dans le Trousseau. Les connexions SQL Server synchronisées depuis un Mac peuvent s’authentifier avec Microsoft Entra ID. L’import depuis d’autres apps, AWS IAM, Kerberos, l’authentification Google, les proxys et commandes de tunnel, les sources de mot de passe et les délais d’expiration ne sont pas dans l’app iPhone et iPad." ], "links": [ { diff --git a/resources/data/content/fr/features/data-editing.json b/resources/data/content/fr/features/data-editing.json index d0182c87..69bdd3e6 100644 --- a/resources/data/content/fr/features/data-editing.json +++ b/resources/data/content/fr/features/data-editing.json @@ -105,7 +105,7 @@ "title": "Sur iPhone et iPad", "paragraphs": [ "Parcourez les lignes en cartes, triez et filtrez, ou touchez une clé étrangère pour voir sa ligne. Modifiez les valeurs ou définissez NULL ; édition et suppression nécessitent une clé primaire. Les nouvelles lignes commencent avec DEFAULT, avec NULL et chaîne vide comme alternatives.", - "Safe Mode mobile propose {iosSafeModeLevels}, avec {iosSafeModeDefault} par défaut. Les modifications en attente, Preview SQL, règles de surbrillance et Data Rewind sont actuellement réservés au Mac." + "Safe Mode mobile propose {iosSafeModeLevels}, avec {iosSafeModeDefault} par défaut. Les modifications en attente, Preview SQL, règles de surbrillance et Data Rewind ne sont pas dans l’app iPhone et iPad." ], "links": [ { diff --git a/resources/data/content/fr/features/schema.json b/resources/data/content/fr/features/schema.json index d3b51b4a..afc615bd 100644 --- a/resources/data/content/fr/features/schema.json +++ b/resources/data/content/fr/features/schema.json @@ -121,7 +121,7 @@ "title": "Sur iPhone et iPad", "paragraphs": [ "L’application iPhone et iPad affiche les colonnes, les index et les clés étrangères d’une table, en lecture seule. Depuis la liste des tables, vous pouvez tronquer ou supprimer une table sur un moteur SQL, sauf si la connexion est en Read-Only.", - "La modification de structure, le diagramme ER, Compare & Sync, Copy To, Users & Roles et Server Dashboard n’existent que dans l’application Mac." + "La modification de structure, le diagramme ER, Compare & Sync, Copy To, Users & Roles et Server Dashboard ne sont pas dans l’application iPhone et iPad." ], "links": [ { diff --git a/resources/data/content/fr/features/sync-and-teams.json b/resources/data/content/fr/features/sync-and-teams.json index 099b92b8..034482e3 100644 --- a/resources/data/content/fr/features/sync-and-teams.json +++ b/resources/data/content/fr/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Postes Team", "paragraphs": [ - "Un poste Team couvre une personne sur {deviceLimit} Mac au maximum. Les propriétaires et administrateurs invitent par e-mail depuis le portail du compte, avec ou sans poste, et chaque invité rejoint l’équipe par le lien reçu.", + "Un poste Team couvre une personne sur {deviceLimit} ordinateurs au maximum, Mac ou Linux. Les propriétaires et administrateurs invitent par e-mail depuis le portail du compte, avec ou sans poste, et chaque invité rejoint l’équipe par le lien reçu.", "Le propriétaire modifie les postes d’un abonnement dans Facturation, et une équipe qui a des postes en achat unique les garde ; les postes supplémentaires passent par un abonnement Team. Retirer un membre libère son poste, et ses Mac perdent les fonctions de Team la prochaine fois que TablePro contacte le serveur." ], "links": [ diff --git a/resources/data/content/fr/home.json b/resources/data/content/fr/home.json index 429e6ff9..7b2b2a36 100644 --- a/resources/data/content/fr/home.json +++ b/resources/data/content/fr/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Importez vos connexions", - "lead": "L’importation depuis d’autres applications et Open Project Folder sont uniquement disponibles dans l’{macApp}.", + "lead": "L’app iPhone et iPad n’importe pas depuis d’autres applications, et Open Project Folder est uniquement disponible dans l’{macApp}.", "import": "Importez les connexions depuis {apps}, mots de passe enregistrés compris.", "importWithoutPasswords": "Les connexions depuis {apps} sont importées sans leurs mots de passe.", "project": "Open Project Folder crée des connexions depuis les fichiers de projet compatibles, dont .env, docker-compose.yml et les schémas Prisma.", diff --git a/resources/data/content/fr/ios.json b/resources/data/content/fr/ios.json index b5f91d14..fc6c2e2a 100644 --- a/resources/data/content/fr/ios.json +++ b/resources/data/content/fr/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "Non disponible sur iPhone et iPad", - "lead": "Ces fonctionnalités sont uniquement disponibles dans TablePro pour Mac :", + "lead": "Ces fonctionnalités sont disponibles dans TablePro pour Mac :", "items": [ "L’assistant IA et le serveur MCP", "Requêtes enregistrées, autocomplétion, formatage des requêtes et EXPLAIN", diff --git a/resources/data/content/fr/pricing.json b/resources/data/content/fr/pricing.json index ac3961f1..18173fce 100644 --- a/resources/data/content/fr/pricing.json +++ b/resources/data/content/fr/pricing.json @@ -30,8 +30,8 @@ "title": "Licences", "items": { "macs": { - "question": "Combien de Mac une licence couvre-t-elle ?", - "answer": "Pro couvre une personne sur {deviceLimit} Mac au maximum, comme chaque poste Team. Libérez un Mac dans Réglages > Compte (Settings > Account) ou dans votre compte." + "question": "Combien d’ordinateurs une licence couvre-t-elle ?", + "answer": "Pro couvre une personne sur {deviceLimit} ordinateurs au maximum, Mac ou Linux, comme chaque poste Team. Libérez-en un dans votre compte ou dans Réglages > Compte (Settings > Account) sur Mac." }, "offline": { "question": "TablePro doit-il être en ligne ?", diff --git a/resources/data/content/fr/security.json b/resources/data/content/fr/security.json index 7b163fe8..adf3d4fa 100644 --- a/resources/data/content/fr/security.json +++ b/resources/data/content/fr/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Niveaux de Safe Mode", - "text": "Chaque connexion a un niveau de Safe Mode : {macSafeModeLevels}. Alert demande confirmation avant une écriture, les niveaux Safe Mode demandent aussi Touch ID ou le mot de passe du Mac, les niveaux (Full) demandent aussi avant les lectures, et Read-Only refuse les écritures. Une organisation peut imposer un niveau minimal sur ses Mac par un profil de configuration. Sur iPhone et iPad, les niveaux sont {iosSafeModeLevels}." + "text": "Sur Mac, chaque connexion a un niveau de Safe Mode : {macSafeModeLevels}. Alert demande confirmation avant une écriture, les niveaux Safe Mode demandent aussi Touch ID ou le mot de passe du Mac, les niveaux (Full) demandent aussi avant les lectures, et Read-Only refuse les écritures. Une organisation peut imposer un niveau minimal sur ses Mac par un profil de configuration. Sur iPhone et iPad, les niveaux sont {iosSafeModeLevels}, et sur Linux {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Uniquement en local", - "text": "Le serveur MCP n’existe que dans l’application Mac et reste désactivé jusqu’à ce que vous l’activiez ou qu’un client configuré le démarre. Il écoute sur {mcpHost}, sans mode distant, et les clients ne voient jamais de mot de passe." + "text": "Dans l’application Mac, le serveur MCP reste désactivé jusqu’à ce que vous l’activiez ou qu’un client configuré le démarre. Il écoute sur {mcpHost}, sans mode distant, et les clients ne voient jamais de mot de passe." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "Le code est public", - "text": "Les deux applications sont open source sous AGPLv3, y compris le code des fonctionnalités payantes. Ce que décrit cette page se lit dans le dépôt, avec les scripts qui signent et notarient chaque version, et vous pouvez compiler l’application Mac vous-même." + "text": "Les applications sont open source sous AGPLv3, y compris le code des fonctionnalités payantes. Ce que décrit cette page se lit dans le dépôt, avec les scripts qui signent et notarient chaque version, et vous pouvez compiler l’application Mac vous-même." } ], "limits": [], diff --git a/resources/data/content/fr/teams.json b/resources/data/content/fr/teams.json index 78edaced..72657967 100644 --- a/resources/data/content/fr/teams.json +++ b/resources/data/content/fr/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Postes et membres", "items": [ - "Un poste couvre une personne sur {deviceLimit} Mac au maximum.", + "Un poste couvre une personne sur {deviceLimit} ordinateurs au maximum, Mac ou Linux.", "Les propriétaires et administrateurs invitent par e-mail depuis la page Membres de votre compte, avec un rôle et, s’ils le souhaitent, un poste. Le lien est valable 7 jours, et n’importe quel compte TablePro peut l’accepter.", "Le propriétaire gère la facturation. Les administrateurs gèrent les membres, les invitations, Team Library et le journal d’audit de l’équipe. Les membres utilisent ce qui est partagé.", "Le propriétaire modifie les postes d’un abonnement dans Facturation, et {merchant} facture ou crédite aussitôt la différence au prorata.", diff --git a/resources/data/content/id/about.json b/resources/data/content/id/about.json index fd65da89..f6858c10 100644 --- a/resources/data/content/id/about.json +++ b/resources/data/content/id/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Siapa pembuatnya", - "body": "{maker} membuat aplikasi Mac beserta plugin-nya, aplikasi iPhone dan iPad, serta situs web ini.", + "body": "{maker} membuat aplikasi Mac beserta plugin-nya, aplikasi iPhone dan iPad, aplikasi Linux, serta situs web ini.", "identity": "Pengembang yang sama menerbitkan TablePro di App Store dan menerima dukungan melalui GitHub Sponsors.", "facts": { "maker": "Pembuat", @@ -32,7 +32,7 @@ }, "source": { "title": "Kode sumber", - "body": "Kedua aplikasi bersumber terbuka di bawah AGPLv3, termasuk kode fitur berbayar, dalam satu repositori di GitHub.", + "body": "Aplikasi-aplikasinya bersumber terbuka di bawah AGPLv3, termasuk kode fitur berbayar, dalam satu repositori di GitHub.", "license": "Teks lisensi ada di repositori yang sama." }, "contact": { diff --git a/resources/data/content/id/black-friday.json b/resources/data/content/id/black-friday.json index b80d87f6..69c42fa5 100644 --- a/resources/data/content/id/black-friday.json +++ b/resources/data/content/id/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro sekali bayar", "unit": "sekali bayar", - "detail": "Tanpa tanggal kedaluwarsa. {activations} Mac." + "detail": "Tanpa tanggal kedaluwarsa. {activations} komputer, Mac atau Linux." }, "yearly": { "name": "Pro tahunan", "unit": "tahun pertama", - "detail": "Setelah itu {yearlyList} per tahun. {activations} Mac." + "detail": "Setelah itu {yearlyList} per tahun. {activations} komputer, Mac atau Linux." }, "buy": "Beli seharga {price}", "soon": "Mulai {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "Yang ditambahkan Pro", - "lead": "TablePro gratis, termasuk di tempat kerja. Pro menambahkan fitur-fitur ini di {activations} Mac.", + "lead": "TablePro gratis, termasuk di tempat kerja. Pro menambahkan fitur-fitur ini ke aplikasi Mac.", "more": "Juga di Pro", "link": "Selengkapnya tentang {feature}" }, diff --git a/resources/data/content/id/compare/beekeeper-studio.json b/resources/data/content/id/compare/beekeeper-studio.json index 0498daeb..91c65090 100644 --- a/resources/data/content/id/compare/beekeeper-studio.json +++ b/resources/data/content/id/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "Aplikasi native dan aplikasi gratis terpisah untuk iPhone dan iPad." ], "competitor": [ - "Klien yang sama di Windows, macOS, dan Linux.", + "Dukungan Windows, dengan fitur yang sama di macOS dan Linux.", "Koneksi Firebird, SQL Anywhere, atau GreengageDB.", "Workspace cloud untuk berbagi koneksi dan kueri, mulai dari {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro adalah aplikasi Mac yang ditulis dalam Swift, dengan driver database native. Beekeeper Studio dibangun di atas {technology}. Keduanya menawarkan build terpisah untuk Mac Apple silicon dan Intel.", + "text": "Aplikasi Mac TablePro ditulis dalam Swift, dengan driver database native. Beekeeper Studio dibangun di atas {technology}. Keduanya menawarkan build terpisah untuk Mac Apple silicon dan Intel.", "cite": [ "technology", "mac" diff --git a/resources/data/content/id/compare/datagrip.json b/resources/data/content/id/compare/datagrip.json index 11e5af64..17503bdf 100644 --- a/resources/data/content/id/compare/datagrip.json +++ b/resources/data/content/id/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Inspeksi kode dan kontrol versi bersama kueri.", "IDE lengkap gratis untuk pekerjaan nonkomersial.", - "Dukungan Windows atau Linux, atau engine JDBC seperti Firebird, Informix, dan Databricks." + "Dukungan Windows, atau engine JDBC seperti Firebird, Informix, dan Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro adalah aplikasi Mac yang ditulis dalam Swift, dengan driver database native. DataGrip dibangun di atas {technology}.", + "text": "Aplikasi Mac TablePro ditulis dalam Swift, dengan driver database native. DataGrip dibangun di atas {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/id/compare/dbeaver.json b/resources/data/content/id/compare/dbeaver.json index 3bc1f072..195f5b42 100644 --- a/resources/data/content/id/compare/dbeaver.json +++ b/resources/data/content/id/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver: fitur dan edisi", - "description": "DBeaver memakai Java dan JDBC di Windows, macOS, dan Linux. TablePro native untuk Mac, iPhone, dan iPad. Bandingkan database, AI, MCP, dan harga." + "description": "DBeaver memakai Java dan JDBC di Windows, macOS, dan Linux. TablePro native untuk Mac, iPhone, iPad, dan Linux. Bandingkan database, AI, MCP, dan harga." }, "og": { "kicker": "Perbandingan", @@ -18,7 +18,7 @@ "MCP dan chat AI gratis dengan penyedia pilihan Anda." ], "competitor": [ - "Dukungan Windows atau Linux.", + "Dukungan Windows.", "Engine JDBC di luar driver yang didukung TablePro.", "Alat berbayar seperti pembuat kueri visual, diagram ER yang dapat diedit, dan tugas terjadwal." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro adalah aplikasi Mac yang ditulis dalam Swift, dengan driver database native. DBeaver dibangun di atas Java, dan unduhannya menyertakan runtime Java.", + "text": "Aplikasi Mac TablePro ditulis dalam Swift, dengan driver database native. DBeaver dibangun di atas Java, dan unduhannya menyertakan runtime Java.", "cite": [ "technology" ], diff --git a/resources/data/content/id/compare/dbgate.json b/resources/data/content/id/compare/dbgate.json index cb415f61..083ef64a 100644 --- a/resources/data/content/id/compare/dbgate.json +++ b/resources/data/content/id/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DbGate: edisi dan platform yang didukung", - "description": "DbGate adalah klien sumber terbuka untuk Windows, macOS, Linux, dan web, dengan edisi Premium berbayar. TablePro bersumber terbuka dan native di Mac." + "description": "DbGate adalah klien sumber terbuka untuk Windows, macOS, Linux, dan web, dengan edisi Premium berbayar. TablePro bersumber terbuka dan native di Mac dan Linux." }, "og": { "kicker": "Perbandingan", @@ -18,7 +18,7 @@ "Pencadangan gratis melalui alat dump engine yang didukung." ], "competitor": [ - "Klien untuk Windows, Linux, atau server web.", + "Klien untuk Windows atau server web.", "Koneksi Firebird, Azure Cosmos DB, atau Firestore.", "Perancang kueri visual dalam {cells.queryDesigner.edition}, atau sinkronisasi DbGate Cloud." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro adalah aplikasi Mac yang ditulis dalam Swift, dengan driver database native. DbGate dibangun di atas {technology}. Keduanya menyediakan build untuk Mac Apple silicon dan Intel.", + "text": "Aplikasi Mac TablePro ditulis dalam Swift, dengan driver database native. DbGate dibangun di atas {technology}. Keduanya menyediakan build untuk Mac Apple silicon dan Intel.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "Apakah ada versi web TablePro?", - "answer": "Tidak. TablePro berjalan di Mac, iPhone, dan iPad Anda. Jika tim Anda membutuhkan klien database di peramban, DbGate juga berjalan sebagai aplikasi web.", + "answer": "Tidak. TablePro adalah aplikasi untuk Mac, iPhone, iPad, dan Linux. Jika tim Anda membutuhkan klien database di peramban, DbGate juga berjalan sebagai aplikasi web.", "href": null }, { diff --git a/resources/data/content/id/compare/heidisql.json b/resources/data/content/id/compare/heidisql.json index bbdd3e93..4a9906f0 100644 --- a/resources/data/content/id/compare/heidisql.json +++ b/resources/data/content/id/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL: database, platform, dan harga", - "description": "HeidiSQL gratis di Windows, Linux, dan Mac Apple silicon sejak 2026. TablePro native di Mac, iPhone, dan iPad. Bandingkan database, build, dan harga." + "description": "HeidiSQL gratis di Windows, Linux, dan Mac Apple silicon sejak 2026. TablePro native di Mac, iPhone, iPad, dan Linux. Bandingkan database, build, dan harga." }, "og": { "kicker": "Perbandingan", @@ -18,7 +18,7 @@ "Chat AI dan MCP gratis, serta aplikasi terpisah untuk iPhone dan iPad." ], "competitor": [ - "Klien gratis yang sama di Windows, Linux, dan Mac Apple silicon.", + "Klien gratis yang sama di Windows dan Mac Apple silicon.", "koneksi Firebird, Interbase atau ProxySQL.", "Setiap fitur gratis, tanpa paket berbayar." ] diff --git a/resources/data/content/id/compare/index.json b/resources/data/content/id/compare/index.json index abaf2cc9..ea07e242 100644 --- a/resources/data/content/id/compare/index.json +++ b/resources/data/content/id/compare/index.json @@ -16,7 +16,7 @@ "lead": "Mulailah dengan alat yang Anda perlukan.", "tablepro": "TablePro adalah klien database native dan open source untuk beberapa jenis database. Chat AI dan MCP gratis di app Mac. Impor koneksi dari {apps}.", "items": { - "tableplus": "Dukungan Windows atau Linux, ditambah Vertica dan Greenplum.", + "tableplus": "Dukungan Windows, ditambah Vertica dan Greenplum.", "dbeaver": "Klien lintas platform dengan dukungan driver JDBC.", "datagrip": "IDE database dengan inspeksi kode dan kontrol versi. Gratis untuk pekerjaan non-komersial.", "navicat": "Pemodelan data dan proyek bersama melalui Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "Klien Mac App Store gratis yang berfokus pada MySQL dan MariaDB.", "sequel-pro": "Beralih dari Sequel Pro? Rilis terakhirnya adalah {status.version}, pada {status.date}. Bandingkan Sequel Ace dan TablePro.", "postico": "Klien PostgreSQL terfokus dengan lisensi satu kali.", - "heidisql": "Klien gratis untuk Windows, Linux, dan Mac dengan Apple silicon.", + "heidisql": "Klien gratis untuk Windows dan Mac dengan Apple silicon.", "phpmyadmin": "Akses MySQL atau MariaDB melalui browser Anda, termasuk hosting cPanel.", "mysql-workbench": "Alat Oracle MySQL, dengan notebook SQL dan integrasi MySQL Enterprise Backup.", "pgadmin": "Administrasi PostgreSQL, dengan debugger, pekerjaan pgAgent, dan opsi server bersama.", @@ -218,6 +218,7 @@ "retrieved": "diperiksa pada {date}", "latest": "Rilis {name} terbaru pada tanggal itu: {version}, diterbitkan {date}.", "tablepro": "Kolom TablePro menjelaskan TablePro {macVersion} untuk Mac dan {iosVersion} untuk iPhone dan iPad.", + "tableproLinux": "Kolom TablePro menjelaskan TablePro {macVersion} untuk Mac, {iosVersion} untuk iPhone dan iPad, dan {linuxVersion} untuk Linux.", "trademarks": "TablePro adalah proyek sumber terbuka independen yang tidak berafiliasi dengan pembuat produk yang dibandingkan di sini dan tidak didukung oleh mereka. Nama produk adalah merek dagang pemiliknya masing-masing." }, "cta": { diff --git a/resources/data/content/id/compare/mysql-workbench.json b/resources/data/content/id/compare/mysql-workbench.json index 06937bac..92d6a1b3 100644 --- a/resources/data/content/id/compare/mysql-workbench.json +++ b/resources/data/content/id/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench: fitur dan kompatibilitas", - "description": "MySQL Workbench adalah alat MySQL gratis dari Oracle, kini dibangun ulang di atas MySQL Shell. TablePro mendukung MySQL dan mesin lain di Mac dan iPhone." + "description": "MySQL Workbench adalah alat MySQL gratis dari Oracle, kini dibangun ulang di atas MySQL Shell. TablePro mendukung MySQL dan lainnya di Mac, iPhone, dan Linux." }, "og": { "kicker": "Perbandingan", diff --git a/resources/data/content/id/compare/navicat.json b/resources/data/content/id/compare/navicat.json index 853339db..7a98f9ff 100644 --- a/resources/data/content/id/compare/navicat.json +++ b/resources/data/content/id/compare/navicat.json @@ -18,7 +18,7 @@ "koneksi ClickHouse, DuckDB atau Cassandra." ], "competitor": [ - "Dukungan Windows atau Linux.", + "Dukungan Windows.", "Pemodelan data di Premium Enterprise.", "Navicat Cloud atau Navicat On-Prem Server untuk berbagi koneksi, kueri, dan model." ] diff --git a/resources/data/content/id/compare/pgadmin.json b/resources/data/content/id/compare/pgadmin.json index e8746c5e..c17a7dfd 100644 --- a/resources/data/content/id/compare/pgadmin.json +++ b/resources/data/content/id/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "Administrasi PostgreSQL, termasuk debugger PL/pgSQL dan pekerjaan pgAgent.", "Paket psql, pg_dump dan pg_restore.", - "Instalasi server web bersama, atau dukungan Windows dan Linux." + "Instalasi server web bersama, atau dukungan Windows." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro adalah aplikasi Mac yang ditulis dalam Swift, dengan driver database native. pgAdmin adalah aplikasi web Python yang berjalan dalam runtime desktop {technology} atau di server web.", + "text": "Aplikasi Mac TablePro ditulis dalam Swift, dengan driver database native. pgAdmin adalah aplikasi web Python yang berjalan dalam runtime desktop {technology} atau di server web.", "cite": [ "technology" ], diff --git a/resources/data/content/id/compare/phpmyadmin.json b/resources/data/content/id/compare/phpmyadmin.json index 9171dcae..7f5054b5 100644 --- a/resources/data/content/id/compare/phpmyadmin.json +++ b/resources/data/content/id/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "Aplikasi untuk Mac, iPhone, dan iPad. Anda tidak dapat membukanya dari peramban komputer mana pun.", + "text": "Aplikasi untuk Mac, iPhone, iPad, dan Linux. Anda tidak dapat membukanya dari peramban komputer mana pun.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/id/compare/tableplus.json b/resources/data/content/id/compare/tableplus.json index c79b13bf..4b4cdc02 100644 --- a/resources/data/content/id/compare/tableplus.json +++ b/resources/data/content/id/compare/tableplus.json @@ -18,7 +18,7 @@ "Aplikasi iPhone dan iPad gratis tanpa pembelian dalam aplikasi." ], "competitor": [ - "Dukungan Windows atau Linux.", + "Dukungan Windows.", "koneksi Vertica atau Greenplum.", "Klien tersedia melalui Setapp." ] diff --git a/resources/data/content/id/databases/index.json b/resources/data/content/id/databases/index.json index 51c01cb9..c275cdc6 100644 --- a/resources/data/content/id/databases/index.json +++ b/resources/data/content/id/databases/index.json @@ -84,6 +84,13 @@ "others": "Koneksi ke mesin lainnya disinkronkan ke iPhone dan iPad dan ditampilkan dalam daftar, tetapi tidak dapat dibuka di sana.", "link": "TablePro untuk iPhone dan iPad" }, + "linux": { + "title": "Di Linux", + "tested": "Aplikasi Linux masih beta dan sudah diuji dengan {engines}.", + "untested": "Koneksi ke {engines} belum diuji di Linux.", + "others": "Mesin lainnya tidak dapat dibuka di sana.", + "link": "Instal di Linux" + }, "license": { "title": "Termasuk dalam Gratis", "body": "Setiap koneksi database yang didukung disertakan dalam Gratis. Pro dan Team menambahkan fitur opsional ke aplikasi Mac.", @@ -131,6 +138,12 @@ "synced": "Dapat dibuka jika disinkronkan dari Mac", "none": "Tidak dapat dibuka" }, + "linux": { + "tested": "Teruji", + "versions": "Teruji: {versions}", + "untested": "Belum diuji", + "none": "Tidak tersedia" + }, "availability": { "devices": "Berfungsi di {devices}", "bundled": "Driver disertakan dalam aplikasi Mac", @@ -184,6 +197,7 @@ "title": "Unduh TablePro", "mac": "Unduh aplikasi Mac secara gratis. Pro dan Team menambahkan fitur opsional.", "ios": "Aplikasi iPhone dan iPad tersedia di App Store.", + "linux": "Aplikasi Linux adalah versi beta gratis.", "pricing": "Lihat harga" } } diff --git a/resources/data/content/id/download.json b/resources/data/content/id/download.json index b66a1025..41371009 100644 --- a/resources/data/content/id/download.json +++ b/resources/data/content/id/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "Unduh TablePro", - "description": "Unduh TablePro untuk Mac Apple silicon dan Intel, atau instal dengan Homebrew. Aplikasi iPhone dan iPad ada di App Store." + "description": "Unduh TablePro untuk Mac atau instal dengan Homebrew. Instal versi beta Linux di Ubuntu, Fedora, atau Flatpak, dan aplikasi iPhone dan iPad dari App Store." }, "og": { "kicker": "Unduh", diff --git a/resources/data/content/id/faq.json b/resources/data/content/id/faq.json index ca609742..ffbe9521 100644 --- a/resources/data/content/id/faq.json +++ b/resources/data/content/id/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "Apa itu TablePro?", "answer": [ - "Klien database native dan open source. Di Mac, kueri dan edit {featuredEngines} dan lainnya serta gunakan skema. App iPhone dan iPad menawarkan alat database yang lebih terbatas.", + "Klien database native dan open source. Di Mac, kueri dan edit {featuredEngines} dan lainnya serta gunakan skema. App iPhone dan iPad serta versi beta Linux menawarkan alat database yang lebih terbatas.", "Lihat semua fitur." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "Apa arti “native” di sini?", "answer": [ - "TablePro menggunakan antarmuka asli dan driver database, tanpa Electron atau JDBC. Aplikasi saat ini menggunakan Swift: AppKit dan SwiftUI di Mac, dan fitur perangkat seperti Face ID dan Pintasan di iPhone dan iPad." + "TablePro menggunakan antarmuka asli dan driver database, tanpa Electron atau JDBC. Aplikasi Mac, iPhone, dan iPad menggunakan Swift: AppKit dan SwiftUI di Mac, dan fitur perangkat seperti Face ID dan Pintasan di iPhone dan iPad. Aplikasi Linux menggunakan Rust, GTK 4, dan libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "Apakah TablePro gratis?", "answer": [ "Ya. Aplikasi Mac tidak memiliki masa percobaan atau batas waktu. Semua mesin yang didukung, AI, MCP dan Safe Mode gratis. Pro dan Team menambahkan fitur pada halaman harga.", - "Aplikasi iPhone dan iPad gratis, tanpa lisensi atau pembelian dalam aplikasi." + "Aplikasi iPhone dan iPad gratis, tanpa lisensi atau pembelian dalam aplikasi. Aplikasi Linux gratis digunakan, dan untuk saat ini fitur berbayar ada di Mac." ] }, { "id": "open-source", "question": "Apakah TablePro bersumber terbuka?", "answer": [ - "Ya. Kedua aplikasi, termasuk kode fitur berbayar, berada di bawah AGPLv3 dalam satu repositori GitHub. Pembuatan dari sumber masih memeriksa lisensi untuk fitur berbayar." + "Ya. Aplikasi-aplikasinya, termasuk kode fitur berbayar, berada di bawah AGPLv3 dalam satu repositori GitHub. Pembuatan dari sumber masih memeriksa lisensi untuk fitur berbayar." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Apakah ada versi Windows atau Linux?", "answer": [ - "Tidak. Tidak ada versi Windows. Prototipe Linux ada, tetapi tidak ada yang dapat diinstal dan tidak ada tanggal rilis." + "Untuk Linux, ya: TablePro untuk Linux tersedia sebagai versi beta, dengan engine dan fitur tersendiri. Windows tidak tersedia, dan tidak ada tanggal rilis." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "Di mana kata sandi disimpan?", "answer": [ - "Kata sandi yang disimpan tetap berada di Rantai Kunci. Di Mac, Anda dapat menyelesaikannya dari file, variabel lingkungan, perintah shell, 1Password, Vault, atau AWS Secrets Manager.", + "Kata sandi yang disimpan tetap berada di Rantai Kunci, atau di Linux dalam keyring Secret Service seperti GNOME Keyring atau KWallet. Di Mac, Anda dapat menyelesaikannya dari file, variabel lingkungan, perintah shell, 1Password, Vault, atau AWS Secrets Manager.", "Sinkronisasi kata sandi adalah pilihan terpisah: aktifkan Passwords di Mac atau Sync Passwords di iPhone dan iPad. Ini menggunakan iCloud Keychain." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "Berapa Mac yang dicakup lisensi?", + "question": "Berapa komputer yang dicakup lisensi?", "answer": [ - "Pro mencakup satu orang pada maksimal {deviceLimit} Mac. Team menyediakan minimal {teamMinSeats} seat, dan setiap seat mencakup satu orang pada maksimal {deviceLimit} Mac. Batas ini berlaku per akun, gabungan Pro dan Team. iPhone dan iPad tidak menggunakan seat.", - "Untuk memakai lisensi di Mac lain, hapus satu Mac di Settings > Account atau di halaman Perangkat pada akun Anda. Sementara itu, Mac lain tersebut tetap memakai fitur gratis." + "Pro mencakup satu orang pada maksimal {deviceLimit} komputer, Mac atau Linux. Team menyediakan minimal {teamMinSeats} seat, dan setiap seat mencakup satu orang pada maksimal {deviceLimit} komputer. Batas ini berlaku per akun, gabungan Pro dan Team. Untuk saat ini fitur berbayar ada di Mac, tetapi komputer Linux tempat Anda masuk tetap dihitung. iPhone dan iPad tidak menggunakan seat.", + "Untuk memakai lisensi di komputer lain, hapus satu komputer di halaman Perangkat pada akun Anda atau di Settings > Account di Mac. Sementara itu, komputer lain tersebut tetap memakai fitur gratis." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "Apa yang dikirim aplikasi ke TablePro?", "answer": [ - "Aplikasi Mac membagikan data penggunaan secara default; nonaktifkan di Settings > General > Privacy. Mulai versi yang menghadirkan akun TablePro, data itu langsung dikirim ke PostHog: peristiwa aplikasi beserta model Mac, versi aplikasi dan macOS, dan jenis database, dengan ID acak sebelum Anda masuk dan ID akun Anda setelahnya. Versi sebelum akun TablePro mengirim laporan harian dengan ID mesin yang di-hash melalui server kami sebagai gantinya. Keduanya tidak pernah mencakup nama host, nama pengguna, kata sandi, kueri, atau baris.", + "Aplikasi Mac membagikan data penggunaan secara default; nonaktifkan di Settings > General > Privacy. Mulai versi yang menghadirkan akun TablePro, data itu langsung dikirim ke PostHog: peristiwa aplikasi beserta model Mac, versi aplikasi dan macOS, dan jenis database, dengan ID acak sebelum Anda masuk dan ID akun Anda setelahnya. Versi sebelum akun TablePro mengirim laporan harian dengan ID mesin yang di-hash melalui server kami sebagai gantinya. Keduanya tidak pernah mencakup nama host, nama pengguna, kata sandi, kueri, atau baris. Aplikasi Linux juga membagikan data penggunaan secara default, tanpa detail tersebut; nonaktifkan di preferensinya.", "Setelah Anda masuk, aplikasi Mac mendaftarkan Mac ke akun Anda dengan ID mesin, nama, serta versi app dan macOS, lalu memperbarui paket Anda sekali sehari. Versi sebelum akun TablePro mengirimkan kunci lisensi beserta data tersebut setiap {revalidateDays} hari. Laporan iPhone dan iPad bersifat opsional. Team Library menerima pengaturan dan SQL tersimpan yang Anda publikasikan. Lihat kebijakan privasi, termasuk pencatatan IP." ] }, diff --git a/resources/data/content/id/features/ai-mcp.json b/resources/data/content/id/features/ai-mcp.json index a53ef161..7724c06b 100644 --- a/resources/data/content/id/features/ai-mcp.json +++ b/resources/data/content/id/features/ai-mcp.json @@ -117,7 +117,7 @@ "id": "iphone", "title": "Platform yang didukung", "paragraphs": [ - "AI, MCP dan alat otomatisasi di halaman ini saat ini hanya tersedia di Mac." + "Aplikasi iPhone dan iPad tidak memiliki AI, MCP, maupun alat otomatisasi di halaman ini." ], "links": [ { diff --git a/resources/data/content/id/features/connections.json b/resources/data/content/id/features/connections.json index bd35357f..0bb73d62 100644 --- a/resources/data/content/id/features/connections.json +++ b/resources/data/content/id/features/connections.json @@ -175,7 +175,7 @@ "title": "Di iPhone dan iPad", "paragraphs": [ "Aplikasi iPhone dan iPad memiliki formulir koneksi sendiri untuk {iosPicker}, dengan grup, satu tag per koneksi, dan favorit. Tunnel SSH masuk dengan kata sandi atau private key dari file atau tempelan serta memeriksa host key; agen SSH dan jump host tidak didukung di iPhone dan iPad. TLS dapat memverifikasi sertifikat server, kecuali SQL Server yang mengenkripsi tanpa verifikasi. Sertifikat tetap di perangkat dan tidak pernah disinkronkan.", - "Kata sandi dan key yang ditempel disimpan dalam Rantai Kunci. Koneksi SQL Server yang disinkronkan dari Mac dapat masuk dengan Microsoft Entra ID. Impor dari aplikasi lain, AWS IAM, Kerberos dan login Google, proxy dan perintah tunnel, sumber kata sandi, serta batas waktu hanya tersedia di aplikasi Mac." + "Kata sandi dan key yang ditempel disimpan dalam Rantai Kunci. Koneksi SQL Server yang disinkronkan dari Mac dapat masuk dengan Microsoft Entra ID. Impor dari aplikasi lain, AWS IAM, Kerberos dan login Google, proxy dan perintah tunnel, sumber kata sandi, serta batas waktu tidak tersedia di aplikasi iPhone dan iPad." ], "links": [ { diff --git a/resources/data/content/id/features/data-editing.json b/resources/data/content/id/features/data-editing.json index 97228fd1..fa8a9df3 100644 --- a/resources/data/content/id/features/data-editing.json +++ b/resources/data/content/id/features/data-editing.json @@ -105,7 +105,7 @@ "title": "Di iPhone dan iPad", "paragraphs": [ "Telusuri baris sebagai kartu, urutkan dan filter, atau ketuk kunci asing untuk melihat pratinjau barisnya. Edit nilai atau atur NULL; mengedit dan menghapus memerlukan kunci utama. Baris baru dimulai dengan nilai DEFAULT, dengan NULL dan string kosong tersedia sebagai gantinya.", - "Safe Mode di mobile menawarkan {iosSafeModeLevels}, dengan default {iosSafeModeDefault}. Perubahan tertunda, Preview SQL, aturan sorotan, dan Data Rewind saat ini hanya tersedia di Mac." + "Safe Mode di mobile menawarkan {iosSafeModeLevels}, dengan default {iosSafeModeDefault}. Perubahan tertunda, Preview SQL, aturan sorotan, dan Data Rewind tidak tersedia di aplikasi iPhone dan iPad." ], "links": [ { diff --git a/resources/data/content/id/features/schema.json b/resources/data/content/id/features/schema.json index 3f4e3456..b68a94bd 100644 --- a/resources/data/content/id/features/schema.json +++ b/resources/data/content/id/features/schema.json @@ -121,7 +121,7 @@ "title": "Di iPhone dan iPad", "paragraphs": [ "Aplikasi iPhone dan iPad menampilkan kolom, indeks, dan foreign key tabel secara hanya-baca. Dari daftar tabel, Anda dapat melakukan truncate atau menghapus tabel pada mesin SQL, kecuali koneksi Read-Only.", - "Pengeditan struktur, diagram ER, Compare & Sync, Copy To, Users & Roles, serta Server Dashboard hanya tersedia di aplikasi Mac." + "Pengeditan struktur, diagram ER, Compare & Sync, Copy To, Users & Roles, serta Server Dashboard tidak tersedia di aplikasi iPhone dan iPad." ], "links": [ { diff --git a/resources/data/content/id/features/sync-and-teams.json b/resources/data/content/id/features/sync-and-teams.json index c080f568..1414929c 100644 --- a/resources/data/content/id/features/sync-and-teams.json +++ b/resources/data/content/id/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Seat Team", "paragraphs": [ - "Satu seat Team mencakup satu orang pada maksimal {deviceLimit} Mac. Pemilik dan admin mengundang lewat email dari portal akun, dengan atau tanpa seat, dan setiap undangan bergabung melalui tautan di email.", + "Satu seat Team mencakup satu orang pada maksimal {deviceLimit} komputer, Mac atau Linux. Pemilik dan admin mengundang lewat email dari portal akun, dengan atau tanpa seat, dan setiap undangan bergabung melalui tautan di email.", "Pemilik mengubah seat langganan di Penagihan, dan tim dengan seat satu kali tetap memilikinya; seat tambahan tersedia lewat langganan Team. Menghapus anggota membebaskan seat-nya, dan Mac miliknya kehilangan fitur Team saat TablePro berikutnya menghubungi server." ], "links": [ diff --git a/resources/data/content/id/home.json b/resources/data/content/id/home.json index c9a7b8a1..ae019b72 100644 --- a/resources/data/content/id/home.json +++ b/resources/data/content/id/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Bawa koneksi Anda", - "lead": "Impor dari aplikasi lain dan Open Project Folder hanya tersedia dalam {macApp}.", + "lead": "Aplikasi iPhone dan iPad tidak mengimpor dari aplikasi lain, dan Open Project Folder hanya tersedia dalam {macApp}.", "import": "Impor koneksi dari {apps}, termasuk kata sandi tersimpan.", "importWithoutPasswords": "Koneksi dari {apps} diimpor tanpa kata sandinya.", "project": "Open Project Folder membuat koneksi dari file proyek yang didukung, termasuk .env, docker-compose.yml, dan skema Prisma.", diff --git a/resources/data/content/id/ios.json b/resources/data/content/id/ios.json index efc50fd3..815b3e1a 100644 --- a/resources/data/content/id/ios.json +++ b/resources/data/content/id/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "Tidak tersedia di iPhone dan iPad", - "lead": "Fitur berikut hanya tersedia dalam TablePro untuk Mac:", + "lead": "Fitur berikut tersedia dalam TablePro untuk Mac:", "items": [ "Asisten AI dan server MCP", "Kueri tersimpan, pelengkapan otomatis, pemformatan kueri, dan EXPLAIN", diff --git a/resources/data/content/id/pricing.json b/resources/data/content/id/pricing.json index 5ca129aa..f569f34a 100644 --- a/resources/data/content/id/pricing.json +++ b/resources/data/content/id/pricing.json @@ -30,8 +30,8 @@ "title": "Lisensi", "items": { "macs": { - "question": "Berapa Mac yang dicakup satu lisensi?", - "answer": "Pro mencakup satu orang pada maksimal {deviceLimit} Mac, begitu juga setiap seat Team. Kosongkan satu Mac di Settings > Account atau di akun Anda." + "question": "Berapa komputer yang dicakup satu lisensi?", + "answer": "Pro mencakup satu orang pada maksimal {deviceLimit} komputer, Mac atau Linux, begitu juga setiap seat Team. Kosongkan satu di akun Anda atau di Settings > Account di Mac." }, "offline": { "question": "Apakah TablePro harus online?", diff --git a/resources/data/content/id/security.json b/resources/data/content/id/security.json index 9e6a511c..31b80303 100644 --- a/resources/data/content/id/security.json +++ b/resources/data/content/id/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Level Safe Mode", - "text": "Setiap koneksi memiliki level Safe Mode: {macSafeModeLevels}. Alert meminta konfirmasi sebelum penulisan, level Safe Mode juga meminta Touch ID atau kata sandi Mac, level Full juga meminta konfirmasi sebelum membaca, dan Read-Only menolak penulisan. Organisasi dapat menerapkan level minimum di Mac miliknya melalui profil konfigurasi. Di iPhone dan iPad, levelnya adalah {iosSafeModeLevels}." + "text": "Di Mac, setiap koneksi memiliki level Safe Mode: {macSafeModeLevels}. Alert meminta konfirmasi sebelum penulisan, level Safe Mode juga meminta Touch ID atau kata sandi Mac, level Full juga meminta konfirmasi sebelum membaca, dan Read-Only menolak penulisan. Organisasi dapat menerapkan level minimum di Mac miliknya melalui profil konfigurasi. Di iPhone dan iPad, levelnya adalah {iosSafeModeLevels}, dan di Linux {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Hanya lokal", - "text": "Server MCP hanya ada di aplikasi Mac dan nonaktif hingga Anda mengaktifkannya atau klien yang Anda siapkan memulainya. Server mendengarkan di {mcpHost}, tanpa mode jarak jauh, dan klien tidak pernah melihat kata sandi." + "text": "Di aplikasi Mac, server MCP nonaktif hingga Anda mengaktifkannya atau klien yang Anda siapkan memulainya. Server mendengarkan di {mcpHost}, tanpa mode jarak jauh, dan klien tidak pernah melihat kata sandi." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "Kodenya terbuka", - "text": "Kedua aplikasi bersumber terbuka di bawah AGPLv3, termasuk kode fitur berbayar. Apa yang dijelaskan halaman ini dapat dibaca di repositori, bersama skrip yang menandatangani dan menotarisasi setiap rilis, dan Anda dapat mem-build aplikasi Mac sendiri." + "text": "Aplikasi-aplikasinya bersumber terbuka di bawah AGPLv3, termasuk kode fitur berbayar. Apa yang dijelaskan halaman ini dapat dibaca di repositori, bersama skrip yang menandatangani dan menotarisasi setiap rilis, dan Anda dapat mem-build aplikasi Mac sendiri." } ], "limits": [], diff --git a/resources/data/content/id/teams.json b/resources/data/content/id/teams.json index 92bf3eb2..2cbaf161 100644 --- a/resources/data/content/id/teams.json +++ b/resources/data/content/id/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Seat dan anggota", "items": [ - "Satu seat mencakup satu orang pada maksimal {deviceLimit} Mac.", + "Satu seat mencakup satu orang pada maksimal {deviceLimit} komputer, Mac atau Linux.", "Pemilik dan admin mengundang lewat email dari halaman Anggota di akun Anda, dengan peran dan, jika diinginkan, seat. Tautannya berlaku 7 hari, dan akun TablePro mana pun dapat menerimanya.", "Pemilik mengurus penagihan. Admin mengelola anggota, undangan, Team Library, dan log audit tim. Anggota memakai apa yang dibagikan.", "Pemilik mengubah seat langganan di Penagihan, dan {merchant} menagih atau mengkreditkan selisih prorata saat itu juga.", diff --git a/resources/data/content/it/about.json b/resources/data/content/it/about.json index 1ce1f98a..72594bbe 100644 --- a/resources/data/content/it/about.json +++ b/resources/data/content/it/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Chi lo sviluppa", - "body": "{maker} sviluppa l’app per Mac e i suoi plugin, l’app per iPhone e iPad e questo sito web.", + "body": "{maker} sviluppa l’app per Mac e i suoi plugin, l’app per iPhone e iPad, l’app per Linux e questo sito web.", "identity": "Lo stesso sviluppatore pubblica TablePro sull’App Store e riceve contributi tramite GitHub Sponsors.", "facts": { "maker": "Sviluppatore", @@ -32,7 +32,7 @@ }, "source": { "title": "Codice sorgente", - "body": "Entrambe le app sono open source sotto licenza AGPLv3, incluso il codice delle funzionalità a pagamento, in un unico repository su GitHub.", + "body": "Le app sono open source sotto licenza AGPLv3, incluso il codice delle funzionalità a pagamento, in un unico repository su GitHub.", "license": "Il testo della licenza si trova nello stesso repository." }, "contact": { diff --git a/resources/data/content/it/black-friday.json b/resources/data/content/it/black-friday.json index 2968bb03..673a4cc3 100644 --- a/resources/data/content/it/black-friday.json +++ b/resources/data/content/it/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro una tantum", "unit": "un solo pagamento", - "detail": "Senza scadenza. {activations} Mac." + "detail": "Senza scadenza. {activations} computer, Mac o Linux." }, "yearly": { "name": "Pro annuale", "unit": "primo anno", - "detail": "Poi {yearlyList} all’anno. {activations} Mac." + "detail": "Poi {yearlyList} all’anno. {activations} computer, Mac o Linux." }, "buy": "Acquista a {price}", "soon": "Dal {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "Cosa aggiunge Pro", - "lead": "TablePro è gratuito, anche al lavoro. Pro aggiunge queste funzionalità su {activations} Mac.", + "lead": "TablePro è gratuito, anche al lavoro. Pro aggiunge queste funzionalità all’app per Mac.", "more": "Anche in Pro", "link": "Altre informazioni su {feature}" }, diff --git a/resources/data/content/it/compare/beekeeper-studio.json b/resources/data/content/it/compare/beekeeper-studio.json index 1d0770de..3b20b878 100644 --- a/resources/data/content/it/compare/beekeeper-studio.json +++ b/resources/data/content/it/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "Un’app nativa e un’app gratuita separata per iPhone e iPad." ], "competitor": [ - "Lo stesso client su Windows, macOS e Linux.", + "Supporto Windows, con le stesse funzionalità su macOS e Linux.", "Connessioni a Firebird, SQL Anywhere o GreengageDB.", "Workspace cloud per condividere connessioni e query, da {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro è un’app Mac scritta in Swift, con driver nativi per database. Beekeeper Studio è basato su {technology}. Entrambi offrono build separate per Mac con Apple silicon e Intel.", + "text": "L’app Mac di TablePro è scritta in Swift, con driver nativi per database. Beekeeper Studio è basato su {technology}. Entrambi offrono build separate per Mac con Apple silicon e Intel.", "cite": [ "technology", "mac" diff --git a/resources/data/content/it/compare/datagrip.json b/resources/data/content/it/compare/datagrip.json index 6025ebd0..55980220 100644 --- a/resources/data/content/it/compare/datagrip.json +++ b/resources/data/content/it/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Ispezioni del codice e controllo versione insieme alle query.", "Un IDE completo gratuito per uso non commerciale.", - "Supporto Windows o Linux, o motori JDBC come Firebird, Informix e Databricks." + "Supporto Windows, o motori JDBC come Firebird, Informix e Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro è un’app Mac scritta in Swift, con driver nativi per database. DataGrip è basato su {technology}.", + "text": "L’app Mac di TablePro è scritta in Swift, con driver nativi per database. DataGrip è basato su {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/it/compare/dbeaver.json b/resources/data/content/it/compare/dbeaver.json index 8f25cba4..b3100877 100644 --- a/resources/data/content/it/compare/dbeaver.json +++ b/resources/data/content/it/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver: funzioni ed edizioni", - "description": "DBeaver usa Java e JDBC su Windows, macOS e Linux. TablePro è nativo per Mac, iPhone e iPad. Confronta database, IA, MCP e prezzi." + "description": "DBeaver usa Java e JDBC su Windows, macOS e Linux. TablePro è nativo per Mac, iPhone, iPad e Linux. Confronta database, IA, MCP e prezzi." }, "og": { "kicker": "Confronto", @@ -18,7 +18,7 @@ "MCP e chat IA gratuiti con il provider che scegli." ], "competitor": [ - "Supporto Windows o Linux.", + "Supporto Windows.", "Motori JDBC oltre ai driver supportati da TablePro.", "Strumenti a pagamento come query builder visivo, diagrammi ER modificabili e attività pianificate." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro è un’app Mac scritta in Swift, con driver nativi per database. DBeaver è basato su Java e il suo download include un runtime Java.", + "text": "L’app Mac di TablePro è scritta in Swift, con driver nativi per database. DBeaver è basato su Java e il suo download include un runtime Java.", "cite": [ "technology" ], diff --git a/resources/data/content/it/compare/dbgate.json b/resources/data/content/it/compare/dbgate.json index b99436ea..a5004479 100644 --- a/resources/data/content/it/compare/dbgate.json +++ b/resources/data/content/it/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DbGate: edizioni e piattaforme supportate", - "description": "DbGate è un client open source per Windows, macOS, Linux e il web, con edizioni Premium a pagamento. TablePro è open source e nativo su Mac e iPhone." + "description": "DbGate è un client open source per Windows, macOS, Linux e il web, con edizioni Premium a pagamento. TablePro è open source e nativo su Mac, iPhone e Linux." }, "og": { "kicker": "Confronto", @@ -18,7 +18,7 @@ "Backup gratuiti con gli strumenti dump dei motori supportati." ], "competitor": [ - "Un client per Windows, Linux o un server web.", + "Un client per Windows o un server web.", "Connessioni a Firebird, Azure Cosmos DB o Firestore.", "Un query designer visivo in {cells.queryDesigner.edition}, o la sincronizzazione DbGate Cloud." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro è un’app Mac scritta in Swift, con driver nativi per database. DbGate è basato su {technology}. Entrambi offrono build per Mac con Apple silicon e Intel.", + "text": "L’app Mac di TablePro è scritta in Swift, con driver nativi per database. DbGate è basato su {technology}. Entrambi offrono build per Mac con Apple silicon e Intel.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "Esiste una versione web di TablePro?", - "answer": "No. TablePro funziona su Mac, iPhone e iPad. Se il tuo team ha bisogno di un client database nel browser, DbGate funziona anche come app web.", + "answer": "No. TablePro è un’app per Mac, iPhone, iPad e Linux. Se il tuo team ha bisogno di un client database nel browser, DbGate funziona anche come app web.", "href": null }, { diff --git a/resources/data/content/it/compare/heidisql.json b/resources/data/content/it/compare/heidisql.json index 42176dfc..716e47a8 100644 --- a/resources/data/content/it/compare/heidisql.json +++ b/resources/data/content/it/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL: database, piattaforme e prezzi", - "description": "HeidiSQL è gratuito su Windows, Linux e Mac Apple silicon dal 2026. TablePro è nativo su Mac, iPhone e iPad. Confronta database, versioni e prezzi." + "description": "HeidiSQL è gratuito su Windows, Linux e Mac Apple silicon dal 2026. TablePro è nativo su Mac, iPhone, iPad e Linux. Confronta database, versioni e prezzi." }, "og": { "kicker": "Confronto", @@ -18,7 +18,7 @@ "Chat IA e MCP gratuiti e un’app separata per iPhone e iPad." ], "competitor": [ - "Lo stesso client gratuito su Windows, Linux e Mac Apple silicon.", + "Lo stesso client gratuito su Windows e Mac Apple silicon.", "Connessioni Firebird, Interbase o ProxySQL.", "Tutte le funzionalità sono gratuite, senza piani a pagamento." ] diff --git a/resources/data/content/it/compare/index.json b/resources/data/content/it/compare/index.json index f93824f2..849ffad4 100644 --- a/resources/data/content/it/compare/index.json +++ b/resources/data/content/it/compare/index.json @@ -16,7 +16,7 @@ "lead": "Inizia con gli strumenti di cui hai bisogno.", "tablepro": "TablePro è un client nativo e open source per diversi tipi di database. IA chat e MCP sono gratuiti nell’app Mac. Importa connessioni da {apps}.", "items": { - "tableplus": "Supporto Windows o Linux, oltre a Vertica e Greenplum.", + "tableplus": "Supporto Windows, oltre a Vertica e Greenplum.", "dbeaver": "Un client multipiattaforma con supporto del driver JDBC.", "datagrip": "Un IDE di database con ispezioni del codice e controllo della versione. Gratuito per lavori non commerciali.", "navicat": "Modellazione dei dati e progetti condivisi tramite Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "Un client Mac App Store gratuito incentrato su MySQL e MariaDB.", "sequel-pro": "Passi da Sequel Pro? L’ultima versione è {status.version}, pubblicata il {status.date}. Confronta Sequel Ace e TablePro.", "postico": "Un client PostgreSQL mirato con una licenza una tantum.", - "heidisql": "Un client gratuito per Windows, Linux e Mac con Apple silicon.", + "heidisql": "Un client gratuito per Windows e Mac con Apple silicon.", "phpmyadmin": "Accesso MySQL o MariaDB tramite il browser, incluso l'hosting cPanel.", "mysql-workbench": "Strumento MySQL di Oracle, con notebook SQL e integrazione MySQL Enterprise Backup.", "pgadmin": "Amministrazione PostgreSQL, con un debugger, lavori pgAgent e un'opzione server condiviso.", @@ -218,6 +218,7 @@ "retrieved": "verificato il {date}", "latest": "Ultima versione di {name} a quella data: {version}, pubblicata il {date}.", "tablepro": "La colonna TablePro descrive TablePro {macVersion} per Mac e {iosVersion} per iPhone e iPad.", + "tableproLinux": "La colonna TablePro descrive TablePro {macVersion} per Mac, {iosVersion} per iPhone e iPad e {linuxVersion} per Linux.", "trademarks": "TablePro è un progetto open source indipendente, non affiliato ai produttori dei prodotti confrontati qui né da loro approvato. I nomi dei prodotti sono marchi dei rispettivi proprietari." }, "cta": { diff --git a/resources/data/content/it/compare/mysql-workbench.json b/resources/data/content/it/compare/mysql-workbench.json index cf4c444a..9bcc3574 100644 --- a/resources/data/content/it/compare/mysql-workbench.json +++ b/resources/data/content/it/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench: caratteristiche e compatibilità", - "description": "MySQL Workbench è lo strumento gratuito di Oracle per MySQL, ora ricostruito su MySQL Shell. TablePro copre MySQL e altri motori su Mac, iPhone e iPad." + "description": "MySQL Workbench è lo strumento gratuito di Oracle per MySQL, ora ricostruito su MySQL Shell. TablePro copre MySQL e altri motori su Mac, iPhone, iPad e Linux." }, "og": { "kicker": "Confronto", diff --git a/resources/data/content/it/compare/navicat.json b/resources/data/content/it/compare/navicat.json index b7ec6419..87a15d3d 100644 --- a/resources/data/content/it/compare/navicat.json +++ b/resources/data/content/it/compare/navicat.json @@ -18,7 +18,7 @@ "Connessioni ClickHouse, DuckDB o Cassandra." ], "competitor": [ - "Supporto Windows o Linux.", + "Supporto Windows.", "Modellazione dei dati in Premium Enterprise.", "Navicat Cloud o Navicat On-Prem Server per condividere connessioni, query e modelli." ] diff --git a/resources/data/content/it/compare/pgadmin.json b/resources/data/content/it/compare/pgadmin.json index aed0fee7..90cd1d67 100644 --- a/resources/data/content/it/compare/pgadmin.json +++ b/resources/data/content/it/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "Amministrazione PostgreSQL, incluso un debugger PL/pgSQL e lavori pgAgent.", "In bundle psql, pg_dump e pg_restore.", - "Un'installazione di un server Web condiviso o il supporto di Windows e Linux." + "Un'installazione di un server Web condiviso o il supporto di Windows." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro è un’app Mac scritta in Swift, con driver nativi per database. pgAdmin è un’applicazione web in Python che gira in un runtime desktop {technology} o su un server web.", + "text": "L’app Mac di TablePro è scritta in Swift, con driver nativi per database. pgAdmin è un’applicazione web in Python che gira in un runtime desktop {technology} o su un server web.", "cite": [ "technology" ], diff --git a/resources/data/content/it/compare/phpmyadmin.json b/resources/data/content/it/compare/phpmyadmin.json index d8c12784..08f9a0bf 100644 --- a/resources/data/content/it/compare/phpmyadmin.json +++ b/resources/data/content/it/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "È un’app per Mac, iPhone e iPad. Non puoi aprirla dal browser di qualsiasi computer.", + "text": "È un’app per Mac, iPhone, iPad e Linux. Non puoi aprirla dal browser di qualsiasi computer.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/it/compare/tableplus.json b/resources/data/content/it/compare/tableplus.json index 3df01d7f..43dec354 100644 --- a/resources/data/content/it/compare/tableplus.json +++ b/resources/data/content/it/compare/tableplus.json @@ -18,7 +18,7 @@ "Un'app gratuita per iPhone e iPad senza acquisti in-app." ], "competitor": [ - "Supporto Windows o Linux.", + "Supporto Windows.", "Connessioni Vertica o Greenplum.", "Un client disponibile tramite Setapp." ] diff --git a/resources/data/content/it/databases/index.json b/resources/data/content/it/databases/index.json index 73abc089..ada438f2 100644 --- a/resources/data/content/it/databases/index.json +++ b/resources/data/content/it/databases/index.json @@ -84,6 +84,13 @@ "others": "Le connessioni ad altri motori si sincronizzano con iPhone e iPad e compaiono nell’elenco, ma non si aprono.", "link": "TablePro per iPhone e iPad" }, + "linux": { + "title": "Su Linux", + "tested": "L’app per Linux è una beta, testata con {engines}.", + "untested": "Le connessioni a {engines} non sono testate su Linux.", + "others": "Gli altri motori non si aprono.", + "link": "Installa su Linux" + }, "license": { "title": "Incluso nella versione gratuita", "body": "Ogni connessione al database supportata è inclusa nella versione gratuita. Pro e Team aggiungono funzionalità opzionali all'app Mac.", @@ -131,6 +138,12 @@ "synced": "Si apre quando sincronizzato da un Mac", "none": "Non si apre" }, + "linux": { + "tested": "Testato", + "versions": "Testato: {versions}", + "untested": "Non testato", + "none": "Non disponibile" + }, "availability": { "devices": "Funziona su {devices}", "bundled": "Il driver è incluso nell’app per Mac", @@ -184,6 +197,7 @@ "title": "Scarica TablePro", "mac": "Scarica gratuitamente l'app Mac. Pro e Team aggiungono funzionalità opzionali.", "ios": "L’app per iPhone e iPad è su App Store.", + "linux": "L’app per Linux è una beta gratuita.", "pricing": "Vedi i prezzi" } } diff --git a/resources/data/content/it/download.json b/resources/data/content/it/download.json index fd09cb7d..bb37a123 100644 --- a/resources/data/content/it/download.json +++ b/resources/data/content/it/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "Scarica TablePro", - "description": "Scarica TablePro per Mac con Apple silicon e Intel, oppure installalo con Homebrew. L'app per iPhone e iPad si trova sullo App Store." + "description": "Scarica TablePro per Mac o installalo con Homebrew. Installa la beta per Linux su Ubuntu, Fedora o con Flatpak, e l’app per iPhone e iPad dall’App Store." }, "og": { "kicker": "Download", diff --git a/resources/data/content/it/faq.json b/resources/data/content/it/faq.json index bb4aab9d..71ec85d5 100644 --- a/resources/data/content/it/faq.json +++ b/resources/data/content/it/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "Cos’è TablePro?", "answer": [ - "Un client database nativo e open source. Su Mac, interroga e modifica {featuredEngines} e altri database, e lavora con gli schemi. L’app per iPhone e iPad offre meno strumenti database.", + "Un client database nativo e open source. Su Mac, interroga e modifica {featuredEngines} e altri database, e lavora con gli schemi. L’app per iPhone e iPad e la beta per Linux offrono meno strumenti database.", "Vedi tutte le funzionalità." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "Cosa significa “nativo” qui?", "answer": [ - "TablePro utilizza interfacce e driver di database nativi, senza Electron o JDBC. Le app attuali utilizzano Swift: AppKit e SwiftUI sul Mac e funzionalità del dispositivo come Face ID e scorciatoie su iPhone e iPad." + "TablePro utilizza interfacce e driver di database nativi, senza Electron o JDBC. Le app per Mac, iPhone e iPad utilizzano Swift: AppKit e SwiftUI sul Mac e funzionalità del dispositivo come Face ID e scorciatoie su iPhone e iPad. L’app per Linux utilizza Rust, GTK 4 e libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "TablePro è gratuito?", "answer": [ "Sì. L'app Mac non ha periodo di prova o limiti di tempo. Tutti i motori supportati, IA, MCP e Safe Mode sono gratuiti. Pro e Team aggiungono le funzionalità presenti nella pagina dei prezzi.", - "L'app per iPhone e iPad è gratuita, senza licenze o acquisti in-app." + "L'app per iPhone e iPad è gratuita, senza licenze o acquisti in-app. L’app per Linux è gratuita, e per ora le funzionalità a pagamento sono su Mac." ] }, { "id": "open-source", "question": "TablePro è open source?", "answer": [ - "Sì. Entrambe le app, incluso il codice delle funzionalità a pagamento, si trovano sotto AGPLv3 in un repository GitHub. Le build dal sorgente controllano comunque le licenze per le funzionalità a pagamento." + "Sì. Le app, incluso il codice delle funzionalità a pagamento, si trovano sotto AGPLv3 in un repository GitHub. Le build dal sorgente controllano comunque le licenze per le funzionalità a pagamento." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Esiste una versione per Windows o Linux?", "answer": [ - "No. Non esiste una versione Windows. Esiste un prototipo Linux, ma non c’è nulla da installare né una data di rilascio." + "Per Linux, sì: TablePro per Linux è disponibile in beta, con motori e funzionalità propri. Windows non è disponibile e non c’è una data di rilascio." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "Dove vengono conservate le password?", "answer": [ - "Le password salvate rimangono nel Keychain. Su Mac puoi invece risolverli da file, variabili di ambiente, comandi shell, 1Password, Vault o AWS Secrets Manager.", + "Le password salvate rimangono nel Keychain o, su Linux, in un portachiavi Secret Service come GNOME Keyring o KWallet. Su Mac puoi invece risolverli da file, variabili di ambiente, comandi shell, 1Password, Vault o AWS Secrets Manager.", "La sincronizzazione della password è un'attivazione separata: abilita Passwords su Mac o Sync Passwords su iPhone e iPad. Utilizza iCloud Keychain." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "Quanti Mac copre una licenza?", + "question": "Quanti computer copre una licenza?", "answer": [ - "Pro copre una persona su un massimo di {deviceLimit} Mac. Team offre almeno {teamMinSeats} posti, e ogni posto copre una persona su un massimo di {deviceLimit} Mac. Il limite vale per account, sommando Pro e Team. iPhone e iPad non occupano posti.", - "Per usare la licenza su un altro Mac, rimuovine uno in Settings > Account o nella pagina Dispositivi del tuo account. Nel frattempo, l’altro Mac conserva le funzionalità gratuite." + "Pro copre una persona su un massimo di {deviceLimit} computer, Mac o Linux. Team offre almeno {teamMinSeats} posti, e ogni posto copre una persona su un massimo di {deviceLimit} computer. Il limite vale per account, sommando Pro e Team. Per ora le funzionalità a pagamento sono su Mac, ma un computer Linux su cui accedi conta comunque. iPhone e iPad non occupano posti.", + "Per usare la licenza su un altro computer, rimuovine uno nella pagina Dispositivi del tuo account o in Settings > Account sul Mac. Nel frattempo, l’altro computer conserva le funzionalità gratuite." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "Cosa inviano le app a TablePro?", "answer": [ - "Per impostazione predefinita, l'app per Mac condivide dati di utilizzo; disattiva la condivisione in Settings > General > Privacy. Dalla versione che introduce gli account TablePro, vanno direttamente a PostHog: eventi dell'app con il modello del Mac, le versioni dell'app e di macOS e i tipi di database, con un ID casuale prima dell'accesso e l'ID del tuo account dopo. Le versioni precedenti agli account TablePro inviano invece un rapporto giornaliero con un ID macchina con hash tramite il nostro server. Nessuno dei due include nomi host, nomi utente, password, query o righe.", + "Per impostazione predefinita, l'app per Mac condivide dati di utilizzo; disattiva la condivisione in Settings > General > Privacy. Dalla versione che introduce gli account TablePro, vanno direttamente a PostHog: eventi dell'app con il modello del Mac, le versioni dell'app e di macOS e i tipi di database, con un ID casuale prima dell'accesso e l'ID del tuo account dopo. Le versioni precedenti agli account TablePro inviano invece un rapporto giornaliero con un ID macchina con hash tramite il nostro server. Nessuno dei due include nomi host, nomi utente, password, query o righe. Anche l’app per Linux condivide dati di utilizzo per impostazione predefinita, senza questi dettagli; disattiva la condivisione nelle sue preferenze.", "Quando accedi, l’app per Mac registra il Mac nel tuo account con l’ID macchina, il nome e le versioni dell’app e di macOS, e rinnova il piano una volta al giorno. Le versioni precedenti agli account TablePro inviano la chiave di licenza con questi dati ogni {revalidateDays} giorni. I report su iPhone e iPad sono facoltativi. Team Library riceve le impostazioni e il SQL salvato che pubblichi. Vedi l’informativa sulla privacy, inclusi i log degli IP." ] }, diff --git a/resources/data/content/it/features/ai-mcp.json b/resources/data/content/it/features/ai-mcp.json index bf6f44e4..2b599bbf 100644 --- a/resources/data/content/it/features/ai-mcp.json +++ b/resources/data/content/it/features/ai-mcp.json @@ -117,7 +117,7 @@ "id": "iphone", "title": "Disponibilità", "paragraphs": [ - "IA, MCP e gli strumenti di automazione in questa pagina sono attualmente disponibili solo su Mac." + "L’app per iPhone e iPad non ha l’IA, MCP né gli strumenti di automazione di questa pagina." ], "links": [ { diff --git a/resources/data/content/it/features/connections.json b/resources/data/content/it/features/connections.json index e571d81f..f4c88fe6 100644 --- a/resources/data/content/it/features/connections.json +++ b/resources/data/content/it/features/connections.json @@ -175,7 +175,7 @@ "title": "Su iPhone e iPad", "paragraphs": [ "L’app per iPhone e iPad ha un proprio modulo di connessione per {iosPicker}, con gruppi, un tag per connessione e preferiti. I tunnel SSH accedono con password o chiave privata, da un file o incollata, e verificano la chiave host; agenti SSH e jump host non sono supportati su iPhone e iPad. TLS può verificare il certificato del server, tranne su SQL Server, dove cifra senza verificare. I certificati restano sul dispositivo e non si sincronizzano mai.", - "Password e chiavi incollate sono conservate nel Portachiavi. Le connessioni SQL Server sincronizzate da un Mac possono accedere con Microsoft Entra ID. Importazione da altre app, AWS IAM, Kerberos e accesso Google, proxy e comandi di tunneling, sorgenti delle password e timeout sono disponibili solo nell’app per Mac." + "Password e chiavi incollate sono conservate nel Portachiavi. Le connessioni SQL Server sincronizzate da un Mac possono accedere con Microsoft Entra ID. Importazione da altre app, AWS IAM, Kerberos e accesso Google, proxy e comandi di tunneling, sorgenti delle password e timeout non sono disponibili nell’app per iPhone e iPad." ], "links": [ { diff --git a/resources/data/content/it/features/data-editing.json b/resources/data/content/it/features/data-editing.json index 90054652..9d11da6c 100644 --- a/resources/data/content/it/features/data-editing.json +++ b/resources/data/content/it/features/data-editing.json @@ -105,7 +105,7 @@ "title": "Su iPhone e iPad", "paragraphs": [ "Sfoglia le righe come schede, ordinale e filtrale oppure tocca una chiave esterna per visualizzare in anteprima la riga. Modifica valori o imposta NULL; la modifica e l'eliminazione richiedono una chiave primaria. Le nuove righe iniziano con i valori DEFAULT, mentre sono invece disponibili NULL e una stringa vuota.", - "Safe Mode su mobile offre {iosSafeModeLevels}, con {iosSafeModeDefault} come predefinito. Modifiche in attesa, Preview SQL, regole di evidenziazione e Data Rewind sono attualmente disponibili solo su Mac." + "Safe Mode su mobile offre {iosSafeModeLevels}, con {iosSafeModeDefault} come predefinito. Modifiche in attesa, Preview SQL, regole di evidenziazione e Data Rewind non sono disponibili nell’app per iPhone e iPad." ], "links": [ { diff --git a/resources/data/content/it/features/schema.json b/resources/data/content/it/features/schema.json index f58a2320..34b6f549 100644 --- a/resources/data/content/it/features/schema.json +++ b/resources/data/content/it/features/schema.json @@ -121,7 +121,7 @@ "title": "Su iPhone e iPad", "paragraphs": [ "L’app per iPhone e iPad mostra colonne, indici e chiavi esterne di una tabella in sola lettura. Dall’elenco delle tabelle puoi troncare o eliminare una tabella su un motore SQL, a meno che la connessione sia impostata su Read-Only.", - "Modifica della struttura, diagramma ER, Compare & Sync, Copy To, Users & Roles e Server Dashboard sono disponibili solo nell’app per Mac." + "Modifica della struttura, diagramma ER, Compare & Sync, Copy To, Users & Roles e Server Dashboard non sono disponibili nell’app per iPhone e iPad." ], "links": [ { diff --git a/resources/data/content/it/features/sync-and-teams.json b/resources/data/content/it/features/sync-and-teams.json index 20160e00..7f439b04 100644 --- a/resources/data/content/it/features/sync-and-teams.json +++ b/resources/data/content/it/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Postazioni Team", "paragraphs": [ - "Un posto Team copre una persona su un massimo di {deviceLimit} Mac. Proprietari e amministratori invitano via e-mail dal portale dell’account, con o senza posto, e ogni invitato entra con il link ricevuto.", + "Un posto Team copre una persona su un massimo di {deviceLimit} computer, Mac o Linux. Proprietari e amministratori invitano via e-mail dal portale dell’account, con o senza posto, e ogni invitato entra con il link ricevuto.", "Il proprietario modifica i posti di un abbonamento in Fatturazione, e un team con posti una tantum li mantiene; altri posti si aggiungono con un abbonamento Team. Rimuovere un membro libera il suo posto, e i suoi Mac perdono le funzionalità di Team la prossima volta che TablePro contatta il server." ], "links": [ diff --git a/resources/data/content/it/home.json b/resources/data/content/it/home.json index cb299f16..40f3056f 100644 --- a/resources/data/content/it/home.json +++ b/resources/data/content/it/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Porta le tue connessioni", - "lead": "L’importazione da altre app e Open Project Folder sono disponibili solo nell’{macApp}.", + "lead": "L’app per iPhone e iPad non importa da altre app, e Open Project Folder è disponibile solo nell’{macApp}.", "import": "Importa le connessioni da {apps}, incluse le password salvate.", "importWithoutPasswords": "Le connessioni da {apps} vengono importate senza password.", "project": "Open Project Folder crea connessioni dai file di progetto supportati, tra cui .env, docker-compose.yml e gli schemi Prisma.", diff --git a/resources/data/content/it/ios.json b/resources/data/content/it/ios.json index 5d8a1f4b..f10eea56 100644 --- a/resources/data/content/it/ios.json +++ b/resources/data/content/it/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "Non disponibile su iPhone e iPad", - "lead": "Queste funzionalità sono disponibili solo in TablePro per Mac:", + "lead": "Queste funzionalità sono disponibili in TablePro per Mac:", "items": [ "L’assistente IA e il server MCP", "Query salvate, completamento automatico, formattazione delle query ed EXPLAIN", diff --git a/resources/data/content/it/pricing.json b/resources/data/content/it/pricing.json index c33bec7a..f7b350ec 100644 --- a/resources/data/content/it/pricing.json +++ b/resources/data/content/it/pricing.json @@ -30,8 +30,8 @@ "title": "Licenze", "items": { "macs": { - "question": "Su quanti Mac vale una licenza?", - "answer": "Pro copre una persona su un massimo di {deviceLimit} Mac, come ogni posto Team. Libera un Mac in Settings > Account o nel tuo account." + "question": "Su quanti computer vale una licenza?", + "answer": "Pro copre una persona su un massimo di {deviceLimit} computer, Mac o Linux, come ogni posto Team. Liberane uno nel tuo account o in Settings > Account sul Mac." }, "offline": { "question": "TablePro deve essere online?", diff --git a/resources/data/content/it/security.json b/resources/data/content/it/security.json index 21b8d3d7..1052d146 100644 --- a/resources/data/content/it/security.json +++ b/resources/data/content/it/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Livelli di Safe Mode", - "text": "Ogni connessione ha un livello Safe Mode: {macSafeModeLevels}. Alert chiede conferma prima di una scrittura, i livelli Safe Mode richiedono anche Touch ID o la password del Mac, i livelli Full chiedono conferma anche prima delle letture e Read-Only rifiuta le scritture. Un’organizzazione può imporre un livello minimo sui propri Mac con un profilo di configurazione. Su iPhone e iPad i livelli sono {iosSafeModeLevels}." + "text": "Su Mac, ogni connessione ha un livello Safe Mode: {macSafeModeLevels}. Alert chiede conferma prima di una scrittura, i livelli Safe Mode richiedono anche Touch ID o la password del Mac, i livelli Full chiedono conferma anche prima delle letture e Read-Only rifiuta le scritture. Un’organizzazione può imporre un livello minimo sui propri Mac con un profilo di configurazione. Su iPhone e iPad i livelli sono {iosSafeModeLevels}, e su Linux {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Solo in locale", - "text": "Il server MCP esiste solo nell’app per Mac ed è disattivato finché non lo attivi o un client configurato lo avvia. Ascolta su {mcpHost}, senza modalità remota, e i client non vedono mai una password." + "text": "Nell’app per Mac, il server MCP è disattivato finché non lo attivi o un client configurato lo avvia. Ascolta su {mcpHost}, senza modalità remota, e i client non vedono mai una password." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "Il codice è pubblico", - "text": "Entrambe le app sono open source sotto licenza AGPLv3, incluso il codice delle funzionalità a pagamento. Ciò che descrive questa pagina si può leggere nel repository, insieme agli script che firmano e autenticano ogni rilascio, e puoi compilare l’app per Mac da te." + "text": "Le app sono open source sotto licenza AGPLv3, incluso il codice delle funzionalità a pagamento. Ciò che descrive questa pagina si può leggere nel repository, insieme agli script che firmano e autenticano ogni rilascio, e puoi compilare l’app per Mac da te." } ], "limits": [], diff --git a/resources/data/content/it/teams.json b/resources/data/content/it/teams.json index c7d34585..18c31517 100644 --- a/resources/data/content/it/teams.json +++ b/resources/data/content/it/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Posti e membri", "items": [ - "Un posto copre una persona su un massimo di {deviceLimit} Mac.", + "Un posto copre una persona su un massimo di {deviceLimit} computer, Mac o Linux.", "Proprietari e amministratori invitano via e-mail dalla pagina Membri del tuo account, con un ruolo e, se vogliono, un posto. Il link vale 7 giorni e qualsiasi account TablePro può accettarlo.", "Il proprietario gestisce la fatturazione. Gli amministratori gestiscono membri, inviti, la Team Library e il registro di audit del team. I membri usano ciò che viene condiviso.", "Il proprietario modifica i posti di un abbonamento in Fatturazione, e {merchant} addebita o accredita subito la differenza proporzionale.", diff --git a/resources/data/content/ja/about.json b/resources/data/content/ja/about.json index 58da98e4..02e29713 100644 --- a/resources/data/content/ja/about.json +++ b/resources/data/content/ja/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "開発者", - "body": "{maker} は、Mac アプリとそのプラグイン、iPhone・iPad アプリ、そしてこのウェブサイトを開発しています。", + "body": "{maker} は、Mac アプリとそのプラグイン、iPhone・iPad アプリ、Linux アプリ、そしてこのウェブサイトを開発しています。", "identity": "同じ開発者が App Store で TablePro を公開し、GitHub Sponsors で支援を受けています。", "facts": { "maker": "開発者", @@ -32,7 +32,7 @@ }, "source": { "title": "ソースコード", - "body": "両アプリは有料機能のコードも含め、AGPLv3 で公開しており、1 つの GitHub リポジトリにあります。", + "body": "各アプリは有料機能のコードも含め、AGPLv3 で公開しており、1 つの GitHub リポジトリにあります。", "license": "ライセンス本文も同じリポジトリにあります。" }, "contact": { diff --git a/resources/data/content/ja/black-friday.json b/resources/data/content/ja/black-friday.json index 14e814e7..84dac777 100644 --- a/resources/data/content/ja/black-friday.json +++ b/resources/data/content/ja/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro 買い切り", "unit": "一度のお支払い", - "detail": "有効期限なし。Mac {activations} 台。" + "detail": "有効期限なし。Mac または Linux のコンピューター {activations} 台。" }, "yearly": { "name": "Pro 年払い", "unit": "初年度", - "detail": "その後は年額 {yearlyList}。Mac {activations} 台。" + "detail": "その後は年額 {yearlyList}。Mac または Linux のコンピューター {activations} 台。" }, "buy": "{price} で購入", "soon": "{startsOn} から", @@ -39,7 +39,7 @@ }, "includes": { "title": "Pro で追加される機能", - "lead": "TablePro は仕事でも無料で使えます。Pro は Mac {activations} 台に以下の機能を追加します。", + "lead": "TablePro は仕事でも無料で使えます。Pro は Mac アプリに以下の機能を追加します。", "more": "Pro のその他の機能", "link": "{feature} について詳しく" }, diff --git a/resources/data/content/ja/compare/beekeeper-studio.json b/resources/data/content/ja/compare/beekeeper-studio.json index d37b1168..88ff11c9 100644 --- a/resources/data/content/ja/compare/beekeeper-studio.json +++ b/resources/data/content/ja/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "独立した無料の iPhone および iPad アプリを備えたネイティブ アプリ。" ], "competitor": [ - "Windows、 macOS、および Linux 上の同じクライアント。", + "Windows のサポート、および macOS と Linux での同じ機能。", "Firebird、 SQL Anywhere または GreengageDB 接続。", "{cells.sync.edition} 以上で、接続とクエリを共有するクラウドワークスペース。" ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro は Swift で書かれた Mac アプリで、ネイティブのデータベースドライバーを使います。Beekeeper Studio は {technology} を基盤としています。どちらも Apple silicon と Intel Mac 向けに別々のビルドを提供します。", + "text": "TablePro の Mac アプリは Swift で書かれ、ネイティブのデータベースドライバーを使います。Beekeeper Studio は {technology} を基盤としています。どちらも Apple silicon と Intel Mac 向けに別々のビルドを提供します。", "cite": [ "technology", "mac" diff --git a/resources/data/content/ja/compare/datagrip.json b/resources/data/content/ja/compare/datagrip.json index 42022e9d..7c3aa129 100644 --- a/resources/data/content/ja/compare/datagrip.json +++ b/resources/data/content/ja/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "クエリと並行したコード インスペクションとバージョン管理。", "非商用作業用のフル機能を備えた無料の IDE。", - "Windows または Linux のサポート、または Firebird、Informix、Databricks などの JDBC エンジン。" + "Windows のサポート、または Firebird、Informix、Databricks などの JDBC エンジン。" ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro は Swift で書かれた Mac アプリで、ネイティブのデータベースドライバーを使います。DataGrip は {technology} を基盤としています。", + "text": "TablePro の Mac アプリは Swift で書かれ、ネイティブのデータベースドライバーを使います。DataGrip は {technology} を基盤としています。", "cite": [ "technology" ], diff --git a/resources/data/content/ja/compare/dbeaver.json b/resources/data/content/ja/compare/dbeaver.json index 52c74527..7162584f 100644 --- a/resources/data/content/ja/compare/dbeaver.json +++ b/resources/data/content/ja/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro と DBeaver: 機能とエディション", - "description": "DBeaver は Java と JDBC で Windows、macOS、Linux に対応。TablePro は Mac、iPhone、iPad のネイティブクライアントです。エンジン、AI、MCP、料金を比較します。" + "description": "DBeaver は Java と JDBC で Windows、macOS、Linux に対応。TablePro は Mac、iPhone、iPad、Linux のネイティブクライアントです。エンジン、AI、MCP、料金を比較します。" }, "og": { "kicker": "比較", @@ -18,7 +18,7 @@ "MCP および AI は、選択したプロバイダーと無料でチャットできます。" ], "competitor": [ - "Windows または Linux のサポート。", + "Windows のサポート。", "TablePro のサポートされているドライバーを超える JDBC エンジン。", "ビジュアル クエリ ビルダー、編集可能な ER 図、スケジュールされたタスクなどの有料ツール。" ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro は Swift で書かれた Mac アプリで、ネイティブのデータベースドライバーを使います。DBeaver は Java 製で、ダウンロードに Java ランタイムが含まれます。", + "text": "TablePro の Mac アプリは Swift で書かれ、ネイティブのデータベースドライバーを使います。DBeaver は Java 製で、ダウンロードに Java ランタイムが含まれます。", "cite": [ "technology" ], diff --git a/resources/data/content/ja/compare/dbgate.json b/resources/data/content/ja/compare/dbgate.json index da6d428a..4c6d5a24 100644 --- a/resources/data/content/ja/compare/dbgate.json +++ b/resources/data/content/ja/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro と DbGate: エディションとサポートされるプラットフォーム", - "description": "DbGate は Windows、macOS、Linux と Web 向けのオープンソースクライアントで、有料の Premium 版があります。TablePro はオープンソースで Mac と iPhone にネイティブ対応。" + "description": "DbGate は Windows、macOS、Linux と Web 向けのオープンソースクライアントで、有料の Premium 版があります。TablePro はオープンソースで Mac、iPhone、Linux にネイティブ対応。" }, "og": { "kicker": "比較", @@ -18,7 +18,7 @@ "サポートされているエンジンのダンプ ツールを使用した無料のバックアップ。" ], "competitor": [ - "Windows、 Linux または Web サーバーのクライアント。", + "Windows または Web サーバーのクライアント。", "Firebird、Azure Cosmos DB または Firestore 接続。", "{cells.queryDesigner.edition} または DbGate クラウド同期のビジュアル クエリ デザイナー。" ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro は Swift で書かれた Mac アプリで、ネイティブのデータベースドライバーを使います。DbGate は {technology} で作られています。どちらも Apple silicon と Intel Mac 用のビルドがあります。", + "text": "TablePro の Mac アプリは Swift で書かれ、ネイティブのデータベースドライバーを使います。DbGate は {technology} で作られています。どちらも Apple silicon と Intel Mac 用のビルドがあります。", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "TablePro に Web 版はありますか?", - "answer": "ありません。TablePro は Mac、iPhone、iPad で動きます。チームがブラウザーで使うデータベースクライアントが必要なら、DbGate は Web アプリとしても動きます。", + "answer": "ありません。TablePro は Mac、iPhone、iPad、Linux 向けのアプリです。チームがブラウザーで使うデータベースクライアントが必要なら、DbGate は Web アプリとしても動きます。", "href": null }, { diff --git a/resources/data/content/ja/compare/heidisql.json b/resources/data/content/ja/compare/heidisql.json index 4d36e2ef..08ac29dc 100644 --- a/resources/data/content/ja/compare/heidisql.json +++ b/resources/data/content/ja/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro と HeidiSQL: データベース、プラットフォーム、価格設定", - "description": "HeidiSQL は Windows、Linux、2026 年から Apple silicon Mac で無料。TablePro は Mac、iPhone、iPad のネイティブアプリ。対応データベース、ビルドと料金を比較します。" + "description": "HeidiSQL は Windows、Linux、2026 年から Apple silicon Mac で無料。TablePro は Mac、iPhone、iPad、Linux のネイティブアプリ。対応データベース、ビルドと料金を比較します。" }, "og": { "kicker": "比較", @@ -18,7 +18,7 @@ "無料の AI チャットと MCP、さらに別の iPhone および iPad アプリ。" ], "competitor": [ - "Windows、 Linux、および Apple silicon Mac 上の同じ無料クライアント。", + "Windows と Apple silicon Mac 上の同じ無料クライアント。", "Firebird、 Interbase または ProxySQL 接続。", "すべての機能は無料で、有料プランはありません。" ] diff --git a/resources/data/content/ja/compare/index.json b/resources/data/content/ja/compare/index.json index 692e7d65..e520fce4 100644 --- a/resources/data/content/ja/compare/index.json +++ b/resources/data/content/ja/compare/index.json @@ -16,7 +16,7 @@ "lead": "必要なツールから始めます。", "tablepro": "TablePro は、いくつかのデータベース タイプに対応するネイティブのオープンソース クライアントです。 AI チャットと MCP は、Mac アプリで無料です。 {apps} から接続をインポートします。", "items": { - "tableplus": "Windows または Linux のサポートに加え、 Vertica および Greenplum。", + "tableplus": "Windows のサポートに加え、Vertica および Greenplum。", "dbeaver": "JDBC ドライバーをサポートするクロスプラットフォーム クライアント。", "datagrip": "コードインスペクションとバージョン管理を備えたデータベース IDE。非営利作品の場合は無料です。", "navicat": "Navicat Cloud を介したデータ モデリングと共有プロジェクト。", @@ -24,7 +24,7 @@ "sequel-ace": "MySQL および MariaDB に焦点を当てた無料の Mac App Store クライアント。", "sequel-pro": "Sequel Pro から移行しますか?その最後のリリースは、 {status.date} 上の {status.version} でした。 Sequel Ace と TablePro を比較してください。", "postico": "1 回限りのライセンスを持つ集中型 PostgreSQL クライアント。", - "heidisql": "Windows、 Linux、および Apple silicon Mac 用の無料クライアント。", + "heidisql": "Windows および Apple silicon Mac 用の無料クライアント。", "phpmyadmin": "MySQL または MariaDB は、cPanel ホスティングを含むブラウザー経由でアクセスします。", "mysql-workbench": "SQL ノートブックと MySQL Enterprise Backup 連携を備えた Oracle の MySQL ツール。", "pgadmin": "PostgreSQL 管理 (デバッガー、pgAgent ジョブ、および共有サーバー オプションを使用)。", @@ -218,6 +218,7 @@ "retrieved": "{date} に確認", "latest": "その時点の最新 {name} は {date} 公開の {version}。", "tablepro": "TablePro の欄は Mac 版 {macVersion} と iPhone・iPad 版 {iosVersion} を説明します。", + "tableproLinux": "TablePro の欄は Mac 版 {macVersion}、iPhone・iPad 版 {iosVersion}、Linux 版 {linuxVersion} を説明します。", "trademarks": "TablePro は独立したオープンソースプロジェクトで、ここで比較している製品の開発元とは提携しておらず、その承認も受けていません。製品名は各所有者の商標です。" }, "cta": { diff --git a/resources/data/content/ja/compare/mysql-workbench.json b/resources/data/content/ja/compare/mysql-workbench.json index f047d9d4..fbc61705 100644 --- a/resources/data/content/ja/compare/mysql-workbench.json +++ b/resources/data/content/ja/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro と MySQL Workbench: 機能と互換性", - "description": "MySQL Workbench は Oracle の無料 MySQL ツールで、MySQL Shell を基に作り直されました。TablePro は Mac、iPhone、iPad で MySQL と他のエンジンに対応します。" + "description": "MySQL Workbench は Oracle の無料 MySQL ツールで、MySQL Shell を基に作り直されました。TablePro は Mac、iPhone、iPad、Linux で MySQL と他のエンジンに対応します。" }, "og": { "kicker": "比較", diff --git a/resources/data/content/ja/compare/navicat.json b/resources/data/content/ja/compare/navicat.json index 8598ec7c..f91cf0c0 100644 --- a/resources/data/content/ja/compare/navicat.json +++ b/resources/data/content/ja/compare/navicat.json @@ -18,7 +18,7 @@ "ClickHouse、 DuckDB または Cassandra 接続。" ], "competitor": [ - "Windows または Linux のサポート。", + "Windows のサポート。", "Premium Enterprise でのデータ モデリング。", "Navicat Cloud または Navicat On-Prem Server (共有接続、クエリ、モデル)。" ] diff --git a/resources/data/content/ja/compare/pgadmin.json b/resources/data/content/ja/compare/pgadmin.json index c4e72f9c..32bed665 100644 --- a/resources/data/content/ja/compare/pgadmin.json +++ b/resources/data/content/ja/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "PostgreSQL 管理 (PL/pgSQL デバッガーおよび pgAgent ジョブを含む)。", "psql、pg_dump、および pg_restore がバンドルされました。", - "共有 Web サーバーのインストール、または Windows および Linux のサポート。" + "共有 Web サーバーのインストール、または Windows のサポート。" ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro は Swift で書かれた Mac アプリで、ネイティブのデータベースドライバーを使います。pgAdmin は Python の Web アプリケーションで、{technology} のデスクトップランタイムか Web サーバーで動きます。", + "text": "TablePro の Mac アプリは Swift で書かれ、ネイティブのデータベースドライバーを使います。pgAdmin は Python の Web アプリケーションで、{technology} のデスクトップランタイムか Web サーバーで動きます。", "cite": [ "technology" ], diff --git a/resources/data/content/ja/compare/phpmyadmin.json b/resources/data/content/ja/compare/phpmyadmin.json index ed6d917c..2bc1de2f 100644 --- a/resources/data/content/ja/compare/phpmyadmin.json +++ b/resources/data/content/ja/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "Mac、iPhone と iPad のアプリであり、どのコンピューターのブラウザーからも開けるものではありません。", + "text": "Mac、iPhone、iPad、Linux のアプリであり、どのコンピューターのブラウザーからも開けるものではありません。", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/ja/compare/tableplus.json b/resources/data/content/ja/compare/tableplus.json index 377605c2..0280ffc6 100644 --- a/resources/data/content/ja/compare/tableplus.json +++ b/resources/data/content/ja/compare/tableplus.json @@ -18,7 +18,7 @@ "アプリ内購入のない無料の iPhone および iPad アプリ。" ], "competitor": [ - "Windows または Linux のサポート。", + "Windows のサポート。", "Vertica または Greenplum 接続。", "Setapp を通じて利用できるクライアント。" ] diff --git a/resources/data/content/ja/databases/index.json b/resources/data/content/ja/databases/index.json index 0e3b7ee4..2a631d01 100644 --- a/resources/data/content/ja/databases/index.json +++ b/resources/data/content/ja/databases/index.json @@ -84,6 +84,13 @@ "others": "他のエンジンの接続も iPhone と iPad に同期されて一覧に表示されますが、開くことはできません。", "link": "iPhone・iPad 版 TablePro" }, + "linux": { + "title": "Linux では", + "tested": "Linux アプリはベータ版で、{engines} でテスト済みです。", + "untested": "{engines} への接続は Linux ではテストされていません。", + "others": "その他のエンジンは開けません。", + "link": "Linux にインストール" + }, "license": { "title": "Free に含まれます", "body": "対応するすべてのデータベースへの接続が Free に含まれます。Pro と Team は Mac アプリに追加機能を提供します。", @@ -131,6 +138,12 @@ "synced": "Mac から同期すれば開ける", "none": "開けない" }, + "linux": { + "tested": "テスト済み", + "versions": "テスト済み:{versions}", + "untested": "未テスト", + "none": "利用不可" + }, "availability": { "devices": "{devices} で使用可能", "bundled": "Mac アプリにドライバー同梱", @@ -184,6 +197,7 @@ "title": "TablePro を入手", "mac": "Mac アプリは無料でダウンロードできます。Pro と Team で追加機能を利用できます。", "ios": "iPhone・iPad アプリは App Store で入手できます。", + "linux": "Linux アプリは無料のベータ版です。", "pricing": "料金を見る" } } diff --git a/resources/data/content/ja/download.json b/resources/data/content/ja/download.json index d57f78bf..a4ba54b5 100644 --- a/resources/data/content/ja/download.json +++ b/resources/data/content/ja/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro をダウンロード", - "description": "Apple silicon・Intel 向けの TablePro をダウンロードするか、Homebrew でインストールできます。iPhone・iPad アプリは App Store で入手できます。" + "description": "Mac 版 TablePro をダウンロードするか、Homebrew でインストールできます。Linux ベータ版は Ubuntu、Fedora、Flatpak で、iPhone・iPad アプリは App Store で入手できます。" }, "og": { "kicker": "ダウンロード", diff --git a/resources/data/content/ja/faq.json b/resources/data/content/ja/faq.json index f478554f..c07926f7 100644 --- a/resources/data/content/ja/faq.json +++ b/resources/data/content/ja/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "TablePro とは何ですか?", "answer": [ - "ネイティブでオープンソースのデータベースクライアントです。Mac では {featuredEngines} などをクエリ・編集し、スキーマを操作できます。iPhone・iPad アプリのデータベース機能は限定されています。", + "ネイティブでオープンソースのデータベースクライアントです。Mac では {featuredEngines} などをクエリ・編集し、スキーマを操作できます。iPhone・iPad アプリと Linux ベータ版のデータベース機能は限定されています。", "すべての機能を見る。" ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "ここでの「ネイティブ」とは何ですか?", "answer": [ - "TablePro はネイティブのインターフェースとドライバーを使い、Electron・JDBC は使いません。現在のアプリは Swift 製です。Mac は AppKit と SwiftUI、iPhone・iPad は Face ID や Shortcuts などのデバイス機能を使います。" + "TablePro はネイティブのインターフェースとドライバーを使い、Electron・JDBC は使いません。Mac、iPhone、iPad のアプリは Swift 製です。Mac は AppKit と SwiftUI、iPhone・iPad は Face ID や Shortcuts などのデバイス機能を使います。Linux アプリは Rust、GTK 4、libadwaita で作られています。" ] }, { @@ -47,14 +47,14 @@ "question": "TablePro は無料ですか?", "answer": [ "はい。Mac アプリには試用期間や期限がありません。対応する全エンジン、AI、MCP、Safe Mode は無料です。Pro と Team は料金ページの機能を追加します。", - "iPhone・iPad アプリは無料で、ライセンスやアプリ内課金はありません。" + "iPhone・iPad アプリは無料で、ライセンスやアプリ内課金はありません。Linux アプリは無料で使えます。有料機能は今のところ Mac のみです。" ] }, { "id": "open-source", "question": "TablePro はオープンソースですか?", "answer": [ - "はい。両アプリは有料機能のコードも含め、一つの GitHub リポジトリで AGPLv3 として公開しています。ソースからビルドしても、有料機能のライセンス確認は行います。" + "はい。各アプリは有料機能のコードも含め、一つの GitHub リポジトリで AGPLv3 として公開しています。ソースからビルドしても、有料機能のライセンス確認は行います。" ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Windows や Linux 版はありますか?", "answer": [ - "いいえ。Windows 版はありません。Linux のプロトタイプはありますが、インストールできるものはなく、リリース日の予定もありません。" + "Linux 版はあります。Linux 版 TablePro をベータ版として提供しており、対応するエンジンと機能は Linux 版独自です。Windows 版はなく、リリース日の予定もありません。" ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "パスワードはどこに保存されますか?", "answer": [ - "保存したパスワードは Keychain に保持します。Mac ではファイル、環境変数、シェルコマンド、1Password、Vault、AWS Secrets Manager から取得することもできます。", + "保存したパスワードは Keychain に、Linux では GNOME Keyring や KWallet などの Secret Service キーリングに保持します。Mac ではファイル、環境変数、シェルコマンド、1Password、Vault、AWS Secrets Manager から取得することもできます。", "パスワード同期は別途有効にする必要があります。Mac の Passwords、または iPhone・iPad の Sync Passwords を有効にすると、iCloud Keychain を使います。" ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "1 ライセンスで何台の Mac を使えますか?", + "question": "1 ライセンスで何台のコンピューターを使えますか?", "answer": [ - "Pro は一人で最大 {deviceLimit} 台の Mac を使えます。Team は {teamMinSeats} 席以上で、1 席につき一人が最大 {deviceLimit} 台の Mac で使えます。台数の上限は Pro と Team を合わせたアカウント単位です。iPhone・iPad は席を使いません。", - "別の Mac でライセンスを使うには、Settings > Account かアカウントのデバイスページで Mac を 1 台削除します。それまでの間、その Mac では無料機能を使えます。" + "Pro は一人で最大 {deviceLimit} 台のコンピューター(Mac または Linux)を使えます。Team は {teamMinSeats} 席以上で、1 席につき一人が最大 {deviceLimit} 台のコンピューターで使えます。台数の上限は Pro と Team を合わせたアカウント単位です。有料機能は今のところ Mac のみですが、サインインした Linux コンピューターも台数に含まれます。iPhone・iPad は席を使いません。", + "別のコンピューターでライセンスを使うには、アカウントのデバイスページか、Mac の Settings > Account で 1 台削除します。それまでの間、そのコンピューターでは無料機能を使えます。" ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "アプリは TablePro に何を送りますか?", "answer": [ - "Mac アプリは初期設定で利用状況データを共有します。Settings > General > Privacy で無効にできます。TablePro アカウントに対応したバージョン以降は PostHog へ直接送られ、Mac のモデル、アプリと macOS のバージョン、データベースの種類を付けたアプリのイベントに、サインイン前はランダムな ID、サインイン後はアカウント ID が付きます。TablePro アカウントに対応する前のバージョンは、代わりにハッシュ化した端末 ID を含む毎日のレポートを運営者のサーバー経由で送ります。どちらにも、ホスト名、ユーザー名、パスワード、クエリ、行データは含まれません。", + "Mac アプリは初期設定で利用状況データを共有します。Settings > General > Privacy で無効にできます。TablePro アカウントに対応したバージョン以降は PostHog へ直接送られ、Mac のモデル、アプリと macOS のバージョン、データベースの種類を付けたアプリのイベントに、サインイン前はランダムな ID、サインイン後はアカウント ID が付きます。TablePro アカウントに対応する前のバージョンは、代わりにハッシュ化した端末 ID を含む毎日のレポートを運営者のサーバー経由で送ります。どちらにも、ホスト名、ユーザー名、パスワード、クエリ、行データは含まれません。Linux アプリも初期設定で利用状況データを共有しますが、これらの情報は含みません。アプリの設定で無効にできます。", "ログインすると、Mac アプリは端末 ID、Mac 名、アプリと macOS のバージョンを送って Mac をアカウントに登録し、1 日 1 回プランを更新します。TablePro アカウントに対応する前のバージョンは、{revalidateDays} 日ごとにライセンスキーとこれらの情報を送ります。iPhone・iPad のレポートは任意です。Team Library は公開した設定や保存済み SQL を受け取ります。IP ログを含むプライバシーポリシーをご覧ください。" ] }, diff --git a/resources/data/content/ja/features/ai-mcp.json b/resources/data/content/ja/features/ai-mcp.json index 66f30806..5d219120 100644 --- a/resources/data/content/ja/features/ai-mcp.json +++ b/resources/data/content/ja/features/ai-mcp.json @@ -112,7 +112,7 @@ "id": "iphone", "title": "対応環境", "paragraphs": [ - "このページの AI、MCP、自動化ツールは、現在 Mac のみで利用できます。" + "iPhone・iPad アプリには、このページの AI、MCP、自動化ツールはありません。" ], "links": [ { diff --git a/resources/data/content/ja/features/connections.json b/resources/data/content/ja/features/connections.json index d7b3b946..0cc65cbb 100644 --- a/resources/data/content/ja/features/connections.json +++ b/resources/data/content/ja/features/connections.json @@ -175,7 +175,7 @@ "title": "iPhone と iPad では", "paragraphs": [ "iPhone・iPad アプリには {iosPicker} 用の接続フォームがあり、グループ、接続ごとに一つのタグ、お気に入りを使えます。SSH トンネルはパスワードまたはファイルや貼り付けで指定した秘密鍵で認証し、ホスト鍵を確認します。iPhone と iPad は SSH エージェントと踏み台ホストに対応しません。TLS はサーバー証明書を検証できますが、SQL Server の場合は検証せずに暗号化します。証明書はデバイスに残り、同期しません。", - "パスワードと貼り付けた鍵はキーチェーンに保存します。Mac から同期した SQL Server 接続では Microsoft Entra ID で認証できます。他アプリからのインポート、AWS IAM、Kerberos と Google 認証、プロキシとトンネルコマンド、パスワード取得元、タイムアウトは Mac アプリ専用です。" + "パスワードと貼り付けた鍵はキーチェーンに保存します。Mac から同期した SQL Server 接続では Microsoft Entra ID で認証できます。他アプリからのインポート、AWS IAM、Kerberos と Google 認証、プロキシとトンネルコマンド、パスワード取得元、タイムアウトは iPhone・iPad アプリにはありません。" ], "links": [ { diff --git a/resources/data/content/ja/features/data-editing.json b/resources/data/content/ja/features/data-editing.json index 8180d461..771df929 100644 --- a/resources/data/content/ja/features/data-editing.json +++ b/resources/data/content/ja/features/data-editing.json @@ -105,7 +105,7 @@ "title": "iPhone と iPad では", "paragraphs": [ "カード形式で行を参照し、ソートやフィルター、外部キーの行プレビューができます。値を編集したり NULL に設定できます。編集と削除には主キーが必要です。新しい行は DEFAULT で始まり、NULL や空文字列も選べます。", - "モバイルの Safe Mode は {iosSafeModeLevels} を提供し、初期値は {iosSafeModeDefault} です。編集の一時保存、Preview SQL、ハイライトルール、Data Rewind は現在 Mac のみです。" + "モバイルの Safe Mode は {iosSafeModeLevels} を提供し、初期値は {iosSafeModeDefault} です。編集の一時保存、Preview SQL、ハイライトルール、Data Rewind は iPhone・iPad アプリにはありません。" ], "links": [ { diff --git a/resources/data/content/ja/features/schema.json b/resources/data/content/ja/features/schema.json index 6aac10f9..c9841d8a 100644 --- a/resources/data/content/ja/features/schema.json +++ b/resources/data/content/ja/features/schema.json @@ -121,7 +121,7 @@ "title": "iPhone と iPad では", "paragraphs": [ "iPhone・iPad アプリは、テーブルのカラム、インデックスと外部キーを読み取り専用で表示します。接続が Read-Only でなければ、SQL エンジンのテーブル一覧からテーブルを空にしたり削除したりできます。", - "構造編集、ER 図、Compare & Sync、Copy To、Users & Roles と Server Dashboard は Mac アプリ専用です。" + "構造編集、ER 図、Compare & Sync、Copy To、Users & Roles と Server Dashboard は iPhone・iPad アプリにはありません。" ], "links": [ { diff --git a/resources/data/content/ja/features/sync-and-teams.json b/resources/data/content/ja/features/sync-and-teams.json index 4f08dc5b..0bf266a4 100644 --- a/resources/data/content/ja/features/sync-and-teams.json +++ b/resources/data/content/ja/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Team の席", "paragraphs": [ - "Team の 1 席は、一人が最大 {deviceLimit} 台の Mac で使えます。オーナーと管理者がアカウントポータルからメールで招待し、席を付けるかどうかを選びます。招待された人はメールのリンクから参加します。", + "Team の 1 席は、一人が最大 {deviceLimit} 台のコンピューター(Mac または Linux)で使えます。オーナーと管理者がアカウントポータルからメールで招待し、席を付けるかどうかを選びます。招待された人はメールのリンクから参加します。", "サブスクリプションの席数はオーナーが「請求」で変更します。買い切りの席があるチームはその席をそのまま使え、席の追加は Team のサブスクリプションで行います。メンバーを削除すると席が空き、その Mac は次に TablePro がサーバーと通信したときに Team の機能を使えなくなります。" ], "links": [ diff --git a/resources/data/content/ja/home.json b/resources/data/content/ja/home.json index 35671b6c..61eda9ab 100644 --- a/resources/data/content/ja/home.json +++ b/resources/data/content/ja/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "接続を移行", - "lead": "他のアプリからのインポートと Open Project Folder は、{macApp}のみの機能です。", + "lead": "iPhone・iPad アプリは他のアプリからインポートできません。Open Project Folder は{macApp}のみの機能です。", "import": "保存済みパスワードも含めて、{apps} から接続をインポートできます。", "importWithoutPasswords": "{apps} の接続はパスワードを含まずにインポートされます。", "project": "Open Project Folder は、.env、docker-compose.yml、Prisma スキーマなど、対応するプロジェクトファイルから接続を作成します。", diff --git a/resources/data/content/ja/ios.json b/resources/data/content/ja/ios.json index 29b63b43..4fe9118d 100644 --- a/resources/data/content/ja/ios.json +++ b/resources/data/content/ja/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "iPhone・iPad にはない機能", - "lead": "以下は Mac 版 TablePro のみの機能です:", + "lead": "以下は Mac 版 TablePro にある機能です:", "items": [ "AI アシスタントと MCP サーバー", "保存済みクエリ、自動補完、クエリ整形、EXPLAIN", diff --git a/resources/data/content/ja/pricing.json b/resources/data/content/ja/pricing.json index 7e7460e6..7254200b 100644 --- a/resources/data/content/ja/pricing.json +++ b/resources/data/content/ja/pricing.json @@ -30,8 +30,8 @@ "title": "ライセンス", "items": { "macs": { - "question": "1 つのライセンスで何台の Mac に使えますか?", - "answer": "Pro は 1 人で最大 {deviceLimit} 台の Mac に使え、Team の各シートも同じです。Mac の枠は Settings > Account かアカウントで空けられます。" + "question": "1 つのライセンスで何台のコンピューターに使えますか?", + "answer": "Pro は 1 人で最大 {deviceLimit} 台のコンピューター(Mac または Linux)に使え、Team の各シートも同じです。枠はアカウントか、Mac の Settings > Account で空けられます。" }, "offline": { "question": "TablePro はオンラインである必要がありますか?", diff --git a/resources/data/content/ja/security.json b/resources/data/content/ja/security.json index 9e25a63b..37eefcd9 100644 --- a/resources/data/content/ja/security.json +++ b/resources/data/content/ja/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Safe Mode のレベル", - "text": "各接続には Safe Mode のレベル {macSafeModeLevels} があります。Alert は書き込み前に確認し、Safe Mode 系のレベルは Touch ID または Mac のパスワードも求め、Full 系は読み取り前も確認し、Read-Only は書き込みを拒否します。組織は構成プロファイルで、自組織の Mac に最低レベルを強制できます。iPhone・iPad のレベルは {iosSafeModeLevels} です。" + "text": "Mac では、各接続に Safe Mode のレベル {macSafeModeLevels} があります。Alert は書き込み前に確認し、Safe Mode 系のレベルは Touch ID または Mac のパスワードも求め、Full 系は読み取り前も確認し、Read-Only は書き込みを拒否します。組織は構成プロファイルで、自組織の Mac に最低レベルを強制できます。iPhone・iPad のレベルは {iosSafeModeLevels}、Linux では {linuxSafeModeLevels} です。" }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "ローカル専用", - "text": "MCP サーバーは Mac アプリだけにあり、有効にするか、設定したクライアントが起動するまでオフです。{mcpHost} で待ち受け、リモートモードはなく、クライアントがパスワードを見ることはありません。" + "text": "Mac アプリの MCP サーバーは、有効にするか、設定したクライアントが起動するまでオフです。{mcpHost} で待ち受け、リモートモードはなく、クライアントがパスワードを見ることはありません。" }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "コードは公開", - "text": "両アプリは有料機能のコードも含め、AGPLv3 のオープンソースです。このページの内容は、各リリースに署名して公証するスクリプトとともにリポジトリで確認でき、Mac アプリを自分でビルドすることもできます。" + "text": "各アプリは有料機能のコードも含め、AGPLv3 のオープンソースです。このページの内容は、各リリースに署名して公証するスクリプトとともにリポジトリで確認でき、Mac アプリを自分でビルドすることもできます。" } ], "limits": [], diff --git a/resources/data/content/ja/teams.json b/resources/data/content/ja/teams.json index 3d609cb9..286c99f1 100644 --- a/resources/data/content/ja/teams.json +++ b/resources/data/content/ja/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "シートとメンバー", "items": [ - "1 シートで、一人が最大 {deviceLimit} 台の Mac で使えます。", + "1 シートで、一人が最大 {deviceLimit} 台のコンピューター(Mac または Linux)で使えます。", "オーナーと管理者はアカウントのメンバーページからメールで招待し、役割と、必要に応じてシートを指定します。リンクは 7 日間有効で、どの TablePro アカウントでも承認できます。", "請求はオーナーが担当します。管理者はメンバー、招待、Team Library、チームの監査ログを管理します。メンバーは共有されたものを使います。", "サブスクリプションのシート数はオーナーが「請求」で変更し、{merchant} が日割りの差額をすぐに請求または返金します。", diff --git a/resources/data/content/ko/about.json b/resources/data/content/ko/about.json index 40ceeb8e..8b575c14 100644 --- a/resources/data/content/ko/about.json +++ b/resources/data/content/ko/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "개발자", - "body": "Mac 앱과 플러그인, iPhone 및 iPad 앱, 그리고 이 웹사이트의 개발자는 모두 {maker}입니다.", + "body": "Mac 앱과 플러그인, iPhone 및 iPad 앱, Linux 앱, 그리고 이 웹사이트의 개발자는 모두 {maker}입니다.", "identity": "같은 개발자가 App Store에 TablePro를 배포하고 GitHub Sponsors로 후원을 받습니다.", "facts": { "maker": "개발자", @@ -32,7 +32,7 @@ }, "source": { "title": "소스 코드", - "body": "두 앱 모두 유료 기능 코드를 포함해 AGPLv3로 공개되며 하나의 GitHub 저장소에 있습니다.", + "body": "모든 앱은 유료 기능 코드를 포함해 AGPLv3로 공개되며 하나의 GitHub 저장소에 있습니다.", "license": "라이선스 본문도 같은 저장소에 있습니다." }, "contact": { diff --git a/resources/data/content/ko/black-friday.json b/resources/data/content/ko/black-friday.json index 69e84821..5cbd7cce 100644 --- a/resources/data/content/ko/black-friday.json +++ b/resources/data/content/ko/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro 일회성", "unit": "일회 결제", - "detail": "만료일 없음. Mac {activations}대." + "detail": "만료일 없음. Mac 또는 Linux 컴퓨터 {activations}대." }, "yearly": { "name": "Pro 연간", "unit": "첫해", - "detail": "이후 연 {yearlyList}. Mac {activations}대." + "detail": "이후 연 {yearlyList}. Mac 또는 Linux 컴퓨터 {activations}대." }, "buy": "{price}에 구매", "soon": "{startsOn}부터", @@ -39,7 +39,7 @@ }, "includes": { "title": "Pro로 추가되는 기능", - "lead": "TablePro는 업무에서도 무료입니다. Pro는 Mac {activations}대에 다음 기능을 추가합니다.", + "lead": "TablePro는 업무에서도 무료입니다. Pro는 Mac 앱에 다음 기능을 추가합니다.", "more": "Pro의 다른 기능", "link": "{feature} 자세히 보기" }, diff --git a/resources/data/content/ko/compare/beekeeper-studio.json b/resources/data/content/ko/compare/beekeeper-studio.json index ca5526ad..fc94dd1f 100644 --- a/resources/data/content/ko/compare/beekeeper-studio.json +++ b/resources/data/content/ko/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "별도의 무료 iPhone 및 iPad 앱이 포함된 네이티브 앱입니다." ], "competitor": [ - "Windows, macOS 및 Linux 의 동일한 클라이언트.", + "Windows 지원, 그리고 macOS와 Linux에서 동일한 기능.", "Firebird, SQL Anywhere 또는 GreengageDB 연결.", "{cells.sync.edition}부터 제공되는 연결·쿼리 공유용 클라우드 워크스페이스." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro는 Swift로 만든 Mac 앱으로 네이티브 데이터베이스 드라이버를 사용합니다. Beekeeper Studio는 {technology} 기반입니다. 둘 다 Apple silicon과 Intel Mac용 빌드를 따로 제공합니다.", + "text": "TablePro의 Mac 앱은 Swift로 만들었으며 네이티브 데이터베이스 드라이버를 사용합니다. Beekeeper Studio는 {technology} 기반입니다. 둘 다 Apple silicon과 Intel Mac용 빌드를 따로 제공합니다.", "cite": [ "technology", "mac" diff --git a/resources/data/content/ko/compare/datagrip.json b/resources/data/content/ko/compare/datagrip.json index 4b79f8fe..68940ae0 100644 --- a/resources/data/content/ko/compare/datagrip.json +++ b/resources/data/content/ko/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "쿼리와 함께 코드 검사 및 버전 제어.", "무료로 제공되는 비상업적 작업을 위한 모든 기능을 갖춘 IDE입니다.", - "Windows 또는 Linux 지원 또는 Firebird, Informix 및 Databricks와 같은 JDBC 엔진." + "Windows 지원 또는 Firebird, Informix 및 Databricks와 같은 JDBC 엔진." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro는 Swift로 만든 Mac 앱으로 네이티브 데이터베이스 드라이버를 사용합니다. DataGrip은 {technology} 기반입니다.", + "text": "TablePro의 Mac 앱은 Swift로 만들었으며 네이티브 데이터베이스 드라이버를 사용합니다. DataGrip은 {technology} 기반입니다.", "cite": [ "technology" ], diff --git a/resources/data/content/ko/compare/dbeaver.json b/resources/data/content/ko/compare/dbeaver.json index 345bec3d..6f64a3f9 100644 --- a/resources/data/content/ko/compare/dbeaver.json +++ b/resources/data/content/ko/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver: 기능 및 에디션", - "description": "DBeaver는 Java와 JDBC로 Windows, macOS, Linux를 지원합니다. TablePro는 Mac, iPhone, iPad용 네이티브 클라이언트입니다. 엔진, AI, MCP, 가격을 비교하세요." + "description": "DBeaver는 Java와 JDBC로 Windows, macOS, Linux를 지원합니다. TablePro는 Mac, iPhone, iPad, Linux용 네이티브 클라이언트입니다. 엔진, AI, MCP, 가격을 비교하세요." }, "og": { "kicker": "비교", @@ -18,7 +18,7 @@ "원하는 제공업체와 무료 MCP 및 AI 채팅을 즐겨보세요." ], "competitor": [ - "Windows 또는 Linux를 지원합니다.", + "Windows를 지원합니다.", "TablePro의 지원 드라이버를 넘어서는 JDBC 엔진.", "시각적 쿼리 작성기, 편집 가능한 ER 다이어그램 및 예약된 작업과 같은 유료 도구입니다." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro는 Swift로 만든 Mac 앱으로 네이티브 데이터베이스 드라이버를 사용합니다. DBeaver는 Java로 만들었으며 다운로드에 Java 런타임이 포함됩니다.", + "text": "TablePro의 Mac 앱은 Swift로 만들었으며 네이티브 데이터베이스 드라이버를 사용합니다. DBeaver는 Java로 만들었으며 다운로드에 Java 런타임이 포함됩니다.", "cite": [ "technology" ], diff --git a/resources/data/content/ko/compare/dbgate.json b/resources/data/content/ko/compare/dbgate.json index 98240f6c..dbeb949b 100644 --- a/resources/data/content/ko/compare/dbgate.json +++ b/resources/data/content/ko/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DbGate: 에디션 및 지원 플랫폼", - "description": "DbGate는 Windows, macOS, Linux와 웹용 오픈 소스 클라이언트이며 유료 Premium 에디션이 있습니다. TablePro는 오픈 소스이며 Mac과 iPhone에서 네이티브입니다." + "description": "DbGate는 Windows, macOS, Linux와 웹용 오픈 소스 클라이언트이며 유료 Premium 에디션이 있습니다. TablePro는 오픈 소스이며 Mac, iPhone, Linux에서 네이티브입니다." }, "og": { "kicker": "비교", @@ -18,7 +18,7 @@ "지원되는 엔진의 덤프 도구를 통한 무료 백업." ], "competitor": [ - "Windows, Linux 또는 웹 서버용 클라이언트입니다.", + "Windows 또는 웹 서버용 클라이언트입니다.", "Firebird, Azure Cosmos DB 또는 Firestore 연결.", "{cells.queryDesigner.edition} 또는 DbGate 클라우드 동기화의 시각적 쿼리 디자이너입니다." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro는 Swift로 만든 Mac 앱으로 네이티브 데이터베이스 드라이버를 사용합니다. DbGate는 {technology} 기반입니다. 둘 다 Apple silicon과 Intel Mac용 빌드가 있습니다.", + "text": "TablePro의 Mac 앱은 Swift로 만들었으며 네이티브 데이터베이스 드라이버를 사용합니다. DbGate는 {technology} 기반입니다. 둘 다 Apple silicon과 Intel Mac용 빌드가 있습니다.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "TablePro에 웹 버전이 있나요?", - "answer": "없습니다. TablePro는 Mac, iPhone, iPad에서 실행합니다. 팀이 브라우저에서 쓸 데이터베이스 클라이언트가 필요하다면 DbGate는 웹 앱으로도 실행됩니다.", + "answer": "없습니다. TablePro는 Mac, iPhone, iPad, Linux용 앱입니다. 팀이 브라우저에서 쓸 데이터베이스 클라이언트가 필요하다면 DbGate는 웹 앱으로도 실행됩니다.", "href": null }, { diff --git a/resources/data/content/ko/compare/heidisql.json b/resources/data/content/ko/compare/heidisql.json index 5655aa5b..318774f0 100644 --- a/resources/data/content/ko/compare/heidisql.json +++ b/resources/data/content/ko/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL: 데이터베이스, 플랫폼 및 가격", - "description": "HeidiSQL은 Windows·Linux와 2026년부터 Apple silicon Mac에서 무료입니다. TablePro는 Mac·iPhone·iPad 네이티브 앱입니다. 데이터베이스·빌드·가격을 비교합니다." + "description": "HeidiSQL은 Windows·Linux와 2026년부터 Apple silicon Mac에서 무료입니다. TablePro는 Mac·iPhone·iPad·Linux 네이티브 앱입니다. 데이터베이스·빌드·가격을 비교합니다." }, "og": { "kicker": "비교", @@ -18,7 +18,7 @@ "무료 AI 채팅 및 MCP와 별도의 iPhone 및 iPad 앱이 제공됩니다." ], "competitor": [ - "Windows, Linux 및 Apple silicon Mac의 동일한 무료 클라이언트.", + "Windows 및 Apple silicon Mac의 동일한 무료 클라이언트.", "Firebird, Interbase 또는 ProxySQL 연결.", "유료 요금제 없이 모든 기능이 무료입니다." ] diff --git a/resources/data/content/ko/compare/index.json b/resources/data/content/ko/compare/index.json index a308eaf4..b6540576 100644 --- a/resources/data/content/ko/compare/index.json +++ b/resources/data/content/ko/compare/index.json @@ -16,7 +16,7 @@ "lead": "필요한 도구부터 시작하십시오.", "tablepro": "TablePro는 여러 데이터베이스 유형에 대한 네이티브 오픈 소스 클라이언트입니다. AI 채팅과 MCP는 Mac 앱에서 무료입니다. {apps} 에서 연결을 가져옵니다.", "items": { - "tableplus": "Windows 또는 Linux 지원과 Vertica 및 Greenplum.", + "tableplus": "Windows 지원과 Vertica 및 Greenplum.", "dbeaver": "JDBC 드라이버를 지원하는 크로스 플랫폼 클라이언트입니다.", "datagrip": "코드 검사 및 버전 제어 기능이 있는 데이터베이스 IDE입니다. 비상업적 작업에는 무료입니다.", "navicat": "Navicat Cloud를 통한 데이터 모델링 및 공유 프로젝트.", @@ -24,7 +24,7 @@ "sequel-ace": "MySQL 및 MariaDB에 중점을 둔 무료 Mac App Store 클라이언트입니다.", "sequel-pro": "Sequel Pro에서 이동합니까? 마지막 릴리스는 {status.date}의 {status.version}였습니다. Sequel Ace와 TablePro를 비교해보세요.", "postico": "일회성 라이센스가 있는 집중형 PostgreSQL 클라이언트입니다.", - "heidisql": "Windows, Linux 및 Apple silicon Mac용 무료 클라이언트입니다.", + "heidisql": "Windows 및 Apple silicon Mac용 무료 클라이언트입니다.", "phpmyadmin": "cPanel 호스팅을 포함하여 브라우저를 통해 MySQL 또는 MariaDB에 액세스합니다.", "mysql-workbench": "SQL 노트북과 MySQL Enterprise Backup 연동을 제공하는 Oracle의 MySQL 도구.", "pgadmin": "디버거, pgAgent 작업 및 공유 서버 옵션을 갖춘 PostgreSQL 관리.", @@ -218,6 +218,7 @@ "retrieved": "{date} 확인", "latest": "해당 날짜 최신 {name}: {date} 출시한 {version}.", "tablepro": "TablePro 열은 Mac용 TablePro {macVersion} 버전과 iPhone·iPad용 {iosVersion} 버전을 기준으로 합니다.", + "tableproLinux": "TablePro 열은 Mac용 TablePro {macVersion} 버전, iPhone·iPad용 {iosVersion} 버전, Linux용 {linuxVersion} 버전을 기준으로 합니다.", "trademarks": "TablePro는 독립적인 오픈 소스 프로젝트로, 여기서 비교하는 제품의 개발사와 제휴하지 않았으며 그들의 보증을 받지도 않았습니다. 제품 이름은 각 소유자의 상표입니다." }, "cta": { diff --git a/resources/data/content/ko/compare/mysql-workbench.json b/resources/data/content/ko/compare/mysql-workbench.json index 87117c1b..7dfffc87 100644 --- a/resources/data/content/ko/compare/mysql-workbench.json +++ b/resources/data/content/ko/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench: 기능 및 호환성", - "description": "MySQL Workbench는 Oracle의 무료 MySQL 도구로 MySQL Shell 기반으로 새로 만들어졌습니다. TablePro는 Mac, iPhone, iPad에서 MySQL과 다른 엔진을 지원합니다." + "description": "MySQL Workbench는 Oracle의 무료 MySQL 도구로 MySQL Shell 기반으로 새로 만들어졌습니다. TablePro는 Mac, iPhone, iPad, Linux에서 MySQL과 다른 엔진을 지원합니다." }, "og": { "kicker": "비교", diff --git a/resources/data/content/ko/compare/navicat.json b/resources/data/content/ko/compare/navicat.json index 0e8cacc7..d93282eb 100644 --- a/resources/data/content/ko/compare/navicat.json +++ b/resources/data/content/ko/compare/navicat.json @@ -18,7 +18,7 @@ "ClickHouse, DuckDB 또는 Cassandra 연결." ], "competitor": [ - "Windows 또는 Linux를 지원합니다.", + "Windows를 지원합니다.", "Premium Enterprise에서의 데이터 모델링.", "공유 연결, 쿼리 및 모델을 위한 Navicat Cloud 또는 Navicat On-Prem Server." ] diff --git a/resources/data/content/ko/compare/pgadmin.json b/resources/data/content/ko/compare/pgadmin.json index dcc7868f..3ad27a45 100644 --- a/resources/data/content/ko/compare/pgadmin.json +++ b/resources/data/content/ko/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "PL/pgSQL 디버거 및 pgAgent 작업을 포함한 PostgreSQL 관리.", "psql, pg_dump 및 pg_restore가 번들로 제공됩니다.", - "공유 웹 서버 설치 또는 Windows 및 Linux 지원." + "공유 웹 서버 설치 또는 Windows 지원." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro는 Swift로 만든 Mac 앱으로 네이티브 데이터베이스 드라이버를 사용합니다. pgAdmin은 Python 웹 애플리케이션으로 {technology} 데스크톱 런타임이나 웹 서버에서 실행합니다.", + "text": "TablePro의 Mac 앱은 Swift로 만들었으며 네이티브 데이터베이스 드라이버를 사용합니다. pgAdmin은 Python 웹 애플리케이션으로 {technology} 데스크톱 런타임이나 웹 서버에서 실행합니다.", "cite": [ "technology" ], diff --git a/resources/data/content/ko/compare/phpmyadmin.json b/resources/data/content/ko/compare/phpmyadmin.json index 74c72c7d..3e74c8a2 100644 --- a/resources/data/content/ko/compare/phpmyadmin.json +++ b/resources/data/content/ko/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "Mac·iPhone·iPad 앱으로 어느 컴퓨터의 브라우저에서든 열 수는 없습니다.", + "text": "Mac·iPhone·iPad·Linux 앱으로 어느 컴퓨터의 브라우저에서든 열 수는 없습니다.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/ko/compare/tableplus.json b/resources/data/content/ko/compare/tableplus.json index f24e7750..1b142984 100644 --- a/resources/data/content/ko/compare/tableplus.json +++ b/resources/data/content/ko/compare/tableplus.json @@ -18,7 +18,7 @@ "인앱 구매가 없는 무료 iPhone 및 iPad 앱입니다." ], "competitor": [ - "Windows 또는 Linux를 지원합니다.", + "Windows를 지원합니다.", "Vertica 또는 Greenplum 연결.", "Setapp을 통해 사용 가능한 클라이언트입니다." ] diff --git a/resources/data/content/ko/databases/index.json b/resources/data/content/ko/databases/index.json index 3a4a8b7d..d0cebdf8 100644 --- a/resources/data/content/ko/databases/index.json +++ b/resources/data/content/ko/databases/index.json @@ -84,6 +84,13 @@ "others": "다른 엔진의 연결도 iPhone과 iPad에 동기화되어 목록에 표시되지만 열 수는 없습니다.", "link": "iPhone 및 iPad용 TablePro" }, + "linux": { + "title": "Linux에서", + "tested": "Linux 앱은 베타이며 {engines}에서 테스트되었습니다.", + "untested": "{engines} 연결은 Linux에서 테스트되지 않았습니다.", + "others": "다른 엔진은 열 수 없습니다.", + "link": "Linux에 설치" + }, "license": { "title": "Free에 포함", "body": "지원하는 모든 데이터베이스 연결은 Free에 포함됩니다. Pro와 Team은 Mac 앱에 선택 기능을 추가합니다.", @@ -131,6 +138,12 @@ "synced": "Mac에서 동기화하면 열림", "none": "열리지 않음" }, + "linux": { + "tested": "테스트됨", + "versions": "테스트됨: {versions}", + "untested": "테스트 안 됨", + "none": "사용할 수 없음" + }, "availability": { "devices": "{devices}에서 사용 가능", "bundled": "Mac 앱에 드라이버 포함", @@ -184,6 +197,7 @@ "title": "TablePro 다운로드", "mac": "Mac 앱을 무료로 다운로드하세요. Pro와 Team은 선택 기능을 추가합니다.", "ios": "iPhone과 iPad 앱은 App Store에서 받을 수 있습니다.", + "linux": "Linux 앱은 무료 베타입니다.", "pricing": "요금 보기" } } diff --git a/resources/data/content/ko/download.json b/resources/data/content/ko/download.json index 3390e297..19badf8f 100644 --- a/resources/data/content/ko/download.json +++ b/resources/data/content/ko/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 다운로드", - "description": "Apple silicon 또는 Intel용 TablePro를 다운로드하거나 Homebrew로 설치하세요. iPhone 및 iPad 앱은 App Store에서 받을 수 있습니다." + "description": "Mac용 TablePro를 다운로드하거나 Homebrew로 설치하세요. Linux 베타는 Ubuntu, Fedora, Flatpak으로, iPhone 및 iPad 앱은 App Store에서 받을 수 있습니다." }, "og": { "kicker": "다운로드", diff --git a/resources/data/content/ko/faq.json b/resources/data/content/ko/faq.json index cc648e2f..93dcf840 100644 --- a/resources/data/content/ko/faq.json +++ b/resources/data/content/ko/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "TablePro는 무엇인가요?", "answer": [ - "네이티브 오픈 소스 데이터베이스 클라이언트입니다. Mac에서는 {featuredEngines} 등을 조회하고 편집하며 스키마를 다룹니다. iPhone 및 iPad 앱은 더 적은 데이터베이스 도구를 제공합니다.", + "네이티브 오픈 소스 데이터베이스 클라이언트입니다. Mac에서는 {featuredEngines} 등을 조회하고 편집하며 스키마를 다룹니다. iPhone 및 iPad 앱과 Linux 베타는 더 적은 데이터베이스 도구를 제공합니다.", "전체 기능 보기." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "여기서 “네이티브”는 무슨 뜻인가요?", "answer": [ - "TablePro는 Electron이나 JDBC 없이 네이티브 인터페이스와 데이터베이스 드라이버를 사용합니다. 현재 앱은 Swift로 작성됩니다. Mac에서는 AppKit과 SwiftUI를, iPhone 및 iPad에서는 Face ID와 Shortcuts 같은 기기 기능을 사용합니다." + "TablePro는 Electron이나 JDBC 없이 네이티브 인터페이스와 데이터베이스 드라이버를 사용합니다. Mac, iPhone, iPad 앱은 Swift로 작성됩니다. Mac에서는 AppKit과 SwiftUI를, iPhone 및 iPad에서는 Face ID와 Shortcuts 같은 기기 기능을 사용합니다. Linux 앱은 Rust, GTK 4, libadwaita를 사용합니다." ] }, { @@ -47,14 +47,14 @@ "question": "TablePro는 무료인가요?", "answer": [ "네. Mac 앱은 체험 기간이나 시간 제한이 없습니다. 지원되는 모든 엔진, AI, MCP, Safe Mode는 무료입니다. Pro와 Team은 요금 페이지의 기능을 추가합니다.", - "iPhone 및 iPad 앱은 무료이며 라이선스나 앱 내 구입이 없습니다." + "iPhone 및 iPad 앱은 무료이며 라이선스나 앱 내 구입이 없습니다. Linux 앱은 무료로 사용할 수 있으며, 유료 기능은 당분간 Mac에서만 제공됩니다." ] }, { "id": "open-source", "question": "TablePro는 오픈 소스인가요?", "answer": [ - "네. 두 앱은 유료 기능 코드를 포함해 하나의 GitHub 저장소에 AGPLv3로 공개됩니다. 소스로 빌드해도 유료 기능의 라이선스는 확인합니다." + "네. 모든 앱은 유료 기능 코드를 포함해 하나의 GitHub 저장소에 AGPLv3로 공개됩니다. 소스로 빌드해도 유료 기능의 라이선스는 확인합니다." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Windows 또는 Linux 버전이 있나요?", "answer": [ - "아니요. Windows 버전은 없습니다. Linux 프로토타입은 있지만 설치 가능한 버전과 출시 일정은 없습니다." + "Linux 버전은 있습니다. Linux용 TablePro를 베타로 제공하며, 지원하는 엔진과 기능은 Linux 버전에 따로 정해져 있습니다. Windows 버전은 없으며 출시 일정도 없습니다." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "비밀번호는 어디에 저장되나요?", "answer": [ - "저장된 암호는 Keychain에 보관됩니다. Mac에서는 파일, 환경 변수, 셸 명령, 1Password, Vault, AWS Secrets Manager에서 가져올 수도 있습니다.", + "저장된 암호는 Keychain에, Linux에서는 GNOME Keyring이나 KWallet 같은 Secret Service 키링에 보관됩니다. Mac에서는 파일, 환경 변수, 셸 명령, 1Password, Vault, AWS Secrets Manager에서 가져올 수도 있습니다.", "암호 동기화는 별도로 켜야 합니다. Mac의 암호 (Passwords) 또는 iPhone 및 iPad의 암호 동기화 (Sync Passwords)를 켜면 iCloud Keychain을 사용합니다." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "라이선스 하나로 Mac 몇 대를 사용할 수 있나요?", + "question": "라이선스 하나로 컴퓨터 몇 대를 사용할 수 있나요?", "answer": [ - "Pro는 한 사람이 최대 {deviceLimit}대의 Mac에서 사용합니다. Team은 최소 {teamMinSeats}석이며, 좌석 하나로 한 사람이 최대 {deviceLimit}대의 Mac에서 사용합니다. 대수 제한은 Pro와 Team을 합쳐 계정 단위로 적용됩니다. iPhone 및 iPad는 좌석을 사용하지 않습니다.", - "다른 Mac에서 라이선스를 사용하려면 설정 > 계정 (Settings > Account) 또는 계정의 기기 페이지에서 Mac 한 대를 제거하세요. 그동안 다른 Mac은 무료 기능을 계속 사용할 수 있습니다." + "Pro는 한 사람이 최대 {deviceLimit}대의 컴퓨터(Mac 또는 Linux)에서 사용합니다. Team은 최소 {teamMinSeats}석이며, 좌석 하나로 한 사람이 최대 {deviceLimit}대의 컴퓨터에서 사용합니다. 대수 제한은 Pro와 Team을 합쳐 계정 단위로 적용됩니다. 유료 기능은 당분간 Mac에서만 제공되지만, 로그인한 Linux 컴퓨터도 대수에 포함됩니다. iPhone 및 iPad는 좌석을 사용하지 않습니다.", + "다른 컴퓨터에서 라이선스를 사용하려면 계정의 기기 페이지나 Mac의 설정 > 계정 (Settings > Account)에서 한 대를 제거하세요. 그동안 다른 컴퓨터는 무료 기능을 계속 사용할 수 있습니다." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "앱은 TablePro에 무엇을 전송하나요?", "answer": [ - "Mac 앱은 기본적으로 사용 데이터를 공유합니다. 설정 > 일반 > 개인정보 보호 (Settings > General > Privacy)에서 끌 수 있습니다. TablePro 계정을 지원하는 버전부터는 PostHog로 직접 전송되며, Mac 모델, 앱 및 macOS 버전, 데이터베이스 유형이 담긴 앱 이벤트에 로그인 전에는 무작위 ID가, 로그인 후에는 계정 ID가 붙습니다. TablePro 계정을 지원하기 전 버전은 대신 해시된 기기 ID가 담긴 일일 보고서를 운영자의 서버를 거쳐 보냅니다. 어느 쪽도 호스트 이름, 사용자 이름, 암호, 쿼리, 행은 포함하지 않습니다.", + "Mac 앱은 기본적으로 사용 데이터를 공유합니다. 설정 > 일반 > 개인정보 보호 (Settings > General > Privacy)에서 끌 수 있습니다. TablePro 계정을 지원하는 버전부터는 PostHog로 직접 전송되며, Mac 모델, 앱 및 macOS 버전, 데이터베이스 유형이 담긴 앱 이벤트에 로그인 전에는 무작위 ID가, 로그인 후에는 계정 ID가 붙습니다. TablePro 계정을 지원하기 전 버전은 대신 해시된 기기 ID가 담긴 일일 보고서를 운영자의 서버를 거쳐 보냅니다. 어느 쪽도 호스트 이름, 사용자 이름, 암호, 쿼리, 행은 포함하지 않습니다. Linux 앱도 기본적으로 사용 데이터를 공유하며 이런 정보는 포함하지 않습니다. 앱 환경설정에서 끌 수 있습니다.", "로그인하면 Mac 앱은 기기 ID, Mac 이름, 앱 및 macOS 버전을 보내 Mac을 계정에 등록하고 하루에 한 번 플랜을 갱신합니다. TablePro 계정을 지원하기 전 버전은 {revalidateDays}일마다 라이선스 키와 이 정보를 보냅니다. iPhone 및 iPad 보고는 선택 사항입니다. Team Library는 게시한 설정과 저장된 SQL을 받습니다. IP 기록을 포함한 개인정보 처리방침을 확인하세요." ] }, diff --git a/resources/data/content/ko/features/ai-mcp.json b/resources/data/content/ko/features/ai-mcp.json index 3e402d5f..60d06969 100644 --- a/resources/data/content/ko/features/ai-mcp.json +++ b/resources/data/content/ko/features/ai-mcp.json @@ -112,7 +112,7 @@ "id": "iphone", "title": "지원 환경", "paragraphs": [ - "이 페이지의 AI, MCP, 자동화 도구는 현재 Mac에서만 사용할 수 있습니다." + "iPhone 및 iPad 앱에는 이 페이지의 AI, MCP, 자동화 도구가 없습니다." ], "links": [ { diff --git a/resources/data/content/ko/features/connections.json b/resources/data/content/ko/features/connections.json index 808289aa..ff455087 100644 --- a/resources/data/content/ko/features/connections.json +++ b/resources/data/content/ko/features/connections.json @@ -175,7 +175,7 @@ "title": "iPhone과 iPad에서", "paragraphs": [ "iPhone과 iPad 앱에는 {iosPicker}용 자체 연결 양식이 있으며 그룹, 연결당 태그 하나와 즐겨찾기를 지원합니다. SSH 터널은 비밀번호 또는 파일이나 붙여넣기로 제공한 개인 키로 로그인하고 호스트 키를 검사합니다. iPhone과 iPad에서는 SSH 에이전트와 점프 호스트를 지원하지 않습니다. TLS는 서버 인증서를 검증할 수 있지만 SQL Server에서는 검증 없이 암호화합니다. 인증서는 기기에만 저장되며 동기화되지 않습니다.", - "비밀번호와 붙여넣은 키는 키체인에 보관됩니다. Mac에서 동기화한 SQL Server 연결은 Microsoft Entra ID로 로그인할 수 있습니다. 다른 앱에서 가져오기, AWS IAM, Kerberos 및 Google 로그인, 프록시와 터널 명령, 비밀번호 소스와 제한 시간은 Mac 앱에서만 사용할 수 있습니다." + "비밀번호와 붙여넣은 키는 키체인에 보관됩니다. Mac에서 동기화한 SQL Server 연결은 Microsoft Entra ID로 로그인할 수 있습니다. 다른 앱에서 가져오기, AWS IAM, Kerberos 및 Google 로그인, 프록시와 터널 명령, 비밀번호 소스와 제한 시간은 iPhone 및 iPad 앱에는 없습니다." ], "links": [ { diff --git a/resources/data/content/ko/features/data-editing.json b/resources/data/content/ko/features/data-editing.json index 8cda7f2d..e5134768 100644 --- a/resources/data/content/ko/features/data-editing.json +++ b/resources/data/content/ko/features/data-editing.json @@ -105,7 +105,7 @@ "title": "iPhone과 iPad에서", "paragraphs": [ "행을 카드로 보고 정렬하거나 필터링하며 외래 키를 눌러 참조 행을 미리 보세요. 값을 편집하거나 NULL로 설정할 수 있습니다. 편집과 삭제에는 기본 키가 필요합니다. 새 행은 DEFAULT 값으로 시작하며 NULL이나 빈 문자열도 선택할 수 있습니다.", - "모바일 Safe Mode는 {iosSafeModeLevels}를 제공하며 기본값은 {iosSafeModeDefault}입니다. 편집 준비, Preview SQL, 강조 규칙, Data Rewind는 현재 Mac 전용입니다." + "모바일 Safe Mode는 {iosSafeModeLevels}를 제공하며 기본값은 {iosSafeModeDefault}입니다. 편집 준비, Preview SQL, 강조 규칙, Data Rewind는 iPhone 및 iPad 앱에는 없습니다." ], "links": [ { diff --git a/resources/data/content/ko/features/schema.json b/resources/data/content/ko/features/schema.json index 94cb5982..698add6f 100644 --- a/resources/data/content/ko/features/schema.json +++ b/resources/data/content/ko/features/schema.json @@ -121,7 +121,7 @@ "title": "iPhone과 iPad에서", "paragraphs": [ "iPhone과 iPad 앱은 테이블의 열, 인덱스 및 외래 키를 읽기 전용으로 표시합니다. 연결이 Read-Only가 아니라면 SQL 엔진의 테이블 목록에서 테이블을 비우거나 삭제할 수 있습니다.", - "구조 편집, ER 다이어그램, Compare & Sync, Copy To, Users & Roles 및 Server Dashboard는 Mac 앱에서만 사용할 수 있습니다." + "구조 편집, ER 다이어그램, Compare & Sync, Copy To, Users & Roles 및 Server Dashboard는 iPhone 및 iPad 앱에는 없습니다." ], "links": [ { diff --git a/resources/data/content/ko/features/sync-and-teams.json b/resources/data/content/ko/features/sync-and-teams.json index 14b96352..df8cf912 100644 --- a/resources/data/content/ko/features/sync-and-teams.json +++ b/resources/data/content/ko/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Team 좌석", "paragraphs": [ - "Team 좌석 하나로 한 사람이 최대 {deviceLimit}대의 Mac에서 사용합니다. 소유자와 관리자가 계정 포털에서 이메일로 초대하며 좌석 포함 여부를 정하고, 초대받은 사람은 이메일의 링크로 참여합니다.", + "Team 좌석 하나로 한 사람이 최대 {deviceLimit}대의 컴퓨터(Mac 또는 Linux)에서 사용합니다. 소유자와 관리자가 계정 포털에서 이메일로 초대하며 좌석 포함 여부를 정하고, 초대받은 사람은 이메일의 링크로 참여합니다.", "구독 좌석은 소유자가 결제 페이지에서 변경합니다. 일회성 좌석이 있는 팀은 그 좌석을 그대로 유지하며, 좌석을 추가하려면 Team 구독이 필요합니다. 구성원을 제거하면 좌석이 반환되고, 그 구성원의 Mac은 다음에 TablePro가 서버와 통신할 때 Team 기능을 잃습니다." ], "links": [ diff --git a/resources/data/content/ko/home.json b/resources/data/content/ko/home.json index 71c548dd..54ac0036 100644 --- a/resources/data/content/ko/home.json +++ b/resources/data/content/ko/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "연결 가져오기", - "lead": "다른 앱에서 가져오기 및 Open Project Folder는 {macApp}에서만 제공합니다.", + "lead": "iPhone 및 iPad 앱은 다른 앱에서 가져오지 않으며, Open Project Folder는 {macApp}에서만 제공합니다.", "import": "저장된 비밀번호를 포함해 {apps}에서 연결을 가져옵니다.", "importWithoutPasswords": "{apps}의 연결은 비밀번호 없이 가져옵니다.", "project": "Open Project Folder는 .env, docker-compose.yml, Prisma 스키마 등 지원되는 프로젝트 파일에서 연결을 만듭니다.", diff --git a/resources/data/content/ko/ios.json b/resources/data/content/ko/ios.json index ae7f655a..6b4f79dc 100644 --- a/resources/data/content/ko/ios.json +++ b/resources/data/content/ko/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "iPhone 및 iPad에 없는 기능", - "lead": "다음은 Mac용 TablePro에서만 제공합니다:", + "lead": "다음은 Mac용 TablePro에서 제공합니다:", "items": [ "AI 어시스턴트 및 MCP 서버", "저장된 쿼리, 자동 완성, 쿼리 서식 지정 및 EXPLAIN", diff --git a/resources/data/content/ko/pricing.json b/resources/data/content/ko/pricing.json index 689d61d1..53be8f87 100644 --- a/resources/data/content/ko/pricing.json +++ b/resources/data/content/ko/pricing.json @@ -30,8 +30,8 @@ "title": "라이선스", "items": { "macs": { - "question": "라이선스 하나로 Mac 몇 대에서 사용할 수 있나요?", - "answer": "Pro는 한 사람이 최대 {deviceLimit}대의 Mac에서 사용하며, Team 좌석도 하나당 같습니다. 설정 > 계정 (Settings > Account) 또는 계정에서 Mac을 해제하세요." + "question": "라이선스 하나로 컴퓨터 몇 대에서 사용할 수 있나요?", + "answer": "Pro는 한 사람이 최대 {deviceLimit}대의 컴퓨터(Mac 또는 Linux)에서 사용하며, Team 좌석도 하나당 같습니다. 계정이나 Mac의 설정 > 계정 (Settings > Account)에서 한 대를 해제하세요." }, "offline": { "question": "TablePro는 온라인 상태여야 하나요?", diff --git a/resources/data/content/ko/security.json b/resources/data/content/ko/security.json index 32316998..816eb4c1 100644 --- a/resources/data/content/ko/security.json +++ b/resources/data/content/ko/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Safe Mode 수준", - "text": "각 연결에는 {macSafeModeLevels} 중 하나의 Safe Mode 수준이 있습니다. Alert는 쓰기 전에 확인하고, Safe Mode 수준은 Touch ID나 Mac 비밀번호도 요구하며, Full 수준은 읽기 전에도 확인하고, Read-Only는 쓰기를 거부합니다. 조직은 구성 프로필로 소속 Mac에 최소 수준을 강제할 수 있습니다. iPhone 및 iPad의 수준은 {iosSafeModeLevels}입니다." + "text": "Mac에서 각 연결에는 {macSafeModeLevels} 중 하나의 Safe Mode 수준이 있습니다. Alert는 쓰기 전에 확인하고, Safe Mode 수준은 Touch ID나 Mac 비밀번호도 요구하며, Full 수준은 읽기 전에도 확인하고, Read-Only는 쓰기를 거부합니다. 조직은 구성 프로필로 소속 Mac에 최소 수준을 강제할 수 있습니다. iPhone 및 iPad의 수준은 {iosSafeModeLevels}이고, Linux에서는 {linuxSafeModeLevels}입니다." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "로컬 전용", - "text": "MCP 서버는 Mac 앱에만 있으며, 직접 켜거나 설정한 클라이언트가 시작하기 전까지 꺼져 있습니다. {mcpHost}에서 수신하고 원격 모드가 없으며, 클라이언트는 비밀번호를 볼 수 없습니다." + "text": "Mac 앱의 MCP 서버는 직접 켜거나 설정한 클라이언트가 시작하기 전까지 꺼져 있습니다. {mcpHost}에서 수신하고 원격 모드가 없으며, 클라이언트는 비밀번호를 볼 수 없습니다." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "공개된 코드", - "text": "두 앱 모두 유료 기능 코드를 포함해 AGPLv3 오픈 소스입니다. 이 페이지에서 설명하는 내용은 각 릴리스에 서명하고 공증하는 스크립트와 함께 저장소에서 확인할 수 있으며, Mac 앱을 직접 빌드할 수도 있습니다." + "text": "모든 앱은 유료 기능 코드를 포함해 AGPLv3 오픈 소스입니다. 이 페이지에서 설명하는 내용은 각 릴리스에 서명하고 공증하는 스크립트와 함께 저장소에서 확인할 수 있으며, Mac 앱을 직접 빌드할 수도 있습니다." } ], "limits": [], diff --git a/resources/data/content/ko/teams.json b/resources/data/content/ko/teams.json index 54834882..50662889 100644 --- a/resources/data/content/ko/teams.json +++ b/resources/data/content/ko/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "좌석과 팀원", "items": [ - "좌석 하나로 한 사람이 최대 {deviceLimit}대의 Mac에서 사용합니다.", + "좌석 하나로 한 사람이 최대 {deviceLimit}대의 컴퓨터(Mac 또는 Linux)에서 사용합니다.", "소유자와 관리자는 계정의 구성원 페이지에서 이메일로 초대하며 역할과, 원하면 좌석을 지정합니다. 링크는 7일 동안 유효하고 어떤 TablePro 계정으로도 수락할 수 있습니다.", "결제는 소유자가 담당합니다. 관리자는 구성원, 초대, Team Library, 팀의 감사 로그를 관리합니다. 구성원은 공유된 항목을 사용합니다.", "소유자가 결제 페이지에서 구독 좌석을 변경하면 {merchant}가 일할 계산한 차액을 즉시 청구하거나 환급합니다.", diff --git a/resources/data/content/pt-BR/about.json b/resources/data/content/pt-BR/about.json index 4ccae90a..8e80880d 100644 --- a/resources/data/content/pt-BR/about.json +++ b/resources/data/content/pt-BR/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Quem desenvolve", - "body": "{maker} desenvolve o app para Mac e seus plugins, o app para iPhone e iPad e este site.", + "body": "{maker} desenvolve o app para Mac e seus plugins, o app para iPhone e iPad, o app para Linux e este site.", "identity": "O mesmo desenvolvedor publica TablePro na App Store e recebe apoio pelo GitHub Sponsors.", "facts": { "maker": "Desenvolvedor", @@ -32,7 +32,7 @@ }, "source": { "title": "Código-fonte", - "body": "Os dois apps são de código aberto sob a AGPLv3, incluindo o código dos recursos pagos, em um único repositório no GitHub.", + "body": "Os apps são de código aberto sob a AGPLv3, incluindo o código dos recursos pagos, em um único repositório no GitHub.", "license": "O texto da licença está no mesmo repositório." }, "contact": { diff --git a/resources/data/content/pt-BR/black-friday.json b/resources/data/content/pt-BR/black-friday.json index 68469242..da19f964 100644 --- a/resources/data/content/pt-BR/black-friday.json +++ b/resources/data/content/pt-BR/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro de pagamento único", "unit": "pagamento único", - "detail": "Sem data de expiração. {activations} Macs." + "detail": "Sem data de expiração. {activations} computadores, Mac ou Linux." }, "yearly": { "name": "Pro anual", "unit": "primeiro ano", - "detail": "Depois, {yearlyList} por ano. {activations} Macs." + "detail": "Depois, {yearlyList} por ano. {activations} computadores, Mac ou Linux." }, "buy": "Comprar por {price}", "soon": "A partir de {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "O que o Pro adiciona", - "lead": "O TablePro é gratuito, inclusive no trabalho. O Pro adiciona estes recursos em {activations} Macs.", + "lead": "O TablePro é gratuito, inclusive no trabalho. O Pro adiciona estes recursos ao app para Mac.", "more": "Também no Pro", "link": "Mais sobre {feature}" }, diff --git a/resources/data/content/pt-BR/compare/beekeeper-studio.json b/resources/data/content/pt-BR/compare/beekeeper-studio.json index 12eecfe3..4f238faf 100644 --- a/resources/data/content/pt-BR/compare/beekeeper-studio.json +++ b/resources/data/content/pt-BR/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "Um app nativo e um app gratuito separado para iPhone e iPad." ], "competitor": [ - "O mesmo cliente no Windows, macOS e Linux.", + "Suporte a Windows, com os mesmos recursos no macOS e no Linux.", "Conexões com Firebird, SQL Anywhere ou GreengageDB.", "Workspaces na nuvem para compartilhar conexões e consultas, a partir de {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro é um app Mac escrito em Swift, com drivers nativos de bancos de dados. Beekeeper Studio é construído sobre {technology}. Ambos oferecem versões separadas para Macs com Apple silicon e Intel.", + "text": "O app Mac do TablePro é escrito em Swift, com drivers nativos de bancos de dados. Beekeeper Studio é construído sobre {technology}. Ambos oferecem versões separadas para Macs com Apple silicon e Intel.", "cite": [ "technology", "mac" diff --git a/resources/data/content/pt-BR/compare/datagrip.json b/resources/data/content/pt-BR/compare/datagrip.json index bc0f49a5..0d4d3ab1 100644 --- a/resources/data/content/pt-BR/compare/datagrip.json +++ b/resources/data/content/pt-BR/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Inspeções de código e controle de versão junto das consultas.", "Um IDE completo, gratuito para uso não comercial.", - "Suporte a Windows ou Linux, ou mecanismos JDBC como Firebird, Informix e Databricks." + "Suporte a Windows, ou mecanismos JDBC como Firebird, Informix e Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro é um app Mac escrito em Swift, com drivers nativos de bancos de dados. DataGrip é construído sobre {technology}.", + "text": "O app Mac do TablePro é escrito em Swift, com drivers nativos de bancos de dados. DataGrip é construído sobre {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/pt-BR/compare/dbeaver.json b/resources/data/content/pt-BR/compare/dbeaver.json index 8cf8fa64..ad4cb6f6 100644 --- a/resources/data/content/pt-BR/compare/dbeaver.json +++ b/resources/data/content/pt-BR/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DBeaver: recursos e edições", - "description": "DBeaver usa Java e JDBC em Windows, macOS e Linux. TablePro é nativo para Mac, iPhone e iPad. Compare bancos, IA, MCP e preços." + "description": "DBeaver usa Java e JDBC em Windows, macOS e Linux. TablePro é nativo para Mac, iPhone, iPad e Linux. Compare bancos, IA, MCP e preços." }, "og": { "kicker": "Comparação", @@ -18,7 +18,7 @@ "MCP e chat de IA gratuitos com o provedor que você escolher." ], "competitor": [ - "Suporte a Windows ou Linux.", + "Suporte a Windows.", "Mecanismos JDBC além dos drivers compatíveis com TablePro.", "Ferramentas pagas como construtor visual de consultas, diagramas ER editáveis e tarefas agendadas." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro é um app Mac escrito em Swift, com drivers nativos de bancos. DBeaver é construído em Java, e seu download inclui um ambiente de execução Java.", + "text": "O app Mac do TablePro é escrito em Swift, com drivers nativos de bancos. DBeaver é construído em Java, e seu download inclui um ambiente de execução Java.", "cite": [ "technology" ], diff --git a/resources/data/content/pt-BR/compare/dbgate.json b/resources/data/content/pt-BR/compare/dbgate.json index c8cccfab..510378fb 100644 --- a/resources/data/content/pt-BR/compare/dbgate.json +++ b/resources/data/content/pt-BR/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs DbGate: edições e plataformas compatíveis", - "description": "DbGate é um cliente de código aberto para Windows, macOS, Linux e web, com edições Premium pagas. TablePro é de código aberto e nativo no Mac e iPhone." + "description": "DbGate é um cliente de código aberto para Windows, macOS, Linux e web, com edições Premium pagas. TablePro é de código aberto e nativo no Mac, iPhone e Linux." }, "og": { "kicker": "Comparação", @@ -18,7 +18,7 @@ "Backups gratuitos com ferramentas de dump dos mecanismos compatíveis." ], "competitor": [ - "Um cliente para Windows, Linux ou servidor web.", + "Um cliente para Windows ou servidor web.", "Conexões com Firebird, Azure Cosmos DB ou Firestore.", "Um designer visual de consultas em {cells.queryDesigner.edition}, ou sincronização DbGate Cloud." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro é um app Mac escrito em Swift, com drivers nativos de bancos de dados. DbGate é construído sobre {technology}. Ambos oferecem versões para Macs com Apple silicon e Intel.", + "text": "O app Mac do TablePro é escrito em Swift, com drivers nativos de bancos de dados. DbGate é construído sobre {technology}. Ambos oferecem versões para Macs com Apple silicon e Intel.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "Existe uma versão web do TablePro?", - "answer": "Não. TablePro funciona no seu Mac, iPhone e iPad. Se sua equipe precisa de um cliente de banco de dados no navegador, DbGate também funciona como app web.", + "answer": "Não. TablePro é um app para Mac, iPhone, iPad e Linux. Se sua equipe precisa de um cliente de banco de dados no navegador, DbGate também funciona como app web.", "href": null }, { diff --git a/resources/data/content/pt-BR/compare/heidisql.json b/resources/data/content/pt-BR/compare/heidisql.json index 922df37a..aef1361e 100644 --- a/resources/data/content/pt-BR/compare/heidisql.json +++ b/resources/data/content/pt-BR/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs HeidiSQL: bancos, plataformas e preços", - "description": "HeidiSQL é gratuito em Windows, Linux e Macs Apple silicon desde 2026. TablePro é nativo no Mac, iPhone e iPad. Compare bancos, versões e preços." + "description": "HeidiSQL é gratuito em Windows, Linux e Macs Apple silicon desde 2026. TablePro é nativo no Mac, iPhone, iPad e Linux. Compare bancos, versões e preços." }, "og": { "kicker": "Comparação", @@ -18,7 +18,7 @@ "Chat de IA e MCP gratuitos, mais um app separado para iPhone e iPad." ], "competitor": [ - "O mesmo cliente gratuito no Windows, Linux e Macs com Apple silicon.", + "O mesmo cliente gratuito no Windows e em Macs com Apple silicon.", "Conexões Firebird, Interbase ou ProxySQL.", "Todos os recursos são gratuitos, sem planos pagos." ] diff --git a/resources/data/content/pt-BR/compare/index.json b/resources/data/content/pt-BR/compare/index.json index 480cac56..eb79fe9a 100644 --- a/resources/data/content/pt-BR/compare/index.json +++ b/resources/data/content/pt-BR/compare/index.json @@ -16,7 +16,7 @@ "lead": "Comece com as ferramentas que você precisa.", "tablepro": "TablePro é um cliente nativo e de código aberto para vários tipos de banco de dados. O chat de AI e o MCP são gratuitos no app para Mac. Importe conexões de {apps}.", "items": { - "tableplus": "Suporte Windows ou Linux, além de Vertica e Greenplum.", + "tableplus": "Suporte Windows, além de Vertica e Greenplum.", "dbeaver": "Um cliente multiplataforma com suporte ao driver JDBC.", "datagrip": "Um IDE de banco de dados com inspeções de código e controle de versão. Gratuito para trabalhos não comerciais.", "navicat": "Modelagem de dados e projetos compartilhados através de Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "Um cliente Mac App Store gratuito focado em MySQL e MariaDB.", "sequel-pro": "Vai sair do Sequel Pro? A última versão foi {status.version}, em {status.date}. Compare Sequel Ace e TablePro.", "postico": "Um cliente PostgreSQL focado com uma licença única.", - "heidisql": "Um cliente gratuito para Windows, Linux e Macs com Apple silicon.", + "heidisql": "Um cliente gratuito para Windows e Macs com Apple silicon.", "phpmyadmin": "Acesso MySQL ou MariaDB através do seu navegador, incluindo hospedagem cPanel.", "mysql-workbench": "Ferramenta MySQL do Oracle, com notebooks SQL e integração com MySQL Enterprise Backup.", "pgadmin": "Administração PostgreSQL, com depurador, jobs pgAgent e opção de servidor compartilhado.", @@ -218,6 +218,7 @@ "retrieved": "verificado em {date}", "latest": "Última versão de {name} nessa data: {version}, publicada em {date}.", "tablepro": "A coluna TablePro descreve TablePro {macVersion} para Mac e {iosVersion} para iPhone e iPad.", + "tableproLinux": "A coluna TablePro descreve TablePro {macVersion} para Mac, {iosVersion} para iPhone e iPad e {linuxVersion} para Linux.", "trademarks": "TablePro é um projeto independente de código aberto, sem afiliação com os criadores dos produtos comparados aqui e sem o endosso deles. Os nomes dos produtos são marcas de seus respectivos proprietários." }, "cta": { diff --git a/resources/data/content/pt-BR/compare/mysql-workbench.json b/resources/data/content/pt-BR/compare/mysql-workbench.json index a1700207..04305f4c 100644 --- a/resources/data/content/pt-BR/compare/mysql-workbench.json +++ b/resources/data/content/pt-BR/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro vs MySQL Workbench: recursos e compatibilidade", - "description": "MySQL Workbench é a ferramenta gratuita da Oracle para MySQL, refeita sobre o MySQL Shell. TablePro atende MySQL e outros bancos no Mac, iPhone e iPad." + "description": "MySQL Workbench é a ferramenta gratuita da Oracle para MySQL, refeita sobre o MySQL Shell. TablePro atende MySQL e outros bancos no Mac, iPhone, iPad e Linux." }, "og": { "kicker": "Comparação", diff --git a/resources/data/content/pt-BR/compare/navicat.json b/resources/data/content/pt-BR/compare/navicat.json index 20d25fcc..75a1ea0e 100644 --- a/resources/data/content/pt-BR/compare/navicat.json +++ b/resources/data/content/pt-BR/compare/navicat.json @@ -18,7 +18,7 @@ "Conexões ClickHouse, DuckDB ou Cassandra." ], "competitor": [ - "Suporte a Windows ou Linux.", + "Suporte a Windows.", "Modelagem de dados no Premium Enterprise.", "Navicat Cloud ou Navicat On-Prem Server para compartilhar conexões, consultas e modelos." ] diff --git a/resources/data/content/pt-BR/compare/pgadmin.json b/resources/data/content/pt-BR/compare/pgadmin.json index a4731fc8..1630c2ef 100644 --- a/resources/data/content/pt-BR/compare/pgadmin.json +++ b/resources/data/content/pt-BR/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "Administração PostgreSQL, incluindo um depurador PL/pgSQL e trabalhos pgAgent.", "Pacote psql, pg_dump e pg_restore.", - "Uma instalação de servidor web compartilhado ou suporte para Windows e Linux." + "Uma instalação de servidor web compartilhado ou suporte para Windows." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro é um app Mac escrito em Swift, com drivers nativos de bancos de dados. pgAdmin é uma aplicação web em Python que roda em um ambiente desktop {technology} ou em um servidor web.", + "text": "O app Mac do TablePro é escrito em Swift, com drivers nativos de bancos de dados. pgAdmin é uma aplicação web em Python que roda em um ambiente desktop {technology} ou em um servidor web.", "cite": [ "technology" ], diff --git a/resources/data/content/pt-BR/compare/phpmyadmin.json b/resources/data/content/pt-BR/compare/phpmyadmin.json index fda59742..bd9eea81 100644 --- a/resources/data/content/pt-BR/compare/phpmyadmin.json +++ b/resources/data/content/pt-BR/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "É um app para Mac, iPhone e iPad. Você não pode abri-lo pelo navegador de qualquer computador.", + "text": "É um app para Mac, iPhone, iPad e Linux. Você não pode abri-lo pelo navegador de qualquer computador.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/pt-BR/compare/tableplus.json b/resources/data/content/pt-BR/compare/tableplus.json index 752c2633..6393db63 100644 --- a/resources/data/content/pt-BR/compare/tableplus.json +++ b/resources/data/content/pt-BR/compare/tableplus.json @@ -18,7 +18,7 @@ "Um aplicativo gratuito para iPhone e iPad, sem compras no aplicativo." ], "competitor": [ - "Suporte a Windows ou Linux.", + "Suporte a Windows.", "Conexões Vertica ou Greenplum.", "Um cliente disponível através do Setapp." ] diff --git a/resources/data/content/pt-BR/databases/index.json b/resources/data/content/pt-BR/databases/index.json index 0e6cb721..348594ed 100644 --- a/resources/data/content/pt-BR/databases/index.json +++ b/resources/data/content/pt-BR/databases/index.json @@ -84,6 +84,13 @@ "others": "Conexões a outros mecanismos sincronizam com o iPhone e iPad e aparecem na lista, mas não abrem nesses dispositivos.", "link": "TablePro para iPhone e iPad" }, + "linux": { + "title": "No Linux", + "tested": "O app para Linux é um beta, testado com {engines}.", + "untested": "As conexões a {engines} não são testadas no Linux.", + "others": "Outros mecanismos não abrem nele.", + "link": "Instalar no Linux" + }, "license": { "title": "Incluído no Grátis", "body": "Todas as conexões de banco de dados suportadas estão incluídas no Free. Pro e Team adicionam recursos opcionais ao app para Mac.", @@ -131,6 +138,12 @@ "synced": "Abre quando sincronizado de um Mac", "none": "Não abre" }, + "linux": { + "tested": "Testado", + "versions": "Testado: {versions}", + "untested": "Não testado", + "none": "Não disponível" + }, "availability": { "devices": "Funciona em {devices}", "bundled": "O driver acompanha o app para Mac", @@ -184,6 +197,7 @@ "title": "Baixe TablePro", "mac": "Baixe o app para Mac gratuitamente. Pro e Team adicionam recursos opcionais.", "ios": "O app para iPhone e iPad está na App Store.", + "linux": "O app para Linux é um beta gratuito.", "pricing": "Ver preços" } } diff --git a/resources/data/content/pt-BR/download.json b/resources/data/content/pt-BR/download.json index 41acbc1f..ffb3f4ea 100644 --- a/resources/data/content/pt-BR/download.json +++ b/resources/data/content/pt-BR/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "Baixar TablePro", - "description": "Baixe TablePro para Mac com Apple silicon e Intel, ou instale-o com Homebrew. O aplicativo para iPhone e iPad está no App Store." + "description": "Baixe TablePro para Mac ou instale-o com Homebrew. Instale a versão beta para Linux no Ubuntu, Fedora ou via Flatpak, e o app para iPhone e iPad pelo App Store." }, "og": { "kicker": "Download", diff --git a/resources/data/content/pt-BR/faq.json b/resources/data/content/pt-BR/faq.json index 56917a5b..4e882a21 100644 --- a/resources/data/content/pt-BR/faq.json +++ b/resources/data/content/pt-BR/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "O que é TablePro?", "answer": [ - "Um cliente de banco de dados nativo e de código aberto. No Mac, consulte e edite {featuredEngines} e outros bancos e trabalhe com esquemas. O app para iPhone e iPad oferece menos ferramentas de banco de dados.", + "Um cliente de banco de dados nativo e de código aberto. No Mac, consulte e edite {featuredEngines} e outros bancos e trabalhe com esquemas. O app para iPhone e iPad e a versão beta para Linux oferecem menos ferramentas de banco de dados.", "Veja todos os recursos." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "O que “nativo” significa aqui?", "answer": [ - "TablePro usa interfaces nativas e drivers de banco de dados, sem Electron ou JDBC. Os aplicativos atuais usam Swift: AppKit e SwiftUI no Mac e recursos do dispositivo como Face ID e atalhos no iPhone e iPad." + "TablePro usa interfaces nativas e drivers de banco de dados, sem Electron ou JDBC. Os aplicativos para Mac, iPhone e iPad usam Swift: AppKit e SwiftUI no Mac e recursos do dispositivo como Face ID e atalhos no iPhone e iPad. O app para Linux usa Rust, GTK 4 e libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "TablePro é gratuito?", "answer": [ "Sim. O app para Mac não tem período de teste ou limite de tempo. Todos os motores suportados, AI, MCP e Safe Mode são gratuitos. Pro e Team adicionam os recursos na página de preços.", - "O aplicativo para iPhone e iPad é gratuito, sem licença ou compras no aplicativo." + "O aplicativo para iPhone e iPad é gratuito, sem licença ou compras no aplicativo. O app para Linux é de uso gratuito, e por enquanto os recursos pagos estão no Mac." ] }, { "id": "open-source", "question": "TablePro é de código aberto?", "answer": [ - "Sim. Ambos os aplicativos, incluindo o código de recurso pago, estão sob o AGPLv3 em um repositório GitHub. As compilações a partir da fonte ainda verificam as licenças de recursos pagos." + "Sim. Os aplicativos, incluindo o código de recurso pago, estão sob o AGPLv3 em um repositório GitHub. As compilações a partir da fonte ainda verificam as licenças de recursos pagos." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Existe uma versão para Windows ou Linux?", "answer": [ - "Não. Não há versão para Windows. Existe um protótipo para Linux, mas não há nada para instalar nem data de lançamento." + "Para Linux, sim: o TablePro para Linux está disponível em versão beta, com seu próprio conjunto de bancos e recursos. Windows não está disponível, e não há data de lançamento." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "Onde minhas senhas são armazenadas?", "answer": [ - "As senhas salvas permanecem no Keychain. No Mac, você pode resolvê-los a partir de arquivos, variáveis de ambiente, comandos shell, 1Password, Vault ou AWS Secrets Manager.", + "As senhas salvas permanecem no Keychain ou, no Linux, em um chaveiro do Secret Service como GNOME Keyring ou KWallet. No Mac, você pode resolvê-los a partir de arquivos, variáveis de ambiente, comandos shell, 1Password, Vault ou AWS Secrets Manager.", "A sincronização de senha é uma opção separada: habilite Passwords no Mac ou Sync Passwords no iPhone e iPad. Ele usa iCloud Keychain." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "Quantos Macs uma licença cobre?", + "question": "Quantos computadores uma licença cobre?", "answer": [ - "Pro cobre uma pessoa em até {deviceLimit} Macs. Team oferece no mínimo {teamMinSeats} vagas, e cada vaga cobre uma pessoa em até {deviceLimit} Macs. O limite é por conta, somando Pro e Team. iPhone e iPad não usam vagas.", - "Para usar sua licença em outro Mac, remova um em Settings > Account ou na página Dispositivos da sua conta. Até lá, o outro Mac mantém os recursos gratuitos." + "Pro cobre uma pessoa em até {deviceLimit} computadores, Mac ou Linux. Team oferece no mínimo {teamMinSeats} vagas, e cada vaga cobre uma pessoa em até {deviceLimit} computadores. O limite é por conta, somando Pro e Team. Por enquanto os recursos pagos estão no Mac, mas um computador Linux em que você entra também conta. iPhone e iPad não usam vagas.", + "Para usar sua licença em outro computador, remova um na página Dispositivos da sua conta ou em Settings > Account no Mac. Até lá, o outro computador mantém os recursos gratuitos." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "O que os apps enviam ao TablePro?", "answer": [ - "O app para Mac compartilha dados de uso por padrão; desative em Settings > General > Privacy. A partir da versão que traz as contas TablePro, eles vão direto ao PostHog: eventos do app com o modelo do Mac, as versões do app e do macOS e os tipos de banco de dados, com um ID aleatório antes de você entrar e o ID da sua conta depois. As versões anteriores às contas TablePro enviam, em vez disso, um relatório diário com um ID de máquina com hash pelo nosso servidor. Nenhum dos dois inclui nomes de host, nomes de usuário, senhas, consultas ou linhas.", + "O app para Mac compartilha dados de uso por padrão; desative em Settings > General > Privacy. A partir da versão que traz as contas TablePro, eles vão direto ao PostHog: eventos do app com o modelo do Mac, as versões do app e do macOS e os tipos de banco de dados, com um ID aleatório antes de você entrar e o ID da sua conta depois. As versões anteriores às contas TablePro enviam, em vez disso, um relatório diário com um ID de máquina com hash pelo nosso servidor. Nenhum dos dois inclui nomes de host, nomes de usuário, senhas, consultas ou linhas. O app para Linux também compartilha dados de uso por padrão, sem esses detalhes; desative nas preferências dele.", "Quando você entra, o app para Mac registra seu Mac na sua conta com o ID da máquina, o nome e as versões do app e do macOS, e renova seu plano uma vez por dia. As versões anteriores às contas TablePro enviam a chave de licença com esses dados a cada {revalidateDays} dias. Os relatórios no iPhone e iPad são opcionais. Team Library recebe as configurações e o SQL salvo que você publica. Veja a política de privacidade, incluindo o registro de IP." ] }, diff --git a/resources/data/content/pt-BR/features/ai-mcp.json b/resources/data/content/pt-BR/features/ai-mcp.json index e75cafcf..d3ae588d 100644 --- a/resources/data/content/pt-BR/features/ai-mcp.json +++ b/resources/data/content/pt-BR/features/ai-mcp.json @@ -117,7 +117,7 @@ "id": "iphone", "title": "Disponibilidade", "paragraphs": [ - "AI, MCP e as ferramentas de automação nesta página estão atualmente disponíveis apenas em Mac." + "O app para iPhone e iPad não tem a IA, o MCP nem as ferramentas de automação desta página." ], "links": [ { diff --git a/resources/data/content/pt-BR/features/connections.json b/resources/data/content/pt-BR/features/connections.json index 5d854e5d..c852f2ed 100644 --- a/resources/data/content/pt-BR/features/connections.json +++ b/resources/data/content/pt-BR/features/connections.json @@ -175,7 +175,7 @@ "title": "No iPhone e iPad", "paragraphs": [ "O app para iPhone e iPad tem seu próprio formulário de conexão para {iosPicker}, com grupos, uma etiqueta por conexão e favoritos. Túneis SSH autenticam com senha ou chave privada, de arquivo ou colada, e verificam a chave do host; agentes SSH e hosts intermediários não são suportados no iPhone e iPad. TLS pode verificar o certificado do servidor, exceto no SQL Server, onde criptografa sem verificar. Certificados ficam no dispositivo e nunca são sincronizados.", - "Senhas e chaves coladas são guardadas nas Chaves. Conexões SQL Server sincronizadas de um Mac podem autenticar com Microsoft Entra ID. Importação de outros apps, AWS IAM, Kerberos e autenticação Google, proxies e comandos de túnel, fontes de senha e tempos limite estão apenas no app para Mac." + "Senhas e chaves coladas são guardadas nas Chaves. Conexões SQL Server sincronizadas de um Mac podem autenticar com Microsoft Entra ID. Importação de outros apps, AWS IAM, Kerberos e autenticação Google, proxies e comandos de túnel, fontes de senha e tempos limite não estão no app para iPhone e iPad." ], "links": [ { diff --git a/resources/data/content/pt-BR/features/data-editing.json b/resources/data/content/pt-BR/features/data-editing.json index 67158538..5cd95a60 100644 --- a/resources/data/content/pt-BR/features/data-editing.json +++ b/resources/data/content/pt-BR/features/data-editing.json @@ -105,7 +105,7 @@ "title": "No iPhone e iPad", "paragraphs": [ "Navegue pelas linhas como cartões, classifique-as e filtre-as ou toque em uma chave estrangeira para visualizar sua linha. Edite valores ou defina NULL; a edição e a exclusão exigem uma chave primária. Novas linhas começam com valores DEFAULT, com NULL e uma string vazia disponível.", - "Safe Mode no mobile oferece {iosSafeModeLevels}, com {iosSafeModeDefault} como padrão. Edições pendentes, Preview SQL, regras de destaque e Data Rewind estão disponíveis apenas no Mac atualmente." + "Safe Mode no mobile oferece {iosSafeModeLevels}, com {iosSafeModeDefault} como padrão. Edições pendentes, Preview SQL, regras de destaque e Data Rewind não estão no app para iPhone e iPad." ], "links": [ { diff --git a/resources/data/content/pt-BR/features/schema.json b/resources/data/content/pt-BR/features/schema.json index a03c3457..c799bd3e 100644 --- a/resources/data/content/pt-BR/features/schema.json +++ b/resources/data/content/pt-BR/features/schema.json @@ -121,7 +121,7 @@ "title": "No iPhone e iPad", "paragraphs": [ "O app para iPhone e iPad mostra as colunas, índices e chaves estrangeiras de uma tabela em modo somente leitura. Na lista de tabelas, você pode truncar ou remover uma tabela em um mecanismo SQL, a menos que a conexão seja Read-Only.", - "Edição de estrutura, diagrama ER, Compare & Sync, Copy To, Users & Roles e Server Dashboard estão apenas no app para Mac." + "Edição de estrutura, diagrama ER, Compare & Sync, Copy To, Users & Roles e Server Dashboard não estão no app para iPhone e iPad." ], "links": [ { diff --git a/resources/data/content/pt-BR/features/sync-and-teams.json b/resources/data/content/pt-BR/features/sync-and-teams.json index 4d22d462..25b0857a 100644 --- a/resources/data/content/pt-BR/features/sync-and-teams.json +++ b/resources/data/content/pt-BR/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Assentos Team", "paragraphs": [ - "Uma vaga Team cobre uma pessoa em até {deviceLimit} Macs. Proprietários e administradores convidam por e-mail pelo portal da conta, com ou sem vaga, e cada convidado entra pelo link do e-mail.", + "Uma vaga Team cobre uma pessoa em até {deviceLimit} computadores, Mac ou Linux. Proprietários e administradores convidam por e-mail pelo portal da conta, com ou sem vaga, e cada convidado entra pelo link do e-mail.", "O proprietário altera as vagas de uma assinatura em Cobrança, e uma equipe com vagas de pagamento único continua com elas; novas vagas vêm com uma assinatura do Team. Remover um membro libera a vaga dele, e os Macs dele perdem os recursos do Team na próxima vez que o TablePro se comunicar com o servidor." ], "links": [ diff --git a/resources/data/content/pt-BR/home.json b/resources/data/content/pt-BR/home.json index 785a3d13..e3cb4372 100644 --- a/resources/data/content/pt-BR/home.json +++ b/resources/data/content/pt-BR/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Traga suas conexões", - "lead": "A importação de outros apps e Open Project Folder estão disponíveis apenas no {macApp}.", + "lead": "O app para iPhone e iPad não importa de outros apps, e Open Project Folder está disponível apenas no {macApp}.", "import": "Importe conexões de {apps}, incluindo as senhas salvas.", "importWithoutPasswords": "As conexões de {apps} são importadas sem as senhas.", "project": "Open Project Folder cria conexões a partir de arquivos de projeto compatíveis, incluindo .env, docker-compose.yml e esquemas Prisma.", diff --git a/resources/data/content/pt-BR/ios.json b/resources/data/content/pt-BR/ios.json index 90185d6d..efd8315c 100644 --- a/resources/data/content/pt-BR/ios.json +++ b/resources/data/content/pt-BR/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "Não disponível no iPhone e iPad", - "lead": "Estes recursos estão apenas no TablePro para Mac:", + "lead": "Estes recursos estão no TablePro para Mac:", "items": [ "O assistente de IA e o servidor MCP", "Consultas salvas, preenchimento automático, formatação de consultas e EXPLAIN", diff --git a/resources/data/content/pt-BR/pricing.json b/resources/data/content/pt-BR/pricing.json index 8ee2a061..81484432 100644 --- a/resources/data/content/pt-BR/pricing.json +++ b/resources/data/content/pt-BR/pricing.json @@ -30,8 +30,8 @@ "title": "Licenças", "items": { "macs": { - "question": "Em quantos Macs uma licença vale?", - "answer": "Pro cobre uma pessoa em até {deviceLimit} Macs, assim como cada vaga do Team. Libere um Mac em Settings > Account ou na sua conta." + "question": "Em quantos computadores uma licença vale?", + "answer": "Pro cobre uma pessoa em até {deviceLimit} computadores, Mac ou Linux, assim como cada vaga do Team. Libere um na sua conta ou em Settings > Account no Mac." }, "offline": { "question": "O TablePro precisa estar online?", diff --git a/resources/data/content/pt-BR/security.json b/resources/data/content/pt-BR/security.json index 8ed02cf0..eb1bec47 100644 --- a/resources/data/content/pt-BR/security.json +++ b/resources/data/content/pt-BR/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Níveis de Safe Mode", - "text": "Cada conexão tem um nível de Safe Mode: {macSafeModeLevels}. Alert pede confirmação antes de uma gravação, os níveis Safe Mode também pedem Touch ID ou a senha do Mac, os níveis Full pedem confirmação também antes de leituras, e Read-Only recusa gravações. Uma organização pode impor um nível mínimo nos Macs dela por um perfil de configuração. No iPhone e iPad, os níveis são {iosSafeModeLevels}." + "text": "No Mac, cada conexão tem um nível de Safe Mode: {macSafeModeLevels}. Alert pede confirmação antes de uma gravação, os níveis Safe Mode também pedem Touch ID ou a senha do Mac, os níveis Full pedem confirmação também antes de leituras, e Read-Only recusa gravações. Uma organização pode impor um nível mínimo nos Macs dela por um perfil de configuração. No iPhone e iPad, os níveis são {iosSafeModeLevels}, e no Linux, {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Somente local", - "text": "O servidor MCP existe só no app para Mac e fica desativado até você ativá-lo ou um cliente configurado iniciá-lo. Ele escuta em {mcpHost}, sem modo remoto, e os clientes nunca veem uma senha." + "text": "No app para Mac, o servidor MCP fica desativado até você ativá-lo ou um cliente configurado iniciá-lo. Ele escuta em {mcpHost}, sem modo remoto, e os clientes nunca veem uma senha." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "O código é público", - "text": "Os dois apps são de código aberto sob a AGPLv3, incluindo o código dos recursos pagos. O que esta página descreve pode ser lido no repositório, junto com os scripts que assinam e autenticam cada versão, e você pode compilar o app para Mac por conta própria." + "text": "Os apps são de código aberto sob a AGPLv3, incluindo o código dos recursos pagos. O que esta página descreve pode ser lido no repositório, junto com os scripts que assinam e autenticam cada versão, e você pode compilar o app para Mac por conta própria." } ], "limits": [], diff --git a/resources/data/content/pt-BR/teams.json b/resources/data/content/pt-BR/teams.json index 5e6d0d8c..fca88993 100644 --- a/resources/data/content/pt-BR/teams.json +++ b/resources/data/content/pt-BR/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Vagas e membros", "items": [ - "Uma vaga cobre uma pessoa em até {deviceLimit} Macs.", + "Uma vaga cobre uma pessoa em até {deviceLimit} computadores, Mac ou Linux.", "Proprietários e administradores convidam por e-mail na página Membros da sua conta, com uma função e, se quiserem, uma vaga. O link vale por 7 dias, e qualquer conta TablePro pode aceitá-lo.", "O proprietário cuida da cobrança. Os administradores gerenciam membros, convites, a Team Library e o registro de auditoria da equipe. Os membros usam o que é compartilhado.", "O proprietário altera as vagas de uma assinatura em Cobrança, e {merchant} cobra ou credita a diferença proporcional na hora.", diff --git a/resources/data/content/vi/about.json b/resources/data/content/vi/about.json index 83ced650..caaf2b10 100644 --- a/resources/data/content/vi/about.json +++ b/resources/data/content/vi/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "Người phát triển", - "body": "{maker} phát triển ứng dụng cho Mac cùng các plugin, ứng dụng cho iPhone và iPad, và website này.", + "body": "{maker} phát triển ứng dụng cho Mac cùng các plugin, ứng dụng cho iPhone và iPad, ứng dụng cho Linux và website này.", "identity": "Cùng lập trình viên đó phát hành TablePro trên App Store và nhận tài trợ qua GitHub Sponsors.", "facts": { "maker": "Người phát triển", @@ -32,7 +32,7 @@ }, "source": { "title": "Mã nguồn", - "body": "Cả hai ứng dụng đều là mã nguồn mở theo giấy phép AGPLv3, kể cả phần mã của các tính năng trả phí, trong cùng một kho mã nguồn trên GitHub.", + "body": "Các ứng dụng đều là mã nguồn mở theo giấy phép AGPLv3, kể cả phần mã của các tính năng trả phí, trong cùng một kho mã nguồn trên GitHub.", "license": "Văn bản giấy phép AGPL nằm trong cùng kho mã nguồn đó." }, "contact": { diff --git a/resources/data/content/vi/black-friday.json b/resources/data/content/vi/black-friday.json index 9f3662b6..06524a63 100644 --- a/resources/data/content/vi/black-friday.json +++ b/resources/data/content/vi/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro mua một lần", "unit": "trả một lần", - "detail": "Không có ngày hết hạn. {activations} máy Mac." + "detail": "Không có ngày hết hạn. {activations} máy tính, Mac hoặc Linux." }, "yearly": { "name": "Pro theo năm", "unit": "năm đầu", - "detail": "Sau đó {yearlyList} mỗi năm. {activations} máy Mac." + "detail": "Sau đó {yearlyList} mỗi năm. {activations} máy tính, Mac hoặc Linux." }, "buy": "Mua với giá {price}", "soon": "Từ {startsOn}", @@ -39,7 +39,7 @@ }, "includes": { "title": "Pro bổ sung những gì", - "lead": "TablePro miễn phí, kể cả cho công việc. Pro bổ sung các tính năng này trên {activations} máy Mac.", + "lead": "TablePro miễn phí, kể cả cho công việc. Pro bổ sung các tính năng này cho ứng dụng Mac.", "more": "Pro còn có", "link": "Xem thêm về {feature}" }, diff --git a/resources/data/content/vi/compare/beekeeper-studio.json b/resources/data/content/vi/compare/beekeeper-studio.json index e9b42b52..a5a07f8a 100644 --- a/resources/data/content/vi/compare/beekeeper-studio.json +++ b/resources/data/content/vi/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "Ứng dụng native cùng ứng dụng iPhone và iPad riêng, miễn phí." ], "competitor": [ - "Cùng client trên Windows, macOS và Linux.", + "Hỗ trợ Windows, với cùng tính năng trên macOS và Linux.", "Connection Firebird, SQL Anywhere hoặc GreengageDB.", "Cloud workspace chia sẻ connection và query, từ {cells.sync.edition}." ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro là ứng dụng Mac viết bằng Swift, với driver cơ sở dữ liệu native. Beekeeper Studio được xây dựng trên {technology}. Cả hai đều có bản riêng cho máy Mac Apple silicon và Intel.", + "text": "Ứng dụng Mac của TablePro viết bằng Swift, với driver cơ sở dữ liệu native. Beekeeper Studio được xây dựng trên {technology}. Cả hai đều có bản riêng cho máy Mac Apple silicon và Intel.", "cite": [ "technology", "mac" diff --git a/resources/data/content/vi/compare/datagrip.json b/resources/data/content/vi/compare/datagrip.json index 04e27724..7774a62f 100644 --- a/resources/data/content/vi/compare/datagrip.json +++ b/resources/data/content/vi/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "Code inspection và version control cạnh query.", "IDE đủ tính năng miễn phí cho công việc phi thương mại.", - "Hỗ trợ Windows/Linux hoặc engine JDBC như Firebird, Informix và Databricks." + "Hỗ trợ Windows hoặc engine JDBC như Firebird, Informix và Databricks." ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro là ứng dụng Mac viết bằng Swift, với driver cơ sở dữ liệu native. DataGrip được xây dựng trên {technology}.", + "text": "Ứng dụng Mac của TablePro viết bằng Swift, với driver cơ sở dữ liệu native. DataGrip được xây dựng trên {technology}.", "cite": [ "technology" ], diff --git a/resources/data/content/vi/compare/dbeaver.json b/resources/data/content/vi/compare/dbeaver.json index abe81d39..09bf6e30 100644 --- a/resources/data/content/vi/compare/dbeaver.json +++ b/resources/data/content/vi/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro và DBeaver: tính năng và phiên bản", - "description": "DBeaver chạy trên Windows, macOS và Linux bằng Java và JDBC. TablePro là client native cho Mac, iPhone và iPad. So sánh cơ sở dữ liệu, AI, MCP và giá." + "description": "DBeaver chạy trên Windows, macOS và Linux bằng Java và JDBC. TablePro là client native cho Mac, iPhone, iPad và Linux. So sánh cơ sở dữ liệu, AI, MCP và giá." }, "og": { "kicker": "So sánh", @@ -18,7 +18,7 @@ "MCP và AI chat miễn phí, tự chọn nhà cung cấp." ], "competitor": [ - "Hỗ trợ Windows hoặc Linux.", + "Hỗ trợ Windows.", "Engine JDBC ngoài driver được TablePro hỗ trợ.", "Công cụ trả phí như visual query builder, ER diagram chỉnh sửa được và tác vụ theo lịch." ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro là ứng dụng Mac viết bằng Swift, với driver cơ sở dữ liệu native. DBeaver viết bằng Java, và bản tải về có kèm sẵn Java runtime.", + "text": "Ứng dụng Mac của TablePro viết bằng Swift, với driver cơ sở dữ liệu native. DBeaver viết bằng Java, và bản tải về có kèm sẵn Java runtime.", "cite": [ "technology" ], diff --git a/resources/data/content/vi/compare/dbgate.json b/resources/data/content/vi/compare/dbgate.json index 356a13b2..d0147712 100644 --- a/resources/data/content/vi/compare/dbgate.json +++ b/resources/data/content/vi/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro và DbGate: phiên bản và nền tảng", - "description": "DbGate là client mã nguồn mở cho Windows, macOS, Linux và web, có các bản Premium trả phí. TablePro là mã nguồn mở, native trên Mac và iPhone." + "description": "DbGate là client mã nguồn mở cho Windows, macOS, Linux và web, có các bản Premium trả phí. TablePro là mã nguồn mở, native trên Mac, iPhone và Linux." }, "og": { "kicker": "So sánh", @@ -18,7 +18,7 @@ "Backup miễn phí qua dump tool của engine được hỗ trợ." ], "competitor": [ - "Client cho Windows, Linux hoặc web server.", + "Client cho Windows hoặc web server.", "Connection Firebird, Azure Cosmos DB hoặc Firestore.", "Visual query designer trong {cells.queryDesigner.edition}, hoặc sync DbGate Cloud." ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro là ứng dụng Mac viết bằng Swift, dùng driver cơ sở dữ liệu native. DbGate được xây dựng trên {technology}. Cả hai đều có bản build cho Mac chạy Apple silicon và Intel.", + "text": "Ứng dụng Mac của TablePro viết bằng Swift, dùng driver cơ sở dữ liệu native. DbGate được xây dựng trên {technology}. Cả hai đều có bản build cho Mac chạy Apple silicon và Intel.", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "TablePro có bản web không?", - "answer": "Không. TablePro chạy trên Mac, iPhone và iPad. Nếu nhóm của bạn cần một database client trong trình duyệt, DbGate cũng chạy được dưới dạng ứng dụng web.", + "answer": "Không. TablePro là ứng dụng cho Mac, iPhone, iPad và Linux. Nếu nhóm của bạn cần một database client trong trình duyệt, DbGate cũng chạy được dưới dạng ứng dụng web.", "href": null }, { diff --git a/resources/data/content/vi/compare/heidisql.json b/resources/data/content/vi/compare/heidisql.json index ff63fed3..543ab427 100644 --- a/resources/data/content/vi/compare/heidisql.json +++ b/resources/data/content/vi/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro và HeidiSQL: cơ sở dữ liệu, nền tảng và giá", - "description": "HeidiSQL miễn phí trên Windows, Linux và, từ 2026, Mac Apple silicon. TablePro có ứng dụng native cho Mac, iPhone, iPad. So sánh cơ sở dữ liệu, bản build, giá." + "description": "HeidiSQL miễn phí trên Windows, Linux và, từ 2026, Mac Apple silicon. TablePro native trên Mac, iPhone, iPad và Linux. So sánh cơ sở dữ liệu, bản build, giá." }, "og": { "kicker": "So sánh", @@ -18,7 +18,7 @@ "AI chat và MCP miễn phí, thêm ứng dụng iPhone và iPad riêng." ], "competitor": [ - "Cùng client miễn phí trên Windows, Linux và Mac Apple silicon.", + "Cùng client miễn phí trên Windows và Mac Apple silicon.", "Connection Firebird, Interbase hoặc ProxySQL.", "Mọi tính năng miễn phí, không có gói trả phí." ] diff --git a/resources/data/content/vi/compare/index.json b/resources/data/content/vi/compare/index.json index 8437e80e..fb7634e4 100644 --- a/resources/data/content/vi/compare/index.json +++ b/resources/data/content/vi/compare/index.json @@ -16,7 +16,7 @@ "lead": "Bắt đầu từ công cụ bạn cần.", "tablepro": "TablePro là client native, mã nguồn mở cho nhiều loại cơ sở dữ liệu. AI chat và MCP miễn phí trên Mac. Import connection từ {apps}.", "items": { - "tableplus": "Hỗ trợ Windows hoặc Linux, cùng Vertica và Greenplum.", + "tableplus": "Hỗ trợ Windows, cùng Vertica và Greenplum.", "dbeaver": "Client đa nền tảng hỗ trợ driver JDBC.", "datagrip": "IDE cơ sở dữ liệu có code inspection và version control. Miễn phí cho công việc phi thương mại.", "navicat": "Data modeling và dự án chung qua Navicat Cloud.", @@ -24,7 +24,7 @@ "sequel-ace": "Client Mac App Store miễn phí, tập trung MySQL và MariaDB.", "sequel-pro": "Đang chuyển từ Sequel Pro? Bản cuối là {status.version}, ngày {status.date}. So sánh Sequel Ace và TablePro.", "postico": "Client tập trung PostgreSQL, license thanh toán một lần.", - "heidisql": "Client miễn phí cho Windows, Linux và Mac Apple silicon.", + "heidisql": "Client miễn phí cho Windows và Mac Apple silicon.", "phpmyadmin": "Truy cập MySQL hoặc MariaDB qua trình duyệt, gồm hosting cPanel.", "mysql-workbench": "Công cụ MySQL của Oracle, có SQL notebook và tích hợp MySQL Enterprise Backup.", "pgadmin": "Quản trị PostgreSQL, có debugger, job pgAgent và tùy chọn server chung.", @@ -218,6 +218,7 @@ "retrieved": "kiểm tra ngày {date}", "latest": "Bản phát hành mới nhất của {name} vào thời điểm đó: {version}, phát hành ngày {date}.", "tablepro": "Cột TablePro mô tả TablePro {macVersion} cho Mac và {iosVersion} cho iPhone và iPad.", + "tableproLinux": "Cột TablePro mô tả TablePro {macVersion} cho Mac, {iosVersion} cho iPhone và iPad, và {linuxVersion} cho Linux.", "trademarks": "TablePro là một dự án mã nguồn mở độc lập, không liên kết với nhà phát triển của các sản phẩm được so sánh ở đây và không được họ bảo trợ. Tên sản phẩm là nhãn hiệu của chủ sở hữu tương ứng." }, "cta": { diff --git a/resources/data/content/vi/compare/mysql-workbench.json b/resources/data/content/vi/compare/mysql-workbench.json index e880a31a..84f2c819 100644 --- a/resources/data/content/vi/compare/mysql-workbench.json +++ b/resources/data/content/vi/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro và MySQL Workbench: tính năng và tương thích", - "description": "MySQL Workbench là công cụ miễn phí của Oracle cho MySQL, nay được viết lại trên MySQL Shell. TablePro hỗ trợ MySQL và nhiều engine khác trên Mac, iPhone, iPad." + "description": "MySQL Workbench là công cụ miễn phí của Oracle cho MySQL, nay viết lại trên MySQL Shell. TablePro hỗ trợ MySQL và engine khác trên Mac, iPhone, iPad và Linux." }, "og": { "kicker": "So sánh", diff --git a/resources/data/content/vi/compare/navicat.json b/resources/data/content/vi/compare/navicat.json index ff9dc2d7..558a9e8f 100644 --- a/resources/data/content/vi/compare/navicat.json +++ b/resources/data/content/vi/compare/navicat.json @@ -18,7 +18,7 @@ "Connection ClickHouse, DuckDB hoặc Cassandra." ], "competitor": [ - "Hỗ trợ Windows hoặc Linux.", + "Hỗ trợ Windows.", "Data modeling trong Premium Enterprise.", "Navicat Cloud hoặc Navicat On-Prem Server cho connection, query và model chung." ] diff --git a/resources/data/content/vi/compare/pgadmin.json b/resources/data/content/vi/compare/pgadmin.json index a0b6fd28..ff6e039c 100644 --- a/resources/data/content/vi/compare/pgadmin.json +++ b/resources/data/content/vi/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "Quản trị PostgreSQL, gồm debugger PL/pgSQL và job pgAgent.", "Có sẵn psql, pg_dump và pg_restore.", - "Cài web server chung hoặc hỗ trợ Windows/Linux." + "Cài web server chung hoặc hỗ trợ Windows." ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro là ứng dụng Mac viết bằng Swift, dùng driver cơ sở dữ liệu native. pgAdmin là một ứng dụng web viết bằng Python, chạy trong runtime desktop {technology} hoặc trên web server.", + "text": "Ứng dụng Mac của TablePro viết bằng Swift, dùng driver cơ sở dữ liệu native. pgAdmin là một ứng dụng web viết bằng Python, chạy trong runtime desktop {technology} hoặc trên web server.", "cite": [ "technology" ], diff --git a/resources/data/content/vi/compare/phpmyadmin.json b/resources/data/content/vi/compare/phpmyadmin.json index 37ef86e5..04d7c64e 100644 --- a/resources/data/content/vi/compare/phpmyadmin.json +++ b/resources/data/content/vi/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "TablePro là ứng dụng cho Mac, iPhone và iPad. Bạn không mở được TablePro từ trình duyệt trên một máy tính bất kỳ.", + "text": "TablePro là ứng dụng cho Mac, iPhone, iPad và Linux. Bạn không mở được TablePro từ trình duyệt trên một máy tính bất kỳ.", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/vi/compare/tableplus.json b/resources/data/content/vi/compare/tableplus.json index 3c9e10bb..21d871c0 100644 --- a/resources/data/content/vi/compare/tableplus.json +++ b/resources/data/content/vi/compare/tableplus.json @@ -18,7 +18,7 @@ "Ứng dụng iPhone và iPad miễn phí, không có mua hàng trong ứng dụng." ], "competitor": [ - "Hỗ trợ Windows hoặc Linux.", + "Hỗ trợ Windows.", "Connection Vertica hoặc Greenplum.", "Client có qua Setapp." ] diff --git a/resources/data/content/vi/databases/index.json b/resources/data/content/vi/databases/index.json index 1a48108e..28a9dc3f 100644 --- a/resources/data/content/vi/databases/index.json +++ b/resources/data/content/vi/databases/index.json @@ -84,6 +84,13 @@ "others": "Connection tới các engine khác vẫn được đồng bộ sang iPhone và iPad và hiện trong danh sách, nhưng không mở được trên đó.", "link": "TablePro cho iPhone và iPad" }, + "linux": { + "title": "Trên Linux", + "tested": "Ứng dụng cho Linux đang là bản beta, đã được kiểm thử với {engines}.", + "untested": "Connection tới {engines} chưa được kiểm thử trên Linux.", + "others": "Các engine khác không mở được trên đó.", + "link": "Cài đặt trên Linux" + }, "license": { "title": "Có trong Free", "body": "Mọi connection cơ sở dữ liệu được hỗ trợ đều có trong Free. Pro và Team thêm tính năng tùy chọn cho Mac.", @@ -131,6 +138,12 @@ "synced": "Mở được khi đồng bộ từ máy Mac", "none": "Không mở được" }, + "linux": { + "tested": "Đã kiểm thử", + "versions": "Đã kiểm thử: {versions}", + "untested": "Chưa kiểm thử", + "none": "Không có" + }, "availability": { "devices": "Dùng được trên {devices}", "bundled": "Driver có sẵn trong ứng dụng Mac", @@ -184,6 +197,7 @@ "title": "Tải TablePro", "mac": "Tải ứng dụng Mac miễn phí. Pro và Team thêm tính năng tùy chọn.", "ios": "Ứng dụng cho iPhone và iPad có trên App Store.", + "linux": "Ứng dụng cho Linux là bản beta miễn phí.", "pricing": "Xem bảng giá" } } diff --git a/resources/data/content/vi/download.json b/resources/data/content/vi/download.json index 69b0f70d..e165117a 100644 --- a/resources/data/content/vi/download.json +++ b/resources/data/content/vi/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "Tải TablePro", - "description": "Tải TablePro cho máy Mac dùng Apple silicon và Intel, hoặc cài bằng Homebrew. Ứng dụng iPhone và iPad có trên App Store." + "description": "Tải TablePro cho Mac hoặc cài bằng Homebrew. Bản beta cho Linux cài trên Ubuntu, Fedora hoặc qua Flatpak; ứng dụng iPhone và iPad có trên App Store." }, "og": { "kicker": "Tải về", diff --git a/resources/data/content/vi/faq.json b/resources/data/content/vi/faq.json index fa9b0788..6de3fa5b 100644 --- a/resources/data/content/vi/faq.json +++ b/resources/data/content/vi/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "TablePro là gì?", "answer": [ - "Database client native, mã nguồn mở. Trên Mac, chạy query và sửa dữ liệu trong {featuredEngines} và các engine khác, cùng công cụ schema. Ứng dụng iPhone và iPad có ít công cụ cơ sở dữ liệu hơn.", + "Database client native, mã nguồn mở. Trên Mac, chạy query và sửa dữ liệu trong {featuredEngines} và các engine khác, cùng công cụ schema. Ứng dụng iPhone và iPad, cùng bản beta cho Linux, có ít công cụ cơ sở dữ liệu hơn.", "Xem tất cả tính năng." ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "“Native” ở đây có nghĩa là gì?", "answer": [ - "TablePro dùng giao diện và driver cơ sở dữ liệu native, không dùng Electron hay JDBC. Các ứng dụng hiện tại viết bằng Swift: AppKit và SwiftUI trên Mac, cùng tính năng thiết bị như Face ID và Phím tắt trên iPhone và iPad." + "TablePro dùng giao diện và driver cơ sở dữ liệu native, không dùng Electron hay JDBC. Ứng dụng cho Mac, iPhone và iPad viết bằng Swift: AppKit và SwiftUI trên Mac, cùng tính năng thiết bị như Face ID và Phím tắt trên iPhone và iPad. Ứng dụng cho Linux dùng Rust, GTK 4 và libadwaita." ] }, { @@ -47,14 +47,14 @@ "question": "TablePro có miễn phí không?", "answer": [ "Có. Ứng dụng Mac không có thời gian dùng thử hay giới hạn thời gian. Mọi engine được hỗ trợ, AI, MCP và Safe Mode đều miễn phí. Pro và Team bổ sung các tính năng trên trang bảng giá.", - "Ứng dụng iPhone và iPad miễn phí, không cần license và không có mua hàng trong ứng dụng." + "Ứng dụng iPhone và iPad miễn phí, không cần license và không có mua hàng trong ứng dụng. Ứng dụng cho Linux dùng miễn phí, và hiện tại các tính năng trả phí chỉ có trên Mac." ] }, { "id": "open-source", "question": "TablePro có phải mã nguồn mở không?", "answer": [ - "Có. Cả hai ứng dụng, kể cả mã của tính năng trả phí, dùng AGPLv3 trong cùng repository GitHub. Bản build từ mã nguồn vẫn kiểm tra license cho tính năng trả phí." + "Có. Các ứng dụng, kể cả mã của tính năng trả phí, dùng AGPLv3 trong cùng repository GitHub. Bản build từ mã nguồn vẫn kiểm tra license cho tính năng trả phí." ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "Có phiên bản cho Windows hoặc Linux không?", "answer": [ - "Không. Không có phiên bản cho Windows. Có một bản prototype cho Linux, nhưng không có gì để cài đặt và không có ngày phát hành." + "Linux thì có: TablePro cho Linux đang ở bản beta, với bộ engine và tính năng riêng. Không có bản cho Windows, và cũng không có ngày phát hành." ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "Mật khẩu của tôi được lưu ở đâu?", "answer": [ - "Mật khẩu đã lưu nằm trong Keychain. Trên Mac, bạn cũng có thể lấy mật khẩu từ file, biến môi trường, shell command, 1Password, Vault hoặc AWS Secrets Manager.", + "Mật khẩu đã lưu nằm trong Keychain, hoặc trên Linux là trong keyring của Secret Service như GNOME Keyring hay KWallet. Trên Mac, bạn cũng có thể lấy mật khẩu từ file, biến môi trường, shell command, 1Password, Vault hoặc AWS Secrets Manager.", "Đồng bộ mật khẩu cần bật riêng: Passwords trên Mac hoặc Sync Passwords trên iPhone và iPad. Tính năng này dùng iCloud Keychain." ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "Một license dùng được trên bao nhiêu máy Mac?", + "question": "Một license dùng được trên bao nhiêu máy tính?", "answer": [ - "Pro dành cho một người trên tối đa {deviceLimit} máy Mac. Team có tối thiểu {teamMinSeats} seat, và mỗi seat dành cho một người trên tối đa {deviceLimit} máy Mac. Giới hạn này tính theo tài khoản, chung cho Pro và Team. iPhone và iPad không dùng seat.", - "Để dùng license trên một máy Mac khác, gỡ một máy trong Cài đặt > Tài khoản (Settings > Account) hoặc trên trang Thiết bị trong tài khoản của bạn. Trong lúc đó, máy Mac kia vẫn dùng được các tính năng miễn phí." + "Pro dành cho một người trên tối đa {deviceLimit} máy tính, Mac hoặc Linux. Team có tối thiểu {teamMinSeats} seat, và mỗi seat dành cho một người trên tối đa {deviceLimit} máy tính. Giới hạn này tính theo tài khoản, chung cho Pro và Team. Hiện tại các tính năng trả phí chỉ có trên Mac, nhưng máy Linux bạn đăng nhập vẫn được tính. iPhone và iPad không dùng seat.", + "Để dùng license trên một máy tính khác, gỡ một máy trên trang Thiết bị trong tài khoản của bạn, hoặc trong Cài đặt > Tài khoản (Settings > Account) trên Mac. Trong lúc đó, máy kia vẫn dùng được các tính năng miễn phí." ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "Ứng dụng gửi gì cho TablePro?", "answer": [ - "Mac gửi dữ liệu sử dụng theo mặc định; tắt trong Cài đặt > Tổng quát > Quyền riêng tư (Settings > General > Privacy). Từ phiên bản có tài khoản TablePro, dữ liệu đi thẳng tới PostHog: các sự kiện của ứng dụng kèm model máy Mac, phiên bản ứng dụng và macOS, loại cơ sở dữ liệu, gắn với một mã ngẫu nhiên trước khi bạn đăng nhập và mã tài khoản sau khi đăng nhập. Các phiên bản trước khi có tài khoản TablePro gửi báo cáo hằng ngày kèm ID máy đã hash qua máy chủ của chúng tôi. Cả hai đều không có hostname, username, mật khẩu, query hay dòng dữ liệu.", + "Mac gửi dữ liệu sử dụng theo mặc định; tắt trong Cài đặt > Tổng quát > Quyền riêng tư (Settings > General > Privacy). Từ phiên bản có tài khoản TablePro, dữ liệu đi thẳng tới PostHog: các sự kiện của ứng dụng kèm model máy Mac, phiên bản ứng dụng và macOS, loại cơ sở dữ liệu, gắn với một mã ngẫu nhiên trước khi bạn đăng nhập và mã tài khoản sau khi đăng nhập. Các phiên bản trước khi có tài khoản TablePro gửi báo cáo hằng ngày kèm ID máy đã hash qua máy chủ của chúng tôi. Cả hai đều không có hostname, username, mật khẩu, query hay dòng dữ liệu. Ứng dụng cho Linux cũng gửi dữ liệu sử dụng theo mặc định, không kèm các thông tin trên; bạn tắt được trong phần cài đặt của ứng dụng.", "Khi bạn đăng nhập, ứng dụng cho Mac đăng ký máy Mac với tài khoản của bạn, gửi ID máy, tên máy, phiên bản ứng dụng và macOS, rồi làm mới gói mỗi ngày một lần. Các phiên bản trước khi có tài khoản TablePro gửi license key cùng các thông tin đó mỗi {revalidateDays} ngày. Báo cáo iPhone và iPad chỉ gửi khi bạn bật. Team Library nhận cài đặt và SQL đã lưu mà bạn chia sẻ. Xem chính sách quyền riêng tư, gồm việc ghi IP." ] }, diff --git a/resources/data/content/vi/features/ai-mcp.json b/resources/data/content/vi/features/ai-mcp.json index f57da1f9..d22e12f7 100644 --- a/resources/data/content/vi/features/ai-mcp.json +++ b/resources/data/content/vi/features/ai-mcp.json @@ -117,7 +117,7 @@ "id": "iphone", "title": "Nền tảng", "paragraphs": [ - "AI, MCP và các công cụ tự động hóa trên trang này hiện chỉ có trên Mac." + "Ứng dụng iPhone và iPad không có AI, MCP hay các công cụ tự động hóa trên trang này." ], "links": [ { diff --git a/resources/data/content/vi/features/connections.json b/resources/data/content/vi/features/connections.json index 212bcae6..2d22b215 100644 --- a/resources/data/content/vi/features/connections.json +++ b/resources/data/content/vi/features/connections.json @@ -175,7 +175,7 @@ "title": "Trên iPhone và iPad", "paragraphs": [ "Ứng dụng cho iPhone và iPad có form connection riêng cho {iosPicker}, với nhóm, một tag cho mỗi connection và mục yêu thích. SSH tunnel xác thực bằng mật khẩu hoặc private key, từ file hoặc dán vào, và có kiểm tra host key; SSH agent và jump host không được hỗ trợ trên iPhone và iPad. TLS có thể kiểm tra chứng chỉ của server, trừ với SQL Server: kết nối được mã hóa nhưng không kiểm tra. Chứng chỉ chỉ nằm trên thiết bị và không bao giờ được đồng bộ.", - "Mật khẩu và key dán vào được lưu trong Keychain. Connection SQL Server đồng bộ từ Mac có thể đăng nhập bằng Microsoft Entra ID. Import từ ứng dụng khác, đăng nhập bằng AWS IAM, Kerberos và Google, proxy và tunnel command, nguồn mật khẩu và timeout chỉ có trong ứng dụng Mac." + "Mật khẩu và key dán vào được lưu trong Keychain. Connection SQL Server đồng bộ từ Mac có thể đăng nhập bằng Microsoft Entra ID. Import từ ứng dụng khác, đăng nhập bằng AWS IAM, Kerberos và Google, proxy và tunnel command, nguồn mật khẩu và timeout không có trong ứng dụng iPhone và iPad." ], "links": [ { diff --git a/resources/data/content/vi/features/data-editing.json b/resources/data/content/vi/features/data-editing.json index 4bbb83f2..3294adb6 100644 --- a/resources/data/content/vi/features/data-editing.json +++ b/resources/data/content/vi/features/data-editing.json @@ -105,7 +105,7 @@ "title": "Trên iPhone và iPad", "paragraphs": [ "Xem dòng dạng thẻ, sắp xếp, lọc hoặc chạm khóa ngoại để xem dòng tham chiếu. Sửa giá trị hoặc đặt NULL; sửa và xóa cần khóa chính. Dòng mới bắt đầu với DEFAULT, có thể chọn NULL hoặc chuỗi rỗng.", - "Safe Mode mobile có {iosSafeModeLevels}, mặc định {iosSafeModeDefault}. Thay đổi chờ lưu, Preview SQL, highlight rule và Data Rewind hiện chỉ có trên Mac." + "Safe Mode mobile có {iosSafeModeLevels}, mặc định {iosSafeModeDefault}. Thay đổi chờ lưu, Preview SQL, highlight rule và Data Rewind không có trong ứng dụng iPhone và iPad." ], "links": [ { diff --git a/resources/data/content/vi/features/schema.json b/resources/data/content/vi/features/schema.json index a2f55633..afe156d6 100644 --- a/resources/data/content/vi/features/schema.json +++ b/resources/data/content/vi/features/schema.json @@ -121,7 +121,7 @@ "title": "Trên iPhone và iPad", "paragraphs": [ "Ứng dụng cho iPhone và iPad hiển thị cột, index và khóa ngoại của table ở chế độ chỉ đọc. Từ danh sách table, bạn có thể xóa toàn bộ dữ liệu (truncate) hoặc xóa hẳn (drop) một table trên engine SQL, trừ khi connection đặt Read-Only.", - "Sửa cấu trúc, ER diagram, Compare & Sync, Copy To, Users & Roles và Server Dashboard chỉ có trong ứng dụng Mac." + "Sửa cấu trúc, ER diagram, Compare & Sync, Copy To, Users & Roles và Server Dashboard không có trong ứng dụng iPhone và iPad." ], "links": [ { diff --git a/resources/data/content/vi/features/sync-and-teams.json b/resources/data/content/vi/features/sync-and-teams.json index 4fdb0eae..63d13ec5 100644 --- a/resources/data/content/vi/features/sync-and-teams.json +++ b/resources/data/content/vi/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Seat Team", "paragraphs": [ - "Một seat Team dành cho một người trên tối đa {deviceLimit} máy Mac. Chủ sở hữu và quản trị viên mời người khác qua email từ trang tài khoản, kèm hoặc không kèm seat, và người được mời tham gia bằng liên kết trong email.", + "Một seat Team dành cho một người trên tối đa {deviceLimit} máy tính, Mac hoặc Linux. Chủ sở hữu và quản trị viên mời người khác qua email từ trang tài khoản, kèm hoặc không kèm seat, và người được mời tham gia bằng liên kết trong email.", "Chủ sở hữu đổi số seat của subscription trong mục Thanh toán, và nhóm có seat mua một lần vẫn giữ các seat đó; muốn thêm seat thì cần subscription Team. Gỡ một thành viên sẽ giải phóng seat của họ, và máy Mac của họ mất các tính năng của Team vào lần tiếp theo TablePro liên lạc với server." ], "links": [ diff --git a/resources/data/content/vi/home.json b/resources/data/content/vi/home.json index dd2610ce..5a723523 100644 --- a/resources/data/content/vi/home.json +++ b/resources/data/content/vi/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "Chuyển connection sang TablePro", - "lead": "Import từ ứng dụng khác và Open Project Folder chỉ có trong {macApp}.", + "lead": "Ứng dụng iPhone và iPad không import từ ứng dụng khác, còn Open Project Folder chỉ có trong {macApp}.", "import": "Bạn import được connection từ {apps}, kèm cả mật khẩu đã lưu.", "importWithoutPasswords": "Connection từ {apps} được import nhưng không kèm mật khẩu.", "project": "Open Project Folder tạo connection từ file dự án được hỗ trợ, gồm .env, docker-compose.yml và Prisma schema.", diff --git a/resources/data/content/vi/ios.json b/resources/data/content/vi/ios.json index 7caee564..c4cbdeee 100644 --- a/resources/data/content/vi/ios.json +++ b/resources/data/content/vi/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "Không có trên iPhone và iPad", - "lead": "Những tính năng sau chỉ có trong TablePro cho Mac:", + "lead": "Những tính năng sau có trong TablePro cho Mac:", "items": [ "Trợ lý AI và MCP server", "Query đã lưu, autocomplete, định dạng query và EXPLAIN", diff --git a/resources/data/content/vi/pricing.json b/resources/data/content/vi/pricing.json index 94fbd737..2ec2e9a8 100644 --- a/resources/data/content/vi/pricing.json +++ b/resources/data/content/vi/pricing.json @@ -30,8 +30,8 @@ "title": "License", "items": { "macs": { - "question": "Một license dùng được trên bao nhiêu máy Mac?", - "answer": "Pro dành cho một người trên tối đa {deviceLimit} máy Mac, mỗi seat Team cũng vậy. Gỡ một máy Mac trong Cài đặt > Tài khoản (Settings > Account) hoặc trong tài khoản của bạn." + "question": "Một license dùng được trên bao nhiêu máy tính?", + "answer": "Pro dành cho một người trên tối đa {deviceLimit} máy tính, Mac hoặc Linux, mỗi seat Team cũng vậy. Gỡ một máy trong tài khoản của bạn hoặc trong Cài đặt > Tài khoản (Settings > Account) trên Mac." }, "offline": { "question": "TablePro có cần kết nối mạng không?", diff --git a/resources/data/content/vi/security.json b/resources/data/content/vi/security.json index 7acb6dea..3de4d571 100644 --- a/resources/data/content/vi/security.json +++ b/resources/data/content/vi/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Các mức Safe Mode", - "text": "Mỗi connection có một mức Safe Mode: {macSafeModeLevels}. Alert hỏi lại trước khi chạy câu lệnh ghi, hai mức Safe Mode và Safe Mode (Full) còn yêu cầu Touch ID hoặc mật khẩu máy Mac, các mức có hậu tố (Full) hỏi cả trước câu lệnh đọc, còn Read-Only từ chối câu lệnh ghi. Tổ chức của bạn có thể áp một mức tối thiểu cho các máy Mac qua configuration profile. Trên iPhone và iPad, các mức là {iosSafeModeLevels}." + "text": "Trên Mac, mỗi connection có một mức Safe Mode: {macSafeModeLevels}. Alert hỏi lại trước khi chạy câu lệnh ghi, hai mức Safe Mode và Safe Mode (Full) còn yêu cầu Touch ID hoặc mật khẩu máy Mac, các mức có hậu tố (Full) hỏi cả trước câu lệnh đọc, còn Read-Only từ chối câu lệnh ghi. Tổ chức của bạn có thể áp một mức tối thiểu cho các máy Mac qua configuration profile. Trên iPhone và iPad, các mức là {iosSafeModeLevels}, còn trên Linux là {linuxSafeModeLevels}." }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "Chỉ chạy cục bộ", - "text": "MCP server chỉ có trong ứng dụng cho Mac, và chỉ chạy khi bạn bật hoặc khi một client bạn đã cấu hình khởi động nó. Server lắng nghe trên {mcpHost}, không có chế độ truy cập từ xa, và client không bao giờ thấy mật khẩu." + "text": "Trong ứng dụng cho Mac, MCP server chỉ chạy khi bạn bật hoặc khi một client bạn đã cấu hình khởi động nó. Server lắng nghe trên {mcpHost}, không có chế độ truy cập từ xa, và client không bao giờ thấy mật khẩu." }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "Mã nguồn công khai", - "text": "Cả hai ứng dụng đều là mã nguồn mở theo giấy phép AGPLv3, kể cả phần mã của các tính năng trả phí. Những gì trang này mô tả đều đọc được trong kho mã nguồn, cùng các script ký và notarize từng bản phát hành, và bạn có thể tự build ứng dụng cho Mac." + "text": "Các ứng dụng đều là mã nguồn mở theo giấy phép AGPLv3, kể cả phần mã của các tính năng trả phí. Những gì trang này mô tả đều đọc được trong kho mã nguồn, cùng các script ký và notarize từng bản phát hành, và bạn có thể tự build ứng dụng cho Mac." } ], "limits": [], diff --git a/resources/data/content/vi/teams.json b/resources/data/content/vi/teams.json index d4c4bc61..452fe9b7 100644 --- a/resources/data/content/vi/teams.json +++ b/resources/data/content/vi/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "Seat và thành viên", "items": [ - "Một seat dành cho một người, dùng trên tối đa {deviceLimit} máy Mac.", + "Một seat dành cho một người, dùng trên tối đa {deviceLimit} máy tính, Mac hoặc Linux.", "Chủ sở hữu và quản trị viên mời người khác qua email từ trang Thành viên trong tài khoản, kèm vai trò và, nếu muốn, một seat. Liên kết có hiệu lực 7 ngày, và tài khoản TablePro nào cũng nhận được.", "Chủ sở hữu lo phần thanh toán. Quản trị viên quản lý thành viên, lời mời, Team Library và nhật ký hoạt động của nhóm. Thành viên dùng những gì được chia sẻ.", "Chủ sở hữu đổi số seat của subscription trong mục Thanh toán, và {merchant} tính thêm hoặc hoàn lại phần chênh lệch theo ngày ngay lập tức.", diff --git a/resources/data/content/zh-Hans/about.json b/resources/data/content/zh-Hans/about.json index 955e37fd..72d9e0a2 100644 --- a/resources/data/content/zh-Hans/about.json +++ b/resources/data/content/zh-Hans/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "开发者", - "body": "{maker} 开发了 Mac 应用及其插件、iPhone 和 iPad 应用,以及本网站。", + "body": "{maker} 开发了 Mac 应用及其插件、iPhone 和 iPad 应用、Linux 应用,以及本网站。", "identity": "同一位开发者在 App Store 发布 TablePro,并通过 GitHub Sponsors 接受赞助。", "facts": { "maker": "开发者", @@ -32,7 +32,7 @@ }, "source": { "title": "源代码", - "body": "两款应用均采用 AGPLv3 开源,包括付费功能代码,位于同一个 GitHub 仓库。", + "body": "各款应用均采用 AGPLv3 开源,包括付费功能代码,位于同一个 GitHub 仓库。", "license": "许可证全文也在同一个仓库中。" }, "contact": { diff --git a/resources/data/content/zh-Hans/black-friday.json b/resources/data/content/zh-Hans/black-friday.json index b07275c9..45a87658 100644 --- a/resources/data/content/zh-Hans/black-friday.json +++ b/resources/data/content/zh-Hans/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro 一次性", "unit": "一次付费", - "detail": "无到期日。{activations} 台 Mac。" + "detail": "无到期日。{activations} 台 Mac 或 Linux 电脑。" }, "yearly": { "name": "Pro 年付", "unit": "首年", - "detail": "之后每年 {yearlyList}。{activations} 台 Mac。" + "detail": "之后每年 {yearlyList}。{activations} 台 Mac 或 Linux 电脑。" }, "buy": "以 {price} 购买", "soon": "{startsOn} 起", @@ -39,7 +39,7 @@ }, "includes": { "title": "Pro 增加的功能", - "lead": "TablePro 可免费使用,工作中也一样。Pro 在 {activations} 台 Mac 上增加以下功能。", + "lead": "TablePro 可免费使用,工作中也一样。Pro 为 Mac 应用增加以下功能。", "more": "Pro 还包括", "link": "更多关于 {feature}" }, diff --git a/resources/data/content/zh-Hans/compare/beekeeper-studio.json b/resources/data/content/zh-Hans/compare/beekeeper-studio.json index aad0cd70..5e5a5f90 100644 --- a/resources/data/content/zh-Hans/compare/beekeeper-studio.json +++ b/resources/data/content/zh-Hans/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "具有单独的免费 iPhone 和 iPad 应用程序的原生应用程序。" ], "competitor": [ - "Windows、 macOS 和 Linux 上的相同客户端。", + "Windows 支持,且在 macOS 和 Linux 上功能相同。", "Firebird、 SQL Anywhere 或 GreengageDB 连接。", "从 {cells.sync.edition} 起提供用于共享连接和查询的云工作区。" ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro 是 Swift 编写的 Mac 应用,使用原生数据库驱动。Beekeeper Studio 基于 {technology}。两者均分别提供 Apple silicon 和 Intel Mac 构建。", + "text": "TablePro 的 Mac 应用以 Swift 编写,使用原生数据库驱动。Beekeeper Studio 基于 {technology}。两者均分别提供 Apple silicon 和 Intel Mac 构建。", "cite": [ "technology", "mac" diff --git a/resources/data/content/zh-Hans/compare/datagrip.json b/resources/data/content/zh-Hans/compare/datagrip.json index 4b1fd309..298b2345 100644 --- a/resources/data/content/zh-Hans/compare/datagrip.json +++ b/resources/data/content/zh-Hans/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "代码检查和版本控制以及查询。", "用于非商业工作的全功能 IDE,免费。", - "Windows 或 Linux 支持,或 JDBC 引擎,例如 Firebird、 Informix 和 Databricks。" + "Windows 支持,或 JDBC 引擎,例如 Firebird、Informix 和 Databricks。" ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro 是 Swift 编写的 Mac 应用,使用原生数据库驱动。DataGrip 基于 {technology}。", + "text": "TablePro 的 Mac 应用以 Swift 编写,使用原生数据库驱动。DataGrip 基于 {technology}。", "cite": [ "technology" ], diff --git a/resources/data/content/zh-Hans/compare/dbeaver.json b/resources/data/content/zh-Hans/compare/dbeaver.json index 0c876539..a3732505 100644 --- a/resources/data/content/zh-Hans/compare/dbeaver.json +++ b/resources/data/content/zh-Hans/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 与 DBeaver:功能和版本", - "description": "DBeaver 基于 Java 和 JDBC 支持 Windows、macOS 和 Linux。TablePro 是 Mac、iPhone 和 iPad 原生客户端。比较引擎、AI、MCP 和价格。" + "description": "DBeaver 基于 Java 和 JDBC 支持 Windows、macOS 和 Linux。TablePro 是 Mac、iPhone、iPad 和 Linux 原生客户端。比较引擎、AI、MCP 和价格。" }, "og": { "kicker": "对比", @@ -18,7 +18,7 @@ "MCP 和 AI 与您选择的提供商免费聊天。" ], "competitor": [ - "Windows 或 Linux 支持。", + "Windows 支持。", "JDBC 引擎超出了 TablePro 支持的驱动程序。", "付费工具,例如可视化查询生成器、可编辑 ER 图和计划任务。" ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro 是 Swift 编写的 Mac 应用,使用原生数据库驱动。DBeaver 基于 Java,下载包包含 Java 运行时。", + "text": "TablePro 的 Mac 应用以 Swift 编写,使用原生数据库驱动。DBeaver 基于 Java,下载包包含 Java 运行时。", "cite": [ "technology" ], diff --git a/resources/data/content/zh-Hans/compare/dbgate.json b/resources/data/content/zh-Hans/compare/dbgate.json index 65357541..b537e69f 100644 --- a/resources/data/content/zh-Hans/compare/dbgate.json +++ b/resources/data/content/zh-Hans/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 与 DbGate:版本和支持的平台", - "description": "DbGate 是适用于 Windows、macOS、Linux 和 Web 的开源客户端,另有付费 Premium 版。TablePro 开源,原生支持 Mac 和 iPhone。" + "description": "DbGate 是适用于 Windows、macOS、Linux 和 Web 的开源客户端,另有付费 Premium 版。TablePro 开源,原生支持 Mac、iPhone 和 Linux。" }, "og": { "kicker": "对比", @@ -18,7 +18,7 @@ "通过支持的引擎的转储工具进行免费备份。" ], "competitor": [ - "Windows、 Linux 或 Web 服务器的客户端。", + "Windows 或 Web 服务器的客户端。", "Firebird、Azure Cosmos DB 或 Firestore 连接。", "{cells.queryDesigner.edition} 或 DbGate 云同步中的可视化查询设计器。" ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro 是 Swift 编写的 Mac 应用,使用原生数据库驱动。DbGate 基于 {technology}。两者都提供 Apple silicon 和 Intel Mac 构建。", + "text": "TablePro 的 Mac 应用以 Swift 编写,使用原生数据库驱动。DbGate 基于 {technology}。两者都提供 Apple silicon 和 Intel Mac 构建。", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "TablePro 有 Web 版本吗?", - "answer": "没有。TablePro 在 Mac、iPhone 和 iPad 上运行。如果团队需要在浏览器中使用数据库客户端,DbGate 也可作为 Web 应用运行。", + "answer": "没有。TablePro 是适用于 Mac、iPhone、iPad 和 Linux 的应用。如果团队需要在浏览器中使用数据库客户端,DbGate 也可作为 Web 应用运行。", "href": null }, { diff --git a/resources/data/content/zh-Hans/compare/heidisql.json b/resources/data/content/zh-Hans/compare/heidisql.json index b59d8c72..50c89f73 100644 --- a/resources/data/content/zh-Hans/compare/heidisql.json +++ b/resources/data/content/zh-Hans/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 与 HeidiSQL:数据库、平台和定价", - "description": "HeidiSQL 在 Windows、Linux 和自 2026 年起的 Apple silicon Mac 免费。TablePro 原生支持 Mac、iPhone、iPad。对比数据库、构建和价格。" + "description": "HeidiSQL 在 Windows、Linux 和自 2026 年起的 Apple silicon Mac 免费。TablePro 原生支持 Mac、iPhone、iPad、Linux。对比数据库、构建和价格。" }, "og": { "kicker": "对比", @@ -18,7 +18,7 @@ "免费 AI 聊天和 MCP,以及单独的 iPhone 和 iPad 应用程序。" ], "competitor": [ - "Windows、Linux 和 Apple silicon Mac 上的相同免费客户端。", + "Windows 和 Apple silicon Mac 上的相同免费客户端。", "Firebird、Interbase 或 ProxySQL 连接。", "所有功能都是免费的,没有付费计划。" ] diff --git a/resources/data/content/zh-Hans/compare/index.json b/resources/data/content/zh-Hans/compare/index.json index 6629519a..189edc9e 100644 --- a/resources/data/content/zh-Hans/compare/index.json +++ b/resources/data/content/zh-Hans/compare/index.json @@ -16,7 +16,7 @@ "lead": "从您需要的工具开始。", "tablepro": "TablePro 是适用于多种数据库类型的原生开源客户端。 AI 聊天和 MCP 在 Mac 应用程序中免费。它从 {apps} 导入连接。", "items": { - "tableplus": "Windows 或 Linux 支持,加上 Vertica 和 Greenplum。", + "tableplus": "Windows 支持,加上 Vertica 和 Greenplum。", "dbeaver": "具有 JDBC 驱动程序支持的跨平台客户端。", "datagrip": "具有代码检查和版本控制功能的数据库 IDE。免费用于非商业工作。", "navicat": "通过 Navicat Cloud 进行数据建模和共享项目。", @@ -24,7 +24,7 @@ "sequel-ace": "一个免费的 Mac App Store 客户端,专注于 MySQL 和 MariaDB。", "sequel-pro": "从 Sequel Pro 转移?它的最后一个版本是 {status.version},在 {status.date} 上。比较 Sequel Ace 和 TablePro。", "postico": "具有一次性许可证的专注 PostgreSQL 客户端。", - "heidisql": "Windows、Linux 和 Apple silicon Mac 的免费客户端。", + "heidisql": "Windows 和 Apple silicon Mac 的免费客户端。", "phpmyadmin": "MySQL 或 MariaDB 通过浏览器访问,包括 cPanel 托管。", "mysql-workbench": "Oracle 的 MySQL 工具,提供 SQL notebook 和 MySQL Enterprise Backup 集成。", "pgadmin": "PostgreSQL 管理,带有调试器、pgAgent 作业和共享服务器选项。", @@ -218,6 +218,7 @@ "retrieved": "确认于 {date}", "latest": "当时最新 {name} 版本:{version},发布于 {date}。", "tablepro": "TablePro 一栏描述 Mac 的 {macVersion} 及 iPhone、iPad 的 {iosVersion}。", + "tableproLinux": "TablePro 一栏描述 Mac 的 {macVersion}、iPhone 和 iPad 的 {iosVersion} 及 Linux 的 {linuxVersion}。", "trademarks": "TablePro 是独立的开源项目,与此处所比较产品的开发者没有关联,也未获其认可。产品名称是其各自所有者的商标。" }, "cta": { diff --git a/resources/data/content/zh-Hans/compare/mysql-workbench.json b/resources/data/content/zh-Hans/compare/mysql-workbench.json index 9d10fc29..236c1529 100644 --- a/resources/data/content/zh-Hans/compare/mysql-workbench.json +++ b/resources/data/content/zh-Hans/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 与 MySQL Workbench:功能和兼容性", - "description": "MySQL Workbench 是 Oracle 免费的 MySQL 工具,现已基于 MySQL Shell 重写。TablePro 在 Mac、iPhone 和 iPad 上支持 MySQL 及其他引擎。" + "description": "MySQL Workbench 是 Oracle 免费的 MySQL 工具,现已基于 MySQL Shell 重写。TablePro 在 Mac、iPhone、iPad 和 Linux 上支持 MySQL 及其他引擎。" }, "og": { "kicker": "对比", diff --git a/resources/data/content/zh-Hans/compare/navicat.json b/resources/data/content/zh-Hans/compare/navicat.json index a473982c..e44bea90 100644 --- a/resources/data/content/zh-Hans/compare/navicat.json +++ b/resources/data/content/zh-Hans/compare/navicat.json @@ -18,7 +18,7 @@ "ClickHouse、DuckDB 或 Cassandra 连接。" ], "competitor": [ - "Windows 或 Linux 支持。", + "Windows 支持。", "Premium Enterprise 中的数据建模。", "Navicat Cloud 或 Navicat On-Prem Server 用于共享连接、查询和模型。" ] diff --git a/resources/data/content/zh-Hans/compare/pgadmin.json b/resources/data/content/zh-Hans/compare/pgadmin.json index bf1b2ecd..3534d6dc 100644 --- a/resources/data/content/zh-Hans/compare/pgadmin.json +++ b/resources/data/content/zh-Hans/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "PostgreSQL 管理,包括 PL/pgSQL 调试器和 pgAgent 作业。", "捆绑 psql、pg_dump 和 pg_restore。", - "共享 Web 服务器安装,或 Windows 和 Linux 支持。" + "共享 Web 服务器安装,或 Windows 支持。" ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro 是 Swift 编写的 Mac 应用,使用原生数据库驱动。pgAdmin 是 Python Web 应用,运行在 {technology} 桌面运行时或 Web 服务器上。", + "text": "TablePro 的 Mac 应用以 Swift 编写,使用原生数据库驱动。pgAdmin 是 Python Web 应用,运行在 {technology} 桌面运行时或 Web 服务器上。", "cite": [ "technology" ], diff --git a/resources/data/content/zh-Hans/compare/phpmyadmin.json b/resources/data/content/zh-Hans/compare/phpmyadmin.json index d6dd7c53..1840d4da 100644 --- a/resources/data/content/zh-Hans/compare/phpmyadmin.json +++ b/resources/data/content/zh-Hans/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "它是 Mac、iPhone、iPad 应用,无法从任意电脑浏览器打开。", + "text": "它是 Mac、iPhone、iPad 和 Linux 应用,无法从任意电脑浏览器打开。", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/zh-Hans/compare/tableplus.json b/resources/data/content/zh-Hans/compare/tableplus.json index 64d2e19f..7804f4e0 100644 --- a/resources/data/content/zh-Hans/compare/tableplus.json +++ b/resources/data/content/zh-Hans/compare/tableplus.json @@ -18,7 +18,7 @@ "一款免费的 iPhone 和 iPad 应用程序,无需应用内购买。" ], "competitor": [ - "Windows 或 Linux 支持。", + "Windows 支持。", "Vertica 或 Greenplum 连接。", "可通过 Setapp 使用的客户端。" ] diff --git a/resources/data/content/zh-Hans/databases/index.json b/resources/data/content/zh-Hans/databases/index.json index f555cb90..e6ea2a5b 100644 --- a/resources/data/content/zh-Hans/databases/index.json +++ b/resources/data/content/zh-Hans/databases/index.json @@ -84,6 +84,13 @@ "others": "其他引擎连接会同步至 iPhone 和 iPad 并显示在列表中,但无法打开。", "link": "适用于 iPhone 和 iPad 的 TablePro" }, + "linux": { + "title": "在 Linux 上", + "tested": "Linux 应用目前为 Beta 版,已针对 {engines} 进行测试。", + "untested": "{engines} 连接未在 Linux 上测试。", + "others": "其他引擎无法在其中打开。", + "link": "在 Linux 上安装" + }, "license": { "title": "包含在 Free 中", "body": "所有支持的数据库连接均包含在 Free 中。Pro 和 Team 为 Mac App 添加可选功能。", @@ -131,6 +138,12 @@ "synced": "从 Mac 同步后可打开", "none": "无法打开" }, + "linux": { + "tested": "已测试", + "versions": "已测试:{versions}", + "untested": "未测试", + "none": "不可用" + }, "availability": { "devices": "适用于 {devices}", "bundled": "Mac 应用内置驱动", @@ -184,6 +197,7 @@ "title": "获取 TablePro", "mac": "免费下载 Mac App。Pro 和 Team 提供可选功能。", "ios": "iPhone 和 iPad 应用可在 App Store 获取。", + "linux": "Linux 应用是免费的 Beta 版。", "pricing": "查看价格" } } diff --git a/resources/data/content/zh-Hans/download.json b/resources/data/content/zh-Hans/download.json index e33508f2..208cef4b 100644 --- a/resources/data/content/zh-Hans/download.json +++ b/resources/data/content/zh-Hans/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "下载 TablePro", - "description": "下载适用于 Apple silicon 或 Intel 的 TablePro,也可通过 Homebrew 安装。iPhone 和 iPad App 在 App Store 提供。" + "description": "下载 Mac 版 TablePro,也可通过 Homebrew 安装。Linux Beta 版可通过 Ubuntu、Fedora 或 Flatpak 安装,iPhone 和 iPad App 在 App Store 提供。" }, "og": { "kicker": "下载", diff --git a/resources/data/content/zh-Hans/faq.json b/resources/data/content/zh-Hans/faq.json index d91837b1..eb78c053 100644 --- a/resources/data/content/zh-Hans/faq.json +++ b/resources/data/content/zh-Hans/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "TablePro 是什么?", "answer": [ - "原生、开源的数据库客户端。在 Mac 上可查询和编辑 {featuredEngines} 等数据库,并操作结构。iPhone 和 iPad App 提供较少的数据库工具。", + "原生、开源的数据库客户端。在 Mac 上可查询和编辑 {featuredEngines} 等数据库,并操作结构。iPhone 和 iPad App 以及 Linux Beta 版提供较少的数据库工具。", "查看全部功能。" ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "这里的“原生”是什么意思?", "answer": [ - "TablePro 使用原生界面和数据库驱动,不使用 Electron 或 JDBC。当前 App 使用 Swift:Mac 上采用 AppKit 和 SwiftUI,iPhone 和 iPad 上使用 Face ID、Shortcuts 等设备功能。" + "TablePro 使用原生界面和数据库驱动,不使用 Electron 或 JDBC。Mac、iPhone 和 iPad App 使用 Swift:Mac 上采用 AppKit 和 SwiftUI,iPhone 和 iPad 上使用 Face ID、Shortcuts 等设备功能。Linux App 使用 Rust、GTK 4 和 libadwaita。" ] }, { @@ -47,14 +47,14 @@ "question": "TablePro 免费吗?", "answer": [ "是的。Mac App 没有试用期或时间限制。所有支持的引擎、AI、MCP 和 Safe Mode 均免费。Pro 和 Team 添加价格页面列出的功能。", - "iPhone 和 iPad App 免费,无需许可证,也没有 App 内购买。" + "iPhone 和 iPad App 免费,无需许可证,也没有 App 内购买。Linux App 可免费使用,付费功能目前仅限 Mac。" ] }, { "id": "open-source", "question": "TablePro 开源吗?", "answer": [ - "是的。两款 App(包括付费功能代码)以 AGPLv3 在同一个 GitHub 仓库公开。从源码构建的版本仍会检查付费功能许可证。" + "是的。各款 App(包括付费功能代码)以 AGPLv3 在同一个 GitHub 仓库公开。从源码构建的版本仍会检查付费功能许可证。" ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "有 Windows 或 Linux 版本吗?", "answer": [ - "没有 Windows 版本。Linux 有原型,但没有可安装的版本,也没有发布日期。" + "有 Linux 版:Linux 版 TablePro 以 Beta 版提供,支持的引擎和功能与 Mac 版不同。没有 Windows 版本,也没有发布日期。" ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "密码存在哪里?", "answer": [ - "已保存密码保留在 Keychain。Mac 上也可从文件、环境变量、shell 命令、1Password、Vault 或 AWS Secrets Manager 解析密码。", + "已保存密码保留在 Keychain,在 Linux 上则保留在 GNOME Keyring 或 KWallet 等 Secret Service 密钥环中。Mac 上也可从文件、环境变量、shell 命令、1Password、Vault 或 AWS Secrets Manager 解析密码。", "密码同步需要单独开启:在 Mac 启用 密码 (Passwords),或在 iPhone 和 iPad 启用 同步密码 (Sync Passwords),通过 iCloud Keychain 同步。" ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "一个许可证涵盖多少台 Mac?", + "question": "一个许可证涵盖多少台电脑?", "answer": [ - "Pro 供一人在最多 {deviceLimit} 台 Mac 上使用。Team 至少提供 {teamMinSeats} 个席位,每个席位供一人在最多 {deviceLimit} 台 Mac 上使用。台数上限按账户计算,Pro 和 Team 合并计算。iPhone 和 iPad 不占席位。", - "要在另一台 Mac 上使用许可证,请在 设置 > 账户 (Settings > Account) 或账户的设备页面移除一台 Mac。在此之前,另一台 Mac 仍可使用免费功能。" + "Pro 供一人在最多 {deviceLimit} 台 Mac 或 Linux 电脑上使用。Team 至少提供 {teamMinSeats} 个席位,每个席位供一人在最多 {deviceLimit} 台电脑上使用。台数上限按账户计算,Pro 和 Team 合并计算。付费功能目前仅限 Mac,但登录的 Linux 电脑同样计入台数。iPhone 和 iPad 不占席位。", + "要在另一台电脑上使用许可证,请在账户的设备页面或 Mac 上的 设置 > 账户 (Settings > Account) 移除一台。在此之前,另一台电脑仍可使用免费功能。" ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "应用会向 TablePro 发送什么?", "answer": [ - "Mac App 默认共享使用数据,可在 设置 > 通用 > 隐私 (Settings > General > Privacy) 关闭。从支持 TablePro 账户的版本起,数据直接发送给 PostHog:附带 Mac 型号、App 和 macOS 版本及数据库类型的 App 事件,登录前使用随机 ID,登录后使用账户 ID。支持 TablePro 账户之前的版本则通过我们的服务器发送包含哈希机器 ID 的每日报告。两者都绝不包含主机名、用户名、密码、查询或行数据。", + "Mac App 默认共享使用数据,可在 设置 > 通用 > 隐私 (Settings > General > Privacy) 关闭。从支持 TablePro 账户的版本起,数据直接发送给 PostHog:附带 Mac 型号、App 和 macOS 版本及数据库类型的 App 事件,登录前使用随机 ID,登录后使用账户 ID。支持 TablePro 账户之前的版本则通过我们的服务器发送包含哈希机器 ID 的每日报告。两者都绝不包含主机名、用户名、密码、查询或行数据。Linux App 也默认共享使用数据,同样不含这些信息,可在其偏好设置中关闭。", "登录后,Mac App 会将您的 Mac 登记到账户,发送机器 ID、Mac 名称及 App 和 macOS 版本,并每天更新一次方案。支持 TablePro 账户之前的版本每 {revalidateDays} 天发送许可证密钥及上述信息。iPhone 和 iPad 报告需主动开启。Team Library 接收您发布的设置和已保存 SQL。查看隐私政策,其中包括 IP 日志说明。" ] }, diff --git a/resources/data/content/zh-Hans/features/ai-mcp.json b/resources/data/content/zh-Hans/features/ai-mcp.json index 290b673a..749184e8 100644 --- a/resources/data/content/zh-Hans/features/ai-mcp.json +++ b/resources/data/content/zh-Hans/features/ai-mcp.json @@ -112,7 +112,7 @@ "id": "iphone", "title": "可用平台", "paragraphs": [ - "本页的 AI、MCP 和自动化工具目前仅在 Mac 上提供。" + "iPhone 和 iPad 应用没有本页的 AI、MCP 和自动化工具。" ], "links": [ { diff --git a/resources/data/content/zh-Hans/features/connections.json b/resources/data/content/zh-Hans/features/connections.json index bf1d59e9..fac42e95 100644 --- a/resources/data/content/zh-Hans/features/connections.json +++ b/resources/data/content/zh-Hans/features/connections.json @@ -175,7 +175,7 @@ "title": "在 iPhone 和 iPad 上", "paragraphs": [ "iPhone 和 iPad 应用有专用于 {iosPicker} 的连接表单,支持分组、每个连接一个标签以及收藏。SSH 隧道使用密码或从文件读取、直接粘贴的私钥登录,并检查主机密钥;iPhone 和 iPad 不支持 SSH agent 和跳板机。TLS 可验证服务器证书,但 SQL Server 仅加密而不验证。证书保留在设备上,从不同步。", - "密码和粘贴的密钥保存在钥匙串中。从 Mac 同步的 SQL Server 连接可通过 Microsoft Entra ID 登录。从其他应用导入、AWS IAM、Kerberos 和 Google 登录、代理与隧道命令、密码来源及超时设置仅在 Mac 应用中提供。" + "密码和粘贴的密钥保存在钥匙串中。从 Mac 同步的 SQL Server 连接可通过 Microsoft Entra ID 登录。从其他应用导入、AWS IAM、Kerberos 和 Google 登录、代理与隧道命令、密码来源及超时设置不在 iPhone 和 iPad 应用中提供。" ], "links": [ { diff --git a/resources/data/content/zh-Hans/features/data-editing.json b/resources/data/content/zh-Hans/features/data-editing.json index e3ecb4c7..a78eea46 100644 --- a/resources/data/content/zh-Hans/features/data-editing.json +++ b/resources/data/content/zh-Hans/features/data-editing.json @@ -105,7 +105,7 @@ "title": "在 iPhone 和 iPad 上", "paragraphs": [ "以卡片浏览行、排序和筛选,或点击外键预览引用行。编辑值或设为 NULL;编辑和删除需要主键。新增行以 DEFAULT 值开始,也可改为 NULL 或空字符串。", - "移动端 Safe Mode 提供 {iosSafeModeLevels},默认为 {iosSafeModeDefault}。暂存编辑、Preview SQL、高亮规则和 Data Rewind 目前仅在 Mac 提供。" + "移动端 Safe Mode 提供 {iosSafeModeLevels},默认为 {iosSafeModeDefault}。暂存编辑、Preview SQL、高亮规则和 Data Rewind 不在 iPhone 和 iPad 应用中提供。" ], "links": [ { diff --git a/resources/data/content/zh-Hans/features/schema.json b/resources/data/content/zh-Hans/features/schema.json index 9a77f1f7..8b1dd37f 100644 --- a/resources/data/content/zh-Hans/features/schema.json +++ b/resources/data/content/zh-Hans/features/schema.json @@ -121,7 +121,7 @@ "title": "在 iPhone 和 iPad 上", "paragraphs": [ "iPhone 和 iPad 应用以只读方式显示表的列、索引和外键。SQL 引擎的表列表可清空或删除表,除非连接设为 Read-Only。", - "结构编辑、ER 图、Compare & Sync、Copy To、Users & Roles 和 Server Dashboard 仅在 Mac 应用中提供。" + "结构编辑、ER 图、Compare & Sync、Copy To、Users & Roles 和 Server Dashboard 不在 iPhone 和 iPad 应用中提供。" ], "links": [ { diff --git a/resources/data/content/zh-Hans/features/sync-and-teams.json b/resources/data/content/zh-Hans/features/sync-and-teams.json index 10c6bab5..a3322853 100644 --- a/resources/data/content/zh-Hans/features/sync-and-teams.json +++ b/resources/data/content/zh-Hans/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Team 席位", "paragraphs": [ - "一个 Team 席位供一人在最多 {deviceLimit} 台 Mac 上使用。所有者和管理员在账户门户通过邮件邀请他人,可附带或不附带席位,受邀者通过邮件中的链接加入。", + "一个 Team 席位供一人在最多 {deviceLimit} 台 Mac 或 Linux 电脑上使用。所有者和管理员在账户门户通过邮件邀请他人,可附带或不附带席位,受邀者通过邮件中的链接加入。", "所有者在账单页面更改订阅席位。已有一次性席位的团队会保留这些席位,增加席位需要 Team 订阅。移除成员会释放其席位,其 Mac 会在 TablePro 下次联系服务器时失去 Team 功能。" ], "links": [ diff --git a/resources/data/content/zh-Hans/home.json b/resources/data/content/zh-Hans/home.json index be9ca2d3..53f9f3da 100644 --- a/resources/data/content/zh-Hans/home.json +++ b/resources/data/content/zh-Hans/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "迁移连接", - "lead": "从其他应用导入和 Open Project Folder 仅在 {macApp}中提供。", + "lead": "iPhone 和 iPad 应用不支持从其他应用导入,Open Project Folder 仅在 {macApp}中提供。", "import": "从 {apps} 导入连接,包括已保存的密码。", "importWithoutPasswords": "从 {apps} 导入连接时不包含密码。", "project": "Open Project Folder 可从支持的项目文件创建连接,包括 .env、docker-compose.yml 和 Prisma 结构文件。", diff --git a/resources/data/content/zh-Hans/ios.json b/resources/data/content/zh-Hans/ios.json index a44151b0..bd2a8353 100644 --- a/resources/data/content/zh-Hans/ios.json +++ b/resources/data/content/zh-Hans/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "iPhone 和 iPad 未提供的功能", - "lead": "以下仅在 Mac 版 TablePro 中提供:", + "lead": "以下在 Mac 版 TablePro 中提供:", "items": [ "AI 助手和 MCP 服务器", "已保存查询、自动补全、查询格式化和 EXPLAIN", diff --git a/resources/data/content/zh-Hans/pricing.json b/resources/data/content/zh-Hans/pricing.json index 370e9716..b71b4f68 100644 --- a/resources/data/content/zh-Hans/pricing.json +++ b/resources/data/content/zh-Hans/pricing.json @@ -30,8 +30,8 @@ "title": "许可证", "items": { "macs": { - "question": "一个许可证可以用于几台 Mac?", - "answer": "Pro 供一人在最多 {deviceLimit} 台 Mac 上使用,每个 Team 席位也一样。可在 设置 > 账户 (Settings > Account) 或账户中释放一台 Mac。" + "question": "一个许可证可以用于几台电脑?", + "answer": "Pro 供一人在最多 {deviceLimit} 台 Mac 或 Linux 电脑上使用,每个 Team 席位也一样。可在账户或 Mac 上的 设置 > 账户 (Settings > Account) 中释放一台。" }, "offline": { "question": "TablePro 需要联网吗?", diff --git a/resources/data/content/zh-Hans/security.json b/resources/data/content/zh-Hans/security.json index 9f7d771e..acb641f5 100644 --- a/resources/data/content/zh-Hans/security.json +++ b/resources/data/content/zh-Hans/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Safe Mode 级别", - "text": "每个连接都有 Safe Mode 级别:{macSafeModeLevels}。Alert 在写入前询问,Safe Mode 级别还要求 Touch ID 或 Mac 密码,Full 级别在读取前也会询问,Read-Only 拒绝写入。组织可通过配置描述文件为其 Mac 强制设定最低级别。iPhone 和 iPad 上的级别为 {iosSafeModeLevels}。" + "text": "在 Mac 上,每个连接都有 Safe Mode 级别:{macSafeModeLevels}。Alert 在写入前询问,Safe Mode 级别还要求 Touch ID 或 Mac 密码,Full 级别在读取前也会询问,Read-Only 拒绝写入。组织可通过配置描述文件为其 Mac 强制设定最低级别。iPhone 和 iPad 上的级别为 {iosSafeModeLevels},Linux 上为 {linuxSafeModeLevels}。" }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "仅限本地", - "text": "MCP 服务器只在 Mac 应用中提供,在您手动开启或已配置的客户端启动它之前保持关闭。它监听 {mcpHost},没有远程模式,客户端也从不会看到密码。" + "text": "在 Mac 应用中,MCP 服务器在您手动开启或已配置的客户端启动它之前保持关闭。它监听 {mcpHost},没有远程模式,客户端也从不会看到密码。" }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "代码公开", - "text": "两款应用均采用 AGPLv3 开源,包括付费功能的代码。本页描述的内容都能在仓库中查阅,签名和公证每个版本的脚本也在其中,您还可以自行构建 Mac 应用。" + "text": "各款应用均采用 AGPLv3 开源,包括付费功能的代码。本页描述的内容都能在仓库中查阅,签名和公证每个版本的脚本也在其中,您还可以自行构建 Mac 应用。" } ], "limits": [], diff --git a/resources/data/content/zh-Hans/teams.json b/resources/data/content/zh-Hans/teams.json index bd4fd0fc..db570c72 100644 --- a/resources/data/content/zh-Hans/teams.json +++ b/resources/data/content/zh-Hans/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "席位和成员", "items": [ - "一个席位供一人在最多 {deviceLimit} 台 Mac 上使用。", + "一个席位供一人在最多 {deviceLimit} 台 Mac 或 Linux 电脑上使用。", "所有者和管理员在您账户的成员页面通过邮件邀请他人,设置角色,并可选择附带席位。链接 7 天内有效,任何 TablePro 账户都可接受。", "所有者负责账单。管理员管理成员、邀请、Team Library 和团队的审计日志。成员使用共享的内容。", "所有者在账单页面更改订阅席位,{merchant} 会立即按比例收取或退还差额。", diff --git a/resources/data/content/zh-Hant/about.json b/resources/data/content/zh-Hant/about.json index c60ac1ac..70c4c222 100644 --- a/resources/data/content/zh-Hant/about.json +++ b/resources/data/content/zh-Hant/about.json @@ -14,7 +14,7 @@ }, "maker": { "title": "開發者", - "body": "{maker} 開發了 Mac App 及其外掛、iPhone 與 iPad App,以及本網站。", + "body": "{maker} 開發了 Mac App 及其外掛、iPhone 與 iPad App、Linux App,以及本網站。", "identity": "同一位開發者在 App Store 發佈 TablePro,並透過 GitHub Sponsors 接受贊助。", "facts": { "maker": "開發者", @@ -32,7 +32,7 @@ }, "source": { "title": "原始碼", - "body": "兩款 App 均採用 AGPLv3 開放原始碼,包括付費功能程式碼,位於同一個 GitHub 儲存庫。", + "body": "各款 App 均採用 AGPLv3 開放原始碼,包括付費功能程式碼,位於同一個 GitHub 儲存庫。", "license": "授權全文也在同一個儲存庫中。" }, "contact": { diff --git a/resources/data/content/zh-Hant/black-friday.json b/resources/data/content/zh-Hant/black-friday.json index 3be5bd66..1d4d0009 100644 --- a/resources/data/content/zh-Hant/black-friday.json +++ b/resources/data/content/zh-Hant/black-friday.json @@ -23,12 +23,12 @@ "lifetime": { "name": "Pro 一次性", "unit": "一次付費", - "detail": "無到期日。{activations} 台 Mac。" + "detail": "無到期日。{activations} 台 Mac 或 Linux 電腦。" }, "yearly": { "name": "Pro 年付", "unit": "首年", - "detail": "之後每年 {yearlyList}。{activations} 台 Mac。" + "detail": "之後每年 {yearlyList}。{activations} 台 Mac 或 Linux 電腦。" }, "buy": "以 {price} 購買", "soon": "{startsOn} 起", @@ -39,7 +39,7 @@ }, "includes": { "title": "Pro 增加的功能", - "lead": "TablePro 可免費使用,工作中也一樣。Pro 在 {activations} 台 Mac 上增加以下功能。", + "lead": "TablePro 可免費使用,工作中也一樣。Pro 為 Mac App 增加以下功能。", "more": "Pro 還包括", "link": "更多關於 {feature}" }, diff --git a/resources/data/content/zh-Hant/compare/beekeeper-studio.json b/resources/data/content/zh-Hant/compare/beekeeper-studio.json index dab4a329..9fdced35 100644 --- a/resources/data/content/zh-Hant/compare/beekeeper-studio.json +++ b/resources/data/content/zh-Hant/compare/beekeeper-studio.json @@ -18,7 +18,7 @@ "具有單獨的免費 iPhone 和 iPad 應用程式的原生應用程式。" ], "competitor": [ - "Windows、 macOS 和 Linux 上的相同用戶端。", + "Windows 支援,且在 macOS 和 Linux 上功能相同。", "Firebird、 SQL Anywhere 或 GreengageDB 連線。", "從 {cells.sync.edition} 起提供共用連線與查詢的雲端工作區。" ] @@ -69,7 +69,7 @@ "intro": "", "items": [ { - "text": "TablePro 是 Swift 編寫的 Mac App,使用原生資料庫驅動程式。Beekeeper Studio 基於 {technology}。兩者均分別提供 Apple silicon 和 Intel Mac 建置版本。", + "text": "TablePro 的 Mac App 以 Swift 編寫,使用原生資料庫驅動程式。Beekeeper Studio 基於 {technology}。兩者均分別提供 Apple silicon 和 Intel Mac 建置版本。", "cite": [ "technology", "mac" diff --git a/resources/data/content/zh-Hant/compare/datagrip.json b/resources/data/content/zh-Hant/compare/datagrip.json index 894e1db5..f8aa9d7b 100644 --- a/resources/data/content/zh-Hant/compare/datagrip.json +++ b/resources/data/content/zh-Hant/compare/datagrip.json @@ -20,7 +20,7 @@ "competitor": [ "程式碼檢查和版本控制以及查詢。", "用於非商業工作的全功能 IDE,免費。", - "Windows 或 Linux 支援,或 JDBC 引擎,例如 Firebird、 Informix 和 Databricks。" + "Windows 支援,或 JDBC 引擎,例如 Firebird、Informix 和 Databricks。" ] }, "glance": { @@ -78,7 +78,7 @@ "href": "/privacy#mac-usage-report" }, { - "text": "TablePro 是 Swift 編寫的 Mac App,使用原生資料庫驅動程式。DataGrip 基於 {technology}。", + "text": "TablePro 的 Mac App 以 Swift 編寫,使用原生資料庫驅動程式。DataGrip 基於 {technology}。", "cite": [ "technology" ], diff --git a/resources/data/content/zh-Hant/compare/dbeaver.json b/resources/data/content/zh-Hant/compare/dbeaver.json index bce5c2d1..739024d1 100644 --- a/resources/data/content/zh-Hant/compare/dbeaver.json +++ b/resources/data/content/zh-Hant/compare/dbeaver.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 與 DBeaver:功能與版本", - "description": "DBeaver 基於 Java 和 JDBC 支援 Windows、macOS 與 Linux。TablePro 是 Mac、iPhone 與 iPad 原生用戶端。比較引擎、AI、MCP 和價格。" + "description": "DBeaver 基於 Java 和 JDBC 支援 Windows、macOS 與 Linux。TablePro 是 Mac、iPhone、iPad 與 Linux 原生用戶端。比較引擎、AI、MCP 和價格。" }, "og": { "kicker": "比較", @@ -18,7 +18,7 @@ "MCP 和 AI 與您選擇的提供者免費聊天。" ], "competitor": [ - "Windows 或 Linux 支援。", + "Windows 支援。", "JDBC 引擎超出了 TablePro 支援的驅動程式。", "付費工具,例如視覺化查詢產生器、可編輯 ER 圖和排程任務。" ] @@ -76,7 +76,7 @@ "href": null }, { - "text": "TablePro 是 Swift 編寫的 Mac App,使用原生資料庫驅動程式。DBeaver 基於 Java,下載套件包含 Java 執行環境。", + "text": "TablePro 的 Mac App 以 Swift 編寫,使用原生資料庫驅動程式。DBeaver 基於 Java,下載套件包含 Java 執行環境。", "cite": [ "technology" ], diff --git a/resources/data/content/zh-Hant/compare/dbgate.json b/resources/data/content/zh-Hant/compare/dbgate.json index da1bcafe..ba3c3f38 100644 --- a/resources/data/content/zh-Hant/compare/dbgate.json +++ b/resources/data/content/zh-Hant/compare/dbgate.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 與 DbGate:版本與支援的平台", - "description": "DbGate 是適用於 Windows、macOS、Linux 和 Web 的開放原始碼用戶端,另有付費 Premium 版。TablePro 開放原始碼,原生支援 Mac 與 iPhone。" + "description": "DbGate 是適用於 Windows、macOS、Linux 和 Web 的開放原始碼用戶端,另有付費 Premium 版。TablePro 開放原始碼,原生支援 Mac、iPhone 與 Linux。" }, "og": { "kicker": "比較", @@ -18,7 +18,7 @@ "透過支援的引擎的轉儲工具進行免費備份。" ], "competitor": [ - "Windows、 Linux 或 Web 伺服器的用戶端。", + "Windows 或 Web 伺服器的用戶端。", "Firebird、Azure Cosmos DB 或 Firestore 連線。", "{cells.queryDesigner.edition} 或 DbGate 雲端同步中的視覺化查詢設計器。" ] @@ -99,7 +99,7 @@ "intro": "", "items": [ { - "text": "TablePro 是以 Swift 編寫的 Mac App,使用原生資料庫驅動程式。DbGate 以 {technology} 打造。兩者都提供 Apple silicon 與 Intel Mac 版本。", + "text": "TablePro 的 Mac App 以 Swift 編寫,使用原生資料庫驅動程式。DbGate 以 {technology} 打造。兩者都提供 Apple silicon 與 Intel Mac 版本。", "cite": [ "technology", "mac" @@ -194,7 +194,7 @@ { "id": "web", "question": "TablePro 有 Web 版本嗎?", - "answer": "沒有。TablePro 在 Mac、iPhone 與 iPad 上執行。如果團隊需要在瀏覽器中使用資料庫用戶端,DbGate 也可作為 Web 應用程式執行。", + "answer": "沒有。TablePro 是適用於 Mac、iPhone、iPad 與 Linux 的 App。如果團隊需要在瀏覽器中使用資料庫用戶端,DbGate 也可作為 Web 應用程式執行。", "href": null }, { diff --git a/resources/data/content/zh-Hant/compare/heidisql.json b/resources/data/content/zh-Hant/compare/heidisql.json index a3ab117f..92547f28 100644 --- a/resources/data/content/zh-Hant/compare/heidisql.json +++ b/resources/data/content/zh-Hant/compare/heidisql.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 與 HeidiSQL:資料庫、平台和定價", - "description": "HeidiSQL 在 Windows、Linux 和自 2026 年起的 Apple silicon Mac 免費。TablePro 原生支援 Mac、iPhone、iPad。比較資料庫、版本和價格。" + "description": "HeidiSQL 在 Windows、Linux 和自 2026 年起的 Apple silicon Mac 免費。TablePro 原生支援 Mac、iPhone、iPad、Linux。比較資料庫、版本和價格。" }, "og": { "kicker": "比較", @@ -18,7 +18,7 @@ "免費 AI 聊天和 MCP,以及單獨的 iPhone 和 iPad 應用程式。" ], "competitor": [ - "Windows、Linux 和 Apple silicon Mac 上相同的免費用戶端。", + "Windows 和 Apple silicon Mac 上相同的免費用戶端。", "Firebird、Interbase 或 ProxySQL 連線。", "所有功能都是免費的,沒有付費方案。" ] diff --git a/resources/data/content/zh-Hant/compare/index.json b/resources/data/content/zh-Hant/compare/index.json index 797d4b36..a440eefd 100644 --- a/resources/data/content/zh-Hant/compare/index.json +++ b/resources/data/content/zh-Hant/compare/index.json @@ -16,7 +16,7 @@ "lead": "從您需要的工具開始。", "tablepro": "TablePro 是適用於多種資料庫類型的原生開源用戶端。 AI 聊天和 MCP 在 Mac 應用程式中免費。它從 {apps} 匯入連線。", "items": { - "tableplus": "Windows 或 Linux 支援,加上 Vertica 和 Greenplum。", + "tableplus": "Windows 支援,加上 Vertica 和 Greenplum。", "dbeaver": "具有 JDBC 驅動程式支援的跨平台用戶端。", "datagrip": "具有程式碼檢查和版本控制功能的資料庫 IDE。免費用於非商業工作。", "navicat": "透過 Navicat Cloud 進行資料建模和共享專案。", @@ -24,7 +24,7 @@ "sequel-ace": "一個免費的 Mac App Store 用戶端,專注於 MySQL 和 MariaDB。", "sequel-pro": "從 Sequel Pro 轉移?它的最後一個版本是 {status.version},在 {status.date} 上。比較 Sequel Ace 和 TablePro。", "postico": "具有一次性授權的專注 PostgreSQL 用戶端。", - "heidisql": "Windows、Linux 和 Apple silicon Mac 的免費用戶端。", + "heidisql": "Windows 和 Apple silicon Mac 的免費用戶端。", "phpmyadmin": "MySQL 或 MariaDB 透過瀏覽器訪問,包括 cPanel 託管。", "mysql-workbench": "Oracle 的 MySQL 工具,提供 SQL notebook 和 MySQL Enterprise Backup 整合。", "pgadmin": "PostgreSQL 管理,附有偵錯器、pgAgent 作業和共用伺服器選項。", @@ -218,6 +218,7 @@ "retrieved": "確認於 {date}", "latest": "當時最新 {name} 版本:{version},發行於 {date}。", "tablepro": "TablePro 一欄描述 Mac 的 {macVersion} 及 iPhone、iPad 的 {iosVersion}。", + "tableproLinux": "TablePro 一欄描述 Mac 的 {macVersion}、iPhone 與 iPad 的 {iosVersion} 及 Linux 的 {linuxVersion}。", "trademarks": "TablePro 是獨立的開放原始碼專案,與此處所比較產品的開發者沒有關聯,也未獲其背書。產品名稱是其各自擁有者的商標。" }, "cta": { diff --git a/resources/data/content/zh-Hant/compare/mysql-workbench.json b/resources/data/content/zh-Hant/compare/mysql-workbench.json index ce86bf6c..e407ad7c 100644 --- a/resources/data/content/zh-Hant/compare/mysql-workbench.json +++ b/resources/data/content/zh-Hant/compare/mysql-workbench.json @@ -1,7 +1,7 @@ { "seo": { "title": "TablePro 與 MySQL Workbench:功能與相容性", - "description": "MySQL Workbench 是 Oracle 免費的 MySQL 工具,現已改以 MySQL Shell 為基礎重寫。TablePro 在 Mac、iPhone 與 iPad 上支援 MySQL 及其他引擎。" + "description": "MySQL Workbench 是 Oracle 免費的 MySQL 工具,現已改以 MySQL Shell 為基礎重寫。TablePro 在 Mac、iPhone、iPad 與 Linux 上支援 MySQL 及其他引擎。" }, "og": { "kicker": "比較", diff --git a/resources/data/content/zh-Hant/compare/navicat.json b/resources/data/content/zh-Hant/compare/navicat.json index e1aaaad1..88c5c590 100644 --- a/resources/data/content/zh-Hant/compare/navicat.json +++ b/resources/data/content/zh-Hant/compare/navicat.json @@ -18,7 +18,7 @@ "ClickHouse、DuckDB 或 Cassandra 連線。" ], "competitor": [ - "Windows 或 Linux 支援。", + "Windows 支援。", "Premium Enterprise 中的資料建模。", "Navicat Cloud 或 Navicat On-Prem Server 用於共享連線、查詢和模型。" ] diff --git a/resources/data/content/zh-Hant/compare/pgadmin.json b/resources/data/content/zh-Hant/compare/pgadmin.json index a6b90d0f..95bee097 100644 --- a/resources/data/content/zh-Hant/compare/pgadmin.json +++ b/resources/data/content/zh-Hant/compare/pgadmin.json @@ -20,7 +20,7 @@ "competitor": [ "PostgreSQL 管理工具,包含 PL/pgSQL 偵錯器與 pgAgent 工作。", "捆綁 psql、pg_dump 和 pg_restore。", - "共用 Web 伺服器安裝,或 Windows 和 Linux 支援。" + "共用 Web 伺服器安裝,或 Windows 支援。" ] }, "glance": { @@ -105,7 +105,7 @@ "href": "/databases" }, { - "text": "TablePro 是以 Swift 編寫的 Mac App,使用原生資料庫驅動程式。pgAdmin 是 Python Web 應用程式,在 {technology} 桌面執行環境或 Web 伺服器上執行。", + "text": "TablePro 的 Mac App 以 Swift 編寫,使用原生資料庫驅動程式。pgAdmin 是 Python Web 應用程式,在 {technology} 桌面執行環境或 Web 伺服器上執行。", "cite": [ "technology" ], diff --git a/resources/data/content/zh-Hant/compare/phpmyadmin.json b/resources/data/content/zh-Hant/compare/phpmyadmin.json index e5ca1f36..ab86ef12 100644 --- a/resources/data/content/zh-Hant/compare/phpmyadmin.json +++ b/resources/data/content/zh-Hant/compare/phpmyadmin.json @@ -146,7 +146,7 @@ "href": null }, { - "text": "它是 Mac、iPhone、iPad App,無法從任意電腦瀏覽器開啟。", + "text": "它是 Mac、iPhone、iPad 和 Linux App,無法從任意電腦瀏覽器開啟。", "cite": [], "feature": null, "href": null diff --git a/resources/data/content/zh-Hant/compare/tableplus.json b/resources/data/content/zh-Hant/compare/tableplus.json index d00f0fc1..1b1d823d 100644 --- a/resources/data/content/zh-Hant/compare/tableplus.json +++ b/resources/data/content/zh-Hant/compare/tableplus.json @@ -18,7 +18,7 @@ "免費的 iPhone 和 iPad 應用程序,無需應用程式內購買。" ], "competitor": [ - "Windows 或 Linux 支援。", + "Windows 支援。", "Vertica 或 Greenplum 連線。", "可透過 Setapp 使用的用戶端。" ] diff --git a/resources/data/content/zh-Hant/databases/index.json b/resources/data/content/zh-Hant/databases/index.json index 873f2024..04eb8021 100644 --- a/resources/data/content/zh-Hant/databases/index.json +++ b/resources/data/content/zh-Hant/databases/index.json @@ -84,6 +84,13 @@ "others": "其他引擎連線會同步至 iPhone 與 iPad 並顯示在清單中,但無法開啟。", "link": "適用於 iPhone 與 iPad 的 TablePro" }, + "linux": { + "title": "在 Linux 上", + "tested": "Linux App 目前為 Beta 版,已針對 {engines} 進行測試。", + "untested": "{engines} 連線未在 Linux 上測試。", + "others": "其他引擎無法在其中開啟。", + "link": "在 Linux 上安裝" + }, "license": { "title": "包含在 Free 中", "body": "所有支援的資料庫連線均包含在 Free 中。Pro 和 Team 為 Mac App 加入選用功能。", @@ -131,6 +138,12 @@ "synced": "從 Mac 同步後可開啟", "none": "無法開啟" }, + "linux": { + "tested": "已測試", + "versions": "已測試:{versions}", + "untested": "未測試", + "none": "無法使用" + }, "availability": { "devices": "適用於 {devices}", "bundled": "Mac App 內建驅動程式", @@ -184,6 +197,7 @@ "title": "取得 TablePro", "mac": "免費下載 Mac App。Pro 和 Team 提供選用功能。", "ios": "iPhone 與 iPad App 可在 App Store 取得。", + "linux": "Linux App 是免費的 Beta 版。", "pricing": "查看價格" } } diff --git a/resources/data/content/zh-Hant/download.json b/resources/data/content/zh-Hant/download.json index a2acf2b0..9a5110fb 100644 --- a/resources/data/content/zh-Hant/download.json +++ b/resources/data/content/zh-Hant/download.json @@ -1,7 +1,7 @@ { "seo": { "title": "下載 TablePro", - "description": "下載適用於 Apple silicon 或 Intel 的 TablePro,也可透過 Homebrew 安裝。iPhone 和 iPad App 在 App Store 提供。" + "description": "下載 Mac 版 TablePro,也可透過 Homebrew 安裝。Linux Beta 版可透過 Ubuntu、Fedora 或 Flatpak 安裝,iPhone 和 iPad App 在 App Store 提供。" }, "og": { "kicker": "下載", diff --git a/resources/data/content/zh-Hant/faq.json b/resources/data/content/zh-Hant/faq.json index 6c54135a..456550f8 100644 --- a/resources/data/content/zh-Hant/faq.json +++ b/resources/data/content/zh-Hant/faq.json @@ -31,7 +31,7 @@ "id": "what-is-tablepro", "question": "TablePro 是什麼?", "answer": [ - "原生、開源的資料庫用戶端。在 Mac 上可查詢和編輯 {featuredEngines} 等資料庫,並操作綱要。iPhone 和 iPad App 提供較少的資料庫工具。", + "原生、開源的資料庫用戶端。在 Mac 上可查詢和編輯 {featuredEngines} 等資料庫,並操作綱要。iPhone 和 iPad App 以及 Linux Beta 版提供較少的資料庫工具。", "查看全部功能。" ] }, @@ -39,7 +39,7 @@ "id": "native", "question": "這裡的「原生」是什麼意思?", "answer": [ - "TablePro 使用原生介面和資料庫驅動程式,不使用 Electron 或 JDBC。目前 App 使用 Swift:Mac 上採用 AppKit 和 SwiftUI,iPhone 和 iPad 上使用 Face ID、Shortcuts 等裝置功能。" + "TablePro 使用原生介面和資料庫驅動程式,不使用 Electron 或 JDBC。Mac、iPhone 和 iPad App 使用 Swift:Mac 上採用 AppKit 和 SwiftUI,iPhone 和 iPad 上使用 Face ID、Shortcuts 等裝置功能。Linux App 使用 Rust、GTK 4 和 libadwaita。" ] }, { @@ -47,14 +47,14 @@ "question": "TablePro 免費嗎?", "answer": [ "是的。Mac App 沒有試用期或時間限制。所有支援的引擎、AI、MCP 和 Safe Mode 皆免費。Pro 和 Team 加入價格頁面列出的功能。", - "iPhone 和 iPad App 免費,無需授權,也沒有 App 內購買。" + "iPhone 和 iPad App 免費,無需授權,也沒有 App 內購買。Linux App 可免費使用,付費功能目前僅限 Mac。" ] }, { "id": "open-source", "question": "TablePro 開放原始碼嗎?", "answer": [ - "是的。兩款 App(包括付費功能程式碼)以 AGPLv3 在同一個 GitHub 儲存庫公開。從原始碼建置的版本仍會檢查付費功能授權。" + "是的。各款 App(包括付費功能程式碼)以 AGPLv3 在同一個 GitHub 儲存庫公開。從原始碼建置的版本仍會檢查付費功能授權。" ] }, { @@ -89,7 +89,7 @@ "id": "windows-linux", "question": "有 Windows 或 Linux 版本嗎?", "answer": [ - "沒有 Windows 版本。Linux 有原型,但沒有可安裝的版本,也沒有發佈日期。" + "有 Linux 版:Linux 版 TablePro 以 Beta 版提供,支援的引擎和功能與 Mac 版不同。沒有 Windows 版本,也沒有發佈日期。" ] }, { @@ -134,7 +134,7 @@ "id": "passwords", "question": "密碼存在哪裡?", "answer": [ - "已儲存密碼保留在 Keychain。Mac 上也可從檔案、環境變數、shell 命令、1Password、Vault 或 AWS Secrets Manager 解析密碼。", + "已儲存密碼保留在 Keychain,在 Linux 上則保留在 GNOME Keyring 或 KWallet 等 Secret Service 金鑰圈中。Mac 上也可從檔案、環境變數、shell 命令、1Password、Vault 或 AWS Secrets Manager 解析密碼。", "密碼同步需要單獨開啟:在 Mac 啟用 密碼 (Passwords),或在 iPhone 和 iPad 啟用 同步密碼 (Sync Passwords),透過 iCloud Keychain 同步。" ] }, @@ -175,10 +175,10 @@ }, { "id": "how-many-macs", - "question": "一份授權涵蓋多少台 Mac?", + "question": "一份授權涵蓋多少台電腦?", "answer": [ - "Pro 供一人在最多 {deviceLimit} 台 Mac 上使用。Team 至少提供 {teamMinSeats} 個席位,每個席位供一人在最多 {deviceLimit} 台 Mac 上使用。台數上限按帳戶計算,Pro 和 Team 合併計算。iPhone 和 iPad 不占席位。", - "要在另一台 Mac 上使用授權,請在 設定 > 帳號 (Settings > Account) 或帳戶的裝置頁面移除一台 Mac。在此之前,另一台 Mac 仍可使用免費功能。" + "Pro 供一人在最多 {deviceLimit} 台 Mac 或 Linux 電腦上使用。Team 至少提供 {teamMinSeats} 個席位,每個席位供一人在最多 {deviceLimit} 台電腦上使用。台數上限按帳戶計算,Pro 和 Team 合併計算。付費功能目前僅限 Mac,但登入的 Linux 電腦同樣計入台數。iPhone 和 iPad 不占席位。", + "要在另一台電腦上使用授權,請在帳戶的裝置頁面或 Mac 上的 設定 > 帳號 (Settings > Account) 移除一台。在此之前,另一台電腦仍可使用免費功能。" ] }, { @@ -252,7 +252,7 @@ "id": "what-is-sent", "question": "App 會向 TablePro 傳送什麼?", "answer": [ - "Mac App 預設分享使用資料,可在 設定 > 一般 > 隱私 (Settings > General > Privacy) 關閉。從支援 TablePro 帳戶的版本起,資料直接傳送給 PostHog:附帶 Mac 機型、App 和 macOS 版本及資料庫型別的 App 事件,登入前使用隨機 ID,登入後使用帳戶 ID。支援 TablePro 帳戶之前的版本則透過我們的伺服器傳送包含雜湊機器 ID 的每日報告。兩者都絕不包含主機名稱、使用者名稱、密碼、查詢或列資料。", + "Mac App 預設分享使用資料,可在 設定 > 一般 > 隱私 (Settings > General > Privacy) 關閉。從支援 TablePro 帳戶的版本起,資料直接傳送給 PostHog:附帶 Mac 機型、App 和 macOS 版本及資料庫型別的 App 事件,登入前使用隨機 ID,登入後使用帳戶 ID。支援 TablePro 帳戶之前的版本則透過我們的伺服器傳送包含雜湊機器 ID 的每日報告。兩者都絕不包含主機名稱、使用者名稱、密碼、查詢或列資料。Linux App 也預設分享使用資料,同樣不含這些資訊,可在其偏好設定中關閉。", "登入後,Mac App 會將您的 Mac 登記到帳戶,傳送機器 ID、Mac 名稱及 App 和 macOS 版本,並每天更新一次方案。支援 TablePro 帳戶之前的版本每 {revalidateDays} 天傳送授權金鑰及上述資訊。iPhone 和 iPad 報告需主動開啟。Team Library 接收您發佈的設定和已儲存 SQL。查看隱私權政策,其中包括 IP 記錄說明。" ] }, diff --git a/resources/data/content/zh-Hant/features/ai-mcp.json b/resources/data/content/zh-Hant/features/ai-mcp.json index 84b29f4e..df7e4ae2 100644 --- a/resources/data/content/zh-Hant/features/ai-mcp.json +++ b/resources/data/content/zh-Hant/features/ai-mcp.json @@ -112,7 +112,7 @@ "id": "iphone", "title": "可用平台", "paragraphs": [ - "本頁的 AI、MCP 和自動化工具目前僅在 Mac 上提供。" + "iPhone 和 iPad App 沒有本頁的 AI、MCP 和自動化工具。" ], "links": [ { diff --git a/resources/data/content/zh-Hant/features/connections.json b/resources/data/content/zh-Hant/features/connections.json index a740da8b..9ffc5bde 100644 --- a/resources/data/content/zh-Hant/features/connections.json +++ b/resources/data/content/zh-Hant/features/connections.json @@ -175,7 +175,7 @@ "title": "在 iPhone 與 iPad 上", "paragraphs": [ "iPhone 與 iPad App 有專用於 {iosPicker} 的連線表單,支援群組、每個連線一個標籤以及喜好項目。SSH 通道使用密碼或從檔案讀取、直接貼上的私密金鑰登入,並檢查主機金鑰;iPhone 與 iPad 不支援 SSH 代理程式和跳板主機。TLS 可驗證伺服器憑證,但 SQL Server 僅加密而不驗證。憑證保留在裝置上,從不同步。", - "密碼與貼上的金鑰儲存在鑰匙圈中。從 Mac 同步的 SQL Server 連線可透過 Microsoft Entra ID 登入。從其他 App 匯入、AWS IAM、Kerberos 與 Google 登入、代理與通道指令、密碼來源及逾時設定僅在 Mac App 中提供。" + "密碼與貼上的金鑰儲存在鑰匙圈中。從 Mac 同步的 SQL Server 連線可透過 Microsoft Entra ID 登入。從其他 App 匯入、AWS IAM、Kerberos 與 Google 登入、代理與通道指令、密碼來源及逾時設定不在 iPhone 和 iPad App 中提供。" ], "links": [ { diff --git a/resources/data/content/zh-Hant/features/data-editing.json b/resources/data/content/zh-Hant/features/data-editing.json index 976a4190..9cd0cc58 100644 --- a/resources/data/content/zh-Hant/features/data-editing.json +++ b/resources/data/content/zh-Hant/features/data-editing.json @@ -105,7 +105,7 @@ "title": "在 iPhone 與 iPad 上", "paragraphs": [ "以卡片瀏覽列、排序和篩選,或點擊外部索引鍵預覽參照列。編輯值或設為 NULL;編輯和刪除需要主索引鍵。新增列以 DEFAULT 值開始,也可改為 NULL 或空字串。", - "行動版 Safe Mode 提供 {iosSafeModeLevels},預設為 {iosSafeModeDefault}。暫存編輯、Preview SQL、醒目提示規則和 Data Rewind 目前僅在 Mac 提供。" + "行動版 Safe Mode 提供 {iosSafeModeLevels},預設為 {iosSafeModeDefault}。暫存編輯、Preview SQL、醒目提示規則和 Data Rewind 不在 iPhone 和 iPad App 中提供。" ], "links": [ { diff --git a/resources/data/content/zh-Hant/features/schema.json b/resources/data/content/zh-Hant/features/schema.json index 8f07f2bb..c3bf5362 100644 --- a/resources/data/content/zh-Hant/features/schema.json +++ b/resources/data/content/zh-Hant/features/schema.json @@ -121,7 +121,7 @@ "title": "在 iPhone 與 iPad 上", "paragraphs": [ "iPhone 與 iPad App 以唯讀方式顯示資料表的欄位、索引與外部索引鍵。SQL 引擎的資料表清單可清空或刪除資料表,除非連線設為 Read-Only。", - "結構編輯、ER 圖、Compare & Sync、Copy To、Users & Roles 與 Server Dashboard 僅在 Mac App 中提供。" + "結構編輯、ER 圖、Compare & Sync、Copy To、Users & Roles 與 Server Dashboard 不在 iPhone 和 iPad App 中提供。" ], "links": [ { diff --git a/resources/data/content/zh-Hant/features/sync-and-teams.json b/resources/data/content/zh-Hant/features/sync-and-teams.json index a6f1c8ef..0a65eb0d 100644 --- a/resources/data/content/zh-Hant/features/sync-and-teams.json +++ b/resources/data/content/zh-Hant/features/sync-and-teams.json @@ -117,7 +117,7 @@ "id": "seats", "title": "Team 席位", "paragraphs": [ - "一個 Team 席位供一人在最多 {deviceLimit} 台 Mac 上使用。擁有者和管理員在帳戶入口網站透過郵件邀請他人,可附帶或不附帶席位,受邀者透過郵件中的連結加入。", + "一個 Team 席位供一人在最多 {deviceLimit} 台 Mac 或 Linux 電腦上使用。擁有者和管理員在帳戶入口網站透過郵件邀請他人,可附帶或不附帶席位,受邀者透過郵件中的連結加入。", "擁有者在帳單頁面變更訂閱席位。已有一次性席位的團隊會保留這些席位,增加席位需要 Team 訂閱。移除成員會釋放其席位,其 Mac 會在 TablePro 下次聯絡伺服器時失去 Team 功能。" ], "links": [ diff --git a/resources/data/content/zh-Hant/home.json b/resources/data/content/zh-Hant/home.json index 60bb9dda..54f5f4fb 100644 --- a/resources/data/content/zh-Hant/home.json +++ b/resources/data/content/zh-Hant/home.json @@ -101,7 +101,7 @@ }, "switch": { "title": "移轉連線", - "lead": "從其他 App 匯入與 Open Project Folder 僅在 {macApp} 中提供。", + "lead": "iPhone 與 iPad App 不支援從其他 App 匯入,Open Project Folder 僅在 {macApp} 中提供。", "import": "從 {apps} 匯入連線,包括已儲存的密碼。", "importWithoutPasswords": "從 {apps} 匯入連線時不包含密碼。", "project": "Open Project Folder 可從支援的專案檔案建立連線,包括 .env、docker-compose.yml 和 Prisma 綱要檔案。", diff --git a/resources/data/content/zh-Hant/ios.json b/resources/data/content/zh-Hant/ios.json index 61958a03..b886500c 100644 --- a/resources/data/content/zh-Hant/ios.json +++ b/resources/data/content/zh-Hant/ios.json @@ -79,7 +79,7 @@ }, "limits": { "title": "iPhone 與 iPad 未提供的功能", - "lead": "以下僅在 Mac 版 TablePro 中提供:", + "lead": "以下在 Mac 版 TablePro 中提供:", "items": [ "AI 助理與 MCP 伺服器", "已儲存查詢、自動完成、查詢格式化和 EXPLAIN", diff --git a/resources/data/content/zh-Hant/pricing.json b/resources/data/content/zh-Hant/pricing.json index dfcffdfd..4d68617d 100644 --- a/resources/data/content/zh-Hant/pricing.json +++ b/resources/data/content/zh-Hant/pricing.json @@ -30,8 +30,8 @@ "title": "授權", "items": { "macs": { - "question": "一個授權可以用於幾台 Mac?", - "answer": "Pro 供一人在最多 {deviceLimit} 台 Mac 上使用,每個 Team 席位也一樣。可在 設定 > 帳號 (Settings > Account) 或帳戶中釋出一台 Mac。" + "question": "一個授權可以用於幾台電腦?", + "answer": "Pro 供一人在最多 {deviceLimit} 台 Mac 或 Linux 電腦上使用,每個 Team 席位也一樣。可在帳戶或 Mac 上的 設定 > 帳號 (Settings > Account) 中釋出一台。" }, "offline": { "question": "TablePro 需要連網嗎?", diff --git a/resources/data/content/zh-Hant/security.json b/resources/data/content/zh-Hant/security.json index bd8e8dce..ea8cbbd8 100644 --- a/resources/data/content/zh-Hant/security.json +++ b/resources/data/content/zh-Hant/security.json @@ -140,7 +140,7 @@ { "id": "levels", "title": "Safe Mode 等級", - "text": "每個連線都有 Safe Mode 等級:{macSafeModeLevels}。Alert 在寫入前詢問,Safe Mode 等級還要求 Touch ID 或 Mac 密碼,Full 等級在讀取前也會詢問,Read-Only 拒絕寫入。組織可透過設定描述檔為其 Mac 強制設定最低等級。iPhone 與 iPad 上的等級為 {iosSafeModeLevels}。" + "text": "在 Mac 上,每個連線都有 Safe Mode 等級:{macSafeModeLevels}。Alert 在寫入前詢問,Safe Mode 等級還要求 Touch ID 或 Mac 密碼,Full 等級在讀取前也會詢問,Read-Only 拒絕寫入。組織可透過設定描述檔為其 Mac 強制設定最低等級。iPhone 與 iPad 上的等級為 {iosSafeModeLevels},Linux 上為 {linuxSafeModeLevels}。" }, { "id": "destructive", @@ -175,7 +175,7 @@ { "id": "local", "title": "僅限本機", - "text": "MCP 伺服器只在 Mac App 中提供,在您手動開啟或已設定的用戶端啟動它之前保持關閉。它接聽 {mcpHost},沒有遠端模式,用戶端也從不會看到密碼。" + "text": "在 Mac App 中,MCP 伺服器在您手動開啟或已設定的用戶端啟動它之前保持關閉。它接聽 {mcpHost},沒有遠端模式,用戶端也從不會看到密碼。" }, { "id": "approval", @@ -210,7 +210,7 @@ { "id": "source", "title": "程式碼公開", - "text": "兩款 App 均採用 AGPLv3 開放原始碼,包括付費功能的程式碼。本頁描述的內容都能在儲存庫中查閱,簽署與公證每個版本的指令碼也在其中,您還可以自行建置 Mac App。" + "text": "各款 App 均採用 AGPLv3 開放原始碼,包括付費功能的程式碼。本頁描述的內容都能在儲存庫中查閱,簽署與公證每個版本的指令碼也在其中,您還可以自行建置 Mac App。" } ], "limits": [], diff --git a/resources/data/content/zh-Hant/teams.json b/resources/data/content/zh-Hant/teams.json index 2d690773..a084625e 100644 --- a/resources/data/content/zh-Hant/teams.json +++ b/resources/data/content/zh-Hant/teams.json @@ -36,7 +36,7 @@ "seats": { "title": "席位與成員", "items": [ - "一個席位供一人在最多 {deviceLimit} 台 Mac 上使用。", + "一個席位供一人在最多 {deviceLimit} 台 Mac 或 Linux 電腦上使用。", "擁有者和管理員在您帳戶的成員頁面透過郵件邀請他人,設定角色,並可選擇附帶席位。連結 7 天內有效,任何 TablePro 帳戶都可接受。", "擁有者負責帳單。管理員管理成員、邀請、Team Library 和團隊的稽核記錄。成員使用共用的內容。", "擁有者在帳單頁面變更訂閱席位,{merchant} 會立即按比例收取或退還差額。", diff --git a/resources/data/legal/de/terms.md b/resources/data/legal/de/terms.md index d697aad1..584535d4 100644 --- a/resources/data/legal/de/terms.md +++ b/resources/data/legal/de/terms.md @@ -1,17 +1,17 @@ --- title: Nutzungsbedingungen description: Die Bedingungen für Website, Kontoportal, Lizenzserver und Team Library von TablePro sowie den Kauf einer Pro- oder Team-Lizenz. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -Diese Bedingungen regeln die Website tablepro.app, das Kontoportal, unseren Lizenzserver, die Team Library sowie die unten beschriebenen kostenpflichtigen Lizenzen und Lizenzschlüssel. Indem du sie nutzt oder eine Lizenz kaufst oder aktivierst, stimmst du diesen Bedingungen zu. TablePro für Mac und TablePro für iPhone und iPad stehen allein unter der AGPLv3: Um sie herunterzuladen, zu installieren oder auszuführen, musst du diese Bedingungen nicht akzeptieren. +Diese Bedingungen regeln die Website tablepro.app, das Kontoportal, unseren Lizenzserver, die Team Library sowie die unten beschriebenen kostenpflichtigen Lizenzen und Lizenzschlüssel. Indem du sie nutzt oder eine Lizenz kaufst oder aktivierst, stimmst du diesen Bedingungen zu. TablePro für Mac, TablePro für iPhone und iPad sowie TablePro für Linux stehen allein unter der AGPLv3: Um sie herunterzuladen, zu installieren oder auszuführen, musst du diese Bedingungen nicht akzeptieren. ## Begriffsbestimmungen {#definitions} - **„TablePro“, „wir“, „uns“ und „unser“** bezeichnen {publisherName}, einen Einzelentwickler in {publisherCity}, {publisherCountry}, der TablePro veröffentlicht. -- **„Anwendung“** bezeichnet TablePro für Mac und TablePro für iPhone und iPad einschließlich ihrer Updates und Plugins. +- **„Anwendung“** bezeichnet TablePro für Mac, TablePro für iPhone und iPad sowie TablePro für Linux einschließlich ihrer Updates und Plugins. - **„Website“** bezeichnet tablepro.app, docs.tablepro.app und die weiteren Domains, die wir betreiben. -- **„Dienste“** bezeichnet die Website, das Kontoportal und den Server, den die Mac-App für Lizenzprüfungen und die Team Library kontaktiert. +- **„Dienste“** bezeichnet die Website, das Kontoportal und den Server, den die Mac-App und die Linux-App für Lizenzprüfungen und die Team Library kontaktieren. - **„Lizenz“** bezeichnet einen bezahlten Pro- oder Team-Tarif und **„Lizenzschlüssel“** die Zugangsdaten, mit denen Versionen der Mac-App vor den TablePro-Konten eine Lizenz aktivieren. - **„Du“** bezeichnet die Person oder Organisation, die die Dienste nutzt oder eine Lizenz besitzt. @@ -21,7 +21,7 @@ Der Quellcode der Anwendung, einschließlich des Codes der Bezahlfunktionen, wir Die AGPL stellt keine Bedingungen an die Ausführung von TablePro in Unternehmen beliebiger Größe. Ihre Bedingungen gelten, wenn du Kopien an andere weitergibst, geändert oder unverändert, und wenn du TablePro änderst und andere deine geänderte Version über ein Netzwerk nutzen lässt. Diese Bedingungen schränken die Rechte, die dir die AGPLv3 gewährt, nicht ein. -Die Mac-App lässt sich ohne Registrierung kostenlos herunterladen und nutzen. Eine Lizenz ergänzt die Mac-App um optionale Funktionen. Die iPhone- und iPad-App ist kostenlos, ohne In-App-Käufe. +Die Mac-App und die Linux-App lassen sich ohne Registrierung kostenlos herunterladen und nutzen. Eine Lizenz ergänzt die Mac-App um optionale Funktionen. Die iPhone- und iPad-App ist kostenlos, ohne In-App-Käufe. ## Marken {#trademarks} @@ -37,12 +37,12 @@ Erstattungen sind in der [Erstattungsrichtlinie](/de/refund-policy) beschrieben. ## Eine Lizenz nutzen {#license} -Eine Lizenz gewährt dir ein nicht ausschließliches, nicht übertragbares Recht, die Bezahlfunktionen der Mac-App auf den Macs zu nutzen, die bei deinem TablePro-Konto angemeldet sind oder, in Versionen vor den TablePro-Konten, mit ihrem Lizenzschlüssel aktiviert wurden, bis zur Anzahl und für den Zeitraum deines Tarifs: +Eine Lizenz gewährt dir ein nicht ausschließliches, nicht übertragbares Recht, die Bezahlfunktionen der Mac-App auf den Computern zu nutzen, die bei deinem TablePro-Konto angemeldet sind oder, in Versionen der Mac-App vor den TablePro-Konten, mit ihrem Lizenzschlüssel aktiviert wurden, bis zur Anzahl und für den Zeitraum deines Tarifs. Die Bezahlfunktionen gibt es nur in der Mac-App, aber ein Computer, der in TablePro für Linux bei deinem Konto angemeldet ist, zählt zu dieser Anzahl: -- Eine **Pro**-Lizenz gilt für eine Person auf bis zu {deviceLimit} Macs. -- Eine **Team**-Lizenz wird pro Arbeitsplatz berechnet, mit mindestens {teamMinSeats} Arbeitsplätzen. Jeder Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Macs. Inhaber und Admins des Teams laden Teammitglieder ein, die über einen per E-Mail gesendeten Einladungslink beitreten. +- Eine **Pro**-Lizenz gilt für eine Person auf bis zu {deviceLimit} Computern, Mac oder Linux. +- Eine **Team**-Lizenz wird pro Arbeitsplatz berechnet, mit mindestens {teamMinSeats} Arbeitsplätzen. Jeder Arbeitsplatz gilt für eine Person auf bis zu {deviceLimit} Computern, Mac oder Linux. Inhaber und Admins des Teams laden Teammitglieder ein, die über einen per E-Mail gesendeten Einladungslink beitreten. -Das Limit von {deviceLimit} Macs gilt pro Konto, über alle Lizenzen hinweg, die es nutzt. Ohne unsere schriftliche Erlaubnis darfst du dein Konto oder einen Lizenzschlüssel nicht über die von deinem Tarif abgedeckten Personen und Macs hinaus teilen und keine Lizenz und keinen Lizenzschlüssel unterlizenzieren, verkaufen, vermieten oder anderweitig übertragen. +Das Limit von {deviceLimit} Computern gilt pro Konto, über alle Lizenzen hinweg, die es nutzt. Ohne unsere schriftliche Erlaubnis darfst du dein Konto oder einen Lizenzschlüssel nicht über die von deinem Tarif abgedeckten Personen und Computer hinaus teilen und keine Lizenz und keinen Lizenzschlüssel unterlizenzieren, verkaufen, vermieten oder anderweitig übertragen. Die Mac-App erneuert deinen Tarif einmal täglich bei unserem Server. Ist der Server nicht erreichbar, funktionieren die Bezahlfunktionen noch bis zu {offlineDays} Tage nach der letzten Erneuerung oder, auf einem Mac mit einer Offline-Datei aus dem Kontoportal, bis die Datei abläuft. Versionen vor den TablePro-Konten prüfen stattdessen alle {revalidateDays} Tage einen Lizenzschlüssel und behalten die Bezahlfunktionen {graceDays} Tage nach der letzten erfolgreichen Prüfung. Wenn ein monatlicher oder jährlicher Tarif endet, stehen seine Funktionen nicht mehr bereit; der Rest der Mac-App funktioniert weiter. diff --git a/resources/data/legal/en/terms.md b/resources/data/legal/en/terms.md index 6d0129f1..31f7cbcb 100644 --- a/resources/data/legal/en/terms.md +++ b/resources/data/legal/en/terms.md @@ -1,17 +1,17 @@ --- title: Terms of service description: The terms for TablePro's website, account portal, license server and Team Library, and for buying a Pro or Team license. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -These terms govern the website at tablepro.app, the account portal, our license server, the Team Library, and the paid Licenses and License Keys described below. By using them, or by buying or activating a License, you agree to these terms. TablePro for Mac and TablePro for iPhone and iPad are licensed under the AGPLv3 alone: you do not need to accept these terms to download, install or run them. +These terms govern the website at tablepro.app, the account portal, our license server, the Team Library, and the paid Licenses and License Keys described below. By using them, or by buying or activating a License, you agree to these terms. TablePro for Mac, TablePro for iPhone and iPad, and TablePro for Linux are licensed under the AGPLv3 alone: you do not need to accept these terms to download, install or run them. ## Definitions {#definitions} - **"TablePro", "we", "us" and "our"** mean {publisherName}, an individual developer based in {publisherCity}, {publisherCountry}, who publishes TablePro. -- **"Application"** means TablePro for Mac and TablePro for iPhone and iPad, including their updates and plugins. +- **"Application"** means TablePro for Mac, TablePro for iPhone and iPad, and TablePro for Linux, including their updates and plugins. - **"Website"** means tablepro.app, docs.tablepro.app and the other domains we operate. -- **"Services"** means the Website, the account portal, and the server the Mac app contacts for license checks and the Team Library. +- **"Services"** means the Website, the account portal, and the server the Mac and Linux apps contact for license checks and the Team Library. - **"License"** means a paid Pro or Team plan, and **"License Key"** the credential that versions of the Mac app before TablePro accounts use to activate a License. - **"You"** means the person or organization using the Services or holding a License. @@ -21,7 +21,7 @@ The Application's source code, including the code of the paid features, is publi The AGPL places no conditions on running TablePro, in a company of any size. Its conditions apply when you give copies to others, modified or not, and when you modify TablePro and let other people use your modified version over a network. Nothing in these terms limits the rights the AGPLv3 gives you. -The Mac app is free to download and use without registering. A License adds optional features to the Mac app. The iPhone and iPad app is free, with no in-app purchases. +The Mac and Linux apps are free to download and use without registering. A License adds optional features to the Mac app. The iPhone and iPad app is free, with no in-app purchases. ## Trademarks {#trademarks} @@ -37,12 +37,12 @@ Refunds are described in the [refund policy](/refund-policy). ## Using a license {#license} -A License gives you a non-exclusive, non-transferable right to use the paid features of the Mac app on the Macs signed in to your TablePro account or, in versions before TablePro accounts, activated with its License Key, up to the number, and for the period, of your plan: +A License gives you a non-exclusive, non-transferable right to use the paid features of the Mac app on the computers signed in to your TablePro account or, in versions of the Mac app before TablePro accounts, activated with its License Key, up to the number, and for the period, of your plan. The paid features are in the Mac app only, but a computer signed in to your account in TablePro for Linux counts toward that number: -- A **Pro** License is for one person, on up to {deviceLimit} Macs. -- A **Team** License is priced per seat, with at least {teamMinSeats} seats. Each seat is for one person, on up to {deviceLimit} Macs. The team's owner and admins invite its members, who join from an emailed invitation link. +- A **Pro** License is for one person, on up to {deviceLimit} computers, Mac or Linux. +- A **Team** License is priced per seat, with at least {teamMinSeats} seats. Each seat is for one person, on up to {deviceLimit} computers, Mac or Linux. The team's owner and admins invite its members, who join from an emailed invitation link. -The limit of {deviceLimit} Macs applies per account, across all the Licenses it uses. You may not share your account or a License Key beyond the people and Macs your plan covers, or sublicense, sell, rent or otherwise transfer a License or License Key, without our written permission. +The limit of {deviceLimit} computers applies per account, across all the Licenses it uses. You may not share your account or a License Key beyond the people and computers your plan covers, or sublicense, sell, rent or otherwise transfer a License or License Key, without our written permission. The Mac app renews your plan with our server once a day. If our server cannot be reached, the paid features keep working for up to {offlineDays} days after the last renewal, or, on a Mac that uses an offline file from the account portal, until the file expires. Versions before TablePro accounts check a License Key every {revalidateDays} days instead, and keep the paid features for {graceDays} days after the last successful check. When a monthly or yearly plan ends, its features stop working and the rest of the Mac app keeps working. diff --git a/resources/data/legal/es/terms.md b/resources/data/legal/es/terms.md index 69b556b0..7e833f72 100644 --- a/resources/data/legal/es/terms.md +++ b/resources/data/legal/es/terms.md @@ -1,17 +1,17 @@ --- title: Condiciones del servicio description: Condiciones del sitio web, el portal de cuentas, el servidor de licencias y Team Library de TablePro, y de la compra de una licencia Pro o Team. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -Estas condiciones rigen el sitio web tablepro.app, el portal de cuentas, nuestro servidor de licencias, Team Library y las Licencias y Claves de licencia de pago descritas a continuación. Al usarlos, o al comprar o activar una Licencia, aceptas estas condiciones. TablePro para Mac y TablePro para iPhone y iPad se licencian solo bajo la AGPLv3: no necesitas aceptar estas condiciones para descargarlas, instalarlas o ejecutarlas. +Estas condiciones rigen el sitio web tablepro.app, el portal de cuentas, nuestro servidor de licencias, Team Library y las Licencias y Claves de licencia de pago descritas a continuación. Al usarlos, o al comprar o activar una Licencia, aceptas estas condiciones. TablePro para Mac, TablePro para iPhone y iPad, y TablePro para Linux se licencian solo bajo la AGPLv3: no necesitas aceptar estas condiciones para descargarlas, instalarlas o ejecutarlas. ## Definiciones {#definitions} - **«TablePro», «nosotros» y «nuestro»** se refieren a {publisherName}, un desarrollador independiente en {publisherCity}, {publisherCountry}, que publica TablePro. -- **«Aplicación»** se refiere a TablePro para Mac y TablePro para iPhone y iPad, incluidas sus actualizaciones y plugins. +- **«Aplicación»** se refiere a TablePro para Mac, TablePro para iPhone y iPad, y TablePro para Linux, incluidas sus actualizaciones y plugins. - **«Sitio web»** se refiere a tablepro.app, docs.tablepro.app y los demás dominios que operamos. -- **«Servicios»** se refiere al Sitio web, el portal de cuentas y el servidor con el que se comunica la app para Mac para comprobar licencias y para Team Library. +- **«Servicios»** se refiere al Sitio web, el portal de cuentas y el servidor con el que se comunican las apps para Mac y para Linux para comprobar licencias y para Team Library. - **«Licencia»** se refiere a un plan de pago Pro o Team y **«Clave de licencia»**, a la credencial que las versiones de la app para Mac anteriores a las cuentas de TablePro usan para activar una Licencia. - **«Tú»** se refiere a la persona u organización que usa los Servicios o es titular de una Licencia. @@ -21,7 +21,7 @@ El código fuente de la Aplicación, incluido el código de las funciones de pag La AGPL no impone condiciones para ejecutar TablePro en una empresa de cualquier tamaño. Sus condiciones se aplican al entregar copias a otros, modificadas o no, y al modificar TablePro y permitir que otras personas usen esa versión modificada a través de una red. Nada de estas condiciones limita los derechos que te otorga la AGPLv3. -La app para Mac se puede descargar y usar gratis sin registrarse. Una Licencia añade funciones opcionales a la app para Mac. La app para iPhone y iPad es gratis, sin compras dentro de la app. +Las apps para Mac y para Linux se pueden descargar y usar gratis sin registrarse. Una Licencia añade funciones opcionales a la app para Mac. La app para iPhone y iPad es gratis, sin compras dentro de la app. ## Marcas comerciales {#trademarks} @@ -37,12 +37,12 @@ Los reembolsos se describen en la [política de reembolso](/es/refund-policy). ## Usar una licencia {#license} -Una Licencia te concede un derecho no exclusivo e intransferible a usar las funciones de pago de la app para Mac en los Mac con sesión iniciada en tu cuenta de TablePro o, en las versiones anteriores a las cuentas de TablePro, activados con su Clave de licencia, hasta el número y durante el periodo que contempla tu plan: +Una Licencia te concede un derecho no exclusivo e intransferible a usar las funciones de pago de la app para Mac en los ordenadores con sesión iniciada en tu cuenta de TablePro o, en las versiones de la app para Mac anteriores a las cuentas de TablePro, activados con su Clave de licencia, hasta el número y durante el periodo que contempla tu plan. Las funciones de pago solo están en la app para Mac, pero un ordenador con sesión iniciada en tu cuenta desde TablePro para Linux cuenta para ese número: -- Una Licencia **Pro** es para una persona, en hasta {deviceLimit} Mac. -- Una Licencia **Team** tiene un precio por puesto, con un mínimo de {teamMinSeats} puestos. Cada puesto es para una persona, en hasta {deviceLimit} Mac. El propietario y los administradores del equipo invitan a sus miembros, que se unen mediante un enlace de invitación enviado por correo. +- Una Licencia **Pro** es para una persona, en hasta {deviceLimit} ordenadores, Mac o Linux. +- Una Licencia **Team** tiene un precio por puesto, con un mínimo de {teamMinSeats} puestos. Cada puesto es para una persona, en hasta {deviceLimit} ordenadores, Mac o Linux. El propietario y los administradores del equipo invitan a sus miembros, que se unen mediante un enlace de invitación enviado por correo. -El límite de {deviceLimit} Mac se aplica por cuenta, sumando todas las Licencias que usa. No puedes compartir tu cuenta ni una Clave de licencia fuera de las personas y los Mac que cubre tu plan, ni sublicenciar, vender, alquilar o transferir de otro modo una Licencia o Clave de licencia sin nuestro permiso por escrito. +El límite de {deviceLimit} ordenadores se aplica por cuenta, sumando todas las Licencias que usa. No puedes compartir tu cuenta ni una Clave de licencia fuera de las personas y los ordenadores que cubre tu plan, ni sublicenciar, vender, alquilar o transferir de otro modo una Licencia o Clave de licencia sin nuestro permiso por escrito. La app para Mac renueva tu plan con nuestro servidor una vez al día. Si no se puede acceder al servidor, las funciones de pago siguen funcionando hasta {offlineDays} días desde la última renovación o, en un Mac que usa un archivo sin conexión del portal de la cuenta, hasta que caduca el archivo. Las versiones anteriores a las cuentas de TablePro comprueban una Clave de licencia cada {revalidateDays} días y mantienen las funciones de pago durante {graceDays} días desde la última comprobación correcta. Cuando termina un plan mensual o anual, sus funciones dejan de funcionar y el resto de la app para Mac sigue funcionando. diff --git a/resources/data/legal/fr/terms.md b/resources/data/legal/fr/terms.md index 81e164b6..31c766c3 100644 --- a/resources/data/legal/fr/terms.md +++ b/resources/data/legal/fr/terms.md @@ -1,17 +1,17 @@ --- title: Conditions d’utilisation description: Conditions du site web, du portail de comptes, du serveur de licences et de Team Library de TablePro, et d’achat d’une licence Pro ou Team. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -Ces conditions régissent le site web tablepro.app, le portail de comptes, notre serveur de licences, Team Library ainsi que les Licences et Clés de licence payantes décrites ci-dessous. En les utilisant, ou en achetant ou activant une Licence, vous acceptez ces conditions. TablePro pour Mac et TablePro pour iPhone et iPad sont distribués sous la seule licence AGPLv3 : vous n’avez pas besoin d’accepter ces conditions pour les télécharger, les installer ou les exécuter. +Ces conditions régissent le site web tablepro.app, le portail de comptes, notre serveur de licences, Team Library ainsi que les Licences et Clés de licence payantes décrites ci-dessous. En les utilisant, ou en achetant ou activant une Licence, vous acceptez ces conditions. TablePro pour Mac, TablePro pour iPhone et iPad, et TablePro pour Linux sont distribués sous la seule licence AGPLv3 : vous n’avez pas besoin d’accepter ces conditions pour les télécharger, les installer ou les exécuter. ## Définitions {#definitions} - **« TablePro », « nous » et « notre »** désignent {publisherName}, développeur indépendant installé à {publisherCity}, au {publisherCountry}, qui publie TablePro. -- **« Application »** désigne TablePro pour Mac et TablePro pour iPhone et iPad, y compris leurs mises à jour et plugins. +- **« Application »** désigne TablePro pour Mac, TablePro pour iPhone et iPad, et TablePro pour Linux, y compris leurs mises à jour et plugins. - **« Site web »** désigne tablepro.app, docs.tablepro.app et les autres domaines que nous exploitons. -- **« Services »** désigne le Site web, le portail de comptes et le serveur que l’application Mac contacte pour les vérifications de licence et Team Library. +- **« Services »** désigne le Site web, le portail de comptes et le serveur que les applications Mac et Linux contactent pour les vérifications de licence et Team Library. - **« Licence »** désigne une offre payante Pro ou Team, et **« Clé de licence »** l’identifiant avec lequel les versions de l’application Mac antérieures aux comptes TablePro activent une Licence. - **« Vous »** désigne la personne ou l’organisation utilisant les Services ou titulaire d’une Licence. @@ -21,7 +21,7 @@ Le code source de l’Application, y compris le code des fonctionnalités payant L’AGPL n’impose aucune condition pour exécuter TablePro dans une entreprise de toute taille. Ses conditions s’appliquent lorsque vous fournissez des copies à d’autres personnes, modifiées ou non, et lorsque vous modifiez TablePro et permettez à d’autres d’utiliser votre version modifiée via un réseau. Aucune disposition de ces conditions ne limite les droits que l’AGPLv3 vous accorde. -L’application Mac se télécharge et s’utilise gratuitement, sans inscription. Une Licence ajoute des fonctionnalités facultatives à l’application Mac. L’application iPhone et iPad est gratuite, sans achats intégrés. +Les applications Mac et Linux se téléchargent et s’utilisent gratuitement, sans inscription. Une Licence ajoute des fonctionnalités facultatives à l’application Mac. L’application iPhone et iPad est gratuite, sans achats intégrés. ## Marques {#trademarks} @@ -37,12 +37,12 @@ Les remboursements sont décrits dans la [politique de remboursement](/fr/refund ## Utiliser une licence {#license} -Une Licence vous accorde un droit non exclusif et non transférable d’utiliser les fonctionnalités payantes de l’application Mac sur les Mac connectés à votre compte TablePro ou, dans les versions antérieures aux comptes TablePro, activés avec sa Clé de licence, dans la limite du nombre et de la période prévus par votre offre : +Une Licence vous accorde un droit non exclusif et non transférable d’utiliser les fonctionnalités payantes de l’application Mac sur les ordinateurs connectés à votre compte TablePro ou, dans les versions de l’application Mac antérieures aux comptes TablePro, activés avec sa Clé de licence, dans la limite du nombre et de la période prévus par votre offre. Les fonctionnalités payantes n’existent que dans l’application Mac, mais un ordinateur connecté à votre compte dans TablePro pour Linux compte dans ce nombre : -- Une Licence **Pro** est destinée à une personne, sur un maximum de {deviceLimit} Mac. -- Une Licence **Team** est facturée par poste, avec au minimum {teamMinSeats} postes. Chaque poste est destiné à une personne, sur un maximum de {deviceLimit} Mac. Le propriétaire et les administrateurs de l’équipe invitent ses membres, qui la rejoignent via un lien d’invitation reçu par e-mail. +- Une Licence **Pro** est destinée à une personne, sur un maximum de {deviceLimit} ordinateurs, Mac ou Linux. +- Une Licence **Team** est facturée par poste, avec au minimum {teamMinSeats} postes. Chaque poste est destiné à une personne, sur un maximum de {deviceLimit} ordinateurs, Mac ou Linux. Le propriétaire et les administrateurs de l’équipe invitent ses membres, qui la rejoignent via un lien d’invitation reçu par e-mail. -La limite de {deviceLimit} Mac s’applique par compte, pour l’ensemble des Licences qu’il utilise. Vous ne pouvez pas partager votre compte ou une Clé de licence au-delà des personnes et des Mac couverts par votre offre, ni sous-licencier, vendre, louer ou transférer autrement une Licence ou une Clé de licence sans notre autorisation écrite. +La limite de {deviceLimit} ordinateurs s’applique par compte, pour l’ensemble des Licences qu’il utilise. Vous ne pouvez pas partager votre compte ou une Clé de licence au-delà des personnes et des ordinateurs couverts par votre offre, ni sous-licencier, vendre, louer ou transférer autrement une Licence ou une Clé de licence sans notre autorisation écrite. L’application Mac renouvelle votre offre auprès de notre serveur une fois par jour. Si le serveur est inaccessible, les fonctionnalités payantes continuent de fonctionner jusqu’à {offlineDays} jours après le dernier renouvellement ou, sur un Mac qui utilise un fichier hors ligne du portail du compte, jusqu’à l’expiration de ce fichier. Les versions antérieures aux comptes TablePro vérifient plutôt une Clé de licence tous les {revalidateDays} jours et gardent les fonctionnalités payantes pendant {graceDays} jours après la dernière vérification réussie. Lorsqu’une offre mensuelle ou annuelle prend fin, ses fonctionnalités s’arrêtent et le reste de l’application Mac continue de fonctionner. diff --git a/resources/data/legal/id/terms.md b/resources/data/legal/id/terms.md index 3502100f..dbaa2e02 100644 --- a/resources/data/legal/id/terms.md +++ b/resources/data/legal/id/terms.md @@ -1,17 +1,17 @@ --- title: Ketentuan layanan description: Ketentuan untuk situs web, portal akun, server lisensi, dan Team Library TablePro, serta pembelian lisensi Pro atau Team. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -Ketentuan ini mengatur situs web tablepro.app, portal akun, server lisensi kami, Team Library, serta Lisensi dan Kunci Lisensi berbayar yang dijelaskan di bawah. Dengan memakainya, atau dengan membeli atau mengaktifkan Lisensi, Anda menyetujui ketentuan ini. TablePro untuk Mac serta TablePro untuk iPhone dan iPad dilisensikan hanya di bawah AGPLv3: Anda tidak perlu menyetujui ketentuan ini untuk mengunduh, menginstal, atau menjalankannya. +Ketentuan ini mengatur situs web tablepro.app, portal akun, server lisensi kami, Team Library, serta Lisensi dan Kunci Lisensi berbayar yang dijelaskan di bawah. Dengan memakainya, atau dengan membeli atau mengaktifkan Lisensi, Anda menyetujui ketentuan ini. TablePro untuk Mac, TablePro untuk iPhone dan iPad, serta TablePro untuk Linux dilisensikan hanya di bawah AGPLv3: Anda tidak perlu menyetujui ketentuan ini untuk mengunduh, menginstal, atau menjalankannya. ## Definisi {#definitions} - **"TablePro", "kami", dan "milik kami"** berarti {publisherName}, pengembang perorangan di {publisherCity}, {publisherCountry}, yang menerbitkan TablePro. -- **"Aplikasi"** berarti TablePro untuk Mac dan TablePro untuk iPhone dan iPad, termasuk pembaruan dan plugin. +- **"Aplikasi"** berarti TablePro untuk Mac, TablePro untuk iPhone dan iPad, serta TablePro untuk Linux, termasuk pembaruan dan plugin. - **"Situs Web"** berarti tablepro.app, docs.tablepro.app, dan domain lain yang kami operasikan. -- **"Layanan"** berarti Situs Web, portal akun, dan server yang dihubungi aplikasi Mac untuk pemeriksaan lisensi dan Team Library. +- **"Layanan"** berarti Situs Web, portal akun, dan server yang dihubungi aplikasi Mac dan aplikasi Linux untuk pemeriksaan lisensi dan Team Library. - **"Lisensi"** berarti paket Pro atau Team berbayar, dan **"Kunci Lisensi"** adalah kredensial yang dipakai versi aplikasi Mac sebelum akun TablePro untuk mengaktifkan Lisensi. - **"Anda"** berarti orang atau organisasi yang memakai Layanan atau memegang Lisensi. @@ -21,7 +21,7 @@ Kode sumber Aplikasi, termasuk kode fitur berbayar, diterbitkan di bawah [GNU Af AGPL tidak memberikan syarat untuk menjalankan TablePro di perusahaan sebesar apa pun. Syaratnya berlaku saat Anda memberikan salinan kepada pihak lain, dimodifikasi atau tidak, serta saat Anda memodifikasi TablePro dan mengizinkan pihak lain memakai versi modifikasi melalui jaringan. Tidak ada dalam ketentuan ini yang membatasi hak yang diberikan AGPLv3 kepada Anda. -Aplikasi Mac gratis diunduh dan digunakan tanpa pendaftaran. Lisensi menambahkan fitur opsional ke aplikasi Mac. Aplikasi iPhone dan iPad gratis, tanpa pembelian dalam aplikasi. +Aplikasi Mac dan aplikasi Linux gratis diunduh dan digunakan tanpa pendaftaran. Lisensi menambahkan fitur opsional ke aplikasi Mac. Aplikasi iPhone dan iPad gratis, tanpa pembelian dalam aplikasi. ## Merek dagang {#trademarks} @@ -37,12 +37,12 @@ Pengembalian dana dijelaskan dalam [kebijakan pengembalian dana](/id/refund-poli ## Penggunaan lisensi {#license} -Lisensi memberikan hak non-eksklusif dan tidak dapat dipindahtangankan untuk menggunakan fitur berbayar aplikasi Mac pada Mac yang masuk ke akun TablePro Anda atau, pada versi sebelum akun TablePro, yang diaktifkan dengan Kunci Lisensinya, hingga jumlah dan selama periode paket Anda: +Lisensi memberikan hak non-eksklusif dan tidak dapat dipindahtangankan untuk menggunakan fitur berbayar aplikasi Mac pada komputer yang masuk ke akun TablePro Anda atau, pada versi aplikasi Mac sebelum akun TablePro, yang diaktifkan dengan Kunci Lisensinya, hingga jumlah dan selama periode paket Anda. Fitur berbayar hanya ada di aplikasi Mac, tetapi komputer yang masuk ke akun Anda di TablePro untuk Linux tetap dihitung dalam jumlah tersebut: -- Lisensi **Pro** untuk satu orang, di maksimal {deviceLimit} Mac. -- Lisensi **Team** dihargai per seat, dengan setidaknya {teamMinSeats} seat. Setiap seat untuk satu orang, di maksimal {deviceLimit} Mac. Pemilik dan admin tim mengundang anggota tim, yang bergabung melalui tautan undangan yang dikirim lewat email. +- Lisensi **Pro** untuk satu orang, di maksimal {deviceLimit} komputer, Mac atau Linux. +- Lisensi **Team** dihargai per seat, dengan setidaknya {teamMinSeats} seat. Setiap seat untuk satu orang, di maksimal {deviceLimit} komputer, Mac atau Linux. Pemilik dan admin tim mengundang anggota tim, yang bergabung melalui tautan undangan yang dikirim lewat email. -Batas {deviceLimit} Mac berlaku per akun, untuk semua Lisensi yang dipakainya. Anda tidak boleh membagikan akun Anda atau Kunci Lisensi di luar orang dan Mac yang dicakup paket, atau mensublisensikan, menjual, menyewakan, maupun memindahtangankan Lisensi atau Kunci Lisensi tanpa izin tertulis kami. +Batas {deviceLimit} komputer berlaku per akun, untuk semua Lisensi yang dipakainya. Anda tidak boleh membagikan akun Anda atau Kunci Lisensi di luar orang dan komputer yang dicakup paket, atau mensublisensikan, menjual, menyewakan, maupun memindahtangankan Lisensi atau Kunci Lisensi tanpa izin tertulis kami. Aplikasi Mac memperbarui paket Anda ke server kami sekali sehari. Jika server tidak dapat diakses, fitur berbayar tetap berfungsi hingga {offlineDays} hari setelah pembaruan terakhir atau, di Mac yang memakai file offline dari portal akun, hingga file itu kedaluwarsa. Versi sebelum akun TablePro memeriksa Kunci Lisensi setiap {revalidateDays} hari dan mempertahankan fitur berbayar selama {graceDays} hari setelah pemeriksaan terakhir yang berhasil. Saat paket bulanan atau tahunan berakhir, fiturnya berhenti berfungsi dan aplikasi Mac lainnya tetap berjalan. diff --git a/resources/data/legal/it/terms.md b/resources/data/legal/it/terms.md index 68057b5a..0ab93a75 100644 --- a/resources/data/legal/it/terms.md +++ b/resources/data/legal/it/terms.md @@ -1,17 +1,17 @@ --- title: Termini di servizio description: I termini per sito, portale dell’account, server delle licenze e Team Library di TablePro e per l’acquisto di una licenza Pro o Team. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -Questi termini regolano il sito tablepro.app, il portale dell’account, il nostro server delle licenze, la Team Library e le Licenze e Chiavi di licenza a pagamento descritte sotto. Usandoli, oppure acquistando o attivando una Licenza, accetti questi termini. TablePro per Mac e TablePro per iPhone e iPad sono concessi in licenza solo con la AGPLv3: non devi accettare questi termini per scaricarli, installarli o eseguirli. +Questi termini regolano il sito tablepro.app, il portale dell’account, il nostro server delle licenze, la Team Library e le Licenze e Chiavi di licenza a pagamento descritte sotto. Usandoli, oppure acquistando o attivando una Licenza, accetti questi termini. TablePro per Mac, TablePro per iPhone e iPad e TablePro per Linux sono concessi in licenza solo con la AGPLv3: non devi accettare questi termini per scaricarli, installarli o eseguirli. ## Definizioni {#definitions} - **"TablePro", "noi", "ci" e "nostro"** indicano {publisherName}, sviluppatore indipendente a {publisherCity}, in {publisherCountry}, che pubblica TablePro. -- **"Applicazione"** indica TablePro per Mac e TablePro per iPhone e iPad, inclusi aggiornamenti e plugin. +- **"Applicazione"** indica TablePro per Mac, TablePro per iPhone e iPad e TablePro per Linux, inclusi aggiornamenti e plugin. - **"Sito"** indica tablepro.app, docs.tablepro.app e gli altri domini che gestiamo. -- **"Servizi"** indica il Sito, il portale dell’account e il server che l’app per Mac contatta per le verifiche delle licenze e la Team Library. +- **"Servizi"** indica il Sito, il portale dell’account e il server che le app per Mac e per Linux contattano per le verifiche delle licenze e la Team Library. - **"Licenza"** indica un piano Pro o Team a pagamento e **"Chiave di licenza"** la credenziale con cui le versioni dell’app per Mac precedenti agli account TablePro attivano una Licenza. - **"Tu"** indica la persona o l’organizzazione che usa i Servizi o è titolare di una Licenza. @@ -21,7 +21,7 @@ Il codice sorgente dell’Applicazione, incluso il codice delle funzionalità a La AGPL non impone condizioni sull’esecuzione di TablePro in un’azienda di qualsiasi dimensione. Le condizioni si applicano quando fornisci copie ad altri, modificate o meno, e quando modifichi TablePro e consenti ad altri di usare la versione modificata tramite rete. Nulla in questi termini limita i diritti concessi dalla AGPLv3. -L’app per Mac si scarica e si usa gratuitamente senza registrazione. Una Licenza aggiunge funzionalità opzionali all’app per Mac. L’app per iPhone e iPad è gratuita, senza acquisti in-app. +Le app per Mac e per Linux si scaricano e si usano gratuitamente senza registrazione. Una Licenza aggiunge funzionalità opzionali all’app per Mac. L’app per iPhone e iPad è gratuita, senza acquisti in-app. ## Marchi {#trademarks} @@ -37,12 +37,12 @@ I rimborsi sono descritti nella [politica di rimborso](/it/refund-policy). ## Uso di una licenza {#license} -Una Licenza concede un diritto non esclusivo e non trasferibile di usare le funzionalità a pagamento dell’app per Mac sui Mac collegati al tuo account TablePro o, nelle versioni precedenti agli account TablePro, attivati con la sua Chiave di licenza, entro il numero e per il periodo previsti dal piano: +Una Licenza concede un diritto non esclusivo e non trasferibile di usare le funzionalità a pagamento dell’app per Mac sui computer collegati al tuo account TablePro o, nelle versioni dell’app per Mac precedenti agli account TablePro, attivati con la sua Chiave di licenza, entro il numero e per il periodo previsti dal piano. Le funzionalità a pagamento esistono solo nell’app per Mac, ma un computer collegato al tuo account in TablePro per Linux conta in quel numero: -- Una Licenza **Pro** è per una persona, su un massimo di {deviceLimit} Mac. -- Una Licenza **Team** ha un prezzo per posto, con almeno {teamMinSeats} posti. Ogni posto è per una persona, su un massimo di {deviceLimit} Mac. Il proprietario e gli amministratori del team invitano i membri, che partecipano tramite un link di invito ricevuto via email. +- Una Licenza **Pro** è per una persona, su un massimo di {deviceLimit} computer, Mac o Linux. +- Una Licenza **Team** ha un prezzo per posto, con almeno {teamMinSeats} posti. Ogni posto è per una persona, su un massimo di {deviceLimit} computer, Mac o Linux. Il proprietario e gli amministratori del team invitano i membri, che partecipano tramite un link di invito ricevuto via email. -Il limite di {deviceLimit} Mac vale per account, sommando tutte le Licenze che usa. Non puoi condividere il tuo account o una Chiave di licenza oltre le persone e i Mac coperti dal piano, né concedere in sublicenza, vendere, noleggiare o trasferire altrimenti una Licenza o una Chiave di licenza senza la nostra autorizzazione scritta. +Il limite di {deviceLimit} computer vale per account, sommando tutte le Licenze che usa. Non puoi condividere il tuo account o una Chiave di licenza oltre le persone e i computer coperti dal piano, né concedere in sublicenza, vendere, noleggiare o trasferire altrimenti una Licenza o una Chiave di licenza senza la nostra autorizzazione scritta. L’app per Mac rinnova il piano con il nostro server una volta al giorno. Se il server non è raggiungibile, le funzionalità a pagamento continuano a funzionare fino a {offlineDays} giorni dall’ultimo rinnovo o, su un Mac che usa un file offline del portale dell’account, finché il file non scade. Le versioni precedenti agli account TablePro verificano invece una Chiave di licenza ogni {revalidateDays} giorni e mantengono le funzionalità a pagamento per {graceDays} giorni dall’ultima verifica riuscita. Quando termina un piano mensile o annuale, le sue funzionalità smettono di funzionare e il resto dell’app per Mac continua a funzionare. diff --git a/resources/data/legal/ja/terms.md b/resources/data/legal/ja/terms.md index e4640e94..3be15edb 100644 --- a/resources/data/legal/ja/terms.md +++ b/resources/data/legal/ja/terms.md @@ -1,17 +1,17 @@ --- title: 利用規約 description: TablePro のウェブサイト、アカウントポータル、ライセンスサーバー、Team Library、および Pro または Team ライセンスの購入に関する規約です。 -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -この規約は、tablepro.app のウェブサイト、アカウントポータル、運営者のライセンスサーバー、Team Library、および以下に記載する有料のライセンスとライセンスキーに適用されます。これらを利用するか、ライセンスを購入または有効化することで、この規約に同意したものとします。Mac 版 TablePro と iPhone・iPad 版 TablePro は AGPLv3 のみでライセンスされており、ダウンロード、インストール、実行にこの規約への同意は必要ありません。 +この規約は、tablepro.app のウェブサイト、アカウントポータル、運営者のライセンスサーバー、Team Library、および以下に記載する有料のライセンスとライセンスキーに適用されます。これらを利用するか、ライセンスを購入または有効化することで、この規約に同意したものとします。Mac 版 TablePro、iPhone・iPad 版 TablePro、Linux 版 TablePro は AGPLv3 のみでライセンスされており、ダウンロード、インストール、実行にこの規約への同意は必要ありません。 ## 定義 {#definitions} - 「**TablePro**」「**運営者**」は、{publisherCountry}・{publisherCity}を拠点に TablePro を公開している個人開発者 {publisherName} を指します。 -- 「**アプリケーション**」は、アップデートとプラグインを含む、Mac 版 TablePro および iPhone・iPad 版 TablePro を指します。 +- 「**アプリケーション**」は、アップデートとプラグインを含む、Mac 版 TablePro、iPhone・iPad 版 TablePro、および Linux 版 TablePro を指します。 - 「**ウェブサイト**」は、tablepro.app、docs.tablepro.app、および運営者が管理するその他のドメインを指します。 -- 「**サービス**」は、ウェブサイト、アカウントポータル、およびライセンスの確認と Team Library のために Mac アプリが通信するサーバーを指します。 +- 「**サービス**」は、ウェブサイト、アカウントポータル、およびライセンスの確認と Team Library のために Mac アプリと Linux アプリが通信するサーバーを指します。 - 「**ライセンス**」は有料の Pro または Team プランを、「**ライセンスキー**」は TablePro アカウントに対応する前のバージョンの Mac アプリがライセンスを有効化するための認証情報を指します。 - 「**お客様**」は、サービスを利用する、またはライセンスを保有する個人または組織を指します。 @@ -21,7 +21,7 @@ updatedAt: "2026-11-04" AGPL は、企業の規模に関係なく、TablePro の実行に条件を課しません。条件が適用されるのは、変更の有無にかかわらず他者にコピーを提供する場合、および TablePro を変更し、その変更版をネットワーク経由で他者に利用させる場合です。この規約のいかなる内容も、AGPLv3 がお客様に認める権利を制限しません。 -Mac アプリは登録なしで無料でダウンロードして使えます。ライセンスにより Mac アプリに任意の機能が追加されます。iPhone・iPad アプリは無料で、アプリ内課金もありません。 +Mac アプリと Linux アプリは登録なしで無料でダウンロードして使えます。ライセンスにより Mac アプリに任意の機能が追加されます。iPhone・iPad アプリは無料で、アプリ内課金もありません。 ## 商標 {#trademarks} @@ -37,12 +37,12 @@ TablePro™、TablePro のロゴ、TablePro のアプリアイコンは {publish ## ライセンスの利用 {#license} -ライセンスは、お客様の TablePro アカウントにサインインした Mac、または TablePro アカウントに対応する前のバージョンではそのライセンスキーで有効化した Mac で、プランで定める台数と期間の範囲内において、Mac アプリの有料機能を使う非独占的かつ譲渡不可能な権利を付与します。 +ライセンスは、お客様の TablePro アカウントにサインインしたコンピューター、または TablePro アカウントに対応する前のバージョンの Mac アプリではそのライセンスキーで有効化した Mac で、プランで定める台数と期間の範囲内において、Mac アプリの有料機能を使う非独占的かつ譲渡不可能な権利を付与します。有料機能は Mac アプリにのみありますが、Linux 版 TablePro でお客様のアカウントにサインインしたコンピューターもこの台数に含まれます。 -- **Pro** ライセンスは 1 人用で、最大 {deviceLimit} 台の Mac で利用できます。 -- **Team** ライセンスはシート単位の料金で、最小 {teamMinSeats} シートです。1 シートは 1 人用で、最大 {deviceLimit} 台の Mac で利用できます。チームのオーナーと管理者がメンバーを招待し、メンバーはメールで届く招待リンクから参加します。 +- **Pro** ライセンスは 1 人用で、最大 {deviceLimit} 台のコンピューター(Mac または Linux)で利用できます。 +- **Team** ライセンスはシート単位の料金で、最小 {teamMinSeats} シートです。1 シートは 1 人用で、最大 {deviceLimit} 台のコンピューター(Mac または Linux)で利用できます。チームのオーナーと管理者がメンバーを招待し、メンバーはメールで届く招待リンクから参加します。 -{deviceLimit} 台の上限は、アカウントが使うすべてのライセンスを合わせてアカウント単位で適用されます。運営者の書面による許可なく、プランの対象者・Mac の範囲を超えてアカウントやライセンスキーを共有したり、ライセンスやライセンスキーをサブライセンス、販売、貸与、その他の方法で譲渡したりすることはできません。 +{deviceLimit} 台の上限は、アカウントが使うすべてのライセンスを合わせてアカウント単位で適用されます。運営者の書面による許可なく、プランの対象者・コンピューターの範囲を超えてアカウントやライセンスキーを共有したり、ライセンスやライセンスキーをサブライセンス、販売、貸与、その他の方法で譲渡したりすることはできません。 Mac アプリは 1 日 1 回、運営者のサーバーでプランを更新します。サーバーに接続できない場合、有料機能は最後の更新から最大 {offlineDays} 日間、またはアカウントポータルのオフラインファイルを使う Mac ではそのファイルの期限まで使えます。TablePro アカウントに対応する前のバージョンは {revalidateDays} 日ごとにライセンスキーを確認し、最後に確認が成功してから {graceDays} 日間は有料機能を使えます。月払いまたは年払いのプランが終了すると、その機能は停止し、Mac アプリのそれ以外の機能は引き続き使えます。 diff --git a/resources/data/legal/ko/terms.md b/resources/data/legal/ko/terms.md index a2b20055..e84d92cd 100644 --- a/resources/data/legal/ko/terms.md +++ b/resources/data/legal/ko/terms.md @@ -1,17 +1,17 @@ --- title: 이용약관 description: TablePro 웹사이트, 계정 포털, 라이선스 서버, Team Library 이용과 Pro 또는 Team 라이선스 구매에 관한 약관입니다. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -이 약관은 tablepro.app 웹사이트, 계정 포털, 운영자의 라이선스 서버, Team Library 및 아래에 설명된 유료 라이선스와 라이선스 키에 적용됩니다. 이를 이용하거나 라이선스를 구매 또는 활성화하면 이 약관에 동의한 것으로 간주됩니다. Mac용 TablePro와 iPhone 및 iPad용 TablePro는 AGPLv3로만 라이선스되며, 다운로드, 설치 또는 실행하는 데 이 약관에 동의할 필요가 없습니다. +이 약관은 tablepro.app 웹사이트, 계정 포털, 운영자의 라이선스 서버, Team Library 및 아래에 설명된 유료 라이선스와 라이선스 키에 적용됩니다. 이를 이용하거나 라이선스를 구매 또는 활성화하면 이 약관에 동의한 것으로 간주됩니다. Mac용 TablePro, iPhone 및 iPad용 TablePro, Linux용 TablePro는 AGPLv3로만 라이선스되며, 다운로드, 설치 또는 실행하는 데 이 약관에 동의할 필요가 없습니다. ## 정의 {#definitions} - "**TablePro**" 및 "**운영자**"는 TablePro를 배포하는 {publisherCountry} {publisherCity}의 개인 개발자 {publisherName}입니다. -- "**애플리케이션**"은 업데이트와 플러그인을 포함한 Mac용 TablePro 및 iPhone과 iPad용 TablePro를 뜻합니다. +- "**애플리케이션**"은 업데이트와 플러그인을 포함한 Mac용 TablePro, iPhone과 iPad용 TablePro 및 Linux용 TablePro를 뜻합니다. - "**웹사이트**"는 tablepro.app, docs.tablepro.app 및 운영자가 관리하는 다른 도메인을 뜻합니다. -- "**서비스**"는 웹사이트, 계정 포털 및 Mac 앱이 라이선스 확인과 Team Library를 위해 통신하는 서버를 뜻합니다. +- "**서비스**"는 웹사이트, 계정 포털 및 Mac 앱과 Linux 앱이 라이선스 확인과 Team Library를 위해 통신하는 서버를 뜻합니다. - "**라이선스**"는 유료 Pro 또는 Team 플랜을 뜻하며, "**라이선스 키**"는 TablePro 계정을 지원하기 전 버전의 Mac 앱이 라이선스를 활성화하는 데 쓰는 인증 정보를 뜻합니다. - "**귀하**"는 서비스를 이용하거나 라이선스를 보유한 개인이나 조직을 뜻합니다. @@ -21,7 +21,7 @@ updatedAt: "2026-11-04" AGPL은 회사 규모와 관계없이 TablePro 실행에 조건을 부과하지 않습니다. 조건은 수정 여부와 관계없이 다른 사람에게 사본을 제공하거나, TablePro를 수정하고 그 수정본을 다른 사람이 네트워크를 통해 사용하게 하는 경우에 적용됩니다. 이 약관의 어떤 내용도 AGPLv3가 귀하에게 부여하는 권리를 제한하지 않습니다. -Mac 앱은 등록 없이 무료로 다운로드하고 사용할 수 있습니다. 라이선스는 Mac 앱에 선택 기능을 추가합니다. iPhone 및 iPad 앱은 무료이며 앱 내 구입이 없습니다. +Mac 앱과 Linux 앱은 등록 없이 무료로 다운로드하고 사용할 수 있습니다. 라이선스는 Mac 앱에 선택 기능을 추가합니다. iPhone 및 iPad 앱은 무료이며 앱 내 구입이 없습니다. ## 상표 {#trademarks} @@ -37,12 +37,12 @@ TablePro™, TablePro 로고 및 TablePro 앱 아이콘은 {publisherName}의 ## 라이선스 사용 {#license} -라이선스는 플랜에서 정한 대수와 기간 내에서 TablePro 계정에 로그인한 Mac 또는 TablePro 계정을 지원하기 전 버전에서 해당 라이선스 키로 활성화한 Mac에서 Mac 앱의 유료 기능을 사용할 수 있는 비독점적이며 양도 불가능한 권리를 부여합니다. +라이선스는 플랜에서 정한 대수와 기간 내에서 TablePro 계정에 로그인한 컴퓨터 또는 TablePro 계정을 지원하기 전 버전의 Mac 앱에서 해당 라이선스 키로 활성화한 Mac에서 Mac 앱의 유료 기능을 사용할 수 있는 비독점적이며 양도 불가능한 권리를 부여합니다. 유료 기능은 Mac 앱에만 있지만, Linux용 TablePro에서 계정에 로그인한 컴퓨터도 이 대수에 포함됩니다. -- **Pro** 라이선스는 한 사람이 최대 {deviceLimit}대의 Mac에서 사용할 수 있습니다. -- **Team** 라이선스는 좌석당 요금이며 최소 {teamMinSeats}좌석입니다. 좌석 하나는 한 사람이 최대 {deviceLimit}대의 Mac에서 사용합니다. 팀 소유자와 관리자가 팀원을 초대하고 팀원은 이메일로 받은 초대 링크로 참여합니다. +- **Pro** 라이선스는 한 사람이 최대 {deviceLimit}대의 컴퓨터(Mac 또는 Linux)에서 사용할 수 있습니다. +- **Team** 라이선스는 좌석당 요금이며 최소 {teamMinSeats}좌석입니다. 좌석 하나는 한 사람이 최대 {deviceLimit}대의 컴퓨터(Mac 또는 Linux)에서 사용합니다. 팀 소유자와 관리자가 팀원을 초대하고 팀원은 이메일로 받은 초대 링크로 참여합니다. -{deviceLimit}대 제한은 계정이 사용하는 모든 라이선스를 합쳐 계정 단위로 적용됩니다. 운영자의 서면 허가 없이 플랜에 포함된 사람과 Mac을 넘어 계정이나 라이선스 키를 공유하거나, 라이선스나 라이선스 키를 재사용 허가, 판매, 대여 또는 다른 방식으로 양도할 수 없습니다. +{deviceLimit}대 제한은 계정이 사용하는 모든 라이선스를 합쳐 계정 단위로 적용됩니다. 운영자의 서면 허가 없이 플랜에 포함된 사람과 컴퓨터를 넘어 계정이나 라이선스 키를 공유하거나, 라이선스나 라이선스 키를 재사용 허가, 판매, 대여 또는 다른 방식으로 양도할 수 없습니다. Mac 앱은 하루에 한 번 운영자의 서버에서 플랜을 갱신합니다. 서버에 연결할 수 없으면 마지막 갱신 후 최대 {offlineDays}일 동안, 계정 포털의 오프라인 파일을 사용하는 Mac에서는 그 파일이 만료될 때까지 유료 기능이 계속 작동합니다. TablePro 계정을 지원하기 전 버전은 대신 {revalidateDays}일마다 라이선스 키를 확인하며 마지막 확인에 성공한 날부터 {graceDays}일 동안 유료 기능이 계속 작동합니다. 월간 또는 연간 플랜이 종료되면 해당 기능은 중지되며 Mac 앱의 나머지 기능은 계속 작동합니다. diff --git a/resources/data/legal/pt-BR/terms.md b/resources/data/legal/pt-BR/terms.md index c267f7ac..35c735b3 100644 --- a/resources/data/legal/pt-BR/terms.md +++ b/resources/data/legal/pt-BR/terms.md @@ -1,17 +1,17 @@ --- title: Termos de serviço description: Os termos do site, do portal da conta, do servidor de licenças e da Team Library do TablePro e da compra de uma licença Pro ou Team. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -Estes termos regem o site tablepro.app, o portal da conta, nosso servidor de licenças, a Team Library e as Licenças e Chaves de Licença pagas descritas abaixo. Ao usá-los, ou ao comprar ou ativar uma Licença, você concorda com estes termos. O TablePro para Mac e o TablePro para iPhone e iPad são licenciados somente sob a AGPLv3: você não precisa aceitar estes termos para baixá-los, instalá-los ou executá-los. +Estes termos regem o site tablepro.app, o portal da conta, nosso servidor de licenças, a Team Library e as Licenças e Chaves de Licença pagas descritas abaixo. Ao usá-los, ou ao comprar ou ativar uma Licença, você concorda com estes termos. O TablePro para Mac, o TablePro para iPhone e iPad e o TablePro para Linux são licenciados somente sob a AGPLv3: você não precisa aceitar estes termos para baixá-los, instalá-los ou executá-los. ## Definições {#definitions} - **"TablePro", "nós", "nos" e "nosso"** significam {publisherName}, um desenvolvedor independente em {publisherCity}, {publisherCountry}, que publica o TablePro. -- **"Aplicativo"** significa TablePro para Mac e TablePro para iPhone e iPad, incluindo atualizações e plugins. +- **"Aplicativo"** significa TablePro para Mac, TablePro para iPhone e iPad e TablePro para Linux, incluindo atualizações e plugins. - **"Site"** significa tablepro.app, docs.tablepro.app e os demais domínios que operamos. -- **"Serviços"** significa o Site, o portal da conta e o servidor que o app para Mac contata para verificações de licença e para a Team Library. +- **"Serviços"** significa o Site, o portal da conta e o servidor que os apps para Mac e para Linux contatam para verificações de licença e para a Team Library. - **"Licença"** significa um plano pago Pro ou Team, e **"Chave de Licença"**, a credencial que as versões do app para Mac anteriores às contas TablePro usam para ativar uma Licença. - **"Você"** significa a pessoa ou organização que usa os Serviços ou detém uma Licença. @@ -21,7 +21,7 @@ O código-fonte do Aplicativo, incluindo o código dos recursos pagos, é public A AGPL não impõe condições à execução do TablePro em empresas de qualquer tamanho. Suas condições se aplicam quando você fornece cópias a outras pessoas, modificadas ou não, e quando modifica TablePro e permite que outras pessoas usem a versão modificada pela rede. Nada nestes termos limita os direitos que a AGPLv3 concede a você. -O app para Mac é gratuito para baixar e usar sem cadastro. Uma Licença adiciona recursos opcionais ao app para Mac. O app para iPhone e iPad é gratuito, sem compras no app. +Os apps para Mac e para Linux são gratuitos para baixar e usar sem cadastro. Uma Licença adiciona recursos opcionais ao app para Mac. O app para iPhone e iPad é gratuito, sem compras no app. ## Marcas comerciais {#trademarks} @@ -37,12 +37,12 @@ Os reembolsos são descritos na [política de reembolso](/pt-BR/refund-policy). ## Uso de uma licença {#license} -Uma Licença concede um direito não exclusivo e intransferível de usar os recursos pagos do app para Mac nos Macs conectados à sua conta TablePro ou, nas versões anteriores às contas TablePro, ativados com a Chave de Licença dela, até o número e pelo período previstos no plano: +Uma Licença concede um direito não exclusivo e intransferível de usar os recursos pagos do app para Mac nos computadores conectados à sua conta TablePro ou, nas versões do app para Mac anteriores às contas TablePro, ativados com a Chave de Licença dela, até o número e pelo período previstos no plano. Os recursos pagos existem apenas no app para Mac, mas um computador conectado à sua conta no TablePro para Linux conta nesse número: -- Uma Licença **Pro** é para uma pessoa, em até {deviceLimit} Macs. -- Uma Licença **Team** é cobrada por vaga, com no mínimo {teamMinSeats} vagas. Cada vaga é para uma pessoa, em até {deviceLimit} Macs. O proprietário e os administradores da equipe convidam os membros, que participam por um link de convite enviado por email. +- Uma Licença **Pro** é para uma pessoa, em até {deviceLimit} computadores, Mac ou Linux. +- Uma Licença **Team** é cobrada por vaga, com no mínimo {teamMinSeats} vagas. Cada vaga é para uma pessoa, em até {deviceLimit} computadores, Mac ou Linux. O proprietário e os administradores da equipe convidam os membros, que participam por um link de convite enviado por email. -O limite de {deviceLimit} Macs vale por conta, somando todas as Licenças que ela usa. Você não pode compartilhar sua conta ou uma Chave de Licença além das pessoas e Macs cobertos pelo plano, nem sublicenciar, vender, alugar ou transferir de outra forma uma Licença ou Chave de Licença sem nossa autorização por escrito. +O limite de {deviceLimit} computadores vale por conta, somando todas as Licenças que ela usa. Você não pode compartilhar sua conta ou uma Chave de Licença além das pessoas e computadores cobertos pelo plano, nem sublicenciar, vender, alugar ou transferir de outra forma uma Licença ou Chave de Licença sem nossa autorização por escrito. O app para Mac renova seu plano com nosso servidor uma vez por dia. Se o servidor não puder ser acessado, os recursos pagos continuam funcionando por até {offlineDays} dias após a última renovação ou, em um Mac que usa um arquivo offline do portal da conta, até o arquivo expirar. As versões anteriores às contas TablePro verificam uma Chave de Licença a cada {revalidateDays} dias e mantêm os recursos pagos por {graceDays} dias após a última verificação bem-sucedida. Quando um plano mensal ou anual termina, seus recursos param de funcionar, e o restante do app para Mac continua funcionando. diff --git a/resources/data/legal/vi/terms.md b/resources/data/legal/vi/terms.md index 800e6d76..a838b44b 100644 --- a/resources/data/legal/vi/terms.md +++ b/resources/data/legal/vi/terms.md @@ -1,17 +1,17 @@ --- title: Điều khoản sử dụng description: Các điều khoản cho website, trang tài khoản, máy chủ license và Team Library của TablePro, và khi mua license Pro hoặc Team. -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -Các điều khoản này điều chỉnh website tablepro.app, trang tài khoản, máy chủ license của chúng tôi, Team Library, cùng các License và License Key trả phí được mô tả dưới đây. Khi sử dụng chúng, hoặc khi mua hay kích hoạt một License, bạn đồng ý với các điều khoản này. TablePro cho Mac và TablePro cho iPhone và iPad chỉ được cấp phép theo giấy phép AGPLv3: bạn không cần chấp nhận các điều khoản này để tải về, cài đặt hay chạy các ứng dụng đó. +Các điều khoản này điều chỉnh website tablepro.app, trang tài khoản, máy chủ license của chúng tôi, Team Library, cùng các License và License Key trả phí được mô tả dưới đây. Khi sử dụng chúng, hoặc khi mua hay kích hoạt một License, bạn đồng ý với các điều khoản này. TablePro cho Mac, TablePro cho iPhone và iPad, và TablePro cho Linux chỉ được cấp phép theo giấy phép AGPLv3: bạn không cần chấp nhận các điều khoản này để tải về, cài đặt hay chạy các ứng dụng đó. ## Định nghĩa {#definitions} - **"TablePro", "chúng tôi"** là {publisherName}, một lập trình viên độc lập tại {publisherCity}, {publisherCountry}, người phát hành TablePro. -- **"Ứng dụng"** là TablePro cho Mac và TablePro cho iPhone và iPad, bao gồm các bản cập nhật và plugin của chúng. +- **"Ứng dụng"** là TablePro cho Mac, TablePro cho iPhone và iPad, và TablePro cho Linux, bao gồm các bản cập nhật và plugin của chúng. - **"Website"** là tablepro.app, docs.tablepro.app và các tên miền khác do chúng tôi vận hành. -- **"Dịch vụ"** là Website, trang tài khoản, và máy chủ mà ứng dụng cho Mac liên lạc để kiểm tra license và dùng Team Library. +- **"Dịch vụ"** là Website, trang tài khoản, và máy chủ mà ứng dụng cho Mac và ứng dụng cho Linux liên lạc để kiểm tra license và dùng Team Library. - **"License"** là một gói trả phí Pro hoặc Team, và **"License Key"** là thông tin mà các phiên bản ứng dụng cho Mac trước khi có tài khoản TablePro dùng để kích hoạt một License. - **"Bạn"** là cá nhân hoặc tổ chức sử dụng Dịch vụ hoặc sở hữu một License. @@ -21,7 +21,7 @@ Mã nguồn của Ứng dụng, kể cả phần mã của các tính năng tr Giấy phép AGPL không đặt điều kiện nào cho việc chạy TablePro, trong công ty ở bất kỳ quy mô nào. Các điều kiện của giấy phép AGPL áp dụng khi bạn đưa bản sao cho người khác, dù đã sửa đổi hay chưa, và khi bạn sửa đổi TablePro rồi cho người khác dùng phiên bản đã sửa đổi đó qua mạng. Không điều nào trong các điều khoản này giới hạn những quyền mà giấy phép AGPLv3 trao cho bạn. -Bạn có thể tải về và dùng ứng dụng cho Mac miễn phí mà không cần đăng ký. Một License bổ sung các tính năng tùy chọn cho ứng dụng cho Mac. Ứng dụng cho iPhone và iPad miễn phí, không có mua hàng trong ứng dụng. +Bạn có thể tải về và dùng ứng dụng cho Mac và ứng dụng cho Linux miễn phí mà không cần đăng ký. Một License bổ sung các tính năng tùy chọn cho ứng dụng cho Mac. Ứng dụng cho iPhone và iPad miễn phí, không có mua hàng trong ứng dụng. ## Nhãn hiệu {#trademarks} @@ -37,12 +37,12 @@ Việc hoàn tiền được mô tả trong [chính sách hoàn tiền](/vi/refu ## Sử dụng license {#license} -Một License cho bạn quyền không độc quyền, không chuyển nhượng, để dùng các tính năng trả phí của ứng dụng cho Mac trên những máy Mac đã đăng nhập tài khoản TablePro của bạn hoặc, ở các phiên bản trước khi có tài khoản TablePro, đã kích hoạt bằng License Key của License đó, trong giới hạn số máy và thời hạn của gói bạn mua: +Một License cho bạn quyền không độc quyền, không chuyển nhượng, để dùng các tính năng trả phí của ứng dụng cho Mac trên những máy tính đã đăng nhập tài khoản TablePro của bạn hoặc, ở các phiên bản ứng dụng cho Mac trước khi có tài khoản TablePro, đã kích hoạt bằng License Key của License đó, trong giới hạn số máy và thời hạn của gói bạn mua. Các tính năng trả phí chỉ có trong ứng dụng cho Mac, nhưng một máy tính đăng nhập tài khoản của bạn trong TablePro cho Linux vẫn được tính vào số máy đó: -- License **Pro** dành cho một người, trên tối đa {deviceLimit} máy Mac. -- License **Team** tính giá theo seat, tối thiểu {teamMinSeats} seat. Mỗi seat dành cho một người, trên tối đa {deviceLimit} máy Mac. Chủ sở hữu và quản trị viên của nhóm mời các thành viên, và họ tham gia bằng liên kết mời gửi qua email. +- License **Pro** dành cho một người, trên tối đa {deviceLimit} máy tính, Mac hoặc Linux. +- License **Team** tính giá theo seat, tối thiểu {teamMinSeats} seat. Mỗi seat dành cho một người, trên tối đa {deviceLimit} máy tính, Mac hoặc Linux. Chủ sở hữu và quản trị viên của nhóm mời các thành viên, và họ tham gia bằng liên kết mời gửi qua email. -Giới hạn {deviceLimit} máy Mac tính theo tài khoản, chung cho mọi License mà tài khoản đó dùng. Bạn không được chia sẻ tài khoản hoặc License Key ra ngoài phạm vi những người và máy Mac mà gói của bạn bao gồm, cũng không được cấp phép lại, bán, cho thuê hoặc chuyển nhượng License hay License Key dưới bất kỳ hình thức nào khác, nếu không có sự cho phép bằng văn bản của chúng tôi. +Giới hạn {deviceLimit} máy tính được tính theo tài khoản, chung cho mọi License mà tài khoản đó dùng. Bạn không được chia sẻ tài khoản hoặc License Key ra ngoài phạm vi những người và máy tính mà gói của bạn bao gồm, cũng không được cấp phép lại, bán, cho thuê hoặc chuyển nhượng License hay License Key dưới bất kỳ hình thức nào khác, nếu không có sự cho phép bằng văn bản của chúng tôi. Ứng dụng cho Mac làm mới gói của bạn với máy chủ của chúng tôi mỗi ngày một lần. Nếu không liên lạc được với máy chủ, các tính năng trả phí vẫn hoạt động tối đa {offlineDays} ngày kể từ lần làm mới gần nhất, hoặc, trên máy Mac dùng tệp offline từ trang tài khoản, tới khi tệp đó hết hạn. Các phiên bản trước khi có tài khoản TablePro thì kiểm tra License Key mỗi {revalidateDays} ngày, và giữ các tính năng trả phí trong {graceDays} ngày kể từ lần kiểm tra thành công gần nhất. Khi một gói theo tháng hoặc theo năm kết thúc, các tính năng của gói đó ngừng hoạt động, phần còn lại của ứng dụng cho Mac vẫn hoạt động bình thường. diff --git a/resources/data/legal/zh-Hans/terms.md b/resources/data/legal/zh-Hans/terms.md index fd133b64..2c77fc76 100644 --- a/resources/data/legal/zh-Hans/terms.md +++ b/resources/data/legal/zh-Hans/terms.md @@ -1,17 +1,17 @@ --- title: 服务条款 description: TablePro 网站、账户门户、许可证服务器和 Team Library 的条款,以及购买 Pro 或 Team 许可证的条款。 -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -本条款适用于位于 tablepro.app 的网站、账户门户、我们的许可证服务器、Team Library,以及下述付费许可证和许可证密钥。使用这些服务,或购买、激活许可证,即表示您同意本条款。Mac 版 TablePro 和 iPhone、iPad 版 TablePro 仅依据 AGPLv3 授权:下载、安装或运行它们无需接受本条款。 +本条款适用于位于 tablepro.app 的网站、账户门户、我们的许可证服务器、Team Library,以及下述付费许可证和许可证密钥。使用这些服务,或购买、激活许可证,即表示您同意本条款。Mac 版 TablePro、iPhone 和 iPad 版 TablePro 以及 Linux 版 TablePro 仅依据 AGPLv3 授权:下载、安装或运行它们无需接受本条款。 ## 定义 {#definitions} - “**TablePro**”、“**我们**”及“**我们的**”指{publisherCountry}{publisherCity}的个人开发者 {publisherName},即 TablePro 的发布者。 -- “**应用**”指 Mac 版 TablePro 和 iPhone、iPad 版 TablePro,包括其更新和插件。 +- “**应用**”指 Mac 版 TablePro、iPhone 和 iPad 版 TablePro 以及 Linux 版 TablePro,包括其更新和插件。 - “**网站**”指 tablepro.app、docs.tablepro.app 及我们运营的其他域名。 -- “**服务**”指网站、账户门户,以及 Mac 应用用于许可证验证和 Team Library 的服务器。 +- “**服务**”指网站、账户门户,以及 Mac 应用和 Linux 应用用于许可证验证和 Team Library 的服务器。 - “**许可证**”指付费 Pro 或 Team 方案,“**许可证密钥**”指支持 TablePro 账户之前的 Mac 应用版本用于激活许可证的凭据。 - “**您**”指使用服务或持有许可证的个人或组织。 @@ -21,7 +21,7 @@ updatedAt: "2026-11-04" AGPL 对在任何规模的公司中运行 TablePro 不设条件。其条件适用于向他人提供软件副本(无论是否修改),以及修改 TablePro 后让他人通过网络使用您的修改版。本条款不限制 AGPLv3 授予您的任何权利。 -Mac 应用可免费下载使用,无需注册。许可证为 Mac 应用增加可选功能。iPhone 和 iPad 应用免费,且无应用内购买。 +Mac 应用和 Linux 应用可免费下载使用,无需注册。许可证为 Mac 应用增加可选功能。iPhone 和 iPad 应用免费,且无应用内购买。 ## 商标 {#trademarks} @@ -37,12 +37,12 @@ TablePro™、TablePro 徽标和 TablePro 应用图标是 {publisherName} 的商 ## 使用许可证 {#license} -许可证授予您非独占、不可转让的权利,允许在方案规定的台数和期限内,在登录您的 TablePro 账户的 Mac 上,或在支持 TablePro 账户之前的版本中用其许可证密钥激活的 Mac 上,使用 Mac 应用的付费功能: +许可证授予您非独占、不可转让的权利,允许在方案规定的台数和期限内,在登录您的 TablePro 账户的电脑上,或在支持 TablePro 账户之前的 Mac 应用版本中用其许可证密钥激活的 Mac 上,使用 Mac 应用的付费功能。付费功能仅在 Mac 应用中提供,但在 Linux 版 TablePro 中登录您账户的电脑同样计入该台数: -- **Pro** 许可证供一人使用,最多可用于 {deviceLimit} 台 Mac。 -- **Team** 许可证按席位定价,最少 {teamMinSeats} 个席位。每个席位供一人使用,最多可用于 {deviceLimit} 台 Mac。团队所有者和管理员邀请团队成员,成员通过邮件中的邀请链接加入。 +- **Pro** 许可证供一人使用,最多可用于 {deviceLimit} 台 Mac 或 Linux 电脑。 +- **Team** 许可证按席位定价,最少 {teamMinSeats} 个席位。每个席位供一人使用,最多可用于 {deviceLimit} 台 Mac 或 Linux 电脑。团队所有者和管理员邀请团队成员,成员通过邮件中的邀请链接加入。 -{deviceLimit} 台 Mac 的上限按账户计算,涵盖该账户使用的所有许可证。未经我们书面许可,您不得在方案所涵盖的人员和 Mac 范围之外共享您的账户或许可证密钥,也不得再许可、出售、出租或以其他方式转让许可证或许可证密钥。 +{deviceLimit} 台电脑的上限按账户计算,涵盖该账户使用的所有许可证。未经我们书面许可,您不得在方案所涵盖的人员和电脑范围之外共享您的账户或许可证密钥,也不得再许可、出售、出租或以其他方式转让许可证或许可证密钥。 Mac 应用每天向我们的服务器更新一次您的方案。若无法连接服务器,付费功能可自上次更新起继续使用最多 {offlineDays} 天;在使用账户门户离线文件的 Mac 上,可使用到该文件过期。支持 TablePro 账户之前的版本改为每隔 {revalidateDays} 天验证许可证密钥,并可自上次成功验证起继续使用付费功能 {graceDays} 天。月付或年付方案结束时,相应功能将停止,Mac 应用的其余功能仍可继续使用。 diff --git a/resources/data/legal/zh-Hant/terms.md b/resources/data/legal/zh-Hant/terms.md index 099e8789..1a3b6309 100644 --- a/resources/data/legal/zh-Hant/terms.md +++ b/resources/data/legal/zh-Hant/terms.md @@ -1,17 +1,17 @@ --- title: 服務條款 description: TablePro 網站、帳戶入口網站、授權伺服器與 Team Library 的條款,以及購買 Pro 或 Team 授權的條款。 -updatedAt: "2026-11-04" +updatedAt: "2026-11-06" --- -本條款適用於位於 tablepro.app 的網站、帳戶入口網站、我們的授權伺服器、Team Library,以及下述付費授權與授權金鑰。使用這些服務,或購買、啟用授權,即表示您同意本條款。Mac 版 TablePro 與 iPhone、iPad 版 TablePro 僅依據 AGPLv3 授權:下載、安裝或執行它們無需接受本條款。 +本條款適用於位於 tablepro.app 的網站、帳戶入口網站、我們的授權伺服器、Team Library,以及下述付費授權與授權金鑰。使用這些服務,或購買、啟用授權,即表示您同意本條款。Mac 版 TablePro、iPhone 與 iPad 版 TablePro 以及 Linux 版 TablePro 僅依據 AGPLv3 授權:下載、安裝或執行它們無需接受本條款。 ## 定義 {#definitions} - 「**TablePro**」、「**我們**」及「**我們的**」指{publisherCountry}{publisherCity}的個人開發者 {publisherName},即 TablePro 的發佈者。 -- 「**應用程式**」指 Mac 版 TablePro 與 iPhone、iPad 版 TablePro,包括其更新和外掛程式。 +- 「**應用程式**」指 Mac 版 TablePro、iPhone 與 iPad 版 TablePro 以及 Linux 版 TablePro,包括其更新和外掛程式。 - 「**網站**」指 tablepro.app、docs.tablepro.app 及我們營運的其他網域。 -- 「**服務**」指網站、帳戶入口網站,以及 Mac App 用於授權驗證與 Team Library 的伺服器。 +- 「**服務**」指網站、帳戶入口網站,以及 Mac App 與 Linux App 用於授權驗證與 Team Library 的伺服器。 - 「**授權**」指付費 Pro 或 Team 方案,「**授權金鑰**」指支援 TablePro 帳戶之前的 Mac App 版本用於啟用授權的認證資料。 - 「**您**」指使用服務或持有授權的個人或組織。 @@ -21,7 +21,7 @@ updatedAt: "2026-11-04" AGPL 對在任何規模的公司中執行 TablePro 不設條件。其條件適用於向他人提供軟體副本(無論是否修改),以及修改 TablePro 後讓他人透過網路使用您的修改版。本條款不限制 AGPLv3 授予您的任何權利。 -Mac App 可免費下載使用,無需註冊。授權為 Mac App 增加選用功能。iPhone 與 iPad App 免費,且無 App 內購買。 +Mac App 與 Linux App 可免費下載使用,無需註冊。授權為 Mac App 增加選用功能。iPhone 與 iPad App 免費,且無 App 內購買。 ## 商標 {#trademarks} @@ -37,12 +37,12 @@ TablePro™、TablePro 標誌和 TablePro App 圖示是 {publisherName} 的商 ## 使用授權 {#license} -授權授予您非專屬、不可轉讓的權利,允許在方案規定的台數和期限內,在登入您的 TablePro 帳戶的 Mac 上,或在支援 TablePro 帳戶之前的版本中以其授權金鑰啟用的 Mac 上,使用 Mac App 的付費功能: +授權授予您非專屬、不可轉讓的權利,允許在方案規定的台數和期限內,在登入您的 TablePro 帳戶的電腦上,或在支援 TablePro 帳戶之前的 Mac App 版本中以其授權金鑰啟用的 Mac 上,使用 Mac App 的付費功能。付費功能僅在 Mac App 中提供,但在 Linux 版 TablePro 中登入您帳戶的電腦同樣計入該台數: -- **Pro** 授權供一人使用,最多可用於 {deviceLimit} 台 Mac。 -- **Team** 授權按席位定價,最少 {teamMinSeats} 個席位。每個席位供一人使用,最多可用於 {deviceLimit} 台 Mac。團隊擁有者和管理員邀請團隊成員,成員透過郵件中的邀請連結加入。 +- **Pro** 授權供一人使用,最多可用於 {deviceLimit} 台 Mac 或 Linux 電腦。 +- **Team** 授權按席位定價,最少 {teamMinSeats} 個席位。每個席位供一人使用,最多可用於 {deviceLimit} 台 Mac 或 Linux 電腦。團隊擁有者和管理員邀請團隊成員,成員透過郵件中的邀請連結加入。 -{deviceLimit} 台 Mac 的上限按帳戶計算,涵蓋該帳戶使用的所有授權。未經我們書面許可,您不得在方案所涵蓋的人員與 Mac 範圍之外共用您的帳戶或授權金鑰,也不得再授權、出售、出租或以其他方式轉讓授權或授權金鑰。 +{deviceLimit} 台電腦的上限按帳戶計算,涵蓋該帳戶使用的所有授權。未經我們書面許可,您不得在方案所涵蓋的人員與電腦範圍之外共用您的帳戶或授權金鑰,也不得再授權、出售、出租或以其他方式轉讓授權或授權金鑰。 Mac App 每天向我們的伺服器更新一次您的方案。若無法連線至伺服器,付費功能可自上次更新起繼續使用最多 {offlineDays} 天;在使用帳戶入口網站離線檔案的 Mac 上,可使用到該檔案過期。支援 TablePro 帳戶之前的版本改為每隔 {revalidateDays} 天驗證授權金鑰,並可自上次成功驗證起繼續使用付費功能 {graceDays} 天。月付或年付方案結束時,相應功能將停止,Mac App 的其餘功能仍可繼續使用。 diff --git a/resources/data/platforms.json b/resources/data/platforms.json index ed9c4145..a0fd69c8 100644 --- a/resources/data/platforms.json +++ b/resources/data/platforms.json @@ -1,5 +1,5 @@ { - "verifiedAt": "2026-10-19", + "verifiedAt": "2026-11-06", "platforms": [ { "id": "mac", @@ -138,7 +138,7 @@ }, { "id": "linux", - "status": "prototype", + "status": "released", "channel": "beta", "deviceNames": [ "Linux" diff --git a/resources/js/components/compare/model.ts b/resources/js/components/compare/model.ts index 9c540ed2..6b0644c4 100644 --- a/resources/js/components/compare/model.ts +++ b/resources/js/components/compare/model.ts @@ -64,6 +64,8 @@ export interface TableProFacts { macRequirement: string; /** `iOS and iPadOS 18 or later`, or null while there is no iPhone and iPad app. */ iosRequirement: string | null; + // `Linux beta: Ubuntu 26.04+, …`, or null while Linux is not released. + linuxRequirement: string | null; macArchitectures: ('arm64' | 'x86_64')[]; /** One app for both architectures, from `platforms.json`'s `universalBinary`. */ macUniversal: boolean; @@ -520,6 +522,10 @@ export function tableproCell(row: Exclude | 'technology', lines.push({ text: facts.iosRequirement, muted: true }); } + if (facts.linuxRequirement !== null) { + lines.push({ text: facts.linuxRequirement, muted: true }); + } + return { mark: 'none', lines, sources: [] }; } case 'technology': diff --git a/resources/js/components/compare/tablepro-facts.ts b/resources/js/components/compare/tablepro-facts.ts index 6822ed67..23a0f501 100644 --- a/resources/js/components/compare/tablepro-facts.ts +++ b/resources/js/components/compare/tablepro-facts.ts @@ -1,23 +1,28 @@ // Nothing about TablePro is typed into a compare page or comparisons.json (architecture §1.8). The featured engines come from the server so the bundle skips engines.json. +import { linuxRequirement } from '@/components/download/linux-text'; import type { Messages } from '@/i18n'; import { joinList } from '@/i18n/format'; import { connectionImportFor, FACTS } from '@/lib/data/facts'; import { examplesText, PAID_FEATURES } from '@/lib/data/paid-features'; -import { deviceList, iosPlatform, isReleased, macPlatform, PLATFORMS, requirementText } from '@/lib/data/platforms'; +import { iosPlatform, isReleased, macPlatform, PLATFORMS, requirementText } from '@/lib/data/platforms'; import { PRICING } from '@/lib/data/pricing'; import type { TableProFacts } from './model'; +import type { TableProProp } from './types'; -export function tableproFacts(productId: string | null, featuredEngines: string[], m: Messages): TableProFacts { +// Linux comes from the server's prop, like the release versions, so the page and its tests read the same platforms.json. +export function tableproFacts(productId: string | null, tablepro: Pick, m: Messages): TableProFacts { const mac = macPlatform(); const ios = PLATFORMS.platforms.some((platform) => platform.id === 'ios' && isReleased(platform)) ? iosPlatform() : null; const sync = PAID_FEATURES.find((feature) => feature.id === 'icloud-sync') ?? null; const importer = productId === null ? null : connectionImportFor(productId); + const { featuredEngines, linux } = tablepro; return { // Joined as the homepage and JSON-LD join them. - devices: deviceList(m.common.list), + devices: joinList([...mac.deviceNames, ...(ios?.deviceNames ?? []), ...(linux?.deviceNames ?? [])], m.common.list), macRequirement: requirementText(mac, m.platforms), iosRequirement: ios !== null ? requirementText(ios, m.platforms) : null, + linuxRequirement: linux !== null ? linuxRequirement(linux, m) : null, macArchitectures: mac.architectures, macUniversal: mac.universalBinary, starter: { ...PRICING.tiers.starter.prices, activations: PRICING.license.deviceLimit }, diff --git a/resources/js/components/compare/types.ts b/resources/js/components/compare/types.ts index be526aea..9480ff95 100644 --- a/resources/js/components/compare/types.ts +++ b/resources/js/components/compare/types.ts @@ -6,6 +6,7 @@ * TablePro's own column is never stored there and is derived on the page from * pricing, platforms, paid features and facts (./model.ts). */ +import type { LinuxSummary } from '@/components/download/types'; import type { ComparisonProduct } from '@/lib/data/comparisons'; /** @@ -99,6 +100,8 @@ export interface TableProProp { featuredEngines: string[]; mac: { version: string; date: string } | null; ios: { version: string; date: string } | null; + // The newest release on Linux's channel, null until Linux is released. + linux: (LinuxSummary & { version: string | null; date: string | null }) | null; } /** ISO date (`2026-10-02`) → the same date formatted in PHP for the page's locale. */ diff --git a/resources/js/components/databases/README.md b/resources/js/components/databases/README.md index eb46c060..12c3d660 100644 --- a/resources/js/components/databases/README.md +++ b/resources/js/components/databases/README.md @@ -75,12 +75,14 @@ its `usedOn` in `assets.json`. **Blocks the template renders from data, with no copy of yours:** the facts card (query language, driver and the engines that share it, how to connect, default port, minimum version, marked where the app enforces it and "None" -where the docs say there is none, the embedded engine version, iPhone and iPad status), the availability line, the line under it that says TablePro is free to use and open source, the +where the docs say there is none, the embedded engine version, iPhone and iPad status, and once Linux is released +the server releases its Linux suites test, from `engines.json` `linux`), the availability line (Linux only for a +tested engine), the line under it that says TablePro is free to use and open source, the actions (Download for Mac, the App Store badge only when the engine is in the iPhone and iPad picker, the setup guide), the iPhone and iPad status sentence, the Limits list (`engines.json` `limits[]` with the sentences in `content/*/engines.json`), each family section's facts line, limits and setup guide, the dated facts of every other -tool, the docs links under Related, and the download band with its link to pricing. Do not repeat any of these in -prose. +tool, the docs links under Related, and the download band with its link to pricing (and to `/download#linux` for a +tested engine). Do not repeat any of these in prose. **`family`** (block 10). Only on a page with merged engines: one entry per engine whose `page` is `section` and whose `parent` is this page's engine, all of them, in `engines.json` order. Its anchor (`#scylladb`, `#libsql`) comes from diff --git a/resources/js/components/databases/download-band.tsx b/resources/js/components/databases/download-band.tsx index 3d3f2888..dee4e063 100644 --- a/resources/js/components/databases/download-band.tsx +++ b/resources/js/components/databases/download-band.tsx @@ -1,40 +1,38 @@ import ActionPair from '@/components/download/action-pair'; import { requirementLine } from '@/components/download/format'; +import { distributionsText } from '@/components/download/linux-text'; import DotList from '@/components/ui/dot-list'; import LocaleLink from '@/components/ui/locale-link'; import Section from '@/components/ui/section'; import { textLinkClasses } from '@/components/ui/text-link'; import { useI18n } from '@/i18n'; -import type { DatabaseLabels, PlatformSummary } from './types'; +import type { DatabaseLabels, DatabasePlatforms } from './types'; interface DownloadBandProps { labels: DatabaseLabels; - platforms: { mac: PlatformSummary | null; ios: PlatformSummary | null }; - /** Shows the App Store badge: true only where the iPhone and iPad app offers the engine (or on the hub). */ + platforms: DatabasePlatforms; + // Where the iPhone and iPad app offers the engine, or on the hub. showIos: boolean; + // Where the Linux app's suites test the engine, or on the hub. + showLinux: boolean; appStoreUrl: string | null; - /** `download_click` location for the Mac action and the badge, so both platforms count from the same place. */ + // `download_click` location of every action in the band. location: string; } -/** - * The closing band of the database pages (design-system §8.3, §8.4): the - * explanation as the section's lead, then the shared `ActionPair` row: the - * Mac action with its requirement, and the App Store badge with the iPhone - * and iPad requirement where the engine opens there, then the way to pricing. - * The requirements come from platforms.json through the `platforms` catalog, - * never typed here. - */ -export default function DownloadBand({ labels, platforms, showIos, appStoreUrl, location }: DownloadBandProps) { +export default function DownloadBand({ labels, platforms, showIos, showLinux, appStoreUrl, location }: DownloadBandProps) { const { m, fmt } = useI18n(); const ios = showIos && platforms.ios !== null && appStoreUrl !== null ? platforms.ios : null; + const linux = showLinux ? platforms.linux : null; if (platforms.mac === null) { return null; } + const lead = [labels.download.mac, ios !== null && labels.download.ios, linux !== null && labels.download.linux].filter(Boolean).join(' '); + return ( -
+
} + : null + } />

diff --git a/resources/js/components/databases/engine-header.tsx b/resources/js/components/databases/engine-header.tsx index 8b149080..a6d86e95 100644 --- a/resources/js/components/databases/engine-header.tsx +++ b/resources/js/components/databases/engine-header.tsx @@ -12,43 +12,27 @@ import { Trans, useI18n } from '@/i18n'; import { joinList } from '@/i18n/format'; import { trackDownload } from '@/lib/analytics'; import FactsCard from './facts-card'; -import { deviceNamesFor, docsUrl, iosStatus } from './format'; +import { availableDeviceNames, deviceNamesFor, docsUrl, iosStatus } from './format'; import RichText from './rich-text'; -import type { DatabaseLinks, DatabaseLabels, EngineDetail, EnginePageContent, PlatformSummary, ProductFacts } from './types'; +import type { DatabaseLinks, DatabaseLabels, DatabasePlatforms, EngineDetail, EnginePageContent, ProductFacts } from './types'; interface EngineHeaderProps { content: EnginePageContent; labels: DatabaseLabels; engine: EngineDetail; - platforms: { mac: PlatformSummary | null; ios: PlatformSummary | null }; + platforms: DatabasePlatforms; links: DatabaseLinks; product: ProductFacts; - /** - * A detail-crop lead image, placed in the text column under the actions so - * the facts card on the right sits beside it. A full-width window lead is - * rendered by the page under the header instead. - */ + // A detail-crop lead, in the text column beside the facts card. A window lead spans the page under the header. lead?: ReactNode; } -/** - * The top of an engine page (sitemap §E.1 block 1, design-system §8.4). - * - * Columns 1-8: the breadcrumb, the engine's mark and the H1 (platform-neutral - * in English), the lead, an availability line (devices, where the driver - * comes from, and a version label while some channel still serves a Mac build - * without the engine), what TablePro costs and its licence, from pricing.json - * and facts.json, then the actions: Download for Mac, the App Store badge - * only when the iPhone and iPad app offers the engine, and the setup guide. - * Columns 9-12: the facts card. Below 1024px the card follows the actions. - * A detail lead image sits in columns 1-8 under the actions, beside the facts - * card; placed under both, it left a 250px hole under the actions and an - * empty right half beside the image. Columns are 32px apart (design-system - * §4.2). - */ +// Columns 1-8 hold the text and actions, 9-12 the facts card, which follows the actions below 1024px. A detail lead +// sits under the actions: placed under both columns it left a hole under the actions and an empty half beside it. export default function EngineHeader({ content, labels, engine, platforms, links, product, lead }: EngineHeaderProps) { const { locale, m, fmt } = useI18n(); const devices = joinList(deviceNamesFor(engine, platforms), m.common.list); + const worksOn = joinList(availableDeviceNames(engine, platforms), m.common.list); const macDevices = joinList(platforms.mac?.deviceNames ?? [], m.common.list); const docs = docsUrl(links.docs, engine.docsSlug); const onIos = iosStatus(engine) === 'picker' && links.appStore !== null; @@ -73,7 +57,7 @@ export default function EngineHeader({ content, labels, engine, platforms, links

@@ -125,7 +109,7 @@ export default function EngineHeader({ content, labels, engine, platforms, links {lead &&

{lead}
} - + diff --git a/resources/js/components/databases/engine-table.tsx b/resources/js/components/databases/engine-table.tsx index e1e54cf6..2e894736 100644 --- a/resources/js/components/databases/engine-table.tsx +++ b/resources/js/components/databases/engine-table.tsx @@ -6,7 +6,7 @@ import LocaleLink from '@/components/ui/locale-link'; import TextLink, { textLinkClasses } from '@/components/ui/text-link'; import { useI18n } from '@/i18n'; import { cn } from '@/lib/utils'; -import { docsUrl, iosStatus } from './format'; +import { docsUrl, iosStatus, linuxStatus } from './format'; import LimitsList from './limits-list'; import type { DatabaseLabels, EngineCopy, EngineSummary, HubContent } from './types'; @@ -17,49 +17,47 @@ interface EngineTableProps { table: HubContent['table']; labels: DatabaseLabels; docsBase: string | null; + // The Linux column's heading, or null while Linux is not released. + linux: string | null; } -/** The three short columns: shown from 1024px, folded into the engine cell below it. */ +/** The short columns: shown from 1024px, folded into the engine cell below it. */ const WIDE_ONLY = 'hidden lg:table-cell'; /** Notes: its own column from 768px, folded into the engine cell below it. */ const MEDIUM_UP = 'hidden md:table-cell'; -/** - * One category's engines on `/databases` (design-system §8.3, `EngineTable`). - * - * Columns: the engine (its mark and name, linked to its page or its section - * on a family page), the query language, where the driver comes from, the - * iPhone and iPad status, and notes. A hub-only engine has no page, so its - * row carries its own id (`#spanner`), its limits and its setup guide. - * - * Every category's table has the same fixed column widths (`table-fixed`, set - * on the header row), so the columns line up from one category to the next - * and a short value is never squeezed to one word per line beside a wide - * Notes column. Priority columns below that (design-system §5.3.10): under - * 1024px the query language, driver and iPhone status fold into the engine - * cell as one caption line, and under 768px the notes fold in too, so a phone - * reads one column with nothing cut off. A table is never turned into blocks, - * which strips its roles in Safari. - */ -export default function EngineTable({ caption, engines, copy, table, labels, docsBase }: EngineTableProps) { +// Every category's table has the same fixed widths, so the columns line up from one category to the next. Below +// 1024px the short columns fold into the engine cell as one caption line, and below 768px the notes fold in too. +const WIDTHS = { + withoutLinux: { engine: 'md:w-[38%] lg:w-[22%]', queryLanguage: 'lg:w-[13%]', driver: 'lg:w-[17%]', ios: 'lg:w-[14%]', linux: '' }, + withLinux: { engine: 'md:w-[38%] lg:w-[20%]', queryLanguage: 'lg:w-[11%]', driver: 'lg:w-[17%]', ios: 'lg:w-[12%]', linux: 'lg:w-[10%]' }, +}; + +export default function EngineTable({ caption, engines, copy, table, labels, docsBase, linux }: EngineTableProps) { const { locale, m, fmt } = useI18n(); + const widths = linux !== null ? WIDTHS.withLinux : WIDTHS.withoutLinux; return ( - + {table.engine} - + {table.queryLanguage} - + {table.driver} - + {table.ios} + {linux !== null && ( + + {linux} + + )} {table.notes} @@ -69,6 +67,7 @@ export default function EngineTable({ caption, engines, copy, table, labels, doc {engines.map((engine) => { const docs = docsUrl(docsBase, engine.docsSlug); const status = labels.ios[iosStatus(engine)]; + const onLinux = labels.linux[linuxStatus(engine)]; const driver = labels.driver[engine.distribution]; const notes = ( <> @@ -108,7 +107,7 @@ export default function EngineTable({ caption, engines, copy, table, labels, doc )}
- +
{notes}
@@ -117,6 +116,7 @@ export default function EngineTable({ caption, engines, copy, table, labels, doc {engine.queryLanguage} {driver} {status} + {linux !== null && {onLinux}} {notes} ); diff --git a/resources/js/components/databases/facts-card.tsx b/resources/js/components/databases/facts-card.tsx index cdbe84a2..2945d278 100644 --- a/resources/js/components/databases/facts-card.tsx +++ b/resources/js/components/databases/facts-card.tsx @@ -1,34 +1,26 @@ +import type { LinuxSummary } from '@/components/download/types'; import Card from '@/components/ui/card'; import DescriptionList, { DescriptionItem } from '@/components/ui/description-list'; import { useI18n } from '@/i18n'; import { joinList } from '@/i18n/format'; -import { connectWith, iosStatus, shownPort, versionFloorText } from './format'; +import { connectWith, iosStatus, linuxStatus, shownPort, versionFloorText } from './format'; import type { DatabaseLabels, EngineDetail } from './types'; interface FactsCardProps { engine: EngineDetail; labels: DatabaseLabels; + // Null while Linux is not released, which leaves its row out. + linux: LinuxSummary | null; className?: string; } -/** - * The "At a glance" card beside an engine page's header (design-system §8.4). - * Every row is data: the query language, where the driver comes from and what - * shares it, how a connection reaches the engine, the default port, the - * version floor, the embedded engine version and the iPhone and iPad status. - * A row with nothing to say is left out. - * - * The version floor says "enforced" only where the app refuses an older - * server; a floor that comes from the docs is the bare version, and "no - * minimum" is shown only where the docs say so. The site never says "tested": - * there is no test evidence for any engine version. - * - * A term is a third of a narrow card, too narrow for "Abfragesprache" or - * "Puerto predeterminado", so terms hyphenate in the page's language. - */ -export default function FactsCard({ engine, labels, className }: FactsCardProps) { +// "Enforced" only where the app refuses an older server, and "tested" only for the Linux app, whose CI runs each +// driver's suite against the releases engines.json lists. A term is a third of a narrow card, too narrow for +// "Abfragesprache", so terms hyphenate in the page's language. +export default function FactsCard({ engine, labels, linux, className }: FactsCardProps) { const { m, fmt } = useI18n(); const facts = labels.facts; + const onLinux = linuxStatus(engine); return ( @@ -57,6 +49,11 @@ export default function FactsCard({ engine, labels, className }: FactsCardProps) )} {labels.ios[iosStatus(engine)]} + {linux !== null && ( + + {onLinux === 'tested' && engine.linux.tested.length > 0 ? fmt(labels.linux.versions, { versions: engine.linux.tested.join(', ') }) : labels.linux[onLinux]} + + )} ); diff --git a/resources/js/components/databases/format.ts b/resources/js/components/databases/format.ts index afcb597e..f166fd4f 100644 --- a/resources/js/components/databases/format.ts +++ b/resources/js/components/databases/format.ts @@ -5,10 +5,13 @@ */ import { interpolate } from '@/i18n/core'; import { joinList, type ListStyle } from '@/i18n/format'; -import type { DatabaseLabels, EngineDetail, EngineSummary, PlatformSummary } from './types'; +import type { DatabaseLabels, DatabasePlatforms, EngineDetail, EngineSummary, PlatformSummary } from './types'; export type IosStatus = 'picker' | 'synced' | 'none'; +// A blocked engine has no client library on Linux, so to a reader it is as absent as one with no driver at all. +export type LinuxStatus = 'tested' | 'untested' | 'none'; + /** * Opens on iPhone and iPad (in the app's picker), opens only when a Mac * syncs or exports the connection (Redshift), or does not open there. @@ -34,6 +37,16 @@ export function deviceNamesFor( return [...(platforms.mac?.deviceNames ?? []), ...(iosStatus(engine) === 'picker' ? (platforms.ios?.deviceNames ?? []) : [])]; } +export function linuxStatus(engine: Pick): LinuxStatus { + return engine.linux.support === 'blocked' ? 'none' : engine.linux.support; +} + +// The header's "Works on" line: the devices of `deviceNamesFor`, and Linux where its suites test the engine. The H1 and +// the search title keep `deviceNamesFor`. +export function availableDeviceNames(engine: Pick, platforms: DatabasePlatforms): string[] { + return [...deviceNamesFor(engine, platforms), ...(platforms.linux !== null && linuxStatus(engine) === 'tested' ? platforms.linux.deviceNames : [])]; +} + /** The "Connect with" row: how a connection reaches the engine, from its capability flags. */ export function connectWith(engine: Pick, labels: DatabaseLabels['connect']): string[] { const items = [labels[engine.connectionMode]]; diff --git a/resources/js/components/databases/types.ts b/resources/js/components/databases/types.ts index 0f6021e3..5cfb8dc8 100644 --- a/resources/js/components/databases/types.ts +++ b/resources/js/components/databases/types.ts @@ -3,6 +3,8 @@ * shape of the database pages' copy. README.md in this folder documents the * content schema. */ +import type { LinuxSummary } from '@/components/download/types'; +import type { LinuxSupport } from '@/lib/data/engines'; import type { Requirements } from '@/lib/data/platforms'; /** The hub file: its own copy plus the `labels` every engine page shares. */ @@ -129,6 +131,8 @@ export interface EngineSummary { /** The docs page, its own or its driver sibling's. */ docsSlug: string | null; ios: { inPicker: boolean; openable: boolean }; + // `tested` lists the server releases the Linux app's suites run on; empty unless `support` is tested. + linux: { support: LinuxSupport; tested: string[] }; limits: { id: string; value: number | null }[]; } @@ -174,6 +178,12 @@ export interface PlatformSummary { requirements: Requirements; } +export interface DatabasePlatforms { + mac: PlatformSummary | null; + ios: PlatformSummary | null; + linux: LinuxSummary | null; +} + export interface DatabaseLinks { /** docs.tablepro.app, with no trailing slash. */ docs: string | null; @@ -201,7 +211,7 @@ export interface EnginePageProps { tools: CitedTool[]; /** Comparisons with clients for this engine that the "Other tools" block does not already link. */ comparisons: { path: string; title: string }[]; - platforms: { mac: PlatformSummary | null; ios: PlatformSummary | null }; + platforms: DatabasePlatforms; links: DatabaseLinks; product: ProductFacts; } @@ -212,6 +222,6 @@ export interface HubPageProps { copy: Record; /** Engine ids in the iPhone and iPad app's picker, in its order. */ iosEngines: string[]; - platforms: { mac: PlatformSummary | null; ios: PlatformSummary | null }; + platforms: DatabasePlatforms; links: DatabaseLinks; } diff --git a/resources/js/components/download/action-pair.tsx b/resources/js/components/download/action-pair.tsx index 7f3a78aa..fb94739f 100644 --- a/resources/js/components/download/action-pair.tsx +++ b/resources/js/components/download/action-pair.tsx @@ -17,6 +17,8 @@ interface ActionPairProps { macExtra?: ReactNode; /** The App Store listing and its availability line, or null where the iPhone and iPad app does not apply. */ ios: { url: string; caption: ReactNode } | null; + // The way to /download#linux and its availability line, where the Linux app applies. + linux?: { caption: ReactNode } | null; /** * Each action in a cell of the page grid, side by side from 640px * (design-system §4.7). Only in a wide section, where the cells can reach @@ -46,7 +48,7 @@ interface ActionPairProps { * drawn first (positioning §3.2), from the `ios` class the root template sets * before first paint, so nothing moves after the page is shown. */ -export default function ActionPair({ location, macCaption, macExtra, ios, cells = false, className }: ActionPairProps) { +export default function ActionPair({ location, macCaption, macExtra, ios, linux = null, cells = false, className }: ActionPairProps) { const { m } = useI18n(); const mac = ( @@ -69,19 +71,30 @@ export default function ActionPair({ location, macCaption, macExtra, ios, cells ); + const linuxAction = linux !== null && ( +
+ trackDownload(location, 'linux')} className={buttonClasses('secondary', 'lg')}> + {m.download.linuxCta} + +

{linux.caption}

+
+ ); + if (cells) { return ( - + {mac} {iosAction} + {linuxAction} ); } return ( -
+
{mac} {iosAction} + {linuxAction}
); } diff --git a/resources/js/components/download/linux-text.ts b/resources/js/components/download/linux-text.ts index 765b890a..7c2877a7 100644 --- a/resources/js/components/download/linux-text.ts +++ b/resources/js/components/download/linux-text.ts @@ -1,7 +1,8 @@ // Relative imports only, so `node --test` loads it directly (tests/js/download-linux.test.ts). import { interpolate } from '../../i18n/core.ts'; +import { joinList } from '../../i18n/format.ts'; import type { Messages } from '../../i18n/types.ts'; -import type { LinuxDistributionProp, LinuxMethodKind, LinuxProp } from './types.ts'; +import type { LinuxDistributionProp, LinuxMethodKind, LinuxProp, LinuxSummary } from './types.ts'; type Strings = Messages['download']['linux']; @@ -20,3 +21,19 @@ export function methodLabel(kind: LinuxMethodKind, linux: LinuxProp, strings: St return distribution !== undefined ? distributionFloor(distribution, strings) : strings.flatpak; } + +// "Ubuntu 26.04+, Fedora 44+ or any distribution via Flatpak", in data order. +export function distributionsText(linux: Pick, strings: Messages['download']): string { + return joinList( + linux.distributions.map((distribution) => distributionFloor(distribution, strings.linux)), + strings.orList, + ); +} + +// "Linux beta: Ubuntu 26.04+, …" while the channel is beta, for a list of every platform's requirement. +export function linuxRequirement(linux: LinuxSummary, m: Pick): string { + return interpolate(m.platforms.linux.requirement[linux.channel], { + name: joinList(linux.deviceNames, m.common.list), + distributions: distributionsText(linux, m.download), + }); +} diff --git a/resources/js/components/download/types.ts b/resources/js/components/download/types.ts index 8c9e46d6..21022ab4 100644 --- a/resources/js/components/download/types.ts +++ b/resources/js/components/download/types.ts @@ -87,6 +87,9 @@ export interface LinuxProp { release: { version: string; publishedOn: string | null; releaseUrl: string; releasesUrl: string } | null; } +// What a page outside /download says about Linux: `PlatformCatalog::linuxSummary`, null until Linux is released. +export type LinuxSummary = Pick; + export interface LinksProp { docs: string | null; changelog: string | null; diff --git a/resources/js/components/faq/content-links.tsx b/resources/js/components/faq/content-links.tsx index 83de5a6a..af387edb 100644 --- a/resources/js/components/faq/content-links.tsx +++ b/resources/js/components/faq/content-links.tsx @@ -4,10 +4,7 @@ import LocaleLink from '@/components/ui/locale-link'; import { textLinkClasses } from '@/components/ui/text-link'; import { useI18n } from '@/i18n'; -/** - * The outbound links `App\Services\Content\SiteFacts::links()` sends: every - * URL from `facts.json` and `pricing.json`, or null where the data names none. - */ +// From SiteFacts::links(); null where the data names no URL. export interface SiteLinks { docs: string | null; changelog: string | null; @@ -21,15 +18,7 @@ export interface SiteLinks { email: string | null; } -/** - * Where each link tag in FAQ, iPhone-page and about-page copy goes. - * - * Copy marks a link with a tag named for its destination, `pricing - * page`, and never holds a URL or a path: the destinations live - * here, once, so a translator moves the words and cannot break the link. - * Internal paths are English base paths; `LocaleLink` adds the reader's - * locale. The account portal is another origin and gets `?locale=` instead. - */ +// Copy names a link by a tag and never holds a path, so a translator cannot break it. LocaleLink adds the locale. const INTERNAL: Record = { home: '/', sponsors: '/sponsors', @@ -41,6 +30,8 @@ const INTERNAL: Record = { databases: '/databases', compare: '/compare', download: '/download', + downloadLinux: '/download#linux', + databasesLinux: '/databases#linux', ios: '/ios', iosLimits: '/ios#limits', pricing: '/pricing', @@ -60,7 +51,6 @@ const INTERNAL: Record = { type ExternalKey = 'docs' | 'changelog' | 'github' | 'issues' | 'discussions' | 'sponsorsProgram' | 'license' | 'portal' | 'appStore'; -/** External destinations, by the `SiteLinks` key that holds their URL. `docs` and `changelog` are in English only. */ const EXTERNAL: Record = { docs: { key: 'docs', englishOnly: true }, changelog: { key: 'changelog', englishOnly: true }, @@ -73,17 +63,7 @@ const EXTERNAL: Record = { appStore: { key: 'appStore', englishOnly: false }, }; -/** - * Renderers for every tag FAQ, iPhone-page and about-page copy may use, for ``: - * the link tags above, `` (the account app, in the reader's - * language), `` (the brand guidelines, in English only), `` - * (the support address; its text is the address unless the copy gives other - * words) and `` (an app label in a click path). - * - * A tag whose destination the data does not name renders its words as plain - * text, so a missing URL never becomes a broken link. A link to the English - * documentation says so in a Vietnamese sentence. - */ +// A tag whose URL the data does not name renders its words as plain text, never a broken link. export function useContentTags(links: SiteLinks): Record ReactNode> { const { locale, m } = useI18n(); const tags: Record ReactNode> = { diff --git a/resources/js/components/features/availability-table.tsx b/resources/js/components/features/availability-table.tsx index df72eb00..d6c7e8a8 100644 --- a/resources/js/components/features/availability-table.tsx +++ b/resources/js/components/features/availability-table.tsx @@ -1,3 +1,4 @@ +import type { ReactNode } from 'react'; import DataTable, { TABLE_CELL, TABLE_HEAD_CELL, TABLE_ROW, TABLE_ROW_HEADER } from '@/components/ui/data-table'; import { useI18n } from '@/i18n'; import { joinList } from '@/i18n/format'; @@ -11,32 +12,46 @@ interface AvailabilityTableProps { rows: AvailabilityRow[]; labels: FeatureLabels; values: Record; + // The Linux column's heading, or null while Linux is not released. + linux: string | null; } // Shown from 640px; below it their values fold into the row header (design-system §5.3.10, priority columns). const PLATFORM_COLUMN = 'hidden sm:table-cell'; -// The iPhone and iPad app has no plans, so its column says what exists there, not what it costs. -export default function AvailabilityTable({ rows, labels, values }: AvailabilityTableProps) { +// The iPhone and iPad app and the Linux app have no plans, so their columns say what exists there, not what it costs. +export default function AvailabilityTable({ rows, labels, values, linux }: AvailabilityTableProps) { const { m } = useI18n(); - const mac = joinList(macPlatform().deviceNames, m.common.list); - const ios = joinList(iosPlatform().deviceNames, m.common.list); - const iosValue = (row: AvailabilityRow, folded: boolean) => - platformAvailability(row.ios, row.iosNote, { labels, values, folded, yes: labels.availability.free }); + const columns: { key: string; name: string; cell: (row: AvailabilityRow, folded: boolean) => ReactNode }[] = [ + { key: 'mac', name: joinList(macPlatform().deviceNames, m.common.list), cell: (row, folded) => macAvailability(row, labels, folded) }, + { + key: 'ios', + name: joinList(iosPlatform().deviceNames, m.common.list), + cell: (row, folded) => platformAvailability(row.ios, row.iosNote, { labels, values, folded, yes: labels.availability.free }), + }, + ...(linux !== null + ? [ + { + key: 'linux', + name: linux, + cell: (row: AvailabilityRow, folded: boolean) => platformAvailability(row.linux, row.linuxNote, { labels, values, folded, yes: labels.availability.free }), + }, + ] + : []), + ]; return ( - + {labels.availability.capability} - - {mac} - - - {ios} - + {columns.map((column) => ( + + {column.name} + + ))} @@ -45,16 +60,18 @@ export default function AvailabilityTable({ rows, labels, values }: Availability - - {mac}: {macAvailability(row, labels, true)} - - - {ios}: {iosValue(row, true)} - + {columns.map((column) => ( + + {column.name}: {column.cell(row, true)} + + ))} - {macAvailability(row, labels, false)} - {iosValue(row, false)} + {columns.map((column) => ( + + {column.cell(row, false)} + + ))} ))} diff --git a/resources/js/components/features/model.ts b/resources/js/components/features/model.ts index deeffb54..b814840d 100644 --- a/resources/js/components/features/model.ts +++ b/resources/js/components/features/model.ts @@ -78,6 +78,10 @@ export function pageOnIos(content: FeaturePageContent): boolean { return content.availability.some((row) => row.ios !== 'no'); } +export function pageOnLinux(content: FeaturePageContent): boolean { + return content.availability.some((row) => row.linux !== 'no'); +} + /** True when anything on the page exists in the Mac app. */ export function pageOnMac(content: FeaturePageContent): boolean { return content.availability.some((row) => row.mac !== 'no'); diff --git a/resources/js/components/features/types.ts b/resources/js/components/features/types.ts index b45c6da7..2c351cae 100644 --- a/resources/js/components/features/types.ts +++ b/resources/js/components/features/types.ts @@ -5,6 +5,8 @@ * README.md in this directory documents the content schema for authors. */ +import type { LinuxSummary } from '../download/types.ts'; + /** One published engine in a list the page shows, from `engines.json`. */ export interface EngineItem { name: string; @@ -165,6 +167,7 @@ export interface FeaturePageProps { content: FeaturePageContent; labels: FeatureLabels; facts: Facts; + linux: LinuxSummary | null; } export interface FeatureHubProps { diff --git a/resources/js/i18n/messages/de/download.ts b/resources/js/i18n/messages/de/download.ts index 15a5924f..ffdedd71 100644 --- a/resources/js/i18n/messages/de/download.ts +++ b/resources/js/i18n/messages/de/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Für Mac herunterladen", + "linuxCta": "Unter Linux installieren", "release": { "dated": "Version {version}, veröffentlicht am {date}", "undated": "Version {version}", diff --git a/resources/js/i18n/messages/de/platforms.ts b/resources/js/i18n/messages/de/platforms.ts index a5141fe8..a7493662 100644 --- a/resources/js/i18n/messages/de/platforms.ts +++ b/resources/js/i18n/messages/de/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "In TablePro {version} für Mac hinzugefügt. Homebrew installiert möglicherweise noch eine ältere Version." + }, + "linux": { + "requirement": { + "beta": "{name} (Beta): {distributions}", + "stable": "{name}: {distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/de/pricing.ts b/resources/js/i18n/messages/de/pricing.ts index 82110322..6bda30da 100644 --- a/resources/js/i18n/messages/de/pricing.ts +++ b/resources/js/i18n/messages/de/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "Die Bezahlfunktionen, für eine Person.", "activation": { - "one": "Eine Person, {count} Mac.", - "other": "Eine Person, bis zu {count} Macs." + "one": "Eine Person, {count} Computer, Mac oder Linux.", + "other": "Eine Person, bis zu {count} Computer, Mac oder Linux." }, "includesTitle": "Alles aus Kostenlos, plus", "cta": "Pro kaufen" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "Pro für alle, dazu geteilte Verbindungen.", "activation": { - "one": "Eine Person pro Arbeitsplatz, {count} Mac.", - "other": "Eine Person pro Arbeitsplatz, bis zu {count} Macs." + "one": "Eine Person pro Arbeitsplatz, {count} Computer, Mac oder Linux.", + "other": "Eine Person pro Arbeitsplatz, bis zu {count} Computer, Mac oder Linux." }, "includesTitle": "Alles aus Pro, plus", "cta": "Team kaufen", @@ -116,15 +116,15 @@ export default { "team": "In Team", "all": "In jedem Tarif" }, - "macs": "Macs", + "macs": "Computer", "macsFree": "Keine Lizenz", "macsStarter": { - "one": "{count}", - "other": "Bis zu {count}" + "one": "{count}, Mac oder Linux", + "other": "Bis zu {count}, Mac oder Linux" }, "macsTeam": { - "one": "{count} pro Arbeitsplatz", - "other": "Bis zu {count} pro Arbeitsplatz" + "one": "{count} pro Arbeitsplatz, Mac oder Linux", + "other": "Bis zu {count} pro Arbeitsplatz, Mac oder Linux" }, "everythingElse": "Alles andere in der App", "everythingElseDetail": "Alle unterstützten Datenbanksysteme, SQL-Editor, KI-Assistent, MCP-Server und Safe Mode", diff --git a/resources/js/i18n/messages/en/download.ts b/resources/js/i18n/messages/en/download.ts index 68b49bdd..cfcaa71d 100644 --- a/resources/js/i18n/messages/en/download.ts +++ b/resources/js/i18n/messages/en/download.ts @@ -1,5 +1,6 @@ export default { macCta: 'Download for Mac', + linuxCta: 'Install on Linux', release: { dated: 'Version {version}, released {date}', undated: 'Version {version}', diff --git a/resources/js/i18n/messages/en/platforms.ts b/resources/js/i18n/messages/en/platforms.ts index 21fb75b0..fb0d50cf 100644 --- a/resources/js/i18n/messages/en/platforms.ts +++ b/resources/js/i18n/messages/en/platforms.ts @@ -41,4 +41,11 @@ export default { badge: '{version}', badgeLabel: 'Added in TablePro {version} for Mac. Homebrew may still install an earlier version.', }, + linux: { + // `{distributions}`: "Ubuntu 26.04+, Fedora 44+ or any distribution via Flatpak". + requirement: { + beta: '{name} beta: {distributions}', + stable: '{name}: {distributions}', + }, + }, }; diff --git a/resources/js/i18n/messages/en/pricing.ts b/resources/js/i18n/messages/en/pricing.ts index 44953e20..857e00e3 100644 --- a/resources/js/i18n/messages/en/pricing.ts +++ b/resources/js/i18n/messages/en/pricing.ts @@ -32,8 +32,8 @@ export default { name: 'Pro', description: 'The paid features, for one person.', activation: { - one: 'One person, {count} Mac.', - other: 'One person, up to {count} Macs.', + one: 'One person, {count} computer, Mac or Linux.', + other: 'One person, up to {count} computers, Mac or Linux.', }, includesTitle: 'Everything in Free, plus', cta: 'Get Pro', @@ -42,8 +42,8 @@ export default { name: 'Team', description: 'Pro for everyone, and shared connections.', activation: { - one: 'One person per seat, on {count} Mac.', - other: 'One person per seat, on up to {count} Macs.', + one: 'One person per seat, on {count} computer, Mac or Linux.', + other: 'One person per seat, on up to {count} computers, Mac or Linux.', }, includesTitle: 'Everything in Pro, plus', cta: 'Get Team', @@ -110,10 +110,10 @@ export default { team: 'In Team', all: 'In every plan', }, - macs: 'Macs', + macs: 'Computers', macsFree: 'No license', - macsStarter: { one: '{count}', other: 'Up to {count}' }, - macsTeam: { one: '{count} per seat', other: 'Up to {count} per seat' }, + macsStarter: { one: '{count}, Mac or Linux', other: 'Up to {count}, Mac or Linux' }, + macsTeam: { one: '{count} per seat, Mac or Linux', other: 'Up to {count} per seat, Mac or Linux' }, everythingElse: 'Everything else in the app', everythingElseDetail: 'Every supported engine, the SQL editor, the AI assistant, the MCP server and Safe Mode', iphoneNote: 'The iPhone and iPad app has no paid features. iCloud Sync is free there; to sync with a Mac, the Mac needs Pro or Team.', diff --git a/resources/js/i18n/messages/es/download.ts b/resources/js/i18n/messages/es/download.ts index 9c32dde4..f6b9fe9b 100644 --- a/resources/js/i18n/messages/es/download.ts +++ b/resources/js/i18n/messages/es/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Descargar para Mac", + "linuxCta": "Instalar en Linux", "release": { "dated": "Versión {version}, publicada el {date}", "undated": "Versión {version}", diff --git a/resources/js/i18n/messages/es/platforms.ts b/resources/js/i18n/messages/es/platforms.ts index f2cd63c7..abc3b537 100644 --- a/resources/js/i18n/messages/es/platforms.ts +++ b/resources/js/i18n/messages/es/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "Añadido en TablePro {version} para Mac. Homebrew puede seguir instalando una versión anterior." + }, + "linux": { + "requirement": { + "beta": "{name} (beta): {distributions}", + "stable": "{name}: {distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/es/pricing.ts b/resources/js/i18n/messages/es/pricing.ts index e9c278c3..b1bd11be 100644 --- a/resources/js/i18n/messages/es/pricing.ts +++ b/resources/js/i18n/messages/es/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "Las funciones de pago, para una persona.", "activation": { - "one": "Una persona, {count} Mac.", - "other": "Una persona, hasta {count} Mac." + "one": "Una persona, {count} ordenador, Mac o Linux.", + "other": "Una persona, hasta {count} ordenadores, Mac o Linux." }, "includesTitle": "Todo lo del plan Gratis, más", "cta": "Comprar Pro" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "Pro para todos, y conexiones compartidas.", "activation": { - "one": "Una persona por puesto, en {count} Mac.", - "other": "Una persona por puesto, en hasta {count} Mac." + "one": "Una persona por puesto, en {count} ordenador, Mac o Linux.", + "other": "Una persona por puesto, en hasta {count} ordenadores, Mac o Linux." }, "includesTitle": "Todo lo de Pro, más", "cta": "Comprar Team", @@ -116,15 +116,15 @@ export default { "team": "En Team", "all": "En todos los planes" }, - "macs": "Mac", + "macs": "Ordenadores", "macsFree": "Sin licencia", "macsStarter": { - "one": "{count}", - "other": "Hasta {count}" + "one": "{count}, Mac o Linux", + "other": "Hasta {count}, Mac o Linux" }, "macsTeam": { - "one": "{count} por puesto", - "other": "Hasta {count} por puesto" + "one": "{count} por puesto, Mac o Linux", + "other": "Hasta {count} por puesto, Mac o Linux" }, "everythingElse": "Todo lo demás en la app", "everythingElseDetail": "Todos los motores compatibles, el editor SQL, el asistente de IA, el servidor MCP y Safe Mode", diff --git a/resources/js/i18n/messages/fr/download.ts b/resources/js/i18n/messages/fr/download.ts index b32b7f5c..6f232faf 100644 --- a/resources/js/i18n/messages/fr/download.ts +++ b/resources/js/i18n/messages/fr/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Télécharger pour Mac", + "linuxCta": "Installer sur Linux", "release": { "dated": "Version {version}, publiée le {date}", "undated": "Version {version}", diff --git a/resources/js/i18n/messages/fr/platforms.ts b/resources/js/i18n/messages/fr/platforms.ts index b04f1e4b..5a664d20 100644 --- a/resources/js/i18n/messages/fr/platforms.ts +++ b/resources/js/i18n/messages/fr/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "Ajouté dans TablePro {version} pour Mac. Homebrew peut encore installer une version antérieure." + }, + "linux": { + "requirement": { + "beta": "{name} (bêta) : {distributions}", + "stable": "{name} : {distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/fr/pricing.ts b/resources/js/i18n/messages/fr/pricing.ts index af6a7649..90ba19a5 100644 --- a/resources/js/i18n/messages/fr/pricing.ts +++ b/resources/js/i18n/messages/fr/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "Les fonctionnalités payantes, pour une personne.", "activation": { - "one": "Une personne, {count} Mac.", - "other": "Une personne, jusqu’à {count} Mac." + "one": "Une personne, {count} ordinateur, Mac ou Linux.", + "other": "Une personne, jusqu’à {count} ordinateurs, Mac ou Linux." }, "includesTitle": "Tout ce qui est gratuit, plus", "cta": "Acheter Pro" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "Pro pour tous, et des connexions partagées.", "activation": { - "one": "Une personne par poste, {count} Mac.", - "other": "Une personne par poste, jusqu’à {count} Mac." + "one": "Une personne par poste, {count} ordinateur, Mac ou Linux.", + "other": "Une personne par poste, jusqu’à {count} ordinateurs, Mac ou Linux." }, "includesTitle": "Tout ce que contient Pro, plus", "cta": "Acheter Team", @@ -116,15 +116,15 @@ export default { "team": "Dans Team", "all": "Dans toutes les offres" }, - "macs": "Mac", + "macs": "Ordinateurs", "macsFree": "Sans licence", "macsStarter": { - "one": "{count}", - "other": "Jusqu’à {count}" + "one": "{count}, Mac ou Linux", + "other": "Jusqu’à {count}, Mac ou Linux" }, "macsTeam": { - "one": "{count} par poste", - "other": "Jusqu’à {count} par poste" + "one": "{count} par poste, Mac ou Linux", + "other": "Jusqu’à {count} par poste, Mac ou Linux" }, "everythingElse": "Tout le reste de l’application", "everythingElseDetail": "Tous les moteurs pris en charge, l’éditeur SQL, l’assistant IA, le serveur MCP et Safe Mode", diff --git a/resources/js/i18n/messages/id/download.ts b/resources/js/i18n/messages/id/download.ts index ef9cdc5a..4dce8252 100644 --- a/resources/js/i18n/messages/id/download.ts +++ b/resources/js/i18n/messages/id/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Unduh untuk Mac", + "linuxCta": "Instal di Linux", "release": { "dated": "Versi {version}, dirilis {date}", "undated": "Versi {version}", diff --git a/resources/js/i18n/messages/id/platforms.ts b/resources/js/i18n/messages/id/platforms.ts index a54e0b28..e1c766a6 100644 --- a/resources/js/i18n/messages/id/platforms.ts +++ b/resources/js/i18n/messages/id/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "Ditambahkan di TablePro {version} untuk Mac. Homebrew mungkin masih menginstal versi sebelumnya." + }, + "linux": { + "requirement": { + "beta": "{name} (beta): {distributions}", + "stable": "{name}: {distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/id/pricing.ts b/resources/js/i18n/messages/id/pricing.ts index 2e13f97b..857924f2 100644 --- a/resources/js/i18n/messages/id/pricing.ts +++ b/resources/js/i18n/messages/id/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "Fitur berbayar, untuk satu orang.", "activation": { - "one": "Satu orang, {count} Mac.", - "other": "Satu orang, hingga {count} Mac." + "one": "Satu orang, {count} komputer, Mac atau Linux.", + "other": "Satu orang, hingga {count} komputer, Mac atau Linux." }, "includesTitle": "Semua fitur Gratis, ditambah", "cta": "Beli Pro" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "Pro untuk semua orang, plus koneksi bersama.", "activation": { - "one": "Satu orang per seat, {count} Mac.", - "other": "Satu orang per seat, hingga {count} Mac." + "one": "Satu orang per seat, {count} komputer, Mac atau Linux.", + "other": "Satu orang per seat, hingga {count} komputer, Mac atau Linux." }, "includesTitle": "Semua fitur Pro, ditambah", "cta": "Beli Team", @@ -116,15 +116,15 @@ export default { "team": "Di Team", "all": "Di semua paket" }, - "macs": "Mac", + "macs": "Komputer", "macsFree": "Tanpa lisensi", "macsStarter": { - "one": "{count}", - "other": "Hingga {count}" + "one": "{count}, Mac atau Linux", + "other": "Hingga {count}, Mac atau Linux" }, "macsTeam": { - "one": "{count} per seat", - "other": "Hingga {count} per seat" + "one": "{count} per seat, Mac atau Linux", + "other": "Hingga {count} per seat, Mac atau Linux" }, "everythingElse": "Semua fitur lain dalam aplikasi", "everythingElseDetail": "Semua mesin database yang didukung, editor SQL, asisten AI, server MCP, dan Safe Mode", diff --git a/resources/js/i18n/messages/it/download.ts b/resources/js/i18n/messages/it/download.ts index ad5ad8e9..b80666ec 100644 --- a/resources/js/i18n/messages/it/download.ts +++ b/resources/js/i18n/messages/it/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Scarica per Mac", + "linuxCta": "Installa su Linux", "release": { "dated": "Versione {version}, rilasciata il {date}", "undated": "Versione {version}", diff --git a/resources/js/i18n/messages/it/platforms.ts b/resources/js/i18n/messages/it/platforms.ts index 7c01468b..e25d7223 100644 --- a/resources/js/i18n/messages/it/platforms.ts +++ b/resources/js/i18n/messages/it/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "Aggiunta in TablePro {version} per Mac. Homebrew potrebbe ancora installare una versione precedente." + }, + "linux": { + "requirement": { + "beta": "{name} (beta): {distributions}", + "stable": "{name}: {distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/it/pricing.ts b/resources/js/i18n/messages/it/pricing.ts index 6cff7733..72e3f236 100644 --- a/resources/js/i18n/messages/it/pricing.ts +++ b/resources/js/i18n/messages/it/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "Le funzionalità a pagamento, per una persona.", "activation": { - "one": "Una persona, {count} Mac.", - "other": "Una persona, fino a {count} Mac." + "one": "Una persona, {count} computer, Mac o Linux.", + "other": "Una persona, fino a {count} computer, Mac o Linux." }, "includesTitle": "Tutto il piano Gratuito, più", "cta": "Acquista Pro" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "Pro per tutti, e connessioni condivise.", "activation": { - "one": "Una persona per posto, {count} Mac.", - "other": "Una persona per posto, fino a {count} Mac." + "one": "Una persona per posto, {count} computer, Mac o Linux.", + "other": "Una persona per posto, fino a {count} computer, Mac o Linux." }, "includesTitle": "Tutto il piano Pro, più", "cta": "Acquista Team", @@ -116,15 +116,15 @@ export default { "team": "In Team", "all": "In ogni piano" }, - "macs": "Mac", + "macs": "Computer", "macsFree": "Nessuna licenza", "macsStarter": { - "one": "{count}", - "other": "Fino a {count}" + "one": "{count}, Mac o Linux", + "other": "Fino a {count}, Mac o Linux" }, "macsTeam": { - "one": "{count} per posto", - "other": "Fino a {count} per posto" + "one": "{count} per posto, Mac o Linux", + "other": "Fino a {count} per posto, Mac o Linux" }, "everythingElse": "Tutto il resto dell’app", "everythingElseDetail": "Ogni motore supportato, l’editor SQL, l’assistente IA, il server MCP e Safe Mode", diff --git a/resources/js/i18n/messages/ja/download.ts b/resources/js/i18n/messages/ja/download.ts index ab42cbaf..a5b40f57 100644 --- a/resources/js/i18n/messages/ja/download.ts +++ b/resources/js/i18n/messages/ja/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Mac 版をダウンロード", + "linuxCta": "Linux にインストール", "release": { "dated": "バージョン {version}、{date} リリース", "undated": "バージョン {version}", diff --git a/resources/js/i18n/messages/ja/platforms.ts b/resources/js/i18n/messages/ja/platforms.ts index 0c4738e3..6a6d3cc1 100644 --- a/resources/js/i18n/messages/ja/platforms.ts +++ b/resources/js/i18n/messages/ja/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "Mac 版 TablePro {version} で追加。Homebrew では以前のバージョンがインストールされる場合があります。" + }, + "linux": { + "requirement": { + "beta": "{name}(ベータ版):{distributions}", + "stable": "{name}:{distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/ja/pricing.ts b/resources/js/i18n/messages/ja/pricing.ts index 7dc34bd5..8d7d2a0d 100644 --- a/resources/js/i18n/messages/ja/pricing.ts +++ b/resources/js/i18n/messages/ja/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "1 人で使う有料機能。", "activation": { - "one": "1 人、Mac {count} 台。", - "other": "1 人、Mac 最大 {count} 台。" + "one": "1 人、Mac または Linux のコンピューター {count} 台。", + "other": "1 人、Mac または Linux のコンピューター最大 {count} 台。" }, "includesTitle": "無料プランの全機能に加えて", "cta": "Pro を購入" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "全員に Pro、さらに接続の共有。", "activation": { - "one": "1 シートにつき 1 人、Mac {count} 台。", - "other": "1 シートにつき 1 人、Mac 最大 {count} 台。" + "one": "1 シートにつき 1 人、Mac または Linux のコンピューター {count} 台。", + "other": "1 シートにつき 1 人、Mac または Linux のコンピューター最大 {count} 台。" }, "includesTitle": "Pro の全機能に加えて", "cta": "Team を購入", @@ -116,15 +116,15 @@ export default { "team": "Team に含まれる", "all": "すべてのプランに含まれる" }, - "macs": "Mac 台数", + "macs": "コンピューター台数", "macsFree": "ライセンス不要", "macsStarter": { - "one": "{count}", - "other": "最大 {count}" + "one": "{count} 台(Mac または Linux)", + "other": "最大 {count} 台(Mac または Linux)" }, "macsTeam": { - "one": "1 シートにつき {count} 台", - "other": "1 シートにつき最大 {count} 台" + "one": "1 シートにつき {count} 台(Mac または Linux)", + "other": "1 シートにつき最大 {count} 台(Mac または Linux)" }, "everythingElse": "アプリのその他すべての機能", "everythingElseDetail": "すべての対応エンジン、SQL エディター、AI アシスタント、MCP サーバー、Safe Mode", diff --git a/resources/js/i18n/messages/ko/download.ts b/resources/js/i18n/messages/ko/download.ts index fec4fd56..351b1e12 100644 --- a/resources/js/i18n/messages/ko/download.ts +++ b/resources/js/i18n/messages/ko/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Mac용 다운로드", + "linuxCta": "Linux에 설치", "release": { "dated": "버전 {version}, {date} 출시", "undated": "버전 {version}", diff --git a/resources/js/i18n/messages/ko/platforms.ts b/resources/js/i18n/messages/ko/platforms.ts index 2662a2f3..81b34912 100644 --- a/resources/js/i18n/messages/ko/platforms.ts +++ b/resources/js/i18n/messages/ko/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "Mac용 TablePro {version}에 추가되었습니다. Homebrew로는 아직 이전 버전이 설치될 수 있습니다." + }, + "linux": { + "requirement": { + "beta": "{name} (베타): {distributions}", + "stable": "{name}: {distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/ko/pricing.ts b/resources/js/i18n/messages/ko/pricing.ts index abad82fe..e98ee8ce 100644 --- a/resources/js/i18n/messages/ko/pricing.ts +++ b/resources/js/i18n/messages/ko/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "한 사람을 위한 유료 기능.", "activation": { - "one": "1명, Mac {count}대.", - "other": "1명, Mac 최대 {count}대." + "one": "1명, Mac 또는 Linux 컴퓨터 {count}대.", + "other": "1명, Mac 또는 Linux 컴퓨터 최대 {count}대." }, "includesTitle": "무료 플랜의 모든 기능에 더해", "cta": "Pro 구매" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "모두를 위한 Pro, 그리고 공유 연결.", "activation": { - "one": "좌석당 1명, Mac {count}대.", - "other": "좌석당 1명, Mac 최대 {count}대." + "one": "좌석당 1명, Mac 또는 Linux 컴퓨터 {count}대.", + "other": "좌석당 1명, Mac 또는 Linux 컴퓨터 최대 {count}대." }, "includesTitle": "Pro의 모든 기능에 더해", "cta": "Team 구매", @@ -116,15 +116,15 @@ export default { "team": "Team 포함", "all": "모든 플랜 포함" }, - "macs": "Mac 수", + "macs": "컴퓨터 수", "macsFree": "라이선스 불필요", "macsStarter": { - "one": "{count}", - "other": "최대 {count}" + "one": "{count}대 (Mac 또는 Linux)", + "other": "최대 {count}대 (Mac 또는 Linux)" }, "macsTeam": { - "one": "좌석당 {count}대", - "other": "좌석당 최대 {count}대" + "one": "좌석당 {count}대 (Mac 또는 Linux)", + "other": "좌석당 최대 {count}대 (Mac 또는 Linux)" }, "everythingElse": "앱의 나머지 모든 기능", "everythingElseDetail": "지원하는 모든 엔진, SQL 편집기, AI 어시스턴트, MCP 서버 및 Safe Mode", diff --git a/resources/js/i18n/messages/pt-BR/download.ts b/resources/js/i18n/messages/pt-BR/download.ts index 47b41122..cde9e426 100644 --- a/resources/js/i18n/messages/pt-BR/download.ts +++ b/resources/js/i18n/messages/pt-BR/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "Baixar para Mac", + "linuxCta": "Instalar no Linux", "release": { "dated": "Versão {version}, lançada em {date}", "undated": "Versão {version}", diff --git a/resources/js/i18n/messages/pt-BR/platforms.ts b/resources/js/i18n/messages/pt-BR/platforms.ts index 22c13d16..5601d200 100644 --- a/resources/js/i18n/messages/pt-BR/platforms.ts +++ b/resources/js/i18n/messages/pt-BR/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "Adicionado no TablePro {version} para Mac. O Homebrew ainda pode instalar uma versão anterior." + }, + "linux": { + "requirement": { + "beta": "{name} (beta): {distributions}", + "stable": "{name}: {distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/pt-BR/pricing.ts b/resources/js/i18n/messages/pt-BR/pricing.ts index e78bd804..af0d8a1d 100644 --- a/resources/js/i18n/messages/pt-BR/pricing.ts +++ b/resources/js/i18n/messages/pt-BR/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "Os recursos pagos, para uma pessoa.", "activation": { - "one": "Uma pessoa, {count} Mac.", - "other": "Uma pessoa, até {count} Macs." + "one": "Uma pessoa, {count} computador, Mac ou Linux.", + "other": "Uma pessoa, até {count} computadores, Mac ou Linux." }, "includesTitle": "Tudo do plano Grátis, mais", "cta": "Comprar Pro" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "Pro para todos, e conexões compartilhadas.", "activation": { - "one": "Uma pessoa por vaga, {count} Mac.", - "other": "Uma pessoa por vaga, em até {count} Macs." + "one": "Uma pessoa por vaga, {count} computador, Mac ou Linux.", + "other": "Uma pessoa por vaga, em até {count} computadores, Mac ou Linux." }, "includesTitle": "Tudo do Pro, mais", "cta": "Comprar Team", @@ -116,15 +116,15 @@ export default { "team": "No Team", "all": "Em todos os planos" }, - "macs": "Macs", + "macs": "Computadores", "macsFree": "Sem licença", "macsStarter": { - "one": "{count}", - "other": "Até {count}" + "one": "{count}, Mac ou Linux", + "other": "Até {count}, Mac ou Linux" }, "macsTeam": { - "one": "{count} por vaga", - "other": "Até {count} por vaga" + "one": "{count} por vaga, Mac ou Linux", + "other": "Até {count} por vaga, Mac ou Linux" }, "everythingElse": "Todo o restante do app", "everythingElseDetail": "Todos os mecanismos compatíveis, o editor SQL, o assistente de IA, o servidor MCP e o Safe Mode", diff --git a/resources/js/i18n/messages/vi/download.ts b/resources/js/i18n/messages/vi/download.ts index d42d92f9..83716e1f 100644 --- a/resources/js/i18n/messages/vi/download.ts +++ b/resources/js/i18n/messages/vi/download.ts @@ -3,6 +3,7 @@ import type { Messages } from '../../types.ts'; // ios.badge is the visible text of Apple's Vietnamese badge artwork, word for word: an accessible name must match it. export default { "macCta": "Tải về cho Mac", + "linuxCta": "Cài đặt trên Linux", "release": { "dated": "Phiên bản {version}, phát hành ngày {date}", "undated": "Phiên bản {version}", diff --git a/resources/js/i18n/messages/vi/platforms.ts b/resources/js/i18n/messages/vi/platforms.ts index 27244dd3..dda297a6 100644 --- a/resources/js/i18n/messages/vi/platforms.ts +++ b/resources/js/i18n/messages/vi/platforms.ts @@ -33,4 +33,10 @@ export default { badge: '{version}', badgeLabel: 'Có từ TablePro {version} cho Mac. Homebrew có thể vẫn cài bản cũ hơn.', }, + linux: { + requirement: { + beta: '{name} (bản beta): {distributions}', + stable: '{name}: {distributions}', + }, + }, } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/vi/pricing.ts b/resources/js/i18n/messages/vi/pricing.ts index e9d9b73d..b0d0dfe2 100644 --- a/resources/js/i18n/messages/vi/pricing.ts +++ b/resources/js/i18n/messages/vi/pricing.ts @@ -30,7 +30,7 @@ export default { name: 'Pro', description: 'Các tính năng trả phí, cho một người.', activation: { - other: 'Một người, tối đa {count} máy Mac.', + other: 'Một người, tối đa {count} máy tính, Mac hoặc Linux.', }, includesTitle: 'Mọi thứ trong gói Miễn phí, cộng thêm', cta: 'Mua gói Pro', @@ -39,7 +39,7 @@ export default { name: 'Team', description: 'Pro cho mọi người, cùng connection dùng chung.', activation: { - other: 'Một người mỗi seat, tối đa {count} máy Mac.', + other: 'Một người mỗi seat, tối đa {count} máy tính, Mac hoặc Linux.', }, includesTitle: 'Mọi thứ trong gói Pro, cộng thêm', cta: 'Mua gói Team', @@ -100,10 +100,10 @@ export default { team: 'Có trong Team', all: 'Có trong mọi gói', }, - macs: 'Số máy Mac', + macs: 'Số máy tính', macsFree: 'Không cần license', - macsStarter: { other: 'Tối đa {count}' }, - macsTeam: { other: 'Tối đa {count} mỗi seat' }, + macsStarter: { other: 'Tối đa {count}, Mac hoặc Linux' }, + macsTeam: { other: 'Tối đa {count} mỗi seat, Mac hoặc Linux' }, everythingElse: 'Mọi phần còn lại của ứng dụng', everythingElseDetail: 'Mọi engine được hỗ trợ, SQL editor, trợ lý AI, MCP server và Safe Mode', iphoneNote: 'Ứng dụng cho iPhone và iPad không có tính năng trả phí. Trên iPhone và iPad, iCloud Sync miễn phí; muốn đồng bộ với máy Mac thì máy Mac cần gói Pro hoặc Team.', diff --git a/resources/js/i18n/messages/zh-Hans/download.ts b/resources/js/i18n/messages/zh-Hans/download.ts index 683c940e..e3b422fa 100644 --- a/resources/js/i18n/messages/zh-Hans/download.ts +++ b/resources/js/i18n/messages/zh-Hans/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "下载 Mac 版", + "linuxCta": "在 Linux 上安装", "release": { "dated": "版本 {version},发布于 {date}", "undated": "版本 {version}", diff --git a/resources/js/i18n/messages/zh-Hans/platforms.ts b/resources/js/i18n/messages/zh-Hans/platforms.ts index 572a630d..fe836836 100644 --- a/resources/js/i18n/messages/zh-Hans/platforms.ts +++ b/resources/js/i18n/messages/zh-Hans/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "在 Mac 版 TablePro {version} 中加入。Homebrew 可能仍会安装旧版本。" + }, + "linux": { + "requirement": { + "beta": "{name}(Beta 版):{distributions}", + "stable": "{name}:{distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/zh-Hans/pricing.ts b/resources/js/i18n/messages/zh-Hans/pricing.ts index 933847e5..82dfe857 100644 --- a/resources/js/i18n/messages/zh-Hans/pricing.ts +++ b/resources/js/i18n/messages/zh-Hans/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "付费功能,供一人使用。", "activation": { - "one": "1 人,{count} 台 Mac。", - "other": "1 人,最多 {count} 台 Mac。" + "one": "1 人,{count} 台 Mac 或 Linux 电脑。", + "other": "1 人,最多 {count} 台 Mac 或 Linux 电脑。" }, "includesTitle": "免费版的全部功能,外加", "cta": "购买 Pro" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "人人都有 Pro,外加共享连接。", "activation": { - "one": "每个席位 1 人,{count} 台 Mac。", - "other": "每个席位 1 人,最多 {count} 台 Mac。" + "one": "每个席位 1 人,{count} 台 Mac 或 Linux 电脑。", + "other": "每个席位 1 人,最多 {count} 台 Mac 或 Linux 电脑。" }, "includesTitle": "Pro 的全部功能,外加", "cta": "购买 Team", @@ -116,15 +116,15 @@ export default { "team": "Team 包含", "all": "所有方案包含" }, - "macs": "Mac 台数", + "macs": "电脑台数", "macsFree": "无需许可证", "macsStarter": { - "one": "{count}", - "other": "最多 {count}" + "one": "{count} 台(Mac 或 Linux)", + "other": "最多 {count} 台(Mac 或 Linux)" }, "macsTeam": { - "one": "每席位 {count} 台", - "other": "每席位最多 {count} 台" + "one": "每席位 {count} 台(Mac 或 Linux)", + "other": "每席位最多 {count} 台(Mac 或 Linux)" }, "everythingElse": "应用中的其他所有功能", "everythingElseDetail": "所有受支持的引擎、SQL 编辑器、AI 助手、MCP 服务器和 Safe Mode", diff --git a/resources/js/i18n/messages/zh-Hant/download.ts b/resources/js/i18n/messages/zh-Hant/download.ts index 9235e18e..4e1e3a33 100644 --- a/resources/js/i18n/messages/zh-Hant/download.ts +++ b/resources/js/i18n/messages/zh-Hant/download.ts @@ -2,6 +2,7 @@ import type { Messages } from '../../types.ts'; export default { "macCta": "下載 Mac 版", + "linuxCta": "在 Linux 上安裝", "release": { "dated": "版本 {version},發佈於 {date}", "undated": "版本 {version}", diff --git a/resources/js/i18n/messages/zh-Hant/platforms.ts b/resources/js/i18n/messages/zh-Hant/platforms.ts index bb1202d0..cede7639 100644 --- a/resources/js/i18n/messages/zh-Hant/platforms.ts +++ b/resources/js/i18n/messages/zh-Hant/platforms.ts @@ -32,5 +32,11 @@ export default { "release": { "badge": "{version}", "badgeLabel": "在 Mac 版 TablePro {version} 中加入。Homebrew 可能仍會安裝舊版本。" + }, + "linux": { + "requirement": { + "beta": "{name}(Beta 版):{distributions}", + "stable": "{name}:{distributions}" + } } } satisfies Messages['platforms']; diff --git a/resources/js/i18n/messages/zh-Hant/pricing.ts b/resources/js/i18n/messages/zh-Hant/pricing.ts index 37b8ba6e..2dbc0b0d 100644 --- a/resources/js/i18n/messages/zh-Hant/pricing.ts +++ b/resources/js/i18n/messages/zh-Hant/pricing.ts @@ -36,8 +36,8 @@ export default { "name": "Pro", "description": "付費功能,供一人使用。", "activation": { - "one": "1 人,{count} 台 Mac。", - "other": "1 人,最多 {count} 台 Mac。" + "one": "1 人,{count} 台 Mac 或 Linux 電腦。", + "other": "1 人,最多 {count} 台 Mac 或 Linux 電腦。" }, "includesTitle": "免費版的所有功能,另加", "cta": "購買 Pro" @@ -46,8 +46,8 @@ export default { "name": "Team", "description": "人人都有 Pro,另加共用連線。", "activation": { - "one": "每個席位 1 人,{count} 台 Mac。", - "other": "每個席位 1 人,最多 {count} 台 Mac。" + "one": "每個席位 1 人,{count} 台 Mac 或 Linux 電腦。", + "other": "每個席位 1 人,最多 {count} 台 Mac 或 Linux 電腦。" }, "includesTitle": "Pro 的所有功能,另加", "cta": "購買 Team", @@ -116,15 +116,15 @@ export default { "team": "Team 包含", "all": "所有方案包含" }, - "macs": "Mac 台數", + "macs": "電腦台數", "macsFree": "無需授權", "macsStarter": { - "one": "{count}", - "other": "最多 {count}" + "one": "{count} 台(Mac 或 Linux)", + "other": "最多 {count} 台(Mac 或 Linux)" }, "macsTeam": { - "one": "每席位 {count} 台", - "other": "每席位最多 {count} 台" + "one": "每席位 {count} 台(Mac 或 Linux)", + "other": "每席位最多 {count} 台(Mac 或 Linux)" }, "everythingElse": "App 中的其他所有功能", "everythingElseDetail": "所有支援的引擎、SQL 編輯器、AI 助理、MCP 伺服器與 Safe Mode", diff --git a/resources/js/pages/Compare/Index.tsx b/resources/js/pages/Compare/Index.tsx index 0b326d7c..da5d8854 100644 --- a/resources/js/pages/Compare/Index.tsx +++ b/resources/js/pages/Compare/Index.tsx @@ -58,7 +58,7 @@ export default function CompareIndex({ content, products, freeNotes, titles, che list: m.common.list, plural: (node, count, values) => plural(node, count, values), }; - const facts = tableproFacts(null, tablepro.featuredEngines, m); + const facts = tableproFacts(null, tablepro, m); // The check date never breaks across lines in the meta line or the captions. const checked = keepTogether(dateLabel(dates, checkedAt)); const numbered = numberSources(products); diff --git a/resources/js/pages/Compare/Show.tsx b/resources/js/pages/Compare/Show.tsx index 206e043d..5956f342 100644 --- a/resources/js/pages/Compare/Show.tsx +++ b/resources/js/pages/Compare/Show.tsx @@ -24,21 +24,8 @@ import { trackDownload } from '@/lib/analytics'; import { docsUrl } from '@/lib/data/facts'; import { absoluteUrl, breadcrumbNode, graph, macAppId, webPageNode } from '@/lib/structured-data'; -/** - * `/compare/{slug}` and `/vi/compare/{slug}` (sitemap §A.4, §E.3; - * design-system §8.5). - * - * One template for every comparison. The page's copy is - * `content/{locale}/compare/{slug}.json`; every fact about the other product - * is its `comparisons.json` entry, sent as `product` with its sources; and - * TablePro's column is derived from TablePro's own data - * (components/compare/tablepro-facts.ts). Each competitor fact carries a - * numbered source with the date it was checked. - * - * Structured data is a `WebPage` about the Mac app plus the breadcrumb trail. - * There is no `Review` of the other product, no rating, no `FAQPage` and no - * benchmark anywhere on the page. - */ +// Structured data is a WebPage about the Mac app and the breadcrumb trail: no Review of the other product, no rating, no +// FAQPage and no benchmark. export default function CompareShow({ slug, content, labels, product, rows: rowOrder, others, dates, tablepro }: ComparePageProps) { const { canonicalBaseUrl } = usePage().props; const { locale, m, fmt, plural, path } = useI18n(); @@ -50,7 +37,7 @@ export default function CompareShow({ slug, content, labels, product, rows: rowO list: m.common.list, plural: (node, count, values) => plural(node, count, values), }; - const facts = tableproFacts(product.id, tablepro.featuredEngines, m); + const facts = tableproFacts(product.id, tablepro, m); const values = productTokens(product, dates, { ...paidExamples(m), macLanguages: macLanguages(labels.languages, m) }); const numbers = sourceNumbers(product); // The check date never breaks across lines in the meta line or the caption. @@ -250,7 +237,9 @@ export default function CompareShow({ slug, content, labels, product, rows: rowO

{tablepro.mac !== null && tablepro.ios !== null && (

- {fmt(labels.sources.tablepro, { macVersion: tablepro.mac.version, iosVersion: tablepro.ios.version })} + {tablepro.linux !== null && tablepro.linux.version !== null + ? fmt(labels.sources.tableproLinux, { macVersion: tablepro.mac.version, iosVersion: tablepro.ios.version, linuxVersion: tablepro.linux.version }) + : fmt(labels.sources.tablepro, { macVersion: tablepro.mac.version, iosVersion: tablepro.ios.version })}

)}

{labels.sources.trademarks}

diff --git a/resources/js/pages/Databases/Index.tsx b/resources/js/pages/Databases/Index.tsx index 69f59153..a25b6c89 100644 --- a/resources/js/pages/Databases/Index.tsx +++ b/resources/js/pages/Databases/Index.tsx @@ -1,6 +1,7 @@ import { usePage } from '@inertiajs/react'; import DownloadBand from '@/components/databases/download-band'; import EngineTable from '@/components/databases/engine-table'; +import { linuxStatus } from '@/components/databases/format'; import type { EngineCategory, HubPageProps } from '@/components/databases/types'; import SEOHead from '@/components/seo/seo-head'; import AssetSlot, { useShownSlot } from '@/components/ui/asset-slot'; @@ -14,16 +15,8 @@ import { absoluteUrl, breadcrumbNode, collectionPageNode, graph, macAppId } from import { cn } from '@/lib/utils'; import LandingLayout from '@/layouts/landing-layout'; -/** - * `/databases` and `/vi/databases` (sitemap §A.3, §E.8; design-system §8.3). - * - * A table generated from engines.json, one section per category in the - * sitemap's order, so a category keeps its id (`#wide-column`, `#streaming`) - * even when it holds one engine. Every published engine appears exactly once: - * an engine with its own page links to it, a merged engine links to its - * section on the family page, and a hub-only engine is a row with its own id, - * its limits and its setup guide. Counts are lengths of the data, never typed. - */ +// One table per category in the sitemap's order, so a category keeps its id even when it holds one engine. Every +// published engine appears exactly once, and every count and list is derived from the data. export default function DatabasesIndex({ content, engines, copy, iosEngines, platforms, links }: HubPageProps) { const { canonicalBaseUrl } = usePage().props; const { locale, m, fmt, path } = useI18n(); @@ -43,6 +36,11 @@ export default function DatabasesIndex({ content, engines, copy, iosEngines, pla const byId = new Map(engines.map((engine) => [engine.id, engine])); const onIos = iosEngines.map((id) => byId.get(id)?.name).filter((name): name is string => name !== undefined); const syncedOnly = engines.filter((engine) => engine.ios.openable && !engine.ios.inPicker).map((engine) => engine.name); + const linux = platforms.linux !== null ? joinList(platforms.linux.deviceNames, m.common.list) : null; + const onLinux = (status: ReturnType) => engines.filter((engine) => linuxStatus(engine) === status).map((engine) => engine.name); + const linuxTested = onLinux('tested'); + const linuxUntested = onLinux('untested'); + const linuxNone = onLinux('none'); const docsBase = links.docs; const slot = useShownSlot()(content.drivers.asset); @@ -96,6 +94,7 @@ export default function DatabasesIndex({ content, engines, copy, iosEngines, pla table={content.table} labels={content.labels} docsBase={docsBase} + linux={linux} />
); @@ -136,6 +135,22 @@ export default function DatabasesIndex({ content, engines, copy, iosEngines, pla
)} + {linux !== null && linuxTested.length > 0 && ( +
+
+

{fmt(content.linux.tested, { engines: joinList(linuxTested, m.common.list) })}

+ {linuxUntested.length > 0 &&

{fmt(content.linux.untested, { engines: joinList(linuxUntested, m.common.list) })}

} + {linuxNone.length > 0 &&

{content.linux.others}

} +

+ + {content.linux.link} + + +

+
+
+ )} +

{content.license.body}

@@ -171,7 +186,7 @@ export default function DatabasesIndex({ content, engines, copy, iosEngines, pla
- + ); } diff --git a/resources/js/pages/Databases/Show.tsx b/resources/js/pages/Databases/Show.tsx index 552743fb..f105c0b1 100644 --- a/resources/js/pages/Databases/Show.tsx +++ b/resources/js/pages/Databases/Show.tsx @@ -3,7 +3,7 @@ import DownloadBand from '@/components/databases/download-band'; import EngineHeader from '@/components/databases/engine-header'; import EngineSection from '@/components/databases/engine-section'; import FamilySection from '@/components/databases/family-section'; -import { deviceNamesFor, docsUrl, engineValues, iosStatus, tierToken } from '@/components/databases/format'; +import { deviceNamesFor, docsUrl, engineValues, iosStatus, linuxStatus, tierToken } from '@/components/databases/format'; import LimitsList from '@/components/databases/limits-list'; import OtherTools from '@/components/databases/other-tools'; import RichText, { RichTextProvider } from '@/components/databases/rich-text'; @@ -23,22 +23,8 @@ import { PAID_FEATURES } from '@/lib/data/paid-features'; import { absoluteUrl, breadcrumbNode, graph, macAppId, webPageNode } from '@/lib/structured-data'; import LandingLayout from '@/layouts/landing-layout'; -/** - * An engine page, such as `/mysql-client` (sitemap §A.3, §E.1, §E.2; - * design-system §8.4). - * - * The order is fixed by the blueprint: header and facts, the engine's own - * lead image, the body sections the copy gives (Connect, Work with the data, - * Schema, Operate, Move data), iPhone and iPad, limits, the family sections - * of a merged page, other tools, questions, related pages and the download - * band. Which body sections exist, and what they are called, is the copy's - * call, so a Kafka page never inherits a SQL editor narrative. - * - * Facts come from props built from the data files; copy comes from - * `content/{locale}/databases/{slug}.json` and the hub's shared `labels`. - * Structured data is a `WebPage` about the Mac app with its breadcrumb: no - * per-database pseudo-app, no FAQPage, no rating. - */ +// Which body sections exist, and what they are called, is the copy's call, so a Kafka page never inherits a SQL editor +// narrative. Structured data is a WebPage about the Mac app: no per-database pseudo-app, no FAQPage, no rating. export default function DatabaseShow({ content, labels, engine, family, copy, tools, comparisons, platforms, links, product }: EnginePageProps) { const { canonicalBaseUrl } = usePage().props; const { locale, m, fmt, path } = useI18n(); @@ -202,6 +188,7 @@ export default function DatabaseShow({ content, labels, engine, family, copy, to labels={labels} platforms={platforms} showIos={status === 'picker'} + showLinux={linuxStatus(engine) === 'tested'} appStoreUrl={links.appStore} location={`database-${engine.id}`} /> diff --git a/resources/js/pages/Features/Show.tsx b/resources/js/pages/Features/Show.tsx index a8c88433..9df90238 100644 --- a/resources/js/pages/Features/Show.tsx +++ b/resources/js/pages/Features/Show.tsx @@ -3,7 +3,7 @@ import AvailabilityTable from '@/components/features/availability-table'; import DownloadBand from '@/components/features/download-band'; import FeatureLinkList from '@/components/features/feature-links'; import FeatureSection from '@/components/features/feature-section'; -import { docsHref, factValues, pageOnIos, pageOnMac, pagePaidIds } from '@/components/features/model'; +import { docsHref, factValues, pageOnIos, pageOnLinux, pageOnMac, pagePaidIds } from '@/components/features/model'; import RichText from '@/components/features/rich-text'; import type { FeaturePageProps } from '@/components/features/types'; import SEOHead from '@/components/seo/seo-head'; @@ -27,21 +27,7 @@ import { iosPlatform, macPlatform } from '@/lib/data/platforms'; import { absoluteUrl, breadcrumbNode, graph, macAppId, organizationNode, organizationProfiles, webPageNode } from '@/lib/structured-data'; import LandingLayout from '@/layouts/landing-layout'; -/** - * A feature page, `/features/{slug}` and `/vi/features/{slug}` (sitemap §A.2, - * §E.4; design-system §8.2). - * - * Everything on it comes from the page's content file, the shared `labels` - * and the facts the server computed for it. The order is fixed: the header, - * one section per sub-workflow in the sitemap's order and with its ids, then - * "Where it works", the limits that change a decision, the docs and related - * pages, and the closing band. There is no page-level overview image: the - * first section's slot is the page's lead image. - * - * Structured data: a `WebPage` about the Mac app (`#app`) with its - * `BreadcrumbList`, matching the visible breadcrumbs, and the organization. - */ -export default function FeatureShow({ slug, content, labels, facts }: FeaturePageProps) { +export default function FeatureShow({ slug, content, labels, facts, linux }: FeaturePageProps) { const { canonicalBaseUrl } = usePage().props; const { locale, m, fmt, path } = useI18n(); @@ -63,9 +49,11 @@ export default function FeatureShow({ slug, content, labels, facts }: FeaturePag }) : labels.header.allFree; + const linuxName = linux !== null ? joinList(linux.deviceNames, m.common.shortList) : null; const platforms = [ ...(pageOnMac(content) ? [joinList(macPlatform().deviceNames, m.common.shortList)] : []), ...(pageOnIos(content) ? [joinList(iosPlatform().deviceNames, m.common.shortList)] : []), + ...(linuxName !== null && pageOnLinux(content) ? [linuxName] : []), ]; const pageUrl = absoluteUrl(canonicalBaseUrl, path(`/features/${slug}`)); @@ -121,7 +109,7 @@ export default function FeatureShow({ slug, content, labels, facts }: FeaturePag ))}
- + {content.limits.length > 0 && (
    diff --git a/tests/Feature/Data/PlatformsDataTest.php b/tests/Feature/Data/PlatformsDataTest.php index a1f641a5..f68e284c 100644 --- a/tests/Feature/Data/PlatformsDataTest.php +++ b/tests/Feature/Data/PlatformsDataTest.php @@ -26,6 +26,22 @@ function platformsEntry(string $id): array } }); +it('counts a license in computers, not Macs, once Linux ships', function (): void { + if (platformsEntry('linux')['status'] !== 'released') { + $this->markTestSkipped('Linux is not released.'); + } + + $sources = [...File::allFiles(resource_path('data/content/en')), ...File::files(resource_path('data/legal/en')), resource_path('js/i18n/messages/en/pricing.ts')]; + + foreach ($sources as $source) { + $path = (string) $source; + + expect(File::get($path)) + ->not->toMatch('/\{(deviceLimit|activations|count)\} Macs/', "{$path} counts a license in Macs") + ->not->toContain('Linux prototype', "{$path} calls Linux a prototype"); + } +}); + it('gives a released platform everything a page needs and an unreleased one nothing', function (): void { foreach (platformsJson()['platforms'] as $platform) { // Linux carries its record before it ships, so the pages can be built against it; its status alone shows it. diff --git a/tests/Feature/Pages/CompareTest.php b/tests/Feature/Pages/CompareTest.php index 7a131e69..a2960c3e 100644 --- a/tests/Feature/Pages/CompareTest.php +++ b/tests/Feature/Pages/CompareTest.php @@ -3,8 +3,10 @@ use App\Support\Content\Slugs\CompareSlugs; use Illuminate\Support\Arr; use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Http; +use Illuminate\Support\Facades\Storage; use Inertia\Testing\AssertableInertia; use function Pest\Laravel\get; @@ -145,3 +147,52 @@ function compareCitable(array $product, string $entry): bool expect(array_diff(compareTokensIn($line), ['name', 'status.version', 'status.date', 'mac.minVersion']))->toBe([], "the hub line for {$slug}"); } }); + +// With no cached or last good Linux release, the page reports the one platforms.json records. +function compareBindLinux(string $status): array +{ + Cache::flush(); + Storage::fake('local'); + + return bindPlatformsWithLinux($status); +} + +it('sends TablePro’s Linux release and distributions only once Linux is released', function (string $status): void { + $linux = compareBindLinux($status); + $slug = CompareSlugs::ALL[0]; + + get("/compare/{$slug}")->assertInertia(fn(AssertableInertia $page) => $status === 'released' + ? $page + ->where('tablepro.linux.version', $linux['release']['version']) + ->where('tablepro.linux.date', $linux['release']['publishedAt']) + ->where('tablepro.linux.deviceNames', $linux['deviceNames']) + ->where('tablepro.linux.channel', $linux['channel']) + ->where('tablepro.linux.distributions', $linux['distributions']) + ->has("dates.{$linux['release']['publishedAt']}") + : $page->where('tablepro.linux', null)); + get('/compare')->assertInertia(fn(AssertableInertia $page) => $status === 'released' + ? $page->where('tablepro.linux.version', $linux['release']['version']) + : $page->where('tablepro.linux', null)); +})->with(['released', 'prototype']); + +it('lists Linux and its distributions in TablePro’s platforms cell, and its version in the sources', function (string $status): void { + $linux = compareBindLinux($status); + $platforms = collect(json_decode(File::get(resource_path('data/platforms.json')), true)['platforms'])->keyBy('id'); + $labels = json_decode(File::get(resource_path('data/content/en/compare/index.json')), true)['labels']; + requireSsr(); + $document = Dom\HTMLDocument::createFromString((string) get('/compare/' . CompareSlugs::ALL[0])->assertOk()->getContent(), LIBXML_NOERROR); + + $glance = (string) $document->getElementById('at-a-glance')?->textContent; + $sources = (string) $document->getElementById('sources')?->textContent; + $floors = collect($linux['distributions'])->whereNotNull('name')->map(fn(array $distribution): string => "{$distribution['name']} {$distribution['versions'][0]}+"); + $named = strtr($labels['sources']['tableproLinux'], [ + '{macVersion}' => $platforms['mac']['release']['version'], + '{iosVersion}' => $platforms['ios']['release']['version'], + '{linuxVersion}' => $linux['release']['version'], + ]); + + expect($floors)->not->toBeEmpty() + ->and($floors->every(fn(string $floor): bool => str_contains($glance, $floor)))->toBe($status === 'released') + ->and(str_contains($sources, $named))->toBe($status === 'released') + ->and(str_contains($sources, $linux['release']['version']))->toBe($status === 'released'); +})->with(['released', 'prototype'])->group('ssr'); diff --git a/tests/Feature/Pages/DatabasesTest.php b/tests/Feature/Pages/DatabasesTest.php index da960cb1..8f88e685 100644 --- a/tests/Feature/Pages/DatabasesTest.php +++ b/tests/Feature/Pages/DatabasesTest.php @@ -155,3 +155,105 @@ function databasesTokens(array $engine, array $tiers): array 'a page with Other tools' => ['postgresql-client', 'postgresql'], 'a page without' => ['sqlite-client', 'sqlite'], ]); + +function databasesDocument(string $path): Dom\HTMLDocument +{ + requireSsr(); + + return Dom\HTMLDocument::createFromString((string) get($path)->assertOk()->getContent(), LIBXML_NOERROR); +} + +function databasesPublished(): Illuminate\Support\Collection +{ + return collect(databasesData('engines.json'))->where('state', 'published')->values(); +} + +function databasesWorksOn(Dom\HTMLDocument $document): string +{ + $prefix = explode('{devices}', databasesData('content/en/databases/index.json')['labels']['availability']['devices'])[0]; + + foreach ($document->querySelectorAll('header p') as $line) { + if (str_contains((string) $line->textContent, $prefix)) { + return (string) $line->textContent; + } + } + + return ''; +} + +function databasesFacts(Dom\HTMLDocument $document): array +{ + $facts = []; + + foreach ($document->querySelectorAll('header dl dt') as $term) { + $facts[trim((string) $term->textContent)] = trim((string) $term->nextElementSibling?->textContent); + } + + return $facts; +} + +it('sends every engine its Linux support from engines.json, and Linux itself only once released', function (string $status): void { + $linux = bindPlatformsWithLinux($status); + $engines = databasesPublished(); + + get('/databases')->assertInertia(fn(AssertableInertia $page) => $page + ->where('engines', fn($sent): bool => collect($sent)->pluck('linux')->all() === $engines->map(fn(array $engine): array => [ + 'support' => $engine['linux']['support'], + 'tested' => $engine['linux']['support'] === 'tested' ? $engine['linux']['tested'] : [], + ])->all()) + ->where('platforms.linux', $status === 'released' ? ['deviceNames' => $linux['deviceNames'], 'channel' => $linux['channel'], 'distributions' => $linux['distributions']] : null)); +})->with(['released', 'prototype']); + +it('states an engine’s Linux support in its header, its facts and its download band', function (string $support): void { + $name = bindPlatformsWithLinux('released')['deviceNames'][0]; + $engine = databasesPublished()->first(fn(array $engine): bool => $engine['page'] === 'own' && $engine['linux']['support'] === $support); + $labels = databasesData('content/en/databases/index.json')['labels']['linux']; + $document = databasesDocument("/{$engine['slug']}"); + + expect(databasesFacts($document)[$name] ?? null)->toBe(match ($support) { + 'tested' => str_replace('{versions}', implode(', ', $engine['linux']['tested']), $labels['versions']), + 'untested' => $labels['untested'], + default => $labels['none'], + }) + ->and(str_contains(databasesWorksOn($document), $name))->toBe($support === 'tested') + ->and($document->querySelector('#get-tablepro a[href="/download#linux"]') !== null)->toBe($support === 'tested'); +})->with(['tested', 'untested', 'blocked', 'none'])->group('ssr'); + +it('gives the hub a Linux column and a section that names the engines tested on Linux', function (): void { + $name = bindPlatformsWithLinux('released')['deviceNames'][0]; + $hub = databasesData('content/en/databases/index.json'); + $engines = databasesPublished(); + $names = fn(array $support): array => $engines->filter(fn(array $engine): bool => in_array($engine['linux']['support'], $support, true))->pluck('name')->all(); + $list = fn(array $items): string => count($items) > 1 ? implode(', ', array_slice($items, 0, -1)) . ' and ' . end($items) : implode('', $items); + $document = databasesDocument('/databases'); + + $cells = array_count_values(array_map( + fn(Dom\Element $row): string => trim((string) $row->querySelectorAll('td')->item(3)?->textContent), + iterator_to_array($document->querySelectorAll('section table tbody tr')), + )); + $section = (string) $document->getElementById('linux')?->textContent; + $linuxHeads = array_filter(iterator_to_array($document->querySelectorAll('section table thead th:nth-child(5)')), fn(Dom\Element $head): bool => trim((string) $head->textContent) === $name); + + expect($linuxHeads)->toHaveCount($document->querySelectorAll('section table')->length) + ->and($cells[$hub['labels']['linux']['tested']] ?? 0)->toBe(count($names(['tested']))) + ->and($cells[$hub['labels']['linux']['untested']] ?? 0)->toBe(count($names(['untested']))) + ->and($cells[$hub['labels']['linux']['none']] ?? 0)->toBe(count($names(['blocked', 'none']))) + ->and($section)->toContain(str_replace('{engines}', $list($names(['tested'])), $hub['linux']['tested'])) + ->and($section)->toContain(str_replace('{engines}', $list($names(['untested'])), $hub['linux']['untested'])) + ->and($document->querySelector('#linux a[href="/download#linux"]'))->not->toBeNull() + ->and($document->querySelector('#get-tablepro a[href="/download#linux"]'))->not->toBeNull(); +})->group('ssr'); + +it('leaves Linux off the engine pages and the hub until it is released', function (): void { + $name = bindPlatformsWithLinux('prototype')['deviceNames'][0]; + $engine = databasesPublished()->first(fn(array $engine): bool => $engine['page'] === 'own' && $engine['linux']['support'] === 'tested'); + $page = databasesDocument("/{$engine['slug']}"); + $hub = databasesDocument('/databases'); + + expect(databasesFacts($page))->not->toHaveKey($name) + ->and(databasesWorksOn($page))->not->toContain($name) + ->and($page->querySelector('a[href="/download#linux"]'))->toBeNull() + ->and($hub->getElementById('linux'))->toBeNull() + ->and($hub->querySelector('a[href="/download#linux"]'))->toBeNull() + ->and(array_map(fn(Dom\Element $head): string => trim((string) $head->textContent), iterator_to_array($hub->querySelectorAll('section table thead th'))))->not->toContain($name); +})->group('ssr'); diff --git a/tests/Feature/Pages/FeaturesTest.php b/tests/Feature/Pages/FeaturesTest.php index fe3107ff..0015f618 100644 --- a/tests/Feature/Pages/FeaturesTest.php +++ b/tests/Feature/Pages/FeaturesTest.php @@ -191,3 +191,56 @@ function featuresBlocks(array $content): array File::deleteDirectory($directory); } }); + +function featuresDocument(string $path): Dom\HTMLDocument +{ + requireSsr(); + + return Dom\HTMLDocument::createFromString((string) get($path)->assertOk()->getContent(), LIBXML_NOERROR); +} + +function featuresBadges(Dom\HTMLDocument $document): array +{ + return array_map(fn(Dom\Element $badge): string => trim((string) $badge->textContent), iterator_to_array($document->querySelectorAll('span.rounded-chip'))); +} + +it('sends a feature page the Linux record only once Linux is released', function (string $status): void { + $linux = bindPlatformsWithLinux($status); + + get('/features/querying')->assertInertia(fn(AssertableInertia $page) => $status === 'released' + ? $page->where('linux.deviceNames', $linux['deviceNames'])->where('linux.channel', $linux['channel'])->where('linux.distributions', fn($distributions): bool => count($distributions) === count($linux['distributions'])) + : $page->where('linux', null)); +})->with(['released', 'prototype']); + +it('gives Where it works a Linux column that follows each row, and a Linux badge where a row is on Linux', function (string $slug): void { + $name = bindPlatformsWithLinux('released')['deviceNames'][0]; + $rows = featuresData("content/en/features/{$slug}.json")['availability']; + $labels = featuresData('content/en/features/index.json')['labels']['availability']; + $document = featuresDocument("/features/{$slug}"); + + $heads = array_map(fn(Dom\Element $head): string => trim((string) $head->textContent), iterator_to_array($document->querySelectorAll('#availability thead th'))); + $cells = array_map(fn(Dom\Element $row): string => trim((string) $row->querySelector('td:last-child')?->textContent), iterator_to_array($document->querySelectorAll('#availability tbody tr'))); + + expect($heads)->toHaveCount(4) + ->and(end($heads))->toBe($name) + ->and($cells)->toHaveCount(count($rows)) + ->and($document->querySelectorAll('#availability tbody th span.grid > span'))->toHaveCount(3 * count($rows)) + ->and(in_array($name, featuresBadges($document), true))->toBe(collect($rows)->contains(fn(array $row): bool => $row['linux'] !== 'no')); + + foreach ($rows as $index => $row) { + match ($row['linux']) { + 'yes' => expect($cells[$index])->toBe($labels['free'], "{$slug} row {$index}"), + 'no' => expect($cells[$index])->toStartWith($labels['notAvailable'], "{$slug} row {$index}"), + 'partial' => expect($cells[$index])->not->toBe($labels['free'])->not->toStartWith($labels['notAvailable']), + }; + } +})->with(FeatureSlugs::ALL)->group('ssr'); + +it('shows no Linux column or badge while Linux is not released', function (): void { + $name = bindPlatformsWithLinux('prototype')['deviceNames'][0]; + $document = featuresDocument('/features/querying'); + + expect($document->querySelectorAll('#availability thead th'))->toHaveCount(3) + ->and(featuresBadges($document))->not->toContain($name) + ->and((string) $document->querySelector('#availability table')?->textContent)->not->toContain($name); +})->group('ssr'); diff --git a/tests/Feature/Pages/StaticPagesTest.php b/tests/Feature/Pages/StaticPagesTest.php index ba299217..9b3b93d6 100644 --- a/tests/Feature/Pages/StaticPagesTest.php +++ b/tests/Feature/Pages/StaticPagesTest.php @@ -208,3 +208,21 @@ function staticPagePublishedEngines(): Illuminate\Support\Collection } } })->with('locales'); + +it('sends the FAQ\'s Linux answer to the Linux downloads and the engines Linux runs', function (string $locale): void { + $answer = collect(data_get(staticPageData("content/{$locale}/faq.json"), 'groups.*.items.*'))->firstWhere('id', 'windows-linux')['answer'] ?? null; + $links = (string) file_get_contents(resource_path('js/components/faq/content-links.tsx')); + + expect(implode(' ', (array) $answer))->toContain('')->toContain('') + ->and($links)->toContain("databasesLinux: '/databases#linux'"); +})->with('locales'); + +it('server-renders the FAQ\'s Linux links to sections that exist', function (string $locale): void { + $faq = HTMLDocument::createFromString(ssrHtml(LocalizedUrl::path('/faq', $locale)), LIBXML_NOERROR); + $databases = HTMLDocument::createFromString(ssrHtml(LocalizedUrl::path('/databases', $locale)), LIBXML_NOERROR); + $answer = $faq->getElementById('windows-linux'); + + expect($answer->querySelector('a[href="' . LocalizedUrl::path('/databases', $locale) . '#linux"]'))->not->toBeNull() + ->and($answer->querySelector('a[href="' . LocalizedUrl::path('/download', $locale) . '#linux"]'))->not->toBeNull() + ->and($databases->getElementById('linux'))->not->toBeNull(); +})->with(['en', 'vi'])->group('ssr'); diff --git a/tests/Support/releases.php b/tests/Support/releases.php index bc7fe441..055c1def 100644 --- a/tests/Support/releases.php +++ b/tests/Support/releases.php @@ -56,6 +56,21 @@ function bindReleaseFixturePlatforms(array $overrides = []): array return $data; } +// The live platforms.json with Linux at `$status`, for the pages that show Linux only once it ships. Returns the Linux record. +function bindPlatformsWithLinux(string $status): array +{ + $data = json_decode((string) file_get_contents(resource_path('data/platforms.json')), true, 512, JSON_THROW_ON_ERROR); + $data['platforms'] = array_map(fn(array $platform): array => $platform['id'] === 'linux' ? [...$platform, 'status' => $status] : $platform, $data['platforms']); + + $path = tempnam(sys_get_temp_dir(), 'platforms') ?: throw new RuntimeException('No temp file.'); + file_put_contents($path, json_encode($data, JSON_THROW_ON_ERROR)); + register_shutdown_function(static fn(): bool => @unlink($path)); + + app()->instance(PlatformCatalog::class, new PlatformCatalog($path)); + + return collect($data['platforms'])->firstWhere('id', 'linux'); +} + function githubReleasePayload(string $tag = 'v0.77.0', array $overrides = [], ?array $assets = null): array { $version = ltrim($tag, 'v'); diff --git a/tests/js/compare-model.test.ts b/tests/js/compare-model.test.ts index 618b9703..c6411083 100644 --- a/tests/js/compare-model.test.ts +++ b/tests/js/compare-model.test.ts @@ -64,6 +64,7 @@ const facts: TableProFacts = { devices: 'Mac, iPhone and iPad', macRequirement: 'macOS 13 or later', iosRequirement: 'iOS 18 or later', + linuxRequirement: null, macArchitectures: ['arm64', 'x86_64'], macUniversal: true, starter: { monthly: 5, yearly: 40, lifetime: 80, activations: 3 }, @@ -230,3 +231,10 @@ test('calls one app for both architectures universal, and separate builds otherw assert.ok(ours(true).includes(labels.builds.universal)); assert.ok(ours(false).includes(labels.builds.both)); }); + +test('lists Linux in TablePro’s platforms cell only once it is released', () => { + const ours = (linuxRequirement: string | null) => row(product(), 'platforms', { linuxRequirement })?.tablepro.lines ?? []; + + assert.ok(!ours(null).some((line) => line.text.includes('Linux'))); + assert.deepEqual(ours('Linux beta: Ubuntu 26.04+').at(-1), { text: 'Linux beta: Ubuntu 26.04+', muted: true }); +}); diff --git a/tests/js/download-linux.test.ts b/tests/js/download-linux.test.ts index 833d2429..da409e0b 100644 --- a/tests/js/download-linux.test.ts +++ b/tests/js/download-linux.test.ts @@ -2,7 +2,8 @@ import { test } from 'node:test'; import assert from 'node:assert/strict'; import en from '../../resources/js/i18n/messages/en/index.ts'; -import { distributionFloor, methodLabel } from '../../resources/js/components/download/linux-text.ts'; +import vi from '../../resources/js/i18n/messages/vi/index.ts'; +import { distributionFloor, distributionsText, linuxRequirement, methodLabel } from '../../resources/js/components/download/linux-text.ts'; import type { LinuxProp } from '../../resources/js/components/download/types.ts'; import platforms from '../../resources/data/platforms.json' with { type: 'json' }; @@ -23,3 +24,12 @@ test('each install method is labelled by the distribution it serves', () => { assert.equal(methodLabel('copr', linux, strings), `Fedora ${linux.distributions[1].versions[0]}+`); assert.equal(methodLabel('flatpak', linux, strings), strings.flatpak); }); + +test('the requirement names every distribution in data order, and says beta while the channel is', () => { + const floors = linux.distributions.map((distribution) => distributionFloor(distribution, strings)); + + assert.equal(distributionsText(linux, en.download), `${floors.slice(0, -1).join(', ')} or ${floors[floors.length - 1]}`); + assert.equal(linuxRequirement({ ...linux, channel: 'beta' }, en), `Linux beta: ${distributionsText(linux, en.download)}`); + assert.equal(linuxRequirement({ ...linux, channel: 'stable' }, en), `Linux: ${distributionsText(linux, en.download)}`); + assert.ok(linuxRequirement({ ...linux, channel: 'beta' }, vi).includes(vi.download.linux.anyDistribution)); +}); diff --git a/tests/js/feature-model.test.ts b/tests/js/feature-model.test.ts index 98d6863b..f1126d15 100644 --- a/tests/js/feature-model.test.ts +++ b/tests/js/feature-model.test.ts @@ -9,6 +9,7 @@ import { factValues, fillFacts, pageOnIos, + pageOnLinux, pageOnMac, pagePaidIds, slotLayout, @@ -74,6 +75,14 @@ test('reads the platforms a page covers from its availability rows', () => { assert.equal(pageOnMac(macOnly), true); }); +test('covers Linux when any row is there, in full or in part', () => { + const rows = (...linux: string[]) => ({ availability: linux.map((state, index) => ({ label: `R${index}`, ios: 'no', linux: state })) }) as unknown as FeaturePageContent; + + assert.equal(pageOnLinux(rows('no', 'no')), false); + assert.equal(pageOnLinux(rows('no', 'partial')), true); + assert.equal(pageOnLinux(rows('yes')), true); +}); + test('joins docs paths without doubled or missing slashes', () => { assert.equal(docsHref('https://docs.tablepro.app', '/features/mcp'), 'https://docs.tablepro.app/features/mcp'); assert.equal(docsHref('https://docs.tablepro.app/', 'features/mcp#setup'), 'https://docs.tablepro.app/features/mcp#setup');