diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml index e608542..d714b2f 100644 --- a/.github/workflows/deploy-production.yml +++ b/.github/workflows/deploy-production.yml @@ -41,11 +41,10 @@ jobs: BUILD_TIME: ${{ github.event.head_commit.timestamp }} - name: Deploy to Production - uses: cloudflare/wrangler-action@v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: deploy --env production + run: npx --no-install opennextjs-cloudflare deploy --env production + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - name: Deployment summary run: | diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index df09a97..441d2ea 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -41,11 +41,10 @@ jobs: BUILD_TIME: ${{ github.event.head_commit.timestamp }} - name: Deploy to Staging - uses: cloudflare/wrangler-action@v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: deploy --env staging + run: npx --no-install opennextjs-cloudflare deploy --env staging + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - name: Deployment summary run: | diff --git a/.husky/pre-commit b/.husky/pre-commit index 68d264d..370b9b7 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,5 @@ npm i npx lint-staged -npm run check npm run test:ci +npm run check +npm run type-check diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100755 index c19df3e..0000000 --- a/.husky/pre-push +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname "$0")/_/husky.sh" - -npm run type-check diff --git a/cspell.json b/cspell.json index 05a8026..26a75b4 100644 --- a/cspell.json +++ b/cspell.json @@ -194,6 +194,7 @@ "modalli", "modlu", "modu", + "Modları", "odakli", "optimizasyon", "orkestrasyonu", diff --git a/docs/COMPONENT-RELATIONSHIP-DIAGRAM.md b/docs/COMPONENT-RELATIONSHIP-DIAGRAM.md index af7c8e5..cc0888c 100644 --- a/docs/COMPONENT-RELATIONSHIP-DIAGRAM.md +++ b/docs/COMPONENT-RELATIONSHIP-DIAGRAM.md @@ -29,7 +29,8 @@ src/ ├── product/ [Product-related components] │ ├── ProductHero.tsx [Product header info] │ ├── ProductPricing.tsx [Pricing section] - │ ├── ProductLinks.tsx [Resource/community links] + │ ├── ResourceLinks.tsx [Resource links (download, changelog, pricing, mcp, issue)] + │ ├── CommunityLinks.tsx [Community links (linkedin, twitter, github, youtube, discord, reddit, blog)] │ ├── ProductCommands.tsx[Install/launch commands] │ ├── RelatedProducts.tsx[Related products grid] │ ├── LinkCard.tsx [Link card component] @@ -61,7 +62,6 @@ src/ ├── ComparisonTable.tsx [Comparison data table] ├── CollectionScrollbar.tsx [Horizontal scroll for collections] ├── CollectionSection.tsx [Collection section wrapper] - ├── CommunityLinks.tsx [Community links (Twitter, Discord, etc.)] ├── MarkdownContent.tsx [Markdown content renderer] ├── MDXComponents.tsx [MDX component mappings] ├── ModelBenchmarks.tsx [Model benchmark scores] @@ -114,7 +114,8 @@ src/ - + + @@ -172,10 +173,10 @@ src/ │ │ └── PlatformIcons │ │ ├── RelatedProducts → LinkCard │ │ ├── ProductPricing │ -│ ├── ProductLinks │ +│ ├── ResourceLinks → LinkCardGrid → LinkCard │ +│ ├── CommunityLinks → LinkCardGrid → LinkCard → PlatformIcons │ │ ├── ProductCommands → CopyButton │ │ ├── PlatformLinks → PlatformIcons │ -│ ├── CommunityLinks → PlatformIcons │ │ ├── ModelSpecifications │ │ ├── ModelBenchmarks │ │ ├── VendorProducts → LinkCard │ @@ -199,9 +200,9 @@ src/ | Page Type | Layout | Components Used | |-----------|--------|-----------------| -| IDE Detail | PageLayout | Breadcrumb, ProductHero, RelatedProducts, ProductPricing, ProductLinks, ProductCommands, BackToNavigation | -| CLI Detail | PageLayout | Breadcrumb, ProductHero, RelatedProducts, ProductPricing, ProductLinks, ProductCommands, BackToNavigation | -| Extension Detail | PageLayout | Breadcrumb, ProductHero, RelatedProducts, ProductPricing, ProductLinks, ProductCommands, BackToNavigation | +| IDE Detail | PageLayout | Breadcrumb, ProductHero, RelatedProducts, ProductPricing, ResourceLinks, CommunityLinks, ProductCommands, BackToNavigation | +| CLI Detail | PageLayout | Breadcrumb, ProductHero, RelatedProducts, ProductPricing, ResourceLinks, CommunityLinks, ProductCommands, BackToNavigation | +| Extension Detail | PageLayout | Breadcrumb, ProductHero, RelatedProducts, ProductPricing, ResourceLinks, CommunityLinks, ProductCommands, BackToNavigation | | Model Detail | PageLayout | Breadcrumb, ProductHero, PlatformLinks, ModelSpecifications, ModelBenchmarks, BackToNavigation | | Vendor Detail | PageLayout | Breadcrumb, ProductHero, CommunityLinks, VendorProducts, VendorModels, BackToNavigation | | Provider Detail | PageLayout | Breadcrumb, ProductHero, PlatformLinks, CommunityLinks, BackToNavigation | diff --git a/manifests/models/claude-opus-4-1.json b/manifests/models/claude-opus-4-1.json index c65d3b1..ca34608 100644 --- a/manifests/models/claude-opus-4-1.json +++ b/manifests/models/claude-opus-4-1.json @@ -58,9 +58,9 @@ "terminalBench": 0.631, "sciCode": null, "liveCodeBench": 46.9, - "mmmu": null, + "mmmu": 77.1, "mmmuPro": null, - "webDevArena": null + "webDevArena": 147.9 }, "platformUrls": { "huggingface": null, diff --git a/manifests/models/claude-opus-4.json b/manifests/models/claude-opus-4.json index 486dadd..a2d2693 100644 --- a/manifests/models/claude-opus-4.json +++ b/manifests/models/claude-opus-4.json @@ -55,10 +55,10 @@ "capabilities": ["function-calling", "tool-choice", "structured-outputs"], "benchmarks": { "sweBench": 67.6, - "terminalBench": 0.578, - "sciCode": null, - "liveCodeBench": 56.6, - "mmmu": null, + "terminalBench": 0.351, + "sciCode": 1.5, + "liveCodeBench": 46.9, + "mmmu": 76.5, "mmmuPro": null, "webDevArena": null }, diff --git a/manifests/models/claude-sonnet-4-5.json b/manifests/models/claude-sonnet-4-5.json index 7bc32bf..d06706a 100644 --- a/manifests/models/claude-sonnet-4-5.json +++ b/manifests/models/claude-sonnet-4-5.json @@ -55,10 +55,10 @@ "capabilities": ["function-calling", "tool-choice", "structured-outputs"], "benchmarks": { "sweBench": 70.6, - "terminalBench": 0.428, + "terminalBench": 0.42, "sciCode": null, - "liveCodeBench": 47.1, - "mmmu": null, + "liveCodeBench": 46.9, + "mmmu": 77.8, "mmmuPro": null, "webDevArena": null }, diff --git a/manifests/models/claude-sonnet-4.json b/manifests/models/claude-sonnet-4.json index 4ae2c9f..db61bd7 100644 --- a/manifests/models/claude-sonnet-4.json +++ b/manifests/models/claude-sonnet-4.json @@ -58,7 +58,7 @@ "terminalBench": 0.428, "sciCode": null, "liveCodeBench": 55.9, - "mmmu": null, + "mmmu": 74.4, "mmmuPro": null, "webDevArena": null }, diff --git a/manifests/models/gemini-2-5-flash.json b/manifests/models/gemini-2-5-flash.json index 9792d23..1abca04 100644 --- a/manifests/models/gemini-2-5-flash.json +++ b/manifests/models/gemini-2-5-flash.json @@ -57,8 +57,8 @@ "sweBench": 28.73, "terminalBench": 0.171, "sciCode": null, - "liveCodeBench": 61.9, - "mmmu": null, + "liveCodeBench": 60.6, + "mmmu": 79.7, "mmmuPro": null, "webDevArena": null }, diff --git a/manifests/models/gemini-2-5-pro.json b/manifests/models/gemini-2-5-pro.json index db31d99..1e7e3bb 100644 --- a/manifests/models/gemini-2-5-pro.json +++ b/manifests/models/gemini-2-5-pro.json @@ -56,9 +56,9 @@ "benchmarks": { "sweBench": 53.6, "terminalBench": 0.326, - "sciCode": null, - "liveCodeBench": 73.6, - "mmmu": null, + "sciCode": 1.5, + "liveCodeBench": 71.8, + "mmmu": 79.6, "mmmuPro": null, "webDevArena": null }, diff --git a/manifests/models/glm-4-6.json b/manifests/models/glm-4-6.json index e9a352e..40a0a04 100644 --- a/manifests/models/glm-4-6.json +++ b/manifests/models/glm-4-6.json @@ -58,7 +58,7 @@ "terminalBench": 0.245, "sciCode": null, "liveCodeBench": null, - "mmmu": null, + "mmmu": 68.0, "mmmuPro": null, "webDevArena": null }, diff --git a/manifests/models/gpt-4o.json b/manifests/models/gpt-4o.json index 53a476b..d92b869 100644 --- a/manifests/models/gpt-4o.json +++ b/manifests/models/gpt-4o.json @@ -58,9 +58,9 @@ "terminalBench": 0.401, "sciCode": 1.5, "liveCodeBench": 29.5, - "mmmu": null, + "mmmu": 70.7, "mmmuPro": null, - "webDevArena": null + "webDevArena": 146.7 }, "platformUrls": { "huggingface": null, diff --git a/manifests/models/gpt-5-1.json b/manifests/models/gpt-5-1.json index 4b9a200..a7282ef 100644 --- a/manifests/models/gpt-5-1.json +++ b/manifests/models/gpt-5-1.json @@ -54,11 +54,11 @@ "inputModalities": ["text"], "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], "benchmarks": { - "sweBench": null, - "terminalBench": 0.47600000000000003, + "sweBench": 66.0, + "terminalBench": 0.476, "sciCode": null, "liveCodeBench": null, - "mmmu": null, + "mmmu": 76.0, "mmmuPro": null, "webDevArena": null }, diff --git a/manifests/models/gpt-5.json b/manifests/models/gpt-5.json index 5856f43..21a45dc 100644 --- a/manifests/models/gpt-5.json +++ b/manifests/models/gpt-5.json @@ -55,12 +55,12 @@ "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], "benchmarks": { "sweBench": 71.8, - "terminalBench": 0.352, - "sciCode": null, - "liveCodeBench": null, - "mmmu": null, + "terminalBench": 0.54, + "sciCode": 1.5, + "liveCodeBench": 28.7, + "mmmu": 74.4, "mmmuPro": null, - "webDevArena": null + "webDevArena": 148.0 }, "platformUrls": { "huggingface": null, diff --git a/manifests/models/kimi-k2-0905.json b/manifests/models/kimi-k2-0905.json index 08a6975..2a3bd4e 100644 --- a/manifests/models/kimi-k2-0905.json +++ b/manifests/models/kimi-k2-0905.json @@ -54,8 +54,8 @@ "inputModalities": ["text"], "capabilities": ["function-calling", "tool-choice", "structured-outputs", "reasoning"], "benchmarks": { - "sweBench": null, - "terminalBench": null, + "sweBench": 43.8, + "terminalBench": 0.278, "sciCode": null, "liveCodeBench": null, "mmmu": null, diff --git a/src/app/[locale]/clis/[slug]/page.tsx b/src/app/[locale]/clis/[slug]/page.tsx index 56ffc36..0382f41 100644 --- a/src/app/[locale]/clis/[slug]/page.tsx +++ b/src/app/[locale]/clis/[slug]/page.tsx @@ -2,11 +2,12 @@ import { notFound } from 'next/navigation' import { getTranslations } from 'next-intl/server' import { BackToNavigation } from '@/components/navigation/BackToNavigation' import { Breadcrumb } from '@/components/navigation/Breadcrumb' +import { CommunityLinks } from '@/components/product/CommunityLinks' import { ProductCommands } from '@/components/product/ProductCommands' import { ProductHero } from '@/components/product/ProductHero' -import { ProductLinks } from '@/components/product/ProductLinks' import { ProductPricing } from '@/components/product/ProductPricing' import { RelatedProducts } from '@/components/product/RelatedProducts' +import { ResourceLinks } from '@/components/product/ResourceLinks' import type { Locale } from '@/i18n/config' import { PageLayout } from '@/layouts/PageLayout' import { getCLI, getRelatedProducts } from '@/lib/data/fetchers' @@ -106,6 +107,7 @@ export default async function CLIPage({ return ( +
- + + + diff --git a/src/app/[locale]/extensions/[slug]/page.tsx b/src/app/[locale]/extensions/[slug]/page.tsx index b735a6a..c0866a3 100644 --- a/src/app/[locale]/extensions/[slug]/page.tsx +++ b/src/app/[locale]/extensions/[slug]/page.tsx @@ -2,11 +2,12 @@ import { notFound } from 'next/navigation' import { getTranslations } from 'next-intl/server' import { BackToNavigation } from '@/components/navigation/BackToNavigation' import { Breadcrumb } from '@/components/navigation/Breadcrumb' +import { CommunityLinks } from '@/components/product/CommunityLinks' import { ProductCommands } from '@/components/product/ProductCommands' import { ProductHero } from '@/components/product/ProductHero' -import { ProductLinks } from '@/components/product/ProductLinks' import { ProductPricing } from '@/components/product/ProductPricing' import { RelatedProducts } from '@/components/product/RelatedProducts' +import { ResourceLinks } from '@/components/product/ResourceLinks' import type { Locale } from '@/i18n/config' import { PageLayout } from '@/layouts/PageLayout' import { getExtension, getRelatedProducts } from '@/lib/data/fetchers' @@ -143,25 +144,15 @@ export default async function ExtensionPage({ websiteUrl={websiteUrl} docsUrl={docsUrl} downloadUrl={downloadUrl} - labels={{ - vendor: t('vendor'), - version: t('version'), - license: t('license'), - stars: t('stars'), - visitWebsite: t('visitWebsite'), - documentation: t('documentation'), - download: t('download'), - }} /> - + + + diff --git a/src/app/[locale]/ides/[slug]/page.tsx b/src/app/[locale]/ides/[slug]/page.tsx index 4922de4..f339385 100644 --- a/src/app/[locale]/ides/[slug]/page.tsx +++ b/src/app/[locale]/ides/[slug]/page.tsx @@ -2,11 +2,12 @@ import { notFound } from 'next/navigation' import { getTranslations } from 'next-intl/server' import { BackToNavigation } from '@/components/navigation/BackToNavigation' import { Breadcrumb } from '@/components/navigation/Breadcrumb' +import { CommunityLinks } from '@/components/product/CommunityLinks' import { ProductCommands } from '@/components/product/ProductCommands' import { ProductHero } from '@/components/product/ProductHero' -import { ProductLinks } from '@/components/product/ProductLinks' import { ProductPricing } from '@/components/product/ProductPricing' import { RelatedProducts } from '@/components/product/RelatedProducts' +import { ResourceLinks } from '@/components/product/ResourceLinks' import type { Locale } from '@/i18n/config' import { PageLayout } from '@/layouts/PageLayout' import { getIDE, getRelatedProducts } from '@/lib/data/fetchers' @@ -122,23 +123,15 @@ export default async function IDEPage({ websiteUrl={websiteUrl} docsUrl={docsUrl} downloadUrl={downloadUrl} - labels={{ - vendor: t('vendor'), - version: t('version'), - license: t('license'), - stars: t('stars'), - platforms: t('platforms'), - visitWebsite: t('visitWebsite'), - documentation: t('documentation'), - download: t('download'), - }} /> - + + + diff --git a/src/app/[locale]/model-providers/[slug]/page.tsx b/src/app/[locale]/model-providers/[slug]/page.tsx index 2f67fcc..75dd1b4 100644 --- a/src/app/[locale]/model-providers/[slug]/page.tsx +++ b/src/app/[locale]/model-providers/[slug]/page.tsx @@ -70,59 +70,6 @@ export default async function ProviderPage({ locale: locale as 'en' | 'zh-Hans' | 'de' | 'ko', }) - // Build platform links configuration - const platformLinks = [ - { - key: 'huggingface', - title: t('aiPlatforms.huggingface.title'), - description: t('aiPlatforms.huggingface.description'), - }, - { - key: 'artificialAnalysis', - title: t('aiPlatforms.artificialAnalysis.title'), - description: t('aiPlatforms.artificialAnalysis.description'), - }, - { - key: 'openrouter', - title: t('aiPlatforms.openrouter.title'), - description: t('aiPlatforms.openrouter.description'), - }, - ] - - // Build community links configuration - const communityLinks = [ - { - key: 'linkedin', - title: t('community.linkedin.title'), - description: t('community.linkedin.description'), - }, - { - key: 'twitter', - title: t('community.twitter.title'), - description: t('community.twitter.description'), - }, - { - key: 'github', - title: t('community.github.title'), - description: t('community.github.description'), - }, - { - key: 'youtube', - title: t('community.youtube.title'), - description: t('community.youtube.description'), - }, - { - key: 'discord', - title: t('community.discord.title'), - description: t('community.discord.description'), - }, - { - key: 'reddit', - title: t('community.reddit.title'), - description: t('community.reddit.description'), - }, - ] - // Breadcrumb items const breadcrumbItems = [ { name: tGlobal('shared.common.aiCodingStack'), href: '/ai-coding-stack' }, @@ -142,30 +89,20 @@ export default async function ProviderPage({ categoryLabel={t('categoryLabel')} verified={provider.verified ?? false} type={provider.type} + typeValue={provider.type ? t(`providerTypes.${provider.type}`) : undefined} websiteUrl={provider.websiteUrl} docsUrl={provider.docsUrl ?? null} applyKeyUrl={provider.applyKeyUrl} - labels={{ - type: t('type'), - typeValue: provider.type ? t(`providerTypes.${provider.type}`) : undefined, - visitWebsite: t('visitWebsite'), - documentation: t('documentation'), - getApiKey: t('getApiKey'), - }} /> diff --git a/src/app/[locale]/models/[slug]/page.tsx b/src/app/[locale]/models/[slug]/page.tsx index c0cda08..52c8e63 100644 --- a/src/app/[locale]/models/[slug]/page.tsx +++ b/src/app/[locale]/models/[slug]/page.tsx @@ -94,25 +94,6 @@ export default async function ModelPage({ { label: t('maxOutput'), value: `${model.maxOutput.toLocaleString()} tokens` }, ].filter(Boolean) as { label: string; value: string }[] - // Build platform links configuration - const platformLinks = [ - { - key: 'huggingface', - title: t('aiPlatforms.huggingface.title'), - description: t('aiPlatforms.huggingface.description'), - }, - { - key: 'artificialAnalysis', - title: t('aiPlatforms.artificialAnalysis.title'), - description: t('aiPlatforms.artificialAnalysis.description'), - }, - { - key: 'openrouter', - title: t('aiPlatforms.openrouter.title'), - description: t('aiPlatforms.openrouter.description'), - }, - ] - // Breadcrumb items const breadcrumbItems = [ { name: tGlobal('shared.common.aiCodingStack'), href: '/ai-coding-stack' }, @@ -135,17 +116,10 @@ export default async function ModelPage({ additionalInfo={additionalInfo} websiteUrl={model.websiteUrl || undefined} docsUrl={model.docsUrl || undefined} - labels={{ - vendor: t('vendor'), - visitWebsite: t('visitWebsite'), - documentation: t('labels.documentation'), - }} /> diff --git a/src/app/[locale]/models/comparison/page.client.tsx b/src/app/[locale]/models/comparison/page.client.tsx index 3009a5a..1ee2b9b 100644 --- a/src/app/[locale]/models/comparison/page.client.tsx +++ b/src/app/[locale]/models/comparison/page.client.tsx @@ -1,18 +1,149 @@ 'use client' -import { FileText, Github, Home, Twitter } from 'lucide-react' +import { Home } from 'lucide-react' + import { useTranslations } from 'next-intl' + import Footer from '@/components/Footer' import Header from '@/components/Header' import { Breadcrumb } from '@/components/navigation/Breadcrumb' import ComparisonTable, { type ComparisonColumn } from '@/components/product/ComparisonTable' + import { Link } from '@/i18n/navigation' + +import { BENCHMARK_KEYS, formatBenchmarkValue } from '@/lib/benchmarks' import { modelsData as models } from '@/lib/generated' type Props = { locale: string } +function camelToKebab(str: string): string { + return str.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`) +} + +// Helper to wrap content in a span with alignment +function wrapWithAlign( + content: string | React.ReactNode, + align: 'left' | 'center' | 'right' = 'left' +): React.ReactNode { + const alignClass = + align === 'right' ? 'text-right' : align === 'center' ? 'text-center' : 'text-left' + return {content} +} + +// Format token count to K units +function formatTokenCount(value: unknown): React.ReactNode { + if (typeof value !== 'number') return wrapWithAlign('-', 'right') + const kValue = (value / 1000).toFixed(0) + return wrapWithAlign(`${Number(kValue).toLocaleString()}K`, 'right') +} + +// Create a token pricing column renderer +function createTokenPricingRenderer(field: 'input' | 'output' | 'cache') { + return (_: unknown, item: Record) => { + const tokenPricing = item.tokenPricing as Record | undefined + const value = tokenPricing?.[field] + return wrapWithAlign( + value !== null && value !== undefined ? `$${value.toFixed(2)}` : '-', + 'right' + ) + } +} + +// All possible input modality values +const INPUT_MODALITIES: readonly string[] = ['text', 'image', 'file'] as const + +// All possible capability values +const CAPABILITIES: readonly string[] = [ + 'function-calling', + 'tool-choice', + 'structured-outputs', + 'reasoning', +] as const + +// Create abbreviation renderer with all possible values +function createAbbreviationsRenderer(allValues: readonly string[]) { + return (value: unknown): React.ReactNode => { + const actualValues = Array.isArray(value) ? (value as string[]) : [] + const actualSet = new Set(actualValues) + + return ( + + {allValues.map(v => { + const initial = v.charAt(0).toUpperCase() + const tooltip = v + .split('-') + .map(word => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' ') + const isActive = actualSet.has(v) + + return ( + + {initial} + + ) + })} + + ) + } +} + +// Platform link configuration +const PLATFORM_LINK_CONFIG: readonly { + key: string + initial: string + urlKey: 'huggingface' | 'artificialAnalysis' | 'openrouter' +}[] = [ + { key: 'huggingface', initial: 'H', urlKey: 'huggingface' }, + { key: 'artificialAnalysis', initial: 'A', urlKey: 'artificialAnalysis' }, + { key: 'openrouter', initial: 'O', urlKey: 'openrouter' }, +] as const + +// Create platform link element +function createPlatformLink( + link: (typeof PLATFORM_LINK_CONFIG)[number], + url: string | null | undefined, + label: string +) { + const baseClasses = + 'inline-flex items-center justify-center px-1 py-[1px] text-xs leading-none border border-[var(--color-border)] rounded' + if (url) { + return ( + + {link.initial} + + ) + } + return ( + + {link.initial} + + ) +} + +// Pricing column configuration +const PRICING_CONFIG: readonly { field: 'input' | 'output' | 'cache'; labelKey: string }[] = [ + { field: 'input', labelKey: 'pricingInput' }, + { field: 'output', labelKey: 'pricingOutput' }, + { field: 'cache', labelKey: 'pricingCache' }, +] as const + export default function ModelComparisonPageClient({ locale: _locale }: Props) { const t = useTranslations('pages.comparison') const tGlobal = useTranslations() @@ -23,37 +154,6 @@ export default function ModelComparisonPageClient({ locale: _locale }: Props) { key: 'vendor', label: t('columns.vendor'), }, - { - key: 'size', - label: t('columns.modelSize'), - }, - { - key: 'contextWindow', - label: t('columns.contextLength'), - }, - { - key: 'maxOutput', - label: t('columns.maxOutput'), - }, - { - key: 'tokenPricing', - label: t('columns.pricing'), - render: (value: unknown) => { - if (!value || typeof value !== 'object') return '-' - const pricing = value as { - input?: number | null - output?: number | null - cache?: number | null - } - if (pricing.input !== null && pricing.input !== undefined) { - return `$${pricing.input}/M` - } - if (pricing.output !== null && pricing.output !== undefined) { - return `$${pricing.output}/M` - } - return '-' - }, - }, { key: 'links', label: t('columns.links'), @@ -68,71 +168,76 @@ export default function ModelComparisonPageClient({ locale: _locale }: Props) { | undefined return ( -
+ {websiteUrl ? ( ) : ( - - - - )} - {platformUrls?.huggingface ? ( - - - - ) : ( - - - - )} - {platformUrls?.artificialAnalysis ? ( - - - - ) : ( - - + )} - {platformUrls?.openrouter ? ( - - - - ) : ( - - - + {PLATFORM_LINK_CONFIG.map(link => + createPlatformLink(link, platformUrls?.[link.urlKey], tCommunity(link.key)) )} -
+ ) }, }, + { + key: 'size', + label: t('columns.modelSize'), + render: (value: unknown) => { + if (!value) return wrapWithAlign('-', 'right') + return wrapWithAlign(value as string, 'right') + }, + }, + { + key: 'contextWindow', + label: t('columns.contextLength'), + render: formatTokenCount, + }, + { + key: 'maxOutput', + label: t('columns.maxOutput'), + render: formatTokenCount, + }, + ...PRICING_CONFIG.map(({ field, labelKey }) => ({ + key: `tokenPricing${field.charAt(0).toUpperCase() + field.slice(1)}`, + label: t(`columns.${labelKey}`), + title: `${t(`columns.${labelKey}`)} (/M)`, + render: createTokenPricingRenderer(field), + })), + { + key: 'inputModalities', + label: t('columns.inputModalities'), + render: createAbbreviationsRenderer(INPUT_MODALITIES), + }, + { + key: 'capabilities', + label: t('columns.capabilities'), + render: createAbbreviationsRenderer(CAPABILITIES), + }, + ...BENCHMARK_KEYS.map(key => ({ + key, + label: t(`columns.${camelToKebab(key)}`), + render: (_: unknown, item: Record) => { + const benchmarks = item.benchmarks as Record | undefined + const value = benchmarks?.[key] + if (value === null || value === undefined) return wrapWithAlign('-', 'center') + return wrapWithAlign(formatBenchmarkValue(key, value), 'center') + }, + })), ] return ( diff --git a/src/app/[locale]/vendors/[slug]/page.tsx b/src/app/[locale]/vendors/[slug]/page.tsx index 55bbd94..7368fd3 100644 --- a/src/app/[locale]/vendors/[slug]/page.tsx +++ b/src/app/[locale]/vendors/[slug]/page.tsx @@ -96,45 +96,6 @@ export default async function VendorPage({ locale: locale as 'en' | 'zh-Hans' | 'de' | 'ko', }) - // Build community links configuration - const communityLinks = [ - { - key: 'linkedin', - title: t('community.linkedin.title'), - description: t('community.linkedin.description'), - }, - { - key: 'twitter', - title: t('community.twitter.title'), - description: t('community.twitter.description'), - }, - { - key: 'github', - title: t('community.github.title'), - description: t('community.github.description'), - }, - { - key: 'youtube', - title: t('community.youtube.title'), - description: t('community.youtube.description'), - }, - { - key: 'discord', - title: t('community.discord.title'), - description: t('community.discord.description'), - }, - { - key: 'reddit', - title: t('community.reddit.title'), - description: t('community.reddit.description'), - }, - { - key: 'blog', - title: t('community.blog.title'), - description: t('community.blog.description'), - }, - ] - // Find all products by this vendor // Note: Products store vendor.name, not vendor.id, so we match against vendor.name const vendorIdes = findVendorItems(ides, vendor.name, locale as Locale).map(ide => ({ @@ -178,22 +139,16 @@ export default async function VendorPage({ verified={vendor.verified ?? false} websiteUrl={vendor.websiteUrl} docsUrl={vendor.docsUrl ?? null} - labels={{ - visitWebsite: t('visitWebsite'), - documentation: t('documentation'), - }} /> {/* Vendor Products (IDEs, CLIs, Extensions) */} - + {/* Vendor Models */} - + diff --git a/src/components/navigation/Breadcrumb.tsx b/src/components/navigation/Breadcrumb.tsx index 0e80ce7..a89641b 100644 --- a/src/components/navigation/Breadcrumb.tsx +++ b/src/components/navigation/Breadcrumb.tsx @@ -1,5 +1,6 @@ 'use client' +import { useTranslations } from 'next-intl' import { useEffect, useRef } from 'react' import { JsonLd } from '@/components/JsonLd' import { Link } from '@/i18n/navigation' @@ -17,6 +18,7 @@ export interface BreadcrumbItem { * - Sticky behavior is enabled when scrolling using CSS position: sticky. */ export function Breadcrumb({ items }: { items: BreadcrumbItem[] }) { + const t = useTranslations() const sectionRef = useRef(null) // Dynamically adjust sticky position based on header height @@ -48,7 +50,7 @@ export function Breadcrumb({ items }: { items: BreadcrumbItem[] }) { { '@type': 'ListItem', position: 1, - name: 'Home', + name: t('components.breadcrumb.home'), item: SITE_CONFIG.url, }, ...items.map((item, index) => { diff --git a/src/components/product/CommunityLinks.tsx b/src/components/product/CommunityLinks.tsx index 8e69b0b..d62cf93 100644 --- a/src/components/product/CommunityLinks.tsx +++ b/src/components/product/CommunityLinks.tsx @@ -1,14 +1,11 @@ +'use client' + +import { useTranslations } from 'next-intl' import { LinkCardGrid } from '@/components/product/LinkCard' import type { ManifestCommunityUrls } from '@/types/manifests' export interface CommunityLinksProps { communityUrls: ManifestCommunityUrls | null | undefined - title: string - links: Array<{ - key: string - title: string - description: string - }> layout?: 'horizontal' | 'vertical' gridCols?: string } @@ -21,18 +18,56 @@ export interface CommunityLinksProps { */ export function CommunityLinks({ communityUrls, - title, - links, layout = 'vertical', - gridCols = 'grid-cols-2 md:grid-cols-4', + gridCols = 'grid-cols-2 md:grid-cols-4 lg:grid-cols-7', }: CommunityLinksProps) { + const t = useTranslations('components') + if (!communityUrls) { return null } + const links = [ + { + key: 'linkedin', + title: t('communityLinks.linkedin'), + description: t('communityLinks.linkedinDescription'), + }, + { + key: 'twitter', + title: t('communityLinks.twitter'), + description: t('communityLinks.twitterDescription'), + }, + { + key: 'github', + title: t('communityLinks.github'), + description: t('communityLinks.githubDescription'), + }, + { + key: 'youtube', + title: t('communityLinks.youtube'), + description: t('communityLinks.youtubeDescription'), + }, + { + key: 'discord', + title: t('communityLinks.discord'), + description: t('communityLinks.discordDescription'), + }, + { + key: 'reddit', + title: t('communityLinks.reddit'), + description: t('communityLinks.redditDescription'), + }, + { + key: 'blog', + title: t('communityLinks.blog'), + description: t('communityLinks.blogDescription'), + }, + ] + return ( ) => React.ReactNode @@ -155,7 +156,7 @@ export default function ComparisonTable({ maxWidth: column.maxWidth || `${columnWidths[index + 1]}px`, }} > - {column.label} + {column.label} ))} @@ -222,7 +223,7 @@ export default function ComparisonTable({ ...(column.minWidth && { width: column.minWidth }), }} > - {column.label} + {column.label} ))} diff --git a/src/components/product/GitHubStarHistory.tsx b/src/components/product/GitHubStarHistory.tsx index 91a3ec0..1277465 100644 --- a/src/components/product/GitHubStarHistory.tsx +++ b/src/components/product/GitHubStarHistory.tsx @@ -1,5 +1,6 @@ 'use client' +import { useTranslations } from 'next-intl' import { useEffect, useState } from 'react' import { CartesianGrid, @@ -30,6 +31,7 @@ interface StarHistoryApiResponse { } export function GitHubStarHistory({ githubUrl }: GitHubStarHistoryProps) { + const t = useTranslations('components.githubStarHistory') const [data, setData] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) @@ -110,9 +112,7 @@ export function GitHubStarHistory({ githubUrl }: GitHubStarHistoryProps) {
-

- Loading star history... -

+

{t('loading')}

@@ -131,10 +131,10 @@ export function GitHubStarHistory({ githubUrl }: GitHubStarHistoryProps) { {/* Header */}

- GitHub Star History + {t('title')}

- Star growth trend over time + {t('description')}

@@ -187,8 +187,8 @@ export function GitHubStarHistory({ githubUrl }: GitHubStarHistoryProps) { color: 'var(--color-text-secondary)', }} formatter={(value: number | undefined) => [ - `${value?.toLocaleString() ?? '0'} stars`, - 'Stars', + `${value?.toLocaleString() ?? '0'} ${t('stars')}`, + t('stars'), ]} />

- Note: Displaying sample data. Star history API temporarily unavailable. + {t('fallbackNote')}

)} diff --git a/src/components/product/LinkCard.tsx b/src/components/product/LinkCard.tsx index 96b6457..95cb9f5 100644 --- a/src/components/product/LinkCard.tsx +++ b/src/components/product/LinkCard.tsx @@ -6,7 +6,7 @@ */ interface LinkCardProps { - href: string + href?: string | null title: string description: string layout?: 'horizontal' | 'vertical' @@ -17,6 +17,30 @@ interface LinkCardProps { */ export function LinkCard({ href, title, description, layout = 'horizontal' }: LinkCardProps) { const isHorizontal = layout === 'horizontal' + const hasHref = href && href.trim().length > 0 + + if (!hasHref) { + return ( +
+ {isHorizontal ? ( +
+
+

{title}

+

{description}

+
+ +
+ ) : ( + <> +

{title}

+

{description}

+ + )} +
+ ) + } return ( - urls: Record + urls: Record layout?: 'horizontal' | 'vertical' gridCols?: string } /** * Grid container for link cards - * Automatically filters out links with empty URLs + * Displays all links - empty links show as grayed-out placeholders */ export function LinkCardGrid({ title, @@ -68,17 +92,6 @@ export function LinkCardGrid({ layout = 'horizontal', gridCols = 'grid-cols-1 md:grid-cols-3', }: LinkCardGridProps) { - // Filter out links where the URL is missing or not a string - const availableLinks = links.filter(link => { - const url = urls[link.key] - return url && typeof url === 'string' - }) - - // Don't render if no links are available - if (availableLinks.length === 0) { - return null - } - return (
@@ -87,10 +100,10 @@ export function LinkCardGrid({
- {availableLinks.map(link => ( + {links.map(link => ( + platformUrls: ManifestPlatformUrls | null | undefined layout?: 'horizontal' | 'vertical' gridCols?: string } -/** - * Check whether the given platform URLs object contains at least one usable URL. - * - * We treat empty strings and whitespace-only strings as "missing". - */ -function hasAnyPlatformUrl(platformUrls: PlatformUrls): boolean { - return Object.values(platformUrls).some(value => { - if (typeof value !== 'string') return false - return value.trim().length > 0 - }) -} - /** * PlatformLinks Section * @@ -40,18 +17,36 @@ function hasAnyPlatformUrl(platformUrls: PlatformUrls): boolean { */ export function PlatformLinks({ platformUrls, - title, - links, layout = 'horizontal', gridCols = 'grid-cols-1 md:grid-cols-3', }: PlatformLinksProps) { - if (!platformUrls || links.length === 0 || !hasAnyPlatformUrl(platformUrls)) { + const t = useTranslations('components.platformLinks') + + if (!platformUrls) { return null } + const links = [ + { + key: 'huggingface', + title: t('aiPlatforms.huggingface.title'), + description: t('aiPlatforms.huggingface.description'), + }, + { + key: 'artificialAnalysis', + title: t('aiPlatforms.artificialAnalysis.title'), + description: t('aiPlatforms.artificialAnalysis.description'), + }, + { + key: 'openrouter', + title: t('aiPlatforms.openrouter.title'), + description: t('aiPlatforms.openrouter.description'), + }, + ] + return ( {vendor && (
- {labels.vendor || 'Vendor'}: + {t('vendor')}: {vendor}
)} @@ -138,9 +125,7 @@ export function ProductHero({ {latestVersion && (
- - {labels.version || 'Version'}: - + {t('version')}: {latestVersion}
)} @@ -149,9 +134,7 @@ export function ProductHero({ {license && (
- - {labels.license || 'License'}: - + {t('license')}: {renderLicense( license, '!font-medium hover:underline hover:decoration-dotted transition-colors underline-offset-2', @@ -166,7 +149,7 @@ export function ProductHero({ {githubStars !== null && githubStars !== undefined && (
- {labels.stars || 'Stars'}: + {t('stars')}: {githubStars}k
)} @@ -208,7 +191,7 @@ export function ProductHero({
- {labels.platforms || 'Platforms'}: + {t('platforms')}:
{(['macOS', 'Windows', 'Linux'] as const).map(platform => { @@ -233,13 +216,13 @@ export function ProductHero({ )} {/* Type (for providers) */} - {type && labels?.typeValue && ( + {type && typeValue && (
- {labels.type || 'Type'}: + {t('type')}: - {labels.typeValue} + {type}
)} @@ -253,7 +236,7 @@ export function ProductHero({ rel="noopener" className="inline-flex items-center gap-[var(--spacing-xs)] px-[var(--spacing-md)] py-[var(--spacing-sm)] text-sm font-medium border border-[var(--color-border-strong)] bg-[var(--color-text)] text-[var(--color-bg)] hover:bg-[var(--color-text-secondary)] transition-all" > - {labels.visitWebsite || 'Visit Website'} + {t('visitWebsite')}
)} @@ -275,7 +258,7 @@ export function ProductHero({ rel="noopener" className="inline-flex items-center gap-[var(--spacing-xs)] px-[var(--spacing-md)] py-[var(--spacing-sm)] text-sm font-medium border border-[var(--color-border-strong)] bg-transparent hover:bg-[var(--color-hover)] transition-all" > - {labels.documentation || 'Documentation'} + {t('documentation')} )} @@ -286,7 +269,7 @@ export function ProductHero({ rel="noopener" className="inline-flex items-center gap-[var(--spacing-xs)] px-[var(--spacing-md)] py-[var(--spacing-sm)] text-sm font-medium border border-[var(--color-border-strong)] bg-transparent hover:bg-[var(--color-hover)] transition-all" > - {labels.download || 'Download'} + {t('download')} )} @@ -297,7 +280,7 @@ export function ProductHero({ rel="noopener" className="inline-flex items-center gap-[var(--spacing-xs)] px-[var(--spacing-md)] py-[var(--spacing-sm)] text-sm font-medium border border-[var(--color-border-strong)] bg-transparent hover:bg-[var(--color-hover)] transition-all" > - 🔑 {labels.getApiKey || 'Get API Key'} + 🔑 {t('getApiKey')} )} diff --git a/src/components/product/ProductLinks.tsx b/src/components/product/ProductLinks.tsx deleted file mode 100644 index 5c68cee..0000000 --- a/src/components/product/ProductLinks.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import { useTranslations } from 'next-intl' -import type { ManifestCommunityUrls, ManifestResourceUrls } from '@/types/manifests' - -export interface ProductLinksProps { - resourceUrls?: ManifestResourceUrls | null - communityUrls?: ManifestCommunityUrls | null -} - -export function ProductLinks({ resourceUrls, communityUrls }: ProductLinksProps) { - const t = useTranslations('components.productLinks') - - // Normalize manifest URLs to component-friendly optional strings - const normalizedResourceUrls: Record = { - download: resourceUrls?.download ?? undefined, - changelog: resourceUrls?.changelog ?? undefined, - pricing: resourceUrls?.pricing ?? undefined, - mcp: resourceUrls?.mcp ?? undefined, - issue: resourceUrls?.issue ?? undefined, - blog: undefined, - } - - const normalizedCommunityUrls = { - linkedin: communityUrls?.linkedin ?? undefined, - twitter: communityUrls?.twitter ?? undefined, - github: communityUrls?.github ?? undefined, - youtube: communityUrls?.youtube ?? undefined, - discord: communityUrls?.discord ?? undefined, - reddit: communityUrls?.reddit ?? undefined, - blog: communityUrls?.blog ?? undefined, - } - - // Check if there's any content to display - const hasresourceUrls = Object.values(normalizedResourceUrls).some(url => url) - const hasCommunityUrls = Object.values(normalizedCommunityUrls).some(url => url) - - // If both resourceUrls and communityUrls have no values, don't render the component - if (!hasresourceUrls && !hasCommunityUrls) { - return null - } - - // Define the order of links for resourceUrls - const pageUrlKeys = ['download', 'changelog', 'pricing', 'blog', 'mcp', 'issue'] as const - - // Define the order of links for communityUrls - const communityUrlKeys = [ - 'linkedin', - 'twitter', - 'github', - 'youtube', - 'discord', - 'reddit', - 'blog', - ] as const - - // Generate link configurations for resourceUrls by iterating over keys - const pageUrlLinks = pageUrlKeys.map(key => ({ - key, - url: normalizedResourceUrls[key], - label: t(key), - })) - - // Generate link configurations for communityUrls by iterating over keys - const communityUrlLinks = communityUrlKeys.map(key => ({ - key, - url: normalizedCommunityUrls[key], - label: t(key), - })) - - // Define sections configuration - const sections = [ - { title: t('resources'), links: pageUrlLinks, show: hasresourceUrls }, - { title: t('community'), links: communityUrlLinks, show: hasCommunityUrls }, - ] - - return ( -
-
-
- {sections.map( - ({ title, links, show }) => - show && ( -
-

- {title} -

-
    - {links.map( - ({ key, url, label }) => - url && ( -
  • - - → {label} - -
  • - ) - )} -
-
- ) - )} -
-
-
- ) -} diff --git a/src/components/product/ResourceLinks.tsx b/src/components/product/ResourceLinks.tsx new file mode 100644 index 0000000..28a85e6 --- /dev/null +++ b/src/components/product/ResourceLinks.tsx @@ -0,0 +1,63 @@ +'use client' + +import { useTranslations } from 'next-intl' +import { LinkCardGrid } from '@/components/product/LinkCard' +import type { ManifestResourceUrls } from '@/types/manifests' + +export interface ResourceLinksProps { + resourceUrls: ManifestResourceUrls | null | undefined + layout?: 'horizontal' | 'vertical' + gridCols?: string +} + +/** + * ResourceLinks Section + * + * Displays resource links for products (download, changelog, pricing, MCP documentation, issue tracker). + * Reuses LinkCardGrid for consistent styling. + */ +export function ResourceLinks({ + resourceUrls, + layout = 'vertical', + gridCols = 'grid-cols-2 md:grid-cols-4 lg:grid-cols-7', +}: ResourceLinksProps) { + const t = useTranslations('components') + + if (!resourceUrls) { + return null + } + + const links = [ + { + key: 'download', + title: t('resourceLinks.download'), + description: t('resourceLinks.downloadDescription'), + }, + { + key: 'changelog', + title: t('resourceLinks.changelog'), + description: t('resourceLinks.changelogDescription'), + }, + { + key: 'pricing', + title: t('resourceLinks.pricing'), + description: t('resourceLinks.pricingDescription'), + }, + { key: 'mcp', title: t('resourceLinks.mcp'), description: t('resourceLinks.mcpDescription') }, + { + key: 'issue', + title: t('resourceLinks.issue'), + description: t('resourceLinks.issueDescription'), + }, + ] + + return ( + + ) +} diff --git a/src/components/product/VendorModels.tsx b/src/components/product/VendorModels.tsx index bbd833f..d6a7ad6 100644 --- a/src/components/product/VendorModels.tsx +++ b/src/components/product/VendorModels.tsx @@ -1,21 +1,18 @@ +import { useTranslations } from 'next-intl' import { Link } from '@/i18n/navigation' import { formatTokenCount } from '@/lib/format' import type { ManifestModel } from '@/types/manifests' -export type VendorModelsProps = { - models: ManifestModel[] - locale: string - title: string -} +export function VendorModels({ models }: { models: ManifestModel[] }) { + const t = useTranslations('components.vendorModels') -export function VendorModels({ models, locale: _locale, title }: VendorModelsProps) { if (models.length === 0) { return null } return (
-

{title}

+

{t('title')}

{models.map(model => ( diff --git a/src/components/product/VendorProducts.tsx b/src/components/product/VendorProducts.tsx index b2e568b..f3b66f8 100644 --- a/src/components/product/VendorProducts.tsx +++ b/src/components/product/VendorProducts.tsx @@ -1,3 +1,4 @@ +import { useTranslations } from 'next-intl' import { Link } from '@/i18n/navigation' import type { ManifestCLI, ManifestExtension, ManifestIDE } from '@/types/manifests' @@ -5,26 +6,22 @@ type ProductWithType = (ManifestIDE | ManifestCLI | ManifestExtension) & { type: 'ide' | 'cli' | 'extension' } -export type VendorProductsProps = { - products: ProductWithType[] - locale: string - title: string -} - const PRODUCT_TYPE_LABELS = { ide: 'IDE', cli: 'CLI', extension: 'Extension', } as const -export function VendorProducts({ products, locale: _locale, title }: VendorProductsProps) { +export function VendorProducts({ products }: { products: ProductWithType[] }) { + const t = useTranslations('components.vendorProducts') + if (products.length === 0) { return null } return (
-

{title}

+

{t('title')}

{products.map(product => ( diff --git a/src/types/manifests.ts b/src/types/manifests.ts index 4037373..36f8ecd 100644 --- a/src/types/manifests.ts +++ b/src/types/manifests.ts @@ -93,6 +93,7 @@ export interface ManifestResourceUrls { pricing: string | null mcp: string | null issue: string | null + [key: string]: string | null } /** diff --git a/translations/de/components.json b/translations/de/components.json index 8cadaf6..4e4f056 100644 --- a/translations/de/components.json +++ b/translations/de/components.json @@ -3,6 +3,9 @@ "backTo": "Zurück zu", "indexLabel": "INDEX" }, + "breadcrumb": { + "home": "Startseite" + }, "collectionScrollbar": { "articles": "Featured Artikel", "specifications": "Spezifikationen & Protokolle", @@ -93,6 +96,36 @@ "install": "Installieren", "launch": "Starten" }, + "vendorProducts": { + "title": "Produkte" + }, + "vendorModels": { + "title": "Modelle" + }, + "platformLinks": { + "title": "Auf AI-Plattformen finden", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "Modellkarte und Gewichte anzeigen" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "KI-Modell-Leaderboard und Benchmarks" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Mehrere KI-Modelle vergleichen und nutzen" + } + } + }, + "githubStarHistory": { + "loading": "Star-Verlauf laden...", + "title": "GitHub Star-Verlauf", + "description": "Star-Wachstumstrend über Zeit", + "stars": "Stars", + "fallbackNote": "Hinweis: Beispieldaten werden angezeigt. Star-Verlauf API ist vorübergehend nicht verfügbar." + }, "productHero": { "categories": { "CLI": "CLI", @@ -119,21 +152,38 @@ "version": "Version", "visitWebsite": "Website Besuchen" }, - "productLinks": { + "communityLinks": { "blog": "Blog", + "blogDescription": "Blogbeiträge lesen", + "community": "@:shared.common.community", + "discord": "@:shared.platforms.discord", + "discordDescription": "Community beitreten", + "github": "@:shared.platforms.github", + "githubDescription": "Repositories ansehen", + "linkedin": "@:shared.platforms.linkedin", + "linkedinDescription": "@:shared.common.followUs", + "reddit": "@:shared.platforms.reddit", + "redditDescription": "Diskussion teilnehmen", + "twitter": "@:shared.platforms.twitter", + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "Videos ansehen" + }, + "resourceLinks": { "changelog": "Änderungsprotokoll", - "community": "Community", - "discord": "Discord", - "download": "Download", - "github": "GitHub", + "changelogDescription": "Änderungsprotokoll anzeigen", + "download": "@:shared.actions.download", + "downloadDescription": "Neueste Version herunterladen", "issue": "Issue-Tracker", - "linkedin": "LinkedIn", + "issueDescription": "Fehler melden und Funktionen anfordern", "mcp": "MCP-Dokumentation", - "pricing": "Preise", - "reddit": "Reddit", - "resources": "Ressourcen", - "twitter": "X (Twitter)", - "youtube": "YouTube" + "mcpDescription": "Erfahren Sie mehr über MCP-Integration", + "pricing": "@:shared.common.pricing", + "pricingDescription": "Preispläne anzeigen" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { "title": "Preise", diff --git a/translations/de/pages/comparison.json b/translations/de/pages/comparison.json index 4795484..1483687 100644 --- a/translations/de/pages/comparison.json +++ b/translations/de/pages/comparison.json @@ -5,20 +5,35 @@ "title": "CLI-Vergleich" }, "columns": { + "cache": "Cache", + "capabilities": "Funktionen", "contextLength": "Kontextlänge", "freePlan": "Kostenloser Plan", "githubStars": "Stars", + "input": "Eingabe", + "inputModalities": "Eingabemodalitäten", "license": "Lizenz", "links": "Links", + "live-code-bench": "Live Code Bench", "maxOutput": "Max. Ausgabe", "maxPrice": "Höchstpreis", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "Modellgröße", + "output": "Ausgabe", "platforms": "Plattformen", "pricing": "Preise", + "pricingCache": "Cache-Preise", + "pricingInput": "Eingabe-Preise", + "pricingOutput": "Ausgabe-Preise", + "sci-code": "SciCode", "startingPrice": "Startpreis", "supportedIdes": "Unterstützte IDEs", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "Anbieter", - "version": "Version" + "version": "Version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "Zurück zu Erweiterungen", diff --git a/translations/de/pages/stacks.json b/translations/de/pages/stacks.json index 5493868..4bfd757 100644 --- a/translations/de/pages/stacks.json +++ b/translations/de/pages/stacks.json @@ -158,6 +158,10 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Blogbeiträge lesen", + "title": "Blog" + }, "discord": { "description": "Community beitreten", "title": "Discord" diff --git a/translations/en/components.json b/translations/en/components.json index 412cafc..f7e6ec2 100644 --- a/translations/en/components.json +++ b/translations/en/components.json @@ -3,6 +3,9 @@ "backTo": "@:shared.actions.backTo", "indexLabel": "@:shared.common.indexLabel" }, + "breadcrumb": { + "home": "Home" + }, "collectionScrollbar": { "articles": "@:shared.common.featuredArticles", "specifications": "@:shared.common.specificationsProtocols", @@ -93,6 +96,36 @@ "install": "Install", "launch": "Launch" }, + "vendorProducts": { + "title": "Products" + }, + "vendorModels": { + "title": "Models" + }, + "platformLinks": { + "title": "Find on AI Platforms", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "View model card and weights" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "AI model leaderboard and benchmarks" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Compare and use multiple AI models" + } + } + }, + "githubStarHistory": { + "loading": "Loading star history...", + "title": "GitHub Star History", + "description": "Star growth trend over time", + "stars": "stars", + "fallbackNote": "Note: Displaying sample data. Star history API temporarily unavailable." + }, "productHero": { "categories": { "CLI": "@:shared.stack.cli", @@ -119,21 +152,38 @@ "version": "Version", "visitWebsite": "Visit Website" }, - "productLinks": { + "communityLinks": { "blog": "Blog", - "changelog": "Changelog", + "blogDescription": "Read blog posts", "community": "@:shared.common.community", "discord": "@:shared.platforms.discord", - "download": "@:shared.actions.download", + "discordDescription": "Join community", "github": "@:shared.platforms.github", - "issue": "Issue Tracker", + "githubDescription": "View repos", "linkedin": "@:shared.platforms.linkedin", - "mcp": "MCP Documentation", - "pricing": "@:shared.common.pricing", + "linkedinDescription": "@:shared.common.followUs", "reddit": "@:shared.platforms.reddit", - "resources": "@:shared.common.resources", + "redditDescription": "Join discussion", "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "Watch videos" + }, + "resourceLinks": { + "changelog": "Changelog", + "changelogDescription": "View changelog", + "download": "@:shared.actions.download", + "downloadDescription": "Download latest version", + "issue": "Issue Tracker", + "issueDescription": "Report bugs and request features", + "mcp": "MCP Documentation", + "mcpDescription": "Learn about MCP integration", + "pricing": "@:shared.common.pricing", + "pricingDescription": "View pricing plans" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { "title": "@:shared.common.pricing", diff --git a/translations/en/pages/comparison.json b/translations/en/pages/comparison.json index caf3bfd..bedc138 100644 --- a/translations/en/pages/comparison.json +++ b/translations/en/pages/comparison.json @@ -5,20 +5,35 @@ "title": "CLI Comparison" }, "columns": { + "cache": "Cache", + "capabilities": "Capabilities", "contextLength": "Context Length", "freePlan": "Free Plan", "githubStars": "@:components.productHero.stars", + "input": "Input", + "inputModalities": "Input Modalities", "license": "@:components.productHero.license", "links": "Links", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", "maxPrice": "Max Price", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "Output", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", + "pricingCache": "Cache Pricing", + "pricingInput": "Input Pricing", + "pricingOutput": "Output Pricing", + "sci-code": "SciCode", "startingPrice": "Starting Price", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "Back to Extensions", diff --git a/translations/en/pages/stacks.json b/translations/en/pages/stacks.json index 4ae86cc..2a852ab 100644 --- a/translations/en/pages/stacks.json +++ b/translations/en/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Read blog posts", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "Join community", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "View repos", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Join discussion", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Watch videos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -259,38 +263,38 @@ }, "discord": { "description": "Join community", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "View repos", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Join discussion", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Watch videos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "Connect on LinkedIn", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Follow on Twitter", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Join Discord community", "joinReddit": "Join Reddit community", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "Explore {name}'s AI products and technologies.", "metaTitle": "AI Technology Vendor | Company Profile 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "Explore products and services from {vendorName}", "productsTitle": "@:shared.common.products", "quickLinks": "Quick Links", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "Vendor Details", "viewGitHub": "View open source repositories", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "Watch videos on YouTube", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/es/components.json b/translations/es/components.json index 6da7d78..988a658 100644 --- a/translations/es/components.json +++ b/translations/es/components.json @@ -3,6 +3,9 @@ "backTo": "@:shared.actions.backTo", "indexLabel": "@:shared.common.indexLabel" }, + "breadcrumb": { + "home": "Inicio" + }, "collectionScrollbar": { "articles": "@:shared.common.featuredArticles", "specifications": "@:shared.common.specificationsProtocols", @@ -93,6 +96,36 @@ "install": "Instalar", "launch": "Iniciar" }, + "vendorProducts": { + "title": "Productos" + }, + "vendorModels": { + "title": "Modelos" + }, + "platformLinks": { + "title": "Buscar en plataformas de IA", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "Ver tarjeta de modelo y pesos" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "Tabla de clasificación y evaluaciones de modelos de IA" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Comparar y usar múltiples modelos de IA" + } + } + }, + "githubStarHistory": { + "loading": "Cargando historial de estrellas...", + "title": "Historial de estrellas de GitHub", + "description": "Tendencia de crecimiento de estrellas a lo largo del tiempo", + "stars": "estrellas", + "fallbackNote": "Nota: Mostrando datos de muestra. El API de historial de estrellas está temporalmente no disponible." + }, "productHero": { "categories": { "CLI": "@:shared.stack.cli", @@ -119,21 +152,38 @@ "version": "Versión", "visitWebsite": "Visitar sitio web" }, - "productLinks": { + "communityLinks": { "blog": "Blog", - "changelog": "Registro de cambios", + "blogDescription": "Leer publicaciones de blog", "community": "@:shared.common.community", "discord": "@:shared.platforms.discord", - "download": "@:shared.actions.download", + "discordDescription": "Unirse a la comunidad", "github": "@:shared.platforms.github", - "issue": "Rastreador de problemas", + "githubDescription": "Ver repositorios", "linkedin": "@:shared.platforms.linkedin", - "mcp": "Documentación de MCP", - "pricing": "@:shared.common.pricing", + "linkedinDescription": "@:shared.common.followUs", "reddit": "@:shared.platforms.reddit", - "resources": "@:shared.common.resources", + "redditDescription": "Unirse a la discusión", "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "Ver videos" + }, + "resourceLinks": { + "changelog": "Registro de cambios", + "changelogDescription": "Ver registro de cambios", + "download": "@:shared.actions.download", + "downloadDescription": "Descargar la última versión", + "issue": "Rastreador de problemas", + "issueDescription": "Informar errores y solicitar funciones", + "mcp": "Documentación de MCP", + "mcpDescription": "Obtenga información sobre la integración MCP", + "pricing": "@:shared.common.pricing", + "pricingDescription": "Ver planes de precios" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { "title": "@:shared.common.pricing", diff --git a/translations/es/pages/comparison.json b/translations/es/pages/comparison.json index a51544b..eee0b83 100644 --- a/translations/es/pages/comparison.json +++ b/translations/es/pages/comparison.json @@ -5,20 +5,35 @@ "title": "@:shared.stacks.clis" }, "columns": { + "cache": "Caché", + "capabilities": "Capacidades", "contextLength": "Longitud del contexto", "freePlan": "Plan gratuito", "githubStars": "@:components.productHero.stars", + "input": "Entrada", + "inputModalities": "Modalidades de entrada", "license": "@:components.productHero.license", "links": "Enlaces", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", "maxPrice": "Precio máximo", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "Salida", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", + "pricingCache": "Precio de Caché", + "pricingInput": "Precio de Entrada", + "pricingOutput": "Precio de Salida", + "sci-code": "SciCode", "startingPrice": "Precio inicial", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "Volver a Extensiones", diff --git a/translations/es/pages/stacks.json b/translations/es/pages/stacks.json index ebd9ea7..9afe7ee 100644 --- a/translations/es/pages/stacks.json +++ b/translations/es/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Leer publicaciones de blog", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "Unirse a la comunidad", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Ver repositorios", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Unirse a la discusión", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Ver videos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -255,42 +259,42 @@ "community": { "blog": { "description": "Leer publicaciones de blog", - "title": "Blog" + "title": "@:components.communityLinks.blog" }, "discord": { "description": "Unirse a la comunidad", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Ver repositorios", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Unirse a la discusión", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Ver videos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "Conectarse en LinkedIn", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Seguir en Twitter", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Unirse a la comunidad de Discord", "joinReddit": "Unirse a la comunidad de Reddit", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "Explora los productos y tecnologías de IA de {name}.", "metaTitle": "Proveedor de tecnología de IA | Perfil de empresa 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "Explora productos y servicios de {vendorName}", "productsTitle": "@:shared.common.products", "quickLinks": "Enlaces rápidos", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "Detalles del proveedor", "viewGitHub": "Ver repositorios de código abierto", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "Ver videos en YouTube", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/fr/components.json b/translations/fr/components.json index 15adec3..a785e1e 100644 --- a/translations/fr/components.json +++ b/translations/fr/components.json @@ -3,6 +3,9 @@ "backTo": "@:shared.actions.backTo", "indexLabel": "@:shared.common.indexLabel" }, + "breadcrumb": { + "home": "Accueil" + }, "collectionScrollbar": { "articles": "@:shared.common.featuredArticles", "specifications": "@:shared.common.specificationsProtocols", @@ -93,6 +96,36 @@ "install": "Installer", "launch": "Lancer" }, + "vendorProducts": { + "title": "Produits" + }, + "vendorModels": { + "title": "Modèles" + }, + "platformLinks": { + "title": "Trouver sur les plateformes IA", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "Voir la fiche modèle et les poids" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "Classement et benchmarks de modèles IA" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Comparer et utiliser plusieurs modèles IA" + } + } + }, + "githubStarHistory": { + "loading": "Chargement de l'historique des étoiles...", + "title": "Historique des étoiles GitHub", + "description": "Tendance de croissance des étoiles au fil du temps", + "stars": "étoiles", + "fallbackNote": "Note : Affichage de données d'exemple. L'API d'historique des étoiles est temporairement indisponible." + }, "productHero": { "categories": { "CLI": "@:shared.stack.cli", @@ -119,21 +152,38 @@ "version": "Version", "visitWebsite": "Visiter le site web" }, - "productLinks": { + "communityLinks": { "blog": "Blog", - "changelog": "Journal des modifications", + "blogDescription": "Lire les articles de blog", "community": "@:shared.common.community", "discord": "@:shared.platforms.discord", - "download": "@:shared.actions.download", + "discordDescription": "Rejoindre la communauté", "github": "@:shared.platforms.github", - "issue": "Suivi des problèmes", + "githubDescription": "Voir les dépôts", "linkedin": "@:shared.platforms.linkedin", - "mcp": "Documentation MCP", - "pricing": "@:shared.common.pricing", + "linkedinDescription": "@:shared.common.followUs", "reddit": "@:shared.platforms.reddit", - "resources": "@:shared.common.resources", + "redditDescription": "Rejoindre la discussion", "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "Regarder les vidéos" + }, + "resourceLinks": { + "changelog": "Journal des modifications", + "changelogDescription": "Voir le journal des modifications", + "download": "@:shared.actions.download", + "downloadDescription": "Télécharger la dernière version", + "issue": "Suivi des problèmes", + "issueDescription": "Signaler des bugs et demander des fonctionnalités", + "mcp": "Documentation MCP", + "mcpDescription": "En savoir plus sur l'intégration MCP", + "pricing": "@:shared.common.pricing", + "pricingDescription": "Voir les plans tarifaires" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { "title": "@:shared.common.pricing", diff --git a/translations/fr/pages/comparison.json b/translations/fr/pages/comparison.json index a8a486d..270360f 100644 --- a/translations/fr/pages/comparison.json +++ b/translations/fr/pages/comparison.json @@ -1,34 +1,49 @@ { "clis": { - "backTo": "Retour aux CLI", - "subtitle": "Assistants de codage en ligne de commande alimentés par l'IA", - "title": "@:shared.stacks.clis" + "backTo": "Retour aux CLIs", + "subtitle": "Comparez les fonctionnalités, les tarifs et les spécifications des outils de codage IA en ligne de commande côte à côte.", + "title": "Comparaison CLI" }, "columns": { + "cache": "Cache", + "capabilities": "Capacités", "contextLength": "Longueur du contexte", "freePlan": "Plan gratuit", "githubStars": "@:components.productHero.stars", + "input": "Entrée", + "inputModalities": "Modalités d'entrée", "license": "@:components.productHero.license", "links": "Liens", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", "maxPrice": "Prix maximum", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "Sortie", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", + "pricingCache": "Tarif Cache", + "pricingInput": "Tarif Entrée", + "pricingOutput": "Tarif Sortie", + "sci-code": "SciCode", "startingPrice": "Prix de départ", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "Retour aux Extensions", - "subtitle": "Extensions et plugins de codage alimentés par l'IA", - "title": "@:shared.stacks.extensions" + "subtitle": "Comparez les fonctionnalités, les tarifs et les spécifications des extensions de codage IA côte à côte.", + "title": "Comparaison Extensions" }, "ides": { - "backTo": "Retour aux IDE", - "subtitle": "Environnements de développement intégrés améliorés par l'IA", - "title": "@:shared.stacks.ides" + "backTo": "Retour aux IDEs", + "subtitle": "Comparez les fonctionnalités, les tarifs et les spécifications des IDE propulsés par l'IA côte à côte.", + "title": "Comparaison IDE" }, "linkTitles": { "documentation": "@:components.productHero.documentation", @@ -37,8 +52,8 @@ }, "models": { "backTo": "Retour aux Modèles", - "subtitle": "Grands modèles de langage optimisés pour la génération et l'analyse de code", - "title": "@:shared.stacks.models" + "subtitle": "Comparez les spécifications et les tarifs des modèles de codage AI côte à côte.", + "title": "Comparaison modèles" }, "pricingValues": { "free": "Gratuit", diff --git a/translations/fr/pages/stacks.json b/translations/fr/pages/stacks.json index b614f2b..a49d1e2 100644 --- a/translations/fr/pages/stacks.json +++ b/translations/fr/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Lire les articles de blog", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "Rejoindre la communauté", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Voir les dépôts", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Rejoindre la discussion", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Regarder les vidéos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -259,38 +263,38 @@ }, "discord": { "description": "Rejoindre la communauté", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Voir les dépôts", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Rejoindre la discussion", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Regarder les vidéos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "Se connecter sur LinkedIn", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Suivre sur Twitter", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Rejoindre la communauté Discord", "joinReddit": "Rejoindre la communauté Reddit", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "Explorez les produits et technologies IA de {name}.", "metaTitle": "Fournisseur de technologie IA | Profil d'entreprise 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "Explorer les produits et services de {vendorName}", "productsTitle": "@:shared.common.products", "quickLinks": "Liens rapides", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "Détails du fournisseur", "viewGitHub": "Voir les dépôts open source", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "Regarder les vidéos sur YouTube", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/id/components.json b/translations/id/components.json index 76bd1e8..71ef816 100644 --- a/translations/id/components.json +++ b/translations/id/components.json @@ -1,23 +1,26 @@ { "backToNavigation": { - "backTo": "Kembali ke", - "indexLabel": "INDEKS" + "backTo": "@:shared.actions.backTo", + "indexLabel": "@:shared.common.indexLabel" + }, + "breadcrumb": { + "home": "Beranda" }, "collectionScrollbar": { - "articles": "Artikel Pilihan", - "specifications": "Spesifikasi & Protokol", - "tools": "Alat Ekosistem" + "articles": "@:shared.common.featuredArticles", + "specifications": "@:shared.common.specificationsProtocols", + "tools": "@:shared.common.ecosystemTools" }, "docsSidebar": { - "label": "Dokumentasi", + "label": "@:shared.common.documentation", "title": "DOKUMENTASI" }, "filterSortBar": { "clearFilters": "Hapus filter", "license": "Lisensi:", - "openSource": "Open Source", + "openSource": "@:shared.common.openSource", "platform": "Platform:", - "proprietary": "Proprietary", + "proprietary": "@:shared.common.proprietary", "search": "Cari berdasarkan nama...", "sort": "Urutkan:", "sortDefault": "Default", @@ -28,116 +31,163 @@ "copyright": "© 2025 AI Coding Stack • Dibuat dengan ❤︎ • Open Source", "openSource": "Repositori metadata coding AI open source.", "selectLanguage": "Pilih Bahasa", - "tagline": "Pusat Ekosistem Coding AI Anda.", - "toggleTheme": "Ubah tema" + "tagline": "Pusat ekosistem coding AI Anda.", + "toggleTheme": "Ganti tema" }, "header": { - "aiCodingLandscape": "Lanskap Coding AI", - "aiCodingLandscapeDesc": "Visualisasikan ekosistem coding AI secara lengkap", - "aiCodingStack": "AI Coding Stack", - "articles": "Artikel", + "aiCodingLandscape": "Pemandangan Coding AI", + "aiCodingLandscapeDesc": "Visualisasi ekosistem coding AI lengkap", + "aiCodingStack": "@:shared.common.aiCodingStack", + "articles": "@:shared.common.articles", "closeMenu": "Tutup menu", - "collections": "Koleksi", + "collections": "@:shared.common.collections", "developmentTools": "Alat Pengembangan", "intelligence": "Kecerdasan", - "landscape": "Lanskap", - "manifesto": "Manifesto", + "landscape": "Pemandangan", + "manifesto": "@:shared.common.manifesto", "openMenu": "Buka menu", "openSourceRank": "Peringkat Open Source", "openSourceRankDesc": "Jelajahi proyek coding AI open source berdasarkan bintang GitHub", "ranking": "Peringkat", - "search": "Cari", + "search": "@:shared.actions.search", "searchPlaceholder": "Cari...", - "toggleMenu": "Ubah menu" + "toggleMenu": "Toggle menu" }, "openSourceRank": { - "description": "Temukan dan jelajahi alat coding AI open source yang diranking berdasarkan bintang GitHub. Bandingkan IDE, CLI, dan ekstensi untuk menemukan alat yang sempurna untuk alur kerja pengembangan Anda.", + "description": "Temukan dan jelajahi alat coding AI open source yang diurutkan berdasarkan bintang GitHub. Bandingkan IDE, CLI, dan ekstensi untuk menemukan alat yang sempurna untuk alur kerja pengembangan Anda.", "filter": { "all": "Semua" }, "meta": { "description": "Peringkat semua proyek open source di AI Coding Stack, diurutkan berdasarkan bintang GitHub. Lihat statistik dan tren alat open source vs proprietary.", - "title": "Peringkat Proyek Open Source" + "title": "@:components.openSourceRank.title" }, "noResults": "Tidak ada proyek open source yang ditemukan untuk kategori ini.", - "note": "Catatan: Halaman ini hanya menampilkan proyek dengan repositori GitHub. Beberapa proyek, meskipun tidak open source, mempertahankan repositori GitHub sebagai saluran umpan balik pengguna.", + "note": "Catatan: Halaman ini hanya menampilkan proyek dengan repositori GitHub. Beberapa proyek, meskipun tidak open source, memelihara repositori GitHub sebagai kanal umpan balik pengguna.", "productType": { - "cli": "CLI", - "extension": "Ekstensi", - "ide": "IDE" + "cli": "@:shared.stack.cli", + "extension": "@:shared.stack.extension", + "ide": "@:shared.stack.ide" }, "statistics": { - "closedSource": "Proprietary", + "closedSource": "@:shared.common.proprietary", "closedSourceCount": "Proyek Proprietary", "closedSourcePercentage": "Persentase Proprietary", "licenseBreakdown": "Distribusi Lisensi", - "openSource": "Open Source", + "openSource": "@:shared.common.openSource", "openSourceCount": "Proyek Open Source", "projects": "proyek", "title": "Distribusi Open Source vs Proprietary", "totalProjects": "Total Proyek" }, "table": { - "license": "Lisensi", + "license": "@:shared.common.license", "name": "Nama", "openSourceTitle": "Proyek Open Source ({count})", "proprietaryTitle": "Proyek Proprietary ({count})", "rank": "Peringkat", - "stars": "Bintang", - "type": "Tipe" + "stars": "@:shared.common.stars", + "type": "@:shared.common.type" }, "title": "Peringkat Proyek Open Source" }, "productCommands": { "command": "Perintah", "install": "Instal", - "launch": "Mulai" + "launch": "Luncurkan" + }, + "vendorProducts": { + "title": "Produk" + }, + "vendorModels": { + "title": "Model" + }, + "platformLinks": { + "title": "Temukan di Platform AI", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "Lihat kartu model dan bobot" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "Papan peringkat dan benchmark model AI" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Bandingkan dan gunakan banyak model AI" + } + } + }, + "githubStarHistory": { + "loading": "Memuat riwayat bintang...", + "title": "Riwayat Bintang GitHub", + "description": "Tren pertumbuhan bintang dari waktu ke waktu", + "stars": "bintang", + "fallbackNote": "Catatan: Menampilkan data sampel. API riwayat bintang tidak tersedia sementara." }, "productHero": { "categories": { - "CLI": "CLI", - "EXTENSION": "Ekstensi", - "IDE": "IDE", - "MODEL": "Model", - "PROVIDER": "Penyedia Model", - "VENDOR": "Vendor" + "CLI": "@:shared.stack.cli", + "EXTENSION": "@:shared.stack.extension", + "IDE": "@:shared.stack.ide", + "MODEL": "@:shared.stack.model", + "PROVIDER": "@:shared.stack.modelProvider", + "VENDOR": "@:shared.stack.vendor" }, - "documentation": "Dokumentasi", - "download": "Unduh", + "documentation": "@:shared.common.documentation", + "download": "@:shared.actions.download", "getApiKey": "Dapatkan Kunci API", - "license": "Lisensi", + "license": "@:shared.common.license", "platforms": "Platform", "providerTypes": { - "foundation-model-provider": "Penyedia Model Foundation", + "foundation-model-provider": "Penyedia Model Dasar", "model-service-provider": "Penyedia Layanan Model" }, "runtime": "Runtime", - "stars": "Bintang", + "stars": "@:shared.common.stars", "supportedIdes": "IDE yang Didukung", - "type": "Tipe", - "vendor": "Vendor", + "type": "@:shared.common.type", + "vendor": "@:shared.stack.vendor", "version": "Versi", - "visitWebsite": "Kunjungi Situs Web" + "visitWebsite": "Kunjungi situs web" }, - "productLinks": { + "communityLinks": { "blog": "Blog", - "changelog": "Log Perubahan", - "community": "Komunitas", - "discord": "Discord", - "download": "Unduh", - "github": "GitHub", - "issue": "Pelacak Isu", - "linkedin": "LinkedIn", + "blogDescription": "Baca postingan blog", + "community": "@:shared.common.community", + "discord": "@:shared.platforms.discord", + "discordDescription": "Bergabung komunitas", + "github": "@:shared.platforms.github", + "githubDescription": "Lihat repositori", + "linkedin": "@:shared.platforms.linkedin", + "linkedinDescription": "@:shared.common.followUs", + "reddit": "@:shared.platforms.reddit", + "redditDescription": "Ikuti diskusi", + "twitter": "@:shared.platforms.twitter", + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "Tonton video" + }, + "resourceLinks": { + "changelog": "Changelog", + "changelogDescription": "Lihat changelog", + "download": "@:shared.actions.download", + "downloadDescription": "Unduh versi terbaru", + "issue": "Pelacak Masalah", + "issueDescription": "Laporkan bug dan minta fitur", "mcp": "Dokumentasi MCP", - "pricing": "Harga", - "reddit": "Reddit", - "resources": "Sumber Daya", - "twitter": "X (Twitter)", - "youtube": "YouTube" + "mcpDescription": "Pelajari integrasi MCP", + "pricing": "@:shared.common.pricing", + "pricingDescription": "Lihat paket harga" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { - "title": "Harga", - "viewFullDetails": "Lihat detail harga lengkap →" + "title": "@:shared.common.pricing", + "viewFullDetails": "@:shared.actions.viewFullDetails" }, "modelSpecifications": { "title": "@:pages.modelDetail.specifications", @@ -175,12 +225,12 @@ }, "search": { "categories": { - "clis": "CLI", - "extensions": "Ekstensi", - "ides": "IDE", - "models": "Model", - "providers": "Penyedia Model", - "vendors": "Vendor" + "clis": "@:shared.stacks.clis", + "extensions": "@:shared.stacks.extensions", + "ides": "@:shared.stacks.ides", + "models": "@:shared.stacks.models", + "providers": "@:shared.stacks.modelProviders", + "vendors": "@:shared.stacks.vendors" }, "navigate": "untuk menavigasi", "noResults": "Tidak ada hasil yang ditemukan", @@ -201,8 +251,8 @@ "title": "Hasil Pencarian" }, "sidebar": { - "backToTop": "Kembali ke atas", - "selectItem": "Pilih item" + "backToTop": "@:shared.actions.backToTop", + "selectItem": "@:shared.actions.selectItem" }, "vendorMatrix": { "cell": { diff --git a/translations/id/components.json.bak b/translations/id/components.json.bak deleted file mode 100644 index d9f962c..0000000 --- a/translations/id/components.json.bak +++ /dev/null @@ -1,180 +0,0 @@ -{ - "backToNavigation": { - "backTo": "@:shared.actions.backTo", - "indexLabel": "@:shared.common.indexLabel" - }, - "collectionScrollbar": { - "articles": "@:shared.common.featuredArticles", - "specifications": "@:shared.common.specificationsProtocols", - "tools": "@:shared.common.ecosystemTools" - }, - "docsSidebar": { - "label": "@:shared.common.documentation", - "title": "DOCUMENTAÇÃO" - }, - "filterSortBar": { - "clearFilters": "Limpar filtros", - "license": "Licença:", - "openSource": "@:shared.common.openSource", - "platform": "Plataforma:", - "proprietary": "@:shared.common.proprietary", - "search": "Pesquisar por nome...", - "sort": "Ordenar:", - "sortDefault": "Padrão", - "sortNameAsc": "Nome (A-Z)", - "sortNameDesc": "Nome (Z-A)" - }, - "footer": { - "copyright": "© 2025 AI Coding Stack • Construído com ❤︎ • Open Source", - "openSource": "Repositório de metadados de codificação IA de código aberto.", - "selectLanguage": "Selecionar idioma", - "tagline": "Seu centro do ecossistema de codificação IA.", - "toggleTheme": "Alternar tema" - }, - "header": { - "aiCodingLandscape": "Paisagem de Codificação IA", - "aiCodingLandscapeDesc": "Visualize o ecossistema completo de codificação IA", - "aiCodingStack": "@:shared.common.aiCodingStack", - "articles": "@:shared.common.articles", - "closeMenu": "Fechar menu", - "collections": "@:shared.common.collections", - "developmentTools": "Ferramentas de desenvolvimento", - "intelligence": "Inteligência", - "landscape": "Paisagem", - "manifesto": "@:shared.common.manifesto", - "openMenu": "Abrir menu", - "openSourceRank": "Classificação Open Source", - "openSourceRankDesc": "Explore projetos de codificação IA open source por estrelas do GitHub", - "ranking": "Classificação", - "search": "@:shared.actions.search", - "searchPlaceholder": "Pesquisar...", - "toggleMenu": "Alternar menu" - }, - "openSourceRank": { - "description": "Descubra e explore ferramentas de codificação IA open source classificadas por estrelas do GitHub. Compare IDEs, CLIs e extensões para encontrar as ferramentas perfeitas para seu fluxo de trabalho de desenvolvimento.", - "filter": { - "all": "Todos" - }, - "meta": { - "description": "Classificação de todos os projetos de código aberto em AI Coding Stack, ordenados por estrelas do GitHub. Veja estatísticas e tendências de ferramentas de código aberto vs proprietárias.", - "title": "@:components.openSourceRank.title" - }, - "noResults": "Nenhum projeto de código aberto encontrado para esta categoria.", - "note": "Nota: Esta página mostra apenas projetos com repositórios GitHub. Alguns projetos, embora não sejam de código aberto, mantêm repositórios GitHub como canais de feedback dos usuários.", - "productType": { - "cli": "@:shared.stack.cli", - "extension": "@:shared.stack.extension", - "ide": "@:shared.stack.ide" - }, - "statistics": { - "closedSource": "@:shared.common.proprietary", - "closedSourceCount": "Projetos Proprietários", - "closedSourcePercentage": "Porcentagem Proprietária", - "licenseBreakdown": "Distribuição de Licenças", - "openSource": "@:shared.common.openSource", - "openSourceCount": "Projetos de Código Aberto", - "projects": "projetos", - "title": "Distribuição de Código Aberto vs Proprietário", - "totalProjects": "Total de Projetos" - }, - "table": { - "license": "@:shared.common.license", - "name": "Nome", - "openSourceTitle": "Projetos de Código Aberto ({count})", - "proprietaryTitle": "Projetos Proprietários ({count})", - "rank": "Classificação", - "stars": "@:shared.common.stars", - "type": "@:shared.common.type" - }, - "title": "Classificação de Projetos de Código Aberto" - }, - "productCommands": { - "command": "Comando", - "install": "Instalar", - "launch": "Iniciar" - }, - "productHero": { - "categories": { - "CLI": "@:shared.stack.cli", - "EXTENSION": "@:shared.stack.extension", - "IDE": "@:shared.stack.ide", - "MODEL": "@:shared.stack.model", - "PROVIDER": "@:shared.stack.modelProvider", - "VENDOR": "@:shared.stack.vendor" - }, - "documentation": "@:shared.common.documentation", - "download": "@:shared.actions.download", - "getApiKey": "Obter Chave de API", - "license": "@:shared.common.license", - "platforms": "Plataformas", - "providerTypes": { - "foundation-model-provider": "Provedor de Modelo Base", - "model-service-provider": "Provedor de Serviço de Modelo" - }, - "runtime": "Runtime", - "stars": "@:shared.common.stars", - "supportedIdes": "IDEs Suportados", - "type": "@:shared.common.type", - "vendor": "@:shared.stack.vendor", - "version": "Versão", - "visitWebsite": "Visitar Site" - }, - "productLinks": { - "blog": "Blog", - "changelog": "Changelog", - "community": "@:shared.common.community", - "discord": "@:shared.platforms.discord", - "download": "@:shared.actions.download", - "github": "@:shared.platforms.github", - "issue": "Rastreador de Problemas", - "linkedin": "@:shared.platforms.linkedin", - "mcp": "Documentação MCP", - "pricing": "@:shared.common.pricing", - "reddit": "@:shared.platforms.reddit", - "resources": "@:shared.common.resources", - "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" - }, - "productPricing": { - "title": "@:shared.common.pricing", - "viewFullDetails": "@:shared.actions.viewFullDetails" - }, - "relatedProducts": { - "cli": "CLI", - "extension": "Extensão", - "ide": "IDE", - "title": "Produtos Relacionados", - "viewProduct": "Ver Produto" - }, - "search": { - "categories": { - "clis": "@:shared.stacks.clis", - "extensions": "@:shared.stacks.extensions", - "ides": "@:shared.stacks.ides", - "models": "@:shared.stacks.models", - "providers": "@:shared.stacks.modelProviders", - "vendors": "@:shared.stacks.vendors" - }, - "navigate": "para navegar", - "noResults": "Nenhum resultado encontrado", - "noResultsFor": "Nenhum resultado encontrado para \"{query}\"", - "placeholder": "Pesquisar ferramentas de codificação IA...", - "resultsCount": "{count} {count, plural, one {resultado} other {resultados}}", - "resultsCountFor": "{count} {count, plural, one {resultado} other {resultados}} para \"{query}\"", - "searching": "Pesquisando...", - "select": "para selecionar", - "stacks": { - "clis": "@:shared.stacks.clis", - "extensions": "@:shared.stacks.extensions", - "ides": "@:shared.stacks.ides", - "modelProviders": "@:shared.stacks.modelProviders", - "models": "@:shared.stacks.models", - "vendors": "@:shared.stacks.vendors" - }, - "title": "Resultados da Pesquisa" - }, - "sidebar": { - "backToTop": "@:shared.actions.backToTop", - "selectItem": "@:shared.actions.selectItem" - } -} diff --git a/translations/id/pages/comparison.json b/translations/id/pages/comparison.json index 69f650e..262e11a 100644 --- a/translations/id/pages/comparison.json +++ b/translations/id/pages/comparison.json @@ -1,34 +1,49 @@ { "clis": { "backTo": "Kembali ke CLI", - "subtitle": "Bandingkan fitur, harga, dan spesifikasi alat coding AI CLI secara berdampingan.", - "title": "Perbandingan CLI" + "subtitle": "Asisten pengkodean baris perintah AI", + "title": "@:shared.stacks.clis" }, "columns": { + "cache": "Cache", + "capabilities": "Kapasitas", "contextLength": "Panjang Konteks", - "freePlan": "Paket Gratis", + "freePlan": "Rencana Gratis", "githubStars": "@:components.productHero.stars", + "input": "Input", + "inputModalities": "Modalitas Input", "license": "@:components.productHero.license", "links": "Tautan", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", "maxPrice": "Harga Maksimum", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "Output", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", - "startingPrice": "Harga Awal", + "pricingCache": "Harga Cache", + "pricingInput": "Harga Input", + "pricingOutput": "Harga Output", + "sci-code": "SciCode", + "startingPrice": "Harga Mulai", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "Kembali ke Ekstensi", - "subtitle": "Bandingkan fitur, harga, dan spesifikasi ekstensi coding AI secara berdampingan.", - "title": "Perbandingan Ekstensi" + "subtitle": "Ekstensi dan plugin pengkodean AI", + "title": "@:shared.stacks.extensions" }, "ides": { "backTo": "Kembali ke IDE", - "subtitle": "Bandingkan fitur, harga, dan spesifikasi IDE bertenaga AI secara berdampingan.", - "title": "Perbandingan IDE" + "subtitle": "Lingkungan pengembangan terintegrasi yang ditingkatkan dengan AI", + "title": "@:shared.stacks.ides" }, "linkTitles": { "documentation": "@:components.productHero.documentation", @@ -37,11 +52,11 @@ }, "models": { "backTo": "Kembali ke Model", - "subtitle": "Bandingkan spesifikasi dan harga model coding AI secara berdampingan.", - "title": "Perbandingan Model" + "subtitle": "Model bahasa besar yang dioptimalkan untuk pembuatan dan analisis kode", + "title": "@:shared.stacks.models" }, "pricingValues": { "free": "Gratis", - "freeOnly": "Gratis saja" + "freeOnly": "Hanya gratis" } } diff --git a/translations/id/pages/stacks.json b/translations/id/pages/stacks.json index 04c86e2..15c5569 100644 --- a/translations/id/pages/stacks.json +++ b/translations/id/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Baca postingan blog", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "Bergabung komunitas", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Lihat repositori", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Bergabung diskusi", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Tonton video", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -259,38 +263,38 @@ }, "discord": { "description": "Join community", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "View repos", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Join discussion", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Watch videos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "Berhubung di LinkedIn", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Ikuti di Twitter", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Bergabung komunitas Discord", "joinReddit": "Bergabung komunitas Reddit", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "Jelajahi produk dan teknologi AI {name}.", "metaTitle": "Penyedia Teknologi AI | Profil Perusahaan 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "Jelajahi produk dan layanan dari {vendorName}", "productsTitle": "@:shared.common.products", "quickLinks": "Tautan Cepat", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "Detail Penyedia", "viewGitHub": "Lihat repositori open source", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "Tonton video di YouTube", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/ja/components.json b/translations/ja/components.json index f870b87..37b7ac0 100644 --- a/translations/ja/components.json +++ b/translations/ja/components.json @@ -3,6 +3,9 @@ "backTo": "@:shared.actions.backTo", "indexLabel": "@:shared.common.indexLabel" }, + "breadcrumb": { + "home": "ホーム" + }, "collectionScrollbar": { "articles": "@:shared.common.featuredArticles", "specifications": "@:shared.common.specificationsProtocols", @@ -93,6 +96,36 @@ "install": "インストール", "launch": "起動" }, + "vendorProducts": { + "title": "製品" + }, + "vendorModels": { + "title": "モデル" + }, + "platformLinks": { + "title": "AI プラットフォームで探す", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "モデルカードと重みを表示" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "AI モデルのリーダーボードとベンチマーク" + }, + "openrouter": { + "title": "OpenRouter", + "description": "複数の AI モデルを比較して使用" + } + } + }, + "githubStarHistory": { + "loading": "スター履歴を読み込み中...", + "title": "GitHub スター履歴", + "description": "スターの成長トレンド", + "stars": "スター", + "fallbackNote": "注: サンプルデータを表示中。スター履歴 API は一時的に利用できません。" + }, "productHero": { "categories": { "CLI": "@:shared.stack.cli", @@ -119,21 +152,38 @@ "version": "バージョン", "visitWebsite": "Web サイトを表示" }, - "productLinks": { + "communityLinks": { "blog": "ブログ", - "changelog": "変更履歴", + "blogDescription": "ブログ記事を読む", "community": "@:shared.common.community", "discord": "@:shared.platforms.discord", - "download": "@:shared.actions.download", + "discordDescription": "コミュニティに参加", "github": "@:shared.platforms.github", - "issue": "課題トラッカー", + "githubDescription": "リポジトリを表示", "linkedin": "@:shared.platforms.linkedin", - "mcp": "MCP ドキュメント", - "pricing": "@:shared.common.pricing", + "linkedinDescription": "フォローする", "reddit": "@:shared.platforms.reddit", - "resources": "@:shared.common.resources", + "redditDescription": "ディスカッションに参加", "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" + "twitterDescription": "フォローする", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "動画を見る" + }, + "resourceLinks": { + "changelog": "変更履歴", + "changelogDescription": "変更履歴を表示", + "download": "@:shared.actions.download", + "downloadDescription": "最新バージョンをダウンロード", + "issue": "課題トラッカー", + "issueDescription": "バグを報告して機能をリクエスト", + "mcp": "MCP ドキュメント", + "mcpDescription": "MCP 統合について学ぶ", + "pricing": "@:shared.common.pricing", + "pricingDescription": "価格プランを表示" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { "title": "@:shared.common.pricing", diff --git a/translations/ja/pages/comparison.json b/translations/ja/pages/comparison.json index a03aa0c..912d305 100644 --- a/translations/ja/pages/comparison.json +++ b/translations/ja/pages/comparison.json @@ -1,34 +1,49 @@ { "clis": { - "backTo": "CLI に戻る", - "subtitle": "AI 対応のコマンドラインコーディングアシスタント", - "title": "@:shared.stacks.clis" + "backTo": "CLIに戻る", + "subtitle": "AIコーディングCLIツールの機能、価格、仕様を並べて比較", + "title": "CLI比較" }, "columns": { + "cache": "キャッシュ", + "capabilities": "機能", "contextLength": "コンテキスト長", "freePlan": "無料プラン", "githubStars": "@:components.productHero.stars", + "input": "入力", + "inputModalities": "入力モダリティ", "license": "@:components.productHero.license", "links": "リンク", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", "maxPrice": "最大価格", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "出力", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", + "pricingCache": "キャッシュ価格", + "pricingInput": "入力価格", + "pricingOutput": "出力価格", + "sci-code": "SciCode", "startingPrice": "開始価格", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "拡張機能に戻る", - "subtitle": "AI 対応のコーディング拡張機能とプラグイン", - "title": "@:shared.stacks.extensions" + "subtitle": "AIコーディング拡張機能とプラグインの機能、価格、仕様を並べて比較", + "title": "拡張機能比較" }, "ides": { - "backTo": "IDE に戻る", - "subtitle": "AI 強化された統合開発環境", - "title": "@:shared.stacks.ides" + "backTo": "IDEに戻る", + "subtitle": "AI対応IDEの機能、価格、仕様を並べて比較", + "title": "IDE比較" }, "linkTitles": { "documentation": "@:components.productHero.documentation", @@ -37,8 +52,8 @@ }, "models": { "backTo": "モデルに戻る", - "subtitle": "コード生成と分析に最適化された大規模言語モデル", - "title": "@:shared.stacks.models" + "subtitle": "コード生成と分析に最適化された大規模言語モデルの仕様と価格を並べて比較", + "title": "モデル比較" }, "pricingValues": { "free": "無料", diff --git a/translations/ja/pages/stacks.json b/translations/ja/pages/stacks.json index 3b79db4..cf83318 100644 --- a/translations/ja/pages/stacks.json +++ b/translations/ja/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "ブログ記事を読む", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "コミュニティに参加", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "リポジトリを表示", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "ディスカッションに参加", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "動画を見る", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -259,38 +263,38 @@ }, "discord": { "description": "コミュニティに参加", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "リポジトリを表示", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "ディスカッションに参加", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "動画を見る", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "LinkedIn で接続", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Twitter でフォロー", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Discord コミュニティに参加", "joinReddit": "Reddit コミュニティに参加", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "{name}の AI 製品と技術を探索。", "metaTitle": "AI 技術ベンダー | 企業プロフィール 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "{vendorName}の製品とサービスを探索", "productsTitle": "@:shared.common.products", "quickLinks": "クイックリンク", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "ベンダー詳細", "viewGitHub": "オープンソースリポジトリを表示", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "YouTube で動画を見る", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/ko/components.json b/translations/ko/components.json index 584d001..59432f3 100644 --- a/translations/ko/components.json +++ b/translations/ko/components.json @@ -3,6 +3,9 @@ "backTo": "돌아가기", "indexLabel": "@:shared.common.indexLabel" }, + "breadcrumb": { + "home": "홈" + }, "collectionScrollbar": { "articles": "추천 아티클", "specifications": "사양 및 프로토콜", @@ -93,6 +96,36 @@ "install": "설치", "launch": "실행" }, + "vendorProducts": { + "title": "제품" + }, + "vendorModels": { + "title": "모델" + }, + "platformLinks": { + "title": "AI 플랫폼에서 찾기", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "모델 카드 및 가중치 보기" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "AI 모델 리더보드 및 벤치마크" + }, + "openrouter": { + "title": "OpenRouter", + "description": "여러 AI 모델 비교 및 사용" + } + } + }, + "githubStarHistory": { + "loading": "스타 히스토리 불러오는 중...", + "title": "GitHub 스타 히스토리", + "description": "시간 경과에 따른 스타 증가 추세", + "stars": "스타", + "fallbackNote": "참고: 샘플 데이터를 표시 중입니다. 스타 히스토리 API를 일시적으로 사용할 수 없습니다." + }, "productHero": { "categories": { "CLI": "@:shared.stack.cli", @@ -119,21 +152,38 @@ "version": "버전", "visitWebsite": "웹사이트 방문" }, - "productLinks": { + "communityLinks": { "blog": "블로그", - "changelog": "변경 로그", + "blogDescription": "블로그 게시물 읽기", "community": "커뮤니티", "discord": "@:shared.platforms.discord", - "download": "다운로드", + "discordDescription": "커뮤니티 참여", "github": "@:shared.platforms.github", - "issue": "이슈 추적기", + "githubDescription": "저장소 보기", "linkedin": "@:shared.platforms.linkedin", - "mcp": "MCP 문서", - "pricing": "가격", + "linkedinDescription": "팔로우하기", "reddit": "@:shared.platforms.reddit", - "resources": "리소스", + "redditDescription": "토론 참여", "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" + "twitterDescription": "팔로우하기", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "동영상 보기" + }, + "resourceLinks": { + "changelog": "변경 로그", + "changelogDescription": "변경 로그 보기", + "download": "다운로드", + "downloadDescription": "최신 버전 다운로드", + "issue": "이슈 추적기", + "issueDescription": "버그 보고 및 기능 요청", + "mcp": "MCP 문서", + "mcpDescription": "MCP 통합 알아보기", + "pricing": "가격", + "pricingDescription": "가격 플랜 보기" + }, + "resources": { + "community": "커뮤니티", + "resources": "리소스" }, "productPricing": { "title": "가격", diff --git a/translations/ko/pages/comparison.json b/translations/ko/pages/comparison.json index 75165d2..c21904a 100644 --- a/translations/ko/pages/comparison.json +++ b/translations/ko/pages/comparison.json @@ -5,20 +5,35 @@ "title": "@:shared.stacks.clis" }, "columns": { + "cache": "캐시", + "capabilities": "기능", "contextLength": "컨텍스트 길이", "freePlan": "무료 플랜", "githubStars": "스타", + "input": "입력", + "inputModalities": "입력 모달리티", "license": "라이선스", "links": "링크", + "live-code-bench": "Live Code Bench", "maxOutput": "최대 출력", "maxPrice": "최대 가격", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "모델 크기", + "output": "출력", "platforms": "플랫폼", "pricing": "가격", + "pricingCache": "캐시 가격", + "pricingInput": "입력 가격", + "pricingOutput": "출력 가격", + "sci-code": "SciCode", "startingPrice": "시작 가격", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "벤더", - "version": "버전" + "version": "버전", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "확장 프로그램으로 돌아가기", diff --git a/translations/ko/pages/stacks.json b/translations/ko/pages/stacks.json index 015aeb8..809fc67 100644 --- a/translations/ko/pages/stacks.json +++ b/translations/ko/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "블로그 게시물 읽기", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "커뮤니티 참여", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "저장소 보기", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "팔로우하기", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "토론 참여", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "팔로우하기", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "동영상 보기", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "커뮤니티 링크", @@ -259,38 +263,38 @@ }, "discord": { "description": "커뮤니티 참여", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "저장소 보기", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "팔로우하기", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "토론 참여", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "팔로우하기", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "동영상 보기", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "커뮤니티 링크", "connectLinkedIn": "LinkedIn에서 연결", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Twitter에서 팔로우", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Discord 커뮤니티에 가입", "joinReddit": "Reddit 커뮤니티에 가입", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "{name}의 AI 제품 및 기술을 탐색하세요.", "metaTitle": "AI 기술 벤더 | 회사 프로필 2025", "models": "모델", @@ -298,14 +302,14 @@ "productsSubtitle": "{vendorName}의 제품 및 서비스 탐색", "productsTitle": "제품", "quickLinks": "빠른 링크", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "벤더 세부 정보", "viewGitHub": "오픈소스 저장소 보기", "visitWebsite": "공식 웹사이트 방문", "watchYouTube": "YouTube에서 비디오 보기", "website": "웹사이트", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "이름으로 검색...", diff --git a/translations/pt/components.json b/translations/pt/components.json index 53d41ae..1479c0f 100644 --- a/translations/pt/components.json +++ b/translations/pt/components.json @@ -3,6 +3,9 @@ "backTo": "@:shared.actions.backTo", "indexLabel": "@:shared.common.indexLabel" }, + "breadcrumb": { + "home": "Início" + }, "collectionScrollbar": { "articles": "@:shared.common.featuredArticles", "specifications": "@:shared.common.specificationsProtocols", @@ -93,6 +96,36 @@ "install": "Instalar", "launch": "Iniciar" }, + "vendorProducts": { + "title": "Produtos" + }, + "vendorModels": { + "title": "Modelos" + }, + "platformLinks": { + "title": "Encontrar em plataformas de IA", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "Ver cartão de modelo e pesos" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "Classificação e benchmarks de modelos de IA" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Comparar e usar múltiplos modelos de IA" + } + } + }, + "githubStarHistory": { + "loading": "Carregando histórico de estrelas...", + "title": "Histórico de Estrelas do GitHub", + "description": "Tendência de crescimento de estrelas ao longo do tempo", + "stars": "estrelas", + "fallbackNote": "Nota: Exibindo dados de exemplo. A API de histórico de estrelas está temporariamente indisponível." + }, "productHero": { "categories": { "CLI": "@:shared.stack.cli", @@ -119,21 +152,38 @@ "version": "Versão", "visitWebsite": "Visitar Site" }, - "productLinks": { + "communityLinks": { "blog": "Blog", - "changelog": "Changelog", + "blogDescription": "Ler posts do blog", "community": "@:shared.common.community", "discord": "@:shared.platforms.discord", - "download": "@:shared.actions.download", + "discordDescription": "Junte-se à comunidade", "github": "@:shared.platforms.github", - "issue": "Rastreador de Problemas", + "githubDescription": "Ver repositórios", "linkedin": "@:shared.platforms.linkedin", - "mcp": "Documentação MCP", - "pricing": "@:shared.common.pricing", + "linkedinDescription": "@:shared.common.followUs", "reddit": "@:shared.platforms.reddit", - "resources": "@:shared.common.resources", + "redditDescription": "Participar da discussão", "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "Assistir vídeos" + }, + "resourceLinks": { + "changelog": "Changelog", + "changelogDescription": "Ver changelog", + "download": "@:shared.actions.download", + "downloadDescription": "Baixar versão mais recente", + "issue": "Rastreador de Problemas", + "issueDescription": "Informar bugs e solicitar recursos", + "mcp": "Documentação de MCP", + "mcpDescription": "Saiba mais sobre integração MCP", + "pricing": "@:shared.common.pricing", + "pricingDescription": "Ver planos de preços" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { "title": "@:shared.common.pricing", diff --git a/translations/pt/pages/comparison.json b/translations/pt/pages/comparison.json index 957df2e..e08f55c 100644 --- a/translations/pt/pages/comparison.json +++ b/translations/pt/pages/comparison.json @@ -1,34 +1,49 @@ { "clis": { "backTo": "Voltar aos CLIs", - "subtitle": "Assistentes de codificação de linha de comando com IA", - "title": "@:shared.stacks.clis" + "subtitle": "Compare características, preços e especificações de ferramentas de codificação de linha de comando de IA lado a lado.", + "title": "Comparação CLI" }, "columns": { + "cache": "Cache", + "capabilities": "Capacidades", "contextLength": "Comprimento do Contexto", "freePlan": "Plano Gratuito", "githubStars": "@:components.productHero.stars", + "input": "Entrada", + "inputModalities": "Modalidades de Entrada", "license": "@:components.productHero.license", "links": "Links", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", "maxPrice": "Preço Máximo", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "Saída", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", + "pricingCache": "Preço de Cache", + "pricingInput": "Preço de Entrada", + "pricingOutput": "Preço de Saída", + "sci-code": "SciCode", "startingPrice": "Preço Inicial", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "Voltar às Extensões", - "subtitle": "Extensões e plugins de codificação com IA", - "title": "@:shared.stacks.extensions" + "subtitle": "Compare características, preços e especificações de extensões de codificação de IA lado a lado.", + "title": "Comparação de Extensões" }, "ides": { "backTo": "Voltar aos IDEs", - "subtitle": "Ambientes de desenvolvimento integrados aprimorados com IA", - "title": "@:shared.stacks.ides" + "subtitle": "Compare características, preços e especificações de IDEs com IA lado a lado.", + "title": "Comparação de IDEs" }, "linkTitles": { "documentation": "@:components.productHero.documentation", @@ -37,8 +52,8 @@ }, "models": { "backTo": "Voltar aos Modelos", - "subtitle": "Modelos de linguagem grandes otimizados para geração e análise de código", - "title": "@:shared.stacks.models" + "subtitle": "Compare especificações e preços de modelos de codificação de IA lado a lado.", + "title": "Comparação de Modelos" }, "pricingValues": { "free": "Grátis", diff --git a/translations/pt/pages/stacks.json b/translations/pt/pages/stacks.json index 1c835cf..ace7f62 100644 --- a/translations/pt/pages/stacks.json +++ b/translations/pt/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Read blog posts", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "Junte-se à comunidade", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Ver repositórios", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Participar da discussão", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Assistir vídeos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -254,43 +258,43 @@ "documentation": "@:components.productHero.documentation", "community": { "blog": { - "description": "Ler posts do blog", - "title": "Blog" + "description": "Ler publicações de blog", + "title": "@:components.communityLinks.blog" }, "discord": { "description": "Junte-se à comunidade", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Ver repositórios", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Participar da discussão", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Assistir vídeos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "Conectar no LinkedIn", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Seguir no Twitter", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Juntar-se à comunidade Discord", "joinReddit": "Juntar-se à comunidade Reddit", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "Explore os produtos e tecnologias de IA de {name}.", "metaTitle": "Fornecedor de Tecnologia IA | Perfil da Empresa 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "Explore produtos e serviços de {vendorName}", "productsTitle": "@:shared.common.products", "quickLinks": "Links Rápidos", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "Detalhes do Fornecedor", "viewGitHub": "Ver repositórios de código aberto", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "Assistir vídeos no YouTube", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/ru/components.json b/translations/ru/components.json index 8f45d9c..e1e88f0 100644 --- a/translations/ru/components.json +++ b/translations/ru/components.json @@ -1,90 +1,93 @@ { "backToNavigation": { - "backTo": "@:shared.actions.backTo", - "indexLabel": "@:shared.common.indexLabel" + "backTo": "Назад к", + "indexLabel": "ИНДЕКС" + }, + "breadcrumb": { + "home": "Главная" }, "collectionScrollbar": { - "articles": "@:shared.common.featuredArticles", - "specifications": "@:shared.common.specificationsProtocols", - "tools": "@:shared.common.ecosystemTools" + "articles": "Рекомендуемые статьи", + "specifications": "Спецификации и протоколы", + "tools": "Инструменты экосистемы" }, "docsSidebar": { - "label": "@:shared.common.documentation", + "label": "Документация", "title": "ДОКУМЕНТАЦИЯ" }, "filterSortBar": { "clearFilters": "Очистить фильтры", "license": "Лицензия:", - "openSource": "@:shared.common.openSource", + "openSource": "Открытый исходный код", "platform": "Платформа:", - "proprietary": "@:shared.common.proprietary", - "search": "Поиск по названию...", + "proprietary": "Проприетарная", + "search": "Поиск по имени...", "sort": "Сортировка:", "sortDefault": "По умолчанию", - "sortNameAsc": "Название (А-Я)", - "sortNameDesc": "Название (Я-А)" + "sortNameAsc": "Имя (А-Я)", + "sortNameDesc": "Имя (Я-А)" }, "footer": { "copyright": "© 2025 AI Coding Stack • Создано с ❤︎ • Открытый исходный код", - "openSource": "Репозиторий метаданных ИИ-кодирования с открытым исходным кодом.", + "openSource": "Репозиторий метаданных AI-программирования с открытым исходным кодом.", "selectLanguage": "Выбрать язык", - "tagline": "Ваш центр экосистемы ИИ-кодирования.", + "tagline": "Ваш центр экосистемы AI-программирования.", "toggleTheme": "Переключить тему" }, "header": { - "aiCodingLandscape": "Ландшафт ИИ-кодирования", - "aiCodingLandscapeDesc": "Визуализируйте полную экосистему ИИ-кодирования", - "aiCodingStack": "@:shared.common.aiCodingStack", - "articles": "@:shared.common.articles", + "aiCodingLandscape": "Ландшафт AI-программирования", + "aiCodingLandscapeDesc": "Визуализируйте полную экосистему AI-программирования", + "aiCodingStack": "AI Coding Stack", + "articles": "Статьи", "closeMenu": "Закрыть меню", - "collections": "@:shared.common.collections", + "collections": "Коллекции", "developmentTools": "Инструменты разработки", "intelligence": "Интеллект", "landscape": "Ландшафт", - "manifesto": "@:shared.common.manifesto", + "manifesto": "Манифест", "openMenu": "Открыть меню", - "openSourceRank": "Рейтинг Open Source", - "openSourceRankDesc": "Исследуйте проекты ИИ-кодирования с открытым исходным кодом по звездам GitHub", + "openSourceRank": "Рейтинг с открытым исходным кодом", + "openSourceRankDesc": "Исследуйте проекты AI-программирования с открытым исходным кодом по звёздам GitHub", "ranking": "Рейтинг", - "search": "@:shared.actions.search", + "search": "Поиск", "searchPlaceholder": "Поиск...", "toggleMenu": "Переключить меню" }, "openSourceRank": { - "description": "Откройте для себя и изучите инструменты ИИ-кодирования с открытым исходным кодом, ранжированные по звездам GitHub. Сравните IDE, CLI и расширения, чтобы найти идеальные инструменты для вашего рабочего процесса разработки.", + "description": "Откройте и исследуйте инструменты AI-программирования с открытым исходным кодом, отсортированные по звёздам GitHub. Сравниваете IDE, CLIs и расширения, чтобы найти идеальные инструменты для вашего рабочего процесса разработки.", "filter": { "all": "Все" }, "meta": { - "description": "Рейтинг всех проектов с открытым исходным кодом в AI Coding Stack, отсортированных по звездам GitHub. Просмотр статистики и трендов инструментов с открытым исходным кодом против собственных.", - "title": "@:components.openSourceRank.title" + "description": "Рейтинг всех проектов с открытым исходным кодом в AI Coding Stack, отсортированных по звёздам GitHub. Просмотрите статистику и тенденции инструментов с открытым исходным кодом vs проприетарных.", + "title": "Рейтинг проектов с открытым исходным кодом" }, "noResults": "Проектов с открытым исходным кодом для этой категории не найдено.", - "note": "Примечание: Эта страница показывает только проекты с репозиториями GitHub. Некоторые проекты, хотя и не являющиеся открытым исходным кодом, поддерживают репозитории GitHub как каналы обратной связи пользователей.", + "note": "Примечание: Эта страница показывает только проекты с репозиториями GitHub. Некоторые проекты, хотя и не с открытым исходным кодом, поддерживают репозитории GitHub как каналы обратной связи пользователей.", "productType": { - "cli": "@:shared.stack.cli", - "extension": "@:shared.stack.extension", - "ide": "@:shared.stack.ide" + "cli": "CLI", + "extension": "Расширение", + "ide": "IDE" }, "statistics": { - "closedSource": "@:shared.common.proprietary", - "closedSourceCount": "Собственные проекты", - "closedSourcePercentage": "Процент собственных", + "closedSource": "Проприетарная", + "closedSourceCount": "Проприетарные проекты", + "closedSourcePercentage": "Проприетарный процент", "licenseBreakdown": "Распределение лицензий", - "openSource": "@:shared.common.openSource", + "openSource": "Открытый исходный код", "openSourceCount": "Проекты с открытым исходным кодом", "projects": "проектов", - "title": "Распределение Open Source vs Собственного", + "title": "Распределение открытого исходного кода vs проприетарного", "totalProjects": "Всего проектов" }, "table": { - "license": "@:shared.common.license", - "name": "Название", + "license": "Лицензия", + "name": "Имя", "openSourceTitle": "Проекты с открытым исходным кодом ({count})", - "proprietaryTitle": "Собственные проекты ({count})", + "proprietaryTitle": "Проприетарные проекты ({count})", "rank": "Ранг", - "stars": "@:shared.common.stars", - "type": "@:shared.common.type" + "stars": "Звёзды", + "type": "Тип" }, "title": "Рейтинг проектов с открытым исходным кодом" }, @@ -93,116 +96,163 @@ "install": "Установить", "launch": "Запустить" }, + "vendorProducts": { + "title": "Продукты" + }, + "vendorModels": { + "title": "Модели" + }, + "platformLinks": { + "title": "Найти на AI платформах", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "Просмотреть модель и веса" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "Лидерборд AI моделей и бенчмарки" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Сравнить и использовать несколько AI моделей" + } + } + }, + "githubStarHistory": { + "loading": "Загрузка истории звёзд...", + "title": "История звёзд GitHub", + "description": "Тенденция роста звёзд с течением времени", + "stars": "звёзд", + "fallbackNote": "Примечание: Отображение примерных данных. API истории звёзд временно недоступен." + }, "productHero": { "categories": { - "CLI": "@:shared.stack.cli", - "EXTENSION": "@:shared.stack.extension", - "IDE": "@:shared.stack.ide", - "MODEL": "@:shared.stack.model", - "PROVIDER": "@:shared.stack.modelProvider", - "VENDOR": "@:shared.stack.vendor" + "CLI": "CLI", + "EXTENSION": "Расширение", + "IDE": "IDE", + "MODEL": "Модель", + "PROVIDER": "Поставщик моделей", + "VENDOR": "Поставщик" }, - "documentation": "@:shared.common.documentation", - "download": "@:shared.actions.download", + "documentation": "Документация", + "download": "Скачать", "getApiKey": "Получить API ключ", - "license": "@:shared.common.license", + "license": "Лицензия", "platforms": "Платформы", "providerTypes": { "foundation-model-provider": "Поставщик базовой модели", - "model-service-provider": "Поставчик сервиса модели" + "model-service-provider": "Поставщик сервисов моделей" }, "runtime": "Среда выполнения", - "stars": "@:shared.common.stars", + "stars": "Звёзды", "supportedIdes": "Поддерживаемые IDE", - "type": "@:shared.common.type", - "vendor": "@:shared.stack.vendor", + "type": "Тип", + "vendor": "Поставщик", "version": "Версия", - "visitWebsite": "Посетить сайт" + "visitWebsite": "Веб-сайт" }, - "productLinks": { + "communityLinks": { "blog": "Блог", - "changelog": "Журнал изменений", - "community": "@:shared.common.community", + "blogDescription": "Читать статьи блога", + "community": "Сообщество", "discord": "@:shared.platforms.discord", - "download": "@:shared.actions.download", + "discordDescription": "Присоединиться к сообществу", "github": "@:shared.platforms.github", - "issue": "Трекер проблем", + "githubDescription": "Просмотреть репозитории", "linkedin": "@:shared.platforms.linkedin", - "mcp": "Документация MCP", - "pricing": "@:shared.common.pricing", + "linkedinDescription": "@:shared.common.followUs", "reddit": "@:shared.platforms.reddit", - "resources": "@:shared.common.resources", + "redditDescription": "Присоединиться к обсуждению", "twitter": "@:shared.platforms.twitter", - "youtube": "@:shared.platforms.youtube" + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "Смотреть видео" + }, + "resourceLinks": { + "changelog": "История изменений", + "changelogDescription": "Просмотреть историю изменений", + "download": "Скачать", + "downloadDescription": "Загрузить последнюю версию", + "issue": "Трекер проблем", + "issueDescription": "Сообщить об ошибках и запросить функции", + "mcp": "Документация MCP", + "mcpDescription": "Узнать об интеграции MCP", + "pricing": "Цены", + "pricingDescription": "Просмотреть тарифные планы" + }, + "resources": { + "community": "Сообщество", + "resources": "Ресурсы" }, "productPricing": { - "title": "@:shared.common.pricing", - "viewFullDetails": "@:shared.actions.viewFullDetails" + "title": "Ценообразование", + "viewFullDetails": "Просмотреть полную информацию о ценах" }, "modelSpecifications": { - "title": "@:pages.modelDetail.specifications", - "modelSize": "@:pages.modelDetail.modelSize", - "contextWindow": "@:pages.modelDetail.contextWindow", - "maxOutput": "@:pages.modelDetail.maxOutput", - "pricing": "@:pages.modelDetail.pricing", - "input": "@:pages.modelDetail.input", - "output": "@:pages.modelDetail.output", - "cache": "@:pages.modelDetail.cache" + "title": "Характеристики модели", + "modelSize": "Размер модели", + "contextWindow": "Контекстное окно", + "maxOutput": "Максимальный вывод", + "pricing": "Цены", + "input": "Ввод", + "output": "Вывод", + "cache": "Кэш" }, "modelBenchmarks": { - "title": "@:pages.modelDetail.benchmarks.title", - "sweBench": "@:pages.modelDetail.benchmarks.sweBench", - "sweBenchDesc": "@:pages.modelDetail.benchmarks.sweBenchDesc", - "terminalBench": "@:pages.modelDetail.benchmarks.terminalBench", - "terminalBenchDesc": "@:pages.modelDetail.benchmarks.terminalBenchDesc", - "mmmu": "@:pages.modelDetail.benchmarks.mmmu", - "mmmuDesc": "@:pages.modelDetail.benchmarks.mmmuDesc", - "mmmuPro": "@:pages.modelDetail.benchmarks.mmmuPro", - "mmmuProDesc": "@:pages.modelDetail.benchmarks.mmmuProDesc", - "webDevArena": "@:pages.modelDetail.benchmarks.webDevArena", - "webDevArenaDesc": "@:pages.modelDetail.benchmarks.webDevArenaDesc", - "sciCode": "@:pages.modelDetail.benchmarks.sciCode", - "sciCodeDesc": "@:pages.modelDetail.benchmarks.sciCodeDesc", - "liveCodeBench": "@:pages.modelDetail.benchmarks.liveCodeBench", - "liveCodeBenchDesc": "@:pages.modelDetail.benchmarks.liveCodeBenchDesc" + "title": "Бенчмарки", + "sweBench": "SWE-bench", + "sweBenchDesc": "Оценка при решении реальных проблем разработки", + "terminalBench": "TerminalBench", + "terminalBenchDesc": "Производительность в задачах терминала", + "mmmu": "MMMU", + "mmmuDesc": "Оценка в академических знаниях", + "mmmuPro": "MMMU Pro", + "mmmuProDesc": "Расширенная оценка академических знаний", + "webDevArena": "WebDevArena", + "webDevArenaDesc": "Разработка веб-приложений", + "sciCode": "SciCode", + "sciCodeDesc": "Научные вычисления", + "liveCodeBench": "LiveCodeBench", + "liveCodeBenchDesc": "Код в реальном времени" }, "relatedProducts": { "cli": "CLI", "extension": "Расширение", "ide": "IDE", "title": "Связанные продукты", - "viewProduct": "Просмотр продукта" + "viewProduct": "Просмотреть продукт" }, "search": { "categories": { - "clis": "@:shared.stacks.clis", - "extensions": "@:shared.stacks.extensions", - "ides": "@:shared.stacks.ides", - "models": "@:shared.stacks.models", - "providers": "@:shared.stacks.modelProviders", - "vendors": "@:shared.stacks.vendors" + "clis": "CLI", + "extensions": "Расширения", + "ides": "IDE", + "models": "Модели", + "providers": "Поставщики моделей", + "vendors": "Поставщики" }, "navigate": "для навигации", "noResults": "Результаты не найдены", - "noResultsFor": "Результаты не найдены для \"{query}\"", - "placeholder": "Поиск инструментов ИИ-кодирования...", - "resultsCount": "{count} {count, plural, one {результат} many {результатов} other {результата}}", - "resultsCountFor": "{count} {count, plural, one {результат} many {результатов} other {результата}} для \"{query}\"", + "noResultsFor": "Результаты для \"{query}\" не найдены", + "placeholder": "Поиск AI-инструментов программирования...", + "resultsCount": "{count, plural, one {#.# результат} few {#.# результата} many {#.# результатов}}", + "resultsCountFor": "{count, plural, one {#.# результат} few {#.# результата} many {#.# результатов}} для \"{query}\"", "searching": "Поиск...", "select": "для выбора", "stacks": { - "clis": "@:shared.stacks.clis", - "extensions": "@:shared.stacks.extensions", - "ides": "@:shared.stacks.ides", - "modelProviders": "@:shared.stacks.modelProviders", - "models": "@:shared.stacks.models", - "vendors": "@:shared.stacks.vendors" + "clis": "CLI", + "extensions": "Расширения", + "ides": "IDE", + "modelProviders": "Поставщики моделей", + "models": "Модели", + "vendors": "Поставщики" }, "title": "Результаты поиска" }, "sidebar": { - "backToTop": "@:shared.actions.backToTop", - "selectItem": "@:shared.actions.selectItem" + "backToTop": "В начало", + "selectItem": "Выбрать элемент" }, "vendorMatrix": { "cell": { @@ -210,51 +260,51 @@ }, "categories": { "cli": "CLI", - "extension": "Extension", + "extension": "Расширение", "ide": "IDE", - "model": "Model", - "provider": "Provider" + "model": "Модель", + "provider": "Поставщик" }, "categoriesPlural": { - "cli": "CLIs", - "extension": "Extensions", - "ide": "IDEs", - "model": "Models", - "provider": "Providers" + "cli": "CLI", + "extension": "Расширения", + "ide": "IDE", + "model": "Модели", + "provider": "Поставщики" }, "controls": { - "clear": "Clear", - "sortByLabel": "Sort by:", - "sortName": "Name", - "sortProducts": "Products", - "vendorTypeLabel": "Vendor Type:" + "clear": "Очистить", + "sortByLabel": "Сортировать:", + "sortName": "Имя", + "sortProducts": "Продукты", + "vendorTypeLabel": "Тип поставщика:" }, "table": { - "noVendorsFound": "No vendors found", - "vendor": "Vendor" + "noVendorsFound": "Поставщиков не найдено", + "vendor": "Поставщик" }, "vendorTypes": { - "label": "Vendor Types:", + "label": "Типы поставщиков:", "types": { "ai-native": { - "description": "Model + Development Tools", - "label": "AI Native" + "description": "Модель + Инструменты разработки", + "label": "AI-нативный" }, "full-stack": { - "description": "IDE + CLI + Extension", - "label": "Full Stack" + "description": "IDE + CLI + Расширение", + "label": "Полный стек" }, "model-only": { - "description": "Model (with or without Provider)", - "label": "Model Only" + "description": "Модель (с поставщиком или без)", + "label": "Только модель" }, "provider-only": { - "description": "Provider only", - "label": "Provider Only" + "description": "Только поставщик", + "label": "Только поставщик" }, "tool-only": { - "description": "IDE/CLI/Extension", - "label": "Tool Only" + "description": "IDE/CLI/Расширение", + "label": "Только инструмент" } } } diff --git a/translations/ru/pages/comparison.json b/translations/ru/pages/comparison.json index ff25760..ef7275c 100644 --- a/translations/ru/pages/comparison.json +++ b/translations/ru/pages/comparison.json @@ -1,33 +1,48 @@ { "clis": { "backTo": "Назад к CLI", - "subtitle": "Ассистенты кодирования в командной строке на базе ИИ", + "subtitle": "Ассистенты по кодированию в командной строке с ИИ", "title": "@:shared.stacks.clis" }, "columns": { + "cache": "Кэш", + "capabilities": "Возможности", "contextLength": "Длина контекста", "freePlan": "Бесплатный план", "githubStars": "@:components.productHero.stars", + "input": "Вход", + "inputModalities": "Модальности ввода", "license": "@:components.productHero.license", "links": "Ссылки", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", "maxPrice": "Макс. цена", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "Выход", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", + "pricingCache": "Цена кэша", + "pricingInput": "Цена ввода", + "pricingOutput": "Цена вывода", + "sci-code": "SciCode", "startingPrice": "Начальная цена", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "Назад к расширениям", - "subtitle": "Расширения и плагины для кодирования на базе ИИ", + "subtitle": "Расширения и плагины для кодирования с ИИ", "title": "@:shared.stacks.extensions" }, "ides": { "backTo": "Назад к IDE", - "subtitle": "Интегрированные среды разработки, улучшенные с помощью ИИ", + "subtitle": "Интегрированные среды разработки с улучшениями ИИ", "title": "@:shared.stacks.ides" }, "linkTitles": { diff --git a/translations/ru/pages/stacks.json b/translations/ru/pages/stacks.json index 7ae7527..2afddd0 100644 --- a/translations/ru/pages/stacks.json +++ b/translations/ru/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Read blog posts", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "Присоединиться к сообществу", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Просмотр репозиториев", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Присоединиться к обсуждению", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Смотреть видео", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -255,42 +259,42 @@ "community": { "blog": { "description": "Читать посты в блоге", - "title": "Блог" + "title": "@:components.communityLinks.blog" }, "discord": { "description": "Присоединиться к сообществу", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Просмотр репозиториев", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Присоединиться к обсуждению", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Смотреть видео", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "Подключиться на LinkedIn", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Подписаться на Twitter", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Присоединиться к сообществу Discord", "joinReddit": "Присоединиться к сообществу Reddit", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "Изучите ИИ-продукты и технологии {name}.", "metaTitle": "Поставщик технологий ИИ | Профиль компании 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "Изучите продукты и услуги от {vendorName}", "productsTitle": "@:shared.common.products", "quickLinks": "Быстрые ссылки", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "Детали поставщика", "viewGitHub": "Просмотр репозиториев с открытым исходным кодом", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "Смотреть видео на YouTube", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/tr/components.json b/translations/tr/components.json index ab4c6af..b5ea941 100644 --- a/translations/tr/components.json +++ b/translations/tr/components.json @@ -3,6 +3,9 @@ "backTo": "Geri dön", "indexLabel": "INDEKS" }, + "breadcrumb": { + "home": "Ana Sayfa" + }, "collectionScrollbar": { "articles": "Öne Çıkan Makaleler", "specifications": "Özellikler ve Protokoller", @@ -16,7 +19,7 @@ "clearFilters": "Filtreleri temizle", "license": "Lisans:", "openSource": "Açık Kaynak", - "platform": "Platform:", + "platform": "Platforma:", "proprietary": "Tescilli", "search": "Ada göre ara...", "sort": "Sırala:", @@ -93,6 +96,36 @@ "install": "Yükle", "launch": "Başlat" }, + "vendorProducts": { + "title": "Ürünler" + }, + "vendorModels": { + "title": "Modeller" + }, + "platformLinks": { + "title": "AI Platformlarında Bul", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "Model kartını ve ağırlıkları görüntüle" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "AI modeli lider tablosu ve kıyaslamaları" + }, + "openrouter": { + "title": "OpenRouter", + "description": "Birden çok AI modelini karşılaştırın ve kullanın" + } + } + }, + "githubStarHistory": { + "loading": "Yıldız geçmişi yükleniyor...", + "title": "GitHub Yıldız Geçmişi", + "description": "Zaman içinde yıldız artış trendi", + "stars": "yıldız", + "fallbackNote": "Not: Örnek veriler görüntüleniyor. Yıldız geçmişi API'si geçici olarak kullanılamıyor." + }, "productHero": { "categories": { "CLI": "CLI", @@ -119,52 +152,69 @@ "version": "Sürüm", "visitWebsite": "Web Sitesini Ziyaret Et" }, - "productLinks": { + "communityLinks": { "blog": "Blog", - "changelog": "Değişiklik Günlüğü", + "blogDescription": "Blog gönderilerini oku", "community": "Topluluk", "discord": "Discord", - "download": "İndir", + "discordDescription": "Topluluğa katıl", "github": "GitHub", - "issue": "Sorun Takipçisi", + "githubDescription": "Depoları görüntüle", "linkedin": "LinkedIn", + "linkedinDescription": "Bizi takip et", + "reddit": "Reddit", + "redditDescription": "Tartışmaya katıl", + "twitter": "X", + "twitterDescription": "Bizi takip et", + "youtube": "YouTube", + "youtubeDescription": "Videoları izle" + }, + "resourceLinks": { + "changelog": "Değişiklik Günlüğü", + "changelogDescription": "Değişiklik günlüğünü görüntüle", + "download": "İndir", + "downloadDescription": "En son sürümü indir", + "issue": "Sorun Takipçisi", + "issueDescription": "Hata bildirin ve özellik isteyin", "mcp": "MCP Dokümantasyonu", + "mcpDescription": "MCP entegrasyonu hakkında bilgi edinin", "pricing": "Fiyatlandırma", - "reddit": "Reddit", - "resources": "Kaynaklar", - "twitter": "X (Twitter)", - "youtube": "YouTube" + "pricingDescription": "Fiyat planlarını görüntüle" + }, + "resources": { + "community": "Topluluk", + "resources": "Kaynaklar" }, "productPricing": { "title": "Fiyatlandırma", - "viewFullDetails": "Tam fiyat detaylarını görüntüleyin →" + "viewFullDetails": "Tam fiyat detaylarını görüntüle" }, "modelSpecifications": { - "title": "@:pages.modelDetail.specifications", - "modelSize": "@:pages.modelDetail.modelSize", - "contextWindow": "@:pages.modelDetail.contextWindow", - "maxOutput": "@:pages.modelDetail.maxOutput", - "pricing": "@:pages.modelDetail.pricing", - "input": "@:pages.modelDetail.input", - "output": "@:pages.modelDetail.output", - "cache": "@:pages.modelDetail.cache" + "title": "Model Özellikleri", + "modelSize": "Model Boyutu", + "contextWindow": "Bağlam Penceresi", + "maxOutput": "Maksimum Çıktı", + "pricing": "Fiyatlandırma", + "input": "Girdi", + "output": "Çıktı", + "cache": "Önbellek" }, "modelBenchmarks": { - "title": "@:pages.modelDetail.benchmarks.title", - "sweBench": "@:pages.modelDetail.benchmarks.sweBench", - "sweBenchDesc": "@:pages.modelDetail.benchmarks.sweBenchDesc", - "terminalBench": "@:pages.modelDetail.benchmarks.terminalBench", - "terminalBenchDesc": "@:pages.modelDetail.benchmarks.terminalBenchDesc", - "mmmu": "@:pages.modelDetail.benchmarks.mmmu", - "mmmuDesc": "@:pages.modelDetail.benchmarks.mmmuDesc", - "mmmuPro": "@:pages.modelDetail.benchmarks.mmmuPro", - "mmmuProDesc": "@:pages.modelDetail.benchmarks.mmmuProDesc", - "webDevArena": "@:pages.modelDetail.benchmarks.webDevArena", - "webDevArenaDesc": "@:pages.modelDetail.benchmarks.webDevArenaDesc", - "sciCode": "@:pages.modelDetail.benchmarks.sciCode", - "sciCodeDesc": "@:pages.modelDetail.benchmarks.sciCodeDesc", - "liveCodeBench": "@:pages.modelDetail.benchmarks.liveCodeBench", - "liveCodeBenchDesc": "@:pages.modelDetail.benchmarks.liveCodeBenchDesc" + "title": "Model Kıyaslamaları", + "sweBench": "SWE-bench", + "sweBenchDesc": "Gerçek dünya geliştirme sorunları performansı", + "terminalBench": "TerminalBench", + "terminalBenchDesc": "Terminal görevlerindeki performans", + "mmmu": "MMMU", + "mmmuDesc": "Akademik bilgi değerlendirmesi", + "mmmuPro": "MMMU Pro", + "mmmuProDesc": "Genişletilmiş akademik bilgi değerlendirmesi", + "webDevArena": "WebDevArena", + "webDevArenaDesc": "Web geliştirme becerileri", + "sciCode": "SciCode", + "sciCodeDesc": "Bilimsel hesaplama", + "liveCodeBench": "LiveCodeBench", + "liveCodeBenchDesc": "Canlı kodlama" }, "relatedProducts": { "cli": "CLI", @@ -191,12 +241,12 @@ "searching": "Aranıyor...", "select": "seçmek için", "stacks": { - "clis": "@:shared.stacks.clis", - "extensions": "@:shared.stacks.extensions", - "ides": "@:shared.stacks.ides", - "modelProviders": "@:shared.stacks.modelProviders", - "models": "@:shared.stacks.models", - "vendors": "@:shared.stacks.vendors" + "clis": "CLI'ler", + "extensions": "Uzantılar", + "ides": "IDE'ler", + "modelProviders": "Model Sağlayıcıları", + "models": "Modeller", + "vendors": "Sağlayıcılar" }, "title": "Arama Sonuçları" }, @@ -223,38 +273,38 @@ "provider": "Providers" }, "controls": { - "clear": "Clear", - "sortByLabel": "Sort by:", - "sortName": "Name", - "sortProducts": "Products", - "vendorTypeLabel": "Vendor Type:" + "clear": "Temizle", + "sortByLabel": "Sırala:", + "sortName": "Ad", + "sortProducts": "Ürünler", + "vendorTypeLabel": "Sağlayıcı Türü:" }, "table": { - "noVendorsFound": "No vendors found", - "vendor": "Vendor" + "noVendorsFound": "Sağlayıcı bulunamadı", + "vendor": "Sağlayıcı" }, "vendorTypes": { - "label": "Vendor Types:", + "label": "Sağlayıcı Türleri:", "types": { "ai-native": { - "description": "Model + Development Tools", - "label": "AI Native" + "description": "Model + Geliştirme Araçları", + "label": "AI Doğal" }, "full-stack": { - "description": "IDE + CLI + Extension", + "description": "IDE + CLI + Uzantı", "label": "Full Stack" }, "model-only": { - "description": "Model (with or without Provider)", - "label": "Model Only" + "description": "Model (Sağlayıcı ile veya olmadan)", + "label": "Sadece Model" }, "provider-only": { - "description": "Provider only", - "label": "Provider Only" + "description": "Sadece Sağlayıcı", + "label": "Sadece Sağlayıcı" }, "tool-only": { - "description": "IDE/CLI/Extension", - "label": "Tool Only" + "description": "IDE/CLI/Uzantı", + "label": "Sadece Araç" } } } diff --git a/translations/tr/pages/comparison.json b/translations/tr/pages/comparison.json index ae8e245..78c481a 100644 --- a/translations/tr/pages/comparison.json +++ b/translations/tr/pages/comparison.json @@ -1,33 +1,48 @@ { "clis": { - "backTo": "CLI'lere geri dön", - "subtitle": "AI kodlama CLI araçlarının özelliklerini, fiyatlandırmasını ve spesifikasyonlarını yan yana karşılaştırın.", + "backTo": "CLI'lere Dön", + "subtitle": "AI kodlama CLI araçlarının özelliklerini, fiyatlarını ve spesifikasyonlarını yan yana karşılaştırın.", "title": "CLI Karşılaştırması" }, "columns": { + "cache": "Önbellek", + "capabilities": "Yetenekler", "contextLength": "Bağlam Uzunluğu", "freePlan": "Ücretsiz Plan", "githubStars": "@:components.productHero.stars", + "input": "Girdi", + "inputModalities": "Girdi Modları", "license": "@:components.productHero.license", "links": "Bağlantılar", + "live-code-bench": "Live Code Bench", "maxOutput": "@:shared.common.maxOutput", - "maxPrice": "Maksimum Fiyat", + "maxPrice": "Maks. Fiyat", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "@:shared.common.modelSize", + "output": "Çıktı", "platforms": "@:components.productHero.platforms", "pricing": "@:shared.common.pricing", + "pricingCache": "Önbellek Fiyatı", + "pricingInput": "Girdi Fiyatı", + "pricingOutput": "Çıktı Fiyatı", + "sci-code": "SciCode", "startingPrice": "Başlangıç Fiyatı", "supportedIdes": "@:components.productHero.supportedIdes", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "version": "@:components.productHero.version", + "web-dev-arena": "WebDev Arena" }, "extensions": { - "backTo": "Uzantılara geri dön", - "subtitle": "AI kodlama uzantılarının özelliklerini, fiyatlandırmasını ve spesifikasyonlarını yan yana karşılaştırın.", - "title": "Uzantı Karşılaştırması" + "backTo": "Eklentilere Dön", + "subtitle": "AI kodlama eklentilerinin özelliklerini, fiyatlarını ve spesifikasyonlarını yan yana karşılaştırın.", + "title": "Eklenti Karşılaştırması" }, "ides": { - "backTo": "IDE'lere geri dön", - "subtitle": "AI destekli IDE'lerin özelliklerini, fiyatlandırmasını ve spesifikasyonlarını yan yana karşılaştırın.", + "backTo": "IDE'lere Dön", + "subtitle": "AI destekli IDE'lerin özelliklerini, fiyatlarını ve spesifikasyonlarını yan yana karşılaştırın.", "title": "IDE Karşılaştırması" }, "linkTitles": { @@ -36,12 +51,12 @@ "officialWebsite": "@:components.productHero.visitWebsite" }, "models": { - "backTo": "Modellere geri dön", - "subtitle": "AI kodlama modellerinin spesifikasyonlarını ve fiyatlandırmasını yan yana karşılaştırın.", + "backTo": "Modellere Dön", + "subtitle": "AI kodlama modellerinin spesifikasyonlarını ve fiyatlarını yan yana karşılaştırın.", "title": "Model Karşılaştırması" }, "pricingValues": { - "free": "Ücretsiz", + "free": " Ücretsiz", "freeOnly": "Sadece ücretsiz" } } diff --git a/translations/tr/pages/stacks.json b/translations/tr/pages/stacks.json index ebd9ea7..f7ebaea 100644 --- a/translations/tr/pages/stacks.json +++ b/translations/tr/pages/stacks.json @@ -158,29 +158,33 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "Read blog posts", + "title": "@:components.communityLinks.blog" + }, "discord": { "description": "Unirse a la comunidad", - "title": "@:components.productLinks.discord" + "title": "@:components.communityLinks.discord" }, "github": { "description": "Ver repositorios", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Unirse a la discusión", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Ver videos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", @@ -254,43 +258,43 @@ "documentation": "@:components.productHero.documentation", "community": { "blog": { - "description": "Leer publicaciones de blog", - "title": "Blog" + "description": "Blog yazılarını oku", + "title": "@:components.communityLinks.blog" }, "discord": { - "description": "Unirse a la comunidad", - "title": "@:components.productLinks.discord" + "description": "Topluluğa katıl", + "title": "@:components.communityLinks.discord" }, "github": { "description": "Ver repositorios", - "title": "@:components.productLinks.github" + "title": "@:components.communityLinks.github" }, "linkedin": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.linkedin" + "title": "@:components.communityLinks.linkedin" }, "reddit": { "description": "Unirse a la discusión", - "title": "@:components.productLinks.reddit" + "title": "@:components.communityLinks.reddit" }, "twitter": { "description": "@:shared.common.followUs", - "title": "@:components.productLinks.twitter" + "title": "@:components.communityLinks.twitter" }, "youtube": { "description": "Ver videos", - "title": "@:components.productLinks.youtube" + "title": "@:components.communityLinks.youtube" } }, "communityLinks": "@:shared.common.communityLinks", "connectLinkedIn": "Conectarse en LinkedIn", - "discord": "@:components.productLinks.discord", + "discord": "@:components.communityLinks.discord", "followTwitter": "Seguir en Twitter", - "github": "@:components.productLinks.github", + "github": "@:components.communityLinks.github", "indexLabel": "@:shared.common.indexLabel", "joinDiscord": "Unirse a la comunidad de Discord", "joinReddit": "Unirse a la comunidad de Reddit", - "linkedin": "@:components.productLinks.linkedin", + "linkedin": "@:components.communityLinks.linkedin", "metaDescription": "Explora los productos y tecnologías de IA de {name}.", "metaTitle": "Proveedor de tecnología de IA | Perfil de empresa 2025", "models": "@:shared.stacks.models", @@ -298,14 +302,14 @@ "productsSubtitle": "Explora productos y servicios de {vendorName}", "productsTitle": "@:shared.common.products", "quickLinks": "Enlaces rápidos", - "reddit": "@:components.productLinks.reddit", - "twitter": "@:components.productLinks.twitter", + "reddit": "@:components.communityLinks.reddit", + "twitter": "@:components.communityLinks.twitter", "vendorDetails": "Detalles del proveedor", "viewGitHub": "Ver repositorios de código abierto", "visitWebsite": "@:components.productHero.visitWebsite", "watchYouTube": "Ver videos en YouTube", "website": "@:shared.common.website", - "youtube": "@:components.productLinks.youtube" + "youtube": "@:components.communityLinks.youtube" }, "vendors": { "search": "@:components.filterSortBar.search", diff --git a/translations/zh-Hans/components.json b/translations/zh-Hans/components.json index d55b13f..c7009fb 100644 --- a/translations/zh-Hans/components.json +++ b/translations/zh-Hans/components.json @@ -3,6 +3,9 @@ "backTo": "返回", "indexLabel": "索引" }, + "breadcrumb": { + "home": "首页" + }, "collectionScrollbar": { "articles": "精选文章", "specifications": "规范与协议", @@ -93,6 +96,36 @@ "install": "安装", "launch": "启动" }, + "vendorProducts": { + "title": "产品" + }, + "vendorModels": { + "title": "模型" + }, + "platformLinks": { + "title": "在 AI 平台上查找", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "查看模型卡片和权重" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "AI 模型排行榜和基准测试" + }, + "openrouter": { + "title": "OpenRouter", + "description": "比较并使用多个 AI 模型" + } + } + }, + "githubStarHistory": { + "loading": "加载星标历史...", + "title": "GitHub 星标历史", + "description": "星标增长趋势", + "stars": "星标数", + "fallbackNote": "注意:显示示例数据。星标历史 API 暂时不可用。" + }, "productHero": { "categories": { "CLI": "命令行", @@ -119,21 +152,38 @@ "version": "版本", "visitWebsite": "访问官网" }, - "productLinks": { + "communityLinks": { "blog": "博客", + "blogDescription": "阅读博客文章", + "community": "@:shared.common.community", + "discord": "@:shared.platforms.discord", + "discordDescription": "加入社区", + "github": "@:shared.platforms.github", + "githubDescription": "查看代码仓库", + "linkedin": "@:shared.platforms.linkedin", + "linkedinDescription": "@:shared.common.followUs", + "reddit": "@:shared.platforms.reddit", + "redditDescription": "参与讨论", + "twitter": "@:shared.platforms.twitter", + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "观看视频" + }, + "resourceLinks": { "changelog": "更新日志", - "community": "社区", - "discord": "Discord", - "download": "下载", - "github": "GitHub", + "changelogDescription": "查看更新日志", + "download": "@:shared.actions.download", + "downloadDescription": "下载最新版本", "issue": "问题跟踪", - "linkedin": "LinkedIn", + "issueDescription": "报告问题和请求功能", "mcp": "MCP 文档", - "pricing": "定价", - "reddit": "Reddit", - "resources": "资源", - "twitter": "X (Twitter)", - "youtube": "YouTube" + "mcpDescription": "了解 MCP 集成", + "pricing": "@:shared.common.pricing", + "pricingDescription": "查看定价方案" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { "title": "定价", diff --git a/translations/zh-Hans/pages/comparison.json b/translations/zh-Hans/pages/comparison.json index f3e2f5b..d89daec 100644 --- a/translations/zh-Hans/pages/comparison.json +++ b/translations/zh-Hans/pages/comparison.json @@ -5,20 +5,35 @@ "title": "命令行对比" }, "columns": { + "cache": "缓存", + "capabilities": "功能", "contextLength": "上下文长度", "freePlan": "免费计划", "githubStars": "星标数", + "input": "输入", + "inputModalities": "输入模态", "license": "许可证", "links": "链接", + "live-code-bench": "Live Code Bench", "maxOutput": "最大输出", "maxPrice": "最高价", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", "modelSize": "模型大小", + "output": "输出", "platforms": "平台", "pricing": "定价", + "pricingCache": "缓存定价", + "pricingInput": "输入定价", + "pricingOutput": "输出定价", + "sci-code": "SciCode", "startingPrice": "起步价", "supportedIdes": "支持的 IDE", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", "vendor": "厂商", - "version": "版本" + "version": "版本", + "web-dev-arena": "WebDev Arena" }, "extensions": { "backTo": "返回扩展插件列表", diff --git a/translations/zh-Hans/pages/stacks.json b/translations/zh-Hans/pages/stacks.json index a736c1a..d96a44c 100644 --- a/translations/zh-Hans/pages/stacks.json +++ b/translations/zh-Hans/pages/stacks.json @@ -158,6 +158,10 @@ }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "阅读博客文章", + "title": "博客" + }, "discord": { "description": "加入社区", "title": "Discord" diff --git a/translations/zh-Hant/components.json b/translations/zh-Hant/components.json index 0b664aa..1ab3fb0 100644 --- a/translations/zh-Hant/components.json +++ b/translations/zh-Hant/components.json @@ -1,143 +1,193 @@ { "backToNavigation": { - "backTo": "返回", + "backTo": "回到", "indexLabel": "索引" }, + "breadcrumb": { + "home": "首頁" + }, "collectionScrollbar": { "articles": "精選文章", - "specifications": "規範與協議", + "specifications": "規格與協定", "tools": "生態系統工具" }, "docsSidebar": { - "label": "文檔", - "title": "文檔" + "label": "@:shared.common.documentation", + "title": "文件" }, "filterSortBar": { "clearFilters": "清除篩選", - "license": "許可證:", - "openSource": "開源", - "platform": "平台:", - "proprietary": "專有", - "search": "按名稱搜尋...", - "sort": "排序:", - "sortDefault": "默認", + "license": "授權:", + "openSource": "@:shared.common.openSource", + "platform": "平台:", + "proprietary": "@:shared.common.proprietary", + "search": "依名稱搜尋...", + "sort": "排序:", + "sortDefault": "預設", "sortNameAsc": "名稱 (A-Z)", "sortNameDesc": "名稱 (Z-A)" }, "footer": { - "copyright": "© 2025 AI Coding Stack • 用 ❤︎ 構建 • 開源", - "openSource": "開源 AI 編程元數據倉庫。", + "copyright": "© 2025 AI Coding Stack • 用 ❤︎ 建構 • 開放原始碼", + "openSource": "開放原始碼 AI 編碼元資料儲存庫。", "selectLanguage": "選擇語言", - "tagline": "您的 AI 編程生態中心。", + "tagline": "您的 AI 編碼生態系統中心。", "toggleTheme": "切換主題" }, "header": { - "aiCodingLandscape": "AI 編程全景圖", - "aiCodingLandscapeDesc": "可視化 AI 編程生態系統全貌", - "aiCodingStack": "AI Coding Stack", - "articles": "文章", + "aiCodingLandscape": "AI 編碼全景圖", + "aiCodingLandscapeDesc": "視覺化 AI 編碼生態系統全貌", + "aiCodingStack": "@:shared.common.aiCodingStack", + "articles": "@:shared.common.articles", "closeMenu": "關閉選單", - "collections": "精選集合", + "collections": "@:shared.common.collections", "developmentTools": "開發工具", - "intelligence": "智能層", + "intelligence": "智慧層", "landscape": "全景圖", - "manifesto": "宣言", - "openMenu": "打開選單", - "openSourceRank": "開源排行榜", - "openSourceRankDesc": "按 GitHub 星標數開源探索 AI 編程專案", + "manifesto": "@:shared.common.manifesto", + "openMenu": "開啟選單", + "openSourceRank": "開放原始碼排行榜", + "openSourceRankDesc": "依 GitHub 星標數探索開放原始碼 AI 編碼專案", "ranking": "排行榜", - "search": "搜尋", + "search": "@:shared.actions.search", "searchPlaceholder": "搜尋...", "toggleMenu": "切換選單" }, "openSourceRank": { - "description": "探索按 GitHub 星標數排名的開源 AI 編程工具。比較 IDE、CLI 和擴充功能,找到適合您開發工作流程的完美工具。", + "description": "探索並檢視依 GitHub 星標數排名的開放原始碼 AI 編碼工具。比較 IDE、命令列和擴充套件,找出適合您開發流程的完美工具。", "filter": { "all": "全部" }, "meta": { - "description": "AI Coding Stack 中所有開源專案的排行榜,按 GitHub 星標數排序。查看開源與專有工具的統計和趨勢。", - "title": "開源專案排行榜" + "description": "AI Coding Stack 中所有開放原始碼專案的排行榜,依 GitHub 星標數排序。檢視開放原始碼與專有工具的統計資料與趨勢。", + "title": "@:components.openSourceRank.title" }, - "noResults": "該分類下未找到開源專案。", - "note": "注意:此頁面僅顯示有 GitHub 位址的專案。部分專案雖未開源,但會創建 GitHub 倉庫作為用戶反饋入口。", + "noResults": "此分類未找到開放原始碼專案。", + "note": "注意:此頁面僅顯示有 GitHub 儲存庫的專案。部分專案雖非開放原始碼,但會建立 GitHub 儲存庫作為使用者意見回饋管道。", "productType": { - "cli": "CLI", - "extension": "擴充功能", - "ide": "IDE" + "cli": "@:shared.stack.cli", + "extension": "@:shared.stack.extension", + "ide": "@:shared.stack.ide" }, "statistics": { - "closedSource": "閉源", - "closedSourceCount": "閉源專案", - "closedSourcePercentage": "閉源佔比", - "licenseBreakdown": "協議分佈", - "openSource": "開源", - "openSourceCount": "開源專案", + "closedSource": "@:shared.common.proprietary", + "closedSourceCount": "專有專案", + "closedSourcePercentage": "專有占比", + "licenseBreakdown": "授權分佈", + "openSource": "@:shared.common.openSource", + "openSourceCount": "開放原始碼專案", "projects": "個專案", - "title": "開源與閉源分佈", + "title": "開放原始碼與專有分佈", "totalProjects": "專案總數" }, "table": { - "license": "開源協議", + "license": "@:shared.common.license", "name": "名稱", - "openSourceTitle": "開源專案 ({count})", - "proprietaryTitle": "閉源專案 ({count})", + "openSourceTitle": "開放原始碼專案 ({count})", + "proprietaryTitle": "專有專案 ({count})", "rank": "排名", - "stars": "星標數", - "type": "類型" + "stars": "@:shared.common.stars", + "type": "@:shared.common.type" }, - "title": "開源專案排行榜" + "title": "開放原始碼專案排行榜" }, "productCommands": { - "command": "命令", + "command": "指令", "install": "安裝", "launch": "啟動" }, + "vendorProducts": { + "title": "產品" + }, + "vendorModels": { + "title": "模型" + }, + "platformLinks": { + "title": "在 AI 平台上尋找", + "aiPlatforms": { + "huggingface": { + "title": "Hugging Face", + "description": "查看模型卡片與權重" + }, + "artificialAnalysis": { + "title": "Artificial Analysis", + "description": "AI 模型排行榜與基準測試" + }, + "openrouter": { + "title": "OpenRouter", + "description": "比較並使用多個 AI 模型" + } + } + }, + "githubStarHistory": { + "loading": "載入星標歷史...", + "title": "GitHub 星標歷史", + "description": "星標增長趨勢", + "stars": "星標數", + "fallbackNote": "注意:顯示範例資料。星標歷史 API 暫時無法使用。" + }, "productHero": { "categories": { - "CLI": "命令列", - "EXTENSION": "擴充插件", - "IDE": "IDE", - "MODEL": "模型", - "PROVIDER": "模型提供者", - "VENDOR": "廠商" + "CLI": "@:shared.stack.cli", + "EXTENSION": "@:shared.stack.extension", + "IDE": "@:shared.stack.ide", + "MODEL": "@:shared.stack.model", + "PROVIDER": "@:shared.stack.modelProvider", + "VENDOR": "@:shared.stack.vendor" }, - "documentation": "文檔", - "download": "下載", - "getApiKey": "獲取 API 密鑰", - "license": "許可證", + "documentation": "@:shared.common.documentation", + "download": "@:shared.actions.download", + "getApiKey": "取得 API 金鑰", + "license": "@:shared.common.license", "platforms": "平台", "providerTypes": { - "foundation-model-provider": "基礎模型提供者", + "foundation-model-provider": "Foundation 模型提供者", "model-service-provider": "模型服務提供者" }, - "runtime": "運行時", - "stars": "星標數", + "runtime": "執行期", + "stars": "@:shared.common.stars", "supportedIdes": "支援的 IDE", - "type": "類型", - "vendor": "廠商", + "type": "@:shared.common.type", + "vendor": "@:shared.stack.vendor", "version": "版本", - "visitWebsite": "訪問官網" + "visitWebsite": "造訪網站" }, - "productLinks": { - "blog": "博客", + "communityLinks": { + "blog": "部落格", + "blogDescription": "閱讀部落格文章", + "community": "@:shared.common.community", + "discord": "@:shared.platforms.discord", + "discordDescription": "加入社群", + "github": "@:shared.platforms.github", + "githubDescription": "檢視儲存庫", + "linkedin": "@:shared.platforms.linkedin", + "linkedinDescription": "@:shared.common.followUs", + "reddit": "@:shared.platforms.reddit", + "redditDescription": "參與討論", + "twitter": "@:shared.platforms.twitter", + "twitterDescription": "@:shared.common.followUs", + "youtube": "@:shared.platforms.youtube", + "youtubeDescription": "觀看影片" + }, + "resourceLinks": { "changelog": "更新日誌", - "community": "社群", - "discord": "Discord", - "download": "下載", - "github": "GitHub", + "changelogDescription": "檢視更新日誌", + "download": "@:shared.actions.download", + "downloadDescription": "下載最新版本", "issue": "問題追蹤", - "linkedin": "LinkedIn", - "mcp": "MCP 文檔", - "pricing": "定價", - "reddit": "Reddit", - "resources": "資源", - "twitter": "X (Twitter)", - "youtube": "YouTube" + "issueDescription": "回報問題與請求功能", + "mcp": "MCP 文件", + "mcpDescription": "了解 MCP 整合", + "pricing": "@:shared.common.pricing", + "pricingDescription": "檢視定價方案" + }, + "resources": { + "community": "@:shared.common.community", + "resources": "@:shared.common.resources" }, "productPricing": { - "title": "定價", - "viewFullDetails": "查看完整定價詳情 →" + "title": "@:shared.common.pricing", + "viewFullDetails": "@:shared.actions.viewFullDetails" }, "modelSpecifications": { "title": "@:pages.modelDetail.specifications", @@ -167,29 +217,29 @@ "liveCodeBenchDesc": "@:pages.modelDetail.benchmarks.liveCodeBenchDesc" }, "relatedProducts": { - "cli": "CLI", - "extension": "擴充功能", - "ide": "IDE", + "cli": "@:shared.stack.cli", + "extension": "@:shared.stack.extension", + "ide": "@:shared.stack.ide", "title": "相關產品", - "viewProduct": "查看產品" + "viewProduct": "檢視產品" }, "search": { "categories": { - "clis": "命令列工具", - "extensions": "擴充功能", - "ides": "IDE", - "models": "模型", - "providers": "模型提供者", - "vendors": "供應商" + "clis": "@:shared.stacks.clis", + "extensions": "@:shared.stacks.extensions", + "ides": "@:shared.stacks.ides", + "models": "@:shared.stacks.models", + "providers": "@:shared.stacks.modelProviders", + "vendors": "@:shared.stacks.vendors" }, - "navigate": "導航", + "navigate": "以導覽", "noResults": "未找到結果", - "noResultsFor": "未找到\"{query}\"的結果", - "placeholder": "搜尋 AI 編程工具...", + "noResultsFor": "未找到 \"{query}\" 的結果", + "placeholder": "搜尋 AI 編碼工具...", "resultsCount": "{count} 個結果", - "resultsCountFor": "找到 {count} 個\"{query}\"的結果", + "resultsCountFor": "找到 {count} 個 \"{query}\" 的結果", "searching": "搜尋中...", - "select": "選擇", + "select": "以選擇", "stacks": { "clis": "@:shared.stacks.clis", "extensions": "@:shared.stacks.extensions", @@ -201,8 +251,8 @@ "title": "搜尋結果" }, "sidebar": { - "backToTop": "返回頂部", - "selectItem": "選擇一個項目" + "backToTop": "@:shared.actions.backToTop", + "selectItem": "@:shared.actions.selectItem" }, "vendorMatrix": { "cell": { @@ -210,50 +260,50 @@ }, "categories": { "cli": "CLI", - "extension": "擴充套件", + "extension": "Extension", "ide": "IDE", - "model": "模型", - "provider": "供應商" + "model": "Model", + "provider": "Provider" }, "categoriesPlural": { - "cli": "CLI", - "extension": "擴充套件", - "ide": "IDE", - "model": "模型", - "provider": "供應商" + "cli": "CLIs", + "extension": "Extensions", + "ide": "IDEs", + "model": "Models", + "provider": "Providers" }, "controls": { "clear": "清除", - "sortByLabel": "排序:", + "sortByLabel": "排序方式:", "sortName": "名稱", "sortProducts": "產品", - "vendorTypeLabel": "廠商類型:" + "vendorTypeLabel": "供應商類型:" }, "table": { - "noVendorsFound": "未找到廠商", - "vendor": "廠商" + "noVendorsFound": "未找到供應商", + "vendor": "供應商" }, "vendorTypes": { - "label": "廠商類型:", + "label": "供應商類型:", "types": { "ai-native": { "description": "模型 + 開發工具", "label": "AI 原生" }, "full-stack": { - "description": "IDE + CLI + 擴充套件", + "description": "IDE + 命令列 + 擴充套件", "label": "全端" }, "model-only": { - "description": "模型(有或無供應商)", + "description": "模型(有或無提供者)", "label": "僅模型" }, "provider-only": { - "description": "僅供應商", - "label": "僅供應商" + "description": "僅提供者", + "label": "僅提供者" }, "tool-only": { - "description": "IDE/CLI/擴充套件", + "description": "IDE/命令列/擴充套件", "label": "僅工具" } } diff --git a/translations/zh-Hant/components.json.bak b/translations/zh-Hant/components.json.bak deleted file mode 100644 index 9d84253..0000000 --- a/translations/zh-Hant/components.json.bak +++ /dev/null @@ -1,180 +0,0 @@ -{ - "backToNavigation": { - "backTo": "返回", - "indexLabel": "索引" - }, - "collectionScrollbar": { - "articles": "精选文章", - "specifications": "规范与协议", - "tools": "生态系统工具" - }, - "docsSidebar": { - "label": "文档", - "title": "文档" - }, - "filterSortBar": { - "clearFilters": "清除筛选", - "license": "许可证:", - "openSource": "开源", - "platform": "平台:", - "proprietary": "专有", - "search": "按名称搜索...", - "sort": "排序:", - "sortDefault": "默认", - "sortNameAsc": "名称 (A-Z)", - "sortNameDesc": "名称 (Z-A)" - }, - "footer": { - "copyright": "© 2025 AI Coding Stack • 用 ❤︎ 构建 • 开源", - "openSource": "开源 AI 编码元数据仓库。", - "selectLanguage": "选择语言", - "tagline": "你的 AI 编码生态中心。", - "toggleTheme": "切换主题" - }, - "header": { - "aiCodingLandscape": "AI 编码全景图", - "aiCodingLandscapeDesc": "可视化 AI 编码生态系统全貌", - "aiCodingStack": "AI 编码技术栈", - "articles": "文章", - "closeMenu": "关闭菜单", - "collections": "精选集合", - "developmentTools": "开发工具", - "intelligence": "智能层", - "landscape": "全景图", - "manifesto": "宣言", - "openMenu": "打开菜单", - "openSourceRank": "开源排行榜", - "openSourceRankDesc": "按 GitHub 星标数探索开源 AI 编码项目", - "ranking": "排行榜", - "search": "搜索", - "searchPlaceholder": "搜索...", - "toggleMenu": "切换菜单" - }, - "openSourceRank": { - "description": "探索按 GitHub 星标数排名的开源 AI 编码工具。比较 IDE、CLI 和扩展,找到适合您开发工作流程的完美工具。", - "filter": { - "all": "全部" - }, - "meta": { - "description": "AI Coding Stack 中所有开源项目的排行榜,按 GitHub 星标数排序。查看开源与闭源工具的统计和趋势。", - "title": "开源项目排行榜" - }, - "noResults": "该分类下未找到开源项目。", - "note": "注意:此页面仅显示有 GitHub 地址的项目。部分项目虽未开源,但会创建 GitHub 仓库作为用户反馈入口。", - "productType": { - "cli": "CLI", - "extension": "扩展", - "ide": "IDE" - }, - "statistics": { - "closedSource": "闭源", - "closedSourceCount": "闭源项目", - "closedSourcePercentage": "闭源占比", - "licenseBreakdown": "协议分布", - "openSource": "开源", - "openSourceCount": "开源项目", - "projects": "个项目", - "title": "开源与闭源分布", - "totalProjects": "项目总数" - }, - "table": { - "license": "开源协议", - "name": "名称", - "openSourceTitle": "开源项目 ({count})", - "proprietaryTitle": "闭源项目 ({count})", - "rank": "排名", - "stars": "星标数", - "type": "类型" - }, - "title": "开源项目排行榜" - }, - "productCommands": { - "command": "命令", - "install": "安装", - "launch": "启动" - }, - "productHero": { - "categories": { - "CLI": "命令行", - "EXTENSION": "扩展插件", - "IDE": "IDE", - "MODEL": "模型", - "PROVIDER": "模型提供商", - "VENDOR": "厂商" - }, - "documentation": "文档", - "download": "下载", - "getApiKey": "获取 API 密钥", - "license": "许可证", - "platforms": "平台", - "providerTypes": { - "foundation-model-provider": "基础模型提供商", - "model-service-provider": "模型服务提供商" - }, - "runtime": "运行时", - "stars": "星标数", - "supportedIdes": "支持的 IDE", - "type": "类型", - "vendor": "厂商", - "version": "版本", - "visitWebsite": "访问官网" - }, - "productLinks": { - "blog": "博客", - "changelog": "更新日志", - "community": "社区", - "discord": "Discord", - "download": "下载", - "github": "GitHub", - "issue": "问题跟踪", - "linkedin": "LinkedIn", - "mcp": "MCP 文档", - "pricing": "定价", - "reddit": "Reddit", - "resources": "资源", - "twitter": "X (Twitter)", - "youtube": "YouTube" - }, - "productPricing": { - "title": "定价", - "viewFullDetails": "查看完整定价详情 →" - }, - "relatedProducts": { - "cli": "CLI", - "extension": "扩展", - "ide": "IDE", - "title": "相关产品", - "viewProduct": "查看产品" - }, - "search": { - "categories": { - "clis": "命令行工具", - "extensions": "扩展", - "ides": "IDE", - "models": "模型", - "providers": "模型提供商", - "vendors": "供应商" - }, - "navigate": "导航", - "noResults": "未找到结果", - "noResultsFor": "未找到\"{query}\"的结果", - "placeholder": "搜索 AI 编码工具...", - "resultsCount": "{count} 个结果", - "resultsCountFor": "找到 {count} 个\"{query}\"的结果", - "searching": "搜索中...", - "select": "选择", - "stacks": { - "clis": "@:shared.stacks.clis", - "extensions": "@:shared.stacks.extensions", - "ides": "@:shared.stacks.ides", - "modelProviders": "@:shared.stacks.modelProviders", - "models": "@:shared.stacks.models", - "vendors": "@:shared.stacks.vendors" - }, - "title": "搜索结果" - }, - "sidebar": { - "backToTop": "返回顶部", - "selectItem": "选择一个项目" - } -} diff --git a/translations/zh-Hant/pages/articles.json b/translations/zh-Hant/pages/articles.json index 82035ff..47276d5 100644 --- a/translations/zh-Hant/pages/articles.json +++ b/translations/zh-Hant/pages/articles.json @@ -1,5 +1,5 @@ { - "keywords": "AI 編程文章、AI 開發教程、AI 編程最佳實踐、LLM 編程指南、AI IDE 指南", - "subtitle": "深入了解 AI 編程:IDE、CLI 和 LLM 模型的教程、見解和最佳實踐。學習如何用 AI 提升開發效率 10 倍。", - "title": "@:shared.common.articles" + "keywords": "AI 編碼文章, AI 開發教程, AI 編碼最佳實踐, LLM 編碼指南, AI IDE 指南", + "subtitle": "AI 編碼深度見解:IDE、CLI 和 LLM 模型的教程、見解和最佳實踐。了解如何使用 AI 開發速度快 10 倍。", + "title": "文章" } diff --git a/translations/zh-Hant/pages/comparison.json b/translations/zh-Hant/pages/comparison.json index afd6e9b..7a4603d 100644 --- a/translations/zh-Hant/pages/comparison.json +++ b/translations/zh-Hant/pages/comparison.json @@ -1,43 +1,58 @@ { "clis": { - "backTo": "回到 CLI", - "subtitle": "並排比較 AI 編碼 CLI 工具的功能、定價和規格。", + "backTo": "返回 CLI", + "subtitle": "並排比較 AI 編碼 CLI 工具的功能、價格和規格。", "title": "CLI 比較" }, "columns": { - "contextLength": "上下文長度", - "freePlan": "免費計劃", - "githubStars": "@:components.productHero.stars", - "license": "@:components.productHero.license", + "cache": "快取", + "capabilities": "功能", + "contextLength": "內容長度", + "freePlan": "免費方案", + "githubStars": "Stars", + "input": "輸入", + "inputModalities": "輸入模態", + "license": "授權", "links": "連結", - "maxOutput": "@:shared.common.maxOutput", - "maxPrice": "最高價", - "modelSize": "@:shared.common.modelSize", - "platforms": "@:components.productHero.platforms", - "pricing": "@:shared.common.pricing", - "startingPrice": "起步價", - "supportedIdes": "@:components.productHero.supportedIdes", - "vendor": "@:components.productHero.vendor", - "version": "@:components.productHero.version" + "live-code-bench": "Live Code Bench", + "maxOutput": "最大輸出", + "maxPrice": "最高價格", + "mmmu": "MMMU", + "mmmu-pro": "MMMU Pro", + "modelSize": "模型大小", + "output": "輸出", + "platforms": "平台", + "pricing": "價格", + "pricingCache": "快取價格", + "pricingInput": "輸入價格", + "pricingOutput": "輸出價格", + "sci-code": "SciCode", + "startingPrice": "起價", + "supportedIdes": "支援的 IDE", + "swe-bench": "SWE-bench", + "terminal-bench": "Terminal Bench", + "vendor": "供應商", + "version": "版本", + "web-dev-arena": "WebDev Arena" }, "extensions": { - "backTo": "回到擴充功能", - "subtitle": "並排比較 AI 編碼擴充功能的功能、定價和規格。", - "title": "擴充功能比較" + "backTo": "返回擴充套件", + "subtitle": "並排比較 AI 編碼擴充套件的功能、價格和規格。", + "title": "擴充套件比較" }, "ides": { - "backTo": "回到 IDE", - "subtitle": "並排比較 AI 增強 IDE 的功能、定價和規格。", + "backTo": "返回 IDE", + "subtitle": "並排比較 AI 驅動 IDE 的功能、價格和規格。", "title": "IDE 比較" }, "linkTitles": { - "documentation": "@:components.productHero.documentation", - "download": "@:components.productHero.download", - "officialWebsite": "@:components.productHero.visitWebsite" + "documentation": "文件", + "download": "下載", + "officialWebsite": "官方網站" }, "models": { - "backTo": "回到模型", - "subtitle": "並排比較 AI 編碼模型的規格和定價。", + "backTo": "返回模型", + "subtitle": "並排比較 AI 編碼模型的規格和價格。", "title": "模型比較" }, "pricingValues": { diff --git a/translations/zh-Hant/pages/curated-collections.json b/translations/zh-Hant/pages/curated-collections.json index df741e9..4b43a1e 100644 --- a/translations/zh-Hant/pages/curated-collections.json +++ b/translations/zh-Hant/pages/curated-collections.json @@ -1,16 +1,16 @@ { "articles": { - "description": "來自行業領袖關於 AI 編碼的必讀文章", - "title": "@:shared.common.featuredArticles" + "description": "來自產業領袖的 AI 編碼必讀文章", + "title": "精選文章" }, "specifications": { - "description": "現代軟體開發的基本標準和協議", - "title": "@:shared.common.specificationsProtocols" + "description": "現代軟體開發的基本標準與協定", + "title": "規格與協定" }, - "subtitle": "為 關於 AI 編碼精選的資源、規範、協議和工具", - "title": "@:shared.common.curatedCollections", + "subtitle": "精心挑選的 AI 編碼資源、規格、協定與工具", + "title": "精選集合", "tools": { - "description": "為 AI 編碼工作流程精選的工具和實用程式", - "title": "@:shared.common.ecosystemTools" + "description": "AI 編碼工作流程的精選工具與程式", + "title": "生態系統工具" } } diff --git a/translations/zh-Hant/pages/docs.json b/translations/zh-Hant/pages/docs.json index 0b80cb3..9fff5e4 100644 --- a/translations/zh-Hant/pages/docs.json +++ b/translations/zh-Hant/pages/docs.json @@ -1,5 +1,5 @@ { - "keywords": "AI 編碼堆疊文檔, AI 編碼工具指南, IDE 比較, CLI 比較, AI 模型規格", + "keywords": "AI 編碼堆疊文件, AI 編碼工具指南, IDE 比較, 命令列比較, AI 模型規格", "subtitle": "AI Coding Stack 完整指南:探索工具、了解規格,並為您的工作流程選擇合適的 AI 編碼工具。", - "title": "文檔" + "title": "文件" } diff --git a/translations/zh-Hant/pages/home.json b/translations/zh-Hant/pages/home.json index 10f1342..7b9a148 100644 --- a/translations/zh-Hant/pages/home.json +++ b/translations/zh-Hant/pages/home.json @@ -1,32 +1,32 @@ { - "description": "探索和比較 AI 編碼工具:IDE、CLI、擴充功能、模型和提供者 — 全在一個平台。", + "description": "探索和比較 AI 編碼工具:IDE、CLI、擴充套件、模型和供應商 — 全部在一個地方。", "exploreTools": "探索工具", "faq": "常見問題", "features": { "comparison": { - "description": "並排比較工具的詳細規格、定價和功能。做出明智決策,選擇最適合您工作流程的 AI 編碼工具。", + "description": "並排比較工具,包含詳細的規格、價格和功能。對哪些 AI 編碼工具最適合您的工作流程做出明智決定。", "title": "智慧比較" }, "directory": { - "description": "探索精心整理的 AI 編碼工具集合,涵蓋 IDE、CLI、擴充功能、模型和提供者。一站式獲取,持續更新。", - "title": "綜合目錄" + "description": "探索涵蓋 IDE、CLI、擴充套件、模型和供應商的精選 AI 編碼工具集合。全部在一個地方,始終保持最新。", + "title": "完整目錄" }, "ecosystem": { - "description": "透過互動式全景視圖視覺化完整的 AI 編碼生態系統。了解不同工具、模型和提供者如何連接和互補。", - "title": "生態全景" + "description": "透過互動式景觀視覺化圖表可視化整個 AI 編碼生態系統。了解不同工具、模型和供應商如何連接和互補。", + "title": "生態系統概覽" }, - "title": "核心功能", + "title": "主要功能", "tracking": { - "description": "及時了解 AI 編碼領域的最新發展、版本和更新。追蹤新版本發布、功能添加和生態系統變化。", + "description": "了解 AI 編碼領域的最新發展、版本和更新。追蹤新版本、功能擴展和生態系統變更。", "title": "進度追蹤" } }, "meta": { - "description": "AI 編碼工具綜合目錄。發現、比較和探索 IDE、CLI、擴充功能、模型和提供者。", - "name": "AI Coding Stack", - "title": "AI Coding Stack - 您的 AI 編碼生態中心" + "description": "AI 編碼工具完整目錄。探索、比較和探索 IDE、CLI、擴充套件、模型和供應商。", + "name": "AI 編碼技術堆疊", + "title": "AI 編碼技術堆疊 - 您的 AI 編碼生態系統中心" }, - "readDocs": "閱讀文檔", - "subtitle": "發現、比較、更快構建。", - "title": "您的 AI 編碼生態中心" + "readDocs": "閱讀文件", + "subtitle": "探索、比較、更快開發。", + "title": "您的 AI 編碼生態系統中心" } diff --git a/translations/zh-Hant/pages/stacks.json b/translations/zh-Hant/pages/stacks.json index a736c1a..769bce6 100644 --- a/translations/zh-Hant/pages/stacks.json +++ b/translations/zh-Hant/pages/stacks.json @@ -1,9 +1,9 @@ { "cliDetail": { - "allCLIs": "所有命令行", + "allCLIs": "所有命令列", "breadcrumb": { - "aiCodingStack": "AI 编码技术栈", - "clis": "命令行" + "aiCodingStack": "@:shared.common.aiCodingStack", + "clis": "@:shared.stack.cli" }, "categoryLabel": "@:components.productHero.categories.CLI", "documentation": "@:components.productHero.documentation", @@ -16,17 +16,17 @@ "visitWebsite": "@:components.productHero.visitWebsite" }, "clis": { - "allCLIs": "所有命令行", - "compareAll": "对比所有", - "noMatches": "没有符合筛选条件的命令行", - "subtitle": "AI 驱动的命令行编码助手", - "title": "命令行" + "allCLIs": "所有命令列", + "compareAll": "@:shared.actions.compareAll", + "noMatches": "沒有符合篩選條件的命令列", + "subtitle": "AI 驅動的命令列編碼助理", + "title": "@:shared.stack.cli" }, "extensionDetail": { - "allExtensions": "所有扩展插件", + "allExtensions": "所有擴充套件", "breadcrumb": { - "aiCodingStack": "AI 编码技术栈", - "extensions": "扩展插件" + "aiCodingStack": "@:shared.common.aiCodingStack", + "extensions": "@:shared.stack.extension" }, "categoryLabel": "@:components.productHero.categories.EXTENSION", "documentation": "@:components.productHero.documentation", @@ -39,17 +39,17 @@ "visitWebsite": "@:components.productHero.visitWebsite" }, "extensions": { - "allExtensions": "所有扩展插件", - "compareAll": "对比所有", - "noMatches": "没有符合筛选条件的扩展插件", - "subtitle": "AI 驱动的编码扩展和插件", - "title": "扩展插件" + "allExtensions": "所有擴充套件", + "compareAll": "@:shared.actions.compareAll", + "noMatches": "沒有符合篩選條件的擴充套件", + "subtitle": "AI 驅動的編碼擴充與外掛", + "title": "@:shared.stack.extension" }, "ideDetail": { "allIDEs": "所有 IDE", "breadcrumb": { - "aiCodingStack": "AI 编码技术栈", - "ides": "IDE" + "aiCodingStack": "@:shared.common.aiCodingStack", + "ides": "@:shared.stack.ide" }, "categoryLabel": "@:components.productHero.categories.IDE", "documentation": "@:components.productHero.documentation", @@ -63,131 +63,135 @@ }, "ides": { "allIDEs": "所有 IDE", - "compareAll": "对比所有", - "noMatches": "没有符合筛选条件的 IDE", - "subtitle": "AI 增强的集成开发环境", - "title": "IDE" + "compareAll": "@:shared.actions.compareAll", + "noMatches": "沒有符合篩選條件的 IDE", + "subtitle": "AI 增強的整合式開發環境", + "title": "@:shared.stack.ide" }, "modelDetail": { "aiPlatforms": { "artificialAnalysis": { - "description": "查看性能分析", + "description": "檢視效能分析", "title": "Artificial Analysis" }, "huggingface": { - "description": "在 HuggingFace 查看", + "description": "在 HuggingFace 檢視", "title": "HuggingFace" }, "openrouter": { - "description": "通过 OpenRouter 访问", + "description": "透過 OpenRouter 存取", "title": "OpenRouter" } }, - "allModels": "所有模型", - "backTo": "返回", + "allModels": "@:shared.stacks.allModels", + "backTo": "@:shared.actions.backTo", "breadcrumb": { - "aiCodingStack": "AI 编码技术栈", - "models": "模型" + "aiCodingStack": "@:shared.common.aiCodingStack", + "models": "@:shared.stack.model" }, "categoryLabel": "@:components.productHero.categories.MODEL", "documentation": "@:components.productHero.documentation", - "findOnAiPlatforms": "在 AI 平台上查找", + "findOnAiPlatforms": "在 AI 平台上尋找", "labels": { "artificialAnalysis": "Artificial Analysis", - "context": "上下文", + "context": "內容視窗", "documentation": "@:components.productHero.documentation", "huggingface": "HuggingFace", - "maxOutput": "最大输出", + "maxOutput": "@:shared.common.maxOutput", "openrouter": "OpenRouter", - "pricing": "定价", - "size": "大小", - "website": "官网" + "pricing": "@:shared.common.pricing", + "size": "@:shared.common.modelSize", + "website": "@:shared.common.website" }, "license": "@:components.productHero.license", - "maxOutput": "最大输出", - "metaTitle": "AI 编码模型 | 规格与定价 2025", - "modelSize": "模型大小", - "pricing": "定价", - "specifications": "规格", + "maxOutput": "@:shared.common.maxOutput", + "metaTitle": "AI 編碼模型 | 規格與定價 2025", + "modelSize": "@:shared.common.modelSize", + "pricing": "@:shared.common.pricing", + "specifications": "規格", "stars": "@:components.productHero.stars", - "contextWindow": "总上下文", + "contextWindow": "內容視窗", "vendor": "@:components.productHero.vendor", "version": "@:components.productHero.version", "visitWebsite": "@:components.productHero.visitWebsite", - "input": "输入", - "output": "输出", - "cache": "缓存", + "input": "輸入", + "output": "輸出", + "cache": "快取", "benchmarks": { - "title": "性能基准测试", + "title": "效能基準測試", "sweBench": "SWE-bench Verified", - "sweBenchDesc": "真实世界软件工程任务", + "sweBenchDesc": "真實世界軟體工程任務", "terminalBench": "TerminalBench 2.0", - "terminalBenchDesc": "命令行界面熟练度", + "terminalBenchDesc": "命令列介面熟練度", "mmmu": "MMMU", - "mmmuDesc": "多模态理解", + "mmmuDesc": "多模態理解", "mmmuPro": "MMMU Pro", - "mmmuProDesc": "高级多模态任务", + "mmmuProDesc": "進階多模態任務", "webDevArena": "WebDevArena", - "webDevArenaDesc": "Web 开发挑战", + "webDevArenaDesc": "Web 開發挑戰", "sciCode": "SciCode", - "sciCodeDesc": "科学代码生成", + "sciCodeDesc": "科學程式碼產生", "liveCodeBench": "LiveCodeBench", - "liveCodeBenchDesc": "实时编码性能" + "liveCodeBenchDesc": "即時編碼效能" } }, "modelProviderDetail": { "aiPlatforms": { "artificialAnalysis": { - "description": "查看性能分析", + "description": "檢視效能分析", "title": "Artificial Analysis" }, "huggingface": { - "description": "在 HuggingFace 上查看", + "description": "在 HuggingFace 上檢視", "title": "HuggingFace" }, "openrouter": { - "description": "通过 OpenRouter 访问", + "description": "透過 OpenRouter 存取", "title": "OpenRouter" } }, - "allModelProviders": "所有模型提供商", - "backTo": "返回", + "allModelProviders": "@:shared.stacks.allModelProviders", + "backTo": "@:shared.actions.backTo", "breadcrumb": { - "aiCodingStack": "AI 编码技术栈", - "modelProviders": "模型提供商" + "aiCodingStack": "@:shared.common.aiCodingStack", + "modelProviders": "@:shared.stack.modelProvider" }, "categoryLabel": "@:components.productHero.categories.PROVIDER", "community": { + "blog": { + "description": "閱讀部落格文章", + "title": "部落格" + }, "discord": { - "description": "加入社区", + "description": "加入社群", "title": "Discord" }, "github": { - "description": "查看仓库", + "description": "檢視儲存庫", "title": "GitHub" }, "linkedin": { - "description": "关注我们", + "description": "@:shared.common.followUs", "title": "LinkedIn" }, "reddit": { - "description": "加入讨论", + "description": "參與討論", "title": "Reddit" }, "twitter": { - "description": "关注我们", + "description": "@:shared.common.followUs", "title": "X/Twitter" }, "youtube": { - "description": "观看视频", + "description": "觀看影片", "title": "YouTube" } }, - "communityLinks": "社区链接", + "communityLinks": "社群連結", "documentation": "@:components.productHero.documentation", - "findOnAiPlatforms": "在 AI 平台上查找", + "findOnAiPlatforms": "在 AI 平台上尋找", "getApiKey": "@:components.productHero.getApiKey", - "indexLabel": "索引", + "indexLabel": "@:shared.common.indexLabel", "providerTypes": { "foundation-model-provider": "@:components.productHero.providerTypes.foundation-model-provider", "model-service-provider": "@:components.productHero.providerTypes.model-service-provider" @@ -196,120 +200,120 @@ "visitWebsite": "@:components.productHero.visitWebsite" }, "modelProviders": { - "foundationProviders": "基础模型提供商", - "search": "按名称搜索...", - "serviceProviders": "模型服务提供商", - "subtitle": "提供各种 AI 模型访问的 LLM API 提供商", - "title": "模型提供商" + "foundationProviders": "Foundation 模型提供者", + "search": "依名稱搜尋...", + "serviceProviders": "模型服務提供者", + "subtitle": "提供各種 AI 模型存取的 LLM API 提供者", + "title": "@:shared.stack.modelProvider" }, "models": { - "compareAll": "对比所有", - "context": "上下文:", - "pricing": "定价:", - "search": "按名称搜索...", - "size": "大小:", - "subtitle": "针对代码生成和分析优化的大型语言模型", - "title": "模型" + "compareAll": "@:shared.actions.compareAll", + "context": "內容視窗:", + "pricing": "定價:", + "search": "依名稱搜尋...", + "size": "大小:", + "subtitle": "針對程式碼產生與分析優化的大型語言模型", + "title": "@:shared.stack.model" }, "overview": { "clis": { - "description": "将大语言模型的强大功能直接带到终端的命令行 AI 助手。用自然语言直接在 shell 中执行复杂任务。", - "title": "命令行" + "description": "將大型語言模型的強大功能直接帶到終端的命令列 AI 助理。用自然語言直接在 shell 中執行複雜任務。", + "title": "@:shared.stack.cli" }, - "exploreStack": "探索技术栈", + "exploreStack": "探索技術堆疊", "extensions": { - "description": "为你喜爱的 IDE 提供的 AI 驱动编码扩展和插件。从代码补全到智能重构,用 AI 辅助增强你的开发体验。", - "title": "扩展插件" + "description": "為您喜愛的 IDE 提供的 AI 驅動編碼擴充與外掛。從程式碼自動補全到智慧重構,用 AI 輔助增強您的開發體驗。", + "title": "@:shared.stack.extension" }, "ides": { - "description": "理解代码库并提供智能辅助的 AI 驱动集成开发环境。从 VS Code 到 Cursor,发现让编码与 AI 协作的编辑器。", - "title": "IDE" + "description": "理解程式碼庫並提供智慧輔助的 AI 驅動整合式開發環境。從 VS Code 到 Cursor,發現讓編碼與 AI 協作的編輯器。", + "title": "@:shared.stack.ide" }, "modelProviders": { - "description": "提供各种 AI 模型访问的 LLM API 提供商。从 DeepSeek 到 OpenRouter,发现以统一 API 和模型访问为 AI 编码工具提供动力的平台。", - "title": "模型提供商" + "description": "提供各種 AI 模型存取的 LLM API 提供者。從 DeepSeek 到 OpenRouter,發現以統一 API 和模型存取為 AI 編碼工具提供動力的平台。", + "title": "@:shared.stack.modelProvider" }, "models": { - "description": "智能层。针对代码生成、理解和分析优化的大型语言模型。对比领先 AI 模型的规格、定价和能力。", - "title": "模型" + "description": "智慧層。針對程式碼產生、理解和分析優化的大型語言模型。比較領先 AI 模型的規格、定價和能力。", + "title": "@:shared.stack.model" }, - "overviewTitle": "AI 编码技术栈概览", - "slogan": "发现。对比。快 10 倍。", - "subtitle": "探索完整的 AI 编码生态系统:IDE、命令行、终端、模型和提供商。", - "title": "AI 编码技术栈", + "overviewTitle": "AI 編碼技術堆疊總覽", + "slogan": "@:shared.common.slogan", + "subtitle": "探索完整的 AI 編碼生態系統:IDE、命令列、終端、模型和提供者。", + "title": "@:shared.common.aiCodingStack", "vendors": { - "description": "构建 AI 技术的领先公司和组织。从 OpenAI 到 Anthropic,发现 AI 编码革命背后的厂商。", - "title": "厂商" + "description": "建構 AI 技術的領先公司和組織。從 OpenAI 到 Anthropic,發現 AI 編碼革命背後的供應商。", + "title": "@:shared.stack.vendor" } }, "vendorDetail": { - "allVendors": "所有厂商", - "backTo": "返回", + "allVendors": "@:shared.stacks.allVendors", + "backTo": "@:shared.actions.backTo", "breadcrumb": { - "aiCodingStack": "AI 编码技术栈", - "home": "首页", - "vendors": "厂商" + "aiCodingStack": "@:shared.common.aiCodingStack", + "home": "首頁", + "vendors": "@:shared.stack.vendor" }, "categoryLabel": "@:components.productHero.categories.VENDOR", "documentation": "@:components.productHero.documentation", "community": { "blog": { - "description": "阅读博客文章", - "title": "博客" + "description": "閱讀部落格文章", + "title": "部落格" }, "discord": { - "description": "加入社区", + "description": "加入社群", "title": "Discord" }, "github": { - "description": "查看仓库", + "description": "檢視儲存庫", "title": "GitHub" }, "linkedin": { - "description": "关注我们", + "description": "@:shared.common.followUs", "title": "LinkedIn" }, "reddit": { - "description": "加入讨论", + "description": "參與討論", "title": "Reddit" }, "twitter": { - "description": "关注我们", + "description": "@:shared.common.followUs", "title": "X/Twitter" }, "youtube": { - "description": "观看视频", + "description": "觀看影片", "title": "YouTube" } }, - "communityLinks": "社区链接", - "connectLinkedIn": "在 LinkedIn 上联系", + "communityLinks": "社群連結", + "connectLinkedIn": "在 LinkedIn 上聯繫", "discord": "Discord", - "followTwitter": "在 X/Twitter 上关注", + "followTwitter": "在 X/Twitter 上關注", "github": "GitHub", - "indexLabel": "索引", - "joinDiscord": "加入 Discord 社区", - "joinReddit": "加入 Reddit 社区", + "indexLabel": "@:shared.common.indexLabel", + "joinDiscord": "加入 Discord 社群", + "joinReddit": "加入 Reddit 社群", "linkedin": "LinkedIn", - "metaDescription": "探索 {name} 的 AI 产品和技术。", - "metaTitle": "AI 技术厂商 | 公司简介 2025", + "metaDescription": "探索 {name} 的 AI 產品與技術。", + "metaTitle": "AI 技術供應商 | 公司簡介 2025", "models": "模型", - "products": "产品", - "productsSubtitle": "探索来自 {vendorName} 的产品和服务", - "productsTitle": "产品", - "quickLinks": "快速链接", + "products": "產品", + "productsSubtitle": "探索來自 {vendorName} 的產品與服務", + "productsTitle": "產品", + "quickLinks": "快速連結", "reddit": "Reddit", "twitter": "X/Twitter", - "vendorDetails": "厂商详情", - "viewGitHub": "查看开源仓库", - "visitWebsite": "访问官网", - "watchYouTube": "在 YouTube 观看视频", - "website": "官网", + "vendorDetails": "供應商詳情", + "viewGitHub": "檢視開放原始碼儲存庫", + "visitWebsite": "造訪網站", + "watchYouTube": "在 YouTube 觀看影片", + "website": "@:shared.common.website", "youtube": "YouTube" }, "vendors": { - "search": "按名称搜索...", - "subtitle": "构建 AI 技术的领先公司和组织", - "title": "厂商" + "search": "依名稱搜尋...", + "subtitle": "建構 AI 技術的領先公司和組織", + "title": "@:shared.stack.vendor" } } diff --git a/translations/zh-Hant/shared.json b/translations/zh-Hant/shared.json index 36b2dde..7200902 100644 --- a/translations/zh-Hant/shared.json +++ b/translations/zh-Hant/shared.json @@ -1,49 +1,49 @@ { "actions": { - "backTo": "返回", - "backToTop": "返回頂部", - "compare": "對比", - "compareAll": "對比所有", + "backTo": "回到", + "backToTop": "回到頂部", + "compare": "比較", + "compareAll": "比較全部", "connect": "在 {platform} 上聯繫", - "discover": "發現", + "discover": "探索", "download": "下載", "explore": "探索", "follow": "在 {platform} 上關注", "join": "加入 {platform}", - "search": "搜索", - "selectItem": "選擇一項", - "view": "查看 {name}", - "viewFullDetails": "查看完整定價詳情 →", - "visit": "訪問 {name}", + "search": "搜尋", + "selectItem": "選擇項目", + "view": "檢視 {name}", + "viewFullDetails": "檢視完整定價資訊 →", + "visit": "造訪 {name}", "watch": "在 {platform} 上觀看" }, "common": { - "aiCodingStack": "AI 編碼技術棧", + "aiCodingStack": "AI 編碼技術堆疊", "articles": "文章", - "collections": "集合", - "community": "社區", - "communityLinks": "社區鏈接", - "comparison": "對比", + "collections": "精選集合", + "community": "社群", + "communityLinks": "社群連結", + "comparison": "比較", "curatedCollections": "精選集合", - "docs": "文檔", - "documentation": "文檔", - "ecosystemTools": "生態工具", + "docs": "文件", + "documentation": "文件", + "ecosystemTools": "生態系統工具", "faq": "常見問題", "featuredArticles": "精選文章", "followUs": "關注我們", "indexLabel": "索引", - "license": "許可證", + "license": "授權", "manifesto": "宣言", "maxOutput": "最大輸出", "modelSize": "模型大小", - "openSource": "開源", + "openSource": "開放原始碼", "pricing": "定價", "products": "產品", "proprietary": "專有", "resources": "資源", - "slogan": "發現。對比。10 倍速構建。", - "specificationsProtocols": "規範與協議", - "stars": "星標", + "slogan": "探索。比較。快 10 倍。", + "specificationsProtocols": "規格與協定", + "stars": "星標數", "type": "類型", "website": "網站" }, @@ -59,25 +59,25 @@ "youtube": "YouTube" }, "stack": { - "cli": "命令行工具", - "extension": "擴展插件", - "ide": "集成開發環境", + "cli": "命令列", + "extension": "擴充套件", + "ide": "IDE", "model": "模型", - "modelProvider": "模型提供商", - "vendor": "廠商" + "modelProvider": "模型提供者", + "vendor": "供應商" }, "stacks": { - "allClis": "所有命令行工具", - "allExtensions": "所有擴展插件", + "allClis": "所有命令列", + "allExtensions": "所有擴充套件", "allIdes": "所有 IDE", - "allModelProviders": "所有模型提供商", + "allModelProviders": "所有模型提供者", "allModels": "所有模型", - "allVendors": "所有廠商", - "clis": "命令行", - "extensions": "擴展插件", + "allVendors": "所有供應商", + "clis": "命令列", + "extensions": "擴充套件", "ides": "IDE", - "modelProviders": "模型提供商", + "modelProviders": "模型提供者", "models": "模型", - "vendors": "廠商" + "vendors": "供應商" } }