From 67f1942b42179331a5d8fc8a06bfe4f60b600931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 13:41:22 +0200 Subject: [PATCH 01/14] fix(mobile): polyfill relative time on Hermes --- apps/mobile/.oxlintrc.json | 19 +++- apps/mobile/package.json | 1 + .../agents/context-usage-display.ts | 3 +- .../agents/message-details-content.ts | 3 +- .../components/kiloclaw/onboarding-flow.tsx | 3 +- apps/mobile/src/lib/intl-cache.test.ts | 22 ++++- apps/mobile/src/lib/intl-cache.ts | 30 +++++- apps/mobile/src/lib/relative-time-locales.ts | 93 +++++++++++++++++++ apps/mobile/src/lib/utils.ts | 3 +- pnpm-lock.yaml | 22 +++++ 10 files changed, 189 insertions(+), 10 deletions(-) create mode 100644 apps/mobile/src/lib/relative-time-locales.ts diff --git a/apps/mobile/.oxlintrc.json b/apps/mobile/.oxlintrc.json index 775ff614eb..023c4e37d5 100644 --- a/apps/mobile/.oxlintrc.json +++ b/apps/mobile/.oxlintrc.json @@ -37,6 +37,13 @@ }, "ignorePatterns": ["dist/*", "node_modules/**"], "rules": { + "no-restricted-globals": [ + "error", + { + "name": "Intl", + "message": "Use @/lib/intl-cache so Hermes support stays explicit and tested." + } + ], "no-restricted-imports": [ "error", { @@ -253,14 +260,24 @@ "anti-slop/no-reflect-get": "off", "anti-slop/no-runtime-typeof": "off", "anti-slop/no-unknown-returns": "off", + "no-restricted-globals": "off", "zod-utils/no-inline-zod-schema": "off" } }, { - "files": ["src/i18n/catalogs.ts"], + "files": ["src/i18n/catalogs.ts", "src/lib/relative-time-locales.ts"], + "rules": { + "@typescript-eslint/no-require-imports": "off", + "@typescript-eslint/no-var-requires": "off", + "unicorn/prefer-module": "off" + } + }, + { + "files": ["src/lib/intl-cache.ts"], "rules": { "@typescript-eslint/no-require-imports": "off", "@typescript-eslint/no-var-requires": "off", + "no-restricted-globals": "off", "unicorn/prefer-module": "off" } }, diff --git a/apps/mobile/package.json b/apps/mobile/package.json index bd29b386ed..1b035ffe8c 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -26,6 +26,7 @@ "@expo-google-fonts/jetbrains-mono": "0.4.1", "@expo/app-integrity": "57.0.1", "@expo/react-native-action-sheet": "4.1.1", + "@formatjs/intl-relativetimeformat": "^12.3.13", "@kilocode/app-shared": "workspace:*", "@kilocode/cloud-agent-sdk": "workspace:*", "@kilocode/event-service": "workspace:*", diff --git a/apps/mobile/src/components/agents/context-usage-display.ts b/apps/mobile/src/components/agents/context-usage-display.ts index e561aaa24c..306f626eae 100644 --- a/apps/mobile/src/components/agents/context-usage-display.ts +++ b/apps/mobile/src/components/agents/context-usage-display.ts @@ -1,5 +1,6 @@ import { i18n } from '@/i18n'; import { formatCurrency } from '@/lib/format'; +import { numberFormat } from '@/lib/intl-cache'; import { type SessionContextInfo } from '@/lib/session-context-info'; import { formatSessionTotalCost } from './session-list-helpers'; @@ -7,7 +8,7 @@ import { formatSpokenCost } from './session-row-accessibility-label'; export type ContextTone = 'primary' | 'warning' | 'destructive' | 'neutral'; -const NUMBER_FORMAT = new Intl.NumberFormat('en-US'); +const NUMBER_FORMAT = numberFormat('en-US', {}); const WARNING_TONE_THRESHOLD = 75; const DESTRUCTIVE_TONE_THRESHOLD = 90; diff --git a/apps/mobile/src/components/agents/message-details-content.ts b/apps/mobile/src/components/agents/message-details-content.ts index 44b98adac1..5422a6f825 100644 --- a/apps/mobile/src/components/agents/message-details-content.ts +++ b/apps/mobile/src/components/agents/message-details-content.ts @@ -2,6 +2,7 @@ import { type StoredMessage } from '@kilocode/cloud-agent-sdk'; import { i18n } from '@/i18n'; import { type SessionModelOption } from '@/lib/hooks/use-session-model-options'; +import { dateTimeFormat } from '@/lib/intl-cache'; import { collectCopyableText } from './collect-copyable-text'; import { formatCost } from './context-usage-display'; @@ -24,7 +25,7 @@ type MessageDetailsContent = { canSelectText: boolean; }; -const SENT_TIME_FORMATTER = new Intl.DateTimeFormat(undefined, { +const SENT_TIME_FORMATTER = dateTimeFormat(undefined, { dateStyle: 'medium', timeStyle: 'short', }); diff --git a/apps/mobile/src/components/kiloclaw/onboarding-flow.tsx b/apps/mobile/src/components/kiloclaw/onboarding-flow.tsx index 1807fc6f4f..99b4dc3d32 100644 --- a/apps/mobile/src/components/kiloclaw/onboarding-flow.tsx +++ b/apps/mobile/src/components/kiloclaw/onboarding-flow.tsx @@ -38,6 +38,7 @@ import { WEATHER_LOCATION_SKIPPED_EVENT, } from '@/lib/analytics/onboarding-events'; import { trackEvent } from '@/lib/appsflyer'; +import { dateTimeFormat } from '@/lib/intl-cache'; import { useKiloClawGatewayReady, useKiloClawMobileOnboardingState, @@ -82,7 +83,7 @@ const gatewayReadyStatusSchema = z.number().optional(); function resolveUserTimezone(): string | undefined { try { - return new Intl.DateTimeFormat().resolvedOptions().timeZone || undefined; + return dateTimeFormat(undefined, {}).resolvedOptions().timeZone || undefined; } catch { return undefined; } diff --git a/apps/mobile/src/lib/intl-cache.test.ts b/apps/mobile/src/lib/intl-cache.test.ts index c67a0b41f1..ac6e5b98f0 100644 --- a/apps/mobile/src/lib/intl-cache.test.ts +++ b/apps/mobile/src/lib/intl-cache.test.ts @@ -1,8 +1,12 @@ -import { describe, expect, it } from 'vitest'; +import { afterEach, describe, expect, it, vi } from 'vitest'; import { dateTimeFormat, numberFormat, relativeTimeFormat } from './intl-cache'; describe('intl-cache', () => { + afterEach(() => { + vi.unstubAllGlobals(); + }); + it('returns one formatter per locale and options pair', () => { const options = { style: 'currency', currency: 'USD' } as const; expect(numberFormat('de', options)).toBe(numberFormat('de', options)); @@ -26,4 +30,20 @@ describe('intl-cache', () => { 'Monday' ); }); + + it('loads localized relative time when Hermes omits the constructor', () => { + const nativeIntl = Intl; + vi.stubGlobal('Intl', { + Collator: nativeIntl.Collator, + DateTimeFormat: nativeIntl.DateTimeFormat, + getCanonicalLocales: nativeIntl.getCanonicalLocales, + Locale: nativeIntl.Locale, + NumberFormat: nativeIntl.NumberFormat, + PluralRules: nativeIntl.PluralRules, + }); + + expect(relativeTimeFormat('de', { numeric: 'auto' }).format(-5, 'minute')).toBe( + 'vor 5 Minuten' + ); + }); }); diff --git a/apps/mobile/src/lib/intl-cache.ts b/apps/mobile/src/lib/intl-cache.ts index 0a94b6662c..ec400f81cf 100644 --- a/apps/mobile/src/lib/intl-cache.ts +++ b/apps/mobile/src/lib/intl-cache.ts @@ -1,3 +1,8 @@ +import { shouldPolyfill as shouldPolyfillRelativeTimeFormat } from '@formatjs/intl-relativetimeformat/should-polyfill.js'; + +import { isSupportedLanguage } from '@/i18n/languages'; +import { RELATIVE_TIME_LOCALE_LOADERS } from '@/lib/relative-time-locales'; + /** * Cached `Intl` formatters. * @@ -10,9 +15,25 @@ const numberFormats = new Map(); const dateTimeFormats = new Map(); const relativeTimeFormats = new Map(); +let usesRelativeTimePolyfill = false; -export function numberFormat(locale: string, options: Intl.NumberFormatOptions): Intl.NumberFormat { - const key = `${locale}|${JSON.stringify(options)}`; +function ensureRelativeTimeFormat(locale: string): void { + const language = isSupportedLanguage(locale) ? locale : 'en'; + if (!usesRelativeTimePolyfill && shouldPolyfillRelativeTimeFormat(language)) { + require('@formatjs/intl-relativetimeformat/polyfill-force.js'); + usesRelativeTimePolyfill = true; + } + if (!usesRelativeTimePolyfill) { + return; + } + RELATIVE_TIME_LOCALE_LOADERS[language](); +} + +export function numberFormat( + locale: Intl.LocalesArgument, + options: Intl.NumberFormatOptions +): Intl.NumberFormat { + const key = `${JSON.stringify(locale)}|${JSON.stringify(options)}`; let format = numberFormats.get(key); if (!format) { format = new Intl.NumberFormat(locale, options); @@ -22,10 +43,10 @@ export function numberFormat(locale: string, options: Intl.NumberFormatOptions): } export function dateTimeFormat( - locale: string, + locale: Intl.LocalesArgument, options: Intl.DateTimeFormatOptions ): Intl.DateTimeFormat { - const key = `${locale}|${JSON.stringify(options)}`; + const key = `${JSON.stringify(locale)}|${JSON.stringify(options)}`; let format = dateTimeFormats.get(key); if (!format) { format = new Intl.DateTimeFormat(locale, options); @@ -38,6 +59,7 @@ export function relativeTimeFormat( locale: string, options: Intl.RelativeTimeFormatOptions ): Intl.RelativeTimeFormat { + ensureRelativeTimeFormat(locale); const key = `${locale}|${JSON.stringify(options)}`; let format = relativeTimeFormats.get(key); if (!format) { diff --git a/apps/mobile/src/lib/relative-time-locales.ts b/apps/mobile/src/lib/relative-time-locales.ts new file mode 100644 index 0000000000..aa8ee01293 --- /dev/null +++ b/apps/mobile/src/lib/relative-time-locales.ts @@ -0,0 +1,93 @@ +import { type SupportedLanguage } from '@/i18n/languages'; + +// Metro includes each locale in the bundle but evaluates only the active one. +// Keep this map complete with SUPPORTED_LANGUAGES. +export const RELATIVE_TIME_LOCALE_LOADERS = { + af: () => void require('@formatjs/intl-relativetimeformat/locale-data/af.js'), + sq: () => void require('@formatjs/intl-relativetimeformat/locale-data/sq.js'), + am: () => void require('@formatjs/intl-relativetimeformat/locale-data/am.js'), + ar: () => void require('@formatjs/intl-relativetimeformat/locale-data/ar.js'), + hy: () => void require('@formatjs/intl-relativetimeformat/locale-data/hy.js'), + az: () => void require('@formatjs/intl-relativetimeformat/locale-data/az.js'), + eu: () => void require('@formatjs/intl-relativetimeformat/locale-data/eu.js'), + be: () => void require('@formatjs/intl-relativetimeformat/locale-data/be.js'), + bn: () => void require('@formatjs/intl-relativetimeformat/locale-data/bn.js'), + bs: () => void require('@formatjs/intl-relativetimeformat/locale-data/bs.js'), + bg: () => void require('@formatjs/intl-relativetimeformat/locale-data/bg.js'), + my: () => void require('@formatjs/intl-relativetimeformat/locale-data/my.js'), + ca: () => void require('@formatjs/intl-relativetimeformat/locale-data/ca.js'), + 'zh-Hans': () => void require('@formatjs/intl-relativetimeformat/locale-data/zh-Hans.js'), + 'zh-Hant': () => void require('@formatjs/intl-relativetimeformat/locale-data/zh-Hant.js'), + hr: () => void require('@formatjs/intl-relativetimeformat/locale-data/hr.js'), + cs: () => void require('@formatjs/intl-relativetimeformat/locale-data/cs.js'), + da: () => void require('@formatjs/intl-relativetimeformat/locale-data/da.js'), + nl: () => void require('@formatjs/intl-relativetimeformat/locale-data/nl.js'), + en: () => void require('@formatjs/intl-relativetimeformat/locale-data/en.js'), + et: () => void require('@formatjs/intl-relativetimeformat/locale-data/et.js'), + fil: () => void require('@formatjs/intl-relativetimeformat/locale-data/fil.js'), + fi: () => void require('@formatjs/intl-relativetimeformat/locale-data/fi.js'), + fr: () => void require('@formatjs/intl-relativetimeformat/locale-data/fr.js'), + gl: () => void require('@formatjs/intl-relativetimeformat/locale-data/gl.js'), + ka: () => void require('@formatjs/intl-relativetimeformat/locale-data/ka.js'), + de: () => void require('@formatjs/intl-relativetimeformat/locale-data/de.js'), + el: () => void require('@formatjs/intl-relativetimeformat/locale-data/el.js'), + gu: () => void require('@formatjs/intl-relativetimeformat/locale-data/gu.js'), + ht: () => void require('@formatjs/intl-relativetimeformat/locale-data/ht.js'), + ha: () => void require('@formatjs/intl-relativetimeformat/locale-data/ha.js'), + he: () => void require('@formatjs/intl-relativetimeformat/locale-data/he.js'), + hi: () => void require('@formatjs/intl-relativetimeformat/locale-data/hi.js'), + hu: () => void require('@formatjs/intl-relativetimeformat/locale-data/hu.js'), + is: () => void require('@formatjs/intl-relativetimeformat/locale-data/is.js'), + ig: () => void require('@formatjs/intl-relativetimeformat/locale-data/ig.js'), + id: () => void require('@formatjs/intl-relativetimeformat/locale-data/id.js'), + ga: () => void require('@formatjs/intl-relativetimeformat/locale-data/ga.js'), + it: () => void require('@formatjs/intl-relativetimeformat/locale-data/it.js'), + ja: () => void require('@formatjs/intl-relativetimeformat/locale-data/ja.js'), + kn: () => void require('@formatjs/intl-relativetimeformat/locale-data/kn.js'), + kk: () => void require('@formatjs/intl-relativetimeformat/locale-data/kk.js'), + km: () => void require('@formatjs/intl-relativetimeformat/locale-data/km.js'), + ko: () => void require('@formatjs/intl-relativetimeformat/locale-data/ko.js'), + ckb: () => void require('@formatjs/intl-relativetimeformat/locale-data/ckb.js'), + lo: () => void require('@formatjs/intl-relativetimeformat/locale-data/lo.js'), + lv: () => void require('@formatjs/intl-relativetimeformat/locale-data/lv.js'), + lt: () => void require('@formatjs/intl-relativetimeformat/locale-data/lt.js'), + mk: () => void require('@formatjs/intl-relativetimeformat/locale-data/mk.js'), + mg: () => void require('@formatjs/intl-relativetimeformat/locale-data/mg.js'), + ms: () => void require('@formatjs/intl-relativetimeformat/locale-data/ms.js'), + ml: () => void require('@formatjs/intl-relativetimeformat/locale-data/ml.js'), + mt: () => void require('@formatjs/intl-relativetimeformat/locale-data/mt.js'), + mi: () => void require('@formatjs/intl-relativetimeformat/locale-data/mi.js'), + mr: () => void require('@formatjs/intl-relativetimeformat/locale-data/mr.js'), + mn: () => void require('@formatjs/intl-relativetimeformat/locale-data/mn.js'), + ne: () => void require('@formatjs/intl-relativetimeformat/locale-data/ne.js'), + nb: () => void require('@formatjs/intl-relativetimeformat/locale-data/nb.js'), + or: () => void require('@formatjs/intl-relativetimeformat/locale-data/or.js'), + om: () => void require('@formatjs/intl-relativetimeformat/locale-data/om.js'), + ps: () => void require('@formatjs/intl-relativetimeformat/locale-data/ps.js'), + fa: () => void require('@formatjs/intl-relativetimeformat/locale-data/fa.js'), + pl: () => void require('@formatjs/intl-relativetimeformat/locale-data/pl.js'), + pt: () => void require('@formatjs/intl-relativetimeformat/locale-data/pt.js'), + 'pt-BR': () => void require('@formatjs/intl-relativetimeformat/locale-data/pt.js'), + pa: () => void require('@formatjs/intl-relativetimeformat/locale-data/pa.js'), + ro: () => void require('@formatjs/intl-relativetimeformat/locale-data/ro.js'), + ru: () => void require('@formatjs/intl-relativetimeformat/locale-data/ru.js'), + sr: () => void require('@formatjs/intl-relativetimeformat/locale-data/sr.js'), + si: () => void require('@formatjs/intl-relativetimeformat/locale-data/si.js'), + sk: () => void require('@formatjs/intl-relativetimeformat/locale-data/sk.js'), + sl: () => void require('@formatjs/intl-relativetimeformat/locale-data/sl.js'), + so: () => void require('@formatjs/intl-relativetimeformat/locale-data/so.js'), + es: () => void require('@formatjs/intl-relativetimeformat/locale-data/es.js'), + sw: () => void require('@formatjs/intl-relativetimeformat/locale-data/sw.js'), + sv: () => void require('@formatjs/intl-relativetimeformat/locale-data/sv.js'), + ta: () => void require('@formatjs/intl-relativetimeformat/locale-data/ta.js'), + te: () => void require('@formatjs/intl-relativetimeformat/locale-data/te.js'), + th: () => void require('@formatjs/intl-relativetimeformat/locale-data/th.js'), + tr: () => void require('@formatjs/intl-relativetimeformat/locale-data/tr.js'), + uk: () => void require('@formatjs/intl-relativetimeformat/locale-data/uk.js'), + ur: () => void require('@formatjs/intl-relativetimeformat/locale-data/ur.js'), + uz: () => void require('@formatjs/intl-relativetimeformat/locale-data/uz.js'), + vi: () => void require('@formatjs/intl-relativetimeformat/locale-data/vi.js'), + cy: () => void require('@formatjs/intl-relativetimeformat/locale-data/cy.js'), + yo: () => void require('@formatjs/intl-relativetimeformat/locale-data/yo.js'), + zu: () => void require('@formatjs/intl-relativetimeformat/locale-data/zu.js'), +} satisfies Record void>; diff --git a/apps/mobile/src/lib/utils.ts b/apps/mobile/src/lib/utils.ts index d70dac9588..5998019af8 100644 --- a/apps/mobile/src/lib/utils.ts +++ b/apps/mobile/src/lib/utils.ts @@ -24,7 +24,8 @@ const RELATIVE_TIME_UNITS: readonly { unit: Intl.RelativeTimeFormatUnit; seconds /** * Returns a human-readable relative time string like "3 days ago". Uses * `Intl.RelativeTimeFormat` with the active i18n language (or the passed - * locale) so the unit words and direction are localized. Sub-minute ages use + * locale) so the unit words and direction are localized. The shared formatter + * loads the Hermes polyfill and active locale on demand. Sub-minute ages use * the catalog's `common.justNow` because RelativeTimeFormat has no sub-minute * bucket. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff3f3fe17a..ee14f516de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -325,6 +325,9 @@ importers: '@expo/react-native-action-sheet': specifier: 4.1.1 version: 4.1.1(@types/react@19.2.14)(react@19.2.3) + '@formatjs/intl-relativetimeformat': + specifier: ^12.3.13 + version: 12.3.13 '@kilocode/app-shared': specifier: workspace:* version: link:../../packages/app-shared @@ -5190,6 +5193,15 @@ packages: '@fontsource-variable/roboto-mono@5.3.0': resolution: {integrity: sha512-h5r+KY/6qy8JEOj33JgcrFO81YAnvrc1EAwMpl/EPJLb2OIvOy0/jmB5M7qs7x/uXk5JUP5Ux4LrkeOK7faHkQ==} + '@formatjs/fast-memoize@3.1.7': + resolution: {integrity: sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA==} + + '@formatjs/intl-localematcher@0.8.13': + resolution: {integrity: sha512-kHEAFOkeJSPNi7c5PaKaRjxcBrJwzzt81ifUu+8uve1EDW/VJl83KsxmqgqNZLzcFEhSliZGvx3+pk/RH0IOmg==} + + '@formatjs/intl-relativetimeformat@12.3.13': + resolution: {integrity: sha512-qgH6XQugzCrFyZIMvhi5xlk6JcJxyF87kcWzH8XT6X8oJQpdljt4xQSsF55TjaRHhi+iK1Nu7YAI9QkNGF7L2g==} + '@fregante/relaxed-json@2.0.0': resolution: {integrity: sha512-PyUXQWB42s4jBli435TDiYuVsadwRHnMc27YaLouINktvTWsL3FcKrRMGawTayFk46X+n5bE23RjUTWQwrukWw==} engines: {node: '>= 0.10.0'} @@ -21808,6 +21820,16 @@ snapshots: '@fontsource-variable/roboto-mono@5.3.0': {} + '@formatjs/fast-memoize@3.1.7': {} + + '@formatjs/intl-localematcher@0.8.13': + dependencies: + '@formatjs/fast-memoize': 3.1.7 + + '@formatjs/intl-relativetimeformat@12.3.13': + dependencies: + '@formatjs/intl-localematcher': 0.8.13 + '@fregante/relaxed-json@2.0.0': {} '@google/genai@2.10.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(bufferutil@4.1.0)(utf-8-validate@6.0.6)': From 122aac92cb616a4218b4293f79808ac85a9833b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 14:45:32 +0200 Subject: [PATCH 02/14] fix(mobile): localize structured values --- apps/mobile/package.json | 4 + .../(app)/kiloclaw/[instance-id]/billing.tsx | 10 +- .../[instance-id]/settings/device-pairing.tsx | 17 +- .../agents/attachment-chip-description.ts | 7 +- .../agents/child-session-section.tsx | 4 +- .../agents/context-usage-display.test.ts | 4 +- .../agents/context-usage-display.ts | 26 +-- .../components/agents/markdown-a11y.test.ts | 4 +- .../src/components/agents/markdown-a11y.ts | 5 +- .../src/components/agents/markdown-palette.ts | 6 +- .../components/agents/markdown-table.test.ts | 2 +- .../src/components/agents/markdown-table.tsx | 13 +- .../agents/message-details-content.ts | 10 +- .../src/components/agents/model-selector.tsx | 28 +-- .../src/components/agents/part-renderer.tsx | 10 +- .../src/components/agents/permission-card.tsx | 4 +- .../components/agents/preparation-group.tsx | 20 +- .../src/components/agents/question-card.tsx | 2 +- .../components/agents/read-tool-markdown.ts | 3 +- .../agents/session-context-sheet.tsx | 17 +- .../components/agents/session-list-helpers.ts | 6 +- .../session-pagination-header-render-model.ts | 9 +- .../session-row-accessibility-label.test.ts | 38 ++-- .../agents/session-row-accessibility-label.ts | 23 ++- .../agents/tool-card-display.test.ts | 2 +- .../components/agents/tool-card-display.ts | 3 +- .../components/agents/working-indicator.tsx | 12 +- .../code-reviewer/platform-overview-rows.ts | 3 +- apps/mobile/src/components/home/greeting.tsx | 19 +- .../conversation-list-groups.test.ts | 10 +- .../kilo-chat/conversation-list-groups.ts | 6 +- .../kilo-chat/conversation-list-screen.tsx | 4 +- .../message-attachment-preview-chip.tsx | 9 +- .../kilo-chat/message-attachment-state.ts | 5 +- .../kilo-chat/message-attachment.tsx | 6 +- .../components/kilo-chat/message-bubble.tsx | 4 +- .../kilo-chat/typing-indicator-text.ts | 9 +- .../components/kiloclaw/dashboard-parts.tsx | 16 +- .../src/components/kiloclaw/instance-card.tsx | 15 +- .../src/components/kiloclaw/status-card.tsx | 23 +-- .../organization/credit-activity-screen.tsx | 4 +- .../components/organization/hub-screen.tsx | 9 +- .../organization/invoices-screen.tsx | 4 +- .../organization/low-balance-alert-sheet.tsx | 6 +- .../low-balance-alert-validators.ts | 5 +- .../organization/member-limit-sheet.tsx | 8 +- .../organization/member-limit-validators.ts | 11 +- .../organization/members-screen.tsx | 7 +- .../organization/org-kilo-pass-row-state.ts | 10 +- .../organization/org-usage-stats.tsx | 8 +- .../diff/pr-diff-file-list-header.tsx | 6 +- .../pr-review/diff/pr-diff-file-navigator.tsx | 14 +- .../pr-review/diff/pr-diff-file-rows.tsx | 5 +- .../pr-review/diff/pr-diff-hunk-rows.tsx | 37 ++-- .../discussion/discussion-thread.tsx | 9 +- .../pr-review/discussion/reactions-row.tsx | 5 +- .../pr-review/pr-review-overview-parts.tsx | 19 +- .../components/pr-review/pr-review-submit.tsx | 7 +- .../src/components/profile-credits-card.tsx | 2 +- .../automation-settings-screen.tsx | 9 +- .../security-agent/dashboard-sections.tsx | 25 ++- .../notification-settings-screen.tsx | 13 +- .../settings-overview-screen.tsx | 8 +- .../security-agent/sla-settings-screen.tsx | 13 +- .../share/share-payload-preview.tsx | 7 +- .../src/components/ui/form-field-a11y.test.ts | 8 +- .../src/components/ui/form-field-a11y.ts | 3 +- apps/mobile/src/i18n/label-reference.test.ts | 10 + apps/mobile/src/i18n/language-rows.ts | 27 ++- apps/mobile/src/i18n/locales/af.json | 102 ++++++---- apps/mobile/src/i18n/locales/am.json | 102 ++++++---- apps/mobile/src/i18n/locales/ar.json | 102 ++++++---- apps/mobile/src/i18n/locales/az.json | 102 ++++++---- apps/mobile/src/i18n/locales/be.json | 102 ++++++---- apps/mobile/src/i18n/locales/bg.json | 102 ++++++---- apps/mobile/src/i18n/locales/bn.json | 102 ++++++---- apps/mobile/src/i18n/locales/bs.json | 102 ++++++---- apps/mobile/src/i18n/locales/ca.json | 102 ++++++---- apps/mobile/src/i18n/locales/ckb.json | 102 ++++++---- apps/mobile/src/i18n/locales/cs.json | 102 ++++++---- apps/mobile/src/i18n/locales/cy.json | 102 ++++++---- apps/mobile/src/i18n/locales/da.json | 102 ++++++---- apps/mobile/src/i18n/locales/de.json | 102 ++++++---- apps/mobile/src/i18n/locales/el.json | 102 ++++++---- apps/mobile/src/i18n/locales/en.json | 102 ++++++---- apps/mobile/src/i18n/locales/es.json | 102 ++++++---- apps/mobile/src/i18n/locales/et.json | 102 ++++++---- apps/mobile/src/i18n/locales/eu.json | 102 ++++++---- apps/mobile/src/i18n/locales/fa.json | 102 ++++++---- apps/mobile/src/i18n/locales/fi.json | 102 ++++++---- apps/mobile/src/i18n/locales/fil.json | 102 ++++++---- apps/mobile/src/i18n/locales/fr.json | 102 ++++++---- apps/mobile/src/i18n/locales/ga.json | 102 ++++++---- apps/mobile/src/i18n/locales/gl.json | 102 ++++++---- apps/mobile/src/i18n/locales/gu.json | 102 ++++++---- apps/mobile/src/i18n/locales/ha.json | 102 ++++++---- apps/mobile/src/i18n/locales/he.json | 102 ++++++---- apps/mobile/src/i18n/locales/hi.json | 102 ++++++---- apps/mobile/src/i18n/locales/hr.json | 102 ++++++---- apps/mobile/src/i18n/locales/ht.json | 102 ++++++---- apps/mobile/src/i18n/locales/hu.json | 102 ++++++---- apps/mobile/src/i18n/locales/hy.json | 102 ++++++---- apps/mobile/src/i18n/locales/id.json | 102 ++++++---- apps/mobile/src/i18n/locales/ig.json | 102 ++++++---- apps/mobile/src/i18n/locales/is.json | 102 ++++++---- apps/mobile/src/i18n/locales/it.json | 102 ++++++---- apps/mobile/src/i18n/locales/ja.json | 102 ++++++---- apps/mobile/src/i18n/locales/ka.json | 102 ++++++---- apps/mobile/src/i18n/locales/kk.json | 102 ++++++---- apps/mobile/src/i18n/locales/km.json | 102 ++++++---- apps/mobile/src/i18n/locales/kn.json | 102 ++++++---- apps/mobile/src/i18n/locales/ko.json | 102 ++++++---- apps/mobile/src/i18n/locales/lo.json | 102 ++++++---- apps/mobile/src/i18n/locales/lt.json | 102 ++++++---- apps/mobile/src/i18n/locales/lv.json | 102 ++++++---- apps/mobile/src/i18n/locales/mg.json | 102 ++++++---- apps/mobile/src/i18n/locales/mi.json | 102 ++++++---- apps/mobile/src/i18n/locales/mk.json | 102 ++++++---- apps/mobile/src/i18n/locales/ml.json | 102 ++++++---- apps/mobile/src/i18n/locales/mn.json | 102 ++++++---- apps/mobile/src/i18n/locales/mr.json | 102 ++++++---- apps/mobile/src/i18n/locales/ms.json | 102 ++++++---- apps/mobile/src/i18n/locales/mt.json | 102 ++++++---- apps/mobile/src/i18n/locales/my.json | 102 ++++++---- apps/mobile/src/i18n/locales/nb.json | 102 ++++++---- apps/mobile/src/i18n/locales/ne.json | 102 ++++++---- apps/mobile/src/i18n/locales/nl.json | 102 ++++++---- apps/mobile/src/i18n/locales/om.json | 102 ++++++---- apps/mobile/src/i18n/locales/or.json | 102 ++++++---- apps/mobile/src/i18n/locales/pa.json | 102 ++++++---- apps/mobile/src/i18n/locales/pl.json | 102 ++++++---- apps/mobile/src/i18n/locales/ps.json | 102 ++++++---- apps/mobile/src/i18n/locales/pt-BR.json | 102 ++++++---- apps/mobile/src/i18n/locales/pt.json | 102 ++++++---- apps/mobile/src/i18n/locales/ro.json | 102 ++++++---- apps/mobile/src/i18n/locales/ru.json | 102 ++++++---- apps/mobile/src/i18n/locales/si.json | 102 ++++++---- apps/mobile/src/i18n/locales/sk.json | 102 ++++++---- apps/mobile/src/i18n/locales/sl.json | 102 ++++++---- apps/mobile/src/i18n/locales/so.json | 102 ++++++---- apps/mobile/src/i18n/locales/sq.json | 102 ++++++---- apps/mobile/src/i18n/locales/sr.json | 102 ++++++---- apps/mobile/src/i18n/locales/sv.json | 102 ++++++---- apps/mobile/src/i18n/locales/sw.json | 102 ++++++---- apps/mobile/src/i18n/locales/ta.json | 102 ++++++---- apps/mobile/src/i18n/locales/te.json | 102 ++++++---- apps/mobile/src/i18n/locales/th.json | 102 ++++++---- apps/mobile/src/i18n/locales/tr.json | 102 ++++++---- apps/mobile/src/i18n/locales/uk.json | 102 ++++++---- apps/mobile/src/i18n/locales/ur.json | 102 ++++++---- apps/mobile/src/i18n/locales/uz.json | 102 ++++++---- apps/mobile/src/i18n/locales/vi.json | 102 ++++++---- apps/mobile/src/i18n/locales/yo.json | 102 ++++++---- apps/mobile/src/i18n/locales/zh-Hans.json | 102 ++++++---- apps/mobile/src/i18n/locales/zh-Hant.json | 102 ++++++---- apps/mobile/src/i18n/locales/zu.json | 102 ++++++---- apps/mobile/src/lib/format.test.ts | 14 +- apps/mobile/src/lib/format.ts | 82 +++++++- apps/mobile/src/lib/formatjs-locale-data.ts | 191 ++++++++++++++++++ .../src/lib/hooks/use-available-models.ts | 7 +- .../src/lib/hooks/use-kiloclaw-billing.ts | 10 +- apps/mobile/src/lib/intl-cache.test.ts | 15 +- apps/mobile/src/lib/intl-cache.ts | 127 +++++++++++- .../lib/kilo-pass/subscription-card-state.ts | 6 +- apps/mobile/src/lib/model-cost.test.ts | 18 +- apps/mobile/src/lib/model-cost.ts | 20 +- apps/mobile/src/lib/model-picker-rows.ts | 3 +- apps/mobile/src/lib/platform-label.ts | 4 +- .../pr-review/diff/pr-review-truncation.ts | 5 +- .../src/lib/use-kiloclaw-billing.test.ts | 6 +- apps/mobile/src/lib/utils.ts | 4 +- .../voice-input/use-voice-input-actions.ts | 2 +- .../lib/voice-input/use-voice-input.test.ts | 4 +- .../voice-input/voice-input-language.test.ts | 32 ++- .../lib/voice-input/voice-input-language.ts | 20 +- pnpm-lock.yaml | 47 +++++ tools/i18n/check-catalogs.mjs | 6 +- 177 files changed, 5980 insertions(+), 4234 deletions(-) create mode 100644 apps/mobile/src/lib/formatjs-locale-data.ts diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 1b035ffe8c..6d31d513d8 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -26,7 +26,11 @@ "@expo-google-fonts/jetbrains-mono": "0.4.1", "@expo/app-integrity": "57.0.1", "@expo/react-native-action-sheet": "4.1.1", + "@formatjs/intl-durationformat": "^0.10.18", + "@formatjs/intl-listformat": "^8.3.13", + "@formatjs/intl-numberformat": "^9.4.0", "@formatjs/intl-relativetimeformat": "^12.3.13", + "@formatjs/intl-segmenter": "^12.2.13", "@kilocode/app-shared": "workspace:*", "@kilocode/cloud-agent-sdk": "workspace:*", "@kilocode/event-service": "workspace:*", diff --git a/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/billing.tsx b/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/billing.tsx index 51a8bbcf1e..bd57abfea4 100644 --- a/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/billing.tsx +++ b/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/billing.tsx @@ -23,7 +23,7 @@ import { useKiloClawBillingStatus } from '@/lib/hooks/use-kiloclaw-queries'; import { formatBillingDate, formatRemainingDays } from '@/lib/hooks/use-kiloclaw-billing'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { useTRPC } from '@/lib/trpc'; -import { cn } from '@/lib/utils'; +import { capitalize, cn } from '@/lib/utils'; function DetailRow({ label, @@ -132,8 +132,7 @@ function PlanDetails({ return ; } if (billing.subscription) { - const planName = - billing.subscription.plan.charAt(0).toUpperCase() + billing.subscription.plan.slice(1); + const planName = capitalize(billing.subscription.plan); const cancelling = billing.subscription.cancelAtPeriodEnd; return ( @@ -163,10 +162,7 @@ function PlanDetails({ ); } if (billing.earlybird) { - const daysText = - billing.earlybird.daysRemaining === 1 - ? t('kiloclaw.billing.oneDayLeft') - : t('kiloclaw.billing.daysLeft', { count: billing.earlybird.daysRemaining }); + const daysText = formatRemainingDays(billing.earlybird.daysRemaining); return ( diff --git a/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/settings/device-pairing.tsx b/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/settings/device-pairing.tsx index 6beb054369..c4fb5ec6c4 100644 --- a/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/settings/device-pairing.tsx +++ b/apps/mobile/src/app/(app)/kiloclaw/[instance-id]/settings/device-pairing.tsx @@ -30,6 +30,7 @@ import { useKiloClawPairing, } from '@/lib/hooks/use-kiloclaw-queries'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; +import { capitalize } from '@/lib/utils'; const CHANNEL_LABELS = { telegram: 'Telegram', @@ -38,6 +39,12 @@ const CHANNEL_LABELS = { github: 'GitHub', } satisfies Record; +function channelLabel(channel: string): string { + return Object.hasOwn(CHANNEL_LABELS, channel) + ? CHANNEL_LABELS[channel as keyof typeof CHANNEL_LABELS] + : capitalize(channel); +} + export default function DevicePairingScreen() { const { 'instance-id': instanceId } = useLocalSearchParams<{ 'instance-id': string }>(); const instanceContext = useInstanceContext(instanceId); @@ -128,9 +135,7 @@ export default function DevicePairingScreen() { const hasAnyRequests = channelRequests.length > 0 || deviceRequests.length > 0; function handleApproveChannel(channel: string, code: string) { - const label = Object.hasOwn(CHANNEL_LABELS, channel) - ? CHANNEL_LABELS[channel as keyof typeof CHANNEL_LABELS] - : channel.charAt(0).toUpperCase() + channel.slice(1); + const label = channelLabel(channel); Alert.alert( t('kiloclaw.devicePairing.approveTitle'), t('kiloclaw.devicePairing.approveMessage', { label, code }), @@ -212,11 +217,7 @@ export default function DevicePairingScreen() { )} - - {Object.hasOwn(CHANNEL_LABELS, request.channel) - ? CHANNEL_LABELS[request.channel as keyof typeof CHANNEL_LABELS] - : request.channel.charAt(0).toUpperCase() + request.channel.slice(1)} - + {channelLabel(request.channel)} diff --git a/apps/mobile/src/components/agents/attachment-chip-description.ts b/apps/mobile/src/components/agents/attachment-chip-description.ts index 20eeb11438..514c24b574 100644 --- a/apps/mobile/src/components/agents/attachment-chip-description.ts +++ b/apps/mobile/src/components/agents/attachment-chip-description.ts @@ -1,6 +1,5 @@ -import { formatFileSize } from '@kilocode/kilo-chat'; - import { i18n } from '@/i18n'; +import { formatFileSize, formatPercent } from '@/lib/format'; export type ChipStateInput = { filename: string; @@ -51,7 +50,7 @@ export function progressLabel(progress: number | null): string { if (progress >= 1) { return i18n.t('agentChat.attachmentPreview.uploaded'); } - return `${Math.round(progress * 100)}%`; + return formatPercent(progress * 100, i18n.language); } /** @@ -85,7 +84,7 @@ export function describeAttachmentChip(state: ChipStateInput): ChipDescription { return { filename, - sizeText: formatFileSize(size), + sizeText: formatFileSize(size, i18n.language), progressText, message, accessibilityLabel: diff --git a/apps/mobile/src/components/agents/child-session-section.tsx b/apps/mobile/src/components/agents/child-session-section.tsx index 0d996c2e59..7e2398fa7c 100644 --- a/apps/mobile/src/components/agents/child-session-section.tsx +++ b/apps/mobile/src/components/agents/child-session-section.tsx @@ -71,9 +71,9 @@ export function ChildSessionSection({ return ( { it('formats below one thousand, thousands, and millions', () => { expect(formatCompactTokens(0)).toBe('0'); expect(formatCompactTokens(999)).toBe('999'); - expect(formatCompactTokens(1000)).toBe('1.0K'); + expect(formatCompactTokens(1000)).toBe('1K'); expect(formatCompactTokens(32_418)).toBe('32.4K'); expect(formatCompactTokens(1500)).toBe('1.5K'); - expect(formatCompactTokens(995_000)).toBe('995.0K'); + expect(formatCompactTokens(995_000)).toBe('995K'); expect(formatCompactTokens(1_200_000)).toBe('1.2M'); }); }); diff --git a/apps/mobile/src/components/agents/context-usage-display.ts b/apps/mobile/src/components/agents/context-usage-display.ts index 306f626eae..ec6c073d48 100644 --- a/apps/mobile/src/components/agents/context-usage-display.ts +++ b/apps/mobile/src/components/agents/context-usage-display.ts @@ -1,6 +1,5 @@ import { i18n } from '@/i18n'; -import { formatCurrency } from '@/lib/format'; -import { numberFormat } from '@/lib/intl-cache'; +import { formatCurrency, formatNumber, formatPercent } from '@/lib/format'; import { type SessionContextInfo } from '@/lib/session-context-info'; import { formatSessionTotalCost } from './session-list-helpers'; @@ -8,8 +7,6 @@ import { formatSpokenCost } from './session-row-accessibility-label'; export type ContextTone = 'primary' | 'warning' | 'destructive' | 'neutral'; -const NUMBER_FORMAT = numberFormat('en-US', {}); - const WARNING_TONE_THRESHOLD = 75; const DESTRUCTIVE_TONE_THRESHOLD = 90; @@ -19,20 +16,17 @@ export function formatCompactTokens(tokens: number): string { if (!Number.isFinite(tokens) || tokens < 0) { return '0'; } - if (tokens < 1000) { - return String(Math.trunc(tokens)); - } - if (tokens < 1_000_000) { - return `${(tokens / 1000).toFixed(1)}K`; - } - return `${(tokens / 1_000_000).toFixed(1)}M`; + return formatNumber(Math.trunc(tokens), i18n.language, { + notation: 'compact', + maximumFractionDigits: 1, + }); } export function formatExactTokens(tokens: number): string { if (!Number.isFinite(tokens) || tokens < 0) { return '0'; } - return NUMBER_FORMAT.format(Math.trunc(tokens)); + return formatNumber(Math.trunc(tokens), i18n.language); } export function formatCost(cost: number): string { @@ -114,7 +108,7 @@ export function getHeaderPillContent({ const tone = getContextTone(info.percentage); const primary = info.percentage !== undefined - ? `${info.percentage}%` + ? formatPercent(info.percentage, i18n.language) : formatCompactTokens(info.contextTokens); const secondary = formatSessionTotalCost(totalCostMicrodollars); return { @@ -184,9 +178,9 @@ export function getContextSheetContent( windowUnavailable: false, windowUnavailableLabel: i18n.t('agentChat.contextUsage.windowUnavailable'), capacityKnown: true, - percentage: `${realPercentage}%`, + percentage: formatPercent(realPercentage, i18n.language), remainingTokens: formatExactTokens(remaining), - remainingPercentage: `${remainingPercentage}%`, + remainingPercentage: formatPercent(remainingPercentage, i18n.language), cost, tone, }; @@ -217,7 +211,7 @@ export function getMetricsAccessibilityLabel({ : `${i18n.t('agentChat.contextUsage.tokensUsage', { used: formatExactTokens(info.contextTokens), window: formatExactTokens(info.contextWindow), - percentage: info.percentage ?? 0, + percentage: formatPercent(info.percentage ?? 0, i18n.language), })}${costPart}.`; return `${body}${tapPart}`; } diff --git a/apps/mobile/src/components/agents/markdown-a11y.test.ts b/apps/mobile/src/components/agents/markdown-a11y.test.ts index 53d7ee90d0..7a35aeb965 100644 --- a/apps/mobile/src/components/agents/markdown-a11y.test.ts +++ b/apps/mobile/src/components/agents/markdown-a11y.test.ts @@ -43,7 +43,7 @@ describe('extractNodeText', () => { describe('linearRowLabel', () => { it('pairs each non-empty cell with its header', () => { - expect(linearRowLabel(['Name', 'Age'], ['John', '30'])).toBe('Name: John, Age: 30'); + expect(linearRowLabel(['Name', 'Age'], ['John', '30'])).toBe('Name: John and Age: 30'); }); it('skips empty cells', () => { @@ -51,7 +51,7 @@ describe('linearRowLabel', () => { }); it('keeps cells without a header as bare text', () => { - expect(linearRowLabel(['Name'], ['John', 'extra'])).toBe('Name: John, extra'); + expect(linearRowLabel(['Name'], ['John', 'extra'])).toBe('Name: John and extra'); }); it('handles fewer cells than headers', () => { diff --git a/apps/mobile/src/components/agents/markdown-a11y.ts b/apps/mobile/src/components/agents/markdown-a11y.ts index 332ae2f084..6837361ca8 100644 --- a/apps/mobile/src/components/agents/markdown-a11y.ts +++ b/apps/mobile/src/components/agents/markdown-a11y.ts @@ -3,6 +3,9 @@ * discriminant to narrow string/number leaves or generic prop values. */ import { isValidElement, type ReactNode } from 'react'; +import { i18n } from '@/i18n'; +import { formatList } from '@/lib/format'; + /** * Spoken text for a rendered markdown node. Strings and numbers are returned * verbatim; arrays are joined with a single space; elements use their explicit @@ -41,7 +44,7 @@ export function linearRowLabel(header: string[], cells: string[]): string { parts.push(headerText ? `${headerText}: ${cellText}` : cellText); } } - return parts.join(', '); + return formatList(parts, i18n.language); } /** diff --git a/apps/mobile/src/components/agents/markdown-palette.ts b/apps/mobile/src/components/agents/markdown-palette.ts index 4ca5af12bb..f3448e33b0 100644 --- a/apps/mobile/src/components/agents/markdown-palette.ts +++ b/apps/mobile/src/components/agents/markdown-palette.ts @@ -100,9 +100,9 @@ export function getMarkdownStyles(palette: MarkdownPalette): MarkedStyles { marginVertical: 4, }, blockquote: { - borderLeftWidth: 3, - borderLeftColor: borderColor, - paddingLeft: 12, + borderStartWidth: 3, + borderStartColor: borderColor, + paddingStart: 12, marginVertical: 4, }, // react-native-marked maps `list` onto each item's marker box, not a list diff --git a/apps/mobile/src/components/agents/markdown-table.test.ts b/apps/mobile/src/components/agents/markdown-table.test.ts index 4b996f8b0d..e598f4c58c 100644 --- a/apps/mobile/src/components/agents/markdown-table.test.ts +++ b/apps/mobile/src/components/agents/markdown-table.test.ts @@ -273,7 +273,7 @@ describe('MarkdownTable table semantics', () => { }); expect(accessibilityLabelOf(findFirst(element, isAccessibleLabelElement))).toBe( - 'Name: John, Age: 30' + 'Name: John and Age: 30' ); const cells = findAll(element, isTableCell); expect(cells).toHaveLength(2); diff --git a/apps/mobile/src/components/agents/markdown-table.tsx b/apps/mobile/src/components/agents/markdown-table.tsx index 9d84fa217a..1a2c2038f3 100644 --- a/apps/mobile/src/components/agents/markdown-table.tsx +++ b/apps/mobile/src/components/agents/markdown-table.tsx @@ -32,6 +32,7 @@ import { scheduleOnRN } from 'react-native-worklets'; import { moveA11yFocus } from '@/lib/a11y/announce'; import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { containsPressable, extractNodeText, linearRowLabel } from './markdown-a11y'; @@ -60,16 +61,20 @@ function getColumnCount(header: ReactNode[][], rows: ReactNode[][][]): number { return columnCount; } -function formatCount(count: number, singular: string, plural: string): string { - return `${count} ${count === 1 ? singular : plural}`; +function formatCount(count: number, key: 'columnCount' | 'rowCount'): string { + const unit = + key === 'columnCount' + ? i18n.t('agentChat.markdownTable.columnCount', { count }) + : i18n.t('agentChat.markdownTable.rowCount', { count }); + return `${formatNumber(count, i18n.language)} ${unit}`; } function formatTableSummary(columnCount: number, rowCount: number): string { - return `${formatCount(columnCount, i18n.t('agentChat.markdownTable.column'), i18n.t('agentChat.markdownTable.columns'))} · ${formatCount(rowCount, i18n.t('agentChat.markdownTable.row'), i18n.t('agentChat.markdownTable.rows'))}`; + return `${formatCount(columnCount, 'columnCount')} · ${formatCount(rowCount, 'rowCount')}`; } function formatChipAccessibilityLabel(columnCount: number, rowCount: number): string { - return `${i18n.t('agentChat.markdownTable.title')}, ${formatCount(columnCount, i18n.t('agentChat.markdownTable.column'), i18n.t('agentChat.markdownTable.columns'))}, ${formatCount(rowCount, i18n.t('agentChat.markdownTable.row'), i18n.t('agentChat.markdownTable.rows'))}, ${i18n.t('agentChat.markdownTable.opensFullScreen')}`; + return `${i18n.t('agentChat.markdownTable.title')}, ${formatCount(columnCount, 'columnCount')}, ${formatCount(rowCount, 'rowCount')}, ${i18n.t('agentChat.markdownTable.opensFullScreen')}`; } // Markdown tables never fit inside a chat bubble: a horizontal ScrollView in a diff --git a/apps/mobile/src/components/agents/message-details-content.ts b/apps/mobile/src/components/agents/message-details-content.ts index 5422a6f825..7f1296f7ee 100644 --- a/apps/mobile/src/components/agents/message-details-content.ts +++ b/apps/mobile/src/components/agents/message-details-content.ts @@ -25,11 +25,6 @@ type MessageDetailsContent = { canSelectText: boolean; }; -const SENT_TIME_FORMATTER = dateTimeFormat(undefined, { - dateStyle: 'medium', - timeStyle: 'short', -}); - /** * Pure projection of a StoredMessage into the details-sheet fields. * Unit-tested for happy / empty visibility rules; the sheet component @@ -156,5 +151,8 @@ export function formatMessageSentTime(created: number | undefined | null): strin if (Number.isNaN(date.getTime())) { return null; } - return SENT_TIME_FORMATTER.format(date); + return dateTimeFormat(i18n.language, { + dateStyle: 'medium', + timeStyle: 'short', + }).format(date); } diff --git a/apps/mobile/src/components/agents/model-selector.tsx b/apps/mobile/src/components/agents/model-selector.tsx index 85318eb148..0f38aa4ede 100644 --- a/apps/mobile/src/components/agents/model-selector.tsx +++ b/apps/mobile/src/components/agents/model-selector.tsx @@ -9,6 +9,7 @@ import { useTranslation } from 'react-i18next'; import { i18n } from '@/i18n'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; +import { formatList } from '@/lib/format'; import { BYOK_MODEL_LABEL, freeModelDataLabel, @@ -238,19 +239,20 @@ export function ModelPickerOptionRow({ const { t } = useTranslation(); const { free, byok, collectsData } = modelSelectorBadges(option); const costLabel = modelPickerCostLabel(option); - const accessibilityLabel = [ - option.provider?.name, - option.name, - option.displayId, - byok ? BYOK_MODEL_LABEL : undefined, - free && !byok ? freeModelFreeLabel() : undefined, - collectsData ? freeModelDataLabel() : undefined, - costLabel ?? undefined, - option.unavailable ? t('agentChat.modelSelector.unavailableState') : undefined, - selected ? t('agentChat.modelSelector.selectedState') : undefined, - ] - .filter(Boolean) - .join(', '); + const accessibilityLabel = formatList( + [ + option.provider?.name, + option.name, + option.displayId, + byok ? BYOK_MODEL_LABEL : undefined, + free && !byok ? freeModelFreeLabel() : undefined, + collectsData ? freeModelDataLabel() : undefined, + costLabel ?? undefined, + option.unavailable ? t('agentChat.modelSelector.unavailableState') : undefined, + selected ? t('agentChat.modelSelector.selectedState') : undefined, + ].filter(value => value !== undefined), + i18n.language + ); // The row is a NON-accessible container with two sibling controls: the // main select (row content) and the favorite star. A pressable nested diff --git a/apps/mobile/src/components/agents/part-renderer.tsx b/apps/mobile/src/components/agents/part-renderer.tsx index 64b262c577..a908ae39e3 100644 --- a/apps/mobile/src/components/agents/part-renderer.tsx +++ b/apps/mobile/src/components/agents/part-renderer.tsx @@ -3,6 +3,8 @@ import { View } from 'react-native'; import { useTranslation } from 'react-i18next'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { type SessionModelOption } from '@/lib/hooks/use-session-model-options'; @@ -93,10 +95,10 @@ export function PartRenderer({ // If OpenCode ever ships diff text on the part, render it through `DiffLine`. if (isPatchPart(part)) { const fileCount = part.files.length; - const summary = - fileCount === 1 - ? t('agentChat.partRenderer.updatedFile', { count: fileCount }) - : t('agentChat.partRenderer.updatedFiles', { count: fileCount }); + const summary = t('agentChat.partRenderer.updatedFileCount', { + count: fileCount, + displayCount: formatNumber(fileCount, i18n.language), + }); return ( diff --git a/apps/mobile/src/components/agents/permission-card.tsx b/apps/mobile/src/components/agents/permission-card.tsx index 98d00e3ca8..da084ae1d9 100644 --- a/apps/mobile/src/components/agents/permission-card.tsx +++ b/apps/mobile/src/components/agents/permission-card.tsx @@ -13,7 +13,7 @@ import { } from '@/components/agents/blocking-card-state'; import { announceForA11y, moveA11yFocus } from '@/lib/a11y/announce'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; -import { cn } from '@/lib/utils'; +import { capitalize, cn } from '@/lib/utils'; type PermissionCardProps = { permission: string; @@ -87,7 +87,7 @@ export function PermissionCard({ // Format permission name for display const permissionDisplay = permission .split('_') - .map(w => w.charAt(0).toUpperCase() + w.slice(1)) + .map(word => capitalize(word)) .join(' '); const title = formatBlockingCardTitle(t('agentChat.permissionCard.title'), pendingCount); diff --git a/apps/mobile/src/components/agents/preparation-group.tsx b/apps/mobile/src/components/agents/preparation-group.tsx index 75689b6c75..e614b90dfa 100644 --- a/apps/mobile/src/components/agents/preparation-group.tsx +++ b/apps/mobile/src/components/agents/preparation-group.tsx @@ -2,10 +2,11 @@ import { useEffect, useState } from 'react'; import { ActivityIndicator, Pressable, View } from 'react-native'; import { useTranslation } from 'react-i18next'; import { type TFunction } from 'i18next'; -import { AlertCircle, Check, ChevronRight, Terminal } from '@/components/ui/icons'; +import { AlertCircle, Check, ChevronDown, Terminal } from '@/components/ui/icons'; import { type PreparationAttempt, type PreparationStepSnapshot } from '@kilocode/cloud-agent-sdk'; import { Text } from '@/components/ui/text'; +import { DirectionalChevronRight } from '@/components/ui/directional-icons'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { MonoScrollBlock } from './mono-scroll-block'; @@ -29,11 +30,11 @@ export function PreparationGroup({ attempt }: { attempt: PreparationAttempt }) { accessibilityState={{ expanded }} className="flex-row items-center gap-2 px-3 py-3 active:bg-secondary" > - + {expanded ? ( + + ) : ( + + )} {title} @@ -102,6 +103,7 @@ function PreparationStepRow({ step }: { step: PreparationStepSnapshot }) { step.exitCode, ].some(value => value !== undefined && value !== ''); const label = setupCommandLabel(step, t) ?? step.label; + const DetailsIcon = expanded ? ChevronDown : DirectionalChevronRight; return ( {hasDetails ? ( - + ) : ( )} diff --git a/apps/mobile/src/components/agents/question-card.tsx b/apps/mobile/src/components/agents/question-card.tsx index d4bf270c36..b10a4ce96f 100644 --- a/apps/mobile/src/components/agents/question-card.tsx +++ b/apps/mobile/src/components/agents/question-card.tsx @@ -256,7 +256,7 @@ export function QuestionCard({ > diff --git a/apps/mobile/src/components/agents/read-tool-markdown.ts b/apps/mobile/src/components/agents/read-tool-markdown.ts index a837fbbb57..7e105a8ada 100644 --- a/apps/mobile/src/components/agents/read-tool-markdown.ts +++ b/apps/mobile/src/components/agents/read-tool-markdown.ts @@ -2,6 +2,7 @@ import { type ToolPart } from '@kilocode/cloud-agent-sdk'; import { z } from 'zod'; import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; export type ReadFileDisplay = { path: string; @@ -180,7 +181,7 @@ export function balanceCodeFences(text: string): string { } function formatGroupedNumber(n: number): string { - return String(n).replaceAll(/\B(?=(\d{3})+(?!\d))/g, ','); + return formatNumber(n, i18n.language); } function buildFooter(display: ReadFileDisplay): string | undefined { diff --git a/apps/mobile/src/components/agents/session-context-sheet.tsx b/apps/mobile/src/components/agents/session-context-sheet.tsx index c7909725cb..dcb93fa240 100644 --- a/apps/mobile/src/components/agents/session-context-sheet.tsx +++ b/apps/mobile/src/components/agents/session-context-sheet.tsx @@ -3,11 +3,14 @@ import { useMemo, useState } from 'react'; import { Pressable, ScrollView, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { useTranslation } from 'react-i18next'; -import { ChevronDown, ChevronRight } from '@/components/ui/icons'; +import { ChevronDown } from '@/components/ui/icons'; import { type StoredMessage } from '@kilocode/cloud-agent-sdk'; import { SheetHeader } from '@/components/sheet-header'; +import { DirectionalChevronRight } from '@/components/ui/directional-icons'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber, formatPercent } from '@/lib/format'; import { cn } from '@/lib/utils'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { type SessionContextInfo } from '@/lib/session-context-info'; @@ -198,7 +201,7 @@ export function SessionContextSheet({ {breakdown.totals.cacheRatePct === null ? '-' - : `${breakdown.totals.cacheRatePct.toFixed(1)}%`} + : formatPercent(breakdown.totals.cacheRatePct, i18n.language)} @@ -268,10 +271,10 @@ function ModelRow({ const { t } = useTranslation(); const name = friendlyModelName(model.providerID, model.modelID, modelOptions); const provider = resolveModelProviderName(model.providerID, model.modelID, modelOptions); - const stepsLabel = - model.steps === 1 - ? t('agentChat.contextUsage.stepsCountOne', { steps: model.steps }) - : t('agentChat.contextUsage.stepsCountMany', { steps: model.steps }); + const stepsLabel = t('agentChat.contextUsage.stepsCount', { + count: model.steps, + steps: formatNumber(model.steps, i18n.language), + }); return ( ) : ( - + )} diff --git a/apps/mobile/src/components/agents/session-list-helpers.ts b/apps/mobile/src/components/agents/session-list-helpers.ts index ffa507661a..48de666ccb 100644 --- a/apps/mobile/src/components/agents/session-list-helpers.ts +++ b/apps/mobile/src/components/agents/session-list-helpers.ts @@ -66,7 +66,7 @@ export function formatGitUrlProject(gitUrl: string): string { } export function formatMeta(timestamp: string): string { - return timeAgo(parseTimestamp(timestamp)).toUpperCase(); + return timeAgo(parseTimestamp(timestamp)).toLocaleUpperCase(i18n.language); } /** @@ -277,7 +277,7 @@ export function storedSessionEyebrowLabel(session: { created_on_platform: string; }): string { const repo = repoNameFromGitUrl(session.git_url); - return repo ? repo.toUpperCase() : platformLabel(session.created_on_platform); + return repo ? repo.toLocaleUpperCase(i18n.language) : platformLabel(session.created_on_platform); } /** @@ -291,7 +291,7 @@ export function remoteSessionEyebrowLabel(session: { createdOnPlatform?: string; }): string { const repo = repoNameFromGitUrl(session.gitUrl); - return repo ? repo.toUpperCase() : remoteAgentLabel(session.createdOnPlatform); + return repo ? repo.toLocaleUpperCase(i18n.language) : remoteAgentLabel(session.createdOnPlatform); } /** diff --git a/apps/mobile/src/components/agents/session-pagination-header-render-model.ts b/apps/mobile/src/components/agents/session-pagination-header-render-model.ts index bce3aac23c..6d436e75e2 100644 --- a/apps/mobile/src/components/agents/session-pagination-header-render-model.ts +++ b/apps/mobile/src/components/agents/session-pagination-header-render-model.ts @@ -1,14 +1,15 @@ import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { selectSessionMessageListHeaderState, type SessionMessageListHeaderStateInputs, } from '@/components/agents/session-message-list-state'; function omittedMessage(count: number): string { - if (count === 1) { - return i18n.t('agentChat.olderMessages.omittedOne'); - } - return i18n.t('agentChat.olderMessages.omittedMany', { count }); + return i18n.t('agentChat.olderMessages.omitted', { + count, + displayCount: formatNumber(count, i18n.language), + }); } export type SessionPaginationHeaderRenderModel = diff --git a/apps/mobile/src/components/agents/session-row-accessibility-label.test.ts b/apps/mobile/src/components/agents/session-row-accessibility-label.test.ts index 7d147b642c..e5abd527c3 100644 --- a/apps/mobile/src/components/agents/session-row-accessibility-label.test.ts +++ b/apps/mobile/src/components/agents/session-row-accessibility-label.test.ts @@ -104,7 +104,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'CLI', meta: null, }) - ).toBe('Fix login bug, needs input, CLI'); + ).toBe('Fix login bug, needs input, and CLI'); }); it('includes meta when the caller passes it (caller is responsible for omitting)', () => { @@ -120,7 +120,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'VSCODE', meta: '5 minutes ago', }) - ).toBe('Fix login bug, needs input, VSCODE, 5 minutes ago'); + ).toBe('Fix login bug, needs input, VSCODE, and 5 minutes ago'); }); }); @@ -134,7 +134,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'CLI', meta: '5 minutes ago', }) - ).toBe('Fix login bug, CLI, 5 minutes ago'); + ).toBe('Fix login bug, CLI, and 5 minutes ago'); }); it('produces "title, badge, meta" with "just now"', () => { @@ -145,7 +145,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'CLOUD AGENT', meta: 'just now', }) - ).toBe('New session, CLOUD AGENT, just now'); + ).toBe('New session, CLOUD AGENT, and just now'); }); it('produces "title, badge, meta" with a days-ago spoken form', () => { @@ -156,7 +156,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'SLACK', meta: '3 days ago', }) - ).toBe('Old session, SLACK, 3 days ago'); + ).toBe('Old session, SLACK, and 3 days ago'); }); }); @@ -171,7 +171,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'CLI', meta: null, }) - ).toBe('Live session, needs input, CLI'); + ).toBe('Live session, needs input, and CLI'); }); it('works with the LIVE fallback badge', () => { @@ -182,7 +182,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'LIVE', meta: null, }) - ).toBe('Live session, needs input, LIVE'); + ).toBe('Live session, needs input, and LIVE'); }); }); @@ -196,7 +196,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'CLI', meta: '2 hours ago', }) - ).toBe('Live session, CLI, 2 hours ago'); + ).toBe('Live session, CLI, and 2 hours ago'); }); }); @@ -210,7 +210,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'LIVE', meta: null, }) - ).toBe('Live session, LIVE'); + ).toBe('Live session and LIVE'); }); }); @@ -223,7 +223,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'B', meta: 'C', }) - ).toBe('A, needs input, B, C'); + ).toBe('A, needs input, B, and C'); }); it('preserves fixed order with needsInput false and no meta', () => { @@ -234,7 +234,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'B', meta: null, }) - ).toBe('A, B'); + ).toBe('A and B'); }); it('preserves fixed order with title and meta only (no badge, no needsInput)', () => { @@ -247,7 +247,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: '', meta: '1 day ago', }) - ).toBe('Orphan, 1 day ago'); + ).toBe('Orphan and 1 day ago'); }); }); @@ -263,7 +263,7 @@ describe('sessionRowAccessibilityLabel', () => { meta: '9 hours ago', platform: 'cloud-agent', }) - ).toBe('X, CLOUD, 9 hours ago, from CLOUD AGENT'); + ).toBe('X, CLOUD, 9 hours ago, and from CLOUD AGENT'); }); it('platform-badged row without repo: caller omits platform (label unchanged)', () => { @@ -276,7 +276,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'CLI', meta: 'cost 1 dollar 10 cents, 8 hours ago', }) - ).toBe('X, CLI, cost 1 dollar 10 cents, 8 hours ago'); + ).toBe('X, CLI, and cost 1 dollar 10 cents, 8 hours ago'); }); it('needs-input row: no platform segment', () => { @@ -287,7 +287,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'CLOUD', meta: null, }) - ).toBe('X, needs input, CLOUD'); + ).toBe('X, needs input, and CLOUD'); }); it('unmapped / absent platform: no segment appended', () => { @@ -299,7 +299,7 @@ describe('sessionRowAccessibilityLabel', () => { badge: 'GASTOWN', meta: '1 hour ago', }) - ).toBe('X, GASTOWN, 1 hour ago'); + ).toBe('X, GASTOWN, and 1 hour ago'); // Direct call with null/undefined also appends nothing. expect( sessionRowAccessibilityLabel({ @@ -309,7 +309,7 @@ describe('sessionRowAccessibilityLabel', () => { meta: '1 hour ago', platform: null, }) - ).toBe('X, GASTOWN, 1 hour ago'); + ).toBe('X, GASTOWN, and 1 hour ago'); expect( sessionRowAccessibilityLabel({ title: 'X', @@ -318,7 +318,7 @@ describe('sessionRowAccessibilityLabel', () => { meta: '1 hour ago', platform: undefined, }) - ).toBe('X, GASTOWN, 1 hour ago'); + ).toBe('X, GASTOWN, and 1 hour ago'); }); }); @@ -333,7 +333,7 @@ describe('sessionRowAccessibilityLabel', () => { needsInput: false, badge: 'CLI', }) - ).toBe('Fix login bug, CLI'); + ).toBe('Fix login bug and CLI'); }); }); }); diff --git a/apps/mobile/src/components/agents/session-row-accessibility-label.ts b/apps/mobile/src/components/agents/session-row-accessibility-label.ts index 761242114f..acdaea1039 100644 --- a/apps/mobile/src/components/agents/session-row-accessibility-label.ts +++ b/apps/mobile/src/components/agents/session-row-accessibility-label.ts @@ -1,4 +1,5 @@ import { i18n } from '@/i18n'; +import { formatList, formatNumber } from '@/lib/format'; import { platformLabel } from '@/lib/platform-label'; import { parseTimestamp, timeAgo } from '@/lib/utils'; @@ -50,18 +51,22 @@ export function formatSpokenCost(microdollars: number | null | undefined): strin return null; } if (cents < 100) { - return `${cents} ${i18n.t(cents === 1 ? 'agents.sessionRow.centOne' : 'agents.sessionRow.centOther')}`; + return `${formatNumber(cents, i18n.language)} ${i18n.t('agents.sessionRow.cent', { + count: cents, + })}`; } const dollars = Math.floor(cents / 100); const remainder = cents % 100; - const dollarPart = `${dollars} ${i18n.t( - dollars === 1 ? 'agents.sessionRow.dollarOne' : 'agents.sessionRow.dollarOther' + const dollarPart = `${formatNumber(dollars, i18n.language)} ${i18n.t( + 'agents.sessionRow.dollar', + { count: dollars } )}`; if (remainder === 0) { return dollarPart; } - return `${dollarPart} ${remainder} ${i18n.t( - remainder === 1 ? 'agents.sessionRow.centOne' : 'agents.sessionRow.centOther' + return `${dollarPart} ${formatNumber(remainder, i18n.language)} ${i18n.t( + 'agents.sessionRow.cent', + { count: remainder } )}`; } // Sub-half-cent: fractional cents, 2 dp, trim trailing zeros. @@ -70,8 +75,10 @@ export function formatSpokenCost(microdollars: number | null | undefined): strin if (rounded <= 0) { return null; } - const trimmed = String(rounded); - return `${trimmed} ${i18n.t('agents.sessionRow.centOther')}`; + return `${formatNumber(rounded, i18n.language, { maximumFractionDigits: 2 })} ${i18n.t( + 'agents.sessionRow.cent', + { count: rounded } + )}`; } type SessionRowAccessibilityLabelInputs = { @@ -142,5 +149,5 @@ export function sessionRowAccessibilityLabel({ if (platform) { parts.push(i18n.t('agents.sessionRow.fromPlatform', { platform: platformLabel(platform) })); } - return parts.join(', '); + return formatList(parts, i18n.language); } diff --git a/apps/mobile/src/components/agents/tool-card-display.test.ts b/apps/mobile/src/components/agents/tool-card-display.test.ts index 403c542292..f4d6d1e9e2 100644 --- a/apps/mobile/src/components/agents/tool-card-display.test.ts +++ b/apps/mobile/src/components/agents/tool-card-display.test.ts @@ -279,7 +279,7 @@ describe('getToolDisplay badge rules', () => { expect( getDisplay(makeToolPart('read', completed({ filePath: '/a/b.ts', offset: 10, limit: 25 }))) .badge - ).toBe('L10, 25 lines'); + ).toBe('L10 and 25 lines'); expect( getDisplay(makeToolPart('read', completed({ filePath: '/a/b.ts', offset: 10 }))).badge ).toBe('L10'); diff --git a/apps/mobile/src/components/agents/tool-card-display.ts b/apps/mobile/src/components/agents/tool-card-display.ts index 079df161ec..14c3e87596 100644 --- a/apps/mobile/src/components/agents/tool-card-display.ts +++ b/apps/mobile/src/components/agents/tool-card-display.ts @@ -2,6 +2,7 @@ import { type ToolPart } from '@kilocode/cloud-agent-sdk'; import { z } from 'zod'; import { i18n } from '@/i18n'; +import { formatList } from '@/lib/format'; import { getToolFileAttachments, getToolImageAttachments } from './tool-card-attachments'; import { getDirectoryName, @@ -74,7 +75,7 @@ export function getToolDisplay(part: ToolPart): ToolDisplay { if (limit !== undefined) { badgeParts.push(i18n.t('agentChat.toolCard.linesBadge', { count: limit })); } - const badge = badgeParts.length > 0 ? badgeParts.join(', ') : undefined; + const badge = badgeParts.length > 0 ? formatList(badgeParts, i18n.language) : undefined; return { title: i18n.t('agentChat.toolCard.toolRead'), diff --git a/apps/mobile/src/components/agents/working-indicator.tsx b/apps/mobile/src/components/agents/working-indicator.tsx index 42139f1178..745209acb5 100644 --- a/apps/mobile/src/components/agents/working-indicator.tsx +++ b/apps/mobile/src/components/agents/working-indicator.tsx @@ -5,6 +5,7 @@ import { type StoredMessage } from '@kilocode/cloud-agent-sdk'; import { Text } from '@/components/ui/text'; import { i18n } from '@/i18n'; +import { formatDuration } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { computeStatus } from './compute-status'; @@ -56,7 +57,7 @@ export function WorkingIndicator({ messages, isStreaming }: Readonly ); } - -function formatElapsed(seconds: number): string { - if (seconds < 60) { - return `${seconds}s`; - } - const m = Math.floor(seconds / 60); - const s = seconds % 60; - return `${m}m ${s}s`; -} diff --git a/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts b/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts index 4dee6810ee..83ca985b43 100644 --- a/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts +++ b/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts @@ -10,6 +10,7 @@ import { } from '@/components/ui/icons'; import { i18n } from '@/i18n'; +import { formatList } from '@/lib/format'; import { type PLATFORM_CAPABILITIES, type ReviewConfigData } from '@/lib/code-reviewer-config'; import { type ModelOption } from '@/lib/hooks/use-available-models'; import { capitalize } from '@/lib/utils'; @@ -57,7 +58,7 @@ export function buildOverviewRows({ title: i18n.t('codeReviewer.overview.focusAreas'), subtitle: data.focusAreas.length > 0 - ? data.focusAreas.map(capitalize).join(', ') + ? formatList(data.focusAreas.map(capitalize), i18n.language) : i18n.t('codeReviewer.overview.allAreas'), }, // Custom Instructions is deprecated in favour of REVIEW.md, so the row is diff --git a/apps/mobile/src/components/home/greeting.tsx b/apps/mobile/src/components/home/greeting.tsx index e60e3aa294..4c26c52e7b 100644 --- a/apps/mobile/src/components/home/greeting.tsx +++ b/apps/mobile/src/components/home/greeting.tsx @@ -1,22 +1,5 @@ import { i18n } from '@/i18n'; -function timeOfDay(hour: number): 'morning' | 'afternoon' | 'evening' { - if (hour < 12) { - return 'morning'; - } - if (hour < 17) { - return 'afternoon'; - } - return 'evening'; -} - -const GREETING_KEYS = { - morning: 'home.greetingMorning', - afternoon: 'home.greetingAfternoon', - evening: 'home.greetingEvening', -} as const; - export function buildTimedGreeting(): string { - const period = timeOfDay(new Date().getHours()); - return i18n.t(GREETING_KEYS[period]); + return i18n.t('login.welcome'); } diff --git a/apps/mobile/src/components/kilo-chat/conversation-list-groups.test.ts b/apps/mobile/src/components/kilo-chat/conversation-list-groups.test.ts index 987e3a1d21..4219a06b45 100644 --- a/apps/mobile/src/components/kilo-chat/conversation-list-groups.test.ts +++ b/apps/mobile/src/components/kilo-chat/conversation-list-groups.test.ts @@ -20,7 +20,7 @@ function conversation( describe('groupConversationsByActivity', () => { it('groups conversations by local activity day', () => { - const todayStart = new Date(2026, 4, 4).getTime(); + const todayStart = new Date(2026, 4, 7).getTime(); const nowMs = todayStart + 12 * 60 * 60 * 1000; const yesterday = todayStart - 60 * 60 * 1000; const thisWeek = todayStart - 3 * 24 * 60 * 60 * 1000; @@ -34,7 +34,8 @@ describe('groupConversationsByActivity', () => { conversation('this-week', thisWeek), conversation('older', older), ], - nowMs + nowMs, + 1 ) ).toEqual([ { label: 'Today', items: [conversation('today', nowMs)] }, @@ -45,14 +46,15 @@ describe('groupConversationsByActivity', () => { }); it('uses joined time when last activity is missing', () => { - const todayStart = new Date(2026, 4, 4).getTime(); + const todayStart = new Date(2026, 4, 7).getTime(); const nowMs = todayStart + 12 * 60 * 60 * 1000; const joinedAt = todayStart - 2 * 24 * 60 * 60 * 1000; expect( groupConversationsByActivity( [conversation('joined-only', nowMs, { lastActivityAt: null, joinedAt })], - nowMs + nowMs, + 1 ) ).toEqual([ { diff --git a/apps/mobile/src/components/kilo-chat/conversation-list-groups.ts b/apps/mobile/src/components/kilo-chat/conversation-list-groups.ts index 0b43b15d78..d229bda27c 100644 --- a/apps/mobile/src/components/kilo-chat/conversation-list-groups.ts +++ b/apps/mobile/src/components/kilo-chat/conversation-list-groups.ts @@ -34,12 +34,14 @@ function emptyConversationGroup(): ConversationListItem[] { export function groupConversationsByActivity( conversations: ConversationListItem[], - nowMs: number + nowMs: number, + firstWeekday = 1 ): ConversationListGroup[] { const now = new Date(nowMs); const todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime(); const yesterdayStart = todayStart - DAY_MS; - const weekStart = todayStart - 6 * DAY_MS; + const firstDay = firstWeekday - 1; + const weekStart = todayStart - ((now.getDay() - firstDay + 7) % 7) * DAY_MS; const groups = { today: emptyConversationGroup(), yesterday: emptyConversationGroup(), diff --git a/apps/mobile/src/components/kilo-chat/conversation-list-screen.tsx b/apps/mobile/src/components/kilo-chat/conversation-list-screen.tsx index 7a6353dfcf..1709c08bf3 100644 --- a/apps/mobile/src/components/kilo-chat/conversation-list-screen.tsx +++ b/apps/mobile/src/components/kilo-chat/conversation-list-screen.tsx @@ -1,6 +1,7 @@ import { FlashList } from '@shopify/flash-list'; import { useBotStatus, useEventServiceClient } from '@kilocode/kilo-chat-hooks'; import * as Haptics from 'expo-haptics'; +import { getCalendars } from 'expo-localization'; import { type Href, useRouter } from 'expo-router'; import { Plus, Settings2 } from '@/components/ui/icons'; import { useCallback, useMemo } from 'react'; @@ -91,7 +92,8 @@ function flattenConversationGroups( nowMs: number ): ConversationListEntry[] { const entries: ConversationListEntry[] = []; - for (const group of groupConversationsByActivity(conversations, nowMs)) { + const firstWeekday = getCalendars()[0].firstWeekday ?? 1; + for (const group of groupConversationsByActivity(conversations, nowMs, firstWeekday)) { entries.push({ kind: 'header', label: group.label }); for (const conversation of group.items) { entries.push({ kind: 'conversation', conversation }); diff --git a/apps/mobile/src/components/kilo-chat/message-attachment-preview-chip.tsx b/apps/mobile/src/components/kilo-chat/message-attachment-preview-chip.tsx index 4eb35596f2..fd5c01e592 100644 --- a/apps/mobile/src/components/kilo-chat/message-attachment-preview-chip.tsx +++ b/apps/mobile/src/components/kilo-chat/message-attachment-preview-chip.tsx @@ -2,10 +2,11 @@ import { ActivityIndicator, Pressable, View } from 'react-native'; import { useTranslation } from 'react-i18next'; import { AlertCircle, File as FileIcon, RotateCcw, X } from '@/components/ui/icons'; import { type QueuedAttachment } from '@kilocode/kilo-chat-hooks'; -import { formatFileSize } from '@kilocode/kilo-chat'; import { Image } from '@/components/ui/image'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatFileSize, formatPercent } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { cn } from '@/lib/utils'; import { isImageMimeType } from './message-attachment-state'; @@ -60,7 +61,9 @@ export function MessageAttachmentPreviewChip({ row, localUri, onRemove, onRetry {row.filename} - {uploading ? `${Math.round(row.progress * 100)}%` : formatFileSize(row.size)} + {uploading + ? formatPercent(row.progress * 100, i18n.language) + : formatFileSize(row.size, i18n.language)} @@ -70,7 +73,7 @@ export function MessageAttachmentPreviewChip({ row, localUri, onRemove, onRetry - {Math.round(row.progress * 100)}% + {formatPercent(row.progress * 100, i18n.language)} ) : null} diff --git a/apps/mobile/src/components/kilo-chat/message-attachment-state.ts b/apps/mobile/src/components/kilo-chat/message-attachment-state.ts index a7275b6601..d14ae9f22f 100644 --- a/apps/mobile/src/components/kilo-chat/message-attachment-state.ts +++ b/apps/mobile/src/components/kilo-chat/message-attachment-state.ts @@ -1,6 +1,5 @@ -import { formatFileSize } from '@kilocode/kilo-chat'; - import { i18n } from '@/i18n'; +import { formatFileSize } from '@/lib/format'; const MESSAGE_ATTACHMENT_MAX_COUNT = 10; @@ -91,7 +90,7 @@ export function buildAttachmentLimitToast(): string { export function buildAttachmentSizeRejectionToast(filename: string): string { return i18n.t('chat.attachment.sizeRejection', { filename, - limit: formatFileSize(MOBILE_ATTACHMENT_MAX_BYTES), + limit: formatFileSize(MOBILE_ATTACHMENT_MAX_BYTES, i18n.language), }); } diff --git a/apps/mobile/src/components/kilo-chat/message-attachment.tsx b/apps/mobile/src/components/kilo-chat/message-attachment.tsx index 14de12b45c..6701a5b610 100644 --- a/apps/mobile/src/components/kilo-chat/message-attachment.tsx +++ b/apps/mobile/src/components/kilo-chat/message-attachment.tsx @@ -1,5 +1,5 @@ import { useAttachmentUrl } from '@kilocode/kilo-chat-hooks'; -import { type AttachmentBlock, formatFileSize, type KiloChatClient } from '@kilocode/kilo-chat'; +import { type AttachmentBlock, type KiloChatClient } from '@kilocode/kilo-chat'; import { AlertCircle, File as FileIcon } from '@/components/ui/icons'; import { useState } from 'react'; import { ActivityIndicator, Pressable, View } from 'react-native'; @@ -9,6 +9,8 @@ import { toast } from 'sonner-native'; import { ImageViewerModal } from '@/components/image-viewer-modal'; import { Image } from '@/components/ui/image'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatFileSize } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { cn } from '@/lib/utils'; import { @@ -181,7 +183,7 @@ export function MessageAttachment({ client, conversationId, block, isFromMe }: P isFromMe ? 'text-primary-foreground opacity-70' : 'text-muted-foreground' )} > - {formatFileSize(block.size)} + {formatFileSize(block.size, i18n.language)} ) : null} diff --git a/apps/mobile/src/components/kilo-chat/message-bubble.tsx b/apps/mobile/src/components/kilo-chat/message-bubble.tsx index 417debfa0b..af856d2bb4 100644 --- a/apps/mobile/src/components/kilo-chat/message-bubble.tsx +++ b/apps/mobile/src/components/kilo-chat/message-bubble.tsx @@ -14,7 +14,9 @@ import Animated, { import { useTranslation } from 'react-i18next'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; +import { dateTimeFormat } from '@/lib/intl-cache'; import { cn } from '@/lib/utils'; import { buildMessageBubbleAccessibilityProps } from './message-bubble-a11y'; import { MessageBubbleContent } from './message-bubble-content'; @@ -45,7 +47,7 @@ type Props = { }; function formatTimestamp(ms: number): string { - return new Date(ms).toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' }); + return dateTimeFormat(i18n.language, { hour: 'numeric', minute: '2-digit' }).format(ms); } function MessageBubbleComponent({ diff --git a/apps/mobile/src/components/kilo-chat/typing-indicator-text.ts b/apps/mobile/src/components/kilo-chat/typing-indicator-text.ts index 56a73d9562..d82ea27aa4 100644 --- a/apps/mobile/src/components/kilo-chat/typing-indicator-text.ts +++ b/apps/mobile/src/components/kilo-chat/typing-indicator-text.ts @@ -1,4 +1,5 @@ import { i18n } from '@/i18n'; +import { formatList } from '@/lib/format'; export function formatTypingIndicatorText({ botName, @@ -16,7 +17,9 @@ export function formatTypingIndicatorText({ ? (botName ?? i18n.t('kiloclaw.title')) : i18n.t('chat.typingIndicator.someone') ); - return names.length === 1 - ? i18n.t('chat.typingIndicator.oneTyping', { name: names[0] }) - : i18n.t('chat.typingIndicator.manyTyping', { names: names.join(', ') }); + return i18n.t('chat.typingIndicator.typing', { + count: names.length, + name: names[0], + names: formatList(names, i18n.language), + }); } diff --git a/apps/mobile/src/components/kiloclaw/dashboard-parts.tsx b/apps/mobile/src/components/kiloclaw/dashboard-parts.tsx index ece065b361..2e6d7f22b1 100644 --- a/apps/mobile/src/components/kiloclaw/dashboard-parts.tsx +++ b/apps/mobile/src/components/kiloclaw/dashboard-parts.tsx @@ -7,22 +7,12 @@ import { QueryError } from '@/components/query-error'; import { Skeleton } from '@/components/ui/skeleton'; import { StatusDot } from '@/components/ui/status-dot'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; import { agentColor, toneColor } from '@/lib/agent-color'; +import { formatDuration } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { cn } from '@/lib/utils'; -function formatUptime(seconds: number): string { - if (seconds < 60) { - return `${String(seconds)}s`; - } - if (seconds < 3600) { - return `${String(Math.floor(seconds / 60))}m`; - } - const h = Math.floor(seconds / 3600); - const m = Math.floor((seconds % 3600) / 60); - return `${String(h)}h ${String(m)}m`; -} - type DashboardHeroProps = { name: string; status: string; @@ -34,7 +24,7 @@ export function DashboardHero({ name, status, uptime }: Readonly diff --git a/apps/mobile/src/components/kiloclaw/instance-card.tsx b/apps/mobile/src/components/kiloclaw/instance-card.tsx index 34b7756cb3..435aae12d4 100644 --- a/apps/mobile/src/components/kiloclaw/instance-card.tsx +++ b/apps/mobile/src/components/kiloclaw/instance-card.tsx @@ -9,6 +9,7 @@ import { BotAvatar } from '@/components/kiloclaw/bot-avatar'; import { StatusDot } from '@/components/ui/status-dot'; import { Text } from '@/components/ui/text'; import { agentColor } from '@/lib/agent-color'; +import { firstGrapheme, formatNumber } from '@/lib/format'; import { useKiloClawStatus, useKiloClawStatusQueryKey } from '@/lib/hooks/use-kiloclaw-queries'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { chatSandboxPath } from '@/lib/kilo-chat-routes'; @@ -39,12 +40,14 @@ type KiloClawCardProps = { type CachedStatus = NonNullable['data']>; function formatUnreadCount(count: number): string { - return count > 99 ? '99+' : String(count); + return count > 99 ? `${formatNumber(99, i18n.language)}+` : formatNumber(count, i18n.language); } function firstLetter(name: string): string { const trimmed = name.trim(); - return trimmed.length > 0 ? (trimmed[0]?.toUpperCase() ?? 'K') : 'K'; + return trimmed.length > 0 + ? firstGrapheme(trimmed, i18n.language).toLocaleUpperCase(i18n.language) + : 'K'; } function resolveAccessibilityLabel( @@ -59,9 +62,11 @@ function resolveAccessibilityLabel( }); } if (unreadCount > 0) { - return unreadCount === 1 - ? i18n.t('kiloclaw.instanceCard.openUnreadOne', { name: displayName, count: unreadCount }) - : i18n.t('kiloclaw.instanceCard.openUnreadMany', { name: displayName, count: unreadCount }); + return i18n.t('kiloclaw.instanceCard.openUnread', { + name: displayName, + count: unreadCount, + displayCount: formatNumber(unreadCount, i18n.language), + }); } return i18n.t('kiloclaw.instanceCard.open', { name: displayName }); } diff --git a/apps/mobile/src/components/kiloclaw/status-card.tsx b/apps/mobile/src/components/kiloclaw/status-card.tsx index 65f8cff006..0868e94140 100644 --- a/apps/mobile/src/components/kiloclaw/status-card.tsx +++ b/apps/mobile/src/components/kiloclaw/status-card.tsx @@ -14,6 +14,7 @@ import { useTranslation } from 'react-i18next'; import { KvRow } from '@/components/ui/kv-row'; import { Text } from '@/components/ui/text'; import { i18n } from '@/i18n'; +import { formatDuration, formatNumber } from '@/lib/format'; import { type GatewayState } from '@/lib/hooks/use-kiloclaw-queries'; type StatusCardProps = { @@ -28,18 +29,6 @@ type StatusCardProps = { activeModel?: string; }; -function formatUptime(seconds: number): string { - if (seconds < 60) { - return `${String(seconds)}s`; - } - if (seconds < 3600) { - return `${String(Math.floor(seconds / 60))}m`; - } - const h = Math.floor(seconds / 3600); - const m = Math.floor((seconds % 3600) / 60); - return `${String(h)}h ${String(m)}m`; -} - function formatLastExit( exitCode: number | null | undefined, exitSignal: string | null | undefined @@ -63,12 +52,14 @@ export function StatusCard({ activeModel, }: Readonly) { const { t } = useTranslation(); - const memoryLabel = memoryMb ? `${(memoryMb / 1024).toFixed(0)} GB` : '—'; - const cpuLabel = cpus ? `${String(cpus)} vCPU` : '—'; + const memoryLabel = memoryMb + ? `${formatNumber(memoryMb / 1024, i18n.language, { maximumFractionDigits: 0 })} GB` + : '—'; + const cpuLabel = cpus ? `${formatNumber(cpus, i18n.language)} vCPU` : '—'; const lastExitLabel = formatLastExit(lastExitCode, lastExitSignal); const gatewayLabel = gatewayState ?? '—'; - const uptimeLabel = uptime == null ? '—' : formatUptime(uptime); - const restartsLabel = restarts == null ? '—' : String(restarts); + const uptimeLabel = uptime == null ? '—' : formatDuration(uptime, i18n.language); + const restartsLabel = restarts == null ? '—' : formatNumber(restarts, i18n.language); const modelLabel = activeModel ?? '—'; return ( diff --git a/apps/mobile/src/components/organization/credit-activity-screen.tsx b/apps/mobile/src/components/organization/credit-activity-screen.tsx index cf5309711b..f1a2b3eb8e 100644 --- a/apps/mobile/src/components/organization/credit-activity-screen.tsx +++ b/apps/mobile/src/components/organization/credit-activity-screen.tsx @@ -22,11 +22,11 @@ import { } from '@/lib/hooks/use-organization-queries'; import { useOrganization } from '@/lib/organization-context'; import { reconcileOrgDeepLink } from '@/lib/org-deep-link'; -import { cn, firstNonEmpty, parseTimestamp } from '@/lib/utils'; +import { capitalize, cn, firstNonEmpty, parseTimestamp } from '@/lib/utils'; function humanizeCategory(category: string): string { const spaced = category.replaceAll('_', ' '); - return spaced.charAt(0).toUpperCase() + spaced.slice(1); + return capitalize(spaced); } function CreditRowSkeleton() { diff --git a/apps/mobile/src/components/organization/hub-screen.tsx b/apps/mobile/src/components/organization/hub-screen.tsx index efb879df77..140ecc9597 100644 --- a/apps/mobile/src/components/organization/hub-screen.tsx +++ b/apps/mobile/src/components/organization/hub-screen.tsx @@ -26,7 +26,7 @@ import { i18n } from '@/i18n'; import { agentColor, type Tint, toneColor } from '@/lib/agent-color'; import { WEB_BASE_URL } from '@/lib/config'; import { openExternalUrl } from '@/lib/external-link'; -import { formatMoney } from '@/lib/format'; +import { formatMoney, formatNumber } from '@/lib/format'; import { useOrganizationMutations } from '@/lib/hooks/use-organization-mutations'; import { isMoneyRole, @@ -114,8 +114,11 @@ export function OrganizationHubScreen() { // purchased capacity and can legitimately be zero. value={ org.requireSeats - ? `${org.seatCount.used} / ${org.seatCount.total}` - : String(org.seatCount.used) + ? `${formatNumber(org.seatCount.used, i18n.language)} / ${formatNumber( + org.seatCount.total, + i18n.language + )}` + : formatNumber(org.seatCount.used, i18n.language) } last /> diff --git a/apps/mobile/src/components/organization/invoices-screen.tsx b/apps/mobile/src/components/organization/invoices-screen.tsx index cfa2fd3dd4..78cd58a64c 100644 --- a/apps/mobile/src/components/organization/invoices-screen.tsx +++ b/apps/mobile/src/components/organization/invoices-screen.tsx @@ -25,7 +25,7 @@ import { selectInvoiceRowState, shareOrganizationInvoicePdf, } from '@/lib/organization-invoice-download'; -import { cn, firstNonEmpty } from '@/lib/utils'; +import { capitalize, cn, firstNonEmpty } from '@/lib/utils'; const STATUS_META = { paid: { @@ -56,7 +56,7 @@ function statusMeta(status: string) { return { label: i18n.t(meta.labelKey), pillClass: meta.pillClass, textClass: meta.textClass }; } return { - label: status.charAt(0).toUpperCase() + status.slice(1), + label: capitalize(status), pillClass: 'bg-muted', textClass: 'text-muted-foreground', }; diff --git a/apps/mobile/src/components/organization/low-balance-alert-sheet.tsx b/apps/mobile/src/components/organization/low-balance-alert-sheet.tsx index 9224f014e5..5279a05c18 100644 --- a/apps/mobile/src/components/organization/low-balance-alert-sheet.tsx +++ b/apps/mobile/src/components/organization/low-balance-alert-sheet.tsx @@ -18,6 +18,8 @@ import { Button } from '@/components/ui/button'; import { FormField } from '@/components/ui/form-field'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useCurrentUserId } from '@/lib/hooks/use-current-user-id'; import { useOrganizationMutations } from '@/lib/hooks/use-organization-mutations'; import { @@ -40,7 +42,9 @@ function LowBalanceAlertForm({ organizationId, settings }: LowBalanceAlertFormPr const [enabled, setEnabled] = useState(settings.minimum_balance !== undefined); const thresholdRef = useRef( - settings.minimum_balance != null ? String(settings.minimum_balance) : '' + settings.minimum_balance == null + ? '' + : formatNumber(settings.minimum_balance, i18n.language, { useGrouping: false }) ); // Default to the signer's own email when no alert email is stored yet, so // the field starts pre-filled with a real, savable value rather than a diff --git a/apps/mobile/src/components/organization/low-balance-alert-validators.ts b/apps/mobile/src/components/organization/low-balance-alert-validators.ts index 0b9ac9f418..b1cdb133db 100644 --- a/apps/mobile/src/components/organization/low-balance-alert-validators.ts +++ b/apps/mobile/src/components/organization/low-balance-alert-validators.ts @@ -1,10 +1,11 @@ import { i18n } from '@/i18n'; +import { parseLocalizedNumber } from '@/lib/format'; import { EMAIL_PATTERN } from '@/lib/utils'; export function parseThreshold(value: string): number | null { const trimmed = value.trim(); - const parsed = Number(trimmed); - if (trimmed === '' || !Number.isFinite(parsed) || parsed <= 0) { + const parsed = parseLocalizedNumber(trimmed, i18n.language); + if (trimmed === '' || parsed === null || parsed <= 0) { return null; } return parsed; diff --git a/apps/mobile/src/components/organization/member-limit-sheet.tsx b/apps/mobile/src/components/organization/member-limit-sheet.tsx index fab1c06fe9..f681166314 100644 --- a/apps/mobile/src/components/organization/member-limit-sheet.tsx +++ b/apps/mobile/src/components/organization/member-limit-sheet.tsx @@ -13,6 +13,8 @@ import { Button } from '@/components/ui/button'; import { FormField } from '@/components/ui/form-field'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useOrganizationMutations } from '@/lib/hooks/use-organization-mutations'; import { type ActiveOrgMember, @@ -37,7 +39,9 @@ function MemberLimitForm({ memberId, organizationId, member }: MemberLimitFormPr }); const currentLimit = member.dailyUsageLimitUsd; - const limitRef = useRef(currentLimit != null ? String(currentLimit) : ''); + const initialValue = + currentLimit == null ? '' : formatNumber(currentLimit, i18n.language, { useGrouping: false }); + const limitRef = useRef(initialValue); const [canSave, setCanSave] = useState(limitError(limitRef.current) == null); const onSaved = () => { @@ -64,7 +68,7 @@ function MemberLimitForm({ memberId, organizationId, member }: MemberLimitFormPr required placeholder={t('organization.memberLimit.noLimitPlaceholder')} keyboardType="decimal-pad" - defaultValue={currentLimit != null ? String(currentLimit) : undefined} + defaultValue={initialValue || undefined} validate={limitError} onChangeText={value => { limitRef.current = value; diff --git a/apps/mobile/src/components/organization/member-limit-validators.ts b/apps/mobile/src/components/organization/member-limit-validators.ts index bec43b32ae..ada19d7854 100644 --- a/apps/mobile/src/components/organization/member-limit-validators.ts +++ b/apps/mobile/src/components/organization/member-limit-validators.ts @@ -1,4 +1,5 @@ import { i18n } from '@/i18n'; +import { formatNumber, parseLocalizedNumber } from '@/lib/format'; const MAX_DAILY_LIMIT_USD = 2000; @@ -10,14 +11,16 @@ export function limitError(value: string): string | null { if (trimmed === '') { return i18n.t('organization.memberLimit.blankError'); } - const parsed = Number(trimmed); - if (!Number.isFinite(parsed) || parsed < 0 || parsed > MAX_DAILY_LIMIT_USD) { - return i18n.t('organization.memberLimit.rangeError', { max: MAX_DAILY_LIMIT_USD }); + const parsed = parseLocalizedNumber(trimmed, i18n.language); + if (parsed === null || parsed < 0 || parsed > MAX_DAILY_LIMIT_USD) { + return i18n.t('organization.memberLimit.rangeError', { + max: formatNumber(MAX_DAILY_LIMIT_USD, i18n.language), + }); } return null; } export function parseLimit(value: string): number | null { const trimmed = value.trim(); - return trimmed === '' ? null : Number(trimmed); + return trimmed === '' ? null : parseLocalizedNumber(trimmed, i18n.language); } diff --git a/apps/mobile/src/components/organization/members-screen.tsx b/apps/mobile/src/components/organization/members-screen.tsx index e147e1e6bb..ee400d95d0 100644 --- a/apps/mobile/src/components/organization/members-screen.tsx +++ b/apps/mobile/src/components/organization/members-screen.tsx @@ -15,6 +15,8 @@ import { Button } from '@/components/ui/button'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { useTabBarBottomPadding } from '@/components/tab-screen'; +import { i18n } from '@/i18n'; +import { collator } from '@/lib/intl-cache'; import { useCurrentUserId } from '@/lib/hooks/use-current-user-id'; import { type ActiveOrgMember, @@ -34,7 +36,10 @@ import { selectOrgListErrorView } from './org-list-error-view'; function sortActiveMembers(members: ActiveOrgMember[]): ActiveOrgMember[] { // eslint-disable-next-line unicorn/no-array-sort -- toSorted() is not available in Hermes return [...members].sort((a, b) => - firstNonEmpty(a.name, a.email).localeCompare(firstNonEmpty(b.name, b.email)) + collator(i18n.language, { sensitivity: 'base' }).compare( + firstNonEmpty(a.name, a.email), + firstNonEmpty(b.name, b.email) + ) ); } diff --git a/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts b/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts index 34306c43eb..b5ed94b4e5 100644 --- a/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts +++ b/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts @@ -1,5 +1,5 @@ import { i18n } from '@/i18n'; -import { formatDate } from '@/lib/format'; +import { formatDate, formatNumber } from '@/lib/format'; import { parseTimestamp } from '@/lib/utils'; /** @@ -65,10 +65,10 @@ const TIER_LABELS = { } satisfies Record<'tier_19' | 'tier_49' | 'tier_199', string>; function paidSeatsLabel(count: number): string { - return i18n.t( - count === 1 ? 'organization.kiloPass.paidSeatOne' : 'organization.kiloPass.paidSeatOther', - { count } - ); + return i18n.t('organization.kiloPass.paidSeat', { + count, + displayCount: formatNumber(count, i18n.language), + }); } function activeSubtitle(agreement: NonNullable): string { diff --git a/apps/mobile/src/components/organization/org-usage-stats.tsx b/apps/mobile/src/components/organization/org-usage-stats.tsx index 11f5e83f8a..e49d5eac57 100644 --- a/apps/mobile/src/components/organization/org-usage-stats.tsx +++ b/apps/mobile/src/components/organization/org-usage-stats.tsx @@ -7,7 +7,7 @@ import Animated, { FadeIn, FadeOut, LinearTransition } from 'react-native-reanim import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { i18n } from '@/i18n'; -import { formatMoney } from '@/lib/format'; +import { formatMoney, formatNumber } from '@/lib/format'; import { useOrgUsageStats } from '@/lib/hooks/use-organization-queries'; function StatTile({ label, value }: Readonly<{ label: string; value: string }>) { @@ -68,17 +68,17 @@ export function OrgUsageStats({ organizationId }: Readonly) /> diff --git a/apps/mobile/src/components/pr-review/diff/pr-diff-file-list-header.tsx b/apps/mobile/src/components/pr-review/diff/pr-diff-file-list-header.tsx index 0d4eaf546e..6695116faa 100644 --- a/apps/mobile/src/components/pr-review/diff/pr-diff-file-list-header.tsx +++ b/apps/mobile/src/components/pr-review/diff/pr-diff-file-list-header.tsx @@ -16,6 +16,8 @@ import { Pressable, View } from 'react-native'; import { RadioGroup, radioItemA11y } from '@/components/ui/radio-group'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useIsTablet } from '@/lib/hooks/use-is-tablet'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { type DiffViewMode } from '@/lib/pr-review/diff/pr-diff-list-items'; @@ -70,8 +72,8 @@ export function PrDiffFileListHeader({ {t('prReview.fileList.filesViewed', { - viewed: viewedCount.toLocaleString(), - total: totalListed.toLocaleString(), + viewed: formatNumber(viewedCount, i18n.language), + total: formatNumber(totalListed, i18n.language), })} {isTruncated ? ( diff --git a/apps/mobile/src/components/pr-review/diff/pr-diff-file-navigator.tsx b/apps/mobile/src/components/pr-review/diff/pr-diff-file-navigator.tsx index 38240bdff4..6af073f1e6 100644 --- a/apps/mobile/src/components/pr-review/diff/pr-diff-file-navigator.tsx +++ b/apps/mobile/src/components/pr-review/diff/pr-diff-file-navigator.tsx @@ -38,6 +38,8 @@ import { EmptyState } from '@/components/empty-state'; import { NavigatorFileRow } from '@/components/pr-review/diff/pr-diff-navigator-file-row'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { requestScrollToFile } from '@/lib/pr-review/file-navigator-bridge'; import { useFetchToCompletion, @@ -346,12 +348,12 @@ export function PrDiffFileNavigator({ {isTruncated ? t('prReview.fileNavigator.viewedOfListed', { - viewed: viewedCount.toLocaleString(), - total: files.length.toLocaleString(), + viewed: formatNumber(viewedCount, i18n.language), + total: formatNumber(files.length, i18n.language), }) : t('prReview.fileNavigator.viewedCount', { - viewed: viewedCount.toLocaleString(), - total: files.length.toLocaleString(), + viewed: formatNumber(viewedCount, i18n.language), + total: formatNumber(files.length, i18n.language), })} {fetchAll.isRunning ? ( @@ -359,8 +361,8 @@ export function PrDiffFileNavigator({ {t('prReview.fileNavigator.loadingFiles', { - loaded: fetchAll.loadedFiles.toLocaleString(), - total: changedFiles.toLocaleString(), + loaded: formatNumber(fetchAll.loadedFiles, i18n.language), + total: formatNumber(changedFiles, i18n.language), })} diff --git a/apps/mobile/src/components/pr-review/diff/pr-diff-file-rows.tsx b/apps/mobile/src/components/pr-review/diff/pr-diff-file-rows.tsx index 16f1bf17d7..108b7b221a 100644 --- a/apps/mobile/src/components/pr-review/diff/pr-diff-file-rows.tsx +++ b/apps/mobile/src/components/pr-review/diff/pr-diff-file-rows.tsx @@ -1,11 +1,12 @@ // File-level row components for the PR diff FlashList. import * as Haptics from 'expo-haptics'; -import { ChevronDown, ChevronRight, Eye, EyeOff, File, Link2 } from '@/components/ui/icons'; +import { ChevronDown, Eye, EyeOff, File, Link2 } from '@/components/ui/icons'; import { useTranslation } from 'react-i18next'; import { Pressable, View } from 'react-native'; import { fileStatusIcon, fileStatusLabel } from '@/components/pr-review/diff/pr-diff-file-status'; +import { DirectionalChevronRight } from '@/components/ui/directional-icons'; import { Text } from '@/components/ui/text'; import { openExternalUrl } from '@/lib/external-link'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; @@ -22,7 +23,7 @@ function ExpandChevron({ hasDiff, expanded }: { hasDiff: boolean; expanded: bool if (expanded) { return ; } - return ; + return ; } /** Fixed-size mark-viewed icon toggle — no path-text reflow on toggle (D9/AC6). */ diff --git a/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx b/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx index 50a8e9859d..b9ec8c267a 100644 --- a/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx +++ b/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx @@ -5,6 +5,8 @@ import { useTranslation } from 'react-i18next'; import { Pressable, View } from 'react-native'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { useDetailScreenBottomPadding } from '@/lib/screen-insets'; import { type ExpandSeparatorItem } from '@/lib/pr-review/diff/pr-diff-list-items'; @@ -197,10 +199,12 @@ export function PaginationRow({ {totalFiles ? t('prReview.hunkRows.loadingAllFilesOf', { - loaded: loadedFiles.toLocaleString(), - total: totalFiles.toLocaleString(), + loaded: formatNumber(loadedFiles, i18n.language), + total: formatNumber(totalFiles, i18n.language), }) - : t('prReview.hunkRows.loadingAllFiles', { loaded: loadedFiles.toLocaleString() })} + : t('prReview.hunkRows.loadingAllFiles', { + loaded: formatNumber(loadedFiles, i18n.language), + })} ); @@ -210,8 +214,8 @@ export function PaginationRow({ {t('prReview.hunkRows.loadedOfTotalFiles', { - loaded: loadedFiles.toLocaleString(), - total: totalFiles?.toLocaleString() ?? '?', + loaded: formatNumber(loadedFiles, i18n.language), + total: totalFiles == null ? '?' : formatNumber(totalFiles, i18n.language), })} ); } - let loadedLabel = - loadedFiles === 1 - ? t('prReview.hunkRows.fileLoaded', { count: loadedFiles.toLocaleString() }) - : t('prReview.hunkRows.filesLoaded', { count: loadedFiles.toLocaleString() }); + let loadedLabel = t('prReview.hunkRows.fileLoadedCount', { + count: loadedFiles, + displayCount: formatNumber(loadedFiles, i18n.language), + }); if (totalFiles) { - loadedLabel = - loadedFiles === 1 - ? t('prReview.hunkRows.fileLoadedOfTotal', { - count: loadedFiles.toLocaleString(), - total: totalFiles.toLocaleString(), - }) - : t('prReview.hunkRows.filesLoadedOfTotal', { - count: loadedFiles.toLocaleString(), - total: totalFiles.toLocaleString(), - }); + loadedLabel = t('prReview.hunkRows.fileLoadedOfTotalCount', { + count: loadedFiles, + displayCount: formatNumber(loadedFiles, i18n.language), + total: formatNumber(totalFiles, i18n.language), + }); } return ( diff --git a/apps/mobile/src/components/pr-review/discussion/discussion-thread.tsx b/apps/mobile/src/components/pr-review/discussion/discussion-thread.tsx index 15a9780315..dd1ddbcdd8 100644 --- a/apps/mobile/src/components/pr-review/discussion/discussion-thread.tsx +++ b/apps/mobile/src/components/pr-review/discussion/discussion-thread.tsx @@ -38,6 +38,8 @@ import { CommentRow } from '@/components/pr-review/discussion/comment-row'; import { ReplyInput } from '@/components/pr-review/discussion/reply-input'; import { ThreadDiffSnippet } from '@/components/pr-review/discussion/thread-diff-snippet'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { type ReviewComment, type ReviewReactionContent, @@ -246,9 +248,10 @@ function ThreadHeader({ ) : null} - {commentCount === 1 - ? t('prReview.discussion.oneComment') - : t('prReview.discussion.commentCount', { count: commentCount })} + {t('prReview.discussion.comment', { + count: commentCount, + displayCount: formatNumber(commentCount, i18n.language), + })} {relative ? t('prReview.discussion.startedRelative', { relative }) : ''} diff --git a/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx b/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx index b555efffea..05e766a001 100644 --- a/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx +++ b/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx @@ -174,10 +174,7 @@ function ReactionPill({ accessibilityLabel={t('prReview.discussion.reactionPill', { emoji, count, - countLabel: - count === 1 - ? t('prReview.discussion.reactionSingular') - : t('prReview.discussion.reactionPlural'), + countLabel: t('prReview.discussion.reaction', { count }), })} accessibilityState={{ selected: viewerHasReacted, disabled }} onPress={onPress} diff --git a/apps/mobile/src/components/pr-review/pr-review-overview-parts.tsx b/apps/mobile/src/components/pr-review/pr-review-overview-parts.tsx index 9ad32e07cd..aac5a97ded 100644 --- a/apps/mobile/src/components/pr-review/pr-review-overview-parts.tsx +++ b/apps/mobile/src/components/pr-review/pr-review-overview-parts.tsx @@ -11,6 +11,8 @@ import { View } from 'react-native'; import { Image } from '@/components/ui/image'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { cn } from '@/lib/utils'; @@ -170,26 +172,21 @@ export function PrCountsLine({ - {commits.toLocaleString()}{' '} - {commits === 1 - ? t('prReview.overview.commitSingular') - : t('prReview.overview.commitPlural')} + {formatNumber(commits, i18n.language)} {t('prReview.overview.commit', { count: commits })} - {changedFiles.toLocaleString()}{' '} - {changedFiles === 1 - ? t('prReview.overview.fileSingular') - : t('prReview.overview.filePlural')} + {formatNumber(changedFiles, i18n.language)}{' '} + {t('prReview.overview.file', { count: changedFiles })} - {additions.toLocaleString()} + {formatNumber(additions, i18n.language)} - / −{deletions.toLocaleString()} + / −{formatNumber(deletions, i18n.language)} @@ -197,7 +194,7 @@ export function PrCountsLine({ } function localizeNumber(n: number): string { - return n.toLocaleString(); + return formatNumber(n, i18n.language); } export function formatPrCounts(additions: number, deletions: number): string { diff --git a/apps/mobile/src/components/pr-review/pr-review-submit.tsx b/apps/mobile/src/components/pr-review/pr-review-submit.tsx index 168afa9632..ba9309d548 100644 --- a/apps/mobile/src/components/pr-review/pr-review-submit.tsx +++ b/apps/mobile/src/components/pr-review/pr-review-submit.tsx @@ -37,6 +37,7 @@ import { import { PrReviewReconnectNotice } from '@/components/pr-review/pr-review-reconnect-notice'; import { ensureTermsAcceptedOutcome } from '@/components/pr-review/discussion/reply-input'; import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { classifyPrReviewMutationError } from '@/lib/pr-review/classify-pr-review-query-state'; import { mutationErrorDisplay } from '@/lib/pr-review/mutation-error-display'; import { type PendingReviewItem, usePendingReview } from '@/lib/pr-review/pending-review-provider'; @@ -279,10 +280,8 @@ export function PrReviewSubmit(props: PrReviewSubmitProps) { - {queuedCount}{' '} - {queuedCount === 1 - ? t('prReview.submit.pendingCommentSingular') - : t('prReview.submit.pendingCommentPlural')} + {formatNumber(queuedCount, i18n.language)}{' '} + {t('prReview.submit.pendingComment', { count: queuedCount })} {queueHint} {/* Keyboard-open viewport is tight; keep the count, hide per-item diff --git a/apps/mobile/src/components/profile-credits-card.tsx b/apps/mobile/src/components/profile-credits-card.tsx index 5013109ae8..1c183b7451 100644 --- a/apps/mobile/src/components/profile-credits-card.tsx +++ b/apps/mobile/src/components/profile-credits-card.tsx @@ -73,7 +73,7 @@ export function CreditsCard({ enabled, orgs }: Readonly) { .map(b => b.expiry_date) .filter((d): d is string => d !== null) // eslint-disable-next-line unicorn/no-array-sort -- toSorted() is not available in Hermes - .sort((a, b) => a.localeCompare(b))[0]; + .sort((a, b) => parseTimestamp(a).getTime() - parseTimestamp(b).getTime())[0]; const selectedLabel = selectedOrgId ? (orgs?.find(o => o.organizationId === selectedOrgId)?.organizationName ?? diff --git a/apps/mobile/src/components/security-agent/automation-settings-screen.tsx b/apps/mobile/src/components/security-agent/automation-settings-screen.tsx index f46ff0d1d7..ac3ab42bad 100644 --- a/apps/mobile/src/components/security-agent/automation-settings-screen.tsx +++ b/apps/mobile/src/components/security-agent/automation-settings-screen.tsx @@ -12,6 +12,8 @@ import { ScreenHeader } from '@/components/screen-header'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { TabScreenScrollView } from '@/components/tab-screen'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useSecurityAgentSettingsRedirect, useSettingsBackGuard, @@ -144,9 +146,10 @@ export function AutomationSettingsScreen({ scope }: Readonly<{ scope: string }>) if (result.existingFindingsQueuedCount) { const count = result.existingFindingsQueuedCount; toast.success( - count === 1 - ? t('securityAgent.automation.queuedOne', { count }) - : t('securityAgent.automation.queuedMany', { count }) + t('securityAgent.automation.queued', { + count, + displayCount: formatNumber(count, i18n.language), + }) ); } }; diff --git a/apps/mobile/src/components/security-agent/dashboard-sections.tsx b/apps/mobile/src/components/security-agent/dashboard-sections.tsx index d67e7b0a1c..1d70f28d97 100644 --- a/apps/mobile/src/components/security-agent/dashboard-sections.tsx +++ b/apps/mobile/src/components/security-agent/dashboard-sections.tsx @@ -1,3 +1,4 @@ +/* eslint-disable max-lines -- The dashboard sections share one data contract and navigation scope. */ import { getAnalysisIncompleteCount } from '@kilocode/app-shared/security-agent'; import { type Href, useRouter } from 'expo-router'; import { FolderGit2, ShieldCheck } from '@/components/ui/icons'; @@ -10,6 +11,7 @@ import { EmptyState } from '@/components/empty-state'; import { KvRow } from '@/components/ui/kv-row'; import { Text } from '@/components/ui/text'; import { i18n } from '@/i18n'; +import { formatNumber, formatPercent } from '@/lib/format'; import { type useSecurityAgentDashboardStats } from '@/lib/hooks/use-security-agent'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { getSecurityAgentPath } from '@/lib/security-agent'; @@ -37,7 +39,7 @@ function repoTrailingLabel( return i18n.t('securityAgent.dashboard.findingsCount', { count: repo.needsAction }); } return repo.slaComplianceMeasured - ? `${repo.slaCompliancePercent}%` + ? formatPercent(repo.slaCompliancePercent, i18n.language) : i18n.t('securityAgent.dashboard.notMeasured'); } @@ -127,23 +129,26 @@ function PostureSection({ data, slaEnabled }: SectionProps) { 0 ? 'danger' : 'muted'} /> 0 ? 'danger' : 'muted'} /> 0 ? 'danger' : 'muted'} last @@ -162,25 +167,25 @@ function PostureSection({ data, slaEnabled }: SectionProps) { { warningDaysRef.current = text; - setSlaNotificationWarningDays(parseDayCount(text)); + const value = parseLocalizedNumber(text, i18n.language); + setSlaNotificationWarningDays( + value !== null && Number.isInteger(value) ? value : Number.NaN + ); }} /> {!isValidDayCount(slaNotificationWarningDays) && ( diff --git a/apps/mobile/src/components/security-agent/settings-overview-screen.tsx b/apps/mobile/src/components/security-agent/settings-overview-screen.tsx index 47e67d150b..d6fe66bbb4 100644 --- a/apps/mobile/src/components/security-agent/settings-overview-screen.tsx +++ b/apps/mobile/src/components/security-agent/settings-overview-screen.tsx @@ -13,6 +13,7 @@ import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { TabScreenScrollView } from '@/components/tab-screen'; import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useSecurityAgentCapability, useSecurityAgentConfig, @@ -125,15 +126,12 @@ export function SettingsOverviewScreen({ // keeps the CTA reachable. const showRepoCta = !data.isEnabled && capability.canManage && !hasEffectiveRepo && !repositoriesEmpty; - let repoCountLabel = t('securityAgent.settingsOverview.repositoriesSelected', { + let repoCountLabel = t('securityAgent.settingsOverview.repositoriesCount', { count: data.selectedRepositoryIds.length, + displayCount: formatNumber(data.selectedRepositoryIds.length, i18n.language), }); if (data.repositorySelectionMode === 'all') { repoCountLabel = t('securityAgent.settingsOverview.allRepositories'); - } else if (data.selectedRepositoryIds.length === 1) { - repoCountLabel = t('securityAgent.settingsOverview.repositorySelected', { - count: data.selectedRepositoryIds.length, - }); } const automationEnabledCount = [ data.autoAnalysisEnabled, diff --git a/apps/mobile/src/components/security-agent/sla-settings-screen.tsx b/apps/mobile/src/components/security-agent/sla-settings-screen.tsx index b7c9610733..3f189ed63e 100644 --- a/apps/mobile/src/components/security-agent/sla-settings-screen.tsx +++ b/apps/mobile/src/components/security-agent/sla-settings-screen.tsx @@ -1,8 +1,4 @@ -import { - getSettingsDirtyState, - isValidDayCount, - parseDayCount, -} from '@kilocode/app-shared/security-agent'; +import { getSettingsDirtyState, isValidDayCount } from '@kilocode/app-shared/security-agent'; import { useEffect, useRef, useState } from 'react'; import { TextInput, View } from 'react-native'; import { useTranslation } from 'react-i18next'; @@ -14,6 +10,8 @@ import { ScreenHeader } from '@/components/screen-header'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { TabScreenScrollView } from '@/components/tab-screen'; +import { i18n } from '@/i18n'; +import { formatNumber, parseLocalizedNumber } from '@/lib/format'; import { useSecurityAgentSettingsRedirect, useSettingsBackGuard, @@ -92,7 +90,7 @@ function SlaDayRow({ }>) { const colors = useThemeColors(); const { t } = useTranslation(); - const rawRef = useRef(String(initialValue)); + const rawRef = useRef(formatNumber(initialValue, i18n.language, { useGrouping: false })); const [days, setDays] = useState(initialValue); return ( @@ -127,7 +125,8 @@ function SlaDayRow({ placeholderTextColor={colors.mutedForeground} onChangeText={text => { rawRef.current = text; - const parsed = parseDayCount(text); + const value = parseLocalizedNumber(text, i18n.language); + const parsed = value !== null && Number.isInteger(value) ? value : Number.NaN; setDays(parsed); onChangeValue(parsed); }} diff --git a/apps/mobile/src/components/share/share-payload-preview.tsx b/apps/mobile/src/components/share/share-payload-preview.tsx index 53facb77cd..e10c8c8454 100644 --- a/apps/mobile/src/components/share/share-payload-preview.tsx +++ b/apps/mobile/src/components/share/share-payload-preview.tsx @@ -1,4 +1,3 @@ -import { formatFileSize } from '@kilocode/kilo-chat'; import { File as FileIcon } from '@/components/ui/icons'; import { ScrollView, View } from 'react-native'; import { useTranslation } from 'react-i18next'; @@ -6,6 +5,8 @@ import { useTranslation } from 'react-i18next'; import { Image } from '@/components/ui/image'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatFileSize } from '@/lib/format'; import { AGENT_ATTACHMENT_MAX_FILES } from '@/lib/agent-attachments/constants'; import { describeClassificationFailure } from '@/lib/agent-attachments/validate'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; @@ -62,7 +63,9 @@ function PreviewDocuments({ files }: { files: readonly AcceptedShareFile[] }) { {file.name} - {formatFileSize(file.measuredSize)} + + {formatFileSize(file.measuredSize, i18n.language)} + ))} diff --git a/apps/mobile/src/components/ui/form-field-a11y.test.ts b/apps/mobile/src/components/ui/form-field-a11y.test.ts index c2231b1093..60bb64ef59 100644 --- a/apps/mobile/src/components/ui/form-field-a11y.test.ts +++ b/apps/mobile/src/components/ui/form-field-a11y.test.ts @@ -8,18 +8,18 @@ describe('formFieldA11y', () => { }); it('appends "required" when the field is required', () => { - expect(formFieldA11y({ label: 'Email', required: true })).toBe('Email, required'); + expect(formFieldA11y({ label: 'Email', required: true })).toBe('Email and required'); }); it('appends the error phrase when an error is set', () => { expect(formFieldA11y({ label: 'Email', error: 'Enter a valid email' })).toBe( - 'Email, error: Enter a valid email' + 'Email and error: Enter a valid email' ); }); it('appends required then the error phrase when both are set', () => { expect(formFieldA11y({ label: 'Email', required: true, error: 'Enter a valid email' })).toBe( - 'Email, required, error: Enter a valid email' + 'Email, required, and error: Enter a valid email' ); }); @@ -27,6 +27,6 @@ describe('formFieldA11y', () => { expect(formFieldA11y({ label: 'Email', required: false })).toBe('Email'); expect(formFieldA11y({ label: 'Email', error: null })).toBe('Email'); expect(formFieldA11y({ label: 'Email', error: '' })).toBe('Email'); - expect(formFieldA11y({ label: 'Email', required: true, error: '' })).toBe('Email, required'); + expect(formFieldA11y({ label: 'Email', required: true, error: '' })).toBe('Email and required'); }); }); diff --git a/apps/mobile/src/components/ui/form-field-a11y.ts b/apps/mobile/src/components/ui/form-field-a11y.ts index adfec04205..a432405cf6 100644 --- a/apps/mobile/src/components/ui/form-field-a11y.ts +++ b/apps/mobile/src/components/ui/form-field-a11y.ts @@ -8,6 +8,7 @@ */ import { i18n } from '@/i18n'; +import { formatList } from '@/lib/format'; export function formFieldA11y({ label, @@ -25,5 +26,5 @@ export function formFieldA11y({ if (error) { parts.push(i18n.t('common.error', { error })); } - return parts.join(', '); + return formatList(parts, i18n.language); } diff --git a/apps/mobile/src/i18n/label-reference.test.ts b/apps/mobile/src/i18n/label-reference.test.ts index ef5696faf7..9cb0cf968b 100644 --- a/apps/mobile/src/i18n/label-reference.test.ts +++ b/apps/mobile/src/i18n/label-reference.test.ts @@ -3,6 +3,7 @@ import { describe, expect, it } from 'vitest'; import { CATALOG_LOADERS } from './catalogs'; import { SUPPORTED_LANGUAGES } from './languages'; +import ar from './locales/ar.json'; import en from './locales/en.json'; /** @@ -50,3 +51,12 @@ describe('label references', () => { } }); }); + +describe('plural fallback', () => { + it('uses a translated singular and the generic Arabic fallback', async () => { + await i18n.changeLanguage('ar'); + + expect(i18n.t('agents.sessionRow.cent', { count: 1 })).toBe(ar.agents.sessionRow.cent_one); + expect(i18n.t('agents.sessionRow.cent', { count: 2 })).toBe(ar.agents.sessionRow.cent); + }); +}); diff --git a/apps/mobile/src/i18n/language-rows.ts b/apps/mobile/src/i18n/language-rows.ts index 9316dd9394..f53c13a9ea 100644 --- a/apps/mobile/src/i18n/language-rows.ts +++ b/apps/mobile/src/i18n/language-rows.ts @@ -4,6 +4,7 @@ import { SUPPORTED_LANGUAGES, type SupportedLanguage, } from './languages'; +import { collator } from '@/lib/intl-cache'; export type LanguageRow = { tag: SupportedLanguage; @@ -28,9 +29,7 @@ const ALL_ROWS: readonly LanguageRow[] = SUPPORTED_LANGUAGES.map(tag => ({ tag, endonym: LANGUAGE_ENDONYMS[tag], englishName: LANGUAGE_ENGLISH_NAMES[tag], -})) - // eslint-disable-next-line unicorn/no-array-sort -- Hermes does not implement Array.prototype.toSorted; map already copies so nothing shared is mutated - .sort((a, b) => a.endonym.localeCompare(b.endonym)); +})); /** * The picker's rows: the active language first so it is visible without a @@ -39,15 +38,21 @@ const ALL_ROWS: readonly LanguageRow[] = SUPPORTED_LANGUAGES.map(tag => ({ * whether or not they read the interface's current language. */ export function languageRows(query: string, active?: SupportedLanguage): readonly LanguageRow[] { + const locale = active ?? 'en'; + const comparer = collator(locale, { sensitivity: 'base' }); const needle = foldForSearch(query.trim()); - const matches = needle - ? ALL_ROWS.filter( - row => - foldForSearch(row.endonym).includes(needle) || - foldForSearch(row.englishName).includes(needle) || - row.tag.toLocaleLowerCase().startsWith(needle) - ) - : ALL_ROWS; + const matches = ( + needle + ? ALL_ROWS.filter( + row => + foldForSearch(row.endonym).includes(needle) || + foldForSearch(row.englishName).includes(needle) || + row.tag.toLocaleLowerCase().startsWith(needle) + ) + : [...ALL_ROWS] + ) + // eslint-disable-next-line unicorn/no-array-sort -- Hermes lacks toSorted(); each branch creates a new array. + .sort((a, b) => comparer.compare(a.endonym, b.endonym)); const pinned = matches.find(row => row.tag === active); return pinned ? [pinned, ...matches.filter(row => row.tag !== active)] : matches; } diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index 98adababe4..cede5d8e44 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} van {{total}} lêers gelaai", "loadAllFiles": "Laai alle lêers", "loadAll": "Laai alles", - "fileLoaded": "{{count}} lêer gelaai", - "filesLoaded": "{{count}} lêers gelaai", - "fileLoadedOfTotal": "{{count}} lêer gelaai van {{total}}", - "filesLoadedOfTotal": "{{count}} lêers gelaai van {{total}}", + "fileLoadedCount_one": "{{displayCount}} lêer gelaai", + "fileLoadedCount": "{{displayCount}} lêers gelaai", + "fileLoadedCount_other": "{{displayCount}} lêers gelaai", + "fileLoadedOfTotalCount_one": "{{displayCount}} lêer gelaai van {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} lêers gelaai van {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} lêers gelaai van {{total}}", "filesStillLoading": "Lêers laai nog. Trek af om te verfris.", "goToOverview": "Gaan na Oorsig", "goToOverviewTab": "Gaan na Oorsig-oortjie" @@ -288,8 +290,9 @@ "resolved": "Opgelos", "outdated": "Uitgediend", "file": "Lêer", - "oneComment": "1 kommentaar", - "commentCount": "{{count}} kommentare", + "comment_one": "1 kommentaar", + "comment": "{{displayCount}} kommentare", + "comment_other": "{{displayCount}} kommentare", "startedRelative": " · begin {{relative}}", "couldNotLoadMore": "Kon nie meer kommentare laai nie.", "retryLoadingMore": "Probeer weer meer kommentare laai", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaksies", "addReaction": "Voeg reaksie by", "reactionPill": "{{emoji}}-reaksie, {{count}} {{countLabel}}", - "reactionSingular": "reaksie", - "reactionPlural": "reaksies", + "reaction_one": "reaksie", + "reaction": "reaksies", + "reaction_other": "reaksies", "commentActions": "Kommentaarakies", "reportContent": "Rapporteer inhoud", "reportUser": "Rapporteer gebruiker", @@ -452,8 +456,9 @@ "deletePendingMessage": "Hierdie kommentaar sal uit die resensietou verwyder word.", "delete": "Skrap", "summaryOptional": "Opsomming (opsioneel)", - "pendingCommentSingular": "hangende kommentaar", - "pendingCommentPlural": "hangende kommentare", + "pendingComment_one": "hangende kommentaar", + "pendingComment": "hangende kommentare", + "pendingComment_other": "hangende kommentare", "submitCountOfTotal": "Dien {{freshCount}} van {{totalCount}} kommentare in", "submitReview": "Dien resensie in", "partialPostedMessage": "{{freshCount}} kommentaar(s) geplaas. {{staleCount}} kommentaar(s) verwys na 'n ouer commit en het in jou tou gebly." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Oop · Resensie vereis", "stateOpen": "Oop", "unknownAuthor": "Onbekende outeur", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "lêer", - "filePlural": "lêers" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "lêer", + "file": "lêers", + "file_other": "lêers" }, "pendingComment": { "editOutdatedA11y": "Wysig uitgediende hangende kommentaar op {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Iemand", - "oneTyping": "{{name}} is besig om te tik...", - "manyTyping": "{{names}} is besig om te tik..." + "typing_one": "{{name}} is besig om te tik...", + "typing": "{{names}} is besig om te tik...", + "typing_other": "{{names}} is besig om te tik..." }, "botStatus": { "online": "Aanlyn", @@ -722,12 +730,10 @@ "couldNotLoad": "Kon nie faktureringsinligting laai nie", "manageOnWeb": "Bestuur Fakturering op die Web", "commitPlan": "Vastelê", - "daysLeft": "{{count}} dae oor", "earlybird": "Vroeëvoël", "finalCommitTermEndsOn": "Jou finale Commit-termyn eindig op {{date}}. Gaan voort as Standard teen {{price}}, of die gasheer eindig.", "freeTrial": "Gratis Proefperiode", "hostingEnds": "Gasheer eindig", - "oneDayLeft": "1 dag oor", "renews": "Hernu", "standardMonthToMonth": "Standard maand-tot-maand", "standardStartsOn": "Standard begin op {{date}} teen {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} benodig aandag: {{label}}", - "openUnreadOne": "Maak {{name}} oop, {{count}} ongeleesde boodskap", - "openUnreadMany": "Maak {{name}} oop, {{count}} ongeleesde boodskappe", + "openUnread_one": "Maak {{name}} oop, {{displayCount}} ongeleesde boodskap", + "openUnread": "Maak {{name}} oop, {{displayCount}} ongeleesde boodskappe", + "openUnread_other": "Maak {{name}} oop, {{displayCount}} ongeleesde boodskappe", "open": "Maak {{name}} oop", "openSettings": "Maak instellings oop vir {{name}}", "fixOnKiloAi": "Los op op kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Aktiveer auto-regstelling?", "enableAutoRemediationConfirmMessage": "Security Agent sal outomaties regstellings-PRs oopmaak vir geskikte uitbuitbare bevindings.", "enable": "Aktiveer", - "queuedOne": "{{count}} bestaande bevinding in die tou vir ontleding.", - "queuedMany": "{{count}} bestaande bevindings in die tou vir ontleding.", + "queued_one": "{{displayCount}} bestaande bevinding in die tou vir ontleding.", + "queued": "{{displayCount}} bestaande bevindings in die tou vir ontleding.", + "queued_other": "{{displayCount}} bestaande bevindings in die tou vir ontleding.", "severityCriticalOnly": "Slegs kritiek", "severityHighAndAbove": "Hoog en hoër", "severityMediumAndAbove": "Medium en hoër", @@ -1482,8 +1490,9 @@ "on": "Aan", "off": "Af", "allRepositories": "Alle bewaarplekke", - "repositorySelected": "{{count}} bewaarplek gekies", - "repositoriesSelected": "{{count}} bewaarplekke gekies", + "repositoriesCount_one": "{{displayCount}} bewaarplek gekies", + "repositoriesCount": "{{displayCount}} bewaarplekke gekies", + "repositoriesCount_other": "{{displayCount}} bewaarplekke gekies", "selectRepositories": "Kies bewaarplekke", "selectRepositoriesSubtitle": "Kies watter bewaarplekke Security Agent monitor", "repositories": "Bewaarplekke", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sessie verwyder", "needsInput": "benodig invoer", "fromPlatform": "vanaf {{platform}}", - "centOne": "sent", - "centOther": "sent", - "dollarOne": "dollar", - "dollarOther": "dollars" + "cent_one": "sent", + "cent": "sent", + "cent_other": "sent", + "dollar_one": "dollar", + "dollar": "dollars", + "dollar_other": "dollars" }, "githubInstall": { "couldNotOpenTitle": "Kon GitHub nie oopmaak nie", @@ -1817,8 +1828,9 @@ "discardFailed": "Kon die konsep nie weggooi nie. Probeer asseblief weer." }, "partRenderer": { - "updatedFile": "{{count}} lêer bygewerk", - "updatedFiles": "{{count}} lêers bygewerk" + "updatedFileCount_one": "{{displayCount}} lêer bygewerk", + "updatedFileCount": "{{displayCount}} lêers bygewerk", + "updatedFileCount_other": "{{displayCount}} lêers bygewerk" }, "toolPatch": { "operationAdded": "Bygevoeg", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Vroeër boodskappe gelaai", "retryHint": "Poging weer die laai van vroeër boodskappe vir hierdie sessie.", - "omittedOne": "Sommige vroeër items van hierdie sessie kon nie vertoon word nie.", - "omittedMany": "{{count}} vroeër items van hierdie sessie kon nie vertoon word nie.", + "omitted_one": "Sommige vroeër items van hierdie sessie kon nie vertoon word nie.", + "omitted": "{{displayCount}} vroeër items van hierdie sessie kon nie vertoon word nie.", + "omitted_other": "{{displayCount}} vroeër items van hierdie sessie kon nie vertoon word nie.", "couldNotLoad": "Kon nie vroeër boodskappe laai nie.", "unavailable": "Vroeër boodskappe is nie beskikbaar nie.", "tooLarge": "Vroeër boodskappe is te groot om te laai." @@ -2069,10 +2082,12 @@ "viewTable": "Bekyk tabel", "title": "Tabel", "close": "Maak tabel toe", - "column": "kolom", - "columns": "kolomme", - "row": "ry", - "rows": "rye", + "columnCount_one": "kolom", + "columnCount": "kolomme", + "columnCount_other": "kolomme", + "rowCount_one": "ry", + "rowCount": "rye", + "rowCount_other": "rye", "opensFullScreen": "maak volskerm oop" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "van {{window}} tekens", "tokens": "tekens", "tokensWithPercentage": "tekens ({{percentage}})", - "stepsCountOne": "{{steps}} stap", - "stepsCountMany": "{{steps}} stappe", + "stepsCount_one": "{{steps}} stap", + "stepsCount": "{{steps}} stappe", + "stepsCount_other": "{{steps}} stappe", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nuwe koderingstaak", "explore": "Verken", "seeAll": "Sien alles", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Goeie more", - "greetingAfternoon": "Goeie middag", - "greetingEvening": "Goeienaand" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Maak {{filename}} toe", @@ -2645,8 +2658,9 @@ "manageHint": "Maak Kilo Pass-bestuur op die web oop.", "notSubscribed": "Nie ingeteken nie", "overallocated": "Pass-toewysings oorskry betaalde sitplekke", - "paidSeatOne": "{{count}} betaalde sitplek", - "paidSeatOther": "{{count}} betaalde sitplekke", + "paidSeat_one": "{{displayCount}} betaalde sitplek", + "paidSeat": "{{displayCount}} betaalde sitplekke", + "paidSeat_other": "{{displayCount}} betaalde sitplekke", "paymentNeedsAttention": "Betaling benodig aandag", "paymentPending": "Betaling hangend", "processingBlocked": "Verwerking geblokkeer", diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 05c5f03a07..5273f764ee 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} ከ {{total}} ፋይሎች ተጭነዋል", "loadAllFiles": "ሁሉንም ፋይሎች ጫን", "loadAll": "ሁሉንም ጫን", - "fileLoaded": "{{count}} ፋይል ተጭኗል", - "filesLoaded": "{{count}} ፋይሎች ተጭነዋል", - "fileLoadedOfTotal": "{{count}} ፋይል ከ {{total}} ተጭኗል", - "filesLoadedOfTotal": "{{count}} ፋይሎች ከ {{total}} ተጭነዋል", + "fileLoadedCount_one": "{{displayCount}} ፋይል ተጭኗል", + "fileLoadedCount": "{{displayCount}} ፋይሎች ተጭነዋል", + "fileLoadedCount_other": "{{displayCount}} ፋይሎች ተጭነዋል", + "fileLoadedOfTotalCount_one": "{{displayCount}} ፋይል ከ {{total}} ተጭኗል", + "fileLoadedOfTotalCount": "{{displayCount}} ፋይሎች ከ {{total}} ተጭነዋል", + "fileLoadedOfTotalCount_other": "{{displayCount}} ፋይሎች ከ {{total}} ተጭነዋል", "filesStillLoading": "ፋይሎች አሁንም በመጫን ላይ ናቸው። ለማደስ ጎትት።", "goToOverview": "ወደ አጠቃላይ እይታ ሂድ", "goToOverviewTab": "ወደ አጠቃላይ እይታ ትር ሂድ" @@ -288,8 +290,9 @@ "resolved": "ተፍቷል", "outdated": "ያረጀ", "file": "ፋይል", - "oneComment": "1 አስተያየት", - "commentCount": "{{count}} አስተያየቶች", + "comment_one": "1 አስተያየት", + "comment": "{{displayCount}} አስተያየቶች", + "comment_other": "{{displayCount}} አስተያየቶች", "startedRelative": " · የተጀመረ {{relative}}", "couldNotLoadMore": "ተጨማሪ አስተያየቶችን መጫን አልተቻለም።", "retryLoadingMore": "ተጨማሪ አስተያየቶችን መጫን ደግሞ ሞክር", @@ -299,8 +302,9 @@ "reactionsTitle": "ምላሾች", "addReaction": "ምላሽ ጨምር", "reactionPill": "{{emoji}} ምላሽ፣ {{count}} {{countLabel}}", - "reactionSingular": "ምላሽ", - "reactionPlural": "ምላሾች", + "reaction_one": "ምላሽ", + "reaction": "ምላሾች", + "reaction_other": "ምላሾች", "commentActions": "የአስተያየት ተግባራት", "reportContent": "ይዘት ሪፖርት አድርግ", "reportUser": "ተጠቃሚ ሪፖርት አድርግ", @@ -452,8 +456,9 @@ "deletePendingMessage": "ይህ አስተያየት ከግምገማ ወረፋው ይወገዳል።", "delete": "ሰርዝ", "summaryOptional": "ማጠቃለያ (አማራጭ)", - "pendingCommentSingular": "በመጠባበቅ ላይ ያለ አስተያየት", - "pendingCommentPlural": "በመጠባበቅ ላይ ያሉ አስተያየቶች", + "pendingComment_one": "በመጠባበቅ ላይ ያለ አስተያየት", + "pendingComment": "በመጠባበቅ ላይ ያሉ አስተያየቶች", + "pendingComment_other": "በመጠባበቅ ላይ ያሉ አስተያየቶች", "submitCountOfTotal": "{{freshCount}} ከ {{totalCount}} አስተያየቶች አስገባ", "submitReview": "ግምገማ አስገባ", "partialPostedMessage": "{{freshCount}} አስተያየት(ዎች) ተለጥፈዋል። {{staleCount}} አስተያየት(ዎች) ወደ አሮጌ መግባት ይጠቁማሉ እና በወረፋዎ ውስጥ ቀሩ።" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ክፍት · ግምገማ ያስፈልጋል", "stateOpen": "ክፍት", "unknownAuthor": "ያልታወቀ ደራሲ", - "commitSingular": "መግባት", - "commitPlural": "መግባቶች", - "fileSingular": "ፋይል", - "filePlural": "ፋይሎች" + "commit_one": "መግባት", + "commit": "መግባቶች", + "commit_other": "መግባቶች", + "file_one": "ፋይል", + "file": "ፋይሎች", + "file_other": "ፋይሎች" }, "pendingComment": { "editOutdatedA11y": "በ{{location}} ላይ ያለ ያረጀ በመጠባበቅ ላይ ያለ አስተያየት አስተካክል", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "አንድ ሰው", - "oneTyping": "{{name}} እየተየበ ነው...", - "manyTyping": "{{names}} እየተየቡ ነው..." + "typing_one": "{{name}} እየተየበ ነው...", + "typing": "{{names}} እየተየቡ ነው...", + "typing_other": "{{names}} እየተየቡ ነው..." }, "botStatus": { "online": "በመስመር ላይ", @@ -722,12 +730,10 @@ "couldNotLoad": "የክፍያ መረጃ መጫን አልተቻለም", "manageOnWeb": "ክፍያን በድረ-ገጽ ያስተዳድሩ", "commitPlan": "አስተያይ", - "daysLeft": "{{count}} ቀናት ቀርተዋል", "earlybird": "የጥንታዊ ወፍ", "finalCommitTermEndsOn": "የመጨረሻው የCommit ጊዜዎ {{date}} ያበቃል። በ{{price}} እንደ መደበኛ ይቀጥሉ፣ ወይም ማስተናገጃው ያበቃል።", "freeTrial": "ነፃ ሙከራ", "hostingEnds": "ማስተናገጃው ያበቃል", - "oneDayLeft": "1 ቀን ቀርቷል", "renews": "ይታደሳል", "standardMonthToMonth": "መደበኛ በወር-ወር", "standardStartsOn": "መደበኛ {{date}} በ{{price}} ይጀምራል።", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ትኩረት ይፈልጋል፡ {{label}}", - "openUnreadOne": "{{name}}ን ይክፈቱ፣ {{count}} ያልተነበበ መልእክት", - "openUnreadMany": "{{name}}ን ይክፈቱ፣ {{count}} ያልተነበቡ መልእክቶች", + "openUnread_one": "{{name}}ን ይክፈቱ፣ {{displayCount}} ያልተነበበ መልእክት", + "openUnread": "{{name}}ን ይክፈቱ፣ {{displayCount}} ያልተነበቡ መልእክቶች", + "openUnread_other": "{{name}}ን ይክፈቱ፣ {{displayCount}} ያልተነበቡ መልእክቶች", "open": "{{name}}ን ይክፈቱ", "openSettings": "ለ{{name}} ቅንብሮችን ይክፈቱ", "fixOnKiloAi": "በkilo.ai ላይ ያስተካክሉ፡ {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ራስ-ሰር ማስተካከልን ያንቁ?", "enableAutoRemediationConfirmMessage": "የደህንነት ወኪል ለብቁ ሊበዘበዙ የሚችሉ ግኝቶች የማስተካከያ PRዎችን በራስ-ሰር ይከፍታል።", "enable": "አንቃ", - "queuedOne": "{{count}} የነበረ ግኝት ለመተንተን ተሰልፏል።", - "queuedMany": "{{count}} የነበሩ ግኝቶች ለመተንተን ተሰልፈዋል።", + "queued_one": "{{displayCount}} የነበረ ግኝት ለመተንተን ተሰልፏል።", + "queued": "{{displayCount}} የነበሩ ግኝቶች ለመተንተን ተሰልፈዋል።", + "queued_other": "{{displayCount}} የነበሩ ግኝቶች ለመተንተን ተሰልፈዋል።", "severityCriticalOnly": "ወሳኝ ብቻ", "severityHighAndAbove": "ከፍተኛ እና ከዚያ በላይ", "severityMediumAndAbove": "መካከለኛ እና ከዚያ በላይ", @@ -1482,8 +1490,9 @@ "on": "በርቷል", "off": "ጠፍቷል", "allRepositories": "ሁሉም ማከማቻዎች", - "repositorySelected": "{{count}} ማከማቻ ተመርጧል", - "repositoriesSelected": "{{count}} ማከማቻዎች ተመርጠዋል", + "repositoriesCount_one": "{{displayCount}} ማከማቻ ተመርጧል", + "repositoriesCount": "{{displayCount}} ማከማቻዎች ተመርጠዋል", + "repositoriesCount_other": "{{displayCount}} ማከማቻዎች ተመርጠዋል", "selectRepositories": "ማከማቻዎችን ይምረጡ", "selectRepositoriesSubtitle": "የደህንነት ወኪል የሚከታተላቸውን ማከማቻዎች ይምረጡ", "repositories": "ማከማቻዎች", @@ -1720,10 +1729,12 @@ "sessionDeleted": "ክፍለ ጊዜው ተሰርዟል", "needsInput": "ግብዓት ይፈልጋል", "fromPlatform": "ከ{{platform}}", - "centOne": "ሳንቲም", - "centOther": "ሳንቲሞች", - "dollarOne": "ዶላር", - "dollarOther": "ዶላሮች" + "cent_one": "ሳንቲም", + "cent": "ሳንቲሞች", + "cent_other": "ሳንቲሞች", + "dollar_one": "ዶላር", + "dollar": "ዶላሮች", + "dollar_other": "ዶላሮች" }, "githubInstall": { "couldNotOpenTitle": "GitHubን መክፈት አልተቻለም", @@ -1817,8 +1828,9 @@ "discardFailed": "ረቂቁን ማስወገድ አልተቻለም። እባክዎ እንደገና ይሞክሩ።" }, "partRenderer": { - "updatedFile": "{{count}} ፋይል ተዘምኗል", - "updatedFiles": "{{count}} ፋይሎች ተዘምነዋል" + "updatedFileCount_one": "{{displayCount}} ፋይል ተዘምኗል", + "updatedFileCount": "{{displayCount}} ፋይሎች ተዘምነዋል", + "updatedFileCount_other": "{{displayCount}} ፋይሎች ተዘምነዋል" }, "toolPatch": { "operationAdded": "ታክሏል", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "የቀደሙ መልእክቶች ተጭነዋል", "retryHint": "ለዚህ ክፍለ-ጊዜ የቀደሙ መልእክቶችን መጫንን እንደገና ይሞክራል።", - "omittedOne": "ከዚህ ክፍለ-ጊዜ የተወሰኑ ቀደምት ነገሮች ሊታዩ አልቻሉም።", - "omittedMany": "ከዚህ ክፍለ-ጊዜ {{count}} ቀደምት ነገሮች ሊታዩ አልቻሉም።", + "omitted_one": "ከዚህ ክፍለ-ጊዜ የተወሰኑ ቀደምት ነገሮች ሊታዩ አልቻሉም።", + "omitted": "ከዚህ ክፍለ-ጊዜ {{displayCount}} ቀደምት ነገሮች ሊታዩ አልቻሉም።", + "omitted_other": "ከዚህ ክፍለ-ጊዜ {{displayCount}} ቀደምት ነገሮች ሊታዩ አልቻሉም።", "couldNotLoad": "የቀደሙ መልእክቶችን መጫን አልተቻለም።", "unavailable": "የቀደሙ መልእክቶች አይገኙም።", "tooLarge": "የቀደሙ መልእክቶች ለመጫን በጣም ትልቅ ናቸው።" @@ -2069,10 +2082,12 @@ "viewTable": "ሰንጠረዥ ይመልከቱ", "title": "ሰንጠረዥ", "close": "ሰንጠረዥ ይዝጉ", - "column": "ዓምድ", - "columns": "ዓምዶች", - "row": "ረድፍ", - "rows": "ረድፎች", + "columnCount_one": "ዓምድ", + "columnCount": "ዓምዶች", + "columnCount_other": "ዓምዶች", + "rowCount_one": "ረድፍ", + "rowCount": "ረድፎች", + "rowCount_other": "ረድፎች", "opensFullScreen": "ሙሉ ስክሪን ይከፍታል" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ከ{{window}} ቶከኖች", "tokens": "ቶከኖች", "tokensWithPercentage": "ቶከኖች ({{percentage}})", - "stepsCountOne": "{{steps}} እርምጃ", - "stepsCountMany": "{{steps}} እርምጃዎች", + "stepsCount_one": "{{steps}} እርምጃ", + "stepsCount": "{{steps}} እርምጃዎች", + "stepsCount_other": "{{steps}} እርምጃዎች", "modelAccessibilityLabel": "{{name}}፣ {{provider}}፣ {{steps}}፣ {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "አዲስ የኮዲንግ ተግባር", "explore": "ይቃኙ", "seeAll": "ሁሉንም ይመልከቱ", - "kiloAgents": "Kilo Agents", - "greetingMorning": "እንደምን አደሩ", - "greetingAfternoon": "እንደምን ዋሉ", - "greetingEvening": "እንደምን አመሹ" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}}ን ይዝጉ", @@ -2645,8 +2658,9 @@ "manageHint": "የKilo Pass አስተዳደርን በድር ላይ ይከፍታል።", "notSubscribed": "አልተመዘገበም", "overallocated": "የፓስ ምደባዎች ከተከፈሉ መቀመጫዎች ይበልጣሉ", - "paidSeatOne": "{{count}} የተከፈለ መቀመጫ", - "paidSeatOther": "{{count}} የተከፈሉ መቀመጫዎች", + "paidSeat_one": "{{displayCount}} የተከፈለ መቀመጫ", + "paidSeat": "{{displayCount}} የተከፈሉ መቀመጫዎች", + "paidSeat_other": "{{displayCount}} የተከፈሉ መቀመጫዎች", "paymentNeedsAttention": "ክፍያ ትኩረት ይፈልጋል", "paymentPending": "ክፍያ በመጠባበቅ ላይ", "processingBlocked": "ሂደት ተከልክሏል", diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index c11f46ec3f..3678e07201 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "شخص ما", - "oneTyping": "{{name}} يكتب...", - "manyTyping": "{{names}} يكتبون..." + "typing_one": "{{name}} يكتب...", + "typing": "{{names}} يكتبون...", + "typing_other": "{{names}} يكتبون..." }, "botStatus": { "online": "متصل", @@ -350,12 +351,10 @@ "couldNotLoad": "تعذّر تحميل معلومات الفوترة", "manageOnWeb": "إدارة الفوترة على الويب", "commitPlan": "Commit", - "daysLeft": "متبقٍ {{count}} يوم", "earlybird": "Earlybird", "finalCommitTermEndsOn": "تنتهي فترة Commit الأخيرة في {{date}}. تابع كـ Standard مقابل {{price}}، أو سينتهي الاستضافة.", "freeTrial": "نسخة تجريبية مجانية", "hostingEnds": "تنتهي الاستضافة", - "oneDayLeft": "متبقٍ يوم واحد", "renews": "يتجدد", "standardMonthToMonth": "Standard شهريًا", "standardStartsOn": "يبدأ Standard في {{date}} مقابل {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} يحتاج إلى انتباه: {{label}}", "open": "فتح {{name}}", "openSettings": "فتح إعدادات {{name}}", - "openUnreadMany": "فتح {{name}}، {{count}} رسائل غير مقروءة", - "openUnreadOne": "فتح {{name}}، {{count}} رسالة غير مقروءة" + "openUnread": "فتح {{name}}، {{displayCount}} رسائل غير مقروءة", + "openUnread_other": "فتح {{name}}، {{displayCount}} رسائل غير مقروءة", + "openUnread_one": "فتح {{name}}، {{displayCount}} رسالة غير مقروءة" }, "list": { "createInstance": "إنشاء مثيل", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "وضع النتائج المؤهلة التي تم تحليلها بالفعل في قائمة الانتظار أيضًا. تظل طلبات السحب المكررة مكبوتة.", "minimumSeverity": "الحد الأدنى للخطورة", "permissionNote": "يمكن لمالكي المؤسسة ومديري الفوترة فقط تغيير هذه الإعدادات.", - "queuedMany": "تم وضع {{count}} نتيجة حالية في قائمة انتظار التحليل.", - "queuedOne": "تم وضع {{count}} نتيجة حالية واحدة في قائمة انتظار التحليل.", + "queued": "تم وضع {{displayCount}} نتيجة حالية في قائمة انتظار التحليل.", + "queued_other": "تم وضع {{displayCount}} نتيجة حالية في قائمة انتظار التحليل.", + "queued_one": "تم وضع {{displayCount}} نتيجة حالية واحدة في قائمة انتظار التحليل.", "requireApproval": "طلب الموافقة قبل المعالجة التلقائية", "requireApprovalSubtitle": "تنتظر المعالجة التلقائية موافقتك قبل فتح طلبات السحب.", "severityAll": "جميع درجات الخطورة", @@ -1270,8 +1271,9 @@ "off": "إيقاف", "on": "تشغيل", "repositories": "المستودعات", - "repositoriesSelected": "تم تحديد {{count}} مستودعًا", - "repositorySelected": "تم تحديد {{count}} مستودع واحد", + "repositoriesCount": "تم تحديد {{displayCount}} مستودعًا", + "repositoriesCount_other": "تم تحديد {{displayCount}} مستودعًا", + "repositoriesCount_one": "تم تحديد {{displayCount}} مستودع واحد", "securityAgent": "وكيل الأمان", "selectRepositories": "اختيار المستودعات", "selectRepositoriesSubtitle": "اختر المستودعات التي يراقبها وكيل الأمان", @@ -1348,10 +1350,12 @@ "sessionDeleted": "تم حذف الجلسة", "needsInput": "يتطلب إدخالًا", "fromPlatform": "من {{platform}}", - "centOne": "سنت", - "centOther": "سنتات", - "dollarOne": "دولار", - "dollarOther": "دولارات" + "cent_one": "سنت", + "cent": "سنتات", + "cent_other": "سنتات", + "dollar_one": "دولار", + "dollar": "دولارات", + "dollar_other": "دولارات" }, "githubInstall": { "couldNotOpenMessage": "تعذّر بدء إعداد تطبيق GitHub. يرجى المحاولة مرة أخرى.", @@ -1445,8 +1449,9 @@ "keepEditing": "متابعة التعديل" }, "partRenderer": { - "updatedFile": "تم تحديث {{count}} ملف", - "updatedFiles": "تم تحديث {{count}} ملفات" + "updatedFileCount_one": "تم تحديث {{displayCount}} ملف", + "updatedFileCount": "تم تحديث {{displayCount}} ملفات", + "updatedFileCount_other": "تم تحديث {{displayCount}} ملفات" }, "toolPatch": { "operationAdded": "مضاف", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "تم تحميل الرسائل السابقة", "retryHint": "يعيد محاولة تحميل الرسائل الأقدم لهذه الجلسة.", - "omittedOne": "تعذّر عرض عنصر أقدم من هذه الجلسة.", - "omittedMany": "تعذّر عرض {{count}} من العناصر الأقدم من هذه الجلسة.", + "omitted_one": "تعذّر عرض عنصر أقدم من هذه الجلسة.", + "omitted": "تعذّر عرض {{displayCount}} من العناصر الأقدم من هذه الجلسة.", + "omitted_other": "تعذّر عرض {{displayCount}} من العناصر الأقدم من هذه الجلسة.", "couldNotLoad": "تعذّر تحميل الرسائل الأقدم.", "unavailable": "الرسائل الأقدم غير متاحة.", "tooLarge": "الرسائل الأقدم أكبر من أن تُحمَّل." @@ -1697,10 +1703,12 @@ "viewTable": "عرض الجدول", "title": "جدول", "close": "إغلاق الجدول", - "column": "عمود", - "columns": "أعمدة", - "row": "صف", - "rows": "صفوف", + "columnCount_one": "عمود", + "columnCount": "أعمدة", + "columnCount_other": "أعمدة", + "rowCount_one": "صف", + "rowCount": "صفوف", + "rowCount_other": "صفوف", "opensFullScreen": "يفتح بملء الشاشة" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "من {{window}} رمز", "tokens": "رموز", "tokensWithPercentage": "رموز ({{percentage}})", - "stepsCountOne": "{{steps}} خطوة", - "stepsCountMany": "{{steps}} خطوات", + "stepsCount_one": "{{steps}} خطوة", + "stepsCount": "{{steps}} خطوات", + "stepsCount_other": "{{steps}} خطوات", "modelAccessibilityLabel": "{{name}}، {{provider}}، {{steps}}، {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "مهمة برمجة جديدة", "explore": "استكشف", "seeAll": "عرض الكل", - "kiloAgents": "وكلاء Kilo", - "greetingMorning": "صباح الخير", - "greetingAfternoon": "طاب يومك", - "greetingEvening": "مساء الخير" + "kiloAgents": "وكلاء Kilo" }, "imageViewer": { "close": "إغلاق {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "إغلاق التفاعلات", "collapseThread": "طي سلسلة المحادثة", "commentActions": "إجراءات التعليق", - "commentCount": "{{count}} تعليقًا", + "comment": "{{displayCount}} تعليقًا", + "comment_other": "{{displayCount}} تعليقًا", "couldNotLoad": "تعذّر تحميل المناقشة", "couldNotLoadMore": "تعذّر تحميل المزيد من التعليقات.", "couldNotReply": "تعذّر الرد.", @@ -2236,12 +2243,13 @@ "mutedUser": "تم كتم {{login}}", "noDiscussion": "لا توجد مناقشة بعد", "noDiscussionDescription": "لا توجد سلاسل مراجعة أو تعليقات محادثة على طلب السحب هذا.", - "oneComment": "تعليق واحد", + "comment_one": "تعليق واحد", "outdated": "قديم", "quotedDiffSnippet": "مقتطف فرق مقتبس", "reactionPill": "تفاعل {{emoji}}، {{count}} {{countLabel}}", - "reactionPlural": "تفاعلات", - "reactionSingular": "تفاعل", + "reaction": "تفاعلات", + "reaction_other": "تفاعلات", + "reaction_one": "تفاعل", "reactionsTitle": "التفاعلات", "reply": "رد", "replyBadRequest": "لا يمكن نشر هذا الرد. ربما تغيرت سلسلة المحادثة.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "توسيع {{count}} أسطر إضافية ({{start}}–{{end}})", "failedToLoadContext": "فشل تحميل السياق — اضغط لإعادة المحاولة", "failedToLoadMoreFiles": "فشل تحميل المزيد من الملفات — اضغط لإعادة المحاولة", - "fileLoaded": "تم تحميل {{count}} ملف", - "fileLoadedOfTotal": "تم تحميل {{count}} ملف من {{total}}", - "filesLoaded": "تم تحميل {{count}} ملفات", - "filesLoadedOfTotal": "تم تحميل {{count}} ملفات من {{total}}", + "fileLoadedCount_one": "تم تحميل {{displayCount}} ملف", + "fileLoadedOfTotalCount_one": "تم تحميل {{displayCount}} ملف من {{total}}", + "fileLoadedCount": "تم تحميل {{displayCount}} ملفات", + "fileLoadedCount_other": "تم تحميل {{displayCount}} ملفات", + "fileLoadedOfTotalCount": "تم تحميل {{displayCount}} ملفات من {{total}}", + "fileLoadedOfTotalCount_other": "تم تحميل {{displayCount}} ملفات من {{total}}", "filesStillLoading": "لا تزال الملفات قيد التحميل. اسحب للتحديث.", "goToOverview": "الانتقال إلى النظرة العامة", "goToOverviewTab": "الانتقال إلى تبويب النظرة العامة", @@ -2429,10 +2439,12 @@ "noFilesChanged": "لم تتغير أي ملفات", "noFilesChangedDescription": "لا توجد تغييرات ملفات في طلب السحب هذا.", "overview": { - "commitPlural": "إيداعات", - "commitSingular": "إيداع", - "filePlural": "ملفات", - "fileSingular": "ملف", + "commit": "إيداعات", + "commit_other": "إيداعات", + "commit_one": "إيداع", + "file": "ملفات", + "file_other": "ملفات", + "file_one": "ملف", "stateClosed": "مغلق", "stateDraft": "مسودة", "stateMerged": "تم الدمج", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "ستتم إزالة هذا التعليق من قائمة انتظار المراجعة.", "deletePendingTitle": "حذف التعليق المعلّق؟", "loadFailedTitle": "تعذّر تحميل إرسال المراجعة", - "pendingCommentPlural": "تعليقات معلّقة", - "pendingCommentSingular": "تعليق معلّق", + "pendingComment": "تعليقات معلّقة", + "pendingComment_other": "تعليقات معلّقة", + "pendingComment_one": "تعليق معلّق", "summaryOptional": "الملخص (اختياري)", "title": "إرسال المراجعة", "partialPostedMessage": "تم نشر {{freshCount}} تعليقًا. {{staleCount}} تعليقًا يشير إلى إيداع أقدم وبقي في قائمتك.", @@ -2632,8 +2645,9 @@ "manageHint": "يفتح إدارة Kilo Pass على الويب.", "notSubscribed": "غير مشترك", "overallocated": "تتجاوز تعيينات Kilo Pass المقاعد المدفوعة", - "paidSeatOne": "{{count}} مقعد مدفوع", - "paidSeatOther": "{{count}} مقاعد مدفوعة", + "paidSeat_one": "{{displayCount}} مقعد مدفوع", + "paidSeat": "{{displayCount}} مقاعد مدفوعة", + "paidSeat_other": "{{displayCount}} مقاعد مدفوعة", "paymentNeedsAttention": "الدفع يحتاج إلى انتباه", "paymentPending": "الدفع معلّق", "processingBlocked": "المعالجة محظورة", diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index 3eac3e5dce..6c280b2b7c 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} / {{total}} fayl yükləndi", "loadAllFiles": "Bütün faylları yüklə", "loadAll": "Hamısını yüklə", - "fileLoaded": "{{count}} fayl yükləndi", - "filesLoaded": "{{count}} fayl yükləndi", - "fileLoadedOfTotal": "{{total}} içindən {{count}} fayl yükləndi", - "filesLoadedOfTotal": "{{total}} içindən {{count}} fayl yükləndi", + "fileLoadedCount_one": "{{displayCount}} fayl yükləndi", + "fileLoadedCount": "{{displayCount}} fayl yükləndi", + "fileLoadedCount_other": "{{displayCount}} fayl yükləndi", + "fileLoadedOfTotalCount_one": "{{total}} içindən {{displayCount}} fayl yükləndi", + "fileLoadedOfTotalCount": "{{total}} içindən {{displayCount}} fayl yükləndi", + "fileLoadedOfTotalCount_other": "{{total}} içindən {{displayCount}} fayl yükləndi", "filesStillLoading": "Fayllar hələ də yüklənir. Yeniləmək üçün aşağı çəkin.", "goToOverview": "Xülasəyə get", "goToOverviewTab": "Xülasə sekmesine get" @@ -288,8 +290,9 @@ "resolved": "Həll olundu", "outdated": "Köhnəlmiş", "file": "Fayl", - "oneComment": "1 şərh", - "commentCount": "{{count}} şərh", + "comment_one": "1 şərh", + "comment": "{{displayCount}} şərh", + "comment_other": "{{displayCount}} şərh", "startedRelative": " · {{relative}} başladı", "couldNotLoadMore": "Daha çox şərh yüklənə bilmədi.", "retryLoadingMore": "Daha çox şərhin yüklənməsini yenidən cəhd edin", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaksiyalar", "addReaction": "Reaksiya əlavə et", "reactionPill": "{{emoji}} reaksiyası, {{count}} {{countLabel}}", - "reactionSingular": "reaksiya", - "reactionPlural": "reaksiya", + "reaction_one": "reaksiya", + "reaction": "reaksiya", + "reaction_other": "reaksiya", "commentActions": "Şərh hərəkətləri", "reportContent": "Məzmunu bildir", "reportUser": "İstifadəçini bildir", @@ -452,8 +456,9 @@ "deletePendingMessage": "Bu şərh icmal növbəsindən silinəcək.", "delete": "Sil", "summaryOptional": "Xülasə (isteğe bağlı)", - "pendingCommentSingular": "gözləyən şərh", - "pendingCommentPlural": "gözləyən şərhlər", + "pendingComment_one": "gözləyən şərh", + "pendingComment": "gözləyən şərhlər", + "pendingComment_other": "gözləyən şərhlər", "submitCountOfTotal": "{{totalCount}} şərhlərdən {{freshCount}} təqdim edin", "submitReview": "İcmalı təqdim et", "partialPostedMessage": "{{freshCount}} şərh yerləşdirildi. {{staleCount}} şərh köhnə commit-ə işarə edir və növbənizdə qaldı." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Açıq · İcmal tələb olunur", "stateOpen": "Açıq", "unknownAuthor": "Naməlum müəllif", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "fayl", - "filePlural": "fayl" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "fayl", + "file": "fayl", + "file_other": "fayl" }, "pendingComment": { "editOutdatedA11y": "{{location}} üzərində köhnəlmiş gözləyən şərhi redaktə et", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Kimsə", - "oneTyping": "{{name}} yazır...", - "manyTyping": "{{names}} yazırlar..." + "typing_one": "{{name}} yazır...", + "typing": "{{names}} yazırlar...", + "typing_other": "{{names}} yazırlar..." }, "botStatus": { "online": "Onlayn", @@ -722,12 +730,10 @@ "couldNotLoad": "Faktura məlumatı yüklənə bilmədi", "manageOnWeb": "Vebdə Fakturanı idarə et", "commitPlan": "Commit", - "daysLeft": "{{count}} gün qalıb", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Son Commit müddətiniz {{date}} tarixində bitir. {{price}} qiymətinə Standart olaraq davam edin, yoxsa hostinq sona çatır.", "freeTrial": "Pulsuz Sınaq", "hostingEnds": "Hostinq bitir", - "oneDayLeft": "1 gün qalıb", "renews": "Yenilənir", "standardMonthToMonth": "Standard aylıq", "standardStartsOn": "Standard {{date}} tarixində {{price}} qiyməti ilə başlayır.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} diqqət tələb edir: {{label}}", - "openUnreadOne": "{{name}} açın, {{count}} oxunmamış mesaj", - "openUnreadMany": "{{name}} açın, {{count}} oxunmamış mesaj", + "openUnread_one": "{{name}} açın, {{displayCount}} oxunmamış mesaj", + "openUnread": "{{name}} açın, {{displayCount}} oxunmamış mesaj", + "openUnread_other": "{{name}} açın, {{displayCount}} oxunmamış mesaj", "open": "{{name}} açın", "openSettings": "{{name}} üçün parametrləri aç", "fixOnKiloAi": "kilo.ai üzərində düzəlt: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Avtomatik düzəltmə aktiv edilsin?", "enableAutoRemediationConfirmMessage": "Security Agent uyğun istismar edilə bilən tapıntılar üçün avtomatik düzəltmə PR-ləri açacaq.", "enable": "Aktiv et", - "queuedOne": "{{count}} mövcud tapıntı analiz üçün növbəyə alındı.", - "queuedMany": "{{count}} mövcud tapıntı analiz üçün növbəyə alındı.", + "queued_one": "{{displayCount}} mövcud tapıntı analiz üçün növbəyə alındı.", + "queued": "{{displayCount}} mövcud tapıntı analiz üçün növbəyə alındı.", + "queued_other": "{{displayCount}} mövcud tapıntı analiz üçün növbəyə alındı.", "severityCriticalOnly": "Yalnız kritik", "severityHighAndAbove": "Yüksək və yuxarı", "severityMediumAndAbove": "Orta və yuxarı", @@ -1482,8 +1490,9 @@ "on": "Aktiv", "off": "Deaktiv", "allRepositories": "Bütün repozitoriyalar", - "repositorySelected": "{{count}} repozitoriya seçilib", - "repositoriesSelected": "{{count}} repozitoriya seçilib", + "repositoriesCount_one": "{{displayCount}} repozitoriya seçilib", + "repositoriesCount": "{{displayCount}} repozitoriya seçilib", + "repositoriesCount_other": "{{displayCount}} repozitoriya seçilib", "selectRepositories": "Repozitoriyaları seçin", "selectRepositoriesSubtitle": "Security Agent-in izlədiyi repozitoriyaları seçin", "repositories": "Repozitoriyalar", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sessiya silindi", "needsInput": "giriş tələb olunur", "fromPlatform": "{{platform}} platformasından", - "centOne": "sent", - "centOther": "sent", - "dollarOne": "dollar", - "dollarOther": "dollar" + "cent_one": "sent", + "cent": "sent", + "cent_other": "sent", + "dollar_one": "dollar", + "dollar": "dollar", + "dollar_other": "dollar" }, "githubInstall": { "couldNotOpenTitle": "GitHub açıla bilmədi", @@ -1817,8 +1828,9 @@ "discardFailed": "Qaralama ləğv edilə bilmədi. Zəhmət olmasa yenidən cəhd edin." }, "partRenderer": { - "updatedFile": "{{count}} fayl yeniləndi", - "updatedFiles": "{{count}} fayl yeniləndi" + "updatedFileCount_one": "{{displayCount}} fayl yeniləndi", + "updatedFileCount": "{{displayCount}} fayl yeniləndi", + "updatedFileCount_other": "{{displayCount}} fayl yeniləndi" }, "toolPatch": { "operationAdded": "Əlavə edildi", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Əvvəlki mesajlar yükləndi", "retryHint": "Bu sessiya üçün əvvəlki mesajların yüklənməsini yenidən cəhd edir.", - "omittedOne": "Bu sessiyadan bəzi əvvəlki maddələr göstərilə bilmədi.", - "omittedMany": "Bu sessiyadan {{count}} əvvəlki maddə göstərilə bilmədi.", + "omitted_one": "Bu sessiyadan bəzi əvvəlki maddələr göstərilə bilmədi.", + "omitted": "Bu sessiyadan {{displayCount}} əvvəlki maddə göstərilə bilmədi.", + "omitted_other": "Bu sessiyadan {{displayCount}} əvvəlki maddə göstərilə bilmədi.", "couldNotLoad": "Əvvəlki mesajlar yüklənə bilmədi.", "unavailable": "Əvvəlki mesajlar mövcud deyil.", "tooLarge": "Əvvəlki mesajlar yükləmək üçün çox böyükdür." @@ -2069,10 +2082,12 @@ "viewTable": "Cədvələ bax", "title": "Cədvəl", "close": "Cədvəli bağla", - "column": "sütun", - "columns": "sütun", - "row": "sətir", - "rows": "sətir", + "columnCount_one": "sütun", + "columnCount": "sütun", + "columnCount_other": "sütun", + "rowCount_one": "sətir", + "rowCount": "sətir", + "rowCount_other": "sətir", "opensFullScreen": "tam ekranı açır" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} tokendən", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} addım", - "stepsCountMany": "{{steps}} addım", + "stepsCount_one": "{{steps}} addım", + "stepsCount": "{{steps}} addım", + "stepsCount_other": "{{steps}} addım", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Yeni kodlaşdırma tapşırığı", "explore": "Kəşf et", "seeAll": "Hamısına bax", - "kiloAgents": "Kilo Agentlər", - "greetingMorning": "Sabahınız xeyir", - "greetingAfternoon": "Günortanız xeyir", - "greetingEvening": "Axşamınız xeyir" + "kiloAgents": "Kilo Agentlər" }, "imageViewer": { "close": "{{filename}} bağla", @@ -2645,8 +2658,9 @@ "manageHint": "Kilo Pass idarəetməsini internetdə açır.", "notSubscribed": "Abunə deyil", "overallocated": "Pass təyinatları ödənilmiş yerləri aşır", - "paidSeatOne": "{{count}} ödənilmiş yer", - "paidSeatOther": "{{count}} ödənilmiş yer", + "paidSeat_one": "{{displayCount}} ödənilmiş yer", + "paidSeat": "{{displayCount}} ödənilmiş yer", + "paidSeat_other": "{{displayCount}} ödənilmiş yer", "paymentNeedsAttention": "Ödəniş diqqət tələb edir", "paymentPending": "Ödəniş gözləyir", "processingBlocked": "Emal bloklanıb", diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index e671cb850e..027bdec5c7 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Загружана {{loaded}} з {{total}} файлаў", "loadAllFiles": "Загрузіць усе файлы", "loadAll": "Загрузіць усё", - "fileLoaded": "Загружаны {{count}} файл", - "filesLoaded": "Загружана {{count}} файлаў", - "fileLoadedOfTotal": "Загружаны {{count}} файл з {{total}}", - "filesLoadedOfTotal": "Загружана {{count}} файлаў з {{total}}", + "fileLoadedCount_one": "Загружаны {{displayCount}} файл", + "fileLoadedCount": "Загружана {{displayCount}} файлаў", + "fileLoadedCount_other": "Загружана {{displayCount}} файлаў", + "fileLoadedOfTotalCount_one": "Загружаны {{displayCount}} файл з {{total}}", + "fileLoadedOfTotalCount": "Загружана {{displayCount}} файлаў з {{total}}", + "fileLoadedOfTotalCount_other": "Загружана {{displayCount}} файлаў з {{total}}", "filesStillLoading": "Файлы яшчэ загружаюцца. Сцягніце ўніз, каб абнавіць.", "goToOverview": "Перайсці да агляду", "goToOverviewTab": "Перайсці да ўкладкі «Агляд»" @@ -288,8 +290,9 @@ "resolved": "Вырашана", "outdated": "Састарэла", "file": "Файл", - "oneComment": "1 каментар", - "commentCount": "{{count}} каментароў", + "comment_one": "1 каментар", + "comment": "{{displayCount}} каментароў", + "comment_other": "{{displayCount}} каментароў", "startedRelative": " · пачата {{relative}}", "couldNotLoadMore": "Не атрымалася загрузіць больш каментароў.", "retryLoadingMore": "Паўтарыць загрузку больш каментароў", @@ -299,8 +302,9 @@ "reactionsTitle": "Рэакцыі", "addReaction": "Дадаць рэакцыю", "reactionPill": "{{emoji}} рэакцыя, {{count}} {{countLabel}}", - "reactionSingular": "рэакцыя", - "reactionPlural": "рэакцыі", + "reaction_one": "рэакцыя", + "reaction": "рэакцыі", + "reaction_other": "рэакцыі", "commentActions": "Дзеянні з каментаром", "reportContent": "Паскардзіцца на змесціва", "reportUser": "Паскардзіцца на карыстальніка", @@ -452,8 +456,9 @@ "deletePendingMessage": "Гэты каментар будзе выдалены з чаргі рэцэнзіі.", "delete": "Выдаліць", "summaryOptional": "Рэзюмэ (неабавязкова)", - "pendingCommentSingular": "чакаючы каментар", - "pendingCommentPlural": "чакаючыя каментары", + "pendingComment_one": "чакаючы каментар", + "pendingComment": "чакаючыя каментары", + "pendingComment_other": "чакаючыя каментары", "submitCountOfTotal": "Адправіць {{freshCount}} з {{totalCount}} каментароў", "submitReview": "Адправіць рэцэнзію", "partialPostedMessage": "Адпраўлена {{freshCount}} каментар(аў). {{staleCount}} каментар(аў) адносяцца да старэйшага каміта і засталіся ў вашай чарзе." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Адкрыты · Патрабуецца рэцэнзія", "stateOpen": "Адкрыты", "unknownAuthor": "Невядомы аўтар", - "commitSingular": "каміт", - "commitPlural": "каміты", - "fileSingular": "файл", - "filePlural": "файлы" + "commit_one": "каміт", + "commit": "каміты", + "commit_other": "каміты", + "file_one": "файл", + "file": "файлы", + "file_other": "файлы" }, "pendingComment": { "editOutdatedA11y": "Рэдагаваць састарэлы чакаючы каментар на {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Нехта", - "oneTyping": "{{name}} друкуе...", - "manyTyping": "{{names}} друкуюць..." + "typing_one": "{{name}} друкуе...", + "typing": "{{names}} друкуюць...", + "typing_other": "{{names}} друкуюць..." }, "botStatus": { "online": "У сетцы", @@ -722,12 +730,10 @@ "couldNotLoad": "Не атрымалася загрузіць інфармацыю аб аплаце", "manageOnWeb": "Кіраваць аплатай у вэб-версіі", "commitPlan": "Commit", - "daysLeft": "Засталося {{count}} дз.", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Ваш апошні тэрмін Commit сканчаецца {{date}}. Працягніце як Standard за {{price}}, інакш хасцінг завершыцца.", "freeTrial": "Бясплатная пробная версія", "hostingEnds": "Хасцінг сканчаецца", - "oneDayLeft": "Застаўся 1 дзень", "renews": "Аднаўляецца", "standardMonthToMonth": "Standard па месяцах", "standardStartsOn": "Standard пачынаецца {{date}} па цане {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} патрабуе ўвагі: {{label}}", - "openUnreadOne": "Адкрыць {{name}}, {{count}} непрачытанае паведамленне", - "openUnreadMany": "Адкрыць {{name}}, {{count}} непрачытаных паведамленняў", + "openUnread_one": "Адкрыць {{name}}, {{displayCount}} непрачытанае паведамленне", + "openUnread": "Адкрыць {{name}}, {{displayCount}} непрачытаных паведамленняў", + "openUnread_other": "Адкрыць {{name}}, {{displayCount}} непрачытаных паведамленняў", "open": "Адкрыць {{name}}", "openSettings": "Адкрыць налады для {{name}}", "fixOnKiloAi": "Выправіць на kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Уключыць аўтавыпраўленне?", "enableAutoRemediationConfirmMessage": "Security Agent будзе аўтаматычна адкрываць PR на выпраўленне для прыдатных эксплуатуемых знаходак.", "enable": "Уключыць", - "queuedOne": "{{count}} існая знаходка пастаўлена ў чаргу для аналізу.", - "queuedMany": "{{count}} існых знаходак пастаўлена ў чаргу для аналізу.", + "queued_one": "{{displayCount}} існая знаходка пастаўлена ў чаргу для аналізу.", + "queued": "{{displayCount}} існых знаходак пастаўлена ў чаргу для аналізу.", + "queued_other": "{{displayCount}} існых знаходак пастаўлена ў чаргу для аналізу.", "severityCriticalOnly": "Толькі крытычныя", "severityHighAndAbove": "Высокія і вышэй", "severityMediumAndAbove": "Сярэднія і вышэй", @@ -1482,8 +1490,9 @@ "on": "Уключана", "off": "Выключана", "allRepositories": "Усе рэпазіторыі", - "repositorySelected": "выбрана {{count}} рэпазіторый", - "repositoriesSelected": "выбрана {{count}} рэпазіторыяў", + "repositoriesCount_one": "выбрана {{displayCount}} рэпазіторый", + "repositoriesCount": "выбрана {{displayCount}} рэпазіторыяў", + "repositoriesCount_other": "выбрана {{displayCount}} рэпазіторыяў", "selectRepositories": "Выбраць рэпазіторыі", "selectRepositoriesSubtitle": "Выберыце, якія рэпазіторыі адсочвае Security Agent", "repositories": "Рэпазіторыі", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Сеанс выдалены", "needsInput": "патрабуецца ўвод", "fromPlatform": "з {{platform}}", - "centOne": "цэнт", - "centOther": "цэнты", - "dollarOne": "долар", - "dollarOther": "долары" + "cent_one": "цэнт", + "cent": "цэнты", + "cent_other": "цэнты", + "dollar_one": "долар", + "dollar": "долары", + "dollar_other": "долары" }, "githubInstall": { "couldNotOpenTitle": "Не атрымалася адкрыць GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Не атрымалася адхіліць чарнавік. Паспрабуйце зноў." }, "partRenderer": { - "updatedFile": "Абноўлены {{count}} файл", - "updatedFiles": "Абноўлена {{count}} файлаў" + "updatedFileCount_one": "Абноўлены {{displayCount}} файл", + "updatedFileCount": "Абноўлена {{displayCount}} файлаў", + "updatedFileCount_other": "Абноўлена {{displayCount}} файлаў" }, "toolPatch": { "operationAdded": "Дададзена", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Загружаныя больш раннія паведамленні", "retryHint": "Паўтарае спробу загрузкі больш ранніх паведамленняў для гэтага сеанса.", - "omittedOne": "Некаторыя больш раннія элементы гэтага сеанса не ўдалося паказаць.", - "omittedMany": "{{count}} больш ранніх элементаў гэтага сеанса не ўдалося паказаць.", + "omitted_one": "Некаторыя больш раннія элементы гэтага сеанса не ўдалося паказаць.", + "omitted": "{{displayCount}} больш ранніх элементаў гэтага сеанса не ўдалося паказаць.", + "omitted_other": "{{displayCount}} больш ранніх элементаў гэтага сеанса не ўдалося паказаць.", "couldNotLoad": "Не ўдалося загрузіць больш раннія паведамленні.", "unavailable": "Больш раннія паведамленні недаступныя.", "tooLarge": "Больш раннія паведамленні занадта вялікія для загрузкі." @@ -2069,10 +2082,12 @@ "viewTable": "Праглядзець табліцу", "title": "Табліца", "close": "Закрыць табліцу", - "column": "слупок", - "columns": "слупкі", - "row": "радок", - "rows": "радкі", + "columnCount_one": "слупок", + "columnCount": "слупкі", + "columnCount_other": "слупкі", + "rowCount_one": "радок", + "rowCount": "радкі", + "rowCount_other": "радкі", "opensFullScreen": "адкрываецца на ўвесь экран" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "з {{window}} токенаў", "tokens": "токенаў", "tokensWithPercentage": "токенаў ({{percentage}})", - "stepsCountOne": "{{steps}} крок", - "stepsCountMany": "{{steps}} крокаў", + "stepsCount_one": "{{steps}} крок", + "stepsCount": "{{steps}} крокаў", + "stepsCount_other": "{{steps}} крокаў", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Новая задача праграмавання", "explore": "Даследаваць", "seeAll": "Паказаць усё", - "kiloAgents": "Агенты Kilo", - "greetingMorning": "Добрай раніцы", - "greetingAfternoon": "Добры дзень", - "greetingEvening": "Добры вечар" + "kiloAgents": "Агенты Kilo" }, "imageViewer": { "close": "Закрыць {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Адкрывае кіраванне Kilo Pass у інтэрнэце.", "notSubscribed": "Не падпісаны", "overallocated": "Прызначэнні Pass перавышаюць аплачаныя месцы", - "paidSeatOne": "{{count}} аплачанае месца", - "paidSeatOther": "{{count}} аплачаных месцаў", + "paidSeat_one": "{{displayCount}} аплачанае месца", + "paidSeat": "{{displayCount}} аплачаных месцаў", + "paidSeat_other": "{{displayCount}} аплачаных месцаў", "paymentNeedsAttention": "Плацёж патрабуе ўвагі", "paymentPending": "Плацёж чакае", "processingBlocked": "Апрацоўка заблакаваная", diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index ba51d2ede7..c0e8494b01 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} от {{total}} файла заредени", "loadAllFiles": "Зареди всички файлове", "loadAll": "Зареди всичко", - "fileLoaded": "{{count}} файл зареден", - "filesLoaded": "{{count}} файла заредени", - "fileLoadedOfTotal": "{{count}} файл зареден от {{total}}", - "filesLoadedOfTotal": "{{count}} файла заредени от {{total}}", + "fileLoadedCount_one": "{{displayCount}} файл зареден", + "fileLoadedCount": "{{displayCount}} файла заредени", + "fileLoadedCount_other": "{{displayCount}} файла заредени", + "fileLoadedOfTotalCount_one": "{{displayCount}} файл зареден от {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} файла заредени от {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} файла заредени от {{total}}", "filesStillLoading": "Файловете все още се зареждат. Издърпай, за да опресниш.", "goToOverview": "Отиди към обзора", "goToOverviewTab": "Отиди към раздела Обзор" @@ -288,8 +290,9 @@ "resolved": "Разрешено", "outdated": "Остаряло", "file": "Файл", - "oneComment": "1 коментар", - "commentCount": "{{count}} коментара", + "comment_one": "1 коментар", + "comment": "{{displayCount}} коментара", + "comment_other": "{{displayCount}} коментара", "startedRelative": " · започна {{relative}}", "couldNotLoadMore": "Не можахме да заредим още коментари.", "retryLoadingMore": "Опитай отново да заредиш още коментари", @@ -299,8 +302,9 @@ "reactionsTitle": "Реакции", "addReaction": "Добави реакция", "reactionPill": "{{emoji}} реакция, {{count}} {{countLabel}}", - "reactionSingular": "реакция", - "reactionPlural": "реакции", + "reaction_one": "реакция", + "reaction": "реакции", + "reaction_other": "реакции", "commentActions": "Действия с коментара", "reportContent": "Сигнализирай за съдържание", "reportUser": "Сигнализирай за потребител", @@ -452,8 +456,9 @@ "deletePendingMessage": "Този коментар ще бъде премахнат от опашката за преглед.", "delete": "Изтрий", "summaryOptional": "Обобщение (незадължително)", - "pendingCommentSingular": "чакащ коментар", - "pendingCommentPlural": "чакащи коментари", + "pendingComment_one": "чакащ коментар", + "pendingComment": "чакащи коментари", + "pendingComment_other": "чакащи коментари", "submitCountOfTotal": "Изпрати {{freshCount}} от {{totalCount}} коментара", "submitReview": "Изпрати прегледа", "partialPostedMessage": "Публикувахме {{freshCount}} коментара. {{staleCount}} коментара сочат към по-стар commit и останаха в опашката ви." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Отворен · Изисква се преглед", "stateOpen": "Отворен", "unknownAuthor": "Неизвестен автор", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "файл", - "filePlural": "файлове" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "файл", + "file": "файлове", + "file_other": "файлове" }, "pendingComment": { "editOutdatedA11y": "Редактирай остарял чакащ коментар на {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Някой", - "oneTyping": "{{name}} пише…", - "manyTyping": "{{names}} пишат…" + "typing_one": "{{name}} пише…", + "typing": "{{names}} пишат…", + "typing_other": "{{names}} пишат…" }, "botStatus": { "online": "Онлайн", @@ -722,12 +730,10 @@ "couldNotLoad": "Неуспешно зареждане на информацията за фактуриране", "manageOnWeb": "Управление на фактурирането в мрежата", "commitPlan": "Commit", - "daysLeft": "Остава {{count}} дни", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Крайният ти срок за Commit изтича на {{date}}. Продължи със Standard на {{price}} или хостингът се прекратява.", "freeTrial": "Безплатен пробен период", "hostingEnds": "Хостингът изтича", - "oneDayLeft": "Остава 1 ден", "renews": "Подновява се", "standardMonthToMonth": "Standard на месечна база", "standardStartsOn": "Standard започва на {{date}} на цена {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} се нуждае от внимание: {{label}}", - "openUnreadOne": "Отвори {{name}}, {{count}} непрочетено съобщение", - "openUnreadMany": "Отвори {{name}}, {{count}} непрочетени съобщения", + "openUnread_one": "Отвори {{name}}, {{displayCount}} непрочетено съобщение", + "openUnread": "Отвори {{name}}, {{displayCount}} непрочетени съобщения", + "openUnread_other": "Отвори {{name}}, {{displayCount}} непрочетени съобщения", "open": "Отвори {{name}}", "openSettings": "Отвори настройките за {{name}}", "fixOnKiloAi": "Поправи в kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Да активирам автоматичното отстраняване?", "enableAutoRemediationConfirmMessage": "Агентът за сигурност ще отваря автоматично PR за отстраняване на подходящите експлоатируеми констатации.", "enable": "Активирай", - "queuedOne": "{{count}} съществуващо откритие е поставено в опашка за анализ.", - "queuedMany": "{{count}} съществуващи открития са поставени в опашка за анализ.", + "queued_one": "{{displayCount}} съществуващо откритие е поставено в опашка за анализ.", + "queued": "{{displayCount}} съществуващи открития са поставени в опашка за анализ.", + "queued_other": "{{displayCount}} съществуващи открития са поставени в опашка за анализ.", "severityCriticalOnly": "Само критични", "severityHighAndAbove": "Високи и нагоре", "severityMediumAndAbove": "Средни и нагоре", @@ -1482,8 +1490,9 @@ "on": "Включено", "off": "Изключено", "allRepositories": "Всички хранилища", - "repositorySelected": "{{count}} избрано хранилище", - "repositoriesSelected": "{{count}} избрани хранилища", + "repositoriesCount_one": "{{displayCount}} избрано хранилище", + "repositoriesCount": "{{displayCount}} избрани хранилища", + "repositoriesCount_other": "{{displayCount}} избрани хранилища", "selectRepositories": "Избери хранилища", "selectRepositoriesSubtitle": "Избери кои хранилища следи Security Agent", "repositories": "Хранилища", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Сесията е изтрита", "needsInput": "изисква въвеждане", "fromPlatform": "от {{platform}}", - "centOne": "цент", - "centOther": "цента", - "dollarOne": "долар", - "dollarOther": "долара" + "cent_one": "цент", + "cent": "цента", + "cent_other": "цента", + "dollar_one": "долар", + "dollar": "долара", + "dollar_other": "долара" }, "githubInstall": { "couldNotOpenTitle": "Не може да се отвори GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Не можа да се отхвърли черновата. Моля, опитай отново." }, "partRenderer": { - "updatedFile": "Актуализиран {{count}} файл", - "updatedFiles": "Актуализирани {{count}} файла" + "updatedFileCount_one": "Актуализиран {{displayCount}} файл", + "updatedFileCount": "Актуализирани {{displayCount}} файла", + "updatedFileCount_other": "Актуализирани {{displayCount}} файла" }, "toolPatch": { "operationAdded": "Добавено", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "По-ранните съобщения са заредени", "retryHint": "Повтаря зареждането на по-старите съобщения за тази сесия.", - "omittedOne": "Някои по-ранни елементи от тази сесия не можаха да бъдат показани.", - "omittedMany": "{{count}} по-ранни елементи от тази сесия не можаха да бъдат показани.", + "omitted_one": "Някои по-ранни елементи от тази сесия не можаха да бъдат показани.", + "omitted": "{{displayCount}} по-ранни елементи от тази сесия не можаха да бъдат показани.", + "omitted_other": "{{displayCount}} по-ранни елементи от тази сесия не можаха да бъдат показани.", "couldNotLoad": "Не можаха да се заредят по-ранните съобщения.", "unavailable": "По-ранните съобщения не са налични.", "tooLarge": "По-ранните съобщения са твърде големи, за да се заредят." @@ -2069,10 +2082,12 @@ "viewTable": "Вижте таблицата", "title": "Таблица", "close": "Затворете таблицата", - "column": "колона", - "columns": "колони", - "row": "ред", - "rows": "редове", + "columnCount_one": "колона", + "columnCount": "колони", + "columnCount_other": "колони", + "rowCount_one": "ред", + "rowCount": "редове", + "rowCount_other": "редове", "opensFullScreen": "отваря на цял екран" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "от {{window}} токена", "tokens": "токена", "tokensWithPercentage": "токена ({{percentage}})", - "stepsCountOne": "{{steps}} стъпка", - "stepsCountMany": "{{steps}} стъпки", + "stepsCount_one": "{{steps}} стъпка", + "stepsCount": "{{steps}} стъпки", + "stepsCount_other": "{{steps}} стъпки", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Нова задача за кодиране", "explore": "Разгледайте", "seeAll": "Вижте всички", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Добро утро", - "greetingAfternoon": "Добър ден", - "greetingEvening": "Добър вечер" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Затворете {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Отваря управлението на Kilo Pass в мрежата.", "notSubscribed": "Не е абониран", "overallocated": "Разпределенията на Pass надхвърлят платените места", - "paidSeatOne": "{{count}} платено място", - "paidSeatOther": "{{count}} платени места", + "paidSeat_one": "{{displayCount}} платено място", + "paidSeat": "{{displayCount}} платени места", + "paidSeat_other": "{{displayCount}} платени места", "paymentNeedsAttention": "Плащането изисква внимание", "paymentPending": "Плащането е в изчакване", "processingBlocked": "Обработката е блокирана", diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index f3abba96c6..32e5143c3b 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}}-এর মধ্যে {{loaded}} ফাইল লোড হয়েছে", "loadAllFiles": "সব ফাইল লোড করুন", "loadAll": "সব লোড করুন", - "fileLoaded": "{{count}} ফাইল লোড হয়েছে", - "filesLoaded": "{{count}} ফাইল লোড হয়েছে", - "fileLoadedOfTotal": "{{total}}-এর মধ্যে {{count}} ফাইল লোড হয়েছে", - "filesLoadedOfTotal": "{{total}}-এর মধ্যে {{count}} ফাইল লোড হয়েছে", + "fileLoadedCount_one": "{{displayCount}} ফাইল লোড হয়েছে", + "fileLoadedCount": "{{displayCount}} ফাইল লোড হয়েছে", + "fileLoadedCount_other": "{{displayCount}} ফাইল লোড হয়েছে", + "fileLoadedOfTotalCount_one": "{{total}}-এর মধ্যে {{displayCount}} ফাইল লোড হয়েছে", + "fileLoadedOfTotalCount": "{{total}}-এর মধ্যে {{displayCount}} ফাইল লোড হয়েছে", + "fileLoadedOfTotalCount_other": "{{total}}-এর মধ্যে {{displayCount}} ফাইল লোড হয়েছে", "filesStillLoading": "ফাইল এখনও লোড হচ্ছে। রিফ্রেশ করতে টানুন।", "goToOverview": "ওভারভিউতে যান", "goToOverviewTab": "ওভারভিউ ট্যাবে যান" @@ -288,8 +290,9 @@ "resolved": "সমাধান হয়েছে", "outdated": "পুরাতন", "file": "ফাইল", - "oneComment": "১টি মন্তব্য", - "commentCount": "{{count}}টি মন্তব্য", + "comment_one": "১টি মন্তব্য", + "comment": "{{displayCount}}টি মন্তব্য", + "comment_other": "{{displayCount}}টি মন্তব্য", "startedRelative": " · {{relative}}-তে শুরু হয়েছে", "couldNotLoadMore": "আরও মন্তব্য লোড করা যায়নি।", "retryLoadingMore": "আরও মন্তব্য লোড আবার চেষ্টা করুন", @@ -299,8 +302,9 @@ "reactionsTitle": "প্রতিক্রিয়া", "addReaction": "প্রতিক্রিয়া যোগ করুন", "reactionPill": "{{emoji}} প্রতিক্রিয়া, {{count}} {{countLabel}}", - "reactionSingular": "প্রতিক্রিয়া", - "reactionPlural": "প্রতিক্রিয়া", + "reaction_one": "প্রতিক্রিয়া", + "reaction": "প্রতিক্রিয়া", + "reaction_other": "প্রতিক্রিয়া", "commentActions": "মন্তব্য কর্ম", "reportContent": "কনটেন্ট রিপোর্ট করুন", "reportUser": "ব্যবহারকারী রিপোর্ট করুন", @@ -452,8 +456,9 @@ "deletePendingMessage": "এই মন্তব্যটি রিভিউ সারি থেকে সরানো হবে।", "delete": "মুছুন", "summaryOptional": "সারাংশ (ঐচ্ছিক)", - "pendingCommentSingular": "মুলতুবি মন্তব্য", - "pendingCommentPlural": "মুলতুবি মন্তব্য", + "pendingComment_one": "মুলতুবি মন্তব্য", + "pendingComment": "মুলতুবি মন্তব্য", + "pendingComment_other": "মুলতুবি মন্তব্য", "submitCountOfTotal": "{{totalCount}}-এর মধ্যে {{freshCount}} মন্তব্য জমা দিন", "submitReview": "রিভিউ জমা দিন", "partialPostedMessage": "{{freshCount}} মন্তব্য পোস্ট হয়েছে। {{staleCount}} মন্তব্য পুরাতন কমিটে নির্দেশ করে এবং আপনার সারিতে রয়ে গেছে।" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "খোলা · রিভিউ প্রয়োজন", "stateOpen": "খোলা", "unknownAuthor": "অজানা লেখক", - "commitSingular": "কমিট", - "commitPlural": "কমিট", - "fileSingular": "ফাইল", - "filePlural": "ফাইল" + "commit_one": "কমিট", + "commit": "কমিট", + "commit_other": "কমিট", + "file_one": "ফাইল", + "file": "ফাইল", + "file_other": "ফাইল" }, "pendingComment": { "editOutdatedA11y": "{{location}}-এ পুরাতন মুলতুবি মন্তব্য সম্পাদনা করুন", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "কেউ একজন", - "oneTyping": "{{name}} লিখছেন...", - "manyTyping": "{{names}} লিখছেন..." + "typing_one": "{{name}} লিখছেন...", + "typing": "{{names}} লিখছেন...", + "typing_other": "{{names}} লিখছেন..." }, "botStatus": { "online": "অনলাইন", @@ -722,12 +730,10 @@ "couldNotLoad": "বিলিং তথ্য লোড করা যায়নি", "manageOnWeb": "ওয়েবে বিলিং পরিচালনা করুন", "commitPlan": "কমিট", - "daysLeft": "{{count}} দিন বাকি", "earlybird": "আর্লিবার্ড", "finalCommitTermEndsOn": "আপনার চূড়ান্ত Commit মেয়াদ {{date}} তারিখে শেষ হয়। {{price}} মূল্যে স্ট্যান্ডার্ড হিসেবে চালিয়ে যান, নইলে হোস্টিং শেষ হয়ে যাবে।", "freeTrial": "ফ্রি ট্রায়াল", "hostingEnds": "হোস্টিং শেষ হয়", - "oneDayLeft": "১ দিন বাকি", "renews": "নবায়ন হয়", "standardMonthToMonth": "স্ট্যান্ডার্ড মাসিক", "standardStartsOn": "স্ট্যান্ডার্ড {{date}} তারিখে {{price}} মূল্যে শুরু হয়।", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} এর মনোযোগ প্রয়োজন: {{label}}", - "openUnreadOne": "{{name}} খুলুন, {{count}}টি অপঠিত বার্তা", - "openUnreadMany": "{{name}} খুলুন, {{count}}টি অপঠিত বার্তা", + "openUnread_one": "{{name}} খুলুন, {{displayCount}}টি অপঠিত বার্তা", + "openUnread": "{{name}} খুলুন, {{displayCount}}টি অপঠিত বার্তা", + "openUnread_other": "{{name}} খুলুন, {{displayCount}}টি অপঠিত বার্তা", "open": "{{name}} খুলুন", "openSettings": "{{name}} এর জন্য সেটিংস খুলুন", "fixOnKiloAi": "kilo.ai এ ঠিক করুন: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "অটো-প্রতিকার সক্ষম করবেন?", "enableAutoRemediationConfirmMessage": "সিকিউরিটি এজেন্ট যোগ্য শোষণযোগ্য খুঁতের জন্য স্বয়ংক্রিয়ভাবে প্রতিকারের PR খুলবে।", "enable": "সক্ষম করুন", - "queuedOne": "{{count}}টি বিদ্যমান ফাইন্ডিং বিশ্লেষণের জন্য সারিতে রাখা হয়েছে।", - "queuedMany": "{{count}}টি বিদ্যমান ফাইন্ডিং বিশ্লেষণের জন্য সারিতে রাখা হয়েছে।", + "queued_one": "{{displayCount}}টি বিদ্যমান ফাইন্ডিং বিশ্লেষণের জন্য সারিতে রাখা হয়েছে।", + "queued": "{{displayCount}}টি বিদ্যমান ফাইন্ডিং বিশ্লেষণের জন্য সারিতে রাখা হয়েছে।", + "queued_other": "{{displayCount}}টি বিদ্যমান ফাইন্ডিং বিশ্লেষণের জন্য সারিতে রাখা হয়েছে।", "severityCriticalOnly": "শুধু ক্রিটিক্যাল", "severityHighAndAbove": "উচ্চ এবং তার উপরে", "severityMediumAndAbove": "মাঝারি এবং তার উপরে", @@ -1482,8 +1490,9 @@ "on": "চালু", "off": "বন্ধ", "allRepositories": "সব রিপোজিটরি", - "repositorySelected": "{{count}}টি রিপোজিটরি নির্বাচিত", - "repositoriesSelected": "{{count}}টি রিপোজিটরি নির্বাচিত", + "repositoriesCount_one": "{{displayCount}}টি রিপোজিটরি নির্বাচিত", + "repositoriesCount": "{{displayCount}}টি রিপোজিটরি নির্বাচিত", + "repositoriesCount_other": "{{displayCount}}টি রিপোজিটরি নির্বাচিত", "selectRepositories": "রিপোজিটরি নির্বাচন করুন", "selectRepositoriesSubtitle": "সিকিউরিটি এজেন্ট কোন রিপোজিটরি পর্যবেক্ষণ করবে তা চয়ন করুন", "repositories": "রিপোজিটরি", @@ -1720,10 +1729,12 @@ "sessionDeleted": "সেশন মুছে ফেলা হয়েছে", "needsInput": "ইনপুট প্রয়োজন", "fromPlatform": "{{platform}} থেকে", - "centOne": "সেন্ট", - "centOther": "সেন্ট", - "dollarOne": "ডলার", - "dollarOther": "ডলার" + "cent_one": "সেন্ট", + "cent": "সেন্ট", + "cent_other": "সেন্ট", + "dollar_one": "ডলার", + "dollar": "ডলার", + "dollar_other": "ডলার" }, "githubInstall": { "couldNotOpenTitle": "GitHub খোলা যায়নি", @@ -1817,8 +1828,9 @@ "discardFailed": "ড্রাফ্টটি বাতিল করা যায়নি। আবার চেষ্টা করুন।" }, "partRenderer": { - "updatedFile": "{{count}}টি ফাইল আপডেট হয়েছে", - "updatedFiles": "{{count}}টি ফাইল আপডেট হয়েছে" + "updatedFileCount_one": "{{displayCount}}টি ফাইল আপডেট হয়েছে", + "updatedFileCount": "{{displayCount}}টি ফাইল আপডেট হয়েছে", + "updatedFileCount_other": "{{displayCount}}টি ফাইল আপডেট হয়েছে" }, "toolPatch": { "operationAdded": "যোগ করা হয়েছে", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "আগের বার্তাগুলি লোড হয়েছে", "retryHint": "এই সেশনের জন্য আগের বার্তা লোড আবার চেষ্টা করে।", - "omittedOne": "এই সেশনের কিছু আগের আইটেম প্রদর্শিত করা যায়নি।", - "omittedMany": "এই সেশনের {{count}}টি আগের আইটেম প্রদর্শিত করা যায়নি।", + "omitted_one": "এই সেশনের কিছু আগের আইটেম প্রদর্শিত করা যায়নি।", + "omitted": "এই সেশনের {{displayCount}}টি আগের আইটেম প্রদর্শিত করা যায়নি।", + "omitted_other": "এই সেশনের {{displayCount}}টি আগের আইটেম প্রদর্শিত করা যায়নি।", "couldNotLoad": "আগের বার্তাগুলি লোড করা যায়নি।", "unavailable": "আগের বার্তাগুলি উপলব্ধ নয়।", "tooLarge": "আগের বার্তাগুলি লোড করার জন্য খুব বড়।" @@ -2069,10 +2082,12 @@ "viewTable": "টেবিল দেখুন", "title": "টেবিল", "close": "টেবিল বন্ধ করুন", - "column": "কলাম", - "columns": "কলাম", - "row": "সারি", - "rows": "সারি", + "columnCount_one": "কলাম", + "columnCount": "কলাম", + "columnCount_other": "কলাম", + "rowCount_one": "সারি", + "rowCount": "সারি", + "rowCount_other": "সারি", "opensFullScreen": "ফুল স্ক্রিনে খোলে" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} টোকেনের মধ্যে", "tokens": "টোকেন", "tokensWithPercentage": "টোকেন ({{percentage}})", - "stepsCountOne": "{{steps}}টি ধাপ", - "stepsCountMany": "{{steps}}টি ধাপ", + "stepsCount_one": "{{steps}}টি ধাপ", + "stepsCount": "{{steps}}টি ধাপ", + "stepsCount_other": "{{steps}}টি ধাপ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "নতুন কোডিং কাজ", "explore": "অন্বেষণ", "seeAll": "সব দেখুন", - "kiloAgents": "Kilo Agents", - "greetingMorning": "শুভ সকাল", - "greetingAfternoon": "শুভ বিকাল", - "greetingEvening": "শুভ সন্ধ্যা" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} বন্ধ করুন", @@ -2645,8 +2658,9 @@ "manageHint": "ওয়েবে Kilo Pass ব্যবস্থাপনা খোলে।", "notSubscribed": "সাবস্ক্রাইব করা হয়নি", "overallocated": "পাস বরাদ্দ প্রদত্ত সিট ছাড়িয়ে যায়", - "paidSeatOne": "{{count}}টি প্রদত্ত সিট", - "paidSeatOther": "{{count}}টি প্রদত্ত সিট", + "paidSeat_one": "{{displayCount}}টি প্রদত্ত সিট", + "paidSeat": "{{displayCount}}টি প্রদত্ত সিট", + "paidSeat_other": "{{displayCount}}টি প্রদত্ত সিট", "paymentNeedsAttention": "পেমেন্টে মনোযোগ প্রয়োজন", "paymentPending": "পেমেন্ট অপেক্ষমাণ", "processingBlocked": "প্রক্রিয়াকরণ অবরুদ্ধ", diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index 9e5aef7dc0..7a831aa52d 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Učitano {{loaded}} od {{total}} datoteka", "loadAllFiles": "Učitaj sve datoteke", "loadAll": "Učitaj sve", - "fileLoaded": "Učitana {{count}} datoteka", - "filesLoaded": "Učitano {{count}} datoteka", - "fileLoadedOfTotal": "Učitana {{count}} datoteka od {{total}}", - "filesLoadedOfTotal": "Učitano {{count}} datoteka od {{total}}", + "fileLoadedCount_one": "Učitana {{displayCount}} datoteka", + "fileLoadedCount": "Učitano {{displayCount}} datoteka", + "fileLoadedCount_other": "Učitano {{displayCount}} datoteka", + "fileLoadedOfTotalCount_one": "Učitana {{displayCount}} datoteka od {{total}}", + "fileLoadedOfTotalCount": "Učitano {{displayCount}} datoteka od {{total}}", + "fileLoadedOfTotalCount_other": "Učitano {{displayCount}} datoteka od {{total}}", "filesStillLoading": "Datoteke se još učitavaju. Prevucite za osvježavanje.", "goToOverview": "Idi na Pregled", "goToOverviewTab": "Idi na karticu Pregled" @@ -288,8 +290,9 @@ "resolved": "Riješeno", "outdated": "Zastarjelo", "file": "Datoteka", - "oneComment": "1 komentar", - "commentCount": "{{count}} komentara", + "comment_one": "1 komentar", + "comment": "{{displayCount}} komentara", + "comment_other": "{{displayCount}} komentara", "startedRelative": " · pokrenuto {{relative}}", "couldNotLoadMore": "Više komentara se nije moglo učitati.", "retryLoadingMore": "Pokušaj ponovo učitati više komentara", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakciju", "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", - "reactionSingular": "reakcija", - "reactionPlural": "reakcije", + "reaction_one": "reakcija", + "reaction": "reakcije", + "reaction_other": "reakcije", "commentActions": "Radnje komentara", "reportContent": "Prijavi sadržaj", "reportUser": "Prijavi korisnika", @@ -452,8 +456,9 @@ "deletePendingMessage": "Ovaj komentar će biti uklonjen iz reda za pregled.", "delete": "Obriši", "summaryOptional": "Sažetak (opciono)", - "pendingCommentSingular": "komentar na čekanju", - "pendingCommentPlural": "komentari na čekanju", + "pendingComment_one": "komentar na čekanju", + "pendingComment": "komentari na čekanju", + "pendingComment_other": "komentari na čekanju", "submitCountOfTotal": "Pošalji {{freshCount}} od {{totalCount}} komentara", "submitReview": "Pošalji pregled", "partialPostedMessage": "Poslano {{freshCount}} komentar(a). {{staleCount}} komentar(a) se odnosi na stariji commit i ostali su u vašem redu." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Otvoreno · Pregled potreban", "stateOpen": "Otvoreno", "unknownAuthor": "Nepoznat autor", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "datoteka", - "filePlural": "datoteke" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "datoteka", + "file": "datoteke", + "file_other": "datoteke" }, "pendingComment": { "editOutdatedA11y": "Uredi zastarjeli komentar na čekanju na {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Neko", - "oneTyping": "{{name}} kuca...", - "manyTyping": "{{names}} kucaju..." + "typing_one": "{{name}} kuca...", + "typing": "{{names}} kucaju...", + "typing_other": "{{names}} kucaju..." }, "botStatus": { "online": "Na mreži", @@ -722,12 +730,10 @@ "couldNotLoad": "Podatke o naplati nije bilo moguće učitati", "manageOnWeb": "Upravljaj naplatom na webu", "commitPlan": "Obaveza", - "daysLeft": "Preostalo {{count}} dana", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Vaš završni rok obaveze ističe {{date}}. Nastavite kao Standard po cijeni od {{price}}, ili hosting prestaje.", "freeTrial": "Besplatna proba", "hostingEnds": "Hosting prestaje", - "oneDayLeft": "Preostao 1 dan", "renews": "Obnavlja se", "standardMonthToMonth": "Standard iz mjeseca u mjesec", "standardStartsOn": "Standard počinje {{date}} po cijeni od {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} zahtijeva pažnju: {{label}}", - "openUnreadOne": "Otvori {{name}}, {{count}} nepročitana poruka", - "openUnreadMany": "Otvori {{name}}, {{count}} nepročitanih poruka", + "openUnread_one": "Otvori {{name}}, {{displayCount}} nepročitana poruka", + "openUnread": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", + "openUnread_other": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", "open": "Otvori {{name}}", "openSettings": "Otvori postavke za {{name}}", "fixOnKiloAi": "Popravi na kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Omogućiti auto-sanaciju?", "enableAutoRemediationConfirmMessage": "Security Agent će automatski otvarati PR-ove za sanaciju za prihvatljive iskoristive nalaze.", "enable": "Omogući", - "queuedOne": "{{count}} postojeći nalaz je stavljen u red za analizu.", - "queuedMany": "{{count}} postojećih nalaza je stavljeno u red za analizu.", + "queued_one": "{{displayCount}} postojeći nalaz je stavljen u red za analizu.", + "queued": "{{displayCount}} postojećih nalaza je stavljeno u red za analizu.", + "queued_other": "{{displayCount}} postojećih nalaza je stavljeno u red za analizu.", "severityCriticalOnly": "Samo kritično", "severityHighAndAbove": "Visoko i više", "severityMediumAndAbove": "Srednje i više", @@ -1482,8 +1490,9 @@ "on": "Uključeno", "off": "Isključeno", "allRepositories": "Svi repozitoriji", - "repositorySelected": "Odabran {{count}} repozitorij", - "repositoriesSelected": "Odabrana {{count}} repozitorija", + "repositoriesCount_one": "Odabran {{displayCount}} repozitorij", + "repositoriesCount": "Odabrana {{displayCount}} repozitorija", + "repositoriesCount_other": "Odabrana {{displayCount}} repozitorija", "selectRepositories": "Odaberi repozitorije", "selectRepositoriesSubtitle": "Odaberite koje repozitorije Security Agent prati", "repositories": "Repozitoriji", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesija izbrisana", "needsInput": "treba unos", "fromPlatform": "sa {{platform}}", - "centOne": "cent", - "centOther": "centi", - "dollarOne": "dolar", - "dollarOther": "dolara" + "cent_one": "cent", + "cent": "centi", + "cent_other": "centi", + "dollar_one": "dolar", + "dollar": "dolara", + "dollar_other": "dolara" }, "githubInstall": { "couldNotOpenTitle": "Nije moguće otvoriti GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Nije moguće odbaciti nacrt. Pokušajte ponovo." }, "partRenderer": { - "updatedFile": "Ažurirano {{count}} datoteka", - "updatedFiles": "Ažurirano {{count}} datoteka" + "updatedFileCount_one": "Ažurirano {{displayCount}} datoteka", + "updatedFileCount": "Ažurirano {{displayCount}} datoteka", + "updatedFileCount_other": "Ažurirano {{displayCount}} datoteka" }, "toolPatch": { "operationAdded": "Dodano", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ranije poruke su učitane", "retryHint": "Ponovno pokušava učitavanje ranijih poruka za ovu sesiju.", - "omittedOne": "Neke ranije stavke iz ove sesije nisu mogle biti prikazane.", - "omittedMany": "{{count}} ranijih stavki iz ove sesije nije moglo biti prikazano.", + "omitted_one": "Neke ranije stavke iz ove sesije nisu mogle biti prikazane.", + "omitted": "{{displayCount}} ranijih stavki iz ove sesije nije moglo biti prikazano.", + "omitted_other": "{{displayCount}} ranijih stavki iz ove sesije nije moglo biti prikazano.", "couldNotLoad": "Ranije poruke nisu mogle biti učitane.", "unavailable": "Ranije poruke nisu dostupne.", "tooLarge": "Ranije poruke su prevelike za učitavanje." @@ -2069,10 +2082,12 @@ "viewTable": "Pogledaj tabelu", "title": "Tabela", "close": "Zatvori tabelu", - "column": "kolona", - "columns": "kolone", - "row": "red", - "rows": "redovi", + "columnCount_one": "kolona", + "columnCount": "kolone", + "columnCount_other": "kolone", + "rowCount_one": "red", + "rowCount": "redovi", + "rowCount_other": "redovi", "opensFullScreen": "otvara preko cijelog ekrana" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "od {{window}} tokena", "tokens": "tokena", "tokensWithPercentage": "tokena ({{percentage}})", - "stepsCountOne": "{{steps}} korak", - "stepsCountMany": "{{steps}} koraka", + "stepsCount_one": "{{steps}} korak", + "stepsCount": "{{steps}} koraka", + "stepsCount_other": "{{steps}} koraka", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Novi zadatak kodiranja", "explore": "Istraži", "seeAll": "Pogledaj sve", - "kiloAgents": "Kilo Agenti", - "greetingMorning": "Dobro jutro", - "greetingAfternoon": "Dobar dan", - "greetingEvening": "Dobro veče" + "kiloAgents": "Kilo Agenti" }, "imageViewer": { "close": "Zatvori {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Otvara upravljanje Kilo Passom na webu.", "notSubscribed": "Nije pretplaćen", "overallocated": "Pas dodjele premašuju plaćena sjedala", - "paidSeatOne": "{{count}} plaćeno sjedalo", - "paidSeatOther": "{{count}} plaćenih sjedala", + "paidSeat_one": "{{displayCount}} plaćeno sjedalo", + "paidSeat": "{{displayCount}} plaćenih sjedala", + "paidSeat_other": "{{displayCount}} plaćenih sjedala", "paymentNeedsAttention": "Plaćanje treba pažnju", "paymentPending": "Plaćanje na čekanju", "processingBlocked": "Obrada blokirana", diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index 9a5ef2787b..f0320c9cfb 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "S'han carregat {{loaded}} de {{total}} fitxers", "loadAllFiles": "Carrega tots els fitxers", "loadAll": "Carrega-ho tot", - "fileLoaded": "S'ha carregat {{count}} fitxer", - "filesLoaded": "S'han carregat {{count}} fitxers", - "fileLoadedOfTotal": "S'ha carregat {{count}} fitxer de {{total}}", - "filesLoadedOfTotal": "S'han carregat {{count}} fitxers de {{total}}", + "fileLoadedCount_one": "S'ha carregat {{displayCount}} fitxer", + "fileLoadedCount": "S'han carregat {{displayCount}} fitxers", + "fileLoadedCount_other": "S'han carregat {{displayCount}} fitxers", + "fileLoadedOfTotalCount_one": "S'ha carregat {{displayCount}} fitxer de {{total}}", + "fileLoadedOfTotalCount": "S'han carregat {{displayCount}} fitxers de {{total}}", + "fileLoadedOfTotalCount_other": "S'han carregat {{displayCount}} fitxers de {{total}}", "filesStillLoading": "Els fitxers encara s'estan carregant. Estira per actualitzar.", "goToOverview": "Vés a la visió general", "goToOverviewTab": "Vés a la pestanya de visió general" @@ -288,8 +290,9 @@ "resolved": "Resolt", "outdated": "Desactualitzat", "file": "Fitxer", - "oneComment": "1 comentari", - "commentCount": "{{count}} comentaris", + "comment_one": "1 comentari", + "comment": "{{displayCount}} comentaris", + "comment_other": "{{displayCount}} comentaris", "startedRelative": " · començat {{relative}}", "couldNotLoadMore": "No s'han pogut carregar més comentaris.", "retryLoadingMore": "Torna a carregar més comentaris", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaccions", "addReaction": "Afegeix una reacció", "reactionPill": "{{emoji}} reacció, {{count}} {{countLabel}}", - "reactionSingular": "reacció", - "reactionPlural": "reaccions", + "reaction_one": "reacció", + "reaction": "reaccions", + "reaction_other": "reaccions", "commentActions": "Accions del comentari", "reportContent": "Denuncia el contingut", "reportUser": "Denuncia l'usuari", @@ -452,8 +456,9 @@ "deletePendingMessage": "Aquest comentari s'eliminarà de la cua de revisió.", "delete": "Elimina", "summaryOptional": "Resum (opcional)", - "pendingCommentSingular": "comentari pendent", - "pendingCommentPlural": "comentaris pendents", + "pendingComment_one": "comentari pendent", + "pendingComment": "comentaris pendents", + "pendingComment_other": "comentaris pendents", "submitCountOfTotal": "Envia {{freshCount}} de {{totalCount}} comentaris", "submitReview": "Envia la revisió", "partialPostedMessage": "S'han publicat {{freshCount}} comentari(s). {{staleCount}} comentari(s) apunten a un commit més antic i han quedat a la teva cua." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Oberta · Revisió requerida", "stateOpen": "Oberta", "unknownAuthor": "Autor desconegut", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fitxer", - "filePlural": "fitxers" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fitxer", + "file": "fitxers", + "file_other": "fitxers" }, "pendingComment": { "editOutdatedA11y": "Edita el comentari pendent desactualitzat a {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Algú", - "oneTyping": "{{name}} està escrivint...", - "manyTyping": "{{names}} estan escrivint..." + "typing_one": "{{name}} està escrivint...", + "typing": "{{names}} estan escrivint...", + "typing_other": "{{names}} estan escrivint..." }, "botStatus": { "online": "En línia", @@ -722,12 +730,10 @@ "couldNotLoad": "No s'ha pogut carregar la informació de facturació", "manageOnWeb": "Gestiona la facturació al web", "commitPlan": "Commit", - "daysLeft": "Queden {{count}} dies", "earlybird": "Earlybird", "finalCommitTermEndsOn": "El teu període final de Commit acaba el {{date}}. Continua com a Standard per {{price}}, o l'allotjament s'acaba.", "freeTrial": "Prova gratuïta", "hostingEnds": "L'allotjament s'acaba", - "oneDayLeft": "Queda 1 dia", "renews": "Es renova", "standardMonthToMonth": "Standard mensual", "standardStartsOn": "Standard comença el {{date}} per {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} requereix atenció: {{label}}", - "openUnreadOne": "Obre {{name}}, {{count}} missatge no llegit", - "openUnreadMany": "Obre {{name}}, {{count}} missatges no llegits", + "openUnread_one": "Obre {{name}}, {{displayCount}} missatge no llegit", + "openUnread": "Obre {{name}}, {{displayCount}} missatges no llegits", + "openUnread_other": "Obre {{name}}, {{displayCount}} missatges no llegits", "open": "Obre {{name}}", "openSettings": "Obre la configuració de {{name}}", "fixOnKiloAi": "Corregeix a kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Activar la correcció automàtica?", "enableAutoRemediationConfirmMessage": "L'Agent de seguretat obrirà PR de correcció automàticament per a les troballes explotables elegibles.", "enable": "Activa", - "queuedOne": "{{count}} resultat existent en cua per analitzar.", - "queuedMany": "{{count}} resultats existents en cua per analitzar.", + "queued_one": "{{displayCount}} resultat existent en cua per analitzar.", + "queued": "{{displayCount}} resultats existents en cua per analitzar.", + "queued_other": "{{displayCount}} resultats existents en cua per analitzar.", "severityCriticalOnly": "Només crítics", "severityHighAndAbove": "Alts i superiors", "severityMediumAndAbove": "Mitjans i superiors", @@ -1482,8 +1490,9 @@ "on": "Activat", "off": "Desactivat", "allRepositories": "Tots els repositoris", - "repositorySelected": "{{count}} repositori seleccionat", - "repositoriesSelected": "{{count}} repositoris seleccionats", + "repositoriesCount_one": "{{displayCount}} repositori seleccionat", + "repositoriesCount": "{{displayCount}} repositoris seleccionats", + "repositoriesCount_other": "{{displayCount}} repositoris seleccionats", "selectRepositories": "Selecciona repositoris", "selectRepositoriesSubtitle": "Tria quins repositoris supervisa Security Agent", "repositories": "Repositoris", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sessió eliminada", "needsInput": "requereix entrada", "fromPlatform": "des de {{platform}}", - "centOne": "cèntim", - "centOther": "cèntims", - "dollarOne": "dòlar", - "dollarOther": "dòlars" + "cent_one": "cèntim", + "cent": "cèntims", + "cent_other": "cèntims", + "dollar_one": "dòlar", + "dollar": "dòlars", + "dollar_other": "dòlars" }, "githubInstall": { "couldNotOpenTitle": "No s'ha pogut obrir GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "No s'ha pogut descartar l'esborrany. Torna-ho a provar." }, "partRenderer": { - "updatedFile": "{{count}} fitxer actualitzat", - "updatedFiles": "{{count}} fitxers actualitzats" + "updatedFileCount_one": "{{displayCount}} fitxer actualitzat", + "updatedFileCount": "{{displayCount}} fitxers actualitzats", + "updatedFileCount_other": "{{displayCount}} fitxers actualitzats" }, "toolPatch": { "operationAdded": "Afegit", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "S'han carregat els missatges anteriors", "retryHint": "Torna a intentar la càrrega dels missatges anteriors d'aquesta sessió.", - "omittedOne": "Alguns elements anteriors d'aquesta sessió no s'han pogut mostrar.", - "omittedMany": "{{count}} elements anteriors d'aquesta sessió no s'han pogut mostrar.", + "omitted_one": "Alguns elements anteriors d'aquesta sessió no s'han pogut mostrar.", + "omitted": "{{displayCount}} elements anteriors d'aquesta sessió no s'han pogut mostrar.", + "omitted_other": "{{displayCount}} elements anteriors d'aquesta sessió no s'han pogut mostrar.", "couldNotLoad": "No s'han pogut carregar els missatges anteriors.", "unavailable": "Els missatges anteriors no estan disponibles.", "tooLarge": "Els missatges anteriors són massa grans per carregar-los." @@ -2069,10 +2082,12 @@ "viewTable": "Mostra la taula", "title": "Taula", "close": "Tanca la taula", - "column": "columna", - "columns": "columnes", - "row": "fila", - "rows": "files", + "columnCount_one": "columna", + "columnCount": "columnes", + "columnCount_other": "columnes", + "rowCount_one": "fila", + "rowCount": "files", + "rowCount_other": "files", "opensFullScreen": "obre la pantalla completa" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "de {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} pas", - "stepsCountMany": "{{steps}} passos", + "stepsCount_one": "{{steps}} pas", + "stepsCount": "{{steps}} passos", + "stepsCount_other": "{{steps}} passos", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nova tasca de programació", "explore": "Explora", "seeAll": "Veure-ho tot", - "kiloAgents": "Agents de Kilo", - "greetingMorning": "Bon dia", - "greetingAfternoon": "Bona tarda", - "greetingEvening": "Bona nit" + "kiloAgents": "Agents de Kilo" }, "imageViewer": { "close": "Tanca {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Obre la gestió de Kilo Pass al web.", "notSubscribed": "No subscrit", "overallocated": "Les assignacions de Pass superen els seients de pagament", - "paidSeatOne": "{{count}} seient de pagament", - "paidSeatOther": "{{count}} seients de pagament", + "paidSeat_one": "{{displayCount}} seient de pagament", + "paidSeat": "{{displayCount}} seients de pagament", + "paidSeat_other": "{{displayCount}} seients de pagament", "paymentNeedsAttention": "El pagament necessita atenció", "paymentPending": "Pagament pendent", "processingBlocked": "Processament bloquejat", diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index 0632e82497..710e6787be 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} لە {{total}} فایل بارکران", "loadAllFiles": "بارکردنی هەموو فایلەکان", "loadAll": "بارکردنی هەموو", - "fileLoaded": "{{count}} فایل بارکرا", - "filesLoaded": "{{count}} فایل بارکران", - "fileLoadedOfTotal": "{{count}} فایل لە {{total}} بارکرا", - "filesLoadedOfTotal": "{{count}} فایل لە {{total}} بارکران", + "fileLoadedCount_one": "{{displayCount}} فایل بارکرا", + "fileLoadedCount": "{{displayCount}} فایل بارکران", + "fileLoadedCount_other": "{{displayCount}} فایل بارکران", + "fileLoadedOfTotalCount_one": "{{displayCount}} فایل لە {{total}} بارکرا", + "fileLoadedOfTotalCount": "{{displayCount}} فایل لە {{total}} بارکران", + "fileLoadedOfTotalCount_other": "{{displayCount}} فایل لە {{total}} بارکران", "filesStillLoading": "فایلەکان هێشتا بار دەکرێن. بۆ نوێکردنەوە ڕایبکێشە.", "goToOverview": "چوون بۆ کورتەی گشتی", "goToOverviewTab": "چوون بۆ تابێکی کورتەی گشتی" @@ -288,8 +290,9 @@ "resolved": "چارەسەر کرا", "outdated": "بەسەرچوو", "file": "فایل", - "oneComment": "١ بۆچوون", - "commentCount": "{{count}} بۆچوون", + "comment_one": "١ بۆچوون", + "comment": "{{displayCount}} بۆچوون", + "comment_other": "{{displayCount}} بۆچوون", "startedRelative": " · دەستی پێکرد {{relative}}", "couldNotLoadMore": "نەتوانرا بۆچوونە زیاتر بار بکرێن.", "retryLoadingMore": "دووبارە هەوڵدانەوەی بارکردنی بۆچوونە زیاتر", @@ -299,8 +302,9 @@ "reactionsTitle": "کاردانەوەکان", "addReaction": "زیادکردنی کاردانەوە", "reactionPill": "{{emoji}} کاردانەوە، {{count}} {{countLabel}}", - "reactionSingular": "کاردانەوە", - "reactionPlural": "کاردانەوەکان", + "reaction_one": "کاردانەوە", + "reaction": "کاردانەوەکان", + "reaction_other": "کاردانەوەکان", "commentActions": "کردارەکانی بۆچوون", "reportContent": "ڕاپۆرتکردنی ناوەڕۆک", "reportUser": "ڕاپۆرتکردنی بەکارهێنەر", @@ -452,8 +456,9 @@ "deletePendingMessage": "ئەم بۆچوونە لە ڕیزەکەی پێداچوونەوە لادەبرێت.", "delete": "سڕینەوە", "summaryOptional": "کورتە (هەڵبژاردەیی)", - "pendingCommentSingular": "بۆچوونی چاوەڕوان", - "pendingCommentPlural": "بۆچوونە چاوەڕوانەکان", + "pendingComment_one": "بۆچوونی چاوەڕوان", + "pendingComment": "بۆچوونە چاوەڕوانەکان", + "pendingComment_other": "بۆچوونە چاوەڕوانەکان", "submitCountOfTotal": "ناردنی {{freshCount}} لە {{totalCount}} بۆچوون", "submitReview": "ناردنی پێداچوونەوە", "partialPostedMessage": "{{freshCount}} بۆچوون نێردرا. {{staleCount}} بۆچوون ئاماژە بە کۆمیتێکی کۆن دەکەن و لە ڕیزەکەتدا مانەوە." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "کراوە · پێداچوونەوە پێویستە", "stateOpen": "کراوە", "unknownAuthor": "نووسەری نەناسراو", - "commitSingular": "کۆمیت", - "commitPlural": "کۆمیتەکان", - "fileSingular": "فایل", - "filePlural": "فایلەکان" + "commit_one": "کۆمیت", + "commit": "کۆمیتەکان", + "commit_other": "کۆمیتەکان", + "file_one": "فایل", + "file": "فایلەکان", + "file_other": "فایلەکان" }, "pendingComment": { "editOutdatedA11y": "دەستکاریکردنی بۆچوونی چاوەڕوانی بەسەرچوو لەسەر {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "کەسێک", - "oneTyping": "{{name}} لە نووسینە...", - "manyTyping": "{{names}} لە نووسینن..." + "typing_one": "{{name}} لە نووسینە...", + "typing": "{{names}} لە نووسینن...", + "typing_other": "{{names}} لە نووسینن..." }, "botStatus": { "online": "سەرهێڵ", @@ -722,12 +730,10 @@ "couldNotLoad": "نەتوانرا زانیارییەکانی پارەدان بار بکرێن", "manageOnWeb": "بەڕێوەبردنی پارەدان لە وێب", "commitPlan": "پابەندبوون", - "daysLeft": "{{count}} ڕۆژ ماوە", "earlybird": "Earlybird", "finalCommitTermEndsOn": "وادەی کۆتایی پابەندبوونەکەت لە {{date}} کۆتایی دێت. وەک Standard بەردەوام بە بە {{price}}، یان میوانداری کۆتایی دێت.", "freeTrial": "تاقیکردنەوەی بەخۆڕایی", "hostingEnds": "میوانداری کۆتایی دێت", - "oneDayLeft": "١ ڕۆژ ماوە", "renews": "دووبارە نوێ دەکرێتەوە", "standardMonthToMonth": "Standard بە مانگانە", "standardStartsOn": "Standard لە {{date}} دەست پێدەکات بە {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} پێویستی بە سەرنجە: {{label}}", - "openUnreadOne": "کردنەوەی {{name}}، {{count}} نامەی نەخوێندراوەوە", - "openUnreadMany": "کردنەوەی {{name}}، {{count}} نامەی نەخوێندراوەوە", + "openUnread_one": "کردنەوەی {{name}}، {{displayCount}} نامەی نەخوێندراوەوە", + "openUnread": "کردنەوەی {{name}}، {{displayCount}} نامەی نەخوێندراوەوە", + "openUnread_other": "کردنەوەی {{name}}، {{displayCount}} نامەی نەخوێندراوەوە", "open": "کردنەوەی {{name}}", "openSettings": "کردنەوەی ڕێکخستنەکان بۆ {{name}}", "fixOnKiloAi": "چاکسازی لەسەر kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "چالاککردنی چاکسازی ئۆتۆماتیکی؟", "enableAutoRemediationConfirmMessage": "ئەجێنتی ئاسایش بۆ دۆزینەوە بەکارهێنراوە گونجاوەکان بە شێوەی ئۆتۆماتیکی PRی چاکسازی دەکاتەوە.", "enable": "چالاککردن", - "queuedOne": "{{count}} دۆزینەوەی هەبوو بۆ شیکاری ڕیزکراوە.", - "queuedMany": "{{count}} دۆزینەوەی هەبوو بۆ شیکاری ڕیزکراون.", + "queued_one": "{{displayCount}} دۆزینەوەی هەبوو بۆ شیکاری ڕیزکراوە.", + "queued": "{{displayCount}} دۆزینەوەی هەبوو بۆ شیکاری ڕیزکراون.", + "queued_other": "{{displayCount}} دۆزینەوەی هەبوو بۆ شیکاری ڕیزکراون.", "severityCriticalOnly": "تەنها گرنگ", "severityHighAndAbove": "بەرز و بەرزتر", "severityMediumAndAbove": "ناوەندی و سەرەوە", @@ -1482,8 +1490,9 @@ "on": "کراوە", "off": "داخراوە", "allRepositories": "هەموو کۆگاکان", - "repositorySelected": "{{count}} کۆگا هەڵبژێردراوە", - "repositoriesSelected": "{{count}} کۆگا هەڵبژێردراون", + "repositoriesCount_one": "{{displayCount}} کۆگا هەڵبژێردراوە", + "repositoriesCount": "{{displayCount}} کۆگا هەڵبژێردراون", + "repositoriesCount_other": "{{displayCount}} کۆگا هەڵبژێردراون", "selectRepositories": "هەڵبژاردنی کۆگاکان", "selectRepositoriesSubtitle": "دیاری بکە ئەرکى ئاسایش چ کۆگایانە چاودێری دەکات", "repositories": "کۆگاکان", @@ -1720,10 +1729,12 @@ "sessionDeleted": "سێشن سڕایەوە", "needsInput": "پێویستی بە داخڵکردن", "fromPlatform": "لە {{platform}}", - "centOne": "سەنت", - "centOther": "سەنت", - "dollarOne": "دۆلار", - "dollarOther": "دۆلار" + "cent_one": "سەنت", + "cent": "سەنت", + "cent_other": "سەنت", + "dollar_one": "دۆلار", + "dollar": "دۆلار", + "dollar_other": "دۆلار" }, "githubInstall": { "couldNotOpenTitle": "نەتوانرا GitHub بکرێتەوە", @@ -1817,8 +1828,9 @@ "discardFailed": "نەتوانرا لە نوسینەکە وازبهێنرێت. تکایە دووبارە هەوڵ بدە." }, "partRenderer": { - "updatedFile": "{{count}} پەڕگە نوێکرایەوە", - "updatedFiles": "{{count}} پەڕگە نوێکرانەوە" + "updatedFileCount_one": "{{displayCount}} پەڕگە نوێکرایەوە", + "updatedFileCount": "{{displayCount}} پەڕگە نوێکرانەوە", + "updatedFileCount_other": "{{displayCount}} پەڕگە نوێکرانەوە" }, "toolPatch": { "operationAdded": "زیادکرا", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "نامە پێشووەکان بارکران", "retryHint": "دووبارە هەوڵی بارکردنی نامە پێشووەکان بۆ ئەم دانیشتنە دەداتەوە.", - "omittedOne": "هەندێک بەندی پێشووی ئەم دانیشتنە نەتوانرا پیشان بدرێت.", - "omittedMany": "{{count}} بەندی پێشووی ئەم دانیشتنە نەتوانرا پیشان بدرێت.", + "omitted_one": "هەندێک بەندی پێشووی ئەم دانیشتنە نەتوانرا پیشان بدرێت.", + "omitted": "{{displayCount}} بەندی پێشووی ئەم دانیشتنە نەتوانرا پیشان بدرێت.", + "omitted_other": "{{displayCount}} بەندی پێشووی ئەم دانیشتنە نەتوانرا پیشان بدرێت.", "couldNotLoad": "نەتوانرا نامە پێشووەکان باربکرێت.", "unavailable": "نامە پێشووەکان بەردەست نین.", "tooLarge": "نامە پێشووەکان زۆر گەورەن بۆ بارکردن." @@ -2069,10 +2082,12 @@ "viewTable": "بینینی خشتەکە", "title": "خشتە", "close": "داخستنی خشتەکە", - "column": "ئەستوون", - "columns": "ئەستوونەکان", - "row": "ڕیز", - "rows": "ڕیزەکان", + "columnCount_one": "ئەستوون", + "columnCount": "ئەستوونەکان", + "columnCount_other": "ئەستوونەکان", + "rowCount_one": "ڕیز", + "rowCount": "ڕیزەکان", + "rowCount_other": "ڕیزەکان", "opensFullScreen": "شاشەی پڕ دەکاتەوە" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "لە {{window}} تۆکن", "tokens": "تۆکن", "tokensWithPercentage": "تۆکن ({{percentage}})", - "stepsCountOne": "{{steps}} هەنگاو", - "stepsCountMany": "{{steps}} هەنگاو", + "stepsCount_one": "{{steps}} هەنگاو", + "stepsCount": "{{steps}} هەنگاو", + "stepsCount_other": "{{steps}} هەنگاو", "modelAccessibilityLabel": "{{name}}، {{provider}}، {{steps}}، {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "ئەرکی کۆدکردنی نوێ", "explore": "گەڕان", "seeAll": "بینینی هەموو", - "kiloAgents": "ئەجێنتەکانی Kilo", - "greetingMorning": "بەیانی باش", - "greetingAfternoon": "نیوەڕۆ باش", - "greetingEvening": "ئێوارە باش" + "kiloAgents": "ئەجێنتەکانی Kilo" }, "imageViewer": { "close": "داخستنی {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "بەڕێوەبردنی Kilo Pass لەسەر وێب دەکاتەوە.", "notSubscribed": "بەشدارنەبوو", "overallocated": "تەرخانکردنەکانی Pass لە شوێنی پارەدراو زیاترن", - "paidSeatOne": "{{count}} شوێنی پارەدراو", - "paidSeatOther": "{{count}} شوێنی پارەدراو", + "paidSeat_one": "{{displayCount}} شوێنی پارەدراو", + "paidSeat": "{{displayCount}} شوێنی پارەدراو", + "paidSeat_other": "{{displayCount}} شوێنی پارەدراو", "paymentNeedsAttention": "پارەدان پێویستی بە سەرنجە", "paymentPending": "پارەدان چاوەڕوانە", "processingBlocked": "دەرخستن گیرا", diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index e9beb44c9c..d38ebf6bd5 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Načteno {{loaded}} z {{total}} souborů", "loadAllFiles": "Načíst všechny soubory", "loadAll": "Načíst vše", - "fileLoaded": "Načten {{count}} soubor", - "filesLoaded": "Načteno {{count}} souborů", - "fileLoadedOfTotal": "Načten {{count}} soubor z {{total}}", - "filesLoadedOfTotal": "Načteno {{count}} souborů z {{total}}", + "fileLoadedCount_one": "Načten {{displayCount}} soubor", + "fileLoadedCount": "Načteno {{displayCount}} souborů", + "fileLoadedCount_other": "Načteno {{displayCount}} souborů", + "fileLoadedOfTotalCount_one": "Načten {{displayCount}} soubor z {{total}}", + "fileLoadedOfTotalCount": "Načteno {{displayCount}} souborů z {{total}}", + "fileLoadedOfTotalCount_other": "Načteno {{displayCount}} souborů z {{total}}", "filesStillLoading": "Soubory se stále načítají. Potažením obnovíte.", "goToOverview": "Přejít na přehled", "goToOverviewTab": "Přejít na kartu Přehled" @@ -288,8 +290,9 @@ "resolved": "Vyřešeno", "outdated": "Zastaralé", "file": "Soubor", - "oneComment": "1 komentář", - "commentCount": "{{count}} komentářů", + "comment_one": "1 komentář", + "comment": "{{displayCount}} komentářů", + "comment_other": "{{displayCount}} komentářů", "startedRelative": " · zahájeno {{relative}}", "couldNotLoadMore": "Další komentáře se nepodařilo načíst.", "retryLoadingMore": "Zkusit znovu načíst další komentáře", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakce", "addReaction": "Přidat reakci", "reactionPill": "{{emoji}} reakce, {{count}} {{countLabel}}", - "reactionSingular": "reakce", - "reactionPlural": "reakce", + "reaction_one": "reakce", + "reaction": "reakce", + "reaction_other": "reakce", "commentActions": "Akce komentáře", "reportContent": "Nahlásit obsah", "reportUser": "Nahlásit uživatele", @@ -452,8 +456,9 @@ "deletePendingMessage": "Tento komentář bude odebrán z fronty recenzí.", "delete": "Smazat", "summaryOptional": "Shrnutí (volitelné)", - "pendingCommentSingular": "čekající komentář", - "pendingCommentPlural": "čekající komentáře", + "pendingComment_one": "čekající komentář", + "pendingComment": "čekající komentáře", + "pendingComment_other": "čekající komentáře", "submitCountOfTotal": "Odeslat {{freshCount}} z {{totalCount}} komentářů", "submitReview": "Odeslat recenzi", "partialPostedMessage": "Odesláno {{freshCount}} komentářů. {{staleCount}} komentářů odkazuje na starší commit a zůstalo ve vaší frontě." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Otevřeno · Recenze vyžadována", "stateOpen": "Otevřeno", "unknownAuthor": "Neznámý autor", - "commitSingular": "commit", - "commitPlural": "commity", - "fileSingular": "soubor", - "filePlural": "soubory" + "commit_one": "commit", + "commit": "commity", + "commit_other": "commity", + "file_one": "soubor", + "file": "soubory", + "file_other": "soubory" }, "pendingComment": { "editOutdatedA11y": "Upravit zastaralý čekající komentář na {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Někdo", - "oneTyping": "{{name}} píše…", - "manyTyping": "{{names}} píší…" + "typing_one": "{{name}} píše…", + "typing": "{{names}} píší…", + "typing_other": "{{names}} píší…" }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Informace o fakturaci se nepodařilo načíst", "manageOnWeb": "Spravovat fakturaci na webu", "commitPlan": "Commit", - "daysLeft": "{{count}} dní zbývá", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Vaše konečné období Commit končí {{date}}. Pokračujte jako Standard za {{price}}, jinak hosting skončí.", "freeTrial": "Bezplatná zkušební verze", "hostingEnds": "Hosting končí", - "oneDayLeft": "Zbývá 1 den", "renews": "Obnovuje se", "standardMonthToMonth": "Standardní měsíční", "standardStartsOn": "Standard začíná {{date}} za {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} vyžaduje pozornost: {{label}}", - "openUnreadOne": "Otevřít {{name}}, {{count}} nepřečtená zpráva", - "openUnreadMany": "Otevřít {{name}}, {{count}} nepřečtených zpráv", + "openUnread_one": "Otevřít {{name}}, {{displayCount}} nepřečtená zpráva", + "openUnread": "Otevřít {{name}}, {{displayCount}} nepřečtených zpráv", + "openUnread_other": "Otevřít {{name}}, {{displayCount}} nepřečtených zpráv", "open": "Otevřít {{name}}", "openSettings": "Otevřít nastavení pro {{name}}", "fixOnKiloAi": "Opravit na kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Povolit automatickou nápravu?", "enableAutoRemediationConfirmMessage": "Security Agent bude automaticky otevírat PR pro nápravu u způsobilých zneužitelných nálezů.", "enable": "Povolit", - "queuedOne": "{{count}} stávající zjištění čeká na analýzu.", - "queuedMany": "{{count}} stávajících zjištění čeká na analýzu.", + "queued_one": "{{displayCount}} stávající zjištění čeká na analýzu.", + "queued": "{{displayCount}} stávajících zjištění čeká na analýzu.", + "queued_other": "{{displayCount}} stávajících zjištění čeká na analýzu.", "severityCriticalOnly": "Pouze kritické", "severityHighAndAbove": "Vysoké a vyšší", "severityMediumAndAbove": "Střední a vyšší", @@ -1482,8 +1490,9 @@ "on": "Zapnuto", "off": "Vypnuto", "allRepositories": "Všechny repozitáře", - "repositorySelected": "{{count}} vybraný repozitář", - "repositoriesSelected": "{{count}} vybraných repozitářů", + "repositoriesCount_one": "{{displayCount}} vybraný repozitář", + "repositoriesCount": "{{displayCount}} vybraných repozitářů", + "repositoriesCount_other": "{{displayCount}} vybraných repozitářů", "selectRepositories": "Vybrat repozitáře", "selectRepositoriesSubtitle": "Vyberte, které repozitáře Security Agent monitoruje", "repositories": "Repozitáře", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Relace smazána", "needsInput": "vyžaduje vstup", "fromPlatform": "z {{platform}}", - "centOne": "cent", - "centOther": "centů", - "dollarOne": "dolar", - "dollarOther": "dolarů" + "cent_one": "cent", + "cent": "centů", + "cent_other": "centů", + "dollar_one": "dolar", + "dollar": "dolarů", + "dollar_other": "dolarů" }, "githubInstall": { "couldNotOpenTitle": "GitHub se nepodařilo otevřít", @@ -1817,8 +1828,9 @@ "discardFailed": "Koncept se nepodařilo zahodit. Zkuste to znovu." }, "partRenderer": { - "updatedFile": "Aktualizován {{count}} soubor", - "updatedFiles": "Aktualizováno {{count}} souborů" + "updatedFileCount_one": "Aktualizován {{displayCount}} soubor", + "updatedFileCount": "Aktualizováno {{displayCount}} souborů", + "updatedFileCount_other": "Aktualizováno {{displayCount}} souborů" }, "toolPatch": { "operationAdded": "Přidáno", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Načteny dřívější zprávy", "retryHint": "Znovu se pokusí načíst dřívější zprávy pro tuto relaci.", - "omittedOne": "Některé dřívější položky z této relace nebylo možné zobrazit.", - "omittedMany": "{{count}} dřívějších položek z této relace nebylo možné zobrazit.", + "omitted_one": "Některé dřívější položky z této relace nebylo možné zobrazit.", + "omitted": "{{displayCount}} dřívějších položek z této relace nebylo možné zobrazit.", + "omitted_other": "{{displayCount}} dřívějších položek z této relace nebylo možné zobrazit.", "couldNotLoad": "Dřívější zprávy se nepodařilo načíst.", "unavailable": "Dřívější zprávy nejsou k dispozici.", "tooLarge": "Dřívější zprávy jsou příliš velké na načtení." @@ -2069,10 +2082,12 @@ "viewTable": "Zobrazit tabulku", "title": "Tabulka", "close": "Zavřít tabulku", - "column": "sloupec", - "columns": "sloupce", - "row": "řádek", - "rows": "řádky", + "columnCount_one": "sloupec", + "columnCount": "sloupce", + "columnCount_other": "sloupce", + "rowCount_one": "řádek", + "rowCount": "řádky", + "rowCount_other": "řádky", "opensFullScreen": "otevře celou obrazovku" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "z {{window}} tokenů", "tokens": "tokeny", "tokensWithPercentage": "tokeny ({{percentage}})", - "stepsCountOne": "{{steps}} krok", - "stepsCountMany": "{{steps}} kroků", + "stepsCount_one": "{{steps}} krok", + "stepsCount": "{{steps}} kroků", + "stepsCount_other": "{{steps}} kroků", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nový programovací úkol", "explore": "Prozkoumat", "seeAll": "Zobrazit vše", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Dobré ráno", - "greetingAfternoon": "Dobré odpoledne", - "greetingEvening": "Dobrý večer" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Zavřít {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Otevře správu Kilo Pass na webu.", "notSubscribed": "Bez předplatného", "overallocated": "Přiřazení Pass přesahují placená sedadla", - "paidSeatOne": "{{count}} placené sedadlo", - "paidSeatOther": "{{count}} placených sedadel", + "paidSeat_one": "{{displayCount}} placené sedadlo", + "paidSeat": "{{displayCount}} placených sedadel", + "paidSeat_other": "{{displayCount}} placených sedadel", "paymentNeedsAttention": "Platba vyžaduje pozornost", "paymentPending": "Platba čeká", "processingBlocked": "Zpracování blokováno", diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 5885a89732..28a8de7831 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} o {{total}} ffeil wedi'u llwytho", "loadAllFiles": "Llwytho'r holl ffeiliau", "loadAll": "Llwytho'r cyfan", - "fileLoaded": "{{count}} ffeil wedi'i llwytho", - "filesLoaded": "{{count}} ffeil wedi'u llwytho", - "fileLoadedOfTotal": "{{count}} ffeil wedi'i llwytho o {{total}}", - "filesLoadedOfTotal": "{{count}} ffeil wedi'u llwytho o {{total}}", + "fileLoadedCount_one": "{{displayCount}} ffeil wedi'i llwytho", + "fileLoadedCount": "{{displayCount}} ffeil wedi'u llwytho", + "fileLoadedCount_other": "{{displayCount}} ffeil wedi'u llwytho", + "fileLoadedOfTotalCount_one": "{{displayCount}} ffeil wedi'i llwytho o {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} ffeil wedi'u llwytho o {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} ffeil wedi'u llwytho o {{total}}", "filesStillLoading": "Mae ffeiliau'n dal i lwytho. Llusgwch i adnewyddu.", "goToOverview": "Ewch i'r Trosolwg", "goToOverviewTab": "Ewch i dab Trosolwg" @@ -288,8 +290,9 @@ "resolved": "Wedi'i ddatrys", "outdated": "Hen ffasiwn", "file": "Ffeil", - "oneComment": "1 sylw", - "commentCount": "{{count}} sylw", + "comment_one": "1 sylw", + "comment": "{{displayCount}} sylw", + "comment_other": "{{displayCount}} sylw", "startedRelative": " · dechreuodd {{relative}}", "couldNotLoadMore": "Ni ellid llwytho mwy o sylwadau.", "retryLoadingMore": "Rhoi cynnig eto ar lwytho mwy o sylwadau", @@ -299,8 +302,9 @@ "reactionsTitle": "Ymatebion", "addReaction": "Ychwanegu ymateb", "reactionPill": "{{emoji}} ymateb, {{count}} {{countLabel}}", - "reactionSingular": "ymateb", - "reactionPlural": "ymatebion", + "reaction_one": "ymateb", + "reaction": "ymatebion", + "reaction_other": "ymatebion", "commentActions": "Gweithredoedd sylw", "reportContent": "Adrodd am gynnwys", "reportUser": "Adrodd am ddefnyddiwr", @@ -452,8 +456,9 @@ "deletePendingMessage": "Bydd y sylw hwn yn cael ei dynnu o'r ciw adolygu.", "delete": "Dileu", "summaryOptional": "Crynodeb (dewisol)", - "pendingCommentSingular": "sylw ar y gweill", - "pendingCommentPlural": "sylwadau ar y gweill", + "pendingComment_one": "sylw ar y gweill", + "pendingComment": "sylwadau ar y gweill", + "pendingComment_other": "sylwadau ar y gweill", "submitCountOfTotal": "Cyflwyno {{freshCount}} o {{totalCount}} sylw", "submitReview": "Cyflwyno adolygiad", "partialPostedMessage": "Postiwyd {{freshCount}} sylw(adau). Mae {{staleCount}} sylw(adau) yn pwyntio at ymrwymiad hŷn ac arhosodd yn eich ciw." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Ar agor · Adolygiad yn ofynnol", "stateOpen": "Ar agor", "unknownAuthor": "Awdur anhysbys", - "commitSingular": "ymrwymiad", - "commitPlural": "ymrwymiadau", - "fileSingular": "ffeil", - "filePlural": "ffeiliau" + "commit_one": "ymrwymiad", + "commit": "ymrwymiadau", + "commit_other": "ymrwymiadau", + "file_one": "ffeil", + "file": "ffeiliau", + "file_other": "ffeiliau" }, "pendingComment": { "editOutdatedA11y": "Golygu sylw ar y gweill hen ffasiwn ar {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Rhywun", - "oneTyping": "Mae {{name}} yn teipio...", - "manyTyping": "Mae {{names}} yn teipio..." + "typing_one": "Mae {{name}} yn teipio...", + "typing": "Mae {{names}} yn teipio...", + "typing_other": "Mae {{names}} yn teipio..." }, "botStatus": { "online": "Ar-lein", @@ -722,12 +730,10 @@ "couldNotLoad": "Methodd llwytho gwybodaeth bilio", "manageOnWeb": "Rheoli Bilio ar y We", "commitPlan": "Ymrwymo", - "daysLeft": "{{count}} o ddyddiau ar ôl", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Daw eich tymor Ymrwymo olaf i ben ar {{date}}. Parhewch fel Safonol am {{price}}, neu daw cynnal i ben.", "freeTrial": "Treial Rhad", "hostingEnds": "Daw cynnal i ben", - "oneDayLeft": "1 diwrnod ar ôl", "renews": "Yn adnewyddu", "standardMonthToMonth": "Safonol o fis i fis", "standardStartsOn": "Mae Safonol yn dechrau ar {{date}} am {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "Mae angen sylw ar {{name}}: {{label}}", - "openUnreadOne": "Agor {{name}}, {{count}} neges heb ei darllen", - "openUnreadMany": "Agor {{name}}, {{count}} o negeseuon heb eu darllen", + "openUnread_one": "Agor {{name}}, {{displayCount}} neges heb ei darllen", + "openUnread": "Agor {{name}}, {{displayCount}} o negeseuon heb eu darllen", + "openUnread_other": "Agor {{name}}, {{displayCount}} o negeseuon heb eu darllen", "open": "Agor {{name}}", "openSettings": "Agor gosodiadau ar gyfer {{name}}", "fixOnKiloAi": "Trwsio ar kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Galluogi adfer awto?", "enableAutoRemediationConfirmMessage": "Bydd Asiant Diogelwch yn agor PRs adfer yn awtomatig ar gyfer canfyddiadau ecsbloetiadwy cymwys.", "enable": "Galluogi", - "queuedOne": "Mae {{count}} canfyddiad presennol wedi'i roi mewn ciw ar gyfer dadansoddi.", - "queuedMany": "Mae {{count}} canfyddiad presennol wedi'u rhoi mewn ciw ar gyfer dadansoddi.", + "queued_one": "Mae {{displayCount}} canfyddiad presennol wedi'i roi mewn ciw ar gyfer dadansoddi.", + "queued": "Mae {{displayCount}} canfyddiad presennol wedi'u rhoi mewn ciw ar gyfer dadansoddi.", + "queued_other": "Mae {{displayCount}} canfyddiad presennol wedi'u rhoi mewn ciw ar gyfer dadansoddi.", "severityCriticalOnly": "Critigol yn unig", "severityHighAndAbove": "Uchel ac uwch", "severityMediumAndAbove": "Canolig ac uwch", @@ -1482,8 +1490,9 @@ "on": "Ymlaen", "off": "I ffwrdd", "allRepositories": "Pob ystorfa", - "repositorySelected": "{{count}} ystorfa wedi'i dewis", - "repositoriesSelected": "{{count}} ystorfeydd wedi'u dewis", + "repositoriesCount_one": "{{displayCount}} ystorfa wedi'i dewis", + "repositoriesCount": "{{displayCount}} ystorfeydd wedi'u dewis", + "repositoriesCount_other": "{{displayCount}} ystorfeydd wedi'u dewis", "selectRepositories": "Dewis ystorfeydd", "selectRepositoriesSubtitle": "Dewiswch pa ystorfeydd y mae Security Agent yn eu monitro", "repositories": "Ystorfeydd", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesiwn wedi'i dileu", "needsInput": "angen mewnbwn", "fromPlatform": "o {{platform}}", - "centOne": "cent", - "centOther": "cents", - "dollarOne": "doler", - "dollarOther": "doleri" + "cent_one": "cent", + "cent": "cents", + "cent_other": "cents", + "dollar_one": "doler", + "dollar": "doleri", + "dollar_other": "doleri" }, "githubInstall": { "couldNotOpenTitle": "Methwyd agor GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Methwyd taflu'r drafft. Ceisiwch eto." }, "partRenderer": { - "updatedFile": "Diweddarwyd {{count}} ffeil", - "updatedFiles": "Diweddarwyd {{count}} ffeiliau" + "updatedFileCount_one": "Diweddarwyd {{displayCount}} ffeil", + "updatedFileCount": "Diweddarwyd {{displayCount}} ffeiliau", + "updatedFileCount_other": "Diweddarwyd {{displayCount}} ffeiliau" }, "toolPatch": { "operationAdded": "Ychwanegwyd", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Llwythwyd negeseuon cynharach", "retryHint": "Yn ailgynnig llwytho'r negeseuon cynharach ar gyfer y sesiwn hon.", - "omittedOne": "Ni ellid arddangos rhai eitemau cynharach o'r sesiwn hon.", - "omittedMany": "Ni ellid arddangos {{count}} eitem cynharach o'r sesiwn hon.", + "omitted_one": "Ni ellid arddangos rhai eitemau cynharach o'r sesiwn hon.", + "omitted": "Ni ellid arddangos {{displayCount}} eitem cynharach o'r sesiwn hon.", + "omitted_other": "Ni ellid arddangos {{displayCount}} eitem cynharach o'r sesiwn hon.", "couldNotLoad": "Methwyd llwytho negeseuon cynharach.", "unavailable": "Nid yw negeseuon cynharach ar gael.", "tooLarge": "Mae negeseuon cynharach yn rhy fawr i'w llwytho." @@ -2069,10 +2082,12 @@ "viewTable": "Gweld y tabl", "title": "Tabl", "close": "Cau'r tabl", - "column": "colofn", - "columns": "colofnau", - "row": "rhes", - "rows": "rhesi", + "columnCount_one": "colofn", + "columnCount": "colofnau", + "columnCount_other": "colofnau", + "rowCount_one": "rhes", + "rowCount": "rhesi", + "rowCount_other": "rhesi", "opensFullScreen": "agor ar sgrin lawn" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "o {{window}} token", "tokens": "tokenau", "tokensWithPercentage": "tokenau ({{percentage}})", - "stepsCountOne": "{{steps}} cam", - "stepsCountMany": "{{steps}} cam", + "stepsCount_one": "{{steps}} cam", + "stepsCount": "{{steps}} cam", + "stepsCount_other": "{{steps}} cam", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Tasg codio newydd", "explore": "Archwilio", "seeAll": "Gweld y cyfan", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Bore da", - "greetingAfternoon": "Prynhawn da", - "greetingEvening": "Noswaith dda" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Cau {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Yn agor rheolaeth Kilo Pass ar y we.", "notSubscribed": "Heb danysgrifio", "overallocated": "Mae aseiniadau Pass yn fwy na seddau taledig", - "paidSeatOne": "{{count}} sedd daledig", - "paidSeatOther": "{{count}} sedd daledig", + "paidSeat_one": "{{displayCount}} sedd daledig", + "paidSeat": "{{displayCount}} sedd daledig", + "paidSeat_other": "{{displayCount}} sedd daledig", "paymentNeedsAttention": "Mae angen sylw ar y taliad", "paymentPending": "Taliad yn aros", "processingBlocked": "Prosesu wedi'i rwystro", diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index 7f387012fb..e1e1fd7707 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} af {{total}} filer indlæst", "loadAllFiles": "Indlæs alle filer", "loadAll": "Indlæs alle", - "fileLoaded": "{{count}} fil indlæst", - "filesLoaded": "{{count}} filer indlæst", - "fileLoadedOfTotal": "{{count}} fil indlæst af {{total}}", - "filesLoadedOfTotal": "{{count}} filer indlæst af {{total}}", + "fileLoadedCount_one": "{{displayCount}} fil indlæst", + "fileLoadedCount": "{{displayCount}} filer indlæst", + "fileLoadedCount_other": "{{displayCount}} filer indlæst", + "fileLoadedOfTotalCount_one": "{{displayCount}} fil indlæst af {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} filer indlæst af {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} filer indlæst af {{total}}", "filesStillLoading": "Filer indlæses stadig. Træk ned for at opdatere.", "goToOverview": "Gå til oversigt", "goToOverviewTab": "Gå til fanen Oversigt" @@ -288,8 +290,9 @@ "resolved": "Løst", "outdated": "Forældet", "file": "Fil", - "oneComment": "1 kommentar", - "commentCount": "{{count}} kommentarer", + "comment_one": "1 kommentar", + "comment": "{{displayCount}} kommentarer", + "comment_other": "{{displayCount}} kommentarer", "startedRelative": " · startet {{relative}}", "couldNotLoadMore": "Kunne ikke indlæse flere kommentarer.", "retryLoadingMore": "Prøv at indlæse flere kommentarer igen", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaktioner", "addReaction": "Tilføj reaktion", "reactionPill": "{{emoji}} reaktion, {{count}} {{countLabel}}", - "reactionSingular": "reaktion", - "reactionPlural": "reaktioner", + "reaction_one": "reaktion", + "reaction": "reaktioner", + "reaction_other": "reaktioner", "commentActions": "Kommentarhandlinger", "reportContent": "Rapportér indhold", "reportUser": "Rapportér bruger", @@ -452,8 +456,9 @@ "deletePendingMessage": "Denne kommentar fjernes fra anmeldelseskøen.", "delete": "Slet", "summaryOptional": "Resumé (valgfrit)", - "pendingCommentSingular": "ventende kommentar", - "pendingCommentPlural": "ventende kommentarer", + "pendingComment_one": "ventende kommentar", + "pendingComment": "ventende kommentarer", + "pendingComment_other": "ventende kommentarer", "submitCountOfTotal": "Send {{freshCount}} af {{totalCount}} kommentarer", "submitReview": "Send anmeldelse", "partialPostedMessage": "Sendte {{freshCount}} kommentar(er). {{staleCount}} kommentar(er) peger på en ældre commit og blev i din kø." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Åben · Anmeldelse påkrævet", "stateOpen": "Åben", "unknownAuthor": "Ukendt forfatter", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fil", - "filePlural": "filer" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fil", + "file": "filer", + "file_other": "filer" }, "pendingComment": { "editOutdatedA11y": "Rediger forældet ventende kommentar på {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Nogen", - "oneTyping": "{{name}} skriver...", - "manyTyping": "{{names}} skriver..." + "typing_one": "{{name}} skriver...", + "typing": "{{names}} skriver...", + "typing_other": "{{names}} skriver..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Kunne ikke indlæse faktureringsoplysninger", "manageOnWeb": "Administrer fakturering på nettet", "commitPlan": "Commit", - "daysLeft": "{{count}} dage tilbage", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Din endelige Commit-periode slutter den {{date}}. Fortsæt som Standard til {{price}}, eller hosting slutter.", "freeTrial": "Gratis prøveperiode", "hostingEnds": "Hosting slutter", - "oneDayLeft": "1 dag tilbage", "renews": "Fornyes", "standardMonthToMonth": "Standard måned til måned", "standardStartsOn": "Standard starter den {{date}} til {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} kræver opmærksomhed: {{label}}", - "openUnreadOne": "Åbn {{name}}, {{count}} ulæst besked", - "openUnreadMany": "Åbn {{name}}, {{count}} ulæste beskeder", + "openUnread_one": "Åbn {{name}}, {{displayCount}} ulæst besked", + "openUnread": "Åbn {{name}}, {{displayCount}} ulæste beskeder", + "openUnread_other": "Åbn {{name}}, {{displayCount}} ulæste beskeder", "open": "Åbn {{name}}", "openSettings": "Åbn indstillinger for {{name}}", "fixOnKiloAi": "Ret på kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Aktivér autoudbedring?", "enableAutoRemediationConfirmMessage": "Security Agent åbner automatisk udbedrings-PR'er for berettigede udnyttelige fund.", "enable": "Aktivér", - "queuedOne": "{{count}} eksisterende fund kø i analyse.", - "queuedMany": "{{count}} eksisterende fund i kø til analyse.", + "queued_one": "{{displayCount}} eksisterende fund kø i analyse.", + "queued": "{{displayCount}} eksisterende fund i kø til analyse.", + "queued_other": "{{displayCount}} eksisterende fund i kø til analyse.", "severityCriticalOnly": "Kun kritisk", "severityHighAndAbove": "Høj og derover", "severityMediumAndAbove": "Middel og derover", @@ -1482,8 +1490,9 @@ "on": "Til", "off": "Fra", "allRepositories": "Alle repositories", - "repositorySelected": "{{count}} repository valgt", - "repositoriesSelected": "{{count}} repositories valgt", + "repositoriesCount_one": "{{displayCount}} repository valgt", + "repositoriesCount": "{{displayCount}} repositories valgt", + "repositoriesCount_other": "{{displayCount}} repositories valgt", "selectRepositories": "Vælg repositories", "selectRepositoriesSubtitle": "Vælg, hvilke repositories Security Agent overvåger", "repositories": "Repositories", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Session slettet", "needsInput": "kræver input", "fromPlatform": "fra {{platform}}", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dollar", - "dollarOther": "dollars" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dollar", + "dollar": "dollars", + "dollar_other": "dollars" }, "githubInstall": { "couldNotOpenTitle": "Kunne ikke åbne GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Kunne ikke kassere kladden. Prøv igen." }, "partRenderer": { - "updatedFile": "Opdaterede {{count}} fil", - "updatedFiles": "Opdaterede {{count}} filer" + "updatedFileCount_one": "Opdaterede {{displayCount}} fil", + "updatedFileCount": "Opdaterede {{displayCount}} filer", + "updatedFileCount_other": "Opdaterede {{displayCount}} filer" }, "toolPatch": { "operationAdded": "Tilføjet", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Tidligere beskeder indlæst", "retryHint": "Forsøger igen at indlæse de ældre beskeder for denne session.", - "omittedOne": "Nogle tidligere elementer fra denne session kunne ikke vises.", - "omittedMany": "{{count}} tidligere elementer fra denne session kunne ikke vises.", + "omitted_one": "Nogle tidligere elementer fra denne session kunne ikke vises.", + "omitted": "{{displayCount}} tidligere elementer fra denne session kunne ikke vises.", + "omitted_other": "{{displayCount}} tidligere elementer fra denne session kunne ikke vises.", "couldNotLoad": "Kunne ikke indlæse tidligere beskeder.", "unavailable": "Tidligere beskeder er ikke tilgængelige.", "tooLarge": "Tidligere beskeder er for store til at indlæse." @@ -2069,10 +2082,12 @@ "viewTable": "Vis tabel", "title": "Tabel", "close": "Luk tabel", - "column": "kolonne", - "columns": "kolonner", - "row": "række", - "rows": "rækker", + "columnCount_one": "kolonne", + "columnCount": "kolonner", + "columnCount_other": "kolonner", + "rowCount_one": "række", + "rowCount": "rækker", + "rowCount_other": "rækker", "opensFullScreen": "åbner i fuld skærm" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "af {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} trin", - "stepsCountMany": "{{steps}} trin", + "stepsCount_one": "{{steps}} trin", + "stepsCount": "{{steps}} trin", + "stepsCount_other": "{{steps}} trin", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Ny kodningsopgave", "explore": "Udforsk", "seeAll": "Se alle", - "kiloAgents": "Kilo Agents", - "greetingMorning": "God morgen", - "greetingAfternoon": "God eftermiddag", - "greetingEvening": "God aften" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Luk {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Åbner Kilo Pass-administration på nettet.", "notSubscribed": "Ikke abonneret", "overallocated": "Pass-tildelinger overstiger betalte pladser", - "paidSeatOne": "{{count}} betalt plads", - "paidSeatOther": "{{count}} betalte pladser", + "paidSeat_one": "{{displayCount}} betalt plads", + "paidSeat": "{{displayCount}} betalte pladser", + "paidSeat_other": "{{displayCount}} betalte pladser", "paymentNeedsAttention": "Betaling kræver opmærksomhed", "paymentPending": "Betaling afventer", "processingBlocked": "Behandling blokeret", diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index 5f743d9b30..9ebf5f1cd7 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Jemand", - "oneTyping": "{{name}} tippt...", - "manyTyping": "{{names}} tippen..." + "typing_one": "{{name}} tippt...", + "typing": "{{names}} tippen...", + "typing_other": "{{names}} tippen..." }, "botStatus": { "online": "Online", @@ -350,12 +351,10 @@ "couldNotLoad": "Abrechnungsdaten konnten nicht geladen werden", "manageOnWeb": "Abrechnung im Web verwalten", "commitPlan": "Commit", - "daysLeft": "{{count}} Tage verbleibend", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Deine letzte Commit-Laufzeit endet am {{date}}. Fahre als Standard für {{price}} fort, oder das Hosting endet.", "freeTrial": "Kostenlose Testphase", "hostingEnds": "Hosting endet", - "oneDayLeft": "1 Tag verbleibend", "renews": "Verlängert sich", "standardMonthToMonth": "Standard monatlich", "standardStartsOn": "Standard beginnt am {{date}} für {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} braucht Aufmerksamkeit: {{label}}", "open": "{{name}} öffnen", "openSettings": "Einstellungen für {{name}} öffnen", - "openUnreadMany": "{{name}} öffnen, {{count}} ungelesene Nachrichten", - "openUnreadOne": "{{name}} öffnen, {{count}} ungelesene Nachricht" + "openUnread": "{{name}} öffnen, {{displayCount}} ungelesene Nachrichten", + "openUnread_other": "{{name}} öffnen, {{displayCount}} ungelesene Nachrichten", + "openUnread_one": "{{name}} öffnen, {{displayCount}} ungelesene Nachricht" }, "list": { "createInstance": "Instanz erstellen", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Stellt auch bereits analysierte infrage kommende Findings in die Warteschlange. Doppelte PRs bleiben unterdrückt.", "minimumSeverity": "Mindestschweregrad", "permissionNote": "Nur Organisationsinhaber und Abrechnungsmanager können diese Einstellungen ändern.", - "queuedMany": "{{count}} bestehende Findings zur Analyse eingereiht.", - "queuedOne": "{{count}} bestehendes Finding zur Analyse eingereiht.", + "queued": "{{displayCount}} bestehende Findings zur Analyse eingereiht.", + "queued_other": "{{displayCount}} bestehende Findings zur Analyse eingereiht.", + "queued_one": "{{displayCount}} bestehendes Finding zur Analyse eingereiht.", "requireApproval": "Genehmigung vor automatischer Behebung erforderlich", "requireApprovalSubtitle": "Die automatische Behebung wartet vor dem Öffnen von PRs auf deine Genehmigung.", "severityAll": "Alle Schweregrade", @@ -1270,8 +1271,9 @@ "off": "Aus", "on": "Ein", "repositories": "Repositories", - "repositoriesSelected": "{{count}} Repositories ausgewählt", - "repositorySelected": "{{count}} Repository ausgewählt", + "repositoriesCount": "{{displayCount}} Repositories ausgewählt", + "repositoriesCount_other": "{{displayCount}} Repositories ausgewählt", + "repositoriesCount_one": "{{displayCount}} Repository ausgewählt", "securityAgent": "Security Agent", "selectRepositories": "Repositories auswählen", "selectRepositoriesSubtitle": "Wähle, welche Repositories Security Agent überwacht", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Sitzung gelöscht", "needsInput": "Eingabe erforderlich", "fromPlatform": "von {{platform}}", - "centOne": "Cent", - "centOther": "Cent", - "dollarOne": "Dollar", - "dollarOther": "Dollar" + "cent_one": "Cent", + "cent": "Cent", + "cent_other": "Cent", + "dollar_one": "Dollar", + "dollar": "Dollar", + "dollar_other": "Dollar" }, "githubInstall": { "couldNotOpenMessage": "Das Setup der GitHub-App konnte nicht gestartet werden. Bitte versuche es erneut.", @@ -1445,8 +1449,9 @@ "keepEditing": "Weiter bearbeiten" }, "partRenderer": { - "updatedFile": "{{count}} Datei aktualisiert", - "updatedFiles": "{{count}} Dateien aktualisiert" + "updatedFileCount_one": "{{displayCount}} Datei aktualisiert", + "updatedFileCount": "{{displayCount}} Dateien aktualisiert", + "updatedFileCount_other": "{{displayCount}} Dateien aktualisiert" }, "toolPatch": { "operationAdded": "Hinzugefügt", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Frühere Nachrichten geladen", "retryHint": "Versucht erneut, ältere Nachrichten dieser Sitzung zu laden.", - "omittedOne": "Ein früherer Eintrag dieser Sitzung konnte nicht angezeigt werden.", - "omittedMany": "{{count}} frühere Einträge dieser Sitzung konnten nicht angezeigt werden.", + "omitted_one": "Ein früherer Eintrag dieser Sitzung konnte nicht angezeigt werden.", + "omitted": "{{displayCount}} frühere Einträge dieser Sitzung konnten nicht angezeigt werden.", + "omitted_other": "{{displayCount}} frühere Einträge dieser Sitzung konnten nicht angezeigt werden.", "couldNotLoad": "Frühere Nachrichten konnten nicht geladen werden.", "unavailable": "Frühere Nachrichten sind nicht verfügbar.", "tooLarge": "Frühere Nachrichten sind zu groß zum Laden." @@ -1697,10 +1703,12 @@ "viewTable": "Tabelle ansehen", "title": "Tabelle", "close": "Tabelle schließen", - "column": "Spalte", - "columns": "Spalten", - "row": "Zeile", - "rows": "Zeilen", + "columnCount_one": "Spalte", + "columnCount": "Spalten", + "columnCount_other": "Spalten", + "rowCount_one": "Zeile", + "rowCount": "Zeilen", + "rowCount_other": "Zeilen", "opensFullScreen": "öffnet Vollbild" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "von {{window}} Tokens", "tokens": "Tokens", "tokensWithPercentage": "Tokens ({{percentage}})", - "stepsCountOne": "{{steps}} Schritt", - "stepsCountMany": "{{steps}} Schritte", + "stepsCount_one": "{{steps}} Schritt", + "stepsCount": "{{steps}} Schritte", + "stepsCount_other": "{{steps}} Schritte", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Neue Codieraufgabe", "explore": "Entdecken", "seeAll": "Alle ansehen", - "kiloAgents": "Kilo-Agenten", - "greetingMorning": "Guten Morgen", - "greetingAfternoon": "Guten Nachmittag", - "greetingEvening": "Guten Abend" + "kiloAgents": "Kilo-Agenten" }, "imageViewer": { "close": "{{filename}} schließen", @@ -2205,7 +2211,8 @@ "closeReactions": "Reaktionen schließen", "collapseThread": "Thread einklappen", "commentActions": "Kommentaraktionen", - "commentCount": "{{count}} Kommentare", + "comment": "{{displayCount}} Kommentare", + "comment_other": "{{displayCount}} Kommentare", "couldNotLoad": "Diskussion konnte nicht geladen werden", "couldNotLoadMore": "Weitere Kommentare konnten nicht geladen werden.", "couldNotReply": "Antwort konnte nicht gesendet werden.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} stummgeschaltet", "noDiscussion": "Noch keine Diskussion", "noDiscussionDescription": "Keine Review-Threads oder Konversationskommentare zu diesem Pull Request.", - "oneComment": "1 Kommentar", + "comment_one": "1 Kommentar", "outdated": "Veraltet", "quotedDiffSnippet": "Zitierter Diff-Ausschnitt", "reactionPill": "{{emoji}} Reaktion, {{count}} {{countLabel}}", - "reactionPlural": "Reaktionen", - "reactionSingular": "Reaktion", + "reaction": "Reaktionen", + "reaction_other": "Reaktionen", + "reaction_one": "Reaktion", "reactionsTitle": "Reaktionen", "reply": "Antworten", "replyBadRequest": "Diese Antwort kann nicht gesendet werden. Der Thread hat sich möglicherweise geändert.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "{{count}} weitere Zeilen ausklappen ({{start}}–{{end}})", "failedToLoadContext": "Kontext konnte nicht geladen werden — zum erneuten Versuch tippen", "failedToLoadMoreFiles": "Weitere Dateien konnten nicht geladen werden — zum erneuten Versuch tippen", - "fileLoaded": "{{count}} Datei geladen", - "fileLoadedOfTotal": "{{count}} Datei von {{total}} geladen", - "filesLoaded": "{{count}} Dateien geladen", - "filesLoadedOfTotal": "{{count}} Dateien von {{total}} geladen", + "fileLoadedCount_one": "{{displayCount}} Datei geladen", + "fileLoadedOfTotalCount_one": "{{displayCount}} Datei von {{total}} geladen", + "fileLoadedCount": "{{displayCount}} Dateien geladen", + "fileLoadedCount_other": "{{displayCount}} Dateien geladen", + "fileLoadedOfTotalCount": "{{displayCount}} Dateien von {{total}} geladen", + "fileLoadedOfTotalCount_other": "{{displayCount}} Dateien von {{total}} geladen", "filesStillLoading": "Dateien werden noch geladen. Zum Aktualisieren nach unten ziehen.", "goToOverview": "Zur Übersicht", "goToOverviewTab": "Zum Übersicht-Tab", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Keine Dateien geändert", "noFilesChangedDescription": "Dieser Pull Request enthält keine Dateiänderungen.", "overview": { - "commitPlural": "Commits", - "commitSingular": "Commit", - "filePlural": "Dateien", - "fileSingular": "Datei", + "commit": "Commits", + "commit_other": "Commits", + "commit_one": "Commit", + "file": "Dateien", + "file_other": "Dateien", + "file_one": "Datei", "stateClosed": "Geschlossen", "stateDraft": "Entwurf", "stateMerged": "Zusammengeführt", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Dieser Kommentar wird aus der Review-Warteschlange entfernt.", "deletePendingTitle": "Ausstehenden Kommentar löschen?", "loadFailedTitle": "Review-Übermittlung konnte nicht geladen werden", - "pendingCommentPlural": "ausstehende Kommentare", - "pendingCommentSingular": "ausstehender Kommentar", + "pendingComment": "ausstehende Kommentare", + "pendingComment_other": "ausstehende Kommentare", + "pendingComment_one": "ausstehender Kommentar", "summaryOptional": "Zusammenfassung (optional)", "title": "Review senden", "partialPostedMessage": "{{freshCount}} Kommentar(e) gesendet. {{staleCount}} Kommentar(e) beziehen sich auf einen älteren Commit und bleiben in deiner Warteschlange.", @@ -2632,8 +2645,9 @@ "manageHint": "Öffnet die Kilo-Pass-Verwaltung im Web.", "notSubscribed": "Nicht abonniert", "overallocated": "Pass-Zuweisungen überschreiten bezahlte Plätze", - "paidSeatOne": "{{count}} bezahlter Platz", - "paidSeatOther": "{{count}} bezahlte Plätze", + "paidSeat_one": "{{displayCount}} bezahlter Platz", + "paidSeat": "{{displayCount}} bezahlte Plätze", + "paidSeat_other": "{{displayCount}} bezahlte Plätze", "paymentNeedsAttention": "Zahlung braucht Aufmerksamkeit", "paymentPending": "Zahlung ausstehend", "processingBlocked": "Verarbeitung blockiert", diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index fda5c33da4..33b80a781e 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} από {{total}} αρχεία φορτώθηκαν", "loadAllFiles": "Φόρτωση όλων των αρχείων", "loadAll": "Φόρτωση όλων", - "fileLoaded": "{{count}} αρχείο φορτώθηκε", - "filesLoaded": "{{count}} αρχεία φορτώθηκαν", - "fileLoadedOfTotal": "{{count}} αρχείο φορτώθηκε από {{total}}", - "filesLoadedOfTotal": "{{count}} αρχεία φορτώθηκαν από {{total}}", + "fileLoadedCount_one": "{{displayCount}} αρχείο φορτώθηκε", + "fileLoadedCount": "{{displayCount}} αρχεία φορτώθηκαν", + "fileLoadedCount_other": "{{displayCount}} αρχεία φορτώθηκαν", + "fileLoadedOfTotalCount_one": "{{displayCount}} αρχείο φορτώθηκε από {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} αρχεία φορτώθηκαν από {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} αρχεία φορτώθηκαν από {{total}}", "filesStillLoading": "Τα αρχεία φορτώνονται ακόμα. Σύρετε για ανανέωση.", "goToOverview": "Μετάβαση στην επισκόπηση", "goToOverviewTab": "Μετάβαση στην καρτέλα επισκόπησης" @@ -288,8 +290,9 @@ "resolved": "Επιλύθηκε", "outdated": "Ξεπερασμένο", "file": "Αρχείο", - "oneComment": "1 σχόλιο", - "commentCount": "{{count}} σχόλια", + "comment_one": "1 σχόλιο", + "comment": "{{displayCount}} σχόλια", + "comment_other": "{{displayCount}} σχόλια", "startedRelative": " · ξεκίνησε {{relative}}", "couldNotLoadMore": "Δεν ήταν δυνατή η φόρτωση περισσότερων σχολίων.", "retryLoadingMore": "Νέα προσπάθεια φόρτωσης περισσότερων σχολίων", @@ -299,8 +302,9 @@ "reactionsTitle": "Αντιδράσεις", "addReaction": "Προσθήκη αντίδρασης", "reactionPill": "{{emoji}} αντίδραση, {{count}} {{countLabel}}", - "reactionSingular": "αντίδραση", - "reactionPlural": "αντιδράσεις", + "reaction_one": "αντίδραση", + "reaction": "αντιδράσεις", + "reaction_other": "αντιδράσεις", "commentActions": "Ενέργειες σχολίου", "reportContent": "Αναφορά περιεχομένου", "reportUser": "Αναφορά χρήστη", @@ -452,8 +456,9 @@ "deletePendingMessage": "Αυτό το σχόλιο θα αφαιρεθεί από την ουρά αναθεώρησης.", "delete": "Διαγραφή", "summaryOptional": "Σύνοψη (προαιρετική)", - "pendingCommentSingular": "εκκρεμές σχόλιο", - "pendingCommentPlural": "εκκρεμή σχόλια", + "pendingComment_one": "εκκρεμές σχόλιο", + "pendingComment": "εκκρεμή σχόλια", + "pendingComment_other": "εκκρεμή σχόλια", "submitCountOfTotal": "Υποβολή {{freshCount}} από {{totalCount}} σχόλια", "submitReview": "Υποβολή αναθεώρησης", "partialPostedMessage": "Δημοσιεύτηκαν {{freshCount}} σχόλιο(α). {{staleCount}} σχόλιο(α) αναφέρονται σε παλαιότερο commit και παρέμειναν στην ουρά σας." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Ανοιχτό · Απαιτείται αναθεώρηση", "stateOpen": "Ανοιχτό", "unknownAuthor": "Άγνωστος συγγραφέας", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "αρχείο", - "filePlural": "αρχεία" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "αρχείο", + "file": "αρχεία", + "file_other": "αρχεία" }, "pendingComment": { "editOutdatedA11y": "Επεξεργασία ξεπερασμένου εκκρεμούς σχολίου στο {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Κάποιος", - "oneTyping": "Ο/Η {{name}} πληκτρολογεί...", - "manyTyping": "Οι {{names}} πληκτρολογούν..." + "typing_one": "Ο/Η {{name}} πληκτρολογεί...", + "typing": "Οι {{names}} πληκτρολογούν...", + "typing_other": "Οι {{names}} πληκτρολογούν..." }, "botStatus": { "online": "Σε σύνδεση", @@ -722,12 +730,10 @@ "couldNotLoad": "Δεν ήταν δυνατή η φόρτωση των πληροφοριών χρέωσης", "manageOnWeb": "Διαχείριση χρέωσης στον ιστό", "commitPlan": "Commit", - "daysLeft": "{{count}} ημέρες απομένουν", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Η τελική σας περίοδος Commit λήγει στις {{date}}. Συνεχίστε ως Standard στα {{price}}, διαφορετικά λήγει η φιλοξενία.", "freeTrial": "Δωρεάν δοκιμή", "hostingEnds": "Η φιλοξενία λήγει", - "oneDayLeft": "1 ημέρα απομένει", "renews": "Ανανεώνεται", "standardMonthToMonth": "Standard μήνα με μήνα", "standardStartsOn": "Το Standard ξεκινά στις {{date}} στα {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "Ο/Η {{name}} χρειάζεται προσοχή: {{label}}", - "openUnreadOne": "Άνοιγμα {{name}}, {{count}} μη αναγνωσμένο μήνυμα", - "openUnreadMany": "Άνοιγμα {{name}}, {{count}} μη αναγνωσμένα μηνύματα", + "openUnread_one": "Άνοιγμα {{name}}, {{displayCount}} μη αναγνωσμένο μήνυμα", + "openUnread": "Άνοιγμα {{name}}, {{displayCount}} μη αναγνωσμένα μηνύματα", + "openUnread_other": "Άνοιγμα {{name}}, {{displayCount}} μη αναγνωσμένα μηνύματα", "open": "Άνοιγμα {{name}}", "openSettings": "Άνοιγμα ρυθμίσεων για {{name}}", "fixOnKiloAi": "Διόρθωση στο kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Ενεργοποίηση αυτόματης αποκατάστασης;", "enableAutoRemediationConfirmMessage": "Ο Security Agent θα ανοίγει αυτόματα PR αποκατάστασης για επιλέξιμα εκμεταλλεύσιμα ευρήματα.", "enable": "Ενεργοποίηση", - "queuedOne": "{{count}} υπάρχον εύρημα σε αναμονή για ανάλυση.", - "queuedMany": "{{count}} υπάρχοντα ευρήματα σε αναμονή για ανάλυση.", + "queued_one": "{{displayCount}} υπάρχον εύρημα σε αναμονή για ανάλυση.", + "queued": "{{displayCount}} υπάρχοντα ευρήματα σε αναμονή για ανάλυση.", + "queued_other": "{{displayCount}} υπάρχοντα ευρήματα σε αναμονή για ανάλυση.", "severityCriticalOnly": "Μόνο κρίσιμα", "severityHighAndAbove": "Υψηλά και άνω", "severityMediumAndAbove": "Μεσαία και άνω", @@ -1482,8 +1490,9 @@ "on": "Ενεργό", "off": "Ανενεργό", "allRepositories": "Όλα τα αποθετήρια", - "repositorySelected": "{{count}} επιλεγμένο αποθετήριο", - "repositoriesSelected": "{{count}} επιλεγμένα αποθετήρια", + "repositoriesCount_one": "{{displayCount}} επιλεγμένο αποθετήριο", + "repositoriesCount": "{{displayCount}} επιλεγμένα αποθετήρια", + "repositoriesCount_other": "{{displayCount}} επιλεγμένα αποθετήρια", "selectRepositories": "Επιλογή αποθετηρίων", "selectRepositoriesSubtitle": "Επιλέξτε ποια αποθετήρια παρακολουθεί ο Security Agent", "repositories": "Αποθετήρια", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Η συνεδρία διαγράφηκε", "needsInput": "χρειάζεται είσοδο", "fromPlatform": "από {{platform}}", - "centOne": "σεντ", - "centOther": "σεντς", - "dollarOne": "δολάριο", - "dollarOther": "δολάρια" + "cent_one": "σεντ", + "cent": "σεντς", + "cent_other": "σεντς", + "dollar_one": "δολάριο", + "dollar": "δολάρια", + "dollar_other": "δολάρια" }, "githubInstall": { "couldNotOpenTitle": "Δεν ήταν δυνατό το άνοιγμα του GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Δεν ήταν δυνατή η απόρριψη του πρόχειρου. Δοκιμάστε ξανά." }, "partRenderer": { - "updatedFile": "Ενημερώθηκε {{count}} αρχείο", - "updatedFiles": "Ενημερώθηκαν {{count}} αρχεία" + "updatedFileCount_one": "Ενημερώθηκε {{displayCount}} αρχείο", + "updatedFileCount": "Ενημερώθηκαν {{displayCount}} αρχεία", + "updatedFileCount_other": "Ενημερώθηκαν {{displayCount}} αρχεία" }, "toolPatch": { "operationAdded": "Προστέθηκε", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Φορτώθηκαν προηγούμενα μηνύματα", "retryHint": "Επαναπροσπαθεί τη φόρτωση των προηγούμενων μηνυμάτων για αυτή τη συνεδρία.", - "omittedOne": "Ορισμένα προηγούμενα στοιχεία από αυτή τη συνεδρία δεν ήταν δυνατό να εμφανιστούν.", - "omittedMany": "{{count}} προηγούμενα στοιχεία από αυτή τη συνεδρία δεν ήταν δυνατό να εμφανιστούν.", + "omitted_one": "Ορισμένα προηγούμενα στοιχεία από αυτή τη συνεδρία δεν ήταν δυνατό να εμφανιστούν.", + "omitted": "{{displayCount}} προηγούμενα στοιχεία από αυτή τη συνεδρία δεν ήταν δυνατό να εμφανιστούν.", + "omitted_other": "{{displayCount}} προηγούμενα στοιχεία από αυτή τη συνεδρία δεν ήταν δυνατό να εμφανιστούν.", "couldNotLoad": "Δεν ήταν δυνατή η φόρτωση των προηγούμενων μηνυμάτων.", "unavailable": "Τα προηγούμενα μηνύματα δεν είναι διαθέσιμα.", "tooLarge": "Τα προηγούμενα μηνύματα είναι πολύ μεγάλα για φόρτωση." @@ -2069,10 +2082,12 @@ "viewTable": "Προβολή πίνακα", "title": "Πίνακας", "close": "Κλείσιμο πίνακα", - "column": "στήλη", - "columns": "στήλες", - "row": "γραμμή", - "rows": "γραμμές", + "columnCount_one": "στήλη", + "columnCount": "στήλες", + "columnCount_other": "στήλες", + "rowCount_one": "γραμμή", + "rowCount": "γραμμές", + "rowCount_other": "γραμμές", "opensFullScreen": "ανοίγει σε πλήρη οθόνη" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "από {{window}} διακριτικά", "tokens": "διακριτικά", "tokensWithPercentage": "διακριτικά ({{percentage}})", - "stepsCountOne": "{{steps}} βήμα", - "stepsCountMany": "{{steps}} βήματα", + "stepsCount_one": "{{steps}} βήμα", + "stepsCount": "{{steps}} βήματα", + "stepsCount_other": "{{steps}} βήματα", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Νέα εργασία προγραμματισμού", "explore": "Εξερεύνηση", "seeAll": "Προβολή όλων", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Καλημέρα", - "greetingAfternoon": "Καλησπέρα", - "greetingEvening": "Καλό βράδυ" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Κλείσιμο {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Ανοίγει τη διαχείριση Kilo Pass στο διαδίκτυο.", "notSubscribed": "Χωρίς συνδρομή", "overallocated": "Οι αναθέσεις Pass υπερβαίνουν τις πληρωμένες θέσεις", - "paidSeatOne": "{{count}} πληρωμένη θέση", - "paidSeatOther": "{{count}} πληρωμένες θέσεις", + "paidSeat_one": "{{displayCount}} πληρωμένη θέση", + "paidSeat": "{{displayCount}} πληρωμένες θέσεις", + "paidSeat_other": "{{displayCount}} πληρωμένες θέσεις", "paymentNeedsAttention": "Η πληρωμή χρειάζεται προσοχή", "paymentPending": "Η πληρωμή εκκρεμεί", "processingBlocked": "Η επεξεργασία αποκλείστηκε", diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index 00df8e4461..9e784078e6 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} of {{total}} files loaded", "loadAllFiles": "Load all files", "loadAll": "Load all", - "fileLoaded": "{{count}} file loaded", - "filesLoaded": "{{count}} files loaded", - "fileLoadedOfTotal": "{{count}} file loaded of {{total}}", - "filesLoadedOfTotal": "{{count}} files loaded of {{total}}", + "fileLoadedCount_one": "{{displayCount}} file loaded", + "fileLoadedCount": "{{displayCount}} files loaded", + "fileLoadedCount_other": "{{displayCount}} files loaded", + "fileLoadedOfTotalCount_one": "{{displayCount}} file loaded of {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} files loaded of {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} files loaded of {{total}}", "filesStillLoading": "Files are still loading. Pull to refresh.", "goToOverview": "Go to Overview", "goToOverviewTab": "Go to Overview tab" @@ -288,8 +290,9 @@ "resolved": "Resolved", "outdated": "Outdated", "file": "File", - "oneComment": "1 comment", - "commentCount": "{{count}} comments", + "comment_one": "1 comment", + "comment": "{{displayCount}} comments", + "comment_other": "{{displayCount}} comments", "startedRelative": " · started {{relative}}", "couldNotLoadMore": "Could not load more comments.", "retryLoadingMore": "Retry loading more comments", @@ -299,8 +302,9 @@ "reactionsTitle": "Reactions", "addReaction": "Add reaction", "reactionPill": "{{emoji}} reaction, {{count}} {{countLabel}}", - "reactionSingular": "reaction", - "reactionPlural": "reactions", + "reaction_one": "reaction", + "reaction": "reactions", + "reaction_other": "reactions", "commentActions": "Comment actions", "reportContent": "Report content", "reportUser": "Report user", @@ -452,8 +456,9 @@ "deletePendingMessage": "This comment will be removed from the review queue.", "delete": "Delete", "summaryOptional": "Summary (optional)", - "pendingCommentSingular": "pending comment", - "pendingCommentPlural": "pending comments", + "pendingComment_one": "pending comment", + "pendingComment": "pending comments", + "pendingComment_other": "pending comments", "submitCountOfTotal": "Submit {{freshCount}} of {{totalCount}} comments", "submitReview": "Submit review", "partialPostedMessage": "Posted {{freshCount}} comment(s). {{staleCount}} comment(s) point at an older commit and stayed in your queue." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Open · Review required", "stateOpen": "Open", "unknownAuthor": "Unknown author", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "file", - "filePlural": "files" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "file", + "file": "files", + "file_other": "files" }, "pendingComment": { "editOutdatedA11y": "Edit outdated pending comment on {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Someone", - "oneTyping": "{{name}} is typing...", - "manyTyping": "{{names}} are typing..." + "typing_one": "{{name}} is typing...", + "typing": "{{names}} are typing...", + "typing_other": "{{names}} are typing..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Could not load billing information", "manageOnWeb": "Manage Billing on Web", "commitPlan": "Commit", - "daysLeft": "{{count}} days left", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Your final Commit term ends on {{date}}. Continue as Standard at {{price}}, or hosting ends.", "freeTrial": "Free Trial", "hostingEnds": "Hosting ends", - "oneDayLeft": "1 day left", "renews": "Renews", "standardMonthToMonth": "Standard month-to-month", "standardStartsOn": "Standard starts on {{date}} at {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} needs attention: {{label}}", - "openUnreadOne": "Open {{name}}, {{count}} unread message", - "openUnreadMany": "Open {{name}}, {{count}} unread messages", + "openUnread_one": "Open {{name}}, {{displayCount}} unread message", + "openUnread": "Open {{name}}, {{displayCount}} unread messages", + "openUnread_other": "Open {{name}}, {{displayCount}} unread messages", "open": "Open {{name}}", "openSettings": "Open settings for {{name}}", "fixOnKiloAi": "Fix on kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Enable auto-remediation?", "enableAutoRemediationConfirmMessage": "Security Agent will open remediation PRs automatically for eligible exploitable findings.", "enable": "Enable", - "queuedOne": "{{count}} existing finding queued for analysis.", - "queuedMany": "{{count}} existing findings queued for analysis.", + "queued_one": "{{displayCount}} existing finding queued for analysis.", + "queued": "{{displayCount}} existing findings queued for analysis.", + "queued_other": "{{displayCount}} existing findings queued for analysis.", "severityCriticalOnly": "Critical only", "severityHighAndAbove": "High and above", "severityMediumAndAbove": "Medium and above", @@ -1482,8 +1490,9 @@ "on": "On", "off": "Off", "allRepositories": "All repositories", - "repositorySelected": "{{count}} repository selected", - "repositoriesSelected": "{{count}} repositories selected", + "repositoriesCount_one": "{{displayCount}} repository selected", + "repositoriesCount": "{{displayCount}} repositories selected", + "repositoriesCount_other": "{{displayCount}} repositories selected", "selectRepositories": "Select repositories", "selectRepositoriesSubtitle": "Choose which repositories Security Agent monitors", "repositories": "Repositories", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Session deleted", "needsInput": "needs input", "fromPlatform": "from {{platform}}", - "centOne": "cent", - "centOther": "cents", - "dollarOne": "dollar", - "dollarOther": "dollars" + "cent_one": "cent", + "cent": "cents", + "cent_other": "cents", + "dollar_one": "dollar", + "dollar": "dollars", + "dollar_other": "dollars" }, "githubInstall": { "couldNotOpenTitle": "Could not open GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Could not discard the draft. Please try again." }, "partRenderer": { - "updatedFile": "Updated {{count}} file", - "updatedFiles": "Updated {{count}} files" + "updatedFileCount_one": "Updated {{displayCount}} file", + "updatedFileCount": "Updated {{displayCount}} files", + "updatedFileCount_other": "Updated {{displayCount}} files" }, "toolPatch": { "operationAdded": "Added", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Earlier messages loaded", "retryHint": "Reattempts the older-messages load for this session.", - "omittedOne": "Some earlier items from this session could not be displayed.", - "omittedMany": "{{count}} earlier items from this session could not be displayed.", + "omitted_one": "Some earlier items from this session could not be displayed.", + "omitted": "{{displayCount}} earlier items from this session could not be displayed.", + "omitted_other": "{{displayCount}} earlier items from this session could not be displayed.", "couldNotLoad": "Couldn't load earlier messages.", "unavailable": "Earlier messages aren't available.", "tooLarge": "Earlier messages are too large to load." @@ -2069,10 +2082,12 @@ "viewTable": "View table", "title": "Table", "close": "Close table", - "column": "column", - "columns": "columns", - "row": "row", - "rows": "rows", + "columnCount_one": "column", + "columnCount": "columns", + "columnCount_other": "columns", + "rowCount_one": "row", + "rowCount": "rows", + "rowCount_other": "rows", "opensFullScreen": "opens full screen" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "of {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} step", - "stepsCountMany": "{{steps}} steps", + "stepsCount_one": "{{steps}} step", + "stepsCount": "{{steps}} steps", + "stepsCount_other": "{{steps}} steps", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "New coding task", "explore": "Explore", "seeAll": "See all", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Good morning", - "greetingAfternoon": "Good afternoon", - "greetingEvening": "Good evening" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Close {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Opens Kilo Pass management on web.", "notSubscribed": "Not subscribed", "overallocated": "Pass assignments exceed paid seats", - "paidSeatOne": "{{count}} paid seat", - "paidSeatOther": "{{count}} paid seats", + "paidSeat_one": "{{displayCount}} paid seat", + "paidSeat": "{{displayCount}} paid seats", + "paidSeat_other": "{{displayCount}} paid seats", "paymentNeedsAttention": "Payment needs attention", "paymentPending": "Payment pending", "processingBlocked": "Processing blocked", diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index d687161af1..0d1abf4ce8 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Alguien", - "oneTyping": "{{name}} está escribiendo...", - "manyTyping": "{{names}} están escribiendo..." + "typing_one": "{{name}} está escribiendo...", + "typing": "{{names}} están escribiendo...", + "typing_other": "{{names}} están escribiendo..." }, "botStatus": { "online": "En línea", @@ -350,12 +351,10 @@ "couldNotLoad": "No se pudo cargar la información de facturación", "manageOnWeb": "Gestionar facturación en la web", "commitPlan": "Commit", - "daysLeft": "{{count}} días restantes", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Tu último período de Commit termina el {{date}}. Continúa como Standard por {{price}}, o el alojamiento termina.", "freeTrial": "Prueba gratuita", "hostingEnds": "El alojamiento termina", - "oneDayLeft": "1 día restante", "renews": "Se renueva", "standardMonthToMonth": "Standard mes a mes", "standardStartsOn": "Standard comienza el {{date}} por {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} necesita atención: {{label}}", "open": "Abrir {{name}}", "openSettings": "Abrir los ajustes de {{name}}", - "openUnreadMany": "Abrir {{name}}, {{count}} mensajes sin leer", - "openUnreadOne": "Abrir {{name}}, {{count}} mensaje sin leer" + "openUnread": "Abrir {{name}}, {{displayCount}} mensajes sin leer", + "openUnread_other": "Abrir {{name}}, {{displayCount}} mensajes sin leer", + "openUnread_one": "Abrir {{name}}, {{displayCount}} mensaje sin leer" }, "list": { "createInstance": "Crear instancia", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Pon en cola también los hallazgos elegibles ya analizados. Los PR duplicados se mantienen suprimidos.", "minimumSeverity": "Severidad mínima", "permissionNote": "Solo los propietarios de la organización y los administradores de facturación pueden cambiar estos ajustes.", - "queuedMany": "{{count}} hallazgos existentes en cola para el análisis.", - "queuedOne": "{{count}} hallazgo existente en cola para el análisis.", + "queued": "{{displayCount}} hallazgos existentes en cola para el análisis.", + "queued_other": "{{displayCount}} hallazgos existentes en cola para el análisis.", + "queued_one": "{{displayCount}} hallazgo existente en cola para el análisis.", "requireApproval": "Requerir aprobación antes de la corrección automática", "requireApprovalSubtitle": "La corrección automática espera tu aprobación antes de abrir PR.", "severityAll": "Todas las severidades", @@ -1270,8 +1271,9 @@ "off": "Desactivado", "on": "Activado", "repositories": "Repositorios", - "repositoriesSelected": "{{count}} repositorios seleccionados", - "repositorySelected": "{{count}} repositorio seleccionado", + "repositoriesCount": "{{displayCount}} repositorios seleccionados", + "repositoriesCount_other": "{{displayCount}} repositorios seleccionados", + "repositoriesCount_one": "{{displayCount}} repositorio seleccionado", "securityAgent": "Security Agent", "selectRepositories": "Seleccionar repositorios", "selectRepositoriesSubtitle": "Elige qué repositorios supervisa Security Agent", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Sesión eliminada", "needsInput": "requiere entrada", "fromPlatform": "desde {{platform}}", - "centOne": "céntimo", - "centOther": "céntimos", - "dollarOne": "dólar", - "dollarOther": "dólares" + "cent_one": "céntimo", + "cent": "céntimos", + "cent_other": "céntimos", + "dollar_one": "dólar", + "dollar": "dólares", + "dollar_other": "dólares" }, "githubInstall": { "couldNotOpenMessage": "No pudimos iniciar la configuración de la GitHub App. Inténtalo de nuevo.", @@ -1445,8 +1449,9 @@ "keepEditing": "Seguir editando" }, "partRenderer": { - "updatedFile": "{{count}} archivo actualizado", - "updatedFiles": "{{count}} archivos actualizados" + "updatedFileCount_one": "{{displayCount}} archivo actualizado", + "updatedFileCount": "{{displayCount}} archivos actualizados", + "updatedFileCount_other": "{{displayCount}} archivos actualizados" }, "toolPatch": { "operationAdded": "Añadido", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Mensajes anteriores cargados", "retryHint": "Reintenta la carga de mensajes anteriores de esta sesión.", - "omittedOne": "No se pudo mostrar un elemento anterior de esta sesión.", - "omittedMany": "No se pudieron mostrar {{count}} elementos anteriores de esta sesión.", + "omitted_one": "No se pudo mostrar un elemento anterior de esta sesión.", + "omitted": "No se pudieron mostrar {{displayCount}} elementos anteriores de esta sesión.", + "omitted_other": "No se pudieron mostrar {{displayCount}} elementos anteriores de esta sesión.", "couldNotLoad": "No se pudieron cargar los mensajes anteriores.", "unavailable": "Los mensajes anteriores no están disponibles.", "tooLarge": "Los mensajes anteriores son demasiado grandes para cargar." @@ -1697,10 +1703,12 @@ "viewTable": "Ver tabla", "title": "Tabla", "close": "Cerrar tabla", - "column": "columna", - "columns": "columnas", - "row": "fila", - "rows": "filas", + "columnCount_one": "columna", + "columnCount": "columnas", + "columnCount_other": "columnas", + "rowCount_one": "fila", + "rowCount": "filas", + "rowCount_other": "filas", "opensFullScreen": "abre a pantalla completa" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "de {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} paso", - "stepsCountMany": "{{steps}} pasos", + "stepsCount_one": "{{steps}} paso", + "stepsCount": "{{steps}} pasos", + "stepsCount_other": "{{steps}} pasos", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Nueva tarea de codificación", "explore": "Explorar", "seeAll": "Ver todo", - "kiloAgents": "Agentes de Kilo", - "greetingMorning": "Buenos días", - "greetingAfternoon": "Buenas tardes", - "greetingEvening": "Buenas noches" + "kiloAgents": "Agentes de Kilo" }, "imageViewer": { "close": "Cerrar {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Cerrar reacciones", "collapseThread": "Contraer hilo", "commentActions": "Acciones del comentario", - "commentCount": "{{count}} comentarios", + "comment": "{{displayCount}} comentarios", + "comment_other": "{{displayCount}} comentarios", "couldNotLoad": "No se pudo cargar la conversación", "couldNotLoadMore": "No se pudieron cargar más comentarios.", "couldNotReply": "No se pudo responder.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} silenciado", "noDiscussion": "Aún no hay conversación", "noDiscussionDescription": "No hay hilos de revisión ni comentarios de conversación en esta pull request.", - "oneComment": "1 comentario", + "comment_one": "1 comentario", "outdated": "Desactualizado", "quotedDiffSnippet": "Fragmento de diff citado", "reactionPill": "{{emoji}} reacción, {{count}} {{countLabel}}", - "reactionPlural": "reacciones", - "reactionSingular": "reacción", + "reaction": "reacciones", + "reaction_other": "reacciones", + "reaction_one": "reacción", "reactionsTitle": "Reacciones", "reply": "Responder", "replyBadRequest": "No se puede publicar esta respuesta. Puede que el hilo haya cambiado.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Expandir {{count}} líneas más ({{start}}–{{end}})", "failedToLoadContext": "No se pudo cargar el contexto — toca para reintentar", "failedToLoadMoreFiles": "No se pudieron cargar más archivos — toca para reintentar", - "fileLoaded": "{{count}} archivo cargado", - "fileLoadedOfTotal": "{{count}} archivo cargado de {{total}}", - "filesLoaded": "{{count}} archivos cargados", - "filesLoadedOfTotal": "{{count}} archivos cargados de {{total}}", + "fileLoadedCount_one": "{{displayCount}} archivo cargado", + "fileLoadedOfTotalCount_one": "{{displayCount}} archivo cargado de {{total}}", + "fileLoadedCount": "{{displayCount}} archivos cargados", + "fileLoadedCount_other": "{{displayCount}} archivos cargados", + "fileLoadedOfTotalCount": "{{displayCount}} archivos cargados de {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} archivos cargados de {{total}}", "filesStillLoading": "Los archivos aún se están cargando. Desliza hacia abajo para actualizar.", "goToOverview": "Ir a Resumen", "goToOverviewTab": "Ir a la pestaña Resumen", @@ -2429,10 +2439,12 @@ "noFilesChanged": "No hay archivos modificados", "noFilesChangedDescription": "Esta pull request no tiene cambios de archivos.", "overview": { - "commitPlural": "commits", - "commitSingular": "commit", - "filePlural": "archivos", - "fileSingular": "archivo", + "commit": "commits", + "commit_other": "commits", + "commit_one": "commit", + "file": "archivos", + "file_other": "archivos", + "file_one": "archivo", "stateClosed": "Cerrada", "stateDraft": "Borrador", "stateMerged": "Fusionada", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Este comentario se eliminará de la cola de revisión.", "deletePendingTitle": "¿Eliminar comentario pendiente?", "loadFailedTitle": "No se pudo cargar el envío de la revisión", - "pendingCommentPlural": "comentarios pendientes", - "pendingCommentSingular": "comentario pendiente", + "pendingComment": "comentarios pendientes", + "pendingComment_other": "comentarios pendientes", + "pendingComment_one": "comentario pendiente", "summaryOptional": "Resumen (opcional)", "title": "Enviar revisión", "partialPostedMessage": "Se publicaron {{freshCount}} comentario(s). {{staleCount}} comentario(s) apuntan a un commit anterior y se quedaron en tu cola.", @@ -2632,8 +2645,9 @@ "manageHint": "Abre la gestión de Kilo Pass en la web.", "notSubscribed": "Sin suscripción", "overallocated": "Las asignaciones de pases superan los asientos pagados", - "paidSeatOne": "{{count}} asiento pagado", - "paidSeatOther": "{{count}} asientos pagados", + "paidSeat_one": "{{displayCount}} asiento pagado", + "paidSeat": "{{displayCount}} asientos pagados", + "paidSeat_other": "{{displayCount}} asientos pagados", "paymentNeedsAttention": "El pago necesita atención", "paymentPending": "Pago pendiente", "processingBlocked": "Procesamiento bloqueado", diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index 1b6b00e355..787742a23b 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}}/{{total}} faili laaditud", "loadAllFiles": "Laadi kõik failid", "loadAll": "Laadi kõik", - "fileLoaded": "{{count}} fail laaditud", - "filesLoaded": "{{count}} faili laaditud", - "fileLoadedOfTotal": "{{count}} fail laaditud / {{total}}", - "filesLoadedOfTotal": "{{count}} faili laaditud / {{total}}", + "fileLoadedCount_one": "{{displayCount}} fail laaditud", + "fileLoadedCount": "{{displayCount}} faili laaditud", + "fileLoadedCount_other": "{{displayCount}} faili laaditud", + "fileLoadedOfTotalCount_one": "{{displayCount}} fail laaditud / {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} faili laaditud / {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} faili laaditud / {{total}}", "filesStillLoading": "Failid laadivad veel. Värskendamiseks tõmba alla.", "goToOverview": "Mine ülevaatesse", "goToOverviewTab": "Mine ülevaate vahekaardile" @@ -288,8 +290,9 @@ "resolved": "Lahendatud", "outdated": "Aegunud", "file": "Fail", - "oneComment": "1 kommentaar", - "commentCount": "{{count}} kommentaari", + "comment_one": "1 kommentaar", + "comment": "{{displayCount}} kommentaari", + "comment_other": "{{displayCount}} kommentaari", "startedRelative": " · alustatud {{relative}}", "couldNotLoadMore": "Rohkemate kommentaaride laadimine ebaõnnestus.", "retryLoadingMore": "Proovi rohkemate kommentaaride laadimist uuesti", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaktsioonid", "addReaction": "Lisa reaktsioon", "reactionPill": "{{emoji}} reaktsioon, {{count}} {{countLabel}}", - "reactionSingular": "reaktsioon", - "reactionPlural": "reaktsiooni", + "reaction_one": "reaktsioon", + "reaction": "reaktsiooni", + "reaction_other": "reaktsiooni", "commentActions": "Kommentaari toimingud", "reportContent": "Teata sisust", "reportUser": "Teata kasutajast", @@ -452,8 +456,9 @@ "deletePendingMessage": "See kommentaar eemaldatakse ülevaate järjekorrast.", "delete": "Kustuta", "summaryOptional": "Kokkuvõte (valikuline)", - "pendingCommentSingular": "ootel kommentaar", - "pendingCommentPlural": "ootel kommentaari", + "pendingComment_one": "ootel kommentaar", + "pendingComment": "ootel kommentaari", + "pendingComment_other": "ootel kommentaari", "submitCountOfTotal": "Esita {{freshCount}}/{{totalCount}} kommentaari", "submitReview": "Esita ülevaade", "partialPostedMessage": "Esitati {{freshCount}} kommentaari. {{staleCount}} kommentaari viitavad vanemale commit'ile ja jäid sinu järjekorda." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Avatud · Ülevaade nõutud", "stateOpen": "Avatud", "unknownAuthor": "Tundmatu autor", - "commitSingular": "commit", - "commitPlural": "commit'i", - "fileSingular": "fail", - "filePlural": "faili" + "commit_one": "commit", + "commit": "commit'i", + "commit_other": "commit'i", + "file_one": "fail", + "file": "faili", + "file_other": "faili" }, "pendingComment": { "editOutdatedA11y": "Muuda aegunud ootel kommentaari asukohas {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Keegi", - "oneTyping": "{{name}} kirjutab...", - "manyTyping": "{{names}} kirjutavad..." + "typing_one": "{{name}} kirjutab...", + "typing": "{{names}} kirjutavad...", + "typing_other": "{{names}} kirjutavad..." }, "botStatus": { "online": "Veebis", @@ -722,12 +730,10 @@ "couldNotLoad": "Arveldusteabe laadimine ebaõnnestus", "manageOnWeb": "Halda arveldust veebis", "commitPlan": "Commit", - "daysLeft": "Jäänud {{count}} päeva", "earlybird": "Varajane registreerumine", "finalCommitTermEndsOn": "Teie viimane Commit-periood lõpeb {{date}}. Jätkake Standard-režiimis hinnaga {{price}} või majutus lõpeb.", "freeTrial": "Tasuta prooviperiood", "hostingEnds": "Majutus lõpeb", - "oneDayLeft": "Jäänud 1 päev", "renews": "Pikendatakse", "standardMonthToMonth": "Standard kuutellimus", "standardStartsOn": "Standard algab {{date}} hinnaga {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} vajab tähelepanu: {{label}}", - "openUnreadOne": "Ava {{name}}, {{count}} lugemata sõnum", - "openUnreadMany": "Ava {{name}}, {{count}} lugemata sõnumit", + "openUnread_one": "Ava {{name}}, {{displayCount}} lugemata sõnum", + "openUnread": "Ava {{name}}, {{displayCount}} lugemata sõnumit", + "openUnread_other": "Ava {{name}}, {{displayCount}} lugemata sõnumit", "open": "Ava {{name}}", "openSettings": "Ava {{name}} seaded", "fixOnKiloAi": "Paranda saidil kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Luba automaatne parandamine?", "enableAutoRemediationConfirmMessage": "Turvaagent avab sobivate kasutatavate leidude jaoks parandus-PR-id automaatselt.", "enable": "Luba", - "queuedOne": "{{count}} olemasolev leid on analüüsiks järjekorras.", - "queuedMany": "{{count}} olemasolevat leidu on analüüsiks järjekorras.", + "queued_one": "{{displayCount}} olemasolev leid on analüüsiks järjekorras.", + "queued": "{{displayCount}} olemasolevat leidu on analüüsiks järjekorras.", + "queued_other": "{{displayCount}} olemasolevat leidu on analüüsiks järjekorras.", "severityCriticalOnly": "Ainult kriitilised", "severityHighAndAbove": "Kõrge ja kõrgem", "severityMediumAndAbove": "Keskmine ja kõrgem", @@ -1482,8 +1490,9 @@ "on": "Sees", "off": "Väljas", "allRepositories": "Kõik hoidlad", - "repositorySelected": "Valitud on {{count}} hoidla", - "repositoriesSelected": "Valitud on {{count}} hoidlat", + "repositoriesCount_one": "Valitud on {{displayCount}} hoidla", + "repositoriesCount": "Valitud on {{displayCount}} hoidlat", + "repositoriesCount_other": "Valitud on {{displayCount}} hoidlat", "selectRepositories": "Vali hoidlad", "selectRepositoriesSubtitle": "Vali, milliseid hoidlaid Security Agent jälgib", "repositories": "Hoidlad", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Seanss on kustutatud", "needsInput": "vajab sisendit", "fromPlatform": "{{platform}} kaudu", - "centOne": "sent", - "centOther": "senti", - "dollarOne": "dollar", - "dollarOther": "dollarit" + "cent_one": "sent", + "cent": "senti", + "cent_other": "senti", + "dollar_one": "dollar", + "dollar": "dollarit", + "dollar_other": "dollarit" }, "githubInstall": { "couldNotOpenTitle": "GitHub'i avamine ebaõnnestus", @@ -1817,8 +1828,9 @@ "discardFailed": "Mustandist loobumine ebaõnnestus. Proovi uuesti." }, "partRenderer": { - "updatedFile": "Uuendatud {{count}} fail", - "updatedFiles": "Uuendatud {{count}} faili" + "updatedFileCount_one": "Uuendatud {{displayCount}} fail", + "updatedFileCount": "Uuendatud {{displayCount}} faili", + "updatedFileCount_other": "Uuendatud {{displayCount}} faili" }, "toolPatch": { "operationAdded": "Lisatud", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Varasemad sõnumid laaditud", "retryHint": "Proovib selle seansi vanemate sõnumite laadimist uuesti.", - "omittedOne": "Mõnda selle seansi varasemat üksust ei õnnestunud kuvada.", - "omittedMany": "{{count}} selle seansi varasemat üksust ei õnnestunud kuvada.", + "omitted_one": "Mõnda selle seansi varasemat üksust ei õnnestunud kuvada.", + "omitted": "{{displayCount}} selle seansi varasemat üksust ei õnnestunud kuvada.", + "omitted_other": "{{displayCount}} selle seansi varasemat üksust ei õnnestunud kuvada.", "couldNotLoad": "Varasemaid sõnumeid ei õnnestunud laadida.", "unavailable": "Varasemad sõnumid pole saadaval.", "tooLarge": "Varasemad sõnumid on liiga suured, et neid laadida." @@ -2069,10 +2082,12 @@ "viewTable": "Vaata tabelit", "title": "Tabel", "close": "Sulge tabel", - "column": "veerg", - "columns": "veerud", - "row": "rida", - "rows": "read", + "columnCount_one": "veerg", + "columnCount": "veerud", + "columnCount_other": "veerud", + "rowCount_one": "rida", + "rowCount": "read", + "rowCount_other": "read", "opensFullScreen": "avatakse täisekraanil" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "kokku {{window}} tokenit", "tokens": "tokenit", "tokensWithPercentage": "tokenit ({{percentage}})", - "stepsCountOne": "{{steps}} samm", - "stepsCountMany": "{{steps}} sammu", + "stepsCount_one": "{{steps}} samm", + "stepsCount": "{{steps}} sammu", + "stepsCount_other": "{{steps}} sammu", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Uus kodeerimisülesanne", "explore": "Avasta", "seeAll": "Vaata kõiki", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Tere hommikust", - "greetingAfternoon": "Tere päevast", - "greetingEvening": "Tere õhtust" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Sulge {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Avaneb Kilo Passi haldus veebis.", "notSubscribed": "Pole tellitud", "overallocated": "Passi määramised ületavad tasulisi kohti", - "paidSeatOne": "{{count}} tasuline koht", - "paidSeatOther": "{{count}} tasulist kohta", + "paidSeat_one": "{{displayCount}} tasuline koht", + "paidSeat": "{{displayCount}} tasulist kohta", + "paidSeat_other": "{{displayCount}} tasulist kohta", "paymentNeedsAttention": "Makse vajab tähelepanu", "paymentPending": "Makse ootel", "processingBlocked": "Töötlemine blokeeritud", diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index a463a4c0c7..ae4f37041e 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} / {{total}} fitxategi kargatuta", "loadAllFiles": "Kargatu fitxategi guztiak", "loadAll": "Kargatu guztiak", - "fileLoaded": "{{count}} fitxategi kargatuta", - "filesLoaded": "{{count}} fitxategi kargatuta", - "fileLoadedOfTotal": "{{count}} / {{total}} fitxategi kargatuta", - "filesLoadedOfTotal": "{{count}} / {{total}} fitxategi kargatuta", + "fileLoadedCount_one": "{{displayCount}} fitxategi kargatuta", + "fileLoadedCount": "{{displayCount}} fitxategi kargatuta", + "fileLoadedCount_other": "{{displayCount}} fitxategi kargatuta", + "fileLoadedOfTotalCount_one": "{{displayCount}} / {{total}} fitxategi kargatuta", + "fileLoadedOfTotalCount": "{{displayCount}} / {{total}} fitxategi kargatuta", + "fileLoadedOfTotalCount_other": "{{displayCount}} / {{total}} fitxategi kargatuta", "filesStillLoading": "Fitxategiak oraindik kargatzen ari dira. Tira ezazu behera freskatzeko.", "goToOverview": "Joan ikuspegi orokorrera", "goToOverviewTab": "Joan ikuspegi orokorreko fitxara" @@ -288,8 +290,9 @@ "resolved": "Konponduta", "outdated": "Zaharkitua", "file": "Fitxategia", - "oneComment": "1 iruzkin", - "commentCount": "{{count}} iruzkin", + "comment_one": "1 iruzkin", + "comment": "{{displayCount}} iruzkin", + "comment_other": "{{displayCount}} iruzkin", "startedRelative": " · hasita {{relative}}", "couldNotLoadMore": "Ezin izan dira iruzkin gehiago kargatu.", "retryLoadingMore": "Saiatu iruzkin gehiago berriro kargatzen", @@ -299,8 +302,9 @@ "reactionsTitle": "Erreakzioak", "addReaction": "Gehitu erreakzioa", "reactionPill": "{{emoji}} erreakzioa, {{count}} {{countLabel}}", - "reactionSingular": "erreakzio", - "reactionPlural": "erreakzio", + "reaction_one": "erreakzio", + "reaction": "erreakzio", + "reaction_other": "erreakzio", "commentActions": "Iruzkinaren ekintzak", "reportContent": "Salatu edukia", "reportUser": "Salatu erabiltzailea", @@ -452,8 +456,9 @@ "deletePendingMessage": "Iruzkin hau berrikuspen-ilaratik kenduko da.", "delete": "Ezabatu", "summaryOptional": "Laburpena (hautazkoa)", - "pendingCommentSingular": "zain dagoen iruzkin", - "pendingCommentPlural": "zain dauden iruzkin", + "pendingComment_one": "zain dagoen iruzkin", + "pendingComment": "zain dauden iruzkin", + "pendingComment_other": "zain dauden iruzkin", "submitCountOfTotal": "Bidali {{freshCount}} / {{totalCount}} iruzkin", "submitReview": "Bidali berrikuspena", "partialPostedMessage": "{{freshCount}} iruzkin argitaratu dira. {{staleCount}} iruzkinek commit zaharrago bat adierazten dute eta zure ilaran geratu dira." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Irekia · Berrikuspena beharrezkoa", "stateOpen": "Irekia", "unknownAuthor": "Egile ezezaguna", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "fitxategi", - "filePlural": "fitxategi" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "fitxategi", + "file": "fitxategi", + "file_other": "fitxategi" }, "pendingComment": { "editOutdatedA11y": "Editatu {{location}}-ko iruzkin zaharkitua", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Norbait", - "oneTyping": "{{name}} idazten ari da...", - "manyTyping": "{{names}} idazten ari dira..." + "typing_one": "{{name}} idazten ari da...", + "typing": "{{names}} idazten ari dira...", + "typing_other": "{{names}} idazten ari dira..." }, "botStatus": { "online": "Konektatuta", @@ -722,12 +730,10 @@ "couldNotLoad": "Fakturazio-informazioa ezin izan da kargatu", "manageOnWeb": "Kudeatu fakturazioa webgunean", "commitPlan": "Konpromisoa", - "daysLeft": "{{count}} egun geratzen dira", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Zure azken Commit epea {{date}}n amaitzen da. Jarraitu Standard gisa {{price}}rekin, edo hostinga amaitzen da.", "freeTrial": "Doako proba", "hostingEnds": "Hostinga amaitzen da", - "oneDayLeft": "Egun 1 geratzen da", "renews": "Berritzen da", "standardMonthToMonth": "Standard hilabetez hilabete", "standardStartsOn": "Standard {{date}}n hasten da {{price}}rekin.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}}k arreta behar du: {{label}}", - "openUnreadOne": "Ireki {{name}}, {{count}} irakurri gabeko mezu", - "openUnreadMany": "Ireki {{name}}, {{count}} irakurri gabeko mezu", + "openUnread_one": "Ireki {{name}}, {{displayCount}} irakurri gabeko mezu", + "openUnread": "Ireki {{name}}, {{displayCount}} irakurri gabeko mezu", + "openUnread_other": "Ireki {{name}}, {{displayCount}} irakurri gabeko mezu", "open": "Ireki {{name}}", "openSettings": "Ireki {{name}}ren ezarpenak", "fixOnKiloAi": "Konpondu kilo.ai-n: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Gaitu konponketa automatikoa?", "enableAutoRemediationConfirmMessage": "Segurtasun-agenteak konponketa PR-ak irekiko ditu automatikoki ustiaezinak diren aurkikuntza baliagarrietarako.", "enable": "Gaitu", - "queuedOne": "{{count}} emaitza existente jarri da ilaran aztertzeko.", - "queuedMany": "{{count}} emaitza existente jarri dira ilaran aztertzeko.", + "queued_one": "{{displayCount}} emaitza existente jarri da ilaran aztertzeko.", + "queued": "{{displayCount}} emaitza existente jarri dira ilaran aztertzeko.", + "queued_other": "{{displayCount}} emaitza existente jarri dira ilaran aztertzeko.", "severityCriticalOnly": "Kritikoa soilik", "severityHighAndAbove": "Handia eta goragokoa", "severityMediumAndAbove": "Ertaina eta goragokoa", @@ -1482,8 +1490,9 @@ "on": "Aktibo", "off": "Desaktibo", "allRepositories": "Biltegi guztiak", - "repositorySelected": "{{count}} biltegi hautatu da", - "repositoriesSelected": "{{count}} biltegi hautatu dira", + "repositoriesCount_one": "{{displayCount}} biltegi hautatu da", + "repositoriesCount": "{{displayCount}} biltegi hautatu dira", + "repositoriesCount_other": "{{displayCount}} biltegi hautatu dira", "selectRepositories": "Hautatu biltegiak", "selectRepositoriesSubtitle": "Aukeratu zein biltegitan kontrolatzen duen Security Agent-ek", "repositories": "Biltegiak", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Saioa ezabatuta", "needsInput": "sarreraren zain", "fromPlatform": "{{platform}}tik", - "centOne": "zentimo", - "centOther": "zentimo", - "dollarOne": "dolar", - "dollarOther": "dolar" + "cent_one": "zentimo", + "cent": "zentimo", + "cent_other": "zentimo", + "dollar_one": "dolar", + "dollar": "dolar", + "dollar_other": "dolar" }, "githubInstall": { "couldNotOpenTitle": "Ezin da GitHub ireki", @@ -1817,8 +1828,9 @@ "discardFailed": "Ezin da zirriborroa baztertu. Saiatu berriro." }, "partRenderer": { - "updatedFile": "{{count}} fitxategi eguneratu da", - "updatedFiles": "{{count}} fitxategi eguneratu dira" + "updatedFileCount_one": "{{displayCount}} fitxategi eguneratu da", + "updatedFileCount": "{{displayCount}} fitxategi eguneratu dira", + "updatedFileCount_other": "{{displayCount}} fitxategi eguneratu dira" }, "toolPatch": { "operationAdded": "Gehituta", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Aurreko mezuak kargatu dira", "retryHint": "Saio honetarako aurreko mezuak kargatzen berriro saiatzen da.", - "omittedOne": "Saio honetako aurreko elementu batzuk ezin izan dira erakutsi.", - "omittedMany": "Saio honetako {{count}} aurreko elementu ezin izan dira erakutsi.", + "omitted_one": "Saio honetako aurreko elementu batzuk ezin izan dira erakutsi.", + "omitted": "Saio honetako {{displayCount}} aurreko elementu ezin izan dira erakutsi.", + "omitted_other": "Saio honetako {{displayCount}} aurreko elementu ezin izan dira erakutsi.", "couldNotLoad": "Ezin izan dira aurreko mezuak kargatu.", "unavailable": "Aurreko mezuak ez daude erabilgarri.", "tooLarge": "Aurreko mezuak handiegiak dira kargatzeko." @@ -2069,10 +2082,12 @@ "viewTable": "Ikusi taula", "title": "Taula", "close": "Itxi taula", - "column": "zutabea", - "columns": "zutabeak", - "row": "ilara", - "rows": "ilarak", + "columnCount_one": "zutabea", + "columnCount": "zutabeak", + "columnCount_other": "zutabeak", + "rowCount_one": "ilara", + "rowCount": "ilarak", + "rowCount_other": "ilarak", "opensFullScreen": "pantaila osoan irekitzen du" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} tokenetik", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} urrats", - "stepsCountMany": "{{steps}} urrats", + "stepsCount_one": "{{steps}} urrats", + "stepsCount": "{{steps}} urrats", + "stepsCount_other": "{{steps}} urrats", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Kodetze-lan berria", "explore": "Arakatu", "seeAll": "Ikusi guztiak", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Egun on", - "greetingAfternoon": "Arratsalde on", - "greetingEvening": "Gabon" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Itxi {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Kilo Pass kudeaketa webean irekitzen du.", "notSubscribed": "Ez harpidetuta", "overallocated": "Pasabideen esleipenak ordaindutako eserlekuak gainditzen ditu", - "paidSeatOne": "{{count}} ordaindutako eserleku", - "paidSeatOther": "{{count}} ordaindutako eserleku", + "paidSeat_one": "{{displayCount}} ordaindutako eserleku", + "paidSeat": "{{displayCount}} ordaindutako eserleku", + "paidSeat_other": "{{displayCount}} ordaindutako eserleku", "paymentNeedsAttention": "Ordainketak arreta behar du", "paymentPending": "Ordainketa zain", "processingBlocked": "Prozesamendua blokeatuta", diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index 85144f2fa8..d08fd5cfbd 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} از {{total}} فایل بارگذاری شد", "loadAllFiles": "بارگذاری همهٔ فایل‌ها", "loadAll": "بارگذاری همه", - "fileLoaded": "{{count}} فایل بارگذاری شد", - "filesLoaded": "{{count}} فایل بارگذاری شد", - "fileLoadedOfTotal": "{{count}} فایل از {{total}} بارگذاری شد", - "filesLoadedOfTotal": "{{count}} فایل از {{total}} بارگذاری شد", + "fileLoadedCount_one": "{{displayCount}} فایل بارگذاری شد", + "fileLoadedCount": "{{displayCount}} فایل بارگذاری شد", + "fileLoadedCount_other": "{{displayCount}} فایل بارگذاری شد", + "fileLoadedOfTotalCount_one": "{{displayCount}} فایل از {{total}} بارگذاری شد", + "fileLoadedOfTotalCount": "{{displayCount}} فایل از {{total}} بارگذاری شد", + "fileLoadedOfTotalCount_other": "{{displayCount}} فایل از {{total}} بارگذاری شد", "filesStillLoading": "فایل‌ها هنوز در حال بارگذاری هستند. برای بازخوانی به پایین بکشید.", "goToOverview": "رفتن به مرور کلی", "goToOverviewTab": "رفتن به برگهٔ مرور کلی" @@ -288,8 +290,9 @@ "resolved": "حل شد", "outdated": "قدیمی", "file": "فایل", - "oneComment": "۱ نظر", - "commentCount": "{{count}} نظر", + "comment_one": "۱ نظر", + "comment": "{{displayCount}} نظر", + "comment_other": "{{displayCount}} نظر", "startedRelative": " · شروع {{relative}}", "couldNotLoadMore": "بارگذاری نظرات بیشتر ممکن نشد.", "retryLoadingMore": "تلاش مجدد برای بارگذاری نظرات بیشتر", @@ -299,8 +302,9 @@ "reactionsTitle": "واکنش‌ها", "addReaction": "افزودن واکنش", "reactionPill": "واکنش {{emoji}}، {{count}} {{countLabel}}", - "reactionSingular": "واکنش", - "reactionPlural": "واکنش", + "reaction_one": "واکنش", + "reaction": "واکنش", + "reaction_other": "واکنش", "commentActions": "اقدامات نظر", "reportContent": "گزارش محتوا", "reportUser": "گزارش کاربر", @@ -452,8 +456,9 @@ "deletePendingMessage": "این نظر از صف بازبینی حذف می‌شود.", "delete": "حذف", "summaryOptional": "خلاصه (اختیاری)", - "pendingCommentSingular": "نظر در انتظار", - "pendingCommentPlural": "نظرات در انتظار", + "pendingComment_one": "نظر در انتظار", + "pendingComment": "نظرات در انتظار", + "pendingComment_other": "نظرات در انتظار", "submitCountOfTotal": "ارسال {{freshCount}} از {{totalCount}} نظر", "submitReview": "ارسال بازبینی", "partialPostedMessage": "{{freshCount}} نظر ارسال شد. {{staleCount}} نظر به یک commit قدیمی‌تر اشاره دارد و در صف شما ماند." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "باز · بازبینی لازم است", "stateOpen": "باز", "unknownAuthor": "نویسندهٔ ناشناس", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "فایل", - "filePlural": "فایل" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "فایل", + "file": "فایل", + "file_other": "فایل" }, "pendingComment": { "editOutdatedA11y": "ویرایش نظر قدیمی در انتظار روی {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "شخصی", - "oneTyping": "{{name}} در حال تایپ است...", - "manyTyping": "{{names}} در حال تایپ هستند..." + "typing_one": "{{name}} در حال تایپ است...", + "typing": "{{names}} در حال تایپ هستند...", + "typing_other": "{{names}} در حال تایپ هستند..." }, "botStatus": { "online": "آنلاین", @@ -722,12 +730,10 @@ "couldNotLoad": "بارگذاری اطلاعات صورتحساب ناموفق بود", "manageOnWeb": "مدیریت صورتحساب در وب", "commitPlan": "Commit", - "daysLeft": "{{count}} روز باقی‌مانده", "earlybird": "Earlybird", "finalCommitTermEndsOn": "دوره Commit نهایی شما در {{date}} به پایان می‌رسد. در صورت ادامه به‌عنوان Standard با {{price}}، یا هاستینگ قطع می‌شود.", "freeTrial": "آزمایشی رایگان", "hostingEnds": "پایان هاستینگ", - "oneDayLeft": "۱ روز باقی‌مانده", "renews": "تمدید", "standardMonthToMonth": "Standard ماهانه", "standardStartsOn": "Standard از {{date}} با {{price}} شروع می‌شود.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} نیاز به توجه دارد: {{label}}", - "openUnreadOne": "باز کردن {{name}}، {{count}} پیام خوانده‌نشده", - "openUnreadMany": "باز کردن {{name}}، {{count}} پیام خوانده‌نشده", + "openUnread_one": "باز کردن {{name}}، {{displayCount}} پیام خوانده‌نشده", + "openUnread": "باز کردن {{name}}، {{displayCount}} پیام خوانده‌نشده", + "openUnread_other": "باز کردن {{name}}، {{displayCount}} پیام خوانده‌نشده", "open": "باز کردن {{name}}", "openSettings": "باز کردن تنظیمات برای {{name}}", "fixOnKiloAi": "رفع مشکل در kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "اصلاح خودکار فعال شود؟", "enableAutoRemediationConfirmMessage": "عامل امنیتی به‌صورت خودکار برای یافته‌های قابل بهره‌برداری واجد شرایط PR اصلاحی باز می‌کند.", "enable": "فعال‌سازی", - "queuedOne": "{{count}} یافته موجود برای تحلیل در صف قرار گرفت.", - "queuedMany": "{{count}} یافته موجود برای تحلیل در صف قرار گرفت.", + "queued_one": "{{displayCount}} یافته موجود برای تحلیل در صف قرار گرفت.", + "queued": "{{displayCount}} یافته موجود برای تحلیل در صف قرار گرفت.", + "queued_other": "{{displayCount}} یافته موجود برای تحلیل در صف قرار گرفت.", "severityCriticalOnly": "فقط بحرانی", "severityHighAndAbove": "بالا و بالاتر", "severityMediumAndAbove": "متوسط و بالاتر", @@ -1482,8 +1490,9 @@ "on": "روشن", "off": "خاموش", "allRepositories": "همه مخازن", - "repositorySelected": "{{count}} مخزن انتخاب شد", - "repositoriesSelected": "{{count}} مخزن انتخاب شد", + "repositoriesCount_one": "{{displayCount}} مخزن انتخاب شد", + "repositoriesCount": "{{displayCount}} مخزن انتخاب شد", + "repositoriesCount_other": "{{displayCount}} مخزن انتخاب شد", "selectRepositories": "انتخاب مخازن", "selectRepositoriesSubtitle": "انتخاب کنید که Security Agent کدام مخازن را پایش کند", "repositories": "مخازن", @@ -1720,10 +1729,12 @@ "sessionDeleted": "نشست حذف شد", "needsInput": "نیاز به ورودی", "fromPlatform": "از {{platform}}", - "centOne": "سنت", - "centOther": "سنت", - "dollarOne": "دلار", - "dollarOther": "دلار" + "cent_one": "سنت", + "cent": "سنت", + "cent_other": "سنت", + "dollar_one": "دلار", + "dollar": "دلار", + "dollar_other": "دلار" }, "githubInstall": { "couldNotOpenTitle": "باز کردن GitHub ممکن نشد", @@ -1817,8 +1828,9 @@ "discardFailed": "دور انداختن پیشنویس ممکن نشد. لطفاً دوباره تلاش کنید." }, "partRenderer": { - "updatedFile": "{{count}} فایل بهروزرسانی شد", - "updatedFiles": "{{count}} فایل بهروزرسانی شد" + "updatedFileCount_one": "{{displayCount}} فایل بهروزرسانی شد", + "updatedFileCount": "{{displayCount}} فایل بهروزرسانی شد", + "updatedFileCount_other": "{{displayCount}} فایل بهروزرسانی شد" }, "toolPatch": { "operationAdded": "افزوده شد", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "پیام‌های قبلی بارگذاری شدند", "retryHint": "بارگذاری پیام‌های قبلی این جلسه را دوباره تلاش می‌کند.", - "omittedOne": "برخی از موارد قبلی این جلسه قابل نمایش نبودند.", - "omittedMany": "{{count}} مورد قبلی این جلسه قابل نمایش نبودند.", + "omitted_one": "برخی از موارد قبلی این جلسه قابل نمایش نبودند.", + "omitted": "{{displayCount}} مورد قبلی این جلسه قابل نمایش نبودند.", + "omitted_other": "{{displayCount}} مورد قبلی این جلسه قابل نمایش نبودند.", "couldNotLoad": "پیام‌های قبلی بارگذاری نشدند.", "unavailable": "پیام‌های قبلی در دسترس نیستند.", "tooLarge": "پیام‌های قبلی برای بارگذاری بیش از حد بزرگ هستند." @@ -2069,10 +2082,12 @@ "viewTable": "مشاهده جدول", "title": "جدول", "close": "بستن جدول", - "column": "ستون", - "columns": "ستون‌ها", - "row": "ردیف", - "rows": "ردیف‌ها", + "columnCount_one": "ستون", + "columnCount": "ستون‌ها", + "columnCount_other": "ستون‌ها", + "rowCount_one": "ردیف", + "rowCount": "ردیف‌ها", + "rowCount_other": "ردیف‌ها", "opensFullScreen": "تمام‌صفحه باز می‌شود" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "از {{window}} توکن", "tokens": "توکن", "tokensWithPercentage": "توکن ({{percentage}})", - "stepsCountOne": "{{steps}} گام", - "stepsCountMany": "{{steps}} گام", + "stepsCount_one": "{{steps}} گام", + "stepsCount": "{{steps}} گام", + "stepsCount_other": "{{steps}} گام", "modelAccessibilityLabel": "{{name}}، {{provider}}، {{steps}}، {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "کار کدنویسی جدید", "explore": "کاوش", "seeAll": "مشاهده همه", - "kiloAgents": "Kilo Agents", - "greetingMorning": "صبح بخیر", - "greetingAfternoon": "ظهر بخیر", - "greetingEvening": "عصر بخیر" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "بستن {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "مدیریت Kilo Pass را در وب باز می‌کند.", "notSubscribed": "مشترک نیست", "overallocated": "اختصاص‌های Pass از صندلی‌های پرداختی فراتر می‌رود", - "paidSeatOne": "{{count}} صندلی پرداختی", - "paidSeatOther": "{{count}} صندلی پرداختی", + "paidSeat_one": "{{displayCount}} صندلی پرداختی", + "paidSeat": "{{displayCount}} صندلی پرداختی", + "paidSeat_other": "{{displayCount}} صندلی پرداختی", "paymentNeedsAttention": "پرداخت نیاز به توجه دارد", "paymentPending": "پرداخت در انتظار است", "processingBlocked": "پردازش مسدود است", diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 4202ec72f4..159e079a19 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}}/{{total}} tiedostoa ladattu", "loadAllFiles": "Lataa kaikki tiedostot", "loadAll": "Lataa kaikki", - "fileLoaded": "{{count}} tiedosto ladattu", - "filesLoaded": "{{count}} tiedostoa ladattu", - "fileLoadedOfTotal": "{{count}}/{{total}} tiedosto ladattu", - "filesLoadedOfTotal": "{{count}}/{{total}} tiedostoa ladattu", + "fileLoadedCount_one": "{{displayCount}} tiedosto ladattu", + "fileLoadedCount": "{{displayCount}} tiedostoa ladattu", + "fileLoadedCount_other": "{{displayCount}} tiedostoa ladattu", + "fileLoadedOfTotalCount_one": "{{displayCount}}/{{total}} tiedosto ladattu", + "fileLoadedOfTotalCount": "{{displayCount}}/{{total}} tiedostoa ladattu", + "fileLoadedOfTotalCount_other": "{{displayCount}}/{{total}} tiedostoa ladattu", "filesStillLoading": "Tiedostoja latautuu vielä. Pyyhkäise päivittääksesi.", "goToOverview": "Siirry yleiskatsaukseen", "goToOverviewTab": "Siirry yleiskatsaus-välilehteen" @@ -288,8 +290,9 @@ "resolved": "Ratkaistu", "outdated": "Vanhentunut", "file": "Tiedosto", - "oneComment": "1 kommentti", - "commentCount": "{{count}} kommenttia", + "comment_one": "1 kommentti", + "comment": "{{displayCount}} kommenttia", + "comment_other": "{{displayCount}} kommenttia", "startedRelative": " · aloitettu {{relative}}", "couldNotLoadMore": "Lisää kommentteja ei voitu ladata.", "retryLoadingMore": "Yritä ladata lisää kommentteja uudelleen", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaktiot", "addReaction": "Lisää reaktio", "reactionPill": "{{emoji}} reaktio, {{count}} {{countLabel}}", - "reactionSingular": "reaktio", - "reactionPlural": "reaktiota", + "reaction_one": "reaktio", + "reaction": "reaktiota", + "reaction_other": "reaktiota", "commentActions": "Kommentin toiminnot", "reportContent": "Ilmianna sisältö", "reportUser": "Ilmianna käyttäjä", @@ -452,8 +456,9 @@ "deletePendingMessage": "Tämä kommentti poistetaan arviointijonosta.", "delete": "Poista", "summaryOptional": "Yhteenveto (valinnainen)", - "pendingCommentSingular": "odottava kommentti", - "pendingCommentPlural": "odottavaa kommenttia", + "pendingComment_one": "odottava kommentti", + "pendingComment": "odottavaa kommenttia", + "pendingComment_other": "odottavaa kommenttia", "submitCountOfTotal": "Lähetä {{freshCount}}/{{totalCount}} kommenttia", "submitReview": "Lähetä arviointi", "partialPostedMessage": "Lähetettiin {{freshCount}} kommenttia. {{staleCount}} kommenttia viittaa vanhempaan committiin ja jäi jonoon." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Avoin · Arviointi vaaditaan", "stateOpen": "Avoin", "unknownAuthor": "Tuntematon tekijä", - "commitSingular": "commit", - "commitPlural": "commitia", - "fileSingular": "tiedosto", - "filePlural": "tiedostoa" + "commit_one": "commit", + "commit": "commitia", + "commit_other": "commitia", + "file_one": "tiedosto", + "file": "tiedostoa", + "file_other": "tiedostoa" }, "pendingComment": { "editOutdatedA11y": "Muokkaa vanhentunutta odottavaa kommenttia kohteessa {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Joku", - "oneTyping": "{{name}} kirjoittaa…", - "manyTyping": "{{names}} kirjoittavat…" + "typing_one": "{{name}} kirjoittaa…", + "typing": "{{names}} kirjoittavat…", + "typing_other": "{{names}} kirjoittavat…" }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Laskutustietoja ei voitu ladata", "manageOnWeb": "Hallinnoi laskutusta verkossa", "commitPlan": "Commit", - "daysLeft": "{{count}} päivää jäljellä", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Viimeinen Commit-jakson päättyy {{date}}. Jatka Standard-sopimuksella hintaan {{price}}, tai isännöinti päättyy.", "freeTrial": "Ilmainen kokeilu", "hostingEnds": "Isännöinti päättyy", - "oneDayLeft": "1 päivä jäljellä", "renews": "Uusiutuu", "standardMonthToMonth": "Standard kuukausittain", "standardStartsOn": "Standard alkaa {{date}} hintaan {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} vaatii huomiota: {{label}}", - "openUnreadOne": "Avaa {{name}}, {{count}} lukematon viesti", - "openUnreadMany": "Avaa {{name}}, {{count}} lukematonta viestiä", + "openUnread_one": "Avaa {{name}}, {{displayCount}} lukematon viesti", + "openUnread": "Avaa {{name}}, {{displayCount}} lukematonta viestiä", + "openUnread_other": "Avaa {{name}}, {{displayCount}} lukematonta viestiä", "open": "Avaa {{name}}", "openSettings": "Avaa {{name}}:n asetukset", "fixOnKiloAi": "Korjaa osoitteessa kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Otetaanko automaattinen korjaus käyttöön?", "enableAutoRemediationConfirmMessage": "Security Agent avaa korjaus-PR:t automaattisesti kelpoisille hyväksikäytettäville havainnoille.", "enable": "Ota käyttöön", - "queuedOne": "{{count}} olemassa oleva havainto jonossa analyysia varten.", - "queuedMany": "{{count}} olemassa olevaa havaintoa jonossa analyysia varten.", + "queued_one": "{{displayCount}} olemassa oleva havainto jonossa analyysia varten.", + "queued": "{{displayCount}} olemassa olevaa havaintoa jonossa analyysia varten.", + "queued_other": "{{displayCount}} olemassa olevaa havaintoa jonossa analyysia varten.", "severityCriticalOnly": "Vain kriittiset", "severityHighAndAbove": "Korkeat ja sitä korkeammat", "severityMediumAndAbove": "Keskitasoiset ja sitä korkeammat", @@ -1482,8 +1490,9 @@ "on": "Päällä", "off": "Pois", "allRepositories": "Kaikki arkistot", - "repositorySelected": "{{count}} arkisto valittu", - "repositoriesSelected": "{{count}} arkistoa valittu", + "repositoriesCount_one": "{{displayCount}} arkisto valittu", + "repositoriesCount": "{{displayCount}} arkistoa valittu", + "repositoriesCount_other": "{{displayCount}} arkistoa valittu", "selectRepositories": "Valitse arkistot", "selectRepositoriesSubtitle": "Valitse, mitä arkistoja Security Agent valvoo", "repositories": "Arkistot", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Istunto poistettu", "needsInput": "vaatii syötettä", "fromPlatform": "alustalta {{platform}}", - "centOne": "sentti", - "centOther": "senttiä", - "dollarOne": "dollari", - "dollarOther": "dollaria" + "cent_one": "sentti", + "cent": "senttiä", + "cent_other": "senttiä", + "dollar_one": "dollari", + "dollar": "dollaria", + "dollar_other": "dollaria" }, "githubInstall": { "couldNotOpenTitle": "GitHubia ei voitu avata", @@ -1817,8 +1828,9 @@ "discardFailed": "Luonnosta ei voitu hylätä. Yritä uudelleen." }, "partRenderer": { - "updatedFile": "Päivitetty {{count}} tiedosto", - "updatedFiles": "Päivitetty {{count}} tiedostoa" + "updatedFileCount_one": "Päivitetty {{displayCount}} tiedosto", + "updatedFileCount": "Päivitetty {{displayCount}} tiedostoa", + "updatedFileCount_other": "Päivitetty {{displayCount}} tiedostoa" }, "toolPatch": { "operationAdded": "Lisätty", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Aiemmat viestit ladattu", "retryHint": "Yrittää vanhempien viestien lataamista uudelleen tähän istuntoon.", - "omittedOne": "Joitakin tämän istunnon aiempia kohteita ei voitu näyttää.", - "omittedMany": "{{count}} tämän istunnon aiempaa kohdetta ei voitu näyttää.", + "omitted_one": "Joitakin tämän istunnon aiempia kohteita ei voitu näyttää.", + "omitted": "{{displayCount}} tämän istunnon aiempaa kohdetta ei voitu näyttää.", + "omitted_other": "{{displayCount}} tämän istunnon aiempaa kohdetta ei voitu näyttää.", "couldNotLoad": "Vanhempia viestejä ei voitu ladata.", "unavailable": "Vanhemmat viestit eivät ole saatavilla.", "tooLarge": "Vanhemmat viestit ovat liian suuria ladattaviksi." @@ -2069,10 +2082,12 @@ "viewTable": "Näytä taulukko", "title": "Taulukko", "close": "Sulje taulukko", - "column": "sarake", - "columns": "sarakkeet", - "row": "rivi", - "rows": "rivit", + "columnCount_one": "sarake", + "columnCount": "sarakkeet", + "columnCount_other": "sarakkeet", + "rowCount_one": "rivi", + "rowCount": "rivit", + "rowCount_other": "rivit", "opensFullScreen": "avautuu koko näytöllä" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "yhteensä {{window}} tokenia", "tokens": "tokenia", "tokensWithPercentage": "tokenia ({{percentage}})", - "stepsCountOne": "{{steps}} vaihe", - "stepsCountMany": "{{steps}} vaihetta", + "stepsCount_one": "{{steps}} vaihe", + "stepsCount": "{{steps}} vaihetta", + "stepsCount_other": "{{steps}} vaihetta", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Uusi koodaustehtävä", "explore": "Tutustu", "seeAll": "Näytä kaikki", - "kiloAgents": "Kilo Agentit", - "greetingMorning": "Hyvää huomenta", - "greetingAfternoon": "Hyvää päivää", - "greetingEvening": "Hyvää iltaa" + "kiloAgents": "Kilo Agentit" }, "imageViewer": { "close": "Sulje {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Avaa Kilo Pass -hallinnan verkossa.", "notSubscribed": "Ei tilattu", "overallocated": "Pass-varaukset ylittävät maksetut paikat", - "paidSeatOne": "{{count}} maksettu paikka", - "paidSeatOther": "{{count}} maksettua paikkaa", + "paidSeat_one": "{{displayCount}} maksettu paikka", + "paidSeat": "{{displayCount}} maksettua paikkaa", + "paidSeat_other": "{{displayCount}} maksettua paikkaa", "paymentNeedsAttention": "Maksu vaatii huomiota", "paymentPending": "Maksu odottaa", "processingBlocked": "Käsittely estetty", diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index c29a5501ba..1d749f0914 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} sa {{total}} na file ang na-load", "loadAllFiles": "I-load ang lahat ng file", "loadAll": "I-load lahat", - "fileLoaded": "{{count}} na file ang na-load", - "filesLoaded": "{{count}} na file ang na-load", - "fileLoadedOfTotal": "{{count}} na file sa {{total}} ang na-load", - "filesLoadedOfTotal": "{{count}} na file sa {{total}} ang na-load", + "fileLoadedCount_one": "{{displayCount}} na file ang na-load", + "fileLoadedCount": "{{displayCount}} na file ang na-load", + "fileLoadedCount_other": "{{displayCount}} na file ang na-load", + "fileLoadedOfTotalCount_one": "{{displayCount}} na file sa {{total}} ang na-load", + "fileLoadedOfTotalCount": "{{displayCount}} na file sa {{total}} ang na-load", + "fileLoadedOfTotalCount_other": "{{displayCount}} na file sa {{total}} ang na-load", "filesStillLoading": "Naglo-load pa rin ang mga file. Hilain para i-refresh.", "goToOverview": "Pumunta sa Overview", "goToOverviewTab": "Pumunta sa Overview tab" @@ -288,8 +290,9 @@ "resolved": "Na-resolve", "outdated": "Luma na", "file": "File", - "oneComment": "1 komento", - "commentCount": "{{count}} na komento", + "comment_one": "1 komento", + "comment": "{{displayCount}} na komento", + "comment_other": "{{displayCount}} na komento", "startedRelative": " · nagsimula {{relative}}", "couldNotLoadMore": "Hindi ma-load ang iba pang komento.", "retryLoadingMore": "Subukang i-load muli ang iba pang komento", @@ -299,8 +302,9 @@ "reactionsTitle": "Mga Reaksyon", "addReaction": "Magdagdag ng reaksyon", "reactionPill": "{{emoji}} reaksyon, {{count}} {{countLabel}}", - "reactionSingular": "reaksyon", - "reactionPlural": "mga reaksyon", + "reaction_one": "reaksyon", + "reaction": "mga reaksyon", + "reaction_other": "mga reaksyon", "commentActions": "Mga aksyon sa komento", "reportContent": "I-report ang nilalaman", "reportUser": "I-report ang user", @@ -452,8 +456,9 @@ "deletePendingMessage": "Aalisin ang komentong ito sa review queue.", "delete": "I-delete", "summaryOptional": "Buod (opsyonal)", - "pendingCommentSingular": "nakabinbing komento", - "pendingCommentPlural": "mga nakabinbing komento", + "pendingComment_one": "nakabinbing komento", + "pendingComment": "mga nakabinbing komento", + "pendingComment_other": "mga nakabinbing komento", "submitCountOfTotal": "Isumite ang {{freshCount}} sa {{totalCount}} na komento", "submitReview": "Isumite ang review", "partialPostedMessage": "Na-post ang {{freshCount}} na komento. Ang {{staleCount}} na komento ay tumutukoy sa mas lumang commit at nanatili sa iyong queue." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Bukas · Kinakailangan ang review", "stateOpen": "Bukas", "unknownAuthor": "Hindi kilalang author", - "commitSingular": "commit", - "commitPlural": "mga commit", - "fileSingular": "file", - "filePlural": "mga file" + "commit_one": "commit", + "commit": "mga commit", + "commit_other": "mga commit", + "file_one": "file", + "file": "mga file", + "file_other": "mga file" }, "pendingComment": { "editOutdatedA11y": "I-edit ang lumang nakabinbing komento sa {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "May isang tao", - "oneTyping": "{{name}} ay nagta-type...", - "manyTyping": "{{names}} ay nagta-type..." + "typing_one": "{{name}} ay nagta-type...", + "typing": "{{names}} ay nagta-type...", + "typing_other": "{{names}} ay nagta-type..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Hindi maload ang impormasyon ng billing", "manageOnWeb": "Pamahalaan ang Billing sa Web", "commitPlan": "Mag-commit", - "daysLeft": "{{count}} araw ang natitira", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Magtatapos ang iyong huling termino sa Commit sa {{date}}. Magpatuloy bilang Standard sa {{price}}, o magtatapos ang hosting.", "freeTrial": "Libreng Subok", "hostingEnds": "Magtatapos ang hosting", - "oneDayLeft": "1 araw ang natitira", "renews": "Nire-renew", "standardMonthToMonth": "Standard buwan-buwan", "standardStartsOn": "Magsisimula ang Standard sa {{date}} sa {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "Kailangan ng {{name}} ng pansin: {{label}}", - "openUnreadOne": "Buksan ang {{name}}, {{count}} na hindi pa nababasang mensahe", - "openUnreadMany": "Buksan ang {{name}}, {{count}} na hindi pa nababasang mensahe", + "openUnread_one": "Buksan ang {{name}}, {{displayCount}} na hindi pa nababasang mensahe", + "openUnread": "Buksan ang {{name}}, {{displayCount}} na hindi pa nababasang mensahe", + "openUnread_other": "Buksan ang {{name}}, {{displayCount}} na hindi pa nababasang mensahe", "open": "Buksan ang {{name}}", "openSettings": "Buksan ang mga setting para kay {{name}}", "fixOnKiloAi": "Ayusin sa kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "I-enable ang auto-remediation?", "enableAutoRemediationConfirmMessage": "Awtomatikong magbubukas ang Security Agent ng mga remediation PR para sa mga kwalipikadong magagamit na finding.", "enable": "I-enable", - "queuedOne": "{{count}} umiiral na finding ang nakapila para sa pagsusuri.", - "queuedMany": "{{count}} umiiral na findings ang nakapila para sa pagsusuri.", + "queued_one": "{{displayCount}} umiiral na finding ang nakapila para sa pagsusuri.", + "queued": "{{displayCount}} umiiral na findings ang nakapila para sa pagsusuri.", + "queued_other": "{{displayCount}} umiiral na findings ang nakapila para sa pagsusuri.", "severityCriticalOnly": "Critical lang", "severityHighAndAbove": "High pataas", "severityMediumAndAbove": "Medium pataas", @@ -1482,8 +1490,9 @@ "on": "Bukas", "off": "Sarado", "allRepositories": "Lahat ng repository", - "repositorySelected": "{{count}} repository ang napili", - "repositoriesSelected": "{{count}} repository ang napili", + "repositoriesCount_one": "{{displayCount}} repository ang napili", + "repositoriesCount": "{{displayCount}} repository ang napili", + "repositoriesCount_other": "{{displayCount}} repository ang napili", "selectRepositories": "Pumili ng mga repository", "selectRepositoriesSubtitle": "Piliin kung aling mga repository ang mina-monitor ng Security Agent", "repositories": "Mga repository", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Na-bura ang session", "needsInput": "kailangan ng input", "fromPlatform": "mula sa {{platform}}", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dollar", - "dollarOther": "dollar" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dollar", + "dollar": "dollar", + "dollar_other": "dollar" }, "githubInstall": { "couldNotOpenTitle": "Hindi mabuksan ang GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Hindi ma-discard ang draft. Pakisubukang muli." }, "partRenderer": { - "updatedFile": "Na-update ang {{count}} file", - "updatedFiles": "Na-update ang {{count}} files" + "updatedFileCount_one": "Na-update ang {{displayCount}} file", + "updatedFileCount": "Na-update ang {{displayCount}} files", + "updatedFileCount_other": "Na-update ang {{displayCount}} files" }, "toolPatch": { "operationAdded": "Idinagdag", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ni-load ang mga naunang mensahe", "retryHint": "Muling susubukang i-load ang mga naunang mensahe para sa session na ito.", - "omittedOne": "Hindi maipakita ang ilang naunang item mula sa session na ito.", - "omittedMany": "Hindi maipakita ang {{count}} na naunang item mula sa session na ito.", + "omitted_one": "Hindi maipakita ang ilang naunang item mula sa session na ito.", + "omitted": "Hindi maipakita ang {{displayCount}} na naunang item mula sa session na ito.", + "omitted_other": "Hindi maipakita ang {{displayCount}} na naunang item mula sa session na ito.", "couldNotLoad": "Hindi ma-load ang mga naunang mensahe.", "unavailable": "Hindi available ang mga naunang mensahe.", "tooLarge": "Masyadong malaki para i-load ang mga naunang mensahe." @@ -2069,10 +2082,12 @@ "viewTable": "Tingnan ang table", "title": "Table", "close": "Isara ang table", - "column": "column", - "columns": "mga column", - "row": "row", - "rows": "mga row", + "columnCount_one": "column", + "columnCount": "mga column", + "columnCount_other": "mga column", + "rowCount_one": "row", + "rowCount": "mga row", + "rowCount_other": "mga row", "opensFullScreen": "bubuksan sa full screen" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ng {{window}} na tokens", "tokens": "mga token", "tokensWithPercentage": "mga token ({{percentage}})", - "stepsCountOne": "{{steps}} hakbang", - "stepsCountMany": "{{steps}} na hakbang", + "stepsCount_one": "{{steps}} hakbang", + "stepsCount": "{{steps}} na hakbang", + "stepsCount_other": "{{steps}} na hakbang", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Bagong coding task", "explore": "Mag-explore", "seeAll": "Tingnan lahat", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Magandang umaga", - "greetingAfternoon": "Magandang hapon", - "greetingEvening": "Magandang gabi" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Isara ang {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Bubuksan ang pamamahala ng Kilo Pass sa web.", "notSubscribed": "Hindi naka-subscribe", "overallocated": "Lumampas sa bayad na upuan ang mga pagtatalaga ng Pass", - "paidSeatOne": "{{count}} bayad na upuan", - "paidSeatOther": "{{count}} na bayad na upuan", + "paidSeat_one": "{{displayCount}} bayad na upuan", + "paidSeat": "{{displayCount}} na bayad na upuan", + "paidSeat_other": "{{displayCount}} na bayad na upuan", "paymentNeedsAttention": "Kailangan ng atensyon ang pagbabayad", "paymentPending": "Nakabinbin ang pagbabayad", "processingBlocked": "Naharang ang pagproseso", diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index 139bc04c90..a803a7c2bc 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -305,8 +305,9 @@ }, "typingIndicator": { "someone": "Quelqu'un", - "oneTyping": "{{name}} est en train d'écrire...", - "manyTyping": "{{names}} sont en train d'écrire..." + "typing_one": "{{name}} est en train d'écrire...", + "typing": "{{names}} sont en train d'écrire...", + "typing_other": "{{names}} sont en train d'écrire..." }, "botStatus": { "online": "En ligne", @@ -336,12 +337,10 @@ "couldNotLoad": "Impossible de charger les informations de facturation", "manageOnWeb": "Gérer la facturation sur le Web", "commitPlan": "Commit", - "daysLeft": "{{count}} jours restants", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Votre dernière période Commit se termine le {{date}}. Passez en Standard à {{price}}, ou l'hébergement prend fin.", "freeTrial": "Essai gratuit", "hostingEnds": "L'hébergement prend fin", - "oneDayLeft": "1 jour restant", "renews": "Se renouvelle", "standardMonthToMonth": "Standard au mois", "standardStartsOn": "Standard commence le {{date}} à {{price}}.", @@ -552,8 +551,9 @@ "needsAttention": "{{name}} nécessite votre attention : {{label}}", "open": "Ouvrir {{name}}", "openSettings": "Ouvrir les paramètres de {{name}}", - "openUnreadMany": "Ouvrir {{name}}, {{count}} messages non lus", - "openUnreadOne": "Ouvrir {{name}}, {{count}} message non lu" + "openUnread": "Ouvrir {{name}}, {{displayCount}} messages non lus", + "openUnread_other": "Ouvrir {{name}}, {{displayCount}} messages non lus", + "openUnread_one": "Ouvrir {{name}}, {{displayCount}} message non lu" }, "list": { "createInstance": "Créer une instance", @@ -1025,8 +1025,9 @@ "includeExistingFindingsRemediationSubtitle": "Met aussi en file d'attente les résultats éligibles déjà analysés. Les PR en double restent supprimées.", "minimumSeverity": "Gravité minimale", "permissionNote": "Seuls les propriétaires d'organisation et les gestionnaires de facturation peuvent modifier ces paramètres.", - "queuedMany": "{{count}} résultats existants mis en file d'attente pour analyse.", - "queuedOne": "{{count}} résultat existant mis en file d'attente pour analyse.", + "queued": "{{displayCount}} résultats existants mis en file d'attente pour analyse.", + "queued_other": "{{displayCount}} résultats existants mis en file d'attente pour analyse.", + "queued_one": "{{displayCount}} résultat existant mis en file d'attente pour analyse.", "requireApproval": "Exiger une approbation avant la remédiation automatique", "requireApprovalSubtitle": "La remédiation automatique attend votre approbation avant d'ouvrir des PR.", "severityAll": "Toutes les gravités", @@ -1256,8 +1257,9 @@ "off": "Désactivé", "on": "Activé", "repositories": "Dépôts", - "repositoriesSelected": "{{count}} dépôts sélectionnés", - "repositorySelected": "{{count}} dépôt sélectionné", + "repositoriesCount": "{{displayCount}} dépôts sélectionnés", + "repositoriesCount_other": "{{displayCount}} dépôts sélectionnés", + "repositoriesCount_one": "{{displayCount}} dépôt sélectionné", "securityAgent": "Security Agent", "selectRepositories": "Sélectionner les dépôts", "selectRepositoriesSubtitle": "Choisissez les dépôts surveillés par Security Agent", @@ -1380,8 +1382,9 @@ "keepEditing": "Continuer à modifier" }, "partRenderer": { - "updatedFile": "{{count}} fichier mis à jour", - "updatedFiles": "{{count}} fichiers mis à jour" + "updatedFileCount_one": "{{displayCount}} fichier mis à jour", + "updatedFileCount": "{{displayCount}} fichiers mis à jour", + "updatedFileCount_other": "{{displayCount}} fichiers mis à jour" }, "toolPatch": { "operationAdded": "Ajouté", @@ -1622,8 +1625,9 @@ "olderMessages": { "arrived": "Messages précédents chargés", "retryHint": "Relance le chargement des messages plus anciens de cette session.", - "omittedOne": "Un élément antérieur de cette session n’a pas pu être affiché.", - "omittedMany": "{{count}} éléments antérieurs de cette session n’ont pas pu être affichés.", + "omitted_one": "Un élément antérieur de cette session n’a pas pu être affiché.", + "omitted": "{{displayCount}} éléments antérieurs de cette session n’ont pas pu être affichés.", + "omitted_other": "{{displayCount}} éléments antérieurs de cette session n’ont pas pu être affichés.", "couldNotLoad": "Impossible de charger les messages précédents.", "unavailable": "Les messages précédents ne sont pas disponibles.", "tooLarge": "Les messages précédents sont trop volumineux pour être chargés." @@ -1632,10 +1636,12 @@ "viewTable": "Voir le tableau", "title": "Tableau", "close": "Fermer le tableau", - "column": "colonne", - "columns": "colonnes", - "row": "ligne", - "rows": "lignes", + "columnCount_one": "colonne", + "columnCount": "colonnes", + "columnCount_other": "colonnes", + "rowCount_one": "ligne", + "rowCount": "lignes", + "rowCount_other": "lignes", "opensFullScreen": "ouvre en plein écran" }, "sessionFilter": { @@ -1788,8 +1794,9 @@ "ofWindowTokens": "sur {{window}} jetons", "tokens": "jetons", "tokensWithPercentage": "jetons ({{percentage}})", - "stepsCountOne": "{{steps}} étape", - "stepsCountMany": "{{steps}} étapes", + "stepsCount_one": "{{steps}} étape", + "stepsCount": "{{steps}} étapes", + "stepsCount_other": "{{steps}} étapes", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1868,10 +1875,7 @@ "newCodingTask": "Nouvelle tâche de codage", "explore": "Explorer", "seeAll": "Tout voir", - "kiloAgents": "Agents Kilo", - "greetingMorning": "Bonjour", - "greetingAfternoon": "Bon après-midi", - "greetingEvening": "Bonsoir" + "kiloAgents": "Agents Kilo" }, "imageViewer": { "close": "Fermer {{filename}}", @@ -2119,10 +2123,12 @@ "sessionDeleted": "Session supprimée", "needsInput": "saisie requise", "fromPlatform": "depuis {{platform}}", - "centOne": "centime", - "centOther": "centimes", - "dollarOne": "dollar", - "dollarOther": "dollars" + "cent_one": "centime", + "cent": "centimes", + "cent_other": "centimes", + "dollar_one": "dollar", + "dollar": "dollars", + "dollar_other": "dollars" }, "githubInstall": { "couldNotOpenMessage": "Impossible de démarrer la configuration de la GitHub App. Veuillez réessayer.", @@ -2205,7 +2211,8 @@ "closeReactions": "Fermer les réactions", "collapseThread": "Réduire le fil", "commentActions": "Actions du commentaire", - "commentCount": "{{count}} commentaires", + "comment": "{{displayCount}} commentaires", + "comment_other": "{{displayCount}} commentaires", "couldNotLoad": "Impossible de charger la discussion", "couldNotLoadMore": "Impossible de charger plus de commentaires.", "couldNotReply": "Impossible de répondre.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} mis en sourdine", "noDiscussion": "Aucune discussion pour le moment", "noDiscussionDescription": "Aucun fil de revue ni commentaire de conversation sur cette pull request.", - "oneComment": "1 commentaire", + "comment_one": "1 commentaire", "outdated": "Obsolète", "quotedDiffSnippet": "Extrait de diff cité", "reactionPill": "{{emoji}} réaction, {{count}} {{countLabel}}", - "reactionPlural": "réactions", - "reactionSingular": "réaction", + "reaction": "réactions", + "reaction_other": "réactions", + "reaction_one": "réaction", "reactionsTitle": "Réactions", "reply": "Répondre", "replyBadRequest": "Cette réponse ne peut pas être publiée. Le fil a peut-être changé.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Développer {{count}} lignes supplémentaires ({{start}}–{{end}})", "failedToLoadContext": "Échec du chargement du contexte — touchez pour réessayer", "failedToLoadMoreFiles": "Échec du chargement de plus de fichiers — touchez pour réessayer", - "fileLoaded": "{{count}} fichier chargé", - "fileLoadedOfTotal": "{{count}} fichier chargé sur {{total}}", - "filesLoaded": "{{count}} fichiers chargés", - "filesLoadedOfTotal": "{{count}} fichiers chargés sur {{total}}", + "fileLoadedCount_one": "{{displayCount}} fichier chargé", + "fileLoadedOfTotalCount_one": "{{displayCount}} fichier chargé sur {{total}}", + "fileLoadedCount": "{{displayCount}} fichiers chargés", + "fileLoadedCount_other": "{{displayCount}} fichiers chargés", + "fileLoadedOfTotalCount": "{{displayCount}} fichiers chargés sur {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} fichiers chargés sur {{total}}", "filesStillLoading": "Les fichiers sont encore en cours de chargement. Tirez pour actualiser.", "goToOverview": "Aller à l'aperçu", "goToOverviewTab": "Aller à l'onglet Aperçu", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Aucun fichier modifié", "noFilesChangedDescription": "Cette pull request n'a aucune modification de fichier.", "overview": { - "commitPlural": "commits", - "commitSingular": "commit", - "filePlural": "fichiers", - "fileSingular": "fichier", + "commit": "commits", + "commit_other": "commits", + "commit_one": "commit", + "file": "fichiers", + "file_other": "fichiers", + "file_one": "fichier", "stateClosed": "Fermée", "stateDraft": "Brouillon", "stateMerged": "Fusionnée", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Ce commentaire sera retiré de la file d'attente de la revue.", "deletePendingTitle": "Supprimer le commentaire en attente ?", "loadFailedTitle": "Impossible de charger l'envoi de la revue", - "pendingCommentPlural": "commentaires en attente", - "pendingCommentSingular": "commentaire en attente", + "pendingComment": "commentaires en attente", + "pendingComment_other": "commentaires en attente", + "pendingComment_one": "commentaire en attente", "summaryOptional": "Résumé (facultatif)", "title": "Envoyer la revue", "partialPostedMessage": "{{freshCount}} commentaire(s) publié(s). {{staleCount}} commentaire(s) pointent vers un commit plus ancien et sont restés dans votre file d'attente.", @@ -2632,8 +2645,9 @@ "manageHint": "Ouvre la gestion de Kilo Pass sur le Web.", "notSubscribed": "Non abonné", "overallocated": "Les attributions de Pass dépassent les sièges payés", - "paidSeatOne": "{{count}} siège payé", - "paidSeatOther": "{{count}} sièges payés", + "paidSeat_one": "{{displayCount}} siège payé", + "paidSeat": "{{displayCount}} sièges payés", + "paidSeat_other": "{{displayCount}} sièges payés", "paymentNeedsAttention": "Paiement à vérifier", "paymentPending": "Paiement en attente", "processingBlocked": "Traitement bloqué", diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index 0f6e8ff4fe..25793fd124 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} de {{total}} comhad lódáilte", "loadAllFiles": "Lódáil na comhaid go léir", "loadAll": "Lódáil go léir", - "fileLoaded": "{{count}} comhad lódáilte", - "filesLoaded": "{{count}} comhad lódáilte", - "fileLoadedOfTotal": "{{count}} comhad lódáilte de {{total}}", - "filesLoadedOfTotal": "{{count}} comhad lódáilte de {{total}}", + "fileLoadedCount_one": "{{displayCount}} comhad lódáilte", + "fileLoadedCount": "{{displayCount}} comhad lódáilte", + "fileLoadedCount_other": "{{displayCount}} comhad lódáilte", + "fileLoadedOfTotalCount_one": "{{displayCount}} comhad lódáilte de {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} comhad lódáilte de {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} comhad lódáilte de {{total}}", "filesStillLoading": "Tá na comhaid fós ag lódáil. Tarraing chun athnuachan a dhéanamh.", "goToOverview": "Téigh go dtí an Forléargas", "goToOverviewTab": "Téigh go dtí an táb Forléargais" @@ -288,8 +290,9 @@ "resolved": "Réitithe", "outdated": "Seanchaithe", "file": "Comhad", - "oneComment": "1 trácht", - "commentCount": "{{count}} trácht", + "comment_one": "1 trácht", + "comment": "{{displayCount}} trácht", + "comment_other": "{{displayCount}} trácht", "startedRelative": " · thosaigh {{relative}}", "couldNotLoadMore": "Níorbh fhéidir tuilleadh tráchtanna a lódáil.", "retryLoadingMore": "Bain triail as tuilleadh tráchtanna a lódáil arís", @@ -299,8 +302,9 @@ "reactionsTitle": "Imoibriúcháin", "addReaction": "Cuir imoibriúchán leis", "reactionPill": "{{emoji}} imoibriúchán, {{count}} {{countLabel}}", - "reactionSingular": "imoibriúchán", - "reactionPlural": "imoibriúcháin", + "reaction_one": "imoibriúchán", + "reaction": "imoibriúcháin", + "reaction_other": "imoibriúcháin", "commentActions": "Gníomhartha tráchta", "reportContent": "Tuairiscigh ábhar", "reportUser": "Tuairiscigh úsáideoir", @@ -452,8 +456,9 @@ "deletePendingMessage": "Bainfear an trácht seo ón scuaine athbhreithnithe.", "delete": "Scrios", "summaryOptional": "Achoimre (roghnach)", - "pendingCommentSingular": "trácht ar feitheamh", - "pendingCommentPlural": "tráchtanna ar feitheamh", + "pendingComment_one": "trácht ar feitheamh", + "pendingComment": "tráchtanna ar feitheamh", + "pendingComment_other": "tráchtanna ar feitheamh", "submitCountOfTotal": "Seol {{freshCount}} de {{totalCount}} trácht", "submitReview": "Seol athbhreithniú", "partialPostedMessage": "Postáladh {{freshCount}} trácht(anna). Díríonn {{staleCount}} trácht(anna) ar thiomantas níos sine agus d'fhan siad i do scuaine." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Oscailte · Athbhreithniú riachtanach", "stateOpen": "Oscailte", "unknownAuthor": "Údar anaithnid", - "commitSingular": "tiomantas", - "commitPlural": "tiomantais", - "fileSingular": "comhad", - "filePlural": "comhaid" + "commit_one": "tiomantas", + "commit": "tiomantais", + "commit_other": "tiomantais", + "file_one": "comhad", + "file": "comhaid", + "file_other": "comhaid" }, "pendingComment": { "editOutdatedA11y": "Cuir trácht seanchaithe ar feitheamh in eagar ar {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Duine éigin", - "oneTyping": "Tá {{name}} ag clóscríobh...", - "manyTyping": "Tá {{names}} ag clóscríobh..." + "typing_one": "Tá {{name}} ag clóscríobh...", + "typing": "Tá {{names}} ag clóscríobh...", + "typing_other": "Tá {{names}} ag clóscríobh..." }, "botStatus": { "online": "Ar líne", @@ -722,12 +730,10 @@ "couldNotLoad": "Níorbh fhéidir faisnéis bhilleála a lódáil", "manageOnWeb": "Bainistigh Billeáil ar an nGréasán", "commitPlan": "Tiomantas", - "daysLeft": "{{count}} lá fágtha", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Críochnaíonn do théarma Tiomantais dheiridh ar {{date}}. Lean ar aghaidh mar Chaighdeán ag {{price}}, nó críochnaíonn an t-óstáil.", "freeTrial": "Triail Saor in Aisce", "hostingEnds": "Críochnaíonn an t-óstáil", - "oneDayLeft": "1 lá fágtha", "renews": "Athnuaitear", "standardMonthToMonth": "Caighdeánach mí ar mhí", "standardStartsOn": "Tosóidh an Caighdeán ar {{date}} ag {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "Teastaíonn aird ar {{name}}: {{label}}", - "openUnreadOne": "Oscail {{name}}, {{count}} teachtaireacht gan léamh", - "openUnreadMany": "Oscail {{name}}, {{count}} teachtaireacht gan léamh", + "openUnread_one": "Oscail {{name}}, {{displayCount}} teachtaireacht gan léamh", + "openUnread": "Oscail {{name}}, {{displayCount}} teachtaireacht gan léamh", + "openUnread_other": "Oscail {{name}}, {{displayCount}} teachtaireacht gan léamh", "open": "Oscail {{name}}", "openSettings": "Oscail socruithe do {{name}}", "fixOnKiloAi": "Deisigh ar kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Cumasaigh uath-fheabhsú?", "enableAutoRemediationConfirmMessage": "Osclóidh Gníomhaire Slándála PRanna feabhais go huathoibríoch do thorthaí inshaothraithe cáilitheacha.", "enable": "Cumasaigh", - "queuedOne": "{{count}} fionnachtain atá ann cheana i scuaine le haghaidh anailíse.", - "queuedMany": "{{count}} fionnachtain atá ann cheana i scuaine le haghaidh anailíse.", + "queued_one": "{{displayCount}} fionnachtain atá ann cheana i scuaine le haghaidh anailíse.", + "queued": "{{displayCount}} fionnachtain atá ann cheana i scuaine le haghaidh anailíse.", + "queued_other": "{{displayCount}} fionnachtain atá ann cheana i scuaine le haghaidh anailíse.", "severityCriticalOnly": "Criticiúil amháin", "severityHighAndAbove": "Ard agus os a chionn", "severityMediumAndAbove": "Meánach agus os a chionn", @@ -1482,8 +1490,9 @@ "on": "Ar siúl", "off": "As", "allRepositories": "Gach stór", - "repositorySelected": "{{count}} stór roghnaithe", - "repositoriesSelected": "{{count}} stór roghnaithe", + "repositoriesCount_one": "{{displayCount}} stór roghnaithe", + "repositoriesCount": "{{displayCount}} stór roghnaithe", + "repositoriesCount_other": "{{displayCount}} stór roghnaithe", "selectRepositories": "Roghnaigh stórtha", "selectRepositoriesSubtitle": "Roghnaigh cé na stórtha a ndéanann Security Agent monatóireacht orthu", "repositories": "Stórtha", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Scriosadh an seisiún", "needsInput": "teastaíonn ionchur", "fromPlatform": "ó {{platform}}", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dollar", - "dollarOther": "dollar" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dollar", + "dollar": "dollar", + "dollar_other": "dollar" }, "githubInstall": { "couldNotOpenTitle": "Níorbh fhéidir GitHub a oscailt", @@ -1817,8 +1828,9 @@ "discardFailed": "Níorbh fhéidir an dréacht a chaitheamh ar lár. Bain triail as arís le do thoil." }, "partRenderer": { - "updatedFile": "Nuashonraíodh {{count}} comhad", - "updatedFiles": "Nuashonraíodh {{count}} comhad" + "updatedFileCount_one": "Nuashonraíodh {{displayCount}} comhad", + "updatedFileCount": "Nuashonraíodh {{displayCount}} comhad", + "updatedFileCount_other": "Nuashonraíodh {{displayCount}} comhad" }, "toolPatch": { "operationAdded": "Curtha leis", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Lódáladh teachtaireachtaí níos luaithe", "retryHint": "Déanann sé athiarracht ar lódáil na dteachtaireachtaí níos sine don seisiún seo.", - "omittedOne": "Níorbh fhéidir roinnt míreanna níos luaithe ón seisiún seo a thaispeáint.", - "omittedMany": "Níorbh fhéidir {{count}} mír níos luaithe ón seisiún seo a thaispeáint.", + "omitted_one": "Níorbh fhéidir roinnt míreanna níos luaithe ón seisiún seo a thaispeáint.", + "omitted": "Níorbh fhéidir {{displayCount}} mír níos luaithe ón seisiún seo a thaispeáint.", + "omitted_other": "Níorbh fhéidir {{displayCount}} mír níos luaithe ón seisiún seo a thaispeáint.", "couldNotLoad": "Níorbh fhéidir teachtaireachtaí níos luaithe a lódáil.", "unavailable": "Níl teachtaireachtaí níos luaithe ar fáil.", "tooLarge": "Tá teachtaireachtaí níos luaithe rómhór le lódáil." @@ -2069,10 +2082,12 @@ "viewTable": "Féach ar an tábla", "title": "Tábla", "close": "Dún an tábla", - "column": "colún", - "columns": "colúin", - "row": "ró", - "rows": "rónna", + "columnCount_one": "colún", + "columnCount": "colúin", + "columnCount_other": "colúin", + "rowCount_one": "ró", + "rowCount": "rónna", + "rowCount_other": "rónna", "opensFullScreen": "osclaíonn scáileán iomlán" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "de {{window}} thocain", "tokens": "tocain", "tokensWithPercentage": "tocain ({{percentage}})", - "stepsCountOne": "{{steps}} chéim", - "stepsCountMany": "{{steps}} céim", + "stepsCount_one": "{{steps}} chéim", + "stepsCount": "{{steps}} céim", + "stepsCount_other": "{{steps}} céim", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Tasc códaithe nua", "explore": "Taiscéal", "seeAll": "Féach ar gach ceann", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Maidin mhaith", - "greetingAfternoon": "Tráthnóna maith", - "greetingEvening": "Oíche mhaith" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Dún {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Osclaíonn bainistíocht Kilo Pass ar an ngréasán.", "notSubscribed": "Gan liostáil", "overallocated": "Sáraíonn sannacháin Pas suíocháin íoctha", - "paidSeatOne": "{{count}} shuíochán íoctha", - "paidSeatOther": "{{count}} suíochán íoctha", + "paidSeat_one": "{{displayCount}} shuíochán íoctha", + "paidSeat": "{{displayCount}} suíochán íoctha", + "paidSeat_other": "{{displayCount}} suíochán íoctha", "paymentNeedsAttention": "Teastaíonn aird ar an íocaíocht", "paymentPending": "Íocaíocht ar feitheamh", "processingBlocked": "Próiseáil blocáilte", diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index c03a1b593b..47e97a026d 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} de {{total}} arquivos cargados", "loadAllFiles": "Cargar todos os arquivos", "loadAll": "Cargar todo", - "fileLoaded": "{{count}} arquivo cargado", - "filesLoaded": "{{count}} arquivos cargados", - "fileLoadedOfTotal": "{{count}} arquivo cargado de {{total}}", - "filesLoadedOfTotal": "{{count}} arquivos cargados de {{total}}", + "fileLoadedCount_one": "{{displayCount}} arquivo cargado", + "fileLoadedCount": "{{displayCount}} arquivos cargados", + "fileLoadedCount_other": "{{displayCount}} arquivos cargados", + "fileLoadedOfTotalCount_one": "{{displayCount}} arquivo cargado de {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} arquivos cargados de {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} arquivos cargados de {{total}}", "filesStillLoading": "Os arquivos aínda se están cargando. Tira para actualizar.", "goToOverview": "Ir á vista xeral", "goToOverviewTab": "Ir á pestana de vista xeral" @@ -288,8 +290,9 @@ "resolved": "Resolto", "outdated": "Desactualizado", "file": "Arquivo", - "oneComment": "1 comentario", - "commentCount": "{{count}} comentarios", + "comment_one": "1 comentario", + "comment": "{{displayCount}} comentarios", + "comment_other": "{{displayCount}} comentarios", "startedRelative": " · comezou {{relative}}", "couldNotLoadMore": "Non se puideron cargar máis comentarios.", "retryLoadingMore": "Volver cargar máis comentarios", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaccións", "addReaction": "Engadir reacción", "reactionPill": "{{emoji}} reacción, {{count}} {{countLabel}}", - "reactionSingular": "reacción", - "reactionPlural": "reaccións", + "reaction_one": "reacción", + "reaction": "reaccións", + "reaction_other": "reaccións", "commentActions": "Accións do comentario", "reportContent": "Denunciar contido", "reportUser": "Denunciar usuario", @@ -452,8 +456,9 @@ "deletePendingMessage": "Este comentario eliminarase da cola de revisión.", "delete": "Eliminar", "summaryOptional": "Resumo (opcional)", - "pendingCommentSingular": "comentario pendente", - "pendingCommentPlural": "comentarios pendentes", + "pendingComment_one": "comentario pendente", + "pendingComment": "comentarios pendentes", + "pendingComment_other": "comentarios pendentes", "submitCountOfTotal": "Enviar {{freshCount}} de {{totalCount}} comentarios", "submitReview": "Enviar revisión", "partialPostedMessage": "Publicouse {{freshCount}} comentario(s). {{staleCount}} comentario(s) apuntan a un commit máis antigo e permaneceron na túa cola." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Aberto · Revisión requirida", "stateOpen": "Aberto", "unknownAuthor": "Autor descoñecido", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "arquivo", - "filePlural": "arquivos" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "arquivo", + "file": "arquivos", + "file_other": "arquivos" }, "pendingComment": { "editOutdatedA11y": "Editar comentario pendente desactualizado en {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Alguén", - "oneTyping": "{{name}} está escribindo...", - "manyTyping": "{{names}} están escribindo..." + "typing_one": "{{name}} está escribindo...", + "typing": "{{names}} están escribindo...", + "typing_other": "{{names}} están escribindo..." }, "botStatus": { "online": "En liña", @@ -722,12 +730,10 @@ "couldNotLoad": "Non se puido cargar a información de facturación", "manageOnWeb": "Xestionar a facturación na web", "commitPlan": "Comprometer", - "daysLeft": "Quedan {{count}} días", "earlybird": "Madrugador", "finalCommitTermEndsOn": "O teu prazo final de Commit remata o {{date}}. Continúa como Standard por {{price}}, ou a hospedaxe remata.", "freeTrial": "Probas gratuítas", "hostingEnds": "A hospedaxe remata", - "oneDayLeft": "Queda 1 día", "renews": "Renóvase", "standardMonthToMonth": "Standard mes a mes", "standardStartsOn": "Standard comeza o {{date}} por {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} necesita atención: {{label}}", - "openUnreadOne": "Abrir {{name}}, {{count}} mensaxe sen ler", - "openUnreadMany": "Abrir {{name}}, {{count}} mensaxes sen ler", + "openUnread_one": "Abrir {{name}}, {{displayCount}} mensaxe sen ler", + "openUnread": "Abrir {{name}}, {{displayCount}} mensaxes sen ler", + "openUnread_other": "Abrir {{name}}, {{displayCount}} mensaxes sen ler", "open": "Abrir {{name}}", "openSettings": "Abrir axustes de {{name}}", "fixOnKiloAi": "Corrixir en kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Activar a autoremediación?", "enableAutoRemediationConfirmMessage": "O Axente de seguridade abrirá automaticamente PRs de remediación para os achados explotables elixibles.", "enable": "Activar", - "queuedOne": "{{count}} achado existente na cola para análise.", - "queuedMany": "{{count}} achados existentes na cola para análise.", + "queued_one": "{{displayCount}} achado existente na cola para análise.", + "queued": "{{displayCount}} achados existentes na cola para análise.", + "queued_other": "{{displayCount}} achados existentes na cola para análise.", "severityCriticalOnly": "Só crítico", "severityHighAndAbove": "Alto e superior", "severityMediumAndAbove": "Medio e superior", @@ -1482,8 +1490,9 @@ "on": "Activado", "off": "Desactivado", "allRepositories": "Todos os repositorios", - "repositorySelected": "{{count}} repositorio seleccionado", - "repositoriesSelected": "{{count}} repositorios seleccionados", + "repositoriesCount_one": "{{displayCount}} repositorio seleccionado", + "repositoriesCount": "{{displayCount}} repositorios seleccionados", + "repositoriesCount_other": "{{displayCount}} repositorios seleccionados", "selectRepositories": "Seleccionar repositorios", "selectRepositoriesSubtitle": "Escolle que repositorios supervisa Security Agent", "repositories": "Repositorios", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesión eliminada", "needsInput": "require entrada", "fromPlatform": "desde {{platform}}", - "centOne": "céntimo", - "centOther": "céntimos", - "dollarOne": "dólar", - "dollarOther": "dólares" + "cent_one": "céntimo", + "cent": "céntimos", + "cent_other": "céntimos", + "dollar_one": "dólar", + "dollar": "dólares", + "dollar_other": "dólares" }, "githubInstall": { "couldNotOpenTitle": "Non se puido abrir GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Non se puido descartar o borrador. Téntao de novo." }, "partRenderer": { - "updatedFile": "Actualizouse {{count}} ficheiro", - "updatedFiles": "Actualizáronse {{count}} ficheiros" + "updatedFileCount_one": "Actualizouse {{displayCount}} ficheiro", + "updatedFileCount": "Actualizáronse {{displayCount}} ficheiros", + "updatedFileCount_other": "Actualizáronse {{displayCount}} ficheiros" }, "toolPatch": { "operationAdded": "Engadido", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Cargáronse as mensaxes anteriores", "retryHint": "Reintenta cargar as mensaxes anteriores desta sesión.", - "omittedOne": "Non se puideron mostrar algúns elementos anteriores desta sesión.", - "omittedMany": "Non se puideron mostrar {{count}} elementos anteriores desta sesión.", + "omitted_one": "Non se puideron mostrar algúns elementos anteriores desta sesión.", + "omitted": "Non se puideron mostrar {{displayCount}} elementos anteriores desta sesión.", + "omitted_other": "Non se puideron mostrar {{displayCount}} elementos anteriores desta sesión.", "couldNotLoad": "Non se puideron cargar as mensaxes anteriores.", "unavailable": "As mensaxes anteriores non están dispoñibles.", "tooLarge": "As mensaxes anteriores son demasiado grandes para cargalas." @@ -2069,10 +2082,12 @@ "viewTable": "Ver a táboa", "title": "Táboa", "close": "Pechar a táboa", - "column": "columna", - "columns": "columnas", - "row": "fila", - "rows": "filas", + "columnCount_one": "columna", + "columnCount": "columnas", + "columnCount_other": "columnas", + "rowCount_one": "fila", + "rowCount": "filas", + "rowCount_other": "filas", "opensFullScreen": "abre en pantalla completa" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "de {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} paso", - "stepsCountMany": "{{steps}} pasos", + "stepsCount_one": "{{steps}} paso", + "stepsCount": "{{steps}} pasos", + "stepsCount_other": "{{steps}} pasos", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nova tarefa de codificación", "explore": "Explorar", "seeAll": "Ver todo", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Bos días", - "greetingAfternoon": "Boas tardes", - "greetingEvening": "Boas noites" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Pechar {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Ábre a xestión de Kilo Pass na web.", "notSubscribed": "Non subscrito", "overallocated": "As asignacións de Pass superan as prazas pagadas", - "paidSeatOne": "{{count}} praza pagada", - "paidSeatOther": "{{count}} prazas pagadas", + "paidSeat_one": "{{displayCount}} praza pagada", + "paidSeat": "{{displayCount}} prazas pagadas", + "paidSeat_other": "{{displayCount}} prazas pagadas", "paymentNeedsAttention": "O pagamento precisa atención", "paymentPending": "Pagamento pendente", "processingBlocked": "Procesamento bloqueado", diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index a3ef47d79d..2092698cac 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} માંથી {{loaded}} ફાઇલો લોડ થઈ", "loadAllFiles": "બધી ફાઇલો લોડ કરો", "loadAll": "બધું લોડ કરો", - "fileLoaded": "{{count}} ફાઇલ લોડ થઈ", - "filesLoaded": "{{count}} ફાઇલો લોડ થઈ", - "fileLoadedOfTotal": "{{total}} માંથી {{count}} ફાઇલ લોડ થઈ", - "filesLoadedOfTotal": "{{total}} માંથી {{count}} ફાઇલો લોડ થઈ", + "fileLoadedCount_one": "{{displayCount}} ફાઇલ લોડ થઈ", + "fileLoadedCount": "{{displayCount}} ફાઇલો લોડ થઈ", + "fileLoadedCount_other": "{{displayCount}} ફાઇલો લોડ થઈ", + "fileLoadedOfTotalCount_one": "{{total}} માંથી {{displayCount}} ફાઇલ લોડ થઈ", + "fileLoadedOfTotalCount": "{{total}} માંથી {{displayCount}} ફાઇલો લોડ થઈ", + "fileLoadedOfTotalCount_other": "{{total}} માંથી {{displayCount}} ફાઇલો લોડ થઈ", "filesStillLoading": "ફાઇલો હજી લોડ થઈ રહી છે. તાજું કરવા ખેંચો.", "goToOverview": "ઝાંખી પર જાઓ", "goToOverviewTab": "ઝાંખી ટેબ પર જાઓ" @@ -288,8 +290,9 @@ "resolved": "ઉકેલાયું", "outdated": "જૂનું", "file": "ફાઇલ", - "oneComment": "1 ટિપ્પણી", - "commentCount": "{{count}} ટિપ્પણીઓ", + "comment_one": "1 ટિપ્પણી", + "comment": "{{displayCount}} ટિપ્પણીઓ", + "comment_other": "{{displayCount}} ટિપ્પણીઓ", "startedRelative": " · {{relative}} પર શરૂ થયું", "couldNotLoadMore": "વધુ ટિપ્પણીઓ લોડ કરી શકાઈ નહીં.", "retryLoadingMore": "વધુ ટિપ્પણીઓ લોડ કરવાનો ફરી પ્રયત્ન કરો", @@ -299,8 +302,9 @@ "reactionsTitle": "પ્રતિક્રિયાઓ", "addReaction": "પ્રતિક્રિયા ઉમેરો", "reactionPill": "{{emoji}} પ્રતિક્રિયા, {{count}} {{countLabel}}", - "reactionSingular": "પ્રતિક્રિયા", - "reactionPlural": "પ્રતિક્રિયાઓ", + "reaction_one": "પ્રતિક્રિયા", + "reaction": "પ્રતિક્રિયાઓ", + "reaction_other": "પ્રતિક્રિયાઓ", "commentActions": "ટિપ્પણી ક્રિયાઓ", "reportContent": "સામગ્રીની જાણ કરો", "reportUser": "વપરાશકર્તાની જાણ કરો", @@ -452,8 +456,9 @@ "deletePendingMessage": "આ ટિપ્પણી સમીક્ષા કતારમાંથી કાઢી નાખવામાં આવશે.", "delete": "કાઢી નાખો", "summaryOptional": "સારાંશ (વૈકલ્પિક)", - "pendingCommentSingular": "બાકી ટિપ્પણી", - "pendingCommentPlural": "બાકી ટિપ્પણીઓ", + "pendingComment_one": "બાકી ટિપ્પણી", + "pendingComment": "બાકી ટિપ્પણીઓ", + "pendingComment_other": "બાકી ટિપ્પણીઓ", "submitCountOfTotal": "{{totalCount}} માંથી {{freshCount}} ટિપ્પણીઓ સબમિટ કરો", "submitReview": "સમીક્ષા સબમિટ કરો", "partialPostedMessage": "{{freshCount}} ટિપ્પણી(ઓ) પોસ્ટ થઈ. {{staleCount}} ટિપ્પણી(ઓ) જૂની કમિટ પર નિર્દેશ કરે છે અને તમારી કતારમાં રહી." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ખુલ્લું · સમીક્ષા જરૂરી", "stateOpen": "ખુલ્લું", "unknownAuthor": "અજાણ્યો લેખક", - "commitSingular": "કમિટ", - "commitPlural": "કમિટ્સ", - "fileSingular": "ફાઇલ", - "filePlural": "ફાઇલો" + "commit_one": "કમિટ", + "commit": "કમિટ્સ", + "commit_other": "કમિટ્સ", + "file_one": "ફાઇલ", + "file": "ફાઇલો", + "file_other": "ફાઇલો" }, "pendingComment": { "editOutdatedA11y": "{{location}} પર જૂની બાકી ટિપ્પણી સંપાદિત કરો", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "કોઈક", - "oneTyping": "{{name}} ટાઇપ કરી રહ્યા છે...", - "manyTyping": "{{names}} ટાઇપ કરી રહ્યા છે..." + "typing_one": "{{name}} ટાઇપ કરી રહ્યા છે...", + "typing": "{{names}} ટાઇપ કરી રહ્યા છે...", + "typing_other": "{{names}} ટાઇપ કરી રહ્યા છે..." }, "botStatus": { "online": "ઑનલાઇન", @@ -722,12 +730,10 @@ "couldNotLoad": "બિલિંગ માહિતી લોડ કરી શકાઈ નહીં", "manageOnWeb": "વેબ પર બિલિંગ સંચાલિત કરો", "commitPlan": "કમિટ", - "daysLeft": "{{count}} દિવસ બાકી", "earlybird": "અર્લીબર્ડ", "finalCommitTermEndsOn": "તમારી અંતિમ કમિટ મુદત {{date}} ના રોજ સમાપ્ત થાય છે. {{price}} પર સ્ટાન્ડર્ડ તરીકે ચાલુ રાખો, અન્યથા હોસ્ટિંગ સમાપ્ત થાય છે.", "freeTrial": "ફ્રી ટ્રાયલ", "hostingEnds": "હોસ્ટિંગ સમાપ્ત થાય છે", - "oneDayLeft": "1 દિવસ બાકી", "renews": "નવીકરણ થાય છે", "standardMonthToMonth": "માસિક સ્ટાન્ડર્ડ", "standardStartsOn": "સ્ટાન્ડર્ડ {{date}} ના રોજ {{price}} પર શરૂ થાય છે.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ને ધ્યાનની જરૂર છે: {{label}}", - "openUnreadOne": "{{name}} ખોલો, {{count}} વાંચ્યા વગરનો સંદેશ", - "openUnreadMany": "{{name}} ખોલો, {{count}} વાંચ્યા વગરના સંદેશા", + "openUnread_one": "{{name}} ખોલો, {{displayCount}} વાંચ્યા વગરનો સંદેશ", + "openUnread": "{{name}} ખોલો, {{displayCount}} વાંચ્યા વગરના સંદેશા", + "openUnread_other": "{{name}} ખોલો, {{displayCount}} વાંચ્યા વગરના સંદેશા", "open": "{{name}} ખોલો", "openSettings": "{{name}} માટે સેટિંગ્સ ખોલો", "fixOnKiloAi": "kilo.ai પર ઠીક કરો: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ઓટો-સુધારણા સક્ષમ કરીએ?", "enableAutoRemediationConfirmMessage": "Security Agent લાયક શોષણક્ષમ શોધ માટે આપમેળે સુધારણા PR ખોલશે.", "enable": "સક્ષમ કરો", - "queuedOne": "{{count}} હાલનું શોધાયેલું વિશ્લેષણ માટે કતારમાં છે.", - "queuedMany": "{{count}} હાલનાં શોધાયેલાં વિશ્લેષણ માટે કતારમાં છે.", + "queued_one": "{{displayCount}} હાલનું શોધાયેલું વિશ્લેષણ માટે કતારમાં છે.", + "queued": "{{displayCount}} હાલનાં શોધાયેલાં વિશ્લેષણ માટે કતારમાં છે.", + "queued_other": "{{displayCount}} હાલનાં શોધાયેલાં વિશ્લેષણ માટે કતારમાં છે.", "severityCriticalOnly": "માત્ર ગંભીર", "severityHighAndAbove": "ઉચ્ચ અને તેનાથી ઉપર", "severityMediumAndAbove": "મધ્યમ અને તેનાથી ઉપર", @@ -1482,8 +1490,9 @@ "on": "ચાલુ", "off": "બંધ", "allRepositories": "બધી રિપોઝિટરીઓ", - "repositorySelected": "{{count}} રિપોઝિટરી પસંદ કરેલ", - "repositoriesSelected": "{{count}} રિપોઝિટરીઓ પસંદ કરેલ", + "repositoriesCount_one": "{{displayCount}} રિપોઝિટરી પસંદ કરેલ", + "repositoriesCount": "{{displayCount}} રિપોઝિટરીઓ પસંદ કરેલ", + "repositoriesCount_other": "{{displayCount}} રિપોઝિટરીઓ પસંદ કરેલ", "selectRepositories": "રિપોઝિટરીઓ પસંદ કરો", "selectRepositoriesSubtitle": "સિક્યુરિટી એજન્ટ કઈ રિપોઝિટરીઓ પર નજર રાખે તે પસંદ કરો", "repositories": "રિપોઝિટરીઓ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "સત્ર કાઢી નાખેલ", "needsInput": "ઇનપુટની જરૂર છે", "fromPlatform": "{{platform}} માંથી", - "centOne": "સેન્ટ", - "centOther": "સેન્ટ", - "dollarOne": "ડૉલર", - "dollarOther": "ડૉલર" + "cent_one": "સેન્ટ", + "cent": "સેન્ટ", + "cent_other": "સેન્ટ", + "dollar_one": "ડૉલર", + "dollar": "ડૉલર", + "dollar_other": "ડૉલર" }, "githubInstall": { "couldNotOpenTitle": "GitHub ખોલી શકાયું નથી", @@ -1817,8 +1828,9 @@ "discardFailed": "ડ્રાફ્ટ કાઢી નાખી શકાયો નથી. કૃપા કરીને ફરી પ્રયાસ કરો." }, "partRenderer": { - "updatedFile": "{{count}} ફાઇલ અપડેટ કરેલ", - "updatedFiles": "{{count}} ફાઇલો અપડેટ કરેલ" + "updatedFileCount_one": "{{displayCount}} ફાઇલ અપડેટ કરેલ", + "updatedFileCount": "{{displayCount}} ફાઇલો અપડેટ કરેલ", + "updatedFileCount_other": "{{displayCount}} ફાઇલો અપડેટ કરેલ" }, "toolPatch": { "operationAdded": "ઉમેરેલ", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "અગાઉના સંદેશાઓ લોડ થયા", "retryHint": "આ સત્ર માટે જૂના-સંદેશાઓ લોડ ફરી પ્રયાસ કરે છે.", - "omittedOne": "આ સત્રના કેટલાક અગાઉના આઇટમ્સ પ્રદર્શિત કરી શકાયા નહીં.", - "omittedMany": "આ સત્રના {{count}} અગાઉના આઇટમ્સ પ્રદર્શિત કરી શકાયા નહીં.", + "omitted_one": "આ સત્રના કેટલાક અગાઉના આઇટમ્સ પ્રદર્શિત કરી શકાયા નહીં.", + "omitted": "આ સત્રના {{displayCount}} અગાઉના આઇટમ્સ પ્રદર્શિત કરી શકાયા નહીં.", + "omitted_other": "આ સત્રના {{displayCount}} અગાઉના આઇટમ્સ પ્રદર્શિત કરી શકાયા નહીં.", "couldNotLoad": "અગાઉના સંદેશાઓ લોડ કરી શકાયા નહીં.", "unavailable": "અગાઉના સંદેશાઓ ઉપલબ્ધ નથી.", "tooLarge": "અગાઉના સંદેશાઓ લોડ કરવા માટે ખૂબ મોટા છે." @@ -2069,10 +2082,12 @@ "viewTable": "કોષ્ટક જુઓ", "title": "કોષ્ટક", "close": "કોષ્ટક બંધ કરો", - "column": "કૉલમ", - "columns": "કૉલમ્સ", - "row": "પંક્તિ", - "rows": "પંક્તિઓ", + "columnCount_one": "કૉલમ", + "columnCount": "કૉલમ્સ", + "columnCount_other": "કૉલમ્સ", + "rowCount_one": "પંક્તિ", + "rowCount": "પંક્તિઓ", + "rowCount_other": "પંક્તિઓ", "opensFullScreen": "ફુલ સ્ક્રીન ખોલે છે" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} ટોકન્સ માંથી", "tokens": "ટોકન્સ", "tokensWithPercentage": "ટોકન્સ ({{percentage}})", - "stepsCountOne": "{{steps}} પગલું", - "stepsCountMany": "{{steps}} પગલાંઓ", + "stepsCount_one": "{{steps}} પગલું", + "stepsCount": "{{steps}} પગલાંઓ", + "stepsCount_other": "{{steps}} પગલાંઓ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "નવું કોડિંગ કાર્ય", "explore": "શોધો", "seeAll": "બધા જુઓ", - "kiloAgents": "Kilo એજન્ટ્સ", - "greetingMorning": "શુભ સવાર", - "greetingAfternoon": "શુભ બપોર", - "greetingEvening": "શુભ સાંજ" + "kiloAgents": "Kilo એજન્ટ્સ" }, "imageViewer": { "close": "{{filename}} બંધ કરો", @@ -2645,8 +2658,9 @@ "manageHint": "વેબ પર Kilo Pass મેનેજમેન્ટ ખોલે છે.", "notSubscribed": "સબસ્ક્રાઇબ કરેલ નથી", "overallocated": "પાસ અસાઇનમેન્ટ ચૂકવેલી સીટો કરતા વધી ગયા", - "paidSeatOne": "{{count}} ચૂકવેલી સીટ", - "paidSeatOther": "{{count}} ચૂકવેલી સીટો", + "paidSeat_one": "{{displayCount}} ચૂકવેલી સીટ", + "paidSeat": "{{displayCount}} ચૂકવેલી સીટો", + "paidSeat_other": "{{displayCount}} ચૂકવેલી સીટો", "paymentNeedsAttention": "ચુકવણી ધ્યાનની જરૂર છે", "paymentPending": "ચુકવણી બાકી", "processingBlocked": "પ્રોસેસિંગ અવરોધિત", diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index 672d5b530e..b9d390da26 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} daga {{total}} fayiloli an ɗauka", "loadAllFiles": "Ɗauki duk fayilolin", "loadAll": "Ɗauki duka", - "fileLoaded": "{{count}} fayil an ɗauka", - "filesLoaded": "{{count}} fayiloli an ɗauka", - "fileLoadedOfTotal": "{{count}} fayil an ɗauka daga {{total}}", - "filesLoadedOfTotal": "{{count}} fayiloli an ɗauka daga {{total}}", + "fileLoadedCount_one": "{{displayCount}} fayil an ɗauka", + "fileLoadedCount": "{{displayCount}} fayiloli an ɗauka", + "fileLoadedCount_other": "{{displayCount}} fayiloli an ɗauka", + "fileLoadedOfTotalCount_one": "{{displayCount}} fayil an ɗauka daga {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} fayiloli an ɗauka daga {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} fayiloli an ɗauka daga {{total}}", "filesStillLoading": "Fayiloli har yanzu suna ɗauka. Ja don sabuntawa.", "goToOverview": "Je zuwa Overview", "goToOverviewTab": "Je zuwa shafin Overview" @@ -288,8 +290,9 @@ "resolved": "An warware", "outdated": "Tsoho", "file": "Fayil", - "oneComment": "1 tsokaci", - "commentCount": "{{count}} tsokaci", + "comment_one": "1 tsokaci", + "comment": "{{displayCount}} tsokaci", + "comment_other": "{{displayCount}} tsokaci", "startedRelative": " · ya fara {{relative}}", "couldNotLoadMore": "Ba a iya ɗaukar ƙarin tsokaci ba.", "retryLoadingMore": "Sake gwadawa ɗaukar ƙarin tsokaci", @@ -299,8 +302,9 @@ "reactionsTitle": "Halaye", "addReaction": "Ƙara hali", "reactionPill": "{{emoji}} hali, {{count}} {{countLabel}}", - "reactionSingular": "hali", - "reactionPlural": "halaye", + "reaction_one": "hali", + "reaction": "halaye", + "reaction_other": "halaye", "commentActions": "Ayyukan tsokaci", "reportContent": "Rahoton abun ciki", "reportUser": "Rahoton mai amfani", @@ -452,8 +456,9 @@ "deletePendingMessage": "Za a cire wannan tsokaci daga jerin bita.", "delete": "Share", "summaryOptional": "Takaitawa (na zaɓi)", - "pendingCommentSingular": "tsokacin da ke jira", - "pendingCommentPlural": "tsokacin da ke jira", + "pendingComment_one": "tsokacin da ke jira", + "pendingComment": "tsokacin da ke jira", + "pendingComment_other": "tsokacin da ke jira", "submitCountOfTotal": "Ƙaddamar da {{freshCount}} daga {{totalCount}} tsokaci", "submitReview": "Ƙaddamar da bita", "partialPostedMessage": "An buga {{freshCount}} tsokaci. {{staleCount}} tsokaci suna nuna tsohon commit kuma sun kasance a jerinka." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Bude · Ana buƙatar bita", "stateOpen": "Bude", "unknownAuthor": "Marubucin da ba a sani ba", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fayil", - "filePlural": "fayiloli" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fayil", + "file": "fayiloli", + "file_other": "fayiloli" }, "pendingComment": { "editOutdatedA11y": "Gyara tsokacin da ke jira na tsoho a {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Wani", - "oneTyping": "{{name}} yana rubutu...", - "manyTyping": "{{names}} suna rubutu..." + "typing_one": "{{name}} yana rubutu...", + "typing": "{{names}} suna rubutu...", + "typing_other": "{{names}} suna rubutu..." }, "botStatus": { "online": "Kan layi", @@ -722,12 +730,10 @@ "couldNotLoad": "An kasa ɗora bayanan biyan kuɗi", "manageOnWeb": "Sarrafa Biyan Kuɗi akan Yanar Gizo", "commitPlan": "Commit", - "daysLeft": "{{count}} kwanaki suka rage", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Wa'adin Commit na ƙarshe na ka zai ƙare a {{date}}. Ci gaba a matsayin Standard a {{price}}, ko kuma masauki ya ƙare.", "freeTrial": "Gwaji Kyauta", "hostingEnds": "Masauki yana ƙarewa", - "oneDayLeft": "Kwana 1 ya rage", "renews": "Yana sabuntawa", "standardMonthToMonth": "Standard duk wata", "standardStartsOn": "Standard zai fara a {{date}} a {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} yana buƙatar kulawa: {{label}}", - "openUnreadOne": "Buɗe {{name}}, saƙo {{count}} da ba a karanta ba", - "openUnreadMany": "Buɗe {{name}}, saƙonni {{count}} da ba a karanta ba", + "openUnread_one": "Buɗe {{name}}, saƙo {{displayCount}} da ba a karanta ba", + "openUnread": "Buɗe {{name}}, saƙonni {{displayCount}} da ba a karanta ba", + "openUnread_other": "Buɗe {{name}}, saƙonni {{displayCount}} da ba a karanta ba", "open": "Buɗe {{name}}", "openSettings": "Buɗe saituna don {{name}}", "fixOnKiloAi": "Gyara akan kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Kunna gyara ta atomatik?", "enableAutoRemediationConfirmMessage": "Security Agent zai buɗe PRs na gyara ta atomatik don binciken da ake iya amfani da su.", "enable": "Kunna", - "queuedOne": "{{count}} sakamako da ke akwai an shigar da shi domin nazari.", - "queuedMany": "{{count}} sakamako da ke akwai an shigar da su domin nazari.", + "queued_one": "{{displayCount}} sakamako da ke akwai an shigar da shi domin nazari.", + "queued": "{{displayCount}} sakamako da ke akwai an shigar da su domin nazari.", + "queued_other": "{{displayCount}} sakamako da ke akwai an shigar da su domin nazari.", "severityCriticalOnly": "Matsananci kawai", "severityHighAndAbove": "Babba da sama", "severityMediumAndAbove": "Matsakaici da sama", @@ -1482,8 +1490,9 @@ "on": "Kunna", "off": "Kashe", "allRepositories": "Duk ma'ajiyoyi", - "repositorySelected": "{{count}} ma'ajiya da aka zaɓa", - "repositoriesSelected": "{{count}} ma'ajiyoyi da aka zaɓa", + "repositoriesCount_one": "{{displayCount}} ma'ajiya da aka zaɓa", + "repositoriesCount": "{{displayCount}} ma'ajiyoyi da aka zaɓa", + "repositoriesCount_other": "{{displayCount}} ma'ajiyoyi da aka zaɓa", "selectRepositories": "Zaɓi ma'ajiyoyi", "selectRepositoriesSubtitle": "Zaɓi ma'ajiyoyin da Security Agent ke sa ido a kansu", "repositories": "Ma'ajiyoyi", @@ -1720,10 +1729,12 @@ "sessionDeleted": "An share zaman", "needsInput": "yana buƙatar bayani", "fromPlatform": "daga {{platform}}", - "centOne": "senti", - "centOther": "senti", - "dollarOne": "dala", - "dollarOther": "daloli" + "cent_one": "senti", + "cent": "senti", + "cent_other": "senti", + "dollar_one": "dala", + "dollar": "daloli", + "dollar_other": "daloli" }, "githubInstall": { "couldNotOpenTitle": "An kasa buɗe GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "An kasa watsi da daftarin. Da fatan za a sake gwadawa." }, "partRenderer": { - "updatedFile": "An sabunta {{count}} fayil", - "updatedFiles": "An sabunta {{count}} fayiloli" + "updatedFileCount_one": "An sabunta {{displayCount}} fayil", + "updatedFileCount": "An sabunta {{displayCount}} fayiloli", + "updatedFileCount_other": "An sabunta {{displayCount}} fayiloli" }, "toolPatch": { "operationAdded": "An ƙara", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "An ɗora saƙonnin farko", "retryHint": "Yana sake gwada ɗora tsofaffin saƙonnin wannan zaman.", - "omittedOne": "Ba a iya nuna wasu abubuwan farko daga wannan zaman ba.", - "omittedMany": "Ba a iya nuna {{count}} abubuwan farko daga wannan zaman ba.", + "omitted_one": "Ba a iya nuna wasu abubuwan farko daga wannan zaman ba.", + "omitted": "Ba a iya nuna {{displayCount}} abubuwan farko daga wannan zaman ba.", + "omitted_other": "Ba a iya nuna {{displayCount}} abubuwan farko daga wannan zaman ba.", "couldNotLoad": "An kasa ɗora tsofaffin saƙonnin.", "unavailable": "Tsofaffin saƙonnin ba su nan.", "tooLarge": "Tsofaffin saƙonnin sun yi girma da yawa don ɗorawa." @@ -2069,10 +2082,12 @@ "viewTable": "Duba tebur", "title": "Tebur", "close": "Rufe tebur", - "column": "shafi", - "columns": "shafuka", - "row": "jere", - "rows": "jeruka", + "columnCount_one": "shafi", + "columnCount": "shafuka", + "columnCount_other": "shafuka", + "rowCount_one": "jere", + "rowCount": "jeruka", + "rowCount_other": "jeruka", "opensFullScreen": "yana buɗe cikakken allo" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "daga {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} mataki", - "stepsCountMany": "{{steps}} matakai", + "stepsCount_one": "{{steps}} mataki", + "stepsCount": "{{steps}} matakai", + "stepsCount_other": "{{steps}} matakai", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Sabon aikin shirye-shirye", "explore": "Bincika", "seeAll": "Duba duka", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Barka da safiya", - "greetingAfternoon": "Barka da rana", - "greetingEvening": "Barka da yamma" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Rufe {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Yana buɗe sarrafa Kilo Pass akan gidan yanar gizo.", "notSubscribed": "Ba a biyan kuɗi ba", "overallocated": "Ayyukan Pass sun wuce wuraren da aka biya", - "paidSeatOne": "{{count}} wuri da aka biya", - "paidSeatOther": "{{count}} wuraren da aka biya", + "paidSeat_one": "{{displayCount}} wuri da aka biya", + "paidSeat": "{{displayCount}} wuraren da aka biya", + "paidSeat_other": "{{displayCount}} wuraren da aka biya", "paymentNeedsAttention": "Biyan kuɗi yana buƙatar kulawa", "paymentPending": "Biyan kuɗi yana jiran", "processingBlocked": "An toshe sarrafawa", diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index 182082d4e7..3a1689a7d0 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "מישהו", - "oneTyping": "{{name}} מקליד...", - "manyTyping": "{{names}} מקלידים..." + "typing_one": "{{name}} מקליד...", + "typing": "{{names}} מקלידים...", + "typing_other": "{{names}} מקלידים..." }, "botStatus": { "online": "מקוון", @@ -350,12 +351,10 @@ "couldNotLoad": "לא ניתן לטעון מידע חיוב", "manageOnWeb": "נהל חיוב באינטרנט", "commitPlan": "Commit", - "daysLeft": "נותרו {{count}} ימים", "earlybird": "Earlybird", "finalCommitTermEndsOn": "תקופת ה-Commit האחרונה שלך מסתיימת ב-{{date}}. המשך כ-Standard תמורת {{price}}, או שהאירוח יסתיים.", "freeTrial": "ניסיון חינם", "hostingEnds": "האירוח מסתיים", - "oneDayLeft": "נותר יום אחד", "renews": "מתחדש", "standardMonthToMonth": "Standard חודשי", "standardStartsOn": "Standard מתחיל ב-{{date}} תמורת {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} דורש תשומת לב: {{label}}", "open": "פתח את {{name}}", "openSettings": "פתח הגדרות עבור {{name}}", - "openUnreadMany": "פתח את {{name}}, {{count}} הודעות שלא נקראו", - "openUnreadOne": "פתח את {{name}}, {{count}} הודעה שלא נקראה" + "openUnread": "פתח את {{name}}, {{displayCount}} הודעות שלא נקראו", + "openUnread_other": "פתח את {{name}}, {{displayCount}} הודעות שלא נקראו", + "openUnread_one": "פתח את {{name}}, {{displayCount}} הודעה שלא נקראה" }, "list": { "createInstance": "צור מופע", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "העמד בתור גם ממצאים שעומדים בתנאים שכבר נותחו. PR כפולים נותרים מדוכאים.", "minimumSeverity": "חומרה מינימלית", "permissionNote": "רק בעלי הארגון ומנהלי החיוב יכולים לשנות הגדרות אלה.", - "queuedMany": "{{count}} ממצאים קיימים הועמדו בתור לניתוח.", - "queuedOne": "{{count}} ממצא קיים הועמד בתור לניתוח.", + "queued": "{{displayCount}} ממצאים קיימים הועמדו בתור לניתוח.", + "queued_other": "{{displayCount}} ממצאים קיימים הועמדו בתור לניתוח.", + "queued_one": "{{displayCount}} ממצא קיים הועמד בתור לניתוח.", "requireApproval": "דרוש אישור לפני תיקון אוטומטי", "requireApprovalSubtitle": "התיקון האוטומטי ממתין לאישורך לפני פתיחת PR.", "severityAll": "כל רמות החומרה", @@ -1270,8 +1271,9 @@ "off": "כבוי", "on": "מופעל", "repositories": "מאגרים", - "repositoriesSelected": "{{count}} מאגרים נבחרו", - "repositorySelected": "{{count}} מאגר נבחר", + "repositoriesCount": "{{displayCount}} מאגרים נבחרו", + "repositoriesCount_other": "{{displayCount}} מאגרים נבחרו", + "repositoriesCount_one": "{{displayCount}} מאגר נבחר", "securityAgent": "סוכן אבטחה", "selectRepositories": "בחר מאגרים", "selectRepositoriesSubtitle": "בחר אילו מאגרים סוכן האבטחה עוקב אחריהם", @@ -1348,10 +1350,12 @@ "sessionDeleted": "ההפעלה נמחקה", "needsInput": "נדרש קלט", "fromPlatform": "מ-{{platform}}", - "centOne": "סנט", - "centOther": "סנטים", - "dollarOne": "דולר", - "dollarOther": "דולרים" + "cent_one": "סנט", + "cent": "סנטים", + "cent_other": "סנטים", + "dollar_one": "דולר", + "dollar": "דולרים", + "dollar_other": "דולרים" }, "githubInstall": { "couldNotOpenMessage": "לא ניתן היה להתחיל את הגדרת אפליקציית GitHub. נסה שוב.", @@ -1445,8 +1449,9 @@ "keepEditing": "המשך לערוך" }, "partRenderer": { - "updatedFile": "עודכן {{count}} קובץ", - "updatedFiles": "עודכנו {{count}} קבצים" + "updatedFileCount_one": "עודכן {{displayCount}} קובץ", + "updatedFileCount": "עודכנו {{displayCount}} קבצים", + "updatedFileCount_other": "עודכנו {{displayCount}} קבצים" }, "toolPatch": { "operationAdded": "נוסף", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "הודעות קודמות נטענו", "retryHint": "מנסה שוב לטעון הודעות ישנות יותר של הפעלה זו.", - "omittedOne": "לא ניתן היה להציג פריט מוקדם יותר מהפעלה זו.", - "omittedMany": "לא ניתן היה להציג {{count}} פריטים מוקדמים יותר מהפעלה זו.", + "omitted_one": "לא ניתן היה להציג פריט מוקדם יותר מהפעלה זו.", + "omitted": "לא ניתן היה להציג {{displayCount}} פריטים מוקדמים יותר מהפעלה זו.", + "omitted_other": "לא ניתן היה להציג {{displayCount}} פריטים מוקדמים יותר מהפעלה זו.", "couldNotLoad": "לא ניתן היה לטעון הודעות מוקדמות יותר.", "unavailable": "הודעות מוקדמות יותר אינן זמינות.", "tooLarge": "ההודעות המוקדמות יותר גדולות מדי לטעינה." @@ -1697,10 +1703,12 @@ "viewTable": "צפה בטבלה", "title": "טבלה", "close": "סגור טבלה", - "column": "עמודה", - "columns": "עמודות", - "row": "שורה", - "rows": "שורות", + "columnCount_one": "עמודה", + "columnCount": "עמודות", + "columnCount_other": "עמודות", + "rowCount_one": "שורה", + "rowCount": "שורות", + "rowCount_other": "שורות", "opensFullScreen": "נפתח במסך מלא" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "מתוך {{window}} אסימונים", "tokens": "אסימונים", "tokensWithPercentage": "אסימונים ({{percentage}})", - "stepsCountOne": "{{steps}} צעד", - "stepsCountMany": "{{steps}} צעדים", + "stepsCount_one": "{{steps}} צעד", + "stepsCount": "{{steps}} צעדים", + "stepsCount_other": "{{steps}} צעדים", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "משימת קידוד חדשה", "explore": "חקור", "seeAll": "ראה הכל", - "kiloAgents": "סוכני Kilo", - "greetingMorning": "בוקר טוב", - "greetingAfternoon": "צהריים טובים", - "greetingEvening": "ערב טוב" + "kiloAgents": "סוכני Kilo" }, "imageViewer": { "close": "סגור את {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "סגור תגובות", "collapseThread": "כווץ שרשור", "commentActions": "פעולות תגובה", - "commentCount": "{{count}} תגובות", + "comment": "{{displayCount}} תגובות", + "comment_other": "{{displayCount}} תגובות", "couldNotLoad": "לא ניתן היה לטעון את הדיון", "couldNotLoadMore": "לא ניתן היה לטעון עוד תגובות.", "couldNotReply": "לא ניתן היה להשיב.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} הושתק", "noDiscussion": "אין עדיין דיון", "noDiscussionDescription": "אין שרשורי סקירה או תגובות שיחה על בקשת המשיכה הזו.", - "oneComment": "תגובה אחת", + "comment_one": "תגובה אחת", "outdated": "מיושן", "quotedDiffSnippet": "קטע diff מצוטט", "reactionPill": "{{emoji}} תגובה, {{count}} {{countLabel}}", - "reactionPlural": "תגובות", - "reactionSingular": "תגובה", + "reaction": "תגובות", + "reaction_other": "תגובות", + "reaction_one": "תגובה", "reactionsTitle": "תגובות", "reply": "השב", "replyBadRequest": "לא ניתן לפרסם תשובה זו. ייתכן שהשרשור השתנה.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "הרחב עוד {{count}} שורות ({{start}}–{{end}})", "failedToLoadContext": "לא ניתן היה לטעון את ההקשר — הקש כדי לנסות שוב", "failedToLoadMoreFiles": "לא ניתן היה לטעון עוד קבצים — הקש כדי לנסות שוב", - "fileLoaded": "{{count}} קובץ נטען", - "fileLoadedOfTotal": "{{count}} קובץ נטען מתוך {{total}}", - "filesLoaded": "{{count}} קבצים נטענו", - "filesLoadedOfTotal": "{{count}} קבצים נטענו מתוך {{total}}", + "fileLoadedCount_one": "{{displayCount}} קובץ נטען", + "fileLoadedOfTotalCount_one": "{{displayCount}} קובץ נטען מתוך {{total}}", + "fileLoadedCount": "{{displayCount}} קבצים נטענו", + "fileLoadedCount_other": "{{displayCount}} קבצים נטענו", + "fileLoadedOfTotalCount": "{{displayCount}} קבצים נטענו מתוך {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} קבצים נטענו מתוך {{total}}", "filesStillLoading": "הקבצים עדיין נטענים. משוך כדי לרענן.", "goToOverview": "עבור לסקירה כללית", "goToOverviewTab": "עבור ללשונית סקירה כללית", @@ -2429,10 +2439,12 @@ "noFilesChanged": "אין קבצים שהשתנו", "noFilesChangedDescription": "לבקשת המשיכה הזו אין שינויי קבצים.", "overview": { - "commitPlural": "commits", - "commitSingular": "commit", - "filePlural": "קבצים", - "fileSingular": "קובץ", + "commit": "commits", + "commit_other": "commits", + "commit_one": "commit", + "file": "קבצים", + "file_other": "קבצים", + "file_one": "קובץ", "stateClosed": "סגור", "stateDraft": "טיוטה", "stateMerged": "מוזג", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "תגובה זו תוסר מתור הסקירה.", "deletePendingTitle": "למחוק תגובה ממתינה?", "loadFailedTitle": "לא ניתן היה לטעון את שליחת הסקירה", - "pendingCommentPlural": "תגובות ממתינות", - "pendingCommentSingular": "תגובה ממתינה", + "pendingComment": "תגובות ממתינות", + "pendingComment_other": "תגובות ממתינות", + "pendingComment_one": "תגובה ממתינה", "summaryOptional": "סיכום (אופציונלי)", "title": "שלח סקירה", "partialPostedMessage": "פורסמו {{freshCount}} תגובות. {{staleCount}} תגובות מתייחסות ל-commit ישן יותר ונשארו בתור שלך.", @@ -2632,8 +2645,9 @@ "manageHint": "פותח את ניהול Kilo Pass באינטרנט.", "notSubscribed": "לא רשום", "overallocated": "הקצאות ה-Pass עולות על המושבים בתשלום", - "paidSeatOne": "{{count}} מושב בתשלום", - "paidSeatOther": "{{count}} מושבים בתשלום", + "paidSeat_one": "{{displayCount}} מושב בתשלום", + "paidSeat": "{{displayCount}} מושבים בתשלום", + "paidSeat_other": "{{displayCount}} מושבים בתשלום", "paymentNeedsAttention": "התשלום דורש תשומת לב", "paymentPending": "התשלום ממתין", "processingBlocked": "העיבוד נחסם", diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index a82b6d49c5..a329bad7f2 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "कोई", - "oneTyping": "{{name}} टाइप कर रहा है...", - "manyTyping": "{{names}} टाइप कर रहे हैं..." + "typing_one": "{{name}} टाइप कर रहा है...", + "typing": "{{names}} टाइप कर रहे हैं...", + "typing_other": "{{names}} टाइप कर रहे हैं..." }, "botStatus": { "online": "ऑनलाइन", @@ -350,12 +351,10 @@ "couldNotLoad": "बिलिंग जानकारी लोड नहीं हो सकी", "manageOnWeb": "वेब पर बिलिंग प्रबंधित करें", "commitPlan": "Commit", - "daysLeft": "{{count}} दिन शेष", "earlybird": "Earlybird", "finalCommitTermEndsOn": "आपकी अंतिम Commit अवधि {{date}} को समाप्त हो रही है. {{price}} पर Standard के रूप में जारी रखें, अन्यथा होस्टिंग समाप्त हो जाएगी.", "freeTrial": "मुफ़्त परीक्षण", "hostingEnds": "होस्टिंग समाप्त हो रही है", - "oneDayLeft": "1 दिन शेष", "renews": "नवीनीकृत होता है", "standardMonthToMonth": "Standard माह-दर-माह", "standardStartsOn": "Standard {{date}} को {{price}} पर शुरू होता है.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} को ध्यान चाहिए: {{label}}", "open": "{{name}} खोलें", "openSettings": "{{name}} के लिए सेटिंग खोलें", - "openUnreadMany": "{{name}} खोलें, {{count}} अपठित संदेश", - "openUnreadOne": "{{name}} खोलें, {{count}} अपठित संदेश" + "openUnread": "{{name}} खोलें, {{displayCount}} अपठित संदेश", + "openUnread_other": "{{name}} खोलें, {{displayCount}} अपठित संदेश", + "openUnread_one": "{{name}} खोलें, {{displayCount}} अपठित संदेश" }, "list": { "createInstance": "इंस्टेंस बनाएँ", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "पहले से विश्लेषित पात्र निष्कर्षों को भी कतार में लगाएँ। डुप्लिकेट PR दबे रहते हैं।", "minimumSeverity": "न्यूनतम गंभीरता", "permissionNote": "केवल संगठन के मालिक और बिलिंग मैनेजर ही ये सेटिंग बदल सकते हैं।", - "queuedMany": "{{count}} मौजूदा निष्कर्ष विश्लेषण के लिए कतार में लगाए गए।", - "queuedOne": "{{count}} मौजूदा निष्कर्ष विश्लेषण के लिए कतार में लगाया गया।", + "queued": "{{displayCount}} मौजूदा निष्कर्ष विश्लेषण के लिए कतार में लगाए गए।", + "queued_other": "{{displayCount}} मौजूदा निष्कर्ष विश्लेषण के लिए कतार में लगाए गए।", + "queued_one": "{{displayCount}} मौजूदा निष्कर्ष विश्लेषण के लिए कतार में लगाया गया।", "requireApproval": "ऑटो-सुधार से पहले अनुमोदन आवश्यक करें", "requireApprovalSubtitle": "PR खोलने से पहले ऑटो-सुधार आपके अनुमोदन की प्रतीक्षा करता है।", "severityAll": "सभी गंभीरताएँ", @@ -1270,8 +1271,9 @@ "off": "बंद", "on": "चालू", "repositories": "रिपॉज़िटरी", - "repositoriesSelected": "{{count}} रिपॉज़िटरी चयनित", - "repositorySelected": "{{count}} रिपॉज़िटरी चयनित", + "repositoriesCount": "{{displayCount}} रिपॉज़िटरी चयनित", + "repositoriesCount_other": "{{displayCount}} रिपॉज़िटरी चयनित", + "repositoriesCount_one": "{{displayCount}} रिपॉज़िटरी चयनित", "securityAgent": "Security Agent", "selectRepositories": "रिपॉज़िटरी चुनें", "selectRepositoriesSubtitle": "चुनें कि Security Agent किन रिपॉज़िटरी की निगरानी करे", @@ -1348,10 +1350,12 @@ "sessionDeleted": "सत्र हटाया गया", "needsInput": "इनपुट की आवश्यकता है", "fromPlatform": "{{platform}} से", - "centOne": "सेंट", - "centOther": "सेंट", - "dollarOne": "डॉलर", - "dollarOther": "डॉलर" + "cent_one": "सेंट", + "cent": "सेंट", + "cent_other": "सेंट", + "dollar_one": "डॉलर", + "dollar": "डॉलर", + "dollar_other": "डॉलर" }, "githubInstall": { "couldNotOpenMessage": "हम GitHub ऐप सेटअप शुरू नहीं कर सके। कृपया फिर से कोशिश करें।", @@ -1445,8 +1449,9 @@ "keepEditing": "संपादन जारी रखें" }, "partRenderer": { - "updatedFile": "{{count}} फ़ाइल अपडेट की गई", - "updatedFiles": "{{count}} फ़ाइलें अपडेट की गईं" + "updatedFileCount_one": "{{displayCount}} फ़ाइल अपडेट की गई", + "updatedFileCount": "{{displayCount}} फ़ाइलें अपडेट की गईं", + "updatedFileCount_other": "{{displayCount}} फ़ाइलें अपडेट की गईं" }, "readToolMarkdown": { "linesTruncated": "पंक्तियाँ {{start}}–{{end}} (छोटा किया गया)", @@ -1660,8 +1665,9 @@ "olderMessages": { "arrived": "पहले के संदेश लोड हो गए", "retryHint": "इस सत्र के पुराने संदेशों की लोडिंग फिर से आज़माता है।", - "omittedOne": "इस सत्र का एक पुराना आइटम प्रदर्शित नहीं किया जा सका।", - "omittedMany": "इस सत्र के {{count}} पुराने आइटम प्रदर्शित नहीं किए जा सके।", + "omitted_one": "इस सत्र का एक पुराना आइटम प्रदर्शित नहीं किया जा सका।", + "omitted": "इस सत्र के {{displayCount}} पुराने आइटम प्रदर्शित नहीं किए जा सके।", + "omitted_other": "इस सत्र के {{displayCount}} पुराने आइटम प्रदर्शित नहीं किए जा सके।", "couldNotLoad": "पुराने संदेश लोड नहीं हो सके।", "unavailable": "पुराने संदेश उपलब्ध नहीं हैं।", "tooLarge": "पुराने संदेश लोड करने के लिए बहुत बड़े हैं।" @@ -1670,10 +1676,12 @@ "viewTable": "तालिका देखें", "title": "तालिका", "close": "तालिका बंद करें", - "column": "कॉलम", - "columns": "कॉलम", - "row": "पंक्ति", - "rows": "पंक्तियाँ", + "columnCount_one": "कॉलम", + "columnCount": "कॉलम", + "columnCount_other": "कॉलम", + "rowCount_one": "पंक्ति", + "rowCount": "पंक्तियाँ", + "rowCount_other": "पंक्तियाँ", "opensFullScreen": "पूर्ण स्क्रीन खोलता है" }, "sessionFilter": { @@ -1810,8 +1818,9 @@ "olderActivityDescription": "लोड किए गए इतिहास में शामिल नहीं की गई लागत", "provider": "प्रदाता", "remaining": "शेष", - "stepsCountMany": "{{steps}} चरण", - "stepsCountOne": "{{steps}} चरण", + "stepsCount": "{{steps}} चरण", + "stepsCount_other": "{{steps}} चरण", + "stepsCount_one": "{{steps}} चरण", "subagents": "सबएजेंट", "subagentsDescription": "चाइल्ड सत्रों से शेष लागत", "title": "संदर्भ उपयोग", @@ -1919,10 +1928,7 @@ "newCodingTask": "नया कोडिंग कार्य", "explore": "एक्सप्लोर करें", "seeAll": "सभी देखें", - "kiloAgents": "Kilo एजेंट", - "greetingMorning": "सुप्रभात", - "greetingAfternoon": "शुभ दोपहर", - "greetingEvening": "शुभ संध्या" + "kiloAgents": "Kilo एजेंट" }, "imageViewer": { "close": "{{filename}} बंद करें", @@ -2205,7 +2211,8 @@ "closeReactions": "प्रतिक्रियाएँ बंद करें", "collapseThread": "थ्रेड संक्षिप्त करें", "commentActions": "टिप्पणी क्रियाएँ", - "commentCount": "{{count}} टिप्पणियाँ", + "comment": "{{displayCount}} टिप्पणियाँ", + "comment_other": "{{displayCount}} टिप्पणियाँ", "couldNotLoad": "चर्चा लोड नहीं हो सकी", "couldNotLoadMore": "और टिप्पणियाँ लोड नहीं हो सकीं।", "couldNotReply": "उत्तर नहीं दे सका।", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} म्यूट किया गया", "noDiscussion": "अभी कोई चर्चा नहीं", "noDiscussionDescription": "इस पुल रिक्वेस्ट पर कोई समीक्षा थ्रेड या बातचीत टिप्पणी नहीं है।", - "oneComment": "1 टिप्पणी", + "comment_one": "1 टिप्पणी", "outdated": "पुराना", "quotedDiffSnippet": "उद्धृत डिफ़ स्निपेट", "reactionPill": "{{emoji}} प्रतिक्रिया, {{count}} {{countLabel}}", - "reactionPlural": "प्रतिक्रियाएँ", - "reactionSingular": "प्रतिक्रिया", + "reaction": "प्रतिक्रियाएँ", + "reaction_other": "प्रतिक्रियाएँ", + "reaction_one": "प्रतिक्रिया", "reactionsTitle": "प्रतिक्रियाएँ", "reply": "उत्तर दें", "replyBadRequest": "यह उत्तर पोस्ट नहीं हो सकता। थ्रेड बदल गया हो सकता है।", @@ -2350,10 +2358,12 @@ "expandMoreLines": "और {{count}} पंक्तियाँ विस्तारित करें ({{start}}–{{end}})", "failedToLoadContext": "संदर्भ लोड करने में विफल — फिर से कोशिश करने के लिए टैप करें", "failedToLoadMoreFiles": "और फ़ाइलें लोड करने में विफल — फिर से कोशिश करने के लिए टैप करें", - "fileLoaded": "{{count}} फ़ाइल लोड हुई", - "fileLoadedOfTotal": "{{count}}/{{total}} फ़ाइल लोड हुई", - "filesLoaded": "{{count}} फ़ाइलें लोड हुईं", - "filesLoadedOfTotal": "{{count}}/{{total}} फ़ाइलें लोड हुईं", + "fileLoadedCount_one": "{{displayCount}} फ़ाइल लोड हुई", + "fileLoadedOfTotalCount_one": "{{displayCount}}/{{total}} फ़ाइल लोड हुई", + "fileLoadedCount": "{{displayCount}} फ़ाइलें लोड हुईं", + "fileLoadedCount_other": "{{displayCount}} फ़ाइलें लोड हुईं", + "fileLoadedOfTotalCount": "{{displayCount}}/{{total}} फ़ाइलें लोड हुईं", + "fileLoadedOfTotalCount_other": "{{displayCount}}/{{total}} फ़ाइलें लोड हुईं", "filesStillLoading": "फ़ाइलें अभी भी लोड हो रही हैं। रीफ़्रेश करने के लिए नीचे खींचें।", "goToOverview": "ओवरव्यू पर जाएँ", "goToOverviewTab": "ओवरव्यू टैब पर जाएँ", @@ -2429,10 +2439,12 @@ "noFilesChanged": "कोई फ़ाइल नहीं बदली", "noFilesChangedDescription": "इस पुल रिक्वेस्ट में कोई फ़ाइल परिवर्तन नहीं है।", "overview": { - "commitPlural": "कमिट", - "commitSingular": "कमिट", - "filePlural": "फ़ाइलें", - "fileSingular": "फ़ाइल", + "commit": "कमिट", + "commit_other": "कमिट", + "commit_one": "कमिट", + "file": "फ़ाइलें", + "file_other": "फ़ाइलें", + "file_one": "फ़ाइल", "stateClosed": "बंद", "stateDraft": "ड्राफ़्ट", "stateMerged": "मर्ज किया गया", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "यह टिप्पणी समीक्षा कतार से हटा दी जाएगी।", "deletePendingTitle": "लंबित टिप्पणी हटाएँ?", "loadFailedTitle": "समीक्षा सबमिशन लोड नहीं हो सका", - "pendingCommentPlural": "लंबित टिप्पणियाँ", - "pendingCommentSingular": "लंबित टिप्पणी", + "pendingComment": "लंबित टिप्पणियाँ", + "pendingComment_other": "लंबित टिप्पणियाँ", + "pendingComment_one": "लंबित टिप्पणी", "summaryOptional": "सारांश (वैकल्पिक)", "title": "समीक्षा सबमिट करें", "partialPostedMessage": "{{freshCount}} टिप्पणी पोस्ट की गईं। {{staleCount}} टिप्पणी पुराने कमिट की ओर इशारा करती हैं और आपकी कतार में रहीं।", @@ -2632,8 +2645,9 @@ "manageHint": "वेब पर Kilo Pass प्रबंधन खोलता है।", "notSubscribed": "सदस्यता नहीं ली गई", "overallocated": "Pass असाइनमेंट भुगतान की गई सीटों से अधिक हैं", - "paidSeatOne": "{{count}} भुगतान की गई सीट", - "paidSeatOther": "{{count}} भुगतान की गई सीटें", + "paidSeat_one": "{{displayCount}} भुगतान की गई सीट", + "paidSeat": "{{displayCount}} भुगतान की गई सीटें", + "paidSeat_other": "{{displayCount}} भुगतान की गई सीटें", "paymentNeedsAttention": "भुगतान पर ध्यान देने की आवश्यकता है", "paymentPending": "भुगतान लंबित", "processingBlocked": "प्रोसेसिंग अवरुद्ध", diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index b8767473a6..53aa8904ca 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "učitano {{loaded}} od {{total}} datoteka", "loadAllFiles": "Učitaj sve datoteke", "loadAll": "Učitaj sve", - "fileLoaded": "učitana {{count}} datoteka", - "filesLoaded": "učitano {{count}} datoteka", - "fileLoadedOfTotal": "učitana {{count}} datoteka od {{total}}", - "filesLoadedOfTotal": "učitano {{count}} datoteka od {{total}}", + "fileLoadedCount_one": "učitana {{displayCount}} datoteka", + "fileLoadedCount": "učitano {{displayCount}} datoteka", + "fileLoadedCount_other": "učitano {{displayCount}} datoteka", + "fileLoadedOfTotalCount_one": "učitana {{displayCount}} datoteka od {{total}}", + "fileLoadedOfTotalCount": "učitano {{displayCount}} datoteka od {{total}}", + "fileLoadedOfTotalCount_other": "učitano {{displayCount}} datoteka od {{total}}", "filesStillLoading": "Datoteke se još učitavaju. Povucite za osvježavanje.", "goToOverview": "Idi na pregled", "goToOverviewTab": "Idi na karticu pregleda" @@ -288,8 +290,9 @@ "resolved": "Riješeno", "outdated": "Zastarjelo", "file": "Datoteka", - "oneComment": "1 komentar", - "commentCount": "{{count}} komentara", + "comment_one": "1 komentar", + "comment": "{{displayCount}} komentara", + "comment_other": "{{displayCount}} komentara", "startedRelative": " · započeto {{relative}}", "couldNotLoadMore": "Nije moguće učitati više komentara.", "retryLoadingMore": "Pokušaj ponovno učitati više komentara", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakciju", "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", - "reactionSingular": "reakcija", - "reactionPlural": "reakcija", + "reaction_one": "reakcija", + "reaction": "reakcija", + "reaction_other": "reakcija", "commentActions": "Radnje komentara", "reportContent": "Prijavi sadržaj", "reportUser": "Prijavi korisnika", @@ -452,8 +456,9 @@ "deletePendingMessage": "Ovaj komentar bit će uklonjen iz reda recenzije.", "delete": "Obriši", "summaryOptional": "Sažetak (opcionalno)", - "pendingCommentSingular": "čekajući komentar", - "pendingCommentPlural": "čekajući komentari", + "pendingComment_one": "čekajući komentar", + "pendingComment": "čekajući komentari", + "pendingComment_other": "čekajući komentari", "submitCountOfTotal": "Pošalji {{freshCount}} od {{totalCount}} komentara", "submitReview": "Pošalji recenziju", "partialPostedMessage": "Poslano {{freshCount}} komentar(a). {{staleCount}} komentar(a) odnose se na stariji commit i ostalo je u vašem redu." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Otvoreno · Potrebna recenzija", "stateOpen": "Otvoreno", "unknownAuthor": "Nepoznati autor", - "commitSingular": "commit", - "commitPlural": "commita", - "fileSingular": "datoteka", - "filePlural": "datoteka" + "commit_one": "commit", + "commit": "commita", + "commit_other": "commita", + "file_one": "datoteka", + "file": "datoteka", + "file_other": "datoteka" }, "pendingComment": { "editOutdatedA11y": "Uredi zastarjeli čekajući komentar na {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Netko", - "oneTyping": "{{name}} tipka...", - "manyTyping": "{{names}} tipkaju..." + "typing_one": "{{name}} tipka...", + "typing": "{{names}} tipkaju...", + "typing_other": "{{names}} tipkaju..." }, "botStatus": { "online": "Na mreži", @@ -722,12 +730,10 @@ "couldNotLoad": "Učitavanje podataka o naplati nije uspjelo", "manageOnWeb": "Upravljaj naplatom na webu", "commitPlan": "Commit", - "daysLeft": "{{count}} dana preostalo", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Vaš konačni Commit rok završava {{date}}. Nastavite kao Standard po cijeni od {{price}}, ili hosting završava.", "freeTrial": "Besplatna proba", "hostingEnds": "Hosting završava", - "oneDayLeft": "1 dan preostalo", "renews": "Obnavlja se", "standardMonthToMonth": "Standardno mjesečno", "standardStartsOn": "Standard počinje {{date}} po cijeni od {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} zahtijeva pozornost: {{label}}", - "openUnreadOne": "Otvori {{name}}, {{count}} nepročitana poruka", - "openUnreadMany": "Otvori {{name}}, {{count}} nepročitanih poruka", + "openUnread_one": "Otvori {{name}}, {{displayCount}} nepročitana poruka", + "openUnread": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", + "openUnread_other": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", "open": "Otvori {{name}}", "openSettings": "Otvori postavke za {{name}}", "fixOnKiloAi": "Riješi na kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Omogućiti automatsku sanaciju?", "enableAutoRemediationConfirmMessage": "Security Agent će automatski otvarati PR-ove za sanaciju za prihvatljive iskoristive nalaze.", "enable": "Omogući", - "queuedOne": "{{count}} postojeći nalaz čeka na analizu.", - "queuedMany": "{{count}} postojećih nalaza čeka na analizu.", + "queued_one": "{{displayCount}} postojeći nalaz čeka na analizu.", + "queued": "{{displayCount}} postojećih nalaza čeka na analizu.", + "queued_other": "{{displayCount}} postojećih nalaza čeka na analizu.", "severityCriticalOnly": "Samo kritični", "severityHighAndAbove": "Visoki i viši", "severityMediumAndAbove": "Srednji i viši", @@ -1482,8 +1490,9 @@ "on": "Uključeno", "off": "Isključeno", "allRepositories": "Svi repozitoriji", - "repositorySelected": "{{count}} repozitorij odabran", - "repositoriesSelected": "{{count}} repozitorija odabrano", + "repositoriesCount_one": "{{displayCount}} repozitorij odabran", + "repositoriesCount": "{{displayCount}} repozitorija odabrano", + "repositoriesCount_other": "{{displayCount}} repozitorija odabrano", "selectRepositories": "Odaberi repozitorije", "selectRepositoriesSubtitle": "Odaberite koje repozitorije Security Agent prati", "repositories": "Repozitoriji", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesija izbrisana", "needsInput": "treba unos", "fromPlatform": "s {{platform}}", - "centOne": "cent", - "centOther": "centi", - "dollarOne": "dolar", - "dollarOther": "dolara" + "cent_one": "cent", + "cent": "centi", + "cent_other": "centi", + "dollar_one": "dolar", + "dollar": "dolara", + "dollar_other": "dolara" }, "githubInstall": { "couldNotOpenTitle": "Nije moguće otvoriti GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Nije moguće odbaciti nacrt. Pokušajte ponovno." }, "partRenderer": { - "updatedFile": "Ažurirana {{count}} datoteka", - "updatedFiles": "Ažurirane {{count}} datoteke" + "updatedFileCount_one": "Ažurirana {{displayCount}} datoteka", + "updatedFileCount": "Ažurirane {{displayCount}} datoteke", + "updatedFileCount_other": "Ažurirane {{displayCount}} datoteke" }, "toolPatch": { "operationAdded": "Dodano", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ranije poruke učitane", "retryHint": "Ponovno pokušava učitavanje ranijih poruka za ovu sesiju.", - "omittedOne": "Neke ranije stavke iz ove sesije nije moguće prikazati.", - "omittedMany": "{{count}} ranijih stavki iz ove sesije nije moguće prikazati.", + "omitted_one": "Neke ranije stavke iz ove sesije nije moguće prikazati.", + "omitted": "{{displayCount}} ranijih stavki iz ove sesije nije moguće prikazati.", + "omitted_other": "{{displayCount}} ranijih stavki iz ove sesije nije moguće prikazati.", "couldNotLoad": "Nije moguće učitati ranije poruke.", "unavailable": "Ranije poruke nisu dostupne.", "tooLarge": "Ranije poruke prevelike su za učitavanje." @@ -2069,10 +2082,12 @@ "viewTable": "Prikaži tablicu", "title": "Tablica", "close": "Zatvori tablicu", - "column": "stupac", - "columns": "stupci", - "row": "redak", - "rows": "redci", + "columnCount_one": "stupac", + "columnCount": "stupci", + "columnCount_other": "stupci", + "rowCount_one": "redak", + "rowCount": "redci", + "rowCount_other": "redci", "opensFullScreen": "otvara preko cijelog zaslona" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "od {{window}} tokena", "tokens": "tokena", "tokensWithPercentage": "tokena ({{percentage}})", - "stepsCountOne": "{{steps}} korak", - "stepsCountMany": "{{steps}} koraka", + "stepsCount_one": "{{steps}} korak", + "stepsCount": "{{steps}} koraka", + "stepsCount_other": "{{steps}} koraka", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Novi zadatak kodiranja", "explore": "Istraži", "seeAll": "Prikaži sve", - "kiloAgents": "Kilo Agenti", - "greetingMorning": "Dobro jutro", - "greetingAfternoon": "Dobar dan", - "greetingEvening": "Dobra večer" + "kiloAgents": "Kilo Agenti" }, "imageViewer": { "close": "Zatvori {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Otvara upravljanje Kilo Passom na webu.", "notSubscribed": "Nema pretplate", "overallocated": "Dodjele Passa premašuju plaćena mjesta", - "paidSeatOne": "{{count}} plaćeno mjesto", - "paidSeatOther": "{{count}} plaćenih mjesta", + "paidSeat_one": "{{displayCount}} plaćeno mjesto", + "paidSeat": "{{displayCount}} plaćenih mjesta", + "paidSeat_other": "{{displayCount}} plaćenih mjesta", "paymentNeedsAttention": "Plaćanje zahtijeva pozornost", "paymentPending": "Plaćanje na čekanju", "processingBlocked": "Obrada blokirana", diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index 8bfe8af29f..66fe5d8e93 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} sou {{total}} fichye chaje", "loadAllFiles": "Chaje tout fichye", "loadAll": "Chaje tout", - "fileLoaded": "{{count}} fichye chaje", - "filesLoaded": "{{count}} fichye chaje", - "fileLoadedOfTotal": "{{count}} fichye chaje sou {{total}}", - "filesLoadedOfTotal": "{{count}} fichye chaje sou {{total}}", + "fileLoadedCount_one": "{{displayCount}} fichye chaje", + "fileLoadedCount": "{{displayCount}} fichye chaje", + "fileLoadedCount_other": "{{displayCount}} fichye chaje", + "fileLoadedOfTotalCount_one": "{{displayCount}} fichye chaje sou {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} fichye chaje sou {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} fichye chaje sou {{total}}", "filesStillLoading": "Fichye yo toujou ap chaje. Rale pou rafrechi.", "goToOverview": "Ale nan Apèsi", "goToOverviewTab": "Ale nan tab Apèsi" @@ -288,8 +290,9 @@ "resolved": "Rezoud", "outdated": "Demode", "file": "Fichye", - "oneComment": "1 kòmantè", - "commentCount": "{{count}} kòmantè", + "comment_one": "1 kòmantè", + "comment": "{{displayCount}} kòmantè", + "comment_other": "{{displayCount}} kòmantè", "startedRelative": " · kòmanse {{relative}}", "couldNotLoadMore": "Pa t ka chaje plis kòmantè.", "retryLoadingMore": "Rekòmanse chaje plis kòmantè", @@ -299,8 +302,9 @@ "reactionsTitle": "Reyaksyon", "addReaction": "Ajoute reyaksyon", "reactionPill": "{{emoji}} reyaksyon, {{count}} {{countLabel}}", - "reactionSingular": "reyaksyon", - "reactionPlural": "reyaksyon", + "reaction_one": "reyaksyon", + "reaction": "reyaksyon", + "reaction_other": "reyaksyon", "commentActions": "Aksyon kòmantè", "reportContent": "Rapòte kontni", "reportUser": "Rapòte itilizatè", @@ -452,8 +456,9 @@ "deletePendingMessage": "Kòmantè sa a ap retire nan fil revizyon an.", "delete": "Efase", "summaryOptional": "Rezime (opsyonèl)", - "pendingCommentSingular": "kòmantè an patant", - "pendingCommentPlural": "kòmantè an patant", + "pendingComment_one": "kòmantè an patant", + "pendingComment": "kòmantè an patant", + "pendingComment_other": "kòmantè an patant", "submitCountOfTotal": "Soumèt {{freshCount}} sou {{totalCount}} kòmantè", "submitReview": "Soumèt revizyon", "partialPostedMessage": "Pòste {{freshCount}} kòmantè. {{staleCount}} kòmantè deziyen yon komit pi ansyen e rete nan fil ou." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Louvri · Revizyon obligatwa", "stateOpen": "Louvri", "unknownAuthor": "Otè enkoni", - "commitSingular": "komit", - "commitPlural": "komit", - "fileSingular": "fichye", - "filePlural": "fichye" + "commit_one": "komit", + "commit": "komit", + "commit_other": "komit", + "file_one": "fichye", + "file": "fichye", + "file_other": "fichye" }, "pendingComment": { "editOutdatedA11y": "Modifye kòmantè an patant demode sou {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Yon moun", - "oneTyping": "{{name}} ap tape...", - "manyTyping": "{{names}} ap tape..." + "typing_one": "{{name}} ap tape...", + "typing": "{{names}} ap tape...", + "typing_other": "{{names}} ap tape..." }, "botStatus": { "online": "Anliy", @@ -722,12 +730,10 @@ "couldNotLoad": "Pa t ka chaje enfòmasyon faktirasyon", "manageOnWeb": "Jere Faktirasyon sou Web", "commitPlan": "Konmèt", - "daysLeft": "{{count}} jou rès", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Dènye tèm Commit ou a fini sou {{date}}. Kontinye kòm Standard nan {{price}}, oswa òganizasyon an fini.", "freeTrial": "Eseye Gratis", "hostingEnds": "Òganizasyon fini", - "oneDayLeft": "1 jou rès", "renews": "Renouvle", "standardMonthToMonth": "Standard mwa pa mwa", "standardStartsOn": "Standard kòmanse sou {{date}} nan {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} bezwen atansyon: {{label}}", - "openUnreadOne": "Ouvri {{name}}, {{count}} mesaj pa li", - "openUnreadMany": "Ouvri {{name}}, {{count}} mesaj pa li", + "openUnread_one": "Ouvri {{name}}, {{displayCount}} mesaj pa li", + "openUnread": "Ouvri {{name}}, {{displayCount}} mesaj pa li", + "openUnread_other": "Ouvri {{name}}, {{displayCount}} mesaj pa li", "open": "Ouvri {{name}}", "openSettings": "Ouvri paramèt pou {{name}}", "fixOnKiloAi": "Korije sou kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Aktive koreksyon otomatik?", "enableAutoRemediationConfirmMessage": "Ajan Sekirite ap ouvri PR koreksyon otomatikman pou konstate eksplwatab ki kalifye.", "enable": "Aktive", - "queuedOne": "{{count}} rezilta ki egziste a an pwosesis pou analiz.", - "queuedMany": "{{count}} rezilta ki egziste yo an pwosesis pou analiz.", + "queued_one": "{{displayCount}} rezilta ki egziste a an pwosesis pou analiz.", + "queued": "{{displayCount}} rezilta ki egziste yo an pwosesis pou analiz.", + "queued_other": "{{displayCount}} rezilta ki egziste yo an pwosesis pou analiz.", "severityCriticalOnly": "Kritik sèlman", "severityHighAndAbove": "Wo ak pi wo", "severityMediumAndAbove": "Mwayen ak pi wo", @@ -1482,8 +1490,9 @@ "on": "Limye", "off": "Etenn", "allRepositories": "Tout repo", - "repositorySelected": "{{count}} repo ki seleksyone", - "repositoriesSelected": "{{count}} repo ki seleksyone", + "repositoriesCount_one": "{{displayCount}} repo ki seleksyone", + "repositoriesCount": "{{displayCount}} repo ki seleksyone", + "repositoriesCount_other": "{{displayCount}} repo ki seleksyone", "selectRepositories": "Chwazi repo yo", "selectRepositoriesSubtitle": "Chwazi kiyès repo Security Agent siveye", "repositories": "Repo", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesyon an efase", "needsInput": "bezwen input", "fromPlatform": "depi {{platform}}", - "centOne": "santim", - "centOther": "santim", - "dollarOne": "dola", - "dollarOther": "dola" + "cent_one": "santim", + "cent": "santim", + "cent_other": "santim", + "dollar_one": "dola", + "dollar": "dola", + "dollar_other": "dola" }, "githubInstall": { "couldNotOpenTitle": "Pa t 'kapab louvri GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Pa t 'kapab jete bouyon an. Tanpri eseye ankò." }, "partRenderer": { - "updatedFile": "Miz ajou {{count}} fichye", - "updatedFiles": "Miz ajou {{count}} fichye" + "updatedFileCount_one": "Miz ajou {{displayCount}} fichye", + "updatedFileCount": "Miz ajou {{displayCount}} fichye", + "updatedFileCount_other": "Miz ajou {{displayCount}} fichye" }, "toolPatch": { "operationAdded": "Ajoute", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Mesaj pi bonè chaje", "retryHint": "Eseye ankò chaje mesaj pi bonè pou sesyon sa a.", - "omittedOne": "Gen kèk atik pi bonè nan sesyon sa a ki pa t ka montre.", - "omittedMany": "{{count}} atik pi bonè nan sesyon sa a pa t ka montre.", + "omitted_one": "Gen kèk atik pi bonè nan sesyon sa a ki pa t ka montre.", + "omitted": "{{displayCount}} atik pi bonè nan sesyon sa a pa t ka montre.", + "omitted_other": "{{displayCount}} atik pi bonè nan sesyon sa a pa t ka montre.", "couldNotLoad": "Pa t ka chaje mesaj pi bonè.", "unavailable": "Mesaj pi bonè pa disponib.", "tooLarge": "Mesaj pi bonè twò gwo pou chaje." @@ -2069,10 +2082,12 @@ "viewTable": "Wè tablo a", "title": "Tablo", "close": "Fèmen tablo a", - "column": "kolòn", - "columns": "kolòn", - "row": "ranje", - "rows": "ranje", + "columnCount_one": "kolòn", + "columnCount": "kolòn", + "columnCount_other": "kolòn", + "rowCount_one": "ranje", + "rowCount": "ranje", + "rowCount_other": "ranje", "opensFullScreen": "louvri plen ekran" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "nan {{window}} token", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} etap", - "stepsCountMany": "{{steps}} etap", + "stepsCount_one": "{{steps}} etap", + "stepsCount": "{{steps}} etap", + "stepsCount_other": "{{steps}} etap", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nouvo travay kodaj", "explore": "Eksplore", "seeAll": "Wè tout", - "kiloAgents": "Kilo Ajant", - "greetingMorning": "Bonjou", - "greetingAfternoon": "Bon apremidi", - "greetingEvening": "Bonswa" + "kiloAgents": "Kilo Ajant" }, "imageViewer": { "close": "Fèmen {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Louvri jesyon Kilo Pass sou wèb.", "notSubscribed": "Pa abòne", "overallocated": "Atribisyon Pass depase siy peye", - "paidSeatOne": "{{count}} siy peye", - "paidSeatOther": "{{count}} siy peye", + "paidSeat_one": "{{displayCount}} siy peye", + "paidSeat": "{{displayCount}} siy peye", + "paidSeat_other": "{{displayCount}} siy peye", "paymentNeedsAttention": "Peman bezwen atansyon", "paymentPending": "Peman annatant", "processingBlocked": "Pwosesis bloke", diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index b06906445a..618b0ff025 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} / {{total}} fájl betöltve", "loadAllFiles": "Összes fájl betöltése", "loadAll": "Összes betöltése", - "fileLoaded": "{{count}} fájl betöltve", - "filesLoaded": "{{count}} fájl betöltve", - "fileLoadedOfTotal": "{{count}} / {{total}} fájl betöltve", - "filesLoadedOfTotal": "{{count}} / {{total}} fájl betöltve", + "fileLoadedCount_one": "{{displayCount}} fájl betöltve", + "fileLoadedCount": "{{displayCount}} fájl betöltve", + "fileLoadedCount_other": "{{displayCount}} fájl betöltve", + "fileLoadedOfTotalCount_one": "{{displayCount}} / {{total}} fájl betöltve", + "fileLoadedOfTotalCount": "{{displayCount}} / {{total}} fájl betöltve", + "fileLoadedOfTotalCount_other": "{{displayCount}} / {{total}} fájl betöltve", "filesStillLoading": "A fájlok még mindig töltődnek. Húzza lefelé a frissítéshez.", "goToOverview": "Ugrás az áttekintésre", "goToOverviewTab": "Ugrás az Áttekintés fülre" @@ -288,8 +290,9 @@ "resolved": "Megoldva", "outdated": "Elavult", "file": "Fájl", - "oneComment": "1 megjegyzés", - "commentCount": "{{count}} megjegyzés", + "comment_one": "1 megjegyzés", + "comment": "{{displayCount}} megjegyzés", + "comment_other": "{{displayCount}} megjegyzés", "startedRelative": " · kezdve: {{relative}}", "couldNotLoadMore": "Nem sikerült betölteni további megjegyzéseket.", "retryLoadingMore": "További megjegyzések betöltésének újrapróbálása", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakciók", "addReaction": "Reakció hozzáadása", "reactionPill": "{{emoji}} reakció, {{count}} {{countLabel}}", - "reactionSingular": "reakció", - "reactionPlural": "reakció", + "reaction_one": "reakció", + "reaction": "reakció", + "reaction_other": "reakció", "commentActions": "Megjegyzés műveletei", "reportContent": "Tartalom jelentése", "reportUser": "Felhasználó jelentése", @@ -452,8 +456,9 @@ "deletePendingMessage": "Ez a megjegyzés eltávolításra kerül az ellenőrzési sorból.", "delete": "Törlés", "summaryOptional": "Összefoglaló (opcionális)", - "pendingCommentSingular": "függőben lévő megjegyzés", - "pendingCommentPlural": "függőben lévő megjegyzés", + "pendingComment_one": "függőben lévő megjegyzés", + "pendingComment": "függőben lévő megjegyzés", + "pendingComment_other": "függőben lévő megjegyzés", "submitCountOfTotal": "{{freshCount}} / {{totalCount}} megjegyzés elküldése", "submitReview": "Ellenőrzés elküldése", "partialPostedMessage": "{{freshCount}} megjegyzés elküldve. {{staleCount}} megjegyzés régebbi commithoz kapcsolódik, és a sorban maradt." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Nyitva · Ellenőrzés szükséges", "stateOpen": "Nyitva", "unknownAuthor": "Ismeretlen szerző", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "fájl", - "filePlural": "fájl" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "fájl", + "file": "fájl", + "file_other": "fájl" }, "pendingComment": { "editOutdatedA11y": "Elavult függőben lévő megjegyzés szerkesztése itt: {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Valaki", - "oneTyping": "{{name}} gépel...", - "manyTyping": "{{names}} gépel..." + "typing_one": "{{name}} gépel...", + "typing": "{{names}} gépel...", + "typing_other": "{{names}} gépel..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Nem sikerült betölteni a számlázási adatokat", "manageOnWeb": "Számlázás kezelése a weben", "commitPlan": "Elköteleződés", - "daysLeft": "{{count}} nap van hátra", "earlybird": "Korai madár", "finalCommitTermEndsOn": "Az utolsó Commit-időszakod {{date}}-kor ér véget. Folytasd Standard csomaggal {{price}} áron, vagy a tárhely megszűnik.", "freeTrial": "Ingyenes próba", "hostingEnds": "A tárhely megszűnik", - "oneDayLeft": "1 nap van hátra", "renews": "Megújul", "standardMonthToMonth": "Standard havidíj", "standardStartsOn": "A Standard {{date}}-kor kezdődik {{price}} áron.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} figyelmet igényel: {{label}}", - "openUnreadOne": "{{name}} megnyitása, {{count}} olvasatlan üzenet", - "openUnreadMany": "{{name}} megnyitása, {{count}} olvasatlan üzenet", + "openUnread_one": "{{name}} megnyitása, {{displayCount}} olvasatlan üzenet", + "openUnread": "{{name}} megnyitása, {{displayCount}} olvasatlan üzenet", + "openUnread_other": "{{name}} megnyitása, {{displayCount}} olvasatlan üzenet", "open": "{{name}} megnyitása", "openSettings": "Beállítások megnyitása ehhez: {{name}}", "fixOnKiloAi": "Javítás a kilo.ai-n: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Engedélyezed az automatikus hibajavítást?", "enableAutoRemediationConfirmMessage": "A Security Agent automatikusan hibajavító PR-eket nyit a jogosult, kihasználható megállapításokhoz.", "enable": "Engedélyezés", - "queuedOne": "{{count}} meglévő észlelés került sorba elemzésre.", - "queuedMany": "{{count}} meglévő észlelés került sorba elemzésre.", + "queued_one": "{{displayCount}} meglévő észlelés került sorba elemzésre.", + "queued": "{{displayCount}} meglévő észlelés került sorba elemzésre.", + "queued_other": "{{displayCount}} meglévő észlelés került sorba elemzésre.", "severityCriticalOnly": "Csak kritikus", "severityHighAndAbove": "Magas és afölötti", "severityMediumAndAbove": "Közepes és afölötti", @@ -1482,8 +1490,9 @@ "on": "Be", "off": "Ki", "allRepositories": "Minden adattár", - "repositorySelected": "{{count}} adattár kiválasztva", - "repositoriesSelected": "{{count}} adattár kiválasztva", + "repositoriesCount_one": "{{displayCount}} adattár kiválasztva", + "repositoriesCount": "{{displayCount}} adattár kiválasztva", + "repositoriesCount_other": "{{displayCount}} adattár kiválasztva", "selectRepositories": "Adattárak kiválasztása", "selectRepositoriesSubtitle": "Válassza ki, hogy a Security Agent mely adattárakat figyeli", "repositories": "Adattárak", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Munkamenet törölve", "needsInput": "bemenetet igényel", "fromPlatform": "a(z) {{platform}} alkalmazásból", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dollár", - "dollarOther": "dollár" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dollár", + "dollar": "dollár", + "dollar_other": "dollár" }, "githubInstall": { "couldNotOpenTitle": "A GitHub megnyitása nem sikerült", @@ -1817,8 +1828,9 @@ "discardFailed": "A piszkozat elvetése nem sikerült. Próbálja újra." }, "partRenderer": { - "updatedFile": "{{count}} fájl frissítve", - "updatedFiles": "{{count}} fájl frissítve" + "updatedFileCount_one": "{{displayCount}} fájl frissítve", + "updatedFileCount": "{{displayCount}} fájl frissítve", + "updatedFileCount_other": "{{displayCount}} fájl frissítve" }, "toolPatch": { "operationAdded": "Hozzáadva", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Korábbi üzenetek betöltve", "retryHint": "Újra megpróbálja a korábbi üzenetek betöltését ehhez a munkamenethez.", - "omittedOne": "Ennek a munkamenetnek egyes korábbi elemei nem jeleníthetők meg.", - "omittedMany": "Ennek a munkamenetnek {{count}} korábbi eleme nem jeleníthető meg.", + "omitted_one": "Ennek a munkamenetnek egyes korábbi elemei nem jeleníthetők meg.", + "omitted": "Ennek a munkamenetnek {{displayCount}} korábbi eleme nem jeleníthető meg.", + "omitted_other": "Ennek a munkamenetnek {{displayCount}} korábbi eleme nem jeleníthető meg.", "couldNotLoad": "A korábbi üzeneteket nem sikerült betölteni.", "unavailable": "A korábbi üzenetek nem érhetők el.", "tooLarge": "A korábbi üzenetek túl nagyok a betöltéshez." @@ -2069,10 +2082,12 @@ "viewTable": "Táblázat megtekintése", "title": "Táblázat", "close": "Táblázat bezárása", - "column": "oszlop", - "columns": "oszlop", - "row": "sor", - "rows": "sor", + "columnCount_one": "oszlop", + "columnCount": "oszlop", + "columnCount_other": "oszlop", + "rowCount_one": "sor", + "rowCount": "sor", + "rowCount_other": "sor", "opensFullScreen": "teljes képernyőn nyílik meg" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "a(z) {{window}} tokenből", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} lépés", - "stepsCountMany": "{{steps}} lépés", + "stepsCount_one": "{{steps}} lépés", + "stepsCount": "{{steps}} lépés", + "stepsCount_other": "{{steps}} lépés", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Új kódolási feladat", "explore": "Felfedezés", "seeAll": "Összes megtekintése", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Jó reggelt", - "greetingAfternoon": "Jó napot", - "greetingEvening": "Jó estét" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} bezárása", @@ -2645,8 +2658,9 @@ "manageHint": "Megnyitja a Kilo Pass kezelést a weben.", "notSubscribed": "Nincs előfizetve", "overallocated": "A Pass-hozzárendelések meghaladják a fizetett férőhelyeket", - "paidSeatOne": "{{count}} fizetett férőhely", - "paidSeatOther": "{{count}} fizetett férőhely", + "paidSeat_one": "{{displayCount}} fizetett férőhely", + "paidSeat": "{{displayCount}} fizetett férőhely", + "paidSeat_other": "{{displayCount}} fizetett férőhely", "paymentNeedsAttention": "A fizetés figyelmet igényel", "paymentPending": "A fizetés függőben", "processingBlocked": "A feldolgozás blokkolva", diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index f898185b46..a9e3a909e1 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Բեռնված {{loaded}}-ը {{total}} ֆայլերից", "loadAllFiles": "Բեռնել բոլոր ֆայլերը", "loadAll": "Բեռնել բոլորը", - "fileLoaded": "Բեռնված է {{count}} ֆայլ", - "filesLoaded": "Բեռնված է {{count}} ֆայլ", - "fileLoadedOfTotal": "Բեռնված է {{count}} ֆայլ {{total}}-ից", - "filesLoadedOfTotal": "Բեռնված է {{count}} ֆայլ {{total}}-ից", + "fileLoadedCount_one": "Բեռնված է {{displayCount}} ֆայլ", + "fileLoadedCount": "Բեռնված է {{displayCount}} ֆայլ", + "fileLoadedCount_other": "Բեռնված է {{displayCount}} ֆայլ", + "fileLoadedOfTotalCount_one": "Բեռնված է {{displayCount}} ֆայլ {{total}}-ից", + "fileLoadedOfTotalCount": "Բեռնված է {{displayCount}} ֆայլ {{total}}-ից", + "fileLoadedOfTotalCount_other": "Բեռնված է {{displayCount}} ֆայլ {{total}}-ից", "filesStillLoading": "Ֆայլերը դեռ բեռնվում են: Քաշեք՝ թարմացնելու համար:", "goToOverview": "Գնալ ակնարկ", "goToOverviewTab": "Գնալ ակնարկի ներդիր" @@ -288,8 +290,9 @@ "resolved": "Լուծված", "outdated": "Հնացած", "file": "Ֆայլ", - "oneComment": "1 մեկնաբանություն", - "commentCount": "{{count}} մեկնաբանություն", + "comment_one": "1 մեկնաբանություն", + "comment": "{{displayCount}} մեկնաբանություն", + "comment_other": "{{displayCount}} մեկնաբանություն", "startedRelative": " · սկսվել է {{relative}}", "couldNotLoadMore": "Չհաջողվեց բեռնել ավելի շատ մեկնաբանություններ:", "retryLoadingMore": "Կրկին փորձել բեռնել ավելի շատ մեկնաբանություններ", @@ -299,8 +302,9 @@ "reactionsTitle": "Ռեակցիաներ", "addReaction": "Ավելացնել ռեակցիա", "reactionPill": "{{emoji}} ռեակցիա, {{count}} {{countLabel}}", - "reactionSingular": "ռեակցիա", - "reactionPlural": "ռեակցիա", + "reaction_one": "ռեակցիա", + "reaction": "ռեակցիա", + "reaction_other": "ռեակցիա", "commentActions": "Մեկնաբանության գործողություններ", "reportContent": "Զեկուցել բովանդակությունը", "reportUser": "Զեկուցել օգտատիրոջ մասին", @@ -452,8 +456,9 @@ "deletePendingMessage": "Այս մեկնաբանությունը կհեռացվի վերանայման հերթից:", "delete": "Ջնջել", "summaryOptional": "Ամփոփում (պարտադիր չէ)", - "pendingCommentSingular": "սպասվող մեկնաբանություն", - "pendingCommentPlural": "սպասվող մեկնաբանություններ", + "pendingComment_one": "սպասվող մեկնաբանություն", + "pendingComment": "սպասվող մեկնաբանություններ", + "pendingComment_other": "սպասվող մեկնաբանություններ", "submitCountOfTotal": "Ուղարկել {{freshCount}}-ը {{totalCount}} մեկնաբանություններից", "submitReview": "Ուղարկել վերանայումը", "partialPostedMessage": "Տեղադրված է {{freshCount}} մեկնաբանություն: {{staleCount}} մեկնաբանություն վերաբերում է ավելի հին commit-ին և մնացել է ձեր հերթում:" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Բաց · Վերանայում է պահանջվում", "stateOpen": "Բաց", "unknownAuthor": "Անհայտ հեղինակ", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "ֆայլ", - "filePlural": "ֆայլեր" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "ֆայլ", + "file": "ֆայլեր", + "file_other": "ֆայլեր" }, "pendingComment": { "editOutdatedA11y": "Խմբագրել հնացած սպասվող մեկնաբանությունը {{location}} վայրում", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Ինչ-որ մեկը", - "oneTyping": "{{name}}-ը մուտքագրում է...", - "manyTyping": "{{names}}-ը մուտքագրում են..." + "typing_one": "{{name}}-ը մուտքագրում է...", + "typing": "{{names}}-ը մուտքագրում են...", + "typing_other": "{{names}}-ը մուտքագրում են..." }, "botStatus": { "online": "Առցանց", @@ -722,12 +730,10 @@ "couldNotLoad": "Հնարավոր չեղավ բեռնել վճարման տվյալները", "manageOnWeb": "Կառավարել վճարումները կայքում", "commitPlan": "Հաստատել", - "daysLeft": "Մնացել է {{count}} օր", "earlybird": "Վաղ թռչուն", "finalCommitTermEndsOn": "Ձեր վերջնական Commit ժամկետն ավարտվում է {{date}}-ին: Շարունակեք Standard-ով {{price}}-ով, կամ հոսթինգն ավարտվում է:", "freeTrial": "Անվճար փորձարկում", "hostingEnds": "Հոսթինգն ավարտվում է", - "oneDayLeft": "Մնացել է 1 օր", "renews": "Երկարաձգվում է", "standardMonthToMonth": "Ստանդարտ ամսական", "standardStartsOn": "Ստանդարտը սկսվում է {{date}}-ին {{price}}-ով:", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}}-ը ուշադրության կարիք ունի՝ {{label}}", - "openUnreadOne": "Բացել {{name}}-ը, {{count}} չկարդացված հաղորդագրություն", - "openUnreadMany": "Բացել {{name}}-ը, {{count}} չկարդացված հաղորդագրություն", + "openUnread_one": "Բացել {{name}}-ը, {{displayCount}} չկարդացված հաղորդագրություն", + "openUnread": "Բացել {{name}}-ը, {{displayCount}} չկարդացված հաղորդագրություն", + "openUnread_other": "Բացել {{name}}-ը, {{displayCount}} չկարդացված հաղորդագրություն", "open": "Բացել {{name}}-ը", "openSettings": "Բացել {{name}}-ի կարգավորումները", "fixOnKiloAi": "Շտկել kilo.ai-ում՝ {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Միացնե՞լ ավտոմատ շտկումը:", "enableAutoRemediationConfirmMessage": "Անվտանգության գործակալը կբացի շտկման PR-եր ավտոմատ՝ իրավասու շահագործելի հայտնաբերումների համար:", "enable": "Միացնել", - "queuedOne": "{{count}} առկա գտածո հերթագրված է վերլուծության համար։", - "queuedMany": "{{count}} առկա գտածո հերթագրված են վերլուծության համար։", + "queued_one": "{{displayCount}} առկա գտածո հերթագրված է վերլուծության համար։", + "queued": "{{displayCount}} առկա գտածո հերթագրված են վերլուծության համար։", + "queued_other": "{{displayCount}} առկա գտածո հերթագրված են վերլուծության համար։", "severityCriticalOnly": "Միայն կրիտիկական", "severityHighAndAbove": "Բարձր և բարձրից", "severityMediumAndAbove": "Միջին և բարձրից", @@ -1482,8 +1490,9 @@ "on": "Միացված", "off": "Անջատված", "allRepositories": "Բոլոր պահոցները", - "repositorySelected": "Ընտրվել է {{count}} պահոց", - "repositoriesSelected": "Ընտրվել են {{count}} պահոց", + "repositoriesCount_one": "Ընտրվել է {{displayCount}} պահոց", + "repositoriesCount": "Ընտրվել են {{displayCount}} պահոց", + "repositoriesCount_other": "Ընտրվել են {{displayCount}} պահոց", "selectRepositories": "Ընտրել պահոցները", "selectRepositoriesSubtitle": "Ընտրեք, թե որ պահոցներն է վերահսկում Անվտանգության գործակալը", "repositories": "Պահոցներ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Նիստը ջնջված է", "needsInput": "մուտքագրման կարիք ունի", "fromPlatform": "{{platform}}-ից", - "centOne": "ցենտ", - "centOther": "ցենտ", - "dollarOne": "դոլար", - "dollarOther": "դոլար" + "cent_one": "ցենտ", + "cent": "ցենտ", + "cent_other": "ցենտ", + "dollar_one": "դոլար", + "dollar": "դոլար", + "dollar_other": "դոլար" }, "githubInstall": { "couldNotOpenTitle": "Չհաջողվեց բացել GitHub-ը", @@ -1817,8 +1828,9 @@ "discardFailed": "Չհաջողվեց մերժել սևագիրը։ Խնդրում ենք կրկին փորձել։" }, "partRenderer": { - "updatedFile": "Թարմացվել է {{count}} ֆայլ", - "updatedFiles": "Թարմացվել են {{count}} ֆայլ" + "updatedFileCount_one": "Թարմացվել է {{displayCount}} ֆայլ", + "updatedFileCount": "Թարմացվել են {{displayCount}} ֆայլ", + "updatedFileCount_other": "Թարմացվել են {{displayCount}} ֆայլ" }, "toolPatch": { "operationAdded": "Ավելացված", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ավելի վաղ հաղորդագրությունները բեռնված են", "retryHint": "Կրկին փորձում է բեռնել ավելի վաղ հաղորդագրությունները այս նիստի համար:", - "omittedOne": "Այս նիստի որոշ ավելի վաղ տարրեր հնարավոր չեղավ ցուցադրել:", - "omittedMany": "Այս նիստի {{count}} ավելի վաղ տարրեր հնարավոր չեղավ ցուցադրել:", + "omitted_one": "Այս նիստի որոշ ավելի վաղ տարրեր հնարավոր չեղավ ցուցադրել:", + "omitted": "Այս նիստի {{displayCount}} ավելի վաղ տարրեր հնարավոր չեղավ ցուցադրել:", + "omitted_other": "Այս նիստի {{displayCount}} ավելի վաղ տարրեր հնարավոր չեղավ ցուցադրել:", "couldNotLoad": "Հնարավոր չեղավ բեռնել ավելի վաղ հաղորդագրությունները:", "unavailable": "Ավելի վաղ հաղորդագրությունները հասանելի չեն:", "tooLarge": "Ավելի վաղ հաղորդագրությունները չափազանց մեծ են՝ բեռնելու համար:" @@ -2069,10 +2082,12 @@ "viewTable": "Դիտել աղյուսակը", "title": "Աղյուսակ", "close": "Փակել աղյուսակը", - "column": "սյունակ", - "columns": "սյունակներ", - "row": "տող", - "rows": "տողեր", + "columnCount_one": "սյունակ", + "columnCount": "սյունակներ", + "columnCount_other": "սյունակներ", + "rowCount_one": "տող", + "rowCount": "տողեր", + "rowCount_other": "տողեր", "opensFullScreen": "բացվում է ամբողջ էկրանով" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} նշաններից", "tokens": "նշան", "tokensWithPercentage": "նշան ({{percentage}})", - "stepsCountOne": "{{steps}} քայլ", - "stepsCountMany": "{{steps}} քայլ", + "stepsCount_one": "{{steps}} քայլ", + "stepsCount": "{{steps}} քայլ", + "stepsCount_other": "{{steps}} քայլ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Նոր ծրագրավորման առաջադրանք", "explore": "Ուսումնասիրել", "seeAll": "Տեսնել բոլորը", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Բարի առավոտ", - "greetingAfternoon": "Բարի օր", - "greetingEvening": "Բարի երեկո" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Փակել {{filename}}-ը", @@ -2645,8 +2658,9 @@ "manageHint": "Բացում է Kilo Pass կառավարումը վեբում:", "notSubscribed": "Բաժանորդագրված չէ", "overallocated": "Pass նշանակումները գերազանցում են վճարված տեղերը", - "paidSeatOne": "{{count}} վճարված տեղ", - "paidSeatOther": "{{count}} վճարված տեղեր", + "paidSeat_one": "{{displayCount}} վճարված տեղ", + "paidSeat": "{{displayCount}} վճարված տեղեր", + "paidSeat_other": "{{displayCount}} վճարված տեղեր", "paymentNeedsAttention": "Վճարումը ուշադրության կարիք ունի", "paymentPending": "Վճարումը սպասվում է", "processingBlocked": "Մշակումն արգելափակված է", diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index d967fa2df5..3b93d740e4 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Seseorang", - "oneTyping": "{{name}} sedang mengetik...", - "manyTyping": "{{names}} sedang mengetik..." + "typing_one": "{{name}} sedang mengetik...", + "typing": "{{names}} sedang mengetik...", + "typing_other": "{{names}} sedang mengetik..." }, "botStatus": { "online": "Online", @@ -350,12 +351,10 @@ "couldNotLoad": "Tidak dapat memuat informasi penagihan", "manageOnWeb": "Kelola Penagihan di Web", "commitPlan": "Commit", - "daysLeft": "{{count}} hari tersisa", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Periode Commit terakhir Anda berakhir pada {{date}}. Lanjutkan sebagai Standard seharga {{price}}, atau hosting berakhir.", "freeTrial": "Uji Coba Gratis", "hostingEnds": "Hosting berakhir", - "oneDayLeft": "1 hari tersisa", "renews": "Diperbarui", "standardMonthToMonth": "Standard bulanan", "standardStartsOn": "Standard dimulai pada {{date}} seharga {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} perlu perhatian: {{label}}", "open": "Buka {{name}}", "openSettings": "Buka pengaturan untuk {{name}}", - "openUnreadMany": "Buka {{name}}, {{count}} pesan belum dibaca", - "openUnreadOne": "Buka {{name}}, {{count}} pesan belum dibaca" + "openUnread": "Buka {{name}}, {{displayCount}} pesan belum dibaca", + "openUnread_other": "Buka {{name}}, {{displayCount}} pesan belum dibaca", + "openUnread_one": "Buka {{name}}, {{displayCount}} pesan belum dibaca" }, "list": { "createInstance": "Buat instans", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Antrekan juga temuan memenuhi syarat yang sudah dianalisis. PR duplikat tetap ditekan.", "minimumSeverity": "Keparahan minimum", "permissionNote": "Hanya pemilik organisasi dan manajer penagihan yang dapat mengubah pengaturan ini.", - "queuedMany": "{{count}} temuan yang ada diantrekan untuk analisis.", - "queuedOne": "{{count}} temuan yang ada diantrekan untuk analisis.", + "queued": "{{displayCount}} temuan yang ada diantrekan untuk analisis.", + "queued_other": "{{displayCount}} temuan yang ada diantrekan untuk analisis.", + "queued_one": "{{displayCount}} temuan yang ada diantrekan untuk analisis.", "requireApproval": "Wajibkan persetujuan sebelum remediasi otomatis", "requireApprovalSubtitle": "Remediasi otomatis menunggu persetujuan Anda sebelum membuka PR.", "severityAll": "Semua keparahan", @@ -1270,8 +1271,9 @@ "off": "Nonaktif", "on": "Aktif", "repositories": "Repositori", - "repositoriesSelected": "{{count}} repositori dipilih", - "repositorySelected": "{{count}} repositori dipilih", + "repositoriesCount": "{{displayCount}} repositori dipilih", + "repositoriesCount_other": "{{displayCount}} repositori dipilih", + "repositoriesCount_one": "{{displayCount}} repositori dipilih", "securityAgent": "Security Agent", "selectRepositories": "Pilih repositori", "selectRepositoriesSubtitle": "Pilih repositori yang dipantau Security Agent", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Sesi dihapus", "needsInput": "memerlukan input", "fromPlatform": "dari {{platform}}", - "centOne": "sen", - "centOther": "sen", - "dollarOne": "dolar", - "dollarOther": "dolar" + "cent_one": "sen", + "cent": "sen", + "cent_other": "sen", + "dollar_one": "dolar", + "dollar": "dolar", + "dollar_other": "dolar" }, "githubInstall": { "couldNotOpenMessage": "Kami tidak dapat memulai penyiapan Aplikasi GitHub. Silakan coba lagi.", @@ -1445,8 +1449,9 @@ "keepEditing": "Tetap mengedit" }, "partRenderer": { - "updatedFile": "Memperbarui {{count}} file", - "updatedFiles": "Memperbarui {{count}} file" + "updatedFileCount_one": "Memperbarui {{displayCount}} file", + "updatedFileCount": "Memperbarui {{displayCount}} file", + "updatedFileCount_other": "Memperbarui {{displayCount}} file" }, "toolPatch": { "operationAdded": "Ditambahkan", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Pesan sebelumnya dimuat", "retryHint": "Mencoba ulang pemuatan pesan lama untuk sesi ini.", - "omittedOne": "Satu item sebelumnya dari sesi ini tidak dapat ditampilkan.", - "omittedMany": "{{count}} item sebelumnya dari sesi ini tidak dapat ditampilkan.", + "omitted_one": "Satu item sebelumnya dari sesi ini tidak dapat ditampilkan.", + "omitted": "{{displayCount}} item sebelumnya dari sesi ini tidak dapat ditampilkan.", + "omitted_other": "{{displayCount}} item sebelumnya dari sesi ini tidak dapat ditampilkan.", "couldNotLoad": "Tidak dapat memuat pesan sebelumnya.", "unavailable": "Pesan sebelumnya tidak tersedia.", "tooLarge": "Pesan sebelumnya terlalu besar untuk dimuat." @@ -1697,10 +1703,12 @@ "viewTable": "Lihat tabel", "title": "Tabel", "close": "Tutup tabel", - "column": "kolom", - "columns": "kolom", - "row": "baris", - "rows": "baris", + "columnCount_one": "kolom", + "columnCount": "kolom", + "columnCount_other": "kolom", + "rowCount_one": "baris", + "rowCount": "baris", + "rowCount_other": "baris", "opensFullScreen": "membuka layar penuh" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "dari {{window}} token", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} langkah", - "stepsCountMany": "{{steps}} langkah", + "stepsCount_one": "{{steps}} langkah", + "stepsCount": "{{steps}} langkah", + "stepsCount_other": "{{steps}} langkah", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Tugas coding baru", "explore": "Jelajahi", "seeAll": "Lihat semua", - "kiloAgents": "Agen Kilo", - "greetingMorning": "Selamat pagi", - "greetingAfternoon": "Selamat siang", - "greetingEvening": "Selamat malam" + "kiloAgents": "Agen Kilo" }, "imageViewer": { "close": "Tutup {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Tutup reaksi", "collapseThread": "Ciutkan thread", "commentActions": "Tindakan komentar", - "commentCount": "{{count}} komentar", + "comment": "{{displayCount}} komentar", + "comment_other": "{{displayCount}} komentar", "couldNotLoad": "Tidak dapat memuat diskusi", "couldNotLoadMore": "Tidak dapat memuat lebih banyak komentar.", "couldNotReply": "Tidak dapat membalas.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} dibisukan", "noDiscussion": "Belum ada diskusi", "noDiscussionDescription": "Tidak ada thread tinjauan atau komentar percakapan pada pull request ini.", - "oneComment": "1 komentar", + "comment_one": "1 komentar", "outdated": "Kedaluwarsa", "quotedDiffSnippet": "Cuplikan diff yang dikutip", "reactionPill": "{{emoji}} reaksi, {{count}} {{countLabel}}", - "reactionPlural": "reaksi", - "reactionSingular": "reaksi", + "reaction": "reaksi", + "reaction_other": "reaksi", + "reaction_one": "reaksi", "reactionsTitle": "Reaksi", "reply": "Balas", "replyBadRequest": "Balasan ini tidak dapat dikirim. Thread mungkin telah berubah.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Perluas {{count}} baris lagi ({{start}}–{{end}})", "failedToLoadContext": "Gagal memuat konteks — ketuk untuk mencoba lagi", "failedToLoadMoreFiles": "Gagal memuat lebih banyak file — ketuk untuk mencoba lagi", - "fileLoaded": "{{count}} file dimuat", - "fileLoadedOfTotal": "{{count}} file dimuat dari {{total}}", - "filesLoaded": "{{count}} file dimuat", - "filesLoadedOfTotal": "{{count}} file dimuat dari {{total}}", + "fileLoadedCount_one": "{{displayCount}} file dimuat", + "fileLoadedOfTotalCount_one": "{{displayCount}} file dimuat dari {{total}}", + "fileLoadedCount": "{{displayCount}} file dimuat", + "fileLoadedCount_other": "{{displayCount}} file dimuat", + "fileLoadedOfTotalCount": "{{displayCount}} file dimuat dari {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} file dimuat dari {{total}}", "filesStillLoading": "File masih dimuat. Tarik untuk menyegarkan.", "goToOverview": "Buka Ringkasan", "goToOverviewTab": "Buka tab Ringkasan", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Tidak ada file yang berubah", "noFilesChangedDescription": "Pull request ini tidak memiliki perubahan file.", "overview": { - "commitPlural": "commit", - "commitSingular": "commit", - "filePlural": "file", - "fileSingular": "file", + "commit": "commit", + "commit_other": "commit", + "commit_one": "commit", + "file": "file", + "file_other": "file", + "file_one": "file", "stateClosed": "Ditutup", "stateDraft": "Draf", "stateMerged": "Digabungkan", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Komentar ini akan dihapus dari antrean tinjauan.", "deletePendingTitle": "Hapus komentar tertunda?", "loadFailedTitle": "Tidak dapat memuat pengiriman tinjauan", - "pendingCommentPlural": "komentar tertunda", - "pendingCommentSingular": "komentar tertunda", + "pendingComment": "komentar tertunda", + "pendingComment_other": "komentar tertunda", + "pendingComment_one": "komentar tertunda", "summaryOptional": "Ringkasan (opsional)", "title": "Kirim tinjauan", "partialPostedMessage": "{{freshCount}} komentar terkirim. {{staleCount}} komentar mengarah ke commit lama dan tetap berada di antrean Anda.", @@ -2632,8 +2645,9 @@ "manageHint": "Membuka pengelolaan Kilo Pass di web.", "notSubscribed": "Tidak berlangganan", "overallocated": "Penugasan Pass melebihi kursi berbayar", - "paidSeatOne": "{{count}} kursi berbayar", - "paidSeatOther": "{{count}} kursi berbayar", + "paidSeat_one": "{{displayCount}} kursi berbayar", + "paidSeat": "{{displayCount}} kursi berbayar", + "paidSeat_other": "{{displayCount}} kursi berbayar", "paymentNeedsAttention": "Pembayaran perlu perhatian", "paymentPending": "Pembayaran tertunda", "processingBlocked": "Pemrosesan diblokir", diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index 7114068a9d..7d0b7dd91c 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} n'ime {{total}} faịlụ bugoro", "loadAllFiles": "Bugo faịlụ niile", "loadAll": "Bugo niile", - "fileLoaded": "{{count}} faịlụ bugoro", - "filesLoaded": "{{count}} faịlụ bugoro", - "fileLoadedOfTotal": "{{count}} faịlụ bugoro n'ime {{total}}", - "filesLoadedOfTotal": "{{count}} faịlụ bugoro n'ime {{total}}", + "fileLoadedCount_one": "{{displayCount}} faịlụ bugoro", + "fileLoadedCount": "{{displayCount}} faịlụ bugoro", + "fileLoadedCount_other": "{{displayCount}} faịlụ bugoro", + "fileLoadedOfTotalCount_one": "{{displayCount}} faịlụ bugoro n'ime {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} faịlụ bugoro n'ime {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} faịlụ bugoro n'ime {{total}}", "filesStillLoading": "Faịlụ ka na-ebugo. Dọrọ iji mwegharịa.", "goToOverview": "Gaa na Nchịkọta", "goToOverviewTab": "Gaa na taabụ Nchịkọta" @@ -288,8 +290,9 @@ "resolved": "Edozila", "outdated": "Ochie", "file": "Faịlụ", - "oneComment": "1 nkọwa", - "commentCount": "{{count}} nkọwa", + "comment_one": "1 nkọwa", + "comment": "{{displayCount}} nkọwa", + "comment_other": "{{displayCount}} nkọwa", "startedRelative": " · malitere {{relative}}", "couldNotLoadMore": "Enweghị ike ibugo nkọwa ndị ọzọ.", "retryLoadingMore": "Nwaa ibugo nkọwa ndị ọzọ", @@ -299,8 +302,9 @@ "reactionsTitle": "Mmeghachi omume", "addReaction": "Tinye mmeghachi omume", "reactionPill": "{{emoji}} mmeghachi omume, {{count}} {{countLabel}}", - "reactionSingular": "mmeghachi omume", - "reactionPlural": "mmeghachi omume", + "reaction_one": "mmeghachi omume", + "reaction": "mmeghachi omume", + "reaction_other": "mmeghachi omume", "commentActions": "Omume nkọwa", "reportContent": "Kọọ ọdịnaya", "reportUser": "Kọọ onye ọrụ", @@ -452,8 +456,9 @@ "deletePendingMessage": "A ga-ewepụ nkọwa a na ahịrị nyocha.", "delete": "Hichapụ", "summaryOptional": "Nchịkọta (nhọrọ)", - "pendingCommentSingular": "nkọwa na-echere", - "pendingCommentPlural": "nkọwa na-echere", + "pendingComment_one": "nkọwa na-echere", + "pendingComment": "nkọwa na-echere", + "pendingComment_other": "nkọwa na-echere", "submitCountOfTotal": "Nyefee {{freshCount}} n'ime {{totalCount}} nkọwa", "submitReview": "Nyefee nyocha", "partialPostedMessage": "Biputere {{freshCount}} nkọwa. {{staleCount}} nkọwa na-atụ aka na commit ochie ma nọrọ n'ahịrị gị." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Mepere · Nyocha achọrọ", "stateOpen": "Mepere", "unknownAuthor": "Onye edemede amaghị", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "faịlụ", - "filePlural": "faịlụ" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "faịlụ", + "file": "faịlụ", + "file_other": "faịlụ" }, "pendingComment": { "editOutdatedA11y": "Dezie nkọwa na-echere ochie na {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Otu onye", - "oneTyping": "{{name}} na-edepe...", - "manyTyping": "{{names}} na-edepe..." + "typing_one": "{{name}} na-edepe...", + "typing": "{{names}} na-edepe...", + "typing_other": "{{names}} na-edepe..." }, "botStatus": { "online": "Ịntanetị", @@ -722,12 +730,10 @@ "couldNotLoad": "Enweghị ike ibunye ozi ịkwụ ụgwọ", "manageOnWeb": "Jikwaa Ịkwụ Ụgwọ na Webụ", "commitPlan": "Kwado", - "daysLeft": "{{count}} ụbọchị fọdụrụ", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Oge Commit ikpeazụ gị na-akwụsị na {{date}}. Gaa n'ihu dị ka Standard na {{price}}, ma ọ bụ ebe nlekọta na-akwụsị.", "freeTrial": "Nnwale efu", "hostingEnds": "Ebe nlekọta na-akwụsị", - "oneDayLeft": "1 ụbọchị fọdụrụ", "renews": "Na-emegharị", "standardMonthToMonth": "Standard kwa ọnwa", "standardStartsOn": "Standard na-amalite na {{date}} na {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} chọrọ nlebara anya: {{label}}", - "openUnreadOne": "Mepee {{name}}, {{count}} ozi a na-agụbeghị", - "openUnreadMany": "Mepee {{name}}, {{count}} ozi a na-agụbeghị", + "openUnread_one": "Mepee {{name}}, {{displayCount}} ozi a na-agụbeghị", + "openUnread": "Mepee {{name}}, {{displayCount}} ozi a na-agụbeghị", + "openUnread_other": "Mepee {{name}}, {{displayCount}} ozi a na-agụbeghị", "open": "Mepee {{name}}", "openSettings": "Mepee ntọala maka {{name}}", "fixOnKiloAi": "Dozie na kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Kwado mgbazi akpaaka?", "enableAutoRemediationConfirmMessage": "Security Agent ga-emepe PRs mgbazi na akpaaka maka nchọpụta ndị enwere ike iji.", "enable": "Kwado", - "queuedOne": "{{count}} otu ihe achọpụtara dị adị kwụ n'ahịrị maka nyocha.", - "queuedMany": "{{count}} ihe achọpụtara dị adị kwụ n'ahịrị maka nyocha.", + "queued_one": "{{displayCount}} otu ihe achọpụtara dị adị kwụ n'ahịrị maka nyocha.", + "queued": "{{displayCount}} ihe achọpụtara dị adị kwụ n'ahịrị maka nyocha.", + "queued_other": "{{displayCount}} ihe achọpụtara dị adị kwụ n'ahịrị maka nyocha.", "severityCriticalOnly": "Naanị dị oké njọ", "severityHighAndAbove": "Nke dị elu na karịa", "severityMediumAndAbove": "Nke dị n'etiti na karịa", @@ -1482,8 +1490,9 @@ "on": "Gbanyere", "off": "Gbanyụrụ", "allRepositories": "Ebe nchekwa niile", - "repositorySelected": "Ebe nchekwa {{count}} ahọpụtara", - "repositoriesSelected": "Ebe nchekwa {{count}} ahọpụtara", + "repositoriesCount_one": "Ebe nchekwa {{displayCount}} ahọpụtara", + "repositoriesCount": "Ebe nchekwa {{displayCount}} ahọpụtara", + "repositoriesCount_other": "Ebe nchekwa {{displayCount}} ahọpụtara", "selectRepositories": "Họrọ ebe nchekwa", "selectRepositoriesSubtitle": "Họrọ ebe nchekwa Security Agent na-enyocha", "repositories": "Ebe nchekwa", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Hichapụrụ nzukọ", "needsInput": "chọrọ ntinye", "fromPlatform": "site na {{platform}}", - "centOne": "senti", - "centOther": "senti", - "dollarOne": "dollar", - "dollarOther": "dollar" + "cent_one": "senti", + "cent": "senti", + "cent_other": "senti", + "dollar_one": "dollar", + "dollar": "dollar", + "dollar_other": "dollar" }, "githubInstall": { "couldNotOpenTitle": "Enweghị ike imeghe GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Enweghị ike ịtụfu akwụkwọ a na-ede. Biko nwaa ọzọ." }, "partRenderer": { - "updatedFile": "Emelitere {{count}} faịlụ", - "updatedFiles": "Emelitere {{count}} faịlụ" + "updatedFileCount_one": "Emelitere {{displayCount}} faịlụ", + "updatedFileCount": "Emelitere {{displayCount}} faịlụ", + "updatedFileCount_other": "Emelitere {{displayCount}} faịlụ" }, "toolPatch": { "operationAdded": "Agbakwunyere", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ebuturu ozi ndị gara aga", "retryHint": "Nwaa ọzọ ịbubata ozi gara aga maka nnọkọ a.", - "omittedOne": "Ụfọdụ ihe gara aga na nnọkọ a enweghị ike igosi.", - "omittedMany": "{{count}} ihe gara aga na nnọkọ a enweghị ike igosi.", + "omitted_one": "Ụfọdụ ihe gara aga na nnọkọ a enweghị ike igosi.", + "omitted": "{{displayCount}} ihe gara aga na nnọkọ a enweghị ike igosi.", + "omitted_other": "{{displayCount}} ihe gara aga na nnọkọ a enweghị ike igosi.", "couldNotLoad": "Enweghị ike ibutu ozi gara aga.", "unavailable": "Ozi gara aga adịghị.", "tooLarge": "Ozi gara aga buru oke ibu ibutu." @@ -2069,10 +2082,12 @@ "viewTable": "Lelee tebụl", "title": "Tebụl", "close": "Mechi tebụl", - "column": "ogidi", - "columns": "ogidi", - "row": "ahịrị", - "rows": "ahịrị", + "columnCount_one": "ogidi", + "columnCount": "ogidi", + "columnCount_other": "ogidi", + "rowCount_one": "ahịrị", + "rowCount": "ahịrị", + "rowCount_other": "ahịrị", "opensFullScreen": "na-emeghe ihuenyo zuru ezu" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "nke {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} nzọụkwụ", - "stepsCountMany": "{{steps}} nzọụkwụ", + "stepsCount_one": "{{steps}} nzọụkwụ", + "stepsCount": "{{steps}} nzọụkwụ", + "stepsCount_other": "{{steps}} nzọụkwụ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Ọrụ ịde koodu ọhụrụ", "explore": "Chọpụta", "seeAll": "Hụ niile", - "kiloAgents": "Ndị nnọchite Kilo", - "greetingMorning": "Ụtụtụ ọma", - "greetingAfternoon": "Ehihie ọma", - "greetingEvening": "Mgbede ọma" + "kiloAgents": "Ndị nnọchite Kilo" }, "imageViewer": { "close": "Mechie {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Na-emeghe njikwa Kilo Pass na webụ.", "notSubscribed": "Edebeghị aha", "overallocated": "Ọrụ Pass karịrị oche akwụrụ ụgwọ", - "paidSeatOne": "{{count}} oche akwụrụ ụgwọ", - "paidSeatOther": "{{count}} oche akwụrụ ụgwọ", + "paidSeat_one": "{{displayCount}} oche akwụrụ ụgwọ", + "paidSeat": "{{displayCount}} oche akwụrụ ụgwọ", + "paidSeat_other": "{{displayCount}} oche akwụrụ ụgwọ", "paymentNeedsAttention": "Ịkwụ ụgwọ chọrọ nlebara anya", "paymentPending": "Ịkwụ ụgwọ na-echere", "processingBlocked": "Nhazi egbochiri", diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index 08b68dc2c8..58a86631af 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} af {{total}} skrám hlaðnar", "loadAllFiles": "Hlaða allar skrár", "loadAll": "Hlaða allt", - "fileLoaded": "{{count}} skrá hlaðin", - "filesLoaded": "{{count}} skrár hlaðnar", - "fileLoadedOfTotal": "{{count}} skrá hlaðin af {{total}}", - "filesLoadedOfTotal": "{{count}} skrár hlaðnar af {{total}}", + "fileLoadedCount_one": "{{displayCount}} skrá hlaðin", + "fileLoadedCount": "{{displayCount}} skrár hlaðnar", + "fileLoadedCount_other": "{{displayCount}} skrár hlaðnar", + "fileLoadedOfTotalCount_one": "{{displayCount}} skrá hlaðin af {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} skrár hlaðnar af {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} skrár hlaðnar af {{total}}", "filesStillLoading": "Skrár hlaða enn. Dragðu niður til að endurnýja.", "goToOverview": "Fara í yfirlit", "goToOverviewTab": "Fara í yfirlitsflipa" @@ -288,8 +290,9 @@ "resolved": "Leyst", "outdated": "Úrelt", "file": "Skrá", - "oneComment": "1 athugasemd", - "commentCount": "{{count}} athugasemdir", + "comment_one": "1 athugasemd", + "comment": "{{displayCount}} athugasemdir", + "comment_other": "{{displayCount}} athugasemdir", "startedRelative": " · byrjað {{relative}}", "couldNotLoadMore": "Gat ekki hlaðið fleiri athugasemdir.", "retryLoadingMore": "Reyna að hlaða fleiri athugasemdir aftur", @@ -299,8 +302,9 @@ "reactionsTitle": "Viðbrögð", "addReaction": "Bæta við viðbrögðum", "reactionPill": "{{emoji}} viðbrögð, {{count}} {{countLabel}}", - "reactionSingular": "viðbrögð", - "reactionPlural": "viðbrögð", + "reaction_one": "viðbrögð", + "reaction": "viðbrögð", + "reaction_other": "viðbrögð", "commentActions": "Athugasemdaaðgerðir", "reportContent": "Tilkynna efni", "reportUser": "Tilkynna notanda", @@ -452,8 +456,9 @@ "deletePendingMessage": "Þessi athugasemd verður fjarlægð úr úttektarhópnum.", "delete": "Eyða", "summaryOptional": "Samantekt (valfrjáls)", - "pendingCommentSingular": "biðandi athugasemd", - "pendingCommentPlural": "biðandi athugasemdir", + "pendingComment_one": "biðandi athugasemd", + "pendingComment": "biðandi athugasemdir", + "pendingComment_other": "biðandi athugasemdir", "submitCountOfTotal": "Senda {{freshCount}} af {{totalCount}} athugasemdum", "submitReview": "Senda úttekt", "partialPostedMessage": "Sendi {{freshCount}} athugasemd(ir). {{staleCount}} athugasemd(ir) vísa í eldra commit og voru áfram í hópnum þínum." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Opið · Úttekt nauðsynleg", "stateOpen": "Opið", "unknownAuthor": "Óþekktur höfundur", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "skrá", - "filePlural": "skrár" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "skrá", + "file": "skrár", + "file_other": "skrár" }, "pendingComment": { "editOutdatedA11y": "Breyta úreltri biðandi athugasemd á {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Einhver", - "oneTyping": "{{name}} er að skrifa...", - "manyTyping": "{{names}} eru að skrifa..." + "typing_one": "{{name}} er að skrifa...", + "typing": "{{names}} eru að skrifa...", + "typing_other": "{{names}} eru að skrifa..." }, "botStatus": { "online": "Á netinu", @@ -722,12 +730,10 @@ "couldNotLoad": "Tókst ekki að hlaða reikningsupplýsingum", "manageOnWeb": "Sýsla reikninga á vefnum", "commitPlan": "Skuldbinda", - "daysLeft": "{{count}} dagar eftir", "earlybird": "Snemmbúinn", "finalCommitTermEndsOn": "Lokaskildi skuldbindingar þinnar endar {{date}}. Haltu áfram sem Standard á {{price}}, annars lýkur hýsingu.", "freeTrial": "Ókeypis reynslutímabil", "hostingEnds": "Hýsingu lýkur", - "oneDayLeft": "1 dagur eftir", "renews": "Endurnýjast", "standardMonthToMonth": "Standard mánaðarlega", "standardStartsOn": "Standard hefst {{date}} á {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} þarfnast athygli: {{label}}", - "openUnreadOne": "Opna {{name}}, {{count}} ólesin skilaboð", - "openUnreadMany": "Opna {{name}}, {{count}} ólesin skilaboð", + "openUnread_one": "Opna {{name}}, {{displayCount}} ólesin skilaboð", + "openUnread": "Opna {{name}}, {{displayCount}} ólesin skilaboð", + "openUnread_other": "Opna {{name}}, {{displayCount}} ólesin skilaboð", "open": "Opna {{name}}", "openSettings": "Opna stillingar fyrir {{name}}", "fixOnKiloAi": "Laga á kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Virkja sjálfvirk úrbót?", "enableAutoRemediationConfirmMessage": "Security Agent opnar úrbóta-PR sjálfkrafa fyrir gjaldgeng nýtanlegar niðurstöður.", "enable": "Virkja", - "queuedOne": "{{count}} núverandi atvik sett í biðröð fyrir greiningu.", - "queuedMany": "{{count}} núverandi atvik sett í biðröð fyrir greiningu.", + "queued_one": "{{displayCount}} núverandi atvik sett í biðröð fyrir greiningu.", + "queued": "{{displayCount}} núverandi atvik sett í biðröð fyrir greiningu.", + "queued_other": "{{displayCount}} núverandi atvik sett í biðröð fyrir greiningu.", "severityCriticalOnly": "Bara mikilvæg", "severityHighAndAbove": "Há og hærra", "severityMediumAndAbove": "Miðlungs og hærra", @@ -1482,8 +1490,9 @@ "on": "On", "off": "Af", "allRepositories": "Allar geymslur", - "repositorySelected": "{{count}} geymsla valin", - "repositoriesSelected": "{{count}} geymslur valdar", + "repositoriesCount_one": "{{displayCount}} geymsla valin", + "repositoriesCount": "{{displayCount}} geymslur valdar", + "repositoriesCount_other": "{{displayCount}} geymslur valdar", "selectRepositories": "Velja geymslur", "selectRepositoriesSubtitle": "Veldu hvaða geymslur Security Agent fylgist með", "repositories": "Geymslur", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Lotu eytt", "needsInput": "þarfnast inntaks", "fromPlatform": "frá {{platform}}", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dalur", - "dollarOther": "dalir" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dalur", + "dollar": "dalir", + "dollar_other": "dalir" }, "githubInstall": { "couldNotOpenTitle": "Ekki tókst að opna GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Ekki tókst að farga drögunum. Reyndu aftur." }, "partRenderer": { - "updatedFile": "Uppfærði {{count}} skrá", - "updatedFiles": "Uppfærði {{count}} skrár" + "updatedFileCount_one": "Uppfærði {{displayCount}} skrá", + "updatedFileCount": "Uppfærði {{displayCount}} skrár", + "updatedFileCount_other": "Uppfærði {{displayCount}} skrár" }, "toolPatch": { "operationAdded": "Bætt við", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Eldri skilaboð hlaðin", "retryHint": "Reynir aftur að hlaða eldri skilaboð fyrir þessa lotu.", - "omittedOne": "Sumum eldri atriðum úr þessari lotu var ekki hægt að birta.", - "omittedMany": "{{count}} eldri atriði úr þessari lotu var ekki hægt að birta.", + "omitted_one": "Sumum eldri atriðum úr þessari lotu var ekki hægt að birta.", + "omitted": "{{displayCount}} eldri atriði úr þessari lotu var ekki hægt að birta.", + "omitted_other": "{{displayCount}} eldri atriði úr þessari lotu var ekki hægt að birta.", "couldNotLoad": "Ekki tókst að hlaða eldri skilaboð.", "unavailable": "Eldri skilaboð eru ekki tiltæk.", "tooLarge": "Eldri skilaboð eru of stór til að hlaða." @@ -2069,10 +2082,12 @@ "viewTable": "Skoða töflu", "title": "Tafla", "close": "Loka töflu", - "column": "dálkur", - "columns": "dálkar", - "row": "lína", - "rows": "línur", + "columnCount_one": "dálkur", + "columnCount": "dálkar", + "columnCount_other": "dálkar", + "rowCount_one": "lína", + "rowCount": "línur", + "rowCount_other": "línur", "opensFullScreen": "opnar allan skjáinn" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "af {{window}} tákn", "tokens": "tákn", "tokensWithPercentage": "tákn ({{percentage}})", - "stepsCountOne": "{{steps}} skref", - "stepsCountMany": "{{steps}} skref", + "stepsCount_one": "{{steps}} skref", + "stepsCount": "{{steps}} skref", + "stepsCount_other": "{{steps}} skref", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nýtt forritunarverkefni", "explore": "Kanna", "seeAll": "Sjá allt", - "kiloAgents": "Kilo-umboð", - "greetingMorning": "Góðan daginn", - "greetingAfternoon": "Góðan eftirmiðdag", - "greetingEvening": "Gott kvöld" + "kiloAgents": "Kilo-umboð" }, "imageViewer": { "close": "Loka {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Opnar Kilo Pass-stjórnun á vefnum.", "notSubscribed": "Ekki áskrifandi", "overallocated": "Passúthlutanir fara yfir greidd sæti", - "paidSeatOne": "{{count}} greitt sæti", - "paidSeatOther": "{{count}} greidd sæti", + "paidSeat_one": "{{displayCount}} greitt sæti", + "paidSeat": "{{displayCount}} greidd sæti", + "paidSeat_other": "{{displayCount}} greidd sæti", "paymentNeedsAttention": "Greiðslan þarfnast athygli", "paymentPending": "Greiðsla í bið", "processingBlocked": "Vinnsla lokuð", diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index db24ac0326..eecd7db56e 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -305,8 +305,9 @@ }, "typingIndicator": { "someone": "Qualcuno", - "oneTyping": "{{name}} sta scrivendo...", - "manyTyping": "{{names}} stanno scrivendo..." + "typing_one": "{{name}} sta scrivendo...", + "typing": "{{names}} stanno scrivendo...", + "typing_other": "{{names}} stanno scrivendo..." }, "botStatus": { "online": "Online", @@ -336,12 +337,10 @@ "couldNotLoad": "Impossibile caricare le informazioni di fatturazione", "manageOnWeb": "Gestisci la fatturazione sul Web", "commitPlan": "Commit", - "daysLeft": "{{count}} giorni rimanenti", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Il tuo ultimo periodo Commit termina il {{date}}. Continua come Standard a {{price}}, oppure l'hosting termina.", "freeTrial": "Prova gratuita", "hostingEnds": "L'hosting termina", - "oneDayLeft": "1 giorno rimanente", "renews": "Si rinnova", "standardMonthToMonth": "Standard mese per mese", "standardStartsOn": "Standard inizia il {{date}} a {{price}}.", @@ -552,8 +551,9 @@ "needsAttention": "{{name}} richiede attenzione: {{label}}", "open": "Apri {{name}}", "openSettings": "Apri le impostazioni di {{name}}", - "openUnreadMany": "Apri {{name}}, {{count}} messaggi non letti", - "openUnreadOne": "Apri {{name}}, {{count}} messaggio non letto" + "openUnread": "Apri {{name}}, {{displayCount}} messaggi non letti", + "openUnread_other": "Apri {{name}}, {{displayCount}} messaggi non letti", + "openUnread_one": "Apri {{name}}, {{displayCount}} messaggio non letto" }, "list": { "createInstance": "Crea istanza", @@ -1025,8 +1025,9 @@ "includeExistingFindingsRemediationSubtitle": "Mette in coda anche i risultati idonei già analizzati. Le PR duplicate restano soppresse.", "minimumSeverity": "Gravità minima", "permissionNote": "Solo i proprietari dell'organizzazione e i responsabili della fatturazione possono modificare queste impostazioni.", - "queuedMany": "{{count}} risultati esistenti in coda per l'analisi.", - "queuedOne": "{{count}} risultato esistente in coda per l'analisi.", + "queued": "{{displayCount}} risultati esistenti in coda per l'analisi.", + "queued_other": "{{displayCount}} risultati esistenti in coda per l'analisi.", + "queued_one": "{{displayCount}} risultato esistente in coda per l'analisi.", "requireApproval": "Richiedi approvazione prima della remediation automatica", "requireApprovalSubtitle": "La remediation automatica attende la tua approvazione prima di aprire le PR.", "severityAll": "Tutte le gravità", @@ -1256,8 +1257,9 @@ "off": "Disattivato", "on": "Attivato", "repositories": "Repository", - "repositoriesSelected": "{{count}} repository selezionate", - "repositorySelected": "{{count}} repository selezionata", + "repositoriesCount": "{{displayCount}} repository selezionate", + "repositoriesCount_other": "{{displayCount}} repository selezionate", + "repositoriesCount_one": "{{displayCount}} repository selezionata", "securityAgent": "Security Agent", "selectRepositories": "Seleziona repository", "selectRepositoriesSubtitle": "Scegli quali repository monitora Security Agent", @@ -1334,10 +1336,12 @@ "sessionDeleted": "Sessione eliminata", "needsInput": "richiede input", "fromPlatform": "da {{platform}}", - "centOne": "centesimo", - "centOther": "centesimi", - "dollarOne": "dollaro", - "dollarOther": "dollari" + "cent_one": "centesimo", + "cent": "centesimi", + "cent_other": "centesimi", + "dollar_one": "dollaro", + "dollar": "dollari", + "dollar_other": "dollari" }, "githubInstall": { "couldNotOpenMessage": "Impossibile avviare la configurazione della GitHub App. Riprova.", @@ -1431,8 +1435,9 @@ "keepEditing": "Continua a modificare" }, "partRenderer": { - "updatedFile": "Aggiornato {{count}} file", - "updatedFiles": "Aggiornati {{count}} file" + "updatedFileCount_one": "Aggiornato {{displayCount}} file", + "updatedFileCount": "Aggiornati {{displayCount}} file", + "updatedFileCount_other": "Aggiornati {{displayCount}} file" }, "toolPatch": { "operationAdded": "Aggiunto", @@ -1673,8 +1678,9 @@ "olderMessages": { "arrived": "Messaggi precedenti caricati", "retryHint": "Riprova a caricare i messaggi più vecchi di questa sessione.", - "omittedOne": "Un elemento precedente di questa sessione non può essere visualizzato.", - "omittedMany": "{{count}} elementi precedenti di questa sessione non possono essere visualizzati.", + "omitted_one": "Un elemento precedente di questa sessione non può essere visualizzato.", + "omitted": "{{displayCount}} elementi precedenti di questa sessione non possono essere visualizzati.", + "omitted_other": "{{displayCount}} elementi precedenti di questa sessione non possono essere visualizzati.", "couldNotLoad": "Impossibile caricare i messaggi precedenti.", "unavailable": "I messaggi precedenti non sono disponibili.", "tooLarge": "I messaggi precedenti sono troppo grandi da caricare." @@ -1683,10 +1689,12 @@ "viewTable": "Visualizza tabella", "title": "Tabella", "close": "Chiudi tabella", - "column": "colonna", - "columns": "colonne", - "row": "riga", - "rows": "righe", + "columnCount_one": "colonna", + "columnCount": "colonne", + "columnCount_other": "colonne", + "rowCount_one": "riga", + "rowCount": "righe", + "rowCount_other": "righe", "opensFullScreen": "apre a schermo intero" }, "sessionFilter": { @@ -1839,8 +1847,9 @@ "ofWindowTokens": "di {{window}} token", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} passo", - "stepsCountMany": "{{steps}} passi", + "stepsCount_one": "{{steps}} passo", + "stepsCount": "{{steps}} passi", + "stepsCount_other": "{{steps}} passi", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Nuova attività di codifica", "explore": "Esplora", "seeAll": "Vedi tutto", - "kiloAgents": "Agenti Kilo", - "greetingMorning": "Buongiorno", - "greetingAfternoon": "Buon pomeriggio", - "greetingEvening": "Buonasera" + "kiloAgents": "Agenti Kilo" }, "imageViewer": { "close": "Chiudi {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Chiudi reazioni", "collapseThread": "Comprimi thread", "commentActions": "Azioni commento", - "commentCount": "{{count}} commenti", + "comment": "{{displayCount}} commenti", + "comment_other": "{{displayCount}} commenti", "couldNotLoad": "Impossibile caricare la discussione", "couldNotLoadMore": "Impossibile caricare altri commenti.", "couldNotReply": "Impossibile rispondere.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} silenziato", "noDiscussion": "Ancora nessuna discussione", "noDiscussionDescription": "Nessun thread di revisione o commento di conversazione su questa pull request.", - "oneComment": "1 commento", + "comment_one": "1 commento", "outdated": "Obsoleto", "quotedDiffSnippet": "Frammento di diff citato", "reactionPill": "{{emoji}} reazione, {{count}} {{countLabel}}", - "reactionPlural": "reazioni", - "reactionSingular": "reazione", + "reaction": "reazioni", + "reaction_other": "reazioni", + "reaction_one": "reazione", "reactionsTitle": "Reazioni", "reply": "Rispondi", "replyBadRequest": "Questa risposta non può essere pubblicata. Il thread potrebbe essere cambiato.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Espandi altre {{count}} righe ({{start}}–{{end}})", "failedToLoadContext": "Impossibile caricare il contesto — tocca per riprovare", "failedToLoadMoreFiles": "Impossibile caricare altri file — tocca per riprovare", - "fileLoaded": "{{count}} file caricato", - "fileLoadedOfTotal": "{{count}} file caricato di {{total}}", - "filesLoaded": "{{count}} file caricati", - "filesLoadedOfTotal": "{{count}} file caricati di {{total}}", + "fileLoadedCount_one": "{{displayCount}} file caricato", + "fileLoadedOfTotalCount_one": "{{displayCount}} file caricato di {{total}}", + "fileLoadedCount": "{{displayCount}} file caricati", + "fileLoadedCount_other": "{{displayCount}} file caricati", + "fileLoadedOfTotalCount": "{{displayCount}} file caricati di {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} file caricati di {{total}}", "filesStillLoading": "I file sono ancora in caricamento. Trascina per aggiornare.", "goToOverview": "Vai a Panoramica", "goToOverviewTab": "Vai alla scheda Panoramica", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Nessun file modificato", "noFilesChangedDescription": "Questa pull request non ha modifiche ai file.", "overview": { - "commitPlural": "commit", - "commitSingular": "commit", - "filePlural": "file", - "fileSingular": "file", + "commit": "commit", + "commit_other": "commit", + "commit_one": "commit", + "file": "file", + "file_other": "file", + "file_one": "file", "stateClosed": "Chiusa", "stateDraft": "Bozza", "stateMerged": "Unita", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Questo commento verrà rimosso dalla coda di revisione.", "deletePendingTitle": "Eliminare il commento in sospeso?", "loadFailedTitle": "Impossibile caricare l'invio della revisione", - "pendingCommentPlural": "commenti in sospeso", - "pendingCommentSingular": "commento in sospeso", + "pendingComment": "commenti in sospeso", + "pendingComment_other": "commenti in sospeso", + "pendingComment_one": "commento in sospeso", "summaryOptional": "Riepilogo (facoltativo)", "title": "Invia revisione", "partialPostedMessage": "Pubblicati {{freshCount}} commenti. {{staleCount}} commenti fanno riferimento a un commit precedente e sono rimasti in coda.", @@ -2632,8 +2645,9 @@ "manageHint": "Apre la gestione di Kilo Pass sul web.", "notSubscribed": "Non abbonato", "overallocated": "Le assegnazioni del pass superano i posti pagati", - "paidSeatOne": "{{count}} posto pagato", - "paidSeatOther": "{{count}} posti pagati", + "paidSeat_one": "{{displayCount}} posto pagato", + "paidSeat": "{{displayCount}} posti pagati", + "paidSeat_other": "{{displayCount}} posti pagati", "paymentNeedsAttention": "Il pagamento richiede attenzione", "paymentPending": "Pagamento in sospeso", "processingBlocked": "Elaborazione bloccata", diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 342d0151f7..d147c69585 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "誰か", - "oneTyping": "{{name}}が入力しています...", - "manyTyping": "{{names}}が入力しています..." + "typing_one": "{{name}}が入力しています...", + "typing": "{{names}}が入力しています...", + "typing_other": "{{names}}が入力しています..." }, "botStatus": { "online": "オンライン", @@ -350,12 +351,10 @@ "couldNotLoad": "請求情報を読み込めませんでした", "manageOnWeb": "Webで請求を管理", "commitPlan": "Commit", - "daysLeft": "残り{{count}}日", "earlybird": "Earlybird", "finalCommitTermEndsOn": "最後のCommit期間は{{date}}に終了します。{{price}}でStandardとして続行するか、ホスティングが終了します。", "freeTrial": "無料トライアル", "hostingEnds": "ホスティング終了", - "oneDayLeft": "残り1日", "renews": "更新", "standardMonthToMonth": "Standard月額", "standardStartsOn": "Standardは{{date}}に{{price}}で開始します。", @@ -566,8 +565,9 @@ "needsAttention": "{{name}}の対応が必要です: {{label}}", "open": "{{name}}を開く", "openSettings": "{{name}}の設定を開く", - "openUnreadMany": "{{name}}を開く、未読メッセージ{{count}}件", - "openUnreadOne": "{{name}}を開く、未読メッセージ{{count}}件" + "openUnread": "{{name}}を開く、未読メッセージ{{displayCount}}件", + "openUnread_other": "{{name}}を開く、未読メッセージ{{displayCount}}件", + "openUnread_one": "{{name}}を開く、未読メッセージ{{displayCount}}件" }, "list": { "createInstance": "インスタンスを作成", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "分析済みの対象所見もキューに入れます。重複するPRは抑制されたままです。", "minimumSeverity": "最低重大度", "permissionNote": "これらの設定を変更できるのは、組織のオーナーと請求管理者のみです。", - "queuedMany": "{{count}}件の既存の所見が分析待ちです。", - "queuedOne": "{{count}}件の既存の所見が分析待ちです。", + "queued": "{{displayCount}}件の既存の所見が分析待ちです。", + "queued_other": "{{displayCount}}件の既存の所見が分析待ちです。", + "queued_one": "{{displayCount}}件の既存の所見が分析待ちです。", "requireApproval": "自動修復の前に承認を要求", "requireApprovalSubtitle": "自動修復はPRを開く前に承認を待ちます。", "severityAll": "すべての重大度", @@ -1270,8 +1271,9 @@ "off": "オフ", "on": "オン", "repositories": "リポジトリ", - "repositoriesSelected": "{{count}}件のリポジトリを選択中", - "repositorySelected": "{{count}}件のリポジトリを選択中", + "repositoriesCount": "{{displayCount}}件のリポジトリを選択中", + "repositoriesCount_other": "{{displayCount}}件のリポジトリを選択中", + "repositoriesCount_one": "{{displayCount}}件のリポジトリを選択中", "securityAgent": "Security Agent", "selectRepositories": "リポジトリを選択", "selectRepositoriesSubtitle": "Security Agentが監視するリポジトリを選択します", @@ -1348,10 +1350,12 @@ "sessionDeleted": "セッションを削除しました", "needsInput": "入力が必要", "fromPlatform": "{{platform}}から", - "centOne": "セント", - "centOther": "セント", - "dollarOne": "ドル", - "dollarOther": "ドル" + "cent_one": "セント", + "cent": "セント", + "cent_other": "セント", + "dollar_one": "ドル", + "dollar": "ドル", + "dollar_other": "ドル" }, "githubInstall": { "couldNotOpenMessage": "GitHub Appのセットアップを開始できませんでした。もう一度お試しください。", @@ -1445,8 +1449,9 @@ "keepEditing": "編集を続ける" }, "partRenderer": { - "updatedFile": "{{count}}件のファイルを更新しました", - "updatedFiles": "{{count}}件のファイルを更新しました" + "updatedFileCount_one": "{{displayCount}}件のファイルを更新しました", + "updatedFileCount": "{{displayCount}}件のファイルを更新しました", + "updatedFileCount_other": "{{displayCount}}件のファイルを更新しました" }, "toolPatch": { "operationAdded": "追加", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "以前のメッセージを読み込みました", "retryHint": "このセッションの古いメッセージの読み込みを再試行します。", - "omittedOne": "このセッションの以前の項目を1件表示できませんでした。", - "omittedMany": "このセッションの以前の項目{{count}}件を表示できませんでした。", + "omitted_one": "このセッションの以前の項目を1件表示できませんでした。", + "omitted": "このセッションの以前の項目{{displayCount}}件を表示できませんでした。", + "omitted_other": "このセッションの以前の項目{{displayCount}}件を表示できませんでした。", "couldNotLoad": "以前のメッセージを読み込めませんでした。", "unavailable": "以前のメッセージは利用できません。", "tooLarge": "以前のメッセージが大きすぎて読み込めません。" @@ -1697,10 +1703,12 @@ "viewTable": "テーブルを表示", "title": "テーブル", "close": "テーブルを閉じる", - "column": "列", - "columns": "列", - "row": "行", - "rows": "行", + "columnCount_one": "列", + "columnCount": "列", + "columnCount_other": "列", + "rowCount_one": "行", + "rowCount": "行", + "rowCount_other": "行", "opensFullScreen": "全画面で開きます" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "{{window}}トークン中", "tokens": "トークン", "tokensWithPercentage": "トークン({{percentage}})", - "stepsCountOne": "{{steps}}ステップ", - "stepsCountMany": "{{steps}}ステップ", + "stepsCount_one": "{{steps}}ステップ", + "stepsCount": "{{steps}}ステップ", + "stepsCount_other": "{{steps}}ステップ", "modelAccessibilityLabel": "{{name}}、{{provider}}、{{steps}}、{{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "新しいコーディングタスク", "explore": "探索", "seeAll": "すべて表示", - "kiloAgents": "Kiloエージェント", - "greetingMorning": "おはようございます", - "greetingAfternoon": "こんにちは", - "greetingEvening": "こんばんは" + "kiloAgents": "Kiloエージェント" }, "imageViewer": { "close": "{{filename}}を閉じる", @@ -2205,7 +2211,8 @@ "closeReactions": "リアクションを閉じる", "collapseThread": "スレッドを折りたたむ", "commentActions": "コメントの操作", - "commentCount": "{{count}}件のコメント", + "comment": "{{displayCount}}件のコメント", + "comment_other": "{{displayCount}}件のコメント", "couldNotLoad": "ディスカッションを読み込めませんでした", "couldNotLoadMore": "これ以上コメントを読み込めませんでした。", "couldNotReply": "返信できませんでした。", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}}をミュートしました", "noDiscussion": "まだディスカッションはありません", "noDiscussionDescription": "このプルリクエストにはレビュースレッドや会話コメントがありません。", - "oneComment": "1件のコメント", + "comment_one": "1件のコメント", "outdated": "古い", "quotedDiffSnippet": "引用されたdiffスニペット", "reactionPill": "{{emoji}}のリアクション、{{count}}{{countLabel}}", - "reactionPlural": "件", - "reactionSingular": "件", + "reaction": "件", + "reaction_other": "件", + "reaction_one": "件", "reactionsTitle": "リアクション", "reply": "返信", "replyBadRequest": "この返信は投稿できません。スレッドが変更された可能性があります。", @@ -2350,10 +2358,12 @@ "expandMoreLines": "さらに{{count}}行を展開({{start}}–{{end}})", "failedToLoadContext": "コンテキストを読み込めませんでした — タップして再試行", "failedToLoadMoreFiles": "さらにファイルを読み込めませんでした — タップして再試行", - "fileLoaded": "{{count}}件のファイルを読み込みました", - "fileLoadedOfTotal": "{{total}}件中{{count}}件のファイルを読み込みました", - "filesLoaded": "{{count}}件のファイルを読み込みました", - "filesLoadedOfTotal": "{{total}}件中{{count}}件のファイルを読み込みました", + "fileLoadedCount_one": "{{displayCount}}件のファイルを読み込みました", + "fileLoadedOfTotalCount_one": "{{total}}件中{{displayCount}}件のファイルを読み込みました", + "fileLoadedCount": "{{displayCount}}件のファイルを読み込みました", + "fileLoadedCount_other": "{{displayCount}}件のファイルを読み込みました", + "fileLoadedOfTotalCount": "{{total}}件中{{displayCount}}件のファイルを読み込みました", + "fileLoadedOfTotalCount_other": "{{total}}件中{{displayCount}}件のファイルを読み込みました", "filesStillLoading": "ファイルはまだ読み込み中です。引っ張って更新してください。", "goToOverview": "概要へ移動", "goToOverviewTab": "概要タブへ移動", @@ -2429,10 +2439,12 @@ "noFilesChanged": "変更されたファイルはありません", "noFilesChangedDescription": "このプルリクエストにはファイルの変更がありません。", "overview": { - "commitPlural": "コミット", - "commitSingular": "コミット", - "filePlural": "ファイル", - "fileSingular": "ファイル", + "commit": "コミット", + "commit_other": "コミット", + "commit_one": "コミット", + "file": "ファイル", + "file_other": "ファイル", + "file_one": "ファイル", "stateClosed": "クローズ済み", "stateDraft": "下書き", "stateMerged": "マージ済み", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "このコメントはレビューキューから削除されます。", "deletePendingTitle": "保留中のコメントを削除しますか?", "loadFailedTitle": "レビュー送信を読み込めませんでした", - "pendingCommentPlural": "保留中のコメント", - "pendingCommentSingular": "保留中のコメント", + "pendingComment": "保留中のコメント", + "pendingComment_other": "保留中のコメント", + "pendingComment_one": "保留中のコメント", "summaryOptional": "概要(任意)", "title": "レビューを送信", "partialPostedMessage": "{{freshCount}}件のコメントを投稿しました。{{staleCount}}件のコメントは古いコミットを指しているため、キューに残りました。", @@ -2632,8 +2645,9 @@ "manageHint": "WebでKilo Passの管理を開きます。", "notSubscribed": "未登録", "overallocated": "パスの割り当てが有料シート数を超えています", - "paidSeatOne": "{{count}}有料シート", - "paidSeatOther": "{{count}}有料シート", + "paidSeat_one": "{{displayCount}}有料シート", + "paidSeat": "{{displayCount}}有料シート", + "paidSeat_other": "{{displayCount}}有料シート", "paymentNeedsAttention": "お支払いに対応が必要です", "paymentPending": "お支払い保留中", "processingBlocked": "処理がブロックされています", diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index c14e2837f2..0a027d5625 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} {{total}}-დან ფაილი ჩატვირთულია", "loadAllFiles": "ყველა ფაილის ჩატვირთვა", "loadAll": "ყველაფრის ჩატვირთვა", - "fileLoaded": "{{count}} ფაილი ჩატვირთულია", - "filesLoaded": "{{count}} ფაილი ჩატვირთულია", - "fileLoadedOfTotal": "{{count}} {{total}}-დან ფაილი ჩატვირთულია", - "filesLoadedOfTotal": "{{count}} {{total}}-დან ფაილი ჩატვირთულია", + "fileLoadedCount_one": "{{displayCount}} ფაილი ჩატვირთულია", + "fileLoadedCount": "{{displayCount}} ფაილი ჩატვირთულია", + "fileLoadedCount_other": "{{displayCount}} ფაილი ჩატვირთულია", + "fileLoadedOfTotalCount_one": "{{displayCount}} {{total}}-დან ფაილი ჩატვირთულია", + "fileLoadedOfTotalCount": "{{displayCount}} {{total}}-დან ფაილი ჩატვირთულია", + "fileLoadedOfTotalCount_other": "{{displayCount}} {{total}}-დან ფაილი ჩატვირთულია", "filesStillLoading": "ფაილები ჯერ კიდევ იტვირთება. ჩამოწიეთ გასანახლებლად.", "goToOverview": "გადადით მიმოხილვაზე", "goToOverviewTab": "გადადით მიმოხილვის ჩანართზე" @@ -288,8 +290,9 @@ "resolved": "გადაწყვეტილია", "outdated": "მოძველებულია", "file": "ფაილი", - "oneComment": "1 კომენტარი", - "commentCount": "{{count}} კომენტარი", + "comment_one": "1 კომენტარი", + "comment": "{{displayCount}} კომენტარი", + "comment_other": "{{displayCount}} კომენტარი", "startedRelative": " · დაიწყო {{relative}}", "couldNotLoadMore": "მეტი კომენტარის ჩატვირთვა ვერ მოხერხდა.", "retryLoadingMore": "მეტი კომენტარის ჩატვირთვის ხელახლა ცდა", @@ -299,8 +302,9 @@ "reactionsTitle": "რეაქციები", "addReaction": "რეაქციის დამატება", "reactionPill": "{{emoji}} რეაქცია, {{count}} {{countLabel}}", - "reactionSingular": "რეაქცია", - "reactionPlural": "რეაქცია", + "reaction_one": "რეაქცია", + "reaction": "რეაქცია", + "reaction_other": "რეაქცია", "commentActions": "კომენტარის მოქმედებები", "reportContent": "კონტენტის შეტყობინება", "reportUser": "მომხმარებლის შეტყობინება", @@ -452,8 +456,9 @@ "deletePendingMessage": "ეს კომენტარი წაიშლება რეცენზიის რიგიდან.", "delete": "წაშლა", "summaryOptional": "შეჯამება (არჩევითი)", - "pendingCommentSingular": "მოლოდინის კომენტარი", - "pendingCommentPlural": "მოლოდინის კომენტარი", + "pendingComment_one": "მოლოდინის კომენტარი", + "pendingComment": "მოლოდინის კომენტარი", + "pendingComment_other": "მოლოდინის კომენტარი", "submitCountOfTotal": "{{freshCount}} {{totalCount}}-დან კომენტარის გაგზავნა", "submitReview": "რეცენზიის გაგზავნა", "partialPostedMessage": "გამოქვეყნდა {{freshCount}} კომენტარი. {{staleCount}} კომენტარი მიუთითებს ძველ commit-ზე და დარჩა თქვენს რიგში." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ღია · რეცენზია საჭიროა", "stateOpen": "ღია", "unknownAuthor": "უცნობი ავტორი", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "ფაილი", - "filePlural": "ფაილი" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "ფაილი", + "file": "ფაილი", + "file_other": "ფაილი" }, "pendingComment": { "editOutdatedA11y": "მოძველებული მოლოდინის კომენტარის რედაქტირება {{location}}-ზე", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "ვიღაც", - "oneTyping": "{{name}} წერს...", - "manyTyping": "{{names}} წერენ..." + "typing_one": "{{name}} წერს...", + "typing": "{{names}} წერენ...", + "typing_other": "{{names}} წერენ..." }, "botStatus": { "online": "ონლაინი", @@ -722,12 +730,10 @@ "couldNotLoad": "გადახდის ინფორმაციის ჩატვირთვა ვერ მოხერხდა", "manageOnWeb": "გადახდის მართვა ვებზე", "commitPlan": "ვალდებულება", - "daysLeft": "{{count}} დღე დარჩა", "earlybird": "ადრეული ფრინველი", "finalCommitTermEndsOn": "თქვენი საბოლოო ვალდებულების ვადა მთავრდება {{date}}. გაგრძელდება სტანდარტულად {{price}} ფასად, ან ჰოსტინგი დასრულდება.", "freeTrial": "უფასო საცდელი პერიოდი", "hostingEnds": "ჰოსტინგი მთავრდება", - "oneDayLeft": "1 დღე დარჩა", "renews": "განახლდება", "standardMonthToMonth": "სტანდარტული თვე-თვეზე", "standardStartsOn": "სტანდარტული იწყება {{date}} {{price}} ფასად.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}}-ს სჭირდება ყურადღება: {{label}}", - "openUnreadOne": "{{name}}-ის გახსნა, {{count}} წაუკითხავი შეტყობინება", - "openUnreadMany": "{{name}}-ის გახსნა, {{count}} წაუკითხავი შეტყობინება", + "openUnread_one": "{{name}}-ის გახსნა, {{displayCount}} წაუკითხავი შეტყობინება", + "openUnread": "{{name}}-ის გახსნა, {{displayCount}} წაუკითხავი შეტყობინება", + "openUnread_other": "{{name}}-ის გახსნა, {{displayCount}} წაუკითხავი შეტყობინება", "open": "{{name}}-ის გახსნა", "openSettings": "{{name}}-ის პარამეტრების გახსნა", "fixOnKiloAi": "შესწორება kilo.ai-ზე: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ავტო-შესწორება ჩავრთოთ?", "enableAutoRemediationConfirmMessage": "უსაფრთხოების აგენტი ავტომატურად გახსნის შესწორების PR-ებს კვალიფიციური ექსპლუატირებადი დასკვნებისთვის.", "enable": "ჩართვა", - "queuedOne": "{{count}} არსებული მონაპოვარი შედგა ანალიზის რიგში.", - "queuedMany": "{{count}} არსებული მონაპოვარი შედგა ანალიზის რიგში.", + "queued_one": "{{displayCount}} არსებული მონაპოვარი შედგა ანალიზის რიგში.", + "queued": "{{displayCount}} არსებული მონაპოვარი შედგა ანალიზის რიგში.", + "queued_other": "{{displayCount}} არსებული მონაპოვარი შედგა ანალიზის რიგში.", "severityCriticalOnly": "მხოლოდ კრიტიკული", "severityHighAndAbove": "მაღალი და ზემოთ", "severityMediumAndAbove": "საშუალო და ზემოთ", @@ -1482,8 +1490,9 @@ "on": "ჩართულია", "off": "გამორთულია", "allRepositories": "ყველა რეპოზიტორი", - "repositorySelected": "არჩეულია {{count}} რეპოზიტორი", - "repositoriesSelected": "არჩეულია {{count}} რეპოზიტორი", + "repositoriesCount_one": "არჩეულია {{displayCount}} რეპოზიტორი", + "repositoriesCount": "არჩეულია {{displayCount}} რეპოზიტორი", + "repositoriesCount_other": "არჩეულია {{displayCount}} რეპოზიტორი", "selectRepositories": "რეპოზიტორების არჩევა", "selectRepositoriesSubtitle": "აირჩიეთ რომელ რეპოზიტორებს აკონტროლებს Security Agent", "repositories": "რეპოზიტორები", @@ -1720,10 +1729,12 @@ "sessionDeleted": "სესია წაიშალა", "needsInput": "მოითხოვს შეყვანას", "fromPlatform": "{{platform}}-დან", - "centOne": "ცენტი", - "centOther": "ცენტი", - "dollarOne": "დოლარი", - "dollarOther": "დოლარი" + "cent_one": "ცენტი", + "cent": "ცენტი", + "cent_other": "ცენტი", + "dollar_one": "დოლარი", + "dollar": "დოლარი", + "dollar_other": "დოლარი" }, "githubInstall": { "couldNotOpenTitle": "GitHub-ის გახსნა ვერ მოხერხდა", @@ -1817,8 +1828,9 @@ "discardFailed": "დრაფტის გაუქმება ვერ მოხერხდა. გთხოვთ, სცადეთ ხელახლა." }, "partRenderer": { - "updatedFile": "განახლდა {{count}} ფაილი", - "updatedFiles": "განახლდა {{count}} ფაილი" + "updatedFileCount_one": "განახლდა {{displayCount}} ფაილი", + "updatedFileCount": "განახლდა {{displayCount}} ფაილი", + "updatedFileCount_other": "განახლდა {{displayCount}} ფაილი" }, "toolPatch": { "operationAdded": "დამატებულია", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "ადრინდელი შეტყობინებები ჩაიტვირთა", "retryHint": "ხელახლა ცდის ადრინდელი შეტყობინებების ჩატვირთვას ამ სესიისთვის.", - "omittedOne": "ამ სესიის ზოგიერთი ადრინდელი ელემენტის ჩვენება ვერ მოხერხდა.", - "omittedMany": "ამ სესიის {{count}} ადრინდელი ელემენტის ჩვენება ვერ მოხერხდა.", + "omitted_one": "ამ სესიის ზოგიერთი ადრინდელი ელემენტის ჩვენება ვერ მოხერხდა.", + "omitted": "ამ სესიის {{displayCount}} ადრინდელი ელემენტის ჩვენება ვერ მოხერხდა.", + "omitted_other": "ამ სესიის {{displayCount}} ადრინდელი ელემენტის ჩვენება ვერ მოხერხდა.", "couldNotLoad": "ადრინდელი შეტყობინებების ჩატვირთვა ვერ მოხერხდა.", "unavailable": "ადრინდელი შეტყობინებები ხელმისაწვდომი არ არის.", "tooLarge": "ადრინდელი შეტყობინებები ძალიან დიდია ჩასატვირთად." @@ -2069,10 +2082,12 @@ "viewTable": "ცხრილის ნახვა", "title": "ცხრილი", "close": "ცხრილის დახურვა", - "column": "სვეტი", - "columns": "სვეტი", - "row": "სტრიქონი", - "rows": "სტრიქონი", + "columnCount_one": "სვეტი", + "columnCount": "სვეტი", + "columnCount_other": "სვეტი", + "rowCount_one": "სტრიქონი", + "rowCount": "სტრიქონი", + "rowCount_other": "სტრიქონი", "opensFullScreen": "იხსნება სრულ ეკრანზე" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} ტოკენიდან", "tokens": "ტოკენი", "tokensWithPercentage": "ტოკენი ({{percentage}})", - "stepsCountOne": "{{steps}} ნაბიჯი", - "stepsCountMany": "{{steps}} ნაბიჯი", + "stepsCount_one": "{{steps}} ნაბიჯი", + "stepsCount": "{{steps}} ნაბიჯი", + "stepsCount_other": "{{steps}} ნაბიჯი", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "ახალი კოდირების ამოცანა", "explore": "გამოკვლევა", "seeAll": "ყველას ნახვა", - "kiloAgents": "Kilo აგენტები", - "greetingMorning": "დილა მშვიდობისა", - "greetingAfternoon": "შუადღე მშვიდობისა", - "greetingEvening": "საღამო მშვიდობისა" + "kiloAgents": "Kilo აგენტები" }, "imageViewer": { "close": "{{filename}} დახურვა", @@ -2645,8 +2658,9 @@ "manageHint": "ინტერნეტში Kilo Pass მართვას ხსნის.", "notSubscribed": "გამოწერილი არ არის", "overallocated": "Pass დავალებები აჭარბებს გადახდილ ადგილებს", - "paidSeatOne": "{{count}} გადახდილი ადგილი", - "paidSeatOther": "{{count}} გადახდილი ადგილი", + "paidSeat_one": "{{displayCount}} გადახდილი ადგილი", + "paidSeat": "{{displayCount}} გადახდილი ადგილი", + "paidSeat_other": "{{displayCount}} გადახდილი ადგილი", "paymentNeedsAttention": "გადახდას ყურადღება სჭირდება", "paymentPending": "გადახდა მოლოდინშია", "processingBlocked": "დამუშავება დაბლოკილია", diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index c362404a9d..9f864a876f 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}}-ден {{loaded}} файл жүктелді", "loadAllFiles": "Барлық файлдарды жүктеу", "loadAll": "Барлығын жүктеу", - "fileLoaded": "{{count}} файл жүктелді", - "filesLoaded": "{{count}} файл жүктелді", - "fileLoadedOfTotal": "{{total}}-ден {{count}} файл жүктелді", - "filesLoadedOfTotal": "{{total}}-ден {{count}} файл жүктелді", + "fileLoadedCount_one": "{{displayCount}} файл жүктелді", + "fileLoadedCount": "{{displayCount}} файл жүктелді", + "fileLoadedCount_other": "{{displayCount}} файл жүктелді", + "fileLoadedOfTotalCount_one": "{{total}}-ден {{displayCount}} файл жүктелді", + "fileLoadedOfTotalCount": "{{total}}-ден {{displayCount}} файл жүктелді", + "fileLoadedOfTotalCount_other": "{{total}}-ден {{displayCount}} файл жүктелді", "filesStillLoading": "Файлдар әлі жүктелуде. Жаңарту үшін тартыңыз.", "goToOverview": "Шолуға өту", "goToOverviewTab": "Шолу қойындысына өту" @@ -288,8 +290,9 @@ "resolved": "Шешілді", "outdated": "Ескірген", "file": "Файл", - "oneComment": "1 пікір", - "commentCount": "{{count}} пікір", + "comment_one": "1 пікір", + "comment": "{{displayCount}} пікір", + "comment_other": "{{displayCount}} пікір", "startedRelative": " · {{relative}} басталды", "couldNotLoadMore": "Қосымша пікірлерді жүктеу мүмкін болмады.", "retryLoadingMore": "Қосымша пікірлерді жүктеуді қайталау", @@ -299,8 +302,9 @@ "reactionsTitle": "Реакциялар", "addReaction": "Реакция қосу", "reactionPill": "{{emoji}} реакция, {{count}} {{countLabel}}", - "reactionSingular": "реакция", - "reactionPlural": "реакциялар", + "reaction_one": "реакция", + "reaction": "реакциялар", + "reaction_other": "реакциялар", "commentActions": "Пікір әрекеттері", "reportContent": "Мазмұнды шағымдау", "reportUser": "Пайдаланушыны шағымдау", @@ -452,8 +456,9 @@ "deletePendingMessage": "Бұл пікір рецензия кезегінен жойылады.", "delete": "Жою", "summaryOptional": "Қорытынды (міндетті емес)", - "pendingCommentSingular": "күтілудегі пікір", - "pendingCommentPlural": "күтілудегі пікірлер", + "pendingComment_one": "күтілудегі пікір", + "pendingComment": "күтілудегі пікірлер", + "pendingComment_other": "күтілудегі пікірлер", "submitCountOfTotal": "{{totalCount}} пікірдің {{freshCount}} жіберу", "submitReview": "Рецензияны жіберу", "partialPostedMessage": "{{freshCount}} пікір жарияланды. {{staleCount}} пікір ескі commit-ке қатысты және кезегіңізде қалды." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Ашық · Рецензия қажет", "stateOpen": "Ашық", "unknownAuthor": "Белгісіз автор", - "commitSingular": "commit", - "commitPlural": "commitтер", - "fileSingular": "файл", - "filePlural": "файлдар" + "commit_one": "commit", + "commit": "commitтер", + "commit_other": "commitтер", + "file_one": "файл", + "file": "файлдар", + "file_other": "файлдар" }, "pendingComment": { "editOutdatedA11y": "{{location}} бойынша ескірген күтілудегі пікірді өңдеу", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Біреу", - "oneTyping": "{{name}} теріп жатыр...", - "manyTyping": "{{names}} теріп жатыр..." + "typing_one": "{{name}} теріп жатыр...", + "typing": "{{names}} теріп жатыр...", + "typing_other": "{{names}} теріп жатыр..." }, "botStatus": { "online": "Желіде", @@ -722,12 +730,10 @@ "couldNotLoad": "Төлем ақпаратын жүктеу мүмкін болмады", "manageOnWeb": "Вебте төлемді басқару", "commitPlan": "Commit", - "daysLeft": "{{count}} күн қалды", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Соңғы Commit мерзімі {{date}} аяқталады. {{price}} бағасымен Standard жоспарына ауысыңыз, әйтпесе хостинг аяқталады.", "freeTrial": "Тегін сынақ", "hostingEnds": "Хостинг аяқталады", - "oneDayLeft": "1 күн қалды", "renews": "Жаңарады", "standardMonthToMonth": "Standard ай сайын", "standardStartsOn": "Standard {{date}} күні {{price}} бағасымен басталады.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} назар қажет: {{label}}", - "openUnreadOne": "{{name}} ашу, {{count}} оқылмаған хабарлама", - "openUnreadMany": "{{name}} ашу, {{count}} оқылмаған хабарлама", + "openUnread_one": "{{name}} ашу, {{displayCount}} оқылмаған хабарлама", + "openUnread": "{{name}} ашу, {{displayCount}} оқылмаған хабарлама", + "openUnread_other": "{{name}} ашу, {{displayCount}} оқылмаған хабарлама", "open": "{{name}} ашу", "openSettings": "{{name}} баптауларын ашу", "fixOnKiloAi": "kilo.ai сайтында түзету: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Автотүзетуді қосу керек пе?", "enableAutoRemediationConfirmMessage": "Security Agent тиісті пайдалануға болатын табылымдар үшін түзету PR-терін автоматты ашады.", "enable": "Қосу", - "queuedOne": "{{count}} бар табылған дерек талдауға кезекке қойылды.", - "queuedMany": "{{count}} бар табылған дерек талдауға кезекке қойылды.", + "queued_one": "{{displayCount}} бар табылған дерек талдауға кезекке қойылды.", + "queued": "{{displayCount}} бар табылған дерек талдауға кезекке қойылды.", + "queued_other": "{{displayCount}} бар табылған дерек талдауға кезекке қойылды.", "severityCriticalOnly": "Тек критикалық", "severityHighAndAbove": "Жоғары және одан жоғары", "severityMediumAndAbove": "Орташа және одан жоғары", @@ -1482,8 +1490,9 @@ "on": "Қосулы", "off": "Өшірулі", "allRepositories": "Барлық репозиторийлер", - "repositorySelected": "{{count}} репозиторий таңдалды", - "repositoriesSelected": "{{count}} репозиторий таңдалды", + "repositoriesCount_one": "{{displayCount}} репозиторий таңдалды", + "repositoriesCount": "{{displayCount}} репозиторий таңдалды", + "repositoriesCount_other": "{{displayCount}} репозиторий таңдалды", "selectRepositories": "Репозиторийлерді таңдау", "selectRepositoriesSubtitle": "Security Agent қай репозиторийлерді бақылайтынын таңдаңыз", "repositories": "Репозиторийлер", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Сессия жойылды", "needsInput": "енгізу қажет", "fromPlatform": "{{platform}} платформасынан", - "centOne": "цент", - "centOther": "цент", - "dollarOne": "доллар", - "dollarOther": "доллар" + "cent_one": "цент", + "cent": "цент", + "cent_other": "цент", + "dollar_one": "доллар", + "dollar": "доллар", + "dollar_other": "доллар" }, "githubInstall": { "couldNotOpenTitle": "GitHub ашу мүмкін болмады", @@ -1817,8 +1828,9 @@ "discardFailed": "Жобаны жою мүмкін болмады. Қайталап көріңіз." }, "partRenderer": { - "updatedFile": "{{count}} файл жаңартылды", - "updatedFiles": "{{count}} файл жаңартылды" + "updatedFileCount_one": "{{displayCount}} файл жаңартылды", + "updatedFileCount": "{{displayCount}} файл жаңартылды", + "updatedFileCount_other": "{{displayCount}} файл жаңартылды" }, "toolPatch": { "operationAdded": "Қосылды", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Алдыңғы хабарламалар жүктелді", "retryHint": "Осы сессияның алдыңғы хабарламаларын қайта жүктейді.", - "omittedOne": "Осы сессиядағы кейбір алдыңғы элементтерді көрсету мүмкін болмады.", - "omittedMany": "Осы сессиядағы {{count}} алдыңғы элементті көрсету мүмкін болмады.", + "omitted_one": "Осы сессиядағы кейбір алдыңғы элементтерді көрсету мүмкін болмады.", + "omitted": "Осы сессиядағы {{displayCount}} алдыңғы элементті көрсету мүмкін болмады.", + "omitted_other": "Осы сессиядағы {{displayCount}} алдыңғы элементті көрсету мүмкін болмады.", "couldNotLoad": "Алдыңғы хабарламаларды жүктеу мүмкін болмады.", "unavailable": "Алдыңғы хабарламалар қолжетімсіз.", "tooLarge": "Алдыңғы хабарламалар жүктеу үшін тым үлкен." @@ -2069,10 +2082,12 @@ "viewTable": "Кестені қарау", "title": "Кесте", "close": "Кестені жабу", - "column": "баған", - "columns": "баған", - "row": "жол", - "rows": "жол", + "columnCount_one": "баған", + "columnCount": "баған", + "columnCount_other": "баған", + "rowCount_one": "жол", + "rowCount": "жол", + "rowCount_other": "жол", "opensFullScreen": "толық экранда ашылады" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} токеннің", "tokens": "токен", "tokensWithPercentage": "токен ({{percentage}})", - "stepsCountOne": "{{steps}} қадам", - "stepsCountMany": "{{steps}} қадам", + "stepsCount_one": "{{steps}} қадам", + "stepsCount": "{{steps}} қадам", + "stepsCount_other": "{{steps}} қадам", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Жаңа бағдарламалау тапсырмасы", "explore": "Зерттеу", "seeAll": "Барлығын қарау", - "kiloAgents": "Kilo Agent", - "greetingMorning": "Қайырлы таң", - "greetingAfternoon": "Қайырлы күн", - "greetingEvening": "Қайырлы кеш" + "kiloAgents": "Kilo Agent" }, "imageViewer": { "close": "{{filename}} жабу", @@ -2645,8 +2658,9 @@ "manageHint": "Kilo Pass басқаруды вебте ашады.", "notSubscribed": "Жазылмаған", "overallocated": "Pass тағайындаулары төленген орындардан асып кетті", - "paidSeatOne": "{{count}} төленген орын", - "paidSeatOther": "{{count}} төленген орын", + "paidSeat_one": "{{displayCount}} төленген орын", + "paidSeat": "{{displayCount}} төленген орын", + "paidSeat_other": "{{displayCount}} төленген орын", "paymentNeedsAttention": "Төлем назар қажет етеді", "paymentPending": "Төлем күтілуде", "processingBlocked": "Өңдеу бұғатталған", diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index b8cced42bc..80ea9aa27d 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} ក្នុងចំណោម {{total}} ឯកសារដែលបានផ្ទុក", "loadAllFiles": "ផ្ទុកឯកសារទាំងអស់", "loadAll": "ផ្ទុកទាំងអស់", - "fileLoaded": "{{count}} ឯកសារដែលបានផ្ទុក", - "filesLoaded": "{{count}} ឯកសារដែលបានផ្ទុក", - "fileLoadedOfTotal": "{{count}} ឯកសារដែលបានផ្ទុកក្នុងចំណោម {{total}}", - "filesLoadedOfTotal": "{{count}} ឯកសារដែលបានផ្ទុកក្នុងចំណោម {{total}}", + "fileLoadedCount_one": "{{displayCount}} ឯកសារដែលបានផ្ទុក", + "fileLoadedCount": "{{displayCount}} ឯកសារដែលបានផ្ទុក", + "fileLoadedCount_other": "{{displayCount}} ឯកសារដែលបានផ្ទុក", + "fileLoadedOfTotalCount_one": "{{displayCount}} ឯកសារដែលបានផ្ទុកក្នុងចំណោម {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} ឯកសារដែលបានផ្ទុកក្នុងចំណោម {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} ឯកសារដែលបានផ្ទុកក្នុងចំណោម {{total}}", "filesStillLoading": "ឯកសារនៅតែកំពុងផ្ទុក។ ទាញដើម្បីធ្វើឱ្យស្រស់។", "goToOverview": "ទៅកាន់ទិដ្ឋភាពទូទៅ", "goToOverviewTab": "ទៅកាន់ផ្ទាំងទិដ្ឋភាពទូទៅ" @@ -288,8 +290,9 @@ "resolved": "បានដោះស្រាយ", "outdated": "ហួសសម័យ", "file": "ឯកសារ", - "oneComment": "1 អត្ថាធិប្បាយ", - "commentCount": "{{count}} អត្ថាធិប្បាយ", + "comment_one": "1 អត្ថាធិប្បាយ", + "comment": "{{displayCount}} អត្ថាធិប្បាយ", + "comment_other": "{{displayCount}} អត្ថាធិប្បាយ", "startedRelative": " · ចាប់ផ្តើម {{relative}}", "couldNotLoadMore": "មិនអាចផ្ទុកអត្ថាធិប្បាយបន្ថែមបានទេ។", "retryLoadingMore": "ព្យាយាមផ្ទុកអត្ថាធិប្បាយបន្ថែមម្តងទៀត", @@ -299,8 +302,9 @@ "reactionsTitle": "ប្រតិកម្ម", "addReaction": "បន្ថែមប្រតិកម្ម", "reactionPill": "ប្រតិកម្ម {{emoji}} ចំនួន {{count}} {{countLabel}}", - "reactionSingular": "ប្រតិកម្ម", - "reactionPlural": "ប្រតិកម្ម", + "reaction_one": "ប្រតិកម្ម", + "reaction": "ប្រតិកម្ម", + "reaction_other": "ប្រតិកម្ម", "commentActions": "សកម្មភាពអត្ថាធិប្បាយ", "reportContent": "រាយការណ៍ខ្លឹមសារ", "reportUser": "រាយការណ៍អ្នកប្រើ", @@ -452,8 +456,9 @@ "deletePendingMessage": "អត្ថាធិប្បាយនេះនឹងត្រូវបានដកចេញពីជួររង់ចាំការពិនិត្យ។", "delete": "លុប", "summaryOptional": "សេចក្តីសង្ខេប (ជាជម្រើស)", - "pendingCommentSingular": "អត្ថាធិប្បាយរង់ចាំ", - "pendingCommentPlural": "អត្ថាធិប្បាយរង់ចាំ", + "pendingComment_one": "អត្ថាធិប្បាយរង់ចាំ", + "pendingComment": "អត្ថាធិប្បាយរង់ចាំ", + "pendingComment_other": "អត្ថាធិប្បាយរង់ចាំ", "submitCountOfTotal": "ដាក់ស្នើ {{freshCount}} ក្នុងចំណោម {{totalCount}} អត្ថាធិប្បាយ", "submitReview": "ដាក់ស្នើការពិនិត្យ", "partialPostedMessage": "បានប្រកាស {{freshCount}} អត្ថាធិប្បាយ។ {{staleCount}} អត្ថាធិប្បាយចង្អុលទៅ commit ចាស់ ហើយនៅក្នុងជួររង់ចាំរបស់អ្នក។" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "បើក · ទាមទារការពិនិត្យ", "stateOpen": "បើក", "unknownAuthor": "អ្នកនិពន្ធមិនស្គាល់", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "ឯកសារ", - "filePlural": "ឯកសារ" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "ឯកសារ", + "file": "ឯកសារ", + "file_other": "ឯកសារ" }, "pendingComment": { "editOutdatedA11y": "កែសម្រួលអត្ថាធិប្បាយរង់ចាំហួសសម័យនៅ {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "នរណាម្នាក់", - "oneTyping": "{{name}} កំពុងវាយ...", - "manyTyping": "{{names}} កំពុងវាយ..." + "typing_one": "{{name}} កំពុងវាយ...", + "typing": "{{names}} កំពុងវាយ...", + "typing_other": "{{names}} កំពុងវាយ..." }, "botStatus": { "online": "អនឡាញ", @@ -722,12 +730,10 @@ "couldNotLoad": "មិនអាចផ្ទុកព័ត៌មានវិក្កយបត្របានទេ", "manageOnWeb": "គ្រប់គ្រងវិក្កយបត្រនៅលើបណ្តាញ", "commitPlan": "Commit", - "daysLeft": "{{count}} ថ្ងៃទៀត", "earlybird": "Earlybird", "finalCommitTermEndsOn": "រយៈពេល Commit ចុងក្រោយរបស់អ្នកបញ្ចប់នៅ {{date}}។ បន្តជា Standard ក្នុងតម្លៃ {{price}} ឬការបង្ហោះនឹងបញ្ចប់។", "freeTrial": "សាកល្បងឥតគិតថ្លៃ", "hostingEnds": "ការបង្ហោះបញ្ចប់", - "oneDayLeft": "1 ថ្ងៃទៀត", "renews": "បន្តឡើងវិញ", "standardMonthToMonth": "Standard ប្រចាំខែ", "standardStartsOn": "Standard ចាប់ផ្តើមនៅ {{date}} ក្នុងតម្លៃ {{price}}។", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ត្រូវការការយកចិត្តទុកដាក់៖ {{label}}", - "openUnreadOne": "បើក {{name}} សារមិនទាន់អាន {{count}}", - "openUnreadMany": "បើក {{name}} សារមិនទាន់អាន {{count}}", + "openUnread_one": "បើក {{name}} សារមិនទាន់អាន {{displayCount}}", + "openUnread": "បើក {{name}} សារមិនទាន់អាន {{displayCount}}", + "openUnread_other": "បើក {{name}} សារមិនទាន់អាន {{displayCount}}", "open": "បើក {{name}}", "openSettings": "បើកការកំណត់សម្រាប់ {{name}}", "fixOnKiloAi": "ជួសជុលនៅលើ kilo.ai៖ {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "បើកការកែតម្រូវដោយស្វ័យប្រវត្តិ?", "enableAutoRemediationConfirmMessage": "Security Agent នឹងបើក PRs កែតម្រូវដោយស្វ័យប្រវត្តិ សម្រាប់ការរកឃើញដែលអាចកេងប្រវ័ញ្ចបានត្រឹមត្រូវ។", "enable": "បើក", - "queuedOne": "ការរកឃើញដែលមានស្រាប់ {{count}} ត្រូវបានដាក់ក្នុងជួរសម្រាប់ការវិភាគ។", - "queuedMany": "ការរកឃើញដែលមានស្រាប់ {{count}} ត្រូវបានដាក់ក្នុងជួរសម្រាប់ការវិភាគ។", + "queued_one": "ការរកឃើញដែលមានស្រាប់ {{displayCount}} ត្រូវបានដាក់ក្នុងជួរសម្រាប់ការវិភាគ។", + "queued": "ការរកឃើញដែលមានស្រាប់ {{displayCount}} ត្រូវបានដាក់ក្នុងជួរសម្រាប់ការវិភាគ។", + "queued_other": "ការរកឃើញដែលមានស្រាប់ {{displayCount}} ត្រូវបានដាក់ក្នុងជួរសម្រាប់ការវិភាគ។", "severityCriticalOnly": "ធ្ងន់ធ្ងរតែប៉ុណ្ណោះ", "severityHighAndAbove": "ខ្ពស់ និងលើស", "severityMediumAndAbove": "មធ្យម និងលើស", @@ -1482,8 +1490,9 @@ "on": "បើក", "off": "បិទ", "allRepositories": "ឃ្លាំងកូដទាំងអស់", - "repositorySelected": "បានជ្រើសរើសឃ្លាំងកូដ {{count}}", - "repositoriesSelected": "បានជ្រើសរើសឃ្លាំងកូដ {{count}}", + "repositoriesCount_one": "បានជ្រើសរើសឃ្លាំងកូដ {{displayCount}}", + "repositoriesCount": "បានជ្រើសរើសឃ្លាំងកូដ {{displayCount}}", + "repositoriesCount_other": "បានជ្រើសរើសឃ្លាំងកូដ {{displayCount}}", "selectRepositories": "ជ្រើសរើសឃ្លាំងកូដ", "selectRepositoriesSubtitle": "ជ្រើសរើសឃ្លាំងកូដដែល Security Agent ត្រួតពិនិត្យ", "repositories": "ឃ្លាំងកូដ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "វគ្គត្រូវបានលុប", "needsInput": "ត្រូវការបញ្ចូល", "fromPlatform": "ពី {{platform}}", - "centOne": "សេន", - "centOther": "សេន", - "dollarOne": "ដុល្លារ", - "dollarOther": "ដុល្លារ" + "cent_one": "សេន", + "cent": "សេន", + "cent_other": "សេន", + "dollar_one": "ដុល្លារ", + "dollar": "ដុល្លារ", + "dollar_other": "ដុល្លារ" }, "githubInstall": { "couldNotOpenTitle": "មិនអាចបើក GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "មិនអាចបោះបង់សេចក្តីព្រាងបានទេ។ សូមព្យាយាមម្តងទៀត។" }, "partRenderer": { - "updatedFile": "បានធ្វើបច្ចុប្បន្នភាពឯកសារ {{count}}", - "updatedFiles": "បានធ្វើបច្ចុប្បន្នភាពឯកសារ {{count}}" + "updatedFileCount_one": "បានធ្វើបច្ចុប្បន្នភាពឯកសារ {{displayCount}}", + "updatedFileCount": "បានធ្វើបច្ចុប្បន្នភាពឯកសារ {{displayCount}}", + "updatedFileCount_other": "បានធ្វើបច្ចុប្បន្នភាពឯកសារ {{displayCount}}" }, "toolPatch": { "operationAdded": "បានបន្ថែម", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "បានផ្ទុកសារមុនៗ", "retryHint": "ព្យាយាមផ្ទុកសារមុនៗសម្រាប់វគ្គនេះម្តងទៀត។", - "omittedOne": "ធាតុមុនៗមួយចំនួនពីវគ្គនេះមិនអាចបង្ហាញបានទេ។", - "omittedMany": "ធាតុមុនៗ {{count}} ពីវគ្គនេះមិនអាចបង្ហាញបានទេ។", + "omitted_one": "ធាតុមុនៗមួយចំនួនពីវគ្គនេះមិនអាចបង្ហាញបានទេ។", + "omitted": "ធាតុមុនៗ {{displayCount}} ពីវគ្គនេះមិនអាចបង្ហាញបានទេ។", + "omitted_other": "ធាតុមុនៗ {{displayCount}} ពីវគ្គនេះមិនអាចបង្ហាញបានទេ។", "couldNotLoad": "មិនអាចផ្ទុកសារមុនៗបានទេ។", "unavailable": "សារមុនៗមិនអាចប្រើបានទេ។", "tooLarge": "សារមុនៗធំពេកក្នុងការផ្ទុក។" @@ -2069,10 +2082,12 @@ "viewTable": "មើលតារាង", "title": "តារាង", "close": "បិទតារាង", - "column": "ជួរឈរ", - "columns": "ជួរឈរ", - "row": "ជួរ", - "rows": "ជួរ", + "columnCount_one": "ជួរឈរ", + "columnCount": "ជួរឈរ", + "columnCount_other": "ជួរឈរ", + "rowCount_one": "ជួរ", + "rowCount": "ជួរ", + "rowCount_other": "ជួរ", "opensFullScreen": "បើកពេញអេក្រង់" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ក្នុងចំណោម {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} ជំហាន", - "stepsCountMany": "{{steps}} ជំហាន", + "stepsCount_one": "{{steps}} ជំហាន", + "stepsCount": "{{steps}} ជំហាន", + "stepsCount_other": "{{steps}} ជំហាន", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "កិច្ចការសរសេរកូដថ្មី", "explore": "ស្វែងយល់", "seeAll": "មើលទាំងអស់", - "kiloAgents": "Kilo Agents", - "greetingMorning": "អរុណសួស្តី", - "greetingAfternoon": "ទស្សនិកាសួស្តី", - "greetingEvening": "សាយ័ណ្ហសួស្តី" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "បិទ {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "បើកការគ្រប់គ្រង Kilo Pass នៅលើគេហទំព័រ។", "notSubscribed": "មិនបានជាវ", "overallocated": "ការកំណត់ Pass លើសពីកន្លែងដែលបានបង់", - "paidSeatOne": "{{count}} កន្លែងដែលបានបង់", - "paidSeatOther": "{{count}} កន្លែងដែលបានបង់", + "paidSeat_one": "{{displayCount}} កន្លែងដែលបានបង់", + "paidSeat": "{{displayCount}} កន្លែងដែលបានបង់", + "paidSeat_other": "{{displayCount}} កន្លែងដែលបានបង់", "paymentNeedsAttention": "ការទូទាត់ត្រូវការការយកចិត្តទុកដាក់", "paymentPending": "ការទូទាត់កំពុងរង់ចាំ", "processingBlocked": "ការដំណើរការត្រូវបានរារាំង", diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index 2e67b5c424..6f8a3efdaf 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} ಫೈಲ್‌ಗಳಲ್ಲಿ {{loaded}} ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", "loadAllFiles": "ಎಲ್ಲಾ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ", "loadAll": "ಎಲ್ಲವನ್ನೂ ಲೋಡ್ ಮಾಡಿ", - "fileLoaded": "{{count}} ಫೈಲ್ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", - "filesLoaded": "{{count}} ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", - "fileLoadedOfTotal": "{{total}} ರಲ್ಲಿ {{count}} ಫೈಲ್ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", - "filesLoadedOfTotal": "{{total}} ರಲ್ಲಿ {{count}} ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "fileLoadedCount_one": "{{displayCount}} ಫೈಲ್ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "fileLoadedCount": "{{displayCount}} ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "fileLoadedCount_other": "{{displayCount}} ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "fileLoadedOfTotalCount_one": "{{total}} ರಲ್ಲಿ {{displayCount}} ಫೈಲ್ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "fileLoadedOfTotalCount": "{{total}} ರಲ್ಲಿ {{displayCount}} ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "fileLoadedOfTotalCount_other": "{{total}} ರಲ್ಲಿ {{displayCount}} ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", "filesStillLoading": "ಫೈಲ್‌ಗಳು ಇನ್ನೂ ಲೋಡ್ ಆಗುತ್ತಿವೆ. ರಿಫ್ರೆಶ್ ಮಾಡಲು ಎಳೆಯಿರಿ.", "goToOverview": "ಅವಲೋಕನಕ್ಕೆ ಹೋಗಿ", "goToOverviewTab": "ಅವಲೋಕನ ಟ್ಯಾಬ್‌ಗೆ ಹೋಗಿ" @@ -288,8 +290,9 @@ "resolved": "ಪರಿಹರಿಸಲಾಗಿದೆ", "outdated": "ಹಳೆಯದಾಗಿದೆ", "file": "ಫೈಲ್", - "oneComment": "1 ಕಾಮೆಂಟ್", - "commentCount": "{{count}} ಕಾಮೆಂಟ್‌ಗಳು", + "comment_one": "1 ಕಾಮೆಂಟ್", + "comment": "{{displayCount}} ಕಾಮೆಂಟ್‌ಗಳು", + "comment_other": "{{displayCount}} ಕಾಮೆಂಟ್‌ಗಳು", "startedRelative": " · {{relative}} ರಂದು ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ", "couldNotLoadMore": "ಹೆಚ್ಚಿನ ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "retryLoadingMore": "ಹೆಚ್ಚಿನ ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ", @@ -299,8 +302,9 @@ "reactionsTitle": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", "addReaction": "ಪ್ರತಿಕ್ರಿಯೆ ಸೇರಿಸಿ", "reactionPill": "{{emoji}} ಪ್ರತಿಕ್ರಿಯೆ, {{count}} {{countLabel}}", - "reactionSingular": "ಪ್ರತಿಕ್ರಿಯೆ", - "reactionPlural": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", + "reaction_one": "ಪ್ರತಿಕ್ರಿಯೆ", + "reaction": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", + "reaction_other": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", "commentActions": "ಕಾಮೆಂಟ್ ಕ್ರಿಯೆಗಳು", "reportContent": "ವಿಷಯ ವರದಿ ಮಾಡಿ", "reportUser": "ಬಳಕೆದಾರರನ್ನು ವರದಿ ಮಾಡಿ", @@ -452,8 +456,9 @@ "deletePendingMessage": "ಈ ಕಾಮೆಂಟ್ ಅನ್ನು ವಿಮರ್ಶಾ ಕ್ಯೂನಿಂದ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.", "delete": "ಅಳಿಸಿ", "summaryOptional": "ಸಾರಾಂಶ (ಐಚ್ಛಿಕ)", - "pendingCommentSingular": "ಬಾಕಿ ಕಾಮೆಂಟ್", - "pendingCommentPlural": "ಬಾಕಿ ಕಾಮೆಂಟ್‌ಗಳು", + "pendingComment_one": "ಬಾಕಿ ಕಾಮೆಂಟ್", + "pendingComment": "ಬಾಕಿ ಕಾಮೆಂಟ್‌ಗಳು", + "pendingComment_other": "ಬಾಕಿ ಕಾಮೆಂಟ್‌ಗಳು", "submitCountOfTotal": "{{totalCount}} ರಲ್ಲಿ {{freshCount}} ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಸಲ್ಲಿಸಿ", "submitReview": "ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಿ", "partialPostedMessage": "{{freshCount}} ಕಾಮೆಂಟ್(ಗಳನ್ನು) ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ. {{staleCount}} ಕಾಮೆಂಟ್(ಗಳು) ಹಳೆಯ ಕಮಿಟ್‌ನತ್ತ ತೋರಿಸುತ್ತವೆ ಮತ್ತು ನಿಮ್ಮ ಕ್ಯೂನಲ್ಲಿ ಉಳಿದಿವೆ." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ಮುಕ್ತ · ವಿಮರ್ಶೆ ಅಗತ್ಯವಿದೆ", "stateOpen": "ಮುಕ್ತ", "unknownAuthor": "ಅಜ್ಞಾತ ಲೇಖಕ", - "commitSingular": "ಕಮಿಟ್", - "commitPlural": "ಕಮಿಟ್‌ಗಳು", - "fileSingular": "ಫೈಲ್", - "filePlural": "ಫೈಲ್‌ಗಳು" + "commit_one": "ಕಮಿಟ್", + "commit": "ಕಮಿಟ್‌ಗಳು", + "commit_other": "ಕಮಿಟ್‌ಗಳು", + "file_one": "ಫೈಲ್", + "file": "ಫೈಲ್‌ಗಳು", + "file_other": "ಫೈಲ್‌ಗಳು" }, "pendingComment": { "editOutdatedA11y": "{{location}} ನಲ್ಲಿ ಹಳೆಯ ಬಾಕಿ ಕಾಮೆಂಟ್ ಸಂಪಾದಿಸಿ", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "ಯಾರೋ", - "oneTyping": "{{name}} ಟೈಪ್ ಮಾಡುತ್ತಿದ್ದಾರೆ...", - "manyTyping": "{{names}} ಟೈಪ್ ಮಾಡುತ್ತಿದ್ದಾರೆ..." + "typing_one": "{{name}} ಟೈಪ್ ಮಾಡುತ್ತಿದ್ದಾರೆ...", + "typing": "{{names}} ಟೈಪ್ ಮಾಡುತ್ತಿದ್ದಾರೆ...", + "typing_other": "{{names}} ಟೈಪ್ ಮಾಡುತ್ತಿದ್ದಾರೆ..." }, "botStatus": { "online": "ಆನ್ಲೈನ್", @@ -722,12 +730,10 @@ "couldNotLoad": "ಬಿಲ್ಲಿಂಗ್ ಮಾಹಿತಿಯನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", "manageOnWeb": "ವೆಬ್ನಲ್ಲಿ ಬಿಲ್ಲಿಂಗ್ ನಿರ್ವಹಿಸಿ", "commitPlan": "Commit", - "daysLeft": "{{count}} ದಿನಗಳು ಉಳಿದಿವೆ", "earlybird": "ಆರಂಭಿಕ", "finalCommitTermEndsOn": "ನಿಮ್ಮ ಅಂತಿಮ Commit ಅವಧಿ {{date}} ಕ್ಕೆ ಮುಗಿಯುತ್ತದೆ. {{price}} ಗೆ Standard ಆಗಿ ಮುಂದುವರಿಸಿ, ಇಲ್ಲವೇ ಹೋಸ್ಟಿಂಗ್ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ.", "freeTrial": "ಉಚಿತ ಪ್ರಯೋಗ", "hostingEnds": "ಹೋಸ್ಟಿಂಗ್ ಮುಗಿಯುತ್ತದೆ", - "oneDayLeft": "1 ದಿನ ಉಳಿದಿದೆ", "renews": "ನವೀಕರಿಸುತ್ತದೆ", "standardMonthToMonth": "Standard ತಿಂಗಳಿಗೊಮ್ಮೆ", "standardStartsOn": "Standard {{date}} ರಂದು {{price}} ಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ಗಮನ ಬೇಕು: {{label}}", - "openUnreadOne": "{{name}} ತೆರೆಯಿರಿ, {{count}} ಓದದ ಸಂದೇಶ", - "openUnreadMany": "{{name}} ತೆರೆಯಿರಿ, {{count}} ಓದದ ಸಂದೇಶಗಳು", + "openUnread_one": "{{name}} ತೆರೆಯಿರಿ, {{displayCount}} ಓದದ ಸಂದೇಶ", + "openUnread": "{{name}} ತೆರೆಯಿರಿ, {{displayCount}} ಓದದ ಸಂದೇಶಗಳು", + "openUnread_other": "{{name}} ತೆರೆಯಿರಿ, {{displayCount}} ಓದದ ಸಂದೇಶಗಳು", "open": "{{name}} ತೆರೆಯಿರಿ", "openSettings": "{{name}} ಗಾಗಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೆರೆಯಿರಿ", "fixOnKiloAi": "kilo.ai ನಲ್ಲಿ ಸರಿಪಡಿಸಿ: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ಸ್ವಯಂ-ಪರಿಹಾರ ಸಕ್ರಿಯಗೊಳಿಸುವುದೇ?", "enableAutoRemediationConfirmMessage": "ಅರ್ಹವಾದ ದುರ್ಬಳಕೆ ಸಾಧ್ಯ ಸಂಶೋಧನೆಗಳಿಗೆ Security Agent ಪರಿಹಾರ PR ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆರೆಯುತ್ತದೆ.", "enable": "ಸಕ್ರಿಯಗೊಳಿಸಿ", - "queuedOne": "{{count}} ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಶೋಧನೆಯನ್ನು ವಿಶ್ಲೇಷಣೆಗೆ ಸೇರಿಸಲಾಗಿದೆ.", - "queuedMany": "{{count}} ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಶೋಧನೆಗಳನ್ನು ವಿಶ್ಲೇಷಣೆಗೆ ಸೇರಿಸಲಾಗಿದೆ.", + "queued_one": "{{displayCount}} ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಶೋಧನೆಯನ್ನು ವಿಶ್ಲೇಷಣೆಗೆ ಸೇರಿಸಲಾಗಿದೆ.", + "queued": "{{displayCount}} ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಶೋಧನೆಗಳನ್ನು ವಿಶ್ಲೇಷಣೆಗೆ ಸೇರಿಸಲಾಗಿದೆ.", + "queued_other": "{{displayCount}} ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಶೋಧನೆಗಳನ್ನು ವಿಶ್ಲೇಷಣೆಗೆ ಸೇರಿಸಲಾಗಿದೆ.", "severityCriticalOnly": "ಗಂಭೀರವಾದವು ಮಾತ್ರ", "severityHighAndAbove": "ಹೆಚ್ಚಿನ ಮತ್ತು ಅದಕ್ಕಿಂತ ಹೆಚ್ಚು", "severityMediumAndAbove": "ಮಧ್ಯಮ ಮತ್ತು ಅದಕ್ಕಿಂತ ಹೆಚ್ಚು", @@ -1482,8 +1490,9 @@ "on": "ಆನ್", "off": "ಆಫ್", "allRepositories": "ಎಲ್ಲಾ ರೆಪೊಸಿಟರಿಗಳು", - "repositorySelected": "{{count}} ರೆಪೊಸಿಟರಿ ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ", - "repositoriesSelected": "{{count}} ರೆಪೊಸಿಟರಿಗಳು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ", + "repositoriesCount_one": "{{displayCount}} ರೆಪೊಸಿಟರಿ ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ", + "repositoriesCount": "{{displayCount}} ರೆಪೊಸಿಟರಿಗಳು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ", + "repositoriesCount_other": "{{displayCount}} ರೆಪೊಸಿಟರಿಗಳು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ", "selectRepositories": "ರೆಪೊಸಿಟರಿಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ", "selectRepositoriesSubtitle": "Security Agent ಯಾವ ರೆಪೊಸಿಟರಿಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಆಯ್ಕೆ ಮಾಡಿ", "repositories": "ರೆಪೊಸಿಟರಿಗಳು", @@ -1720,10 +1729,12 @@ "sessionDeleted": "ಸೆಶನ್ ಅಳಿಸಲಾಗಿದೆ", "needsInput": "ಇನ್ಪುಟ್ ಅಗತ್ಯವಿದೆ", "fromPlatform": "{{platform}} ನಿಂದ", - "centOne": "ಸೆಂಟ್", - "centOther": "ಸೆಂಟ್ಗಳು", - "dollarOne": "ಡಾಲರ್", - "dollarOther": "ಡಾಲರ್ಗಳು" + "cent_one": "ಸೆಂಟ್", + "cent": "ಸೆಂಟ್ಗಳು", + "cent_other": "ಸೆಂಟ್ಗಳು", + "dollar_one": "ಡಾಲರ್", + "dollar": "ಡಾಲರ್ಗಳು", + "dollar_other": "ಡಾಲರ್ಗಳು" }, "githubInstall": { "couldNotOpenTitle": "GitHub ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", @@ -1817,8 +1828,9 @@ "discardFailed": "ಡ್ರಾಫ್ಟ್ ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." }, "partRenderer": { - "updatedFile": "{{count}} ಫೈಲ್ ನವೀಕರಿಸಲಾಗಿದೆ", - "updatedFiles": "{{count}} ಫೈಲ್ಗಳು ನವೀಕರಿಸಲಾಗಿದೆ" + "updatedFileCount_one": "{{displayCount}} ಫೈಲ್ ನವೀಕರಿಸಲಾಗಿದೆ", + "updatedFileCount": "{{displayCount}} ಫೈಲ್ಗಳು ನವೀಕರಿಸಲಾಗಿದೆ", + "updatedFileCount_other": "{{displayCount}} ಫೈಲ್ಗಳು ನವೀಕರಿಸಲಾಗಿದೆ" }, "toolPatch": { "operationAdded": "ಸೇರಿಸಲಾಗಿದೆ", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "ಹಿಂದಿನ ಸಂದೇಶಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", "retryHint": "ಈ ಸೆಷನ್ಗಾಗಿ ಹಳೆಯ ಸಂದೇಶಗಳ ಲೋಡ್ ಅನ್ನು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸುತ್ತದೆ.", - "omittedOne": "ಈ ಸೆಷನ್ನ ಕೆಲವು ಹಿಂದಿನ ಐಟಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", - "omittedMany": "ಈ ಸೆಷನ್ನ {{count}} ಹಿಂದಿನ ಐಟಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "omitted_one": "ಈ ಸೆಷನ್ನ ಕೆಲವು ಹಿಂದಿನ ಐಟಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "omitted": "ಈ ಸೆಷನ್ನ {{displayCount}} ಹಿಂದಿನ ಐಟಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "omitted_other": "ಈ ಸೆಷನ್ನ {{displayCount}} ಹಿಂದಿನ ಐಟಂಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "couldNotLoad": "ಹಿಂದಿನ ಸಂದೇಶಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "unavailable": "ಹಿಂದಿನ ಸಂದೇಶಗಳು ಲಭ್ಯವಿಲ್ಲ.", "tooLarge": "ಹಿಂದಿನ ಸಂದೇಶಗಳು ಲೋಡ್ ಮಾಡಲು ತುಂಬಾ ದೊಡ್ಡದಾಗಿವೆ." @@ -2069,10 +2082,12 @@ "viewTable": "ಟೇಬಲ್ ವೀಕ್ಷಿಸಿ", "title": "ಟೇಬಲ್", "close": "ಟೇಬಲ್ ಮುಚ್ಚಿ", - "column": "ಕಾಲಮ್", - "columns": "ಕಾಲಮ್ಗಳು", - "row": "ಸಾಲು", - "rows": "ಸಾಲುಗಳು", + "columnCount_one": "ಕಾಲಮ್", + "columnCount": "ಕಾಲಮ್ಗಳು", + "columnCount_other": "ಕಾಲಮ್ಗಳು", + "rowCount_one": "ಸಾಲು", + "rowCount": "ಸಾಲುಗಳು", + "rowCount_other": "ಸಾಲುಗಳು", "opensFullScreen": "ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ ತೆರೆಯುತ್ತದೆ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} ಟೋಕನ್‌ಗಳಲ್ಲಿ", "tokens": "ಟೋಕನ್‌ಗಳು", "tokensWithPercentage": "ಟೋಕನ್‌ಗಳು ({{percentage}})", - "stepsCountOne": "{{steps}} ಹಂತ", - "stepsCountMany": "{{steps}} ಹಂತಗಳು", + "stepsCount_one": "{{steps}} ಹಂತ", + "stepsCount": "{{steps}} ಹಂತಗಳು", + "stepsCount_other": "{{steps}} ಹಂತಗಳು", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "ಹೊಸ ಕೋಡಿಂಗ್ ಕಾರ್ಯ", "explore": "ಅನ್ವೇಷಿಸಿ", "seeAll": "ಎಲ್ಲವನ್ನೂ ನೋಡಿ", - "kiloAgents": "Kilo Agents", - "greetingMorning": "ಶುಭೋದಯ", - "greetingAfternoon": "ಶುಭ ಮಧ್ಯಾಹ್ನ", - "greetingEvening": "ಶುಭ ಸಂಜೆ" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} ಮುಚ್ಚಿ", @@ -2645,8 +2658,9 @@ "manageHint": "ವೆಬ್‌ನಲ್ಲಿ Kilo Pass ನಿರ್ವಹಣೆಯನ್ನು ತೆರೆಯುತ್ತದೆ.", "notSubscribed": "ಚಂದಾದಾರರಾಗಿಲ್ಲ", "overallocated": "ಪಾಸ್ ನಿಯೋಜನೆಗಳು ಪಾವತಿಸಿದ ಸೀಟ್‌ಗಳನ್ನು ಮೀರಿದೆ", - "paidSeatOne": "{{count}} ಪಾವತಿಸಿದ ಸೀಟ್", - "paidSeatOther": "{{count}} ಪಾವತಿಸಿದ ಸೀಟ್‌ಗಳು", + "paidSeat_one": "{{displayCount}} ಪಾವತಿಸಿದ ಸೀಟ್", + "paidSeat": "{{displayCount}} ಪಾವತಿಸಿದ ಸೀಟ್‌ಗಳು", + "paidSeat_other": "{{displayCount}} ಪಾವತಿಸಿದ ಸೀಟ್‌ಗಳು", "paymentNeedsAttention": "ಪಾವತಿಗೆ ಗಮನ ಬೇಕು", "paymentPending": "ಪಾವತಿ ಬಾಕಿ ಇದೆ", "processingBlocked": "ಸಂಸ್ಕರಣೆ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ", diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index be5f79eb73..0f8d49c93d 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "누군가", - "oneTyping": "{{name}}님이 입력 중...", - "manyTyping": "{{names}}님이 입력 중..." + "typing_one": "{{name}}님이 입력 중...", + "typing": "{{names}}님이 입력 중...", + "typing_other": "{{names}}님이 입력 중..." }, "botStatus": { "online": "온라인", @@ -350,12 +351,10 @@ "couldNotLoad": "결제 정보를 불러올 수 없습니다", "manageOnWeb": "웹에서 결제 관리", "commitPlan": "Commit", - "daysLeft": "{{count}}일 남음", "earlybird": "Earlybird", "finalCommitTermEndsOn": "마지막 Commit 기간이 {{date}}에 종료됩니다. {{price}}에 Standard로 계속하거나 호스팅이 종료됩니다.", "freeTrial": "무료 체험", "hostingEnds": "호스팅 종료", - "oneDayLeft": "1일 남음", "renews": "갱신", "standardMonthToMonth": "Standard 월간", "standardStartsOn": "Standard는 {{date}}에 {{price}}로 시작됩니다.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}}에 주의가 필요합니다: {{label}}", "open": "{{name}} 열기", "openSettings": "{{name}} 설정 열기", - "openUnreadMany": "{{name}} 열기, 읽지 않은 메시지 {{count}}개", - "openUnreadOne": "{{name}} 열기, 읽지 않은 메시지 {{count}}개" + "openUnread": "{{name}} 열기, 읽지 않은 메시지 {{displayCount}}개", + "openUnread_other": "{{name}} 열기, 읽지 않은 메시지 {{displayCount}}개", + "openUnread_one": "{{name}} 열기, 읽지 않은 메시지 {{displayCount}}개" }, "list": { "createInstance": "인스턴스 만들기", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "이미 분석된 자격 대상 발견 사항도 대기열에 추가합니다. 중복 PR은 계속 억제됩니다.", "minimumSeverity": "최소 심각도", "permissionNote": "조직 소유자와 결제 관리자만 이 설정을 변경할 수 있습니다.", - "queuedMany": "기존 발견 사항 {{count}}개가 분석 대기열에 추가되었습니다.", - "queuedOne": "기존 발견 사항 {{count}}개가 분석 대기열에 추가되었습니다.", + "queued": "기존 발견 사항 {{displayCount}}개가 분석 대기열에 추가되었습니다.", + "queued_other": "기존 발견 사항 {{displayCount}}개가 분석 대기열에 추가되었습니다.", + "queued_one": "기존 발견 사항 {{displayCount}}개가 분석 대기열에 추가되었습니다.", "requireApproval": "자동 수정 전 승인 필요", "requireApprovalSubtitle": "자동 수정은 PR을 열기 전에 승인을 기다립니다.", "severityAll": "모든 심각도", @@ -1270,8 +1271,9 @@ "off": "꺼짐", "on": "켜짐", "repositories": "저장소", - "repositoriesSelected": "저장소 {{count}}개 선택됨", - "repositorySelected": "저장소 {{count}}개 선택됨", + "repositoriesCount": "저장소 {{displayCount}}개 선택됨", + "repositoriesCount_other": "저장소 {{displayCount}}개 선택됨", + "repositoriesCount_one": "저장소 {{displayCount}}개 선택됨", "securityAgent": "Security Agent", "selectRepositories": "저장소 선택", "selectRepositoriesSubtitle": "Security Agent가 모니터링할 저장소를 선택하세요", @@ -1348,10 +1350,12 @@ "sessionDeleted": "세션이 삭제되었습니다.", "needsInput": "입력 필요", "fromPlatform": "{{platform}}에서", - "centOne": "센트", - "centOther": "센트", - "dollarOne": "달러", - "dollarOther": "달러" + "cent_one": "센트", + "cent": "센트", + "cent_other": "센트", + "dollar_one": "달러", + "dollar": "달러", + "dollar_other": "달러" }, "githubInstall": { "couldNotOpenMessage": "GitHub 앱 설정을 시작할 수 없습니다. 다시 시도하세요.", @@ -1445,8 +1449,9 @@ "keepEditing": "계속 수정" }, "partRenderer": { - "updatedFile": "{{count}}개 파일 업데이트됨", - "updatedFiles": "{{count}}개 파일 업데이트됨" + "updatedFileCount_one": "{{displayCount}}개 파일 업데이트됨", + "updatedFileCount": "{{displayCount}}개 파일 업데이트됨", + "updatedFileCount_other": "{{displayCount}}개 파일 업데이트됨" }, "toolPatch": { "operationAdded": "추가됨", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "이전 메시지 로드됨", "retryHint": "이 세션의 이전 메시지 로드를 다시 시도합니다.", - "omittedOne": "이 세션의 이전 항목 하나를 표시하지 못했습니다.", - "omittedMany": "이 세션의 이전 항목 {{count}}개를 표시하지 못했습니다.", + "omitted_one": "이 세션의 이전 항목 하나를 표시하지 못했습니다.", + "omitted": "이 세션의 이전 항목 {{displayCount}}개를 표시하지 못했습니다.", + "omitted_other": "이 세션의 이전 항목 {{displayCount}}개를 표시하지 못했습니다.", "couldNotLoad": "이전 메시지를 로드하지 못했습니다.", "unavailable": "이전 메시지를 사용할 수 없습니다.", "tooLarge": "이전 메시지가 너무 커서 로드할 수 없습니다." @@ -1697,10 +1703,12 @@ "viewTable": "표 보기", "title": "표", "close": "표 닫기", - "column": "열", - "columns": "열", - "row": "행", - "rows": "행", + "columnCount_one": "열", + "columnCount": "열", + "columnCount_other": "열", + "rowCount_one": "행", + "rowCount": "행", + "rowCount_other": "행", "opensFullScreen": "전체 화면으로 열림" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "{{window}} 토큰 중", "tokens": "토큰", "tokensWithPercentage": "토큰 ({{percentage}})", - "stepsCountOne": "{{steps}}단계", - "stepsCountMany": "{{steps}}단계", + "stepsCount_one": "{{steps}}단계", + "stepsCount": "{{steps}}단계", + "stepsCount_other": "{{steps}}단계", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "새 코딩 작업", "explore": "탐색", "seeAll": "모두 보기", - "kiloAgents": "Kilo 에이전트", - "greetingMorning": "좋은 아침입니다", - "greetingAfternoon": "좋은 오후입니다", - "greetingEvening": "좋은 저녁입니다" + "kiloAgents": "Kilo 에이전트" }, "imageViewer": { "close": "{{filename}} 닫기", @@ -2205,7 +2211,8 @@ "closeReactions": "반응 닫기", "collapseThread": "스레드 접기", "commentActions": "댓글 작업", - "commentCount": "댓글 {{count}}개", + "comment": "댓글 {{displayCount}}개", + "comment_other": "댓글 {{displayCount}}개", "couldNotLoad": "토론을 불러올 수 없습니다", "couldNotLoadMore": "더 많은 댓글을 불러올 수 없습니다.", "couldNotReply": "답글을 달 수 없습니다.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} 음소거됨", "noDiscussion": "아직 토론 없음", "noDiscussionDescription": "이 풀 리퀘스트에 리뷰 스레드나 대화 댓글이 없습니다.", - "oneComment": "댓글 1개", + "comment_one": "댓글 1개", "outdated": "오래됨", "quotedDiffSnippet": "인용된 diff 스니펫", "reactionPill": "{{emoji}} 반응, {{count}} {{countLabel}}", - "reactionPlural": "반응", - "reactionSingular": "반응", + "reaction": "반응", + "reaction_other": "반응", + "reaction_one": "반응", "reactionsTitle": "반응", "reply": "답글", "replyBadRequest": "이 답글을 게시할 수 없습니다. 스레드가 변경되었을 수 있습니다.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "{{count}}줄 더 펼치기 ({{start}}–{{end}})", "failedToLoadContext": "컨텍스트를 불러오지 못했습니다 — 탭하여 다시 시도", "failedToLoadMoreFiles": "더 많은 파일을 불러오지 못했습니다 — 탭하여 다시 시도", - "fileLoaded": "파일 {{count}}개 로드됨", - "fileLoadedOfTotal": "{{total}}개 중 파일 {{count}}개 로드됨", - "filesLoaded": "파일 {{count}}개 로드됨", - "filesLoadedOfTotal": "{{total}}개 중 파일 {{count}}개 로드됨", + "fileLoadedCount_one": "파일 {{displayCount}}개 로드됨", + "fileLoadedOfTotalCount_one": "{{total}}개 중 파일 {{displayCount}}개 로드됨", + "fileLoadedCount": "파일 {{displayCount}}개 로드됨", + "fileLoadedCount_other": "파일 {{displayCount}}개 로드됨", + "fileLoadedOfTotalCount": "{{total}}개 중 파일 {{displayCount}}개 로드됨", + "fileLoadedOfTotalCount_other": "{{total}}개 중 파일 {{displayCount}}개 로드됨", "filesStillLoading": "파일을 아직 로드 중입니다. 당겨서 새로고침하세요.", "goToOverview": "개요로 이동", "goToOverviewTab": "개요 탭으로 이동", @@ -2429,10 +2439,12 @@ "noFilesChanged": "변경된 파일 없음", "noFilesChangedDescription": "이 풀 리퀘스트에는 파일 변경이 없습니다.", "overview": { - "commitPlural": "커밋", - "commitSingular": "커밋", - "filePlural": "파일", - "fileSingular": "파일", + "commit": "커밋", + "commit_other": "커밋", + "commit_one": "커밋", + "file": "파일", + "file_other": "파일", + "file_one": "파일", "stateClosed": "닫힘", "stateDraft": "초안", "stateMerged": "병합됨", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "이 댓글이 리뷰 대기열에서 제거됩니다.", "deletePendingTitle": "보류 중인 댓글을 삭제할까요?", "loadFailedTitle": "리뷰 제출을 불러올 수 없습니다", - "pendingCommentPlural": "보류 중인 댓글", - "pendingCommentSingular": "보류 중인 댓글", + "pendingComment": "보류 중인 댓글", + "pendingComment_other": "보류 중인 댓글", + "pendingComment_one": "보류 중인 댓글", "summaryOptional": "요약 (선택 사항)", "title": "리뷰 제출", "partialPostedMessage": "댓글 {{freshCount}}개를 게시했습니다. 이전 커밋을 가리키는 댓글 {{staleCount}}개는 대기열에 남았습니다.", @@ -2632,8 +2645,9 @@ "manageHint": "웹에서 Kilo Pass 관리를 엽니다.", "notSubscribed": "구독하지 않음", "overallocated": "Pass 배정이 유료 시트를 초과합니다", - "paidSeatOne": "유료 시트 {{count}}개", - "paidSeatOther": "유료 시트 {{count}}개", + "paidSeat_one": "유료 시트 {{displayCount}}개", + "paidSeat": "유료 시트 {{displayCount}}개", + "paidSeat_other": "유료 시트 {{displayCount}}개", "paymentNeedsAttention": "결제에 주의가 필요합니다", "paymentPending": "결제 대기 중", "processingBlocked": "처리 차단됨", diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index 1a2aaf3a22..35805c1fb5 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "ໂຫຼດ {{loaded}} ຈາກ {{total}} ໄຟລ໌ແລ້ວ", "loadAllFiles": "ໂຫຼດໄຟລ໌ທັງໝົດ", "loadAll": "ໂຫຼດທັງໝົດ", - "fileLoaded": "ໂຫຼດ {{count}} ໄຟລ໌ແລ້ວ", - "filesLoaded": "ໂຫຼດ {{count}} ໄຟລ໌ແລ້ວ", - "fileLoadedOfTotal": "ໂຫຼດ {{count}} ໄຟລ໌ ຈາກ {{total}} ແລ້ວ", - "filesLoadedOfTotal": "ໂຫຼດ {{count}} ໄຟລ໌ ຈາກ {{total}} ແລ້ວ", + "fileLoadedCount_one": "ໂຫຼດ {{displayCount}} ໄຟລ໌ແລ້ວ", + "fileLoadedCount": "ໂຫຼດ {{displayCount}} ໄຟລ໌ແລ້ວ", + "fileLoadedCount_other": "ໂຫຼດ {{displayCount}} ໄຟລ໌ແລ້ວ", + "fileLoadedOfTotalCount_one": "ໂຫຼດ {{displayCount}} ໄຟລ໌ ຈາກ {{total}} ແລ້ວ", + "fileLoadedOfTotalCount": "ໂຫຼດ {{displayCount}} ໄຟລ໌ ຈາກ {{total}} ແລ້ວ", + "fileLoadedOfTotalCount_other": "ໂຫຼດ {{displayCount}} ໄຟລ໌ ຈາກ {{total}} ແລ້ວ", "filesStillLoading": "ໄຟລ໌ຍັງກຳລັງໂຫຼດ. ດຶງເພື່ອໂຫຼດໃໝ່.", "goToOverview": "ໄປທີ່ພາບລວມ", "goToOverviewTab": "ໄປທີ່ແຖບພາບລວມ" @@ -288,8 +290,9 @@ "resolved": "ແກ້ໄຂແລ້ວ", "outdated": "ລ້າສະໄໝ", "file": "ໄຟລ໌", - "oneComment": "1 ຄຳເຫັນ", - "commentCount": "{{count}} ຄຳເຫັນ", + "comment_one": "1 ຄຳເຫັນ", + "comment": "{{displayCount}} ຄຳເຫັນ", + "comment_other": "{{displayCount}} ຄຳເຫັນ", "startedRelative": " · ເລີ່ມ {{relative}}", "couldNotLoadMore": "ບໍ່ສາມາດໂຫຼດຄຳເຫັນເພີ່ມເຕີມໄດ້.", "retryLoadingMore": "ລອງໂຫຼດຄຳເຫັນເພີ່ມເຕີມອີກຄັ້ງ", @@ -299,8 +302,9 @@ "reactionsTitle": "ຣີແອກຊັນ", "addReaction": "ເພີ່ມຣີແອກຊັນ", "reactionPill": "{{emoji}} ຣີແອກຊັນ, {{count}} {{countLabel}}", - "reactionSingular": "ຣີແອກຊັນ", - "reactionPlural": "ຣີແອກຊັນ", + "reaction_one": "ຣີແອກຊັນ", + "reaction": "ຣີແອກຊັນ", + "reaction_other": "ຣີແອກຊັນ", "commentActions": "ການກະທຳຄຳເຫັນ", "reportContent": "ລາຍງານເນື້ອຫາ", "reportUser": "ລາຍງານຜູ້ໃຊ້", @@ -452,8 +456,9 @@ "deletePendingMessage": "ຄຳເຫັນນີ້ຈະຖືກລຶບອອກຈາກຄິວການກວດສອບ.", "delete": "ລຶບ", "summaryOptional": "ສະຫຼຸບ (ທາງເລືອກ)", - "pendingCommentSingular": "ຄຳເຫັນທີ່ລໍຖ້າ", - "pendingCommentPlural": "ຄຳເຫັນທີ່ລໍຖ້າ", + "pendingComment_one": "ຄຳເຫັນທີ່ລໍຖ້າ", + "pendingComment": "ຄຳເຫັນທີ່ລໍຖ້າ", + "pendingComment_other": "ຄຳເຫັນທີ່ລໍຖ້າ", "submitCountOfTotal": "ສົ່ງ {{freshCount}} ຈາກ {{totalCount}} ຄຳເຫັນ", "submitReview": "ສົ່ງການກວດສອບ", "partialPostedMessage": "ໂພສ {{freshCount}} ຄຳເຫັນ. {{staleCount}} ຄຳເຫັນຊີ້ບອກໃສ່ commit ທີ່ເກົ່າກວ່າ ແລະ ຍັງຄົງຢູ່ໃນຄິວຂອງທ່ານ." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ເປີດ · ຕ້ອງການການກວດສອບ", "stateOpen": "ເປີດ", "unknownAuthor": "ຜູ້ຂຽນບໍ່ຮູ້ຈັກ", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "ໄຟລ໌", - "filePlural": "ໄຟລ໌" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "ໄຟລ໌", + "file": "ໄຟລ໌", + "file_other": "ໄຟລ໌" }, "pendingComment": { "editOutdatedA11y": "ແກ້ໄຂຄຳເຫັນທີ່ລໍຖ້າທີ່ລ້າສະໄໝໃສ່ {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "ບາງຄົນ", - "oneTyping": "{{name}} ກຳລັງພິມ...", - "manyTyping": "{{names}} ກຳລັງພິມ..." + "typing_one": "{{name}} ກຳລັງພິມ...", + "typing": "{{names}} ກຳລັງພິມ...", + "typing_other": "{{names}} ກຳລັງພິມ..." }, "botStatus": { "online": "ອອນໄລນ໌", @@ -722,12 +730,10 @@ "couldNotLoad": "ບໍ່ສາມາດໂຫຼດຂໍ້ມູນການອອກບິນ", "manageOnWeb": "ຈັດການການອອກບິນເທິງເວັບ", "commitPlan": "Commit", - "daysLeft": "{{count}} ມື້ເຫຼືອ", "earlybird": "Earlybird", "finalCommitTermEndsOn": "ຮອບ Commit ສຸດທ້າຍຂອງທ່ານສິ້ນສຸດໃນ {{date}}. ສືບຕໍ່ເປັນ Standard ໃນລາຄາ {{price}}, ຫຼືການໂຮສຕິ້ງຈະສິ້ນສຸດ.", "freeTrial": "ທົດລອງໃຊ້ຟຣີ", "hostingEnds": "ການໂຮສຕິ້ງສິ້ນສຸດ", - "oneDayLeft": "1 ມື້ເຫຼືອ", "renews": "ຕໍ່ອາຍຸ", "standardMonthToMonth": "Standard ລາຍເດືອນ", "standardStartsOn": "Standard ເລີ່ມໃນ {{date}} ໃນລາຄາ {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ຕ້ອງການຄວາມເອົາໃຈໃສ່: {{label}}", - "openUnreadOne": "ເປີດ {{name}}, {{count}} ຂໍ້ຄວາມທີ່ຍັງບໍ່ໄດ້ອ່ານ", - "openUnreadMany": "ເປີດ {{name}}, {{count}} ຂໍ້ຄວາມທີ່ຍັງບໍ່ໄດ້ອ່ານ", + "openUnread_one": "ເປີດ {{name}}, {{displayCount}} ຂໍ້ຄວາມທີ່ຍັງບໍ່ໄດ້ອ່ານ", + "openUnread": "ເປີດ {{name}}, {{displayCount}} ຂໍ້ຄວາມທີ່ຍັງບໍ່ໄດ້ອ່ານ", + "openUnread_other": "ເປີດ {{name}}, {{displayCount}} ຂໍ້ຄວາມທີ່ຍັງບໍ່ໄດ້ອ່ານ", "open": "ເປີດ {{name}}", "openSettings": "ເປີດການຕັ້ງຄ່າສຳລັບ {{name}}", "fixOnKiloAi": "ແກ້ໄຂເທິງ kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ເປີດການແກ້ໄຂອັດຕະໂນມັດ?", "enableAutoRemediationConfirmMessage": "Security Agent ຈະເປີດ PRs ການແກ້ໄຂອັດຕະໂນມັດສຳລັບການພົບທີ່ສາມາດໃຊ້ປະໂຫຍດໄດ້ທີ່ເໝາະສົມ.", "enable": "ເປີດ", - "queuedOne": "{{count}} ການກວດພົບທີ່ມີຢູ່ແລ້ວຖືກເຂົ້າຄິວເພື່ອວິເຄາະ.", - "queuedMany": "{{count}} ການກວດພົບທີ່ມີຢູ່ແລ້ວຖືກເຂົ້າຄິວເພື່ອວິເຄາະ.", + "queued_one": "{{displayCount}} ການກວດພົບທີ່ມີຢູ່ແລ້ວຖືກເຂົ້າຄິວເພື່ອວິເຄາະ.", + "queued": "{{displayCount}} ການກວດພົບທີ່ມີຢູ່ແລ້ວຖືກເຂົ້າຄິວເພື່ອວິເຄາະ.", + "queued_other": "{{displayCount}} ການກວດພົບທີ່ມີຢູ່ແລ້ວຖືກເຂົ້າຄິວເພື່ອວິເຄາະ.", "severityCriticalOnly": "ຮ້າຍແຮງພຽງຢ່າງດຽວ", "severityHighAndAbove": "ສູງຂຶ້ນໄປ", "severityMediumAndAbove": "ປານກາງຂຶ້ນໄປ", @@ -1482,8 +1490,9 @@ "on": "ເປີດ", "off": "ປິດ", "allRepositories": "ທຸກບ່ອນເກັບລະຫັດ", - "repositorySelected": "{{count}} ບ່ອນເກັບລະຫັດທີ່ເລືອກ", - "repositoriesSelected": "{{count}} ບ່ອນເກັບລະຫັດທີ່ເລືອກ", + "repositoriesCount_one": "{{displayCount}} ບ່ອນເກັບລະຫັດທີ່ເລືອກ", + "repositoriesCount": "{{displayCount}} ບ່ອນເກັບລະຫັດທີ່ເລືອກ", + "repositoriesCount_other": "{{displayCount}} ບ່ອນເກັບລະຫັດທີ່ເລືອກ", "selectRepositories": "ເລືອກບ່ອນເກັບລະຫັດ", "selectRepositoriesSubtitle": "ເລືອກວ່າບ່ອນເກັບລະຫັດໃດທີ່ Security Agent ຕິດຕາມ", "repositories": "ບ່ອນເກັບລະຫັດ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "ລຶບເຊດຊັນແລ້ວ", "needsInput": "ຕ້ອງການຂໍ້ມູນເຂົ້າ", "fromPlatform": "ຈາກ {{platform}}", - "centOne": "ເຊັນ", - "centOther": "ເຊັນ", - "dollarOne": "ໂດລາ", - "dollarOther": "ໂດລາ" + "cent_one": "ເຊັນ", + "cent": "ເຊັນ", + "cent_other": "ເຊັນ", + "dollar_one": "ໂດລາ", + "dollar": "ໂດລາ", + "dollar_other": "ໂດລາ" }, "githubInstall": { "couldNotOpenTitle": "ບໍ່ສາມາດເປີດ GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "ບໍ່ສາມາດລະເລີຍຮ່າງ. ກະລຸນາລອງໃໝ່." }, "partRenderer": { - "updatedFile": "ອັບເດດ {{count}} ໄຟລ໌", - "updatedFiles": "ອັບເດດ {{count}} ໄຟລ໌" + "updatedFileCount_one": "ອັບເດດ {{displayCount}} ໄຟລ໌", + "updatedFileCount": "ອັບເດດ {{displayCount}} ໄຟລ໌", + "updatedFileCount_other": "ອັບເດດ {{displayCount}} ໄຟລ໌" }, "toolPatch": { "operationAdded": "ເພີ່ມ", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "ຂໍ້ຄວາມກ່ອນໜ້າໂຫລດແລ້ວ", "retryHint": "ພະຍາຍາມໂຫລດຂໍ້ຄວາມເກົ່າອີກສຳລັບເຊດຊັນນີ້.", - "omittedOne": "ບາງລາຍການກ່ອນໜ້າຈາກເຊດຊັນນີ້ບໍ່ສາມາດສະແດງໄດ້.", - "omittedMany": "{{count}} ລາຍການກ່ອນໜ້າຈາກເຊດຊັນນີ້ບໍ່ສາມາດສະແດງໄດ້.", + "omitted_one": "ບາງລາຍການກ່ອນໜ້າຈາກເຊດຊັນນີ້ບໍ່ສາມາດສະແດງໄດ້.", + "omitted": "{{displayCount}} ລາຍການກ່ອນໜ້າຈາກເຊດຊັນນີ້ບໍ່ສາມາດສະແດງໄດ້.", + "omitted_other": "{{displayCount}} ລາຍການກ່ອນໜ້າຈາກເຊດຊັນນີ້ບໍ່ສາມາດສະແດງໄດ້.", "couldNotLoad": "ບໍ່ສາມາດໂຫລດຂໍ້ຄວາມກ່ອນໜ້າ.", "unavailable": "ຂໍ້ຄວາມກ່ອນໜ້າບໍ່ມີ.", "tooLarge": "ຂໍ້ຄວາມກ່ອນໜ້າໃຫຍ່ເກີນໄປທີ່ຈະໂຫລດ." @@ -2069,10 +2082,12 @@ "viewTable": "ເບິ່ງຕາຕະລາງ", "title": "ຕາຕະລາງ", "close": "ປິດຕາຕະລາງ", - "column": "ຖັນ", - "columns": "ຖັນ", - "row": "ແຖວ", - "rows": "ແຖວ", + "columnCount_one": "ຖັນ", + "columnCount": "ຖັນ", + "columnCount_other": "ຖັນ", + "rowCount_one": "ແຖວ", + "rowCount": "ແຖວ", + "rowCount_other": "ແຖວ", "opensFullScreen": "ເປີດແບບເຕັມຈໍ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ຈາກ {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} ຂັ້ນຕອນ", - "stepsCountMany": "{{steps}} ຂັ້ນຕອນ", + "stepsCount_one": "{{steps}} ຂັ້ນຕອນ", + "stepsCount": "{{steps}} ຂັ້ນຕອນ", + "stepsCount_other": "{{steps}} ຂັ້ນຕອນ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "ວຽກການຂຽນໂຄ້ດໃໝ່", "explore": "ສຳຫຼວດ", "seeAll": "ເບິ່ງທັງໝົດ", - "kiloAgents": "Kilo Agents", - "greetingMorning": "ສະບາຍດີຕອນເຊົ້າ", - "greetingAfternoon": "ສະບາຍດີຕອນບ່າຍ", - "greetingEvening": "ສະບາຍດີຕອນແລງ" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "ປິດ {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "ເປີດການຈັດການ Kilo Pass ເທິງເວັບ.", "notSubscribed": "ບໍ່ໄດ້ສະໝັກ", "overallocated": "ການມອບໝາຍ Pass ເກີນບ່ອນນັ່ງທີ່ຊຳລະ", - "paidSeatOne": "{{count}} ບ່ອນນັ່ງທີ່ຊຳລະ", - "paidSeatOther": "{{count}} ບ່ອນນັ່ງທີ່ຊຳລະ", + "paidSeat_one": "{{displayCount}} ບ່ອນນັ່ງທີ່ຊຳລະ", + "paidSeat": "{{displayCount}} ບ່ອນນັ່ງທີ່ຊຳລະ", + "paidSeat_other": "{{displayCount}} ບ່ອນນັ່ງທີ່ຊຳລະ", "paymentNeedsAttention": "ການຊຳລະຕ້ອງການຄວາມສົນໃຈ", "paymentPending": "ການຊຳລະກຳລັງລໍຖ້າ", "processingBlocked": "ການປະມວນຜົນຖືກບລັອກ", diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index f4976b28a2..137bd62186 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Įkelta {{loaded}} iš {{total}} failų", "loadAllFiles": "Įkelti visus failus", "loadAll": "Įkelti viską", - "fileLoaded": "Įkeltas {{count}} failas", - "filesLoaded": "Įkelta {{count}} failų", - "fileLoadedOfTotal": "Įkeltas {{count}} failas iš {{total}}", - "filesLoadedOfTotal": "Įkelta {{count}} failų iš {{total}}", + "fileLoadedCount_one": "Įkeltas {{displayCount}} failas", + "fileLoadedCount": "Įkelta {{displayCount}} failų", + "fileLoadedCount_other": "Įkelta {{displayCount}} failų", + "fileLoadedOfTotalCount_one": "Įkeltas {{displayCount}} failas iš {{total}}", + "fileLoadedOfTotalCount": "Įkelta {{displayCount}} failų iš {{total}}", + "fileLoadedOfTotalCount_other": "Įkelta {{displayCount}} failų iš {{total}}", "filesStillLoading": "Failai vis dar įkeliami. Patraukite, kad atnaujintumėte.", "goToOverview": "Eiti į apžvalgą", "goToOverviewTab": "Eiti į apžvalgos skirtuką" @@ -288,8 +290,9 @@ "resolved": "Išspręsta", "outdated": "Pasenusi", "file": "Failas", - "oneComment": "1 komentaras", - "commentCount": "{{count}} komentarai", + "comment_one": "1 komentaras", + "comment": "{{displayCount}} komentarai", + "comment_other": "{{displayCount}} komentarai", "startedRelative": " · pradėta {{relative}}", "couldNotLoadMore": "Nepavyko įkelti daugiau komentarų.", "retryLoadingMore": "Bandyti įkelti daugiau komentarų dar kartą", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakcijos", "addReaction": "Pridėti reakciją", "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", - "reactionSingular": "reakcija", - "reactionPlural": "reakcijos", + "reaction_one": "reakcija", + "reaction": "reakcijos", + "reaction_other": "reakcijos", "commentActions": "Komentaro veiksmai", "reportContent": "Pranešti apie turinį", "reportUser": "Pranešti apie vartotoją", @@ -452,8 +456,9 @@ "deletePendingMessage": "Šis komentaras bus pašalintas iš peržiūros eilės.", "delete": "Ištrinti", "summaryOptional": "Santrauka (neprivaloma)", - "pendingCommentSingular": "laukiantis komentaras", - "pendingCommentPlural": "laukiantys komentarai", + "pendingComment_one": "laukiantis komentaras", + "pendingComment": "laukiantys komentarai", + "pendingComment_other": "laukiantys komentarai", "submitCountOfTotal": "Pateikti {{freshCount}} iš {{totalCount}} komentarų", "submitReview": "Pateikti peržiūrą", "partialPostedMessage": "Paskelbta {{freshCount}} komentaras(-ai). {{staleCount}} komentaras(-ai) nukreipia į senesnį įsipareigojimą ir liko jūsų eilėje." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Atidaryta · Reikalinga peržiūra", "stateOpen": "Atidaryta", "unknownAuthor": "Nežinomas autorius", - "commitSingular": "įsipareigojimas", - "commitPlural": "įsipareigojimai", - "fileSingular": "failas", - "filePlural": "failai" + "commit_one": "įsipareigojimas", + "commit": "įsipareigojimai", + "commit_other": "įsipareigojimai", + "file_one": "failas", + "file": "failai", + "file_other": "failai" }, "pendingComment": { "editOutdatedA11y": "Redaguoti pasenusį laukiantį komentarą {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Kažkas", - "oneTyping": "{{name}} rašo...", - "manyTyping": "{{names}} rašo..." + "typing_one": "{{name}} rašo...", + "typing": "{{names}} rašo...", + "typing_other": "{{names}} rašo..." }, "botStatus": { "online": "Prisijungęs", @@ -722,12 +730,10 @@ "couldNotLoad": "Nepavyko įkelti atsiskaitymų informacijos", "manageOnWeb": "Tvarkyti atsiskaitymus žiniatinklyje", "commitPlan": "Commit", - "daysLeft": "Liko {{count}} dien.", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Jūsų galutinis Commit terminas baigiasi {{date}}. Tęskite kaip Standard už {{price}} arba priegloba baigsis.", "freeTrial": "Nemokama bandomoji laikotarpis", "hostingEnds": "Priegloba baigiasi", - "oneDayLeft": "Liko 1 diena", "renews": "Atnaujinama", "standardMonthToMonth": "Standard kas mėnesį", "standardStartsOn": "Standard prasideda {{date}} už {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} reikia dėmesio: {{label}}", - "openUnreadOne": "Atidaryti {{name}}, {{count}} neskaityta žinutė", - "openUnreadMany": "Atidaryti {{name}}, {{count}} neskaitytos žinutės", + "openUnread_one": "Atidaryti {{name}}, {{displayCount}} neskaityta žinutė", + "openUnread": "Atidaryti {{name}}, {{displayCount}} neskaitytos žinutės", + "openUnread_other": "Atidaryti {{name}}, {{displayCount}} neskaitytos žinutės", "open": "Atidaryti {{name}}", "openSettings": "Atidaryti {{name}} nustatymus", "fixOnKiloAi": "Ištaisyti kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Įjungti automatinį taisymą?", "enableAutoRemediationConfirmMessage": "Security Agent automatiškai atidarys taisymo PR tinkamiems išnaudojamiems radiniams.", "enable": "Įjungti", - "queuedOne": "{{count}} rastas radinys įrašytas analizei.", - "queuedMany": "{{count}} rasti radiniai įrašyti analizei.", + "queued_one": "{{displayCount}} rastas radinys įrašytas analizei.", + "queued": "{{displayCount}} rasti radiniai įrašyti analizei.", + "queued_other": "{{displayCount}} rasti radiniai įrašyti analizei.", "severityCriticalOnly": "Tik kritiniai", "severityHighAndAbove": "Aukštas ir didesnis", "severityMediumAndAbove": "Vidutinis ir didesnis", @@ -1482,8 +1490,9 @@ "on": "Įjungta", "off": "Išjungta", "allRepositories": "Visos saugyklos", - "repositorySelected": "Pasirinkta {{count}} saugykla", - "repositoriesSelected": "Pasirinkta {{count}} saugyklos", + "repositoriesCount_one": "Pasirinkta {{displayCount}} saugykla", + "repositoriesCount": "Pasirinkta {{displayCount}} saugyklos", + "repositoriesCount_other": "Pasirinkta {{displayCount}} saugyklos", "selectRepositories": "Pasirinkti saugyklas", "selectRepositoriesSubtitle": "Pasirinkite, kokias saugyklas stebi Saugos agentas", "repositories": "Saugyklos", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesija ištrinta", "needsInput": "reikia įvesties", "fromPlatform": "iš {{platform}}", - "centOne": "centas", - "centOther": "centai", - "dollarOne": "doleris", - "dollarOther": "doleriai" + "cent_one": "centas", + "cent": "centai", + "cent_other": "centai", + "dollar_one": "doleris", + "dollar": "doleriai", + "dollar_other": "doleriai" }, "githubInstall": { "couldNotOpenTitle": "Nepavyko atidaryti GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Nepavyko atmesti juodraščio. Bandykite dar kartą." }, "partRenderer": { - "updatedFile": "Atnaujinta {{count}} rinkmena", - "updatedFiles": "Atnaujintos {{count}} rinkmenos" + "updatedFileCount_one": "Atnaujinta {{displayCount}} rinkmena", + "updatedFileCount": "Atnaujintos {{displayCount}} rinkmenos", + "updatedFileCount_other": "Atnaujintos {{displayCount}} rinkmenos" }, "toolPatch": { "operationAdded": "Pridėta", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ankstesnės žinutės įkeltos", "retryHint": "Bando dar kartą įkelti ankstesnes šios sesijos žinutes.", - "omittedOne": "Kai kurie ankstesni šios sesijos elementai negalėjo būti parodyti.", - "omittedMany": "{{count}} ankstesni šios sesijos elementai negalėjo būti parodyti.", + "omitted_one": "Kai kurie ankstesni šios sesijos elementai negalėjo būti parodyti.", + "omitted": "{{displayCount}} ankstesni šios sesijos elementai negalėjo būti parodyti.", + "omitted_other": "{{displayCount}} ankstesni šios sesijos elementai negalėjo būti parodyti.", "couldNotLoad": "Nepavyko įkelti ankstesnių žinučių.", "unavailable": "Ankstesnės žinutės neprieinamos.", "tooLarge": "Ankstesnės žinutės per didelės, kad būtų įkeltos." @@ -2069,10 +2082,12 @@ "viewTable": "Peržiūrėti lentelę", "title": "Lentelė", "close": "Uždaryti lentelę", - "column": "stulpelis", - "columns": "stulpeliai", - "row": "eilutė", - "rows": "eilutės", + "columnCount_one": "stulpelis", + "columnCount": "stulpeliai", + "columnCount_other": "stulpeliai", + "rowCount_one": "eilutė", + "rowCount": "eilutės", + "rowCount_other": "eilutės", "opensFullScreen": "atidaro visą ekraną" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "iš {{window}} žetonų", "tokens": "žetonai", "tokensWithPercentage": "žetonai ({{percentage}})", - "stepsCountOne": "{{steps}} žingsnis", - "stepsCountMany": "{{steps}} žingsniai", + "stepsCount_one": "{{steps}} žingsnis", + "stepsCount": "{{steps}} žingsniai", + "stepsCount_other": "{{steps}} žingsniai", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nauja kodavimo užduotis", "explore": "Naršyti", "seeAll": "Rodyti viską", - "kiloAgents": "Kilo agentai", - "greetingMorning": "Labas rytas", - "greetingAfternoon": "Laba diena", - "greetingEvening": "Labas vakaras" + "kiloAgents": "Kilo agentai" }, "imageViewer": { "close": "Uždaryti {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Atidaro Kilo Pass valdymą internete.", "notSubscribed": "Neprenumeruojama", "overallocated": "Pass priskyrimai viršija apmokėtas vietas", - "paidSeatOne": "{{count}} apmokėta vieta", - "paidSeatOther": "{{count}} apmokėtos vietos", + "paidSeat_one": "{{displayCount}} apmokėta vieta", + "paidSeat": "{{displayCount}} apmokėtos vietos", + "paidSeat_other": "{{displayCount}} apmokėtos vietos", "paymentNeedsAttention": "Apmokėjimui reikia dėmesio", "paymentPending": "Apmokėjimas laukia", "processingBlocked": "Apdorojimas blokuotas", diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 001014d0a9..79abc03dc1 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Ielādēti {{loaded}} no {{total}} failiem", "loadAllFiles": "Ielādēt visus failus", "loadAll": "Ielādēt visu", - "fileLoaded": "Ielādēts {{count}} fails", - "filesLoaded": "Ielādēti {{count}} faili", - "fileLoadedOfTotal": "Ielādēts {{count}} fails no {{total}}", - "filesLoadedOfTotal": "Ielādēti {{count}} faili no {{total}}", + "fileLoadedCount_one": "Ielādēts {{displayCount}} fails", + "fileLoadedCount": "Ielādēti {{displayCount}} faili", + "fileLoadedCount_other": "Ielādēti {{displayCount}} faili", + "fileLoadedOfTotalCount_one": "Ielādēts {{displayCount}} fails no {{total}}", + "fileLoadedOfTotalCount": "Ielādēti {{displayCount}} faili no {{total}}", + "fileLoadedOfTotalCount_other": "Ielādēti {{displayCount}} faili no {{total}}", "filesStillLoading": "Faili joprojām tiek ielādēti. Velciet, lai atjauninātu.", "goToOverview": "Doties uz pārskatu", "goToOverviewTab": "Doties uz pārskata cilni" @@ -288,8 +290,9 @@ "resolved": "Atrisināts", "outdated": "Novecojis", "file": "Fails", - "oneComment": "1 komentārs", - "commentCount": "{{count}} komentāri", + "comment_one": "1 komentārs", + "comment": "{{displayCount}} komentāri", + "comment_other": "{{displayCount}} komentāri", "startedRelative": " · sākts {{relative}}", "couldNotLoadMore": "Neizdevās ielādēt vairāk komentāru.", "retryLoadingMore": "Mēģināt ielādēt vairāk komentāru vēlreiz", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakcijas", "addReaction": "Pievienot reakciju", "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", - "reactionSingular": "reakcija", - "reactionPlural": "reakcijas", + "reaction_one": "reakcija", + "reaction": "reakcijas", + "reaction_other": "reakcijas", "commentActions": "Komentāru darbības", "reportContent": "Ziņot par saturu", "reportUser": "Ziņot par lietotāju", @@ -452,8 +456,9 @@ "deletePendingMessage": "Šis komentārs tiks noņemts no pārskata rindas.", "delete": "Dzēst", "summaryOptional": "Kopsavilkums (neobligāts)", - "pendingCommentSingular": "gaidītais komentārs", - "pendingCommentPlural": "gaidītie komentāri", + "pendingComment_one": "gaidītais komentārs", + "pendingComment": "gaidītie komentāri", + "pendingComment_other": "gaidītie komentāri", "submitCountOfTotal": "Iesniegt {{freshCount}} no {{totalCount}} komentāriem", "submitReview": "Iesniegt pārskatu", "partialPostedMessage": "Publicēti {{freshCount}} komentāri. {{staleCount}} komentāri norāda uz vecāku commit un palika jūsu rindā." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Atvērts · Nepieciešams pārskats", "stateOpen": "Atvērts", "unknownAuthor": "Nezināms autors", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fails", - "filePlural": "faili" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fails", + "file": "faili", + "file_other": "faili" }, "pendingComment": { "editOutdatedA11y": "Rediģēt novecojušo gaidīto komentāru uz {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Kāds", - "oneTyping": "{{name}} raksta…", - "manyTyping": "{{names}} raksta…" + "typing_one": "{{name}} raksta…", + "typing": "{{names}} raksta…", + "typing_other": "{{names}} raksta…" }, "botStatus": { "online": "Tiešsaistē", @@ -722,12 +730,10 @@ "couldNotLoad": "Neizdevās ielādēt norēķinu informāciju", "manageOnWeb": "Pārvaldīt norēķinus tīmeklī", "commitPlan": "Commit", - "daysLeft": "Atlikušas {{count}} dienas", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Jūsu pēdējais Commit termiņš beidzas {{date}}. Turpiniet kā Standard par {{price}}, vai mitināšana beigsies.", "freeTrial": "Bezmaksas izmēģinājums", "hostingEnds": "Mitināšana beidzas", - "oneDayLeft": "Atlikusi 1 diena", "renews": "Atjaunojas", "standardMonthToMonth": "Standard katru mēnesi", "standardStartsOn": "Standard sākas {{date}} par {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ir nepieciešama uzmanība: {{label}}", - "openUnreadOne": "Atvērt {{name}}, {{count}} nelasīts ziņojums", - "openUnreadMany": "Atvērt {{name}}, {{count}} nelasīti ziņojumi", + "openUnread_one": "Atvērt {{name}}, {{displayCount}} nelasīts ziņojums", + "openUnread": "Atvērt {{name}}, {{displayCount}} nelasīti ziņojumi", + "openUnread_other": "Atvērt {{name}}, {{displayCount}} nelasīti ziņojumi", "open": "Atvērt {{name}}", "openSettings": "Atvērt iestatījumus {{name}}", "fixOnKiloAi": "Novērst vietnē kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Iespējot automātisko novēršanu?", "enableAutoRemediationConfirmMessage": "Drošības aģents automātiski atvērs novēršanas PR atbilstošiem izmantojamiem atradumiem.", "enable": "Iespējot", - "queuedOne": "{{count}} esošs atradums ievietots analīzes rindā.", - "queuedMany": "{{count}} esošie atradumi ievietoti analīzes rindā.", + "queued_one": "{{displayCount}} esošs atradums ievietots analīzes rindā.", + "queued": "{{displayCount}} esošie atradumi ievietoti analīzes rindā.", + "queued_other": "{{displayCount}} esošie atradumi ievietoti analīzes rindā.", "severityCriticalOnly": "Tikai kritiski", "severityHighAndAbove": "Augsts un augstāk", "severityMediumAndAbove": "Vidējs un augstāk", @@ -1482,8 +1490,9 @@ "on": "Ieslēgts", "off": "Izslēgts", "allRepositories": "Visi repozitoriji", - "repositorySelected": "Izvēlēts {{count}} repozitorijs", - "repositoriesSelected": "Izvēlēti {{count}} repozitoriji", + "repositoriesCount_one": "Izvēlēts {{displayCount}} repozitorijs", + "repositoriesCount": "Izvēlēti {{displayCount}} repozitoriji", + "repositoriesCount_other": "Izvēlēti {{displayCount}} repozitoriji", "selectRepositories": "Izvēlēties repozitorijus", "selectRepositoriesSubtitle": "Izvēlies, kurus repozitorijus Security Agent uzrauga", "repositories": "Repozitoriji", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesija dzēsta", "needsInput": "nepieciešama ievade", "fromPlatform": "no {{platform}}", - "centOne": "cents", - "centOther": "centi", - "dollarOne": "dolārs", - "dollarOther": "dolāri" + "cent_one": "cents", + "cent": "centi", + "cent_other": "centi", + "dollar_one": "dolārs", + "dollar": "dolāri", + "dollar_other": "dolāri" }, "githubInstall": { "couldNotOpenTitle": "Neizdevās atvērt GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Neizdevās atmest melnrakstu. Lūdzu, mēģini vēlreiz." }, "partRenderer": { - "updatedFile": "Atjaunināts {{count}} fails", - "updatedFiles": "Atjaunināti {{count}} faili" + "updatedFileCount_one": "Atjaunināts {{displayCount}} fails", + "updatedFileCount": "Atjaunināti {{displayCount}} faili", + "updatedFileCount_other": "Atjaunināti {{displayCount}} faili" }, "toolPatch": { "operationAdded": "Pievienots", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ielādēti agrāki ziņojumi", "retryHint": "Atkārto vecāko ziņojumu ielādi šai sesijai.", - "omittedOne": "Dažus agrākus vienumus no šīs sesijas nevarēja parādīt.", - "omittedMany": "{{count}} agrākus vienumus no šīs sesijas nevarēja parādīt.", + "omitted_one": "Dažus agrākus vienumus no šīs sesijas nevarēja parādīt.", + "omitted": "{{displayCount}} agrākus vienumus no šīs sesijas nevarēja parādīt.", + "omitted_other": "{{displayCount}} agrākus vienumus no šīs sesijas nevarēja parādīt.", "couldNotLoad": "Neizdevās ielādēt agrākus ziņojumus.", "unavailable": "Agrāki ziņojumi nav pieejami.", "tooLarge": "Agrāki ziņojumi ir pārāk lieli, lai tos ielādētu." @@ -2069,10 +2082,12 @@ "viewTable": "Skatīt tabulu", "title": "Tabula", "close": "Aizvērt tabulu", - "column": "kolonna", - "columns": "kolonnas", - "row": "rinda", - "rows": "rindas", + "columnCount_one": "kolonna", + "columnCount": "kolonnas", + "columnCount_other": "kolonnas", + "rowCount_one": "rinda", + "rowCount": "rindas", + "rowCount_other": "rindas", "opensFullScreen": "atver pilnekrāna režīmā" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "no {{window}} tokeniem", "tokens": "tokeni", "tokensWithPercentage": "tokeni ({{percentage}})", - "stepsCountOne": "{{steps}} solis", - "stepsCountMany": "{{steps}} soļi", + "stepsCount_one": "{{steps}} solis", + "stepsCount": "{{steps}} soļi", + "stepsCount_other": "{{steps}} soļi", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Jauns kodēšanas uzdevums", "explore": "Izpētīt", "seeAll": "Skatīt visus", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Labrīt", - "greetingAfternoon": "Labdien", - "greetingEvening": "Labvakar" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Aizvērt {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Atver Kilo Pass pārvaldību tīmeklī.", "notSubscribed": "Nav abonēts", "overallocated": "Pass piešķīrumi pārsniedz apmaksātās vietas", - "paidSeatOne": "{{count}} apmaksāta vieta", - "paidSeatOther": "{{count}} apmaksātas vietas", + "paidSeat_one": "{{displayCount}} apmaksāta vieta", + "paidSeat": "{{displayCount}} apmaksātas vietas", + "paidSeat_other": "{{displayCount}} apmaksātas vietas", "paymentNeedsAttention": "Maksājumam nepieciešama uzmanība", "paymentPending": "Maksājums gaida apstiprinājumu", "processingBlocked": "Apstrāde bloķēta", diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index aa4d72a63a..26833d08f1 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} amin'ny {{total}} rakitra voavaky", "loadAllFiles": "Hamaky ny rakitra rehetra", "loadAll": "Hamaky daholo", - "fileLoaded": "{{count}} rakitra voavaky", - "filesLoaded": "{{count}} rakitra voavaky", - "fileLoadedOfTotal": "{{count}} rakitra voavaky amin'ny {{total}}", - "filesLoadedOfTotal": "{{count}} rakitra voavaky amin'ny {{total}}", + "fileLoadedCount_one": "{{displayCount}} rakitra voavaky", + "fileLoadedCount": "{{displayCount}} rakitra voavaky", + "fileLoadedCount_other": "{{displayCount}} rakitra voavaky", + "fileLoadedOfTotalCount_one": "{{displayCount}} rakitra voavaky amin'ny {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} rakitra voavaky amin'ny {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} rakitra voavaky amin'ny {{total}}", "filesStillLoading": "Mbola mamaky ny rakitra. Sintony mba havaozina.", "goToOverview": "Mankanesa any amin'ny Overview", "goToOverviewTab": "Mankanesa any amin'ny takelaka Overview" @@ -288,8 +290,9 @@ "resolved": "Voavaha", "outdated": "Lany daty", "file": "Rakitra", - "oneComment": "Hevitra 1", - "commentCount": "{{count}} hevitra", + "comment_one": "Hevitra 1", + "comment": "{{displayCount}} hevitra", + "comment_other": "{{displayCount}} hevitra", "startedRelative": " · nanomboka {{relative}}", "couldNotLoadMore": "Tsy afaka namaky hevitra fanampiny.", "retryLoadingMore": "Andramana indray ny famakiana hevitra fanampiny", @@ -299,8 +302,9 @@ "reactionsTitle": "Réactions", "addReaction": "Hanampy réaction", "reactionPill": "{{emoji}} réaction, {{count}} {{countLabel}}", - "reactionSingular": "réaction", - "reactionPlural": "réactions", + "reaction_one": "réaction", + "reaction": "réactions", + "reaction_other": "réactions", "commentActions": "Hevitra hetsika", "reportContent": "Hitaterana ny votoaty", "reportUser": "Hitaterana ny mpampiasa", @@ -452,8 +456,9 @@ "deletePendingMessage": "Hesorina amin'ny filaharana fandinihana ity hevitra ity.", "delete": "Hamafa", "summaryOptional": "Famintinana (tsy voatery)", - "pendingCommentSingular": "hevitra miandry", - "pendingCommentPlural": "hevitra miandry", + "pendingComment_one": "hevitra miandry", + "pendingComment": "hevitra miandry", + "pendingComment_other": "hevitra miandry", "submitCountOfTotal": "Hanefa {{freshCount}} amin'ny {{totalCount}} hevitra", "submitReview": "Hanefa ny fandinihana", "partialPostedMessage": "Navoaka {{freshCount}} hevitra. {{staleCount}} hevitra manondro commit taloha ary nijanona tao amin'ny filaharan'ireo fika rehetrao." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Misokatra · Ilaina fandinihana", "stateOpen": "Misokatra", "unknownAuthor": "Mpanoratra tsy fantatra", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "rakitra", - "filePlural": "rakitra" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "rakitra", + "file": "rakitra", + "file_other": "rakitra" }, "pendingComment": { "editOutdatedA11y": "Hanova hevitra miandry lany daty ao amin'ny {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Olona iray", - "oneTyping": "{{name}} manoratra...", - "manyTyping": "{{names}} manoratra..." + "typing_one": "{{name}} manoratra...", + "typing": "{{names}} manoratra...", + "typing_other": "{{names}} manoratra..." }, "botStatus": { "online": "An-tserasera", @@ -722,12 +730,10 @@ "couldNotLoad": "Tsy afaka namaky ny fampahalalana momba ny fandoavana", "manageOnWeb": "Tantano ny fandoavana amin'ny Web", "commitPlan": "Commit", - "daysLeft": "{{count}} andro sisa", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Miafara amin'ny {{date}} ny fotoana farany Commit anao. Haharitry ho Standard amin'ny {{price}}, raha tsy izany dia mifarana ny hosting.", "freeTrial": "Andrana maimaimpoana", "hostingEnds": "Mifarana ny hosting", - "oneDayLeft": "1 andro sisa", "renews": "Vaovao indray", "standardMonthToMonth": "Standard isam-bolana", "standardStartsOn": "Manomboka amin'ny {{date}} ny Standard amin'ny {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "Mila dinihana ny {{name}}: {{label}}", - "openUnreadOne": "Sokafy ny {{name}}, {{count}} hafatra tsy novakiana", - "openUnreadMany": "Sokafy ny {{name}}, {{count}} hafatra tsy novakiana", + "openUnread_one": "Sokafy ny {{name}}, {{displayCount}} hafatra tsy novakiana", + "openUnread": "Sokafy ny {{name}}, {{displayCount}} hafatra tsy novakiana", + "openUnread_other": "Sokafy ny {{name}}, {{displayCount}} hafatra tsy novakiana", "open": "Sokafy ny {{name}}", "openSettings": "Sokafy ny settings ho an'ny {{name}}", "fixOnKiloAi": "Amboary any kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Alefaso ve ny fanarenana mandeha ho azy?", "enableAutoRemediationConfirmMessage": "Hanokatra PRs fanarenana mandeha ho azy ho an'ny fikarohana azo ampiasaina ho fanao ratsy azo ekena ny Security Agent.", "enable": "Alefaso", - "queuedOne": "Fikarohana {{count}} efa misy voalahatra ho an'ny famakafakana.", - "queuedMany": "Fikarohana {{count}} efa misy voalahatra ho an'ny famakafakana.", + "queued_one": "Fikarohana {{displayCount}} efa misy voalahatra ho an'ny famakafakana.", + "queued": "Fikarohana {{displayCount}} efa misy voalahatra ho an'ny famakafakana.", + "queued_other": "Fikarohana {{displayCount}} efa misy voalahatra ho an'ny famakafakana.", "severityCriticalOnly": "Zava-dehibe ihany", "severityHighAndAbove": "Avo sy ambony kokoa", "severityMediumAndAbove": "Antonony sy ambony kokoa", @@ -1482,8 +1490,9 @@ "on": "Misy", "off": "Maty", "allRepositories": "Ny repository rehetra", - "repositorySelected": "Repository {{count}} voafidy", - "repositoriesSelected": "Repository {{count}} voafidy", + "repositoriesCount_one": "Repository {{displayCount}} voafidy", + "repositoriesCount": "Repository {{displayCount}} voafidy", + "repositoriesCount_other": "Repository {{displayCount}} voafidy", "selectRepositories": "Safidio ny repository", "selectRepositoriesSubtitle": "Safidio hoe iza amin'ny repository no arahi-masoin'ny Security Agent", "repositories": "Repository", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Voafafa ny session", "needsInput": "mila fampidirana", "fromPlatform": "avy amin'ny {{platform}}", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dolara", - "dollarOther": "dolara" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dolara", + "dollar": "dolara", + "dollar_other": "dolara" }, "githubInstall": { "couldNotOpenTitle": "Tsy afaka nanokatra ny GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Tsy afaka nandao ny draft. Andramo indray azafady." }, "partRenderer": { - "updatedFile": "Nohavaozina ny rakitra {{count}}", - "updatedFiles": "Nohavaozina ny rakitra {{count}}" + "updatedFileCount_one": "Nohavaozina ny rakitra {{displayCount}}", + "updatedFileCount": "Nohavaozina ny rakitra {{displayCount}}", + "updatedFileCount_other": "Nohavaozina ny rakitra {{displayCount}}" }, "toolPatch": { "operationAdded": "Nasiana", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Voaray ny hafatra taloha", "retryHint": "Averina indray ny famakiana ny hafatra taloha amin'ity session ity.", - "omittedOne": "Tsy afaka naseho ny sasany amin'ireo zavatra taloha amin'ity session ity.", - "omittedMany": "Tsy afaka naseho ny {{count}} zavatra taloha amin'ity session ity.", + "omitted_one": "Tsy afaka naseho ny sasany amin'ireo zavatra taloha amin'ity session ity.", + "omitted": "Tsy afaka naseho ny {{displayCount}} zavatra taloha amin'ity session ity.", + "omitted_other": "Tsy afaka naseho ny {{displayCount}} zavatra taloha amin'ity session ity.", "couldNotLoad": "Tsy afaka nampidirina ny hafatra taloha.", "unavailable": "Tsy misy ny hafatra taloha.", "tooLarge": "Lehibe loatra ny hafatra taloha ka tsy afaka nampidirina." @@ -2069,10 +2082,12 @@ "viewTable": "Jereo ny tabilao", "title": "Tabilao", "close": "Hanidy tabilao", - "column": "tsanganana", - "columns": "tsanganana", - "row": "andalana", - "rows": "andalana", + "columnCount_one": "tsanganana", + "columnCount": "tsanganana", + "columnCount_other": "tsanganana", + "rowCount_one": "andalana", + "rowCount": "andalana", + "rowCount_other": "andalana", "opensFullScreen": "mampiseho efijery feno" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "amin'ny {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} dingana", - "stepsCountMany": "{{steps}} dingana", + "stepsCount_one": "{{steps}} dingana", + "stepsCount": "{{steps}} dingana", + "stepsCount_other": "{{steps}} dingana", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Asa coding vaovao", "explore": "Mijerena", "seeAll": "Jereo daholo", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Maraina tsara", - "greetingAfternoon": "Tandriam-pahalemana", - "greetingEvening": "Miarahaba anao" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Hanidy {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Misokatra amin'ny web ny fitantanana Kilo Pass.", "notSubscribed": "Tsy voaabone", "overallocated": "Mihoatra ny seza voaloa ny fizarana Pass", - "paidSeatOne": "{{count}} seza voaloa", - "paidSeatOther": "{{count}} seza voaloa", + "paidSeat_one": "{{displayCount}} seza voaloa", + "paidSeat": "{{displayCount}} seza voaloa", + "paidSeat_other": "{{displayCount}} seza voaloa", "paymentNeedsAttention": "Mila jerena ny fandoavam-bola", "paymentPending": "Miandry ny fandoavam-bola", "processingBlocked": "Voasakana ny fanodinana", diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index 41035a2d99..cf68fd5237 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} o {{total}} kōnae kua utaina", "loadAllFiles": "Uta i ngā kōnae katoa", "loadAll": "Uta katoa", - "fileLoaded": "{{count}} kōnae kua utaina", - "filesLoaded": "{{count}} kōnae kua utaina", - "fileLoadedOfTotal": "{{count}} kōnae kua utaina o {{total}}", - "filesLoadedOfTotal": "{{count}} kōnae kua utaina o {{total}}", + "fileLoadedCount_one": "{{displayCount}} kōnae kua utaina", + "fileLoadedCount": "{{displayCount}} kōnae kua utaina", + "fileLoadedCount_other": "{{displayCount}} kōnae kua utaina", + "fileLoadedOfTotalCount_one": "{{displayCount}} kōnae kua utaina o {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} kōnae kua utaina o {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} kōnae kua utaina o {{total}}", "filesStillLoading": "Kei te uta tonu ngā kōnae. Tōia kia whakahou.", "goToOverview": "Haere ki te Tirohanga Whānui", "goToOverviewTab": "Haere ki te ripa Tirohanga Whānui" @@ -288,8 +290,9 @@ "resolved": "Kua oti", "outdated": "Kua tawhito", "file": "Kōnae", - "oneComment": "1 kōrero", - "commentCount": "{{count}} kōrero", + "comment_one": "1 kōrero", + "comment": "{{displayCount}} kōrero", + "comment_other": "{{displayCount}} kōrero", "startedRelative": " · i tīmata {{relative}}", "couldNotLoadMore": "Kāore i taea te uta ētahi atu kōrero.", "retryLoadingMore": "Whakamātau anō te uta i ētahi atu kōrero", @@ -299,8 +302,9 @@ "reactionsTitle": "Ngā Urupare", "addReaction": "Tāpiri urupare", "reactionPill": "Urupare {{emoji}}, {{count}} {{countLabel}}", - "reactionSingular": "urupare", - "reactionPlural": "ngā urupare", + "reaction_one": "urupare", + "reaction": "ngā urupare", + "reaction_other": "ngā urupare", "commentActions": "Ngā mahi kōrero", "reportContent": "Pūrongo i te ihirangi", "reportUser": "Pūrongo i te kaimahi", @@ -452,8 +456,9 @@ "deletePendingMessage": "Ka tangohia tēnei kōrero mai i te tūtira arotake.", "delete": "Muku", "summaryOptional": "Whakarāpopoto (kōwhiringa)", - "pendingCommentSingular": "kōrero e tatari ana", - "pendingCommentPlural": "ngā kōrero e tatari ana", + "pendingComment_one": "kōrero e tatari ana", + "pendingComment": "ngā kōrero e tatari ana", + "pendingComment_other": "ngā kōrero e tatari ana", "submitCountOfTotal": "Tuku i {{freshCount}} o {{totalCount}} kōrero", "submitReview": "Tuku i te arotake", "partialPostedMessage": "Kua tukuna {{freshCount}} kōrero. E tohu ana {{staleCount}} kōrero ki tētahi commit tawhito, ā, i noho ki tō tūtira." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Tuwhera · E hiahiatia ana te arotake", "stateOpen": "Tuwhera", "unknownAuthor": "Kaituhi kāore e mōhiotia", - "commitSingular": "commit", - "commitPlural": "ngā commit", - "fileSingular": "kōnae", - "filePlural": "ngā kōnae" + "commit_one": "commit", + "commit": "ngā commit", + "commit_other": "ngā commit", + "file_one": "kōnae", + "file": "ngā kōnae", + "file_other": "ngā kōnae" }, "pendingComment": { "editOutdatedA11y": "Whakatika i te kōrero tawhito e tatari ana ki {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Tētahi", - "oneTyping": "Kei te tuhi a {{name}}...", - "manyTyping": "Kei te tuhi {{names}}..." + "typing_one": "Kei te tuhi a {{name}}...", + "typing": "Kei te tuhi {{names}}...", + "typing_other": "Kei te tuhi {{names}}..." }, "botStatus": { "online": "I runga ipurangi", @@ -722,12 +730,10 @@ "couldNotLoad": "Kāore i taea te uta i ngā mōhiohio utunga", "manageOnWeb": "Whakahaere Utunga i te Tukutuku", "commitPlan": "Whakapūmau", - "daysLeft": "{{count}} rā e toe ana", "earlybird": "Manu moata", "finalCommitTermEndsOn": "Ka mutu tō wā Whakapūmau whakamutunga i {{date}}. Haere tonu hei Paerewa mō {{price}}, ka mutu rānei te manaaki.", "freeTrial": "Whakamātau koreutu", "hostingEnds": "Ka mutu te manaaki", - "oneDayLeft": "1 rā e toe ana", "renews": "Ka whakahōu", "standardMonthToMonth": "Paerewa ā-marama", "standardStartsOn": "Ka tīmata te Paerewa i {{date}} mō {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "Me aro atu ki a {{name}}: {{label}}", - "openUnreadOne": "Uwhera a {{name}}, {{count}} karere kāore i pānuitia", - "openUnreadMany": "Uwhera a {{name}}, {{count}} ngā karere kāore i pānuitia", + "openUnread_one": "Uwhera a {{name}}, {{displayCount}} karere kāore i pānuitia", + "openUnread": "Uwhera a {{name}}, {{displayCount}} ngā karere kāore i pānuitia", + "openUnread_other": "Uwhera a {{name}}, {{displayCount}} ngā karere kāore i pānuitia", "open": "Uwhera a {{name}}", "openSettings": "Uwhera ngā tautuhinga mō {{name}}", "fixOnKiloAi": "Whakatika ki kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Whakahohe te whakatika aunoa?", "enableAutoRemediationConfirmMessage": "Ka uwheratia e te Kaiwhakahaere Haumaru ngā PR whakatika ā-aunoa mō ngā kitenga e taea ana te whakamahi kino.", "enable": "Whakahohe", - "queuedOne": "{{count}} kitea tawhito e tū ana hei tātari.", - "queuedMany": "{{count}} kitea tawhito e tū ana hei tātari.", + "queued_one": "{{displayCount}} kitea tawhito e tū ana hei tātari.", + "queued": "{{displayCount}} kitea tawhito e tū ana hei tātari.", + "queued_other": "{{displayCount}} kitea tawhito e tū ana hei tātari.", "severityCriticalOnly": "Anake te tino kino", "severityHighAndAbove": "Teitei me te ake", "severityMediumAndAbove": "Waenga me te ake", @@ -1482,8 +1490,9 @@ "on": "Kā", "off": "Kino", "allRepositories": "Ngā pūranga katoa", - "repositorySelected": "{{count}} pūranga kua kōwhiria", - "repositoriesSelected": "{{count}} pūranga kua kōwhiria", + "repositoriesCount_one": "{{displayCount}} pūranga kua kōwhiria", + "repositoriesCount": "{{displayCount}} pūranga kua kōwhiria", + "repositoriesCount_other": "{{displayCount}} pūranga kua kōwhiria", "selectRepositories": "Kōwhiria ngā pūranga", "selectRepositoriesSubtitle": "Kōwhiria ko wai ngā pūranga e tirotirohia ana e Security Agent", "repositories": "Ngā pūranga", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Kua whakakorea te wātūtū", "needsInput": "e hiahia ana ki te whakaurunga", "fromPlatform": "mai i {{platform}}", - "centOne": "heneti", - "centOther": "ngā heneti", - "dollarOne": "tāra", - "dollarOther": "ngā tāra" + "cent_one": "heneti", + "cent": "ngā heneti", + "cent_other": "ngā heneti", + "dollar_one": "tāra", + "dollar": "ngā tāra", + "dollar_other": "ngā tāra" }, "githubInstall": { "couldNotOpenTitle": "Kāore i taea te whakatuwhera GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Kāore i taea te whakarere i te tauira. Tēnā whakamātau anō." }, "partRenderer": { - "updatedFile": "Kua whakahoutia {{count}} kōnae", - "updatedFiles": "Kua whakahoutia {{count}} kōnae" + "updatedFileCount_one": "Kua whakahoutia {{displayCount}} kōnae", + "updatedFileCount": "Kua whakahoutia {{displayCount}} kōnae", + "updatedFileCount_other": "Kua whakahoutia {{displayCount}} kōnae" }, "toolPatch": { "operationAdded": "Kua tāpiri", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Kua uta ngā karere o mua", "retryHint": "Ka whakamātau anō ki te uta i ngā karere tawhito mō tēnei wātū.", - "omittedOne": "Kāore i taea te whakaatu ētahi o ngā mea o mua o tēnei wātū.", - "omittedMany": "Kāore i taea te whakaatu ngā mea {{count}} o mua o tēnei wātū.", + "omitted_one": "Kāore i taea te whakaatu ētahi o ngā mea o mua o tēnei wātū.", + "omitted": "Kāore i taea te whakaatu ngā mea {{displayCount}} o mua o tēnei wātū.", + "omitted_other": "Kāore i taea te whakaatu ngā mea {{displayCount}} o mua o tēnei wātū.", "couldNotLoad": "Kāore i taea te uta ngā karere o mua.", "unavailable": "Kāore ngā karere o mua e wātea ana.", "tooLarge": "He nui rawa ngā karere o mua kia utaina." @@ -2069,10 +2082,12 @@ "viewTable": "Tirohia te tēpu", "title": "Tēpu", "close": "Katia te tēpu", - "column": "tīwae", - "columns": "ngā tīwae", - "row": "rarangi", - "rows": "ngā rarangi", + "columnCount_one": "tīwae", + "columnCount": "ngā tīwae", + "columnCount_other": "ngā tīwae", + "rowCount_one": "rarangi", + "rowCount": "ngā rarangi", + "rowCount_other": "ngā rarangi", "opensFullScreen": "ka whakatuwhera i te mata kī" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "o ngā tōkena {{window}}", "tokens": "ngā tōkena", "tokensWithPercentage": "ngā tōkena ({{percentage}})", - "stepsCountOne": "{{steps}} mahi", - "stepsCountMany": "{{steps}} ngā mahi", + "stepsCount_one": "{{steps}} mahi", + "stepsCount": "{{steps}} ngā mahi", + "stepsCount_other": "{{steps}} ngā mahi", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Mahi whakawaehere hōu", "explore": "Torotoro", "seeAll": "Tirohia katoa", - "kiloAgents": "Ngā Kaihoko Kilo", - "greetingMorning": "Ata mārie", - "greetingAfternoon": "Ahiahi mārie", - "greetingEvening": "Pō mārie" + "kiloAgents": "Ngā Kaihoko Kilo" }, "imageViewer": { "close": "Katia {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Ka whakatuwhera i te whakahaere Kilo Pass i te paetukutuku.", "notSubscribed": "Kāore i ohauru", "overallocated": "Kua nui ake ngā whakaritenga Pass i ngā tūru kua utua", - "paidSeatOne": "{{count}} tūru kua utua", - "paidSeatOther": "{{count}} ngā tūru kua utua", + "paidSeat_one": "{{displayCount}} tūru kua utua", + "paidSeat": "{{displayCount}} ngā tūru kua utua", + "paidSeat_other": "{{displayCount}} ngā tūru kua utua", "paymentNeedsAttention": "Me aro ki te utu", "paymentPending": "E tatari ana te utu", "processingBlocked": "Kua āraitia te tukatuka", diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index df735c81ad..ddaf6fe357 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} од {{total}} датотеки вчитани", "loadAllFiles": "Вчитај ги сите датотеки", "loadAll": "Вчитај сè", - "fileLoaded": "{{count}} датотека вчитана", - "filesLoaded": "{{count}} датотеки вчитани", - "fileLoadedOfTotal": "{{count}} датотека вчитана од {{total}}", - "filesLoadedOfTotal": "{{count}} датотеки вчитани од {{total}}", + "fileLoadedCount_one": "{{displayCount}} датотека вчитана", + "fileLoadedCount": "{{displayCount}} датотеки вчитани", + "fileLoadedCount_other": "{{displayCount}} датотеки вчитани", + "fileLoadedOfTotalCount_one": "{{displayCount}} датотека вчитана од {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} датотеки вчитани од {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} датотеки вчитани од {{total}}", "filesStillLoading": "Датотеките сè уште се вчитуваат. Повлечете за да освежите.", "goToOverview": "Оди на Преглед", "goToOverviewTab": "Оди на јазичето Преглед" @@ -288,8 +290,9 @@ "resolved": "Решено", "outdated": "Застарено", "file": "Датотека", - "oneComment": "1 коментар", - "commentCount": "{{count}} коментари", + "comment_one": "1 коментар", + "comment": "{{displayCount}} коментари", + "comment_other": "{{displayCount}} коментари", "startedRelative": " · започнато {{relative}}", "couldNotLoadMore": "Не можеше да се вчитаат повеќе коментари.", "retryLoadingMore": "Обиди се повторно со вчитувањето на повеќе коментари", @@ -299,8 +302,9 @@ "reactionsTitle": "Реакции", "addReaction": "Додај реакција", "reactionPill": "{{emoji}} реакција, {{count}} {{countLabel}}", - "reactionSingular": "реакција", - "reactionPlural": "реакции", + "reaction_one": "реакција", + "reaction": "реакции", + "reaction_other": "реакции", "commentActions": "Дејства на коментар", "reportContent": "Пријави содржина", "reportUser": "Пријави корисник", @@ -452,8 +456,9 @@ "deletePendingMessage": "Овој коментар ќе биде отстранет од редот за преглед.", "delete": "Избриши", "summaryOptional": "Резиме (опционално)", - "pendingCommentSingular": "коментар што чека", - "pendingCommentPlural": "коментари што чекаат", + "pendingComment_one": "коментар што чека", + "pendingComment": "коментари што чекаат", + "pendingComment_other": "коментари што чекаат", "submitCountOfTotal": "Испрати {{freshCount}} од {{totalCount}} коментари", "submitReview": "Испрати преглед", "partialPostedMessage": "Објавени {{freshCount}} коментар(и). {{staleCount}} коментар(и) упатуваат на постар commit и останаа во вашиот ред." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Отворено · Потребен преглед", "stateOpen": "Отворено", "unknownAuthor": "Непознат автор", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "датотека", - "filePlural": "датотеки" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "датотека", + "file": "датотеки", + "file_other": "датотеки" }, "pendingComment": { "editOutdatedA11y": "Уреди застарен коментар што чека на {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Некој", - "oneTyping": "{{name}} пишува...", - "manyTyping": "{{names}} пишуваат..." + "typing_one": "{{name}} пишува...", + "typing": "{{names}} пишуваат...", + "typing_other": "{{names}} пишуваат..." }, "botStatus": { "online": "На интернет", @@ -722,12 +730,10 @@ "couldNotLoad": "Не можев да ги вчитам информациите за наплата", "manageOnWeb": "Управувај со наплатата на Web", "commitPlan": "Посвети", - "daysLeft": "{{count}} дена остануваат", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Твојот последен Commit период завршува на {{date}}. Продолжи како Standard на {{price}}, или хостингот престанува.", "freeTrial": "Бесплатна проба", "hostingEnds": "Хостингот завршува", - "oneDayLeft": "Останува 1 ден", "renews": "Обновува", "standardMonthToMonth": "Standard месечно", "standardStartsOn": "Standard започнува на {{date}} на {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} бара внимание: {{label}}", - "openUnreadOne": "Отвори {{name}}, {{count}} непрочитана порака", - "openUnreadMany": "Отвори {{name}}, {{count}} непрочитани пораки", + "openUnread_one": "Отвори {{name}}, {{displayCount}} непрочитана порака", + "openUnread": "Отвори {{name}}, {{displayCount}} непрочитани пораки", + "openUnread_other": "Отвори {{name}}, {{displayCount}} непрочитани пораки", "open": "Отвори {{name}}", "openSettings": "Отвори поставки за {{name}}", "fixOnKiloAi": "Поправи на kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Да се овозможи автоматска санација?", "enableAutoRemediationConfirmMessage": "Security Agent автоматски ќе отвора PR-ови за санација за квалификувани искористливи наоѓања.", "enable": "Овозможи", - "queuedOne": "{{count}} постоечки наод е ставен во ред за анализа.", - "queuedMany": "{{count}} постоечки наоди се ставени во ред за анализа.", + "queued_one": "{{displayCount}} постоечки наод е ставен во ред за анализа.", + "queued": "{{displayCount}} постоечки наоди се ставени во ред за анализа.", + "queued_other": "{{displayCount}} постоечки наоди се ставени во ред за анализа.", "severityCriticalOnly": "Само критични", "severityHighAndAbove": "Високи и повисоки", "severityMediumAndAbove": "Средни и повисоки", @@ -1482,8 +1490,9 @@ "on": "Вклучено", "off": "Исклучено", "allRepositories": "Сите складишта", - "repositorySelected": "{{count}} избрано складиште", - "repositoriesSelected": "{{count}} избрани складишта", + "repositoriesCount_one": "{{displayCount}} избрано складиште", + "repositoriesCount": "{{displayCount}} избрани складишта", + "repositoriesCount_other": "{{displayCount}} избрани складишта", "selectRepositories": "Избери складишта", "selectRepositoriesSubtitle": "Избери кои складишта ги следи Безбедносниот агент", "repositories": "Складишта", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Сесијата е избришана", "needsInput": "бара внес", "fromPlatform": "од {{platform}}", - "centOne": "цент", - "centOther": "центи", - "dollarOne": "долар", - "dollarOther": "долари" + "cent_one": "цент", + "cent": "центи", + "cent_other": "центи", + "dollar_one": "долар", + "dollar": "долари", + "dollar_other": "долари" }, "githubInstall": { "couldNotOpenTitle": "Не можеше да се отвори GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Не можеше да се отфрли нацртот. Обиди се повторно." }, "partRenderer": { - "updatedFile": "Ажурирана {{count}} датотека", - "updatedFiles": "Ажурирани {{count}} датотеки" + "updatedFileCount_one": "Ажурирана {{displayCount}} датотека", + "updatedFileCount": "Ажурирани {{displayCount}} датотеки", + "updatedFileCount_other": "Ажурирани {{displayCount}} датотеки" }, "toolPatch": { "operationAdded": "Додадено", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Пораните пораки се вчитани", "retryHint": "Повторува обид за вчитување на постарите пораки за оваа сесија.", - "omittedOne": "Некои порани ставки од оваа сесија не можеа да се прикажат.", - "omittedMany": "{{count}} порани ставки од оваа сесија не можеа да се прикажат.", + "omitted_one": "Некои порани ставки од оваа сесија не можеа да се прикажат.", + "omitted": "{{displayCount}} порани ставки од оваа сесија не можеа да се прикажат.", + "omitted_other": "{{displayCount}} порани ставки од оваа сесија не можеа да се прикажат.", "couldNotLoad": "Не можев да ги вчитам пораните пораки.", "unavailable": "Пораните пораки не се достапни.", "tooLarge": "Пораните пораки се преголеми за вчитување." @@ -2069,10 +2082,12 @@ "viewTable": "Прикажи табела", "title": "Табела", "close": "Затвори табела", - "column": "колона", - "columns": "колони", - "row": "ред", - "rows": "редови", + "columnCount_one": "колона", + "columnCount": "колони", + "columnCount_other": "колони", + "rowCount_one": "ред", + "rowCount": "редови", + "rowCount_other": "редови", "opensFullScreen": "отвора цел екран" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "од {{window}} токени", "tokens": "токени", "tokensWithPercentage": "токени ({{percentage}})", - "stepsCountOne": "{{steps}} чекор", - "stepsCountMany": "{{steps}} чекори", + "stepsCount_one": "{{steps}} чекор", + "stepsCount": "{{steps}} чекори", + "stepsCount_other": "{{steps}} чекори", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Нова задача за кодирање", "explore": "Истражувај", "seeAll": "Види ги сите", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Добро утро", - "greetingAfternoon": "Добар ден", - "greetingEvening": "Добро вечер" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Затвори {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Отвора управување со Kilo Pass на веб.", "notSubscribed": "Не е претплатено", "overallocated": "Доделувањата на Pass надминуваат платени места", - "paidSeatOne": "{{count}} платено место", - "paidSeatOther": "{{count}} платени места", + "paidSeat_one": "{{displayCount}} платено место", + "paidSeat": "{{displayCount}} платени места", + "paidSeat_other": "{{displayCount}} платени места", "paymentNeedsAttention": "Плаќањето бара внимание", "paymentPending": "Плаќањето е во очекување", "processingBlocked": "Обработката е блокирана", diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index 85eb66836d..3efc56db94 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}}-ൽ {{loaded}} ഫയലുകൾ ലോഡ് ചെയ്തു", "loadAllFiles": "എല്ലാ ഫയലുകളും ലോഡ് ചെയ്യുക", "loadAll": "എല്ലാം ലോഡ് ചെയ്യുക", - "fileLoaded": "{{count}} ഫയൽ ലോഡ് ചെയ്തു", - "filesLoaded": "{{count}} ഫയലുകൾ ലോഡ് ചെയ്തു", - "fileLoadedOfTotal": "{{total}}-ൽ {{count}} ഫയൽ ലോഡ് ചെയ്തു", - "filesLoadedOfTotal": "{{total}}-ൽ {{count}} ഫയലുകൾ ലോഡ് ചെയ്തു", + "fileLoadedCount_one": "{{displayCount}} ഫയൽ ലോഡ് ചെയ്തു", + "fileLoadedCount": "{{displayCount}} ഫയലുകൾ ലോഡ് ചെയ്തു", + "fileLoadedCount_other": "{{displayCount}} ഫയലുകൾ ലോഡ് ചെയ്തു", + "fileLoadedOfTotalCount_one": "{{total}}-ൽ {{displayCount}} ഫയൽ ലോഡ് ചെയ്തു", + "fileLoadedOfTotalCount": "{{total}}-ൽ {{displayCount}} ഫയലുകൾ ലോഡ് ചെയ്തു", + "fileLoadedOfTotalCount_other": "{{total}}-ൽ {{displayCount}} ഫയലുകൾ ലോഡ് ചെയ്തു", "filesStillLoading": "ഫയലുകൾ ഇപ്പോഴും ലോഡ് ചെയ്യുന്നു. പുതുക്കാൻ വലിക്കുക.", "goToOverview": "ഓവർവ്യൂവിലേക്ക് പോകുക", "goToOverviewTab": "ഓവർവ്യൂ ടാബിലേക്ക് പോകുക" @@ -288,8 +290,9 @@ "resolved": "പരിഹരിച്ചു", "outdated": "കാലഹരണപ്പെട്ടത്", "file": "ഫയൽ", - "oneComment": "1 അഭിപ്രായം", - "commentCount": "{{count}} അഭിപ്രായങ്ങൾ", + "comment_one": "1 അഭിപ്രായം", + "comment": "{{displayCount}} അഭിപ്രായങ്ങൾ", + "comment_other": "{{displayCount}} അഭിപ്രായങ്ങൾ", "startedRelative": " · {{relative}}-ൽ ആരംഭിച്ചു", "couldNotLoadMore": "കൂടുതൽ അഭിപ്രായങ്ങൾ ലോഡ് ചെയ്യാനായില്ല.", "retryLoadingMore": "കൂടുതൽ അഭിപ്രായങ്ങൾ ലോഡ് ചെയ്യാൻ വീണ്ടും ശ്രമിക്കുക", @@ -299,8 +302,9 @@ "reactionsTitle": "റിയാക്ഷനുകൾ", "addReaction": "റിയാക്ഷൻ ചേർക്കുക", "reactionPill": "{{emoji}} റിയാക്ഷൻ, {{count}} {{countLabel}}", - "reactionSingular": "റിയാക്ഷൻ", - "reactionPlural": "റിയാക്ഷനുകൾ", + "reaction_one": "റിയാക്ഷൻ", + "reaction": "റിയാക്ഷനുകൾ", + "reaction_other": "റിയാക്ഷനുകൾ", "commentActions": "അഭിപ്രായ പ്രവർത്തനങ്ങൾ", "reportContent": "ഉള്ളടക്കം റിപ്പോർട്ട് ചെയ്യുക", "reportUser": "ഉപയോക്താവിനെ റിപ്പോർട്ട് ചെയ്യുക", @@ -452,8 +456,9 @@ "deletePendingMessage": "ഈ അഭിപ്രായം റിവ്യൂ ക്യൂവിൽ നിന്ന് നീക്കം ചെയ്യും.", "delete": "ഇല്ലാതാക്കുക", "summaryOptional": "സംഗ്രഹം (ഓപ്ഷണൽ)", - "pendingCommentSingular": "തീർച്ചയാകാത്ത അഭിപ്രായം", - "pendingCommentPlural": "തീർച്ചയാകാത്ത അഭിപ്രായങ്ങൾ", + "pendingComment_one": "തീർച്ചയാകാത്ത അഭിപ്രായം", + "pendingComment": "തീർച്ചയാകാത്ത അഭിപ്രായങ്ങൾ", + "pendingComment_other": "തീർച്ചയാകാത്ത അഭിപ്രായങ്ങൾ", "submitCountOfTotal": "{{totalCount}}-ൽ {{freshCount}} അഭിപ്രായങ്ങൾ സമർപ്പിക്കുക", "submitReview": "അവലോകനം സമർപ്പിക്കുക", "partialPostedMessage": "{{freshCount}} അഭിപ്രായ(ങ്ങൾ) പോസ്റ്റ് ചെയ്തു. {{staleCount}} അഭിപ്രായ(ങ്ങൾ) ഒരു പഴയ കമ്മിറ്റിലേക്ക് ചൂണ്ടിക്കാണിക്കുകയും നിങ്ങളുടെ ക്യൂവിൽ തുടരുകയും ചെയ്തു." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "തുറന്നത് · അവലോകനം ആവശ്യമാണ്", "stateOpen": "തുറന്നത്", "unknownAuthor": "അജ്ഞാത രചയിതാവ്", - "commitSingular": "കമ്മിറ്റ്", - "commitPlural": "കമ്മിറ്റുകൾ", - "fileSingular": "ഫയൽ", - "filePlural": "ഫയലുകൾ" + "commit_one": "കമ്മിറ്റ്", + "commit": "കമ്മിറ്റുകൾ", + "commit_other": "കമ്മിറ്റുകൾ", + "file_one": "ഫയൽ", + "file": "ഫയലുകൾ", + "file_other": "ഫയലുകൾ" }, "pendingComment": { "editOutdatedA11y": "{{location}}-ലെ കാലഹരണപ്പെട്ട തീർച്ചയാകാത്ത അഭിപ്രായം എഡിറ്റ് ചെയ്യുക", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "ആരോ", - "oneTyping": "{{name}} ടൈപ്പ് ചെയ്യുന്നു...", - "manyTyping": "{{names}} ടൈപ്പ് ചെയ്യുന്നു..." + "typing_one": "{{name}} ടൈപ്പ് ചെയ്യുന്നു...", + "typing": "{{names}} ടൈപ്പ് ചെയ്യുന്നു...", + "typing_other": "{{names}} ടൈപ്പ് ചെയ്യുന്നു..." }, "botStatus": { "online": "ഓൺലൈൻ", @@ -722,12 +730,10 @@ "couldNotLoad": "ബില്ലിംഗ് വിവരങ്ങൾ ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല", "manageOnWeb": "വെബിൽ ബില്ലിംഗ് കൈകാര്യം ചെയ്യുക", "commitPlan": "കമ്മിറ്റ്", - "daysLeft": "{{count}} ദിവസം അവശേഷിക്കുന്നു", "earlybird": "ആദ്യകാല പക്ഷി", "finalCommitTermEndsOn": "നിങ്ങളുടെ അവസാന Commit കാലാവധി {{date}} ന് അവസാനിക്കുന്നു. {{price}} നിരക്കിൽ Standard ആയി തുടരുക, അല്ലെങ്കിൽ ഹോസ്റ്റിംഗ് അവസാനിക്കും.", "freeTrial": "സൗജന്യ ട്രയൽ", "hostingEnds": "ഹോസ്റ്റിംഗ് അവസാനിക്കുന്നു", - "oneDayLeft": "1 ദിവസം അവശേഷിക്കുന്നു", "renews": "പുതുക്കുന്നു", "standardMonthToMonth": "സ്റ്റാൻഡേർഡ് മാസം തോറും", "standardStartsOn": "Standard {{date}} ന് {{price}} നിരക്കിൽ ആരംഭിക്കുന്നു.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ശ്രദ്ധ ആവശ്യമാണ്: {{label}}", - "openUnreadOne": "{{name}} തുറക്കുക, {{count}} വായിക്കാത്ത സന്ദേശം", - "openUnreadMany": "{{name}} തുറക്കുക, {{count}} വായിക്കാത്ത സന്ദേശങ്ങൾ", + "openUnread_one": "{{name}} തുറക്കുക, {{displayCount}} വായിക്കാത്ത സന്ദേശം", + "openUnread": "{{name}} തുറക്കുക, {{displayCount}} വായിക്കാത്ത സന്ദേശങ്ങൾ", + "openUnread_other": "{{name}} തുറക്കുക, {{displayCount}} വായിക്കാത്ത സന്ദേശങ്ങൾ", "open": "{{name}} തുറക്കുക", "openSettings": "{{name}} ന്റെ ക്രമീകരണങ്ങൾ തുറക്കുക", "fixOnKiloAi": "kilo.ai-യിൽ പരിഹരിക്കുക: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ഓട്ടോ പരിഹാരം പ്രവർത്തനക്ഷമമാക്കണോ?", "enableAutoRemediationConfirmMessage": "യോഗ്യതയുള്ള ചൂഷണം ചെയ്യാവുന്ന കണ്ടെത്തലുകൾക്ക് Security Agent പരിഹാര PR-കൾ സ്വയമേവ തുറക്കും.", "enable": "പ്രവർത്തനക്ഷമമാക്കുക", - "queuedOne": "{{count}} നിലവിലുള്ള കണ്ടെത്തൽ വിശകലനത്തിനായി ക്യൂവിലാക്കി.", - "queuedMany": "{{count}} നിലവിലുള്ള കണ്ടെത്തലുകൾ വിശകലനത്തിനായി ക്യൂവിലാക്കി.", + "queued_one": "{{displayCount}} നിലവിലുള്ള കണ്ടെത്തൽ വിശകലനത്തിനായി ക്യൂവിലാക്കി.", + "queued": "{{displayCount}} നിലവിലുള്ള കണ്ടെത്തലുകൾ വിശകലനത്തിനായി ക്യൂവിലാക്കി.", + "queued_other": "{{displayCount}} നിലവിലുള്ള കണ്ടെത്തലുകൾ വിശകലനത്തിനായി ക്യൂവിലാക്കി.", "severityCriticalOnly": "ക്രിട്ടിക്കൽ മാത്രം", "severityHighAndAbove": "ഉയർന്നതും അതിനു മുകളിലും", "severityMediumAndAbove": "ഇടത്തരവും അതിനു മുകളിലും", @@ -1482,8 +1490,9 @@ "on": "ഓൺ", "off": "ഓഫ്", "allRepositories": "എല്ലാ റിപ്പോസിറ്ററികളും", - "repositorySelected": "{{count}} റിപ്പോസിറ്ററി തിരഞ്ഞെടുത്തു", - "repositoriesSelected": "{{count}} റിപ്പോസിറ്ററികൾ തിരഞ്ഞെടുത്തു", + "repositoriesCount_one": "{{displayCount}} റിപ്പോസിറ്ററി തിരഞ്ഞെടുത്തു", + "repositoriesCount": "{{displayCount}} റിപ്പോസിറ്ററികൾ തിരഞ്ഞെടുത്തു", + "repositoriesCount_other": "{{displayCount}} റിപ്പോസിറ്ററികൾ തിരഞ്ഞെടുത്തു", "selectRepositories": "റിപ്പോസിറ്ററികൾ തിരഞ്ഞെടുക്കുക", "selectRepositoriesSubtitle": "Security Agent ഏതൊക്കെ റിപ്പോസിറ്ററികൾ നിരീക്ഷിക്കണമെന്ന് തിരഞ്ഞെടുക്കുക", "repositories": "റിപ്പോസിറ്ററികൾ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "സെഷൻ ഇല്ലാതാക്കി", "needsInput": "ഇൻപുട്ട് ആവശ്യമാണ്", "fromPlatform": "{{platform}}-ൽ നിന്ന്", - "centOne": "സെന്റ്", - "centOther": "സെന്റുകൾ", - "dollarOne": "ഡോളർ", - "dollarOther": "ഡോളറുകൾ" + "cent_one": "സെന്റ്", + "cent": "സെന്റുകൾ", + "cent_other": "സെന്റുകൾ", + "dollar_one": "ഡോളർ", + "dollar": "ഡോളറുകൾ", + "dollar_other": "ഡോളറുകൾ" }, "githubInstall": { "couldNotOpenTitle": "GitHub തുറക്കാൻ കഴിഞ്ഞില്ല", @@ -1817,8 +1828,9 @@ "discardFailed": "ഡ്രാഫ്റ്റ് ഉപേക്ഷിക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക." }, "partRenderer": { - "updatedFile": "{{count}} ഫയൽ അപ്ഡേറ്റ് ചെയ്തു", - "updatedFiles": "{{count}} ഫയലുകൾ അപ്ഡേറ്റ് ചെയ്തു" + "updatedFileCount_one": "{{displayCount}} ഫയൽ അപ്ഡേറ്റ് ചെയ്തു", + "updatedFileCount": "{{displayCount}} ഫയലുകൾ അപ്ഡേറ്റ് ചെയ്തു", + "updatedFileCount_other": "{{displayCount}} ഫയലുകൾ അപ്ഡേറ്റ് ചെയ്തു" }, "toolPatch": { "operationAdded": "ചേർത്തു", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "മുൻപത്തെ സന്ദേശങ്ങൾ ലോഡ് ചെയ്തു", "retryHint": "ഈ സെഷനുള്ള മുൻപത്തെ സന്ദേശ ലോഡ് വീണ്ടും ശ്രമിക്കുന്നു.", - "omittedOne": "ഈ സെഷനിൽ നിന്നുള്ള ചില മുൻ ഇനങ്ങൾ പ്രദർശിപ്പിക്കാൻ കഴിഞ്ഞില്ല.", - "omittedMany": "ഈ സെഷനിൽ നിന്നുള്ള {{count}} മുൻ ഇനങ്ങൾ പ്രദർശിപ്പിക്കാൻ കഴിഞ്ഞില്ല.", + "omitted_one": "ഈ സെഷനിൽ നിന്നുള്ള ചില മുൻ ഇനങ്ങൾ പ്രദർശിപ്പിക്കാൻ കഴിഞ്ഞില്ല.", + "omitted": "ഈ സെഷനിൽ നിന്നുള്ള {{displayCount}} മുൻ ഇനങ്ങൾ പ്രദർശിപ്പിക്കാൻ കഴിഞ്ഞില്ല.", + "omitted_other": "ഈ സെഷനിൽ നിന്നുള്ള {{displayCount}} മുൻ ഇനങ്ങൾ പ്രദർശിപ്പിക്കാൻ കഴിഞ്ഞില്ല.", "couldNotLoad": "മുൻപത്തെ സന്ദേശങ്ങൾ ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല.", "unavailable": "മുൻപത്തെ സന്ദേശങ്ങൾ ലഭ്യമല്ല.", "tooLarge": "മുൻപത്തെ സന്ദേശങ്ങൾ ലോഡ് ചെയ്യാൻ വളരെ വലുതാണ്." @@ -2069,10 +2082,12 @@ "viewTable": "പട്ടിക കാണുക", "title": "പട്ടിക", "close": "പട്ടിക അടയ്ക്കുക", - "column": "നിര", - "columns": "നിരകൾ", - "row": "വരി", - "rows": "വരികൾ", + "columnCount_one": "നിര", + "columnCount": "നിരകൾ", + "columnCount_other": "നിരകൾ", + "rowCount_one": "വരി", + "rowCount": "വരികൾ", + "rowCount_other": "വരികൾ", "opensFullScreen": "പൂർണ്ണ സ്ക്രീനിൽ തുറക്കുന്നു" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} ടോക്കണുകളിൽ", "tokens": "ടോക്കണുകൾ", "tokensWithPercentage": "ടോക്കണുകൾ ({{percentage}})", - "stepsCountOne": "{{steps}} ഘട്ടം", - "stepsCountMany": "{{steps}} ഘട്ടങ്ങൾ", + "stepsCount_one": "{{steps}} ഘട്ടം", + "stepsCount": "{{steps}} ഘട്ടങ്ങൾ", + "stepsCount_other": "{{steps}} ഘട്ടങ്ങൾ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "പുതിയ കോഡിംഗ് ടാസ്ക്", "explore": "പര്യവേക്ഷണം ചെയ്യുക", "seeAll": "എല്ലാം കാണുക", - "kiloAgents": "Kilo ഏജന്റുകൾ", - "greetingMorning": "സുപ്രഭാതം", - "greetingAfternoon": "ശുഭ ഉച്ച", - "greetingEvening": "ശുഭ സായാഹ്നം" + "kiloAgents": "Kilo ഏജന്റുകൾ" }, "imageViewer": { "close": "{{filename}} അടയ്ക്കുക", @@ -2645,8 +2658,9 @@ "manageHint": "വെബിൽ Kilo Pass മാനേജ്മെന്റ് തുറക്കുന്നു.", "notSubscribed": "സബ്സ്ക്രൈബ് ചെയ്തിട്ടില്ല", "overallocated": "പാസ് അസൈൻമെന്റുകൾ പണമടച്ച സീറ്റുകളെ കവിയുന്നു", - "paidSeatOne": "{{count}} പണമടച്ച സീറ്റ്", - "paidSeatOther": "{{count}} പണമടച്ച സീറ്റുകൾ", + "paidSeat_one": "{{displayCount}} പണമടച്ച സീറ്റ്", + "paidSeat": "{{displayCount}} പണമടച്ച സീറ്റുകൾ", + "paidSeat_other": "{{displayCount}} പണമടച്ച സീറ്റുകൾ", "paymentNeedsAttention": "പേയ്മെന്റിന് ശ്രദ്ധ ആവശ്യമാണ്", "paymentPending": "പേയ്മെന്റ് തീർപ്പാകാത്തത്", "processingBlocked": "പ്രോസസ്സിംഗ് തടഞ്ഞു", diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index d847bacd72..67877ff792 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}}-оос {{loaded}} файл ачаалагдсан", "loadAllFiles": "Бүх файлыг ачаалах", "loadAll": "Бүгдийг ачаалах", - "fileLoaded": "{{count}} файл ачаалагдсан", - "filesLoaded": "{{count}} файл ачаалагдсан", - "fileLoadedOfTotal": "{{total}}-оос {{count}} файл ачаалагдсан", - "filesLoadedOfTotal": "{{total}}-оос {{count}} файл ачаалагдсан", + "fileLoadedCount_one": "{{displayCount}} файл ачаалагдсан", + "fileLoadedCount": "{{displayCount}} файл ачаалагдсан", + "fileLoadedCount_other": "{{displayCount}} файл ачаалагдсан", + "fileLoadedOfTotalCount_one": "{{total}}-оос {{displayCount}} файл ачаалагдсан", + "fileLoadedOfTotalCount": "{{total}}-оос {{displayCount}} файл ачаалагдсан", + "fileLoadedOfTotalCount_other": "{{total}}-оос {{displayCount}} файл ачаалагдсан", "filesStillLoading": "Файлууд ачаалж байсаар байна. Сэргээхийн тулд доош татна уу.", "goToOverview": "Тойм руу орох", "goToOverviewTab": "Тойм таб руу орох" @@ -288,8 +290,9 @@ "resolved": "Шийдвэрлэсэн", "outdated": "Хуучирсан", "file": "Файл", - "oneComment": "1 сэтгэгдэл", - "commentCount": "{{count}} сэтгэгдэл", + "comment_one": "1 сэтгэгдэл", + "comment": "{{displayCount}} сэтгэгдэл", + "comment_other": "{{displayCount}} сэтгэгдэл", "startedRelative": " · эхэлсэн {{relative}}", "couldNotLoadMore": "Нэмэлт сэтгэгдлүүдийг ачаалах боломжгүй.", "retryLoadingMore": "Нэмэлт сэтгэгдлүүдийг ачаалахыг дахин оролдох", @@ -299,8 +302,9 @@ "reactionsTitle": "Реакцууд", "addReaction": "Реакц нэмэх", "reactionPill": "{{emoji}} реакц, {{count}} {{countLabel}}", - "reactionSingular": "реакц", - "reactionPlural": "реакцууд", + "reaction_one": "реакц", + "reaction": "реакцууд", + "reaction_other": "реакцууд", "commentActions": "Сэтгэгдлийн үйлдлүүд", "reportContent": "Агуулгыг мэдээлэх", "reportUser": "Хэрэглэгчийг мэдээлэх", @@ -452,8 +456,9 @@ "deletePendingMessage": "Энэ сэтгэгдэл тоймын жагсаалтаас устах болно.", "delete": "Устгах", "summaryOptional": "Хураангуй (сонголтот)", - "pendingCommentSingular": "хүлээгдэж буй сэтгэгдэл", - "pendingCommentPlural": "хүлээгдэж буй сэтгэгдлүүд", + "pendingComment_one": "хүлээгдэж буй сэтгэгдэл", + "pendingComment": "хүлээгдэж буй сэтгэгдлүүд", + "pendingComment_other": "хүлээгдэж буй сэтгэгдлүүд", "submitCountOfTotal": "{{totalCount}} сэтгэгдлээс {{freshCount}} илгээх", "submitReview": "Тойм илгээх", "partialPostedMessage": "{{freshCount}} сэтгэгдэл илгээгдсэн. {{staleCount}} сэтгэгдэл хуучин commit-ыг зааж, таны жагсаалтад үлдсэн." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Нээлттэй · Тойм шаардлагатай", "stateOpen": "Нээлттэй", "unknownAuthor": "Тодорхойгүй зохиолч", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "файл", - "filePlural": "файл" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "файл", + "file": "файл", + "file_other": "файл" }, "pendingComment": { "editOutdatedA11y": "{{location}} дээрх хуучирсан хүлээгдэж буй сэтгэгдлийг засах", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Хэн нэгэн", - "oneTyping": "{{name}} бичиж байна...", - "manyTyping": "{{names}} бичиж байна..." + "typing_one": "{{name}} бичиж байна...", + "typing": "{{names}} бичиж байна...", + "typing_other": "{{names}} бичиж байна..." }, "botStatus": { "online": "Онлайн", @@ -722,12 +730,10 @@ "couldNotLoad": "Төлбөрийн мэдээллийг ачаалж чадсангүй", "manageOnWeb": "Вэб дээр төлбөрийг удирдах", "commitPlan": "Commit", - "daysLeft": "{{count}} хоног үлдсэн", "earlybird": "Эрт шувуу", "finalCommitTermEndsOn": "Таны эцсийн Commit хугацаа {{date}} өдөр дуусна. Standard үнэ {{price}}-аар үргэлжлүүлэх, эсвэл хостинг дуусна.", "freeTrial": "Үнэгүй туршилт", "hostingEnds": "Хостинг дуусна", - "oneDayLeft": "1 хоног үлдсэн", "renews": "Сэргээгдэнэ", "standardMonthToMonth": "Стандарт сарын төлөв", "standardStartsOn": "Стандарт {{date}} өдөр {{price}} үнээр эхэлнэ.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} анхаарал шаардаж байна: {{label}}", - "openUnreadOne": "{{name}}-г нээх, {{count}} уншаагүй зурвас", - "openUnreadMany": "{{name}}-г нээх, {{count}} уншаагүй зурвас", + "openUnread_one": "{{name}}-г нээх, {{displayCount}} уншаагүй зурвас", + "openUnread": "{{name}}-г нээх, {{displayCount}} уншаагүй зурвас", + "openUnread_other": "{{name}}-г нээх, {{displayCount}} уншаагүй зурвас", "open": "{{name}}-г нээх", "openSettings": "{{name}}-ийн тохиргоог нээх", "fixOnKiloAi": "kilo.ai дээр засах: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Автомат засварыг идэвхжүүлэх үү?", "enableAutoRemediationConfirmMessage": "Аюулгүй байдлын агент тохиромжтой, ашиглах боломжтой олдворуудад засварын PR-уудыг автоматаар нээнэ.", "enable": "Идэвхжүүлэх", - "queuedOne": "Дүн шинжилгээнд дараалалд орсон {{count}} одоогийн олдвор.", - "queuedMany": "Дүн шинжилгээнд дараалалд орсон {{count}} одоогийн олдвор.", + "queued_one": "Дүн шинжилгээнд дараалалд орсон {{displayCount}} одоогийн олдвор.", + "queued": "Дүн шинжилгээнд дараалалд орсон {{displayCount}} одоогийн олдвор.", + "queued_other": "Дүн шинжилгээнд дараалалд орсон {{displayCount}} одоогийн олдвор.", "severityCriticalOnly": "Зөвхөн чухал", "severityHighAndAbove": "Өндөр ба түүнээс дээш", "severityMediumAndAbove": "Дунд ба түүнээс дээш", @@ -1482,8 +1490,9 @@ "on": "Асаалттай", "off": "Унтарсан", "allRepositories": "Бүх репозиториуд", - "repositorySelected": "{{count}} репозитори сонгогдсон", - "repositoriesSelected": "{{count}} репозитори сонгогдсон", + "repositoriesCount_one": "{{displayCount}} репозитори сонгогдсон", + "repositoriesCount": "{{displayCount}} репозитори сонгогдсон", + "repositoriesCount_other": "{{displayCount}} репозитори сонгогдсон", "selectRepositories": "Репозиториудыг сонгох", "selectRepositoriesSubtitle": "Security Agent аль репозиториудыг хянахыг сонгоно уу", "repositories": "Репозиториуд", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Сесс устгагдсан", "needsInput": "оролт шаардлагатай", "fromPlatform": "{{platform}}-аас", - "centOne": "цент", - "centOther": "цент", - "dollarOne": "доллар", - "dollarOther": "доллар" + "cent_one": "цент", + "cent": "цент", + "cent_other": "цент", + "dollar_one": "доллар", + "dollar": "доллар", + "dollar_other": "доллар" }, "githubInstall": { "couldNotOpenTitle": "GitHub-ыг нээх боломжгүй", @@ -1817,8 +1828,9 @@ "discardFailed": "Нооргийг хаях боломжгүй. Дахин оролдоно уу." }, "partRenderer": { - "updatedFile": "{{count}} файл шинэчлэгдсэн", - "updatedFiles": "{{count}} файл шинэчлэгдсэн" + "updatedFileCount_one": "{{displayCount}} файл шинэчлэгдсэн", + "updatedFileCount": "{{displayCount}} файл шинэчлэгдсэн", + "updatedFileCount_other": "{{displayCount}} файл шинэчлэгдсэн" }, "toolPatch": { "operationAdded": "Нэмэгдсэн", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Өмнөх мэдээллүүд ачаалагдлаа", "retryHint": "Энэ сессийн хувьд өмнөх мэдээллийг ачааллыг дахин оролдоно.", - "omittedOne": "Энэ сессийн зарим өмнөх зүйлийг харуулах боломжгүй байлаа.", - "omittedMany": "Энэ сессийн {{count}} өмнөх зүйлийг харуулах боломжгүй байлаа.", + "omitted_one": "Энэ сессийн зарим өмнөх зүйлийг харуулах боломжгүй байлаа.", + "omitted": "Энэ сессийн {{displayCount}} өмнөх зүйлийг харуулах боломжгүй байлаа.", + "omitted_other": "Энэ сессийн {{displayCount}} өмнөх зүйлийг харуулах боломжгүй байлаа.", "couldNotLoad": "Өмнөх мэдээллийг ачаалж чадсангүй.", "unavailable": "Өмнөх мэдээллүүд боломжгүй.", "tooLarge": "Өмнөх мэдээллүүд ачаалахад хэт том байна." @@ -2069,10 +2082,12 @@ "viewTable": "Хүснэгт үзэх", "title": "Хүснэгт", "close": "Хүснэгтийг хаах", - "column": "багана", - "columns": "баганууд", - "row": "мөр", - "rows": "мөрүүд", + "columnCount_one": "багана", + "columnCount": "баганууд", + "columnCount_other": "баганууд", + "rowCount_one": "мөр", + "rowCount": "мөрүүд", + "rowCount_other": "мөрүүд", "opensFullScreen": "бүтэн дэлгэцээр нээгдэнэ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} токеноос", "tokens": "токен", "tokensWithPercentage": "токен ({{percentage}})", - "stepsCountOne": "{{steps}} алхам", - "stepsCountMany": "{{steps}} алхам", + "stepsCount_one": "{{steps}} алхам", + "stepsCount": "{{steps}} алхам", + "stepsCount_other": "{{steps}} алхам", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Шинэ кодчилолын даалгавар", "explore": "Судлах", "seeAll": "Бүгдийг үзэх", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Өглөөний мэнд", - "greetingAfternoon": "Өдрийн мэнд", - "greetingEvening": "Оройн мэнд" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} хаах", @@ -2645,8 +2658,9 @@ "manageHint": "Вэб дээр Kilo Pass удирдлагыг нээнэ.", "notSubscribed": "Захиалгагүй", "overallocated": "Pass даалгаварууд төлсөн суудлаас хэтэрлээ", - "paidSeatOne": "{{count}} төлсөн суудал", - "paidSeatOther": "{{count}} төлсөн суудал", + "paidSeat_one": "{{displayCount}} төлсөн суудал", + "paidSeat": "{{displayCount}} төлсөн суудал", + "paidSeat_other": "{{displayCount}} төлсөн суудал", "paymentNeedsAttention": "Төлбөр анхаарал шаарддаг", "paymentPending": "Төлбөр хүлээгдэж байна", "processingBlocked": "Боловсруулалт хаагдсан", diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index faf41e75ec..e4e7fad230 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} पैकी {{loaded}} फाइल्स लोड झाल्या", "loadAllFiles": "सर्व फाइल्स लोड करा", "loadAll": "सर्व लोड करा", - "fileLoaded": "{{count}} फाइल लोड झाली", - "filesLoaded": "{{count}} फाइल्स लोड झाल्या", - "fileLoadedOfTotal": "{{total}} पैकी {{count}} फाइल लोड झाली", - "filesLoadedOfTotal": "{{total}} पैकी {{count}} फाइल्स लोड झाल्या", + "fileLoadedCount_one": "{{displayCount}} फाइल लोड झाली", + "fileLoadedCount": "{{displayCount}} फाइल्स लोड झाल्या", + "fileLoadedCount_other": "{{displayCount}} फाइल्स लोड झाल्या", + "fileLoadedOfTotalCount_one": "{{total}} पैकी {{displayCount}} फाइल लोड झाली", + "fileLoadedOfTotalCount": "{{total}} पैकी {{displayCount}} फाइल्स लोड झाल्या", + "fileLoadedOfTotalCount_other": "{{total}} पैकी {{displayCount}} फाइल्स लोड झाल्या", "filesStillLoading": "फाइल्स अजूनही लोड होत आहेत. रीफ्रेश करण्यासाठी ओढा.", "goToOverview": "आढाव्यावर जा", "goToOverviewTab": "आढावा टॅबवर जा" @@ -288,8 +290,9 @@ "resolved": "सोडवलेले", "outdated": "कालबाह्य", "file": "फाइल", - "oneComment": "1 टिप्पणी", - "commentCount": "{{count}} टिप्पण्या", + "comment_one": "1 टिप्पणी", + "comment": "{{displayCount}} टिप्पण्या", + "comment_other": "{{displayCount}} टिप्पण्या", "startedRelative": " · {{relative}} रोजी सुरू केले", "couldNotLoadMore": "अधिक टिप्पण्या लोड करता आल्या नाहीत.", "retryLoadingMore": "अधिक टिप्पण्या लोड करण्याचा पुन्हा प्रयत्न करा", @@ -299,8 +302,9 @@ "reactionsTitle": "प्रतिक्रिया", "addReaction": "प्रतिक्रिया जोडा", "reactionPill": "{{emoji}} प्रतिक्रिया, {{count}} {{countLabel}}", - "reactionSingular": "प्रतिक्रिया", - "reactionPlural": "प्रतिक्रिया", + "reaction_one": "प्रतिक्रिया", + "reaction": "प्रतिक्रिया", + "reaction_other": "प्रतिक्रिया", "commentActions": "टिप्पणी क्रिया", "reportContent": "सामग्रीची तक्रार करा", "reportUser": "वापरकर्त्याची तक्रार करा", @@ -452,8 +456,9 @@ "deletePendingMessage": "ही टिप्पणी पुनरावलोकन रांगेतून काढली जाईल.", "delete": "हटवा", "summaryOptional": "सारांश (पर्यायी)", - "pendingCommentSingular": "प्रलंबित टिप्पणी", - "pendingCommentPlural": "प्रलंबित टिप्पण्या", + "pendingComment_one": "प्रलंबित टिप्पणी", + "pendingComment": "प्रलंबित टिप्पण्या", + "pendingComment_other": "प्रलंबित टिप्पण्या", "submitCountOfTotal": "{{totalCount}} पैकी {{freshCount}} टिप्पण्या सादर करा", "submitReview": "पुनरावलोकन सादर करा", "partialPostedMessage": "{{freshCount}} टिप्पण्या पोस्ट केल्या. {{staleCount}} टिप्पण्या जुन्या कमिटकडे निर्देश करतात आणि तुमच्या रांगेत राहिल्या." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "उघडा · पुनरावलोकन आवश्यक", "stateOpen": "उघडा", "unknownAuthor": "अज्ञात लेखक", - "commitSingular": "कमिट", - "commitPlural": "कमिट्स", - "fileSingular": "फाइल", - "filePlural": "फाइल्स" + "commit_one": "कमिट", + "commit": "कमिट्स", + "commit_other": "कमिट्स", + "file_one": "फाइल", + "file": "फाइल्स", + "file_other": "फाइल्स" }, "pendingComment": { "editOutdatedA11y": "{{location}} वरील कालबाह्य प्रलंबित टिप्पणी संपादित करा", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "कोणीतरी", - "oneTyping": "{{name}} टाइप करत आहे...", - "manyTyping": "{{names}} टाइप करत आहेत..." + "typing_one": "{{name}} टाइप करत आहे...", + "typing": "{{names}} टाइप करत आहेत...", + "typing_other": "{{names}} टाइप करत आहेत..." }, "botStatus": { "online": "ऑनलाइन", @@ -722,12 +730,10 @@ "couldNotLoad": "बिलिंग माहिती लोड करता आली नाही", "manageOnWeb": "वेबवर बिलिंग व्यवस्थापित करा", "commitPlan": "कमिट", - "daysLeft": "{{count}} दिवस शिल्लक", "earlybird": "अर्लीबर्ड", "finalCommitTermEndsOn": "तुमची अंतिम कमिट मुदत {{date}} रोजी संपते. {{price}} ला स्टँडर्ड म्हणून सुरू ठेवा, अन्यथा होस्टिंग संपते.", "freeTrial": "मोफत ट्रायल", "hostingEnds": "होस्टिंग संपते", - "oneDayLeft": "1 दिवस शिल्लक", "renews": "नूतनीकरण होते", "standardMonthToMonth": "स्टँडर्ड महिन्या-महिन्याने", "standardStartsOn": "स्टँडर्ड {{date}} रोजी {{price}} ला सुरू होते.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ला लक्ष देणे आवश्यक आहे: {{label}}", - "openUnreadOne": "{{name}} उघडा, {{count}} न वाचलेला संदेश", - "openUnreadMany": "{{name}} उघडा, {{count}} न वाचलेले संदेश", + "openUnread_one": "{{name}} उघडा, {{displayCount}} न वाचलेला संदेश", + "openUnread": "{{name}} उघडा, {{displayCount}} न वाचलेले संदेश", + "openUnread_other": "{{name}} उघडा, {{displayCount}} न वाचलेले संदेश", "open": "{{name}} उघडा", "openSettings": "{{name}} साठी सेटिंग्ज उघडा", "fixOnKiloAi": "kilo.ai वर दुरुस्त करा: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "स्वयं-उपाय सक्षम करायचे?", "enableAutoRemediationConfirmMessage": "सिक्युरिटी एजंट पात्र शोषणीय निष्कर्षांसाठी स्वयंचलितपणे उपाय PRs उघडेल.", "enable": "सक्षम करा", - "queuedOne": "{{count}} अस्तित्वातील शोध विश्लेषणासाठी रांगेत ठेवला.", - "queuedMany": "{{count}} अस्तित्वातील शोध विश्लेषणासाठी रांगेत ठेवले.", + "queued_one": "{{displayCount}} अस्तित्वातील शोध विश्लेषणासाठी रांगेत ठेवला.", + "queued": "{{displayCount}} अस्तित्वातील शोध विश्लेषणासाठी रांगेत ठेवले.", + "queued_other": "{{displayCount}} अस्तित्वातील शोध विश्लेषणासाठी रांगेत ठेवले.", "severityCriticalOnly": "केवळ गंभीर", "severityHighAndAbove": "उच्च आणि त्यावर", "severityMediumAndAbove": "मध्यम आणि त्यावर", @@ -1482,8 +1490,9 @@ "on": "चालू", "off": "बंद", "allRepositories": "सर्व भांडारे", - "repositorySelected": "{{count}} भांडार निवडले", - "repositoriesSelected": "{{count}} भांडारे निवडले", + "repositoriesCount_one": "{{displayCount}} भांडार निवडले", + "repositoriesCount": "{{displayCount}} भांडारे निवडले", + "repositoriesCount_other": "{{displayCount}} भांडारे निवडले", "selectRepositories": "भांडारे निवडा", "selectRepositoriesSubtitle": "सुरक्षा एजंट कोणत्या भांडारांचे निरीक्षण करते ते निवडा", "repositories": "भांडारे", @@ -1720,10 +1729,12 @@ "sessionDeleted": "सत्र हटवले", "needsInput": "इनपुट आवश्यक", "fromPlatform": "{{platform}} वरून", - "centOne": "सेंट", - "centOther": "सेंट", - "dollarOne": "डॉलर", - "dollarOther": "डॉलर" + "cent_one": "सेंट", + "cent": "सेंट", + "cent_other": "सेंट", + "dollar_one": "डॉलर", + "dollar": "डॉलर", + "dollar_other": "डॉलर" }, "githubInstall": { "couldNotOpenTitle": "GitHub उघडता आले नाही", @@ -1817,8 +1828,9 @@ "discardFailed": "मसुदा रद्द करता आला नाही. कृपया पुन्हा प्रयत्न करा." }, "partRenderer": { - "updatedFile": "{{count}} फाइल अद्ययावत केली", - "updatedFiles": "{{count}} फाइल्स अद्ययावत केल्या" + "updatedFileCount_one": "{{displayCount}} फाइल अद्ययावत केली", + "updatedFileCount": "{{displayCount}} फाइल्स अद्ययावत केल्या", + "updatedFileCount_other": "{{displayCount}} फाइल्स अद्ययावत केल्या" }, "toolPatch": { "operationAdded": "जोडले", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "आधीचे संदेश लोड झाले", "retryHint": "या सत्रासाठी जुन्या संदेशांचे लोडिंग पुन्हा करते.", - "omittedOne": "या सत्रातील काही आधीच्या आयटम्स प्रदर्शित करता आल्या नाहीत.", - "omittedMany": "या सत्रातील {{count}} आधीच्या आयटम्स प्रदर्शित करता आल्या नाहीत.", + "omitted_one": "या सत्रातील काही आधीच्या आयटम्स प्रदर्शित करता आल्या नाहीत.", + "omitted": "या सत्रातील {{displayCount}} आधीच्या आयटम्स प्रदर्शित करता आल्या नाहीत.", + "omitted_other": "या सत्रातील {{displayCount}} आधीच्या आयटम्स प्रदर्शित करता आल्या नाहीत.", "couldNotLoad": "आधीचे संदेश लोड करता आले नाहीत.", "unavailable": "आधीचे संदेश उपलब्ध नाहीत.", "tooLarge": "आधीचे संदेश लोड करण्यासाठी खूप मोठे आहेत." @@ -2069,10 +2082,12 @@ "viewTable": "टेबल पहा", "title": "टेबल", "close": "टेबल बंद करा", - "column": "स्तंभ", - "columns": "स्तंभ", - "row": "रो", - "rows": "रो", + "columnCount_one": "स्तंभ", + "columnCount": "स्तंभ", + "columnCount_other": "स्तंभ", + "rowCount_one": "रो", + "rowCount": "रो", + "rowCount_other": "रो", "opensFullScreen": "पूर्ण स्क्रीन उघडते" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} टोकन्सपैकी", "tokens": "टोकन्स", "tokensWithPercentage": "टोकन्स ({{percentage}})", - "stepsCountOne": "{{steps}} पाऊल", - "stepsCountMany": "{{steps}} पावले", + "stepsCount_one": "{{steps}} पाऊल", + "stepsCount": "{{steps}} पावले", + "stepsCount_other": "{{steps}} पावले", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "नवीन कोडिंग कार्य", "explore": "एक्सप्लोर करा", "seeAll": "सर्व पहा", - "kiloAgents": "Kilo एजंट्स", - "greetingMorning": "शुभ सकाळ", - "greetingAfternoon": "शुभ दुपार", - "greetingEvening": "शुभ संध्याकाळ" + "kiloAgents": "Kilo एजंट्स" }, "imageViewer": { "close": "{{filename}} बंद करा", @@ -2645,8 +2658,9 @@ "manageHint": "वेबवर Kilo Pass व्यवस्थापन उघडते.", "notSubscribed": "सदस्यत्व घेतलेले नाही", "overallocated": "पास असाइनमेंट्स पैसे दिलेल्या सीट्सपेक्षा जास्त आहेत", - "paidSeatOne": "{{count}} पैसे दिलेली सीट", - "paidSeatOther": "{{count}} पैसे दिलेल्या सीट्स", + "paidSeat_one": "{{displayCount}} पैसे दिलेली सीट", + "paidSeat": "{{displayCount}} पैसे दिलेल्या सीट्स", + "paidSeat_other": "{{displayCount}} पैसे दिलेल्या सीट्स", "paymentNeedsAttention": "पेमेंटकडे लक्ष आवश्यक", "paymentPending": "पेमेंट प्रलंबित", "processingBlocked": "प्रक्रिया अवरोधित", diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index f19e75d8c6..0e9fe570d3 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} daripada {{total}} fail dimuatkan", "loadAllFiles": "Muatkan semua fail", "loadAll": "Muatkan semua", - "fileLoaded": "{{count}} fail dimuatkan", - "filesLoaded": "{{count}} fail dimuatkan", - "fileLoadedOfTotal": "{{count}} fail dimuatkan daripada {{total}}", - "filesLoadedOfTotal": "{{count}} fail dimuatkan daripada {{total}}", + "fileLoadedCount_one": "{{displayCount}} fail dimuatkan", + "fileLoadedCount": "{{displayCount}} fail dimuatkan", + "fileLoadedCount_other": "{{displayCount}} fail dimuatkan", + "fileLoadedOfTotalCount_one": "{{displayCount}} fail dimuatkan daripada {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} fail dimuatkan daripada {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} fail dimuatkan daripada {{total}}", "filesStillLoading": "Fail masih dimuatkan. Tarik untuk memuat semula.", "goToOverview": "Pergi ke Gambaran Keseluruhan", "goToOverviewTab": "Pergi ke tab Gambaran Keseluruhan" @@ -288,8 +290,9 @@ "resolved": "Diselesaikan", "outdated": "Usang", "file": "Fail", - "oneComment": "1 komen", - "commentCount": "{{count}} komen", + "comment_one": "1 komen", + "comment": "{{displayCount}} komen", + "comment_other": "{{displayCount}} komen", "startedRelative": " · bermula {{relative}}", "couldNotLoadMore": "Tidak dapat memuatkan lebih banyak komen.", "retryLoadingMore": "Cuba memuatkan lebih banyak komen semula", @@ -299,8 +302,9 @@ "reactionsTitle": "Tindak balas", "addReaction": "Tambah tindak balas", "reactionPill": "{{emoji}} tindak balas, {{count}} {{countLabel}}", - "reactionSingular": "tindak balas", - "reactionPlural": "tindak balas", + "reaction_one": "tindak balas", + "reaction": "tindak balas", + "reaction_other": "tindak balas", "commentActions": "Tindakan komen", "reportContent": "Laporkan kandungan", "reportUser": "Laporkan pengguna", @@ -452,8 +456,9 @@ "deletePendingMessage": "Komen ini akan dialih keluar daripada giliran semakan.", "delete": "Padam", "summaryOptional": "Ringkasan (pilihan)", - "pendingCommentSingular": "komen tertunda", - "pendingCommentPlural": "komen tertunda", + "pendingComment_one": "komen tertunda", + "pendingComment": "komen tertunda", + "pendingComment_other": "komen tertunda", "submitCountOfTotal": "Hantar {{freshCount}} daripada {{totalCount}} komen", "submitReview": "Hantar semakan", "partialPostedMessage": "Menghantar {{freshCount}} komen. {{staleCount}} komen menunjuk kepada komit yang lebih lama dan kekal dalam giliran anda." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Buka · Semakan diperlukan", "stateOpen": "Buka", "unknownAuthor": "Pengarang tidak diketahui", - "commitSingular": "komit", - "commitPlural": "komit", - "fileSingular": "fail", - "filePlural": "fail" + "commit_one": "komit", + "commit": "komit", + "commit_other": "komit", + "file_one": "fail", + "file": "fail", + "file_other": "fail" }, "pendingComment": { "editOutdatedA11y": "Edit komen tertunda yang usang pada {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Seseorang", - "oneTyping": "{{name}} sedang menaip...", - "manyTyping": "{{names}} sedang menaip..." + "typing_one": "{{name}} sedang menaip...", + "typing": "{{names}} sedang menaip...", + "typing_other": "{{names}} sedang menaip..." }, "botStatus": { "online": "Dalam talian", @@ -722,12 +730,10 @@ "couldNotLoad": "Tidak dapat memuatkan maklumat bil", "manageOnWeb": "Urus Bil di Web", "commitPlan": "Komit", - "daysLeft": "{{count}} hari lagi", "earlybird": "Pakar awal", "finalCommitTermEndsOn": "Tempoh Komit akhir anda tamat pada {{date}}. Teruskan sebagai Standard pada {{price}}, atau pengehosan berakhir.", "freeTrial": "Percubaan Percuma", "hostingEnds": "Pengehosan berakhir", - "oneDayLeft": "1 hari lagi", "renews": "Memperbaharui", "standardMonthToMonth": "Standard bulan ke bulan", "standardStartsOn": "Standard bermula pada {{date}} pada {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} memerlukan perhatian: {{label}}", - "openUnreadOne": "Buka {{name}}, {{count}} mesej belum dibaca", - "openUnreadMany": "Buka {{name}}, {{count}} mesej belum dibaca", + "openUnread_one": "Buka {{name}}, {{displayCount}} mesej belum dibaca", + "openUnread": "Buka {{name}}, {{displayCount}} mesej belum dibaca", + "openUnread_other": "Buka {{name}}, {{displayCount}} mesej belum dibaca", "open": "Buka {{name}}", "openSettings": "Buka tetapan untuk {{name}}", "fixOnKiloAi": "Baiki di kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Dayakan pemulihan-auto?", "enableAutoRemediationConfirmMessage": "Ejen Keselamatan akan membuka PR pemulihan secara automatik untuk penemuan boleh dieksploitasi yang layak.", "enable": "Dayakan", - "queuedOne": "{{count}} penemuan sedia ada dijadualkan untuk analisis.", - "queuedMany": "{{count}} penemuan sedia ada dijadualkan untuk analisis.", + "queued_one": "{{displayCount}} penemuan sedia ada dijadualkan untuk analisis.", + "queued": "{{displayCount}} penemuan sedia ada dijadualkan untuk analisis.", + "queued_other": "{{displayCount}} penemuan sedia ada dijadualkan untuk analisis.", "severityCriticalOnly": "Kritikal sahaja", "severityHighAndAbove": "Tinggi dan ke atas", "severityMediumAndAbove": "Sederhana dan ke atas", @@ -1482,8 +1490,9 @@ "on": "Hidup", "off": "Mati", "allRepositories": "Semua repositori", - "repositorySelected": "{{count}} repositori dipilih", - "repositoriesSelected": "{{count}} repositori dipilih", + "repositoriesCount_one": "{{displayCount}} repositori dipilih", + "repositoriesCount": "{{displayCount}} repositori dipilih", + "repositoriesCount_other": "{{displayCount}} repositori dipilih", "selectRepositories": "Pilih repositori", "selectRepositoriesSubtitle": "Pilih repositori yang dipantau oleh Security Agent", "repositories": "Repositori", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesi dipadam", "needsInput": "perlu input", "fromPlatform": "dari {{platform}}", - "centOne": "sen", - "centOther": "sen", - "dollarOne": "dolar", - "dollarOther": "dolar" + "cent_one": "sen", + "cent": "sen", + "cent_other": "sen", + "dollar_one": "dolar", + "dollar": "dolar", + "dollar_other": "dolar" }, "githubInstall": { "couldNotOpenTitle": "Tidak dapat membuka GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Tidak dapat membuang draf. Sila cuba lagi." }, "partRenderer": { - "updatedFile": "{{count}} fail dikemas kini", - "updatedFiles": "{{count}} fail dikemas kini" + "updatedFileCount_one": "{{displayCount}} fail dikemas kini", + "updatedFileCount": "{{displayCount}} fail dikemas kini", + "updatedFileCount_other": "{{displayCount}} fail dikemas kini" }, "toolPatch": { "operationAdded": "Ditambah", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Mesej awal dimuatkan", "retryHint": "Mencuba semula muatan mesej awal untuk sesi ini.", - "omittedOne": "Sebahagian item awal daripada sesi ini tidak dapat dipaparkan.", - "omittedMany": "{{count}} item awal daripada sesi ini tidak dapat dipaparkan.", + "omitted_one": "Sebahagian item awal daripada sesi ini tidak dapat dipaparkan.", + "omitted": "{{displayCount}} item awal daripada sesi ini tidak dapat dipaparkan.", + "omitted_other": "{{displayCount}} item awal daripada sesi ini tidak dapat dipaparkan.", "couldNotLoad": "Tidak dapat memuatkan mesej awal.", "unavailable": "Mesej awal tidak tersedia.", "tooLarge": "Mesej awal terlalu besar untuk dimuatkan." @@ -2069,10 +2082,12 @@ "viewTable": "Lihat jadual", "title": "Jadual", "close": "Tutup jadual", - "column": "lajur", - "columns": "lajur", - "row": "baris", - "rows": "baris", + "columnCount_one": "lajur", + "columnCount": "lajur", + "columnCount_other": "lajur", + "rowCount_one": "baris", + "rowCount": "baris", + "rowCount_other": "baris", "opensFullScreen": "membuka skrin penuh" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "daripada {{window}} token", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} langkah", - "stepsCountMany": "{{steps}} langkah", + "stepsCount_one": "{{steps}} langkah", + "stepsCount": "{{steps}} langkah", + "stepsCount_other": "{{steps}} langkah", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Tugas pengekodan baharu", "explore": "Teroka", "seeAll": "Lihat semua", - "kiloAgents": "Ejen Kilo", - "greetingMorning": "Selamat pagi", - "greetingAfternoon": "Selamat tengah hari", - "greetingEvening": "Selamat petang" + "kiloAgents": "Ejen Kilo" }, "imageViewer": { "close": "Tutup {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Membuka pengurusan Kilo Pass pada web.", "notSubscribed": "Tidak melanggan", "overallocated": "Peruntukan pas melebihi kerusi berbayar", - "paidSeatOne": "{{count}} kerusi berbayar", - "paidSeatOther": "{{count}} kerusi berbayar", + "paidSeat_one": "{{displayCount}} kerusi berbayar", + "paidSeat": "{{displayCount}} kerusi berbayar", + "paidSeat_other": "{{displayCount}} kerusi berbayar", "paymentNeedsAttention": "Pembayaran memerlukan perhatian", "paymentPending": "Pembayaran belum selesai", "processingBlocked": "Pemprosesan disekat", diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 63caecc213..dfd62e22ca 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} minn {{total}} fajls mgħobbija", "loadAllFiles": "Għabbi l-fajls kollha", "loadAll": "Għabbi kollox", - "fileLoaded": "{{count}} fajl mgħobbi", - "filesLoaded": "{{count}} fajls mgħobbija", - "fileLoadedOfTotal": "{{count}} fajl mgħobbi minn {{total}}", - "filesLoadedOfTotal": "{{count}} fajls mgħobbija minn {{total}}", + "fileLoadedCount_one": "{{displayCount}} fajl mgħobbi", + "fileLoadedCount": "{{displayCount}} fajls mgħobbija", + "fileLoadedCount_other": "{{displayCount}} fajls mgħobbija", + "fileLoadedOfTotalCount_one": "{{displayCount}} fajl mgħobbi minn {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} fajls mgħobbija minn {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} fajls mgħobbija minn {{total}}", "filesStillLoading": "Il-fajls għadhom qed jitgħabbew. Iġbed biex taġġorna.", "goToOverview": "Mur fil-Ħarsa Ġenerali", "goToOverviewTab": "Mur fit-tab tal-Ħarsa Ġenerali" @@ -288,8 +290,9 @@ "resolved": "Solvut", "outdated": "Skadut", "file": "Fajl", - "oneComment": "kumment 1", - "commentCount": "{{count}} kummenti", + "comment_one": "kumment 1", + "comment": "{{displayCount}} kummenti", + "comment_other": "{{displayCount}} kummenti", "startedRelative": " · beda {{relative}}", "couldNotLoadMore": "Ma setgħux jitgħabbew aktar kummenti.", "retryLoadingMore": "Erġa' pprova jitgħabbew aktar kummenti", @@ -299,8 +302,9 @@ "reactionsTitle": "Reazzjonijiet", "addReaction": "Żid reazzjoni", "reactionPill": "{{emoji}} reazzjoni, {{count}} {{countLabel}}", - "reactionSingular": "reazzjoni", - "reactionPlural": "reazzjonijiet", + "reaction_one": "reazzjoni", + "reaction": "reazzjonijiet", + "reaction_other": "reazzjonijiet", "commentActions": "Azzjonijiet tal-kument", "reportContent": "Irrapporta l-kontenut", "reportUser": "Irrapporta l-utent", @@ -452,8 +456,9 @@ "deletePendingMessage": "Dan il-kument se jitneħħa mill-kju tar-reviżjoni.", "delete": "Ħassar", "summaryOptional": "Sommarju (fakultattiv)", - "pendingCommentSingular": "kument pendenti", - "pendingCommentPlural": "kummenti pendenti", + "pendingComment_one": "kument pendenti", + "pendingComment": "kummenti pendenti", + "pendingComment_other": "kummenti pendenti", "submitCountOfTotal": "Ibgħat {{freshCount}} minn {{totalCount}} kummenti", "submitReview": "Ibgħat ir-reviżjoni", "partialPostedMessage": "Tpoġġew {{freshCount}} kumment(i). {{staleCount}} kumment(i) jindikaw commit aktar antik u baqgħu fil-kju tiegħek." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Miftuħ · Reviżjoni meħtieġa", "stateOpen": "Miftuħ", "unknownAuthor": "Awtur mhux magħruf", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fajl", - "filePlural": "fajls" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fajl", + "file": "fajls", + "file_other": "fajls" }, "pendingComment": { "editOutdatedA11y": "Editja l-kument pendenti skadut fuq {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Xi ħadd", - "oneTyping": "{{name}} qed jikteb...", - "manyTyping": "{{names}} qed jiktbu..." + "typing_one": "{{name}} qed jikteb...", + "typing": "{{names}} qed jiktbu...", + "typing_other": "{{names}} qed jiktbu..." }, "botStatus": { "online": "Onlajn", @@ -722,12 +730,10 @@ "couldNotLoad": "Ma setgħetx tintella' l-informazzjoni tal-ħlas", "manageOnWeb": "Immaniġġja l-Ħlas fuq il-Web", "commitPlan": "Commit", - "daysLeft": "{{count}} jum jifdal", "earlybird": "Earlybird", "finalCommitTermEndsOn": "It-terminu finali tal-Commits jintemm fil-{{date}}. Kompli bħala Standard bi {{price}}, jew l-ospitar jintemm.", "freeTrial": "Prova b'xejn", "hostingEnds": "L-ospitar jintemm", - "oneDayLeft": "Jifdal jum wieħed", "renews": "Jiġġedded", "standardMonthToMonth": "Standard xahar b'xahar", "standardStartsOn": "Standard jibda fil-{{date}} bi {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} jeħtieġ attenzjoni: {{label}}", - "openUnreadOne": "Iftaħ {{name}}, messaġġ mhux moqri {{count}}", - "openUnreadMany": "Iftaħ {{name}}, {{count}} messaġġi mhux moqrija", + "openUnread_one": "Iftaħ {{name}}, messaġġ mhux moqri {{displayCount}}", + "openUnread": "Iftaħ {{name}}, {{displayCount}} messaġġi mhux moqrija", + "openUnread_other": "Iftaħ {{name}}, {{displayCount}} messaġġi mhux moqrija", "open": "Iftaħ {{name}}", "openSettings": "Iftaħ l-issettjar ta' {{name}}", "fixOnKiloAi": "Isewwi fuq kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Tattiva r-rimedju awto?", "enableAutoRemediationConfirmMessage": "Is-Security Agent se jiftaħ PRs ta' rimedju b'mod awtomatiku għal sejbiet sfruttabbli eliġibbli.", "enable": "Attiva", - "queuedOne": "{{count}} sejba eżistenti fil-kju għall-analiżi.", - "queuedMany": "{{count}} sejbiet eżistenti fil-kju għall-analiżi.", + "queued_one": "{{displayCount}} sejba eżistenti fil-kju għall-analiżi.", + "queued": "{{displayCount}} sejbiet eżistenti fil-kju għall-analiżi.", + "queued_other": "{{displayCount}} sejbiet eżistenti fil-kju għall-analiżi.", "severityCriticalOnly": "Kritiku biss", "severityHighAndAbove": "Għoli u 'l fuq", "severityMediumAndAbove": "Medju u 'l fuq", @@ -1482,8 +1490,9 @@ "on": "Iva", "off": "Le", "allRepositories": "Ir-repożitorji kollha", - "repositorySelected": "{{count}} repożitorju magħżul", - "repositoriesSelected": "{{count}} repożitorji magħżula", + "repositoriesCount_one": "{{displayCount}} repożitorju magħżul", + "repositoriesCount": "{{displayCount}} repożitorji magħżula", + "repositoriesCount_other": "{{displayCount}} repożitorji magħżula", "selectRepositories": "Agħżel ir-repożitorji", "selectRepositoriesSubtitle": "Agħżel liema repożitorji jissorvelja s-Security Agent", "repositories": "Repożitorji", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Is-sessjoni tħassret", "needsInput": "jeħtieġ input", "fromPlatform": "minn {{platform}}", - "centOne": "ċenteżmu", - "centOther": "ċenteżmi", - "dollarOne": "dollaru", - "dollarOther": "dollari" + "cent_one": "ċenteżmu", + "cent": "ċenteżmi", + "cent_other": "ċenteżmi", + "dollar_one": "dollaru", + "dollar": "dollari", + "dollar_other": "dollari" }, "githubInstall": { "couldNotOpenTitle": "Ma setax jinfetaħ GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Ma setax jintrema l-abbozz. Jekk jogħġbok erġa' pprova." }, "partRenderer": { - "updatedFile": "Aġġornat {{count}} fajl", - "updatedFiles": "Aġġornati {{count}} fajls" + "updatedFileCount_one": "Aġġornat {{displayCount}} fajl", + "updatedFileCount": "Aġġornati {{displayCount}} fajls", + "updatedFileCount_other": "Aġġornati {{displayCount}} fajls" }, "toolPatch": { "operationAdded": "Miżjud", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Messaġġi aktar bikrin mibgħuta", "retryHint": "Jerġa' jipprova jgħabbi l-messaġġi aktar bikrin għal din is-sessjoni.", - "omittedOne": "Xi oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", - "omittedMany": "{{count}} oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", + "omitted_one": "Xi oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", + "omitted": "{{displayCount}} oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", + "omitted_other": "{{displayCount}} oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", "couldNotLoad": "Ma setgħux jitgħabbew il-messaġġi aktar bikrin.", "unavailable": "Il-messaġġi aktar bikrin mhumiex disponibbli.", "tooLarge": "Il-messaġġi aktar bikrin huma kbar wisq biex jitgħabbew." @@ -2069,10 +2082,12 @@ "viewTable": "Ara t-tabella", "title": "Tabella", "close": "Agħlaq it-tabella", - "column": "kolonna", - "columns": "kolonni", - "row": "ringiela", - "rows": "ringieli", + "columnCount_one": "kolonna", + "columnCount": "kolonni", + "columnCount_other": "kolonni", + "rowCount_one": "ringiela", + "rowCount": "ringieli", + "rowCount_other": "ringieli", "opensFullScreen": "jiftaħ b'mod sħiħ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "minn {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} pass", - "stepsCountMany": "{{steps}} passi", + "stepsCount_one": "{{steps}} pass", + "stepsCount": "{{steps}} passi", + "stepsCount_other": "{{steps}} passi", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Kompitu ġdid ta' kodifikazzjoni", "explore": "Esplora", "seeAll": "Ara kollha", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Il-ġurnata t-tajba", - "greetingAfternoon": "Il-wara nofsinhar it-tajjeb", - "greetingEvening": "Il-lejla t-tajba" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Agħlaq {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Jiftaħ il-ġestjoni ta' Kilo Pass fuq il-web.", "notSubscribed": "Mhux sottoskritt", "overallocated": "L-assenjazzjonijiet tal-Pass jaqbżu l-postijiet imħallsa", - "paidSeatOne": "{{count}} post imħallas", - "paidSeatOther": "{{count}} postijiet imħallsa", + "paidSeat_one": "{{displayCount}} post imħallas", + "paidSeat": "{{displayCount}} postijiet imħallsa", + "paidSeat_other": "{{displayCount}} postijiet imħallsa", "paymentNeedsAttention": "Il-ħlas għandu bżonn attenzjoni", "paymentPending": "Ħlas pendenti", "processingBlocked": "L-ipproċessar imblukkat", diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index f41e04a773..69bad826a8 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "ဖိုင်များ {{total}} တွင် {{loaded}} တင်ပြီး", "loadAllFiles": "ဖိုင်အားလုံးတင်ပါ", "loadAll": "အားလုံးတင်ပါ", - "fileLoaded": "ဖိုင် {{count}} တင်ပြီး", - "filesLoaded": "ဖိုင်များ {{count}} တင်ပြီး", - "fileLoadedOfTotal": "{{total}} တွင် ဖိုင် {{count}} တင်ပြီး", - "filesLoadedOfTotal": "{{total}} တွင် ဖိုင်များ {{count}} တင်ပြီး", + "fileLoadedCount_one": "ဖိုင် {{displayCount}} တင်ပြီး", + "fileLoadedCount": "ဖိုင်များ {{displayCount}} တင်ပြီး", + "fileLoadedCount_other": "ဖိုင်များ {{displayCount}} တင်ပြီး", + "fileLoadedOfTotalCount_one": "{{total}} တွင် ဖိုင် {{displayCount}} တင်ပြီး", + "fileLoadedOfTotalCount": "{{total}} တွင် ဖိုင်များ {{displayCount}} တင်ပြီး", + "fileLoadedOfTotalCount_other": "{{total}} တွင် ဖိုင်များ {{displayCount}} တင်ပြီး", "filesStillLoading": "ဖိုင်များ ဆက်တင်နေသည်။ ပြန်ဆန်းရန် ဆွဲပါ။", "goToOverview": "Overview သို့ သွားပါ", "goToOverviewTab": "Overview တဘ်သို့ သွားပါ" @@ -288,8 +290,9 @@ "resolved": "ဖြေရှင်းပြီး", "outdated": "ခေတ်နောက်ကျသော", "file": "ဖိုင်", - "oneComment": "မှတ်ချက် ၁ ခု", - "commentCount": "မှတ်ချက် {{count}} ခု", + "comment_one": "မှတ်ချက် ၁ ခု", + "comment": "မှတ်ချက် {{displayCount}} ခု", + "comment_other": "မှတ်ချက် {{displayCount}} ခု", "startedRelative": " · {{relative}} တွင် စတင်ခဲ့သည်", "couldNotLoadMore": "နောက်ထပ်မှတ်ချက်များကို တင်မရပါ။", "retryLoadingMore": "နောက်ထပ်မှတ်ချက်များတင်ရန် ထပ်စမ်းကြည့်", @@ -299,8 +302,9 @@ "reactionsTitle": "တုံ့ပြန်မှုများ", "addReaction": "တုံ့ပြန်မှုထည့်ပါ", "reactionPill": "{{emoji}} တုံ့ပြန်မှု, {{count}} {{countLabel}}", - "reactionSingular": "တုံ့ပြန်မှု", - "reactionPlural": "တုံ့ပြန်မှုများ", + "reaction_one": "တုံ့ပြန်မှု", + "reaction": "တုံ့ပြန်မှုများ", + "reaction_other": "တုံ့ပြန်မှုများ", "commentActions": "မှတ်ချက်လုပ်ဆောင်ချက်များ", "reportContent": "အကြောင်းအရာ သတင်းပို့ပါ", "reportUser": "အသုံးပြုသူ သတင်းပို့ပါ", @@ -452,8 +456,9 @@ "deletePendingMessage": "ဤမှတ်ချက်ကို သုံးသပ်မှုတန်းစီမှ ဖယ်ရှားပါမည်။", "delete": "ဖျက်ပါ", "summaryOptional": "အကျဉ်းချုပ် (ရွေးချယ်နိုင်သည်)", - "pendingCommentSingular": "ဆိုင်းငံ့မှတ်ချက်", - "pendingCommentPlural": "ဆိုင်းငံ့မှတ်ချက်များ", + "pendingComment_one": "ဆိုင်းငံ့မှတ်ချက်", + "pendingComment": "ဆိုင်းငံ့မှတ်ချက်များ", + "pendingComment_other": "ဆိုင်းငံ့မှတ်ချက်များ", "submitCountOfTotal": "မှတ်ချက် {{totalCount}} တွင် {{freshCount}} တင်သွင်းပါ", "submitReview": "သုံးသပ်မှုတင်သွင်းပါ", "partialPostedMessage": "မှတ်ချက် {{freshCount}} ခု တင်ပြီးပါပြီ။ မှတ်ချက် {{staleCount}} ခုသည် အဟောင်း commit ကို ညွှန်ပြပြီး သင့်တန်းစီတွင် ရှိနေပါသည်။" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ဖွင့်ထား · သုံးသပ်မှု လိုအပ်", "stateOpen": "ဖွင့်ထား", "unknownAuthor": "အမည်မသိ ရေးသားသူ", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "ဖိုင်", - "filePlural": "ဖိုင်များ" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "ဖိုင်", + "file": "ဖိုင်များ", + "file_other": "ဖိုင်များ" }, "pendingComment": { "editOutdatedA11y": "{{location}} တွင် ခေတ်နောက်ကျသော ဆိုင်းငံ့မှတ်ချက် တည်းဖြတ်ပါ", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "တစ်စုံတစ်ယောက်", - "oneTyping": "{{name}} စာရိုက်နေသည်...", - "manyTyping": "{{names}} စာရိုက်နေကြသည်..." + "typing_one": "{{name}} စာရိုက်နေသည်...", + "typing": "{{names}} စာရိုက်နေကြသည်...", + "typing_other": "{{names}} စာရိုက်နေကြသည်..." }, "botStatus": { "online": "အွန်လိုင်း", @@ -722,12 +730,10 @@ "couldNotLoad": "ဘေလ်ပေးချေ အချက်အလက် ဖွင့်၍ မရပါ", "manageOnWeb": "ဝက်ဘ်ပေါ်တွင် ဘေလ်စီမံရန်", "commitPlan": "ကတိပြု", - "daysLeft": "{{count}} ရက် ကျန်ပါသည်", "earlybird": "အစောပိုင်းငှက်", "finalCommitTermEndsOn": "သင့် Commit နောက်ဆုံးသက်တမ်းသည် {{date}} တွင် ကုန်ဆုံးပါသည်။ {{price}} ဖြင့် Standard အဖြစ် ဆက်လုပ်ပါ၊ သို့မဟုတ် ဟော့စ်တင် ရပ်ဆိုင်းမည်။", "freeTrial": "အခမဲ့စမ်းသုံး", "hostingEnds": "ဟော့စ်တင် ကုန်ဆုံး", - "oneDayLeft": "1 ရက် ကျန်ပါသည်", "renews": "သက်တမ်းတိုး", "standardMonthToMonth": "Standard လစဉ်ပေးချေ", "standardStartsOn": "Standard သည် {{date}} တွင် {{price}} ဖြင့် စတင်ပါသည်။", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} အာရုံစိုက်ရန် လိုသည်- {{label}}", - "openUnreadOne": "{{name}} ဖွင့်ရန်၊ {{count}} မဖတ်ရသေးသော မက်ဆေ့ချ်", - "openUnreadMany": "{{name}} ဖွင့်ရန်၊ {{count}} မဖတ်ရသေးသော မက်ဆေ့ချ်များ", + "openUnread_one": "{{name}} ဖွင့်ရန်၊ {{displayCount}} မဖတ်ရသေးသော မက်ဆေ့ချ်", + "openUnread": "{{name}} ဖွင့်ရန်၊ {{displayCount}} မဖတ်ရသေးသော မက်ဆေ့ချ်များ", + "openUnread_other": "{{name}} ဖွင့်ရန်၊ {{displayCount}} မဖတ်ရသေးသော မက်ဆေ့ချ်များ", "open": "{{name}} ဖွင့်ရန်", "openSettings": "{{name}} အတွက် ဆက်တင်များ ဖွင့်ရန်", "fixOnKiloAi": "kilo.ai တွင် ဖြေရှင်းရန်- {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "အလိုအလျောက် ပြုပြင်မှု ဖွင့်မလား။", "enableAutoRemediationConfirmMessage": "Security Agent က သင့်လျော်သော အသုံးချနိုင်သော တွေ့ရှိချက်များအတွက် ပြုပြင်မှု PR များကို အလိုအလျောက် ဖွင့်ပါမည်။", "enable": "ဖွင့်ရန်", - "queuedOne": "ရှိပြီးသားတွေ့ရှိချက် {{count}} ခုကို ခွဲခြမ်းစိတ်ဖြာရန် တန်းစီထားသည်။", - "queuedMany": "ရှိပြီးသားတွေ့ရှိချက်များ {{count}} ခုကို ခွဲခြမ်းစိတ်ဖြာရန် တန်းစီထားသည်။", + "queued_one": "ရှိပြီးသားတွေ့ရှိချက် {{displayCount}} ခုကို ခွဲခြမ်းစိတ်ဖြာရန် တန်းစီထားသည်။", + "queued": "ရှိပြီးသားတွေ့ရှိချက်များ {{displayCount}} ခုကို ခွဲခြမ်းစိတ်ဖြာရန် တန်းစီထားသည်။", + "queued_other": "ရှိပြီးသားတွေ့ရှိချက်များ {{displayCount}} ခုကို ခွဲခြမ်းစိတ်ဖြာရန် တန်းစီထားသည်။", "severityCriticalOnly": "အရေးကြီးသောအဆင့်သာ", "severityHighAndAbove": "မြင့်မားခြင်းနှင့်အထက်", "severityMediumAndAbove": "အလယ်အလတ်နှင့်အထက်", @@ -1482,8 +1490,9 @@ "on": "ဖွင့်", "off": "ပိတ်", "allRepositories": "သိုလှောင်မှုအားလုံး", - "repositorySelected": "သိုလှောင်မှု {{count}} ခု ရွေးချယ်ထား", - "repositoriesSelected": "သိုလှောင်မှု {{count}} ခု ရွေးချယ်ထား", + "repositoriesCount_one": "သိုလှောင်မှု {{displayCount}} ခု ရွေးချယ်ထား", + "repositoriesCount": "သိုလှောင်မှု {{displayCount}} ခု ရွေးချယ်ထား", + "repositoriesCount_other": "သိုလှောင်မှု {{displayCount}} ခု ရွေးချယ်ထား", "selectRepositories": "သိုလှောင်မှုများ ရွေးချယ်ပါ", "selectRepositoriesSubtitle": "Security Agent စောင့်ကြည့်မည့် သိုလှောင်မှုများကို ရွေးချယ်ပါ", "repositories": "သိုလှောင်မှုများ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "စက်ရှင် ဖျက်ပြီး", "needsInput": "ထည့်သွင်းမှု လိုအပ်", "fromPlatform": "{{platform}} မှ", - "centOne": "ဆင့်", - "centOther": "ဆင့်များ", - "dollarOne": "ဒေါ်လာ", - "dollarOther": "ဒေါ်လာများ" + "cent_one": "ဆင့်", + "cent": "ဆင့်များ", + "cent_other": "ဆင့်များ", + "dollar_one": "ဒေါ်လာ", + "dollar": "ဒေါ်လာများ", + "dollar_other": "ဒေါ်လာများ" }, "githubInstall": { "couldNotOpenTitle": "GitHub ကို မဖွင့်နိုင်ခဲ့ပါ", @@ -1817,8 +1828,9 @@ "discardFailed": "မူကြမ်းကို ပယ်ဖျက်၍မရခဲ့ပါ။ ထပ်ကြိုးစားပါ။" }, "partRenderer": { - "updatedFile": "ဖိုင် {{count}} ခု မွမ်းမံပြီး", - "updatedFiles": "ဖိုင် {{count}} ခု မွမ်းမံပြီး" + "updatedFileCount_one": "ဖိုင် {{displayCount}} ခု မွမ်းမံပြီး", + "updatedFileCount": "ဖိုင် {{displayCount}} ခု မွမ်းမံပြီး", + "updatedFileCount_other": "ဖိုင် {{displayCount}} ခု မွမ်းမံပြီး" }, "toolPatch": { "operationAdded": "ထည့်ပြီး", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "အစောပိုင်း စာများ တင်ပြီးပါပြီ", "retryHint": "ဤ session အတွက် အစောပိုင်း စာများ တင်ခြင်းကို ထပ်ကြိုးစားသည်။", - "omittedOne": "ဤ session မှ အစောပိုင်း အချို့ အရာများကို ပြသနိုင်ခဲ့ခြင်း မရှိပါ။", - "omittedMany": "ဤ session မှ အစောပိုင်း အရာ {{count}} ခုကို ပြသနိုင်ခဲ့ခြင်း မရှိပါ။", + "omitted_one": "ဤ session မှ အစောပိုင်း အချို့ အရာများကို ပြသနိုင်ခဲ့ခြင်း မရှိပါ။", + "omitted": "ဤ session မှ အစောပိုင်း အရာ {{displayCount}} ခုကို ပြသနိုင်ခဲ့ခြင်း မရှိပါ။", + "omitted_other": "ဤ session မှ အစောပိုင်း အရာ {{displayCount}} ခုကို ပြသနိုင်ခဲ့ခြင်း မရှိပါ။", "couldNotLoad": "အစောပိုင်း စာများကို မတင်နိုင်ပါ။", "unavailable": "အစောပိုင်း စာများ မရနိုင်ပါ။", "tooLarge": "အစောပိုင်း စာများသည် တင်ရန် ကြီးလွန်းသည်။" @@ -2069,10 +2082,12 @@ "viewTable": "ဇယားကြည့်ရန်", "title": "ဇယား", "close": "ဇယားပိတ်ရန်", - "column": "ကော်လံ", - "columns": "ကော်လံများ", - "row": "အတန်း", - "rows": "အတန်းများ", + "columnCount_one": "ကော်လံ", + "columnCount": "ကော်လံများ", + "columnCount_other": "ကော်လံများ", + "rowCount_one": "အတန်း", + "rowCount": "အတန်းများ", + "rowCount_other": "အတန်းများ", "opensFullScreen": "မျက်နှာပြင်အပြည့် ဖွင့်သည်" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} token မှ", "tokens": "token များ", "tokensWithPercentage": "token များ ({{percentage}})", - "stepsCountOne": "{{steps}} လုပ်ဆောင်ချက်", - "stepsCountMany": "{{steps}} လုပ်ဆောင်ချက်များ", + "stepsCount_one": "{{steps}} လုပ်ဆောင်ချက်", + "stepsCount": "{{steps}} လုပ်ဆောင်ချက်များ", + "stepsCount_other": "{{steps}} လုပ်ဆောင်ချက်များ", "modelAccessibilityLabel": "{{name}}၊ {{provider}}၊ {{steps}}၊ {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "coding အလုပ်အသစ်", "explore": "ရှာဖွေပါ", "seeAll": "အားလုံး ကြည့်ရန်", - "kiloAgents": "Kilo Agents", - "greetingMorning": "မင်္ဂလာနံနက်ခင်း", - "greetingAfternoon": "မင်္ဂလာနေ့လည်ခင်း", - "greetingEvening": "မင်္ဂလာညနေခင်း" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} ပိတ်ရန်", @@ -2645,8 +2658,9 @@ "manageHint": "ဝဘ်တွင် Kilo Pass စီမံခန့်ခွဲမှုကို ဖွင့်သည်။", "notSubscribed": "subscription မရှိပါ", "overallocated": "Pass သတ်မှတ်မှုများသည် ပေးထားသော နေရာများထက် ကျော်လွန်နေသည်", - "paidSeatOne": "ပေးထားသော နေရာ {{count}} ခု", - "paidSeatOther": "ပေးထားသော နေရာ {{count}} ခု", + "paidSeat_one": "ပေးထားသော နေရာ {{displayCount}} ခု", + "paidSeat": "ပေးထားသော နေရာ {{displayCount}} ခု", + "paidSeat_other": "ပေးထားသော နေရာ {{displayCount}} ခု", "paymentNeedsAttention": "ငွေပေးချေမှု အာရုံစိုက်ရန် လိုအပ်သည်", "paymentPending": "ငွေပေးချေမှု ဆိုင်းငံ့နေသည်", "processingBlocked": "လုပ်ဆောင်မှု ပိတ်ထားသည်", diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index 8822e4b7dd..d585a2d591 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} av {{total}} filer lastet", "loadAllFiles": "Last alle filene", "loadAll": "Last alt", - "fileLoaded": "{{count}} fil lastet", - "filesLoaded": "{{count}} filer lastet", - "fileLoadedOfTotal": "{{count}} fil lastet av {{total}}", - "filesLoadedOfTotal": "{{count}} filer lastet av {{total}}", + "fileLoadedCount_one": "{{displayCount}} fil lastet", + "fileLoadedCount": "{{displayCount}} filer lastet", + "fileLoadedCount_other": "{{displayCount}} filer lastet", + "fileLoadedOfTotalCount_one": "{{displayCount}} fil lastet av {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} filer lastet av {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} filer lastet av {{total}}", "filesStillLoading": "Filer laster fortsatt. Dra ned for å oppdatere.", "goToOverview": "Gå til oversikt", "goToOverviewTab": "Gå til oversiktsfanen" @@ -288,8 +290,9 @@ "resolved": "Løst", "outdated": "Utdatert", "file": "Fil", - "oneComment": "1 kommentar", - "commentCount": "{{count}} kommentarer", + "comment_one": "1 kommentar", + "comment": "{{displayCount}} kommentarer", + "comment_other": "{{displayCount}} kommentarer", "startedRelative": " · startet {{relative}}", "couldNotLoadMore": "Kunne ikke laste flere kommentarer.", "retryLoadingMore": "Prøv å laste flere kommentarer igjen", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaksjoner", "addReaction": "Legg til reaksjon", "reactionPill": "{{emoji}}-reaksjon, {{count}} {{countLabel}}", - "reactionSingular": "reaksjon", - "reactionPlural": "reaksjoner", + "reaction_one": "reaksjon", + "reaction": "reaksjoner", + "reaction_other": "reaksjoner", "commentActions": "Kommentarhandlinger", "reportContent": "Rapporter innhold", "reportUser": "Rapporter bruker", @@ -452,8 +456,9 @@ "deletePendingMessage": "Denne kommentaren fjernes fra anmeldelseskøen.", "delete": "Slett", "summaryOptional": "Sammendrag (valgfritt)", - "pendingCommentSingular": "ventende kommentar", - "pendingCommentPlural": "ventende kommentarer", + "pendingComment_one": "ventende kommentar", + "pendingComment": "ventende kommentarer", + "pendingComment_other": "ventende kommentarer", "submitCountOfTotal": "Send {{freshCount}} av {{totalCount}} kommentarer", "submitReview": "Send anmeldelse", "partialPostedMessage": "Publiserte {{freshCount}} kommentar(er). {{staleCount}} kommentar(er) peker på en eldre commit og ble i køen din." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Åpen · Anmeldelse kreves", "stateOpen": "Åpen", "unknownAuthor": "Ukjent forfatter", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fil", - "filePlural": "filer" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fil", + "file": "filer", + "file_other": "filer" }, "pendingComment": { "editOutdatedA11y": "Rediger utdatert ventende kommentar på {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Noen", - "oneTyping": "{{name}} skriver...", - "manyTyping": "{{names}} skriver..." + "typing_one": "{{name}} skriver...", + "typing": "{{names}} skriver...", + "typing_other": "{{names}} skriver..." }, "botStatus": { "online": "Pålogget", @@ -722,12 +730,10 @@ "couldNotLoad": "Kunne ikke laste faktureringsinformasjon", "manageOnWeb": "Administrer fakturering på nettet", "commitPlan": "Bindende plan", - "daysLeft": "{{count}} dager igjen", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Den siste bindende perioden din slutter {{date}}. Fortsett som Standard til {{price}}, eller slutten på hosting.", "freeTrial": "Gratis prøveperiode", "hostingEnds": "Hosting slutter", - "oneDayLeft": "1 dag igjen", "renews": "Fornyes", "standardMonthToMonth": "Standard månedlig", "standardStartsOn": "Standard starter {{date}} til {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} trenger oppmerksomhet: {{label}}", - "openUnreadOne": "Åpne {{name}}, {{count}} ulest melding", - "openUnreadMany": "Åpne {{name}}, {{count}} uleste meldinger", + "openUnread_one": "Åpne {{name}}, {{displayCount}} ulest melding", + "openUnread": "Åpne {{name}}, {{displayCount}} uleste meldinger", + "openUnread_other": "Åpne {{name}}, {{displayCount}} uleste meldinger", "open": "Åpne {{name}}", "openSettings": "Åpne innstillinger for {{name}}", "fixOnKiloAi": "Fiks på kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Aktivere automatisk utbedring?", "enableAutoRemediationConfirmMessage": "Security Agent åpner utbedrings-PR-er automatisk for kvalifiserte utnyttbare funn.", "enable": "Aktiver", - "queuedOne": "{{count}} eksisterende funn satt i kø for analyse.", - "queuedMany": "{{count}} eksisterende funn satt i kø for analyse.", + "queued_one": "{{displayCount}} eksisterende funn satt i kø for analyse.", + "queued": "{{displayCount}} eksisterende funn satt i kø for analyse.", + "queued_other": "{{displayCount}} eksisterende funn satt i kø for analyse.", "severityCriticalOnly": "Bare kritiske", "severityHighAndAbove": "Høy og over", "severityMediumAndAbove": "Middels og over", @@ -1482,8 +1490,9 @@ "on": "På", "off": "Av", "allRepositories": "Alle repositories", - "repositorySelected": "{{count}} repository valgt", - "repositoriesSelected": "{{count}} repositories valgt", + "repositoriesCount_one": "{{displayCount}} repository valgt", + "repositoriesCount": "{{displayCount}} repositories valgt", + "repositoriesCount_other": "{{displayCount}} repositories valgt", "selectRepositories": "Velg repositories", "selectRepositoriesSubtitle": "Velg hvilke repositories Security Agent overvåker", "repositories": "Repositories", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Økt slettet", "needsInput": "trenger innspill", "fromPlatform": "fra {{platform}}", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dollar", - "dollarOther": "dollarer" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dollar", + "dollar": "dollarer", + "dollar_other": "dollarer" }, "githubInstall": { "couldNotOpenTitle": "Kunne ikke åpne GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Kunne ikke forkaste utkastet. Prøv igjen." }, "partRenderer": { - "updatedFile": "Oppdaterte {{count}} fil", - "updatedFiles": "Oppdaterte {{count}} filer" + "updatedFileCount_one": "Oppdaterte {{displayCount}} fil", + "updatedFileCount": "Oppdaterte {{displayCount}} filer", + "updatedFileCount_other": "Oppdaterte {{displayCount}} filer" }, "toolPatch": { "operationAdded": "Lagt til", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Tidligere meldinger lastet inn", "retryHint": "Forsøker igjen å laste de eldre meldingene for denne økten.", - "omittedOne": "Noen tidligere elementer fra denne økten kunne ikke vises.", - "omittedMany": "{{count}} tidligere elementer fra denne økten kunne ikke vises.", + "omitted_one": "Noen tidligere elementer fra denne økten kunne ikke vises.", + "omitted": "{{displayCount}} tidligere elementer fra denne økten kunne ikke vises.", + "omitted_other": "{{displayCount}} tidligere elementer fra denne økten kunne ikke vises.", "couldNotLoad": "Kunne ikke laste tidligere meldinger.", "unavailable": "Tidligere meldinger er ikke tilgjengelige.", "tooLarge": "Tidligere meldinger er for store til å lastes." @@ -2069,10 +2082,12 @@ "viewTable": "Vis tabell", "title": "Tabell", "close": "Lukk tabell", - "column": "kolonne", - "columns": "kolonner", - "row": "rad", - "rows": "rader", + "columnCount_one": "kolonne", + "columnCount": "kolonner", + "columnCount_other": "kolonner", + "rowCount_one": "rad", + "rowCount": "rader", + "rowCount_other": "rader", "opensFullScreen": "åpnes i fullskjerm" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "av {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} steg", - "stepsCountMany": "{{steps}} steg", + "stepsCount_one": "{{steps}} steg", + "stepsCount": "{{steps}} steg", + "stepsCount_other": "{{steps}} steg", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Ny kodeoppgave", "explore": "Utforsk", "seeAll": "Se alle", - "kiloAgents": "Kilo Agents", - "greetingMorning": "God morgen", - "greetingAfternoon": "God ettermiddag", - "greetingEvening": "God kveld" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Lukk {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Åpner Kilo Pass-administrasjon på nettet.", "notSubscribed": "Ikke abonnert", "overallocated": "Pass-tildelinger overstiger betalte plasser", - "paidSeatOne": "{{count}} betalt plass", - "paidSeatOther": "{{count}} betalte plasser", + "paidSeat_one": "{{displayCount}} betalt plass", + "paidSeat": "{{displayCount}} betalte plasser", + "paidSeat_other": "{{displayCount}} betalte plasser", "paymentNeedsAttention": "Betaling krever oppmerksomhet", "paymentPending": "Betaling venter", "processingBlocked": "Behandling blokkert", diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index ded29860f9..d0464d1460 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} / {{total}} फाइलहरू लोड भयो", "loadAllFiles": "सबै फाइलहरू लोड गर्नुहोस्", "loadAll": "सबै लोड गर्नुहोस्", - "fileLoaded": "{{count}} फाइल लोड भयो", - "filesLoaded": "{{count}} फाइलहरू लोड भयो", - "fileLoadedOfTotal": "{{total}} मध्ये {{count}} फाइल लोड भयो", - "filesLoadedOfTotal": "{{total}} मध्ये {{count}} फाइलहरू लोड भयो", + "fileLoadedCount_one": "{{displayCount}} फाइल लोड भयो", + "fileLoadedCount": "{{displayCount}} फाइलहरू लोड भयो", + "fileLoadedCount_other": "{{displayCount}} फाइलहरू लोड भयो", + "fileLoadedOfTotalCount_one": "{{total}} मध्ये {{displayCount}} फाइल लोड भयो", + "fileLoadedOfTotalCount": "{{total}} मध्ये {{displayCount}} फाइलहरू लोड भयो", + "fileLoadedOfTotalCount_other": "{{total}} मध्ये {{displayCount}} फाइलहरू लोड भयो", "filesStillLoading": "फाइलहरू अझै लोड हुँदैछन्। ताजा गर्न तल तान्नुहोस्।", "goToOverview": "अवलोकनमा जानुहोस्", "goToOverviewTab": "अवलोकन ट्याबमा जानुहोस्" @@ -288,8 +290,9 @@ "resolved": "समाधान भयो", "outdated": "पुरानो", "file": "फाइल", - "oneComment": "१ टिप्पणी", - "commentCount": "{{count}} टिप्पणीहरू", + "comment_one": "१ टिप्पणी", + "comment": "{{displayCount}} टिप्पणीहरू", + "comment_other": "{{displayCount}} टिप्पणीहरू", "startedRelative": " · {{relative}} मा सुरु भयो", "couldNotLoadMore": "थप टिप्पणीहरू लोड गर्न सकिएन।", "retryLoadingMore": "थप टिप्पणीहरू लोड गर्न पुनः प्रयास गर्नुहोस्", @@ -299,8 +302,9 @@ "reactionsTitle": "प्रतिक्रियाहरू", "addReaction": "प्रतिक्रिया थप्नुहोस्", "reactionPill": "{{emoji}} प्रतिक्रिया, {{count}} {{countLabel}}", - "reactionSingular": "प्रतिक्रिया", - "reactionPlural": "प्रतिक्रियाहरू", + "reaction_one": "प्रतिक्रिया", + "reaction": "प्रतिक्रियाहरू", + "reaction_other": "प्रतिक्रियाहरू", "commentActions": "टिप्पणी कार्यहरू", "reportContent": "सामग्री रिपोर्ट गर्नुहोस्", "reportUser": "प्रयोगकर्ता रिपोर्ट गर्नुहोस्", @@ -452,8 +456,9 @@ "deletePendingMessage": "यो टिप्पणी समीक्षा कतारबाट हटाइनेछ।", "delete": "मेट्नुहोस्", "summaryOptional": "सारांश (वैकल्पिक)", - "pendingCommentSingular": "प्रतीक्षामा रहेको टिप्पणी", - "pendingCommentPlural": "प्रतीक्षामा रहेका टिप्पणीहरू", + "pendingComment_one": "प्रतीक्षामा रहेको टिप्पणी", + "pendingComment": "प्रतीक्षामा रहेका टिप्पणीहरू", + "pendingComment_other": "प्रतीक्षामा रहेका टिप्पणीहरू", "submitCountOfTotal": "{{totalCount}} मध्ये {{freshCount}} टिप्पणीहरू पेश गर्नुहोस्", "submitReview": "समीक्षा पेश गर्नुहोस्", "partialPostedMessage": "{{freshCount}} टिप्पणी(हरू) पेश गरियो। {{staleCount}} टिप्पणी(हरू) पुरानो कमिटमा औंल्याइएको छ र तपाईंको कतारमा रह्यो।" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "खुला · समीक्षा आवश्यक", "stateOpen": "खुला", "unknownAuthor": "अज्ञात लेखक", - "commitSingular": "कमिट", - "commitPlural": "कमिटहरू", - "fileSingular": "फाइल", - "filePlural": "फाइलहरू" + "commit_one": "कमिट", + "commit": "कमिटहरू", + "commit_other": "कमिटहरू", + "file_one": "फाइल", + "file": "फाइलहरू", + "file_other": "फाइलहरू" }, "pendingComment": { "editOutdatedA11y": "{{location}} मा पुरानो प्रतीक्षामा रहेको टिप्पणी सम्पादन गर्नुहोस्", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "कोही", - "oneTyping": "{{name}} टाइप गर्दै छ...", - "manyTyping": "{{names}} टाइप गर्दै छन्..." + "typing_one": "{{name}} टाइप गर्दै छ...", + "typing": "{{names}} टाइप गर्दै छन्...", + "typing_other": "{{names}} टाइप गर्दै छन्..." }, "botStatus": { "online": "अनलाइन", @@ -722,12 +730,10 @@ "couldNotLoad": "बिलिङ जानकारी लोड गर्न सकिएन", "manageOnWeb": "वेबमा बिलिङ व्यवस्थापन गर्नुहोस्", "commitPlan": "कमिट", - "daysLeft": "{{count}} दिन बाँकी", "earlybird": "प्रारम्भिक", "finalCommitTermEndsOn": "तपाईंको अन्तिम कमिट अवधि {{date}} मा समाप्त हुन्छ। {{price}} मा स्ट्यान्डर्डको रूपमा जारी राख्नुहोस्, वा होस्टिङ समाप्त हुन्छ।", "freeTrial": "नि:शुल्क परीक्षण", "hostingEnds": "होस्टिङ समाप्त हुन्छ", - "oneDayLeft": "१ दिन बाँकी", "renews": "नवीकरण हुन्छ", "standardMonthToMonth": "स्ट्यान्डर्ड महिना-दर-महिना", "standardStartsOn": "स्ट्यान्डर्ड {{date}} मा {{price}} मा सुरु हुन्छ।", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} लाई ध्यान चाहिन्छ: {{label}}", - "openUnreadOne": "{{name}} खोल्नुहोस्, {{count}} नपढेको सन्देश", - "openUnreadMany": "{{name}} खोल्नुहोस्, {{count}} नपढेका सन्देशहरू", + "openUnread_one": "{{name}} खोल्नुहोस्, {{displayCount}} नपढेको सन्देश", + "openUnread": "{{name}} खोल्नुहोस्, {{displayCount}} नपढेका सन्देशहरू", + "openUnread_other": "{{name}} खोल्नुहोस्, {{displayCount}} नपढेका सन्देशहरू", "open": "{{name}} खोल्नुहोस्", "openSettings": "{{name}} का लागि सेटिङ्स खोल्नुहोस्", "fixOnKiloAi": "kilo.ai मा समाधान गर्नुहोस्: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "स्वचालित सुधार सक्षम गर्ने?", "enableAutoRemediationConfirmMessage": "Security Agent ले योग्य शोषणयोग्य फेला परेका कुराहरूका लागि सुधार PRहरू स्वचालित रूपमा खोल्नेछ।", "enable": "सक्षम गर्नुहोस्", - "queuedOne": "{{count}} वटा अवस्थित निष्कर्ष विश्लेषणका लागि कतारमा राखियो।", - "queuedMany": "{{count}} वटा अवस्थित निष्कर्षहरू विश्लेषणका लागि कतारमा राखियो।", + "queued_one": "{{displayCount}} वटा अवस्थित निष्कर्ष विश्लेषणका लागि कतारमा राखियो।", + "queued": "{{displayCount}} वटा अवस्थित निष्कर्षहरू विश्लेषणका लागि कतारमा राखियो।", + "queued_other": "{{displayCount}} वटा अवस्थित निष्कर्षहरू विश्लेषणका लागि कतारमा राखियो।", "severityCriticalOnly": "केवल क्रिटिकल", "severityHighAndAbove": "उच्च र माथि", "severityMediumAndAbove": "मध्यम र माथि", @@ -1482,8 +1490,9 @@ "on": "चालू", "off": "बन्द", "allRepositories": "सबै भण्डारहरू", - "repositorySelected": "{{count}} भण्डार चयन गरियो", - "repositoriesSelected": "{{count}} भण्डारहरू चयन गरियो", + "repositoriesCount_one": "{{displayCount}} भण्डार चयन गरियो", + "repositoriesCount": "{{displayCount}} भण्डारहरू चयन गरियो", + "repositoriesCount_other": "{{displayCount}} भण्डारहरू चयन गरियो", "selectRepositories": "भण्डारहरू चयन गर्नुहोस्", "selectRepositoriesSubtitle": "सुरक्षा एजेन्टले कुन भण्डारहरू निगरानी गर्ने भनेर छान्नुहोस्", "repositories": "भण्डारहरू", @@ -1720,10 +1729,12 @@ "sessionDeleted": "सत्र मेटियो", "needsInput": "इनपुट चाहिन्छ", "fromPlatform": "{{platform}} बाट", - "centOne": "सेन्ट", - "centOther": "सेन्टहरू", - "dollarOne": "डलर", - "dollarOther": "डलरहरू" + "cent_one": "सेन्ट", + "cent": "सेन्टहरू", + "cent_other": "सेन्टहरू", + "dollar_one": "डलर", + "dollar": "डलरहरू", + "dollar_other": "डलरहरू" }, "githubInstall": { "couldNotOpenTitle": "GitHub खोल्न सकिएन", @@ -1817,8 +1828,9 @@ "discardFailed": "ड्राफ्ट खारेज गर्न सकिएन। फेरि प्रयास गर्नुहोस्।" }, "partRenderer": { - "updatedFile": "{{count}} फाइल अद्यावधिक गरियो", - "updatedFiles": "{{count}} फाइलहरू अद्यावधिक गरियो" + "updatedFileCount_one": "{{displayCount}} फाइल अद्यावधिक गरियो", + "updatedFileCount": "{{displayCount}} फाइलहरू अद्यावधिक गरियो", + "updatedFileCount_other": "{{displayCount}} फाइलहरू अद्यावधिक गरियो" }, "toolPatch": { "operationAdded": "थपियो", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "पहिलेका सन्देशहरू लोड भयो", "retryHint": "यस सत्रका लागि पहिलेका सन्देशहरूको लोड पुनःप्रयास गर्छ।", - "omittedOne": "यस सत्रका केही पहिलेका वस्तुहरू प्रदर्शन गर्न सकिएन।", - "omittedMany": "यस सत्रका {{count}} पहिलेका वस्तुहरू प्रदर्शन गर्न सकिएन।", + "omitted_one": "यस सत्रका केही पहिलेका वस्तुहरू प्रदर्शन गर्न सकिएन।", + "omitted": "यस सत्रका {{displayCount}} पहिलेका वस्तुहरू प्रदर्शन गर्न सकिएन।", + "omitted_other": "यस सत्रका {{displayCount}} पहिलेका वस्तुहरू प्रदर्शन गर्न सकिएन।", "couldNotLoad": "पहिलेका सन्देशहरू लोड गर्न सकिएन।", "unavailable": "पहिलेका सन्देशहरू उपलब्ध छैनन्।", "tooLarge": "पहिलेका सन्देशहरू लोड गर्न धेरै ठूला छन्।" @@ -2069,10 +2082,12 @@ "viewTable": "तालिका हेर्नुहोस्", "title": "तालिका", "close": "तालिका बन्द गर्नुहोस्", - "column": "स्तम्भ", - "columns": "स्तम्भहरू", - "row": "पङ्क्ति", - "rows": "पङ्क्तिहरू", + "columnCount_one": "स्तम्भ", + "columnCount": "स्तम्भहरू", + "columnCount_other": "स्तम्भहरू", + "rowCount_one": "पङ्क्ति", + "rowCount": "पङ्क्तिहरू", + "rowCount_other": "पङ्क्तिहरू", "opensFullScreen": "पूर्ण स्क्रिनमा खोल्छ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} टोकन मध्ये", "tokens": "टोकनहरू", "tokensWithPercentage": "टोकनहरू ({{percentage}})", - "stepsCountOne": "{{steps}} चरण", - "stepsCountMany": "{{steps}} चरणहरू", + "stepsCount_one": "{{steps}} चरण", + "stepsCount": "{{steps}} चरणहरू", + "stepsCount_other": "{{steps}} चरणहरू", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "नयाँ कोडिङ कार्य", "explore": "अन्वेषण", "seeAll": "सबै हेर्नुहोस्", - "kiloAgents": "Kilo Agents", - "greetingMorning": "शुभ बिहान", - "greetingAfternoon": "शुभ दिउँसो", - "greetingEvening": "शुभ साँझ" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} बन्द गर्नुहोस्", @@ -2645,8 +2658,9 @@ "manageHint": "वेबमा Kilo Pass व्यवस्थापन खोल्छ।", "notSubscribed": "सदस्यता लिइएको छैन", "overallocated": "Pass असाइनमेन्टहरू भुक्तान गरिएका सीटहरूभन्दा बढी", - "paidSeatOne": "{{count}} भुक्तान गरिएको सीट", - "paidSeatOther": "{{count}} भुक्तान गरिएका सीटहरू", + "paidSeat_one": "{{displayCount}} भुक्तान गरिएको सीट", + "paidSeat": "{{displayCount}} भुक्तान गरिएका सीटहरू", + "paidSeat_other": "{{displayCount}} भुक्तान गरिएका सीटहरू", "paymentNeedsAttention": "भुक्तानीमा ध्यान चाहिन्छ", "paymentPending": "भुक्तानी पर्खाइमा", "processingBlocked": "प्रक्रिया रोकिएको", diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index b143fe14d8..aa15cb5705 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Iemand", - "oneTyping": "{{name}} typt...", - "manyTyping": "{{names}} typen..." + "typing_one": "{{name}} typt...", + "typing": "{{names}} typen...", + "typing_other": "{{names}} typen..." }, "botStatus": { "online": "Online", @@ -350,12 +351,10 @@ "couldNotLoad": "Kon factureringsgegevens niet laden", "manageOnWeb": "Facturering beheren op het web", "commitPlan": "Commit", - "daysLeft": "{{count}} dagen resterend", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Je laatste Commit-periode eindigt op {{date}}. Ga verder als Standard voor {{price}}, of de hosting stopt.", "freeTrial": "Gratis proefperiode", "hostingEnds": "Hosting stopt", - "oneDayLeft": "1 dag resterend", "renews": "Verlengt", "standardMonthToMonth": "Standard per maand", "standardStartsOn": "Standard start op {{date}} voor {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} heeft aandacht nodig: {{label}}", "open": "{{name}} openen", "openSettings": "Instellingen openen voor {{name}}", - "openUnreadMany": "{{name}} openen, {{count}} ongelezen berichten", - "openUnreadOne": "{{name}} openen, {{count}} ongelezen bericht" + "openUnread": "{{name}} openen, {{displayCount}} ongelezen berichten", + "openUnread_other": "{{name}} openen, {{displayCount}} ongelezen berichten", + "openUnread_one": "{{name}} openen, {{displayCount}} ongelezen bericht" }, "list": { "createInstance": "Instantie maken", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Ook al geanalyseerde, in aanmerking komende bevindingen in de wachtrij zetten. Dubbele PR's blijven onderdrukt.", "minimumSeverity": "Minimale ernst", "permissionNote": "Alleen organisatie-eigenaren en factureringsbeheerders kunnen deze instellingen wijzigen.", - "queuedMany": "{{count}} bestaande bevindingen in de wachtrij voor analyse.", - "queuedOne": "{{count}} bestaande bevinding in de wachtrij voor analyse.", + "queued": "{{displayCount}} bestaande bevindingen in de wachtrij voor analyse.", + "queued_other": "{{displayCount}} bestaande bevindingen in de wachtrij voor analyse.", + "queued_one": "{{displayCount}} bestaande bevinding in de wachtrij voor analyse.", "requireApproval": "Goedkeuring vereisen vóór automatisch herstel", "requireApprovalSubtitle": "Automatisch herstel wacht op je goedkeuring voordat PR's worden geopend.", "severityAll": "Alle ernstniveaus", @@ -1270,8 +1271,9 @@ "off": "Uit", "on": "Aan", "repositories": "Repositories", - "repositoriesSelected": "{{count}} repositories geselecteerd", - "repositorySelected": "{{count}} repository geselecteerd", + "repositoriesCount": "{{displayCount}} repositories geselecteerd", + "repositoriesCount_other": "{{displayCount}} repositories geselecteerd", + "repositoriesCount_one": "{{displayCount}} repository geselecteerd", "securityAgent": "Security Agent", "selectRepositories": "Repositories selecteren", "selectRepositoriesSubtitle": "Kies welke repositories Security Agent bewaakt", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Sessie verwijderd", "needsInput": "heeft invoer nodig", "fromPlatform": "van {{platform}}", - "centOne": "cent", - "centOther": "centen", - "dollarOne": "dollar", - "dollarOther": "dollars" + "cent_one": "cent", + "cent": "centen", + "cent_other": "centen", + "dollar_one": "dollar", + "dollar": "dollars", + "dollar_other": "dollars" }, "githubInstall": { "couldNotOpenMessage": "We konden de installatie van de GitHub-app niet starten. Probeer het opnieuw.", @@ -1445,8 +1449,9 @@ "keepEditing": "Blijven bewerken" }, "partRenderer": { - "updatedFile": "{{count}} bestand bijgewerkt", - "updatedFiles": "{{count}} bestanden bijgewerkt" + "updatedFileCount_one": "{{displayCount}} bestand bijgewerkt", + "updatedFileCount": "{{displayCount}} bestanden bijgewerkt", + "updatedFileCount_other": "{{displayCount}} bestanden bijgewerkt" }, "toolPatch": { "operationAdded": "Toegevoegd", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Eerdere berichten geladen", "retryHint": "Probeert het laden van oudere berichten van deze sessie opnieuw.", - "omittedOne": "Een eerder item uit deze sessie kon niet worden weergegeven.", - "omittedMany": "{{count}} eerdere items uit deze sessie konden niet worden weergegeven.", + "omitted_one": "Een eerder item uit deze sessie kon niet worden weergegeven.", + "omitted": "{{displayCount}} eerdere items uit deze sessie konden niet worden weergegeven.", + "omitted_other": "{{displayCount}} eerdere items uit deze sessie konden niet worden weergegeven.", "couldNotLoad": "Eerdere berichten konden niet worden geladen.", "unavailable": "Eerdere berichten zijn niet beschikbaar.", "tooLarge": "Eerdere berichten zijn te groot om te laden." @@ -1697,10 +1703,12 @@ "viewTable": "Tabel bekijken", "title": "Tabel", "close": "Tabel sluiten", - "column": "kolom", - "columns": "kolommen", - "row": "rij", - "rows": "rijen", + "columnCount_one": "kolom", + "columnCount": "kolommen", + "columnCount_other": "kolommen", + "rowCount_one": "rij", + "rowCount": "rijen", + "rowCount_other": "rijen", "opensFullScreen": "opent op volledig scherm" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "van {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} stap", - "stepsCountMany": "{{steps}} stappen", + "stepsCount_one": "{{steps}} stap", + "stepsCount": "{{steps}} stappen", + "stepsCount_other": "{{steps}} stappen", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Nieuwe codeertaak", "explore": "Verkennen", "seeAll": "Alles bekijken", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Goedemorgen", - "greetingAfternoon": "Goedemiddag", - "greetingEvening": "Goedenavond" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} sluiten", @@ -2205,7 +2211,8 @@ "closeReactions": "Reacties sluiten", "collapseThread": "Thread samenvouwen", "commentActions": "Opmerkingacties", - "commentCount": "{{count}} opmerkingen", + "comment": "{{displayCount}} opmerkingen", + "comment_other": "{{displayCount}} opmerkingen", "couldNotLoad": "Kon discussie niet laden", "couldNotLoadMore": "Kon niet meer opmerkingen laden.", "couldNotReply": "Kon niet reageren.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} gedempt", "noDiscussion": "Nog geen discussie", "noDiscussionDescription": "Geen reviewthreads of gespreksopmerkingen bij deze pull-aanvraag.", - "oneComment": "1 opmerking", + "comment_one": "1 opmerking", "outdated": "Verouderd", "quotedDiffSnippet": "Geciteerd diff-fragment", "reactionPill": "{{emoji}} reactie, {{count}} {{countLabel}}", - "reactionPlural": "reacties", - "reactionSingular": "reactie", + "reaction": "reacties", + "reaction_other": "reacties", + "reaction_one": "reactie", "reactionsTitle": "Reacties", "reply": "Reageren", "replyBadRequest": "Deze reactie kan niet worden geplaatst. De thread is mogelijk gewijzigd.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Nog {{count}} regels uitvouwen ({{start}}–{{end}})", "failedToLoadContext": "Kon context niet laden — tik om opnieuw te proberen", "failedToLoadMoreFiles": "Kon niet meer bestanden laden — tik om opnieuw te proberen", - "fileLoaded": "{{count}} bestand geladen", - "fileLoadedOfTotal": "{{count}} bestand geladen van {{total}}", - "filesLoaded": "{{count}} bestanden geladen", - "filesLoadedOfTotal": "{{count}} bestanden geladen van {{total}}", + "fileLoadedCount_one": "{{displayCount}} bestand geladen", + "fileLoadedOfTotalCount_one": "{{displayCount}} bestand geladen van {{total}}", + "fileLoadedCount": "{{displayCount}} bestanden geladen", + "fileLoadedCount_other": "{{displayCount}} bestanden geladen", + "fileLoadedOfTotalCount": "{{displayCount}} bestanden geladen van {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} bestanden geladen van {{total}}", "filesStillLoading": "Bestanden worden nog geladen. Trek omlaag om te vernieuwen.", "goToOverview": "Naar Overzicht", "goToOverviewTab": "Naar tabblad Overzicht", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Geen bestanden gewijzigd", "noFilesChangedDescription": "Deze pull-aanvraag heeft geen bestandswijzigingen.", "overview": { - "commitPlural": "commits", - "commitSingular": "commit", - "filePlural": "bestanden", - "fileSingular": "bestand", + "commit": "commits", + "commit_other": "commits", + "commit_one": "commit", + "file": "bestanden", + "file_other": "bestanden", + "file_one": "bestand", "stateClosed": "Gesloten", "stateDraft": "Concept", "stateMerged": "Samengevoegd", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Deze opmerking wordt uit de reviewwachtrij verwijderd.", "deletePendingTitle": "Openstaande opmerking verwijderen?", "loadFailedTitle": "Kon de reviewinzending niet laden", - "pendingCommentPlural": "openstaande opmerkingen", - "pendingCommentSingular": "openstaande opmerking", + "pendingComment": "openstaande opmerkingen", + "pendingComment_other": "openstaande opmerkingen", + "pendingComment_one": "openstaande opmerking", "summaryOptional": "Samenvatting (optioneel)", "title": "Review verzenden", "partialPostedMessage": "{{freshCount}} opmerking(en) geplaatst. {{staleCount}} opmerking(en) verwijzen naar een oudere commit en blijven in je wachtrij.", @@ -2632,8 +2645,9 @@ "manageHint": "Opent Kilo Pass-beheer op het web.", "notSubscribed": "Geen abonnement", "overallocated": "Pass-toewijzingen overschrijden de betaalde licenties", - "paidSeatOne": "{{count}} betaalde licentie", - "paidSeatOther": "{{count}} betaalde licenties", + "paidSeat_one": "{{displayCount}} betaalde licentie", + "paidSeat": "{{displayCount}} betaalde licenties", + "paidSeat_other": "{{displayCount}} betaalde licenties", "paymentNeedsAttention": "Betaling heeft aandacht nodig", "paymentPending": "Betaling in behandeling", "processingBlocked": "Verwerking geblokkeerd", diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index 256920dc47..ab89c8da34 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Faayilootni {{loaded}} keessaa {{total}} fayyadaman", "loadAllFiles": "Faayiloota hunda fayyadami", "loadAll": "Hundumaa fayyadami", - "fileLoaded": "Faayiliin {{count}} fayyadame", - "filesLoaded": "Faayilootni {{count}} fayyadaman", - "fileLoadedOfTotal": "Faayiliin {{count}} keessaa {{total}} fayyadame", - "filesLoadedOfTotal": "Faayilootni {{count}} keessaa {{total}} fayyadaman", + "fileLoadedCount_one": "Faayiliin {{displayCount}} fayyadame", + "fileLoadedCount": "Faayilootni {{displayCount}} fayyadaman", + "fileLoadedCount_other": "Faayilootni {{displayCount}} fayyadaman", + "fileLoadedOfTotalCount_one": "Faayiliin {{displayCount}} keessaa {{total}} fayyadame", + "fileLoadedOfTotalCount": "Faayilootni {{displayCount}} keessaa {{total}} fayyadaman", + "fileLoadedOfTotalCount_other": "Faayilootni {{displayCount}} keessaa {{total}} fayyadaman", "filesStillLoading": "Faayilootni amma iyyuu fayyadamaa jiru. Haaromsuuf harkisi.", "goToOverview": "Gara Overview deemi", "goToOverviewTab": "Gara tab Overview deemi" @@ -288,8 +290,9 @@ "resolved": "Furate", "outdated": "Gara duraa", "file": "Faayilii", - "oneComment": "Yaada 1", - "commentCount": "Yaadota {{count}}", + "comment_one": "Yaada 1", + "comment": "Yaadota {{displayCount}}", + "comment_other": "Yaadota {{displayCount}}", "startedRelative": " · kan jalqabe {{relative}}", "couldNotLoadMore": "Yaadota dabalataa fayyadamuu hin dandeenye.", "retryLoadingMore": "Yaadota dabalataa fayyadamu irra deebi'i", @@ -299,8 +302,9 @@ "reactionsTitle": "Adda suutii", "addReaction": "Adda suutii dabali", "reactionPill": "Adda suutii {{emoji}}, {{count}} {{countLabel}}", - "reactionSingular": "adda suutii", - "reactionPlural": "adda suutii", + "reaction_one": "adda suutii", + "reaction": "adda suutii", + "reaction_other": "adda suutii", "commentActions": "Gochaalee yaadaa", "reportContent": "Sagantaa gabaasi", "reportUser": "Fayyadamaa gabaasi", @@ -452,8 +456,9 @@ "deletePendingMessage": "Yaadni kun tarree ilalloo irraa baafama.", "delete": "Balleessi", "summaryOptional": "Guduunfaa (filannoo)", - "pendingCommentSingular": "yaada eeggate", - "pendingCommentPlural": "yaadota eeggatani", + "pendingComment_one": "yaada eeggate", + "pendingComment": "yaadota eeggatani", + "pendingComment_other": "yaadota eeggatani", "submitCountOfTotal": "Yaadota {{freshCount}} keessaa {{totalCount}} dhiheessi", "submitReview": "Ilalloo dhiheessi", "partialPostedMessage": "Yaadota {{freshCount}} maxxanfame. Yaadotni {{staleCount}} commit dheeraa irratti mul'atu fi tarree kee keessa turan." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Banama · Ilalloon barbaachisaa", "stateOpen": "Banama", "unknownAuthor": "Barreessaan hin beekamne", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "faayilii", - "filePlural": "faayiloota" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "faayilii", + "file": "faayiloota", + "file_other": "faayiloota" }, "pendingComment": { "editOutdatedA11y": "Yaada eeggate dheeraa {{location}} irratti gulaali", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Namni tokko", - "oneTyping": "{{name}} barreessaa jira...", - "manyTyping": "{{names}} barreessaa jiru..." + "typing_one": "{{name}} barreessaa jira...", + "typing": "{{names}} barreessaa jiru...", + "typing_other": "{{names}} barreessaa jiru..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Odeeffannoo kaffaltii fe'achuu hin dandeenye", "manageOnWeb": "Kaffaltii Weebii irratti Bulcha", "commitPlan": "Commit", - "daysLeft": "{{count}} guyyaa hafe", "earlybird": "Guyyaa jalqaba", "finalCommitTermEndsOn": "Yeroo Commit kee dhumaa gaafa {{date}} xumurama. Itti fufi akka Standard taate gatii {{price}} tiin, ykn hosting ni dhaabbata.", "freeTrial": "Qoramaa Bilisaa", "hostingEnds": "Hosting dhuma", - "oneDayLeft": "1 guyyaa hafe", "renews": "Irra deebi'ee", "standardMonthToMonth": "Standard ji'aa tokkootti", "standardStartsOn": "Standard {{date}} irratti {{price}}n jalqaba.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} hubannoo barbaada: {{label}}", - "openUnreadOne": "{{name}} bani, {{count}} ergaa hin dubbifamne", - "openUnreadMany": "{{name}} bani, {{count}} ergaa hin dubbifamne", + "openUnread_one": "{{name}} bani, {{displayCount}} ergaa hin dubbifamne", + "openUnread": "{{name}} bani, {{displayCount}} ergaa hin dubbifamne", + "openUnread_other": "{{name}} bani, {{displayCount}} ergaa hin dubbifamne", "open": "{{name}} bani", "openSettings": "{{name}} tajaajila bani", "fixOnKiloAi": "kilo.ai irratti fayyisi: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Qulqullina of-rakkoo banaa?", "enableAutoRemediationConfirmMessage": "Security Agent argamoota itti fayyadamuu danda'an danda'anirratti of-rakkoo PR qulqullina banaa.", "enable": "Bani", - "queuedOne": "Raawwii {{count}} kan jirutti anaalizii eeggachuu keessa jira.", - "queuedMany": "Raawwiilee {{count}} kan jiranii anaalizii eeggachuu keessa jiran.", + "queued_one": "Raawwii {{displayCount}} kan jirutti anaalizii eeggachuu keessa jira.", + "queued": "Raawwiilee {{displayCount}} kan jiranii anaalizii eeggachuu keessa jiran.", + "queued_other": "Raawwiilee {{displayCount}} kan jiranii anaalizii eeggachuu keessa jiran.", "severityCriticalOnly": "Cimaa qofa", "severityHighAndAbove": "Ol'aanaa fi isaa ol", "severityMediumAndAbove": "Giddu-galeessaa fi isaa ol", @@ -1482,8 +1490,9 @@ "on": "Baname", "off": "Cufame", "allRepositories": "Repositorylee hunda", - "repositorySelected": "Repository {{count}} filatame", - "repositoriesSelected": "Repositorylee {{count}} filataman", + "repositoriesCount_one": "Repository {{displayCount}} filatame", + "repositoriesCount": "Repositorylee {{displayCount}} filataman", + "repositoriesCount_other": "Repositorylee {{displayCount}} filataman", "selectRepositories": "Repositorylee filadhu", "selectRepositoriesSubtitle": "Repositorylee Security Agent hordofu filadhu", "repositories": "Repositorylee", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Xalayyiin haqe", "needsInput": "seensa barbaada", "fromPlatform": "irraa {{platform}}", - "centOne": "santiima", - "centOther": "santiimaa", - "dollarOne": "doolaara", - "dollarOther": "doolaara" + "cent_one": "santiima", + "cent": "santiimaa", + "cent_other": "santiimaa", + "dollar_one": "doolaara", + "dollar": "doolaara", + "dollar_other": "doolaara" }, "githubInstall": { "couldNotOpenTitle": "GitHub banuu hin dandeenye", @@ -1817,8 +1828,9 @@ "discardFailed": "Daaftarii haquu hin dandeenye. Mee deebi'ee yaali." }, "partRenderer": { - "updatedFile": "Faayilii {{count}} haaromfame", - "updatedFiles": "Faayiloota {{count}} haaromfaman" + "updatedFileCount_one": "Faayilii {{displayCount}} haaromfame", + "updatedFileCount": "Faayiloota {{displayCount}} haaromfaman", + "updatedFileCount_other": "Faayiloota {{displayCount}} haaromfaman" }, "toolPatch": { "operationAdded": "Dabale", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ergaawwan duraanii baay'amanii jiru", "retryHint": "Shumarrichaaf baay'achuu ergaawwan duraanii deebi'ee yaala.", - "omittedOne": "Wanta duraanii tokko shumarricha keessaa agarsisuu hin danda'amne.", - "omittedMany": "Wanta duraanii {{count}} shumarricha keessaa agarsisuu hin danda'amne.", + "omitted_one": "Wanta duraanii tokko shumarricha keessaa agarsisuu hin danda'amne.", + "omitted": "Wanta duraanii {{displayCount}} shumarricha keessaa agarsisuu hin danda'amne.", + "omitted_other": "Wanta duraanii {{displayCount}} shumarricha keessaa agarsisuu hin danda'amne.", "couldNotLoad": "Ergaawwan duraanii baay'achuu hin danda'ine.", "unavailable": "Ergaawwan duraanii hin argamani.", "tooLarge": "Ergaawwan duraanii baay'achuuf gurguddoo dha." @@ -2069,10 +2082,12 @@ "viewTable": "Taabala ilaali", "title": "Taabala", "close": "Taabala cufi", - "column": "haatara", - "columns": "haataraawwan", - "row": "tartiba", - "rows": "tartiboota", + "columnCount_one": "haatara", + "columnCount": "haataraawwan", + "columnCount_other": "haataraawwan", + "rowCount_one": "tartiba", + "rowCount": "tartiboota", + "rowCount_other": "tartiboota", "opensFullScreen": "fulla guutuu bana" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "tokkanoota {{window}} keessaa", "tokens": "tokkanoota", "tokensWithPercentage": "tokkanoota ({{percentage}})", - "stepsCountOne": "tarkaanfii {{steps}}", - "stepsCountMany": "tarkaanfiiwwan {{steps}}", + "stepsCount_one": "tarkaanfii {{steps}}", + "stepsCount": "tarkaanfiiwwan {{steps}}", + "stepsCount_other": "tarkaanfiiwwan {{steps}}", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Hojii code haaraa", "explore": "Qoradhu", "seeAll": "Hunda ilaali", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Bulchaan gaarii", - "greetingAfternoon": "Guyyaa gaarii", - "greetingEvening": "Gal-galtee gaarii" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} cufi", @@ -2645,8 +2658,9 @@ "manageHint": "Bulchiinsa Kilo Pass weeb irratti bana.", "notSubscribed": "Hubboo hin galne", "overallocated": "Ramaddiin Pass teessuma kaffalamee irraa darba", - "paidSeatOne": "teessuma kaffalame {{count}}", - "paidSeatOther": "teessuma kaffalame {{count}}", + "paidSeat_one": "teessuma kaffalame {{displayCount}}", + "paidSeat": "teessuma kaffalame {{displayCount}}", + "paidSeat_other": "teessuma kaffalame {{displayCount}}", "paymentNeedsAttention": "Kaffaltiin xiyyeeffannaa barbaada", "paymentPending": "Kaffaltiin eegaa jira", "processingBlocked": "Hordoffiin dhowwameera", diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index 46e26f0f99..ccb1e12322 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} ମଧ୍ୟରୁ {{loaded}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", "loadAllFiles": "ସମସ୍ତ ଫାଇଲ୍ ଲୋଡ୍ କରନ୍ତୁ", "loadAll": "ସବୁ ଲୋଡ୍ କରନ୍ତୁ", - "fileLoaded": "{{count}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", - "filesLoaded": "{{count}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", - "fileLoadedOfTotal": "{{total}} ମଧ୍ୟରୁ {{count}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", - "filesLoadedOfTotal": "{{total}} ମଧ୍ୟରୁ {{count}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", + "fileLoadedCount_one": "{{displayCount}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", + "fileLoadedCount": "{{displayCount}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", + "fileLoadedCount_other": "{{displayCount}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", + "fileLoadedOfTotalCount_one": "{{total}} ମଧ୍ୟରୁ {{displayCount}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", + "fileLoadedOfTotalCount": "{{total}} ମଧ୍ୟରୁ {{displayCount}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", + "fileLoadedOfTotalCount_other": "{{total}} ମଧ୍ୟରୁ {{displayCount}} ଫାଇଲ୍ ଲୋଡ୍ ହେଲା", "filesStillLoading": "ଫାଇଲ୍ଗୁଡ଼ିକ ଏବେ ବି ଲୋଡ୍ ହେଉଛି। ରିଫ୍ରେସ୍ କରିବାକୁ ତଳକୁ ଟାଣନ୍ତୁ।", "goToOverview": "ଓଭରଭ୍ୟୁ କୁ ଯାଆନ୍ତୁ", "goToOverviewTab": "ଓଭରଭ୍ୟୁ ଟ୍ୟାବ୍ କୁ ଯାଆନ୍ତୁ" @@ -288,8 +290,9 @@ "resolved": "ସମାଧାନ ହେଲା", "outdated": "ଅପ୍ରଚଳିତ", "file": "ଫାଇଲ୍", - "oneComment": "1 ମନ୍ତବ୍ୟ", - "commentCount": "{{count}} ମନ୍ତବ୍ୟ", + "comment_one": "1 ମନ୍ତବ୍ୟ", + "comment": "{{displayCount}} ମନ୍ତବ୍ୟ", + "comment_other": "{{displayCount}} ମନ୍ତବ୍ୟ", "startedRelative": " · {{relative}} ରେ ଆରମ୍ଭ ହେଲା", "couldNotLoadMore": "ଅଧିକ ମନ୍ତବ୍ୟ ଲୋଡ୍ କରାଯାଇ ପାରିଲା ନାହିଁ।", "retryLoadingMore": "ଅଧିକ ମନ୍ତବ୍ୟ ଲୋଡିଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ", @@ -299,8 +302,9 @@ "reactionsTitle": "ରିଆକ୍ସନ", "addReaction": "ରିଆକ୍ସନ ଯୋଡନ୍ତୁ", "reactionPill": "{{emoji}} ରିଆକ୍ସନ, {{count}} {{countLabel}}", - "reactionSingular": "ରିଆକ୍ସନ", - "reactionPlural": "ରିଆକ୍ସନଗୁଡ଼ିକ", + "reaction_one": "ରିଆକ୍ସନ", + "reaction": "ରିଆକ୍ସନଗୁଡ଼ିକ", + "reaction_other": "ରିଆକ୍ସନଗୁଡ଼ିକ", "commentActions": "ମନ୍ତବ୍ୟ କାର୍ଯ୍ୟ", "reportContent": "ବିଷୟବସ୍ତୁ ରିପୋର୍ଟ କରନ୍ତୁ", "reportUser": "ବ୍ୟବହାରକାରୀ ରିପୋର୍ଟ କରନ୍ତୁ", @@ -452,8 +456,9 @@ "deletePendingMessage": "ଏହି ମନ୍ତବ୍ୟ ରିଭ୍ୟୁ କ୍ୟୁ ରୁ ହଟାଯିବ।", "delete": "ବିଲୋପ କରନ୍ତୁ", "summaryOptional": "ସାରାଂଶ (ଐଚ୍ଛିକ)", - "pendingCommentSingular": "ବାକି ମନ୍ତବ୍ୟ", - "pendingCommentPlural": "ବାକି ମନ୍ତବ୍ୟଗୁଡ଼ିକ", + "pendingComment_one": "ବାକି ମନ୍ତବ୍ୟ", + "pendingComment": "ବାକି ମନ୍ତବ୍ୟଗୁଡ଼ିକ", + "pendingComment_other": "ବାକି ମନ୍ତବ୍ୟଗୁଡ଼ିକ", "submitCountOfTotal": "{{totalCount}} ମନ୍ତବ୍ୟ ମଧ୍ୟରୁ {{freshCount}} ଦାଖଲ କରନ୍ତୁ", "submitReview": "ରିଭ୍ୟୁ ଦାଖଲ କରନ୍ତୁ", "partialPostedMessage": "{{freshCount}} ମନ୍ତବ୍ୟ ପୋଷ୍ଟ ହେଲା। {{staleCount}} ମନ୍ତବ୍ୟ ଏକ ପୁରୁଣା କମିଟ୍ କୁ ପଏଣ୍ଟ କରେ ଏବଂ ଆପଣଙ୍କ କ୍ୟୁରେ ରହିଲା।" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ଖୋଲା · ରିଭ୍ୟୁ ଆବଶ୍ୟକ", "stateOpen": "ଖୋଲା", "unknownAuthor": "ଅଜ୍ଞାତ ଲେଖକ", - "commitSingular": "କମିଟ୍", - "commitPlural": "କମିଟ୍", - "fileSingular": "ଫାଇଲ୍", - "filePlural": "ଫାଇଲ୍" + "commit_one": "କମିଟ୍", + "commit": "କମିଟ୍", + "commit_other": "କମିଟ୍", + "file_one": "ଫାଇଲ୍", + "file": "ଫାଇଲ୍", + "file_other": "ଫାଇଲ୍" }, "pendingComment": { "editOutdatedA11y": "{{location}} ରେ ଅପ୍ରଚଳିତ ବାକି ମନ୍ତବ୍ୟ ସମ୍ପାଦନ କରନ୍ତୁ", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "କେହି", - "oneTyping": "{{name}} ଟାଇପ୍ କରୁଛନ୍ତି...", - "manyTyping": "{{names}} ଟାଇପ୍ କରୁଛନ୍ତି..." + "typing_one": "{{name}} ଟାଇପ୍ କରୁଛନ୍ତି...", + "typing": "{{names}} ଟାଇପ୍ କରୁଛନ୍ତି...", + "typing_other": "{{names}} ଟାଇପ୍ କରୁଛନ୍ତି..." }, "botStatus": { "online": "ଅନଲାଇନ", @@ -722,12 +730,10 @@ "couldNotLoad": "ବିଲିଂ ସୂଚନା ଲୋଡ୍ କରାଯାଇପାରିଲା ନାହିଁ", "manageOnWeb": "ୱେବରେ ବିଲିଂ ପରିଚାଳନା କରନ୍ତୁ", "commitPlan": "କମିଟ୍", - "daysLeft": "{{count}} ଦିନ ବାକି", "earlybird": "ଆରମ୍ଭିକ", "finalCommitTermEndsOn": "ଆପଣଙ୍କ ଅନ୍ତିମ କମିଟ୍ ଅବଧି {{date}} ରେ ସମାପ୍ତ ହେବ। {{price}} ରେ ଷ୍ଟାଣ୍ଡାର୍ଡ ଭାବରେ ଜାରି ରଖନ୍ତୁ, କିମ୍ବା ହୋଷ୍ଟିଂ ସମାପ୍ତ ହେବ।", "freeTrial": "ମାଗଣା ଟ୍ରାଏଲ", "hostingEnds": "ହୋଷ୍ଟିଂ ସମାପ୍ତ ହୁଏ", - "oneDayLeft": "୧ ଦିନ ବାକି", "renews": "ନବୀକରଣ ହୁଏ", "standardMonthToMonth": "ମାସିକ ଷ୍ଟାଣ୍ଡାର୍ଡ", "standardStartsOn": "ଷ୍ଟାଣ୍ଡାର୍ଡ {{date}} ରେ {{price}} ରେ ଆରମ୍ଭ ହେବ।", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ଧ୍ୟାନ ଆବଶ୍ୟକ: {{label}}", - "openUnreadOne": "{{name}} ଖୋଲନ୍ତୁ, {{count}} ଅପଢ଼ା ବାର୍ତ୍ତା", - "openUnreadMany": "{{name}} ଖୋଲନ୍ତୁ, {{count}} ଅପଢ଼ା ବାର୍ତ୍ତା", + "openUnread_one": "{{name}} ଖୋଲନ୍ତୁ, {{displayCount}} ଅପଢ଼ା ବାର୍ତ୍ତା", + "openUnread": "{{name}} ଖୋଲନ୍ତୁ, {{displayCount}} ଅପଢ଼ା ବାର୍ତ୍ତା", + "openUnread_other": "{{name}} ଖୋଲନ୍ତୁ, {{displayCount}} ଅପଢ଼ା ବାର୍ତ୍ତା", "open": "{{name}} ଖୋଲନ୍ତୁ", "openSettings": "{{name}} ପାଇଁ ସେଟିଂ ଖୋଲନ୍ତୁ", "fixOnKiloAi": "kilo.ai ରେ ସମାଧାନ କରନ୍ତୁ: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ସ୍ୱୟଂ-ଉପଶମନ ସକ୍ଷମ କରନ୍ତୁ?", "enableAutoRemediationConfirmMessage": "ସୁରକ୍ଷା ଏଜେଣ୍ଟ ଯୋଗ୍ୟ ଶୋଷଣଯୋଗ୍ୟ ଫାଇଣ୍ଡିଂ ପାଇଁ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଉପଶମନ PR ଖୋଲିବ।", "enable": "ସକ୍ଷମ କରନ୍ତୁ", - "queuedOne": "{{count}}ଟି ବିଦ୍ୟମାନ ଫଳାଫଳ ବିଶ୍ଳେଷଣ ପାଇଁ ଧାଡ଼ିରେ ଅଛି।", - "queuedMany": "{{count}}ଟି ବିଦ୍ୟମାନ ଫଳାଫଳ ବିଶ୍ଳେଷଣ ପାଇଁ ଧାଡ଼ିରେ ଅଛି।", + "queued_one": "{{displayCount}}ଟି ବିଦ୍ୟମାନ ଫଳାଫଳ ବିଶ୍ଳେଷଣ ପାଇଁ ଧାଡ଼ିରେ ଅଛି।", + "queued": "{{displayCount}}ଟି ବିଦ୍ୟମାନ ଫଳାଫଳ ବିଶ୍ଳେଷଣ ପାଇଁ ଧାଡ଼ିରେ ଅଛି।", + "queued_other": "{{displayCount}}ଟି ବିଦ୍ୟମାନ ଫଳାଫଳ ବିଶ୍ଳେଷଣ ପାଇଁ ଧାଡ଼ିରେ ଅଛି।", "severityCriticalOnly": "କେବଳ ଗୁରୁତର", "severityHighAndAbove": "ଉଚ୍ଚ ଏବଂ ତା'ଠାରୁ ଅଧିକ", "severityMediumAndAbove": "ମଧ୍ୟମ ଏବଂ ତା'ଠାରୁ ଅଧିକ", @@ -1482,8 +1490,9 @@ "on": "ଚାଲୁ", "off": "ବନ୍ଦ", "allRepositories": "ସମସ୍ତ ରିପୋଜିଟୋରୀ", - "repositorySelected": "{{count}}ଟି ରିପୋଜିଟୋରୀ ଚୟନ ହୋଇଛି", - "repositoriesSelected": "{{count}}ଟି ରିପୋଜିଟୋରୀ ଚୟନ ହୋଇଛି", + "repositoriesCount_one": "{{displayCount}}ଟି ରିପୋଜିଟୋରୀ ଚୟନ ହୋଇଛି", + "repositoriesCount": "{{displayCount}}ଟି ରିପୋଜିଟୋରୀ ଚୟନ ହୋଇଛି", + "repositoriesCount_other": "{{displayCount}}ଟି ରିପୋଜିଟୋରୀ ଚୟନ ହୋଇଛି", "selectRepositories": "ରିପୋଜିଟୋରୀ ଚୟନ କରନ୍ତୁ", "selectRepositoriesSubtitle": "ସୁରକ୍ଷା ଏଜେଣ୍ଟ କେଉଁ ରିପୋଜିଟୋରୀ ନିରୀକ୍ଷଣ କରେ ତାହା ଚୟନ କରନ୍ତୁ", "repositories": "ରିପୋଜିଟୋରୀଗୁଡ଼ିକ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "ସେସନ୍ ବିଲୋପ ହୋଇଛି", "needsInput": "ଇନପୁଟ୍ ଆବଶ୍ୟକ", "fromPlatform": "{{platform}} ରୁ", - "centOne": "ସେଣ୍ଟ", - "centOther": "ସେଣ୍ଟ", - "dollarOne": "ଡଲାର", - "dollarOther": "ଡଲାର" + "cent_one": "ସେଣ୍ଟ", + "cent": "ସେଣ୍ଟ", + "cent_other": "ସେଣ୍ଟ", + "dollar_one": "ଡଲାର", + "dollar": "ଡଲାର", + "dollar_other": "ଡଲାର" }, "githubInstall": { "couldNotOpenTitle": "GitHub ଖୋଲାଯାଇପାରିଲା ନାହିଁ", @@ -1817,8 +1828,9 @@ "discardFailed": "ଡ୍ରାଫ୍ଟ ପରିତ୍ୟାଗ ହୋଇପାରିଲା ନାହିଁ। ଦୟାକରି ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ।" }, "partRenderer": { - "updatedFile": "{{count}}ଟି ଫାଇଲ୍ ଅଦ୍ୟତନ ହୋଇଛି", - "updatedFiles": "{{count}}ଟି ଫାଇଲ୍ ଅଦ୍ୟତନ ହୋଇଛି" + "updatedFileCount_one": "{{displayCount}}ଟି ଫାଇଲ୍ ଅଦ୍ୟତନ ହୋଇଛି", + "updatedFileCount": "{{displayCount}}ଟି ଫାଇଲ୍ ଅଦ୍ୟତନ ହୋଇଛି", + "updatedFileCount_other": "{{displayCount}}ଟି ଫାଇଲ୍ ଅଦ୍ୟତନ ହୋଇଛି" }, "toolPatch": { "operationAdded": "ଯୋଡ଼ାଯାଇଛି", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "ପୂର୍ବ ବାର୍ତ୍ତାଗୁଡ଼ିକ ଲୋଡ୍ ହେଲା", "retryHint": "ଏହି ସେସନ୍ ପାଇଁ ପୁରୁଣା ବାର୍ତ୍ତା ଲୋଡ୍ ପୁନଃଚେଷ୍ଟା କରେ।", - "omittedOne": "ଏହି ସେସନରୁ କିଛି ପୂର୍ବ ଆଇଟମ୍ ପ୍ରଦର୍ଶିତ ହୋଇପାରିଲା ନାହିଁ।", - "omittedMany": "ଏହି ସେସନରୁ {{count}} ପୂର୍ବ ଆଇଟମ୍ ପ୍ରଦର୍ଶିତ ହୋଇପାରିଲା ନାହିଁ।", + "omitted_one": "ଏହି ସେସନରୁ କିଛି ପୂର୍ବ ଆଇଟମ୍ ପ୍ରଦର୍ଶିତ ହୋଇପାରିଲା ନାହିଁ।", + "omitted": "ଏହି ସେସନରୁ {{displayCount}} ପୂର୍ବ ଆଇଟମ୍ ପ୍ରଦର୍ଶିତ ହୋଇପାରିଲା ନାହିଁ।", + "omitted_other": "ଏହି ସେସନରୁ {{displayCount}} ପୂର୍ବ ଆଇଟମ୍ ପ୍ରଦର୍ଶିତ ହୋଇପାରିଲା ନାହିଁ।", "couldNotLoad": "ପୂର୍ବ ବାର୍ତ୍ତାଗୁଡ଼ିକ ଲୋଡ୍ ହୋଇପାରିଲା ନାହିଁ।", "unavailable": "ପୂର୍ବ ବାର୍ତ୍ତାଗୁଡ଼ିକ ଉପଲବ୍ଧ ନାହିଁ।", "tooLarge": "ପୂର୍ବ ବାର୍ତ୍ତାଗୁଡ଼ିକ ଲୋଡ୍ କରିବାକୁ ଅତି ବଡ଼।" @@ -2069,10 +2082,12 @@ "viewTable": "ଟେବୁଲ ଦେଖନ୍ତୁ", "title": "ଟେବୁଲ", "close": "ଟେବୁଲ ବନ୍ଦ କରନ୍ତୁ", - "column": "ସ୍ତମ୍ଭ", - "columns": "ସ୍ତମ୍ଭ", - "row": "ଧାଡି", - "rows": "ଧାଡି", + "columnCount_one": "ସ୍ତମ୍ଭ", + "columnCount": "ସ୍ତମ୍ଭ", + "columnCount_other": "ସ୍ତମ୍ଭ", + "rowCount_one": "ଧାଡି", + "rowCount": "ଧାଡି", + "rowCount_other": "ଧାଡି", "opensFullScreen": "ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରେ ଖୋଲେ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} ଟୋକେନ ମଧ୍ୟରୁ", "tokens": "ଟୋକେନ", "tokensWithPercentage": "ଟୋକେନ ({{percentage}})", - "stepsCountOne": "{{steps}} ପଦକ୍ଷେପ", - "stepsCountMany": "{{steps}} ପଦକ୍ଷେପ", + "stepsCount_one": "{{steps}} ପଦକ୍ଷେପ", + "stepsCount": "{{steps}} ପଦକ୍ଷେପ", + "stepsCount_other": "{{steps}} ପଦକ୍ଷେପ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "ନୂତନ କୋଡିଂ କାର୍ଯ୍ୟ", "explore": "ଅନୁସନ୍ଧାନ", "seeAll": "ସବୁ ଦେଖନ୍ତୁ", - "kiloAgents": "Kilo Agents", - "greetingMorning": "ଶୁଭ ସକାଳ", - "greetingAfternoon": "ଶୁଭ ମଧ୍ୟାହ୍ନ", - "greetingEvening": "ଶୁଭ ସନ୍ଧ୍ୟା" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} ବନ୍ଦ କରନ୍ତୁ", @@ -2645,8 +2658,9 @@ "manageHint": "ୱେବରେ Kilo Pass ପରିଚାଳନା ଖୋଲେ।", "notSubscribed": "ସବସ୍କ୍ରାଇବ୍ ନାହିଁ", "overallocated": "Pass ବଣ୍ଟନ ପୈଠ ସିଟ୍ ଅତିକ୍ରମ କରୁଛି", - "paidSeatOne": "{{count}} ପୈଠ ସିଟ୍", - "paidSeatOther": "{{count}} ପୈଠ ସିଟ୍", + "paidSeat_one": "{{displayCount}} ପୈଠ ସିଟ୍", + "paidSeat": "{{displayCount}} ପୈଠ ସିଟ୍", + "paidSeat_other": "{{displayCount}} ପୈଠ ସିଟ୍", "paymentNeedsAttention": "ପେମେଣ୍ଟର ଧ୍ୟାନ ଦରକାର", "paymentPending": "ପେମେଣ୍ଟ ଅପେକ୍ଷାରେ", "processingBlocked": "ପ୍ରକ୍ରିୟା ଅବରୁଦ୍ଧ", diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 22e4553b0c..4dc467b818 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} ਫਾਈਲਾਂ ਵਿੱਚੋਂ {{loaded}} ਲੋਡ ਹੋਈਆਂ", "loadAllFiles": "ਸਾਰੀਆਂ ਫਾਈਲਾਂ ਲੋਡ ਕਰੋ", "loadAll": "ਸਭ ਲੋਡ ਕਰੋ", - "fileLoaded": "{{count}} ਫਾਈਲ ਲੋਡ ਹੋਈ", - "filesLoaded": "{{count}} ਫਾਈਲਾਂ ਲੋਡ ਹੋਈਆਂ", - "fileLoadedOfTotal": "{{total}} ਵਿੱਚੋਂ {{count}} ਫਾਈਲ ਲੋਡ ਹੋਈ", - "filesLoadedOfTotal": "{{total}} ਵਿੱਚੋਂ {{count}} ਫਾਈਲਾਂ ਲੋਡ ਹੋਈਆਂ", + "fileLoadedCount_one": "{{displayCount}} ਫਾਈਲ ਲੋਡ ਹੋਈ", + "fileLoadedCount": "{{displayCount}} ਫਾਈਲਾਂ ਲੋਡ ਹੋਈਆਂ", + "fileLoadedCount_other": "{{displayCount}} ਫਾਈਲਾਂ ਲੋਡ ਹੋਈਆਂ", + "fileLoadedOfTotalCount_one": "{{total}} ਵਿੱਚੋਂ {{displayCount}} ਫਾਈਲ ਲੋਡ ਹੋਈ", + "fileLoadedOfTotalCount": "{{total}} ਵਿੱਚੋਂ {{displayCount}} ਫਾਈਲਾਂ ਲੋਡ ਹੋਈਆਂ", + "fileLoadedOfTotalCount_other": "{{total}} ਵਿੱਚੋਂ {{displayCount}} ਫਾਈਲਾਂ ਲੋਡ ਹੋਈਆਂ", "filesStillLoading": "ਫਾਈਲਾਂ ਅਜੇ ਵੀ ਲੋਡ ਹੋ ਰਹੀਆਂ ਹਨ। ਰੀਫ੍ਰੈਸ਼ ਕਰਨ ਲਈ ਖਿੱਚੋ।", "goToOverview": "ਓਵਰਵਿਊ 'ਤੇ ਜਾਓ", "goToOverviewTab": "ਓਵਰਵਿਊ ਟੈਬ 'ਤੇ ਜਾਓ" @@ -288,8 +290,9 @@ "resolved": "ਹੱਲ ਹੋਇਆ", "outdated": "ਪੁਰਾਣਾ", "file": "ਫਾਈਲ", - "oneComment": "1 ਟਿੱਪਣੀ", - "commentCount": "{{count}} ਟਿੱਪਣੀਆਂ", + "comment_one": "1 ਟਿੱਪਣੀ", + "comment": "{{displayCount}} ਟਿੱਪਣੀਆਂ", + "comment_other": "{{displayCount}} ਟਿੱਪਣੀਆਂ", "startedRelative": " · {{relative}} ਵਿੱਚ ਸ਼ੁਰੂ ਹੋਇਆ", "couldNotLoadMore": "ਹੋਰ ਟਿੱਪਣੀਆਂ ਲੋਡ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ।", "retryLoadingMore": "ਹੋਰ ਟਿੱਪਣੀਆਂ ਲੋਡ ਕਰਨ ਦੀ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ", @@ -299,8 +302,9 @@ "reactionsTitle": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ", "addReaction": "ਪ੍ਰਤੀਕਿਰਿਆ ਜੋੜੋ", "reactionPill": "{{emoji}} ਪ੍ਰਤੀਕਿਰਿਆ, {{count}} {{countLabel}}", - "reactionSingular": "ਪ੍ਰਤੀਕਿਰਿਆ", - "reactionPlural": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ", + "reaction_one": "ਪ੍ਰਤੀਕਿਰਿਆ", + "reaction": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ", + "reaction_other": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ", "commentActions": "ਟਿੱਪਣੀ ਕਾਰਵਾਈਆਂ", "reportContent": "ਸਮੱਗਰੀ ਦੀ ਰਿਪੋਰਟ ਕਰੋ", "reportUser": "ਉਪਭੋਗਤਾ ਦੀ ਰਿਪੋਰਟ ਕਰੋ", @@ -452,8 +456,9 @@ "deletePendingMessage": "ਇਹ ਟਿੱਪਣੀ ਰਿਵਿਊ ਕਤਾਰ ਤੋਂ ਹਟਾ ਦਿੱਤੀ ਜਾਵੇਗੀ।", "delete": "ਮਿਟਾਓ", "summaryOptional": "ਸਾਰਾਂਸ਼ (ਵਿਕਲਪਿਕ)", - "pendingCommentSingular": "ਲੰਬਿਤ ਟਿੱਪਣੀ", - "pendingCommentPlural": "ਲੰਬਿਤ ਟਿੱਪਣੀਆਂ", + "pendingComment_one": "ਲੰਬਿਤ ਟਿੱਪਣੀ", + "pendingComment": "ਲੰਬਿਤ ਟਿੱਪਣੀਆਂ", + "pendingComment_other": "ਲੰਬਿਤ ਟਿੱਪਣੀਆਂ", "submitCountOfTotal": "{{totalCount}} ਵਿੱਚੋਂ {{freshCount}} ਟਿੱਪਣੀਆਂ ਜਮ੍ਹਾਂ ਕਰੋ", "submitReview": "ਰਿਵਿਊ ਜਮ੍ਹਾਂ ਕਰੋ", "partialPostedMessage": "{{freshCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੋਸਟ ਕੀਤੀਆਂ। {{staleCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੁਰਾਣੇ ਕਮਿਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੀ ਕਤਾਰ ਵਿੱਚ ਰਹੀਆਂ।" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "ਖੁੱਲ੍ਹੀ · ਰਿਵਿਊ ਲੋੜੀਂਦਾ", "stateOpen": "ਖੁੱਲ੍ਹੀ", "unknownAuthor": "ਅਣਜਾਣ ਲੇਖਕ", - "commitSingular": "ਕਮਿਟ", - "commitPlural": "ਕਮਿਟ", - "fileSingular": "ਫਾਈਲ", - "filePlural": "ਫਾਈਲਾਂ" + "commit_one": "ਕਮਿਟ", + "commit": "ਕਮਿਟ", + "commit_other": "ਕਮਿਟ", + "file_one": "ਫਾਈਲ", + "file": "ਫਾਈਲਾਂ", + "file_other": "ਫਾਈਲਾਂ" }, "pendingComment": { "editOutdatedA11y": "{{location}} 'ਤੇ ਪੁਰਾਣੀ ਲੰਬਿਤ ਟਿੱਪਣੀ ਸੰਪਾਦਿਤ ਕਰੋ", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "ਕੋਈ", - "oneTyping": "{{name}} ਟਾਈਪ ਕਰ ਰਿਹਾ ਹੈ...", - "manyTyping": "{{names}} ਟਾਈਪ ਕਰ ਰਹੇ ਹਨ..." + "typing_one": "{{name}} ਟਾਈਪ ਕਰ ਰਿਹਾ ਹੈ...", + "typing": "{{names}} ਟਾਈਪ ਕਰ ਰਹੇ ਹਨ...", + "typing_other": "{{names}} ਟਾਈਪ ਕਰ ਰਹੇ ਹਨ..." }, "botStatus": { "online": "ਔਨਲਾਈਨ", @@ -722,12 +730,10 @@ "couldNotLoad": "ਬਿਲਿੰਗ ਜਾਣਕਾਰੀ ਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ", "manageOnWeb": "ਵੈੱਬ 'ਤੇ ਬਿਲਿੰਗ ਪ੍ਰਬੰਧਿਤ ਕਰੋ", "commitPlan": "ਕਮਿਟ ਕਰੋ", - "daysLeft": "{{count}} ਦਿਨ ਬਾਕੀ", "earlybird": "ਅਰਲੀਬਰਡ", "finalCommitTermEndsOn": "ਤੁਹਾਡੀ ਅੰਤਿਮ Commit ਮਿਆਦ {{date}} ਨੂੰ ਸਮਾਪਤ ਹੁੰਦੀ ਹੈ। {{price}} 'ਤੇ Standard ਵਜੋਂ ਜਾਰੀ ਰੱਖੋ, ਜਾਂ ਹੋਸਟਿੰਗ ਖਤਮ ਹੁੰਦੀ ਹੈ।", "freeTrial": "ਮੁਫ਼ਤ ਅਜ਼ਮਾਇਸ਼", "hostingEnds": "ਹੋਸਟਿੰਗ ਸਮਾਪਤ ਹੁੰਦੀ ਹੈ", - "oneDayLeft": "1 ਦਿਨ ਬਾਕੀ", "renews": "ਨਵੀਂਕਰਨ ਹੁੰਦਾ ਹੈ", "standardMonthToMonth": "ਸਟੈਂਡਰਡ ਮਹੀਨੇ-ਦਰ-ਮਹੀਨੇ", "standardStartsOn": "Standard {{date}} ਨੂੰ {{price}} 'ਤੇ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ।", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ: {{label}}", - "openUnreadOne": "{{name}} ਖੋਲ੍ਹੋ, {{count}} ਨਾ ਪੜ੍ਹਿਆ ਸੁਨੇਹਾ", - "openUnreadMany": "{{name}} ਖੋਲ੍ਹੋ, {{count}} ਨਾ ਪੜ੍ਹੇ ਸੁਨੇਹੇ", + "openUnread_one": "{{name}} ਖੋਲ੍ਹੋ, {{displayCount}} ਨਾ ਪੜ੍ਹਿਆ ਸੁਨੇਹਾ", + "openUnread": "{{name}} ਖੋਲ੍ਹੋ, {{displayCount}} ਨਾ ਪੜ੍ਹੇ ਸੁਨੇਹੇ", + "openUnread_other": "{{name}} ਖੋਲ੍ਹੋ, {{displayCount}} ਨਾ ਪੜ੍ਹੇ ਸੁਨੇਹੇ", "open": "{{name}} ਖੋਲ੍ਹੋ", "openSettings": "{{name}} ਲਈ ਸੈਟਿੰਗਜ਼ ਖੋਲ੍ਹੋ", "fixOnKiloAi": "kilo.ai 'ਤੇ ਠੀਕ ਕਰੋ: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ਆਟੋ-ਨਿਵਾਰਨ ਸਮਰੱਥ ਕਰਨਾ ਹੈ?", "enableAutoRemediationConfirmMessage": "Security Agent ਯੋਗ ਖੋਜਣਯੋਗ ਖੋਜਾਂ ਲਈ ਆਪਣੇ ਆਪ ਨਿਵਾਰਨ PR ਖੋਲ੍ਹੇਗਾ।", "enable": "ਸਮਰੱਥ ਕਰੋ", - "queuedOne": "{{count}} ਮੌਜੂਦਾ ਖੋਜ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਕਤਾਰ ਵਿੱਚ ਹੈ।", - "queuedMany": "{{count}} ਮੌਜੂਦਾ ਖੋਜਾਂ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਕਤਾਰ ਵਿੱਚ ਹਨ।", + "queued_one": "{{displayCount}} ਮੌਜੂਦਾ ਖੋਜ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਕਤਾਰ ਵਿੱਚ ਹੈ।", + "queued": "{{displayCount}} ਮੌਜੂਦਾ ਖੋਜਾਂ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਕਤਾਰ ਵਿੱਚ ਹਨ।", + "queued_other": "{{displayCount}} ਮੌਜੂਦਾ ਖੋਜਾਂ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਕਤਾਰ ਵਿੱਚ ਹਨ।", "severityCriticalOnly": "ਸਿਰਫ਼ ਗੰਭੀਰ", "severityHighAndAbove": "ਉੱਚ ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ", "severityMediumAndAbove": "ਦਰਮਿਆਨਾ ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ", @@ -1482,8 +1490,9 @@ "on": "ਚਾਲੂ", "off": "ਬੰਦ", "allRepositories": "ਸਾਰੀਆਂ ਰਿਪੋਜ਼ਟਰੀਆਂ", - "repositorySelected": "{{count}} ਰਿਪੋਜ਼ਟਰੀ ਚੁਣੀ ਗਈ", - "repositoriesSelected": "{{count}} ਰਿਪੋਜ਼ਟਰੀਆਂ ਚੁਣੀਆਂ ਗਈਆਂ", + "repositoriesCount_one": "{{displayCount}} ਰਿਪੋਜ਼ਟਰੀ ਚੁਣੀ ਗਈ", + "repositoriesCount": "{{displayCount}} ਰਿਪੋਜ਼ਟਰੀਆਂ ਚੁਣੀਆਂ ਗਈਆਂ", + "repositoriesCount_other": "{{displayCount}} ਰਿਪੋਜ਼ਟਰੀਆਂ ਚੁਣੀਆਂ ਗਈਆਂ", "selectRepositories": "ਰਿਪੋਜ਼ਟਰੀਆਂ ਚੁਣੋ", "selectRepositoriesSubtitle": "ਚੁਣੋ ਕਿ ਸੁਰੱਖਿਆ ਏਜੰਟ ਕਿਹੜੀਆਂ ਰਿਪੋਜ਼ਟਰੀਆਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦਾ ਹੈ", "repositories": "ਰਿਪੋਜ਼ਟਰੀਆਂ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "ਸੈਸ਼ਨ ਮਿਟਾਇਆ ਗਿਆ", "needsInput": "ਇਨਪੁੱਟ ਦੀ ਲੋੜ ਹੈ", "fromPlatform": "{{platform}} ਤੋਂ", - "centOne": "ਸੈਂਟ", - "centOther": "ਸੈਂਟ", - "dollarOne": "ਡਾਲਰ", - "dollarOther": "ਡਾਲਰ" + "cent_one": "ਸੈਂਟ", + "cent": "ਸੈਂਟ", + "cent_other": "ਸੈਂਟ", + "dollar_one": "ਡਾਲਰ", + "dollar": "ਡਾਲਰ", + "dollar_other": "ਡਾਲਰ" }, "githubInstall": { "couldNotOpenTitle": "GitHub ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ", @@ -1817,8 +1828,9 @@ "discardFailed": "ਡਰਾਫਟ ਰੱਦ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" }, "partRenderer": { - "updatedFile": "{{count}} ਫਾਈਲ ਅੱਪਡੇਟ ਕੀਤੀ ਗਈ", - "updatedFiles": "{{count}} ਫਾਈਲਾਂ ਅੱਪਡੇਟ ਕੀਤੀਆਂ ਗਈਆਂ" + "updatedFileCount_one": "{{displayCount}} ਫਾਈਲ ਅੱਪਡੇਟ ਕੀਤੀ ਗਈ", + "updatedFileCount": "{{displayCount}} ਫਾਈਲਾਂ ਅੱਪਡੇਟ ਕੀਤੀਆਂ ਗਈਆਂ", + "updatedFileCount_other": "{{displayCount}} ਫਾਈਲਾਂ ਅੱਪਡੇਟ ਕੀਤੀਆਂ ਗਈਆਂ" }, "toolPatch": { "operationAdded": "ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "ਪਹਿਲੇ ਸੁਨੇਹੇ ਲੋਡ ਹੋ ਗਏ", "retryHint": "ਇਸ ਸੈਸ਼ਨ ਲਈ ਪੁਰਾਣੇ ਸੁਨੇਹੇ ਲੋਡ ਕਰਨ ਦੀ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ।", - "omittedOne": "ਇਸ ਸੈਸ਼ਨ ਦੀਆਂ ਕੁਝ ਪੁਰਾਣੀਆਂ ਚੀਜ਼ਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ।", - "omittedMany": "ਇਸ ਸੈਸ਼ਨ ਦੀਆਂ {{count}} ਪੁਰਾਣੀਆਂ ਚੀਜ਼ਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ।", + "omitted_one": "ਇਸ ਸੈਸ਼ਨ ਦੀਆਂ ਕੁਝ ਪੁਰਾਣੀਆਂ ਚੀਜ਼ਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ।", + "omitted": "ਇਸ ਸੈਸ਼ਨ ਦੀਆਂ {{displayCount}} ਪੁਰਾਣੀਆਂ ਚੀਜ਼ਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ।", + "omitted_other": "ਇਸ ਸੈਸ਼ਨ ਦੀਆਂ {{displayCount}} ਪੁਰਾਣੀਆਂ ਚੀਜ਼ਾਂ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕੀਆਂ।", "couldNotLoad": "ਪਹਿਲੇ ਸੁਨੇਹੇ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ।", "unavailable": "ਪਹਿਲੇ ਸੁਨੇਹੇ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।", "tooLarge": "ਪਹਿਲੇ ਸੁਨੇਹੇ ਲੋਡ ਕਰਨ ਲਈ ਬਹੁਤ ਵੱਡੇ ਹਨ।" @@ -2069,10 +2082,12 @@ "viewTable": "ਸਾਰਣੀ ਵੇਖੋ", "title": "ਸਾਰਣੀ", "close": "ਸਾਰਣੀ ਬੰਦ ਕਰੋ", - "column": "ਕਾਲਮ", - "columns": "ਕਾਲਮ", - "row": "ਕਤਾਰ", - "rows": "ਕਤਾਰਾਂ", + "columnCount_one": "ਕਾਲਮ", + "columnCount": "ਕਾਲਮ", + "columnCount_other": "ਕਾਲਮ", + "rowCount_one": "ਕਤਾਰ", + "rowCount": "ਕਤਾਰਾਂ", + "rowCount_other": "ਕਤਾਰਾਂ", "opensFullScreen": "ਪੂਰੀ ਸਕ੍ਰੀਨ ਖੋਲ੍ਹਦਾ ਹੈ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} ਟੋਕਨਾਂ ਵਿੱਚੋਂ", "tokens": "ਟੋਕਨ", "tokensWithPercentage": "ਟੋਕਨ ({{percentage}})", - "stepsCountOne": "{{steps}} ਕਦਮ", - "stepsCountMany": "{{steps}} ਕਦਮ", + "stepsCount_one": "{{steps}} ਕਦਮ", + "stepsCount": "{{steps}} ਕਦਮ", + "stepsCount_other": "{{steps}} ਕਦਮ", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "ਨਵਾਂ ਕੋਡਿੰਗ ਕੰਮ", "explore": "ਪੜਚੋਲ ਕਰੋ", "seeAll": "ਸਭ ਵੇਖੋ", - "kiloAgents": "Kilo ਏਜੰਟ", - "greetingMorning": "ਸ਼ੁਭ ਸਵੇਰ", - "greetingAfternoon": "ਸ਼ੁਭ ਦੁਪਹਿਰ", - "greetingEvening": "ਸ਼ੁਭ ਸੰਧਿਆ" + "kiloAgents": "Kilo ਏਜੰਟ" }, "imageViewer": { "close": "{{filename}} ਬੰਦ ਕਰੋ", @@ -2645,8 +2658,9 @@ "manageHint": "Kilo Pass ਪ੍ਰਬੰਧਨ ਵੈੱਬ 'ਤੇ ਖੋਲ੍ਹਦਾ ਹੈ।", "notSubscribed": "ਗਾਹਕੀ ਨਹੀਂ ਹੈ", "overallocated": "ਪਾਸ ਅਸਾਈਨਮੈਂਟ ਅਦਾ ਕੀਤੀਆਂ ਸੀਟਾਂ ਤੋਂ ਵੱਧ ਹਨ", - "paidSeatOne": "{{count}} ਅਦਾ ਕੀਤੀ ਸੀਟ", - "paidSeatOther": "{{count}} ਅਦਾ ਕੀਤੀਆਂ ਸੀਟਾਂ", + "paidSeat_one": "{{displayCount}} ਅਦਾ ਕੀਤੀ ਸੀਟ", + "paidSeat": "{{displayCount}} ਅਦਾ ਕੀਤੀਆਂ ਸੀਟਾਂ", + "paidSeat_other": "{{displayCount}} ਅਦਾ ਕੀਤੀਆਂ ਸੀਟਾਂ", "paymentNeedsAttention": "ਭੁਗਤਾਨ ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ", "paymentPending": "ਭੁਗਤਾਨ ਬਕਾਇਆ", "processingBlocked": "ਪ੍ਰੋਸੈਸਿੰਗ ਰੁਕੀ ਹੋਈ", diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index 207321b77b..58ea9e09de 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Ktoś", - "oneTyping": "{{name}} pisze...", - "manyTyping": "{{names}} piszą..." + "typing_one": "{{name}} pisze...", + "typing": "{{names}} piszą...", + "typing_other": "{{names}} piszą..." }, "botStatus": { "online": "Online", @@ -350,12 +351,10 @@ "couldNotLoad": "Nie można załadować informacji o rozliczeniach", "manageOnWeb": "Zarządzaj rozliczeniami w sieci", "commitPlan": "Commit", - "daysLeft": "Pozostało {{count}} dni", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Twoja ostatnia subskrypcja Commit kończy się {{date}}. Kontynuuj jako Standard za {{price}} albo hosting się zakończy.", "freeTrial": "Bezpłatny okres próbny", "hostingEnds": "Hosting się kończy", - "oneDayLeft": "Pozostał 1 dzień", "renews": "Odnawia się", "standardMonthToMonth": "Standard co miesiąc", "standardStartsOn": "Standard rozpoczyna się {{date}} za {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} wymaga uwagi: {{label}}", "open": "Otwórz {{name}}", "openSettings": "Otwórz ustawienia dla {{name}}", - "openUnreadMany": "Otwórz {{name}}, {{count}} nieprzeczytanych wiadomości", - "openUnreadOne": "Otwórz {{name}}, {{count}} nieprzeczytana wiadomość" + "openUnread": "Otwórz {{name}}, {{displayCount}} nieprzeczytanych wiadomości", + "openUnread_other": "Otwórz {{name}}, {{displayCount}} nieprzeczytanych wiadomości", + "openUnread_one": "Otwórz {{name}}, {{displayCount}} nieprzeczytana wiadomość" }, "list": { "createInstance": "Utwórz instancję", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Dodaj do kolejki także już przeanalizowane kwalifikujące się ustalenia. Zduplikowane PR pozostaną wstrzymane.", "minimumSeverity": "Minimalna krytyczność", "permissionNote": "Tylko właściciele organizacji i menedżerowie rozliczeń mogą zmieniać te ustawienia.", - "queuedMany": "{{count}} istniejących ustaleń dodano do kolejki analizy.", - "queuedOne": "{{count}} istniejące ustalenie dodano do kolejki analizy.", + "queued": "{{displayCount}} istniejących ustaleń dodano do kolejki analizy.", + "queued_other": "{{displayCount}} istniejących ustaleń dodano do kolejki analizy.", + "queued_one": "{{displayCount}} istniejące ustalenie dodano do kolejki analizy.", "requireApproval": "Wymagaj zatwierdzenia przed automatyczną naprawą", "requireApprovalSubtitle": "Automatyczna naprawa czeka na Twoje zatwierdzenie przed otwarciem PR.", "severityAll": "Wszystkie poziomy krytyczności", @@ -1270,8 +1271,9 @@ "off": "Wył.", "on": "Wł.", "repositories": "Repozytoria", - "repositoriesSelected": "Wybrano {{count}} repozytoriów", - "repositorySelected": "Wybrano {{count}} repozytorium", + "repositoriesCount": "Wybrano {{displayCount}} repozytoriów", + "repositoriesCount_other": "Wybrano {{displayCount}} repozytoriów", + "repositoriesCount_one": "Wybrano {{displayCount}} repozytorium", "securityAgent": "Security Agent", "selectRepositories": "Wybierz repozytoria", "selectRepositoriesSubtitle": "Wybierz, które repozytoria monitoruje Security Agent", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Sesja usunięta", "needsInput": "wymaga danych", "fromPlatform": "z {{platform}}", - "centOne": "cent", - "centOther": "centów", - "dollarOne": "dolar", - "dollarOther": "dolarów" + "cent_one": "cent", + "cent": "centów", + "cent_other": "centów", + "dollar_one": "dolar", + "dollar": "dolarów", + "dollar_other": "dolarów" }, "githubInstall": { "couldNotOpenMessage": "Nie udało się rozpocząć konfiguracji aplikacji GitHub. Spróbuj ponownie.", @@ -1445,8 +1449,9 @@ "keepEditing": "Kontynuuj edycję" }, "partRenderer": { - "updatedFile": "Zaktualizowano {{count}} plik", - "updatedFiles": "Zaktualizowano {{count}} pliki" + "updatedFileCount_one": "Zaktualizowano {{displayCount}} plik", + "updatedFileCount": "Zaktualizowano {{displayCount}} pliki", + "updatedFileCount_other": "Zaktualizowano {{displayCount}} pliki" }, "toolPatch": { "operationAdded": "Dodano", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Załadowano wcześniejsze wiadomości", "retryHint": "Ponawia ładowanie starszych wiadomości tej sesji.", - "omittedOne": "Nie można wyświetlić jednego wcześniejszego elementu tej sesji.", - "omittedMany": "Nie można wyświetlić {{count}} wcześniejszych elementów tej sesji.", + "omitted_one": "Nie można wyświetlić jednego wcześniejszego elementu tej sesji.", + "omitted": "Nie można wyświetlić {{displayCount}} wcześniejszych elementów tej sesji.", + "omitted_other": "Nie można wyświetlić {{displayCount}} wcześniejszych elementów tej sesji.", "couldNotLoad": "Nie udało się załadować wcześniejszych wiadomości.", "unavailable": "Wcześniejsze wiadomości nie są dostępne.", "tooLarge": "Wcześniejsze wiadomości są zbyt duże, aby je załadować." @@ -1697,10 +1703,12 @@ "viewTable": "Wyświetl tabelę", "title": "Tabela", "close": "Zamknij tabelę", - "column": "kolumna", - "columns": "kolumny", - "row": "wiersz", - "rows": "wiersze", + "columnCount_one": "kolumna", + "columnCount": "kolumny", + "columnCount_other": "kolumny", + "rowCount_one": "wiersz", + "rowCount": "wiersze", + "rowCount_other": "wiersze", "opensFullScreen": "otwiera pełny ekran" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "z {{window}} tokenów", "tokens": "tokeny", "tokensWithPercentage": "tokeny ({{percentage}})", - "stepsCountOne": "{{steps}} krok", - "stepsCountMany": "{{steps}} kroki", + "stepsCount_one": "{{steps}} krok", + "stepsCount": "{{steps}} kroki", + "stepsCount_other": "{{steps}} kroki", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Nowe zadanie kodowania", "explore": "Odkrywaj", "seeAll": "Zobacz wszystkie", - "kiloAgents": "Agenci Kilo", - "greetingMorning": "Dzień dobry", - "greetingAfternoon": "Dzień dobry", - "greetingEvening": "Dobry wieczór" + "kiloAgents": "Agenci Kilo" }, "imageViewer": { "close": "Zamknij {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Zamknij reakcje", "collapseThread": "Zwiń wątek", "commentActions": "Akcje komentarza", - "commentCount": "{{count}} komentarzy", + "comment": "{{displayCount}} komentarzy", + "comment_other": "{{displayCount}} komentarzy", "couldNotLoad": "Nie udało się załadować dyskusji", "couldNotLoadMore": "Nie udało się załadować więcej komentarzy.", "couldNotReply": "Nie udało się odpowiedzieć.", @@ -2236,12 +2243,13 @@ "mutedUser": "Wyciszono {{login}}", "noDiscussion": "Brak dyskusji", "noDiscussionDescription": "Brak wątków przeglądu lub komentarzy w rozmowie w tym pull requeście.", - "oneComment": "1 komentarz", + "comment_one": "1 komentarz", "outdated": "Nieaktualny", "quotedDiffSnippet": "Zacytowany fragment diffa", "reactionPill": "{{emoji}} reakcja, {{count}} {{countLabel}}", - "reactionPlural": "reakcje", - "reactionSingular": "reakcja", + "reaction": "reakcje", + "reaction_other": "reakcje", + "reaction_one": "reakcja", "reactionsTitle": "Reakcje", "reply": "Odpowiedz", "replyBadRequest": "Tej odpowiedzi nie można opublikować. Wątek mógł się zmienić.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Rozwiń więcej {{count}} wierszy ({{start}}–{{end}})", "failedToLoadContext": "Nie udało się załadować kontekstu — dotknij, aby ponowić", "failedToLoadMoreFiles": "Nie udało się załadować więcej plików — dotknij, aby ponowić", - "fileLoaded": "Załadowano {{count}} plik", - "fileLoadedOfTotal": "Załadowano {{count}} plik z {{total}}", - "filesLoaded": "Załadowano {{count}} plików", - "filesLoadedOfTotal": "Załadowano {{count}} plików z {{total}}", + "fileLoadedCount_one": "Załadowano {{displayCount}} plik", + "fileLoadedOfTotalCount_one": "Załadowano {{displayCount}} plik z {{total}}", + "fileLoadedCount": "Załadowano {{displayCount}} plików", + "fileLoadedCount_other": "Załadowano {{displayCount}} plików", + "fileLoadedOfTotalCount": "Załadowano {{displayCount}} plików z {{total}}", + "fileLoadedOfTotalCount_other": "Załadowano {{displayCount}} plików z {{total}}", "filesStillLoading": "Pliki wciąż się ładują. Pociągnij, aby odświeżyć.", "goToOverview": "Przejdź do przeglądu", "goToOverviewTab": "Przejdź do karty przeglądu", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Brak zmienionych plików", "noFilesChangedDescription": "Ten pull request nie zawiera zmian plików.", "overview": { - "commitPlural": "commity", - "commitSingular": "commit", - "filePlural": "pliki", - "fileSingular": "plik", + "commit": "commity", + "commit_other": "commity", + "commit_one": "commit", + "file": "pliki", + "file_other": "pliki", + "file_one": "plik", "stateClosed": "Zamknięty", "stateDraft": "Szkic", "stateMerged": "Scalony", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Ten komentarz zostanie usunięty z kolejki przeglądu.", "deletePendingTitle": "Usunąć oczekujący komentarz?", "loadFailedTitle": "Nie udało się załadować wysyłania przeglądu", - "pendingCommentPlural": "oczekujące komentarze", - "pendingCommentSingular": "oczekujący komentarz", + "pendingComment": "oczekujące komentarze", + "pendingComment_other": "oczekujące komentarze", + "pendingComment_one": "oczekujący komentarz", "summaryOptional": "Podsumowanie (opcjonalne)", "title": "Wyślij przegląd", "partialPostedMessage": "Opublikowano {{freshCount}} komentarz(y). {{staleCount}} komentarz(y) dotyczy starszego commita i pozostało w kolejce.", @@ -2632,8 +2645,9 @@ "manageHint": "Otwiera zarządzanie Kilo Pass w sieci.", "notSubscribed": "Brak subskrypcji", "overallocated": "Przydziały Pass przekraczają opłacone miejsca", - "paidSeatOne": "{{count}} opłacone miejsce", - "paidSeatOther": "{{count}} opłacone miejsca", + "paidSeat_one": "{{displayCount}} opłacone miejsce", + "paidSeat": "{{displayCount}} opłacone miejsca", + "paidSeat_other": "{{displayCount}} opłacone miejsca", "paymentNeedsAttention": "Płatność wymaga uwagi", "paymentPending": "Płatność oczekuje", "processingBlocked": "Przetwarzanie zablokowane", diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index 82b1ead017..c6e079a0a9 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} فایلونو څخه {{loaded}} بار شوي", "loadAllFiles": "ټول فایلونه بار کړئ", "loadAll": "ټول بار کړئ", - "fileLoaded": "{{count}} فایل بار شو", - "filesLoaded": "{{count}} فایلونه بار شول", - "fileLoadedOfTotal": "{{total}} څخه {{count}} فایل بار شو", - "filesLoadedOfTotal": "{{total}} څخه {{count}} فایلونه بار شول", + "fileLoadedCount_one": "{{displayCount}} فایل بار شو", + "fileLoadedCount": "{{displayCount}} فایلونه بار شول", + "fileLoadedCount_other": "{{displayCount}} فایلونه بار شول", + "fileLoadedOfTotalCount_one": "{{total}} څخه {{displayCount}} فایل بار شو", + "fileLoadedOfTotalCount": "{{total}} څخه {{displayCount}} فایلونه بار شول", + "fileLoadedOfTotalCount_other": "{{total}} څخه {{displayCount}} فایلونه بار شول", "filesStillLoading": "فایلونه لاهم بار کیږي. د تازه کولو لپاره راکش کړئ.", "goToOverview": "کتنې ته لاړ شئ", "goToOverviewTab": "د کتنې ټب ته لاړ شئ" @@ -288,8 +290,9 @@ "resolved": "حل شوی", "outdated": "زوړ", "file": "فایل", - "oneComment": "۱ تبصره", - "commentCount": "{{count}} تبصرې", + "comment_one": "۱ تبصره", + "comment": "{{displayCount}} تبصرې", + "comment_other": "{{displayCount}} تبصرې", "startedRelative": " · {{relative}} پیل شوی", "couldNotLoadMore": "نور تبصرې بار کیدی نشو.", "retryLoadingMore": "نور تبصرې بارول بیا هڅه وکړئ", @@ -299,8 +302,9 @@ "reactionsTitle": "غبرګونونه", "addReaction": "غبرګون اضافه کړئ", "reactionPill": "{{emoji}} غبرګون، {{count}} {{countLabel}}", - "reactionSingular": "غبرګون", - "reactionPlural": "غبرګونونه", + "reaction_one": "غبرګون", + "reaction": "غبرګونونه", + "reaction_other": "غبرګونونه", "commentActions": "د تبصرې کړنې", "reportContent": "منځپانګه راپور کړئ", "reportUser": "کارن راپور کړئ", @@ -452,8 +456,9 @@ "deletePendingMessage": "دا تبصره به د بیاکتنې قطار څخه لرې شي.", "delete": "ړنګ کړئ", "summaryOptional": "لنډیز (اختیاري)", - "pendingCommentSingular": "په انتظار تبصره", - "pendingCommentPlural": "په انتظار تبصرې", + "pendingComment_one": "په انتظار تبصره", + "pendingComment": "په انتظار تبصرې", + "pendingComment_other": "په انتظار تبصرې", "submitCountOfTotal": "د {{totalCount}} تبصرو څخه {{freshCount}} وسپارئ", "submitReview": "بیاکتنه وسپارئ", "partialPostedMessage": "{{freshCount}} تبصره خپره شوه. {{staleCount}} تبصرې په یو زوړ کمټ اشاره کوي او ستاسو په قطار کې پاتې شوې." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "خلاص · بیاکتنه اړینه ده", "stateOpen": "خلاص", "unknownAuthor": "نامعلوم لیکوال", - "commitSingular": "کمټ", - "commitPlural": "کمټونه", - "fileSingular": "فایل", - "filePlural": "فایلونه" + "commit_one": "کمټ", + "commit": "کمټونه", + "commit_other": "کمټونه", + "file_one": "فایل", + "file": "فایلونه", + "file_other": "فایلونه" }, "pendingComment": { "editOutdatedA11y": "په {{location}} زوړ په انتظار تبصره سمه کړئ", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "یو څوک", - "oneTyping": "{{name}} لیکي...", - "manyTyping": "{{names}} لیکي..." + "typing_one": "{{name}} لیکي...", + "typing": "{{names}} لیکي...", + "typing_other": "{{names}} لیکي..." }, "botStatus": { "online": "آنلاین", @@ -722,12 +730,10 @@ "couldNotLoad": "د بلینګ معلومات بارول ناشوني شول", "manageOnWeb": "په ویب کې بلینګ اداره کړئ", "commitPlan": "Commit", - "daysLeft": "{{count}} ورځې پاتې دي", "earlybird": "لمړنی مرغۍ", "finalCommitTermEndsOn": "ستاسو وروستۍ Commit دوره په {{date}} پای ته رسېږي. د {{price}} په بیه د Standard په توګه دوام وکړئ، یا کوربه توب پای ته رسېږي.", "freeTrial": "وړیا تجربه", "hostingEnds": "کوربه توب پای ته رسېږي", - "oneDayLeft": "۱ ورځ پاتې ده", "renews": "نوي کېږي", "standardMonthToMonth": "معیاري میاشت په میاشت", "standardStartsOn": "Standard په {{date}} د {{price}} په بیه پیلېږي.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} پاملرنې ته اړتیا لري: {{label}}", - "openUnreadOne": "{{name}} پرانیستل، {{count}} نالوستی پیغام", - "openUnreadMany": "{{name}} پرانیستل، {{count}} نالوستي پیغامونه", + "openUnread_one": "{{name}} پرانیستل، {{displayCount}} نالوستی پیغام", + "openUnread": "{{name}} پرانیستل، {{displayCount}} نالوستي پیغامونه", + "openUnread_other": "{{name}} پرانیستل، {{displayCount}} نالوستي پیغامونه", "open": "{{name}} پرانیستل", "openSettings": "د {{name}} لپاره ترتیبات پرانیستل", "fixOnKiloAi": "په kilo.ai کې حل کړئ: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "اتوماتیک اصلاح فعاله کړئ؟", "enableAutoRemediationConfirmMessage": "امنیتي اجنټ به د وړ وړ کار اخیستونکي موندنو لپاره په اتوماتیک ډول د اصلاح PRs پرانیستي.", "enable": "فعالول", - "queuedOne": "{{count}} موندنه د تحلیل لپاره په صف کې ودرول شوه.", - "queuedMany": "{{count}} موندنې د تحلیل لپاره په صف کې ودرول شوې.", + "queued_one": "{{displayCount}} موندنه د تحلیل لپاره په صف کې ودرول شوه.", + "queued": "{{displayCount}} موندنې د تحلیل لپاره په صف کې ودرول شوې.", + "queued_other": "{{displayCount}} موندنې د تحلیل لپاره په صف کې ودرول شوې.", "severityCriticalOnly": "یوازې کریټیکل", "severityHighAndAbove": "لوړ او پورته", "severityMediumAndAbove": "منځنی او پورته", @@ -1482,8 +1490,9 @@ "on": "فعال", "off": "غیرفعال", "allRepositories": "ټولې ذخیرې", - "repositorySelected": "{{count}} ذخیره غوره شوه", - "repositoriesSelected": "{{count}} ذخیرې غوره شوې", + "repositoriesCount_one": "{{displayCount}} ذخیره غوره شوه", + "repositoriesCount": "{{displayCount}} ذخیرې غوره شوې", + "repositoriesCount_other": "{{displayCount}} ذخیرې غوره شوې", "selectRepositories": "ذخیرې غوره کړئ", "selectRepositoriesSubtitle": "غوره کړئ چې د امنیت استازی کومې ذخیرې څاري", "repositories": "ذخیرې", @@ -1720,10 +1729,12 @@ "sessionDeleted": "ناسته حذف شوه", "needsInput": "ورودی ته اړتیا لري", "fromPlatform": "له {{platform}} څخه", - "centOne": "سینټ", - "centOther": "سینټه", - "dollarOne": "ډالر", - "dollarOther": "ډالره" + "cent_one": "سینټ", + "cent": "سینټه", + "cent_other": "سینټه", + "dollar_one": "ډالر", + "dollar": "ډالره", + "dollar_other": "ډالره" }, "githubInstall": { "couldNotOpenTitle": "GitHub پرانیستل نشو", @@ -1817,8 +1828,9 @@ "discardFailed": "مسوده لغوه نه شوه. مهرباني وکړئ بیا هڅه وکړئ." }, "partRenderer": { - "updatedFile": "{{count}} فایل تازه شو", - "updatedFiles": "{{count}} فایلونه تازه شول" + "updatedFileCount_one": "{{displayCount}} فایل تازه شو", + "updatedFileCount": "{{displayCount}} فایلونه تازه شول", + "updatedFileCount_other": "{{displayCount}} فایلونه تازه شول" }, "toolPatch": { "operationAdded": "اضافه شوی", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "پخواني پیغامونه پورته شول", "retryHint": "د دې غونډې لپاره د پخوانیو پیغامونو پورته کول بیا هڅوي.", - "omittedOne": "د دې غونډې ځینې پخواني توکي نه شول ښودل کېدلای.", - "omittedMany": "د دې غونډې {{count}} پخواني توکي نه شول ښودل کېدلای.", + "omitted_one": "د دې غونډې ځینې پخواني توکي نه شول ښودل کېدلای.", + "omitted": "د دې غونډې {{displayCount}} پخواني توکي نه شول ښودل کېدلای.", + "omitted_other": "د دې غونډې {{displayCount}} پخواني توکي نه شول ښودل کېدلای.", "couldNotLoad": "پخواني پیغامونه نه شول پورته کېدلای.", "unavailable": "پخواني پیغامونه شتون نه لري.", "tooLarge": "پخواني پیغامونه د پورته کولو لپاره ډېر لوی دي." @@ -2069,10 +2082,12 @@ "viewTable": "جدول وګورئ", "title": "جدول", "close": "جدول وتړئ", - "column": "ستن", - "columns": "ستنې", - "row": "قطار", - "rows": "قطارونه", + "columnCount_one": "ستن", + "columnCount": "ستنې", + "columnCount_other": "ستنې", + "rowCount_one": "قطار", + "rowCount": "قطارونه", + "rowCount_other": "قطارونه", "opensFullScreen": "بشپړ سکرین پرانیزي" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "د {{window}} ټوکنونو څخه", "tokens": "ټوکنونه", "tokensWithPercentage": "ټوکنونه ({{percentage}})", - "stepsCountOne": "{{steps}} ګام", - "stepsCountMany": "{{steps}} ګامونه", + "stepsCount_one": "{{steps}} ګام", + "stepsCount": "{{steps}} ګامونه", + "stepsCount_other": "{{steps}} ګامونه", "modelAccessibilityLabel": "{{name}}، {{provider}}، {{steps}}، {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "د کوډ کولو نوې دنده", "explore": "وپلټئ", "seeAll": "ټول وګورئ", - "kiloAgents": "د Kilo اجنټان", - "greetingMorning": "سهار مو پخیر", - "greetingAfternoon": "ښه ماسپښین", - "greetingEvening": "ښه ماښام" + "kiloAgents": "د Kilo اجنټان" }, "imageViewer": { "close": "{{filename}} وتړئ", @@ -2645,8 +2658,9 @@ "manageHint": "په ویب باندې د Kilo Pass مدیریت پرانیزي.", "notSubscribed": "ګډون نه دی شوی", "overallocated": "د Pass ګمارنې له ورکړل شویو څوکیو ډېرې دي", - "paidSeatOne": "{{count}} ورکړل شوې څوکۍ", - "paidSeatOther": "{{count}} ورکړل شوې څوکۍ", + "paidSeat_one": "{{displayCount}} ورکړل شوې څوکۍ", + "paidSeat": "{{displayCount}} ورکړل شوې څوکۍ", + "paidSeat_other": "{{displayCount}} ورکړل شوې څوکۍ", "paymentNeedsAttention": "ورکړې ته پاملرنه اړینه ده", "paymentPending": "ورکړه په انتظار کې ده", "processingBlocked": "پروسس بند شوی", diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index ec7a801893..d8821e0f7d 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -305,8 +305,9 @@ }, "typingIndicator": { "someone": "Alguém", - "oneTyping": "{{name}} está digitando...", - "manyTyping": "{{names}} estão digitando..." + "typing_one": "{{name}} está digitando...", + "typing": "{{names}} estão digitando...", + "typing_other": "{{names}} estão digitando..." }, "botStatus": { "online": "Online", @@ -336,12 +337,10 @@ "couldNotLoad": "Não foi possível carregar as informações de cobrança", "manageOnWeb": "Gerenciar cobrança na web", "commitPlan": "Commit", - "daysLeft": "{{count}} dias restantes", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Seu último período Commit termina em {{date}}. Continue como Standard por {{price}}, ou a hospedagem termina.", "freeTrial": "Teste grátis", "hostingEnds": "A hospedagem termina", - "oneDayLeft": "1 dia restante", "renews": "Renova", "standardMonthToMonth": "Standard mês a mês", "standardStartsOn": "Standard começa em {{date}} por {{price}}.", @@ -552,8 +551,9 @@ "needsAttention": "{{name}} precisa de atenção: {{label}}", "open": "Abrir {{name}}", "openSettings": "Abrir configurações de {{name}}", - "openUnreadMany": "Abrir {{name}}, {{count}} mensagens não lidas", - "openUnreadOne": "Abrir {{name}}, {{count}} mensagem não lida" + "openUnread": "Abrir {{name}}, {{displayCount}} mensagens não lidas", + "openUnread_other": "Abrir {{name}}, {{displayCount}} mensagens não lidas", + "openUnread_one": "Abrir {{name}}, {{displayCount}} mensagem não lida" }, "list": { "createInstance": "Criar instância", @@ -1025,8 +1025,9 @@ "includeExistingFindingsRemediationSubtitle": "Colocar na fila também descobertas elegíveis já analisadas. PRs duplicados continuam suprimidos.", "minimumSeverity": "Gravidade mínima", "permissionNote": "Somente proprietários da organização e gerentes de cobrança podem alterar estas configurações.", - "queuedMany": "{{count}} descobertas existentes na fila para análise.", - "queuedOne": "{{count}} descoberta existente na fila para análise.", + "queued": "{{displayCount}} descobertas existentes na fila para análise.", + "queued_other": "{{displayCount}} descobertas existentes na fila para análise.", + "queued_one": "{{displayCount}} descoberta existente na fila para análise.", "requireApproval": "Exigir aprovação antes da remediação automática", "requireApprovalSubtitle": "A remediação automática aguarda sua aprovação antes de abrir PRs.", "severityAll": "Todas as gravidades", @@ -1256,8 +1257,9 @@ "off": "Desativado", "on": "Ativado", "repositories": "Repositórios", - "repositoriesSelected": "{{count}} repositórios selecionados", - "repositorySelected": "{{count}} repositório selecionado", + "repositoriesCount": "{{displayCount}} repositórios selecionados", + "repositoriesCount_other": "{{displayCount}} repositórios selecionados", + "repositoriesCount_one": "{{displayCount}} repositório selecionado", "securityAgent": "Security Agent", "selectRepositories": "Selecionar repositórios", "selectRepositoriesSubtitle": "Escolha quais repositórios o Security Agent monitora", @@ -1334,10 +1336,12 @@ "sessionDeleted": "Sessão excluída", "needsInput": "requer entrada", "fromPlatform": "de {{platform}}", - "centOne": "centavo", - "centOther": "centavos", - "dollarOne": "dólar", - "dollarOther": "dólares" + "cent_one": "centavo", + "cent": "centavos", + "cent_other": "centavos", + "dollar_one": "dólar", + "dollar": "dólares", + "dollar_other": "dólares" }, "githubInstall": { "couldNotOpenMessage": "Não foi possível iniciar a configuração do GitHub App. Tente novamente.", @@ -1431,8 +1435,9 @@ "keepEditing": "Continuar editando" }, "partRenderer": { - "updatedFile": "{{count}} arquivo atualizado", - "updatedFiles": "{{count}} arquivos atualizados" + "updatedFileCount_one": "{{displayCount}} arquivo atualizado", + "updatedFileCount": "{{displayCount}} arquivos atualizados", + "updatedFileCount_other": "{{displayCount}} arquivos atualizados" }, "toolPatch": { "operationAdded": "Adicionado", @@ -1673,8 +1678,9 @@ "olderMessages": { "arrived": "Mensagens anteriores carregadas", "retryHint": "Tenta novamente carregar as mensagens mais antigas desta sessão.", - "omittedOne": "Um item anterior desta sessão não pôde ser exibido.", - "omittedMany": "{{count}} itens anteriores desta sessão não puderam ser exibidos.", + "omitted_one": "Um item anterior desta sessão não pôde ser exibido.", + "omitted": "{{displayCount}} itens anteriores desta sessão não puderam ser exibidos.", + "omitted_other": "{{displayCount}} itens anteriores desta sessão não puderam ser exibidos.", "couldNotLoad": "Não foi possível carregar as mensagens anteriores.", "unavailable": "As mensagens anteriores não estão disponíveis.", "tooLarge": "As mensagens anteriores são grandes demais para carregar." @@ -1683,10 +1689,12 @@ "viewTable": "Ver tabela", "title": "Tabela", "close": "Fechar tabela", - "column": "coluna", - "columns": "colunas", - "row": "linha", - "rows": "linhas", + "columnCount_one": "coluna", + "columnCount": "colunas", + "columnCount_other": "colunas", + "rowCount_one": "linha", + "rowCount": "linhas", + "rowCount_other": "linhas", "opensFullScreen": "abre em tela cheia" }, "sessionFilter": { @@ -1839,8 +1847,9 @@ "ofWindowTokens": "de {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} etapa", - "stepsCountMany": "{{steps}} etapas", + "stepsCount_one": "{{steps}} etapa", + "stepsCount": "{{steps}} etapas", + "stepsCount_other": "{{steps}} etapas", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Nova tarefa de codificação", "explore": "Explorar", "seeAll": "Ver tudo", - "kiloAgents": "Agentes Kilo", - "greetingMorning": "Bom dia", - "greetingAfternoon": "Boa tarde", - "greetingEvening": "Boa noite" + "kiloAgents": "Agentes Kilo" }, "imageViewer": { "close": "Fechar {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Fechar reações", "collapseThread": "Recolher conversa", "commentActions": "Ações do comentário", - "commentCount": "{{count}} comentários", + "comment": "{{displayCount}} comentários", + "comment_other": "{{displayCount}} comentários", "couldNotLoad": "Não foi possível carregar a discussão", "couldNotLoadMore": "Não foi possível carregar mais comentários.", "couldNotReply": "Não foi possível responder.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} silenciado", "noDiscussion": "Ainda não há discussão", "noDiscussionDescription": "Nenhuma conversa de revisão ou comentário de conversa neste pull request.", - "oneComment": "1 comentário", + "comment_one": "1 comentário", "outdated": "Desatualizado", "quotedDiffSnippet": "Trecho de diff citado", "reactionPill": "{{emoji}} reação, {{count}} {{countLabel}}", - "reactionPlural": "reações", - "reactionSingular": "reação", + "reaction": "reações", + "reaction_other": "reações", + "reaction_one": "reação", "reactionsTitle": "Reações", "reply": "Responder", "replyBadRequest": "Esta resposta não pode ser publicada. A conversa pode ter mudado.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Expandir mais {{count}} linhas ({{start}}–{{end}})", "failedToLoadContext": "Falha ao carregar o contexto — toque para tentar novamente", "failedToLoadMoreFiles": "Falha ao carregar mais arquivos — toque para tentar novamente", - "fileLoaded": "{{count}} arquivo carregado", - "fileLoadedOfTotal": "{{count}} arquivo carregado de {{total}}", - "filesLoaded": "{{count}} arquivos carregados", - "filesLoadedOfTotal": "{{count}} arquivos carregados de {{total}}", + "fileLoadedCount_one": "{{displayCount}} arquivo carregado", + "fileLoadedOfTotalCount_one": "{{displayCount}} arquivo carregado de {{total}}", + "fileLoadedCount": "{{displayCount}} arquivos carregados", + "fileLoadedCount_other": "{{displayCount}} arquivos carregados", + "fileLoadedOfTotalCount": "{{displayCount}} arquivos carregados de {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} arquivos carregados de {{total}}", "filesStillLoading": "Os arquivos ainda estão carregando. Puxe para atualizar.", "goToOverview": "Ir para Visão geral", "goToOverviewTab": "Ir para a aba Visão geral", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Nenhum arquivo alterado", "noFilesChangedDescription": "Este pull request não tem alterações de arquivos.", "overview": { - "commitPlural": "commits", - "commitSingular": "commit", - "filePlural": "arquivos", - "fileSingular": "arquivo", + "commit": "commits", + "commit_other": "commits", + "commit_one": "commit", + "file": "arquivos", + "file_other": "arquivos", + "file_one": "arquivo", "stateClosed": "Fechado", "stateDraft": "Rascunho", "stateMerged": "Mesclado", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Este comentário será removido da fila de revisão.", "deletePendingTitle": "Excluir comentário pendente?", "loadFailedTitle": "Não foi possível carregar o envio da revisão", - "pendingCommentPlural": "comentários pendentes", - "pendingCommentSingular": "comentário pendente", + "pendingComment": "comentários pendentes", + "pendingComment_other": "comentários pendentes", + "pendingComment_one": "comentário pendente", "summaryOptional": "Resumo (opcional)", "title": "Enviar revisão", "partialPostedMessage": "{{freshCount}} comentário(s) publicado(s). {{staleCount}} comentário(s) apontam para um commit mais antigo e permaneceram na sua fila.", @@ -2632,8 +2645,9 @@ "manageHint": "Abre o gerenciamento do Kilo Pass na web.", "notSubscribed": "Não assinado", "overallocated": "Atribuições do Pass excedem os assentos pagos", - "paidSeatOne": "{{count}} assento pago", - "paidSeatOther": "{{count}} assentos pagos", + "paidSeat_one": "{{displayCount}} assento pago", + "paidSeat": "{{displayCount}} assentos pagos", + "paidSeat_other": "{{displayCount}} assentos pagos", "paymentNeedsAttention": "Pagamento precisa de atenção", "paymentPending": "Pagamento pendente", "processingBlocked": "Processamento bloqueado", diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index bb7ded6984..d19098a672 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} de {{total}} ficheiros carregados", "loadAllFiles": "Carregar todos os ficheiros", "loadAll": "Carregar tudo", - "fileLoaded": "{{count}} ficheiro carregado", - "filesLoaded": "{{count}} ficheiros carregados", - "fileLoadedOfTotal": "{{count}} ficheiro carregado de {{total}}", - "filesLoadedOfTotal": "{{count}} ficheiros carregados de {{total}}", + "fileLoadedCount_one": "{{displayCount}} ficheiro carregado", + "fileLoadedCount": "{{displayCount}} ficheiros carregados", + "fileLoadedCount_other": "{{displayCount}} ficheiros carregados", + "fileLoadedOfTotalCount_one": "{{displayCount}} ficheiro carregado de {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} ficheiros carregados de {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} ficheiros carregados de {{total}}", "filesStillLoading": "Os ficheiros ainda estão a carregar. Deslize para baixo para atualizar.", "goToOverview": "Ir para a Visão Geral", "goToOverviewTab": "Ir para o separador Visão Geral" @@ -288,8 +290,9 @@ "resolved": "Resolvida", "outdated": "Desatualizada", "file": "Ficheiro", - "oneComment": "1 comentário", - "commentCount": "{{count}} comentários", + "comment_one": "1 comentário", + "comment": "{{displayCount}} comentários", + "comment_other": "{{displayCount}} comentários", "startedRelative": " · iniciada {{relative}}", "couldNotLoadMore": "Não foi possível carregar mais comentários.", "retryLoadingMore": "Tentar carregar mais comentários novamente", @@ -299,8 +302,9 @@ "reactionsTitle": "Reações", "addReaction": "Adicionar reação", "reactionPill": "{{emoji}} reação, {{count}} {{countLabel}}", - "reactionSingular": "reação", - "reactionPlural": "reações", + "reaction_one": "reação", + "reaction": "reações", + "reaction_other": "reações", "commentActions": "Ações do comentário", "reportContent": "Denunciar conteúdo", "reportUser": "Denunciar utilizador", @@ -452,8 +456,9 @@ "deletePendingMessage": "Este comentário será removido da fila de revisão.", "delete": "Eliminar", "summaryOptional": "Resumo (opcional)", - "pendingCommentSingular": "comentário pendente", - "pendingCommentPlural": "comentários pendentes", + "pendingComment_one": "comentário pendente", + "pendingComment": "comentários pendentes", + "pendingComment_other": "comentários pendentes", "submitCountOfTotal": "Enviar {{freshCount}} de {{totalCount}} comentários", "submitReview": "Enviar revisão", "partialPostedMessage": "{{freshCount}} comentário(s) enviado(s). {{staleCount}} comentário(s) apontam para um commit mais antigo e ficaram na sua fila." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Aberto · Revisão obrigatória", "stateOpen": "Aberto", "unknownAuthor": "Autor desconhecido", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "ficheiro", - "filePlural": "ficheiros" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "ficheiro", + "file": "ficheiros", + "file_other": "ficheiros" }, "pendingComment": { "editOutdatedA11y": "Editar comentário pendente desatualizado em {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Alguém", - "oneTyping": "{{name}} está a escrever...", - "manyTyping": "{{names}} estão a escrever..." + "typing_one": "{{name}} está a escrever...", + "typing": "{{names}} estão a escrever...", + "typing_other": "{{names}} estão a escrever..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Não foi possível carregar as informações de faturação", "manageOnWeb": "Gerir faturação na web", "commitPlan": "Comprometer", - "daysLeft": "Faltam {{count}} dias", "earlybird": "Earlybird", "finalCommitTermEndsOn": "O seu prazo final de Commit termina em {{date}}. Continue como Standard por {{price}}, ou o alojamento termina.", "freeTrial": "Teste gratuito", "hostingEnds": "O alojamento termina", - "oneDayLeft": "Falta 1 dia", "renews": "Renova", "standardMonthToMonth": "Standard mês a mês", "standardStartsOn": "O Standard começa em {{date}} por {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} necessita de atenção: {{label}}", - "openUnreadOne": "Abrir {{name}}, {{count}} mensagem não lida", - "openUnreadMany": "Abrir {{name}}, {{count}} mensagens não lidas", + "openUnread_one": "Abrir {{name}}, {{displayCount}} mensagem não lida", + "openUnread": "Abrir {{name}}, {{displayCount}} mensagens não lidas", + "openUnread_other": "Abrir {{name}}, {{displayCount}} mensagens não lidas", "open": "Abrir {{name}}", "openSettings": "Abrir as definições de {{name}}", "fixOnKiloAi": "Corrigir em kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Ativar a correção automática?", "enableAutoRemediationConfirmMessage": "O Agente de Segurança abrirá automaticamente PRs de correção para descobertas exploráveis elegíveis.", "enable": "Ativar", - "queuedOne": "{{count}} ocorrência existente em fila para análise.", - "queuedMany": "{{count}} ocorrências existentes em fila para análise.", + "queued_one": "{{displayCount}} ocorrência existente em fila para análise.", + "queued": "{{displayCount}} ocorrências existentes em fila para análise.", + "queued_other": "{{displayCount}} ocorrências existentes em fila para análise.", "severityCriticalOnly": "Apenas críticas", "severityHighAndAbove": "Alta e acima", "severityMediumAndAbove": "Média e acima", @@ -1482,8 +1490,9 @@ "on": "Ligado", "off": "Desligado", "allRepositories": "Todos os repositórios", - "repositorySelected": "{{count}} repositório selecionado", - "repositoriesSelected": "{{count}} repositórios selecionados", + "repositoriesCount_one": "{{displayCount}} repositório selecionado", + "repositoriesCount": "{{displayCount}} repositórios selecionados", + "repositoriesCount_other": "{{displayCount}} repositórios selecionados", "selectRepositories": "Selecionar repositórios", "selectRepositoriesSubtitle": "Escolha quais os repositórios que o Security Agent monitoriza", "repositories": "Repositórios", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sessão eliminada", "needsInput": "requer entrada", "fromPlatform": "de {{platform}}", - "centOne": "cêntimo", - "centOther": "cêntimos", - "dollarOne": "dólar", - "dollarOther": "dólares" + "cent_one": "cêntimo", + "cent": "cêntimos", + "cent_other": "cêntimos", + "dollar_one": "dólar", + "dollar": "dólares", + "dollar_other": "dólares" }, "githubInstall": { "couldNotOpenTitle": "Não foi possível abrir o GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Não foi possível descartar o rascunho. Tente novamente." }, "partRenderer": { - "updatedFile": "{{count}} ficheiro atualizado", - "updatedFiles": "{{count}} ficheiros atualizados" + "updatedFileCount_one": "{{displayCount}} ficheiro atualizado", + "updatedFileCount": "{{displayCount}} ficheiros atualizados", + "updatedFileCount_other": "{{displayCount}} ficheiros atualizados" }, "toolPatch": { "operationAdded": "Adicionado", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Mensagens anteriores carregadas", "retryHint": "Volta a tentar carregar as mensagens anteriores desta sessão.", - "omittedOne": "Alguns itens anteriores desta sessão não puderam ser apresentados.", - "omittedMany": "{{count}} itens anteriores desta sessão não puderam ser apresentados.", + "omitted_one": "Alguns itens anteriores desta sessão não puderam ser apresentados.", + "omitted": "{{displayCount}} itens anteriores desta sessão não puderam ser apresentados.", + "omitted_other": "{{displayCount}} itens anteriores desta sessão não puderam ser apresentados.", "couldNotLoad": "Não foi possível carregar as mensagens anteriores.", "unavailable": "As mensagens anteriores não estão disponíveis.", "tooLarge": "As mensagens anteriores são demasiado grandes para carregar." @@ -2069,10 +2082,12 @@ "viewTable": "Ver tabela", "title": "Tabela", "close": "Fechar tabela", - "column": "coluna", - "columns": "colunas", - "row": "linha", - "rows": "linhas", + "columnCount_one": "coluna", + "columnCount": "colunas", + "columnCount_other": "colunas", + "rowCount_one": "linha", + "rowCount": "linhas", + "rowCount_other": "linhas", "opensFullScreen": "abre em ecrã inteiro" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "de {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} passo", - "stepsCountMany": "{{steps}} passos", + "stepsCount_one": "{{steps}} passo", + "stepsCount": "{{steps}} passos", + "stepsCount_other": "{{steps}} passos", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nova tarefa de programação", "explore": "Explorar", "seeAll": "Ver tudo", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Bom dia", - "greetingAfternoon": "Boa tarde", - "greetingEvening": "Boa noite" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Fechar {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Abre a gestão do Kilo Pass na web.", "notSubscribed": "Sem subscrição", "overallocated": "As atribuições de Pass excedem os lugares pagos", - "paidSeatOne": "{{count}} lugar pago", - "paidSeatOther": "{{count}} lugares pagos", + "paidSeat_one": "{{displayCount}} lugar pago", + "paidSeat": "{{displayCount}} lugares pagos", + "paidSeat_other": "{{displayCount}} lugares pagos", "paymentNeedsAttention": "O pagamento requer atenção", "paymentPending": "Pagamento pendente", "processingBlocked": "Processamento bloqueado", diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index 71390b2d99..c71d826c32 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} din {{total}} fișiere încărcate", "loadAllFiles": "Încarcă toate fișierele", "loadAll": "Încarcă tot", - "fileLoaded": "{{count}} fișier încărcat", - "filesLoaded": "{{count}} fișiere încărcate", - "fileLoadedOfTotal": "{{count}} fișier încărcat din {{total}}", - "filesLoadedOfTotal": "{{count}} fișiere încărcate din {{total}}", + "fileLoadedCount_one": "{{displayCount}} fișier încărcat", + "fileLoadedCount": "{{displayCount}} fișiere încărcate", + "fileLoadedCount_other": "{{displayCount}} fișiere încărcate", + "fileLoadedOfTotalCount_one": "{{displayCount}} fișier încărcat din {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} fișiere încărcate din {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} fișiere încărcate din {{total}}", "filesStillLoading": "Fișierele se mai încarcă. Trage pentru a reîmprospăta.", "goToOverview": "Mergi la Prezentare generală", "goToOverviewTab": "Mergi la fila Prezentare generală" @@ -288,8 +290,9 @@ "resolved": "Rezolvat", "outdated": "Învechit", "file": "Fișier", - "oneComment": "1 comentariu", - "commentCount": "{{count}} comentarii", + "comment_one": "1 comentariu", + "comment": "{{displayCount}} comentarii", + "comment_other": "{{displayCount}} comentarii", "startedRelative": " · început {{relative}}", "couldNotLoadMore": "Nu s-au putut încărca mai multe comentarii.", "retryLoadingMore": "Reîncearcă încărcarea a mai multor comentarii", @@ -299,8 +302,9 @@ "reactionsTitle": "Reacții", "addReaction": "Adaugă o reacție", "reactionPill": "{{emoji}} reacție, {{count}} {{countLabel}}", - "reactionSingular": "reacție", - "reactionPlural": "reacții", + "reaction_one": "reacție", + "reaction": "reacții", + "reaction_other": "reacții", "commentActions": "Acțiuni pentru comentarii", "reportContent": "Raportează conținutul", "reportUser": "Raportează utilizatorul", @@ -452,8 +456,9 @@ "deletePendingMessage": "Acest comentariu va fi eliminat din coada de revizuire.", "delete": "Șterge", "summaryOptional": "Rezumat (opțional)", - "pendingCommentSingular": "comentariu în așteptare", - "pendingCommentPlural": "comentarii în așteptare", + "pendingComment_one": "comentariu în așteptare", + "pendingComment": "comentarii în așteptare", + "pendingComment_other": "comentarii în așteptare", "submitCountOfTotal": "Trimite {{freshCount}} din {{totalCount}} comentarii", "submitReview": "Trimite revizuirea", "partialPostedMessage": "Publicate {{freshCount}} comentariu(i). {{staleCount}} comentariu(i) se referă la un commit mai vechi și au rămas în coada ta." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Deschis · Revizuire necesară", "stateOpen": "Deschis", "unknownAuthor": "Autor necunoscut", - "commitSingular": "commit", - "commitPlural": "commit-uri", - "fileSingular": "fișier", - "filePlural": "fișiere" + "commit_one": "commit", + "commit": "commit-uri", + "commit_other": "commit-uri", + "file_one": "fișier", + "file": "fișiere", + "file_other": "fișiere" }, "pendingComment": { "editOutdatedA11y": "Editează comentariul învechit în așteptare pe {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Cineva", - "oneTyping": "{{name}} scrie...", - "manyTyping": "{{names}} scriu..." + "typing_one": "{{name}} scrie...", + "typing": "{{names}} scriu...", + "typing_other": "{{names}} scriu..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Informațiile de facturare nu au putut fi încărcate", "manageOnWeb": "Gestionare facturare pe Web", "commitPlan": "Angajare", - "daysLeft": "{{count}} zile rămase", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Termenul tău final de angajare se încheie pe {{date}}. Continuă ca Standard la {{price}}, sau găzduirea se încheie.", "freeTrial": "Perioadă de probă gratuită", "hostingEnds": "Găzduirea se încheie", - "oneDayLeft": "1 zi rămasă", "renews": "Se reînnoiește", "standardMonthToMonth": "Standard lună de lună", "standardStartsOn": "Standard începe pe {{date}} la {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} necesită atenție: {{label}}", - "openUnreadOne": "Deschide {{name}}, {{count}} mesaj necitit", - "openUnreadMany": "Deschide {{name}}, {{count}} mesaje necitite", + "openUnread_one": "Deschide {{name}}, {{displayCount}} mesaj necitit", + "openUnread": "Deschide {{name}}, {{displayCount}} mesaje necitite", + "openUnread_other": "Deschide {{name}}, {{displayCount}} mesaje necitite", "open": "Deschide {{name}}", "openSettings": "Deschide setările pentru {{name}}", "fixOnKiloAi": "Rezolvă pe kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Activezi auto-remedierea?", "enableAutoRemediationConfirmMessage": "Security Agent va deschide automat PR-uri de remediere pentru constatările exploatabile eligibile.", "enable": "Activează", - "queuedOne": "{{count}} constatare existentă pusă în coadă pentru analiză.", - "queuedMany": "{{count}} constatări existente puse în coadă pentru analiză.", + "queued_one": "{{displayCount}} constatare existentă pusă în coadă pentru analiză.", + "queued": "{{displayCount}} constatări existente puse în coadă pentru analiză.", + "queued_other": "{{displayCount}} constatări existente puse în coadă pentru analiză.", "severityCriticalOnly": "Doar critice", "severityHighAndAbove": "Mare și peste", "severityMediumAndAbove": "Medie și peste", @@ -1482,8 +1490,9 @@ "on": "Activat", "off": "Dezactivat", "allRepositories": "Toate depozitele", - "repositorySelected": "{{count}} depozit selectat", - "repositoriesSelected": "{{count}} depozite selectate", + "repositoriesCount_one": "{{displayCount}} depozit selectat", + "repositoriesCount": "{{displayCount}} depozite selectate", + "repositoriesCount_other": "{{displayCount}} depozite selectate", "selectRepositories": "Selectează depozitele", "selectRepositoriesSubtitle": "Alege depozitele pe care le monitorizează Security Agent", "repositories": "Depozite", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesiune ștearsă", "needsInput": "necesită introducere", "fromPlatform": "din {{platform}}", - "centOne": "cent", - "centOther": "cenți", - "dollarOne": "dolar", - "dollarOther": "dolari" + "cent_one": "cent", + "cent": "cenți", + "cent_other": "cenți", + "dollar_one": "dolar", + "dollar": "dolari", + "dollar_other": "dolari" }, "githubInstall": { "couldNotOpenTitle": "Nu s-a putut deschide GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Nu s-a putut renunța la ciornă. Încearcă din nou." }, "partRenderer": { - "updatedFile": "Actualizat {{count}} fișier", - "updatedFiles": "Actualizate {{count}} fișiere" + "updatedFileCount_one": "Actualizat {{displayCount}} fișier", + "updatedFileCount": "Actualizate {{displayCount}} fișiere", + "updatedFileCount_other": "Actualizate {{displayCount}} fișiere" }, "toolPatch": { "operationAdded": "Adăugat", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Mesajele anterioare au fost încărcate", "retryHint": "Reîncearcă încărcarea mesajelor anterioare pentru această sesiune.", - "omittedOne": "Unele elemente anterioare din această sesiune nu au putut fi afișate.", - "omittedMany": "{{count}} elemente anterioare din această sesiune nu au putut fi afișate.", + "omitted_one": "Unele elemente anterioare din această sesiune nu au putut fi afișate.", + "omitted": "{{displayCount}} elemente anterioare din această sesiune nu au putut fi afișate.", + "omitted_other": "{{displayCount}} elemente anterioare din această sesiune nu au putut fi afișate.", "couldNotLoad": "Mesajele anterioare nu au putut fi încărcate.", "unavailable": "Mesajele anterioare nu sunt disponibile.", "tooLarge": "Mesajele anterioare sunt prea mari pentru a fi încărcate." @@ -2069,10 +2082,12 @@ "viewTable": "Vezi tabelul", "title": "Tabel", "close": "Închide tabelul", - "column": "coloană", - "columns": "coloane", - "row": "rând", - "rows": "rânduri", + "columnCount_one": "coloană", + "columnCount": "coloane", + "columnCount_other": "coloane", + "rowCount_one": "rând", + "rowCount": "rânduri", + "rowCount_other": "rânduri", "opensFullScreen": "deschide pe tot ecranul" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "din {{window}} tokeni", "tokens": "tokeni", "tokensWithPercentage": "tokeni ({{percentage}})", - "stepsCountOne": "{{steps}} pas", - "stepsCountMany": "{{steps}} pași", + "stepsCount_one": "{{steps}} pas", + "stepsCount": "{{steps}} pași", + "stepsCount_other": "{{steps}} pași", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Sarcină de codare nouă", "explore": "Explorează", "seeAll": "Vezi tot", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Bună dimineața", - "greetingAfternoon": "Bună ziua", - "greetingEvening": "Bună seara" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Închide {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Deschide gestionarea Kilo Pass pe web.", "notSubscribed": "Neabonat", "overallocated": "Atribuirile de Pass depășesc locurile plătite", - "paidSeatOne": "{{count}} loc plătit", - "paidSeatOther": "{{count}} locuri plătite", + "paidSeat_one": "{{displayCount}} loc plătit", + "paidSeat": "{{displayCount}} locuri plătite", + "paidSeat_other": "{{displayCount}} locuri plătite", "paymentNeedsAttention": "Plata necesită atenție", "paymentPending": "Plată în așteptare", "processingBlocked": "Procesare blocată", diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 694d34ee39..23d8a96e32 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Кто-то", - "oneTyping": "{{name}} печатает...", - "manyTyping": "{{names}} печатают..." + "typing_one": "{{name}} печатает...", + "typing": "{{names}} печатают...", + "typing_other": "{{names}} печатают..." }, "botStatus": { "online": "В сети", @@ -350,12 +351,10 @@ "couldNotLoad": "Не удалось загрузить информацию об оплате", "manageOnWeb": "Управление оплатой в веб-версии", "commitPlan": "Commit", - "daysLeft": "Осталось {{count}} дн.", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Ваш последний период Commit заканчивается {{date}}. Продолжите как Standard за {{price}}, или хостинг завершится.", "freeTrial": "Бесплатная пробная версия", "hostingEnds": "Хостинг завершается", - "oneDayLeft": "Остался 1 день", "renews": "Продлевается", "standardMonthToMonth": "Standard помесячно", "standardStartsOn": "Standard начинается {{date}} за {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} требует внимания: {{label}}", "open": "Открыть {{name}}", "openSettings": "Открыть настройки для {{name}}", - "openUnreadMany": "Открыть {{name}}, непрочитанных сообщений: {{count}}", - "openUnreadOne": "Открыть {{name}}, непрочитанное сообщение: {{count}}" + "openUnread": "Открыть {{name}}, непрочитанных сообщений: {{displayCount}}", + "openUnread_other": "Открыть {{name}}, непрочитанных сообщений: {{displayCount}}", + "openUnread_one": "Открыть {{name}}, непрочитанное сообщение: {{displayCount}}" }, "list": { "createInstance": "Создать экземпляр", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Также ставить в очередь уже проанализированные подходящие находки. Повторные PR не создаются.", "minimumSeverity": "Минимальная критичность", "permissionNote": "Только владельцы организации и менеджеры по оплате могут изменять эти настройки.", - "queuedMany": "{{count}} существующих находок поставлено в очередь на анализ.", - "queuedOne": "{{count}} существующая находка поставлена в очередь на анализ.", + "queued": "{{displayCount}} существующих находок поставлено в очередь на анализ.", + "queued_other": "{{displayCount}} существующих находок поставлено в очередь на анализ.", + "queued_one": "{{displayCount}} существующая находка поставлена в очередь на анализ.", "requireApproval": "Требовать подтверждение перед автоисправлением", "requireApprovalSubtitle": "Автоисправление ждет вашего подтверждения перед открытием PR.", "severityAll": "Все уровни критичности", @@ -1270,8 +1271,9 @@ "off": "Выкл.", "on": "Вкл.", "repositories": "Репозитории", - "repositoriesSelected": "Выбрано репозиториев: {{count}}", - "repositorySelected": "Выбран {{count}} репозиторий", + "repositoriesCount": "Выбрано репозиториев: {{displayCount}}", + "repositoriesCount_other": "Выбрано репозиториев: {{displayCount}}", + "repositoriesCount_one": "Выбран {{displayCount}} репозиторий", "securityAgent": "Security Agent", "selectRepositories": "Выбрать репозитории", "selectRepositoriesSubtitle": "Выберите, какие репозитории отслеживает Security Agent", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Сеанс удален", "needsInput": "требует ввода", "fromPlatform": "из {{platform}}", - "centOne": "цент", - "centOther": "центов", - "dollarOne": "доллар", - "dollarOther": "долларов" + "cent_one": "цент", + "cent": "центов", + "cent_other": "центов", + "dollar_one": "доллар", + "dollar": "долларов", + "dollar_other": "долларов" }, "githubInstall": { "couldNotOpenMessage": "Не удалось начать настройку GitHub App. Попробуйте снова.", @@ -1445,8 +1449,9 @@ "keepEditing": "Продолжить редактирование" }, "partRenderer": { - "updatedFile": "Обновлен {{count}} файл", - "updatedFiles": "Обновлено {{count}} файлов" + "updatedFileCount_one": "Обновлен {{displayCount}} файл", + "updatedFileCount": "Обновлено {{displayCount}} файлов", + "updatedFileCount_other": "Обновлено {{displayCount}} файлов" }, "toolPatch": { "operationAdded": "Добавлено", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Более ранние сообщения загружены", "retryHint": "Повторяет загрузку более ранних сообщений этой сессии.", - "omittedOne": "Один более ранний элемент этой сессии не удалось отобразить.", - "omittedMany": "{{count}} более ранних элементов этой сессии не удалось отобразить.", + "omitted_one": "Один более ранний элемент этой сессии не удалось отобразить.", + "omitted": "{{displayCount}} более ранних элементов этой сессии не удалось отобразить.", + "omitted_other": "{{displayCount}} более ранних элементов этой сессии не удалось отобразить.", "couldNotLoad": "Не удалось загрузить более ранние сообщения.", "unavailable": "Более ранние сообщения недоступны.", "tooLarge": "Более ранние сообщения слишком велики для загрузки." @@ -1697,10 +1703,12 @@ "viewTable": "Просмотреть таблицу", "title": "Таблица", "close": "Закрыть таблицу", - "column": "столбец", - "columns": "столбцы", - "row": "строка", - "rows": "строки", + "columnCount_one": "столбец", + "columnCount": "столбцы", + "columnCount_other": "столбцы", + "rowCount_one": "строка", + "rowCount": "строки", + "rowCount_other": "строки", "opensFullScreen": "открывается на весь экран" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "из {{window}} токенов", "tokens": "токенов", "tokensWithPercentage": "токенов ({{percentage}})", - "stepsCountOne": "{{steps}} шаг", - "stepsCountMany": "{{steps}} шагов", + "stepsCount_one": "{{steps}} шаг", + "stepsCount": "{{steps}} шагов", + "stepsCount_other": "{{steps}} шагов", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Новая задача кодирования", "explore": "Исследовать", "seeAll": "Смотреть все", - "kiloAgents": "Агенты Kilo", - "greetingMorning": "Доброе утро", - "greetingAfternoon": "Добрый день", - "greetingEvening": "Добрый вечер" + "kiloAgents": "Агенты Kilo" }, "imageViewer": { "close": "Закрыть {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Закрыть реакции", "collapseThread": "Свернуть ветку", "commentActions": "Действия с комментарием", - "commentCount": "{{count}} комментариев", + "comment": "{{displayCount}} комментариев", + "comment_other": "{{displayCount}} комментариев", "couldNotLoad": "Не удалось загрузить обсуждение", "couldNotLoadMore": "Не удалось загрузить больше комментариев.", "couldNotReply": "Не удалось ответить.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} заглушен", "noDiscussion": "Обсуждений пока нет", "noDiscussionDescription": "В этом pull request нет веток проверки или комментариев обсуждения.", - "oneComment": "1 комментарий", + "comment_one": "1 комментарий", "outdated": "Устарело", "quotedDiffSnippet": "Цитируемый фрагмент diff", "reactionPill": "{{emoji}} реакция, {{count}} {{countLabel}}", - "reactionPlural": "реакций", - "reactionSingular": "реакция", + "reaction": "реакций", + "reaction_other": "реакций", + "reaction_one": "реакция", "reactionsTitle": "Реакции", "reply": "Ответить", "replyBadRequest": "Этот ответ нельзя отправить. Возможно, ветка изменилась.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Развернуть ещё {{count}} строк ({{start}}–{{end}})", "failedToLoadContext": "Не удалось загрузить контекст — нажмите, чтобы повторить", "failedToLoadMoreFiles": "Не удалось загрузить остальные файлы — нажмите, чтобы повторить", - "fileLoaded": "загружен {{count}} файл", - "fileLoadedOfTotal": "загружен {{count}} файл из {{total}}", - "filesLoaded": "загружено {{count}} файлов", - "filesLoadedOfTotal": "загружено {{count}} файлов из {{total}}", + "fileLoadedCount_one": "загружен {{displayCount}} файл", + "fileLoadedOfTotalCount_one": "загружен {{displayCount}} файл из {{total}}", + "fileLoadedCount": "загружено {{displayCount}} файлов", + "fileLoadedCount_other": "загружено {{displayCount}} файлов", + "fileLoadedOfTotalCount": "загружено {{displayCount}} файлов из {{total}}", + "fileLoadedOfTotalCount_other": "загружено {{displayCount}} файлов из {{total}}", "filesStillLoading": "Файлы всё ещё загружаются. Потяните вниз, чтобы обновить.", "goToOverview": "Перейти к обзору", "goToOverviewTab": "Перейти на вкладку «Обзор»", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Нет измененных файлов", "noFilesChangedDescription": "В этом pull request нет изменений файлов.", "overview": { - "commitPlural": "коммитов", - "commitSingular": "коммит", - "filePlural": "файлов", - "fileSingular": "файл", + "commit": "коммитов", + "commit_other": "коммитов", + "commit_one": "коммит", + "file": "файлов", + "file_other": "файлов", + "file_one": "файл", "stateClosed": "Закрыт", "stateDraft": "Черновик", "stateMerged": "Объединен", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Этот комментарий будет удален из очереди проверки.", "deletePendingTitle": "Удалить ожидающий комментарий?", "loadFailedTitle": "Не удалось загрузить отправку проверки", - "pendingCommentPlural": "ожидающих комментариев", - "pendingCommentSingular": "ожидающий комментарий", + "pendingComment": "ожидающих комментариев", + "pendingComment_other": "ожидающих комментариев", + "pendingComment_one": "ожидающий комментарий", "summaryOptional": "Итог (необязательно)", "title": "Отправить проверку", "partialPostedMessage": "Опубликовано {{freshCount}} комментариев. {{staleCount}} комментариев указывают на старый коммит и остались в очереди.", @@ -2632,8 +2645,9 @@ "manageHint": "Открывает управление Kilo Pass в веб-версии.", "notSubscribed": "Нет подписки", "overallocated": "Назначений Pass больше, чем оплаченных мест", - "paidSeatOne": "{{count}} оплаченное место", - "paidSeatOther": "{{count}} оплаченных мест", + "paidSeat_one": "{{displayCount}} оплаченное место", + "paidSeat": "{{displayCount}} оплаченных мест", + "paidSeat_other": "{{displayCount}} оплаченных мест", "paymentNeedsAttention": "Оплата требует внимания", "paymentPending": "Оплата ожидается", "processingBlocked": "Обработка заблокирована", diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index da314d4820..6c8cf5952e 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "ගොනු {{total}} න් {{loaded}} පූරණය විය", "loadAllFiles": "සියලුම ගොනු පූරණය කරන්න", "loadAll": "සියල්ල පූරණය කරන්න", - "fileLoaded": "ගොනුව {{count}} පූරණය විය", - "filesLoaded": "ගොනු {{count}} පූරණය විය", - "fileLoadedOfTotal": "{{total}} න් ගොනුව {{count}} පූරණය විය", - "filesLoadedOfTotal": "{{total}} න් ගොනු {{count}} පූරණය විය", + "fileLoadedCount_one": "ගොනුව {{displayCount}} පූරණය විය", + "fileLoadedCount": "ගොනු {{displayCount}} පූරණය විය", + "fileLoadedCount_other": "ගොනු {{displayCount}} පූරණය විය", + "fileLoadedOfTotalCount_one": "{{total}} න් ගොනුව {{displayCount}} පූරණය විය", + "fileLoadedOfTotalCount": "{{total}} න් ගොනු {{displayCount}} පූරණය විය", + "fileLoadedOfTotalCount_other": "{{total}} න් ගොනු {{displayCount}} පූරණය විය", "filesStillLoading": "ගොනු තවමත් පූරණය වෙමින් පවතී. නැවුම් කිරීමට අදින්න.", "goToOverview": "දළ විශ්ලේෂණයට යන්න", "goToOverviewTab": "දළ විශ්ලේෂණ පටිත්තට යන්න" @@ -288,8 +290,9 @@ "resolved": "විසඳන ලදී", "outdated": "යල් පැන ගිය", "file": "ගොනුව", - "oneComment": "අදහස් 1 ක්", - "commentCount": "අදහස් {{count}} ක්", + "comment_one": "අදහස් 1 ක්", + "comment": "අදහස් {{displayCount}} ක්", + "comment_other": "අදහස් {{displayCount}} ක්", "startedRelative": " · {{relative}} සිට ආරම්භ විය", "couldNotLoadMore": "තවත් අදහස් පූරණය කිරීමට නොහැකි විය.", "retryLoadingMore": "තවත් අදහස් පූරණය නැවත උත්සාහ කරන්න", @@ -299,8 +302,9 @@ "reactionsTitle": "ප්‍රතික්‍රියා", "addReaction": "ප්‍රතික්‍රියාවක් එක් කරන්න", "reactionPill": "{{emoji}} ප්‍රතික්‍රියාව, {{count}} {{countLabel}}", - "reactionSingular": "ප්‍රතික්‍රියාව", - "reactionPlural": "ප්‍රතික්‍රියා", + "reaction_one": "ප්‍රතික්‍රියාව", + "reaction": "ප්‍රතික්‍රියා", + "reaction_other": "ප්‍රතික්‍රියා", "commentActions": "අදහස් ක්‍රියා", "reportContent": "අන්තර්ගතය වාර්තා කරන්න", "reportUser": "පරිශීලකයා වාර්තා කරන්න", @@ -452,8 +456,9 @@ "deletePendingMessage": "මෙම අදහස සමාලෝචන පෝලිමෙන් ඉවත් කරනු ඇත.", "delete": "මකන්න", "summaryOptional": "සාරාංශය (විකල්ප)", - "pendingCommentSingular": "අත්හිටුවන ලද අදහස", - "pendingCommentPlural": "අත්හිටුවන ලද අදහස්", + "pendingComment_one": "අත්හිටුවන ලද අදහස", + "pendingComment": "අත්හිටුවන ලද අදහස්", + "pendingComment_other": "අත්හිටුවන ලද අදහස්", "submitCountOfTotal": "අදහස් {{totalCount}} න් {{freshCount}} ඉදිරිපත් කරන්න", "submitReview": "සමාලෝචනය ඉදිරිපත් කරන්න", "partialPostedMessage": "අදහස් {{freshCount}} ක් පළ කරන ලදී. අදහස් {{staleCount}} ක් පැරණි commit එකක් දෙස බලා ඔබේ පෝලිමේ රැඳී ඇත." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "විවෘත · සමාලෝචනය අවශ්‍යයි", "stateOpen": "විවෘත", "unknownAuthor": "නොදන්නා කතෘ", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "ගොනුව", - "filePlural": "ගොනු" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "ගොනුව", + "file": "ගොනු", + "file_other": "ගොනු" }, "pendingComment": { "editOutdatedA11y": "{{location}} මත යල් පැන ගිය අත්හිටුවන ලද අදහස සංස්කරණය කරන්න", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "කෙනෙක්", - "oneTyping": "{{name}} ටයිප් කරමින්...", - "manyTyping": "{{names}} ටයිප් කරමින්..." + "typing_one": "{{name}} ටයිප් කරමින්...", + "typing": "{{names}} ටයිප් කරමින්...", + "typing_other": "{{names}} ටයිප් කරමින්..." }, "botStatus": { "online": "මාර්ගගත", @@ -722,12 +730,10 @@ "couldNotLoad": "බිල්පත් තොරතුරු පූරණය කිරීමට නොහැකි විය", "manageOnWeb": "වෙබ් අඩවියේ බිල්පත් කළමනාකරණය කරන්න", "commitPlan": "Commit", - "daysLeft": "{{count}} දින ඉතිරියි", "earlybird": "Earlybird", "finalCommitTermEndsOn": "ඔබේ අවසන් Commit කාලය {{date}} දින අවසන් වේ. {{price}} මිලට Standard ලෙස දිගටම කරන්න, නැතහොත් hosting අවසන් වේ.", "freeTrial": "නොමිලේ අත්හදා බැලීම", "hostingEnds": "Hosting අවසන් වේ", - "oneDayLeft": "දින 1ක් ඉතිරියි", "renews": "අලුත් වේ", "standardMonthToMonth": "Standard මාසික", "standardStartsOn": "Standard {{date}} දින {{price}} මිලට ආරම්භ වේ.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} අවධානය අවශ්යයි: {{label}}", - "openUnreadOne": "{{name}} විවෘත කරන්න, {{count}} නොකියවූ පණිවිඩය", - "openUnreadMany": "{{name}} විවෘත කරන්න, {{count}} නොකියවූ පණිවිඩ", + "openUnread_one": "{{name}} විවෘත කරන්න, {{displayCount}} නොකියවූ පණිවිඩය", + "openUnread": "{{name}} විවෘත කරන්න, {{displayCount}} නොකියවූ පණිවිඩ", + "openUnread_other": "{{name}} විවෘත කරන්න, {{displayCount}} නොකියවූ පණිවිඩ", "open": "{{name}} විවෘත කරන්න", "openSettings": "{{name}} සඳහා සැකසුම් විවෘත කරන්න", "fixOnKiloAi": "kilo.ai හි විසඳන්න: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ස්වයං-ප්රතිකර්මය සක්රීය කරන්නද?", "enableAutoRemediationConfirmMessage": "Security Agent සුදුසුකම් ලත් සූරාකෑමට හැකි සොයා ගැනීම් සඳහා ප්රතිකර්ම PR ස්වයංක්රීයව විවෘත කරයි.", "enable": "සක්රීය කරන්න", - "queuedOne": "{{count}} පවතින සොයාගැනීමක් විශ්ලේෂණය සඳහා පෝලිම් කර ඇත.", - "queuedMany": "{{count}} පවතින සොයාගැනීම් විශ්ලේෂණය සඳහා පෝලිම් කර ඇත.", + "queued_one": "{{displayCount}} පවතින සොයාගැනීමක් විශ්ලේෂණය සඳහා පෝලිම් කර ඇත.", + "queued": "{{displayCount}} පවතින සොයාගැනීම් විශ්ලේෂණය සඳහා පෝලිම් කර ඇත.", + "queued_other": "{{displayCount}} පවතින සොයාගැනීම් විශ්ලේෂණය සඳහා පෝලිම් කර ඇත.", "severityCriticalOnly": "Critical පමණයි", "severityHighAndAbove": "High සහ ඊට ඉහළ", "severityMediumAndAbove": "Medium සහ ඊට ඉහළ", @@ -1482,8 +1490,9 @@ "on": "ක්රියාත්මකයි", "off": "ක්රියා විරහිතයි", "allRepositories": "සියලු ගබඩා", - "repositorySelected": "{{count}} ගබඩාවක් තේරුවා", - "repositoriesSelected": "{{count}} ගබඩා තේරුවා", + "repositoriesCount_one": "{{displayCount}} ගබඩාවක් තේරුවා", + "repositoriesCount": "{{displayCount}} ගබඩා තේරුවා", + "repositoriesCount_other": "{{displayCount}} ගබඩා තේරුවා", "selectRepositories": "ගබඩා තෝරන්න", "selectRepositoriesSubtitle": "Security Agent නිරීක්ෂණය කරන ගබඩා මොනවාද යන්න තෝරන්න", "repositories": "ගබඩා", @@ -1720,10 +1729,12 @@ "sessionDeleted": "සැසිය මකා ඇත", "needsInput": "ආදානය අවශ්යයි", "fromPlatform": "{{platform}} වෙතින්", - "centOne": "ශත", - "centOther": "ශත", - "dollarOne": "ඩොලරය", - "dollarOther": "ඩොලර්" + "cent_one": "ශත", + "cent": "ශත", + "cent_other": "ශත", + "dollar_one": "ඩොලරය", + "dollar": "ඩොලර්", + "dollar_other": "ඩොලර්" }, "githubInstall": { "couldNotOpenTitle": "GitHub විවෘත කළ නොහැක", @@ -1817,8 +1828,9 @@ "discardFailed": "කටු සටහන ඉවතලිය නොහැක. කරුණාකර නැවත උත්සාහ කරන්න." }, "partRenderer": { - "updatedFile": "{{count}} ගොනුවක් යාවත්කාලීන කර ඇත", - "updatedFiles": "{{count}} ගොනු යාවත්කාලීන කර ඇත" + "updatedFileCount_one": "{{displayCount}} ගොනුවක් යාවත්කාලීන කර ඇත", + "updatedFileCount": "{{displayCount}} ගොනු යාවත්කාලීන කර ඇත", + "updatedFileCount_other": "{{displayCount}} ගොනු යාවත්කාලීන කර ඇත" }, "toolPatch": { "operationAdded": "එකතු කර ඇත", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "පෙර පණිවිඩ පූරණය විය", "retryHint": "මෙම සැසිය සඳහා පැරණි පණිවිඩ පූරණය නැවත උත්සාහ කරයි.", - "omittedOne": "මෙම සැසියෙන් සමහර පෙර අයිතම ප්‍රදර්ශනය කළ නොහැකි විය.", - "omittedMany": "මෙම සැසියෙන් පෙර අයිතම {{count}} ක් ප්‍රදර්ශනය කළ නොහැකි විය.", + "omitted_one": "මෙම සැසියෙන් සමහර පෙර අයිතම ප්‍රදර්ශනය කළ නොහැකි විය.", + "omitted": "මෙම සැසියෙන් පෙර අයිතම {{displayCount}} ක් ප්‍රදර්ශනය කළ නොහැකි විය.", + "omitted_other": "මෙම සැසියෙන් පෙර අයිතම {{displayCount}} ක් ප්‍රදර්ශනය කළ නොහැකි විය.", "couldNotLoad": "පෙර පණිවිඩ පූරණය කළ නොහැකි විය.", "unavailable": "පෙර පණිවිඩ ලබා ගත නොහැක.", "tooLarge": "පූරණය කිරීමට පෙර පණිවිඩ ඉතා විශාලය." @@ -2069,10 +2082,12 @@ "viewTable": "වගුව බලන්න", "title": "වගුව", "close": "වගුව වසන්න", - "column": "තීරුව", - "columns": "තීරු", - "row": "පේළිය", - "rows": "පේළි", + "columnCount_one": "තීරුව", + "columnCount": "තීරු", + "columnCount_other": "තීරු", + "rowCount_one": "පේළිය", + "rowCount": "පේළි", + "rowCount_other": "පේළි", "opensFullScreen": "සම්පූර්ණ තිරය විවෘත කරයි" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ටෝකන {{window}} න්", "tokens": "ටෝකන", "tokensWithPercentage": "ටෝකන ({{percentage}})", - "stepsCountOne": "පියවර {{steps}} ක්", - "stepsCountMany": "පියවර {{steps}} ක්", + "stepsCount_one": "පියවර {{steps}} ක්", + "stepsCount": "පියවර {{steps}} ක්", + "stepsCount_other": "පියවර {{steps}} ක්", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "නව කේතීකරණ කාර්යය", "explore": "ගවේෂණය", "seeAll": "සියල්ල බලන්න", - "kiloAgents": "Kilo Agents", - "greetingMorning": "සුබ උදෑසනක්", - "greetingAfternoon": "සුබ දවාලක්", - "greetingEvening": "සුබ සැන්දෑවක්" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} වසන්න", @@ -2645,8 +2658,9 @@ "manageHint": "ජාලයේ Kilo Pass කළමනාකරණය විවෘත කරයි.", "notSubscribed": "දායක වී නොමැත", "overallocated": "Pass පැවරුම් ගෙවූ ආසන ඉක්මවයි", - "paidSeatOne": "ගෙවූ ආසනය {{count}} ක්", - "paidSeatOther": "ගෙවූ ආසන {{count}} ක්", + "paidSeat_one": "ගෙවූ ආසනය {{displayCount}} ක්", + "paidSeat": "ගෙවූ ආසන {{displayCount}} ක්", + "paidSeat_other": "ගෙවූ ආසන {{displayCount}} ක්", "paymentNeedsAttention": "ගෙවීමට අවධානය අවශ්‍යයි", "paymentPending": "ගෙවීම අපේක්ෂිතයි", "processingBlocked": "සැකසීම අවහිර විය", diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index 0951ce83c2..201cf82df8 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "Načítaných {{loaded}} z {{total}} súborov", "loadAllFiles": "Načítať všetky súbory", "loadAll": "Načítať všetko", - "fileLoaded": "Načítaný {{count}} súbor", - "filesLoaded": "Načítaných {{count}} súborov", - "fileLoadedOfTotal": "Načítaný {{count}} súbor z {{total}}", - "filesLoadedOfTotal": "Načítaných {{count}} súborov z {{total}}", + "fileLoadedCount_one": "Načítaný {{displayCount}} súbor", + "fileLoadedCount": "Načítaných {{displayCount}} súborov", + "fileLoadedCount_other": "Načítaných {{displayCount}} súborov", + "fileLoadedOfTotalCount_one": "Načítaný {{displayCount}} súbor z {{total}}", + "fileLoadedOfTotalCount": "Načítaných {{displayCount}} súborov z {{total}}", + "fileLoadedOfTotalCount_other": "Načítaných {{displayCount}} súborov z {{total}}", "filesStillLoading": "Súbory sa stále načítavajú. Potiahnutím obnovíte.", "goToOverview": "Prejsť na Prehľad", "goToOverviewTab": "Prejsť na kartu Prehľad" @@ -288,8 +290,9 @@ "resolved": "Vyriešené", "outdated": "Zastarané", "file": "Súbor", - "oneComment": "1 komentár", - "commentCount": "{{count}} komentárov", + "comment_one": "1 komentár", + "comment": "{{displayCount}} komentárov", + "comment_other": "{{displayCount}} komentárov", "startedRelative": " · začaté {{relative}}", "couldNotLoadMore": "Ďalšie komentáre sa nepodarilo načítať.", "retryLoadingMore": "Skúsiť načítať ďalšie komentáre znova", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakcie", "addReaction": "Pridať reakciu", "reactionPill": "{{emoji}} reakcia, {{count}} {{countLabel}}", - "reactionSingular": "reakcia", - "reactionPlural": "reakcie", + "reaction_one": "reakcia", + "reaction": "reakcie", + "reaction_other": "reakcie", "commentActions": "Akcie komentára", "reportContent": "Nahlásiť obsah", "reportUser": "Nahlásiť používateľa", @@ -452,8 +456,9 @@ "deletePendingMessage": "Tento komentár sa odstráni z frontu kontroly.", "delete": "Vymazať", "summaryOptional": "Zhrnutie (voliteľné)", - "pendingCommentSingular": "čakajúci komentár", - "pendingCommentPlural": "čakajúce komentáre", + "pendingComment_one": "čakajúci komentár", + "pendingComment": "čakajúce komentáre", + "pendingComment_other": "čakajúce komentáre", "submitCountOfTotal": "Odoslať {{freshCount}} z {{totalCount}} komentárov", "submitReview": "Odoslať kontrolu", "partialPostedMessage": "Odoslaných {{freshCount}} komentárov. {{staleCount}} komentárov smeruje na starší commit a zostalo vo vašom fronte." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Otvorené · Vyžadovaná kontrola", "stateOpen": "Otvorené", "unknownAuthor": "Neznámy autor", - "commitSingular": "commit", - "commitPlural": "commity", - "fileSingular": "súbor", - "filePlural": "súbory" + "commit_one": "commit", + "commit": "commity", + "commit_other": "commity", + "file_one": "súbor", + "file": "súbory", + "file_other": "súbory" }, "pendingComment": { "editOutdatedA11y": "Upraviť zastaraný čakajúci komentár na {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Niekto", - "oneTyping": "{{name}} píše…", - "manyTyping": "{{names}} píšu…" + "typing_one": "{{name}} píše…", + "typing": "{{names}} píšu…", + "typing_other": "{{names}} píšu…" }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Informácie o fakturácii sa nepodarilo načítať", "manageOnWeb": "Spravovať fakturáciu na webe", "commitPlan": "Commit", - "daysLeft": "Zostáva {{count}} dní", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Vaše konečné Commit obdobie končí {{date}}. Pokračujte ako Standard za {{price}}, inak hosting skončí.", "freeTrial": "Skúšobné obdobie zadarmo", "hostingEnds": "Hosting končí", - "oneDayLeft": "Zostáva 1 deň", "renews": "Obnovuje sa", "standardMonthToMonth": "Standard z mesiaca na mesiac", "standardStartsOn": "Standard začína {{date}} za {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} si vyžaduje pozornosť: {{label}}", - "openUnreadOne": "Otvoriť {{name}}, {{count}} neprečítaná správa", - "openUnreadMany": "Otvoriť {{name}}, {{count}} neprečítané správy", + "openUnread_one": "Otvoriť {{name}}, {{displayCount}} neprečítaná správa", + "openUnread": "Otvoriť {{name}}, {{displayCount}} neprečítané správy", + "openUnread_other": "Otvoriť {{name}}, {{displayCount}} neprečítané správy", "open": "Otvoriť {{name}}", "openSettings": "Otvoriť nastavenia pre {{name}}", "fixOnKiloAi": "Opraviť na kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Povoliť auto-nápravu?", "enableAutoRemediationConfirmMessage": "Security Agent automaticky otvorí PR na nápravu pre vhodné využiteľné nálezy.", "enable": "Povoliť", - "queuedOne": "{{count}} existujúci nález zaradený do analýzy.", - "queuedMany": "{{count}} existujúcich nálezov zaradených do analýzy.", + "queued_one": "{{displayCount}} existujúci nález zaradený do analýzy.", + "queued": "{{displayCount}} existujúcich nálezov zaradených do analýzy.", + "queued_other": "{{displayCount}} existujúcich nálezov zaradených do analýzy.", "severityCriticalOnly": "Iba kritické", "severityHighAndAbove": "Vysoké a vyššie", "severityMediumAndAbove": "Stredné a vyššie", @@ -1482,8 +1490,9 @@ "on": "Zapnuté", "off": "Vypnuté", "allRepositories": "Všetky repozitáre", - "repositorySelected": "Vybratý {{count}} repozitár", - "repositoriesSelected": "Vybratých {{count}} repozitárov", + "repositoriesCount_one": "Vybratý {{displayCount}} repozitár", + "repositoriesCount": "Vybratých {{displayCount}} repozitárov", + "repositoriesCount_other": "Vybratých {{displayCount}} repozitárov", "selectRepositories": "Vybrať repozitáre", "selectRepositoriesSubtitle": "Vyberte, ktoré repozitáre Security Agent monitoruje", "repositories": "Repozitáre", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sedenie odstránené", "needsInput": "vyžaduje vstup", "fromPlatform": "z {{platform}}", - "centOne": "cent", - "centOther": "centy", - "dollarOne": "dolár", - "dollarOther": "doláre" + "cent_one": "cent", + "cent": "centy", + "cent_other": "centy", + "dollar_one": "dolár", + "dollar": "doláre", + "dollar_other": "doláre" }, "githubInstall": { "couldNotOpenTitle": "GitHub sa nepodarilo otvoriť", @@ -1817,8 +1828,9 @@ "discardFailed": "Koncept sa nepodarilo zahodiť. Skúste to znova." }, "partRenderer": { - "updatedFile": "Aktualizovaný {{count}} súbor", - "updatedFiles": "Aktualizované {{count}} súbory" + "updatedFileCount_one": "Aktualizovaný {{displayCount}} súbor", + "updatedFileCount": "Aktualizované {{displayCount}} súbory", + "updatedFileCount_other": "Aktualizované {{displayCount}} súbory" }, "toolPatch": { "operationAdded": "Pridané", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Staršie správy sa načítali", "retryHint": "Znovu sa pokúsi načítať staršie správy pre túto reláciu.", - "omittedOne": "Niektoré staršie položky z tejto relácie sa nepodarilo zobraziť.", - "omittedMany": "{{count}} starších položiek z tejto relácie sa nepodarilo zobraziť.", + "omitted_one": "Niektoré staršie položky z tejto relácie sa nepodarilo zobraziť.", + "omitted": "{{displayCount}} starších položiek z tejto relácie sa nepodarilo zobraziť.", + "omitted_other": "{{displayCount}} starších položiek z tejto relácie sa nepodarilo zobraziť.", "couldNotLoad": "Staršie správy sa nepodarilo načítať.", "unavailable": "Staršie správy nie sú k dispozícii.", "tooLarge": "Staršie správy sú príliš veľké na načítanie." @@ -2069,10 +2082,12 @@ "viewTable": "Zobraziť tabuľku", "title": "Tabuľka", "close": "Zavrieť tabuľku", - "column": "stĺpec", - "columns": "stĺpce", - "row": "riadok", - "rows": "riadky", + "columnCount_one": "stĺpec", + "columnCount": "stĺpce", + "columnCount_other": "stĺpce", + "rowCount_one": "riadok", + "rowCount": "riadky", + "rowCount_other": "riadky", "opensFullScreen": "otvára na celú obrazovku" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "z {{window}} tokenov", "tokens": "tokenov", "tokensWithPercentage": "tokenov ({{percentage}})", - "stepsCountOne": "{{steps}} krok", - "stepsCountMany": "{{steps}} krokov", + "stepsCount_one": "{{steps}} krok", + "stepsCount": "{{steps}} krokov", + "stepsCount_other": "{{steps}} krokov", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nová programovacia úloha", "explore": "Preskúmať", "seeAll": "Zobraziť všetko", - "kiloAgents": "Agenti Kilo", - "greetingMorning": "Dobré ráno", - "greetingAfternoon": "Dobrý deň", - "greetingEvening": "Dobrý večer" + "kiloAgents": "Agenti Kilo" }, "imageViewer": { "close": "Zavrieť {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Otvorí správu Kilo Pass na webe.", "notSubscribed": "Bez predplatného", "overallocated": "Priradenia Pass presahujú platené miesta", - "paidSeatOne": "{{count}} platené miesto", - "paidSeatOther": "{{count}} platených miest", + "paidSeat_one": "{{displayCount}} platené miesto", + "paidSeat": "{{displayCount}} platených miest", + "paidSeat_other": "{{displayCount}} platených miest", "paymentNeedsAttention": "Platba si vyžaduje pozornosť", "paymentPending": "Platba čaká", "processingBlocked": "Spracovanie zablokované", diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index 5ed570fd8f..d8df7239a1 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} od {{total}} datotek naloženih", "loadAllFiles": "Naloži vse datoteke", "loadAll": "Naloži vse", - "fileLoaded": "{{count}} datoteka naložena", - "filesLoaded": "{{count}} datotek naloženih", - "fileLoadedOfTotal": "{{count}} datoteka naložena od {{total}}", - "filesLoadedOfTotal": "{{count}} datotek naloženih od {{total}}", + "fileLoadedCount_one": "{{displayCount}} datoteka naložena", + "fileLoadedCount": "{{displayCount}} datotek naloženih", + "fileLoadedCount_other": "{{displayCount}} datotek naloženih", + "fileLoadedOfTotalCount_one": "{{displayCount}} datoteka naložena od {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} datotek naloženih od {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} datotek naloženih od {{total}}", "filesStillLoading": "Datoteke se še nalagajo. Povlecite za osvežitev.", "goToOverview": "Pojdi na pregled", "goToOverviewTab": "Pojdi na zavihek pregled" @@ -288,8 +290,9 @@ "resolved": "Razrešeno", "outdated": "Zastarelo", "file": "Datoteka", - "oneComment": "1 komentar", - "commentCount": "{{count}} komentarjev", + "comment_one": "1 komentar", + "comment": "{{displayCount}} komentarjev", + "comment_other": "{{displayCount}} komentarjev", "startedRelative": " · začeto {{relative}}", "couldNotLoadMore": "Več komentarjev ni bilo mogoče naložiti.", "retryLoadingMore": "Poskusi znova naložiti več komentarjev", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakcijo", "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", - "reactionSingular": "reakcija", - "reactionPlural": "reakcij", + "reaction_one": "reakcija", + "reaction": "reakcij", + "reaction_other": "reakcij", "commentActions": "Dejanja komentarja", "reportContent": "Prijavi vsebino", "reportUser": "Prijavi uporabnika", @@ -452,8 +456,9 @@ "deletePendingMessage": "Ta komentar bo odstranjen iz čakalne vrste pregleda.", "delete": "Izbriši", "summaryOptional": "Povzetek (neobvezno)", - "pendingCommentSingular": "čakajoči komentar", - "pendingCommentPlural": "čakajoči komentarji", + "pendingComment_one": "čakajoči komentar", + "pendingComment": "čakajoči komentarji", + "pendingComment_other": "čakajoči komentarji", "submitCountOfTotal": "Pošlji {{freshCount}} od {{totalCount}} komentarjev", "submitReview": "Pošlji pregled", "partialPostedMessage": "Objavljenih {{freshCount}} komentarjev. {{staleCount}} komentarjev se nanaša na starejši commit in je ostalo v vaši čakalni vrsti." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Odprto · Zahtevan pregled", "stateOpen": "Odprto", "unknownAuthor": "Neznan avtor", - "commitSingular": "commit", - "commitPlural": "commit-i", - "fileSingular": "datoteka", - "filePlural": "datoteke" + "commit_one": "commit", + "commit": "commit-i", + "commit_other": "commit-i", + "file_one": "datoteka", + "file": "datoteke", + "file_other": "datoteke" }, "pendingComment": { "editOutdatedA11y": "Uredi zastareli čakajoči komentar na {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Nekdo", - "oneTyping": "{{name}} piše...", - "manyTyping": "{{names}} pišejo..." + "typing_one": "{{name}} piše...", + "typing": "{{names}} pišejo...", + "typing_other": "{{names}} pišejo..." }, "botStatus": { "online": "Na spletu", @@ -722,12 +730,10 @@ "couldNotLoad": "Nalaganje podatkov o zaračunavanju ni uspelo", "manageOnWeb": "Upravljaj zaračunavanje v spletu", "commitPlan": "Commit", - "daysLeft": "Preostalih {{count}} dni", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Vaše zadnje zavezano obdobje se konča {{date}}. Nadaljujte kot Standard po ceni {{price}}, sicer se gostovanje konča.", "freeTrial": "Brezplačno preizkusno obdobje", "hostingEnds": "Gostovanje se konča", - "oneDayLeft": "Preostal 1 dan", "renews": "Se podaljša", "standardMonthToMonth": "Standard iz meseca v mesec", "standardStartsOn": "Standard se začne {{date}} po ceni {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} potrebuje pozornost: {{label}}", - "openUnreadOne": "Odpri {{name}}, {{count}} neprebrano sporočilo", - "openUnreadMany": "Odpri {{name}}, {{count}} neprebranih sporočil", + "openUnread_one": "Odpri {{name}}, {{displayCount}} neprebrano sporočilo", + "openUnread": "Odpri {{name}}, {{displayCount}} neprebranih sporočil", + "openUnread_other": "Odpri {{name}}, {{displayCount}} neprebranih sporočil", "open": "Odpri {{name}}", "openSettings": "Odpri nastavitve za {{name}}", "fixOnKiloAi": "Popravi na kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Omogočim samodejno odpravljanje?", "enableAutoRemediationConfirmMessage": "Varnostni agent bo samodejno odprl PR za odpravljanje za upravičene izrabljive ugotovitve.", "enable": "Omogoči", - "queuedOne": "{{count}} obstoječa najdba čaka na analizo.", - "queuedMany": "{{count}} obstoječih najdb čaka na analizo.", + "queued_one": "{{displayCount}} obstoječa najdba čaka na analizo.", + "queued": "{{displayCount}} obstoječih najdb čaka na analizo.", + "queued_other": "{{displayCount}} obstoječih najdb čaka na analizo.", "severityCriticalOnly": "Samo kritično", "severityHighAndAbove": "Visoka in višja", "severityMediumAndAbove": "Srednja in višja", @@ -1482,8 +1490,9 @@ "on": "Vklopljeno", "off": "Izklopljeno", "allRepositories": "Vsa skladišča", - "repositorySelected": "Izbrano {{count}} skladišče", - "repositoriesSelected": "Izbranih {{count}} skladišč", + "repositoriesCount_one": "Izbrano {{displayCount}} skladišče", + "repositoriesCount": "Izbranih {{displayCount}} skladišč", + "repositoriesCount_other": "Izbranih {{displayCount}} skladišč", "selectRepositories": "Izberi skladišča", "selectRepositoriesSubtitle": "Izberi, katera skladišča spremlja varnostni agent", "repositories": "Skladišča", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Seja izbrisana", "needsInput": "potrebuje vnos", "fromPlatform": "iz {{platform}}", - "centOne": "cent", - "centOther": "centov", - "dollarOne": "dolar", - "dollarOther": "dolarjev" + "cent_one": "cent", + "cent": "centov", + "cent_other": "centov", + "dollar_one": "dolar", + "dollar": "dolarjev", + "dollar_other": "dolarjev" }, "githubInstall": { "couldNotOpenTitle": "GitHub ni bilo mogoče odpreti", @@ -1817,8 +1828,9 @@ "discardFailed": "Osnutka ni bilo mogoče zavreči. Poskusi znova." }, "partRenderer": { - "updatedFile": "Posodobljena {{count}} datoteka", - "updatedFiles": "Posodobljenih {{count}} datotek" + "updatedFileCount_one": "Posodobljena {{displayCount}} datoteka", + "updatedFileCount": "Posodobljenih {{displayCount}} datotek", + "updatedFileCount_other": "Posodobljenih {{displayCount}} datotek" }, "toolPatch": { "operationAdded": "Dodano", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Naložena so bila prejšnja sporočila", "retryHint": "Ponovno poskusi naložiti prejšnja sporočila za to sejo.", - "omittedOne": "Nekaterih prejšnjih elementov te seje ni bilo mogoče prikazati.", - "omittedMany": "{{count}} prejšnjih elementov te seje ni bilo mogoče prikazati.", + "omitted_one": "Nekaterih prejšnjih elementov te seje ni bilo mogoče prikazati.", + "omitted": "{{displayCount}} prejšnjih elementov te seje ni bilo mogoče prikazati.", + "omitted_other": "{{displayCount}} prejšnjih elementov te seje ni bilo mogoče prikazati.", "couldNotLoad": "Prejšnjih sporočil ni bilo mogoče naložiti.", "unavailable": "Prejšnja sporočila niso na voljo.", "tooLarge": "Prejšnja sporočila so prevelika za nalaganje." @@ -2069,10 +2082,12 @@ "viewTable": "Prikaži tabelo", "title": "Tabela", "close": "Zapri tabelo", - "column": "stolpec", - "columns": "stolpci", - "row": "vrstica", - "rows": "vrstice", + "columnCount_one": "stolpec", + "columnCount": "stolpci", + "columnCount_other": "stolpci", + "rowCount_one": "vrstica", + "rowCount": "vrstice", + "rowCount_other": "vrstice", "opensFullScreen": "odpre celozaslonski prikaz" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "od {{window}} žetonov", "tokens": "žetonov", "tokensWithPercentage": "žetonov ({{percentage}})", - "stepsCountOne": "{{steps}} korak", - "stepsCountMany": "{{steps}} korakov", + "stepsCount_one": "{{steps}} korak", + "stepsCount": "{{steps}} korakov", + "stepsCount_other": "{{steps}} korakov", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Nova naloga kodiranja", "explore": "Razišči", "seeAll": "Prikaži vse", - "kiloAgents": "Kilo Agenti", - "greetingMorning": "Dobro jutro", - "greetingAfternoon": "Dober dan", - "greetingEvening": "Dober večer" + "kiloAgents": "Kilo Agenti" }, "imageViewer": { "close": "Zapri {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Odpre upravljanje Kilo Passa na spletu.", "notSubscribed": "Ni naročnine", "overallocated": "Dodelitve Passa presegajo plačane sedeže", - "paidSeatOne": "{{count}} plačan sedež", - "paidSeatOther": "{{count}} plačanih sedežev", + "paidSeat_one": "{{displayCount}} plačan sedež", + "paidSeat": "{{displayCount}} plačanih sedežev", + "paidSeat_other": "{{displayCount}} plačanih sedežev", "paymentNeedsAttention": "Plačilo potrebuje pozornost", "paymentPending": "Plačilo čaka", "processingBlocked": "Obdelava blokirana", diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index c39b98862b..60e10271fb 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} ee {{total}} faylal waa la soo qaaday", "loadAllFiles": "Soo qaad faylasha oo dhan", "loadAll": "Wax walba soo qaad", - "fileLoaded": "{{count}} fayl waa la soo qaaday", - "filesLoaded": "{{count}} faylal waa la soo qaaday", - "fileLoadedOfTotal": "{{count}} fayl oo {{total}} ah waa la soo qaaday", - "filesLoadedOfTotal": "{{count}} faylal oo {{total}} ah waa la soo qaaday", + "fileLoadedCount_one": "{{displayCount}} fayl waa la soo qaaday", + "fileLoadedCount": "{{displayCount}} faylal waa la soo qaaday", + "fileLoadedCount_other": "{{displayCount}} faylal waa la soo qaaday", + "fileLoadedOfTotalCount_one": "{{displayCount}} fayl oo {{total}} ah waa la soo qaaday", + "fileLoadedOfTotalCount": "{{displayCount}} faylal oo {{total}} ah waa la soo qaaday", + "fileLoadedOfTotalCount_other": "{{displayCount}} faylal oo {{total}} ah waa la soo qaaday", "filesStillLoading": "Faylasha wali way soo qaadanayaan. Hoos u jiid si aad u cusbooneysiiso.", "goToOverview": "Tag Dulmarka", "goToOverviewTab": "Tag tab-ka Dulmarka" @@ -288,8 +290,9 @@ "resolved": "Waa la xalliyay", "outdated": "Waa duugoobay", "file": "Fayl", - "oneComment": "1 faallo", - "commentCount": "{{count}} faallooyin", + "comment_one": "1 faallo", + "comment": "{{displayCount}} faallooyin", + "comment_other": "{{displayCount}} faallooyin", "startedRelative": " · bilaabay {{relative}}", "couldNotLoadMore": "Faallooyin dheeri ah lama soo qaadin karin.", "retryLoadingMore": "Mar kale day soo qaadista faallooyin dheeri ah", @@ -299,8 +302,9 @@ "reactionsTitle": "Falcelinta", "addReaction": "Ku dar falcelin", "reactionPill": "{{emoji}} falcelin, {{count}} {{countLabel}}", - "reactionSingular": "falcelin", - "reactionPlural": "falcelino", + "reaction_one": "falcelin", + "reaction": "falcelino", + "reaction_other": "falcelino", "commentActions": "Falalka faallada", "reportContent": "Soo sheeg waxa ku qoran", "reportUser": "Soo sheeg isticmaalaha", @@ -452,8 +456,9 @@ "deletePendingMessage": "Faalladan waxaa laga saari doonaa safka dib-u-eegista.", "delete": "Tirtir", "summaryOptional": "Soo koobid (ikhtiyaari)", - "pendingCommentSingular": "faallo sugaysa", - "pendingCommentPlural": "faallooyin sugaya", + "pendingComment_one": "faallo sugaysa", + "pendingComment": "faallooyin sugaya", + "pendingComment_other": "faallooyin sugaya", "submitCountOfTotal": "Dir {{freshCount}} ee {{totalCount}} faallooyinka", "submitReview": "Dir dib-u-eegista", "partialPostedMessage": "Waxaa la diray {{freshCount}} faallo(yin). {{staleCount}} faallo(yin) ayaa tilmaamaya commit duug ah oo ku sii hadhay safkaaga." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Furan · Dib-u-eegis ayaa loo baahan yahay", "stateOpen": "Furan", "unknownAuthor": "Qoraa aan la aqoon", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fayl", - "filePlural": "faylal" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fayl", + "file": "faylal", + "file_other": "faylal" }, "pendingComment": { "editOutdatedA11y": "Faallada sugaysa ee duugga ah wax ka beddel {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Qof", - "oneTyping": "{{name}} wuu qorayaa...", - "manyTyping": "{{names}} way qorayaan..." + "typing_one": "{{name}} wuu qorayaa...", + "typing": "{{names}} way qorayaan...", + "typing_other": "{{names}} way qorayaan..." }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Macluumaadka billing lama soo dejin karin", "manageOnWeb": "Ku maaree Billing-ka on Web", "commitPlan": "Commit", - "daysLeft": "{{count}} maalmood ayaa harsan", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Muddadaada Commit-ka ugu dambaysa waxay ku dhammaanaysaa {{date}}. Ku sii soco Standard-ka {{price}}, ama hosting-ku wuu joogsanayaa.", "freeTrial": "Tijaabo bilaash", "hostingEnds": "Hosting wuu dhammaanayaa", - "oneDayLeft": "1 maalin ayaa harsan", "renews": "Way soo cusboonaataa", "standardMonthToMonth": "Standard bil-bil", "standardStartsOn": "Standard wuxuu bilaabmaa {{date}} qiimaha {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} wuxuu u baahan yahay fiiro: {{label}}", - "openUnreadOne": "Fur {{name}}, {{count}} farriin aan la aqrin", - "openUnreadMany": "Fur {{name}}, {{count}} farriimood oo aan la aqrin", + "openUnread_one": "Fur {{name}}, {{displayCount}} farriin aan la aqrin", + "openUnread": "Fur {{name}}, {{displayCount}} farriimood oo aan la aqrin", + "openUnread_other": "Fur {{name}}, {{displayCount}} farriimood oo aan la aqrin", "open": "Fur {{name}}", "openSettings": "Fur goobaha {{name}}", "fixOnKiloAi": "Ku xali kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Fur dayactirka otomaatigga ah?", "enableAutoRemediationConfirmMessage": "Security Agent wuxuu si otomaatig ah u furi doonaa PRs-ka dayactirka ee waxyaalaha halista ah ee la isticmaali karo.", "enable": "Fur", - "queuedOne": "{{count}} natiijo jirta ayaa safan falanqaynta.", - "queuedMany": "{{count}} natiijooyin jira ayaa safan falanqaynta.", + "queued_one": "{{displayCount}} natiijo jirta ayaa safan falanqaynta.", + "queued": "{{displayCount}} natiijooyin jira ayaa safan falanqaynta.", + "queued_other": "{{displayCount}} natiijooyin jira ayaa safan falanqaynta.", "severityCriticalOnly": "Kaliya muhiim", "severityHighAndAbove": "Sare iyo wixii ka sareeya", "severityMediumAndAbove": "Dhexdhexaad iyo wixii ka sareeya", @@ -1482,8 +1490,9 @@ "on": "Shidan", "off": "Dan", "allRepositories": "Dhammaan kaydka", - "repositorySelected": "{{count}} kayd oo la doortay", - "repositoriesSelected": "{{count}} kayd oo la doortay", + "repositoriesCount_one": "{{displayCount}} kayd oo la doortay", + "repositoriesCount": "{{displayCount}} kayd oo la doortay", + "repositoriesCount_other": "{{displayCount}} kayd oo la doortay", "selectRepositories": "Doorto kaydka", "selectRepositoriesSubtitle": "Doorto kaydka Security Agent la socdo", "repositories": "Kaydka", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Kalfadhiga waa la tirtiray", "needsInput": "u baahan wax-soo-gal", "fromPlatform": "ka {{platform}}", - "centOne": "senti", - "centOther": "senti", - "dollarOne": "doolar", - "dollarOther": "doolarro" + "cent_one": "senti", + "cent": "senti", + "cent_other": "senti", + "dollar_one": "doolar", + "dollar": "doolarro", + "dollar_other": "doolarro" }, "githubInstall": { "couldNotOpenTitle": "Lama furi karin GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Qabyada lama tuuri karin. Fadlan mar kale isku day." }, "partRenderer": { - "updatedFile": "{{count}} fayl ayaa la cusboonaysiiyay", - "updatedFiles": "{{count}} fayl ayaa la cusboonaysiiyay" + "updatedFileCount_one": "{{displayCount}} fayl ayaa la cusboonaysiiyay", + "updatedFileCount": "{{displayCount}} fayl ayaa la cusboonaysiiyay", + "updatedFileCount_other": "{{displayCount}} fayl ayaa la cusboonaysiiyay" }, "toolPatch": { "operationAdded": "La daray", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Fariimihii hore waa la soo dejiyay", "retryHint": "Mar kale isku dayda inay soo gudbiso fariimihii hore ee kalfadhigan.", - "omittedOne": "Qaar ka mid ah qaybihii hore ee kalfadhigan lama soo bandhigi karin.", - "omittedMany": "{{count}} qaybood oo hore oo kalfadhigan ah lama soo bandhigi karin.", + "omitted_one": "Qaar ka mid ah qaybihii hore ee kalfadhigan lama soo bandhigi karin.", + "omitted": "{{displayCount}} qaybood oo hore oo kalfadhigan ah lama soo bandhigi karin.", + "omitted_other": "{{displayCount}} qaybood oo hore oo kalfadhigan ah lama soo bandhigi karin.", "couldNotLoad": "Fariimihii hore lama soo dejin karin.", "unavailable": "Fariimihii hore ma heli karaan.", "tooLarge": "Fariimihii hore aad bay u waynaayeen in la soo dejiyo." @@ -2069,10 +2082,12 @@ "viewTable": "Fiiri shaxda", "title": "Shax", "close": "Xidh shaxda", - "column": "tiir", - "columns": "tiirar", - "row": "saf", - "rows": "safaf", + "columnCount_one": "tiir", + "columnCount": "tiirar", + "columnCount_other": "tiirar", + "rowCount_one": "saf", + "rowCount": "safaf", + "rowCount_other": "safaf", "opensFullScreen": "wuxuu furaa shaashad buuxda" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ka mid ah {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} tillaabo", - "stepsCountMany": "{{steps}} tillaabo", + "stepsCount_one": "{{steps}} tillaabo", + "stepsCount": "{{steps}} tillaabo", + "stepsCount_other": "{{steps}} tillaabo", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Hawshooda cusub ee codeynta", "explore": "Sahan", "seeAll": "Fiiri dhammaan", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Subax wanaagsan", - "greetingAfternoon": "Galab wanaagsan", - "greetingEvening": "Habeen wanaagsan" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Xidh {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Wuxuu furaa maareynta Kilo Pass web-ka.", "notSubscribed": "Ma isdiiwaangelin", "overallocated": "Qoondaynta Pass waxay ka badan tahay kuraasta la bixiyay", - "paidSeatOne": "{{count}} kursi la bixiyay", - "paidSeatOther": "{{count}} kuraas oo la bixiyay", + "paidSeat_one": "{{displayCount}} kursi la bixiyay", + "paidSeat": "{{displayCount}} kuraas oo la bixiyay", + "paidSeat_other": "{{displayCount}} kuraas oo la bixiyay", "paymentNeedsAttention": "Bixintu waxay u baahan tahay feejignaan", "paymentPending": "Bixinta waa la sugayaa", "processingBlocked": "Habayntu waa la xannibay", diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 9140c0d2ec..0dda6fa0d2 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} nga {{total}} skedarë të ngarkuar", "loadAllFiles": "Ngarko të gjithë skedarët", "loadAll": "Ngarko të gjitha", - "fileLoaded": "{{count}} skedar i ngarkuar", - "filesLoaded": "{{count}} skedarë të ngarkuar", - "fileLoadedOfTotal": "{{count}} skedar i ngarkuar nga {{total}}", - "filesLoadedOfTotal": "{{count}} skedarë të ngarkuar nga {{total}}", + "fileLoadedCount_one": "{{displayCount}} skedar i ngarkuar", + "fileLoadedCount": "{{displayCount}} skedarë të ngarkuar", + "fileLoadedCount_other": "{{displayCount}} skedarë të ngarkuar", + "fileLoadedOfTotalCount_one": "{{displayCount}} skedar i ngarkuar nga {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} skedarë të ngarkuar nga {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} skedarë të ngarkuar nga {{total}}", "filesStillLoading": "Skedarët po ngarkohen ende. Tërhiqe për të rifreskuar.", "goToOverview": "Shko te Përmbledhja", "goToOverviewTab": "Shko te skeda Përmbledhja" @@ -288,8 +290,9 @@ "resolved": "E zgjidhur", "outdated": "E vjetëruar", "file": "Skedari", - "oneComment": "1 koment", - "commentCount": "{{count}} komente", + "comment_one": "1 koment", + "comment": "{{displayCount}} komente", + "comment_other": "{{displayCount}} komente", "startedRelative": " · nisur {{relative}}", "couldNotLoadMore": "Nuk u arrit të ngarkoheshin më shumë komente.", "retryLoadingMore": "Riprovo ngarkimin e më shumë komenteve", @@ -299,8 +302,9 @@ "reactionsTitle": "Reagimet", "addReaction": "Shto reagim", "reactionPill": "{{emoji}} reagim, {{count}} {{countLabel}}", - "reactionSingular": "reagim", - "reactionPlural": "reagime", + "reaction_one": "reagim", + "reaction": "reagime", + "reaction_other": "reagime", "commentActions": "Veprimet e komentit", "reportContent": "Raporto përmbajtjen", "reportUser": "Raporto përdoruesin", @@ -452,8 +456,9 @@ "deletePendingMessage": "Ky koment do të hiqet nga radha e rishikimit.", "delete": "Fshi", "summaryOptional": "Përmbledhja (opsionale)", - "pendingCommentSingular": "koment në pritje", - "pendingCommentPlural": "komente në pritje", + "pendingComment_one": "koment në pritje", + "pendingComment": "komente në pritje", + "pendingComment_other": "komente në pritje", "submitCountOfTotal": "Dërgo {{freshCount}} nga {{totalCount}} komente", "submitReview": "Dërgo rishikimin", "partialPostedMessage": "U postuan {{freshCount}} koment(e). {{staleCount}} koment(e) tregojnë te një commit më i vjetër dhe mbetën në radhën tënde." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "E hapur · Kërkohet rishikim", "stateOpen": "E hapur", "unknownAuthor": "Autor i panjohur", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "skedar", - "filePlural": "skedarë" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "skedar", + "file": "skedarë", + "file_other": "skedarë" }, "pendingComment": { "editOutdatedA11y": "Redakto komentin në pritje të vjetëruar te {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Dikush", - "oneTyping": "{{name}} po shkruan...", - "manyTyping": "{{names}} po shkruajnë..." + "typing_one": "{{name}} po shkruan...", + "typing": "{{names}} po shkruajnë...", + "typing_other": "{{names}} po shkruajnë..." }, "botStatus": { "online": "Në linjë", @@ -722,12 +730,10 @@ "couldNotLoad": "Nuk u arrit të ngarkoheshin informacionet e faturimit", "manageOnWeb": "Menaxho Faturimin në Web", "commitPlan": "Angazhohu", - "daysLeft": "{{count}} ditë të mbetura", "earlybird": "Herët", "finalCommitTermEndsOn": "Afati yt përfundimtar i angazhimit përfundon më {{date}}. Vazhdo si Standard me {{price}}, ose hosting-u përfundon.", "freeTrial": "Provë Falas", "hostingEnds": "Hosting-u përfundon", - "oneDayLeft": "1 ditë e mbetur", "renews": "Rinovon", "standardMonthToMonth": "Standard muaj pas muaji", "standardStartsOn": "Standard fillon më {{date}} me {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} kërkon vëmendje: {{label}}", - "openUnreadOne": "Hap {{name}}, {{count}} mesazh i palexuar", - "openUnreadMany": "Hap {{name}}, {{count}} mesazhe të palexuara", + "openUnread_one": "Hap {{name}}, {{displayCount}} mesazh i palexuar", + "openUnread": "Hap {{name}}, {{displayCount}} mesazhe të palexuara", + "openUnread_other": "Hap {{name}}, {{displayCount}} mesazhe të palexuara", "open": "Hap {{name}}", "openSettings": "Hap cilësimet për {{name}}", "fixOnKiloAi": "Rregullo te kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Të aktivizohet korrigjimi automatik?", "enableAutoRemediationConfirmMessage": "Agjenti i Sigurisë do të hapë automatikisht PR korrigjimi për gjetjet e shfrytëzueshme që kualifikohen.", "enable": "Aktivizo", - "queuedOne": "{{count}} gjetje ekzistuese në radhë për analizë.", - "queuedMany": "{{count}} gjetje ekzistuese në radhë për analizë.", + "queued_one": "{{displayCount}} gjetje ekzistuese në radhë për analizë.", + "queued": "{{displayCount}} gjetje ekzistuese në radhë për analizë.", + "queued_other": "{{displayCount}} gjetje ekzistuese në radhë për analizë.", "severityCriticalOnly": "Vetëm kritike", "severityHighAndAbove": "E lartë dhe më lart", "severityMediumAndAbove": "E mesme dhe më lart", @@ -1482,8 +1490,9 @@ "on": "Aktiv", "off": "Çaktiv", "allRepositories": "Të gjitha depot", - "repositorySelected": "{{count}} depo e zgjedhur", - "repositoriesSelected": "{{count}} depo të zgjedhura", + "repositoriesCount_one": "{{displayCount}} depo e zgjedhur", + "repositoriesCount": "{{displayCount}} depo të zgjedhura", + "repositoriesCount_other": "{{displayCount}} depo të zgjedhura", "selectRepositories": "Zgjidhni depot", "selectRepositoriesSubtitle": "Zgjidhni cilat depo monitoron Security Agent", "repositories": "Depot", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Seanca u fshi", "needsInput": "ka nevojë për të dhëna", "fromPlatform": "nga {{platform}}", - "centOne": "cent", - "centOther": "centë", - "dollarOne": "dollar", - "dollarOther": "dollarë" + "cent_one": "cent", + "cent": "centë", + "cent_other": "centë", + "dollar_one": "dollar", + "dollar": "dollarë", + "dollar_other": "dollarë" }, "githubInstall": { "couldNotOpenTitle": "Nuk u hap GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Nuk u hoq drafti. Ju lutemi provoni përsëri." }, "partRenderer": { - "updatedFile": "U përditësua {{count}} skedar", - "updatedFiles": "U përditësuan {{count}} skedarë" + "updatedFileCount_one": "U përditësua {{displayCount}} skedar", + "updatedFileCount": "U përditësuan {{displayCount}} skedarë", + "updatedFileCount_other": "U përditësuan {{displayCount}} skedarë" }, "toolPatch": { "operationAdded": "U shtua", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "U ngarkuan mesazhet e mëparshme", "retryHint": "Riprovon ngarkimin e mesazheve të mëparshme për këtë seancë.", - "omittedOne": "Disa artikuj të mëparshëm nga kjo seancë nuk mund të shfaqeshin.", - "omittedMany": "{{count}} artikuj të mëparshëm nga kjo seancë nuk mund të shfaqeshin.", + "omitted_one": "Disa artikuj të mëparshëm nga kjo seancë nuk mund të shfaqeshin.", + "omitted": "{{displayCount}} artikuj të mëparshëm nga kjo seancë nuk mund të shfaqeshin.", + "omitted_other": "{{displayCount}} artikuj të mëparshëm nga kjo seancë nuk mund të shfaqeshin.", "couldNotLoad": "Mesazhet e mëparshme nuk u ngarkuan.", "unavailable": "Mesazhet e mëparshme nuk janë të disponueshme.", "tooLarge": "Mesazhet e mëparshme janë shumë të mëdha për t'u ngarkuar." @@ -2069,10 +2082,12 @@ "viewTable": "Shiko tabelën", "title": "Tabela", "close": "Mbyll tabelën", - "column": "kolona", - "columns": "kolonat", - "row": "rreshti", - "rows": "rreshtat", + "columnCount_one": "kolona", + "columnCount": "kolonat", + "columnCount_other": "kolonat", + "rowCount_one": "rreshti", + "rowCount": "rreshtat", + "rowCount_other": "rreshtat", "opensFullScreen": "hap në ekran të plotë" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "nga {{window}} tokenët", "tokens": "tokenë", "tokensWithPercentage": "tokenë ({{percentage}})", - "stepsCountOne": "{{steps}} hap", - "stepsCountMany": "{{steps}} hapa", + "stepsCount_one": "{{steps}} hap", + "stepsCount": "{{steps}} hapa", + "stepsCount_other": "{{steps}} hapa", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Detyrë e re kodimi", "explore": "Eksploro", "seeAll": "Shiko të gjitha", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Mirëmëngjes", - "greetingAfternoon": "Mirëdita", - "greetingEvening": "Mirëmbrëma" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Mbyll {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Hap menaxhimin e Kilo Pass në ueb.", "notSubscribed": "I paabonuar", "overallocated": "Caktimet e Pass tejkalojnë vendet e paguara", - "paidSeatOne": "{{count}} vend i paguar", - "paidSeatOther": "{{count}} vende të paguara", + "paidSeat_one": "{{displayCount}} vend i paguar", + "paidSeat": "{{displayCount}} vende të paguara", + "paidSeat_other": "{{displayCount}} vende të paguara", "paymentNeedsAttention": "Pagesa ka nevojë për vëmendje", "paymentPending": "Pagesa në pritje", "processingBlocked": "Përpunimi i bllokuar", diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index c7b34687bf..d97f762b38 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} od {{total}} datoteka učitano", "loadAllFiles": "Učitaj sve datoteke", "loadAll": "Učitaj sve", - "fileLoaded": "{{count}} datoteka učitana", - "filesLoaded": "{{count}} datoteka učitano", - "fileLoadedOfTotal": "{{count}} datoteka učitana od {{total}}", - "filesLoadedOfTotal": "{{count}} datoteka učitano od {{total}}", + "fileLoadedCount_one": "{{displayCount}} datoteka učitana", + "fileLoadedCount": "{{displayCount}} datoteka učitano", + "fileLoadedCount_other": "{{displayCount}} datoteka učitano", + "fileLoadedOfTotalCount_one": "{{displayCount}} datoteka učitana od {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} datoteka učitano od {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} datoteka učitano od {{total}}", "filesStillLoading": "Datoteke se još učitavaju. Prevucite da osvežite.", "goToOverview": "Idi na Pregled", "goToOverviewTab": "Idi na karticu Pregled" @@ -288,8 +290,9 @@ "resolved": "Rešeno", "outdated": "Zastarelo", "file": "Datoteka", - "oneComment": "1 komentar", - "commentCount": "{{count}} komentara", + "comment_one": "1 komentar", + "comment": "{{displayCount}} komentara", + "comment_other": "{{displayCount}} komentara", "startedRelative": " · započeto {{relative}}", "couldNotLoadMore": "Nije moguće učitati još komentara.", "retryLoadingMore": "Pokušaj ponovo učitavanje još komentara", @@ -299,8 +302,9 @@ "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakciju", "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", - "reactionSingular": "reakcija", - "reactionPlural": "reakcije", + "reaction_one": "reakcija", + "reaction": "reakcije", + "reaction_other": "reakcije", "commentActions": "Akcije komentara", "reportContent": "Prijavi sadržaj", "reportUser": "Prijavi korisnika", @@ -452,8 +456,9 @@ "deletePendingMessage": "Ovaj komentar će biti uklonjen iz reda pregleda.", "delete": "Obriši", "summaryOptional": "Sažetak (opciono)", - "pendingCommentSingular": "čekajući komentar", - "pendingCommentPlural": "čekajući komentari", + "pendingComment_one": "čekajući komentar", + "pendingComment": "čekajući komentari", + "pendingComment_other": "čekajući komentari", "submitCountOfTotal": "Pošalji {{freshCount}} od {{totalCount}} komentara", "submitReview": "Pošalji pregled", "partialPostedMessage": "Poslato {{freshCount}} komentar(a). {{staleCount}} komentar(a) se odnose na stariji commit i ostala su u vašem redu." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Otvoreno · Pregled obavezan", "stateOpen": "Otvoreno", "unknownAuthor": "Nepoznat autor", - "commitSingular": "commit", - "commitPlural": "commit-ovi", - "fileSingular": "datoteka", - "filePlural": "datoteke" + "commit_one": "commit", + "commit": "commit-ovi", + "commit_other": "commit-ovi", + "file_one": "datoteka", + "file": "datoteke", + "file_other": "datoteke" }, "pendingComment": { "editOutdatedA11y": "Izmeni zastareli čekajući komentar na {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Neko", - "oneTyping": "{{name}} kuca...", - "manyTyping": "{{names}} kucaju..." + "typing_one": "{{name}} kuca...", + "typing": "{{names}} kucaju...", + "typing_other": "{{names}} kucaju..." }, "botStatus": { "online": "Na mreži", @@ -722,12 +730,10 @@ "couldNotLoad": "Nije moguće učitati informacije o naplati", "manageOnWeb": "Upravljaj naplatom na webu", "commitPlan": "Obaveza", - "daysLeft": "Preostalo {{count}} dana", "earlybird": "Rana ptica", "finalCommitTermEndsOn": "Tvoj konačni rok obaveze završava se {{date}}. Nastavi kao Standard po ceni {{price}}, ili se hosting završava.", "freeTrial": "Besplatno probno razdoblje", "hostingEnds": "Hosting se završava", - "oneDayLeft": "Preostao 1 dan", "renews": "Obnavlja se", "standardMonthToMonth": "Standard iz meseca u mesec", "standardStartsOn": "Standard počinje {{date}} po ceni {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} zahteva pažnju: {{label}}", - "openUnreadOne": "Otvori {{name}}, {{count}} nepročitana poruka", - "openUnreadMany": "Otvori {{name}}, {{count}} nepročitanih poruka", + "openUnread_one": "Otvori {{name}}, {{displayCount}} nepročitana poruka", + "openUnread": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", + "openUnread_other": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", "open": "Otvori {{name}}", "openSettings": "Otvori podešavanja za {{name}}", "fixOnKiloAi": "Reši na kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Omogući auto-sanaciju?", "enableAutoRemediationConfirmMessage": "Security Agent će automatski otvarati sanacione PR-ove za prihvatljive iskoristive nalaze.", "enable": "Omogući", - "queuedOne": "{{count}} postojeći nalaz je u redu za analizu.", - "queuedMany": "{{count}} postojećih nalaza je u redu za analizu.", + "queued_one": "{{displayCount}} postojeći nalaz je u redu za analizu.", + "queued": "{{displayCount}} postojećih nalaza je u redu za analizu.", + "queued_other": "{{displayCount}} postojećih nalaza je u redu za analizu.", "severityCriticalOnly": "Samo kritično", "severityHighAndAbove": "Visoko i više", "severityMediumAndAbove": "Srednje i više", @@ -1482,8 +1490,9 @@ "on": "Uključeno", "off": "Isključeno", "allRepositories": "Svi repozitorijumi", - "repositorySelected": "{{count}} repozitorijum je izabran", - "repositoriesSelected": "{{count}} repozitorijuma je izabrano", + "repositoriesCount_one": "{{displayCount}} repozitorijum je izabran", + "repositoriesCount": "{{displayCount}} repozitorijuma je izabrano", + "repositoriesCount_other": "{{displayCount}} repozitorijuma je izabrano", "selectRepositories": "Izaberi repozitorijume", "selectRepositoriesSubtitle": "Izaberi koje repozitorijume Security Agent prati", "repositories": "Repozitorijumi", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sesija je obrisana", "needsInput": "zahteva unos", "fromPlatform": "iz {{platform}}", - "centOne": "cent", - "centOther": "centi", - "dollarOne": "dolar", - "dollarOther": "dolara" + "cent_one": "cent", + "cent": "centi", + "cent_other": "centi", + "dollar_one": "dolar", + "dollar": "dolara", + "dollar_other": "dolara" }, "githubInstall": { "couldNotOpenTitle": "GitHub se ne može otvoriti", @@ -1817,8 +1828,9 @@ "discardFailed": "Nacrt se ne može odbaciti. Pokušaj ponovo." }, "partRenderer": { - "updatedFile": "Ažuriran {{count}} fajl", - "updatedFiles": "Ažurirano {{count}} fajlova" + "updatedFileCount_one": "Ažuriran {{displayCount}} fajl", + "updatedFileCount": "Ažurirano {{displayCount}} fajlova", + "updatedFileCount_other": "Ažurirano {{displayCount}} fajlova" }, "toolPatch": { "operationAdded": "Dodato", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ranije poruke učitane", "retryHint": "Pokušava ponovo da učita starije poruke za ovu sesiju.", - "omittedOne": "Neke ranije stavke iz ove sesije nisu mogle biti prikazane.", - "omittedMany": "{{count}} ranijih stavki iz ove sesije nije moglo biti prikazano.", + "omitted_one": "Neke ranije stavke iz ove sesije nisu mogle biti prikazane.", + "omitted": "{{displayCount}} ranijih stavki iz ove sesije nije moglo biti prikazano.", + "omitted_other": "{{displayCount}} ranijih stavki iz ove sesije nije moglo biti prikazano.", "couldNotLoad": "Učitavanje ranijih poruka nije uspelo.", "unavailable": "Ranije poruke nisu dostupne.", "tooLarge": "Ranije poruke su prevelike za učitavanje." @@ -2069,10 +2082,12 @@ "viewTable": "Prikaži tabelu", "title": "Tabela", "close": "Zatvori tabelu", - "column": "kolona", - "columns": "kolone", - "row": "red", - "rows": "redovi", + "columnCount_one": "kolona", + "columnCount": "kolone", + "columnCount_other": "kolone", + "rowCount_one": "red", + "rowCount": "redovi", + "rowCount_other": "redovi", "opensFullScreen": "otvara ceo ekran" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "od {{window}} tokena", "tokens": "tokena", "tokensWithPercentage": "tokena ({{percentage}})", - "stepsCountOne": "{{steps}} korak", - "stepsCountMany": "{{steps}} koraka", + "stepsCount_one": "{{steps}} korak", + "stepsCount": "{{steps}} koraka", + "stepsCount_other": "{{steps}} koraka", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Novi zadatak kodiranja", "explore": "Istraži", "seeAll": "Vidi sve", - "kiloAgents": "Kilo Agenti", - "greetingMorning": "Dobro jutro", - "greetingAfternoon": "Dobar dan", - "greetingEvening": "Dobro veče" + "kiloAgents": "Kilo Agenti" }, "imageViewer": { "close": "Zatvori {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Otvara upravljanje Kilo Pass-om na vebu.", "notSubscribed": "Nije pretplaćen", "overallocated": "Dodeljivanja Pass-a premašuju plaćena mesta", - "paidSeatOne": "{{count}} plaćeno mesto", - "paidSeatOther": "{{count}} plaćenih mesta", + "paidSeat_one": "{{displayCount}} plaćeno mesto", + "paidSeat": "{{displayCount}} plaćenih mesta", + "paidSeat_other": "{{displayCount}} plaćenih mesta", "paymentNeedsAttention": "Plaćanje zahteva pažnju", "paymentPending": "Plaćanje na čekanju", "processingBlocked": "Obrada blokirana", diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index 5bac32be87..e26236c839 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} av {{total}} filer inlästa", "loadAllFiles": "Läs in alla filer", "loadAll": "Läs in allt", - "fileLoaded": "{{count}} fil inläst", - "filesLoaded": "{{count}} filer inlästa", - "fileLoadedOfTotal": "{{count}} fil inläst av {{total}}", - "filesLoadedOfTotal": "{{count}} filer inlästa av {{total}}", + "fileLoadedCount_one": "{{displayCount}} fil inläst", + "fileLoadedCount": "{{displayCount}} filer inlästa", + "fileLoadedCount_other": "{{displayCount}} filer inlästa", + "fileLoadedOfTotalCount_one": "{{displayCount}} fil inläst av {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} filer inlästa av {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} filer inlästa av {{total}}", "filesStillLoading": "Filer läses fortfarande in. Dra nedåt för att uppdatera.", "goToOverview": "Gå till översikt", "goToOverviewTab": "Gå till översiktsfliken" @@ -288,8 +290,9 @@ "resolved": "Löst", "outdated": "Föråldrad", "file": "Fil", - "oneComment": "1 kommentar", - "commentCount": "{{count}} kommentarer", + "comment_one": "1 kommentar", + "comment": "{{displayCount}} kommentarer", + "comment_other": "{{displayCount}} kommentarer", "startedRelative": " · startade {{relative}}", "couldNotLoadMore": "Kunde inte läsa in fler kommentarer.", "retryLoadingMore": "Försök läsa in fler kommentarer igen", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaktioner", "addReaction": "Lägg till reaktion", "reactionPill": "{{emoji}}-reaktion, {{count}} {{countLabel}}", - "reactionSingular": "reaktion", - "reactionPlural": "reaktioner", + "reaction_one": "reaktion", + "reaction": "reaktioner", + "reaction_other": "reaktioner", "commentActions": "Kommentaråtgärder", "reportContent": "Rapportera innehåll", "reportUser": "Rapportera användare", @@ -452,8 +456,9 @@ "deletePendingMessage": "Den här kommentaren tas bort från granskningskön.", "delete": "Ta bort", "summaryOptional": "Sammanfattning (valfritt)", - "pendingCommentSingular": "väntande kommentar", - "pendingCommentPlural": "väntande kommentarer", + "pendingComment_one": "väntande kommentar", + "pendingComment": "väntande kommentarer", + "pendingComment_other": "väntande kommentarer", "submitCountOfTotal": "Skicka {{freshCount}} av {{totalCount}} kommentarer", "submitReview": "Skicka granskning", "partialPostedMessage": "Skickade {{freshCount}} kommentar(er). {{staleCount}} kommentar(er) pekar på en äldre commit och blev kvar i kön." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Öppen · Granskning krävs", "stateOpen": "Öppen", "unknownAuthor": "Okänd författare", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "fil", - "filePlural": "filer" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "fil", + "file": "filer", + "file_other": "filer" }, "pendingComment": { "editOutdatedA11y": "Redigera föråldrad väntande kommentar på {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Någon", - "oneTyping": "{{name}} skriver…", - "manyTyping": "{{names}} skriver…" + "typing_one": "{{name}} skriver…", + "typing": "{{names}} skriver…", + "typing_other": "{{names}} skriver…" }, "botStatus": { "online": "Online", @@ -722,12 +730,10 @@ "couldNotLoad": "Kunde inte läsa in faktureringsinformation", "manageOnWeb": "Hantera fakturering på webben", "commitPlan": "Förbinda", - "daysLeft": "{{count}} dagar kvar", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Din sista Commit-period slutar {{date}}. Fortsätt som Standard till {{price}}, annars upphör värdtjänsten.", "freeTrial": "Gratis provperiod", "hostingEnds": "Värdtjänsten upphör", - "oneDayLeft": "1 dag kvar", "renews": "Förnyas", "standardMonthToMonth": "Standard månadsvis", "standardStartsOn": "Standard börjar {{date}} till {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} kräver uppmärksamhet: {{label}}", - "openUnreadOne": "Öppna {{name}}, {{count}} oläst meddelande", - "openUnreadMany": "Öppna {{name}}, {{count}} olästa meddelanden", + "openUnread_one": "Öppna {{name}}, {{displayCount}} oläst meddelande", + "openUnread": "Öppna {{name}}, {{displayCount}} olästa meddelanden", + "openUnread_other": "Öppna {{name}}, {{displayCount}} olästa meddelanden", "open": "Öppna {{name}}", "openSettings": "Öppna inställningar för {{name}}", "fixOnKiloAi": "Åtgärda på kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Aktivera automatisk åtgärd?", "enableAutoRemediationConfirmMessage": "Säkerhetsagenten öppnar åtgärds-PR:er automatiskt för kvalificerade utnyttjningsbara fynd.", "enable": "Aktivera", - "queuedOne": "{{count}} befintlig finding köad för analys.", - "queuedMany": "{{count}} befintliga findings köade för analys.", + "queued_one": "{{displayCount}} befintlig finding köad för analys.", + "queued": "{{displayCount}} befintliga findings köade för analys.", + "queued_other": "{{displayCount}} befintliga findings köade för analys.", "severityCriticalOnly": "Endast kritiska", "severityHighAndAbove": "Hög och över", "severityMediumAndAbove": "Medel och över", @@ -1482,8 +1490,9 @@ "on": "På", "off": "Av", "allRepositories": "Alla arkiv", - "repositorySelected": "{{count}} arkiv valt", - "repositoriesSelected": "{{count}} arkiv valda", + "repositoriesCount_one": "{{displayCount}} arkiv valt", + "repositoriesCount": "{{displayCount}} arkiv valda", + "repositoriesCount_other": "{{displayCount}} arkiv valda", "selectRepositories": "Välj arkiv", "selectRepositoriesSubtitle": "Välj vilka arkiv Security Agent övervakar", "repositories": "Arkiv", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Session borttagen", "needsInput": "kräver indata", "fromPlatform": "från {{platform}}", - "centOne": "cent", - "centOther": "cent", - "dollarOne": "dollar", - "dollarOther": "dollar" + "cent_one": "cent", + "cent": "cent", + "cent_other": "cent", + "dollar_one": "dollar", + "dollar": "dollar", + "dollar_other": "dollar" }, "githubInstall": { "couldNotOpenTitle": "Kunde inte öppna GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Kunde inte ignorera utkastet. Försök igen." }, "partRenderer": { - "updatedFile": "Uppdaterade {{count}} fil", - "updatedFiles": "Uppdaterade {{count}} filer" + "updatedFileCount_one": "Uppdaterade {{displayCount}} fil", + "updatedFileCount": "Uppdaterade {{displayCount}} filer", + "updatedFileCount_other": "Uppdaterade {{displayCount}} filer" }, "toolPatch": { "operationAdded": "Tillagd", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Tidigare meddelanden lästes in", "retryHint": "Försöker igen att läsa in tidigare meddelanden för denna session.", - "omittedOne": "Vissa tidigare objekt från denna session kunde inte visas.", - "omittedMany": "{{count}} tidigare objekt från denna session kunde inte visas.", + "omitted_one": "Vissa tidigare objekt från denna session kunde inte visas.", + "omitted": "{{displayCount}} tidigare objekt från denna session kunde inte visas.", + "omitted_other": "{{displayCount}} tidigare objekt från denna session kunde inte visas.", "couldNotLoad": "Det gick inte att läsa in tidigare meddelanden.", "unavailable": "Tidigare meddelanden är inte tillgängliga.", "tooLarge": "Tidigare meddelanden är för stora för att läsas in." @@ -2069,10 +2082,12 @@ "viewTable": "Visa tabell", "title": "Tabell", "close": "Stäng tabell", - "column": "kolumn", - "columns": "kolumner", - "row": "rad", - "rows": "rader", + "columnCount_one": "kolumn", + "columnCount": "kolumner", + "columnCount_other": "kolumner", + "rowCount_one": "rad", + "rowCount": "rader", + "rowCount_other": "rader", "opensFullScreen": "öppnar helskärm" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "av {{window}} token", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} steg", - "stepsCountMany": "{{steps}} steg", + "stepsCount_one": "{{steps}} steg", + "stepsCount": "{{steps}} steg", + "stepsCount_other": "{{steps}} steg", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Ny kodningsuppgift", "explore": "Utforska", "seeAll": "Visa alla", - "kiloAgents": "Kilo-agenter", - "greetingMorning": "God morgon", - "greetingAfternoon": "God eftermiddag", - "greetingEvening": "God kväll" + "kiloAgents": "Kilo-agenter" }, "imageViewer": { "close": "Stäng {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Öppnar Kilo Pass-hanteringen på webben.", "notSubscribed": "Inte prenumererad", "overallocated": "Pass-tilldelningar överstiger betalda platser", - "paidSeatOne": "{{count}} betald plats", - "paidSeatOther": "{{count}} betalda platser", + "paidSeat_one": "{{displayCount}} betald plats", + "paidSeat": "{{displayCount}} betalda platser", + "paidSeat_other": "{{displayCount}} betalda platser", "paymentNeedsAttention": "Betalningen kräver uppmärksamhet", "paymentPending": "Betalningen väntar", "processingBlocked": "Bearbetningen blockerad", diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index d156ab7684..53b36e5766 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} kati ya {{total}} faili zimepakiwa", "loadAllFiles": "Pakia faili zote", "loadAll": "Pakia zote", - "fileLoaded": "Faili {{count}} imepakiwa", - "filesLoaded": "Faili {{count}} zimepakiwa", - "fileLoadedOfTotal": "Faili {{count}} imepakiwa kati ya {{total}}", - "filesLoadedOfTotal": "Faili {{count}} zimepakiwa kati ya {{total}}", + "fileLoadedCount_one": "Faili {{displayCount}} imepakiwa", + "fileLoadedCount": "Faili {{displayCount}} zimepakiwa", + "fileLoadedCount_other": "Faili {{displayCount}} zimepakiwa", + "fileLoadedOfTotalCount_one": "Faili {{displayCount}} imepakiwa kati ya {{total}}", + "fileLoadedOfTotalCount": "Faili {{displayCount}} zimepakiwa kati ya {{total}}", + "fileLoadedOfTotalCount_other": "Faili {{displayCount}} zimepakiwa kati ya {{total}}", "filesStillLoading": "Faili bado zinapakia. Buruta ili kusasisha.", "goToOverview": "Nenda kwa Muhtasari", "goToOverviewTab": "Nenda kwenye kichupo cha Muhtasari" @@ -288,8 +290,9 @@ "resolved": "Imesuluhishwa", "outdated": "Umeisha muda", "file": "Faili", - "oneComment": "Maoni 1", - "commentCount": "Maoni {{count}}", + "comment_one": "Maoni 1", + "comment": "Maoni {{displayCount}}", + "comment_other": "Maoni {{displayCount}}", "startedRelative": " · ilianzishwa {{relative}}", "couldNotLoadMore": "Imeshindwa kupakia maoni zaidi.", "retryLoadingMore": "Jaribu tena kupakia maoni zaidi", @@ -299,8 +302,9 @@ "reactionsTitle": "Miitikio", "addReaction": "Ongeza mwitikio", "reactionPill": "{{emoji}} mwitikio, {{count}} {{countLabel}}", - "reactionSingular": "mwitikio", - "reactionPlural": "miitikio", + "reaction_one": "mwitikio", + "reaction": "miitikio", + "reaction_other": "miitikio", "commentActions": "Vitendo vya maoni", "reportContent": "Ripoti maudhui", "reportUser": "Ripoti mtumiaji", @@ -452,8 +456,9 @@ "deletePendingMessage": "Maoni haya yataondolewa kutoka foleni ya ukaguzi.", "delete": "Futa", "summaryOptional": "Muhtasari (hiari)", - "pendingCommentSingular": "maoni ya kusubiri", - "pendingCommentPlural": "maoni ya kusubiri", + "pendingComment_one": "maoni ya kusubiri", + "pendingComment": "maoni ya kusubiri", + "pendingComment_other": "maoni ya kusubiri", "submitCountOfTotal": "Wasilisha {{freshCount}} kati ya {{totalCount}} maoni", "submitReview": "Wasilisha ukaguzi", "partialPostedMessage": "Umetuma maoni {{freshCount}}. Maoni {{staleCount}} yanaelekeza kwenye commit la zamani na yalibaki kwenye foleni yako." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Funguliwa · Ukaguzi unahitajika", "stateOpen": "Funguliwa", "unknownAuthor": "Mwandishi asiyejulikana", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "faili", - "filePlural": "faili" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "faili", + "file": "faili", + "file_other": "faili" }, "pendingComment": { "editOutdatedA11y": "Hariri maoni ya zamani ya kusubiri kwenye {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Mtu", - "oneTyping": "{{name}} anaandika...", - "manyTyping": "{{names}} wanaandika..." + "typing_one": "{{name}} anaandika...", + "typing": "{{names}} wanaandika...", + "typing_other": "{{names}} wanaandika..." }, "botStatus": { "online": "Mtandaoni", @@ -722,12 +730,10 @@ "couldNotLoad": "Imeshindwa kupakia taarifa za malipo", "manageOnWeb": "Simamia Malipo kwenye Wavuti", "commitPlan": "Jitolee", - "daysLeft": "{{count}} siku zimebaki", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Muda wako wa mwisho wa Commit unaisha {{date}}. Endelea kama Standard kwa {{price}}, au upangaji unaisha.", "freeTrial": "Jaribio Bure", "hostingEnds": "Upangaji unaisha", - "oneDayLeft": "Siku 1 imebaki", "renews": "Inafanywa upya", "standardMonthToMonth": "Standard mwezi hadi mwezi", "standardStartsOn": "Standard inaanza {{date}} kwa {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} anahitaji uangalizi: {{label}}", - "openUnreadOne": "Fungua {{name}}, ujumbe {{count}} ambao haujasomwa", - "openUnreadMany": "Fungua {{name}}, ujumbe {{count}} ambao haujasomwa", + "openUnread_one": "Fungua {{name}}, ujumbe {{displayCount}} ambao haujasomwa", + "openUnread": "Fungua {{name}}, ujumbe {{displayCount}} ambao haujasomwa", + "openUnread_other": "Fungua {{name}}, ujumbe {{displayCount}} ambao haujasomwa", "open": "Fungua {{name}}", "openSettings": "Fungua mipangilio ya {{name}}", "fixOnKiloAi": "Suluhisha kwenye kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Washa matengenezo ya kiotomatiki?", "enableAutoRemediationConfirmMessage": "Security Agent itafungua PR za matengenezo kiotomatiki kwa matokeo yanayofaa na yanayoweza kutumiwa vibaya.", "enable": "Washa", - "queuedOne": "{{count}} matokeo yaliyopo yamepangwa kwa uchambuzi", - "queuedMany": "{{count}} matokeo yaliyopo yamepangwa kwa uchambuzi", + "queued_one": "{{displayCount}} matokeo yaliyopo yamepangwa kwa uchambuzi", + "queued": "{{displayCount}} matokeo yaliyopo yamepangwa kwa uchambuzi", + "queued_other": "{{displayCount}} matokeo yaliyopo yamepangwa kwa uchambuzi", "severityCriticalOnly": "Kikubwa tu", "severityHighAndAbove": "Juu na kuendelea", "severityMediumAndAbove": "Kati na kuendelea", @@ -1482,8 +1490,9 @@ "on": "Washa", "off": "Zima", "allRepositories": "Hazina zote", - "repositorySelected": "Hazina {{count}} imechaguliwa", - "repositoriesSelected": "Hazina {{count}} zimechaguliwa", + "repositoriesCount_one": "Hazina {{displayCount}} imechaguliwa", + "repositoriesCount": "Hazina {{displayCount}} zimechaguliwa", + "repositoriesCount_other": "Hazina {{displayCount}} zimechaguliwa", "selectRepositories": "Chagua hazina", "selectRepositoriesSubtitle": "Chagua hazina ambazo Security Agent hufuatilia", "repositories": "Hazina", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Kikao kimefutwa", "needsInput": "inahitaji maelezo", "fromPlatform": "kutoka {{platform}}", - "centOne": "senti", - "centOther": "senti", - "dollarOne": "dola", - "dollarOther": "dola" + "cent_one": "senti", + "cent": "senti", + "cent_other": "senti", + "dollar_one": "dola", + "dollar": "dola", + "dollar_other": "dola" }, "githubInstall": { "couldNotOpenTitle": "Haikuweza kufungua GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Haikuweza kutupa rasimu. Jaribu tena." }, "partRenderer": { - "updatedFile": "Imesasisha faili {{count}}", - "updatedFiles": "Imesasisha faili {{count}}" + "updatedFileCount_one": "Imesasisha faili {{displayCount}}", + "updatedFileCount": "Imesasisha faili {{displayCount}}", + "updatedFileCount_other": "Imesasisha faili {{displayCount}}" }, "toolPatch": { "operationAdded": "Imeongezwa", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Ujumbe wa awali umepakiwa", "retryHint": "Inajaribu upya kupakia ujumbe wa awali kwa kikao hiki.", - "omittedOne": "Baadhi ya vitu vya awali vya kikao hiki havikuweza kuonyeshwa.", - "omittedMany": "{{count}} vitu vya awali vya kikao hiki havikuweza kuonyeshwa.", + "omitted_one": "Baadhi ya vitu vya awali vya kikao hiki havikuweza kuonyeshwa.", + "omitted": "{{displayCount}} vitu vya awali vya kikao hiki havikuweza kuonyeshwa.", + "omitted_other": "{{displayCount}} vitu vya awali vya kikao hiki havikuweza kuonyeshwa.", "couldNotLoad": "Haikuweza kupakia ujumbe wa awali.", "unavailable": "Ujumbe wa awali haupatikani.", "tooLarge": "Ujumbe wa awali ni mkubwa sana kupakiwa." @@ -2069,10 +2082,12 @@ "viewTable": "Tazama jedwali", "title": "Jedwali", "close": "Funga jedwali", - "column": "safu", - "columns": "safu", - "row": "safu mlalo", - "rows": "safu mlalo", + "columnCount_one": "safu", + "columnCount": "safu", + "columnCount_other": "safu", + "rowCount_one": "safu mlalo", + "rowCount": "safu mlalo", + "rowCount_other": "safu mlalo", "opensFullScreen": "inafungua skrini kamili" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ya {{window}} tokeni", "tokens": "tokeni", "tokensWithPercentage": "tokeni ({{percentage}})", - "stepsCountOne": "{{steps}} hatua", - "stepsCountMany": "{{steps}} hatua", + "stepsCount_one": "{{steps}} hatua", + "stepsCount": "{{steps}} hatua", + "stepsCount_other": "{{steps}} hatua", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Kazi mpya ya kuandika msimbo", "explore": "Chunguza", "seeAll": "Ona zote", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Habari za asubuhi", - "greetingAfternoon": "Habari za mchana", - "greetingEvening": "Habari za jioni" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Funga {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Hufungua usimamizi wa Kilo Pass kwenye wavuti.", "notSubscribed": "Haujasajiliwa", "overallocated": "Migao ya Pass inazidi nafasi zilizolipwa", - "paidSeatOne": "{{count}} nafasi iliyolipwa", - "paidSeatOther": "{{count}} nafasi zilizolipwa", + "paidSeat_one": "{{displayCount}} nafasi iliyolipwa", + "paidSeat": "{{displayCount}} nafasi zilizolipwa", + "paidSeat_other": "{{displayCount}} nafasi zilizolipwa", "paymentNeedsAttention": "Malipo yanahitaji umakini", "paymentPending": "Malipo yanasubiri", "processingBlocked": "Uchakataji umezuiliwa", diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index b13fd8d9f7..172eea31f5 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} / {{total}} கோப்புகள் ஏற்றப்பட்டது", "loadAllFiles": "எல்லா கோப்புகளையும் ஏற்று", "loadAll": "எல்லாவற்றையும் ஏற்று", - "fileLoaded": "{{count}} கோப்பு ஏற்றப்பட்டது", - "filesLoaded": "{{count}} கோப்புகள் ஏற்றப்பட்டது", - "fileLoadedOfTotal": "{{total}} இல் {{count}} கோப்பு ஏற்றப்பட்டது", - "filesLoadedOfTotal": "{{total}} இல் {{count}} கோப்புகள் ஏற்றப்பட்டது", + "fileLoadedCount_one": "{{displayCount}} கோப்பு ஏற்றப்பட்டது", + "fileLoadedCount": "{{displayCount}} கோப்புகள் ஏற்றப்பட்டது", + "fileLoadedCount_other": "{{displayCount}} கோப்புகள் ஏற்றப்பட்டது", + "fileLoadedOfTotalCount_one": "{{total}} இல் {{displayCount}} கோப்பு ஏற்றப்பட்டது", + "fileLoadedOfTotalCount": "{{total}} இல் {{displayCount}} கோப்புகள் ஏற்றப்பட்டது", + "fileLoadedOfTotalCount_other": "{{total}} இல் {{displayCount}} கோப்புகள் ஏற்றப்பட்டது", "filesStillLoading": "கோப்புகள் இன்னும் ஏற்றப்படுகின்றன. புதுப்பிக்க இழுக்கவும்.", "goToOverview": "மேலோட்டத்திற்குச் செல்", "goToOverviewTab": "மேலோட்ட தாவலுக்குச் செல்" @@ -288,8 +290,9 @@ "resolved": "தீர்க்கப்பட்டது", "outdated": "காலாவதியானது", "file": "கோப்பு", - "oneComment": "1 கருத்து", - "commentCount": "{{count}} கருத்துகள்", + "comment_one": "1 கருத்து", + "comment": "{{displayCount}} கருத்துகள்", + "comment_other": "{{displayCount}} கருத்துகள்", "startedRelative": " · {{relative}} இல் தொடங்கியது", "couldNotLoadMore": "மேலும் கருத்துகளை ஏற்ற முடியவில்லை.", "retryLoadingMore": "மேலும் கருத்துகளை ஏற்றுவதை மீண்டும் முயற்சி", @@ -299,8 +302,9 @@ "reactionsTitle": "எதிர்வினைகள்", "addReaction": "எதிர்வினை சேர்", "reactionPill": "{{emoji}} எதிர்வினை, {{count}} {{countLabel}}", - "reactionSingular": "எதிர்வினை", - "reactionPlural": "எதிர்வினைகள்", + "reaction_one": "எதிர்வினை", + "reaction": "எதிர்வினைகள்", + "reaction_other": "எதிர்வினைகள்", "commentActions": "கருத்து செயல்கள்", "reportContent": "உள்ளடக்கத்தைப் புகார் செய்", "reportUser": "பயனரைப் புகார் செய்", @@ -452,8 +456,9 @@ "deletePendingMessage": "இந்த கருத்து மதிப்பாய்வு வரிசையிலிருந்து அகற்றப்படும்.", "delete": "நீக்கு", "summaryOptional": "சுருக்கம் (விருப்பம்)", - "pendingCommentSingular": "நிலுவை கருத்து", - "pendingCommentPlural": "நிலுவை கருத்துகள்", + "pendingComment_one": "நிலுவை கருத்து", + "pendingComment": "நிலுவை கருத்துகள்", + "pendingComment_other": "நிலுவை கருத்துகள்", "submitCountOfTotal": "{{totalCount}} கருத்துகளில் {{freshCount}} ஐ சமர்ப்பி", "submitReview": "மதிப்பாய்வை சமர்ப்பி", "partialPostedMessage": "{{freshCount}} கருத்து(களை) இடுகையிட்டது. {{staleCount}} கருத்து(கள்) பழைய commit ஐ சுட்டிக்காட்டி உங்கள் வரிசையில் இருந்தன." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "திற · மதிப்பாய்வு தேவை", "stateOpen": "திற", "unknownAuthor": "தெரியாத ஆசிரியர்", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "கோப்பு", - "filePlural": "கோப்புகள்" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "கோப்பு", + "file": "கோப்புகள்", + "file_other": "கோப்புகள்" }, "pendingComment": { "editOutdatedA11y": "{{location}} இல் காலாவதியான நிலுவை கருத்தைத் திருத்து", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "யாரோ", - "oneTyping": "{{name}} தட்டச்சு செய்கிறார்...", - "manyTyping": "{{names}} தட்டச்சு செய்கின்றனர்..." + "typing_one": "{{name}} தட்டச்சு செய்கிறார்...", + "typing": "{{names}} தட்டச்சு செய்கின்றனர்...", + "typing_other": "{{names}} தட்டச்சு செய்கின்றனர்..." }, "botStatus": { "online": "ஆன்லைன்", @@ -722,12 +730,10 @@ "couldNotLoad": "பில்லிங் தகவலை ஏற்ற முடியவில்லை", "manageOnWeb": "வலைத்தளத்தில் பில்லிங் நிர்வகி", "commitPlan": "உறுதி", - "daysLeft": "{{count}} நாட்கள் மீதம்", "earlybird": "முன்கூட்டிய சலுகை", "finalCommitTermEndsOn": "உங்கள் இறுதி உறுதி காலம் {{date}} அன்று முடிவடைகிறது. {{price}} விலையில் Standard ஆக தொடரவும், இல்லையெனில் ஹோஸ்டிங் முடிவடையும்.", "freeTrial": "இலவச சோதனை", "hostingEnds": "ஹோஸ்டிங் முடிவடைகிறது", - "oneDayLeft": "1 நாள் மீதம்", "renews": "புதுப்பிக்கப்படுகிறது", "standardMonthToMonth": "நிலையான மாதந்தோறும்", "standardStartsOn": "Standard {{date}} அன்று {{price}} விலையில் தொடங்குகிறது.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} கவனம் தேவை: {{label}}", - "openUnreadOne": "{{name}} திற, {{count}} படிக்காத செய்தி", - "openUnreadMany": "{{name}} திற, {{count}} படிக்காத செய்திகள்", + "openUnread_one": "{{name}} திற, {{displayCount}} படிக்காத செய்தி", + "openUnread": "{{name}} திற, {{displayCount}} படிக்காத செய்திகள்", + "openUnread_other": "{{name}} திற, {{displayCount}} படிக்காத செய்திகள்", "open": "{{name}} திற", "openSettings": "{{name}} க்கான அமைப்புகளை திற", "fixOnKiloAi": "kilo.ai இல் சரிசெய்: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "தானியங்கி திருத்தத்தை இயக்கவா?", "enableAutoRemediationConfirmMessage": "பாதுகாப்பு ஏஜெண்ட் தகுதியுள்ள சுரண்டக்கூடிய கண்டுபிடிப்புகளுக்கு தானாக திருத்த PR களை திறக்கும்.", "enable": "இயக்கு", - "queuedOne": "{{count}} ஏற்கனவே உள்ள கண்டுபிடிப்பு பகுப்பாய்விற்காக வரிசையில் உள்ளது.", - "queuedMany": "{{count}} ஏற்கனவே உள்ள கண்டுபிடிப்புகள் பகுப்பாய்விற்காக வரிசையில் உள்ளன.", + "queued_one": "{{displayCount}} ஏற்கனவே உள்ள கண்டுபிடிப்பு பகுப்பாய்விற்காக வரிசையில் உள்ளது.", + "queued": "{{displayCount}} ஏற்கனவே உள்ள கண்டுபிடிப்புகள் பகுப்பாய்விற்காக வரிசையில் உள்ளன.", + "queued_other": "{{displayCount}} ஏற்கனவே உள்ள கண்டுபிடிப்புகள் பகுப்பாய்விற்காக வரிசையில் உள்ளன.", "severityCriticalOnly": "முக்கியமானவை மட்டும்", "severityHighAndAbove": "உயர் மற்றும் அதற்கு மேல்", "severityMediumAndAbove": "நடுத்தரம் மற்றும் அதற்கு மேல்", @@ -1482,8 +1490,9 @@ "on": "ஆன்", "off": "ஆஃப்", "allRepositories": "அனைத்து களஞ்சியங்கள்", - "repositorySelected": "{{count}} களஞ்சியம் தேர்ந்தெடுக்கப்பட்டது", - "repositoriesSelected": "{{count}} களஞ்சியங்கள் தேர்ந்தெடுக்கப்பட்டன", + "repositoriesCount_one": "{{displayCount}} களஞ்சியம் தேர்ந்தெடுக்கப்பட்டது", + "repositoriesCount": "{{displayCount}} களஞ்சியங்கள் தேர்ந்தெடுக்கப்பட்டன", + "repositoriesCount_other": "{{displayCount}} களஞ்சியங்கள் தேர்ந்தெடுக்கப்பட்டன", "selectRepositories": "களஞ்சியங்களைத் தேர்ந்தெடு", "selectRepositoriesSubtitle": "Security Agent எந்த களஞ்சியங்களைக் கண்காணிக்கிறது என்பதைத் தேர்ந்தெடுக்கவும்", "repositories": "களஞ்சியங்கள்", @@ -1720,10 +1729,12 @@ "sessionDeleted": "அமர்வு நீக்கப்பட்டது", "needsInput": "உள்ளீடு தேவை", "fromPlatform": "{{platform}} இலிருந்து", - "centOne": "சென்ட்", - "centOther": "சென்ட்கள்", - "dollarOne": "டாலர்", - "dollarOther": "டாலர்கள்" + "cent_one": "சென்ட்", + "cent": "சென்ட்கள்", + "cent_other": "சென்ட்கள்", + "dollar_one": "டாலர்", + "dollar": "டாலர்கள்", + "dollar_other": "டாலர்கள்" }, "githubInstall": { "couldNotOpenTitle": "GitHub ஐ திறக்க முடியவில்லை", @@ -1817,8 +1828,9 @@ "discardFailed": "வரைவை நிராகரிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்." }, "partRenderer": { - "updatedFile": "{{count}} கோப்பு புதுப்பிக்கப்பட்டது", - "updatedFiles": "{{count}} கோப்புகள் புதுப்பிக்கப்பட்டன" + "updatedFileCount_one": "{{displayCount}} கோப்பு புதுப்பிக்கப்பட்டது", + "updatedFileCount": "{{displayCount}} கோப்புகள் புதுப்பிக்கப்பட்டன", + "updatedFileCount_other": "{{displayCount}} கோப்புகள் புதுப்பிக்கப்பட்டன" }, "toolPatch": { "operationAdded": "சேர்க்கப்பட்டது", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "முந்தைய செய்திகள் ஏற்றப்பட்டன", "retryHint": "இந்த அமர்விற்கான முந்தைய செய்தி ஏற்றத்தை மீண்டும் முயற்சிக்கிறது.", - "omittedOne": "இந்த அமர்வின் சில முந்தைய உருப்படிகளைக் காட்ட முடியவில்லை.", - "omittedMany": "இந்த அமர்வின் {{count}} முந்தைய உருப்படிகளைக் காட்ட முடியவில்லை.", + "omitted_one": "இந்த அமர்வின் சில முந்தைய உருப்படிகளைக் காட்ட முடியவில்லை.", + "omitted": "இந்த அமர்வின் {{displayCount}} முந்தைய உருப்படிகளைக் காட்ட முடியவில்லை.", + "omitted_other": "இந்த அமர்வின் {{displayCount}} முந்தைய உருப்படிகளைக் காட்ட முடியவில்லை.", "couldNotLoad": "முந்தைய செய்திகளை ஏற்ற முடியவில்லை.", "unavailable": "முந்தைய செய்திகள் கிடைக்கவில்லை.", "tooLarge": "முந்தைய செய்திகள் ஏற்றுவதற்கு மிகப் பெரியவை." @@ -2069,10 +2082,12 @@ "viewTable": "அட்டவணையைப் பார்க்கவும்", "title": "அட்டவணை", "close": "அட்டவணையை மூடு", - "column": "நெடுவரிசை", - "columns": "நெடுவரிசைகள்", - "row": "வரிசை", - "rows": "வரிசைகள்", + "columnCount_one": "நெடுவரிசை", + "columnCount": "நெடுவரிசைகள்", + "columnCount_other": "நெடுவரிசைகள்", + "rowCount_one": "வரிசை", + "rowCount": "வரிசைகள்", + "rowCount_other": "வரிசைகள்", "opensFullScreen": "முழுத் திரையில் திறக்கிறது" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} டோக்கன்களில்", "tokens": "டோக்கன்கள்", "tokensWithPercentage": "டோக்கன்கள் ({{percentage}})", - "stepsCountOne": "{{steps}} படி", - "stepsCountMany": "{{steps}} படிகள்", + "stepsCount_one": "{{steps}} படி", + "stepsCount": "{{steps}} படிகள்", + "stepsCount_other": "{{steps}} படிகள்", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "புதிய குறியீட்டு பணி", "explore": "ஆராய்க", "seeAll": "அனைத்தையும் காண்க", - "kiloAgents": "Kilo முகவர்கள்", - "greetingMorning": "காலை வணக்கம்", - "greetingAfternoon": "மதிய வணக்கம்", - "greetingEvening": "மாலை வணக்கம்" + "kiloAgents": "Kilo முகவர்கள்" }, "imageViewer": { "close": "{{filename}} மூடு", @@ -2645,8 +2658,9 @@ "manageHint": "Kilo Pass நிர்வாகத்தை வலையில் திறக்கிறது.", "notSubscribed": "சந்தா எடுக்கப்படவில்லை", "overallocated": "Pass ஒதுக்கீடுகள் செலுத்திய இருக்கைகளை விட அதிகம்", - "paidSeatOne": "{{count}} செலுத்திய இருக்கை", - "paidSeatOther": "{{count}} செலுத்திய இருக்கைகள்", + "paidSeat_one": "{{displayCount}} செலுத்திய இருக்கை", + "paidSeat": "{{displayCount}} செலுத்திய இருக்கைகள்", + "paidSeat_other": "{{displayCount}} செலுத்திய இருக்கைகள்", "paymentNeedsAttention": "கட்டணத்திற்கு கவனம் தேவை", "paymentPending": "கட்டணம் நிலுவையில் உள்ளது", "processingBlocked": "செயலாக்கம் தடுக்கப்பட்டது", diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index b131c44c7a..7f96c2d6e6 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} / {{total}} ఫైల్లు లోడ్ అయ్యాయి", "loadAllFiles": "అన్ని ఫైల్లను లోడ్ చేయండి", "loadAll": "అన్నీ లోడ్ చేయండి", - "fileLoaded": "{{count}} ఫైల్ లోడ్ అయింది", - "filesLoaded": "{{count}} ఫైల్లు లోడ్ అయ్యాయి", - "fileLoadedOfTotal": "మొత్తం {{total}}లో {{count}} ఫైల్ లోడ్ అయింది", - "filesLoadedOfTotal": "మొత్తం {{total}}లో {{count}} ఫైల్లు లోడ్ అయ్యాయి", + "fileLoadedCount_one": "{{displayCount}} ఫైల్ లోడ్ అయింది", + "fileLoadedCount": "{{displayCount}} ఫైల్లు లోడ్ అయ్యాయి", + "fileLoadedCount_other": "{{displayCount}} ఫైల్లు లోడ్ అయ్యాయి", + "fileLoadedOfTotalCount_one": "మొత్తం {{total}}లో {{displayCount}} ఫైల్ లోడ్ అయింది", + "fileLoadedOfTotalCount": "మొత్తం {{total}}లో {{displayCount}} ఫైల్లు లోడ్ అయ్యాయి", + "fileLoadedOfTotalCount_other": "మొత్తం {{total}}లో {{displayCount}} ఫైల్లు లోడ్ అయ్యాయి", "filesStillLoading": "ఫైల్లు ఇంకా లోడ్ అవుతున్నాయి. రిఫ్రెష్ చేయడానికి లాగండి.", "goToOverview": "అవలోకనానికి వెళ్లండి", "goToOverviewTab": "అవలోకన ట్యాబ్కు వెళ్లండి" @@ -288,8 +290,9 @@ "resolved": "పరిష్కరించబడింది", "outdated": "పాతది", "file": "ఫైల్", - "oneComment": "1 వ్యాఖ్య", - "commentCount": "{{count}} వ్యాఖ్యలు", + "comment_one": "1 వ్యాఖ్య", + "comment": "{{displayCount}} వ్యాఖ్యలు", + "comment_other": "{{displayCount}} వ్యాఖ్యలు", "startedRelative": " · {{relative}}కి ప్రారంభమైంది", "couldNotLoadMore": "మరిన్ని వ్యాఖ్యలను లోడ్ చేయలేకపోయింది.", "retryLoadingMore": "మరిన్ని వ్యాఖ్యలను లోడ్ చేయడం మళ్ళీ ప్రయత్నించండి", @@ -299,8 +302,9 @@ "reactionsTitle": "ప్రతిచర్యలు", "addReaction": "ప్రతిచర్య జోడించండి", "reactionPill": "{{emoji}} ప్రతిచర్య, {{count}} {{countLabel}}", - "reactionSingular": "ప్రతిచర్య", - "reactionPlural": "ప్రతిచర్యలు", + "reaction_one": "ప్రతిచర్య", + "reaction": "ప్రతిచర్యలు", + "reaction_other": "ప్రతిచర్యలు", "commentActions": "వ్యాఖ్య చర్యలు", "reportContent": "కంటెంట్ను నివేదించండి", "reportUser": "వినియోగదారుని నివేదించండి", @@ -452,8 +456,9 @@ "deletePendingMessage": "ఈ వ్యాఖ్య సమీక్ష క్యూలో నుండి తీసివేయబడుతుంది.", "delete": "తొలగించండి", "summaryOptional": "సారాంశం (ఐచ్ఛికం)", - "pendingCommentSingular": "పెండింగ్ వ్యాఖ్య", - "pendingCommentPlural": "పెండింగ్ వ్యాఖ్యలు", + "pendingComment_one": "పెండింగ్ వ్యాఖ్య", + "pendingComment": "పెండింగ్ వ్యాఖ్యలు", + "pendingComment_other": "పెండింగ్ వ్యాఖ్యలు", "submitCountOfTotal": "మొత్తం {{totalCount}} వ్యాఖ్యలలో {{freshCount}} సమర్పించండి", "submitReview": "సమీక్షను సమర్పించండి", "partialPostedMessage": "{{freshCount}} వ్యాఖ్య(లు) పోస్ట్ చేయబడ్డాయి. {{staleCount}} వ్యాఖ్య(లు) పాత కమిట్కు సూచిస్తున్నాయి మరియు మీ క్యూలో ఉన్నాయి." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "తెరిచింది · సమీక్ష అవసరం", "stateOpen": "తెరిచింది", "unknownAuthor": "తెలియని రచయిత", - "commitSingular": "కమిట్", - "commitPlural": "కమిట్లు", - "fileSingular": "ఫైల్", - "filePlural": "ఫైల్లు" + "commit_one": "కమిట్", + "commit": "కమిట్లు", + "commit_other": "కమిట్లు", + "file_one": "ఫైల్", + "file": "ఫైల్లు", + "file_other": "ఫైల్లు" }, "pendingComment": { "editOutdatedA11y": "{{location}}పై పాత పెండింగ్ వ్యాఖ్యను సవరించండి", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "ఎవరో", - "oneTyping": "{{name}} టైప్ చేస్తున్నారు...", - "manyTyping": "{{names}} టైప్ చేస్తున్నారు..." + "typing_one": "{{name}} టైప్ చేస్తున్నారు...", + "typing": "{{names}} టైప్ చేస్తున్నారు...", + "typing_other": "{{names}} టైప్ చేస్తున్నారు..." }, "botStatus": { "online": "ఆన్లైన్", @@ -722,12 +730,10 @@ "couldNotLoad": "బిల్లింగ్ సమాచారాన్ని లోడ్ చేయలేకపోయాము", "manageOnWeb": "వెబ్లో బిల్లింగ్ నిర్వహించండి", "commitPlan": "కమిట్", - "daysLeft": "{{count}} రోజులు మిగిలి ఉన్నాయి", "earlybird": "ఎర్లీబర్డ్", "finalCommitTermEndsOn": "మీ చివరి Commit టర్మ్ {{date}}న ముగుస్తుంది. {{price}} వద్ద Standardగా కొనసాగించండి, లేదా హోస్టింగ్ ముగుస్తుంది.", "freeTrial": "ఉచిత ట్రయల్", "hostingEnds": "హోస్టింగ్ ముగుస్తుంది", - "oneDayLeft": "1 రోజు మిగిలి ఉంది", "renews": "పునరుద్ధరిస్తుంది", "standardMonthToMonth": "స్టాండర్డ్ నెలవారీ", "standardStartsOn": "Standard {{date}}న {{price}} వద్ద ప్రారంభమవుతుంది.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}}కు శ్రద్ధ అవసరం: {{label}}", - "openUnreadOne": "{{name}}ను తెరవండి, {{count}} చదవని సందేశం", - "openUnreadMany": "{{name}}ను తెరవండి, {{count}} చదవని సందేశాలు", + "openUnread_one": "{{name}}ను తెరవండి, {{displayCount}} చదవని సందేశం", + "openUnread": "{{name}}ను తెరవండి, {{displayCount}} చదవని సందేశాలు", + "openUnread_other": "{{name}}ను తెరవండి, {{displayCount}} చదవని సందేశాలు", "open": "{{name}}ను తెరవండి", "openSettings": "{{name}} కోసం సెట్టింగ్లను తెరవండి", "fixOnKiloAi": "kilo.aiలో పరిష్కరించండి: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "ఆటో-నివారణను ప్రారంభించాలా?", "enableAutoRemediationConfirmMessage": "Security Agent అర్హత కలిగిన దుర్వినియోగం చేయదగిన ఫైండింగ్ల కోసం నివారణ PRలను స్వయంచాలకంగా తెరుస్తుంది.", "enable": "ప్రారంభించండి", - "queuedOne": "{{count}} ఉన్న ఫలితం విశ్లేషణ కోసం క్యూలో ఉంది.", - "queuedMany": "{{count}} ఉన్న ఫలితాలు విశ్లేషణ కోసం క్యూలో ఉన్నాయి.", + "queued_one": "{{displayCount}} ఉన్న ఫలితం విశ్లేషణ కోసం క్యూలో ఉంది.", + "queued": "{{displayCount}} ఉన్న ఫలితాలు విశ్లేషణ కోసం క్యూలో ఉన్నాయి.", + "queued_other": "{{displayCount}} ఉన్న ఫలితాలు విశ్లేషణ కోసం క్యూలో ఉన్నాయి.", "severityCriticalOnly": "క్లిష్టమైనవి మాత్రమే", "severityHighAndAbove": "అధికం మరియు పైన", "severityMediumAndAbove": "మధ్యస్థం మరియు పైన", @@ -1482,8 +1490,9 @@ "on": "ఆన్", "off": "ఆఫ్", "allRepositories": "అన్ని రిపోజిటరీలు", - "repositorySelected": "{{count}} రిపోజిటరీ ఎంచుకోబడింది", - "repositoriesSelected": "{{count}} రిపోజిటరీలు ఎంచుకోబడ్డాయి", + "repositoriesCount_one": "{{displayCount}} రిపోజిటరీ ఎంచుకోబడింది", + "repositoriesCount": "{{displayCount}} రిపోజిటరీలు ఎంచుకోబడ్డాయి", + "repositoriesCount_other": "{{displayCount}} రిపోజిటరీలు ఎంచుకోబడ్డాయి", "selectRepositories": "రిపోజిటరీలను ఎంచుకోండి", "selectRepositoriesSubtitle": "సెక్యూరిటీ ఏజెంట్ ఏ రిపోజిటరీలను పర్యవేక్షిస్తుందో ఎంచుకోండి", "repositories": "రిపోజిటరీలు", @@ -1720,10 +1729,12 @@ "sessionDeleted": "సెషన్ తొలగించబడింది", "needsInput": "ఇన్పుట్ అవసరం", "fromPlatform": "{{platform}} నుండి", - "centOne": "సెంట్", - "centOther": "సెంట్లు", - "dollarOne": "డాలర్", - "dollarOther": "డాలర్లు" + "cent_one": "సెంట్", + "cent": "సెంట్లు", + "cent_other": "సెంట్లు", + "dollar_one": "డాలర్", + "dollar": "డాలర్లు", + "dollar_other": "డాలర్లు" }, "githubInstall": { "couldNotOpenTitle": "GitHubను తెరవలేకపోయింది", @@ -1817,8 +1828,9 @@ "discardFailed": "డ్రాఫ్ట్‌ను విస్మరించలేకపోయింది. దయచేసి మళ్ళీ ప్రయత్నించండి." }, "partRenderer": { - "updatedFile": "{{count}} ఫైల్ నవీకరించబడింది", - "updatedFiles": "{{count}} ఫైల్స్ నవీకరించబడ్డాయి" + "updatedFileCount_one": "{{displayCount}} ఫైల్ నవీకరించబడింది", + "updatedFileCount": "{{displayCount}} ఫైల్స్ నవీకరించబడ్డాయి", + "updatedFileCount_other": "{{displayCount}} ఫైల్స్ నవీకరించబడ్డాయి" }, "toolPatch": { "operationAdded": "జోడించబడింది", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "మునుపటి సందేశాలు లోడ్ అయ్యాయి", "retryHint": "ఈ సెషన్ కోసం పాత సందేశాల లోడ్ను మళ్లీ ప్రయత్నిస్తుంది.", - "omittedOne": "ఈ సెషన్ నుండి కొన్ని మునుపటి అంశాలను ప్రదర్శించలేకపోయాము.", - "omittedMany": "ఈ సెషన్ నుండి {{count}} మునుపటి అంశాలను ప్రదర్శించలేకపోయాము.", + "omitted_one": "ఈ సెషన్ నుండి కొన్ని మునుపటి అంశాలను ప్రదర్శించలేకపోయాము.", + "omitted": "ఈ సెషన్ నుండి {{displayCount}} మునుపటి అంశాలను ప్రదర్శించలేకపోయాము.", + "omitted_other": "ఈ సెషన్ నుండి {{displayCount}} మునుపటి అంశాలను ప్రదర్శించలేకపోయాము.", "couldNotLoad": "మునుపటి సందేశాలను లోడ్ చేయలేకపోయాము.", "unavailable": "మునుపటి సందేశాలు అందుబాటులో లేవు.", "tooLarge": "మునుపటి సందేశాలు లోడ్ చేయడానికి చాలా పెద్దవి." @@ -2069,10 +2082,12 @@ "viewTable": "పట్టికను వీక్షించండి", "title": "పట్టిక", "close": "పట్టికను మూసివేయండి", - "column": "నిలువు వరుస", - "columns": "నిలువు వరుసలు", - "row": "వరుస", - "rows": "వరుసలు", + "columnCount_one": "నిలువు వరుస", + "columnCount": "నిలువు వరుసలు", + "columnCount_other": "నిలువు వరుసలు", + "rowCount_one": "వరుస", + "rowCount": "వరుసలు", + "rowCount_other": "వరుసలు", "opensFullScreen": "పూర్తి స్క్రీన్లో తెరుస్తుంది" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} టోకెన్లలో", "tokens": "టోకెన్లు", "tokensWithPercentage": "టోకెన్లు ({{percentage}})", - "stepsCountOne": "{{steps}} దశ", - "stepsCountMany": "{{steps}} దశలు", + "stepsCount_one": "{{steps}} దశ", + "stepsCount": "{{steps}} దశలు", + "stepsCount_other": "{{steps}} దశలు", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "కొత్త కోడింగ్ పని", "explore": "అన్వేషించండి", "seeAll": "అన్నీ చూడండి", - "kiloAgents": "Kilo ఏజెంట్లు", - "greetingMorning": "శుభోదయం", - "greetingAfternoon": "శుభ మధ్యాహ్నం", - "greetingEvening": "శుభ సాయంత్రం" + "kiloAgents": "Kilo ఏజెంట్లు" }, "imageViewer": { "close": "{{filename}} మూసివేయండి", @@ -2645,8 +2658,9 @@ "manageHint": "వెబ్లో Kilo Pass నిర్వహణను తెరుస్తుంది.", "notSubscribed": "చందాదారుడు కాదు", "overallocated": "పాస్ అపాయింట్మెంట్లు చెల్లించిన సీట్లను మించిపోతున్నాయి", - "paidSeatOne": "{{count}} చెల్లించిన సీటు", - "paidSeatOther": "{{count}} చెల్లించిన సీట్లు", + "paidSeat_one": "{{displayCount}} చెల్లించిన సీటు", + "paidSeat": "{{displayCount}} చెల్లించిన సీట్లు", + "paidSeat_other": "{{displayCount}} చెల్లించిన సీట్లు", "paymentNeedsAttention": "చెల్లింపుకు శ్రద్ధ అవసరం", "paymentPending": "చెల్లింపు పెండింగ్", "processingBlocked": "ప్రాసెసింగ్ నిరోధించబడింది", diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index fe2468c65e..faa647fa17 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "โหลดไฟล์แล้ว {{loaded}} จาก {{total}}", "loadAllFiles": "โหลดไฟล์ทั้งหมด", "loadAll": "โหลดทั้งหมด", - "fileLoaded": "โหลด {{count}} ไฟล์แล้ว", - "filesLoaded": "โหลด {{count}} ไฟล์แล้ว", - "fileLoadedOfTotal": "โหลด {{count}} ไฟล์จาก {{total}}", - "filesLoadedOfTotal": "โหลด {{count}} ไฟล์จาก {{total}}", + "fileLoadedCount_one": "โหลด {{displayCount}} ไฟล์แล้ว", + "fileLoadedCount": "โหลด {{displayCount}} ไฟล์แล้ว", + "fileLoadedCount_other": "โหลด {{displayCount}} ไฟล์แล้ว", + "fileLoadedOfTotalCount_one": "โหลด {{displayCount}} ไฟล์จาก {{total}}", + "fileLoadedOfTotalCount": "โหลด {{displayCount}} ไฟล์จาก {{total}}", + "fileLoadedOfTotalCount_other": "โหลด {{displayCount}} ไฟล์จาก {{total}}", "filesStillLoading": "ไฟล์ยังโหลดอยู่ ดึงลงเพื่อรีเฟรช", "goToOverview": "ไปที่ภาพรวม", "goToOverviewTab": "ไปที่แท็บภาพรวม" @@ -288,8 +290,9 @@ "resolved": "ปิดแล้ว", "outdated": "ล้าสมัย", "file": "ไฟล์", - "oneComment": "1 ความคิดเห็น", - "commentCount": "{{count}} ความคิดเห็น", + "comment_one": "1 ความคิดเห็น", + "comment": "{{displayCount}} ความคิดเห็น", + "comment_other": "{{displayCount}} ความคิดเห็น", "startedRelative": " · เริ่มเมื่อ {{relative}}", "couldNotLoadMore": "ไม่สามารถโหลดความคิดเห็นเพิ่มได้", "retryLoadingMore": "ลองโหลดความคิดเห็นเพิ่มอีกครั้ง", @@ -299,8 +302,9 @@ "reactionsTitle": "ปฏิกิริยา", "addReaction": "เพิ่มปฏิกิริยา", "reactionPill": "{{emoji}} ปฏิกิริยา, {{count}} {{countLabel}}", - "reactionSingular": "ปฏิกิริยา", - "reactionPlural": "ปฏิกิริยา", + "reaction_one": "ปฏิกิริยา", + "reaction": "ปฏิกิริยา", + "reaction_other": "ปฏิกิริยา", "commentActions": "การกระทำความคิดเห็น", "reportContent": "รายงานเนื้อหา", "reportUser": "รายงานผู้ใช้", @@ -452,8 +456,9 @@ "deletePendingMessage": "ความคิดเห็นนี้จะถูกลบออกจากคิวรีวิว", "delete": "ลบ", "summaryOptional": "สรุป (ไม่บังคับ)", - "pendingCommentSingular": "ความคิดเห็นที่รอดำเนินการ", - "pendingCommentPlural": "ความคิดเห็นที่รอดำเนินการ", + "pendingComment_one": "ความคิดเห็นที่รอดำเนินการ", + "pendingComment": "ความคิดเห็นที่รอดำเนินการ", + "pendingComment_other": "ความคิดเห็นที่รอดำเนินการ", "submitCountOfTotal": "ส่ง {{freshCount}} จาก {{totalCount}} ความคิดเห็น", "submitReview": "ส่งรีวิว", "partialPostedMessage": "โพสต์ {{freshCount}} ความคิดเห็นแล้ว {{staleCount}} ความคิดเห็นชี้ไปที่ commit ที่เก่ากว่าและยังอยู่ในคิวของคุณ" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "เปิด · ต้องรีวิว", "stateOpen": "เปิด", "unknownAuthor": "ผู้เขียนที่ไม่รู้จัก", - "commitSingular": "commit", - "commitPlural": "commits", - "fileSingular": "ไฟล์", - "filePlural": "ไฟล์" + "commit_one": "commit", + "commit": "commits", + "commit_other": "commits", + "file_one": "ไฟล์", + "file": "ไฟล์", + "file_other": "ไฟล์" }, "pendingComment": { "editOutdatedA11y": "แก้ไขความคิดเห็นที่รอดำเนินการที่ล้าสมัยบน {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "มีคน", - "oneTyping": "{{name}} กำลังพิมพ์...", - "manyTyping": "{{names}} กำลังพิมพ์..." + "typing_one": "{{name}} กำลังพิมพ์...", + "typing": "{{names}} กำลังพิมพ์...", + "typing_other": "{{names}} กำลังพิมพ์..." }, "botStatus": { "online": "ออนไลน์", @@ -722,12 +730,10 @@ "couldNotLoad": "โหลดข้อมูลการเรียกเก็บเงินไม่สำเร็จ", "manageOnWeb": "จัดการการเรียกเก็บเงินบนเว็บ", "commitPlan": "Commit", - "daysLeft": "เหลือ {{count}} วัน", "earlybird": "Earlybird", "finalCommitTermEndsOn": "เทอม Commit สุดท้ายของคุณสิ้นสุดใน {{date}} ดำเนินการต่อเป็น Standard ที่ {{price}} หรือโฮสติ้งจะสิ้นสุด", "freeTrial": "ทดลองใช้ฟรี", "hostingEnds": "โฮสติ้งสิ้นสุด", - "oneDayLeft": "เหลือ 1 วัน", "renews": "ต่ออายุ", "standardMonthToMonth": "Standard รายเดือน", "standardStartsOn": "Standard เริ่มใน {{date}} ที่ {{price}}", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} ต้องการความสนใจ: {{label}}", - "openUnreadOne": "เปิด {{name}}, ข้อความที่ยังไม่อ่าน {{count}} ข้อความ", - "openUnreadMany": "เปิด {{name}}, ข้อความที่ยังไม่อ่าน {{count}} ข้อความ", + "openUnread_one": "เปิด {{name}}, ข้อความที่ยังไม่อ่าน {{displayCount}} ข้อความ", + "openUnread": "เปิด {{name}}, ข้อความที่ยังไม่อ่าน {{displayCount}} ข้อความ", + "openUnread_other": "เปิด {{name}}, ข้อความที่ยังไม่อ่าน {{displayCount}} ข้อความ", "open": "เปิด {{name}}", "openSettings": "เปิดการตั้งค่าสำหรับ {{name}}", "fixOnKiloAi": "แก้ไขบน kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "เปิดการแก้ไขอัตโนมัติ?", "enableAutoRemediationConfirmMessage": "Security Agent จะเปิด PR การแก้ไขโดยอัตโนมัติสำหรับผลการค้นหาที่ใช้ประโยชน์ได้และมีสิทธิ์", "enable": "เปิด", - "queuedOne": "{{count}} finding ที่มีอยู่ถูกจัดคิวสำหรับการวิเคราะห์", - "queuedMany": "{{count}} findings ที่มีอยู่ถูกจัดคิวสำหรับการวิเคราะห์", + "queued_one": "{{displayCount}} finding ที่มีอยู่ถูกจัดคิวสำหรับการวิเคราะห์", + "queued": "{{displayCount}} findings ที่มีอยู่ถูกจัดคิวสำหรับการวิเคราะห์", + "queued_other": "{{displayCount}} findings ที่มีอยู่ถูกจัดคิวสำหรับการวิเคราะห์", "severityCriticalOnly": "ระดับวิกฤตเท่านั้น", "severityHighAndAbove": "สูงขึ้นไป", "severityMediumAndAbove": "ปานกลางขึ้นไป", @@ -1482,8 +1490,9 @@ "on": "เปิด", "off": "ปิด", "allRepositories": "repositories ทั้งหมด", - "repositorySelected": "เลือก {{count}} repository", - "repositoriesSelected": "เลือก {{count}} repositories", + "repositoriesCount_one": "เลือก {{displayCount}} repository", + "repositoriesCount": "เลือก {{displayCount}} repositories", + "repositoriesCount_other": "เลือก {{displayCount}} repositories", "selectRepositories": "เลือก repositories", "selectRepositoriesSubtitle": "เลือกว่า Security Agent ตรวจสอบ repositories ใด", "repositories": "Repositories", @@ -1720,10 +1729,12 @@ "sessionDeleted": "ลบ session แล้ว", "needsInput": "ต้องป้อนข้อมูล", "fromPlatform": "จาก {{platform}}", - "centOne": "cent", - "centOther": "cents", - "dollarOne": "ดอลลาร์", - "dollarOther": "ดอลลาร์" + "cent_one": "cent", + "cent": "cents", + "cent_other": "cents", + "dollar_one": "ดอลลาร์", + "dollar": "ดอลลาร์", + "dollar_other": "ดอลลาร์" }, "githubInstall": { "couldNotOpenTitle": "ไม่สามารถเปิด GitHub ได้", @@ -1817,8 +1828,9 @@ "discardFailed": "ไม่สามารถทิ้งฉบับร่างได้ กรุณาลองอีกครั้ง" }, "partRenderer": { - "updatedFile": "อัปเดต {{count}} ไฟล์", - "updatedFiles": "อัปเดต {{count}} ไฟล์" + "updatedFileCount_one": "อัปเดต {{displayCount}} ไฟล์", + "updatedFileCount": "อัปเดต {{displayCount}} ไฟล์", + "updatedFileCount_other": "อัปเดต {{displayCount}} ไฟล์" }, "toolPatch": { "operationAdded": "เพิ่มแล้ว", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "โหลดข้อความก่อนหน้าแล้ว", "retryHint": "ลองโหลดข้อความเก่าของเซสชันนี้อีกครั้ง", - "omittedOne": "บางรายการก่อนหน้าจากเซสชันนี้ไม่สามารถแสดงได้", - "omittedMany": "{{count}} รายการก่อนหน้าจากเซสชันนี้ไม่สามารถแสดงได้", + "omitted_one": "บางรายการก่อนหน้าจากเซสชันนี้ไม่สามารถแสดงได้", + "omitted": "{{displayCount}} รายการก่อนหน้าจากเซสชันนี้ไม่สามารถแสดงได้", + "omitted_other": "{{displayCount}} รายการก่อนหน้าจากเซสชันนี้ไม่สามารถแสดงได้", "couldNotLoad": "โหลดข้อความก่อนหน้าไม่สำเร็จ", "unavailable": "ข้อความก่อนหน้าไม่พร้อมใช้งาน", "tooLarge": "ข้อความก่อนหน้ามีขนาดใหญ่เกินไปที่จะโหลด" @@ -2069,10 +2082,12 @@ "viewTable": "ดูตาราง", "title": "ตาราง", "close": "ปิดตาราง", - "column": "คอลัมน์", - "columns": "คอลัมน์", - "row": "แถว", - "rows": "แถว", + "columnCount_one": "คอลัมน์", + "columnCount": "คอลัมน์", + "columnCount_other": "คอลัมน์", + "rowCount_one": "แถว", + "rowCount": "แถว", + "rowCount_other": "แถว", "opensFullScreen": "เปิดแบบเต็มหน้าจอ" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "จาก {{window}} โทเคน", "tokens": "โทเคน", "tokensWithPercentage": "โทเคน ({{percentage}})", - "stepsCountOne": "{{steps}} ขั้นตอน", - "stepsCountMany": "{{steps}} ขั้นตอน", + "stepsCount_one": "{{steps}} ขั้นตอน", + "stepsCount": "{{steps}} ขั้นตอน", + "stepsCount_other": "{{steps}} ขั้นตอน", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "งานการเขียนโค้ดใหม่", "explore": "สำรวจ", "seeAll": "ดูทั้งหมด", - "kiloAgents": "Kilo Agents", - "greetingMorning": "สวัสดีตอนเช้า", - "greetingAfternoon": "สวัสดีตอนบ่าย", - "greetingEvening": "สวัสดีตอนเย็น" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "ปิด {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "เปิดการจัดการ Kilo Pass บนเว็บ", "notSubscribed": "ยังไม่ได้สมัครสมาชิก", "overallocated": "การจัดสรร Pass เกินที่นั่งที่ชำระแล้ว", - "paidSeatOne": "{{count}} ที่นั่งที่ชำระแล้ว", - "paidSeatOther": "{{count}} ที่นั่งที่ชำระแล้ว", + "paidSeat_one": "{{displayCount}} ที่นั่งที่ชำระแล้ว", + "paidSeat": "{{displayCount}} ที่นั่งที่ชำระแล้ว", + "paidSeat_other": "{{displayCount}} ที่นั่งที่ชำระแล้ว", "paymentNeedsAttention": "การชำระเงินต้องได้รับการดูแล", "paymentPending": "การชำระเงินรอดำเนินการ", "processingBlocked": "การประมวลผลถูกบล็อก", diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index fb63bc7924..b1849cdd5f 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Biri", - "oneTyping": "{{name}} yazıyor...", - "manyTyping": "{{names}} yazıyor..." + "typing_one": "{{name}} yazıyor...", + "typing": "{{names}} yazıyor...", + "typing_other": "{{names}} yazıyor..." }, "botStatus": { "online": "Çevrimiçi", @@ -350,12 +351,10 @@ "couldNotLoad": "Faturalandırma bilgileri yüklenemedi", "manageOnWeb": "Faturalandırmayı Web'de Yönet", "commitPlan": "Commit", - "daysLeft": "{{count}} gün kaldı", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Son Commit döneminiz {{date}} tarihinde sona eriyor. {{price}} karşılığında Standard olarak devam edin, aksi takdirde barındırma sona erer.", "freeTrial": "Ücretsiz Deneme", "hostingEnds": "Barındırma sona eriyor", - "oneDayLeft": "1 gün kaldı", "renews": "Yenilenir", "standardMonthToMonth": "Standard aylık", "standardStartsOn": "Standard {{date}} tarihinde {{price}} ile başlıyor.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} ilgi gerektiriyor: {{label}}", "open": "{{name}} aç", "openSettings": "{{name}} için ayarları aç", - "openUnreadMany": "{{name}} aç, {{count}} okunmamış mesaj", - "openUnreadOne": "{{name}} aç, {{count}} okunmamış mesaj" + "openUnread": "{{name}} aç, {{displayCount}} okunmamış mesaj", + "openUnread_other": "{{name}} aç, {{displayCount}} okunmamış mesaj", + "openUnread_one": "{{name}} aç, {{displayCount}} okunmamış mesaj" }, "list": { "createInstance": "Örnek oluştur", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Zaten analiz edilmiş uygun bulguları da kuyruğa al. Yinelenen PR'lar bastırılmış kalır.", "minimumSeverity": "Minimum önem derecesi", "permissionNote": "Bu ayarları yalnızca kuruluş sahipleri ve faturalandırma yöneticileri değiştirebilir.", - "queuedMany": "{{count}} mevcut bulgu analiz için kuyruğa alındı.", - "queuedOne": "{{count}} mevcut bulgu analiz için kuyruğa alındı.", + "queued": "{{displayCount}} mevcut bulgu analiz için kuyruğa alındı.", + "queued_other": "{{displayCount}} mevcut bulgu analiz için kuyruğa alındı.", + "queued_one": "{{displayCount}} mevcut bulgu analiz için kuyruğa alındı.", "requireApproval": "Otomatik iyileştirmeden önce onay iste", "requireApprovalSubtitle": "Otomatik iyileştirme, PR açmadan önce onayınızı bekler.", "severityAll": "Tüm önem dereceleri", @@ -1270,8 +1271,9 @@ "off": "Kapalı", "on": "Açık", "repositories": "Depolar", - "repositoriesSelected": "{{count}} depo seçildi", - "repositorySelected": "{{count}} depo seçildi", + "repositoriesCount": "{{displayCount}} depo seçildi", + "repositoriesCount_other": "{{displayCount}} depo seçildi", + "repositoriesCount_one": "{{displayCount}} depo seçildi", "securityAgent": "Security Agent", "selectRepositories": "Depoları seç", "selectRepositoriesSubtitle": "Security Agent'ın hangi depoları izleyeceğini seçin", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Oturum silindi", "needsInput": "girdi gerekli", "fromPlatform": "{{platform}} üzerinden", - "centOne": "sent", - "centOther": "sent", - "dollarOne": "dolar", - "dollarOther": "dolar" + "cent_one": "sent", + "cent": "sent", + "cent_other": "sent", + "dollar_one": "dolar", + "dollar": "dolar", + "dollar_other": "dolar" }, "githubInstall": { "couldNotOpenMessage": "GitHub Uygulaması kurulumu başlatılamadı. Lütfen tekrar deneyin.", @@ -1445,8 +1449,9 @@ "keepEditing": "Düzenlemeye devam et" }, "partRenderer": { - "updatedFile": "{{count}} dosya güncellendi", - "updatedFiles": "{{count}} dosya güncellendi" + "updatedFileCount_one": "{{displayCount}} dosya güncellendi", + "updatedFileCount": "{{displayCount}} dosya güncellendi", + "updatedFileCount_other": "{{displayCount}} dosya güncellendi" }, "toolPatch": { "operationAdded": "Eklendi", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Önceki mesajlar yüklendi", "retryHint": "Bu oturumun eski mesajlarının yüklenmesini yeniden dener.", - "omittedOne": "Bu oturumdaki daha eski bir öğe görüntülenemedi.", - "omittedMany": "Bu oturumdaki {{count}} eski öğe görüntülenemedi.", + "omitted_one": "Bu oturumdaki daha eski bir öğe görüntülenemedi.", + "omitted": "Bu oturumdaki {{displayCount}} eski öğe görüntülenemedi.", + "omitted_other": "Bu oturumdaki {{displayCount}} eski öğe görüntülenemedi.", "couldNotLoad": "Eski mesajlar yüklenemedi.", "unavailable": "Eski mesajlar kullanılamıyor.", "tooLarge": "Eski mesajlar yüklenemeyecek kadar büyük." @@ -1697,10 +1703,12 @@ "viewTable": "Tabloyu görüntüle", "title": "Tablo", "close": "Tabloyu kapat", - "column": "sütun", - "columns": "sütunlar", - "row": "satır", - "rows": "satırlar", + "columnCount_one": "sütun", + "columnCount": "sütunlar", + "columnCount_other": "sütunlar", + "rowCount_one": "satır", + "rowCount": "satırlar", + "rowCount_other": "satırlar", "opensFullScreen": "tam ekran açar" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "{{window}} jetonun", "tokens": "jeton", "tokensWithPercentage": "jeton (%{{percentage}})", - "stepsCountOne": "{{steps}} adım", - "stepsCountMany": "{{steps}} adım", + "stepsCount_one": "{{steps}} adım", + "stepsCount": "{{steps}} adım", + "stepsCount_other": "{{steps}} adım", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Yeni kodlama görevi", "explore": "Keşfet", "seeAll": "Tümünü gör", - "kiloAgents": "Kilo Ajanları", - "greetingMorning": "Günaydın", - "greetingAfternoon": "İyi günler", - "greetingEvening": "İyi akşamlar" + "kiloAgents": "Kilo Ajanları" }, "imageViewer": { "close": "{{filename}} kapat", @@ -2205,7 +2211,8 @@ "closeReactions": "Tepkileri kapat", "collapseThread": "Konuyu daralt", "commentActions": "Yorum eylemleri", - "commentCount": "{{count}} yorum", + "comment": "{{displayCount}} yorum", + "comment_other": "{{displayCount}} yorum", "couldNotLoad": "Tartışma yüklenemedi", "couldNotLoadMore": "Daha fazla yorum yüklenemedi.", "couldNotReply": "Yanıt verilemedi.", @@ -2236,12 +2243,13 @@ "mutedUser": "{{login}} susturuldu", "noDiscussion": "Henüz tartışma yok", "noDiscussionDescription": "Bu çekme isteğinde inceleme konusu veya konuşma yorumu yok.", - "oneComment": "1 yorum", + "comment_one": "1 yorum", "outdated": "Güncel değil", "quotedDiffSnippet": "Alıntılanan diff parçası", "reactionPill": "{{emoji}} tepki, {{count}} {{countLabel}}", - "reactionPlural": "tepki", - "reactionSingular": "tepki", + "reaction": "tepki", + "reaction_other": "tepki", + "reaction_one": "tepki", "reactionsTitle": "Tepkiler", "reply": "Yanıtla", "replyBadRequest": "Bu yanıt gönderilemiyor. Konu değişmiş olabilir.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "{{count}} satır daha genişlet ({{start}}–{{end}})", "failedToLoadContext": "Bağlam yüklenemedi — tekrar denemek için dokunun", "failedToLoadMoreFiles": "Daha fazla dosya yüklenemedi — tekrar denemek için dokunun", - "fileLoaded": "{{count}} dosya yüklendi", - "fileLoadedOfTotal": "{{total}} dosyanın {{count}} kadarı yüklendi", - "filesLoaded": "{{count}} dosya yüklendi", - "filesLoadedOfTotal": "{{total}} dosyanın {{count}} kadarı yüklendi", + "fileLoadedCount_one": "{{displayCount}} dosya yüklendi", + "fileLoadedOfTotalCount_one": "{{total}} dosyanın {{displayCount}} kadarı yüklendi", + "fileLoadedCount": "{{displayCount}} dosya yüklendi", + "fileLoadedCount_other": "{{displayCount}} dosya yüklendi", + "fileLoadedOfTotalCount": "{{total}} dosyanın {{displayCount}} kadarı yüklendi", + "fileLoadedOfTotalCount_other": "{{total}} dosyanın {{displayCount}} kadarı yüklendi", "filesStillLoading": "Dosyalar hâlâ yükleniyor. Yenilemek için aşağı çekin.", "goToOverview": "Genel Bakış'a git", "goToOverviewTab": "Genel Bakış sekmesine git", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Değişen dosya yok", "noFilesChangedDescription": "Bu çekme isteğinde dosya değişikliği yok.", "overview": { - "commitPlural": "commit", - "commitSingular": "commit", - "filePlural": "dosya", - "fileSingular": "dosya", + "commit": "commit", + "commit_other": "commit", + "commit_one": "commit", + "file": "dosya", + "file_other": "dosya", + "file_one": "dosya", "stateClosed": "Kapalı", "stateDraft": "Taslak", "stateMerged": "Birleştirildi", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Bu yorum inceleme kuyruğundan kaldırılacak.", "deletePendingTitle": "Bekleyen yorum silinsin mi?", "loadFailedTitle": "İnceleme gönderimi yüklenemedi", - "pendingCommentPlural": "bekleyen yorum", - "pendingCommentSingular": "bekleyen yorum", + "pendingComment": "bekleyen yorum", + "pendingComment_other": "bekleyen yorum", + "pendingComment_one": "bekleyen yorum", "summaryOptional": "Özet (isteğe bağlı)", "title": "İncelemeyi gönder", "partialPostedMessage": "{{freshCount}} yorum gönderildi. {{staleCount}} yorum daha eski bir commit'e işaret ediyor ve kuyruğunuzda kaldı.", @@ -2632,8 +2645,9 @@ "manageHint": "Web'de Kilo Pass yönetimini açar.", "notSubscribed": "Abone değil", "overallocated": "Pass atamaları ödenen koltuk sayısını aşıyor", - "paidSeatOne": "{{count}} ödenen koltuk", - "paidSeatOther": "{{count}} ödenen koltuk", + "paidSeat_one": "{{displayCount}} ödenen koltuk", + "paidSeat": "{{displayCount}} ödenen koltuk", + "paidSeat_other": "{{displayCount}} ödenen koltuk", "paymentNeedsAttention": "Ödeme ilgi gerektiriyor", "paymentPending": "Ödeme bekliyor", "processingBlocked": "İşleme engellendi", diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 5a3af4d9db..d2f48bf185 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Хтось", - "oneTyping": "{{name}} друкує...", - "manyTyping": "{{names}} друкують..." + "typing_one": "{{name}} друкує...", + "typing": "{{names}} друкують...", + "typing_other": "{{names}} друкують..." }, "botStatus": { "online": "У мережі", @@ -350,12 +351,10 @@ "couldNotLoad": "Не вдалося завантажити інформацію про оплату", "manageOnWeb": "Керування оплатою у вебверсії", "commitPlan": "Commit", - "daysLeft": "Залишилося {{count}} дн.", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Ваш останній період Commit закінчується {{date}}. Продовжте як Standard за {{price}}, або хостинг завершиться.", "freeTrial": "Безкоштовний пробний період", "hostingEnds": "Хостинг завершується", - "oneDayLeft": "Залишився 1 день", "renews": "Продовжується", "standardMonthToMonth": "Standard щомісяця", "standardStartsOn": "Standard починається {{date}} за {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} потребує уваги: {{label}}", "open": "Відкрити {{name}}", "openSettings": "Відкрити налаштування для {{name}}", - "openUnreadMany": "Відкрити {{name}}, {{count}} непрочитаних повідомлень", - "openUnreadOne": "Відкрити {{name}}, {{count}} непрочитане повідомлення" + "openUnread": "Відкрити {{name}}, {{displayCount}} непрочитаних повідомлень", + "openUnread_other": "Відкрити {{name}}, {{displayCount}} непрочитаних повідомлень", + "openUnread_one": "Відкрити {{name}}, {{displayCount}} непрочитане повідомлення" }, "list": { "createInstance": "Створити екземпляр", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Також ставити в чергу вже проаналізовані відповідні знахідки. Дублікати PR залишаються прихованими.", "minimumSeverity": "Мінімальна серйозність", "permissionNote": "Змінювати ці налаштування можуть лише власники організації та менеджери з оплати.", - "queuedMany": "{{count}} наявних знахідок у черзі на аналіз.", - "queuedOne": "{{count}} наявна знахідка в черзі на аналіз.", + "queued": "{{displayCount}} наявних знахідок у черзі на аналіз.", + "queued_other": "{{displayCount}} наявних знахідок у черзі на аналіз.", + "queued_one": "{{displayCount}} наявна знахідка в черзі на аналіз.", "requireApproval": "Вимагати схвалення перед автоусуненням", "requireApprovalSubtitle": "Автоусунення чекає на ваше схвалення перед відкриттям PR.", "severityAll": "Усі серйозності", @@ -1270,8 +1271,9 @@ "off": "Вимкнено", "on": "Увімкнено", "repositories": "Репозиторії", - "repositoriesSelected": "вибрано {{count}} репозиторіїв", - "repositorySelected": "вибрано {{count}} репозиторій", + "repositoriesCount": "вибрано {{displayCount}} репозиторіїв", + "repositoriesCount_other": "вибрано {{displayCount}} репозиторіїв", + "repositoriesCount_one": "вибрано {{displayCount}} репозиторій", "securityAgent": "Агент безпеки", "selectRepositories": "Вибрати репозиторії", "selectRepositoriesSubtitle": "Виберіть, які репозиторії відстежує Агент безпеки", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Сеанс видалено", "needsInput": "потребує вводу", "fromPlatform": "з {{platform}}", - "centOne": "цент", - "centOther": "центів", - "dollarOne": "долар", - "dollarOther": "доларів" + "cent_one": "цент", + "cent": "центів", + "cent_other": "центів", + "dollar_one": "долар", + "dollar": "доларів", + "dollar_other": "доларів" }, "githubInstall": { "couldNotOpenMessage": "Не вдалося розпочати налаштування застосунку GitHub. Спробуйте ще раз.", @@ -1445,8 +1449,9 @@ "keepEditing": "Продовжити редагування" }, "partRenderer": { - "updatedFile": "Оновлено {{count}} файл", - "updatedFiles": "Оновлено {{count}} файлів" + "updatedFileCount_one": "Оновлено {{displayCount}} файл", + "updatedFileCount": "Оновлено {{displayCount}} файлів", + "updatedFileCount_other": "Оновлено {{displayCount}} файлів" }, "toolPatch": { "operationAdded": "Додано", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Раніші повідомлення завантажено", "retryHint": "Повторює завантаження давніших повідомлень цього сеансу.", - "omittedOne": "Один давніший елемент цього сеансу не вдалося відобразити.", - "omittedMany": "{{count}} давніших елементів цього сеансу не вдалося відобразити.", + "omitted_one": "Один давніший елемент цього сеансу не вдалося відобразити.", + "omitted": "{{displayCount}} давніших елементів цього сеансу не вдалося відобразити.", + "omitted_other": "{{displayCount}} давніших елементів цього сеансу не вдалося відобразити.", "couldNotLoad": "Не вдалося завантажити давніші повідомлення.", "unavailable": "Давніші повідомлення недоступні.", "tooLarge": "Давніші повідомлення завеликі для завантаження." @@ -1697,10 +1703,12 @@ "viewTable": "Переглянути таблицю", "title": "Таблиця", "close": "Закрити таблицю", - "column": "стовпець", - "columns": "стовпці", - "row": "рядок", - "rows": "рядки", + "columnCount_one": "стовпець", + "columnCount": "стовпці", + "columnCount_other": "стовпці", + "rowCount_one": "рядок", + "rowCount": "рядки", + "rowCount_other": "рядки", "opensFullScreen": "відкривається на весь екран" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "з {{window}} токенів", "tokens": "токени", "tokensWithPercentage": "токени ({{percentage}})", - "stepsCountOne": "{{steps}} крок", - "stepsCountMany": "{{steps}} кроків", + "stepsCount_one": "{{steps}} крок", + "stepsCount": "{{steps}} кроків", + "stepsCount_other": "{{steps}} кроків", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Нове завдання кодування", "explore": "Дослідити", "seeAll": "Показати всі", - "kiloAgents": "Агенти Kilo", - "greetingMorning": "Доброго ранку", - "greetingAfternoon": "Доброго дня", - "greetingEvening": "Доброго вечора" + "kiloAgents": "Агенти Kilo" }, "imageViewer": { "close": "Закрити {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Закрити реакції", "collapseThread": "Згорнути гілку", "commentActions": "Дії з коментарем", - "commentCount": "{{count}} коментарів", + "comment": "{{displayCount}} коментарів", + "comment_other": "{{displayCount}} коментарів", "couldNotLoad": "Не вдалося завантажити обговорення", "couldNotLoadMore": "Не вдалося завантажити більше коментарів.", "couldNotReply": "Не вдалося відповісти.", @@ -2236,12 +2243,13 @@ "mutedUser": "Заглушено {{login}}", "noDiscussion": "Обговорень ще немає", "noDiscussionDescription": "У цьому pull request немає гілок перевірки або коментарів у розмові.", - "oneComment": "1 коментар", + "comment_one": "1 коментар", "outdated": "Застаріле", "quotedDiffSnippet": "Процитований фрагмент diff", "reactionPill": "{{emoji}} реакція, {{count}} {{countLabel}}", - "reactionPlural": "реакцій", - "reactionSingular": "реакція", + "reaction": "реакцій", + "reaction_other": "реакцій", + "reaction_one": "реакція", "reactionsTitle": "Реакції", "reply": "Відповісти", "replyBadRequest": "Цю відповідь не можна опублікувати. Можливо, гілку було змінено.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Розгорнути ще {{count}} рядків ({{start}}–{{end}})", "failedToLoadContext": "Не вдалося завантажити контекст — торкніться, щоб повторити", "failedToLoadMoreFiles": "Не вдалося завантажити більше файлів — торкніться, щоб повторити", - "fileLoaded": "Завантажено {{count}} файл", - "fileLoadedOfTotal": "Завантажено {{count}} файл з {{total}}", - "filesLoaded": "Завантажено {{count}} файлів", - "filesLoadedOfTotal": "Завантажено {{count}} файлів з {{total}}", + "fileLoadedCount_one": "Завантажено {{displayCount}} файл", + "fileLoadedOfTotalCount_one": "Завантажено {{displayCount}} файл з {{total}}", + "fileLoadedCount": "Завантажено {{displayCount}} файлів", + "fileLoadedCount_other": "Завантажено {{displayCount}} файлів", + "fileLoadedOfTotalCount": "Завантажено {{displayCount}} файлів з {{total}}", + "fileLoadedOfTotalCount_other": "Завантажено {{displayCount}} файлів з {{total}}", "filesStillLoading": "Файли ще завантажуються. Потягніть, щоб оновити.", "goToOverview": "Перейти до огляду", "goToOverviewTab": "Перейти на вкладку «Огляд»", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Файли не змінювалися", "noFilesChangedDescription": "У цьому pull request немає змін файлів.", "overview": { - "commitPlural": "комітів", - "commitSingular": "коміт", - "filePlural": "файлів", - "fileSingular": "файл", + "commit": "комітів", + "commit_other": "комітів", + "commit_one": "коміт", + "file": "файлів", + "file_other": "файлів", + "file_one": "файл", "stateClosed": "Закрито", "stateDraft": "Чернетка", "stateMerged": "Злито", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Цей коментар буде видалено з черги перевірки.", "deletePendingTitle": "Видалити відкладений коментар?", "loadFailedTitle": "Не вдалося завантажити надсилання перевірки", - "pendingCommentPlural": "відкладених коментарів", - "pendingCommentSingular": "відкладений коментар", + "pendingComment": "відкладених коментарів", + "pendingComment_other": "відкладених коментарів", + "pendingComment_one": "відкладений коментар", "summaryOptional": "Підсумок (необов'язково)", "title": "Надіслати перевірку", "partialPostedMessage": "Опубліковано {{freshCount}} коментарів. {{staleCount}} коментарів вказують на старіший коміт і залишилися у вашій черзі.", @@ -2632,8 +2645,9 @@ "manageHint": "Відкриває керування Kilo Pass у вебверсії.", "notSubscribed": "Немає підписки", "overallocated": "Призначення Pass перевищують оплачені місця", - "paidSeatOne": "{{count}} оплачене місце", - "paidSeatOther": "{{count}} оплачених місць", + "paidSeat_one": "{{displayCount}} оплачене місце", + "paidSeat": "{{displayCount}} оплачених місць", + "paidSeat_other": "{{displayCount}} оплачених місць", "paymentNeedsAttention": "Платіж потребує уваги", "paymentPending": "Платіж очікується", "processingBlocked": "Обробку заблоковано", diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 66d412270f..44189a2d9b 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} میں سے {{loaded}} فائلیں لوڈ ہوئیں", "loadAllFiles": "تمام فائلیں لوڈ کریں", "loadAll": "سب لوڈ کریں", - "fileLoaded": "{{count}} فائل لوڈ ہوئی", - "filesLoaded": "{{count}} فائلیں لوڈ ہوئیں", - "fileLoadedOfTotal": "{{total}} میں سے {{count}} فائل لوڈ ہوئی", - "filesLoadedOfTotal": "{{total}} میں سے {{count}} فائلیں لوڈ ہوئیں", + "fileLoadedCount_one": "{{displayCount}} فائل لوڈ ہوئی", + "fileLoadedCount": "{{displayCount}} فائلیں لوڈ ہوئیں", + "fileLoadedCount_other": "{{displayCount}} فائلیں لوڈ ہوئیں", + "fileLoadedOfTotalCount_one": "{{total}} میں سے {{displayCount}} فائل لوڈ ہوئی", + "fileLoadedOfTotalCount": "{{total}} میں سے {{displayCount}} فائلیں لوڈ ہوئیں", + "fileLoadedOfTotalCount_other": "{{total}} میں سے {{displayCount}} فائلیں لوڈ ہوئیں", "filesStillLoading": "فائلیں ابھی لوڈ ہو رہی ہیں۔ تازہ کرنے کے لیے نیچے کھینچیں۔", "goToOverview": "جائزہ پر جائیں", "goToOverviewTab": "جائزہ ٹیب پر جائیں" @@ -288,8 +290,9 @@ "resolved": "حل شدہ", "outdated": "پرانا", "file": "فائل", - "oneComment": "1 تبصرہ", - "commentCount": "{{count}} تبصرے", + "comment_one": "1 تبصرہ", + "comment": "{{displayCount}} تبصرے", + "comment_other": "{{displayCount}} تبصرے", "startedRelative": " · {{relative}} پر شروع ہوا", "couldNotLoadMore": "مزید تبصرے لوڈ نہیں ہو سکے۔", "retryLoadingMore": "مزید تبصرے لوڈ کرنے کی دوبارہ کوشش کریں", @@ -299,8 +302,9 @@ "reactionsTitle": "ردعمل", "addReaction": "ردعمل شامل کریں", "reactionPill": "{{emoji}} ردعمل، {{count}} {{countLabel}}", - "reactionSingular": "ردعمل", - "reactionPlural": "ردعمل", + "reaction_one": "ردعمل", + "reaction": "ردعمل", + "reaction_other": "ردعمل", "commentActions": "تبصرے کے اعمال", "reportContent": "مواد رپورٹ کریں", "reportUser": "صارف رپورٹ کریں", @@ -452,8 +456,9 @@ "deletePendingMessage": "یہ تبصرہ جائزے کی قطار سے ہٹا دیا جائے گا۔", "delete": "حذف کریں", "summaryOptional": "خلاصہ (اختیاری)", - "pendingCommentSingular": "زیر التوا تبصرہ", - "pendingCommentPlural": "زیر التوا تبصرے", + "pendingComment_one": "زیر التوا تبصرہ", + "pendingComment": "زیر التوا تبصرے", + "pendingComment_other": "زیر التوا تبصرے", "submitCountOfTotal": "{{totalCount}} میں سے {{freshCount}} تبصرے جمع کریں", "submitReview": "جائزہ جمع کریں", "partialPostedMessage": "{{freshCount}} تبصرہ(ے) پوسٹ ہوئے۔ {{staleCount}} تبصرہ(ے) پرانی کمیٹ کی طرف اشارہ کرتے ہیں اور آپ کی قطار میں رہے۔" @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "کھلا · جائزہ مطلوبہ", "stateOpen": "کھلا", "unknownAuthor": "نامعلوم مصنف", - "commitSingular": "کمیٹ", - "commitPlural": "کمیٹیں", - "fileSingular": "فائل", - "filePlural": "فائلیں" + "commit_one": "کمیٹ", + "commit": "کمیٹیں", + "commit_other": "کمیٹیں", + "file_one": "فائل", + "file": "فائلیں", + "file_other": "فائلیں" }, "pendingComment": { "editOutdatedA11y": "{{location}} پر پرانا زیر التوا تبصرہ ترمیم کریں", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "کوئی", - "oneTyping": "{{name}} ٹائپ کر رہا ہے...", - "manyTyping": "{{names}} ٹائپ کر رہے ہیں..." + "typing_one": "{{name}} ٹائپ کر رہا ہے...", + "typing": "{{names}} ٹائپ کر رہے ہیں...", + "typing_other": "{{names}} ٹائپ کر رہے ہیں..." }, "botStatus": { "online": "آن لائن", @@ -722,12 +730,10 @@ "couldNotLoad": "بلنگ کی معلومات لوڈ نہیں ہو سکیں", "manageOnWeb": "ویب پر بلنگ منظم کریں", "commitPlan": "کمٹ", - "daysLeft": "{{count}} دن باقی", "earlybird": "Earlybird", "finalCommitTermEndsOn": "آپ کی آخری Commit مدت {{date}} کو ختم ہوتی ہے۔ {{price}} پر Standard جاری رکھیں، ورنہ ہوسٹنگ ختم ہو جائے گی۔", "freeTrial": "مفت آزمائش", "hostingEnds": "ہوسٹنگ ختم", - "oneDayLeft": "1 دن باقی", "renews": "تجدید", "standardMonthToMonth": "معیاری ماہانہ", "standardStartsOn": "Standard {{date}} کو {{price}} پر شروع ہوتا ہے۔", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} کو توجہ درکار ہے: {{label}}", - "openUnreadOne": "{{name}} کھولیں، {{count}} غیر پڑھا پیغام", - "openUnreadMany": "{{name}} کھولیں، {{count}} غیر پڑھے پیغامات", + "openUnread_one": "{{name}} کھولیں، {{displayCount}} غیر پڑھا پیغام", + "openUnread": "{{name}} کھولیں، {{displayCount}} غیر پڑھے پیغامات", + "openUnread_other": "{{name}} کھولیں، {{displayCount}} غیر پڑھے پیغامات", "open": "{{name}} کھولیں", "openSettings": "{{name}} کی ترتیبات کھولیں", "fixOnKiloAi": "kilo.ai پر درست کریں: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "آٹو اصلاح فعال کریں؟", "enableAutoRemediationConfirmMessage": "سیکیورٹی ایجنٹ اہل استعمال کے قابل نتائج کے لیے خود بخود اصلاحی PRs کھولے گا۔", "enable": "فعال کریں", - "queuedOne": "{{count}} موجودہ نتیجہ تجزیہ کے لیے قطار میں شامل کیا گیا۔", - "queuedMany": "{{count}} موجودہ نتائج تجزیہ کے لیے قطار میں شامل کیے گئے۔", + "queued_one": "{{displayCount}} موجودہ نتیجہ تجزیہ کے لیے قطار میں شامل کیا گیا۔", + "queued": "{{displayCount}} موجودہ نتائج تجزیہ کے لیے قطار میں شامل کیے گئے۔", + "queued_other": "{{displayCount}} موجودہ نتائج تجزیہ کے لیے قطار میں شامل کیے گئے۔", "severityCriticalOnly": "صرف نازک", "severityHighAndAbove": "اعلیٰ اور اس سے اوپر", "severityMediumAndAbove": "درمیانی اور اس سے اوپر", @@ -1482,8 +1490,9 @@ "on": "آن", "off": "آف", "allRepositories": "تمام ریپوزٹریز", - "repositorySelected": "{{count}} ریپوزٹری منتخب", - "repositoriesSelected": "{{count}} ریپوزٹریز منتخب", + "repositoriesCount_one": "{{displayCount}} ریپوزٹری منتخب", + "repositoriesCount": "{{displayCount}} ریپوزٹریز منتخب", + "repositoriesCount_other": "{{displayCount}} ریپوزٹریز منتخب", "selectRepositories": "ریپوزٹریز منتخب کریں", "selectRepositoriesSubtitle": "منتخب کریں کہ سکیورٹی ایجنٹ کون سی ریپوزٹریز کی نگرانی کرتا ہے", "repositories": "ریپوزٹریز", @@ -1720,10 +1729,12 @@ "sessionDeleted": "سیشن حذف ہو گیا", "needsInput": "ان پٹ درکار", "fromPlatform": "{{platform}} سے", - "centOne": "سینٹ", - "centOther": "سینٹ", - "dollarOne": "ڈالر", - "dollarOther": "ڈالر" + "cent_one": "سینٹ", + "cent": "سینٹ", + "cent_other": "سینٹ", + "dollar_one": "ڈالر", + "dollar": "ڈالر", + "dollar_other": "ڈالر" }, "githubInstall": { "couldNotOpenTitle": "GitHub نہیں کھل سکا", @@ -1817,8 +1828,9 @@ "discardFailed": "ڈرافٹ خارج نہیں ہو سکا۔ براہ کرم دوبارہ کوشش کریں۔" }, "partRenderer": { - "updatedFile": "{{count}} فائل اپ ڈیٹ ہوئی", - "updatedFiles": "{{count}} فائلیں اپ ڈیٹ ہوئیں" + "updatedFileCount_one": "{{displayCount}} فائل اپ ڈیٹ ہوئی", + "updatedFileCount": "{{displayCount}} فائلیں اپ ڈیٹ ہوئیں", + "updatedFileCount_other": "{{displayCount}} فائلیں اپ ڈیٹ ہوئیں" }, "toolPatch": { "operationAdded": "شامل کیا گیا", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "پہلے کے پیغامات لوڈ ہو گئے", "retryHint": "اس سیشن کے لیے پرانے پیغامات کی لوڈنگ دوبارہ کرتا ہے۔", - "omittedOne": "اس سیشن کی کچھ پہلے کی اشیاء ظاہر نہیں ہو سکیں۔", - "omittedMany": "اس سیشن کی {{count}} پہلے کی اشیاء ظاہر نہیں ہو سکیں۔", + "omitted_one": "اس سیشن کی کچھ پہلے کی اشیاء ظاہر نہیں ہو سکیں۔", + "omitted": "اس سیشن کی {{displayCount}} پہلے کی اشیاء ظاہر نہیں ہو سکیں۔", + "omitted_other": "اس سیشن کی {{displayCount}} پہلے کی اشیاء ظاہر نہیں ہو سکیں۔", "couldNotLoad": "پہلے کے پیغامات لوڈ نہیں ہو سکے۔", "unavailable": "پہلے کے پیغامات دستیاب نہیں ہیں۔", "tooLarge": "پہلے کے پیغامات لوڈ کرنے کے لیے بہت بڑے ہیں۔" @@ -2069,10 +2082,12 @@ "viewTable": "ٹیبل دیکھیں", "title": "ٹیبل", "close": "ٹیبل بند کریں", - "column": "کالم", - "columns": "کالمز", - "row": "قطار", - "rows": "قطاریں", + "columnCount_one": "کالم", + "columnCount": "کالمز", + "columnCount_other": "کالمز", + "rowCount_one": "قطار", + "rowCount": "قطاریں", + "rowCount_other": "قطاریں", "opensFullScreen": "مکمل اسکرین کھولتا ہے" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} ٹوکنز میں سے", "tokens": "ٹوکنز", "tokensWithPercentage": "ٹوکنز ({{percentage}})", - "stepsCountOne": "{{steps}} قدم", - "stepsCountMany": "{{steps}} قدم", + "stepsCount_one": "{{steps}} قدم", + "stepsCount": "{{steps}} قدم", + "stepsCount_other": "{{steps}} قدم", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "نیا کوڈنگ کام", "explore": "دریافت کریں", "seeAll": "سب دیکھیں", - "kiloAgents": "Kilo ایجنٹس", - "greetingMorning": "صبح بخیر", - "greetingAfternoon": "دوپہر بخیر", - "greetingEvening": "شام بخیر" + "kiloAgents": "Kilo ایجنٹس" }, "imageViewer": { "close": "{{filename}} بند کریں", @@ -2645,8 +2658,9 @@ "manageHint": "ویب پر Kilo Pass انتظام کھولتا ہے۔", "notSubscribed": "سبسکرائب نہیں", "overallocated": "پاس کی تفویض ادا شدہ سیٹوں سے زیادہ", - "paidSeatOne": "{{count}} ادا شدہ سیٹ", - "paidSeatOther": "{{count}} ادا شدہ سیٹیں", + "paidSeat_one": "{{displayCount}} ادا شدہ سیٹ", + "paidSeat": "{{displayCount}} ادا شدہ سیٹیں", + "paidSeat_other": "{{displayCount}} ادا شدہ سیٹیں", "paymentNeedsAttention": "ادائیگی کو توجہ کی ضرورت ہے", "paymentPending": "ادائیگی زیر التوا", "processingBlocked": "پروسیسنگ مسدود", diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index b6dc476381..51fa70474b 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{total}} dan {{loaded}} fayl yuklandi", "loadAllFiles": "Barcha fayllarni yuklash", "loadAll": "Hammasini yuklash", - "fileLoaded": "{{count}} fayl yuklandi", - "filesLoaded": "{{count}} fayl yuklandi", - "fileLoadedOfTotal": "{{total}} dan {{count}} fayl yuklandi", - "filesLoadedOfTotal": "{{total}} dan {{count}} fayl yuklandi", + "fileLoadedCount_one": "{{displayCount}} fayl yuklandi", + "fileLoadedCount": "{{displayCount}} fayl yuklandi", + "fileLoadedCount_other": "{{displayCount}} fayl yuklandi", + "fileLoadedOfTotalCount_one": "{{total}} dan {{displayCount}} fayl yuklandi", + "fileLoadedOfTotalCount": "{{total}} dan {{displayCount}} fayl yuklandi", + "fileLoadedOfTotalCount_other": "{{total}} dan {{displayCount}} fayl yuklandi", "filesStillLoading": "Fayllar hali ham yuklanmoqda. Yangilash uchun pastga suring.", "goToOverview": "Umumiy ko'rinishga o'tish", "goToOverviewTab": "Umumiy ko'rinish yorlig'iga o'tish" @@ -288,8 +290,9 @@ "resolved": "Hal qilindi", "outdated": "Eskirgan", "file": "Fayl", - "oneComment": "1 izoh", - "commentCount": "{{count}} izoh", + "comment_one": "1 izoh", + "comment": "{{displayCount}} izoh", + "comment_other": "{{displayCount}} izoh", "startedRelative": " · {{relative}} da boshlangan", "couldNotLoadMore": "Ko'proq izohlarni yuklab bo'lmadi.", "retryLoadingMore": "Ko'proq izohlarni yuklashni qayta urinish", @@ -299,8 +302,9 @@ "reactionsTitle": "Reaksiyalar", "addReaction": "Reaksiya qo'shish", "reactionPill": "{{emoji}} reaksiya, {{count}} {{countLabel}}", - "reactionSingular": "reaksiya", - "reactionPlural": "reaksiya", + "reaction_one": "reaksiya", + "reaction": "reaksiya", + "reaction_other": "reaksiya", "commentActions": "Izoh amallari", "reportContent": "Kontentni shikoyat qilish", "reportUser": "Foydalanuvchini shikoyat qilish", @@ -452,8 +456,9 @@ "deletePendingMessage": "Bu izoh sharh navbatidan o'chiriladi.", "delete": "O'chirish", "summaryOptional": "Xulosa (ixtiyoriy)", - "pendingCommentSingular": "kutilayotgan izoh", - "pendingCommentPlural": "kutilayotgan izohlar", + "pendingComment_one": "kutilayotgan izoh", + "pendingComment": "kutilayotgan izohlar", + "pendingComment_other": "kutilayotgan izohlar", "submitCountOfTotal": "{{totalCount}} izohdan {{freshCount}} tasini yuborish", "submitReview": "Sharhni yuborish", "partialPostedMessage": "{{freshCount}} izoh yuborildi. {{staleCount}} izoh eski commitga tegishli bo'lib, navbatingizda qoldi." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Ochiq · Sharh talab qilinadi", "stateOpen": "Ochiq", "unknownAuthor": "Noma'lum muallif", - "commitSingular": "commit", - "commitPlural": "commit", - "fileSingular": "fayl", - "filePlural": "fayl" + "commit_one": "commit", + "commit": "commit", + "commit_other": "commit", + "file_one": "fayl", + "file": "fayl", + "file_other": "fayl" }, "pendingComment": { "editOutdatedA11y": "{{location}} dagi eskirgan kutilayotgan izohni tahrirlash", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Kimdir", - "oneTyping": "{{name}} yozmoqda...", - "manyTyping": "{{names}} yozmoqda..." + "typing_one": "{{name}} yozmoqda...", + "typing": "{{names}} yozmoqda...", + "typing_other": "{{names}} yozmoqda..." }, "botStatus": { "online": "Onlayn", @@ -722,12 +730,10 @@ "couldNotLoad": "To'lov ma'lumotlarini yuklab bo'lmadi", "manageOnWeb": "Vebda to'lovlarni boshqarish", "commitPlan": "Commit", - "daysLeft": "{{count}} kun qoldi", "earlybird": "Erta qush", "finalCommitTermEndsOn": "Yakuniy Commit muddati {{date}} da tugaydi. Standard rejimda {{price}} narxda davom eting, aks holda xosting tugaydi.", "freeTrial": "Bepul sinov", "hostingEnds": "Xosting tugaydi", - "oneDayLeft": "1 kun qoldi", "renews": "Yangilanadi", "standardMonthToMonth": "Standard, oylik", "standardStartsOn": "Standard rejimi {{date}} da {{price}} narxda boshlanadi.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} e'tibor talab qiladi: {{label}}", - "openUnreadOne": "{{name}}ni ochish, {{count}} ta o'qilmagan xabar", - "openUnreadMany": "{{name}}ni ochish, {{count}} ta o'qilmagan xabar", + "openUnread_one": "{{name}}ni ochish, {{displayCount}} ta o'qilmagan xabar", + "openUnread": "{{name}}ni ochish, {{displayCount}} ta o'qilmagan xabar", + "openUnread_other": "{{name}}ni ochish, {{displayCount}} ta o'qilmagan xabar", "open": "{{name}}ni ochish", "openSettings": "{{name}} uchun sozlamalarni ochish", "fixOnKiloAi": "kilo.ai da tuzatish: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Avto-tuzatish yoqilsinmi?", "enableAutoRemediationConfirmMessage": "Xavfsizlik agenti muvofiq ekspluatatsiya qilinadigan topilmalar uchun tuzatish PRlarini avtomatik ochadi.", "enable": "Yoqish", - "queuedOne": "{{count}} ta mavjud natija tahlilga navbatga qo'yildi.", - "queuedMany": "{{count}} ta mavjud natija tahlilga navbatga qo'yildi.", + "queued_one": "{{displayCount}} ta mavjud natija tahlilga navbatga qo'yildi.", + "queued": "{{displayCount}} ta mavjud natija tahlilga navbatga qo'yildi.", + "queued_other": "{{displayCount}} ta mavjud natija tahlilga navbatga qo'yildi.", "severityCriticalOnly": "Faqat tanqidiy", "severityHighAndAbove": "Yuqori va undan yuqori", "severityMediumAndAbove": "O'rta va undan yuqori", @@ -1482,8 +1490,9 @@ "on": "Yoniq", "off": "O'chiq", "allRepositories": "Barcha repozitoriyalar", - "repositorySelected": "{{count}} ta repozitoriya tanlandi", - "repositoriesSelected": "{{count}} ta repozitoriya tanlandi", + "repositoriesCount_one": "{{displayCount}} ta repozitoriya tanlandi", + "repositoriesCount": "{{displayCount}} ta repozitoriya tanlandi", + "repositoriesCount_other": "{{displayCount}} ta repozitoriya tanlandi", "selectRepositories": "Repozitoriyalarni tanlash", "selectRepositoriesSubtitle": "Security Agent qaysi repozitoriyalarni kuzatishini tanlang", "repositories": "Repozitoriyalar", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Sessiya o'chirildi", "needsInput": "kiritish kerak", "fromPlatform": "{{platform}} dan", - "centOne": "sent", - "centOther": "sent", - "dollarOne": "dollar", - "dollarOther": "dollar" + "cent_one": "sent", + "cent": "sent", + "cent_other": "sent", + "dollar_one": "dollar", + "dollar": "dollar", + "dollar_other": "dollar" }, "githubInstall": { "couldNotOpenTitle": "GitHub'ni ochib bo'lmadi", @@ -1817,8 +1828,9 @@ "discardFailed": "Qoralamani bekor qilib bo'lmadi. Iltimos, qayta urinib ko'ring." }, "partRenderer": { - "updatedFile": "{{count}} ta fayl yangilandi", - "updatedFiles": "{{count}} ta fayl yangilandi" + "updatedFileCount_one": "{{displayCount}} ta fayl yangilandi", + "updatedFileCount": "{{displayCount}} ta fayl yangilandi", + "updatedFileCount_other": "{{displayCount}} ta fayl yangilandi" }, "toolPatch": { "operationAdded": "Qo'shildi", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Oldingi xabarlar yuklandi", "retryHint": "Bu sessiya uchun oldingi xabarlarni yuklashni qayta amalga oshiradi.", - "omittedOne": "Bu sessiyadagi ba'zi oldingi elementlar ko'rsatilmadi.", - "omittedMany": "Bu sessiyadagi {{count}} ta oldingi element ko'rsatilmadi.", + "omitted_one": "Bu sessiyadagi ba'zi oldingi elementlar ko'rsatilmadi.", + "omitted": "Bu sessiyadagi {{displayCount}} ta oldingi element ko'rsatilmadi.", + "omitted_other": "Bu sessiyadagi {{displayCount}} ta oldingi element ko'rsatilmadi.", "couldNotLoad": "Oldingi xabarlarni yuklab bo'lmadi.", "unavailable": "Oldingi xabarlar mavjud emas.", "tooLarge": "Oldingi xabarlar yuklash uchun juda katta." @@ -2069,10 +2082,12 @@ "viewTable": "Jadvalni ko'rish", "title": "Jadval", "close": "Jadvalni yopish", - "column": "ustun", - "columns": "ustunlar", - "row": "qator", - "rows": "qatorlar", + "columnCount_one": "ustun", + "columnCount": "ustunlar", + "columnCount_other": "ustunlar", + "rowCount_one": "qator", + "rowCount": "qatorlar", + "rowCount_other": "qatorlar", "opensFullScreen": "to'liq ekranda ochiladi" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "{{window}} tokendan", "tokens": "tokenlar", "tokensWithPercentage": "tokenlar ({{percentage}})", - "stepsCountOne": "{{steps}} qadam", - "stepsCountMany": "{{steps}} qadam", + "stepsCount_one": "{{steps}} qadam", + "stepsCount": "{{steps}} qadam", + "stepsCount_other": "{{steps}} qadam", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Yangi kodlash vazifasi", "explore": "O'rganish", "seeAll": "Barchasini ko'rish", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Xayrli tong", - "greetingAfternoon": "Xayrli kun", - "greetingEvening": "Xayrli oqshom" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "{{filename}} ni yopish", @@ -2645,8 +2658,9 @@ "manageHint": "Kilo Pass boshqaruvini internetda ochadi.", "notSubscribed": "Obuna emas", "overallocated": "Pass tayinlashlar to'langan o'rindiqlardan oshib ketdi", - "paidSeatOne": "{{count}} to'langan o'rindiq", - "paidSeatOther": "{{count}} to'langan o'rindiq", + "paidSeat_one": "{{displayCount}} to'langan o'rindiq", + "paidSeat": "{{displayCount}} to'langan o'rindiq", + "paidSeat_other": "{{displayCount}} to'langan o'rindiq", "paymentNeedsAttention": "To'lov e'tibor talab qiladi", "paymentPending": "To'lov kutilmoqda", "processingBlocked": "Qayta ishlash bloklandi", diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index eace4b3724..730daffe59 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "Ai đó", - "oneTyping": "{{name}} đang nhập...", - "manyTyping": "{{names}} đang nhập..." + "typing_one": "{{name}} đang nhập...", + "typing": "{{names}} đang nhập...", + "typing_other": "{{names}} đang nhập..." }, "botStatus": { "online": "Trực tuyến", @@ -350,12 +351,10 @@ "couldNotLoad": "Không thể tải thông tin thanh toán", "manageOnWeb": "Quản lý thanh toán trên web", "commitPlan": "Commit", - "daysLeft": "Còn {{count}} ngày", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Gói Commit cuối cùng của bạn kết thúc vào {{date}}. Tiếp tục với gói Standard với giá {{price}}, hoặc dịch vụ lưu trữ sẽ kết thúc.", "freeTrial": "Dùng thử miễn phí", "hostingEnds": "Dịch vụ lưu trữ kết thúc", - "oneDayLeft": "Còn 1 ngày", "renews": "Gia hạn", "standardMonthToMonth": "Standard theo tháng", "standardStartsOn": "Standard bắt đầu vào {{date}} với giá {{price}}.", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} cần chú ý: {{label}}", "open": "Mở {{name}}", "openSettings": "Mở cài đặt cho {{name}}", - "openUnreadMany": "Mở {{name}}, {{count}} tin nhắn chưa đọc", - "openUnreadOne": "Mở {{name}}, {{count}} tin nhắn chưa đọc" + "openUnread": "Mở {{name}}, {{displayCount}} tin nhắn chưa đọc", + "openUnread_other": "Mở {{name}}, {{displayCount}} tin nhắn chưa đọc", + "openUnread_one": "Mở {{name}}, {{displayCount}} tin nhắn chưa đọc" }, "list": { "createInstance": "Tạo phiên bản", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "Cũng xếp hàng các phát hiện đủ điều kiện đã phân tích. Các PR trùng lặp vẫn bị chặn.", "minimumSeverity": "Mức nghiêm trọng tối thiểu", "permissionNote": "Chỉ chủ sở hữu tổ chức và người quản lý thanh toán mới có thể thay đổi các cài đặt này.", - "queuedMany": "{{count}} phát hiện hiện có đã được xếp hàng để phân tích.", - "queuedOne": "{{count}} phát hiện hiện có đã được xếp hàng để phân tích.", + "queued": "{{displayCount}} phát hiện hiện có đã được xếp hàng để phân tích.", + "queued_other": "{{displayCount}} phát hiện hiện có đã được xếp hàng để phân tích.", + "queued_one": "{{displayCount}} phát hiện hiện có đã được xếp hàng để phân tích.", "requireApproval": "Yêu cầu phê duyệt trước khi tự động khắc phục", "requireApprovalSubtitle": "Tự động khắc phục chờ phê duyệt của bạn trước khi mở PR.", "severityAll": "Mọi mức nghiêm trọng", @@ -1270,8 +1271,9 @@ "off": "Tắt", "on": "Bật", "repositories": "Kho lưu trữ", - "repositoriesSelected": "Đã chọn {{count}} kho lưu trữ", - "repositorySelected": "Đã chọn {{count}} kho lưu trữ", + "repositoriesCount": "Đã chọn {{displayCount}} kho lưu trữ", + "repositoriesCount_other": "Đã chọn {{displayCount}} kho lưu trữ", + "repositoriesCount_one": "Đã chọn {{displayCount}} kho lưu trữ", "securityAgent": "Security Agent", "selectRepositories": "Chọn kho lưu trữ", "selectRepositoriesSubtitle": "Chọn kho lưu trữ mà Security Agent giám sát", @@ -1348,10 +1350,12 @@ "sessionDeleted": "Đã xóa phiên", "needsInput": "cần nhập", "fromPlatform": "từ {{platform}}", - "centOne": "xu", - "centOther": "xu", - "dollarOne": "đô la", - "dollarOther": "đô la" + "cent_one": "xu", + "cent": "xu", + "cent_other": "xu", + "dollar_one": "đô la", + "dollar": "đô la", + "dollar_other": "đô la" }, "githubInstall": { "couldNotOpenMessage": "Chúng tôi không thể bắt đầu thiết lập ứng dụng GitHub. Vui lòng thử lại.", @@ -1445,8 +1449,9 @@ "keepEditing": "Tiếp tục chỉnh sửa" }, "partRenderer": { - "updatedFile": "Đã cập nhật {{count}} tệp", - "updatedFiles": "Đã cập nhật {{count}} tệp" + "updatedFileCount_one": "Đã cập nhật {{displayCount}} tệp", + "updatedFileCount": "Đã cập nhật {{displayCount}} tệp", + "updatedFileCount_other": "Đã cập nhật {{displayCount}} tệp" }, "toolPatch": { "operationAdded": "Đã thêm", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "Đã tải các tin nhắn trước đó", "retryHint": "Thử lại việc tải các tin nhắn cũ hơn của phiên này.", - "omittedOne": "Không thể hiển thị một mục trước đó của phiên này.", - "omittedMany": "Không thể hiển thị {{count}} mục trước đó của phiên này.", + "omitted_one": "Không thể hiển thị một mục trước đó của phiên này.", + "omitted": "Không thể hiển thị {{displayCount}} mục trước đó của phiên này.", + "omitted_other": "Không thể hiển thị {{displayCount}} mục trước đó của phiên này.", "couldNotLoad": "Không thể tải các tin nhắn trước đó.", "unavailable": "Các tin nhắn trước đó không khả dụng.", "tooLarge": "Các tin nhắn trước đó quá lớn để tải." @@ -1697,10 +1703,12 @@ "viewTable": "Xem bảng", "title": "Bảng", "close": "Đóng bảng", - "column": "cột", - "columns": "các cột", - "row": "hàng", - "rows": "các hàng", + "columnCount_one": "cột", + "columnCount": "các cột", + "columnCount_other": "các cột", + "rowCount_one": "hàng", + "rowCount": "các hàng", + "rowCount_other": "các hàng", "opensFullScreen": "mở toàn màn hình" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "trên {{window}} token", "tokens": "token", "tokensWithPercentage": "token ({{percentage}})", - "stepsCountOne": "{{steps}} bước", - "stepsCountMany": "{{steps}} bước", + "stepsCount_one": "{{steps}} bước", + "stepsCount": "{{steps}} bước", + "stepsCount_other": "{{steps}} bước", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "Tác vụ lập trình mới", "explore": "Khám phá", "seeAll": "Xem tất cả", - "kiloAgents": "Tác nhân Kilo", - "greetingMorning": "Chào buổi sáng", - "greetingAfternoon": "Chào buổi chiều", - "greetingEvening": "Chào buổi tối" + "kiloAgents": "Tác nhân Kilo" }, "imageViewer": { "close": "Đóng {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "Đóng phản ứng", "collapseThread": "Thu gọn luồng", "commentActions": "Hành động bình luận", - "commentCount": "{{count}} bình luận", + "comment": "{{displayCount}} bình luận", + "comment_other": "{{displayCount}} bình luận", "couldNotLoad": "Không thể tải thảo luận", "couldNotLoadMore": "Không thể tải thêm bình luận.", "couldNotReply": "Không thể trả lời.", @@ -2236,12 +2243,13 @@ "mutedUser": "Đã tắt tiếng {{login}}", "noDiscussion": "Chưa có thảo luận", "noDiscussionDescription": "Không có luồng đánh giá hoặc bình luận trò chuyện nào trên yêu cầu hợp nhất này.", - "oneComment": "1 bình luận", + "comment_one": "1 bình luận", "outdated": "Đã lỗi thời", "quotedDiffSnippet": "Đoạn diff được trích dẫn", "reactionPill": "{{emoji}} phản ứng, {{count}} {{countLabel}}", - "reactionPlural": "phản ứng", - "reactionSingular": "phản ứng", + "reaction": "phản ứng", + "reaction_other": "phản ứng", + "reaction_one": "phản ứng", "reactionsTitle": "Phản ứng", "reply": "Trả lời", "replyBadRequest": "Không thể đăng câu trả lời này. Luồng có thể đã thay đổi.", @@ -2350,10 +2358,12 @@ "expandMoreLines": "Mở rộng thêm {{count}} dòng ({{start}}–{{end}})", "failedToLoadContext": "Không tải được ngữ cảnh — chạm để thử lại", "failedToLoadMoreFiles": "Không tải được thêm tệp — chạm để thử lại", - "fileLoaded": "Đã tải {{count}} tệp", - "fileLoadedOfTotal": "Đã tải {{count}} tệp trên {{total}}", - "filesLoaded": "Đã tải {{count}} tệp", - "filesLoadedOfTotal": "Đã tải {{count}} tệp trên {{total}}", + "fileLoadedCount_one": "Đã tải {{displayCount}} tệp", + "fileLoadedOfTotalCount_one": "Đã tải {{displayCount}} tệp trên {{total}}", + "fileLoadedCount": "Đã tải {{displayCount}} tệp", + "fileLoadedCount_other": "Đã tải {{displayCount}} tệp", + "fileLoadedOfTotalCount": "Đã tải {{displayCount}} tệp trên {{total}}", + "fileLoadedOfTotalCount_other": "Đã tải {{displayCount}} tệp trên {{total}}", "filesStillLoading": "Các tệp vẫn đang tải. Kéo xuống để làm mới.", "goToOverview": "Đi tới Tổng quan", "goToOverviewTab": "Đi tới tab Tổng quan", @@ -2429,10 +2439,12 @@ "noFilesChanged": "Không có tệp nào thay đổi", "noFilesChangedDescription": "Yêu cầu hợp nhất này không có thay đổi tệp nào.", "overview": { - "commitPlural": "commit", - "commitSingular": "commit", - "filePlural": "tệp", - "fileSingular": "tệp", + "commit": "commit", + "commit_other": "commit", + "commit_one": "commit", + "file": "tệp", + "file_other": "tệp", + "file_one": "tệp", "stateClosed": "Đã đóng", "stateDraft": "Bản nháp", "stateMerged": "Đã hợp nhất", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "Bình luận này sẽ bị xóa khỏi hàng đợi đánh giá.", "deletePendingTitle": "Xóa bình luận đang chờ?", "loadFailedTitle": "Không thể tải việc gửi đánh giá", - "pendingCommentPlural": "bình luận đang chờ", - "pendingCommentSingular": "bình luận đang chờ", + "pendingComment": "bình luận đang chờ", + "pendingComment_other": "bình luận đang chờ", + "pendingComment_one": "bình luận đang chờ", "summaryOptional": "Tóm tắt (tùy chọn)", "title": "Gửi đánh giá", "partialPostedMessage": "Đã đăng {{freshCount}} bình luận. {{staleCount}} bình luận trỏ đến commit cũ hơn và vẫn nằm trong hàng đợi của bạn.", @@ -2632,8 +2645,9 @@ "manageHint": "Mở quản lý Kilo Pass trên web.", "notSubscribed": "Chưa đăng ký", "overallocated": "Số lượt gán Pass vượt quá số ghế đã thanh toán", - "paidSeatOne": "{{count}} ghế đã thanh toán", - "paidSeatOther": "{{count}} ghế đã thanh toán", + "paidSeat_one": "{{displayCount}} ghế đã thanh toán", + "paidSeat": "{{displayCount}} ghế đã thanh toán", + "paidSeat_other": "{{displayCount}} ghế đã thanh toán", "paymentNeedsAttention": "Thanh toán cần chú ý", "paymentPending": "Thanh toán đang chờ xử lý", "processingBlocked": "Xử lý bị chặn", diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index 6d85cebc0e..3f42ee5c96 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} ti {{total}} awọn faili ti kojọ", "loadAllFiles": "Kojọ gbogbo awọn faili", "loadAll": "Kojọ gbogbo", - "fileLoaded": "{{count}} faili kojọ", - "filesLoaded": "{{count}} awọn faili kojọ", - "fileLoadedOfTotal": "{{count}} faili kojọ ti {{total}}", - "filesLoadedOfTotal": "{{count}} awọn faili kojọ ti {{total}}", + "fileLoadedCount_one": "{{displayCount}} faili kojọ", + "fileLoadedCount": "{{displayCount}} awọn faili kojọ", + "fileLoadedCount_other": "{{displayCount}} awọn faili kojọ", + "fileLoadedOfTotalCount_one": "{{displayCount}} faili kojọ ti {{total}}", + "fileLoadedOfTotalCount": "{{displayCount}} awọn faili kojọ ti {{total}}", + "fileLoadedOfTotalCount_other": "{{displayCount}} awọn faili kojọ ti {{total}}", "filesStillLoading": "Awọn faili tun njẹ. Fa si isalẹ lati tunse.", "goToOverview": "Lọ si Ọpọlọpọ", "goToOverviewTab": "Lọ si taabu Ọpọlọpọ" @@ -288,8 +290,9 @@ "resolved": "Ti yanju", "outdated": "Atijọ", "file": "Faili", - "oneComment": "asọye 1", - "commentCount": "{{count}} awọn asọye", + "comment_one": "asọye 1", + "comment": "{{displayCount}} awọn asọye", + "comment_other": "{{displayCount}} awọn asọye", "startedRelative": " · bẹrẹ {{relative}}", "couldNotLoadMore": "Ko le gbe awọn asọye diẹ sii.", "retryLoadingMore": "Gbìyànjú lati gbe awọn asọye diẹ sii lẹẹkansi", @@ -299,8 +302,9 @@ "reactionsTitle": "Awọn aati", "addReaction": "Fi aati kun", "reactionPill": "aati {{emoji}}, {{count}} {{countLabel}}", - "reactionSingular": "aati", - "reactionPlural": "awọn aati", + "reaction_one": "aati", + "reaction": "awọn aati", + "reaction_other": "awọn aati", "commentActions": "Awọn iṣe asọye", "reportContent": "Jabo akoonu", "reportUser": "Jabo olumulo", @@ -452,8 +456,9 @@ "deletePendingMessage": "A yoo yọ asọye yii kuro ninu iṣẹ́ atunyẹwo.", "delete": "Pa", "summaryOptional": "Akojopo (yiyan)", - "pendingCommentSingular": "asọye idaduro", - "pendingCommentPlural": "awọn asọye idaduro", + "pendingComment_one": "asọye idaduro", + "pendingComment": "awọn asọye idaduro", + "pendingComment_other": "awọn asọye idaduro", "submitCountOfTotal": "Fi {{freshCount}} ti {{totalCount}} awọn asọye silẹ", "submitReview": "Fi atunyẹwo silẹ", "partialPostedMessage": "Fi {{freshCount}} asọye silẹ. {{staleCount}} asọye tọka si iṣẹ atijọ ati pe o wa ninu iṣẹ́ rẹ." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Ṣii · Atunyẹwo nilo", "stateOpen": "Ṣii", "unknownAuthor": "Onkọwe aimọ", - "commitSingular": "iṣẹ", - "commitPlural": "awọn iṣẹ", - "fileSingular": "faili", - "filePlural": "awọn faili" + "commit_one": "iṣẹ", + "commit": "awọn iṣẹ", + "commit_other": "awọn iṣẹ", + "file_one": "faili", + "file": "awọn faili", + "file_other": "awọn faili" }, "pendingComment": { "editOutdatedA11y": "Ṣatunkọ asọye idaduro atijọ lori {{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Ẹnìkan", - "oneTyping": "{{name}} ń tẹ̀...", - "manyTyping": "{{names}} ń tẹ̀..." + "typing_one": "{{name}} ń tẹ̀...", + "typing": "{{names}} ń tẹ̀...", + "typing_other": "{{names}} ń tẹ̀..." }, "botStatus": { "online": "Ònlíne", @@ -722,12 +730,10 @@ "couldNotLoad": "Kò lè gbé àlàyé ìsanwó", "manageOnWeb": "Ṣàkóso Ìsanwó lórí Wẹ́ẹ̀bù", "commitPlan": "Fọwọ́ sí", - "daysLeft": "{{count}} ọjọ́ kù", "earlybird": "Ẹyẹ òwúrọ̀", "finalCommitTermEndsOn": "Àkókò Commit ìkẹyìn rẹ parí ní {{date}}. Tẹ̀síwájú gẹ́gẹ́ bí Standard ni {{price}}, tàbí hosting parí.", "freeTrial": "Ìgbìyànjú Ọ̀fẹ́", "hostingEnds": "Hosting parí", - "oneDayLeft": "1 ọjọ́ kù", "renews": "Òún tún ìmúdọ̀tun", "standardMonthToMonth": "Standard oṣù sí oṣù", "standardStartsOn": "Standard bẹ̀rẹ̀ ní {{date}} ni {{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} nílò àfiyèsí: {{label}}", - "openUnreadOne": "Ṣí {{name}}, {{count}} ifiranṣẹ tí a kò tíì kà", - "openUnreadMany": "Ṣí {{name}}, {{count}} àwọn ifiranṣẹ tí a kò tíì kà", + "openUnread_one": "Ṣí {{name}}, {{displayCount}} ifiranṣẹ tí a kò tíì kà", + "openUnread": "Ṣí {{name}}, {{displayCount}} àwọn ifiranṣẹ tí a kò tíì kà", + "openUnread_other": "Ṣí {{name}}, {{displayCount}} àwọn ifiranṣẹ tí a kò tíì kà", "open": "Ṣí {{name}}", "openSettings": "Ṣí àwọn ètò fún {{name}}", "fixOnKiloAi": "Tún lórí kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Ṣe ìtùn ládàá?", "enableAutoRemediationConfirmMessage": "Security Agent yóò ṣí àwọn PR ìtùn ládàá fún àwọn àwírí tí a lè lo tó yẹ.", "enable": "Ṣe", - "queuedOne": "{{count}} abawọn ti o wa tẹlẹ ti wa ni ila fun itupalẹ.", - "queuedMany": "{{count}} awọn abawọn ti o wa tẹlẹ ti wa ni ila fun itupalẹ.", + "queued_one": "{{displayCount}} abawọn ti o wa tẹlẹ ti wa ni ila fun itupalẹ.", + "queued": "{{displayCount}} awọn abawọn ti o wa tẹlẹ ti wa ni ila fun itupalẹ.", + "queued_other": "{{displayCount}} awọn abawọn ti o wa tẹlẹ ti wa ni ila fun itupalẹ.", "severityCriticalOnly": "Pataki nikan", "severityHighAndAbove": "Ga ati loke", "severityMediumAndAbove": "Alabọde ati loke", @@ -1482,8 +1490,9 @@ "on": "Nínú", "off": "Paa", "allRepositories": "Gbogbo awọn ibi ipamọ", - "repositorySelected": "{{count}} ibi ipamọ ti yàn", - "repositoriesSelected": "{{count}} awọn ibi ipamọ ti yàn", + "repositoriesCount_one": "{{displayCount}} ibi ipamọ ti yàn", + "repositoriesCount": "{{displayCount}} awọn ibi ipamọ ti yàn", + "repositoriesCount_other": "{{displayCount}} awọn ibi ipamọ ti yàn", "selectRepositories": "Yan awọn ibi ipamọ", "selectRepositoriesSubtitle": "Yan iru awọn ibi ipamọ ti Security Agent n ṣe abojuto", "repositories": "Awọn ibi ipamọ", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Ti pa akoko rẹ", "needsInput": "nilo igbewọle", "fromPlatform": "lati {{platform}}", - "centOne": "centi", - "centOther": "awọn centi", - "dollarOne": "dọla", - "dollarOther": "awọn dọla" + "cent_one": "centi", + "cent": "awọn centi", + "cent_other": "awọn centi", + "dollar_one": "dọla", + "dollar": "awọn dọla", + "dollar_other": "awọn dọla" }, "githubInstall": { "couldNotOpenTitle": "Ko le ṣii GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Ko le fi osere silẹ. Jọwọ gbiyanju lẹẹkansi." }, "partRenderer": { - "updatedFile": "Ti ṣe imudojuiwọn {{count}} faili", - "updatedFiles": "Ti ṣe imudojuiwọn {{count}} awọn faili" + "updatedFileCount_one": "Ti ṣe imudojuiwọn {{displayCount}} faili", + "updatedFileCount": "Ti ṣe imudojuiwọn {{displayCount}} awọn faili", + "updatedFileCount_other": "Ti ṣe imudojuiwọn {{displayCount}} awọn faili" }, "toolPatch": { "operationAdded": "Ti ṣafikun", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Awọn ifiranṣẹ tẹlẹ ti ṣagbewọ", "retryHint": "Tun gbiyanju ṣiṣagbewọ awọn ifiranṣẹ atijọ fun igba-ijiroro yii.", - "omittedOne": "Diẹ ninu awọn nkan tẹlẹ lati igba-ijiroro yii ko le han.", - "omittedMany": "{{count}} nkan tẹlẹ lati igba-ijiroro yii ko le han.", + "omitted_one": "Diẹ ninu awọn nkan tẹlẹ lati igba-ijiroro yii ko le han.", + "omitted": "{{displayCount}} nkan tẹlẹ lati igba-ijiroro yii ko le han.", + "omitted_other": "{{displayCount}} nkan tẹlẹ lati igba-ijiroro yii ko le han.", "couldNotLoad": "Ko le ṣagbewọ awọn ifiranṣẹ tẹlẹ.", "unavailable": "Awọn ifiranṣẹ tẹlẹ ko si.", "tooLarge": "Awọn ifiranṣẹ tẹlẹ tobi ju lati ṣagbewọ." @@ -2069,10 +2082,12 @@ "viewTable": "Wo tabili", "title": "Tabili", "close": "Pa tabili", - "column": "iwe-ẹsẹ", - "columns": "awọn iwe-ẹsẹ", - "row": "ila", - "rows": "awọn ila", + "columnCount_one": "iwe-ẹsẹ", + "columnCount": "awọn iwe-ẹsẹ", + "columnCount_other": "awọn iwe-ẹsẹ", + "rowCount_one": "ila", + "rowCount": "awọn ila", + "rowCount_other": "awọn ila", "opensFullScreen": "ṣii iboju kikun" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "ninu {{window}} tokens", "tokens": "tokens", "tokensWithPercentage": "tokens ({{percentage}})", - "stepsCountOne": "{{steps}} igbese", - "stepsCountMany": "{{steps}} awọn igbese", + "stepsCount_one": "{{steps}} igbese", + "stepsCount": "{{steps}} awọn igbese", + "stepsCount_other": "{{steps}} awọn igbese", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Iṣẹ-ṣiṣe koodu tuntun", "explore": "Ṣàwárí", "seeAll": "Wo gbogbo", - "kiloAgents": "Kilo Agents", - "greetingMorning": "Ẹ káàárọ̀", - "greetingAfternoon": "Ẹ káàsán", - "greetingEvening": "Ẹ káalẹ́" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "Pa {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Ṣii iṣakoso Kilo Pass lori ayelujara.", "notSubscribed": "Ko ti fọwọsowọpọ", "overallocated": "Awọn iyanjade Pass ju awọn ijoko ti a san lọ", - "paidSeatOne": "{{count}} ijoko ti a san", - "paidSeatOther": "{{count}} awọn ijoko ti a san", + "paidSeat_one": "{{displayCount}} ijoko ti a san", + "paidSeat": "{{displayCount}} awọn ijoko ti a san", + "paidSeat_other": "{{displayCount}} awọn ijoko ti a san", "paymentNeedsAttention": "Sanwo nilo akiyesi", "paymentPending": "Sanwo n duro", "processingBlocked": "Iṣe ilana ti dina", diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index 345aae1341..51e759f748 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "某人", - "oneTyping": "{{name}} 正在输入...", - "manyTyping": "{{names}} 正在输入..." + "typing_one": "{{name}} 正在输入...", + "typing": "{{names}} 正在输入...", + "typing_other": "{{names}} 正在输入..." }, "botStatus": { "online": "在线", @@ -350,12 +351,10 @@ "couldNotLoad": "无法加载账单信息", "manageOnWeb": "在网页上管理账单", "commitPlan": "Commit", - "daysLeft": "剩余 {{count}} 天", "earlybird": "Earlybird", "finalCommitTermEndsOn": "您的最后一个 Commit 期限将于 {{date}} 结束。以 {{price}} 继续使用 Standard,否则托管将终止。", "freeTrial": "免费试用", "hostingEnds": "托管终止", - "oneDayLeft": "剩余 1 天", "renews": "续订", "standardMonthToMonth": "Standard 按月", "standardStartsOn": "Standard 将于 {{date}} 以 {{price}} 开始。", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} 需要关注:{{label}}", "open": "打开 {{name}}", "openSettings": "打开 {{name}} 的设置", - "openUnreadMany": "打开 {{name}},{{count}} 条未读消息", - "openUnreadOne": "打开 {{name}},{{count}} 条未读消息" + "openUnread": "打开 {{name}},{{displayCount}} 条未读消息", + "openUnread_other": "打开 {{name}},{{displayCount}} 条未读消息", + "openUnread_one": "打开 {{name}},{{displayCount}} 条未读消息" }, "list": { "createInstance": "创建实例", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "同时将已分析的符合条件的发现加入队列。重复的 PR 保持抑制。", "minimumSeverity": "最低严重程度", "permissionNote": "只有组织所有者和账单管理员可以更改这些设置。", - "queuedMany": "{{count}} 个现有发现已加入分析队列。", - "queuedOne": "{{count}} 个现有发现已加入分析队列。", + "queued": "{{displayCount}} 个现有发现已加入分析队列。", + "queued_other": "{{displayCount}} 个现有发现已加入分析队列。", + "queued_one": "{{displayCount}} 个现有发现已加入分析队列。", "requireApproval": "自动修复前需要批准", "requireApprovalSubtitle": "自动修复在开启 PR 前等待您的批准。", "severityAll": "所有严重程度", @@ -1270,8 +1271,9 @@ "off": "关闭", "on": "开启", "repositories": "仓库", - "repositoriesSelected": "已选择 {{count}} 个仓库", - "repositorySelected": "已选择 {{count}} 个仓库", + "repositoriesCount": "已选择 {{displayCount}} 个仓库", + "repositoriesCount_other": "已选择 {{displayCount}} 个仓库", + "repositoriesCount_one": "已选择 {{displayCount}} 个仓库", "securityAgent": "安全代理", "selectRepositories": "选择仓库", "selectRepositoriesSubtitle": "选择安全代理监控的仓库", @@ -1348,10 +1350,12 @@ "sessionDeleted": "会话已删除", "needsInput": "需要输入", "fromPlatform": "来自 {{platform}}", - "centOne": "美分", - "centOther": "美分", - "dollarOne": "美元", - "dollarOther": "美元" + "cent_one": "美分", + "cent": "美分", + "cent_other": "美分", + "dollar_one": "美元", + "dollar": "美元", + "dollar_other": "美元" }, "githubInstall": { "couldNotOpenMessage": "我们无法启动 GitHub App 设置。请重试。", @@ -1445,8 +1449,9 @@ "keepEditing": "继续编辑" }, "partRenderer": { - "updatedFile": "已更新 {{count}} 个文件", - "updatedFiles": "已更新 {{count}} 个文件" + "updatedFileCount_one": "已更新 {{displayCount}} 个文件", + "updatedFileCount": "已更新 {{displayCount}} 个文件", + "updatedFileCount_other": "已更新 {{displayCount}} 个文件" }, "toolPatch": { "operationAdded": "已添加", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "已加载较早的消息", "retryHint": "重新尝试加载此会话的较早消息。", - "omittedOne": "此会话中的一个较早条目无法显示。", - "omittedMany": "此会话中的 {{count}} 个较早条目无法显示。", + "omitted_one": "此会话中的一个较早条目无法显示。", + "omitted": "此会话中的 {{displayCount}} 个较早条目无法显示。", + "omitted_other": "此会话中的 {{displayCount}} 个较早条目无法显示。", "couldNotLoad": "无法加载较早的消息。", "unavailable": "较早的消息不可用。", "tooLarge": "较早的消息太大,无法加载。" @@ -1697,10 +1703,12 @@ "viewTable": "查看表格", "title": "表格", "close": "关闭表格", - "column": "列", - "columns": "列", - "row": "行", - "rows": "行", + "columnCount_one": "列", + "columnCount": "列", + "columnCount_other": "列", + "rowCount_one": "行", + "rowCount": "行", + "rowCount_other": "行", "opensFullScreen": "打开全屏" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "共 {{window}} 个令牌", "tokens": "令牌", "tokensWithPercentage": "令牌({{percentage}})", - "stepsCountOne": "{{steps}} 步", - "stepsCountMany": "{{steps}} 步", + "stepsCount_one": "{{steps}} 步", + "stepsCount": "{{steps}} 步", + "stepsCount_other": "{{steps}} 步", "modelAccessibilityLabel": "{{name}},{{provider}},{{steps}},{{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "新编程任务", "explore": "探索", "seeAll": "查看全部", - "kiloAgents": "Kilo 代理", - "greetingMorning": "早上好", - "greetingAfternoon": "下午好", - "greetingEvening": "晚上好" + "kiloAgents": "Kilo 代理" }, "imageViewer": { "close": "关闭 {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "关闭回应", "collapseThread": "折叠话题", "commentActions": "评论操作", - "commentCount": "{{count}} 条评论", + "comment": "{{displayCount}} 条评论", + "comment_other": "{{displayCount}} 条评论", "couldNotLoad": "无法加载讨论", "couldNotLoadMore": "无法加载更多评论。", "couldNotReply": "无法回复。", @@ -2236,12 +2243,13 @@ "mutedUser": "已静音 {{login}}", "noDiscussion": "暂无讨论", "noDiscussionDescription": "此拉取请求上没有审查话题或对话评论。", - "oneComment": "1 条评论", + "comment_one": "1 条评论", "outdated": "已过时", "quotedDiffSnippet": "引用的差异片段", "reactionPill": "{{emoji}} 回应,{{count}} {{countLabel}}", - "reactionPlural": "个回应", - "reactionSingular": "个回应", + "reaction": "个回应", + "reaction_other": "个回应", + "reaction_one": "个回应", "reactionsTitle": "回应", "reply": "回复", "replyBadRequest": "无法发布此回复。话题可能已更改。", @@ -2350,10 +2358,12 @@ "expandMoreLines": "展开更多 {{count}} 行({{start}}–{{end}})", "failedToLoadContext": "无法加载上下文 — 点击重试", "failedToLoadMoreFiles": "无法加载更多文件 — 点击重试", - "fileLoaded": "已加载 {{count}} 个文件", - "fileLoadedOfTotal": "已加载 {{count}}/{{total}} 个文件", - "filesLoaded": "已加载 {{count}} 个文件", - "filesLoadedOfTotal": "已加载 {{count}}/{{total}} 个文件", + "fileLoadedCount_one": "已加载 {{displayCount}} 个文件", + "fileLoadedOfTotalCount_one": "已加载 {{displayCount}}/{{total}} 个文件", + "fileLoadedCount": "已加载 {{displayCount}} 个文件", + "fileLoadedCount_other": "已加载 {{displayCount}} 个文件", + "fileLoadedOfTotalCount": "已加载 {{displayCount}}/{{total}} 个文件", + "fileLoadedOfTotalCount_other": "已加载 {{displayCount}}/{{total}} 个文件", "filesStillLoading": "文件仍在加载。下拉刷新。", "goToOverview": "前往概览", "goToOverviewTab": "前往概览标签页", @@ -2429,10 +2439,12 @@ "noFilesChanged": "没有文件更改", "noFilesChangedDescription": "此拉取请求没有文件更改。", "overview": { - "commitPlural": "个提交", - "commitSingular": "个提交", - "filePlural": "个文件", - "fileSingular": "个文件", + "commit": "个提交", + "commit_other": "个提交", + "commit_one": "个提交", + "file": "个文件", + "file_other": "个文件", + "file_one": "个文件", "stateClosed": "已关闭", "stateDraft": "草稿", "stateMerged": "已合并", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "此评论将从审查队列中移除。", "deletePendingTitle": "删除待处理评论?", "loadFailedTitle": "无法加载审查提交", - "pendingCommentPlural": "条待处理评论", - "pendingCommentSingular": "条待处理评论", + "pendingComment": "条待处理评论", + "pendingComment_other": "条待处理评论", + "pendingComment_one": "条待处理评论", "summaryOptional": "摘要(可选)", "title": "提交审查", "partialPostedMessage": "已发布 {{freshCount}} 条评论。{{staleCount}} 条评论指向较早的提交,仍保留在您的队列中。", @@ -2632,8 +2645,9 @@ "manageHint": "在网页上打开 Kilo Pass 管理。", "notSubscribed": "未订阅", "overallocated": "Pass 分配超出已付费席位", - "paidSeatOne": "{{count}} 个已付费席位", - "paidSeatOther": "{{count}} 个已付费席位", + "paidSeat_one": "{{displayCount}} 个已付费席位", + "paidSeat": "{{displayCount}} 个已付费席位", + "paidSeat_other": "{{displayCount}} 个已付费席位", "paymentNeedsAttention": "付款需要关注", "paymentPending": "付款待处理", "processingBlocked": "处理受阻", diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index 9541bc2b4c..0a2a54ab80 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -319,8 +319,9 @@ }, "typingIndicator": { "someone": "某人", - "oneTyping": "{{name}} 正在輸入...", - "manyTyping": "{{names}} 正在輸入..." + "typing_one": "{{name}} 正在輸入...", + "typing": "{{names}} 正在輸入...", + "typing_other": "{{names}} 正在輸入..." }, "botStatus": { "online": "線上", @@ -350,12 +351,10 @@ "couldNotLoad": "無法載入帳單資訊", "manageOnWeb": "在網頁上管理帳單", "commitPlan": "Commit", - "daysLeft": "剩餘 {{count}} 天", "earlybird": "Earlybird", "finalCommitTermEndsOn": "您的最後一個 Commit 期限將於 {{date}} 結束。以 {{price}} 繼續使用 Standard,否則託管將終止。", "freeTrial": "免費試用", "hostingEnds": "託管終止", - "oneDayLeft": "剩餘 1 天", "renews": "續訂", "standardMonthToMonth": "Standard 按月", "standardStartsOn": "Standard 將於 {{date}} 以 {{price}} 開始。", @@ -566,8 +565,9 @@ "needsAttention": "{{name}} 需要關注:{{label}}", "open": "開啟 {{name}}", "openSettings": "開啟 {{name}} 的設定", - "openUnreadMany": "開啟 {{name}},{{count}} 則未讀訊息", - "openUnreadOne": "開啟 {{name}},{{count}} 則未讀訊息" + "openUnread": "開啟 {{name}},{{displayCount}} 則未讀訊息", + "openUnread_other": "開啟 {{name}},{{displayCount}} 則未讀訊息", + "openUnread_one": "開啟 {{name}},{{displayCount}} 則未讀訊息" }, "list": { "createInstance": "建立執行個體", @@ -1039,8 +1039,9 @@ "includeExistingFindingsRemediationSubtitle": "同時將已分析的符合條件發現排入佇列。重複的 PR 保持隱藏。", "minimumSeverity": "最低嚴重程度", "permissionNote": "只有組織擁有者與帳單管理員可以變更這些設定。", - "queuedMany": "{{count}} 個現有發現已排入分析佇列。", - "queuedOne": "{{count}} 個現有發現已排入分析佇列。", + "queued": "{{displayCount}} 個現有發現已排入分析佇列。", + "queued_other": "{{displayCount}} 個現有發現已排入分析佇列。", + "queued_one": "{{displayCount}} 個現有發現已排入分析佇列。", "requireApproval": "自動修復前需要核准", "requireApprovalSubtitle": "自動修復在開啟 PR 前等待您的核准。", "severityAll": "所有嚴重程度", @@ -1270,8 +1271,9 @@ "off": "關閉", "on": "開啟", "repositories": "存放庫", - "repositoriesSelected": "已選擇 {{count}} 個存放庫", - "repositorySelected": "已選擇 {{count}} 個存放庫", + "repositoriesCount": "已選擇 {{displayCount}} 個存放庫", + "repositoriesCount_other": "已選擇 {{displayCount}} 個存放庫", + "repositoriesCount_one": "已選擇 {{displayCount}} 個存放庫", "securityAgent": "安全性代理", "selectRepositories": "選擇存放庫", "selectRepositoriesSubtitle": "選擇安全性代理監控的存放庫", @@ -1348,10 +1350,12 @@ "sessionDeleted": "工作階段已刪除", "needsInput": "需要輸入", "fromPlatform": "來自 {{platform}}", - "centOne": "美分", - "centOther": "美分", - "dollarOne": "美元", - "dollarOther": "美元" + "cent_one": "美分", + "cent": "美分", + "cent_other": "美分", + "dollar_one": "美元", + "dollar": "美元", + "dollar_other": "美元" }, "githubInstall": { "couldNotOpenMessage": "無法啟動 GitHub App 設定。請再試一次。", @@ -1445,8 +1449,9 @@ "keepEditing": "繼續編輯" }, "partRenderer": { - "updatedFile": "已更新 {{count}} 個檔案", - "updatedFiles": "已更新 {{count}} 個檔案" + "updatedFileCount_one": "已更新 {{displayCount}} 個檔案", + "updatedFileCount": "已更新 {{displayCount}} 個檔案", + "updatedFileCount_other": "已更新 {{displayCount}} 個檔案" }, "toolPatch": { "operationAdded": "已新增", @@ -1687,8 +1692,9 @@ "olderMessages": { "arrived": "已載入較早的訊息", "retryHint": "重新嘗試載入此工作階段的較早訊息。", - "omittedOne": "此工作階段中的一個較早項目無法顯示。", - "omittedMany": "此工作階段中的 {{count}} 個較早項目無法顯示。", + "omitted_one": "此工作階段中的一個較早項目無法顯示。", + "omitted": "此工作階段中的 {{displayCount}} 個較早項目無法顯示。", + "omitted_other": "此工作階段中的 {{displayCount}} 個較早項目無法顯示。", "couldNotLoad": "無法載入較早的訊息。", "unavailable": "較早的訊息無法使用。", "tooLarge": "較早的訊息太大,無法載入。" @@ -1697,10 +1703,12 @@ "viewTable": "檢視表格", "title": "表格", "close": "關閉表格", - "column": "欄", - "columns": "欄", - "row": "列", - "rows": "列", + "columnCount_one": "欄", + "columnCount": "欄", + "columnCount_other": "欄", + "rowCount_one": "列", + "rowCount": "列", + "rowCount_other": "列", "opensFullScreen": "開啟全螢幕" }, "sessionFilter": { @@ -1853,8 +1861,9 @@ "ofWindowTokens": "共 {{window}} 個 token", "tokens": "token", "tokensWithPercentage": "token({{percentage}})", - "stepsCountOne": "{{steps}} 個步驟", - "stepsCountMany": "{{steps}} 個步驟", + "stepsCount_one": "{{steps}} 個步驟", + "stepsCount": "{{steps}} 個步驟", + "stepsCount_other": "{{steps}} 個步驟", "modelAccessibilityLabel": "{{name}},{{provider}},{{steps}},{{cost}}" }, "prBadge": { @@ -1919,10 +1928,7 @@ "newCodingTask": "新程式設計任務", "explore": "探索", "seeAll": "查看全部", - "kiloAgents": "Kilo Agents", - "greetingMorning": "早上好", - "greetingAfternoon": "下午好", - "greetingEvening": "晚上好" + "kiloAgents": "Kilo Agents" }, "imageViewer": { "close": "關閉 {{filename}}", @@ -2205,7 +2211,8 @@ "closeReactions": "關閉反應", "collapseThread": "收合討論串", "commentActions": "留言動作", - "commentCount": "{{count}} 則留言", + "comment": "{{displayCount}} 則留言", + "comment_other": "{{displayCount}} 則留言", "couldNotLoad": "無法載入討論", "couldNotLoadMore": "無法載入更多留言。", "couldNotReply": "無法回覆。", @@ -2236,12 +2243,13 @@ "mutedUser": "已靜音 {{login}}", "noDiscussion": "尚無討論", "noDiscussionDescription": "此拉取請求沒有審查討論串或對話留言。", - "oneComment": "1 則留言", + "comment_one": "1 則留言", "outdated": "已過時", "quotedDiffSnippet": "引用的 diff 片段", "reactionPill": "{{emoji}} 反應,{{count}} {{countLabel}}", - "reactionPlural": "個反應", - "reactionSingular": "個反應", + "reaction": "個反應", + "reaction_other": "個反應", + "reaction_one": "個反應", "reactionsTitle": "反應", "reply": "回覆", "replyBadRequest": "無法發佈此回覆。討論串可能已變更。", @@ -2350,10 +2358,12 @@ "expandMoreLines": "展開更多 {{count}} 行({{start}}–{{end}})", "failedToLoadContext": "無法載入內容 — 點按重試", "failedToLoadMoreFiles": "無法載入更多檔案 — 點按重試", - "fileLoaded": "已載入 {{count}} 個檔案", - "fileLoadedOfTotal": "已載入 {{count}} / {{total}} 個檔案", - "filesLoaded": "已載入 {{count}} 個檔案", - "filesLoadedOfTotal": "已載入 {{count}} / {{total}} 個檔案", + "fileLoadedCount_one": "已載入 {{displayCount}} 個檔案", + "fileLoadedOfTotalCount_one": "已載入 {{displayCount}} / {{total}} 個檔案", + "fileLoadedCount": "已載入 {{displayCount}} 個檔案", + "fileLoadedCount_other": "已載入 {{displayCount}} 個檔案", + "fileLoadedOfTotalCount": "已載入 {{displayCount}} / {{total}} 個檔案", + "fileLoadedOfTotalCount_other": "已載入 {{displayCount}} / {{total}} 個檔案", "filesStillLoading": "檔案仍在載入。下拉重新整理。", "goToOverview": "前往總覽", "goToOverviewTab": "前往總覽分頁", @@ -2429,10 +2439,12 @@ "noFilesChanged": "沒有變更的檔案", "noFilesChangedDescription": "此拉取請求沒有檔案變更。", "overview": { - "commitPlural": "個提交", - "commitSingular": "個提交", - "filePlural": "個檔案", - "fileSingular": "個檔案", + "commit": "個提交", + "commit_other": "個提交", + "commit_one": "個提交", + "file": "個檔案", + "file_other": "個檔案", + "file_one": "個檔案", "stateClosed": "已關閉", "stateDraft": "草稿", "stateMerged": "已合併", @@ -2483,8 +2495,9 @@ "deletePendingMessage": "此留言將從審查佇列中移除。", "deletePendingTitle": "刪除待處理留言?", "loadFailedTitle": "無法載入審查提交", - "pendingCommentPlural": "則待處理留言", - "pendingCommentSingular": "則待處理留言", + "pendingComment": "則待處理留言", + "pendingComment_other": "則待處理留言", + "pendingComment_one": "則待處理留言", "summaryOptional": "摘要(選用)", "title": "提交審查", "partialPostedMessage": "已發佈 {{freshCount}} 則留言。{{staleCount}} 則留言指向較舊的提交,並保留在您的佇列中。", @@ -2632,8 +2645,9 @@ "manageHint": "在網頁上開啟 Kilo Pass 管理。", "notSubscribed": "未訂閱", "overallocated": "Pass 指派數超過已付費席次", - "paidSeatOne": "{{count}} 個付費席次", - "paidSeatOther": "{{count}} 個付費席次", + "paidSeat_one": "{{displayCount}} 個付費席次", + "paidSeat": "{{displayCount}} 個付費席次", + "paidSeat_other": "{{displayCount}} 個付費席次", "paymentNeedsAttention": "付款需要關注", "paymentPending": "付款待處理", "processingBlocked": "處理已封鎖", diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index d376dff6ec..c85744d8a2 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -219,10 +219,12 @@ "loadedOfTotalFiles": "{{loaded}} kwangu-{{total}} amafayela alayishiwe", "loadAllFiles": "Layisha wonke amafayela", "loadAll": "Layisha konke", - "fileLoaded": "Ifayela elingu-{{count}} lilayishiwe", - "filesLoaded": "Amafayela angu-{{count}} alayishiwe", - "fileLoadedOfTotal": "Ifayela elingu-{{count}} lilayishiwe kwangu-{{total}}", - "filesLoadedOfTotal": "Amafayela angu-{{count}} alayishiwe kwangu-{{total}}", + "fileLoadedCount_one": "Ifayela elingu-{{displayCount}} lilayishiwe", + "fileLoadedCount": "Amafayela angu-{{displayCount}} alayishiwe", + "fileLoadedCount_other": "Amafayela angu-{{displayCount}} alayishiwe", + "fileLoadedOfTotalCount_one": "Ifayela elingu-{{displayCount}} lilayishiwe kwangu-{{total}}", + "fileLoadedOfTotalCount": "Amafayela angu-{{displayCount}} alayishiwe kwangu-{{total}}", + "fileLoadedOfTotalCount_other": "Amafayela angu-{{displayCount}} alayishiwe kwangu-{{total}}", "filesStillLoading": "Amafayela asalayishwa. Donsela phansi ukuze uvuselele.", "goToOverview": "Iya ku-Okubanzi", "goToOverviewTab": "Iya kuthebhu yokubanzi" @@ -288,8 +290,9 @@ "resolved": "Kuxazululiwe", "outdated": "Kwedlule isikhathi", "file": "Ifayela", - "oneComment": "Amazwana angu-1", - "commentCount": "Amazwana angu-{{count}}", + "comment_one": "Amazwana angu-1", + "comment": "Amazwana angu-{{displayCount}}", + "comment_other": "Amazwana angu-{{displayCount}}", "startedRelative": " · kuqalwe {{relative}}", "couldNotLoadMore": "Asikwazanga ukulayisha amanye amazwana.", "retryLoadingMore": "Zama futhi ukulayisha amanye amazwana", @@ -299,8 +302,9 @@ "reactionsTitle": "Ukusabela", "addReaction": "Engeza ukusabela", "reactionPill": "{{emoji}} ukusabela, {{count}} {{countLabel}}", - "reactionSingular": "ukusabela", - "reactionPlural": "ukusabela", + "reaction_one": "ukusabela", + "reaction": "ukusabela", + "reaction_other": "ukusabela", "commentActions": "Izenzo zamazwana", "reportContent": "Bika okuqukethwe", "reportUser": "Bika umsebenzisi", @@ -452,8 +456,9 @@ "deletePendingMessage": "Lamazwana azosuswa emgqeni wokubuyekeza.", "delete": "Susa", "summaryOptional": "Isifinyezo (okukhethwa kukho)", - "pendingCommentSingular": "amazwana alindile", - "pendingCommentPlural": "amazwana alindile", + "pendingComment_one": "amazwana alindile", + "pendingComment": "amazwana alindile", + "pendingComment_other": "amazwana alindile", "submitCountOfTotal": "Thumela amazwana angu-{{freshCount}} kwangu-{{totalCount}}", "submitReview": "Thumela ukubuyekeza", "partialPostedMessage": "Kuthunyelwe amazwana angu-{{freshCount}}. Amazwana angu-{{staleCount}} akhomba ku-commit endala futhi ahlala emgqeni wakho." @@ -478,10 +483,12 @@ "stateOpenReviewRequired": "Kuvuliwe · Ukubuyekeza kuyadingeka", "stateOpen": "Kuvuliwe", "unknownAuthor": "Umbhali ongaziwa", - "commitSingular": "i-commit", - "commitPlural": "ama-commit", - "fileSingular": "ifayela", - "filePlural": "amafayela" + "commit_one": "i-commit", + "commit": "ama-commit", + "commit_other": "ama-commit", + "file_one": "ifayela", + "file": "amafayela", + "file_other": "amafayela" }, "pendingComment": { "editOutdatedA11y": "Hlela amazwana alindile aphelelwe yisikhathi ku-{{location}}", @@ -691,8 +698,9 @@ }, "typingIndicator": { "someone": "Othile", - "oneTyping": "{{name}} uyabhala...", - "manyTyping": "{{names}} bayabhala..." + "typing_one": "{{name}} uyabhala...", + "typing": "{{names}} bayabhala...", + "typing_other": "{{names}} bayabhala..." }, "botStatus": { "online": "Inthanethi", @@ -722,12 +730,10 @@ "couldNotLoad": "Ayikwazanga ukulayisha imininingwane yokukhokha", "manageOnWeb": "Phatha Ukukhokha ku-Web", "commitPlan": "Zibophelela", - "daysLeft": "Izinsuku {{count}} ezisele", "earlybird": "Earlybird", "finalCommitTermEndsOn": "Ithemu yakho yokugcina ye-Commit iphela nge-{{date}}. Qhubeka njenge-Standard ngo-{{price}}, noma ukusingathwa kuphele.", "freeTrial": "Isilingo Samahhala", "hostingEnds": "Ukusingathwa kuyaphela", - "oneDayLeft": "Usuku 1 olusele", "renews": "Kuvuselela", "standardMonthToMonth": "I-Standard inyanga nenyanga", "standardStartsOn": "I-Standard iqala nge-{{date}} ngo-{{price}}.", @@ -1060,8 +1066,9 @@ }, "instanceCard": { "needsAttention": "{{name}} idinga ukunakwa: {{label}}", - "openUnreadOne": "Vula u-{{name}}, umlayezo ongafundiwe {{count}}", - "openUnreadMany": "Vula u-{{name}}, imilayezo engafundiwe engu-{{count}}", + "openUnread_one": "Vula u-{{name}}, umlayezo ongafundiwe {{displayCount}}", + "openUnread": "Vula u-{{name}}, imilayezo engafundiwe engu-{{displayCount}}", + "openUnread_other": "Vula u-{{name}}, imilayezo engafundiwe engu-{{displayCount}}", "open": "Vula u-{{name}}", "openSettings": "Vula usethi we-{{name}}", "fixOnKiloAi": "Lungisa ku-kilo.ai: {{label}}" @@ -1351,8 +1358,9 @@ "enableAutoRemediationConfirmTitle": "Vumela ukulungisa okuzenzakalelayo?", "enableAutoRemediationConfirmMessage": "I-Security Agent izovula ama-PR wokulungisa ngokuzenzakalelayo kokutholakele okufanele ukulungiswa.", "enable": "Vumela", - "queuedOne": "{{count}} ukutholakele okukhona kumisiwe ukuhlaziywa.", - "queuedMany": "{{count}} ukutholakele okukhona kumiswe ukuhlaziywa.", + "queued_one": "{{displayCount}} ukutholakele okukhona kumisiwe ukuhlaziywa.", + "queued": "{{displayCount}} ukutholakele okukhona kumiswe ukuhlaziywa.", + "queued_other": "{{displayCount}} ukutholakele okukhona kumiswe ukuhlaziywa.", "severityCriticalOnly": "Okubaluleke kakhulu kuphela", "severityHighAndAbove": "Okuphezulu nangaphezulu", "severityMediumAndAbove": "Okumaphakathi nangaphezulu", @@ -1482,8 +1490,9 @@ "on": "Ivuliwe", "off": "Ivaliwe", "allRepositories": "Wonke ama-repository", - "repositorySelected": "{{count}} i-repository ekhethiwe", - "repositoriesSelected": "{{count}} ama-repository akhethiwe", + "repositoriesCount_one": "{{displayCount}} i-repository ekhethiwe", + "repositoriesCount": "{{displayCount}} ama-repository akhethiwe", + "repositoriesCount_other": "{{displayCount}} ama-repository akhethiwe", "selectRepositories": "Khetha ama-repository", "selectRepositoriesSubtitle": "Khetha ukuthi i-Security Agent iqapha yiphi ama-repository", "repositories": "Ama-repository", @@ -1720,10 +1729,12 @@ "sessionDeleted": "Iseshini isusiwe", "needsInput": "idinga okokufaka", "fromPlatform": "kusuka ku-{{platform}}", - "centOne": "isenti", - "centOther": "amasenti", - "dollarOne": "idola", - "dollarOther": "amadola" + "cent_one": "isenti", + "cent": "amasenti", + "cent_other": "amasenti", + "dollar_one": "idola", + "dollar": "amadola", + "dollar_other": "amadola" }, "githubInstall": { "couldNotOpenTitle": "Akukwazanga ukuvula i-GitHub", @@ -1817,8 +1828,9 @@ "discardFailed": "Akukwazanga ukulahla idrafuthi. Sicela uzame futhi." }, "partRenderer": { - "updatedFile": "Kubuyekezwe ifayela eli-{{count}}", - "updatedFiles": "Kubuyekezwe amafayela angu-{{count}}" + "updatedFileCount_one": "Kubuyekezwe ifayela eli-{{displayCount}}", + "updatedFileCount": "Kubuyekezwe amafayela angu-{{displayCount}}", + "updatedFileCount_other": "Kubuyekezwe amafayela angu-{{displayCount}}" }, "toolPatch": { "operationAdded": "Kungeziwe", @@ -2059,8 +2071,9 @@ "olderMessages": { "arrived": "Imilayezo yangaphambili ilayishiwe", "retryHint": "Iphinda izame ukulayisha imilayezo emidala kulesi seshini.", - "omittedOne": "Ezinye izinto zangaphambili zalolu hlelo azikwazanga ukuboniswa.", - "omittedMany": "Izinto zangaphambili ezi-{{count}} zalolu hlelo azikwazanga ukuboniswa.", + "omitted_one": "Ezinye izinto zangaphambili zalolu hlelo azikwazanga ukuboniswa.", + "omitted": "Izinto zangaphambili ezi-{{displayCount}} zalolu hlelo azikwazanga ukuboniswa.", + "omitted_other": "Izinto zangaphambili ezi-{{displayCount}} zalolu hlelo azikwazanga ukuboniswa.", "couldNotLoad": "Ayikwazanga ukulayisha imilayezo yangaphambili.", "unavailable": "Imilayezo yangaphambili ayitholakali.", "tooLarge": "Imilayezo yangaphambili mikhulu kakhulu ukuthi ilayishwe." @@ -2069,10 +2082,12 @@ "viewTable": "Buka itafula", "title": "Itafula", "close": "Vala itafula", - "column": "ikholomu", - "columns": "amakholomu", - "row": "umugqa", - "rows": "imigqa", + "columnCount_one": "ikholomu", + "columnCount": "amakholomu", + "columnCount_other": "amakholomu", + "rowCount_one": "umugqa", + "rowCount": "imigqa", + "rowCount_other": "imigqa", "opensFullScreen": "ivula isikrini esigcwele" }, "sessionFilter": { @@ -2225,8 +2240,9 @@ "ofWindowTokens": "kwamathokheni angu-{{window}}", "tokens": "amathokheni", "tokensWithPercentage": "amathokheni ({{percentage}})", - "stepsCountOne": "{{steps}} isinyathelo", - "stepsCountMany": "{{steps}} izinyathelo", + "stepsCount_one": "{{steps}} isinyathelo", + "stepsCount": "{{steps}} izinyathelo", + "stepsCount_other": "{{steps}} izinyathelo", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" }, "prBadge": { @@ -2291,10 +2307,7 @@ "newCodingTask": "Umsebenzi omusha wokubhala ikhodi", "explore": "Hlola", "seeAll": "Bona konke", - "kiloAgents": "Ama-Kilo Agents", - "greetingMorning": "Sawubona ekuseni", - "greetingAfternoon": "Sawubona ntambama", - "greetingEvening": "Sawubona kusihlwa" + "kiloAgents": "Ama-Kilo Agents" }, "imageViewer": { "close": "Vala {{filename}}", @@ -2645,8 +2658,9 @@ "manageHint": "Ivula ukuphathwa kwe-Kilo Pass kuwebhu.", "notSubscribed": "Akukabhalisi", "overallocated": "Izabelo ze-Pass zidlula izihlalo ezikhokhelwayo", - "paidSeatOne": "{{count}} isihlalo esikhokhelwayo", - "paidSeatOther": "{{count}} izihlalo ezikhokhelwayo", + "paidSeat_one": "{{displayCount}} isihlalo esikhokhelwayo", + "paidSeat": "{{displayCount}} izihlalo ezikhokhelwayo", + "paidSeat_other": "{{displayCount}} izihlalo ezikhokhelwayo", "paymentNeedsAttention": "Inkokhelo idinga ukunakwa", "paymentPending": "Inkokhelo ilindile", "processingBlocked": "Ukucutshungulwa kuvinjiwe", diff --git a/apps/mobile/src/lib/format.test.ts b/apps/mobile/src/lib/format.test.ts index 227bf0a762..0a17d454d9 100644 --- a/apps/mobile/src/lib/format.test.ts +++ b/apps/mobile/src/lib/format.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { formatMoney } from './format'; +import { firstGrapheme, formatList, formatMoney, parseLocalizedNumber } from './format'; describe('formatMoney', () => { it('uses the passed locale for currency formatting', () => { @@ -12,3 +12,15 @@ describe('formatMoney', () => { expect(de).not.toBe(en); }); }); + +describe('localized format helpers', () => { + it('formats a list and preserves one grapheme', () => { + expect(formatList(['A', 'B'], 'de')).toBe('A und B'); + expect(firstGrapheme('👨‍👩‍👧‍👦 family', 'en')).toBe('👨‍👩‍👧‍👦'); + }); + + it('parses localized numbers and rejects other input', () => { + expect(parseLocalizedNumber('1.234,5', 'de-DE')).toBe(1234.5); + expect(parseLocalizedNumber('twelve', 'en')).toBeNull(); + }); +}); diff --git a/apps/mobile/src/lib/format.ts b/apps/mobile/src/lib/format.ts index b7de18d92d..0cd93ef52f 100644 --- a/apps/mobile/src/lib/format.ts +++ b/apps/mobile/src/lib/format.ts @@ -1,9 +1,15 @@ -import { numberFormat } from '@/lib/intl-cache'; +import { + dateTimeFormat, + durationFormat, + listFormat, + numberFormat, + segmenter, +} from '@/lib/intl-cache'; /** * Mobile money/date formatters. Unlike the shared `formatDollars`/`formatCents` * helpers (which pin `en-US`), these take an explicit locale so the active - * app language drives the output. All use `Intl`, which Hermes provides. + * app language drives the output. FormatJS fills the constructors Hermes omits. */ export function formatMoney(amount: number, locale: string): string { @@ -40,5 +46,75 @@ export function formatMoneyFromCents(amount: number, locale: string, currency = } export function formatDate(date: Date, locale: string): string { - return date.toLocaleDateString(locale); + return dateTimeFormat(locale, {}).format(date); +} + +export function formatNumber( + value: number, + locale: string, + options: Intl.NumberFormatOptions = {} +): string { + return numberFormat(locale, options).format(value); +} + +export function formatPercent(value: number, locale: string): string { + return numberFormat(locale, { style: 'percent', maximumFractionDigits: 1 }).format(value / 100); +} + +export function formatList(values: readonly string[], locale: string): string { + return listFormat(locale, { style: 'long', type: 'conjunction' }).format(values); +} + +export function formatDuration(seconds: number, locale: string): string { + const wholeSeconds = Math.max(0, Math.floor(seconds)); + const hours = Math.floor(wholeSeconds / 3600); + const minutes = Math.floor((wholeSeconds % 3600) / 60); + return durationFormat(locale, { style: 'short' }).format({ + hours, + minutes, + seconds: wholeSeconds % 60, + }); +} + +export function formatFileSize(bytes: number, locale: string): string { + const units = ['B', 'KB', 'MB', 'GB'] as const; + let value = bytes; + let unit = 0; + while (value >= 1024 && unit < units.length - 1) { + value /= 1024; + unit += 1; + } + return `${formatNumber(value, locale, { maximumFractionDigits: unit === 0 ? 0 : 2 })} ${units[unit]}`; +} + +export function firstGrapheme(value: string, locale: string): string { + return ( + segmenter(locale, { granularity: 'grapheme' }).segment(value)[Symbol.iterator]().next().value + ?.segment ?? '' + ); +} + +export function parseLocalizedNumber(value: string, locale: string): number | null { + const parts = numberFormat(locale, { useGrouping: true }).formatToParts(-12_345.6); + const part = (type: Intl.NumberFormatPartTypes, fallback: string) => + parts.find(item => item.type === type)?.value ?? fallback; + const group = part('group', ','); + const decimal = part('decimal', '.'); + const minus = part('minusSign', '-'); + const digits = new Map( + Array.from({ length: 10 }, (_, digit) => [ + numberFormat(locale, { useGrouping: false }).format(digit), + String(digit), + ]) + ); + let normalized = value.trim().replaceAll(/[\u061C\u200E\u200F]/g, ''); + for (const [local, ascii] of digits) { + normalized = normalized.split(local).join(ascii); + } + normalized = normalized.split(group).join('').split(decimal).join('.').split(minus).join('-'); + if (!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(normalized)) { + return null; + } + const parsed = Number(normalized); + return Number.isFinite(parsed) ? parsed : null; } diff --git a/apps/mobile/src/lib/formatjs-locale-data.ts b/apps/mobile/src/lib/formatjs-locale-data.ts new file mode 100644 index 0000000000..6222c9c998 --- /dev/null +++ b/apps/mobile/src/lib/formatjs-locale-data.ts @@ -0,0 +1,191 @@ +/* eslint-disable typescript-eslint/no-require-imports, typescript-eslint/no-var-requires, unicorn/prefer-module -- Metro needs static require calls to bundle lazy FormatJS locale data. */ +import { type SupportedLanguage } from '@/i18n/languages'; + +// Metro includes every locale in the bundle but evaluates only the active one. +const NUMBER_FORMAT_LOCALE_LOADERS = { + af: () => void require('@formatjs/intl-numberformat/locale-data/af.js'), + sq: () => void require('@formatjs/intl-numberformat/locale-data/sq.js'), + am: () => void require('@formatjs/intl-numberformat/locale-data/am.js'), + ar: () => void require('@formatjs/intl-numberformat/locale-data/ar.js'), + hy: () => void require('@formatjs/intl-numberformat/locale-data/hy.js'), + az: () => void require('@formatjs/intl-numberformat/locale-data/az.js'), + eu: () => void require('@formatjs/intl-numberformat/locale-data/eu.js'), + be: () => void require('@formatjs/intl-numberformat/locale-data/be.js'), + bn: () => void require('@formatjs/intl-numberformat/locale-data/bn.js'), + bs: () => void require('@formatjs/intl-numberformat/locale-data/bs.js'), + bg: () => void require('@formatjs/intl-numberformat/locale-data/bg.js'), + my: () => void require('@formatjs/intl-numberformat/locale-data/my.js'), + ca: () => void require('@formatjs/intl-numberformat/locale-data/ca.js'), + 'zh-Hans': () => void require('@formatjs/intl-numberformat/locale-data/zh-Hans.js'), + 'zh-Hant': () => void require('@formatjs/intl-numberformat/locale-data/zh-Hant.js'), + hr: () => void require('@formatjs/intl-numberformat/locale-data/hr.js'), + cs: () => void require('@formatjs/intl-numberformat/locale-data/cs.js'), + da: () => void require('@formatjs/intl-numberformat/locale-data/da.js'), + nl: () => void require('@formatjs/intl-numberformat/locale-data/nl.js'), + en: () => void require('@formatjs/intl-numberformat/locale-data/en.js'), + et: () => void require('@formatjs/intl-numberformat/locale-data/et.js'), + fil: () => void require('@formatjs/intl-numberformat/locale-data/fil.js'), + fi: () => void require('@formatjs/intl-numberformat/locale-data/fi.js'), + fr: () => void require('@formatjs/intl-numberformat/locale-data/fr.js'), + gl: () => void require('@formatjs/intl-numberformat/locale-data/gl.js'), + ka: () => void require('@formatjs/intl-numberformat/locale-data/ka.js'), + de: () => void require('@formatjs/intl-numberformat/locale-data/de.js'), + el: () => void require('@formatjs/intl-numberformat/locale-data/el.js'), + gu: () => void require('@formatjs/intl-numberformat/locale-data/gu.js'), + ht: () => void require('@formatjs/intl-numberformat/locale-data/ht.js'), + ha: () => void require('@formatjs/intl-numberformat/locale-data/ha.js'), + he: () => void require('@formatjs/intl-numberformat/locale-data/he.js'), + hi: () => void require('@formatjs/intl-numberformat/locale-data/hi.js'), + hu: () => void require('@formatjs/intl-numberformat/locale-data/hu.js'), + is: () => void require('@formatjs/intl-numberformat/locale-data/is.js'), + ig: () => void require('@formatjs/intl-numberformat/locale-data/ig.js'), + id: () => void require('@formatjs/intl-numberformat/locale-data/id.js'), + ga: () => void require('@formatjs/intl-numberformat/locale-data/ga.js'), + it: () => void require('@formatjs/intl-numberformat/locale-data/it.js'), + ja: () => void require('@formatjs/intl-numberformat/locale-data/ja.js'), + kn: () => void require('@formatjs/intl-numberformat/locale-data/kn.js'), + kk: () => void require('@formatjs/intl-numberformat/locale-data/kk.js'), + km: () => void require('@formatjs/intl-numberformat/locale-data/km.js'), + ko: () => void require('@formatjs/intl-numberformat/locale-data/ko.js'), + ckb: () => void require('@formatjs/intl-numberformat/locale-data/ckb.js'), + lo: () => void require('@formatjs/intl-numberformat/locale-data/lo.js'), + lv: () => void require('@formatjs/intl-numberformat/locale-data/lv.js'), + lt: () => void require('@formatjs/intl-numberformat/locale-data/lt.js'), + mk: () => void require('@formatjs/intl-numberformat/locale-data/mk.js'), + mg: () => void require('@formatjs/intl-numberformat/locale-data/mg.js'), + ms: () => void require('@formatjs/intl-numberformat/locale-data/ms.js'), + ml: () => void require('@formatjs/intl-numberformat/locale-data/ml.js'), + mt: () => void require('@formatjs/intl-numberformat/locale-data/mt.js'), + mi: () => void require('@formatjs/intl-numberformat/locale-data/mi.js'), + mr: () => void require('@formatjs/intl-numberformat/locale-data/mr.js'), + mn: () => void require('@formatjs/intl-numberformat/locale-data/mn.js'), + ne: () => void require('@formatjs/intl-numberformat/locale-data/ne.js'), + nb: () => void require('@formatjs/intl-numberformat/locale-data/nb.js'), + or: () => void require('@formatjs/intl-numberformat/locale-data/or.js'), + om: () => void require('@formatjs/intl-numberformat/locale-data/om.js'), + ps: () => void require('@formatjs/intl-numberformat/locale-data/ps.js'), + fa: () => void require('@formatjs/intl-numberformat/locale-data/fa.js'), + pl: () => void require('@formatjs/intl-numberformat/locale-data/pl.js'), + pt: () => void require('@formatjs/intl-numberformat/locale-data/pt.js'), + 'pt-BR': () => void require('@formatjs/intl-numberformat/locale-data/pt.js'), + pa: () => void require('@formatjs/intl-numberformat/locale-data/pa.js'), + ro: () => void require('@formatjs/intl-numberformat/locale-data/ro.js'), + ru: () => void require('@formatjs/intl-numberformat/locale-data/ru.js'), + sr: () => void require('@formatjs/intl-numberformat/locale-data/sr.js'), + si: () => void require('@formatjs/intl-numberformat/locale-data/si.js'), + sk: () => void require('@formatjs/intl-numberformat/locale-data/sk.js'), + sl: () => void require('@formatjs/intl-numberformat/locale-data/sl.js'), + so: () => void require('@formatjs/intl-numberformat/locale-data/so.js'), + es: () => void require('@formatjs/intl-numberformat/locale-data/es.js'), + sw: () => void require('@formatjs/intl-numberformat/locale-data/sw.js'), + sv: () => void require('@formatjs/intl-numberformat/locale-data/sv.js'), + ta: () => void require('@formatjs/intl-numberformat/locale-data/ta.js'), + te: () => void require('@formatjs/intl-numberformat/locale-data/te.js'), + th: () => void require('@formatjs/intl-numberformat/locale-data/th.js'), + tr: () => void require('@formatjs/intl-numberformat/locale-data/tr.js'), + uk: () => void require('@formatjs/intl-numberformat/locale-data/uk.js'), + ur: () => void require('@formatjs/intl-numberformat/locale-data/ur.js'), + uz: () => void require('@formatjs/intl-numberformat/locale-data/uz.js'), + vi: () => void require('@formatjs/intl-numberformat/locale-data/vi.js'), + cy: () => void require('@formatjs/intl-numberformat/locale-data/cy.js'), + yo: () => void require('@formatjs/intl-numberformat/locale-data/yo.js'), + zu: () => void require('@formatjs/intl-numberformat/locale-data/zu.js'), +} satisfies Record void>; + +const LIST_FORMAT_LOCALE_LOADERS = { + af: () => void require('@formatjs/intl-listformat/locale-data/af.js'), + sq: () => void require('@formatjs/intl-listformat/locale-data/sq.js'), + am: () => void require('@formatjs/intl-listformat/locale-data/am.js'), + ar: () => void require('@formatjs/intl-listformat/locale-data/ar.js'), + hy: () => void require('@formatjs/intl-listformat/locale-data/hy.js'), + az: () => void require('@formatjs/intl-listformat/locale-data/az.js'), + eu: () => void require('@formatjs/intl-listformat/locale-data/eu.js'), + be: () => void require('@formatjs/intl-listformat/locale-data/be.js'), + bn: () => void require('@formatjs/intl-listformat/locale-data/bn.js'), + bs: () => void require('@formatjs/intl-listformat/locale-data/bs.js'), + bg: () => void require('@formatjs/intl-listformat/locale-data/bg.js'), + my: () => void require('@formatjs/intl-listformat/locale-data/my.js'), + ca: () => void require('@formatjs/intl-listformat/locale-data/ca.js'), + 'zh-Hans': () => void require('@formatjs/intl-listformat/locale-data/zh-Hans.js'), + 'zh-Hant': () => void require('@formatjs/intl-listformat/locale-data/zh-Hant.js'), + hr: () => void require('@formatjs/intl-listformat/locale-data/hr.js'), + cs: () => void require('@formatjs/intl-listformat/locale-data/cs.js'), + da: () => void require('@formatjs/intl-listformat/locale-data/da.js'), + nl: () => void require('@formatjs/intl-listformat/locale-data/nl.js'), + en: () => void require('@formatjs/intl-listformat/locale-data/en.js'), + et: () => void require('@formatjs/intl-listformat/locale-data/et.js'), + fil: () => void require('@formatjs/intl-listformat/locale-data/fil.js'), + fi: () => void require('@formatjs/intl-listformat/locale-data/fi.js'), + fr: () => void require('@formatjs/intl-listformat/locale-data/fr.js'), + gl: () => void require('@formatjs/intl-listformat/locale-data/gl.js'), + ka: () => void require('@formatjs/intl-listformat/locale-data/ka.js'), + de: () => void require('@formatjs/intl-listformat/locale-data/de.js'), + el: () => void require('@formatjs/intl-listformat/locale-data/el.js'), + gu: () => void require('@formatjs/intl-listformat/locale-data/gu.js'), + ht: () => void require('@formatjs/intl-listformat/locale-data/ht.js'), + ha: () => void require('@formatjs/intl-listformat/locale-data/ha.js'), + he: () => void require('@formatjs/intl-listformat/locale-data/he.js'), + hi: () => void require('@formatjs/intl-listformat/locale-data/hi.js'), + hu: () => void require('@formatjs/intl-listformat/locale-data/hu.js'), + is: () => void require('@formatjs/intl-listformat/locale-data/is.js'), + ig: () => void require('@formatjs/intl-listformat/locale-data/ig.js'), + id: () => void require('@formatjs/intl-listformat/locale-data/id.js'), + ga: () => void require('@formatjs/intl-listformat/locale-data/ga.js'), + it: () => void require('@formatjs/intl-listformat/locale-data/it.js'), + ja: () => void require('@formatjs/intl-listformat/locale-data/ja.js'), + kn: () => void require('@formatjs/intl-listformat/locale-data/kn.js'), + kk: () => void require('@formatjs/intl-listformat/locale-data/kk.js'), + km: () => void require('@formatjs/intl-listformat/locale-data/km.js'), + ko: () => void require('@formatjs/intl-listformat/locale-data/ko.js'), + ckb: () => void require('@formatjs/intl-listformat/locale-data/ckb.js'), + lo: () => void require('@formatjs/intl-listformat/locale-data/lo.js'), + lv: () => void require('@formatjs/intl-listformat/locale-data/lv.js'), + lt: () => void require('@formatjs/intl-listformat/locale-data/lt.js'), + mk: () => void require('@formatjs/intl-listformat/locale-data/mk.js'), + mg: () => void require('@formatjs/intl-listformat/locale-data/mg.js'), + ms: () => void require('@formatjs/intl-listformat/locale-data/ms.js'), + ml: () => void require('@formatjs/intl-listformat/locale-data/ml.js'), + mt: () => void require('@formatjs/intl-listformat/locale-data/mt.js'), + mi: () => void require('@formatjs/intl-listformat/locale-data/mi.js'), + mr: () => void require('@formatjs/intl-listformat/locale-data/mr.js'), + mn: () => void require('@formatjs/intl-listformat/locale-data/mn.js'), + ne: () => void require('@formatjs/intl-listformat/locale-data/ne.js'), + nb: () => void require('@formatjs/intl-listformat/locale-data/nb.js'), + or: () => void require('@formatjs/intl-listformat/locale-data/or.js'), + om: () => void require('@formatjs/intl-listformat/locale-data/om.js'), + ps: () => void require('@formatjs/intl-listformat/locale-data/ps.js'), + fa: () => void require('@formatjs/intl-listformat/locale-data/fa.js'), + pl: () => void require('@formatjs/intl-listformat/locale-data/pl.js'), + pt: () => void require('@formatjs/intl-listformat/locale-data/pt.js'), + 'pt-BR': () => void require('@formatjs/intl-listformat/locale-data/pt.js'), + pa: () => void require('@formatjs/intl-listformat/locale-data/pa.js'), + ro: () => void require('@formatjs/intl-listformat/locale-data/ro.js'), + ru: () => void require('@formatjs/intl-listformat/locale-data/ru.js'), + sr: () => void require('@formatjs/intl-listformat/locale-data/sr.js'), + si: () => void require('@formatjs/intl-listformat/locale-data/si.js'), + sk: () => void require('@formatjs/intl-listformat/locale-data/sk.js'), + sl: () => void require('@formatjs/intl-listformat/locale-data/sl.js'), + so: () => void require('@formatjs/intl-listformat/locale-data/so.js'), + es: () => void require('@formatjs/intl-listformat/locale-data/es.js'), + sw: () => void require('@formatjs/intl-listformat/locale-data/sw.js'), + sv: () => void require('@formatjs/intl-listformat/locale-data/sv.js'), + ta: () => void require('@formatjs/intl-listformat/locale-data/ta.js'), + te: () => void require('@formatjs/intl-listformat/locale-data/te.js'), + th: () => void require('@formatjs/intl-listformat/locale-data/th.js'), + tr: () => void require('@formatjs/intl-listformat/locale-data/tr.js'), + uk: () => void require('@formatjs/intl-listformat/locale-data/uk.js'), + ur: () => void require('@formatjs/intl-listformat/locale-data/ur.js'), + uz: () => void require('@formatjs/intl-listformat/locale-data/uz.js'), + vi: () => void require('@formatjs/intl-listformat/locale-data/vi.js'), + cy: () => void require('@formatjs/intl-listformat/locale-data/cy.js'), + yo: () => void require('@formatjs/intl-listformat/locale-data/yo.js'), + zu: () => void require('@formatjs/intl-listformat/locale-data/zu.js'), +} satisfies Record void>; + +export function loadNumberFormatLocaleData(language: SupportedLanguage): void { + NUMBER_FORMAT_LOCALE_LOADERS[language](); +} + +export function loadListFormatLocaleData(language: SupportedLanguage): void { + LIST_FORMAT_LOCALE_LOADERS[language](); +} diff --git a/apps/mobile/src/lib/hooks/use-available-models.ts b/apps/mobile/src/lib/hooks/use-available-models.ts index 09d87491c0..82ce2d0f03 100644 --- a/apps/mobile/src/lib/hooks/use-available-models.ts +++ b/apps/mobile/src/lib/hooks/use-available-models.ts @@ -3,6 +3,9 @@ import { useMemo } from 'react'; import { API_BASE_URL } from '@/lib/config'; import { getAuthTokenForRequest } from '@/lib/auth/token-owner'; +import { i18n } from '@/i18n'; +import { collator } from '@/lib/intl-cache'; +import { capitalize } from '@/lib/utils'; // ── Types ───────────────────────────────────────────────────────────── @@ -74,7 +77,7 @@ export function toModelOptions(data: ModelResponse | undefined): ModelOption[] { if (bHas) { return 1; } - return a.name.localeCompare(b.name); + return collator(i18n.language, { sensitivity: 'base' }).compare(a.name, b.name); }); return items.map(item => ({ @@ -94,7 +97,7 @@ export function thinkingEffortLabel(variant: string): string { if (variant === 'xhigh') { return 'Extra High'; } - return variant.charAt(0).toUpperCase() + variant.slice(1); + return capitalize(variant); } // ── Helpers ────────────────────────────────────────────────────────── diff --git a/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts b/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts index 9e98e70104..b4aa236110 100644 --- a/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts +++ b/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts @@ -1,5 +1,6 @@ import { formatDate } from '@/lib/format'; import { getResolvedLanguage } from '@/lib/hooks/use-language-preference'; +import { relativeTimeFormat } from '@/lib/intl-cache'; import { parseTimestamp } from '@/lib/utils'; import { type useKiloClawBillingStatus } from './use-kiloclaw-queries'; @@ -86,9 +87,8 @@ export function formatBillingDate(iso: string): string { } export function formatRemainingDays(daysRemaining: number): string { - if (daysRemaining <= 0) { - return 'Less than 1 day left'; - } - - return `${String(daysRemaining)} day${daysRemaining === 1 ? '' : 's'} left`; + return relativeTimeFormat(getResolvedLanguage(), { numeric: 'auto' }).format( + Math.max(0, daysRemaining), + 'day' + ); } diff --git a/apps/mobile/src/lib/intl-cache.test.ts b/apps/mobile/src/lib/intl-cache.test.ts index ac6e5b98f0..d201fe5dda 100644 --- a/apps/mobile/src/lib/intl-cache.test.ts +++ b/apps/mobile/src/lib/intl-cache.test.ts @@ -1,6 +1,13 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; -import { dateTimeFormat, numberFormat, relativeTimeFormat } from './intl-cache'; +import { + dateTimeFormat, + durationFormat, + listFormat, + numberFormat, + relativeTimeFormat, + segmenter, +} from './intl-cache'; describe('intl-cache', () => { afterEach(() => { @@ -31,7 +38,7 @@ describe('intl-cache', () => { ); }); - it('loads localized relative time when Hermes omits the constructor', () => { + it('polyfills the constructors that Hermes omits', () => { const nativeIntl = Intl; vi.stubGlobal('Intl', { Collator: nativeIntl.Collator, @@ -45,5 +52,9 @@ describe('intl-cache', () => { expect(relativeTimeFormat('de', { numeric: 'auto' }).format(-5, 'minute')).toBe( 'vor 5 Minuten' ); + expect(numberFormat('de', {}).format(1234.5)).toContain('1.234,5'); + expect(listFormat('de', { type: 'conjunction' }).format(['A', 'B'])).toBe('A und B'); + expect(durationFormat('en', { style: 'short' }).format({ hours: 1 })).toContain('1'); + expect([...segmenter('en', { granularity: 'grapheme' }).segment('👨‍👩‍👧‍👦X')]).toHaveLength(2); }); }); diff --git a/apps/mobile/src/lib/intl-cache.ts b/apps/mobile/src/lib/intl-cache.ts index ec400f81cf..1ec311283f 100644 --- a/apps/mobile/src/lib/intl-cache.ts +++ b/apps/mobile/src/lib/intl-cache.ts @@ -1,6 +1,11 @@ +import { shouldPolyfill as shouldPolyfillDurationFormat } from '@formatjs/intl-durationformat/should-polyfill.js'; +import { shouldPolyfill as shouldPolyfillListFormat } from '@formatjs/intl-listformat/should-polyfill.js'; +import { shouldPolyfill as shouldPolyfillNumberFormat } from '@formatjs/intl-numberformat/should-polyfill.js'; import { shouldPolyfill as shouldPolyfillRelativeTimeFormat } from '@formatjs/intl-relativetimeformat/should-polyfill.js'; +import { shouldPolyfill as shouldPolyfillSegmenter } from '@formatjs/intl-segmenter/should-polyfill.js'; -import { isSupportedLanguage } from '@/i18n/languages'; +import { isSupportedLanguage, type SupportedLanguage } from '@/i18n/languages'; +import { loadListFormatLocaleData, loadNumberFormatLocaleData } from '@/lib/formatjs-locale-data'; import { RELATIVE_TIME_LOCALE_LOADERS } from '@/lib/relative-time-locales'; /** @@ -9,13 +14,55 @@ import { RELATIVE_TIME_LOCALE_LOADERS } from '@/lib/relative-time-locales'; * Constructing a formatter is the expensive part; formatting with one is * cheap. A session list formats a cost and a relative time per row per render, * so a fresh formatter per call showed up as list-scroll jank. The cache is - * keyed by locale plus options, and 86 languages times a handful of option + * keyed by locale plus options, and 87 languages times a handful of option * shapes is a small, bounded set. */ const numberFormats = new Map(); const dateTimeFormats = new Map(); const relativeTimeFormats = new Map(); +const listFormats = new Map(); +const durationFormats = new Map(); +const collators = new Map(); +const segmenters = new Map(); +let usesNumberFormatPolyfill = false; +let usesListFormatPolyfill = false; let usesRelativeTimePolyfill = false; +let usesDurationFormatPolyfill = false; +let usesSegmenterPolyfill = false; + +function localeOrEnglish(locale: string): string { + return locale || 'en'; +} + +function localeDataLanguage(locale: string): SupportedLanguage { + if (isSupportedLanguage(locale)) { + return locale; + } + const base = locale.split('-')[0] ?? 'en'; + return isSupportedLanguage(base) ? base : 'en'; +} + +function ensureNumberFormat(locale: string): void { + const language = localeDataLanguage(locale); + if (!usesNumberFormatPolyfill && shouldPolyfillNumberFormat(locale)) { + require('@formatjs/intl-numberformat/polyfill-force.js'); + usesNumberFormatPolyfill = true; + } + if (usesNumberFormatPolyfill) { + loadNumberFormatLocaleData(language); + } +} + +function ensureListFormat(locale: string): void { + const language = localeDataLanguage(locale); + if (!usesListFormatPolyfill && shouldPolyfillListFormat(locale)) { + require('@formatjs/intl-listformat/polyfill-force.js'); + usesListFormatPolyfill = true; + } + if (usesListFormatPolyfill) { + loadListFormatLocaleData(language); + } +} function ensureRelativeTimeFormat(locale: string): void { const language = isSupportedLanguage(locale) ? locale : 'en'; @@ -29,14 +76,13 @@ function ensureRelativeTimeFormat(locale: string): void { RELATIVE_TIME_LOCALE_LOADERS[language](); } -export function numberFormat( - locale: Intl.LocalesArgument, - options: Intl.NumberFormatOptions -): Intl.NumberFormat { - const key = `${JSON.stringify(locale)}|${JSON.stringify(options)}`; +export function numberFormat(locale: string, options: Intl.NumberFormatOptions): Intl.NumberFormat { + const activeLocale = localeOrEnglish(locale); + ensureNumberFormat(activeLocale); + const key = `${JSON.stringify(activeLocale)}|${JSON.stringify(options)}`; let format = numberFormats.get(key); if (!format) { - format = new Intl.NumberFormat(locale, options); + format = new Intl.NumberFormat(activeLocale, options); numberFormats.set(key, format); } return format; @@ -59,12 +105,71 @@ export function relativeTimeFormat( locale: string, options: Intl.RelativeTimeFormatOptions ): Intl.RelativeTimeFormat { - ensureRelativeTimeFormat(locale); - const key = `${locale}|${JSON.stringify(options)}`; + const activeLocale = localeOrEnglish(locale); + ensureRelativeTimeFormat(activeLocale); + const key = `${activeLocale}|${JSON.stringify(options)}`; let format = relativeTimeFormats.get(key); if (!format) { - format = new Intl.RelativeTimeFormat(locale, options); + format = new Intl.RelativeTimeFormat(activeLocale, options); relativeTimeFormats.set(key, format); } return format; } + +export function listFormat(locale: string, options: Intl.ListFormatOptions): Intl.ListFormat { + const activeLocale = localeOrEnglish(locale); + ensureListFormat(activeLocale); + const key = `${activeLocale}|${JSON.stringify(options)}`; + let format = listFormats.get(key); + if (!format) { + format = new Intl.ListFormat(activeLocale, options); + listFormats.set(key, format); + } + return format; +} + +export function durationFormat( + locale: string, + options: Intl.DurationFormatOptions +): Intl.DurationFormat { + const activeLocale = localeOrEnglish(locale); + ensureNumberFormat(activeLocale); + ensureListFormat(activeLocale); + if (!usesDurationFormatPolyfill && shouldPolyfillDurationFormat()) { + require('@formatjs/intl-durationformat/polyfill-force.js'); + usesDurationFormatPolyfill = true; + } + const key = `${activeLocale}|${JSON.stringify(options)}`; + let format = durationFormats.get(key); + if (!format) { + format = new Intl.DurationFormat(activeLocale, options); + durationFormats.set(key, format); + } + return format; +} + +export function collator(locale: string, options: Intl.CollatorOptions = {}): Intl.Collator { + const activeLocale = localeOrEnglish(locale); + const key = `${activeLocale}|${JSON.stringify(options)}`; + let format = collators.get(key); + if (!format) { + format = new Intl.Collator(activeLocale, options); + collators.set(key, format); + } + return format; +} + +export function segmenter(locale: string, options: Intl.SegmenterOptions): Intl.Segmenter { + const activeLocale = localeOrEnglish(locale); + if (!usesSegmenterPolyfill && shouldPolyfillSegmenter()) { + require('@formatjs/intl-segmenter/polyfill-force.js'); + usesSegmenterPolyfill = true; + } + const key = `${activeLocale}|${JSON.stringify(options)}`; + let format = segmenters.get(key); + if (!format) { + format = new Intl.Segmenter(activeLocale, options); + segmenters.set(key, format); + } + return format; +} diff --git a/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts b/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts index 06393138d4..0289e45665 100644 --- a/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts +++ b/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts @@ -4,7 +4,7 @@ import { type PurchaseStatusClass, } from '@kilocode/app-shared/commerce'; import { i18n } from '@/i18n'; -import { formatDate } from '@/lib/format'; +import { formatDate, formatNumber } from '@/lib/format'; import { getResolvedLanguage } from '@/lib/hooks/use-language-preference'; import { parseTimestamp } from '@/lib/utils'; @@ -216,7 +216,9 @@ function getActiveSubscriptionCardState( statusClass: PurchaseStatusClass ): KiloPassSubscriptionCardState { const credits = i18n.t('kiloPass.monthlyCredits', { - credits: subscription.currentPeriodBaseCreditsUsd.toFixed(0), + credits: formatNumber(subscription.currentPeriodBaseCreditsUsd, i18n.language, { + maximumFractionDigits: 0, + }), }); const title = getStatusClassTitle(statusClass, subscription.cancelAtPeriodEnd); diff --git a/apps/mobile/src/lib/model-cost.test.ts b/apps/mobile/src/lib/model-cost.test.ts index c42b53b2e7..7ba7934f07 100644 --- a/apps/mobile/src/lib/model-cost.test.ts +++ b/apps/mobile/src/lib/model-cost.test.ts @@ -29,46 +29,46 @@ describe('formatModelCostPer1M', () => { it('renders $120-class with trailing zeros stripped', () => { expect(formatModelCostPer1M({ prompt: '0.00012', completion: '0.000014' })).toBe( - 'In $120 · Out $14 per 1M tokens' + 'Input $120 · Output $14 / 1M tokens' ); }); it('renders $3 with trailing zeros stripped', () => { expect(formatModelCostPer1M({ prompt: '0.000003', completion: '0.000014' })).toBe( - 'In $3 · Out $14 per 1M tokens' + 'Input $3 · Output $14 / 1M tokens' ); }); it('renders $1.75 and $1.5 with proper trim rules', () => { expect(formatModelCostPer1M({ prompt: '0.00000175', completion: '0.0000015' })).toBe( - 'In $1.75 · Out $1.5 per 1M tokens' + 'Input $1.75 · Output $1.5 / 1M tokens' ); }); it('renders $0.15', () => { expect(formatModelCostPer1M({ prompt: '0.00000015', completion: '0.000014' })).toBe( - 'In $0.15 · Out $14 per 1M tokens' + 'Input $0.15 · Output $14 / 1M tokens' ); }); it('renders $0.03', () => { expect(formatModelCostPer1M({ prompt: '0.00000003', completion: '0.000014' })).toBe( - 'In $0.03 · Out $14 per 1M tokens' + 'Input $0.03 · Output $14 / 1M tokens' ); }); it('renders <$0.01 for sub-cent (but positive) prices', () => { expect(formatModelCostPer1M({ prompt: '0.000000009', completion: '0.000014' })).toBe( - 'In <$0.01 · Out $14 per 1M tokens' + 'Input <$0.01 · Output $14 / 1M tokens' ); expect(formatModelCostPer1M({ prompt: '0.00000175', completion: '0.000000009' })).toBe( - 'In $1.75 · Out <$0.01 per 1M tokens' + 'Input $1.75 · Output <$0.01 / 1M tokens' ); }); it('renders asymmetric pairs with one side sub-cent', () => { expect(formatModelCostPer1M({ prompt: '0.000000005', completion: '0.00003' })).toBe( - 'In <$0.01 · Out $30 per 1M tokens' + 'Input <$0.01 · Output $30 / 1M tokens' ); }); }); @@ -97,7 +97,7 @@ describe('modelPickerCostLabel', () => { modelPickerCostLabel({ pricing: { prompt: '0.00000175', completion: '0.000014' }, }) - ).toBe('In $1.75 · Out $14 per 1M tokens'); + ).toBe('Input $1.75 · Output $14 / 1M tokens'); }); it('returns null for undefined pricing on non-free, non-BYOK option', () => { diff --git a/apps/mobile/src/lib/model-cost.ts b/apps/mobile/src/lib/model-cost.ts index 2461ac7c3e..5d9505f83b 100644 --- a/apps/mobile/src/lib/model-cost.ts +++ b/apps/mobile/src/lib/model-cost.ts @@ -1,3 +1,6 @@ +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; + export type ModelPricing = { prompt?: string; completion?: string }; function formatSide(pricePerTokenStr: string | undefined): string | null { @@ -11,10 +14,18 @@ function formatSide(pricePerTokenStr: string | undefined): string | null { } if (pricePer1M < 0.01) { - return '<$0.01'; + return `<${formatNumber(0.01, i18n.language, { + style: 'currency', + currency: 'USD', + })}`; } - return `$${pricePer1M.toFixed(2).replace(/\.?0+$/, '')}`; + return formatNumber(pricePer1M, i18n.language, { + style: 'currency', + currency: 'USD', + minimumFractionDigits: 0, + maximumFractionDigits: 2, + }); } /** Visible per-1M-token cost for picker rows. null = hide the cost line. */ @@ -29,7 +40,10 @@ export function formatModelCostPer1M(pricing: ModelPricing | undefined): string return null; } - return `In ${input} · Out ${output} per 1M tokens`; + const million = formatNumber(1_000_000, i18n.language, { notation: 'compact' }); + return `${i18n.t('agentChat.messageDetails.input')} ${input} · ${i18n.t( + 'agentChat.messageDetails.output' + )} ${output} / ${million} ${i18n.t('agentChat.contextUsage.tokens')}`; } /** Row-level cost decision: free/BYOK badges suppress cost; otherwise format. */ diff --git a/apps/mobile/src/lib/model-picker-rows.ts b/apps/mobile/src/lib/model-picker-rows.ts index 535614a8f6..1c6b9b8b6a 100644 --- a/apps/mobile/src/lib/model-picker-rows.ts +++ b/apps/mobile/src/lib/model-picker-rows.ts @@ -1,4 +1,5 @@ import { type SessionModelOption } from '@/lib/hooks/use-session-model-options'; +import { i18n } from '@/i18n'; export type ModelPickerRow = | { key: string; title: string; type: 'header' } @@ -128,7 +129,7 @@ function groupForModel(model: SessionModelOption): Pick ({ describe('KiloClaw billing trial display', () => { it('formats active sub-day trials without saying zero days left', () => { - expect(formatRemainingDays(0)).toBe('Less than 1 day left'); - expect(formatRemainingDays(1)).toBe('1 day left'); - expect(formatRemainingDays(2)).toBe('2 days left'); + expect(formatRemainingDays(0)).toBe('today'); + expect(formatRemainingDays(1)).toBe('tomorrow'); + expect(formatRemainingDays(2)).toBe('in 2 days'); }); it('treats active zero-day trials as ending soon rather than expired today', () => { diff --git a/apps/mobile/src/lib/utils.ts b/apps/mobile/src/lib/utils.ts index 5998019af8..6dc8cc0000 100644 --- a/apps/mobile/src/lib/utils.ts +++ b/apps/mobile/src/lib/utils.ts @@ -4,6 +4,7 @@ import { type ClassValue, clsx } from 'clsx'; import { twMerge } from 'tailwind-merge'; import { i18n } from '@/i18n'; +import { firstGrapheme } from '@/lib/format'; function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); @@ -59,7 +60,8 @@ function pick(obj: T, keys: readonly K[]): /** Uppercases the first letter, e.g. for enum-like values used as labels. */ function capitalize(value: string): string { - return value.charAt(0).toUpperCase() + value.slice(1); + const first = firstGrapheme(value, i18n.language); + return first.toLocaleUpperCase(i18n.language) + value.slice(first.length); } export { diff --git a/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts b/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts index 160fc53e34..2b88368c7c 100644 --- a/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts +++ b/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts @@ -130,7 +130,7 @@ export function createVoiceInputActions(config: VoiceInputActionsConfig): VoiceI const startWith = async (requiresOnDeviceRecognition: boolean): Promise => { const startOptions: VoiceInputStartOptions = { baseDraft: getDraft(), - languageTag: await resolveVoiceInputStartLanguageTag(), + languageTag: await resolveVoiceInputStartLanguageTag(i18n.language), onDraftChange: getOnDraftChange(), onFeedback: showFeedback, owner, diff --git a/apps/mobile/src/lib/voice-input/use-voice-input.test.ts b/apps/mobile/src/lib/voice-input/use-voice-input.test.ts index 2ddf7cb09d..614cd3d8ee 100644 --- a/apps/mobile/src/lib/voice-input/use-voice-input.test.ts +++ b/apps/mobile/src/lib/voice-input/use-voice-input.test.ts @@ -200,7 +200,7 @@ describe('useVoiceInput integration', () => { }); describe('toggle', () => { - it('starts when idle, using the latest draft and resolved language and passing draft/feedback callbacks', async () => { + it('starts when idle, using the app language and passing draft/feedback callbacks', async () => { const { actions, onDraftChange, owner } = buildActions({ draft: 'hello' }); mockController.setSnapshot(idleSnapshot()); localizationMock.getLocales.mockReturnValue([{ languageTag: 'nl-NL' }]); @@ -213,7 +213,7 @@ describe('useVoiceInput integration', () => { throw new Error('controller.start was not called'); } expect(startOptions.baseDraft).toBe('hello'); - expect(startOptions.languageTag).toBe('nl-NL'); + expect(startOptions.languageTag).toBe('en-US'); expect(startOptions.owner).toBe(owner); expect(startOptions.onDraftChange).toBe(onDraftChange); expect(startOptions.onFeedback).toBe(showFeedback); diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts index 9d883271c5..09c536aa44 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts @@ -107,7 +107,7 @@ describe('resolveVoiceInputStartLanguageTag', () => { installedLocales: [], }); - const tag = await resolveVoiceInputStartLanguageTag(); + const tag = await resolveVoiceInputStartLanguageTag('nl'); expect(tag).toBe('nl-NL'); }); @@ -118,7 +118,7 @@ describe('resolveVoiceInputStartLanguageTag', () => { installedLocales: [], }); - const tag = await resolveVoiceInputStartLanguageTag(); + const tag = await resolveVoiceInputStartLanguageTag('en'); expect(tag).toBe('en-US'); }); @@ -126,8 +126,8 @@ describe('resolveVoiceInputStartLanguageTag', () => { localizationMock.getLocales.mockReturnValue([{ languageTag: 'en-DE' }]); getSupportedLocalesMock.mockResolvedValue({ locales: [], installedLocales: [] }); - const tag = await resolveVoiceInputStartLanguageTag(); - expect(tag).toBe('en-DE'); + const tag = await resolveVoiceInputStartLanguageTag('en'); + expect(tag).toBe('en'); }); it('returns the raw tag when getSupportedLocales rejects, and retries on a later call', async () => { @@ -138,10 +138,10 @@ describe('resolveVoiceInputStartLanguageTag', () => { installedLocales: [], }); - const first = await resolveVoiceInputStartLanguageTag(); - expect(first).toBe('en-DE'); + const first = await resolveVoiceInputStartLanguageTag('en'); + expect(first).toBe('en'); - const second = await resolveVoiceInputStartLanguageTag(); + const second = await resolveVoiceInputStartLanguageTag('en'); expect(second).toBe('en-US'); }); @@ -151,15 +151,25 @@ describe('resolveVoiceInputStartLanguageTag', () => { throw new Error('package not found'); }); - const tag = await resolveVoiceInputStartLanguageTag(); - expect(tag).toBe('en-DE'); + const tag = await resolveVoiceInputStartLanguageTag('en'); + expect(tag).toBe('en'); }); it('returns the raw tag as pass-through when no match in a non-empty list', async () => { localizationMock.getLocales.mockReturnValue([{ languageTag: 'fil-PH' }]); getSupportedLocalesMock.mockResolvedValue({ locales: ['en-US'], installedLocales: [] }); - const tag = await resolveVoiceInputStartLanguageTag(); - expect(tag).toBe('fil-PH'); + const tag = await resolveVoiceInputStartLanguageTag('fil'); + expect(tag).toBe('fil'); + }); + + it('uses the selected app language before a different device language', async () => { + localizationMock.getLocales.mockReturnValue([{ languageTag: 'nl-NL' }]); + getSupportedLocalesMock.mockResolvedValue({ + locales: ['nl-NL', 'fr-FR'], + installedLocales: [], + }); + + expect(await resolveVoiceInputStartLanguageTag('fr')).toBe('fr-FR'); }); }); diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.ts b/apps/mobile/src/lib/voice-input/voice-input-language.ts index ac71cd1904..50b8ef2dec 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.ts @@ -106,13 +106,13 @@ async function fetchSupportedLanguageTags(): Promise { } /** - * Resolve the best language tag for voice recognition, preferring a match - * against the recognizer's supported locales. On first call, fetches and + * Resolve the best language tag for voice recognition from the active app + * language. On first call, fetches and * memoizes the supported list; failures are never cached so subsequent calls - * retry. Falls back to the raw device preferred-language tag when the - * supported list is empty, unavailable, or contains no same-language match. + * retry. A matching device region refines the selected language. The selected + * app language remains the fallback when the supported list is unavailable. */ -export async function resolveVoiceInputStartLanguageTag(): Promise { +export async function resolveVoiceInputStartLanguageTag(appLanguage: string): Promise { const locales = getLocales(); const deviceTags = locales .map(l => l.languageTag) @@ -120,14 +120,18 @@ export async function resolveVoiceInputStartLanguageTag(): Promise { // module can still hand back a missing/empty value at runtime. // oxlint-disable-next-line anti-slop/no-runtime-typeof -- environment probe: guards against a real-device value diverging from expo-localization's static type. .filter((t): t is string => typeof t === 'string' && t.length > 0); - const rawTag = resolveVoiceInputLanguageTag(locales); + const language = normalizeLocale(appLanguage).split('-')[0]; + const preferredTags = [ + appLanguage, + ...deviceTags.filter(tag => normalizeLocale(tag).split('-')[0] === language), + ]; const supported = await fetchSupportedLanguageTags(); if (!supported || supported.length === 0) { - return rawTag; + return appLanguage; } - return pickSupportedVoiceInputLanguageTag(deviceTags, supported) ?? rawTag; + return pickSupportedVoiceInputLanguageTag(preferredTags, supported) ?? appLanguage; } /** Clear the session-level supported-locale cache. For tests only. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee14f516de..d9ad25ce0d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -325,9 +325,21 @@ importers: '@expo/react-native-action-sheet': specifier: 4.1.1 version: 4.1.1(@types/react@19.2.14)(react@19.2.3) + '@formatjs/intl-durationformat': + specifier: ^0.10.18 + version: 0.10.18 + '@formatjs/intl-listformat': + specifier: ^8.3.13 + version: 8.3.13 + '@formatjs/intl-numberformat': + specifier: ^9.4.0 + version: 9.4.0 '@formatjs/intl-relativetimeformat': specifier: ^12.3.13 version: 12.3.13 + '@formatjs/intl-segmenter': + specifier: ^12.2.13 + version: 12.2.13 '@kilocode/app-shared': specifier: workspace:* version: link:../../packages/app-shared @@ -5193,15 +5205,30 @@ packages: '@fontsource-variable/roboto-mono@5.3.0': resolution: {integrity: sha512-h5r+KY/6qy8JEOj33JgcrFO81YAnvrc1EAwMpl/EPJLb2OIvOy0/jmB5M7qs7x/uXk5JUP5Ux4LrkeOK7faHkQ==} + '@formatjs/bigdecimal@0.2.7': + resolution: {integrity: sha512-B4+XY/e4u5v261r3a37Kq2ax91gPZSKGyVpx8X5dygAggLlUz+6MeBpmAhaBFGB8WQ4JB1qD+QtKHk9aJkEb9Q==} + '@formatjs/fast-memoize@3.1.7': resolution: {integrity: sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA==} + '@formatjs/intl-durationformat@0.10.18': + resolution: {integrity: sha512-Wyn7TYW1c5EORLuh6IeAyEpaJf6GmvHPN7TXjJj3VT0bl9U2/zv/A518R+5lYtCmXLmmxX7DYz4iKSKzoKkR7g==} + + '@formatjs/intl-listformat@8.3.13': + resolution: {integrity: sha512-BTyqgBrZJdNM0CKIpsRXyuaSWAQ5Y+wP94cQTadTtT4XogvNh9YjnqLqgez6vQS4dTFgqOz5y/gP9rms4C1k1w==} + '@formatjs/intl-localematcher@0.8.13': resolution: {integrity: sha512-kHEAFOkeJSPNi7c5PaKaRjxcBrJwzzt81ifUu+8uve1EDW/VJl83KsxmqgqNZLzcFEhSliZGvx3+pk/RH0IOmg==} + '@formatjs/intl-numberformat@9.4.0': + resolution: {integrity: sha512-j7H3YoHOdfYjESj3yU9Aw/SApIBd3H91D87HpplkPWs0aIR7MOs9wh6GN8GSLKJQy6zXuK4d0Bgng5h+3JkrJg==} + '@formatjs/intl-relativetimeformat@12.3.13': resolution: {integrity: sha512-qgH6XQugzCrFyZIMvhi5xlk6JcJxyF87kcWzH8XT6X8oJQpdljt4xQSsF55TjaRHhi+iK1Nu7YAI9QkNGF7L2g==} + '@formatjs/intl-segmenter@12.2.13': + resolution: {integrity: sha512-jhxNn6FnvlIOYzn+VG4xRjcLRrLHlDGoRd723YuwdsNHZRvvcC4qvnh5xC5udSv0CiwbBKnPY3OzDNni2NxqIw==} + '@fregante/relaxed-json@2.0.0': resolution: {integrity: sha512-PyUXQWB42s4jBli435TDiYuVsadwRHnMc27YaLouINktvTWsL3FcKrRMGawTayFk46X+n5bE23RjUTWQwrukWw==} engines: {node: '>= 0.10.0'} @@ -21820,16 +21847,36 @@ snapshots: '@fontsource-variable/roboto-mono@5.3.0': {} + '@formatjs/bigdecimal@0.2.7': {} + '@formatjs/fast-memoize@3.1.7': {} + '@formatjs/intl-durationformat@0.10.18': + dependencies: + '@formatjs/bigdecimal': 0.2.7 + '@formatjs/intl-localematcher': 0.8.13 + + '@formatjs/intl-listformat@8.3.13': + dependencies: + '@formatjs/intl-localematcher': 0.8.13 + '@formatjs/intl-localematcher@0.8.13': dependencies: '@formatjs/fast-memoize': 3.1.7 + '@formatjs/intl-numberformat@9.4.0': + dependencies: + '@formatjs/bigdecimal': 0.2.7 + '@formatjs/intl-localematcher': 0.8.13 + '@formatjs/intl-relativetimeformat@12.3.13': dependencies: '@formatjs/intl-localematcher': 0.8.13 + '@formatjs/intl-segmenter@12.2.13': + dependencies: + '@formatjs/intl-localematcher': 0.8.13 + '@fregante/relaxed-json@2.0.0': {} '@google/genai@2.10.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(bufferutil@4.1.0)(utf-8-validate@6.0.6)': diff --git a/tools/i18n/check-catalogs.mjs b/tools/i18n/check-catalogs.mjs index b5136ffe8e..204cdc5d01 100644 --- a/tools/i18n/check-catalogs.mjs +++ b/tools/i18n/check-catalogs.mjs @@ -210,6 +210,10 @@ function scanSource() { return { called, referenced }; } +function pluralBaseKey(key) { + return key.replace(/_(?:zero|one|two|few|many|other)$/, ''); +} + const tags = supportedLanguages(); for (const catalog of CATALOGS) { @@ -309,7 +313,7 @@ for (const catalog of CATALOGS) { } } for (const key of english.keys()) { - if (!referenced.has(key)) { + if (!referenced.has(key) && !referenced.has(pluralBaseKey(key))) { fail(`${catalog.name}: en.json defines "${key}", which no source file uses`); } } From 7801cc0161463d067a1eafd80b7a680501fd5ce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 16:11:49 +0200 Subject: [PATCH 03/14] fix(mobile): complete locale-safe formatting --- apps/mobile/package.json | 1 + .../agents/attachment-preview-strip.test.ts | 10 +- .../components/agents/blocking-card-state.ts | 6 +- .../agents/child-session-section.tsx | 2 +- .../agents/context-usage-display.test.ts | 1 + .../components/agents/preparation-group.tsx | 9 +- .../agents/session-context-sheet.tsx | 5 +- .../components/agents/session-list-helpers.ts | 4 +- .../agents/session-list-section-header.tsx | 4 +- .../components/agents/tool-card-display.ts | 24 +- .../code-reviewer/platform-overview-rows.ts | 3 +- .../code-reviewer/review-detail-screen.tsx | 6 +- .../kilo-chat/message-attachment-state.ts | 7 +- .../kilo-chat/message-reaction-pills.tsx | 5 +- .../kilo-pass-subscription-screen.tsx | 15 +- .../components/kiloclaw/billing-banner.tsx | 6 +- .../kiloclaw/onboarding/provisioning-step.tsx | 6 +- .../organization/org-kilo-pass-row-state.ts | 14 +- .../pr-review/diff/pr-diff-hunk-rows.tsx | 24 +- .../pr-review/discussion/reactions-row.tsx | 5 +- .../discussion/thread-diff-snippet.tsx | 7 +- .../pr-review/pr-review-checks-section.tsx | 20 +- .../pr-review/pr-review-submit-view.ts | 5 + .../audit-report-screen.mounted.test.tsx | 1 + .../security-agent/audit-report-screen.tsx | 6 +- .../security-agent/dashboard-screen.tsx | 99 ++++++++- .../security-agent/dashboard-sections.tsx | 19 +- .../security-agent/finding-analysis-panel.tsx | 13 +- .../finding-remediation-panel.tsx | 3 + .../settings-overview-screen.tsx | 2 + .../share/share-payload-preview.tsx | 7 +- apps/mobile/src/i18n/label-reference.test.ts | 6 +- apps/mobile/src/i18n/locales/af.json | 105 +++++---- apps/mobile/src/i18n/locales/am.json | 105 +++++---- apps/mobile/src/i18n/locales/ar.json | 209 +++++++++++++----- apps/mobile/src/i18n/locales/az.json | 105 +++++---- apps/mobile/src/i18n/locales/be.json | 169 +++++++++----- apps/mobile/src/i18n/locales/bg.json | 105 +++++---- apps/mobile/src/i18n/locales/bn.json | 105 +++++---- apps/mobile/src/i18n/locales/bs.json | 150 ++++++++----- apps/mobile/src/i18n/locales/ca.json | 150 ++++++++----- apps/mobile/src/i18n/locales/ckb.json | 105 +++++---- apps/mobile/src/i18n/locales/cs.json | 169 +++++++++----- apps/mobile/src/i18n/locales/cy.json | 207 ++++++++++++----- apps/mobile/src/i18n/locales/da.json | 105 +++++---- apps/mobile/src/i18n/locales/de.json | 105 +++++---- apps/mobile/src/i18n/locales/el.json | 105 +++++---- apps/mobile/src/i18n/locales/en.json | 105 +++++---- apps/mobile/src/i18n/locales/es.json | 152 ++++++++----- apps/mobile/src/i18n/locales/et.json | 105 +++++---- apps/mobile/src/i18n/locales/eu.json | 105 +++++---- apps/mobile/src/i18n/locales/fa.json | 105 +++++---- apps/mobile/src/i18n/locales/fi.json | 105 +++++---- apps/mobile/src/i18n/locales/fil.json | 105 +++++---- apps/mobile/src/i18n/locales/fr.json | 152 ++++++++----- apps/mobile/src/i18n/locales/ga.json | 188 +++++++++++----- apps/mobile/src/i18n/locales/gl.json | 105 +++++---- apps/mobile/src/i18n/locales/gu.json | 105 +++++---- apps/mobile/src/i18n/locales/ha.json | 105 +++++---- apps/mobile/src/i18n/locales/he.json | 152 ++++++++----- apps/mobile/src/i18n/locales/hi.json | 105 +++++---- apps/mobile/src/i18n/locales/hr.json | 150 ++++++++----- apps/mobile/src/i18n/locales/ht.json | 105 +++++---- apps/mobile/src/i18n/locales/hu.json | 105 +++++---- apps/mobile/src/i18n/locales/hy.json | 105 +++++---- apps/mobile/src/i18n/locales/id.json | 105 +++++---- apps/mobile/src/i18n/locales/ig.json | 105 +++++---- apps/mobile/src/i18n/locales/is.json | 105 +++++---- apps/mobile/src/i18n/locales/it.json | 152 ++++++++----- apps/mobile/src/i18n/locales/ja.json | 105 +++++---- apps/mobile/src/i18n/locales/ka.json | 105 +++++---- apps/mobile/src/i18n/locales/kk.json | 105 +++++---- apps/mobile/src/i18n/locales/km.json | 105 +++++---- apps/mobile/src/i18n/locales/kn.json | 105 +++++---- apps/mobile/src/i18n/locales/ko.json | 105 +++++---- apps/mobile/src/i18n/locales/lo.json | 105 +++++---- apps/mobile/src/i18n/locales/lt.json | 169 +++++++++----- apps/mobile/src/i18n/locales/lv.json | 150 ++++++++----- apps/mobile/src/i18n/locales/mg.json | 105 +++++---- apps/mobile/src/i18n/locales/mi.json | 105 +++++---- apps/mobile/src/i18n/locales/mk.json | 105 +++++---- apps/mobile/src/i18n/locales/ml.json | 105 +++++---- apps/mobile/src/i18n/locales/mn.json | 105 +++++---- apps/mobile/src/i18n/locales/mr.json | 105 +++++---- apps/mobile/src/i18n/locales/ms.json | 105 +++++---- apps/mobile/src/i18n/locales/mt.json | 188 +++++++++++----- apps/mobile/src/i18n/locales/my.json | 105 +++++---- apps/mobile/src/i18n/locales/nb.json | 105 +++++---- apps/mobile/src/i18n/locales/ne.json | 105 +++++---- apps/mobile/src/i18n/locales/nl.json | 105 +++++---- apps/mobile/src/i18n/locales/om.json | 105 +++++---- apps/mobile/src/i18n/locales/or.json | 105 +++++---- apps/mobile/src/i18n/locales/pa.json | 105 +++++---- apps/mobile/src/i18n/locales/pl.json | 171 +++++++++----- apps/mobile/src/i18n/locales/ps.json | 105 +++++---- apps/mobile/src/i18n/locales/pt-BR.json | 152 ++++++++----- apps/mobile/src/i18n/locales/pt.json | 150 ++++++++----- apps/mobile/src/i18n/locales/ro.json | 150 ++++++++----- apps/mobile/src/i18n/locales/ru.json | 171 +++++++++----- apps/mobile/src/i18n/locales/si.json | 105 +++++---- apps/mobile/src/i18n/locales/sk.json | 169 +++++++++----- apps/mobile/src/i18n/locales/sl.json | 169 +++++++++----- apps/mobile/src/i18n/locales/so.json | 105 +++++---- apps/mobile/src/i18n/locales/sq.json | 105 +++++---- apps/mobile/src/i18n/locales/sr.json | 150 ++++++++----- apps/mobile/src/i18n/locales/sv.json | 105 +++++---- apps/mobile/src/i18n/locales/sw.json | 105 +++++---- apps/mobile/src/i18n/locales/ta.json | 105 +++++---- apps/mobile/src/i18n/locales/te.json | 105 +++++---- apps/mobile/src/i18n/locales/th.json | 105 +++++---- apps/mobile/src/i18n/locales/tr.json | 105 +++++---- apps/mobile/src/i18n/locales/uk.json | 171 +++++++++----- apps/mobile/src/i18n/locales/ur.json | 105 +++++---- apps/mobile/src/i18n/locales/uz.json | 105 +++++---- apps/mobile/src/i18n/locales/vi.json | 105 +++++---- apps/mobile/src/i18n/locales/yo.json | 105 +++++---- apps/mobile/src/i18n/locales/zh-Hans.json | 105 +++++---- apps/mobile/src/i18n/locales/zh-Hant.json | 105 +++++---- apps/mobile/src/i18n/locales/zu.json | 105 +++++---- .../use-agent-attachment-upload.ts | 8 +- apps/mobile/src/lib/format.test.ts | 12 +- apps/mobile/src/lib/format.ts | 41 +++- .../src/lib/hooks/use-kiloclaw-billing.ts | 15 +- apps/mobile/src/lib/intl-cache.test.ts | 2 +- apps/mobile/src/lib/intl-cache.ts | 14 +- .../lib/kilo-pass/subscription-card-state.ts | 5 +- .../lib/kilo-pass/subscription-page-copy.ts | 8 +- apps/mobile/src/lib/model-cost.ts | 24 +- apps/mobile/src/lib/model-picker-rows.ts | 3 +- apps/mobile/src/lib/platform-label.ts | 4 +- apps/mobile/src/lib/tab-bar-layout.ts | 9 +- .../src/lib/use-kiloclaw-billing.test.ts | 8 +- .../voice-input/voice-input-language.test.ts | 10 + .../lib/voice-input/voice-input-language.ts | 2 +- pnpm-lock.yaml | 23 ++ tools/i18n/check-catalogs.mjs | 50 ++++- 136 files changed, 7325 insertions(+), 3833 deletions(-) diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 6d31d513d8..2ff1e761e4 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -28,6 +28,7 @@ "@expo/react-native-action-sheet": "4.1.1", "@formatjs/intl-durationformat": "^0.10.18", "@formatjs/intl-listformat": "^8.3.13", + "@formatjs/intl-locale": "^5.3.10", "@formatjs/intl-numberformat": "^9.4.0", "@formatjs/intl-relativetimeformat": "^12.3.13", "@formatjs/intl-segmenter": "^12.2.13", diff --git a/apps/mobile/src/components/agents/attachment-preview-strip.test.ts b/apps/mobile/src/components/agents/attachment-preview-strip.test.ts index a94f0ee71f..b33309dc8c 100644 --- a/apps/mobile/src/components/agents/attachment-preview-strip.test.ts +++ b/apps/mobile/src/components/agents/attachment-preview-strip.test.ts @@ -32,7 +32,7 @@ describe('describeAttachmentChip — happy / in-flight', () => { it('shows filename and human-readable size for a fully uploaded chip', () => { const desc = describeAttachmentChip(baseState); expect(desc.filename).toBe('doc.pdf'); - expect(desc.sizeText).toBe('1 KB'); + expect(desc.sizeText).toBe('1 kB'); expect(desc.progressText).toBe('Uploaded'); expect(desc.message).toBeNull(); expect(desc.accessibilityLabel).toBe('doc.pdf, Uploaded'); @@ -52,7 +52,7 @@ describe('describeAttachmentChip — happy / in-flight', () => { expect(desc.showRetry).toBe(false); expect(desc.showRemove).toBe(true); // Size and filename are still surfaced so the user knows what is uploading. - expect(desc.sizeText).toBe('1 KB'); + expect(desc.sizeText).toBe('1 kB'); expect(desc.filename).toBe('doc.pdf'); }); @@ -75,7 +75,7 @@ describe('describeAttachmentChip — happy / in-flight', () => { progress: 0, }); expect(desc.filename).toBe('doc.pdf'); - expect(desc.sizeText).toBe('1 KB'); + expect(desc.sizeText).toBe('1 kB'); expect(desc.progressText).toBe('0%'); expect(desc.message).toBeNull(); expect(desc.accessibilityLabel).toBe('doc.pdf, 0%'); @@ -95,7 +95,7 @@ describe('describeAttachmentChip — unhappy, retryable (network/timeout/408/429 expect(desc.showRetry).toBe(true); expect(desc.showRemove).toBe(true); // Size + filename are still surfaced so the user knows which file failed. - expect(desc.sizeText).toBe('1 KB'); + expect(desc.sizeText).toBe('1 kB'); expect(desc.filename).toBe('doc.pdf'); }); @@ -130,7 +130,7 @@ describe('describeAttachmentChip — unhappy, non-retryable (presign BAD_REQUEST // Filename + size are still surfaced so the user knows which file is // permanently rejected. expect(desc.filename).toBe('doc.pdf'); - expect(desc.sizeText).toBe('1 KB'); + expect(desc.sizeText).toBe('1 kB'); }); it('keeps progressText empty for terminal failures (no percent leaked into the message)', () => { diff --git a/apps/mobile/src/components/agents/blocking-card-state.ts b/apps/mobile/src/components/agents/blocking-card-state.ts index 313b9fdeeb..8b62955983 100644 --- a/apps/mobile/src/components/agents/blocking-card-state.ts +++ b/apps/mobile/src/components/agents/blocking-card-state.ts @@ -8,6 +8,7 @@ import { type Component, type RefObject } from 'react'; import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { readTrpcErrorField } from '@/lib/trpc-error'; import { type BlockingInteraction } from './agent-interaction-policy'; @@ -216,7 +217,10 @@ function buildAnnouncement(kind: BlockingCardKind, state: BlockingCardUiState): */ export function formatBlockingCardTitle(baseTitle: string, count: number): string { return count > 1 - ? `${baseTitle} ${i18n.t('agentChat.blockingCard.positionHint', { count })}` + ? `${baseTitle} ${i18n.t('agentChat.blockingCard.positionHint', { + count, + displayCount: formatNumber(count, i18n.language), + })}` : baseTitle; } diff --git a/apps/mobile/src/components/agents/child-session-section.tsx b/apps/mobile/src/components/agents/child-session-section.tsx index 7e2398fa7c..f87fb7a933 100644 --- a/apps/mobile/src/components/agents/child-session-section.tsx +++ b/apps/mobile/src/components/agents/child-session-section.tsx @@ -71,7 +71,7 @@ export function ChildSessionSection({ return ( diff --git a/apps/mobile/src/components/agents/context-usage-display.test.ts b/apps/mobile/src/components/agents/context-usage-display.test.ts index f52c77376e..475d2992b4 100644 --- a/apps/mobile/src/components/agents/context-usage-display.test.ts +++ b/apps/mobile/src/components/agents/context-usage-display.test.ts @@ -316,6 +316,7 @@ describe('getMetricsAccessibilityLabel', () => { expect(label).toContain('84,000'); expect(label).toContain('200,000'); expect(label).toContain('42%'); + expect(label).not.toContain('%%'); expect(label).toContain('8 cents'); expect(label).not.toContain('$'); expect(label.toLowerCase()).toContain('context details'); diff --git a/apps/mobile/src/components/agents/preparation-group.tsx b/apps/mobile/src/components/agents/preparation-group.tsx index e614b90dfa..02fd5bd032 100644 --- a/apps/mobile/src/components/agents/preparation-group.tsx +++ b/apps/mobile/src/components/agents/preparation-group.tsx @@ -7,6 +7,8 @@ import { type PreparationAttempt, type PreparationStepSnapshot } from '@kilocode import { Text } from '@/components/ui/text'; import { DirectionalChevronRight } from '@/components/ui/directional-icons'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { MonoScrollBlock } from './mono-scroll-block'; @@ -81,11 +83,14 @@ function setupCommandLabel(step: PreparationStepSnapshot, t: TFunction): string } if (step.commandCount) { return t('agentChat.preparation.setupCommandOf', { - index: step.commandIndex + 1, + index: formatNumber(step.commandIndex + 1, i18n.language), count: step.commandCount, + displayCount: formatNumber(step.commandCount, i18n.language), }); } - return t('agentChat.preparation.setupCommand', { index: step.commandIndex + 1 }); + return t('agentChat.preparation.setupCommand', { + index: formatNumber(step.commandIndex + 1, i18n.language), + }); } function PreparationStepRow({ step }: { step: PreparationStepSnapshot }) { diff --git a/apps/mobile/src/components/agents/session-context-sheet.tsx b/apps/mobile/src/components/agents/session-context-sheet.tsx index dcb93fa240..dc70816386 100644 --- a/apps/mobile/src/components/agents/session-context-sheet.tsx +++ b/apps/mobile/src/components/agents/session-context-sheet.tsx @@ -210,7 +210,10 @@ export function SessionContextSheet({ {modelsSectionCount > 0 ? ( - {t('agentChat.contextUsage.modelsCount', { count: modelsSectionCount })} + {t('agentChat.contextUsage.modelsCount', { + count: modelsSectionCount, + displayCount: formatNumber(modelsSectionCount, i18n.language), + })} {visibleModels.map(model => ( diff --git a/apps/mobile/src/components/agents/session-list-helpers.ts b/apps/mobile/src/components/agents/session-list-helpers.ts index 48de666ccb..f5153829d1 100644 --- a/apps/mobile/src/components/agents/session-list-helpers.ts +++ b/apps/mobile/src/components/agents/session-list-helpers.ts @@ -277,7 +277,7 @@ export function storedSessionEyebrowLabel(session: { created_on_platform: string; }): string { const repo = repoNameFromGitUrl(session.git_url); - return repo ? repo.toLocaleUpperCase(i18n.language) : platformLabel(session.created_on_platform); + return repo ? repo.toUpperCase() : platformLabel(session.created_on_platform); } /** @@ -291,7 +291,7 @@ export function remoteSessionEyebrowLabel(session: { createdOnPlatform?: string; }): string { const repo = repoNameFromGitUrl(session.gitUrl); - return repo ? repo.toLocaleUpperCase(i18n.language) : remoteAgentLabel(session.createdOnPlatform); + return repo ? repo.toUpperCase() : remoteAgentLabel(session.createdOnPlatform); } /** diff --git a/apps/mobile/src/components/agents/session-list-section-header.tsx b/apps/mobile/src/components/agents/session-list-section-header.tsx index ef6ff3f91f..59b7a02fcd 100644 --- a/apps/mobile/src/components/agents/session-list-section-header.tsx +++ b/apps/mobile/src/components/agents/session-list-section-header.tsx @@ -2,6 +2,8 @@ import { View } from 'react-native'; import { Eyebrow } from '@/components/ui/eyebrow'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; type SessionListSectionHeaderProps = { title: string; @@ -23,7 +25,7 @@ export function SessionListSectionHeader({ {title} - {count} + {formatNumber(count, i18n.language)} ); diff --git a/apps/mobile/src/components/agents/tool-card-display.ts b/apps/mobile/src/components/agents/tool-card-display.ts index 14c3e87596..9cc3247750 100644 --- a/apps/mobile/src/components/agents/tool-card-display.ts +++ b/apps/mobile/src/components/agents/tool-card-display.ts @@ -2,7 +2,7 @@ import { type ToolPart } from '@kilocode/cloud-agent-sdk'; import { z } from 'zod'; import { i18n } from '@/i18n'; -import { formatList } from '@/lib/format'; +import { formatList, formatNumber } from '@/lib/format'; import { getToolFileAttachments, getToolImageAttachments } from './tool-card-attachments'; import { getDirectoryName, @@ -73,7 +73,12 @@ export function getToolDisplay(part: ToolPart): ToolDisplay { badgeParts.push(`L${offset}`); } if (limit !== undefined) { - badgeParts.push(i18n.t('agentChat.toolCard.linesBadge', { count: limit })); + badgeParts.push( + i18n.t('agentChat.toolCard.linesBadge', { + count: limit, + displayCount: formatNumber(limit, i18n.language), + }) + ); } const badge = badgeParts.length > 0 ? formatList(badgeParts, i18n.language) : undefined; @@ -111,7 +116,10 @@ export function getToolDisplay(part: ToolPart): ToolDisplay { const matchCount = output ? countResultRows(output, 'glob') : undefined; const badge = matchCount !== undefined && matchCount > 0 - ? i18n.t('agentChat.toolCard.filesBadge', { count: matchCount }) + ? i18n.t('agentChat.toolCard.filesBadge', { + count: matchCount, + displayCount: formatNumber(matchCount, i18n.language), + }) : undefined; return { title: i18n.t('agentChat.toolCard.toolGlob'), @@ -130,7 +138,10 @@ export function getToolDisplay(part: ToolPart): ToolDisplay { const matchCount = output ? countResultRows(output, 'grep') : undefined; const badge = matchCount !== undefined && matchCount > 0 - ? i18n.t('agentChat.toolCard.matchesBadge', { count: matchCount }) + ? i18n.t('agentChat.toolCard.matchesBadge', { + count: matchCount, + displayCount: formatNumber(matchCount, i18n.language), + }) : undefined; return { title: i18n.t('agentChat.toolCard.toolGrep'), subtitle, badge }; } @@ -153,7 +164,10 @@ export function getToolDisplay(part: ToolPart): ToolDisplay { if (files.length === 1) { subtitle = getFilename(files[0] ?? ''); } else if (files.length > 1) { - subtitle = i18n.t('agentChat.toolCard.filesBadge', { count: files.length }); + subtitle = i18n.t('agentChat.toolCard.filesBadge', { + count: files.length, + displayCount: formatNumber(files.length, i18n.language), + }); } return { title: i18n.t('agentChat.toolCard.toolPatch'), subtitle }; } diff --git a/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts b/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts index 83ca985b43..01e8d4411e 100644 --- a/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts +++ b/apps/mobile/src/components/code-reviewer/platform-overview-rows.ts @@ -10,7 +10,7 @@ import { } from '@/components/ui/icons'; import { i18n } from '@/i18n'; -import { formatList } from '@/lib/format'; +import { formatList, formatNumber } from '@/lib/format'; import { type PLATFORM_CAPABILITIES, type ReviewConfigData } from '@/lib/code-reviewer-config'; import { type ModelOption } from '@/lib/hooks/use-available-models'; import { capitalize } from '@/lib/utils'; @@ -99,6 +99,7 @@ export function buildOverviewRows({ ? i18n.t('codeReviewer.overview.allRepositories') : i18n.t('codeReviewer.overview.nSelected', { count: data.selectedRepositoryIds.length, + displayCount: formatNumber(data.selectedRepositoryIds.length, i18n.language), }), }, // Review memory is GitHub-only and only offered when the caller wires the diff --git a/apps/mobile/src/components/code-reviewer/review-detail-screen.tsx b/apps/mobile/src/components/code-reviewer/review-detail-screen.tsx index 73fadfb894..7dc5da3ec3 100644 --- a/apps/mobile/src/components/code-reviewer/review-detail-screen.tsx +++ b/apps/mobile/src/components/code-reviewer/review-detail-screen.tsx @@ -29,7 +29,7 @@ import { FEATURE_FLAG_PR_REVIEW, useFeatureFlag } from '@/lib/analytics/posthog' import { resolveCodeReviewerOpenPrDestination } from '@/lib/code-reviewer-open-pr-destination'; import { reviewerPlatformLabel } from '@/lib/code-reviewer-config'; import { openExternalUrl } from '@/lib/external-link'; -import { formatMoney } from '@/lib/format'; +import { formatMoney, formatNumber } from '@/lib/format'; import { useCancelReview, useRetriggerReview, useReviewDetail } from '@/lib/hooks/use-code-reviews'; import { getPrReviewPath } from '@/lib/profile-agent-navigation'; import { cn, parseTimestamp, timeAgo } from '@/lib/utils'; @@ -245,8 +245,8 @@ export function ReviewDetailScreen({ ) : null} diff --git a/apps/mobile/src/components/kilo-chat/message-attachment-state.ts b/apps/mobile/src/components/kilo-chat/message-attachment-state.ts index d14ae9f22f..642aef921d 100644 --- a/apps/mobile/src/components/kilo-chat/message-attachment-state.ts +++ b/apps/mobile/src/components/kilo-chat/message-attachment-state.ts @@ -1,5 +1,5 @@ import { i18n } from '@/i18n'; -import { formatFileSize } from '@/lib/format'; +import { formatFileSize, formatNumber } from '@/lib/format'; const MESSAGE_ATTACHMENT_MAX_COUNT = 10; @@ -84,7 +84,10 @@ export function normalizeAttachmentSelection( } export function buildAttachmentLimitToast(): string { - return i18n.t('chat.attachment.limit', { count: MESSAGE_ATTACHMENT_MAX_COUNT }); + return i18n.t('chat.attachment.limit', { + count: MESSAGE_ATTACHMENT_MAX_COUNT, + displayCount: formatNumber(MESSAGE_ATTACHMENT_MAX_COUNT, i18n.language), + }); } export function buildAttachmentSizeRejectionToast(filename: string): string { diff --git a/apps/mobile/src/components/kilo-chat/message-reaction-pills.tsx b/apps/mobile/src/components/kilo-chat/message-reaction-pills.tsx index 4491b23b01..41441de966 100644 --- a/apps/mobile/src/components/kilo-chat/message-reaction-pills.tsx +++ b/apps/mobile/src/components/kilo-chat/message-reaction-pills.tsx @@ -3,6 +3,8 @@ import { Pressable, View } from 'react-native'; import { useTranslation } from 'react-i18next'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { cn } from '@/lib/utils'; import { canShowReactionPills } from './message-presentation'; @@ -43,6 +45,7 @@ export function MessageReactionPills({ accessibilityLabel={t('chat.reactions.accessibility', { emoji: reaction.emoji, count: reaction.count, + displayCount: formatNumber(reaction.count, i18n.language), })} accessibilityState={{ selected: hasReacted }} className={cn( @@ -57,7 +60,7 @@ export function MessageReactionPills({ hasReacted ? 'text-primary-foreground' : 'text-foreground' )} > - {reaction.count} + {formatNumber(reaction.count, i18n.language)} ); diff --git a/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.tsx b/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.tsx index 8a759391ea..63a38db3bd 100644 --- a/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.tsx +++ b/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.tsx @@ -15,6 +15,7 @@ import { Text } from '@/components/ui/text'; import { i18n } from '@/i18n'; import { WEB_BASE_URL } from '@/lib/config'; import { openExternalUrl } from '@/lib/external-link'; +import { formatUsd } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { getKiloPassLegalLinks, kiloPassLegalDisclosure } from '@/lib/kilo-pass/legal-links'; import { ensureProfileAfterKiloPassPurchase } from '@/lib/kilo-pass/navigation'; @@ -48,7 +49,12 @@ function getPreflightFailureMessage(reason: string | null): string { } function formatTier(product: AppStoreKiloPassProduct): string { - return i18n.t('kiloPass.tierCredits', { amount: product.webMonthlyPriceUsd }); + return i18n.t('kiloPass.tierCredits', { + amount: formatUsd(product.webMonthlyPriceUsd, i18n.language, { + minimumFractionDigits: 0, + maximumFractionDigits: 2, + }), + }); } function formatStorePrice(product: AppStoreKiloPassProduct): string { @@ -367,7 +373,12 @@ function KiloPassNativeIapContent() { {formatTier(product)} - {t('kiloPass.tierDescription', { price: product.webMonthlyPriceUsd })} + {t('kiloPass.tierDescription', { + price: formatUsd(product.webMonthlyPriceUsd, i18n.language, { + minimumFractionDigits: 0, + maximumFractionDigits: 2, + }), + })} diff --git a/apps/mobile/src/components/kiloclaw/billing-banner.tsx b/apps/mobile/src/components/kiloclaw/billing-banner.tsx index 83cc5c64f1..8dc5fd0abb 100644 --- a/apps/mobile/src/components/kiloclaw/billing-banner.tsx +++ b/apps/mobile/src/components/kiloclaw/billing-banner.tsx @@ -63,7 +63,7 @@ function getBannerConfig(billing: ClawBillingStatus, state: string): BannerConfi return { icon: Info, message: i18n.t('kiloclaw.billing.trialDaysRemaining', { - days: billing.trial?.daysRemaining ?? 0, + remaining: formatRemainingDays(billing.trial?.daysRemaining ?? 0), }), severity: 'info', }; @@ -73,7 +73,7 @@ function getBannerConfig(billing: ClawBillingStatus, state: string): BannerConfi return { icon: Clock, message: i18n.t('kiloclaw.billing.trialEndingSoon', { - days: formatRemainingDays(billing.trial?.daysRemaining ?? 0), + remaining: formatRemainingDays(billing.trial?.daysRemaining ?? 0), }), severity: 'warn', }; @@ -93,7 +93,7 @@ function getBannerConfig(billing: ClawBillingStatus, state: string): BannerConfi return { icon: Clock, message: i18n.t('kiloclaw.billing.earlybirdEnding', { - days: billing.earlybird?.daysRemaining ?? 0, + remaining: formatRemainingDays(billing.earlybird?.daysRemaining ?? 0), }), severity: 'warn', }; diff --git a/apps/mobile/src/components/kiloclaw/onboarding/provisioning-step.tsx b/apps/mobile/src/components/kiloclaw/onboarding/provisioning-step.tsx index 2fad68a185..549701dabb 100644 --- a/apps/mobile/src/components/kiloclaw/onboarding/provisioning-step.tsx +++ b/apps/mobile/src/components/kiloclaw/onboarding/provisioning-step.tsx @@ -28,6 +28,7 @@ import { agentColor, toneColor } from '@/lib/agent-color'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { cn } from '@/lib/utils'; import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { DEFAULT_BOT_IDENTITY } from './state'; @@ -190,7 +191,10 @@ export function ProvisioningStep({ {t(content.titleKey)} - {t(content.bodyKey, { name: botName, minutes: OVERALL_TIMEOUT_MS / 60_000 })} + {t(content.bodyKey, { + name: botName, + displayMinutes: formatNumber(OVERALL_TIMEOUT_MS / 60_000, i18n.language), + })} diff --git a/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts b/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts index b5ed94b4e5..0952b8102a 100644 --- a/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts +++ b/apps/mobile/src/components/organization/org-kilo-pass-row-state.ts @@ -1,5 +1,5 @@ import { i18n } from '@/i18n'; -import { formatDate, formatNumber } from '@/lib/format'; +import { formatDate, formatNumber, formatUsd } from '@/lib/format'; import { parseTimestamp } from '@/lib/utils'; /** @@ -58,11 +58,7 @@ export type OrgKiloPassRowState = { loading: boolean; }; -const TIER_LABELS = { - tier_19: '$19', - tier_49: '$49', - tier_199: '$199', -} satisfies Record<'tier_19' | 'tier_49' | 'tier_199', string>; +const TIER_PRICES = { tier_19: 19, tier_49: 49, tier_199: 199 } as const; function paidSeatsLabel(count: number): string { return i18n.t('organization.kiloPass.paidSeat', { @@ -72,7 +68,11 @@ function paidSeatsLabel(count: number): string { } function activeSubtitle(agreement: NonNullable): string { - return `${TIER_LABELS[agreement.tier]} · ${paidSeatsLabel(agreement.paidSeatCount)}`; + const tierPrice = formatUsd(TIER_PRICES[agreement.tier], i18n.language, { + minimumFractionDigits: 0, + maximumFractionDigits: 0, + }); + return `${tierPrice} · ${paidSeatsLabel(agreement.paidSeatCount)}`; } /** `paidThrough` arrives as a PostgreSQL timestamp; Hermes needs `parseTimestamp`. */ diff --git a/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx b/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx index b9ec8c267a..010f9e8a4c 100644 --- a/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx +++ b/apps/mobile/src/components/pr-review/diff/pr-diff-hunk-rows.tsx @@ -85,8 +85,8 @@ export function ExpandSeparatorRow({ {isUnknownEnd ? t('prReview.hunkRows.loadingContext') : t('prReview.hunkRows.loadingLines', { - loaded: Math.min(gapSize, DEFAULT_EXPAND_WINDOW), - total: gapSize, + loaded: formatNumber(Math.min(gapSize, DEFAULT_EXPAND_WINDOW), i18n.language), + total: formatNumber(gapSize, i18n.language), })} @@ -104,13 +104,15 @@ export function ExpandSeparatorRow({ expandText = isPartial ? t('prReview.hunkRows.expandMoreLines', { count: windowSize, - start: startLine, - end: windowEnd, + displayCount: formatNumber(windowSize, i18n.language), + start: formatNumber(startLine, i18n.language), + end: formatNumber(windowEnd, i18n.language), }) : t('prReview.hunkRows.expandLines', { count: windowSize, - start: startLine, - end: windowEnd, + displayCount: formatNumber(windowSize, i18n.language), + start: formatNumber(startLine, i18n.language), + end: formatNumber(windowEnd, i18n.language), }); } @@ -125,7 +127,10 @@ export function ExpandSeparatorRow({ accessibilityLabel={ isUnknownEnd ? t('prReview.hunkRows.expandContext') - : t('prReview.hunkRows.expandLinesOfContext', { count: DEFAULT_EXPAND_WINDOW }) + : t('prReview.hunkRows.expandLinesOfContext', { + count: DEFAULT_EXPAND_WINDOW, + displayCount: formatNumber(DEFAULT_EXPAND_WINDOW, i18n.language), + }) } > @@ -141,7 +146,10 @@ export function ExpandSeparatorRow({ }} className="ml-3 flex-row items-center gap-1 active:opacity-70" accessibilityRole="button" - accessibilityLabel={t('prReview.hunkRows.expandAllLines', { count: gapSize })} + accessibilityLabel={t('prReview.hunkRows.expandAllLines', { + count: gapSize, + displayCount: formatNumber(gapSize, i18n.language), + })} > {/* eslint-disable-next-line react-native/no-inline-styles, react-native/no-color-literals -- dynamic theme info color */} diff --git a/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx b/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx index 05e766a001..8e0e7b4823 100644 --- a/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx +++ b/apps/mobile/src/components/pr-review/discussion/reactions-row.tsx @@ -19,7 +19,9 @@ import { Pressable, View } from 'react-native'; import { ReactionPickerSheet } from '@/components/pr-review/discussion/reaction-picker-sheet'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; import { moveA11yFocus } from '@/lib/a11y/announce'; +import { formatNumber } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { REACTION_EMOJI, selectReactionPills } from '@/lib/pr-review/discussion/reaction-pills'; import { type ReviewReactionContent } from '@/lib/pr-review/discussion/review-discussion-types'; @@ -174,6 +176,7 @@ function ReactionPill({ accessibilityLabel={t('prReview.discussion.reactionPill', { emoji, count, + displayCount: formatNumber(count, i18n.language), countLabel: t('prReview.discussion.reaction', { count }), })} accessibilityState={{ selected: viewerHasReacted, disabled }} @@ -193,7 +196,7 @@ function ReactionPill({ viewerHasReacted ? 'text-accent-soft-foreground' : 'text-muted-foreground' )} > - {count} + {formatNumber(count, i18n.language)} ); diff --git a/apps/mobile/src/components/pr-review/discussion/thread-diff-snippet.tsx b/apps/mobile/src/components/pr-review/discussion/thread-diff-snippet.tsx index ef2e072881..88776bccb3 100644 --- a/apps/mobile/src/components/pr-review/discussion/thread-diff-snippet.tsx +++ b/apps/mobile/src/components/pr-review/discussion/thread-diff-snippet.tsx @@ -7,6 +7,8 @@ import { View } from 'react-native'; import { DiffLine } from '@/components/pr-review/diff/diff-line'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { type ThreadDiffSnippet as ThreadDiffSnippetData } from '@/lib/pr-review/discussion/thread-diff-snippet'; type ThreadDiffSnippetProps = { @@ -24,7 +26,10 @@ export function ThreadDiffSnippet({ snippet }: Readonly) {truncatedCount > 0 ? ( - {t('prReview.discussion.moreLinesAbove', { count: truncatedCount })} + {t('prReview.discussion.moreLinesAbove', { + count: truncatedCount, + displayCount: formatNumber(truncatedCount, i18n.language), + })} ) : null} diff --git a/apps/mobile/src/components/pr-review/pr-review-checks-section.tsx b/apps/mobile/src/components/pr-review/pr-review-checks-section.tsx index 7232d7bdc9..8c2f9e3807 100644 --- a/apps/mobile/src/components/pr-review/pr-review-checks-section.tsx +++ b/apps/mobile/src/components/pr-review/pr-review-checks-section.tsx @@ -16,6 +16,7 @@ import { PrReviewReconnectNotice } from '@/components/pr-review/pr-review-reconn import { Button } from '@/components/ui/button'; import { Text } from '@/components/ui/text'; import { i18n } from '@/i18n'; +import { formatList, formatNumber } from '@/lib/format'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { classifyPrReviewQueryState } from '@/lib/pr-review/classify-pr-review-query-state'; import { useTRPC } from '@/lib/trpc'; @@ -136,6 +137,13 @@ function CheckRow({ run }: Readonly<{ run: CheckRun }>) { ); } +function rollupCountOptions(count: number) { + return { + count, + displayCount: formatNumber(count, i18n.language), + }; +} + function buildRollupLine(rollup: { total: number; success: number; @@ -148,20 +156,20 @@ function buildRollupLine(rollup: { } const parts: string[] = []; if (rollup.success > 0) { - parts.push(i18n.t('prReview.checks.passed', { count: rollup.success })); + parts.push(i18n.t('prReview.checks.passed', rollupCountOptions(rollup.success))); } if (rollup.failure > 0) { - parts.push(i18n.t('prReview.checks.failed', { count: rollup.failure })); + parts.push(i18n.t('prReview.checks.failed', rollupCountOptions(rollup.failure))); } if (rollup.pending > 0) { - parts.push(i18n.t('prReview.checks.pending', { count: rollup.pending })); + parts.push(i18n.t('prReview.checks.pending', rollupCountOptions(rollup.pending))); } if (rollup.skipped > 0) { - parts.push(i18n.t('prReview.checks.skipped', { count: rollup.skipped })); + parts.push(i18n.t('prReview.checks.skipped', rollupCountOptions(rollup.skipped))); } return parts.length > 0 - ? parts.join(' · ') - : i18n.t('prReview.checks.checksCount', { count: rollup.total }); + ? formatList(parts, i18n.language) + : i18n.t('prReview.checks.checksCount', rollupCountOptions(rollup.total)); } export function PrReviewChecksSection({ diff --git a/apps/mobile/src/components/pr-review/pr-review-submit-view.ts b/apps/mobile/src/components/pr-review/pr-review-submit-view.ts index 0fd202181d..66123c71d3 100644 --- a/apps/mobile/src/components/pr-review/pr-review-submit-view.ts +++ b/apps/mobile/src/components/pr-review/pr-review-submit-view.ts @@ -5,12 +5,15 @@ */ import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; export function selectSubmitCtaLabel(args: { freshCount: number; totalCount: number }): string { if (args.totalCount > args.freshCount) { return i18n.t('prReview.submit.submitCountOfTotal', { freshCount: args.freshCount, totalCount: args.totalCount, + displayFreshCount: formatNumber(args.freshCount, i18n.language), + displayTotalCount: formatNumber(args.totalCount, i18n.language), }); } return i18n.t('prReview.submit.submitReview'); @@ -26,5 +29,7 @@ export function selectPartialSubmitMessage(args: { return i18n.t('prReview.submit.partialPostedMessage', { freshCount: args.freshCount, staleCount: args.staleCount, + displayFreshCount: formatNumber(args.freshCount, i18n.language), + displayStaleCount: formatNumber(args.staleCount, i18n.language), }); } diff --git a/apps/mobile/src/components/security-agent/audit-report-screen.mounted.test.tsx b/apps/mobile/src/components/security-agent/audit-report-screen.mounted.test.tsx index b9d0c2a1e2..c6efa34bb0 100644 --- a/apps/mobile/src/components/security-agent/audit-report-screen.mounted.test.tsx +++ b/apps/mobile/src/components/security-agent/audit-report-screen.mounted.test.tsx @@ -42,6 +42,7 @@ vi.mock('@kilocode/app-shared/security-agent', () => ({ })); vi.mock('@/lib/format', () => ({ formatDate: String, + formatNumber: String, })); vi.mock('@/lib/utils', () => ({ capitalize: (value: string) => value.charAt(0).toUpperCase() + value.slice(1), diff --git a/apps/mobile/src/components/security-agent/audit-report-screen.tsx b/apps/mobile/src/components/security-agent/audit-report-screen.tsx index bdd615b227..d2be20210b 100644 --- a/apps/mobile/src/components/security-agent/audit-report-screen.tsx +++ b/apps/mobile/src/components/security-agent/audit-report-screen.tsx @@ -13,7 +13,7 @@ import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { TabScreenScrollView } from '@/components/tab-screen'; import { i18n } from '@/i18n'; -import { formatDate } from '@/lib/format'; +import { formatDate, formatNumber } from '@/lib/format'; import { useTRPC } from '@/lib/trpc'; import { capitalize, parseTimestamp } from '@/lib/utils'; @@ -75,7 +75,9 @@ function ReportHeader({ report }: Readonly<{ report: SecurityAgentAuditReport }> function SummaryCount({ label, value }: Readonly<{ label: string; value: number }>) { return ( - {value} + + {formatNumber(value, i18n.language)} + {label} diff --git a/apps/mobile/src/components/security-agent/dashboard-screen.tsx b/apps/mobile/src/components/security-agent/dashboard-screen.tsx index 479472707a..b97fbb88f1 100644 --- a/apps/mobile/src/components/security-agent/dashboard-screen.tsx +++ b/apps/mobile/src/components/security-agent/dashboard-screen.tsx @@ -2,6 +2,7 @@ import { buildSecurityDashboardMetrics, type DashboardMetricTone, + getAnalysisIncompleteCount, getSecurityRepositoriesInScope, } from '@kilocode/app-shared/security-agent'; import { useActionSheet } from '@expo/react-native-action-sheet'; @@ -21,6 +22,8 @@ import { Skeleton } from '@/components/ui/skeleton'; import { SpinningIcon } from '@/components/ui/spinning-icon'; import { Text } from '@/components/ui/text'; import { TabScreenScrollView } from '@/components/tab-screen'; +import { i18n } from '@/i18n'; +import { formatNumber, formatPercent } from '@/lib/format'; import { useSecurityAgentCapability, useSecurityAgentConfig, @@ -47,6 +50,100 @@ const METRIC_TONE_CLASS = { neutral: 'text-muted-foreground', } satisfies Record; +type DashboardStats = NonNullable['data']>; + +function buildLocalizedMetrics(data: DashboardStats, slaEnabled: boolean) { + const metrics = buildSecurityDashboardMetrics(data, slaEnabled); + const number = (value: number) => formatNumber(value, i18n.language); + + return metrics.map(metric => { + switch (metric.id) { + case 'openFindings': { + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.openFindings'), + value: number(data.analysis.total), + detail: i18n.t('securityAgent.dashboardMetrics.openFindingsDetail', { + critical: number(data.severity.critical), + high: number(data.severity.high), + }), + }); + } + case 'exploitable': { + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.confirmedExploitable'), + value: number(data.analysis.exploitable), + detail: i18n.t('securityAgent.dashboardMetrics.confirmedExploitableDetail'), + }); + } + case 'needsReview': { + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.needsReview'), + value: number(data.analysis.needsReview), + detail: i18n.t('securityAgent.dashboardMetrics.needsReviewDetail'), + }); + } + case 'analysisIncomplete': { + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.analysisIncomplete'), + value: number(getAnalysisIncompleteCount(data.analysis)), + detail: i18n.t('securityAgent.dashboardMetrics.analysisIncompleteDetail'), + }); + } + case 'slaCompliance': { + const measured = data.sla.overall.total > 0; + const compliance = measured + ? Math.round((data.sla.overall.withinSla / data.sla.overall.total) * 100) + : null; + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.slaCompliance'), + value: + compliance === null + ? i18n.t('securityAgent.dashboardMetrics.notMeasured') + : formatPercent(compliance, i18n.language), + detail: measured + ? i18n.t('securityAgent.dashboardMetrics.withinDeadlineDetail', { + within: number(data.sla.overall.withinSla), + total: number(data.sla.overall.total), + }) + : i18n.t('securityAgent.dashboardMetrics.noDeadlineData'), + }); + } + case 'deadlinePassed': { + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.deadlinePassed'), + value: number(data.sla.overall.overdue), + detail: i18n.t('securityAgent.dashboardMetrics.deadlinePassedDetail', { + critical: number(data.sla.bySeverity.critical.overdue), + high: number(data.sla.bySeverity.high.overdue), + }), + }); + } + case 'dueSoon': { + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.dueThisWeek'), + value: number(data.sla.dueSoon.total), + detail: i18n.t('securityAgent.dashboardMetrics.dueThisWeekDetail', { + exploitable: number(data.sla.dueSoon.exploitable), + }), + }); + } + case 'noDeadline': { + return Object.assign(metric, { + label: i18n.t('securityAgent.dashboardMetrics.noDeadline'), + value: number(data.sla.untrackedCount), + detail: + data.sla.untrackedCount > 0 + ? i18n.t('securityAgent.dashboardMetrics.reviewSlaAssignment') + : i18n.t('securityAgent.dashboardMetrics.allOpenFindingsTracked'), + }); + } + default: { + return metric; + } + } + }); +} + export function DashboardScreen({ scope }: Readonly<{ scope: string }>) { const router = useRouter(); const colors = useThemeColors(); @@ -83,7 +180,7 @@ export function DashboardScreen({ scope }: Readonly<{ scope: string }>) { const slaEnabled = config.data?.slaEnabled ?? true; const data = dashboardStats.data; - const metrics = data ? buildSecurityDashboardMetrics(data, slaEnabled) : []; + const metrics = data ? buildLocalizedMetrics(data, slaEnabled) : []; const lastSyncTime = lastSync.data?.lastSyncTime; let lastSyncLabel = t('securityAgent.dashboard.notYetSynced'); diff --git a/apps/mobile/src/components/security-agent/dashboard-sections.tsx b/apps/mobile/src/components/security-agent/dashboard-sections.tsx index 1d70f28d97..1cb7e2433e 100644 --- a/apps/mobile/src/components/security-agent/dashboard-sections.tsx +++ b/apps/mobile/src/components/security-agent/dashboard-sections.tsx @@ -36,7 +36,10 @@ function repoTrailingLabel( slaEnabled: boolean ): string { if (!slaEnabled) { - return i18n.t('securityAgent.dashboard.findingsCount', { count: repo.needsAction }); + return i18n.t('securityAgent.dashboard.findingsCount', { + count: repo.needsAction, + displayCount: formatNumber(repo.needsAction, i18n.language), + }); } return repo.slaComplianceMeasured ? formatPercent(repo.slaCompliancePercent, i18n.language) @@ -95,6 +98,7 @@ function PriorityFindingSection({ scope, data, slaEnabled }: SectionProps) { } const isOverdue = slaEnabled && finding.daysOverdue !== null; + const daysOverdue = finding.daysOverdue ?? 0; return ( @@ -111,9 +115,12 @@ function PriorityFindingSection({ scope, data, slaEnabled }: SectionProps) { {finding.repoFullName} {isOverdue && ` · ${ - finding.daysOverdue === 0 + daysOverdue === 0 ? t('securityAgent.dashboard.deadlineToday') - : t('securityAgent.dashboard.daysOverdue', { count: finding.daysOverdue }) + : t('securityAgent.dashboard.daysOverdue', { + count: daysOverdue, + displayCount: formatNumber(daysOverdue, i18n.language), + }) }`} @@ -300,9 +307,9 @@ function RepoHealthSection({ scope, data, slaEnabled }: SectionProps) { {t('securityAgent.dashboard.repoSummary', { - open: repo.open, - critical: repo.critical, - high: repo.high, + open: formatNumber(repo.open, i18n.language), + critical: formatNumber(repo.critical, i18n.language), + high: formatNumber(repo.high, i18n.language), })} diff --git a/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx b/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx index 30a2e34dc3..a6cb32671d 100644 --- a/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx @@ -1,3 +1,4 @@ +/* eslint-disable max-lines -- this panel renders one analysis response. */ import { getSecurityAnalysisDetailPresentation, getSecurityFindingAnalysisState, @@ -21,6 +22,7 @@ import { Button } from '@/components/ui/button'; import { KvRow } from '@/components/ui/kv-row'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; +import { formatNumber } from '@/lib/format'; import { useSecurityAnalysisCapacity } from '@/lib/hooks/use-security-agent'; import { useStartSecurityAnalysis } from '@/lib/hooks/use-security-findings'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; @@ -36,9 +38,7 @@ type FindingAnalysisPanelProps = { onRetry: () => void; }; -// Ported from FindingDetailDialog.tsx:985 (getAnalysisPresentation) — triage -// and sandbox evidence rendered as plain facts plus the raw technical -// report, rather than the web's hero/summary/action/steps narrative. +// Ported from FindingDetailDialog.tsx:985; this panel keeps the raw technical report. export function FindingAnalysisPanel({ scope, findingId, @@ -49,7 +49,7 @@ export function FindingAnalysisPanel({ }: Readonly) { const router = useRouter(); const colors = useThemeColors(); - const { t } = useTranslation(); + const { i18n, t } = useTranslation(); const capacity = useSecurityAnalysisCapacity(scope); const startAnalysis = useStartSecurityAnalysis(scope); @@ -301,7 +301,10 @@ export function FindingAnalysisPanel({ ) : null} {uniqueLocations.length > 0 ? ( {uniqueLocations.map(location => ( diff --git a/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx b/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx index 1272e6ad8d..2faea41c0a 100644 --- a/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx @@ -18,9 +18,11 @@ import { Button } from '@/components/ui/button'; import { KvRow } from '@/components/ui/kv-row'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; import { FEATURE_FLAG_PR_REVIEW, useFeatureFlag } from '@/lib/analytics/posthog'; import { resolveCodeReviewerOpenPrDestination } from '@/lib/code-reviewer-open-pr-destination'; import { openExternalUrl } from '@/lib/external-link'; +import { formatNumber } from '@/lib/format'; import { useCancelSecurityRemediation, useRetrySecurityRemediation, @@ -265,6 +267,7 @@ export function FindingRemediationPanel({ { @@ -295,6 +296,7 @@ export function SettingsOverviewScreen({ ? t('securityAgent.settingsOverview.off') : t('securityAgent.settingsOverview.notificationsCount', { count: notificationsEnabledCount, + displayCount: formatNumber(notificationsEnabledCount, i18n.language), }) } onPress={() => { diff --git a/apps/mobile/src/components/share/share-payload-preview.tsx b/apps/mobile/src/components/share/share-payload-preview.tsx index e10c8c8454..6134d23f36 100644 --- a/apps/mobile/src/components/share/share-payload-preview.tsx +++ b/apps/mobile/src/components/share/share-payload-preview.tsx @@ -6,7 +6,7 @@ import { Image } from '@/components/ui/image'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { i18n } from '@/i18n'; -import { formatFileSize } from '@/lib/format'; +import { formatFileSize, formatNumber } from '@/lib/format'; import { AGENT_ATTACHMENT_MAX_FILES } from '@/lib/agent-attachments/constants'; import { describeClassificationFailure } from '@/lib/agent-attachments/validate'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; @@ -125,7 +125,10 @@ export function SharePayloadPreview({ payload, validation }: Readonly - {t('share.onlyFirstFilesAttached', { count: AGENT_ATTACHMENT_MAX_FILES })} + {t('share.onlyFirstFilesAttached', { + count: AGENT_ATTACHMENT_MAX_FILES, + displayCount: formatNumber(AGENT_ATTACHMENT_MAX_FILES, i18n.language), + })} ) : null} diff --git a/apps/mobile/src/i18n/label-reference.test.ts b/apps/mobile/src/i18n/label-reference.test.ts index 9cb0cf968b..4f4656e234 100644 --- a/apps/mobile/src/i18n/label-reference.test.ts +++ b/apps/mobile/src/i18n/label-reference.test.ts @@ -52,11 +52,11 @@ describe('label references', () => { }); }); -describe('plural fallback', () => { - it('uses a translated singular and the generic Arabic fallback', async () => { +describe('plural forms', () => { + it('uses the translated Arabic singular and dual forms', async () => { await i18n.changeLanguage('ar'); expect(i18n.t('agents.sessionRow.cent', { count: 1 })).toBe(ar.agents.sessionRow.cent_one); - expect(i18n.t('agents.sessionRow.cent', { count: 2 })).toBe(ar.agents.sessionRow.cent); + expect(i18n.t('agents.sessionRow.cent', { count: 2 })).toBe(ar.agents.sessionRow.cent_two); }); }); diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index cede5d8e44..bcd98b7c07 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -206,11 +206,11 @@ "loadingLines": "Laai {{loaded}} van {{total}} lyne…", "expandContext": "Vou konteks uit", "expandMoreContext": "Vou meer konteks uit", - "expandLines": "Vou {{count}} lyne uit ({{start}}–{{end}})", - "expandMoreLines": "Vou nog {{count}} lyne uit ({{start}}–{{end}})", - "expandLinesOfContext": "Vou {{count}} lyne konteks uit", + "expandLines": "Vou {{displayCount}} lyne uit ({{start}}–{{end}})", + "expandMoreLines": "Vou nog {{displayCount}} lyne uit ({{start}}–{{end}})", + "expandLinesOfContext": "Vou {{displayCount}} lyne konteks uit", "expandAll": "Vou alles uit", - "expandAllLines": "Vou al {{count}} lyne uit", + "expandAllLines": "Vou al {{displayCount}} lyne uit", "loadingMoreFiles": "Laai meer lêers…", "retryLoadingNextPage": "Probeer weer volgende bladsy laai", "failedToLoadMoreFiles": "Kon nie meer lêers laai nie — tik om weer te probeer", @@ -301,7 +301,7 @@ "closeReactions": "Maak reaksies toe", "reactionsTitle": "Reaksies", "addReaction": "Voeg reaksie by", - "reactionPill": "{{emoji}}-reaksie, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}}-reaksie, {{displayCount}} {{countLabel}}", "reaction_one": "reaksie", "reaction": "reaksies", "reaction_other": "reaksies", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Geen resensiedrade of gesprekskommentare op hierdie trekversoek nie.", "reviewFiles": "Resenseer lêers", "quotedDiffSnippet": "Aangehaalde diff-fragment", - "moreLinesAbove": "… {{count}} meer lyne hierbo", + "moreLinesAbove": "… {{displayCount}} meer lyne hierbo", "termsAcceptRequired": "Jy moet die Diensbepalings aanvaar om te plaas.", "termsOutdatedCopy": "Die Diensbepalings het verander. Maak hierdie skerm weer oop om die nuutste weergawe te aanvaar.", "termsCheckRetryCopy": "Kon nie die Diensbepalings kontroleer nie. Kontroleer jou verbinding en probeer weer." @@ -395,11 +395,11 @@ "retryChecks": "Probeer weer kontroles", "viewOnGitHub": "Bekyk PR op GitHub", "noChecksReported": "Geen kontroles gerapporteer nie", - "passed": "{{count}} geslaag", - "failed": "{{count}} misluk", - "pending": "{{count}} hangend", - "skipped": "{{count}} oorgeslaan", - "checksCount": "{{count}} kontroles", + "passed": "{{displayCount}} geslaag", + "failed": "{{displayCount}} misluk", + "pending": "{{displayCount}} hangend", + "skipped": "{{displayCount}} oorgeslaan", + "checksCount": "{{displayCount}} kontroles", "checkDetails": "kontrolebesonderhede", "pullRequest": "trekversoek" }, @@ -459,9 +459,9 @@ "pendingComment_one": "hangende kommentaar", "pendingComment": "hangende kommentare", "pendingComment_other": "hangende kommentare", - "submitCountOfTotal": "Dien {{freshCount}} van {{totalCount}} kommentare in", + "submitCountOfTotal": "Dien {{displayFreshCount}} van {{displayTotalCount}} kommentare in", "submitReview": "Dien resensie in", - "partialPostedMessage": "{{freshCount}} kommentaar(s) geplaas. {{staleCount}} kommentaar(s) verwys na 'n ouer commit en het in jou tou gebly." + "partialPostedMessage": "{{displayFreshCount}} kommentaar(s) geplaas. {{displayStaleCount}} kommentaar(s) verwys na 'n ouer commit en het in jou tou gebly." }, "reconnectNotice": { "title": "GitHub-verbinding verval", @@ -580,7 +580,8 @@ "agents": "Agente", "profile": "Profiel", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, oortjie, {{position}} van {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Onlangs", "common": "Algemeen", "reactWith": "Reageer met {{reaction}}", - "accessibility": "{{emoji}}-reaksie, {{count}}" + "accessibility": "{{emoji}}-reaksie, {{displayCount}}" }, "composer": { "replyingTo": "Antwoord op", @@ -650,7 +651,7 @@ "imageUnavailable": "Beeld onbeskikbaar", "openFailed": "Kon nie aanhegsel oopmaak nie. Kontroleer jou verbinding en probeer weer.", "attachFailed": "Kon nie lêer aanheg nie", - "limit": "Jy kan tot {{count}} lêers aanheg.", + "limit": "Jy kan tot {{displayCount}} lêers aanheg.", "sizeRejection": "{{filename}} oorskry die {{limit}}-aanhegselperk.", "unreadable": "Kon nie {{filename}} lees nie.", "pastedImage": "die geplakte beeld", @@ -740,11 +741,12 @@ "yourStandardMonthlyPrice": "jou Standard-maandelikse prys", "perMonth": "/maand", "earlybirdAccessUntil": "Vroeëvoël-toegang tot {{date}}", - "earlybirdEnding": "Vroeëvoël eindig: {{days}} dae oor", + "earlybirdEnding": "Vroeëvoël eindig: {{remaining}}", "paymentPastDue": "Betaling is agterstallig. Werk asseblief jou betaalmetode by.", "subscriptionCancels": "Intekening kanselleer {{date}}", - "trialDaysRemaining": "Proefperiode: {{days}} dae oor", - "trialEndingSoon": "Proefperiode eindig binnekort: {{days}}" + "trialDaysRemaining": "Proefperiode: {{remaining}} oor", + "trialEndingSoon": "Proefperiode eindig binnekort: {{remaining}}", + "lessThanOneDay": "Minder as 1 dag" }, "changelog": { "title": "Wat's Nuut", @@ -996,7 +998,7 @@ "stalledTitle": "Iets het vasgesteek", "stalledBody": "Ons kon nie klaarmaak met die opstel van {{name}}. Probeer weer, of e-pos hi@kilo.ai as dit aanhou gebeur.", "timeoutTitle": "Neem langer as verwag", - "timeoutBody": "Opstel vir {{name}} neem langer as gewoonlik (meer as {{minutes}} minute).", + "timeoutBody": "Opstel vir {{name}} neem langer as gewoonlik (meer as {{displayMinutes}} minute).", "continueInBackground": "Gaan voort in die agtergrond", "settingUp": "Besig om {{name}} op te stel", "finishingSetup": "Voltooi opstel", @@ -1287,7 +1289,7 @@ "mergeGate": "Samesmeltingspoort", "repositories": "Bewaarplekke", "allRepositories": "Alle bewaarplekke", - "nSelected": "{{count}} geselekteer", + "nSelected": "{{displayCount}} geselekteer", "reviewMemory": "Hersieningsgeheue", "proposedReviewMdGuidance": "Voorgestelde REVIEW.md-riglyne" }, @@ -1391,14 +1393,14 @@ "analyzed": "Ontleed", "exploitabilityReasoning": "Uitbuitbaarheidsredenering", "suggestedFix": "Voorgestelde regstelling", - "whereFound": "Waar dit gevind is ({{count}})", + "whereFound": "Waar dit gevind is ({{displayCount}})", "fullReport": "Volledige gegenereerde verslag", "unknown": "Onbekend", "yes": "Ja", "no": "Nee" }, "dashboard": { - "findingsCount": "{{count}} bevindings", + "findingsCount": "{{displayCount}} bevindings", "notMeasured": "Nie gemeet nie", "actFirst": "Tree eers op", "slaPosture": "SLA-houding", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Bewaarplekaksieplan", "noOpenFindings": "Geen oop bevindings benodig aandag nie", "deadlineToday": "Sperdatum vandag bereik", - "daysOverdue": "{{count}} dae agterstallig", + "daysOverdue": "{{displayCount}} dae agterstallig", "withinDeadline": "Binne sperdatum", "criticalOverdue": "Kritiek agterstallig", "highOverdue": "Hoog agterstallig", @@ -1435,6 +1437,27 @@ "syncQueued": "Sinkronisasie in tou", "syncStatusUnavailable": "Sinkronisasiestatus onbeskikbaar" }, + "dashboardMetrics": { + "openFindings": "Oop bevindings", + "openFindingsDetail": "{{critical}} kritiek, {{high}} hoog", + "confirmedExploitable": "Bevestig uitbuitbaar", + "confirmedExploitableDetail": "Projekrisiko deur ontleding bevestig", + "needsReview": "Benodig jou hersiening", + "needsReviewDetail": "Menslike besluit vereis", + "analysisIncomplete": "Ontleding nie volledig nie", + "analysisIncompleteDetail": "Projekrisiko nog onbekend", + "slaCompliance": "SLA-nakoming", + "notMeasured": "Nie gemeet nie", + "withinDeadlineDetail": "{{within}} van {{total}} binne sperdatum", + "noDeadlineData": "Geen bevindings het nog 'n SLA-sperdatum nie", + "deadlinePassed": "Sperdatum verby", + "deadlinePassedDetail": "{{critical}} kritiek, {{high}} hoog", + "dueThisWeek": "Hierdie week verskuldig", + "dueThisWeekDetail": "{{exploitable}} bevestig uitbuitbaar", + "noDeadline": "Geen sperdatum nie", + "reviewSlaAssignment": "Hersien SLA-toewysing", + "allOpenFindingsTracked": "Alle oop bevindings opgespoor" + }, "dismiss": { "title": "Maak bevinding van die hand", "submit": "Maak bevinding van die hand", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ontleding", "automation": "Outomatisering", "automationAllOff": "Almal af", - "automationCount": "{{count}} van 3 geaktiveer", + "automationCount": "{{displayCount}} van 3 geaktiveer", "notifications": "Kennisgewings", - "notificationsCount": "{{count}} van 2 geaktiveer", + "notificationsCount": "{{displayCount}} van 2 geaktiveer", "slaPolicy": "SLA-beleid", "disabledNoManage": "Security Agent is gedeaktiveer. Slegs organisasie-eienaars en faktuurbestuurders kan dit aanskakel.", "disabledNoRepo": "Kies ten minste een bewaarplek voordat jy Security Agent aktiveer.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Maak pull request oop{{number}}", "openDraftPullRequest": "Maak konsep-pull request oop{{number}}", "progress": "Vordering", - "attemptHistory": "Pogingsgeskiedenis ({{count}})", + "attemptHistory": "Pogingsgeskiedenis ({{displayCount}})", "attemptNumber": "Poging #{{number}}", "startedBy": "Begin deur", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "taak", "readTodos": "Lees todo's", "updateTodos": "Werk todo's by", - "linesBadge": "{{count}} reëls", - "filesBadge": "{{count}} lêers", - "matchesBadge": "{{count}} passings" + "linesBadge": "{{displayCount}} reëls", + "filesBadge": "{{displayCount}} lêers", + "matchesBadge": "{{displayCount}} passings" }, "readToolMarkdown": { "linesTruncated": "reëls {{start}}–{{end}} (afgekap)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Hierdie antwoord kan nie gerapporteer word nie.", "reportAiResponseSubmitted": "Verslag ingedien. Kwitansie {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Besonderhede onbeskikbaar", "textDisplay": "Teksvertoning", @@ -1999,7 +2026,7 @@ "preparationComplete": "Voorbereiding voltooi", "preparationFailed": "Voorbereiding misluk", "setupCommand": "Opstelopdrag {{index}}", - "setupCommandOf": "Opstelopdrag {{index}} van {{count}}" + "setupCommandOf": "Opstelopdrag {{index}} van {{displayCount}}" }, "permissionCard": { "title": "Toestemming vereis", @@ -2036,7 +2063,7 @@ "submissionFailed": "Voorlegging misluk. Probeer asseblief weer.", "questionAnnouncement": "Agent benodig jou insette. Die komponis is onderbreek terwyl jy antwoord.", "permissionAnnouncement": "Agent benodig toestemming om voort te gaan. Die komponis is onderbreek terwyl jy besluit.", - "positionHint": "(1 van {{count}})", + "positionHint": "(1 van {{displayCount}})", "movedPastPrompt": "Die agent het verby hierdie opdrag beweeg. Hierdie kaart sal sluit wanneer die sessie voortgaan.", "waitingForAnswer": "Die agent wag op jou antwoord. Terwyl hierdie vraag oop is, is jou boodskap aan die agent onderbreek.", "waitingForPermission": "Die agent wag op toestemming. Terwyl hierdie versoek oop is, is jou boodskap aan die agent onderbreek." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kameratoegang gedeaktiveer", "cameraAccessMessage": "Laat kameratoegang toe in Instellings om 'n foto te neem.", "couldNotOpenPhotoPicker": "Kon nie die fotokeuseerder oopmaak nie. Begin Kilo oor en probeer weer.", - "maxFilesAllowed": "Maksimum {{count}} lêers toegelaat", + "maxFilesAllowed": "Maksimum {{displayCount}} lêers toegelaat", "onlyAddingFiles": "Slegs {{accepted}} van {{total}} lêers word bygevoeg (maks {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "koste {{cost}}", "costSuffix": ", koste {{cost}}", "tokensWindowUnavailable": "Konteks {{used}} tekens, venster onbeskikbaar", - "tokensUsage": "Konteks {{used}} van {{window}} tekens, {{percentage}}% gebruik", + "tokensUsage": "Konteks {{used}} van {{window}} tekens, {{percentage}} gebruik", "title": "Konteksgebruik", "used": "Gebruik", "remaining": "Oorblywend", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Gebruik weerspieël die jongste voltooide assistent-antwoord.", "tokenUsage": "Tekengebruik", "cacheRate": "Kaskoers", - "modelsCount": "Modelle ({{count}})", + "modelsCount": "Modelle ({{displayCount}})", "tokenTotalsNote": "Tekentotale dek slegs hierdie sessie en sluit subagent/kindersessie-tekens uit.", "subagents": "Subagente", "subagentsDescription": "Residuale koste van kindersessies", @@ -2373,7 +2400,7 @@ "connectedCli": "Op 'n gekoppelde CLI", "newSessionOn": "Nuwe sessie op {{name}}", "noMatchingSessions": "Geen ooreenstemmende sessies nie.", - "onlyFirstFilesAttached": "Slegs die eerste {{count}} lêers sal aangeheg word.", + "onlyFirstFilesAttached": "Slegs die eerste {{displayCount}} lêers sal aangeheg word.", "staleMessage": "Hierdie deel is nie meer beskikbaar nie.", "retryableMessage": "Kon nie jou sessies laai nie.", "emptyMessage": "Nog geen sessies nie — begin 'n nuwe een om dit te stuur.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Die Kilo Pass op hierdie Apple-rekening behoort aan 'n ander Kilo-rekening. Teken in by daardie Kilo-rekening om dit te bestuur.", "alreadySubscribed": "Jy het reeds 'n Kilo Pass-intekening.", "purchaseUnavailable": "Kilo Pass-aankoop is tans nie beskikbaar nie.", - "tierCredits": "${{amount}} in krediete", + "tierCredits": "{{amount}} in krediete", "perMonth": "{{price}}/md", "verifyPurchaseFailed": "Kon nie jou aankoop verifieer nie. Kontroleer jou verbinding en probeer weer.", "productsCouldNotLoad": "Kilo Pass-produkte kon nie vanaf App Store gelaai word nie.", @@ -2417,7 +2444,7 @@ "manageFailed": "Kon nie App Store-intekeningsbestuur oopmaak nie.", "kiloPassSetup": "Kilo Pass-opstelling", "subscriptionHeaderDescription": "'n Maandelikse intekening wat krediete by jou Kilo-saldo voeg vir die bestuur van AI-koderingsessies in Kilo App — Cloud Agents, afstandssessies en KiloClaw-gesprekke.", - "tierDescription": "${{price}} betaalde krediete maandeliks bygevoeg vir Kilo App-gebruik.", + "tierDescription": "{{price}} betaalde krediete maandeliks bygevoeg vir Kilo App-gebruik.", "subscribe": "Teken in", "subscribeDescription": "Maandelikse krediete met bonusvordering", "manage": "Bestuur", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass hangend", "statusCanceling": "Kilo Pass kanselleer", "statusPastDue": "Kilo Pass agterstallig", - "monthlyCredits": "${{credits}} maandelikse krediete", + "monthlyCredits": "{{credits}} maandelikse krediete", "ends": "Eindig {{date}}", "periodEnd": "periode-einde", "managedOnGooglePlay": "Bestuur op Google Play", diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 5273f764ee..1e708d95b8 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -206,11 +206,11 @@ "loadingLines": "{{loaded}} ከ {{total}} መስመሮች በመጫን ላይ...", "expandContext": "አውድ አስፋ", "expandMoreContext": "ተጨማሪ አውድ አስፋ", - "expandLines": "{{count}} መስመሮችን አስፋ ({{start}}–{{end}})", - "expandMoreLines": "ተጨማሪ {{count}} መስመሮችን አስፋ ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} የአውድ መስመሮችን አስፋ", + "expandLines": "{{displayCount}} መስመሮችን አስፋ ({{start}}–{{end}})", + "expandMoreLines": "ተጨማሪ {{displayCount}} መስመሮችን አስፋ ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} የአውድ መስመሮችን አስፋ", "expandAll": "ሁሉንም አስፋ", - "expandAllLines": "ሁሉንም {{count}} መስመሮች አስፋ", + "expandAllLines": "ሁሉንም {{displayCount}} መስመሮች አስፋ", "loadingMoreFiles": "ተጨማሪ ፋይሎች በመጫን ላይ...", "retryLoadingNextPage": "የሚቀጥለውን ገጽ መጫን ደግሞ ሞክር", "failedToLoadMoreFiles": "ተጨማሪ ፋይሎችን መጫን አልተሳካም — ለመገመት ይንኩ", @@ -301,7 +301,7 @@ "closeReactions": "ምላሾችን ዝጋ", "reactionsTitle": "ምላሾች", "addReaction": "ምላሽ ጨምር", - "reactionPill": "{{emoji}} ምላሽ፣ {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ምላሽ፣ {{displayCount}} {{countLabel}}", "reaction_one": "ምላሽ", "reaction": "ምላሾች", "reaction_other": "ምላሾች", @@ -353,7 +353,7 @@ "noDiscussionDescription": "በዚህ የጎተራ ጥያቄ ላይ ምንም የግምገማ ክሮች ወይም የውይይት አስተያየቶች የሉም።", "reviewFiles": "ፋይሎችን ገምግም", "quotedDiffSnippet": "የተጠቀሰ የልዩነት ቁራጭ", - "moreLinesAbove": "... {{count}} ተጨማሪ መስመሮች ከላይ", + "moreLinesAbove": "... {{displayCount}} ተጨማሪ መስመሮች ከላይ", "termsAcceptRequired": "ለመለጠፍ የአገልግሎት ውሎችን መቀበል አለብዎት።", "termsOutdatedCopy": "የአገልግሎት ውሎች ተለውጠዋል። አዲሱን ስሪት ለመቀበል ይህን ስክሪን እንደገና ክፈት።", "termsCheckRetryCopy": "የአገልግሎት ውሎችን መፈተሽ አልተቻለም። ግንኙነትዎን ያረጋግጡ እና እንደገና ይሞክሩ።" @@ -395,11 +395,11 @@ "retryChecks": "ቼኮችን ደግሞ ሞክር", "viewOnGitHub": "PR በGitHub አይ", "noChecksReported": "ምንም ቼኮች አልተዘገቡም", - "passed": "{{count}} አልፈዋል", - "failed": "{{count}} አልተሳኩም", - "pending": "{{count}} በመጠባበቅ ላይ", - "skipped": "{{count}} ተዝለሉ", - "checksCount": "{{count}} ቼኮች", + "passed": "{{displayCount}} አልፈዋል", + "failed": "{{displayCount}} አልተሳኩም", + "pending": "{{displayCount}} በመጠባበቅ ላይ", + "skipped": "{{displayCount}} ተዝለሉ", + "checksCount": "{{displayCount}} ቼኮች", "checkDetails": "የቼክ ዝርዝሮች", "pullRequest": "የጎተራ ጥያቄ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "በመጠባበቅ ላይ ያለ አስተያየት", "pendingComment": "በመጠባበቅ ላይ ያሉ አስተያየቶች", "pendingComment_other": "በመጠባበቅ ላይ ያሉ አስተያየቶች", - "submitCountOfTotal": "{{freshCount}} ከ {{totalCount}} አስተያየቶች አስገባ", + "submitCountOfTotal": "{{displayFreshCount}} ከ {{displayTotalCount}} አስተያየቶች አስገባ", "submitReview": "ግምገማ አስገባ", - "partialPostedMessage": "{{freshCount}} አስተያየት(ዎች) ተለጥፈዋል። {{staleCount}} አስተያየት(ዎች) ወደ አሮጌ መግባት ይጠቁማሉ እና በወረፋዎ ውስጥ ቀሩ።" + "partialPostedMessage": "{{displayFreshCount}} አስተያየት(ዎች) ተለጥፈዋል። {{displayStaleCount}} አስተያየት(ዎች) ወደ አሮጌ መግባት ይጠቁማሉ እና በወረፋዎ ውስጥ ቀሩ።" }, "reconnectNotice": { "title": "የGitHub ግንኙነት ጊዜው አልፏል", @@ -580,7 +580,8 @@ "agents": "ወኪሎች", "profile": "መገለጫ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}፣ ትር፣ {{position}} ከ{{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ቅርብ ጊዜ", "common": "የተለመዱ", "reactWith": "በ{{reaction}} ምላሽ ስጥ", - "accessibility": "{{emoji}} ምላሽ፣ {{count}}" + "accessibility": "{{emoji}} ምላሽ፣ {{displayCount}}" }, "composer": { "replyingTo": "የሚመልስለት", @@ -650,7 +651,7 @@ "imageUnavailable": "ምስል የለም", "openFailed": "ዓባሪውን መክፈት አልተቻለም። ግንኙነትዎን ያረጋግጡ እና እንደገና ይሞክሩ።", "attachFailed": "ፋይል ማያያዝ አልተሳካም", - "limit": "እስከ {{count}} ፋይሎች ማያያዝ ይችላሉ።", + "limit": "እስከ {{displayCount}} ፋይሎች ማያያዝ ይችላሉ።", "sizeRejection": "{{filename}} የ{{limit}} ዓባሪ ገደብ ይበልጣል።", "unreadable": "{{filename}} ማንበብ አልተቻለም።", "pastedImage": "የተለጠፈው ምስል", @@ -740,11 +741,12 @@ "yourStandardMonthlyPrice": "የእርስዎ መደበኛ ወርሃዊ ዋጋ", "perMonth": "/ወር", "earlybirdAccessUntil": "የጥንታዊ ወፍ መዳረሻ እስከ {{date}}", - "earlybirdEnding": "የጥንታዊ ወፍ ማብቂያ፡ {{days}} ቀናት ቀርተዋል", + "earlybirdEnding": "የጥንታዊ ወፍ ማብቂያ፡ {{remaining}}", "paymentPastDue": "ክፍያ ጊዜው አልፏል። እባክዎ የመክፈያ ዘዴዎን ያዘምኑ።", "subscriptionCancels": "ምዝገባ {{date}} ይሰረዛል", - "trialDaysRemaining": "ሙከራ፡ {{days}} ቀናት ቀርተዋል", - "trialEndingSoon": "ሙከራ በቅርቡ ያበቃል፡ {{days}}" + "trialDaysRemaining": "ሙከራ፡ {{remaining}} ቀርተዋል", + "trialEndingSoon": "ሙከራ በቅርቡ ያበቃል፡ {{remaining}}", + "lessThanOneDay": "ከ1 ቀን በታች" }, "changelog": { "title": "ምን አዲስ", @@ -996,7 +998,7 @@ "stalledTitle": "አንድ ነገር ቆመ", "stalledBody": "{{name}}ን ማዋቀር አልቻልንም። እንደገና ይሞክሩ፣ ወይም ይህ እየተደጋገመ ከሆነ ወደ hi@kilo.ai ይጻፉ።", "timeoutTitle": "ከተጠበቀው በላይ ጊዜ እየወሰደ ነው", - "timeoutBody": "ለ{{name}} ማዋቀር ከወትሮው በላይ ጊዜ እየወሰደ ነው (ከ{{minutes}} ደቂቃዎች በላይ)።", + "timeoutBody": "ለ{{name}} ማዋቀር ከወትሮው በላይ ጊዜ እየወሰደ ነው (ከ{{displayMinutes}} ደቂቃዎች በላይ)።", "continueInBackground": "ከበስተጀርባ ቀጥል", "settingUp": "{{name}}ን በማዋቀር ላይ", "finishingSetup": "ማዋቀርን በማጠናቀቅ ላይ", @@ -1287,7 +1289,7 @@ "mergeGate": "የመዋሃድ መቆጣጠሪያ", "repositories": "መጋዘኖች", "allRepositories": "ሁሉም መጋዘኖች", - "nSelected": "{{count}} የተመረጡ", + "nSelected": "{{displayCount}} የተመረጡ", "reviewMemory": "የግምገማ ትውስታ", "proposedReviewMdGuidance": "የታቀደ የREVIEW.md መመሪያ" }, @@ -1391,14 +1393,14 @@ "analyzed": "ተተንትኗል", "exploitabilityReasoning": "የተጠቃሚነት አመክንዮ", "suggestedFix": "የተጠቆመ ጥገና", - "whereFound": "ይህ የተገኘበት ({{count}})", + "whereFound": "ይህ የተገኘበት ({{displayCount}})", "fullReport": "ሙሉ የተፈጠረ ሪፖርት", "unknown": "የማይታወቅ", "yes": "አዎ", "no": "የለም" }, "dashboard": { - "findingsCount": "{{count}} ግኝቶች", + "findingsCount": "{{displayCount}} ግኝቶች", "notMeasured": "አልተለካም", "actFirst": "መጀመሪያ እርምጃ ይውሰዱ", "slaPosture": "የSLA አቋም", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "የማከማቻ እርምጃ ዕቅድ", "noOpenFindings": "ምንም ክፍት ግኝቶች ትኩረት አይፈልጉም", "deadlineToday": "የጊዜ ገደቡ ዛሬ ደርሷል", - "daysOverdue": "{{count}} ቀናት ዘግይቷል", + "daysOverdue": "{{displayCount}} ቀናት ዘግይቷል", "withinDeadline": "በጊዜ ገደቡ ውስጥ", "criticalOverdue": "ወሳኝ ዘግይቷል", "highOverdue": "ከፍተኛ ዘግይቷል", @@ -1435,6 +1437,27 @@ "syncQueued": "ማመሳሰል ተሰልፏል", "syncStatusUnavailable": "የማመሳሰል ሁኔታ አይገኝም" }, + "dashboardMetrics": { + "openFindings": "ክፍት ግኝቶች", + "openFindingsDetail": "{{critical}} ወሳኝ፣ {{high}} ከፍተኛ", + "confirmedExploitable": "የተረጋገጠ ተጠቃሚነት", + "confirmedExploitableDetail": "የፕሮጀክት ስጋት በትንታኔ የተረጋገጠ", + "needsReview": "ግምገማህን ይፈልጋል", + "needsReviewDetail": "የሰው ውሳኔ ያስፈልጋል", + "analysisIncomplete": "ትንታኔው አልተጠናቀቀም", + "analysisIncompleteDetail": "የፕሮጀክት ስጋት አሁንም የማይታወቅ", + "slaCompliance": "የSLA መከበር", + "notMeasured": "አልተለካም", + "withinDeadlineDetail": "{{within}} ከ{{total}} በጊዜ ገደቡ ውስጥ", + "noDeadlineData": "እስካሁን ምንም ግኝት የSLA ጊዜ ገደብ የለውም", + "deadlinePassed": "የጊዜ ገደቡ አልፏል", + "deadlinePassedDetail": "{{critical}} ወሳኝ፣ {{high}} ከፍተኛ", + "dueThisWeek": "በዚህ ሳምንት የሚደርስ", + "dueThisWeekDetail": "{{exploitable}} የተረጋገጠ ተጠቃሚነት", + "noDeadline": "ምንም ጊዜ ገደብ የለም", + "reviewSlaAssignment": "የSLA መመደብን ይገምግሙ", + "allOpenFindingsTracked": "ሁሉም ክፍት ግኝቶች ይከታተላሉ" + }, "dismiss": { "title": "ግኝትን ያስወግዱ", "submit": "ግኝትን ያስወግዱ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ትንታኔ", "automation": "አውቶሜሽን", "automationAllOff": "ሁሉም ጠፍቷል", - "automationCount": "ከ{{count}} ውስጥ 3 ነቅተዋል", + "automationCount": "ከ{{displayCount}} ውስጥ 3 ነቅተዋል", "notifications": "ማሳወቂያዎች", - "notificationsCount": "ከ{{count}} ውስጥ 2 ነቅተዋል", + "notificationsCount": "ከ{{displayCount}} ውስጥ 2 ነቅተዋል", "slaPolicy": "SLA ፖሊሲ", "disabledNoManage": "የደህንነት ወኪል ተጠፍቷል። የድርጅት ባለቤቶች እና የክፍያ አስተዳዳሪዎች ብቻ ሊያበሩት ይችላሉ።", "disabledNoRepo": "የደህንነት ወኪሉን ከማንቃት በፊት ቢያንስ አንድ ማከማቻ ይምረጡ።", @@ -1524,7 +1547,7 @@ "openPullRequest": "የመጎተቻ ጥያቄን ይክፈቱ{{number}}", "openDraftPullRequest": "ረቂቅ የመጎተቻ ጥያቄን ይክፈቱ{{number}}", "progress": "ሂደት", - "attemptHistory": "የሙከራ ታሪክ ({{count}})", + "attemptHistory": "የሙከራ ታሪክ ({{displayCount}})", "attemptNumber": "ሙከራ #{{number}}", "startedBy": "የተጀመረው በ", "model": "ሞዴል", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "Todosን ያንብቡ", "updateTodos": "Todosን ያዘምኑ", - "linesBadge": "{{count}} መስመሮች", - "filesBadge": "{{count}} ፋይሎች", - "matchesBadge": "{{count}} ዝርዝሮች" + "linesBadge": "{{displayCount}} መስመሮች", + "filesBadge": "{{displayCount}} ፋይሎች", + "matchesBadge": "{{displayCount}} ዝርዝሮች" }, "readToolMarkdown": { "linesTruncated": "መስመሮች {{start}}–{{end}} (የተቆረጡ)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ይህ ምላሽ ሊዘገብ አይችልም።", "reportAiResponseSubmitted": "ማሳወቂያው ተልኳል። ደረሰኝ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "ዝርዝሮች አይገኙም", "textDisplay": "የጽሁፍ ማሳያ", @@ -1999,7 +2026,7 @@ "preparationComplete": "ዝግጅት ተጠናቋል", "preparationFailed": "ዝግጅት አልተሳካም", "setupCommand": "የማዋቀር ትዕዛዝ {{index}}", - "setupCommandOf": "የማዋቀር ትዕዛዝ {{index}} ከ{{count}}" + "setupCommandOf": "የማዋቀር ትዕዛዝ {{index}} ከ{{displayCount}}" }, "permissionCard": { "title": "ፍቃድ ያስፈልጋል", @@ -2036,7 +2063,7 @@ "submissionFailed": "ማስገባት አልተሳካም። እባክዎ እንደገና ይሞክሩ።", "questionAnnouncement": "ወኪሉ ግብዓትዎን ይፈልጋል። እስከሚመልሱት ድረስ አቀናባሪው ቆሟል።", "permissionAnnouncement": "ወኪሉ ለመቀጠል ፈቃድ ይፈልጋል። እስከሚወስኑት ድረስ አቀናባሪው ቆሟል።", - "positionHint": "(ከ{{count}} 1ኛ)", + "positionHint": "(ከ{{displayCount}} 1ኛ)", "movedPastPrompt": "ወኪሉ ይህን ጥያቄ አልፏል። ክፍለ-ጊዜው ሲቀጥል ይህ ካርድ ይዘጋል።", "waitingForAnswer": "ወኪሉ መልስዎን እየጠበቀ ነው። ይህ ጥያቄ ክፍት ሆኖ እስካለ ድረስ፣ ለወኪሉ የሚልኩት መልእክት ቆሟል።", "waitingForPermission": "ወኪሉ ፈቃድን እየጠበቀ ነው። ይህ ጥያቄ ክፍት ሆኖ እስካለ ድረስ፣ ለወኪሉ የሚልኩት መልእክት ቆሟል።" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "የካሜራ መዳረሻ ተሰናክሏል", "cameraAccessMessage": "ፎቶ ለማንሳት በቅንብሮች ውስጥ የካሜራ መዳረሻ ይፍቀዱ።", "couldNotOpenPhotoPicker": "የፎቶ መራጭ መክፈት አልተቻለም። Kiloን እንደገና ያስጀምሩና ይሞክሩ።", - "maxFilesAllowed": "ቢበዛ {{count}} ፋይሎች ይፈቀዳሉ", + "maxFilesAllowed": "ቢበዛ {{displayCount}} ፋይሎች ይፈቀዳሉ", "onlyAddingFiles": "ከ{{total}} ፋይሎች {{accepted}} ብቻ በመጨመር ላይ (ቢበዛ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ዋጋ {{cost}}", "costSuffix": "፣ ዋጋ {{cost}}", "tokensWindowUnavailable": "ዐውድ {{used}} ቶከኖች፣ መስኮት አይገኝም", - "tokensUsage": "ዐውድ {{used}} ከ{{window}} ቶከኖች፣ {{percentage}}% ጥቅም ላይ ውሏል", + "tokensUsage": "ዐውድ {{used}} ከ{{window}} ቶከኖች፣ {{percentage}} ጥቅም ላይ ውሏል", "title": "የዐውድ አጠቃቀም", "used": "ጥቅም ላይ የዋለ", "remaining": "የቀረ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "አጠቃቀሙ የመጨረሻውን የተጠናቀቀ የረዳት ምላሽ ያንጸባርቃል።", "tokenUsage": "የቶከን አጠቃቀም", "cacheRate": "የመሸጎጫ መጠን", - "modelsCount": "ሞዴሎች ({{count}})", + "modelsCount": "ሞዴሎች ({{displayCount}})", "tokenTotalsNote": "የቶከን ድምር ይህን ክፍለ-ጊዜ ብቻ ይሸፍናል እንጂ የንዑስ-ወኪል/የልጅ-ክፍለ-ጊዜ ቶከኖችን አያካትትም።", "subagents": "ንዑስ-ወኪሎች", "subagentsDescription": "ከልጅ ክፍለ-ጊዜዎች የቀረ ወጪ", @@ -2373,7 +2400,7 @@ "connectedCli": "በተገናኘ CLI ላይ", "newSessionOn": "በ{{name}} ላይ አዲስ ክፍለ-ጊዜ", "noMatchingSessions": "የሚዛመዱ ክፍለ-ጊዜዎች የሉም።", - "onlyFirstFilesAttached": "የመጀመሪያዎቹ {{count}} ፋይሎች ብቻ ይያያዛሉ።", + "onlyFirstFilesAttached": "የመጀመሪያዎቹ {{displayCount}} ፋይሎች ብቻ ይያያዛሉ።", "staleMessage": "ይህ ማጋሪያ ከአሁን በኋላ አይገኝም።", "retryableMessage": "ክፍለ-ጊዜዎችዎን መጫን አልተቻለም።", "emptyMessage": "እስካሁን ምንም ክፍለ-ጊዜ የለም — ይህን ለመላክ አዲስ ይጀምሩ።", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "በዚህ Apple Account ላይ ያለው Kilo Pass የሌላ የKilo መለያ ነው። ለማስተዳደር ወደዚያ የKilo መለያ ይግቡ።", "alreadySubscribed": "አስቀድመው የKilo Pass ምዝገባ አለዎት።", "purchaseUnavailable": "የKilo Pass ግዢ አሁን አይገኝም።", - "tierCredits": "${{amount}} በክሬዲት", + "tierCredits": "{{amount}} በክሬዲት", "perMonth": "{{price}}/ወር", "verifyPurchaseFailed": "ግዢዎን ማረጋገጥ አልተቻለም። ግንኙነትዎን ያረጋግጡና እንደገና ይሞክሩ።", "productsCouldNotLoad": "የKilo Pass ምርቶች ከApp Store መጫን አልተቻለም።", @@ -2417,7 +2444,7 @@ "manageFailed": "የApp Store ምዝገባ አስተዳደር መክፈት አልተሳካም።", "kiloPassSetup": "የKilo Pass ማዋቀር", "subscriptionHeaderDescription": "ወርሃዊ ምዝገባ በKilo App ውስጥ የAI ኮዲንግ ክፍለ-ጊዜዎችን ለማስኬድ ወደ Kilo ቀሪ ሂሳብዎ ክሬዲት የሚያክል — Cloud Agents፣ የርቀት ክፍለ-ጊዜዎች እና የKiloClaw ውይይቶች።", - "tierDescription": "ለKilo App አጠቃቀም በየወሩ የሚጨመሩ ${{price}} የተከፈለ ክሬዲቶች።", + "tierDescription": "ለKilo App አጠቃቀም በየወሩ የሚጨመሩ {{price}} የተከፈለ ክሬዲቶች።", "subscribe": "ይመዝገቡ", "subscribeDescription": "ከጉርሻ እድገት ጋር ወርሃዊ ክሬዲቶች", "manage": "ያስተዳድሩ", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass በመጠባበቅ ላይ", "statusCanceling": "Kilo Pass በመሰረዝ ላይ", "statusPastDue": "Kilo Pass ጊዜው የዘገየ", - "monthlyCredits": "${{credits}} ወርሃዊ ክሬዲቶች", + "monthlyCredits": "{{credits}} ወርሃዊ ክሬዲቶች", "ends": "የሚያበቃው {{date}}", "periodEnd": "የጊዜ መጨረሻ", "managedOnGooglePlay": "በGoogle Play ላይ የሚተዳደር", diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 3678e07201..77444af2fb 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -201,7 +201,8 @@ "agents": "الوكلاء", "profile": "الملف الشخصي", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}، تبويب، {{position}} من {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "الأخيرة", "common": "شائعة", "reactWith": "التفاعل بـ {{reaction}}", - "accessibility": "تفاعل {{emoji}}، {{count}}" + "accessibility": "تفاعل {{emoji}}، {{displayCount}}" }, "composer": { "replyingTo": "الرد على", @@ -271,7 +272,7 @@ "imageUnavailable": "الصورة غير متاحة", "openFailed": "تعذر فتح المرفق. تحقق من اتصالك وحاول مرة أخرى.", "attachFailed": "فشل إرفاق الملف", - "limit": "يمكنك إرفاق ما يصل إلى {{count}} ملفات.", + "limit": "يمكنك إرفاق ما يصل إلى {{displayCount}} ملفات.", "sizeRejection": "{{filename}} يتجاوز حد المرفقات البالغ {{limit}}.", "unreadable": "تعذر قراءة {{filename}}.", "pastedImage": "الصورة الملصقة", @@ -321,7 +322,11 @@ "someone": "شخص ما", "typing_one": "{{name}} يكتب...", "typing": "{{names}} يكتبون...", - "typing_other": "{{names}} يكتبون..." + "typing_other": "{{names}} يكتبون...", + "typing_zero": "لا أحد يكتب...", + "typing_two": "{{names}} يكتبان...", + "typing_few": "{{names}} يكتبون...", + "typing_many": "{{names}} يكتبون..." }, "botStatus": { "online": "متصل", @@ -361,11 +366,12 @@ "yourStandardMonthlyPrice": "سعر Standard الشهري الخاص بك", "perMonth": "/شهر", "earlybirdAccessUntil": "وصول Earlybird حتى {{date}}", - "earlybirdEnding": "ينتهي Earlybird: متبقٍ {{days}} يوم", + "earlybirdEnding": "ينتهي Earlybird: {{remaining}}", "paymentPastDue": "الدفع متأخر. يرجى تحديث طريقة الدفع الخاصة بك.", "subscriptionCancels": "يُلغى الاشتراك في {{date}}", - "trialDaysRemaining": "النسخة التجريبية: متبقٍ {{days}} يوم", - "trialEndingSoon": "تنتهي النسخة التجريبية قريبًا: {{days}}" + "trialDaysRemaining": "النسخة التجريبية: متبقٍ {{remaining}}", + "trialEndingSoon": "تنتهي النسخة التجريبية قريبًا: {{remaining}}", + "lessThanOneDay": "أقل من يوم واحد" }, "changelog": { "title": "ما الجديد", @@ -567,7 +573,11 @@ "openSettings": "فتح إعدادات {{name}}", "openUnread": "فتح {{name}}، {{displayCount}} رسائل غير مقروءة", "openUnread_other": "فتح {{name}}، {{displayCount}} رسائل غير مقروءة", - "openUnread_one": "فتح {{name}}، {{displayCount}} رسالة غير مقروءة" + "openUnread_one": "فتح {{name}}، {{displayCount}} رسالة غير مقروءة", + "openUnread_zero": "فتح {{name}}، لا توجد رسائل غير مقروءة", + "openUnread_two": "فتح {{name}}، {{displayCount}} رسالتان غير مقروءتين", + "openUnread_few": "فتح {{name}}، {{displayCount}} رسائل غير مقروءة", + "openUnread_many": "فتح {{name}}، {{displayCount}} رسالة غير مقروءة" }, "list": { "createInstance": "إنشاء مثيل", @@ -665,7 +675,7 @@ "startingSandbox": "جارٍ بدء بيئة الاختبار", "stoppedBody": "توقف مثيل {{name}} بشكل غير متوقع أثناء الإعداد.", "stoppedTitle": "توقف الإعداد", - "timeoutBody": "يستغرق إعداد {{name}} وقتًا أطول من المعتاد (أكثر من {{minutes}} دقيقة).", + "timeoutBody": "يستغرق إعداد {{name}} وقتًا أطول من المعتاد (أكثر من {{displayMinutes}} دقيقة).", "timeoutTitle": "يستغرق وقتًا أطول من المتوقع" }, "unavailableDescription": "يلزم اشتراك KiloClaw حالي لتجهيز مثيل. تستمر المثيلات والاشتراكات الحالية كالمعتاد.", @@ -912,7 +922,7 @@ "focusAreas": "مجالات التركيز", "mergeGate": "بوابة الدمج", "model": "النموذج", - "nSelected": "{{count}} محدد", + "nSelected": "{{displayCount}} محدد", "proposedReviewMdGuidance": "إرشادات REVIEW.md المقترحة", "repositories": "المستودعات", "reviewMemory": "ذاكرة المراجعة", @@ -981,7 +991,7 @@ "triageReasoning": "استدلال الفرز", "unknown": "غير معروف", "watchInCloudAgent": "المشاهدة في Cloud Agent", - "whereFound": "مكان العثور على هذا ({{count}})", + "whereFound": "مكان العثور على هذا ({{displayCount}})", "yes": "نعم" }, "analysisSettings": { @@ -1048,7 +1058,11 @@ "severityCriticalOnly": "حرجة فقط", "severityHighAndAbove": "عالية وأعلى", "severityMediumAndAbove": "متوسطة وأعلى", - "title": "الأتمتة" + "title": "الأتمتة", + "queued_zero": "لم يتم وضع أي نتيجة حالية في قائمة انتظار التحليل.", + "queued_two": "تم وضع {{displayCount}} نتيجتين حاليّتين في قائمة انتظار التحليل.", + "queued_few": "تم وضع {{displayCount}} نتائج حالية في قائمة انتظار التحليل.", + "queued_many": "تم وضع {{displayCount}} نتيجة حالية في قائمة انتظار التحليل." }, "commandRetry": { "discard": "تجاهل" @@ -1061,11 +1075,11 @@ "confirmedExploitable": "مؤكد قابل للاستغلال", "couldNotLoad": "تعذّر تحميل بيانات لوحة المعلومات", "criticalOverdue": "متأخر حرج", - "daysOverdue": "متأخر منذ {{count}} يوم", + "daysOverdue": "متأخر منذ {{displayCount}} يوم", "deadlineToday": "تم بلوغ الموعد النهائي اليوم", "filterByRepository": "التصفية حسب المستودع", "findings": "النتائج", - "findingsCount": "{{count}} نتيجة", + "findingsCount": "{{displayCount}} نتيجة", "highOverdue": "متأخر عالٍ", "lastSynced": "آخر مزامنة {{time}}", "manageRepositories": "إدارة المستودعات", @@ -1091,6 +1105,27 @@ "syncStatusUnavailable": "حالة المزامنة غير متاحة", "withinDeadline": "ضمن الموعد النهائي" }, + "dashboardMetrics": { + "openFindings": "نتائج مفتوحة", + "openFindingsDetail": "{{critical}} حرج، {{high}} عالٍ", + "confirmedExploitable": "مؤكد قابل للاستغلال", + "confirmedExploitableDetail": "تأكدت مخاطر المشروع عبر التحليل", + "needsReview": "يحتاج إلى مراجعتك", + "needsReviewDetail": "مطلوب قرار بشري", + "analysisIncomplete": "التحليل غير مكتمل", + "analysisIncompleteDetail": "مخاطر المشروع ما تزال غير معروفة", + "slaCompliance": "الالتزام بـ SLA", + "notMeasured": "غير مُقاس", + "withinDeadlineDetail": "{{within}} من أصل {{total}} ضمن الموعد النهائي", + "noDeadlineData": "لا توجد نتائج لها موعد نهائي لـ SLA بعد", + "deadlinePassed": "انتهى الموعد النهائي", + "deadlinePassedDetail": "{{critical}} حرج، {{high}} عالٍ", + "dueThisWeek": "مستحق هذا الأسبوع", + "dueThisWeekDetail": "{{exploitable}} مؤكد قابل للاستغلال", + "noDeadline": "لا يوجد موعد نهائي", + "reviewSlaAssignment": "مراجعة تعيين SLA", + "allOpenFindingsTracked": "جميع النتائج المفتوحة متتبعة" + }, "dismiss": { "alreadyResolvedDescription": "تمت معالجة هذه النتيجة بالفعل ولم تعد تقبل الرفض.", "cannotDismissDescription": "يمكن لمالكي المؤسسة ومديري الفوترة فقط رفض النتائج.", @@ -1188,7 +1223,7 @@ "title": "الإشعارات" }, "remediation": { - "attemptHistory": "سجل المحاولات ({{count}})", + "attemptHistory": "سجل المحاولات ({{displayCount}})", "attemptNumber": "المحاولة رقم {{number}}", "branch": "الفرع", "cancelMessage": "سيوقف وكيل الأمان محاولة المعالجة الجارية.", @@ -1256,7 +1291,7 @@ "analysisModeSubtitle": "تحليل {{mode}}", "automation": "الأتمتة", "automationAllOff": "الكل متوقف", - "automationCount": "تم تفعيل {{count}} من 3", + "automationCount": "تم تفعيل {{displayCount}} من 3", "couldNotLoadPermissions": "تعذّر تحميل الصلاحيات", "couldNotLoadRepositories": "تعذّر تحميل المستودعات", "couldNotLoadSettings": "تعذّر تحميل إعدادات وكيل الأمان", @@ -1267,7 +1302,7 @@ "enabled": "مفعّل", "modelsAndAnalysis": "النماذج والتحليل", "notifications": "الإشعارات", - "notificationsCount": "تم تفعيل {{count}} من 2", + "notificationsCount": "تم تفعيل {{displayCount}} من 2", "off": "إيقاف", "on": "تشغيل", "repositories": "المستودعات", @@ -1278,7 +1313,11 @@ "selectRepositories": "اختيار المستودعات", "selectRepositoriesSubtitle": "اختر المستودعات التي يراقبها وكيل الأمان", "slaPolicy": "سياسة SLA", - "title": "الإعدادات" + "title": "الإعدادات", + "repositoriesCount_zero": "لم يتم تحديد أي مستودع", + "repositoriesCount_two": "تم تحديد {{displayCount}} مستودعين", + "repositoriesCount_few": "تم تحديد {{displayCount}} مستودعات", + "repositoriesCount_many": "تم تحديد {{displayCount}} مستودعًا" }, "settingsSave": { "discard": "تجاهل", @@ -1355,7 +1394,15 @@ "cent_other": "سنتات", "dollar_one": "دولار", "dollar": "دولارات", - "dollar_other": "دولارات" + "dollar_other": "دولارات", + "cent_zero": "سنت", + "cent_two": "سنتان", + "cent_few": "سنتات", + "cent_many": "سنتًا", + "dollar_zero": "دولار", + "dollar_two": "دولاران", + "dollar_few": "دولارات", + "dollar_many": "دولارًا" }, "githubInstall": { "couldNotOpenMessage": "تعذّر بدء إعداد تطبيق GitHub. يرجى المحاولة مرة أخرى.", @@ -1451,7 +1498,11 @@ "partRenderer": { "updatedFileCount_one": "تم تحديث {{displayCount}} ملف", "updatedFileCount": "تم تحديث {{displayCount}} ملفات", - "updatedFileCount_other": "تم تحديث {{displayCount}} ملفات" + "updatedFileCount_other": "تم تحديث {{displayCount}} ملفات", + "updatedFileCount_zero": "لم يتم تحديث أي ملف", + "updatedFileCount_two": "تم تحديث {{displayCount}} ملفّين", + "updatedFileCount_few": "تم تحديث {{displayCount}} ملفات", + "updatedFileCount_many": "تم تحديث {{displayCount}} ملفًا" }, "toolPatch": { "operationAdded": "مضاف", @@ -1476,9 +1527,9 @@ "toolTask": "مهمة", "readTodos": "قراءة المهام", "updateTodos": "تحديث المهام", - "linesBadge": "{{count}} أسطر", - "filesBadge": "{{count}} ملفات", - "matchesBadge": "{{count}} تطابقات" + "linesBadge": "{{displayCount}} أسطر", + "filesBadge": "{{displayCount}} ملفات", + "matchesBadge": "{{displayCount}} تطابقات" }, "readToolMarkdown": { "linesTruncated": "الأسطر {{start}}–{{end}} (مقتطعة)", @@ -1562,6 +1613,10 @@ "reportAiResponseFailedTerminal": "لا يمكن الإبلاغ عن هذا الرد.", "reportAiResponseSubmitted": "تم إرسال البلاغ. الإيصال {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "التفاصيل غير متاحة", "textDisplay": "عرض النص", @@ -1620,7 +1675,7 @@ "preparationComplete": "اكتمل التحضير", "preparationFailed": "فشل التحضير", "setupCommand": "أمر الإعداد {{index}}", - "setupCommandOf": "أمر الإعداد {{index}} من {{count}}" + "setupCommandOf": "أمر الإعداد {{index}} من {{displayCount}}" }, "permissionCard": { "title": "الإذن مطلوب", @@ -1657,7 +1712,7 @@ "submissionFailed": "فشل الإرسال. يرجى المحاولة مرة أخرى.", "questionAnnouncement": "الوكيل بحاجة إلى إدخالك. المحرر متوقف مؤقتًا أثناء إجابتك.", "permissionAnnouncement": "الوكيل بحاجة إلى إذن للمتابعة. المحرر متوقف مؤقتًا أثناء اتخاذك القرار.", - "positionHint": "(1 من {{count}})", + "positionHint": "(1 من {{displayCount}})", "movedPastPrompt": "تجاوز الوكيل هذه المطالبة. ستُغلق هذه البطاقة عند استمرار الجلسة.", "waitingForAnswer": "الوكيل في انتظار إجابتك. أثناء فتح هذا السؤال، تتوقف رسالتك إلى الوكيل مؤقتًا.", "waitingForPermission": "الوكيل في انتظار الإذن. أثناء فتح هذا الطلب، تتوقف رسالتك إلى الوكيل مؤقتًا." @@ -1697,7 +1752,11 @@ "omitted_other": "تعذّر عرض {{displayCount}} من العناصر الأقدم من هذه الجلسة.", "couldNotLoad": "تعذّر تحميل الرسائل الأقدم.", "unavailable": "الرسائل الأقدم غير متاحة.", - "tooLarge": "الرسائل الأقدم أكبر من أن تُحمَّل." + "tooLarge": "الرسائل الأقدم أكبر من أن تُحمَّل.", + "omitted_zero": "تعذّر عرض أي عنصر أقدم من هذه الجلسة.", + "omitted_two": "تعذّر عرض عنصرين أقدمين من هذه الجلسة.", + "omitted_few": "تعذّر عرض {{displayCount}} من العناصر الأقدم من هذه الجلسة.", + "omitted_many": "تعذّر عرض {{displayCount}} عنصرًا أقدم من هذه الجلسة." }, "markdownTable": { "viewTable": "عرض الجدول", @@ -1709,7 +1768,15 @@ "rowCount_one": "صف", "rowCount": "صفوف", "rowCount_other": "صفوف", - "opensFullScreen": "يفتح بملء الشاشة" + "opensFullScreen": "يفتح بملء الشاشة", + "columnCount_zero": "عمود", + "columnCount_two": "عمودان", + "columnCount_few": "أعمدة", + "columnCount_many": "عمودًا", + "rowCount_zero": "صف", + "rowCount_two": "صفّان", + "rowCount_few": "صفوف", + "rowCount_many": "صفًّا" }, "sessionFilter": { "title": "تصفية الجلسات", @@ -1778,7 +1845,7 @@ "cameraAccessDisabled": "الوصول إلى الكاميرا معطّل", "cameraAccessMessage": "اسمح بالوصول إلى الكاميرا في الإعدادات لالتقاط صورة.", "couldNotOpenPhotoPicker": "تعذّر فتح منتقي الصور. أعد تشغيل Kilo وحاول مرة أخرى.", - "maxFilesAllowed": "الحد الأقصى {{count}} ملفات مسموح بها", + "maxFilesAllowed": "الحد الأقصى {{displayCount}} ملفات مسموح بها", "onlyAddingFiles": "ستتم إضافة {{accepted}} من {{total}} ملفات فقط (الحد الأقصى {{max}})" }, "composer": { @@ -1843,7 +1910,7 @@ "costPrefix": "التكلفة {{cost}}", "costSuffix": "، التكلفة {{cost}}", "tokensWindowUnavailable": "السياق {{used}} رمز، النافذة غير متاحة", - "tokensUsage": "السياق {{used}} من {{window}} رمز، تم استخدام {{percentage}}%", + "tokensUsage": "السياق {{used}} من {{window}} رمز، تم استخدام {{percentage}}", "title": "استخدام السياق", "used": "المستخدم", "remaining": "المتبقي", @@ -1852,7 +1919,7 @@ "usageReflectsLatest": "يعكس الاستخدام أحدث رد مكتمل من المساعد.", "tokenUsage": "استخدام الرموز", "cacheRate": "معدل ذاكرة التخزين المؤقت", - "modelsCount": "النماذج ({{count}})", + "modelsCount": "النماذج ({{displayCount}})", "tokenTotalsNote": "تغطي إجماليات الرموز هذه الجلسة فقط وتستثني رموز الوكلاء الفرعيين/الجلسات الفرعية.", "subagents": "وكلاء فرعيون", "subagentsDescription": "التكلفة المتبقية من الجلسات الفرعية", @@ -1864,7 +1931,11 @@ "stepsCount_one": "{{steps}} خطوة", "stepsCount": "{{steps}} خطوات", "stepsCount_other": "{{steps}} خطوات", - "modelAccessibilityLabel": "{{name}}، {{provider}}، {{steps}}، {{cost}}" + "modelAccessibilityLabel": "{{name}}، {{provider}}، {{steps}}، {{cost}}", + "stepsCount_zero": "{{steps}} خطوات", + "stepsCount_two": "{{steps}} خطوتان", + "stepsCount_few": "{{steps}} خطوات", + "stepsCount_many": "{{steps}} خطوة" }, "prBadge": { "open": "طلب سحب مفتوح", @@ -1994,7 +2065,7 @@ "connectedCli": "على CLI متصل", "newSessionOn": "جلسة جديدة على {{name}}", "noMatchingSessions": "لا توجد جلسات مطابقة.", - "onlyFirstFilesAttached": "سيتم إرفاق أول {{count}} ملف فقط.", + "onlyFirstFilesAttached": "سيتم إرفاق أول {{displayCount}} ملف فقط.", "staleMessage": "لم تعد هذه المشاركة متاحة.", "retryableMessage": "تعذّر تحميل جلساتك.", "emptyMessage": "لا توجد جلسات بعد — ابدأ جلسة جديدة لإرسال هذا.", @@ -2027,7 +2098,7 @@ "otherAccountCopy": "ينتمي Kilo Pass على حساب Apple هذا إلى حساب Kilo مختلف. سجّل الدخول إلى حساب Kilo ذلك لإدارته.", "alreadySubscribed": "لديك بالفعل اشتراك Kilo Pass.", "purchaseUnavailable": "شراء Kilo Pass غير متاح حاليًا.", - "tierCredits": "{{amount}} دولار من الأرصدة", + "tierCredits": "{{amount}} من الأرصدة", "perMonth": "{{price}}/شهر", "verifyPurchaseFailed": "تعذّر التحقق من شرائك. تحقق من اتصالك وحاول مرة أخرى.", "productsCouldNotLoad": "تعذّر تحميل منتجات Kilo Pass من App Store.", @@ -2038,7 +2109,7 @@ "manageFailed": "تعذّر فتح إدارة اشتراك App Store.", "kiloPassSetup": "إعداد Kilo Pass", "subscriptionHeaderDescription": "اشتراك شهري يضيف أرصدة إلى رصيدك في Kilo لتشغيل جلسات البرمجة بالذكاء الاصطناعي في تطبيق Kilo — وكلاء السحابة، والجلسات عن بُعد، ومحادثات KiloClaw.", - "tierDescription": "أرصدة مدفوعة بقيمة ${{price}} تُضاف شهريًا لاستخدام تطبيق Kilo.", + "tierDescription": "أرصدة مدفوعة بقيمة {{price}} تُضاف شهريًا لاستخدام تطبيق Kilo.", "subscribe": "اشترك", "subscribeDescription": "أرصدة شهرية مع تقدم إضافي", "manage": "إدارة", @@ -2046,7 +2117,7 @@ "statusPending": "Kilo Pass قيد الانتظار", "statusCanceling": "Kilo Pass قيد الإلغاء", "statusPastDue": "Kilo Pass متأخر السداد", - "monthlyCredits": "أرصدة شهرية بقيمة ${{credits}}", + "monthlyCredits": "أرصدة شهرية بقيمة {{credits}}", "ends": "ينتهي في {{date}}", "periodEnd": "نهاية الفترة", "managedOnGooglePlay": "تتم الإدارة عبر Google Play", @@ -2150,17 +2221,17 @@ "accessDeniedDescription": "ليست لديك صلاحية لعرض طلب السحب هذا.", "checkConnection": "التحقق من الاتصال", "checks": { - "checksCount": "{{count}} فحصًا", + "checksCount": "{{displayCount}} فحصًا", "couldNotLoad": "تعذّر تحميل الفحوصات.", - "failed": "{{count}} فاشلًا", + "failed": "{{displayCount}} فاشلًا", "noAccess": "ليست لديك صلاحية للوصول إلى فحوصات هذا المستودع.", "noChecksReported": "لم يتم الإبلاغ عن أي فحوصات", "notAvailable": "الفحوصات غير متاحة بعد. ربما لم تتم معالجة الالتزام الرئيسي، أو أن تطبيق Kilo GitHub غير مثبت على المستودع الرئيسي.", "openDetails": "فتح تفاصيل {{name}}", - "passed": "{{count}} ناجحًا", - "pending": "{{count}} معلّقًا", + "passed": "{{displayCount}} ناجحًا", + "pending": "{{displayCount}} معلّقًا", "retryChecks": "إعادة محاولة الفحوصات", - "skipped": "{{count}} متخطًى", + "skipped": "{{displayCount}} متخطًى", "title": "الفحوصات", "viewOnGitHub": "عرض طلب السحب على GitHub", "checkDetails": "تفاصيل الفحص", @@ -2238,7 +2309,7 @@ "terminal": "لا يمكن الإبلاغ عن هذا المستخدم." } }, - "moreLinesAbove": "… {{count}} أسطر إضافية أعلاه", + "moreLinesAbove": "… {{displayCount}} أسطر إضافية أعلاه", "mute": "كتم", "mutedUser": "تم كتم {{login}}", "noDiscussion": "لا توجد مناقشة بعد", @@ -2246,7 +2317,7 @@ "comment_one": "تعليق واحد", "outdated": "قديم", "quotedDiffSnippet": "مقتطف فرق مقتبس", - "reactionPill": "تفاعل {{emoji}}، {{count}} {{countLabel}}", + "reactionPill": "تفاعل {{emoji}}، {{displayCount}} {{countLabel}}", "reaction": "تفاعلات", "reaction_other": "تفاعلات", "reaction_one": "تفاعل", @@ -2276,7 +2347,15 @@ "viewTerms": "عرض الشروط", "termsAcceptRequired": "يجب أن تقبل شروط الخدمة للنشر.", "termsCheckRetryCopy": "تعذّر التحقق من شروط الخدمة. تحقق من اتصالك وحاول مرة أخرى.", - "termsOutdatedCopy": "تغيّرت شروط الخدمة. أعد فتح هذه الشاشة لقبول أحدث إصدار." + "termsOutdatedCopy": "تغيّرت شروط الخدمة. أعد فتح هذه الشاشة لقبول أحدث إصدار.", + "comment_zero": "لا تعليقات", + "comment_two": "{{displayCount}} تعليقان", + "comment_few": "{{displayCount}} تعليقات", + "comment_many": "{{displayCount}} تعليقًا", + "reaction_zero": "لا تفاعلات", + "reaction_two": "تفاعلان", + "reaction_few": "تفاعلات", + "reaction_many": "تفاعلًا" }, "entry": { "clearLink": "مسح رابط طلب السحب", @@ -2350,12 +2429,12 @@ "hunkRows": { "contextUnavailable": "السياق غير متاح عند هذا المرجع", "expandAll": "توسيع الكل", - "expandAllLines": "توسيع جميع الأسطر {{count}}", + "expandAllLines": "توسيع جميع الأسطر {{displayCount}}", "expandContext": "توسيع السياق", - "expandLines": "توسيع {{count}} أسطر ({{start}}–{{end}})", - "expandLinesOfContext": "توسيع {{count}} أسطر من السياق", + "expandLines": "توسيع {{displayCount}} أسطر ({{start}}–{{end}})", + "expandLinesOfContext": "توسيع {{displayCount}} أسطر من السياق", "expandMoreContext": "توسيع المزيد من السياق", - "expandMoreLines": "توسيع {{count}} أسطر إضافية ({{start}}–{{end}})", + "expandMoreLines": "توسيع {{displayCount}} أسطر إضافية ({{start}}–{{end}})", "failedToLoadContext": "فشل تحميل السياق — اضغط لإعادة المحاولة", "failedToLoadMoreFiles": "فشل تحميل المزيد من الملفات — اضغط لإعادة المحاولة", "fileLoadedCount_one": "تم تحميل {{displayCount}} ملف", @@ -2377,7 +2456,15 @@ "loadingLines": "جارٍ تحميل {{loaded}} من {{total}} سطرًا…", "loadingMoreFiles": "جارٍ تحميل المزيد من الملفات…", "retryLoadingContext": "إعادة محاولة تحميل السياق", - "retryLoadingNextPage": "إعادة محاولة تحميل الصفحة التالية" + "retryLoadingNextPage": "إعادة محاولة تحميل الصفحة التالية", + "fileLoadedCount_zero": "لم يتم تحميل أي ملف", + "fileLoadedCount_two": "تم تحميل {{displayCount}} ملفّين", + "fileLoadedCount_few": "تم تحميل {{displayCount}} ملفات", + "fileLoadedCount_many": "تم تحميل {{displayCount}} ملفًا", + "fileLoadedOfTotalCount_zero": "لم يتم تحميل أي ملف من {{total}}", + "fileLoadedOfTotalCount_two": "تم تحميل {{displayCount}} ملفّين من {{total}}", + "fileLoadedOfTotalCount_few": "تم تحميل {{displayCount}} ملفات من {{total}}", + "fileLoadedOfTotalCount_many": "تم تحميل {{displayCount}} ملفًا من {{total}}" }, "inbox": { "couldNotLoad": "تعذّر تحميل صندوق الوارد", @@ -2452,7 +2539,15 @@ "stateOpenApproved": "مفتوح · تمت الموافقة", "stateOpenChangesRequested": "مفتوح · تم طلب تغييرات", "stateOpenReviewRequired": "مفتوح · المراجعة مطلوبة", - "unknownAuthor": "مؤلف غير معروف" + "unknownAuthor": "مؤلف غير معروف", + "commit_zero": "لا إيداعات", + "commit_two": "إيداعان", + "commit_few": "إيداعات", + "commit_many": "إيداعًا", + "file_zero": "لا ملفات", + "file_two": "ملفّان", + "file_few": "ملفات", + "file_many": "ملفًا" }, "pendingComment": { "allQueuedHint": "ستُرسل جميع التعليقات في طلب مجمّع واحد.", @@ -2500,9 +2595,13 @@ "pendingComment_one": "تعليق معلّق", "summaryOptional": "الملخص (اختياري)", "title": "إرسال المراجعة", - "partialPostedMessage": "تم نشر {{freshCount}} تعليقًا. {{staleCount}} تعليقًا يشير إلى إيداع أقدم وبقي في قائمتك.", - "submitCountOfTotal": "إرسال {{freshCount}} من {{totalCount}} تعليقًا", - "submitReview": "إرسال المراجعة" + "partialPostedMessage": "تم نشر {{displayFreshCount}} تعليقًا. {{displayStaleCount}} تعليقًا يشير إلى إيداع أقدم وبقي في قائمتك.", + "submitCountOfTotal": "إرسال {{displayFreshCount}} من {{displayTotalCount}} تعليقًا", + "submitReview": "إرسال المراجعة", + "pendingComment_zero": "لا تعليقات معلّقة", + "pendingComment_two": "تعليقان معلّقان", + "pendingComment_few": "تعليقات معلّقة", + "pendingComment_many": "تعليقًا معلّقًا" }, "fileStatus": { "added": "مضاف", @@ -2654,7 +2753,11 @@ "processingNeedsReview": "المعالجة تحتاج إلى مراجعة", "retry": "إعادة المحاولة", "retryHint": "يعيد محاولة تحميل حالة Kilo Pass.", - "setupHint": "يفتح إعداد Kilo Pass على الويب." + "setupHint": "يفتح إعداد Kilo Pass على الويب.", + "paidSeat_zero": "لا مقاعد مدفوعة", + "paidSeat_two": "{{displayCount}} مقعدان مدفوعان", + "paidSeat_few": "{{displayCount}} مقاعد مدفوعة", + "paidSeat_many": "{{displayCount}} مقعدًا مدفوعًا" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index 6c280b2b7c..b66d8a11d3 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -206,11 +206,11 @@ "loadingLines": "{{loaded}} / {{total}} sətir yüklənir…", "expandContext": "Konteksti genişləndir", "expandMoreContext": "Daha çox kontekst genişləndir", - "expandLines": "{{count}} sətir genişləndir ({{start}}–{{end}})", - "expandMoreLines": "Daha {{count}} sətir genişləndir ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} sətir kontekst genişləndir", + "expandLines": "{{displayCount}} sətir genişləndir ({{start}}–{{end}})", + "expandMoreLines": "Daha {{displayCount}} sətir genişləndir ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} sətir kontekst genişləndir", "expandAll": "Hamısını genişləndir", - "expandAllLines": "Bütün {{count}} sətri genişləndir", + "expandAllLines": "Bütün {{displayCount}} sətri genişləndir", "loadingMoreFiles": "Daha çox fayl yüklənir…", "retryLoadingNextPage": "Növbəti səhifənin yüklənməsini yenidən cəhd edin", "failedToLoadMoreFiles": "Daha çox fayl yüklənə bilmədi — yenidən cəhd etmək üçün toxunun", @@ -301,7 +301,7 @@ "closeReactions": "Reaksiyaları bağla", "reactionsTitle": "Reaksiyalar", "addReaction": "Reaksiya əlavə et", - "reactionPill": "{{emoji}} reaksiyası, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaksiyası, {{displayCount}} {{countLabel}}", "reaction_one": "reaksiya", "reaction": "reaksiya", "reaction_other": "reaksiya", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Bu pull request-də icmal mövzusu və ya söhbət şərhi yoxdur.", "reviewFiles": "Faylları icmal et", "quotedDiffSnippet": "Sitat götürülmüş diff parçası", - "moreLinesAbove": "… yuxarıda {{count}} sətir daha", + "moreLinesAbove": "… yuxarıda {{displayCount}} sətir daha", "termsAcceptRequired": "Yazmaq üçün Xidmət Şərtlərini qəbul etməlisiniz.", "termsOutdatedCopy": "Xidmət Şərtləri dəyişdi. Ən son versiyanı qəbul etmək üçün bu ekranı yenidən açın.", "termsCheckRetryCopy": "Xidmət Şərtləri yoxlanıla bilmədi. Bağlantınızı yoxlayın və yenidən cəhd edin." @@ -395,11 +395,11 @@ "retryChecks": "Yoxlamaları yenidən cəhd edin", "viewOnGitHub": "PR'i GitHub'da bax", "noChecksReported": "Yoxlama bildirilməyib", - "passed": "{{count}} keçdi", - "failed": "{{count}} uğursuz", - "pending": "{{count}} gözləyir", - "skipped": "{{count}} keçildi", - "checksCount": "{{count}} yoxlama", + "passed": "{{displayCount}} keçdi", + "failed": "{{displayCount}} uğursuz", + "pending": "{{displayCount}} gözləyir", + "skipped": "{{displayCount}} keçildi", + "checksCount": "{{displayCount}} yoxlama", "checkDetails": "yoxlama təfərrüatları", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "gözləyən şərh", "pendingComment": "gözləyən şərhlər", "pendingComment_other": "gözləyən şərhlər", - "submitCountOfTotal": "{{totalCount}} şərhlərdən {{freshCount}} təqdim edin", + "submitCountOfTotal": "{{displayTotalCount}} şərhlərdən {{displayFreshCount}} təqdim edin", "submitReview": "İcmalı təqdim et", - "partialPostedMessage": "{{freshCount}} şərh yerləşdirildi. {{staleCount}} şərh köhnə commit-ə işarə edir və növbənizdə qaldı." + "partialPostedMessage": "{{displayFreshCount}} şərh yerləşdirildi. {{displayStaleCount}} şərh köhnə commit-ə işarə edir və növbənizdə qaldı." }, "reconnectNotice": { "title": "GitHub bağlantısı bitdi", @@ -580,7 +580,8 @@ "agents": "Agentlər", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, nişan, {{total}}-dən {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Son", "common": "Ümumi", "reactWith": "{{reaction}} ilə reaksiya ver", - "accessibility": "{{emoji}} reaksiyası, {{count}}" + "accessibility": "{{emoji}} reaksiyası, {{displayCount}}" }, "composer": { "replyingTo": "Cavab verilir", @@ -650,7 +651,7 @@ "imageUnavailable": "Şəkil əlçatan deyil", "openFailed": "Əlavə açıla bilmədi. Bağlantınızı yoxlayın və yenidən cəhd edin.", "attachFailed": "Fayl əlavə edilə bilmədi", - "limit": "Ən çox {{count}} fayl əlavə edə bilərsiniz.", + "limit": "Ən çox {{displayCount}} fayl əlavə edə bilərsiniz.", "sizeRejection": "{{filename}} {{limit}} əlavə limitini keçir.", "unreadable": "{{filename}} oxuna bilmədi.", "pastedImage": "yapışdırılmış şəkil", @@ -740,11 +741,12 @@ "yourStandardMonthlyPrice": "Standard aylıq qiymətiniz", "perMonth": "/ay", "earlybirdAccessUntil": "Earlybird girişi {{date}} tarixinə qədər", - "earlybirdEnding": "Earlybird bitir: {{days}} gün qalıb", + "earlybirdEnding": "Earlybird bitir: {{remaining}}", "paymentPastDue": "Ödəniş gecikib. Zəhmət olmasa ödəniş metodunuzu yeniləyin.", "subscriptionCancels": "Abunəlik {{date}} tarixində ləğv olunur", - "trialDaysRemaining": "Sınaq: {{days}} gün qalıb", - "trialEndingSoon": "Sınaq tezliklə bitir: {{days}}" + "trialDaysRemaining": "Sınaq: {{remaining}} qalıb", + "trialEndingSoon": "Sınaq tezliklə bitir: {{remaining}}", + "lessThanOneDay": "1 gündən az" }, "changelog": { "title": "Nə Yeni Var", @@ -996,7 +998,7 @@ "stalledTitle": "Bir şey ilişdi", "stalledBody": "{{name}} quraşdırmasını bitirə bilmədik. Yenidən cəhd edin və ya bu davam edərsə hi@kilo.ai ünvanına e-poçt göndərin.", "timeoutTitle": "Gözləniləndən çox çəkir", - "timeoutBody": "{{name}} üçün quraşdırma adi haldan çox çəkir ({{minutes}} dəqiqədən çox).", + "timeoutBody": "{{name}} üçün quraşdırma adi haldan çox çəkir ({{displayMinutes}} dəqiqədən çox).", "continueInBackground": "Fonda davam et", "settingUp": "{{name}} quraşdırılır", "finishingSetup": "Quraşdırma tamamlanır", @@ -1287,7 +1289,7 @@ "mergeGate": "Birləşdirmə qapısı", "repositories": "Repozitoriyalar", "allRepositories": "Bütün repozitoriyalar", - "nSelected": "{{count}} seçildi", + "nSelected": "{{displayCount}} seçildi", "reviewMemory": "Nəzərdən keçirmə yaddaşı", "proposedReviewMdGuidance": "Təklif olunan REVIEW.md rəhbərliyi" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analiz edilib", "exploitabilityReasoning": "İstismar oluna bilmə səbəbləndirməsi", "suggestedFix": "Təklif olunan düzəliş", - "whereFound": "Bunun tapıldığı yer ({{count}})", + "whereFound": "Bunun tapıldığı yer ({{displayCount}})", "fullReport": "Tam yaradılmış hesabat", "unknown": "Naməlum", "yes": "Bəli", "no": "Xeyr" }, "dashboard": { - "findingsCount": "{{count}} tapıntı", + "findingsCount": "{{displayCount}} tapıntı", "notMeasured": "Ölçülməyib", "actFirst": "Əvvəlcə hərəkət edin", "slaPosture": "SLA mövqeyi", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Repozitoriya fəaliyyət planı", "noOpenFindings": "Açıq tapıntı diqqət tələb etmir", "deadlineToday": "Müddət bu gün başa çatıb", - "daysOverdue": "{{count}} gün gecikib", + "daysOverdue": "{{displayCount}} gün gecikib", "withinDeadline": "Müddət daxilində", "criticalOverdue": "Kritik gecikmə", "highOverdue": "Yüksək gecikmə", @@ -1435,6 +1437,27 @@ "syncQueued": "Sinxronlaşdırma növbəyə alındı", "syncStatusUnavailable": "Sinxronlaşdırma statusu mövcud deyil" }, + "dashboardMetrics": { + "openFindings": "Açıq tapıntılar", + "openFindingsDetail": "{{critical}} kritik, {{high}} yüksək", + "confirmedExploitable": "Təsdiqlənmiş istismar oluna bilən", + "confirmedExploitableDetail": "Layihə riski analizlə təsdiqlənib", + "needsReview": "İcmalınız tələb olunur", + "needsReviewDetail": "İnsan qərarı tələb olunur", + "analysisIncomplete": "Analiz tamamlanmayıb", + "analysisIncompleteDetail": "Layihə riski hələ məlum deyil", + "slaCompliance": "SLA uyğunluğu", + "notMeasured": "Ölçülməyib", + "withinDeadlineDetail": "Müddət daxilində {{total}}-dan {{within}}", + "noDeadlineData": "Hələ heç bir tapıntının SLA müddəti yoxdur", + "deadlinePassed": "Müddət başa çatıb", + "deadlinePassedDetail": "{{critical}} kritik, {{high}} yüksək", + "dueThisWeek": "Bu həftə bitir", + "dueThisWeekDetail": "{{exploitable}} təsdiqlənmiş istismar oluna bilən", + "noDeadline": "Müddət yoxdur", + "reviewSlaAssignment": "SLA təyinatına baxın", + "allOpenFindingsTracked": "Bütün açıq tapıntılar izlənir" + }, "dismiss": { "title": "Tapıntını rədd et", "submit": "Tapıntını rədd et", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} analiz", "automation": "Avtomatlaşdırma", "automationAllOff": "Hamısı sönük", - "automationCount": "3-dən {{count}} aktiv", + "automationCount": "3-dən {{displayCount}} aktiv", "notifications": "Bildirişlər", - "notificationsCount": "2-dən {{count}} aktiv", + "notificationsCount": "2-dən {{displayCount}} aktiv", "slaPolicy": "SLA siyasəti", "disabledNoManage": "Security Agent deaktivdir. Yalnız təşkilat sahibləri və hesab menecerləri onu aktivləşdirə bilər.", "disabledNoRepo": "Security Agent-i aktivləşdirməzdən əvvəl ən azı bir repozitoriya seçin.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Pull request{{number}} açın", "openDraftPullRequest": "Qaralama pull request{{number}} açın", "progress": "Gedişat", - "attemptHistory": "Cəhd tarixçəsi ({{count}})", + "attemptHistory": "Cəhd tarixçəsi ({{displayCount}})", "attemptNumber": "Cəhd #{{number}}", "startedBy": "Tərəfindən başladılıb", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "tapşırıq", "readTodos": "Tapşırıqları oxu", "updateTodos": "Tapşırıqları yenilə", - "linesBadge": "{{count}} sətir", - "filesBadge": "{{count}} fayl", - "matchesBadge": "{{count}} uyğunluq" + "linesBadge": "{{displayCount}} sətir", + "filesBadge": "{{displayCount}} fayl", + "matchesBadge": "{{displayCount}} uyğunluq" }, "readToolMarkdown": { "linesTruncated": "sətirlər {{start}}–{{end}} (qısaldılıb)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Bu cavab bildirilə bilməz.", "reportAiResponseSubmitted": "Hesabat göndərildi. Qəbz {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detallar mövcud deyil", "textDisplay": "Mətn göstərilməsi", @@ -1999,7 +2026,7 @@ "preparationComplete": "Hazırlıq tamamlandı", "preparationFailed": "Hazırlıq uğursuz oldu", "setupCommand": "Quraşdırma əmri {{index}}", - "setupCommandOf": "{{count}}-dən {{index}} quraşdırma əmri" + "setupCommandOf": "{{displayCount}}-dən {{index}} quraşdırma əmri" }, "permissionCard": { "title": "İcazə tələb olunur", @@ -2036,7 +2063,7 @@ "submissionFailed": "Təqdimat uğursuz oldu. Zəhmət olmasa yenidən cəhd edin.", "questionAnnouncement": "Agent sizin girişinizə ehtiyac duyur. Siz cavab verərkən kompozitor dayandırılıb.", "permissionAnnouncement": "Agent davam etmək üçün icazəyə ehtiyac duyur. Siz qərar verərkən kompozitor dayandırılıb.", - "positionHint": "({{count}}-dən 1-i)", + "positionHint": "({{displayCount}}-dən 1-i)", "movedPastPrompt": "Agent bu sorğudan irəliləyib. Sessiya davam edərkən bu kart bağlanacaq.", "waitingForAnswer": "Agent sizin cavabınızı gözləyir. Bu sual açıq olduğu müddətdə agentə mesajınız dayandırılıb.", "waitingForPermission": "Agent icazə gözləyir. Bu sorğu açıq olduğu müddətdə agentə mesajınız dayandırılıb." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kamera Girişi Deaktiv Edilib", "cameraAccessMessage": "Şəkil çəkmək üçün Parametrlərdə kamera girişinə icazə verin.", "couldNotOpenPhotoPicker": "Foto seçici açıla bilmədi. Kilo-nu yenidən başladın və yenidən cəhd edin.", - "maxFilesAllowed": "Maksimum {{count}} fayla icazə verilir", + "maxFilesAllowed": "Maksimum {{displayCount}} fayla icazə verilir", "onlyAddingFiles": "{{total}} fayldan yalnız {{accepted}} əlavə edilir (maks {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "xərc {{cost}}", "costSuffix": ", xərc {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} token, pəncərə mövcud deyil", - "tokensUsage": "Kontekst {{used}} / {{window}} token, {{percentage}}% istifadə olunub", + "tokensUsage": "Kontekst {{used}} / {{window}} token, {{percentage}} istifadə olunub", "title": "Kontekst istifadəsi", "used": "İstifadə olunub", "remaining": "Qalan", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "İstifadə ən son tamamlanmış köməkçi cavabını əks etdirir.", "tokenUsage": "Token istifadəsi", "cacheRate": "Keş dərəcəsi", - "modelsCount": "Modellər ({{count}})", + "modelsCount": "Modellər ({{displayCount}})", "tokenTotalsNote": "Token cəmləri yalnız bu sessiyanı əhatə edir və subagent/uşaq sessiya tokenlərini istisna edir.", "subagents": "Subagentlər", "subagentsDescription": "Uşaq sessiyalarından qalan xərc", @@ -2373,7 +2400,7 @@ "connectedCli": "Bağlı CLI-də", "newSessionOn": "{{name}} üzərində yeni sessiya", "noMatchingSessions": "Uyğun sessiya yoxdur.", - "onlyFirstFilesAttached": "Yalnız ilk {{count}} fayl əlavə ediləcək.", + "onlyFirstFilesAttached": "Yalnız ilk {{displayCount}} fayl əlavə ediləcək.", "staleMessage": "Bu paylaşım artıq mövcud deyil.", "retryableMessage": "Sessiyalarınız yüklənə bilmədi.", "emptyMessage": "Hələ sessiya yoxdur — bunu göndərmək üçün yenisinə başlayın.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Bu Apple Hesabındakı Kilo Pass başqa Kilo hesabına aiddir. Onu idarə etmək üçün həmin Kilo hesabına daxil olun.", "alreadySubscribed": "Artıq Kilo Pass abunəliyiniz var.", "purchaseUnavailable": "Kilo Pass alışı hazırda mövcud deyil.", - "tierCredits": "Kreditlərdə ${{amount}}", + "tierCredits": "Kreditlərdə {{amount}}", "perMonth": "{{price}}/ay", "verifyPurchaseFailed": "Alışınız yoxlanıla bilmədi. Bağlantınızı yoxlayın və yenidən cəhd edin.", "productsCouldNotLoad": "Kilo Pass məhsulları App Store-dan yüklənə bilmədi.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store abunəlik idarəetməsi açıla bilmədi.", "kiloPassSetup": "Kilo Pass quraşdırması", "subscriptionHeaderDescription": "Kilo App-də AI kodlaşdırma sessiyalarını — Cloud Agentlər, uzaq sessiyalar və KiloClaw söhbətlərini işlətmək üçün Kilo balansınıza kredit əlavə edən aylıq abunəlik.", - "tierDescription": "Kilo App istifadəsi üçün aylıq ${{price}} ödənilmiş kredit əlavə olunur.", + "tierDescription": "Kilo App istifadəsi üçün aylıq {{price}} ödənilmiş kredit əlavə olunur.", "subscribe": "Abunə ol", "subscribeDescription": "Bonus irəliləyişli aylıq kreditlər", "manage": "İdarə et", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass gözləyir", "statusCanceling": "Kilo Pass ləğv edilir", "statusPastDue": "Kilo Pass vaxtı keçib", - "monthlyCredits": "Aylıq ${{credits}} kredit", + "monthlyCredits": "Aylıq {{credits}} kredit", "ends": "{{date}} tarixində bitir", "periodEnd": "dövrün sonu", "managedOnGooglePlay": "Google Play-də idarə olunur", diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index 027bdec5c7..0f6680913e 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -206,11 +206,11 @@ "loadingLines": "Загрузка {{loaded}} з {{total}} радкоў…", "expandContext": "Разгарнуць кантэкст", "expandMoreContext": "Разгарнуць больш кантэксту", - "expandLines": "Разгарнуць {{count}} радкоў ({{start}}–{{end}})", - "expandMoreLines": "Разгарнуць яшчэ {{count}} радкоў ({{start}}–{{end}})", - "expandLinesOfContext": "Разгарнуць {{count}} радкоў кантэксту", + "expandLines": "Разгарнуць {{displayCount}} радкоў ({{start}}–{{end}})", + "expandMoreLines": "Разгарнуць яшчэ {{displayCount}} радкоў ({{start}}–{{end}})", + "expandLinesOfContext": "Разгарнуць {{displayCount}} радкоў кантэксту", "expandAll": "Разгарнуць усё", - "expandAllLines": "Разгарнуць усе {{count}} радкоў", + "expandAllLines": "Разгарнуць усе {{displayCount}} радкоў", "loadingMoreFiles": "Загрузка больш файлаў…", "retryLoadingNextPage": "Паўтарыць загрузку наступнай старонкі", "failedToLoadMoreFiles": "Не атрымалася загрузіць больш файлаў — дакраніцеся, каб паўтарыць", @@ -227,7 +227,11 @@ "fileLoadedOfTotalCount_other": "Загружана {{displayCount}} файлаў з {{total}}", "filesStillLoading": "Файлы яшчэ загружаюцца. Сцягніце ўніз, каб абнавіць.", "goToOverview": "Перайсці да агляду", - "goToOverviewTab": "Перайсці да ўкладкі «Агляд»" + "goToOverviewTab": "Перайсці да ўкладкі «Агляд»", + "fileLoadedCount_few": "Загружаны {{displayCount}} файлы", + "fileLoadedCount_many": "Загружана {{displayCount}} файлаў", + "fileLoadedOfTotalCount_few": "Загружаны {{displayCount}} файлы з {{total}}", + "fileLoadedOfTotalCount_many": "Загружана {{displayCount}} файлаў з {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ няма пераносу радка ў канцы файла", @@ -301,7 +305,7 @@ "closeReactions": "Закрыць рэакцыі", "reactionsTitle": "Рэакцыі", "addReaction": "Дадаць рэакцыю", - "reactionPill": "{{emoji}} рэакцыя, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} рэакцыя, {{displayCount}} {{countLabel}}", "reaction_one": "рэакцыя", "reaction": "рэакцыі", "reaction_other": "рэакцыі", @@ -353,10 +357,14 @@ "noDiscussionDescription": "На гэтым pull request няма галінак рэцэнзіі або каментароў размовы.", "reviewFiles": "Рэцэнзаваць файлы", "quotedDiffSnippet": "Цытаваны фрагмент diff", - "moreLinesAbove": "… яшчэ {{count}} радкоў вышэй", + "moreLinesAbove": "… яшчэ {{displayCount}} радкоў вышэй", "termsAcceptRequired": "Вам трэба прыняць Умовы выкарыстання, каб пакідаць паведамленні.", "termsOutdatedCopy": "Умовы выкарыстання змяніліся. Адкрыйце гэты экран зноў, каб прыняць апошнюю версію.", - "termsCheckRetryCopy": "Не атрымалася праверыць Умовы выкарыстання. Праверце падключэнне і паспрабуйце яшчэ раз." + "termsCheckRetryCopy": "Не атрымалася праверыць Умовы выкарыстання. Праверце падключэнне і паспрабуйце яшчэ раз.", + "comment_few": "{{displayCount}} каментары", + "comment_many": "{{displayCount}} каментароў", + "reaction_few": "рэакцыі", + "reaction_many": "рэакцый" }, "couldNotOpenGitHubAppSettings": "Не атрымалася адкрыць налады GitHub App", "installKiloGitHubApp": "Усталяваць Kilo GitHub App", @@ -395,11 +403,11 @@ "retryChecks": "Паўтарыць праверкі", "viewOnGitHub": "Прагледзець PR на GitHub", "noChecksReported": "Праверкі не паведамлены", - "passed": "{{count}} прайшлі", - "failed": "{{count}} не прайшлі", - "pending": "{{count}} чакаюць", - "skipped": "{{count}} прапушчаны", - "checksCount": "{{count}} правак", + "passed": "{{displayCount}} прайшлі", + "failed": "{{displayCount}} не прайшлі", + "pending": "{{displayCount}} чакаюць", + "skipped": "{{displayCount}} прапушчаны", + "checksCount": "{{displayCount}} правак", "checkDetails": "падрабязнасці праверкі", "pullRequest": "pull request" }, @@ -459,9 +467,11 @@ "pendingComment_one": "чакаючы каментар", "pendingComment": "чакаючыя каментары", "pendingComment_other": "чакаючыя каментары", - "submitCountOfTotal": "Адправіць {{freshCount}} з {{totalCount}} каментароў", + "submitCountOfTotal": "Адправіць {{displayFreshCount}} з {{displayTotalCount}} каментароў", "submitReview": "Адправіць рэцэнзію", - "partialPostedMessage": "Адпраўлена {{freshCount}} каментар(аў). {{staleCount}} каментар(аў) адносяцца да старэйшага каміта і засталіся ў вашай чарзе." + "partialPostedMessage": "Адпраўлена {{displayFreshCount}} каментар(аў). {{displayStaleCount}} каментар(аў) адносяцца да старэйшага каміта і засталіся ў вашай чарзе.", + "pendingComment_few": "чакаючых каментары", + "pendingComment_many": "чакаючых каментароў" }, "reconnectNotice": { "title": "Тэрмін злучэння з GitHub скончыўся", @@ -488,7 +498,11 @@ "commit_other": "каміты", "file_one": "файл", "file": "файлы", - "file_other": "файлы" + "file_other": "файлы", + "commit_few": "каміты", + "commit_many": "камітаў", + "file_few": "файлы", + "file_many": "файлаў" }, "pendingComment": { "editOutdatedA11y": "Рэдагаваць састарэлы чакаючы каментар на {{location}}", @@ -580,7 +594,8 @@ "agents": "Агенты", "profile": "Профіль", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, укладка, {{position}} з {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +636,7 @@ "recent": "Нядаўнія", "common": "Звычайныя", "reactWith": "Рэагаваць з {{reaction}}", - "accessibility": "{{emoji}} рэакцыя, {{count}}" + "accessibility": "{{emoji}} рэакцыя, {{displayCount}}" }, "composer": { "replyingTo": "Адказ на", @@ -650,7 +665,7 @@ "imageUnavailable": "Выява недаступная", "openFailed": "Не атрымалася адкрыць далучэнне. Праверце падключэнне і паспрабуйце яшчэ раз.", "attachFailed": "Не атрымалася далучыць файл", - "limit": "Вы можаце далучыць да {{count}} файлаў.", + "limit": "Вы можаце далучыць да {{displayCount}} файлаў.", "sizeRejection": "{{filename}} перавышае ліміт далучэння {{limit}}.", "unreadable": "Не атрымалася прачытаць {{filename}}.", "pastedImage": "устаўленая выява", @@ -700,7 +715,9 @@ "someone": "Нехта", "typing_one": "{{name}} друкуе...", "typing": "{{names}} друкуюць...", - "typing_other": "{{names}} друкуюць..." + "typing_other": "{{names}} друкуюць...", + "typing_few": "{{names}} друкуюць...", + "typing_many": "{{names}} друкуюць..." }, "botStatus": { "online": "У сетцы", @@ -740,11 +757,12 @@ "yourStandardMonthlyPrice": "ваша штомесячная цана Standard", "perMonth": "/мес", "earlybirdAccessUntil": "Доступ Earlybird да {{date}}", - "earlybirdEnding": "Earlybird сканчаецца: засталося {{days}} дз.", + "earlybirdEnding": "Earlybird сканчаецца: {{remaining}}", "paymentPastDue": "Пратэрмінаваны плацёж. Абнавіце спосаб аплаты.", "subscriptionCancels": "Падпіска адмяняецца {{date}}", - "trialDaysRemaining": "Пробная версія: засталося {{days}} дз.", - "trialEndingSoon": "Пробная версія сканчаецца: {{days}}" + "trialDaysRemaining": "Пробная версія: засталося {{remaining}}", + "trialEndingSoon": "Пробная версія сканчаецца: {{remaining}}", + "lessThanOneDay": "Менш за 1 дзень" }, "changelog": { "title": "Што новага", @@ -996,7 +1014,7 @@ "stalledTitle": "Нешта затрымалася", "stalledBody": "Нам не ўдалося завяршыць наладку {{name}}. Паспрабуйце яшчэ раз або напішыце на hi@kilo.ai, калі гэта паўтараецца.", "timeoutTitle": "Гэта займае больш часу, чым чакалася", - "timeoutBody": "Наладка {{name}} займае больш часу, чым звычайна (больш за {{minutes}} хвіл.).", + "timeoutBody": "Наладка {{name}} займае больш часу, чым звычайна (больш за {{displayMinutes}} хвіл.).", "continueInBackground": "Працягнуць у фонавым рэжыме", "settingUp": "Наладка {{name}}", "finishingSetup": "Завяршэнне наладкі", @@ -1071,7 +1089,9 @@ "openUnread_other": "Адкрыць {{name}}, {{displayCount}} непрачытаных паведамленняў", "open": "Адкрыць {{name}}", "openSettings": "Адкрыць налады для {{name}}", - "fixOnKiloAi": "Выправіць на kilo.ai: {{label}}" + "fixOnKiloAi": "Выправіць на kilo.ai: {{label}}", + "openUnread_few": "Адкрыць {{name}}, непрачытаных паведамленні: {{displayCount}}", + "openUnread_many": "Адкрыць {{name}}, непрачытаных паведамленняў: {{displayCount}}" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1307,7 @@ "mergeGate": "Парог зліцця", "repositories": "Рэпазіторыі", "allRepositories": "Усе рэпазіторыі", - "nSelected": "{{count}} выбрана", + "nSelected": "{{displayCount}} выбрана", "reviewMemory": "Памяць праверкі", "proposedReviewMdGuidance": "Прапанаваная рэкамендацыя REVIEW.md" }, @@ -1367,7 +1387,9 @@ "severityAll": "Усе ўзроўні", "confidenceHighOnly": "Толькі з высокай упэўненасцю", "confidenceMediumOrHigher": "Сярэдняя і вышэй", - "confidenceAny": "Любая ўпэўненасць" + "confidenceAny": "Любая ўпэўненасць", + "queued_few": "{{displayCount}} існыя знаходкі пастаўлены ў чаргу для аналізу.", + "queued_many": "{{displayCount}} існых знаходак пастаўлена ў чаргу для аналізу." }, "analysis": { "couldNotLoad": "Не атрымалася загрузіць аналіз", @@ -1391,14 +1413,14 @@ "analyzed": "Прааналізавана", "exploitabilityReasoning": "Абгрунтаванне выкарыстоўвальнасці", "suggestedFix": "Прапанаванае выпраўленне", - "whereFound": "Дзе гэта было знойдзена ({{count}})", + "whereFound": "Дзе гэта было знойдзена ({{displayCount}})", "fullReport": "Поўны сфарміраваны справаздача", "unknown": "Невядома", "yes": "Так", "no": "Не" }, "dashboard": { - "findingsCount": "{{count}} знаходак", + "findingsCount": "{{displayCount}} знаходак", "notMeasured": "Не вымерана", "actFirst": "Дзейнічаць перш", "slaPosture": "Пазіцыя SLA", @@ -1407,7 +1429,7 @@ "repositoryActionPlan": "План дзеянняў для рэпазіторыя", "noOpenFindings": "Няма адкрытых знаходак, якія патрабуюць увагі", "deadlineToday": "Тэрмін дасягнуты сёння", - "daysOverdue": "{{count}} дзён пратэрмінавана", + "daysOverdue": "{{displayCount}} дзён пратэрмінавана", "withinDeadline": "У межах тэрміну", "criticalOverdue": "Крытычна пратэрмінавана", "highOverdue": "Высока пратэрмінавана", @@ -1435,6 +1457,27 @@ "syncQueued": "Сінхранізацыя ў чарзе", "syncStatusUnavailable": "Статус сінхранізацыі недаступны" }, + "dashboardMetrics": { + "openFindings": "Адкрытыя знаходкі", + "openFindingsDetail": "{{critical}} крытычных, {{high}} высокіх", + "confirmedExploitable": "Пацверджана выкарыстоўвальная", + "confirmedExploitableDetail": "Рызыка праекта пацверджана аналізам", + "needsReview": "Патрабуе вашай праверкі", + "needsReviewDetail": "Патрабуецца рашэнне чалавека", + "analysisIncomplete": "Аналіз не завершаны", + "analysisIncompleteDetail": "Рызыка праекта яшчэ невядомая", + "slaCompliance": "Адпаведнасць SLA", + "notMeasured": "Не вымерана", + "withinDeadlineDetail": "{{within}} з {{total}} у межах тэрміну", + "noDeadlineData": "Яшчэ ніводная знаходка не мае тэрміну SLA", + "deadlinePassed": "Тэрмін прайшоў", + "deadlinePassedDetail": "{{critical}} крытычных, {{high}} высокіх", + "dueThisWeek": "Да спынення гэты тыдзень", + "dueThisWeekDetail": "{{exploitable}} пацверджана выкарыстоўвальная", + "noDeadline": "Няма тэрміну", + "reviewSlaAssignment": "Праверце прызначэнне SLA", + "allOpenFindingsTracked": "Усе адкрытыя знаходкі адсочваюцца" + }, "dismiss": { "title": "Адхіліць знаходку", "submit": "Адхіліць знаходку", @@ -1500,13 +1543,15 @@ "analysisModeSubtitle": "аналіз {{mode}}", "automation": "Аўтаматызацыя", "automationAllOff": "Усё выключана", - "automationCount": "уключана {{count}} з 3", + "automationCount": "уключана {{displayCount}} з 3", "notifications": "Паведамленні", - "notificationsCount": "уключана {{count}} з 2", + "notificationsCount": "уключана {{displayCount}} з 2", "slaPolicy": "Палітыка SLA", "disabledNoManage": "Security Agent выключаны. Толькі ўладальнікі арганізацыі і менеджэры па аплаце могуць яго ўключыць.", "disabledNoRepo": "Выберыце хаця б адзін рэпазіторый, перш чым уключаць Security Agent.", - "disabledPrompt": "Уключыце Security Agent, каб сінхранізаваць апавяшчэнні Dependabot, выбіраць рэпазіторыі і наладжваць аўтаматызацыю." + "disabledPrompt": "Уключыце Security Agent, каб сінхранізаваць апавяшчэнні Dependabot, выбіраць рэпазіторыі і наладжваць аўтаматызацыю.", + "repositoriesCount_few": "выбрана {{displayCount}} рэпазіторыі", + "repositoriesCount_many": "выбрана {{displayCount}} рэпазіторыяў" }, "remediation": { "cancellationRequested": "Запытана адмена", @@ -1524,7 +1569,7 @@ "openPullRequest": "Адкрыць pull request{{number}}", "openDraftPullRequest": "Адкрыць чарнавік pull request{{number}}", "progress": "Ход выканання", - "attemptHistory": "Гісторыя спроб ({{count}})", + "attemptHistory": "Гісторыя спроб ({{displayCount}})", "attemptNumber": "Спроба #{{number}}", "startedBy": "Пачата", "model": "Мадэль", @@ -1734,7 +1779,11 @@ "cent_other": "цэнты", "dollar_one": "долар", "dollar": "долары", - "dollar_other": "долары" + "dollar_other": "долары", + "cent_few": "цэнты", + "cent_many": "цэнтаў", + "dollar_few": "долары", + "dollar_many": "долараў" }, "githubInstall": { "couldNotOpenTitle": "Не атрымалася адкрыць GitHub", @@ -1830,7 +1879,9 @@ "partRenderer": { "updatedFileCount_one": "Абноўлены {{displayCount}} файл", "updatedFileCount": "Абноўлена {{displayCount}} файлаў", - "updatedFileCount_other": "Абноўлена {{displayCount}} файлаў" + "updatedFileCount_other": "Абноўлена {{displayCount}} файлаў", + "updatedFileCount_few": "Абноўлены {{displayCount}} файлы", + "updatedFileCount_many": "Абноўлена {{displayCount}} файлаў" }, "toolPatch": { "operationAdded": "Дададзена", @@ -1855,9 +1906,9 @@ "toolTask": "задача", "readTodos": "Прачытаць задачы", "updateTodos": "Абнавіць задачы", - "linesBadge": "{{count}} радкоў", - "filesBadge": "{{count}} файлаў", - "matchesBadge": "{{count}} супадзенняў" + "linesBadge": "{{displayCount}} радкоў", + "filesBadge": "{{displayCount}} файлаў", + "matchesBadge": "{{displayCount}} супадзенняў" }, "readToolMarkdown": { "linesTruncated": "радкі {{start}}–{{end}} (абрэзана)", @@ -1941,6 +1992,10 @@ "reportAiResponseFailedTerminal": "Пра гэты адказ нельга паведаміць.", "reportAiResponseSubmitted": "Паведамленне адпраўлена. Квітанцыя {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Падрабязнасці недаступныя", "textDisplay": "Адлюстраванне тэксту", @@ -1999,7 +2054,7 @@ "preparationComplete": "Падрыхтоўка завершана", "preparationFailed": "Падрыхтоўка не атрымалася", "setupCommand": "Каманда налады {{index}}", - "setupCommandOf": "Каманда налады {{index}} з {{count}}" + "setupCommandOf": "Каманда налады {{index}} з {{displayCount}}" }, "permissionCard": { "title": "Патрабуецца дазвол", @@ -2036,7 +2091,7 @@ "submissionFailed": "Адпраўка не ўдалася. Паспрабуйце яшчэ раз.", "questionAnnouncement": "Агенту патрэбен ваш адказ. Кампазітар прыпынены, пакуль вы адказваеце.", "permissionAnnouncement": "Агенту патрэбен дазвол, каб працягнуць. Кампазітар прыпынены, пакуль вы вырашаеце.", - "positionHint": "(1 з {{count}})", + "positionHint": "(1 з {{displayCount}})", "movedPastPrompt": "Агент прасунуўся далей за гэты запыт. Гэтая картка закрыецца, калі сеанс працягнецца.", "waitingForAnswer": "Агент чакае вашага адказу. Пакуль пытанне адкрытае, ваша паведамленне агенту прыпыненае.", "waitingForPermission": "Агент чакае дазволу. Пакуль запыт адкрыты, ваша паведамленне агенту прыпыненае." @@ -2076,7 +2131,9 @@ "omitted_other": "{{displayCount}} больш ранніх элементаў гэтага сеанса не ўдалося паказаць.", "couldNotLoad": "Не ўдалося загрузіць больш раннія паведамленні.", "unavailable": "Больш раннія паведамленні недаступныя.", - "tooLarge": "Больш раннія паведамленні занадта вялікія для загрузкі." + "tooLarge": "Больш раннія паведамленні занадта вялікія для загрузкі.", + "omitted_few": "{{displayCount}} больш ранніх элементи гэтага сеанса не ўдалося паказаць.", + "omitted_many": "{{displayCount}} больш ранніх элементаў гэтага сеанса не ўдалося паказаць." }, "markdownTable": { "viewTable": "Праглядзець табліцу", @@ -2088,7 +2145,11 @@ "rowCount_one": "радок", "rowCount": "радкі", "rowCount_other": "радкі", - "opensFullScreen": "адкрываецца на ўвесь экран" + "opensFullScreen": "адкрываецца на ўвесь экран", + "columnCount_few": "слупкі", + "columnCount_many": "слупкоў", + "rowCount_few": "радкі", + "rowCount_many": "радкоў" }, "sessionFilter": { "title": "Фільтраваць сеансы", @@ -2157,7 +2218,7 @@ "cameraAccessDisabled": "Доступ да камеры адключаны", "cameraAccessMessage": "Дазвольце доступ да камеры ў наладах, каб зрабіць фота.", "couldNotOpenPhotoPicker": "Не ўдалося адкрыць выбар фота. Перазапусціце Kilo і паспрабуйце яшчэ раз.", - "maxFilesAllowed": "Дазволена максімум {{count}} файлаў", + "maxFilesAllowed": "Дазволена максімум {{displayCount}} файлаў", "onlyAddingFiles": "Дадаецца толькі {{accepted}} з {{total}} файлаў (макс. {{max}})" }, "composer": { @@ -2222,7 +2283,7 @@ "costPrefix": "кошт {{cost}}", "costSuffix": ", кошт {{cost}}", "tokensWindowUnavailable": "Кантэкст {{used}} токенаў, акно недаступнае", - "tokensUsage": "Кантэкст {{used}} з {{window}} токенаў, выкарыстана {{percentage}}%", + "tokensUsage": "Кантэкст {{used}} з {{window}} токенаў, выкарыстана {{percentage}}", "title": "Выкарыстанне кантэксту", "used": "Выкарыстана", "remaining": "Засталося", @@ -2231,7 +2292,7 @@ "usageReflectsLatest": "Выкарыстанне адлюстроўвае апошні завершаны адказ памочніка.", "tokenUsage": "Выкарыстанне токенаў", "cacheRate": "Хуткасць кэшавання", - "modelsCount": "Мадэлі ({{count}})", + "modelsCount": "Мадэлі ({{displayCount}})", "tokenTotalsNote": "Падсумоўванні токенаў ахопліваюць толькі гэты сеанс і выключаюць токены падагентаў/даччыных сеансаў.", "subagents": "Падагенты", "subagentsDescription": "Рэшткавы кошт з даччыных сеансаў", @@ -2243,7 +2304,9 @@ "stepsCount_one": "{{steps}} крок", "stepsCount": "{{steps}} крокаў", "stepsCount_other": "{{steps}} крокаў", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} крокі", + "stepsCount_many": "{{steps}} крокаў" }, "prBadge": { "open": "адкрыты pull request", @@ -2373,7 +2436,7 @@ "connectedCli": "На падключаным CLI", "newSessionOn": "Новы сеанс на {{name}}", "noMatchingSessions": "Няма супадзенняў па сеансах.", - "onlyFirstFilesAttached": "Будуць прымацаваныя толькі першыя {{count}} файлаў.", + "onlyFirstFilesAttached": "Будуць прымацаваныя толькі першыя {{displayCount}} файлаў.", "staleMessage": "Гэтая публікацыя больш недаступная.", "retryableMessage": "Не ўдалося загрузіць вашы сеансы.", "emptyMessage": "Яшчэ няма сеансаў — пачніце новы, каб адправіць гэта.", @@ -2406,7 +2469,7 @@ "otherAccountCopy": "Kilo Pass на гэтым Apple Account належыць іншаму ўліковаму запісу Kilo. Увайдзіце ў той уліковы запіс Kilo, каб кіраваць ім.", "alreadySubscribed": "У вас ужо ёсць падпіска Kilo Pass.", "purchaseUnavailable": "Пакупка Kilo Pass зараз недаступная.", - "tierCredits": "${{amount}} у крэдытах", + "tierCredits": "{{amount}} у крэдытах", "perMonth": "{{price}}/мес", "verifyPurchaseFailed": "Не ўдалося праверыць вашу пакупку. Праверце падключэнне і паспрабуйце яшчэ раз.", "productsCouldNotLoad": "Прадукты Kilo Pass не ўдалося загрузіць з App Store.", @@ -2417,7 +2480,7 @@ "manageFailed": "Не ўдалося адкрыць кіраванне падпіскай у App Store.", "kiloPassSetup": "Настройка Kilo Pass", "subscriptionHeaderDescription": "Штомесячная падпіска, якая дадае крэдыты на ваш баланс Kilo для запуску AI-сеансаў праграмавання ў дадатку Kilo — Cloud Agents, аддаленыя сеансы і чаты KiloClaw.", - "tierDescription": "${{price}} аплачаных крэдытаў дадаецца штомесяц для карыстання дадаткам Kilo.", + "tierDescription": "{{price}} аплачаных крэдытаў дадаецца штомесяц для карыстання дадаткам Kilo.", "subscribe": "Падпісацца", "subscribeDescription": "Штомесячныя крэдыты з бонусным прагрэсам", "manage": "Кіраваць", @@ -2425,7 +2488,7 @@ "statusPending": "Kilo Pass чакае", "statusCanceling": "Kilo Pass адмяняецца", "statusPastDue": "Kilo Pass пратэрмінаваны", - "monthlyCredits": "${{credits}} штомесячных крэдытаў", + "monthlyCredits": "{{credits}} штомесячных крэдытаў", "ends": "Сканчваецца {{date}}", "periodEnd": "канец перыяду", "managedOnGooglePlay": "Кіруецца ў Google Play", @@ -2667,7 +2730,9 @@ "processingNeedsReview": "Апрацоўка патрабуе праверкі", "retry": "Паўтарыць", "retryHint": "Паўтарае загрузку статусу Kilo Pass.", - "setupHint": "Адкрывае настройку Kilo Pass у інтэрнэце." + "setupHint": "Адкрывае настройку Kilo Pass у інтэрнэце.", + "paidSeat_few": "{{displayCount}} аплачаных месцы", + "paidSeat_many": "{{displayCount}} аплачаных месцаў" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index c0e8494b01..e95152cc09 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -206,11 +206,11 @@ "loadingLines": "Зареждаме {{loaded}} от {{total}} реда…", "expandContext": "Разгъни контекста", "expandMoreContext": "Разгъни още контекст", - "expandLines": "Разгъни {{count}} реда ({{start}}–{{end}})", - "expandMoreLines": "Разгъни още {{count}} реда ({{start}}–{{end}})", - "expandLinesOfContext": "Разгъни {{count}} реда контекст", + "expandLines": "Разгъни {{displayCount}} реда ({{start}}–{{end}})", + "expandMoreLines": "Разгъни още {{displayCount}} реда ({{start}}–{{end}})", + "expandLinesOfContext": "Разгъни {{displayCount}} реда контекст", "expandAll": "Разгъни всичко", - "expandAllLines": "Разгъни всички {{count}} реда", + "expandAllLines": "Разгъни всички {{displayCount}} реда", "loadingMoreFiles": "Зареждаме още файлове…", "retryLoadingNextPage": "Опитай отново да заредиш следващата страница", "failedToLoadMoreFiles": "Не можахме да заредим още файлове — докосни, за да опиташ отново", @@ -301,7 +301,7 @@ "closeReactions": "Затвори реакциите", "reactionsTitle": "Реакции", "addReaction": "Добави реакция", - "reactionPill": "{{emoji}} реакция, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} реакция, {{displayCount}} {{countLabel}}", "reaction_one": "реакция", "reaction": "реакции", "reaction_other": "реакции", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Няма нишки за ревю или коментари в разговора по този pull request.", "reviewFiles": "Прегледай файловете", "quotedDiffSnippet": "Цитиран diff фрагмент", - "moreLinesAbove": "… {{count}} още реда по-горе", + "moreLinesAbove": "… {{displayCount}} още реда по-горе", "termsAcceptRequired": "Трябва да приемеш условията за ползване, за да публикуваш.", "termsOutdatedCopy": "Условията за ползване се промениха. Отвори отново този екран, за да приемеш най-новата версия.", "termsCheckRetryCopy": "Не можахме да проверим условията за ползване. Провери връзката си и опитай отново." @@ -395,11 +395,11 @@ "retryChecks": "Опитай отново проверките", "viewOnGitHub": "Прегледай PR в GitHub", "noChecksReported": "Няма докладвани проверки", - "passed": "{{count}} преминаха", - "failed": "{{count}} се провалиха", - "pending": "{{count}} изчакващи", - "skipped": "{{count}} пропуснати", - "checksCount": "{{count}} проверки", + "passed": "{{displayCount}} преминаха", + "failed": "{{displayCount}} се провалиха", + "pending": "{{displayCount}} изчакващи", + "skipped": "{{displayCount}} пропуснати", + "checksCount": "{{displayCount}} проверки", "checkDetails": "детайли на проверката", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "чакащ коментар", "pendingComment": "чакащи коментари", "pendingComment_other": "чакащи коментари", - "submitCountOfTotal": "Изпрати {{freshCount}} от {{totalCount}} коментара", + "submitCountOfTotal": "Изпрати {{displayFreshCount}} от {{displayTotalCount}} коментара", "submitReview": "Изпрати прегледа", - "partialPostedMessage": "Публикувахме {{freshCount}} коментара. {{staleCount}} коментара сочат към по-стар commit и останаха в опашката ви." + "partialPostedMessage": "Публикувахме {{displayFreshCount}} коментара. {{displayStaleCount}} коментара сочат към по-стар commit и останаха в опашката ви." }, "reconnectNotice": { "title": "GitHub връзката изтече", @@ -580,7 +580,8 @@ "agents": "Агенти", "profile": "Профил", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, раздел, {{position}} от {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Скорошни", "common": "Обичайни", "reactWith": "Реагирай с {{reaction}}", - "accessibility": "{{emoji}} реакция, {{count}}" + "accessibility": "{{emoji}} реакция, {{displayCount}}" }, "composer": { "replyingTo": "Отговаряш на", @@ -650,7 +651,7 @@ "imageUnavailable": "Изображението е недостъпно", "openFailed": "Не можахме да отворим прикачения файл. Провери връзката си и опитай отново.", "attachFailed": "Не можахме да прикачим файла", - "limit": "Можеш да прикачиш до {{count}} файла.", + "limit": "Можеш да прикачиш до {{displayCount}} файла.", "sizeRejection": "{{filename}} надхвърля лимита за прикачени файлове от {{limit}}.", "unreadable": "Не можахме да прочетем {{filename}}.", "pastedImage": "поставеното изображение", @@ -740,11 +741,12 @@ "yourStandardMonthlyPrice": "твоята месечна цена за Standard", "perMonth": "/месец", "earlybirdAccessUntil": "Достъп Earlybird до {{date}}", - "earlybirdEnding": "Earlybird приключва: остават {{days}} дни", + "earlybirdEnding": "Earlybird приключва: {{remaining}}", "paymentPastDue": "Плащането е просрочено. Моля, актуализирай начина на плащане.", "subscriptionCancels": "Абонаментът се анулира на {{date}}", - "trialDaysRemaining": "Пробен период: остават {{days}} дни", - "trialEndingSoon": "Пробният период приключва скоро: {{days}}" + "trialDaysRemaining": "Пробен период: остават {{remaining}}", + "trialEndingSoon": "Пробният период приключва скоро: {{remaining}}", + "lessThanOneDay": "По-малко от 1 ден" }, "changelog": { "title": "Какво ново", @@ -996,7 +998,7 @@ "stalledTitle": "Нещо блокира", "stalledBody": "Не успяхме да завършим настройката на {{name}}. Опитай отново или пиши на hi@kilo.ai, ако това продължава.", "timeoutTitle": "Отнема повече от очакваното", - "timeoutBody": "Настройката на {{name}} отнема повече от обичайното (над {{minutes}} минути).", + "timeoutBody": "Настройката на {{name}} отнема повече от обичайното (над {{displayMinutes}} минути).", "continueInBackground": "Продължи на фонов режим", "settingUp": "Настройване на {{name}}", "finishingSetup": "Приключване на настройката", @@ -1287,7 +1289,7 @@ "mergeGate": "Портал за сливане", "repositories": "Хранилища", "allRepositories": "Всички хранилища", - "nSelected": "{{count}} избрани", + "nSelected": "{{displayCount}} избрани", "reviewMemory": "Памет за прегледа", "proposedReviewMdGuidance": "Предложени насоки REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "Анализирано", "exploitabilityReasoning": "Обосновка на експлоатируемостта", "suggestedFix": "Предложена корекция", - "whereFound": "Къде е открито ({{count}})", + "whereFound": "Къде е открито ({{displayCount}})", "fullReport": "Пълен генериран отчет", "unknown": "Неизвестно", "yes": "Да", "no": "Не" }, "dashboard": { - "findingsCount": "{{count}} открития", + "findingsCount": "{{displayCount}} открития", "notMeasured": "Не е измерено", "actFirst": "Действай първо", "slaPosture": "Позиция спрямо SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "План за действие в хранилището", "noOpenFindings": "Няма отворени открития, които изискват внимание", "deadlineToday": "Краен срок, достигнат днес", - "daysOverdue": "{{count}} дни просрочени", + "daysOverdue": "{{displayCount}} дни просрочени", "withinDeadline": "В рамките на крайния срок", "criticalOverdue": "Критично просрочено", "highOverdue": "Високо просрочено", @@ -1435,6 +1437,27 @@ "syncQueued": "Синхронизирането е в опашка", "syncStatusUnavailable": "Състоянието на синхронизиране е недостъпно" }, + "dashboardMetrics": { + "openFindings": "Отворени открития", + "openFindingsDetail": "{{critical}} критични, {{high}} високи", + "confirmedExploitable": "Потвърдено експлоатируемо", + "confirmedExploitableDetail": "Рискът за проекта е потвърден чрез анализ", + "needsReview": "Изисква твоя преглед", + "needsReviewDetail": "Изисква се човешко решение", + "analysisIncomplete": "Анализът не е завършен", + "analysisIncompleteDetail": "Рискът за проекта все още е неизвестен", + "slaCompliance": "Спазване на SLA", + "notMeasured": "Не е измерено", + "withinDeadlineDetail": "{{within}} от {{total}} в рамките на крайния срок", + "noDeadlineData": "Все още няма открития със срок по SLA", + "deadlinePassed": "Крайният срок изтече", + "deadlinePassedDetail": "{{critical}} критични, {{high}} високи", + "dueThisWeek": "Дължими тази седмица", + "dueThisWeekDetail": "{{exploitable}} потвърдено експлоатируемо", + "noDeadline": "Няма краен срок", + "reviewSlaAssignment": "Преглед на присвояването на SLA", + "allOpenFindingsTracked": "Всички отворени открития се проследяват" + }, "dismiss": { "title": "Отхвърли откритието", "submit": "Отхвърли откритието", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} анализ", "automation": "Автоматизация", "automationAllOff": "Всичко изключено", - "automationCount": "{{count}} от 3 активирани", + "automationCount": "{{displayCount}} от 3 активирани", "notifications": "Известия", - "notificationsCount": "{{count}} от 2 активирани", + "notificationsCount": "{{displayCount}} от 2 активирани", "slaPolicy": "Политика на SLA", "disabledNoManage": "Security Agent е деактивиран. Само собственици на организация и ръководители на фактуриране могат да го включат.", "disabledNoRepo": "Избери поне едно хранилище, преди да активираш Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Отвори пул заявка{{number}}", "openDraftPullRequest": "Отвори чернова на пул заявка{{number}}", "progress": "Напредък", - "attemptHistory": "История на опитите ({{count}})", + "attemptHistory": "История на опитите ({{displayCount}})", "attemptNumber": "Опит #{{number}}", "startedBy": "Започнато от", "model": "Модел", @@ -1855,9 +1878,9 @@ "toolTask": "задача", "readTodos": "Прочети задачите", "updateTodos": "Актуализирай задачите", - "linesBadge": "{{count}} реда", - "filesBadge": "{{count}} файла", - "matchesBadge": "{{count}} съвпадения" + "linesBadge": "{{displayCount}} реда", + "filesBadge": "{{displayCount}} файла", + "matchesBadge": "{{displayCount}} съвпадения" }, "readToolMarkdown": { "linesTruncated": "редове {{start}}–{{end}} (съкратено)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Този отговор не може да бъде докладван.", "reportAiResponseSubmitted": "Докладът е изпратен. Разписка {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Детайлите са недостъпни", "textDisplay": "Текстово показване", @@ -1999,7 +2026,7 @@ "preparationComplete": "Подготовката е завършена", "preparationFailed": "Подготовката се провали", "setupCommand": "Команда за настройка {{index}}", - "setupCommandOf": "Команда за настройка {{index}} от {{count}}" + "setupCommandOf": "Команда за настройка {{index}} от {{displayCount}}" }, "permissionCard": { "title": "Изисква се право", @@ -2036,7 +2063,7 @@ "submissionFailed": "Неуспешно изпращане. Моля, опитайте отново.", "questionAnnouncement": "Агентът има нужда от вашия отговор. Композиторът е на пауза, докато отговаряте.", "permissionAnnouncement": "Агентът има нужда от разрешение, за да продължи. Композиторът е на пауза, докато решавате.", - "positionHint": "(1 от {{count}})", + "positionHint": "(1 от {{displayCount}})", "movedPastPrompt": "Агентът е преминал отвъд този въпрос. Тази карта ще се затвори, когато сесията продължи.", "waitingForAnswer": "Агентът чака вашия отговор. Докато този въпрос е отворен, съобщението ви до агента е на пауза.", "waitingForPermission": "Агентът чака разрешение. Докато тази заявка е отворена, съобщението ви до агента е на пауза." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Достъпът до камера е деактивиран", "cameraAccessMessage": "Разрешете достъпа до камера в Настройки, за да направите снимка.", "couldNotOpenPhotoPicker": "Не може да се отвори изборът на снимки. Рестартирайте Kilo и опитайте отново.", - "maxFilesAllowed": "Максимум {{count}} файла са позволени", + "maxFilesAllowed": "Максимум {{displayCount}} файла са позволени", "onlyAddingFiles": "Добавяте само {{accepted}} от {{total}} файла (макс. {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "разход {{cost}}", "costSuffix": ", разход {{cost}}", "tokensWindowUnavailable": "Контекст {{used}} токена, прозорецът е недостъпен", - "tokensUsage": "Контекст {{used}} от {{window}} токена, {{percentage}}% използвани", + "tokensUsage": "Контекст {{used}} от {{window}} токена, {{percentage}} използвани", "title": "Използване на контекста", "used": "Използвани", "remaining": "Оставащи", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Използването отразява последния завършен отговор на асистента.", "tokenUsage": "Използване на токени", "cacheRate": "Степен на кеширане", - "modelsCount": "Модели ({{count}})", + "modelsCount": "Модели ({{displayCount}})", "tokenTotalsNote": "Общите токени обхващат само тази сесия и изключват токените на субагенти/детски сесии.", "subagents": "Субагенти", "subagentsDescription": "Остатъчен разход от детски сесии", @@ -2373,7 +2400,7 @@ "connectedCli": "На свързан CLI", "newSessionOn": "Нова сесия на {{name}}", "noMatchingSessions": "Няма съвпадащи сесии.", - "onlyFirstFilesAttached": "Ще бъдат прикачени само първите {{count}} файла.", + "onlyFirstFilesAttached": "Ще бъдат прикачени само първите {{displayCount}} файла.", "staleMessage": "Това споделяне вече не е налично.", "retryableMessage": "Не можаха да се заредят вашите сесии.", "emptyMessage": "Все още няма сесии — започнете нова, за да изпратите това.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass на този Apple акаунт принадлежи на друг Kilo акаунт. Влезте в този Kilo акаунт, за да го управлявате.", "alreadySubscribed": "Вече имате абонамент за Kilo Pass.", "purchaseUnavailable": "Покупката на Kilo Pass не е налична в момента.", - "tierCredits": "${{amount}} в кредити", + "tierCredits": "{{amount}} в кредити", "perMonth": "{{price}}/мес", "verifyPurchaseFailed": "Не можа да се потвърди вашата покупка. Проверете връзката си и опитайте отново.", "productsCouldNotLoad": "Продуктите на Kilo Pass не можаха да се заредят от App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Неуспешно отваряне на управлението на абонамента в App Store.", "kiloPassSetup": "Настройка на Kilo Pass", "subscriptionHeaderDescription": "Месечен абонамент, който добавя кредити към вашия Kilo баланс за стартиране на AI сесии за кодиране в приложението Kilo — Cloud Agents, отдалечени сесии и KiloClaw чатове.", - "tierDescription": "${{price}} платени кредити, добавени месечно за използване на приложението Kilo.", + "tierDescription": "{{price}} платени кредити, добавени месечно за използване на приложението Kilo.", "subscribe": "Абонирайте се", "subscribeDescription": "Месечни кредити с бонус прогрес", "manage": "Управлявайте", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass е в изчакване", "statusCanceling": "Kilo Pass се анулира", "statusPastDue": "Kilo Pass със закъснение", - "monthlyCredits": "${{credits}} месечни кредити", + "monthlyCredits": "{{credits}} месечни кредити", "ends": "Приключва {{date}}", "periodEnd": "край на периода", "managedOnGooglePlay": "Управлява се в Google Play", diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index 32e5143c3b..e38d9367bd 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}}-এর মধ্যে {{loaded}} লাইন লোড হচ্ছে…", "expandContext": "কনটেক্সট প্রসারিত করুন", "expandMoreContext": "আরও কনটেক্সট প্রসারিত করুন", - "expandLines": "{{count}} লাইন প্রসারিত করুন ({{start}}–{{end}})", - "expandMoreLines": "আরও {{count}} লাইন প্রসারিত করুন ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} লাইন কনটেক্সট প্রসারিত করুন", + "expandLines": "{{displayCount}} লাইন প্রসারিত করুন ({{start}}–{{end}})", + "expandMoreLines": "আরও {{displayCount}} লাইন প্রসারিত করুন ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} লাইন কনটেক্সট প্রসারিত করুন", "expandAll": "সব প্রসারিত করুন", - "expandAllLines": "সব {{count}} লাইন প্রসারিত করুন", + "expandAllLines": "সব {{displayCount}} লাইন প্রসারিত করুন", "loadingMoreFiles": "আরও ফাইল লোড হচ্ছে…", "retryLoadingNextPage": "পরের পেজ লোড আবার চেষ্টা করুন", "failedToLoadMoreFiles": "আরও ফাইল লোড ব্যর্থ হয়েছে — আবার চেষ্টা করতে আলতো চাপুন", @@ -301,7 +301,7 @@ "closeReactions": "প্রতিক্রিয়া বন্ধ করুন", "reactionsTitle": "প্রতিক্রিয়া", "addReaction": "প্রতিক্রিয়া যোগ করুন", - "reactionPill": "{{emoji}} প্রতিক্রিয়া, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} প্রতিক্রিয়া, {{displayCount}} {{countLabel}}", "reaction_one": "প্রতিক্রিয়া", "reaction": "প্রতিক্রিয়া", "reaction_other": "প্রতিক্রিয়া", @@ -353,7 +353,7 @@ "noDiscussionDescription": "এই পুল রিকোয়েস্টে কোনো রিভিউ থ্রেড বা কথোপকথন মন্তব্য নেই।", "reviewFiles": "ফাইল রিভিউ করুন", "quotedDiffSnippet": "উদ্ধৃত ডিফ স্নিপেট", - "moreLinesAbove": "… উপরে আরও {{count}} লাইন", + "moreLinesAbove": "… উপরে আরও {{displayCount}} লাইন", "termsAcceptRequired": "পোস্ট করতে আপনাকে অবশ্যই পরিষেবার শর্তাবলী গ্রহণ করতে হবে।", "termsOutdatedCopy": "পরিষেবার শর্তাবলী পরিবর্তিত হয়েছে। সর্বশেষ সংস্করণ গ্রহণ করতে এই স্ক্রিনটি আবার খুলুন।", "termsCheckRetryCopy": "পরিষেবার শর্তাবলী পরীক্ষা করা যায়নি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।" @@ -395,11 +395,11 @@ "retryChecks": "চেক আবার চেষ্টা করুন", "viewOnGitHub": "GitHub-এ PR দেখুন", "noChecksReported": "কোনো চেক রিপোর্ট করা হয়নি", - "passed": "{{count}} পাস হয়েছে", - "failed": "{{count}} ব্যর্থ হয়েছে", - "pending": "{{count}} মুলতুবি", - "skipped": "{{count}} বাদ দেওয়া হয়েছে", - "checksCount": "{{count}} চেক", + "passed": "{{displayCount}} পাস হয়েছে", + "failed": "{{displayCount}} ব্যর্থ হয়েছে", + "pending": "{{displayCount}} মুলতুবি", + "skipped": "{{displayCount}} বাদ দেওয়া হয়েছে", + "checksCount": "{{displayCount}} চেক", "checkDetails": "চেক বিবরণ", "pullRequest": "পুল রিকোয়েস্ট" }, @@ -459,9 +459,9 @@ "pendingComment_one": "মুলতুবি মন্তব্য", "pendingComment": "মুলতুবি মন্তব্য", "pendingComment_other": "মুলতুবি মন্তব্য", - "submitCountOfTotal": "{{totalCount}}-এর মধ্যে {{freshCount}} মন্তব্য জমা দিন", + "submitCountOfTotal": "{{displayTotalCount}}-এর মধ্যে {{displayFreshCount}} মন্তব্য জমা দিন", "submitReview": "রিভিউ জমা দিন", - "partialPostedMessage": "{{freshCount}} মন্তব্য পোস্ট হয়েছে। {{staleCount}} মন্তব্য পুরাতন কমিটে নির্দেশ করে এবং আপনার সারিতে রয়ে গেছে।" + "partialPostedMessage": "{{displayFreshCount}} মন্তব্য পোস্ট হয়েছে। {{displayStaleCount}} মন্তব্য পুরাতন কমিটে নির্দেশ করে এবং আপনার সারিতে রয়ে গেছে।" }, "reconnectNotice": { "title": "GitHub সংযোগের মেয়াদ শেষ হয়েছে", @@ -580,7 +580,8 @@ "agents": "এজেন্ট", "profile": "প্রোফাইল", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ট্যাব, {{total}}-এর মধ্যে {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "সাম্প্রতিক", "common": "সাধারণ", "reactWith": "{{reaction}} দিয়ে প্রতিক্রিয়া দিন", - "accessibility": "{{emoji}} প্রতিক্রিয়া, {{count}}" + "accessibility": "{{emoji}} প্রতিক্রিয়া, {{displayCount}}" }, "composer": { "replyingTo": "উত্তর দেওয়া হচ্ছে", @@ -650,7 +651,7 @@ "imageUnavailable": "ছবি অনুপলব্ধ", "openFailed": "সংযুক্তি খোলা যায়নি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।", "attachFailed": "ফাইল সংযুক্ত করা ব্যর্থ হয়েছে", - "limit": "আপনি সর্বোচ্চ {{count}}টি ফাইল সংযুক্ত করতে পারেন।", + "limit": "আপনি সর্বোচ্চ {{displayCount}}টি ফাইল সংযুক্ত করতে পারেন।", "sizeRejection": "{{filename}} {{limit}} সংযুক্তি সীমা অতিক্রম করেছে।", "unreadable": "{{filename}} পড়া যায়নি।", "pastedImage": "পেস্ট করা ছবিটি", @@ -740,11 +741,12 @@ "yourStandardMonthlyPrice": "আপনার স্ট্যান্ডার্ড মাসিক মূল্য", "perMonth": "/মাস", "earlybirdAccessUntil": "{{date}} পর্যন্ত আর্লিবার্ড অ্যাক্সেস", - "earlybirdEnding": "আর্লিবার্ড শেষ হচ্ছে: {{days}} দিন বাকি", + "earlybirdEnding": "আর্লিবার্ড শেষ হচ্ছে: {{remaining}}", "paymentPastDue": "পেমেন্ট মেয়াদোত্তীর্ণ। আপনার পেমেন্ট পদ্ধতি আপডেট করুন।", "subscriptionCancels": "সাবস্ক্রিপশন বাতিল হয় {{date}}", - "trialDaysRemaining": "ট্রায়াল: {{days}} দিন বাকি", - "trialEndingSoon": "ট্রায়াল শীঘ্রই শেষ হচ্ছে: {{days}}" + "trialDaysRemaining": "ট্রায়াল: {{remaining}} বাকি", + "trialEndingSoon": "ট্রায়াল শীঘ্রই শেষ হচ্ছে: {{remaining}}", + "lessThanOneDay": "1 দিনেরও কম" }, "changelog": { "title": "নতুন কী", @@ -996,7 +998,7 @@ "stalledTitle": "কিছু আটকে গেছে", "stalledBody": "আমরা {{name}} সেটআপ করা শেষ করতে পারিনি। আবার চেষ্টা করুন, বা এটি চলতে থাকলে hi@kilo.ai ইমেল করুন।", "timeoutTitle": "আশা করা সময়ের চেয়ে বেশি সময় নিচ্ছে", - "timeoutBody": "{{name}} এর সেটআপ স্বাভাবিকের চেয়ে বেশি সময় নিচ্ছে ({{minutes}} মিনিটের বেশি)।", + "timeoutBody": "{{name}} এর সেটআপ স্বাভাবিকের চেয়ে বেশি সময় নিচ্ছে ({{displayMinutes}} মিনিটের বেশি)।", "continueInBackground": "পটভূমিতে চালিয়ে যান", "settingUp": "{{name}} সেটআপ করা হচ্ছে", "finishingSetup": "সেটআপ শেষ করা হচ্ছে", @@ -1287,7 +1289,7 @@ "mergeGate": "মার্জ গেট", "repositories": "রিপোজিটরি", "allRepositories": "সব রিপোজিটরি", - "nSelected": "{{count}}টি নির্বাচিত", + "nSelected": "{{displayCount}}টি নির্বাচিত", "reviewMemory": "পর্যালোচনা মেমরি", "proposedReviewMdGuidance": "প্রস্তাবিত REVIEW.md নির্দেশনা" }, @@ -1391,14 +1393,14 @@ "analyzed": "বিশ্লেষণ করা হয়েছে", "exploitabilityReasoning": "শোষণযোগ্যতার যুক্তি", "suggestedFix": "প্রস্তাবিত সমাধান", - "whereFound": "যেখানে এটি পাওয়া গেছে ({{count}})", + "whereFound": "যেখানে এটি পাওয়া গেছে ({{displayCount}})", "fullReport": "সম্পূর্ণ তৈরি রিপোর্ট", "unknown": "অজানা", "yes": "হ্যাঁ", "no": "না" }, "dashboard": { - "findingsCount": "{{count}}টি ফাইন্ডিং", + "findingsCount": "{{displayCount}}টি ফাইন্ডিং", "notMeasured": "পরিমাপ করা হয়নি", "actFirst": "আগে পদক্ষেপ নিন", "slaPosture": "SLA অবস্থা", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "রিপোজিটরি কর্মপরিকল্পনা", "noOpenFindings": "কোনো খোলা ফাইন্ডিং মনোযোগের প্রয়োজন নেই", "deadlineToday": "আজ ডেডলাইন পৌঁছেছে", - "daysOverdue": "{{count}} দিন বিলম্বিত", + "daysOverdue": "{{displayCount}} দিন বিলম্বিত", "withinDeadline": "ডেডলাইনের মধ্যে", "criticalOverdue": "ক্রিটিক্যাল বিলম্বিত", "highOverdue": "উচ্চ বিলম্বিত", @@ -1435,6 +1437,27 @@ "syncQueued": "সিঙ্ক সারিতে", "syncStatusUnavailable": "সিঙ্ক অবস্থা অনুপলব্ধ" }, + "dashboardMetrics": { + "openFindings": "খোলা ফাইন্ডিং", + "openFindingsDetail": "{{critical}} ক্রিটিক্যাল, {{high}} উচ্চ", + "confirmedExploitable": "নিশ্চিতভাবে শোষণযোগ্য", + "confirmedExploitableDetail": "বিশ্লেষণ দ্বারা প্রকল্প ঝুঁকি নিশ্চিত হয়েছে", + "needsReview": "আপনার পর্যালোচনা প্রয়োজন", + "needsReviewDetail": "মানুষের সিদ্ধান্ত প্রয়োজন", + "analysisIncomplete": "বিশ্লেষণ সম্পূর্ণ নয়", + "analysisIncompleteDetail": "প্রকল্প ঝুঁকি এখনও অজানা", + "slaCompliance": "SLA মেনে চলা", + "notMeasured": "পরিমাপ করা হয়নি", + "withinDeadlineDetail": "ডেডলাইনের মধ্যে {{total}}-এর মধ্যে {{within}}", + "noDeadlineData": "এখনও কোনো ফাইন্ডিংয়ের SLA ডেডলাইন নেই", + "deadlinePassed": "ডেডলাইন পেরিয়ে গেছে", + "deadlinePassedDetail": "{{critical}} ক্রিটিক্যাল, {{high}} উচ্চ", + "dueThisWeek": "এই সপ্তাহে নির্ধারিত", + "dueThisWeekDetail": "{{exploitable}} নিশ্চিতভাবে শোষণযোগ্য", + "noDeadline": "কোনো ডেডলাইন নেই", + "reviewSlaAssignment": "SLA নিয়োগ পর্যালোচনা করুন", + "allOpenFindingsTracked": "সব খোলা ফাইন্ডিং ট্র্যাক করা হয়" + }, "dismiss": { "title": "ফাইন্ডিং খারিজ করুন", "submit": "ফাইন্ডিং খারিজ করুন", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} বিশ্লেষণ", "automation": "অটোমেশন", "automationAllOff": "সব বন্ধ", - "automationCount": "3টির মধ্যে {{count}}টি সক্রিয়", + "automationCount": "3টির মধ্যে {{displayCount}}টি সক্রিয়", "notifications": "বিজ্ঞপ্তি", - "notificationsCount": "2টির মধ্যে {{count}}টি সক্রিয়", + "notificationsCount": "2টির মধ্যে {{displayCount}}টি সক্রিয়", "slaPolicy": "SLA নীতি", "disabledNoManage": "সিকিউরিটি এজেন্ট নিষ্ক্রিয়। শুধুমাত্র সংস্থার মালিক এবং বিলিং ম্যানেজাররা এটি চালু করতে পারেন।", "disabledNoRepo": "সিকিউরিটি এজেন্ট সক্রিয় করার আগে অন্তত একটি রিপোজিটরি নির্বাচন করুন।", @@ -1524,7 +1547,7 @@ "openPullRequest": "pull request{{number}} খুলুন", "openDraftPullRequest": "ড্রাফ্ট pull request{{number}} খুলুন", "progress": "অগ্রগতি", - "attemptHistory": "প্রচেষ্টার ইতিহাস ({{count}})", + "attemptHistory": "প্রচেষ্টার ইতিহাস ({{displayCount}})", "attemptNumber": "প্রচেষ্টা #{{number}}", "startedBy": "শুরু করেছে", "model": "মডেল", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "টোডো পড়ুন", "updateTodos": "টোডো আপডেট করুন", - "linesBadge": "{{count}}টি লাইন", - "filesBadge": "{{count}}টি ফাইল", - "matchesBadge": "{{count}}টি ম্যাচ" + "linesBadge": "{{displayCount}}টি লাইন", + "filesBadge": "{{displayCount}}টি ফাইল", + "matchesBadge": "{{displayCount}}টি ম্যাচ" }, "readToolMarkdown": { "linesTruncated": "লাইন {{start}}–{{end}} (ছোট করা হয়েছে)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "এই প্রতিক্রিয়া রিপোর্ট করা যায় না।", "reportAiResponseSubmitted": "রিপোর্ট জমা দেওয়া হয়েছে। রসিদ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "বিস্তারিত অনুপলব্ধ", "textDisplay": "টেক্সট প্রদর্শন", @@ -1999,7 +2026,7 @@ "preparationComplete": "প্রস্তুতি সম্পন্ন", "preparationFailed": "প্রস্তুতি ব্যর্থ", "setupCommand": "সেটআপ কমান্ড {{index}}", - "setupCommandOf": "{{count}}-এর মধ্যে সেটআপ কমান্ড {{index}}" + "setupCommandOf": "{{displayCount}}-এর মধ্যে সেটআপ কমান্ড {{index}}" }, "permissionCard": { "title": "অনুমতি প্রয়োজন", @@ -2036,7 +2063,7 @@ "submissionFailed": "জমা দেওয়া ব্যর্থ হয়েছে। আবার চেষ্টা করুন।", "questionAnnouncement": "এজেন্টের আপনার ইনপুট প্রয়োজন। আপনি উত্তর দেওয়ার সময় কম্পোজার বিরতিতে আছে।", "permissionAnnouncement": "এজেন্টের চালিয়ে যাওয়ার অনুমতি প্রয়োজন। আপনি সিদ্ধান্ত নেওয়ার সময় কম্পোজার বিরতিতে আছে।", - "positionHint": "({{count}}-এর মধ্যে 1)", + "positionHint": "({{displayCount}}-এর মধ্যে 1)", "movedPastPrompt": "এজেন্ট এই প্রম্পটটি অতিক্রম করেছে। সেশন চালু হলে এই কার্ডটি বন্ধ হবে।", "waitingForAnswer": "এজেন্ট আপনার উত্তরের জন্য অপেক্ষা করছে। এই প্রশ্নটি খোলা থাকলে, এজেন্টে আপনার বার্তা বিরতিতে থাকে।", "waitingForPermission": "এজেন্ট অনুমতির জন্য অপেক্ষা করছে। এই অনুরোধটি খোলা থাকলে, এজেন্টে আপনার বার্তা বিরতিতে থাকে।" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "ক্যামেরা অ্যাক্সেস অক্ষম", "cameraAccessMessage": "ছবি তোলার জন্য সেটিংসে ক্যামেরা অ্যাক্সেস অনুমতি দিন।", "couldNotOpenPhotoPicker": "ফটো পিকার খোলা যায়নি। Kilo পুনরায় চালু করুন এবং আবার চেষ্টা করুন।", - "maxFilesAllowed": "সর্বাধিক {{count}}টি ফাইল অনুমোদিত", + "maxFilesAllowed": "সর্বাধিক {{displayCount}}টি ফাইল অনুমোদিত", "onlyAddingFiles": "{{total}} ফাইলের মধ্যে শুধু {{accepted}} যোগ করা হচ্ছে (সর্বাধিক {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "খরচ {{cost}}", "costSuffix": ", খরচ {{cost}}", "tokensWindowUnavailable": "কনটেক্সট {{used}} টোকেন, উইন্ডো অনুপলব্ধ", - "tokensUsage": "কনটেক্সট {{window}} টোকেনের মধ্যে {{used}} ব্যবহৃত, {{percentage}}% ব্যবহৃত", + "tokensUsage": "কনটেক্সট {{window}} টোকেনের মধ্যে {{used}} ব্যবহৃত, {{percentage}} ব্যবহৃত", "title": "কনটেক্সট ব্যবহার", "used": "ব্যবহৃত", "remaining": "অবশিষ্ট", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "ব্যবহার সর্বশেষ সম্পন্ন সহায়ক উত্তরের প্রতিফলন করে।", "tokenUsage": "টোকেন ব্যবহার", "cacheRate": "ক্যাশের হার", - "modelsCount": "মডেল ({{count}})", + "modelsCount": "মডেল ({{displayCount}})", "tokenTotalsNote": "টোকেন মোট শুধুমাত্র এই সেশনটি কভার করে এবং সাবএজেন্ট/চাইল্ড-সেশন টোকেন বাদ দেয়।", "subagents": "সাবএজেন্ট", "subagentsDescription": "চাইল্ড সেশন থেকে অবশিষ্ট খরচ", @@ -2373,7 +2400,7 @@ "connectedCli": "একটি সংযুক্ত CLI-তে", "newSessionOn": "{{name}}-এ নতুন সেশন", "noMatchingSessions": "কোনো মিলে যাওয়া সেশন নেই।", - "onlyFirstFilesAttached": "শুধুমাত্র প্রথম {{count}}টি ফাইল সংযুক্ত হবে।", + "onlyFirstFilesAttached": "শুধুমাত্র প্রথম {{displayCount}}টি ফাইল সংযুক্ত হবে।", "staleMessage": "এই শেয়ারটি আর উপলব্ধ নেই।", "retryableMessage": "আপনার সেশন লোড করা যায়নি।", "emptyMessage": "এখনো কোনো সেশন নেই — এটি পাঠাতে একটি নতুন শুরু করুন।", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "এই Apple Account-এ Kilo Pass একটি ভিন্ন Kilo অ্যাকাউন্টের। এটি পরিচালনা করতে সেই Kilo অ্যাকাউন্টে সাইন ইন করুন।", "alreadySubscribed": "আপনার ইতিমধ্যে একটি Kilo Pass সাবস্ক্রিপশন আছে।", "purchaseUnavailable": "Kilo Pass ক্রয় এখন উপলব্ধ নয়।", - "tierCredits": "${{amount}} ক্রেডিট", + "tierCredits": "{{amount}} ক্রেডিট", "perMonth": "{{price}}/মাস", "verifyPurchaseFailed": "আপনার ক্রয় যাচাই করা যায়নি। আপনার সংযোগ পরীক্ষা করুন এবং আবার চেষ্টা করুন।", "productsCouldNotLoad": "Kilo Pass পণ্য App Store থেকে লোড করা যায়নি।", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store সাবস্ক্রিপশন ব্যবস্থাপনা খুলতে ব্যর্থ হয়েছে।", "kiloPassSetup": "Kilo Pass সেটআপ", "subscriptionHeaderDescription": "একটি মাসিক সাবস্ক্রিপশন যা Kilo App-এ AI কোডিং সেশন চালানোর জন্য আপনার Kilo ব্যালেন্সে ক্রেডিট যোগ করে — Cloud Agents, রিমোট সেশন এবং KiloClaw চ্যাট।", - "tierDescription": "Kilo App ব্যবহারের জন্য মাসিক ${{price}} প্রদত্ত ক্রেডিট যোগ করা হয়।", + "tierDescription": "Kilo App ব্যবহারের জন্য মাসিক {{price}} প্রদত্ত ক্রেডিট যোগ করা হয়।", "subscribe": "সাবস্ক্রাইব", "subscribeDescription": "বোনাস অগ্রগতি সহ মাসিক ক্রেডিট", "manage": "পরিচালনা করুন", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass অপেক্ষমাণ", "statusCanceling": "Kilo Pass বাতিল হচ্ছে", "statusPastDue": "Kilo Pass বকেয়া", - "monthlyCredits": "${{credits}} মাসিক ক্রেডিট", + "monthlyCredits": "{{credits}} মাসিক ক্রেডিট", "ends": "{{date}} শেষ হয়", "periodEnd": "পিরিয়ড শেষ", "managedOnGooglePlay": "Google Play-তে পরিচালিত", diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index 7a831aa52d..0ed4802d5a 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -206,11 +206,11 @@ "loadingLines": "Učitavanje {{loaded}} od {{total}} linija…", "expandContext": "Proširi kontekst", "expandMoreContext": "Proširi više konteksta", - "expandLines": "Proširi {{count}} linija ({{start}}–{{end}})", - "expandMoreLines": "Proširi još {{count}} linija ({{start}}–{{end}})", - "expandLinesOfContext": "Proširi {{count}} linija konteksta", + "expandLines": "Proširi {{displayCount}} linija ({{start}}–{{end}})", + "expandMoreLines": "Proširi još {{displayCount}} linija ({{start}}–{{end}})", + "expandLinesOfContext": "Proširi {{displayCount}} linija konteksta", "expandAll": "Proširi sve", - "expandAllLines": "Proširi svih {{count}} linija", + "expandAllLines": "Proširi svih {{displayCount}} linija", "loadingMoreFiles": "Učitavanje više datoteka…", "retryLoadingNextPage": "Pokušaj ponovo učitati sljedeću stranicu", "failedToLoadMoreFiles": "Učitavanje više datoteka nije uspjelo — dodirnite za ponovni pokušaj", @@ -227,7 +227,9 @@ "fileLoadedOfTotalCount_other": "Učitano {{displayCount}} datoteka od {{total}}", "filesStillLoading": "Datoteke se još učitavaju. Prevucite za osvježavanje.", "goToOverview": "Idi na Pregled", - "goToOverviewTab": "Idi na karticu Pregled" + "goToOverviewTab": "Idi na karticu Pregled", + "fileLoadedCount_few": "Učitane {{displayCount}} datoteke", + "fileLoadedOfTotalCount_few": "Učitane {{displayCount}} datoteke od {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ nema novog reda na kraju datoteke", @@ -301,7 +303,7 @@ "closeReactions": "Zatvori reakcije", "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakciju", - "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcija, {{displayCount}} {{countLabel}}", "reaction_one": "reakcija", "reaction": "reakcije", "reaction_other": "reakcije", @@ -353,10 +355,12 @@ "noDiscussionDescription": "Nema niti pregleda niti komentara razgovora na ovom pull requestu.", "reviewFiles": "Pregledaj datoteke", "quotedDiffSnippet": "Citirani diff isječak", - "moreLinesAbove": "… {{count}} više linija iznad", + "moreLinesAbove": "… {{displayCount}} više linija iznad", "termsAcceptRequired": "Morate prihvatiti Uslove korištenja da biste objavili.", "termsOutdatedCopy": "Uslovi korištenja su se promijenili. Ponovo otvorite ovaj ekran da prihvatite najnoviju verziju.", - "termsCheckRetryCopy": "Provjera Uslova korištenja nije uspjela. Provjerite vezu i pokušajte ponovo." + "termsCheckRetryCopy": "Provjera Uslova korištenja nije uspjela. Provjerite vezu i pokušajte ponovo.", + "comment_few": "{{displayCount}} komentara", + "reaction_few": "reakcije" }, "couldNotOpenGitHubAppSettings": "Postavke GitHub aplikacije se nisu mogle otvoriti", "installKiloGitHubApp": "Instaliraj Kilo GitHub aplikaciju", @@ -395,11 +399,11 @@ "retryChecks": "Pokušaj ponovo provjere", "viewOnGitHub": "Pogledaj PR na GitHubu", "noChecksReported": "Nijedna provjera nije prijavljena", - "passed": "{{count}} prošlo", - "failed": "{{count}} neuspjelo", - "pending": "{{count}} na čekanju", - "skipped": "{{count}} preskočeno", - "checksCount": "{{count}} provjera", + "passed": "{{displayCount}} prošlo", + "failed": "{{displayCount}} neuspjelo", + "pending": "{{displayCount}} na čekanju", + "skipped": "{{displayCount}} preskočeno", + "checksCount": "{{displayCount}} provjera", "checkDetails": "detalji provjere", "pullRequest": "pull request" }, @@ -459,9 +463,10 @@ "pendingComment_one": "komentar na čekanju", "pendingComment": "komentari na čekanju", "pendingComment_other": "komentari na čekanju", - "submitCountOfTotal": "Pošalji {{freshCount}} od {{totalCount}} komentara", + "submitCountOfTotal": "Pošalji {{displayFreshCount}} od {{displayTotalCount}} komentara", "submitReview": "Pošalji pregled", - "partialPostedMessage": "Poslano {{freshCount}} komentar(a). {{staleCount}} komentar(a) se odnosi na stariji commit i ostali su u vašem redu." + "partialPostedMessage": "Poslano {{displayFreshCount}} komentar(a). {{displayStaleCount}} komentar(a) se odnosi na stariji commit i ostali su u vašem redu.", + "pendingComment_few": "čekajuća komentara" }, "reconnectNotice": { "title": "GitHub veza je istekla", @@ -488,7 +493,9 @@ "commit_other": "commits", "file_one": "datoteka", "file": "datoteke", - "file_other": "datoteke" + "file_other": "datoteke", + "commit_few": "commita", + "file_few": "datoteke" }, "pendingComment": { "editOutdatedA11y": "Uredi zastarjeli komentar na čekanju na {{location}}", @@ -580,7 +587,8 @@ "agents": "Agenti", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, kartica, {{position}} od {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +629,7 @@ "recent": "Nedavno", "common": "Uobičajeno", "reactWith": "Reaguj s {{reaction}}", - "accessibility": "{{emoji}} reakcija, {{count}}" + "accessibility": "{{emoji}} reakcija, {{displayCount}}" }, "composer": { "replyingTo": "Odgovaranje na", @@ -650,7 +658,7 @@ "imageUnavailable": "Slika nedostupna", "openFailed": "Prilog se nije mogao otvoriti. Provjerite vezu i pokušajte ponovo.", "attachFailed": "Prilaganje datoteke nije uspjelo", - "limit": "Možete priložiti do {{count}} datoteka.", + "limit": "Možete priložiti do {{displayCount}} datoteka.", "sizeRejection": "{{filename}} premašuje ograničenje priloga od {{limit}}.", "unreadable": "{{filename}} se nije mogla pročitati.", "pastedImage": "zalijepljena slika", @@ -700,7 +708,8 @@ "someone": "Neko", "typing_one": "{{name}} kuca...", "typing": "{{names}} kucaju...", - "typing_other": "{{names}} kucaju..." + "typing_other": "{{names}} kucaju...", + "typing_few": "{{names}} kucaju..." }, "botStatus": { "online": "Na mreži", @@ -740,11 +749,12 @@ "yourStandardMonthlyPrice": "vaša standardna mjesečna cijena", "perMonth": "/mjesečno", "earlybirdAccessUntil": "Earlybird pristup do {{date}}", - "earlybirdEnding": "Earlybird prestaje: preostalo {{days}} dana", + "earlybirdEnding": "Earlybird prestaje: {{remaining}}", "paymentPastDue": "Plaćanje je u docnji. Ažurirajte način plaćanja.", "subscriptionCancels": "Pretplata se otkazuje {{date}}", - "trialDaysRemaining": "Proba: preostalo {{days}} dana", - "trialEndingSoon": "Proba uskoro prestaje: {{days}}" + "trialDaysRemaining": "Proba: preostalo {{remaining}}", + "trialEndingSoon": "Proba uskoro prestaje: {{remaining}}", + "lessThanOneDay": "Manje od 1 dana" }, "changelog": { "title": "Šta je novo", @@ -996,7 +1006,7 @@ "stalledTitle": "Nešto je zapelo", "stalledBody": "Nismo uspjeli završiti podešavanje za {{name}}. Pokušajte ponovo ili pošaljite e-poštu na hi@kilo.ai ako se ovo nastavi.", "timeoutTitle": "Traje duže nego što se očekivalo", - "timeoutBody": "Podešavanje za {{name}} traje duže nego uobičajeno (preko {{minutes}} minuta).", + "timeoutBody": "Podešavanje za {{name}} traje duže nego uobičajeno (preko {{displayMinutes}} minuta).", "continueInBackground": "Nastavi u pozadini", "settingUp": "Podešavanje {{name}}", "finishingSetup": "Završavanje podešavanja", @@ -1071,7 +1081,8 @@ "openUnread_other": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", "open": "Otvori {{name}}", "openSettings": "Otvori postavke za {{name}}", - "fixOnKiloAi": "Popravi na kilo.ai: {{label}}" + "fixOnKiloAi": "Popravi na kilo.ai: {{label}}", + "openUnread_few": "Otvori {{name}}, {{displayCount}} nepročitane poruke" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1298,7 @@ "mergeGate": "Prag spajanja", "repositories": "Repozitorije", "allRepositories": "Sve repozitorije", - "nSelected": "{{count}} odabrano", + "nSelected": "{{displayCount}} odabrano", "reviewMemory": "Pamćenje pregleda", "proposedReviewMdGuidance": "Predložene REVIEW.md smjernice" }, @@ -1367,7 +1378,8 @@ "severityAll": "Sve ozbiljnosti", "confidenceHighOnly": "Samo visoka pouzdanost", "confidenceMediumOrHigher": "Srednja ili viša", - "confidenceAny": "Bilo koja pouzdanost" + "confidenceAny": "Bilo koja pouzdanost", + "queued_few": "{{displayCount}} postojeća nalaza su stavljena u red za analizu." }, "analysis": { "couldNotLoad": "Nije moguće učitati analizu", @@ -1391,14 +1403,14 @@ "analyzed": "Analizirano", "exploitabilityReasoning": "Obrazloženje iskoristivosti", "suggestedFix": "Predloženo rješenje", - "whereFound": "Gdje je ovo pronađeno ({{count}})", + "whereFound": "Gdje je ovo pronađeno ({{displayCount}})", "fullReport": "Puni generirani izvještaj", "unknown": "Nepoznato", "yes": "Da", "no": "Ne" }, "dashboard": { - "findingsCount": "{{count}} nalaza", + "findingsCount": "{{displayCount}} nalaza", "notMeasured": "Nije izmjereno", "actFirst": "Djeluj prvo", "slaPosture": "SLA postura", @@ -1407,7 +1419,7 @@ "repositoryActionPlan": "Akcijski plan repozitorija", "noOpenFindings": "Nijedan otvoreni nalaz ne zahtijeva pažnju", "deadlineToday": "Rok dosegnut danas", - "daysOverdue": "{{count}} dana zakašnjenja", + "daysOverdue": "{{displayCount}} dana zakašnjenja", "withinDeadline": "U roku", "criticalOverdue": "Kritično zakašnjelo", "highOverdue": "Visoko zakašnjelo", @@ -1435,6 +1447,27 @@ "syncQueued": "Sinkronizacija u redu", "syncStatusUnavailable": "Status sinkronizacije nedostupan" }, + "dashboardMetrics": { + "openFindings": "Otvoreni nalazi", + "openFindingsDetail": "{{critical}} kritično, {{high}} visoko", + "confirmedExploitable": "Potvrđeno iskoristivo", + "confirmedExploitableDetail": "Rizik projekta potvrđen analizom", + "needsReview": "Treba vaš pregled", + "needsReviewDetail": "Potrebna je ljudska odluka", + "analysisIncomplete": "Analiza nije dovršena", + "analysisIncompleteDetail": "Rizik projekta još je nepoznat", + "slaCompliance": "Usklađenost sa SLA", + "notMeasured": "Nije izmjereno", + "withinDeadlineDetail": "{{within}} od {{total}} u roku", + "noDeadlineData": "Jo nijedan nalaz nema SLA rok", + "deadlinePassed": "Rok je prošao", + "deadlinePassedDetail": "{{critical}} kritično, {{high}} visoko", + "dueThisWeek": "Rok je ovaj tjedan", + "dueThisWeekDetail": "{{exploitable}} potvrđeno iskoristivo", + "noDeadline": "Nema roka", + "reviewSlaAssignment": "Pregledajte SLA dodjelu", + "allOpenFindingsTracked": "Svi otvoreni nalazi se prate" + }, "dismiss": { "title": "Odbaci nalaz", "submit": "Odbaci nalaz", @@ -1500,13 +1533,14 @@ "analysisModeSubtitle": "{{mode}} analiza", "automation": "Automatizacija", "automationAllOff": "Sve isključeno", - "automationCount": "{{count}} od 3 omogućeno", + "automationCount": "{{displayCount}} od 3 omogućeno", "notifications": "Obavijesti", - "notificationsCount": "{{count}} od 2 omogućeno", + "notificationsCount": "{{displayCount}} od 2 omogućeno", "slaPolicy": "SLA pravila", "disabledNoManage": "Security Agent je onemogućen. Samo vlasnici organizacije i upravitelji naplate mogu ga uključiti.", "disabledNoRepo": "Odaberite barem jedan repozitorij prije omogućavanja Security Agent.", - "disabledPrompt": "Uključite Security Agent za sinkronizaciju Dependabot upozorenja, odabir repozitorija i konfiguraciju automatizacije." + "disabledPrompt": "Uključite Security Agent za sinkronizaciju Dependabot upozorenja, odabir repozitorija i konfiguraciju automatizacije.", + "repositoriesCount_few": "Odabrana {{displayCount}} repozitorija" }, "remediation": { "cancellationRequested": "Zatraženo otkazivanje", @@ -1524,7 +1558,7 @@ "openPullRequest": "Otvori pull request{{number}}", "openDraftPullRequest": "Otvori nacrt pull requesta{{number}}", "progress": "Napredak", - "attemptHistory": "Povijest pokušaja ({{count}})", + "attemptHistory": "Povijest pokušaja ({{displayCount}})", "attemptNumber": "Pokušaj #{{number}}", "startedBy": "Započeo/la", "model": "Model", @@ -1734,7 +1768,9 @@ "cent_other": "centi", "dollar_one": "dolar", "dollar": "dolara", - "dollar_other": "dolara" + "dollar_other": "dolara", + "cent_few": "centa", + "dollar_few": "dolara" }, "githubInstall": { "couldNotOpenTitle": "Nije moguće otvoriti GitHub", @@ -1830,7 +1866,8 @@ "partRenderer": { "updatedFileCount_one": "Ažurirano {{displayCount}} datoteka", "updatedFileCount": "Ažurirano {{displayCount}} datoteka", - "updatedFileCount_other": "Ažurirano {{displayCount}} datoteka" + "updatedFileCount_other": "Ažurirano {{displayCount}} datoteka", + "updatedFileCount_few": "Ažurirane {{displayCount}} datoteke" }, "toolPatch": { "operationAdded": "Dodano", @@ -1855,9 +1892,9 @@ "toolTask": "zadatak", "readTodos": "Pročitaj zadatke", "updateTodos": "Ažuriraj zadatke", - "linesBadge": "{{count}} redaka", - "filesBadge": "{{count}} datoteka", - "matchesBadge": "{{count}} podudaranja" + "linesBadge": "{{displayCount}} redaka", + "filesBadge": "{{displayCount}} datoteka", + "matchesBadge": "{{displayCount}} podudaranja" }, "readToolMarkdown": { "linesTruncated": "redaka {{start}}–{{end}} (skraćeno)", @@ -1941,6 +1978,10 @@ "reportAiResponseFailedTerminal": "Ovaj odgovor se ne može prijaviti.", "reportAiResponseSubmitted": "Prijava poslana. Potvrda {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detalji nedostupni", "textDisplay": "Prikaz teksta", @@ -1999,7 +2040,7 @@ "preparationComplete": "Priprema dovršena", "preparationFailed": "Priprema nije uspjela", "setupCommand": "Naredba postavljanja {{index}}", - "setupCommandOf": "Naredba postavljanja {{index}} od {{count}}" + "setupCommandOf": "Naredba postavljanja {{index}} od {{displayCount}}" }, "permissionCard": { "title": "Potrebna dozvola", @@ -2036,7 +2077,7 @@ "submissionFailed": "Slanje nije uspjelo. Pokušajte ponovo.", "questionAnnouncement": "Agent treba vaš unos. Kompozitor je pauziran dok odgovarate.", "permissionAnnouncement": "Agent treba dozvolu za nastavak. Kompozitor je pauziran dok odlučujete.", - "positionHint": "(1 od {{count}})", + "positionHint": "(1 od {{displayCount}})", "movedPastPrompt": "Agent je prošao ovaj upit. Ova kartica će se zatvoriti kada se sesija nastavi.", "waitingForAnswer": "Agent čeka vaš odgovor. Dok je ovo pitanje otvoreno, vaša poruka agentu je pauzirana.", "waitingForPermission": "Agent čeka dozvolu. Dok je ovaj zahtjev otvoren, vaša poruka agentu je pauzirana." @@ -2076,7 +2117,8 @@ "omitted_other": "{{displayCount}} ranijih stavki iz ove sesije nije moglo biti prikazano.", "couldNotLoad": "Ranije poruke nisu mogle biti učitane.", "unavailable": "Ranije poruke nisu dostupne.", - "tooLarge": "Ranije poruke su prevelike za učitavanje." + "tooLarge": "Ranije poruke su prevelike za učitavanje.", + "omitted_few": "{{displayCount}} ranije stavke iz ove sesije nije moglo biti prikazano." }, "markdownTable": { "viewTable": "Pogledaj tabelu", @@ -2088,7 +2130,9 @@ "rowCount_one": "red", "rowCount": "redovi", "rowCount_other": "redovi", - "opensFullScreen": "otvara preko cijelog ekrana" + "opensFullScreen": "otvara preko cijelog ekrana", + "columnCount_few": "kolone", + "rowCount_few": "reda" }, "sessionFilter": { "title": "Filtriraj sesije", @@ -2157,7 +2201,7 @@ "cameraAccessDisabled": "Pristup kameri onemogućen", "cameraAccessMessage": "Dozvolite pristup kameri u Postavkama za fotografisanje.", "couldNotOpenPhotoPicker": "Birač fotografija nije mogao biti otvoren. Restartujte Kilo i pokušajte ponovo.", - "maxFilesAllowed": "Dozvoljeno najviše {{count}} datoteka", + "maxFilesAllowed": "Dozvoljeno najviše {{displayCount}} datoteka", "onlyAddingFiles": "Dodaju se samo {{accepted}} od {{total}} datoteka (najviše {{max}})" }, "composer": { @@ -2222,7 +2266,7 @@ "costPrefix": "trošak {{cost}}", "costSuffix": ", trošak {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} tokena, prozor nedostupan", - "tokensUsage": "Kontekst {{used}} od {{window}} tokena, iskorišteno {{percentage}}%", + "tokensUsage": "Kontekst {{used}} od {{window}} tokena, iskorišteno {{percentage}}", "title": "Upotreba konteksta", "used": "Iskorišteno", "remaining": "Preostalo", @@ -2231,7 +2275,7 @@ "usageReflectsLatest": "Upotreba odražava posljednji završeni odgovor asistenta.", "tokenUsage": "Upotreba tokena", "cacheRate": "Stopa keša", - "modelsCount": "Modeli ({{count}})", + "modelsCount": "Modeli ({{displayCount}})", "tokenTotalsNote": "Zbirci tokena pokrivaju samo ovu sesiju i isključuju tokene podagenta/dječjih sesija.", "subagents": "Podagenti", "subagentsDescription": "Preostali trošak iz dječjih sesija", @@ -2243,7 +2287,8 @@ "stepsCount_one": "{{steps}} korak", "stepsCount": "{{steps}} koraka", "stepsCount_other": "{{steps}} koraka", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} koraka" }, "prBadge": { "open": "otvoreni pull request", @@ -2373,7 +2418,7 @@ "connectedCli": "Na povezanom CLI-ju", "newSessionOn": "Nova sesija na {{name}}", "noMatchingSessions": "Nema odgovarajućih sesija.", - "onlyFirstFilesAttached": "Samo prvih {{count}} datoteka bit će priloženo.", + "onlyFirstFilesAttached": "Samo prvih {{displayCount}} datoteka bit će priloženo.", "staleMessage": "Ova podjela više nije dostupna.", "retryableMessage": "Vaše sesije nisu mogle biti učitane.", "emptyMessage": "Još nema sesija — započnite novu da biste poslali ovo.", @@ -2406,7 +2451,7 @@ "otherAccountCopy": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu. Prijavite se na taj Kilo nalog da biste njime upravljali.", "alreadySubscribed": "Već imate Kilo Pass pretplatu.", "purchaseUnavailable": "Kilo Pass kupovina trenutno nije dostupna.", - "tierCredits": "${{amount}} u kreditima", + "tierCredits": "{{amount}} u kreditima", "perMonth": "{{price}}/mj", "verifyPurchaseFailed": "Vaša kupovina nije mogla biti provjerena. Provjerite svoju vezu i pokušajte ponovo.", "productsCouldNotLoad": "Kilo Pass proizvodi nisu mogli biti učitani iz App Store-a.", @@ -2417,7 +2462,7 @@ "manageFailed": "Upravljanje pretplatom u App Store-u nije moglo biti otvoreno.", "kiloPassSetup": "Podešavanje Kilo Passa", "subscriptionHeaderDescription": "Mjesečna pretplata koja dodaje kredite vašem Kilo saldu za pokretanje AI sesija kodiranja u Kilo App — Cloud Agenti, udaljene sesije i KiloClaw razgovori.", - "tierDescription": "${{price}} plaćenih kredita dodaje se mjesečno za upotrebu Kilo Appa.", + "tierDescription": "{{price}} plaćenih kredita dodaje se mjesečno za upotrebu Kilo Appa.", "subscribe": "Pretplati se", "subscribeDescription": "Mjesečni krediti s bonus napretkom", "manage": "Upravljaj", @@ -2425,7 +2470,7 @@ "statusPending": "Kilo Pass na čekanju", "statusCanceling": "Kilo Pass otkazuje", "statusPastDue": "Kilo Pass dospio", - "monthlyCredits": "${{credits}} mjesečnih kredita", + "monthlyCredits": "{{credits}} mjesečnih kredita", "ends": "Završava {{date}}", "periodEnd": "kraj razdoblja", "managedOnGooglePlay": "Upravlja se na Google Play", @@ -2667,7 +2712,8 @@ "processingNeedsReview": "Obrada treba pregled", "retry": "Pokušaj ponovo", "retryHint": "Ponovo pokušava učitavanje stanja Kilo Passa.", - "setupHint": "Otvara podešavanje Kilo Passa na webu." + "setupHint": "Otvara podešavanje Kilo Passa na webu.", + "paidSeat_few": "{{displayCount}} plaćena sjedala" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index f0320c9cfb..2d7cf54ae3 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -206,11 +206,11 @@ "loadingLines": "Carregant {{loaded}} de {{total}} línies…", "expandContext": "Expandeix el context", "expandMoreContext": "Expandeix més context", - "expandLines": "Expandeix {{count}} línies ({{start}}–{{end}})", - "expandMoreLines": "Expandeix {{count}} línies més ({{start}}–{{end}})", - "expandLinesOfContext": "Expandeix {{count}} línies de context", + "expandLines": "Expandeix {{displayCount}} línies ({{start}}–{{end}})", + "expandMoreLines": "Expandeix {{displayCount}} línies més ({{start}}–{{end}})", + "expandLinesOfContext": "Expandeix {{displayCount}} línies de context", "expandAll": "Expandeix-ho tot", - "expandAllLines": "Expandeix totes les {{count}} línies", + "expandAllLines": "Expandeix totes les {{displayCount}} línies", "loadingMoreFiles": "Carregant més fitxers…", "retryLoadingNextPage": "Torna a carregar la pàgina següent", "failedToLoadMoreFiles": "No s'han pogut carregar més fitxers — toca per tornar-ho a provar", @@ -227,7 +227,9 @@ "fileLoadedOfTotalCount_other": "S'han carregat {{displayCount}} fitxers de {{total}}", "filesStillLoading": "Els fitxers encara s'estan carregant. Estira per actualitzar.", "goToOverview": "Vés a la visió general", - "goToOverviewTab": "Vés a la pestanya de visió general" + "goToOverviewTab": "Vés a la pestanya de visió general", + "fileLoadedCount_many": "S'han carregat {{displayCount}} fitxers", + "fileLoadedOfTotalCount_many": "S'han carregat {{displayCount}} fitxers de {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ sense salt de línia al final del fitxer", @@ -301,7 +303,7 @@ "closeReactions": "Tanca les reaccions", "reactionsTitle": "Reaccions", "addReaction": "Afegeix una reacció", - "reactionPill": "{{emoji}} reacció, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reacció, {{displayCount}} {{countLabel}}", "reaction_one": "reacció", "reaction": "reaccions", "reaction_other": "reaccions", @@ -353,10 +355,12 @@ "noDiscussionDescription": "No hi ha fils de revisió ni comentaris de conversa en aquesta pull request.", "reviewFiles": "Revisa els fitxers", "quotedDiffSnippet": "Fragment de diff citat", - "moreLinesAbove": "… {{count}} línies més a dalt", + "moreLinesAbove": "… {{displayCount}} línies més a dalt", "termsAcceptRequired": "Has d'acceptar els Termes del servei per publicar.", "termsOutdatedCopy": "Els Termes del servei han canviat. Torna a obrir aquesta pantalla per acceptar la versió més recent.", - "termsCheckRetryCopy": "No s'han pogut comprovar els Termes del servei. Comprova la connexió i torna-ho a provar." + "termsCheckRetryCopy": "No s'han pogut comprovar els Termes del servei. Comprova la connexió i torna-ho a provar.", + "comment_many": "{{displayCount}} comentaris", + "reaction_many": "reaccions" }, "couldNotOpenGitHubAppSettings": "No s'ha pogut obrir la configuració de l'app de GitHub", "installKiloGitHubApp": "Instal·la l'app Kilo de GitHub", @@ -395,11 +399,11 @@ "retryChecks": "Torna a comprovar", "viewOnGitHub": "Veure la PR a GitHub", "noChecksReported": "No s'ha informat de cap comprovació", - "passed": "{{count}} superades", - "failed": "{{count}} fallides", - "pending": "{{count}} pendents", - "skipped": "{{count}} ometudes", - "checksCount": "{{count}} comprovacions", + "passed": "{{displayCount}} superades", + "failed": "{{displayCount}} fallides", + "pending": "{{displayCount}} pendents", + "skipped": "{{displayCount}} ometudes", + "checksCount": "{{displayCount}} comprovacions", "checkDetails": "detalls de la comprovació", "pullRequest": "pull request" }, @@ -459,9 +463,10 @@ "pendingComment_one": "comentari pendent", "pendingComment": "comentaris pendents", "pendingComment_other": "comentaris pendents", - "submitCountOfTotal": "Envia {{freshCount}} de {{totalCount}} comentaris", + "submitCountOfTotal": "Envia {{displayFreshCount}} de {{displayTotalCount}} comentaris", "submitReview": "Envia la revisió", - "partialPostedMessage": "S'han publicat {{freshCount}} comentari(s). {{staleCount}} comentari(s) apunten a un commit més antic i han quedat a la teva cua." + "partialPostedMessage": "S'han publicat {{displayFreshCount}} comentari(s). {{displayStaleCount}} comentari(s) apunten a un commit més antic i han quedat a la teva cua.", + "pendingComment_many": "comentaris pendents" }, "reconnectNotice": { "title": "La connexió de GitHub ha caducat", @@ -488,7 +493,9 @@ "commit_other": "commits", "file_one": "fitxer", "file": "fitxers", - "file_other": "fitxers" + "file_other": "fitxers", + "commit_many": "commits", + "file_many": "fitxers" }, "pendingComment": { "editOutdatedA11y": "Edita el comentari pendent desactualitzat a {{location}}", @@ -580,7 +587,8 @@ "agents": "Agents", "profile": "Perfil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, pestanya, {{position}} de {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +629,7 @@ "recent": "Recents", "common": "Habituals", "reactWith": "Reacciona amb {{reaction}}", - "accessibility": "{{emoji}} reacció, {{count}}" + "accessibility": "{{emoji}} reacció, {{displayCount}}" }, "composer": { "replyingTo": "Responent a", @@ -650,7 +658,7 @@ "imageUnavailable": "Imatge no disponible", "openFailed": "No s'ha pogut obrir l'adjunt. Comprova la connexió i torna-ho a provar.", "attachFailed": "No s'ha pogut adjuntar el fitxer", - "limit": "Pots adjuntar fins a {{count}} fitxers.", + "limit": "Pots adjuntar fins a {{displayCount}} fitxers.", "sizeRejection": "{{filename}} supera el límit d'adjunts de {{limit}}.", "unreadable": "No s'ha pogut llegir {{filename}}.", "pastedImage": "la imatge enganxada", @@ -700,7 +708,8 @@ "someone": "Algú", "typing_one": "{{name}} està escrivint...", "typing": "{{names}} estan escrivint...", - "typing_other": "{{names}} estan escrivint..." + "typing_other": "{{names}} estan escrivint...", + "typing_many": "{{names}} estan escrivint..." }, "botStatus": { "online": "En línia", @@ -740,11 +749,12 @@ "yourStandardMonthlyPrice": "el teu preu mensual Standard", "perMonth": "/mes", "earlybirdAccessUntil": "Accés Earlybird fins al {{date}}", - "earlybirdEnding": "Earlybird acaba: queden {{days}} dies", + "earlybirdEnding": "Earlybird acaba: {{remaining}}", "paymentPastDue": "Pagament vençut. Actualitza el teu mètode de pagament.", "subscriptionCancels": "La subscripció es cancel·la el {{date}}", - "trialDaysRemaining": "Prova: queden {{days}} dies", - "trialEndingSoon": "La prova acaba aviat: {{days}}" + "trialDaysRemaining": "Prova: queden {{remaining}}", + "trialEndingSoon": "La prova acaba aviat: {{remaining}}", + "lessThanOneDay": "Menys d'1 dia" }, "changelog": { "title": "Novetats", @@ -996,7 +1006,7 @@ "stalledTitle": "Alguna cosa s'ha encallat", "stalledBody": "No hem pogut acabar de configurar {{name}}. Torna-ho a provar, o escriu a hi@kilo.ai si això continua passant.", "timeoutTitle": "Tarda més del previst", - "timeoutBody": "La configuració de {{name}} tarda més del normal (més de {{minutes}} minuts).", + "timeoutBody": "La configuració de {{name}} tarda més del normal (més de {{displayMinutes}} minuts).", "continueInBackground": "Continua en segon pla", "settingUp": "Configurant {{name}}", "finishingSetup": "Finalitzant la configuració", @@ -1071,7 +1081,8 @@ "openUnread_other": "Obre {{name}}, {{displayCount}} missatges no llegits", "open": "Obre {{name}}", "openSettings": "Obre la configuració de {{name}}", - "fixOnKiloAi": "Corregeix a kilo.ai: {{label}}" + "fixOnKiloAi": "Corregeix a kilo.ai: {{label}}", + "openUnread_many": "Obre {{name}}, {{displayCount}} missatges no llegits" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1298,7 @@ "mergeGate": "Porta de fusió", "repositories": "Repositoris", "allRepositories": "Tots els repositoris", - "nSelected": "{{count}} seleccionats", + "nSelected": "{{displayCount}} seleccionats", "reviewMemory": "Memòria de revisió", "proposedReviewMdGuidance": "Pautes de REVIEW.md proposades" }, @@ -1367,7 +1378,8 @@ "severityAll": "Totes les severitats", "confidenceHighOnly": "Només confiança alta", "confidenceMediumOrHigher": "Mitjana o superior", - "confidenceAny": "Qualsevol confiança" + "confidenceAny": "Qualsevol confiança", + "queued_many": "{{displayCount}} resultats existents en cua per analitzar." }, "analysis": { "couldNotLoad": "No s'ha pogut carregar l'anàlisi", @@ -1391,14 +1403,14 @@ "analyzed": "Analitzat", "exploitabilityReasoning": "Raonament d'explotabilitat", "suggestedFix": "Correcció suggerida", - "whereFound": "On s'ha trobat ({{count}})", + "whereFound": "On s'ha trobat ({{displayCount}})", "fullReport": "Informe complet generat", "unknown": "Desconegut", "yes": "Sí", "no": "No" }, "dashboard": { - "findingsCount": "{{count}} resultats", + "findingsCount": "{{displayCount}} resultats", "notMeasured": "No mesurat", "actFirst": "Actua primer", "slaPosture": "Postura SLA", @@ -1407,7 +1419,7 @@ "repositoryActionPlan": "Pla d'acció del repositori", "noOpenFindings": "Cap resultat obert no requereix atenció", "deadlineToday": "Termini assolit avui", - "daysOverdue": "{{count}} dies de retard", + "daysOverdue": "{{displayCount}} dies de retard", "withinDeadline": "Dins del termini", "criticalOverdue": "Crític amb retard", "highOverdue": "Alt amb retard", @@ -1435,6 +1447,27 @@ "syncQueued": "Sincronització en cua", "syncStatusUnavailable": "Estat de sincronització no disponible" }, + "dashboardMetrics": { + "openFindings": "Resultats oberts", + "openFindingsDetail": "{{critical}} crítics, {{high}} alts", + "confirmedExploitable": "Confirmat com a explotable", + "confirmedExploitableDetail": "Risc del projecte confirmat per l'anàlisi", + "needsReview": "Requereix la teva revisió", + "needsReviewDetail": "Cal una decisió humana", + "analysisIncomplete": "Anàlisi no completada", + "analysisIncompleteDetail": "El risc del projecte encara és desconegut", + "slaCompliance": "Compliment de SLA", + "notMeasured": "No mesurat", + "withinDeadlineDetail": "{{within}} de {{total}} dins del termini", + "noDeadlineData": "Encara cap resultat no té termini SLA", + "deadlinePassed": "El termini ha passat", + "deadlinePassedDetail": "{{critical}} crítics, {{high}} alts", + "dueThisWeek": "Venç aquesta setmana", + "dueThisWeekDetail": "{{exploitable}} confirmats com a explotables", + "noDeadline": "Cap termini", + "reviewSlaAssignment": "Revisa l'assignació de SLA", + "allOpenFindingsTracked": "Tots els resultats oberts es fan seguiment" + }, "dismiss": { "title": "Descarta el resultat", "submit": "Descarta el resultat", @@ -1500,13 +1533,14 @@ "analysisModeSubtitle": "Anàlisi {{mode}}", "automation": "Automatització", "automationAllOff": "Tots desactivats", - "automationCount": "{{count}} de 3 activats", + "automationCount": "{{displayCount}} de 3 activats", "notifications": "Notificacions", - "notificationsCount": "{{count}} de 2 activats", + "notificationsCount": "{{displayCount}} de 2 activats", "slaPolicy": "Política SLA", "disabledNoManage": "Security Agent està desactivat. Només els propietaris de l'organització i els gestors de facturació poden activar-lo.", "disabledNoRepo": "Selecciona almenys un repositori abans d'activar Security Agent.", - "disabledPrompt": "Activa Security Agent per sincronitzar alertes de Dependabot, triar repositoris i configurar l'automatització." + "disabledPrompt": "Activa Security Agent per sincronitzar alertes de Dependabot, triar repositoris i configurar l'automatització.", + "repositoriesCount_many": "{{displayCount}} repositoris seleccionats" }, "remediation": { "cancellationRequested": "Cancel·lació sol·licitada", @@ -1524,7 +1558,7 @@ "openPullRequest": "Obrir la sol·licitud d'extracció{{number}}", "openDraftPullRequest": "Obrir l'esborrany de sol·licitud d'extracció{{number}}", "progress": "Progrés", - "attemptHistory": "Historial d'intents ({{count}})", + "attemptHistory": "Historial d'intents ({{displayCount}})", "attemptNumber": "Intent #{{number}}", "startedBy": "Iniciat per", "model": "Model", @@ -1734,7 +1768,9 @@ "cent_other": "cèntims", "dollar_one": "dòlar", "dollar": "dòlars", - "dollar_other": "dòlars" + "dollar_other": "dòlars", + "cent_many": "cèntims", + "dollar_many": "dòlars" }, "githubInstall": { "couldNotOpenTitle": "No s'ha pogut obrir GitHub", @@ -1830,7 +1866,8 @@ "partRenderer": { "updatedFileCount_one": "{{displayCount}} fitxer actualitzat", "updatedFileCount": "{{displayCount}} fitxers actualitzats", - "updatedFileCount_other": "{{displayCount}} fitxers actualitzats" + "updatedFileCount_other": "{{displayCount}} fitxers actualitzats", + "updatedFileCount_many": "{{displayCount}} fitxers actualitzats" }, "toolPatch": { "operationAdded": "Afegit", @@ -1855,9 +1892,9 @@ "toolTask": "tasca", "readTodos": "Llegeix els todos", "updateTodos": "Actualitza els todos", - "linesBadge": "{{count}} línies", - "filesBadge": "{{count}} fitxers", - "matchesBadge": "{{count}} coincidències" + "linesBadge": "{{displayCount}} línies", + "filesBadge": "{{displayCount}} fitxers", + "matchesBadge": "{{displayCount}} coincidències" }, "readToolMarkdown": { "linesTruncated": "línies {{start}}–{{end}} (truncades)", @@ -1941,6 +1978,10 @@ "reportAiResponseFailedTerminal": "Aquesta resposta no es pot reportar.", "reportAiResponseSubmitted": "Informe enviat. Rebut {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detalls no disponibles", "textDisplay": "Mostra del text", @@ -1999,7 +2040,7 @@ "preparationComplete": "Preparació completada", "preparationFailed": "La preparació ha fallat", "setupCommand": "Ordre de configuració {{index}}", - "setupCommandOf": "Ordre de configuració {{index}} de {{count}}" + "setupCommandOf": "Ordre de configuració {{index}} de {{displayCount}}" }, "permissionCard": { "title": "Permís necessari", @@ -2036,7 +2077,7 @@ "submissionFailed": "L'enviament ha fallat. Torna-ho a provar.", "questionAnnouncement": "L'agent necessita la teva aportació. El compositor està en pausa mentre respons.", "permissionAnnouncement": "L'agent necessita permís per continuar. El compositor està en pausa mentre decideixes.", - "positionHint": "(1 de {{count}})", + "positionHint": "(1 de {{displayCount}})", "movedPastPrompt": "L'agent ha superat aquesta sol·licitud. Aquesta targeta es tancarà quan la sessió continuï.", "waitingForAnswer": "L'agent espera la teva resposta. Mentre aquesta pregunta sigui oberta, el teu missatge a l'agent està en pausa.", "waitingForPermission": "L'agent espera un permís. Mentre aquesta petició sigui oberta, el teu missatge a l'agent està en pausa." @@ -2076,7 +2117,8 @@ "omitted_other": "{{displayCount}} elements anteriors d'aquesta sessió no s'han pogut mostrar.", "couldNotLoad": "No s'han pogut carregar els missatges anteriors.", "unavailable": "Els missatges anteriors no estan disponibles.", - "tooLarge": "Els missatges anteriors són massa grans per carregar-los." + "tooLarge": "Els missatges anteriors són massa grans per carregar-los.", + "omitted_many": "{{displayCount}} elements anteriors d'aquesta sessió no s'han pogut mostrar." }, "markdownTable": { "viewTable": "Mostra la taula", @@ -2088,7 +2130,9 @@ "rowCount_one": "fila", "rowCount": "files", "rowCount_other": "files", - "opensFullScreen": "obre la pantalla completa" + "opensFullScreen": "obre la pantalla completa", + "columnCount_many": "columnes", + "rowCount_many": "files" }, "sessionFilter": { "title": "Filtra les sessions", @@ -2157,7 +2201,7 @@ "cameraAccessDisabled": "Accés a la càmera desactivat", "cameraAccessMessage": "Permet l'accés a la càmera a Configuració per fer una foto.", "couldNotOpenPhotoPicker": "No s'ha pogut obrir el selector de fotos. Reinicia Kilo i torna-ho a provar.", - "maxFilesAllowed": "Màxim {{count}} fitxers permesos", + "maxFilesAllowed": "Màxim {{displayCount}} fitxers permesos", "onlyAddingFiles": "Només s'afegeixen {{accepted}} de {{total}} fitxers (màx. {{max}})" }, "composer": { @@ -2222,7 +2266,7 @@ "costPrefix": "cost {{cost}}", "costSuffix": ", cost {{cost}}", "tokensWindowUnavailable": "Context {{used}} tokens, finestra no disponible", - "tokensUsage": "Context {{used}} de {{window}} tokens, {{percentage}}% utilitzat", + "tokensUsage": "Context {{used}} de {{window}} tokens, {{percentage}} utilitzat", "title": "Ús del context", "used": "Utilitzat", "remaining": "Restant", @@ -2231,7 +2275,7 @@ "usageReflectsLatest": "L'ús reflecteix l'última resposta de l'assistent completada.", "tokenUsage": "Ús de tokens", "cacheRate": "Taxa de memòria cau", - "modelsCount": "Models ({{count}})", + "modelsCount": "Models ({{displayCount}})", "tokenTotalsNote": "Els totals de tokens cobreixen només aquesta sessió i excloem els tokens de subagents/sessions filles.", "subagents": "Subagents", "subagentsDescription": "Cost residual de les sessions filles", @@ -2243,7 +2287,8 @@ "stepsCount_one": "{{steps}} pas", "stepsCount": "{{steps}} passos", "stepsCount_other": "{{steps}} passos", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_many": "{{steps}} passos" }, "prBadge": { "open": "pull request oberta", @@ -2373,7 +2418,7 @@ "connectedCli": "En un CLI connectat", "newSessionOn": "Nova sessió a {{name}}", "noMatchingSessions": "No hi ha sessions coincidents.", - "onlyFirstFilesAttached": "Només s'adjuntaran els primers {{count}} fitxers.", + "onlyFirstFilesAttached": "Només s'adjuntaran els primers {{displayCount}} fitxers.", "staleMessage": "Aquest element compartit ja no està disponible.", "retryableMessage": "No s'han pogut carregar les teves sessions.", "emptyMessage": "Encara no hi ha sessions: inicia una de nova per enviar-ho.", @@ -2406,7 +2451,7 @@ "otherAccountCopy": "El Kilo Pass d'aquest Apple Account pertany a un compte de Kilo diferent. Inicieu la sessió en aquell compte de Kilo per gestionar-lo.", "alreadySubscribed": "Ja tens una subscripció de Kilo Pass.", "purchaseUnavailable": "La compra de Kilo Pass no està disponible ara mateix.", - "tierCredits": "${{amount}} en crèdits", + "tierCredits": "{{amount}} en crèdits", "perMonth": "{{price}}/mes", "verifyPurchaseFailed": "No s'ha pogut verificar la teva compra. Comprova la teva connexió i torna-ho a provar.", "productsCouldNotLoad": "No s'han pogut carregar els productes de Kilo Pass des de l'App Store.", @@ -2417,7 +2462,7 @@ "manageFailed": "No s'ha pogut obrir la gestió de la subscripció de l'App Store.", "kiloPassSetup": "Configuració de Kilo Pass", "subscriptionHeaderDescription": "Una subscripció mensual que afegeix crèdits al teu saldo de Kilo per executar sessions de programació d'IA a l'aplicació Kilo: Cloud Agents, sessions remotes i xats de KiloClaw.", - "tierDescription": "${{price}} en crèdits de pagament afegits mensualment per a l'ús de l'aplicació Kilo.", + "tierDescription": "{{price}} en crèdits de pagament afegits mensualment per a l'ús de l'aplicació Kilo.", "subscribe": "Subscriu-te", "subscribeDescription": "Crèdits mensuals amb progrés de bonificació", "manage": "Gestiona", @@ -2425,7 +2470,7 @@ "statusPending": "Kilo Pass pendent", "statusCanceling": "Kilo Pass cancel·lant", "statusPastDue": "Kilo Pass vençut", - "monthlyCredits": "${{credits}} crèdits mensuals", + "monthlyCredits": "{{credits}} crèdits mensuals", "ends": "Finalitza el {{date}}", "periodEnd": "fi del període", "managedOnGooglePlay": "Gestionat a Google Play", @@ -2667,7 +2712,8 @@ "processingNeedsReview": "El processament necessita revisió", "retry": "Torna-ho a provar", "retryHint": "Torna a provar la càrrega de l'estat de Kilo Pass.", - "setupHint": "Obre la configuració de Kilo Pass al web." + "setupHint": "Obre la configuració de Kilo Pass al web.", + "paidSeat_many": "{{displayCount}} seients de pagament" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index 710e6787be..ca552820d5 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -206,11 +206,11 @@ "loadingLines": "بارکردنی {{loaded}} لە {{total}} هێڵ…", "expandContext": "فراوانکردنی دەق", "expandMoreContext": "فراوانکردنی دەقی زیاتر", - "expandLines": "فراوانکردنی {{count}} هێڵ ({{start}}–{{end}})", - "expandMoreLines": "فراوانکردنی {{count}} هێڵی زیاتر ({{start}}–{{end}})", - "expandLinesOfContext": "فراوانکردنی {{count}} هێڵ لە دەق", + "expandLines": "فراوانکردنی {{displayCount}} هێڵ ({{start}}–{{end}})", + "expandMoreLines": "فراوانکردنی {{displayCount}} هێڵی زیاتر ({{start}}–{{end}})", + "expandLinesOfContext": "فراوانکردنی {{displayCount}} هێڵ لە دەق", "expandAll": "فراوانکردنی هەموو", - "expandAllLines": "فراوانکردنی هەموو {{count}} هێڵەکان", + "expandAllLines": "فراوانکردنی هەموو {{displayCount}} هێڵەکان", "loadingMoreFiles": "بارکردنی فایلە زیاتر…", "retryLoadingNextPage": "دووبارە هەوڵدانەوەی بارکردنی پەڕەی داهاتوو", "failedToLoadMoreFiles": "بارکردنی فایلە زیاتر شکستی هێنا — بۆ هەوڵدانەوە لێی بدە", @@ -301,7 +301,7 @@ "closeReactions": "داخستنی کاردانەوەکان", "reactionsTitle": "کاردانەوەکان", "addReaction": "زیادکردنی کاردانەوە", - "reactionPill": "{{emoji}} کاردانەوە، {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} کاردانەوە، {{displayCount}} {{countLabel}}", "reaction_one": "کاردانەوە", "reaction": "کاردانەوەکان", "reaction_other": "کاردانەوەکان", @@ -353,7 +353,7 @@ "noDiscussionDescription": "هیچ زنجیرەی پێداچوونەوە یان بۆچوونی گفتوگۆی لەسەر ئەم داواکاری ڕاکێشانە نییە.", "reviewFiles": "پێداچوونەوە بە فایلەکان", "quotedDiffSnippet": "پارچەی جیاوازی وەرگیراو", - "moreLinesAbove": "… {{count}} هێڵی زیاتر لە سەرەوە", + "moreLinesAbove": "… {{displayCount}} هێڵی زیاتر لە سەرەوە", "termsAcceptRequired": "پێویستە مەرجەکانی بەکارهێنان قبووڵ بکەیت بۆ بڵاوکردنەوە.", "termsOutdatedCopy": "مەرجەکانی بەکارهێنان گۆڕان. ئەم شاشەیە دووبارە بکەرەوە بۆ قبووڵکردنی دوایین وەشان.", "termsCheckRetryCopy": "نەتوانرا مەرجەکانی بەکارهێنان بپشکێنرێت. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەوە." @@ -395,11 +395,11 @@ "retryChecks": "دووبارە هەوڵدانەوەی پشکنینەکان", "viewOnGitHub": "بینینی PR لە GitHub", "noChecksReported": "هیچ پشکنینێک ڕاپۆرت نەکراوە", - "passed": "{{count}} تێپەڕا", - "failed": "{{count}} شکستی هێنا", - "pending": "{{count}} چاوەڕوانە", - "skipped": "{{count}} پەڕێندراوە", - "checksCount": "{{count}} پشکنین", + "passed": "{{displayCount}} تێپەڕا", + "failed": "{{displayCount}} شکستی هێنا", + "pending": "{{displayCount}} چاوەڕوانە", + "skipped": "{{displayCount}} پەڕێندراوە", + "checksCount": "{{displayCount}} پشکنین", "checkDetails": "وردەکاری پشکنین", "pullRequest": "داواکاری ڕاکێشان" }, @@ -459,9 +459,9 @@ "pendingComment_one": "بۆچوونی چاوەڕوان", "pendingComment": "بۆچوونە چاوەڕوانەکان", "pendingComment_other": "بۆچوونە چاوەڕوانەکان", - "submitCountOfTotal": "ناردنی {{freshCount}} لە {{totalCount}} بۆچوون", + "submitCountOfTotal": "ناردنی {{displayFreshCount}} لە {{displayTotalCount}} بۆچوون", "submitReview": "ناردنی پێداچوونەوە", - "partialPostedMessage": "{{freshCount}} بۆچوون نێردرا. {{staleCount}} بۆچوون ئاماژە بە کۆمیتێکی کۆن دەکەن و لە ڕیزەکەتدا مانەوە." + "partialPostedMessage": "{{displayFreshCount}} بۆچوون نێردرا. {{displayStaleCount}} بۆچوون ئاماژە بە کۆمیتێکی کۆن دەکەن و لە ڕیزەکەتدا مانەوە." }, "reconnectNotice": { "title": "پەیوەندی GitHub بەسەرچوو", @@ -580,7 +580,8 @@ "agents": "ئەجێنتەکان", "profile": "پڕۆفایل", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}، تاب، {{position}} لە {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "نوێترین", "common": "هاوبەش", "reactWith": "کاردانەوە بە {{reaction}}", - "accessibility": "{{emoji}} کاردانەوە، {{count}}" + "accessibility": "{{emoji}} کاردانەوە، {{displayCount}}" }, "composer": { "replyingTo": "وەڵامدانەوە بۆ", @@ -650,7 +651,7 @@ "imageUnavailable": "وێنە بەردەست نییە", "openFailed": "نەتوانرا هاوپێچەکە بکرێتەوە. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەوە.", "attachFailed": "هاوپێچکردنی فایل شکستی هێنا", - "limit": "دەتوانیت هەتا {{count}} فایل هاوپێچ بکەیت.", + "limit": "دەتوانیت هەتا {{displayCount}} فایل هاوپێچ بکەیت.", "sizeRejection": "{{filename}} لە سنووری هاوپێچی {{limit}} زیاترە.", "unreadable": "نەتوانرا {{filename}} بخوێنرێتەوە.", "pastedImage": "وێنە بلکێنراوەکە", @@ -740,11 +741,12 @@ "yourStandardMonthlyPrice": "نرخی مانگانەی Standardی تۆ", "perMonth": "/مانگ", "earlybirdAccessUntil": "دەستگەیشتنی Earlybird تا {{date}}", - "earlybirdEnding": "کۆتایی Earlybird: {{days}} ڕۆژ ماوە", + "earlybirdEnding": "کۆتایی Earlybird: {{remaining}}", "paymentPastDue": "پارەدان دواکەوتووە. تکایە شێوازی پارەدانەکەت نوێ بکەوە.", "subscriptionCancels": "ئەندامێتی لە {{date}} هەڵدەوەشێتەوە", - "trialDaysRemaining": "تاقیکردنەوە: {{days}} ڕۆژ ماوە", - "trialEndingSoon": "تاقیکردنەوە بەم زووانە کۆتایی دێت: {{days}}" + "trialDaysRemaining": "تاقیکردنەوە: {{remaining}} ماوە", + "trialEndingSoon": "تاقیکردنەوە بەم زووانە کۆتایی دێت: {{remaining}}", + "lessThanOneDay": "کەمتر لە 1 ڕۆژ" }, "changelog": { "title": "چی نوێیە", @@ -996,7 +998,7 @@ "stalledTitle": "شتێک ڕاگیرا", "stalledBody": "نەمانتوانی ڕێکخستنی {{name}} تەواو بکەین. دووبارە تاقی بکەرەوە، یان ئیمەیڵ بۆ hi@kilo.ai بنێرە ئەگەر ئەمە بەردەوام بوو.", "timeoutTitle": "زیاتر لە چاوەڕوانکراو دەخایەنێت", - "timeoutBody": "ڕێکخستنی {{name}} زیاتر لە ئاسایی دەخایەنێت (زیاتر لە {{minutes}} خولەک).", + "timeoutBody": "ڕێکخستنی {{name}} زیاتر لە ئاسایی دەخایەنێت (زیاتر لە {{displayMinutes}} خولەک).", "continueInBackground": "لە پاشبنەما بەردەوام بە", "settingUp": "ڕێکخستنی {{name}}", "finishingSetup": "تەواوکردنی ڕێکخستن", @@ -1287,7 +1289,7 @@ "mergeGate": "دەروازەی تێکەڵکردن", "repositories": "کۆگاکان", "allRepositories": "هەموو کۆگاکان", - "nSelected": "{{count}} هەڵبژێردراو", + "nSelected": "{{displayCount}} هەڵبژێردراو", "reviewMemory": "بیرگەی پێداچوونەوە", "proposedReviewMdGuidance": "ڕێنمایی پێشنیارکراوی REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "شیکراوە", "exploitabilityReasoning": "هۆکاری بەکەڵک هێنان", "suggestedFix": "چارەسەری پێشنیارکراو", - "whereFound": "شوێنی دۆزینەوە ({{count}})", + "whereFound": "شوێنی دۆزینەوە ({{displayCount}})", "fullReport": "ڕاپۆرتی تەواوی دروستکراو", "unknown": "نەزانراو", "yes": "بەڵێ", "no": "نەخێر" }, "dashboard": { - "findingsCount": "{{count}} دۆزینەوە", + "findingsCount": "{{displayCount}} دۆزینەوە", "notMeasured": "نەپێوراو", "actFirst": "یەکەم کار بکە", "slaPosture": "ئاستی SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "پلانی کرداری کۆگا", "noOpenFindings": "هیچ دۆزینەوەیەکی کراوە نییە کە پێویستی بە سەرنج بێت", "deadlineToday": "مۆڵەت ئەمڕۆ گەیشت", - "daysOverdue": "{{count}} ڕۆژ لە مۆڵەت دەرچوو", + "daysOverdue": "{{displayCount}} ڕۆژ لە مۆڵەت دەرچوو", "withinDeadline": "لەناو مۆڵەت", "criticalOverdue": "گرنگی لە مۆڵەت دەرچوو", "highOverdue": "بەرزی لە مۆڵەت دەرچوو", @@ -1435,6 +1437,27 @@ "syncQueued": "ناوسینگ ڕیزکرا", "syncStatusUnavailable": "ئاستی ناوسینگ بەردەست نییە" }, + "dashboardMetrics": { + "openFindings": "دۆزینەوە کراوەکان", + "openFindingsDetail": "{{critical}} گرنگ، {{high}} بەرز", + "confirmedExploitable": "بەکەڵک هێنانی پشتڕاستکراو", + "confirmedExploitableDetail": "مەترسیی پڕۆژە بە شیکاری پشتڕاستکراوە", + "needsReview": "پێویستی بە پێداچوونەوەی تۆ", + "needsReviewDetail": "بڕیاری مرۆڤ پێویستە", + "analysisIncomplete": "شیکاری تەواو نییە", + "analysisIncompleteDetail": "مەترسیی پڕۆژە هێشتا نەزانراوە", + "slaCompliance": "پابەندی بە SLA", + "notMeasured": "نەپێوراو", + "withinDeadlineDetail": "{{within}} لە {{total}} لەناو مۆڵەت", + "noDeadlineData": "هێشتا هیچ دۆزینەوەیەک مۆڵەتی SLA نییە", + "deadlinePassed": "مۆڵەت تێپەڕیوە", + "deadlinePassedDetail": "{{critical}} گرنگ، {{high}} بەرز", + "dueThisWeek": "ئەم هەفتەیە دەبێت", + "dueThisWeekDetail": "{{exploitable}} بەکەڵک هێنانی پشتڕاستکراو", + "noDeadline": "مۆڵەت نییە", + "reviewSlaAssignment": "پێداچوونەوەی دیاریکردنی SLA", + "allOpenFindingsTracked": "هەموو دۆزینەوە کراوەکان چاودێری دەکرێن" + }, "dismiss": { "title": "ڕەتکردنی دۆزینەوە", "submit": "ڕەتکردنی دۆزینەوە", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "شیکاری {{mode}}", "automation": "ئۆتۆماسیۆن", "automationAllOff": "هەموو داخراو", - "automationCount": "{{count}} لە 3 چالاککراو", + "automationCount": "{{displayCount}} لە 3 چالاککراو", "notifications": "ئاگادارکردنەوەکان", - "notificationsCount": "{{count}} لە 2 چالاککراو", + "notificationsCount": "{{displayCount}} لە 2 چالاککراو", "slaPolicy": "سیاسەتی SLA", "disabledNoManage": "ئەرکى ئاسایش ناچالاکە. تەنها خاوەنەکانی ڕێکخراو و بەڕێوەبەرانی وەرگرتن دەتوانن بیخەنە کار.", "disabledNoRepo": "بەلایەنی کەم یەک کۆگا هەڵبژێرە پێش چالاککردنی ئەرکى ئاسایش.", @@ -1524,7 +1547,7 @@ "openPullRequest": "کردنەوەی pull request{{number}}", "openDraftPullRequest": "کردنەوەی draft pull request{{number}}", "progress": "پێشکەوتن", - "attemptHistory": "مێژووی هەوڵەکان ({{count}})", + "attemptHistory": "مێژووی هەوڵەکان ({{displayCount}})", "attemptNumber": "هەوڵ #{{number}}", "startedBy": "دەستپێکراوە لەلایەن", "model": "مۆدێل", @@ -1855,9 +1878,9 @@ "toolTask": "کار", "readTodos": "خوێندنەوەی کارەکان", "updateTodos": "نوێکردنەوەی کارەکان", - "linesBadge": "{{count}} ڕیز", - "filesBadge": "{{count}} پەڕگە", - "matchesBadge": "{{count}} گونجاو" + "linesBadge": "{{displayCount}} ڕیز", + "filesBadge": "{{displayCount}} پەڕگە", + "matchesBadge": "{{displayCount}} گونجاو" }, "readToolMarkdown": { "linesTruncated": "ڕیزەکانی {{start}}–{{end}} (کورتکراوە)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ناتوانرێت ئەم وەڵامە ڕاپۆرت بکرێت.", "reportAiResponseSubmitted": "ڕاپۆرت پێشکەشکرا. وەسڵ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "وردەکارییەکان بەردەست نین", "textDisplay": "پیشاندانی دەق", @@ -1999,7 +2026,7 @@ "preparationComplete": "ئامادەکاری تەواو بوو", "preparationFailed": "ئامادەکاری شکستی هێنا", "setupCommand": "فەرمانی دامەزراندن {{index}}", - "setupCommandOf": "فەرمانی دامەزراندن {{index}} لە {{count}}" + "setupCommandOf": "فەرمانی دامەزراندن {{index}} لە {{displayCount}}" }, "permissionCard": { "title": "مۆڵەت پێویستە", @@ -2036,7 +2063,7 @@ "submissionFailed": "ناردن سەرکەوتوو نەبوو. تکایە دووبارە هەوڵبدەرەوە.", "questionAnnouncement": "ئەجێنت پێویستی بە تۆ هەیە. ناردنەکە ڕاوەستاوە تا وەڵام بدەیتەوە.", "permissionAnnouncement": "ئەجێنت پێویستی بە مۆڵەتە بۆ بەردەوامبوون. ناردنەکە ڕاوەستاوە تا بڕیار بدەیت.", - "positionHint": "({{count}} لە)", + "positionHint": "({{displayCount}} لە)", "movedPastPrompt": "ئەجێنتەکە بەسەر ئەم داواکارییەدا تێپەڕیوە. ئەم کارتە دادەخرێت کاتێک دانیشتنەکە بەردەوام دەبێت.", "waitingForAnswer": "ئەجێنتەکە چاوەڕوانی وەڵامی تۆیە. تا ئەم پرسیارە کراوە بێت، نامەکەی تۆ بۆ ئەجێنتەکە ڕاوەستاوە.", "waitingForPermission": "ئەجێنتەکە چاوەڕوانی مۆڵەتە. تا ئەم داواکارییە کراوە بێت، نامەکەی تۆ بۆ ئەجێنتەکە ڕاوەستاوە." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "دەستڕاگەیشتن بە کامێرا ناچالاکە", "cameraAccessMessage": "لە ڕێکخستنەکاندا دەستڕاگەیشتن بە کامێرا ڕێگەبدە بۆ وێنەگرتن.", "couldNotOpenPhotoPicker": "نەتوانرا هەڵبژێری وێنە بکرێتەوە. Kilo دووبارە دەستپێبکەرەوە و دووبارە هەوڵبدەرەوە.", - "maxFilesAllowed": "زۆرترین {{count}} فایل ڕێگەپێدراوە", + "maxFilesAllowed": "زۆرترین {{displayCount}} فایل ڕێگەپێدراوە", "onlyAddingFiles": "تەنها {{accepted}} لە {{total}} فایل زیاد دەکرێت (زۆرترین {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "تێچوون {{cost}}", "costSuffix": "، تێچوون {{cost}}", "tokensWindowUnavailable": "ناوەڕۆک {{used}} تۆکن، پەنجەرە بەردەست نییە", - "tokensUsage": "ناوەڕۆک {{used}} لە {{window}} تۆکن، {{percentage}}% بەکارهاتووە", + "tokensUsage": "ناوەڕۆک {{used}} لە {{window}} تۆکن، {{percentage}} بەکارهاتووە", "title": "بەکارهێنانی ناوەڕۆک", "used": "بەکارهاتوو", "remaining": "ماوە", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "بەکارهێنان ئەمەندامترین وەڵامی تەواوکراوی یاریدەدەر نیشان دەدات.", "tokenUsage": "بەکارهێنانی تۆکن", "cacheRate": "ڕێژەی کاش", - "modelsCount": "مۆدێلەکان ({{count}})", + "modelsCount": "مۆدێلەکان ({{displayCount}})", "tokenTotalsNote": "کۆی تۆکنەکان تەنها ئەم دانیشتنە دەگرێتەوە و تۆکنەکانی ساب‌ئەجێنت/دانیشتنی منداڵ ناگرێتەوە.", "subagents": "ساب‌ئەجێنتەکان", "subagentsDescription": "تێچوونی ماوە لە دانیشتنەکانی منداڵ", @@ -2373,7 +2400,7 @@ "connectedCli": "لەسەر CLIـیەکەوە پەیوەندیدارە", "newSessionOn": "دانیشتنی نوێ لەسەر {{name}}", "noMatchingSessions": "هیچ دانیشتنێکی لێکچوو نییە.", - "onlyFirstFilesAttached": "تەنها یەکەم {{count}} فایل دەبەسترێن.", + "onlyFirstFilesAttached": "تەنها یەکەم {{displayCount}} فایل دەبەسترێن.", "staleMessage": "ئەم هاوبەشکارییە چیتر بەردەست نییە.", "retryableMessage": "نەتوانرا دانیشتنەکانت باربکرێن.", "emptyMessage": "هێشتا هیچ دانیشتنێک نییە — دانیشتنێکی نوێ دەستپێبکە بۆ ناردنی ئەمە.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Passـی ئەم هەژمارەی Apple سەر بە هەژمارەیەکی دیکەی Kilo یە. بچۆ ژوورەوە لەو هەژمارەی Kilo بۆ بەڕێوەبردنی.", "alreadySubscribed": "تۆ خاوەنی بەشداربوونێکی Kilo Pass هەست.", "purchaseUnavailable": "کڕینی Kilo Pass ئێستا بەردەست نییە.", - "tierCredits": "${{amount}} لە کرێدت", + "tierCredits": "{{amount}} لە کرێدت", "perMonth": "{{price}}/مانگ", "verifyPurchaseFailed": "نەتوانرا کڕینەکەت پشتڕاست بکرێتەوە. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەرەوە.", "productsCouldNotLoad": "بەرهەمەکانی Kilo Pass نەتوانران لە App Store باربکرێن.", @@ -2417,7 +2444,7 @@ "manageFailed": "کردنەوەی بەڕێوەبردنی بەشداربوونی App Store سەرکەوتوو نەبوو.", "kiloPassSetup": "ڕێکخستنی Kilo Pass", "subscriptionHeaderDescription": "بەشداربوونێکی مانگانە کە کرێدت بۆ تەوازنی Kiloـی تۆ زیاد دەکات بۆ بەڕێوەبردنی دانیشتنەکانی کۆدکردنی AI لە ئەپی Kilo — ئەجێنتەکانی هاور، دانیشتنە دوورەکان، و گفتوگۆکانی KiloClaw.", - "tierDescription": "${{price}} کرێدتی پارەدراو بۆ بەکارهێنانی ئەپی Kilo هەر مانگێک زیاد دەکرێت.", + "tierDescription": "{{price}} کرێدتی پارەدراو بۆ بەکارهێنانی ئەپی Kilo هەر مانگێک زیاد دەکرێت.", "subscribe": "بەشداربوون", "subscribeDescription": "کرێدتی مانگانە لەگەڵ پێشکەوتنی بۆنە", "manage": "بەڕێوەبردن", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass چاوەڕوانە", "statusCanceling": "Kilo Pass پەشیمان دەبێتەوە", "statusPastDue": "Kilo Pass دواکەوتووە", - "monthlyCredits": "${{credits}} کرێدتی مانگانە", + "monthlyCredits": "{{credits}} کرێدتی مانگانە", "ends": "کۆتایی {{date}}", "periodEnd": "کۆتایی ماوە", "managedOnGooglePlay": "بەڕێوەدەبرێت لەسەر Google Play", diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index d38ebf6bd5..b8452810e0 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -206,11 +206,11 @@ "loadingLines": "Načítám {{loaded}} z {{total}} řádků…", "expandContext": "Rozbalit kontext", "expandMoreContext": "Rozbalit více kontextu", - "expandLines": "Rozbalit {{count}} řádků ({{start}}–{{end}})", - "expandMoreLines": "Rozbalit dalších {{count}} řádků ({{start}}–{{end}})", - "expandLinesOfContext": "Rozbalit {{count}} řádků kontextu", + "expandLines": "Rozbalit {{displayCount}} řádků ({{start}}–{{end}})", + "expandMoreLines": "Rozbalit dalších {{displayCount}} řádků ({{start}}–{{end}})", + "expandLinesOfContext": "Rozbalit {{displayCount}} řádků kontextu", "expandAll": "Rozbalit vše", - "expandAllLines": "Rozbalit všech {{count}} řádků", + "expandAllLines": "Rozbalit všech {{displayCount}} řádků", "loadingMoreFiles": "Načítám další soubory…", "retryLoadingNextPage": "Zkusit znovu načíst další stránku", "failedToLoadMoreFiles": "Nepodařilo se načíst další soubory — klepnutím zkusíte znovu", @@ -227,7 +227,11 @@ "fileLoadedOfTotalCount_other": "Načteno {{displayCount}} souborů z {{total}}", "filesStillLoading": "Soubory se stále načítají. Potažením obnovíte.", "goToOverview": "Přejít na přehled", - "goToOverviewTab": "Přejít na kartu Přehled" + "goToOverviewTab": "Přejít na kartu Přehled", + "fileLoadedCount_few": "Načteny {{displayCount}} soubory", + "fileLoadedCount_many": "Načteno {{displayCount}} souborů", + "fileLoadedOfTotalCount_few": "Načteny {{displayCount}} soubory z {{total}}", + "fileLoadedOfTotalCount_many": "Načteno {{displayCount}} souborů z {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ na konci souboru chybí nový řádek", @@ -301,7 +305,7 @@ "closeReactions": "Zavřít reakce", "reactionsTitle": "Reakce", "addReaction": "Přidat reakci", - "reactionPill": "{{emoji}} reakce, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakce, {{displayCount}} {{countLabel}}", "reaction_one": "reakce", "reaction": "reakce", "reaction_other": "reakce", @@ -353,10 +357,14 @@ "noDiscussionDescription": "Žádná vlákna recenzí ani konverzační komentáře na tomto pull requestu.", "reviewFiles": "Zkontrolovat soubory", "quotedDiffSnippet": "Citovaný úryvek diffu", - "moreLinesAbove": "… {{count}} dalších řádků výše", + "moreLinesAbove": "… {{displayCount}} dalších řádků výše", "termsAcceptRequired": "Pro přidávání příspěvků musíte přijmout Podmínky služby.", "termsOutdatedCopy": "Podmínky služby se změnily. Znovu otevřete tuto obrazovku a přijměte nejnovější verzi.", - "termsCheckRetryCopy": "Podmínky služby se nepodařilo zkontrolovat. Zkontrolujte připojení a zkuste to znovu." + "termsCheckRetryCopy": "Podmínky služby se nepodařilo zkontrolovat. Zkontrolujte připojení a zkuste to znovu.", + "comment_few": "{{displayCount}} komentáře", + "comment_many": "{{displayCount}} komentářů", + "reaction_few": "reakce", + "reaction_many": "reakcí" }, "couldNotOpenGitHubAppSettings": "Nastavení GitHub App se nepodařilo otevřít", "installKiloGitHubApp": "Nainstalovat Kilo GitHub App", @@ -395,11 +403,11 @@ "retryChecks": "Zkusit kontroly znovu", "viewOnGitHub": "Zobrazit PR na GitHubu", "noChecksReported": "Žádné hlášené kontroly", - "passed": "{{count}} prošlo", - "failed": "{{count}} selhalo", - "pending": "{{count}} čeká", - "skipped": "{{count}} přeskočeno", - "checksCount": "{{count}} kontrol", + "passed": "{{displayCount}} prošlo", + "failed": "{{displayCount}} selhalo", + "pending": "{{displayCount}} čeká", + "skipped": "{{displayCount}} přeskočeno", + "checksCount": "{{displayCount}} kontrol", "checkDetails": "podrobnosti kontroly", "pullRequest": "pull request" }, @@ -459,9 +467,11 @@ "pendingComment_one": "čekající komentář", "pendingComment": "čekající komentáře", "pendingComment_other": "čekající komentáře", - "submitCountOfTotal": "Odeslat {{freshCount}} z {{totalCount}} komentářů", + "submitCountOfTotal": "Odeslat {{displayFreshCount}} z {{displayTotalCount}} komentářů", "submitReview": "Odeslat recenzi", - "partialPostedMessage": "Odesláno {{freshCount}} komentářů. {{staleCount}} komentářů odkazuje na starší commit a zůstalo ve vaší frontě." + "partialPostedMessage": "Odesláno {{displayFreshCount}} komentářů. {{displayStaleCount}} komentářů odkazuje na starší commit a zůstalo ve vaší frontě.", + "pendingComment_few": "čekající komentáře", + "pendingComment_many": "čekajících komentářů" }, "reconnectNotice": { "title": "Připojení ke GitHubu vypršelo", @@ -488,7 +498,11 @@ "commit_other": "commity", "file_one": "soubor", "file": "soubory", - "file_other": "soubory" + "file_other": "soubory", + "commit_few": "commity", + "commit_many": "commitů", + "file_few": "soubory", + "file_many": "souborů" }, "pendingComment": { "editOutdatedA11y": "Upravit zastaralý čekající komentář na {{location}}", @@ -580,7 +594,8 @@ "agents": "Agenti", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, karta, {{position}} z {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +636,7 @@ "recent": "Nedávné", "common": "Běžné", "reactWith": "Reagovat pomocí {{reaction}}", - "accessibility": "{{emoji}} reakce, {{count}}" + "accessibility": "{{emoji}} reakce, {{displayCount}}" }, "composer": { "replyingTo": "Odpovídáte na", @@ -650,7 +665,7 @@ "imageUnavailable": "Obrázek není dostupný", "openFailed": "Přílohu se nepodařilo otevřít. Zkontrolujte připojení a zkuste to znovu.", "attachFailed": "Připojení souboru se nezdařilo", - "limit": "Můžete připojit až {{count}} souborů.", + "limit": "Můžete připojit až {{displayCount}} souborů.", "sizeRejection": "{{filename}} překračuje limit příloh {{limit}}.", "unreadable": "{{filename}} se nepodařilo přečíst.", "pastedImage": "vložený obrázek", @@ -700,7 +715,9 @@ "someone": "Někdo", "typing_one": "{{name}} píše…", "typing": "{{names}} píší…", - "typing_other": "{{names}} píší…" + "typing_other": "{{names}} píší…", + "typing_few": "{{names}} píší…", + "typing_many": "{{names}} píší…" }, "botStatus": { "online": "Online", @@ -740,11 +757,12 @@ "yourStandardMonthlyPrice": "vaše standardní měsíční cena", "perMonth": "/měsíc", "earlybirdAccessUntil": "Přístup Earlybird do {{date}}", - "earlybirdEnding": "Earlybird končí: zbývá {{days}} dní", + "earlybirdEnding": "Earlybird končí: {{remaining}}", "paymentPastDue": "Platba po splatnosti. Aktualizujte prosím svůj způsob platby.", "subscriptionCancels": "Předplatné se ruší {{date}}", - "trialDaysRemaining": "Zkušební verze: zbývá {{days}} dní", - "trialEndingSoon": "Zkušební verze brzy skončí: {{days}}" + "trialDaysRemaining": "Zkušební verze: zbývá {{remaining}}", + "trialEndingSoon": "Zkušební verze brzy skončí: {{remaining}}", + "lessThanOneDay": "Méně než 1 den" }, "changelog": { "title": "Co je nového", @@ -996,7 +1014,7 @@ "stalledTitle": "Něco se zaseklo", "stalledBody": "Nepodařilo se nám dokončit nastavení {{name}}. Zkuste to znovu, nebo napište na hi@kilo.ai, pokud se to opakuje.", "timeoutTitle": "Trvá to déle, než se očekávalo", - "timeoutBody": "Nastavení {{name}} trvá déle než obvykle (přes {{minutes}} minut).", + "timeoutBody": "Nastavení {{name}} trvá déle než obvykle (přes {{displayMinutes}} minut).", "continueInBackground": "Pokračovat na pozadí", "settingUp": "Nastavuje se {{name}}", "finishingSetup": "Dokončování nastavení", @@ -1071,7 +1089,9 @@ "openUnread_other": "Otevřít {{name}}, {{displayCount}} nepřečtených zpráv", "open": "Otevřít {{name}}", "openSettings": "Otevřít nastavení pro {{name}}", - "fixOnKiloAi": "Opravit na kilo.ai: {{label}}" + "fixOnKiloAi": "Opravit na kilo.ai: {{label}}", + "openUnread_few": "Otevřít {{name}}, {{displayCount}} nepřečtené zprávy", + "openUnread_many": "Otevřít {{name}}, {{displayCount}} nepřečtených zpráv" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1307,7 @@ "mergeGate": "Sloučení brána", "repositories": "Úložiště", "allRepositories": "Všechna úložiště", - "nSelected": "{{count}} vybráno", + "nSelected": "{{displayCount}} vybráno", "reviewMemory": "Paměť kontroly", "proposedReviewMdGuidance": "Navrhované pokyny REVIEW.md" }, @@ -1367,7 +1387,9 @@ "severityAll": "Všechny závažnosti", "confidenceHighOnly": "Pouze vysoká spolehlivost", "confidenceMediumOrHigher": "Střední nebo vyšší", - "confidenceAny": "Libovolná spolehlivost" + "confidenceAny": "Libovolná spolehlivost", + "queued_few": "{{displayCount}} stávající zjištění čekají na analýzu.", + "queued_many": "{{displayCount}} stávajících zjištění čeká na analýzu." }, "analysis": { "couldNotLoad": "Analýzu se nepodařilo načíst", @@ -1391,14 +1413,14 @@ "analyzed": "Analyzováno", "exploitabilityReasoning": "Odůvodnění zneužitelnosti", "suggestedFix": "Doporučená oprava", - "whereFound": "Kde to bylo nalezeno ({{count}})", + "whereFound": "Kde to bylo nalezeno ({{displayCount}})", "fullReport": "Plný vygenerovaný přehled", "unknown": "Neznámé", "yes": "Ano", "no": "Ne" }, "dashboard": { - "findingsCount": "{{count}} zjištění", + "findingsCount": "{{displayCount}} zjištění", "notMeasured": "Nezměřeno", "actFirst": "Nejdřív konejte", "slaPosture": "Postoj k SLA", @@ -1407,7 +1429,7 @@ "repositoryActionPlan": "Plán akcí repozitáře", "noOpenFindings": "Žádná otevřená zjištění nevyžadují pozornost", "deadlineToday": "Termín dosažen dnes", - "daysOverdue": "{{count}} dní po termínu", + "daysOverdue": "{{displayCount}} dní po termínu", "withinDeadline": "V termínu", "criticalOverdue": "Kritické po termínu", "highOverdue": "Vysoké po termínu", @@ -1435,6 +1457,27 @@ "syncQueued": "Synchronizace zařazena", "syncStatusUnavailable": "Stav synchronizace není k dispozici" }, + "dashboardMetrics": { + "openFindings": "Otevřená zjištění", + "openFindingsDetail": "{{critical}} kritických, {{high}} vysokých", + "confirmedExploitable": "Potvrzeně zneužitelné", + "confirmedExploitableDetail": "Riziko projektu potvrzeno analýzou", + "needsReview": "Vyžaduje vaše přezkoumání", + "needsReviewDetail": "Je vyžadováno lidské rozhodnutí", + "analysisIncomplete": "Analýza není dokončena", + "analysisIncompleteDetail": "Riziko projektu je stále neznámé", + "slaCompliance": "Dodržování SLA", + "notMeasured": "Nezměřeno", + "withinDeadlineDetail": "{{within}} z {{total}} v termínu", + "noDeadlineData": "Zatím žádné zjištění nemá termín SLA", + "deadlinePassed": "Termín uplynul", + "deadlinePassedDetail": "{{critical}} kritických, {{high}} vysokých", + "dueThisWeek": "Splatné tento týden", + "dueThisWeekDetail": "{{exploitable}} potvrzeně zneužitelných", + "noDeadline": "Žádný termín", + "reviewSlaAssignment": "Zkontrolovat přiřazení SLA", + "allOpenFindingsTracked": "Všechna otevřená zjištění jsou sledována" + }, "dismiss": { "title": "Zamítnout zjištění", "submit": "Zamítnout zjištění", @@ -1500,13 +1543,15 @@ "analysisModeSubtitle": "Analýza {{mode}}", "automation": "Automatizace", "automationAllOff": "Vše vypnuto", - "automationCount": "{{count}} ze 3 povoleno", + "automationCount": "{{displayCount}} ze 3 povoleno", "notifications": "Oznámení", - "notificationsCount": "{{count}} ze 2 povoleno", + "notificationsCount": "{{displayCount}} ze 2 povoleno", "slaPolicy": "Zásady SLA", "disabledNoManage": "Security Agent je zakázán. Zapnout jej mohou pouze vlastníci organizace a správci fakturace.", "disabledNoRepo": "Před povolením Security Agent vyberte alespoň jeden repozitář.", - "disabledPrompt": "Zapněte Security Agent pro synchronizaci výstrah Dependabot, výběr repozitářů a konfiguraci automatizace." + "disabledPrompt": "Zapněte Security Agent pro synchronizaci výstrah Dependabot, výběr repozitářů a konfiguraci automatizace.", + "repositoriesCount_few": "{{displayCount}} vybrané repozitáře", + "repositoriesCount_many": "{{displayCount}} vybraných repozitářů" }, "remediation": { "cancellationRequested": "Zrušení požadováno", @@ -1524,7 +1569,7 @@ "openPullRequest": "Otevřít pull request{{number}}", "openDraftPullRequest": "Otevřít návrh pull request{{number}}", "progress": "Průběh", - "attemptHistory": "Historie pokusů ({{count}})", + "attemptHistory": "Historie pokusů ({{displayCount}})", "attemptNumber": "Pokus #{{number}}", "startedBy": "Zahájil", "model": "Model", @@ -1734,7 +1779,11 @@ "cent_other": "centů", "dollar_one": "dolar", "dollar": "dolarů", - "dollar_other": "dolarů" + "dollar_other": "dolarů", + "cent_few": "centy", + "cent_many": "centů", + "dollar_few": "dolary", + "dollar_many": "dolarů" }, "githubInstall": { "couldNotOpenTitle": "GitHub se nepodařilo otevřít", @@ -1830,7 +1879,9 @@ "partRenderer": { "updatedFileCount_one": "Aktualizován {{displayCount}} soubor", "updatedFileCount": "Aktualizováno {{displayCount}} souborů", - "updatedFileCount_other": "Aktualizováno {{displayCount}} souborů" + "updatedFileCount_other": "Aktualizováno {{displayCount}} souborů", + "updatedFileCount_few": "Aktualizovány {{displayCount}} soubory", + "updatedFileCount_many": "Aktualizováno {{displayCount}} souborů" }, "toolPatch": { "operationAdded": "Přidáno", @@ -1855,9 +1906,9 @@ "toolTask": "úloha", "readTodos": "Přečíst úkoly", "updateTodos": "Aktualizovat úkoly", - "linesBadge": "{{count}} řádků", - "filesBadge": "{{count}} souborů", - "matchesBadge": "{{count}} shod" + "linesBadge": "{{displayCount}} řádků", + "filesBadge": "{{displayCount}} souborů", + "matchesBadge": "{{displayCount}} shod" }, "readToolMarkdown": { "linesTruncated": "řádky {{start}}–{{end}} (zkráceno)", @@ -1941,6 +1992,10 @@ "reportAiResponseFailedTerminal": "Tuto odpověď nelze nahlásit.", "reportAiResponseSubmitted": "Hlášení odesláno. Účtenka {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Podrobnosti nejsou k dispozici", "textDisplay": "Zobrazení textu", @@ -1999,7 +2054,7 @@ "preparationComplete": "Příprava dokončena", "preparationFailed": "Příprava selhala", "setupCommand": "Příkaz nastavení {{index}}", - "setupCommandOf": "Příkaz nastavení {{index}} z {{count}}" + "setupCommandOf": "Příkaz nastavení {{index}} z {{displayCount}}" }, "permissionCard": { "title": "Je vyžadováno oprávnění", @@ -2036,7 +2091,7 @@ "submissionFailed": "Odeslání se nezdařilo. Zkuste to prosím znovu.", "questionAnnouncement": "Agent potřebuje váš vstup. Skladatel je pozastaven, dokud neodpovíte.", "permissionAnnouncement": "Agent potřebuje oprávnění, aby mohl pokračovat. Skladatel je pozastaven, dokud se nerozhodnete.", - "positionHint": "(1 z {{count}})", + "positionHint": "(1 z {{displayCount}})", "movedPastPrompt": "Agent se posunul za tuto výzvu. Tato karta se zavře, až bude relace pokračovat.", "waitingForAnswer": "Agent čeká na vaši odpověď. Dokud je tato otázka otevřená, vaše zpráva agentovi je pozastavena.", "waitingForPermission": "Agent čeká na oprávnění. Dokud je tento požadavek otevřený, vaše zpráva agentovi je pozastavena." @@ -2076,7 +2131,9 @@ "omitted_other": "{{displayCount}} dřívějších položek z této relace nebylo možné zobrazit.", "couldNotLoad": "Dřívější zprávy se nepodařilo načíst.", "unavailable": "Dřívější zprávy nejsou k dispozici.", - "tooLarge": "Dřívější zprávy jsou příliš velké na načtení." + "tooLarge": "Dřívější zprávy jsou příliš velké na načtení.", + "omitted_few": "{{displayCount}} dřívější položky z této relace nebylo možné zobrazit.", + "omitted_many": "{{displayCount}} dřívějších položek z této relace nebylo možné zobrazit." }, "markdownTable": { "viewTable": "Zobrazit tabulku", @@ -2088,7 +2145,11 @@ "rowCount_one": "řádek", "rowCount": "řádky", "rowCount_other": "řádky", - "opensFullScreen": "otevře celou obrazovku" + "opensFullScreen": "otevře celou obrazovku", + "columnCount_few": "sloupce", + "columnCount_many": "sloupců", + "rowCount_few": "řádky", + "rowCount_many": "řádků" }, "sessionFilter": { "title": "Filtrovat relace", @@ -2157,7 +2218,7 @@ "cameraAccessDisabled": "Přístup k fotoaparátu zakázán", "cameraAccessMessage": "Povolte v Nastavení přístup k fotoaparátu pro pořízení fotky.", "couldNotOpenPhotoPicker": "Výběr fotek se nepodařilo otevřít. Restartujte Kilo a zkuste to znovu.", - "maxFilesAllowed": "Maximum je {{count}} souborů", + "maxFilesAllowed": "Maximum je {{displayCount}} souborů", "onlyAddingFiles": "Přidávají se pouze {{accepted}} z {{total}} souborů (maximálně {{max}})" }, "composer": { @@ -2222,7 +2283,7 @@ "costPrefix": "cena {{cost}}", "costSuffix": ", cena {{cost}}", "tokensWindowUnavailable": "Kontext {{used}} tokenů, okno není k dispozici", - "tokensUsage": "Kontext {{used}} z {{window}} tokenů, použito {{percentage}}%", + "tokensUsage": "Kontext {{used}} z {{window}} tokenů, použito {{percentage}}", "title": "Využití kontextu", "used": "Použito", "remaining": "Zbývá", @@ -2231,7 +2292,7 @@ "usageReflectsLatest": "Využití odráží poslední dokončenou odpověď asistenta.", "tokenUsage": "Využití tokenů", "cacheRate": "Míra mezipaměti", - "modelsCount": "Modely ({{count}})", + "modelsCount": "Modely ({{displayCount}})", "tokenTotalsNote": "Součty tokenů se týkají pouze této relace a nezahrnují tokeny subagentů/dětských relací.", "subagents": "Subagenti", "subagentsDescription": "Zbytková cena z dětských relací", @@ -2243,7 +2304,9 @@ "stepsCount_one": "{{steps}} krok", "stepsCount": "{{steps}} kroků", "stepsCount_other": "{{steps}} kroků", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} kroky", + "stepsCount_many": "{{steps}} kroků" }, "prBadge": { "open": "otevřený pull request", @@ -2373,7 +2436,7 @@ "connectedCli": "Na připojeném CLI", "newSessionOn": "Nová relace na {{name}}", "noMatchingSessions": "Žádné odpovídající relace.", - "onlyFirstFilesAttached": "Bude připojeno pouze prvních {{count}} souborů.", + "onlyFirstFilesAttached": "Bude připojeno pouze prvních {{displayCount}} souborů.", "staleMessage": "Toto sdílení již není k dispozici.", "retryableMessage": "Vaše relace se nepodařilo načíst.", "emptyMessage": "Zatím žádné relace — zahajte novou pro odeslání tohoto.", @@ -2406,7 +2469,7 @@ "otherAccountCopy": "Kilo Pass na tomto Apple účtu patří k jinému účtu Kilo. Přihlaste se k tomuto účtu Kilo, abyste jej spravovali.", "alreadySubscribed": "Již máte předplatné Kilo Pass.", "purchaseUnavailable": "Nákup Kilo Pass není právě k dispozici.", - "tierCredits": "${{amount}} v kreditech", + "tierCredits": "{{amount}} v kreditech", "perMonth": "{{price}}/měs", "verifyPurchaseFailed": "Váš nákup se nepodařilo ověřit. Zkontrolujte připojení a zkuste to znovu.", "productsCouldNotLoad": "Produkty Kilo Pass se nepodařilo načíst z App Store.", @@ -2417,7 +2480,7 @@ "manageFailed": "Otevření správy předplatného v App Store se nezdařilo.", "kiloPassSetup": "Nastavení Kilo Pass", "subscriptionHeaderDescription": "Měsíční předplatné, které přidává kredity do vašeho zůstatku Kilo pro spouštění AI programovacích relací v aplikaci Kilo — Cloud Agents, vzdálené relace a chaty KiloClaw.", - "tierDescription": "${{price}} placených kreditů přidáváno měsíčně pro použití v aplikaci Kilo.", + "tierDescription": "{{price}} placených kreditů přidáváno měsíčně pro použití v aplikaci Kilo.", "subscribe": "Předplatit", "subscribeDescription": "Měsíční kredity s bonusovým postupem", "manage": "Spravovat", @@ -2425,7 +2488,7 @@ "statusPending": "Kilo Pass čeká", "statusCanceling": "Kilo Pass se ruší", "statusPastDue": "Kilo Pass po splatnosti", - "monthlyCredits": "${{credits}} měsíčních kreditů", + "monthlyCredits": "{{credits}} měsíčních kreditů", "ends": "Končí {{date}}", "periodEnd": "konec období", "managedOnGooglePlay": "Spravováno na Google Play", @@ -2667,7 +2730,9 @@ "processingNeedsReview": "Zpracování vyžaduje kontrolu", "retry": "Opakovat", "retryHint": "Znovu načte stav Kilo Pass.", - "setupHint": "Otevře nastavení Kilo Pass na webu." + "setupHint": "Otevře nastavení Kilo Pass na webu.", + "paidSeat_few": "{{displayCount}} placená místa", + "paidSeat_many": "{{displayCount}} placených sedadel" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 28a8de7831..85aa17d3d9 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -206,11 +206,11 @@ "loadingLines": "Yn llwytho {{loaded}} o {{total}} llinell…", "expandContext": "Ehangu cyd-destun", "expandMoreContext": "Ehangu mwy o gyd-destun", - "expandLines": "Ehangu {{count}} llinell ({{start}}–{{end}})", - "expandMoreLines": "Ehangu mwy o {{count}} llinell ({{start}}–{{end}})", - "expandLinesOfContext": "Ehangu {{count}} llinell o gyd-destun", + "expandLines": "Ehangu {{displayCount}} llinell ({{start}}–{{end}})", + "expandMoreLines": "Ehangu mwy o {{displayCount}} llinell ({{start}}–{{end}})", + "expandLinesOfContext": "Ehangu {{displayCount}} llinell o gyd-destun", "expandAll": "Ehangu'r cyfan", - "expandAllLines": "Ehangu'r {{count}} llinell i gyd", + "expandAllLines": "Ehangu'r {{displayCount}} llinell i gyd", "loadingMoreFiles": "Yn llwytho mwy o ffeiliau…", "retryLoadingNextPage": "Rhoi cynnig eto ar lwytho'r dudalen nesaf", "failedToLoadMoreFiles": "Methwyd llwytho mwy o ffeiliau — tapiwch i roi cynnig eto", @@ -227,7 +227,15 @@ "fileLoadedOfTotalCount_other": "{{displayCount}} ffeil wedi'u llwytho o {{total}}", "filesStillLoading": "Mae ffeiliau'n dal i lwytho. Llusgwch i adnewyddu.", "goToOverview": "Ewch i'r Trosolwg", - "goToOverviewTab": "Ewch i dab Trosolwg" + "goToOverviewTab": "Ewch i dab Trosolwg", + "fileLoadedCount_zero": "{{displayCount}} ffeil wedi'i llwytho", + "fileLoadedCount_two": "{{displayCount}} ffeil wedi'i llwytho", + "fileLoadedCount_few": "{{displayCount}} ffeil wedi'i llwytho", + "fileLoadedCount_many": "{{displayCount}} ffeil wedi'i llwytho", + "fileLoadedOfTotalCount_zero": "{{displayCount}} ffeil wedi'i llwytho o {{total}}", + "fileLoadedOfTotalCount_two": "{{displayCount}} ffeil wedi'i llwytho o {{total}}", + "fileLoadedOfTotalCount_few": "{{displayCount}} ffeil wedi'i llwytho o {{total}}", + "fileLoadedOfTotalCount_many": "{{displayCount}} ffeil wedi'i llwytho o {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ dim llinell newydd ar ddiwedd y ffeil", @@ -301,7 +309,7 @@ "closeReactions": "Cau ymatebion", "reactionsTitle": "Ymatebion", "addReaction": "Ychwanegu ymateb", - "reactionPill": "{{emoji}} ymateb, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ymateb, {{displayCount}} {{countLabel}}", "reaction_one": "ymateb", "reaction": "ymatebion", "reaction_other": "ymatebion", @@ -353,10 +361,18 @@ "noDiscussionDescription": "Dim edafedd adolygu na sylwadau sgwrs ar y cais tynnu hwn.", "reviewFiles": "Adolygu ffeiliau", "quotedDiffSnippet": "Brin diff wedi'i ddyfynnu", - "moreLinesAbove": "… {{count}} mwy o linellau uchod", + "moreLinesAbove": "… {{displayCount}} mwy o linellau uchod", "termsAcceptRequired": "Rhaid i chi dderbyn y Telerau Gwasanaeth i bostio.", "termsOutdatedCopy": "Newidiodd y Telerau Gwasanaeth. Ailagorwch y sgrin hon i dderbyn y fersiwn ddiweddaraf.", - "termsCheckRetryCopy": "Ni ellid gwirio'r Telerau Gwasanaeth. Gwiriwch eich cysylltiad a rhoi cynnig eto." + "termsCheckRetryCopy": "Ni ellid gwirio'r Telerau Gwasanaeth. Gwiriwch eich cysylltiad a rhoi cynnig eto.", + "comment_zero": "{{displayCount}} sylw", + "comment_two": "{{displayCount}} sylw", + "comment_few": "{{displayCount}} sylw", + "comment_many": "{{displayCount}} sylw", + "reaction_zero": "ymateb", + "reaction_two": "ymateb", + "reaction_few": "ymateb", + "reaction_many": "ymatebion" }, "couldNotOpenGitHubAppSettings": "Ni ellid agor gosodiadau Ap GitHub", "installKiloGitHubApp": "Gosod Ap GitHub Kilo", @@ -395,11 +411,11 @@ "retryChecks": "Rhoi cynnig eto ar wiriadau", "viewOnGitHub": "Gweld y PR ar GitHub", "noChecksReported": "Dim gwiriadau wedi'u hadrodd", - "passed": "{{count}} wedi pasio", - "failed": "{{count}} wedi methu", - "pending": "{{count}} ar y gweill", - "skipped": "{{count}} wedi'u hepgor", - "checksCount": "{{count}} gwiriad", + "passed": "{{displayCount}} wedi pasio", + "failed": "{{displayCount}} wedi methu", + "pending": "{{displayCount}} ar y gweill", + "skipped": "{{displayCount}} wedi'u hepgor", + "checksCount": "{{displayCount}} gwiriad", "checkDetails": "manylion gwiriad", "pullRequest": "cais tynnu" }, @@ -459,9 +475,13 @@ "pendingComment_one": "sylw ar y gweill", "pendingComment": "sylwadau ar y gweill", "pendingComment_other": "sylwadau ar y gweill", - "submitCountOfTotal": "Cyflwyno {{freshCount}} o {{totalCount}} sylw", + "submitCountOfTotal": "Cyflwyno {{displayFreshCount}} o {{displayTotalCount}} sylw", "submitReview": "Cyflwyno adolygiad", - "partialPostedMessage": "Postiwyd {{freshCount}} sylw(adau). Mae {{staleCount}} sylw(adau) yn pwyntio at ymrwymiad hŷn ac arhosodd yn eich ciw." + "partialPostedMessage": "Postiwyd {{displayFreshCount}} sylw(adau). Mae {{displayStaleCount}} sylw(adau) yn pwyntio at ymrwymiad hŷn ac arhosodd yn eich ciw.", + "pendingComment_zero": "sylw ar y gweill", + "pendingComment_two": "sylw ar y gweill", + "pendingComment_few": "sylw ar y gweill", + "pendingComment_many": "sylwadau ar y gweill" }, "reconnectNotice": { "title": "Daeth cysylltiad GitHub i ben", @@ -488,7 +508,15 @@ "commit_other": "ymrwymiadau", "file_one": "ffeil", "file": "ffeiliau", - "file_other": "ffeiliau" + "file_other": "ffeiliau", + "commit_zero": "ymrwymiad", + "commit_two": "ymrwymiad", + "commit_few": "ymrwymiad", + "commit_many": "ymrwymiadau", + "file_zero": "ffeil", + "file_two": "ffeil", + "file_few": "ffeil", + "file_many": "ffeiliau" }, "pendingComment": { "editOutdatedA11y": "Golygu sylw ar y gweill hen ffasiwn ar {{location}}", @@ -580,7 +608,8 @@ "agents": "Asiantau", "profile": "Proffil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} o {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +650,7 @@ "recent": "Diweddar", "common": "Cyffredin", "reactWith": "Ymateb gyda {{reaction}}", - "accessibility": "{{emoji}} ymateb, {{count}}" + "accessibility": "{{emoji}} ymateb, {{displayCount}}" }, "composer": { "replyingTo": "Yn ateb i", @@ -650,7 +679,7 @@ "imageUnavailable": "Delwedd heb fod ar gael", "openFailed": "Ni ellid agor yr atodiad. Gwiriwch eich cysylltiad a rhoi cynnig eto.", "attachFailed": "Methwyd atodi'r ffeil", - "limit": "Gallwch atodi hyd at {{count}} ffeil.", + "limit": "Gallwch atodi hyd at {{displayCount}} ffeil.", "sizeRejection": "Mae {{filename}} yn fwy na'r terfyn atodiad {{limit}}.", "unreadable": "Ni ellid darllen {{filename}}.", "pastedImage": "y ddelwedd wedi'i gludo", @@ -700,7 +729,11 @@ "someone": "Rhywun", "typing_one": "Mae {{name}} yn teipio...", "typing": "Mae {{names}} yn teipio...", - "typing_other": "Mae {{names}} yn teipio..." + "typing_other": "Mae {{names}} yn teipio...", + "typing_zero": "Nid oes neb yn teipio...", + "typing_two": "Mae {{names}} yn teipio...", + "typing_few": "Mae {{names}} yn teipio...", + "typing_many": "Mae {{names}} yn teipio..." }, "botStatus": { "online": "Ar-lein", @@ -722,6 +755,7 @@ "finalTermEnds": "Daw'r tymor olaf i ben", "afterFinalTerm": "Ar ôl y tymor olaf", "remaining": "Yn weddill", + "lessThanOneDay": "Llai na 1 diwrnod", "ends": "Yn dod i ben", "expires": "Yn dod i ben", "noActivePlan": "Dim cynllun gweithredol", @@ -740,11 +774,11 @@ "yourStandardMonthlyPrice": "eich pris misol Safonol", "perMonth": "/mis", "earlybirdAccessUntil": "Mynediad cynnar hyd at {{date}}", - "earlybirdEnding": "Cynnar yn dod i ben: {{days}} o ddyddiau ar ôl", + "earlybirdEnding": "Cynnar yn dod i ben: {{remaining}}", "paymentPastDue": "Taliad hwyr. Diweddarwch eich dull talu.", "subscriptionCancels": "Mae'r tanysgrifiad yn canslo {{date}}", - "trialDaysRemaining": "Treial: {{days}} o ddyddiau ar ôl", - "trialEndingSoon": "Treial yn dod i ben yn fuan: {{days}}" + "trialDaysRemaining": "Treial: {{remaining}} ar ôl", + "trialEndingSoon": "Treial yn dod i ben yn fuan: {{remaining}}" }, "changelog": { "title": "Beth sy'n Newydd", @@ -996,7 +1030,7 @@ "stalledTitle": "Aeth rhywbeth yn sownd", "stalledBody": "Methodd ni orffen gosod {{name}}. Ceisiwch eto, neu anfonwch e-bost at hi@kilo.ai os bydd hyn yn parhau.", "timeoutTitle": "Yn cymryd yn hirach na'r disgwyl", - "timeoutBody": "Mae gosod {{name}} yn cymryd yn hirach nag arfer (dros {{minutes}} munud).", + "timeoutBody": "Mae gosod {{name}} yn cymryd yn hirach nag arfer (dros {{displayMinutes}} munud).", "continueInBackground": "Parhau yn y cefndir", "settingUp": "Yn gosod {{name}}", "finishingSetup": "Gorffen gosod", @@ -1071,7 +1105,11 @@ "openUnread_other": "Agor {{name}}, {{displayCount}} o negeseuon heb eu darllen", "open": "Agor {{name}}", "openSettings": "Agor gosodiadau ar gyfer {{name}}", - "fixOnKiloAi": "Trwsio ar kilo.ai: {{label}}" + "fixOnKiloAi": "Trwsio ar kilo.ai: {{label}}", + "openUnread_zero": "Agor {{name}}, dim neges heb ei darllen", + "openUnread_two": "Agor {{name}}, {{displayCount}} o negeseuon heb eu darllen", + "openUnread_few": "Agor {{name}}, {{displayCount}} o negeseuon heb eu darllen", + "openUnread_many": "Agor {{name}}, {{displayCount}} o negeseuon heb eu darllen" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1325,7 @@ "mergeGate": "Gât cyfuno", "repositories": "Ystorfeydd", "allRepositories": "Pob ystorfa", - "nSelected": "{{count}} wedi'u dewis", + "nSelected": "{{displayCount}} wedi'u dewis", "reviewMemory": "Cof adolygu", "proposedReviewMdGuidance": "Canllawiau REVIEW.md arfaethedig" }, @@ -1367,7 +1405,11 @@ "severityAll": "Pob difrifoldeb", "confidenceHighOnly": "Hyder uchel yn unig", "confidenceMediumOrHigher": "Canolig neu uwch", - "confidenceAny": "Unrhyw hyder" + "confidenceAny": "Unrhyw hyder", + "queued_zero": "Mae {{displayCount}} canfyddiad presennol wedi'i roi mewn ciw ar gyfer dadansoddi.", + "queued_two": "Mae {{displayCount}} canfyddiad presennol wedi'i roi mewn ciw ar gyfer dadansoddi.", + "queued_few": "Mae {{displayCount}} canfyddiad presennol wedi'i roi mewn ciw ar gyfer dadansoddi.", + "queued_many": "Mae {{displayCount}} canfyddiad presennol wedi'i roi mewn ciw ar gyfer dadansoddi." }, "analysis": { "couldNotLoad": "Methwyd llwytho'r dadansoddiad", @@ -1391,14 +1433,14 @@ "analyzed": "Dadansoddwyd", "exploitabilityReasoning": "Rhesymeg ecsbloetiadwyedd", "suggestedFix": "Trwsiad a awgrymir", - "whereFound": "Lle cafwyd hwn ({{count}})", + "whereFound": "Lle cafwyd hwn ({{displayCount}})", "fullReport": "Adroddiad llawn a gynhyrchwyd", "unknown": "Anhysbys", "yes": "Ie", "no": "Na" }, "dashboard": { - "findingsCount": "{{count}} canfyddiad", + "findingsCount": "{{displayCount}} canfyddiad", "notMeasured": "Heb ei fesur", "actFirst": "Gweithredu'n gyntaf", "slaPosture": "Agwedd SLA", @@ -1407,7 +1449,7 @@ "repositoryActionPlan": "Cynllun gweithredu ystorfa", "noOpenFindings": "Dim canfyddiadau agored sydd angen sylw", "deadlineToday": "Cyrhaeddwyd y dyddiad terfyn heddiw", - "daysOverdue": "{{count}} diwrnod yn hwyr", + "daysOverdue": "{{displayCount}} diwrnod yn hwyr", "withinDeadline": "O fewn y dyddiad terfyn", "criticalOverdue": "Critigol yn hwyr", "highOverdue": "Uchel yn hwyr", @@ -1435,6 +1477,27 @@ "syncQueued": "Cysoni mewn ciw", "syncStatusUnavailable": "Statws cysoni ar goll" }, + "dashboardMetrics": { + "openFindings": "Canfyddiadau agored", + "openFindingsDetail": "{{critical}} critigol, {{high}} uchel", + "confirmedExploitable": "Wedi cadarnhau ei fod yn ecsbloetiadwy", + "confirmedExploitableDetail": "Risg y prosiect wedi'i gadarnhau gan ddadansoddiad", + "needsReview": "Angen eich adolygiad", + "needsReviewDetail": "Angen penderfyniad dynol", + "analysisIncomplete": "Dadansoddiad heb ei gwblhau", + "analysisIncompleteDetail": "Risg y prosiect yn dal yn anhysbys", + "slaCompliance": "Cydymffurfiaeth SLA", + "notMeasured": "Heb ei fesur", + "withinDeadlineDetail": "{{within}} o {{total}} o fewn y dyddiad terfyn", + "noDeadlineData": "Dim canfyddiadau â dyddiad terfyn SLA eto", + "deadlinePassed": "Aeth y dyddiad terfyn heibio", + "deadlinePassedDetail": "{{critical}} critigol, {{high}} uchel", + "dueThisWeek": "Yn ddyledus yr wythnos hon", + "dueThisWeekDetail": "{{exploitable}} wedi'i gadarnhau ei fod yn ecsbloetiadwy", + "noDeadline": "Dim dyddiad terfyn", + "reviewSlaAssignment": "Adolygu aseiniad SLA", + "allOpenFindingsTracked": "Pob canfyddiad agored yn cael ei olrhain" + }, "dismiss": { "title": "Gwrthod canfyddiad", "submit": "Gwrthod canfyddiad", @@ -1500,13 +1563,17 @@ "analysisModeSubtitle": "Dadansoddiad {{mode}}", "automation": "Awtoleiddio", "automationAllOff": "I gyd i ffwrdd", - "automationCount": "{{count}} o 3 wedi'u galluogi", + "automationCount": "{{displayCount}} o 3 wedi'u galluogi", "notifications": "Hysbysiadau", - "notificationsCount": "{{count}} o 2 wedi'u galluogi", + "notificationsCount": "{{displayCount}} o 2 wedi'u galluogi", "slaPolicy": "Polisi SLA", "disabledNoManage": "Mae Security Agent wedi'i analluogi. Dim ond perchnogion sefydliad a rheolwyr bilio all ei droi ymlaen.", "disabledNoRepo": "Dewiswch o leiaf un ystorfa cyn galluogi Security Agent.", - "disabledPrompt": "Trowch Security Agent ymlaen i gysoni rhybuddion Dependabot, dewis ystorfeydd, a ffurfweddu awtoleiddio." + "disabledPrompt": "Trowch Security Agent ymlaen i gysoni rhybuddion Dependabot, dewis ystorfeydd, a ffurfweddu awtoleiddio.", + "repositoriesCount_zero": "{{displayCount}} ystorfa wedi'i dewis", + "repositoriesCount_two": "{{displayCount}} ystorfa wedi'i dewis", + "repositoriesCount_few": "{{displayCount}} ystorfa wedi'i dewis", + "repositoriesCount_many": "{{displayCount}} ystorfa wedi'i dewis" }, "remediation": { "cancellationRequested": "Galwad i ganslo wedi'i chofnodi", @@ -1524,7 +1591,7 @@ "openPullRequest": "Agor cais tynnu{{number}}", "openDraftPullRequest": "Agor cais tynnu drafft{{number}}", "progress": "Cynnydd", - "attemptHistory": "Hanes cynigion ({{count}})", + "attemptHistory": "Hanes cynigion ({{displayCount}})", "attemptNumber": "Cynnig #{{number}}", "startedBy": "Wedi'i ddechrau gan", "model": "Model", @@ -1734,7 +1801,15 @@ "cent_other": "cents", "dollar_one": "doler", "dollar": "doleri", - "dollar_other": "doleri" + "dollar_other": "doleri", + "cent_zero": "cent", + "cent_two": "gent", + "cent_few": "gent", + "cent_many": "cent", + "dollar_zero": "doler", + "dollar_two": "ddoler", + "dollar_few": "ddoler", + "dollar_many": "doler" }, "githubInstall": { "couldNotOpenTitle": "Methwyd agor GitHub", @@ -1830,7 +1905,11 @@ "partRenderer": { "updatedFileCount_one": "Diweddarwyd {{displayCount}} ffeil", "updatedFileCount": "Diweddarwyd {{displayCount}} ffeiliau", - "updatedFileCount_other": "Diweddarwyd {{displayCount}} ffeiliau" + "updatedFileCount_other": "Diweddarwyd {{displayCount}} ffeiliau", + "updatedFileCount_zero": "Diweddarwyd {{displayCount}} ffeil", + "updatedFileCount_two": "Diweddarwyd {{displayCount}} ffeil", + "updatedFileCount_few": "Diweddarwyd {{displayCount}} ffeil", + "updatedFileCount_many": "Diweddarwyd {{displayCount}} ffeil" }, "toolPatch": { "operationAdded": "Ychwanegwyd", @@ -1855,9 +1934,9 @@ "toolTask": "tasg", "readTodos": "Darllen tasgau-i'w-gwneud", "updateTodos": "Diweddaru tasgau-i'w-gwneud", - "linesBadge": "{{count}} llinell", - "filesBadge": "{{count}} ffeil", - "matchesBadge": "{{count}} cyfatebiaeth" + "linesBadge": "{{displayCount}} llinell", + "filesBadge": "{{displayCount}} ffeil", + "matchesBadge": "{{displayCount}} cyfatebiaeth" }, "readToolMarkdown": { "linesTruncated": "llinellau {{start}}–{{end}} (wedi'u tori)", @@ -1941,6 +2020,10 @@ "reportAiResponseFailedTerminal": "Ni ellir adrodd ar yr ymateb hwn.", "reportAiResponseSubmitted": "Adroddiad wedi'i gyflwyno. Derbynneb {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Manylion ar goll", "textDisplay": "Arddangos testun", @@ -1999,7 +2082,7 @@ "preparationComplete": "Paratoi wedi'i gwblhau", "preparationFailed": "Methodd y paratoi", "setupCommand": "Gorchymyn gosod {{index}}", - "setupCommandOf": "Gorchymyn gosod {{index}} o {{count}}" + "setupCommandOf": "Gorchymyn gosod {{index}} o {{displayCount}}" }, "permissionCard": { "title": "Caniatâd yn ofynnol", @@ -2036,7 +2119,7 @@ "submissionFailed": "Methodd y cyflwyniad. Ceisiwch eto.", "questionAnnouncement": "Mae angen eich mewnbwn ar yr Asiant. Mae'r cyfansoddwr wedi'i oedi tra byddwch yn ateb.", "permissionAnnouncement": "Mae angen caniatâd ar yr Asiant i barhau. Mae'r cyfansoddwr wedi'i oedi tra byddwch yn penderfynu.", - "positionHint": "(1 o {{count}})", + "positionHint": "(1 o {{displayCount}})", "movedPastPrompt": "Mae'r asiant wedi symud heibio'r anogwr hwn. Caiff y cerdyn hwn ei gau pan fydd y sesiwn yn parhau.", "waitingForAnswer": "Mae'r asiant yn aros am eich ateb. Tra bod y cwestiwn hwn ar agor, mae eich neges at yr asiant wedi'i hoedi.", "waitingForPermission": "Mae'r asiant yn aros am ganiatâd. Tra bod y cais hwn ar agor, mae eich neges at yr asiant wedi'i hoedi." @@ -2076,7 +2159,11 @@ "omitted_other": "Ni ellid arddangos {{displayCount}} eitem cynharach o'r sesiwn hon.", "couldNotLoad": "Methwyd llwytho negeseuon cynharach.", "unavailable": "Nid yw negeseuon cynharach ar gael.", - "tooLarge": "Mae negeseuon cynharach yn rhy fawr i'w llwytho." + "tooLarge": "Mae negeseuon cynharach yn rhy fawr i'w llwytho.", + "omitted_zero": "Ni ellid arddangos unrhyw eitem cynharach o'r sesiwn hon.", + "omitted_two": "Ni ellid arddangos {{displayCount}} eitem cynharach o'r sesiwn hon.", + "omitted_few": "Ni ellid arddangos {{displayCount}} eitem cynharach o'r sesiwn hon.", + "omitted_many": "Ni ellid arddangos {{displayCount}} eitem cynharach o'r sesiwn hon." }, "markdownTable": { "viewTable": "Gweld y tabl", @@ -2088,7 +2175,15 @@ "rowCount_one": "rhes", "rowCount": "rhesi", "rowCount_other": "rhesi", - "opensFullScreen": "agor ar sgrin lawn" + "opensFullScreen": "agor ar sgrin lawn", + "columnCount_zero": "colofn", + "columnCount_two": "golofn", + "columnCount_few": "golofn", + "columnCount_many": "colofn", + "rowCount_zero": "rhes", + "rowCount_two": "res", + "rowCount_few": "res", + "rowCount_many": "rhes" }, "sessionFilter": { "title": "Hidlo sesiynau", @@ -2157,7 +2252,7 @@ "cameraAccessDisabled": "Mynediad Camera wedi'i Analluogi", "cameraAccessMessage": "Caniatáu mynediad i'r camera yn Gosodiadau i dynnu llun.", "couldNotOpenPhotoPicker": "Methwyd agor y dewisydd lluniau. Ailgychwynnwch Kilo a cheisiwch eto.", - "maxFilesAllowed": "Caniateir uchafswm o {{count}} ffeil", + "maxFilesAllowed": "Caniateir uchafswm o {{displayCount}} ffeil", "onlyAddingFiles": "Dim ond ychwanegu {{accepted}} o {{total}} ffeil (uchafswm {{max}})" }, "composer": { @@ -2222,7 +2317,7 @@ "costPrefix": "cost {{cost}}", "costSuffix": ", cost {{cost}}", "tokensWindowUnavailable": "Cyd-destun {{used}} token, ffenestr annarganfyddadwy", - "tokensUsage": "Cyd-destun {{used}} o {{window}} token, {{percentage}}% yn cael ei ddefnyddio", + "tokensUsage": "Cyd-destun {{used}} o {{window}} token, {{percentage}} yn cael ei ddefnyddio", "title": "Defnydd cyd-destun", "used": "Defnyddiwyd", "remaining": "Ar ôl", @@ -2231,7 +2326,7 @@ "usageReflectsLatest": "Mae'r defnydd yn adlewyrchu'r ymateb cynorthwyydd gorffenedig diweddaraf.", "tokenUsage": "Defnydd token", "cacheRate": "Cyfradd storfa", - "modelsCount": "Modelau ({{count}})", + "modelsCount": "Modelau ({{displayCount}})", "tokenTotalsNote": "Mae cyfansymiau token yn cynnwys y sesiwn hon yn unig ac yn eithrio tokenau is-asiant/sesiwn-plentyn.", "subagents": "Is-asiantau", "subagentsDescription": "Cost weddilliol o sesiynau plentyn", @@ -2243,7 +2338,11 @@ "stepsCount_one": "{{steps}} cam", "stepsCount": "{{steps}} cam", "stepsCount_other": "{{steps}} cam", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_zero": "{{steps}} cam", + "stepsCount_two": "{{steps}} gam", + "stepsCount_few": "{{steps}} gam", + "stepsCount_many": "{{steps}} cam" }, "prBadge": { "open": "ceisiad tynnu ar agor", @@ -2373,7 +2472,7 @@ "connectedCli": "Ar CLI cysylltiedig", "newSessionOn": "Sesiwn newydd ar {{name}}", "noMatchingSessions": "Dim sesiynau sy'n cyfateb.", - "onlyFirstFilesAttached": "Dim ond y {{count}} ffeil gyntaf fydd yn cael eu hatodi.", + "onlyFirstFilesAttached": "Dim ond y {{displayCount}} ffeil gyntaf fydd yn cael eu hatodi.", "staleMessage": "Nid yw'r rhaniad hwn ar gael mwyach.", "retryableMessage": "Methwyd llwytho'ch sesiynau.", "emptyMessage": "Dim sesiynau eto — dechreuwch un newydd i anfon hwn.", @@ -2406,7 +2505,7 @@ "otherAccountCopy": "Mae'r Kilo Pass ar yr Apple Account hwn yn perthyn i gyfrif Kilo gwahanol. Mewngofnodwch i'r cyfrif Kilo hwnnw i'w reoli.", "alreadySubscribed": "Mae gennych danysgrifiad Kilo Pass yn barod.", "purchaseUnavailable": "Nid yw pryniant Kilo Pass ar gael ar hyn o bryd.", - "tierCredits": "${{amount}} mewn credydau", + "tierCredits": "{{amount}} mewn credydau", "perMonth": "{{price}}/mo", "verifyPurchaseFailed": "Methwyd gwirio'ch pryniant. Gwiriwch eich cysylltiad a cheisiwch eto.", "productsCouldNotLoad": "Ni ellid llwytho cynhyrchion Kilo Pass o'r App Store.", @@ -2417,7 +2516,7 @@ "manageFailed": "Methodd agor rheolaeth tanysgrifiad App Store.", "kiloPassSetup": "Cyfluniad Kilo Pass", "subscriptionHeaderDescription": "Tanysgrifiad misol sy'n ychwanegu credydau at eich balans Kilo ar gyfer rhedeg sesiynau codio AI yn Kilo App — Cloud Agents, sesiynau anghysbell, a sgyrsiau KiloClaw.", - "tierDescription": "${{price}} o gredydau wedi'u talu yn cael eu hychwanegu'n fisol ar gyfer defnydd Kilo App.", + "tierDescription": "{{price}} o gredydau wedi'u talu yn cael eu hychwanegu'n fisol ar gyfer defnydd Kilo App.", "subscribe": "Tanysgrifio", "subscribeDescription": "Credydau misol gyda chynnydd bonws", "manage": "Rheoli", @@ -2425,7 +2524,7 @@ "statusPending": "Kilo Pass yn aros", "statusCanceling": "Kilo Pass yn diddymu", "statusPastDue": "Kilo Pass yn hwyr", - "monthlyCredits": "${{credits}} o gredydau misol", + "monthlyCredits": "{{credits}} o gredydau misol", "ends": "Yn dod i ben {{date}}", "periodEnd": "diwedd y cyfnod", "managedOnGooglePlay": "Yn cael ei reoli ar Google Play", @@ -2667,7 +2766,11 @@ "processingNeedsReview": "Mae angen adolygu ar y prosesu", "retry": "Ailgynnig", "retryHint": "Yn ailgynnig llwytho statws Kilo Pass.", - "setupHint": "Yn agor cyfluniad Kilo Pass ar y we." + "setupHint": "Yn agor cyfluniad Kilo Pass ar y we.", + "paidSeat_zero": "{{displayCount}} sedd daledig", + "paidSeat_two": "{{displayCount}} sedd daledig", + "paidSeat_few": "{{displayCount}} sedd daledig", + "paidSeat_many": "{{displayCount}} sedd daledig" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index e1e1fd7707..f2bf1e6fbe 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -206,11 +206,11 @@ "loadingLines": "Indlæser {{loaded}} af {{total}} linjer…", "expandContext": "Udvid kontekst", "expandMoreContext": "Udvid mere kontekst", - "expandLines": "Udvid {{count}} linjer ({{start}}–{{end}})", - "expandMoreLines": "Udvid mere {{count}} linjer ({{start}}–{{end}})", - "expandLinesOfContext": "Udvid {{count}} linjer med kontekst", + "expandLines": "Udvid {{displayCount}} linjer ({{start}}–{{end}})", + "expandMoreLines": "Udvid mere {{displayCount}} linjer ({{start}}–{{end}})", + "expandLinesOfContext": "Udvid {{displayCount}} linjer med kontekst", "expandAll": "Udvid alle", - "expandAllLines": "Udvid alle {{count}} linjer", + "expandAllLines": "Udvid alle {{displayCount}} linjer", "loadingMoreFiles": "Indlæser flere filer…", "retryLoadingNextPage": "Prøv at indlæse næste side igen", "failedToLoadMoreFiles": "Kunne ikke indlæse flere filer — tryk for at prøve igen", @@ -301,7 +301,7 @@ "closeReactions": "Luk reaktioner", "reactionsTitle": "Reaktioner", "addReaction": "Tilføj reaktion", - "reactionPill": "{{emoji}} reaktion, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaktion, {{displayCount}} {{countLabel}}", "reaction_one": "reaktion", "reaction": "reaktioner", "reaction_other": "reaktioner", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Ingen anmeldelsestråde eller konversationskommentarer på denne pull request.", "reviewFiles": "Anmeld filer", "quotedDiffSnippet": "Citeret diff-uddrag", - "moreLinesAbove": "… {{count}} flere linjer ovenfor", + "moreLinesAbove": "… {{displayCount}} flere linjer ovenfor", "termsAcceptRequired": "Du skal acceptere tjenestevilkårene for at skrive.", "termsOutdatedCopy": "Tjenestevilkårene ændrede sig. Åbn denne skærm igen for at acceptere den nyeste version.", "termsCheckRetryCopy": "Kunne ikke kontrollere tjenestevilkårene. Tjek din forbindelse og prøv igen." @@ -395,11 +395,11 @@ "retryChecks": "Prøv kontroller igen", "viewOnGitHub": "Vis PR på GitHub", "noChecksReported": "Ingen kontroller rapporteret", - "passed": "{{count}} bestod", - "failed": "{{count}} mislykkedes", - "pending": "{{count}} afventer", - "skipped": "{{count}} sprunget over", - "checksCount": "{{count}} kontroller", + "passed": "{{displayCount}} bestod", + "failed": "{{displayCount}} mislykkedes", + "pending": "{{displayCount}} afventer", + "skipped": "{{displayCount}} sprunget over", + "checksCount": "{{displayCount}} kontroller", "checkDetails": "kontroldetaljer", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ventende kommentar", "pendingComment": "ventende kommentarer", "pendingComment_other": "ventende kommentarer", - "submitCountOfTotal": "Send {{freshCount}} af {{totalCount}} kommentarer", + "submitCountOfTotal": "Send {{displayFreshCount}} af {{displayTotalCount}} kommentarer", "submitReview": "Send anmeldelse", - "partialPostedMessage": "Sendte {{freshCount}} kommentar(er). {{staleCount}} kommentar(er) peger på en ældre commit og blev i din kø." + "partialPostedMessage": "Sendte {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) peger på en ældre commit og blev i din kø." }, "reconnectNotice": { "title": "GitHub-forbindelsen udløb", @@ -580,7 +580,8 @@ "agents": "Agenter", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, fane, {{position}} af {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Seneste", "common": "Almindelige", "reactWith": "Reagér med {{reaction}}", - "accessibility": "{{emoji}} reaktion, {{count}}" + "accessibility": "{{emoji}} reaktion, {{displayCount}}" }, "composer": { "replyingTo": "Svarer til", @@ -650,7 +651,7 @@ "imageUnavailable": "Billede utilgængeligt", "openFailed": "Kunne ikke åbne vedhæftning. Tjek din forbindelse og prøv igen.", "attachFailed": "Kunne ikke vedhæfte fil", - "limit": "Du kan vedhæfte op til {{count}} filer.", + "limit": "Du kan vedhæfte op til {{displayCount}} filer.", "sizeRejection": "{{filename}} overstiger grænsen på {{limit}} for vedhæftninger.", "unreadable": "Kunne ikke læse {{filename}}.", "pastedImage": "det indsatte billede", @@ -722,6 +723,7 @@ "finalTermEnds": "Endelig periode slutter", "afterFinalTerm": "Efter endelig periode", "remaining": "Tilbage", + "lessThanOneDay": "Mindre end 1 dag", "ends": "Slutter", "expires": "Udløber", "noActivePlan": "Ingen aktiv plan", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "din Standard månedspris", "perMonth": "/måned", "earlybirdAccessUntil": "Earlybird-adgang indtil {{date}}", - "earlybirdEnding": "Earlybird slutter: {{days}} dage tilbage", + "earlybirdEnding": "Earlybird slutter: {{remaining}}", "paymentPastDue": "Betaling er forfalden. Opdater venligst din betalingsmetode.", "subscriptionCancels": "Abonnement annulleres {{date}}", - "trialDaysRemaining": "Prøveperiode: {{days}} dage tilbage", - "trialEndingSoon": "Prøveperiode slutter snart: {{days}}" + "trialDaysRemaining": "Prøveperiode: {{remaining}} tilbage", + "trialEndingSoon": "Prøveperiode slutter snart: {{remaining}}" }, "changelog": { "title": "Hvad er nyt", @@ -996,7 +998,7 @@ "stalledTitle": "Noget gik i stå", "stalledBody": "Vi kunne ikke færdiggøre opsætningen af {{name}}. Prøv igen, eller send en e-mail til hi@kilo.ai, hvis dette fortsætter.", "timeoutTitle": "Tager længere tid end forventet", - "timeoutBody": "Opsætningen af {{name}} tager længere tid end normalt (over {{minutes}} minutter).", + "timeoutBody": "Opsætningen af {{name}} tager længere tid end normalt (over {{displayMinutes}} minutter).", "continueInBackground": "Fortsæt i baggrunden", "settingUp": "Opsætter {{name}}", "finishingSetup": "Afslutter opsætning", @@ -1287,7 +1289,7 @@ "mergeGate": "Fletningsgate", "repositories": "Repositories", "allRepositories": "Alle repositories", - "nSelected": "{{count}} valgt", + "nSelected": "{{displayCount}} valgt", "reviewMemory": "Gennemgangshukommelse", "proposedReviewMdGuidance": "Foreslået REVIEW.md-vejledning" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analyseret", "exploitabilityReasoning": "Begrundelse for udnyttelighed", "suggestedFix": "Foreslået løsning", - "whereFound": "Hvor dette blev fundet ({{count}})", + "whereFound": "Hvor dette blev fundet ({{displayCount}})", "fullReport": "Fuld genereret rapport", "unknown": "Ukendt", "yes": "Ja", "no": "Nej" }, "dashboard": { - "findingsCount": "{{count}} fund", + "findingsCount": "{{displayCount}} fund", "notMeasured": "Ikke målt", "actFirst": "Handle først", "slaPosture": "SLA-status", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Repository-handlingsplan", "noOpenFindings": "Ingen åbne fund kræver opmærksomhed", "deadlineToday": "Frist nået i dag", - "daysOverdue": "{{count}} dage forsinket", + "daysOverdue": "{{displayCount}} dage forsinket", "withinDeadline": "Inden for fristen", "criticalOverdue": "Kritisk forsinket", "highOverdue": "Høj forsinket", @@ -1435,6 +1437,27 @@ "syncQueued": "Synkronisering i kø", "syncStatusUnavailable": "Synkroniseringsstatus utilgængelig" }, + "dashboardMetrics": { + "openFindings": "Åbne fund", + "openFindingsDetail": "{{critical}} kritiske, {{high}} høje", + "confirmedExploitable": "Bekræftet udnyttelig", + "confirmedExploitableDetail": "Projektrisiko bekræftet ved analyse", + "needsReview": "Kræver din gennemgang", + "needsReviewDetail": "Kræver menneskelig beslutning", + "analysisIncomplete": "Analyse ikke fuldført", + "analysisIncompleteDetail": "Projektrisiko stadig ukendt", + "slaCompliance": "SLA-overholdelse", + "notMeasured": "Ikke målt", + "withinDeadlineDetail": "{{within}} af {{total}} inden for fristen", + "noDeadlineData": "Ingen fund har en SLA-frist endnu", + "deadlinePassed": "Frist overskredet", + "deadlinePassedDetail": "{{critical}} kritiske, {{high}} høje", + "dueThisWeek": "Forfalder denne uge", + "dueThisWeekDetail": "{{exploitable}} bekræftet udnyttelig", + "noDeadline": "Ingen frist", + "reviewSlaAssignment": "Gennemgå SLA-tildeling", + "allOpenFindingsTracked": "Alle åbne fund spores" + }, "dismiss": { "title": "Afvis fund", "submit": "Afvis fund", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} analyse", "automation": "Automatisering", "automationAllOff": "Alt slået fra", - "automationCount": "{{count}} af 3 aktiveret", + "automationCount": "{{displayCount}} af 3 aktiveret", "notifications": "Meddelelser", - "notificationsCount": "{{count}} af 2 aktiveret", + "notificationsCount": "{{displayCount}} af 2 aktiveret", "slaPolicy": "SLA-politik", "disabledNoManage": "Security Agent er deaktiveret. Kun organisationsejere og faktureringsadministratorer kan slå det til.", "disabledNoRepo": "Vælg mindst ét repository, før Security Agent aktiveres.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Åbn pull request{{number}}", "openDraftPullRequest": "Åbn kladdepull request{{number}}", "progress": "Fremskridt", - "attemptHistory": "Forsøgshistorik ({{count}})", + "attemptHistory": "Forsøgshistorik ({{displayCount}})", "attemptNumber": "Forsøg #{{number}}", "startedBy": "Startet af", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "opgave", "readTodos": "Læs opgavelister", "updateTodos": "Opdatér opgavelister", - "linesBadge": "{{count}} linjer", - "filesBadge": "{{count}} filer", - "matchesBadge": "{{count}} match" + "linesBadge": "{{displayCount}} linjer", + "filesBadge": "{{displayCount}} filer", + "matchesBadge": "{{displayCount}} match" }, "readToolMarkdown": { "linesTruncated": "linjer {{start}}–{{end}} (afkortet)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Dette svar kan ikke rapporteres.", "reportAiResponseSubmitted": "Rapport sendt. Kvittering {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Oplysninger utilgængelige", "textDisplay": "Tekstvisning", @@ -1999,7 +2026,7 @@ "preparationComplete": "Forberedelse fuldført", "preparationFailed": "Forberedelse mislykkedes", "setupCommand": "Opsætningskommando {{index}}", - "setupCommandOf": "Opsætningskommando {{index}} af {{count}}" + "setupCommandOf": "Opsætningskommando {{index}} af {{displayCount}}" }, "permissionCard": { "title": "Tilladelse påkrævet", @@ -2036,7 +2063,7 @@ "submissionFailed": "Sendingen mislykkedes. Prøv igen.", "questionAnnouncement": "Agenten har brug for dit input. Komponisten er sat på pause, mens du svarer.", "permissionAnnouncement": "Agenten har brug for tilladelse til at fortsætte. Komponisten er sat på pause, mens du beslutter.", - "positionHint": "(1 af {{count}})", + "positionHint": "(1 af {{displayCount}})", "movedPastPrompt": "Agenten er gået videre fra denne forespørgsel. Dette kort lukkes, når sessionen fortsætter.", "waitingForAnswer": "Agenten venter på dit svar. Mens dette spørgsmål er åbent, er din besked til agenten sat på pause.", "waitingForPermission": "Agenten venter på tilladelse. Mens denne anmodning er åben, er din besked til agenten sat på pause." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kameradgang deaktiveret", "cameraAccessMessage": "Giv kameradgang i Indstillinger for at tage et billede.", "couldNotOpenPhotoPicker": "Kunne ikke åbne fotovælgeren. Genstart Kilo og prøv igen.", - "maxFilesAllowed": "Maksimalt {{count}} filer tilladt", + "maxFilesAllowed": "Maksimalt {{displayCount}} filer tilladt", "onlyAddingFiles": "Tilføjer kun {{accepted}} af {{total}} filer (maks. {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "pris {{cost}}", "costSuffix": ", pris {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} tokens, vindue utilgængeligt", - "tokensUsage": "Kontekst {{used}} af {{window}} tokens, {{percentage}}% brugt", + "tokensUsage": "Kontekst {{used}} af {{window}} tokens, {{percentage}} brugt", "title": "Kontekstforbrug", "used": "Brugt", "remaining": "Tilbage", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Forbrug afspejler det seneste fuldførte assistentsvar.", "tokenUsage": "Tokenforbrug", "cacheRate": "Cache-rate", - "modelsCount": "Modeller ({{count}})", + "modelsCount": "Modeller ({{displayCount}})", "tokenTotalsNote": "Tokentotaler dækker kun denne session og inkluderer ikke subagent-/undersessions-tokens.", "subagents": "Subagenter", "subagentsDescription": "Restomkostning fra undersessioner", @@ -2373,7 +2400,7 @@ "connectedCli": "På en tilsluttet CLI", "newSessionOn": "Ny session på {{name}}", "noMatchingSessions": "Ingen matchende sessioner.", - "onlyFirstFilesAttached": "Kun de første {{count}} filer vil blive vedhæftet.", + "onlyFirstFilesAttached": "Kun de første {{displayCount}} filer vil blive vedhæftet.", "staleMessage": "Denne deling er ikke længere tilgængelig.", "retryableMessage": "Kunne ikke indlæse dine sessioner.", "emptyMessage": "Ingen sessioner endnu — start en ny for at sende dette.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass på denne Apple-konto tilhører en anden Kilo-konto. Log ind på den Kilo-konto for at administrere den.", "alreadySubscribed": "Du har allerede et Kilo Pass-abonnement.", "purchaseUnavailable": "Kilo Pass-køb er ikke tilgængeligt lige nu.", - "tierCredits": "${{amount}} i kreditter", + "tierCredits": "{{amount}} i kreditter", "perMonth": "{{price}}/md", "verifyPurchaseFailed": "Kunne ikke bekræfte dit køb. Tjek din forbindelse og prøv igen.", "productsCouldNotLoad": "Kilo Pass-produkter kunne ikke indlæses fra App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Kunne ikke åbne App Store-abonnementsadministration.", "kiloPassSetup": "Kilo Pass-opsætning", "subscriptionHeaderDescription": "Et månedligt abonnement, der tilføjer kreditter til din Kilo-saldo til at køre AI-kodningssessioner i Kilo App — Cloud-agenter, fjernsessioner og KiloClaw-chats.", - "tierDescription": "${{price}} betalte kreditter tilføjes månedligt til Kilo App-brug.", + "tierDescription": "{{price}} betalte kreditter tilføjes månedligt til Kilo App-brug.", "subscribe": "Abonner", "subscribeDescription": "Månedlige kreditter med bonusfremskridt", "manage": "Administrer", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass afventer", "statusCanceling": "Kilo Pass annullerer", "statusPastDue": "Kilo Pass forfalden", - "monthlyCredits": "${{credits}} månedlige kreditter", + "monthlyCredits": "{{credits}} månedlige kreditter", "ends": "Slutter {{date}}", "periodEnd": "periodeafslutning", "managedOnGooglePlay": "Administreres på Google Play", diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index 9ebf5f1cd7..33c17c4714 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -201,7 +201,8 @@ "agents": "Agenten", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, Tab, {{position}} von {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Zuletzt", "common": "Häufig", "reactWith": "Mit {{reaction}} reagieren", - "accessibility": "{{emoji}}-Reaktion, {{count}}" + "accessibility": "{{emoji}}-Reaktion, {{displayCount}}" }, "composer": { "replyingTo": "Antwortet auf", @@ -271,7 +272,7 @@ "imageUnavailable": "Bild nicht verfügbar", "openFailed": "Anhang konnte nicht geöffnet werden. Überprüfe deine Verbindung und versuche es erneut.", "attachFailed": "Datei konnte nicht angehängt werden", - "limit": "Du kannst bis zu {{count}} Dateien anhängen.", + "limit": "Du kannst bis zu {{displayCount}} Dateien anhängen.", "sizeRejection": "{{filename}} überschreitet das Anhang-Limit von {{limit}}.", "unreadable": "{{filename}} konnte nicht gelesen werden.", "pastedImage": "das eingefügte Bild", @@ -343,6 +344,7 @@ "finalTermEnds": "Letzte Laufzeit endet", "afterFinalTerm": "Nach der letzten Laufzeit", "remaining": "Verbleibend", + "lessThanOneDay": "Weniger als 1 Tag", "ends": "Endet", "expires": "Läuft ab", "noActivePlan": "Kein aktiver Tarif", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "dein monatlicher Standard-Preis", "perMonth": "/Monat", "earlybirdAccessUntil": "Earlybird-Zugang bis {{date}}", - "earlybirdEnding": "Earlybird endet: noch {{days}} Tage", + "earlybirdEnding": "Earlybird endet: {{remaining}}", "paymentPastDue": "Zahlung überfällig. Bitte aktualisiere deine Zahlungsmethode.", "subscriptionCancels": "Abo endet am {{date}}", - "trialDaysRemaining": "Testphase: noch {{days}} Tage", - "trialEndingSoon": "Testphase endet bald: {{days}}" + "trialDaysRemaining": "Testphase: noch {{remaining}}", + "trialEndingSoon": "Testphase endet bald: {{remaining}}" }, "changelog": { "title": "Neuigkeiten", @@ -665,7 +667,7 @@ "startingSandbox": "Sandbox wird gestartet", "stoppedBody": "Die Instanz von {{name}} wurde während der Einrichtung unerwartet gestoppt.", "stoppedTitle": "Einrichtung gestoppt", - "timeoutBody": "Die Einrichtung von {{name}} dauert länger als üblich (über {{minutes}} Minuten).", + "timeoutBody": "Die Einrichtung von {{name}} dauert länger als üblich (über {{displayMinutes}} Minuten).", "timeoutTitle": "Dauert länger als erwartet" }, "unavailableDescription": "Ein aktuelles KiloClaw-Abo ist erforderlich, um eine Instanz bereitzustellen. Bestehende Instanzen und Abos laufen normal weiter.", @@ -912,7 +914,7 @@ "focusAreas": "Fokusbereiche", "mergeGate": "Merge-Gate", "model": "Modell", - "nSelected": "{{count}} ausgewählt", + "nSelected": "{{displayCount}} ausgewählt", "proposedReviewMdGuidance": "Vorgeschlagene REVIEW.md-Leitlinien", "repositories": "Repositories", "reviewMemory": "Review-Speicher", @@ -981,7 +983,7 @@ "triageReasoning": "Triage-Begründung", "unknown": "Unbekannt", "watchInCloudAgent": "In Cloud Agent ansehen", - "whereFound": "Wo dies gefunden wurde ({{count}})", + "whereFound": "Wo dies gefunden wurde ({{displayCount}})", "yes": "Ja" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "Bestätigt ausnutzbar", "couldNotLoad": "Dashboard-Daten konnten nicht geladen werden", "criticalOverdue": "Kritisch überfällig", - "daysOverdue": "{{count}} Tage überfällig", + "daysOverdue": "{{displayCount}} Tage überfällig", "deadlineToday": "Frist heute erreicht", "filterByRepository": "Nach Repository filtern", "findings": "Findings", - "findingsCount": "{{count}} Findings", + "findingsCount": "{{displayCount}} Findings", "highOverdue": "Hoch überfällig", "lastSynced": "Zuletzt synchronisiert {{time}}", "manageRepositories": "Repositories verwalten", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "Synchronisierungsstatus nicht verfügbar", "withinDeadline": "Innerhalb der Frist" }, + "dashboardMetrics": { + "openFindings": "Offene Findings", + "openFindingsDetail": "{{critical}} kritisch, {{high}} hoch", + "confirmedExploitable": "Bestätigt ausnutzbar", + "confirmedExploitableDetail": "Projektrisiko durch Analyse bestätigt", + "needsReview": "Braucht deine Prüfung", + "needsReviewDetail": "Menschliche Entscheidung erforderlich", + "analysisIncomplete": "Analyse nicht abgeschlossen", + "analysisIncompleteDetail": "Projektrisiko weiterhin unbekannt", + "slaCompliance": "SLA-Einhaltung", + "notMeasured": "Nicht gemessen", + "withinDeadlineDetail": "{{within}} von {{total}} innerhalb der Frist", + "noDeadlineData": "Noch keine Findings mit SLA-Frist", + "deadlinePassed": "Frist abgelaufen", + "deadlinePassedDetail": "{{critical}} kritisch, {{high}} hoch", + "dueThisWeek": "Diese Woche fällig", + "dueThisWeekDetail": "{{exploitable}} bestätigt ausnutzbar", + "noDeadline": "Keine Frist", + "reviewSlaAssignment": "SLA-Zuweisung prüfen", + "allOpenFindingsTracked": "Alle offenen Findings werden erfasst" + }, "dismiss": { "alreadyResolvedDescription": "Dieses Finding wurde bereits behoben und akzeptiert keine Verwerfung mehr.", "cannotDismissDescription": "Nur Organisationsinhaber und Abrechnungsmanager können Findings verwerfen.", @@ -1188,7 +1211,7 @@ "title": "Benachrichtigungen" }, "remediation": { - "attemptHistory": "Versuchsverlauf ({{count}})", + "attemptHistory": "Versuchsverlauf ({{displayCount}})", "attemptNumber": "Versuch Nr. {{number}}", "branch": "Branch", "cancelMessage": "Security Agent stoppt den laufenden Behebungsversuch.", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "Analyse: {{mode}}", "automation": "Automatisierung", "automationAllOff": "Alles aus", - "automationCount": "{{count}} von 3 aktiviert", + "automationCount": "{{displayCount}} von 3 aktiviert", "couldNotLoadPermissions": "Berechtigungen konnten nicht geladen werden", "couldNotLoadRepositories": "Repositories konnten nicht geladen werden", "couldNotLoadSettings": "Security-Agent-Einstellungen konnten nicht geladen werden", @@ -1267,7 +1290,7 @@ "enabled": "Aktiviert", "modelsAndAnalysis": "Modelle & Analyse", "notifications": "Benachrichtigungen", - "notificationsCount": "{{count}} von 2 aktiviert", + "notificationsCount": "{{displayCount}} von 2 aktiviert", "off": "Aus", "on": "Ein", "repositories": "Repositories", @@ -1476,9 +1499,9 @@ "toolTask": "Aufgabe", "readTodos": "Aufgaben lesen", "updateTodos": "Aufgaben aktualisieren", - "linesBadge": "{{count}} Zeilen", - "filesBadge": "{{count}} Dateien", - "matchesBadge": "{{count}} Treffer" + "linesBadge": "{{displayCount}} Zeilen", + "filesBadge": "{{displayCount}} Dateien", + "matchesBadge": "{{displayCount}} Treffer" }, "readToolMarkdown": { "linesTruncated": "Zeilen {{start}}–{{end}} (abgeschnitten)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "Diese Antwort kann nicht gemeldet werden.", "reportAiResponseSubmitted": "Meldung gesendet. Beleg {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Details nicht verfügbar", "textDisplay": "Textanzeige", @@ -1620,7 +1647,7 @@ "preparationComplete": "Vorbereitung abgeschlossen", "preparationFailed": "Vorbereitung fehlgeschlagen", "setupCommand": "Einrichtungsbefehl {{index}}", - "setupCommandOf": "Einrichtungsbefehl {{index}} von {{count}}" + "setupCommandOf": "Einrichtungsbefehl {{index}} von {{displayCount}}" }, "permissionCard": { "title": "Berechtigung erforderlich", @@ -1657,7 +1684,7 @@ "submissionFailed": "Senden fehlgeschlagen. Bitte versuche es erneut.", "questionAnnouncement": "Der Agent benötigt deine Eingabe. Der Composer ist pausiert, während du antwortest.", "permissionAnnouncement": "Der Agent benötigt eine Berechtigung, um fortzufahren. Der Composer ist pausiert, während du entscheidest.", - "positionHint": "(1 von {{count}})", + "positionHint": "(1 von {{displayCount}})", "movedPastPrompt": "Der Agent ist über diesen Prompt hinausgegangen. Diese Karte schließt sich, wenn die Sitzung fortgesetzt wird.", "waitingForAnswer": "Der Agent wartet auf deine Antwort. Solange diese Frage offen ist, ist deine Nachricht an den Agenten pausiert.", "waitingForPermission": "Der Agent wartet auf eine Berechtigung. Solange diese Anfrage offen ist, ist deine Nachricht an den Agenten pausiert." @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "Kamerazugriff deaktiviert", "cameraAccessMessage": "Erlaube den Kamerazugriff in den Einstellungen, um ein Foto aufzunehmen.", "couldNotOpenPhotoPicker": "Die Fotoauswahl konnte nicht geöffnet werden. Starte Kilo neu und versuche es erneut.", - "maxFilesAllowed": "Maximal {{count}} Dateien erlaubt", + "maxFilesAllowed": "Maximal {{displayCount}} Dateien erlaubt", "onlyAddingFiles": "Es werden nur {{accepted}} von {{total}} Dateien hinzugefügt (max. {{max}})" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "Kosten {{cost}}", "costSuffix": ", Kosten {{cost}}", "tokensWindowUnavailable": "Kontext {{used}} Tokens, Fenster nicht verfügbar", - "tokensUsage": "Kontext {{used}} von {{window}} Tokens, {{percentage}}% verwendet", + "tokensUsage": "Kontext {{used}} von {{window}} Tokens, {{percentage}} verwendet", "title": "Kontextnutzung", "used": "Verwendet", "remaining": "Verbleibend", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "Die Nutzung spiegelt die letzte abgeschlossene Assistenten-Antwort wider.", "tokenUsage": "Token-Nutzung", "cacheRate": "Cache-Rate", - "modelsCount": "Modelle ({{count}})", + "modelsCount": "Modelle ({{displayCount}})", "tokenTotalsNote": "Token-Gesamtsummen umfassen nur diese Sitzung und schließen Subagenten-/Kindersitzungs-Tokens aus.", "subagents": "Subagenten", "subagentsDescription": "Restkosten aus Kindersitzungen", @@ -1994,7 +2021,7 @@ "connectedCli": "Auf einer verbundenen CLI", "newSessionOn": "Neue Sitzung auf {{name}}", "noMatchingSessions": "Keine passenden Sitzungen.", - "onlyFirstFilesAttached": "Nur die ersten {{count}} Dateien werden angehängt.", + "onlyFirstFilesAttached": "Nur die ersten {{displayCount}} Dateien werden angehängt.", "staleMessage": "Dieses Teilen ist nicht mehr verfügbar.", "retryableMessage": "Deine Sitzungen konnten nicht geladen werden.", "emptyMessage": "Noch keine Sitzungen — starte eine neue, um dies zu senden.", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "Der Kilo Pass auf diesem Apple-Konto gehört zu einem anderen Kilo-Konto. Melde dich bei diesem Kilo-Konto an, um ihn zu verwalten.", "alreadySubscribed": "Du hast bereits ein Kilo-Pass-Abo.", "purchaseUnavailable": "Der Kilo-Pass-Kauf ist gerade nicht verfügbar.", - "tierCredits": "${{amount}} Guthaben", + "tierCredits": "{{amount}} Guthaben", "perMonth": "{{price}}/Monat", "verifyPurchaseFailed": "Dein Kauf konnte nicht bestätigt werden. Prüfe deine Verbindung und versuche es erneut.", "productsCouldNotLoad": "Kilo-Pass-Produkte konnten nicht aus dem App Store geladen werden.", @@ -2038,7 +2065,7 @@ "manageFailed": "App Store-Abonnementverwaltung konnte nicht geöffnet werden.", "kiloPassSetup": "Kilo Pass einrichten", "subscriptionHeaderDescription": "Ein monatliches Abonnement, das deinem Kilo-Guthaben Credits für AI-Codierungssitzungen in der Kilo App hinzufügt – Cloud Agents, Remote-Sitzungen und KiloClaw-Chats.", - "tierDescription": "${{price}} bezahlte Credits monatlich für die Nutzung der Kilo App hinzugefügt.", + "tierDescription": "{{price}} bezahlte Credits monatlich für die Nutzung der Kilo App hinzugefügt.", "subscribe": "Abonnieren", "subscribeDescription": "Monatliche Credits mit Bonus-Fortschritt", "manage": "Verwalten", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass ausstehend", "statusCanceling": "Kilo Pass wird storniert", "statusPastDue": "Kilo Pass überfällig", - "monthlyCredits": "${{credits}} monatliche Credits", + "monthlyCredits": "{{credits}} monatliche Credits", "ends": "Endet {{date}}", "periodEnd": "Ende des Zeitraums", "managedOnGooglePlay": "Verwaltet über Google Play", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "Du hast keine Berechtigung, diesen Pull Request anzusehen.", "checkConnection": "Verbindung prüfen", "checks": { - "checksCount": "{{count}} Checks", + "checksCount": "{{displayCount}} Checks", "couldNotLoad": "Checks konnten nicht geladen werden.", - "failed": "{{count}} fehlgeschlagen", + "failed": "{{displayCount}} fehlgeschlagen", "noAccess": "Du hast keinen Zugriff auf die Checks dieses Repositories.", "noChecksReported": "Keine Checks gemeldet", "notAvailable": "Checks sind noch nicht verfügbar. Der Head-Commit wurde möglicherweise noch nicht verarbeitet oder die Kilo GitHub App ist nicht auf dem Head-Repository installiert.", "openDetails": "Details zu {{name}} öffnen", - "passed": "{{count}} bestanden", - "pending": "{{count}} ausstehend", + "passed": "{{displayCount}} bestanden", + "pending": "{{displayCount}} ausstehend", "retryChecks": "Checks erneut versuchen", - "skipped": "{{count}} übersprungen", + "skipped": "{{displayCount}} übersprungen", "title": "Checks", "viewOnGitHub": "PR auf GitHub ansehen", "checkDetails": "Check-Details", @@ -2238,7 +2265,7 @@ "terminal": "Dieser Benutzer kann nicht gemeldet werden." } }, - "moreLinesAbove": "… {{count}} weitere Zeilen darüber", + "moreLinesAbove": "… {{displayCount}} weitere Zeilen darüber", "mute": "Stummschalten", "mutedUser": "{{login}} stummgeschaltet", "noDiscussion": "Noch keine Diskussion", @@ -2246,7 +2273,7 @@ "comment_one": "1 Kommentar", "outdated": "Veraltet", "quotedDiffSnippet": "Zitierter Diff-Ausschnitt", - "reactionPill": "{{emoji}} Reaktion, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} Reaktion, {{displayCount}} {{countLabel}}", "reaction": "Reaktionen", "reaction_other": "Reaktionen", "reaction_one": "Reaktion", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "Kontext bei dieser Referenz nicht verfügbar", "expandAll": "Alle ausklappen", - "expandAllLines": "Alle {{count}} Zeilen ausklappen", + "expandAllLines": "Alle {{displayCount}} Zeilen ausklappen", "expandContext": "Kontext ausklappen", - "expandLines": "{{count}} Zeilen ausklappen ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} Kontextzeilen ausklappen", + "expandLines": "{{displayCount}} Zeilen ausklappen ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} Kontextzeilen ausklappen", "expandMoreContext": "Mehr Kontext ausklappen", - "expandMoreLines": "{{count}} weitere Zeilen ausklappen ({{start}}–{{end}})", + "expandMoreLines": "{{displayCount}} weitere Zeilen ausklappen ({{start}}–{{end}})", "failedToLoadContext": "Kontext konnte nicht geladen werden — zum erneuten Versuch tippen", "failedToLoadMoreFiles": "Weitere Dateien konnten nicht geladen werden — zum erneuten Versuch tippen", "fileLoadedCount_one": "{{displayCount}} Datei geladen", @@ -2500,8 +2527,8 @@ "pendingComment_one": "ausstehender Kommentar", "summaryOptional": "Zusammenfassung (optional)", "title": "Review senden", - "partialPostedMessage": "{{freshCount}} Kommentar(e) gesendet. {{staleCount}} Kommentar(e) beziehen sich auf einen älteren Commit und bleiben in deiner Warteschlange.", - "submitCountOfTotal": "{{freshCount}} von {{totalCount}} Kommentaren senden", + "partialPostedMessage": "{{displayFreshCount}} Kommentar(e) gesendet. {{displayStaleCount}} Kommentar(e) beziehen sich auf einen älteren Commit und bleiben in deiner Warteschlange.", + "submitCountOfTotal": "{{displayFreshCount}} von {{displayTotalCount}} Kommentaren senden", "submitReview": "Review senden" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index 33b80a781e..fbc53d3a94 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -206,11 +206,11 @@ "loadingLines": "Φόρτωση {{loaded}} από {{total}} γραμμές…", "expandContext": "Επέκταση περιεχομένου", "expandMoreContext": "Επέκταση περισσότερου περιεχομένου", - "expandLines": "Επέκταση {{count}} γραμμών ({{start}}–{{end}})", - "expandMoreLines": "Επέκταση ακόμα {{count}} γραμμών ({{start}}–{{end}})", - "expandLinesOfContext": "Επέκταση {{count}} γραμμών περιεχομένου", + "expandLines": "Επέκταση {{displayCount}} γραμμών ({{start}}–{{end}})", + "expandMoreLines": "Επέκταση ακόμα {{displayCount}} γραμμών ({{start}}–{{end}})", + "expandLinesOfContext": "Επέκταση {{displayCount}} γραμμών περιεχομένου", "expandAll": "Επέκταση όλων", - "expandAllLines": "Επέκταση όλων των {{count}} γραμμών", + "expandAllLines": "Επέκταση όλων των {{displayCount}} γραμμών", "loadingMoreFiles": "Φόρτωση περισσότερων αρχείων…", "retryLoadingNextPage": "Νέα προσπάθεια φόρτωσης επόμενης σελίδας", "failedToLoadMoreFiles": "Δεν ήταν δυνατή η φόρτωση περισσότερων αρχείων — πατήστε για νέα προσπάθεια", @@ -301,7 +301,7 @@ "closeReactions": "Κλείσιμο αντιδράσεων", "reactionsTitle": "Αντιδράσεις", "addReaction": "Προσθήκη αντίδρασης", - "reactionPill": "{{emoji}} αντίδραση, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} αντίδραση, {{displayCount}} {{countLabel}}", "reaction_one": "αντίδραση", "reaction": "αντιδράσεις", "reaction_other": "αντιδράσεις", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Δεν υπάρχουν νήματα αναθεώρησης ή σχόλια συνομιλίας σε αυτό το pull request.", "reviewFiles": "Αρχεία αναθεώρησης", "quotedDiffSnippet": "Απόσπασμα diff σε εισαγωγικά", - "moreLinesAbove": "… {{count}} επιπλέον γραμμές παραπάνω", + "moreLinesAbove": "… {{displayCount}} επιπλέον γραμμές παραπάνω", "termsAcceptRequired": "Πρέπει να αποδεχτείτε τους Όρους χρήσης για να δημοσιεύσετε.", "termsOutdatedCopy": "Οι Όροι χρήσης άλλαξαν. Ανοίξτε ξανά αυτή την οθόνη για να αποδεχτείτε την τελευταία έκδοση.", "termsCheckRetryCopy": "Δεν ήταν δυνατός ο έλεγχος των Όρων χρήσης. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά." @@ -395,11 +395,11 @@ "retryChecks": "Νέα προσπάθεια ελέγχων", "viewOnGitHub": "Προβολή PR στο GitHub", "noChecksReported": "Δεν αναφέρθηκαν έλεγχοι", - "passed": "{{count}} πέρασαν", - "failed": "{{count}} απέτυχαν", - "pending": "{{count}} σε εκκρεμότητα", - "skipped": "{{count}} παραλείφθηκαν", - "checksCount": "{{count}} έλεγχοι", + "passed": "{{displayCount}} πέρασαν", + "failed": "{{displayCount}} απέτυχαν", + "pending": "{{displayCount}} σε εκκρεμότητα", + "skipped": "{{displayCount}} παραλείφθηκαν", + "checksCount": "{{displayCount}} έλεγχοι", "checkDetails": "λεπτομέρειες ελέγχου", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "εκκρεμές σχόλιο", "pendingComment": "εκκρεμή σχόλια", "pendingComment_other": "εκκρεμή σχόλια", - "submitCountOfTotal": "Υποβολή {{freshCount}} από {{totalCount}} σχόλια", + "submitCountOfTotal": "Υποβολή {{displayFreshCount}} από {{displayTotalCount}} σχόλια", "submitReview": "Υποβολή αναθεώρησης", - "partialPostedMessage": "Δημοσιεύτηκαν {{freshCount}} σχόλιο(α). {{staleCount}} σχόλιο(α) αναφέρονται σε παλαιότερο commit και παρέμειναν στην ουρά σας." + "partialPostedMessage": "Δημοσιεύτηκαν {{displayFreshCount}} σχόλιο(α). {{displayStaleCount}} σχόλιο(α) αναφέρονται σε παλαιότερο commit και παρέμειναν στην ουρά σας." }, "reconnectNotice": { "title": "Η σύνδεση GitHub έληξε", @@ -580,7 +580,8 @@ "agents": "Πράκτορες", "profile": "Προφίλ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, καρτέλα, {{position}} από {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Πρόσφατα", "common": "Κοινά", "reactWith": "Αντίδραση με {{reaction}}", - "accessibility": "{{emoji}} αντίδραση, {{count}}" + "accessibility": "{{emoji}} αντίδραση, {{displayCount}}" }, "composer": { "replyingTo": "Απάντηση σε", @@ -650,7 +651,7 @@ "imageUnavailable": "Η εικόνα δεν είναι διαθέσιμη", "openFailed": "Δεν ήταν δυνατό το άνοιγμα του συνημμένου. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά.", "attachFailed": "Δεν ήταν δυνατή η επισύναψη του αρχείου", - "limit": "Μπορείτε να επισυνάψετε έως και {{count}} αρχεία.", + "limit": "Μπορείτε να επισυνάψετε έως και {{displayCount}} αρχεία.", "sizeRejection": "Το {{filename}} υπερβαίνει το όριο επισύναψης {{limit}}.", "unreadable": "Δεν ήταν δυνατή η ανάγνωση του {{filename}}.", "pastedImage": "η επικολλημένη εικόνα", @@ -722,6 +723,7 @@ "finalTermEnds": "Η τελική περίοδος λήγει", "afterFinalTerm": "Μετά την τελική περίοδο", "remaining": "Υπόλοιπο", + "lessThanOneDay": "Λιγότερο από 1 ημέρα", "ends": "Λήγει", "expires": "Λήγει", "noActivePlan": "Κανένα ενεργό πλάνο", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "η μηνιαία σας τιμή Standard", "perMonth": "/μήνα", "earlybirdAccessUntil": "Πρόσβαση Earlybird έως {{date}}", - "earlybirdEnding": "Η Earlybird λήγει: {{days}} ημέρες απομένουν", + "earlybirdEnding": "Η Earlybird λήγει: {{remaining}}", "paymentPastDue": "Εκπρόθεσμη πληρωμή. Ενημερώστε τη μέθοδο πληρωμής σας.", "subscriptionCancels": "Η συνδρομή ακυρώνεται στις {{date}}", - "trialDaysRemaining": "Δοκιμή: {{days}} ημέρες απομένουν", - "trialEndingSoon": "Η δοκιμή λήγει σύντομα: {{days}}" + "trialDaysRemaining": "Δοκιμή: {{remaining}} απομένουν", + "trialEndingSoon": "Η δοκιμή λήγει σύντομα: {{remaining}}" }, "changelog": { "title": "Τι νέο υπάρχει", @@ -996,7 +998,7 @@ "stalledTitle": "Κάτι κόλλησε", "stalledBody": "Δεν μπορέσαμε να ολοκληρώσουμε τη ρύθμιση του/της {{name}}. Δοκιμάστε ξανά ή στείλτε email στο hi@kilo.ai αν αυτό συνεχίζεται.", "timeoutTitle": "Διαρκεί περισσότερο από το αναμενόμενο", - "timeoutBody": "Η ρύθμιση του/της {{name}} διαρκεί περισσότερο από το συνηθισμένο (πάνω από {{minutes}} λεπτά).", + "timeoutBody": "Η ρύθμιση του/της {{name}} διαρκεί περισσότερο από το συνηθισμένο (πάνω από {{displayMinutes}} λεπτά).", "continueInBackground": "Συνέχεια στο παρασκήνιο", "settingUp": "Ρύθμιση του/της {{name}}", "finishingSetup": "Ολοκλήρωση ρύθμισης", @@ -1287,7 +1289,7 @@ "mergeGate": "Πύλη συγχώνευσης", "repositories": "Repositories", "allRepositories": "Όλα τα repositories", - "nSelected": "{{count}} επιλεγμένα", + "nSelected": "{{displayCount}} επιλεγμένα", "reviewMemory": "Μνήμη αναθεώρησης", "proposedReviewMdGuidance": "Προτεινόμενη οδηγία REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "Αναλύθηκε", "exploitabilityReasoning": "Σκεπτικό αξιοποίησης", "suggestedFix": "Προτεινόμενη διόρθωση", - "whereFound": "Πού βρέθηκε αυτό ({{count}})", + "whereFound": "Πού βρέθηκε αυτό ({{displayCount}})", "fullReport": "Πλήρης αναφορά που δημιουργήθηκε", "unknown": "Άγνωστο", "yes": "Ναι", "no": "Όχι" }, "dashboard": { - "findingsCount": "{{count}} ευρήματα", + "findingsCount": "{{displayCount}} ευρήματα", "notMeasured": "Δεν μετρήθηκε", "actFirst": "Δράστε πρώτα", "slaPosture": "Στάση SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Σχέδιο δράσης αποθετηρίου", "noOpenFindings": "Κανένα ανοιχτό εύρημα δεν χρήζει προσοχής", "deadlineToday": "Η προθεσμία έφτασε σήμερα", - "daysOverdue": "{{count}} ημέρες εκπρόθεσμο", + "daysOverdue": "{{displayCount}} ημέρες εκπρόθεσμο", "withinDeadline": "Εντός προθεσμίας", "criticalOverdue": "Κρίσιμο εκπρόθεσμο", "highOverdue": "Υψηλό εκπρόθεσμο", @@ -1435,6 +1437,27 @@ "syncQueued": "Συγχρονισμός σε αναμονή", "syncStatusUnavailable": "Η κατάσταση συγχρονισμού δεν είναι διαθέσιμη" }, + "dashboardMetrics": { + "openFindings": "Ανοιχτά ευρήματα", + "openFindingsDetail": "{{critical}} κρίσιμα, {{high}} υψηλά", + "confirmedExploitable": "Επιβεβαιωμένα αξιοποιήσιμο", + "confirmedExploitableDetail": "Ο κίνδυνος του έργου επιβεβαιώθηκε μέσω ανάλυσης", + "needsReview": "Χρήζει της αναθεώρησής σας", + "needsReviewDetail": "Απαιτείται ανθρώπινη απόφαση", + "analysisIncomplete": "Ανάλυση μη ολοκληρωμένη", + "analysisIncompleteDetail": "Ο κίνδυνος του έργου είναι ακόμη άγνωστος", + "slaCompliance": "Συμμόρφωση SLA", + "notMeasured": "Δεν μετρήθηκε", + "withinDeadlineDetail": "{{within}} από {{total}} εντός προθεσμίας", + "noDeadlineData": "Κανένα εύρημα δεν έχει προθεσμία SLA ακόμη", + "deadlinePassed": "Η προθεσμία παρήλθε", + "deadlinePassedDetail": "{{critical}} κρίσιμα, {{high}} υψηλά", + "dueThisWeek": "Λήγει αυτή την εβδομάδα", + "dueThisWeekDetail": "{{exploitable}} επιβεβαιωμένα αξιοποιήσιμα", + "noDeadline": "Χωρίς προθεσμία", + "reviewSlaAssignment": "Αναθεώρηση ανάθεσης SLA", + "allOpenFindingsTracked": "Όλα τα ανοιχτά ευρήματα παρακολουθούνται" + }, "dismiss": { "title": "Απόρριψη ευρήματος", "submit": "Απόρριψη ευρήματος", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Ανάλυση {{mode}}", "automation": "Αυτοματοποίηση", "automationAllOff": "Όλα ανενεργά", - "automationCount": "{{count}} από 3 ενεργά", + "automationCount": "{{displayCount}} από 3 ενεργά", "notifications": "Ειδοποιήσεις", - "notificationsCount": "{{count}} από 2 ενεργά", + "notificationsCount": "{{displayCount}} από 2 ενεργά", "slaPolicy": "Πολιτική SLA", "disabledNoManage": "Ο Security Agent είναι ανενεργός. Μόνο οι ιδιοκτήτες οργανισμού και οι διαχειριστές χρέωσης μπορούν να τον ενεργοποιήσουν.", "disabledNoRepo": "Επιλέξτε τουλάχιστον ένα αποθετήριο πριν ενεργοποιήσετε τον Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Άνοιγμα pull request{{number}}", "openDraftPullRequest": "Άνοιγμα πρόχειρου pull request{{number}}", "progress": "Πρόοδος", - "attemptHistory": "Ιστορικό προσπαθειών ({{count}})", + "attemptHistory": "Ιστορικό προσπαθειών ({{displayCount}})", "attemptNumber": "Προσπάθεια #{{number}}", "startedBy": "Ξεκίνησε από", "model": "Μοντέλο", @@ -1855,9 +1878,9 @@ "toolTask": "εργασία", "readTodos": "Ανάγνωση εκκρεμοτήτων", "updateTodos": "Ενημέρωση εκκρεμοτήτων", - "linesBadge": "{{count}} γραμμές", - "filesBadge": "{{count}} αρχεία", - "matchesBadge": "{{count}} αντιστοιχίες" + "linesBadge": "{{displayCount}} γραμμές", + "filesBadge": "{{displayCount}} αρχεία", + "matchesBadge": "{{displayCount}} αντιστοιχίες" }, "readToolMarkdown": { "linesTruncated": "γραμμές {{start}}–{{end}} (περικομμένες)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Αυτή η απόκριση δεν μπορεί να αναφερθεί.", "reportAiResponseSubmitted": "Η αναφορά υποβλήθηκε. Απόδειξη {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Οι λεπτομέρειες δεν είναι διαθέσιμες", "textDisplay": "Εμφάνιση κειμένου", @@ -1999,7 +2026,7 @@ "preparationComplete": "Η προετοιμασία ολοκληρώθηκε", "preparationFailed": "Η προετοιμασία απέτυχε", "setupCommand": "Εντολή ρύθμισης {{index}}", - "setupCommandOf": "Εντολή ρύθμισης {{index}} από {{count}}" + "setupCommandOf": "Εντολή ρύθμισης {{index}} από {{displayCount}}" }, "permissionCard": { "title": "Απαιτείται άδεια", @@ -2036,7 +2063,7 @@ "submissionFailed": "Η υποβολή απέτυχε. Δοκιμάστε ξανά.", "questionAnnouncement": "Ο πράκτορας χρειάζεται την απάντησή σας. Ο σύνθετος είναι σε παύση όσο απαντάτε.", "permissionAnnouncement": "Ο πράκτορας χρειάζεται άδεια για να συνεχίσει. Ο σύνθετος είναι σε παύση όσο αποφασίζετε.", - "positionHint": "(1 από {{count}})", + "positionHint": "(1 από {{displayCount}})", "movedPastPrompt": "Ο πράκτορας προχώρησε πέρα από αυτό το μήνυμα. Αυτή η κάρτα θα κλείσει όταν συνεχιστεί η συνεδρία.", "waitingForAnswer": "Ο πράκτορας περιμένει την απάντησή σας. Όσο αυτή η ερώτηση είναι ανοιχτή, το μήνυμά σας προς τον πράκτορα είναι σε παύση.", "waitingForPermission": "Ο πράκτορας περιμένει άδεια. Όσο αυτό το αίτημα είναι ανοιχτό, το μήνυμά σας προς τον πράκτορα είναι σε παύση." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Η πρόσβαση στην κάμερα είναι απενεργοποιημένη", "cameraAccessMessage": "Επιτρέψτε την πρόσβαση στην κάμερα στις Ρυθμίσεις για να τραβήξετε φωτογραφία.", "couldNotOpenPhotoPicker": "Δεν ήταν δυνατό το άνοιγμα του επιλογέα φωτογραφιών. Επανεκκινήστε το Kilo και δοκιμάστε ξανά.", - "maxFilesAllowed": "Επιτρέπονται έως {{count}} αρχεία", + "maxFilesAllowed": "Επιτρέπονται έως {{displayCount}} αρχεία", "onlyAddingFiles": "Προστίθενται μόνο {{accepted}} από τα {{total}} αρχεία (μέγιστο {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "κόστος {{cost}}", "costSuffix": ", κόστος {{cost}}", "tokensWindowUnavailable": "Πλαίσιο {{used}} διακριτικών, παράθυρο μη διαθέσιμο", - "tokensUsage": "Πλαίσιο {{used}} από {{window}} διακριτικά, {{percentage}}% χρησιμοποιημένα", + "tokensUsage": "Πλαίσιο {{used}} από {{window}} διακριτικά, {{percentage}} χρησιμοποιημένα", "title": "Χρήση πλαισίου", "used": "Χρησιμοποιήθηκε", "remaining": "Υπόλοιπο", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Η χρήση αντικατοπτρίζει την τελευταία ολοκληρωμένη απάντηση του βοηθού.", "tokenUsage": "Χρήση διακριτικών", "cacheRate": "Ρυθμός κρυφής μνήμης", - "modelsCount": "Μοντέλα ({{count}})", + "modelsCount": "Μοντέλα ({{displayCount}})", "tokenTotalsNote": "Τα σύνολα διακριτικών καλύπτουν μόνο αυτή τη συνεδρία και εξαιρούν τα διακριτικά υποπρακτόρων/παιδικών συνεδριών.", "subagents": "Υποπράκτορες", "subagentsDescription": "Υπολειπόμενο κόστος από παιδικές συνεδρίες", @@ -2373,7 +2400,7 @@ "connectedCli": "Σε συνδεδεμένο CLI", "newSessionOn": "Νέα συνεδρία στο {{name}}", "noMatchingSessions": "Δεν υπάρχουν αντίστοιχες συνεδρίες.", - "onlyFirstFilesAttached": "Θα προσαρτηθούν μόνο τα πρώτα {{count}} αρχεία.", + "onlyFirstFilesAttached": "Θα προσαρτηθούν μόνο τα πρώτα {{displayCount}} αρχεία.", "staleMessage": "Αυτή η κοινή χρήση δεν είναι πλέον διαθέσιμη.", "retryableMessage": "Δεν ήταν δυνατή η φόρτωση των συνεδριών σας.", "emptyMessage": "Δεν υπάρχουν ακόμη συνεδρίες — ξεκινήστε μια νέα για να στείλετε αυτό.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Το Kilo Pass σε αυτόν τον Λογαριασμό Apple ανήκει σε διαφορετικό λογαριασμό Kilo. Συνδεθείτε σε αυτόν τον λογαριασμό Kilo για να τον διαχειριστείτε.", "alreadySubscribed": "Έχετε ήδη συνδρομή στο Kilo Pass.", "purchaseUnavailable": "Η αγορά του Kilo Pass δεν είναι διαθέσιμη αυτή τη στιγμή.", - "tierCredits": "${{amount}} σε πιστώσεις", + "tierCredits": "{{amount}} σε πιστώσεις", "perMonth": "{{price}}/μήνα", "verifyPurchaseFailed": "Δεν ήταν δυνατή η επαλήθευση της αγοράς σας. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά.", "productsCouldNotLoad": "Δεν ήταν δυνατή η φόρτωση των προϊόντων Kilo Pass από το App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Αποτυχία ανοίγματος της διαχείρισης συνδρομών του App Store.", "kiloPassSetup": "Ρύθμιση Kilo Pass", "subscriptionHeaderDescription": "Μια μηνιαία συνδρομή που προσθέτει πιστώσεις στο υπόλοιπό σας Kilo για την εκτέλεση συνεδριών προγραμματισμού με AI στην Εφαρμογή Kilo — Cloud Agents, απομακρυσμένες συνεδρίες και συνομιλίες KiloClaw.", - "tierDescription": "Πιστώσεις ${{price}} που προστίθενται μηνιαίως για χρήση της Εφαρμογής Kilo.", + "tierDescription": "Πιστώσεις {{price}} που προστίθενται μηνιαίως για χρήση της Εφαρμογής Kilo.", "subscribe": "Εγγραφή", "subscribeDescription": "Μηνιαίες πιστώσεις με πρόσθετη πρόοδο μπόνους", "manage": "Διαχείριση", @@ -2425,7 +2452,7 @@ "statusPending": "Το Kilo Pass εκκρεμεί", "statusCanceling": "Το Kilo Pass ακυρώνεται", "statusPastDue": "Το Kilo Pass είναι ληξιπρόθεσμο", - "monthlyCredits": "${{credits}} μηνιαίες πιστώσεις", + "monthlyCredits": "{{credits}} μηνιαίες πιστώσεις", "ends": "Λήγει {{date}}", "periodEnd": "τέλος περιόδου", "managedOnGooglePlay": "Διαχείριση στο Google Play", diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index 9e784078e6..6e21cee2af 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -206,11 +206,11 @@ "loadingLines": "Loading {{loaded}} of {{total}} lines…", "expandContext": "Expand context", "expandMoreContext": "Expand more context", - "expandLines": "Expand {{count}} lines ({{start}}–{{end}})", - "expandMoreLines": "Expand more {{count}} lines ({{start}}–{{end}})", - "expandLinesOfContext": "Expand {{count}} lines of context", + "expandLines": "Expand {{displayCount}} lines ({{start}}–{{end}})", + "expandMoreLines": "Expand more {{displayCount}} lines ({{start}}–{{end}})", + "expandLinesOfContext": "Expand {{displayCount}} lines of context", "expandAll": "Expand all", - "expandAllLines": "Expand all {{count}} lines", + "expandAllLines": "Expand all {{displayCount}} lines", "loadingMoreFiles": "Loading more files…", "retryLoadingNextPage": "Retry loading next page", "failedToLoadMoreFiles": "Failed to load more files — tap to retry", @@ -301,7 +301,7 @@ "closeReactions": "Close reactions", "reactionsTitle": "Reactions", "addReaction": "Add reaction", - "reactionPill": "{{emoji}} reaction, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaction, {{displayCount}} {{countLabel}}", "reaction_one": "reaction", "reaction": "reactions", "reaction_other": "reactions", @@ -353,7 +353,7 @@ "noDiscussionDescription": "No review threads or conversation comments on this pull request.", "reviewFiles": "Review files", "quotedDiffSnippet": "Quoted diff snippet", - "moreLinesAbove": "… {{count}} more lines above", + "moreLinesAbove": "… {{displayCount}} more lines above", "termsAcceptRequired": "You must accept the Terms of Service to post.", "termsOutdatedCopy": "The Terms of Service changed. Reopen this screen to accept the latest version.", "termsCheckRetryCopy": "Couldn't check the Terms of Service. Check your connection and try again." @@ -395,11 +395,11 @@ "retryChecks": "Retry checks", "viewOnGitHub": "View PR on GitHub", "noChecksReported": "No checks reported", - "passed": "{{count}} passed", - "failed": "{{count}} failed", - "pending": "{{count}} pending", - "skipped": "{{count}} skipped", - "checksCount": "{{count}} checks", + "passed": "{{displayCount}} passed", + "failed": "{{displayCount}} failed", + "pending": "{{displayCount}} pending", + "skipped": "{{displayCount}} skipped", + "checksCount": "{{displayCount}} checks", "checkDetails": "check details", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "pending comment", "pendingComment": "pending comments", "pendingComment_other": "pending comments", - "submitCountOfTotal": "Submit {{freshCount}} of {{totalCount}} comments", + "submitCountOfTotal": "Submit {{displayFreshCount}} of {{displayTotalCount}} comments", "submitReview": "Submit review", - "partialPostedMessage": "Posted {{freshCount}} comment(s). {{staleCount}} comment(s) point at an older commit and stayed in your queue." + "partialPostedMessage": "Posted {{displayFreshCount}} comment(s). {{displayStaleCount}} comment(s) point at an older commit and stayed in your queue." }, "reconnectNotice": { "title": "GitHub connection expired", @@ -580,7 +580,8 @@ "agents": "Agents", "profile": "Profile", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} of {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Recent", "common": "Common", "reactWith": "React with {{reaction}}", - "accessibility": "{{emoji}} reaction, {{count}}" + "accessibility": "{{emoji}} reaction, {{displayCount}}" }, "composer": { "replyingTo": "Replying to", @@ -650,7 +651,7 @@ "imageUnavailable": "Image unavailable", "openFailed": "Couldn't open attachment. Check your connection and try again.", "attachFailed": "Failed to attach file", - "limit": "You can attach up to {{count}} files.", + "limit": "You can attach up to {{displayCount}} files.", "sizeRejection": "{{filename}} exceeds the {{limit}} attachment limit.", "unreadable": "Couldn't read {{filename}}.", "pastedImage": "the pasted image", @@ -722,6 +723,7 @@ "finalTermEnds": "Final term ends", "afterFinalTerm": "After final term", "remaining": "Remaining", + "lessThanOneDay": "Less than 1 day", "ends": "Ends", "expires": "Expires", "noActivePlan": "No active plan", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "your Standard monthly price", "perMonth": "/month", "earlybirdAccessUntil": "Earlybird access until {{date}}", - "earlybirdEnding": "Earlybird ending: {{days}} days left", + "earlybirdEnding": "Earlybird ending: {{remaining}}", "paymentPastDue": "Payment past due. Please update your payment method.", "subscriptionCancels": "Subscription cancels {{date}}", - "trialDaysRemaining": "Trial: {{days}} days remaining", - "trialEndingSoon": "Trial ending soon: {{days}}" + "trialDaysRemaining": "Trial: {{remaining}} remaining", + "trialEndingSoon": "Trial ending soon: {{remaining}}" }, "changelog": { "title": "What's New", @@ -996,7 +998,7 @@ "stalledTitle": "Something stalled", "stalledBody": "We couldn't finish setting up {{name}}. Try again, or email hi@kilo.ai if this keeps happening.", "timeoutTitle": "Taking longer than expected", - "timeoutBody": "Setup for {{name}} is taking longer than usual (over {{minutes}} minutes).", + "timeoutBody": "Setup for {{name}} is taking longer than usual (over {{displayMinutes}} minutes).", "continueInBackground": "Continue in background", "settingUp": "Setting up {{name}}", "finishingSetup": "Finishing setup", @@ -1287,7 +1289,7 @@ "mergeGate": "Merge gate", "repositories": "Repositories", "allRepositories": "All repositories", - "nSelected": "{{count}} selected", + "nSelected": "{{displayCount}} selected", "reviewMemory": "Review memory", "proposedReviewMdGuidance": "Proposed REVIEW.md guidance" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analyzed", "exploitabilityReasoning": "Exploitability reasoning", "suggestedFix": "Suggested fix", - "whereFound": "Where this was found ({{count}})", + "whereFound": "Where this was found ({{displayCount}})", "fullReport": "Full generated report", "unknown": "Unknown", "yes": "Yes", "no": "No" }, "dashboard": { - "findingsCount": "{{count}} findings", + "findingsCount": "{{displayCount}} findings", "notMeasured": "Not measured", "actFirst": "Act first", "slaPosture": "SLA posture", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Repository action plan", "noOpenFindings": "No open findings need attention", "deadlineToday": "Deadline reached today", - "daysOverdue": "{{count}} days overdue", + "daysOverdue": "{{displayCount}} days overdue", "withinDeadline": "Within deadline", "criticalOverdue": "Critical overdue", "highOverdue": "High overdue", @@ -1435,6 +1437,27 @@ "syncQueued": "Sync queued", "syncStatusUnavailable": "Sync status unavailable" }, + "dashboardMetrics": { + "openFindings": "Open findings", + "openFindingsDetail": "{{critical}} critical, {{high}} high", + "confirmedExploitable": "Confirmed exploitable", + "confirmedExploitableDetail": "Project risk confirmed by analysis", + "needsReview": "Needs your review", + "needsReviewDetail": "Human decision required", + "analysisIncomplete": "Analysis not complete", + "analysisIncompleteDetail": "Project risk still unknown", + "slaCompliance": "SLA compliance", + "notMeasured": "Not measured", + "withinDeadlineDetail": "{{within}} of {{total}} within deadline", + "noDeadlineData": "No findings have an SLA deadline yet", + "deadlinePassed": "Deadline passed", + "deadlinePassedDetail": "{{critical}} critical, {{high}} high", + "dueThisWeek": "Due this week", + "dueThisWeekDetail": "{{exploitable}} confirmed exploitable", + "noDeadline": "No deadline", + "reviewSlaAssignment": "Review SLA assignment", + "allOpenFindingsTracked": "All open findings tracked" + }, "dismiss": { "title": "Dismiss finding", "submit": "Dismiss finding", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} analysis", "automation": "Automation", "automationAllOff": "All off", - "automationCount": "{{count}} of 3 enabled", + "automationCount": "{{displayCount}} of 3 enabled", "notifications": "Notifications", - "notificationsCount": "{{count}} of 2 enabled", + "notificationsCount": "{{displayCount}} of 2 enabled", "slaPolicy": "SLA policy", "disabledNoManage": "Security Agent is disabled. Only organization owners and billing managers can turn it on.", "disabledNoRepo": "Select at least one repository before enabling Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Open pull request{{number}}", "openDraftPullRequest": "Open draft pull request{{number}}", "progress": "Progress", - "attemptHistory": "Attempt history ({{count}})", + "attemptHistory": "Attempt history ({{displayCount}})", "attemptNumber": "Attempt #{{number}}", "startedBy": "Started by", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "Read todos", "updateTodos": "Update todos", - "linesBadge": "{{count}} lines", - "filesBadge": "{{count}} files", - "matchesBadge": "{{count}} matches" + "linesBadge": "{{displayCount}} lines", + "filesBadge": "{{displayCount}} files", + "matchesBadge": "{{displayCount}} matches" }, "readToolMarkdown": { "linesTruncated": "lines {{start}}–{{end}} (truncated)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "This response can't be reported.", "reportAiResponseSubmitted": "Report submitted. Receipt {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Details unavailable", "textDisplay": "Text display", @@ -1999,7 +2026,7 @@ "preparationComplete": "Preparation complete", "preparationFailed": "Preparation failed", "setupCommand": "Setup command {{index}}", - "setupCommandOf": "Setup command {{index}} of {{count}}" + "setupCommandOf": "Setup command {{index}} of {{displayCount}}" }, "permissionCard": { "title": "Permission required", @@ -2036,7 +2063,7 @@ "submissionFailed": "Submission failed. Please try again.", "questionAnnouncement": "Agent needs your input. The composer is paused while you answer.", "permissionAnnouncement": "Agent needs permission to continue. The composer is paused while you decide.", - "positionHint": "(1 of {{count}})", + "positionHint": "(1 of {{displayCount}})", "movedPastPrompt": "The agent has moved past this prompt. This card will close when the session continues.", "waitingForAnswer": "The agent is waiting for your answer. While this question is open, your message to the agent is paused.", "waitingForPermission": "The agent is waiting for permission. While this request is open, your message to the agent is paused." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Camera Access Disabled", "cameraAccessMessage": "Allow camera access in Settings to take a photo.", "couldNotOpenPhotoPicker": "Could not open the photo picker. Restart Kilo and try again.", - "maxFilesAllowed": "Maximum {{count}} files allowed", + "maxFilesAllowed": "Maximum {{displayCount}} files allowed", "onlyAddingFiles": "Only adding {{accepted}} of {{total}} files (max {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "cost {{cost}}", "costSuffix": ", cost {{cost}}", "tokensWindowUnavailable": "Context {{used}} tokens, window unavailable", - "tokensUsage": "Context {{used}} of {{window}} tokens, {{percentage}}% used", + "tokensUsage": "Context {{used}} of {{window}} tokens, {{percentage}} used", "title": "Context usage", "used": "Used", "remaining": "Remaining", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Usage reflects the latest completed assistant response.", "tokenUsage": "Token usage", "cacheRate": "Cache rate", - "modelsCount": "Models ({{count}})", + "modelsCount": "Models ({{displayCount}})", "tokenTotalsNote": "Token totals cover this session only and exclude subagent/child-session tokens.", "subagents": "Subagents", "subagentsDescription": "Residual cost from child sessions", @@ -2373,7 +2400,7 @@ "connectedCli": "On a connected CLI", "newSessionOn": "New session on {{name}}", "noMatchingSessions": "No matching sessions.", - "onlyFirstFilesAttached": "Only the first {{count}} files will be attached.", + "onlyFirstFilesAttached": "Only the first {{displayCount}} files will be attached.", "staleMessage": "This share is no longer available.", "retryableMessage": "Couldn't load your sessions.", "emptyMessage": "No sessions yet — start a new one to send this.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "The Kilo Pass on this Apple Account belongs to a different Kilo account. Sign in to that Kilo account to manage it.", "alreadySubscribed": "You already have a Kilo Pass subscription.", "purchaseUnavailable": "Kilo Pass purchase is not available right now.", - "tierCredits": "${{amount}} in credits", + "tierCredits": "{{amount}} in credits", "perMonth": "{{price}}/mo", "verifyPurchaseFailed": "Couldn't verify your purchase. Check your connection and try again.", "productsCouldNotLoad": "Kilo Pass products could not be loaded from App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Failed to open App Store subscription management.", "kiloPassSetup": "Kilo Pass setup", "subscriptionHeaderDescription": "A monthly subscription that adds credits to your Kilo balance for running AI coding sessions in Kilo App — Cloud Agents, remote sessions, and KiloClaw chats.", - "tierDescription": "${{price}} paid credits added monthly for Kilo App usage.", + "tierDescription": "{{price}} paid credits added monthly for Kilo App usage.", "subscribe": "Subscribe", "subscribeDescription": "Monthly credits with bonus progress", "manage": "Manage", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass pending", "statusCanceling": "Kilo Pass canceling", "statusPastDue": "Kilo Pass past due", - "monthlyCredits": "${{credits}} monthly credits", + "monthlyCredits": "{{credits}} monthly credits", "ends": "Ends {{date}}", "periodEnd": "period end", "managedOnGooglePlay": "Managed on Google Play", diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index 0d1abf4ce8..f144ce1eaf 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -201,7 +201,8 @@ "agents": "Agentes", "profile": "Perfil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, pestaña, {{position}} de {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Recientes", "common": "Comunes", "reactWith": "Reaccionar con {{reaction}}", - "accessibility": "{{emoji}} reacción, {{count}}" + "accessibility": "{{emoji}} reacción, {{displayCount}}" }, "composer": { "replyingTo": "Respondiendo a", @@ -271,7 +272,7 @@ "imageUnavailable": "Imagen no disponible", "openFailed": "No se pudo abrir el archivo adjunto. Comprueba tu conexión e inténtalo de nuevo.", "attachFailed": "No se pudo adjuntar el archivo", - "limit": "Puedes adjuntar hasta {{count}} archivos.", + "limit": "Puedes adjuntar hasta {{displayCount}} archivos.", "sizeRejection": "{{filename}} supera el límite de {{limit}} para archivos adjuntos.", "unreadable": "No se pudo leer {{filename}}.", "pastedImage": "la imagen pegada", @@ -321,7 +322,8 @@ "someone": "Alguien", "typing_one": "{{name}} está escribiendo...", "typing": "{{names}} están escribiendo...", - "typing_other": "{{names}} están escribiendo..." + "typing_other": "{{names}} están escribiendo...", + "typing_many": "{{names}} están escribiendo..." }, "botStatus": { "online": "En línea", @@ -343,6 +345,7 @@ "finalTermEnds": "El plazo final termina", "afterFinalTerm": "Después del plazo final", "remaining": "Restante", + "lessThanOneDay": "Menos de 1 día", "ends": "Termina", "expires": "Caduca", "noActivePlan": "Sin plan activo", @@ -361,11 +364,11 @@ "yourStandardMonthlyPrice": "tu precio mensual de Standard", "perMonth": "/mes", "earlybirdAccessUntil": "Acceso Earlybird hasta el {{date}}", - "earlybirdEnding": "Earlybird termina: quedan {{days}} días", + "earlybirdEnding": "Earlybird termina: {{remaining}}", "paymentPastDue": "Pago vencido. Actualiza tu método de pago.", "subscriptionCancels": "La suscripción se cancela el {{date}}", - "trialDaysRemaining": "Prueba: quedan {{days}} días", - "trialEndingSoon": "La prueba termina pronto: {{days}}" + "trialDaysRemaining": "Prueba: {{remaining}} restantes", + "trialEndingSoon": "La prueba termina pronto: {{remaining}}" }, "changelog": { "title": "Novedades", @@ -567,7 +570,8 @@ "openSettings": "Abrir los ajustes de {{name}}", "openUnread": "Abrir {{name}}, {{displayCount}} mensajes sin leer", "openUnread_other": "Abrir {{name}}, {{displayCount}} mensajes sin leer", - "openUnread_one": "Abrir {{name}}, {{displayCount}} mensaje sin leer" + "openUnread_one": "Abrir {{name}}, {{displayCount}} mensaje sin leer", + "openUnread_many": "Abrir {{name}}, {{displayCount}} mensajes sin leer" }, "list": { "createInstance": "Crear instancia", @@ -665,7 +669,7 @@ "startingSandbox": "Iniciando el sandbox", "stoppedBody": "La instancia de {{name}} se detuvo de forma inesperada durante la configuración.", "stoppedTitle": "Configuración detenida", - "timeoutBody": "La configuración de {{name}} está tardando más de lo habitual (más de {{minutes}} minutos).", + "timeoutBody": "La configuración de {{name}} está tardando más de lo habitual (más de {{displayMinutes}} minutos).", "timeoutTitle": "Tarda más de lo esperado" }, "unavailableDescription": "Se requiere una suscripción activa a KiloClaw para aprovisionar una instancia. Las instancias y suscripciones existentes continúan con normalidad.", @@ -912,7 +916,7 @@ "focusAreas": "Áreas de enfoque", "mergeGate": "Puerta de fusión", "model": "Modelo", - "nSelected": "{{count}} seleccionados", + "nSelected": "{{displayCount}} seleccionados", "proposedReviewMdGuidance": "Directrices propuestas de REVIEW.md", "repositories": "Repositorios", "reviewMemory": "Memoria de revisión", @@ -981,7 +985,7 @@ "triageReasoning": "Razonamiento del triaje", "unknown": "Desconocido", "watchInCloudAgent": "Ver en Cloud Agent", - "whereFound": "Dónde se encontró ({{count}})", + "whereFound": "Dónde se encontró ({{displayCount}})", "yes": "Sí" }, "analysisSettings": { @@ -1048,7 +1052,8 @@ "severityCriticalOnly": "Solo crítica", "severityHighAndAbove": "Alta y superior", "severityMediumAndAbove": "Media y superior", - "title": "Automatización" + "title": "Automatización", + "queued_many": "{{displayCount}} hallazgos existentes en cola para el análisis." }, "commandRetry": { "discard": "Descartar" @@ -1061,11 +1066,11 @@ "confirmedExploitable": "Explotable confirmado", "couldNotLoad": "No se pudieron cargar los datos del panel", "criticalOverdue": "Crítico vencido", - "daysOverdue": "{{count}} días de retraso", + "daysOverdue": "{{displayCount}} días de retraso", "deadlineToday": "El plazo vence hoy", "filterByRepository": "Filtrar por repositorio", "findings": "Hallazgos", - "findingsCount": "{{count}} hallazgos", + "findingsCount": "{{displayCount}} hallazgos", "highOverdue": "Alto vencido", "lastSynced": "Última sincronización {{time}}", "manageRepositories": "Gestionar repositorios", @@ -1091,6 +1096,27 @@ "syncStatusUnavailable": "Estado de sincronización no disponible", "withinDeadline": "Dentro del plazo" }, + "dashboardMetrics": { + "openFindings": "Hallazgos abiertos", + "openFindingsDetail": "{{critical}} críticos, {{high}} altos", + "confirmedExploitable": "Explotable confirmado", + "confirmedExploitableDetail": "Riesgo del proyecto confirmado por el análisis", + "needsReview": "Necesita tu revisión", + "needsReviewDetail": "Se requiere decisión humana", + "analysisIncomplete": "Análisis no completado", + "analysisIncompleteDetail": "Riesgo del proyecto aún desconocido", + "slaCompliance": "Cumplimiento de SLA", + "notMeasured": "No medido", + "withinDeadlineDetail": "{{within}} de {{total}} dentro del plazo", + "noDeadlineData": "Ningún hallazgo tiene plazo de SLA todavía", + "deadlinePassed": "Plazo vencido", + "deadlinePassedDetail": "{{critical}} críticos, {{high}} altos", + "dueThisWeek": "Vence esta semana", + "dueThisWeekDetail": "{{exploitable}} explotables confirmados", + "noDeadline": "Sin plazo", + "reviewSlaAssignment": "Revisar asignación de SLA", + "allOpenFindingsTracked": "Todos los hallazgos abiertos se rastrean" + }, "dismiss": { "alreadyResolvedDescription": "Este hallazgo ya se ha resuelto y ya no acepta un descarte.", "cannotDismissDescription": "Solo los propietarios de la organización y los administradores de facturación pueden descartar hallazgos.", @@ -1188,7 +1214,7 @@ "title": "Notificaciones" }, "remediation": { - "attemptHistory": "Historial de intentos ({{count}})", + "attemptHistory": "Historial de intentos ({{displayCount}})", "attemptNumber": "Intento n.º {{number}}", "branch": "Rama", "cancelMessage": "Security Agent detendrá el intento de corrección en curso.", @@ -1256,7 +1282,7 @@ "analysisModeSubtitle": "Análisis {{mode}}", "automation": "Automatización", "automationAllOff": "Todo desactivado", - "automationCount": "{{count}} de 3 activados", + "automationCount": "{{displayCount}} de 3 activados", "couldNotLoadPermissions": "No se pudieron cargar los permisos", "couldNotLoadRepositories": "No se pudieron cargar los repositorios", "couldNotLoadSettings": "No se pudieron cargar los ajustes de Security Agent", @@ -1267,7 +1293,7 @@ "enabled": "Activado", "modelsAndAnalysis": "Modelos y análisis", "notifications": "Notificaciones", - "notificationsCount": "{{count}} de 2 activados", + "notificationsCount": "{{displayCount}} de 2 activados", "off": "Desactivado", "on": "Activado", "repositories": "Repositorios", @@ -1278,7 +1304,8 @@ "selectRepositories": "Seleccionar repositorios", "selectRepositoriesSubtitle": "Elige qué repositorios supervisa Security Agent", "slaPolicy": "Política de SLA", - "title": "Ajustes" + "title": "Ajustes", + "repositoriesCount_many": "{{displayCount}} repositorios seleccionados" }, "settingsSave": { "discard": "Descartar", @@ -1355,7 +1382,9 @@ "cent_other": "céntimos", "dollar_one": "dólar", "dollar": "dólares", - "dollar_other": "dólares" + "dollar_other": "dólares", + "cent_many": "céntimos", + "dollar_many": "dólares" }, "githubInstall": { "couldNotOpenMessage": "No pudimos iniciar la configuración de la GitHub App. Inténtalo de nuevo.", @@ -1451,7 +1480,8 @@ "partRenderer": { "updatedFileCount_one": "{{displayCount}} archivo actualizado", "updatedFileCount": "{{displayCount}} archivos actualizados", - "updatedFileCount_other": "{{displayCount}} archivos actualizados" + "updatedFileCount_other": "{{displayCount}} archivos actualizados", + "updatedFileCount_many": "{{displayCount}} archivos actualizados" }, "toolPatch": { "operationAdded": "Añadido", @@ -1476,9 +1506,9 @@ "toolTask": "tarea", "readTodos": "Leer tareas", "updateTodos": "Actualizar tareas", - "linesBadge": "{{count}} líneas", - "filesBadge": "{{count}} archivos", - "matchesBadge": "{{count}} coincidencias" + "linesBadge": "{{displayCount}} líneas", + "filesBadge": "{{displayCount}} archivos", + "matchesBadge": "{{displayCount}} coincidencias" }, "readToolMarkdown": { "linesTruncated": "líneas {{start}}–{{end}} (truncadas)", @@ -1562,6 +1592,10 @@ "reportAiResponseFailedTerminal": "Esta respuesta no se puede reportar.", "reportAiResponseSubmitted": "Reporte enviado. Recibo {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detalles no disponibles", "textDisplay": "Visualización de texto", @@ -1620,7 +1654,7 @@ "preparationComplete": "Preparación completada", "preparationFailed": "La preparación falló", "setupCommand": "Comando de configuración {{index}}", - "setupCommandOf": "Comando de configuración {{index}} de {{count}}" + "setupCommandOf": "Comando de configuración {{index}} de {{displayCount}}" }, "permissionCard": { "title": "Permiso requerido", @@ -1657,7 +1691,7 @@ "submissionFailed": "El envío falló. Inténtalo de nuevo.", "questionAnnouncement": "El agente necesita tu aportación. El editor está en pausa mientras respondes.", "permissionAnnouncement": "El agente necesita permiso para continuar. El editor está en pausa mientras decides.", - "positionHint": "(1 de {{count}})", + "positionHint": "(1 de {{displayCount}})", "movedPastPrompt": "El agente ha superado este aviso. Esta tarjeta se cerrará cuando la sesión continúe.", "waitingForAnswer": "El agente está esperando tu respuesta. Mientras esta pregunta esté abierta, tu mensaje al agente está en pausa.", "waitingForPermission": "El agente está esperando permiso. Mientras esta solicitud esté abierta, tu mensaje al agente está en pausa." @@ -1697,7 +1731,8 @@ "omitted_other": "No se pudieron mostrar {{displayCount}} elementos anteriores de esta sesión.", "couldNotLoad": "No se pudieron cargar los mensajes anteriores.", "unavailable": "Los mensajes anteriores no están disponibles.", - "tooLarge": "Los mensajes anteriores son demasiado grandes para cargar." + "tooLarge": "Los mensajes anteriores son demasiado grandes para cargar.", + "omitted_many": "No se pudieron mostrar {{displayCount}} elementos anteriores de esta sesión." }, "markdownTable": { "viewTable": "Ver tabla", @@ -1709,7 +1744,9 @@ "rowCount_one": "fila", "rowCount": "filas", "rowCount_other": "filas", - "opensFullScreen": "abre a pantalla completa" + "opensFullScreen": "abre a pantalla completa", + "columnCount_many": "columnas", + "rowCount_many": "filas" }, "sessionFilter": { "title": "Filtrar sesiones", @@ -1778,7 +1815,7 @@ "cameraAccessDisabled": "Acceso a la cámara desactivado", "cameraAccessMessage": "Permite el acceso a la cámara en Ajustes para hacer una foto.", "couldNotOpenPhotoPicker": "No se pudo abrir el selector de fotos. Reinicia Kilo e inténtalo de nuevo.", - "maxFilesAllowed": "Máximo {{count}} archivos permitidos", + "maxFilesAllowed": "Máximo {{displayCount}} archivos permitidos", "onlyAddingFiles": "Solo se añaden {{accepted}} de {{total}} archivos (máx. {{max}})" }, "composer": { @@ -1843,7 +1880,7 @@ "costPrefix": "coste {{cost}}", "costSuffix": ", coste {{cost}}", "tokensWindowUnavailable": "Contexto {{used}} tokens, ventana no disponible", - "tokensUsage": "Contexto {{used}} de {{window}} tokens, {{percentage}}% usado", + "tokensUsage": "Contexto {{used}} de {{window}} tokens, {{percentage}} usado", "title": "Uso de contexto", "used": "Usado", "remaining": "Restante", @@ -1852,7 +1889,7 @@ "usageReflectsLatest": "El uso refleja la última respuesta completada del asistente.", "tokenUsage": "Uso de tokens", "cacheRate": "Tasa de caché", - "modelsCount": "Modelos ({{count}})", + "modelsCount": "Modelos ({{displayCount}})", "tokenTotalsNote": "Los totales de tokens cubren solo esta sesión y excluyen los tokens de subagentes y sesiones secundarias.", "subagents": "Subagentes", "subagentsDescription": "Coste residual de las sesiones secundarias", @@ -1864,7 +1901,8 @@ "stepsCount_one": "{{steps}} paso", "stepsCount": "{{steps}} pasos", "stepsCount_other": "{{steps}} pasos", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_many": "{{steps}} pasos" }, "prBadge": { "open": "solicitud de cambios abierta", @@ -1994,7 +2032,7 @@ "connectedCli": "En una CLI conectada", "newSessionOn": "Nueva sesión en {{name}}", "noMatchingSessions": "No hay sesiones coincidentes.", - "onlyFirstFilesAttached": "Solo se adjuntarán los primeros {{count}} archivos.", + "onlyFirstFilesAttached": "Solo se adjuntarán los primeros {{displayCount}} archivos.", "staleMessage": "Este contenido compartido ya no está disponible.", "retryableMessage": "No se pudieron cargar tus sesiones.", "emptyMessage": "Aún no hay sesiones: inicia una nueva para enviar esto.", @@ -2027,7 +2065,7 @@ "otherAccountCopy": "El Kilo Pass de esta cuenta de Apple pertenece a una cuenta de Kilo diferente. Inicia sesión en esa cuenta de Kilo para gestionarlo.", "alreadySubscribed": "Ya tienes una suscripción a Kilo Pass.", "purchaseUnavailable": "La compra de Kilo Pass no está disponible ahora mismo.", - "tierCredits": "${{amount}} en créditos", + "tierCredits": "{{amount}} en créditos", "perMonth": "{{price}}/mes", "verifyPurchaseFailed": "No se pudo verificar tu compra. Comprueba tu conexión e inténtalo de nuevo.", "productsCouldNotLoad": "No se pudieron cargar los productos de Kilo Pass desde la App Store.", @@ -2038,7 +2076,7 @@ "manageFailed": "No se pudo abrir la gestión de suscripciones del App Store.", "kiloPassSetup": "Configuración de Kilo Pass", "subscriptionHeaderDescription": "Una suscripción mensual que añade créditos a tu saldo de Kilo para ejecutar sesiones de codificación con IA en Kilo App: Cloud Agents, sesiones remotas y chats de KiloClaw.", - "tierDescription": "${{price}} en créditos pagados añadidos mensualmente para el uso de Kilo App.", + "tierDescription": "{{price}} en créditos pagados añadidos mensualmente para el uso de Kilo App.", "subscribe": "Suscribirse", "subscribeDescription": "Créditos mensuales con progreso de bonificación", "manage": "Gestionar", @@ -2046,7 +2084,7 @@ "statusPending": "Kilo Pass pendiente", "statusCanceling": "Cancelando Kilo Pass", "statusPastDue": "Kilo Pass vencido", - "monthlyCredits": "${{credits}} créditos mensuales", + "monthlyCredits": "{{credits}} créditos mensuales", "ends": "Finaliza el {{date}}", "periodEnd": "fin del periodo", "managedOnGooglePlay": "Gestionado en Google Play", @@ -2150,17 +2188,17 @@ "accessDeniedDescription": "No tienes permiso para ver esta pull request.", "checkConnection": "Comprobar conexión", "checks": { - "checksCount": "{{count}} verificaciones", + "checksCount": "{{displayCount}} verificaciones", "couldNotLoad": "No se pudieron cargar las verificaciones.", - "failed": "{{count}} fallidas", + "failed": "{{displayCount}} fallidas", "noAccess": "No tienes acceso a las verificaciones de este repositorio.", "noChecksReported": "No se han notificado verificaciones", "notAvailable": "Las verificaciones aún no están disponibles. Puede que el commit principal no se haya procesado o que la Kilo GitHub App no esté instalada en el repositorio principal.", "openDetails": "Abrir los detalles de {{name}}", - "passed": "{{count}} superadas", - "pending": "{{count}} pendientes", + "passed": "{{displayCount}} superadas", + "pending": "{{displayCount}} pendientes", "retryChecks": "Reintentar verificaciones", - "skipped": "{{count}} omitidas", + "skipped": "{{displayCount}} omitidas", "title": "Verificaciones", "viewOnGitHub": "Ver PR en GitHub", "checkDetails": "Detalles de la verificación", @@ -2238,7 +2276,7 @@ "terminal": "No se puede denunciar a este usuario." } }, - "moreLinesAbove": "… {{count}} líneas más arriba", + "moreLinesAbove": "… {{displayCount}} líneas más arriba", "mute": "Silenciar", "mutedUser": "{{login}} silenciado", "noDiscussion": "Aún no hay conversación", @@ -2246,7 +2284,7 @@ "comment_one": "1 comentario", "outdated": "Desactualizado", "quotedDiffSnippet": "Fragmento de diff citado", - "reactionPill": "{{emoji}} reacción, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reacción, {{displayCount}} {{countLabel}}", "reaction": "reacciones", "reaction_other": "reacciones", "reaction_one": "reacción", @@ -2276,7 +2314,9 @@ "viewTerms": "Ver términos", "termsAcceptRequired": "Debes aceptar los Términos del servicio para publicar.", "termsCheckRetryCopy": "No se pudieron comprobar los Términos del servicio. Comprueba tu conexión e inténtalo de nuevo.", - "termsOutdatedCopy": "Los Términos del servicio han cambiado. Vuelve a abrir esta pantalla para aceptar la versión más reciente." + "termsOutdatedCopy": "Los Términos del servicio han cambiado. Vuelve a abrir esta pantalla para aceptar la versión más reciente.", + "comment_many": "{{displayCount}} comentarios", + "reaction_many": "reacciones" }, "entry": { "clearLink": "Borrar enlace de la pull request", @@ -2350,12 +2390,12 @@ "hunkRows": { "contextUnavailable": "Contexto no disponible en esta ref", "expandAll": "Expandir todo", - "expandAllLines": "Expandir las {{count}} líneas", + "expandAllLines": "Expandir las {{displayCount}} líneas", "expandContext": "Expandir contexto", - "expandLines": "Expandir {{count}} líneas ({{start}}–{{end}})", - "expandLinesOfContext": "Expandir {{count}} líneas de contexto", + "expandLines": "Expandir {{displayCount}} líneas ({{start}}–{{end}})", + "expandLinesOfContext": "Expandir {{displayCount}} líneas de contexto", "expandMoreContext": "Expandir más contexto", - "expandMoreLines": "Expandir {{count}} líneas más ({{start}}–{{end}})", + "expandMoreLines": "Expandir {{displayCount}} líneas más ({{start}}–{{end}})", "failedToLoadContext": "No se pudo cargar el contexto — toca para reintentar", "failedToLoadMoreFiles": "No se pudieron cargar más archivos — toca para reintentar", "fileLoadedCount_one": "{{displayCount}} archivo cargado", @@ -2377,7 +2417,9 @@ "loadingLines": "Cargando {{loaded}} de {{total}} líneas…", "loadingMoreFiles": "Cargando más archivos…", "retryLoadingContext": "Reintentar la carga del contexto", - "retryLoadingNextPage": "Reintentar la carga de la página siguiente" + "retryLoadingNextPage": "Reintentar la carga de la página siguiente", + "fileLoadedCount_many": "{{displayCount}} archivos cargados", + "fileLoadedOfTotalCount_many": "{{displayCount}} archivos cargados de {{total}}" }, "inbox": { "couldNotLoad": "No se pudo cargar la bandeja de entrada", @@ -2452,7 +2494,9 @@ "stateOpenApproved": "Abierta · Aprobada", "stateOpenChangesRequested": "Abierta · Cambios solicitados", "stateOpenReviewRequired": "Abierta · Revisión necesaria", - "unknownAuthor": "Autor desconocido" + "unknownAuthor": "Autor desconocido", + "commit_many": "commits", + "file_many": "archivos" }, "pendingComment": { "allQueuedHint": "Todos los comentarios se enviarán en una única solicitud por lotes.", @@ -2500,9 +2544,10 @@ "pendingComment_one": "comentario pendiente", "summaryOptional": "Resumen (opcional)", "title": "Enviar revisión", - "partialPostedMessage": "Se publicaron {{freshCount}} comentario(s). {{staleCount}} comentario(s) apuntan a un commit anterior y se quedaron en tu cola.", - "submitCountOfTotal": "Enviar {{freshCount}} de {{totalCount}} comentarios", - "submitReview": "Enviar revisión" + "partialPostedMessage": "Se publicaron {{displayFreshCount}} comentario(s). {{displayStaleCount}} comentario(s) apuntan a un commit anterior y se quedaron en tu cola.", + "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentarios", + "submitReview": "Enviar revisión", + "pendingComment_many": "comentarios pendientes" }, "fileStatus": { "added": "Añadido", @@ -2654,7 +2699,8 @@ "processingNeedsReview": "El procesamiento necesita revisión", "retry": "Reintentar", "retryHint": "Reintenta la carga del estado de Kilo Pass.", - "setupHint": "Abre la configuración de Kilo Pass en la web." + "setupHint": "Abre la configuración de Kilo Pass en la web.", + "paidSeat_many": "{{displayCount}} asientos pagados" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index 787742a23b..c08f07909b 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -206,11 +206,11 @@ "loadingLines": "Laaditakse {{loaded}}/{{total}} rida...", "expandContext": "Laienda konteksti", "expandMoreContext": "Laienda rohkem konteksti", - "expandLines": "Laienda {{count}} rida ({{start}}–{{end}})", - "expandMoreLines": "Laienda veel {{count}} rida ({{start}}–{{end}})", - "expandLinesOfContext": "Laienda {{count}} kontekstirida", + "expandLines": "Laienda {{displayCount}} rida ({{start}}–{{end}})", + "expandMoreLines": "Laienda veel {{displayCount}} rida ({{start}}–{{end}})", + "expandLinesOfContext": "Laienda {{displayCount}} kontekstirida", "expandAll": "Laienda kõik", - "expandAllLines": "Laienda kõik {{count}} rida", + "expandAllLines": "Laienda kõik {{displayCount}} rida", "loadingMoreFiles": "Rohkemate failide laadimine...", "retryLoadingNextPage": "Proovi järgmise lehe laadimist uuesti", "failedToLoadMoreFiles": "Rohkemate failide laadimine ebaõnnestus — uuesti proovimiseks puuduta", @@ -301,7 +301,7 @@ "closeReactions": "Sulge reaktsioonid", "reactionsTitle": "Reaktsioonid", "addReaction": "Lisa reaktsioon", - "reactionPill": "{{emoji}} reaktsioon, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaktsioon, {{displayCount}} {{countLabel}}", "reaction_one": "reaktsioon", "reaction": "reaktsiooni", "reaction_other": "reaktsiooni", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Sellel pull request'il pole ülevaatelõime ega vestluskommentaare.", "reviewFiles": "Vaata faile üle", "quotedDiffSnippet": "Tsiteeritud diff'i lõik", - "moreLinesAbove": "... veel {{count}} rida ülal", + "moreLinesAbove": "... veel {{displayCount}} rida ülal", "termsAcceptRequired": "Postitamiseks pead nõustuma teenusetingimustega.", "termsOutdatedCopy": "Teenusetingimused muutusid. Uusima versiooniga nõustumiseks ava see ekraan uuesti.", "termsCheckRetryCopy": "Teenusetingimuste kontrollimine ebaõnnestus. Kontrolli ühendust ja proovi uuesti." @@ -395,11 +395,11 @@ "retryChecks": "Proovi kontrollide laadimist uuesti", "viewOnGitHub": "Vaata PR-i GitHub'is", "noChecksReported": "Kontrolle pole teatatud", - "passed": "{{count}} läbis", - "failed": "{{count}} ebaõnnestus", - "pending": "{{count}} ootel", - "skipped": "{{count}} vahele jäetud", - "checksCount": "{{count}} kontrolli", + "passed": "{{displayCount}} läbis", + "failed": "{{displayCount}} ebaõnnestus", + "pending": "{{displayCount}} ootel", + "skipped": "{{displayCount}} vahele jäetud", + "checksCount": "{{displayCount}} kontrolli", "checkDetails": "kontrolli üksikasjad", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ootel kommentaar", "pendingComment": "ootel kommentaari", "pendingComment_other": "ootel kommentaari", - "submitCountOfTotal": "Esita {{freshCount}}/{{totalCount}} kommentaari", + "submitCountOfTotal": "Esita {{displayFreshCount}}/{{displayTotalCount}} kommentaari", "submitReview": "Esita ülevaade", - "partialPostedMessage": "Esitati {{freshCount}} kommentaari. {{staleCount}} kommentaari viitavad vanemale commit'ile ja jäid sinu järjekorda." + "partialPostedMessage": "Esitati {{displayFreshCount}} kommentaari. {{displayStaleCount}} kommentaari viitavad vanemale commit'ile ja jäid sinu järjekorda." }, "reconnectNotice": { "title": "GitHub'i ühendus aegus", @@ -580,7 +580,8 @@ "agents": "Agendid", "profile": "Profiil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, vaheleht, {{position}}/{{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Hiljutised", "common": "Levinud", "reactWith": "Reageeri emotikoniga {{reaction}}", - "accessibility": "{{emoji}} reaktsioon, {{count}}" + "accessibility": "{{emoji}} reaktsioon, {{displayCount}}" }, "composer": { "replyingTo": "Vastatakse kasutajale", @@ -650,7 +651,7 @@ "imageUnavailable": "Pilt pole saadaval", "openFailed": "Manuse avamine ebaõnnestus. Kontrolli ühendust ja proovi uuesti.", "attachFailed": "Faili lisamine ebaõnnestus", - "limit": "Võid lisada kuni {{count}} faili.", + "limit": "Võid lisada kuni {{displayCount}} faili.", "sizeRejection": "{{filename}} ületab {{limit}} manuse piirangu.", "unreadable": "Faili {{filename}} lugemine ebaõnnestus.", "pastedImage": "kleebitud pilt", @@ -722,6 +723,7 @@ "finalTermEnds": "Viimane periood lõpeb", "afterFinalTerm": "Pärast viimast perioodi", "remaining": "Jäänud", + "lessThanOneDay": "Vähem kui 1 päev", "ends": "Lõpeb", "expires": "Aegub", "noActivePlan": "Aktiivne plaan puudub", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "teie Standard kuuhind", "perMonth": "/kuu", "earlybirdAccessUntil": "Varajase registreerumise juurdepääs kuni {{date}}", - "earlybirdEnding": "Varajane registreerumine lõppeb: jäänud {{days}} päeva", + "earlybirdEnding": "Varajane registreerumine lõppeb: {{remaining}}", "paymentPastDue": "Makse on ületähtajal. Palun uuendage oma makseviisi.", "subscriptionCancels": "Tellimus tühistub {{date}}", - "trialDaysRemaining": "Prooviperiood: jäänud {{days}} päeva", - "trialEndingSoon": "Prooviperiood lõpeb varsti: {{days}}" + "trialDaysRemaining": "Prooviperiood: {{remaining}} jäänud", + "trialEndingSoon": "Prooviperiood lõpeb varsti: {{remaining}}" }, "changelog": { "title": "Mis on uut", @@ -996,7 +998,7 @@ "stalledTitle": "Midagi takerdus", "stalledBody": "Meil ei õnnestunud {{name}} seadistamist lõpule viia. Proovige uuesti või kirjutage hi@kilo.ai, kui see korduvalt juhtub.", "timeoutTitle": "Võtab oodatust kauem aega", - "timeoutBody": "{{name}} seadistamine võtab tavapärasest kauem aega (üle {{minutes}} minuti).", + "timeoutBody": "{{name}} seadistamine võtab tavapärasest kauem aega (üle {{displayMinutes}} minuti).", "continueInBackground": "Jätka taustal", "settingUp": "Seadistamine: {{name}}", "finishingSetup": "Seadistamise lõpuleviimine", @@ -1287,7 +1289,7 @@ "mergeGate": "Ühendamise värav", "repositories": "Hoidlad", "allRepositories": "Kõik hoidlad", - "nSelected": "Valitud {{count}}", + "nSelected": "Valitud {{displayCount}}", "reviewMemory": "Ülevaate mälu", "proposedReviewMdGuidance": "Soovitatud REVIEW.md-juhised" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analüüsitud", "exploitabilityReasoning": "Ärakasutatavuse põhjendus", "suggestedFix": "Soovitatud parandus", - "whereFound": "Kust see leiti ({{count}})", + "whereFound": "Kust see leiti ({{displayCount}})", "fullReport": "Täielik loodud aruanne", "unknown": "Teadmata", "yes": "Jah", "no": "Ei" }, "dashboard": { - "findingsCount": "{{count}} leidu", + "findingsCount": "{{displayCount}} leidu", "notMeasured": "Pole mõõdetud", "actFirst": "Toimi esmalt", "slaPosture": "SLA seisund", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Hoidla tegevuskava", "noOpenFindings": "Ükski avatud leid ei vaja tähelepanu", "deadlineToday": "Tähtaeg möödus täna", - "daysOverdue": "{{count}} päeva hilinenud", + "daysOverdue": "{{displayCount}} päeva hilinenud", "withinDeadline": "Tähtaja piires", "criticalOverdue": "Kriitilised hilinenud", "highOverdue": "Kõrged hilinenud", @@ -1435,6 +1437,27 @@ "syncQueued": "Sünkroonimine on järjekorras", "syncStatusUnavailable": "Sünkroonimise olek pole saadaval" }, + "dashboardMetrics": { + "openFindings": "Avatud leiud", + "openFindingsDetail": "{{critical}} kriitilist, {{high}} kõrget", + "confirmedExploitable": "Kinnitatud ärakasutatav", + "confirmedExploitableDetail": "Projekti risk kinnitatud analüüsi põhjal", + "needsReview": "Vajab sinu ülevaatamist", + "needsReviewDetail": "Vajalik on inimese otsus", + "analysisIncomplete": "Analüüs pole lõppenud", + "analysisIncompleteDetail": "Projekti risk on endiselt teadmata", + "slaCompliance": "SLA järgimine", + "notMeasured": "Pole mõõdetud", + "withinDeadlineDetail": "{{within}}/{{total}} tähtaja piires", + "noDeadlineData": "Ühelgi leidul pole veel SLA tähtaega", + "deadlinePassed": "Tähtaeg möödunud", + "deadlinePassedDetail": "{{critical}} kriitilist, {{high}} kõrget", + "dueThisWeek": "Tähtajaga sel nädalal", + "dueThisWeekDetail": "{{exploitable}} kinnitatud ärakasutatavat", + "noDeadline": "Tähtaega pole", + "reviewSlaAssignment": "Vaata üle SLA määramine", + "allOpenFindingsTracked": "Kõiki avatud leide jälgitakse" + }, "dismiss": { "title": "Jäta leid kõrvale", "submit": "Jäta leid kõrvale", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} analüüs", "automation": "Automaatika", "automationAllOff": "Kõik väljas", - "automationCount": "Lubatud {{count}} 3-st", + "automationCount": "Lubatud {{displayCount}} 3-st", "notifications": "Teavitused", - "notificationsCount": "Lubatud {{count}} 2-st", + "notificationsCount": "Lubatud {{displayCount}} 2-st", "slaPolicy": "SLA poliitika", "disabledNoManage": "Security Agent on keelatud. Seda saavad sisse lülitada ainult organisatsiooni omanikud ja arveldushaldurid.", "disabledNoRepo": "Enne Security Agent'i lubamist vali vähemalt üks hoidla.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Ava tõmbetaotlus{{number}}", "openDraftPullRequest": "Ava mustandtõmbetaotlus{{number}}", "progress": "Edenemine", - "attemptHistory": "Katsete ajalugu ({{count}})", + "attemptHistory": "Katsete ajalugu ({{displayCount}})", "attemptNumber": "Katse #{{number}}", "startedBy": "Alustaja", "model": "Mudel", @@ -1855,9 +1878,9 @@ "toolTask": "ülesanne", "readTodos": "Loe tehtavaid loendeid", "updateTodos": "Uuenda tehtavaid loendeid", - "linesBadge": "{{count}} rida", - "filesBadge": "{{count}} faili", - "matchesBadge": "{{count}} vastet" + "linesBadge": "{{displayCount}} rida", + "filesBadge": "{{displayCount}} faili", + "matchesBadge": "{{displayCount}} vastet" }, "readToolMarkdown": { "linesTruncated": "read {{start}}–{{end}} (kärbitud)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Sellest vastusest ei saa teatada.", "reportAiResponseSubmitted": "Teade on saadetud. Kviitung {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Üksikasjad pole saadaval", "textDisplay": "Tekstikuva", @@ -1999,7 +2026,7 @@ "preparationComplete": "Ettevalmistamine lõppenud", "preparationFailed": "Ettevalmistamine ebaõnnestus", "setupCommand": "Seadistamiskäsk {{index}}", - "setupCommandOf": "Seadistamiskäsk {{index}} kokku {{count}}st" + "setupCommandOf": "Seadistamiskäsk {{index}} kokku {{displayCount}}st" }, "permissionCard": { "title": "Õigus on nõutud", @@ -2036,7 +2063,7 @@ "submissionFailed": "Esitamine ebaõnnestus. Proovige uuesti.", "questionAnnouncement": "Agendil on sinu sisendit vaja. Komponeerija on peatatud, kuni vastad.", "permissionAnnouncement": "Agendil on jätkamiseks luba vaja. Komponeerija on peatatud, kuni otsustad.", - "positionHint": "({{count}}-st 1)", + "positionHint": "({{displayCount}}-st 1)", "movedPastPrompt": "Agent on sellest viipast mööda liikunud. See kaart suletakse, kui seanss jätkub.", "waitingForAnswer": "Agent ootab sinu vastust. Kuni see küsimus on avatud, on sinu sõnum agendile peatatud.", "waitingForPermission": "Agent ootab luba. Kuni see taotlus on avatud, on sinu sõnum agendile peatatud." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kaamera juurdepääs keelatud", "cameraAccessMessage": "Foto tegemiseks luba kaamera juurdepääs seadetes.", "couldNotOpenPhotoPicker": "Fotovalijat ei õnnestunud avada. Taaskäivitage Kilo ja proovige uuesti.", - "maxFilesAllowed": "Maksimaalselt {{count}} faili lubatud", + "maxFilesAllowed": "Maksimaalselt {{displayCount}} faili lubatud", "onlyAddingFiles": "Lisatakse ainult {{accepted}} {{total}}-st failist (max {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kulu {{cost}}", "costSuffix": ", kulu {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} tokenit, aken pole saadaval", - "tokensUsage": "Kontekst {{used}}/{{window}} tokenit, {{percentage}}% kasutatud", + "tokensUsage": "Kontekst {{used}}/{{window}} tokenit, {{percentage}} kasutatud", "title": "Konteksti kasutus", "used": "Kasutatud", "remaining": "Jäänud", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Kasutus kajastab viimast lõppenud abistaja vastust.", "tokenUsage": "Tokenite kasutus", "cacheRate": "Vahemälu määr", - "modelsCount": "Mudelid ({{count}})", + "modelsCount": "Mudelid ({{displayCount}})", "tokenTotalsNote": "Tokenite kogusummad hõlmavad ainult seda seanssi ja ei hõlma alaseansi seansside tokeneid.", "subagents": "Alasellid", "subagentsDescription": "Alaseansside jääkkulu", @@ -2373,7 +2400,7 @@ "connectedCli": "Ühendatud CLI-l", "newSessionOn": "Uus seanss saidil {{name}}", "noMatchingSessions": "Sobivaid seansse pole.", - "onlyFirstFilesAttached": "Lisatakse ainult esimesed {{count}} faili.", + "onlyFirstFilesAttached": "Lisatakse ainult esimesed {{displayCount}} faili.", "staleMessage": "See jagamine pole enam saadaval.", "retryableMessage": "Sinu seansse ei õnnestunud laadida.", "emptyMessage": "Seansse pole veel — selle saatmiseks alustage uut.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Selle Apple kontoga seotud Kilo Pass kuulub teisele Kilo kontole. Selle haldamiseks logige sisse sellesse Kilo kontosse.", "alreadySubscribed": "Teil on juba Kilo Pass tellimus.", "purchaseUnavailable": "Kilo Passi ost pole praegu saadaval.", - "tierCredits": "${{amount}} krediiti", + "tierCredits": "{{amount}} krediiti", "perMonth": "{{price}}/kuu", "verifyPurchaseFailed": "Sinu ostu ei õnnestunud kinnitada. Kontrollige ühendust ja proovige uuesti.", "productsCouldNotLoad": "Kilo Passi tooteid ei õnnestunud App Store'st laadida.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store tellimuse haldust ei õnnestunud avada.", "kiloPassSetup": "Kilo Pass seadistus", "subscriptionHeaderDescription": "Kuutellimus, mis lisab krediiti sinu Kilo saldole AI kodeerimisseansside käitamiseks Kilo Appis — Cloud Agents, kaugseansid ja KiloClaw vestlused.", - "tierDescription": "${{price}} tasulist krediiti lisatakse igakuiselt Kilo Appi kasutuse eest.", + "tierDescription": "{{price}} tasulist krediiti lisatakse igakuiselt Kilo Appi kasutuse eest.", "subscribe": "Telli", "subscribeDescription": "Igakuine krediit boonusprogresseerumisega", "manage": "Halda", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass ootel", "statusCanceling": "Kilo Pass tühistamine", "statusPastDue": "Kilo Pass maksetähtaeg möödunud", - "monthlyCredits": "${{credits}} igakuist krediiti", + "monthlyCredits": "{{credits}} igakuist krediiti", "ends": "Lõpeb {{date}}", "periodEnd": "perioodi lõpp", "managedOnGooglePlay": "Hallatakse Google Plays", diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index ae4f37041e..db0173602a 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -206,11 +206,11 @@ "loadingLines": "{{loaded}} / {{total}} lerro kargatzen...", "expandContext": "Zabaldu testuingurua", "expandMoreContext": "Zabaldu testuinguru gehiago", - "expandLines": "Zabaldu {{count}} lerro ({{start}}–{{end}})", - "expandMoreLines": "Zabaldu {{count}} lerro gehiago ({{start}}–{{end}})", - "expandLinesOfContext": "Zabaldu {{count}} testuinguru-lerro", + "expandLines": "Zabaldu {{displayCount}} lerro ({{start}}–{{end}})", + "expandMoreLines": "Zabaldu {{displayCount}} lerro gehiago ({{start}}–{{end}})", + "expandLinesOfContext": "Zabaldu {{displayCount}} testuinguru-lerro", "expandAll": "Zabaldu guztiak", - "expandAllLines": "Zabaldu {{count}} lerro guztiak", + "expandAllLines": "Zabaldu {{displayCount}} lerro guztiak", "loadingMoreFiles": "Fitxategi gehiago kargatzen...", "retryLoadingNextPage": "Saiatu hurrengo orria berriro kargatzen", "failedToLoadMoreFiles": "Ezin izan dira fitxategi gehiago kargatu — sakatu berriro saiatzeko", @@ -301,7 +301,7 @@ "closeReactions": "Itxi erreakzioak", "reactionsTitle": "Erreakzioak", "addReaction": "Gehitu erreakzioa", - "reactionPill": "{{emoji}} erreakzioa, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} erreakzioa, {{displayCount}} {{countLabel}}", "reaction_one": "erreakzio", "reaction": "erreakzio", "reaction_other": "erreakzio", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Ez dago berrikuspen-haririk ezta elkarrizketa-iruzkinik pull request honetan.", "reviewFiles": "Berrikusi fitxategiak", "quotedDiffSnippet": "Diff-aren aipatutako zatia", - "moreLinesAbove": "... {{count}} lerro gehiago goian", + "moreLinesAbove": "... {{displayCount}} lerro gehiago goian", "termsAcceptRequired": "Zerbitzu-baldintzak onartu behar dituzu argitaratzeko.", "termsOutdatedCopy": "Zerbitzu-baldintzak aldatu dira. Ireki pantaila hau berriro azken bertsioa onartzeko.", "termsCheckRetryCopy": "Ezin izan dira Zerbitzu-baldintzak egiaztatu. Egiaztatu konexioa eta saiatu berriro." @@ -395,11 +395,11 @@ "retryChecks": "Saiatu egiaztapenak berriro", "viewOnGitHub": "Ikusi PR-a GitHub-en", "noChecksReported": "Ez da egiaztapenik jakinarazi", - "passed": "{{count}} gainditu", - "failed": "{{count}} huts eginda", - "pending": "{{count}} zain", - "skipped": "{{count}} alde batera utzita", - "checksCount": "{{count}} egiaztapen", + "passed": "{{displayCount}} gainditu", + "failed": "{{displayCount}} huts eginda", + "pending": "{{displayCount}} zain", + "skipped": "{{displayCount}} alde batera utzita", + "checksCount": "{{displayCount}} egiaztapen", "checkDetails": "egiaztapenen xehetasunak", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "zain dagoen iruzkin", "pendingComment": "zain dauden iruzkin", "pendingComment_other": "zain dauden iruzkin", - "submitCountOfTotal": "Bidali {{freshCount}} / {{totalCount}} iruzkin", + "submitCountOfTotal": "Bidali {{displayFreshCount}} / {{displayTotalCount}} iruzkin", "submitReview": "Bidali berrikuspena", - "partialPostedMessage": "{{freshCount}} iruzkin argitaratu dira. {{staleCount}} iruzkinek commit zaharrago bat adierazten dute eta zure ilaran geratu dira." + "partialPostedMessage": "{{displayFreshCount}} iruzkin argitaratu dira. {{displayStaleCount}} iruzkinek commit zaharrago bat adierazten dute eta zure ilaran geratu dira." }, "reconnectNotice": { "title": "GitHub konexioa iraungi da", @@ -580,7 +580,8 @@ "agents": "Agenteak", "profile": "Profila", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, fitxa, {{position}} / {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Berriak", "common": "Ohikoak", "reactWith": "Erreakzionatu {{reaction}}-ekin", - "accessibility": "{{emoji}} erreakzioa, {{count}}" + "accessibility": "{{emoji}} erreakzioa, {{displayCount}}" }, "composer": { "replyingTo": "Erantzuten", @@ -650,7 +651,7 @@ "imageUnavailable": "Irudia ez dago eskuragarri", "openFailed": "Ezin izan da eranskina ireki. Egiaztatu konexioa eta saiatu berriro.", "attachFailed": "Ezin izan da fitxategia erantsi", - "limit": "Gehienez {{count}} fitxategi erantsi ditzakezu.", + "limit": "Gehienez {{displayCount}} fitxategi erantsi ditzakezu.", "sizeRejection": "{{filename}} {{limit}} eranskina-mugaren gainetik dago.", "unreadable": "Ezin izan da {{filename}} irakurri.", "pastedImage": "itsatsitako irudia", @@ -722,6 +723,7 @@ "finalTermEnds": "Azken epea amaitzen da", "afterFinalTerm": "Azken epearen ondoren", "remaining": "Gainerakoa", + "lessThanOneDay": "Egun 1 baino gutxiago", "ends": "Amaitzen da", "expires": "Iraungitzen da", "noActivePlan": "Ez dago plan aktiborik", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "zure Standard hileko prezioa", "perMonth": "/hilean", "earlybirdAccessUntil": "Earlybird sarbidea {{date}} arte", - "earlybirdEnding": "Earlybird amaitzen da: {{days}} egun geratzen dira", + "earlybirdEnding": "Earlybird amaitzen da: {{remaining}}", "paymentPastDue": "Ordainketa atzeratuta dago. Eguneratu zure ordainketa-metodoa.", "subscriptionCancels": "Harpidetza {{date}}n bertan behera uzten da", - "trialDaysRemaining": "Proba: {{days}} egun geratzen dira", - "trialEndingSoon": "Proba laster amaitzen da: {{days}}" + "trialDaysRemaining": "Proba: {{remaining}} geratzen dira", + "trialEndingSoon": "Proba laster amaitzen da: {{remaining}}" }, "changelog": { "title": "Zer berri", @@ -996,7 +998,7 @@ "stalledTitle": "Zerbait gelditu da", "stalledBody": "Ezin izan dugu {{name}}ren konfigurazioa amaitu. Saiatu berriro, edo bidali posta hi@kilo.ai-ra hau etengabe gertatzen bada.", "timeoutTitle": "Uste baino denbora gehiago hartzen ari da", - "timeoutBody": "{{name}}ren konfigurazioa ohi baino gehiago ari da ({{minutes}} minutu baino gehiago).", + "timeoutBody": "{{name}}ren konfigurazioa ohi baino gehiago ari da ({{displayMinutes}} minutu baino gehiago).", "continueInBackground": "Jarraitu atzealdean", "settingUp": "{{name}} konfiguratzen", "finishingSetup": "Konfigurazioa amaitzen", @@ -1287,7 +1289,7 @@ "mergeGate": "Merge atea", "repositories": "Biltegiak", "allRepositories": "Biltegi guztiak", - "nSelected": "{{count}} hautatuta", + "nSelected": "{{displayCount}} hautatuta", "reviewMemory": "Berrikuspen-memoria", "proposedReviewMdGuidance": "Proposatutako REVIEW.md jarraibideak" }, @@ -1391,14 +1393,14 @@ "analyzed": "Aztertuta", "exploitabilityReasoning": "Ustiagarritasun-arrazoia", "suggestedFix": "Proposatutako konponketa", - "whereFound": "Non aurkitu den ({{count}})", + "whereFound": "Non aurkitu den ({{displayCount}})", "fullReport": "Sorrarazitako txosten osoa", "unknown": "Ezezaguna", "yes": "Bai", "no": "Ez" }, "dashboard": { - "findingsCount": "{{count}} emaitza", + "findingsCount": "{{displayCount}} emaitza", "notMeasured": "Ez da neurtu", "actFirst": "Lehenik jardun", "slaPosture": "SLA-egoera", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Biltegiaren ekintza-plana", "noOpenFindings": "Ez dago arreta behar duen emaitza irekirik", "deadlineToday": "Epea gaur gainditu da", - "daysOverdue": "{{count}} egun atzeratuta", + "daysOverdue": "{{displayCount}} egun atzeratuta", "withinDeadline": "Epearen barruan", "criticalOverdue": "Kritikoak atzeratuta", "highOverdue": "Handiak atzeratuta", @@ -1435,6 +1437,27 @@ "syncQueued": "Sinkronizazioa ilaran", "syncStatusUnavailable": "Sinkronizazio-egoera ez dago erabilgarri" }, + "dashboardMetrics": { + "openFindings": "Emaitza irekiak", + "openFindingsDetail": "{{critical}} kritiko, {{high}} handi", + "confirmedExploitable": "Ustia daitekeela baieztatuta", + "confirmedExploitableDetail": "Proiektuaren arriskua analisiaren bidez baieztatuta", + "needsReview": "Zure berrikuspena behar du", + "needsReviewDetail": "Giza erabakia behar da", + "analysisIncomplete": "Analisia ez da osatu", + "analysisIncompleteDetail": "Proiektuaren arriskua oraindik ezezaguna", + "slaCompliance": "SLA betetzea", + "notMeasured": "Ez da neurtu", + "withinDeadlineDetail": "{{within}} / {{total}} epearen barruan", + "noDeadlineData": "Oraindik ez da emaitzarik SLA-eperik duenik", + "deadlinePassed": "Epea gainditu da", + "deadlinePassedDetail": "{{critical}} kritiko, {{high}} handi", + "dueThisWeek": "Aste honetan amaitzen da", + "dueThisWeekDetail": "{{exploitable}} ustia daitekeela baieztatuta", + "noDeadline": "Eperik gabe", + "reviewSlaAssignment": "Berrikusi SLA esleipena", + "allOpenFindingsTracked": "Emaitza ireki guztiak jarraipenean" + }, "dismiss": { "title": "Baztertu emaitza", "submit": "Baztertu emaitza", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} analisia", "automation": "Automatizazioa", "automationAllOff": "Guztiak itzalita", - "automationCount": "3tik {{count}} gaituta", + "automationCount": "3tik {{displayCount}} gaituta", "notifications": "Jakinarazpenak", - "notificationsCount": "2tik {{count}} gaituta", + "notificationsCount": "2tik {{displayCount}} gaituta", "slaPolicy": "SLA-politika", "disabledNoManage": "Security Agent desgaituta dago. Soilik erakundeko jabeek eta fakturazio-kudeatzaileek aktiba dezakete.", "disabledNoRepo": "Hautatu gutxienez biltegi bat Security Agent aktibatu aurretik.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Ireki pull request{{number}}", "openDraftPullRequest": "Ireki pull request zirriborroa{{number}}", "progress": "Aurrerapena", - "attemptHistory": "Saiakera-historia ({{count}})", + "attemptHistory": "Saiakera-historia ({{displayCount}})", "attemptNumber": "{{number}}. saiakera", "startedBy": "Hasi duena", "model": "Modeloa", @@ -1855,9 +1878,9 @@ "toolTask": "zeregina", "readTodos": "Irakurri zereginak", "updateTodos": "Eguneratu zereginak", - "linesBadge": "{{count}} lerro", - "filesBadge": "{{count}} fitxategi", - "matchesBadge": "{{count}} bat-etortze" + "linesBadge": "{{displayCount}} lerro", + "filesBadge": "{{displayCount}} fitxategi", + "matchesBadge": "{{displayCount}} bat-etortze" }, "readToolMarkdown": { "linesTruncated": "{{start}}–{{end}} lerroak (moztuta)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Erantzun hau ezin da salatu.", "reportAiResponseSubmitted": "Salaketaren berri emana. Ordainagiria {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Xehetasunak ez daude erabilgarri", "textDisplay": "Testuaren bistaratzea", @@ -1999,7 +2026,7 @@ "preparationComplete": "Prestaketa osatuta", "preparationFailed": "Prestaketak huts egin du", "setupCommand": "Konfigurazio-komandoa {{index}}", - "setupCommandOf": "Konfigurazio-komandoa {{index}} / {{count}}" + "setupCommandOf": "Konfigurazio-komandoa {{index}} / {{displayCount}}" }, "permissionCard": { "title": "Baimena behar da", @@ -2036,7 +2063,7 @@ "submissionFailed": "Bidalketak huts egin du. Saiatu berriro.", "questionAnnouncement": "Agenteak zure ekarpena behar du. Erantzuten duzun bitartean konpositorea pausatuta dago.", "permissionAnnouncement": "Agenteak baimena behar du jarraitzeko. Erabakitzen duzun bitartean konpositorea pausatuta dago.", - "positionHint": "({{count}}ko 1)", + "positionHint": "({{displayCount}}ko 1)", "movedPastPrompt": "Agentea eskaera honen aurretik igaro da. Txartel hau saioa jarraitzean itxiko da.", "waitingForAnswer": "Agentea zure erantzunaren zain dago. Galdera hau irekita dagoen bitartean, agentearentzako mezua pausatuta dago.", "waitingForPermission": "Agentea baimenaren zain dago. Eskari hau irekita dagoen bitartean, agentearentzako mezua pausatuta dago." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kamera sarbidea desgaituta", "cameraAccessMessage": "Baimendu kameraren sarbidea Ezarpenetan argazki bat ateratzeko.", "couldNotOpenPhotoPicker": "Ezin izan da argazki-hautatzailea ireki. Berrabiarazi Kilo eta saiatu berriro.", - "maxFilesAllowed": "Gehienez {{count}} fitxategi onartzen dira", + "maxFilesAllowed": "Gehienez {{displayCount}} fitxategi onartzen dira", "onlyAddingFiles": "{{total}} fitxategietatik {{accepted}} bakarrik gehitzen (gehienez {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kostua {{cost}}", "costSuffix": ", kostua {{cost}}", "tokensWindowUnavailable": "Testuingurua {{used}} token, leihoa ez erabilgarri", - "tokensUsage": "Testuingurua {{window}} tokenetik {{used}} erabilita, %{{percentage}} erabilita", + "tokensUsage": "Testuingurua {{window}} tokenetik {{used}} erabilita, {{percentage}} erabilita", "title": "Testuinguruaren erabilera", "used": "Erabilita", "remaining": "Gelditzen dena", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Erabilerak amaierako laguntzaile-erantzun berriena islatzen du.", "tokenUsage": "Tokenen erabilera", "cacheRate": "Cache-tasa", - "modelsCount": "Modeloak ({{count}})", + "modelsCount": "Modeloak ({{displayCount}})", "tokenTotalsNote": "Tokenen guztirakoak saio hau bakarrik hartzen du eta ez ditu subagente/azpi-saioen tokenak barne.", "subagents": "Subagenteak", "subagentsDescription": "Azpi-saioen hondar-kostua", @@ -2373,7 +2400,7 @@ "connectedCli": "Konektatutako CLI batean", "newSessionOn": "Saio berria {{name}}-n", "noMatchingSessions": "Ez dago bat datorren saiorik.", - "onlyFirstFilesAttached": "Lehenengo {{count}} fitxategiak bakarrik erantsiko dira.", + "onlyFirstFilesAttached": "Lehenengo {{displayCount}} fitxategiak bakarrik erantsiko dira.", "staleMessage": "Partekatze hau jada ez daude erabilgarri.", "retryableMessage": "Ezin izan dira zure saioak kargatu.", "emptyMessage": "Oraindik ez dago saiorik — hasi berri bat hau bidaltzeko.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Apple kontu honetako Kilo Pass beste Kilo kontu bati dagokio. Hasi saioa Kilo kontu horretan kudeatzeko.", "alreadySubscribed": "Dagoeneko Kilo Pass harpidetza duzu.", "purchaseUnavailable": "Kilo Pass erosketa ez daude erabilgarri oraintxe.", - "tierCredits": "${{amount}} kreditutan", + "tierCredits": "{{amount}} kreditutan", "perMonth": "{{price}}/hil", "verifyPurchaseFailed": "Ezin izan da zure erosketa egiaztatu. Egiaztatu zure konexioa eta saiatu berriro.", "productsCouldNotLoad": "Ezin izan dira Kilo Pass produktuak App Store-tik kargatu.", @@ -2417,7 +2444,7 @@ "manageFailed": "Huts egin du App Store harpidetza-kudeaketa irekitzean.", "kiloPassSetup": "Kilo Pass konfigurazioa", "subscriptionHeaderDescription": "Hileroko harpidetza bat, zure Kilo saldoari kredituak gehitzen dizkiona Kilo App-en AI kodetze-saioak exekutatzeko — Cloud Agents, urruneko saioak eta KiloClaw txatak.", - "tierDescription": "${{price}} ordaindutako kreditu gehitzen dira hilero Kilo App erabilerarako.", + "tierDescription": "{{price}} ordaindutako kreditu gehitzen dira hilero Kilo App erabilerarako.", "subscribe": "Harpidetu", "subscribeDescription": "Hileroko kredituak bonus-aurrerapenarekin", "manage": "Kudeatu", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass zain", "statusCanceling": "Kilo Pass baliogabetzen", "statusPastDue": "Kilo Pass atzeratua", - "monthlyCredits": "${{credits}} hileroko kredituak", + "monthlyCredits": "{{credits}} hileroko kredituak", "ends": "Amaitzen da {{date}}", "periodEnd": "aldiaren amaiera", "managedOnGooglePlay": "Google Play-n kudeatzen da", diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index d08fd5cfbd..9d5f0f23a8 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -206,11 +206,11 @@ "loadingLines": "در حال بارگذاری {{loaded}} از {{total}} خط…", "expandContext": "باز کردن زمینه", "expandMoreContext": "باز کردن زمینهٔ بیشتر", - "expandLines": "باز کردن {{count}} خط ({{start}}–{{end}})", - "expandMoreLines": "باز کردن {{count}} خط بیشتر ({{start}}–{{end}})", - "expandLinesOfContext": "باز کردن {{count}} خط از زمینه", + "expandLines": "باز کردن {{displayCount}} خط ({{start}}–{{end}})", + "expandMoreLines": "باز کردن {{displayCount}} خط بیشتر ({{start}}–{{end}})", + "expandLinesOfContext": "باز کردن {{displayCount}} خط از زمینه", "expandAll": "باز کردن همه", - "expandAllLines": "باز کردن همهٔ {{count}} خط", + "expandAllLines": "باز کردن همهٔ {{displayCount}} خط", "loadingMoreFiles": "در حال بارگذاری فایل‌های بیشتر…", "retryLoadingNextPage": "تلاش مجدد برای بارگذاری صفحهٔ بعد", "failedToLoadMoreFiles": "بارگذاری فایل‌های بیشتر ممکن نشد — برای تلاش مجدد ضربه بزنید", @@ -301,7 +301,7 @@ "closeReactions": "بستن واکنش‌ها", "reactionsTitle": "واکنش‌ها", "addReaction": "افزودن واکنش", - "reactionPill": "واکنش {{emoji}}، {{count}} {{countLabel}}", + "reactionPill": "واکنش {{emoji}}، {{displayCount}} {{countLabel}}", "reaction_one": "واکنش", "reaction": "واکنش", "reaction_other": "واکنش", @@ -353,7 +353,7 @@ "noDiscussionDescription": "هیچ رشتهٔ بازبینی یا نظری در این درخواست pull نیست.", "reviewFiles": "بازبینی فایل‌ها", "quotedDiffSnippet": "بخش diff نقل‌قول‌شده", - "moreLinesAbove": "… {{count}} خط بیشتر در بالا", + "moreLinesAbove": "… {{displayCount}} خط بیشتر در بالا", "termsAcceptRequired": "برای ارسال باید شرایط استفاده را بپذیرید.", "termsOutdatedCopy": "شرایط استفاده تغییر کرده است. برای پذیرش آخرین نسخه این صفحه را دوباره باز کنید.", "termsCheckRetryCopy": "بررسی شرایط استفاده ممکن نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید." @@ -395,11 +395,11 @@ "retryChecks": "تلاش مجدد برای بررسی‌ها", "viewOnGitHub": "مشاهدهٔ PR در GitHub", "noChecksReported": "هیچ بررسی‌ای گزارش نشده است", - "passed": "{{count}} موفق", - "failed": "{{count}} ناموفق", - "pending": "{{count}} در انتظار", - "skipped": "{{count}} رد شده", - "checksCount": "{{count}} بررسی", + "passed": "{{displayCount}} موفق", + "failed": "{{displayCount}} ناموفق", + "pending": "{{displayCount}} در انتظار", + "skipped": "{{displayCount}} رد شده", + "checksCount": "{{displayCount}} بررسی", "checkDetails": "جزئیات بررسی", "pullRequest": "درخواست pull" }, @@ -459,9 +459,9 @@ "pendingComment_one": "نظر در انتظار", "pendingComment": "نظرات در انتظار", "pendingComment_other": "نظرات در انتظار", - "submitCountOfTotal": "ارسال {{freshCount}} از {{totalCount}} نظر", + "submitCountOfTotal": "ارسال {{displayFreshCount}} از {{displayTotalCount}} نظر", "submitReview": "ارسال بازبینی", - "partialPostedMessage": "{{freshCount}} نظر ارسال شد. {{staleCount}} نظر به یک commit قدیمی‌تر اشاره دارد و در صف شما ماند." + "partialPostedMessage": "{{displayFreshCount}} نظر ارسال شد. {{displayStaleCount}} نظر به یک commit قدیمی‌تر اشاره دارد و در صف شما ماند." }, "reconnectNotice": { "title": "اتصال GitHub منقضی شد", @@ -580,7 +580,8 @@ "agents": "عامل‌ها", "profile": "پروفایل", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}، تب، {{position}} از {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "اخیر", "common": "متداول", "reactWith": "واکنش با {{reaction}}", - "accessibility": "واکنش {{emoji}}، {{count}}" + "accessibility": "واکنش {{emoji}}، {{displayCount}}" }, "composer": { "replyingTo": "در حال پاسخ به", @@ -650,7 +651,7 @@ "imageUnavailable": "تصویر در دسترس نیست", "openFailed": "باز کردن پیوست ممکن نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید.", "attachFailed": "پیوست فایل ممکن نشد", - "limit": "می‌توانید حداکثر {{count}} فایل پیوست کنید.", + "limit": "می‌توانید حداکثر {{displayCount}} فایل پیوست کنید.", "sizeRejection": "{{filename}} از محدودیت پیوست {{limit}} فراتر می‌رود.", "unreadable": "خواندن {{filename}} ممکن نشد.", "pastedImage": "تصویر جای‌گذاری‌شده", @@ -722,6 +723,7 @@ "finalTermEnds": "پایان دوره نهایی", "afterFinalTerm": "پس از دوره نهایی", "remaining": "باقی‌مانده", + "lessThanOneDay": "کمتر از 1 روز", "ends": "پایان", "expires": "انقضا", "noActivePlan": "طرح فعالی وجود ندارد", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "قیمت ماهانه Standard شما", "perMonth": "/ماه", "earlybirdAccessUntil": "دسترسی Earlybird تا {{date}}", - "earlybirdEnding": "پایان Earlybird: {{days}} روز باقی‌مانده", + "earlybirdEnding": "پایان Earlybird: {{remaining}}", "paymentPastDue": "پرداخت معوق است. لطفاً روش پرداخت خود را به‌روزرسانی کنید.", "subscriptionCancels": "اشتراک در {{date}} لغو می‌شود", - "trialDaysRemaining": "آزمایشی: {{days}} روز باقی‌مانده", - "trialEndingSoon": "به زودی پایان آزمایشی: {{days}}" + "trialDaysRemaining": "آزمایشی: {{remaining}} باقی‌مانده", + "trialEndingSoon": "به زودی پایان آزمایشی: {{remaining}}" }, "changelog": { "title": "چه خبر", @@ -996,7 +998,7 @@ "stalledTitle": "مشکلی پیش آمد", "stalledBody": "نتوانستیم راه‌اندازی {{name}} را تمام کنیم. دوباره تلاش کنید، یا اگر این مشکل ادامه یافت به hi@kilo.ai ایمیل بزنید.", "timeoutTitle": "بیش از حد انتظار طول می‌کشد", - "timeoutBody": "راه‌اندازی {{name}} بیش از حد معمول طول می‌کشد (بیش از {{minutes}} دقیقه).", + "timeoutBody": "راه‌اندازی {{name}} بیش از حد معمول طول می‌کشد (بیش از {{displayMinutes}} دقیقه).", "continueInBackground": "ادامه در پس‌زمینه", "settingUp": "در حال راه‌اندازی {{name}}", "finishingSetup": "پایان راه‌اندازی", @@ -1287,7 +1289,7 @@ "mergeGate": "دروازه ادغام", "repositories": "مخزن‌ها", "allRepositories": "همه مخزن‌ها", - "nSelected": "{{count}} انتخاب شد", + "nSelected": "{{displayCount}} انتخاب شد", "reviewMemory": "حافظه بررسی", "proposedReviewMdGuidance": "راهنمای پیشنهادی REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "تحلیل شده", "exploitabilityReasoning": "استدلال قابلیت بهرهبرداری", "suggestedFix": "اصلاح پیشنهادی", - "whereFound": "محل شناسایی ({{count}})", + "whereFound": "محل شناسایی ({{displayCount}})", "fullReport": "گزارش کامل تولید شده", "unknown": "ناشناخته", "yes": "بله", "no": "خیر" }, "dashboard": { - "findingsCount": "{{count}} یافته", + "findingsCount": "{{displayCount}} یافته", "notMeasured": "اندازهگیری نشده", "actFirst": "اول اقدام کنید", "slaPosture": "SLA posture", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "برنامه اقدام مخزن", "noOpenFindings": "هیچ یافته باز نیاز به توجه ندارد", "deadlineToday": "مهلت امروز به پایان میرسد", - "daysOverdue": "{{count}} روز عقبافتاده", + "daysOverdue": "{{displayCount}} روز عقبافتاده", "withinDeadline": "در محدوده مهلت", "criticalOverdue": "عقبافتاده بحرانی", "highOverdue": "عقبافتاده با شدت بالا", @@ -1435,6 +1437,27 @@ "syncQueued": "همگامسازی در صف قرار گرفت", "syncStatusUnavailable": "وضعیت همگامسازی در دسترس نیست" }, + "dashboardMetrics": { + "openFindings": "یافته‌های باز", + "openFindingsDetail": "{{critical}} بحرانی، {{high}} بالا", + "confirmedExploitable": "قابل بهره‌برداری تأیید شده", + "confirmedExploitableDetail": "ریسک پروژه توسط تحلیل تأیید شد", + "needsReview": "نیاز به بررسی شما", + "needsReviewDetail": "نیاز به تصمیم انسانی دارد", + "analysisIncomplete": "تحلیل کامل نشده", + "analysisIncompleteDetail": "ریسک پروژه هنوز ناشناخته است", + "slaCompliance": "رعایت SLA", + "notMeasured": "اندازه‌گیری نشده", + "withinDeadlineDetail": "{{within}} از {{total}} در محدوده مهلت", + "noDeadlineData": "هنوز هیچ یافته‌ای مهلت SLA ندارد", + "deadlinePassed": "مهلت گذشته است", + "deadlinePassedDetail": "{{critical}} بحرانی، {{high}} بالا", + "dueThisWeek": "سررسید این هفته", + "dueThisWeekDetail": "{{exploitable}} قابل بهره‌برداری تأیید شده", + "noDeadline": "بدون مهلت", + "reviewSlaAssignment": "بررسی اختصاص SLA", + "allOpenFindingsTracked": "همه یافته‌های باز ردیابی می‌شوند" + }, "dismiss": { "title": "رد یافته", "submit": "رد یافته", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "تحلیل {{mode}}", "automation": "خودکارسازی", "automationAllOff": "همه خاموش", - "automationCount": "{{count}} از ۳ فعال است", + "automationCount": "{{displayCount}} از ۳ فعال است", "notifications": "اعلانها", - "notificationsCount": "{{count}} از ۲ فعال است", + "notificationsCount": "{{displayCount}} از ۲ فعال است", "slaPolicy": "خطمشی SLA", "disabledNoManage": "Security Agent غیرفعال است. فقط مالکان سازمان و مدیران صورتحساب میتوانند آن را روشن کنند.", "disabledNoRepo": "قبل از فعال کردن Security Agent حداقل یک مخزن انتخاب کنید.", @@ -1524,7 +1547,7 @@ "openPullRequest": "باز کردن pull request{{number}}", "openDraftPullRequest": "باز کردن pull request پیشنویس{{number}}", "progress": "پیشرفت", - "attemptHistory": "تاریخچه تلاشها ({{count}})", + "attemptHistory": "تاریخچه تلاشها ({{displayCount}})", "attemptNumber": "تلاش #{{number}}", "startedBy": "شروع شده توسط", "model": "مدل", @@ -1855,9 +1878,9 @@ "toolTask": "کار", "readTodos": "خواندن کارها", "updateTodos": "بهروزرسانی کارها", - "linesBadge": "{{count}} خط", - "filesBadge": "{{count}} فایل", - "matchesBadge": "{{count}} مورد مطابق" + "linesBadge": "{{displayCount}} خط", + "filesBadge": "{{displayCount}} فایل", + "matchesBadge": "{{displayCount}} مورد مطابق" }, "readToolMarkdown": { "linesTruncated": "خطوط {{start}}–{{end}} (بریده شده)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "گزارش این پاسخ ممکن نیست.", "reportAiResponseSubmitted": "گزارش ارسال شد. رسید {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "جزئیات در دسترس نیست", "textDisplay": "نمایش متن", @@ -1999,7 +2026,7 @@ "preparationComplete": "آمادهسازی کامل شد", "preparationFailed": "آمادهسازی شکست خورد", "setupCommand": "دستور راهاندازی {{index}}", - "setupCommandOf": "دستور راهاندازی {{index}} از {{count}}" + "setupCommandOf": "دستور راهاندازی {{index}} از {{displayCount}}" }, "permissionCard": { "title": "مجوز لازم است", @@ -2036,7 +2063,7 @@ "submissionFailed": "ارسال ناموفق بود. لطفاً دوباره تلاش کنید.", "questionAnnouncement": "عامل به ورودی شما نیاز دارد. تا پاسخ شما، ویرایشگر متوقف است.", "permissionAnnouncement": "عامل برای ادامه به مجوز نیاز دارد. تا تصمیم شما، ویرایشگر متوقف است.", - "positionHint": "({{count}} از ۱)", + "positionHint": "({{displayCount}} از ۱)", "movedPastPrompt": "عامل از این پرسش عبور کرده است. این کارت هنگام ادامه جلسه بسته می‌شود.", "waitingForAnswer": "عامل منتظر پاسخ شماست. تا باز بودن این پرسش، پیام شما به عامل متوقف است.", "waitingForPermission": "عامل منتظر مجوز است. تا باز بودن این درخواست، پیام شما به عامل متوقف است." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "دسترسی دوربین غیرفعال است", "cameraAccessMessage": "برای گرفتن عکس، دسترسی دوربین را در تنظیمات مجاز کنید.", "couldNotOpenPhotoPicker": "انتخاب‌گر عکس باز نشد. Kilo را راه‌اندازی مجدد کنید و دوباره تلاش کنید.", - "maxFilesAllowed": "حداکثر {{count}} فایل مجاز است", + "maxFilesAllowed": "حداکثر {{displayCount}} فایل مجاز است", "onlyAddingFiles": "فقط {{accepted}} از {{total}} فایل اضافه می‌شود (حداکثر {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "هزینه {{cost}}", "costSuffix": "، هزینه {{cost}}", "tokensWindowUnavailable": "{{used}} توکن زمینه، پنجره در دسترس نیست", - "tokensUsage": "{{used}} از {{window}} توکن زمینه، {{percentage}}٪ استفاده شده", + "tokensUsage": "{{used}} از {{window}} توکن زمینه، {{percentage}} استفاده شده", "title": "استفاده از زمینه", "used": "استفاده شده", "remaining": "باقی‌مانده", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "استفاده، آخرین پاسخ تکمیل‌شده دستیار را نشان می‌دهد.", "tokenUsage": "استفاده از توکن", "cacheRate": "نرخ کش", - "modelsCount": "مدل‌ها ({{count}})", + "modelsCount": "مدل‌ها ({{displayCount}})", "tokenTotalsNote": "مجموع توکن‌ها فقط این جلسه را پوشش می‌دهد و توکن‌های زیرعامل/جلسه فرزند را شامل نمی‌شود.", "subagents": "زیرعامل‌ها", "subagentsDescription": "هزینه باقی‌مانده از جلسات فرزند", @@ -2373,7 +2400,7 @@ "connectedCli": "روی CLI متصل", "newSessionOn": "جلسه جدید در {{name}}", "noMatchingSessions": "جلسه‌ای مطابقت ندارد.", - "onlyFirstFilesAttached": "فقط {{count}} فایل اول پیوست می‌شوند.", + "onlyFirstFilesAttached": "فقط {{displayCount}} فایل اول پیوست می‌شوند.", "staleMessage": "این اشتراک دیگر در دسترس نیست.", "retryableMessage": "جلسات شما بارگذاری نشدند.", "emptyMessage": "هنوز جلسه‌ای نیست — برای ارسال این، یک جلسه جدید شروع کنید.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass روی این Apple Account متعلق به یک حساب Kilo دیگر است. برای مدیریت آن وارد آن حساب Kilo شوید.", "alreadySubscribed": "شما قبلاً اشتراک Kilo Pass دارید.", "purchaseUnavailable": "خرید Kilo Pass در حال حاضر در دسترس نیست.", - "tierCredits": "${{amount}} اعتبار", + "tierCredits": "{{amount}} اعتبار", "perMonth": "{{price}}/ماه", "verifyPurchaseFailed": "خرید شما تأیید نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید.", "productsCouldNotLoad": "محصولات Kilo Pass از App Store بارگذاری نشدند.", @@ -2417,7 +2444,7 @@ "manageFailed": "باز کردن مدیریت اشتراک App Store ناموفق بود.", "kiloPassSetup": "راه‌اندازی Kilo Pass", "subscriptionHeaderDescription": "اشتراک ماهانه که برای اجرای جلسات کدنویسی هوش مصنوعی در Kilo App — Cloud Agents، جلسات از راه دور و گفتگوهای KiloClaw، به موجودی Kilo شما اعتبار اضافه می‌کند.", - "tierDescription": "${{price}} اعتبار پرداخت‌شده ماهانه برای استفاده از Kilo App اضافه می‌شود.", + "tierDescription": "{{price}} اعتبار پرداخت‌شده ماهانه برای استفاده از Kilo App اضافه می‌شود.", "subscribe": "اشتراک", "subscribeDescription": "اعتبار ماهانه با پیشرفت پاداش", "manage": "مدیریت", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass در انتظار است", "statusCanceling": "Kilo Pass در حال لغو", "statusPastDue": "Kilo Pass معوق است", - "monthlyCredits": "${{credits}} اعتبار ماهانه", + "monthlyCredits": "{{credits}} اعتبار ماهانه", "ends": "پایان در {{date}}", "periodEnd": "پایان دوره", "managedOnGooglePlay": "مدیریت در Google Play", diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 159e079a19..821f8eacbc 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -206,11 +206,11 @@ "loadingLines": "Ladataan {{loaded}}/{{total}} riviä...", "expandContext": "Laajenna konteksti", "expandMoreContext": "Laajenna lisää kontekstia", - "expandLines": "Laajenna {{count}} riviä ({{start}}–{{end}})", - "expandMoreLines": "Laajenna vielä {{count}} riviä ({{start}}–{{end}})", - "expandLinesOfContext": "Laajenna {{count}} kontekstiriviä", + "expandLines": "Laajenna {{displayCount}} riviä ({{start}}–{{end}})", + "expandMoreLines": "Laajenna vielä {{displayCount}} riviä ({{start}}–{{end}})", + "expandLinesOfContext": "Laajenna {{displayCount}} kontekstiriviä", "expandAll": "Laajenna kaikki", - "expandAllLines": "Laajenna kaikki {{count}} riviä", + "expandAllLines": "Laajenna kaikki {{displayCount}} riviä", "loadingMoreFiles": "Ladataan lisää tiedostoja...", "retryLoadingNextPage": "Yritä ladata seuraava sivu uudelleen", "failedToLoadMoreFiles": "Lisätiedostojen lataus epäonnistui — napauta yrittääksesi uudelleen", @@ -301,7 +301,7 @@ "closeReactions": "Sulje reaktiot", "reactionsTitle": "Reaktiot", "addReaction": "Lisää reaktio", - "reactionPill": "{{emoji}} reaktio, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaktio, {{displayCount}} {{countLabel}}", "reaction_one": "reaktio", "reaction": "reaktiota", "reaction_other": "reaktiota", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Tässä pull requestissa ei ole arviointiketjuja tai keskustelukommentteja.", "reviewFiles": "Arvioi tiedostot", "quotedDiffSnippet": "Lainattu diff-ote", - "moreLinesAbove": "… {{count}} lisää riviä yläpuolella", + "moreLinesAbove": "… {{displayCount}} lisää riviä yläpuolella", "termsAcceptRequired": "Sinun on hyväksyttävä palvelun ehdot julkaistaksesi.", "termsOutdatedCopy": "Palvelun ehdot muuttuivat. Avaa tämä näyttö uudelleen hyväksyäksesi uusimman version.", "termsCheckRetryCopy": "Palvelun ehtoja ei voitu tarkistaa. Tarkista yhteys ja yritä uudelleen." @@ -395,11 +395,11 @@ "retryChecks": "Yritä tarkistuksia uudelleen", "viewOnGitHub": "Katso PR GitHubissa", "noChecksReported": "Ei raportoituja tarkistuksia", - "passed": "{{count}} läpäissyt", - "failed": "{{count}} epäonnistui", - "pending": "{{count}} odottaa", - "skipped": "{{count}} ohitettu", - "checksCount": "{{count}} tarkistusta", + "passed": "{{displayCount}} läpäissyt", + "failed": "{{displayCount}} epäonnistui", + "pending": "{{displayCount}} odottaa", + "skipped": "{{displayCount}} ohitettu", + "checksCount": "{{displayCount}} tarkistusta", "checkDetails": "tarkistuksen tiedot", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "odottava kommentti", "pendingComment": "odottavaa kommenttia", "pendingComment_other": "odottavaa kommenttia", - "submitCountOfTotal": "Lähetä {{freshCount}}/{{totalCount}} kommenttia", + "submitCountOfTotal": "Lähetä {{displayFreshCount}}/{{displayTotalCount}} kommenttia", "submitReview": "Lähetä arviointi", - "partialPostedMessage": "Lähetettiin {{freshCount}} kommenttia. {{staleCount}} kommenttia viittaa vanhempaan committiin ja jäi jonoon." + "partialPostedMessage": "Lähetettiin {{displayFreshCount}} kommenttia. {{displayStaleCount}} kommenttia viittaa vanhempaan committiin ja jäi jonoon." }, "reconnectNotice": { "title": "GitHub-yhteys vanhentui", @@ -580,7 +580,8 @@ "agents": "Agentit", "profile": "Profiili", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, välilehti, {{position}}/{{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Viimeaikaiset", "common": "Yleiset", "reactWith": "Reagoi {{reaction}}", - "accessibility": "{{emoji}} reaktio, {{count}}" + "accessibility": "{{emoji}} reaktio, {{displayCount}}" }, "composer": { "replyingTo": "Vastaat käyttäjälle", @@ -650,7 +651,7 @@ "imageUnavailable": "Kuva ei käytettävissä", "openFailed": "Liitettä ei voitu avata. Tarkista yhteys ja yritä uudelleen.", "attachFailed": "Tiedoston liittäminen epäonnistui", - "limit": "Voit liittää enintään {{count}} tiedostoa.", + "limit": "Voit liittää enintään {{displayCount}} tiedostoa.", "sizeRejection": "{{filename}} ylittää {{limit}} liiterajan.", "unreadable": "Tiedostoa {{filename}} ei voitu lukea.", "pastedImage": "liitetty kuva", @@ -722,6 +723,7 @@ "finalTermEnds": "Viimeinen jakso päättyy", "afterFinalTerm": "Viimeisen jakson jälkeen", "remaining": "Jäljellä", + "lessThanOneDay": "Alle 1 päivä", "ends": "Päättyy", "expires": "Vanhenee", "noActivePlan": "Ei aktiivista suunnitelmaa", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "Standard-kuukausihintasi", "perMonth": "/kk", "earlybirdAccessUntil": "Earlybird-käyttöoikeus {{date}} asti", - "earlybirdEnding": "Earlybird päättyy: {{days}} päivää jäljellä", + "earlybirdEnding": "Earlybird päättyy: {{remaining}}", "paymentPastDue": "Maksu on erääntynyt. Päivitä maksutapasi.", "subscriptionCancels": "Tilaus peruuntuu {{date}}", - "trialDaysRemaining": "Kokeilu: {{days}} päivää jäljellä", - "trialEndingSoon": "Kokeilu päättyy pian: {{days}}" + "trialDaysRemaining": "Kokeilu: {{remaining}} jäljellä", + "trialEndingSoon": "Kokeilu päättyy pian: {{remaining}}" }, "changelog": { "title": "Mitä uutta", @@ -996,7 +998,7 @@ "stalledTitle": "Jotain jumittui", "stalledBody": "Emme pystyneet viimeistelemään {{name}}:n asennusta. Yritä uudelleen tai lähetä sähköpostia hi@kilo.ai, jos tämä jatkuu.", "timeoutTitle": "Kestää odotettua kauemmin", - "timeoutBody": "{{name}}:n asennus kestää tavallista kauemmin (yli {{minutes}} minuuttia).", + "timeoutBody": "{{name}}:n asennus kestää tavallista kauemmin (yli {{displayMinutes}} minuuttia).", "continueInBackground": "Jatka taustalla", "settingUp": "Asennetaan {{name}}", "finishingSetup": "Viimeistellään asennusta", @@ -1287,7 +1289,7 @@ "mergeGate": "Yhdistämisportti", "repositories": "Repositoriot", "allRepositories": "Kaikki repositoriot", - "nSelected": "{{count}} valittu", + "nSelected": "{{displayCount}} valittu", "reviewMemory": "Arviointimuisti", "proposedReviewMdGuidance": "Ehdotettu REVIEW.md-ohjeistus" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analysoitu", "exploitabilityReasoning": "Hyödynnettävyyden perustelu", "suggestedFix": "Ehdotettu korjaus", - "whereFound": "Mistä tämä löytyi ({{count}})", + "whereFound": "Mistä tämä löytyi ({{displayCount}})", "fullReport": "Täydellinen luotu raportti", "unknown": "Tuntematon", "yes": "Kyllä", "no": "Ei" }, "dashboard": { - "findingsCount": "{{count}} havaintoa", + "findingsCount": "{{displayCount}} havaintoa", "notMeasured": "Ei mitattu", "actFirst": "Toimi ensin", "slaPosture": "SLA-valmius", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Arkiston toimintasuunnitelma", "noOpenFindings": "Ei avoimia havaintoja, jotka vaatisivat huomiota", "deadlineToday": "Määräaika saavutettu tänään", - "daysOverdue": "{{count}} päivää myöhässä", + "daysOverdue": "{{displayCount}} päivää myöhässä", "withinDeadline": "Määräajassa", "criticalOverdue": "Kriittiset myöhässä", "highOverdue": "Korkeat myöhässä", @@ -1435,6 +1437,27 @@ "syncQueued": "Synkronointi jonossa", "syncStatusUnavailable": "Synkronoinnin tila ei käytettävissä" }, + "dashboardMetrics": { + "openFindings": "Avoimet havainnot", + "openFindingsDetail": "{{critical}} kriittistä, {{high}} korkeaa", + "confirmedExploitable": "Vahvistettu hyödynnettäväksi", + "confirmedExploitableDetail": "Projektin riski vahvistettu analyysissä", + "needsReview": "Vaatii sinun tarkistuksesi", + "needsReviewDetail": "Vaaditaan ihmisen päätös", + "analysisIncomplete": "Analyysi ei valmis", + "analysisIncompleteDetail": "Projektin riski edelleen tuntematon", + "slaCompliance": "SLA-vaatimustenmukaisuus", + "notMeasured": "Ei mitattu", + "withinDeadlineDetail": "{{within}}/{{total}} määräajassa", + "noDeadlineData": "Millään havainnolla ei ole vielä SLA-määräaikaa", + "deadlinePassed": "Määräaika mennyt", + "deadlinePassedDetail": "{{critical}} kriittistä, {{high}} korkeaa", + "dueThisWeek": "Erääntyy tällä viikolla", + "dueThisWeekDetail": "{{exploitable}} vahvistettu hyödynnettäväksi", + "noDeadline": "Ei määräaikaa", + "reviewSlaAssignment": "Tarkista SLA-määritys", + "allOpenFindingsTracked": "Kaikki avoimet havainnot seurannassa" + }, "dismiss": { "title": "Hylkää havainto", "submit": "Hylkää havainto", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}}-analyysi", "automation": "Automatisointi", "automationAllOff": "Kaikki pois", - "automationCount": "{{count}}/3 käytössä", + "automationCount": "{{displayCount}}/3 käytössä", "notifications": "Ilmoitukset", - "notificationsCount": "{{count}}/2 käytössä", + "notificationsCount": "{{displayCount}}/2 käytössä", "slaPolicy": "SLA-käytäntö", "disabledNoManage": "Security Agent on poissa käytöstä. Vain organisaation omistajat ja laskutuksen ylläpitäjät voivat ottaa sen käyttöön.", "disabledNoRepo": "Valitse vähintään yksi arkisto ennen Security Agentin käyttöönottoa.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Avaa pull request{{number}}", "openDraftPullRequest": "Avaa luonnos-pull request{{number}}", "progress": "Edistyminen", - "attemptHistory": "Yrityshistoria ({{count}})", + "attemptHistory": "Yrityshistoria ({{displayCount}})", "attemptNumber": "Yritys #{{number}}", "startedBy": "Aloittanut", "model": "Malli", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "Lue tehtävät", "updateTodos": "Päivitä tehtävät", - "linesBadge": "{{count}} riviä", - "filesBadge": "{{count}} tiedostoa", - "matchesBadge": "{{count}} osumaa" + "linesBadge": "{{displayCount}} riviä", + "filesBadge": "{{displayCount}} tiedostoa", + "matchesBadge": "{{displayCount}} osumaa" }, "readToolMarkdown": { "linesTruncated": "rivit {{start}}–{{end}} (katkaistu)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Tästä vastauksesta ei voi ilmoittaa.", "reportAiResponseSubmitted": "Ilmoitus lähetetty. Kuitti {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Tiedot eivät käytettävissä", "textDisplay": "Tekstin näyttö", @@ -1999,7 +2026,7 @@ "preparationComplete": "Valmistelu valmis", "preparationFailed": "Valmistelu epäonnistui", "setupCommand": "Asennuskomento {{index}}", - "setupCommandOf": "Asennuskomento {{index}} / {{count}}" + "setupCommandOf": "Asennuskomento {{index}} / {{displayCount}}" }, "permissionCard": { "title": "Käyttöoikeus vaaditaan", @@ -2036,7 +2063,7 @@ "submissionFailed": "Lähetys epäonnistui. Yritä uudelleen.", "questionAnnouncement": "Agentti tarvitsee sinun vastaustasi. Komentaja on keskeytetty, kunnes vastaat.", "permissionAnnouncement": "Agentti tarvitsee luvan jatkaakseen. Komentaja on keskeytetty, kunnes päätät.", - "positionHint": "(1/{{count}})", + "positionHint": "(1/{{displayCount}})", "movedPastPrompt": "Agentti on siirtynyt tämän kehotuksen ohi. Tämä kortti sulkeutuu, kun istunto jatkuu.", "waitingForAnswer": "Agentti odottaa vastaustasi. Kun kysymys on avoinna, viestisi agentille on keskeytetty.", "waitingForPermission": "Agentti odottaa lupaa. Kun pyyntö on avoinna, viestisi agentille on keskeytetty." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kameran käyttö estetty", "cameraAccessMessage": "Salli kameran käyttö Asetuksissa ottaaksesi valokuvan.", "couldNotOpenPhotoPicker": "Kuvavalitsinta ei voitu avata. Käynnistä Kilo uudelleen ja yritä uudelleen.", - "maxFilesAllowed": "Enintään {{count}} tiedostoa sallittu", + "maxFilesAllowed": "Enintään {{displayCount}} tiedostoa sallittu", "onlyAddingFiles": "Lisätään vain {{accepted}}/{{total}} tiedostoa (enintään {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "hinta {{cost}}", "costSuffix": ", hinta {{cost}}", "tokensWindowUnavailable": "Konteksti {{used}} tokenia, ikkuna ei saatavilla", - "tokensUsage": "Konteksti {{used}}/{{window}} tokenia, {{percentage}}% käytetty", + "tokensUsage": "Konteksti {{used}}/{{window}} tokenia, {{percentage}} käytetty", "title": "Kontekstin käyttö", "used": "Käytetty", "remaining": "Jäljellä", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Käyttö heijastaa viimeisintä valmistunutta avustajan vastausta.", "tokenUsage": "Tokenien käyttö", "cacheRate": "Välimuistin osuus", - "modelsCount": "Mallit ({{count}})", + "modelsCount": "Mallit ({{displayCount}})", "tokenTotalsNote": "Tokenien kokonaismäärät koskevat vain tätä istuntoa eivätkä sisällä alagentin/lapsi-istunnon tokeneita.", "subagents": "Alagentit", "subagentsDescription": "Lapsi-istuntojen jäännöskustannus", @@ -2373,7 +2400,7 @@ "connectedCli": "Yhdistetyssä CLI:ssä", "newSessionOn": "Uusi istunto laitteessa {{name}}", "noMatchingSessions": "Ei vastaavia istuntoja.", - "onlyFirstFilesAttached": "Vain ensimmäiset {{count}} tiedostoa liitetään.", + "onlyFirstFilesAttached": "Vain ensimmäiset {{displayCount}} tiedostoa liitetään.", "staleMessage": "Tämä jako ei ole enää käytettävissä.", "retryableMessage": "Istuntojasi ei voitu ladata.", "emptyMessage": "Ei istuntoja vielä — aloita uusi lähettääksesi tämän.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Tämän Apple-tilin Kilo Pass kuuluu eri Kilo-tilille. Kirjaudu sisään sille Kilo-tilille hallinnoidaksesi sitä.", "alreadySubscribed": "Sinulla on jo Kilo Pass -tilaus.", "purchaseUnavailable": "Kilo Pass -osto ei ole käytettävissä juuri nyt.", - "tierCredits": "${{amount}} krediittejä", + "tierCredits": "{{amount}} krediittejä", "perMonth": "{{price}}/kk", "verifyPurchaseFailed": "Ostostasi ei voitu vahvistaa. Tarkista yhteytesi ja yritä uudelleen.", "productsCouldNotLoad": "Kilo Pass -tuotteita ei voitu ladata App Storesta.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store -tilauksen hallinnan avaaminen epäonnistui.", "kiloPassSetup": "Kilo Pass -asetukset", "subscriptionHeaderDescription": "Kuukausitilaus, joka lisää krediittejä Kilo-saldollesi AI-koodausistuntojen ajamista varten Kilo-sovelluksessa — Cloud Agentit, etäistunnot ja KiloClaw-chatit.", - "tierDescription": "${{price}} maksettuja krediittejä lisätään kuukausittain Kilo-sovelluksen käyttöä varten.", + "tierDescription": "{{price}} maksettuja krediittejä lisätään kuukausittain Kilo-sovelluksen käyttöä varten.", "subscribe": "Tilaa", "subscribeDescription": "Kuukausikrediitit bonusedistymisen kanssa", "manage": "Hallinnoi", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass odottaa", "statusCanceling": "Kilo Pass peruuntumassa", "statusPastDue": "Kilo Pass erääntynyt", - "monthlyCredits": "${{credits}} kuukausikrediittejä", + "monthlyCredits": "{{credits}} kuukausikrediittejä", "ends": "Päättyy {{date}}", "periodEnd": "jakson loppu", "managedOnGooglePlay": "Hallinnoidaan Google Playssa", diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index 1d749f0914..418e6be1c2 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -206,11 +206,11 @@ "loadingLines": "Ni-load ang {{loaded}} sa {{total}} na linya…", "expandContext": "I-expand ang konteksto", "expandMoreContext": "I-expand pa ang konteksto", - "expandLines": "I-expand ang {{count}} na linya ({{start}}–{{end}})", - "expandMoreLines": "I-expand pa ang {{count}} na linya ({{start}}–{{end}})", - "expandLinesOfContext": "I-expand ang {{count}} na linya ng konteksto", + "expandLines": "I-expand ang {{displayCount}} na linya ({{start}}–{{end}})", + "expandMoreLines": "I-expand pa ang {{displayCount}} na linya ({{start}}–{{end}})", + "expandLinesOfContext": "I-expand ang {{displayCount}} na linya ng konteksto", "expandAll": "I-expand lahat", - "expandAllLines": "I-expand lahat ng {{count}} na linya", + "expandAllLines": "I-expand lahat ng {{displayCount}} na linya", "loadingMoreFiles": "Ni-load ang iba pang file…", "retryLoadingNextPage": "Subukang i-load muli ang susunod na page", "failedToLoadMoreFiles": "Hindi na-load ang iba pang file — tap para subukan muli", @@ -301,7 +301,7 @@ "closeReactions": "Isara ang mga reaksyon", "reactionsTitle": "Mga Reaksyon", "addReaction": "Magdagdag ng reaksyon", - "reactionPill": "{{emoji}} reaksyon, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaksyon, {{displayCount}} {{countLabel}}", "reaction_one": "reaksyon", "reaction": "mga reaksyon", "reaction_other": "mga reaksyon", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Walang review thread o komento sa conversation ang pull request na ito.", "reviewFiles": "Suriin ang mga file", "quotedDiffSnippet": "Quoted diff snippet", - "moreLinesAbove": "… {{count}} pang linya sa itaas", + "moreLinesAbove": "… {{displayCount}} pang linya sa itaas", "termsAcceptRequired": "Dapat tanggapin mo ang Mga Tuntunin ng Serbisyo para mag-post.", "termsOutdatedCopy": "Nagbago ang Mga Tuntunin ng Serbisyo. Buksan muli ang screen na ito para tanggapin ang pinakabagong bersyon.", "termsCheckRetryCopy": "Hindi ma-check ang Mga Tuntunin ng Serbisyo. Suriin ang iyong koneksyon at subukan muli." @@ -395,11 +395,11 @@ "retryChecks": "Subukang i-load muli ang mga check", "viewOnGitHub": "Tingnan ang PR sa GitHub", "noChecksReported": "Walang nai-report na check", - "passed": "{{count}} ang pumasa", - "failed": "{{count}} ang bumagsak", - "pending": "{{count}} ang nakabinbin", - "skipped": "{{count}} ang na-skip", - "checksCount": "{{count}} na check", + "passed": "{{displayCount}} ang pumasa", + "failed": "{{displayCount}} ang bumagsak", + "pending": "{{displayCount}} ang nakabinbin", + "skipped": "{{displayCount}} ang na-skip", + "checksCount": "{{displayCount}} na check", "checkDetails": "mga detalye ng check", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "nakabinbing komento", "pendingComment": "mga nakabinbing komento", "pendingComment_other": "mga nakabinbing komento", - "submitCountOfTotal": "Isumite ang {{freshCount}} sa {{totalCount}} na komento", + "submitCountOfTotal": "Isumite ang {{displayFreshCount}} sa {{displayTotalCount}} na komento", "submitReview": "Isumite ang review", - "partialPostedMessage": "Na-post ang {{freshCount}} na komento. Ang {{staleCount}} na komento ay tumutukoy sa mas lumang commit at nanatili sa iyong queue." + "partialPostedMessage": "Na-post ang {{displayFreshCount}} na komento. Ang {{displayStaleCount}} na komento ay tumutukoy sa mas lumang commit at nanatili sa iyong queue." }, "reconnectNotice": { "title": "Nag-expire ang koneksyon sa GitHub", @@ -580,7 +580,8 @@ "agents": "Mga Agent", "profile": "Profile", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} sa {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Kamakailan", "common": "Karaniwan", "reactWith": "Mag-react gamit ang {{reaction}}", - "accessibility": "{{emoji}} reaksyon, {{count}}" + "accessibility": "{{emoji}} reaksyon, {{displayCount}}" }, "composer": { "replyingTo": "Sumasagot sa", @@ -650,7 +651,7 @@ "imageUnavailable": "Hindi available ang image", "openFailed": "Hindi mabuksan ang attachment. Suriin ang iyong koneksyon at subukan muli.", "attachFailed": "Hindi na-ilakip ang file", - "limit": "Maaari kang mag-attach ng hanggang {{count}} na file.", + "limit": "Maaari kang mag-attach ng hanggang {{displayCount}} na file.", "sizeRejection": "Ang {{filename}} ay lumalampas sa {{limit}} na limitasyon sa attachment.", "unreadable": "Hindi mabasa ang {{filename}}.", "pastedImage": "ang na-paste na image", @@ -722,6 +723,7 @@ "finalTermEnds": "Magtatapos ang huling termino", "afterFinalTerm": "Pagkatapos ng huling termino", "remaining": "Natitira", + "lessThanOneDay": "Mas mababa sa 1 araw", "ends": "Magtatapos", "expires": "Mawawalan ng bisa", "noActivePlan": "Walang aktibong plano", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ang iyong buwanang presyo sa Standard", "perMonth": "/buwan", "earlybirdAccessUntil": "Earlybird access hanggang {{date}}", - "earlybirdEnding": "Magtatapos ang Earlybird: {{days}} araw ang natitira", + "earlybirdEnding": "Magtatapos ang Earlybird: {{remaining}}", "paymentPastDue": "Huli na ang bayad. Pakiusap, i-update ang iyong paraan ng pagbabayad.", "subscriptionCancels": "Kakanselahin ang subscription sa {{date}}", - "trialDaysRemaining": "Trial: {{days}} araw ang natitira", - "trialEndingSoon": "Malapit nang matapos ang trial: {{days}}" + "trialDaysRemaining": "Trial: {{remaining}} ang natitira", + "trialEndingSoon": "Malapit nang matapos ang trial: {{remaining}}" }, "changelog": { "title": "Ano ang Bago", @@ -996,7 +998,7 @@ "stalledTitle": "May na-stall", "stalledBody": "Hindi namin natapos ang pag-setup kay {{name}}. Subukan muli, o mag-email sa hi@kilo.ai kung paulit-ulit itong nangyayari.", "timeoutTitle": "Mas tumatagal kaysa inaasahan", - "timeoutBody": "Mas tumatagal ang setup para kay {{name}} kaysa karaniwan (mahigit {{minutes}} minuto).", + "timeoutBody": "Mas tumatagal ang setup para kay {{name}} kaysa karaniwan (mahigit {{displayMinutes}} minuto).", "continueInBackground": "Magpatuloy sa background", "settingUp": "Siniset-up si {{name}}", "finishingSetup": "Tinatapos ang setup", @@ -1287,7 +1289,7 @@ "mergeGate": "Merge gate", "repositories": "Mga Repository", "allRepositories": "Lahat ng repository", - "nSelected": "{{count}} napili", + "nSelected": "{{displayCount}} napili", "reviewMemory": "Review memory", "proposedReviewMdGuidance": "Iminungkahing gabay sa REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "Nasuri na", "exploitabilityReasoning": "Pangangatwiran sa exploitability", "suggestedFix": "Iminungkahing ayos", - "whereFound": "Kung saan ito natagpuan ({{count}})", + "whereFound": "Kung saan ito natagpuan ({{displayCount}})", "fullReport": "Buong nabuong report", "unknown": "Hindi alam", "yes": "Oo", "no": "Hindi" }, "dashboard": { - "findingsCount": "{{count}} findings", + "findingsCount": "{{displayCount}} findings", "notMeasured": "Hindi nasukat", "actFirst": "Kumilos muna", "slaPosture": "Posture ng SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Plano ng aksyon sa repository", "noOpenFindings": "Walang bukas na finding na nangangailangan ng atensyon", "deadlineToday": "Naabot ang deadline ngayong araw", - "daysOverdue": "{{count}} araw na overdue", + "daysOverdue": "{{displayCount}} araw na overdue", "withinDeadline": "Sa loob ng deadline", "criticalOverdue": "Critical na overdue", "highOverdue": "High na overdue", @@ -1435,6 +1437,27 @@ "syncQueued": "Nakapila ang sync", "syncStatusUnavailable": "Hindi available ang status ng sync" }, + "dashboardMetrics": { + "openFindings": "Mga bukas na finding", + "openFindingsDetail": "{{critical}} critical, {{high}} high", + "confirmedExploitable": "Kumpirmadong maaaring ma-exploit", + "confirmedExploitableDetail": "Kinumpirma ng analysis ang panganib ng proyekto", + "needsReview": "Kailangan ng iyong pagsusuri", + "needsReviewDetail": "Kinakailangan ang desisyon ng tao", + "analysisIncomplete": "Hindi kumpleto ang analysis", + "analysisIncompleteDetail": "Hindi pa alam ang panganib ng proyekto", + "slaCompliance": "Pagsunod sa SLA", + "notMeasured": "Hindi nasukat", + "withinDeadlineDetail": "{{within}} sa {{total}} sa loob ng deadline", + "noDeadlineData": "Wala pang finding na may deadline ng SLA", + "deadlinePassed": "Lampas na sa deadline", + "deadlinePassedDetail": "{{critical}} critical, {{high}} high", + "dueThisWeek": "Deadline ngayong linggo", + "dueThisWeekDetail": "{{exploitable}} kumpirmadong maaaring ma-exploit", + "noDeadline": "Walang deadline", + "reviewSlaAssignment": "Suriin ang pagtatalaga ng SLA", + "allOpenFindingsTracked": "Sinusubaybayan ang lahat ng bukas na finding" + }, "dismiss": { "title": "I-dismiss ang finding", "submit": "I-dismiss ang finding", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} analysis", "automation": "Automation", "automationAllOff": "Lahat naka-off", - "automationCount": "{{count}} sa 3 ang pinagana", + "automationCount": "{{displayCount}} sa 3 ang pinagana", "notifications": "Mga notification", - "notificationsCount": "{{count}} sa 2 ang pinagana", + "notificationsCount": "{{displayCount}} sa 2 ang pinagana", "slaPolicy": "Patakaran sa SLA", "disabledNoManage": "Hindi pinagana ang Security Agent. Ang mga organization owner at billing manager lang ang makakapag-on nito.", "disabledNoRepo": "Pumili ng hindi bababa sa isang repository bago i-enable ang Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Buksan ang pull request{{number}}", "openDraftPullRequest": "Buksan ang draft pull request{{number}}", "progress": "Pag-unlad", - "attemptHistory": "Kasaysayan ng pagsubok ({{count}})", + "attemptHistory": "Kasaysayan ng pagsubok ({{displayCount}})", "attemptNumber": "Pagsubok #{{number}}", "startedBy": "Sinimulan ni", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "Basahin ang mga todo", "updateTodos": "I-update ang mga todo", - "linesBadge": "{{count}} na linya", - "filesBadge": "{{count}} files", - "matchesBadge": "{{count}} tugma" + "linesBadge": "{{displayCount}} na linya", + "filesBadge": "{{displayCount}} files", + "matchesBadge": "{{displayCount}} tugma" }, "readToolMarkdown": { "linesTruncated": "mga linya {{start}}–{{end}} (na-truncate)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Hindi maiulat ang tugon na ito.", "reportAiResponseSubmitted": "Na-submit ang report. Resibo {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Hindi available ang mga detalye", "textDisplay": "Display ng teksto", @@ -1999,7 +2026,7 @@ "preparationComplete": "Kumpleto ang paghahanda", "preparationFailed": "Nabigo ang paghahanda", "setupCommand": "Setup command {{index}}", - "setupCommandOf": "Setup command {{index}} ng {{count}}" + "setupCommandOf": "Setup command {{index}} ng {{displayCount}}" }, "permissionCard": { "title": "Kinakailangan ang permission", @@ -2036,7 +2063,7 @@ "submissionFailed": "Nabigo ang pagpasa. Pakisubukan muli.", "questionAnnouncement": "Kailangan ng agent ang iyong input. Naka-pause ang composer habang sumasagot ka.", "permissionAnnouncement": "Kailangan ng agent ng pahintulot para magpatuloy. Naka-pause ang composer habang nagpapasya ka.", - "positionHint": "(1 ng {{count}})", + "positionHint": "(1 ng {{displayCount}})", "movedPastPrompt": "Lumipas na ng agent ang prompt na ito. Magsasara ang card na ito kapag nagpatuloy ang session.", "waitingForAnswer": "Naghihintay ang agent ng iyong sagot. Habang bukas ang tanong na ito, naka-pause ang iyong mensahe sa agent.", "waitingForPermission": "Naghihintay ang agent ng pahintulot. Habang bukas ang kahilingang ito, naka-pause ang iyong mensahe sa agent." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Naka-disable ang Access sa Kamera", "cameraAccessMessage": "Payagan ang access sa kamera sa Settings para kumuha ng larawan.", "couldNotOpenPhotoPicker": "Hindi mabuksan ang photo picker. I-restart ang Kilo at subukang muli.", - "maxFilesAllowed": "Pinakamaraming {{count}} file ang pinapayagan", + "maxFilesAllowed": "Pinakamaraming {{displayCount}} file ang pinapayagan", "onlyAddingFiles": "{{accepted}} lang sa {{total}} na file ang idinaragdag (max {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "gastos {{cost}}", "costSuffix": ", gastos {{cost}}", "tokensWindowUnavailable": "Context {{used}} tokens, hindi available ang window", - "tokensUsage": "Context {{used}} ng {{window}} na tokens, {{percentage}}% ang nagamit", + "tokensUsage": "Context {{used}} ng {{window}} na tokens, {{percentage}} ang nagamit", "title": "Paggamit ng context", "used": "Nagamit", "remaining": "Natitira", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Ang paggamit ay sumasalamin sa pinakahuling natapos na tugon ng assistant.", "tokenUsage": "Paggamit ng token", "cacheRate": "Rate ng cache", - "modelsCount": "Mga modelo ({{count}})", + "modelsCount": "Mga modelo ({{displayCount}})", "tokenTotalsNote": "Saklaw ng mga kabuuang token ang session na ito lang at hindi kasama ang mga token ng subagent/child-session.", "subagents": "Mga subagent", "subagentsDescription": "Natitirang gastos mula sa mga child session", @@ -2373,7 +2400,7 @@ "connectedCli": "Sa naka-konektang CLI", "newSessionOn": "Bagong session sa {{name}}", "noMatchingSessions": "Walang tugmang session.", - "onlyFirstFilesAttached": "Ang unang {{count}} na file lang ang ilalakip.", + "onlyFirstFilesAttached": "Ang unang {{displayCount}} na file lang ang ilalakip.", "staleMessage": "Hindi na available ang share na ito.", "retryableMessage": "Hindi ma-load ang iyong mga session.", "emptyMessage": "Wala pang session — magsimula ng bago para maipadala ito.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Ang Kilo Pass sa Apple Account na ito ay kabilang sa ibang Kilo account. Mag-sign in sa Kilo account na iyon para pamahalaan ito.", "alreadySubscribed": "Mayroon ka nang Kilo Pass subscription.", "purchaseUnavailable": "Hindi available ang Kilo Pass purchase ngayon.", - "tierCredits": "${{amount}} na credits", + "tierCredits": "{{amount}} na credits", "perMonth": "{{price}}/mo", "verifyPurchaseFailed": "Hindi ma-verify ang iyong purchase. Suriin ang iyong koneksyon at subukang muli.", "productsCouldNotLoad": "Hindi ma-load mula sa App Store ang mga Kilo Pass product.", @@ -2417,7 +2444,7 @@ "manageFailed": "Nabigong buksan ang pamamahala ng App Store subscription.", "kiloPassSetup": "Pag-setup ng Kilo Pass", "subscriptionHeaderDescription": "Isang buwanang subscription na nagdadagdag ng credits sa iyong Kilo balance para sa pagpapatakbo ng mga AI coding session sa Kilo App — Cloud Agents, remote sessions, at KiloClaw chats.", - "tierDescription": "${{price}} na bayad na credits na idinaragdag buwan-buwan para sa paggamit ng Kilo App.", + "tierDescription": "{{price}} na bayad na credits na idinaragdag buwan-buwan para sa paggamit ng Kilo App.", "subscribe": "Mag-subscribe", "subscribeDescription": "Buwanang credits na may bonus progress", "manage": "Pamahalaan", @@ -2425,7 +2452,7 @@ "statusPending": "Nakabinbin ang Kilo Pass", "statusCanceling": "Naka-cancel ang Kilo Pass", "statusPastDue": "Overdue ang Kilo Pass", - "monthlyCredits": "${{credits}} na buwanang credits", + "monthlyCredits": "{{credits}} na buwanang credits", "ends": "Magtatapos {{date}}", "periodEnd": "katapusan ng period", "managedOnGooglePlay": "Pinamamahalaan sa Google Play", diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index a803a7c2bc..d34d72f19a 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -187,7 +187,8 @@ "agents": "Agents", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, onglet, {{position}} sur {{total}}" }, "chat": { "instancePicker": { @@ -228,7 +229,7 @@ "recent": "Récentes", "common": "Courantes", "reactWith": "Réagir avec {{reaction}}", - "accessibility": "{{emoji}} réaction, {{count}}" + "accessibility": "{{emoji}} réaction, {{displayCount}}" }, "composer": { "replyingTo": "Réponse à", @@ -257,7 +258,7 @@ "imageUnavailable": "Image indisponible", "openFailed": "Impossible d'ouvrir la pièce jointe. Vérifiez votre connexion et réessayez.", "attachFailed": "Échec de l'ajout du fichier", - "limit": "Vous pouvez joindre jusqu'à {{count}} fichiers.", + "limit": "Vous pouvez joindre jusqu'à {{displayCount}} fichiers.", "sizeRejection": "{{filename}} dépasse la limite de {{limit}} pour les pièces jointes.", "unreadable": "Impossible de lire {{filename}}.", "pastedImage": "l'image collée", @@ -307,7 +308,8 @@ "someone": "Quelqu'un", "typing_one": "{{name}} est en train d'écrire...", "typing": "{{names}} sont en train d'écrire...", - "typing_other": "{{names}} sont en train d'écrire..." + "typing_other": "{{names}} sont en train d'écrire...", + "typing_many": "{{names}} sont en train d'écrire..." }, "botStatus": { "online": "En ligne", @@ -329,6 +331,7 @@ "finalTermEnds": "La période finale se termine", "afterFinalTerm": "Après la période finale", "remaining": "Restant", + "lessThanOneDay": "Moins d'1 jour", "ends": "Se termine", "expires": "Expire", "noActivePlan": "Aucun forfait actif", @@ -347,11 +350,11 @@ "yourStandardMonthlyPrice": "votre prix mensuel Standard", "perMonth": "/mois", "earlybirdAccessUntil": "Accès Earlybird jusqu'au {{date}}", - "earlybirdEnding": "Fin de l'accès Earlybird : {{days}} jours restants", + "earlybirdEnding": "Fin de l'accès Earlybird : {{remaining}}", "paymentPastDue": "Paiement en retard. Veuillez mettre à jour votre mode de paiement.", "subscriptionCancels": "L'abonnement sera annulé le {{date}}", - "trialDaysRemaining": "Essai : {{days}} jours restants", - "trialEndingSoon": "L'essai se termine bientôt : {{days}}" + "trialDaysRemaining": "Essai : {{remaining}} restant", + "trialEndingSoon": "L'essai se termine bientôt : {{remaining}}" }, "changelog": { "title": "Nouveautés", @@ -553,7 +556,8 @@ "openSettings": "Ouvrir les paramètres de {{name}}", "openUnread": "Ouvrir {{name}}, {{displayCount}} messages non lus", "openUnread_other": "Ouvrir {{name}}, {{displayCount}} messages non lus", - "openUnread_one": "Ouvrir {{name}}, {{displayCount}} message non lu" + "openUnread_one": "Ouvrir {{name}}, {{displayCount}} message non lu", + "openUnread_many": "Ouvrir {{name}}, {{displayCount}} messages non lus" }, "list": { "createInstance": "Créer une instance", @@ -651,7 +655,7 @@ "startingSandbox": "Démarrage du bac à sable", "stoppedBody": "L'instance de {{name}} s'est arrêtée de façon inattendue pendant la configuration.", "stoppedTitle": "Configuration arrêtée", - "timeoutBody": "La configuration de {{name}} prend plus de temps que d'habitude (plus de {{minutes}} minutes).", + "timeoutBody": "La configuration de {{name}} prend plus de temps que d'habitude (plus de {{displayMinutes}} minutes).", "timeoutTitle": "Plus long que prévu" }, "unavailableDescription": "Un abonnement KiloClaw actif est requis pour provisionner une instance. Les instances et abonnements existants continuent de fonctionner normalement.", @@ -898,7 +902,7 @@ "focusAreas": "Domaines d'intérêt", "mergeGate": "Porte de fusion", "model": "Modèle", - "nSelected": "{{count}} sélectionnés", + "nSelected": "{{displayCount}} sélectionnés", "proposedReviewMdGuidance": "Consignes REVIEW.md proposées", "repositories": "Dépôts", "reviewMemory": "Mémoire de revue", @@ -967,7 +971,7 @@ "triageReasoning": "Raisonnement du triage", "unknown": "Inconnu", "watchInCloudAgent": "Suivre dans Cloud Agent", - "whereFound": "Où cela a été trouvé ({{count}})", + "whereFound": "Où cela a été trouvé ({{displayCount}})", "yes": "Oui" }, "analysisSettings": { @@ -1034,7 +1038,8 @@ "severityCriticalOnly": "Critique uniquement", "severityHighAndAbove": "Haute et supérieure", "severityMediumAndAbove": "Moyenne et supérieure", - "title": "Automatisation" + "title": "Automatisation", + "queued_many": "{{displayCount}} résultats existants mis en file d'attente pour analyse." }, "commandRetry": { "discard": "Abandonner" @@ -1047,11 +1052,11 @@ "confirmedExploitable": "Exploitable confirmé", "couldNotLoad": "Impossible de charger les données du tableau de bord", "criticalOverdue": "Critique en retard", - "daysOverdue": "{{count}} jours de retard", + "daysOverdue": "{{displayCount}} jours de retard", "deadlineToday": "Échéance atteinte aujourd'hui", "filterByRepository": "Filtrer par dépôt", "findings": "Résultats", - "findingsCount": "{{count}} résultats", + "findingsCount": "{{displayCount}} résultats", "highOverdue": "Haute en retard", "lastSynced": "Dernière synchronisation {{time}}", "manageRepositories": "Gérer les dépôts", @@ -1077,6 +1082,27 @@ "syncStatusUnavailable": "État de synchronisation indisponible", "withinDeadline": "Dans les délais" }, + "dashboardMetrics": { + "openFindings": "Résultats ouverts", + "openFindingsDetail": "{{critical}} critiques, {{high}} de gravité haute", + "confirmedExploitable": "Exploitable confirmé", + "confirmedExploitableDetail": "Risque du projet confirmé par l'analyse", + "needsReview": "Nécessite votre revue", + "needsReviewDetail": "Décision humaine requise", + "analysisIncomplete": "Analyse non terminée", + "analysisIncompleteDetail": "Risque du projet encore inconnu", + "slaCompliance": "Conformité SLA", + "notMeasured": "Non mesuré", + "withinDeadlineDetail": "{{within}} sur {{total}} dans les délais", + "noDeadlineData": "Aucun résultat n'a encore d'échéance SLA", + "deadlinePassed": "Échéance dépassée", + "deadlinePassedDetail": "{{critical}} critiques, {{high}} de gravité haute", + "dueThisWeek": "À échéance cette semaine", + "dueThisWeekDetail": "{{exploitable}} confirmé exploitable", + "noDeadline": "Aucune échéance", + "reviewSlaAssignment": "Examiner l'attribution SLA", + "allOpenFindingsTracked": "Tous les résultats ouverts sont suivis" + }, "dismiss": { "alreadyResolvedDescription": "Ce résultat a déjà été résolu et n'accepte plus d'ignorance.", "cannotDismissDescription": "Seuls les propriétaires d'organisation et les gestionnaires de facturation peuvent ignorer des résultats.", @@ -1174,7 +1200,7 @@ "title": "Notifications" }, "remediation": { - "attemptHistory": "Historique des tentatives ({{count}})", + "attemptHistory": "Historique des tentatives ({{displayCount}})", "attemptNumber": "Tentative n°{{number}}", "branch": "Branche", "cancelMessage": "Security Agent arrêtera la tentative de remédiation en cours.", @@ -1242,7 +1268,7 @@ "analysisModeSubtitle": "Analyse {{mode}}", "automation": "Automatisation", "automationAllOff": "Tout désactivé", - "automationCount": "{{count}} sur 3 activées", + "automationCount": "{{displayCount}} sur 3 activées", "couldNotLoadPermissions": "Impossible de charger les autorisations", "couldNotLoadRepositories": "Impossible de charger les dépôts", "couldNotLoadSettings": "Impossible de charger les paramètres de Security Agent", @@ -1253,7 +1279,7 @@ "enabled": "Activé", "modelsAndAnalysis": "Modèles et analyse", "notifications": "Notifications", - "notificationsCount": "{{count}} sur 2 activées", + "notificationsCount": "{{displayCount}} sur 2 activées", "off": "Désactivé", "on": "Activé", "repositories": "Dépôts", @@ -1264,7 +1290,8 @@ "selectRepositories": "Sélectionner les dépôts", "selectRepositoriesSubtitle": "Choisissez les dépôts surveillés par Security Agent", "slaPolicy": "Politique SLA", - "title": "Paramètres" + "title": "Paramètres", + "repositoriesCount_many": "{{displayCount}} dépôts sélectionnés" }, "settingsSave": { "discard": "Abandonner", @@ -1384,7 +1411,8 @@ "partRenderer": { "updatedFileCount_one": "{{displayCount}} fichier mis à jour", "updatedFileCount": "{{displayCount}} fichiers mis à jour", - "updatedFileCount_other": "{{displayCount}} fichiers mis à jour" + "updatedFileCount_other": "{{displayCount}} fichiers mis à jour", + "updatedFileCount_many": "{{displayCount}} fichiers mis à jour" }, "toolPatch": { "operationAdded": "Ajouté", @@ -1409,9 +1437,9 @@ "toolTask": "tâche", "readTodos": "Lire les tâches", "updateTodos": "Mettre à jour les tâches", - "linesBadge": "{{count}} lignes", - "filesBadge": "{{count}} fichiers", - "matchesBadge": "{{count}} correspondances" + "linesBadge": "{{displayCount}} lignes", + "filesBadge": "{{displayCount}} fichiers", + "matchesBadge": "{{displayCount}} correspondances" }, "readToolMarkdown": { "linesTruncated": "lignes {{start}}–{{end}} (tronquées)", @@ -1495,6 +1523,10 @@ "reportAiResponseFailedTerminal": "Cette réponse ne peut pas être signalée.", "reportAiResponseSubmitted": "Signalement envoyé. Reçu {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Détails indisponibles", "textDisplay": "Affichage du texte", @@ -1553,7 +1585,7 @@ "preparationComplete": "Préparation terminée", "preparationFailed": "Échec de la préparation", "setupCommand": "Commande de configuration {{index}}", - "setupCommandOf": "Commande de configuration {{index}} sur {{count}}" + "setupCommandOf": "Commande de configuration {{index}} sur {{displayCount}}" }, "permissionCard": { "title": "Autorisation requise", @@ -1590,7 +1622,7 @@ "submissionFailed": "Échec de l'envoi. Veuillez réessayer.", "questionAnnouncement": "L'agent a besoin de votre saisie. L'éditeur est en pause pendant que vous répondez.", "permissionAnnouncement": "L'agent a besoin d'une autorisation pour continuer. L'éditeur est en pause pendant que vous décidez.", - "positionHint": "(1 sur {{count}})", + "positionHint": "(1 sur {{displayCount}})", "movedPastPrompt": "L'agent a dépassé cette invite. Cette carte se fermera lorsque la session continuera.", "waitingForAnswer": "L'agent attend votre réponse. Tant que cette question est ouverte, votre message à l'agent est en pause.", "waitingForPermission": "L'agent attend une autorisation. Tant que cette demande est ouverte, votre message à l'agent est en pause." @@ -1630,7 +1662,8 @@ "omitted_other": "{{displayCount}} éléments antérieurs de cette session n’ont pas pu être affichés.", "couldNotLoad": "Impossible de charger les messages précédents.", "unavailable": "Les messages précédents ne sont pas disponibles.", - "tooLarge": "Les messages précédents sont trop volumineux pour être chargés." + "tooLarge": "Les messages précédents sont trop volumineux pour être chargés.", + "omitted_many": "{{displayCount}} éléments antérieurs de cette session n’ont pas pu être affichés." }, "markdownTable": { "viewTable": "Voir le tableau", @@ -1642,7 +1675,9 @@ "rowCount_one": "ligne", "rowCount": "lignes", "rowCount_other": "lignes", - "opensFullScreen": "ouvre en plein écran" + "opensFullScreen": "ouvre en plein écran", + "columnCount_many": "colonnes", + "rowCount_many": "lignes" }, "sessionFilter": { "title": "Filtrer les sessions", @@ -1711,7 +1746,7 @@ "cameraAccessDisabled": "Accès à l'appareil photo désactivé", "cameraAccessMessage": "Autorisez l'accès à l'appareil photo dans les Réglages pour prendre une photo.", "couldNotOpenPhotoPicker": "Impossible d'ouvrir le sélecteur de photos. Redémarrez Kilo et réessayez.", - "maxFilesAllowed": "Maximum {{count}} fichiers autorisés", + "maxFilesAllowed": "Maximum {{displayCount}} fichiers autorisés", "onlyAddingFiles": "Ajout de {{accepted}} fichiers sur {{total}} uniquement (max {{max}})" }, "composer": { @@ -1776,7 +1811,7 @@ "costPrefix": "coût {{cost}}", "costSuffix": ", coût {{cost}}", "tokensWindowUnavailable": "Contexte {{used}} jetons, fenêtre indisponible", - "tokensUsage": "Contexte {{used}} sur {{window}} jetons, {{percentage}} % utilisés", + "tokensUsage": "Contexte {{used}} sur {{window}} jetons, {{percentage}} utilisés", "title": "Utilisation du contexte", "used": "Utilisé", "remaining": "Restant", @@ -1785,7 +1820,7 @@ "usageReflectsLatest": "L'utilisation reflète la dernière réponse de l'assistant terminée.", "tokenUsage": "Utilisation des jetons", "cacheRate": "Taux de cache", - "modelsCount": "Modèles ({{count}})", + "modelsCount": "Modèles ({{displayCount}})", "tokenTotalsNote": "Les totaux de jetons couvrent uniquement cette session et excluent les jetons des sous-agents/sessions enfants.", "subagents": "Sous-agents", "subagentsDescription": "Coût résiduel des sessions enfants", @@ -1797,7 +1832,8 @@ "stepsCount_one": "{{steps}} étape", "stepsCount": "{{steps}} étapes", "stepsCount_other": "{{steps}} étapes", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_many": "{{steps}} étapes" }, "prBadge": { "open": "pull request ouverte", @@ -1935,7 +1971,7 @@ "connectedCli": "Sur une CLI connectée", "newSessionOn": "Nouvelle session sur {{name}}", "noMatchingSessions": "Aucune session correspondante.", - "onlyFirstFilesAttached": "Seuls les {{count}} premiers fichiers seront joints.", + "onlyFirstFilesAttached": "Seuls les {{displayCount}} premiers fichiers seront joints.", "staleMessage": "Ce partage n'est plus disponible.", "retryableMessage": "Impossible de charger vos sessions.", "emptyMessage": "Aucune session pour le moment — démarrez-en une nouvelle pour envoyer ceci.", @@ -1968,7 +2004,7 @@ "otherAccountCopy": "Le Kilo Pass sur ce compte Apple appartient à un autre compte Kilo. Connectez-vous à ce compte Kilo pour le gérer.", "alreadySubscribed": "Vous avez déjà un abonnement Kilo Pass.", "purchaseUnavailable": "L'achat de Kilo Pass n'est pas disponible pour le moment.", - "tierCredits": "{{amount}} $ en crédits", + "tierCredits": "{{amount}} en crédits", "perMonth": "{{price}}/mois", "verifyPurchaseFailed": "Impossible de vérifier votre achat. Vérifiez votre connexion et réessayez.", "productsCouldNotLoad": "Les produits Kilo Pass n'ont pas pu être chargés depuis l'App Store.", @@ -1979,7 +2015,7 @@ "manageFailed": "Impossible d'ouvrir la gestion des abonnements de l'App Store.", "kiloPassSetup": "Configuration de Kilo Pass", "subscriptionHeaderDescription": "Un abonnement mensuel qui ajoute des crédits à votre solde Kilo pour lancer des sessions de codage IA dans Kilo App — Cloud Agents, sessions à distance et discussions KiloClaw.", - "tierDescription": "${{price}} de crédits payants ajoutés chaque mois pour l'utilisation de Kilo App.", + "tierDescription": "{{price}} de crédits payants ajoutés chaque mois pour l'utilisation de Kilo App.", "subscribe": "S'abonner", "subscribeDescription": "Crédits mensuels avec progression bonus", "manage": "Gérer", @@ -1987,7 +2023,7 @@ "statusPending": "Kilo Pass en attente", "statusCanceling": "Kilo Pass en cours d'annulation", "statusPastDue": "Kilo Pass en retard", - "monthlyCredits": "${{credits}} de crédits mensuels", + "monthlyCredits": "{{credits}} de crédits mensuels", "ends": "Se termine le {{date}}", "periodEnd": "fin de période", "managedOnGooglePlay": "Géré sur Google Play", @@ -2128,7 +2164,9 @@ "cent_other": "centimes", "dollar_one": "dollar", "dollar": "dollars", - "dollar_other": "dollars" + "dollar_other": "dollars", + "cent_many": "centimes", + "dollar_many": "dollars" }, "githubInstall": { "couldNotOpenMessage": "Impossible de démarrer la configuration de la GitHub App. Veuillez réessayer.", @@ -2150,17 +2188,17 @@ "accessDeniedDescription": "Vous n'avez pas l'autorisation de voir cette pull request.", "checkConnection": "Vérifier la connexion", "checks": { - "checksCount": "{{count}} vérifications", + "checksCount": "{{displayCount}} vérifications", "couldNotLoad": "Impossible de charger les vérifications.", - "failed": "{{count}} en échec", + "failed": "{{displayCount}} en échec", "noAccess": "Vous n'avez pas accès aux vérifications de ce dépôt.", "noChecksReported": "Aucune vérification signalée", "notAvailable": "Les vérifications ne sont pas encore disponibles. Le commit de tête n'a peut-être pas été traité, ou la Kilo GitHub App n'est pas installée sur le dépôt de tête.", "openDetails": "Ouvrir les détails de {{name}}", - "passed": "{{count}} réussies", - "pending": "{{count}} en attente", + "passed": "{{displayCount}} réussies", + "pending": "{{displayCount}} en attente", "retryChecks": "Réessayer les vérifications", - "skipped": "{{count}} ignorées", + "skipped": "{{displayCount}} ignorées", "title": "Vérifications", "viewOnGitHub": "Voir la PR sur GitHub", "checkDetails": "détails de la vérification", @@ -2238,7 +2276,7 @@ "terminal": "Cet utilisateur ne peut pas être signalé." } }, - "moreLinesAbove": "… {{count}} lignes supplémentaires au-dessus", + "moreLinesAbove": "… {{displayCount}} lignes supplémentaires au-dessus", "mute": "Mettre en sourdine", "mutedUser": "{{login}} mis en sourdine", "noDiscussion": "Aucune discussion pour le moment", @@ -2246,7 +2284,7 @@ "comment_one": "1 commentaire", "outdated": "Obsolète", "quotedDiffSnippet": "Extrait de diff cité", - "reactionPill": "{{emoji}} réaction, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} réaction, {{displayCount}} {{countLabel}}", "reaction": "réactions", "reaction_other": "réactions", "reaction_one": "réaction", @@ -2276,7 +2314,9 @@ "viewTerms": "Voir les conditions", "termsAcceptRequired": "Vous devez accepter les Conditions d'utilisation pour publier.", "termsCheckRetryCopy": "Impossible de vérifier les Conditions d'utilisation. Vérifiez votre connexion et réessayez.", - "termsOutdatedCopy": "Les Conditions d'utilisation ont changé. Rouvrez cet écran pour accepter la dernière version." + "termsOutdatedCopy": "Les Conditions d'utilisation ont changé. Rouvrez cet écran pour accepter la dernière version.", + "comment_many": "{{displayCount}} commentaires", + "reaction_many": "réactions" }, "entry": { "clearLink": "Effacer le lien de la pull request", @@ -2350,12 +2390,12 @@ "hunkRows": { "contextUnavailable": "Contexte indisponible à cette référence", "expandAll": "Tout développer", - "expandAllLines": "Développer les {{count}} lignes", + "expandAllLines": "Développer les {{displayCount}} lignes", "expandContext": "Développer le contexte", - "expandLines": "Développer {{count}} lignes ({{start}}–{{end}})", - "expandLinesOfContext": "Développer {{count}} lignes de contexte", + "expandLines": "Développer {{displayCount}} lignes ({{start}}–{{end}})", + "expandLinesOfContext": "Développer {{displayCount}} lignes de contexte", "expandMoreContext": "Développer plus de contexte", - "expandMoreLines": "Développer {{count}} lignes supplémentaires ({{start}}–{{end}})", + "expandMoreLines": "Développer {{displayCount}} lignes supplémentaires ({{start}}–{{end}})", "failedToLoadContext": "Échec du chargement du contexte — touchez pour réessayer", "failedToLoadMoreFiles": "Échec du chargement de plus de fichiers — touchez pour réessayer", "fileLoadedCount_one": "{{displayCount}} fichier chargé", @@ -2377,7 +2417,9 @@ "loadingLines": "Chargement de {{loaded}} sur {{total}} lignes…", "loadingMoreFiles": "Chargement de plus de fichiers…", "retryLoadingContext": "Réessayer de charger le contexte", - "retryLoadingNextPage": "Réessayer de charger la page suivante" + "retryLoadingNextPage": "Réessayer de charger la page suivante", + "fileLoadedCount_many": "{{displayCount}} fichiers chargés", + "fileLoadedOfTotalCount_many": "{{displayCount}} fichiers chargés sur {{total}}" }, "inbox": { "couldNotLoad": "Impossible de charger la boîte de réception", @@ -2452,7 +2494,9 @@ "stateOpenApproved": "Ouverte · Approuvée", "stateOpenChangesRequested": "Ouverte · Modifications demandées", "stateOpenReviewRequired": "Ouverte · Revue requise", - "unknownAuthor": "Auteur inconnu" + "unknownAuthor": "Auteur inconnu", + "commit_many": "commits", + "file_many": "fichiers" }, "pendingComment": { "allQueuedHint": "Tous les commentaires seront envoyés dans une seule requête groupée.", @@ -2500,9 +2544,10 @@ "pendingComment_one": "commentaire en attente", "summaryOptional": "Résumé (facultatif)", "title": "Envoyer la revue", - "partialPostedMessage": "{{freshCount}} commentaire(s) publié(s). {{staleCount}} commentaire(s) pointent vers un commit plus ancien et sont restés dans votre file d'attente.", - "submitCountOfTotal": "Envoyer {{freshCount}} commentaires sur {{totalCount}}", - "submitReview": "Envoyer la revue" + "partialPostedMessage": "{{displayFreshCount}} commentaire(s) publié(s). {{displayStaleCount}} commentaire(s) pointent vers un commit plus ancien et sont restés dans votre file d'attente.", + "submitCountOfTotal": "Envoyer {{displayFreshCount}} commentaires sur {{displayTotalCount}}", + "submitReview": "Envoyer la revue", + "pendingComment_many": "commentaires en attente" }, "fileStatus": { "added": "Ajouté", @@ -2654,7 +2699,8 @@ "processingNeedsReview": "Traitement à examiner", "retry": "Réessayer", "retryHint": "Réessaie le chargement du statut de Kilo Pass.", - "setupHint": "Ouvre la configuration de Kilo Pass sur le Web." + "setupHint": "Ouvre la configuration de Kilo Pass sur le Web.", + "paidSeat_many": "{{displayCount}} sièges payés" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index 25793fd124..30c38332c0 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -206,11 +206,11 @@ "loadingLines": "Ag lódáil {{loaded}} de {{total}} líne…", "expandContext": "Leathnaigh comhthéacs", "expandMoreContext": "Leathnaigh níos mó comhthéacs", - "expandLines": "Leathnaigh {{count}} líne ({{start}}–{{end}})", - "expandMoreLines": "Leathnaigh níos mó {{count}} líne ({{start}}–{{end}})", - "expandLinesOfContext": "Leathnaigh {{count}} líne comhthéacs", + "expandLines": "Leathnaigh {{displayCount}} líne ({{start}}–{{end}})", + "expandMoreLines": "Leathnaigh níos mó {{displayCount}} líne ({{start}}–{{end}})", + "expandLinesOfContext": "Leathnaigh {{displayCount}} líne comhthéacs", "expandAll": "Leathnaigh go léir", - "expandAllLines": "Leathnaigh {{count}} líne go léir", + "expandAllLines": "Leathnaigh {{displayCount}} líne go léir", "loadingMoreFiles": "Ag lódáil tuilleadh comhad…", "retryLoadingNextPage": "Bain triail as an chéad leathanach eile a lódáil arís", "failedToLoadMoreFiles": "Theip ar thuilleadh comhad a lódáil — tapáil chun triail arís a bhaint", @@ -227,7 +227,13 @@ "fileLoadedOfTotalCount_other": "{{displayCount}} comhad lódáilte de {{total}}", "filesStillLoading": "Tá na comhaid fós ag lódáil. Tarraing chun athnuachan a dhéanamh.", "goToOverview": "Téigh go dtí an Forléargas", - "goToOverviewTab": "Téigh go dtí an táb Forléargais" + "goToOverviewTab": "Téigh go dtí an táb Forléargais", + "fileLoadedCount_two": "{{displayCount}} chomhad lódáilte", + "fileLoadedCount_few": "{{displayCount}} chomhad lódáilte", + "fileLoadedCount_many": "{{displayCount}} comhad lódáilte", + "fileLoadedOfTotalCount_two": "{{displayCount}} chomhad lódáilte de {{total}}", + "fileLoadedOfTotalCount_few": "{{displayCount}} chomhad lódáilte de {{total}}", + "fileLoadedOfTotalCount_many": "{{displayCount}} comhad lódáilte de {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ gan líne nua ag deireadh an chomhaid", @@ -301,7 +307,7 @@ "closeReactions": "Dún imoibriúcháin", "reactionsTitle": "Imoibriúcháin", "addReaction": "Cuir imoibriúchán leis", - "reactionPill": "{{emoji}} imoibriúchán, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} imoibriúchán, {{displayCount}} {{countLabel}}", "reaction_one": "imoibriúchán", "reaction": "imoibriúcháin", "reaction_other": "imoibriúcháin", @@ -353,10 +359,16 @@ "noDiscussionDescription": "Níl aon snáithe athbhreithnithe ná tráchtanna comhrá ar an iarratas tarraingthe seo.", "reviewFiles": "Athbhreithnigh comhaid", "quotedDiffSnippet": "Sliocht diff luadhite", - "moreLinesAbove": "… {{count}} líne eile thuas", + "moreLinesAbove": "… {{displayCount}} líne eile thuas", "termsAcceptRequired": "Caithfidh tú glacadh le Téarmaí na Seirbhíse chun postáil.", "termsOutdatedCopy": "Athraíodh Téarmaí na Seirbhíse. Athoscail an scáileán seo chun glacadh leis an leagan is déanaí.", - "termsCheckRetryCopy": "Níorbh fhéidir Téarmaí na Seirbhíse a sheiceáil. Seiceáil do nasc agus bain triail as arís." + "termsCheckRetryCopy": "Níorbh fhéidir Téarmaí na Seirbhíse a sheiceáil. Seiceáil do nasc agus bain triail as arís.", + "comment_two": "{{displayCount}} thrácht", + "comment_few": "{{displayCount}} thrácht", + "comment_many": "{{displayCount}} trácht", + "reaction_two": "imoibriúchán", + "reaction_few": "imoibriúchán", + "reaction_many": "imoibriúcháin" }, "couldNotOpenGitHubAppSettings": "Níorbh fhéidir socruithe Aip GitHub a oscailt", "installKiloGitHubApp": "Suiteáil Aip GitHub Kilo", @@ -395,11 +407,11 @@ "retryChecks": "Bain triail as seiceálacha arís", "viewOnGitHub": "Féach ar an PR ar GitHub", "noChecksReported": "Níor tuairiscíodh aon seiceáil", - "passed": "{{count}} rith", - "failed": "{{count}} theip", - "pending": "{{count}} ar feitheamh", - "skipped": "{{count}} scipeáilte", - "checksCount": "{{count}} seiceáil", + "passed": "{{displayCount}} rith", + "failed": "{{displayCount}} theip", + "pending": "{{displayCount}} ar feitheamh", + "skipped": "{{displayCount}} scipeáilte", + "checksCount": "{{displayCount}} seiceáil", "checkDetails": "sonraí seiceála", "pullRequest": "iarratas tarraingthe" }, @@ -459,9 +471,12 @@ "pendingComment_one": "trácht ar feitheamh", "pendingComment": "tráchtanna ar feitheamh", "pendingComment_other": "tráchtanna ar feitheamh", - "submitCountOfTotal": "Seol {{freshCount}} de {{totalCount}} trácht", + "submitCountOfTotal": "Seol {{displayFreshCount}} de {{displayTotalCount}} trácht", "submitReview": "Seol athbhreithniú", - "partialPostedMessage": "Postáladh {{freshCount}} trácht(anna). Díríonn {{staleCount}} trácht(anna) ar thiomantas níos sine agus d'fhan siad i do scuaine." + "partialPostedMessage": "Postáladh {{displayFreshCount}} trácht(anna). Díríonn {{displayStaleCount}} trácht(anna) ar thiomantas níos sine agus d'fhan siad i do scuaine.", + "pendingComment_two": "thrácht ar feitheamh", + "pendingComment_few": "thrácht ar feitheamh", + "pendingComment_many": "tráchtanna ar feitheamh" }, "reconnectNotice": { "title": "Tá an nasc GitHub imithe in éag", @@ -488,7 +503,13 @@ "commit_other": "tiomantais", "file_one": "comhad", "file": "comhaid", - "file_other": "comhaid" + "file_other": "comhaid", + "commit_two": "thiomantas", + "commit_few": "thiomantas", + "commit_many": "tiomantais", + "file_two": "chomhad", + "file_few": "chomhad", + "file_many": "comhaid" }, "pendingComment": { "editOutdatedA11y": "Cuir trácht seanchaithe ar feitheamh in eagar ar {{location}}", @@ -580,7 +601,8 @@ "agents": "Gníomhairí", "profile": "Próifíl", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, cluaisín, {{position}} as {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +643,7 @@ "recent": "Le déanaí", "common": "Coitianta", "reactWith": "Imoibrigh le {{reaction}}", - "accessibility": "{{emoji}} imoibriúchán, {{count}}" + "accessibility": "{{emoji}} imoibriúchán, {{displayCount}}" }, "composer": { "replyingTo": "Ag freagra ar", @@ -650,7 +672,7 @@ "imageUnavailable": "Íomhá ar fáil", "openFailed": "Níorbh fhéidir an ceangaltán a oscailt. Seiceáil do nasc agus bain triail as arís.", "attachFailed": "Theip ar an gcomhad a cheangal", - "limit": "Is féidir leat suas le {{count}} comhad a cheangal.", + "limit": "Is féidir leat suas le {{displayCount}} comhad a cheangal.", "sizeRejection": "Is mó {{filename}} ná an teorainn cheangail {{limit}}.", "unreadable": "Níorbh fhéidir {{filename}} a léamh.", "pastedImage": "an íomhá ghreamaithe", @@ -700,7 +722,10 @@ "someone": "Duine éigin", "typing_one": "Tá {{name}} ag clóscríobh...", "typing": "Tá {{names}} ag clóscríobh...", - "typing_other": "Tá {{names}} ag clóscríobh..." + "typing_other": "Tá {{names}} ag clóscríobh...", + "typing_two": "Tá {{names}} ag clóscríobh...", + "typing_few": "Tá {{names}} ag clóscríobh...", + "typing_many": "Tá {{names}} ag clóscríobh..." }, "botStatus": { "online": "Ar líne", @@ -734,17 +759,18 @@ "finalCommitTermEndsOn": "Críochnaíonn do théarma Tiomantais dheiridh ar {{date}}. Lean ar aghaidh mar Chaighdeán ag {{price}}, nó críochnaíonn an t-óstáil.", "freeTrial": "Triail Saor in Aisce", "hostingEnds": "Críochnaíonn an t-óstáil", + "lessThanOneDay": "Níos lú ná 1 lá", "renews": "Athnuaitear", "standardMonthToMonth": "Caighdeánach mí ar mhí", "standardStartsOn": "Tosóidh an Caighdeán ar {{date}} ag {{price}}.", "yourStandardMonthlyPrice": "do phraghas míosúil Caighdeánach", "perMonth": "/mí", "earlybirdAccessUntil": "Rochtain Earlybird go dtí {{date}}", - "earlybirdEnding": "Earlybird ag críochnú: {{days}} lá fágtha", + "earlybirdEnding": "Earlybird ag críochnú: {{remaining}}", "paymentPastDue": "Íocaíocht thar téarma. Nuashonraigh do mhodh íocaíochta le do thoil.", "subscriptionCancels": "Cealaítear an síntiús {{date}}", - "trialDaysRemaining": "Triail: {{days}} lá fágtha", - "trialEndingSoon": "Triail ag críochnú go luath: {{days}}" + "trialDaysRemaining": "Triail: {{remaining}} fágtha", + "trialEndingSoon": "Triail ag críochnú go luath: {{remaining}}" }, "changelog": { "title": "Cad atá Nua", @@ -996,7 +1022,7 @@ "stalledTitle": "Chuir rud éigin stad", "stalledBody": "Níorbh fhéidir linn {{name}} a shocrú. Bain triail as arís, nó seol ríomhphost chuig hi@kilo.ai má leanann sé seo.", "timeoutTitle": "Ag tógáil níos faide ná mar a bhíothas ag súil leis", - "timeoutBody": "Tá socrú {{name}} ag tógáil níos faide ná mar is gnách (breis agus {{minutes}} nóiméad).", + "timeoutBody": "Tá socrú {{name}} ag tógáil níos faide ná mar is gnách (breis agus {{displayMinutes}} nóiméad).", "continueInBackground": "Lean ar aghaidh sa chúlra", "settingUp": "Ag socrú {{name}}", "finishingSetup": "Ag críochnú socraithe", @@ -1071,7 +1097,10 @@ "openUnread_other": "Oscail {{name}}, {{displayCount}} teachtaireacht gan léamh", "open": "Oscail {{name}}", "openSettings": "Oscail socruithe do {{name}}", - "fixOnKiloAi": "Deisigh ar kilo.ai: {{label}}" + "fixOnKiloAi": "Deisigh ar kilo.ai: {{label}}", + "openUnread_two": "Oscail {{name}}, {{displayCount}} theachtaireacht gan léamh", + "openUnread_few": "Oscail {{name}}, {{displayCount}} theachtaireacht gan léamh", + "openUnread_many": "Oscail {{name}}, {{displayCount}} teachtaireacht gan léamh" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1316,7 @@ "mergeGate": "Geata cumaisc", "repositories": "Stóir", "allRepositories": "Gach stór", - "nSelected": "{{count}} roghnaithe", + "nSelected": "{{displayCount}} roghnaithe", "reviewMemory": "Cuimhne athbhreithnithe", "proposedReviewMdGuidance": "Treoir REVIEW.md molta" }, @@ -1367,7 +1396,10 @@ "severityAll": "Gach déine", "confidenceHighOnly": "Muinín ard amháin", "confidenceMediumOrHigher": "Meánach nó níos airde", - "confidenceAny": "Muinín ar bith" + "confidenceAny": "Muinín ar bith", + "queued_two": "{{displayCount}} fhionnachtain atá ann cheana i scuaine le haghaidh anailíse.", + "queued_few": "{{displayCount}} fhionnachtain atá ann cheana i scuaine le haghaidh anailíse.", + "queued_many": "{{displayCount}} fionnachtain atá ann cheana i scuaine le haghaidh anailíse." }, "analysis": { "couldNotLoad": "Níorbh fhéidir an anailís a lódáil", @@ -1391,14 +1423,14 @@ "analyzed": "Anailísithe", "exploitabilityReasoning": "Réasúnaíocht inshaothraitheachta", "suggestedFix": "Deisiúchán molta", - "whereFound": "Cá bhfuarthas é seo ({{count}})", + "whereFound": "Cá bhfuarthas é seo ({{displayCount}})", "fullReport": "Tuairisc iomlán ginte", "unknown": "Anaithnid", "yes": "Tá", "no": "Níl" }, "dashboard": { - "findingsCount": "{{count}} fionnachtain", + "findingsCount": "{{displayCount}} fionnachtain", "notMeasured": "Ní tomhaiste", "actFirst": "Gníomhaigh ar dtús", "slaPosture": "Staidiúir SLA", @@ -1407,7 +1439,7 @@ "repositoryActionPlan": "Plean gníomhaíochta stóir", "noOpenFindings": "Ní gá aird ar aon fhionnachtain oscailte", "deadlineToday": "Sroicheadh spriocdháta inniu", - "daysOverdue": "{{count}} lá thar am", + "daysOverdue": "{{displayCount}} lá thar am", "withinDeadline": "Laistigh den spriocdháta", "criticalOverdue": "An-chriticiúil thar am", "highOverdue": "Ard thar am", @@ -1435,6 +1467,27 @@ "syncQueued": "Sioncrónú i scuaine", "syncStatusUnavailable": "Níl stádas sioncronaithe ar fáil" }, + "dashboardMetrics": { + "openFindings": "Fionnachtana oscailte", + "openFindingsDetail": "{{critical}} criticiúil, {{high}} ard", + "confirmedExploitable": "Inshaothraithe deimhnithe", + "confirmedExploitableDetail": "Priacal an tionscadail deimhnithe ag an anailís", + "needsReview": "Teastaíonn d'athbhreithniú", + "needsReviewDetail": "Cinneadh daonna ag teastáil", + "analysisIncomplete": "Anailís nach bhfuil críochnaithe", + "analysisIncompleteDetail": "Priacal an tionscadail anaithnid fós", + "slaCompliance": "Comhlíonadh SLA", + "notMeasured": "Ní tomhaiste", + "withinDeadlineDetail": "{{within}} as {{total}} laistigh den spriocdháta", + "noDeadlineData": "Níl spriocdháta SLA ag aon fhionnachtain fós", + "deadlinePassed": "Spriocdháta rite", + "deadlinePassedDetail": "{{critical}} criticiúil, {{high}} ard", + "dueThisWeek": "Dlite an tseachtain seo", + "dueThisWeekDetail": "{{exploitable}} inshaothraithe deimhnithe", + "noDeadline": "Gan spriocdháta", + "reviewSlaAssignment": "Athbhreithnigh sannadh SLA", + "allOpenFindingsTracked": "Rianaitear gach fionnachtain oscailte" + }, "dismiss": { "title": "Díbhe fionnachtain", "submit": "Díbhe fionnachtain", @@ -1500,13 +1553,16 @@ "analysisModeSubtitle": "anailís {{mode}}", "automation": "Uathoibriú", "automationAllOff": "Gach as", - "automationCount": "{{count}} de 3 cumasaithe", + "automationCount": "{{displayCount}} de 3 cumasaithe", "notifications": "Fógraí", - "notificationsCount": "{{count}} de 2 cumasaithe", + "notificationsCount": "{{displayCount}} de 2 cumasaithe", "slaPolicy": "Polasaí SLA", "disabledNoManage": "Tá Security Agent díchumasaithe. Ní féidir ach le húinéirí eagraíochta agus bainisteoirí billeála é a chasadh air.", "disabledNoRepo": "Roghnaigh stór amháin ar a laghad sula gcumasaítear Security Agent.", - "disabledPrompt": "Cuir Security Agent ar siúl chun foláirimh Dependabot a shioncrónú, stórtha a roghnú, agus uathoibriú a chumrú." + "disabledPrompt": "Cuir Security Agent ar siúl chun foláirimh Dependabot a shioncrónú, stórtha a roghnú, agus uathoibriú a chumrú.", + "repositoriesCount_two": "{{displayCount}} shór roghnaithe", + "repositoriesCount_few": "{{displayCount}} stór roghnaithe", + "repositoriesCount_many": "{{displayCount}} stór roghnaithe" }, "remediation": { "cancellationRequested": "Iarradh cealú", @@ -1524,7 +1580,7 @@ "openPullRequest": "Oscail iarratas tarraingthe{{number}}", "openDraftPullRequest": "Oscail dréacht-iarratas tarraingthe{{number}}", "progress": "Dul chun cinn", - "attemptHistory": "Stair iarrachtaí ({{count}})", + "attemptHistory": "Stair iarrachtaí ({{displayCount}})", "attemptNumber": "Iarracht #{{number}}", "startedBy": "Tionscnaithe ag", "model": "Samhail", @@ -1734,7 +1790,13 @@ "cent_other": "cent", "dollar_one": "dollar", "dollar": "dollar", - "dollar_other": "dollar" + "dollar_other": "dollar", + "cent_two": "cent", + "cent_few": "cent", + "cent_many": "cent", + "dollar_two": "dollar", + "dollar_few": "dollar", + "dollar_many": "dollar" }, "githubInstall": { "couldNotOpenTitle": "Níorbh fhéidir GitHub a oscailt", @@ -1830,7 +1892,10 @@ "partRenderer": { "updatedFileCount_one": "Nuashonraíodh {{displayCount}} comhad", "updatedFileCount": "Nuashonraíodh {{displayCount}} comhad", - "updatedFileCount_other": "Nuashonraíodh {{displayCount}} comhad" + "updatedFileCount_other": "Nuashonraíodh {{displayCount}} comhad", + "updatedFileCount_two": "Nuashonraíodh {{displayCount}} chomhad", + "updatedFileCount_few": "Nuashonraíodh {{displayCount}} chomhad", + "updatedFileCount_many": "Nuashonraíodh {{displayCount}} gcomhad" }, "toolPatch": { "operationAdded": "Curtha leis", @@ -1855,9 +1920,9 @@ "toolTask": "tasc", "readTodos": "Léigh tascanna", "updateTodos": "Nuashonraigh tascanna", - "linesBadge": "{{count}} líne", - "filesBadge": "{{count}} comhad", - "matchesBadge": "{{count}} meaitseáil" + "linesBadge": "{{displayCount}} líne", + "filesBadge": "{{displayCount}} comhad", + "matchesBadge": "{{displayCount}} meaitseáil" }, "readToolMarkdown": { "linesTruncated": "línte {{start}}–{{end}} (gearrtha)", @@ -1893,6 +1958,10 @@ "modeSelector": { "accessibility": "Mód: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Cód", "plan": "Plean", @@ -1999,7 +2068,7 @@ "preparationComplete": "Ullmhú críochnaithe", "preparationFailed": "Theip ar an ullmhú", "setupCommand": "Ordú socraithe {{index}}", - "setupCommandOf": "Ordú socraithe {{index}} de {{count}}" + "setupCommandOf": "Ordú socraithe {{index}} de {{displayCount}}" }, "permissionCard": { "title": "Cead ag teastáil", @@ -2036,7 +2105,7 @@ "submissionFailed": "Theip ar an aighneacht. Bain triail as arís.", "questionAnnouncement": "Teastaíonn d'ionchur ón ngníomhaire. Tá an cumadóir ar sos agus tú ag freagairt.", "permissionAnnouncement": "Teastaíonn cead ón ngníomhaire chun leanúint ar aghaidh. Tá an cumadóir ar sos agus tú ag cinneadh.", - "positionHint": "(1 as {{count}})", + "positionHint": "(1 as {{displayCount}})", "movedPastPrompt": "Tá an gníomhaire tar éis bogadh thar an leid seo. Dúnfaidh an cárta seo nuair a leanfaidh an seisiún ar aghaidh.", "waitingForAnswer": "Tá an gníomhaire ag fanacht ar do fhreagra. Agus an cheist seo ar oscailt, tá do theachtaireacht chuig an ngníomhaire ar sos.", "waitingForPermission": "Tá an gníomhaire ag fanacht ar chead. Agus an t-iarratas seo ar oscailt, tá do theachtaireacht chuig an ngníomhaire ar sos." @@ -2076,7 +2145,10 @@ "omitted_other": "Níorbh fhéidir {{displayCount}} mír níos luaithe ón seisiún seo a thaispeáint.", "couldNotLoad": "Níorbh fhéidir teachtaireachtaí níos luaithe a lódáil.", "unavailable": "Níl teachtaireachtaí níos luaithe ar fáil.", - "tooLarge": "Tá teachtaireachtaí níos luaithe rómhór le lódáil." + "tooLarge": "Tá teachtaireachtaí níos luaithe rómhór le lódáil.", + "omitted_two": "Níorbh fhéidir {{displayCount}} mhír níos luaithe ón seisiún seo a thaispeáint.", + "omitted_few": "Níorbh fhéidir {{displayCount}} mhír níos luaithe ón seisiún seo a thaispeáint.", + "omitted_many": "Níorbh fhéidir {{displayCount}} mír níos luaithe ón seisiún seo a thaispeáint." }, "markdownTable": { "viewTable": "Féach ar an tábla", @@ -2088,7 +2160,13 @@ "rowCount_one": "ró", "rowCount": "rónna", "rowCount_other": "rónna", - "opensFullScreen": "osclaíonn scáileán iomlán" + "opensFullScreen": "osclaíonn scáileán iomlán", + "columnCount_two": "cholún", + "columnCount_few": "cholún", + "columnCount_many": "gcolún", + "rowCount_two": "ró", + "rowCount_few": "ró", + "rowCount_many": "ró" }, "sessionFilter": { "title": "Scag seisiúin", @@ -2157,7 +2235,7 @@ "cameraAccessDisabled": "Rochtain Ceamara Díchumasaithe", "cameraAccessMessage": "Ceadaigh rochtain ceamara i Socruithe le grianghraf a ghlacadh.", "couldNotOpenPhotoPicker": "Níorbh fhéidir roghnóir na ngrianghraf a oscailt. Atosaigh Kilo agus bain triail as arís.", - "maxFilesAllowed": "Uasmhéid {{count}} comhad ceadaithe", + "maxFilesAllowed": "Uasmhéid {{displayCount}} comhad ceadaithe", "onlyAddingFiles": "Ag cur {{accepted}} de {{total}} comhad amháin leis (uas {{max}})" }, "composer": { @@ -2222,7 +2300,7 @@ "costPrefix": "costas {{cost}}", "costSuffix": ", costas {{cost}}", "tokensWindowUnavailable": "Comhthéacs {{used}} thocain, fuinneog gan fáil", - "tokensUsage": "Comhthéacs {{used}} de {{window}} thocain, {{percentage}}% in úsáid", + "tokensUsage": "Comhthéacs {{used}} de {{window}} thocain, {{percentage}} in úsáid", "title": "Úsáid comhthéacs", "used": "In úsáid", "remaining": "Fágtha", @@ -2231,7 +2309,7 @@ "usageReflectsLatest": "Léiríonn an úsáid an freagra cúntóra iomlánaithe is déanaí.", "tokenUsage": "Úsáid tocain", "cacheRate": "Ráta taisce", - "modelsCount": "Samhlacha ({{count}})", + "modelsCount": "Samhlacha ({{displayCount}})", "tokenTotalsNote": "Clúdaíonn iomláin tocain an seisiún seo amháin agus ní áirítear leo tocain foghníomhaire/seisiún linbh.", "subagents": "Foghníomhairí", "subagentsDescription": "Costas iarmharach ó sheisiúin linbh", @@ -2243,7 +2321,10 @@ "stepsCount_one": "{{steps}} chéim", "stepsCount": "{{steps}} céim", "stepsCount_other": "{{steps}} céim", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_two": "{{steps}} chéim", + "stepsCount_few": "{{steps}} chéim", + "stepsCount_many": "{{steps}} céim" }, "prBadge": { "open": "iarratas tarraingthe ar oscailt", @@ -2373,7 +2454,7 @@ "connectedCli": "Ar CLI ceangailte", "newSessionOn": "Seisiún nua ar {{name}}", "noMatchingSessions": "Níl aon seisiúin mheaitseála.", - "onlyFirstFilesAttached": "Ní bheidh ceangailte ach na chéad {{count}} chomhad.", + "onlyFirstFilesAttached": "Ní bheidh ceangailte ach na chéad {{displayCount}} chomhad.", "staleMessage": "Níl an roinnt seo ar fáil a thuilleadh.", "retryableMessage": "Níorbh fhéidir do sheisiúin a lódáil.", "emptyMessage": "Níl aon seisiúin fós — tosaigh ceann nua le hé seo a sheoladh.", @@ -2406,7 +2487,7 @@ "otherAccountCopy": "Baineann an Kilo Pass ar an Apple Account seo le cuntas Kilo éagsúil. Sínigh isteach sa chuntas Kilo sin le bainistiú a dhéanamh air.", "alreadySubscribed": "Tá sintiús Kilo Pass agat cheana féin.", "purchaseUnavailable": "Níl ceannach Kilo Pass ar fáil faoi láthair.", - "tierCredits": "${{amount}} i gcreidmheasanna", + "tierCredits": "{{amount}} i gcreidmheasanna", "perMonth": "{{price}}/mí", "verifyPurchaseFailed": "Níorbh fhéidir do cheannach a fhíorú. Seiceáil do cheangal agus bain triail as arís.", "productsCouldNotLoad": "Níorbh fhéidir táirgí Kilo Pass a lódáil ó App Store.", @@ -2417,7 +2498,7 @@ "manageFailed": "Theip ar bhainistíocht sintiúis App Store a oscailt.", "kiloPassSetup": "Socrú Kilo Pass", "subscriptionHeaderDescription": "Sintiús míosúil a chuireann creidmheasanna le do chothromas Kilo le haghaidh seisiúin chódaithe AI a rith in Kilo App — Cloud Agents, seisiúin chianoibre, agus comhráite KiloClaw.", - "tierDescription": "${{price}} i gcreidmheasanna íoctha curtha leis gach mí le haghaidh úsáid Kilo App.", + "tierDescription": "{{price}} i gcreidmheasanna íoctha curtha leis gach mí le haghaidh úsáid Kilo App.", "subscribe": "Liostáil", "subscribeDescription": "Creidmheasanna míosúla le dul chun cinn bónais", "manage": "Bainistigh", @@ -2425,7 +2506,7 @@ "statusPending": "Kilo Pass ar feitheamh", "statusCanceling": "Kilo Pass ag cealú", "statusPastDue": "Kilo Pass thar téarma", - "monthlyCredits": "${{credits}} i gcreidmheasanna míosúla", + "monthlyCredits": "{{credits}} i gcreidmheasanna míosúla", "ends": "Críochnaíonn {{date}}", "periodEnd": "deireadh tréimhse", "managedOnGooglePlay": "Bainistithe ar Google Play", @@ -2667,7 +2748,10 @@ "processingNeedsReview": "Teastaíonn athbhreithniú ar phróiseáil", "retry": "Athiarracht", "retryHint": "Déanann sé athiarracht ar stádas Kilo Pass a lódáil.", - "setupHint": "Osclaíonn socrú Kilo Pass ar an ngréasán." + "setupHint": "Osclaíonn socrú Kilo Pass ar an ngréasán.", + "paidSeat_two": "{{displayCount}} shuíochán íoctha", + "paidSeat_few": "{{displayCount}} shuíochán íoctha", + "paidSeat_many": "{{displayCount}} suíochán íoctha" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index 47e97a026d..596d8dea04 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -206,11 +206,11 @@ "loadingLines": "Cargando {{loaded}} de {{total}} liñas…", "expandContext": "Expandir contexto", "expandMoreContext": "Expandir máis contexto", - "expandLines": "Expandir {{count}} liñas ({{start}}–{{end}})", - "expandMoreLines": "Expandir {{count}} liñas máis ({{start}}–{{end}})", - "expandLinesOfContext": "Expandir {{count}} liñas de contexto", + "expandLines": "Expandir {{displayCount}} liñas ({{start}}–{{end}})", + "expandMoreLines": "Expandir {{displayCount}} liñas máis ({{start}}–{{end}})", + "expandLinesOfContext": "Expandir {{displayCount}} liñas de contexto", "expandAll": "Expandir todo", - "expandAllLines": "Expandir todas as {{count}} liñas", + "expandAllLines": "Expandir todas as {{displayCount}} liñas", "loadingMoreFiles": "Cargando máis arquivos…", "retryLoadingNextPage": "Volver cargar a seguinte páxina", "failedToLoadMoreFiles": "Non se puideron cargar máis arquivos — toca para volver tentalo", @@ -301,7 +301,7 @@ "closeReactions": "Pechar reaccións", "reactionsTitle": "Reaccións", "addReaction": "Engadir reacción", - "reactionPill": "{{emoji}} reacción, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reacción, {{displayCount}} {{countLabel}}", "reaction_one": "reacción", "reaction": "reaccións", "reaction_other": "reaccións", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Non hai fíos de revisión nin comentarios de conversa neste pull request.", "reviewFiles": "Revisar arquivos", "quotedDiffSnippet": "Fragmento de diff citado", - "moreLinesAbove": "… {{count}} liñas máis arriba", + "moreLinesAbove": "… {{displayCount}} liñas máis arriba", "termsAcceptRequired": "Debes aceptar os Termos do servizo para publicar.", "termsOutdatedCopy": "Os Termos do servizo cambiaron. Volve abrir esta pantalla para aceptar a última versión.", "termsCheckRetryCopy": "Non se puido comprobar os Termos do servizo. Comproba a túa conexión e proba de novo." @@ -395,11 +395,11 @@ "retryChecks": "Volver probar as comprobacións", "viewOnGitHub": "Ver o PR en GitHub", "noChecksReported": "Non se informou de comprobacións", - "passed": "{{count}} pasaron", - "failed": "{{count}} fallaron", - "pending": "{{count}} pendentes", - "skipped": "{{count}} omitidas", - "checksCount": "{{count}} comprobacións", + "passed": "{{displayCount}} pasaron", + "failed": "{{displayCount}} fallaron", + "pending": "{{displayCount}} pendentes", + "skipped": "{{displayCount}} omitidas", + "checksCount": "{{displayCount}} comprobacións", "checkDetails": "detalles da comprobación", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "comentario pendente", "pendingComment": "comentarios pendentes", "pendingComment_other": "comentarios pendentes", - "submitCountOfTotal": "Enviar {{freshCount}} de {{totalCount}} comentarios", + "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentarios", "submitReview": "Enviar revisión", - "partialPostedMessage": "Publicouse {{freshCount}} comentario(s). {{staleCount}} comentario(s) apuntan a un commit máis antigo e permaneceron na túa cola." + "partialPostedMessage": "Publicouse {{displayFreshCount}} comentario(s). {{displayStaleCount}} comentario(s) apuntan a un commit máis antigo e permaneceron na túa cola." }, "reconnectNotice": { "title": "A conexión de GitHub caducou", @@ -580,7 +580,8 @@ "agents": "Axentes", "profile": "Perfil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, lapela, {{position}} de {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Recentes", "common": "Comúns", "reactWith": "Reaccionar con {{reaction}}", - "accessibility": "{{emoji}} reacción, {{count}}" + "accessibility": "{{emoji}} reacción, {{displayCount}}" }, "composer": { "replyingTo": "Respondendo a", @@ -650,7 +651,7 @@ "imageUnavailable": "Imaxe non dispoñible", "openFailed": "Non se puido abrir o anexo. Comproba a túa conexión e proba de novo.", "attachFailed": "Non se puido anexar o arquivo", - "limit": "Podes anexar ata {{count}} arquivos.", + "limit": "Podes anexar ata {{displayCount}} arquivos.", "sizeRejection": "{{filename}} supera o límite de {{limit}} anexo.", "unreadable": "Non se puido ler {{filename}}.", "pastedImage": "a imaxe pegada", @@ -734,17 +735,18 @@ "finalCommitTermEndsOn": "O teu prazo final de Commit remata o {{date}}. Continúa como Standard por {{price}}, ou a hospedaxe remata.", "freeTrial": "Probas gratuítas", "hostingEnds": "A hospedaxe remata", + "lessThanOneDay": "Menos de 1 día", "renews": "Renóvase", "standardMonthToMonth": "Standard mes a mes", "standardStartsOn": "Standard comeza o {{date}} por {{price}}.", "yourStandardMonthlyPrice": "o teu prezo mensual de Standard", "perMonth": "/mes", "earlybirdAccessUntil": "Acceso de madrugador ata o {{date}}", - "earlybirdEnding": "O acceso de madrugador remata: quedan {{days}} días", + "earlybirdEnding": "O acceso de madrugador remata: quedan {{remaining}}", "paymentPastDue": "O pago está vencido. Actualiza o teu método de pago.", "subscriptionCancels": "A subscrición cancelase o {{date}}", - "trialDaysRemaining": "Probas: quedan {{days}} días", - "trialEndingSoon": "As probas rematan pronto: {{days}}" + "trialDaysRemaining": "Probas: quedan {{remaining}}", + "trialEndingSoon": "As probas rematan pronto: {{remaining}}" }, "changelog": { "title": "Novidades", @@ -996,7 +998,7 @@ "stalledTitle": "Algo quedou bloqueado", "stalledBody": "Non puidemos rematar a configuración de {{name}}. Téntao de novo, ou envía un correo a hi@kilo.ai se isto segue pasando.", "timeoutTitle": "Tardando máis do esperado", - "timeoutBody": "A configuración de {{name}} está tardando máis do normal (máis de {{minutes}} minutos).", + "timeoutBody": "A configuración de {{name}} está tardando máis do normal (máis de {{displayMinutes}} minutos).", "continueInBackground": "Continuar en segundo plano", "settingUp": "Configurando {{name}}", "finishingSetup": "Rematando a configuración", @@ -1287,7 +1289,7 @@ "mergeGate": "Porta de fusión", "repositories": "Repositorios", "allRepositories": "Todos os repositorios", - "nSelected": "{{count}} seleccionados", + "nSelected": "{{displayCount}} seleccionados", "reviewMemory": "Memoria de revisión", "proposedReviewMdGuidance": "Pautas propostas en REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analizado", "exploitabilityReasoning": "Razoamento da explotabilidade", "suggestedFix": "Corrección suxerida", - "whereFound": "Onde se atopou isto ({{count}})", + "whereFound": "Onde se atopou isto ({{displayCount}})", "fullReport": "Informe xerado completo", "unknown": "Descoñecido", "yes": "Si", "no": "Non" }, "dashboard": { - "findingsCount": "{{count}} achados", + "findingsCount": "{{displayCount}} achados", "notMeasured": "Non medido", "actFirst": "Actuar primeiro", "slaPosture": "Postura do SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Plan de acción do repositorio", "noOpenFindings": "Non hai achados abertos que requiran atención", "deadlineToday": "Prazо alcanzado hoxe", - "daysOverdue": "{{count}} días de atraso", + "daysOverdue": "{{displayCount}} días de atraso", "withinDeadline": "Dentro da praza", "criticalOverdue": "Crítico atrasado", "highOverdue": "Alto atrasado", @@ -1435,6 +1437,27 @@ "syncQueued": "Sincronización na cola", "syncStatusUnavailable": "Estado de sincronización non dispoñible" }, + "dashboardMetrics": { + "openFindings": "Achados abertos", + "openFindingsDetail": "{{critical}} críticos, {{high}} altos", + "confirmedExploitable": "Explotable confirmado", + "confirmedExploitableDetail": "Risco do proxecto confirmado pola análise", + "needsReview": "Require a túa revisión", + "needsReviewDetail": "Requírese decisión humana", + "analysisIncomplete": "Análise incompleta", + "analysisIncompleteDetail": "O risco do proxecto aínda é descoñecido", + "slaCompliance": "Cumprimento do SLA", + "notMeasured": "Non medido", + "withinDeadlineDetail": "{{within}} de {{total}} dentro da praza", + "noDeadlineData": "Aínda ningún achado ten praza de SLA", + "deadlinePassed": "Praza superada", + "deadlinePassedDetail": "{{critical}} críticos, {{high}} altos", + "dueThisWeek": "Vence esta semana", + "dueThisWeekDetail": "{{exploitable}} confirmados explotables", + "noDeadline": "Sen praza", + "reviewSlaAssignment": "Revisar asignación de SLA", + "allOpenFindingsTracked": "Todos os achados abertos rexistrados" + }, "dismiss": { "title": "Descartar achado", "submit": "Descartar achado", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Análise {{mode}}", "automation": "Automatización", "automationAllOff": "Todos desactivados", - "automationCount": "{{count}} de 3 activados", + "automationCount": "{{displayCount}} de 3 activados", "notifications": "Notificacións", - "notificationsCount": "{{count}} de 2 activados", + "notificationsCount": "{{displayCount}} de 2 activados", "slaPolicy": "Política de SLA", "disabledNoManage": "Security Agent está desactivado. Só os propietarios da organización e os xestores de facturación poden activalo.", "disabledNoRepo": "Selecciona polo menos un repositorio antes de activar Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Abrir solicitude de cambios{{number}}", "openDraftPullRequest": "Abrir borrador de solicitude de cambios{{number}}", "progress": "Progreso", - "attemptHistory": "Historial de intentos ({{count}})", + "attemptHistory": "Historial de intentos ({{displayCount}})", "attemptNumber": "Intento #{{number}}", "startedBy": "Iniciado por", "model": "Modelo", @@ -1855,9 +1878,9 @@ "toolTask": "tarefa", "readTodos": "Ler tarefas", "updateTodos": "Actualizar tarefas", - "linesBadge": "{{count}} liñas", - "filesBadge": "{{count}} ficheiros", - "matchesBadge": "{{count}} coincidencias" + "linesBadge": "{{displayCount}} liñas", + "filesBadge": "{{displayCount}} ficheiros", + "matchesBadge": "{{displayCount}} coincidencias" }, "readToolMarkdown": { "linesTruncated": "liñas {{start}}–{{end}} (truncado)", @@ -1893,6 +1916,10 @@ "modeSelector": { "accessibility": "Modo: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Código", "plan": "Plan", @@ -1999,7 +2026,7 @@ "preparationComplete": "Preparación completada", "preparationFailed": "Fallou a preparación", "setupCommand": "Comando de configuración {{index}}", - "setupCommandOf": "Comando de configuración {{index}} de {{count}}" + "setupCommandOf": "Comando de configuración {{index}} de {{displayCount}}" }, "permissionCard": { "title": "Requírese permiso", @@ -2036,7 +2063,7 @@ "submissionFailed": "Fallou o envío. Téntao de novo.", "questionAnnouncement": "O axente necesita a túa resposta. O compositor está en pausa mentres respondes.", "permissionAnnouncement": "O axente precisa permiso para continuar. O compositor está en pausa mentres decides.", - "positionHint": "(1 de {{count}})", + "positionHint": "(1 de {{displayCount}})", "movedPastPrompt": "O axente superou esta pregunta. Esta tarxeta pecharase cando continúe a sesión.", "waitingForAnswer": "O axente está agardando a túa resposta. Mentres esta pregunta estea aberta, a túa mensaxe para o axente está en pausa.", "waitingForPermission": "O axente está agardando permiso. Mentres esta solicitude estea aberta, a túa mensaxe para o axente está en pausa." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Acceso á cámara desactivado", "cameraAccessMessage": "Permite o acceso á cámara en Configuración para tirar unha foto.", "couldNotOpenPhotoPicker": "Non se puido abrir o selector de fotos. Reinicia Kilo e téntao de novo.", - "maxFilesAllowed": "Máximo de {{count}} ficheiros permitidos", + "maxFilesAllowed": "Máximo de {{displayCount}} ficheiros permitidos", "onlyAddingFiles": "Engadíndose só {{accepted}} de {{total}} ficheiros (máx. {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "custo {{cost}}", "costSuffix": ", custo {{cost}}", "tokensWindowUnavailable": "Contexto de {{used}} tokens, xanela non dispoñible", - "tokensUsage": "Contexto de {{used}} de {{window}} tokens, {{percentage}}% usado", + "tokensUsage": "Contexto de {{used}} de {{window}} tokens, {{percentage}} usado", "title": "Uso do contexto", "used": "Usado", "remaining": "Restante", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "O uso reflicte a última resposta completada do asistente.", "tokenUsage": "Uso de tokens", "cacheRate": "Taxa de caché", - "modelsCount": "Modelos ({{count}})", + "modelsCount": "Modelos ({{displayCount}})", "tokenTotalsNote": "Os totais de tokens cobren só esta sesión e exclúen os tokens de subaxentes/sesións fillas.", "subagents": "Subaxentes", "subagentsDescription": "Custo residual das sesións fillas", @@ -2373,7 +2400,7 @@ "connectedCli": "Nun CLI conectado", "newSessionOn": "Nova sesión en {{name}}", "noMatchingSessions": "Non hai sesións que coincidan.", - "onlyFirstFilesAttached": "Só se anexarán os primeiros {{count}} ficheiros.", + "onlyFirstFilesAttached": "Só se anexarán os primeiros {{displayCount}} ficheiros.", "staleMessage": "Este compartido xa non está dispoñible.", "retryableMessage": "Non se puideron cargar as túas sesións.", "emptyMessage": "Aínda non hai sesións — inicia unha nova para enviar isto.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "O Kilo Pass desta conta de Apple pertence a outra conta de Kilo. Inicia sesión nesa conta de Kilo para xestionalo.", "alreadySubscribed": "Xa tes unha subscrición de Kilo Pass.", "purchaseUnavailable": "A compra de Kilo Pass non está dispoñible neste momento.", - "tierCredits": "${{amount}} en créditos", + "tierCredits": "{{amount}} en créditos", "perMonth": "{{price}}/mes", "verifyPurchaseFailed": "Non se puido verificar a túa compra. Comproba a túa conexión e téntao de novo.", "productsCouldNotLoad": "Non se puideron cargar os produtos de Kilo Pass desde a App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Non se puido abrir a xestión de subscricións da App Store.", "kiloPassSetup": "Configuración de Kilo Pass", "subscriptionHeaderDescription": "Unha subscrición mensual que engade créditos ao teu saldo de Kilo para executar sesións de codificación con IA na app de Kilo — Cloud Agents, sesións remotas e chats de KiloClaw.", - "tierDescription": "${{price}} de créditos pagados engadidos mensualmente para o uso da app de Kilo.", + "tierDescription": "{{price}} de créditos pagados engadidos mensualmente para o uso da app de Kilo.", "subscribe": "Subscribirse", "subscribeDescription": "Créditos mensuais con progreso de bonificación", "manage": "Xestionar", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass pendente", "statusCanceling": "Kilo Pass cancelándose", "statusPastDue": "Kilo Pass con vencemento superado", - "monthlyCredits": "${{credits}} de créditos mensuais", + "monthlyCredits": "{{credits}} de créditos mensuais", "ends": "Remata {{date}}", "periodEnd": "fin do período", "managedOnGooglePlay": "Xestionado en Google Play", diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index 2092698cac..2acc4503dc 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} માંથી {{loaded}} લીટીઓ લોડ થાય છે…", "expandContext": "સંદર્ભ વિસ્તૃત કરો", "expandMoreContext": "વધુ સંદર્ભ વિસ્તૃત કરો", - "expandLines": "{{count}} લીટીઓ વિસ્તૃત કરો ({{start}}–{{end}})", - "expandMoreLines": "વધુ {{count}} લીટીઓ વિસ્તૃત કરો ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} લીટીઓ સંદર્ભ વિસ્તૃત કરો", + "expandLines": "{{displayCount}} લીટીઓ વિસ્તૃત કરો ({{start}}–{{end}})", + "expandMoreLines": "વધુ {{displayCount}} લીટીઓ વિસ્તૃત કરો ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} લીટીઓ સંદર્ભ વિસ્તૃત કરો", "expandAll": "બધું વિસ્તૃત કરો", - "expandAllLines": "બધી {{count}} લીટીઓ વિસ્તૃત કરો", + "expandAllLines": "બધી {{displayCount}} લીટીઓ વિસ્તૃત કરો", "loadingMoreFiles": "વધુ ફાઇલો લોડ થાય છે…", "retryLoadingNextPage": "આગલું પૃષ્ઠ લોડ કરવાનો ફરી પ્રયત્ન કરો", "failedToLoadMoreFiles": "વધુ ફાઇલો લોડ કરવામાં નિષ્ફળ — ફરી પ્રયત્ન કરવા ટેપ કરો", @@ -301,7 +301,7 @@ "closeReactions": "પ્રતિક્રિયાઓ બંધ કરો", "reactionsTitle": "પ્રતિક્રિયાઓ", "addReaction": "પ્રતિક્રિયા ઉમેરો", - "reactionPill": "{{emoji}} પ્રતિક્રિયા, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} પ્રતિક્રિયા, {{displayCount}} {{countLabel}}", "reaction_one": "પ્રતિક્રિયા", "reaction": "પ્રતિક્રિયાઓ", "reaction_other": "પ્રતિક્રિયાઓ", @@ -353,7 +353,7 @@ "noDiscussionDescription": "આ પુલ રિક્વેસ્ટ પર કોઈ સમીક્ષા થ્રેડો અથવા વાતચીત ટિપ્પણીઓ નથી.", "reviewFiles": "ફાઇલોની સમીક્ષા કરો", "quotedDiffSnippet": "ક્વોટેડ diff સ્નિપેટ", - "moreLinesAbove": "… {{count}} વધુ લીટીઓ ઉપર", + "moreLinesAbove": "… {{displayCount}} વધુ લીટીઓ ઉપર", "termsAcceptRequired": "પોસ્ટ કરવા તમારે સેવાની શરતો સ્વીકારવી જોઈએ.", "termsOutdatedCopy": "સેવાની શરતો બદલાઈ. નવીનતમ સંસ્કરણ સ્વીકારવા આ સ્ક્રીન ફરી ખોલો.", "termsCheckRetryCopy": "સેવાની શરતો તપાસી શકાઈ નહીં. તમારું કનેક્શન ચકાસો અને ફરી પ્રયત્ન કરો." @@ -395,11 +395,11 @@ "retryChecks": "તપાસો ફરી પ્રયત્ન કરો", "viewOnGitHub": "GitHub પર PR જુઓ", "noChecksReported": "કોઈ તપાસ નોંધાઈ નથી", - "passed": "{{count}} પસાર થઈ", - "failed": "{{count}} નિષ્ફળ", - "pending": "{{count}} બાકી", - "skipped": "{{count}} છોડી દીધી", - "checksCount": "{{count}} તપાસો", + "passed": "{{displayCount}} પસાર થઈ", + "failed": "{{displayCount}} નિષ્ફળ", + "pending": "{{displayCount}} બાકી", + "skipped": "{{displayCount}} છોડી દીધી", + "checksCount": "{{displayCount}} તપાસો", "checkDetails": "તપાસ વિગતો", "pullRequest": "પુલ રિક્વેસ્ટ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "બાકી ટિપ્પણી", "pendingComment": "બાકી ટિપ્પણીઓ", "pendingComment_other": "બાકી ટિપ્પણીઓ", - "submitCountOfTotal": "{{totalCount}} માંથી {{freshCount}} ટિપ્પણીઓ સબમિટ કરો", + "submitCountOfTotal": "{{displayTotalCount}} માંથી {{displayFreshCount}} ટિપ્પણીઓ સબમિટ કરો", "submitReview": "સમીક્ષા સબમિટ કરો", - "partialPostedMessage": "{{freshCount}} ટિપ્પણી(ઓ) પોસ્ટ થઈ. {{staleCount}} ટિપ્પણી(ઓ) જૂની કમિટ પર નિર્દેશ કરે છે અને તમારી કતારમાં રહી." + "partialPostedMessage": "{{displayFreshCount}} ટિપ્પણી(ઓ) પોસ્ટ થઈ. {{displayStaleCount}} ટિપ્પણી(ઓ) જૂની કમિટ પર નિર્દેશ કરે છે અને તમારી કતારમાં રહી." }, "reconnectNotice": { "title": "GitHub કનેક્શન સમાપ્ત થઈ ગયું", @@ -580,7 +580,8 @@ "agents": "એજન્ટ્સ", "profile": "પ્રોફાઇલ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ટેબ, {{position}} માંથી {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "તાજેતરના", "common": "સામાન્ય", "reactWith": "{{reaction}} સાથે પ્રતિક્રિયા આપો", - "accessibility": "{{emoji}} પ્રતિક્રિયા, {{count}}" + "accessibility": "{{emoji}} પ્રતિક્રિયા, {{displayCount}}" }, "composer": { "replyingTo": "જવાબ આપી રહ્યા છીએ", @@ -650,7 +651,7 @@ "imageUnavailable": "છબી ઉપલબ્ધ નથી", "openFailed": "જોડાણ ખોલી શકાયું નહીં. તમારું કનેક્શન ચકાસો અને ફરી પ્રયત્ન કરો.", "attachFailed": "ફાઇલ જોડવામાં નિષ્ફળ", - "limit": "તમે {{count}} જેટલી ફાઇલો જોડી શકો છો.", + "limit": "તમે {{displayCount}} જેટલી ફાઇલો જોડી શકો છો.", "sizeRejection": "{{filename}} {{limit}} જોડાણ મર્યાદા કરતાં વધી જાય છે.", "unreadable": "{{filename}} વાંચી શકાયું નહીં.", "pastedImage": "પેસ્ટ કરેલી છબી", @@ -734,17 +735,18 @@ "finalCommitTermEndsOn": "તમારી અંતિમ કમિટ મુદત {{date}} ના રોજ સમાપ્ત થાય છે. {{price}} પર સ્ટાન્ડર્ડ તરીકે ચાલુ રાખો, અન્યથા હોસ્ટિંગ સમાપ્ત થાય છે.", "freeTrial": "ફ્રી ટ્રાયલ", "hostingEnds": "હોસ્ટિંગ સમાપ્ત થાય છે", + "lessThanOneDay": "1 દિવસ કરતાં ઓછું", "renews": "નવીકરણ થાય છે", "standardMonthToMonth": "માસિક સ્ટાન્ડર્ડ", "standardStartsOn": "સ્ટાન્ડર્ડ {{date}} ના રોજ {{price}} પર શરૂ થાય છે.", "yourStandardMonthlyPrice": "તમારી સ્ટાન્ડર્ડ માસિક કિંમત", "perMonth": "/મહિનો", "earlybirdAccessUntil": "{{date}} સુધી અર્લીબર્ડ એક્સેસ", - "earlybirdEnding": "અર્લીબર્ડ સમાપ્તિ: {{days}} દિવસ બાકી", + "earlybirdEnding": "અર્લીબર્ડ સમાપ્તિ: {{remaining}}", "paymentPastDue": "ચુકવણી મોડી છે. કૃપા કરીને તમારી ચુકવણી પદ્ધતિ અપડેટ કરો.", "subscriptionCancels": "સબ્સ્ક્રિપ્શન {{date}} ના રોજ રદ થાય છે", - "trialDaysRemaining": "ટ્રાયલ: {{days}} દિવસ બાકી", - "trialEndingSoon": "ટ્રાયલ ટૂંક સમયમાં સમાપ્ત: {{days}}" + "trialDaysRemaining": "ટ્રાયલ: {{remaining}} બાકી", + "trialEndingSoon": "ટ્રાયલ ટૂંક સમયમાં સમાપ્ત: {{remaining}}" }, "changelog": { "title": "નવું શું છે", @@ -996,7 +998,7 @@ "stalledTitle": "કંઈક અટકી ગયું", "stalledBody": "અમે {{name}} નું સેટઅપ પૂરું કરી શક્યા નહીં. ફરી પ્રયાસ કરો, અથવા આવું વારંવાર થાય તો hi@kilo.ai પર ઈમેઇલ કરો.", "timeoutTitle": "અપેક્ષા કરતાં વધુ સમય લાગી રહ્યો છે", - "timeoutBody": "{{name}} નું સેટઅપ સામાન્ય કરતાં વધુ સમય લઈ રહ્યું છે ({{minutes}} મિનિટથી વધુ).", + "timeoutBody": "{{name}} નું સેટઅપ સામાન્ય કરતાં વધુ સમય લઈ રહ્યું છે ({{displayMinutes}} મિનિટથી વધુ).", "continueInBackground": "પૃષ્ઠભૂમિમાં ચાલુ રાખો", "settingUp": "{{name}} સેટ કરી રહ્યા છીએ", "finishingSetup": "સેટઅપ પૂરું કરી રહ્યા છીએ", @@ -1287,7 +1289,7 @@ "mergeGate": "મર્જ ગેટ", "repositories": "રિપોઝિટરીઝ", "allRepositories": "બધી રિપોઝિટરીઝ", - "nSelected": "{{count}} પસંદ કરેલ", + "nSelected": "{{displayCount}} પસંદ કરેલ", "reviewMemory": "સમીક્ષા મેમરી", "proposedReviewMdGuidance": "સૂચિત REVIEW.md માર્ગદર્શન" }, @@ -1391,14 +1393,14 @@ "analyzed": "વિશ્લેષિત", "exploitabilityReasoning": "શોષણક્ષમતા તર્ક", "suggestedFix": "સૂચવેલ સુધારો", - "whereFound": "આ ક્યાં મળ્યું ({{count}})", + "whereFound": "આ ક્યાં મળ્યું ({{displayCount}})", "fullReport": "સંપૂર્ણ જનરેટ થયેલ રિપોર્ટ", "unknown": "અજ્ઞાત", "yes": "હા", "no": "ના" }, "dashboard": { - "findingsCount": "{{count}} શોધો", + "findingsCount": "{{displayCount}} શોધો", "notMeasured": "માપેલ નથી", "actFirst": "પહેલા ક્રિયા કરો", "slaPosture": "SLA મુદ્રા", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "રિપોઝિટરી ક્રિયા યોજના", "noOpenFindings": "કોઈ ખુલ્લા શોધને ધ્યાનની જરૂર નથી", "deadlineToday": "આજે અંતિમ તારીખ પહોંચી", - "daysOverdue": "{{count}} દિવસ વિલંબિત", + "daysOverdue": "{{displayCount}} દિવસ વિલંબિત", "withinDeadline": "અંતિમ તારીખમાં", "criticalOverdue": "ગંભીર વિલંબિત", "highOverdue": "ઉચ્ચ વિલંબિત", @@ -1435,6 +1437,27 @@ "syncQueued": "સિંક કતારમાં છે", "syncStatusUnavailable": "સિંક સ્થિતિ ઉપલબ્ધ નથી" }, + "dashboardMetrics": { + "openFindings": "ખુલ્લા શોધો", + "openFindingsDetail": "{{critical}} નિર્ણાયક, {{high}} ઉચ્ચ", + "confirmedExploitable": "પુષ્ટિ થયેલ શોષણક્ષમ", + "confirmedExploitableDetail": "વિશ્લેષણ દ્વારા પ્રોજેક્ટ જોખમની પુષ્ટિ થઈ", + "needsReview": "તમારી સમીક્ષાની જરૂર છે", + "needsReviewDetail": "માનવીય નિર્ણય જરૂરી", + "analysisIncomplete": "વિશ્લેષણ પૂર્ણ નથી", + "analysisIncompleteDetail": "પ્રોજેક્ટ જોખમ હજુ અજ્ઞાત છે", + "slaCompliance": "SLA પાલન", + "notMeasured": "માપેલ નથી", + "withinDeadlineDetail": "{{total}} માંથી {{within}} અંતિમ તારીખમાં", + "noDeadlineData": "હજુ કોઈ શોધની SLA અંતિમ તારીખ નથી", + "deadlinePassed": "અંતિમ તારીખ પસાર થઈ", + "deadlinePassedDetail": "{{critical}} નિર્ણાયક, {{high}} ઉચ્ચ", + "dueThisWeek": "આ અઠવાડિયે બાકી", + "dueThisWeekDetail": "{{exploitable}} પુષ્ટિ થયેલ શોષણક્ષમ", + "noDeadline": "કોઈ અંતિમ તારીખ નથી", + "reviewSlaAssignment": "SLA સોંપણીની સમીક્ષા કરો", + "allOpenFindingsTracked": "બધા ખુલ્લા શોધો ટ્રેક કરેલા" + }, "dismiss": { "title": "શોધ ખારિજ કરો", "submit": "શોધ ખારિજ કરો", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} વિશ્લેષણ", "automation": "ઓટોમેશન", "automationAllOff": "બધા બંધ", - "automationCount": "{{count}} માંથી 3 સક્ષમ", + "automationCount": "{{displayCount}} માંથી 3 સક્ષમ", "notifications": "સૂચનાઓ", - "notificationsCount": "{{count}} માંથી 2 સક્ષમ", + "notificationsCount": "{{displayCount}} માંથી 2 સક્ષમ", "slaPolicy": "SLA નીતિ", "disabledNoManage": "સિક્યુરિટી એજન્ટ અક્ષમ છે. માત્ર સંસ્થાના માલિકો અને બિલિંગ મેનેજરો તેને ચાલુ કરી શકે છે.", "disabledNoRepo": "સિક્યુરિટી એજન્ટ સક્ષમ કરતા પહેલા ઓછામાં ઓછી એક રિપોઝિટરી પસંદ કરો.", @@ -1524,7 +1547,7 @@ "openPullRequest": "પુલ રિક્વેસ્ટ ખોલો{{number}}", "openDraftPullRequest": "ડ્રાફ્ટ પુલ રિક્વેસ્ટ ખોલો{{number}}", "progress": "પ્રગતિ", - "attemptHistory": "પ્રયાસ ઇતિહાસ ({{count}})", + "attemptHistory": "પ્રયાસ ઇતિહાસ ({{displayCount}})", "attemptNumber": "પ્રયાસ #{{number}}", "startedBy": "દ્વારા શરૂ કરેલ", "model": "મોડલ", @@ -1855,9 +1878,9 @@ "toolTask": "કાર્ય", "readTodos": "Todos વાંચો", "updateTodos": "Todos અપડેટ કરો", - "linesBadge": "{{count}} રેખાઓ", - "filesBadge": "{{count}} ફાઇલો", - "matchesBadge": "{{count}} મેચ" + "linesBadge": "{{displayCount}} રેખાઓ", + "filesBadge": "{{displayCount}} ફાઇલો", + "matchesBadge": "{{displayCount}} મેચ" }, "readToolMarkdown": { "linesTruncated": "રેખાઓ {{start}}–{{end}} (ટ્રંકેટેડ)", @@ -1893,6 +1916,10 @@ "modeSelector": { "accessibility": "મોડ: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "કોડ", "plan": "યોજના", @@ -1999,7 +2026,7 @@ "preparationComplete": "તૈયારી પૂર્ણ", "preparationFailed": "તૈયારી નિષ્ફળ", "setupCommand": "સેટઅપ કમાન્ડ {{index}}", - "setupCommandOf": "સેટઅપ કમાન્ડ {{index}} માંથી {{count}}" + "setupCommandOf": "સેટઅપ કમાન્ડ {{index}} માંથી {{displayCount}}" }, "permissionCard": { "title": "પરવાનગી જરૂરી", @@ -2036,7 +2063,7 @@ "submissionFailed": "સબમિશન નિષ્ફળ. કૃપા કરીને ફરી પ્રયાસ કરો.", "questionAnnouncement": "એજન્ટને તમારા ઇનપુટની જરૂર છે. જ્યાં સુધી તમે જવાબ ન આપો ત્યાં સુધી કમ્પોઝર થંભેલું છે.", "permissionAnnouncement": "એજન્ટને ચાલુ રાખવા માટે પરવાનગીની જરૂર છે. જ્યાં સુધી તમે નિર્ણય ન કરો ત્યાં સુધી કમ્પોઝર થંભેલું છે.", - "positionHint": "({{count}} માંથી 1)", + "positionHint": "({{displayCount}} માંથી 1)", "movedPastPrompt": "એજન્ટ આ પ્રોમ્પ્ટથી આગળ વધી ગયો છે. જ્યારે સત્ર ચાલુ થશે ત્યારે આ કાર્ડ બંધ થશે.", "waitingForAnswer": "એજન્ટ તમારા જવાબની રાહ જોઈ રહ્યો છે. આ પ્રશ્ન ખુલ્લો હોય ત્યાં સુધી, એજન્ટને તમારો સંદેશ થંભેલો છે.", "waitingForPermission": "એજન્ટ પરવાનગીની રાહ જોઈ રહ્યો છે. આ વિનંતી ખુલ્લી હોય ત્યાં સુધી, એજન્ટને તમારો સંદેશ થંભેલો છે." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "કૅમેરા ઍક્સેસ અક્ષમ છે", "cameraAccessMessage": "ફોટો લેવા માટે સેટિંગ્સમાં કૅમેરા ઍક્સેસની મંજૂરી આપો.", "couldNotOpenPhotoPicker": "ફોટો પિકર ખોલી શકાયું નહીં. Kilo ફરી શરૂ કરીને ફરી પ્રયાસ કરો.", - "maxFilesAllowed": "મહત્તમ {{count}} ફાઇલોની મંજૂરી છે", + "maxFilesAllowed": "મહત્તમ {{displayCount}} ફાઇલોની મંજૂરી છે", "onlyAddingFiles": "કુલ {{total}} માંથી ફક્ત {{accepted}} ફાઇલો ઉમેરવામાં આવી રહી છે (મહત્તમ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "કિંમત {{cost}}", "costSuffix": ", કિંમત {{cost}}", "tokensWindowUnavailable": "સંદર્ભ {{used}} ટોકન્સ, વિંડો અનુપલબ્ધ", - "tokensUsage": "સંદર્ભ {{window}} માંથી {{used}} ટોકન્સ, {{percentage}}% વપરાયેલ", + "tokensUsage": "સંદર્ભ {{window}} માંથી {{used}} ટોકન્સ, {{percentage}} વપરાયેલ", "title": "સંદર્ભ વપરાશ", "used": "વપરાયેલ", "remaining": "બાકી", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "વપરાશ સૌથી તાજેતરનો પૂર્ણ થયેલ સહાયક જવાબ દર્શાવે છે.", "tokenUsage": "ટોકન વપરાશ", "cacheRate": "કેશ દર", - "modelsCount": "મોડલ્સ ({{count}})", + "modelsCount": "મોડલ્સ ({{displayCount}})", "tokenTotalsNote": "ટોકન ટોટલ ફક્ત આ સત્રને આવરી લે છે અને સબએજન્ટ/ચાઈલ્ડ-સત્ર ટોકન્સ બાકાત રાખે છે.", "subagents": "સબએજન્ટ્સ", "subagentsDescription": "ચાઈલ્ડ સત્રોમાંથી બાકી કિંમત", @@ -2373,7 +2400,7 @@ "connectedCli": "કનેક્ટેડ CLI પર", "newSessionOn": "{{name}} પર નવું સત્ર", "noMatchingSessions": "કોઈ મેળ ખાતું સત્ર નથી.", - "onlyFirstFilesAttached": "ફક્ત પહેલી {{count}} ફાઇલો એટેચ થશે.", + "onlyFirstFilesAttached": "ફક્ત પહેલી {{displayCount}} ફાઇલો એટેચ થશે.", "staleMessage": "આ શેર હવે ઉપલબ્ધ નથી.", "retryableMessage": "તમારા સત્રો લોડ કરી શકાયા નહીં.", "emptyMessage": "હજી કોઈ સત્ર નથી — આ મોકલવા માટે નવું શરૂ કરો.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "આ Apple ખાતા પરનું Kilo Pass એ અલગ Kilo ખાતા સાથે સંબંધિત છે. તેને મેનેજ કરવા માટે તે Kilo ખાતામાં સાઇન ઇન કરો.", "alreadySubscribed": "તમારી પાસે પહેલેથી જ Kilo Pass સબસ્ક્રિપ્શન છે.", "purchaseUnavailable": "Kilo Pass ખરીદી હમણાં ઉપલબ્ધ નથી.", - "tierCredits": "${{amount}} ક્રેડિટમાં", + "tierCredits": "{{amount}} ક્રેડિટમાં", "perMonth": "{{price}}/મહિને", "verifyPurchaseFailed": "તમારી ખરીદી ચકાસી શકાઈ નહીં. તમારું કનેક્શન તપાસો અને ફરી પ્રયાસ કરો.", "productsCouldNotLoad": "Kilo Pass ઉત્પાદનો App Store માંથી લોડ કરી શકાયા નહીં.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store સબસ્ક્રિપ્શન મેનેજમેન્ટ ખોલવામાં નિષ્ફળ.", "kiloPassSetup": "Kilo Pass સેટઅપ", "subscriptionHeaderDescription": "એક માસિક સબસ્ક્રિપ્શન જે Kilo એપમાં AI કોડિંગ સત્રો — ક્લાઉડ એજન્ટ્સ, રિમોટ સત્રો અને KiloClaw ચેટ્સ ચલાવવા માટે તમારી Kilo બેલેન્સમાં ક્રેડિટ ઉમેરે છે.", - "tierDescription": "Kilo એપ વપરાશ માટે ${{price}} ચૂકવેલી ક્રેડિટ માસિક ઉમેરાય છે.", + "tierDescription": "Kilo એપ વપરાશ માટે {{price}} ચૂકવેલી ક્રેડિટ માસિક ઉમેરાય છે.", "subscribe": "સબસ્ક્રાઇબ કરો", "subscribeDescription": "બોનસ પ્રોગ્રેસ સાથે માસિક ક્રેડિટ", "manage": "મેનેજ કરો", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass બાકી", "statusCanceling": "Kilo Pass રદ થઈ રહ્યું છે", "statusPastDue": "Kilo Pass મુદત ઉતરી ગયું", - "monthlyCredits": "${{credits}} માસિક ક્રેડિટ", + "monthlyCredits": "{{credits}} માસિક ક્રેડિટ", "ends": "{{date}} ને સમાપ્ત", "periodEnd": "સમયગાળાનો અંત", "managedOnGooglePlay": "Google Play પર મેનેજ થાય છે", diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index b9d390da26..13ddb5663e 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -206,11 +206,11 @@ "loadingLines": "Ana ɗaukar {{loaded}} daga {{total}} layuka…", "expandContext": "Fadada mahallin", "expandMoreContext": "Fadada ƙarin mahallin", - "expandLines": "Fadada {{count}} layuka ({{start}}–{{end}})", - "expandMoreLines": "Fadada ƙarin {{count}} layuka ({{start}}–{{end}})", - "expandLinesOfContext": "Fadada {{count}} layukan mahallin", + "expandLines": "Fadada {{displayCount}} layuka ({{start}}–{{end}})", + "expandMoreLines": "Fadada ƙarin {{displayCount}} layuka ({{start}}–{{end}})", + "expandLinesOfContext": "Fadada {{displayCount}} layukan mahallin", "expandAll": "Fadada duka", - "expandAllLines": "Fadada duk {{count}} layuka", + "expandAllLines": "Fadada duk {{displayCount}} layuka", "loadingMoreFiles": "Ana ɗaukar ƙarin fayiloli…", "retryLoadingNextPage": "Sake gwadawa ɗaukar shafi na gaba", "failedToLoadMoreFiles": "An kasa ɗaukar ƙarin fayiloli — danna don sake gwadawa", @@ -301,7 +301,7 @@ "closeReactions": "Rufe halayen", "reactionsTitle": "Halaye", "addReaction": "Ƙara hali", - "reactionPill": "{{emoji}} hali, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} hali, {{displayCount}} {{countLabel}}", "reaction_one": "hali", "reaction": "halaye", "reaction_other": "halaye", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Babu zaren bita ko tsokacin tattaunawa a kan wannan buƙatar jan.", "reviewFiles": "Bita fayiloli", "quotedDiffSnippet": "Faɗin bambanci da aka ambato", - "moreLinesAbove": "… {{count}} ƙarin layuka a sama", + "moreLinesAbove": "… {{displayCount}} ƙarin layuka a sama", "termsAcceptRequired": "Dole ka karɓi Sharuɗɗan Amfani don rubutu.", "termsOutdatedCopy": "Sharuɗɗan Amfani sun canza. Bude wannan allo don karɓar sabuwar sigar.", "termsCheckRetryCopy": "Ba a iya duba Sharuɗɗan Amfani ba. Duba haɗinka kuma sake gwadawa." @@ -395,11 +395,11 @@ "retryChecks": "Sake gwadawa duba", "viewOnGitHub": "Duba PR a GitHub", "noChecksReported": "Babu duba da aka ruwaito", - "passed": "{{count}} sun wuce", - "failed": "{{count}} sun kasa", - "pending": "{{count}} suna jira", - "skipped": "{{count}} an tsallake", - "checksCount": "{{count}} duba", + "passed": "{{displayCount}} sun wuce", + "failed": "{{displayCount}} sun kasa", + "pending": "{{displayCount}} suna jira", + "skipped": "{{displayCount}} an tsallake", + "checksCount": "{{displayCount}} duba", "checkDetails": "bayanan duba", "pullRequest": "buƙatar jan" }, @@ -459,9 +459,9 @@ "pendingComment_one": "tsokacin da ke jira", "pendingComment": "tsokacin da ke jira", "pendingComment_other": "tsokacin da ke jira", - "submitCountOfTotal": "Ƙaddamar da {{freshCount}} daga {{totalCount}} tsokaci", + "submitCountOfTotal": "Ƙaddamar da {{displayFreshCount}} daga {{displayTotalCount}} tsokaci", "submitReview": "Ƙaddamar da bita", - "partialPostedMessage": "An buga {{freshCount}} tsokaci. {{staleCount}} tsokaci suna nuna tsohon commit kuma sun kasance a jerinka." + "partialPostedMessage": "An buga {{displayFreshCount}} tsokaci. {{displayStaleCount}} tsokaci suna nuna tsohon commit kuma sun kasance a jerinka." }, "reconnectNotice": { "title": "Haɗin GitHub ya ƙare", @@ -580,7 +580,8 @@ "agents": "Wakilai", "profile": "Bayanan", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, shafi, {{position}} na {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Kwanan nan", "common": "Gama gari", "reactWith": "Yi hali da {{reaction}}", - "accessibility": "{{emoji}} hali, {{count}}" + "accessibility": "{{emoji}} hali, {{displayCount}}" }, "composer": { "replyingTo": "Ana amsawa ga", @@ -650,7 +651,7 @@ "imageUnavailable": "Hoton ba ya samuwa", "openFailed": "Ba a iya buɗe haɗin ba. Duba haɗinka kuma sake gwadawa.", "attachFailed": "An kasa haɗa fayil", - "limit": "Za ka iya haɗa har {{count}} fayiloli.", + "limit": "Za ka iya haɗa har {{displayCount}} fayiloli.", "sizeRejection": "{{filename}} ya wuce iyakar haɗa {{limit}}.", "unreadable": "Ba a iya karanta {{filename}} ba.", "pastedImage": "hoton da aka manna", @@ -734,17 +735,18 @@ "finalCommitTermEndsOn": "Wa'adin Commit na ƙarshe na ka zai ƙare a {{date}}. Ci gaba a matsayin Standard a {{price}}, ko kuma masauki ya ƙare.", "freeTrial": "Gwaji Kyauta", "hostingEnds": "Masauki yana ƙarewa", + "lessThanOneDay": "Kasa da kwana 1", "renews": "Yana sabuntawa", "standardMonthToMonth": "Standard duk wata", "standardStartsOn": "Standard zai fara a {{date}} a {{price}}.", "yourStandardMonthlyPrice": "farashin Standard na ka na wata-wata", "perMonth": "/wata", "earlybirdAccessUntil": "Shiga Earlybird har zuwa {{date}}", - "earlybirdEnding": "Earlybird yana ƙarewa: {{days}} kwanaki suka rage", + "earlybirdEnding": "Earlybird yana ƙarewa: {{remaining}}", "paymentPastDue": "Biyan kuɗi ya wuce lokaci. Da fatan sabunta hanyar biyan ka.", "subscriptionCancels": "Biyan kuɗi zai soke {{date}}", - "trialDaysRemaining": "Gwaji: {{days}} kwanaki suka rage", - "trialEndingSoon": "Gwaji zai ƙare ba da jimawa: {{days}}" + "trialDaysRemaining": "Gwaji: {{remaining}} suka rage", + "trialEndingSoon": "Gwaji zai ƙare ba da jimawa: {{remaining}}" }, "changelog": { "title": "Me Sabo", @@ -996,7 +998,7 @@ "stalledTitle": "Wani abu ya tsaya", "stalledBody": "Ba mu iya gama saitin {{name}} ba. Sake gwadawa, ko aika imel zuwa hi@kilo.ai idan wannan ya ci gaba da faruwa.", "timeoutTitle": "Yana ɗaukar lokaci fiye da yadda ake tsammani", - "timeoutBody": "Saitin {{name}} yana ɗaukar lokaci fiye da yadda aka saba (sama da mintuna {{minutes}}).", + "timeoutBody": "Saitin {{name}} yana ɗaukar lokaci fiye da yadda aka saba (sama da mintuna {{displayMinutes}}).", "continueInBackground": "Ci gaba a baya", "settingUp": "Ana saita {{name}}", "finishingSetup": "Ana gama saitin", @@ -1287,7 +1289,7 @@ "mergeGate": "Ƙofar haɗawa", "repositories": "Ma'ajiyun", "allRepositories": "Duk ma'ajiyun", - "nSelected": "{{count}} da aka zaɓa", + "nSelected": "{{displayCount}} da aka zaɓa", "reviewMemory": "Ƙwaƙwalwar bita", "proposedReviewMdGuidance": "Shawarar jagorar REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "An yi nazari", "exploitabilityReasoning": "Dalili na yiwuwar amfani", "suggestedFix": "Gyara da aka ba da shawara", - "whereFound": "Inda aka samu wannan ({{count}})", + "whereFound": "Inda aka samu wannan ({{displayCount}})", "fullReport": "Cikakken rahoton da aka samar", "unknown": "Ba a sani ba", "yes": "Ee", "no": "A'a" }, "dashboard": { - "findingsCount": "{{count}} sakamako", + "findingsCount": "{{displayCount}} sakamako", "notMeasured": "Ba a auna ba", "actFirst": "Yi aiki da farko", "slaPosture": "Matsayin SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Shirin aiki na ma'ajiya", "noOpenFindings": "Babu sakamako da ke buƙatar kulawa", "deadlineToday": "Ƙarshen lokaci ya kai yau", - "daysOverdue": "{{count}} kwanaki a wuce lokaci", + "daysOverdue": "{{displayCount}} kwanaki a wuce lokaci", "withinDeadline": "Cikin ƙarshen lokaci", "criticalOverdue": "Matsananci a wuce lokaci", "highOverdue": "Babba a wuce lokaci", @@ -1435,6 +1437,27 @@ "syncQueued": "An shigar da daidaitawa", "syncStatusUnavailable": "Ba a samun matsayin daidaitawa" }, + "dashboardMetrics": { + "openFindings": "Sakamako masu buɗewa", + "openFindingsDetail": "{{critical}} masu tsanani, {{high}} babba", + "confirmedExploitable": "An tabbatar ana iya amfani da shi", + "confirmedExploitableDetail": "Haɗarin aikin da nazari ya tabbatar", + "needsReview": "Yana buƙatar dubanka", + "needsReviewDetail": "Ana buƙatar yanke shawara na ɗan adam", + "analysisIncomplete": "Nazari bai cika ba", + "analysisIncompleteDetail": "Haɗarin aikin har yanzu ba a sani ba", + "slaCompliance": "Bin SLA", + "notMeasured": "Ba a auna ba", + "withinDeadlineDetail": "{{within}} na {{total}} a cikin ƙarshen lokaci", + "noDeadlineData": "Har yanzu babu sakamako mai ƙarshen lokacin SLA", + "deadlinePassed": "Ƙarshen lokaci ya wuce", + "deadlinePassedDetail": "{{critical}} masu tsanani, {{high}} babba", + "dueThisWeek": "Ana sa ran wannan makon", + "dueThisWeekDetail": "{{exploitable}} an tabbatar ana iya amfani da su", + "noDeadline": "Babu ƙarshen lokaci", + "reviewSlaAssignment": "Duba aikin SLA", + "allOpenFindingsTracked": "Ana bin duk sakamako masu buɗewa" + }, "dismiss": { "title": "Watsi da sakamako", "submit": "Watsi da sakamako", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Nazarin {{mode}}", "automation": "Aiki ta atomatik", "automationAllOff": "Duk a kashe", - "automationCount": "{{count}} daga cikin 3 an kunna", + "automationCount": "{{displayCount}} daga cikin 3 an kunna", "notifications": "Sanarwa", - "notificationsCount": "{{count}} daga cikin 2 an kunna", + "notificationsCount": "{{displayCount}} daga cikin 2 an kunna", "slaPolicy": "Manufar SLA", "disabledNoManage": "An kashe Security Agent. Masu mallakar kungiya da masu kula da kuɗi kawai za su iya kunnawa.", "disabledNoRepo": "Zaɓi aƙalla ma'ajiya ɗaya kafin kunna Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Buɗe neman ciro{{number}}", "openDraftPullRequest": "Buɗe daftarin neman ciro{{number}}", "progress": "Ci gaba", - "attemptHistory": "Tarihin ƙoƙari ({{count}})", + "attemptHistory": "Tarihin ƙoƙari ({{displayCount}})", "attemptNumber": "Ƙoƙari #{{number}}", "startedBy": "Wanda ya fara", "model": "Samfuri", @@ -1855,9 +1878,9 @@ "toolTask": "aiki", "readTodos": "Karanta ayyukan", "updateTodos": "Sabunta ayyukan", - "linesBadge": "{{count}} layukan", - "filesBadge": "{{count}} fayiloli", - "matchesBadge": "{{count}} abubuwan da suka dace" + "linesBadge": "{{displayCount}} layukan", + "filesBadge": "{{displayCount}} fayiloli", + "matchesBadge": "{{displayCount}} abubuwan da suka dace" }, "readToolMarkdown": { "linesTruncated": "layukan {{start}}–{{end}} (an yanke)", @@ -1893,6 +1916,10 @@ "modeSelector": { "accessibility": "Yanayi: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Lamba", "plan": "Shiri", @@ -1999,7 +2026,7 @@ "preparationComplete": "Shiri ya cika", "preparationFailed": "Shiri ya gaza", "setupCommand": "Umurnin saiti {{index}}", - "setupCommandOf": "Umurnin saiti {{index}} na {{count}}" + "setupCommandOf": "Umurnin saiti {{index}} na {{displayCount}}" }, "permissionCard": { "title": "Ana buƙatar izini", @@ -2036,7 +2063,7 @@ "submissionFailed": "Aikar ya kasa. Da fatan za a sake gwadawa.", "questionAnnouncement": "Wakili yana buƙatar bayaninka. An dakatar da rubutu yayin da kake amsawa.", "permissionAnnouncement": "Wakili yana buƙatar izini don ci gaba. An dakatar da rubutu yayin da kake yanke shawara.", - "positionHint": "(1 na {{count}})", + "positionHint": "(1 na {{displayCount}})", "movedPastPrompt": "Wakilin ya wuce wannan tambaya. Wannan katin zai rufe idan zaman ya ci gaba.", "waitingForAnswer": "Wakili yana jiran amsarka. Yayin da wannan tambaya ke a buɗe, sakonka zuwa wakili yana dakatarwa.", "waitingForPermission": "Wakili yana jiran izini. Yayin da wannan buƙata ke a buɗe, sakonka zuwa wakili yana dakatarwa." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "An kashe damar Kyamara", "cameraAccessMessage": "Ba da izinin kyamara a cikin Settings don ɗaukar hoto.", "couldNotOpenPhotoPicker": "Ba a iya buɗe zaɓin hoto ba. Sake kunna Kilo sannan ka sake gwadawa.", - "maxFilesAllowed": "Matsakaicin fayiloli {{count}} da aka yarda", + "maxFilesAllowed": "Matsakaicin fayiloli {{displayCount}} da aka yarda", "onlyAddingFiles": "Ana ƙara {{accepted}} kawai daga {{total}} fayiloli (max {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "farashi {{cost}}", "costSuffix": ", farashi {{cost}}", "tokensWindowUnavailable": "Mahallin {{used}} tokens, taga ba ya nan", - "tokensUsage": "Mahallin {{used}} daga {{window}} tokens, an yi amfani da {{percentage}}%", + "tokensUsage": "Mahallin {{used}} daga {{window}} tokens, an yi amfani da {{percentage}}", "title": "Amfanin mahallin", "used": "An yi amfani", "remaining": "Ragowa", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Amfani yana nuna sabuwar amsar mataimakin da ta gama.", "tokenUsage": "Amfanin token", "cacheRate": "Adadin cache", - "modelsCount": "Models ({{count}})", + "modelsCount": "Models ({{displayCount}})", "tokenTotalsNote": "Jimlar token ta rufe wannan zaman kawai kuma ta ware tokens na subagent/zaman yaro.", "subagents": "Subagents", "subagentsDescription": "Farashin ragowar daga zaman yara", @@ -2373,7 +2400,7 @@ "connectedCli": "A kan CLI da aka haɗa", "newSessionOn": "Sabon zama akan {{name}}", "noMatchingSessions": "Babu zaman da suka dace.", - "onlyFirstFilesAttached": "Fayilolin farko {{count}} kawai za a haɗa.", + "onlyFirstFilesAttached": "Fayilolin farko {{displayCount}} kawai za a haɗa.", "staleMessage": "Wannan rabon ba ya nan.", "retryableMessage": "An kasa ɗora zaman ka.", "emptyMessage": "Babu zaman tukuna — fara sabon don aika wannan.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass akan wannan Apple Account na wani asusun Kilo ne daban. Shiga wannan asusun Kilo don sarrafa shi.", "alreadySubscribed": "Kana da biyan kuɗin Kilo Pass tuni.", "purchaseUnavailable": "Sayayyar Kilo Pass ba ta nan a yanzu.", - "tierCredits": "${{amount}} a cikin credits", + "tierCredits": "{{amount}} a cikin credits", "perMonth": "{{price}}/wata", "verifyPurchaseFailed": "Ba a iya tabbatar da sayayyarka ba. Duba haɗinka sannan ka sake gwadawa.", "productsCouldNotLoad": "Ba a iya ɗora samfuran Kilo Pass daga App Store ba.", @@ -2417,7 +2444,7 @@ "manageFailed": "An kasa buɗe sarrafa biyan kuɗi na App Store.", "kiloPassSetup": "Saitin Kilo Pass", "subscriptionHeaderDescription": "Biyan kuɗi na wata-wata wanda ke ƙara credits zuwa ma'aunin Kilo naka don gudanar da zaman shirye-shiryen AI a cikin Kilo App — Cloud Agents, zaman nesa, da tattaunawar KiloClaw.", - "tierDescription": "${{price}} credits da aka biya ana ƙara su kowane wata don amfani da Kilo App.", + "tierDescription": "{{price}} credits da aka biya ana ƙara su kowane wata don amfani da Kilo App.", "subscribe": "Biyan kuɗi", "subscribeDescription": "Credits na wata-wata tare da ci gaban bonus", "manage": "Sarrafa", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass yana jiran", "statusCanceling": "Kilo Pass yana sokewa", "statusPastDue": "Kilo Pass ya ƙare kwanan", - "monthlyCredits": "${{credits}} credits na wata-wata", + "monthlyCredits": "{{credits}} credits na wata-wata", "ends": "Yana ƙare {{date}}", "periodEnd": "ƙarshen lokaci", "managedOnGooglePlay": "Ana sarrafa akan Google Play", diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index 3a1689a7d0..760fe4bcac 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -201,7 +201,8 @@ "agents": "סוכנים", "profile": "פרופיל", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, טאב, {{position}} מתוך {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "אחרונות", "common": "נפוצות", "reactWith": "הגב עם {{reaction}}", - "accessibility": "{{emoji}} תגובה, {{count}}" + "accessibility": "{{emoji}} תגובה, {{displayCount}}" }, "composer": { "replyingTo": "משיב ל", @@ -271,7 +272,7 @@ "imageUnavailable": "התמונה אינה זמינה", "openFailed": "לא ניתן היה לפתוח את הקובץ המצורף. בדוק את החיבור ונסה שוב.", "attachFailed": "צירוף הקובץ נכשל", - "limit": "ניתן לצרף עד {{count}} קבצים.", + "limit": "ניתן לצרף עד {{displayCount}} קבצים.", "sizeRejection": "{{filename}} חורג ממגבלת הצירוף של {{limit}}.", "unreadable": "לא ניתן היה לקרוא את {{filename}}.", "pastedImage": "התמונה שהודבקה", @@ -321,7 +322,8 @@ "someone": "מישהו", "typing_one": "{{name}} מקליד...", "typing": "{{names}} מקלידים...", - "typing_other": "{{names}} מקלידים..." + "typing_other": "{{names}} מקלידים...", + "typing_two": "{{names}} מקלידים..." }, "botStatus": { "online": "מקוון", @@ -355,17 +357,18 @@ "finalCommitTermEndsOn": "תקופת ה-Commit האחרונה שלך מסתיימת ב-{{date}}. המשך כ-Standard תמורת {{price}}, או שהאירוח יסתיים.", "freeTrial": "ניסיון חינם", "hostingEnds": "האירוח מסתיים", + "lessThanOneDay": "פחות מיום אחד", "renews": "מתחדש", "standardMonthToMonth": "Standard חודשי", "standardStartsOn": "Standard מתחיל ב-{{date}} תמורת {{price}}.", "yourStandardMonthlyPrice": "המחיר החודשי שלך ל-Standard", "perMonth": "/חודש", "earlybirdAccessUntil": "גישת Earlybird עד {{date}}", - "earlybirdEnding": "Earlybird מסתיים: נותרו {{days}} ימים", + "earlybirdEnding": "Earlybird מסתיים: {{remaining}}", "paymentPastDue": "התשלום באיחור. עדכן את אמצעי התשלום שלך.", "subscriptionCancels": "המינוי מתבטל ב-{{date}}", - "trialDaysRemaining": "ניסיון: נותרו {{days}} ימים", - "trialEndingSoon": "הניסיון מסתיים בקרוב: {{days}}" + "trialDaysRemaining": "ניסיון: נותרו {{remaining}}", + "trialEndingSoon": "הניסיון מסתיים בקרוב: {{remaining}}" }, "changelog": { "title": "מה חדש", @@ -567,7 +570,8 @@ "openSettings": "פתח הגדרות עבור {{name}}", "openUnread": "פתח את {{name}}, {{displayCount}} הודעות שלא נקראו", "openUnread_other": "פתח את {{name}}, {{displayCount}} הודעות שלא נקראו", - "openUnread_one": "פתח את {{name}}, {{displayCount}} הודעה שלא נקראה" + "openUnread_one": "פתח את {{name}}, {{displayCount}} הודעה שלא נקראה", + "openUnread_two": "פתח את {{name}}, {{displayCount}} הודעות שלא נקראו" }, "list": { "createInstance": "צור מופע", @@ -665,7 +669,7 @@ "startingSandbox": "מתחיל את ארגז החול", "stoppedBody": "המופע של {{name}} נעצר באופן בלתי צפוי במהלך ההגדרה.", "stoppedTitle": "ההגדרה נעצרה", - "timeoutBody": "ההגדרה של {{name}} אורכת יותר מהרגיל (מעל {{minutes}} דקות).", + "timeoutBody": "ההגדרה של {{name}} אורכת יותר מהרגיל (מעל {{displayMinutes}} דקות).", "timeoutTitle": "אורך יותר מהצפוי" }, "unavailableDescription": "נדרש מינוי KiloClaw פעיל כדי להקצות מופע. מופעים ומינויים קיימים ממשיכים כרגיל.", @@ -912,7 +916,7 @@ "focusAreas": "תחומי מיקוד", "mergeGate": "שער מיזוג", "model": "דגם", - "nSelected": "{{count}} נבחרו", + "nSelected": "{{displayCount}} נבחרו", "proposedReviewMdGuidance": "הנחיות REVIEW.md מוצעות", "repositories": "מאגרים", "reviewMemory": "זיכרון סקירה", @@ -981,7 +985,7 @@ "triageReasoning": "נימוק המיון", "unknown": "לא ידוע", "watchInCloudAgent": "צפה בסוכן הענן", - "whereFound": "היכן זה נמצא ({{count}})", + "whereFound": "היכן זה נמצא ({{displayCount}})", "yes": "כן" }, "analysisSettings": { @@ -1048,7 +1052,8 @@ "severityCriticalOnly": "קריטי בלבד", "severityHighAndAbove": "גבוהה ומעלה", "severityMediumAndAbove": "בינונית ומעלה", - "title": "אוטומציה" + "title": "אוטומציה", + "queued_two": "{{displayCount}} ממצאים קיימים הועמדו בתור לניתוח." }, "commandRetry": { "discard": "מחק" @@ -1061,11 +1066,11 @@ "confirmedExploitable": "אושר כניתן לניצול", "couldNotLoad": "לא ניתן היה לטעון את נתוני לוח הבקרה", "criticalOverdue": "קריטי באיחור", - "daysOverdue": "{{count}} ימים באיחור", + "daysOverdue": "{{displayCount}} ימים באיחור", "deadlineToday": "המועד האחרון מגיע היום", "filterByRepository": "סנן לפי מאגר", "findings": "ממצאים", - "findingsCount": "{{count}} ממצאים", + "findingsCount": "{{displayCount}} ממצאים", "highOverdue": "גבוה באיחור", "lastSynced": "סונכרן לאחרונה {{time}}", "manageRepositories": "נהל מאגרים", @@ -1091,6 +1096,27 @@ "syncStatusUnavailable": "מצב הסינכרון אינו זמין", "withinDeadline": "בתוך המועד" }, + "dashboardMetrics": { + "openFindings": "ממצאים פתוחים", + "openFindingsDetail": "{{critical}} קריטיים, {{high}} גבוהים", + "confirmedExploitable": "אושר כניתן לניצול", + "confirmedExploitableDetail": "סיכון הפרויקט אושר על ידי הניתוח", + "needsReview": "דורש את סקירתך", + "needsReviewDetail": "נדרשת החלטה אנושית", + "analysisIncomplete": "הניתוח לא הושלם", + "analysisIncompleteDetail": "סיכון הפרויקט עדיין לא ידוע", + "slaCompliance": "עמידה ב-SLA", + "notMeasured": "לא נמדד", + "withinDeadlineDetail": "{{within}} מתוך {{total}} במועד", + "noDeadlineData": "עדיין אין לממצאים מועד אחרון ל-SLA", + "deadlinePassed": "המועד האחרון חלף", + "deadlinePassedDetail": "{{critical}} קריטיים, {{high}} גבוהים", + "dueThisWeek": "אמור להתבצע השבוע", + "dueThisWeekDetail": "{{exploitable}} אושרו כניתנים לניצול", + "noDeadline": "אין מועד אחרון", + "reviewSlaAssignment": "סקירת שיבוץ SLA", + "allOpenFindingsTracked": "כל הממצאים הפתוחים במעקב" + }, "dismiss": { "alreadyResolvedDescription": "ממצא זה כבר נפתר ואינו מקבל עוד דחייה.", "cannotDismissDescription": "רק בעלי הארגון ומנהלי החיוב יכולים לדחות ממצאים.", @@ -1188,7 +1214,7 @@ "title": "התראות" }, "remediation": { - "attemptHistory": "היסטוריית ניסיונות ({{count}})", + "attemptHistory": "היסטוריית ניסיונות ({{displayCount}})", "attemptNumber": "ניסיון מס׳ {{number}}", "branch": "ענף", "cancelMessage": "סוכן האבטחה יעצור את ניסיון התיקון המתבצע.", @@ -1256,7 +1282,7 @@ "analysisModeSubtitle": "ניתוח {{mode}}", "automation": "אוטומציה", "automationAllOff": "הכל כבוי", - "automationCount": "{{count}} מתוך 3 מופעלים", + "automationCount": "{{displayCount}} מתוך 3 מופעלים", "couldNotLoadPermissions": "לא ניתן היה לטעון הרשאות", "couldNotLoadRepositories": "לא ניתן היה לטעון מאגרים", "couldNotLoadSettings": "לא ניתן היה לטעון את הגדרות סוכן האבטחה", @@ -1267,7 +1293,7 @@ "enabled": "מופעל", "modelsAndAnalysis": "דגמים וניתוח", "notifications": "התראות", - "notificationsCount": "{{count}} מתוך 2 מופעלים", + "notificationsCount": "{{displayCount}} מתוך 2 מופעלים", "off": "כבוי", "on": "מופעל", "repositories": "מאגרים", @@ -1278,7 +1304,8 @@ "selectRepositories": "בחר מאגרים", "selectRepositoriesSubtitle": "בחר אילו מאגרים סוכן האבטחה עוקב אחריהם", "slaPolicy": "מדיניות SLA", - "title": "הגדרות" + "title": "הגדרות", + "repositoriesCount_two": "{{displayCount}} מאגרים נבחרו" }, "settingsSave": { "discard": "מחק", @@ -1355,7 +1382,9 @@ "cent_other": "סנטים", "dollar_one": "דולר", "dollar": "דולרים", - "dollar_other": "דולרים" + "dollar_other": "דולרים", + "cent_two": "סנטים", + "dollar_two": "דולרים" }, "githubInstall": { "couldNotOpenMessage": "לא ניתן היה להתחיל את הגדרת אפליקציית GitHub. נסה שוב.", @@ -1451,7 +1480,8 @@ "partRenderer": { "updatedFileCount_one": "עודכן {{displayCount}} קובץ", "updatedFileCount": "עודכנו {{displayCount}} קבצים", - "updatedFileCount_other": "עודכנו {{displayCount}} קבצים" + "updatedFileCount_other": "עודכנו {{displayCount}} קבצים", + "updatedFileCount_two": "עודכנו {{displayCount}} קבצים" }, "toolPatch": { "operationAdded": "נוסף", @@ -1476,9 +1506,9 @@ "toolTask": "משימה", "readTodos": "קריאת משימות", "updateTodos": "עדכון משימות", - "linesBadge": "{{count}} שורות", - "filesBadge": "{{count}} קבצים", - "matchesBadge": "{{count}} התאמות" + "linesBadge": "{{displayCount}} שורות", + "filesBadge": "{{displayCount}} קבצים", + "matchesBadge": "{{displayCount}} התאמות" }, "readToolMarkdown": { "linesTruncated": "שורות {{start}}–{{end}} (קטום)", @@ -1514,6 +1544,10 @@ "modeSelector": { "accessibility": "מצב: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "קוד", "plan": "תכנון", @@ -1620,7 +1654,7 @@ "preparationComplete": "ההכנה הושלמה", "preparationFailed": "ההכנה נכשלה", "setupCommand": "פקודת הגדרה {{index}}", - "setupCommandOf": "פקודת הגדרה {{index}} מתוך {{count}}" + "setupCommandOf": "פקודת הגדרה {{index}} מתוך {{displayCount}}" }, "permissionCard": { "title": "נדרשת הרשאה", @@ -1657,7 +1691,7 @@ "submissionFailed": "השליחה נכשלה. נסה שוב.", "questionAnnouncement": "הסוכן זקוק לקלט שלך. המחבר מושהה בזמן שאתה עונה.", "permissionAnnouncement": "הסוכן זקוק להרשאה כדי להמשיך. המחבר מושהה בזמן שאתה מחליט.", - "positionHint": "(1 מתוך {{count}})", + "positionHint": "(1 מתוך {{displayCount}})", "movedPastPrompt": "הסוכן עבר מעבר להנחיה הזו. הכרטיס הזה ייסגר כשההפעלה תמשיך.", "waitingForAnswer": "הסוכן ממתין לתשובתך. בזמן שהשאלה הזו פתוחה, ההודעה שלך לסוכן מושהה.", "waitingForPermission": "הסוכן ממתין להרשאה. בזמן שהבקשה הזו פתוחה, ההודעה שלך לסוכן מושהה." @@ -1697,7 +1731,8 @@ "omitted_other": "לא ניתן היה להציג {{displayCount}} פריטים מוקדמים יותר מהפעלה זו.", "couldNotLoad": "לא ניתן היה לטעון הודעות מוקדמות יותר.", "unavailable": "הודעות מוקדמות יותר אינן זמינות.", - "tooLarge": "ההודעות המוקדמות יותר גדולות מדי לטעינה." + "tooLarge": "ההודעות המוקדמות יותר גדולות מדי לטעינה.", + "omitted_two": "לא ניתן היה להציג {{displayCount}} פריטים מוקדמים יותר מהפעלה זו." }, "markdownTable": { "viewTable": "צפה בטבלה", @@ -1709,7 +1744,9 @@ "rowCount_one": "שורה", "rowCount": "שורות", "rowCount_other": "שורות", - "opensFullScreen": "נפתח במסך מלא" + "opensFullScreen": "נפתח במסך מלא", + "columnCount_two": "עמודות", + "rowCount_two": "שורות" }, "sessionFilter": { "title": "סנן הפעלות", @@ -1778,7 +1815,7 @@ "cameraAccessDisabled": "גישת מצלמה מושבתת", "cameraAccessMessage": "אפשר גישת מצלמה בהגדרות כדי לצלם תמונה.", "couldNotOpenPhotoPicker": "לא ניתן היה לפתוח את בורר התמונות. הפעל מחדש את Kilo ונסה שוב.", - "maxFilesAllowed": "מותר לצרף עד {{count}} קבצים", + "maxFilesAllowed": "מותר לצרף עד {{displayCount}} קבצים", "onlyAddingFiles": "מוסיף רק {{accepted}} מתוך {{total}} קבצים (מקסימום {{max}})" }, "composer": { @@ -1843,7 +1880,7 @@ "costPrefix": "עלות {{cost}}", "costSuffix": ", עלות {{cost}}", "tokensWindowUnavailable": "הקשר {{used}} אסימונים, חלון אינו זמין", - "tokensUsage": "הקשר {{used}} מתוך {{window}} אסימונים, {{percentage}}% בשימוש", + "tokensUsage": "הקשר {{used}} מתוך {{window}} אסימונים, {{percentage}} בשימוש", "title": "שימוש בהקשר", "used": "בשימוש", "remaining": "נותר", @@ -1852,7 +1889,7 @@ "usageReflectsLatest": "השימוש משקף את תשובת העוזר האחרונה שהושלמה.", "tokenUsage": "שימוש באסימונים", "cacheRate": "שיעור מטמון", - "modelsCount": "דגמים ({{count}})", + "modelsCount": "דגמים ({{displayCount}})", "tokenTotalsNote": "סך האסימונים מכסה הפעלה זו בלבד ואינו כולל אסימוני תת-סוכן/הפעלת משנה.", "subagents": "תת-סוכנים", "subagentsDescription": "עלות שיורית מהפעלות משנה", @@ -1864,7 +1901,8 @@ "stepsCount_one": "{{steps}} צעד", "stepsCount": "{{steps}} צעדים", "stepsCount_other": "{{steps}} צעדים", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_two": "{{steps}} צעדים" }, "prBadge": { "open": "בקשת משיכה פתוחה", @@ -1994,7 +2032,7 @@ "connectedCli": "ב-CLI מחובר", "newSessionOn": "הפעלה חדשה ב-{{name}}", "noMatchingSessions": "אין הפעלות תואמות.", - "onlyFirstFilesAttached": "רק {{count}} הקבצים הראשונים יצורפו.", + "onlyFirstFilesAttached": "רק {{displayCount}} הקבצים הראשונים יצורפו.", "staleMessage": "השיתוף הזה אינו זמין עוד.", "retryableMessage": "לא ניתן היה לטעון את ההפעלות שלך.", "emptyMessage": "אין עדיין הפעלות — התחל הפעלה חדשה כדי לשלוח זאת.", @@ -2027,7 +2065,7 @@ "otherAccountCopy": "ה-Kilo Pass בחשבון Apple הזה שייך לחשבון Kilo אחר. היכנס לחשבון ה-Kilo הזה כדי לנהל אותו.", "alreadySubscribed": "כבר יש לך מינוי Kilo Pass.", "purchaseUnavailable": "רכישת Kilo Pass אינה זמינה כרגע.", - "tierCredits": "{{amount}}$ בקרדיטים", + "tierCredits": "{{amount}} בקרדיטים", "perMonth": "{{price}}/חודש", "verifyPurchaseFailed": "לא ניתן היה לאמת את הרכישה שלך. בדוק את החיבור שלך ונסה שוב.", "productsCouldNotLoad": "לא ניתן היה לטעון את מוצרי Kilo Pass מ-App Store.", @@ -2038,7 +2076,7 @@ "manageFailed": "לא ניתן היה לפתוח את ניהול המנויים ב-App Store.", "kiloPassSetup": "הגדרת Kilo Pass", "subscriptionHeaderDescription": "מנוי חודשי שמוסיף קרדיטים ליתרת Kilo שלך להרצת מפגשי קידוד בינה מלאכותית ב-Kilo App — Cloud Agents, מפגשים מרחוק וצ'אטים של KiloClaw.", - "tierDescription": "קרדיטים בתשלום של ${{price}} נוספים לשימוש ב-Kilo App מדי חודש.", + "tierDescription": "קרדיטים בתשלום של {{price}} נוספים לשימוש ב-Kilo App מדי חודש.", "subscribe": "הירשם", "subscribeDescription": "קרדיטים חודשיים עם התקדמות לבונוס", "manage": "ניהול", @@ -2046,7 +2084,7 @@ "statusPending": "Kilo Pass בהמתנה", "statusCanceling": "Kilo Pass בביטול", "statusPastDue": "Kilo Pass בפיגור", - "monthlyCredits": "${{credits}} קרדיטים חודשיים", + "monthlyCredits": "{{credits}} קרדיטים חודשיים", "ends": "מסתיים ב-{{date}}", "periodEnd": "סוף תקופה", "managedOnGooglePlay": "מנוהל ב-Google Play", @@ -2150,17 +2188,17 @@ "accessDeniedDescription": "אין לך הרשאה לצפות בבקשת המשיכה הזו.", "checkConnection": "בדוק חיבור", "checks": { - "checksCount": "{{count}} בדיקות", + "checksCount": "{{displayCount}} בדיקות", "couldNotLoad": "לא ניתן היה לטעון בדיקות.", - "failed": "{{count}} נכשלו", + "failed": "{{displayCount}} נכשלו", "noAccess": "אין לך גישה לבדיקות של המאגר הזה.", "noChecksReported": "לא דווחו בדיקות", "notAvailable": "הבדיקות עדיין לא זמינות. ייתכן שה-commit הראשי טרם עובד, או שאפליקציית Kilo GitHub אינה מותקנת על מאגר ה-head.", "openDetails": "פתח פרטים של {{name}}", - "passed": "{{count}} עברו", - "pending": "{{count}} ממתינות", + "passed": "{{displayCount}} עברו", + "pending": "{{displayCount}} ממתינות", "retryChecks": "נסה שוב את הבדיקות", - "skipped": "{{count}} דולגו", + "skipped": "{{displayCount}} דולגו", "title": "בדיקות", "viewOnGitHub": "צפה ב-PR ב-GitHub", "checkDetails": "פרטי בדיקה", @@ -2238,7 +2276,7 @@ "terminal": "לא ניתן לדווח על משתמש זה." } }, - "moreLinesAbove": "… {{count}} שורות נוספות למעלה", + "moreLinesAbove": "… {{displayCount}} שורות נוספות למעלה", "mute": "השתק", "mutedUser": "{{login}} הושתק", "noDiscussion": "אין עדיין דיון", @@ -2246,7 +2284,7 @@ "comment_one": "תגובה אחת", "outdated": "מיושן", "quotedDiffSnippet": "קטע diff מצוטט", - "reactionPill": "{{emoji}} תגובה, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} תגובה, {{displayCount}} {{countLabel}}", "reaction": "תגובות", "reaction_other": "תגובות", "reaction_one": "תגובה", @@ -2276,7 +2314,9 @@ "viewTerms": "צפה בתנאים", "termsAcceptRequired": "עליך לאשר את תנאי השירות כדי לפרסם.", "termsCheckRetryCopy": "לא ניתן היה לבדוק את תנאי השירות. בדוק את החיבור ונסה שוב.", - "termsOutdatedCopy": "תנאי השירות השתנו. פתח מחדש את המסך הזה כדי לאשר את הגרסה האחרונה." + "termsOutdatedCopy": "תנאי השירות השתנו. פתח מחדש את המסך הזה כדי לאשר את הגרסה האחרונה.", + "comment_two": "{{displayCount}} תגובות", + "reaction_two": "תגובות" }, "entry": { "clearLink": "נקה קישור בקשת משיכה", @@ -2350,12 +2390,12 @@ "hunkRows": { "contextUnavailable": "ההקשר אינו זמין ב-ref הזה", "expandAll": "הרחב הכל", - "expandAllLines": "הרחב את כל {{count}} השורות", + "expandAllLines": "הרחב את כל {{displayCount}} השורות", "expandContext": "הרחב הקשר", - "expandLines": "הרחב {{count}} שורות ({{start}}–{{end}})", - "expandLinesOfContext": "הרחב {{count}} שורות הקשר", + "expandLines": "הרחב {{displayCount}} שורות ({{start}}–{{end}})", + "expandLinesOfContext": "הרחב {{displayCount}} שורות הקשר", "expandMoreContext": "הרחב עוד הקשר", - "expandMoreLines": "הרחב עוד {{count}} שורות ({{start}}–{{end}})", + "expandMoreLines": "הרחב עוד {{displayCount}} שורות ({{start}}–{{end}})", "failedToLoadContext": "לא ניתן היה לטעון את ההקשר — הקש כדי לנסות שוב", "failedToLoadMoreFiles": "לא ניתן היה לטעון עוד קבצים — הקש כדי לנסות שוב", "fileLoadedCount_one": "{{displayCount}} קובץ נטען", @@ -2377,7 +2417,9 @@ "loadingLines": "טוען {{loaded}} מתוך {{total}} שורות…", "loadingMoreFiles": "טוען עוד קבצים…", "retryLoadingContext": "נסה שוב לטעון את ההקשר", - "retryLoadingNextPage": "נסה שוב לטעון את העמוד הבא" + "retryLoadingNextPage": "נסה שוב לטעון את העמוד הבא", + "fileLoadedCount_two": "{{displayCount}} קבצים נטענו", + "fileLoadedOfTotalCount_two": "{{displayCount}} קבצים נטענו מתוך {{total}}" }, "inbox": { "couldNotLoad": "לא ניתן היה לטעון את תיבת הדואר הנכנס", @@ -2452,7 +2494,9 @@ "stateOpenApproved": "פתוח · אושר", "stateOpenChangesRequested": "פתוח · התבקשו שינויים", "stateOpenReviewRequired": "פתוח · נדרשת סקירה", - "unknownAuthor": "מחבר לא ידוע" + "unknownAuthor": "מחבר לא ידוע", + "commit_two": "commits", + "file_two": "קבצים" }, "pendingComment": { "allQueuedHint": "כל התגובות יישלחו בבקשה אצווה אחת.", @@ -2500,9 +2544,10 @@ "pendingComment_one": "תגובה ממתינה", "summaryOptional": "סיכום (אופציונלי)", "title": "שלח סקירה", - "partialPostedMessage": "פורסמו {{freshCount}} תגובות. {{staleCount}} תגובות מתייחסות ל-commit ישן יותר ונשארו בתור שלך.", - "submitCountOfTotal": "שלח {{freshCount}} מתוך {{totalCount}} תגובות", - "submitReview": "שלח סקירה" + "partialPostedMessage": "פורסמו {{displayFreshCount}} תגובות. {{displayStaleCount}} תגובות מתייחסות ל-commit ישן יותר ונשארו בתור שלך.", + "submitCountOfTotal": "שלח {{displayFreshCount}} מתוך {{displayTotalCount}} תגובות", + "submitReview": "שלח סקירה", + "pendingComment_two": "תגובות ממתינות" }, "fileStatus": { "added": "נוסף", @@ -2654,7 +2699,8 @@ "processingNeedsReview": "העיבוד דורש סקירה", "retry": "נסה שוב", "retryHint": "מנסה שוב לטעון את מצב Kilo Pass.", - "setupHint": "פותח את הגדרת Kilo Pass באינטרנט." + "setupHint": "פותח את הגדרת Kilo Pass באינטרנט.", + "paidSeat_two": "{{displayCount}} מושבים בתשלום" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index a329bad7f2..ceb952ad42 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -201,7 +201,8 @@ "agents": "एजेंट", "profile": "प्रोफ़ाइल", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, टैब, {{position}} में से {{total}}" }, "chat": { "instancePicker": { @@ -241,7 +242,7 @@ "open": "{{filename}} खोलें", "openFailed": "अटैचमेंट खोल नहीं सका। अपना कनेक्शन जाँचें और फिर से प्रयास करें।", "attachFailed": "फ़ाइल संलग्न करने में विफल", - "limit": "आप अधिकतम {{count}} फ़ाइलें संलग्न कर सकते हैं।", + "limit": "आप अधिकतम {{displayCount}} फ़ाइलें संलग्न कर सकते हैं।", "sizeRejection": "{{filename}} {{limit}} की अटैचमेंट सीमा से अधिक है।", "unreadable": "{{filename}} पढ़ नहीं सका।", "pastedImage": "चिपकाई गई छवि", @@ -284,7 +285,7 @@ "edited": "(संपादित)" }, "reactions": { - "accessibility": "{{emoji}} प्रतिक्रिया, {{count}}", + "accessibility": "{{emoji}} प्रतिक्रिया, {{displayCount}}", "close": "प्रतिक्रियाएँ बंद करें", "common": "सामान्य", "reactWith": "{{reaction}} से प्रतिक्रिया दें", @@ -355,17 +356,18 @@ "finalCommitTermEndsOn": "आपकी अंतिम Commit अवधि {{date}} को समाप्त हो रही है. {{price}} पर Standard के रूप में जारी रखें, अन्यथा होस्टिंग समाप्त हो जाएगी.", "freeTrial": "मुफ़्त परीक्षण", "hostingEnds": "होस्टिंग समाप्त हो रही है", + "lessThanOneDay": "1 दिन से कम", "renews": "नवीनीकृत होता है", "standardMonthToMonth": "Standard माह-दर-माह", "standardStartsOn": "Standard {{date}} को {{price}} पर शुरू होता है.", "yourStandardMonthlyPrice": "आपकी Standard मासिक कीमत", "perMonth": "/माह", "earlybirdAccessUntil": "Earlybird पहुँच {{date}} तक", - "earlybirdEnding": "Earlybird समाप्त हो रहा है: {{days}} दिन शेष", + "earlybirdEnding": "Earlybird समाप्त हो रहा है: {{remaining}}", "paymentPastDue": "भुगतान बकाया है। कृपया अपनी भुगतान विधि अपडेट करें।", "subscriptionCancels": "सदस्यता {{date}} को रद्द होती है", - "trialDaysRemaining": "परीक्षण: {{days}} दिन शेष", - "trialEndingSoon": "परीक्षण जल्द समाप्त हो रहा है: {{days}}" + "trialDaysRemaining": "परीक्षण: {{remaining}} शेष", + "trialEndingSoon": "परीक्षण जल्द समाप्त हो रहा है: {{remaining}}" }, "changelog": { "title": "नया क्या है", @@ -665,7 +667,7 @@ "startingSandbox": "सैंडबॉक्स शुरू हो रहा है", "stoppedBody": "सेटअप के दौरान {{name}} का इंस्टेंस अप्रत्याशित रूप से रुक गया।", "stoppedTitle": "सेटअप रुक गया", - "timeoutBody": "{{name}} का सेटअप सामान्य से अधिक समय ले रहा है ({{minutes}} मिनट से अधिक)।", + "timeoutBody": "{{name}} का सेटअप सामान्य से अधिक समय ले रहा है ({{displayMinutes}} मिनट से अधिक)।", "timeoutTitle": "अपेक्षा से अधिक समय लग रहा है" }, "unavailableDescription": "इंस्टेंस प्रोविज़न करने के लिए वर्तमान KiloClaw सदस्यता आवश्यक है। मौजूदा इंस्टेंस और सदस्यताएँ सामान्य रूप से जारी रहती हैं।", @@ -912,7 +914,7 @@ "focusAreas": "फ़ोकस क्षेत्र", "mergeGate": "मर्ज गेट", "model": "मॉडल", - "nSelected": "{{count}} चयनित", + "nSelected": "{{displayCount}} चयनित", "proposedReviewMdGuidance": "प्रस्तावित REVIEW.md मार्गदर्शन", "repositories": "रिपॉज़िटरी", "reviewMemory": "समीक्षा मेमोरी", @@ -981,7 +983,7 @@ "triageReasoning": "ट्राइएज तर्क", "unknown": "अज्ञात", "watchInCloudAgent": "Cloud Agent में देखें", - "whereFound": "यह कहाँ मिला ({{count}})", + "whereFound": "यह कहाँ मिला ({{displayCount}})", "yes": "हाँ" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "पुष्ट शोषण-योग्य", "couldNotLoad": "डैशबोर्ड डेटा लोड नहीं हो सका", "criticalOverdue": "गंभीर विलंबित", - "daysOverdue": "{{count}} दिन विलंबित", + "daysOverdue": "{{displayCount}} दिन विलंबित", "deadlineToday": "समय सीमा आज पहुँची", "filterByRepository": "रिपॉज़िटरी से फ़िल्टर करें", "findings": "निष्कर्ष", - "findingsCount": "{{count}} निष्कर्ष", + "findingsCount": "{{displayCount}} निष्कर्ष", "highOverdue": "उच्च विलंबित", "lastSynced": "अंतिम सिंक {{time}}", "manageRepositories": "रिपॉज़िटरी प्रबंधित करें", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "सिंक स्थिति अनुपलब्ध", "withinDeadline": "समय सीमा के भीतर" }, + "dashboardMetrics": { + "openFindings": "खुले निष्कर्ष", + "openFindingsDetail": "{{critical}} गंभीर, {{high}} उच्च", + "confirmedExploitable": "पुष्ट शोषण-योग्य", + "confirmedExploitableDetail": "विश्लेषण द्वारा परियोजना जोखिम की पुष्टि हुई", + "needsReview": "आपकी समीक्षा आवश्यक", + "needsReviewDetail": "मानवीय निर्णय आवश्यक", + "analysisIncomplete": "विश्लेषण पूरा नहीं", + "analysisIncompleteDetail": "परियोजना जोखिम अभी भी अज्ञात है", + "slaCompliance": "SLA अनुपालन", + "notMeasured": "मापा नहीं गया", + "withinDeadlineDetail": "समय सीमा के भीतर {{total}} में से {{within}}", + "noDeadlineData": "अभी किसी निष्कर्ष की SLA समय सीमा नहीं है", + "deadlinePassed": "समय सीमा बीत गई", + "deadlinePassedDetail": "{{critical}} गंभीर, {{high}} उच्च", + "dueThisWeek": "इस सप्ताह देय", + "dueThisWeekDetail": "{{exploitable}} पुष्ट शोषण-योग्य", + "noDeadline": "कोई समय सीमा नहीं", + "reviewSlaAssignment": "SLA असाइनमेंट की समीक्षा करें", + "allOpenFindingsTracked": "सभी खुले निष्कर्ष ट्रैक किए गए" + }, "dismiss": { "alreadyResolvedDescription": "यह निष्कर्ष पहले ही हल हो चुका है और अब खारिज स्वीकार नहीं करता।", "cannotDismissDescription": "केवल संगठन के मालिक और बिलिंग मैनेजर ही निष्कर्ष खारिज कर सकते हैं।", @@ -1188,7 +1211,7 @@ "title": "सूचनाएँ" }, "remediation": { - "attemptHistory": "प्रयास इतिहास ({{count}})", + "attemptHistory": "प्रयास इतिहास ({{displayCount}})", "attemptNumber": "प्रयास #{{number}}", "branch": "शाखा", "cancelMessage": "Security Agent जारी सुधार प्रयास रोक देगा।", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "{{mode}} विश्लेषण", "automation": "ऑटोमेशन", "automationAllOff": "सभी बंद", - "automationCount": "3 में से {{count}} सक्षम", + "automationCount": "3 में से {{displayCount}} सक्षम", "couldNotLoadPermissions": "अनुमतियाँ लोड नहीं हो सकीं", "couldNotLoadRepositories": "रिपॉज़िटरी लोड नहीं हो सकीं", "couldNotLoadSettings": "Security Agent सेटिंग लोड नहीं हो सकीं", @@ -1267,7 +1290,7 @@ "enabled": "सक्षम", "modelsAndAnalysis": "मॉडल और विश्लेषण", "notifications": "सूचनाएँ", - "notificationsCount": "2 में से {{count}} सक्षम", + "notificationsCount": "2 में से {{displayCount}} सक्षम", "off": "बंद", "on": "चालू", "repositories": "रिपॉज़िटरी", @@ -1487,6 +1510,10 @@ "modeSelector": { "accessibility": "मोड: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "कोड", "plan": "प्लान", @@ -1593,7 +1620,7 @@ "preparationComplete": "तैयारी पूरी हुई", "preparationFailed": "तैयारी विफल रही", "setupCommand": "सेटअप कमांड {{index}}", - "setupCommandOf": "{{count}} में से सेटअप कमांड {{index}}" + "setupCommandOf": "{{displayCount}} में से सेटअप कमांड {{index}}" }, "permissionCard": { "title": "अनुमति आवश्यक", @@ -1630,7 +1657,7 @@ "submissionFailed": "सबमिशन विफल रहा। कृपया फिर से कोशिश करें।", "questionAnnouncement": "एजेंट को आपके इनपुट की ज़रूरत है। जब तक आप उत्तर देते हैं, कंपोज़र रुका हुआ है।", "permissionAnnouncement": "एजेंट को जारी रखने के लिए अनुमति चाहिए। जब तक आप निर्णय लेते हैं, कंपोज़र रुका हुआ है।", - "positionHint": "({{count}} में से 1)", + "positionHint": "({{displayCount}} में से 1)", "movedPastPrompt": "एजेंट इस प्रॉम्प्ट से आगे बढ़ चुका है। सत्र जारी रहने पर यह कार्ड बंद हो जाएगा।", "waitingForAnswer": "एजेंट आपके उत्तर की प्रतीक्षा कर रहा है। जब तक यह प्रश्न खुला है, एजेंट को आपका संदेश रुका हुआ है।", "waitingForPermission": "एजेंट अनुमति की प्रतीक्षा कर रहा है। जब तक यह अनुरोध खुला है, एजेंट को आपका संदेश रुका हुआ है।" @@ -1744,7 +1771,7 @@ "cameraAccessDisabled": "कैमरा पहुँच अक्षम", "cameraAccessMessage": "फ़ोटो लेने के लिए सेटिंग में कैमरा पहुँच की अनुमति दें।", "couldNotOpenPhotoPicker": "फ़ोटो पिकर नहीं खुल सका। Kilo को पुनः आरंभ करें और फिर से कोशिश करें।", - "maxFilesAllowed": "अधिकतम {{count}} फ़ाइलें अनुमत हैं", + "maxFilesAllowed": "अधिकतम {{displayCount}} फ़ाइलें अनुमत हैं", "onlyAddingFiles": "केवल {{accepted}} फ़ाइलें जोड़ी जा रही हैं ({{total}} में से, अधिकतम {{max}})" }, "composer": { @@ -1809,10 +1836,10 @@ "costPrefix": "लागत {{cost}}", "costSuffix": ", लागत {{cost}}", "tokensWindowUnavailable": "संदर्भ {{used}} टोकन, विंडो उपलब्ध नहीं", - "tokensUsage": "संदर्भ {{window}} में से {{used}} टोकन, {{percentage}}% उपयोग हुआ", + "tokensUsage": "संदर्भ {{window}} में से {{used}} टोकन, {{percentage}} उपयोग हुआ", "cacheRate": "कैश दर", "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", - "modelsCount": "मॉडल ({{count}})", + "modelsCount": "मॉडल ({{displayCount}})", "ofWindowTokens": "{{window}} टोकन में से", "olderActivity": "पुरानी गतिविधि", "olderActivityDescription": "लोड किए गए इतिहास में शामिल नहीं की गई लागत", @@ -1857,9 +1884,9 @@ "toolTask": "कार्य", "readTodos": "कार्य पढ़ें", "updateTodos": "कार्य अपडेट करें", - "linesBadge": "{{count}} पंक्तियाँ", - "filesBadge": "{{count}} फ़ाइलें", - "matchesBadge": "{{count}} मिलान" + "linesBadge": "{{displayCount}} पंक्तियाँ", + "filesBadge": "{{displayCount}} फ़ाइलें", + "matchesBadge": "{{displayCount}} मिलान" }, "toolPatch": { "operationAdded": "जोड़ा गया", @@ -1994,7 +2021,7 @@ "connectedCli": "कनेक्टेड CLI पर", "newSessionOn": "{{name}} पर नया सत्र", "noMatchingSessions": "कोई मेल खाता सत्र नहीं।", - "onlyFirstFilesAttached": "केवल पहली {{count}} फ़ाइलें संलग्न की जाएँगी।", + "onlyFirstFilesAttached": "केवल पहली {{displayCount}} फ़ाइलें संलग्न की जाएँगी।", "staleMessage": "यह साझा अब उपलब्ध नहीं है।", "retryableMessage": "आपके सत्र लोड नहीं हो सके।", "emptyMessage": "अभी कोई सत्र नहीं — इसे भेजने के लिए नया सत्र शुरू करें।", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "इस Apple खाते का Kilo Pass किसी दूसरे Kilo खाते से संबंधित है। इसे प्रबंधित करने के लिए उस Kilo खाते में साइन इन करें।", "alreadySubscribed": "आपके पास पहले से Kilo Pass सदस्यता है।", "purchaseUnavailable": "Kilo Pass खरीदारी अभी उपलब्ध नहीं है।", - "tierCredits": "क्रेडिट में ${{amount}}", + "tierCredits": "क्रेडिट में {{amount}}", "perMonth": "{{price}}/माह", "verifyPurchaseFailed": "आपकी खरीदारी सत्यापित नहीं हो सकी। अपना कनेक्शन जाँचें और फिर से कोशिश करें।", "productsCouldNotLoad": "Kilo Pass उत्पाद App Store से लोड नहीं हो सके।", @@ -2038,7 +2065,7 @@ "manageFailed": "App Store सदस्यता प्रबंधन खोलने में विफल।", "kiloPassSetup": "Kilo Pass सेटअप", "subscriptionHeaderDescription": "एक मासिक सदस्यता जो Kilo App में AI कोडिंग सत्र चलाने के लिए आपके Kilo बैलेंस में क्रेडिट जोड़ती है — Cloud Agents, रिमोट सत्र और KiloClaw चैट।", - "tierDescription": "${{price}} भुगतान क्रेडिट Kilo App उपयोग के लिए मासिक जोड़े गए।", + "tierDescription": "{{price}} भुगतान क्रेडिट Kilo App उपयोग के लिए मासिक जोड़े गए।", "subscribe": "सब्सक्राइब करें", "subscribeDescription": "बोनस प्रगति के साथ मासिक क्रेडिट", "manage": "प्रबंधित करें", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass लंबित", "statusCanceling": "Kilo Pass रद्द हो रहा है", "statusPastDue": "Kilo Pass विलंबित", - "monthlyCredits": "${{credits}} मासिक क्रेडिट", + "monthlyCredits": "{{credits}} मासिक क्रेडिट", "ends": "{{date}} को समाप्त होता है", "periodEnd": "अवधि समाप्ति", "managedOnGooglePlay": "Google Play पर प्रबंधित", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "आपके पास इस पुल रिक्वेस्ट को देखने की अनुमति नहीं है।", "checkConnection": "कनेक्शन जाँचें", "checks": { - "checksCount": "{{count}} जाँचें", + "checksCount": "{{displayCount}} जाँचें", "couldNotLoad": "जाँचें लोड नहीं हो सकीं।", - "failed": "{{count}} विफल", + "failed": "{{displayCount}} विफल", "noAccess": "आपके पास इस रिपॉज़िटरी की जाँचों तक पहुँच नहीं है।", "noChecksReported": "कोई जाँच रिपोर्ट नहीं", "notAvailable": "जाँचें अभी उपलब्ध नहीं हैं। हो सकता है कि हेड कमिट प्रोसेस न हुआ हो, या Kilo GitHub ऐप हेड रिपॉज़िटरी पर इंस्टॉल न हो।", "openDetails": "{{name}} विवरण खोलें", - "passed": "{{count}} पास", - "pending": "{{count}} लंबित", + "passed": "{{displayCount}} पास", + "pending": "{{displayCount}} लंबित", "retryChecks": "जाँचें फिर से करें", - "skipped": "{{count}} छोड़ी गईं", + "skipped": "{{displayCount}} छोड़ी गईं", "title": "जाँचें", "viewOnGitHub": "GitHub पर PR देखें", "checkDetails": "चेक विवरण", @@ -2238,7 +2265,7 @@ "terminal": "यह उपयोगकर्ता रिपोर्ट नहीं किया जा सकता।" } }, - "moreLinesAbove": "… ऊपर {{count}} और पंक्तियाँ", + "moreLinesAbove": "… ऊपर {{displayCount}} और पंक्तियाँ", "mute": "म्यूट करें", "mutedUser": "{{login}} म्यूट किया गया", "noDiscussion": "अभी कोई चर्चा नहीं", @@ -2246,7 +2273,7 @@ "comment_one": "1 टिप्पणी", "outdated": "पुराना", "quotedDiffSnippet": "उद्धृत डिफ़ स्निपेट", - "reactionPill": "{{emoji}} प्रतिक्रिया, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} प्रतिक्रिया, {{displayCount}} {{countLabel}}", "reaction": "प्रतिक्रियाएँ", "reaction_other": "प्रतिक्रियाएँ", "reaction_one": "प्रतिक्रिया", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "इस ref पर संदर्भ अनुपलब्ध", "expandAll": "सभी विस्तारित करें", - "expandAllLines": "सभी {{count}} पंक्तियाँ विस्तारित करें", + "expandAllLines": "सभी {{displayCount}} पंक्तियाँ विस्तारित करें", "expandContext": "संदर्भ विस्तारित करें", - "expandLines": "{{count}} पंक्तियाँ विस्तारित करें ({{start}}–{{end}})", - "expandLinesOfContext": "संदर्भ की {{count}} पंक्तियाँ विस्तारित करें", + "expandLines": "{{displayCount}} पंक्तियाँ विस्तारित करें ({{start}}–{{end}})", + "expandLinesOfContext": "संदर्भ की {{displayCount}} पंक्तियाँ विस्तारित करें", "expandMoreContext": "और संदर्भ विस्तारित करें", - "expandMoreLines": "और {{count}} पंक्तियाँ विस्तारित करें ({{start}}–{{end}})", + "expandMoreLines": "और {{displayCount}} पंक्तियाँ विस्तारित करें ({{start}}–{{end}})", "failedToLoadContext": "संदर्भ लोड करने में विफल — फिर से कोशिश करने के लिए टैप करें", "failedToLoadMoreFiles": "और फ़ाइलें लोड करने में विफल — फिर से कोशिश करने के लिए टैप करें", "fileLoadedCount_one": "{{displayCount}} फ़ाइल लोड हुई", @@ -2500,8 +2527,8 @@ "pendingComment_one": "लंबित टिप्पणी", "summaryOptional": "सारांश (वैकल्पिक)", "title": "समीक्षा सबमिट करें", - "partialPostedMessage": "{{freshCount}} टिप्पणी पोस्ट की गईं। {{staleCount}} टिप्पणी पुराने कमिट की ओर इशारा करती हैं और आपकी कतार में रहीं।", - "submitCountOfTotal": "{{totalCount}} में से {{freshCount}} टिप्पणियाँ सबमिट करें", + "partialPostedMessage": "{{displayFreshCount}} टिप्पणी पोस्ट की गईं। {{displayStaleCount}} टिप्पणी पुराने कमिट की ओर इशारा करती हैं और आपकी कतार में रहीं।", + "submitCountOfTotal": "{{displayTotalCount}} में से {{displayFreshCount}} टिप्पणियाँ सबमिट करें", "submitReview": "समीक्षा सबमिट करें" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index 53aa8904ca..73e36f49d1 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -206,11 +206,11 @@ "loadingLines": "Učitavam {{loaded}} od {{total}} redaka…", "expandContext": "Proširi kontekst", "expandMoreContext": "Proširi više konteksta", - "expandLines": "Proširi {{count}} redaka ({{start}}–{{end}})", - "expandMoreLines": "Proširi još {{count}} redaka ({{start}}–{{end}})", - "expandLinesOfContext": "Proširi {{count}} redaka konteksta", + "expandLines": "Proširi {{displayCount}} redaka ({{start}}–{{end}})", + "expandMoreLines": "Proširi još {{displayCount}} redaka ({{start}}–{{end}})", + "expandLinesOfContext": "Proširi {{displayCount}} redaka konteksta", "expandAll": "Proširi sve", - "expandAllLines": "Proširi svih {{count}} redaka", + "expandAllLines": "Proširi svih {{displayCount}} redaka", "loadingMoreFiles": "Učitavam više datoteka…", "retryLoadingNextPage": "Pokušaj ponovno učitati sljedeću stranicu", "failedToLoadMoreFiles": "Nije moguće učitati više datoteka — dodirnite za ponovni pokušaj", @@ -227,7 +227,9 @@ "fileLoadedOfTotalCount_other": "učitano {{displayCount}} datoteka od {{total}}", "filesStillLoading": "Datoteke se još učitavaju. Povucite za osvježavanje.", "goToOverview": "Idi na pregled", - "goToOverviewTab": "Idi na karticu pregleda" + "goToOverviewTab": "Idi na karticu pregleda", + "fileLoadedCount_few": "učitane {{displayCount}} datoteke", + "fileLoadedOfTotalCount_few": "učitane {{displayCount}} datoteke od {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ nema novog retka na kraju datoteke", @@ -301,7 +303,7 @@ "closeReactions": "Zatvori reakcije", "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakciju", - "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcija, {{displayCount}} {{countLabel}}", "reaction_one": "reakcija", "reaction": "reakcija", "reaction_other": "reakcija", @@ -353,10 +355,12 @@ "noDiscussionDescription": "Nema recenzijskih niti ni komentara u raspravi na ovom pull requestu.", "reviewFiles": "Recenziraj datoteke", "quotedDiffSnippet": "Citirani diff isječak", - "moreLinesAbove": "… {{count}} više redaka iznad", + "moreLinesAbove": "… {{displayCount}} više redaka iznad", "termsAcceptRequired": "Za objavu morate prihvatiti Uvjete korištenja.", "termsOutdatedCopy": "Uvjeti korištenja su se promijenili. Ponovno otvorite ovaj zaslon za prihvaćanje najnovije verzije.", - "termsCheckRetryCopy": "Nije moguće provjeriti Uvjete korištenja. Provjerite svoju vezu i pokušajte ponovno." + "termsCheckRetryCopy": "Nije moguće provjeriti Uvjete korištenja. Provjerite svoju vezu i pokušajte ponovno.", + "comment_few": "{{displayCount}} komentara", + "reaction_few": "reakcije" }, "couldNotOpenGitHubAppSettings": "Nije moguće otvoriti postavke GitHub aplikacije", "installKiloGitHubApp": "Instaliraj Kilo GitHub aplikaciju", @@ -395,11 +399,11 @@ "retryChecks": "Pokušaj ponovno učitati provjere", "viewOnGitHub": "Pogledaj PR na GitHubu", "noChecksReported": "Nema prijavljenih provjera", - "passed": "{{count}} prošlo", - "failed": "{{count}} neuspjelo", - "pending": "{{count}} na čekanju", - "skipped": "{{count}} preskočeno", - "checksCount": "{{count}} provjera", + "passed": "{{displayCount}} prošlo", + "failed": "{{displayCount}} neuspjelo", + "pending": "{{displayCount}} na čekanju", + "skipped": "{{displayCount}} preskočeno", + "checksCount": "{{displayCount}} provjera", "checkDetails": "detalji provjere", "pullRequest": "pull request" }, @@ -459,9 +463,10 @@ "pendingComment_one": "čekajući komentar", "pendingComment": "čekajući komentari", "pendingComment_other": "čekajući komentari", - "submitCountOfTotal": "Pošalji {{freshCount}} od {{totalCount}} komentara", + "submitCountOfTotal": "Pošalji {{displayFreshCount}} od {{displayTotalCount}} komentara", "submitReview": "Pošalji recenziju", - "partialPostedMessage": "Poslano {{freshCount}} komentar(a). {{staleCount}} komentar(a) odnose se na stariji commit i ostalo je u vašem redu." + "partialPostedMessage": "Poslano {{displayFreshCount}} komentar(a). {{displayStaleCount}} komentar(a) odnose se na stariji commit i ostalo je u vašem redu.", + "pendingComment_few": "čekajuća komentara" }, "reconnectNotice": { "title": "GitHub veza je istekla", @@ -488,7 +493,9 @@ "commit_other": "commita", "file_one": "datoteka", "file": "datoteka", - "file_other": "datoteka" + "file_other": "datoteka", + "commit_few": "commita", + "file_few": "datoteke" }, "pendingComment": { "editOutdatedA11y": "Uredi zastarjeli čekajući komentar na {{location}}", @@ -580,7 +587,8 @@ "agents": "Agenti", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, kartica, {{position}} od {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +629,7 @@ "recent": "Nedavno", "common": "Uobičajeno", "reactWith": "Reagiraj s {{reaction}}", - "accessibility": "{{emoji}} reakcija, {{count}}" + "accessibility": "{{emoji}} reakcija, {{displayCount}}" }, "composer": { "replyingTo": "Odgovaram na", @@ -650,7 +658,7 @@ "imageUnavailable": "Slika nedostupna", "openFailed": "Nije moguće otvoriti privitak. Provjerite svoju vezu i pokušajte ponovno.", "attachFailed": "Nije moguće priložiti datoteku", - "limit": "Možete priložiti do {{count}} datoteka.", + "limit": "Možete priložiti do {{displayCount}} datoteka.", "sizeRejection": "{{filename}} premašuje ograničenje privitka od {{limit}}.", "unreadable": "Nije moguće pročitati {{filename}}.", "pastedImage": "zalijepljena slika", @@ -700,7 +708,8 @@ "someone": "Netko", "typing_one": "{{name}} tipka...", "typing": "{{names}} tipkaju...", - "typing_other": "{{names}} tipkaju..." + "typing_other": "{{names}} tipkaju...", + "typing_few": "{{names}} tipkaju..." }, "botStatus": { "online": "Na mreži", @@ -734,17 +743,18 @@ "finalCommitTermEndsOn": "Vaš konačni Commit rok završava {{date}}. Nastavite kao Standard po cijeni od {{price}}, ili hosting završava.", "freeTrial": "Besplatna proba", "hostingEnds": "Hosting završava", + "lessThanOneDay": "Manje od 1 dana", "renews": "Obnavlja se", "standardMonthToMonth": "Standardno mjesečno", "standardStartsOn": "Standard počinje {{date}} po cijeni od {{price}}.", "yourStandardMonthlyPrice": "vaša standardna mjesečna cijena", "perMonth": "/mjesečno", "earlybirdAccessUntil": "Earlybird pristup do {{date}}", - "earlybirdEnding": "Earlybird završava: preostalo {{days}} dana", + "earlybirdEnding": "Earlybird završava: preostalo {{remaining}}", "paymentPastDue": "Plaćanje je u kašnjenju. Ažurirajte način plaćanja.", "subscriptionCancels": "Pretplata se otkazuje {{date}}", - "trialDaysRemaining": "Proba: preostalo {{days}} dana", - "trialEndingSoon": "Proba uskoro završava: {{days}}" + "trialDaysRemaining": "Proba: preostalo {{remaining}}", + "trialEndingSoon": "Proba uskoro završava: {{remaining}}" }, "changelog": { "title": "Što je novo", @@ -996,7 +1006,7 @@ "stalledTitle": "Nešto je zapelo", "stalledBody": "Nismo mogli dovršiti postavljanje za {{name}}. Pokušajte ponovno ili pošaljite e-poštu na hi@kilo.ai ako se to nastavi.", "timeoutTitle": "Traje dulje nego što je očekivano", - "timeoutBody": "Postavljanje za {{name}} traje dulje nego obično (preko {{minutes}} minuta).", + "timeoutBody": "Postavljanje za {{name}} traje dulje nego obično (preko {{displayMinutes}} minuta).", "continueInBackground": "Nastavi u pozadini", "settingUp": "Postavljanje za {{name}}", "finishingSetup": "Dovršavanje postavljanja", @@ -1071,7 +1081,8 @@ "openUnread_other": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", "open": "Otvori {{name}}", "openSettings": "Otvori postavke za {{name}}", - "fixOnKiloAi": "Riješi na kilo.ai: {{label}}" + "fixOnKiloAi": "Riješi na kilo.ai: {{label}}", + "openUnread_few": "Otvori {{name}}, {{displayCount}} nepročitane poruke" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1298,7 @@ "mergeGate": "Prag za spajanje", "repositories": "Spremišta", "allRepositories": "Sva spremišta", - "nSelected": "{{count}} odabrano", + "nSelected": "{{displayCount}} odabrano", "reviewMemory": "Memorija pregleda", "proposedReviewMdGuidance": "Predložene smjernice REVIEW.md" }, @@ -1367,7 +1378,8 @@ "severityAll": "Sve razine ozbiljnosti", "confidenceHighOnly": "Samo visoka pouzdanost", "confidenceMediumOrHigher": "Srednja ili viša", - "confidenceAny": "Bilo koja pouzdanost" + "confidenceAny": "Bilo koja pouzdanost", + "queued_few": "{{displayCount}} postojeća nalaza čekaju na analizu." }, "analysis": { "couldNotLoad": "Nije moguće učitati analizu", @@ -1391,14 +1403,14 @@ "analyzed": "Analizirano", "exploitabilityReasoning": "Obrazloženje iskoristivosti", "suggestedFix": "Predloženo rješenje", - "whereFound": "Gdje je ovo pronađeno ({{count}})", + "whereFound": "Gdje je ovo pronađeno ({{displayCount}})", "fullReport": "Potpuno generirano izvješće", "unknown": "Nepoznato", "yes": "Da", "no": "Ne" }, "dashboard": { - "findingsCount": "{{count}} nalaza", + "findingsCount": "{{displayCount}} nalaza", "notMeasured": "Nije izmjereno", "actFirst": "Prvo djeluj", "slaPosture": "Položaj SLA", @@ -1407,7 +1419,7 @@ "repositoryActionPlan": "Plan djelovanja za repozitorij", "noOpenFindings": "Nema otvorenih nalaza kojima je potrebna pozornost", "deadlineToday": "Rok dosegnut danas", - "daysOverdue": "{{count}} dana prekoračenja roka", + "daysOverdue": "{{displayCount}} dana prekoračenja roka", "withinDeadline": "Unutar roka", "criticalOverdue": "Kritično prekoračenje", "highOverdue": "Visoko prekoračenje", @@ -1435,6 +1447,27 @@ "syncQueued": "Sinkronizacija u redu čekanja", "syncStatusUnavailable": "Status sinkronizacije nije dostupan" }, + "dashboardMetrics": { + "openFindings": "Otvoreni nalazi", + "openFindingsDetail": "{{critical}} kritično, {{high}} visoko", + "confirmedExploitable": "Potvrđeno iskoristivo", + "confirmedExploitableDetail": "Rizik projekta potvrđen analizom", + "needsReview": "Treba vaš pregled", + "needsReviewDetail": "Potrebna ljudska odluka", + "analysisIncomplete": "Analiza nije dovršena", + "analysisIncompleteDetail": "Rizik projekta još uvijek nepoznat", + "slaCompliance": "Usklađenost sa SLA", + "notMeasured": "Nije izmjereno", + "withinDeadlineDetail": "{{within}} od {{total}} unutar roka", + "noDeadlineData": "Nijedan nalaz još nema SLA rok", + "deadlinePassed": "Rok prošao", + "deadlinePassedDetail": "{{critical}} kritično, {{high}} visoko", + "dueThisWeek": "Dospijeva ovaj tjedan", + "dueThisWeekDetail": "{{exploitable}} potvrđeno iskoristivo", + "noDeadline": "Bez roka", + "reviewSlaAssignment": "Pregled SLA dodjele", + "allOpenFindingsTracked": "Svi otvoreni nalazi praćeni" + }, "dismiss": { "title": "Odbaci nalaz", "submit": "Odbaci nalaz", @@ -1500,13 +1533,14 @@ "analysisModeSubtitle": "{{mode}} analiza", "automation": "Automatizacija", "automationAllOff": "Sve isključeno", - "automationCount": "{{count}} od 3 omogućeno", + "automationCount": "{{displayCount}} od 3 omogućeno", "notifications": "Obavijesti", - "notificationsCount": "{{count}} od 2 omogućeno", + "notificationsCount": "{{displayCount}} od 2 omogućeno", "slaPolicy": "SLA politika", "disabledNoManage": "Security Agent je onemogućen. Samo vlasnici organizacije i voditelji naplate mogu ga uključiti.", "disabledNoRepo": "Odaberite barem jedan repozitorij prije omogućavanja Security Agenta.", - "disabledPrompt": "Uključite Security Agent za sinkronizaciju Dependabot upozorenja, odabir repozitorija i konfiguraciju automatizacije." + "disabledPrompt": "Uključite Security Agent za sinkronizaciju Dependabot upozorenja, odabir repozitorija i konfiguraciju automatizacije.", + "repositoriesCount_few": "Odabrana {{displayCount}} repozitorija" }, "remediation": { "cancellationRequested": "Zatraženo otkazivanje", @@ -1524,7 +1558,7 @@ "openPullRequest": "Otvori pull request {{number}}", "openDraftPullRequest": "Otvori nacrt pull requesta {{number}}", "progress": "Napredak", - "attemptHistory": "Povijest pokušaja ({{count}})", + "attemptHistory": "Povijest pokušaja ({{displayCount}})", "attemptNumber": "Pokušaj #{{number}}", "startedBy": "Pokrenuo", "model": "Model", @@ -1734,7 +1768,9 @@ "cent_other": "centi", "dollar_one": "dolar", "dollar": "dolara", - "dollar_other": "dolara" + "dollar_other": "dolara", + "cent_few": "centa", + "dollar_few": "dolara" }, "githubInstall": { "couldNotOpenTitle": "Nije moguće otvoriti GitHub", @@ -1830,7 +1866,8 @@ "partRenderer": { "updatedFileCount_one": "Ažurirana {{displayCount}} datoteka", "updatedFileCount": "Ažurirane {{displayCount}} datoteke", - "updatedFileCount_other": "Ažurirane {{displayCount}} datoteke" + "updatedFileCount_other": "Ažurirane {{displayCount}} datoteke", + "updatedFileCount_few": "Ažurirane {{displayCount}} datoteke" }, "toolPatch": { "operationAdded": "Dodano", @@ -1855,9 +1892,9 @@ "toolTask": "zadatak", "readTodos": "Pročitaj zadatke", "updateTodos": "Ažuriraj zadatke", - "linesBadge": "{{count}} redaka", - "filesBadge": "{{count}} datoteka", - "matchesBadge": "{{count}} podudaranja" + "linesBadge": "{{displayCount}} redaka", + "filesBadge": "{{displayCount}} datoteka", + "matchesBadge": "{{displayCount}} podudaranja" }, "readToolMarkdown": { "linesTruncated": "reci {{start}}–{{end}} (skraćeno)", @@ -1893,6 +1930,10 @@ "modeSelector": { "accessibility": "Način rada: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Kod", "plan": "Plan", @@ -1999,7 +2040,7 @@ "preparationComplete": "Priprema dovršena", "preparationFailed": "Priprema nije uspjela", "setupCommand": "Naredba za postavljanje {{index}}", - "setupCommandOf": "Naredba za postavljanje {{index}} od {{count}}" + "setupCommandOf": "Naredba za postavljanje {{index}} od {{displayCount}}" }, "permissionCard": { "title": "Potrebno dopuštenje", @@ -2036,7 +2077,7 @@ "submissionFailed": "Slanje nije uspjelo. Pokušajte ponovno.", "questionAnnouncement": "Agent treba vaš unos. Sastavljač je pauziran dok ne odgovorite.", "permissionAnnouncement": "Agent treba dozvolu za nastavak. Sastavljač je pauziran dok se ne odlučite.", - "positionHint": "(1 od {{count}})", + "positionHint": "(1 od {{displayCount}})", "movedPastPrompt": "Agent je prošao ovaj upit. Ova se kartica zatvara kad sesija nastavi.", "waitingForAnswer": "Agent čeka vaš odgovor. Dok je ovo pitanje otvoreno, vaša je poruka agentu pauzirana.", "waitingForPermission": "Agent čeka dozvolu. Dok je ovaj zahtjev otvoren, vaša je poruka agentu pauzirana." @@ -2076,7 +2117,8 @@ "omitted_other": "{{displayCount}} ranijih stavki iz ove sesije nije moguće prikazati.", "couldNotLoad": "Nije moguće učitati ranije poruke.", "unavailable": "Ranije poruke nisu dostupne.", - "tooLarge": "Ranije poruke prevelike su za učitavanje." + "tooLarge": "Ranije poruke prevelike su za učitavanje.", + "omitted_few": "{{displayCount}} ranije stavke iz ove sesije nije moguće prikazati." }, "markdownTable": { "viewTable": "Prikaži tablicu", @@ -2088,7 +2130,9 @@ "rowCount_one": "redak", "rowCount": "redci", "rowCount_other": "redci", - "opensFullScreen": "otvara preko cijelog zaslona" + "opensFullScreen": "otvara preko cijelog zaslona", + "columnCount_few": "stupca", + "rowCount_few": "retka" }, "sessionFilter": { "title": "Filtriraj sesije", @@ -2157,7 +2201,7 @@ "cameraAccessDisabled": "Pristup kameri onemogućen", "cameraAccessMessage": "Omogućite pristup kameri u Postavkama da biste snimili fotografiju.", "couldNotOpenPhotoPicker": "Nije moguće otvoriti birač fotografija. Ponovno pokrenite Kilo i pokušajte ponovno.", - "maxFilesAllowed": "Najviše {{count}} datoteka dopušteno", + "maxFilesAllowed": "Najviše {{displayCount}} datoteka dopušteno", "onlyAddingFiles": "Dodaju se samo {{accepted}} od {{total}} datoteka (maks. {{max}})" }, "composer": { @@ -2222,7 +2266,7 @@ "costPrefix": "trošak {{cost}}", "costSuffix": ", trošak {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} tokena, prozor nedostupan", - "tokensUsage": "Kontekst {{used}} od {{window}} tokena, {{percentage}}% iskorišteno", + "tokensUsage": "Kontekst {{used}} od {{window}} tokena, {{percentage}} iskorišteno", "title": "Korištenje konteksta", "used": "Iskorišteno", "remaining": "Preostalo", @@ -2231,7 +2275,7 @@ "usageReflectsLatest": "Korištenje odražava najnoviji dovršeni odgovor asistenta.", "tokenUsage": "Korištenje tokena", "cacheRate": "Stopa predmemorije", - "modelsCount": "Modeli ({{count}})", + "modelsCount": "Modeli ({{displayCount}})", "tokenTotalsNote": "Ukupni tokeni pokrivaju samo ovu sesiju i isključuju tokene podagenta/dječje sesije.", "subagents": "Podagenti", "subagentsDescription": "Preostali trošak dječjih sesija", @@ -2243,7 +2287,8 @@ "stepsCount_one": "{{steps}} korak", "stepsCount": "{{steps}} koraka", "stepsCount_other": "{{steps}} koraka", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} koraka" }, "prBadge": { "open": "otvoreni pull request", @@ -2373,7 +2418,7 @@ "connectedCli": "Na povezanom CLI-ju", "newSessionOn": "Nova sesija na {{name}}", "noMatchingSessions": "Nema odgovarajućih sesija.", - "onlyFirstFilesAttached": "Samo će prvih {{count}} datoteka biti priloženo.", + "onlyFirstFilesAttached": "Samo će prvih {{displayCount}} datoteka biti priloženo.", "staleMessage": "Ovaj unos dijeljenja više nije dostupan.", "retryableMessage": "Nije moguće učitati vaše sesije.", "emptyMessage": "Još nema sesija — pokrenite novu da biste to poslali.", @@ -2406,7 +2451,7 @@ "otherAccountCopy": "Kilo Pass na ovom Apple računu pripada drugom Kilo računu. Prijavite se na taj Kilo račun da biste njime upravljali.", "alreadySubscribed": "Već imate Kilo Pass pretplatu.", "purchaseUnavailable": "Kupnja Kilo Passa trenutačno nije dostupna.", - "tierCredits": "${{amount}} kredita", + "tierCredits": "{{amount}} kredita", "perMonth": "{{price}}/mjes", "verifyPurchaseFailed": "Nije moguće provjeriti vašu kupnju. Provjerite vezu i pokušajte ponovno.", "productsCouldNotLoad": "Kilo Pass proizvode nije moguće učitati iz App Storea.", @@ -2417,7 +2462,7 @@ "manageFailed": "Nije moguće otvoriti upravljanje pretplatama u App Storeu.", "kiloPassSetup": "Postavljanje Kilo Passa", "subscriptionHeaderDescription": "Mjesečna pretplata koja dodaje kredite vašem Kilo saldu za pokretanje AI sesija kodiranja u aplikaciji Kilo — Cloud agenti, udaljene sesije i KiloClaw razgovori.", - "tierDescription": "${{price}} plaćenih kredita dodaje se mjesečno za korištenje aplikacije Kilo.", + "tierDescription": "{{price}} plaćenih kredita dodaje se mjesečno za korištenje aplikacije Kilo.", "subscribe": "Pretplati se", "subscribeDescription": "Mjesečni krediti s bonus napretkom", "manage": "Upravljaj", @@ -2425,7 +2470,7 @@ "statusPending": "Kilo Pass na čekanju", "statusCanceling": "Kilo Pass se otkazuje", "statusPastDue": "Kilo Pass dospio", - "monthlyCredits": "${{credits}} mjesečnih kredita", + "monthlyCredits": "{{credits}} mjesečnih kredita", "ends": "Završava {{date}}", "periodEnd": "kraj razdoblja", "managedOnGooglePlay": "Upravljano na Google Playu", @@ -2667,7 +2712,8 @@ "processingNeedsReview": "Obrada zahtijeva pregled", "retry": "Pokušaj ponovno", "retryHint": "Ponovno pokušava učitavanje statusa Kilo Passa.", - "setupHint": "Otvara postavljanje Kilo Passa na webu." + "setupHint": "Otvara postavljanje Kilo Passa na webu.", + "paidSeat_few": "{{displayCount}} plaćena sjedala" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index 66fe5d8e93..d5865fb1a1 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -206,11 +206,11 @@ "loadingLines": "Ap chaje {{loaded}} sou {{total}} liy...", "expandContext": "Elaji kontèks", "expandMoreContext": "Elaji plis kontèks", - "expandLines": "Elaji {{count}} liy ({{start}}–{{end}})", - "expandMoreLines": "Elaji {{count}} plis liy ({{start}}–{{end}})", - "expandLinesOfContext": "Elaji {{count}} liy kontèks", + "expandLines": "Elaji {{displayCount}} liy ({{start}}–{{end}})", + "expandMoreLines": "Elaji {{displayCount}} plis liy ({{start}}–{{end}})", + "expandLinesOfContext": "Elaji {{displayCount}} liy kontèks", "expandAll": "Elaji tout", - "expandAllLines": "Elaji tout {{count}} liy yo", + "expandAllLines": "Elaji tout {{displayCount}} liy yo", "loadingMoreFiles": "Ap chaje plis fichye...", "retryLoadingNextPage": "Rekòmanse chaje paj kap vini an", "failedToLoadMoreFiles": "Echwe pou chaje plis fichye — tape pou eseye ankò", @@ -301,7 +301,7 @@ "closeReactions": "Fèmen reyaksyon yo", "reactionsTitle": "Reyaksyon", "addReaction": "Ajoute reyaksyon", - "reactionPill": "{{emoji}} reyaksyon, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reyaksyon, {{displayCount}} {{countLabel}}", "reaction_one": "reyaksyon", "reaction": "reyaksyon", "reaction_other": "reyaksyon", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Pa gen fil revizyon oswa kòmantè konvèsasyon sou demand rale sa a.", "reviewFiles": "Revize fichye", "quotedDiffSnippet": "Ekstrè diff site", - "moreLinesAbove": "... {{count}} plis liy pi wo a", + "moreLinesAbove": "... {{displayCount}} plis liy pi wo a", "termsAcceptRequired": "Ou dwe aksepte Kondisyon Itilizasyon yo pou pòste.", "termsOutdatedCopy": "Kondisyon Itilizasyon yo chanje. Relouvri ekran sa a pou aksepte vèsyon ki dènye a.", "termsCheckRetryCopy": "Pa t ka tcheke Kondisyon Itilizasyon yo. Tcheke koneksyon ou e eseye ankò." @@ -395,11 +395,11 @@ "retryChecks": "Rekòmanse tchèk", "viewOnGitHub": "Gade PR sou GitHub", "noChecksReported": "Pa gen tchèk rapòte", - "passed": "{{count}} pase", - "failed": "{{count}} echwe", - "pending": "{{count}} an patant", - "skipped": "{{count}} sote", - "checksCount": "{{count}} tchèk", + "passed": "{{displayCount}} pase", + "failed": "{{displayCount}} echwe", + "pending": "{{displayCount}} an patant", + "skipped": "{{displayCount}} sote", + "checksCount": "{{displayCount}} tchèk", "checkDetails": "detay tchèk", "pullRequest": "demand rale" }, @@ -459,9 +459,9 @@ "pendingComment_one": "kòmantè an patant", "pendingComment": "kòmantè an patant", "pendingComment_other": "kòmantè an patant", - "submitCountOfTotal": "Soumèt {{freshCount}} sou {{totalCount}} kòmantè", + "submitCountOfTotal": "Soumèt {{displayFreshCount}} sou {{displayTotalCount}} kòmantè", "submitReview": "Soumèt revizyon", - "partialPostedMessage": "Pòste {{freshCount}} kòmantè. {{staleCount}} kòmantè deziyen yon komit pi ansyen e rete nan fil ou." + "partialPostedMessage": "Pòste {{displayFreshCount}} kòmantè. {{displayStaleCount}} kòmantè deziyen yon komit pi ansyen e rete nan fil ou." }, "reconnectNotice": { "title": "Koneksyon GitHub ekspire", @@ -580,7 +580,8 @@ "agents": "Ajans", "profile": "Pwofil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} sou {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Resan", "common": "Komen", "reactWith": "Reyaji ak {{reaction}}", - "accessibility": "{{emoji}} reyaksyon, {{count}}" + "accessibility": "{{emoji}} reyaksyon, {{displayCount}}" }, "composer": { "replyingTo": "Ap reponn a", @@ -650,7 +651,7 @@ "imageUnavailable": "Imaj pa disponib", "openFailed": "Pa t ka louvri atachman an. Tcheke koneksyon ou e eseye ankò.", "attachFailed": "Echwe pou atache fichye a", - "limit": "Ou ka atache jiska {{count}} fichye.", + "limit": "Ou ka atache jiska {{displayCount}} fichye.", "sizeRejection": "{{filename}} depase limit atachman {{limit}} a.", "unreadable": "Pa t ka li {{filename}}.", "pastedImage": "imaj kole a", @@ -734,17 +735,18 @@ "finalCommitTermEndsOn": "Dènye tèm Commit ou a fini sou {{date}}. Kontinye kòm Standard nan {{price}}, oswa òganizasyon an fini.", "freeTrial": "Eseye Gratis", "hostingEnds": "Òganizasyon fini", + "lessThanOneDay": "Mwens pase 1 jou", "renews": "Renouvle", "standardMonthToMonth": "Standard mwa pa mwa", "standardStartsOn": "Standard kòmanse sou {{date}} nan {{price}}.", "yourStandardMonthlyPrice": "pri mwa Standard ou a", "perMonth": "/mwa", "earlybirdAccessUntil": "Aksè Earlybird jiskaske {{date}}", - "earlybirdEnding": "Earlybird ap fini: {{days}} jou rès", + "earlybirdEnding": "Earlybird ap fini: {{remaining}}", "paymentPastDue": "Peman an reta. Tanpri mete ajou metòd peman ou a.", "subscriptionCancels": "Abònman an anile {{date}}", - "trialDaysRemaining": "Eseye: {{days}} jou ki rete", - "trialEndingSoon": "Eseye ap fini pito: {{days}}" + "trialDaysRemaining": "Eseye: {{remaining}} rete", + "trialEndingSoon": "Eseye ap fini pito: {{remaining}}" }, "changelog": { "title": "Kisa ki Nouvo", @@ -996,7 +998,7 @@ "stalledTitle": "Yon bagay bloke", "stalledBody": "Nou pa t ka fini enstalasyon {{name}}. Eseye ankò, oswa voye imèl hi@kilo.ai si sa kontinye rive.", "timeoutTitle": "Ap pran plis tan pase espere", - "timeoutBody": "Enstalasyon {{name}} ap pran plis tan pase nòmal (plis pase {{minutes}} minit).", + "timeoutBody": "Enstalasyon {{name}} ap pran plis tan pase nòmal (plis pase {{displayMinutes}} minit).", "continueInBackground": "Kontinye nan fon", "settingUp": "Ap enstale {{name}}", "finishingSetup": "Ap fini enstalasyon", @@ -1287,7 +1289,7 @@ "mergeGate": "Pòt fuzion", "repositories": "Depo", "allRepositories": "Tout depo", - "nSelected": "{{count}} chwazi", + "nSelected": "{{displayCount}} chwazi", "reviewMemory": "Memwa revizyon", "proposedReviewMdGuidance": "Direktiv REVIEW.md pwopoze" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analize", "exploitabilityReasoning": "Rezonman eksplwatabilite", "suggestedFix": "Koreksyon sijere", - "whereFound": "Kote yo te jwenn sa a ({{count}})", + "whereFound": "Kote yo te jwenn sa a ({{displayCount}})", "fullReport": "Rapò konplè ki te jenere", "unknown": "Enkoni", "yes": "Wi", "no": "Non" }, "dashboard": { - "findingsCount": "{{count}} rezilta", + "findingsCount": "{{displayCount}} rezilta", "notMeasured": "Pa mezire", "actFirst": "Aji an premye", "slaPosture": "Anviwonman SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Plan aksyon repo a", "noOpenFindings": "Pa gen rezilta ouvè ki bezwen atansyon", "deadlineToday": "Dat limit rive jodi a", - "daysOverdue": "{{count}} jou an reta", + "daysOverdue": "{{displayCount}} jou an reta", "withinDeadline": "Nan dat limit", "criticalOverdue": "Kritik an reta", "highOverdue": "Wo an reta", @@ -1435,6 +1437,27 @@ "syncQueued": "Senkronizasyon an pwosesis", "syncStatusUnavailable": "Estati senkronizasyon disponib" }, + "dashboardMetrics": { + "openFindings": "Rezilta ouvè", + "openFindingsDetail": "{{critical}} kritik, {{high}} wo", + "confirmedExploitable": "Eksplwatab konfime", + "confirmedExploitableDetail": "Ris pwojè a konfime pa analiz la", + "needsReview": "Bezwen revizyon ou", + "needsReviewDetail": "Desizyon imen nesesè", + "analysisIncomplete": "Analiz pa fini", + "analysisIncompleteDetail": "Ris pwojè a poko konnen", + "slaCompliance": "Konfòmite SLA", + "notMeasured": "Pa mezire", + "withinDeadlineDetail": "{{within}} sou {{total}} nan dat limit", + "noDeadlineData": "Poko gen rezilta ki gen dat limit SLA", + "deadlinePassed": "Dat limit pase", + "deadlinePassedDetail": "{{critical}} kritik, {{high}} wo", + "dueThisWeek": "Pou semèn sa a", + "dueThisWeekDetail": "{{exploitable}} eksplwatab konfime", + "noDeadline": "Pa gen dat limit", + "reviewSlaAssignment": "Revize atribisyon SLA", + "allOpenFindingsTracked": "Tout rezilta ouvè swiv" + }, "dismiss": { "title": "Rejte rezilta a", "submit": "Rejte rezilta a", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Analiz {{mode}}", "automation": "Otonatizasyon", "automationAllOff": "Tout koupe", - "automationCount": "{{count}} sou 3 aktive", + "automationCount": "{{displayCount}} sou 3 aktive", "notifications": "Notifikasyon", - "notificationsCount": "{{count}} sou 2 aktive", + "notificationsCount": "{{displayCount}} sou 2 aktive", "slaPolicy": "Politik SLA", "disabledNoManage": "Security Agent dezaktive. Se sèlman pwopriyetè òganizasyon ak direktè fiyans ki kapab limen li.", "disabledNoRepo": "Chwazi omwen yon repo anvan ou limen Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Louvri demann tiraj{{number}}", "openDraftPullRequest": "Louvri demann tiraj bouyon{{number}}", "progress": "Pwogrè", - "attemptHistory": "Istwа tentativ ({{count}})", + "attemptHistory": "Istwа tentativ ({{displayCount}})", "attemptNumber": "Tentativ #{{number}}", "startedBy": "Kòmanse pa", "model": "Modèl", @@ -1855,9 +1878,9 @@ "toolTask": "travay", "readTodos": "Li travay yo", "updateTodos": "Miz ajou travay yo", - "linesBadge": "{{count}} liy", - "filesBadge": "{{count}} fichye", - "matchesBadge": "{{count}} matche" + "linesBadge": "{{displayCount}} liy", + "filesBadge": "{{displayCount}} fichye", + "matchesBadge": "{{displayCount}} matche" }, "readToolMarkdown": { "linesTruncated": "liy {{start}}–{{end}} (koupe)", @@ -1893,6 +1916,10 @@ "modeSelector": { "accessibility": "Mòd: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Kod", "plan": "Plan", @@ -1999,7 +2026,7 @@ "preparationComplete": "Preparasyon konplè", "preparationFailed": "Preparasyon echwe", "setupCommand": "Kòmandman konfigirasyon {{index}}", - "setupCommandOf": "Kòmandman konfigirasyon {{index}} sou {{count}}" + "setupCommandOf": "Kòmandman konfigirasyon {{index}} sou {{displayCount}}" }, "permissionCard": { "title": "Pèmisyon nesesè", @@ -2036,7 +2063,7 @@ "submissionFailed": "Soumèt la echwe. Tanpri eseye ankò.", "questionAnnouncement": "Ajant lan bezwen opinyon ou. Konpozitè a make pandan w ap reponn.", "permissionAnnouncement": "Ajant lan bezwen pèmisyon pou kontinye. Konpozitè a make pandan w ap deside.", - "positionHint": "(1 nan {{count}})", + "positionHint": "(1 nan {{displayCount}})", "movedPastPrompt": "Ajant lan te depase pwompt sa a. Kat sa a ap fèmen lè sesyon an kontinye.", "waitingForAnswer": "Ajant lan ap tann repons ou. Pandan kesyon sa a ouvè, mesaj ou bay ajant lan ap sispann.", "waitingForPermission": "Ajant lan ap tann pèmisyon. Pandan demann sa a ouvè, mesaj ou bay ajant lan ap sispann." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Akse Kamèra Dezaktive", "cameraAccessMessage": "Pèmèt akse kamèra nan Paramèt pou pran yon foto.", "couldNotOpenPhotoPicker": "Pa t ka louvri selektè foto a. Relance Kilo epi eseye ankò.", - "maxFilesAllowed": "Maksimòm {{count}} fichye pèmèt", + "maxFilesAllowed": "Maksimòm {{displayCount}} fichye pèmèt", "onlyAddingFiles": "Ap ajoute sèlman {{accepted}} nan {{total}} fichye (maks {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kout {{cost}}", "costSuffix": ", kout {{cost}}", "tokensWindowUnavailable": "Kontèks {{used}} token, fenèt pa disponib", - "tokensUsage": "Kontèks {{used}} nan {{window}} token, {{percentage}}% itilize", + "tokensUsage": "Kontèks {{used}} nan {{window}} token, {{percentage}} itilize", "title": "Itilizasyon kontèks", "used": "Itilize", "remaining": "Rete", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Itilizasyon an reflete dènye repons asistan ki fini a.", "tokenUsage": "Itilizasyon token", "cacheRate": "Pousantaj kach", - "modelsCount": "Modèl ({{count}})", + "modelsCount": "Modèl ({{displayCount}})", "tokenTotalsNote": "Total token yo kouvri sesyon sa a sèlman epi pa genyen token sesyon subajant/pitit.", "subagents": "Subajant", "subagentsDescription": "Kout rezidyèl soti nan sesyon pitit", @@ -2373,7 +2400,7 @@ "connectedCli": "Sou yon CLI konekte", "newSessionOn": "Nouvo sesyon sou {{name}}", "noMatchingSessions": "Pa gen sesyon ki matche.", - "onlyFirstFilesAttached": "Se sèlman premye {{count}} fichye yo ap tache.", + "onlyFirstFilesAttached": "Se sèlman premye {{displayCount}} fichye yo ap tache.", "staleMessage": "Pataj sa a pa disponib ankò.", "retryableMessage": "Pa t ka chaje sesyon ou yo.", "emptyMessage": "Pa gen sesyon ankò — kòmanse yon nouvo pou voye sa a.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass la sou Kont Apple sa a fè pati yon lòt kont Kilo. Siyen nan kont Kilo sa a pou jere li.", "alreadySubscribed": "Ou deja gen yon abònman Kilo Pass.", "purchaseUnavailable": "Acha Kilo Pass pa disponib kounye a.", - "tierCredits": "${{amount}} nan kredi", + "tierCredits": "{{amount}} nan kredi", "perMonth": "{{price}}/mw", "verifyPurchaseFailed": "Pa t ka verifye acha ou. Tcheke koneksyon ou epi eseye ankò.", "productsCouldNotLoad": "Pwodwi Kilo Pass pa t ka chaje soti nan App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Echèk pou louvri jesyon abònman App Store.", "kiloPassSetup": "Konfigirasyon Kilo Pass", "subscriptionHeaderDescription": "Yon abònman chak mwa ki ajoute kredi nan balans Kilo ou pou kouri sesyon kodaj AI nan Kilo App — Cloud Agents, sesyon aleka, ak chat KiloClaw.", - "tierDescription": "${{price}} kredi peye ajoute chak mwa pou itilizasyon Kilo App.", + "tierDescription": "{{price}} kredi peye ajoute chak mwa pou itilizasyon Kilo App.", "subscribe": "Abòne", "subscribeDescription": "Kredi chak mwa ak pwogrè bonis", "manage": "Jere", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass annatant", "statusCanceling": "Kilo Pass ap anile", "statusPastDue": "Kilo Pass an reta", - "monthlyCredits": "${{credits}} kredi chak mwa", + "monthlyCredits": "{{credits}} kredi chak mwa", "ends": "Fini {{date}}", "periodEnd": "fin peryòd", "managedOnGooglePlay": "Jere sou Google Play", diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index 618b0ff025..f2e1b36921 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -206,11 +206,11 @@ "loadingLines": "Betöltés: {{loaded}} / {{total}} sor…", "expandContext": "Kontextus kibontása", "expandMoreContext": "További kontextus kibontása", - "expandLines": "{{count}} sor kibontása ({{start}}–{{end}})", - "expandMoreLines": "További {{count}} sor kibontása ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} sor kontextus kibontása", + "expandLines": "{{displayCount}} sor kibontása ({{start}}–{{end}})", + "expandMoreLines": "További {{displayCount}} sor kibontása ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} sor kontextus kibontása", "expandAll": "Összes kibontása", - "expandAllLines": "Mind a {{count}} sor kibontása", + "expandAllLines": "Mind a {{displayCount}} sor kibontása", "loadingMoreFiles": "További fájlok betöltése…", "retryLoadingNextPage": "Következő oldal betöltésének újrapróbálása", "failedToLoadMoreFiles": "Nem sikerült betölteni további fájlokat — koppintson az újrapróbálkozáshoz", @@ -301,7 +301,7 @@ "closeReactions": "Reakciók bezárása", "reactionsTitle": "Reakciók", "addReaction": "Reakció hozzáadása", - "reactionPill": "{{emoji}} reakció, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakció, {{displayCount}} {{countLabel}}", "reaction_one": "reakció", "reaction": "reakció", "reaction_other": "reakció", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Ehhez a pull requesthez nincs ellenőrzési szál vagy beszélgetési megjegyzés.", "reviewFiles": "Fájlok ellenőrzése", "quotedDiffSnippet": "Idézett diff-részlet", - "moreLinesAbove": "… {{count}} további sor fent", + "moreLinesAbove": "… {{displayCount}} további sor fent", "termsAcceptRequired": "A hozzászóláshoz el kell fogadnia a Szolgáltatási feltételeket.", "termsOutdatedCopy": "A Szolgáltatási feltételek megváltoztak. Nyissa meg újra ezt a képernyőt a legújabb verzió elfogadásához.", "termsCheckRetryCopy": "Nem sikerült ellenőrizni a Szolgáltatási feltételeket. Ellenőrizze a kapcsolatot, és próbálja újra." @@ -395,11 +395,11 @@ "retryChecks": "Ellenőrzések újrapróbálása", "viewOnGitHub": "PR megtekintése a GitHubon", "noChecksReported": "Nincs jelentett ellenőrzés", - "passed": "{{count}} sikeres", - "failed": "{{count}} sikertelen", - "pending": "{{count}} függőben", - "skipped": "{{count}} kihagyva", - "checksCount": "{{count}} ellenőrzés", + "passed": "{{displayCount}} sikeres", + "failed": "{{displayCount}} sikertelen", + "pending": "{{displayCount}} függőben", + "skipped": "{{displayCount}} kihagyva", + "checksCount": "{{displayCount}} ellenőrzés", "checkDetails": "ellenőrzés részletei", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "függőben lévő megjegyzés", "pendingComment": "függőben lévő megjegyzés", "pendingComment_other": "függőben lévő megjegyzés", - "submitCountOfTotal": "{{freshCount}} / {{totalCount}} megjegyzés elküldése", + "submitCountOfTotal": "{{displayFreshCount}} / {{displayTotalCount}} megjegyzés elküldése", "submitReview": "Ellenőrzés elküldése", - "partialPostedMessage": "{{freshCount}} megjegyzés elküldve. {{staleCount}} megjegyzés régebbi commithoz kapcsolódik, és a sorban maradt." + "partialPostedMessage": "{{displayFreshCount}} megjegyzés elküldve. {{displayStaleCount}} megjegyzés régebbi commithoz kapcsolódik, és a sorban maradt." }, "reconnectNotice": { "title": "A GitHub-kapcsolat lejárt", @@ -580,7 +580,8 @@ "agents": "Ügynökök", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, fül, {{position}} a {{total}} közül" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Közelmúlt", "common": "Gyakori", "reactWith": "Reagálás: {{reaction}}", - "accessibility": "{{emoji}} reakció, {{count}}" + "accessibility": "{{emoji}} reakció, {{displayCount}}" }, "composer": { "replyingTo": "Válasz erre:", @@ -650,7 +651,7 @@ "imageUnavailable": "A kép nem érhető el", "openFailed": "Nem sikerült megnyitni a csatolmányt. Ellenőrizze a kapcsolatot, és próbálja újra.", "attachFailed": "Nem sikerült csatolni a fájlt", - "limit": "Legfeljebb {{count}} fájlt csatolhat.", + "limit": "Legfeljebb {{displayCount}} fájlt csatolhat.", "sizeRejection": "{{filename}} meghaladja a(z) {{limit}} csatolási korlátot.", "unreadable": "Nem sikerült beolvasni a(z) {{filename}} fájlt.", "pastedImage": "a beillesztett kép", @@ -734,17 +735,18 @@ "finalCommitTermEndsOn": "Az utolsó Commit-időszakod {{date}}-kor ér véget. Folytasd Standard csomaggal {{price}} áron, vagy a tárhely megszűnik.", "freeTrial": "Ingyenes próba", "hostingEnds": "A tárhely megszűnik", + "lessThanOneDay": "Kevesebb mint 1 nap", "renews": "Megújul", "standardMonthToMonth": "Standard havidíj", "standardStartsOn": "A Standard {{date}}-kor kezdődik {{price}} áron.", "yourStandardMonthlyPrice": "a Standard havidíj", "perMonth": "/hó", "earlybirdAccessUntil": "Korai madár hozzáférés {{date}}-ig", - "earlybirdEnding": "Korai madár vége: {{days}} nap van hátra", + "earlybirdEnding": "Korai madár vége: {{remaining}}", "paymentPastDue": "A fizetés lejárt. Kérjük, frissítsd a fizetési módodat.", "subscriptionCancels": "Az előfizetés {{date}}-kor törlődik", - "trialDaysRemaining": "Próba: {{days}} nap van hátra", - "trialEndingSoon": "Próba hamarosan vége: {{days}}" + "trialDaysRemaining": "Próba: {{remaining}} van hátra", + "trialEndingSoon": "Próba hamarosan vége: {{remaining}}" }, "changelog": { "title": "Mi újság", @@ -996,7 +998,7 @@ "stalledTitle": "Valami elakadt", "stalledBody": "Nem sikerült befejeznünk a(z) {{name}} beállítását. Próbáld újra, vagy írj a hi@kilo.ai címre, ha ez ismétlődik.", "timeoutTitle": "Tovább tart a vártnál", - "timeoutBody": "A(z) {{name}} beállítása a szokásosnál tovább tart (több mint {{minutes}} perc).", + "timeoutBody": "A(z) {{name}} beállítása a szokásosnál tovább tart (több mint {{displayMinutes}} perc).", "continueInBackground": "Folytatás a háttérben", "settingUp": "{{name}} beállítása", "finishingSetup": "Beállítás befejezése", @@ -1287,7 +1289,7 @@ "mergeGate": "Merge-átjáró", "repositories": "Tárhelyek", "allRepositories": "Összes tárhely", - "nSelected": "{{count}} kijelölve", + "nSelected": "{{displayCount}} kijelölve", "reviewMemory": "Áttekintési memória", "proposedReviewMdGuidance": "Javasolt REVIEW.md útmutató" }, @@ -1391,14 +1393,14 @@ "analyzed": "Elemezve", "exploitabilityReasoning": "Kihasználhatósági indoklás", "suggestedFix": "Javasolt javítás", - "whereFound": "Ahol ez megtalálható volt ({{count}})", + "whereFound": "Ahol ez megtalálható volt ({{displayCount}})", "fullReport": "Teljes generált jelentés", "unknown": "Ismeretlen", "yes": "Igen", "no": "Nem" }, "dashboard": { - "findingsCount": "{{count}} észlelés", + "findingsCount": "{{displayCount}} észlelés", "notMeasured": "Nincs mérve", "actFirst": "Először lépjen", "slaPosture": "SLA hozzáállás", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Adattár műveleti terv", "noOpenFindings": "Nincs nyitott észlelés, amely figyelmet igényelne", "deadlineToday": "A határidő ma lejárt", - "daysOverdue": "{{count}} napja késésben", + "daysOverdue": "{{displayCount}} napja késésben", "withinDeadline": "Határidőn belül", "criticalOverdue": "Kritikus késés", "highOverdue": "Magas késés", @@ -1435,6 +1437,27 @@ "syncQueued": "Szinkronizálás sorban", "syncStatusUnavailable": "A szinkronizálási állapot nem érhető el" }, + "dashboardMetrics": { + "openFindings": "Nyitott észlelések", + "openFindingsDetail": "{{critical}} kritikus, {{high}} magas", + "confirmedExploitable": "Megerősítetten kihasználható", + "confirmedExploitableDetail": "A projekt kockázatát az elemzés megerősítette", + "needsReview": "Az Ön felülvizsgálatát igényli", + "needsReviewDetail": "Emberi döntés szükséges", + "analysisIncomplete": "Az elemzés nem teljes", + "analysisIncompleteDetail": "A projekt kockázata még ismeretlen", + "slaCompliance": "SLA-megfelelés", + "notMeasured": "Nincs mérve", + "withinDeadlineDetail": "{{total}} közül {{within}} határidőn belül", + "noDeadlineData": "Még egyetlen észlelésnek sincs SLA-határideje", + "deadlinePassed": "Határidő lejárt", + "deadlinePassedDetail": "{{critical}} kritikus, {{high}} magas", + "dueThisWeek": "Esedékes ezen a héten", + "dueThisWeekDetail": "{{exploitable}} megerősítetten kihasználható", + "noDeadline": "Nincs határidő", + "reviewSlaAssignment": "SLA-hozzárendelés felülvizsgálata", + "allOpenFindingsTracked": "Minden nyitott észlelés nyomon követve" + }, "dismiss": { "title": "Észlelés elutasítása", "submit": "Észlelés elutasítása", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} elemzés", "automation": "Automatizálás", "automationAllOff": "Mind kikapcsolva", - "automationCount": "{{count}} a 3-ból engedélyezve", + "automationCount": "{{displayCount}} a 3-ból engedélyezve", "notifications": "Értesítések", - "notificationsCount": "{{count}} a 2-ből engedélyezve", + "notificationsCount": "{{displayCount}} a 2-ből engedélyezve", "slaPolicy": "SLA szabályzat", "disabledNoManage": "A Security Agent le van tiltva. Csak szervezeti tulajdonosok és számlázási vezetők kapcsolhatják be.", "disabledNoRepo": "A Security Agent engedélyezése előtt válasszon ki legalább egy adattárat.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Pull request megnyitása{{number}}", "openDraftPullRequest": "Piszkozat pull request megnyitása{{number}}", "progress": "Előrehaladás", - "attemptHistory": "Kísérletelőzmények ({{count}})", + "attemptHistory": "Kísérletelőzmények ({{displayCount}})", "attemptNumber": "{{number}}. kísérlet", "startedBy": "Indította", "model": "Modell", @@ -1855,9 +1878,9 @@ "toolTask": "feladat", "readTodos": "Teendők olvasása", "updateTodos": "Teendők frissítése", - "linesBadge": "{{count}} sor", - "filesBadge": "{{count}} fájl", - "matchesBadge": "{{count}} találat" + "linesBadge": "{{displayCount}} sor", + "filesBadge": "{{displayCount}} fájl", + "matchesBadge": "{{displayCount}} találat" }, "readToolMarkdown": { "linesTruncated": "sorok {{start}}–{{end}} (csonkolva)", @@ -1893,6 +1916,10 @@ "modeSelector": { "accessibility": "Mód: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Kód", "plan": "Terv", @@ -1999,7 +2026,7 @@ "preparationComplete": "Az előkészítés befejeződött", "preparationFailed": "Az előkészítés meghiúsult", "setupCommand": "Beállítási parancs {{index}}", - "setupCommandOf": "Beállítási parancs {{index}} / {{count}}" + "setupCommandOf": "Beállítási parancs {{index}} / {{displayCount}}" }, "permissionCard": { "title": "Engedély szükséges", @@ -2036,7 +2063,7 @@ "submissionFailed": "Az elküldés nem sikerült. Próbáld újra.", "questionAnnouncement": "Az ügynöknek szüksége van a válaszodra. A szerkesztő szünetel, amíg válaszolsz.", "permissionAnnouncement": "Az ügynöknek engedélyre van szüksége a folytatáshoz. A szerkesztő szünetel, amíg döntesz.", - "positionHint": "(1 a(z) {{count}} közül)", + "positionHint": "(1 a(z) {{displayCount}} közül)", "movedPastPrompt": "Az ügynök túllépett ezen a kérésen. Ez a kártya bezárul, amikor a munkamenet folytatódik.", "waitingForAnswer": "Az ügynök a válaszodra vár. Amíg ez a kérdés nyitva van, az ügynöknek küldött üzeneted szünetel.", "waitingForPermission": "Az ügynök engedélyre vár. Amíg ez a kérés nyitva van, az ügynöknek küldött üzeneted szünetel." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kamera-hozzáférés letiltva", "cameraAccessMessage": "A fénykép készítéséhez engedélyezd a kamera-hozzáférést a Beállításokban.", "couldNotOpenPhotoPicker": "A fotóválasztó nem nyitható meg. Indítsd újra a Kilo-t és próbáld újra.", - "maxFilesAllowed": "Legfeljebb {{count}} fájl engedélyezett", + "maxFilesAllowed": "Legfeljebb {{displayCount}} fájl engedélyezett", "onlyAddingFiles": "Csak {{accepted}} fájl hozzáadása a(z) {{total}} közül (max. {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "költség {{cost}}", "costSuffix": ", költség {{cost}}", "tokensWindowUnavailable": "Kontextus {{used}} token, ablak nem elérhető", - "tokensUsage": "Kontextus {{used}} a(z) {{window}} tokenből, {{percentage}}% felhasználva", + "tokensUsage": "Kontextus {{used}} a(z) {{window}} tokenből, {{percentage}} felhasználva", "title": "Kontextus használat", "used": "Felhasználva", "remaining": "Fennmaradó", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "A használat a legutóbbi befejezett asszisztens választ tükrözi.", "tokenUsage": "Tokenhasználat", "cacheRate": "Gyorsítótár-arány", - "modelsCount": "Modellek ({{count}})", + "modelsCount": "Modellek ({{displayCount}})", "tokenTotalsNote": "A tokenösszesítők csak erre a munkamenetre vonatkoznak, és nem tartalmazzák az alügynök/gyermekmunkamenet tokenjeit.", "subagents": "Alügynökök", "subagentsDescription": "A gyermekmunkamenetek maradékköltsége", @@ -2373,7 +2400,7 @@ "connectedCli": "Csatlakoztatott CLI-n", "newSessionOn": "Új munkamenet ezen: {{name}}", "noMatchingSessions": "Nincs egyező munkamenet.", - "onlyFirstFilesAttached": "Csak az első {{count}} fájl lesz csatolva.", + "onlyFirstFilesAttached": "Csak az első {{displayCount}} fájl lesz csatolva.", "staleMessage": "Ez a megosztás már nem érhető el.", "retryableMessage": "A munkameneteid nem tölthetők be.", "emptyMessage": "Még nincs munkamenet — indíts egy újat ennek elküldéséhez.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Az ezen Apple-fiókon lévő Kilo Pass egy másik Kilo-fiókhoz tartozik. Jelentkezz be abba a Kilo-fiókba a kezeléséhez.", "alreadySubscribed": "Már van Kilo Pass előfizetésed.", "purchaseUnavailable": "A Kilo Pass vásárlás jelenleg nem érhető el.", - "tierCredits": "${{amount}} kredit", + "tierCredits": "{{amount}} kredit", "perMonth": "{{price}}/hó", "verifyPurchaseFailed": "A vásárlásod ellenőrzése nem sikerült. Ellenőrizd a kapcsolatot, és próbáld újra.", "productsCouldNotLoad": "A Kilo Pass termékek nem tölthetők be az App Store-ból.", @@ -2417,7 +2444,7 @@ "manageFailed": "Az App Store előfizetés-kezelés megnyitása nem sikerült.", "kiloPassSetup": "Kilo Pass beállítás", "subscriptionHeaderDescription": "Havi előfizetés, amely krediteket ad a Kilo egyenlegedhez AI kódolási munkamenetek futtatásához a Kilo alkalmazásban — Cloud Agents, távoli munkamenetek és KiloClaw csevegések.", - "tierDescription": "${{price}} fizetett kredit havonta a Kilo alkalmazás használatához.", + "tierDescription": "{{price}} fizetett kredit havonta a Kilo alkalmazás használatához.", "subscribe": "Feliratkozás", "subscribeDescription": "Havi kreditek bónusz haladással", "manage": "Kezelés", @@ -2425,7 +2452,7 @@ "statusPending": "A Kilo Pass függőben", "statusCanceling": "A Kilo Pass törlés alatt", "statusPastDue": "A Kilo Pass lejárt", - "monthlyCredits": "${{credits}} havi kredit", + "monthlyCredits": "{{credits}} havi kredit", "ends": "Vége: {{date}}", "periodEnd": "időszak vége", "managedOnGooglePlay": "A Google Play felügyeli", diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index a9e3a909e1..3ba89b60f3 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -206,11 +206,11 @@ "loadingLines": "Բեռնվում է {{loaded}}-ը {{total}} տողերից…", "expandContext": "Ընդլայնել համատեքստը", "expandMoreContext": "Ընդլայնել ավելի շատ համատեքստ", - "expandLines": "Ընդլայնել {{count}} տող ({{start}}–{{end}})", - "expandMoreLines": "Ընդլայնել ևս {{count}} տող ({{start}}–{{end}})", - "expandLinesOfContext": "Ընդլայնել {{count}} տող համատեքստ", + "expandLines": "Ընդլայնել {{displayCount}} տող ({{start}}–{{end}})", + "expandMoreLines": "Ընդլայնել ևս {{displayCount}} տող ({{start}}–{{end}})", + "expandLinesOfContext": "Ընդլայնել {{displayCount}} տող համատեքստ", "expandAll": "Ընդլայնել բոլորը", - "expandAllLines": "Ընդլայնել բոլոր {{count}} տողերը", + "expandAllLines": "Ընդլայնել բոլոր {{displayCount}} տողերը", "loadingMoreFiles": "Բեռնվում են ավելի շատ ֆայլեր…", "retryLoadingNextPage": "Կրկին փորձել բեռնել հաջորդ էջը", "failedToLoadMoreFiles": "Չհաջողվեց բեռնել ավելի շատ ֆայլեր — հպեք՝ կրկին փորձելու համար", @@ -301,7 +301,7 @@ "closeReactions": "Փակել ռեակցիաները", "reactionsTitle": "Ռեակցիաներ", "addReaction": "Ավելացնել ռեակցիա", - "reactionPill": "{{emoji}} ռեակցիա, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ռեակցիա, {{displayCount}} {{countLabel}}", "reaction_one": "ռեակցիա", "reaction": "ռեակցիա", "reaction_other": "ռեակցիա", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Այս pull request-ում վերանայման թեմաներ կամ զրույցի մեկնաբանություններ չկան:", "reviewFiles": "Վերանայել ֆայլերը", "quotedDiffSnippet": "Մեջբերված diff հատված", - "moreLinesAbove": "… {{count}} ավելի տող վերևում", + "moreLinesAbove": "… {{displayCount}} ավելի տող վերևում", "termsAcceptRequired": "Գրառելու համար դուք պետք է ընդունեք Ծառայության պայմանները:", "termsOutdatedCopy": "Ծառայության պայմանները փոխվել են: Վերաբացեք այս էկրանը՝ վերջին տարբերակն ընդունելու համար:", "termsCheckRetryCopy": "Չհաջողվեց ստուգել Ծառայության պայմանները: Ստուգեք ձեր կապը և կրկին փորձեք:" @@ -395,11 +395,11 @@ "retryChecks": "Կրկին փորձել ստուգումները", "viewOnGitHub": "Դիտել PR-ը GitHub-ում", "noChecksReported": "Ստուգումներ չեն հաղորդվել", - "passed": "{{count}} անցել է", - "failed": "{{count}} ձախողվել է", - "pending": "{{count}} սպասում է", - "skipped": "{{count}} բաց թողնված", - "checksCount": "{{count}} ստուգում", + "passed": "{{displayCount}} անցել է", + "failed": "{{displayCount}} ձախողվել է", + "pending": "{{displayCount}} սպասում է", + "skipped": "{{displayCount}} բաց թողնված", + "checksCount": "{{displayCount}} ստուգում", "checkDetails": "ստուգման մանրամասներ", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "սպասվող մեկնաբանություն", "pendingComment": "սպասվող մեկնաբանություններ", "pendingComment_other": "սպասվող մեկնաբանություններ", - "submitCountOfTotal": "Ուղարկել {{freshCount}}-ը {{totalCount}} մեկնաբանություններից", + "submitCountOfTotal": "Ուղարկել {{displayFreshCount}}-ը {{displayTotalCount}} մեկնաբանություններից", "submitReview": "Ուղարկել վերանայումը", - "partialPostedMessage": "Տեղադրված է {{freshCount}} մեկնաբանություն: {{staleCount}} մեկնաբանություն վերաբերում է ավելի հին commit-ին և մնացել է ձեր հերթում:" + "partialPostedMessage": "Տեղադրված է {{displayFreshCount}} մեկնաբանություն: {{displayStaleCount}} մեկնաբանություն վերաբերում է ավելի հին commit-ին և մնացել է ձեր հերթում:" }, "reconnectNotice": { "title": "GitHub կապը ժամկետանց է", @@ -580,7 +580,8 @@ "agents": "Գործակալներ", "profile": "Պրոֆիլ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ներդիր, {{position}} / {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Վերջին", "common": "Հաճախակի", "reactWith": "Արձագանքել {{reaction}}-ով", - "accessibility": "{{emoji}} ռեակցիա, {{count}}" + "accessibility": "{{emoji}} ռեակցիա, {{displayCount}}" }, "composer": { "replyingTo": "Պատասխանում եք", @@ -650,7 +651,7 @@ "imageUnavailable": "Պատկերը հասանելի չէ", "openFailed": "Չհաջողվեց բացել կցորդը: Ստուգեք ձեր կապը և կրկին փորձեք:", "attachFailed": "Չհաջողվեց կցել ֆայլը", - "limit": "Կարող եք կցել մինչև {{count}} ֆայլ:", + "limit": "Կարող եք կցել մինչև {{displayCount}} ֆայլ:", "sizeRejection": "{{filename}}-ը գերազանցում է {{limit}} կցորդի սահմանը:", "unreadable": "Չհաջողվեց կարդալ {{filename}}-ը:", "pastedImage": "տեղադրված պատկերը", @@ -734,17 +735,18 @@ "finalCommitTermEndsOn": "Ձեր վերջնական Commit ժամկետն ավարտվում է {{date}}-ին: Շարունակեք Standard-ով {{price}}-ով, կամ հոսթինգն ավարտվում է:", "freeTrial": "Անվճար փորձարկում", "hostingEnds": "Հոսթինգն ավարտվում է", + "lessThanOneDay": "Ավելի քիչ, քան 1 օր", "renews": "Երկարաձգվում է", "standardMonthToMonth": "Ստանդարտ ամսական", "standardStartsOn": "Ստանդարտը սկսվում է {{date}}-ին {{price}}-ով:", "yourStandardMonthlyPrice": "ձեր ստանդարտ ամսական գինը", "perMonth": "/ամիս", "earlybirdAccessUntil": "Վաղ թռչնի հասանելիություն մինչև {{date}}", - "earlybirdEnding": "Վաղ թռչնի ավարտը՝ մնացել է {{days}} օր", + "earlybirdEnding": "Վաղ թռչնի ավարտը՝ {{remaining}}", "paymentPastDue": "Վճարումն ուշացած է: Խնդրում ենք թարմացնել վճարման եղանակը:", "subscriptionCancels": "Բաժանորդագրությունը չեղարկվում է {{date}}-ին", - "trialDaysRemaining": "Փորձարկում՝ մնացել է {{days}} օր", - "trialEndingSoon": "Փորձարկումը շուտով կավարտվի՝ {{days}}" + "trialDaysRemaining": "Փորձարկում՝ մնացել է {{remaining}}", + "trialEndingSoon": "Փորձարկումը շուտով կավարտվի՝ {{remaining}}" }, "changelog": { "title": "Ի՞նչ նորություն կա", @@ -996,7 +998,7 @@ "stalledTitle": "Ինչ-որ բան կանգ առավ", "stalledBody": "Մենք չկարողացանք ավարտել {{name}}-ի կարգավորումը: Փորձեք կրկին, կամ գրեք hi@kilo.ai, եթե սա շարունակվում է:", "timeoutTitle": "Ավելի երկար է տևում, քան սպասվում էր", - "timeoutBody": "{{name}}-ի կարգավորումն ավելի երկար է տևում, քան սովորաբար (ավելի քան {{minutes}} րոպե):", + "timeoutBody": "{{name}}-ի կարգավորումն ավելի երկար է տևում, քան սովորաբար (ավելի քան {{displayMinutes}} րոպե):", "continueInBackground": "Շարունակել հետին պլանում", "settingUp": "Կարգավորվում է {{name}}", "finishingSetup": "Ավարտվում է կարգավորումը", @@ -1287,7 +1289,7 @@ "mergeGate": "Միաձուլման դարպաս", "repositories": "Պահոցներ", "allRepositories": "Բոլոր պահոցները", - "nSelected": "Ընտրված է {{count}}", + "nSelected": "Ընտրված է {{displayCount}}", "reviewMemory": "Ստուգման հիշողություն", "proposedReviewMdGuidance": "Առաջարկվող REVIEW.md ուղեցույց" }, @@ -1391,14 +1393,14 @@ "analyzed": "Վերլուծված", "exploitabilityReasoning": "Շահագործելիության հիմնավորում", "suggestedFix": "Առաջարկվող ուղղում", - "whereFound": "Որտեղ է սա գտնվել ({{count}})", + "whereFound": "Որտեղ է սա գտնվել ({{displayCount}})", "fullReport": "Ամբողջական ստեղծված հաշվետվություն", "unknown": "Անհայտ", "yes": "Այո", "no": "Ոչ" }, "dashboard": { - "findingsCount": "{{count}} գտածո", + "findingsCount": "{{displayCount}} գտածո", "notMeasured": "Չչափված", "actFirst": "Նախ գործել", "slaPosture": "SLA կարգավիճակ", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Պահոցի գործողությունների ծրագիր", "noOpenFindings": "Բաց գտածոներ չկան, որ ուշադրություն պահանջեն", "deadlineToday": "Ժամկետը լրացել է այսօր", - "daysOverdue": "{{count}} օր ուշացած", + "daysOverdue": "{{displayCount}} օր ուշացած", "withinDeadline": "Ժամկետի սահմանում", "criticalOverdue": "Կրիտիկական ուշացած", "highOverdue": "Բարձր ուշացած", @@ -1435,6 +1437,27 @@ "syncQueued": "Համաժամեցումը հերթագրված է", "syncStatusUnavailable": "Համաժամեցման կարգավիճակն անհասանելի է" }, + "dashboardMetrics": { + "openFindings": "Բաց գտածոներ", + "openFindingsDetail": "{{critical}} կրիտիկական, {{high}} բարձր", + "confirmedExploitable": "Հաստատված շահագործելի", + "confirmedExploitableDetail": "Ծրագրի ռիսկը հաստատվել է վերլուծությամբ", + "needsReview": "Ձեր վերանայման կարիք ունի", + "needsReviewDetail": "Պահանջվում է մարդկային որոշում", + "analysisIncomplete": "Վերլուծությունն ավարտված չէ", + "analysisIncompleteDetail": "Ծրագրի ռիսկը դեռ անհայտ է", + "slaCompliance": "SLA համապատասխանություն", + "notMeasured": "Չչափված", + "withinDeadlineDetail": "Ժամկետի սահմանում՝ {{within}} / {{total}}", + "noDeadlineData": "Ոչ մի գտածո դեռ SLA ժամկետ չունի", + "deadlinePassed": "Ժամկետը լրացել է", + "deadlinePassedDetail": "{{critical}} կրիտիկական, {{high}} բարձր", + "dueThisWeek": "Պետք է կատարվի այս շաբաթ", + "dueThisWeekDetail": "{{exploitable}} հաստատված շահագործելի", + "noDeadline": "Ժամկետ չկա", + "reviewSlaAssignment": "Վերանայել SLA նշանակումը", + "allOpenFindingsTracked": "Բոլոր բաց գտածոներն են հետևվում" + }, "dismiss": { "title": "Մերժել գտածոն", "submit": "Մերժել գտածոն", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} վերլուծություն", "automation": "Ավտոմատացում", "automationAllOff": "Բոլորը անջատված", - "automationCount": "{{count}}-ը 3-ից միացված է", + "automationCount": "{{displayCount}}-ը 3-ից միացված է", "notifications": "Ծանուցումներ", - "notificationsCount": "{{count}}-ը 2-ից միացված է", + "notificationsCount": "{{displayCount}}-ը 2-ից միացված է", "slaPolicy": "SLA քաղաքականություն", "disabledNoManage": "Անվտանգության գործակալն անջատված է։ Միայն կազմակերպության սեփականատերերը և վճարման կառավարիչները կարող են այն միացնել։", "disabledNoRepo": "Անվտանգության գործակալը միացնելուց առաջ ընտրեք առնվազն մեկ պահոց։", @@ -1524,7 +1547,7 @@ "openPullRequest": "Բացել pull request{{number}}", "openDraftPullRequest": "Բացել սևագիր pull request{{number}}", "progress": "Ընթացք", - "attemptHistory": "Փորձերի պատմություն ({{count}})", + "attemptHistory": "Փորձերի պատմություն ({{displayCount}})", "attemptNumber": "Փորձ #{{number}}", "startedBy": "Սկսել է", "model": "Մոդել", @@ -1855,9 +1878,9 @@ "toolTask": "առաջադրանք", "readTodos": "Կարդալ անելիքները", "updateTodos": "Թարմացնել անելիքները", - "linesBadge": "{{count}} տող", - "filesBadge": "{{count}} ֆայլ", - "matchesBadge": "{{count}} համընկնում" + "linesBadge": "{{displayCount}} տող", + "filesBadge": "{{displayCount}} ֆայլ", + "matchesBadge": "{{displayCount}} համընկնում" }, "readToolMarkdown": { "linesTruncated": "տող {{start}}–{{end}} (կրճատված)", @@ -1893,6 +1916,10 @@ "modeSelector": { "accessibility": "Ռեժիմ՝ {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Կոդ", "plan": "Պլան", @@ -1999,7 +2026,7 @@ "preparationComplete": "Նախապատրաստումն ավարտված է", "preparationFailed": "Նախապատրաստումը ձախողվեց", "setupCommand": "Կարգավորման հրաման {{index}}", - "setupCommandOf": "Կարգավորման հրաման {{index}}՝ {{count}}-ից" + "setupCommandOf": "Կարգավորման հրաման {{index}}՝ {{displayCount}}-ից" }, "permissionCard": { "title": "Թույլտվություն է պահանջվում", @@ -2036,7 +2063,7 @@ "submissionFailed": "Ներկայացումը ձախողվեց: Խնդրում ենք նորից փորձել:", "questionAnnouncement": "Գործակալին անհրաժեշտ է ձեր պատասխանը: Մուտքագրման դաշտը դադարեցված է, քանի դեռ պատասխանում եք:", "permissionAnnouncement": "Գործակալին անհրաժեշտ է թույլտվություն՝ շարունակելու համար: Մուտքագրման դաշտը դադարեցված է, քանի դեռ որոշում եք կայացնում:", - "positionHint": "(1-ը {{count}}-ից)", + "positionHint": "(1-ը {{displayCount}}-ից)", "movedPastPrompt": "Գործակալն անցել է այս հարցից: Այս քարտը կփակվի, երբ նիստը շարունակվի:", "waitingForAnswer": "Գործակալը սպասում է ձեր պատասխանին: Քանի դեռ այս հարցը բաց է, ձեր հաղորդագրությունը գործակալին դադարեցված է:", "waitingForPermission": "Գործակալը սպասում է թույլտվության: Քանի դեռ այս հարցումը բաց է, ձեր հաղորդագրությունը գործակալին դադարեցված է:" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Տեսախցիկի հասանելիությունն անջատված է", "cameraAccessMessage": "Թույլատրեք տեսախցիկի հասանելիությունը Կարգավորումներում՝ լուսանկար անելու համար:", "couldNotOpenPhotoPicker": "Հնարավոր չեղավ բացել լուսանկարի ընտրիչը: Վերագործարկեք Kilo-ն և նորից փորձեք:", - "maxFilesAllowed": "Առավելագույնը {{count}} ֆայլ թույլատրված", + "maxFilesAllowed": "Առավելագույնը {{displayCount}} ֆայլ թույլատրված", "onlyAddingFiles": "Ավելացվում է միայն {{accepted}}-ը {{total}} ֆայլերից (առավելագույնը {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "արժեքը {{cost}}", "costSuffix": ", արժեքը {{cost}}", "tokensWindowUnavailable": "Կոնտեքստ {{used}} նշան, պատուհանը հասանելի չէ", - "tokensUsage": "Կոնտեքստ {{used}}-ը {{window}} նշաններից, {{percentage}}%-ն օգտագործված", + "tokensUsage": "Կոնտեքստ {{used}}-ը {{window}} նշաններից, {{percentage}}-ն օգտագործված", "title": "Կոնտեքստի օգտագործում", "used": "Օգտագործված", "remaining": "Մնացած", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Օգտագործումն արտացոլում է օգնականի վերջին ավարտված պատասխանը:", "tokenUsage": "Նշանների օգտագործում", "cacheRate": "Քեշի դրույք", - "modelsCount": "Մոդելներ ({{count}})", + "modelsCount": "Մոդելներ ({{displayCount}})", "tokenTotalsNote": "Նշանների ընդհանուր քանակը վերաբերում է միայն այս նիստին և չի ներառում ենթագործակալի/ենթանիստի նշանները:", "subagents": "Ենթագործակալներ", "subagentsDescription": "Մնացորդային ծախս ենթանիստերից", @@ -2373,7 +2400,7 @@ "connectedCli": "Միացված CLI-ում", "newSessionOn": "Նոր նիստ {{name}}-ում", "noMatchingSessions": "Համապատասխան նիստեր չկան:", - "onlyFirstFilesAttached": "Միայն առաջին {{count}} ֆայլերը կցված կլինեն:", + "onlyFirstFilesAttached": "Միայն առաջին {{displayCount}} ֆայլերը կցված կլինեն:", "staleMessage": "Այս տարածումն այլևս հասանելի չէ:", "retryableMessage": "Հնարավոր չեղավ բեռնել ձեր նիստերը:", "emptyMessage": "Նիստեր դեռ չկան — սկսեք նորը՝ սա ուղարկելու համար:", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Այս Apple Account-ի Kilo Pass-ը պատկանում է մեկ այլ Kilo հաշվին: Մուտք գործեք այդ Kilo հաշիվ՝ այն կառավարելու համար:", "alreadySubscribed": "Դուք արդեն ունեք Kilo Pass բաժանորդագրություն:", "purchaseUnavailable": "Kilo Pass գնումը հասանելի չէ հենց հիմա:", - "tierCredits": "${{amount}} կրեդիտներ", + "tierCredits": "{{amount}} կրեդիտներ", "perMonth": "{{price}}/ամիս", "verifyPurchaseFailed": "Հնարավոր չեղավ հաստատել ձեր գնումը: Ստուգեք ձեր կապը և նորից փորձեք:", "productsCouldNotLoad": "Kilo Pass ապրանքները չհաջողվեց բեռնել App Store-ից:", @@ -2417,7 +2444,7 @@ "manageFailed": "Չհաջողվեց բացել App Store բաժանորդագրության կառավարումը:", "kiloPassSetup": "Kilo Pass կարգավորում", "subscriptionHeaderDescription": "Ամսական բաժանորդագրություն, որը կրեդիտներ է ավելացնում ձեր Kilo մնացորդին՝ Kilo App-ում AI ծրագրավորման նիստեր վարելու համար — Cloud Agents, հեռակառավարվող նիստեր և KiloClaw զրույցներ:", - "tierDescription": "${{price}} վճարված կրեդիտներ՝ ամսական ավելացված Kilo App օգտագործման համար:", + "tierDescription": "{{price}} վճարված կրեդիտներ՝ ամսական ավելացված Kilo App օգտագործման համար:", "subscribe": "Բաժանորդագրվել", "subscribeDescription": "Ամսական կրեդիտներ բոնուսային առաջընթացով", "manage": "Կառավարել", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass-ը սպասում է", "statusCanceling": "Kilo Pass-ը չեղարկվում է", "statusPastDue": "Kilo Pass-ի ժամկետն անցել է", - "monthlyCredits": "${{credits}} ամսական կրեդիտներ", + "monthlyCredits": "{{credits}} ամսական կրեդիտներ", "ends": "Ավարտվում է {{date}}-ին", "periodEnd": "ժամանակաշրջանի ավարտ", "managedOnGooglePlay": "Կառավարվում է Google Play-ում", diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index 3b93d740e4..b76b60eba3 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -201,7 +201,8 @@ "agents": "Agen", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} dari {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Terbaru", "common": "Umum", "reactWith": "Bereaksi dengan {{reaction}}", - "accessibility": "Reaksi {{emoji}}, {{count}}" + "accessibility": "Reaksi {{emoji}}, {{displayCount}}" }, "composer": { "replyingTo": "Membalas ke", @@ -271,7 +272,7 @@ "imageUnavailable": "Gambar tidak tersedia", "openFailed": "Tidak dapat membuka lampiran. Periksa koneksi Anda dan coba lagi.", "attachFailed": "Gagal melampirkan file", - "limit": "Anda dapat melampirkan hingga {{count}} file.", + "limit": "Anda dapat melampirkan hingga {{displayCount}} file.", "sizeRejection": "{{filename}} melebihi batas lampiran {{limit}}.", "unreadable": "Tidak dapat membaca {{filename}}.", "pastedImage": "gambar yang ditempel", @@ -355,17 +356,18 @@ "finalCommitTermEndsOn": "Periode Commit terakhir Anda berakhir pada {{date}}. Lanjutkan sebagai Standard seharga {{price}}, atau hosting berakhir.", "freeTrial": "Uji Coba Gratis", "hostingEnds": "Hosting berakhir", + "lessThanOneDay": "Kurang dari 1 hari", "renews": "Diperbarui", "standardMonthToMonth": "Standard bulanan", "standardStartsOn": "Standard dimulai pada {{date}} seharga {{price}}.", "yourStandardMonthlyPrice": "harga bulanan Standard Anda", "perMonth": "/bulan", "earlybirdAccessUntil": "Akses Earlybird hingga {{date}}", - "earlybirdEnding": "Earlybird berakhir: {{days}} hari tersisa", + "earlybirdEnding": "Earlybird berakhir: {{remaining}}", "paymentPastDue": "Pembayaran jatuh tempo. Perbarui metode pembayaran Anda.", "subscriptionCancels": "Langganan dibatalkan {{date}}", - "trialDaysRemaining": "Uji coba: {{days}} hari tersisa", - "trialEndingSoon": "Uji coba segera berakhir: {{days}}" + "trialDaysRemaining": "Uji coba: {{remaining}} tersisa", + "trialEndingSoon": "Uji coba segera berakhir: {{remaining}}" }, "changelog": { "title": "Yang Baru", @@ -665,7 +667,7 @@ "startingSandbox": "Memulai sandbox", "stoppedBody": "Instans {{name}} berhenti secara tidak terduga selama penyiapan.", "stoppedTitle": "Penyiapan terhenti", - "timeoutBody": "Penyiapan untuk {{name}} memakan waktu lebih lama dari biasanya (lebih dari {{minutes}} menit).", + "timeoutBody": "Penyiapan untuk {{name}} memakan waktu lebih lama dari biasanya (lebih dari {{displayMinutes}} menit).", "timeoutTitle": "Lebih lama dari yang diharapkan" }, "unavailableDescription": "Langganan KiloClaw aktif diperlukan untuk menyediakan instans. Instans dan langganan yang ada tetap berjalan seperti biasa.", @@ -912,7 +914,7 @@ "focusAreas": "Area fokus", "mergeGate": "Gerbang gabung", "model": "Model", - "nSelected": "{{count}} dipilih", + "nSelected": "{{displayCount}} dipilih", "proposedReviewMdGuidance": "Panduan REVIEW.md yang diusulkan", "repositories": "Repositori", "reviewMemory": "Memori tinjauan", @@ -981,7 +983,7 @@ "triageReasoning": "Penalaran triase", "unknown": "Tidak diketahui", "watchInCloudAgent": "Tonton di Cloud Agent", - "whereFound": "Tempat ini ditemukan ({{count}})", + "whereFound": "Tempat ini ditemukan ({{displayCount}})", "yes": "Ya" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "Terkonfirmasi dapat dieksploitasi", "couldNotLoad": "Tidak dapat memuat data dasbor", "criticalOverdue": "Kritis terlambat", - "daysOverdue": "{{count}} hari terlambat", + "daysOverdue": "{{displayCount}} hari terlambat", "deadlineToday": "Tenggat tercapai hari ini", "filterByRepository": "Filter menurut repositori", "findings": "Temuan", - "findingsCount": "{{count}} temuan", + "findingsCount": "{{displayCount}} temuan", "highOverdue": "Tinggi terlambat", "lastSynced": "Terakhir disinkronkan {{time}}", "manageRepositories": "Kelola repositori", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "Status sinkronisasi tidak tersedia", "withinDeadline": "Dalam tenggat" }, + "dashboardMetrics": { + "openFindings": "Temuan terbuka", + "openFindingsDetail": "{{critical}} kritis, {{high}} tinggi", + "confirmedExploitable": "Terkonfirmasi dapat dieksploitasi", + "confirmedExploitableDetail": "Risiko proyek terkonfirmasi oleh analisis", + "needsReview": "Perlu tinjauan Anda", + "needsReviewDetail": "Keputusan manusia diperlukan", + "analysisIncomplete": "Analisis belum selesai", + "analysisIncompleteDetail": "Risiko proyek masih belum diketahui", + "slaCompliance": "Kepatuhan SLA", + "notMeasured": "Tidak diukur", + "withinDeadlineDetail": "{{within}} dari {{total}} dalam tenggat", + "noDeadlineData": "Belum ada temuan yang memiliki tenggat SLA", + "deadlinePassed": "Tenggat terlewati", + "deadlinePassedDetail": "{{critical}} kritis, {{high}} tinggi", + "dueThisWeek": "Jatuh tempo minggu ini", + "dueThisWeekDetail": "{{exploitable}} terkonfirmasi dapat dieksploitasi", + "noDeadline": "Tanpa tenggat", + "reviewSlaAssignment": "Tinjau penugasan SLA", + "allOpenFindingsTracked": "Semua temuan terbuka dilacak" + }, "dismiss": { "alreadyResolvedDescription": "Temuan ini telah diselesaikan dan tidak lagi menerima pengabaian.", "cannotDismissDescription": "Hanya pemilik organisasi dan manajer penagihan yang dapat mengabaikan temuan.", @@ -1188,7 +1211,7 @@ "title": "Notifikasi" }, "remediation": { - "attemptHistory": "Riwayat percobaan ({{count}})", + "attemptHistory": "Riwayat percobaan ({{displayCount}})", "attemptNumber": "Percobaan #{{number}}", "branch": "Cabang", "cancelMessage": "Security Agent akan menghentikan percobaan remediasi yang sedang berlangsung.", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "Analisis {{mode}}", "automation": "Otomatisasi", "automationAllOff": "Semua nonaktif", - "automationCount": "{{count}} dari 3 diaktifkan", + "automationCount": "{{displayCount}} dari 3 diaktifkan", "couldNotLoadPermissions": "Tidak dapat memuat izin", "couldNotLoadRepositories": "Tidak dapat memuat repositori", "couldNotLoadSettings": "Tidak dapat memuat pengaturan Security Agent", @@ -1267,7 +1290,7 @@ "enabled": "Diaktifkan", "modelsAndAnalysis": "Model & analisis", "notifications": "Notifikasi", - "notificationsCount": "{{count}} dari 2 diaktifkan", + "notificationsCount": "{{displayCount}} dari 2 diaktifkan", "off": "Nonaktif", "on": "Aktif", "repositories": "Repositori", @@ -1476,9 +1499,9 @@ "toolTask": "tugas", "readTodos": "Baca tugas", "updateTodos": "Perbarui tugas", - "linesBadge": "{{count}} baris", - "filesBadge": "{{count}} file", - "matchesBadge": "{{count}} kecocokan" + "linesBadge": "{{displayCount}} baris", + "filesBadge": "{{displayCount}} file", + "matchesBadge": "{{displayCount}} kecocokan" }, "readToolMarkdown": { "linesTruncated": "baris {{start}}–{{end}} (dipotong)", @@ -1514,6 +1537,10 @@ "modeSelector": { "accessibility": "Mode: {{label}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "modeOptions": { "code": "Kode", "plan": "Rencana", @@ -1620,7 +1647,7 @@ "preparationComplete": "Persiapan selesai", "preparationFailed": "Persiapan gagal", "setupCommand": "Perintah penyiapan {{index}}", - "setupCommandOf": "Perintah penyiapan {{index}} dari {{count}}" + "setupCommandOf": "Perintah penyiapan {{index}} dari {{displayCount}}" }, "permissionCard": { "title": "Izin diperlukan", @@ -1657,7 +1684,7 @@ "submissionFailed": "Pengiriman gagal. Coba lagi.", "questionAnnouncement": "Agen membutuhkan masukan Anda. Komposer dijeda saat Anda menjawab.", "permissionAnnouncement": "Agen membutuhkan izin untuk melanjutkan. Komposer dijeda saat Anda memutuskan.", - "positionHint": "(1 dari {{count}})", + "positionHint": "(1 dari {{displayCount}})", "movedPastPrompt": "Agen telah melewati prompt ini. Kartu ini akan ditutup saat sesi berlanjut.", "waitingForAnswer": "Agen sedang menunggu jawaban Anda. Saat pertanyaan ini terbuka, pesan Anda ke agen dijeda.", "waitingForPermission": "Agen sedang menunggu izin. Saat permintaan ini terbuka, pesan Anda ke agen dijeda." @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "Akses Kamera Dinonaktifkan", "cameraAccessMessage": "Izinkan akses kamera di Pengaturan untuk mengambil foto.", "couldNotOpenPhotoPicker": "Tidak dapat membuka pemilih foto. Mulai ulang Kilo dan coba lagi.", - "maxFilesAllowed": "Maksimal {{count}} file yang diizinkan", + "maxFilesAllowed": "Maksimal {{displayCount}} file yang diizinkan", "onlyAddingFiles": "Hanya menambahkan {{accepted}} dari {{total}} file (maks {{max}})" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "biaya {{cost}}", "costSuffix": ", biaya {{cost}}", "tokensWindowUnavailable": "Konteks {{used}} token, jendela tidak tersedia", - "tokensUsage": "Konteks {{used}} dari {{window}} token, {{percentage}}% digunakan", + "tokensUsage": "Konteks {{used}} dari {{window}} token, {{percentage}} digunakan", "title": "Penggunaan konteks", "used": "Terpakai", "remaining": "Tersisa", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "Penggunaan mencerminkan respons asisten terakhir yang selesai.", "tokenUsage": "Penggunaan token", "cacheRate": "Tarif cache", - "modelsCount": "Model ({{count}})", + "modelsCount": "Model ({{displayCount}})", "tokenTotalsNote": "Total token hanya mencakup sesi ini dan tidak termasuk token subagen/sesi anak.", "subagents": "Subagen", "subagentsDescription": "Biaya sisa dari sesi anak", @@ -1994,7 +2021,7 @@ "connectedCli": "Di CLI yang terhubung", "newSessionOn": "Sesi baru di {{name}}", "noMatchingSessions": "Tidak ada sesi yang cocok.", - "onlyFirstFilesAttached": "Hanya {{count}} file pertama yang akan dilampirkan.", + "onlyFirstFilesAttached": "Hanya {{displayCount}} file pertama yang akan dilampirkan.", "staleMessage": "Bagian ini tidak lagi tersedia.", "retryableMessage": "Tidak dapat memuat sesi Anda.", "emptyMessage": "Belum ada sesi — mulai sesi baru untuk mengirim ini.", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "Kilo Pass di Akun Apple ini milik akun Kilo yang berbeda. Masuk ke akun Kilo tersebut untuk mengelolanya.", "alreadySubscribed": "Anda sudah memiliki langganan Kilo Pass.", "purchaseUnavailable": "Pembelian Kilo Pass tidak tersedia saat ini.", - "tierCredits": "${{amount}} dalam kredit", + "tierCredits": "{{amount}} dalam kredit", "perMonth": "{{price}}/bln", "verifyPurchaseFailed": "Tidak dapat memverifikasi pembelian Anda. Periksa koneksi Anda dan coba lagi.", "productsCouldNotLoad": "Produk Kilo Pass tidak dapat dimuat dari App Store.", @@ -2038,7 +2065,7 @@ "manageFailed": "Gagal membuka pengelolaan langganan App Store.", "kiloPassSetup": "Penyiapan Kilo Pass", "subscriptionHeaderDescription": "Langganan bulanan yang menambah kredit ke saldo Kilo Anda untuk menjalankan sesi coding AI di Kilo App — Cloud Agents, sesi jarak jauh, dan obrolan KiloClaw.", - "tierDescription": "Kredit berbayar senilai ${{price}} ditambahkan setiap bulan untuk penggunaan Kilo App.", + "tierDescription": "Kredit berbayar senilai {{price}} ditambahkan setiap bulan untuk penggunaan Kilo App.", "subscribe": "Berlangganan", "subscribeDescription": "Kredit bulanan dengan progres bonus", "manage": "Kelola", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass tertunda", "statusCanceling": "Kilo Pass sedang dibatalkan", "statusPastDue": "Kilo Pass lewat jatuh tempo", - "monthlyCredits": "Kredit bulanan ${{credits}}", + "monthlyCredits": "Kredit bulanan {{credits}}", "ends": "Berakhir {{date}}", "periodEnd": "akhir periode", "managedOnGooglePlay": "Dikelola di Google Play", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "Anda tidak memiliki izin untuk melihat pull request ini.", "checkConnection": "Periksa koneksi", "checks": { - "checksCount": "{{count}} pemeriksaan", + "checksCount": "{{displayCount}} pemeriksaan", "couldNotLoad": "Tidak dapat memuat pemeriksaan.", - "failed": "{{count}} gagal", + "failed": "{{displayCount}} gagal", "noAccess": "Anda tidak memiliki akses ke pemeriksaan untuk repositori ini.", "noChecksReported": "Tidak ada pemeriksaan yang dilaporkan", "notAvailable": "Pemeriksaan belum tersedia. Commit head mungkin belum diproses, atau Aplikasi Kilo GitHub tidak terpasang di repositori head.", "openDetails": "Buka detail {{name}}", - "passed": "{{count}} lulus", - "pending": "{{count}} tertunda", + "passed": "{{displayCount}} lulus", + "pending": "{{displayCount}} tertunda", "retryChecks": "Coba lagi pemeriksaan", - "skipped": "{{count}} dilewati", + "skipped": "{{displayCount}} dilewati", "title": "Pemeriksaan", "viewOnGitHub": "Lihat PR di GitHub", "checkDetails": "detail pemeriksaan", @@ -2238,7 +2265,7 @@ "terminal": "Pengguna ini tidak dapat dilaporkan." } }, - "moreLinesAbove": "… {{count}} baris lagi di atas", + "moreLinesAbove": "… {{displayCount}} baris lagi di atas", "mute": "Bisukan", "mutedUser": "{{login}} dibisukan", "noDiscussion": "Belum ada diskusi", @@ -2246,7 +2273,7 @@ "comment_one": "1 komentar", "outdated": "Kedaluwarsa", "quotedDiffSnippet": "Cuplikan diff yang dikutip", - "reactionPill": "{{emoji}} reaksi, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaksi, {{displayCount}} {{countLabel}}", "reaction": "reaksi", "reaction_other": "reaksi", "reaction_one": "reaksi", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "Konteks tidak tersedia pada ref ini", "expandAll": "Perluas semua", - "expandAllLines": "Perluas semua {{count}} baris", + "expandAllLines": "Perluas semua {{displayCount}} baris", "expandContext": "Perluas konteks", - "expandLines": "Perluas {{count}} baris ({{start}}–{{end}})", - "expandLinesOfContext": "Perluas {{count}} baris konteks", + "expandLines": "Perluas {{displayCount}} baris ({{start}}–{{end}})", + "expandLinesOfContext": "Perluas {{displayCount}} baris konteks", "expandMoreContext": "Perluas lebih banyak konteks", - "expandMoreLines": "Perluas {{count}} baris lagi ({{start}}–{{end}})", + "expandMoreLines": "Perluas {{displayCount}} baris lagi ({{start}}–{{end}})", "failedToLoadContext": "Gagal memuat konteks — ketuk untuk mencoba lagi", "failedToLoadMoreFiles": "Gagal memuat lebih banyak file — ketuk untuk mencoba lagi", "fileLoadedCount_one": "{{displayCount}} file dimuat", @@ -2500,8 +2527,8 @@ "pendingComment_one": "komentar tertunda", "summaryOptional": "Ringkasan (opsional)", "title": "Kirim tinjauan", - "partialPostedMessage": "{{freshCount}} komentar terkirim. {{staleCount}} komentar mengarah ke commit lama dan tetap berada di antrean Anda.", - "submitCountOfTotal": "Kirim {{freshCount}} dari {{totalCount}} komentar", + "partialPostedMessage": "{{displayFreshCount}} komentar terkirim. {{displayStaleCount}} komentar mengarah ke commit lama dan tetap berada di antrean Anda.", + "submitCountOfTotal": "Kirim {{displayFreshCount}} dari {{displayTotalCount}} komentar", "submitReview": "Kirim tinjauan" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index 7d0b7dd91c..0281b505ea 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -206,11 +206,11 @@ "loadingLines": "Na-ebugo {{loaded}} n'ime {{total}} ahịrị…", "expandContext": "Gbasaa ọdịnaya", "expandMoreContext": "Gbasaa ọdịnaya ọzọ", - "expandLines": "Gbasaa {{count}} ahịrị ({{start}}–{{end}})", - "expandMoreLines": "Gbasaa {{count}} ahịrị ọzọ ({{start}}–{{end}})", - "expandLinesOfContext": "Gbasaa {{count}} ahịrị ọdịnaya", + "expandLines": "Gbasaa {{displayCount}} ahịrị ({{start}}–{{end}})", + "expandMoreLines": "Gbasaa {{displayCount}} ahịrị ọzọ ({{start}}–{{end}})", + "expandLinesOfContext": "Gbasaa {{displayCount}} ahịrị ọdịnaya", "expandAll": "Gbasaa niile", - "expandAllLines": "Gbasaa {{count}} ahịrị niile", + "expandAllLines": "Gbasaa {{displayCount}} ahịrị niile", "loadingMoreFiles": "Na-ebugo faịlụ ndị ọzọ…", "retryLoadingNextPage": "Nwaa ibugo ibe ọzọ", "failedToLoadMoreFiles": "Ibughị faịlụ ndị ọzọ — pịa iji nwaa ọzọ", @@ -301,7 +301,7 @@ "closeReactions": "Mechie mmeghachi omume", "reactionsTitle": "Mmeghachi omume", "addReaction": "Tinye mmeghachi omume", - "reactionPill": "{{emoji}} mmeghachi omume, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} mmeghachi omume, {{displayCount}} {{countLabel}}", "reaction_one": "mmeghachi omume", "reaction": "mmeghachi omume", "reaction_other": "mmeghachi omume", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Enweghị eriri nyocha ma ọ bụ nkọwa mkparịta ụka na arịrịọ dọrọ a.", "reviewFiles": "Nyochaa faịlụ", "quotedDiffSnippet": "Mpempe diff ekwuru", - "moreLinesAbove": "… {{count}} ahịrị ọzọ n'elu", + "moreLinesAbove": "… {{displayCount}} ahịrị ọzọ n'elu", "termsAcceptRequired": "Ị ga-anakwere Usoro Ọrụ tupu ị bipute.", "termsOutdatedCopy": "Agbanwela Usoro Ọrụ. Mepee enyo a ọzọ ịnakwere ụdị kacha ọhụrụ.", "termsCheckRetryCopy": "Enweghị ike ịlele Usoro Ọrụ. Lelee njikọ gị ma nwaa ọzọ." @@ -395,11 +395,11 @@ "retryChecks": "Nwaa nyocha ọzọ", "viewOnGitHub": "Lelee PR na GitHub", "noChecksReported": "Enweghị nyocha akọrọ", - "passed": "{{count}} gafere", - "failed": "{{count}} dara", - "pending": "{{count}} na-echere", - "skipped": "{{count}} gafere", - "checksCount": "{{count}} nyocha", + "passed": "{{displayCount}} gafere", + "failed": "{{displayCount}} dara", + "pending": "{{displayCount}} na-echere", + "skipped": "{{displayCount}} gafere", + "checksCount": "{{displayCount}} nyocha", "checkDetails": "nkọwa nyocha", "pullRequest": "arịrịọ dọrọ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "nkọwa na-echere", "pendingComment": "nkọwa na-echere", "pendingComment_other": "nkọwa na-echere", - "submitCountOfTotal": "Nyefee {{freshCount}} n'ime {{totalCount}} nkọwa", + "submitCountOfTotal": "Nyefee {{displayFreshCount}} n'ime {{displayTotalCount}} nkọwa", "submitReview": "Nyefee nyocha", - "partialPostedMessage": "Biputere {{freshCount}} nkọwa. {{staleCount}} nkọwa na-atụ aka na commit ochie ma nọrọ n'ahịrị gị." + "partialPostedMessage": "Biputere {{displayFreshCount}} nkọwa. {{displayStaleCount}} nkọwa na-atụ aka na commit ochie ma nọrọ n'ahịrị gị." }, "reconnectNotice": { "title": "Njikọ GitHub emebiwo", @@ -580,7 +580,8 @@ "agents": "Ndị ọrụ", "profile": "Profaịlụ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} nke {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Na-adịbeghị anya", "common": "Ọtụtụ", "reactWith": "Zaghachi na {{reaction}}", - "accessibility": "{{emoji}} mmeghachi omume, {{count}}" + "accessibility": "{{emoji}} mmeghachi omume, {{displayCount}}" }, "composer": { "replyingTo": "Na-azaghachi", @@ -650,7 +651,7 @@ "imageUnavailable": "Onyonyo adịghị", "openFailed": "Enweghị ike imepe ihe jikọtara. Lelee njikọ gị ma nwaa ọzọ.", "attachFailed": "Ejikọtaghi faịlụ", - "limit": "Ị nwere ike ijikọ ihe ruru {{count}} faịlụ.", + "limit": "Ị nwere ike ijikọ ihe ruru {{displayCount}} faịlụ.", "sizeRejection": "{{filename}} gafere njedebe njikọta {{limit}}.", "unreadable": "Enweghị ike ịgụ {{filename}}.", "pastedImage": "onyonyo a madoro", @@ -722,6 +723,7 @@ "finalTermEnds": "Oge ikpeazụ na-akwụsị", "afterFinalTerm": "Mgbe oge ikpeazụ gasịrị", "remaining": "Fọdụrụ", + "lessThanOneDay": "Ihe na-erughị ụbọchị 1", "ends": "Na-akwụsị", "expires": "Na-ekubi", "noActivePlan": "Enweghị atụmatụ na-arụ ọrụ", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ọnụahịa Standard gị kwa ọnwa", "perMonth": "/ọnwa", "earlybirdAccessUntil": "Ohere Earlybird ruo {{date}}", - "earlybirdEnding": "Earlybird na-akwụsị: {{days}} ụbọchị fọdụrụ", + "earlybirdEnding": "Earlybird na-akwụsị: {{remaining}}", "paymentPastDue": "Ịkwụ ụgwọ gafeworo oge. Biko melite usoro ịkwụ ụgwọ gị.", "subscriptionCancels": "Ndenye na-akagbu {{date}}", - "trialDaysRemaining": "Nnwale: {{days}} ụbọchị fọdụrụ", - "trialEndingSoon": "Nnwale na-akwụsị n'oge na-adịghị anya: {{days}}" + "trialDaysRemaining": "Nnwale: {{remaining}} fọdụrụ", + "trialEndingSoon": "Nnwale na-akwụsị n'oge na-adịghị anya: {{remaining}}" }, "changelog": { "title": "Ihe Ọhụrụ", @@ -996,7 +998,7 @@ "stalledTitle": "Ọnweghi ihe kwụsịrị", "stalledBody": "Anyị enweghị ike ịmechaa nhazi {{name}}. Gbalịa ọzọ, ma ọ bụ ziga ozi na hi@kilo.ai ma ọ bụrụ na nke a na-eme mgbe niile.", "timeoutTitle": "Na-ewekarị oge karịa ka atụrụ anya", - "timeoutBody": "Nhazi maka {{name}} na-ewekarị oge karịa nkịtị (karịa {{minutes}} nkeji).", + "timeoutBody": "Nhazi maka {{name}} na-ewekarị oge karịa nkịtị (karịa {{displayMinutes}} nkeji).", "continueInBackground": "Gaa n'ihu na nzuzo", "settingUp": "Na-ahazi {{name}}", "finishingSetup": "Na-emecha nhazi", @@ -1287,7 +1289,7 @@ "mergeGate": "Ọnụ ụzọ ijikọ", "repositories": "Ebe nchekwa", "allRepositories": "Ebe nchekwa niile", - "nSelected": "{{count}} ahọrọ", + "nSelected": "{{displayCount}} ahọrọ", "reviewMemory": "Ebe nchekwa nyocha", "proposedReviewMdGuidance": "Nduzi REVIEW.md atụrụ aro" }, @@ -1391,14 +1393,14 @@ "analyzed": "Enyochaala ya", "exploitabilityReasoning": "Echiche ike irigbu", "suggestedFix": "Ndozi a tụrụ aro", - "whereFound": "Ebe a chọtara nke a ({{count}})", + "whereFound": "Ebe a chọtara nke a ({{displayCount}})", "fullReport": "Akụkọ zuru oke e mere", "unknown": "Amaghị", "yes": "Ee", "no": "Mba" }, "dashboard": { - "findingsCount": "{{count}} ihe achọpụtara", + "findingsCount": "{{displayCount}} ihe achọpụtara", "notMeasured": "Atụbaghị ya", "actFirst": "Mee ihe ụzọ", "slaPosture": "Ọnọdụ SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Atụmatụ omume ebe nchekwa", "noOpenFindings": "Enweghị ihe achọpụtara mepere emepe chọrọ nlebara anya", "deadlineToday": "Oge njedebe ruru taa", - "daysOverdue": "{{count}} ụbọchị gafere oge", + "daysOverdue": "{{displayCount}} ụbọchị gafere oge", "withinDeadline": "N'ime oge njedebe", "criticalOverdue": "Nke dị oké njọ gafere oge", "highOverdue": "Nke dị elu gafere oge", @@ -1435,6 +1437,27 @@ "syncQueued": "Nsomi kwụ n'ahịrị", "syncStatusUnavailable": "Ọnọdụ nsomi enweghị" }, + "dashboardMetrics": { + "openFindings": "Ihe achọpụtara mepere emepe", + "openFindingsDetail": "{{critical}} dị oké njọ, {{high}} dị elu", + "confirmedExploitable": "Kwadoro enwere ike irigbu ya", + "confirmedExploitableDetail": "Echiche ihe ize ndụ ọrụ kwadoro site na nyocha", + "needsReview": "Chọrọ nyocha gị", + "needsReviewDetail": "Chọrọ mkpebi mmadụ", + "analysisIncomplete": "Nyocha edozighị", + "analysisIncompleteDetail": "Ihe ize ndụ ọrụ ka amabeghị", + "slaCompliance": "Nrube isi SLA", + "notMeasured": "Atụghị ya", + "withinDeadlineDetail": "{{within}} n'ime {{total}} n'ime oge njedebe", + "noDeadlineData": "Enweghị ihe achọpụtara nwere oge njedebe SLA", + "deadlinePassed": "Oge njedebe agafeela", + "deadlinePassedDetail": "{{critical}} dị oké njọ, {{high}} dị elu", + "dueThisWeek": "N'ihi izu a", + "dueThisWeekDetail": "{{exploitable}} kwadoro enwere ike irigbu ya", + "noDeadline": "Enweghị oge njedebe", + "reviewSlaAssignment": "Nyochaa ọrụ SLA", + "allOpenFindingsTracked": "Ihe achọpụtara niile mepere emepe na-esochi" + }, "dismiss": { "title": "Mechie ihe achọpụtara", "submit": "Mechie ihe achọpụtara", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Nyocha {{mode}}", "automation": "Akpaaka", "automationAllOff": "Niile gbanyụrụ", - "automationCount": "{{count}} n'ime 3 gbanyere", + "automationCount": "{{displayCount}} n'ime 3 gbanyere", "notifications": "Ngosi ọkwa", - "notificationsCount": "{{count}} n'ime 2 gbanyere", + "notificationsCount": "{{displayCount}} n'ime 2 gbanyere", "slaPolicy": "Amụma SLA", "disabledNoManage": "Security Agent gbanyụrụ. Naanị ndị nwe nzukọ na ndị njikwa ego ka nwere ike ịgbanye ya.", "disabledNoRepo": "Họrọ opekata mpe otu ebe nchekwa tupu ịgbanye Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Mepee arịrịọ ịdọrọ{{number}}", "openDraftPullRequest": "Mepee arịrịọ ịdọrọ nke a na-ede{{number}}", "progress": "Ọganihu", - "attemptHistory": "Akụkọ mbọ ({{count}})", + "attemptHistory": "Akụkọ mbọ ({{displayCount}})", "attemptNumber": "Mbọ #{{number}}", "startedBy": "Onye malitere", "model": "Ihe nlereanya", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "Gụọ ndị ọrụ", "updateTodos": "Melite ndị ọrụ", - "linesBadge": "{{count}} ahịrị", - "filesBadge": "{{count}} faịlụ", - "matchesBadge": "{{count}} ndakọrịta" + "linesBadge": "{{displayCount}} ahịrị", + "filesBadge": "{{displayCount}} faịlụ", + "matchesBadge": "{{displayCount}} ndakọrịta" }, "readToolMarkdown": { "linesTruncated": "ahịrị {{start}}–{{end}} (mbelatara)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Enweghị ike ịkọ nzaghachi a.", "reportAiResponseSubmitted": "E zigara akụkọ. Nnata {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Nkọwa adịghị", "textDisplay": "Ngosipụta ederede", @@ -1999,7 +2026,7 @@ "preparationComplete": "Nkwadebe zuru", "preparationFailed": "Nkwadebe dara", "setupCommand": "Iwu nhazi {{index}}", - "setupCommandOf": "Iwu nhazi {{index}} n'ime {{count}}" + "setupCommandOf": "Iwu nhazi {{index}} n'ime {{displayCount}}" }, "permissionCard": { "title": "Ikike dị mkpa", @@ -2036,7 +2063,7 @@ "submissionFailed": "Iziga dara. Biko nwaa ọzọ.", "questionAnnouncement": "Onye nnọchite chọrọ ntinye gị. Onye na-edezi eguzola n'otu ebe ka ị na-aza.", "permissionAnnouncement": "Onye nnọchite chọrọ ikike ịga n'ihu. Onye na-edezi eguzola n'otu ebe ka ị na-ekpebi.", - "positionHint": "(1 n'ime {{count}})", + "positionHint": "(1 n'ime {{displayCount}})", "movedPastPrompt": "Onye nnọchite agafeela ihe a. Kaadị a ga-emechi mgbe nnọkọ gara n'ihu.", "waitingForAnswer": "Onye nnọchite na-eche azịza gị. Ọ bụrụhaala na ajụjụ a meghere, ozi gị nye onye nnọchite na-akwụsị.", "waitingForPermission": "Onye nnọchite na-eche ikike. Ọ bụrụhaala na arịrịọ a meghere, ozi gị nye onye nnọchite na-akwụsị." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kamera Enyochaghị Ya", "cameraAccessMessage": "Kwe ka kamera nweta ohere na Ntọala ka ị see foto.", "couldNotOpenPhotoPicker": "Enweghị ike imeghe onye na-ahọrọ foto. Malitegharịa Kilo wee nwaa ọzọ.", - "maxFilesAllowed": "Faịlụ {{count}} kachasị anabata", + "maxFilesAllowed": "Faịlụ {{displayCount}} kachasị anabata", "onlyAddingFiles": "Na-agbakwunye naanị {{accepted}} n'ime {{total}} faịlụ (oke {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ọnụ ahịa {{cost}}", "costSuffix": ", ọnụ ahịa {{cost}}", "tokensWindowUnavailable": "Ihe gbara ya gburugburu {{used}} tokens, windo adịghị", - "tokensUsage": "Ihe gbara ya gburugburu {{used}} n'ime {{window}} tokens, {{percentage}}% eji", + "tokensUsage": "Ihe gbara ya gburugburu {{used}} n'ime {{window}} tokens, {{percentage}} eji", "title": "Ojiji ihe gbara ya gburugburu", "used": "Ejiri", "remaining": "Fọdụrụ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Ojiji na-egosipụta nzaghachi enyemaka kachasị ọhụrụ emechara.", "tokenUsage": "Ojiji token", "cacheRate": "Ọnụ ego nchekwa", - "modelsCount": "Ụdị ({{count}})", + "modelsCount": "Ụdị ({{displayCount}})", "tokenTotalsNote": "Ngụkọta token na-ekpuchi naanị nnọkọ a ma na-ewepụ token onye nnọchite/nnọkọ nwata.", "subagents": "Ndị nnọchite", "subagentsDescription": "Ọnụ ahịa fọdụrụ sitere na nnọkọ ụmụaka", @@ -2373,7 +2400,7 @@ "connectedCli": "Na CLI ejikọrọ", "newSessionOn": "Nnọkọ ọhụrụ na {{name}}", "noMatchingSessions": "Ọ dịghị nnọkọ dabara adaba.", - "onlyFirstFilesAttached": "Naanị {{count}} faịlụ mbụ ka a ga-etinye.", + "onlyFirstFilesAttached": "Naanị {{displayCount}} faịlụ mbụ ka a ga-etinye.", "staleMessage": "Nkekọrịta a adịkwaghị.", "retryableMessage": "Enweghị ike ibutu nnọkọ gị.", "emptyMessage": "Ọ dịbeghị nnọkọ — malite nke ọhụrụ ka iziga nke a.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass na Akaụntụ Apple a bụ nke akaụntụ Kilo ọzọ. Banye na akaụntụ Kilo ahụ ka ijikwa ya.", "alreadySubscribed": "Ị nwerelarị ndenye aha Kilo Pass.", "purchaseUnavailable": "Ịzụrụ Kilo Pass adịghị ugbu a.", - "tierCredits": "${{amount}} na kredit", + "tierCredits": "{{amount}} na kredit", "perMonth": "{{price}}/ọnwa", "verifyPurchaseFailed": "Enweghị ike ịkwado ịzụrụ ihe gị. Lelee njikọ gị wee nwaa ọzọ.", "productsCouldNotLoad": "Enweghị ike ibutu ngwaahịa Kilo Pass na App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Enweghị ike imeghe njikwa ndenye aha App Store.", "kiloPassSetup": "Ntọala Kilo Pass", "subscriptionHeaderDescription": "Ndenye aha kwa ọnwa na-agbakwunye kredit na nguzozi Kilo gị maka ịgba nnọkọ ịde koodu AI na Kilo App — Cloud Agents, nnọkọ dịpụrụ adịpụ, na mkparịta ụka KiloClaw.", - "tierDescription": "${{price}} kredit akwụrụ agbakwunyere kwa ọnwa maka ojiji Kilo App.", + "tierDescription": "{{price}} kredit akwụrụ agbakwunyere kwa ọnwa maka ojiji Kilo App.", "subscribe": "Dee aha", "subscribeDescription": "Kredit kwa ọnwa na ọganihu bonus", "manage": "Jikwaa", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass na-echere", "statusCanceling": "Kilo Pass na-akagbu", "statusPastDue": "Kilo Pass karịrị oge", - "monthlyCredits": "${{credits}} kredit kwa ọnwa", + "monthlyCredits": "{{credits}} kredit kwa ọnwa", "ends": "Ọgwụ na {{date}}", "periodEnd": "njedebe oge", "managedOnGooglePlay": "Na-ejikwa na Google Play", diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index 58a86631af..6881a39790 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -206,11 +206,11 @@ "loadingLines": "Hleður {{loaded}} af {{total}} línum...", "expandContext": "Stækka samhengi", "expandMoreContext": "Stækka meira samhengi", - "expandLines": "Stækka {{count}} línur ({{start}}–{{end}})", - "expandMoreLines": "Stækka fleiri {{count}} línur ({{start}}–{{end}})", - "expandLinesOfContext": "Stækka {{count}} samhengislínur", + "expandLines": "Stækka {{displayCount}} línur ({{start}}–{{end}})", + "expandMoreLines": "Stækka fleiri {{displayCount}} línur ({{start}}–{{end}})", + "expandLinesOfContext": "Stækka {{displayCount}} samhengislínur", "expandAll": "Stækka allt", - "expandAllLines": "Stækka allar {{count}} línur", + "expandAllLines": "Stækka allar {{displayCount}} línur", "loadingMoreFiles": "Hleður fleiri skrár...", "retryLoadingNextPage": "Reyna að hlaða næstu síðu aftur", "failedToLoadMoreFiles": "Ekki tókst að hlaða fleiri skrár — bankaðu til að reyna aftur", @@ -301,7 +301,7 @@ "closeReactions": "Loka viðbrögðum", "reactionsTitle": "Viðbrögð", "addReaction": "Bæta við viðbrögðum", - "reactionPill": "{{emoji}} viðbrögð, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} viðbrögð, {{displayCount}} {{countLabel}}", "reaction_one": "viðbrögð", "reaction": "viðbrögð", "reaction_other": "viðbrögð", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Engar úttektarþræðir eða samtalathugasemdir á þessum pull request.", "reviewFiles": "Yfirfara skrár", "quotedDiffSnippet": "Tilvitnað diff-brot", - "moreLinesAbove": "… {{count}} fleiri línur að ofan", + "moreLinesAbove": "… {{displayCount}} fleiri línur að ofan", "termsAcceptRequired": "Þú verður að samþykkja þjónustuskilmálana til að birta.", "termsOutdatedCopy": "Þjónustuskilmálarnir breyttust. Opnaðu þennan skjá aftur til að samþykkja nýjustu útgáfuna.", "termsCheckRetryCopy": "Gat ekki athugað þjónustuskilmálana. Athugaðu tenginguna og reyndu aftur." @@ -395,11 +395,11 @@ "retryChecks": "Reyna athuganir aftur", "viewOnGitHub": "Skoða PR á GitHub", "noChecksReported": "Engar athuganir tilkynntar", - "passed": "{{count}} stóðust", - "failed": "{{count}} féllu", - "pending": "{{count}} í bið", - "skipped": "{{count}} sleppt", - "checksCount": "{{count}} athuganir", + "passed": "{{displayCount}} stóðust", + "failed": "{{displayCount}} féllu", + "pending": "{{displayCount}} í bið", + "skipped": "{{displayCount}} sleppt", + "checksCount": "{{displayCount}} athuganir", "checkDetails": "athugunarupplýsingar", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "biðandi athugasemd", "pendingComment": "biðandi athugasemdir", "pendingComment_other": "biðandi athugasemdir", - "submitCountOfTotal": "Senda {{freshCount}} af {{totalCount}} athugasemdum", + "submitCountOfTotal": "Senda {{displayFreshCount}} af {{displayTotalCount}} athugasemdum", "submitReview": "Senda úttekt", - "partialPostedMessage": "Sendi {{freshCount}} athugasemd(ir). {{staleCount}} athugasemd(ir) vísa í eldra commit og voru áfram í hópnum þínum." + "partialPostedMessage": "Sendi {{displayFreshCount}} athugasemd(ir). {{displayStaleCount}} athugasemd(ir) vísa í eldra commit og voru áfram í hópnum þínum." }, "reconnectNotice": { "title": "GitHub-tengingin rann út", @@ -580,7 +580,8 @@ "agents": "Umboð (Agents)", "profile": "Notandasnið", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, flipi, {{position}} af {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Nýlegt", "common": "Algengt", "reactWith": "Bregðast við með {{reaction}}", - "accessibility": "{{emoji}} viðbrögð, {{count}}" + "accessibility": "{{emoji}} viðbrögð, {{displayCount}}" }, "composer": { "replyingTo": "Að svara", @@ -650,7 +651,7 @@ "imageUnavailable": "Mynd ótiltæk", "openFailed": "Ekki tókst að opna viðhengi. Athugaðu tenginguna og reyndu aftur.", "attachFailed": "Ekki tókst að hengja skrá", - "limit": "Þú getur hengt allt að {{count}} skrár.", + "limit": "Þú getur hengt allt að {{displayCount}} skrár.", "sizeRejection": "{{filename}} er yfir {{limit}} viðhengismörkunum.", "unreadable": "Gat ekki lesið {{filename}}.", "pastedImage": "límaða myndin", @@ -722,6 +723,7 @@ "finalTermEnds": "Lokaskildi endar", "afterFinalTerm": "Eftir lokaskildi", "remaining": "Eftir", + "lessThanOneDay": "Minna en 1 dagur", "ends": "Endar", "expires": "Rennur út", "noActivePlan": "Engin virk áætlun", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "mánaðarverðið þitt á Standard", "perMonth": "/mánuði", "earlybirdAccessUntil": "Snemmbúinn aðgangur til {{date}}", - "earlybirdEnding": "Snemmbúnum tíma lýkur: {{days}} dagar eftir", + "earlybirdEnding": "Snemmbúnum tíma lýkur: {{remaining}}", "paymentPastDue": "Greiðsla er komin fram yfir gjalddaga. Uppfærðu greiðslumáta þinn.", "subscriptionCancels": "Áskrift fellur úr gildi {{date}}", - "trialDaysRemaining": "Reynslutímabil: {{days}} dagar eftir", - "trialEndingSoon": "Reynslutímabili lýkur fljótlega: {{days}}" + "trialDaysRemaining": "Reynslutímabil: {{remaining}} eftir", + "trialEndingSoon": "Reynslutímabili lýkur fljótlega: {{remaining}}" }, "changelog": { "title": "Hvað er nýtt", @@ -996,7 +998,7 @@ "stalledTitle": "Eitthvað festist", "stalledBody": "Okkur tókst ekki að klára uppsetningu {{name}}. Reyndu aftur, eða sendu tölvupóst á hi@kilo.ai ef þetta heldur áfram.", "timeoutTitle": "Tekur lengri tíma en búist var við", - "timeoutBody": "Uppsetning {{name}} tekur lengri tíma en venjulega (yfir {{minutes}} mínútur).", + "timeoutBody": "Uppsetning {{name}} tekur lengri tíma en venjulega (yfir {{displayMinutes}} mínútur).", "continueInBackground": "Halda áfram í bakgrunni", "settingUp": "Set upp {{name}}", "finishingSetup": "Lýk uppsetningu", @@ -1287,7 +1289,7 @@ "mergeGate": "Sameiningarhlið", "repositories": "Geymslur", "allRepositories": "Allar geymslur", - "nSelected": "{{count}} valin(n)", + "nSelected": "{{displayCount}} valin(n)", "reviewMemory": "Yfirferðarminni", "proposedReviewMdGuidance": "Fyrirhuguð REVIEW.md leiðbeining" }, @@ -1391,14 +1393,14 @@ "analyzed": "Greint", "exploitabilityReasoning": "Nýtanleikarök", "suggestedFix": "Fyrirhuguð lagfæring", - "whereFound": "Þar sem þetta fannst ({{count}})", + "whereFound": "Þar sem þetta fannst ({{displayCount}})", "fullReport": "Heildarskýrsla sem búin var til", "unknown": "Óþekkt", "yes": "Já", "no": "Nei" }, "dashboard": { - "findingsCount": "{{count}} atvik", + "findingsCount": "{{displayCount}} atvik", "notMeasured": "Ekki mælt", "actFirst": "Bregðast við fyrst", "slaPosture": "SLA-staða", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Aðgerðaáætlun geymslu", "noOpenFindings": "Engin opin atvik þarfnast athygli", "deadlineToday": "Frestur náðist í dag", - "daysOverdue": "{{count}} daga yfir fresti", + "daysOverdue": "{{displayCount}} daga yfir fresti", "withinDeadline": "Innan frests", "criticalOverdue": "Mikilvægt yfir fresti", "highOverdue": "Hátt yfir fresti", @@ -1435,6 +1437,27 @@ "syncQueued": "Samstilling í biðröð", "syncStatusUnavailable": "Samstillingarstaða ekki tiltæk" }, + "dashboardMetrics": { + "openFindings": "Opin atvik", + "openFindingsDetail": "{{critical}} mikilvæg, {{high}} há", + "confirmedExploitable": "Staðfest nýtanlegt", + "confirmedExploitableDetail": "Áhætta verkefnis staðfest með greiningu", + "needsReview": "Þarfnast þinnar yfirferðar", + "needsReviewDetail": "Þarf ákvörðun manns", + "analysisIncomplete": "Greining ekki lokið", + "analysisIncompleteDetail": "Áhætta verkefnis enn óþekkt", + "slaCompliance": "SLA-fylgni", + "notMeasured": "Ekki mælt", + "withinDeadlineDetail": "{{within}} af {{total}} innan frests", + "noDeadlineData": "Engin atvik hafa enn SLA-frest", + "deadlinePassed": "Frestur liðinn", + "deadlinePassedDetail": "{{critical}} mikilvæg, {{high}} há", + "dueThisWeek": "Vegna í þessari viku", + "dueThisWeekDetail": "{{exploitable}} staðfest nýtanleg", + "noDeadline": "Enginn frestur", + "reviewSlaAssignment": "SLA úthlutun yfirferðar", + "allOpenFindingsTracked": "Öll opin atvik rakin" + }, "dismiss": { "title": "Vísa atviki frá", "submit": "Vísa atviki frá", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} greining", "automation": "Sjálfvirkni", "automationAllOff": "Allt af", - "automationCount": "{{count}} af 3 virkt", + "automationCount": "{{displayCount}} af 3 virkt", "notifications": "Tilkynningar", - "notificationsCount": "{{count}} af 2 virkt", + "notificationsCount": "{{displayCount}} af 2 virkt", "slaPolicy": "SLA-stefna", "disabledNoManage": "Security Agent er óvirkur. Aðeins eigendur stofnunar og reikningsstjórar geta kveikt á honum.", "disabledNoRepo": "Veldu að minnsta kosti eina geymslu áður en kveikt er á Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Opna pull request{{number}}", "openDraftPullRequest": "Opna drög að pull request{{number}}", "progress": "Framvinda", - "attemptHistory": "Tilraunasaga ({{count}})", + "attemptHistory": "Tilraunasaga ({{displayCount}})", "attemptNumber": "Tilraun #{{number}}", "startedBy": "Hafið af", "model": "Módel", @@ -1855,9 +1878,9 @@ "toolTask": "verkefni", "readTodos": "Lesa verkefni", "updateTodos": "Uppfæra verkefni", - "linesBadge": "{{count}} línur", - "filesBadge": "{{count}} skrár", - "matchesBadge": "{{count}} samsvörun" + "linesBadge": "{{displayCount}} línur", + "filesBadge": "{{displayCount}} skrár", + "matchesBadge": "{{displayCount}} samsvörun" }, "readToolMarkdown": { "linesTruncated": "línur {{start}}–{{end}} (stytt)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Ekki er hægt að tilkynna þetta svar.", "reportAiResponseSubmitted": "Tilkynning send. Kvittun {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Upplýsingar ekki tiltækar", "textDisplay": "Textabirting", @@ -1999,7 +2026,7 @@ "preparationComplete": "Undirbúningi lokið", "preparationFailed": "Undirbúningur mistókst", "setupCommand": "Uppsetningarskipun {{index}}", - "setupCommandOf": "Uppsetningarskipun {{index}} af {{count}}" + "setupCommandOf": "Uppsetningarskipun {{index}} af {{displayCount}}" }, "permissionCard": { "title": "Heimild krafist", @@ -2036,7 +2063,7 @@ "submissionFailed": "Innlagning mistókst. Reyndu aftur.", "questionAnnouncement": "Umboðið þarfnast inntaks þíns. Ritillinn er í bið meðan þú svarar.", "permissionAnnouncement": "Umboðið þarfnast heimildar til að halda áfram. Ritillinn er í bið meðan þú ákveður.", - "positionHint": "(1 af {{count}})", + "positionHint": "(1 af {{displayCount}})", "movedPastPrompt": "Umboðið er komið framhjá þessari spurningu. Þetta spjald lokast þegar lotan heldur áfram.", "waitingForAnswer": "Umboðið bíður svars þíns. Meðan þessi spurning er opin er skilaboðum þínum til umboðsins haldið í bið.", "waitingForPermission": "Umboðið bíður heimildar. Meðan þessi beiðni er opin er skilaboðum þínum til umboðsins haldið í bið." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Aðgangur að myndavél óvirkur", "cameraAccessMessage": "Leyfðu aðgang að myndavélinni í Stillingum til að taka mynd.", "couldNotOpenPhotoPicker": "Ekki tókst að opna myndavalann. Endurræstu Kilo og reyndu aftur.", - "maxFilesAllowed": "Hámark {{count}} skrár leyfðar", + "maxFilesAllowed": "Hámark {{displayCount}} skrár leyfðar", "onlyAddingFiles": "Bætir aðeins við {{accepted}} af {{total}} skrám (hámark {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kostnaður {{cost}}", "costSuffix": ", kostnaður {{cost}}", "tokensWindowUnavailable": "Samhengi {{used}} tákn, gluggi ekki tiltækur", - "tokensUsage": "Samhengi {{used}} af {{window}} tákn, {{percentage}}% notað", + "tokensUsage": "Samhengi {{used}} af {{window}} tákn, {{percentage}} notað", "title": "Samhengisnotkun", "used": "Notað", "remaining": "Eftirstandandi", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Notkun endurspeglar nýjustu fullgerðu svarið frá aðstoðarmanni.", "tokenUsage": "Táknanotkun", "cacheRate": "Skyndiminnishlutfall", - "modelsCount": "Líkön ({{count}})", + "modelsCount": "Líkön ({{displayCount}})", "tokenTotalsNote": "Táknfjárhæðir ná aðeins yfir þessa lotu og útiloka tákn undirumboðs/barnalotu.", "subagents": "Undirumboð", "subagentsDescription": "Afgangskostnaður frá barnalotum", @@ -2373,7 +2400,7 @@ "connectedCli": "Á tengdu CLI", "newSessionOn": "Ný lota á {{name}}", "noMatchingSessions": "Engar samsvarandi lotur.", - "onlyFirstFilesAttached": "Aðeins fyrstu {{count}} skrárnar verða hengdar við.", + "onlyFirstFilesAttached": "Aðeins fyrstu {{displayCount}} skrárnar verða hengdar við.", "staleMessage": "Þessi deiling er ekki lengur tiltæk.", "retryableMessage": "Ekki tókst að hlaða loturnar þínar.", "emptyMessage": "Engar lotur ennþá — byrjaðu nýja til að senda þetta.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass á þessum Apple-reikningi tilheyrir öðrum Kilo-reikningi. Skráðu þig inn á þann Kilo-reikning til að stjórna honum.", "alreadySubscribed": "Þú ert nú þegar með Kilo Pass-áskrift.", "purchaseUnavailable": "Kilo Pass-kaup eru ekki tiltæk núna.", - "tierCredits": "${{amount}} í kredítum", + "tierCredits": "{{amount}} í kredítum", "perMonth": "{{price}}/mán", "verifyPurchaseFailed": "Ekki tókst að staðfesta kaupin þín. Athugaðu tenginguna og reyndu aftur.", "productsCouldNotLoad": "Ekki tókst að hlaða Kilo Pass-vörur frá App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Ekki tókst að opna App Store-áskriftarstjórnun.", "kiloPassSetup": "Kilo Pass-uppsetning", "subscriptionHeaderDescription": "Mánaðarleg áskrift sem bætir kredítum við Kilo-stöðuna þína fyrir að keyra AI-forritunarlotur í Kilo App — Cloud-umboð, fjarlotur og KiloClaw-spjall.", - "tierDescription": "${{price}} greiddar kredítur bættar við mánaðarlega fyrir Kilo App-notkun.", + "tierDescription": "{{price}} greiddar kredítur bættar við mánaðarlega fyrir Kilo App-notkun.", "subscribe": "Gerast áskrifandi", "subscribeDescription": "Mánaðarlegar kredítur með bónusframvindu", "manage": "Stjórna", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass í bið", "statusCanceling": "Kilo Pass hættir við", "statusPastDue": "Kilo Pass liðið", - "monthlyCredits": "${{credits}} mánaðarlegar kredítur", + "monthlyCredits": "{{credits}} mánaðarlegar kredítur", "ends": "Endar {{date}}", "periodEnd": "tímabilslok", "managedOnGooglePlay": "Stjórnað á Google Play", diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index eecd7db56e..45ff44720a 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -187,7 +187,8 @@ "agents": "Agenti", "profile": "Profilo", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, scheda, {{position}} di {{total}}" }, "chat": { "instancePicker": { @@ -228,7 +229,7 @@ "recent": "Recenti", "common": "Comuni", "reactWith": "Reagisci con {{reaction}}", - "accessibility": "{{emoji}} reazione, {{count}}" + "accessibility": "{{emoji}} reazione, {{displayCount}}" }, "composer": { "replyingTo": "Rispondi a", @@ -257,7 +258,7 @@ "imageUnavailable": "Immagine non disponibile", "openFailed": "Impossibile aprire l'allegato. Controlla la connessione e riprova.", "attachFailed": "Allegato del file non riuscito", - "limit": "Puoi allegare fino a {{count}} file.", + "limit": "Puoi allegare fino a {{displayCount}} file.", "sizeRejection": "{{filename}} supera il limite di {{limit}} per gli allegati.", "unreadable": "Impossibile leggere {{filename}}.", "pastedImage": "l'immagine incollata", @@ -307,7 +308,8 @@ "someone": "Qualcuno", "typing_one": "{{name}} sta scrivendo...", "typing": "{{names}} stanno scrivendo...", - "typing_other": "{{names}} stanno scrivendo..." + "typing_other": "{{names}} stanno scrivendo...", + "typing_many": "{{names}} stanno scrivendo..." }, "botStatus": { "online": "Online", @@ -329,6 +331,7 @@ "finalTermEnds": "Il periodo finale termina", "afterFinalTerm": "Dopo il periodo finale", "remaining": "Rimanente", + "lessThanOneDay": "Meno di 1 giorno", "ends": "Termina", "expires": "Scade", "noActivePlan": "Nessun piano attivo", @@ -347,11 +350,11 @@ "yourStandardMonthlyPrice": "il tuo prezzo mensile Standard", "perMonth": "/mese", "earlybirdAccessUntil": "Accesso Earlybird fino al {{date}}", - "earlybirdEnding": "Earlybird in scadenza: {{days}} giorni rimanenti", + "earlybirdEnding": "Earlybird in scadenza: {{remaining}}", "paymentPastDue": "Pagamento scaduto. Aggiorna il tuo metodo di pagamento.", "subscriptionCancels": "L'abbonamento si annulla il {{date}}", - "trialDaysRemaining": "Prova: {{days}} giorni rimanenti", - "trialEndingSoon": "Prova in scadenza: {{days}}" + "trialDaysRemaining": "Prova: {{remaining}} rimanenti", + "trialEndingSoon": "Prova in scadenza: {{remaining}}" }, "changelog": { "title": "Novità", @@ -553,7 +556,8 @@ "openSettings": "Apri le impostazioni di {{name}}", "openUnread": "Apri {{name}}, {{displayCount}} messaggi non letti", "openUnread_other": "Apri {{name}}, {{displayCount}} messaggi non letti", - "openUnread_one": "Apri {{name}}, {{displayCount}} messaggio non letto" + "openUnread_one": "Apri {{name}}, {{displayCount}} messaggio non letto", + "openUnread_many": "Apri {{name}}, {{displayCount}} messaggi non letti" }, "list": { "createInstance": "Crea istanza", @@ -651,7 +655,7 @@ "startingSandbox": "Avvio della sandbox", "stoppedBody": "L'istanza di {{name}} si è fermata in modo imprevisto durante la configurazione.", "stoppedTitle": "Configurazione interrotta", - "timeoutBody": "La configurazione di {{name}} sta richiedendo più tempo del solito (oltre {{minutes}} minuti).", + "timeoutBody": "La configurazione di {{name}} sta richiedendo più tempo del solito (oltre {{displayMinutes}} minuti).", "timeoutTitle": "Più tempo del previsto" }, "unavailableDescription": "Per eseguire il provisioning di un'istanza è necessario un abbonamento KiloClaw attivo. Le istanze e gli abbonamenti esistenti continuano normalmente.", @@ -898,7 +902,7 @@ "focusAreas": "Aree di interesse", "mergeGate": "Gate di merge", "model": "Modello", - "nSelected": "{{count}} selezionati", + "nSelected": "{{displayCount}} selezionati", "proposedReviewMdGuidance": "Indicazioni REVIEW.md proposte", "repositories": "Repository", "reviewMemory": "Memoria di revisione", @@ -967,7 +971,7 @@ "triageReasoning": "Ragionamento del triage", "unknown": "Sconosciuto", "watchInCloudAgent": "Guarda in Cloud Agent", - "whereFound": "Dove è stato trovato ({{count}})", + "whereFound": "Dove è stato trovato ({{displayCount}})", "yes": "Sì" }, "analysisSettings": { @@ -1034,7 +1038,8 @@ "severityCriticalOnly": "Solo critica", "severityHighAndAbove": "Alta e superiore", "severityMediumAndAbove": "Media e superiore", - "title": "Automazione" + "title": "Automazione", + "queued_many": "{{displayCount}} risultati esistenti in coda per l'analisi." }, "commandRetry": { "discard": "Scarta" @@ -1047,11 +1052,11 @@ "confirmedExploitable": "Confermato sfruttabile", "couldNotLoad": "Impossibile caricare i dati della dashboard", "criticalOverdue": "Critici in ritardo", - "daysOverdue": "{{count}} giorni di ritardo", + "daysOverdue": "{{displayCount}} giorni di ritardo", "deadlineToday": "Scadenza raggiunta oggi", "filterByRepository": "Filtra per repository", "findings": "Risultati", - "findingsCount": "{{count}} risultati", + "findingsCount": "{{displayCount}} risultati", "highOverdue": "Alti in ritardo", "lastSynced": "Ultima sincronizzazione {{time}}", "manageRepositories": "Gestisci repository", @@ -1077,6 +1082,27 @@ "syncStatusUnavailable": "Stato della sincronizzazione non disponibile", "withinDeadline": "Entro la scadenza" }, + "dashboardMetrics": { + "openFindings": "Risultati aperti", + "openFindingsDetail": "{{critical}} critici, {{high}} alti", + "confirmedExploitable": "Confermato sfruttabile", + "confirmedExploitableDetail": "Rischio del progetto confermato dall'analisi", + "needsReview": "Richiede la tua revisione", + "needsReviewDetail": "Decisione umana richiesta", + "analysisIncomplete": "Analisi non completa", + "analysisIncompleteDetail": "Rischio del progetto ancora sconosciuto", + "slaCompliance": "Conformità SLA", + "notMeasured": "Non misurato", + "withinDeadlineDetail": "{{within}} di {{total}} entro la scadenza", + "noDeadlineData": "Nessun risultato ha ancora una scadenza SLA", + "deadlinePassed": "Scadenza superata", + "deadlinePassedDetail": "{{critical}} critici, {{high}} alti", + "dueThisWeek": "In scadenza questa settimana", + "dueThisWeekDetail": "{{exploitable}} confermati sfruttabili", + "noDeadline": "Nessuna scadenza", + "reviewSlaAssignment": "Revisione assegnazione SLA", + "allOpenFindingsTracked": "Tutti i risultati aperti tracciati" + }, "dismiss": { "alreadyResolvedDescription": "Questo risultato è già stato risolto e non può più essere ignorato.", "cannotDismissDescription": "Solo i proprietari dell'organizzazione e i responsabili della fatturazione possono ignorare i risultati.", @@ -1174,7 +1200,7 @@ "title": "Notifiche" }, "remediation": { - "attemptHistory": "Cronologia dei tentativi ({{count}})", + "attemptHistory": "Cronologia dei tentativi ({{displayCount}})", "attemptNumber": "Tentativo n. {{number}}", "branch": "Branch", "cancelMessage": "Security Agent interromperà il tentativo di remediation in corso.", @@ -1242,7 +1268,7 @@ "analysisModeSubtitle": "Analisi {{mode}}", "automation": "Automazione", "automationAllOff": "Tutto disattivato", - "automationCount": "{{count}} di 3 abilitati", + "automationCount": "{{displayCount}} di 3 abilitati", "couldNotLoadPermissions": "Impossibile caricare i permessi", "couldNotLoadRepositories": "Impossibile caricare le repository", "couldNotLoadSettings": "Impossibile caricare le impostazioni di Security Agent", @@ -1253,7 +1279,7 @@ "enabled": "Abilitato", "modelsAndAnalysis": "Modelli e analisi", "notifications": "Notifiche", - "notificationsCount": "{{count}} di 2 abilitate", + "notificationsCount": "{{displayCount}} di 2 abilitate", "off": "Disattivato", "on": "Attivato", "repositories": "Repository", @@ -1264,7 +1290,8 @@ "selectRepositories": "Seleziona repository", "selectRepositoriesSubtitle": "Scegli quali repository monitora Security Agent", "slaPolicy": "Criterio SLA", - "title": "Impostazioni" + "title": "Impostazioni", + "repositoriesCount_many": "{{displayCount}} repository selezionate" }, "settingsSave": { "discard": "Scarta", @@ -1341,7 +1368,9 @@ "cent_other": "centesimi", "dollar_one": "dollaro", "dollar": "dollari", - "dollar_other": "dollari" + "dollar_other": "dollari", + "cent_many": "centesimi", + "dollar_many": "dollari" }, "githubInstall": { "couldNotOpenMessage": "Impossibile avviare la configurazione della GitHub App. Riprova.", @@ -1437,7 +1466,8 @@ "partRenderer": { "updatedFileCount_one": "Aggiornato {{displayCount}} file", "updatedFileCount": "Aggiornati {{displayCount}} file", - "updatedFileCount_other": "Aggiornati {{displayCount}} file" + "updatedFileCount_other": "Aggiornati {{displayCount}} file", + "updatedFileCount_many": "Aggiornati {{displayCount}} file" }, "toolPatch": { "operationAdded": "Aggiunto", @@ -1462,9 +1492,9 @@ "toolTask": "attività", "readTodos": "Leggi le attività", "updateTodos": "Aggiorna le attività", - "linesBadge": "{{count}} righe", - "filesBadge": "{{count}} file", - "matchesBadge": "{{count}} corrispondenze" + "linesBadge": "{{displayCount}} righe", + "filesBadge": "{{displayCount}} file", + "matchesBadge": "{{displayCount}} corrispondenze" }, "readToolMarkdown": { "linesTruncated": "righe {{start}}–{{end}} (troncate)", @@ -1548,6 +1578,10 @@ "reportAiResponseFailedTerminal": "Questa risposta non può essere segnalata.", "reportAiResponseSubmitted": "Segnalazione inviata. Ricevuta {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Dettagli non disponibili", "textDisplay": "Visualizzazione testo", @@ -1606,7 +1640,7 @@ "preparationComplete": "Preparazione completata", "preparationFailed": "Preparazione non riuscita", "setupCommand": "Comando di configurazione {{index}}", - "setupCommandOf": "Comando di configurazione {{index}} di {{count}}" + "setupCommandOf": "Comando di configurazione {{index}} di {{displayCount}}" }, "permissionCard": { "title": "Autorizzazione necessaria", @@ -1643,7 +1677,7 @@ "submissionFailed": "Invio non riuscito. Riprova.", "questionAnnouncement": "L'agente ha bisogno del tuo input. Il compositore è in pausa mentre rispondi.", "permissionAnnouncement": "L'agente ha bisogno dell'autorizzazione per continuare. Il compositore è in pausa mentre decidi.", - "positionHint": "(1 di {{count}})", + "positionHint": "(1 di {{displayCount}})", "movedPastPrompt": "L'agente ha superato questo prompt. Questa scheda si chiuderà quando la sessione continua.", "waitingForAnswer": "L'agente attende la tua risposta. Mentre questa domanda è aperta, il tuo messaggio all'agente è in pausa.", "waitingForPermission": "L'agente attende l'autorizzazione. Mentre questa richiesta è aperta, il tuo messaggio all'agente è in pausa." @@ -1683,7 +1717,8 @@ "omitted_other": "{{displayCount}} elementi precedenti di questa sessione non possono essere visualizzati.", "couldNotLoad": "Impossibile caricare i messaggi precedenti.", "unavailable": "I messaggi precedenti non sono disponibili.", - "tooLarge": "I messaggi precedenti sono troppo grandi da caricare." + "tooLarge": "I messaggi precedenti sono troppo grandi da caricare.", + "omitted_many": "{{displayCount}} elementi precedenti di questa sessione non possono essere visualizzati." }, "markdownTable": { "viewTable": "Visualizza tabella", @@ -1695,7 +1730,9 @@ "rowCount_one": "riga", "rowCount": "righe", "rowCount_other": "righe", - "opensFullScreen": "apre a schermo intero" + "opensFullScreen": "apre a schermo intero", + "columnCount_many": "colonne", + "rowCount_many": "righe" }, "sessionFilter": { "title": "Filtra sessioni", @@ -1764,7 +1801,7 @@ "cameraAccessDisabled": "Accesso alla fotocamera disattivato", "cameraAccessMessage": "Consenti l'accesso alla fotocamera nelle Impostazioni per scattare una foto.", "couldNotOpenPhotoPicker": "Impossibile aprire il selettore di foto. Riavvia Kilo e riprova.", - "maxFilesAllowed": "Massimo {{count}} file consentiti", + "maxFilesAllowed": "Massimo {{displayCount}} file consentiti", "onlyAddingFiles": "Verranno aggiunti solo {{accepted}} di {{total}} file (max {{max}})" }, "composer": { @@ -1829,7 +1866,7 @@ "costPrefix": "costo {{cost}}", "costSuffix": ", costo {{cost}}", "tokensWindowUnavailable": "Contesto {{used}} token, finestra non disponibile", - "tokensUsage": "Contesto {{used}} di {{window}} token, {{percentage}}% usato", + "tokensUsage": "Contesto {{used}} di {{window}} token, {{percentage}} usato", "title": "Utilizzo del contesto", "used": "Usato", "remaining": "Rimanente", @@ -1838,7 +1875,7 @@ "usageReflectsLatest": "L'utilizzo riflette l'ultima risposta completata dell'assistente.", "tokenUsage": "Utilizzo dei token", "cacheRate": "Tariffa cache", - "modelsCount": "Modelli ({{count}})", + "modelsCount": "Modelli ({{displayCount}})", "tokenTotalsNote": "I totali dei token riguardano solo questa sessione ed escludono i token dei subagenti e delle sessioni figlie.", "subagents": "Subagenti", "subagentsDescription": "Costo residuo dalle sessioni figlie", @@ -1850,7 +1887,8 @@ "stepsCount_one": "{{steps}} passo", "stepsCount": "{{steps}} passi", "stepsCount_other": "{{steps}} passi", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_many": "{{steps}} passi" }, "prBadge": { "open": "pull request aperta", @@ -1994,7 +2032,7 @@ "connectedCli": "Su una CLI collegata", "newSessionOn": "Nuova sessione su {{name}}", "noMatchingSessions": "Nessuna sessione corrispondente.", - "onlyFirstFilesAttached": "Verranno allegati solo i primi {{count}} file.", + "onlyFirstFilesAttached": "Verranno allegati solo i primi {{displayCount}} file.", "staleMessage": "Questa condivisione non è più disponibile.", "retryableMessage": "Impossibile caricare le tue sessioni.", "emptyMessage": "Ancora nessuna sessione — avviane una nuova per inviare questo contenuto.", @@ -2027,7 +2065,7 @@ "otherAccountCopy": "Il Kilo Pass su questo account Apple appartiene a un account Kilo diverso. Accedi a quell'account Kilo per gestirlo.", "alreadySubscribed": "Hai già un abbonamento Kilo Pass.", "purchaseUnavailable": "L'acquisto di Kilo Pass non è disponibile al momento.", - "tierCredits": "${{amount}} in crediti", + "tierCredits": "{{amount}} in crediti", "perMonth": "{{price}}/mese", "verifyPurchaseFailed": "Impossibile verificare il tuo acquisto. Controlla la connessione e riprova.", "productsCouldNotLoad": "Impossibile caricare i prodotti Kilo Pass dall'App Store.", @@ -2038,7 +2076,7 @@ "manageFailed": "Impossibile aprire la gestione degli abbonamenti dell'App Store.", "kiloPassSetup": "Configurazione Kilo Pass", "subscriptionHeaderDescription": "Un abbonamento mensile che aggiunge crediti al tuo saldo Kilo per eseguire sessioni di coding AI in Kilo App — Cloud Agents, sessioni remote e chat KiloClaw.", - "tierDescription": "${{price}} di crediti a pagamento aggiunti ogni mese per l'uso di Kilo App.", + "tierDescription": "{{price}} di crediti a pagamento aggiunti ogni mese per l'uso di Kilo App.", "subscribe": "Abbonati", "subscribeDescription": "Crediti mensili con avanzamento bonus", "manage": "Gestisci", @@ -2046,7 +2084,7 @@ "statusPending": "Kilo Pass in attesa", "statusCanceling": "Kilo Pass in annullamento", "statusPastDue": "Kilo Pass in ritardo", - "monthlyCredits": "${{credits}} di crediti mensili", + "monthlyCredits": "{{credits}} di crediti mensili", "ends": "Termina il {{date}}", "periodEnd": "fine del periodo", "managedOnGooglePlay": "Gestito su Google Play", @@ -2150,17 +2188,17 @@ "accessDeniedDescription": "Non hai il permesso di visualizzare questa pull request.", "checkConnection": "Controlla connessione", "checks": { - "checksCount": "{{count}} controlli", + "checksCount": "{{displayCount}} controlli", "couldNotLoad": "Impossibile caricare i controlli.", - "failed": "{{count}} non riusciti", + "failed": "{{displayCount}} non riusciti", "noAccess": "Non hai accesso ai controlli di questo repository.", "noChecksReported": "Nessun controllo segnalato", "notAvailable": "I controlli non sono ancora disponibili. Il commit di testa potrebbe non essere stato elaborato, oppure la Kilo GitHub App non è installata sul repository di testa.", "openDetails": "Apri i dettagli di {{name}}", - "passed": "{{count}} superati", - "pending": "{{count}} in sospeso", + "passed": "{{displayCount}} superati", + "pending": "{{displayCount}} in sospeso", "retryChecks": "Riprova controlli", - "skipped": "{{count}} saltati", + "skipped": "{{displayCount}} saltati", "title": "Controlli", "viewOnGitHub": "Visualizza la PR su GitHub", "checkDetails": "dettagli dei controlli", @@ -2238,7 +2276,7 @@ "terminal": "Questo utente non può essere segnalato." } }, - "moreLinesAbove": "… {{count}} righe in più sopra", + "moreLinesAbove": "… {{displayCount}} righe in più sopra", "mute": "Silenzia", "mutedUser": "{{login}} silenziato", "noDiscussion": "Ancora nessuna discussione", @@ -2246,7 +2284,7 @@ "comment_one": "1 commento", "outdated": "Obsoleto", "quotedDiffSnippet": "Frammento di diff citato", - "reactionPill": "{{emoji}} reazione, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reazione, {{displayCount}} {{countLabel}}", "reaction": "reazioni", "reaction_other": "reazioni", "reaction_one": "reazione", @@ -2276,7 +2314,9 @@ "viewTerms": "Visualizza i termini", "termsAcceptRequired": "Devi accettare i Termini di servizio per pubblicare.", "termsCheckRetryCopy": "Impossibile verificare i Termini di servizio. Controlla la connessione e riprova.", - "termsOutdatedCopy": "I Termini di servizio sono cambiati. Riapri questa schermata per accettare la versione più recente." + "termsOutdatedCopy": "I Termini di servizio sono cambiati. Riapri questa schermata per accettare la versione più recente.", + "comment_many": "{{displayCount}} commenti", + "reaction_many": "reazioni" }, "entry": { "clearLink": "Cancella il link della pull request", @@ -2350,12 +2390,12 @@ "hunkRows": { "contextUnavailable": "Contesto non disponibile in questo ref", "expandAll": "Espandi tutto", - "expandAllLines": "Espandi tutte le {{count}} righe", + "expandAllLines": "Espandi tutte le {{displayCount}} righe", "expandContext": "Espandi contesto", - "expandLines": "Espandi {{count}} righe ({{start}}–{{end}})", - "expandLinesOfContext": "Espandi {{count}} righe di contesto", + "expandLines": "Espandi {{displayCount}} righe ({{start}}–{{end}})", + "expandLinesOfContext": "Espandi {{displayCount}} righe di contesto", "expandMoreContext": "Espandi altro contesto", - "expandMoreLines": "Espandi altre {{count}} righe ({{start}}–{{end}})", + "expandMoreLines": "Espandi altre {{displayCount}} righe ({{start}}–{{end}})", "failedToLoadContext": "Impossibile caricare il contesto — tocca per riprovare", "failedToLoadMoreFiles": "Impossibile caricare altri file — tocca per riprovare", "fileLoadedCount_one": "{{displayCount}} file caricato", @@ -2377,7 +2417,9 @@ "loadingLines": "Caricamento di {{loaded}} su {{total}} righe…", "loadingMoreFiles": "Caricamento di altri file…", "retryLoadingContext": "Riprova a caricare il contesto", - "retryLoadingNextPage": "Riprova a caricare la pagina successiva" + "retryLoadingNextPage": "Riprova a caricare la pagina successiva", + "fileLoadedCount_many": "{{displayCount}} file caricati", + "fileLoadedOfTotalCount_many": "{{displayCount}} file caricati di {{total}}" }, "inbox": { "couldNotLoad": "Impossibile caricare la posta in arrivo", @@ -2452,7 +2494,9 @@ "stateOpenApproved": "Aperta · Approvata", "stateOpenChangesRequested": "Aperta · Modifiche richieste", "stateOpenReviewRequired": "Aperta · Revisione richiesta", - "unknownAuthor": "Autore sconosciuto" + "unknownAuthor": "Autore sconosciuto", + "commit_many": "commit", + "file_many": "file" }, "pendingComment": { "allQueuedHint": "Tutti i commenti verranno inviati in un'unica richiesta in batch.", @@ -2500,9 +2544,10 @@ "pendingComment_one": "commento in sospeso", "summaryOptional": "Riepilogo (facoltativo)", "title": "Invia revisione", - "partialPostedMessage": "Pubblicati {{freshCount}} commenti. {{staleCount}} commenti fanno riferimento a un commit precedente e sono rimasti in coda.", - "submitCountOfTotal": "Invia {{freshCount}} di {{totalCount}} commenti", - "submitReview": "Invia revisione" + "partialPostedMessage": "Pubblicati {{displayFreshCount}} commenti. {{displayStaleCount}} commenti fanno riferimento a un commit precedente e sono rimasti in coda.", + "submitCountOfTotal": "Invia {{displayFreshCount}} di {{displayTotalCount}} commenti", + "submitReview": "Invia revisione", + "pendingComment_many": "commenti in sospeso" }, "fileStatus": { "added": "Aggiunto", @@ -2654,7 +2699,8 @@ "processingNeedsReview": "Elaborazione da verificare", "retry": "Riprova", "retryHint": "Riprova a caricare lo stato di Kilo Pass.", - "setupHint": "Apre la configurazione di Kilo Pass sul web." + "setupHint": "Apre la configurazione di Kilo Pass sul web.", + "paidSeat_many": "{{displayCount}} posti pagati" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index d147c69585..1937fdd8bb 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -201,7 +201,8 @@ "agents": "エージェント", "profile": "プロフィール", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}、タブ、{{total}}中{{position}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "最近", "common": "共通", "reactWith": "{{reaction}}でリアクション", - "accessibility": "{{emoji}}のリアクション、{{count}}" + "accessibility": "{{emoji}}のリアクション、{{displayCount}}" }, "composer": { "replyingTo": "返信先", @@ -271,7 +272,7 @@ "imageUnavailable": "画像を利用できません", "openFailed": "添付ファイルを開けませんでした。接続を確認して、もう一度お試しください。", "attachFailed": "ファイルを添付できませんでした", - "limit": "最大{{count}}個のファイルを添付できます。", + "limit": "最大{{displayCount}}個のファイルを添付できます。", "sizeRejection": "{{filename}}は添付上限の{{limit}}を超えています。", "unreadable": "{{filename}}を読み取れませんでした。", "pastedImage": "貼り付けた画像", @@ -343,6 +344,7 @@ "finalTermEnds": "最終期間の終了", "afterFinalTerm": "最終期間の後", "remaining": "残り", + "lessThanOneDay": "1日未満", "ends": "終了", "expires": "失効", "noActivePlan": "アクティブなプランがありません", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "Standardの月額料金", "perMonth": "/月", "earlybirdAccessUntil": "Earlybirdアクセスは{{date}}まで", - "earlybirdEnding": "Earlybird終了まであと{{days}}日", + "earlybirdEnding": "Earlybird終了まで: {{remaining}}", "paymentPastDue": "お支払いが期限を過ぎています。お支払い方法を更新してください。", "subscriptionCancels": "サブスクリプションは{{date}}に解約されます", - "trialDaysRemaining": "トライアル: 残り{{days}}日", - "trialEndingSoon": "トライアル終了間近: {{days}}" + "trialDaysRemaining": "トライアル: 残り{{remaining}}", + "trialEndingSoon": "トライアル終了間近: {{remaining}}" }, "changelog": { "title": "新着情報", @@ -665,7 +667,7 @@ "startingSandbox": "サンドボックスを起動中", "stoppedBody": "セットアップ中に{{name}}のインスタンスが予期せず停止しました。", "stoppedTitle": "セットアップが停止しました", - "timeoutBody": "{{name}}のセットアップに通常より時間がかかっています({{minutes}}分以上)。", + "timeoutBody": "{{name}}のセットアップに通常より時間がかかっています({{displayMinutes}}分以上)。", "timeoutTitle": "予想より時間がかかっています" }, "unavailableDescription": "インスタンスをプロビジョニングするには、現在のKiloClawサブスクリプションが必要です。既存のインスタンスとサブスクリプションは通常どおり継続されます。", @@ -912,7 +914,7 @@ "focusAreas": "重点領域", "mergeGate": "マージゲート", "model": "モデル", - "nSelected": "{{count}}件選択", + "nSelected": "{{displayCount}}件選択", "proposedReviewMdGuidance": "提案されたREVIEW.mdガイダンス", "repositories": "リポジトリ", "reviewMemory": "レビューメモリ", @@ -981,7 +983,7 @@ "triageReasoning": "トリアージの理由", "unknown": "不明", "watchInCloudAgent": "Cloud Agentで見る", - "whereFound": "検出場所({{count}})", + "whereFound": "検出場所({{displayCount}})", "yes": "はい" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "悪用可能と確認", "couldNotLoad": "ダッシュボードデータを読み込めませんでした", "criticalOverdue": "重大・期限超過", - "daysOverdue": "{{count}}日超過", + "daysOverdue": "{{displayCount}}日超過", "deadlineToday": "期限は本日です", "filterByRepository": "リポジトリで絞り込み", "findings": "所見", - "findingsCount": "{{count}}件の所見", + "findingsCount": "{{displayCount}}件の所見", "highOverdue": "高・期限超過", "lastSynced": "最終同期: {{time}}", "manageRepositories": "リポジトリを管理", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "同期ステータスを利用できません", "withinDeadline": "期限内" }, + "dashboardMetrics": { + "openFindings": "未解決の所見", + "openFindingsDetail": "重大 {{critical}}、高 {{high}}", + "confirmedExploitable": "悪用可能と確認", + "confirmedExploitableDetail": "分析によりプロジェクトのリスクが確認されました", + "needsReview": "確認が必要です", + "needsReviewDetail": "人間の判断が必要です", + "analysisIncomplete": "分析が完了していません", + "analysisIncompleteDetail": "プロジェクトのリスクはまだ不明です", + "slaCompliance": "SLA コンプライアンス", + "notMeasured": "未測定", + "withinDeadlineDetail": "{{total}} 件中 {{within}} 件が期限内", + "noDeadlineData": "SLA 期限のある所見はまだありません", + "deadlinePassed": "期限切れ", + "deadlinePassedDetail": "重大 {{critical}}、高 {{high}}", + "dueThisWeek": "今週期限", + "dueThisWeekDetail": "悪用可能 {{exploitable}} 件", + "noDeadline": "期限なし", + "reviewSlaAssignment": "SLA 割り当ての確認", + "allOpenFindingsTracked": "すべての未解決の所見を追跡しています" + }, "dismiss": { "alreadyResolvedDescription": "この所見はすでに解決されており、却下を受け付けません。", "cannotDismissDescription": "所見を却下できるのは、組織のオーナーと請求管理者のみです。", @@ -1188,7 +1211,7 @@ "title": "通知" }, "remediation": { - "attemptHistory": "試行履歴({{count}})", + "attemptHistory": "試行履歴({{displayCount}})", "attemptNumber": "試行 #{{number}}", "branch": "ブランチ", "cancelMessage": "Security Agentは進行中の修復試行を停止します。", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "{{mode}}分析", "automation": "自動化", "automationAllOff": "すべてオフ", - "automationCount": "3件中{{count}}件が有効", + "automationCount": "3件中{{displayCount}}件が有効", "couldNotLoadPermissions": "権限を読み込めませんでした", "couldNotLoadRepositories": "リポジトリを読み込めませんでした", "couldNotLoadSettings": "Security Agentの設定を読み込めませんでした", @@ -1267,7 +1290,7 @@ "enabled": "有効", "modelsAndAnalysis": "モデルと分析", "notifications": "通知", - "notificationsCount": "2件中{{count}}件が有効", + "notificationsCount": "2件中{{displayCount}}件が有効", "off": "オフ", "on": "オン", "repositories": "リポジトリ", @@ -1476,9 +1499,9 @@ "toolTask": "タスク", "readTodos": "タスクを読む", "updateTodos": "タスクを更新", - "linesBadge": "{{count}}行", - "filesBadge": "{{count}}ファイル", - "matchesBadge": "{{count}}件" + "linesBadge": "{{displayCount}}行", + "filesBadge": "{{displayCount}}ファイル", + "matchesBadge": "{{displayCount}}件" }, "readToolMarkdown": { "linesTruncated": "{{start}}–{{end}}行目(切り詰め)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "この応答は報告できません。", "reportAiResponseSubmitted": "報告を送信しました。受領番号 {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "詳細を利用できません", "textDisplay": "テキスト表示", @@ -1620,7 +1647,7 @@ "preparationComplete": "準備が完了しました", "preparationFailed": "準備に失敗しました", "setupCommand": "セットアップコマンド {{index}}", - "setupCommandOf": "セットアップコマンド {{index}} / {{count}}" + "setupCommandOf": "セットアップコマンド {{index}} / {{displayCount}}" }, "permissionCard": { "title": "権限が必要です", @@ -1657,7 +1684,7 @@ "submissionFailed": "送信に失敗しました。もう一度お試しください。", "questionAnnouncement": "エージェントが入力を必要としています。回答中はコンポーザーが一時停止しています。", "permissionAnnouncement": "続行するにはエージェントの権限が必要です。判断中はコンポーザーが一時停止しています。", - "positionHint": "({{count}}件中1件目)", + "positionHint": "({{displayCount}}件中1件目)", "movedPastPrompt": "エージェントはこのプロンプトを通過しました。セッションが続行するとこのカードは閉じます。", "waitingForAnswer": "エージェントが回答を待っています。この質問が開いている間、エージェントへのメッセージは一時停止されます。", "waitingForPermission": "エージェントが権限を待っています。このリクエストが開いている間、エージェントへのメッセージは一時停止されます。" @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "カメラアクセスが無効です", "cameraAccessMessage": "写真を撮るには設定でカメラアクセスを許可してください。", "couldNotOpenPhotoPicker": "写真ピッカーを開けませんでした。Kiloを再起動してもう一度お試しください。", - "maxFilesAllowed": "最大{{count}}個のファイルまで添付できます", + "maxFilesAllowed": "最大{{displayCount}}個のファイルまで添付できます", "onlyAddingFiles": "{{total}}個中{{accepted}}個のファイルのみ追加します(最大{{max}}個)" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "コスト {{cost}}", "costSuffix": "、コスト {{cost}}", "tokensWindowUnavailable": "コンテキスト {{used}}トークン、ウィンドウを利用できません", - "tokensUsage": "コンテキスト {{window}}トークン中{{used}}トークン、{{percentage}}%使用", + "tokensUsage": "コンテキスト {{window}}トークン中{{used}}トークン、{{percentage}}使用", "title": "コンテキスト使用量", "used": "使用済み", "remaining": "残り", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "使用量は直近に完了したアシスタントの応答を反映しています。", "tokenUsage": "トークン使用量", "cacheRate": "キャッシュ率", - "modelsCount": "モデル({{count}})", + "modelsCount": "モデル({{displayCount}})", "tokenTotalsNote": "トークン合計はこのセッションのみを対象とし、サブエージェント/子セッションのトークンは含みません。", "subagents": "サブエージェント", "subagentsDescription": "子セッションからの残余コスト", @@ -1994,7 +2021,7 @@ "connectedCli": "接続されたCLI上", "newSessionOn": "{{name}}で新しいセッション", "noMatchingSessions": "一致するセッションはありません。", - "onlyFirstFilesAttached": "最初の{{count}}個のファイルのみが添付されます。", + "onlyFirstFilesAttached": "最初の{{displayCount}}個のファイルのみが添付されます。", "staleMessage": "この共有は利用できなくなりました。", "retryableMessage": "セッションを読み込めませんでした。", "emptyMessage": "セッションがまだありません。送信するには新しいセッションを開始してください。", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "このAppleアカウントのKilo Passは別のKiloアカウントに属しています。管理するにはそのKiloアカウントにサインインしてください。", "alreadySubscribed": "すでにKilo Passサブスクリプションに登録されています。", "purchaseUnavailable": "現在Kilo Passを購入できません。", - "tierCredits": "{{amount}}ドル分のクレジット", + "tierCredits": "{{amount}}分のクレジット", "perMonth": "{{price}}/月", "verifyPurchaseFailed": "購入を確認できませんでした。接続を確認して、もう一度お試しください。", "productsCouldNotLoad": "App StoreからKilo Pass製品を読み込めませんでした。", @@ -2038,7 +2065,7 @@ "manageFailed": "App Storeのサブスクリプション管理を開けませんでした。", "kiloPassSetup": "Kilo Passセットアップ", "subscriptionHeaderDescription": "毎月のサブスクリプションで、Kilo AppでのAIコーディングセッション(Cloud Agents、リモートセッション、KiloClawチャット)の実行に使えるクレジットをKilo残高に追加します。", - "tierDescription": "Kilo Appの利用に毎月${{price}}の有料クレジットが追加されます。", + "tierDescription": "Kilo Appの利用に毎月{{price}}の有料クレジットが追加されます。", "subscribe": "登録する", "subscribeDescription": "ボーナス進行付きの月間クレジット", "manage": "管理", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass 保留中", "statusCanceling": "Kilo Pass 解約中", "statusPastDue": "Kilo Pass 支払い期限超過", - "monthlyCredits": "毎月${{credits}}のクレジット", + "monthlyCredits": "毎月{{credits}}のクレジット", "ends": "{{date}}に終了", "periodEnd": "期間終了", "managedOnGooglePlay": "Google Playで管理", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "このプルリクエストを表示する権限がありません。", "checkConnection": "接続を確認", "checks": { - "checksCount": "{{count}}件のチェック", + "checksCount": "{{displayCount}}件のチェック", "couldNotLoad": "チェックを読み込めませんでした。", - "failed": "{{count}}件失敗", + "failed": "{{displayCount}}件失敗", "noAccess": "このリポジトリのチェックにアクセスできません。", "noChecksReported": "チェックは報告されていません", "notAvailable": "チェックはまだ利用できません。ヘッドコミットが処理されていないか、ヘッドリポジトリにKilo GitHub Appがインストールされていない可能性があります。", "openDetails": "{{name}}の詳細を開く", - "passed": "{{count}}件成功", - "pending": "{{count}}件保留中", + "passed": "{{displayCount}}件成功", + "pending": "{{displayCount}}件保留中", "retryChecks": "チェックを再試行", - "skipped": "{{count}}件スキップ", + "skipped": "{{displayCount}}件スキップ", "title": "チェック", "viewOnGitHub": "GitHubでPRを表示", "checkDetails": "チェックの詳細", @@ -2238,7 +2265,7 @@ "terminal": "このユーザーは報告できません。" } }, - "moreLinesAbove": "… 上に{{count}}行あります", + "moreLinesAbove": "… 上に{{displayCount}}行あります", "mute": "ミュート", "mutedUser": "{{login}}をミュートしました", "noDiscussion": "まだディスカッションはありません", @@ -2246,7 +2273,7 @@ "comment_one": "1件のコメント", "outdated": "古い", "quotedDiffSnippet": "引用されたdiffスニペット", - "reactionPill": "{{emoji}}のリアクション、{{count}}{{countLabel}}", + "reactionPill": "{{emoji}}のリアクション、{{displayCount}}{{countLabel}}", "reaction": "件", "reaction_other": "件", "reaction_one": "件", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "このrefではコンテキストを利用できません", "expandAll": "すべて展開", - "expandAllLines": "{{count}}行すべて展開", + "expandAllLines": "{{displayCount}}行すべて展開", "expandContext": "コンテキストを展開", - "expandLines": "{{count}}行を展開({{start}}–{{end}})", - "expandLinesOfContext": "{{count}}行のコンテキストを展開", + "expandLines": "{{displayCount}}行を展開({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}}行のコンテキストを展開", "expandMoreContext": "さらにコンテキストを展開", - "expandMoreLines": "さらに{{count}}行を展開({{start}}–{{end}})", + "expandMoreLines": "さらに{{displayCount}}行を展開({{start}}–{{end}})", "failedToLoadContext": "コンテキストを読み込めませんでした — タップして再試行", "failedToLoadMoreFiles": "さらにファイルを読み込めませんでした — タップして再試行", "fileLoadedCount_one": "{{displayCount}}件のファイルを読み込みました", @@ -2500,8 +2527,8 @@ "pendingComment_one": "保留中のコメント", "summaryOptional": "概要(任意)", "title": "レビューを送信", - "partialPostedMessage": "{{freshCount}}件のコメントを投稿しました。{{staleCount}}件のコメントは古いコミットを指しているため、キューに残りました。", - "submitCountOfTotal": "{{totalCount}}件中{{freshCount}}件のコメントを送信", + "partialPostedMessage": "{{displayFreshCount}}件のコメントを投稿しました。{{displayStaleCount}}件のコメントは古いコミットを指しているため、キューに残りました。", + "submitCountOfTotal": "{{displayTotalCount}}件中{{displayFreshCount}}件のコメントを送信", "submitReview": "レビューを送信" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index 0a027d5625..26ed535318 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -206,11 +206,11 @@ "loadingLines": "იტვირთება {{loaded}} {{total}}-დან ხაზი…", "expandContext": "კონტექსტის გაშლა", "expandMoreContext": "მეტი კონტექსტის გაშლა", - "expandLines": "{{count}} ხაზის გაშლა ({{start}}–{{end}})", - "expandMoreLines": "კიდევ {{count}} ხაზის გაშლა ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} ხაზის გაშლა კონტექსტიდან", + "expandLines": "{{displayCount}} ხაზის გაშლა ({{start}}–{{end}})", + "expandMoreLines": "კიდევ {{displayCount}} ხაზის გაშლა ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} ხაზის გაშლა კონტექსტიდან", "expandAll": "ყველაფრის გაშლა", - "expandAllLines": "ყველა {{count}} ხაზის გაშლა", + "expandAllLines": "ყველა {{displayCount}} ხაზის გაშლა", "loadingMoreFiles": "მეტი ფაილი იტვირთება…", "retryLoadingNextPage": "შემდეგი გვერდის ჩატვირთვის ხელახლა ცდა", "failedToLoadMoreFiles": "მეტი ფაილის ჩატვირთვა ვერ მოხერხდა — შეეხეთ ხელახლა საცდელად", @@ -301,7 +301,7 @@ "closeReactions": "რეაქციების დახურვა", "reactionsTitle": "რეაქციები", "addReaction": "რეაქციის დამატება", - "reactionPill": "{{emoji}} რეაქცია, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} რეაქცია, {{displayCount}} {{countLabel}}", "reaction_one": "რეაქცია", "reaction": "რეაქცია", "reaction_other": "რეაქცია", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ამ პულ-რექვესთზე არ არის რეცენზიის თემები ან საუბრის კომენტარები.", "reviewFiles": "რეცენზიის ფაილები", "quotedDiffSnippet": "ციტირებული diff ნაწყვეტი", - "moreLinesAbove": "… კიდევ {{count}} ხაზი ზემოთ", + "moreLinesAbove": "… კიდევ {{displayCount}} ხაზი ზემოთ", "termsAcceptRequired": "პოსტისთვის უნდა მიიღოთ მომსახურების პირობები.", "termsOutdatedCopy": "მომსახურების პირობები შეიცვალა. ხელახლა გახსენით ეს ეკრანი უახლესი ვერსიის მისაღებად.", "termsCheckRetryCopy": "მომსახურების პირობების შემოწმება ვერ მოხერხდა. შეამოწმეთ თქვენი კავშირი და სცადეთ კიდევ." @@ -395,11 +395,11 @@ "retryChecks": "შემოწმებების ხელახლა ცდა", "viewOnGitHub": "PR-ის ნახვა GitHub-ზე", "noChecksReported": "შემოწმებები არ არის მოხსენებული", - "passed": "{{count}} გავიდა", - "failed": "{{count}} ვერ გავიდა", - "pending": "{{count}} მოლოდინში", - "skipped": "{{count}} გამოტოვებულია", - "checksCount": "{{count}} შემოწმება", + "passed": "{{displayCount}} გავიდა", + "failed": "{{displayCount}} ვერ გავიდა", + "pending": "{{displayCount}} მოლოდინში", + "skipped": "{{displayCount}} გამოტოვებულია", + "checksCount": "{{displayCount}} შემოწმება", "checkDetails": "შემოწმების დეტალები", "pullRequest": "პულ-რექვესთი" }, @@ -459,9 +459,9 @@ "pendingComment_one": "მოლოდინის კომენტარი", "pendingComment": "მოლოდინის კომენტარი", "pendingComment_other": "მოლოდინის კომენტარი", - "submitCountOfTotal": "{{freshCount}} {{totalCount}}-დან კომენტარის გაგზავნა", + "submitCountOfTotal": "{{displayFreshCount}} {{displayTotalCount}}-დან კომენტარის გაგზავნა", "submitReview": "რეცენზიის გაგზავნა", - "partialPostedMessage": "გამოქვეყნდა {{freshCount}} კომენტარი. {{staleCount}} კომენტარი მიუთითებს ძველ commit-ზე და დარჩა თქვენს რიგში." + "partialPostedMessage": "გამოქვეყნდა {{displayFreshCount}} კომენტარი. {{displayStaleCount}} კომენტარი მიუთითებს ძველ commit-ზე და დარჩა თქვენს რიგში." }, "reconnectNotice": { "title": "GitHub კავშირი ვადაგასულია", @@ -580,7 +580,8 @@ "agents": "აგენტები", "profile": "პროფილი", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ჩანართი, {{position}} {{total}}-დან" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ახლოები", "common": "ჩვეულებრივი", "reactWith": "რეაქცია {{reaction}}-ით", - "accessibility": "{{emoji}} რეაქცია, {{count}}" + "accessibility": "{{emoji}} რეაქცია, {{displayCount}}" }, "composer": { "replyingTo": "პასუხი ეძლევა", @@ -650,7 +651,7 @@ "imageUnavailable": "სურათი მიუწვდომელია", "openFailed": "მიმაგრებული ფაილის გახსნა ვერ მოხერხდა. შეამოწმეთ თქვენი კავშირი და სცადეთ კიდევ.", "attachFailed": "ფაილის მიმაგრება ვერ მოხერხდა", - "limit": "შეგიძლიათ მიამაგროთ {{count}}-მდე ფაილი.", + "limit": "შეგიძლიათ მიამაგროთ {{displayCount}}-მდე ფაილი.", "sizeRejection": "{{filename}} აჭარბებს {{limit}} მიმაგრების ლიმიტს.", "unreadable": "{{filename}} წაკითხვა ვერ მოხერხდა.", "pastedImage": "ჩასმული სურათი", @@ -722,6 +723,7 @@ "finalTermEnds": "საბოლოო ვადა მთავრდება", "afterFinalTerm": "საბოლოო ვადის შემდეგ", "remaining": "დარჩენილი", + "lessThanOneDay": "1 დღეზე ნაკლები", "ends": "მთავრდება", "expires": "იწურება", "noActivePlan": "აქტიური გეგმა არ არის", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "თქვენი სტანდარტული თვიური ფასი", "perMonth": "/თვე", "earlybirdAccessUntil": "ადრეული ფრინველის წვდომა {{date}}-მდე", - "earlybirdEnding": "ადრეული ფრინველი მთავრდება: {{days}} დღე დარჩა", + "earlybirdEnding": "ადრეული ფრინველი მთავრდება: {{remaining}}", "paymentPastDue": "გადახდა დაგვიანებულია. გთხოვთ, განაახლოთ გადახდის მეთოდი.", "subscriptionCancels": "გამოწერა გაუქმდება {{date}}", - "trialDaysRemaining": "საცდელი პერიოდი: {{days}} დღე დარჩა", - "trialEndingSoon": "საცდელი პერიოდი მალე მთავრდება: {{days}}" + "trialDaysRemaining": "საცდელი პერიოდი: {{remaining}} დარჩა", + "trialEndingSoon": "საცდელი პერიოდი მალე მთავრდება: {{remaining}}" }, "changelog": { "title": "რა არის ახალი", @@ -996,7 +998,7 @@ "stalledTitle": "რაღაც შეფერხდა", "stalledBody": "ჩვენ ვერ დავასრულეთ {{name}}-ის დაყენება. სცადეთ ხელახლა, ან მოგვწერეთ hi@kilo.ai-ზე, თუ ეს ასე გრძელდება.", "timeoutTitle": "უფრო დიდხანს გრძელდება, ვიდრე მოსალოდნელი იყო", - "timeoutBody": "{{name}}-ის დაყენება უფრო დიდხანს გრძელდება, ვიდრე ჩვეულებრივ ({{minutes}} წუთზე მეტი).", + "timeoutBody": "{{name}}-ის დაყენება უფრო დიდხანს გრძელდება, ვიდრე ჩვეულებრივ ({{displayMinutes}} წუთზე მეტი).", "continueInBackground": "გაგრძელება ფონზე", "settingUp": "{{name}}-ის დაყენება", "finishingSetup": "დაყენების დასრულება", @@ -1287,7 +1289,7 @@ "mergeGate": "შერწყმის კარიბჭე", "repositories": "რეპოზიტორები", "allRepositories": "ყველა რეპოზიტორი", - "nSelected": "{{count}} არჩეულია", + "nSelected": "{{displayCount}} არჩეულია", "reviewMemory": "მიმოხილვის მეხსიერება", "proposedReviewMdGuidance": "შემოთავაზებული REVIEW.md სახელმძღვანელო" }, @@ -1391,14 +1393,14 @@ "analyzed": "გაანალიზებულია", "exploitabilityReasoning": "ექსპლოატირებადობის დასაბუთება", "suggestedFix": "შემოთავაზებული შესწორება", - "whereFound": "სად იქნა ნაპოვნი ({{count}})", + "whereFound": "სად იქნა ნაპოვნი ({{displayCount}})", "fullReport": "სრული გენერირებული ანგარიში", "unknown": "უცნობი", "yes": "კი", "no": "არა" }, "dashboard": { - "findingsCount": "{{count}} მონაპოვარი", + "findingsCount": "{{displayCount}} მონაპოვარი", "notMeasured": "არ არის შეფასებული", "actFirst": "ჯერ იმოქმედეთ", "slaPosture": "SLA მდგომარეობა", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "რეპოზიტორის მოქმედების გეგმა", "noOpenFindings": "არ არის ღია მონაპოვარი, რომელიც ყურადღებას მოითხოვს", "deadlineToday": "ვადა დღეს ამოიწურა", - "daysOverdue": "{{count}} დღე ვადაგადაცილებული", + "daysOverdue": "{{displayCount}} დღე ვადაგადაცილებული", "withinDeadline": "ვადაშია", "criticalOverdue": "კრიტიკული ვადაგადაცილებული", "highOverdue": "მაღალი ვადაგადაცილებული", @@ -1435,6 +1437,27 @@ "syncQueued": "სინქრონიზაცია რიგშია", "syncStatusUnavailable": "სინქრონიზაციის სტატუსი მიუწვდომელია" }, + "dashboardMetrics": { + "openFindings": "ღია მონაპოვარი", + "openFindingsDetail": "{{critical}} კრიტიკული, {{high}} მაღალი", + "confirmedExploitable": "დადასტურებული ექსპლოატირებადი", + "confirmedExploitableDetail": "პროექტის რისკი დადასტურებულია ანალიზით", + "needsReview": "მოითხოვს თქვენს განხილვას", + "needsReviewDetail": "საჭიროა ადამიანის გადაწყვეტილება", + "analysisIncomplete": "ანალიზი არ არის დასრულებული", + "analysisIncompleteDetail": "პროექტის რისკი ჯერ უცნობია", + "slaCompliance": "SLA შესაბამისობა", + "notMeasured": "არ არის გაზომილი", + "withinDeadlineDetail": "{{within}} {{total}}-დან ვადაშია", + "noDeadlineData": "არცერთ მონაპოვარს ჯერ არ აქვს SLA ვადა", + "deadlinePassed": "ვადა ამოიწურა", + "deadlinePassedDetail": "{{critical}} კრიტიკული, {{high}} მაღალი", + "dueThisWeek": "ვადა ამ კვირაშია", + "dueThisWeekDetail": "{{exploitable}} დადასტურებული ექსპლოატირებადი", + "noDeadline": "ვადის გარეშე", + "reviewSlaAssignment": "SLA მინიჭების განხილვა", + "allOpenFindingsTracked": "ყველა ღია მონაპოვარი თვალყურს ადევნებს" + }, "dismiss": { "title": "მონაპოვრის გაუქმება", "submit": "მონაპოვრის გაუქმება", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ანალიზი", "automation": "ავტომატიზაცია", "automationAllOff": "ყველა გამორთული", - "automationCount": "ჩართულია {{count}} 3-დან", + "automationCount": "ჩართულია {{displayCount}} 3-დან", "notifications": "შეტყობინებები", - "notificationsCount": "ჩართულია {{count}} 2-დან", + "notificationsCount": "ჩართულია {{displayCount}} 2-დან", "slaPolicy": "SLA პოლიტიკა", "disabledNoManage": "Security Agent გამორთულია. მხოლოდ ორგანიზაციის მფლობელებს და ბილინგ მენეჯერებს შეუძლიათ მისი ჩართვა.", "disabledNoRepo": "Security Agent-ის ჩართვამდე აირჩიეთ მინიმუმ ერთი რეპოზიტორი.", @@ -1524,7 +1547,7 @@ "openPullRequest": "pull request-ის გახსნა{{number}}", "openDraftPullRequest": "დრაფტ pull request-ის გახსნა{{number}}", "progress": "პროგრესი", - "attemptHistory": "მცდელობების ისტორია ({{count}})", + "attemptHistory": "მცდელობების ისტორია ({{displayCount}})", "attemptNumber": "მცდელობა #{{number}}", "startedBy": "დაიწყო", "model": "მოდელი", @@ -1855,9 +1878,9 @@ "toolTask": "დავალება", "readTodos": "Todo-ების წაკითხვა", "updateTodos": "Todo-ების განახლება", - "linesBadge": "{{count}} ხაზი", - "filesBadge": "{{count}} ფაილი", - "matchesBadge": "{{count}} დამთხვევა" + "linesBadge": "{{displayCount}} ხაზი", + "filesBadge": "{{displayCount}} ფაილი", + "matchesBadge": "{{displayCount}} დამთხვევა" }, "readToolMarkdown": { "linesTruncated": "ხაზები {{start}}–{{end}} (შეკვეცილია)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ამ პასუხის მოხსენება შეუძლებელია.", "reportAiResponseSubmitted": "მოხსენება გაიგზავნა. ქვითარი {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "დეტალები მიუწვდომელია", "textDisplay": "ტექსტის ჩვენება", @@ -1999,7 +2026,7 @@ "preparationComplete": "მომზადება დასრულდა", "preparationFailed": "მომზადება ვერ მოხერხდა", "setupCommand": "დაყენების ბრძანება {{index}}", - "setupCommandOf": "დაყენების ბრძანება {{index}} / {{count}}" + "setupCommandOf": "დაყენების ბრძანება {{index}} / {{displayCount}}" }, "permissionCard": { "title": "ნებართვა საჭიროა", @@ -2036,7 +2063,7 @@ "submissionFailed": "გაგზავნა ვერ მოხერხდა. გთხოვთ, სცადოთ თავიდან.", "questionAnnouncement": "აგენტს თქვენი შეტანა სჭირდება. კომპოზიტორი შეჩერებულია, სანამ არ უპასუხებთ.", "permissionAnnouncement": "აგენტს ნებართვა სჭირდება გასაგრძელებლად. კომპოზიტორი შეჩერებულია, სანამ არ გადაწყვეტთ.", - "positionHint": "({{count}}-დან 1)", + "positionHint": "({{displayCount}}-დან 1)", "movedPastPrompt": "აგენტმა ეს მოთხოვნა უკვე გადაიარა. ეს ბარათი დაიხურება, როცა სესია გაგრძელდება.", "waitingForAnswer": "აგენტი ელოდება თქვენს პასუხს. სანამ ეს შეკითხვა ღიაა, აგენტისთვის გაგზავნილი თქვენი შეტყობინება შეჩერებულია.", "waitingForPermission": "აგენტი ელოდება ნებართვას. სანამ ეს მოთხოვნა ღიაა, აგენტისთვის გაგზავნილი თქვენი შეტყობინება შეჩერებულია." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "კამერაზე წვდომა გამორთულია", "cameraAccessMessage": "ფოტოს გადასაღებად დაუშვით კამერაზე წვდომა პარამეტრებში.", "couldNotOpenPhotoPicker": "ფოტოს ამომრჩევის გახსნა ვერ მოხერხდა. გადატვირთეთ Kilo და სცადეთ თავიდან.", - "maxFilesAllowed": "მაქსიმუმ {{count}} ფაილი დაშვებულია", + "maxFilesAllowed": "მაქსიმუმ {{displayCount}} ფაილი დაშვებულია", "onlyAddingFiles": "{{total}}-დან მხოლოდ {{accepted}} ემატება (მაქსიმუმ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ღირებულება {{cost}}", "costSuffix": ", ღირებულება {{cost}}", "tokensWindowUnavailable": "კონტექსტი {{used}} ტოკენი, ფანჯარა მიუწვდომელია", - "tokensUsage": "კონტექსტი {{used}} {{window}}-დან ტოკენი, გამოყენებულია {{percentage}}%", + "tokensUsage": "კონტექსტი {{used}} {{window}}-დან ტოკენი, გამოყენებულია {{percentage}}", "title": "კონტექსტის გამოყენება", "used": "გამოყენებულია", "remaining": "დარჩენილია", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "გამოყენება ასახავს ბოლო დასრულებულ ასისტენტის პასუხს.", "tokenUsage": "ტოკენების გამოყენება", "cacheRate": "ქეშის მაჩვენებელი", - "modelsCount": "მოდელები ({{count}})", + "modelsCount": "მოდელები ({{displayCount}})", "tokenTotalsNote": "ტოკენების ჯამები მოიცავს მხოლოდ ამ სესიას და გამორიცხავს ქვეაგენტის/ქვეესიის ტოკენებს.", "subagents": "ქვეაგენტები", "subagentsDescription": "ნარჩენი ღირებულება ქვეესიებიდან", @@ -2373,7 +2400,7 @@ "connectedCli": "დაკავშირებულ CLI-ზე", "newSessionOn": "ახალი სესია {{name}}-ზე", "noMatchingSessions": "შესაბამისი სესიები არ არის.", - "onlyFirstFilesAttached": "მხოლოდ პირველი {{count}} ფაილი დაირთვება.", + "onlyFirstFilesAttached": "მხოლოდ პირველი {{displayCount}} ფაილი დაირთვება.", "staleMessage": "ეს გაზიარება აღარ არის ხელმისაწვდომი.", "retryableMessage": "თქვენი სესიების ჩატვირთვა ვერ მოხერხდა.", "emptyMessage": "ჯერ სესიები არ არის — დაიწყეთ ახალი ამის გასაგზავნად.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "ეს Apple ანგარიშზე არსებული Kilo Pass სხვა Kilo ანგარიშს ეკუთვნის. შედით ამ Kilo ანგარიშში მის სამართავად.", "alreadySubscribed": "თქვენ უკვე გაქვთ Kilo Pass გამოწერა.", "purchaseUnavailable": "Kilo Pass შესყიდვა ამჟამად მიუწვდომელია.", - "tierCredits": "${{amount}} კრედიტი", + "tierCredits": "{{amount}} კრედიტი", "perMonth": "{{price}}/თვე", "verifyPurchaseFailed": "თქვენი შესყიდვის გადამოწმება ვერ მოხერხდა. შეამოწმეთ კავშირი და სცადეთ თავიდან.", "productsCouldNotLoad": "Kilo Pass პროდუქტების App Store-იდან ჩატვირთვა ვერ მოხერხდა.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store გამოწერის მართვის გახსნა ვერ მოხერხდა.", "kiloPassSetup": "Kilo Pass დაყენება", "subscriptionHeaderDescription": "ყოველთვიური გამოწერა, რომელიც თქვენს Kilo ბალანსს კრედიტებს ამატებს AI კოდირების სესიებისთვის Kilo აპში — Cloud აგენტები, დისტანციური სესიები და KiloClaw ჩატები.", - "tierDescription": "${{price}} გადახდილი კრედიტი ყოველთვიურად Kilo აპის გამოყენებისთვის.", + "tierDescription": "{{price}} გადახდილი კრედიტი ყოველთვიურად Kilo აპის გამოყენებისთვის.", "subscribe": "გამოწერა", "subscribeDescription": "ყოველთვიური კრედიტები ბონუს პროგრესით", "manage": "მართვა", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass მოლოდინშია", "statusCanceling": "Kilo Pass გაუქმდება", "statusPastDue": "Kilo Pass ვადაგადაცილებულია", - "monthlyCredits": "${{credits}} ყოველთვიური კრედიტი", + "monthlyCredits": "{{credits}} ყოველთვიური კრედიტი", "ends": "მთავრდება {{date}}", "periodEnd": "პერიოდის დასასრული", "managedOnGooglePlay": "მართვა Google Play-ზე", diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index 9f864a876f..5e8100c8b3 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}}-ден {{loaded}} жол жүктелуде…", "expandContext": "Контекстті ашу", "expandMoreContext": "Контекстті көбірек ашу", - "expandLines": "{{count}} жолды ашу ({{start}}–{{end}})", - "expandMoreLines": "Тағы {{count}} жолды ашу ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} контекст жолын ашу", + "expandLines": "{{displayCount}} жолды ашу ({{start}}–{{end}})", + "expandMoreLines": "Тағы {{displayCount}} жолды ашу ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} контекст жолын ашу", "expandAll": "Барлығын ашу", - "expandAllLines": "Барлық {{count}} жолды ашу", + "expandAllLines": "Барлық {{displayCount}} жолды ашу", "loadingMoreFiles": "Қосымша файлдар жүктелуде…", "retryLoadingNextPage": "Келесі бетті жүктеуді қайталау", "failedToLoadMoreFiles": "Қосымша файлдарды жүктеу сәтсіз аяқталды — қайта көру үшін түртіңіз", @@ -301,7 +301,7 @@ "closeReactions": "Реакцияларды жабу", "reactionsTitle": "Реакциялар", "addReaction": "Реакция қосу", - "reactionPill": "{{emoji}} реакция, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} реакция, {{displayCount}} {{countLabel}}", "reaction_one": "реакция", "reaction": "реакциялар", "reaction_other": "реакциялар", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Бұл pull request-те рецензия тізбектері немесе сөйлесу пікірлері жоқ.", "reviewFiles": "Файлдарды рецензиялау", "quotedDiffSnippet": "Дәйексөз алынған diff үзіндісі", - "moreLinesAbove": "… жоғарыда тағы {{count}} жол", + "moreLinesAbove": "… жоғарыда тағы {{displayCount}} жол", "termsAcceptRequired": "Жариялау үшін Қызмет көрсету шарттарын қабылдау керек.", "termsOutdatedCopy": "Қызмет көрсету шарттары өзгерді. Соңғы нұсқаны қабылдау үшін осы экранды қайта ашыңыз.", "termsCheckRetryCopy": "Қызмет көрсету шарттарын тексеру мүмкін болмады. Қосылымды тексеріп, қайта көріңіз." @@ -395,11 +395,11 @@ "retryChecks": "Тексерулерді қайталау", "viewOnGitHub": "PR-ді GitHub-та қарау", "noChecksReported": "Тексерулер туралы хабарланбады", - "passed": "{{count}} өтті", - "failed": "{{count}} сәтсіз", - "pending": "{{count}} күтілуде", - "skipped": "{{count}} өткізілді", - "checksCount": "{{count}} тексеру", + "passed": "{{displayCount}} өтті", + "failed": "{{displayCount}} сәтсіз", + "pending": "{{displayCount}} күтілуде", + "skipped": "{{displayCount}} өткізілді", + "checksCount": "{{displayCount}} тексеру", "checkDetails": "тексеру мәліметтері", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "күтілудегі пікір", "pendingComment": "күтілудегі пікірлер", "pendingComment_other": "күтілудегі пікірлер", - "submitCountOfTotal": "{{totalCount}} пікірдің {{freshCount}} жіберу", + "submitCountOfTotal": "{{displayTotalCount}} пікірдің {{displayFreshCount}} жіберу", "submitReview": "Рецензияны жіберу", - "partialPostedMessage": "{{freshCount}} пікір жарияланды. {{staleCount}} пікір ескі commit-ке қатысты және кезегіңізде қалды." + "partialPostedMessage": "{{displayFreshCount}} пікір жарияланды. {{displayStaleCount}} пікір ескі commit-ке қатысты және кезегіңізде қалды." }, "reconnectNotice": { "title": "GitHub қосылымының мерзімі өтті", @@ -580,7 +580,8 @@ "agents": "Агенттер", "profile": "Профиль", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, қойынды, {{total}} ішінде {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Жақында", "common": "Жиі", "reactWith": "{{reaction}} реакциясымен жауап беру", - "accessibility": "{{emoji}} реакция, {{count}}" + "accessibility": "{{emoji}} реакция, {{displayCount}}" }, "composer": { "replyingTo": "Жауап берілуде", @@ -650,7 +651,7 @@ "imageUnavailable": "Сурет қолжетімсіз", "openFailed": "Тіркемені ашу мүмкін болмады. Қосылымды тексеріп, қайта көріңіз.", "attachFailed": "Файлды тіркеу сәтсіз аяқталды", - "limit": "{{count}} файлға дейін тіркеуге болады.", + "limit": "{{displayCount}} файлға дейін тіркеуге болады.", "sizeRejection": "{{filename}} {{limit}} тіркеу шегінен асады.", "unreadable": "{{filename}} оқу мүмкін болмады.", "pastedImage": "қойылған сурет", @@ -722,6 +723,7 @@ "finalTermEnds": "Соңғы мерзім аяқталады", "afterFinalTerm": "Соңғы мерзімнен кейін", "remaining": "Қалды", + "lessThanOneDay": "1 күннен аз", "ends": "Аяқталады", "expires": "Мерзімі аяқталады", "noActivePlan": "Белсенді жоспар жоқ", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "Standard айлық бағаңыз", "perMonth": "/ай", "earlybirdAccessUntil": "Earlybird қолжетімділігі {{date}} дейін", - "earlybirdEnding": "Earlybird аяқталуда: {{days}} күн қалды", + "earlybirdEnding": "Earlybird аяқталуда: {{remaining}}", "paymentPastDue": "Төлем мерзімі өтіп кетті. Төлем әдісін жаңартыңыз.", "subscriptionCancels": "Жазылым {{date}} күні жойылады", - "trialDaysRemaining": "Сынақ: {{days}} күн қалды", - "trialEndingSoon": "Сынақ жақында аяқталады: {{days}}" + "trialDaysRemaining": "Сынақ: {{remaining}} қалды", + "trialEndingSoon": "Сынақ жақында аяқталады: {{remaining}}" }, "changelog": { "title": "Не жаңалық", @@ -996,7 +998,7 @@ "stalledTitle": "Бірдеңе тұрып қалды", "stalledBody": "{{name}} орнатуды аяқтай алмадық. Қайта көріңіз, немесе осы қайталанса hi@kilo.ai мекенжайына жазыңыз.", "timeoutTitle": "Күткеннен ұзағырақ", - "timeoutBody": "{{name}} орнатылуы әдеттегіден ұзаққа созылуда ({{minutes}} минуттан артық).", + "timeoutBody": "{{name}} орнатылуы әдеттегіден ұзаққа созылуда ({{displayMinutes}} минуттан артық).", "continueInBackground": "Фонда жалғастыру", "settingUp": "{{name}} орнатылуда", "finishingSetup": "Орнатуды аяқтау", @@ -1287,7 +1289,7 @@ "mergeGate": "Біріктіру қақпасы", "repositories": "Репозиторийлер", "allRepositories": "Барлық репозиторийлер", - "nSelected": "{{count}} таңдалды", + "nSelected": "{{displayCount}} таңдалды", "reviewMemory": "Шолу жады", "proposedReviewMdGuidance": "Ұсынылған REVIEW.md нұсқаулығы" }, @@ -1391,14 +1393,14 @@ "analyzed": "Талданды", "exploitabilityReasoning": "Пайдалану мүмкіндігі дәйектемесі", "suggestedFix": "Ұсынылған түзету", - "whereFound": "Бұл қайдан табылды ({{count}})", + "whereFound": "Бұл қайдан табылды ({{displayCount}})", "fullReport": "Толық жасалған есеп", "unknown": "Белгісіз", "yes": "Иә", "no": "Жоқ" }, "dashboard": { - "findingsCount": "{{count}} дерек", + "findingsCount": "{{displayCount}} дерек", "notMeasured": "Өлшенбеген", "actFirst": "Алдымен әрекет етіңіз", "slaPosture": "SLA жағдайы", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Репозиторий әрекет жоспары", "noOpenFindings": "Назар аударуды қажет ететін ашық деректер жоқ", "deadlineToday": "Мерзім бүгін аяқталады", - "daysOverdue": "{{count}} күн кешіктірілді", + "daysOverdue": "{{displayCount}} күн кешіктірілді", "withinDeadline": "Мерзім ішінде", "criticalOverdue": "Критикалық, мерзімі өткен", "highOverdue": "Жоғары, мерзімі өткен", @@ -1435,6 +1437,27 @@ "syncQueued": "Синхрондау кезекке қойылды", "syncStatusUnavailable": "Синхрондау күйі қолжетімсіз" }, + "dashboardMetrics": { + "openFindings": "Ашық деректер", + "openFindingsDetail": "{{critical}} критикалық, {{high}} жоғары", + "confirmedExploitable": "Пайдалануға болатыны расталды", + "confirmedExploitableDetail": "Жоба қаупі талдаумен расталды", + "needsReview": "Сіздің қарауыңыз қажет", + "needsReviewDetail": "Адамның шешімі қажет", + "analysisIncomplete": "Талдау аяқталмаған", + "analysisIncompleteDetail": "Жоба қаупі әлі белгісіз", + "slaCompliance": "SLA сәйкестігі", + "notMeasured": "Өлшенбеген", + "withinDeadlineDetail": "{{total}}-ның {{within}} мерзім ішінде", + "noDeadlineData": "Әзірге ешбір деректе SLA мерзімі жоқ", + "deadlinePassed": "Мерзім өтті", + "deadlinePassedDetail": "{{critical}} критикалық, {{high}} жоғары", + "dueThisWeek": "Мерзімі осы аптада", + "dueThisWeekDetail": "{{exploitable}} пайдалануға болатыны расталды", + "noDeadline": "Мерзім жоқ", + "reviewSlaAssignment": "SLA тағайындауды қарау", + "allOpenFindingsTracked": "Барлық ашық деректер қадағаланады" + }, "dismiss": { "title": "Деректі жою", "submit": "Деректі жою", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} талдау", "automation": "Автоматтандыру", "automationAllOff": "Барлығы өшірулі", - "automationCount": "{{count}} ішінен 3 қосулы", + "automationCount": "{{displayCount}} ішінен 3 қосулы", "notifications": "Хабарландырулар", - "notificationsCount": "{{count}} ішінен 2 қосулы", + "notificationsCount": "{{displayCount}} ішінен 2 қосулы", "slaPolicy": "SLA саясаты", "disabledNoManage": "Security Agent өшірулі. Оны тек ұйым иелері мен биллинг менеджерлері қоса алады.", "disabledNoRepo": "Security Agent қоспас бұрын кемінде бір репозиторий таңдаңыз.", @@ -1524,7 +1547,7 @@ "openPullRequest": "{{number}} pull request ашу", "openDraftPullRequest": "{{number}} draft pull request ашу", "progress": "Барысы", - "attemptHistory": "Әрекет тарихы ({{count}})", + "attemptHistory": "Әрекет тарихы ({{displayCount}})", "attemptNumber": "№{{number}} әрекет", "startedBy": "Бастаған", "model": "Модель", @@ -1855,9 +1878,9 @@ "toolTask": "тапсырма", "readTodos": "Todo-ны оқу", "updateTodos": "Todo-ны жаңарту", - "linesBadge": "{{count}} жол", - "filesBadge": "{{count}} файл", - "matchesBadge": "{{count}} сәйкестік" + "linesBadge": "{{displayCount}} жол", + "filesBadge": "{{displayCount}} файл", + "matchesBadge": "{{displayCount}} сәйкестік" }, "readToolMarkdown": { "linesTruncated": "{{start}}–{{end}} жолдар (қысқартылды)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Бұл жауапты хабарлау мүмкін емес.", "reportAiResponseSubmitted": "Хабарланды жіберілді. Түбіртек {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Мәліметтер қолжетімсіз", "textDisplay": "Мәтінді көрсету", @@ -1999,7 +2026,7 @@ "preparationComplete": "Дайындық аяқталды", "preparationFailed": "Дайындық сәтсіз аяқталды", "setupCommand": "{{index}} орнату пәрмені", - "setupCommandOf": "{{count}} ішіндегі {{index}} орнату пәрмені" + "setupCommandOf": "{{displayCount}} ішіндегі {{index}} орнату пәрмені" }, "permissionCard": { "title": "Рұқсат қажет", @@ -2036,7 +2063,7 @@ "submissionFailed": "Жіберу сәтсіз аяқталды. Қайталап көріңіз.", "questionAnnouncement": "Агент сіздің жауабыңызды қажет етеді. Сіз жауап бергенше редактор кідіртілген.", "permissionAnnouncement": "Агент жалғастыру үшін рұқсат қажет. Сіз шешім қабылдағанша редактор кідіртілген.", - "positionHint": "({{count}}-дің 1-і)", + "positionHint": "({{displayCount}}-дің 1-і)", "movedPastPrompt": "Агент бұл сұрақтан өтіп кетті. Сессия жалғасқанда бұл карта жабылады.", "waitingForAnswer": "Агент сіздің жауабыңызды күтуде. Сұрақ ашық тұрғанда, агентке жіберілетін хабарлама кідіртілген.", "waitingForPermission": "Агент рұқсатты күтуде. Сұраныс ашық тұрғанда, агентке жіберілетін хабарлама кідіртілген." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Камераға рұқсат өшірілген", "cameraAccessMessage": "Фото түсіру үшін Баптауларда камераға рұқсат беріңіз.", "couldNotOpenPhotoPicker": "Фото таңдау құралын ашу мүмкін болмады. Kilo қайта іске қосып, қайталап көріңіз.", - "maxFilesAllowed": "Ең көбі {{count}} файлға рұқсат", + "maxFilesAllowed": "Ең көбі {{displayCount}} файлға рұқсат", "onlyAddingFiles": "Тек {{total}} файлдың {{accepted}}-і қосылуда (ең көбі {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "құны {{cost}}", "costSuffix": ", құны {{cost}}", "tokensWindowUnavailable": "Контекст {{used}} токен, терезе қолжетімсіз", - "tokensUsage": "Контекст {{window}} токеннің {{used}}-і, {{percentage}}% қолданылған", + "tokensUsage": "Контекст {{window}} токеннің {{used}}-і, {{percentage}} қолданылған", "title": "Контекстті қолдану", "used": "Қолданылған", "remaining": "Қалған", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Қолдану соңғы аяқталған көмекші жауабын көрсетеді.", "tokenUsage": "Токендерді қолдану", "cacheRate": "Кэш жылдамдығы", - "modelsCount": "Модельдер ({{count}})", + "modelsCount": "Модельдер ({{displayCount}})", "tokenTotalsNote": "Токен жиыны тек осы сессияны қамтиды және субаргент/қосымша сессия токендерін қоспайды.", "subagents": "Субаргенттер", "subagentsDescription": "Қосымша сессиялардан қалған құны", @@ -2373,7 +2400,7 @@ "connectedCli": "Қосылған CLI-де", "newSessionOn": "{{name}} үстіндегі жаңа сессия", "noMatchingSessions": "Сәйкес сессиялар жоқ.", - "onlyFirstFilesAttached": "Тек алғашқы {{count}} файл қосылады.", + "onlyFirstFilesAttached": "Тек алғашқы {{displayCount}} файл қосылады.", "staleMessage": "Бұл бөлісу енді қолжетімсіз.", "retryableMessage": "Сессияларыңызды жүктеу мүмкін болмады.", "emptyMessage": "Әзірге сессиялар жоқ — бұны жіберу үшін жаңасын бастаңыз.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Бұл Apple Аккаунтындағы Kilo Pass басқа Kilo аккаунтына тиесілі. Оны басқару үшін сол Kilo аккаунтына кіріңіз.", "alreadySubscribed": "Сізде Kilo Pass жазылымы бар.", "purchaseUnavailable": "Kilo Pass сатып алу қазір қолжетімсіз.", - "tierCredits": "${{amount}} кредит", + "tierCredits": "{{amount}} кредит", "perMonth": "{{price}}/ай", "verifyPurchaseFailed": "Сатып алуды растау мүмкін болмады. Қосылымды тексеріп, қайталап көріңіз.", "productsCouldNotLoad": "Kilo Pass өнімдерін App Store-дан жүктеу мүмкін болмады.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store жазылым басқаруын ашу сәтсіз аяқталды.", "kiloPassSetup": "Kilo Pass баптау", "subscriptionHeaderDescription": "Kilo App-те AI бағдарламалау сессияларын жүргізу үшін Kilo балансына ай сайын кредит қосатын айлық жазылым — Cloud Agents, қашықтағы сессиялар және KiloClaw чаттары.", - "tierDescription": "Kilo App пайдалану үшін ай сайын ${{price}} төленген кредит қосылады.", + "tierDescription": "Kilo App пайдалану үшін ай сайын {{price}} төленген кредит қосылады.", "subscribe": "Жазылу", "subscribeDescription": "Бонус прогреспен ай сайынғы кредиттер", "manage": "Басқару", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass күтілуде", "statusCanceling": "Kilo Pass жойылуда", "statusPastDue": "Kilo Pass мерзімі өткен", - "monthlyCredits": "${{credits}} айлық кредит", + "monthlyCredits": "{{credits}} айлық кредит", "ends": "{{date}} аяқталады", "periodEnd": "кезең соңы", "managedOnGooglePlay": "Google Play-де басқарылады", diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index 80ea9aa27d..ab5e5293c3 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -206,11 +206,11 @@ "loadingLines": "កំពុងផ្ទុក {{loaded}} ក្នុងចំណោម {{total}} បន្ទាត់…", "expandContext": "ពង្រីកបរិបទ", "expandMoreContext": "ពង្រីកបរិបទបន្ថែម", - "expandLines": "ពង្រីក {{count}} បន្ទាត់ ({{start}}–{{end}})", - "expandMoreLines": "ពង្រីក {{count}} បន្ទាត់បន្ថែម ({{start}}–{{end}})", - "expandLinesOfContext": "ពង្រីក {{count}} បន្ទាត់នៃបរិបទ", + "expandLines": "ពង្រីក {{displayCount}} បន្ទាត់ ({{start}}–{{end}})", + "expandMoreLines": "ពង្រីក {{displayCount}} បន្ទាត់បន្ថែម ({{start}}–{{end}})", + "expandLinesOfContext": "ពង្រីក {{displayCount}} បន្ទាត់នៃបរិបទ", "expandAll": "ពង្រីកទាំងអស់", - "expandAllLines": "ពង្រីក {{count}} បន្ទាត់ទាំងអស់", + "expandAllLines": "ពង្រីក {{displayCount}} បន្ទាត់ទាំងអស់", "loadingMoreFiles": "កំពុងផ្ទុកឯកសារបន្ថែម…", "retryLoadingNextPage": "ព្យាយាមផ្ទុកទំព័របន្ទាប់ម្តងទៀត", "failedToLoadMoreFiles": "បរាជ័យក្នុងការផ្ទុកឯកសារបន្ថែម — ប៉ះដើម្បីព្យាយាមម្តងទៀត", @@ -301,7 +301,7 @@ "closeReactions": "បិទប្រតិកម្ម", "reactionsTitle": "ប្រតិកម្ម", "addReaction": "បន្ថែមប្រតិកម្ម", - "reactionPill": "ប្រតិកម្ម {{emoji}} ចំនួន {{count}} {{countLabel}}", + "reactionPill": "ប្រតិកម្ម {{emoji}} ចំនួន {{displayCount}} {{countLabel}}", "reaction_one": "ប្រតិកម្ម", "reaction": "ប្រតិកម្ម", "reaction_other": "ប្រតិកម្ម", @@ -353,7 +353,7 @@ "noDiscussionDescription": "គ្មានខ្សែស្រឡាយពិនិត្យ ឬអត្ថាធិប្បាយសន្ទនានៅលើសំណើទាញនេះទេ។", "reviewFiles": "ពិនិត្យឯកសារ", "quotedDiffSnippet": "សម្រង់ diff ខ្លី", - "moreLinesAbove": "… {{count}} បន្ទាត់បន្ថែមខាងលើ", + "moreLinesAbove": "… {{displayCount}} បន្ទាត់បន្ថែមខាងលើ", "termsAcceptRequired": "អ្នកត្រូវតែទទួលយកលក្ខខណ្ឌនៃសេវាកម្ម ដើម្បីប្រកាស។", "termsOutdatedCopy": "លក្ខខណ្ឌនៃសេវាកម្មបានប្តូរ។ បើកអេក្រង់នេះម្តងទៀត ដើម្បីទទួលយកកំណែចុងក្រោយ។", "termsCheckRetryCopy": "មិនអាចពិនិត្យលក្ខខណ្ឌនៃសេវាកម្មបានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។" @@ -395,11 +395,11 @@ "retryChecks": "ព្យាយាមការត្រួតពិនិត្យម្តងទៀត", "viewOnGitHub": "មើល PR នៅលើ GitHub", "noChecksReported": "គ្មានការត្រួតពិនិត្យដែលបានរាយការណ៍ទេ", - "passed": "{{count}} បានឆ្លងកាត់", - "failed": "{{count}} បានបរាជ័យ", - "pending": "{{count}} កំពុងរង់ចាំ", - "skipped": "{{count}} បានរំលង", - "checksCount": "{{count}} ការត្រួតពិនិត្យ", + "passed": "{{displayCount}} បានឆ្លងកាត់", + "failed": "{{displayCount}} បានបរាជ័យ", + "pending": "{{displayCount}} កំពុងរង់ចាំ", + "skipped": "{{displayCount}} បានរំលង", + "checksCount": "{{displayCount}} ការត្រួតពិនិត្យ", "checkDetails": "ព័ត៌មានលម្អិតការត្រួតពិនិត្យ", "pullRequest": "sំណើទាញ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "អត្ថាធិប្បាយរង់ចាំ", "pendingComment": "អត្ថាធិប្បាយរង់ចាំ", "pendingComment_other": "អត្ថាធិប្បាយរង់ចាំ", - "submitCountOfTotal": "ដាក់ស្នើ {{freshCount}} ក្នុងចំណោម {{totalCount}} អត្ថាធិប្បាយ", + "submitCountOfTotal": "ដាក់ស្នើ {{displayFreshCount}} ក្នុងចំណោម {{displayTotalCount}} អត្ថាធិប្បាយ", "submitReview": "ដាក់ស្នើការពិនិត្យ", - "partialPostedMessage": "បានប្រកាស {{freshCount}} អត្ថាធិប្បាយ។ {{staleCount}} អត្ថាធិប្បាយចង្អុលទៅ commit ចាស់ ហើយនៅក្នុងជួររង់ចាំរបស់អ្នក។" + "partialPostedMessage": "បានប្រកាស {{displayFreshCount}} អត្ថាធិប្បាយ។ {{displayStaleCount}} អត្ថាធិប្បាយចង្អុលទៅ commit ចាស់ ហើយនៅក្នុងជួររង់ចាំរបស់អ្នក។" }, "reconnectNotice": { "title": "ការតភ្ជាប់ GitHub ផុតកំណត់", @@ -580,7 +580,8 @@ "agents": "ភ្នាក់ងារ", "profile": "ប្រវត្តិរូប", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ផ្ទាំង, {{position}} នៃ {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ថ្មីៗ", "common": "ទូទៅ", "reactWith": "ប្រតិកម្មជាមួយ {{reaction}}", - "accessibility": "ប្រតិកម្ម {{emoji}} ចំនួន {{count}}" + "accessibility": "ប្រតិកម្ម {{emoji}} ចំនួន {{displayCount}}" }, "composer": { "replyingTo": "កំពុងឆ្លើយតបទៅ", @@ -650,7 +651,7 @@ "imageUnavailable": "រូបភាពមិនអាចប្រើបានទេ", "openFailed": "មិនអាចបើកឯកសារភ្ជាប់បានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។", "attachFailed": "បរាជ័យក្នុងការភ្ជាប់ឯកសារ", - "limit": "អ្នកអាចភ្ជាប់រហូតដល់ {{count}} ឯកសារ។", + "limit": "អ្នកអាចភ្ជាប់រហូតដល់ {{displayCount}} ឯកសារ។", "sizeRejection": "{{filename}} លើសពីដែនកំណត់ភ្ជាប់ {{limit}}។", "unreadable": "មិនអាចអាន {{filename}} បានទេ។", "pastedImage": "រូបភាពដែលបានបិទភ្ជាប់", @@ -722,6 +723,7 @@ "finalTermEnds": "រយៈពេលចុងក្រោយបញ្ចប់", "afterFinalTerm": "បន្ទាប់ពីរយៈពេលចុងក្រោយ", "remaining": "នៅសល់", + "lessThanOneDay": "តិចជាង 1 ថ្ងៃ", "ends": "បញ្ចប់", "expires": "ផុតកំណត់", "noActivePlan": "គ្មានគម្រោងសកម្ម", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "តម្លៃប្រចាំខែ Standard របស់អ្នក", "perMonth": "/ខែ", "earlybirdAccessUntil": "ការចូលប្រើ Earlybird រហូតដល់ {{date}}", - "earlybirdEnding": "Earlybird នឹងបញ្ចប់៖ នៅសល់ {{days}} ថ្ងៃ", + "earlybirdEnding": "Earlybird នឹងបញ្ចប់៖ នៅសល់ {{remaining}}", "paymentPastDue": "ការទូទាត់ហួសកំណត់។ សូមធ្វើបច្ចុប្បន្នភាពវិធីសាស្ត្រទូទាត់របស់អ្នក។", "subscriptionCancels": "ការជាវនឹងត្រូវលុបចោល {{date}}", - "trialDaysRemaining": "សាកល្បង៖ នៅសល់ {{days}} ថ្ងៃ", - "trialEndingSoon": "ការសាកល្បងនឹងបញ្ចប់ឆាប់ៗ៖ {{days}}" + "trialDaysRemaining": "សាកល្បង៖ នៅសល់ {{remaining}}", + "trialEndingSoon": "ការសាកល្បងនឹងបញ្ចប់ឆាប់ៗ៖ {{remaining}}" }, "changelog": { "title": "អ្វីដែលថ្មី", @@ -996,7 +998,7 @@ "stalledTitle": "អ្វីមួយបានជាប់គាំង", "stalledBody": "យើងមិនអាចបញ្ចប់ការរៀបចំ {{name}} បានទេ។ ព្យាយាមម្តងទៀត ឬផ្ញើអ៊ីមែលទៅ hi@kilo.ai ប្រសិនបើវានៅតែកើតឡើង។", "timeoutTitle": "ចំណាយពេលយូរជាងការរំពឹងទុក", - "timeoutBody": "ការរៀបចំសម្រាប់ {{name}} កំពុងចំណាយពេលយូរជាងធម្មតា (លើសពី {{minutes}} នាទី)។", + "timeoutBody": "ការរៀបចំសម្រាប់ {{name}} កំពុងចំណាយពេលយូរជាងធម្មតា (លើសពី {{displayMinutes}} នាទី)។", "continueInBackground": "បន្តនៅផ្ទៃខាងក្រោយ", "settingUp": "កំពុងរៀបចំ {{name}}", "finishingSetup": "កំពុងបញ្ចប់ការរៀបចំ", @@ -1287,7 +1289,7 @@ "mergeGate": "ច្រកទ្វារបញ្ចូលគ្នា", "repositories": "ឃ្លាំង", "allRepositories": "ឃ្លាំងទាំងអស់", - "nSelected": "{{count}} បានជ្រើសរើស", + "nSelected": "{{displayCount}} បានជ្រើសរើស", "reviewMemory": "អង្គចងចាំត្រួតពិនិត្យ", "proposedReviewMdGuidance": "ការណែនាំ REVIEW.md ដែលបានស្នើ" }, @@ -1391,14 +1393,14 @@ "analyzed": "បានវិភាគ", "exploitabilityReasoning": "ហេតុផលនៃការទាញយកប្រយោជន៍", "suggestedFix": "ការជួសជុលដែលបានស្នើ", - "whereFound": "កន្លែងដែលរកឃើញនេះ ({{count}})", + "whereFound": "កន្លែងដែលរកឃើញនេះ ({{displayCount}})", "fullReport": "របាយការណ៍ដែលបានបង្កើតពេញលេញ", "unknown": "មិនស្គាល់", "yes": "បាទ", "no": "ទេ" }, "dashboard": { - "findingsCount": "ការរកឃើញ {{count}}", + "findingsCount": "ការរកឃើញ {{displayCount}}", "notMeasured": "មិនត្រូវបានវាស់", "actFirst": "ធ្វើសកម្មភាពជាមុន", "slaPosture": "ស្ថានភាព SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "ផែនការសកម្មភាពនៃឃ្លាំងកូដ", "noOpenFindings": "មិនមានការរកឃើញបើកចំហដែលត្រូវការការយកចិត្តទុកដាក់", "deadlineToday": "ឈានដល់ថ្ងៃកំណត់នៅថ្ងៃនេះ", - "daysOverdue": "ហួសកំណត់ {{count}} ថ្ងៃ", + "daysOverdue": "ហួសកំណត់ {{displayCount}} ថ្ងៃ", "withinDeadline": "ក្នុងរយៈពេលកំណត់", "criticalOverdue": "ធ្ងន់ធ្ងរហួសកំណត់", "highOverdue": "ខ្ពស់ហួសកំណត់", @@ -1435,6 +1437,27 @@ "syncQueued": "ការធ្វើសមកាលកម្មត្រូវបានដាក់ក្នុងជួរ", "syncStatusUnavailable": "ស្ថានភាពសមកាលកម្មមិនមាន" }, + "dashboardMetrics": { + "openFindings": "ការរកឃើញដែលបើក", + "openFindingsDetail": "ធ្ងន់ធ្ងរ {{critical}} ខ្ពស់ {{high}}", + "confirmedExploitable": "បានបញ្ជាក់ថាអាចត្រូវបានគេទាញយកប្រយោជន៍", + "confirmedExploitableDetail": "ហានិភ័យគម្រោងបានបញ្ជាក់ដោយការវិភាគ", + "needsReview": "ត្រូវការការពិនិត្យរបស់អ្នក", + "needsReviewDetail": "ត្រូវការការសម្រេចរបស់មនុស្ស", + "analysisIncomplete": "ការវិភាគមិនទាន់ពេញលេញ", + "analysisIncompleteDetail": "ហានិភ័យគម្រោងនៅមិនទាន់ដឹងនៅឡើយ", + "slaCompliance": "ការអនុលោមតាម SLA", + "notMeasured": "មិនទាន់បានវាស់", + "withinDeadlineDetail": "{{within}} ក្នុងចំណោម {{total}} ក្នុងរយៈពេលកំណត់", + "noDeadlineData": "មិនទាន់មានការរកឃើញណាមួយមានថ្ងៃកំណត់ SLA ទេ", + "deadlinePassed": "បានហួសកាលកំណត់", + "deadlinePassedDetail": "ធ្ងន់ធ្ងរ {{critical}} ខ្ពស់ {{high}}", + "dueThisWeek": "កំណត់នៅសប្តាហ៍នេះ", + "dueThisWeekDetail": "{{exploitable}} បានបញ្ជាក់ថាអាចទាញយកប្រយោជន៍បាន", + "noDeadline": "គ្មានកាលកំណត់", + "reviewSlaAssignment": "ពិនិត្យការកំណត់ SLA", + "allOpenFindingsTracked": "ការរកឃើញដែលបើកទាំងអស់ត្រូវបានតាមដាន" + }, "dismiss": { "title": "បដិសេធការរកឃើញ", "submit": "បដិសេធការរកឃើញ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "ការវិភាគ {{mode}}", "automation": "ស្វ័យប្រវត្តិកម្ម", "automationAllOff": "បិទទាំងអស់", - "automationCount": "បានបើក {{count}} ក្នុងចំណោម 3", + "automationCount": "បានបើក {{displayCount}} ក្នុងចំណោម 3", "notifications": "ការជូនដំណឹង", - "notificationsCount": "បានបើក {{count}} ក្នុងចំណោម 2", + "notificationsCount": "បានបើក {{displayCount}} ក្នុងចំណោម 2", "slaPolicy": "គោលការណ៍ SLA", "disabledNoManage": "Security Agent ត្រូវបានបិទ។ មានតែម្ចាស់អង្គការ និងអ្នកគ្រប់គ្រងការទូទាត់ប៉ុណ្ណោះដែលអាចបើកវា។", "disabledNoRepo": "ជ្រើសរើសឃ្លាំងកូដយ៉ាងហោចណាស់មួយ មុនពេលបើក Security Agent។", @@ -1524,7 +1547,7 @@ "openPullRequest": "បើកសំណើទាញ{{number}}", "openDraftPullRequest": "បើកសំណើទាញព្រាង{{number}}", "progress": "វឌ្ឍនភាព", - "attemptHistory": "ប្រវត្តិនៃការព្យាយាម ({{count}})", + "attemptHistory": "ប្រវត្តិនៃការព្យាយាម ({{displayCount}})", "attemptNumber": "ការព្យាយាមលេខ #{{number}}", "startedBy": "ចាប់ផ្តើមដោយ", "model": "គំរូ", @@ -1855,9 +1878,9 @@ "toolTask": "កិច្ចការ", "readTodos": "អានបញ្ជីការងារ", "updateTodos": "ធ្វើបច្ចុប្បន្នភាពបញ្ជីការងារ", - "linesBadge": "{{count}} បន្ទាត់", - "filesBadge": "{{count}} ឯកសារ", - "matchesBadge": "{{count}} ការផ្គូផ្គង" + "linesBadge": "{{displayCount}} បន្ទាត់", + "filesBadge": "{{displayCount}} ឯកសារ", + "matchesBadge": "{{displayCount}} ការផ្គូផ្គង" }, "readToolMarkdown": { "linesTruncated": "បន្ទាត់ {{start}}–{{end}} (បានកាត់ឱ្យខ្លី)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ចម្លើយនេះមិនអាចត្រូវបានរាយការណ៍។", "reportAiResponseSubmitted": "បានដាក់របាយការណ៍។ វិក្កយបត្រ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "ព័ត៌មានលម្អិតមិនមាន", "textDisplay": "ការបង្ហាញអត្ថបទ", @@ -1999,7 +2026,7 @@ "preparationComplete": "ការរៀបចំបានបញ្ចប់", "preparationFailed": "ការរៀបចំបានបរាជ័យ", "setupCommand": "ពាក្យបញ្ជាដំឡើង {{index}}", - "setupCommandOf": "ពាក្យបញ្ជាដំឡើង {{index}} ក្នុងចំណោម {{count}}" + "setupCommandOf": "ពាក្យបញ្ជាដំឡើង {{index}} ក្នុងចំណោម {{displayCount}}" }, "permissionCard": { "title": "តម្រូវឱ្យមានសិទ្ធិ", @@ -2036,7 +2063,7 @@ "submissionFailed": "ការដាក់ស្នើបានបរាជ័យ។ សូមព្យាយាមម្តងទៀត។", "questionAnnouncement": "ភ្នាក់ងារត្រូវការការបញ្ចូលរបស់អ្នក។ អ្នកតែងត្រូវបានផ្អាកខណៈពេលអ្នកឆ្លើយ។", "permissionAnnouncement": "ភ្នាក់ងារត្រូវការការអនុញ្ញាតដើម្បីបន្ត។ អ្នកតែងត្រូវបានផ្អាកខណៈពេលអ្នកសម្រេច។", - "positionHint": "({{count}} ក្នុងចំណោម)", + "positionHint": "({{displayCount}} ក្នុងចំណោម)", "movedPastPrompt": "ភ្នាក់ងារបានរំលងការជំរុញនេះ។ កាតនេះនឹងបិទនៅពេលវគ្គបន្ត។", "waitingForAnswer": "ភ្នាក់ងារកំពុងរង់ចាំចម្លើយរបស់អ្នក។ ខណៈពេលសំណួរនេះបើក សាររបស់អ្នកទៅកាន់ភ្នាក់ងារត្រូវបានផ្អាក។", "waitingForPermission": "ភ្នាក់ងារកំពុងរង់ចាំការអនុញ្ញាត។ ខណៈពេលសំណើនេះបើក សាររបស់អ្នកទៅកាន់ភ្នាក់ងារត្រូវបានផ្អាក។" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "ការចូលប្រើកាមេរ៉ាត្រូវបានបិទ", "cameraAccessMessage": "អនុញ្ញាតការចូលប្រើកាមេរ៉ានៅក្នុងការកំណត់ដើម្បីថតរូប។", "couldNotOpenPhotoPicker": "មិនអាចបើកអ្នកជ្រើសរូបថតបានទេ។ ចាប់ផ្តើម Kilo ឡើងវិញហើយព្យាយាមម្តងទៀត។", - "maxFilesAllowed": "អនុញ្ញាតឯកសារអតិបរមា {{count}}", + "maxFilesAllowed": "អនុញ្ញាតឯកសារអតិបរមា {{displayCount}}", "onlyAddingFiles": "កំពុងបន្ថែមតែ {{accepted}} ក្នុងចំណោម {{total}} ឯកសារ (អតិបរមា {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "តម្លៃ {{cost}}", "costSuffix": ", តម្លៃ {{cost}}", "tokensWindowUnavailable": "បរិបទ {{used}} tokens, បង្អួចមិនអាចប្រើបាន", - "tokensUsage": "បរិបទ {{used}} ក្នុងចំណោម {{window}} tokens, បានប្រើ {{percentage}}%", + "tokensUsage": "បរិបទ {{used}} ក្នុងចំណោម {{window}} tokens, បានប្រើ {{percentage}}", "title": "ការប្រើប្រាស់បរិបទ", "used": "បានប្រើ", "remaining": "នៅសល់", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "ការប្រើប្រាស់ឆ្លុះបញ្ចាំងពីការឆ្លើយតបជំនួយការចុងក្រោយដែលបានបញ្ចប់។", "tokenUsage": "ការប្រើប្រាស់ token", "cacheRate": "អត្រាឃ្លាំងសម្ងាត់", - "modelsCount": "ម៉ូដែល ({{count}})", + "modelsCount": "ម៉ូដែល ({{displayCount}})", "tokenTotalsNote": "សរុប token គ្របដណ្តប់តែវគ្គនេះ និងមិនរាប់បញ្ចូល token ភ្នាក់ងាររង/វគ្គកូន។", "subagents": "ភ្នាក់ងាររង", "subagentsDescription": "តម្លៃសំណល់ពីវគ្គកូន", @@ -2373,7 +2400,7 @@ "connectedCli": "នៅលើ CLI ដែលបានភ្ជាប់", "newSessionOn": "វគ្គថ្មីនៅលើ {{name}}", "noMatchingSessions": "គ្មានវគ្គដែលត្រូវគ្នាទេ។", - "onlyFirstFilesAttached": "នឹងភ្ជាប់តែ {{count}} ឯកសារដំបូងប៉ុណ្ណោះ។", + "onlyFirstFilesAttached": "នឹងភ្ជាប់តែ {{displayCount}} ឯកសារដំបូងប៉ុណ្ណោះ។", "staleMessage": "ការចែករំលែកនេះលែងមានទៀតហើយ។", "retryableMessage": "មិនអាចផ្ទុកវគ្គរបស់អ្នកបានទេ។", "emptyMessage": "មិនទាន់មានវគ្គទេ — ចាប់ផ្តើមវគ្គថ្មីដើម្បីផ្ញើរឿងនេះ។", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass នៅលើ Apple Account នេះជារបស់គណនី Kilo ផ្សេង។ ចូលគណនី Kilo នោះដើម្បីគ្រប់គ្រងវា។", "alreadySubscribed": "អ្នកមានការជាវ Kilo Pass រួចហើយ។", "purchaseUnavailable": "ការទិញ Kilo Pass មិនអាចប្រើបានឥឡូវនេះទេ។", - "tierCredits": "${{amount}} នៅក្នុងឥណទាន", + "tierCredits": "{{amount}} នៅក្នុងឥណទាន", "perMonth": "{{price}}/ខែ", "verifyPurchaseFailed": "មិនអាចផ្ទៀងផ្ទាត់ការទិញរបស់អ្នកបានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នកហើយព្យាយាមម្តងទៀត។", "productsCouldNotLoad": "មិនអាចផ្ទុកផលិតផល Kilo Pass ពី App Store បានទេ។", @@ -2417,7 +2444,7 @@ "manageFailed": "មិនអាចបើកការគ្រប់គ្រងការជាវ App Store បានទេ។", "kiloPassSetup": "ការរៀបចំ Kilo Pass", "subscriptionHeaderDescription": "ការជាវប្រចាំខែដែលបន្ថែមឥណទានទៅសមតុល្យ Kilo របស់អ្នកសម្រាប់ដំណើរការវគ្គសរសេរកូដ AI នៅក្នុង Kilo App — Cloud Agents, វគ្គពីចម្ងាយ, និងការជជែក KiloClaw ។", - "tierDescription": "${{price}} ឥណទានដែលបានបង់បន្ថែមប្រចាំខែសម្រាប់ការប្រើប្រាស់ Kilo App ។", + "tierDescription": "{{price}} ឥណទានដែលបានបង់បន្ថែមប្រចាំខែសម្រាប់ការប្រើប្រាស់ Kilo App ។", "subscribe": "ជាវ", "subscribeDescription": "ឥណទានប្រចាំខែជាមួយវឌ្ឍនភាពប្រាក់រង្វាន់", "manage": "គ្រប់គ្រង", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass កំពុងរង់ចាំ", "statusCanceling": "Kilo Pass កំពុងលុបចោល", "statusPastDue": "Kilo Pass ហួសកំណត់", - "monthlyCredits": "${{credits}} ឥណទានប្រចាំខែ", + "monthlyCredits": "{{credits}} ឥណទានប្រចាំខែ", "ends": "បញ្ចប់ {{date}}", "periodEnd": "ចុងបញ្ចប់នៃកំឡុងពេល", "managedOnGooglePlay": "គ្រប់គ្រងនៅលើ Google Play", diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index 6f8a3efdaf..520e6a6fdd 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} ರಲ್ಲಿ {{loaded}} ಸಾಲುಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…", "expandContext": "ಸಂದರ್ಭ ವಿಸ್ತರಿಸಿ", "expandMoreContext": "ಹೆಚ್ಚಿನ ಸಂದರ್ಭ ವಿಸ್ತರಿಸಿ", - "expandLines": "{{count}} ಸಾಲುಗಳನ್ನು ವಿಸ್ತರಿಸಿ ({{start}}–{{end}})", - "expandMoreLines": "ಹೆಚ್ಚಿನ {{count}} ಸಾಲುಗಳನ್ನು ವಿಸ್ತರಿಸಿ ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} ಸಾಲುಗಳ ಸಂದರ್ಭವನ್ನು ವಿಸ್ತರಿಸಿ", + "expandLines": "{{displayCount}} ಸಾಲುಗಳನ್ನು ವಿಸ್ತರಿಸಿ ({{start}}–{{end}})", + "expandMoreLines": "ಹೆಚ್ಚಿನ {{displayCount}} ಸಾಲುಗಳನ್ನು ವಿಸ್ತರಿಸಿ ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} ಸಾಲುಗಳ ಸಂದರ್ಭವನ್ನು ವಿಸ್ತರಿಸಿ", "expandAll": "ಎಲ್ಲವನ್ನೂ ವಿಸ್ತರಿಸಿ", - "expandAllLines": "ಎಲ್ಲಾ {{count}} ಸಾಲುಗಳನ್ನು ವಿಸ್ತರಿಸಿ", + "expandAllLines": "ಎಲ್ಲಾ {{displayCount}} ಸಾಲುಗಳನ್ನು ವಿಸ್ತರಿಸಿ", "loadingMoreFiles": "ಹೆಚ್ಚಿನ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…", "retryLoadingNextPage": "ಮುಂದಿನ ಪುಟ ಲೋಡ್ ಮಾಡಲು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ", "failedToLoadMoreFiles": "ಹೆಚ್ಚಿನ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ — ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ", @@ -301,7 +301,7 @@ "closeReactions": "ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಮುಚ್ಚಿ", "reactionsTitle": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", "addReaction": "ಪ್ರತಿಕ್ರಿಯೆ ಸೇರಿಸಿ", - "reactionPill": "{{emoji}} ಪ್ರತಿಕ್ರಿಯೆ, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ಪ್ರತಿಕ್ರಿಯೆ, {{displayCount}} {{countLabel}}", "reaction_one": "ಪ್ರತಿಕ್ರಿಯೆ", "reaction": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", "reaction_other": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ಈ ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್‌ನಲ್ಲಿ ಯಾವುದೇ ವಿಮರ್ಶಾ ಥ್ರೆಡ್‌ಗಳು ಅಥವಾ ಸಂಭಾಷಣಾ ಕಾಮೆಂಟ್‌ಗಳಿಲ್ಲ.", "reviewFiles": "ಫೈಲ್‌ಗಳನ್ನು ವಿಮರ್ಶಿಸಿ", "quotedDiffSnippet": "ಉಲ್ಲೇಖಿತ diff ಸ್ನಿಪ್ಪೆಟ್", - "moreLinesAbove": "… ಮೇಲೆ {{count}} ಹೆಚ್ಚಿನ ಸಾಲುಗಳು", + "moreLinesAbove": "… ಮೇಲೆ {{displayCount}} ಹೆಚ್ಚಿನ ಸಾಲುಗಳು", "termsAcceptRequired": "ಪೋಸ್ಟ್ ಮಾಡಲು ನೀವು ಸೇವಾ ನಿಯಮಗಳನ್ನು ಸ್ವೀಕರಿಸಬೇಕು.", "termsOutdatedCopy": "ಸೇವಾ ನಿಯಮಗಳು ಬದಲಾಗಿವೆ. ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯನ್ನು ಸ್ವೀಕರಿಸಲು ಈ ಪರದೆಯನ್ನು ಮತ್ತೆ ತೆರೆಯಿರಿ.", "termsCheckRetryCopy": "ಸೇವಾ ನಿಯಮಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." @@ -395,11 +395,11 @@ "retryChecks": "ಪರಿಶೀಲನೆಗಳನ್ನು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ", "viewOnGitHub": "GitHub ನಲ್ಲಿ PR ವೀಕ್ಷಿಸಿ", "noChecksReported": "ಯಾವುದೇ ಪರಿಶೀಲನೆಗಳು ವರದಿಯಾಗಿಲ್ಲ", - "passed": "{{count}} ಪಾಸ್ ಆಗಿವೆ", - "failed": "{{count}} ವಿಫಲವಾಗಿವೆ", - "pending": "{{count}} ಬಾಕಿ", - "skipped": "{{count}} ಬಿಟ್ಟುಬಿಡಲಾಗಿದೆ", - "checksCount": "{{count}} ಪರಿಶೀಲನೆಗಳು", + "passed": "{{displayCount}} ಪಾಸ್ ಆಗಿವೆ", + "failed": "{{displayCount}} ವಿಫಲವಾಗಿವೆ", + "pending": "{{displayCount}} ಬಾಕಿ", + "skipped": "{{displayCount}} ಬಿಟ್ಟುಬಿಡಲಾಗಿದೆ", + "checksCount": "{{displayCount}} ಪರಿಶೀಲನೆಗಳು", "checkDetails": "ಪರಿಶೀಲನೆ ವಿವರಗಳು", "pullRequest": "ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ಬಾಕಿ ಕಾಮೆಂಟ್", "pendingComment": "ಬಾಕಿ ಕಾಮೆಂಟ್‌ಗಳು", "pendingComment_other": "ಬಾಕಿ ಕಾಮೆಂಟ್‌ಗಳು", - "submitCountOfTotal": "{{totalCount}} ರಲ್ಲಿ {{freshCount}} ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಸಲ್ಲಿಸಿ", + "submitCountOfTotal": "{{displayTotalCount}} ರಲ್ಲಿ {{displayFreshCount}} ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಸಲ್ಲಿಸಿ", "submitReview": "ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಿ", - "partialPostedMessage": "{{freshCount}} ಕಾಮೆಂಟ್(ಗಳನ್ನು) ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ. {{staleCount}} ಕಾಮೆಂಟ್(ಗಳು) ಹಳೆಯ ಕಮಿಟ್‌ನತ್ತ ತೋರಿಸುತ್ತವೆ ಮತ್ತು ನಿಮ್ಮ ಕ್ಯೂನಲ್ಲಿ ಉಳಿದಿವೆ." + "partialPostedMessage": "{{displayFreshCount}} ಕಾಮೆಂಟ್(ಗಳನ್ನು) ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ. {{displayStaleCount}} ಕಾಮೆಂಟ್(ಗಳು) ಹಳೆಯ ಕಮಿಟ್‌ನತ್ತ ತೋರಿಸುತ್ತವೆ ಮತ್ತು ನಿಮ್ಮ ಕ್ಯೂನಲ್ಲಿ ಉಳಿದಿವೆ." }, "reconnectNotice": { "title": "GitHub ಸಂಪರ್ಕ ಅವಧಿ ಮೀರಿದೆ", @@ -580,7 +580,8 @@ "agents": "ಏಜೆಂಟ್‌ಗಳು", "profile": "ಪ್ರೊಫೈಲ್", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ಟ್ಯಾಬ್, {{total}} ರಲ್ಲಿ {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ಇತ್ತೀಚಿನ", "common": "ಸಾಮಾನ್ಯ", "reactWith": "{{reaction}} ನೊಂದಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಿ", - "accessibility": "{{emoji}} ಪ್ರತಿಕ್ರಿಯೆ, {{count}}" + "accessibility": "{{emoji}} ಪ್ರತಿಕ್ರಿಯೆ, {{displayCount}}" }, "composer": { "replyingTo": "ಉತ್ತರಿಸುತ್ತಿದೆ", @@ -650,7 +651,7 @@ "imageUnavailable": "ಚಿತ್ರ ಲಭ್ಯವಿಲ್ಲ", "openFailed": "ಲಗತ್ತನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "attachFailed": "ಫೈಲ್ ಲಗತ್ತಿಸಲು ವಿಫಲವಾಗಿದೆ", - "limit": "ನೀವು {{count}} ಫೈಲ್‌ಗಳನ್ನು ಲಗತ್ತಿಸಬಹುದು.", + "limit": "ನೀವು {{displayCount}} ಫೈಲ್‌ಗಳನ್ನು ಲಗತ್ತಿಸಬಹುದು.", "sizeRejection": "{{filename}} {{limit}} ಲಗತ್ತು ಮಿತಿಯನ್ನು ಮೀರುತ್ತದೆ.", "unreadable": "{{filename}} ಓದಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "pastedImage": "ಅಂಟಿಸಿದ ಚಿತ್ರ", @@ -722,6 +723,7 @@ "finalTermEnds": "ಅಂತಿಮ ಅವಧಿ ಮುಗಿಯುತ್ತದೆ", "afterFinalTerm": "ಅಂತಿಮ ಅವಧಿಯ ನಂತರ", "remaining": "ಉಳಿದಿದೆ", + "lessThanOneDay": "1 ದಿನಕ್ಕಿಂತ ಕಡಿಮೆ", "ends": "ಮುಗಿಯುತ್ತದೆ", "expires": "ಅವಧಿ ಮುಗಿಯುತ್ತದೆ", "noActivePlan": "ಸಕ್ರಿಯ ಯೋಜನೆ ಇಲ್ಲ", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ನಿಮ್ಮ Standard ಮಾಸಿಕ ಬೆಲೆ", "perMonth": "/ತಿಂಗಳು", "earlybirdAccessUntil": "{{date}} ವರೆಗೆ ಆರಂಭಿಕ ಪ್ರವೇಶ", - "earlybirdEnding": "ಆರಂಭಿಕ ಕೊನೆಯಾಗುತ್ತದೆ: {{days}} ದಿನಗಳು ಉಳಿದಿವೆ", + "earlybirdEnding": "ಆರಂಭಿಕ ಕೊನೆಯಾಗುತ್ತದೆ: {{remaining}}", "paymentPastDue": "ಪಾವತಿ ಬಾಕಿ ಇದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಪಾವತಿ ವಿಧಾನವನ್ನು ನವೀಕರಿಸಿ.", "subscriptionCancels": "ಚಂದಾದಾರಿಕೆ {{date}} ರಂದು ರದ್ದಾಗುತ್ತದೆ", - "trialDaysRemaining": "ಪ್ರಯೋಗ: {{days}} ದಿನಗಳು ಉಳಿದಿವೆ", - "trialEndingSoon": "ಪ್ರಯೋಗ ಶೀಘ್ರದಲ್ಲೇ ಮುಗಿಯುತ್ತದೆ: {{days}}" + "trialDaysRemaining": "ಪ್ರಯೋಗ: {{remaining}} ಉಳಿದಿವೆ", + "trialEndingSoon": "ಪ್ರಯೋಗ ಶೀಘ್ರದಲ್ಲೇ ಮುಗಿಯುತ್ತದೆ: {{remaining}}" }, "changelog": { "title": "ಏನಿದೆ ಹೊಸದು", @@ -996,7 +998,7 @@ "stalledTitle": "ಏನೋ ನಿಂತುಹೋಗಿದೆ", "stalledBody": "{{name}} ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ, ಅಥವಾ ಇದು ಪದೇ ಪದೇ ಸಂಭವಿಸಿದರೆ hi@kilo.ai ಗೆ ಇಮೇಲ್ ಮಾಡಿ.", "timeoutTitle": "ನಿರೀಕ್ಷೆಗಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ", - "timeoutBody": "{{name}} ಸೆಟಪ್ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ ({{minutes}} ನಿಮಿಷಕ್ಕಿಂತ ಹೆಚ್ಚು).", + "timeoutBody": "{{name}} ಸೆಟಪ್ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ ({{displayMinutes}} ನಿಮಿಷಕ್ಕಿಂತ ಹೆಚ್ಚು).", "continueInBackground": "ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಮುಂದುವರಿಸಿ", "settingUp": "{{name}} ಸೆಟಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ", "finishingSetup": "ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿದೆ", @@ -1287,7 +1289,7 @@ "mergeGate": "ಮರ್ಜ್ ಗೇಟ್", "repositories": "ರೆಪೊಸಿಟರಿಗಳು", "allRepositories": "ಎಲ್ಲಾ ರೆಪೊಸಿಟರಿಗಳು", - "nSelected": "{{count}} ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ", + "nSelected": "{{displayCount}} ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ", "reviewMemory": "ಪರಿಶೀಲನೆ ಮೆಮೊರಿ", "proposedReviewMdGuidance": "ಪ್ರಸ್ತಾಪಿಸಲಾದ REVIEW.md ಮಾರ್ಗದರ್ಶನ" }, @@ -1391,14 +1393,14 @@ "analyzed": "ವಿಶ್ಲೇಷಿಸಲಾಗಿದೆ", "exploitabilityReasoning": "ದುರ್ಬಳಕೆ ಸಾಮರ್ಥ್ಯ ಕಾರಣ", "suggestedFix": "ಸೂಚಿಸಲಾದ ಪರಿಹಾರ", - "whereFound": "ಇದು ಕಂಡುಬಂದ ಸ್ಥಳ ({{count}})", + "whereFound": "ಇದು ಕಂಡುಬಂದ ಸ್ಥಳ ({{displayCount}})", "fullReport": "ಸಂಪೂರ್ಣ ರಚಿಸಿದ ವರದಿ", "unknown": "ತಿಳಿದಿಲ್ಲ", "yes": "ಹೌದು", "no": "ಇಲ್ಲ" }, "dashboard": { - "findingsCount": "{{count}} ಸಂಶೋಧನೆಗಳು", + "findingsCount": "{{displayCount}} ಸಂಶೋಧನೆಗಳು", "notMeasured": "ಅಳೆಯಲಾಗಿಲ್ಲ", "actFirst": "ಮೊದಲು ಕ್ರಿಯೆ ಮಾಡಿ", "slaPosture": "SLA ಸ್ಥಿತಿ", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "ರೆಪೊಸಿಟರಿ ಕ್ರಿಯಾ ಯೋಜನೆ", "noOpenFindings": "ಗಮನ ಅಗತ್ಯವಿರುವ ಯಾವುದೇ ತೆರೆದ ಸಂಶೋಧನೆಗಳಿಲ್ಲ", "deadlineToday": "ಗಡುವು ಇಂದು ಮುಟ್ಟಿದೆ", - "daysOverdue": "{{count}} ದಿನಗಳು ವಿಳಂಬ", + "daysOverdue": "{{displayCount}} ದಿನಗಳು ವಿಳಂಬ", "withinDeadline": "ಗಡುವಿನ ಒಳಗೆ", "criticalOverdue": "ಗಂಭೀರ ವಿಳಂಬ", "highOverdue": "ಹೆಚ್ಚಿನ ವಿಳಂಬ", @@ -1435,6 +1437,27 @@ "syncQueued": "ಸಿಂಕ್ ಸೇರಿಸಲಾಗಿದೆ", "syncStatusUnavailable": "ಸಿಂಕ್ ಸ್ಥಿತಿ ಲಭ್ಯವಿಲ್ಲ" }, + "dashboardMetrics": { + "openFindings": "ತೆರೆದ ಸಂಶೋಧನೆಗಳು", + "openFindingsDetail": "{{critical}} ಗಂಭೀರ, {{high}} ಹೆಚ್ಚಿನ", + "confirmedExploitable": "ದುರ್ಬಳಕೆ ಸಾಧ್ಯವೆಂದು ದೃಢೀಕರಿಸಲಾಗಿದೆ", + "confirmedExploitableDetail": "ವಿಶ್ಲೇಷಣೆಯಿಂದ ಪ್ರಾಜೆಕ್ಟ್ ಅಪಾಯ ದೃಢೀಕರಿಸಲಾಗಿದೆ", + "needsReview": "ನಿಮ್ಮ ಪರಿಶೀಲನೆ ಅಗತ್ಯ", + "needsReviewDetail": "ಮಾನವ ನಿರ್ಧಾರ ಅಗತ್ಯ", + "analysisIncomplete": "ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ", + "analysisIncompleteDetail": "ಪ್ರಾಜೆಕ್ಟ್ ಅಪಾಯ ಇನ್ನೂ ತಿಳಿದಿಲ್ಲ", + "slaCompliance": "SLA ಅನುಸರಣೆ", + "notMeasured": "ಅಳೆಯಲಾಗಿಲ್ಲ", + "withinDeadlineDetail": "{{total}} ರಲ್ಲಿ {{within}} ಗಡುವಿನ ಒಳಗೆ", + "noDeadlineData": "ಯಾವುದೇ ಸಂಶೋಧನೆಗಳಿಗೆ ಇನ್ನೂ SLA ಗಡುವು ಇಲ್ಲ", + "deadlinePassed": "ಗಡುವು ಕಳೆದಿದೆ", + "deadlinePassedDetail": "{{critical}} ಗಂಭೀರ, {{high}} ಹೆಚ್ಚಿನ", + "dueThisWeek": "ಈ ವಾರ ಗಡುವು", + "dueThisWeekDetail": "{{exploitable}} ದುರ್ಬಳಕೆ ಸಾಧ್ಯವೆಂದು ದೃಢೀಕರಿಸಲಾಗಿದೆ", + "noDeadline": "ಗಡುವು ಇಲ್ಲ", + "reviewSlaAssignment": "SLA ನಿಯೋಜನೆ ಪರಿಶೀಲಿಸಿ", + "allOpenFindingsTracked": "ಎಲ್ಲಾ ತೆರೆದ ಸಂಶೋಧನೆಗಳು ಟ್ರ್ಯಾಕ್ ಆಗಿವೆ" + }, "dismiss": { "title": "ಸಂಶೋಧನೆಯನ್ನು ತೆಗೆದುಹಾಕಿ", "submit": "ಸಂಶೋಧನೆಯನ್ನು ತೆಗೆದುಹಾಕಿ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ವಿಶ್ಲೇಷಣೆ", "automation": "ಸ್ವಯಂಚಾಲನೆ", "automationAllOff": "ಎಲ್ಲಾ ಆಫ್", - "automationCount": "3 ರಲ್ಲಿ {{count}} ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ", + "automationCount": "3 ರಲ್ಲಿ {{displayCount}} ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ", "notifications": "ಅಧಿಸೂಚನೆಗಳು", - "notificationsCount": "2 ರಲ್ಲಿ {{count}} ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ", + "notificationsCount": "2 ರಲ್ಲಿ {{displayCount}} ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ", "slaPolicy": "SLA ನೀತಿ", "disabledNoManage": "Security Agent ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ. ಅದನ್ನು ಆನ್ ಮಾಡಲು ಸಂಸ್ಥೆ ಮಾಲೀಕರು ಮತ್ತು ಬಿಲ್ಲಿಂಗ್ ನಿರ್ವಾಹಕರು ಮಾತ್ರ ಸಾಧ್ಯ.", "disabledNoRepo": "Security Agent ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲು ಕನಿಷ್ಠ ಒಂದು ರೆಪೊಸಿಟರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ.", @@ -1524,7 +1547,7 @@ "openPullRequest": "ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ತೆರೆಯಿರಿ{{number}}", "openDraftPullRequest": "ಡ್ರಾಫ್ಟ್ ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ತೆರೆಯಿರಿ{{number}}", "progress": "ಪ್ರಗತಿ", - "attemptHistory": "ಪ್ರಯತ್ನ ಇತಿಹಾಸ ({{count}})", + "attemptHistory": "ಪ್ರಯತ್ನ ಇತಿಹಾಸ ({{displayCount}})", "attemptNumber": "ಪ್ರಯತ್ನ #{{number}}", "startedBy": "ರಿಂದ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ", "model": "ಮಾದರಿ", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "todos ಓದಿ", "updateTodos": "todos ನವೀಕರಿಸಿ", - "linesBadge": "{{count}} ಸಾಲುಗಳು", - "filesBadge": "{{count}} ಫೈಲ್ಗಳು", - "matchesBadge": "{{count}} ಹೊಂದಾಣಿಕೆಗಳು" + "linesBadge": "{{displayCount}} ಸಾಲುಗಳು", + "filesBadge": "{{displayCount}} ಫೈಲ್ಗಳು", + "matchesBadge": "{{displayCount}} ಹೊಂದಾಣಿಕೆಗಳು" }, "readToolMarkdown": { "linesTruncated": "ಸಾಲುಗಳು {{start}}–{{end}} (ಕತ್ತರಿಸಲಾಗಿದೆ)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ಈ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ವರದಿ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.", "reportAiResponseSubmitted": "ವರದಿ ಸಲ್ಲಿಸಲಾಗಿದೆ. ರಶೀದಿ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "ವಿವರಗಳು ಲಭ್ಯವಿಲ್ಲ", "textDisplay": "ಪಠ್ಯ ಪ್ರದರ್ಶನ", @@ -1999,7 +2026,7 @@ "preparationComplete": "ಸಿದ್ಧತೆ ಪೂರ್ಣಗೊಂಡಿದೆ", "preparationFailed": "ಸಿದ್ಧತೆ ವಿಫಲವಾಗಿದೆ", "setupCommand": "ಸೆಟಪ್ ಆಜ್ಞೆ {{index}}", - "setupCommandOf": "ಸೆಟಪ್ ಆಜ್ಞೆ {{index}} / {{count}}" + "setupCommandOf": "ಸೆಟಪ್ ಆಜ್ಞೆ {{index}} / {{displayCount}}" }, "permissionCard": { "title": "ಅನುಮತಿ ಅಗತ್ಯವಿದೆ", @@ -2036,7 +2063,7 @@ "submissionFailed": "ಸಲ್ಲಿಕೆ ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "questionAnnouncement": "ಏಜೆಂಟ್ಗೆ ನಿಮ್ಮ ಇನ್‌ಪುಟ್ ಅಗತ್ಯವಿದೆ. ನೀವು ಉತ್ತರಿಸುವಾಗ ಸಂಯೋಜಕ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ.", "permissionAnnouncement": "ಏಜೆಂಟ್ ಮುಂದುವರಿಯಲು ಅನುಮತಿ ಅಗತ್ಯವಿದೆ. ನೀವು ನಿರ್ಧರಿಸುವಾಗ ಸಂಯೋಜಕ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ.", - "positionHint": "({{count}} ರಲ್ಲಿ 1)", + "positionHint": "({{displayCount}} ರಲ್ಲಿ 1)", "movedPastPrompt": "ಏಜೆಂಟ್ ಈ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ದಾಟಿದೆ. ಸೆಷನ್ ಮುಂದುವರಿದಾಗ ಈ ಕಾರ್ಡ್ ಮುಚ್ಚುತ್ತದೆ.", "waitingForAnswer": "ಏಜೆಂಟ್ ನಿಮ್ಮ ಉತ್ತರಕ್ಕಾಗಿ ಕಾಯುತ್ತಿದೆ. ಈ ಪ್ರಶ್ನೆ ತೆರೆದಿರುವಾಗ, ಏಜೆಂಟ್ಗೆ ನಿಮ್ಮ ಸಂದೇಶ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ.", "waitingForPermission": "ಏಜೆಂಟ್ ಅನುಮತಿಗಾಗಿ ಕಾಯುತ್ತಿದೆ. ಈ ವಿನಂತಿ ತೆರೆದಿರುವಾಗ, ಏಜೆಂಟ್ಗೆ ನಿಮ್ಮ ಸಂದೇಶ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "ಕ್ಯಾಮೆರಾ ಪ್ರವೇಶ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ", "cameraAccessMessage": "ಫೋಟೋ ತೆಗೆಯಲು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಕ್ಯಾಮೆರಾ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ.", "couldNotOpenPhotoPicker": "ಫೋಟೋ ಪಿಕರ್ ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. Kilo ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", - "maxFilesAllowed": "ಗರಿಷ್ಠ {{count}} ಫೈಲ್‌ಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ", + "maxFilesAllowed": "ಗರಿಷ್ಠ {{displayCount}} ಫೈಲ್‌ಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ", "onlyAddingFiles": "{{total}} ಫೈಲ್‌ಗಳಲ್ಲಿ {{accepted}} ಮಾತ್ರ ಸೇರಿಸಲಾಗುತ್ತಿದೆ (ಗರಿಷ್ಠ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ವೆಚ್ಚ {{cost}}", "costSuffix": ", ವೆಚ್ಚ {{cost}}", "tokensWindowUnavailable": "ಸಂದರ್ಭ {{used}} ಟೋಕನ್‌ಗಳು, ವಿಂಡೋ ಲಭ್ಯವಿಲ್ಲ", - "tokensUsage": "ಸಂದರ್ಭ {{window}} ಟೋಕನ್‌ಗಳಲ್ಲಿ {{used}}, {{percentage}}% ಬಳಸಲಾಗಿದೆ", + "tokensUsage": "ಸಂದರ್ಭ {{window}} ಟೋಕನ್‌ಗಳಲ್ಲಿ {{used}}, {{percentage}} ಬಳಸಲಾಗಿದೆ", "title": "ಸಂದರ್ಭ ಬಳಕೆ", "used": "ಬಳಸಲಾಗಿದೆ", "remaining": "ಉಳಿದಿದೆ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "ಬಳಕೆಯು ಇತ್ತೀಚಿನ ಪೂರ್ಣಗೊಂಡ ಸಹಾಯಕ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ.", "tokenUsage": "ಟೋಕನ್ ಬಳಕೆ", "cacheRate": "ಕ್ಯಾಶ್ ದರ", - "modelsCount": "ಮಾದರಿಗಳು ({{count}})", + "modelsCount": "ಮಾದರಿಗಳು ({{displayCount}})", "tokenTotalsNote": "ಟೋಕನ್ ಒಟ್ಟುಗಳು ಈ ಸೆಷನ್ ಅನ್ನು ಮಾತ್ರ ಒಳಗೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಉಪ-ಏಜೆಂಟ್/ಚೈಲ್ಡ್-ಸೆಷನ್ ಟೋಕನ್‌ಗಳನ್ನು ಹೊರತುಪಡಿಸುತ್ತವೆ.", "subagents": "ಉಪ-ಏಜೆಂಟ್‌ಗಳು", "subagentsDescription": "ಚೈಲ್ಡ್ ಸೆಷನ್‌ಗಳಿಂದ ಉಳಿದ ವೆಚ್ಚ", @@ -2373,7 +2400,7 @@ "connectedCli": "ಸಂಪರ್ಕಿತ CLI ಯಲ್ಲಿ", "newSessionOn": "{{name}} ನಲ್ಲಿ ಹೊಸ ಸೆಷನ್", "noMatchingSessions": "ಹೊಂದಾಣಿಕೆಯ ಸೆಷನ್‌ಗಳಿಲ್ಲ.", - "onlyFirstFilesAttached": "ಮೊದಲ {{count}} ಫೈಲ್‌ಗಳನ್ನು ಮಾತ್ರ ಲಗತ್ತಿಸಲಾಗುತ್ತದೆ.", + "onlyFirstFilesAttached": "ಮೊದಲ {{displayCount}} ಫೈಲ್‌ಗಳನ್ನು ಮಾತ್ರ ಲಗತ್ತಿಸಲಾಗುತ್ತದೆ.", "staleMessage": "ಈ ಹಂಚಿಕೆ ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿಲ್ಲ.", "retryableMessage": "ನಿಮ್ಮ ಸೆಷನ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "emptyMessage": "ಇನ್ನೂ ಸೆಷನ್‌ಗಳಿಲ್ಲ — ಇದನ್ನು ಕಳುಹಿಸಲು ಹೊಸದನ್ನು ಪ್ರಾರಂಭಿಸಿ.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "ಈ Apple Account ನಲ್ಲಿನ Kilo Pass ಬೇರೆ Kilo ಖಾತೆಗೆ ಸೇರಿದೆ. ಅದನ್ನು ನಿರ್ವಹಿಸಲು ಆ Kilo ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.", "alreadySubscribed": "ನೀವು ಈಗಾಗಲೇ Kilo Pass ಚಂದಾದಾರಿಕೆಯನ್ನು ಹೊಂದಿದ್ದೀರಿ.", "purchaseUnavailable": "Kilo Pass ಖರೀದಿ ಈಗ ಲಭ್ಯವಿಲ್ಲ.", - "tierCredits": "${{amount}} ಕ್ರೆಡಿಟ್‌ಗಳಲ್ಲಿ", + "tierCredits": "{{amount}} ಕ್ರೆಡಿಟ್‌ಗಳಲ್ಲಿ", "perMonth": "{{price}}/mo", "verifyPurchaseFailed": "ನಿಮ್ಮ ಖರೀದಿಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "productsCouldNotLoad": "App Store ನಿಂದ Kilo Pass ಉತ್ಪನ್ನಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store ಚಂದಾದಾರಿಕೆ ನಿರ್ವಹಣೆಯನ್ನು ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ.", "kiloPassSetup": "Kilo Pass ಸೆಟಪ್", "subscriptionHeaderDescription": "Kilo App ನಲ್ಲಿ AI ಕೋಡಿಂಗ್ ಸೆಷನ್‌ಗಳನ್ನು ಚಲಾಯಿಸಲು ನಿಮ್ಮ Kilo ಬ್ಯಾಲೆನ್ಸ್‌ಗೆ ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ಸೇರಿಸುವ ಮಾಸಿಕ ಚಂದಾದಾರಿಕೆ — Cloud Agents, ರಿಮೋಟ್ ಸೆಷನ್‌ಗಳು, ಮತ್ತು KiloClaw ಚಾಟ್‌ಗಳು.", - "tierDescription": "Kilo App ಬಳಕೆಗಾಗಿ ಮಾಸಿಕ ಸೇರಿಸಲಾದ ${{price}} ಪಾವತಿಸಿದ ಕ್ರೆಡಿಟ್‌ಗಳು.", + "tierDescription": "Kilo App ಬಳಕೆಗಾಗಿ ಮಾಸಿಕ ಸೇರಿಸಲಾದ {{price}} ಪಾವತಿಸಿದ ಕ್ರೆಡಿಟ್‌ಗಳು.", "subscribe": "ಚಂದಾದಾರರಾಗಿ", "subscribeDescription": "ಬೋನಸ್ ಪ್ರಗತಿಯೊಂದಿಗೆ ಮಾಸಿಕ ಕ್ರೆಡಿಟ್‌ಗಳು", "manage": "ನಿರ್ವಹಿಸಿ", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass ಬಾಕಿ ಇದೆ", "statusCanceling": "Kilo Pass ರದ್ದಾಗುತ್ತಿದೆ", "statusPastDue": "Kilo Pass ಅವಧಿ ಮೀರಿದೆ", - "monthlyCredits": "${{credits}} ಮಾಸಿಕ ಕ್ರೆಡಿಟ್‌ಗಳು", + "monthlyCredits": "{{credits}} ಮಾಸಿಕ ಕ್ರೆಡಿಟ್‌ಗಳು", "ends": "{{date}} ಕೊನೆಗೊಳ್ಳುತ್ತದೆ", "periodEnd": "ಅವಧಿ ಅಂತ್ಯ", "managedOnGooglePlay": "Google Play ನಲ್ಲಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ", diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index 0f8d49c93d..de6f64ad35 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -201,7 +201,8 @@ "agents": "에이전트", "profile": "프로필", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, 탭, {{total}} 중 {{position}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "최근", "common": "일반", "reactWith": "{{reaction}} 반응", - "accessibility": "{{emoji}} 반응, {{count}}" + "accessibility": "{{emoji}} 반응, {{displayCount}}" }, "composer": { "replyingTo": "답장 대상", @@ -271,7 +272,7 @@ "imageUnavailable": "이미지를 사용할 수 없습니다", "openFailed": "첨부 파일을 열 수 없습니다. 연결을 확인하고 다시 시도하세요.", "attachFailed": "파일을 첨부하지 못했습니다", - "limit": "최대 {{count}}개의 파일을 첨부할 수 있습니다.", + "limit": "최대 {{displayCount}}개의 파일을 첨부할 수 있습니다.", "sizeRejection": "{{filename}}이(가) 첨부 한도 {{limit}}을(를) 초과합니다.", "unreadable": "{{filename}}을(를) 읽을 수 없습니다.", "pastedImage": "붙여넣은 이미지", @@ -343,6 +344,7 @@ "finalTermEnds": "최종 기간 종료", "afterFinalTerm": "최종 기간 이후", "remaining": "남음", + "lessThanOneDay": "1일 미만", "ends": "종료", "expires": "만료", "noActivePlan": "활성 플랜 없음", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "Standard 월간 가격", "perMonth": "/월", "earlybirdAccessUntil": "Earlybird 액세스 {{date}}까지", - "earlybirdEnding": "Earlybird 종료: {{days}}일 남음", + "earlybirdEnding": "Earlybird 종료: {{remaining}}", "paymentPastDue": "결제가 연체되었습니다. 결제 수단을 업데이트하세요.", "subscriptionCancels": "구독이 {{date}}에 취소됩니다", - "trialDaysRemaining": "체험: {{days}}일 남음", - "trialEndingSoon": "체험 종료 임박: {{days}}" + "trialDaysRemaining": "체험: {{remaining}} 남음", + "trialEndingSoon": "체험 종료 임박: {{remaining}}" }, "changelog": { "title": "새로운 기능", @@ -665,7 +667,7 @@ "startingSandbox": "샌드박스 시작 중", "stoppedBody": "설정 중 {{name}}의 인스턴스가 예기치 않게 중지되었습니다.", "stoppedTitle": "설정 중지됨", - "timeoutBody": "{{name}} 설정이 평소보다 오래 걸리고 있습니다({{minutes}}분 초과).", + "timeoutBody": "{{name}} 설정이 평소보다 오래 걸리고 있습니다({{displayMinutes}}분 초과).", "timeoutTitle": "예상보다 오래 걸림" }, "unavailableDescription": "인스턴스를 프로비저닝하려면 현재 KiloClaw 구독이 필요합니다. 기존 인스턴스와 구독은 정상적으로 계속됩니다.", @@ -912,7 +914,7 @@ "focusAreas": "중점 영역", "mergeGate": "병합 게이트", "model": "모델", - "nSelected": "{{count}}개 선택됨", + "nSelected": "{{displayCount}}개 선택됨", "proposedReviewMdGuidance": "제안된 REVIEW.md 지침", "repositories": "저장소", "reviewMemory": "리뷰 메모리", @@ -981,7 +983,7 @@ "triageReasoning": "분류 근거", "unknown": "알 수 없음", "watchInCloudAgent": "Cloud Agent에서 보기", - "whereFound": "발견 위치({{count}})", + "whereFound": "발견 위치({{displayCount}})", "yes": "예" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "악용 가능 확인됨", "couldNotLoad": "대시보드 데이터를 불러올 수 없습니다", "criticalOverdue": "치명적 기한 초과", - "daysOverdue": "{{count}}일 기한 초과", + "daysOverdue": "{{displayCount}}일 기한 초과", "deadlineToday": "오늘 마감일 도달", "filterByRepository": "저장소별 필터", "findings": "발견 사항", - "findingsCount": "발견 사항 {{count}}개", + "findingsCount": "발견 사항 {{displayCount}}개", "highOverdue": "높음 기한 초과", "lastSynced": "마지막 동기화: {{time}}", "manageRepositories": "저장소 관리", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "동기화 상태를 사용할 수 없음", "withinDeadline": "마감일 내" }, + "dashboardMetrics": { + "openFindings": "열린 발견 사항", + "openFindingsDetail": "치명적 {{critical}}, 높음 {{high}}", + "confirmedExploitable": "악용 가능 확인됨", + "confirmedExploitableDetail": "분석을 통해 프로젝트 위험 확인됨", + "needsReview": "검토 필요", + "needsReviewDetail": "사람의 결정 필요", + "analysisIncomplete": "분석 미완료", + "analysisIncompleteDetail": "프로젝트 위험 아직 알 수 없음", + "slaCompliance": "SLA 준수", + "notMeasured": "측정되지 않음", + "withinDeadlineDetail": "{{total}}개 중 {{within}}개가 마감일 내", + "noDeadlineData": "SLA 마감일이 있는 발견 사항이 아직 없음", + "deadlinePassed": "마감일 지남", + "deadlinePassedDetail": "치명적 {{critical}}, 높음 {{high}}", + "dueThisWeek": "이번 주 마감", + "dueThisWeekDetail": "악용 가능 확인 {{exploitable}}건", + "noDeadline": "마감일 없음", + "reviewSlaAssignment": "SLA 할당 검토", + "allOpenFindingsTracked": "모든 열린 발견 사항 추적됨" + }, "dismiss": { "alreadyResolvedDescription": "이 발견 사항은 이미 해결되어 더 이상 해제할 수 없습니다.", "cannotDismissDescription": "조직 소유자와 결제 관리자만 발견 사항을 해제할 수 있습니다.", @@ -1188,7 +1211,7 @@ "title": "알림" }, "remediation": { - "attemptHistory": "시도 기록({{count}})", + "attemptHistory": "시도 기록({{displayCount}})", "attemptNumber": "시도 #{{number}}", "branch": "브랜치", "cancelMessage": "Security Agent가 진행 중인 수정 시도를 중지합니다.", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "{{mode}} 분석", "automation": "자동화", "automationAllOff": "모두 꺼짐", - "automationCount": "3개 중 {{count}}개 활성화됨", + "automationCount": "3개 중 {{displayCount}}개 활성화됨", "couldNotLoadPermissions": "권한을 불러올 수 없습니다", "couldNotLoadRepositories": "저장소를 불러올 수 없습니다", "couldNotLoadSettings": "Security Agent 설정을 불러올 수 없습니다", @@ -1267,7 +1290,7 @@ "enabled": "활성화됨", "modelsAndAnalysis": "모델 및 분석", "notifications": "알림", - "notificationsCount": "2개 중 {{count}}개 활성화됨", + "notificationsCount": "2개 중 {{displayCount}}개 활성화됨", "off": "꺼짐", "on": "켜짐", "repositories": "저장소", @@ -1476,9 +1499,9 @@ "toolTask": "작업", "readTodos": "할 일 읽기", "updateTodos": "할 일 업데이트", - "linesBadge": "{{count}}줄", - "filesBadge": "{{count}}개 파일", - "matchesBadge": "{{count}}개 일치" + "linesBadge": "{{displayCount}}줄", + "filesBadge": "{{displayCount}}개 파일", + "matchesBadge": "{{displayCount}}개 일치" }, "readToolMarkdown": { "linesTruncated": "{{start}}–{{end}}행 (잘림)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "이 응답은 신고할 수 없습니다.", "reportAiResponseSubmitted": "신고가 제출되었습니다. 접수 {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "세부 정보를 사용할 수 없습니다", "textDisplay": "텍스트 표시", @@ -1620,7 +1647,7 @@ "preparationComplete": "준비 완료", "preparationFailed": "준비 실패", "setupCommand": "설정 명령 {{index}}", - "setupCommandOf": "설정 명령 {{index}} / {{count}}" + "setupCommandOf": "설정 명령 {{index}} / {{displayCount}}" }, "permissionCard": { "title": "권한 필요", @@ -1657,7 +1684,7 @@ "submissionFailed": "제출에 실패했습니다. 다시 시도하세요.", "questionAnnouncement": "에이전트가 입력을 필요로 합니다. 답변하는 동안 작성기가 일시 중지됩니다.", "permissionAnnouncement": "에이전트가 계속하려면 권한이 필요합니다. 결정하는 동안 작성기가 일시 중지됩니다.", - "positionHint": "({{count}}개 중 1개)", + "positionHint": "({{displayCount}}개 중 1개)", "movedPastPrompt": "에이전트가 이 프롬프트를 지나갔습니다. 세션이 계속되면 이 카드가 닫힙니다.", "waitingForAnswer": "에이전트가 답변을 기다리고 있습니다. 이 질문이 열려 있는 동안 에이전트에게 보내는 메시지가 일시 중지됩니다.", "waitingForPermission": "에이전트가 권한을 기다리고 있습니다. 이 요청이 열려 있는 동안 에이전트에게 보내는 메시지가 일시 중지됩니다." @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "카메라 액세스 비활성화됨", "cameraAccessMessage": "사진을 찍으려면 설정에서 카메라 액세스를 허용하세요.", "couldNotOpenPhotoPicker": "사진 선택기를 열 수 없습니다. Kilo를 다시 시작하고 다시 시도하세요.", - "maxFilesAllowed": "최대 {{count}}개의 파일을 첨부할 수 있습니다.", + "maxFilesAllowed": "최대 {{displayCount}}개의 파일을 첨부할 수 있습니다.", "onlyAddingFiles": "{{accepted}}개의 파일만 추가합니다 ({{total}}개 중, 최대 {{max}}개)" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "비용 {{cost}}", "costSuffix": ", 비용 {{cost}}", "tokensWindowUnavailable": "컨텍스트 {{used}} 토큰, 창 사용 불가", - "tokensUsage": "컨텍스트 {{window}} 중 {{used}} 토큰, {{percentage}}% 사용됨", + "tokensUsage": "컨텍스트 {{window}} 중 {{used}} 토큰, {{percentage}} 사용됨", "title": "컨텍스트 사용량", "used": "사용됨", "remaining": "남음", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "사용량은 최근 완료된 어시스턴트 응답을 반영합니다.", "tokenUsage": "토큰 사용량", "cacheRate": "캐시 비율", - "modelsCount": "모델 ({{count}})", + "modelsCount": "모델 ({{displayCount}})", "tokenTotalsNote": "토큰 합계는 이 세션만 포함하며 하위 에이전트/하위 세션 토큰은 제외합니다.", "subagents": "하위 에이전트", "subagentsDescription": "하위 세션의 잔여 비용", @@ -1994,7 +2021,7 @@ "connectedCli": "연결된 CLI에서", "newSessionOn": "{{name}}에서 새 세션", "noMatchingSessions": "일치하는 세션이 없습니다.", - "onlyFirstFilesAttached": "처음 {{count}}개의 파일만 첨부됩니다.", + "onlyFirstFilesAttached": "처음 {{displayCount}}개의 파일만 첨부됩니다.", "staleMessage": "이 공유는 더 이상 사용할 수 없습니다.", "retryableMessage": "세션을 불러올 수 없습니다.", "emptyMessage": "아직 세션 없음 — 보내려면 새 세션을 시작하세요.", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "이 Apple 계정의 Kilo Pass는 다른 Kilo 계정에 속합니다. 관리하려면 해당 Kilo 계정에 로그인하세요.", "alreadySubscribed": "이미 Kilo Pass 구독이 있습니다.", "purchaseUnavailable": "지금은 Kilo Pass를 구매할 수 없습니다.", - "tierCredits": "${{amount}} 크레딧", + "tierCredits": "{{amount}} 크레딧", "perMonth": "{{price}}/월", "verifyPurchaseFailed": "구매를 확인할 수 없습니다. 연결을 확인하고 다시 시도하세요.", "productsCouldNotLoad": "App Store에서 Kilo Pass 상품을 불러올 수 없습니다.", @@ -2038,7 +2065,7 @@ "manageFailed": "App Store 구독 관리를 열지 못했습니다.", "kiloPassSetup": "Kilo Pass 설정", "subscriptionHeaderDescription": "Kilo 앱에서 AI 코딩 세션을 실행하기 위해 Kilo 잔액에 크레딧을 추가하는 월간 구독 — Cloud Agents, 원격 세션, KiloClaw 채팅.", - "tierDescription": "Kilo 앱 사용을 위해 매월 ${{price}} 유료 크레딧이 추가됩니다.", + "tierDescription": "Kilo 앱 사용을 위해 매월 {{price}} 유료 크레딧이 추가됩니다.", "subscribe": "구독", "subscribeDescription": "보너스 진행률이 포함된 월간 크레딧", "manage": "관리", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass 대기 중", "statusCanceling": "Kilo Pass 취소 중", "statusPastDue": "Kilo Pass 기한 초과", - "monthlyCredits": "월 ${{credits}} 크레딧", + "monthlyCredits": "월 {{credits}} 크레딧", "ends": "{{date}}에 종료", "periodEnd": "기간 종료", "managedOnGooglePlay": "Google Play에서 관리", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "이 풀 리퀘스트를 볼 권한이 없습니다.", "checkConnection": "연결 확인", "checks": { - "checksCount": "체크 {{count}}개", + "checksCount": "체크 {{displayCount}}개", "couldNotLoad": "체크를 불러올 수 없습니다.", - "failed": "{{count}}개 실패", + "failed": "{{displayCount}}개 실패", "noAccess": "이 저장소의 체크에 액세스할 수 없습니다.", "noChecksReported": "보고된 체크 없음", "notAvailable": "체크를 아직 사용할 수 없습니다. 헤드 커밋이 처리되지 않았거나 헤드 저장소에 Kilo GitHub 앱이 설치되지 않았을 수 있습니다.", "openDetails": "{{name}} 세부 정보 열기", - "passed": "{{count}}개 통과", - "pending": "{{count}}개 대기 중", + "passed": "{{displayCount}}개 통과", + "pending": "{{displayCount}}개 대기 중", "retryChecks": "체크 다시 시도", - "skipped": "{{count}}개 건너뜀", + "skipped": "{{displayCount}}개 건너뜀", "title": "체크", "viewOnGitHub": "GitHub에서 PR 보기", "checkDetails": "체크 세부 정보", @@ -2238,7 +2265,7 @@ "terminal": "이 사용자는 신고할 수 없습니다." } }, - "moreLinesAbove": "… 위에 {{count}}줄 더", + "moreLinesAbove": "… 위에 {{displayCount}}줄 더", "mute": "음소거", "mutedUser": "{{login}} 음소거됨", "noDiscussion": "아직 토론 없음", @@ -2246,7 +2273,7 @@ "comment_one": "댓글 1개", "outdated": "오래됨", "quotedDiffSnippet": "인용된 diff 스니펫", - "reactionPill": "{{emoji}} 반응, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} 반응, {{displayCount}} {{countLabel}}", "reaction": "반응", "reaction_other": "반응", "reaction_one": "반응", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "이 ref에서 컨텍스트를 사용할 수 없음", "expandAll": "모두 펼치기", - "expandAllLines": "{{count}}줄 모두 펼치기", + "expandAllLines": "{{displayCount}}줄 모두 펼치기", "expandContext": "컨텍스트 펼치기", - "expandLines": "{{count}}줄 펼치기 ({{start}}–{{end}})", - "expandLinesOfContext": "컨텍스트 {{count}}줄 펼치기", + "expandLines": "{{displayCount}}줄 펼치기 ({{start}}–{{end}})", + "expandLinesOfContext": "컨텍스트 {{displayCount}}줄 펼치기", "expandMoreContext": "컨텍스트 더 펼치기", - "expandMoreLines": "{{count}}줄 더 펼치기 ({{start}}–{{end}})", + "expandMoreLines": "{{displayCount}}줄 더 펼치기 ({{start}}–{{end}})", "failedToLoadContext": "컨텍스트를 불러오지 못했습니다 — 탭하여 다시 시도", "failedToLoadMoreFiles": "더 많은 파일을 불러오지 못했습니다 — 탭하여 다시 시도", "fileLoadedCount_one": "파일 {{displayCount}}개 로드됨", @@ -2500,8 +2527,8 @@ "pendingComment_one": "보류 중인 댓글", "summaryOptional": "요약 (선택 사항)", "title": "리뷰 제출", - "partialPostedMessage": "댓글 {{freshCount}}개를 게시했습니다. 이전 커밋을 가리키는 댓글 {{staleCount}}개는 대기열에 남았습니다.", - "submitCountOfTotal": "댓글 {{totalCount}}개 중 {{freshCount}}개 제출", + "partialPostedMessage": "댓글 {{displayFreshCount}}개를 게시했습니다. 이전 커밋을 가리키는 댓글 {{displayStaleCount}}개는 대기열에 남았습니다.", + "submitCountOfTotal": "댓글 {{displayTotalCount}}개 중 {{displayFreshCount}}개 제출", "submitReview": "리뷰 제출" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index 35805c1fb5..2d209dc657 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -206,11 +206,11 @@ "loadingLines": "ກຳລັງໂຫຼດ {{loaded}} ຈາກ {{total}} ແຖວ...", "expandContext": "ຂະຫຍາຍບໍລິບົດ", "expandMoreContext": "ຂະຫຍາຍບໍລິບົດເພີ່ມຂຶ້ນ", - "expandLines": "ຂະຫຍາຍ {{count}} ແຖວ ({{start}}–{{end}})", - "expandMoreLines": "ຂະຫຍາຍ {{count}} ແຖວເພີ່ມຂຶ້ນ ({{start}}–{{end}})", - "expandLinesOfContext": "ຂະຫຍາຍ {{count}} ແຖວຂອງບໍລິບົດ", + "expandLines": "ຂະຫຍາຍ {{displayCount}} ແຖວ ({{start}}–{{end}})", + "expandMoreLines": "ຂະຫຍາຍ {{displayCount}} ແຖວເພີ່ມຂຶ້ນ ({{start}}–{{end}})", + "expandLinesOfContext": "ຂະຫຍາຍ {{displayCount}} ແຖວຂອງບໍລິບົດ", "expandAll": "ຂະຫຍາຍທັງໝົດ", - "expandAllLines": "ຂະຫຍາຍ {{count}} ແຖວທັງໝົດ", + "expandAllLines": "ຂະຫຍາຍ {{displayCount}} ແຖວທັງໝົດ", "loadingMoreFiles": "ກຳລັງໂຫຼດໄຟລ໌ເພີ່ມເຕີມ...", "retryLoadingNextPage": "ລອງໂຫຼດໜ້າຕໍ່ໄປອີກຄັ້ງ", "failedToLoadMoreFiles": "ການໂຫຼດໄຟລ໌ເພີ່ມເຕີມລົ້ມເຫຼວ — ແຕະເພື່ອລອງໃໝ່", @@ -301,7 +301,7 @@ "closeReactions": "ປິດຣີແອກຊັນ", "reactionsTitle": "ຣີແອກຊັນ", "addReaction": "ເພີ່ມຣີແອກຊັນ", - "reactionPill": "{{emoji}} ຣີແອກຊັນ, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ຣີແອກຊັນ, {{displayCount}} {{countLabel}}", "reaction_one": "ຣີແອກຊັນ", "reaction": "ຣີແອກຊັນ", "reaction_other": "ຣີແອກຊັນ", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ບໍ່ມີກະທູ້ກວດສອບ ຫຼື ຄຳເຫັນສົນທະນາໃນ pull request ນີ້.", "reviewFiles": "ກວດສອບໄຟລ໌", "quotedDiffSnippet": "ຊິ້ນ diff ທີ່ອ້າງອີງ", - "moreLinesAbove": "... {{count}} ແຖວເພີ່ມເຕີມຂ້າງເທິງ", + "moreLinesAbove": "... {{displayCount}} ແຖວເພີ່ມເຕີມຂ້າງເທິງ", "termsAcceptRequired": "ທ່ານຕ້ອງຍອມຮັບຂໍ້ກຳນົດການໃຊ້ງານເພື່ອຈະໂພສໄດ້.", "termsOutdatedCopy": "ຂໍ້ກຳນົດການໃຊ້ງານປ່ຽນແປງແລ້ວ. ເປີດໜ້າຈໍນີ້ຄືນເພື່ອຍອມຮັບສະບັບຫຼ້າສຸດ.", "termsCheckRetryCopy": "ບໍ່ສາມາດກວດສອບຂໍ້ກຳນົດການໃຊ້ງານໄດ້. ກວດເບິ່ງການເຊື່ອມຕໍ່ຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ." @@ -395,11 +395,11 @@ "retryChecks": "ລອງການກວດສອບອີກຄັ້ງ", "viewOnGitHub": "ເບິ່ງ PR ໃນ GitHub", "noChecksReported": "ບໍ່ມີການກວດສອບລາຍງານ", - "passed": "{{count}} ຜ່ານ", - "failed": "{{count}} ລົ້ມເຫຼວ", - "pending": "{{count}} ລໍຖ້າ", - "skipped": "{{count}} ຂ້າມ", - "checksCount": "{{count}} ການກວດສອບ", + "passed": "{{displayCount}} ຜ່ານ", + "failed": "{{displayCount}} ລົ້ມເຫຼວ", + "pending": "{{displayCount}} ລໍຖ້າ", + "skipped": "{{displayCount}} ຂ້າມ", + "checksCount": "{{displayCount}} ການກວດສອບ", "checkDetails": "ລາຍລະອຽດການກວດສອບ", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ຄຳເຫັນທີ່ລໍຖ້າ", "pendingComment": "ຄຳເຫັນທີ່ລໍຖ້າ", "pendingComment_other": "ຄຳເຫັນທີ່ລໍຖ້າ", - "submitCountOfTotal": "ສົ່ງ {{freshCount}} ຈາກ {{totalCount}} ຄຳເຫັນ", + "submitCountOfTotal": "ສົ່ງ {{displayFreshCount}} ຈາກ {{displayTotalCount}} ຄຳເຫັນ", "submitReview": "ສົ່ງການກວດສອບ", - "partialPostedMessage": "ໂພສ {{freshCount}} ຄຳເຫັນ. {{staleCount}} ຄຳເຫັນຊີ້ບອກໃສ່ commit ທີ່ເກົ່າກວ່າ ແລະ ຍັງຄົງຢູ່ໃນຄິວຂອງທ່ານ." + "partialPostedMessage": "ໂພສ {{displayFreshCount}} ຄຳເຫັນ. {{displayStaleCount}} ຄຳເຫັນຊີ້ບອກໃສ່ commit ທີ່ເກົ່າກວ່າ ແລະ ຍັງຄົງຢູ່ໃນຄິວຂອງທ່ານ." }, "reconnectNotice": { "title": "ການເຊື່ອມຕໍ່ GitHub ໝົດອາຍຸແລ້ວ", @@ -580,7 +580,8 @@ "agents": "ເອເຈນ", "profile": "ໂປຣຟາຍ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ແຖບ, {{position}} ຈາກ {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ລ່າສຸດ", "common": "ທົ່ວໄປ", "reactWith": "ຣີແອກດ້ວຍ {{reaction}}", - "accessibility": "{{emoji}} ຣີແອກຊັນ, {{count}}" + "accessibility": "{{emoji}} ຣີແອກຊັນ, {{displayCount}}" }, "composer": { "replyingTo": "ກຳລັງຕອບ", @@ -650,7 +651,7 @@ "imageUnavailable": "ຮູບພາບບໍ່ພ້ອມໃຊ້", "openFailed": "ບໍ່ສາມາດເປີດໄຟລ໌ແນບໄດ້. ກວດເບິ່ງການເຊື່ອມຕໍ່ຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ.", "attachFailed": "ການແນບໄຟລ໌ລົ້ມເຫຼວ", - "limit": "ທ່ານສາມາດແນບໄດ້ສູງສຸດ {{count}} ໄຟລ໌.", + "limit": "ທ່ານສາມາດແນບໄດ້ສູງສຸດ {{displayCount}} ໄຟລ໌.", "sizeRejection": "{{filename}} ເກີນຂີດຈຳກັດການແນບ {{limit}}.", "unreadable": "ບໍ່ສາມາດອ່ານ {{filename}} ໄດ້.", "pastedImage": "ຮູບພາບທີ່ວາງ", @@ -722,6 +723,7 @@ "finalTermEnds": "ຮອບສຸດທ້າຍສິ້ນສຸດ", "afterFinalTerm": "ຫຼັງຮອບສຸດທ້າຍ", "remaining": "ເຫຼືອ", + "lessThanOneDay": "ໜ້ອຍກວ່າ 1 ມື້", "ends": "ສິ້ນສຸດ", "expires": "ໝົດອາຍຸ", "noActivePlan": "ບໍ່ມີແຜນທີ່ເຄື່ອນໄຫວ", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ລາຄາລາຍເດືອນ Standard ຂອງທ່ານ", "perMonth": "/ເດືອນ", "earlybirdAccessUntil": "ການເຂົ້າເຖິງ Earlybird ຈົນເຖິງ {{date}}", - "earlybirdEnding": "Earlybird ສິ້ນສຸດ: {{days}} ມື້ເຫຼືອ", + "earlybirdEnding": "Earlybird ສິ້ນສຸດ: {{remaining}}", "paymentPastDue": "ການຈ່າຍເງິນເກີນກຳນົດ. ກະລຸນາອັບເດດວິທີການຈ່າຍເງິນຂອງທ່ານ.", "subscriptionCancels": "ສະມາຊິກຈະຖືກຍົກເລີກໃນ {{date}}", - "trialDaysRemaining": "ທົດລອງ: {{days}} ມື້ເຫຼືອ", - "trialEndingSoon": "ທົດລອງຈະສິ້ນສຸດອີກບໍ່ດົນ: {{days}}" + "trialDaysRemaining": "ທົດລອງ: {{remaining}} ເຫຼືອ", + "trialEndingSoon": "ທົດລອງຈະສິ້ນສຸດອີກບໍ່ດົນ: {{remaining}}" }, "changelog": { "title": "ມີອັນໃໝ່ຫຍັງ", @@ -996,7 +998,7 @@ "stalledTitle": "ມີບາງຢ່າງຕິດຄ້າງ", "stalledBody": "ພວກເຮົາບໍ່ສາມາດສຳເລັດການຕັ້ງຄ່າ {{name}}. ລອງອີກ, ຫຼືອີເມວ hi@kilo.ai ຖ້າມັນເກີດຂຶ້ນຊ້ຳ.", "timeoutTitle": "ໃຊ້ເວລາດົນກວ່າທີ່ຄາດໄວ້", - "timeoutBody": "ການຕັ້ງຄ່າ {{name}} ໃຊ້ເວລາດົນກວ່າປົກກະຕິ (ເກີນ {{minutes}} ນາທີ).", + "timeoutBody": "ການຕັ້ງຄ່າ {{name}} ໃຊ້ເວລາດົນກວ່າປົກກະຕິ (ເກີນ {{displayMinutes}} ນາທີ).", "continueInBackground": "ສືບຕໍ່ໃນພື້ນຫຼັງ", "settingUp": "ກຳລັງຕັ້ງຄ່າ {{name}}", "finishingSetup": "ກຳລັງສຳເລັດການຕັ້ງຄ່າ", @@ -1287,7 +1289,7 @@ "mergeGate": "ປະຕູ merge", "repositories": "Repositories", "allRepositories": "Repositories ທັງໝົດ", - "nSelected": "{{count}} ລາຍການທີ່ເລືອກ", + "nSelected": "{{displayCount}} ລາຍການທີ່ເລືອກ", "reviewMemory": "ຄວາມຈຳການທົບທວນ", "proposedReviewMdGuidance": "ຂໍ້ແນະນຳ REVIEW.md ທີ່ສະເໜີ" }, @@ -1391,14 +1393,14 @@ "analyzed": "ວິເຄາະແລ້ວ", "exploitabilityReasoning": "ເຫດຜົນການໂຈມຕີໄດ້", "suggestedFix": "ການແກ້ໄຂທີ່ແນະນຳ", - "whereFound": "ພົບບ່ອນໃດ ({{count}})", + "whereFound": "ພົບບ່ອນໃດ ({{displayCount}})", "fullReport": "ລາຍງານທີ່ສ້າງຂຶ້ນເຕັມ", "unknown": "ບໍ່ຮູ້", "yes": "ແມ່ນ", "no": "ບໍ່" }, "dashboard": { - "findingsCount": "{{count}} ການກວດພົບ", + "findingsCount": "{{displayCount}} ການກວດພົບ", "notMeasured": "ບໍ່ຖືກວັດແທກ", "actFirst": "ລົງມືກ່ອນ", "slaPosture": "ທ່າທາງ SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "ແຜນການກະທຳຂອງບ່ອນເກັບລະຫັດ", "noOpenFindings": "ບໍ່ມີການກວດພົບທີ່ເປີດຢູ່ທີ່ຕ້ອງການຄວາມສົນໃຈ", "deadlineToday": "ຮອດກຳນົດເສັ້ນຕາຍໃນມື້ນີ້", - "daysOverdue": "{{count}} ມື້ທີ່ເກີນກຳນົດ", + "daysOverdue": "{{displayCount}} ມື້ທີ່ເກີນກຳນົດ", "withinDeadline": "ພາຍໃນກຳນົດເສັ້ນຕາຍ", "criticalOverdue": "ຮ້າຍແຮງທີ່ເກີນກຳນົດ", "highOverdue": "ສູງທີ່ເກີນກຳນົດ", @@ -1435,6 +1437,27 @@ "syncQueued": "ການຊິ້ງເຂົ້າຄິວແລ້ວ", "syncStatusUnavailable": "ສະຖານະການຊິ້ງບໍ່ສາມາດໃຊ້ງານໄດ້" }, + "dashboardMetrics": { + "openFindings": "ການກວດພົບທີ່ເປີດ", + "openFindingsDetail": "ຮ້າຍແຮງ {{critical}} ສູງ {{high}}", + "confirmedExploitable": "ຢືນຢັນວ່າໂຈມຕີໄດ້", + "confirmedExploitableDetail": "ຄວາມສ່ຽງຂອງໂຄງການຢືນຢັນໂດຍການວິເຄາະ", + "needsReview": "ຕ້ອງການການທົບທວນຂອງທ່ານ", + "needsReviewDetail": "ຕ້ອງການການຕັດສິນໃຈຂອງມະນຸດ", + "analysisIncomplete": "ການວິເຄາະບໍ່ສຳເລັດ", + "analysisIncompleteDetail": "ຄວາມສ່ຽງຂອງໂຄງການຍັງບໍ່ຮູ້", + "slaCompliance": "ການປະຕິບັດຕາມ SLA", + "notMeasured": "ບໍ່ໄດ້ວັດແທກ", + "withinDeadlineDetail": "{{within}} ຈາກ {{total}} ພາຍໃນກຳນົດເສັ້ນຕາຍ", + "noDeadlineData": "ຍັງບໍ່ມີການກວດພົບທີ່ມີກຳນົດເສັ້ນຕາຍ SLA", + "deadlinePassed": "ຜ່ານກຳນົດເສັ້ນຕາຍ", + "deadlinePassedDetail": "ຮ້າຍແຮງ {{critical}} ສູງ {{high}}", + "dueThisWeek": "ກຳນົດອາທິດນີ້", + "dueThisWeekDetail": "{{exploitable}} ຢືນຢັນວ່າໂຈມຕີໄດ້", + "noDeadline": "ບໍ່ມີກຳນົດເສັ້ນຕາຍ", + "reviewSlaAssignment": "ທົບທວນການມອບໝາຍ SLA", + "allOpenFindingsTracked": "ການກວດພົບທີ່ເປີດທັງໝົດຖືກຕິດຕາມ" + }, "dismiss": { "title": "ປິດການກວດພົບ", "submit": "ປິດການກວດພົບ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "ການວິເຄາະ {{mode}}", "automation": "ອັດຕະໂນມັດ", "automationAllOff": "ປິດທັງໝົດ", - "automationCount": "{{count}} ຈາກ 3 ທີ່ເປີດໃຊ້", + "automationCount": "{{displayCount}} ຈາກ 3 ທີ່ເປີດໃຊ້", "notifications": "ການແຈ້ງເຕືອນ", - "notificationsCount": "{{count}} ຈາກ 2 ທີ່ເປີດໃຊ້", + "notificationsCount": "{{displayCount}} ຈາກ 2 ທີ່ເປີດໃຊ້", "slaPolicy": "ນະໂຍບາຍ SLA", "disabledNoManage": "Security Agent ຖືກປິດໃຊ້ງານ. ພຽງແຕ່ເຈົ້າຂອງອົງກອນ ແລະ ຜູ້ຈັດການການເກັບເງິນສາມາດເປີດມັນ.", "disabledNoRepo": "ເລືອກຢ່າງໜ້ອຍໜຶ່ງບ່ອນເກັບລະຫັດກ່ອນເປີດໃຊ້ Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "ເປີດ pull request{{number}}", "openDraftPullRequest": "ເປີດ pull request ຮ່າງ{{number}}", "progress": "ຄວາມຄືບໜ້າ", - "attemptHistory": "ປະຫວັດຄວາມພະຍາຍາມ ({{count}})", + "attemptHistory": "ປະຫວັດຄວາມພະຍາຍາມ ({{displayCount}})", "attemptNumber": "ຄວາມພະຍາຍາມ #{{number}}", "startedBy": "ເລີ່ມໂດຍ", "model": "ຕົວແບບ", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "ອ່ານລາຍການວຽກ", "updateTodos": "ອັບເດດລາຍການວຽກ", - "linesBadge": "{{count}} ແຖວ", - "filesBadge": "{{count}} ໄຟລ໌", - "matchesBadge": "{{count}} ລາຍການທີ່ກົງ" + "linesBadge": "{{displayCount}} ແຖວ", + "filesBadge": "{{displayCount}} ໄຟລ໌", + "matchesBadge": "{{displayCount}} ລາຍການທີ່ກົງ" }, "readToolMarkdown": { "linesTruncated": "ແຖວ {{start}}–{{end}} (ຖືກຕັດ)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ການຕອບນີ້ບໍ່ສາມາດຖືກລາຍງານ.", "reportAiResponseSubmitted": "ສົ່ງລາຍງານແລ້ວ. ໃບຮັບ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "ລາຍລະອຽດບໍ່ສາມາດໃຊ້ໄດ້", "textDisplay": "ການສະແດງຂໍ້ຄວາມ", @@ -1999,7 +2026,7 @@ "preparationComplete": "ການກຽມສຳເລັດ", "preparationFailed": "ການກຽມລົ້ມເຫຼວ", "setupCommand": "ຄຳສັ່ງຕັ້ງຄ່າ {{index}}", - "setupCommandOf": "ຄຳສັ່ງຕັ້ງຄ່າ {{index}} ຈາກ {{count}}" + "setupCommandOf": "ຄຳສັ່ງຕັ້ງຄ່າ {{index}} ຈາກ {{displayCount}}" }, "permissionCard": { "title": "ຕ້ອງການສິດ", @@ -2036,7 +2063,7 @@ "submissionFailed": "ການສົ່ງລົ້ມເຫລວ. ກະລຸນາລອງອີກ.", "questionAnnouncement": "ຕົວແທນຕ້ອງການຂໍ້ມູນຈາກທ່ານ. ກ່ອງຂຽນຖືກຢຸດຊົ່ວຄາວໃນຂະນະທີ່ທ່ານຕອບ.", "permissionAnnouncement": "ຕົວແທນຕ້ອງການການອະນຸຍາດເພື່ອສືບຕໍ່. ກ່ອງຂຽນຖືກຢຸດຊົ່ວຄາວໃນຂະນະທີ່ທ່ານຕັດສິນໃຈ.", - "positionHint": "(1 ຈາກ {{count}})", + "positionHint": "(1 ຈາກ {{displayCount}})", "movedPastPrompt": "ຕົວແທນໄດ້ຜ່ານການກະຕຸ້ນນີ້ແລ້ວ. ບັດນີ້ຈະປິດເມື່ອເຊດຊັນດຳເນີນຕໍ່.", "waitingForAnswer": "ຕົວແທນກຳລັງລໍຖ້າຄຳຕອບຂອງທ່ານ. ໃນຂະນະທີ່ຄຳຖາມນີ້ເປີດຢູ່, ຂໍ້ຄວາມຂອງທ່ານໄປຫາຕົວແທນຖືກຢຸດ.", "waitingForPermission": "ຕົວແທນກຳລັງລໍຖ້າການອະນຸຍາດ. ໃນຂະນະທີ່ຄຳຂໍນີ້ເປີດຢູ່, ຂໍ້ຄວາມຂອງທ່ານໄປຫາຕົວແທນຖືກຢຸດ." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "ການເຂົ້າເຖິງກ້ອງຖືກປິດ", "cameraAccessMessage": "ອະນຸຍາດໃຫ້ເຂົ້າເຖິງກ້ອງໃນການຕັ້ງຄ່າເພື່ອຖ່າຍຮູບ.", "couldNotOpenPhotoPicker": "ບໍ່ສາມາດເປີດຕົວເລືອກຮູບໄດ້. ເລີ່ມ Kilo ໃໝ່ແລ້ວລອງອີກ.", - "maxFilesAllowed": "ອະນຸຍາດສູງສຸດ {{count}} ໄຟລ໌", + "maxFilesAllowed": "ອະນຸຍາດສູງສຸດ {{displayCount}} ໄຟລ໌", "onlyAddingFiles": "ພຽງແຕ່ເພີ່ມ {{accepted}} ຈາກ {{total}} ໄຟລ໌ (ສູງສຸດ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ຄ່າໃຊ້ຈ່າຍ {{cost}}", "costSuffix": ", ຄ່າໃຊ້ຈ່າຍ {{cost}}", "tokensWindowUnavailable": "ບໍລິບົດ {{used}} tokens, window ບໍ່ມີ", - "tokensUsage": "ບໍລິບົດ {{used}} ຈາກ {{window}} tokens, ໃຊ້ {{percentage}}%", + "tokensUsage": "ບໍລິບົດ {{used}} ຈາກ {{window}} tokens, ໃຊ້ {{percentage}}", "title": "ການໃຊ້ບໍລິບົດ", "used": "ໃຊ້ແລ້ວ", "remaining": "ຍັງເຫຼືອ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "ການໃຊ້ງານສະທ້ອນການຕອບສະໜອງຂອງຜູ້ຊ່ວຍຫຼ້າສຸດ.", "tokenUsage": "ການໃຊ້ token", "cacheRate": "ອັດຕາ cache", - "modelsCount": "ຮູບແບບ ({{count}})", + "modelsCount": "ຮູບແບບ ({{displayCount}})", "tokenTotalsNote": "ຍອດ token ກວມເອົາພຽງເຊດຊັນນີ້ເທົ່ານັ້ນ ແລະ ບໍ່ລວມ token ຂອງຕົວແທນຍ່ອຍ/ເຊດຊັນຍ່ອຍ.", "subagents": "ຕົວແທນຍ່ອຍ", "subagentsDescription": "ຄ່າໃຊ້ຈ່າຍທີ່ເຫຼືອຈາກເຊດຊັນຍ່ອຍ", @@ -2373,7 +2400,7 @@ "connectedCli": "ຢູ່ໃນ CLI ທີ່ເຊື່ອມຕໍ່", "newSessionOn": "ເຊດຊັນໃໝ່ໃນ {{name}}", "noMatchingSessions": "ບໍ່ມີເຊດຊັນທີ່ກົງກັນ.", - "onlyFirstFilesAttached": "ພຽງແຕ່ {{count}} ໄຟລ໌ທຳອິດເທົ່ານັ້ນທີ່ຈະຖືກແນບ.", + "onlyFirstFilesAttached": "ພຽງແຕ່ {{displayCount}} ໄຟລ໌ທຳອິດເທົ່ານັ້ນທີ່ຈະຖືກແນບ.", "staleMessage": "ການແບ່ງປັນນີ້ບໍ່ມີອີກແລ້ວ.", "retryableMessage": "ບໍ່ສາມາດໂຫລດເຊດຊັນຂອງທ່ານ.", "emptyMessage": "ຍັງບໍ່ມີເຊດຊັນ — ເລີ່ມໃໝ່ເພື່ອສົ່ງສິ່ງນີ້.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass ໃນ Apple Account ນີ້ເປັນຂອງບັນຊີ Kilo ອື່ນ. ເຂົ້າສູ່ລະບົບບັນຊີ Kilo ນັ້ນເພື່ອຈັດການ.", "alreadySubscribed": "ທ່ານມີການສະໝັກສະມາຊິກ Kilo Pass ແລ້ວ.", "purchaseUnavailable": "ການຊື້ Kilo Pass ບໍ່ມີໃນຕອນນີ້.", - "tierCredits": "${{amount}} ໃນເຄຣດິດ", + "tierCredits": "{{amount}} ໃນເຄຣດິດ", "perMonth": "{{price}}/ເດືອນ", "verifyPurchaseFailed": "ບໍ່ສາມາດກວດສອບການຊື້ຂອງທ່ານ. ກວດເບິ່ງການເຊື່ອມຕໍ່ແລ້ວລອງອີກ.", "productsCouldNotLoad": "ບໍ່ສາມາດໂຫລດສິນຄ້າ Kilo Pass ຈາກ App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "ບໍ່ສາມາດເປີດການຈັດການການສະໝັກ App Store.", "kiloPassSetup": "ການຕັ້ງຄ່າ Kilo Pass", "subscriptionHeaderDescription": "ການສະໝັກລາຍເດືອນທີ່ເພີ່ມເຄຣດິດໃສ່ຍອດ Kilo ຂອງທ່ານສຳລັບການແລ່ນເຊດຊັນການຂຽນໂຄ້ດ AI ໃນ Kilo App — Cloud Agents, ເຊດຊັນຫ່າງໄກ, ແລະ ການສົນທະນາ KiloClaw.", - "tierDescription": "ເຄຣດິດທີ່ຊຳລະ ${{price}} ເພີ່ມລາຍເດືອນສຳລັບການໃຊ້ Kilo App.", + "tierDescription": "ເຄຣດິດທີ່ຊຳລະ {{price}} ເພີ່ມລາຍເດືອນສຳລັບການໃຊ້ Kilo App.", "subscribe": "ສະໝັກ", "subscribeDescription": "ເຄຣດິດລາຍເດືອນພ້ອມຄວາມຄືບໜ້າໂບນັດ", "manage": "ຈັດການ", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass ກຳລັງລໍຖ້າ", "statusCanceling": "Kilo Pass ກຳລັງຍົກເລີກ", "statusPastDue": "Kilo Pass ຄ້າງຊຳລະ", - "monthlyCredits": "${{credits}} ເຄຣດິດລາຍເດືອນ", + "monthlyCredits": "{{credits}} ເຄຣດິດລາຍເດືອນ", "ends": "ສິ້ນສຸດ {{date}}", "periodEnd": "ສິ້ນສຸດຊ່ວງເວລາ", "managedOnGooglePlay": "ຈັດການຢູ່ Google Play", diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index 137bd62186..94f23e9c34 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -206,11 +206,11 @@ "loadingLines": "Įkeliama {{loaded}} iš {{total}} eilučių...", "expandContext": "Išskleisti kontekstą", "expandMoreContext": "Išskleisti daugiau konteksto", - "expandLines": "Išskleisti {{count}} eilutes ({{start}}–{{end}})", - "expandMoreLines": "Išskleisti dar {{count}} eilutes ({{start}}–{{end}})", - "expandLinesOfContext": "Išskleisti {{count}} konteksto eilutes", + "expandLines": "Išskleisti {{displayCount}} eilutes ({{start}}–{{end}})", + "expandMoreLines": "Išskleisti dar {{displayCount}} eilutes ({{start}}–{{end}})", + "expandLinesOfContext": "Išskleisti {{displayCount}} konteksto eilutes", "expandAll": "Išskleisti viską", - "expandAllLines": "Išskleisti visas {{count}} eilutes", + "expandAllLines": "Išskleisti visas {{displayCount}} eilutes", "loadingMoreFiles": "Įkeliama daugiau failų...", "retryLoadingNextPage": "Bandyti įkelti kitą puslapį dar kartą", "failedToLoadMoreFiles": "Nepavyko įkelti daugiau failų — bakstelėkite, kad bandytumėte dar kartą", @@ -227,7 +227,11 @@ "fileLoadedOfTotalCount_other": "Įkelta {{displayCount}} failų iš {{total}}", "filesStillLoading": "Failai vis dar įkeliami. Patraukite, kad atnaujintumėte.", "goToOverview": "Eiti į apžvalgą", - "goToOverviewTab": "Eiti į apžvalgos skirtuką" + "goToOverviewTab": "Eiti į apžvalgos skirtuką", + "fileLoadedCount_few": "Įkelti {{displayCount}} failai", + "fileLoadedCount_many": "Įkelta {{displayCount}} failų", + "fileLoadedOfTotalCount_few": "Įkelti {{displayCount}} failai iš {{total}}", + "fileLoadedOfTotalCount_many": "Įkelta {{displayCount}} failų iš {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ pabaigoje nėra naujos eilutės", @@ -301,7 +305,7 @@ "closeReactions": "Uždaryti reakcijas", "reactionsTitle": "Reakcijos", "addReaction": "Pridėti reakciją", - "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcija, {{displayCount}} {{countLabel}}", "reaction_one": "reakcija", "reaction": "reakcijos", "reaction_other": "reakcijos", @@ -353,10 +357,14 @@ "noDiscussionDescription": "Šiame pull request nėra peržiūros gijų ar pokalbio komentarų.", "reviewFiles": "Peržiūrėti failus", "quotedDiffSnippet": "Cituotas diff fragmentas", - "moreLinesAbove": "… {{count}} daugiau eilučių aukščiau", + "moreLinesAbove": "… {{displayCount}} daugiau eilučių aukščiau", "termsAcceptRequired": "Norėdami skelbti, turite priimti paslaugų teikimo sąlygas.", "termsOutdatedCopy": "Paslaugų teikimo sąlygos pasikeitė. Atidarykite šį ekraną iš naujo, kad priimtumėte naujausią versiją.", - "termsCheckRetryCopy": "Nepavyko patikrinti paslaugų teikimo sąlygų. Patikrinkite ryšį ir bandykite dar kartą." + "termsCheckRetryCopy": "Nepavyko patikrinti paslaugų teikimo sąlygų. Patikrinkite ryšį ir bandykite dar kartą.", + "comment_few": "{{displayCount}} komentarai", + "comment_many": "{{displayCount}} komentarų", + "reaction_few": "reakcijos", + "reaction_many": "reakcijų" }, "couldNotOpenGitHubAppSettings": "Nepavyko atidaryti GitHub programėlės nustatymų", "installKiloGitHubApp": "Įdiegti Kilo GitHub programėlę", @@ -395,11 +403,11 @@ "retryChecks": "Bandyti patikrinimus dar kartą", "viewOnGitHub": "Peržiūrėti PR GitHub", "noChecksReported": "Patikrinimų nepranešta", - "passed": "{{count}} atlikta", - "failed": "{{count}} nepavyko", - "pending": "{{count}} laukia", - "skipped": "{{count}} praleista", - "checksCount": "{{count}} patikrinimai", + "passed": "{{displayCount}} atlikta", + "failed": "{{displayCount}} nepavyko", + "pending": "{{displayCount}} laukia", + "skipped": "{{displayCount}} praleista", + "checksCount": "{{displayCount}} patikrinimai", "checkDetails": "patikrinimo informacija", "pullRequest": "pull request" }, @@ -459,9 +467,11 @@ "pendingComment_one": "laukiantis komentaras", "pendingComment": "laukiantys komentarai", "pendingComment_other": "laukiantys komentarai", - "submitCountOfTotal": "Pateikti {{freshCount}} iš {{totalCount}} komentarų", + "submitCountOfTotal": "Pateikti {{displayFreshCount}} iš {{displayTotalCount}} komentarų", "submitReview": "Pateikti peržiūrą", - "partialPostedMessage": "Paskelbta {{freshCount}} komentaras(-ai). {{staleCount}} komentaras(-ai) nukreipia į senesnį įsipareigojimą ir liko jūsų eilėje." + "partialPostedMessage": "Paskelbta {{displayFreshCount}} komentaras(-ai). {{displayStaleCount}} komentaras(-ai) nukreipia į senesnį įsipareigojimą ir liko jūsų eilėje.", + "pendingComment_few": "laukiantys komentarai", + "pendingComment_many": "laukiančių komentarų" }, "reconnectNotice": { "title": "GitHub ryšys baigė galioti", @@ -488,7 +498,11 @@ "commit_other": "įsipareigojimai", "file_one": "failas", "file": "failai", - "file_other": "failai" + "file_other": "failai", + "commit_few": "įsipareigojimai", + "commit_many": "įsipareigojimų", + "file_few": "failai", + "file_many": "failų" }, "pendingComment": { "editOutdatedA11y": "Redaguoti pasenusį laukiantį komentarą {{location}}", @@ -580,7 +594,8 @@ "agents": "Agentai", "profile": "Profilis", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, skirtukas, {{position}} iš {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +636,7 @@ "recent": "Neseniai", "common": "Įprastos", "reactWith": "Reaguoti su {{reaction}}", - "accessibility": "{{emoji}} reakcija, {{count}}" + "accessibility": "{{emoji}} reakcija, {{displayCount}}" }, "composer": { "replyingTo": "Atsakoma į", @@ -650,7 +665,7 @@ "imageUnavailable": "Vaizdas nepasiekiamas", "openFailed": "Nepavyko atidaryti priedo. Patikrinkite ryšį ir bandykite dar kartą.", "attachFailed": "Nepavyko pridėti failo", - "limit": "Galite pridėti iki {{count}} failų.", + "limit": "Galite pridėti iki {{displayCount}} failų.", "sizeRejection": "{{filename}} viršija {{limit}} priedo limitą.", "unreadable": "Nepavyko perskaityti {{filename}}.", "pastedImage": "įklijuotas vaizdas", @@ -700,7 +715,9 @@ "someone": "Kažkas", "typing_one": "{{name}} rašo...", "typing": "{{names}} rašo...", - "typing_other": "{{names}} rašo..." + "typing_other": "{{names}} rašo...", + "typing_few": "{{names}} rašo...", + "typing_many": "{{names}} rašo..." }, "botStatus": { "online": "Prisijungęs", @@ -722,6 +739,7 @@ "finalTermEnds": "Galutinio termino pabaiga", "afterFinalTerm": "Po galutinio termino", "remaining": "Liko", + "lessThanOneDay": "Mažiau nei 1 diena", "ends": "Baigiasi", "expires": "Nustoja galioti", "noActivePlan": "Nėra aktyvaus plano", @@ -740,11 +758,11 @@ "yourStandardMonthlyPrice": "jūsų Standard mėnesio kaina", "perMonth": "/mėn", "earlybirdAccessUntil": "Earlybird prieiga iki {{date}}", - "earlybirdEnding": "Earlybird baigiasi: liko {{days}} dien.", + "earlybirdEnding": "Earlybird baigiasi: {{remaining}}", "paymentPastDue": "Mokėjimas pavėluotas. Atnaujinkite mokėjimo būdą.", "subscriptionCancels": "Prenumerata atšaukiama {{date}}", - "trialDaysRemaining": "Bandomasis laikotarpis: liko {{days}} dien.", - "trialEndingSoon": "Bandomasis laikotarpis greitai baigiasi: {{days}}" + "trialDaysRemaining": "Bandomasis laikotarpis: liko {{remaining}}", + "trialEndingSoon": "Bandomasis laikotarpis greitai baigiasi: {{remaining}}" }, "changelog": { "title": "Kas naujo", @@ -996,7 +1014,7 @@ "stalledTitle": "Kažkas įstrigo", "stalledBody": "Nepavyko baigti kurti {{name}}. Bandykite dar kartą arba parašykite hi@kilo.ai, jei tai kartojasi.", "timeoutTitle": "Užtrunka ilgiau nei tikėtasi", - "timeoutBody": "{{name}} sąranka užtrunka ilgiau nei įprastai (virš {{minutes}} min.).", + "timeoutBody": "{{name}} sąranka užtrunka ilgiau nei įprastai (virš {{displayMinutes}} min.).", "continueInBackground": "Tęsti fone", "settingUp": "Kuriama {{name}}", "finishingSetup": "Baigiama sąranka", @@ -1071,7 +1089,9 @@ "openUnread_other": "Atidaryti {{name}}, {{displayCount}} neskaitytos žinutės", "open": "Atidaryti {{name}}", "openSettings": "Atidaryti {{name}} nustatymus", - "fixOnKiloAi": "Ištaisyti kilo.ai: {{label}}" + "fixOnKiloAi": "Ištaisyti kilo.ai: {{label}}", + "openUnread_few": "Atidaryti {{name}}, {{displayCount}} neskaitytos žinutės", + "openUnread_many": "Atidaryti {{name}}, {{displayCount}} neskaitytų žinučių" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1307,7 @@ "mergeGate": "Sujungimo vartai", "repositories": "Saugyklos", "allRepositories": "Visos saugyklos", - "nSelected": "Pasirinkta {{count}}", + "nSelected": "Pasirinkta {{displayCount}}", "reviewMemory": "Peržiūros atmintis", "proposedReviewMdGuidance": "Siūlomos REVIEW.md gairės" }, @@ -1367,7 +1387,9 @@ "severityAll": "Visi sunkumai", "confidenceHighOnly": "Tik didelis pasitikėjimas", "confidenceMediumOrHigher": "Vidutinis arba didesnis", - "confidenceAny": "Bet koks pasitikėjimas" + "confidenceAny": "Bet koks pasitikėjimas", + "queued_few": "{{displayCount}} rasti radiniai įrašyti analizei.", + "queued_many": "{{displayCount}} rastų radinių įrašyta analizei." }, "analysis": { "couldNotLoad": "Nepavyko įkelti analizės", @@ -1391,14 +1413,14 @@ "analyzed": "Išanalizuota", "exploitabilityReasoning": "Išnaudojamumo pagrindimas", "suggestedFix": "Siūlomas taisymas", - "whereFound": "Kur tai rasta ({{count}})", + "whereFound": "Kur tai rasta ({{displayCount}})", "fullReport": "Pilna sugeneruota ataskaita", "unknown": "Nežinoma", "yes": "Taip", "no": "Ne" }, "dashboard": { - "findingsCount": "{{count}} radinių", + "findingsCount": "{{displayCount}} radinių", "notMeasured": "Nepamatuota", "actFirst": "Veikti pirmiausia", "slaPosture": "SLA padėtis", @@ -1407,7 +1429,7 @@ "repositoryActionPlan": "Saugyklos veiksmų planas", "noOpenFindings": "Nėra atvirų radinių, kuriems reikia dėmesio", "deadlineToday": "Terminas pasiektas šiandien", - "daysOverdue": "{{count}} dienų vėluojama", + "daysOverdue": "{{displayCount}} dienų vėluojama", "withinDeadline": "Termino ribose", "criticalOverdue": "Kritiškai vėluojama", "highOverdue": "Labai vėluojama", @@ -1435,6 +1457,27 @@ "syncQueued": "Sinchronizavimas įrašytas", "syncStatusUnavailable": "Sinchronizavimo būsena nepasiekiama" }, + "dashboardMetrics": { + "openFindings": "Atviri radiniai", + "openFindingsDetail": "{{critical}} kritinė, {{high}} aukšta", + "confirmedExploitable": "Patvirtintas išnaudojimas", + "confirmedExploitableDetail": "Projekto rizika patvirtinta analize", + "needsReview": "Reikia jūsų peržiūros", + "needsReviewDetail": "Reikalingas žmogaus sprendimas", + "analysisIncomplete": "Analizė neužbaigta", + "analysisIncompleteDetail": "Projekto rizika dar nežinoma", + "slaCompliance": "SLA laikymasis", + "notMeasured": "Neišmatuota", + "withinDeadlineDetail": "{{within}} iš {{total}} termino ribose", + "noDeadlineData": "Radiniai dar neturi SLA termino", + "deadlinePassed": "Terminas praėjo", + "deadlinePassedDetail": "{{critical}} kritinė, {{high}} aukšta", + "dueThisWeek": "Terminas šią savaitę", + "dueThisWeekDetail": "{{exploitable}} patvirtintų išnaudojamų", + "noDeadline": "Nėra termino", + "reviewSlaAssignment": "SLA priskyrimo peržiūra", + "allOpenFindingsTracked": "Visi atviri radiniai stebimi" + }, "dismiss": { "title": "Atmesti radinį", "submit": "Atmesti radinį", @@ -1500,13 +1543,15 @@ "analysisModeSubtitle": "{{mode}} analizė", "automation": "Automatizavimas", "automationAllOff": "Viskas išjungta", - "automationCount": "Įjungta {{count}} iš 3", + "automationCount": "Įjungta {{displayCount}} iš 3", "notifications": "Pranešimai", - "notificationsCount": "Įjungta {{count}} iš 2", + "notificationsCount": "Įjungta {{displayCount}} iš 2", "slaPolicy": "SLA politika", "disabledNoManage": "Saugos agentas išjungtas. Tik organizacijos savininkai ir atsiskaitymų valdytojai gali jį įjungti.", "disabledNoRepo": "Prieš įjungdami Saugos agentą pasirinkite bent vieną saugyklą.", - "disabledPrompt": "Įjunkite Saugos agentą, kad sinchronizuotumėte Dependabot įspėjimus, pasirinktumėte saugyklas ir sukonfigūruotumėte automatizavimą." + "disabledPrompt": "Įjunkite Saugos agentą, kad sinchronizuotumėte Dependabot įspėjimus, pasirinktumėte saugyklas ir sukonfigūruotumėte automatizavimą.", + "repositoriesCount_few": "Pasirinktos {{displayCount}} saugyklos", + "repositoriesCount_many": "Pasirinkta {{displayCount}} saugyklų" }, "remediation": { "cancellationRequested": "Prašoma atšaukti", @@ -1524,7 +1569,7 @@ "openPullRequest": "Atidaryti pull request{{number}}", "openDraftPullRequest": "Atidaryti pull request juodraštį{{number}}", "progress": "Eiga", - "attemptHistory": "Bandymų istorija ({{count}})", + "attemptHistory": "Bandymų istorija ({{displayCount}})", "attemptNumber": "Bandymas #{{number}}", "startedBy": "Pradėjo", "model": "Modelis", @@ -1734,7 +1779,11 @@ "cent_other": "centai", "dollar_one": "doleris", "dollar": "doleriai", - "dollar_other": "doleriai" + "dollar_other": "doleriai", + "cent_few": "centai", + "cent_many": "centų", + "dollar_few": "doleriai", + "dollar_many": "dolerių" }, "githubInstall": { "couldNotOpenTitle": "Nepavyko atidaryti GitHub", @@ -1830,7 +1879,9 @@ "partRenderer": { "updatedFileCount_one": "Atnaujinta {{displayCount}} rinkmena", "updatedFileCount": "Atnaujintos {{displayCount}} rinkmenos", - "updatedFileCount_other": "Atnaujintos {{displayCount}} rinkmenos" + "updatedFileCount_other": "Atnaujintos {{displayCount}} rinkmenos", + "updatedFileCount_few": "Atnaujintos {{displayCount}} rinkmenos", + "updatedFileCount_many": "Atnaujinta {{displayCount}} rinkmenų" }, "toolPatch": { "operationAdded": "Pridėta", @@ -1855,9 +1906,9 @@ "toolTask": "užduotis", "readTodos": "Skaityti užduočių sąrašą", "updateTodos": "Atnaujinti užduočių sąrašą", - "linesBadge": "{{count}} eilutės", - "filesBadge": "{{count}} rinkmenos", - "matchesBadge": "{{count}} atitikmenys" + "linesBadge": "{{displayCount}} eilutės", + "filesBadge": "{{displayCount}} rinkmenos", + "matchesBadge": "{{displayCount}} atitikmenys" }, "readToolMarkdown": { "linesTruncated": "eilutės {{start}}–{{end}} (sutrumpinta)", @@ -1941,6 +1992,10 @@ "reportAiResponseFailedTerminal": "Apie šį atsakymą negalima pranešti.", "reportAiResponseSubmitted": "Pranešimas pateiktas. Kvitas {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Informacija nepasiekiama", "textDisplay": "Teksto rodymas", @@ -1999,7 +2054,7 @@ "preparationComplete": "Parengimas baigtas", "preparationFailed": "Parengimas nepavyko", "setupCommand": "Sąrankos komanda {{index}}", - "setupCommandOf": "Sąrankos komanda {{index}} iš {{count}}" + "setupCommandOf": "Sąrankos komanda {{index}} iš {{displayCount}}" }, "permissionCard": { "title": "Reikalingas leidimas", @@ -2036,7 +2091,7 @@ "submissionFailed": "Pateikimas nepavyko. Bandykite dar kartą.", "questionAnnouncement": "Agentui reikia jūsų įvesties. Kol atsakote, kompozitorius pristabdytas.", "permissionAnnouncement": "Agentui reikia leidimo tęsti. Kol sprendžiate, kompozitorius pristabdytas.", - "positionHint": "(1 iš {{count}})", + "positionHint": "(1 iš {{displayCount}})", "movedPastPrompt": "Agentas perėjo prie kito raginimo. Ši kortelė užsidarys, kai sesija tęsis.", "waitingForAnswer": "Agentas laukia jūsų atsakymo. Kol šis klausimas atviras, jūsų žinutė agentui pristabdyta.", "waitingForPermission": "Agentas laukia leidimo. Kol šis prašymas atviras, jūsų žinutė agentui pristabdyta." @@ -2076,7 +2131,9 @@ "omitted_other": "{{displayCount}} ankstesni šios sesijos elementai negalėjo būti parodyti.", "couldNotLoad": "Nepavyko įkelti ankstesnių žinučių.", "unavailable": "Ankstesnės žinutės neprieinamos.", - "tooLarge": "Ankstesnės žinutės per didelės, kad būtų įkeltos." + "tooLarge": "Ankstesnės žinutės per didelės, kad būtų įkeltos.", + "omitted_few": "{{displayCount}} ankstesni šios sesijos elementai negalėjo būti parodyti.", + "omitted_many": "{{displayCount}} ankstesnių šios sesijos elementų negalėjo būti parodyta." }, "markdownTable": { "viewTable": "Peržiūrėti lentelę", @@ -2088,7 +2145,11 @@ "rowCount_one": "eilutė", "rowCount": "eilutės", "rowCount_other": "eilutės", - "opensFullScreen": "atidaro visą ekraną" + "opensFullScreen": "atidaro visą ekraną", + "columnCount_few": "stulpeliai", + "columnCount_many": "stulpelių", + "rowCount_few": "eilutės", + "rowCount_many": "eilučių" }, "sessionFilter": { "title": "Filtruoti sesijas", @@ -2157,7 +2218,7 @@ "cameraAccessDisabled": "Kameros prieiga išjungta", "cameraAccessMessage": "Nustatymuose leiskite kameros prieigą, kad galėtumėte nufotografuoti.", "couldNotOpenPhotoPicker": "Nepavyko atidaryti nuotraukų parinkiklio. Iš naujo paleiskite Kilo ir bandykite dar kartą.", - "maxFilesAllowed": "Leidžiama daugiausia {{count}} failų", + "maxFilesAllowed": "Leidžiama daugiausia {{displayCount}} failų", "onlyAddingFiles": "Pridedami tik {{accepted}} iš {{total}} failų (daugiausia {{max}})" }, "composer": { @@ -2222,7 +2283,7 @@ "costPrefix": "kaina {{cost}}", "costSuffix": ", kaina {{cost}}", "tokensWindowUnavailable": "Kontekstas {{used}} žetonų, langas neprieinamas", - "tokensUsage": "Kontekstas {{used}} iš {{window}} žetonų, panaudota {{percentage}}%", + "tokensUsage": "Kontekstas {{used}} iš {{window}} žetonų, panaudota {{percentage}}", "title": "Konteksto naudojimas", "used": "Panaudota", "remaining": "Liko", @@ -2231,7 +2292,7 @@ "usageReflectsLatest": "Naudojimas atspindi naujausią baigtą asistento atsakymą.", "tokenUsage": "Žetonų naudojimas", "cacheRate": "Talpyklos lygis", - "modelsCount": "Modeliai ({{count}})", + "modelsCount": "Modeliai ({{displayCount}})", "tokenTotalsNote": "Žetonų sumos apima tik šią sesiją ir neįtraukia subagento / antrinės sesijos žetonų.", "subagents": "Subagentai", "subagentsDescription": "Likutinė kaina iš antrinių sesijų", @@ -2243,7 +2304,9 @@ "stepsCount_one": "{{steps}} žingsnis", "stepsCount": "{{steps}} žingsniai", "stepsCount_other": "{{steps}} žingsniai", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} žingsniai", + "stepsCount_many": "{{steps}} žingsnių" }, "prBadge": { "open": "atidarytas pull request", @@ -2373,7 +2436,7 @@ "connectedCli": "Prijungtoje CLI", "newSessionOn": "Nauja sesija {{name}}", "noMatchingSessions": "Nėra atitinkančių sesijų.", - "onlyFirstFilesAttached": "Bus pridėti tik pirmieji {{count}} failai.", + "onlyFirstFilesAttached": "Bus pridėti tik pirmieji {{displayCount}} failai.", "staleMessage": "Šis bendrinimas nebėra prieinamas.", "retryableMessage": "Nepavyko įkelti jūsų sesijų.", "emptyMessage": "Dar nėra sesijų — pradėkite naują, kad išsiųstumėte tai.", @@ -2406,7 +2469,7 @@ "otherAccountCopy": "Kilo Pass šioje Apple paskyroje priklauso kitai Kilo paskyrai. Prisijunkite prie tos Kilo paskyros, kad ją valdytumėte.", "alreadySubscribed": "Jūs jau turite Kilo Pass prenumeratą.", "purchaseUnavailable": "Kilo Pass pirkinys dabar neprieinamas.", - "tierCredits": "${{amount}} kreditų", + "tierCredits": "{{amount}} kreditų", "perMonth": "{{price}}/mėn", "verifyPurchaseFailed": "Nepavyko patvirtinti jūsų pirkinio. Patikrinkite ryšį ir bandykite dar kartą.", "productsCouldNotLoad": "Nepavyko įkelti Kilo Pass produktų iš App Store.", @@ -2417,7 +2480,7 @@ "manageFailed": "Nepavyko atidaryti App Store prenumeratos valdymo.", "kiloPassSetup": "Kilo Pass sąranka", "subscriptionHeaderDescription": "Mėnesinė prenumerata, kuri prideda kreditų prie jūsų Kilo balanso AI kodavimo sesijoms Kilo programoje — Cloud agentai, nuotolinės sesijos ir KiloClaw pokalbiai.", - "tierDescription": "${{price}} apmokėtų kreditų pridedama kas mėnesį Kilo programos naudojimui.", + "tierDescription": "{{price}} apmokėtų kreditų pridedama kas mėnesį Kilo programos naudojimui.", "subscribe": "Prenumeruoti", "subscribeDescription": "Mėnesiniai kreditai su premijos pažanga", "manage": "Valdyti", @@ -2425,7 +2488,7 @@ "statusPending": "Kilo Pass laukia", "statusCanceling": "Kilo Pass atšaukiamas", "statusPastDue": "Kilo Pass vėluoja", - "monthlyCredits": "${{credits}} mėnesinių kreditų", + "monthlyCredits": "{{credits}} mėnesinių kreditų", "ends": "Baigiasi {{date}}", "periodEnd": "laikotarpio pabaiga", "managedOnGooglePlay": "Valdomas Google Play", @@ -2667,7 +2730,9 @@ "processingNeedsReview": "Apdorojimui reikia peržiūros", "retry": "Bandyti dar kartą", "retryHint": "Bando iš naujo įkelti Kilo Pass būseną.", - "setupHint": "Atidaro Kilo Pass sąranką internete." + "setupHint": "Atidaro Kilo Pass sąranką internete.", + "paidSeat_few": "{{displayCount}} apmokėtos vietos", + "paidSeat_many": "{{displayCount}} apmokėtų vietų" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 79abc03dc1..590f0b4f12 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -206,11 +206,11 @@ "loadingLines": "Tiek ielādētas {{loaded}} no {{total}} rindām…", "expandContext": "Izvērst kontekstu", "expandMoreContext": "Izvērst vairāk konteksta", - "expandLines": "Izvērst {{count}} rindas ({{start}}–{{end}})", - "expandMoreLines": "Izvērst vēl {{count}} rindas ({{start}}–{{end}})", - "expandLinesOfContext": "Izvērst {{count}} konteksta rindas", + "expandLines": "Izvērst {{displayCount}} rindas ({{start}}–{{end}})", + "expandMoreLines": "Izvērst vēl {{displayCount}} rindas ({{start}}–{{end}})", + "expandLinesOfContext": "Izvērst {{displayCount}} konteksta rindas", "expandAll": "Izvērst visu", - "expandAllLines": "Izvērst visas {{count}} rindas", + "expandAllLines": "Izvērst visas {{displayCount}} rindas", "loadingMoreFiles": "Tiek ielādēti vairāk failu…", "retryLoadingNextPage": "Mēģināt ielādēt nākamo lapu vēlreiz", "failedToLoadMoreFiles": "Neizdevās ielādēt vairāk failu — pieskarieties, lai mēģinātu vēlreiz", @@ -227,7 +227,9 @@ "fileLoadedOfTotalCount_other": "Ielādēti {{displayCount}} faili no {{total}}", "filesStillLoading": "Faili joprojām tiek ielādēti. Velciet, lai atjauninātu.", "goToOverview": "Doties uz pārskatu", - "goToOverviewTab": "Doties uz pārskata cilni" + "goToOverviewTab": "Doties uz pārskata cilni", + "fileLoadedCount_zero": "Ielādēti {{displayCount}} failu", + "fileLoadedOfTotalCount_zero": "Ielādēti {{displayCount}} failu no {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ nav jaunas rindas faila beigās", @@ -301,7 +303,7 @@ "closeReactions": "Aizvērt reakcijas", "reactionsTitle": "Reakcijas", "addReaction": "Pievienot reakciju", - "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcija, {{displayCount}} {{countLabel}}", "reaction_one": "reakcija", "reaction": "reakcijas", "reaction_other": "reakcijas", @@ -353,10 +355,12 @@ "noDiscussionDescription": "Šajā pull request nav pārskata pavedienu vai sarunas komentāru.", "reviewFiles": "Pārskatīt failus", "quotedDiffSnippet": "Citēts diff fragments", - "moreLinesAbove": "… {{count}} vairāk rindu augšā", + "moreLinesAbove": "… {{displayCount}} vairāk rindu augšā", "termsAcceptRequired": "Lai publicētu, jums jāpieņem pakalpojuma noteikumi.", "termsOutdatedCopy": "Pakalpojuma noteikumi ir mainīti. Atveriet šo ekrānu vēlreiz, lai pieņemtu jaunāko versiju.", - "termsCheckRetryCopy": "Neizdevās pārbaudīt pakalpojuma noteikumus. Pārbaudiet savienojumu un mēģiniet vēlreiz." + "termsCheckRetryCopy": "Neizdevās pārbaudīt pakalpojuma noteikumus. Pārbaudiet savienojumu un mēģiniet vēlreiz.", + "comment_zero": "{{displayCount}} komentāru", + "reaction_zero": "reakciju" }, "couldNotOpenGitHubAppSettings": "Neizdevās atvērt GitHub lietotnes iestatījumus", "installKiloGitHubApp": "Instalēt Kilo GitHub lietotni", @@ -395,11 +399,11 @@ "retryChecks": "Mēģināt pārbaudes vēlreiz", "viewOnGitHub": "Skatīt PR GitHub", "noChecksReported": "Nav ziņotu pārbaužu", - "passed": "{{count}} nokārtotas", - "failed": "{{count}} neizdevās", - "pending": "{{count}} gaida", - "skipped": "{{count}} izlaistas", - "checksCount": "{{count}} pārbaudes", + "passed": "{{displayCount}} nokārtotas", + "failed": "{{displayCount}} neizdevās", + "pending": "{{displayCount}} gaida", + "skipped": "{{displayCount}} izlaistas", + "checksCount": "{{displayCount}} pārbaudes", "checkDetails": "pārbaudes detaļas", "pullRequest": "pull request" }, @@ -459,9 +463,10 @@ "pendingComment_one": "gaidītais komentārs", "pendingComment": "gaidītie komentāri", "pendingComment_other": "gaidītie komentāri", - "submitCountOfTotal": "Iesniegt {{freshCount}} no {{totalCount}} komentāriem", + "submitCountOfTotal": "Iesniegt {{displayFreshCount}} no {{displayTotalCount}} komentāriem", "submitReview": "Iesniegt pārskatu", - "partialPostedMessage": "Publicēti {{freshCount}} komentāri. {{staleCount}} komentāri norāda uz vecāku commit un palika jūsu rindā." + "partialPostedMessage": "Publicēti {{displayFreshCount}} komentāri. {{displayStaleCount}} komentāri norāda uz vecāku commit un palika jūsu rindā.", + "pendingComment_zero": "gaidīto komentāru" }, "reconnectNotice": { "title": "GitHub savienojums beidzies", @@ -488,7 +493,9 @@ "commit_other": "commits", "file_one": "fails", "file": "faili", - "file_other": "faili" + "file_other": "faili", + "commit_zero": "commits", + "file_zero": "failu" }, "pendingComment": { "editOutdatedA11y": "Rediģēt novecojušo gaidīto komentāru uz {{location}}", @@ -580,7 +587,8 @@ "agents": "Aģenti", "profile": "Profils", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, cilne, {{position}} no {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +629,7 @@ "recent": "Nesen", "common": "Biežākās", "reactWith": "Reaģēt ar {{reaction}}", - "accessibility": "{{emoji}} reakcija, {{count}}" + "accessibility": "{{emoji}} reakcija, {{displayCount}}" }, "composer": { "replyingTo": "Atbilde uz", @@ -650,7 +658,7 @@ "imageUnavailable": "Attēls nav pieejams", "openFailed": "Neizdevās atvērt pielikumu. Pārbaudiet savienojumu un mēģiniet vēlreiz.", "attachFailed": "Neizdevās pievienot failu", - "limit": "Varat pievienot līdz {{count}} failiem.", + "limit": "Varat pievienot līdz {{displayCount}} failiem.", "sizeRejection": "{{filename}} pārsniedz {{limit}} pielikuma ierobežojumu.", "unreadable": "Neizdevās nolasīt {{filename}}.", "pastedImage": "ielīmētais attēls", @@ -700,7 +708,8 @@ "someone": "Kāds", "typing_one": "{{name}} raksta…", "typing": "{{names}} raksta…", - "typing_other": "{{names}} raksta…" + "typing_other": "{{names}} raksta…", + "typing_zero": "Neviens neraksta…" }, "botStatus": { "online": "Tiešsaistē", @@ -722,6 +731,7 @@ "finalTermEnds": "Pēdējais termiņš beidzas", "afterFinalTerm": "Pēc pēdējā termiņa", "remaining": "Atlikušais", + "lessThanOneDay": "Mazāk par 1 dienu", "ends": "Beidzas", "expires": "Derīguma termiņš beidzas", "noActivePlan": "Nav aktīva plāna", @@ -740,11 +750,11 @@ "yourStandardMonthlyPrice": "jūsu Standard mēneša cena", "perMonth": "/mēnesī", "earlybirdAccessUntil": "Earlybird piekļuve līdz {{date}}", - "earlybirdEnding": "Earlybird beidzas: atlikušas {{days}} dienas", + "earlybirdEnding": "Earlybird beidzas: {{remaining}}", "paymentPastDue": "Maksājums ir nokavēts. Lūdzu, atjauniniet savu maksājuma metodi.", "subscriptionCancels": "Abonements tiek atcelts {{date}}", - "trialDaysRemaining": "Izmēģinājums: atlikušas {{days}} dienas", - "trialEndingSoon": "Izmēģinājums beidzas drīz: {{days}}" + "trialDaysRemaining": "Izmēģinājums: {{remaining}}", + "trialEndingSoon": "Izmēģinājums beidzas drīz: {{remaining}}" }, "changelog": { "title": "Kas jauns", @@ -996,7 +1006,7 @@ "stalledTitle": "Kaut kas iestrēga", "stalledBody": "Mēs nevarējām pabeigt {{name}} iestatīšanu. Mēģiniet vēlreiz vai rakstiet uz hi@kilo.ai, ja tas turpina notikt.", "timeoutTitle": "Ilgst ilgāk nekā gaidīts", - "timeoutBody": "{{name}} iestatīšana ilgst ilgāk nekā parasti (vairāk nekā {{minutes}} minūtes).", + "timeoutBody": "{{name}} iestatīšana ilgst ilgāk nekā parasti (vairāk nekā {{displayMinutes}} minūtes).", "continueInBackground": "Turpināt fonā", "settingUp": "Iestata {{name}}", "finishingSetup": "Pabeidz iestatīšanu", @@ -1071,7 +1081,8 @@ "openUnread_other": "Atvērt {{name}}, {{displayCount}} nelasīti ziņojumi", "open": "Atvērt {{name}}", "openSettings": "Atvērt iestatījumus {{name}}", - "fixOnKiloAi": "Novērst vietnē kilo.ai: {{label}}" + "fixOnKiloAi": "Novērst vietnē kilo.ai: {{label}}", + "openUnread_zero": "Atvērt {{name}}, {{displayCount}} nelasītu ziņojumu" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1298,7 @@ "mergeGate": "Apvienošanas vārti", "repositories": "Repozitoriji", "allRepositories": "Visi repozitoriji", - "nSelected": "Atlasīts: {{count}}", + "nSelected": "Atlasīts: {{displayCount}}", "reviewMemory": "Pārskata atmiņa", "proposedReviewMdGuidance": "Ieteiktie REVIEW.md norādījumi" }, @@ -1367,7 +1378,8 @@ "severityAll": "Visas smaguma pakāpes", "confidenceHighOnly": "Tikai augsta pārliecība", "confidenceMediumOrHigher": "Vidēja vai augstāka", - "confidenceAny": "Jebkāda pārliecība" + "confidenceAny": "Jebkāda pārliecība", + "queued_zero": "{{displayCount}} esošu atradumu ievietots analīzes rindā." }, "analysis": { "couldNotLoad": "Neizdevās ielādēt analīzi", @@ -1391,14 +1403,14 @@ "analyzed": "Analizēts", "exploitabilityReasoning": "Izmantojamības pamatojums", "suggestedFix": "Ieteiktais labojums", - "whereFound": "Kur tas tika atrasts ({{count}})", + "whereFound": "Kur tas tika atrasts ({{displayCount}})", "fullReport": "Pilns ģenerētais ziņojums", "unknown": "Nezināms", "yes": "Jā", "no": "Nē" }, "dashboard": { - "findingsCount": "{{count}} atradumi", + "findingsCount": "{{displayCount}} atradumi", "notMeasured": "Nav izmērīts", "actFirst": "Vispirms rīkojies", "slaPosture": "SLA pozīcija", @@ -1407,7 +1419,7 @@ "repositoryActionPlan": "Repozitorija rīcības plāns", "noOpenFindings": "Neviens atvērts atradums neprasa uzmanību", "deadlineToday": "Termiņš sasniegts šodien", - "daysOverdue": "{{count}} dienas nokavētas", + "daysOverdue": "{{displayCount}} dienas nokavētas", "withinDeadline": "Termiņa ietvaros", "criticalOverdue": "Kritisks nokavēts", "highOverdue": "Augsts nokavēts", @@ -1435,6 +1447,27 @@ "syncQueued": "Sinhronizācija ielikta rindā", "syncStatusUnavailable": "Sinhronizācijas statuss nav pieejams" }, + "dashboardMetrics": { + "openFindings": "Atvērtie konstatējumi", + "openFindingsDetail": "{{critical}} kritiski, {{high}} augsti", + "confirmedExploitable": "Apstiprināti izmantojami", + "confirmedExploitableDetail": "Projekta risks apstiprināts analīzē", + "needsReview": "Nepieciešams jūsu pārskats", + "needsReviewDetail": "Nepieciešams cilvēka lēmums", + "analysisIncomplete": "Analīze nav pabeigta", + "analysisIncompleteDetail": "Projekta risks joprojām nav zināms", + "slaCompliance": "SLA ievērošana", + "notMeasured": "Nav mērīts", + "withinDeadlineDetail": "{{within}} no {{total}} termiņā", + "noDeadlineData": "Konstatējumiem vēl nav SLA termiņa", + "deadlinePassed": "Termiņš beidzies", + "deadlinePassedDetail": "{{critical}} kritiski, {{high}} augsti", + "dueThisWeek": "Termiņš šonedēļ", + "dueThisWeekDetail": "{{exploitable}} apstiprināti izmantojami", + "noDeadline": "Nav termiņa", + "reviewSlaAssignment": "Pārskatīt SLA piešķiršanu", + "allOpenFindingsTracked": "Visi atvērtie konstatējumi tiek izsekoti" + }, "dismiss": { "title": "Noraidīt atradumu", "submit": "Noraidīt atradumu", @@ -1500,13 +1533,14 @@ "analysisModeSubtitle": "{{mode}} analīze", "automation": "Automatizācija", "automationAllOff": "Visi izslēgti", - "automationCount": "Iespējoti {{count}} no 3", + "automationCount": "Iespējoti {{displayCount}} no 3", "notifications": "Paziņojumi", - "notificationsCount": "Iespējoti {{count}} no 2", + "notificationsCount": "Iespējoti {{displayCount}} no 2", "slaPolicy": "SLA politika", "disabledNoManage": "Security Agent ir atspējots. To var ieslēgt tikai organizācijas īpašnieki un norēķinu pārvaldnieki.", "disabledNoRepo": "Izvēlies vismaz vienu repozitoriju, pirms iespējot Security Agent.", - "disabledPrompt": "Ieslēdz Security Agent, lai sinhronizētu Dependabot trauksmes, izvēlētos repozitorijus un konfigurētu automatizāciju." + "disabledPrompt": "Ieslēdz Security Agent, lai sinhronizētu Dependabot trauksmes, izvēlētos repozitorijus un konfigurētu automatizāciju.", + "repositoriesCount_zero": "Izvēlēti {{displayCount}} repozitoriju" }, "remediation": { "cancellationRequested": "Atcelšana pieprasīta", @@ -1524,7 +1558,7 @@ "openPullRequest": "Atvērt pull request{{number}}", "openDraftPullRequest": "Atvērt melnraksta pull request{{number}}", "progress": "Norise", - "attemptHistory": "Mēģinājumu vēsture ({{count}})", + "attemptHistory": "Mēģinājumu vēsture ({{displayCount}})", "attemptNumber": "Mēģinājums #{{number}}", "startedBy": "Sācis", "model": "Modelis", @@ -1734,7 +1768,9 @@ "cent_other": "centi", "dollar_one": "dolārs", "dollar": "dolāri", - "dollar_other": "dolāri" + "dollar_other": "dolāri", + "cent_zero": "centu", + "dollar_zero": "dolāru" }, "githubInstall": { "couldNotOpenTitle": "Neizdevās atvērt GitHub", @@ -1830,7 +1866,8 @@ "partRenderer": { "updatedFileCount_one": "Atjaunināts {{displayCount}} fails", "updatedFileCount": "Atjaunināti {{displayCount}} faili", - "updatedFileCount_other": "Atjaunināti {{displayCount}} faili" + "updatedFileCount_other": "Atjaunināti {{displayCount}} faili", + "updatedFileCount_zero": "Atjaunināti {{displayCount}} failu" }, "toolPatch": { "operationAdded": "Pievienots", @@ -1855,9 +1892,9 @@ "toolTask": "uzdevums", "readTodos": "Lasīt uzdevumus", "updateTodos": "Atjaunināt uzdevumus", - "linesBadge": "{{count}} rindiņas", - "filesBadge": "{{count}} faili", - "matchesBadge": "{{count}} atbilstības" + "linesBadge": "{{displayCount}} rindiņas", + "filesBadge": "{{displayCount}} faili", + "matchesBadge": "{{displayCount}} atbilstības" }, "readToolMarkdown": { "linesTruncated": "rindiņas {{start}}–{{end}} (saīsināts)", @@ -1941,6 +1978,10 @@ "reportAiResponseFailedTerminal": "Par šo atbildi nevar ziņot.", "reportAiResponseSubmitted": "Ziņojums iesniegts. Kvīts {{receiptId}}" }, + "modelCost": { + "lessThan": "mazāk par {{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detaļas nav pieejamas", "textDisplay": "Teksta attēlojums", @@ -1999,7 +2040,7 @@ "preparationComplete": "Sagatavošana pabeigta", "preparationFailed": "Sagatavošana neizdevās", "setupCommand": "Iestatīšanas komanda {{index}}", - "setupCommandOf": "Iestatīšanas komanda {{index}} no {{count}}" + "setupCommandOf": "Iestatīšanas komanda {{index}} no {{displayCount}}" }, "permissionCard": { "title": "Nepieciešama atļauja", @@ -2036,7 +2077,7 @@ "submissionFailed": "Iesniegšana neizdevās. Lūdzu, mēģini vēlreiz.", "questionAnnouncement": "Aģentam ir nepieciešama tava ievade. Kamēr tu atbildi, komponists ir apturēts.", "permissionAnnouncement": "Aģentam ir nepieciešama atļauja, lai turpinātu. Kamēr tu izlem, komponists ir apturēts.", - "positionHint": "({{count}} no 1)", + "positionHint": "({{displayCount}} no 1)", "movedPastPrompt": "Aģents ir pārvietojies garām šai uzvednei. Šī kartīte tiks aizvērta, kad sesija turpināsies.", "waitingForAnswer": "Aģents gaida tavu atbildi. Kamēr šis jautājums ir atvērts, tavs ziņojums aģentam ir apturēts.", "waitingForPermission": "Aģents gaida atļauju. Kamēr šis pieprasījums ir atvērts, tavs ziņojums aģentam ir apturēts." @@ -2076,7 +2117,8 @@ "omitted_other": "{{displayCount}} agrākus vienumus no šīs sesijas nevarēja parādīt.", "couldNotLoad": "Neizdevās ielādēt agrākus ziņojumus.", "unavailable": "Agrāki ziņojumi nav pieejami.", - "tooLarge": "Agrāki ziņojumi ir pārāk lieli, lai tos ielādētu." + "tooLarge": "Agrāki ziņojumi ir pārāk lieli, lai tos ielādētu.", + "omitted_zero": "{{displayCount}} agrāku vienumu no šīs sesijas nevarēja parādīt." }, "markdownTable": { "viewTable": "Skatīt tabulu", @@ -2088,7 +2130,9 @@ "rowCount_one": "rinda", "rowCount": "rindas", "rowCount_other": "rindas", - "opensFullScreen": "atver pilnekrāna režīmā" + "opensFullScreen": "atver pilnekrāna režīmā", + "columnCount_zero": "kolonnu", + "rowCount_zero": "rindu" }, "sessionFilter": { "title": "Filtrēt sesijas", @@ -2157,7 +2201,7 @@ "cameraAccessDisabled": "Kameras piekļuve atspējota", "cameraAccessMessage": "Atļauj kameras piekļuvi Iestatījumos, lai uzņemtu fotoattēlu.", "couldNotOpenPhotoPicker": "Neizdevās atvērt foto izvēlētāju. Restartē Kilo un mēģini vēlreiz.", - "maxFilesAllowed": "Atļauti ne vairāk kā {{count}} faili", + "maxFilesAllowed": "Atļauti ne vairāk kā {{displayCount}} faili", "onlyAddingFiles": "Tiek pievienoti tikai {{accepted}} no {{total}} failiem (maksimums {{max}})" }, "composer": { @@ -2222,7 +2266,7 @@ "costPrefix": "izmaksas {{cost}}", "costSuffix": ", izmaksas {{cost}}", "tokensWindowUnavailable": "Konteksts {{used}} tokeni, logs nav pieejams", - "tokensUsage": "Konteksts {{used}} no {{window}} tokeniem, izmantoti {{percentage}}%", + "tokensUsage": "Konteksts {{used}} no {{window}} tokeniem, izmantoti {{percentage}}", "title": "Konteksta izmantojums", "used": "Izmantots", "remaining": "Atlikuši", @@ -2231,7 +2275,7 @@ "usageReflectsLatest": "Izmantojums atspoguļo pēdējo pabeigto asistenta atbildi.", "tokenUsage": "Tokenu izmantojums", "cacheRate": "Keša līmenis", - "modelsCount": "Modeļi ({{count}})", + "modelsCount": "Modeļi ({{displayCount}})", "tokenTotalsNote": "Tokenu kopsummas attiecas tikai uz šo sesiju un neietver apakšaģenta/bērna sesijas tokenus.", "subagents": "Apakšaģenti", "subagentsDescription": "Atlikušās izmaksas no bērna sesijām", @@ -2243,7 +2287,8 @@ "stepsCount_one": "{{steps}} solis", "stepsCount": "{{steps}} soļi", "stepsCount_other": "{{steps}} soļi", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_zero": "{{steps}} soļu" }, "prBadge": { "open": "atvērts pull request", @@ -2373,7 +2418,7 @@ "connectedCli": "Uz savienota CLI", "newSessionOn": "Jauna sesija uz {{name}}", "noMatchingSessions": "Nav atbilstošu sesiju.", - "onlyFirstFilesAttached": "Tiks pievienoti tikai pirmie {{count}} faili.", + "onlyFirstFilesAttached": "Tiks pievienoti tikai pirmie {{displayCount}} faili.", "staleMessage": "Šis kopīgojums vairs nav pieejams.", "retryableMessage": "Neizdevās ielādēt tavas sesijas.", "emptyMessage": "Vēl nav sesiju — sāc jaunu, lai nosūtītu šo.", @@ -2406,7 +2451,7 @@ "otherAccountCopy": "Kilo Pass šajā Apple kontā pieder citam Kilo kontam. Piesakieties tajā Kilo kontā, lai to pārvaldītu.", "alreadySubscribed": "Tev jau ir Kilo Pass abonements.", "purchaseUnavailable": "Kilo Pass pirkums pašlaik nav pieejams.", - "tierCredits": "${{amount}} kredītos", + "tierCredits": "{{amount}} kredītos", "perMonth": "{{price}}/mēn", "verifyPurchaseFailed": "Neizdevās pārbaudīt tavu pirkumu. Pārbaudi savienojumu un mēģini vēlreiz.", "productsCouldNotLoad": "Kilo Pass produktus nevarēja ielādēt no App Store.", @@ -2417,7 +2462,7 @@ "manageFailed": "Neizdevās atvērt App Store abonementu pārvaldību.", "kiloPassSetup": "Kilo Pass iestatīšana", "subscriptionHeaderDescription": "Mēneša abonements, kas pievieno kredītus tavam Kilo bilancei AI kodēšanas sesiju vadīšanai Kilo App — Cloud Agents, attālās sesijas un KiloClaw tērzēšanas.", - "tierDescription": "${{price}} apmaksāti kredīti tiek pievienoti katru mēnesi Kilo App lietošanai.", + "tierDescription": "{{price}} apmaksāti kredīti tiek pievienoti katru mēnesi Kilo App lietošanai.", "subscribe": "Abonēt", "subscribeDescription": "Mēneša kredīti ar bonusa progresu", "manage": "Pārvaldīt", @@ -2425,7 +2470,7 @@ "statusPending": "Kilo Pass gaida apstiprinājumu", "statusCanceling": "Kilo Pass atcelšanas procesā", "statusPastDue": "Kilo Pass kavēts", - "monthlyCredits": "${{credits}} mēneša kredīti", + "monthlyCredits": "{{credits}} mēneša kredīti", "ends": "Beidzas {{date}}", "periodEnd": "perioda beigas", "managedOnGooglePlay": "Pārvaldīts Google Play", @@ -2667,7 +2712,8 @@ "processingNeedsReview": "Apstrādei nepieciešama pārskatīšana", "retry": "Mēģināt vēlreiz", "retryHint": "Atkārtoti mēģina ielādēt Kilo Pass statusu.", - "setupHint": "Atver Kilo Pass iestatīšanu tīmeklī." + "setupHint": "Atver Kilo Pass iestatīšanu tīmeklī.", + "paidSeat_zero": "{{displayCount}} apmaksātu vietu" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index 26833d08f1..cba7cf230a 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -206,11 +206,11 @@ "loadingLines": "Mamaky {{loaded}} amin'ny {{total}} andalana…", "expandContext": "Hamelatra ny contexte", "expandMoreContext": "Hamelatra bebe kokoa ny contexte", - "expandLines": "Hamelatra {{count}} andalana ({{start}}–{{end}})", - "expandMoreLines": "Hamelatra bebe kokoa {{count}} andalana ({{start}}–{{end}})", - "expandLinesOfContext": "Hamelatra {{count}} andalana contexte", + "expandLines": "Hamelatra {{displayCount}} andalana ({{start}}–{{end}})", + "expandMoreLines": "Hamelatra bebe kokoa {{displayCount}} andalana ({{start}}–{{end}})", + "expandLinesOfContext": "Hamelatra {{displayCount}} andalana contexte", "expandAll": "Hamelatra daholo", - "expandAllLines": "Hamelatra ny {{count}} andalana rehetra", + "expandAllLines": "Hamelatra ny {{displayCount}} andalana rehetra", "loadingMoreFiles": "Mamaky rakitra fanampiny…", "retryLoadingNextPage": "Andramana indray ny famakiana pejy manaraka", "failedToLoadMoreFiles": "Tsy nahavita namaky rakitra fanampiny — tsindrio mba andramana indray", @@ -301,7 +301,7 @@ "closeReactions": "Hiditra ny réactions", "reactionsTitle": "Réactions", "addReaction": "Hanampy réaction", - "reactionPill": "{{emoji}} réaction, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} réaction, {{displayCount}} {{countLabel}}", "reaction_one": "réaction", "reaction": "réactions", "reaction_other": "réactions", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Tsy misy loha-dresaka fandinihana na hevitra resaka amin'ity pull request ity.", "reviewFiles": "Fandinihana rakitra", "quotedDiffSnippet": "Sombiny diff voatenona", - "moreLinesAbove": "… {{count}} andalana fanampiny etsy ambony", + "moreLinesAbove": "… {{displayCount}} andalana fanampiny etsy ambony", "termsAcceptRequired": "Tsy maintsy manaiky ny Fepetran'ny fampiasana ianao vao afaka manaparitaka.", "termsOutdatedCopy": "Niova ny Fepetran'ny fampiasana. Sokafy indray ity efijery ity mba hanaiky ny kinova farany.", "termsCheckRetryCopy": "Tsy afaka nanamarina ny Fepetran'ny fampiasana. Jereo ny fifandraisanao ary andramana indray." @@ -395,11 +395,11 @@ "retryChecks": "Andramana indray ny fanamarinana", "viewOnGitHub": "Hijery ny PR ao amin'ny GitHub", "noChecksReported": "Tsy misy fanamarinana notaterina", - "passed": "{{count}} nandalo", - "failed": "{{count}} tsy nahomby", - "pending": "{{count}} miandry", - "skipped": "{{count}} nitsipaka", - "checksCount": "{{count}} fanamarinana", + "passed": "{{displayCount}} nandalo", + "failed": "{{displayCount}} tsy nahomby", + "pending": "{{displayCount}} miandry", + "skipped": "{{displayCount}} nitsipaka", + "checksCount": "{{displayCount}} fanamarinana", "checkDetails": "antsipirian'ny fanamarinana", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "hevitra miandry", "pendingComment": "hevitra miandry", "pendingComment_other": "hevitra miandry", - "submitCountOfTotal": "Hanefa {{freshCount}} amin'ny {{totalCount}} hevitra", + "submitCountOfTotal": "Hanefa {{displayFreshCount}} amin'ny {{displayTotalCount}} hevitra", "submitReview": "Hanefa ny fandinihana", - "partialPostedMessage": "Navoaka {{freshCount}} hevitra. {{staleCount}} hevitra manondro commit taloha ary nijanona tao amin'ny filaharan'ireo fika rehetrao." + "partialPostedMessage": "Navoaka {{displayFreshCount}} hevitra. {{displayStaleCount}} hevitra manondro commit taloha ary nijanona tao amin'ny filaharan'ireo fika rehetrao." }, "reconnectNotice": { "title": "Lany daty ny fifandraisana GitHub", @@ -580,7 +580,8 @@ "agents": "Agents", "profile": "Momba ahy", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tabilao, {{position}} amin'ny {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Vao haingana", "common": "Mahazatra", "reactWith": "Hanao réaction amin'ny {{reaction}}", - "accessibility": "{{emoji}} réaction, {{count}}" + "accessibility": "{{emoji}} réaction, {{displayCount}}" }, "composer": { "replyingTo": "Mamaly an'i", @@ -650,7 +651,7 @@ "imageUnavailable": "Tsy misy ny sary", "openFailed": "Tsy afaka nanokatra ny rakitra. Jereo ny fifandraisanao ary andramana indray.", "attachFailed": "Tsy nahavita nampiana rakitra", - "limit": "Afaka mampiditra {{count}} rakitra ianao.", + "limit": "Afaka mampiditra {{displayCount}} rakitra ianao.", "sizeRejection": "Mihoatra ny fetran'ny {{limit}} rakitra ny {{filename}}.", "unreadable": "Tsy afaka namaky {{filename}}.", "pastedImage": "ny sary natsofoka", @@ -722,6 +723,7 @@ "finalTermEnds": "Miafara ny fotoana farany", "afterFinalTerm": "Aorian'ny fotoana farany", "remaining": "Sisa", + "lessThanOneDay": "Latsaky ny 1 andro", "ends": "Miafara", "expires": "Lany daty", "noActivePlan": "Tsy misy drafitra mavitrika", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ny vidin'ny Standard isam-bolana anao", "perMonth": "/volana", "earlybirdAccessUntil": "Fidirana Earlybird mandra-pahatongan'ny {{date}}", - "earlybirdEnding": "Hifarana ny Earlybird: {{days}} andro sisa", + "earlybirdEnding": "Hifarana ny Earlybird: {{remaining}}", "paymentPastDue": "Tara ny fandoavana. Havaozy ny fomba fandoavanao.", "subscriptionCancels": "Hafaomby ny famandrihana amin'ny {{date}}", - "trialDaysRemaining": "Andrana: {{days}} andro sisa", - "trialEndingSoon": "Hifarana tsy ho ela ny andrana: {{days}}" + "trialDaysRemaining": "Andrana: {{remaining}}", + "trialEndingSoon": "Hifarana tsy ho ela ny andrana: {{remaining}}" }, "changelog": { "title": "Inona ny vaovao", @@ -996,7 +998,7 @@ "stalledTitle": "Nisy zavatra nijanona", "stalledBody": "Tsy vitanay ny namarana ny fanamboarana an'i {{name}}. Andramo indray, na alefaso mailaka any hi@kilo.ai raha mbola mitohy izany.", "timeoutTitle": "Maharitra ela noho ny nandrasana", - "timeoutBody": "Maharitra ela kokoa noho ny mahazatra ny fanamboarana an'i {{name}} (mihoatra ny {{minutes}} minitra).", + "timeoutBody": "Maharitra ela kokoa noho ny mahazatra ny fanamboarana an'i {{name}} (mihoatra ny {{displayMinutes}} minitra).", "continueInBackground": "Hoharito any ambadika", "settingUp": "Mampandry {{name}}", "finishingSetup": "Mamarana ny fanamboarana", @@ -1287,7 +1289,7 @@ "mergeGate": "Vavahady merge", "repositories": "Repositories", "allRepositories": "Repositories rehetra", - "nSelected": "{{count}} voafidy", + "nSelected": "{{displayCount}} voafidy", "reviewMemory": "Fahatsiarovana fanamarinana", "proposedReviewMdGuidance": "Torolalana REVIEW.md natolotra" }, @@ -1391,14 +1393,14 @@ "analyzed": "Voafakafaka", "exploitabilityReasoning": "Anton'ny fahazoana hararaotina", "suggestedFix": "Fanitsiana soso-kevitra", - "whereFound": "Aiza no nahitana an'ity ({{count}})", + "whereFound": "Aiza no nahitana an'ity ({{displayCount}})", "fullReport": "Tatitra feno novokarina", "unknown": "Tsy fantatra", "yes": "Eny", "no": "Tsia" }, "dashboard": { - "findingsCount": "Fikarohana {{count}}", + "findingsCount": "Fikarohana {{displayCount}}", "notMeasured": "Tsy norefesina", "actFirst": "Manao zavatra aloha", "slaPosture": "Toeran'ny SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Drafi-pihetsika ho an'ny repository", "noOpenFindings": "Tsy misy fikarohana misokatra mila fiheverana", "deadlineToday": "Nahatratra ny fe-potoana androany", - "daysOverdue": "{{count}} andro tara", + "daysOverdue": "{{displayCount}} andro tara", "withinDeadline": "Ao anatin'ny fe-potoana", "criticalOverdue": "Zava-dehibe tara", "highOverdue": "Avo tara", @@ -1435,6 +1437,27 @@ "syncQueued": "Voalahatra ny sincro", "syncStatusUnavailable": "Tsy misy ny sata sincro" }, + "dashboardMetrics": { + "openFindings": "Hita misokatra", + "openFindingsDetail": "{{critical}} kritika, {{high}} avo", + "confirmedExploitable": "Voamarina fa azo ampiharina", + "confirmedExploitableDetail": "Ny risika tetikasa dia voamarina tamin'ny famakafakana", + "needsReview": "Mila ny fijerenao", + "needsReviewDetail": "Ilaina ny fanapahan-kevitry ny olona", + "analysisIncomplete": "Tsy vita ny famakafakana", + "analysisIncompleteDetail": "Mbola tsy fantatra ny risika tetikasa", + "slaCompliance": "Fanarahan-dalàna SLA", + "notMeasured": "Tsy refesina", + "withinDeadlineDetail": "{{within}} amin'ny {{total}} ao anatin'ny fetra", + "noDeadlineData": "Mbola tsy misy fetra SLA ny hita", + "deadlinePassed": "Efa lasa ny fetra", + "deadlinePassedDetail": "{{critical}} kritika, {{high}} avo", + "dueThisWeek": "Lany daty ity herinandro ity", + "dueThisWeekDetail": "{{exploitable}} voamarina fa azo ampiharina", + "noDeadline": "Tsy misy fetra", + "reviewSlaAssignment": "Hamarino ny fanendrena SLA", + "allOpenFindingsTracked": "Voaaraka daholo ny hita misokatra" + }, "dismiss": { "title": "Esory ny fikarohana", "submit": "Esory ny fikarohana", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Famakafakana {{mode}}", "automation": "Automatisation", "automationAllOff": "Maty daholo", - "automationCount": "{{count}} amin'ny 3 nahafahana", + "automationCount": "{{displayCount}} amin'ny 3 nahafahana", "notifications": "Fampandrenesana", - "notificationsCount": "{{count}} amin'ny 2 nahafahana", + "notificationsCount": "{{displayCount}} amin'ny 2 nahafahana", "slaPolicy": "Politikan'ny SLA", "disabledNoManage": "Maty ny Security Agent. Ny tompon'ny fikambanana sy ny mpitantana billing ihany no afaka mamelona azy.", "disabledNoRepo": "Safidio repository farafahakeliny iray alohan'ny hamelomana ny Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Sokafy ny pull request{{number}}", "openDraftPullRequest": "Sokafy ny draft pull request{{number}}", "progress": "Fandrosoana", - "attemptHistory": "Tantaran'ny fanandramana ({{count}})", + "attemptHistory": "Tantaran'ny fanandramana ({{displayCount}})", "attemptNumber": "Fanandramana #{{number}}", "startedBy": "Nataon'i", "model": "Modely", @@ -1855,9 +1878,9 @@ "toolTask": "asa", "readTodos": "Vakio ny todos", "updateTodos": "Havaozy ny todos", - "linesBadge": "Andalana {{count}}", - "filesBadge": "Rakitra {{count}}", - "matchesBadge": "Mifanaraka {{count}}" + "linesBadge": "Andalana {{displayCount}}", + "filesBadge": "Rakitra {{displayCount}}", + "matchesBadge": "Mifanaraka {{displayCount}}" }, "readToolMarkdown": { "linesTruncated": "andalana {{start}}–{{end}} (tapaka)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Tsy azo itaterana ity valinteny ity.", "reportAiResponseSubmitted": "Natolotra ny tatitra. Rosia {{receiptId}}" }, + "modelCost": { + "lessThan": "latsaky ny {{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Tsy misy ny antsipiriany", "textDisplay": "Fampisehoana soratra", @@ -1999,7 +2026,7 @@ "preparationComplete": "Vita ny fanomanana", "preparationFailed": "Tsy nahomby ny fanomanana", "setupCommand": "Baiko fanamboarana {{index}}", - "setupCommandOf": "Baiko fanamboarana {{index}} amin'ny {{count}}" + "setupCommandOf": "Baiko fanamboarana {{index}} amin'ny {{displayCount}}" }, "permissionCard": { "title": "Ilaina ny alalana", @@ -2036,7 +2063,7 @@ "submissionFailed": "Tsy nahomby ny fandefasana. Andramo indray azafady.", "questionAnnouncement": "Mila fampahalalana avy aminao ny agent. Mijanona ny composer raha valianao.", "permissionAnnouncement": "Mila alalana ny agent hanohy. Mijanona ny composer raha manapa-kevitra ianao.", - "positionHint": "(1 amin'ny {{count}})", + "positionHint": "(1 amin'ny {{displayCount}})", "movedPastPrompt": "Nandroso tsy nahita ity fanontaniana ity ny agent. Hikatona ity karatra ity rehefa hanohy ny session.", "waitingForAnswer": "Miandry ny valinteninao ny agent. Raha mbola misokatra ity fanontaniana ity dia mijanona ny hafatrao ho an'ny agent.", "waitingForPermission": "Miandry alalana ny agent. Raha mbola misokatra ity fangatahana ity dia mijanona ny hafatrao ho an'ny agent." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Voafafa ny fidirana amin'ny fakantsary", "cameraAccessMessage": "Avelao ny fidirana amin'ny fakantsary ao amin'ny Settings raha haka sary.", "couldNotOpenPhotoPicker": "Tsy afaka nanokatra ny fisafidianana sary. Avereno atombohy ny Kilo ary andramo indray.", - "maxFilesAllowed": "Atao {{count}} rakitra ambony indrindra", + "maxFilesAllowed": "Atao {{displayCount}} rakitra ambony indrindra", "onlyAddingFiles": "Manampy {{accepted}} amin'ny {{total}} rakitra ihany (ambony indrindra {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "vidy {{cost}}", "costSuffix": ", vidy {{cost}}", "tokensWindowUnavailable": "Contexte {{used}} tokens, tsy misy window", - "tokensUsage": "Contexte {{used}} amin'ny {{window}} tokens, {{percentage}}% ampiasaina", + "tokensUsage": "Contexte {{used}} amin'ny {{window}} tokens, {{percentage}} ampiasaina", "title": "Fampiasana contexte", "used": "Ampiasaina", "remaining": "Tavela", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Ny fampiasana dia maneho ny valiny farany voadona.", "tokenUsage": "Fampiasana tokens", "cacheRate": "Tahan'ny cache", - "modelsCount": "Modely ({{count}})", + "modelsCount": "Modely ({{displayCount}})", "tokenTotalsNote": "Ny isan'ny tokens dia mandrakotra ity session ity ihany ary tsy misy ny tokens subagent/child-session.", "subagents": "Subagents", "subagentsDescription": "Vidy sisa avy amin'ny session zanaka", @@ -2373,7 +2400,7 @@ "connectedCli": "Amin'ny CLI mifandray", "newSessionOn": "Session vaovao amin'ny {{name}}", "noMatchingSessions": "Tsy misy session mifanentana.", - "onlyFirstFilesAttached": "Ny {{count}} rakitra voalohany ihany no hapetraka.", + "onlyFirstFilesAttached": "Ny {{displayCount}} rakitra voalohany ihany no hapetraka.", "staleMessage": "Tsy misy intsony ity zara ity.", "retryableMessage": "Tsy afaka nampidirina ny session-nao.", "emptyMessage": "Mbola tsy misy session — atombohy vaovao raha handefa ity.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Ny Kilo Pass amin'ity Apple Account ity dia an'ny kaonty Kilo hafa. Midira amin'izany kaonty Kilo izany raha hitantana azy.", "alreadySubscribed": "Efa manana abonnement Kilo Pass ianao.", "purchaseUnavailable": "Tsy misy izao ny fividianana Kilo Pass.", - "tierCredits": "${{amount}} crédits", + "tierCredits": "{{amount}} crédits", "perMonth": "{{price}}/volana", "verifyPurchaseFailed": "Tsy afaka nohamarinina ny fividiananao. Jereo ny fifandraisanao ary andramo indray.", "productsCouldNotLoad": "Tsy afaka nampidirina avy amin'ny App Store ny vokatra Kilo Pass.", @@ -2417,7 +2444,7 @@ "manageFailed": "Tsy nahomby ny fanokafana ny fitantanana abonnement App Store.", "kiloPassSetup": "Fikirana Kilo Pass", "subscriptionHeaderDescription": "Abonnement isam-bolana manampy crédits amin'ny balan Kilo anao ho an'ny session coding AI ao amin'ny Kilo App — Cloud Agents, remote sessions, ary KiloClaw chats.", - "tierDescription": "${{price}} crédits voaloa ampiana isam-bolana ho an'ny fampiasana Kilo App.", + "tierDescription": "{{price}} crédits voaloa ampiana isam-bolana ho an'ny fampiasana Kilo App.", "subscribe": "Abonne", "subscribeDescription": "Crédits isam-bolana miaraka amin'ny fandrosoana bonus", "manage": "Tantano", @@ -2425,7 +2452,7 @@ "statusPending": "Miandry ny Kilo Pass", "statusCanceling": "Manafoana ny Kilo Pass", "statusPastDue": "Tara ny Kilo Pass", - "monthlyCredits": "${{credits}} crédits isam-bolana", + "monthlyCredits": "{{credits}} crédits isam-bolana", "ends": "Mifarana {{date}}", "periodEnd": "fiafaran'ny fe-potoana", "managedOnGooglePlay": "Tantano ao amin'ny Google Play", diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index cf68fd5237..146cbbb0b3 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -206,11 +206,11 @@ "loadingLines": "Kei te uta {{loaded}} o {{total}} rārangi…", "expandContext": "Whakawhānui i te horopaki", "expandMoreContext": "Whakawhānui anō i te horopaki", - "expandLines": "Whakawhānui i ngā rārangi {{count}} ({{start}}–{{end}})", - "expandMoreLines": "Whakawhānui anō i ngā rārangi {{count}} ({{start}}–{{end}})", - "expandLinesOfContext": "Whakawhānui i ngā rārangi horopaki {{count}}", + "expandLines": "Whakawhānui i ngā rārangi {{displayCount}} ({{start}}–{{end}})", + "expandMoreLines": "Whakawhānui anō i ngā rārangi {{displayCount}} ({{start}}–{{end}})", + "expandLinesOfContext": "Whakawhānui i ngā rārangi horopaki {{displayCount}}", "expandAll": "Whakawhānui katoa", - "expandAllLines": "Whakawhānui katoa i ngā rārangi {{count}}", + "expandAllLines": "Whakawhānui katoa i ngā rārangi {{displayCount}}", "loadingMoreFiles": "Kei te uta ētahi atu kōnae…", "retryLoadingNextPage": "Whakamātau anō te uta i te whārangi e whai ake", "failedToLoadMoreFiles": "I rahua te uta o ētahi atu kōnae — pāwhiritia kia whakamātau anō", @@ -301,7 +301,7 @@ "closeReactions": "Katia ngā urupare", "reactionsTitle": "Ngā Urupare", "addReaction": "Tāpiri urupare", - "reactionPill": "Urupare {{emoji}}, {{count}} {{countLabel}}", + "reactionPill": "Urupare {{emoji}}, {{displayCount}} {{countLabel}}", "reaction_one": "urupare", "reaction": "ngā urupare", "reaction_other": "ngā urupare", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Kāore he miro arotake, he kōrero kōrerorero rānei i tēnei tono huna.", "reviewFiles": "Arotake i ngā kōnae", "quotedDiffSnippet": "Whakarapopototanga diff kua kīaha", - "moreLinesAbove": "… {{count}} anō rārangi ki runga", + "moreLinesAbove": "… {{displayCount}} anō rārangi ki runga", "termsAcceptRequired": "Me whakaae koe ki ngā Ture o te Ratonga kia tuku kōrero ai.", "termsOutdatedCopy": "Kua huri ngā Ture o te Ratonga. Whakatuwhera anō i tēnei mata kia whakaae ki te putanga hou rawa.", "termsCheckRetryCopy": "Kāore i taea te tirotiro i ngā Ture o te Ratonga. Tirohia tō hononga, ka whakamātau anō." @@ -395,11 +395,11 @@ "retryChecks": "Whakamātau anō ngā arowhai", "viewOnGitHub": "Tirohia te PR ki GitHub", "noChecksReported": "Kāore he arowhai i pūrongotia", - "passed": "{{count}} kua hoatu", - "failed": "{{count}} i rahua", - "pending": "{{count}} e tatari ana", - "skipped": "{{count}} i pekehia", - "checksCount": "{{count}} arowhai", + "passed": "{{displayCount}} kua hoatu", + "failed": "{{displayCount}} i rahua", + "pending": "{{displayCount}} e tatari ana", + "skipped": "{{displayCount}} i pekehia", + "checksCount": "{{displayCount}} arowhai", "checkDetails": "ngā taipitopito arowhai", "pullRequest": "tono huna" }, @@ -459,9 +459,9 @@ "pendingComment_one": "kōrero e tatari ana", "pendingComment": "ngā kōrero e tatari ana", "pendingComment_other": "ngā kōrero e tatari ana", - "submitCountOfTotal": "Tuku i {{freshCount}} o {{totalCount}} kōrero", + "submitCountOfTotal": "Tuku i {{displayFreshCount}} o {{displayTotalCount}} kōrero", "submitReview": "Tuku i te arotake", - "partialPostedMessage": "Kua tukuna {{freshCount}} kōrero. E tohu ana {{staleCount}} kōrero ki tētahi commit tawhito, ā, i noho ki tō tūtira." + "partialPostedMessage": "Kua tukuna {{displayFreshCount}} kōrero. E tohu ana {{displayStaleCount}} kōrero ki tētahi commit tawhito, ā, i noho ki tō tūtira." }, "reconnectNotice": { "title": "Kua pau te wā o te hononga GitHub", @@ -580,7 +580,8 @@ "agents": "Ngā Kaiāwhina", "profile": "Kōtaha", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ripa, {{position}} o {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Nō Nā Tata Nei", "common": "Whānui", "reactWith": "Urupare ki {{reaction}}", - "accessibility": "Urupare {{emoji}}, {{count}}" + "accessibility": "Urupare {{emoji}}, {{displayCount}}" }, "composer": { "replyingTo": "Kei te whakahoki ki", @@ -650,7 +651,7 @@ "imageUnavailable": "Kāore i te wātea te ahua", "openFailed": "Kāore i taea te whakatuwhera i te āpititanga. Tirohia tō hononga, ka whakamātau anō.", "attachFailed": "I rahua te āpiti i te kōnae", - "limit": "Ka taea e koe te āpiti tae noa ki {{count}} kōnae.", + "limit": "Ka taea e koe te āpiti tae noa ki {{displayCount}} kōnae.", "sizeRejection": "Nui atu a {{filename}} i te rohenga āpiti {{limit}}.", "unreadable": "Kāore i taea te pānui {{filename}}.", "pastedImage": "te ahua kua piritia", @@ -722,6 +723,7 @@ "finalTermEnds": "Ka mutu te wā whakamutunga", "afterFinalTerm": "I muri i te wā whakamutunga", "remaining": "E toe ana", + "lessThanOneDay": "Iti iho i te 1 rā", "ends": "Ka mutu", "expires": "Ka pau", "noActivePlan": "Kāore he mahere hōhi", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "tō utu Paerewa ā-marama", "perMonth": "/marama", "earlybirdAccessUntil": "Te uru Manu moata tae noa ki {{date}}", - "earlybirdEnding": "Kei te mutu te Manu moata: {{days}} rā e toe ana", + "earlybirdEnding": "Kei te mutu te Manu moata: {{remaining}}", "paymentPastDue": "Kua tōmuri te utu. Whakahōutia tō tikanga utu.", "subscriptionCancels": "Ka whakakore te ohohenga i {{date}}", - "trialDaysRemaining": "Whakamātau: {{days}} rā e toe ana", - "trialEndingSoon": "Whakamātau ka mutu tata nei: {{days}}" + "trialDaysRemaining": "Whakamātau: {{remaining}}", + "trialEndingSoon": "Whakamātau ka mutu tata nei: {{remaining}}" }, "changelog": { "title": "He aha te mea hou", @@ -996,7 +998,7 @@ "stalledTitle": "I pūkei tētahi mea", "stalledBody": "Kāore i taea e mātou te whakaoti i te whakatū o {{name}}. Whakamātau anō, īmēra rānei ki hi@kilo.ai mehemea ka pēnei tonu.", "timeoutTitle": "Ka roa ake i te wā e tūmanakohia ana", - "timeoutBody": "Kei te roa ake te whakatū o {{name}} i te wā noa (neke atu i te {{minutes}} meneti).", + "timeoutBody": "Kei te roa ake te whakatū o {{name}} i te wā noa (neke atu i te {{displayMinutes}} meneti).", "continueInBackground": "Haere tonu i te papamuri", "settingUp": "Kei te whakatū i a {{name}}", "finishingSetup": "Kei te whakaoti i te whakatū", @@ -1287,7 +1289,7 @@ "mergeGate": "Te keeti hanumi", "repositories": "Ngā puna kōrero", "allRepositories": "Ngā puna kōrero katoa", - "nSelected": "{{count}} kua kōwhiria", + "nSelected": "{{displayCount}} kua kōwhiria", "reviewMemory": "Te mahara arotake", "proposedReviewMdGuidance": "Te aratohu REVIEW.md kua tūtohu" }, @@ -1391,14 +1393,14 @@ "analyzed": "Kua tātaria", "exploitabilityReasoning": "Te whakaaro mō te whakamahi kino", "suggestedFix": "Te whakatika e whakaarohia ana", - "whereFound": "Te wāhi i kitea ai ({{count}})", + "whereFound": "Te wāhi i kitea ai ({{displayCount}})", "fullReport": "Te pūrongo katoa i hangaia", "unknown": "Kāore i mōhiotia", "yes": "Āe", "no": "Kāo" }, "dashboard": { - "findingsCount": "{{count}} kitea", + "findingsCount": "{{displayCount}} kitea", "notMeasured": "Kāore i inea", "actFirst": "Mahia te mahi i te tuatahi", "slaPosture": "Te tūnga SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Te mahere mahi pūranga", "noOpenFindings": "Kāore he kitea e tūwhera ana e hiahia ana ki te arotahi", "deadlineToday": "Kua tae te mutunga i tēnei rā", - "daysOverdue": "{{count}} rā kua tōmuri", + "daysOverdue": "{{displayCount}} rā kua tōmuri", "withinDeadline": "Kei roto i te mutunga", "criticalOverdue": "Tino kino kua tōmuri", "highOverdue": "Teitei kua tōmuri", @@ -1435,6 +1437,27 @@ "syncQueued": "Kua tūtaki te tukunga", "syncStatusUnavailable": "Kāore e wātea ana te tūnga tukunga" }, + "dashboardMetrics": { + "openFindings": "Ngā kitenga tuwhera", + "openFindingsDetail": "{{critical}} whakahirahira, {{high}} nui", + "confirmedExploitable": "Kua whakaaetia ka taea te whakamahi", + "confirmedExploitableDetail": "Kua whakaaetia te mōrearea kaupapa e te tātaritanga", + "needsReview": "Me arotake e koe", + "needsReviewDetail": "Ka hiahiatia te whakatau a te tangata", + "analysisIncomplete": "Kāore anō i oti te tātaritanga", + "analysisIncompleteDetail": "Kāore tonu i te mōhiotia te mōrearea kaupapa", + "slaCompliance": "Tautukunga SLA", + "notMeasured": "Kāore i inea", + "withinDeadlineDetail": "{{within}} o {{total}} i roto i te wā whakataunga", + "noDeadlineData": "Kāore anō he wā whakataunga SLA mō ngā kitenga", + "deadlinePassed": "Kua pahemo te wā whakataunga", + "deadlinePassedDetail": "{{critical}} whakahirahira, {{high}} nui", + "dueThisWeek": "Me whakatutuki i tēnei wiki", + "dueThisWeekDetail": "{{exploitable}} kua whakaaetia ka taea te whakamahi", + "noDeadline": "Kāore he wā whakataunga", + "reviewSlaAssignment": "Arotake i te toha SLA", + "allOpenFindingsTracked": "Kua aroturukihia ngā kitenga tuwhera katoa" + }, "dismiss": { "title": "Whakakore i te kitea", "submit": "Whakakore i te kitea", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} tātari", "automation": "Te aunoatanga", "automationAllOff": "Katoa kua weto", - "automationCount": "{{count}} o te 3 kua whakahohea", + "automationCount": "{{displayCount}} o te 3 kua whakahohea", "notifications": "Ngā pānui", - "notificationsCount": "{{count}} o te 2 kua whakahohea", + "notificationsCount": "{{displayCount}} o te 2 kua whakahohea", "slaPolicy": "Te kaupapa here SLA", "disabledNoManage": "Kua whakaweto a Security Agent. Ko ngā rangatira whakahaere me ngā kaiwhakahaere nama anake e taea te whakahoa.", "disabledNoRepo": "Kōwhiria kia kotahi pūranga i mua i te whakahoa i a Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Whakatuwhera i te tono hukihuki{{number}}", "openDraftPullRequest": "Whakatuwhera i te tauira tono hukihuki{{number}}", "progress": "Te ahunga whakamua", - "attemptHistory": "Te hītori whakamātau ({{count}})", + "attemptHistory": "Te hītori whakamātau ({{displayCount}})", "attemptNumber": "Te whakamātau #{{number}}", "startedBy": "I tīmata e", "model": "Tauira", @@ -1855,9 +1878,9 @@ "toolTask": "mahi", "readTodos": "Pānui ngā mahi", "updateTodos": "Whakahou ngā mahi", - "linesBadge": "{{count}} rārangi", - "filesBadge": "{{count}} kōnae", - "matchesBadge": "{{count}} hāngai" + "linesBadge": "{{displayCount}} rārangi", + "filesBadge": "{{displayCount}} kōnae", + "matchesBadge": "{{displayCount}} hāngai" }, "readToolMarkdown": { "linesTruncated": "ngā rārangi {{start}}–{{end}} (kua whakapoto)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Kāore e taea te pūrongo i tēnei whakautu.", "reportAiResponseSubmitted": "Kua tukuna te pūrongo. Te rīhiti {{receiptId}}" }, + "modelCost": { + "lessThan": "iti iho i te {{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Kāore e wātea ana ngā taipitopito", "textDisplay": "Te whakaaturanga kuputuhi", @@ -1999,7 +2026,7 @@ "preparationComplete": "Kua oti te whakaritenga", "preparationFailed": "I rahua te whakaritenga", "setupCommand": "Te whakahau whirihora {{index}}", - "setupCommandOf": "Te whakahau whirihora {{index}} o {{count}}" + "setupCommandOf": "Te whakahau whirihora {{index}} o {{displayCount}}" }, "permissionCard": { "title": "E hiahiatia ana te whakaaetanga", @@ -2036,7 +2063,7 @@ "submissionFailed": "Kāore i angitu te tuku. Tēnā whakamātau anō.", "questionAnnouncement": "Me tō whakaurunga ki te kaihoko. Kua tū te kaitito i a koe e whakautu ana.", "permissionAnnouncement": "Me whakaaetanga o te kaihoko kia haere tonu. Kua tū te kaitito i a koe e whiriwhiri ana.", - "positionHint": "(1 o {{count}})", + "positionHint": "(1 o {{displayCount}})", "movedPastPrompt": "Kua neke te kaihoko i tua atu o tēnei tono. Ka kati tēnei kāri ina haere tonu te wātū.", "waitingForAnswer": "Kei te tatari te kaihoko ki tō whakautu. I te wā e tuwhera ana tēnei pātai, kua tū tō karere ki te kaihoko.", "waitingForPermission": "Kei te tatari te kaihoko ki te whakaaetanga. I te wā e tuwhera ana tēnei tono, kua tū tō karere ki te kaihoko." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kua monokia te Uru Kāmera", "cameraAccessMessage": "Tukua te uru kāmera i ngā Tautuhinga kia tangohia he whakaahua.", "couldNotOpenPhotoPicker": "Kāore i taea te whakatuwhera te kōwhiri whakaahua. Whakaara anō a Kilo, whakamātau anō.", - "maxFilesAllowed": "E whakaaetia ana te mōrahi o ngā kōnae {{count}}", + "maxFilesAllowed": "E whakaaetia ana te mōrahi o ngā kōnae {{displayCount}}", "onlyAddingFiles": "Kei te tāpiri noa i te {{accepted}} o ngā kōnae {{total}} (mōrahi {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "utu {{cost}}", "costSuffix": ", utu {{cost}}", "tokensWindowUnavailable": "Horopaki {{used}} tōkena, kāore e wātea ana te matapihi", - "tokensUsage": "Horopaki {{used}} o ngā tōkena {{window}}, {{percentage}}% kua whakamahia", + "tokensUsage": "Horopaki {{used}} o ngā tōkena {{window}}, {{percentage}} kua whakamahia", "title": "Te whakamahinga horopaki", "used": "Kua whakamahia", "remaining": "E toe ana", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "E whakaatu ana te whakamahinga i te whakautu kaiāwhina mutunga kua oti.", "tokenUsage": "Te whakamahinga tōkena", "cacheRate": "Te reiti ketero", - "modelsCount": "Ngā tauira ({{count}})", + "modelsCount": "Ngā tauira ({{displayCount}})", "tokenTotalsNote": "Ko ngā tapeke tōkena hei tāpiri mō tēnei wātū anake, kāore ngā tōkena kaihoko-iti/wātū-iti.", "subagents": "Ngā kaihoko-iti", "subagentsDescription": "Te utu toenga o ngā wātū-iti", @@ -2373,7 +2400,7 @@ "connectedCli": "Kei runga i tētahi CLI kua hono", "newSessionOn": "Wātū hōu i runga i {{name}}", "noMatchingSessions": "Kāore he wātū e ōrite ana.", - "onlyFirstFilesAttached": "Ka whakapirihia ngā kōnae {{count}} tuatahi anake.", + "onlyFirstFilesAttached": "Ka whakapirihia ngā kōnae {{displayCount}} tuatahi anake.", "staleMessage": "Kāore tēnei tuaritanga e wātea ana.", "retryableMessage": "Kāore i taea te uta ō wātū.", "emptyMessage": "Kāore anō he wātū — tīmata he wātū hōu kia tukua tēnei.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Ko te Kilo Pass o tēnei Pūkete Apple nō tētahi atu pūkete Kilo. Whakauru ki taua pūkete Kilo kia whakahaere.", "alreadySubscribed": "Kua whai koe i tētahi ohaurunga Kilo Pass.", "purchaseUnavailable": "Kāore e wātea ana te hokonga Kilo Pass ināianei.", - "tierCredits": "${{amount}} i ngā whiwhinga", + "tierCredits": "{{amount}} i ngā whiwhinga", "perMonth": "{{price}}/marama", "verifyPurchaseFailed": "Kāore i taea te manatoko tō hokonga. Tirohia tō hononga, whakamātau anō.", "productsCouldNotLoad": "Kāore i taea te uta ngā hua Kilo Pass mai i App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "I rahua te whakatuwhera i te whakahaere ohaurunga App Store.", "kiloPassSetup": "Te whakatū Kilo Pass", "subscriptionHeaderDescription": "He ohaurunga ā-marama e tāpiri ana i ngā whiwhinga ki tō toenga Kilo mō te whakahaere i ngā wātū whakawaehere AI i te Taupānga Kilo — Ngā Kaihoko Kapua, ngā wātū mamao, me ngā kōrerorero KiloClaw.", - "tierDescription": "E ${{price}} ngā whiwhinga kua utua ka tāpiri ā-marama mō te whakamahinga Taupānga Kilo.", + "tierDescription": "E {{price}} ngā whiwhinga kua utua ka tāpiri ā-marama mō te whakamahinga Taupānga Kilo.", "subscribe": "Ohauru", "subscribeDescription": "Ngā whiwhinga ā-marama me te ahunga whakamua bonus", "manage": "Whakahaere", @@ -2425,7 +2452,7 @@ "statusPending": "E tatari ana a Kilo Pass", "statusCanceling": "Kei te whakakore a Kilo Pass", "statusPastDue": "Kua taka te utu o Kilo Pass", - "monthlyCredits": "${{credits}} whiwhinga ā-marama", + "monthlyCredits": "{{credits}} whiwhinga ā-marama", "ends": "Ka mutu {{date}}", "periodEnd": "te mutunga wā", "managedOnGooglePlay": "Kei te whakahaere i Google Play", diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index ddaf6fe357..29f94f97a3 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -206,11 +206,11 @@ "loadingLines": "Се вчитуваат {{loaded}} од {{total}} линии…", "expandContext": "Прошири контекст", "expandMoreContext": "Прошири повеќе контекст", - "expandLines": "Прошири {{count}} линии ({{start}}–{{end}})", - "expandMoreLines": "Прошири повеќе {{count}} линии ({{start}}–{{end}})", - "expandLinesOfContext": "Прошири {{count}} линии на контекст", + "expandLines": "Прошири {{displayCount}} линии ({{start}}–{{end}})", + "expandMoreLines": "Прошири повеќе {{displayCount}} линии ({{start}}–{{end}})", + "expandLinesOfContext": "Прошири {{displayCount}} линии на контекст", "expandAll": "Прошири сè", - "expandAllLines": "Прошири ги сите {{count}} линии", + "expandAllLines": "Прошири ги сите {{displayCount}} линии", "loadingMoreFiles": "Се вчитуваат повеќе датотеки…", "retryLoadingNextPage": "Обиди се повторно со вчитувањето на следната страница", "failedToLoadMoreFiles": "Не успеа вчитувањето на повеќе датотеки — допрете за да се обидете повторно", @@ -301,7 +301,7 @@ "closeReactions": "Затвори реакции", "reactionsTitle": "Реакции", "addReaction": "Додај реакција", - "reactionPill": "{{emoji}} реакција, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} реакција, {{displayCount}} {{countLabel}}", "reaction_one": "реакција", "reaction": "реакции", "reaction_other": "реакции", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Нема нишки за преглед или разговорни коментари на ова барање за повлекување.", "reviewFiles": "Прегледај датотеки", "quotedDiffSnippet": "Цитиран diff сегмент", - "moreLinesAbove": "… {{count}} повеќе линии погоре", + "moreLinesAbove": "… {{displayCount}} повеќе линии погоре", "termsAcceptRequired": "Мора да ги прифатите Условите на користење за да објавувате.", "termsOutdatedCopy": "Условите на користење се променија. Отворете го овој екран повторно за да ја прифатите најновата верзија.", "termsCheckRetryCopy": "Не можеше да се проверат Условите на користење. Проверете ја вашата врска и обидете се повторно." @@ -395,11 +395,11 @@ "retryChecks": "Обиди се повторно со проверките", "viewOnGitHub": "Прикажи PR на GitHub", "noChecksReported": "Нема пријавени проверки", - "passed": "{{count}} поминати", - "failed": "{{count}} неуспешни", - "pending": "{{count}} во тек", - "skipped": "{{count}} прескокнати", - "checksCount": "{{count}} проверки", + "passed": "{{displayCount}} поминати", + "failed": "{{displayCount}} неуспешни", + "pending": "{{displayCount}} во тек", + "skipped": "{{displayCount}} прескокнати", + "checksCount": "{{displayCount}} проверки", "checkDetails": "детали на проверка", "pullRequest": "барање за повлекување" }, @@ -459,9 +459,9 @@ "pendingComment_one": "коментар што чека", "pendingComment": "коментари што чекаат", "pendingComment_other": "коментари што чекаат", - "submitCountOfTotal": "Испрати {{freshCount}} од {{totalCount}} коментари", + "submitCountOfTotal": "Испрати {{displayFreshCount}} од {{displayTotalCount}} коментари", "submitReview": "Испрати преглед", - "partialPostedMessage": "Објавени {{freshCount}} коментар(и). {{staleCount}} коментар(и) упатуваат на постар commit и останаа во вашиот ред." + "partialPostedMessage": "Објавени {{displayFreshCount}} коментар(и). {{displayStaleCount}} коментар(и) упатуваат на постар commit и останаа во вашиот ред." }, "reconnectNotice": { "title": "GitHub врската истече", @@ -580,7 +580,8 @@ "agents": "Агенти", "profile": "Профил", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, таб, {{position}} од {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Неодамнешни", "common": "Вообичаени", "reactWith": "Реагирај со {{reaction}}", - "accessibility": "{{emoji}} реакција, {{count}}" + "accessibility": "{{emoji}} реакција, {{displayCount}}" }, "composer": { "replyingTo": "Одговара на", @@ -650,7 +651,7 @@ "imageUnavailable": "Сликата е недостапна", "openFailed": "Не можеше да се отвори прилогот. Проверете ја вашата врска и обидете се повторно.", "attachFailed": "Не успеа прикачувањето на датотеката", - "limit": "Можете да прикачите до {{count}} датотеки.", + "limit": "Можете да прикачите до {{displayCount}} датотеки.", "sizeRejection": "{{filename}} ја надминува границата на прилогот од {{limit}}.", "unreadable": "Не можеше да се прочита {{filename}}.", "pastedImage": "залепената слика", @@ -722,6 +723,7 @@ "finalTermEnds": "Последниот период завршува", "afterFinalTerm": "По последниот период", "remaining": "Останува", + "lessThanOneDay": "Помалку од 1 ден", "ends": "Завршува", "expires": "Истекува", "noActivePlan": "Нема активен план", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "твојата Standard месечна цена", "perMonth": "/месец", "earlybirdAccessUntil": "Earlybird пристап до {{date}}", - "earlybirdEnding": "Earlybird завршува: {{days}} дена остануваат", + "earlybirdEnding": "Earlybird завршува: {{remaining}}", "paymentPastDue": "Плаќањето е задоцнето. Ажурирај го начинот на плаќање.", "subscriptionCancels": "Претплатата се откажува {{date}}", - "trialDaysRemaining": "Проба: {{days}} дена остануваат", - "trialEndingSoon": "Пробата наскоро завршува: {{days}}" + "trialDaysRemaining": "Проба: {{remaining}}", + "trialEndingSoon": "Пробата наскоро завршува: {{remaining}}" }, "changelog": { "title": "Што има ново", @@ -996,7 +998,7 @@ "stalledTitle": "Нешто заглави", "stalledBody": "Не можевме да го завршиме поставувањето на {{name}}. Обиди се повторно, или пиши на hi@kilo.ai ако ова продолжи.", "timeoutTitle": "Трае подолго од очекуваното", - "timeoutBody": "Поставувањето на {{name}} трае подолго од вообичаено (повеќе од {{minutes}} минути).", + "timeoutBody": "Поставувањето на {{name}} трае подолго од вообичаено (повеќе од {{displayMinutes}} минути).", "continueInBackground": "Продолжи во заднина", "settingUp": "Се поставува {{name}}", "finishingSetup": "Се завршува поставувањето", @@ -1287,7 +1289,7 @@ "mergeGate": "Порта за спојување", "repositories": "Репозиториуми", "allRepositories": "Сите репозиториуми", - "nSelected": "{{count}} избрани", + "nSelected": "{{displayCount}} избрани", "reviewMemory": "Меморија на прегледи", "proposedReviewMdGuidance": "Предложени REVIEW.md насоки" }, @@ -1391,14 +1393,14 @@ "analyzed": "Анализирано", "exploitabilityReasoning": "Образложение за искористливоста", "suggestedFix": "Предложена поправка", - "whereFound": "Каде е пронајдено ова ({{count}})", + "whereFound": "Каде е пронајдено ова ({{displayCount}})", "fullReport": "Целосен генериран извештај", "unknown": "Непознато", "yes": "Да", "no": "Не" }, "dashboard": { - "findingsCount": "{{count}} наоди", + "findingsCount": "{{displayCount}} наоди", "notMeasured": "Не е измерено", "actFirst": "Дејствувај прво", "slaPosture": "SLA положба", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "План за дејствување во складиштето", "noOpenFindings": "Нема отворени наоди што бараат внимание", "deadlineToday": "Рокот е достигнат денес", - "daysOverdue": "{{count}} дена просрочени", + "daysOverdue": "{{displayCount}} дена просрочени", "withinDeadline": "Во рамките на рокот", "criticalOverdue": "Критични просрочени", "highOverdue": "Високи просрочени", @@ -1435,6 +1437,27 @@ "syncQueued": "Синхронизацијата е ставена во ред", "syncStatusUnavailable": "Статусот на синхронизација е недостапен" }, + "dashboardMetrics": { + "openFindings": "Отворени наоди", + "openFindingsDetail": "{{critical}} критични, {{high}} високи", + "confirmedExploitable": "Потврдено дека е искористливо", + "confirmedExploitableDetail": "Ризикот за проектот е потврден со анализа", + "needsReview": "Потребен е вашиот преглед", + "needsReviewDetail": "Потребна е човечка одлука", + "analysisIncomplete": "Анализата не е завршена", + "analysisIncompleteDetail": "Ризикот за проектот е сè уште непознат", + "slaCompliance": "Усогласеност со SLA", + "notMeasured": "Не е измерено", + "withinDeadlineDetail": "{{within}} од {{total}} во рок", + "noDeadlineData": "Наодите сè уште немаат SLA рок", + "deadlinePassed": "Рокот помина", + "deadlinePassedDetail": "{{critical}} критични, {{high}} високи", + "dueThisWeek": "Доспева оваа недела", + "dueThisWeekDetail": "{{exploitable}} потврдени како искористливи", + "noDeadline": "Нема рок", + "reviewSlaAssignment": "Прегледај ја SLA доделката", + "allOpenFindingsTracked": "Сите отворени наоди се следени" + }, "dismiss": { "title": "Отфрли наод", "submit": "Отфрли наод", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} анализа", "automation": "Автоматизација", "automationAllOff": "Сите исклучени", - "automationCount": "{{count}} од 3 овозможени", + "automationCount": "{{displayCount}} од 3 овозможени", "notifications": "Известувања", - "notificationsCount": "{{count}} од 2 овозможени", + "notificationsCount": "{{displayCount}} од 2 овозможени", "slaPolicy": "SLA политика", "disabledNoManage": "Безбедносниот агент е оневозможен. Само сопствениците на организацијата и менаџерите за наплата можат да го вклучат.", "disabledNoRepo": "Избери најмалку едно складиште пред да го овозможиш Безбедносниот агент.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Отвори барање за влечење{{number}}", "openDraftPullRequest": "Отвори нацрт барање за влечење{{number}}", "progress": "Напредок", - "attemptHistory": "Историја на обиди ({{count}})", + "attemptHistory": "Историја на обиди ({{displayCount}})", "attemptNumber": "Обид #{{number}}", "startedBy": "Започнато од", "model": "Модел", @@ -1855,9 +1878,9 @@ "toolTask": "задача", "readTodos": "Прочитај ги задачите", "updateTodos": "Ажурирај ги задачите", - "linesBadge": "{{count}} редови", - "filesBadge": "{{count}} датотеки", - "matchesBadge": "{{count}} совпаѓања" + "linesBadge": "{{displayCount}} редови", + "filesBadge": "{{displayCount}} датотеки", + "matchesBadge": "{{displayCount}} совпаѓања" }, "readToolMarkdown": { "linesTruncated": "редови {{start}}–{{end}} (скратено)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Овој одговор не може да се пријави.", "reportAiResponseSubmitted": "Пријавата е испратена. Потврда {{receiptId}}" }, + "modelCost": { + "lessThan": "помалку од {{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Деталите се недостапни", "textDisplay": "Приказ на текст", @@ -1999,7 +2026,7 @@ "preparationComplete": "Подготовката е завршена", "preparationFailed": "Подготовката не успеа", "setupCommand": "Команда за поставување {{index}}", - "setupCommandOf": "Команда за поставување {{index}} од {{count}}" + "setupCommandOf": "Команда за поставување {{index}} од {{displayCount}}" }, "permissionCard": { "title": "Потребна е дозвола", @@ -2036,7 +2063,7 @@ "submissionFailed": "Поднесувањето не успеа. Обидете се повторно.", "questionAnnouncement": "На агентот му треба вашиот одговор. Композиторот е паузиран додека одговарате.", "permissionAnnouncement": "На агентот му треба дозвола за да продолжи. Композиторот е паузиран додека одлучувате.", - "positionHint": "(1 од {{count}})", + "positionHint": "(1 од {{displayCount}})", "movedPastPrompt": "Агентот се придвижи подалеку од ова барање. Оваа картичка ќе се затвори кога сесијата ќе продолжи.", "waitingForAnswer": "Агентот го чека вашиот одговор. Додека ова прашање е отворено, вашата порака до агентот е паузирана.", "waitingForPermission": "Агентот чека дозвола. Додека ова барање е отворено, вашата порака до агентот е паузирана." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Пристапот до камера е оневозможен", "cameraAccessMessage": "Дозволете пристап до камерата во Поставки за да направите фотографија.", "couldNotOpenPhotoPicker": "Не можев да го отворам избирачот на фотографии. Рестартирајте го Kilo и обидете се повторно.", - "maxFilesAllowed": "Дозволени се максимум {{count}} датотеки", + "maxFilesAllowed": "Дозволени се максимум {{displayCount}} датотеки", "onlyAddingFiles": "Се додаваат само {{accepted}} од {{total}} датотеки (макс. {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "цена {{cost}}", "costSuffix": ", цена {{cost}}", "tokensWindowUnavailable": "Контекст {{used}} токени, прозорецот е недостапен", - "tokensUsage": "Контекст {{used}} од {{window}} токени, {{percentage}}% искористени", + "tokensUsage": "Контекст {{used}} од {{window}} токени, {{percentage}} искористени", "title": "Искористеност на контекст", "used": "Искористено", "remaining": "Преостанато", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Искористеноста ја одразува најновата завршена одговор на асистентот.", "tokenUsage": "Искористеност на токени", "cacheRate": "Стапка на кеш", - "modelsCount": "Модели ({{count}})", + "modelsCount": "Модели ({{displayCount}})", "tokenTotalsNote": "Вкупните токени се однесуваат само на оваа сесија и не ги вклучуваат токените на субагентите/детските сесии.", "subagents": "Субагенти", "subagentsDescription": "Преостаната цена од детски сесии", @@ -2373,7 +2400,7 @@ "connectedCli": "На поврзан CLI", "newSessionOn": "Нова сесија на {{name}}", "noMatchingSessions": "Нема соодветни сесии.", - "onlyFirstFilesAttached": "Само првите {{count}} датотеки ќе бидат прикачени.", + "onlyFirstFilesAttached": "Само првите {{displayCount}} датотеки ќе бидат прикачени.", "staleMessage": "Ова споделување повеќе не е достапно.", "retryableMessage": "Не можев да ги вчитам вашите сесии.", "emptyMessage": "Сè уште нема сесии — започнете нова за да го испратите ова.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass-от на оваа Apple сметка припаѓа на друга Kilo сметка. Најавете се на таа Kilo сметка за да ја управувате.", "alreadySubscribed": "Веќе имате Kilo Pass претплата.", "purchaseUnavailable": "Купувањето на Kilo Pass во моментов не е достапно.", - "tierCredits": "${{amount}} во кредити", + "tierCredits": "{{amount}} во кредити", "perMonth": "{{price}}/мес", "verifyPurchaseFailed": "Не можев да го потврдам вашето купување. Проверете ја вашата врска и обидете се повторно.", "productsCouldNotLoad": "Kilo Pass производите не можеа да се вчитаат од App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Не успеав да отворам управување со претплатата во App Store.", "kiloPassSetup": "Поставување на Kilo Pass", "subscriptionHeaderDescription": "Месечна претплата што додава кредити на вашата Kilo состојба за извршување на AI сесии за кодирање во Kilo App — Cloud Agents, далечински сесии и KiloClaw разговори.", - "tierDescription": "${{price}} платени кредити се додаваат месечно за употреба на Kilo App.", + "tierDescription": "{{price}} платени кредити се додаваат месечно за употреба на Kilo App.", "subscribe": "Претплати се", "subscribeDescription": "Месечни кредити со бонус напредок", "manage": "Управувај", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass е во очекување", "statusCanceling": "Kilo Pass се откажува", "statusPastDue": "Kilo Pass е доцни плаќање", - "monthlyCredits": "${{credits}} месечни кредити", + "monthlyCredits": "{{credits}} месечни кредити", "ends": "Завршува {{date}}", "periodEnd": "крај на периодот", "managedOnGooglePlay": "Управувано на Google Play", diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index 3efc56db94..b0a6dbd4ed 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}}-ൽ {{loaded}} വരികൾ ലോഡ് ചെയ്യുന്നു…", "expandContext": "കോണ്ടെക്സ്റ്റ് വികസിപ്പിക്കുക", "expandMoreContext": "കൂടുതൽ കോണ്ടെക്സ്റ്റ് വികസിപ്പിക്കുക", - "expandLines": "{{count}} വരികൾ വികസിപ്പിക്കുക ({{start}}–{{end}})", - "expandMoreLines": "കൂടുതൽ {{count}} വരികൾ വികസിപ്പിക്കുക ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} വരികൾ കോണ്ടെക്സ്റ്റ് വികസിപ്പിക്കുക", + "expandLines": "{{displayCount}} വരികൾ വികസിപ്പിക്കുക ({{start}}–{{end}})", + "expandMoreLines": "കൂടുതൽ {{displayCount}} വരികൾ വികസിപ്പിക്കുക ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} വരികൾ കോണ്ടെക്സ്റ്റ് വികസിപ്പിക്കുക", "expandAll": "എല്ലാം വികസിപ്പിക്കുക", - "expandAllLines": "എല്ലാ {{count}} വരികളും വികസിപ്പിക്കുക", + "expandAllLines": "എല്ലാ {{displayCount}} വരികളും വികസിപ്പിക്കുക", "loadingMoreFiles": "കൂടുതൽ ഫയലുകൾ ലോഡ് ചെയ്യുന്നു…", "retryLoadingNextPage": "അടുത്ത പേജ് ലോഡ് ചെയ്യാൻ വീണ്ടും ശ്രമിക്കുക", "failedToLoadMoreFiles": "കൂടുതൽ ഫയലുകൾ ലോഡ് ചെയ്യാൻ പരാജയപ്പെട്ടു — വീണ്ടും ശ്രമിക്കാൻ ടാപ്പ് ചെയ്യുക", @@ -301,7 +301,7 @@ "closeReactions": "റിയാക്ഷനുകൾ അടയ്ക്കുക", "reactionsTitle": "റിയാക്ഷനുകൾ", "addReaction": "റിയാക്ഷൻ ചേർക്കുക", - "reactionPill": "{{emoji}} റിയാക്ഷൻ, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} റിയാക്ഷൻ, {{displayCount}} {{countLabel}}", "reaction_one": "റിയാക്ഷൻ", "reaction": "റിയാക്ഷനുകൾ", "reaction_other": "റിയാക്ഷനുകൾ", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ഈ പുൾ റിക്വസ്റ്റിൽ റിവ്യൂ ത്രെഡുകളോ സംഭാഷണ അഭിപ്രായങ്ങളോ ഇല്ല.", "reviewFiles": "ഫയലുകൾ അവലോകനം ചെയ്യുക", "quotedDiffSnippet": "ഉദ്ധരിച്ച diff സ്നിപ്പെറ്റ്", - "moreLinesAbove": "… മുകളിൽ {{count}} കൂടുതൽ വരികൾ", + "moreLinesAbove": "… മുകളിൽ {{displayCount}} കൂടുതൽ വരികൾ", "termsAcceptRequired": "പോസ്റ്റ് ചെയ്യാൻ നിങ്ങൾ സേവന നിബന്ധനകൾ സ്വീകരിക്കണം.", "termsOutdatedCopy": "സേവന നിബന്ധനകൾ മാറി. ഏറ്റവും പുതിയ പതിപ്പ് സ്വീകരിക്കാൻ ഈ സ്ക്രീൻ വീണ്ടും തുറക്കുക.", "termsCheckRetryCopy": "സേവന നിബന്ധനകൾ പരിശോധിക്കാനായില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക." @@ -395,11 +395,11 @@ "retryChecks": "പരിശോധനകൾ വീണ്ടും ശ്രമിക്കുക", "viewOnGitHub": "GitHub-ൽ PR കാണുക", "noChecksReported": "പരിശോധനകളൊന്നും റിപ്പോർട്ട് ചെയ്തിട്ടില്ല", - "passed": "{{count}} വിജയിച്ചു", - "failed": "{{count}} പരാജയപ്പെട്ടു", - "pending": "{{count}} തീർച്ചയായിട്ടില്ല", - "skipped": "{{count}} ഒഴിവാക്കി", - "checksCount": "{{count}} പരിശോധനകൾ", + "passed": "{{displayCount}} വിജയിച്ചു", + "failed": "{{displayCount}} പരാജയപ്പെട്ടു", + "pending": "{{displayCount}} തീർച്ചയായിട്ടില്ല", + "skipped": "{{displayCount}} ഒഴിവാക്കി", + "checksCount": "{{displayCount}} പരിശോധനകൾ", "checkDetails": "പരിശോധന വിശദാംശങ്ങൾ", "pullRequest": "പുൾ റിക്വസ്റ്റ്" }, @@ -459,9 +459,9 @@ "pendingComment_one": "തീർച്ചയാകാത്ത അഭിപ്രായം", "pendingComment": "തീർച്ചയാകാത്ത അഭിപ്രായങ്ങൾ", "pendingComment_other": "തീർച്ചയാകാത്ത അഭിപ്രായങ്ങൾ", - "submitCountOfTotal": "{{totalCount}}-ൽ {{freshCount}} അഭിപ്രായങ്ങൾ സമർപ്പിക്കുക", + "submitCountOfTotal": "{{displayTotalCount}}-ൽ {{displayFreshCount}} അഭിപ്രായങ്ങൾ സമർപ്പിക്കുക", "submitReview": "അവലോകനം സമർപ്പിക്കുക", - "partialPostedMessage": "{{freshCount}} അഭിപ്രായ(ങ്ങൾ) പോസ്റ്റ് ചെയ്തു. {{staleCount}} അഭിപ്രായ(ങ്ങൾ) ഒരു പഴയ കമ്മിറ്റിലേക്ക് ചൂണ്ടിക്കാണിക്കുകയും നിങ്ങളുടെ ക്യൂവിൽ തുടരുകയും ചെയ്തു." + "partialPostedMessage": "{{displayFreshCount}} അഭിപ്രായ(ങ്ങൾ) പോസ്റ്റ് ചെയ്തു. {{displayStaleCount}} അഭിപ്രായ(ങ്ങൾ) ഒരു പഴയ കമ്മിറ്റിലേക്ക് ചൂണ്ടിക്കാണിക്കുകയും നിങ്ങളുടെ ക്യൂവിൽ തുടരുകയും ചെയ്തു." }, "reconnectNotice": { "title": "GitHub കണക്ഷൻ കാലഹരണപ്പെട്ടു", @@ -580,7 +580,8 @@ "agents": "ഏജന്റുകൾ", "profile": "പ്രൊഫൈൽ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ടാബ്, {{total}} ഇൽ {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "സമീപകാലം", "common": "സാധാരണ", "reactWith": "{{reaction}} ഉപയോഗിച്ച് റിയാക്ട് ചെയ്യുക", - "accessibility": "{{emoji}} റിയാക്ഷൻ, {{count}}" + "accessibility": "{{emoji}} റിയാക്ഷൻ, {{displayCount}}" }, "composer": { "replyingTo": "മറുപടി നൽകുന്നത്", @@ -650,7 +651,7 @@ "imageUnavailable": "ചിത്രം ലഭ്യമല്ല", "openFailed": "അറ്റാച്ച്മെന്റ് തുറക്കാനായില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.", "attachFailed": "ഫയൽ അറ്റാച്ച് ചെയ്യാൻ പരാജയപ്പെട്ടു", - "limit": "നിങ്ങൾക്ക് {{count}} വരെ ഫയലുകൾ അറ്റാച്ച് ചെയ്യാം.", + "limit": "നിങ്ങൾക്ക് {{displayCount}} വരെ ഫയലുകൾ അറ്റാച്ച് ചെയ്യാം.", "sizeRejection": "{{filename}} {{limit}} അറ്റാച്ച്മെന്റ് പരിധി കവിയുന്നു.", "unreadable": "{{filename}} വായിക്കാനായില്ല.", "pastedImage": "ഒട്ടിച്ച ചിത്രം", @@ -722,6 +723,7 @@ "finalTermEnds": "അവസാന കാലാവധി അവസാനിക്കുന്നു", "afterFinalTerm": "അവസാന കാലാവധിക്ക് ശേഷം", "remaining": "അവശേഷിക്കുന്നത്", + "lessThanOneDay": "1 ദിവസത്തിൽ കുറവ്", "ends": "അവസാനിക്കുന്നു", "expires": "കാലഹരണപ്പെടുന്നു", "noActivePlan": "സജീവ പ്ലാൻ ഇല്ല", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "നിങ്ങളുടെ Standard പ്രതിമാസ വില", "perMonth": "/മാസം", "earlybirdAccessUntil": "{{date}} വരെയുള്ള ആദ്യകാല ആക്സസ്", - "earlybirdEnding": "ആദ്യകാലം അവസാനിക്കുന്നു: {{days}} ദിവസം അവശേഷിക്കുന്നു", + "earlybirdEnding": "ആദ്യകാലം അവസാനിക്കുന്നു: {{remaining}}", "paymentPastDue": "പേയ്മെന്റ് കാലഹരണപ്പെട്ടു. നിങ്ങളുടെ പേയ്മെന്റ് രീതി അപ്ഡേറ്റ് ചെയ്യുക.", "subscriptionCancels": "സബ്സ്ക്രിപ്ഷൻ {{date}} ന് റദ്ദാക്കും", - "trialDaysRemaining": "ട്രയൽ: {{days}} ദിവസം അവശേഷിക്കുന്നു", - "trialEndingSoon": "ട്രയൽ ഉടൻ അവസാനിക്കുന്നു: {{days}}" + "trialDaysRemaining": "ട്രയൽ: {{remaining}}", + "trialEndingSoon": "ട്രയൽ ഉടൻ അവസാനിക്കുന്നു: {{remaining}}" }, "changelog": { "title": "പുതിയതെന്താണ്", @@ -996,7 +998,7 @@ "stalledTitle": "എന്തോ തടസ്സപ്പെട്ടു", "stalledBody": "{{name}} സെറ്റപ്പ് ചെയ്ത് പൂർത്തിയാക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക, അല്ലെങ്കിൽ ഇത് തുടരുകയാണെങ്കിൽ hi@kilo.ai-യിലേക്ക് ഇമെയിൽ ചെയ്യുക.", "timeoutTitle": "പ്രതീക്ഷിച്ചതിലും കൂടുതൽ സമയമെടുക്കുന്നു", - "timeoutBody": "{{name}} ന്റെ സെറ്റപ്പ് പതിവിലും കൂടുതൽ സമയമെടുക്കുന്നു ({{minutes}} മിനിറ്റിലധികം).", + "timeoutBody": "{{name}} ന്റെ സെറ്റപ്പ് പതിവിലും കൂടുതൽ സമയമെടുക്കുന്നു ({{displayMinutes}} മിനിറ്റിലധികം).", "continueInBackground": "പശ്ചാത്തലത്തിൽ തുടരുക", "settingUp": "{{name}} സെറ്റപ്പ് ചെയ്യുന്നു", "finishingSetup": "സെറ്റപ്പ് പൂർത്തിയാക്കുന്നു", @@ -1287,7 +1289,7 @@ "mergeGate": "മെർജ് ഗേറ്റ്", "repositories": "റിപ്പോസിറ്ററികൾ", "allRepositories": "എല്ലാ റിപ്പോസിറ്ററികൾ", - "nSelected": "{{count}} തിരഞ്ഞെടുത്തു", + "nSelected": "{{displayCount}} തിരഞ്ഞെടുത്തു", "reviewMemory": "അവലോകന മെമ്മറി", "proposedReviewMdGuidance": "നിർദ്ദേശിച്ച REVIEW.md മാർഗ്ഗനിർദ്ദേശം" }, @@ -1391,14 +1393,14 @@ "analyzed": "വിശകലനം ചെയ്തു", "exploitabilityReasoning": "ചൂഷണസാധ്യതയുടെ യുക്തി", "suggestedFix": "നിർദ്ദേശിച്ച പരിഹാരം", - "whereFound": "ഇത് കണ്ടെത്തിയ സ്ഥലം ({{count}})", + "whereFound": "ഇത് കണ്ടെത്തിയ സ്ഥലം ({{displayCount}})", "fullReport": "പൂർണ്ണ ജനറേറ്റഡ് റിപ്പോർട്ട്", "unknown": "അജ്ഞാതം", "yes": "അതെ", "no": "ഇല്ല" }, "dashboard": { - "findingsCount": "{{count}} കണ്ടെത്തലുകൾ", + "findingsCount": "{{displayCount}} കണ്ടെത്തലുകൾ", "notMeasured": "അളക്കിയിട്ടില്ല", "actFirst": "ആദ്യം പ്രവർത്തിക്കുക", "slaPosture": "SLA നില", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "റിപ്പോസിറ്ററി പ്രവർത്തന പദ്ധതി", "noOpenFindings": "ശ്രദ്ധ ആവശ്യമുള്ള തുറന്ന കണ്ടെത്തലുകൾ ഒന്നുമില്ല", "deadlineToday": "ഇന്ന് സമയപരിധിയിലെത്തി", - "daysOverdue": "{{count}} ദിവസം കാലഹരണപ്പെട്ടു", + "daysOverdue": "{{displayCount}} ദിവസം കാലഹരണപ്പെട്ടു", "withinDeadline": "സമയപരിധിക്കുള്ളിൽ", "criticalOverdue": "ക്രിട്ടിക്കൽ കാലഹരണപ്പെട്ടു", "highOverdue": "ഉയർന്നത് കാലഹരണപ്പെട്ടു", @@ -1435,6 +1437,27 @@ "syncQueued": "സമന്വയം ക്യൂവിലാക്കി", "syncStatusUnavailable": "സമന്വയ നില ലഭ്യമല്ല" }, + "dashboardMetrics": { + "openFindings": "തുറന്ന കണ്ടെത്തലുകൾ", + "openFindingsDetail": "{{critical}} നിർണായകം, {{high}} ഉയർന്നത്", + "confirmedExploitable": "ഉപയോഗയോഗ്യമെന്ന് സ്ഥിരീകരിച്ചു", + "confirmedExploitableDetail": "വിശകലനത്തിലൂടെ പ്രോജക്ട് അപകടസാധ്യത സ്ഥിരീകരിച്ചു", + "needsReview": "നിങ്ങളുടെ അവലോകനം ആവശ്യമാണ്", + "needsReviewDetail": "മനുഷ്യ തീരുമാനം ആവശ്യമാണ്", + "analysisIncomplete": "വിശകലനം പൂർത്തിയായില്ല", + "analysisIncompleteDetail": "പ്രോജക്ട് അപകടസാധ്യത ഇനിയും അറിയില്ല", + "slaCompliance": "SLA പാലിക്കൽ", + "notMeasured": "അളന്നിട്ടില്ല", + "withinDeadlineDetail": "{{total}} ൽ {{within}} കാലാവധിക്കുള്ളിൽ", + "noDeadlineData": "ഒരു കണ്ടെത്തലിനും ഇതുവരെ SLA കാലാവധിയില്ല", + "deadlinePassed": "കാലാവധി കഴിഞ്ഞു", + "deadlinePassedDetail": "{{critical}} നിർണായകം, {{high}} ഉയർന്നത്", + "dueThisWeek": "ഈ ആഴ്ച കാലാവധി", + "dueThisWeekDetail": "{{exploitable}} ഉപയോഗയോഗ്യമെന്ന് സ്ഥിരീകരിച്ചു", + "noDeadline": "കാലാവധിയില്ല", + "reviewSlaAssignment": "SLA നിയോഗം അവലോകനം ചെയ്യുക", + "allOpenFindingsTracked": "എല്ലാ തുറന്ന കണ്ടെത്തലുകളും ട്രാക്ക് ചെയ്തു" + }, "dismiss": { "title": "കണ്ടെത്തൽ നിരസിക്കുക", "submit": "കണ്ടെത്തൽ നിരസിക്കുക", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} വിശകലനം", "automation": "ഓട്ടോമേഷൻ", "automationAllOff": "എല്ലാം ഓഫ്", - "automationCount": "{{count}} / 3 പ്രവർത്തനക്ഷമം", + "automationCount": "{{displayCount}} / 3 പ്രവർത്തനക്ഷമം", "notifications": "അറിയിപ്പുകൾ", - "notificationsCount": "{{count}} / 2 പ്രവർത്തനക്ഷമം", + "notificationsCount": "{{displayCount}} / 2 പ്രവർത്തനക്ഷമം", "slaPolicy": "SLA നയം", "disabledNoManage": "Security Agent പ്രവർത്തനരഹിതമാണ്. ഓർഗനൈസേഷൻ ഉടമകൾക്കും ബില്ലിംഗ് മാനേജർമാർക്കും മാത്രമേ ഇത് ഓണാക്കാൻ കഴിയൂ.", "disabledNoRepo": "Security Agent പ്രവർത്തനക്ഷമമാക്കുന്നതിന് മുമ്പ് ഒരു റിപ്പോസിറ്ററിയെങ്കിലും തിരഞ്ഞെടുക്കുക.", @@ -1524,7 +1547,7 @@ "openPullRequest": "പുൾ റിക്വസ്റ്റ് തുറക്കുക{{number}}", "openDraftPullRequest": "ഡ്രാഫ്റ്റ് പുൾ റിക്വസ്റ്റ് തുറക്കുക{{number}}", "progress": "പുരോഗതി", - "attemptHistory": "ശ്രമ ചരിത്രം ({{count}})", + "attemptHistory": "ശ്രമ ചരിത്രം ({{displayCount}})", "attemptNumber": "ശ്രമം #{{number}}", "startedBy": "ആരംഭിച്ചത്", "model": "മോഡൽ", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "ടൂഡോകൾ വായിക്കുക", "updateTodos": "ടൂഡോകൾ അപ്ഡേറ്റ് ചെയ്യുക", - "linesBadge": "{{count}} വരികൾ", - "filesBadge": "{{count}} ഫയലുകൾ", - "matchesBadge": "{{count}} പൊരുത്തങ്ങൾ" + "linesBadge": "{{displayCount}} വരികൾ", + "filesBadge": "{{displayCount}} ഫയലുകൾ", + "matchesBadge": "{{displayCount}} പൊരുത്തങ്ങൾ" }, "readToolMarkdown": { "linesTruncated": "വരികൾ {{start}}–{{end}} (ട്രങ്കേറ്റ് ചെയ്തു)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ഈ പ്രതികരണം റിപ്പോർട്ട് ചെയ്യാനാവില്ല.", "reportAiResponseSubmitted": "റിപ്പോർട്ട് സമർപ്പിച്ചു. രസീത് {{receiptId}}" }, + "modelCost": { + "lessThan": "{{amount}} ൽ കുറവ്", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "വിശദാംശങ്ങൾ ലഭ്യമല്ല", "textDisplay": "ടെക്സ്റ്റ് ഡിസ്പ്ലേ", @@ -1999,7 +2026,7 @@ "preparationComplete": "തയ്യാറെടുപ്പ് പൂർത്തിയായി", "preparationFailed": "തയ്യാറെടുപ്പ് പരാജയപ്പെട്ടു", "setupCommand": "സജ്ജീകരണ കമാൻഡ് {{index}}", - "setupCommandOf": "{{count}}-ൽ സജ്ജീകരണ കമാൻഡ് {{index}}" + "setupCommandOf": "{{displayCount}}-ൽ സജ്ജീകരണ കമാൻഡ് {{index}}" }, "permissionCard": { "title": "അനുമതി ആവശ്യമാണ്", @@ -2036,7 +2063,7 @@ "submissionFailed": "സമർപ്പണം പരാജയപ്പെട്ടു. വീണ്ടും ശ്രമിക്കുക.", "questionAnnouncement": "ഏജന്റിന് നിങ്ങളുടെ ഇൻപുട്ട് ആവശ്യമാണ്. നിങ്ങൾ ഉത്തരം നൽകുന്നതുവരെ കോമ്പോസർ താൽക്കാലികമായി നിർത്തിയിരിക്കുന്നു.", "permissionAnnouncement": "തുടരാൻ ഏജന്റിന് അനുമതി ആവശ്യമാണ്. നിങ്ങൾ തീരുമാനിക്കുന്നതുവരെ കോമ്പോസർ താൽക്കാലികമായി നിർത്തിയിരിക്കുന്നു.", - "positionHint": "({{count}} എണ്ണത്തിൽ 1)", + "positionHint": "({{displayCount}} എണ്ണത്തിൽ 1)", "movedPastPrompt": "ഏജന്റ് ഈ പ്രോംപ്റ്റ് കടന്നുപോയി. സെഷൻ തുടരുമ്പോൾ ഈ കാർഡ് അടയ്ക്കും.", "waitingForAnswer": "ഏജന്റ് നിങ്ങളുടെ ഉത്തരത്തിനായി കാത്തിരിക്കുന്നു. ഈ ചോദ്യം തുറന്നിരിക്കുമ്പോൾ, ഏജന്റിനുള്ള നിങ്ങളുടെ സന്ദേശം താൽക്കാലികമായി നിർത്തിയിരിക്കുന്നു.", "waitingForPermission": "ഏജന്റ് അനുമതിക്കായി കാത്തിരിക്കുന്നു. ഈ അഭ്യർത്ഥന തുറന്നിരിക്കുമ്പോൾ, ഏജന്റിനുള്ള നിങ്ങളുടെ സന്ദേശം താൽക്കാലികമായി നിർത്തിയിരിക്കുന്നു." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "ക്യാമറ ആക്സസ് പ്രവർത്തനരഹിതമാക്കി", "cameraAccessMessage": "ഫോട്ടോ എടുക്കാൻ സെറ്റിംഗ്സിൽ ക്യാമറ ആക്സസ് അനുവദിക്കുക.", "couldNotOpenPhotoPicker": "ഫോട്ടോ പിക്കർ തുറക്കാൻ കഴിഞ്ഞില്ല. Kilo പുനരാരംഭിച്ച് വീണ്ടും ശ്രമിക്കുക.", - "maxFilesAllowed": "പരമാവധി {{count}} ഫയലുകൾ അനുവദനീയം", + "maxFilesAllowed": "പരമാവധി {{displayCount}} ഫയലുകൾ അനുവദനീയം", "onlyAddingFiles": "{{total}} ൽ {{accepted}} ഫയലുകൾ മാത്രം ചേർക്കുന്നു (പരമാവധി {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ചെലവ് {{cost}}", "costSuffix": ", ചെലവ് {{cost}}", "tokensWindowUnavailable": "സന്ദർഭം {{used}} ടോക്കണുകൾ, വിൻഡോ ലഭ്യമല്ല", - "tokensUsage": "സന്ദർഭം {{used}} / {{window}} ടോക്കണുകൾ, {{percentage}}% ഉപയോഗിച്ചു", + "tokensUsage": "സന്ദർഭം {{used}} / {{window}} ടോക്കണുകൾ, {{percentage}} ഉപയോഗിച്ചു", "title": "സന്ദർഭ ഉപയോഗം", "used": "ഉപയോഗിച്ചത്", "remaining": "ശേഷിക്കുന്നത്", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "ഉപയോഗം ഏറ്റവും പുതിയ പൂർത്തിയായ സഹായി പ്രതികരണത്തെ പ്രതിഫലിപ്പിക്കുന്നു.", "tokenUsage": "ടോക്കൺ ഉപയോഗം", "cacheRate": "കാഷെ നിരക്ക്", - "modelsCount": "മോഡലുകൾ ({{count}})", + "modelsCount": "മോഡലുകൾ ({{displayCount}})", "tokenTotalsNote": "ടോക്കൺ ആകെത്തുകകൾ ഈ സെഷൻ മാത്രം ഉൾക്കൊള്ളുന്നു, സബ്ഏജന്റ്/ചൈൽഡ്-സെഷൻ ടോക്കണുകൾ ഒഴിവാക്കുന്നു.", "subagents": "സബ്ഏജന്റുകൾ", "subagentsDescription": "ചൈൽഡ് സെഷനുകളിൽ നിന്നുള്ള ശേഷിക്കുന്ന ചെലവ്", @@ -2373,7 +2400,7 @@ "connectedCli": "കണക്റ്റ് ചെയ്ത CLI-യിൽ", "newSessionOn": "{{name}}-ൽ പുതിയ സെഷൻ", "noMatchingSessions": "പൊരുത്തപ്പെടുന്ന സെഷനുകൾ ഇല്ല.", - "onlyFirstFilesAttached": "ആദ്യത്തെ {{count}} ഫയലുകൾ മാത്രമേ അറ്റാച്ച് ചെയ്യൂ.", + "onlyFirstFilesAttached": "ആദ്യത്തെ {{displayCount}} ഫയലുകൾ മാത്രമേ അറ്റാച്ച് ചെയ്യൂ.", "staleMessage": "ഈ പങ്കിടൽ ഇനി ലഭ്യമല്ല.", "retryableMessage": "നിങ്ങളുടെ സെഷനുകൾ ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല.", "emptyMessage": "ഇതുവരെ സെഷനുകൾ ഇല്ല — ഇത് അയയ്ക്കാൻ പുതിയൊന്ന് ആരംഭിക്കുക.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "ഈ Apple അക്കൗണ്ടിലെ Kilo Pass മറ്റൊരു Kilo അക്കൗണ്ടിന്റേതാണ്. അത് നിയന്ത്രിക്കാൻ ആ Kilo അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യുക.", "alreadySubscribed": "നിങ്ങൾക്ക് ഇതിനകം ഒരു Kilo Pass സബ്സ്ക്രിപ്ഷൻ ഉണ്ട്.", "purchaseUnavailable": "Kilo Pass വാങ്ങൽ ഇപ്പോൾ ലഭ്യമല്ല.", - "tierCredits": "${{amount}} ക്രെഡിറ്റുകൾ", + "tierCredits": "{{amount}} ക്രെഡിറ്റുകൾ", "perMonth": "{{price}}/മാസം", "verifyPurchaseFailed": "നിങ്ങളുടെ വാങ്ങൽ പരിശോധിക്കാൻ കഴിഞ്ഞില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.", "productsCouldNotLoad": "App Store-ൽ നിന്ന് Kilo Pass ഉൽപ്പന്നങ്ങൾ ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store സബ്സ്ക്രിപ്ഷൻ മാനേജ്മെന്റ് തുറക്കുന്നതിൽ പരാജയപ്പെട്ടു.", "kiloPassSetup": "Kilo Pass സജ്ജീകരണം", "subscriptionHeaderDescription": "Kilo App-ലെ AI കോഡിംഗ് സെഷനുകൾ — ക്ലൗഡ് ഏജന്റുകൾ, വിദൂര സെഷനുകൾ, KiloClaw ചാറ്റുകൾ — പ്രവർത്തിപ്പിക്കുന്നതിന് നിങ്ങളുടെ Kilo ബാലൻസിലേക്ക് ക്രെഡിറ്റുകൾ ചേർക്കുന്ന ഒരു പ്രതിമാസ സബ്സ്ക്രിപ്ഷൻ.", - "tierDescription": "Kilo App ഉപയോഗത്തിനായി ${{price}} പണമടച്ച ക്രെഡിറ്റുകൾ പ്രതിമാസം ചേർക്കുന്നു.", + "tierDescription": "Kilo App ഉപയോഗത്തിനായി {{price}} പണമടച്ച ക്രെഡിറ്റുകൾ പ്രതിമാസം ചേർക്കുന്നു.", "subscribe": "സബ്സ്ക്രൈബ് ചെയ്യുക", "subscribeDescription": "ബോണസ് പുരോഗതിയോടെയുള്ള പ്രതിമാസ ക്രെഡിറ്റുകൾ", "manage": "മാനേജ് ചെയ്യുക", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass തീർപ്പാകാത്തത്", "statusCanceling": "Kilo Pass റദ്ദാക്കുന്നു", "statusPastDue": "Kilo Pass കാലഹരണപ്പെട്ടത്", - "monthlyCredits": "${{credits}} പ്രതിമാസ ക്രെഡിറ്റുകൾ", + "monthlyCredits": "{{credits}} പ്രതിമാസ ക്രെഡിറ്റുകൾ", "ends": "{{date}}-ന് അവസാനിക്കുന്നു", "periodEnd": "കാലയളവ് അവസാനം", "managedOnGooglePlay": "Google Play-യിൽ നിയന്ത്രിക്കുന്നു", diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index 67877ff792..5c4799a0f8 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}}-оос {{loaded}} мөр ачаалж байна…", "expandContext": "Контекст дэлгэх", "expandMoreContext": "Контекст дэлгэх нэмэх", - "expandLines": "{{count}} мөр дэлгэх ({{start}}–{{end}})", - "expandMoreLines": "Дэлгэх нэмэх {{count}} мөр ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} мөр контекст дэлгэх", + "expandLines": "{{displayCount}} мөр дэлгэх ({{start}}–{{end}})", + "expandMoreLines": "Дэлгэх нэмэх {{displayCount}} мөр ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} мөр контекст дэлгэх", "expandAll": "Бүгдийг дэлгэх", - "expandAllLines": "Бүх {{count}} мөрийг дэлгэх", + "expandAllLines": "Бүх {{displayCount}} мөрийг дэлгэх", "loadingMoreFiles": "Нэмэлт файлуудыг ачаалж байна…", "retryLoadingNextPage": "Дараагийн хуудсыг ачаалахыг дахин оролдох", "failedToLoadMoreFiles": "Нэмэлт файлуудыг ачаалж чадсангүй — дахин оролдохын тулд товшино уу", @@ -301,7 +301,7 @@ "closeReactions": "Реакцуудыг хаах", "reactionsTitle": "Реакцууд", "addReaction": "Реакц нэмэх", - "reactionPill": "{{emoji}} реакц, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} реакц, {{displayCount}} {{countLabel}}", "reaction_one": "реакц", "reaction": "реакцууд", "reaction_other": "реакцууд", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Энэ pull request-д тоймын thread эсвэл ярианы сэтгэгдэл байхгүй.", "reviewFiles": "Файлуудыг тоймлох", "quotedDiffSnippet": "Иш татсан diff хэсэг", - "moreLinesAbove": "… дээрх {{count}} нэмэлт мөр", + "moreLinesAbove": "… дээрх {{displayCount}} нэмэлт мөр", "termsAcceptRequired": "Нийтлэхийн тулд та Үйлчилгээний нөхцөлийг хүлээн авах ёстой.", "termsOutdatedCopy": "Үйлчилгээний нөхцөл өөрчлөгдсөн. Хамгийн сүүлийн хувилбарыг хүлээн авахын тулд энэ дэлгэцийг дахин нээгээрэй.", "termsCheckRetryCopy": "Үйлчилгээний нөхцөлийг шалгаж чадсангүй. Холболтоо шалгаад дахин оролдоно уу." @@ -395,11 +395,11 @@ "retryChecks": "Шалгалтуудыг дахин оролдох", "viewOnGitHub": "PR-ыг GitHub дээр үзэх", "noChecksReported": "Шалгалт мэдээлээгүй", - "passed": "{{count}} өнгөрсөн", - "failed": "{{count}} амжилтгүй", - "pending": "{{count}} хүлээгдэж байна", - "skipped": "{{count}} алгассан", - "checksCount": "{{count}} шалгалт", + "passed": "{{displayCount}} өнгөрсөн", + "failed": "{{displayCount}} амжилтгүй", + "pending": "{{displayCount}} хүлээгдэж байна", + "skipped": "{{displayCount}} алгассан", + "checksCount": "{{displayCount}} шалгалт", "checkDetails": "шалгалтын дэлгэрэнгүй", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "хүлээгдэж буй сэтгэгдэл", "pendingComment": "хүлээгдэж буй сэтгэгдлүүд", "pendingComment_other": "хүлээгдэж буй сэтгэгдлүүд", - "submitCountOfTotal": "{{totalCount}} сэтгэгдлээс {{freshCount}} илгээх", + "submitCountOfTotal": "{{displayTotalCount}} сэтгэгдлээс {{displayFreshCount}} илгээх", "submitReview": "Тойм илгээх", - "partialPostedMessage": "{{freshCount}} сэтгэгдэл илгээгдсэн. {{staleCount}} сэтгэгдэл хуучин commit-ыг зааж, таны жагсаалтад үлдсэн." + "partialPostedMessage": "{{displayFreshCount}} сэтгэгдэл илгээгдсэн. {{displayStaleCount}} сэтгэгдэл хуучин commit-ыг зааж, таны жагсаалтад үлдсэн." }, "reconnectNotice": { "title": "GitHub холболт дууссан", @@ -580,7 +580,8 @@ "agents": "Агентууд", "profile": "Профайл", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, таб, нийт {{total}} -ийн {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Сүүлийн үеийн", "common": "Энгийн", "reactWith": "{{reaction}}-ээр реакц өгөх", - "accessibility": "{{emoji}} реакц, {{count}}" + "accessibility": "{{emoji}} реакц, {{displayCount}}" }, "composer": { "replyingTo": "Хариулж байна", @@ -650,7 +651,7 @@ "imageUnavailable": "Зураг боломжгүй", "openFailed": "Хавсралтыг нээж чадсангүй. Холболтоо шалгаад дахин оролдоно уу.", "attachFailed": "Файл хавсаргах боломжгүй", - "limit": "Та {{count}} хүртэл файл хавсаргах боломжтой.", + "limit": "Та {{displayCount}} хүртэл файл хавсаргах боломжтой.", "sizeRejection": "{{filename}} нь {{limit}} хавсралтын хязгаараас хэтэрсэн.", "unreadable": "{{filename}}-ыг унших боломжгүй.", "pastedImage": "буулгасан зураг", @@ -722,6 +723,7 @@ "finalTermEnds": "Эцсийн хугацаа дуусна", "afterFinalTerm": "Эцсийн хугацааны дараа", "remaining": "Үлдсэн", + "lessThanOneDay": "1 хоногоос бага", "ends": "Дуусна", "expires": "Дуусна", "noActivePlan": "Идэвхтэй төлөвлөгөө байхгүй", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "таны Стандарт сарын үнэ", "perMonth": "/сар", "earlybirdAccessUntil": "{{date}} хүртэлх эрт шувуу хандалт", - "earlybirdEnding": "Эрт шувуу дуусна: {{days}} хоног үлдсэн", + "earlybirdEnding": "Эрт шувуу дуусна: {{remaining}}", "paymentPastDue": "Төлбөр хугацаа хэтэрсэн. Төлбөрийн аргаа шинэчлээрэй.", "subscriptionCancels": "Захиалга {{date}} өдөр цуцлагдана", - "trialDaysRemaining": "Туршилт: {{days}} хоног үлдсэн", - "trialEndingSoon": "Туршилт удахгүй дуусна: {{days}}" + "trialDaysRemaining": "Туршилт: {{remaining}}", + "trialEndingSoon": "Туршилт удахгүй дуусна: {{remaining}}" }, "changelog": { "title": "Шинэ юу байна", @@ -996,7 +998,7 @@ "stalledTitle": "Ямар нэгэн зүйл зогссон", "stalledBody": "Бид {{name}}-г тохируулж чадсангүй. Дахин оролдоорой, эсвэл энэ давтагдвал hi@kilo.ai хаяг руу имэйл илгээнэ үү.", "timeoutTitle": "Хүлээгдэж байснаас удаан байна", - "timeoutBody": "{{name}}-ийн тохиргоо ердийнхөөс удаан байна ({{minutes}} минутаас илүү).", + "timeoutBody": "{{name}}-ийн тохиргоо ердийнхөөс удаан байна ({{displayMinutes}} минутаас илүү).", "continueInBackground": "Дэвсгэр дээр үргэлжлүүлэх", "settingUp": "{{name}}-г тохируулж байна", "finishingSetup": "Тохиргоо дуусгаж байна", @@ -1287,7 +1289,7 @@ "mergeGate": "Нэгтгэх хаалт", "repositories": "Репозиторууд", "allRepositories": "Бүх репозиторууд", - "nSelected": "{{count}} сонгогдсон", + "nSelected": "{{displayCount}} сонгогдсон", "reviewMemory": "Шалгалтын санах ой", "proposedReviewMdGuidance": "Санал болгосон REVIEW.md зөвлөмж" }, @@ -1391,14 +1393,14 @@ "analyzed": "Дүн шинжилгээ хийгдсэн", "exploitabilityReasoning": "Ашиглах боломжийн үндэслэл", "suggestedFix": "Санал болгосон засвар", - "whereFound": "Энэ хаана олдсон ({{count}})", + "whereFound": "Энэ хаана олдсон ({{displayCount}})", "fullReport": "Үүсгэсэн бүрэн тайлан", "unknown": "Тодорхойгүй", "yes": "Тийм", "no": "Үгүй" }, "dashboard": { - "findingsCount": "{{count}} олдвор", + "findingsCount": "{{displayCount}} олдвор", "notMeasured": "Хэмжигдээгүй", "actFirst": "Эхлээд үйлдэл хийх", "slaPosture": "SLA байдал", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Репозиторийн үйлдлийн төлөвлөгөө", "noOpenFindings": "Анхаарал шаардсан нээлттэй олдвор байхгүй", "deadlineToday": "Өнөөдөр эцсийн хугацаа хүрсэн", - "daysOverdue": "{{count}} хоног хоцорсон", + "daysOverdue": "{{displayCount}} хоног хоцорсон", "withinDeadline": "Эцсийн хугацаа дотор", "criticalOverdue": "Чухал хугацаа хэтэрсэн", "highOverdue": "Өндөр хугацаа хэтэрсэн", @@ -1435,6 +1437,27 @@ "syncQueued": "Синк дараалалд орсон", "syncStatusUnavailable": "Синк байдал боломжгүй" }, + "dashboardMetrics": { + "openFindings": "Нээлттэй дүгнэлтүүд", + "openFindingsDetail": "{{critical}} шүүмжлэлтэй, {{high}} өндөр", + "confirmedExploitable": "Ашиглах боломжтой гэж баталгаажсан", + "confirmedExploitableDetail": "Төслийн эрсдэлийг шинжилгээгээр баталгаажуулсан", + "needsReview": "Таны хяналт шаардлагатай", + "needsReviewDetail": "Хүний шийдвэр шаардлагатай", + "analysisIncomplete": "Шинжилгээ дуусаагүй", + "analysisIncompleteDetail": "Төслийн эрсдэл тодорхойгүй хэвээр байна", + "slaCompliance": "SLA нийцэл", + "notMeasured": "Хэмжигдээгүй", + "withinDeadlineDetail": "{{total}} -ийн {{within}} нь хугацаанд багтсан", + "noDeadlineData": "Дүгнэлтүүдэд хараахан SLA хугацаа байхгүй", + "deadlinePassed": "Хугацаа дууссан", + "deadlinePassedDetail": "{{critical}} шүүмжлэлтэй, {{high}} өндөр", + "dueThisWeek": "Энэ долоо хоногт дуусах", + "dueThisWeekDetail": "{{exploitable}} ашиглах боломжтой гэж баталгаажсан", + "noDeadline": "Хугацаагүй", + "reviewSlaAssignment": "SLA даалгаврыг хянах", + "allOpenFindingsTracked": "Бүх нээлттэй дүгнэлтийг хянаж байна" + }, "dismiss": { "title": "Олдворыг хасах", "submit": "Олдворыг хасах", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} дүн шинжилгээ", "automation": "Автоматжуулалт", "automationAllOff": "Бүгд унтарсан", - "automationCount": "{{count}} нь 3-аас идэвхжүүлсэн", + "automationCount": "{{displayCount}} нь 3-аас идэвхжүүлсэн", "notifications": "Мэдэгдэлүүд", - "notificationsCount": "{{count}} нь 2-оос идэвхжүүлсэн", + "notificationsCount": "{{displayCount}} нь 2-оос идэвхжүүлсэн", "slaPolicy": "SLA бодлого", "disabledNoManage": "Security Agent идэвхгүй болсон. Зөвхөн байгууллагын эзэд болон төлбөрийн менежерүүд үүнийг асаах боломжтой.", "disabledNoRepo": "Security Agent-ийг идэвхжүүлэхээс өмнө дор хаяж нэг репозитори сонгоно уу.", @@ -1524,7 +1547,7 @@ "openPullRequest": "pull request нээх{{number}}", "openDraftPullRequest": "draft pull request нээх{{number}}", "progress": "Явц", - "attemptHistory": "Оролдлогын түүх ({{count}})", + "attemptHistory": "Оролдлогын түүх ({{displayCount}})", "attemptNumber": "Оролдлого #{{number}}", "startedBy": "Эхлүүлсэн", "model": "Модель", @@ -1855,9 +1878,9 @@ "toolTask": "даалгавар", "readTodos": "Todos унших", "updateTodos": "Todos шинэчлэх", - "linesBadge": "{{count}} мөр", - "filesBadge": "{{count}} файл", - "matchesBadge": "{{count}} таарц" + "linesBadge": "{{displayCount}} мөр", + "filesBadge": "{{displayCount}} файл", + "matchesBadge": "{{displayCount}} таарц" }, "readToolMarkdown": { "linesTruncated": "{{start}}–{{end}} мөр (таслагдсан)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Энэ хариуг мэдээлэх боломжгүй.", "reportAiResponseSubmitted": "Мэдээлэл илгээгдсэн. Баримт {{receiptId}}" }, + "modelCost": { + "lessThan": "{{amount}} -аас бага", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Мэдээлэл боломжгүй", "textDisplay": "Текстийн дэлгэц", @@ -1999,7 +2026,7 @@ "preparationComplete": "Бэлтгэл дууссан", "preparationFailed": "Бэлтгэл амжилтгүй болсон", "setupCommand": "Тохиргооны команд {{index}}", - "setupCommandOf": "{{count}}-ийн {{index}} тохиргооны команд" + "setupCommandOf": "{{displayCount}}-ийн {{index}} тохиргооны команд" }, "permissionCard": { "title": "Зөвшөөрөл шаардлагатай", @@ -2036,7 +2063,7 @@ "submissionFailed": "Илгээлт амжилтгүй боллоо. Дахин оролдоно уу.", "questionAnnouncement": "Агент таны оролцоог хүсч байна. Та хариулах хүртэл зохиогч түр зогсоно.", "permissionAnnouncement": "Агент үргэлжлүүлэхийн тулд зөвшөөрөл хүсч байна. Та шийдэх хүртэл зохиогч түр зогсоно.", - "positionHint": "({{count}}-ийн 1)", + "positionHint": "({{displayCount}}-ийн 1)", "movedPastPrompt": "Агент энэ санал хүсэлтийг өнгөрөөсөн. Сессийг үргэлжлүүлэхэд энэ карт хаагдана.", "waitingForAnswer": "Агент таны хариуг хүлээж байна. Энэ асуулт нээлттэй байхад таны агент руу илгээсэн мэдээлэл түр зогсоно.", "waitingForPermission": "Агент зөвшөөрлийг хүлээж байна. Энэ хүсэлт нээлттэй байхад таны агент руу илгээсэн мэдээлэл түр зогсоно." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Камерын хандалт идэвхгүй", "cameraAccessMessage": "Зураг авахын тулд Тохиргоонд камерын хандалтыг зөвшөөрнө үү.", "couldNotOpenPhotoPicker": "Зураг сонгогчийг нээж чадсангүй. Kilo-г дахин эхлүүлээд дахин оролдоно уу.", - "maxFilesAllowed": "Хамгийн ихдээ {{count}} файл зөвшөөрөгдөнө", + "maxFilesAllowed": "Хамгийн ихдээ {{displayCount}} файл зөвшөөрөгдөнө", "onlyAddingFiles": "Зөвхөн {{total}} файлын {{accepted}}-г нэмж байна (хамгийн их {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "зардал {{cost}}", "costSuffix": ", зардал {{cost}}", "tokensWindowUnavailable": "Контекст {{used}} токен, цонх боломжгүй", - "tokensUsage": "Контекст {{window}} токены {{used}}, {{percentage}}% ашиглагдсан", + "tokensUsage": "Контекст {{window}} токены {{used}}, {{percentage}} ашиглагдсан", "title": "Контекст ашиглалт", "used": "Ашигласан", "remaining": "Үлдсэн", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Ашиглалт нь хамгийн сүүлийн гүйцэтгэсэн туслах хариултыг илэрхийлнэ.", "tokenUsage": "Токен ашиглалт", "cacheRate": "Кэш хувь", - "modelsCount": "Загварууд ({{count}})", + "modelsCount": "Загварууд ({{displayCount}})", "tokenTotalsNote": "Токений нийт дүн зөвхөн энэ сессийг хамарч, дэд агент/дэд сессийн токенийг оруулахгүй.", "subagents": "Дэд агентүүд", "subagentsDescription": "Дэд сессийн үлдэгдэл зардал", @@ -2373,7 +2400,7 @@ "connectedCli": "Холбогдсон CLI дээр", "newSessionOn": "{{name}} дээр шинэ сесси", "noMatchingSessions": "Тохирох сесси алга.", - "onlyFirstFilesAttached": "Зөвхөн эхний {{count}} файл хавсаргагдана.", + "onlyFirstFilesAttached": "Зөвхөн эхний {{displayCount}} файл хавсаргагдана.", "staleMessage": "Энэ хуваалцал цаашид боломжгүй.", "retryableMessage": "Сессийгээ ачаалж чадсангүй.", "emptyMessage": "Сесси хараахан алга — үүнийг илгээхийн тулд шинээр эхлүүлнэ үү.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Энэ Apple Account дээрх Kilo Pass нь өөр Kilo бүртгэлд харьяалагдана. Удирдахын тулд тухайн Kilo бүртгэлдээ нэвтэрнэ үү.", "alreadySubscribed": "Танд Kilo Pass захиалга аль хэдийн бий.", "purchaseUnavailable": "Kilo Pass худалдан авалт яг одоо боломжгүй.", - "tierCredits": "${{amount}} кредит", + "tierCredits": "{{amount}} кредит", "perMonth": "{{price}}/сар", "verifyPurchaseFailed": "Худалдан авалтаа баталгаажуулж чадсангүй. Холболтоо шалгаад дахин оролдоно уу.", "productsCouldNotLoad": "Kilo Pass бүтээгдэхүүнийг App Store-оос ачааллах боломжгүй.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store захиалгын удирдлагыг нээж чадсангүй.", "kiloPassSetup": "Kilo Pass тохиргоо", "subscriptionHeaderDescription": "Kilo App-д — Cloud Agents, алсын сессий, KiloClaw чатууд — AI кодчилолын сессий ажиллуулахын тулд таны Kilo үлдэгдэлд кредит нэмдэг сарын захиалга.", - "tierDescription": "Kilo App ашиглалтад ${{price}} төлсөн кредитийг сар бүр нэмдэг.", + "tierDescription": "Kilo App ашиглалтад {{price}} төлсөн кредитийг сар бүр нэмдэг.", "subscribe": "Захиалах", "subscribeDescription": "Урамшууллын дэвшлээр сарын кредит", "manage": "Удирдах", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass хүлээгдэж байна", "statusCanceling": "Kilo Pass цуцлагдаж байна", "statusPastDue": "Kilo Pass хугацаа хэтэрсэн", - "monthlyCredits": "${{credits}} сарын кредит", + "monthlyCredits": "{{credits}} сарын кредит", "ends": "Дуусах хугацаа {{date}}", "periodEnd": "хугацааны төгсгөл", "managedOnGooglePlay": "Google Play дээр удирдагддаг", diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index e4e7fad230..beb4aaff1f 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} पैकी {{loaded}} ओळी लोड होत आहेत…", "expandContext": "संदर्भ विस्तृत करा", "expandMoreContext": "अधिक संदर्भ विस्तृत करा", - "expandLines": "{{count}} ओळी विस्तृत करा ({{start}}–{{end}})", - "expandMoreLines": "आणखी {{count}} ओळी विस्तृत करा ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} ओळी संदर्भ विस्तृत करा", + "expandLines": "{{displayCount}} ओळी विस्तृत करा ({{start}}–{{end}})", + "expandMoreLines": "आणखी {{displayCount}} ओळी विस्तृत करा ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} ओळी संदर्भ विस्तृत करा", "expandAll": "सर्व विस्तृत करा", - "expandAllLines": "सर्व {{count}} ओळी विस्तृत करा", + "expandAllLines": "सर्व {{displayCount}} ओळी विस्तृत करा", "loadingMoreFiles": "अधिक फाइल्स लोड होत आहेत…", "retryLoadingNextPage": "पुढील पृष्ठ लोड करण्याचा पुन्हा प्रयत्न करा", "failedToLoadMoreFiles": "अधिक फाइल्स लोड करण्यात अयशस्वी — पुन्हा प्रयत्न करण्यासाठी टॅप करा", @@ -301,7 +301,7 @@ "closeReactions": "प्रतिक्रिया बंद करा", "reactionsTitle": "प्रतिक्रिया", "addReaction": "प्रतिक्रिया जोडा", - "reactionPill": "{{emoji}} प्रतिक्रिया, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} प्रतिक्रिया, {{displayCount}} {{countLabel}}", "reaction_one": "प्रतिक्रिया", "reaction": "प्रतिक्रिया", "reaction_other": "प्रतिक्रिया", @@ -353,7 +353,7 @@ "noDiscussionDescription": "या पुल रिक्वेस्टवर पुनरावलोकन धागे किंवा संभाषण टिप्पण्या नाहीत.", "reviewFiles": "फाइल्सचे पुनरावलोकन करा", "quotedDiffSnippet": "उद्धृत diff स्निपेट", - "moreLinesAbove": "… वर आणखी {{count}} ओळी", + "moreLinesAbove": "… वर आणखी {{displayCount}} ओळी", "termsAcceptRequired": "पोस्ट करण्यासाठी तुम्ही सेवा अटी स्वीकारणे आवश्यक आहे.", "termsOutdatedCopy": "सेवा अटी बदलल्या आहेत. नवीनतम आवृत्ती स्वीकारण्यासाठी ही स्क्रीन पुन्हा उघडा.", "termsCheckRetryCopy": "सेवा अटी तपासता आल्या नाहीत. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा." @@ -395,11 +395,11 @@ "retryChecks": "चेक्सचा पुन्हा प्रयत्न करा", "viewOnGitHub": "GitHub वर PR पहा", "noChecksReported": "कोणतेही चेक नोंदवले नाहीत", - "passed": "{{count}} पास", - "failed": "{{count}} अयशस्वी", - "pending": "{{count}} प्रलंबित", - "skipped": "{{count}} वगळले", - "checksCount": "{{count}} चेक्स", + "passed": "{{displayCount}} पास", + "failed": "{{displayCount}} अयशस्वी", + "pending": "{{displayCount}} प्रलंबित", + "skipped": "{{displayCount}} वगळले", + "checksCount": "{{displayCount}} चेक्स", "checkDetails": "चेक तपशील", "pullRequest": "पुल रिक्वेस्ट" }, @@ -459,9 +459,9 @@ "pendingComment_one": "प्रलंबित टिप्पणी", "pendingComment": "प्रलंबित टिप्पण्या", "pendingComment_other": "प्रलंबित टिप्पण्या", - "submitCountOfTotal": "{{totalCount}} पैकी {{freshCount}} टिप्पण्या सादर करा", + "submitCountOfTotal": "{{displayTotalCount}} पैकी {{displayFreshCount}} टिप्पण्या सादर करा", "submitReview": "पुनरावलोकन सादर करा", - "partialPostedMessage": "{{freshCount}} टिप्पण्या पोस्ट केल्या. {{staleCount}} टिप्पण्या जुन्या कमिटकडे निर्देश करतात आणि तुमच्या रांगेत राहिल्या." + "partialPostedMessage": "{{displayFreshCount}} टिप्पण्या पोस्ट केल्या. {{displayStaleCount}} टिप्पण्या जुन्या कमिटकडे निर्देश करतात आणि तुमच्या रांगेत राहिल्या." }, "reconnectNotice": { "title": "GitHub कनेक्शन कालबाह्य झाले", @@ -580,7 +580,8 @@ "agents": "एजंट", "profile": "प्रोफाइल", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, टॅब, एकूण {{total}} पैकी {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "अलीकडील", "common": "सामान्य", "reactWith": "{{reaction}} सह प्रतिक्रिया द्या", - "accessibility": "{{emoji}} प्रतिक्रिया, {{count}}" + "accessibility": "{{emoji}} प्रतिक्रिया, {{displayCount}}" }, "composer": { "replyingTo": "याला उत्तर देत आहे", @@ -650,7 +651,7 @@ "imageUnavailable": "प्रतिमा अनुपलब्ध", "openFailed": "संलग्नता उघडता आली नाही. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.", "attachFailed": "फाइल संलग्न करण्यात अयशस्वी", - "limit": "तुम्ही {{count}} पर्यंत फाइल्स संलग्न करू शकता.", + "limit": "तुम्ही {{displayCount}} पर्यंत फाइल्स संलग्न करू शकता.", "sizeRejection": "{{filename}} ही {{limit}} संलग्नता मर्यादेपेक्षा जास्त आहे.", "unreadable": "{{filename}} वाचता आले नाही.", "pastedImage": "पेस्ट केलेली प्रतिमा", @@ -722,6 +723,7 @@ "finalTermEnds": "अंतिम मुदत संपते", "afterFinalTerm": "अंतिम मुदतीनंतर", "remaining": "उर्वरित", + "lessThanOneDay": "1 दिवसापेक्षा कमी", "ends": "संपते", "expires": "कालबाह्य होते", "noActivePlan": "कोणतीही सक्रिय योजना नाही", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "तुमची स्टँडर्ड मासिक किंमत", "perMonth": "/महिना", "earlybirdAccessUntil": "{{date}} पर्यंत अर्लीबर्ड प्रवेश", - "earlybirdEnding": "अर्लीबर्ड संपत आहे: {{days}} दिवस शिल्लक", + "earlybirdEnding": "अर्लीबर्ड संपत आहे: {{remaining}}", "paymentPastDue": "पेमेंट थकीत आहे. कृपया तुमची पेमेंट पद्धत अद्यतनित करा.", "subscriptionCancels": "सदस्यत्व {{date}} रोजी रद्द होते", - "trialDaysRemaining": "ट्रायल: {{days}} दिवस उरले", - "trialEndingSoon": "ट्रायल लवकर संपत आहे: {{days}}" + "trialDaysRemaining": "ट्रायल: {{remaining}}", + "trialEndingSoon": "ट्रायल लवकर संपत आहे: {{remaining}}" }, "changelog": { "title": "नवीन काय आहे", @@ -996,7 +998,7 @@ "stalledTitle": "काहीतरी अडकले", "stalledBody": "आम्ही {{name}} सेट करणे पूर्ण करू शकलो नाही. पुन्हा प्रयत्न करा, किंवा हे वारंवार घडत असल्यास hi@kilo.ai वर ईमेल करा.", "timeoutTitle": "अपेक्षेपेक्षा जास्त वेळ लागत आहे", - "timeoutBody": "{{name}} चा सेटअप नेहमीपेक्षा जास्त वेळ घेत आहे ({{minutes}} मिनिटांहून अधिक).", + "timeoutBody": "{{name}} चा सेटअप नेहमीपेक्षा जास्त वेळ घेत आहे ({{displayMinutes}} मिनिटांहून अधिक).", "continueInBackground": "पार्श्वभूमीत सुरू ठेवा", "settingUp": "{{name}} सेट अप होत आहे", "finishingSetup": "सेटअप पूर्ण करत आहे", @@ -1287,7 +1289,7 @@ "mergeGate": "मर्ज गेट", "repositories": "रिपॉझिटरीज", "allRepositories": "सर्व रिपॉझिटरीज", - "nSelected": "{{count}} निवडले", + "nSelected": "{{displayCount}} निवडले", "reviewMemory": "पुनरावलोकन मेमरी", "proposedReviewMdGuidance": "प्रस्तावित REVIEW.md मार्गदर्शन" }, @@ -1391,14 +1393,14 @@ "analyzed": "विश्लेषित", "exploitabilityReasoning": "शोषणक्षमता तर्क", "suggestedFix": "सुचवलेले निराकरण", - "whereFound": "हे कोठे सापडले ({{count}})", + "whereFound": "हे कोठे सापडले ({{displayCount}})", "fullReport": "पूर्ण निर्मित अहवाल", "unknown": "अज्ञात", "yes": "होय", "no": "नाही" }, "dashboard": { - "findingsCount": "{{count}} शोध", + "findingsCount": "{{displayCount}} शोध", "notMeasured": "मोजलेले नाही", "actFirst": "आधी कृती करा", "slaPosture": "SLA स्थिती", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "भांडार कृती योजना", "noOpenFindings": "लक्ष देण्यासारखे खुले शोध नाहीत", "deadlineToday": "मुदत आज संपली", - "daysOverdue": "{{count}} दिवस उशीर", + "daysOverdue": "{{displayCount}} दिवस उशीर", "withinDeadline": "मुदतीत", "criticalOverdue": "गंभीर उशीर", "highOverdue": "उच्च उशीर", @@ -1435,6 +1437,27 @@ "syncQueued": "समक्रमण रांगेत", "syncStatusUnavailable": "समक्रमण स्थिती अनुपलब्ध" }, + "dashboardMetrics": { + "openFindings": "खुल्या निष्कर्ष", + "openFindingsDetail": "{{critical}} गंभीर, {{high}} उच्च", + "confirmedExploitable": "शोषणयोग्य असल्याची पुष्टी", + "confirmedExploitableDetail": "विश्लेषणाने प्रकल्पाचा धोका पुष्टी केला", + "needsReview": "तुमचे पुनरावलोकन आवश्यक", + "needsReviewDetail": "मानवी निर्णय आवश्यक", + "analysisIncomplete": "विश्लेषण पूर्ण नाही", + "analysisIncompleteDetail": "प्रकल्पाचा धोका अजून अज्ञात आहे", + "slaCompliance": "SLA अनुपालन", + "notMeasured": "मोजले नाही", + "withinDeadlineDetail": "{{total}} पैकी {{within}} मुदतीत", + "noDeadlineData": "कोणत्याही निष्कर्षाला अजून SLA मुदत नाही", + "deadlinePassed": "मुदत संपली", + "deadlinePassedDetail": "{{critical}} गंभीर, {{high}} उच्च", + "dueThisWeek": "या आठवड्यात मुदत", + "dueThisWeekDetail": "{{exploitable}} शोषणयोग्य असल्याची पुष्टी", + "noDeadline": "मुदत नाही", + "reviewSlaAssignment": "SLA नियुक्तीचे पुनरावलोकन करा", + "allOpenFindingsTracked": "सर्व खुले निष्कर्ष ट्रॅक केले" + }, "dismiss": { "title": "शोध रद्द करा", "submit": "शोध रद्द करा", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} विश्लेषण", "automation": "स्वयंचलन", "automationAllOff": "सर्व बंद", - "automationCount": "{{count}} पैकी 3 सक्षम", + "automationCount": "{{displayCount}} पैकी 3 सक्षम", "notifications": "सूचना", - "notificationsCount": "{{count}} पैकी 2 सक्षम", + "notificationsCount": "{{displayCount}} पैकी 2 सक्षम", "slaPolicy": "SLA धोरण", "disabledNoManage": "सुरक्षा एजंट अक्षम आहे. केवळ संस्थेचे मालक आणि बिलिंग व्यवस्थापक ते चालू करू शकतात.", "disabledNoRepo": "सुरक्षा एजंट सक्षम करण्यापूर्वी किमान एक भांडार निवडा.", @@ -1524,7 +1547,7 @@ "openPullRequest": "pull request उघडा{{number}}", "openDraftPullRequest": "mसुदा pull request उघडा{{number}}", "progress": "प्रगती", - "attemptHistory": "प्रयत्न इतिहास ({{count}})", + "attemptHistory": "प्रयत्न इतिहास ({{displayCount}})", "attemptNumber": "प्रयत्न #{{number}}", "startedBy": "यांनी सुरू केले", "model": "मॉडेल", @@ -1855,9 +1878,9 @@ "toolTask": "कार्य", "readTodos": "करावयाच्या गोष्टी वाचा", "updateTodos": "करावयाच्या गोष्टी अद्ययावत करा", - "linesBadge": "{{count}} ओळी", - "filesBadge": "{{count}} फाइल्स", - "matchesBadge": "{{count}} जुळण्या" + "linesBadge": "{{displayCount}} ओळी", + "filesBadge": "{{displayCount}} फाइल्स", + "matchesBadge": "{{displayCount}} जुळण्या" }, "readToolMarkdown": { "linesTruncated": "ओळी {{start}}–{{end}} (छाटलेल्या)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "हा प्रतिसाद नोंदवता येत नाही.", "reportAiResponseSubmitted": "नोंदणी सादर केली. पावती {{receiptId}}" }, + "modelCost": { + "lessThan": "{{amount}} पेक्षा कमी", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "तपशील अनुपलब्ध", "textDisplay": "मजकूर प्रदर्शन", @@ -1999,7 +2026,7 @@ "preparationComplete": "तयारी पूर्ण", "preparationFailed": "तयारी अयशस्वी", "setupCommand": "सेटअप कमांड {{index}}", - "setupCommandOf": "सेटअप कमांड {{index}} पैकी {{count}}" + "setupCommandOf": "सेटअप कमांड {{index}} पैकी {{displayCount}}" }, "permissionCard": { "title": "परवानगी आवश्यक", @@ -2036,7 +2063,7 @@ "submissionFailed": "सादर करणे अयशस्वी. कृपया पुन्हा प्रयत्न करा.", "questionAnnouncement": "एजंटला तुमच्या इनपुटची गरज आहे. तुम्ही उत्तर देत असताना कंपोझर थांबलेला आहे.", "permissionAnnouncement": "पुढे जाण्यासाठी एजंटला परवानगीची गरज आहे. तुम्ही निर्णय घेत असताना कंपोझर थांबलेला आहे.", - "positionHint": "({{count}} पैकी 1)", + "positionHint": "({{displayCount}} पैकी 1)", "movedPastPrompt": "एजंट या प्रॉम्प्टच्या पुढे गेला आहे. सत्र सुरू झाल्यावर हे कार्ड बंद होईल.", "waitingForAnswer": "एजंट तुमच्या उत्तराची वाट पाहत आहे. हा प्रश्न उघडा असताना, एजंटला तुमचा संदेश थांबलेला आहे.", "waitingForPermission": "एजंट परवानगीची वाट पाहत आहे. ही विनंती उघडी असताना, एजंटला तुमचा संदेश थांबलेला आहे." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "कॅमेरा प्रवेश अक्षम", "cameraAccessMessage": "फोटो घेण्यासाठी सेटिंग्जमध्ये कॅमेरा प्रवेशाची परवानगी द्या.", "couldNotOpenPhotoPicker": "फोटो पिकर उघडता आला नाही. Kilo रीस्टार्ट करून पुन्हा प्रयत्न करा.", - "maxFilesAllowed": "कमाल {{count}} फाइल्स परवानगी", + "maxFilesAllowed": "कमाल {{displayCount}} फाइल्स परवानगी", "onlyAddingFiles": "{{total}} पैकी फक्त {{accepted}} फाइल्स जोडत आहोत (कमाल {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "खर्च {{cost}}", "costSuffix": ", खर्च {{cost}}", "tokensWindowUnavailable": "संदर्भ {{used}} टोकन्स, विंडो अनुपलब्ध", - "tokensUsage": "संदर्भ {{window}} टोकन्सपैकी {{used}}, {{percentage}}% वापरले", + "tokensUsage": "संदर्भ {{window}} टोकन्सपैकी {{used}}, {{percentage}} वापरले", "title": "संदर्भ वापर", "used": "वापरलेले", "remaining": "शिल्लक", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "वापर शेवटचा पूर्ण झालेला सहाय्यक प्रतिसाद दर्शवतो.", "tokenUsage": "टोकन वापर", "cacheRate": "कॅश दर", - "modelsCount": "मॉडेल्स ({{count}})", + "modelsCount": "मॉडेल्स ({{displayCount}})", "tokenTotalsNote": "टोकन एकूण फक्त या सत्रासाठी आहे आणि सबएजंट/चाइल्ड-सेशन टोकन्स वगळतात.", "subagents": "सबएजंट्स", "subagentsDescription": "चाइल्ड सत्रांमधून उर्वरित खर्च", @@ -2373,7 +2400,7 @@ "connectedCli": "कनेक्टेड CLI वर", "newSessionOn": "{{name}} वर नवीन सत्र", "noMatchingSessions": "जुळणारी सत्रे नाहीत.", - "onlyFirstFilesAttached": "फक्त पहिल्या {{count}} फाइल्स संलग्न केल्या जातील.", + "onlyFirstFilesAttached": "फक्त पहिल्या {{displayCount}} फाइल्स संलग्न केल्या जातील.", "staleMessage": "हा शेअर यापुढे उपलब्ध नाही.", "retryableMessage": "तुमची सत्रे लोड करता आली नाहीत.", "emptyMessage": "अजून सत्रे नाहीत — हे पाठवण्यासाठी नवीन सुरू करा.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "या Apple खात्यावरील Kilo Pass वेगळ्या Kilo खात्याशी संबंधित आहे. ते व्यवस्थापित करण्यासाठी त्या Kilo खात्यात साइन इन करा.", "alreadySubscribed": "तुमच्याकडे आधीच Kilo Pass सदस्यत्व आहे.", "purchaseUnavailable": "Kilo Pass खरेदी सध्या उपलब्ध नाही.", - "tierCredits": "क्रेडिट्समध्ये ${{amount}}", + "tierCredits": "क्रेडिट्समध्ये {{amount}}", "perMonth": "{{price}}/महिना", "verifyPurchaseFailed": "तुमची खरेदी सत्यापित करता आली नाही. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.", "productsCouldNotLoad": "App Store मधून Kilo Pass उत्पादने लोड करता आली नाहीत.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store सदस्यत्व व्यवस्थापन उघडता आले नाही.", "kiloPassSetup": "Kilo Pass सेटअप", "subscriptionHeaderDescription": "मासिक सदस्यत्व जे Kilo App मध्ये AI कोडिंग सत्रे चालवण्यासाठी तुमच्या Kilo शिल्लकीमध्ये क्रेडिट्स जोडते — Cloud एजंट्स, रिमोट सत्रे आणि KiloClaw चॅट्स.", - "tierDescription": "Kilo App वापरासाठी मासिक जोडलेले ${{price}} पैसे दिलेले क्रेडिट्स.", + "tierDescription": "Kilo App वापरासाठी मासिक जोडलेले {{price}} पैसे दिलेले क्रेडिट्स.", "subscribe": "सदस्यत्व घ्या", "subscribeDescription": "बोनस प्रगतीसह मासिक क्रेडिट्स", "manage": "व्यवस्थापित करा", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass प्रलंबित", "statusCanceling": "Kilo Pass रद्द होत आहे", "statusPastDue": "Kilo Pass कालबाह्य देय", - "monthlyCredits": "${{credits}} मासिक क्रेडिट्स", + "monthlyCredits": "{{credits}} मासिक क्रेडिट्स", "ends": "{{date}} रोजी संपते", "periodEnd": "कालावधी समाप्ती", "managedOnGooglePlay": "Google Play वर व्यवस्थापित", diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index 0e9fe570d3..9135ae025d 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -206,11 +206,11 @@ "loadingLines": "Memuatkan {{loaded}} daripada {{total}} baris…", "expandContext": "Kembangkan konteks", "expandMoreContext": "Kembangkan lebih banyak konteks", - "expandLines": "Kembangkan {{count}} baris ({{start}}–{{end}})", - "expandMoreLines": "Kembangkan lagi {{count}} baris ({{start}}–{{end}})", - "expandLinesOfContext": "Kembangkan {{count}} baris konteks", + "expandLines": "Kembangkan {{displayCount}} baris ({{start}}–{{end}})", + "expandMoreLines": "Kembangkan lagi {{displayCount}} baris ({{start}}–{{end}})", + "expandLinesOfContext": "Kembangkan {{displayCount}} baris konteks", "expandAll": "Kembangkan semua", - "expandAllLines": "Kembangkan semua {{count}} baris", + "expandAllLines": "Kembangkan semua {{displayCount}} baris", "loadingMoreFiles": "Memuatkan lebih banyak fail…", "retryLoadingNextPage": "Cuba memuatkan halaman seterusnya semula", "failedToLoadMoreFiles": "Gagal memuatkan lebih banyak fail — ketik untuk mencuba semula", @@ -301,7 +301,7 @@ "closeReactions": "Tutup tindak balas", "reactionsTitle": "Tindak balas", "addReaction": "Tambah tindak balas", - "reactionPill": "{{emoji}} tindak balas, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} tindak balas, {{displayCount}} {{countLabel}}", "reaction_one": "tindak balas", "reaction": "tindak balas", "reaction_other": "tindak balas", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Tiada benang semakan atau komen perbualan pada permintaan tarik ini.", "reviewFiles": "Semak fail", "quotedDiffSnippet": "Petikan diff terpilih", - "moreLinesAbove": "… {{count}} lagi baris di atas", + "moreLinesAbove": "… {{displayCount}} lagi baris di atas", "termsAcceptRequired": "Anda mesti menerima Terma Perkhidmatan untuk menyiarkan.", "termsOutdatedCopy": "Terma Perkhidmatan telah berubah. Buka semula skrin ini untuk menerima versi terkini.", "termsCheckRetryCopy": "Tidak dapat menyemak Terma Perkhidmatan. Semak sambungan anda dan cuba lagi." @@ -395,11 +395,11 @@ "retryChecks": "Cuba semakan semula", "viewOnGitHub": "Lihat PR di GitHub", "noChecksReported": "Tiada semakan dilaporkan", - "passed": "{{count}} lulus", - "failed": "{{count}} gagal", - "pending": "{{count}} belum selesai", - "skipped": "{{count}} dilangkau", - "checksCount": "{{count}} semakan", + "passed": "{{displayCount}} lulus", + "failed": "{{displayCount}} gagal", + "pending": "{{displayCount}} belum selesai", + "skipped": "{{displayCount}} dilangkau", + "checksCount": "{{displayCount}} semakan", "checkDetails": "butiran semakan", "pullRequest": "permintaan tarik" }, @@ -459,9 +459,9 @@ "pendingComment_one": "komen tertunda", "pendingComment": "komen tertunda", "pendingComment_other": "komen tertunda", - "submitCountOfTotal": "Hantar {{freshCount}} daripada {{totalCount}} komen", + "submitCountOfTotal": "Hantar {{displayFreshCount}} daripada {{displayTotalCount}} komen", "submitReview": "Hantar semakan", - "partialPostedMessage": "Menghantar {{freshCount}} komen. {{staleCount}} komen menunjuk kepada komit yang lebih lama dan kekal dalam giliran anda." + "partialPostedMessage": "Menghantar {{displayFreshCount}} komen. {{displayStaleCount}} komen menunjuk kepada komit yang lebih lama dan kekal dalam giliran anda." }, "reconnectNotice": { "title": "Sambungan GitHub telah tamat tempoh", @@ -580,7 +580,8 @@ "agents": "Ejen", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} daripada {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Terkini", "common": "Biasa", "reactWith": "Balas dengan {{reaction}}", - "accessibility": "{{emoji}} tindak balas, {{count}}" + "accessibility": "{{emoji}} tindak balas, {{displayCount}}" }, "composer": { "replyingTo": "Membalas kepada", @@ -650,7 +651,7 @@ "imageUnavailable": "Imej tidak tersedia", "openFailed": "Tidak dapat membuka lampiran. Semak sambungan anda dan cuba lagi.", "attachFailed": "Gagal melampirkan fail", - "limit": "Anda boleh melampirkan sehingga {{count}} fail.", + "limit": "Anda boleh melampirkan sehingga {{displayCount}} fail.", "sizeRejection": "{{filename}} melebihi had lampiran {{limit}}.", "unreadable": "Tidak dapat membaca {{filename}}.", "pastedImage": "imej yang ditampal", @@ -722,6 +723,7 @@ "finalTermEnds": "Tempoh akhir tamat", "afterFinalTerm": "Selepas tempoh akhir", "remaining": "Baki", + "lessThanOneDay": "Kurang daripada 1 hari", "ends": "Tamat", "expires": "Luput", "noActivePlan": "Tiada pelan aktif", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "harga bulanan Standard anda", "perMonth": "/bulan", "earlybirdAccessUntil": "Akses pakar awal sehingga {{date}}", - "earlybirdEnding": "Pakar awal tamat: {{days}} hari lagi", + "earlybirdEnding": "Pakar awal tamat: {{remaining}}", "paymentPastDue": "Pembayaran tertunggak. Sila kemas kini kaedah pembayaran anda.", "subscriptionCancels": "Langganan dibatalkan {{date}}", - "trialDaysRemaining": "Percubaan: {{days}} hari lagi", - "trialEndingSoon": "Percubaan tamat tidak lama lagi: {{days}}" + "trialDaysRemaining": "Percubaan: {{remaining}}", + "trialEndingSoon": "Percubaan tamat tidak lama lagi: {{remaining}}" }, "changelog": { "title": "Apakah Baharu", @@ -996,7 +998,7 @@ "stalledTitle": "Sesuatu tersekat", "stalledBody": "Kami tidak dapat menyelesaikan persediaan {{name}}. Cuba lagi, atau emel hi@kilo.ai jika ini berulang.", "timeoutTitle": "Mengambil masa lebih lama daripada jangkaan", - "timeoutBody": "Persediaan untuk {{name}} mengambil masa lebih lama daripada biasa (lebih {{minutes}} minit).", + "timeoutBody": "Persediaan untuk {{name}} mengambil masa lebih lama daripada biasa (lebih {{displayMinutes}} minit).", "continueInBackground": "Teruskan di latar belakang", "settingUp": "Menyediakan {{name}}", "finishingSetup": "Menyelesaikan persediaan", @@ -1287,7 +1289,7 @@ "mergeGate": "Gerbang penggabungan", "repositories": "Repositori", "allRepositories": "Semua repositori", - "nSelected": "{{count}} dipilih", + "nSelected": "{{displayCount}} dipilih", "reviewMemory": "Memori semakan", "proposedReviewMdGuidance": "Cadangan panduan REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analisis selesai", "exploitabilityReasoning": "Penalaran kebolehkesploitasian", "suggestedFix": "Pembetulan yang dicadangkan", - "whereFound": "Di mana ini ditemui ({{count}})", + "whereFound": "Di mana ini ditemui ({{displayCount}})", "fullReport": "Laporan penuh yang dijana", "unknown": "Tidak diketahui", "yes": "Ya", "no": "Tidak" }, "dashboard": { - "findingsCount": "{{count}} penemuan", + "findingsCount": "{{displayCount}} penemuan", "notMeasured": "Tidak diukur", "actFirst": "Tindakan dahulu", "slaPosture": "Postur SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Pelan tindakan repositori", "noOpenFindings": "Tiada penemuan terbuka yang perlu perhatian", "deadlineToday": "Tarikh akhir dicapai hari ini", - "daysOverdue": "{{count}} hari tertunggak", + "daysOverdue": "{{displayCount}} hari tertunggak", "withinDeadline": "Dalam tempoh tarikh akhir", "criticalOverdue": "Kritikal tertunggak", "highOverdue": "Tinggi tertunggak", @@ -1435,6 +1437,27 @@ "syncQueued": "Penyegerakan dijadualkan", "syncStatusUnavailable": "Status penyegerakan tidak tersedia" }, + "dashboardMetrics": { + "openFindings": "Penemuan terbuka", + "openFindingsDetail": "{{critical}} kritikal, {{high}} tinggi", + "confirmedExploitable": "Disahkan boleh dieksploitasi", + "confirmedExploitableDetail": "Risiko projek disahkan oleh analisis", + "needsReview": "Memerlukan semakan anda", + "needsReviewDetail": "Keputusan manusia diperlukan", + "analysisIncomplete": "Analisis belum selesai", + "analysisIncompleteDetail": "Risiko projek masih tidak diketahui", + "slaCompliance": "Pematuhan SLA", + "notMeasured": "Tidak diukur", + "withinDeadlineDetail": "{{within}} daripada {{total}} dalam had masa", + "noDeadlineData": "Tiada penemuan yang mempunyai had masa SLA lagi", + "deadlinePassed": "Had masa telah berlalu", + "deadlinePassedDetail": "{{critical}} kritikal, {{high}} tinggi", + "dueThisWeek": "Dijangka minggu ini", + "dueThisWeekDetail": "{{exploitable}} disahkan boleh dieksploitasi", + "noDeadline": "Tiada had masa", + "reviewSlaAssignment": "Semak penetapan SLA", + "allOpenFindingsTracked": "Semua penemuan terbuka dijejaki" + }, "dismiss": { "title": "Buang penemuan", "submit": "Buang penemuan", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Analisis {{mode}}", "automation": "Automasi", "automationAllOff": "Semua dimatikan", - "automationCount": "{{count}} daripada 3 didayakan", + "automationCount": "{{displayCount}} daripada 3 didayakan", "notifications": "Pemberitahuan", - "notificationsCount": "{{count}} daripada 2 didayakan", + "notificationsCount": "{{displayCount}} daripada 2 didayakan", "slaPolicy": "Dasar SLA", "disabledNoManage": "Security Agent dilumpuhkan. Hanya pemilik organisasi dan pengurus pengebilan boleh menghidupkannya.", "disabledNoRepo": "Pilih sekurang-kurangnya satu repositori sebelum mendayakan Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Buka permintaan tarik{{number}}", "openDraftPullRequest": "Buka permintaan tarik draf{{number}}", "progress": "Kemajuan", - "attemptHistory": "Sejarah percubaan ({{count}})", + "attemptHistory": "Sejarah percubaan ({{displayCount}})", "attemptNumber": "Percubaan #{{number}}", "startedBy": "Dimulakan oleh", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "tugasan", "readTodos": "Baca tugasan", "updateTodos": "Kemas kini tugasan", - "linesBadge": "{{count}} baris", - "filesBadge": "{{count}} fail", - "matchesBadge": "{{count}} padanan" + "linesBadge": "{{displayCount}} baris", + "filesBadge": "{{displayCount}} fail", + "matchesBadge": "{{displayCount}} padanan" }, "readToolMarkdown": { "linesTruncated": "baris {{start}}–{{end}} (dipotong)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Respons ini tidak boleh dilaporkan.", "reportAiResponseSubmitted": "Laporan dihantar. Resit {{receiptId}}" }, + "modelCost": { + "lessThan": "kurang daripada {{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Butiran tidak tersedia", "textDisplay": "Paparan teks", @@ -1999,7 +2026,7 @@ "preparationComplete": "Penyediaan selesai", "preparationFailed": "Penyediaan gagal", "setupCommand": "Arahan persediaan {{index}}", - "setupCommandOf": "Arahan persediaan {{index}} daripada {{count}}" + "setupCommandOf": "Arahan persediaan {{index}} daripada {{displayCount}}" }, "permissionCard": { "title": "Kebenaran diperlukan", @@ -2036,7 +2063,7 @@ "submissionFailed": "Penghantaran gagal. Sila cuba lagi.", "questionAnnouncement": "Ejen memerlukan input anda. Komposer dijeda semasa anda menjawab.", "permissionAnnouncement": "Ejen memerlukan kebenaran untuk meneruskan. Komposer dijeda semasa anda membuat keputusan.", - "positionHint": "(1 daripada {{count}})", + "positionHint": "(1 daripada {{displayCount}})", "movedPastPrompt": "Ejen telah melepasi gesaan ini. Kad ini akan ditutup apabila sesi diteruskan.", "waitingForAnswer": "Ejen sedang menunggu jawapan anda. Semasa soalan ini terbuka, mesej anda kepada ejen dijeda.", "waitingForPermission": "Ejen sedang menunggu kebenaran. Semasa permintaan ini terbuka, mesej anda kepada ejen dijeda." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Akses Kamera Dilumpuhkan", "cameraAccessMessage": "Benarkan akses kamera dalam Tetapan untuk mengambil foto.", "couldNotOpenPhotoPicker": "Tidak dapat membuka pemilih foto. Mulakan semula Kilo dan cuba lagi.", - "maxFilesAllowed": "Maksimum {{count}} fail dibenarkan", + "maxFilesAllowed": "Maksimum {{displayCount}} fail dibenarkan", "onlyAddingFiles": "Hanya menambah {{accepted}} daripada {{total}} fail (maks {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kos {{cost}}", "costSuffix": ", kos {{cost}}", "tokensWindowUnavailable": "Konteks {{used}} token, tetingkap tidak tersedia", - "tokensUsage": "Konteks {{used}} daripada {{window}} token, {{percentage}}% digunakan", + "tokensUsage": "Konteks {{used}} daripada {{window}} token, {{percentage}} digunakan", "title": "Penggunaan konteks", "used": "Digunakan", "remaining": "Baki", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Penggunaan mencerminkan respons pembantu lengkap terkini.", "tokenUsage": "Penggunaan token", "cacheRate": "Kadar cache", - "modelsCount": "Model ({{count}})", + "modelsCount": "Model ({{displayCount}})", "tokenTotalsNote": "Jumlah token meliputi sesi ini sahaja dan tidak termasuk token subejen/sesi anak.", "subagents": "Subejen", "subagentsDescription": "Kos baki daripada sesi anak", @@ -2373,7 +2400,7 @@ "connectedCli": "Pada CLI bersambung", "newSessionOn": "Sesi baharu pada {{name}}", "noMatchingSessions": "Tiada sesi sepadan.", - "onlyFirstFilesAttached": "Hanya {{count}} fail pertama akan dilampirkan.", + "onlyFirstFilesAttached": "Hanya {{displayCount}} fail pertama akan dilampirkan.", "staleMessage": "Perkongsian ini tidak lagi tersedia.", "retryableMessage": "Tidak dapat memuatkan sesi anda.", "emptyMessage": "Belum ada sesi — mulakan yang baharu untuk menghantar ini.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass pada Akaun Apple ini kepunyaan akaun Kilo yang berbeza. Log masuk ke akaun Kilo itu untuk menguruskannya.", "alreadySubscribed": "Anda sudah mempunyai langganan Kilo Pass.", "purchaseUnavailable": "Pembelian Kilo Pass tidak tersedia sekarang.", - "tierCredits": "${{amount}} dalam kredit", + "tierCredits": "{{amount}} dalam kredit", "perMonth": "{{price}}/bln", "verifyPurchaseFailed": "Tidak dapat mengesahkan pembelian anda. Periksa sambungan anda dan cuba lagi.", "productsCouldNotLoad": "Produk Kilo Pass tidak dapat dimuatkan daripada App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Gagal membuka pengurusan langganan App Store.", "kiloPassSetup": "Penyediaan Kilo Pass", "subscriptionHeaderDescription": "Langganan bulanan yang menambah kredit ke baki Kilo anda untuk menjalankan sesi pengekodan AI dalam Apl Kilo — Ejen Awan, sesi jauh, dan sembang KiloClaw.", - "tierDescription": "${{price}} kredit berbayar ditambah setiap bulan untuk penggunaan Apl Kilo.", + "tierDescription": "{{price}} kredit berbayar ditambah setiap bulan untuk penggunaan Apl Kilo.", "subscribe": "Langgan", "subscribeDescription": "Kredit bulanan dengan kemajuan bonus", "manage": "Urus", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass belum selesai", "statusCanceling": "Kilo Pass membatalkan", "statusPastDue": "Kilo Pass tertunggak", - "monthlyCredits": "${{credits}} kredit bulanan", + "monthlyCredits": "{{credits}} kredit bulanan", "ends": "Berakhir {{date}}", "periodEnd": "tamat tempoh", "managedOnGooglePlay": "Diurus pada Google Play", diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index dfd62e22ca..576efbbcd7 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -206,11 +206,11 @@ "loadingLines": "Qed jitgħabbew {{loaded}} minn {{total}} linji…", "expandContext": "Espandi l-kuntest", "expandMoreContext": "Espandi aktar kuntest", - "expandLines": "Espandi {{count}} linji ({{start}}–{{end}})", - "expandMoreLines": "Espandi aktar {{count}} linji ({{start}}–{{end}})", - "expandLinesOfContext": "Espandi {{count}} linji ta' kuntest", + "expandLines": "Espandi {{displayCount}} linji ({{start}}–{{end}})", + "expandMoreLines": "Espandi aktar {{displayCount}} linji ({{start}}–{{end}})", + "expandLinesOfContext": "Espandi {{displayCount}} linji ta' kuntest", "expandAll": "Espandi kollox", - "expandAllLines": "Espandi l-{{count}} linji kollha", + "expandAllLines": "Espandi l-{{displayCount}} linji kollha", "loadingMoreFiles": "Qed jitgħabbew aktar fajls…", "retryLoadingNextPage": "Erġa' pprova jitgħabba l-paġna li jmiss", "failedToLoadMoreFiles": "Ma setgħux jitgħabbew aktar fajls — mess biex terġa' tipprova", @@ -227,7 +227,13 @@ "fileLoadedOfTotalCount_other": "{{displayCount}} fajls mgħobbija minn {{total}}", "filesStillLoading": "Il-fajls għadhom qed jitgħabbew. Iġbed biex taġġorna.", "goToOverview": "Mur fil-Ħarsa Ġenerali", - "goToOverviewTab": "Mur fit-tab tal-Ħarsa Ġenerali" + "goToOverviewTab": "Mur fit-tab tal-Ħarsa Ġenerali", + "fileLoadedCount_two": "{{displayCount}} fajls mgħobbija", + "fileLoadedCount_few": "{{displayCount}} fajls mgħobbija", + "fileLoadedCount_many": "{{displayCount}} fajl mgħobbi", + "fileLoadedOfTotalCount_two": "{{displayCount}} fajls mgħobbija minn {{total}}", + "fileLoadedOfTotalCount_few": "{{displayCount}} fajls mgħobbija minn {{total}}", + "fileLoadedOfTotalCount_many": "{{displayCount}} fajl mgħobbi minn {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ l-ebda newline fit-tmiem tal-fajl", @@ -301,7 +307,7 @@ "closeReactions": "Agħlaq ir-reazzjonijiet", "reactionsTitle": "Reazzjonijiet", "addReaction": "Żid reazzjoni", - "reactionPill": "{{emoji}} reazzjoni, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reazzjoni, {{displayCount}} {{countLabel}}", "reaction_one": "reazzjoni", "reaction": "reazzjonijiet", "reaction_other": "reazzjonijiet", @@ -353,10 +359,16 @@ "noDiscussionDescription": "L-ebda thread ta' reviżjoni jew kummenti ta' konversazzjoni fuq dan il-pull request.", "reviewFiles": "Irrevedi l-fajls", "quotedDiffSnippet": "Snippet ta' diff ikkwotat", - "moreLinesAbove": "… {{count}} aktar linji 'l fuq", + "moreLinesAbove": "… {{displayCount}} aktar linji 'l fuq", "termsAcceptRequired": "Trid taċċetta t-Termini tas-Servizz biex tippubblika.", "termsOutdatedCopy": "It-Termini tas-Servizz inbidlu. Erġa' iftaħ din l-iskrin biex taċċetta l-aħħar verżjoni.", - "termsCheckRetryCopy": "Ma setgħux jiġu ċċekkjati t-Termini tas-Servizz. Iċċekkja l-konnessjoni tiegħek u erġa' pprova." + "termsCheckRetryCopy": "Ma setgħux jiġu ċċekkjati t-Termini tas-Servizz. Iċċekkja l-konnessjoni tiegħek u erġa' pprova.", + "comment_two": "{{displayCount}} kummenti", + "comment_few": "{{displayCount}} kummenti", + "comment_many": "{{displayCount}} kumment", + "reaction_two": "reazzjonijiet", + "reaction_few": "reazzjonijiet", + "reaction_many": "reazzjoni" }, "couldNotOpenGitHubAppSettings": "Ma setgħux jinfetħu s-settings tal-GitHub App", "installKiloGitHubApp": "Installa l-Kilo GitHub App", @@ -395,11 +407,11 @@ "retryChecks": "Erġa' pprova l-kontrolli", "viewOnGitHub": "Ara l-PR fuq GitHub", "noChecksReported": "L-ebda kontroll irrapportat", - "passed": "{{count}} għaddew", - "failed": "{{count}} fallew", - "pending": "{{count}} pendenti", - "skipped": "{{count}} maqbuża", - "checksCount": "{{count}} kontrolli", + "passed": "{{displayCount}} għaddew", + "failed": "{{displayCount}} fallew", + "pending": "{{displayCount}} pendenti", + "skipped": "{{displayCount}} maqbuża", + "checksCount": "{{displayCount}} kontrolli", "checkDetails": "dettalji tal-kontroll", "pullRequest": "pull request" }, @@ -459,9 +471,12 @@ "pendingComment_one": "kument pendenti", "pendingComment": "kummenti pendenti", "pendingComment_other": "kummenti pendenti", - "submitCountOfTotal": "Ibgħat {{freshCount}} minn {{totalCount}} kummenti", + "submitCountOfTotal": "Ibgħat {{displayFreshCount}} minn {{displayTotalCount}} kummenti", "submitReview": "Ibgħat ir-reviżjoni", - "partialPostedMessage": "Tpoġġew {{freshCount}} kumment(i). {{staleCount}} kumment(i) jindikaw commit aktar antik u baqgħu fil-kju tiegħek." + "partialPostedMessage": "Tpoġġew {{displayFreshCount}} kumment(i). {{displayStaleCount}} kumment(i) jindikaw commit aktar antik u baqgħu fil-kju tiegħek.", + "pendingComment_two": "kummenti pendenti", + "pendingComment_few": "kummenti pendenti", + "pendingComment_many": "kumment pendenti" }, "reconnectNotice": { "title": "Il-konnessjoni ta' GitHub skadiet", @@ -488,7 +503,13 @@ "commit_other": "commits", "file_one": "fajl", "file": "fajls", - "file_other": "fajls" + "file_other": "fajls", + "commit_two": "commits", + "commit_few": "commits", + "commit_many": "commit", + "file_two": "fajls", + "file_few": "fajls", + "file_many": "fajl" }, "pendingComment": { "editOutdatedA11y": "Editja l-kument pendenti skadut fuq {{location}}", @@ -580,7 +601,8 @@ "agents": "Aġenti", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} minn {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +643,7 @@ "recent": "Riċenti", "common": "Komuni", "reactWith": "Irreaġixxi b'{{reaction}}", - "accessibility": "{{emoji}} reazzjoni, {{count}}" + "accessibility": "{{emoji}} reazzjoni, {{displayCount}}" }, "composer": { "replyingTo": "Qed tirrispondi lil", @@ -650,7 +672,7 @@ "imageUnavailable": "Immaġni mhux disponibbli", "openFailed": "Ma setax jinfetaħ l-attachment. Iċċekkja l-konnessjoni tiegħek u erġa' pprova.", "attachFailed": "Ma setax jitwaħħal il-fajl", - "limit": "Tista' twaħħal sa {{count}} fajls.", + "limit": "Tista' twaħħal sa {{displayCount}} fajls.", "sizeRejection": "{{filename}} jaqbeż il-limitu tal-attachment ta' {{limit}}.", "unreadable": "Ma setax jinqara {{filename}}.", "pastedImage": "l-immaġni mwaħħla", @@ -700,7 +722,10 @@ "someone": "Xi ħadd", "typing_one": "{{name}} qed jikteb...", "typing": "{{names}} qed jiktbu...", - "typing_other": "{{names}} qed jiktbu..." + "typing_other": "{{names}} qed jiktbu...", + "typing_two": "{{names}} qed jiktbu...", + "typing_few": "{{names}} qed jiktbu...", + "typing_many": "{{names}} qed jiktbu..." }, "botStatus": { "online": "Onlajn", @@ -722,6 +747,7 @@ "finalTermEnds": "It-terminu finali jintemm", "afterFinalTerm": "Wara t-terminu finali", "remaining": "Jifdal", + "lessThanOneDay": "Inqas minn ġurnata 1", "ends": "Jintemm", "expires": "Jiskadi", "noActivePlan": "L-ebda pjan attiv", @@ -740,11 +766,11 @@ "yourStandardMonthlyPrice": "il-prezz standard fix-xahar tiegħek", "perMonth": "/xahar", "earlybirdAccessUntil": "Aċċess Earlybird sal-{{date}}", - "earlybirdEnding": "Earlybird jintemm: {{days}} jum jifdal", + "earlybirdEnding": "Earlybird jintemm: {{remaining}}", "paymentPastDue": "Ħlas tard. Jekk jogħġbok aġġorna l-metodu tal-ħlas tiegħek.", "subscriptionCancels": "L-abbonament jikkanċella fil-{{date}}", - "trialDaysRemaining": "Prova: jifdal {{days}} jum", - "trialEndingSoon": "Il-prova dalwaqt tintemm: {{days}}" + "trialDaysRemaining": "Prova: {{remaining}}", + "trialEndingSoon": "Il-prova dalwaqt tintemm: {{remaining}}" }, "changelog": { "title": "X'Ġdid", @@ -996,7 +1022,7 @@ "stalledTitle": "Xi ħaġa staġnat", "stalledBody": "Ma stajniex inlestu s-setup ta' {{name}}. Erġa' pprova, jew ibgħat email lil hi@kilo.ai jekk dan ikompli jiġri.", "timeoutTitle": "Qed jieħu aktar milli mistenni", - "timeoutBody": "Is-setup ta' {{name}} qed jieħu aktar mis-soltu (aktar minn {{minutes}} minuta).", + "timeoutBody": "Is-setup ta' {{name}} qed jieħu aktar mis-soltu (aktar minn {{displayMinutes}} minuta).", "continueInBackground": "Kompli fl-isfond", "settingUp": "Qed issir is-setup ta' {{name}}", "finishingSetup": "Qed jintemm is-setup", @@ -1071,7 +1097,10 @@ "openUnread_other": "Iftaħ {{name}}, {{displayCount}} messaġġi mhux moqrija", "open": "Iftaħ {{name}}", "openSettings": "Iftaħ l-issettjar ta' {{name}}", - "fixOnKiloAi": "Isewwi fuq kilo.ai: {{label}}" + "fixOnKiloAi": "Isewwi fuq kilo.ai: {{label}}", + "openUnread_two": "Iftaħ {{name}}, {{displayCount}} messaġġi mhux moqrija", + "openUnread_few": "Iftaħ {{name}}, {{displayCount}} messaġġi mhux moqrija", + "openUnread_many": "Iftaħ {{name}}, {{displayCount}} messaġġ mhux moqri" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1316,7 @@ "mergeGate": "Bieb tal-merge", "repositories": "Repożitorji", "allRepositories": "Ir-repożitorji kollha", - "nSelected": "{{count}} magħżula", + "nSelected": "{{displayCount}} magħżula", "reviewMemory": "Memorja tar-reviżjoni", "proposedReviewMdGuidance": "Gwida REVIEW.md proposta" }, @@ -1367,7 +1396,10 @@ "severityAll": "Is-severitajiet kollha", "confidenceHighOnly": "Kunfidenza għolja biss", "confidenceMediumOrHigher": "Medju jew ogħla", - "confidenceAny": "Kwalunkwe kunfidenza" + "confidenceAny": "Kwalunkwe kunfidenza", + "queued_two": "{{displayCount}} sejbiet eżistenti fil-kju għall-analiżi.", + "queued_few": "{{displayCount}} sejbiet eżistenti fil-kju għall-analiżi.", + "queued_many": "{{displayCount}} sejba eżistenti fil-kju għall-analiżi." }, "analysis": { "couldNotLoad": "Ma setgħetx titgħabba l-analiżi", @@ -1391,14 +1423,14 @@ "analyzed": "Analizzat", "exploitabilityReasoning": "Raġunament tal-żvantaġġabbiltà", "suggestedFix": "Soluzzjoni proposta", - "whereFound": "Fejn instab dan ({{count}})", + "whereFound": "Fejn instab dan ({{displayCount}})", "fullReport": "Rapport sħiħ iġġenerat", "unknown": "Mhux magħruf", "yes": "Iva", "no": "Le" }, "dashboard": { - "findingsCount": "{{count}} sejbiet", + "findingsCount": "{{displayCount}} sejbiet", "notMeasured": "Mhux imkejjel", "actFirst": "Aġixxi l-ewwel", "slaPosture": "Pożizzjoni tal-SLA", @@ -1407,7 +1439,7 @@ "repositoryActionPlan": "Pjan ta' azzjoni tar-repożitorju", "noOpenFindings": "L-ebda sejba miftuħa ma teħtieġ attenzjoni", "deadlineToday": "L-iskadenza intlaħqet illum", - "daysOverdue": "{{count}} jiem tard", + "daysOverdue": "{{displayCount}} jiem tard", "withinDeadline": "Fi ħdan l-iskadenza", "criticalOverdue": "Kritiku tard", "highOverdue": "Għoli tard", @@ -1435,6 +1467,27 @@ "syncQueued": "Is-sinkronizzazzjoni fil-kju", "syncStatusUnavailable": "L-istatus tas-sinkronizzazzjoni mhux disponibbli" }, + "dashboardMetrics": { + "openFindings": "Sejbiet miftuħa", + "openFindingsDetail": "{{critical}} kritiċi, {{high}} għoljin", + "confirmedExploitable": "Konfermat li jista' jiġi sfruttat", + "confirmedExploitableDetail": "Ir-riskju tal-proġett ikkonfermat mill-analiżi", + "needsReview": "Jeħtieġ ir-reviżjoni tiegħek", + "needsReviewDetail": "Meħtieġa deċiżjoni umana", + "analysisIncomplete": "L-analiżi mhix kompluta", + "analysisIncompleteDetail": "Ir-riskju tal-proġett għadu mhux magħruf", + "slaCompliance": "Konformità mal-SLA", + "notMeasured": "Mhux imkejjel", + "withinDeadlineDetail": "{{within}} minn {{total}} fil-limitu ta' żmien", + "noDeadlineData": "Għad m'hemmx limitu ta' żmien SLA għas-sejbiet", + "deadlinePassed": "Il-limitu ta' żmien għadda", + "deadlinePassedDetail": "{{critical}} kritiċi, {{high}} għoljin", + "dueThisWeek": "Id-data mistennija din il-ġimgħa", + "dueThisWeekDetail": "{{exploitable}} ikkonfermati li jistgħu jiġu sfruttati", + "noDeadline": "L-ebda limitu ta' żmien", + "reviewSlaAssignment": "Irrevedi l-assenjazzjoni tal-SLA", + "allOpenFindingsTracked": "Is-sejbiet miftuħa kollha ssorveljati" + }, "dismiss": { "title": "Warrab is-sejba", "submit": "Warrab is-sejba", @@ -1500,13 +1553,16 @@ "analysisModeSubtitle": "Analiżi {{mode}}", "automation": "Awtomazzjoni", "automationAllOff": "Kollha mitfija", - "automationCount": "{{count}} minn 3 attivati", + "automationCount": "{{displayCount}} minn 3 attivati", "notifications": "Notifiki", - "notificationsCount": "{{count}} minn 2 attivati", + "notificationsCount": "{{displayCount}} minn 2 attivati", "slaPolicy": "Politika tal-SLA", "disabledNoManage": "Is-Security Agent huwa diżattivat. Is-sidien tal-organizzazzjoni u l-maniġers tal-kontijiet biss jistgħu jattivawh.", "disabledNoRepo": "Agħżel mill-inqas repożitorju wieħed qabel ma tattiva s-Security Agent.", - "disabledPrompt": "Ixgħel is-Security Agent biex tissinkronizza l-allerti ta' Dependabot, tagħżel ir-repożitorji, u tikkonfigura l-awtomazzjoni." + "disabledPrompt": "Ixgħel is-Security Agent biex tissinkronizza l-allerti ta' Dependabot, tagħżel ir-repożitorji, u tikkonfigura l-awtomazzjoni.", + "repositoriesCount_two": "{{displayCount}} repożitorji magħżula", + "repositoriesCount_few": "{{displayCount}} repożitorji magħżula", + "repositoriesCount_many": "{{displayCount}} repożitorju magħżul" }, "remediation": { "cancellationRequested": "Talba ta' kanċellazzjoni", @@ -1524,7 +1580,7 @@ "openPullRequest": "Iftaħ pull request{{number}}", "openDraftPullRequest": "Iftaħ abbozz ta' pull request{{number}}", "progress": "Progress", - "attemptHistory": "Storja tat-tentattivi ({{count}})", + "attemptHistory": "Storja tat-tentattivi ({{displayCount}})", "attemptNumber": "Tentattiv #{{number}}", "startedBy": "Mibdi minn", "model": "Mudell", @@ -1734,7 +1790,13 @@ "cent_other": "ċenteżmi", "dollar_one": "dollaru", "dollar": "dollari", - "dollar_other": "dollari" + "dollar_other": "dollari", + "cent_two": "ċenteżmi", + "cent_few": "ċenteżmi", + "cent_many": "ċenteżmu", + "dollar_two": "dollari", + "dollar_few": "dollari", + "dollar_many": "dollaru" }, "githubInstall": { "couldNotOpenTitle": "Ma setax jinfetaħ GitHub", @@ -1830,7 +1892,10 @@ "partRenderer": { "updatedFileCount_one": "Aġġornat {{displayCount}} fajl", "updatedFileCount": "Aġġornati {{displayCount}} fajls", - "updatedFileCount_other": "Aġġornati {{displayCount}} fajls" + "updatedFileCount_other": "Aġġornati {{displayCount}} fajls", + "updatedFileCount_two": "Aġġornati {{displayCount}} fajls", + "updatedFileCount_few": "Aġġornati {{displayCount}} fajls", + "updatedFileCount_many": "Aġġornat {{displayCount}} fajl" }, "toolPatch": { "operationAdded": "Miżjud", @@ -1855,9 +1920,9 @@ "toolTask": "ħidma", "readTodos": "Aqra t-todos", "updateTodos": "Aġġorna t-todos", - "linesBadge": "{{count}} linji", - "filesBadge": "{{count}} fajls", - "matchesBadge": "{{count}} qbil" + "linesBadge": "{{displayCount}} linji", + "filesBadge": "{{displayCount}} fajls", + "matchesBadge": "{{displayCount}} qbil" }, "readToolMarkdown": { "linesTruncated": "linji {{start}}–{{end}} (maqtugħa)", @@ -1941,6 +2006,10 @@ "reportAiResponseFailedTerminal": "Dan ir-rispons ma jistax jiġi rrapportat.", "reportAiResponseSubmitted": "Ir-rapport ġie sottomess. Irċevuta {{receiptId}}" }, + "modelCost": { + "lessThan": "inqas minn {{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Dettalji mhux disponibbli", "textDisplay": "Wiri tat-test", @@ -1999,7 +2068,7 @@ "preparationComplete": "It-tħejjija kompluta", "preparationFailed": "It-tħejjija falliet", "setupCommand": "Kmand ta' settup {{index}}", - "setupCommandOf": "Kmand ta' settup {{index}} minn {{count}}" + "setupCommandOf": "Kmand ta' settup {{index}} minn {{displayCount}}" }, "permissionCard": { "title": "Permess meħtieġ", @@ -2036,7 +2105,7 @@ "submissionFailed": "Is-sottomissjoni fallejt. Ipprova għal darb'oħra.", "questionAnnouncement": "L-Aġent għandu bżonn il-kontribut tiegħek. Il-kompożitur qed jieqaf waqt li inti twieġeb.", "permissionAnnouncement": "L-Aġent għandu bżonn il-permess biex ikompli. Il-kompożitur qed jieqaf waqt li inti tiddeċiedi.", - "positionHint": "(1 minn {{count}})", + "positionHint": "(1 minn {{displayCount}})", "movedPastPrompt": "L-aġent għadda minn dan il-pront. Din il-karta tagħlaq meta s-sessjoni tkompli.", "waitingForAnswer": "L-aġent qed jistenna t-tweġiba tiegħek. Waqt li din il-mistoqsija tkun miftuħa, il-messaġġ tiegħek lill-aġent ikun waqaf.", "waitingForPermission": "L-aġent qed jistenna l-permess. Waqt li din it-talba tkun miftuħa, il-messaġġ tiegħek lill-aġent ikun waqaf." @@ -2076,7 +2145,10 @@ "omitted_other": "{{displayCount}} oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", "couldNotLoad": "Ma setgħux jitgħabbew il-messaġġi aktar bikrin.", "unavailable": "Il-messaġġi aktar bikrin mhumiex disponibbli.", - "tooLarge": "Il-messaġġi aktar bikrin huma kbar wisq biex jitgħabbew." + "tooLarge": "Il-messaġġi aktar bikrin huma kbar wisq biex jitgħabbew.", + "omitted_two": "{{displayCount}} oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", + "omitted_few": "{{displayCount}} oġġetti aktar bikrin minn din is-sessjoni ma setgħux jintwerew.", + "omitted_many": "{{displayCount}} oġġett aktar bikri minn din is-sessjoni ma setax jintwera." }, "markdownTable": { "viewTable": "Ara t-tabella", @@ -2088,7 +2160,13 @@ "rowCount_one": "ringiela", "rowCount": "ringieli", "rowCount_other": "ringieli", - "opensFullScreen": "jiftaħ b'mod sħiħ" + "opensFullScreen": "jiftaħ b'mod sħiħ", + "columnCount_two": "kolonni", + "columnCount_few": "kolonni", + "columnCount_many": "kolonna", + "rowCount_two": "ringieli", + "rowCount_few": "ringieli", + "rowCount_many": "ringiela" }, "sessionFilter": { "title": "Iffiltra s-sessjonijiet", @@ -2157,7 +2235,7 @@ "cameraAccessDisabled": "Aċċess għall-Kamera Diżattivat", "cameraAccessMessage": "Ippermetti l-aċċess għall-kamera fis-Settings biex tieħu ritratt.", "couldNotOpenPhotoPicker": "Ma setgħux jinfetaħ il-picker tar-ritratti. Erġa' ibda Kilo u ipprova għal darb'oħra.", - "maxFilesAllowed": "Massimu ta' {{count}} fajls permessi", + "maxFilesAllowed": "Massimu ta' {{displayCount}} fajls permessi", "onlyAddingFiles": "Qed iżżid biss {{accepted}} minn {{total}} fajls (massimu {{max}})" }, "composer": { @@ -2222,7 +2300,7 @@ "costPrefix": "spiża {{cost}}", "costSuffix": ", spiża {{cost}}", "tokensWindowUnavailable": "Kuntest {{used}} tokens, tieqa mhux disponibbli", - "tokensUsage": "Kuntest {{used}} minn {{window}} tokens, {{percentage}}% użat", + "tokensUsage": "Kuntest {{used}} minn {{window}} tokens, {{percentage}} użat", "title": "Użu tal-kuntest", "used": "Użat", "remaining": "Fadal", @@ -2231,7 +2309,7 @@ "usageReflectsLatest": "L-użu jirrifletti l-aħħar risposta tal-assistent li tlestiet.", "tokenUsage": "Użu tat-tokens", "cacheRate": "Rata tal-cache", - "modelsCount": "Mudelli ({{count}})", + "modelsCount": "Mudelli ({{displayCount}})", "tokenTotalsNote": "It-totali tat-tokens ikopru din is-sessjoni biss u jeskludu t-tokens tas-subaġenti/sessjonijiet ta' tfal.", "subagents": "Subaġenti", "subagentsDescription": "Spiża residwa mis-sessjonijiet ta' tfal", @@ -2243,7 +2321,10 @@ "stepsCount_one": "{{steps}} pass", "stepsCount": "{{steps}} passi", "stepsCount_other": "{{steps}} passi", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_two": "{{steps}} passi", + "stepsCount_few": "{{steps}} passi", + "stepsCount_many": "{{steps}} pass" }, "prBadge": { "open": "pull request miftuħ", @@ -2373,7 +2454,7 @@ "connectedCli": "Fuq CLI konness", "newSessionOn": "Sessjoni ġdida fuq {{name}}", "noMatchingSessions": "L-ebda sessjoni li taqbel.", - "onlyFirstFilesAttached": "Biss l-ewwel {{count}} fajls se jitwaħħlu.", + "onlyFirstFilesAttached": "Biss l-ewwel {{displayCount}} fajls se jitwaħħlu.", "staleMessage": "Dan il-qsim m'għadux disponibbli.", "retryableMessage": "Ma setgħux jitgħabbew is-sessjonijiet tiegħek.", "emptyMessage": "Għad m'hemmx sessjonijiet — ibda waħda ġdida biex tibgħat dan.", @@ -2406,7 +2487,7 @@ "otherAccountCopy": "Il-Kilo Pass fuq dan l-Apple Account jappartjeni għal kont ieħor ta' Kilo. Idħol f'dak il-kont ta' Kilo biex timmaniġġjah.", "alreadySubscribed": "Diġà għandek sottoskrizzjoni ta' Kilo Pass.", "purchaseUnavailable": "Ix-xiri ta' Kilo Pass mhux disponibbli bħalissa.", - "tierCredits": "${{amount}} f'krediti", + "tierCredits": "{{amount}} f'krediti", "perMonth": "{{price}}/xahar", "verifyPurchaseFailed": "Ma setax jivverifika x-xiri tiegħek. Iċċekkja l-konnessjoni tiegħek u erġa' ipprova.", "productsCouldNotLoad": "Il-prodotti ta' Kilo Pass ma setgħux jitgħabbew mill-App Store.", @@ -2417,7 +2498,7 @@ "manageFailed": "Ma setgħetx tinfetaħ il-ġestjoni tas-sottoskrizzjoni fl-App Store.", "kiloPassSetup": "Twaqqif ta' Kilo Pass", "subscriptionHeaderDescription": "Sottoskrizzjoni mensili li żżid krediti mal-bilanċ ta' Kilo tiegħek biex imexxi sessjonijiet ta' kodifikazzjoni bl-AI fl-App Kilo — Cloud Agents, sessjonijiet mill-bogħod, u chats ta' KiloClaw.", - "tierDescription": "${{price}} krediti mħallsa miżjuda kull xahar għall-użu tal-App Kilo.", + "tierDescription": "{{price}} krediti mħallsa miżjuda kull xahar għall-użu tal-App Kilo.", "subscribe": "Issottoskrivi", "subscribeDescription": "Krediti mensili b'progress bonus", "manage": "Immaniġġja", @@ -2425,7 +2506,7 @@ "statusPending": "Kilo Pass pendenti", "statusCanceling": "Kilo Pass qed jikkanċella", "statusPastDue": "Kilo Pass skadut fil-ħlas", - "monthlyCredits": "${{credits}} krediti mensili", + "monthlyCredits": "{{credits}} krediti mensili", "ends": "Jispiċċa {{date}}", "periodEnd": "tmiem tal-perjodu", "managedOnGooglePlay": "Immaniġġjat fuq Google Play", @@ -2667,7 +2748,10 @@ "processingNeedsReview": "L-ipproċessar għandu bżonn reviżjoni", "retry": "Erġa' ipprova", "retryHint": "Jerġa' jipprova jgħabbi l-istatus ta' Kilo Pass.", - "setupHint": "Jiftaħ it-twaqqif ta' Kilo Pass fuq il-web." + "setupHint": "Jiftaħ it-twaqqif ta' Kilo Pass fuq il-web.", + "paidSeat_two": "{{displayCount}} postijiet imħallsa", + "paidSeat_few": "{{displayCount}} postijiet imħallsa", + "paidSeat_many": "{{displayCount}} post imħallas" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index 69bad826a8..47a155587a 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -206,11 +206,11 @@ "loadingLines": "စာကြောင်း {{total}} တွင် {{loaded}} တင်နေသည်…", "expandContext": "context ချဲ့ပါ", "expandMoreContext": "context ပိုချဲ့ပါ", - "expandLines": "စာကြောင်း {{count}} ချဲ့ပါ ({{start}}–{{end}})", - "expandMoreLines": "စာကြောင်း {{count}} ပိုချဲ့ပါ ({{start}}–{{end}})", - "expandLinesOfContext": "context စာကြောင်း {{count}} ချဲ့ပါ", + "expandLines": "စာကြောင်း {{displayCount}} ချဲ့ပါ ({{start}}–{{end}})", + "expandMoreLines": "စာကြောင်း {{displayCount}} ပိုချဲ့ပါ ({{start}}–{{end}})", + "expandLinesOfContext": "context စာကြောင်း {{displayCount}} ချဲ့ပါ", "expandAll": "အားလုံးချဲ့ပါ", - "expandAllLines": "စာကြောင်း {{count}} အားလုံးချဲ့ပါ", + "expandAllLines": "စာကြောင်း {{displayCount}} အားလုံးချဲ့ပါ", "loadingMoreFiles": "နောက်ထပ်ဖိုင်များ တင်နေသည်…", "retryLoadingNextPage": "နောက်စာမျက်နှာတင်ရန် ထပ်စမ်းကြည့်", "failedToLoadMoreFiles": "နောက်ထပ်ဖိုင်များတင်ရန် မအောင်မြင်ပါ — ထပ်စမ်းရန် နှိပ်ပါ", @@ -301,7 +301,7 @@ "closeReactions": "တုံ့ပြန်မှုများပိတ်ပါ", "reactionsTitle": "တုံ့ပြန်မှုများ", "addReaction": "တုံ့ပြန်မှုထည့်ပါ", - "reactionPill": "{{emoji}} တုံ့ပြန်မှု, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} တုံ့ပြန်မှု, {{displayCount}} {{countLabel}}", "reaction_one": "တုံ့ပြန်မှု", "reaction": "တုံ့ပြန်မှုများ", "reaction_other": "တုံ့ပြန်မှုများ", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ဤ pull request တွင် သုံးသပ်ချက် thread သို့မဟုတ် စကားဝိုင်းမှတ်ချက်များ မရှိပါ။", "reviewFiles": "ဖိုင်များသုံးသပ်ပါ", "quotedDiffSnippet": "ကိုးကားထားသော diff အပိုင်း", - "moreLinesAbove": "အထက် နောက်ထပ်စာကြောင်း {{count}}", + "moreLinesAbove": "အထက် နောက်ထပ်စာကြောင်း {{displayCount}}", "termsAcceptRequired": "တင်ရန် ဝန်ဆောင်မှုစည်းမျဉ်းများကို လက်ခံရပါမည်။", "termsOutdatedCopy": "ဝန်ဆောင်မှုစည်းမျဉ်းများ ပြောင်းလဲသွားသည်။ နောက်ဆုံးဗားရှင်းကို လက်ခံရန် ဤစခရင်ကို ပြန်ဖွင့်ပါ။", "termsCheckRetryCopy": "ဝန်ဆောင်မှုစည်းမျဉ်းများကို စစ်ဆေးမရပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ပြီး ထပ်စမ်းကြည့်ပါ။" @@ -395,11 +395,11 @@ "retryChecks": "စစ်ဆေးမှုများ ထပ်စမ်းကြည့်", "viewOnGitHub": "PR ကို GitHub တွင် ကြည့်ပါ", "noChecksReported": "စစ်ဆေးမှု မတင်ပြပါ", - "passed": "{{count}} အောင်မြင်", - "failed": "{{count}} မအောင်မြင်", - "pending": "{{count}} ဆိုင်းငံ့", - "skipped": "{{count}} ကျော်လိုက်", - "checksCount": "စစ်ဆေးမှု {{count}}", + "passed": "{{displayCount}} အောင်မြင်", + "failed": "{{displayCount}} မအောင်မြင်", + "pending": "{{displayCount}} ဆိုင်းငံ့", + "skipped": "{{displayCount}} ကျော်လိုက်", + "checksCount": "စစ်ဆေးမှု {{displayCount}}", "checkDetails": "စစ်ဆေးမှုအသေးစိတ်များ", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ဆိုင်းငံ့မှတ်ချက်", "pendingComment": "ဆိုင်းငံ့မှတ်ချက်များ", "pendingComment_other": "ဆိုင်းငံ့မှတ်ချက်များ", - "submitCountOfTotal": "မှတ်ချက် {{totalCount}} တွင် {{freshCount}} တင်သွင်းပါ", + "submitCountOfTotal": "မှတ်ချက် {{displayTotalCount}} တွင် {{displayFreshCount}} တင်သွင်းပါ", "submitReview": "သုံးသပ်မှုတင်သွင်းပါ", - "partialPostedMessage": "မှတ်ချက် {{freshCount}} ခု တင်ပြီးပါပြီ။ မှတ်ချက် {{staleCount}} ခုသည် အဟောင်း commit ကို ညွှန်ပြပြီး သင့်တန်းစီတွင် ရှိနေပါသည်။" + "partialPostedMessage": "မှတ်ချက် {{displayFreshCount}} ခု တင်ပြီးပါပြီ။ မှတ်ချက် {{displayStaleCount}} ခုသည် အဟောင်း commit ကို ညွှန်ပြပြီး သင့်တန်းစီတွင် ရှိနေပါသည်။" }, "reconnectNotice": { "title": "GitHub ချိတ်ဆက်မှု သက်တမ်းကုန်သွားသည်", @@ -580,7 +580,8 @@ "agents": "Agent များ", "profile": "ပရိုဖိုင်", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}၊ tab၊ {{total}} အနက် {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "မကြာသေးမီ", "common": "အသုံးများ", "reactWith": "{{reaction}} ဖြင့် တုံ့ပြန်ပါ", - "accessibility": "{{emoji}} တုံ့ပြန်မှု, {{count}}" + "accessibility": "{{emoji}} တုံ့ပြန်မှု, {{displayCount}}" }, "composer": { "replyingTo": "အကြောင်းပြန်နေသည်", @@ -650,7 +651,7 @@ "imageUnavailable": "ပုံ မရနိုင်ပါ", "openFailed": "တွဲထားသောဖိုင်ကို ဖွင့်မရပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ပြီး ထပ်စမ်းကြည့်ပါ။", "attachFailed": "ဖိုင်တွဲရန် မအောင်မြင်ပါ", - "limit": "ဖိုင် {{count}} အထိ တွဲနိုင်ပါသည်။", + "limit": "ဖိုင် {{displayCount}} အထိ တွဲနိုင်ပါသည်။", "sizeRejection": "{{filename}} သည် {{limit}} တွဲနိုင်သော ကန့်သတ်ချက်ထက် ကျော်လွန်ပါသည်။", "unreadable": "{{filename}} ကို ဖတ်မရပါ။", "pastedImage": "ကူးထည့်ထားသော ပုံ", @@ -722,6 +723,7 @@ "finalTermEnds": "နောက်ဆုံးသက်တမ်း ကုန်ဆုံး", "afterFinalTerm": "နောက်ဆုံးသက်တမ်းနောက်ပိုင်း", "remaining": "ကျန်ရှိ", + "lessThanOneDay": "ရက် 1 အောက်", "ends": "ကုန်ဆုံး", "expires": "သက်တမ်းကုန်", "noActivePlan": "တက်ကြွသော အစီအစဉ် မရှိပါ", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "သင့် Standard လစဉ်စျေးနှုန်း", "perMonth": "/လ", "earlybirdAccessUntil": "Earlybird အသုံးပြုခွင့် {{date}} အထိ", - "earlybirdEnding": "Earlybird ကုန်ဆုံးတော့မည်- {{days}} ရက် ကျန်ပါသည်", + "earlybirdEnding": "Earlybird ကုန်ဆုံးတော့မည်- {{remaining}}", "paymentPastDue": "ပေးချေမှု နောက်ကျနေသည်။ သင့်ပေးချေနည်းကို မွမ်းမံပါ။", "subscriptionCancels": "စာရင်းသွင်းမှု {{date}} တွင် ပယ်ဖျက်မည်", - "trialDaysRemaining": "စမ်းသုံး- {{days}} ရက် ကျန်ပါသည်", - "trialEndingSoon": "စမ်းသုံး မကြာမီ ကုန်ဆုံး- {{days}}" + "trialDaysRemaining": "စမ်းသုံး- {{remaining}}", + "trialEndingSoon": "စမ်းသုံး မကြာမီ ကုန်ဆုံး- {{remaining}}" }, "changelog": { "title": "အသစ်အဆန်း", @@ -996,7 +998,7 @@ "stalledTitle": "တစ်ခုခု ရပ်တန့်နေသည်", "stalledBody": "{{name}} ကို အပြီးသတ်၍ မရပါ။ ထပ်ကြိုးစားပါ၊ သို့မဟုတ် ဆက်ဖြစ်နေပါက hi@kilo.ai သို့ အီးမေးလ် ပို့ပါ။", "timeoutTitle": "မျှော်လင့်ထားသည်ထက် ကြာနေသည်", - "timeoutBody": "{{name}} အတွက် ပြင်ဆင်မှုက ပုံမှန်ထက် ကြာနေသည် ({{minutes}} မိနစ်ကျော်)။", + "timeoutBody": "{{name}} အတွက် ပြင်ဆင်မှုက ပုံမှန်ထက် ကြာနေသည် ({{displayMinutes}} မိနစ်ကျော်)။", "continueInBackground": "နောက်ခံတွင် ဆက်လုပ်ရန်", "settingUp": "{{name}} ပြင်ဆင်နေသည်", "finishingSetup": "ပြင်ဆင်မှု အပြီးသတ်နေသည်", @@ -1287,7 +1289,7 @@ "mergeGate": "ပေါင်းစည်းမှု တံခါး", "repositories": "စာအုပ်များ", "allRepositories": "စာအုပ်များအားလုံး", - "nSelected": "{{count}} ရွေးထား", + "nSelected": "{{displayCount}} ရွေးထား", "reviewMemory": "စစ်ဆေးမှု မှတ်ဉာဏ်", "proposedReviewMdGuidance": "အဆိုပြုထားသော REVIEW.md လမ်းညွှန်" }, @@ -1391,14 +1393,14 @@ "analyzed": "ခွဲခြမ်းစိတ်ဖြာပြီး", "exploitabilityReasoning": "အသုံးချနိုင်မှု ဆင်ခြင်ချက်", "suggestedFix": "အကြံပြုထားသော ပြင်ဆင်ချက်", - "whereFound": "၎င်းကို တွေ့ရှိခဲ့သည့်နေရာ ({{count}})", + "whereFound": "၎င်းကို တွေ့ရှိခဲ့သည့်နေရာ ({{displayCount}})", "fullReport": "ထုတ်လုပ်ထားသော အပြည့်အစုံအစီရင်ခံစာ", "unknown": "အမည်မသိ", "yes": "ဟုတ်သည်", "no": "မဟုတ်" }, "dashboard": { - "findingsCount": "တွေ့ရှိချက် {{count}} ခု", + "findingsCount": "တွေ့ရှိချက် {{displayCount}} ခု", "notMeasured": "တိုင်းတာမထား", "actFirst": "ဦးစွာလုပ်ဆောင်ပါ", "slaPosture": "SLA အနေအထား", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "သိုလှောင်မှု လုပ်ဆောင်ချက် အစီအစဉ်", "noOpenFindings": "အာရုံစိုက်ရန် လိုအပ်သော ဖွင့်ထားသည့်တွေ့ရှိချက် မရှိပါ", "deadlineToday": "ယနေ့ သတ်မှတ်ရက် ရောက်ပြီ", - "daysOverdue": "{{count}} ရက် ကျော်လွန်ခဲ့သည်", + "daysOverdue": "{{displayCount}} ရက် ကျော်လွန်ခဲ့သည်", "withinDeadline": "သတ်မှတ်ရက်အတွင်း", "criticalOverdue": "အရေးကြီး သတ်မှတ်ရက်ကျော်လွန်", "highOverdue": "မြင့်မား သတ်မှတ်ရက်ကျော်လွန်", @@ -1435,6 +1437,27 @@ "syncQueued": "ထပ်တူပြုရန် တန်းစီထား", "syncStatusUnavailable": "ထပ်တူပြုမှု အခြေအနေ မရရှိနိုင်" }, + "dashboardMetrics": { + "openFindings": "ဖွင့်ထားသော တွေ့ရှိချက်များ", + "openFindingsDetail": "{{critical}} ဆိုးရွား၊ {{high}} မြင့်", + "confirmedExploitable": "အမြတ်ထုတ်နိုင်ကြောင်း အတည်ပြုပြီး", + "confirmedExploitableDetail": "ခွဲခြမ်းစိတ်ဖြာမှုဖြင့် ပရောဂျက်အန္တရာယ် အတည်ပြုပြီး", + "needsReview": "သင့်ပြန်လည်သုံးသပ်မှု လိုအပ်သည်", + "needsReviewDetail": "လူသားဆုံးဖြတ်ချက် လိုအပ်သည်", + "analysisIncomplete": "ခွဲခြမ်းစိတ်ဖြာမှု မပြီးပြာ", + "analysisIncompleteDetail": "ပရောဂျက်အန္တရာယ်ကို မသိရသေးပါ", + "slaCompliance": "SLA လိုက်နာမှု", + "notMeasured": "တိုင်းတာမထား", + "withinDeadlineDetail": "သတ်မှတ်ချိန်အတွင်း {{total}} အနက် {{within}}", + "noDeadlineData": "တွေ့ရှိချက်များတွင် SLA သတ်မှတ်ချိန် မရှိသေးပါ", + "deadlinePassed": "သတ်မှတ်ချိန် ကျော်လွန်ပြီး", + "deadlinePassedDetail": "{{critical}} ဆိုးရွား၊ {{high}} မြင့်", + "dueThisWeek": "ဤတစ်ပတ်အတွင်း ကုန်ဆုံးမည်", + "dueThisWeekDetail": "{{exploitable}} အမြတ်ထုတ်နိုင်ကြောင်း အတည်ပြုပြီး", + "noDeadline": "သတ်မှတ်ချိန် မရှိ", + "reviewSlaAssignment": "SLA တာဝန်ပေးမှုကို ပြန်လည်သုံးသပ်ပါ", + "allOpenFindingsTracked": "ဖွင့်ထားသော တွေ့ရှိချက်အားလုံး ခြေရာခံပြီး" + }, "dismiss": { "title": "တွေ့ရှိချက်ကို ဖယ်ရှားပါ", "submit": "တွေ့ရှိချက်ကို ဖယ်ရှားပါ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ခွဲခြမ်းစိတ်ဖြာမှု", "automation": "အလိုအလျောက်လုပ်ဆောင်မှု", "automationAllOff": "အားလုံး ပိတ်", - "automationCount": "3 ခုတွင် {{count}} ခု ဖွင့်ထား", + "automationCount": "3 ခုတွင် {{displayCount}} ခု ဖွင့်ထား", "notifications": "အသိပေးချက်များ", - "notificationsCount": "2 ခုတွင် {{count}} ခု ဖွင့်ထား", + "notificationsCount": "2 ခုတွင် {{displayCount}} ခု ဖွင့်ထား", "slaPolicy": "SLA မူဝါဒ", "disabledNoManage": "Security Agent ကို ပိတ်ထားသည်။ အဖွဲ့အစည်းပိုင်ရှင်များနှင့် ငွေပေးချေမှုမန်နေဂျာများသာ ၎င်းကို ဖွင့်နိုင်သည်။", "disabledNoRepo": "Security Agent ကို ဖွင့်ရန် အနည်းဆုံး သိုလှောင်မှုတစ်ခု ရွေးချယ်ပါ။", @@ -1524,7 +1547,7 @@ "openPullRequest": "pull request{{number}} ဖွင့်ပါ", "openDraftPullRequest": "draft pull request{{number}} ဖွင့်ပါ", "progress": "တိုးတက်မှု", - "attemptHistory": "ကြိုးစားမှုမှတ်တမ်း ({{count}})", + "attemptHistory": "ကြိုးစားမှုမှတ်တမ်း ({{displayCount}})", "attemptNumber": "ကြိုးစားမှု #{{number}}", "startedBy": "စတင်သူ", "model": "မော်ဒယ်", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "todo များ ဖတ်ပါ", "updateTodos": "todo များ မွမ်းမံပါ", - "linesBadge": "စာကြောင်း {{count}} ခု", - "filesBadge": "ဖိုင် {{count}} ခု", - "matchesBadge": "ကိုက်ညီမှု {{count}} ခု" + "linesBadge": "စာကြောင်း {{displayCount}} ခု", + "filesBadge": "ဖိုင် {{displayCount}} ခု", + "matchesBadge": "ကိုက်ညီမှု {{displayCount}} ခု" }, "readToolMarkdown": { "linesTruncated": "စာကြောင်း {{start}}–{{end}} (အတိုချုံး)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ဤတုံ့ပြန်ချက်ကို အစီရင်ခံ၍မရပါ။", "reportAiResponseSubmitted": "အစီရင်ခံစာ တင်သွင်းပြီး။ လက်ခံကြောင်း {{receiptId}}" }, + "modelCost": { + "lessThan": "{{amount}} အောက်", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "အသေးစိတ်များ မရရှိနိုင်", "textDisplay": "စာသားပြသမှု", @@ -1999,7 +2026,7 @@ "preparationComplete": "ပြင်ဆင်မှု ပြီးဆုံး", "preparationFailed": "ပြင်ဆင်မှု မအောင်မြင်ခဲ့ပါ", "setupCommand": "setup command {{index}}", - "setupCommandOf": "setup command {{index}} / {{count}} ခုတွင်" + "setupCommandOf": "setup command {{index}} / {{displayCount}} ခုတွင်" }, "permissionCard": { "title": "ခွင့်ပြုချက် လိုအပ်သည်", @@ -2036,7 +2063,7 @@ "submissionFailed": "တင်သွင်းမှု မအောင်မြင်ပါ။ ထပ်ကြိုးစားပါ။", "questionAnnouncement": "Agent သည် သင့်ထည့်သွင်းမှု လိုအပ်နေသည်။ သင်ဖြေဆိုနေစဉ် composer ကို ရပ်ထားသည်။", "permissionAnnouncement": "Agent သည် ဆက်လက်လုပ်ဆောင်ရန် ခွင့်ပြုချက် လိုအပ်နေသည်။ သင်ဆုံးဖြတ်နေစဉ် composer ကို ရပ်ထားသည်။", - "positionHint": "({{count}} ခုအနက် 1)", + "positionHint": "({{displayCount}} ခုအနက် 1)", "movedPastPrompt": "Agent သည် ဤ prompt ကို ကျော်သွားပြီးဖြစ်သည်။ session ဆက်လုပ်သောအခါ ဤ card သည် ပိတ်သွားပါမည်။", "waitingForAnswer": "Agent သည် သင့်အဖြေကို စောင့်နေသည်။ ဤမေးခွန်း ဖွင့်ထားစဉ် agent သို့ သင့်စာသည် ရပ်နေသည်။", "waitingForPermission": "Agent သည် ခွင့်ပြုချက်ကို စောင့်နေသည်။ ဤတောင်းဆိုမှု ဖွင့်ထားစဉ် agent သို့ သင့်စာသည် ရပ်နေသည်။" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "ကင်မရာ ဝင်ရောက်ခွင့် ပိတ်ထားသည်", "cameraAccessMessage": "ဓာတ်ပုံရိုက်ရန် ဆက်တင်များ တွင် ကင်မရာ ဝင်ရောက်ခွင့် ခွင့်ပြုပါ။", "couldNotOpenPhotoPicker": "photo picker ကို မဖွင့်နိုင်ပါ။ Kilo ကို ပြန်စပြီး ထပ်ကြိုးစားပါ။", - "maxFilesAllowed": "ဖိုင် အများဆုံး {{count}} ခု ခွင့်ပြုသည်", + "maxFilesAllowed": "ဖိုင် အများဆုံး {{displayCount}} ခု ခွင့်ပြုသည်", "onlyAddingFiles": "ဖိုင် {{total}} ခုမှ {{accepted}} ခုသာ ထည့်နေသည် (အများဆုံး {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ကုန်ကျစရိတ် {{cost}}", "costSuffix": "၊ ကုန်ကျစရိတ် {{cost}}", "tokensWindowUnavailable": "Context token {{used}} ခု၊ window မရနိုင်ပါ", - "tokensUsage": "Context {{window}} token မှ {{used}} ခု သုံးထားသည်၊ {{percentage}}% သုံးပြီးပါပြီ", + "tokensUsage": "Context {{window}} token မှ {{used}} ခု သုံးထားသည်၊ {{percentage}} သုံးပြီးပါပြီ", "title": "context အသုံးပြုမှု", "used": "သုံးပြီးသား", "remaining": "ကျန်ရှိနေ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "အသုံးပြုမှုသည် နောက်ဆုံး ပြီးဆုံးသော assistant တုံ့ပြန်ချက်ကို ထင်ဟပ်သည်။", "tokenUsage": "token အသုံးပြုမှု", "cacheRate": "cache နှုန်း", - "modelsCount": "မော်ဒယ်များ ({{count}})", + "modelsCount": "မော်ဒယ်များ ({{displayCount}})", "tokenTotalsNote": "token စုစုပေါင်းများသည် ဤ session အတွက်သာဖြစ်ပြီး subagent/child-session token များ မပါဝင်ပါ။", "subagents": "Subagent များ", "subagentsDescription": "child session များမှ ကျန်ရှိ ကုန်ကျစရိတ်", @@ -2373,7 +2400,7 @@ "connectedCli": "ချိတ်ဆက်ထားသော CLI တွင်", "newSessionOn": "{{name}} တွင် session အသစ်", "noMatchingSessions": "ကိုက်ညီသော session များ မရှိပါ။", - "onlyFirstFilesAttached": "ပထမ ဖိုင် {{count}} ခုသာ ပူးတွဲပါမည်။", + "onlyFirstFilesAttached": "ပထမ ဖိုင် {{displayCount}} ခုသာ ပူးတွဲပါမည်။", "staleMessage": "ဤ မျှဝေမှု မရနိုင်တော့ပါ။", "retryableMessage": "သင့် session များကို မတင်နိုင်ပါ။", "emptyMessage": "session များ မရှိသေးပါ — ဤအရာပို့ရန် အသစ်တစ်ခု စတင်ပါ။", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "ဤ Apple Account ရှိ Kilo Pass သည် အခြား Kilo အကောင့်တစ်ခုနှင့် သက်ဆိုင်သည်။ ၎င်းကို စီမံရန် ထို Kilo အကောင့်ဖြင့် ဝင်ပါ။", "alreadySubscribed": "သင့်တွင် Kilo Pass subscription ရှိပြီးသားဖြစ်သည်။", "purchaseUnavailable": "Kilo Pass ဝယ်ယူမှုသည် ယခု မရနိုင်ပါ။", - "tierCredits": "credit ${{amount}}", + "tierCredits": "credit {{amount}}", "perMonth": "{{price}}/လ", "verifyPurchaseFailed": "သင့်ဝယ်ယူမှုကို အတည်မပြုနိုင်ပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ဆေးပြီး ထပ်ကြိုးစားပါ။", "productsCouldNotLoad": "App Store မှ Kilo Pass ထုတ်ကုန်များကို မဖွင့်နိုင်ပါ။", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store subscription စီမံခန့်ခွဲမှုကို မဖွင့်နိုင်ပါ။", "kiloPassSetup": "Kilo Pass ပြင်ဆင်မှု", "subscriptionHeaderDescription": "Kilo App — Cloud Agents၊ remote session များ နှင့် KiloClaw ချတ်များတွင် AI coding session များ လည်ပတ်ရန် သင့် Kilo လက်ကျန်သို့ credit များ ထည့်ပေးသော လစဉ် subscription တစ်ခု။", - "tierDescription": "Kilo App အသုံးပြုမှုအတွက် လစဉ် ထည့်ပေးသော credit ${{price}} ။", + "tierDescription": "Kilo App အသုံးပြုမှုအတွက် လစဉ် ထည့်ပေးသော credit {{price}} ။", "subscribe": "Subscribe", "subscribeDescription": "bonus တိုးတက်မှုနှင့် လစဉ် credit များ", "manage": "စီမံရန်", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass ဆိုင်းငံ့နေသည်", "statusCanceling": "Kilo Pass ဖျက်သိမ်းနေသည်", "statusPastDue": "Kilo Pass ကျော်လွန်နေသည်", - "monthlyCredits": "လစဉ် credit ${{credits}}", + "monthlyCredits": "လစဉ် credit {{credits}}", "ends": "{{date}} တွင် အဆုံးသတ်သည်", "periodEnd": "ကာလအဆုံး", "managedOnGooglePlay": "Google Play တွင် စီမံသည်", diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index d585a2d591..4e39b3b5f7 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -206,11 +206,11 @@ "loadingLines": "Laster {{loaded}} av {{total}} linjer…", "expandContext": "Utvid kontekst", "expandMoreContext": "Utvid mer kontekst", - "expandLines": "Utvid {{count}} linjer ({{start}}–{{end}})", - "expandMoreLines": "Utvid {{count}} flere linjer ({{start}}–{{end}})", - "expandLinesOfContext": "Utvid {{count}} kontekstlinjer", + "expandLines": "Utvid {{displayCount}} linjer ({{start}}–{{end}})", + "expandMoreLines": "Utvid {{displayCount}} flere linjer ({{start}}–{{end}})", + "expandLinesOfContext": "Utvid {{displayCount}} kontekstlinjer", "expandAll": "Utvid alle", - "expandAllLines": "Utvid alle {{count}} linjene", + "expandAllLines": "Utvid alle {{displayCount}} linjene", "loadingMoreFiles": "Laster flere filer…", "retryLoadingNextPage": "Prøv å laste neste side igjen", "failedToLoadMoreFiles": "Kunne ikke laste flere filer — trykk for å prøve igjen", @@ -301,7 +301,7 @@ "closeReactions": "Lukk reaksjoner", "reactionsTitle": "Reaksjoner", "addReaction": "Legg til reaksjon", - "reactionPill": "{{emoji}}-reaksjon, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}}-reaksjon, {{displayCount}} {{countLabel}}", "reaction_one": "reaksjon", "reaction": "reaksjoner", "reaction_other": "reaksjoner", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Ingen anmeldelsestråder eller samtalekommentarer på denne pull requesten.", "reviewFiles": "Anmeld filer", "quotedDiffSnippet": "Sitert diff-utdrag", - "moreLinesAbove": "… {{count}} flere linjer over", + "moreLinesAbove": "… {{displayCount}} flere linjer over", "termsAcceptRequired": "Du må godta vilkårene for bruk for å publisere.", "termsOutdatedCopy": "Vilkårene for bruk har endret seg. Åpne denne skjermen på nytt for å godta den nyeste versjonen.", "termsCheckRetryCopy": "Kunne ikke sjekke vilkårene for bruk. Sjekk tilkoblingen og prøv igjen." @@ -395,11 +395,11 @@ "retryChecks": "Prøv sjekkene igjen", "viewOnGitHub": "Vis PR på GitHub", "noChecksReported": "Ingen sjekker rapportert", - "passed": "{{count}} bestått", - "failed": "{{count}} mislyktes", - "pending": "{{count}} venter", - "skipped": "{{count}} hoppet over", - "checksCount": "{{count}} sjekker", + "passed": "{{displayCount}} bestått", + "failed": "{{displayCount}} mislyktes", + "pending": "{{displayCount}} venter", + "skipped": "{{displayCount}} hoppet over", + "checksCount": "{{displayCount}} sjekker", "checkDetails": "sjekkdetaljer", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ventende kommentar", "pendingComment": "ventende kommentarer", "pendingComment_other": "ventende kommentarer", - "submitCountOfTotal": "Send {{freshCount}} av {{totalCount}} kommentarer", + "submitCountOfTotal": "Send {{displayFreshCount}} av {{displayTotalCount}} kommentarer", "submitReview": "Send anmeldelse", - "partialPostedMessage": "Publiserte {{freshCount}} kommentar(er). {{staleCount}} kommentar(er) peker på en eldre commit og ble i køen din." + "partialPostedMessage": "Publiserte {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) peker på en eldre commit og ble i køen din." }, "reconnectNotice": { "title": "GitHub-tilkoblingen er utløpt", @@ -580,7 +580,8 @@ "agents": "Agenter", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, fane, {{position}} av {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Nylig", "common": "Vanlig", "reactWith": "Reager med {{reaction}}", - "accessibility": "{{emoji}}-reaksjon, {{count}}" + "accessibility": "{{emoji}}-reaksjon, {{displayCount}}" }, "composer": { "replyingTo": "Svarer på", @@ -650,7 +651,7 @@ "imageUnavailable": "Bilde utilgjengelig", "openFailed": "Kunne ikke åpne vedlegget. Sjekk tilkoblingen og prøv igjen.", "attachFailed": "Kunne ikke legge ved filen", - "limit": "Du kan legge ved opptil {{count}} filer.", + "limit": "Du kan legge ved opptil {{displayCount}} filer.", "sizeRejection": "{{filename}} overskrider {{limit}}-vedleggsgrensen.", "unreadable": "Kunne ikke lese {{filename}}.", "pastedImage": "det limte bildet", @@ -722,6 +723,7 @@ "finalTermEnds": "Siste periode slutter", "afterFinalTerm": "Etter siste periode", "remaining": "Gjenstår", + "lessThanOneDay": "Mindre enn 1 dag", "ends": "Slutter", "expires": "Utløper", "noActivePlan": "Ingen aktiv plan", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "din Standard månedspris", "perMonth": "/måned", "earlybirdAccessUntil": "Earlybird-tilgang til {{date}}", - "earlybirdEnding": "Earlybird avsluttes: {{days}} dager igjen", + "earlybirdEnding": "Earlybird avsluttes: {{remaining}}", "paymentPastDue": "Betaling er forfalt. Oppdater betalingsmåten din.", "subscriptionCancels": "Abonnementet avsluttes {{date}}", - "trialDaysRemaining": "Prøveperiode: {{days}} dager igjen", - "trialEndingSoon": "Prøveperioden slutter snart: {{days}}" + "trialDaysRemaining": "Prøveperiode: {{remaining}}", + "trialEndingSoon": "Prøveperioden slutter snart: {{remaining}}" }, "changelog": { "title": "Hva er nytt", @@ -996,7 +998,7 @@ "stalledTitle": "Noe stoppet opp", "stalledBody": "Vi kunne ikke fullføre oppsettet av {{name}}. Prøv igjen, eller send e-post til hi@kilo.ai hvis dette fortsetter.", "timeoutTitle": "Tar lengre tid enn forventet", - "timeoutBody": "Oppsettet av {{name}} tar lengre tid enn vanlig (over {{minutes}} minutter).", + "timeoutBody": "Oppsettet av {{name}} tar lengre tid enn vanlig (over {{displayMinutes}} minutter).", "continueInBackground": "Fortsett i bakgrunnen", "settingUp": "Setter opp {{name}}", "finishingSetup": "Fullfører oppsett", @@ -1287,7 +1289,7 @@ "mergeGate": "Fusjonsport", "repositories": "Repositorier", "allRepositories": "Alle repositorier", - "nSelected": "{{count}} valgt", + "nSelected": "{{displayCount}} valgt", "reviewMemory": "Gjennomgangsminne", "proposedReviewMdGuidance": "Foreslått REVIEW.md-veiledning" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analysert", "exploitabilityReasoning": "Begrunnelse for utnyttbarhet", "suggestedFix": "Foreslått rettelse", - "whereFound": "Hvor dette ble funnet ({{count}})", + "whereFound": "Hvor dette ble funnet ({{displayCount}})", "fullReport": "Full generert rapport", "unknown": "Ukjent", "yes": "Ja", "no": "Nei" }, "dashboard": { - "findingsCount": "{{count}} funn", + "findingsCount": "{{displayCount}} funn", "notMeasured": "Ikke målt", "actFirst": "Handle først", "slaPosture": "SLA-holdning", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Handlingsplan for repository", "noOpenFindings": "Ingen åpne funn trenger oppmerksomhet", "deadlineToday": "Frist nådd i dag", - "daysOverdue": "{{count}} dager på overtid", + "daysOverdue": "{{displayCount}} dager på overtid", "withinDeadline": "Innenfor frist", "criticalOverdue": "Kritiske på overtid", "highOverdue": "Høye på overtid", @@ -1435,6 +1437,27 @@ "syncQueued": "Synkronisering i kø", "syncStatusUnavailable": "Synkroniseringsstatus utilgjengelig" }, + "dashboardMetrics": { + "openFindings": "Åpne funn", + "openFindingsDetail": "{{critical}} kritiske, {{high}} høye", + "confirmedExploitable": "Bekreftet utnyttbar", + "confirmedExploitableDetail": "Prosjektrisiko bekreftet av analyse", + "needsReview": "Trenger din vurdering", + "needsReviewDetail": "Menneskelig avgjørelse kreves", + "analysisIncomplete": "Analysen er ikke fullført", + "analysisIncompleteDetail": "Prosjektrisikoen er fortsatt ukjent", + "slaCompliance": "SLA-overholdelse", + "notMeasured": "Ikke målt", + "withinDeadlineDetail": "{{within}} av {{total}} innen fristen", + "noDeadlineData": "Ingen funn har en SLA-frist ennå", + "deadlinePassed": "Fristen er passert", + "deadlinePassedDetail": "{{critical}} kritiske, {{high}} høye", + "dueThisWeek": "Forfaller denne uken", + "dueThisWeekDetail": "{{exploitable}} bekreftet utnyttbare", + "noDeadline": "Ingen frist", + "reviewSlaAssignment": "Gjennomgå SLA-tilordningen", + "allOpenFindingsTracked": "Alle åpne funn spores" + }, "dismiss": { "title": "Avvis funn", "submit": "Avvis funn", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}}-analyse", "automation": "Automatisering", "automationAllOff": "Alt av", - "automationCount": "{{count}} av 3 aktivert", + "automationCount": "{{displayCount}} av 3 aktivert", "notifications": "Varsler", - "notificationsCount": "{{count}} av 2 aktivert", + "notificationsCount": "{{displayCount}} av 2 aktivert", "slaPolicy": "SLA-policy", "disabledNoManage": "Security Agent er deaktivert. Bare organisasjonseiere og faktureringsansvarlige kan slå det på.", "disabledNoRepo": "Velg minst ett repository før du aktiverer Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Åpne pull request{{number}}", "openDraftPullRequest": "Åpne utkast til pull request{{number}}", "progress": "Fremdrift", - "attemptHistory": "Forsøkshistorikk ({{count}})", + "attemptHistory": "Forsøkshistorikk ({{displayCount}})", "attemptNumber": "Forsøk #{{number}}", "startedBy": "Startet av", "model": "Modell", @@ -1855,9 +1878,9 @@ "toolTask": "oppgave", "readTodos": "Les gjøremål", "updateTodos": "Oppdater gjøremål", - "linesBadge": "{{count}} linjer", - "filesBadge": "{{count}} filer", - "matchesBadge": "{{count}} treff" + "linesBadge": "{{displayCount}} linjer", + "filesBadge": "{{displayCount}} filer", + "matchesBadge": "{{displayCount}} treff" }, "readToolMarkdown": { "linesTruncated": "linjer {{start}}–{{end}} (avkortet)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Dette svaret kan ikke rapporteres.", "reportAiResponseSubmitted": "Rapport sendt. Kvittering {{receiptId}}" }, + "modelCost": { + "lessThan": "mindre enn {{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detaljer utilgjengelig", "textDisplay": "Tekstvisning", @@ -1999,7 +2026,7 @@ "preparationComplete": "Forberedelse fullført", "preparationFailed": "Forberedelse mislyktes", "setupCommand": "Oppsettkommando {{index}}", - "setupCommandOf": "Oppsettkommando {{index}} av {{count}}" + "setupCommandOf": "Oppsettkommando {{index}} av {{displayCount}}" }, "permissionCard": { "title": "Tillatelse kreves", @@ -2036,7 +2063,7 @@ "submissionFailed": "Innsendingen mislyktes. Prøv igjen.", "questionAnnouncement": "Agenten trenger innspill fra deg. Komponisten er satt på pause mens du svarer.", "permissionAnnouncement": "Agenten trenger tillatelse for å fortsette. Komponisten er satt på pause mens du bestemmer deg.", - "positionHint": "(1 av {{count}})", + "positionHint": "(1 av {{displayCount}})", "movedPastPrompt": "Agenten har gått forbi denne meldingen. Dette kortet lukkes når økten fortsetter.", "waitingForAnswer": "Agenten venter på svaret ditt. Mens dette spørsmålet er åpent, er meldingen din til agenten satt på pause.", "waitingForPermission": "Agenten venter på tillatelse. Mens denne forespørselen er åpen, er meldingen din til agenten satt på pause." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kameratilgang deaktivert", "cameraAccessMessage": "Gi kameratilgang i Innstillinger for å ta et bilde.", "couldNotOpenPhotoPicker": "Kunne ikke åpne fotovelegeren. Start Kilo på nytt og prøv igjen.", - "maxFilesAllowed": "Maksimum {{count}} filer tillatt", + "maxFilesAllowed": "Maksimum {{displayCount}} filer tillatt", "onlyAddingFiles": "Legger bare til {{accepted}} av {{total}} filer (maks {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kostnad {{cost}}", "costSuffix": ", kostnad {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} tokens, vindu utilgjengelig", - "tokensUsage": "Kontekst {{used}} av {{window}} tokens, {{percentage}}% brukt", + "tokensUsage": "Kontekst {{used}} av {{window}} tokens, {{percentage}} brukt", "title": "Kontekstbruk", "used": "Brukt", "remaining": "Gjenstående", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Bruken gjenspeiler det siste fullførte assistentsvaret.", "tokenUsage": "Tokenbruk", "cacheRate": "Cache-sats", - "modelsCount": "Modeller ({{count}})", + "modelsCount": "Modeller ({{displayCount}})", "tokenTotalsNote": "Tokentotaler dekker kun denne økten og ekskluderer underagent-/barneøkttokens.", "subagents": "Underagenter", "subagentsDescription": "Restkostnad fra barneøkter", @@ -2373,7 +2400,7 @@ "connectedCli": "På en tilkoblet CLI", "newSessionOn": "Ny økt på {{name}}", "noMatchingSessions": "Ingen samsvarende økter.", - "onlyFirstFilesAttached": "Kun de første {{count}} filene vil bli lagt til.", + "onlyFirstFilesAttached": "Kun de første {{displayCount}} filene vil bli lagt til.", "staleMessage": "Denne delingen er ikke lenger tilgjengelig.", "retryableMessage": "Kunne ikke laste øktene dine.", "emptyMessage": "Ingen økter ennå — start en ny for å sende dette.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass på denne Apple-kontoen tilhører en annen Kilo-konto. Logg inn på den Kilo-kontoen for å administrere den.", "alreadySubscribed": "Du har allerede et Kilo Pass-abonnement.", "purchaseUnavailable": "Kilo Pass-kjøp er ikke tilgjengelig akkurat nå.", - "tierCredits": "${{amount}} i kreditter", + "tierCredits": "{{amount}} i kreditter", "perMonth": "{{price}}/mnd", "verifyPurchaseFailed": "Kunne ikke verifisere kjøpet ditt. Sjekk tilkoblingen din og prøv igjen.", "productsCouldNotLoad": "Kilo Pass-produktene kunne ikke lastes fra App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Kunne ikke åpne App Store-abonnementsadministrasjonen.", "kiloPassSetup": "Kilo Pass-oppsett", "subscriptionHeaderDescription": "Et månedlig abonnement som legger til kreditter på Kilo-saldoen din for å kjøre AI-kodeøkter i Kilo App — Cloud Agents, eksterne økter og KiloClaw-chatter.", - "tierDescription": "${{price}} betalte kreditter lagt til månedlig for bruk av Kilo App.", + "tierDescription": "{{price}} betalte kreditter lagt til månedlig for bruk av Kilo App.", "subscribe": "Abonner", "subscribeDescription": "Månedlige kreditter med bonusfremgang", "manage": "Administrer", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass venter", "statusCanceling": "Kilo Pass avbryter", "statusPastDue": "Kilo Pass forfalt", - "monthlyCredits": "${{credits}} månedlige kreditter", + "monthlyCredits": "{{credits}} månedlige kreditter", "ends": "Slutter {{date}}", "periodEnd": "periode slutt", "managedOnGooglePlay": "Administreres på Google Play", diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index d0464d1460..60266752ee 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -206,11 +206,11 @@ "loadingLines": "{{loaded}} / {{total}} पङ्क्तिहरू लोड गर्दै…", "expandContext": "सन्दर्भ विस्तार गर्नुहोस्", "expandMoreContext": "थप सन्दर्भ विस्तार गर्नुहोस्", - "expandLines": "{{count}} पङ्क्तिहरू विस्तार गर्नुहोस् ({{start}}–{{end}})", - "expandMoreLines": "थप {{count}} पङ्क्तिहरू विस्तार गर्नुहोस् ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} पङ्क्तिहरूको सन्दर्भ विस्तार गर्नुहोस्", + "expandLines": "{{displayCount}} पङ्क्तिहरू विस्तार गर्नुहोस् ({{start}}–{{end}})", + "expandMoreLines": "थप {{displayCount}} पङ्क्तिहरू विस्तार गर्नुहोस् ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} पङ्क्तिहरूको सन्दर्भ विस्तार गर्नुहोस्", "expandAll": "सबै विस्तार गर्नुहोस्", - "expandAllLines": "सबै {{count}} पङ्क्तिहरू विस्तार गर्नुहोस्", + "expandAllLines": "सबै {{displayCount}} पङ्क्तिहरू विस्तार गर्नुहोस्", "loadingMoreFiles": "थप फाइलहरू लोड गर्दै…", "retryLoadingNextPage": "अर्को पृष्ठ लोड गर्न पुनः प्रयास गर्नुहोस्", "failedToLoadMoreFiles": "थप फाइलहरू लोड गर्न असफल — पुनः प्रयास गर्न ट्याप गर्नुहोस्", @@ -301,7 +301,7 @@ "closeReactions": "प्रतिक्रियाहरू बन्द गर्नुहोस्", "reactionsTitle": "प्रतिक्रियाहरू", "addReaction": "प्रतिक्रिया थप्नुहोस्", - "reactionPill": "{{emoji}} प्रतिक्रिया, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} प्रतिक्रिया, {{displayCount}} {{countLabel}}", "reaction_one": "प्रतिक्रिया", "reaction": "प्रतिक्रियाहरू", "reaction_other": "प्रतिक्रियाहरू", @@ -353,7 +353,7 @@ "noDiscussionDescription": "यो पुल अनुरोधमा कुनै समीक्षा थ्रेड वा कुराकानी टिप्पणीहरू छैनन्।", "reviewFiles": "फाइलहरू समीक्षा गर्नुहोस्", "quotedDiffSnippet": "उद्धृत diff स्निपेट", - "moreLinesAbove": "… {{count}} थप पङ्क्तिहरू माथि", + "moreLinesAbove": "… {{displayCount}} थप पङ्क्तिहरू माथि", "termsAcceptRequired": "पोस्ट गर्न तपाईंले सेवाका सर्तहरू स्वीकार गर्नुपर्छ।", "termsOutdatedCopy": "सेवाका सर्तहरू परिवर्तन भयो। नवीनतम संस्करण स्वीकार गर्न यो स्क्रिन फेरि खोल्नुहोस्।", "termsCheckRetryCopy": "सेवाका सर्तहरू जाँच्न सकिएन। तपाईंको जडान जाँचेर फेरि प्रयास गर्नुहोस्।" @@ -395,11 +395,11 @@ "retryChecks": "जाँचहरू पुनः प्रयास गर्नुहोस्", "viewOnGitHub": "GitHub मा PR हेर्नुहोस्", "noChecksReported": "कुनै जाँच रिपोर्ट गरिएन", - "passed": "{{count}} पास भयो", - "failed": "{{count}} असफल भयो", - "pending": "{{count}} प्रतीक्षामा", - "skipped": "{{count}} छोडियो", - "checksCount": "{{count}} जाँचहरू", + "passed": "{{displayCount}} पास भयो", + "failed": "{{displayCount}} असफल भयो", + "pending": "{{displayCount}} प्रतीक्षामा", + "skipped": "{{displayCount}} छोडियो", + "checksCount": "{{displayCount}} जाँचहरू", "checkDetails": "जाँच विवरणहरू", "pullRequest": "पुल अनुरोध" }, @@ -459,9 +459,9 @@ "pendingComment_one": "प्रतीक्षामा रहेको टिप्पणी", "pendingComment": "प्रतीक्षामा रहेका टिप्पणीहरू", "pendingComment_other": "प्रतीक्षामा रहेका टिप्पणीहरू", - "submitCountOfTotal": "{{totalCount}} मध्ये {{freshCount}} टिप्पणीहरू पेश गर्नुहोस्", + "submitCountOfTotal": "{{displayTotalCount}} मध्ये {{displayFreshCount}} टिप्पणीहरू पेश गर्नुहोस्", "submitReview": "समीक्षा पेश गर्नुहोस्", - "partialPostedMessage": "{{freshCount}} टिप्पणी(हरू) पेश गरियो। {{staleCount}} टिप्पणी(हरू) पुरानो कमिटमा औंल्याइएको छ र तपाईंको कतारमा रह्यो।" + "partialPostedMessage": "{{displayFreshCount}} टिप्पणी(हरू) पेश गरियो। {{displayStaleCount}} टिप्पणी(हरू) पुरानो कमिटमा औंल्याइएको छ र तपाईंको कतारमा रह्यो।" }, "reconnectNotice": { "title": "GitHub जडानको म्याद सकियो", @@ -580,7 +580,8 @@ "agents": "एजेन्टहरू", "profile": "प्रोफाइल", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ट्याब, {{total}} मध्ये {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "हालैका", "common": "सामान्य", "reactWith": "{{reaction}} सँग प्रतिक्रिया दिनुहोस्", - "accessibility": "{{emoji}} प्रतिक्रिया, {{count}}" + "accessibility": "{{emoji}} प्रतिक्रिया, {{displayCount}}" }, "composer": { "replyingTo": "जवाफ दिँदै", @@ -650,7 +651,7 @@ "imageUnavailable": "छवि उपलब्ध छैन", "openFailed": "संलग्न फाइल खोल्न सकिएन। तपाईंको जडान जाँचेर फेरि प्रयास गर्नुहोस्।", "attachFailed": "फाइल संलग्न गर्न असफल", - "limit": "तपाईं {{count}} सम्म फाइलहरू संलग्न गर्न सक्नुहुन्छ।", + "limit": "तपाईं {{displayCount}} सम्म फाइलहरू संलग्न गर्न सक्नुहुन्छ।", "sizeRejection": "{{filename}} ले {{limit}} संलग्न सीमा नाघेको छ।", "unreadable": "{{filename}} पढ्न सकिएन।", "pastedImage": "टाँसिएको छवि", @@ -722,6 +723,7 @@ "finalTermEnds": "अन्तिम अवधि समाप्त हुन्छ", "afterFinalTerm": "अन्तिम अवधि पछि", "remaining": "बाँकी", + "lessThanOneDay": "१ दिनभन्दा कम", "ends": "समाप्त हुन्छ", "expires": "म्याद सकिन्छ", "noActivePlan": "कुनै सक्रिय योजना छैन", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "तपाईंको स्ट्यान्डर्ड मासिक मूल्य", "perMonth": "/महिना", "earlybirdAccessUntil": "{{date}} सम्म प्रारम्भिक पहुँच", - "earlybirdEnding": "प्रारम्भिक अवधि समाप्त हुँदै: {{days}} दिन बाँकी", + "earlybirdEnding": "प्रारम्भिक अवधि समाप्त हुँदै: {{remaining}}", "paymentPastDue": "भुक्तानी बक्यौता भयो। कृपया आफ्नो भुक्तानी विधि अद्यावधिक गर्नुहोस्।", "subscriptionCancels": "सदस्यता {{date}} मा रद्द हुन्छ", - "trialDaysRemaining": "परीक्षण: {{days}} दिन बाँकी", - "trialEndingSoon": "परीक्षण चाँडै समाप्त हुँदै: {{days}}" + "trialDaysRemaining": "परीक्षण: {{remaining}} बाँकी", + "trialEndingSoon": "परीक्षण चाँडै समाप्त हुँदै: {{remaining}}" }, "changelog": { "title": "के नयाँ छ", @@ -996,7 +998,7 @@ "stalledTitle": "केही अड्कियो", "stalledBody": "हामी {{name}} को सेटअप समाप्त गर्न सकेनौं। फेरि प्रयास गर्नुहोस्, वा यो जारी रहेमा hi@kilo.ai मा इमेल गर्नुहोस्।", "timeoutTitle": "अपेक्षाभन्दा लामो समय लाग्दै", - "timeoutBody": "{{name}} को सेटअप सामान्यभन्दा लामो समय लाग्दै छ ({{minutes}} मिनेटभन्दा बढी)।", + "timeoutBody": "{{name}} को सेटअप सामान्यभन्दा लामो समय लाग्दै छ ({{displayMinutes}} मिनेटभन्दा बढी)।", "continueInBackground": "पृष्ठभूमिमा जारी राख्नुहोस्", "settingUp": "{{name}} सेटअप गर्दै", "finishingSetup": "सेटअप समाप्त गर्दै", @@ -1287,7 +1289,7 @@ "mergeGate": "मर्ज गेट", "repositories": "रिपोजिटरीहरू", "allRepositories": "सबै रिपोजिटरीहरू", - "nSelected": "{{count}} चयन गरियो", + "nSelected": "{{displayCount}} चयन गरियो", "reviewMemory": "समीक्षा मेमोरी", "proposedReviewMdGuidance": "प्रस्तावित REVIEW.md दिशानिर्देश" }, @@ -1391,14 +1393,14 @@ "analyzed": "विश्लेषण गरिएको", "exploitabilityReasoning": "शोषणयोग्यता तर्क", "suggestedFix": "सुझाव गरिएको समाधान", - "whereFound": "यो कहाँ फेला पर्यो ({{count}})", + "whereFound": "यो कहाँ फेला पर्यो ({{displayCount}})", "fullReport": "पूर्ण जेनरेट गरिएको प्रतिवेदन", "unknown": "अज्ञात", "yes": "हो", "no": "होइन" }, "dashboard": { - "findingsCount": "{{count}} निष्कर्षहरू", + "findingsCount": "{{displayCount}} निष्कर्षहरू", "notMeasured": "मापन गरिएको छैन", "actFirst": "पहिले कार्य गर्नुहोस्", "slaPosture": "SLA अवस्था", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "भण्डार कार्य योजना", "noOpenFindings": "ध्यान चाहिने कुनै खुला निष्कर्ष छैन", "deadlineToday": "सीमा आज पुग्यो", - "daysOverdue": "{{count}} दिन ढिलो", + "daysOverdue": "{{displayCount}} दिन ढिलो", "withinDeadline": "सीमाभित्र", "criticalOverdue": "क्रिटिकल ढिलो", "highOverdue": "उच्च ढिलो", @@ -1435,6 +1437,27 @@ "syncQueued": "सिंक कतारमा", "syncStatusUnavailable": "सिंक स्थिति उपलब्ध छैन" }, + "dashboardMetrics": { + "openFindings": "खुला निष्कर्षहरू", + "openFindingsDetail": "{{critical}} क्रिटिकल, {{high}} उच्च", + "confirmedExploitable": "पुष्टि भएको शोषणयोग्य", + "confirmedExploitableDetail": "विश्लेषणद्वारा परियोजना जोखिम पुष्टि भयो", + "needsReview": "तपाईंको समीक्षा आवश्यक छ", + "needsReviewDetail": "मानव निर्णय आवश्यक छ", + "analysisIncomplete": "विश्लेषण पूरा भएको छैन", + "analysisIncompleteDetail": "परियोजना जोखिम अझै अज्ञात छ", + "slaCompliance": "SLA अनुपालन", + "notMeasured": "मापन गरिएको छैन", + "withinDeadlineDetail": "{{total}} मध्ये {{within}} सीमाभित्र", + "noDeadlineData": "कुनै निष्कर्षको SLA सीमा अझै छैन", + "deadlinePassed": "सीमा पार भयो", + "deadlinePassedDetail": "{{critical}} क्रिटिकल, {{high}} उच्च", + "dueThisWeek": "यस हप्ता सीमा", + "dueThisWeekDetail": "{{exploitable}} पुष्टि भएको शोषणयोग्य", + "noDeadline": "कुनै सीमा छैन", + "reviewSlaAssignment": "SLA असाइनमेन्ट समीक्षा", + "allOpenFindingsTracked": "सबै खुला निष्कर्षहरू ट्र्याक गरियो" + }, "dismiss": { "title": "निष्कर्ष खारेज गर्नुहोस्", "submit": "निष्कर्ष खारेज गर्नुहोस्", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} विश्लेषण", "automation": "स्वचालन", "automationAllOff": "सबै बन्द", - "automationCount": "{{count}} मध्ये ३ सक्षम", + "automationCount": "{{displayCount}} मध्ये ३ सक्षम", "notifications": "सूचनाहरू", - "notificationsCount": "{{count}} मध्ये २ सक्षम", + "notificationsCount": "{{displayCount}} मध्ये २ सक्षम", "slaPolicy": "SLA नीति", "disabledNoManage": "सुरक्षा एजेन्ट असक्षम छ। संगठन मालिक र बिलिङ प्रबन्धकले मात्र यसलाई चालू गर्न सक्छन्।", "disabledNoRepo": "सुरक्षा एजेन्ट सक्षम गर्नुअघि कम्तीमा एउटा भण्डार चयन गर्नुहोस्।", @@ -1524,7 +1547,7 @@ "openPullRequest": "Pull request खोल्नुहोस्{{number}}", "openDraftPullRequest": "ड्राफ्ट pull request खोल्नुहोस्{{number}}", "progress": "प्रगति", - "attemptHistory": "प्रयास इतिहास ({{count}})", + "attemptHistory": "प्रयास इतिहास ({{displayCount}})", "attemptNumber": "प्रयास #{{number}}", "startedBy": "द्वारा सुरु गरियो", "model": "मोडेल", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "कामहरू पढ्नुहोस्", "updateTodos": "कामहरू अद्यावधिक गर्नुहोस्", - "linesBadge": "{{count}} पङ्क्तिहरू", - "filesBadge": "{{count}} फाइलहरू", - "matchesBadge": "{{count}} मेलहरू" + "linesBadge": "{{displayCount}} पङ्क्तिहरू", + "filesBadge": "{{displayCount}} फाइलहरू", + "matchesBadge": "{{displayCount}} मेलहरू" }, "readToolMarkdown": { "linesTruncated": "पङ्क्तिहरू {{start}}–{{end}} (ट्रंकेट गरियो)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "यो प्रतिक्रिया रिपोर्ट गर्न सकिँदैन।", "reportAiResponseSubmitted": "रिपोर्ट पेश गरियो। रसिद {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "विवरण उपलब्ध छैन", "textDisplay": "पाठ प्रदर्शन", @@ -1999,7 +2026,7 @@ "preparationComplete": "तयारी पूरा भयो", "preparationFailed": "तयारी असफल भयो", "setupCommand": "सेटअप कमाण्ड {{index}}", - "setupCommandOf": "{{count}} मध्ये सेटअप कमाण्ड {{index}}" + "setupCommandOf": "{{displayCount}} मध्ये सेटअप कमाण्ड {{index}}" }, "permissionCard": { "title": "अनुमति आवश्यक छ", @@ -2036,7 +2063,7 @@ "submissionFailed": "पेश गर्न असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।", "questionAnnouncement": "एजेन्टलाई तपाईंको इनपुट चाहिन्छ। तपाईंले उत्तर नदिउँदासम्म कम्पोजर रोकिएको छ।", "permissionAnnouncement": "जारी राख्न एजेन्टलाई अनुमति चाहिन्छ। तपाईंले निर्णय नगर्दासम्म कम्पोजर रोकिएको छ।", - "positionHint": "({{count}} मध्ये 1)", + "positionHint": "({{displayCount}} मध्ये 1)", "movedPastPrompt": "एजेन्ट यो प्रम्प्टभन्दा अगाडि बढिसकेको छ। सत्र जारी हुँदा यो कार्ड बन्द हुनेछ।", "waitingForAnswer": "एजेन्ट तपाईंको उत्तरको पर्खाइमा छ। यो प्रश्न खुला हुँदा, एजेन्टलाई तपाईंको सन्देश रोकिएको छ।", "waitingForPermission": "एजेन्ट अनुमतिको पर्खाइमा छ। यो अनुरोध खुला हुँदा, एजेन्टलाई तपाईंको सन्देश रोकिएको छ।" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "क्यामेरा पहुँच असक्षम गरियो", "cameraAccessMessage": "फोटो खिच्न सेटिङ्स मा क्यामेरा पहुँच अनुमति दिनुहोस्।", "couldNotOpenPhotoPicker": "फोटो पिकर खोल्न सकिएन। Kilo पुनः सुरु गरेर फेरि प्रयास गर्नुहोस्।", - "maxFilesAllowed": "अधिकतम {{count}} फाइलहरू अनुमति छ", + "maxFilesAllowed": "अधिकतम {{displayCount}} फाइलहरू अनुमति छ", "onlyAddingFiles": "{{total}} फाइलमध्ये {{accepted}} मात्र थप्दै (अधिकतम {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "लागत {{cost}}", "costSuffix": ", लागत {{cost}}", "tokensWindowUnavailable": "सन्दर्भ {{used}} टोकन, विन्डो अनुपलब्ध", - "tokensUsage": "सन्दर्भ {{used}} / {{window}} टोकन, {{percentage}}% प्रयोग भयो", + "tokensUsage": "सन्दर्भ {{used}} / {{window}} टोकन, {{percentage}} प्रयोग भयो", "title": "सन्दर्भ प्रयोग", "used": "प्रयोग गरिएको", "remaining": "बाँकी", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "प्रयोगले पछिल्लो पूर्ण सहायक प्रतिक्रिया झल्काउँछ।", "tokenUsage": "टोकन प्रयोग", "cacheRate": "क्यास दर", - "modelsCount": "मोडेलहरू ({{count}})", + "modelsCount": "मोडेलहरू ({{displayCount}})", "tokenTotalsNote": "टोकन कुलहरूले यो सत्र मात्र समेट्छन् र सबएजेन्ट/चाइल्ड-सत्र टोकनहरू बहिष्कार गर्छन्।", "subagents": "सबएजेन्टहरू", "subagentsDescription": "चाइल्ड सत्रहरूबाट अवशिष्ट लागत", @@ -2373,7 +2400,7 @@ "connectedCli": "जडान भएको CLI मा", "newSessionOn": "{{name}} मा नयाँ सत्र", "noMatchingSessions": "मिल्ने कुनै सत्र छैन।", - "onlyFirstFilesAttached": "पहिलो {{count}} फाइलहरू मात्र संलग्न हुनेछन्।", + "onlyFirstFilesAttached": "पहिलो {{displayCount}} फाइलहरू मात्र संलग्न हुनेछन्।", "staleMessage": "यो साझेदारी अब उपलब्ध छैन।", "retryableMessage": "तपाईंका सत्रहरू लोड गर्न सकिएन।", "emptyMessage": "अहिलेसम्म कुनै सत्र छैन — यो पठाउन नयाँ सुरु गर्नुहोस्।", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "यो Apple खातामा रहेको Kilo Pass अर्को Kilo खातासँग सम्बन्धित छ। यसलाई व्यवस्थापन गर्न त्यो Kilo खातामा साइन इन गर्नुहोस्।", "alreadySubscribed": "तपाईंसँग पहिले नै Kilo Pass सदस्यता छ।", "purchaseUnavailable": "Kilo Pass खरिद अहिले उपलब्ध छैन।", - "tierCredits": "क्रेडिटमा ${{amount}}", + "tierCredits": "क्रेडिटमा {{amount}}", "perMonth": "{{price}}/महिना", "verifyPurchaseFailed": "तपाईंको खरिद प्रमाणित गर्न सकिएन। आफ्नो जडान जाँचेर फेरि प्रयास गर्नुहोस्।", "productsCouldNotLoad": "Kilo Pass उत्पादनहरू App Store बाट लोड गर्न सकिएन।", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store सदस्यता व्यवस्थापन खोल्न असफल भयो।", "kiloPassSetup": "Kilo Pass सेटअप", "subscriptionHeaderDescription": "Kilo App मा AI कोडिङ सत्रहरू — Cloud Agents, रिमोट सत्रहरू, र KiloClaw च्याटहरू — चलाउन तपाईंको Kilo ब्यालेन्समा क्रेडिट थप्ने मासिक सदस्यता।", - "tierDescription": "Kilo App प्रयोगका लागि मासिक ${{price}} भुक्तान गरिएका क्रेडिट थपिन्छन्।", + "tierDescription": "Kilo App प्रयोगका लागि मासिक {{price}} भुक्तान गरिएका क्रेडिट थपिन्छन्।", "subscribe": "सदस्यता लिनुहोस्", "subscribeDescription": "बोनस प्रगतिसहित मासिक क्रेडिटहरू", "manage": "व्यवस्थापन", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass पर्खाइमा छ", "statusCanceling": "Kilo Pass रद्द हुँदै", "statusPastDue": "Kilo Pass बक्यौता", - "monthlyCredits": "${{credits}} मासिक क्रेडिटहरू", + "monthlyCredits": "{{credits}} मासिक क्रेडिटहरू", "ends": "{{date}} मा समाप्त हुन्छ", "periodEnd": "अवधि अन्त्य", "managedOnGooglePlay": "Google Play मा व्यवस्थापन गरियो", diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index aa15cb5705..bf6f61a14e 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -201,7 +201,8 @@ "agents": "Agenten", "profile": "Profiel", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tabblad, {{position}} van {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Recent", "common": "Algemeen", "reactWith": "Reageren met {{reaction}}", - "accessibility": "{{emoji}} reactie, {{count}}" + "accessibility": "{{emoji}} reactie, {{displayCount}}" }, "composer": { "replyingTo": "Antwoorden op", @@ -271,7 +272,7 @@ "imageUnavailable": "Afbeelding niet beschikbaar", "openFailed": "Bijlage kon niet worden geopend. Controleer je verbinding en probeer het opnieuw.", "attachFailed": "Bestand bijvoegen mislukt", - "limit": "Je kunt maximaal {{count}} bestanden bijvoegen.", + "limit": "Je kunt maximaal {{displayCount}} bestanden bijvoegen.", "sizeRejection": "{{filename}} overschrijdt de bijlagelimiet van {{limit}}.", "unreadable": "{{filename}} kon niet worden gelezen.", "pastedImage": "de geplakte afbeelding", @@ -343,6 +344,7 @@ "finalTermEnds": "Laatste termijn eindigt", "afterFinalTerm": "Na de laatste termijn", "remaining": "Resterend", + "lessThanOneDay": "Minder dan 1 dag", "ends": "Eindigt", "expires": "Verloopt", "noActivePlan": "Geen actief abonnement", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "je maandelijkse Standard-prijs", "perMonth": "/maand", "earlybirdAccessUntil": "Earlybird-toegang tot {{date}}", - "earlybirdEnding": "Earlybird eindigt: nog {{days}} dagen", + "earlybirdEnding": "Earlybird eindigt: {{remaining}}", "paymentPastDue": "Betaling achterstallig. Werk je betaalmethode bij.", "subscriptionCancels": "Abonnement wordt geannuleerd op {{date}}", - "trialDaysRemaining": "Proefperiode: nog {{days}} dagen", - "trialEndingSoon": "Proefperiode eindigt binnenkort: {{days}}" + "trialDaysRemaining": "Proefperiode: {{remaining}} resterend", + "trialEndingSoon": "Proefperiode eindigt binnenkort: {{remaining}}" }, "changelog": { "title": "Wat is er nieuw", @@ -665,7 +667,7 @@ "startingSandbox": "Sandbox starten", "stoppedBody": "De instantie van {{name}} is onverwacht gestopt tijdens de installatie.", "stoppedTitle": "Installatie gestopt", - "timeoutBody": "De installatie van {{name}} duurt langer dan normaal (meer dan {{minutes}} minuten).", + "timeoutBody": "De installatie van {{name}} duurt langer dan normaal (meer dan {{displayMinutes}} minuten).", "timeoutTitle": "Duurt langer dan verwacht" }, "unavailableDescription": "Een actief KiloClaw-abonnement is vereist om een instantie in te richten. Bestaande instanties en abonnementen blijven normaal werken.", @@ -912,7 +914,7 @@ "focusAreas": "Focusgebieden", "mergeGate": "Merge-poort", "model": "Model", - "nSelected": "{{count}} geselecteerd", + "nSelected": "{{displayCount}} geselecteerd", "proposedReviewMdGuidance": "Voorgestelde REVIEW.md-richtlijnen", "repositories": "Repositories", "reviewMemory": "Reviewgeheugen", @@ -981,7 +983,7 @@ "triageReasoning": "Triage-redenering", "unknown": "Onbekend", "watchInCloudAgent": "Bekijken in Cloud Agent", - "whereFound": "Waar dit is gevonden ({{count}})", + "whereFound": "Waar dit is gevonden ({{displayCount}})", "yes": "Ja" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "Bevestigd exploiteerbaar", "couldNotLoad": "Dashboardgegevens konden niet worden geladen", "criticalOverdue": "Kritiek achterstallig", - "daysOverdue": "{{count}} dagen achterstallig", + "daysOverdue": "{{displayCount}} dagen achterstallig", "deadlineToday": "Deadline vandaag bereikt", "filterByRepository": "Filteren op repository", "findings": "Bevindingen", - "findingsCount": "{{count}} bevindingen", + "findingsCount": "{{displayCount}} bevindingen", "highOverdue": "Hoog achterstallig", "lastSynced": "Laatst gesynchroniseerd {{time}}", "manageRepositories": "Repositories beheren", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "Synchronisatiestatus niet beschikbaar", "withinDeadline": "Binnen deadline" }, + "dashboardMetrics": { + "openFindings": "Open bevindingen", + "openFindingsDetail": "{{critical}} kritiek, {{high}} hoog", + "confirmedExploitable": "Bevestigd exploiteerbaar", + "confirmedExploitableDetail": "Projectrisico bevestigd door analyse", + "needsReview": "Heeft jouw beoordeling nodig", + "needsReviewDetail": "Menselijke beslissing vereist", + "analysisIncomplete": "Analyse niet voltooid", + "analysisIncompleteDetail": "Projectrisico nog onbekend", + "slaCompliance": "SLA-naleving", + "notMeasured": "Niet gemeten", + "withinDeadlineDetail": "{{within}} van {{total}} binnen de deadline", + "noDeadlineData": "Nog geen bevindingen met een SLA-deadline", + "deadlinePassed": "Deadline verstreken", + "deadlinePassedDetail": "{{critical}} kritiek, {{high}} hoog", + "dueThisWeek": "Deze week vervallen", + "dueThisWeekDetail": "{{exploitable}} bevestigd exploiteerbaar", + "noDeadline": "Geen deadline", + "reviewSlaAssignment": "SLA-toewijzing controleren", + "allOpenFindingsTracked": "Alle open bevindingen bijgehouden" + }, "dismiss": { "alreadyResolvedDescription": "Deze bevinding is al opgelost en accepteert geen afwijzing meer.", "cannotDismissDescription": "Alleen organisatie-eigenaren en factureringsbeheerders kunnen bevindingen afwijzen.", @@ -1188,7 +1211,7 @@ "title": "Meldingen" }, "remediation": { - "attemptHistory": "Pogingsgeschiedenis ({{count}})", + "attemptHistory": "Pogingsgeschiedenis ({{displayCount}})", "attemptNumber": "Poging #{{number}}", "branch": "Branch", "cancelMessage": "Security Agent stopt de lopende herstelpoging.", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "{{mode}} analyse", "automation": "Automatisering", "automationAllOff": "Alles uit", - "automationCount": "{{count}} van 3 ingeschakeld", + "automationCount": "{{displayCount}} van 3 ingeschakeld", "couldNotLoadPermissions": "Rechten konden niet worden geladen", "couldNotLoadRepositories": "Repositories konden niet worden geladen", "couldNotLoadSettings": "Instellingen van Security Agent konden niet worden geladen", @@ -1267,7 +1290,7 @@ "enabled": "Ingeschakeld", "modelsAndAnalysis": "Modellen en analyse", "notifications": "Meldingen", - "notificationsCount": "{{count}} van 2 ingeschakeld", + "notificationsCount": "{{displayCount}} van 2 ingeschakeld", "off": "Uit", "on": "Aan", "repositories": "Repositories", @@ -1476,9 +1499,9 @@ "toolTask": "taak", "readTodos": "Taken lezen", "updateTodos": "Taken bijwerken", - "linesBadge": "{{count}} regels", - "filesBadge": "{{count}} bestanden", - "matchesBadge": "{{count}} overeenkomsten" + "linesBadge": "{{displayCount}} regels", + "filesBadge": "{{displayCount}} bestanden", + "matchesBadge": "{{displayCount}} overeenkomsten" }, "readToolMarkdown": { "linesTruncated": "regels {{start}}–{{end}} (afgekapt)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "Deze reactie kan niet worden gerapporteerd.", "reportAiResponseSubmitted": "Melding verzonden. Ontvangstbewijs {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Details niet beschikbaar", "textDisplay": "Tekstweergave", @@ -1620,7 +1647,7 @@ "preparationComplete": "Voorbereiding voltooid", "preparationFailed": "Voorbereiding mislukt", "setupCommand": "Installatieopdracht {{index}}", - "setupCommandOf": "Installatieopdracht {{index}} van {{count}}" + "setupCommandOf": "Installatieopdracht {{index}} van {{displayCount}}" }, "permissionCard": { "title": "Toestemming vereist", @@ -1657,7 +1684,7 @@ "submissionFailed": "Verzenden mislukt. Probeer het opnieuw.", "questionAnnouncement": "De agent heeft je invoer nodig. De composer is gepauzeerd terwijl je antwoordt.", "permissionAnnouncement": "De agent heeft toestemming nodig om door te gaan. De composer is gepauzeerd terwijl je beslist.", - "positionHint": "(1 van {{count}})", + "positionHint": "(1 van {{displayCount}})", "movedPastPrompt": "De agent is verder gegaan dan deze prompt. Deze kaart sluit wanneer de sessie doorgaat.", "waitingForAnswer": "De agent wacht op je antwoord. Zolang deze vraag open is, is je bericht aan de agent gepauzeerd.", "waitingForPermission": "De agent wacht op toestemming. Zolang dit verzoek open is, is je bericht aan de agent gepauzeerd." @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "Cameratoegang uitgeschakeld", "cameraAccessMessage": "Sta cameratoegang toe in Instellingen om een foto te maken.", "couldNotOpenPhotoPicker": "Kon de fotokiezer niet openen. Start Kilo opnieuw op en probeer het opnieuw.", - "maxFilesAllowed": "Maximaal {{count}} bestanden toegestaan", + "maxFilesAllowed": "Maximaal {{displayCount}} bestanden toegestaan", "onlyAddingFiles": "Alleen {{accepted}} van {{total}} bestanden worden toegevoegd (max. {{max}})" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "kosten {{cost}}", "costSuffix": ", kosten {{cost}}", "tokensWindowUnavailable": "Context {{used}} tokens, venster niet beschikbaar", - "tokensUsage": "Context {{used}} van {{window}} tokens, {{percentage}}% gebruikt", + "tokensUsage": "Context {{used}} van {{window}} tokens, {{percentage}} gebruikt", "title": "Contextgebruik", "used": "Gebruikt", "remaining": "Resterend", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "Het gebruik weerspiegelt het laatst voltooide assistent-antwoord.", "tokenUsage": "Tokenverbruik", "cacheRate": "Cachetarief", - "modelsCount": "Modellen ({{count}})", + "modelsCount": "Modellen ({{displayCount}})", "tokenTotalsNote": "Tokentotalen gelden alleen voor deze sessie en sluiten subagent-/kindsessietokens uit.", "subagents": "Subagents", "subagentsDescription": "Restkosten van kindsessies", @@ -1994,7 +2021,7 @@ "connectedCli": "Op een verbonden CLI", "newSessionOn": "Nieuwe sessie op {{name}}", "noMatchingSessions": "Geen overeenkomende sessies.", - "onlyFirstFilesAttached": "Alleen de eerste {{count}} bestanden worden bijgevoegd.", + "onlyFirstFilesAttached": "Alleen de eerste {{displayCount}} bestanden worden bijgevoegd.", "staleMessage": "Deze share is niet meer beschikbaar.", "retryableMessage": "Je sessies konden niet worden geladen.", "emptyMessage": "Nog geen sessies — start een nieuwe om dit te verzenden.", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "De Kilo Pass op dit Apple-account hoort bij een ander Kilo-account. Meld je aan bij dat Kilo-account om het te beheren.", "alreadySubscribed": "Je hebt al een Kilo Pass-abonnement.", "purchaseUnavailable": "Kilo Pass-aankoop is op dit moment niet beschikbaar.", - "tierCredits": "${{amount}} aan credits", + "tierCredits": "{{amount}} aan credits", "perMonth": "{{price}}/mnd", "verifyPurchaseFailed": "Je aankoop kon niet worden geverifieerd. Controleer je verbinding en probeer het opnieuw.", "productsCouldNotLoad": "Kilo Pass-producten konden niet uit de App Store worden geladen.", @@ -2038,7 +2065,7 @@ "manageFailed": "Abonnementsbeheer van de App Store kon niet worden geopend.", "kiloPassSetup": "Kilo Pass instellen", "subscriptionHeaderDescription": "Een maandelijks abonnement dat credits toevoegt aan je Kilo-saldo voor AI-coderingssessies in Kilo App — Cloud Agents, externe sessies en KiloClaw-chats.", - "tierDescription": "${{price}} betaalde credits maandelijks toegevoegd voor gebruik van de Kilo App.", + "tierDescription": "{{price}} betaalde credits maandelijks toegevoegd voor gebruik van de Kilo App.", "subscribe": "Abonneren", "subscribeDescription": "Maandelijkse credits met bonusvoortgang", "manage": "Beheren", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass in behandeling", "statusCanceling": "Kilo Pass wordt geannuleerd", "statusPastDue": "Kilo Pass achterstallig", - "monthlyCredits": "${{credits}} maandelijkse credits", + "monthlyCredits": "{{credits}} maandelijkse credits", "ends": "Eindigt op {{date}}", "periodEnd": "einde periode", "managedOnGooglePlay": "Beheerd via Google Play", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "Je hebt geen toestemming om deze pull-aanvraag te bekijken.", "checkConnection": "Verbinding controleren", "checks": { - "checksCount": "{{count}} checks", + "checksCount": "{{displayCount}} checks", "couldNotLoad": "Kon checks niet laden.", - "failed": "{{count}} mislukt", + "failed": "{{displayCount}} mislukt", "noAccess": "Je hebt geen toegang tot de checks voor deze repository.", "noChecksReported": "Geen checks gerapporteerd", "notAvailable": "Checks zijn nog niet beschikbaar. De head-commit is mogelijk nog niet verwerkt, of de Kilo GitHub-app is niet geïnstalleerd op de head-repository.", "openDetails": "Details van {{name}} openen", - "passed": "{{count}} geslaagd", - "pending": "{{count}} in behandeling", + "passed": "{{displayCount}} geslaagd", + "pending": "{{displayCount}} in behandeling", "retryChecks": "Checks opnieuw proberen", - "skipped": "{{count}} overgeslagen", + "skipped": "{{displayCount}} overgeslagen", "title": "Checks", "viewOnGitHub": "PR op GitHub bekijken", "checkDetails": "Checkdetails", @@ -2238,7 +2265,7 @@ "terminal": "Deze gebruiker kan niet worden gerapporteerd." } }, - "moreLinesAbove": "… {{count}} extra regels hierboven", + "moreLinesAbove": "… {{displayCount}} extra regels hierboven", "mute": "Dempen", "mutedUser": "{{login}} gedempt", "noDiscussion": "Nog geen discussie", @@ -2246,7 +2273,7 @@ "comment_one": "1 opmerking", "outdated": "Verouderd", "quotedDiffSnippet": "Geciteerd diff-fragment", - "reactionPill": "{{emoji}} reactie, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reactie, {{displayCount}} {{countLabel}}", "reaction": "reacties", "reaction_other": "reacties", "reaction_one": "reactie", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "Context niet beschikbaar bij deze ref", "expandAll": "Alles uitvouwen", - "expandAllLines": "Alle {{count}} regels uitvouwen", + "expandAllLines": "Alle {{displayCount}} regels uitvouwen", "expandContext": "Context uitvouwen", - "expandLines": "{{count}} regels uitvouwen ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} contextregels uitvouwen", + "expandLines": "{{displayCount}} regels uitvouwen ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} contextregels uitvouwen", "expandMoreContext": "Meer context uitvouwen", - "expandMoreLines": "Nog {{count}} regels uitvouwen ({{start}}–{{end}})", + "expandMoreLines": "Nog {{displayCount}} regels uitvouwen ({{start}}–{{end}})", "failedToLoadContext": "Kon context niet laden — tik om opnieuw te proberen", "failedToLoadMoreFiles": "Kon niet meer bestanden laden — tik om opnieuw te proberen", "fileLoadedCount_one": "{{displayCount}} bestand geladen", @@ -2500,8 +2527,8 @@ "pendingComment_one": "openstaande opmerking", "summaryOptional": "Samenvatting (optioneel)", "title": "Review verzenden", - "partialPostedMessage": "{{freshCount}} opmerking(en) geplaatst. {{staleCount}} opmerking(en) verwijzen naar een oudere commit en blijven in je wachtrij.", - "submitCountOfTotal": "{{freshCount}} van {{totalCount}} opmerkingen verzenden", + "partialPostedMessage": "{{displayFreshCount}} opmerking(en) geplaatst. {{displayStaleCount}} opmerking(en) verwijzen naar een oudere commit en blijven in je wachtrij.", + "submitCountOfTotal": "{{displayFreshCount}} van {{displayTotalCount}} opmerkingen verzenden", "submitReview": "Review verzenden" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index ab89c8da34..e5cf5f8cb7 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -206,11 +206,11 @@ "loadingLines": "Sirrootni {{loaded}} keessaa {{total}} fayyadama...", "expandContext": "Context bal'iisi", "expandMoreContext": "Context dabalataa bal'iisi", - "expandLines": "Sirrootni {{count}} bal'iisi ({{start}}–{{end}})", - "expandMoreLines": "Sirrootni {{count}} dabalataa bal'iisi ({{start}}–{{end}})", - "expandLinesOfContext": "Sirrootni context {{count}} bal'iisi", + "expandLines": "Sirrootni {{displayCount}} bal'iisi ({{start}}–{{end}})", + "expandMoreLines": "Sirrootni {{displayCount}} dabalataa bal'iisi ({{start}}–{{end}})", + "expandLinesOfContext": "Sirrootni context {{displayCount}} bal'iisi", "expandAll": "Hundumaa bal'iisi", - "expandAllLines": "Sirrootni {{count}} hunda bal'iisi", + "expandAllLines": "Sirrootni {{displayCount}} hunda bal'iisi", "loadingMoreFiles": "Faayiloota dabalataa fayyadama...", "retryLoadingNextPage": "Fuula itti aanu fayyadamu irra deebi'i", "failedToLoadMoreFiles": "Faayiloota dabalataa fayyadamuu dadhabe — irra deebi'uuf tuqi", @@ -301,7 +301,7 @@ "closeReactions": "Adda suutii cufi", "reactionsTitle": "Adda suutii", "addReaction": "Adda suutii dabali", - "reactionPill": "Adda suutii {{emoji}}, {{count}} {{countLabel}}", + "reactionPill": "Adda suutii {{emoji}}, {{displayCount}} {{countLabel}}", "reaction_one": "adda suutii", "reaction": "adda suutii", "reaction_other": "adda suutii", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Pull request kana irratti maxxansa ilalloo ykn yaada marii hin jiru.", "reviewFiles": "Faayiloota ilaali", "quotedDiffSnippet": "Cita diff eerame", - "moreLinesAbove": "... sirrootni {{count}} dabalataa olii", + "moreLinesAbove": "... sirrootni {{displayCount}} dabalataa olii", "termsAcceptRequired": "Post gochuuf Qajeelfamoota Tajaajilaa fudhachuu qabda.", "termsOutdatedCopy": "Qajeelfamootni Tajaajilaa jijiraman. Fuula kana itti deebi'ii baniitii sassaabbii haaraa fudhadhu.", "termsCheckRetryCopy": "Qajeelfamoota Tajaajilaa ilaaluu hin dandeenye. Walqabii kee ilaali fi irra deebi'ii yaali." @@ -395,11 +395,11 @@ "retryChecks": "Qorannoo irra deebi'i", "viewOnGitHub": "PR GitHub irratti ilaali", "noChecksReported": "Qorannoon hin gabaafamne", - "passed": "{{count}} darban", - "failed": "{{count}} dadhaban", - "pending": "{{count}} eeggachaa", - "skipped": "{{count}} darbatan", - "checksCount": "Qorannoo {{count}}", + "passed": "{{displayCount}} darban", + "failed": "{{displayCount}} dadhaban", + "pending": "{{displayCount}} eeggachaa", + "skipped": "{{displayCount}} darbatan", + "checksCount": "Qorannoo {{displayCount}}", "checkDetails": "ibsa qorannoo", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "yaada eeggate", "pendingComment": "yaadota eeggatani", "pendingComment_other": "yaadota eeggatani", - "submitCountOfTotal": "Yaadota {{freshCount}} keessaa {{totalCount}} dhiheessi", + "submitCountOfTotal": "Yaadota {{displayFreshCount}} keessaa {{displayTotalCount}} dhiheessi", "submitReview": "Ilalloo dhiheessi", - "partialPostedMessage": "Yaadota {{freshCount}} maxxanfame. Yaadotni {{staleCount}} commit dheeraa irratti mul'atu fi tarree kee keessa turan." + "partialPostedMessage": "Yaadota {{displayFreshCount}} maxxanfame. Yaadotni {{displayStaleCount}} commit dheeraa irratti mul'atu fi tarree kee keessa turan." }, "reconnectNotice": { "title": "Walqabii GitHub xumurame", @@ -580,7 +580,8 @@ "agents": "Eejentoota", "profile": "Kaardii", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, taabii, {{total}} keessaa {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Dhihoo", "common": "Waliigalaa", "reactWith": "{{reaction}} waliin suuti", - "accessibility": "Adda suutii {{emoji}}, {{count}}" + "accessibility": "Adda suutii {{emoji}}, {{displayCount}}" }, "composer": { "replyingTo": "Deebii kennuuf", @@ -650,7 +651,7 @@ "imageUnavailable": "Suuraan hin jiraatu", "openFailed": "Attachment banuu hin dandeenye. Walqabii kee ilaali fi irra deebi'ii yaali.", "attachFailed": "Faayilii qindeessuu dadhabe", - "limit": "Faayiloota hanga {{count}} qindeessuu dandeessa.", + "limit": "Faayiloota hanga {{displayCount}} qindeessuu dandeessa.", "sizeRejection": "{{filename}} daangaa attachment {{limit}} dabree jira.", "unreadable": "{{filename}} dubbisuu hin dandeenye.", "pastedImage": "suuraan maxxanfame", @@ -722,6 +723,7 @@ "finalTermEnds": "Xumura yeroo dhumaa", "afterFinalTerm": "Xumura yeroo dhumaa booda", "remaining": "Hafee", + "lessThanOneDay": "Guyyaa 1 gaditti", "ends": "Dhumaa", "expires": "Eeyama dhumaa", "noActivePlan": "Karoora hojii irraa jiru hin jiru", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "gatiin Standard ji'aa keessan", "perMonth": "/ji'aa", "earlybirdAccessUntil": "Guyyaa jalqabaa hanga {{date}}", - "earlybirdEnding": "Guyyaa jalqabaa dhuma: {{days}} guyyaa hafe", + "earlybirdEnding": "Guyyaa jalqabaa dhuma: {{remaining}}", "paymentPastDue": "Kaffaltiin yeroo xumuraa darbeera. Mala kaffaltii keessan haaromsaa.", "subscriptionCancels": "Ragaahannaan {{date}} irratti dhuma", - "trialDaysRemaining": "Qoramaa: {{days}} guyyaa hafe", - "trialEndingSoon": "Qoramaan dhumuuf jira: {{days}}" + "trialDaysRemaining": "Qoramaa: {{remaining}} hafe", + "trialEndingSoon": "Qoramaan dhumuuf jira: {{remaining}}" }, "changelog": { "title": "Waan Haarayaa", @@ -996,7 +998,7 @@ "stalledTitle": "Wanti tokko dhaabbate", "stalledBody": "{{name}} qopheessuu hin dandeenye. Irra deebi'ii yaali, ykn yoo kana itti fufee hi@kilo.ai irratti iimeelii godhi.", "timeoutTitle": "Fakkaataa isaanii ol fudhachaa", - "timeoutBody": "Qophiin {{name}} yeroo fayyaa irra ol fudhachaa jira ({{minutes}} daqiiqaa ol).", + "timeoutBody": "Qophiin {{name}} yeroo fayyaa irra ol fudhachaa jira ({{displayMinutes}} daqiiqaa ol).", "continueInBackground": "Duraa booda itti fufi", "settingUp": "{{name}} qopheessaa", "finishingSetup": "Qophii xumuraa", @@ -1287,7 +1289,7 @@ "mergeGate": "Maddii walitti makuu", "repositories": "Repositorywwan", "allRepositories": "Repositorywwan hundumaa", - "nSelected": "{{count}} filaman", + "nSelected": "{{displayCount}} filaman", "reviewMemory": "Yaadannoo sakatta'aa", "proposedReviewMdGuidance": "Qajeelfannoo REVIEW.md dhiyeffame" }, @@ -1391,14 +1393,14 @@ "analyzed": "Anaalizii godhame", "exploitabilityReasoning": "Sababa faayidaa irra ooluu danda'uu", "suggestedFix": "Furmaanni akeekame", - "whereFound": "Eessa kun argame ({{count}})", + "whereFound": "Eessa kun argame ({{displayCount}})", "fullReport": "Gabaasa guutuu uumame", "unknown": "Hin beekamu", "yes": "Eeyyee", "no": "Lakki" }, "dashboard": { - "findingsCount": "Raawwiilee {{count}}", + "findingsCount": "Raawwiilee {{displayCount}}", "notMeasured": "Hin safaramne", "actFirst": "Dura hojjedhu", "slaPosture": "Haalli SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Karoorri gochaa repository", "noOpenFindings": "Raawwiin banamaa xiyyeeffannaa barbaadu hin jiru", "deadlineToday": "Yeroo dhumaa har'a ga'eera", - "daysOverdue": "Guyyaa {{count}} darbeera", + "daysOverdue": "Guyyaa {{displayCount}} darbeera", "withinDeadline": "Yeroo dhumaa keessatti", "criticalOverdue": "Cimaa darbeera", "highOverdue": "Ol'aanaa darbeera", @@ -1435,6 +1437,27 @@ "syncQueued": "Walitti qabamni eeggachuu keessa jira", "syncStatusUnavailable": "Haalli walitti qabamni hin argamu" }, + "dashboardMetrics": { + "openFindings": "Raawwiilee banaman", + "openFindingsDetail": "{{critical}} cimaa, {{high}} ol'aanaa", + "confirmedExploitable": "Faayidaa irra ooluu mirkanaa'eera", + "confirmedExploitableDetail": "Balaan pirojektiin anaaliziidhaan mirkanaa'eera", + "needsReview": "Ilaalcha kee barbaada", + "needsReviewDetail": "Murtee namaa barbaachisa", + "analysisIncomplete": "Anaalizii hin xumuramne", + "analysisIncompleteDetail": "Balaan pirojektii amma iyyuu hin beekamu", + "slaCompliance": "Eegamni SLA", + "notMeasured": "Hin safaramne", + "withinDeadlineDetail": "{{total}} keessaa {{within}} yeroo dhumaa keessatti", + "noDeadlineData": "Raawwiin yeroo dhumaa SLA qabu amma iyyuu hin jiru", + "deadlinePassed": "Yeroon dhumaa darbeera", + "deadlinePassedDetail": "{{critical}} cimaa, {{high}} ol'aanaa", + "dueThisWeek": "Torban kana yeroo dhumaa", + "dueThisWeekDetail": "{{exploitable}} faayidaa irra ooluu mirkanaa'eera", + "noDeadline": "Yeroon dhumaa hin jiru", + "reviewSlaAssignment": "Qooda fudhannaa SLA ilaali", + "allOpenFindingsTracked": "Raawwiin banaman hunda hordofameera" + }, "dismiss": { "title": "Raawwii dhiisi", "submit": "Raawwii dhiisi", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Anaalizii {{mode}}", "automation": "Ofumaan hojjechuu", "automationAllOff": "Hunda cufame", - "automationCount": "{{count}} keessaa 3 banameera", + "automationCount": "{{displayCount}} keessaa 3 banameera", "notifications": "Beeksisota", - "notificationsCount": "{{count}} keessaa 2 banameera", + "notificationsCount": "{{displayCount}} keessaa 2 banameera", "slaPolicy": "Imaammata SLA", "disabledNoManage": "Security Agent dhaabbateera. Abbaan dhaabbataa fi bulchitoonni baasii qofa isa banuu danda'u.", "disabledNoRepo": "Security Agent banuun dura gadi aanaa taate repository tokko filadhu.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Pull request{{number}} bani", "openDraftPullRequest": "Pull request{{number}} daaftarii bani", "progress": "Tarkaanfii", - "attemptHistory": "Seenaan yaalii ({{count}})", + "attemptHistory": "Seenaan yaalii ({{displayCount}})", "attemptNumber": "Yaalii #{{number}}", "startedBy": "Kan jalqabe", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "hojii", "readTodos": "Hojiiwwan dubbisi", "updateTodos": "Hojiiwwan haaromsi", - "linesBadge": "Sarara {{count}}", - "filesBadge": "Faayiloota {{count}}", - "matchesBadge": "Walqixxee {{count}}" + "linesBadge": "Sarara {{displayCount}}", + "filesBadge": "Faayiloota {{displayCount}}", + "matchesBadge": "Walqixxee {{displayCount}}" }, "readToolMarkdown": { "linesTruncated": "sarara {{start}}–{{end}} (gabaabbee)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Deebiin kun gabaasamuu hin danda'u.", "reportAiResponseSubmitted": "Gabaasni ergame. Ragaa {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Ibsa hin jiru", "textDisplay": "Barreeffama mul'isuu", @@ -1999,7 +2026,7 @@ "preparationComplete": "Qophiin xumurame", "preparationFailed": "Qophiin dadhabe", "setupCommand": "Ajaja qindeessaa {{index}}", - "setupCommandOf": "Ajaja qindeessaa {{index}} kan {{count}}" + "setupCommandOf": "Ajaja qindeessaa {{index}} kan {{displayCount}}" }, "permissionCard": { "title": "Hayyamni barbaachisa", @@ -2036,7 +2063,7 @@ "submissionFailed": "Galchii hin milkoofne. Mee ammas yaali.", "questionAnnouncement": "Agent'ichi deebii kee barbaada. Deebii kee kennuu kee hiddi waraqaa dhaabameera.", "permissionAnnouncement": "Agent'ichi itti fufuuf hayyama barbaada. Murtoo kee kennuu kee hiddi waraqaa dhaabameera.", - "positionHint": "({{count}} irraa 1)", + "positionHint": "({{displayCount}} irraa 1)", "movedPastPrompt": "Agent'ichi gaaffii kanaa darbeera. Yeroo shumarri itti fufu kaardichi cufama.", "waitingForAnswer": "Agent'ichi deebii kee eegaa jira. Gaaffiin kun banaa yeroo jiru, ergaa kee agent'ichaf dhaabameera.", "waitingForPermission": "Agent'ichi hayyama eegaa jira. Waanti kun banaa yeroo jiru, ergaa kee agent'ichaf dhaabameera." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Hiramni Kaameraa Cufameera", "cameraAccessMessage": "Suuraa fudhachuuf hirama kaameraa Settings keessatti hayyamaa.", "couldNotOpenPhotoPicker": "Filattoo suuraa banuu hin danda'ine. Kilo deebi'ii jalqabiitii ammas yaali.", - "maxFilesAllowed": "Faayiloota {{count}} guddoo ni hayyamama", + "maxFilesAllowed": "Faayiloota {{displayCount}} guddoo ni hayyamama", "onlyAddingFiles": "Faayiloota {{accepted}} kan {{total}} qofa dabalaa jira (guddoo {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "gatii {{cost}}", "costSuffix": ", gatii {{cost}}", "tokensWindowUnavailable": "Context tokkanoota {{used}}, iddoon hin argamu", - "tokensUsage": "Context tokkanoota {{used}} kan {{window}}, hamma {{percentage}}% fayyadameera", + "tokensUsage": "Context tokkanoota {{used}} kan {{window}}, hamma {{percentage}} fayyadameera", "title": "Fayyadama context", "used": "Fayyadame", "remaining": "Hafeera", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Fayyadamuun deebii gargaaraa dhumaa xumurame argisiisa.", "tokenUsage": "Fayyadama tokkanootaa", "cacheRate": "Safara cache", - "modelsCount": "Moodeloota ({{count}})", + "modelsCount": "Moodeloota ({{displayCount}})", "tokenTotalsNote": "Waliigalli tokkanootaa shumarra kana qofa haguuga, tokkanoota subagent/shumarra ijoollee hin haguugu.", "subagents": "Subagentoota", "subagentsDescription": "Gatii hafe shumarra ijoollee irraa", @@ -2373,7 +2400,7 @@ "connectedCli": "CLI qunnamame irratti", "newSessionOn": "Shumarra haaraa {{name}} irratti", "noMatchingSessions": "Shumarri walsimu hin jiru.", - "onlyFirstFilesAttached": "Faayiloota {{count}} jalqabaa qofa ni qabachiifamu.", + "onlyFirstFilesAttached": "Faayiloota {{displayCount}} jalqabaa qofa ni qabachiifamu.", "staleMessage": "Qoodni kuni si'a kana hin argamu.", "retryableMessage": "Shumarra kee fudhachuu hin danda'ine.", "emptyMessage": "Shumarri hin jiru — kana erguuf haaraa jalqabi.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass akkaawuntii Apple kana irratti jiru akkaawuntii Kilo adda biraa keessaa. Kilo akkaawuntii sani ittiin bulchuuf seeni.", "alreadySubscribed": "Yammee hubboo Kilo Pass qabda.", "purchaseUnavailable": "Bittaan Kilo Pass amma hin argamu.", - "tierCredits": "kiriiditii ${{amount}}", + "tierCredits": "kiriiditii {{amount}}", "perMonth": "{{price}}/ji'aa", "verifyPurchaseFailed": "Bittaa kee mirkaneessuu hin danda'ine. Qunnamtiilee kee ilaalii ammas yaali.", "productsCouldNotLoad": "Bu'aan Kilo Pass App Store irraa fudhachuu hin danda'ame.", @@ -2417,7 +2444,7 @@ "manageFailed": "Bulchiinsa hubboo App Store banuu hin danda'ine.", "kiloPassSetup": "Qophii Kilo Pass", "subscriptionHeaderDescription": "Hubboo ji'aa kiriiditii baalansii Kilo kee itti dabaluuf, shumarra code AI Kilo App keessatti hojjechuuf — Cloud Agents, shumarra fagoo, fi walmaree KiloClaw.", - "tierDescription": "Kiriiditii ${{price}} maallaqaan ji'aa itti dabalamu fayyadama Kilo App.", + "tierDescription": "Kiriiditii {{price}} maallaqaan ji'aa itti dabalamu fayyadama Kilo App.", "subscribe": "Hubboo seeni", "subscribeDescription": "Kiriiditii ji'aa olaantummaa bonus wajjin", "manage": "Bulchi", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass eegaa jira", "statusCanceling": "Kilo Pass dhaabaa jira", "statusPastDue": "Kilo Pass yeroo darbeera", - "monthlyCredits": "kiriiditii ji'aa ${{credits}}", + "monthlyCredits": "kiriiditii ji'aa {{credits}}", "ends": "Dhuma {{date}}", "periodEnd": "dhumni yeroo", "managedOnGooglePlay": "Google Play irratti bulchama", diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index ccb1e12322..ab9768c9bf 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} ମଧ୍ୟରୁ {{loaded}} ଧାଡ଼ି ଲୋଡ୍ ହେଉଛି...", "expandContext": "ପ୍ରସଙ୍ଗ ବିସ୍ତାର କରନ୍ତୁ", "expandMoreContext": "ଅଧିକ ପ୍ରସଙ୍ଗ ବିସ୍ତାର କରନ୍ତୁ", - "expandLines": "{{count}} ଧାଡ଼ି ବିସ୍ତାର କରନ୍ତୁ ({{start}}–{{end}})", - "expandMoreLines": "ଅଧିକ {{count}} ଧାଡ଼ି ବିସ୍ତାର କରନ୍ତୁ ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} ଧାଡ଼ି ପ୍ରସଙ୍ଗ ବିସ୍ତାର କରନ୍ତୁ", + "expandLines": "{{displayCount}} ଧାଡ଼ି ବିସ୍ତାର କରନ୍ତୁ ({{start}}–{{end}})", + "expandMoreLines": "ଅଧିକ {{displayCount}} ଧାଡ଼ି ବିସ୍ତାର କରନ୍ତୁ ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} ଧାଡ଼ି ପ୍ରସଙ୍ଗ ବିସ୍ତାର କରନ୍ତୁ", "expandAll": "ସବୁ ବିସ୍ତାର କରନ୍ତୁ", - "expandAllLines": "ସମସ୍ତ {{count}} ଧାଡ଼ି ବିସ୍ତାର କରନ୍ତୁ", + "expandAllLines": "ସମସ୍ତ {{displayCount}} ଧାଡ଼ି ବିସ୍ତାର କରନ୍ତୁ", "loadingMoreFiles": "ଅଧିକ ଫାଇଲ୍ ଲୋଡ୍ ହେଉଛି...", "retryLoadingNextPage": "ପରବର୍ତ୍ତୀ ପୃଷ୍ଠା ଲୋଡିଂ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ", "failedToLoadMoreFiles": "ଅଧିକ ଫାଇଲ୍ ଲୋଡ୍ ବିଫଳ ହେଲା — ପୁଣି ଚେଷ୍ଟା କରିବାକୁ ଟାପ୍ କରନ୍ତୁ", @@ -301,7 +301,7 @@ "closeReactions": "ରିଆକ୍ସନ ବନ୍ଦ କରନ୍ତୁ", "reactionsTitle": "ରିଆକ୍ସନ", "addReaction": "ରିଆକ୍ସନ ଯୋଡନ୍ତୁ", - "reactionPill": "{{emoji}} ରିଆକ୍ସନ, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ରିଆକ୍ସନ, {{displayCount}} {{countLabel}}", "reaction_one": "ରିଆକ୍ସନ", "reaction": "ରିଆକ୍ସନଗୁଡ଼ିକ", "reaction_other": "ରିଆକ୍ସନଗୁଡ଼ିକ", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ଏହି ପୁଲ୍ ରିକ୍ୱେଷ୍ଟରେ କୌଣସି ରିଭ୍ୟୁ ଥ୍ରେଡ୍ କିମ୍ବା କଥାବାର୍ତ୍ତା ମନ୍ତବ୍ୟ ନାହିଁ।", "reviewFiles": "ଫାଇଲ୍ ରିଭ୍ୟୁ କରନ୍ତୁ", "quotedDiffSnippet": "କୋଟେଡ୍ diff ସ୍ନିପେଟ୍", - "moreLinesAbove": "... {{count}} ଅଧିକ ଧାଡ଼ି ଉପରେ", + "moreLinesAbove": "... {{displayCount}} ଅଧିକ ଧାଡ଼ି ଉପରେ", "termsAcceptRequired": "ପୋଷ୍ଟ କରିବାକୁ ଆପଣଙ୍କୁ ସେବା ସର୍ତ୍ତାବଳୀ ଗ୍ରହଣ କରିବାକୁ ହେବ।", "termsOutdatedCopy": "ସେବା ସର୍ତ୍ତାବଳୀ ପରିବର୍ତ୍ତନ ହେଲା। ସର୍ବନତମ ସଂସ୍କରଣ ଗ୍ରହଣ କରିବାକୁ ଏହି ସ୍କ୍ରିନ୍ ପୁନଃଖୋଲନ୍ତୁ।", "termsCheckRetryCopy": "ସେବା ସର୍ତ୍ତାବଳୀ ଯାଞ୍ଚ କରାଯାଇ ପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" @@ -395,11 +395,11 @@ "retryChecks": "ଯାଞ୍ଚ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ", "viewOnGitHub": "GitHub ରେ PR ଦେଖନ୍ତୁ", "noChecksReported": "କୌଣସି ଯାଞ୍ଚ ରିପୋର୍ଟ ହୋଇନାହିଁ", - "passed": "{{count}} ପାସ୍ ହେଲା", - "failed": "{{count}} ବିଫଳ ହେଲା", - "pending": "{{count}} ବାକି", - "skipped": "{{count}} ସ୍କିପ୍ ହେଲା", - "checksCount": "{{count}} ଯାଞ୍ଚ", + "passed": "{{displayCount}} ପାସ୍ ହେଲା", + "failed": "{{displayCount}} ବିଫଳ ହେଲା", + "pending": "{{displayCount}} ବାକି", + "skipped": "{{displayCount}} ସ୍କିପ୍ ହେଲା", + "checksCount": "{{displayCount}} ଯାଞ୍ଚ", "checkDetails": "ଯାଞ୍ଚ ବିବରଣୀ", "pullRequest": "ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ବାକି ମନ୍ତବ୍ୟ", "pendingComment": "ବାକି ମନ୍ତବ୍ୟଗୁଡ଼ିକ", "pendingComment_other": "ବାକି ମନ୍ତବ୍ୟଗୁଡ଼ିକ", - "submitCountOfTotal": "{{totalCount}} ମନ୍ତବ୍ୟ ମଧ୍ୟରୁ {{freshCount}} ଦାଖଲ କରନ୍ତୁ", + "submitCountOfTotal": "{{displayTotalCount}} ମନ୍ତବ୍ୟ ମଧ୍ୟରୁ {{displayFreshCount}} ଦାଖଲ କରନ୍ତୁ", "submitReview": "ରିଭ୍ୟୁ ଦାଖଲ କରନ୍ତୁ", - "partialPostedMessage": "{{freshCount}} ମନ୍ତବ୍ୟ ପୋଷ୍ଟ ହେଲା। {{staleCount}} ମନ୍ତବ୍ୟ ଏକ ପୁରୁଣା କମିଟ୍ କୁ ପଏଣ୍ଟ କରେ ଏବଂ ଆପଣଙ୍କ କ୍ୟୁରେ ରହିଲା।" + "partialPostedMessage": "{{displayFreshCount}} ମନ୍ତବ୍ୟ ପୋଷ୍ଟ ହେଲା। {{displayStaleCount}} ମନ୍ତବ୍ୟ ଏକ ପୁରୁଣା କମିଟ୍ କୁ ପଏଣ୍ଟ କରେ ଏବଂ ଆପଣଙ୍କ କ୍ୟୁରେ ରହିଲା।" }, "reconnectNotice": { "title": "GitHub ସଂଯୋଗ ଅବଧି ଶେଷ ହେଲା", @@ -580,7 +580,8 @@ "agents": "ଏଜେଣ୍ଟଗୁଡ଼ିକ", "profile": "ପ୍ରୋଫାଇଲ୍", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ଟ୍ୟାବ୍, {{total}} ରୁ {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ସାମ୍ପ୍ରତିକ", "common": "ସାଧାରଣ", "reactWith": "{{reaction}} ସହିତ ରିଆକ୍ସନ କରନ୍ତୁ", - "accessibility": "{{emoji}} ରିଆକ୍ସନ, {{count}}" + "accessibility": "{{emoji}} ରିଆକ୍ସନ, {{displayCount}}" }, "composer": { "replyingTo": "ଉତ୍ତର ଦେଉଛି", @@ -650,7 +651,7 @@ "imageUnavailable": "ଚିତ୍ର ଉପଲବ୍ଧ ନାହିଁ", "openFailed": "ସଂଲଗ୍ନକାରୀ ଖୋଲାଯାଇ ପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "attachFailed": "ଫାଇଲ୍ ସଂଲଗ୍ନ ବିଫଳ ହେଲା", - "limit": "ଆପଣ {{count}} ପର୍ଯ୍ୟନ୍ତ ଫାଇଲ୍ ସଂଲଗ୍ନ କରିପାରିବେ।", + "limit": "ଆପଣ {{displayCount}} ପର୍ଯ୍ୟନ୍ତ ଫାଇଲ୍ ସଂଲଗ୍ନ କରିପାରିବେ।", "sizeRejection": "{{filename}} {{limit}} ସଂଲଗ୍ନକାରୀ ସୀମା ଅତିକ୍ରମ କରେ।", "unreadable": "{{filename}} ପଢ଼ାଯାଇ ପାରିଲା ନାହିଁ।", "pastedImage": "ପେଷ୍ଟ ହୋଇଥିବା ଚିତ୍ର", @@ -722,6 +723,7 @@ "finalTermEnds": "ଅନ୍ତିମ ଅବଧି ସମାପ୍ତ ହୁଏ", "afterFinalTerm": "ଅନ୍ତିମ ଅବଧି ପରେ", "remaining": "ଅବଶିଷ୍ଟ", + "lessThanOneDay": "୧ ଦିନରୁ କମ୍", "ends": "ସମାପ୍ତ ହୁଏ", "expires": "ସମାପ୍ତ ହୁଏ", "noActivePlan": "କୌଣସି ସକ୍ରିୟ ଯୋଜନା ନାହିଁ", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ଆପଣଙ୍କ ମାସିକ ଷ୍ଟାଣ୍ଡାର୍ଡ ମୂଲ୍ୟ", "perMonth": "/ମାସ", "earlybirdAccessUntil": "{{date}} ପର୍ଯ୍ୟନ୍ତ ଆରମ୍ଭିକ ଆକ୍ସେସ୍", - "earlybirdEnding": "ଆରମ୍ଭିକ ସମାପ୍ତ: {{days}} ଦିନ ବାକି", + "earlybirdEnding": "ଆରମ୍ଭିକ ସମାପ୍ତ: {{remaining}}", "paymentPastDue": "ଦେୟ ବିଳମ୍ବିତ। ଦୟାକରି ଆପଣଙ୍କ ଦେୟ ପଦ୍ଧତି ଅପଡେଟ୍ କରନ୍ତୁ।", "subscriptionCancels": "ସବସ୍କ୍ରିପ୍ସନ୍ {{date}} ରେ ବାତିଲ ହୁଏ", - "trialDaysRemaining": "ଟ୍ରାଏଲ: {{days}} ଦିନ ବାକି", - "trialEndingSoon": "ଟ୍ରାଏଲ୍ ଶୀଘ୍ର ସମାପ୍ତ: {{days}}" + "trialDaysRemaining": "ଟ୍ରାଏଲ: {{remaining}} ବାକି", + "trialEndingSoon": "ଟ୍ରାଏଲ୍ ଶୀଘ୍ର ସମାପ୍ତ: {{remaining}}" }, "changelog": { "title": "ନୂଆ କ'ଣ", @@ -996,7 +998,7 @@ "stalledTitle": "କିଛି ଅଟକିଗଲା", "stalledBody": "ଆମେ {{name}} ସେଟଅପ୍ ସମାପ୍ତ କରିପାରିଲୁ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ, କିମ୍ବା ଏହା ଜାରି ରହିଲେ hi@kilo.ai କୁ ଇମେଲ୍ କରନ୍ତୁ।", "timeoutTitle": "ଆଶା ଅପେକ୍ଷା ଅଧିକ ସମୟ ନେଉଛି", - "timeoutBody": "{{name}} ପାଇଁ ସେଟଅପ୍ ସ୍ୱାଭାବିକ ଅପେକ୍ଷା ଅଧିକ ସମୟ ନେଉଛି ({{minutes}} ମିନିଟ୍ ରୁ ଅଧିକ)।", + "timeoutBody": "{{name}} ପାଇଁ ସେଟଅପ୍ ସ୍ୱାଭାବିକ ଅପେକ୍ଷା ଅଧିକ ସମୟ ନେଉଛି ({{displayMinutes}} ମିନିଟ୍ ରୁ ଅଧିକ)।", "continueInBackground": "ପୃଷ୍ଠଭୂମିରେ ଜାରି ରଖନ୍ତୁ", "settingUp": "{{name}} ସେଟଅପ୍ କରୁଛି", "finishingSetup": "ସେଟଅପ୍ ସମାପ୍ତ କରୁଛି", @@ -1287,7 +1289,7 @@ "mergeGate": "ମର୍ଜ ଗେଟ୍", "repositories": "ରିପୋଜିଟୋରୀ", "allRepositories": "ସମସ୍ତ ରିପୋଜିଟୋରୀ", - "nSelected": "{{count}} ଚୟନ ହୋଇଛି", + "nSelected": "{{displayCount}} ଚୟନ ହୋଇଛି", "reviewMemory": "ସମୀକ୍ଷା ସ୍ମୃତି", "proposedReviewMdGuidance": "ପ୍ରସ୍ତାବିତ REVIEW.md ନିର୍ଦ୍ଦେଶାବଳୀ" }, @@ -1391,14 +1393,14 @@ "analyzed": "ବିଶ୍ଳେଷଣ ହୋଇଛି", "exploitabilityReasoning": "ଶୋଷଣଯୋଗ୍ୟତା ଯୁକ୍ତି", "suggestedFix": "ପ୍ରସ୍ତାବିତ ସମାଧାନ", - "whereFound": "ଏହା ଯେଉଁଠାରେ ମିଳିଲା ({{count}})", + "whereFound": "ଏହା ଯେଉଁଠାରେ ମିଳିଲା ({{displayCount}})", "fullReport": "ପୂର୍ଣ୍ଣ ଉତ୍ପନ୍ନ ରିପୋର୍ଟ", "unknown": "ଅଜଣା", "yes": "ହଁ", "no": "ନା" }, "dashboard": { - "findingsCount": "{{count}}ଟି ଫଳାଫଳ", + "findingsCount": "{{displayCount}}ଟି ଫଳାଫଳ", "notMeasured": "ମାପ ହୋଇନାହିଁ", "actFirst": "ପ୍ରଥମେ କାର୍ଯ୍ୟ କରନ୍ତୁ", "slaPosture": "SLA ଅବସ୍ଥା", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "ରିପୋଜିଟୋରୀ କାର୍ଯ୍ୟ ଯୋଜନା", "noOpenFindings": "ଧ୍ୟାନ ଆବଶ୍ୟକ କରୁଥିବା କୌଣସି ଖୋଲା ଫଳାଫଳ ନାହିଁ", "deadlineToday": "ଆଜି ସମୟସୀମା ପହଞ୍ଚିଛି", - "daysOverdue": "{{count}} ଦିନ ବିଳମ୍ବିତ", + "daysOverdue": "{{displayCount}} ଦିନ ବିଳମ୍ବିତ", "withinDeadline": "ସମୟସୀମା ଭିତରେ", "criticalOverdue": "ଗୁରୁତର ବିଳମ୍ବିତ", "highOverdue": "ଉଚ୍ଚ ବିଳମ୍ବିତ", @@ -1435,6 +1437,27 @@ "syncQueued": "ସିଙ୍କ୍ ଧାଡ଼ିରେ ଅଛି", "syncStatusUnavailable": "ସିଙ୍କ୍ ସ୍ଥିତି ଉପଲବ୍ଧ ନୁହେଁ" }, + "dashboardMetrics": { + "openFindings": "ଖୋଲା ଫଳାଫଳଗୁଡ଼ିକ", + "openFindingsDetail": "{{critical}} ଗୁରୁତର, {{high}} ଉଚ୍ଚ", + "confirmedExploitable": "ନିଶ୍ଚିତ ଶୋଷଣଯୋଗ୍ୟ", + "confirmedExploitableDetail": "ବିଶ୍ଳେଷଣ ଦ୍ୱାରା ପ୍ରୋଜେକ୍ଟ ବିପଦ ନିଶ୍ଚିତ ହେଲା", + "needsReview": "ଆପଣଙ୍କ ସମୀକ୍ଷା ଆବଶ୍ୟକ", + "needsReviewDetail": "ମାନବୀୟ ନିଷ୍ପତ୍ତି ଆବଶ୍ୟକ", + "analysisIncomplete": "ବିଶ୍ଳେଷଣ ସମ୍ପୂର୍ଣ୍ଣ ନୁହେଁ", + "analysisIncompleteDetail": "ପ୍ରୋଜେକ୍ଟ ବିପଦ ଏପର୍ଯ୍ୟନ୍ତ ଅଜ୍ଞାତ", + "slaCompliance": "SLA ଅନୁପାଳନ", + "notMeasured": "ମାପ ହୋଇନାହିଁ", + "withinDeadlineDetail": "{{total}} ମଧ୍ୟରୁ {{within}} ସମୟସୀମା ଭିତରେ", + "noDeadlineData": "କୌଣସି ଫଳାଫଳର SLA ସମୟସୀମା ଏପର୍ଯ୍ୟନ୍ତ ନାହିଁ", + "deadlinePassed": "ସମୟସୀମା ପାର ହେଲା", + "deadlinePassedDetail": "{{critical}} ଗୁରୁତର, {{high}} ଉଚ୍ଚ", + "dueThisWeek": "ଏହି ସପ୍ତାହରେ ସମୟସୀମା", + "dueThisWeekDetail": "{{exploitable}} ନିଶ୍ଚିତ ଶୋଷଣଯୋଗ୍ୟ", + "noDeadline": "କୌଣସି ସମୟସୀମା ନାହିଁ", + "reviewSlaAssignment": "SLA ନିୟୋଜନ ସମୀକ୍ଷା କରନ୍ତୁ", + "allOpenFindingsTracked": "ସମସ୍ତ ଖୋଲା ଫଳାଫଳ ଟ୍ରାକ୍ ହେଲା" + }, "dismiss": { "title": "ଫଳାଫଳ ଖାରଜ କରନ୍ତୁ", "submit": "ଫଳାଫଳ ଖାରଜ କରନ୍ତୁ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ବିଶ୍ଳେଷଣ", "automation": "ଅଟୋମେସନ୍", "automationAllOff": "ସବୁ ବନ୍ଦ", - "automationCount": "3 ରୁ {{count}} ସକ୍ଷମ", + "automationCount": "3 ରୁ {{displayCount}} ସକ୍ଷମ", "notifications": "ବିଜ୍ଞପ୍ତି", - "notificationsCount": "2 ରୁ {{count}} ସକ୍ଷମ", + "notificationsCount": "2 ରୁ {{displayCount}} ସକ୍ଷମ", "slaPolicy": "SLA ନୀତି", "disabledNoManage": "ସୁରକ୍ଷା ଏଜେଣ୍ଟ ଅକ୍ଷମ। କେବଳ ସଂଗଠନ ମାଲିକ ଏବଂ ବିଲିଂ ମ୍ୟାନେଜରମାନେ ଏହାକୁ ଚାଲୁ କରିପାରିବେ।", "disabledNoRepo": "ସୁରକ୍ଷା ଏଜେଣ୍ଟ ସକ୍ଷମ କରିବା ପୂର୍ବରୁ ଅତି କମ୍ରେ ଗୋଟିଏ ରିପୋଜିଟୋରୀ ଚୟନ କରନ୍ତୁ।", @@ -1524,7 +1547,7 @@ "openPullRequest": "ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ଖୋଲନ୍ତୁ{{number}}", "openDraftPullRequest": "ଡ୍ରାଫ୍ଟ ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ଖୋଲନ୍ତୁ{{number}}", "progress": "ଅଗ୍ରଗତି", - "attemptHistory": "ପ୍ରୟାସ ଇତିହାସ ({{count}})", + "attemptHistory": "ପ୍ରୟାସ ଇତିହାସ ({{displayCount}})", "attemptNumber": "ପ୍ରୟାସ #{{number}}", "startedBy": "ଆରମ୍ଭ କରିଛନ୍ତି", "model": "ମଡେଲ୍", @@ -1855,9 +1878,9 @@ "toolTask": "କାର୍ଯ୍ୟ", "readTodos": "ଟୁଡୋ ପଢ଼ନ୍ତୁ", "updateTodos": "ଟୁଡୋ ଅଦ୍ୟତନ କରନ୍ତୁ", - "linesBadge": "{{count}}ଟି ଧାଡ଼ି", - "filesBadge": "{{count}}ଟି ଫାଇଲ୍", - "matchesBadge": "{{count}}ଟି ମେଳ" + "linesBadge": "{{displayCount}}ଟି ଧାଡ଼ି", + "filesBadge": "{{displayCount}}ଟି ଫାଇଲ୍", + "matchesBadge": "{{displayCount}}ଟି ମେଳ" }, "readToolMarkdown": { "linesTruncated": "ଧାଡ଼ି {{start}}–{{end}} (କାଟି ଦିଆଯାଇଛି)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ଏହି ପ୍ରତିକ୍ରିୟା ରିପୋର୍ଟ କରାଯାଇପାରିବ ନାହିଁ।", "reportAiResponseSubmitted": "ରିପୋର୍ଟ ଦାଖଲ ହୋଇଛି। ରସିଦ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "ବିବରଣୀ ଉପଲବ୍ଧ ନାହିଁ", "textDisplay": "ଟେକ୍ସଟ୍ ପ୍ରଦର୍ଶନ", @@ -1999,7 +2026,7 @@ "preparationComplete": "ପ୍ରସ୍ତୁତି ସମ୍ପୂର୍ଣ୍ଣ", "preparationFailed": "ପ୍ରସ୍ତୁତି ବିଫଳ ହେଲା", "setupCommand": "ସେଟଅପ୍ କମାଣ୍ଡ {{index}}", - "setupCommandOf": "ସେଟଅପ୍ କମାଣ୍ଡ {{index}} ର {{count}} ମଧ୍ୟରୁ" + "setupCommandOf": "ସେଟଅପ୍ କମାଣ୍ଡ {{index}} ର {{displayCount}} ମଧ୍ୟରୁ" }, "permissionCard": { "title": "ଅନୁମତି ଆବଶ୍ୟକ", @@ -2036,7 +2063,7 @@ "submissionFailed": "ଦାଖଲ ବିଫଳ। ଦୟାକରି ପୁନର୍ବାର ଚେଷ୍ଟା କରନ୍ତୁ।", "questionAnnouncement": "ଏଜେଣ୍ଟଙ୍କୁ ଆପଣଙ୍କ ଇନପୁଟ୍ ଦରକାର। ଆପଣ ଉତ୍ତର ଦେବା ସମୟରେ କମ୍ପୋଜର ବିରତ ହୋଇଛି।", "permissionAnnouncement": "ଜାରି ରଖିବାକୁ ଏଜେଣ୍ଟଙ୍କୁ ଅନୁମତି ଦରକାର। ଆପଣ ନିଷ୍ପତ୍ତି ନେବା ସମୟରେ କମ୍ପୋଜର ବିରତ ହୋଇଛି।", - "positionHint": "({{count}} ରୁ 1)", + "positionHint": "({{displayCount}} ରୁ 1)", "movedPastPrompt": "ଏଜେଣ୍ଟ ଏହି ପ୍ରମ୍ପ୍ଟ ପଛରେ ଚାଲିଯାଇଛି। ସେସନ୍ ଜାରି ହେଲେ ଏହି କାର୍ଡ ବନ୍ଦ ହେବ।", "waitingForAnswer": "ଏଜେଣ୍ଟ ଆପଣଙ୍କ ଉତ୍ତର ଅପେକ୍ଷା କରୁଛି। ଏହି ପ୍ରଶ୍ନ ଖୋଲା ଥିବାବେଳେ, ଏଜେଣ୍ଟଙ୍କୁ ଆପଣଙ୍କ ବାର୍ତ୍ତା ବିରତ ହୋଇଛି।", "waitingForPermission": "ଏଜେଣ୍ଟ ଅନୁମତି ଅପେକ୍ଷା କରୁଛି। ଏହି ଅନୁରୋଧ ଖୋଲା ଥିବାବେଳେ, ଏଜେଣ୍ଟଙ୍କୁ ଆପଣଙ୍କ ବାର୍ତ୍ତା ବିରତ ହୋଇଛି।" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "କ୍ୟାମେରା ଆକ୍ସେସ୍ ଅକ୍ଷମ", "cameraAccessMessage": "ଫଟୋ ଉଠାଇବାକୁ ସେଟିଂସରେ କ୍ୟାମେରା ଆକ୍ସେସ୍ ଅନୁମତି ଦିଅନ୍ତୁ।", "couldNotOpenPhotoPicker": "ଫଟୋ ପିକର ଖୋଲାଯାଇପାରିଲା ନାହିଁ। Kilo ପୁନଃଚାଳୁ କରି ପୁନର୍ବାର ଚେଷ୍ଟା କରନ୍ତୁ।", - "maxFilesAllowed": "ସର୍ବାଧିକ {{count}} ଫାଇଲ ଅନୁମତି", + "maxFilesAllowed": "ସର୍ବାଧିକ {{displayCount}} ଫାଇଲ ଅନୁମତି", "onlyAddingFiles": "କେବଳ {{accepted}} ରୁ {{total}} ଫାଇଲ ଯୋଡ଼ୁଛି (ସର୍ବାଧିକ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ଖର୍ଚ୍ଚ {{cost}}", "costSuffix": ", ଖର୍ଚ୍ଚ {{cost}}", "tokensWindowUnavailable": "ପ୍ରସଙ୍ଗ {{used}} ଟୋକେନ, ୱିଣ୍ଡୋ ଅନୁପଲବ୍ଧ", - "tokensUsage": "ପ୍ରସଙ୍ଗ {{used}} ରୁ {{window}} ଟୋକେନ, {{percentage}}% ବ୍ୟବହୃତ", + "tokensUsage": "ପ୍ରସଙ୍ଗ {{used}} ରୁ {{window}} ଟୋକେନ, {{percentage}} ବ୍ୟବହୃତ", "title": "ପ୍ରସଙ୍ଗ ବ୍ୟବହାର", "used": "ବ୍ୟବହୃତ", "remaining": "ଅବଶିଷ୍ଟ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "ବ୍ୟବହାର ସର୍ବନିକଟ ସମ୍ପୂର୍ଣ୍ଣ ସହାୟକ ଉତ୍ତରକୁ ପ୍ରତିଫଳିତ କରେ।", "tokenUsage": "ଟୋକେନ ବ୍ୟବହାର", "cacheRate": "କ୍ୟାଶ୍ ହାର", - "modelsCount": "ମଡେଲ ({{count}})", + "modelsCount": "ମଡେଲ ({{displayCount}})", "tokenTotalsNote": "ଟୋକେନ ସମୁଦାୟ କେବଳ ଏହି ସେସନକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରେ ଏବଂ ସବଏଜେଣ୍ଟ/ଚାଇଲ୍ଡ-ସେସନ୍ ଟୋକେନ ବାଦ୍ ଦିଏ।", "subagents": "ସବଏଜେଣ୍ଟ", "subagentsDescription": "ଚାଇଲ୍ଡ ସେସନରୁ ଅବଶିଷ୍ଟ ଖର୍ଚ୍ଚ", @@ -2373,7 +2400,7 @@ "connectedCli": "ସଂଯୁକ୍ତ CLI ରେ", "newSessionOn": "{{name}} ରେ ନୂତନ ସେସନ୍", "noMatchingSessions": "କୌଣସି ସମାନ ସେସନ୍ ନାହିଁ।", - "onlyFirstFilesAttached": "କେବଳ ପ୍ରଥମ {{count}} ଫାଇଲ ଆଟାଚ୍ ହେବ।", + "onlyFirstFilesAttached": "କେବଳ ପ୍ରଥମ {{displayCount}} ଫାଇଲ ଆଟାଚ୍ ହେବ।", "staleMessage": "ଏହି ଅଂଶୀଦାର ଆଉ ଉପଲବ୍ଧ ନାହିଁ।", "retryableMessage": "ଆପଣଙ୍କ ସେସନ୍ ଲୋଡ୍ ହୋଇପାରିଲା ନାହିଁ।", "emptyMessage": "ଏପର୍ଯ୍ୟନ୍ତ କୌଣସି ସେସନ୍ ନାହିଁ — ଏହା ପଠାଇବାକୁ ନୂତନ ସେସନ୍ ଆରମ୍ଭ କରନ୍ତୁ।", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "ଏହି Apple ଆକାଉଣ୍ଟରେ ଥିବା Kilo Pass ଅନ୍ୟ ଏକ Kilo ଆକାଉଣ୍ଟର ଅଟେ। ଏହାକୁ ପରିଚାଳନା କରିବାକୁ ସେହି Kilo ଆକାଉଣ୍ଟରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ।", "alreadySubscribed": "ଆପଣଙ୍କର ପୂର୍ବରୁ Kilo Pass ସବସ୍କ୍ରିପସନ୍ ଅଛି।", "purchaseUnavailable": "Kilo Pass କ୍ରୟ ଏବେ ଉପଲବ୍ଧ ନାହିଁ।", - "tierCredits": "କ୍ରେଡିଟରେ ${{amount}}", + "tierCredits": "କ୍ରେଡିଟରେ {{amount}}", "perMonth": "{{price}}/ମାସ", "verifyPurchaseFailed": "ଆପଣଙ୍କ କ୍ରୟ ଯାଞ୍ଚ ହୋଇପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁନର୍ବାର ଚେଷ୍ଟା କରନ୍ତୁ।", "productsCouldNotLoad": "Kilo Pass ଉତ୍ପାଦ App Store ରୁ ଲୋଡ୍ ହୋଇପାରିଲା ନାହିଁ।", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store ସବସ୍କ୍ରିପସନ୍ ପରିଚାଳନା ଖୋଲିବାରେ ବିଫଳ।", "kiloPassSetup": "Kilo Pass ସେଟଅପ୍", "subscriptionHeaderDescription": "ଏକ ମାସିକ ସବସ୍କ୍ରିପସନ୍ ଯାହା Kilo ଆପ୍ — Cloud Agents, ରିମୋଟ ସେସନ୍, ଏବଂ KiloClaw ଚାଟରେ AI କୋଡିଂ ସେସନ୍ ଚଳାଇବା ପାଇଁ ଆପଣଙ୍କ Kilo ବ୍ୟାଲାନ୍ସରେ କ୍ରେଡିଟ୍ ଯୋଡ଼େ।", - "tierDescription": "Kilo ଆପ୍ ବ୍ୟବହାର ପାଇଁ ମାସିକ ଯୋଡ଼ାଯାଉଥିବା ${{price}} ପୈଠ କ୍ରେଡିଟ୍।", + "tierDescription": "Kilo ଆପ୍ ବ୍ୟବହାର ପାଇଁ ମାସିକ ଯୋଡ଼ାଯାଉଥିବା {{price}} ପୈଠ କ୍ରେଡିଟ୍।", "subscribe": "ସବସ୍କ୍ରାଇବ୍", "subscribeDescription": "ବୋନସ୍ ପ୍ରଗତି ସହିତ ମାସିକ କ୍ରେଡିଟ୍", "manage": "ପରିଚାଳନା", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass ଅପେକ୍ଷାରେ", "statusCanceling": "Kilo Pass ବାତିଲ ହେଉଛି", "statusPastDue": "Kilo Pass ବିଳମ୍ବିତ", - "monthlyCredits": "${{credits}} ମାସିକ କ୍ରେଡିଟ୍", + "monthlyCredits": "{{credits}} ମାସିକ କ୍ରେଡିଟ୍", "ends": "{{date}}ରେ ସମାପ୍ତ", "periodEnd": "ଅବଧି ଶେଷ", "managedOnGooglePlay": "Google Play ରେ ପରିଚାଳିତ", diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 4dc467b818..6a2e7a3c8f 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} ਲਾਈਨਾਂ ਵਿੱਚੋਂ {{loaded}} ਲੋਡ ਹੋ ਰਹੀਆਂ ਹਨ…", "expandContext": "ਸੰਦਰਭ ਵਿਸਤਾਰ ਕਰੋ", "expandMoreContext": "ਹੋਰ ਸੰਦਰਭ ਵਿਸਤਾਰ ਕਰੋ", - "expandLines": "{{count}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ ({{start}}–{{end}})", - "expandMoreLines": "ਹੋਰ {{count}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ ({{start}}–{{end}})", - "expandLinesOfContext": "ਸੰਦਰਭ ਦੀਆਂ {{count}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ", + "expandLines": "{{displayCount}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ ({{start}}–{{end}})", + "expandMoreLines": "ਹੋਰ {{displayCount}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ ({{start}}–{{end}})", + "expandLinesOfContext": "ਸੰਦਰਭ ਦੀਆਂ {{displayCount}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ", "expandAll": "ਸਭ ਵਿਸਤਾਰ ਕਰੋ", - "expandAllLines": "ਸਾਰੀਆਂ {{count}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ", + "expandAllLines": "ਸਾਰੀਆਂ {{displayCount}} ਲਾਈਨਾਂ ਵਿਸਤਾਰ ਕਰੋ", "loadingMoreFiles": "ਹੋਰ ਫਾਈਲਾਂ ਲੋਡ ਹੋ ਰਹੀਆਂ ਹਨ…", "retryLoadingNextPage": "ਅਗਲਾ ਪੰਨਾ ਲੋਡ ਕਰਨ ਦੀ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ", "failedToLoadMoreFiles": "ਹੋਰ ਫਾਈਲਾਂ ਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਫਲ — ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ", @@ -301,7 +301,7 @@ "closeReactions": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ ਬੰਦ ਕਰੋ", "reactionsTitle": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ", "addReaction": "ਪ੍ਰਤੀਕਿਰਿਆ ਜੋੜੋ", - "reactionPill": "{{emoji}} ਪ੍ਰਤੀਕਿਰਿਆ, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ਪ੍ਰਤੀਕਿਰਿਆ, {{displayCount}} {{countLabel}}", "reaction_one": "ਪ੍ਰਤੀਕਿਰਿਆ", "reaction": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ", "reaction_other": "ਪ੍ਰਤੀਕਿਰਿਆਵਾਂ", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ਇਸ ਪੁੱਲ ਰਿਕਵੈਸਟ 'ਤੇ ਕੋਈ ਰਿਵਿਊ ਥ੍ਰੈਡ ਜਾਂ ਗੱਲਬਾਤ ਟਿੱਪਣੀਆਂ ਨਹੀਂ ਹਨ।", "reviewFiles": "ਫਾਈਲਾਂ ਦਾ ਰਿਵਿਊ ਕਰੋ", "quotedDiffSnippet": "ਹਵਾਲਾ ਦਿੱਤਾ diff ਟੁਕੜਾ", - "moreLinesAbove": "… ਉੱਪਰ {{count}} ਹੋਰ ਲਾਈਨਾਂ", + "moreLinesAbove": "… ਉੱਪਰ {{displayCount}} ਹੋਰ ਲਾਈਨਾਂ", "termsAcceptRequired": "ਪੋਸਟ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਸੇਵਾ ਦੇ ਨਿਯਮ ਸਵੀਕਾਰ ਕਰਨੇ ਚਾਹੀਦੇ ਹਨ।", "termsOutdatedCopy": "ਸੇਵਾ ਦੇ ਨਿਯਮ ਬਦਲ ਗਏ ਹਨ। ਨਵਾਂ ਸੰਸਕਰਣ ਸਵੀਕਾਰ ਕਰਨ ਲਈ ਇਹ ਸਕ੍ਰੀਨ ਦੁਬਾਰਾ ਖੋਲ੍ਹੋ।", "termsCheckRetryCopy": "ਸੇਵਾ ਦੇ ਨਿਯਮ ਚੈੱਕ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕੇ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਚੈੱਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" @@ -395,11 +395,11 @@ "retryChecks": "ਚੈੱਕ ਦੁਬਾਰਾ ਕਰੋ", "viewOnGitHub": "GitHub 'ਤੇ PR ਵੇਖੋ", "noChecksReported": "ਕੋਈ ਚੈੱਕ ਰਿਪੋਰਟ ਨਹੀਂ ਕੀਤੇ ਗਏ", - "passed": "{{count}} ਪਾਸ ਹੋਏ", - "failed": "{{count}} ਅਸਫਲ ਹੋਏ", - "pending": "{{count}} ਬਕਾਇਆ", - "skipped": "{{count}} ਛੱਡੇ ਗਏ", - "checksCount": "{{count}} ਚੈੱਕ", + "passed": "{{displayCount}} ਪਾਸ ਹੋਏ", + "failed": "{{displayCount}} ਅਸਫਲ ਹੋਏ", + "pending": "{{displayCount}} ਬਕਾਇਆ", + "skipped": "{{displayCount}} ਛੱਡੇ ਗਏ", + "checksCount": "{{displayCount}} ਚੈੱਕ", "checkDetails": "ਚੈੱਕ ਵੇਰਵੇ", "pullRequest": "ਪੁੱਲ ਰਿਕਵੈਸਟ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ਲੰਬਿਤ ਟਿੱਪਣੀ", "pendingComment": "ਲੰਬਿਤ ਟਿੱਪਣੀਆਂ", "pendingComment_other": "ਲੰਬਿਤ ਟਿੱਪਣੀਆਂ", - "submitCountOfTotal": "{{totalCount}} ਵਿੱਚੋਂ {{freshCount}} ਟਿੱਪਣੀਆਂ ਜਮ੍ਹਾਂ ਕਰੋ", + "submitCountOfTotal": "{{displayTotalCount}} ਵਿੱਚੋਂ {{displayFreshCount}} ਟਿੱਪਣੀਆਂ ਜਮ੍ਹਾਂ ਕਰੋ", "submitReview": "ਰਿਵਿਊ ਜਮ੍ਹਾਂ ਕਰੋ", - "partialPostedMessage": "{{freshCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੋਸਟ ਕੀਤੀਆਂ। {{staleCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੁਰਾਣੇ ਕਮਿਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੀ ਕਤਾਰ ਵਿੱਚ ਰਹੀਆਂ।" + "partialPostedMessage": "{{displayFreshCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੋਸਟ ਕੀਤੀਆਂ। {{displayStaleCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੁਰਾਣੇ ਕਮਿਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੀ ਕਤਾਰ ਵਿੱਚ ਰਹੀਆਂ।" }, "reconnectNotice": { "title": "GitHub ਕਨੈਕਸ਼ਨ ਮਿਆਦ ਪੁੱਗ ਗਿਆ", @@ -580,7 +580,8 @@ "agents": "ਏਜੰਟ", "profile": "ਪ੍ਰੋਫਾਈਲ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ਟੈਬ, {{total}} ਵਿੱਚੋਂ {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ਤਾਜ਼ਾ", "common": "ਆਮ", "reactWith": "{{reaction}} ਨਾਲ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰੋ", - "accessibility": "{{emoji}} ਪ੍ਰਤੀਕਿਰਿਆ, {{count}}" + "accessibility": "{{emoji}} ਪ੍ਰਤੀਕਿਰਿਆ, {{displayCount}}" }, "composer": { "replyingTo": "ਨੂੰ ਜਵਾਬ ਦਿੱਤਾ ਜਾ ਰਿਹਾ ਹੈ", @@ -650,7 +651,7 @@ "imageUnavailable": "ਚਿੱਤਰ ਉਪਲਬਧ ਨਹੀਂ", "openFailed": "ਅਟੈਚਮੈਂਟ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਚੈੱਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "attachFailed": "ਫਾਈਲ ਅਟੈਚ ਕਰਨ ਵਿੱਚ ਅਸਫਲ", - "limit": "ਤੁਸੀਂ {{count}} ਤੱਕ ਫਾਈਲਾਂ ਅਟੈਚ ਕਰ ਸਕਦੇ ਹੋ।", + "limit": "ਤੁਸੀਂ {{displayCount}} ਤੱਕ ਫਾਈਲਾਂ ਅਟੈਚ ਕਰ ਸਕਦੇ ਹੋ।", "sizeRejection": "{{filename}} {{limit}} ਅਟੈਚਮੈਂਟ ਸੀਮਾ ਤੋਂ ਵੱਧ ਗਈ।", "unreadable": "{{filename}} ਪੜ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।", "pastedImage": "ਪੇਸਟ ਕੀਤਾ ਚਿੱਤਰ", @@ -722,6 +723,7 @@ "finalTermEnds": "ਅੰਤਿਮ ਮਿਆਦ ਸਮਾਪਤ ਹੁੰਦੀ ਹੈ", "afterFinalTerm": "ਅੰਤਿਮ ਮਿਆਦ ਤੋਂ ਬਾਅਦ", "remaining": "ਬਾਕੀ", + "lessThanOneDay": "੧ ਦਿਨ ਤੋਂ ਘੱਟ", "ends": "ਸਮਾਪਤ ਹੁੰਦਾ ਹੈ", "expires": "ਮਿਆਦ ਖਤਮ ਹੁੰਦੀ ਹੈ", "noActivePlan": "ਕੋਈ ਸਰਗਰਮ ਯੋਜਨਾ ਨਹੀਂ", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ਤੁਹਾਡੀ Standard ਮਹੀਨਾਵਾਰ ਕੀਮਤ", "perMonth": "/ਮਹੀਨਾ", "earlybirdAccessUntil": "{{date}} ਤੱਕ ਅਰਲੀਬਰਡ ਪਹੁੰਚ", - "earlybirdEnding": "ਅਰਲੀਬਰਡ ਖਤਮ ਹੋ ਰਿਹਾ ਹੈ: {{days}} ਦਿਨ ਬਾਕੀ", + "earlybirdEnding": "ਅਰਲੀਬਰਡ ਖਤਮ ਹੋ ਰਿਹਾ ਹੈ: {{remaining}}", "paymentPastDue": "ਭੁਗਤਾਨ ਬਕਾਇਆ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਭੁਗਤਾਨ ਢੰਗ ਅੱਪਡੇਟ ਕਰੋ।", "subscriptionCancels": "ਗਾਹਕੀ {{date}} ਨੂੰ ਰੱਦ ਹੁੰਦੀ ਹੈ", - "trialDaysRemaining": "ਅਜ਼ਮਾਇਸ਼: {{days}} ਦਿਨ ਬਾਕੀ", - "trialEndingSoon": "ਅਜ਼ਮਾਇਸ਼ ਜਲਦੀ ਖਤਮ ਹੋ ਰਹੀ ਹੈ: {{days}}" + "trialDaysRemaining": "ਅਜ਼ਮਾਇਸ਼: {{remaining}} ਬਾਕੀ", + "trialEndingSoon": "ਅਜ਼ਮਾਇਸ਼ ਜਲਦੀ ਖਤਮ ਹੋ ਰਹੀ ਹੈ: {{remaining}}" }, "changelog": { "title": "ਕੀ ਨਵਾਂ ਹੈ", @@ -996,7 +998,7 @@ "stalledTitle": "ਕੁਝ ਰੁਕ ਗਿਆ", "stalledBody": "ਅਸੀਂ {{name}} ਦਾ ਸੈੱਟਅੱਪ ਪੂਰਾ ਨਹੀਂ ਕਰ ਸਕੇ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਜਾਂ ਇਹ ਜਾਰੀ ਰਹੇ ਤਾਂ hi@kilo.ai 'ਤੇ ਈਮੇਲ ਕਰੋ।", "timeoutTitle": "ਉਮੀਦ ਤੋਂ ਵੱਧ ਸਮਾਂ ਲੱਗ ਰਿਹਾ ਹੈ", - "timeoutBody": "{{name}} ਦਾ ਸੈੱਟਅੱਪ ਆਮ ਨਾਲੋਂ ਵੱਧ ਸਮਾਂ ਲੈ ਰਿਹਾ ਹੈ ({{minutes}} ਮਿੰਟ ਤੋਂ ਵੱਧ)।", + "timeoutBody": "{{name}} ਦਾ ਸੈੱਟਅੱਪ ਆਮ ਨਾਲੋਂ ਵੱਧ ਸਮਾਂ ਲੈ ਰਿਹਾ ਹੈ ({{displayMinutes}} ਮਿੰਟ ਤੋਂ ਵੱਧ)।", "continueInBackground": "ਪਿਛੋਕੜ ਵਿੱਚ ਜਾਰੀ ਰੱਖੋ", "settingUp": "{{name}} ਸੈੱਟਅੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", "finishingSetup": "ਸੈੱਟਅੱਪ ਪੂਰਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", @@ -1287,7 +1289,7 @@ "mergeGate": "ਮਰਜ ਗੇਟ", "repositories": "ਰਿਪੋਜ਼ਟਰੀਆਂ", "allRepositories": "ਸਾਰੀਆਂ ਰਿਪੋਜ਼ਟਰੀਆਂ", - "nSelected": "{{count}} ਚੁਣੇ ਗਏ", + "nSelected": "{{displayCount}} ਚੁਣੇ ਗਏ", "reviewMemory": "ਸਮੀਖਿਆ ਮੈਮੋਰੀ", "proposedReviewMdGuidance": "ਪ੍ਰਸਤਾਵਿਤ REVIEW.md ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼" }, @@ -1391,14 +1393,14 @@ "analyzed": "ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਗਿਆ", "exploitabilityReasoning": "ਸ਼ੋਸ਼ਣਯੋਗਤਾ ਤਰਕ", "suggestedFix": "ਸੁਝਾਈ ਗਈ ਸੁਧਾਰ", - "whereFound": "ਇਹ ਕਿੱਥੇ ਮਿਲਿਆ ({{count}})", + "whereFound": "ਇਹ ਕਿੱਥੇ ਮਿਲਿਆ ({{displayCount}})", "fullReport": "ਪੂਰੀ ਤਿਆਰ ਕੀਤੀ ਰਿਪੋਰਟ", "unknown": "ਅਣਜਾਣ", "yes": "ਹਾਂ", "no": "ਨਹੀਂ" }, "dashboard": { - "findingsCount": "{{count}} ਖੋਜਾਂ", + "findingsCount": "{{displayCount}} ਖੋਜਾਂ", "notMeasured": "ਮਾਪਿਆ ਨਹੀਂ ਗਿਆ", "actFirst": "ਪਹਿਲਾਂ ਕਾਰਵਾਈ ਕਰੋ", "slaPosture": "SLA ਸਥਿਤੀ", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "ਰਿਪੋਜ਼ਟਰੀ ਕਾਰਵਾਈ ਯੋਜਨਾ", "noOpenFindings": "ਕੋਈ ਖੁੱਲ੍ਹੀ ਖੋਜ ਧਿਆਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ", "deadlineToday": "ਅੱਜ ਸਮਾਂ ਸੀਮਾ ਪੂਰੀ ਹੋਈ", - "daysOverdue": "{{count}} ਦਿਨ ਦੇਰੀ ਨਾਲ", + "daysOverdue": "{{displayCount}} ਦਿਨ ਦੇਰੀ ਨਾਲ", "withinDeadline": "ਸਮਾਂ ਸੀਮਾ ਦੇ ਅੰਦਰ", "criticalOverdue": "ਗੰਭੀਰ ਦੇਰੀ", "highOverdue": "ਉੱਚ ਦੇਰੀ", @@ -1435,6 +1437,27 @@ "syncQueued": "ਸਿੰਕ ਕਤਾਰ ਵਿੱਚ ਹੈ", "syncStatusUnavailable": "ਸਿੰਕ ਸਥਿਤੀ ਉਪਲਬਧ ਨਹੀਂ" }, + "dashboardMetrics": { + "openFindings": "ਖੁੱਲ੍ਹੀਆਂ ਖੋਜਾਂ", + "openFindingsDetail": "{{critical}} ਗੰਭੀਰ, {{high}} ਉੱਚ", + "confirmedExploitable": "ਪੁਸ਼ਟੀ ਕੀਤਾ ਸ਼ੋਸ਼ਣਯੋਗ", + "confirmedExploitableDetail": "ਵਿਸ਼ਲੇਸ਼ਣ ਦੁਆਰਾ ਪ੍ਰੋਜੈਕਟ ਜੋਖਮ ਦੀ ਪੁਸ਼ਟੀ ਹੋਈ", + "needsReview": "ਤੁਹਾਡੀ ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ", + "needsReviewDetail": "ਮਨੁੱਖੀ ਫੈਸਲੇ ਦੀ ਲੋੜ ਹੈ", + "analysisIncomplete": "ਵਿਸ਼ਲੇਸ਼ਣ ਪੂਰਾ ਨਹੀਂ", + "analysisIncompleteDetail": "ਪ੍ਰੋਜੈਕਟ ਜੋਖਮ ਅਜੇ ਅਣਜਾਣ ਹੈ", + "slaCompliance": "SLA ਪਾਲਣਾ", + "notMeasured": "ਮਾਪਿਆ ਨਹੀਂ ਗਿਆ", + "withinDeadlineDetail": "{{total}} ਵਿੱਚੋਂ {{within}} ਸਮਾਂ ਸੀਮਾ ਦੇ ਅੰਦਰ", + "noDeadlineData": "ਕਿਸੇ ਵੀ ਖੋਜ ਦੀ ਅਜੇ SLA ਸਮਾਂ ਸੀਮਾ ਨਹੀਂ ਹੈ", + "deadlinePassed": "ਸਮਾਂ ਸੀਮਾ ਖਤਮ ਹੋਈ", + "deadlinePassedDetail": "{{critical}} ਗੰਭੀਰ, {{high}} ਉੱਚ", + "dueThisWeek": "ਇਸ ਹਫ਼ਤੇ ਸਮਾਂ ਸੀਮਾ", + "dueThisWeekDetail": "{{exploitable}} ਪੁਸ਼ਟੀ ਕੀਤਾ ਸ਼ੋਸ਼ਣਯੋਗ", + "noDeadline": "ਕੋਈ ਸਮਾਂ ਸੀਮਾ ਨਹੀਂ", + "reviewSlaAssignment": "SLA ਨਿਰਧਾਰਨ ਦੀ ਸਮੀਖਿਆ ਕਰੋ", + "allOpenFindingsTracked": "ਸਾਰੀਆਂ ਖੁੱਲ੍ਹੀਆਂ ਖੋਜਾਂ ਟਰੈਕ ਕੀਤੀਆਂ ਗਈਆਂ" + }, "dismiss": { "title": "ਖੋਜ ਨੂੰ ਖਾਰਜ ਕਰੋ", "submit": "ਖੋਜ ਨੂੰ ਖਾਰਜ ਕਰੋ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ਵਿਸ਼ਲੇਸ਼ਣ", "automation": "ਸਵੈਚਾਲਨ", "automationAllOff": "ਸਾਰੇ ਬੰਦ", - "automationCount": "3 ਵਿੱਚੋਂ {{count}} ਯੋਗ", + "automationCount": "3 ਵਿੱਚੋਂ {{displayCount}} ਯੋਗ", "notifications": "ਸੂਚਨਾਵਾਂ", - "notificationsCount": "2 ਵਿੱਚੋਂ {{count}} ਯੋਗ", + "notificationsCount": "2 ਵਿੱਚੋਂ {{displayCount}} ਯੋਗ", "slaPolicy": "SLA ਨੀਤੀ", "disabledNoManage": "ਸੁਰੱਖਿਆ ਏਜੰਟ ਅਯੋਗ ਹੈ। ਸਿਰਫ਼ ਸੰਗਠਨ ਮਾਲਕ ਅਤੇ ਬਿਲਿੰਗ ਪ੍ਰਬੰਧਕ ਇਸਨੂੰ ਚਾਲੂ ਕਰ ਸਕਦੇ ਹਨ।", "disabledNoRepo": "ਸੁਰੱਖਿਆ ਏਜੰਟ ਨੂੰ ਯੋਗ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਰਿਪੋਜ਼ਟਰੀ ਚੁਣੋ।", @@ -1524,7 +1547,7 @@ "openPullRequest": "pull request ਖੋਲ੍ਹੋ {{number}}", "openDraftPullRequest": "ਡਰਾਫਟ pull request ਖੋਲ੍ਹੋ {{number}}", "progress": "ਤਰੱਕੀ", - "attemptHistory": "ਕੋਸ਼ਿਸ਼ ਇਤਿਹਾਸ ({{count}})", + "attemptHistory": "ਕੋਸ਼ਿਸ਼ ਇਤਿਹਾਸ ({{displayCount}})", "attemptNumber": "ਕੋਸ਼ਿਸ਼ #{{number}}", "startedBy": "ਦੁਆਰਾ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ", "model": "ਮਾਡਲ", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "ਕੰਮ ਪੜ੍ਹੋ", "updateTodos": "ਕੰਮ ਅੱਪਡੇਟ ਕਰੋ", - "linesBadge": "{{count}} ਲਾਈਨਾਂ", - "filesBadge": "{{count}} ਫਾਈਲਾਂ", - "matchesBadge": "{{count}} ਮੇਲ" + "linesBadge": "{{displayCount}} ਲਾਈਨਾਂ", + "filesBadge": "{{displayCount}} ਫਾਈਲਾਂ", + "matchesBadge": "{{displayCount}} ਮੇਲ" }, "readToolMarkdown": { "linesTruncated": "ਲਾਈਨਾਂ {{start}}–{{end}} (ਛੋਟੀਆਂ ਕੀਤੀਆਂ ਗਈਆਂ)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ਇਹ ਜਵਾਬ ਰਿਪੋਰਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।", "reportAiResponseSubmitted": "ਰਿਪੋਰਟ ਭੇਜੀ ਗਈ। ਰਸੀਦ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "ਵੇਰਵੇ ਉਪਲਬਧ ਨਹੀਂ", "textDisplay": "ਟੈਕਸਟ ਡਿਸਪਲੇ", @@ -1999,7 +2026,7 @@ "preparationComplete": "ਤਿਆਰੀ ਪੂਰੀ ਹੋਈ", "preparationFailed": "ਤਿਆਰੀ ਅਸਫਲ", "setupCommand": "ਸੈੱਟਅੱਪ ਕਮਾਂਡ {{index}}", - "setupCommandOf": "ਸੈੱਟਅੱਪ ਕਮਾਂਡ {{index}} ਕੁੱਲ {{count}} ਵਿੱਚੋਂ" + "setupCommandOf": "ਸੈੱਟਅੱਪ ਕਮਾਂਡ {{index}} ਕੁੱਲ {{displayCount}} ਵਿੱਚੋਂ" }, "permissionCard": { "title": "ਇਜਾਜ਼ਤ ਲੋੜੀਂਦੀ ਹੈ", @@ -2036,7 +2063,7 @@ "submissionFailed": "ਭੇਜਣਾ ਅਸਫਲ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "questionAnnouncement": "ਏਜੰਟ ਨੂੰ ਤੁਹਾਡੀ ਇੰਪੁੱਟ ਚਾਹੀਦੀ ਹੈ। ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਜਵਾਬ ਨਹੀਂ ਦਿੰਦੇ, ਕੰਪੋਜ਼ਰ ਰੁਕਿਆ ਰਹਿੰਦਾ ਹੈ।", "permissionAnnouncement": "ਏਜੰਟ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਲਈ ਇਜਾਜ਼ਤ ਚਾਹੀਦੀ ਹੈ। ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਫੈਸਲਾ ਨਹੀਂ ਕਰਦੇ, ਕੰਪੋਜ਼ਰ ਰੁਕਿਆ ਰਹਿੰਦਾ ਹੈ।", - "positionHint": "({{count}} ਵਿੱਚੋਂ 1)", + "positionHint": "({{displayCount}} ਵਿੱਚੋਂ 1)", "movedPastPrompt": "ਏਜੰਟ ਇਸ ਪ੍ਰੰਪਟ ਤੋਂ ਅੱਗੇ ਵਧ ਚੁੱਕਾ ਹੈ। ਸੈਸ਼ਨ ਜਾਰੀ ਰਹਿਣ ਤੇ ਇਹ ਕਾਰਡ ਬੰਦ ਹੋ ਜਾਵੇਗਾ।", "waitingForAnswer": "ਏਜੰਟ ਤੁਹਾਡੇ ਜਵਾਬ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ। ਜਦੋਂ ਇਹ ਸਵਾਲ ਖੁੱਲ੍ਹਾ ਹੈ, ਏਜੰਟ ਨੂੰ ਤੁਹਾਡਾ ਸੁਨੇਹਾ ਰੁਕਿਆ ਰਹਿੰਦਾ ਹੈ।", "waitingForPermission": "ਏਜੰਟ ਇਜਾਜ਼ਤ ਦੀ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ। ਜਦੋਂ ਇਹ ਬੇਨਤੀ ਖੁੱਲ੍ਹੀ ਹੈ, ਏਜੰਟ ਨੂੰ ਤੁਹਾਡਾ ਸੁਨੇਹਾ ਰੁਕਿਆ ਰਹਿੰਦਾ ਹੈ।" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "ਕੈਮਰਾ ਪਹੁੰਚ ਅਸਮਰੱਥ", "cameraAccessMessage": "ਫੋਟੋ ਖਿੱਚਣ ਲਈ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਕੈਮਰਾ ਪਹੁੰਚ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ।", "couldNotOpenPhotoPicker": "ਫੋਟੋ ਪਿਕਰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ। Kilo ਮੁੜ ਚਾਲੂ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", - "maxFilesAllowed": "ਵੱਧ ਤੋਂ ਵੱਧ {{count}} ਫਾਈਲਾਂ ਦੀ ਇਜਾਜ਼ਤ ਹੈ", + "maxFilesAllowed": "ਵੱਧ ਤੋਂ ਵੱਧ {{displayCount}} ਫਾਈਲਾਂ ਦੀ ਇਜਾਜ਼ਤ ਹੈ", "onlyAddingFiles": "{{total}} ਵਿੱਚੋਂ ਸਿਰਫ {{accepted}} ਫਾਈਲਾਂ ਜੋੜੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ (ਵੱਧ ਤੋਂ ਵੱਧ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ਲਾਗਤ {{cost}}", "costSuffix": ", ਲਾਗਤ {{cost}}", "tokensWindowUnavailable": "ਸੰਦਰਭ {{used}} ਟੋਕਨ, ਵਿੰਡੋ ਅਨੁਪਲਬਧ", - "tokensUsage": "ਸੰਦਰਭ {{window}} ਵਿੱਚੋਂ {{used}} ਟੋਕਨ, {{percentage}}% ਵਰਤੇ ਗਏ", + "tokensUsage": "ਸੰਦਰਭ {{window}} ਵਿੱਚੋਂ {{used}} ਟੋਕਨ, {{percentage}} ਵਰਤੇ ਗਏ", "title": "ਸੰਦਰਭ ਵਰਤੋਂ", "used": "ਵਰਤੇ ਗਏ", "remaining": "ਬਾਕੀ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "ਵਰਤੋਂ ਨਵੀਨਤਮ ਮੁਕੰਮਲ ਸਹਾਇਕ ਜਵਾਬ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।", "tokenUsage": "ਟੋਕਨ ਵਰਤੋਂ", "cacheRate": "ਕੈਸ਼ ਦਰ", - "modelsCount": "ਮਾਡਲ ({{count}})", + "modelsCount": "ਮਾਡਲ ({{displayCount}})", "tokenTotalsNote": "ਟੋਕਨ ਕੁੱਲ ਸਿਰਫ ਇਸ ਸੈਸ਼ਨ ਨੂੰ ਕਵਰ ਕਰਦੇ ਹਨ ਅਤੇ ਸਬਏਜੰਟ/ਚਾਈਲਡ-ਸੈਸ਼ਨ ਟੋਕਨ ਨੂੰ ਸ਼ਾਮਲ ਨਹੀਂ ਕਰਦੇ।", "subagents": "ਸਬਏਜੰਟ", "subagentsDescription": "ਚਾਈਲਡ ਸੈਸ਼ਨਾਂ ਤੋਂ ਬਕਾਇਆ ਲਾਗਤ", @@ -2373,7 +2400,7 @@ "connectedCli": "ਕਨੈਕਟ ਕੀਤੇ CLI 'ਤੇ", "newSessionOn": "{{name}} 'ਤੇ ਨਵਾਂ ਸੈਸ਼ਨ", "noMatchingSessions": "ਕੋਈ ਮੇਲ ਖਾਂਦੇ ਸੈਸ਼ਨ ਨਹੀਂ।", - "onlyFirstFilesAttached": "ਸਿਰਫ ਪਹਿਲੀਆਂ {{count}} ਫਾਈਲਾਂ ਅਟੈਚ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ।", + "onlyFirstFilesAttached": "ਸਿਰਫ ਪਹਿਲੀਆਂ {{displayCount}} ਫਾਈਲਾਂ ਅਟੈਚ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ।", "staleMessage": "ਇਹ ਸਾਂਝਾ ਹੁਣ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", "retryableMessage": "ਤੁਹਾਡੇ ਸੈਸ਼ਨ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ।", "emptyMessage": "ਅਜੇ ਕੋਈ ਸੈਸ਼ਨ ਨਹੀਂ — ਇਸ ਨੂੰ ਭੇਜਣ ਲਈ ਨਵਾਂ ਸ਼ੁਰੂ ਕਰੋ।", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "ਇਸ Apple ਖਾਤੇ 'ਤੇ Kilo Pass ਵੱਖਰੇ Kilo ਖਾਤੇ ਨਾਲ ਸਬੰਧਤ ਹੈ। ਇਸ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ਉਸ Kilo ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ ਇਨ ਕਰੋ।", "alreadySubscribed": "ਤੁਹਾਡੇ ਕੋਲ ਪਹਿਲਾਂ ਹੀ Kilo Pass ਗਾਹਕੀ ਹੈ।", "purchaseUnavailable": "Kilo Pass ਖਰੀਦ ਇਸ ਸਮੇਂ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", - "tierCredits": "ਕ੍ਰੈਡਿਟਾਂ ਵਿੱਚ ${{amount}}", + "tierCredits": "ਕ੍ਰੈਡਿਟਾਂ ਵਿੱਚ {{amount}}", "perMonth": "{{price}}/ਮਹੀਨਾ", "verifyPurchaseFailed": "ਤੁਹਾਡੀ ਖਰੀਦ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਹੋ ਸਕੀ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਜਾਂਚੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "productsCouldNotLoad": "Kilo Pass ਉਤਪਾਦ ਐਪ ਸਟੋਰ ਤੋਂ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ।", @@ -2417,7 +2444,7 @@ "manageFailed": "ਐਪ ਸਟੋਰ ਗਾਹਕੀ ਪ੍ਰਬੰਧਨ ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ।", "kiloPassSetup": "Kilo Pass ਸੈੱਟਅੱਪ", "subscriptionHeaderDescription": "ਇੱਕ ਮਾਸਿਕ ਗਾਹਕੀ ਜੋ Kilo ਐਪ ਵਿੱਚ AI ਕੋਡਿੰਗ ਸੈਸ਼ਨ ਚਲਾਉਣ ਲਈ — ਕਲਾਉਡ ਏਜੰਟ, ਰਿਮੋਟ ਸੈਸ਼ਨ, ਅਤੇ KiloClaw ਚੈਟ — ਤੁਹਾਡੇ Kilo ਬੈਲੰਸ ਵਿੱਚ ਕ੍ਰੈਡਿਟ ਜੋੜਦੀ ਹੈ।", - "tierDescription": "Kilo ਐਪ ਵਰਤੋਂ ਲਈ ਮਾਸਿਕ ਤੌਰ 'ਤੇ ${{price}} ਅਦਾ ਕੀਤੇ ਕ੍ਰੈਡਿਟ ਜੋੜੇ ਜਾਂਦੇ ਹਨ।", + "tierDescription": "Kilo ਐਪ ਵਰਤੋਂ ਲਈ ਮਾਸਿਕ ਤੌਰ 'ਤੇ {{price}} ਅਦਾ ਕੀਤੇ ਕ੍ਰੈਡਿਟ ਜੋੜੇ ਜਾਂਦੇ ਹਨ।", "subscribe": "ਗਾਹਕੀ ਲਓ", "subscribeDescription": "ਬੋਨਸ ਪ੍ਰਗਤੀ ਨਾਲ ਮਾਸਿਕ ਕ੍ਰੈਡਿਟ", "manage": "ਪ੍ਰਬੰਧਿਤ ਕਰੋ", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass ਬਕਾਇਆ", "statusCanceling": "Kilo Pass ਰੱਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", "statusPastDue": "Kilo Pass ਦੇਰੀ ਨਾਲ", - "monthlyCredits": "${{credits}} ਮਾਸਿਕ ਕ੍ਰੈਡਿਟ", + "monthlyCredits": "{{credits}} ਮਾਸਿਕ ਕ੍ਰੈਡਿਟ", "ends": "{{date}} ਨੂੰ ਖਤਮ ਹੁੰਦਾ ਹੈ", "periodEnd": "ਮਿਆਦ ਦਾ ਅੰਤ", "managedOnGooglePlay": "Google Play 'ਤੇ ਪ੍ਰਬੰਧਿਤ", diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index 58ea9e09de..c8acefeec2 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -201,7 +201,8 @@ "agents": "Agenci", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, karta, {{position}} z {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Ostatnie", "common": "Popularne", "reactWith": "Zareaguj za pomocą {{reaction}}", - "accessibility": "{{emoji}} reakcja, {{count}}" + "accessibility": "{{emoji}} reakcja, {{displayCount}}" }, "composer": { "replyingTo": "Odpowiadanie na", @@ -271,7 +272,7 @@ "imageUnavailable": "Obraz niedostępny", "openFailed": "Nie udało się otworzyć załącznika. Sprawdź połączenie i spróbuj ponownie.", "attachFailed": "Nie udało się dołączyć pliku", - "limit": "Możesz dołączyć maksymalnie {{count}} plików.", + "limit": "Możesz dołączyć maksymalnie {{displayCount}} plików.", "sizeRejection": "{{filename}} przekracza limit załączników wynoszący {{limit}}.", "unreadable": "Nie udało się odczytać pliku {{filename}}.", "pastedImage": "wklejony obraz", @@ -321,7 +322,9 @@ "someone": "Ktoś", "typing_one": "{{name}} pisze...", "typing": "{{names}} piszą...", - "typing_other": "{{names}} piszą..." + "typing_other": "{{names}} piszą...", + "typing_few": "{{names}} piszą...", + "typing_many": "{{names}} piszą..." }, "botStatus": { "online": "Online", @@ -343,6 +346,7 @@ "finalTermEnds": "Ostatni okres kończy się", "afterFinalTerm": "Po ostatnim okresie", "remaining": "Pozostało", + "lessThanOneDay": "Mniej niż 1 dzień", "ends": "Kończy się", "expires": "Wygasa", "noActivePlan": "Brak aktywnego planu", @@ -361,11 +365,11 @@ "yourStandardMonthlyPrice": "Twoja miesięczna cena Standard", "perMonth": "/mies.", "earlybirdAccessUntil": "Dostęp Earlybird do {{date}}", - "earlybirdEnding": "Earlybird kończy się: pozostało {{days}} dni", + "earlybirdEnding": "Earlybird kończy się: {{remaining}}", "paymentPastDue": "Płatność zaległa. Zaktualizuj metodę płatności.", "subscriptionCancels": "Subskrypcja zostanie anulowana {{date}}", - "trialDaysRemaining": "Okres próbny: pozostało {{days}} dni", - "trialEndingSoon": "Okres próbny wkrótce się kończy: {{days}}" + "trialDaysRemaining": "Okres próbny: pozostało {{remaining}}", + "trialEndingSoon": "Okres próbny wkrótce się kończy: {{remaining}}" }, "changelog": { "title": "Co nowego", @@ -567,7 +571,9 @@ "openSettings": "Otwórz ustawienia dla {{name}}", "openUnread": "Otwórz {{name}}, {{displayCount}} nieprzeczytanych wiadomości", "openUnread_other": "Otwórz {{name}}, {{displayCount}} nieprzeczytanych wiadomości", - "openUnread_one": "Otwórz {{name}}, {{displayCount}} nieprzeczytana wiadomość" + "openUnread_one": "Otwórz {{name}}, {{displayCount}} nieprzeczytana wiadomość", + "openUnread_few": "Otwórz {{name}}, {{displayCount}} nieprzeczytane wiadomości", + "openUnread_many": "Otwórz {{name}}, {{displayCount}} nieprzeczytanych wiadomości" }, "list": { "createInstance": "Utwórz instancję", @@ -665,7 +671,7 @@ "startingSandbox": "Uruchamianie piaskownicy", "stoppedBody": "Instancja {{name}} zatrzymała się nieoczekiwanie podczas konfiguracji.", "stoppedTitle": "Konfiguracja zatrzymana", - "timeoutBody": "Konfiguracja {{name}} trwa dłużej niż zwykle (ponad {{minutes}} minut).", + "timeoutBody": "Konfiguracja {{name}} trwa dłużej niż zwykle (ponad {{displayMinutes}} minut).", "timeoutTitle": "Trwa dłużej niż oczekiwano" }, "unavailableDescription": "Do przygotowania instancji wymagana jest aktywna subskrypcja KiloClaw. Istniejące instancje i subskrypcje działają normalnie.", @@ -912,7 +918,7 @@ "focusAreas": "Obszary uwagi", "mergeGate": "Bramka scalania", "model": "Model", - "nSelected": "Wybrano: {{count}}", + "nSelected": "Wybrano: {{displayCount}}", "proposedReviewMdGuidance": "Proponowane wytyczne REVIEW.md", "repositories": "Repozytoria", "reviewMemory": "Pamięć przeglądów", @@ -981,7 +987,7 @@ "triageReasoning": "Uzasadnienie triage", "unknown": "Nieznane", "watchInCloudAgent": "Obejrzyj w Cloud Agent", - "whereFound": "Gdzie to znaleziono ({{count}})", + "whereFound": "Gdzie to znaleziono ({{displayCount}})", "yes": "Tak" }, "analysisSettings": { @@ -1048,7 +1054,9 @@ "severityCriticalOnly": "Tylko krytyczne", "severityHighAndAbove": "Wysoka i wyższe", "severityMediumAndAbove": "Średnia i wyższe", - "title": "Automatyzacja" + "title": "Automatyzacja", + "queued_few": "{{displayCount}} istniejące ustalenia dodano do kolejki analizy.", + "queued_many": "{{displayCount}} istniejących ustaleń dodano do kolejki analizy." }, "commandRetry": { "discard": "Odrzuć" @@ -1061,11 +1069,11 @@ "confirmedExploitable": "Potwierdzone jako możliwe do wykorzystania", "couldNotLoad": "Nie można załadować danych panelu", "criticalOverdue": "Krytyczne przeterminowane", - "daysOverdue": "{{count}} dni po terminie", + "daysOverdue": "{{displayCount}} dni po terminie", "deadlineToday": "Termin mija dziś", "filterByRepository": "Filtruj według repozytorium", "findings": "Ustalenia", - "findingsCount": "{{count}} ustaleń", + "findingsCount": "{{displayCount}} ustaleń", "highOverdue": "Wysokie przeterminowane", "lastSynced": "Ostatnia synchronizacja: {{time}}", "manageRepositories": "Zarządzaj repozytoriami", @@ -1091,6 +1099,27 @@ "syncStatusUnavailable": "Status synchronizacji niedostępny", "withinDeadline": "W terminie" }, + "dashboardMetrics": { + "openFindings": "Otwarte ustalenia", + "openFindingsDetail": "{{critical}} krytycznych, {{high}} wysokich", + "confirmedExploitable": "Potwierdzone jako możliwe do wykorzystania", + "confirmedExploitableDetail": "Ryzyko projektu potwierdzone analizą", + "needsReview": "Wymaga Twojego przeglądu", + "needsReviewDetail": "Wymagana decyzja człowieka", + "analysisIncomplete": "Analiza nieukończona", + "analysisIncompleteDetail": "Ryzyko projektu wciąż nieznane", + "slaCompliance": "Zgodność z SLA", + "notMeasured": "Nie zmierzono", + "withinDeadlineDetail": "{{within}} z {{total}} w terminie", + "noDeadlineData": "Żadne ustalenia nie mają jeszcze terminu SLA", + "deadlinePassed": "Termin minął", + "deadlinePassedDetail": "{{critical}} krytycznych, {{high}} wysokich", + "dueThisWeek": "Termin w tym tygodniu", + "dueThisWeekDetail": "{{exploitable}} potwierdzonych jako możliwe do wykorzystania", + "noDeadline": "Brak terminu", + "reviewSlaAssignment": "Przejrzyj przypisanie SLA", + "allOpenFindingsTracked": "Wszystkie otwarte ustalenia śledzone" + }, "dismiss": { "alreadyResolvedDescription": "To ustalenie zostało już rozwiązane i nie przyjmuje już odrzucenia.", "cannotDismissDescription": "Tylko właściciele organizacji i menedżerowie rozliczeń mogą odrzucać ustalenia.", @@ -1188,7 +1217,7 @@ "title": "Powiadomienia" }, "remediation": { - "attemptHistory": "Historia prób ({{count}})", + "attemptHistory": "Historia prób ({{displayCount}})", "attemptNumber": "Próba #{{number}}", "branch": "Gałąź", "cancelMessage": "Security Agent zatrzyma trwającą próbę naprawy.", @@ -1256,7 +1285,7 @@ "analysisModeSubtitle": "Analiza: {{mode}}", "automation": "Automatyzacja", "automationAllOff": "Wszystko wyłączone", - "automationCount": "Włączono {{count}} z 3", + "automationCount": "Włączono {{displayCount}} z 3", "couldNotLoadPermissions": "Nie można załadować uprawnień", "couldNotLoadRepositories": "Nie można załadować repozytoriów", "couldNotLoadSettings": "Nie można załadować ustawień Security Agent", @@ -1267,7 +1296,7 @@ "enabled": "Włączone", "modelsAndAnalysis": "Modele i analiza", "notifications": "Powiadomienia", - "notificationsCount": "Włączono {{count}} z 2", + "notificationsCount": "Włączono {{displayCount}} z 2", "off": "Wył.", "on": "Wł.", "repositories": "Repozytoria", @@ -1278,7 +1307,9 @@ "selectRepositories": "Wybierz repozytoria", "selectRepositoriesSubtitle": "Wybierz, które repozytoria monitoruje Security Agent", "slaPolicy": "Polityka SLA", - "title": "Ustawienia" + "title": "Ustawienia", + "repositoriesCount_few": "Wybrano {{displayCount}} repozytoria", + "repositoriesCount_many": "Wybrano {{displayCount}} repozytoriów" }, "settingsSave": { "discard": "Odrzuć", @@ -1355,7 +1386,11 @@ "cent_other": "centów", "dollar_one": "dolar", "dollar": "dolarów", - "dollar_other": "dolarów" + "dollar_other": "dolarów", + "cent_few": "centy", + "cent_many": "centów", + "dollar_few": "dolary", + "dollar_many": "dolarów" }, "githubInstall": { "couldNotOpenMessage": "Nie udało się rozpocząć konfiguracji aplikacji GitHub. Spróbuj ponownie.", @@ -1451,7 +1486,9 @@ "partRenderer": { "updatedFileCount_one": "Zaktualizowano {{displayCount}} plik", "updatedFileCount": "Zaktualizowano {{displayCount}} pliki", - "updatedFileCount_other": "Zaktualizowano {{displayCount}} pliki" + "updatedFileCount_other": "Zaktualizowano {{displayCount}} pliki", + "updatedFileCount_few": "Zaktualizowano {{displayCount}} pliki", + "updatedFileCount_many": "Zaktualizowano {{displayCount}} plików" }, "toolPatch": { "operationAdded": "Dodano", @@ -1476,9 +1513,9 @@ "toolTask": "zadanie", "readTodos": "Czytaj zadania", "updateTodos": "Zaktualizuj zadania", - "linesBadge": "{{count}} wiersze", - "filesBadge": "{{count}} pliki", - "matchesBadge": "{{count}} dopasowania" + "linesBadge": "{{displayCount}} wiersze", + "filesBadge": "{{displayCount}} pliki", + "matchesBadge": "{{displayCount}} dopasowania" }, "readToolMarkdown": { "linesTruncated": "wiersze {{start}}–{{end}} (obcięte)", @@ -1562,6 +1599,10 @@ "reportAiResponseFailedTerminal": "Tej odpowiedzi nie można zgłosić.", "reportAiResponseSubmitted": "Zgłoszenie wysłane. Potwierdzenie {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Szczegóły niedostępne", "textDisplay": "Wyświetlanie tekstu", @@ -1620,7 +1661,7 @@ "preparationComplete": "Przygotowanie zakończone", "preparationFailed": "Przygotowanie nie powiodło się", "setupCommand": "Polecenie konfiguracji {{index}}", - "setupCommandOf": "Polecenie konfiguracji {{index}} z {{count}}" + "setupCommandOf": "Polecenie konfiguracji {{index}} z {{displayCount}}" }, "permissionCard": { "title": "Wymagane uprawnienie", @@ -1657,7 +1698,7 @@ "submissionFailed": "Wysyłanie nie powiodło się. Spróbuj ponownie.", "questionAnnouncement": "Agent potrzebuje Twoich danych. Edytor jest wstrzymany, dopóki odpowiadasz.", "permissionAnnouncement": "Agent potrzebuje uprawnienia, aby kontynuować. Edytor jest wstrzymany, dopóki decydujesz.", - "positionHint": "(1 z {{count}})", + "positionHint": "(1 z {{displayCount}})", "movedPastPrompt": "Agent przeszedł już poza ten monit. Ta karta zamknie się, gdy sesja będzie kontynuowana.", "waitingForAnswer": "Agent czeka na Twoją odpowiedź. Dopóki to pytanie jest otwarte, Twoja wiadomość do agenta jest wstrzymana.", "waitingForPermission": "Agent czeka na uprawnienie. Dopóki ta prośba jest otwarta, Twoja wiadomość do agenta jest wstrzymana." @@ -1697,7 +1738,9 @@ "omitted_other": "Nie można wyświetlić {{displayCount}} wcześniejszych elementów tej sesji.", "couldNotLoad": "Nie udało się załadować wcześniejszych wiadomości.", "unavailable": "Wcześniejsze wiadomości nie są dostępne.", - "tooLarge": "Wcześniejsze wiadomości są zbyt duże, aby je załadować." + "tooLarge": "Wcześniejsze wiadomości są zbyt duże, aby je załadować.", + "omitted_few": "Nie można wyświetlić {{displayCount}} wcześniejsze elementy tej sesji.", + "omitted_many": "Nie można wyświetlić {{displayCount}} wcześniejszych elementów tej sesji." }, "markdownTable": { "viewTable": "Wyświetl tabelę", @@ -1709,7 +1752,11 @@ "rowCount_one": "wiersz", "rowCount": "wiersze", "rowCount_other": "wiersze", - "opensFullScreen": "otwiera pełny ekran" + "opensFullScreen": "otwiera pełny ekran", + "columnCount_few": "kolumny", + "columnCount_many": "kolumn", + "rowCount_few": "wiersze", + "rowCount_many": "wierszy" }, "sessionFilter": { "title": "Filtruj sesje", @@ -1778,7 +1825,7 @@ "cameraAccessDisabled": "Dostęp do aparatu wyłączony", "cameraAccessMessage": "Zezwól na dostęp do aparatu w Ustawieniach, aby zrobić zdjęcie.", "couldNotOpenPhotoPicker": "Nie udało się otworzyć wyboru zdjęć. Uruchom ponownie Kilo i spróbuj ponownie.", - "maxFilesAllowed": "Maksymalnie {{count}} plików", + "maxFilesAllowed": "Maksymalnie {{displayCount}} plików", "onlyAddingFiles": "Dodawanie tylko {{accepted}} z {{total}} plików (maks. {{max}})" }, "composer": { @@ -1843,7 +1890,7 @@ "costPrefix": "koszt {{cost}}", "costSuffix": ", koszt {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} tokenów, okno niedostępne", - "tokensUsage": "Kontekst {{used}} z {{window}} tokenów, wykorzystano {{percentage}}%", + "tokensUsage": "Kontekst {{used}} z {{window}} tokenów, wykorzystano {{percentage}}", "title": "Użycie kontekstu", "used": "Wykorzystano", "remaining": "Pozostało", @@ -1852,7 +1899,7 @@ "usageReflectsLatest": "Użycie odzwierciedla ostatnią ukończoną odpowiedź asystenta.", "tokenUsage": "Zużycie tokenów", "cacheRate": "Współczynnik pamięci podręcznej", - "modelsCount": "Modele ({{count}})", + "modelsCount": "Modele ({{displayCount}})", "tokenTotalsNote": "Sumy tokenów obejmują tylko tę sesję i nie uwzględniają tokenów podagentów/sesji podrzędnych.", "subagents": "Podagenci", "subagentsDescription": "Pozostały koszt z sesji podrzędnych", @@ -1864,7 +1911,9 @@ "stepsCount_one": "{{steps}} krok", "stepsCount": "{{steps}} kroki", "stepsCount_other": "{{steps}} kroki", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} kroki", + "stepsCount_many": "{{steps}} kroków" }, "prBadge": { "open": "otwarty pull request", @@ -1994,7 +2043,7 @@ "connectedCli": "Na połączonym CLI", "newSessionOn": "Nowa sesja na {{name}}", "noMatchingSessions": "Brak pasujących sesji.", - "onlyFirstFilesAttached": "Zostanie dołączonych tylko pierwszych {{count}} plików.", + "onlyFirstFilesAttached": "Zostanie dołączonych tylko pierwszych {{displayCount}} plików.", "staleMessage": "To udostępnienie nie jest już dostępne.", "retryableMessage": "Nie udało się załadować Twoich sesji.", "emptyMessage": "Brak sesji — rozpocznij nową, aby to wysłać.", @@ -2027,7 +2076,7 @@ "otherAccountCopy": "Kilo Pass na tym koncie Apple należy do innego konta Kilo. Zaloguj się na to konto Kilo, aby nim zarządzać.", "alreadySubscribed": "Masz już subskrypcję Kilo Pass.", "purchaseUnavailable": "Zakup Kilo Pass nie jest teraz dostępny.", - "tierCredits": "${{amount}} w kredytach", + "tierCredits": "{{amount}} w kredytach", "perMonth": "{{price}}/mies.", "verifyPurchaseFailed": "Nie udało się zweryfikować zakupu. Sprawdź połączenie i spróbuj ponownie.", "productsCouldNotLoad": "Nie udało się załadować produktów Kilo Pass z App Store.", @@ -2038,7 +2087,7 @@ "manageFailed": "Nie udało się otworzyć zarządzania subskrypcjami w App Store.", "kiloPassSetup": "Konfiguracja Kilo Pass", "subscriptionHeaderDescription": "Miesięczna subskrypcja, która dodaje kredyty do Twojego salda Kilo za prowadzenie sesji kodowania AI w aplikacji Kilo — Cloud Agents, sesje zdalne i czaty KiloClaw.", - "tierDescription": "Płatne kredyty ${{price}} dodawane co miesiąc za korzystanie z aplikacji Kilo.", + "tierDescription": "Płatne kredyty {{price}} dodawane co miesiąc za korzystanie z aplikacji Kilo.", "subscribe": "Subskrybuj", "subscribeDescription": "Miesięczne kredyty z bonusowym postępem", "manage": "Zarządzaj", @@ -2046,7 +2095,7 @@ "statusPending": "Kilo Pass oczekujący", "statusCanceling": "Kilo Pass w trakcie anulowania", "statusPastDue": "Kilo Pass z zaległą płatnością", - "monthlyCredits": "${{credits}} kredytów miesięcznie", + "monthlyCredits": "{{credits}} kredytów miesięcznie", "ends": "Kończy się {{date}}", "periodEnd": "koniec okresu", "managedOnGooglePlay": "Zarządzane w Google Play", @@ -2150,17 +2199,17 @@ "accessDeniedDescription": "Nie masz uprawnień, aby wyświetlić ten pull request.", "checkConnection": "Sprawdź połączenie", "checks": { - "checksCount": "{{count}} kontroli", + "checksCount": "{{displayCount}} kontroli", "couldNotLoad": "Nie udało się załadować kontroli.", - "failed": "{{count}} nieudanych", + "failed": "{{displayCount}} nieudanych", "noAccess": "Nie masz dostępu do kontroli tego repozytorium.", "noChecksReported": "Brak zgłoszonych kontroli", "notAvailable": "Kontrole nie są jeszcze dostępne. Commit head mógł nie zostać przetworzony albo aplikacja Kilo GitHub nie jest zainstalowana w repozytorium head.", "openDetails": "Otwórz szczegóły {{name}}", - "passed": "{{count}} zaliczonych", - "pending": "{{count}} oczekujących", + "passed": "{{displayCount}} zaliczonych", + "pending": "{{displayCount}} oczekujących", "retryChecks": "Ponów kontrole", - "skipped": "{{count}} pominiętych", + "skipped": "{{displayCount}} pominiętych", "title": "Kontrole", "viewOnGitHub": "Zobacz PR na GitHubie", "checkDetails": "szczegóły kontroli", @@ -2238,7 +2287,7 @@ "terminal": "Tego użytkownika nie można zgłosić." } }, - "moreLinesAbove": "… {{count}} wierszy więcej powyżej", + "moreLinesAbove": "… {{displayCount}} wierszy więcej powyżej", "mute": "Wycisz", "mutedUser": "Wyciszono {{login}}", "noDiscussion": "Brak dyskusji", @@ -2246,7 +2295,7 @@ "comment_one": "1 komentarz", "outdated": "Nieaktualny", "quotedDiffSnippet": "Zacytowany fragment diffa", - "reactionPill": "{{emoji}} reakcja, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcja, {{displayCount}} {{countLabel}}", "reaction": "reakcje", "reaction_other": "reakcje", "reaction_one": "reakcja", @@ -2276,7 +2325,11 @@ "viewTerms": "Zobacz regulamin", "termsAcceptRequired": "Aby opublikować, musisz zaakceptować regulamin.", "termsCheckRetryCopy": "Nie udało się sprawdzić regulaminu. Sprawdź połączenie i spróbuj ponownie.", - "termsOutdatedCopy": "Regulamin się zmienił. Otwórz ponownie ten ekran, aby zaakceptować najnowszą wersję." + "termsOutdatedCopy": "Regulamin się zmienił. Otwórz ponownie ten ekran, aby zaakceptować najnowszą wersję.", + "comment_few": "{{displayCount}} komentarze", + "comment_many": "{{displayCount}} komentarzy", + "reaction_few": "reakcje", + "reaction_many": "reakcji" }, "entry": { "clearLink": "Wyczyść link pull requesta", @@ -2350,12 +2403,12 @@ "hunkRows": { "contextUnavailable": "Kontekst niedostępny przy tym refie", "expandAll": "Rozwiń wszystko", - "expandAllLines": "Rozwiń wszystkie {{count}} wierszy", + "expandAllLines": "Rozwiń wszystkie {{displayCount}} wierszy", "expandContext": "Rozwiń kontekst", - "expandLines": "Rozwiń {{count}} wierszy ({{start}}–{{end}})", - "expandLinesOfContext": "Rozwiń {{count}} wierszy kontekstu", + "expandLines": "Rozwiń {{displayCount}} wierszy ({{start}}–{{end}})", + "expandLinesOfContext": "Rozwiń {{displayCount}} wierszy kontekstu", "expandMoreContext": "Rozwiń więcej kontekstu", - "expandMoreLines": "Rozwiń więcej {{count}} wierszy ({{start}}–{{end}})", + "expandMoreLines": "Rozwiń więcej {{displayCount}} wierszy ({{start}}–{{end}})", "failedToLoadContext": "Nie udało się załadować kontekstu — dotknij, aby ponowić", "failedToLoadMoreFiles": "Nie udało się załadować więcej plików — dotknij, aby ponowić", "fileLoadedCount_one": "Załadowano {{displayCount}} plik", @@ -2377,7 +2430,11 @@ "loadingLines": "Ładowanie {{loaded}} z {{total}} wierszy…", "loadingMoreFiles": "Ładowanie kolejnych plików…", "retryLoadingContext": "Spróbuj ponownie załadować kontekst", - "retryLoadingNextPage": "Spróbuj ponownie załadować następną stronę" + "retryLoadingNextPage": "Spróbuj ponownie załadować następną stronę", + "fileLoadedCount_few": "Załadowano {{displayCount}} pliki", + "fileLoadedCount_many": "Załadowano {{displayCount}} plików", + "fileLoadedOfTotalCount_few": "Załadowano {{displayCount}} pliki z {{total}}", + "fileLoadedOfTotalCount_many": "Załadowano {{displayCount}} plików z {{total}}" }, "inbox": { "couldNotLoad": "Nie udało się załadować skrzynki", @@ -2452,7 +2509,11 @@ "stateOpenApproved": "Otwarty · Zatwierdzony", "stateOpenChangesRequested": "Otwarty · Poproszono o zmiany", "stateOpenReviewRequired": "Otwarty · Wymagany przegląd", - "unknownAuthor": "Nieznany autor" + "unknownAuthor": "Nieznany autor", + "commit_few": "commity", + "commit_many": "commitów", + "file_few": "pliki", + "file_many": "plików" }, "pendingComment": { "allQueuedHint": "Wszystkie komentarze zostaną wysłane w jednym zbiorczym żądaniu.", @@ -2500,9 +2561,11 @@ "pendingComment_one": "oczekujący komentarz", "summaryOptional": "Podsumowanie (opcjonalne)", "title": "Wyślij przegląd", - "partialPostedMessage": "Opublikowano {{freshCount}} komentarz(y). {{staleCount}} komentarz(y) dotyczy starszego commita i pozostało w kolejce.", - "submitCountOfTotal": "Wyślij {{freshCount}} z {{totalCount}} komentarzy", - "submitReview": "Wyślij przegląd" + "partialPostedMessage": "Opublikowano {{displayFreshCount}} komentarz(y). {{displayStaleCount}} komentarz(y) dotyczy starszego commita i pozostało w kolejce.", + "submitCountOfTotal": "Wyślij {{displayFreshCount}} z {{displayTotalCount}} komentarzy", + "submitReview": "Wyślij przegląd", + "pendingComment_few": "oczekujące komentarze", + "pendingComment_many": "oczekujących komentarzy" }, "fileStatus": { "added": "Dodano", @@ -2654,7 +2717,9 @@ "processingNeedsReview": "Przetwarzanie wymaga przeglądu", "retry": "Spróbuj ponownie", "retryHint": "Ponawia ładowanie statusu Kilo Pass.", - "setupHint": "Otwiera konfigurację Kilo Pass w sieci." + "setupHint": "Otwiera konfigurację Kilo Pass w sieci.", + "paidSeat_few": "{{displayCount}} opłacone miejsca", + "paidSeat_many": "{{displayCount}} opłaconych miejsc" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index c6e079a0a9..2132ab6089 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} کرښو څخه {{loaded}} بار کیږي…", "expandContext": "شرایط پراخول", "expandMoreContext": "نور شرایط پراخول", - "expandLines": "{{count}} کرښې پراخول ({{start}}–{{end}})", - "expandMoreLines": "نور {{count}} کرښې پراخول ({{start}}–{{end}})", - "expandLinesOfContext": "د شرایطو {{count}} کرښې پراخول", + "expandLines": "{{displayCount}} کرښې پراخول ({{start}}–{{end}})", + "expandMoreLines": "نور {{displayCount}} کرښې پراخول ({{start}}–{{end}})", + "expandLinesOfContext": "د شرایطو {{displayCount}} کرښې پراخول", "expandAll": "ټول پراخول", - "expandAllLines": "ټول {{count}} کرښې پراخول", + "expandAllLines": "ټول {{displayCount}} کرښې پراخول", "loadingMoreFiles": "نور فایلونه بار کیږي…", "retryLoadingNextPage": "بله پاڼه بارول بیا هڅه وکړئ", "failedToLoadMoreFiles": "نور فایلونه بار کیدی نشول — د بیا هڅې لپاره ټک وکړئ", @@ -301,7 +301,7 @@ "closeReactions": "غبرګونونه وتړئ", "reactionsTitle": "غبرګونونه", "addReaction": "غبرګون اضافه کړئ", - "reactionPill": "{{emoji}} غبرګون، {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} غبرګون، {{displayCount}} {{countLabel}}", "reaction_one": "غبرګون", "reaction": "غبرګونونه", "reaction_other": "غبرګونونه", @@ -353,7 +353,7 @@ "noDiscussionDescription": "په دې پل ریکویسټ کې کوم د بیاکتنې تار یا د خبرو تبصره نشته.", "reviewFiles": "فایلونه بیاکتنه کړئ", "quotedDiffSnippet": "نقل شوی diff برخه", - "moreLinesAbove": "… پورته {{count}} نور کرښې", + "moreLinesAbove": "… پورته {{displayCount}} نور کرښې", "termsAcceptRequired": "د خپرولو لپاره باید د خدمت شرایط ومنئ.", "termsOutdatedCopy": "د خدمت شرایط بدل شول. د وروستۍ نسخې منلو لپاره دا سکرین بیا پرانیزئ.", "termsCheckRetryCopy": "د خدمت شرایط معاینه کیدی نشول. خپل اړیکه وګورئ او بیا هڅه وکړئ." @@ -395,11 +395,11 @@ "retryChecks": "چیکونه بیا هڅه وکړئ", "viewOnGitHub": "PR په GitHub کې وګورئ", "noChecksReported": "کوم چیک راپور نه شوی", - "passed": "{{count}} تیر شول", - "failed": "{{count}} ناکام شول", - "pending": "{{count}} په انتظار", - "skipped": "{{count}} پریښودل شول", - "checksCount": "{{count}} چیکونه", + "passed": "{{displayCount}} تیر شول", + "failed": "{{displayCount}} ناکام شول", + "pending": "{{displayCount}} په انتظار", + "skipped": "{{displayCount}} پریښودل شول", + "checksCount": "{{displayCount}} چیکونه", "checkDetails": "د چیک جزئیات", "pullRequest": "پل ریکویسټ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "په انتظار تبصره", "pendingComment": "په انتظار تبصرې", "pendingComment_other": "په انتظار تبصرې", - "submitCountOfTotal": "د {{totalCount}} تبصرو څخه {{freshCount}} وسپارئ", + "submitCountOfTotal": "د {{displayTotalCount}} تبصرو څخه {{displayFreshCount}} وسپارئ", "submitReview": "بیاکتنه وسپارئ", - "partialPostedMessage": "{{freshCount}} تبصره خپره شوه. {{staleCount}} تبصرې په یو زوړ کمټ اشاره کوي او ستاسو په قطار کې پاتې شوې." + "partialPostedMessage": "{{displayFreshCount}} تبصره خپره شوه. {{displayStaleCount}} تبصرې په یو زوړ کمټ اشاره کوي او ستاسو په قطار کې پاتې شوې." }, "reconnectNotice": { "title": "د GitHub اړیکه پای ته ورسیده", @@ -580,7 +580,8 @@ "agents": "اجنټان", "profile": "پروفایل", "kiloclaw": "کلیوکلاو", - "kiloclawWrapped": "کلیو\nکلاو" + "kiloclawWrapped": "کلیو\nکلاو", + "position": "{{name}}, ټب، {{total}} څخه {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "وروستي", "common": "عام", "reactWith": "په {{reaction}} غبرګون وکړئ", - "accessibility": "{{emoji}} غبرګون، {{count}}" + "accessibility": "{{emoji}} غبرګون، {{displayCount}}" }, "composer": { "replyingTo": "ځواب ورکول", @@ -650,7 +651,7 @@ "imageUnavailable": "انځور شتون نلري", "openFailed": "نښلول شوی فایل پرانیستل کیدی نشو. خپل اړیکه وګورئ او بیا هڅه وکړئ.", "attachFailed": "فایل نښلول ناکام شول", - "limit": "تاسو کولی شئ تر {{count}} فایلونه ونښلئ.", + "limit": "تاسو کولی شئ تر {{displayCount}} فایلونه ونښلئ.", "sizeRejection": "{{filename}} د {{limit}} نښلولو حد څخه ډیر دی.", "unreadable": "{{filename}} لوستل کیدی نشو.", "pastedImage": "پیسټ شوی انځور", @@ -722,6 +723,7 @@ "finalTermEnds": "وروستۍ دوره پای ته رسېږي", "afterFinalTerm": "د وروستۍ دورې وروسته", "remaining": "پاتې", + "lessThanOneDay": "له ۱ ورځې کم", "ends": "پای ته رسېږي", "expires": "منقضی کېږي", "noActivePlan": "هېڅ فعال پلان نشته", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ستاسو معیاري میاشتنی بیه", "perMonth": "/میاشت", "earlybirdAccessUntil": "د {{date}} پورې د لمړني مرغۍ لاسرسی", - "earlybirdEnding": "د لمړني مرغۍ پای: {{days}} ورځې پاتې دي", + "earlybirdEnding": "د لمړني مرغۍ پای: {{remaining}}", "paymentPastDue": "تادیه له نیټې تېره شوې. مهرباني وکړئ د تادیې طریقه نوي کړئ.", "subscriptionCancels": "ګډون په {{date}} لغوه کېږي", - "trialDaysRemaining": "تجربه: {{days}} ورځې پاتې دي", - "trialEndingSoon": "تجربه ډېر ژر پای ته رسېږي: {{days}}" + "trialDaysRemaining": "تجربه: {{remaining}} پاتې دي", + "trialEndingSoon": "تجربه ډېر ژر پای ته رسېږي: {{remaining}}" }, "changelog": { "title": "نوی څه دی", @@ -996,7 +998,7 @@ "stalledTitle": "یو څه ودرېدل", "stalledBody": "موږ {{name}} پای ته نه شو رسولی. بیا هڅه وکړئ، یا که دا دوام وکړي hi@kilo.ai ته ایمیل واستوئ.", "timeoutTitle": "له اټکل ډېر وخت نیسي", - "timeoutBody": "د {{name}} جوړونه له معمول ډېر وخت نیسي (له {{minutes}} دقیقو ډېر).", + "timeoutBody": "د {{name}} جوړونه له معمول ډېر وخت نیسي (له {{displayMinutes}} دقیقو ډېر).", "continueInBackground": "په شالید کې دوام ورکړئ", "settingUp": "{{name}} جوړول", "finishingSetup": "د جوړونې بشپړول", @@ -1287,7 +1289,7 @@ "mergeGate": "د یوځای کولو دروازه", "repositories": "ریپوزیټورۍ", "allRepositories": "ټولې ریپوزیټورۍ", - "nSelected": "{{count}} غوره شوي", + "nSelected": "{{displayCount}} غوره شوي", "reviewMemory": "د بیاکتنې حافظه", "proposedReviewMdGuidance": "د REVIEW.md وړاندیز شوې لارښوونه" }, @@ -1391,14 +1393,14 @@ "analyzed": "تحلیل شوی", "exploitabilityReasoning": "د استحصال وړتیا دلیل", "suggestedFix": "وړاندیز شوی حل", - "whereFound": "چیرته وموندل شوه ({{count}})", + "whereFound": "چیرته وموندل شوه ({{displayCount}})", "fullReport": "بشپړ جوړ شوی راپور", "unknown": "نامعلوم", "yes": "هو", "no": "نه" }, "dashboard": { - "findingsCount": "{{count}} موندنې", + "findingsCount": "{{displayCount}} موندنې", "notMeasured": "نمی شوی", "actFirst": "لومړی عمل وکړئ", "slaPosture": "د SLA حالت", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "د ذخیرې د عمل پلان", "noOpenFindings": "هیڅ خلاصه موندنه پاملرنې ته اړتیا نلري", "deadlineToday": "نن مهالو وخت ورسېد", - "daysOverdue": "{{count}} ورځې ځنډ", + "daysOverdue": "{{displayCount}} ورځې ځنډ", "withinDeadline": "د مهالو وخت دننه", "criticalOverdue": "کریټیکل ځنډ", "highOverdue": "لوړ ځنډ", @@ -1435,6 +1437,27 @@ "syncQueued": "ترکیب په صف کې دی", "syncStatusUnavailable": "د ترکیب حالت شتون نلري" }, + "dashboardMetrics": { + "openFindings": "خلاصې موندنې", + "openFindingsDetail": "{{critical}} کریټیکل، {{high}} لوړ", + "confirmedExploitable": "استحصال وړ تایید شوی", + "confirmedExploitableDetail": "د تحلیل له مخې د پروژې خطر تایید شوی", + "needsReview": "ستاسو بیا کتنې ته اړتیا لري", + "needsReviewDetail": "انساني پریکړې ته اړتیا ده", + "analysisIncomplete": "تحلیل بشپړ نه دی", + "analysisIncompleteDetail": "د پروژې خطر لا تر اوسه نامعلوم دی", + "slaCompliance": "د SLA اطاعت", + "notMeasured": "نمی شوی", + "withinDeadlineDetail": "{{total}} څخه {{within}} د مهالو وخت دننه", + "noDeadlineData": "لا د کومې موندنې SLA مهالو وخت نشته", + "deadlinePassed": "مهالو وخت تېر شو", + "deadlinePassedDetail": "{{critical}} کریټیکل، {{high}} لوړ", + "dueThisWeek": "دا اوونۍ مهالو وخت", + "dueThisWeekDetail": "{{exploitable}} استحصال وړ تایید شوی", + "noDeadline": "مهالو وخت نشته", + "reviewSlaAssignment": "د SLA ګمارنه بیاکتنه کړئ", + "allOpenFindingsTracked": "ټولې خلاصې موندنې تعقیب شوې" + }, "dismiss": { "title": "موندنه له پامه وغورځوئ", "submit": "موندنه له پامه وغورځوئ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} تحلیل", "automation": "اتوماتیک", "automationAllOff": "ټول غیرفعال", - "automationCount": "{{count}} له 3 څخه فعال", + "automationCount": "{{displayCount}} له 3 څخه فعال", "notifications": "خبرتیاوې", - "notificationsCount": "{{count}} له 2 څخه فعال", + "notificationsCount": "{{displayCount}} له 2 څخه فعال", "slaPolicy": "د SLA پالیسي", "disabledNoManage": "د امنیت استازی غیرفعال دی. یوازې د سازمان مالکان او د بیلینګ مدیران کولی شي دا فعال کړي.", "disabledNoRepo": "د امنیت استازی فعالولو دمخه لږ تر لږه یوه ذخیره غوره کړئ.", @@ -1524,7 +1547,7 @@ "openPullRequest": "د کشولو غوښتنه پرانیزئ{{number}}", "openDraftPullRequest": "د مسودې د کشولو غوښتنه پرانیزئ{{number}}", "progress": "پرمختګ", - "attemptHistory": "د هڅې تاریخچه ({{count}})", + "attemptHistory": "د هڅې تاریخچه ({{displayCount}})", "attemptNumber": "هڅه #{{number}}", "startedBy": "لخوا پیل شوی", "model": "ماډل", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "کړنې ولولئ", "updateTodos": "کړنې تازه کړئ", - "linesBadge": "{{count}} کرښې", - "filesBadge": "{{count}} فایلونه", - "matchesBadge": "{{count}} سمونونه" + "linesBadge": "{{displayCount}} کرښې", + "filesBadge": "{{displayCount}} فایلونه", + "matchesBadge": "{{displayCount}} سمونونه" }, "readToolMarkdown": { "linesTruncated": "کرښې {{start}}–{{end}} (لنډې شوې)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "دا ځواب راپور کړی نشي.", "reportAiResponseSubmitted": "راپور وړاندې شو. رسید {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "تفصیلات شتون نلري", "textDisplay": "د متن ښودنه", @@ -1999,7 +2026,7 @@ "preparationComplete": "چمتوالی بشپړ شو", "preparationFailed": "چمتوالی ناکام شو", "setupCommand": "د ترتیب کمانډ {{index}}", - "setupCommandOf": "د ترتیب کمانډ {{index}} له {{count}} څخه" + "setupCommandOf": "د ترتیب کمانډ {{index}} له {{displayCount}} څخه" }, "permissionCard": { "title": "اجازې ته اړتیا ده", @@ -2036,7 +2063,7 @@ "submissionFailed": "وړاندې کول ناکام شول. مهرباني وکړئ بیا هڅه وکړئ.", "questionAnnouncement": "اجنټ ستاسو معلوماتو ته اړتیا لري. تر هغه چې تاسو ځواب ووایاست لیکنه درول شوې ده.", "permissionAnnouncement": "اجنټ ته دوام لپاره اجازه اړینه ده. تر هغه چې تاسو پرېکړه وکړئ لیکنه درول شوې ده.", - "positionHint": "(۱ له {{count}})", + "positionHint": "(۱ له {{displayCount}})", "movedPastPrompt": "اجنټ دې لارښود ته تېر شوی دی. کله چې غونډه دوام وکړي دا کارت بندېږي.", "waitingForAnswer": "اجنټ ستاسو ځواب ته انتظار باسي. تر هغه چې دا پوښتنه خلاصه وي، اجنټ ته ستاسو پیغام درول شوی دی.", "waitingForPermission": "اجنټ د اجازې انتظار باسي. تر هغه چې دا غوښتنه خلاصه وي، اجنټ ته ستاسو پیغام درول شوی دی." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "د کیمرې لاسرسی بند دی", "cameraAccessMessage": "د انځور اخیستلو لپاره په تنظیماتو کې کیمرې ته لاسرسی ورکړئ.", "couldNotOpenPhotoPicker": "د انځور ټاکنکی نه شو خلاصېدلای. Kilo بیا پیل کړئ او بیا هڅه وکړئ.", - "maxFilesAllowed": "اعظمي {{count}} فایلونه اجازه لري", + "maxFilesAllowed": "اعظمي {{displayCount}} فایلونه اجازه لري", "onlyAddingFiles": "یوازې د {{total}} فایلونو څخه {{accepted}} اضافه کېږي (اعظمي {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "لګښت {{cost}}", "costSuffix": "، لګښت {{cost}}", "tokensWindowUnavailable": "شرایط {{used}} ټوکنونه، کړکۍ شتون نلري", - "tokensUsage": "شرایط د {{window}} ټوکنونو څخه {{used}}، {{percentage}}% کارول شوي", + "tokensUsage": "شرایط د {{window}} ټوکنونو څخه {{used}}، {{percentage}} کارول شوي", "title": "د شرایطو کارول", "used": "کارول شوی", "remaining": "پاتې", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "کارول د وروستي بشپړ شوي مرستیال ځواب منعکس کوي.", "tokenUsage": "د ټوکن کارول", "cacheRate": "د کش نرخ", - "modelsCount": "ماډلونه ({{count}})", + "modelsCount": "ماډلونه ({{displayCount}})", "tokenTotalsNote": "ټول ټوکنونه یوازې دا غونډه پوښي او د فرعي اجنټ/ماشوم غونډې ټوکنونه نه ورکوي.", "subagents": "فرعي اجنټان", "subagentsDescription": "د ماشوم غونډو پاتې لګښت", @@ -2373,7 +2400,7 @@ "connectedCli": "په یو نښل شوي CLI باندې", "newSessionOn": "په {{name}} باندې نوې غونډه", "noMatchingSessions": "هیڅ ورته غونډه نشته.", - "onlyFirstFilesAttached": "یوازې لومړني {{count}} فایلونه به ضمیمه شي.", + "onlyFirstFilesAttached": "یوازې لومړني {{displayCount}} فایلونه به ضمیمه شي.", "staleMessage": "دا شریکول نور شتون نلري.", "retryableMessage": "ستاسو غونډې نه شول پورته کېدلای.", "emptyMessage": "لا هیڅ غونډه نشته — د دې لیږلو لپاره نوې پیل کړئ.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "دا Apple Account باندې Kilo Pass د بل Kilo حساب پورې اړه لري. د مدیریت لپاره هغه Kilo حساب ته ننوځئ.", "alreadySubscribed": "تاسو مخکې له مخکې د Kilo Pass ګډون لرئ.", "purchaseUnavailable": "د Kilo Pass پیرود اوس مهال شتون نلري.", - "tierCredits": "په کریډیټونو کې ${{amount}}", + "tierCredits": "په کریډیټونو کې {{amount}}", "perMonth": "{{price}}/میاشت", "verifyPurchaseFailed": "ستاسو پیرود نه شو تصدیق کېدلای. خپله اړیکه وګورئ او بیا هڅه وکړئ.", "productsCouldNotLoad": "د Kilo Pass محصولات له App Store څخه نه شول پورته کېدلای.", @@ -2417,7 +2444,7 @@ "manageFailed": "د App Store د ګډون مدیریت نه شو خلاصېدلای.", "kiloPassSetup": "د Kilo Pass جوړول", "subscriptionHeaderDescription": "یو میاشتنی ګډون چې ستاسو Kilo توازن ته کریډیټونه اضافه کوي د Kilo App کې د AI کوډ کولو غونډو چلولو لپاره — کلاوډ اجنټان، لرې غونډې، او د KiloClaw خبرې اترې.", - "tierDescription": "${{price}} ورکړل شوي کریډیټونه د Kilo App کارولو لپاره میاشتني اضافه کېږي.", + "tierDescription": "{{price}} ورکړل شوي کریډیټونه د Kilo App کارولو لپاره میاشتني اضافه کېږي.", "subscribe": "ګډون وکړئ", "subscribeDescription": "د بونس پرمختګ سره میاشتني کریډیټونه", "manage": "مدیریت", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass په انتظار کې", "statusCanceling": "Kilo Pass لغوه کېږي", "statusPastDue": "Kilo Pass تېر شوی", - "monthlyCredits": "${{credits}} میاشتني کریډیټونه", + "monthlyCredits": "{{credits}} میاشتني کریډیټونه", "ends": "{{date}} پای ته رسیږي", "periodEnd": "د دورې پای", "managedOnGooglePlay": "په Google Play باندې اداره کېږي", diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index d8821e0f7d..9561bc4e81 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -187,7 +187,8 @@ "agents": "Agentes", "profile": "Perfil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, aba, {{position}} de {{total}}" }, "chat": { "instancePicker": { @@ -228,7 +229,7 @@ "recent": "Recentes", "common": "Comuns", "reactWith": "Reagir com {{reaction}}", - "accessibility": "{{emoji}} reação, {{count}}" + "accessibility": "{{emoji}} reação, {{displayCount}}" }, "composer": { "replyingTo": "Respondendo a", @@ -257,7 +258,7 @@ "imageUnavailable": "Imagem indisponível", "openFailed": "Não foi possível abrir o anexo. Verifique sua conexão e tente novamente.", "attachFailed": "Falha ao anexar arquivo", - "limit": "Você pode anexar até {{count}} arquivos.", + "limit": "Você pode anexar até {{displayCount}} arquivos.", "sizeRejection": "{{filename}} excede o limite de anexo de {{limit}}.", "unreadable": "Não foi possível ler {{filename}}.", "pastedImage": "a imagem colada", @@ -307,7 +308,8 @@ "someone": "Alguém", "typing_one": "{{name}} está digitando...", "typing": "{{names}} estão digitando...", - "typing_other": "{{names}} estão digitando..." + "typing_other": "{{names}} estão digitando...", + "typing_many": "{{names}} estão digitando..." }, "botStatus": { "online": "Online", @@ -329,6 +331,7 @@ "finalTermEnds": "O período final termina", "afterFinalTerm": "Após o período final", "remaining": "Restante", + "lessThanOneDay": "Menos de 1 dia", "ends": "Termina", "expires": "Expira", "noActivePlan": "Nenhum plano ativo", @@ -347,11 +350,11 @@ "yourStandardMonthlyPrice": "seu preço mensal do Standard", "perMonth": "/mês", "earlybirdAccessUntil": "Acesso Earlybird até {{date}}", - "earlybirdEnding": "Earlybird terminando: {{days}} dias restantes", + "earlybirdEnding": "Earlybird terminando: {{remaining}}", "paymentPastDue": "Pagamento em atraso. Atualize sua forma de pagamento.", "subscriptionCancels": "Assinatura cancela em {{date}}", - "trialDaysRemaining": "Teste: {{days}} dias restantes", - "trialEndingSoon": "Teste terminando em breve: {{days}}" + "trialDaysRemaining": "Teste: faltam {{remaining}}", + "trialEndingSoon": "Teste terminando em breve: {{remaining}}" }, "changelog": { "title": "Novidades", @@ -553,7 +556,8 @@ "openSettings": "Abrir configurações de {{name}}", "openUnread": "Abrir {{name}}, {{displayCount}} mensagens não lidas", "openUnread_other": "Abrir {{name}}, {{displayCount}} mensagens não lidas", - "openUnread_one": "Abrir {{name}}, {{displayCount}} mensagem não lida" + "openUnread_one": "Abrir {{name}}, {{displayCount}} mensagem não lida", + "openUnread_many": "Abrir {{name}}, {{displayCount}} mensagens não lidas" }, "list": { "createInstance": "Criar instância", @@ -651,7 +655,7 @@ "startingSandbox": "Iniciando o sandbox", "stoppedBody": "A instância de {{name}} parou inesperadamente durante a configuração.", "stoppedTitle": "Configuração interrompida", - "timeoutBody": "A configuração de {{name}} está demorando mais que o normal (mais de {{minutes}} minutos).", + "timeoutBody": "A configuração de {{name}} está demorando mais que o normal (mais de {{displayMinutes}} minutos).", "timeoutTitle": "Demorando mais que o esperado" }, "unavailableDescription": "É necessária uma assinatura atual do KiloClaw para provisionar uma instância. Instâncias e assinaturas existentes continuam normalmente.", @@ -898,7 +902,7 @@ "focusAreas": "Áreas de foco", "mergeGate": "Portão de merge", "model": "Modelo", - "nSelected": "{{count}} selecionados", + "nSelected": "{{displayCount}} selecionados", "proposedReviewMdGuidance": "Diretrizes propostas do REVIEW.md", "repositories": "Repositórios", "reviewMemory": "Memória de revisão", @@ -967,7 +971,7 @@ "triageReasoning": "Raciocínio da triagem", "unknown": "Desconhecido", "watchInCloudAgent": "Ver no Cloud Agent", - "whereFound": "Onde isto foi encontrado ({{count}})", + "whereFound": "Onde isto foi encontrado ({{displayCount}})", "yes": "Sim" }, "analysisSettings": { @@ -1034,7 +1038,8 @@ "severityCriticalOnly": "Somente crítica", "severityHighAndAbove": "Alta e acima", "severityMediumAndAbove": "Média e acima", - "title": "Automação" + "title": "Automação", + "queued_many": "{{displayCount}} descobertas existentes na fila para análise." }, "commandRetry": { "discard": "Descartar" @@ -1047,11 +1052,11 @@ "confirmedExploitable": "Explorável confirmado", "couldNotLoad": "Não foi possível carregar os dados do painel", "criticalOverdue": "Crítico em atraso", - "daysOverdue": "{{count}} dias em atraso", + "daysOverdue": "{{displayCount}} dias em atraso", "deadlineToday": "Prazo vence hoje", "filterByRepository": "Filtrar por repositório", "findings": "Descobertas", - "findingsCount": "{{count}} descobertas", + "findingsCount": "{{displayCount}} descobertas", "highOverdue": "Alto em atraso", "lastSynced": "Última sincronização em {{time}}", "manageRepositories": "Gerenciar repositórios", @@ -1077,6 +1082,27 @@ "syncStatusUnavailable": "Status de sincronização indisponível", "withinDeadline": "Dentro do prazo" }, + "dashboardMetrics": { + "openFindings": "Descobertas abertas", + "openFindingsDetail": "{{critical}} críticas, {{high}} altas", + "confirmedExploitable": "Explorável confirmado", + "confirmedExploitableDetail": "Risco do projeto confirmado pela análise", + "needsReview": "Precisa da sua revisão", + "needsReviewDetail": "Decisão humana necessária", + "analysisIncomplete": "Análise não concluída", + "analysisIncompleteDetail": "Risco do projeto ainda desconhecido", + "slaCompliance": "Conformidade com SLA", + "notMeasured": "Não medido", + "withinDeadlineDetail": "{{within}} de {{total}} dentro do prazo", + "noDeadlineData": "Nenhuma descoberta tem prazo de SLA ainda", + "deadlinePassed": "Prazo vencido", + "deadlinePassedDetail": "{{critical}} críticas, {{high}} altas", + "dueThisWeek": "Vence esta semana", + "dueThisWeekDetail": "{{exploitable}} exploráveis confirmados", + "noDeadline": "Sem prazo", + "reviewSlaAssignment": "Revisar atribuição de SLA", + "allOpenFindingsTracked": "Todas as descobertas abertas rastreadas" + }, "dismiss": { "alreadyResolvedDescription": "Esta descoberta já foi resolvida e não aceita mais dispensa.", "cannotDismissDescription": "Somente proprietários da organização e gerentes de cobrança podem dispensar descobertas.", @@ -1174,7 +1200,7 @@ "title": "Notificações" }, "remediation": { - "attemptHistory": "Histórico de tentativas ({{count}})", + "attemptHistory": "Histórico de tentativas ({{displayCount}})", "attemptNumber": "Tentativa nº {{number}}", "branch": "Branch", "cancelMessage": "O Security Agent interromperá a tentativa de remediação em andamento.", @@ -1242,7 +1268,7 @@ "analysisModeSubtitle": "Análise {{mode}}", "automation": "Automação", "automationAllOff": "Tudo desativado", - "automationCount": "{{count}} de 3 ativados", + "automationCount": "{{displayCount}} de 3 ativados", "couldNotLoadPermissions": "Não foi possível carregar as permissões", "couldNotLoadRepositories": "Não foi possível carregar os repositórios", "couldNotLoadSettings": "Não foi possível carregar as configurações do Security Agent", @@ -1253,7 +1279,7 @@ "enabled": "Ativado", "modelsAndAnalysis": "Modelos e análise", "notifications": "Notificações", - "notificationsCount": "{{count}} de 2 ativadas", + "notificationsCount": "{{displayCount}} de 2 ativadas", "off": "Desativado", "on": "Ativado", "repositories": "Repositórios", @@ -1264,7 +1290,8 @@ "selectRepositories": "Selecionar repositórios", "selectRepositoriesSubtitle": "Escolha quais repositórios o Security Agent monitora", "slaPolicy": "Política de SLA", - "title": "Configurações" + "title": "Configurações", + "repositoriesCount_many": "{{displayCount}} repositórios selecionados" }, "settingsSave": { "discard": "Descartar", @@ -1341,7 +1368,9 @@ "cent_other": "centavos", "dollar_one": "dólar", "dollar": "dólares", - "dollar_other": "dólares" + "dollar_other": "dólares", + "cent_many": "centavos", + "dollar_many": "dólares" }, "githubInstall": { "couldNotOpenMessage": "Não foi possível iniciar a configuração do GitHub App. Tente novamente.", @@ -1437,7 +1466,8 @@ "partRenderer": { "updatedFileCount_one": "{{displayCount}} arquivo atualizado", "updatedFileCount": "{{displayCount}} arquivos atualizados", - "updatedFileCount_other": "{{displayCount}} arquivos atualizados" + "updatedFileCount_other": "{{displayCount}} arquivos atualizados", + "updatedFileCount_many": "{{displayCount}} arquivos atualizados" }, "toolPatch": { "operationAdded": "Adicionado", @@ -1462,9 +1492,9 @@ "toolTask": "tarefa", "readTodos": "Ler tarefas", "updateTodos": "Atualizar tarefas", - "linesBadge": "{{count}} linhas", - "filesBadge": "{{count}} arquivos", - "matchesBadge": "{{count}} correspondências" + "linesBadge": "{{displayCount}} linhas", + "filesBadge": "{{displayCount}} arquivos", + "matchesBadge": "{{displayCount}} correspondências" }, "readToolMarkdown": { "linesTruncated": "linhas {{start}}–{{end}} (truncadas)", @@ -1548,6 +1578,10 @@ "reportAiResponseFailedTerminal": "Esta resposta não pode ser denunciada.", "reportAiResponseSubmitted": "Denúncia enviada. Recibo {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detalhes indisponíveis", "textDisplay": "Exibição de texto", @@ -1606,7 +1640,7 @@ "preparationComplete": "Preparação concluída", "preparationFailed": "Falha na preparação", "setupCommand": "Comando de configuração {{index}}", - "setupCommandOf": "Comando de configuração {{index}} de {{count}}" + "setupCommandOf": "Comando de configuração {{index}} de {{displayCount}}" }, "permissionCard": { "title": "Permissão necessária", @@ -1643,7 +1677,7 @@ "submissionFailed": "Falha no envio. Tente novamente.", "questionAnnouncement": "O agente precisa da sua informação. O compositor está pausado enquanto você responde.", "permissionAnnouncement": "O agente precisa de permissão para continuar. O compositor está pausado enquanto você decide.", - "positionHint": "(1 de {{count}})", + "positionHint": "(1 de {{displayCount}})", "movedPastPrompt": "O agente já passou deste prompt. Este cartão fechará quando a sessão continuar.", "waitingForAnswer": "O agente está aguardando sua resposta. Enquanto esta pergunta estiver aberta, sua mensagem ao agente fica pausada.", "waitingForPermission": "O agente está aguardando permissão. Enquanto esta solicitação estiver aberta, sua mensagem ao agente fica pausada." @@ -1683,7 +1717,8 @@ "omitted_other": "{{displayCount}} itens anteriores desta sessão não puderam ser exibidos.", "couldNotLoad": "Não foi possível carregar as mensagens anteriores.", "unavailable": "As mensagens anteriores não estão disponíveis.", - "tooLarge": "As mensagens anteriores são grandes demais para carregar." + "tooLarge": "As mensagens anteriores são grandes demais para carregar.", + "omitted_many": "{{displayCount}} itens anteriores desta sessão não puderam ser exibidos." }, "markdownTable": { "viewTable": "Ver tabela", @@ -1695,7 +1730,9 @@ "rowCount_one": "linha", "rowCount": "linhas", "rowCount_other": "linhas", - "opensFullScreen": "abre em tela cheia" + "opensFullScreen": "abre em tela cheia", + "columnCount_many": "colunas", + "rowCount_many": "linhas" }, "sessionFilter": { "title": "Filtrar sessões", @@ -1764,7 +1801,7 @@ "cameraAccessDisabled": "Acesso à câmera desativado", "cameraAccessMessage": "Permita o acesso à câmera em Ajustes para tirar uma foto.", "couldNotOpenPhotoPicker": "Não foi possível abrir o seletor de fotos. Reinicie o Kilo e tente novamente.", - "maxFilesAllowed": "Máximo de {{count}} arquivos permitidos", + "maxFilesAllowed": "Máximo de {{displayCount}} arquivos permitidos", "onlyAddingFiles": "Adicionando apenas {{accepted}} de {{total}} arquivos (máx. {{max}})" }, "composer": { @@ -1829,7 +1866,7 @@ "costPrefix": "custo {{cost}}", "costSuffix": ", custo {{cost}}", "tokensWindowUnavailable": "Contexto {{used}} tokens, janela indisponível", - "tokensUsage": "Contexto {{used}} de {{window}} tokens, {{percentage}}% usado", + "tokensUsage": "Contexto {{used}} de {{window}} tokens, {{percentage}} usado", "title": "Uso de contexto", "used": "Usado", "remaining": "Restante", @@ -1838,7 +1875,7 @@ "usageReflectsLatest": "O uso reflete a última resposta concluída do assistente.", "tokenUsage": "Uso de tokens", "cacheRate": "Taxa de cache", - "modelsCount": "Modelos ({{count}})", + "modelsCount": "Modelos ({{displayCount}})", "tokenTotalsNote": "Os totais de tokens cobrem apenas esta sessão e excluem tokens de subagentes/sessões filhas.", "subagents": "Subagentes", "subagentsDescription": "Custo residual das sessões filhas", @@ -1850,7 +1887,8 @@ "stepsCount_one": "{{steps}} etapa", "stepsCount": "{{steps}} etapas", "stepsCount_other": "{{steps}} etapas", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_many": "{{steps}} etapas" }, "prBadge": { "open": "pull request aberto", @@ -1994,7 +2032,7 @@ "connectedCli": "Em uma CLI conectada", "newSessionOn": "Nova sessão em {{name}}", "noMatchingSessions": "Nenhuma sessão correspondente.", - "onlyFirstFilesAttached": "Apenas os primeiros {{count}} arquivos serão anexados.", + "onlyFirstFilesAttached": "Apenas os primeiros {{displayCount}} arquivos serão anexados.", "staleMessage": "Este compartilhamento não está mais disponível.", "retryableMessage": "Não foi possível carregar suas sessões.", "emptyMessage": "Ainda não há sessões — inicie uma nova para enviar isto.", @@ -2027,7 +2065,7 @@ "otherAccountCopy": "O Kilo Pass desta Conta Apple pertence a uma conta Kilo diferente. Entre nessa conta Kilo para gerenciá-lo.", "alreadySubscribed": "Você já tem uma assinatura do Kilo Pass.", "purchaseUnavailable": "A compra do Kilo Pass não está disponível agora.", - "tierCredits": "${{amount}} em créditos", + "tierCredits": "{{amount}} em créditos", "perMonth": "{{price}}/mês", "verifyPurchaseFailed": "Não foi possível verificar sua compra. Verifique sua conexão e tente novamente.", "productsCouldNotLoad": "Não foi possível carregar os produtos do Kilo Pass na App Store.", @@ -2038,7 +2076,7 @@ "manageFailed": "Não foi possível abrir o gerenciamento de assinaturas da App Store.", "kiloPassSetup": "Configuração do Kilo Pass", "subscriptionHeaderDescription": "Uma assinatura mensal que adiciona créditos ao seu saldo Kilo para executar sessões de codificação com IA no Kilo App — Cloud Agents, sessões remotas e conversas do KiloClaw.", - "tierDescription": "${{price}} de créditos pagos adicionados mensalmente para uso do Kilo App.", + "tierDescription": "{{price}} de créditos pagos adicionados mensalmente para uso do Kilo App.", "subscribe": "Assinar", "subscribeDescription": "Créditos mensais com progresso de bônus", "manage": "Gerenciar", @@ -2046,7 +2084,7 @@ "statusPending": "Kilo Pass pendente", "statusCanceling": "Kilo Pass cancelando", "statusPastDue": "Kilo Pass em atraso", - "monthlyCredits": "${{credits}} de créditos mensais", + "monthlyCredits": "{{credits}} de créditos mensais", "ends": "Termina em {{date}}", "periodEnd": "fim do período", "managedOnGooglePlay": "Gerenciado no Google Play", @@ -2150,17 +2188,17 @@ "accessDeniedDescription": "Você não tem permissão para ver este pull request.", "checkConnection": "Verificar conexão", "checks": { - "checksCount": "{{count}} verificações", + "checksCount": "{{displayCount}} verificações", "couldNotLoad": "Não foi possível carregar as verificações.", - "failed": "{{count}} falharam", + "failed": "{{displayCount}} falharam", "noAccess": "Você não tem acesso às verificações deste repositório.", "noChecksReported": "Nenhuma verificação informada", "notAvailable": "As verificações ainda não estão disponíveis. O commit head pode não ter sido processado, ou o Kilo GitHub App não está instalado no repositório head.", "openDetails": "Abrir detalhes de {{name}}", - "passed": "{{count}} passaram", - "pending": "{{count}} pendentes", + "passed": "{{displayCount}} passaram", + "pending": "{{displayCount}} pendentes", "retryChecks": "Tentar carregar as verificações novamente", - "skipped": "{{count}} ignoradas", + "skipped": "{{displayCount}} ignoradas", "title": "Verificações", "viewOnGitHub": "Ver PR no GitHub", "checkDetails": "detalhes da verificação", @@ -2238,7 +2276,7 @@ "terminal": "Este usuário não pode ser denunciado." } }, - "moreLinesAbove": "… {{count}} linhas acima", + "moreLinesAbove": "… {{displayCount}} linhas acima", "mute": "Silenciar", "mutedUser": "{{login}} silenciado", "noDiscussion": "Ainda não há discussão", @@ -2246,7 +2284,7 @@ "comment_one": "1 comentário", "outdated": "Desatualizado", "quotedDiffSnippet": "Trecho de diff citado", - "reactionPill": "{{emoji}} reação, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reação, {{displayCount}} {{countLabel}}", "reaction": "reações", "reaction_other": "reações", "reaction_one": "reação", @@ -2276,7 +2314,9 @@ "viewTerms": "Ver termos", "termsAcceptRequired": "Você deve aceitar os Termos de Serviço para publicar.", "termsCheckRetryCopy": "Não foi possível verificar os Termos de Serviço. Verifique sua conexão e tente novamente.", - "termsOutdatedCopy": "Os Termos de Serviço mudaram. Reabra esta tela para aceitar a versão mais recente." + "termsOutdatedCopy": "Os Termos de Serviço mudaram. Reabra esta tela para aceitar a versão mais recente.", + "comment_many": "{{displayCount}} comentários", + "reaction_many": "reações" }, "entry": { "clearLink": "Limpar link do pull request", @@ -2350,12 +2390,12 @@ "hunkRows": { "contextUnavailable": "Contexto indisponível nesta ref", "expandAll": "Expandir tudo", - "expandAllLines": "Expandir todas as {{count}} linhas", + "expandAllLines": "Expandir todas as {{displayCount}} linhas", "expandContext": "Expandir contexto", - "expandLines": "Expandir {{count}} linhas ({{start}}–{{end}})", - "expandLinesOfContext": "Expandir {{count}} linhas de contexto", + "expandLines": "Expandir {{displayCount}} linhas ({{start}}–{{end}})", + "expandLinesOfContext": "Expandir {{displayCount}} linhas de contexto", "expandMoreContext": "Expandir mais contexto", - "expandMoreLines": "Expandir mais {{count}} linhas ({{start}}–{{end}})", + "expandMoreLines": "Expandir mais {{displayCount}} linhas ({{start}}–{{end}})", "failedToLoadContext": "Falha ao carregar o contexto — toque para tentar novamente", "failedToLoadMoreFiles": "Falha ao carregar mais arquivos — toque para tentar novamente", "fileLoadedCount_one": "{{displayCount}} arquivo carregado", @@ -2377,7 +2417,9 @@ "loadingLines": "Carregando {{loaded}} de {{total}} linhas…", "loadingMoreFiles": "Carregando mais arquivos…", "retryLoadingContext": "Tentar carregar o contexto novamente", - "retryLoadingNextPage": "Tentar carregar a próxima página novamente" + "retryLoadingNextPage": "Tentar carregar a próxima página novamente", + "fileLoadedCount_many": "{{displayCount}} arquivos carregados", + "fileLoadedOfTotalCount_many": "{{displayCount}} arquivos carregados de {{total}}" }, "inbox": { "couldNotLoad": "Não foi possível carregar a caixa de entrada", @@ -2452,7 +2494,9 @@ "stateOpenApproved": "Aberto · Aprovado", "stateOpenChangesRequested": "Aberto · Alterações solicitadas", "stateOpenReviewRequired": "Aberto · Revisão necessária", - "unknownAuthor": "Autor desconhecido" + "unknownAuthor": "Autor desconhecido", + "commit_many": "commits", + "file_many": "arquivos" }, "pendingComment": { "allQueuedHint": "Todos os comentários serão enviados em uma única solicitação em lote.", @@ -2500,9 +2544,10 @@ "pendingComment_one": "comentário pendente", "summaryOptional": "Resumo (opcional)", "title": "Enviar revisão", - "partialPostedMessage": "{{freshCount}} comentário(s) publicado(s). {{staleCount}} comentário(s) apontam para um commit mais antigo e permaneceram na sua fila.", - "submitCountOfTotal": "Enviar {{freshCount}} de {{totalCount}} comentários", - "submitReview": "Enviar revisão" + "partialPostedMessage": "{{displayFreshCount}} comentário(s) publicado(s). {{displayStaleCount}} comentário(s) apontam para um commit mais antigo e permaneceram na sua fila.", + "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentários", + "submitReview": "Enviar revisão", + "pendingComment_many": "comentários pendentes" }, "fileStatus": { "added": "Adicionado", @@ -2654,7 +2699,8 @@ "processingNeedsReview": "Processamento precisa de revisão", "retry": "Tentar novamente", "retryHint": "Tenta novamente carregar o status do Kilo Pass.", - "setupHint": "Abre a configuração do Kilo Pass na web." + "setupHint": "Abre a configuração do Kilo Pass na web.", + "paidSeat_many": "{{displayCount}} assentos pagos" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index d19098a672..0556c8f5fb 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -206,11 +206,11 @@ "loadingLines": "A carregar {{loaded}} de {{total}} linhas...", "expandContext": "Expandir contexto", "expandMoreContext": "Expandir mais contexto", - "expandLines": "Expandir {{count}} linhas ({{start}}–{{end}})", - "expandMoreLines": "Expandir mais {{count}} linhas ({{start}}–{{end}})", - "expandLinesOfContext": "Expandir {{count}} linhas de contexto", + "expandLines": "Expandir {{displayCount}} linhas ({{start}}–{{end}})", + "expandMoreLines": "Expandir mais {{displayCount}} linhas ({{start}}–{{end}})", + "expandLinesOfContext": "Expandir {{displayCount}} linhas de contexto", "expandAll": "Expandir tudo", - "expandAllLines": "Expandir todas as {{count}} linhas", + "expandAllLines": "Expandir todas as {{displayCount}} linhas", "loadingMoreFiles": "A carregar mais ficheiros...", "retryLoadingNextPage": "Tentar carregar a página seguinte novamente", "failedToLoadMoreFiles": "Falha ao carregar mais ficheiros — toque para tentar novamente", @@ -227,7 +227,9 @@ "fileLoadedOfTotalCount_other": "{{displayCount}} ficheiros carregados de {{total}}", "filesStillLoading": "Os ficheiros ainda estão a carregar. Deslize para baixo para atualizar.", "goToOverview": "Ir para a Visão Geral", - "goToOverviewTab": "Ir para o separador Visão Geral" + "goToOverviewTab": "Ir para o separador Visão Geral", + "fileLoadedCount_many": "{{displayCount}} ficheiros carregados", + "fileLoadedOfTotalCount_many": "{{displayCount}} ficheiros carregados de {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ sem nova linha no fim do ficheiro", @@ -301,7 +303,7 @@ "closeReactions": "Fechar reações", "reactionsTitle": "Reações", "addReaction": "Adicionar reação", - "reactionPill": "{{emoji}} reação, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reação, {{displayCount}} {{countLabel}}", "reaction_one": "reação", "reaction": "reações", "reaction_other": "reações", @@ -353,10 +355,12 @@ "noDiscussionDescription": "Sem conversas de revisão nem comentários de conversa neste pull request.", "reviewFiles": "Rever ficheiros", "quotedDiffSnippet": "Excerto de diff citado", - "moreLinesAbove": "… {{count}} mais linhas acima", + "moreLinesAbove": "… {{displayCount}} mais linhas acima", "termsAcceptRequired": "Tem de aceitar os Termos de Serviço para publicar.", "termsOutdatedCopy": "Os Termos de Serviço mudaram. Reabra este ecrã para aceitar a versão mais recente.", - "termsCheckRetryCopy": "Não foi possível verificar os Termos de Serviço. Verifique a sua ligação e tente novamente." + "termsCheckRetryCopy": "Não foi possível verificar os Termos de Serviço. Verifique a sua ligação e tente novamente.", + "comment_many": "{{displayCount}} comentários", + "reaction_many": "reações" }, "couldNotOpenGitHubAppSettings": "Não foi possível abrir as definições da GitHub App", "installKiloGitHubApp": "Instalar a Kilo GitHub App", @@ -395,11 +399,11 @@ "retryChecks": "Tentar verificações novamente", "viewOnGitHub": "Ver PR no GitHub", "noChecksReported": "Nenhuma verificação reportada", - "passed": "{{count}} passaram", - "failed": "{{count}} falharam", - "pending": "{{count}} pendentes", - "skipped": "{{count}} ignoradas", - "checksCount": "{{count}} verificações", + "passed": "{{displayCount}} passaram", + "failed": "{{displayCount}} falharam", + "pending": "{{displayCount}} pendentes", + "skipped": "{{displayCount}} ignoradas", + "checksCount": "{{displayCount}} verificações", "checkDetails": "detalhes da verificação", "pullRequest": "pull request" }, @@ -459,9 +463,10 @@ "pendingComment_one": "comentário pendente", "pendingComment": "comentários pendentes", "pendingComment_other": "comentários pendentes", - "submitCountOfTotal": "Enviar {{freshCount}} de {{totalCount}} comentários", + "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentários", "submitReview": "Enviar revisão", - "partialPostedMessage": "{{freshCount}} comentário(s) enviado(s). {{staleCount}} comentário(s) apontam para um commit mais antigo e ficaram na sua fila." + "partialPostedMessage": "{{displayFreshCount}} comentário(s) enviado(s). {{displayStaleCount}} comentário(s) apontam para um commit mais antigo e ficaram na sua fila.", + "pendingComment_many": "comentários pendentes" }, "reconnectNotice": { "title": "Ligação ao GitHub expirada", @@ -488,7 +493,9 @@ "commit_other": "commits", "file_one": "ficheiro", "file": "ficheiros", - "file_other": "ficheiros" + "file_other": "ficheiros", + "commit_many": "commits", + "file_many": "ficheiros" }, "pendingComment": { "editOutdatedA11y": "Editar comentário pendente desatualizado em {{location}}", @@ -580,7 +587,8 @@ "agents": "Agentes", "profile": "Perfil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, separador, {{position}} de {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +629,7 @@ "recent": "Recentes", "common": "Comuns", "reactWith": "Reagir com {{reaction}}", - "accessibility": "{{emoji}} reação, {{count}}" + "accessibility": "{{emoji}} reação, {{displayCount}}" }, "composer": { "replyingTo": "A responder a", @@ -650,7 +658,7 @@ "imageUnavailable": "Imagem indisponível", "openFailed": "Não foi possível abrir o anexo. Verifique a sua ligação e tente novamente.", "attachFailed": "Falha ao anexar o ficheiro", - "limit": "Pode anexar até {{count}} ficheiros.", + "limit": "Pode anexar até {{displayCount}} ficheiros.", "sizeRejection": "{{filename}} excede o limite de anexo de {{limit}}.", "unreadable": "Não foi possível ler {{filename}}.", "pastedImage": "a imagem colada", @@ -700,7 +708,8 @@ "someone": "Alguém", "typing_one": "{{name}} está a escrever...", "typing": "{{names}} estão a escrever...", - "typing_other": "{{names}} estão a escrever..." + "typing_other": "{{names}} estão a escrever...", + "typing_many": "{{names}} estão a escrever..." }, "botStatus": { "online": "Online", @@ -722,6 +731,7 @@ "finalTermEnds": "O prazo final termina", "afterFinalTerm": "Após o prazo final", "remaining": "Restante", + "lessThanOneDay": "Menos de 1 dia", "ends": "Termina", "expires": "Expira", "noActivePlan": "Sem plano ativo", @@ -740,11 +750,11 @@ "yourStandardMonthlyPrice": "o seu preço mensal Standard", "perMonth": "/mês", "earlybirdAccessUntil": "Acesso Earlybird até {{date}}", - "earlybirdEnding": "Earlybird a terminar: faltam {{days}} dias", + "earlybirdEnding": "Earlybird a terminar: {{remaining}}", "paymentPastDue": "Pagamento em atraso. Atualize o seu método de pagamento.", "subscriptionCancels": "A subscrição é cancelada em {{date}}", - "trialDaysRemaining": "Teste: faltam {{days}} dias", - "trialEndingSoon": "Teste a terminar em breve: {{days}}" + "trialDaysRemaining": "Teste: faltam {{remaining}}", + "trialEndingSoon": "Teste a terminar em breve: {{remaining}}" }, "changelog": { "title": "Novidades", @@ -996,7 +1006,7 @@ "stalledTitle": "Algo estagnou", "stalledBody": "Não conseguimos concluir a configuração de {{name}}. Tente novamente, ou envie um email para hi@kilo.ai se isto continuar a acontecer.", "timeoutTitle": "A demorar mais do que o esperado", - "timeoutBody": "A configuração de {{name}} está a demorar mais do que o habitual (mais de {{minutes}} minutos).", + "timeoutBody": "A configuração de {{name}} está a demorar mais do que o habitual (mais de {{displayMinutes}} minutos).", "continueInBackground": "Continuar em segundo plano", "settingUp": "A configurar {{name}}", "finishingSetup": "A concluir a configuração", @@ -1071,7 +1081,8 @@ "openUnread_other": "Abrir {{name}}, {{displayCount}} mensagens não lidas", "open": "Abrir {{name}}", "openSettings": "Abrir as definições de {{name}}", - "fixOnKiloAi": "Corrigir em kilo.ai: {{label}}" + "fixOnKiloAi": "Corrigir em kilo.ai: {{label}}", + "openUnread_many": "Abrir {{name}}, {{displayCount}} mensagens não lidas" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1298,7 @@ "mergeGate": "Portão de fusão", "repositories": "Repositórios", "allRepositories": "Todos os repositórios", - "nSelected": "{{count}} selecionados", + "nSelected": "{{displayCount}} selecionados", "reviewMemory": "Memória de revisão", "proposedReviewMdGuidance": "Orientação REVIEW.md proposta" }, @@ -1367,7 +1378,8 @@ "severityAll": "Todas as gravidades", "confidenceHighOnly": "Apenas confiança alta", "confidenceMediumOrHigher": "Média ou superior", - "confidenceAny": "Qualquer confiança" + "confidenceAny": "Qualquer confiança", + "queued_many": "{{displayCount}} ocorrências existentes em fila para análise." }, "analysis": { "couldNotLoad": "Não foi possível carregar a análise", @@ -1391,14 +1403,14 @@ "analyzed": "Analisado", "exploitabilityReasoning": "Raciocínio de explorabilidade", "suggestedFix": "Correção sugerida", - "whereFound": "Onde isto foi encontrado ({{count}})", + "whereFound": "Onde isto foi encontrado ({{displayCount}})", "fullReport": "Relatório completo gerado", "unknown": "Desconhecido", "yes": "Sim", "no": "Não" }, "dashboard": { - "findingsCount": "{{count}} ocorrências", + "findingsCount": "{{displayCount}} ocorrências", "notMeasured": "Não medido", "actFirst": "Agir primeiro", "slaPosture": "Postura do SLA", @@ -1407,7 +1419,7 @@ "repositoryActionPlan": "Plano de ação do repositório", "noOpenFindings": "Nenhuma ocorrência aberta precisa de atenção", "deadlineToday": "Prazo atingido hoje", - "daysOverdue": "{{count}} dias em atraso", + "daysOverdue": "{{displayCount}} dias em atraso", "withinDeadline": "Dentro do prazo", "criticalOverdue": "Críticas em atraso", "highOverdue": "Altas em atraso", @@ -1435,6 +1447,27 @@ "syncQueued": "Sincronização em fila", "syncStatusUnavailable": "Estado da sincronização indisponível" }, + "dashboardMetrics": { + "openFindings": "Ocorrências abertas", + "openFindingsDetail": "{{critical}} críticas, {{high}} altas", + "confirmedExploitable": "Confirmado como explorável", + "confirmedExploitableDetail": "Risco do projeto confirmado por análise", + "needsReview": "Requer a sua revisão", + "needsReviewDetail": "Decisão humana necessária", + "analysisIncomplete": "Análise incompleta", + "analysisIncompleteDetail": "Risco do projeto ainda desconhecido", + "slaCompliance": "Conformidade com SLA", + "notMeasured": "Não medido", + "withinDeadlineDetail": "{{within}} de {{total}} dentro do prazo", + "noDeadlineData": "Nenhuma ocorrência tem prazo SLA ainda", + "deadlinePassed": "Prazo expirado", + "deadlinePassedDetail": "{{critical}} críticas, {{high}} altas", + "dueThisWeek": "Prazo nesta semana", + "dueThisWeekDetail": "{{exploitable}} confirmado como explorável", + "noDeadline": "Sem prazo", + "reviewSlaAssignment": "Rever atribuição de SLA", + "allOpenFindingsTracked": "Todas as ocorrências abertas acompanhadas" + }, "dismiss": { "title": "Dispensar ocorrência", "submit": "Dispensar ocorrência", @@ -1500,13 +1533,14 @@ "analysisModeSubtitle": "Análise {{mode}}", "automation": "Automação", "automationAllOff": "Tudo desligado", - "automationCount": "{{count}} de 3 ativadas", + "automationCount": "{{displayCount}} de 3 ativadas", "notifications": "Notificações", - "notificationsCount": "{{count}} de 2 ativadas", + "notificationsCount": "{{displayCount}} de 2 ativadas", "slaPolicy": "Política de SLA", "disabledNoManage": "O Security Agent está desativado. Apenas os proprietários da organização e os gestores de faturação o podem ativar.", "disabledNoRepo": "Selecione pelo menos um repositório antes de ativar o Security Agent.", - "disabledPrompt": "Ative o Security Agent para sincronizar alertas Dependabot, escolher repositórios e configurar a automação." + "disabledPrompt": "Ative o Security Agent para sincronizar alertas Dependabot, escolher repositórios e configurar a automação.", + "repositoriesCount_many": "{{displayCount}} repositórios selecionados" }, "remediation": { "cancellationRequested": "Cancelamento solicitado", @@ -1524,7 +1558,7 @@ "openPullRequest": "Abrir pull request{{number}}", "openDraftPullRequest": "Abrir pull request de rascunho{{number}}", "progress": "Progresso", - "attemptHistory": "Histórico de tentativas ({{count}})", + "attemptHistory": "Histórico de tentativas ({{displayCount}})", "attemptNumber": "Tentativa #{{number}}", "startedBy": "Iniciado por", "model": "Modelo", @@ -1734,7 +1768,9 @@ "cent_other": "cêntimos", "dollar_one": "dólar", "dollar": "dólares", - "dollar_other": "dólares" + "dollar_other": "dólares", + "cent_many": "cêntimos", + "dollar_many": "dólares" }, "githubInstall": { "couldNotOpenTitle": "Não foi possível abrir o GitHub", @@ -1830,7 +1866,8 @@ "partRenderer": { "updatedFileCount_one": "{{displayCount}} ficheiro atualizado", "updatedFileCount": "{{displayCount}} ficheiros atualizados", - "updatedFileCount_other": "{{displayCount}} ficheiros atualizados" + "updatedFileCount_other": "{{displayCount}} ficheiros atualizados", + "updatedFileCount_many": "{{displayCount}} ficheiros atualizados" }, "toolPatch": { "operationAdded": "Adicionado", @@ -1855,9 +1892,9 @@ "toolTask": "tarefa", "readTodos": "Ler todos", "updateTodos": "Atualizar todos", - "linesBadge": "{{count}} linhas", - "filesBadge": "{{count}} ficheiros", - "matchesBadge": "{{count}} correspondências" + "linesBadge": "{{displayCount}} linhas", + "filesBadge": "{{displayCount}} ficheiros", + "matchesBadge": "{{displayCount}} correspondências" }, "readToolMarkdown": { "linesTruncated": "linhas {{start}}–{{end}} (truncadas)", @@ -1941,6 +1978,10 @@ "reportAiResponseFailedTerminal": "Esta resposta não pode ser comunicada.", "reportAiResponseSubmitted": "Comunicação enviada. Recibo {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detalhes indisponíveis", "textDisplay": "Visualização do texto", @@ -1999,7 +2040,7 @@ "preparationComplete": "Preparação concluída", "preparationFailed": "Falha na preparação", "setupCommand": "Comando de configuração {{index}}", - "setupCommandOf": "Comando de configuração {{index}} de {{count}}" + "setupCommandOf": "Comando de configuração {{index}} de {{displayCount}}" }, "permissionCard": { "title": "Permissão necessária", @@ -2036,7 +2077,7 @@ "submissionFailed": "Falha no envio. Tente novamente.", "questionAnnouncement": "O agente precisa da sua contribuição. O compositor está em pausa enquanto responde.", "permissionAnnouncement": "O agente precisa de permissão para continuar. O compositor está em pausa enquanto decide.", - "positionHint": "(1 de {{count}})", + "positionHint": "(1 de {{displayCount}})", "movedPastPrompt": "O agente ultrapassou este pedido. Este cartão será fechado quando a sessão continuar.", "waitingForAnswer": "O agente aguarda a sua resposta. Enquanto esta pergunta estiver aberta, a sua mensagem ao agente está em pausa.", "waitingForPermission": "O agente aguarda permissão. Enquanto este pedido estiver aberto, a sua mensagem ao agente está em pausa." @@ -2076,7 +2117,8 @@ "omitted_other": "{{displayCount}} itens anteriores desta sessão não puderam ser apresentados.", "couldNotLoad": "Não foi possível carregar as mensagens anteriores.", "unavailable": "As mensagens anteriores não estão disponíveis.", - "tooLarge": "As mensagens anteriores são demasiado grandes para carregar." + "tooLarge": "As mensagens anteriores são demasiado grandes para carregar.", + "omitted_many": "{{displayCount}} itens anteriores desta sessão não puderam ser apresentados." }, "markdownTable": { "viewTable": "Ver tabela", @@ -2088,7 +2130,9 @@ "rowCount_one": "linha", "rowCount": "linhas", "rowCount_other": "linhas", - "opensFullScreen": "abre em ecrã inteiro" + "opensFullScreen": "abre em ecrã inteiro", + "columnCount_many": "colunas", + "rowCount_many": "linhas" }, "sessionFilter": { "title": "Filtrar sessões", @@ -2157,7 +2201,7 @@ "cameraAccessDisabled": "Acesso à Câmara Desativado", "cameraAccessMessage": "Permita o acesso à câmara nas Definições para tirar uma fotografia.", "couldNotOpenPhotoPicker": "Não foi possível abrir o seletor de fotos. Reinicie o Kilo e tente novamente.", - "maxFilesAllowed": "Máximo de {{count}} ficheiros permitidos", + "maxFilesAllowed": "Máximo de {{displayCount}} ficheiros permitidos", "onlyAddingFiles": "A adicionar apenas {{accepted}} de {{total}} ficheiros (máx. {{max}})" }, "composer": { @@ -2222,7 +2266,7 @@ "costPrefix": "custo {{cost}}", "costSuffix": ", custo {{cost}}", "tokensWindowUnavailable": "Contexto de {{used}} tokens, janela indisponível", - "tokensUsage": "Contexto de {{used}} de {{window}} tokens, {{percentage}}% usado", + "tokensUsage": "Contexto de {{used}} de {{window}} tokens, {{percentage}} usado", "title": "Uso de contexto", "used": "Usado", "remaining": "Restante", @@ -2231,7 +2275,7 @@ "usageReflectsLatest": "O uso reflete a resposta mais recente concluída do assistente.", "tokenUsage": "Uso de tokens", "cacheRate": "Taxa de cache", - "modelsCount": "Modelos ({{count}})", + "modelsCount": "Modelos ({{displayCount}})", "tokenTotalsNote": "Os totais de tokens cobrem apenas esta sessão e excluem tokens de subagentes/sessões filhas.", "subagents": "Subagentes", "subagentsDescription": "Custo residual de sessões filhas", @@ -2243,7 +2287,8 @@ "stepsCount_one": "{{steps}} passo", "stepsCount": "{{steps}} passos", "stepsCount_other": "{{steps}} passos", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_many": "{{steps}} passos" }, "prBadge": { "open": "pull request aberto", @@ -2373,7 +2418,7 @@ "connectedCli": "Numa CLI ligada", "newSessionOn": "Nova sessão em {{name}}", "noMatchingSessions": "Sem sessões correspondentes.", - "onlyFirstFilesAttached": "Apenas os primeiros {{count}} ficheiros serão anexados.", + "onlyFirstFilesAttached": "Apenas os primeiros {{displayCount}} ficheiros serão anexados.", "staleMessage": "Esta partilha já não está disponível.", "retryableMessage": "Não foi possível carregar as suas sessões.", "emptyMessage": "Ainda não há sessões — inicie uma nova para enviar isto.", @@ -2406,7 +2451,7 @@ "otherAccountCopy": "O Kilo Pass desta Apple Account pertence a uma conta Kilo diferente. Inicie sessão nessa conta Kilo para a gerir.", "alreadySubscribed": "Já tem uma subscrição do Kilo Pass.", "purchaseUnavailable": "A compra do Kilo Pass não está disponível neste momento.", - "tierCredits": "${{amount}} em créditos", + "tierCredits": "{{amount}} em créditos", "perMonth": "{{price}}/mês", "verifyPurchaseFailed": "Não foi possível verificar a sua compra. Verifique a sua ligação e tente novamente.", "productsCouldNotLoad": "Os produtos do Kilo Pass não puderam ser carregados a partir da App Store.", @@ -2417,7 +2462,7 @@ "manageFailed": "Falha ao abrir a gestão de subscrições da App Store.", "kiloPassSetup": "Configuração do Kilo Pass", "subscriptionHeaderDescription": "Uma subscrição mensal que adiciona créditos ao seu saldo Kilo para executar sessões de programação com IA na aplicação Kilo — Cloud Agents, sessões remotas e conversas KiloClaw.", - "tierDescription": "${{price}} em créditos pagos adicionados mensalmente para uso na aplicação Kilo.", + "tierDescription": "{{price}} em créditos pagos adicionados mensalmente para uso na aplicação Kilo.", "subscribe": "Subscrever", "subscribeDescription": "Créditos mensais com progresso de bónus", "manage": "Gerir", @@ -2425,7 +2470,7 @@ "statusPending": "Kilo Pass pendente", "statusCanceling": "A cancelar Kilo Pass", "statusPastDue": "Kilo Pass em atraso", - "monthlyCredits": "${{credits}} em créditos mensais", + "monthlyCredits": "{{credits}} em créditos mensais", "ends": "Termina em {{date}}", "periodEnd": "fim do período", "managedOnGooglePlay": "Gerido no Google Play", @@ -2667,7 +2712,8 @@ "processingNeedsReview": "O processamento requer revisão", "retry": "Repetir", "retryHint": "Repete o carregamento do estado do Kilo Pass.", - "setupHint": "Abre a configuração do Kilo Pass na web." + "setupHint": "Abre a configuração do Kilo Pass na web.", + "paidSeat_many": "{{displayCount}} lugares pagos" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index c71d826c32..109b78f735 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -206,11 +206,11 @@ "loadingLines": "Se încarcă {{loaded}} din {{total}} linii…", "expandContext": "Extinde contextul", "expandMoreContext": "Extinde mai mult context", - "expandLines": "Extinde {{count}} linii ({{start}}–{{end}})", - "expandMoreLines": "Extinde încă {{count}} linii ({{start}}–{{end}})", - "expandLinesOfContext": "Extinde {{count}} linii de context", + "expandLines": "Extinde {{displayCount}} linii ({{start}}–{{end}})", + "expandMoreLines": "Extinde încă {{displayCount}} linii ({{start}}–{{end}})", + "expandLinesOfContext": "Extinde {{displayCount}} linii de context", "expandAll": "Extinde tot", - "expandAllLines": "Extinde toate cele {{count}} linii", + "expandAllLines": "Extinde toate cele {{displayCount}} linii", "loadingMoreFiles": "Se încarcă mai multe fișiere…", "retryLoadingNextPage": "Reîncearcă încărcarea paginii următoare", "failedToLoadMoreFiles": "Încărcarea a mai multor fișiere a eșuat — atinge pentru a reîncerca", @@ -227,7 +227,9 @@ "fileLoadedOfTotalCount_other": "{{displayCount}} fișiere încărcate din {{total}}", "filesStillLoading": "Fișierele se mai încarcă. Trage pentru a reîmprospăta.", "goToOverview": "Mergi la Prezentare generală", - "goToOverviewTab": "Mergi la fila Prezentare generală" + "goToOverviewTab": "Mergi la fila Prezentare generală", + "fileLoadedCount_few": "{{displayCount}} fișiere încărcate", + "fileLoadedOfTotalCount_few": "{{displayCount}} fișiere încărcate din {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ fără linie nouă la sfârșitul fișierului", @@ -301,7 +303,7 @@ "closeReactions": "Închide reacțiile", "reactionsTitle": "Reacții", "addReaction": "Adaugă o reacție", - "reactionPill": "{{emoji}} reacție, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reacție, {{displayCount}} {{countLabel}}", "reaction_one": "reacție", "reaction": "reacții", "reaction_other": "reacții", @@ -353,10 +355,12 @@ "noDiscussionDescription": "Nu există fire de revizuire sau comentarii de conversație pe acest pull request.", "reviewFiles": "Revizuiește fișierele", "quotedDiffSnippet": "Fragment de diff citat", - "moreLinesAbove": "… {{count}} linii mai multe mai sus", + "moreLinesAbove": "… {{displayCount}} linii mai multe mai sus", "termsAcceptRequired": "Trebuie să accepți Termenii de utilizare pentru a posta.", "termsOutdatedCopy": "Termenii de utilizare s-au schimbat. Redeschide acest ecran pentru a accepta versiunea cea mai recentă.", - "termsCheckRetryCopy": "Nu s-a putut verifica Termenii de utilizare. Verifică conexiunea și încearcă din nou." + "termsCheckRetryCopy": "Nu s-a putut verifica Termenii de utilizare. Verifică conexiunea și încearcă din nou.", + "comment_few": "{{displayCount}} comentarii", + "reaction_few": "reacții" }, "couldNotOpenGitHubAppSettings": "Nu s-au putut deschide setările aplicației GitHub", "installKiloGitHubApp": "Instalează Kilo GitHub App", @@ -395,11 +399,11 @@ "retryChecks": "Reîncearcă verificările", "viewOnGitHub": "Vezi PR pe GitHub", "noChecksReported": "Nicio verificare raportată", - "passed": "{{count}} trecute", - "failed": "{{count}} eșuate", - "pending": "{{count}} în așteptare", - "skipped": "{{count}} sărite", - "checksCount": "{{count}} verificări", + "passed": "{{displayCount}} trecute", + "failed": "{{displayCount}} eșuate", + "pending": "{{displayCount}} în așteptare", + "skipped": "{{displayCount}} sărite", + "checksCount": "{{displayCount}} verificări", "checkDetails": "detaliile verificării", "pullRequest": "pull request" }, @@ -459,9 +463,10 @@ "pendingComment_one": "comentariu în așteptare", "pendingComment": "comentarii în așteptare", "pendingComment_other": "comentarii în așteptare", - "submitCountOfTotal": "Trimite {{freshCount}} din {{totalCount}} comentarii", + "submitCountOfTotal": "Trimite {{displayFreshCount}} din {{displayTotalCount}} comentarii", "submitReview": "Trimite revizuirea", - "partialPostedMessage": "Publicate {{freshCount}} comentariu(i). {{staleCount}} comentariu(i) se referă la un commit mai vechi și au rămas în coada ta." + "partialPostedMessage": "Publicate {{displayFreshCount}} comentariu(i). {{displayStaleCount}} comentariu(i) se referă la un commit mai vechi și au rămas în coada ta.", + "pendingComment_few": "comentarii în așteptare" }, "reconnectNotice": { "title": "Conexiunea GitHub a expirat", @@ -488,7 +493,9 @@ "commit_other": "commit-uri", "file_one": "fișier", "file": "fișiere", - "file_other": "fișiere" + "file_other": "fișiere", + "commit_few": "commit-uri", + "file_few": "fișiere" }, "pendingComment": { "editOutdatedA11y": "Editează comentariul învechit în așteptare pe {{location}}", @@ -580,7 +587,8 @@ "agents": "Agenți", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, filă, {{position}} din {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +629,7 @@ "recent": "Recente", "common": "Comune", "reactWith": "Reacționează cu {{reaction}}", - "accessibility": "{{emoji}} reacție, {{count}}" + "accessibility": "{{emoji}} reacție, {{displayCount}}" }, "composer": { "replyingTo": "Răspunzi la", @@ -650,7 +658,7 @@ "imageUnavailable": "Imagine indisponibilă", "openFailed": "Nu s-a putut deschide atașamentul. Verifică conexiunea și încearcă din nou.", "attachFailed": "Atașarea fișierului a eșuat", - "limit": "Poți atașa până la {{count}} fișiere.", + "limit": "Poți atașa până la {{displayCount}} fișiere.", "sizeRejection": "{{filename}} depășește limita de atașare de {{limit}}.", "unreadable": "Nu s-a putut citi {{filename}}.", "pastedImage": "imaginea lipită", @@ -700,7 +708,8 @@ "someone": "Cineva", "typing_one": "{{name}} scrie...", "typing": "{{names}} scriu...", - "typing_other": "{{names}} scriu..." + "typing_other": "{{names}} scriu...", + "typing_few": "{{names}} scriu..." }, "botStatus": { "online": "Online", @@ -722,6 +731,7 @@ "finalTermEnds": "Termenul final se încheie", "afterFinalTerm": "După termenul final", "remaining": "Rămas", + "lessThanOneDay": "Mai puțin de 1 zi", "ends": "Se încheie", "expires": "Expiră", "noActivePlan": "Fără plan activ", @@ -740,11 +750,11 @@ "yourStandardMonthlyPrice": "prețul tău lunar Standard", "perMonth": "/lună", "earlybirdAccessUntil": "Acces Earlybird până pe {{date}}", - "earlybirdEnding": "Earlybird se încheie: {{days}} zile rămase", + "earlybirdEnding": "Earlybird se încheie: {{remaining}}", "paymentPastDue": "Plată întârziată. Te rugăm să actualizezi metoda de plată.", "subscriptionCancels": "Abonamentul se anulează pe {{date}}", - "trialDaysRemaining": "Perioadă de probă: {{days}} zile rămase", - "trialEndingSoon": "Perioada de probă se încheie curând: {{days}}" + "trialDaysRemaining": "Perioadă de probă: {{remaining}} rămase", + "trialEndingSoon": "Perioada de probă se încheie curând: {{remaining}}" }, "changelog": { "title": "Ce e nou", @@ -996,7 +1006,7 @@ "stalledTitle": "Ceva s-a blocat", "stalledBody": "Nu am putut finaliza configurarea lui {{name}}. Încearcă din nou sau trimite un e-mail la hi@kilo.ai dacă acest lucru se întâmplă în continuare.", "timeoutTitle": "Durează mai mult decât era de așteptat", - "timeoutBody": "Configurarea pentru {{name}} durează mai mult decât de obicei (peste {{minutes}} minute).", + "timeoutBody": "Configurarea pentru {{name}} durează mai mult decât de obicei (peste {{displayMinutes}} minute).", "continueInBackground": "Continuă în fundal", "settingUp": "Se configurează {{name}}", "finishingSetup": "Se finalizează configurarea", @@ -1071,7 +1081,8 @@ "openUnread_other": "Deschide {{name}}, {{displayCount}} mesaje necitite", "open": "Deschide {{name}}", "openSettings": "Deschide setările pentru {{name}}", - "fixOnKiloAi": "Rezolvă pe kilo.ai: {{label}}" + "fixOnKiloAi": "Rezolvă pe kilo.ai: {{label}}", + "openUnread_few": "Deschide {{name}}, {{displayCount}} mesaje necitite" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1298,7 @@ "mergeGate": "Poartă de fuziune", "repositories": "Depozite", "allRepositories": "Toate depozitele", - "nSelected": "{{count}} selectate", + "nSelected": "{{displayCount}} selectate", "reviewMemory": "Memorie de revizuire", "proposedReviewMdGuidance": "Îndrumări REVIEW.md propuse" }, @@ -1367,7 +1378,8 @@ "severityAll": "Toate severitățile", "confidenceHighOnly": "Doar încredere ridicată", "confidenceMediumOrHigher": "Medie sau mai mare", - "confidenceAny": "Orice nivel de încredere" + "confidenceAny": "Orice nivel de încredere", + "queued_few": "{{displayCount}} constatări existente puse în coadă pentru analiză." }, "analysis": { "couldNotLoad": "Nu s-a putut încărca analiza", @@ -1391,14 +1403,14 @@ "analyzed": "Analizat", "exploitabilityReasoning": "Raționamentul de exploatabilitate", "suggestedFix": "Remediere sugerată", - "whereFound": "Unde a fost găsit ({{count}})", + "whereFound": "Unde a fost găsit ({{displayCount}})", "fullReport": "Raport complet generat", "unknown": "Necunoscut", "yes": "Da", "no": "Nu" }, "dashboard": { - "findingsCount": "{{count}} constatări", + "findingsCount": "{{displayCount}} constatări", "notMeasured": "Nedimensionat", "actFirst": "Acționează mai întâi", "slaPosture": "Postura SLA", @@ -1407,7 +1419,7 @@ "repositoryActionPlan": "Planul de acțiune al depozitului", "noOpenFindings": "Nicio constatare deschisă nu necesită atenție", "deadlineToday": "Termenul limită a fost atins astăzi", - "daysOverdue": "{{count}} zile întârziere", + "daysOverdue": "{{displayCount}} zile întârziere", "withinDeadline": "În termenul limită", "criticalOverdue": "Critice întârziate", "highOverdue": "Mari întârziate", @@ -1435,6 +1447,27 @@ "syncQueued": "Sincronizare în coadă", "syncStatusUnavailable": "Starea sincronizării nu este disponibilă" }, + "dashboardMetrics": { + "openFindings": "Constatări deschise", + "openFindingsDetail": "{{critical}} critice, {{high}} mari", + "confirmedExploitable": "Confirmat exploatabil", + "confirmedExploitableDetail": "Riscul proiectului confirmat prin analiză", + "needsReview": "Necesită revizuirea ta", + "needsReviewDetail": "Este necesară o decizie umană", + "analysisIncomplete": "Analiză incompletă", + "analysisIncompleteDetail": "Riscul proiectului este încă necunoscut", + "slaCompliance": "Conformitate SLA", + "notMeasured": "Nedimensionat", + "withinDeadlineDetail": "{{within}} din {{total}} în termenul limită", + "noDeadlineData": "Nicio constatare nu are încă termen limită SLA", + "deadlinePassed": "Termenul limită a expirat", + "deadlinePassedDetail": "{{critical}} critice, {{high}} mari", + "dueThisWeek": "Termenul limită în această săptămână", + "dueThisWeekDetail": "{{exploitable}} confirmate exploatabile", + "noDeadline": "Fără termen limită", + "reviewSlaAssignment": "Revizuiește atribuirea SLA", + "allOpenFindingsTracked": "Toate constatările deschise sunt urmărite" + }, "dismiss": { "title": "Respinge constatarea", "submit": "Respinge constatarea", @@ -1500,13 +1533,14 @@ "analysisModeSubtitle": "Analiză {{mode}}", "automation": "Automatizare", "automationAllOff": "Toate oprite", - "automationCount": "{{count}} din 3 activate", + "automationCount": "{{displayCount}} din 3 activate", "notifications": "Notificări", - "notificationsCount": "{{count}} din 2 activate", + "notificationsCount": "{{displayCount}} din 2 activate", "slaPolicy": "Politica SLA", "disabledNoManage": "Security Agent este dezactivat. Doar proprietarii organizației și managerii de facturare îl pot activa.", "disabledNoRepo": "Selectează cel puțin un depozit înainte de a activa Security Agent.", - "disabledPrompt": "Activează Security Agent pentru a sincroniza alertele Dependabot, a alege depozite și a configura automatizarea." + "disabledPrompt": "Activează Security Agent pentru a sincroniza alertele Dependabot, a alege depozite și a configura automatizarea.", + "repositoriesCount_few": "{{displayCount}} depozite selectate" }, "remediation": { "cancellationRequested": "Anulare solicitată", @@ -1524,7 +1558,7 @@ "openPullRequest": "Deschide pull request{{number}}", "openDraftPullRequest": "Deschide pull request draft{{number}}", "progress": "Progres", - "attemptHistory": "Istoricul tentativelor ({{count}})", + "attemptHistory": "Istoricul tentativelor ({{displayCount}})", "attemptNumber": "Tentativa #{{number}}", "startedBy": "Început de", "model": "Model", @@ -1734,7 +1768,9 @@ "cent_other": "cenți", "dollar_one": "dolar", "dollar": "dolari", - "dollar_other": "dolari" + "dollar_other": "dolari", + "cent_few": "cenți", + "dollar_few": "dolari" }, "githubInstall": { "couldNotOpenTitle": "Nu s-a putut deschide GitHub", @@ -1830,7 +1866,8 @@ "partRenderer": { "updatedFileCount_one": "Actualizat {{displayCount}} fișier", "updatedFileCount": "Actualizate {{displayCount}} fișiere", - "updatedFileCount_other": "Actualizate {{displayCount}} fișiere" + "updatedFileCount_other": "Actualizate {{displayCount}} fișiere", + "updatedFileCount_few": "Actualizate {{displayCount}} fișiere" }, "toolPatch": { "operationAdded": "Adăugat", @@ -1855,9 +1892,9 @@ "toolTask": "sarcină", "readTodos": "Citește sarcinile", "updateTodos": "Actualizează sarcinile", - "linesBadge": "{{count}} linii", - "filesBadge": "{{count}} fișiere", - "matchesBadge": "{{count}} potriviri" + "linesBadge": "{{displayCount}} linii", + "filesBadge": "{{displayCount}} fișiere", + "matchesBadge": "{{displayCount}} potriviri" }, "readToolMarkdown": { "linesTruncated": "liniile {{start}}–{{end}} (trunchiate)", @@ -1941,6 +1978,10 @@ "reportAiResponseFailedTerminal": "Acest răspuns nu poate fi raportat.", "reportAiResponseSubmitted": "Raport trimis. Chitanță {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detalii indisponibile", "textDisplay": "Afișare text", @@ -1999,7 +2040,7 @@ "preparationComplete": "Pregătire finalizată", "preparationFailed": "Pregătire eșuată", "setupCommand": "Comandă de configurare {{index}}", - "setupCommandOf": "Comandă de configurare {{index}} din {{count}}" + "setupCommandOf": "Comandă de configurare {{index}} din {{displayCount}}" }, "permissionCard": { "title": "Este necesară permisiunea", @@ -2036,7 +2077,7 @@ "submissionFailed": "Trimiterea a eșuat. Încearcă din nou.", "questionAnnouncement": "Agentul are nevoie de inputul tău. Compozitorul este în pauză în timp ce răspunzi.", "permissionAnnouncement": "Agentul are nevoie de permisiune pentru a continua. Compozitorul este în pauză în timp ce decizi.", - "positionHint": "(1 din {{count}})", + "positionHint": "(1 din {{displayCount}})", "movedPastPrompt": "Agentul a trecut de acest prompt. Acest card se va închide când sesiunea continuă.", "waitingForAnswer": "Agentul așteaptă răspunsul tău. Cât timp această întrebare este deschisă, mesajul tău către agent este în pauză.", "waitingForPermission": "Agentul așteaptă permisiunea. Cât timp această cerere este deschisă, mesajul tău către agent este în pauză." @@ -2076,7 +2117,8 @@ "omitted_other": "{{displayCount}} elemente anterioare din această sesiune nu au putut fi afișate.", "couldNotLoad": "Mesajele anterioare nu au putut fi încărcate.", "unavailable": "Mesajele anterioare nu sunt disponibile.", - "tooLarge": "Mesajele anterioare sunt prea mari pentru a fi încărcate." + "tooLarge": "Mesajele anterioare sunt prea mari pentru a fi încărcate.", + "omitted_few": "{{displayCount}} elemente anterioare din această sesiune nu au putut fi afișate." }, "markdownTable": { "viewTable": "Vezi tabelul", @@ -2088,7 +2130,9 @@ "rowCount_one": "rând", "rowCount": "rânduri", "rowCount_other": "rânduri", - "opensFullScreen": "deschide pe tot ecranul" + "opensFullScreen": "deschide pe tot ecranul", + "columnCount_few": "coloane", + "rowCount_few": "rânduri" }, "sessionFilter": { "title": "Filtrează sesiunile", @@ -2157,7 +2201,7 @@ "cameraAccessDisabled": "Acces la cameră dezactivat", "cameraAccessMessage": "Permite accesul la cameră în Setări pentru a face o fotografie.", "couldNotOpenPhotoPicker": "Selectorul de fotografii nu a putut fi deschis. Repornește Kilo și încearcă din nou.", - "maxFilesAllowed": "Se permit maximum {{count}} fișiere", + "maxFilesAllowed": "Se permit maximum {{displayCount}} fișiere", "onlyAddingFiles": "Se adaugă doar {{accepted}} din {{total}} fișiere (max {{max}})" }, "composer": { @@ -2222,7 +2266,7 @@ "costPrefix": "cost {{cost}}", "costSuffix": ", cost {{cost}}", "tokensWindowUnavailable": "Context {{used}} tokeni, fereastră indisponibilă", - "tokensUsage": "Context {{used}} din {{window}} tokeni, {{percentage}}% folosit", + "tokensUsage": "Context {{used}} din {{window}} tokeni, {{percentage}} folosit", "title": "Utilizarea contextului", "used": "Folosit", "remaining": "Rămas", @@ -2231,7 +2275,7 @@ "usageReflectsLatest": "Utilizarea reflectă cel mai recent răspuns completat al asistentului.", "tokenUsage": "Utilizare tokeni", "cacheRate": "Rată cache", - "modelsCount": "Modele ({{count}})", + "modelsCount": "Modele ({{displayCount}})", "tokenTotalsNote": "Totalurile de tokeni acoperă doar această sesiune și exclud tokenii de subagent/sesiune-copil.", "subagents": "Subagenți", "subagentsDescription": "Cost rezidual din sesiunile copil", @@ -2243,7 +2287,8 @@ "stepsCount_one": "{{steps}} pas", "stepsCount": "{{steps}} pași", "stepsCount_other": "{{steps}} pași", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} pași" }, "prBadge": { "open": "pull request deschisă", @@ -2373,7 +2418,7 @@ "connectedCli": "Pe un CLI conectat", "newSessionOn": "Sesiune nouă pe {{name}}", "noMatchingSessions": "Nicio sesiune potrivită.", - "onlyFirstFilesAttached": "Doar primele {{count}} fișiere vor fi atașate.", + "onlyFirstFilesAttached": "Doar primele {{displayCount}} fișiere vor fi atașate.", "staleMessage": "Acest element partajat nu mai este disponibil.", "retryableMessage": "Sesiunile tale nu au putut fi încărcate.", "emptyMessage": "Încă nicio sesiune — începe una nouă pentru a trimite acest conținut.", @@ -2406,7 +2451,7 @@ "otherAccountCopy": "Kilo Pass de pe acest Apple Account aparține unui alt cont Kilo. Autentifică-te în acel cont Kilo pentru a-l gestiona.", "alreadySubscribed": "Ai deja un abonament Kilo Pass.", "purchaseUnavailable": "Achiziția Kilo Pass nu este disponibilă chiar acum.", - "tierCredits": "${{amount}} în credite", + "tierCredits": "{{amount}} în credite", "perMonth": "{{price}}/lună", "verifyPurchaseFailed": "Achiziția ta nu a putut fi verificată. Verifică conexiunea și încearcă din nou.", "productsCouldNotLoad": "Produsele Kilo Pass nu au putut fi încărcate din App Store.", @@ -2417,7 +2462,7 @@ "manageFailed": "Gestionarea abonamentului din App Store nu a putut fi deschisă.", "kiloPassSetup": "Configurare Kilo Pass", "subscriptionHeaderDescription": "Un abonament lunar care adaugă credite la soldul tău Kilo pentru rularea sesiunilor de codare AI în Kilo App — Cloud Agents, sesiuni de la distanță și chat-uri KiloClaw.", - "tierDescription": "${{price}} credite plătite adăugate lunar pentru utilizarea Kilo App.", + "tierDescription": "{{price}} credite plătite adăugate lunar pentru utilizarea Kilo App.", "subscribe": "Abonează-te", "subscribeDescription": "Credite lunare cu progres bonus", "manage": "Gestionare", @@ -2425,7 +2470,7 @@ "statusPending": "Kilo Pass în așteptare", "statusCanceling": "Kilo Pass se anulează", "statusPastDue": "Kilo Pass restant", - "monthlyCredits": "${{credits}} credite lunare", + "monthlyCredits": "{{credits}} credite lunare", "ends": "Se încheie {{date}}", "periodEnd": "sfârșit de perioadă", "managedOnGooglePlay": "Gestionat pe Google Play", @@ -2667,7 +2712,8 @@ "processingNeedsReview": "Procesarea necesită revizuire", "retry": "Reîncearcă", "retryHint": "Reîncearcă încărcarea stării Kilo Pass.", - "setupHint": "Deschide configurarea Kilo Pass pe web." + "setupHint": "Deschide configurarea Kilo Pass pe web.", + "paidSeat_few": "{{displayCount}} locuri plătite" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 23d8a96e32..16dfddc6ee 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -201,7 +201,8 @@ "agents": "Агенты", "profile": "Профиль", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, вкладка, {{position}} из {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Недавние", "common": "Обычные", "reactWith": "Отреагировать: {{reaction}}", - "accessibility": "{{emoji}} реакция, {{count}}" + "accessibility": "{{emoji}} реакция, {{displayCount}}" }, "composer": { "replyingTo": "Ответ на", @@ -271,7 +272,7 @@ "imageUnavailable": "Изображение недоступно", "openFailed": "Не удалось открыть вложение. Проверьте подключение и попробуйте ещё раз.", "attachFailed": "Не удалось прикрепить файл", - "limit": "Можно прикрепить до {{count}} файлов.", + "limit": "Можно прикрепить до {{displayCount}} файлов.", "sizeRejection": "{{filename}} превышает лимит вложения {{limit}}.", "unreadable": "Не удалось прочитать {{filename}}.", "pastedImage": "вставленное изображение", @@ -321,7 +322,9 @@ "someone": "Кто-то", "typing_one": "{{name}} печатает...", "typing": "{{names}} печатают...", - "typing_other": "{{names}} печатают..." + "typing_other": "{{names}} печатают...", + "typing_few": "{{names}} печатают...", + "typing_many": "{{names}} печатают..." }, "botStatus": { "online": "В сети", @@ -343,6 +346,7 @@ "finalTermEnds": "Последний период заканчивается", "afterFinalTerm": "После последнего периода", "remaining": "Осталось", + "lessThanOneDay": "Менее 1 дня", "ends": "Заканчивается", "expires": "Истекает", "noActivePlan": "Нет активного тарифа", @@ -361,11 +365,11 @@ "yourStandardMonthlyPrice": "ваша месячная цена Standard", "perMonth": "/мес", "earlybirdAccessUntil": "Доступ Earlybird до {{date}}", - "earlybirdEnding": "Earlybird заканчивается: осталось {{days}} дн.", + "earlybirdEnding": "Earlybird заканчивается: {{remaining}}", "paymentPastDue": "Платеж просрочен. Обновите способ оплаты.", "subscriptionCancels": "Подписка отменяется {{date}}", - "trialDaysRemaining": "Пробный период: осталось {{days}} дн.", - "trialEndingSoon": "Пробный период скоро закончится: {{days}}" + "trialDaysRemaining": "Пробный период: осталось {{remaining}}", + "trialEndingSoon": "Пробный период скоро закончится: {{remaining}}" }, "changelog": { "title": "Что нового", @@ -567,7 +571,9 @@ "openSettings": "Открыть настройки для {{name}}", "openUnread": "Открыть {{name}}, непрочитанных сообщений: {{displayCount}}", "openUnread_other": "Открыть {{name}}, непрочитанных сообщений: {{displayCount}}", - "openUnread_one": "Открыть {{name}}, непрочитанное сообщение: {{displayCount}}" + "openUnread_one": "Открыть {{name}}, непрочитанное сообщение: {{displayCount}}", + "openUnread_few": "Открыть {{name}}, непрочитанных сообщения: {{displayCount}}", + "openUnread_many": "Открыть {{name}}, непрочитанных сообщений: {{displayCount}}" }, "list": { "createInstance": "Создать экземпляр", @@ -665,7 +671,7 @@ "startingSandbox": "Запуск песочницы", "stoppedBody": "Экземпляр {{name}} неожиданно остановился во время настройки.", "stoppedTitle": "Настройка остановлена", - "timeoutBody": "Настройка {{name}} занимает больше времени, чем обычно (более {{minutes}} минут).", + "timeoutBody": "Настройка {{name}} занимает больше времени, чем обычно (более {{displayMinutes}} минут).", "timeoutTitle": "Занимает больше времени, чем ожидалось" }, "unavailableDescription": "Для подготовки экземпляра требуется активная подписка KiloClaw. Существующие экземпляры и подписки продолжают работать как обычно.", @@ -912,7 +918,7 @@ "focusAreas": "Области внимания", "mergeGate": "Шлюз слияния", "model": "Модель", - "nSelected": "Выбрано: {{count}}", + "nSelected": "Выбрано: {{displayCount}}", "proposedReviewMdGuidance": "Предложенные рекомендации REVIEW.md", "repositories": "Репозитории", "reviewMemory": "Память проверок", @@ -981,7 +987,7 @@ "triageReasoning": "Обоснование сортировки", "unknown": "Неизвестно", "watchInCloudAgent": "Смотреть в Cloud Agent", - "whereFound": "Где это было найдено ({{count}})", + "whereFound": "Где это было найдено ({{displayCount}})", "yes": "Да" }, "analysisSettings": { @@ -1048,7 +1054,9 @@ "severityCriticalOnly": "Только критические", "severityHighAndAbove": "Высокая и выше", "severityMediumAndAbove": "Средняя и выше", - "title": "Автоматизация" + "title": "Автоматизация", + "queued_few": "{{displayCount}} существующие находки поставлены в очередь на анализ.", + "queued_many": "{{displayCount}} существующих находок поставлено в очередь на анализ." }, "commandRetry": { "discard": "Отменить" @@ -1061,11 +1069,11 @@ "confirmedExploitable": "Подтверждено эксплуатируемых", "couldNotLoad": "Не удалось загрузить данные панели", "criticalOverdue": "Критические просроченные", - "daysOverdue": "Просрочено на {{count}} дн.", + "daysOverdue": "Просрочено на {{displayCount}} дн.", "deadlineToday": "Срок истекает сегодня", "filterByRepository": "Фильтровать по репозиторию", "findings": "Находки", - "findingsCount": "{{count}} находок", + "findingsCount": "{{displayCount}} находок", "highOverdue": "Высокие просроченные", "lastSynced": "Последняя синхронизация: {{time}}", "manageRepositories": "Управление репозиториями", @@ -1091,6 +1099,27 @@ "syncStatusUnavailable": "Статус синхронизации недоступен", "withinDeadline": "В пределах срока" }, + "dashboardMetrics": { + "openFindings": "Открытые находки", + "openFindingsDetail": "{{critical}} критических, {{high}} высоких", + "confirmedExploitable": "Подтверждено эксплуатируемых", + "confirmedExploitableDetail": "Риск проекта подтвержден анализом", + "needsReview": "Требует вашей проверки", + "needsReviewDetail": "Требуется решение человека", + "analysisIncomplete": "Анализ не завершен", + "analysisIncompleteDetail": "Риск проекта пока неизвестен", + "slaCompliance": "Соответствие SLA", + "notMeasured": "Не измерено", + "withinDeadlineDetail": "{{within}} из {{total}} в пределах срока", + "noDeadlineData": "Пока нет находок со сроком SLA", + "deadlinePassed": "Срок истек", + "deadlinePassedDetail": "{{critical}} критических, {{high}} высоких", + "dueThisWeek": "Срок на этой неделе", + "dueThisWeekDetail": "{{exploitable}} подтверждено эксплуатируемых", + "noDeadline": "Нет срока", + "reviewSlaAssignment": "Проверить назначение SLA", + "allOpenFindingsTracked": "Все открытые находки отслеживаются" + }, "dismiss": { "alreadyResolvedDescription": "Эта находка уже устранена и больше не может быть отклонена.", "cannotDismissDescription": "Только владельцы организации и менеджеры по оплате могут отклонять находки.", @@ -1188,7 +1217,7 @@ "title": "Уведомления" }, "remediation": { - "attemptHistory": "История попыток ({{count}})", + "attemptHistory": "История попыток ({{displayCount}})", "attemptNumber": "Попытка №{{number}}", "branch": "Ветка", "cancelMessage": "Security Agent остановит текущую попытку исправления.", @@ -1256,7 +1285,7 @@ "analysisModeSubtitle": "Анализ: {{mode}}", "automation": "Автоматизация", "automationAllOff": "Все выключено", - "automationCount": "Включено {{count}} из 3", + "automationCount": "Включено {{displayCount}} из 3", "couldNotLoadPermissions": "Не удалось загрузить разрешения", "couldNotLoadRepositories": "Не удалось загрузить репозитории", "couldNotLoadSettings": "Не удалось загрузить настройки Security Agent", @@ -1267,7 +1296,7 @@ "enabled": "Включено", "modelsAndAnalysis": "Модели и анализ", "notifications": "Уведомления", - "notificationsCount": "Включено {{count}} из 2", + "notificationsCount": "Включено {{displayCount}} из 2", "off": "Выкл.", "on": "Вкл.", "repositories": "Репозитории", @@ -1278,7 +1307,9 @@ "selectRepositories": "Выбрать репозитории", "selectRepositoriesSubtitle": "Выберите, какие репозитории отслеживает Security Agent", "slaPolicy": "Политика SLA", - "title": "Настройки" + "title": "Настройки", + "repositoriesCount_few": "Выбрано {{displayCount}} репозитория", + "repositoriesCount_many": "Выбрано {{displayCount}} репозиториев" }, "settingsSave": { "discard": "Отменить", @@ -1355,7 +1386,11 @@ "cent_other": "центов", "dollar_one": "доллар", "dollar": "долларов", - "dollar_other": "долларов" + "dollar_other": "долларов", + "cent_few": "цента", + "cent_many": "центов", + "dollar_few": "доллара", + "dollar_many": "долларов" }, "githubInstall": { "couldNotOpenMessage": "Не удалось начать настройку GitHub App. Попробуйте снова.", @@ -1451,7 +1486,9 @@ "partRenderer": { "updatedFileCount_one": "Обновлен {{displayCount}} файл", "updatedFileCount": "Обновлено {{displayCount}} файлов", - "updatedFileCount_other": "Обновлено {{displayCount}} файлов" + "updatedFileCount_other": "Обновлено {{displayCount}} файлов", + "updatedFileCount_few": "Обновлено {{displayCount}} файла", + "updatedFileCount_many": "Обновлено {{displayCount}} файлов" }, "toolPatch": { "operationAdded": "Добавлено", @@ -1476,9 +1513,9 @@ "toolTask": "задача", "readTodos": "Читать задачи", "updateTodos": "Обновить задачи", - "linesBadge": "{{count}} строк", - "filesBadge": "{{count}} файлов", - "matchesBadge": "{{count}} совпадений" + "linesBadge": "{{displayCount}} строк", + "filesBadge": "{{displayCount}} файлов", + "matchesBadge": "{{displayCount}} совпадений" }, "readToolMarkdown": { "linesTruncated": "строки {{start}}–{{end}} (обрезано)", @@ -1562,6 +1599,10 @@ "reportAiResponseFailedTerminal": "На этот ответ нельзя пожаловаться.", "reportAiResponseSubmitted": "Жалоба отправлена. Квитанция {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Сведения недоступны", "textDisplay": "Отображение текста", @@ -1620,7 +1661,7 @@ "preparationComplete": "Подготовка завершена", "preparationFailed": "Подготовка не удалась", "setupCommand": "Команда настройки {{index}}", - "setupCommandOf": "Команда настройки {{index}} из {{count}}" + "setupCommandOf": "Команда настройки {{index}} из {{displayCount}}" }, "permissionCard": { "title": "Требуется разрешение", @@ -1657,7 +1698,7 @@ "submissionFailed": "Отправка не удалась. Попробуйте снова.", "questionAnnouncement": "Агенту нужен ваш ввод. Редактор приостановлен, пока вы отвечаете.", "permissionAnnouncement": "Агенту нужно разрешение для продолжения. Редактор приостановлен, пока вы решаете.", - "positionHint": "(1 из {{count}})", + "positionHint": "(1 из {{displayCount}})", "movedPastPrompt": "Агент прошел дальше этого запроса. Эта карточка закроется, когда сеанс продолжится.", "waitingForAnswer": "Агент ждет вашего ответа. Пока этот вопрос открыт, ваше сообщение агенту приостановлено.", "waitingForPermission": "Агент ждет разрешения. Пока этот запрос открыт, ваше сообщение агенту приостановлено." @@ -1697,7 +1738,9 @@ "omitted_other": "{{displayCount}} более ранних элементов этой сессии не удалось отобразить.", "couldNotLoad": "Не удалось загрузить более ранние сообщения.", "unavailable": "Более ранние сообщения недоступны.", - "tooLarge": "Более ранние сообщения слишком велики для загрузки." + "tooLarge": "Более ранние сообщения слишком велики для загрузки.", + "omitted_few": "{{displayCount}} более ранних элемента этой сессии не удалось отобразить.", + "omitted_many": "{{displayCount}} более ранних элементов этой сессии не удалось отобразить." }, "markdownTable": { "viewTable": "Просмотреть таблицу", @@ -1709,7 +1752,11 @@ "rowCount_one": "строка", "rowCount": "строки", "rowCount_other": "строки", - "opensFullScreen": "открывается на весь экран" + "opensFullScreen": "открывается на весь экран", + "columnCount_few": "столбца", + "columnCount_many": "столбцов", + "rowCount_few": "строки", + "rowCount_many": "строк" }, "sessionFilter": { "title": "Фильтровать сеансы", @@ -1778,7 +1825,7 @@ "cameraAccessDisabled": "Доступ к камере отключен", "cameraAccessMessage": "Разрешите доступ к камере в настройках, чтобы сделать фото.", "couldNotOpenPhotoPicker": "Не удалось открыть выбор фото. Перезапустите Kilo и попробуйте снова.", - "maxFilesAllowed": "Максимум {{count}} файлов", + "maxFilesAllowed": "Максимум {{displayCount}} файлов", "onlyAddingFiles": "Добавляем только {{accepted}} из {{total}} файлов (максимум {{max}})" }, "composer": { @@ -1843,7 +1890,7 @@ "costPrefix": "стоимость {{cost}}", "costSuffix": ", стоимость {{cost}}", "tokensWindowUnavailable": "Контекст {{used}} токенов, окно недоступно", - "tokensUsage": "Контекст {{used}} из {{window}} токенов, использовано {{percentage}}%", + "tokensUsage": "Контекст {{used}} из {{window}} токенов, использовано {{percentage}}", "title": "Использование контекста", "used": "Использовано", "remaining": "Осталось", @@ -1852,7 +1899,7 @@ "usageReflectsLatest": "Использование отражает последний завершенный ответ ассистента.", "tokenUsage": "Использование токенов", "cacheRate": "Тариф кэша", - "modelsCount": "Модели ({{count}})", + "modelsCount": "Модели ({{displayCount}})", "tokenTotalsNote": "Общее количество токенов относится только к этому сеансу и не включает токены субагентов и дочерних сеансов.", "subagents": "Субагенты", "subagentsDescription": "Остаточная стоимость дочерних сеансов", @@ -1864,7 +1911,9 @@ "stepsCount_one": "{{steps}} шаг", "stepsCount": "{{steps}} шагов", "stepsCount_other": "{{steps}} шагов", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} шага", + "stepsCount_many": "{{steps}} шагов" }, "prBadge": { "open": "открытый pull request", @@ -1994,7 +2043,7 @@ "connectedCli": "На подключенном CLI", "newSessionOn": "Новый сеанс на {{name}}", "noMatchingSessions": "Нет подходящих сеансов.", - "onlyFirstFilesAttached": "Будут прикреплены только первые {{count}} файлов.", + "onlyFirstFilesAttached": "Будут прикреплены только первые {{displayCount}} файлов.", "staleMessage": "Этот общий доступ больше недоступен.", "retryableMessage": "Не удалось загрузить ваши сеансы.", "emptyMessage": "Сеансов пока нет — начните новый, чтобы отправить это.", @@ -2027,7 +2076,7 @@ "otherAccountCopy": "Kilo Pass на этом Apple Account принадлежит другому аккаунту Kilo. Войдите в тот аккаунт Kilo, чтобы управлять им.", "alreadySubscribed": "У вас уже есть подписка Kilo Pass.", "purchaseUnavailable": "Покупка Kilo Pass сейчас недоступна.", - "tierCredits": "${{amount}} в кредитах", + "tierCredits": "{{amount}} в кредитах", "perMonth": "{{price}}/мес", "verifyPurchaseFailed": "Не удалось проверить покупку. Проверьте подключение и попробуйте снова.", "productsCouldNotLoad": "Не удалось загрузить продукты Kilo Pass из App Store.", @@ -2038,7 +2087,7 @@ "manageFailed": "Не удалось открыть управление подписками App Store.", "kiloPassSetup": "Настройка Kilo Pass", "subscriptionHeaderDescription": "Ежемесячная подписка, которая добавляет кредиты на ваш баланс Kilo для проведения ИИ-сессий кодинга в Kilo App — Cloud Agents, удалённые сессии и чаты KiloClaw.", - "tierDescription": "${{price}} платных кредитов добавляется ежемесячно за использование Kilo App.", + "tierDescription": "{{price}} платных кредитов добавляется ежемесячно за использование Kilo App.", "subscribe": "Подписаться", "subscribeDescription": "Ежемесячные кредиты с бонусным прогрессом", "manage": "Управлять", @@ -2046,7 +2095,7 @@ "statusPending": "Kilo Pass ожидает", "statusCanceling": "Kilo Pass отменяется", "statusPastDue": "Kilo Pass просрочен", - "monthlyCredits": "${{credits}} кредитов в месяц", + "monthlyCredits": "{{credits}} кредитов в месяц", "ends": "Действует до {{date}}", "periodEnd": "конец периода", "managedOnGooglePlay": "Управляется в Google Play", @@ -2150,17 +2199,17 @@ "accessDeniedDescription": "У вас нет разрешения на просмотр этого pull request.", "checkConnection": "Проверить подключение", "checks": { - "checksCount": "{{count}} проверок", + "checksCount": "{{displayCount}} проверок", "couldNotLoad": "Не удалось загрузить проверки.", - "failed": "{{count}} не прошло", + "failed": "{{displayCount}} не прошло", "noAccess": "У вас нет доступа к проверкам этого репозитория.", "noChecksReported": "Проверки не сообщались", "notAvailable": "Проверки пока недоступны. Возможно, головной коммит ещё не обработан или приложение Kilo GitHub не установлено в головном репозитории.", "openDetails": "Открыть сведения о {{name}}", - "passed": "{{count}} прошло", - "pending": "{{count}} ожидает", + "passed": "{{displayCount}} прошло", + "pending": "{{displayCount}} ожидает", "retryChecks": "Повторить проверки", - "skipped": "{{count}} пропущено", + "skipped": "{{displayCount}} пропущено", "title": "Проверки", "viewOnGitHub": "Открыть PR на GitHub", "checkDetails": "сведения о проверке", @@ -2238,7 +2287,7 @@ "terminal": "На этого пользователя нельзя пожаловаться." } }, - "moreLinesAbove": "… ещё {{count}} строк выше", + "moreLinesAbove": "… ещё {{displayCount}} строк выше", "mute": "Заглушить", "mutedUser": "{{login}} заглушен", "noDiscussion": "Обсуждений пока нет", @@ -2246,7 +2295,7 @@ "comment_one": "1 комментарий", "outdated": "Устарело", "quotedDiffSnippet": "Цитируемый фрагмент diff", - "reactionPill": "{{emoji}} реакция, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} реакция, {{displayCount}} {{countLabel}}", "reaction": "реакций", "reaction_other": "реакций", "reaction_one": "реакция", @@ -2276,7 +2325,11 @@ "viewTerms": "Просмотреть условия", "termsAcceptRequired": "Чтобы опубликовать, нужно принять условия использования.", "termsCheckRetryCopy": "Не удалось проверить условия использования. Проверьте подключение и попробуйте снова.", - "termsOutdatedCopy": "Условия использования изменились. Откройте этот экран снова, чтобы принять новую версию." + "termsOutdatedCopy": "Условия использования изменились. Откройте этот экран снова, чтобы принять новую версию.", + "comment_few": "{{displayCount}} комментария", + "comment_many": "{{displayCount}} комментариев", + "reaction_few": "реакции", + "reaction_many": "реакций" }, "entry": { "clearLink": "Очистить ссылку на pull request", @@ -2350,12 +2403,12 @@ "hunkRows": { "contextUnavailable": "Контекст недоступен для этого ref", "expandAll": "Развернуть все", - "expandAllLines": "Развернуть все {{count}} строк", + "expandAllLines": "Развернуть все {{displayCount}} строк", "expandContext": "Развернуть контекст", - "expandLines": "Развернуть {{count}} строк ({{start}}–{{end}})", - "expandLinesOfContext": "Развернуть {{count}} строк контекста", + "expandLines": "Развернуть {{displayCount}} строк ({{start}}–{{end}})", + "expandLinesOfContext": "Развернуть {{displayCount}} строк контекста", "expandMoreContext": "Развернуть ещё контекст", - "expandMoreLines": "Развернуть ещё {{count}} строк ({{start}}–{{end}})", + "expandMoreLines": "Развернуть ещё {{displayCount}} строк ({{start}}–{{end}})", "failedToLoadContext": "Не удалось загрузить контекст — нажмите, чтобы повторить", "failedToLoadMoreFiles": "Не удалось загрузить остальные файлы — нажмите, чтобы повторить", "fileLoadedCount_one": "загружен {{displayCount}} файл", @@ -2377,7 +2430,11 @@ "loadingLines": "Загрузка {{loaded}} из {{total}} строк…", "loadingMoreFiles": "Загрузка остальных файлов…", "retryLoadingContext": "Повторить загрузку контекста", - "retryLoadingNextPage": "Повторить загрузку следующей страницы" + "retryLoadingNextPage": "Повторить загрузку следующей страницы", + "fileLoadedCount_few": "загружено {{displayCount}} файла", + "fileLoadedCount_many": "загружено {{displayCount}} файлов", + "fileLoadedOfTotalCount_few": "загружено {{displayCount}} файла из {{total}}", + "fileLoadedOfTotalCount_many": "загружено {{displayCount}} файлов из {{total}}" }, "inbox": { "couldNotLoad": "Не удалось загрузить входящие", @@ -2452,7 +2509,11 @@ "stateOpenApproved": "Открыт · Одобрен", "stateOpenChangesRequested": "Открыт · Запрошены изменения", "stateOpenReviewRequired": "Открыт · Требуется проверка", - "unknownAuthor": "Неизвестный автор" + "unknownAuthor": "Неизвестный автор", + "commit_few": "коммита", + "commit_many": "коммитов", + "file_few": "файла", + "file_many": "файлов" }, "pendingComment": { "allQueuedHint": "Все комментарии будут отправлены одним пакетным запросом.", @@ -2500,9 +2561,11 @@ "pendingComment_one": "ожидающий комментарий", "summaryOptional": "Итог (необязательно)", "title": "Отправить проверку", - "partialPostedMessage": "Опубликовано {{freshCount}} комментариев. {{staleCount}} комментариев указывают на старый коммит и остались в очереди.", - "submitCountOfTotal": "Отправить {{freshCount}} из {{totalCount}} комментариев", - "submitReview": "Отправить проверку" + "partialPostedMessage": "Опубликовано {{displayFreshCount}} комментариев. {{displayStaleCount}} комментариев указывают на старый коммит и остались в очереди.", + "submitCountOfTotal": "Отправить {{displayFreshCount}} из {{displayTotalCount}} комментариев", + "submitReview": "Отправить проверку", + "pendingComment_few": "ожидающих комментария", + "pendingComment_many": "ожидающих комментариев" }, "fileStatus": { "added": "Добавлено", @@ -2654,7 +2717,9 @@ "processingNeedsReview": "Обработка требует проверки", "retry": "Повторить", "retryHint": "Повторяет загрузку статуса Kilo Pass.", - "setupHint": "Открывает настройку Kilo Pass в веб-версии." + "setupHint": "Открывает настройку Kilo Pass в веб-версии.", + "paidSeat_few": "{{displayCount}} оплаченных места", + "paidSeat_many": "{{displayCount}} оплаченных мест" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index 6c8cf5952e..8810cfeb5a 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} න් {{loaded}} පේළි පූරණය වෙමින්…", "expandContext": "සන්දර්භය පුළුල් කරන්න", "expandMoreContext": "තව සන්දර්භය පුළුල් කරන්න", - "expandLines": "පේළි {{count}} පුළුල් කරන්න ({{start}}–{{end}})", - "expandMoreLines": "තව පේළි {{count}} පුළුල් කරන්න ({{start}}–{{end}})", - "expandLinesOfContext": "සන්දර්භ පේළි {{count}} පුළුල් කරන්න", + "expandLines": "පේළි {{displayCount}} පුළුල් කරන්න ({{start}}–{{end}})", + "expandMoreLines": "තව පේළි {{displayCount}} පුළුල් කරන්න ({{start}}–{{end}})", + "expandLinesOfContext": "සන්දර්භ පේළි {{displayCount}} පුළුල් කරන්න", "expandAll": "සියල්ල පුළුල් කරන්න", - "expandAllLines": "පේළි {{count}} සියල්ල පුළුල් කරන්න", + "expandAllLines": "පේළි {{displayCount}} සියල්ල පුළුල් කරන්න", "loadingMoreFiles": "තවත් ගොනු පූරණය වෙමින්…", "retryLoadingNextPage": "ඊළඟ පිටුව පූරණය නැවත උත්සාහ කරන්න", "failedToLoadMoreFiles": "තවත් ගොනු පූරණය කිරීමට අසමත් විය — නැවත උත්සාහ කිරීමට තට්ටු කරන්න", @@ -301,7 +301,7 @@ "closeReactions": "ප්‍රතික්‍රියා වසන්න", "reactionsTitle": "ප්‍රතික්‍රියා", "addReaction": "ප්‍රතික්‍රියාවක් එක් කරන්න", - "reactionPill": "{{emoji}} ප්‍රතික්‍රියාව, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ප්‍රතික්‍රියාව, {{displayCount}} {{countLabel}}", "reaction_one": "ප්‍රතික්‍රියාව", "reaction": "ප්‍රතික්‍රියා", "reaction_other": "ප්‍රතික්‍රියා", @@ -353,7 +353,7 @@ "noDiscussionDescription": "මෙම pull request මත සමාලෝචන නූල් හෝ සංවාද අදහස් නොමැත.", "reviewFiles": "ගොනු සමාලෝචනය කරන්න", "quotedDiffSnippet": "උපුටා දක්වන ලද diff කොටස", - "moreLinesAbove": "… ඉහළ තව පේළි {{count}} ක්", + "moreLinesAbove": "… ඉහළ තව පේළි {{displayCount}} ක්", "termsAcceptRequired": "පළ කිරීමට ඔබ සේවා නියමයන් පිළිගත යුතුය.", "termsOutdatedCopy": "සේවා නියමයන් වෙනස් විය. නවතම අනුවාදය පිළිගැනීමට මෙම තිරය නැවත විවෘත කරන්න.", "termsCheckRetryCopy": "සේවා නියමයන් පරීක්ෂා කිරීමට නොහැකි විය. ඔබේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න." @@ -395,11 +395,11 @@ "retryChecks": "පරීක්ෂා නැවත උත්සාහ කරන්න", "viewOnGitHub": "GitHub හි PR බලන්න", "noChecksReported": "පරීක්ෂා වාර්තා වී නොමැත", - "passed": "{{count}} සමත් විය", - "failed": "{{count}} අසමත් විය", - "pending": "{{count}} බලා සිටී", - "skipped": "{{count}} මඟ හැරුණි", - "checksCount": "පරීක්ෂා {{count}} ක්", + "passed": "{{displayCount}} සමත් විය", + "failed": "{{displayCount}} අසමත් විය", + "pending": "{{displayCount}} බලා සිටී", + "skipped": "{{displayCount}} මඟ හැරුණි", + "checksCount": "පරීක්ෂා {{displayCount}} ක්", "checkDetails": "පරීක්ෂා විස්තර", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "අත්හිටුවන ලද අදහස", "pendingComment": "අත්හිටුවන ලද අදහස්", "pendingComment_other": "අත්හිටුවන ලද අදහස්", - "submitCountOfTotal": "අදහස් {{totalCount}} න් {{freshCount}} ඉදිරිපත් කරන්න", + "submitCountOfTotal": "අදහස් {{displayTotalCount}} න් {{displayFreshCount}} ඉදිරිපත් කරන්න", "submitReview": "සමාලෝචනය ඉදිරිපත් කරන්න", - "partialPostedMessage": "අදහස් {{freshCount}} ක් පළ කරන ලදී. අදහස් {{staleCount}} ක් පැරණි commit එකක් දෙස බලා ඔබේ පෝලිමේ රැඳී ඇත." + "partialPostedMessage": "අදහස් {{displayFreshCount}} ක් පළ කරන ලදී. අදහස් {{displayStaleCount}} ක් පැරණි commit එකක් දෙස බලා ඔබේ පෝලිමේ රැඳී ඇත." }, "reconnectNotice": { "title": "GitHub සම්බන්ධතාවය කල් ඉකුත් විය", @@ -580,7 +580,8 @@ "agents": "නියෝජිතයන්", "profile": "පැතිකඩ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ටැබ්, මුළු {{total}} න් {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "මෑත", "common": "පොදු", "reactWith": "{{reaction}} සමඟ ප්‍රතික්‍රියා කරන්න", - "accessibility": "{{emoji}} ප්‍රතික්‍රියාව, {{count}}" + "accessibility": "{{emoji}} ප්‍රතික්‍රියාව, {{displayCount}}" }, "composer": { "replyingTo": "පිළිතුරු දෙන්නේ", @@ -650,7 +651,7 @@ "imageUnavailable": "රූපය නොමැත", "openFailed": "ඇමුණුම විවෘත කිරීමට නොහැකි විය. ඔබේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න.", "attachFailed": "ගොනුව ඇමිණීමට අසමත් විය", - "limit": "ඔබට ගොනු {{count}} ක් දක්වා ඇමිණිය හැක.", + "limit": "ඔබට ගොනු {{displayCount}} ක් දක්වා ඇමිණිය හැක.", "sizeRejection": "{{filename}} {{limit}} ඇමුණුම් සීමාව ඉක්මවයි.", "unreadable": "{{filename}} කියවීමට නොහැකි විය.", "pastedImage": "අලවන ලද රූපය", @@ -722,6 +723,7 @@ "finalTermEnds": "අවසාන කාලය අවසන් වේ", "afterFinalTerm": "අවසාන කාලයෙන් පසු", "remaining": "ඉතිරි", + "lessThanOneDay": "දින 1 ට වඩා අඩුය", "ends": "අවසන් වේ", "expires": "කල් ඉකුත් වේ", "noActivePlan": "සක්රීය සැලැස්මක් නොමැත", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ඔබේ Standard මාසික මිල", "perMonth": "/මස", "earlybirdAccessUntil": "{{date}} දක්වා Earlybird ප්රවේශය", - "earlybirdEnding": "Earlybird අවසන් වේ: {{days}} දින ඉතිරියි", + "earlybirdEnding": "Earlybird අවසන් වේ: {{remaining}} දින ඉතිරියි", "paymentPastDue": "ගෙවීම කල් ඉකුත් විය. කරුණාකර ඔබේ ගෙවීම් ක්රමය යාවත්කාලීන කරන්න.", "subscriptionCancels": "දායකත්වය {{date}} දින අවලංගු වේ", - "trialDaysRemaining": "අත්හදා බැලීම: {{days}} දින ඉතිරියි", - "trialEndingSoon": "අත්හදා බැලීම ඉක්මනින් අවසන් වේ: {{days}}" + "trialDaysRemaining": "අත්හදා බැලීම: {{remaining}} දින ඉතිරියි", + "trialEndingSoon": "අත්හදා බැලීම ඉක්මනින් අවසන් වේ: {{remaining}}" }, "changelog": { "title": "අලුත් මොනවද", @@ -996,7 +998,7 @@ "stalledTitle": "යම් දෙයක් එල්ලී ඇත", "stalledBody": "අපට {{name}} සැකසීම අවසන් කළ නොහැකි විය. නැවත උත්සාහ කරන්න, නැතහොත් මෙය දිගටම සිදු වුවහොත් hi@kilo.ai වෙත විද්යුත් තැපෑලක් යවන්න.", "timeoutTitle": "බලාපොරොත්තු වූවාට වඩා වැඩි කාලයක් ගත වේ", - "timeoutBody": "{{name}} සඳහා සැකසුම සාමාන්යයෙන් වඩා වැඩි කාලයක් ගත වේ ({{minutes}} මිනිත්තුවකට වඩා).", + "timeoutBody": "{{name}} සඳහා සැකසුම සාමාන්යයෙන් වඩා වැඩි කාලයක් ගත වේ ({{displayMinutes}} මිනිත්තුවකට වඩා).", "continueInBackground": "පසුබිමේ දිගටම කරන්න", "settingUp": "{{name}} සැකසෙමින්", "finishingSetup": "සැකසුම අවසන් වෙමින්", @@ -1287,7 +1289,7 @@ "mergeGate": "Merge gate", "repositories": "ගබඩා", "allRepositories": "සියලුම ගබඩා", - "nSelected": "{{count}} තේරුවා", + "nSelected": "{{displayCount}} තේරුවා", "reviewMemory": "සමාලෝචන මතකය", "proposedReviewMdGuidance": "යෝජිත REVIEW.md මාර්ගෝපදේශ" }, @@ -1391,14 +1393,14 @@ "analyzed": "විශ්ලේෂණය කර ඇත", "exploitabilityReasoning": "සූරාකෑමේ හැකියාව පිළිබඳ හේතුව", "suggestedFix": "යෝජිත විසඳුම", - "whereFound": "මෙය සොයාගත් ස්ථානය ({{count}})", + "whereFound": "මෙය සොයාගත් ස්ථානය ({{displayCount}})", "fullReport": "සම්පූර්ණ උත්පාදිත වාර්තාව", "unknown": "නොදන්නා", "yes": "ඔව්", "no": "නැත" }, "dashboard": { - "findingsCount": "{{count}} සොයාගැනීම්", + "findingsCount": "{{displayCount}} සොයාගැනීම්", "notMeasured": "මැන බලා නැත", "actFirst": "මුලින්ම ක්රියා කරන්න", "slaPosture": "SLA පිළිවෙළ", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "ගබඩා ක්රියා සැලැස්ම", "noOpenFindings": "අවධානය අවශ්ය විවෘත සොයාගැනීම් නැත", "deadlineToday": "අද දින නියමිත කාලය ළඟා විය", - "daysOverdue": "{{count}} දින ප්රමාද වී ඇත", + "daysOverdue": "{{displayCount}} දින ප්රමාද වී ඇත", "withinDeadline": "නියමිත කාලය තුළ", "criticalOverdue": "Critical ප්රමාදයි", "highOverdue": "High ප්රමාදයි", @@ -1435,6 +1437,27 @@ "syncQueued": "සමමුහුර්තය පෝලිම් කර ඇත", "syncStatusUnavailable": "සමමුහුර්ත තත්වය ලබාගත නොහැක" }, + "dashboardMetrics": { + "openFindings": "විවෘත සොයාගැනීම්", + "openFindingsDetail": "{{critical}} Critical, {{high}} High", + "confirmedExploitable": "සූරාකෑමට හැකි බව තහවුරු කර ඇත", + "confirmedExploitableDetail": "විශ්ලේෂණයෙන් ව්යාපෘති අවදානම තහවුරු විය", + "needsReview": "ඔබගේ සමාලෝචනය අවශ්‍යයි", + "needsReviewDetail": "මානව තීරණයක් අවශ්‍යයි", + "analysisIncomplete": "විශ්ලේෂණය සම්පූර්ණ නැත", + "analysisIncompleteDetail": "ව්‍යාපෘති අවදානම තවමත් නොදනී", + "slaCompliance": "SLA අනුකූලතාව", + "notMeasured": "මැන බලා නැත", + "withinDeadlineDetail": "නියමිත කාලය තුළ {{total}} න් {{within}}", + "noDeadlineData": "කිසිදු සොයාගැනීමකට තවම SLA නියමිත කාලයක් නැත", + "deadlinePassed": "නියමිත කාලය ඉක්මවා ඇත", + "deadlinePassedDetail": "{{critical}} Critical, {{high}} High", + "dueThisWeek": "මෙම සතියේ නියමිතයි", + "dueThisWeekDetail": "{{exploitable}} සූරාකෑමට හැකි බව තහවුරුයි", + "noDeadline": "නියමිත කාලයක් නැත", + "reviewSlaAssignment": "SLA පැවරීම සමාලෝචනය කරන්න", + "allOpenFindingsTracked": "සියලුම විවෘත සොයාගැනීම් නිරීක්ෂණය වේ" + }, "dismiss": { "title": "සොයාගැනීම ඉවතලන්න", "submit": "සොයාගැනීම ඉවතලන්න", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} විශ්ලේෂණය", "automation": "ස්වයංක්රීයකරණය", "automationAllOff": "සියල්ල අක්රීයයි", - "automationCount": "{{count}} න් 3 ක් සක්රීයයි", + "automationCount": "{{displayCount}} න් 3 ක් සක්රීයයි", "notifications": "දැනුම්දීම්", - "notificationsCount": "{{count}} න් 2 ක් සක්රීයයි", + "notificationsCount": "{{displayCount}} න් 2 ක් සක්රීයයි", "slaPolicy": "SLA ප්රතිපත්තිය", "disabledNoManage": "Security Agent අක්රීයයි. සංවිධාන හිමිකරුවන්ට සහ බිල්පත් කළමනාකරුවන්ට පමණක් එය සක්රීය කළ හැක.", "disabledNoRepo": "Security Agent සක්රීය කිරීමට පෙර අවම වශයෙන් එක් ගබඩාවක් තෝරන්න.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Pull request{{number}} විවෘත කරන්න", "openDraftPullRequest": "කෙටුම්පත් pull request{{number}} විවෘත කරන්න", "progress": "ප්රගතිය", - "attemptHistory": "උත්සාහ ඉතිහාසය ({{count}})", + "attemptHistory": "උත්සාහ ඉතිහාසය ({{displayCount}})", "attemptNumber": "උත්සාහය #{{number}}", "startedBy": "ආරම්භ කළේ", "model": "ආකෘතිය", @@ -1855,9 +1878,9 @@ "toolTask": "කාර්යය", "readTodos": "කළ යුතු දේ කියවන්න", "updateTodos": "කළ යුතු දේ යාවත්කාලීන කරන්න", - "linesBadge": "{{count}} පේළි", - "filesBadge": "{{count}} ගොනු", - "matchesBadge": "{{count}} ගැළපීම්" + "linesBadge": "{{displayCount}} පේළි", + "filesBadge": "{{displayCount}} ගොනු", + "matchesBadge": "{{displayCount}} ගැළපීම්" }, "readToolMarkdown": { "linesTruncated": "පේළි {{start}}–{{end}} (කෙටි කර ඇත)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "මෙම ප්රතිචාරය වාර්තා කළ නොහැක.", "reportAiResponseSubmitted": "වාර්තාව ඉදිරිපත් කර ඇත. රිසිට්පත {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "විස්තර ලබාගත නොහැක", "textDisplay": "පෙළ සංදර්ශකය", @@ -1999,7 +2026,7 @@ "preparationComplete": "සූදානම සම්පූර්ණයි", "preparationFailed": "සූදානම අසාර්ථක විය", "setupCommand": "සැකසුම් විධානය {{index}}", - "setupCommandOf": "{{count}} න් සැකසුම් විධානය {{index}}" + "setupCommandOf": "{{displayCount}} න් සැකසුම් විධානය {{index}}" }, "permissionCard": { "title": "අවසරය අවශ්ය වේ", @@ -2036,7 +2063,7 @@ "submissionFailed": "ඉදිරිපත් කිරීම අසාර්ථකයි. කරුණාකර නැවත උත්සාහ කරන්න.", "questionAnnouncement": "ඒජන්තයාට ඔබගේ ඇතුළත් කිරීම අවශ්‍යයි. ඔබ පිළිතුරු දෙන අතරතුර සංයුක්තකය විරාම කර ඇත.", "permissionAnnouncement": "ඒජන්තයාට ඉදිරියට යාමට අවසර අවශ්‍යයි. ඔබ තීරණය කරන අතරතුර සංයුක්තකය විරාම කර ඇත.", - "positionHint": "({{count}} න් 1)", + "positionHint": "({{displayCount}} න් 1)", "movedPastPrompt": "ඒජන්තයා මෙම ඉල්ලීම පසු කර ඇත. සැසිය ඉදිරියට යන විට මෙම කාඩ්පත වැසෙනු ඇත.", "waitingForAnswer": "ඒජන්තයා ඔබගේ පිළිතුර එනතුරු බලා සිටී. මෙම ප්‍රශ්නය විවෘතව ඇති අතරතුර, ඒජන්තයාට ඔබගේ පණිවිඩය විරාම කර ඇත.", "waitingForPermission": "ඒජන්තයා අවසරය එනතුරු බලා සිටී. මෙම ඉල්ලීම විවෘතව ඇති අතරතුර, ඒජන්තයාට ඔබගේ පණිවිඩය විරාම කර ඇත." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "කැමරා ප්‍රවේශය අක්‍රීයයි", "cameraAccessMessage": "ඡායාරූපයක් ගැනීමට සැකසුම් තුළ කැමරා ප්‍රවේශයට ඉඩ දෙන්න.", "couldNotOpenPhotoPicker": "ඡායාරූප තේරීම්කාරකය විවෘත කළ නොහැකි විය. Kilo නැවත ආරම්භ කර නැවත උත්සාහ කරන්න.", - "maxFilesAllowed": "උපරිම ගොනු {{count}} කට ඉඩ දෙනු ලැබේ", + "maxFilesAllowed": "උපරිම ගොනු {{displayCount}} කට ඉඩ දෙනු ලැබේ", "onlyAddingFiles": "ගොනු {{total}} න් {{accepted}} ක් පමණක් එක් කරමින් (උපරිම {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "පිරිවැය {{cost}}", "costSuffix": ", පිරිවැය {{cost}}", "tokensWindowUnavailable": "සන්දර්භය {{used}} ටෝකන, කවුළුව ලබා ගත නොහැක", - "tokensUsage": "සන්දර්භය {{used}}/{{window}} ටෝකන, {{percentage}}% භාවිතා කර ඇත", + "tokensUsage": "සන්දර්භය {{used}}/{{window}} ටෝකන, {{percentage}} භාවිතා කර ඇත", "title": "සන්දර්භ භාවිතය", "used": "භාවිතා කරන ලද", "remaining": "ඉතිරි", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "භාවිතය අවසන් සම්පූර්ණ කළ සහායක ප්‍රතිචාරය පිළිබිඹු කරයි.", "tokenUsage": "ටෝකන භාවිතය", "cacheRate": "හැඹිලි අනුපාතය", - "modelsCount": "මාදිලි ({{count}})", + "modelsCount": "මාදිලි ({{displayCount}})", "tokenTotalsNote": "ටෝකන එකතු මෙම සැසියට පමණක් අදාළ වන අතර උපඒජන්ත/ළමා සැසි ටෝකන බැහැර කරයි.", "subagents": "උපඒජන්තයන්", "subagentsDescription": "ළමා සැසි වලින් ඉතිරි පිරිවැය", @@ -2373,7 +2400,7 @@ "connectedCli": "සම්බන්ධිත CLI එකක", "newSessionOn": "{{name}} මත නව සැසිය", "noMatchingSessions": "ගැළපෙන සැසි නොමැත.", - "onlyFirstFilesAttached": "පළමු ගොනු {{count}} පමණක් අමුණනු ඇත.", + "onlyFirstFilesAttached": "පළමු ගොනු {{displayCount}} පමණක් අමුණනු ඇත.", "staleMessage": "මෙම බෙදාගැනීම තවදුරටත් ලබා ගත නොහැක.", "retryableMessage": "ඔබගේ සැසි පූරණය කළ නොහැකි විය.", "emptyMessage": "තවම සැසි නොමැත — මෙය යැවීමට නව එකක් ආරම්භ කරන්න.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "මෙම Apple ගිණුමේ Kilo Pass වෙනත් Kilo ගිණුමකට අයත් වේ. එය කළමනාකරණය කිරීමට එම Kilo ගිණුමට පුරනය වන්න.", "alreadySubscribed": "ඔබට දැනටමත් Kilo Pass දායකත්වයක් ඇත.", "purchaseUnavailable": "Kilo Pass මිලදී ගැනීම දැන් ලබා ගත නොහැක.", - "tierCredits": "ණය වශයෙන් ${{amount}}", + "tierCredits": "ණය වශයෙන් {{amount}}", "perMonth": "{{price}}/mo", "verifyPurchaseFailed": "ඔබගේ මිලදී ගැනීම සත්‍යාපනය කළ නොහැකි විය. ඔබගේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න.", "productsCouldNotLoad": "App Store වෙතින් Kilo Pass නිෂ්පාදන පූරණය කළ නොහැකි විය.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store දායකත්ව කළමනාකරණය විවෘත කිරීම අසාර්ථකයි.", "kiloPassSetup": "Kilo Pass සැකසුම", "subscriptionHeaderDescription": "Kilo App හි AI කේතීකරණ සැසි ක්‍රියාත්මක කිරීම සඳහා — Cloud Agents, දුරස්ථ සැසි, සහ KiloClaw කතාබස් — ඔබගේ Kilo ශේෂයට ණය එක් කරන මාසික දායකත්වයක්.", - "tierDescription": "Kilo App භාවිතය සඳහා ${{price}} ගෙවූ ණය මාසිකව එක් වේ.", + "tierDescription": "Kilo App භාවිතය සඳහා {{price}} ගෙවූ ණය මාසිකව එක් වේ.", "subscribe": "දායක වන්න", "subscribeDescription": "ප්‍රසාද ප්‍රගතිය සමඟ මාසික ණය", "manage": "කළමනාකරණය", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass අපේක්ෂිතයි", "statusCanceling": "Kilo Pass අවලංගු වෙමින්", "statusPastDue": "Kilo Pass කල් ඉකුත් වී ඇත", - "monthlyCredits": "මාසික ණය ${{credits}}", + "monthlyCredits": "මාසික ණය {{credits}}", "ends": "අවසන් වන්නේ {{date}}", "periodEnd": "කාලසීමාව අවසානය", "managedOnGooglePlay": "Google Play මත කළමනාකරණය වේ", diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index 201cf82df8..d68fa64c9c 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -206,11 +206,11 @@ "loadingLines": "Načítava sa {{loaded}} z {{total}} riadkov…", "expandContext": "Rozbaliť kontext", "expandMoreContext": "Rozbaliť viac kontextu", - "expandLines": "Rozbaliť {{count}} riadkov ({{start}}–{{end}})", - "expandMoreLines": "Rozbaliť ďalších {{count}} riadkov ({{start}}–{{end}})", - "expandLinesOfContext": "Rozbaliť {{count}} riadkov kontextu", + "expandLines": "Rozbaliť {{displayCount}} riadkov ({{start}}–{{end}})", + "expandMoreLines": "Rozbaliť ďalších {{displayCount}} riadkov ({{start}}–{{end}})", + "expandLinesOfContext": "Rozbaliť {{displayCount}} riadkov kontextu", "expandAll": "Rozbaliť všetko", - "expandAllLines": "Rozbaliť všetkých {{count}} riadkov", + "expandAllLines": "Rozbaliť všetkých {{displayCount}} riadkov", "loadingMoreFiles": "Načítavajú sa ďalšie súbory…", "retryLoadingNextPage": "Skúsiť načítať ďalšiu stránku znova", "failedToLoadMoreFiles": "Načítať ďalšie súbory sa nepodarilo — klepnutím skúsite znova", @@ -227,7 +227,11 @@ "fileLoadedOfTotalCount_other": "Načítaných {{displayCount}} súborov z {{total}}", "filesStillLoading": "Súbory sa stále načítavajú. Potiahnutím obnovíte.", "goToOverview": "Prejsť na Prehľad", - "goToOverviewTab": "Prejsť na kartu Prehľad" + "goToOverviewTab": "Prejsť na kartu Prehľad", + "fileLoadedCount_few": "Načítané {{displayCount}} súbory", + "fileLoadedCount_many": "Načítaných {{displayCount}} súborov", + "fileLoadedOfTotalCount_few": "Načítané {{displayCount}} súbory z {{total}}", + "fileLoadedOfTotalCount_many": "Načítaných {{displayCount}} súborov z {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ na konci súboru nie je nový riadok", @@ -301,7 +305,7 @@ "closeReactions": "Zavrieť reakcie", "reactionsTitle": "Reakcie", "addReaction": "Pridať reakciu", - "reactionPill": "{{emoji}} reakcia, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcia, {{displayCount}} {{countLabel}}", "reaction_one": "reakcia", "reaction": "reakcie", "reaction_other": "reakcie", @@ -353,10 +357,14 @@ "noDiscussionDescription": "Na tomto pull requeste nie sú žiadne vlákna kontroly ani komentáre v konverzácii.", "reviewFiles": "Skontrolovať súbory", "quotedDiffSnippet": "Citovaný úryvok diffu", - "moreLinesAbove": "… {{count}} ďalších riadkov vyššie", + "moreLinesAbove": "… {{displayCount}} ďalších riadkov vyššie", "termsAcceptRequired": "Ak chcete prispievať, musíte prijať Podmienky používania.", "termsOutdatedCopy": "Podmienky používania sa zmenili. Znovu otvorte túto obrazovku a prijmite najnovšiu verziu.", - "termsCheckRetryCopy": "Podmienky používania sa nepodarilo skontrolovať. Skontrolujte pripojenie a skúste to znova." + "termsCheckRetryCopy": "Podmienky používania sa nepodarilo skontrolovať. Skontrolujte pripojenie a skúste to znova.", + "comment_few": "{{displayCount}} komentáre", + "comment_many": "{{displayCount}} komentárov", + "reaction_few": "reakcie", + "reaction_many": "reakcií" }, "couldNotOpenGitHubAppSettings": "Nastavenia aplikácie GitHub App sa nepodarilo otvoriť", "installKiloGitHubApp": "Nainštalovať aplikáciu Kilo GitHub App", @@ -395,11 +403,11 @@ "retryChecks": "Skúsiť kontroly znova", "viewOnGitHub": "Zobraziť PR v GitHub", "noChecksReported": "Žiadne nahlásené kontroly", - "passed": "{{count}} prešlo", - "failed": "{{count}} zlyhalo", - "pending": "{{count}} čaká", - "skipped": "{{count}} vynechaných", - "checksCount": "{{count}} kontrol", + "passed": "{{displayCount}} prešlo", + "failed": "{{displayCount}} zlyhalo", + "pending": "{{displayCount}} čaká", + "skipped": "{{displayCount}} vynechaných", + "checksCount": "{{displayCount}} kontrol", "checkDetails": "podrobnosti kontroly", "pullRequest": "pull request" }, @@ -459,9 +467,11 @@ "pendingComment_one": "čakajúci komentár", "pendingComment": "čakajúce komentáre", "pendingComment_other": "čakajúce komentáre", - "submitCountOfTotal": "Odoslať {{freshCount}} z {{totalCount}} komentárov", + "submitCountOfTotal": "Odoslať {{displayFreshCount}} z {{displayTotalCount}} komentárov", "submitReview": "Odoslať kontrolu", - "partialPostedMessage": "Odoslaných {{freshCount}} komentárov. {{staleCount}} komentárov smeruje na starší commit a zostalo vo vašom fronte." + "partialPostedMessage": "Odoslaných {{displayFreshCount}} komentárov. {{displayStaleCount}} komentárov smeruje na starší commit a zostalo vo vašom fronte.", + "pendingComment_few": "čakajúce komentáre", + "pendingComment_many": "čakajúcich komentárov" }, "reconnectNotice": { "title": "Pripojenie GitHub vypršalo", @@ -488,7 +498,11 @@ "commit_other": "commity", "file_one": "súbor", "file": "súbory", - "file_other": "súbory" + "file_other": "súbory", + "commit_few": "commity", + "commit_many": "commitov", + "file_few": "súbory", + "file_many": "súborov" }, "pendingComment": { "editOutdatedA11y": "Upraviť zastaraný čakajúci komentár na {{location}}", @@ -580,7 +594,8 @@ "agents": "Agenti", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, karta, {{position}} z {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +636,7 @@ "recent": "Nedávne", "common": "Bežné", "reactWith": "Reagovať {{reaction}}", - "accessibility": "{{emoji}} reakcia, {{count}}" + "accessibility": "{{emoji}} reakcia, {{displayCount}}" }, "composer": { "replyingTo": "Odpovedáte na", @@ -650,7 +665,7 @@ "imageUnavailable": "Obrázok nie je dostupný", "openFailed": "Prílohu sa nepodarilo otvoriť. Skontrolujte pripojenie a skúste to znova.", "attachFailed": "Priloženie súboru zlyhalo", - "limit": "Môžete priložiť až {{count}} súborov.", + "limit": "Môžete priložiť až {{displayCount}} súborov.", "sizeRejection": "{{filename}} prekračuje limit prílohy {{limit}}.", "unreadable": "{{filename}} sa nepodarilo prečítať.", "pastedImage": "vložený obrázok", @@ -700,7 +715,9 @@ "someone": "Niekto", "typing_one": "{{name}} píše…", "typing": "{{names}} píšu…", - "typing_other": "{{names}} píšu…" + "typing_other": "{{names}} píšu…", + "typing_few": "{{names}} píšu…", + "typing_many": "{{names}} píšu…" }, "botStatus": { "online": "Online", @@ -722,6 +739,7 @@ "finalTermEnds": "Konečné obdobie končí", "afterFinalTerm": "Po konečnom období", "remaining": "Zostáva", + "lessThanOneDay": "Menej ako 1 deň", "ends": "Končí", "expires": "Platnosť končí", "noActivePlan": "Žiadny aktívny plán", @@ -740,11 +758,11 @@ "yourStandardMonthlyPrice": "vaša štandardná mesačná cena", "perMonth": "/mesiac", "earlybirdAccessUntil": "Earlybird prístup do {{date}}", - "earlybirdEnding": "Earlybird končí: zostáva {{days}} dní", + "earlybirdEnding": "Earlybird končí: zostáva {{remaining}} dní", "paymentPastDue": "Platba je po splatnosti. Aktualizujte svoj spôsob platby.", "subscriptionCancels": "Predplatné sa ruší {{date}}", - "trialDaysRemaining": "Skúšobné obdobie: zostáva {{days}} dní", - "trialEndingSoon": "Skúšobné obdobie sa čoskoro končí: {{days}}" + "trialDaysRemaining": "Skúšobné obdobie: zostáva {{remaining}} dní", + "trialEndingSoon": "Skúšobné obdobie sa čoskoro končí: {{remaining}}" }, "changelog": { "title": "Čo je nové", @@ -996,7 +1014,7 @@ "stalledTitle": "Niečo sa zastavilo", "stalledBody": "Nepodarilo sa nám dokončiť nastavenie {{name}}. Skúste to znova alebo napíšte na hi@kilo.ai, ak sa to opakuje.", "timeoutTitle": "Trvá to dlhšie, než sa očakávalo", - "timeoutBody": "Nastavenie {{name}} trvá dlhšie ako zvyčajne (viac ako {{minutes}} minút).", + "timeoutBody": "Nastavenie {{name}} trvá dlhšie ako zvyčajne (viac ako {{displayMinutes}} minút).", "continueInBackground": "Pokračovať na pozadí", "settingUp": "Nastavuje sa {{name}}", "finishingSetup": "Dokončuje sa nastavenie", @@ -1071,7 +1089,9 @@ "openUnread_other": "Otvoriť {{name}}, {{displayCount}} neprečítané správy", "open": "Otvoriť {{name}}", "openSettings": "Otvoriť nastavenia pre {{name}}", - "fixOnKiloAi": "Opraviť na kilo.ai: {{label}}" + "fixOnKiloAi": "Opraviť na kilo.ai: {{label}}", + "openUnread_few": "Otvoriť {{name}}, {{displayCount}} neprečítané správy", + "openUnread_many": "Otvoriť {{name}}, {{displayCount}} neprečítaných správ" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1307,7 @@ "mergeGate": "Zlučovacia brána", "repositories": "Repozitáre", "allRepositories": "Všetky repozitáre", - "nSelected": "Vybrané: {{count}}", + "nSelected": "Vybrané: {{displayCount}}", "reviewMemory": "Pamäť preskúmaní", "proposedReviewMdGuidance": "Navrhované pokyny REVIEW.md" }, @@ -1367,7 +1387,9 @@ "severityAll": "Všetky závažnosti", "confidenceHighOnly": "Iba vysoká miera istoty", "confidenceMediumOrHigher": "Stredná alebo vyššia", - "confidenceAny": "Akákoľvek miera istoty" + "confidenceAny": "Akákoľvek miera istoty", + "queued_few": "{{displayCount}} existujúce nálezy sú zaradené do analýzy.", + "queued_many": "{{displayCount}} existujúcich nálezov je zaradených do analýzy." }, "analysis": { "couldNotLoad": "Analýzu sa nepodarilo načítať", @@ -1391,14 +1413,14 @@ "analyzed": "Analyzované", "exploitabilityReasoning": "Odôvodnenie zneužívateľnosti", "suggestedFix": "Navrhovaná oprava", - "whereFound": "Kde to bolo nájdené ({{count}})", + "whereFound": "Kde to bolo nájdené ({{displayCount}})", "fullReport": "Úplná vygenerovaná správa", "unknown": "Neznáme", "yes": "Áno", "no": "Nie" }, "dashboard": { - "findingsCount": "{{count}} nálezov", + "findingsCount": "{{displayCount}} nálezov", "notMeasured": "Nezmerané", "actFirst": "Najprv konať", "slaPosture": "Stav SLA", @@ -1407,7 +1429,7 @@ "repositoryActionPlan": "Akčný plán repozitára", "noOpenFindings": "Žiadne otvorené nálezy nevyžadujú pozornosť", "deadlineToday": "Termín dosiahnutý dnes", - "daysOverdue": "{{count}} dní po termíne", + "daysOverdue": "{{displayCount}} dní po termíne", "withinDeadline": "V rámci termínu", "criticalOverdue": "Kritické po termíne", "highOverdue": "Vysoké po termíne", @@ -1435,6 +1457,27 @@ "syncQueued": "Synchronizácia zaradená", "syncStatusUnavailable": "Stav synchronizácie nedostupný" }, + "dashboardMetrics": { + "openFindings": "Otvorené nálezy", + "openFindingsDetail": "{{critical}} kritických, {{high}} vysokých", + "confirmedExploitable": "Potvrdené ako zneužívateľné", + "confirmedExploitableDetail": "Riziko projektu potvrdené analýzou", + "needsReview": "Vyžaduje vašu kontrolu", + "needsReviewDetail": "Vyžaduje rozhodnutie človeka", + "analysisIncomplete": "Analýza nedokončená", + "analysisIncompleteDetail": "Riziko projektu je stále neznáme", + "slaCompliance": "Dodržiavanie SLA", + "notMeasured": "Nezmerané", + "withinDeadlineDetail": "{{within}} z {{total}} v rámci termínu", + "noDeadlineData": "Žiadny nález zatiaľ nemá termín SLA", + "deadlinePassed": "Termín uplynul", + "deadlinePassedDetail": "{{critical}} kritických, {{high}} vysokých", + "dueThisWeek": "Splatné tento týždeň", + "dueThisWeekDetail": "{{exploitable}} potvrdených ako zneužívateľné", + "noDeadline": "Bez termínu", + "reviewSlaAssignment": "Skontrolovať priradenie SLA", + "allOpenFindingsTracked": "Sledujú sa všetky otvorené nálezy" + }, "dismiss": { "title": "Odmietnuť nález", "submit": "Odmietnuť nález", @@ -1500,13 +1543,15 @@ "analysisModeSubtitle": "Analýza {{mode}}", "automation": "Automatizácia", "automationAllOff": "Všetko vypnuté", - "automationCount": "{{count}} z 3 povolených", + "automationCount": "{{displayCount}} z 3 povolených", "notifications": "Upozornenia", - "notificationsCount": "{{count}} z 2 povolených", + "notificationsCount": "{{displayCount}} z 2 povolených", "slaPolicy": "Politika SLA", "disabledNoManage": "Security Agent je zakázaný. Zapnúť ho môžu iba vlastníci organizácie a manažéri fakturácie.", "disabledNoRepo": "Pred povolením Security Agent vyberte aspoň jeden repozitár.", - "disabledPrompt": "Zapnite Security Agent, aby ste synchronizovali upozornenia Dependabot, vybrali repozitáre a nakonfigurovali automatizáciu." + "disabledPrompt": "Zapnite Security Agent, aby ste synchronizovali upozornenia Dependabot, vybrali repozitáre a nakonfigurovali automatizáciu.", + "repositoriesCount_few": "Vybraté {{displayCount}} repozitáre", + "repositoriesCount_many": "Vybratých {{displayCount}} repozitárov" }, "remediation": { "cancellationRequested": "Vyžiadané zrušenie", @@ -1524,7 +1569,7 @@ "openPullRequest": "Otvoriť pull request{{number}}", "openDraftPullRequest": "Otvoriť koncept pull request{{number}}", "progress": "Priebeh", - "attemptHistory": "História pokusov ({{count}})", + "attemptHistory": "História pokusov ({{displayCount}})", "attemptNumber": "Pokus #{{number}}", "startedBy": "Spustil", "model": "Model", @@ -1734,7 +1779,11 @@ "cent_other": "centy", "dollar_one": "dolár", "dollar": "doláre", - "dollar_other": "doláre" + "dollar_other": "doláre", + "cent_few": "centy", + "cent_many": "centov", + "dollar_few": "doláre", + "dollar_many": "dolárov" }, "githubInstall": { "couldNotOpenTitle": "GitHub sa nepodarilo otvoriť", @@ -1830,7 +1879,9 @@ "partRenderer": { "updatedFileCount_one": "Aktualizovaný {{displayCount}} súbor", "updatedFileCount": "Aktualizované {{displayCount}} súbory", - "updatedFileCount_other": "Aktualizované {{displayCount}} súbory" + "updatedFileCount_other": "Aktualizované {{displayCount}} súbory", + "updatedFileCount_few": "Aktualizované {{displayCount}} súbory", + "updatedFileCount_many": "Aktualizovaných {{displayCount}} súborov" }, "toolPatch": { "operationAdded": "Pridané", @@ -1855,9 +1906,9 @@ "toolTask": "úloha", "readTodos": "Prečítať úlohy", "updateTodos": "Aktualizovať úlohy", - "linesBadge": "{{count}} riadkov", - "filesBadge": "{{count}} súborov", - "matchesBadge": "{{count}} zhôd" + "linesBadge": "{{displayCount}} riadkov", + "filesBadge": "{{displayCount}} súborov", + "matchesBadge": "{{displayCount}} zhôd" }, "readToolMarkdown": { "linesTruncated": "riadky {{start}}–{{end}} (skrátené)", @@ -1941,6 +1992,10 @@ "reportAiResponseFailedTerminal": "Túto odpoveď nemožno nahlásiť.", "reportAiResponseSubmitted": "Odpoveď nahlásená. Potvrdenie {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Podrobnosti nedostupné", "textDisplay": "Zobrazenie textu", @@ -1999,7 +2054,7 @@ "preparationComplete": "Príprava dokončená", "preparationFailed": "Príprava zlyhala", "setupCommand": "Príkaz nastavenia {{index}}", - "setupCommandOf": "Príkaz nastavenia {{index}} z {{count}}" + "setupCommandOf": "Príkaz nastavenia {{index}} z {{displayCount}}" }, "permissionCard": { "title": "Vyžaduje sa povolenie", @@ -2036,7 +2091,7 @@ "submissionFailed": "Odoslanie zlyhalo. Skúste to znova.", "questionAnnouncement": "Agent potrebuje váš vstup. Editor je pozastavený, kým odpovedáte.", "permissionAnnouncement": "Agent potrebuje povolenie na pokračovanie. Editor je pozastavený, kým sa rozhodnete.", - "positionHint": "(1 z {{count}})", + "positionHint": "(1 z {{displayCount}})", "movedPastPrompt": "Agent prešiel za túto výzvu. Táto karta sa zatvorí, keď bude relácia pokračovať.", "waitingForAnswer": "Agent čaká na vašu odpoveď. Kým je táto otázka otvorená, vaša správa agentovi je pozastavená.", "waitingForPermission": "Agent čaká na povolenie. Kým je táto požiadavka otvorená, vaša správa agentovi je pozastavená." @@ -2076,7 +2131,9 @@ "omitted_other": "{{displayCount}} starších položiek z tejto relácie sa nepodarilo zobraziť.", "couldNotLoad": "Staršie správy sa nepodarilo načítať.", "unavailable": "Staršie správy nie sú k dispozícii.", - "tooLarge": "Staršie správy sú príliš veľké na načítanie." + "tooLarge": "Staršie správy sú príliš veľké na načítanie.", + "omitted_few": "{{displayCount}} staršie položky z tejto relácie sa nepodarilo zobraziť.", + "omitted_many": "{{displayCount}} starších položiek z tejto relácie sa nepodarilo zobraziť." }, "markdownTable": { "viewTable": "Zobraziť tabuľku", @@ -2088,7 +2145,11 @@ "rowCount_one": "riadok", "rowCount": "riadky", "rowCount_other": "riadky", - "opensFullScreen": "otvára na celú obrazovku" + "opensFullScreen": "otvára na celú obrazovku", + "columnCount_few": "stĺpce", + "columnCount_many": "stĺpcov", + "rowCount_few": "riadky", + "rowCount_many": "riadkov" }, "sessionFilter": { "title": "Filtrovať relácie", @@ -2157,7 +2218,7 @@ "cameraAccessDisabled": "Prístup k fotoaparátu je zakázaný", "cameraAccessMessage": "Povoľte prístup k fotoaparátu v Nastaveniach, aby ste mohli odfotiť.", "couldNotOpenPhotoPicker": "Výber fotiek sa nepodarilo otvoriť. Reštartujte Kilo a skúste to znova.", - "maxFilesAllowed": "Maximálny počet {{count}} súborov", + "maxFilesAllowed": "Maximálny počet {{displayCount}} súborov", "onlyAddingFiles": "Pridávajú sa iba súbory {{accepted}} z {{total}} (max {{max}})" }, "composer": { @@ -2222,7 +2283,7 @@ "costPrefix": "cena {{cost}}", "costSuffix": ", cena {{cost}}", "tokensWindowUnavailable": "Kontext {{used}} tokenov, okno nie je k dispozícii", - "tokensUsage": "Kontext {{used}} z {{window}} tokenov, {{percentage}}% použitých", + "tokensUsage": "Kontext {{used}} z {{window}} tokenov, {{percentage}} použitých", "title": "Využitie kontextu", "used": "Použité", "remaining": "Zostáva", @@ -2231,7 +2292,7 @@ "usageReflectsLatest": "Využitie odráža poslednú dokončenú odpoveď asistenta.", "tokenUsage": "Využitie tokenov", "cacheRate": "Miera medzipamäte", - "modelsCount": "Modely ({{count}})", + "modelsCount": "Modely ({{displayCount}})", "tokenTotalsNote": "Súčty tokenov sa týkajú iba tejto relácie a nezahŕňajú tokeny subagentov/čiastkových relácií.", "subagents": "Subagenti", "subagentsDescription": "Reziduálna cena z čiastkových relácií", @@ -2243,7 +2304,9 @@ "stepsCount_one": "{{steps}} krok", "stepsCount": "{{steps}} krokov", "stepsCount_other": "{{steps}} krokov", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} kroky", + "stepsCount_many": "{{steps}} krokov" }, "prBadge": { "open": "otvorený pull request", @@ -2373,7 +2436,7 @@ "connectedCli": "Na pripojenom CLI", "newSessionOn": "Nové relácie na {{name}}", "noMatchingSessions": "Žiadne zodpovedajúce relácie.", - "onlyFirstFilesAttached": "Pripojí sa iba prvých {{count}} súborov.", + "onlyFirstFilesAttached": "Pripojí sa iba prvých {{displayCount}} súborov.", "staleMessage": "Toto zdieľanie už nie je k dispozícii.", "retryableMessage": "Vaše relácie sa nepodarilo načítať.", "emptyMessage": "Zatiaľ žiadne relácie — spustite novú, aby ste to odoslali.", @@ -2406,7 +2469,7 @@ "otherAccountCopy": "Kilo Pass na tomto Apple Account patrí inému účtu Kilo. Prihláste sa do tohto účtu Kilo, aby ste ho spravovali.", "alreadySubscribed": "Už máte predplatné Kilo Pass.", "purchaseUnavailable": "Nákup Kilo Pass nie je práve teraz k dispozícii.", - "tierCredits": "${{amount}} v kreditoch", + "tierCredits": "{{amount}} v kreditoch", "perMonth": "{{price}}/mes", "verifyPurchaseFailed": "Váš nákup sa nepodarilo overiť. Skontrolujte pripojenie a skúste to znova.", "productsCouldNotLoad": "Produkty Kilo Pass sa nepodarilo načítať z App Store.", @@ -2417,7 +2480,7 @@ "manageFailed": "Otvorenie správy predplatného v App Store zlyhalo.", "kiloPassSetup": "Nastavenie Kilo Pass", "subscriptionHeaderDescription": "Mesačné predplatné, ktoré pridáva kredity do vášho zostatku Kilo na spúšťanie AI programovacích relácií v aplikácii Kilo — Cloud Agents, vzdialené relácie a chaty KiloClaw.", - "tierDescription": "${{price}} platených kreditov sa pridáva mesačne na používanie aplikácie Kilo.", + "tierDescription": "{{price}} platených kreditov sa pridáva mesačne na používanie aplikácie Kilo.", "subscribe": "Predplatiť", "subscribeDescription": "Mesačné kredity s bonusovým progresom", "manage": "Spravovať", @@ -2425,7 +2488,7 @@ "statusPending": "Kilo Pass čaká", "statusCanceling": "Kilo Pass sa ruší", "statusPastDue": "Kilo Pass po splatnosti", - "monthlyCredits": "${{credits}} mesačných kreditov", + "monthlyCredits": "{{credits}} mesačných kreditov", "ends": "Končí {{date}}", "periodEnd": "koniec obdobia", "managedOnGooglePlay": "Spravované cez Google Play", @@ -2667,7 +2730,9 @@ "processingNeedsReview": "Spracovanie si vyžaduje kontrolu", "retry": "Opakovať", "retryHint": "Znova skúša načítať stav Kilo Pass.", - "setupHint": "Otvorí nastavenie Kilo Pass na webe." + "setupHint": "Otvorí nastavenie Kilo Pass na webe.", + "paidSeat_few": "{{displayCount}} platené miesta", + "paidSeat_many": "{{displayCount}} platených miest" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index d8df7239a1..1a8e0264e2 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -206,11 +206,11 @@ "loadingLines": "Nalagam {{loaded}} od {{total}} vrstic ...", "expandContext": "Razširi kontekst", "expandMoreContext": "Razširi več konteksta", - "expandLines": "Razširi {{count}} vrstic ({{start}}–{{end}})", - "expandMoreLines": "Razširi še {{count}} vrstic ({{start}}–{{end}})", - "expandLinesOfContext": "Razširi {{count}} vrstic konteksta", + "expandLines": "Razširi {{displayCount}} vrstic ({{start}}–{{end}})", + "expandMoreLines": "Razširi še {{displayCount}} vrstic ({{start}}–{{end}})", + "expandLinesOfContext": "Razširi {{displayCount}} vrstic konteksta", "expandAll": "Razširi vse", - "expandAllLines": "Razširi vseh {{count}} vrstic", + "expandAllLines": "Razširi vseh {{displayCount}} vrstic", "loadingMoreFiles": "Nalagam več datotek ...", "retryLoadingNextPage": "Poskusi znova naložiti naslednjo stran", "failedToLoadMoreFiles": "Več datotek ni bilo mogoče naložiti — tapnite za ponovni poskus", @@ -227,7 +227,11 @@ "fileLoadedOfTotalCount_other": "{{displayCount}} datotek naloženih od {{total}}", "filesStillLoading": "Datoteke se še nalagajo. Povlecite za osvežitev.", "goToOverview": "Pojdi na pregled", - "goToOverviewTab": "Pojdi na zavihek pregled" + "goToOverviewTab": "Pojdi na zavihek pregled", + "fileLoadedCount_two": "{{displayCount}} datoteki naloženi", + "fileLoadedCount_few": "{{displayCount}} datoteke naložene", + "fileLoadedOfTotalCount_two": "{{displayCount}} datoteki naloženi od {{total}}", + "fileLoadedOfTotalCount_few": "{{displayCount}} datoteke naložene od {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ na koncu datoteke ni nove vrstice", @@ -301,7 +305,7 @@ "closeReactions": "Zapri reakcije", "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakcijo", - "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcija, {{displayCount}} {{countLabel}}", "reaction_one": "reakcija", "reaction": "reakcij", "reaction_other": "reakcij", @@ -353,10 +357,14 @@ "noDiscussionDescription": "Na tem pull requestu ni niti pregledov niti komentarjev pogovora.", "reviewFiles": "Preglej datoteke", "quotedDiffSnippet": "Citiran izsek diffa", - "moreLinesAbove": "… še {{count}} vrstic zgoraj", + "moreLinesAbove": "… še {{displayCount}} vrstic zgoraj", "termsAcceptRequired": "Za objavljanje morate sprejeti pogoje uporabe.", "termsOutdatedCopy": "Pogoji uporabe so se spremenili. Znova odprite ta zaslon za sprejem najnovejše različice.", - "termsCheckRetryCopy": "Pogojev uporabe ni bilo mogoče preveriti. Preverite povezavo in poskusite znova." + "termsCheckRetryCopy": "Pogojev uporabe ni bilo mogoče preveriti. Preverite povezavo in poskusite znova.", + "comment_two": "{{displayCount}} komentarja", + "comment_few": "{{displayCount}} komentarji", + "reaction_two": "reakciji", + "reaction_few": "reakcije" }, "couldNotOpenGitHubAppSettings": "Nastavitev aplikacije GitHub ni bilo mogoče odpreti", "installKiloGitHubApp": "Namesti aplikacijo Kilo GitHub", @@ -395,11 +403,11 @@ "retryChecks": "Poskusi znova s preverjanji", "viewOnGitHub": "Prikaži PR na GitHubu", "noChecksReported": "Ni poročanih preverjanj", - "passed": "{{count}} uspešnih", - "failed": "{{count}} neuspešnih", - "pending": "{{count}} čaka", - "skipped": "{{count}} preskočenih", - "checksCount": "{{count}} preverjanj", + "passed": "{{displayCount}} uspešnih", + "failed": "{{displayCount}} neuspešnih", + "pending": "{{displayCount}} čaka", + "skipped": "{{displayCount}} preskočenih", + "checksCount": "{{displayCount}} preverjanj", "checkDetails": "podrobnosti preverjanja", "pullRequest": "pull request" }, @@ -459,9 +467,11 @@ "pendingComment_one": "čakajoči komentar", "pendingComment": "čakajoči komentarji", "pendingComment_other": "čakajoči komentarji", - "submitCountOfTotal": "Pošlji {{freshCount}} od {{totalCount}} komentarjev", + "submitCountOfTotal": "Pošlji {{displayFreshCount}} od {{displayTotalCount}} komentarjev", "submitReview": "Pošlji pregled", - "partialPostedMessage": "Objavljenih {{freshCount}} komentarjev. {{staleCount}} komentarjev se nanaša na starejši commit in je ostalo v vaši čakalni vrsti." + "partialPostedMessage": "Objavljenih {{displayFreshCount}} komentarjev. {{displayStaleCount}} komentarjev se nanaša na starejši commit in je ostalo v vaši čakalni vrsti.", + "pendingComment_two": "čakajoča komentarja", + "pendingComment_few": "čakajoči komentarji" }, "reconnectNotice": { "title": "Povezava GitHub je potekla", @@ -488,7 +498,11 @@ "commit_other": "commit-i", "file_one": "datoteka", "file": "datoteke", - "file_other": "datoteke" + "file_other": "datoteke", + "commit_two": "commit-a", + "commit_few": "commit-i", + "file_two": "datoteki", + "file_few": "datoteke" }, "pendingComment": { "editOutdatedA11y": "Uredi zastareli čakajoči komentar na {{location}}", @@ -580,7 +594,8 @@ "agents": "Agenti", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, zavihek, {{position}} od {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +636,7 @@ "recent": "Nedavno", "common": "Pogosto", "reactWith": "Reagiraj z {{reaction}}", - "accessibility": "{{emoji}} reakcija, {{count}}" + "accessibility": "{{emoji}} reakcija, {{displayCount}}" }, "composer": { "replyingTo": "Odgovarjam na", @@ -650,7 +665,7 @@ "imageUnavailable": "Slika ni na voljo", "openFailed": "Priloge ni bilo mogoče odpreti. Preverite povezavo in poskusite znova.", "attachFailed": "Datoteke ni bilo mogoče pripeti", - "limit": "Pripeti lahko do {{count}} datotek.", + "limit": "Pripeti lahko do {{displayCount}} datotek.", "sizeRejection": "{{filename}} presega omejitev prilog {{limit}}.", "unreadable": "{{filename}} ni bilo mogoče prebrati.", "pastedImage": "prilepljena slika", @@ -700,7 +715,9 @@ "someone": "Nekdo", "typing_one": "{{name}} piše...", "typing": "{{names}} pišejo...", - "typing_other": "{{names}} pišejo..." + "typing_other": "{{names}} pišejo...", + "typing_two": "{{names}} pišeta...", + "typing_few": "{{names}} pišejo..." }, "botStatus": { "online": "Na spletu", @@ -722,6 +739,7 @@ "finalTermEnds": "Zadnje obdobje se konča", "afterFinalTerm": "Po zadnjem obdobju", "remaining": "Preostalo", + "lessThanOneDay": "Manj kot 1 dan", "ends": "Se konča", "expires": "Poteče", "noActivePlan": "Ni aktivnega načrta", @@ -740,11 +758,11 @@ "yourStandardMonthlyPrice": "vaša mesečna cena Standard", "perMonth": "/mesec", "earlybirdAccessUntil": "Dostop Earlybird do {{date}}", - "earlybirdEnding": "Konec Earlybird: preostalih {{days}} dni", + "earlybirdEnding": "Konec Earlybird: preostalih {{remaining}} dni", "paymentPastDue": "Plačilo je zapadlo. Posodobite svoj način plačila.", "subscriptionCancels": "Naročnina se prekliče {{date}}", - "trialDaysRemaining": "Preizkus: preostalih {{days}} dni", - "trialEndingSoon": "Preizkus se kmalu konča: {{days}}" + "trialDaysRemaining": "Preizkus: preostalih {{remaining}} dni", + "trialEndingSoon": "Preizkus se kmalu konča: {{remaining}}" }, "changelog": { "title": "Kaj je novega", @@ -996,7 +1014,7 @@ "stalledTitle": "Nekaj se je zataknilo", "stalledBody": "Namestitve {{name}} nam ni uspelo dokončati. Poskusite znova ali pišite na hi@kilo.ai, če se to še naprej dogaja.", "timeoutTitle": "Traja dlje, kot je bilo pričakovano", - "timeoutBody": "Namestitev {{name}} traja dlje kot običajno (več kot {{minutes}} minut).", + "timeoutBody": "Namestitev {{name}} traja dlje kot običajno (več kot {{displayMinutes}} minut).", "continueInBackground": "Nadaljuj v ozadju", "settingUp": "Nameščanje {{name}}", "finishingSetup": "Dokončevanje namestitve", @@ -1071,7 +1089,9 @@ "openUnread_other": "Odpri {{name}}, {{displayCount}} neprebranih sporočil", "open": "Odpri {{name}}", "openSettings": "Odpri nastavitve za {{name}}", - "fixOnKiloAi": "Popravi na kilo.ai: {{label}}" + "fixOnKiloAi": "Popravi na kilo.ai: {{label}}", + "openUnread_two": "Odpri {{name}}, {{displayCount}} neprebrani sporočili", + "openUnread_few": "Odpri {{name}}, {{displayCount}} neprebrana sporočila" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1307,7 @@ "mergeGate": "Vrata združitve", "repositories": "Skladišča", "allRepositories": "Vsa skladišča", - "nSelected": "Izbrano {{count}}", + "nSelected": "Izbrano {{displayCount}}", "reviewMemory": "Pomnilnik pregleda", "proposedReviewMdGuidance": "Predlagane smernice REVIEW.md" }, @@ -1367,7 +1387,9 @@ "severityAll": "Vse resnosti", "confidenceHighOnly": "Samo visoka zanesljivost", "confidenceMediumOrHigher": "Srednja ali višja", - "confidenceAny": "Kakršna koli zanesljivost" + "confidenceAny": "Kakršna koli zanesljivost", + "queued_two": "{{displayCount}} obstoječi najdbi čakata na analizo.", + "queued_few": "{{displayCount}} obstoječe najdbe čakajo na analizo." }, "analysis": { "couldNotLoad": "Analize ni bilo mogoče naložiti", @@ -1391,14 +1413,14 @@ "analyzed": "Analizirano", "exploitabilityReasoning": "Obrazložitev izkoristljivosti", "suggestedFix": "Predlagana poprava", - "whereFound": "Kje je bilo ugotovljeno ({{count}})", + "whereFound": "Kje je bilo ugotovljeno ({{displayCount}})", "fullReport": "Celotno ustvarjeno poročilo", "unknown": "Neznano", "yes": "Da", "no": "Ne" }, "dashboard": { - "findingsCount": "{{count}} najdb", + "findingsCount": "{{displayCount}} najdb", "notMeasured": "Ni izmerjeno", "actFirst": "Najprej ukrepaj", "slaPosture": "Stanje SLA", @@ -1407,7 +1429,7 @@ "repositoryActionPlan": "Načrt ukrepov za skladišče", "noOpenFindings": "Nobena odprta najdba ne potrebuje pozornosti", "deadlineToday": "Rok je dosežen danes", - "daysOverdue": "{{count}} dni po roku", + "daysOverdue": "{{displayCount}} dni po roku", "withinDeadline": "Znotraj roka", "criticalOverdue": "Kritično po roku", "highOverdue": "Visoko po roku", @@ -1435,6 +1457,27 @@ "syncQueued": "Sinhronizacija v čakalni vrsti", "syncStatusUnavailable": "Stanje sinhronizacije ni na voljo" }, + "dashboardMetrics": { + "openFindings": "Odprte najdbe", + "openFindingsDetail": "{{critical}} kritičnih, {{high}} visokih", + "confirmedExploitable": "Potrjeno izkoristljivo", + "confirmedExploitableDetail": "Tveganje projekta potrjeno z analizo", + "needsReview": "Potrebuje tvoj pregled", + "needsReviewDetail": "Zahtevana odločitev človeka", + "analysisIncomplete": "Analiza ni dokončana", + "analysisIncompleteDetail": "Tveganje projekta še ni znano", + "slaCompliance": "Skladnost s SLA", + "notMeasured": "Ni izmerjeno", + "withinDeadlineDetail": "{{within}} od {{total}} znotraj roka", + "noDeadlineData": "Nobena najdba še nima roka SLA", + "deadlinePassed": "Rok je potekel", + "deadlinePassedDetail": "{{critical}} kritičnih, {{high}} visokih", + "dueThisWeek": "Zapade ta teden", + "dueThisWeekDetail": "{{exploitable}} potrjeno izkoristljivih", + "noDeadline": "Brez roka", + "reviewSlaAssignment": "Preglej dodelitev SLA", + "allOpenFindingsTracked": "Sledi se vsem odprtim najdbam" + }, "dismiss": { "title": "Zavrzi najdbo", "submit": "Zavrzi najdbo", @@ -1500,13 +1543,15 @@ "analysisModeSubtitle": "{{mode}} analiza", "automation": "Avtomatizacija", "automationAllOff": "Vse izklopljeno", - "automationCount": "{{count}} od 3 omogočenih", + "automationCount": "{{displayCount}} od 3 omogočenih", "notifications": "Obvestila", - "notificationsCount": "{{count}} od 2 omogočenih", + "notificationsCount": "{{displayCount}} od 2 omogočenih", "slaPolicy": "Politika SLA", "disabledNoManage": "Varnostni agent je onemogočen. Omogočijo ga lahko samo lastniki organizacije in upravitelji obračunavanja.", "disabledNoRepo": "Pred omogočanjem varnostnega agenta izberi vsaj eno skladišče.", - "disabledPrompt": "Vklopi varnostnega agenta za sinhronizacijo opozoril Dependabot, izbiro skladišč in konfiguracijo avtomatizacije." + "disabledPrompt": "Vklopi varnostnega agenta za sinhronizacijo opozoril Dependabot, izbiro skladišč in konfiguracijo avtomatizacije.", + "repositoriesCount_two": "Izbrani {{displayCount}} skladišči", + "repositoriesCount_few": "Izbrana {{displayCount}} skladišča" }, "remediation": { "cancellationRequested": "Preklic je bil zahtevan", @@ -1524,7 +1569,7 @@ "openPullRequest": "Odpri pull request{{number}}", "openDraftPullRequest": "Odpri osnutek pull request{{number}}", "progress": "Napredek", - "attemptHistory": "Zgodovina poskusov ({{count}})", + "attemptHistory": "Zgodovina poskusov ({{displayCount}})", "attemptNumber": "Poskus #{{number}}", "startedBy": "Začel", "model": "Model", @@ -1734,7 +1779,11 @@ "cent_other": "centov", "dollar_one": "dolar", "dollar": "dolarjev", - "dollar_other": "dolarjev" + "dollar_other": "dolarjev", + "cent_two": "centa", + "cent_few": "centi", + "dollar_two": "dolarja", + "dollar_few": "dolarji" }, "githubInstall": { "couldNotOpenTitle": "GitHub ni bilo mogoče odpreti", @@ -1830,7 +1879,9 @@ "partRenderer": { "updatedFileCount_one": "Posodobljena {{displayCount}} datoteka", "updatedFileCount": "Posodobljenih {{displayCount}} datotek", - "updatedFileCount_other": "Posodobljenih {{displayCount}} datotek" + "updatedFileCount_other": "Posodobljenih {{displayCount}} datotek", + "updatedFileCount_two": "Posodobljeni {{displayCount}} datoteki", + "updatedFileCount_few": "Posodobljene {{displayCount}} datoteke" }, "toolPatch": { "operationAdded": "Dodano", @@ -1855,9 +1906,9 @@ "toolTask": "naloga", "readTodos": "Preberi naloge", "updateTodos": "Posodobi naloge", - "linesBadge": "{{count}} vrstic", - "filesBadge": "{{count}} datotek", - "matchesBadge": "{{count}} zadetkov" + "linesBadge": "{{displayCount}} vrstic", + "filesBadge": "{{displayCount}} datotek", + "matchesBadge": "{{displayCount}} zadetkov" }, "readToolMarkdown": { "linesTruncated": "vrstice {{start}}–{{end}} (skrajšano)", @@ -1941,6 +1992,10 @@ "reportAiResponseFailedTerminal": "Tega odziva ni mogoče prijaviti.", "reportAiResponseSubmitted": "Prijava oddana. Potrdilo {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Podrobnosti niso na voljo", "textDisplay": "Prikaz besedila", @@ -1999,7 +2054,7 @@ "preparationComplete": "Priprava končana", "preparationFailed": "Priprava ni uspela", "setupCommand": "Namestitveni ukaz {{index}}", - "setupCommandOf": "Namestitveni ukaz {{index}} od {{count}}" + "setupCommandOf": "Namestitveni ukaz {{index}} od {{displayCount}}" }, "permissionCard": { "title": "Zahtevano dovoljenje", @@ -2036,7 +2091,7 @@ "submissionFailed": "Oddaja ni uspela. Poskusi znova.", "questionAnnouncement": "Agent potrebuje tvoj vnos. Vnos je začasno ustavljen, dokler ne odgovoriš.", "permissionAnnouncement": "Agent potrebuje dovoljenje za nadaljevanje. Vnos je začasno ustavljen, dokler se ne odločiš.", - "positionHint": "(1 od {{count}})", + "positionHint": "(1 od {{displayCount}})", "movedPastPrompt": "Agent je presegel ta poziv. Ta kartica se bo zaprla, ko se seja nadaljuje.", "waitingForAnswer": "Agent čaka na tvoj odgovor. Dokler je to vprašanje odprto, je tvoje sporočilo agentu začasno ustavljeno.", "waitingForPermission": "Agent čaka na dovoljenje. Dokler je ta zahteva odprta, je tvoje sporočilo agentu začasno ustavljeno." @@ -2076,7 +2131,9 @@ "omitted_other": "{{displayCount}} prejšnjih elementov te seje ni bilo mogoče prikazati.", "couldNotLoad": "Prejšnjih sporočil ni bilo mogoče naložiti.", "unavailable": "Prejšnja sporočila niso na voljo.", - "tooLarge": "Prejšnja sporočila so prevelika za nalaganje." + "tooLarge": "Prejšnja sporočila so prevelika za nalaganje.", + "omitted_two": "{{displayCount}} prejšnja elementa te seje ni bilo mogoče prikazati.", + "omitted_few": "{{displayCount}} prejšnji elementi te seje ni bilo mogoče prikazati." }, "markdownTable": { "viewTable": "Prikaži tabelo", @@ -2088,7 +2145,11 @@ "rowCount_one": "vrstica", "rowCount": "vrstice", "rowCount_other": "vrstice", - "opensFullScreen": "odpre celozaslonski prikaz" + "opensFullScreen": "odpre celozaslonski prikaz", + "columnCount_two": "stolpca", + "columnCount_few": "stolpci", + "rowCount_two": "vrstici", + "rowCount_few": "vrstice" }, "sessionFilter": { "title": "Filtriraj seje", @@ -2157,7 +2218,7 @@ "cameraAccessDisabled": "Dostop do fotoaparata onemogočen", "cameraAccessMessage": "Omogoči dostop do fotoaparata v Nastavitvah za fotografiranje.", "couldNotOpenPhotoPicker": "Izbirnika fotografij ni bilo mogoče odpreti. Znova zaženi Kilo in poskusi znova.", - "maxFilesAllowed": "Dovoljenih je največ {{count}} datotek", + "maxFilesAllowed": "Dovoljenih je največ {{displayCount}} datotek", "onlyAddingFiles": "Dodaja se samo {{accepted}} od {{total}} datotek (največ {{max}})" }, "composer": { @@ -2222,7 +2283,7 @@ "costPrefix": "strošek {{cost}}", "costSuffix": ", strošek {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} žetonov, okno ni na voljo", - "tokensUsage": "Kontekst {{used}} od {{window}} žetonov, {{percentage}}% uporabljenih", + "tokensUsage": "Kontekst {{used}} od {{window}} žetonov, {{percentage}} uporabljenih", "title": "Poraba konteksta", "used": "Uporabljeno", "remaining": "Preostalo", @@ -2231,7 +2292,7 @@ "usageReflectsLatest": "Poraba odraža zadnji dokončan odgovor asistenta.", "tokenUsage": "Poraba žetonov", "cacheRate": "Stopnja predpomnilnika", - "modelsCount": "Modeli ({{count}})", + "modelsCount": "Modeli ({{displayCount}})", "tokenTotalsNote": "Skupne vrednosti žetonov zajemajo samo to sejo in izključujejo žetone podagentov/nadrejenih sej.", "subagents": "Podagenti", "subagentsDescription": "Preostali strošek podrejenih sej", @@ -2243,7 +2304,9 @@ "stepsCount_one": "{{steps}} korak", "stepsCount": "{{steps}} korakov", "stepsCount_other": "{{steps}} korakov", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_two": "{{steps}} koraka", + "stepsCount_few": "{{steps}} koraki" }, "prBadge": { "open": "odprt pull request", @@ -2373,7 +2436,7 @@ "connectedCli": "Na povezanem CLI", "newSessionOn": "Nova seja na {{name}}", "noMatchingSessions": "Ni ujemajočih sej.", - "onlyFirstFilesAttached": "Priloženih bo samo prvih {{count}} datotek.", + "onlyFirstFilesAttached": "Priloženih bo samo prvih {{displayCount}} datotek.", "staleMessage": "Ta deljeni vnos ni več na voljo.", "retryableMessage": "Tvojih sej ni bilo mogoče naložiti.", "emptyMessage": "Še ni sej — začni novo za pošiljanje tega.", @@ -2406,7 +2469,7 @@ "otherAccountCopy": "Kilo Pass na tem Apple računu pripada drugemu Kilo računu. Prijavi se v ta Kilo račun, da ga upravljaš.", "alreadySubscribed": "Že imaš naročnino Kilo Passa.", "purchaseUnavailable": "Nakup Kilo Passa trenutno ni na voljo.", - "tierCredits": "${{amount}} kreditov", + "tierCredits": "{{amount}} kreditov", "perMonth": "{{price}}/mes", "verifyPurchaseFailed": "Nakupa ni bilo mogoče potrditi. Preveri svojo povezavo in poskusi znova.", "productsCouldNotLoad": "Izdelkov Kilo Passa ni bilo mogoče naložiti iz App Store.", @@ -2417,7 +2480,7 @@ "manageFailed": "Upravljanja naročnin App Store ni bilo mogoče odpreti.", "kiloPassSetup": "Nastavitev Kilo Passa", "subscriptionHeaderDescription": "Mesečna naročnina, ki tvojemu Kilo stanju doda kredite za izvajanje sej kodiranja z umetno inteligenco v aplikaciji Kilo — oblačni agenti, oddaljene seje in KiloClaw klepeti.", - "tierDescription": "${{price}} plačanih kreditov, dodanih mesečno za uporabo aplikacije Kilo.", + "tierDescription": "{{price}} plačanih kreditov, dodanih mesečno za uporabo aplikacije Kilo.", "subscribe": "Naroči se", "subscribeDescription": "Mesečni krediti z bonus napredkom", "manage": "Upravljaj", @@ -2425,7 +2488,7 @@ "statusPending": "Kilo Pass čaka", "statusCanceling": "Kilo Pass se preklicuje", "statusPastDue": "Kilo Pass zamujen", - "monthlyCredits": "${{credits}} mesečnih kreditov", + "monthlyCredits": "{{credits}} mesečnih kreditov", "ends": "Konča se {{date}}", "periodEnd": "konec obdobja", "managedOnGooglePlay": "Upravlja se v Google Play", @@ -2667,7 +2730,9 @@ "processingNeedsReview": "Obdelava potrebuje pregled", "retry": "Ponovni poskus", "retryHint": "Ponovno poskusi naložiti stanje Kilo Passa.", - "setupHint": "Odpre nastavitev Kilo Passa na spletu." + "setupHint": "Odpre nastavitev Kilo Passa na spletu.", + "paidSeat_two": "{{displayCount}} plačana sedeža", + "paidSeat_few": "{{displayCount}} plačani sedeži" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index 60e10271fb..8213c33cfd 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -206,11 +206,11 @@ "loadingLines": "Waxaa la soo qaadayaa {{loaded}} ee {{total}} xariiq…", "expandContext": "Balaadhi xaaladda", "expandMoreContext": "Balaadhi xaalad dheeri ah", - "expandLines": "Balaadhi {{count}} xariiq ({{start}}–{{end}})", - "expandMoreLines": "Balaadhi {{count}} xariiq oo dheeri ah ({{start}}–{{end}})", - "expandLinesOfContext": "Balaadhi {{count}} xariiq oo xaalad ah", + "expandLines": "Balaadhi {{displayCount}} xariiq ({{start}}–{{end}})", + "expandMoreLines": "Balaadhi {{displayCount}} xariiq oo dheeri ah ({{start}}–{{end}})", + "expandLinesOfContext": "Balaadhi {{displayCount}} xariiq oo xaalad ah", "expandAll": "Wax walba balaadhi", - "expandAllLines": "Balaadhi {{count}} xariiq oo dhan", + "expandAllLines": "Balaadhi {{displayCount}} xariiq oo dhan", "loadingMoreFiles": "Faylal dheeri ah waa la soo qaadayaa…", "retryLoadingNextPage": "Mar kale day soo qaadista bogga xiga", "failedToLoadMoreFiles": "Faylal dheeri ah lama soo qaadin — taabo si aad mar kale isku daydo", @@ -301,7 +301,7 @@ "closeReactions": "Xir falcelinta", "reactionsTitle": "Falcelinta", "addReaction": "Ku dar falcelin", - "reactionPill": "{{emoji}} falcelin, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} falcelin, {{displayCount}} {{countLabel}}", "reaction_one": "falcelin", "reaction": "falcelino", "reaction_other": "falcelino", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Ma jiraan dood-dib-u-eegis ama faallooyin wada hadal oo ku yaal pull request-kan.", "reviewFiles": "Dib u eeg faylasha", "quotedDiffSnippet": "Qayb diff ah oo la soo xigtay", - "moreLinesAbove": "… {{count}} xariiq oo dheeri ah korka", + "moreLinesAbove": "… {{displayCount}} xariiq oo dheeri ah korka", "termsAcceptRequired": "Waa inaad ogolaataa Shuruudaha Adeegga si aad wax u dajiso.", "termsOutdatedCopy": "Shuruudaha Adeeggu way beddelmeen. Dib u fur shaashaddan si aad u oggolaato nuqulka ugu cusub.", "termsCheckRetryCopy": "Shuruudaha Adeegga lama hubin karin. Hubi xiriirkaaga oo mar kale isku day." @@ -395,11 +395,11 @@ "retryChecks": "Mar kale day baarista", "viewOnGitHub": "Eeg PR gudaha GitHub", "noChecksReported": "Ma jiraan baaris la soo sheegay", - "passed": "{{count}} ayaa gudbay", - "failed": "{{count}} ayaa fashilmay", - "pending": "{{count}} waa sugaya", - "skipped": "{{count}} waa la dhaafay", - "checksCount": "{{count}} baaris", + "passed": "{{displayCount}} ayaa gudbay", + "failed": "{{displayCount}} ayaa fashilmay", + "pending": "{{displayCount}} waa sugaya", + "skipped": "{{displayCount}} waa la dhaafay", + "checksCount": "{{displayCount}} baaris", "checkDetails": "faahfaahinta baarista", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "faallo sugaysa", "pendingComment": "faallooyin sugaya", "pendingComment_other": "faallooyin sugaya", - "submitCountOfTotal": "Dir {{freshCount}} ee {{totalCount}} faallooyinka", + "submitCountOfTotal": "Dir {{displayFreshCount}} ee {{displayTotalCount}} faallooyinka", "submitReview": "Dir dib-u-eegista", - "partialPostedMessage": "Waxaa la diray {{freshCount}} faallo(yin). {{staleCount}} faallo(yin) ayaa tilmaamaya commit duug ah oo ku sii hadhay safkaaga." + "partialPostedMessage": "Waxaa la diray {{displayFreshCount}} faallo(yin). {{displayStaleCount}} faallo(yin) ayaa tilmaamaya commit duug ah oo ku sii hadhay safkaaga." }, "reconnectNotice": { "title": "Xiriirka GitHub wuu dhacay", @@ -580,7 +580,8 @@ "agents": "Wakiilada", "profile": "Koontada", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} oo {{total}} ah" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Dhowaan", "common": "Caadi ah", "reactWith": "Ku falceli {{reaction}}", - "accessibility": "{{emoji}} falcelin, {{count}}" + "accessibility": "{{emoji}} falcelin, {{displayCount}}" }, "composer": { "replyingTo": "Uga jawaabaya", @@ -650,7 +651,7 @@ "imageUnavailable": "Sawirka lama heli karo", "openFailed": "Lifaaqda lama furi karin. Hubi xiriirkaaga oo mar kale isku day.", "attachFailed": "Faylka lama lifaaqi karin", - "limit": "Waxaad ku lifaaqi kartaa ilaa {{count}} fayl.", + "limit": "Waxaad ku lifaaqi kartaa ilaa {{displayCount}} fayl.", "sizeRejection": "{{filename}} waxay ka weyn tahay xadka lifaaqa ee {{limit}}.", "unreadable": "{{filename}} lama aqrin karin.", "pastedImage": "sawirka la dhajiyay", @@ -722,6 +723,7 @@ "finalTermEnds": "Muddada ugu dambaysa way dhammaanaysaa", "afterFinalTerm": "Muddada ugu dambaysa ka dib", "remaining": "Harsan", + "lessThanOneDay": "In ka yar 1 maalin", "ends": "Way dhammaanaysaa", "expires": "Way dhici doontaa", "noActivePlan": "Ma jiro qorshe firfircoon", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "qiimahaaga bilaha ah ee Standard", "perMonth": "/bishii", "earlybirdAccessUntil": "Helista Earlybird ilaa {{date}}", - "earlybirdEnding": "Earlybird wuu dhammaanayaa: {{days}} maalmood ayaa harsan", + "earlybirdEnding": "Earlybird wuu dhammaanayaa: {{remaining}} maalmood ayaa harsan", "paymentPastDue": "Bixinta way gabi dhacday. Fadlan cusboonaysii habka bixinta.", "subscriptionCancels": "Rukunintu way joogsanaysaa {{date}}", - "trialDaysRemaining": "Tijaabo: {{days}} maalmood ayaa harsan", - "trialEndingSoon": "Tijaabadu way dhammaanaysaa: {{days}}" + "trialDaysRemaining": "Tijaabo: {{remaining}} maalmood ayaa harsan", + "trialEndingSoon": "Tijaabadu way dhammaanaysaa: {{remaining}}" }, "changelog": { "title": "Waa Maxay Cusub", @@ -996,7 +998,7 @@ "stalledTitle": "Wax baa istaagay", "stalledBody": "Waxaanu dhamaystirin kari weynay hagaajinta {{name}}. Mar kale isku day, ama email ku qor hi@kilo.ai haddii tani sii socoto.", "timeoutTitle": "Waxay qaadanaysaa wax ka badan inta la filayo", - "timeoutBody": "Hagaajinta {{name}} waxay qaadanaysaa wax ka badan caadiga (ka badan {{minutes}} daqiiqadood).", + "timeoutBody": "Hagaajinta {{name}} waxay qaadanaysaa wax ka badan caadiga (ka badan {{displayMinutes}} daqiiqadood).", "continueInBackground": "Ku sii soco asalka", "settingUp": "Waa la hagaajinayaa {{name}}", "finishingSetup": "Waa la dhamaystiraynaa hagaajinta", @@ -1287,7 +1289,7 @@ "mergeGate": "Iridda isku-dhafka", "repositories": "Kaydadka", "allRepositories": "Dhammaan kaydadka", - "nSelected": "{{count}} ayaa la doortay", + "nSelected": "{{displayCount}} ayaa la doortay", "reviewMemory": "Xusuusta dib-u-eegista", "proposedReviewMdGuidance": "Hagaha REVIEW.md ee la soo jeediyay" }, @@ -1391,14 +1393,14 @@ "analyzed": "La falanqeeyay", "exploitabilityReasoning": "Sababta faa'iidaysiga", "suggestedFix": "Hagaajin la soo jeediyay", - "whereFound": "Meel tan laga helay ({{count}})", + "whereFound": "Meel tan laga helay ({{displayCount}})", "fullReport": "Warbixin dhammaystiran oo la soo saaray", "unknown": "Lama garanayo", "yes": "Haa", "no": "Maya" }, "dashboard": { - "findingsCount": "{{count}} natiijooyin", + "findingsCount": "{{displayCount}} natiijooyin", "notMeasured": "Lama cabirin", "actFirst": "Marka hore wax ka qab", "slaPosture": "Heerka SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Qorshaha tallaabada kaydka", "noOpenFindings": "Ma jiraan natiijooyin furan oo u baahan feejignaan", "deadlineToday": "Waqtiga kama-dambaysta ah maanta la gaaray", - "daysOverdue": "{{count}} maalmood oo la dhaafay", + "daysOverdue": "{{displayCount}} maalmood oo la dhaafay", "withinDeadline": "Gudaha waqtiga kama-dambaysta ah", "criticalOverdue": "Muhiim oo la dhaafay", "highOverdue": "Sare oo la dhaafay", @@ -1435,6 +1437,27 @@ "syncQueued": "Isku-xidhka ayaa safan", "syncStatusUnavailable": "Heerka isku-xidhka lama heli karo" }, + "dashboardMetrics": { + "openFindings": "Natiijooyin furan", + "openFindingsDetail": "{{critical}} muhiim, {{high}} sare", + "confirmedExploitable": "Laga faa'iidaysan karo oo la xaqiijiyay", + "confirmedExploitableDetail": "Khatarta mashruuca waxaa xaqiijiyay falanqayn", + "needsReview": "U baahan dib-u-eegistaada", + "needsReviewDetail": "Go'aan aadanuhu uu u baahan yahay", + "analysisIncomplete": "Falanqayntu dhammaysan ma aha", + "analysisIncompleteDetail": "Khatarta mashruuca weli lama garanayo", + "slaCompliance": "U hoggaansanaanta SLA", + "notMeasured": "Lama cabirin", + "withinDeadlineDetail": "{{within}} oo ka mid ah {{total}} gudaha waqtiga kama-dambaysta ah", + "noDeadlineData": "Ma jiro natiijooyin leh waqti kama-dambays ah oo SLA ah", + "deadlinePassed": "Waqtiga kama-dambaysta ayaa dhaafay", + "deadlinePassedDetail": "{{critical}} muhiim, {{high}} sare", + "dueThisWeek": "Waa in la sameeyo toddobaadkan", + "dueThisWeekDetail": "{{exploitable}} laga faa'iidaysan karo oo la xaqiijiyay", + "noDeadline": "Ma jiro waqti kama-dambays ah", + "reviewSlaAssignment": "Dib u eeg qoondaynta SLA", + "allOpenFindingsTracked": "Dhammaan natiijooyinka furan waa la dabagalay" + }, "dismiss": { "title": "Isku xir natiijada", "submit": "Isku xir natiijada", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Falanqaynta {{mode}}", "automation": "Automation", "automationAllOff": "Dhammaan dan", - "automationCount": "{{count}} oo ka mid ah 3 ayaa shidan", + "automationCount": "{{displayCount}} oo ka mid ah 3 ayaa shidan", "notifications": "Ogeysiisyada", - "notificationsCount": "{{count}} oo ka mid ah 2 ayaa shidan", + "notificationsCount": "{{displayCount}} oo ka mid ah 2 ayaa shidan", "slaPolicy": "Siyaasadda SLA", "disabledNoManage": "Security Agent waa la damiyay. Kaliya mulkiilayaasha ururka iyo maamulayaasha bilingga ayaa shidi kara.", "disabledNoRepo": "Dooro ugu yaraan hal kayd ka hor intaadan shidin Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Fur codsiga jiidista{{number}}", "openDraftPullRequest": "Fur qabyada codsiga jiidista{{number}}", "progress": "Horumar", - "attemptHistory": "Taariikhda isku-dayga ({{count}})", + "attemptHistory": "Taariikhda isku-dayga ({{displayCount}})", "attemptNumber": "Isku-dayga #{{number}}", "startedBy": "Waxaa bilaabay", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "Akhri todos", "updateTodos": "Cusboonaysii todos", - "linesBadge": "{{count}} sadar", - "filesBadge": "{{count}} fayl", - "matchesBadge": "{{count}} u dhigma" + "linesBadge": "{{displayCount}} sadar", + "filesBadge": "{{displayCount}} fayl", + "matchesBadge": "{{displayCount}} u dhigma" }, "readToolMarkdown": { "linesTruncated": "sadarraada {{start}}–{{end}} (waa la gaabiyay)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Jawaabtan lama warbixin karo.", "reportAiResponseSubmitted": "Warbixintu waa la gudbiyay. Rasiidka {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Faahfaahintu ma heli karto", "textDisplay": "Muuqaalka qoraalka", @@ -1999,7 +2026,7 @@ "preparationComplete": "Diyaarintu way dhammaysantay", "preparationFailed": "Diyaarintu way fashilantay", "setupCommand": "Amarraada dejinta {{index}}", - "setupCommandOf": "Amarraada dejinta {{index}} ee {{count}}" + "setupCommandOf": "Amarraada dejinta {{index}} ee {{displayCount}}" }, "permissionCard": { "title": "Ogolaansho ayaa loo baahan yahay", @@ -2036,7 +2063,7 @@ "submissionFailed": "Gudbinta waa ku guuldarraystay. Fadlan mar kale isku day.", "questionAnnouncement": "Wakiilku wuxuu u baahan yahay waxaad gasho. Composer-ka waa hakad ah inta aad jawaabayso.", "permissionAnnouncement": "Wakiilku wuxuu u baahan yahay ogolaansho si uu u sii socdo. Composer-ka waa hakad ah inta aad go'aan qaadayso.", - "positionHint": "(1 ka mid ah {{count}})", + "positionHint": "(1 ka mid ah {{displayCount}})", "movedPastPrompt": "Wakiilku wuxuu dhaafay codkan. Kaadhadhkani wuu xidhmi doonaa marka kalfadhigu sii socdo.", "waitingForAnswer": "Wakiilku wuxuu sugayaa jawaabtaada. Inta su'aashani furan tahay, fariintaada wakiilka waa hakad ah.", "waitingForPermission": "Wakiilku wuxuu sugayaa ogolaansho. Inta codkani furan yahay, fariintaada wakiilka waa hakad ah." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kamara Xidhan", "cameraAccessMessage": "U oggolow kamarada gudaha Settings si aad sawir u qaaddo.", "couldNotOpenPhotoPicker": "Soo-bixiyaha sawirka lama furi karin. Dib u bilow Kilo oo mar kale isku day.", - "maxFilesAllowed": "Ugu badnaan {{count}} fayl ayaa la oggol yahay", + "maxFilesAllowed": "Ugu badnaan {{displayCount}} fayl ayaa la oggol yahay", "onlyAddingFiles": "Waxaa lagu darayaa {{accepted}} ka mid ah {{total}} fayl (ugu badnaan {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kharash {{cost}}", "costSuffix": ", kharash {{cost}}", "tokensWindowUnavailable": "Context {{used}} tokens, daaqaddu ma heli karto", - "tokensUsage": "Context {{used}} ka mid ah {{window}} tokens, {{percentage}}% waa la isticmaalay", + "tokensUsage": "Context {{used}} ka mid ah {{window}} tokens, {{percentage}} waa la isticmaalay", "title": "Isticmaalka context-ka", "used": "La isticmaalay", "remaining": "Haraaga", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Isticmaalku wuxuu muujinayaa jawaabtii ugu dambaysay ee kaaliyuhu dhammeeyay.", "tokenUsage": "Isticmaalka tokens-ka", "cacheRate": "Heerka cache-ka", - "modelsCount": "Models ({{count}})", + "modelsCount": "Models ({{displayCount}})", "tokenTotalsNote": "Wadarta tokens-ka waxay dabooshaa kalfadhigan oo keliya oo kama qaado tokens-ka subagent/kalfadhi-xubnaha.", "subagents": "Subagents", "subagentsDescription": "Kharashka hadhaaga ah ee kalfadhiyada xubnaha", @@ -2373,7 +2400,7 @@ "connectedCli": "CLI la xiriiriyay", "newSessionOn": "Kalfadhi cusub oo ku yaal {{name}}", "noMatchingSessions": "Ma jiro kalfadhiyo u dhigma.", - "onlyFirstFilesAttached": "Waxaa lagu lifaaqi doonaa oo keliya {{count}}-kii fayl ee ugu horreeyay.", + "onlyFirstFilesAttached": "Waxaa lagu lifaaqi doonaa oo keliya {{displayCount}}-kii fayl ee ugu horreeyay.", "staleMessage": "Wadaaggani ma dambeeyo heli karo.", "retryableMessage": "Kalfadhiyadaada lama soo dejin karin.", "emptyMessage": "Weli ma jiro kalfadhiyo — bilow mid cusub si aad tan u dirto.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass-ka ku yaal Xisaabtan Apple-ka ah waxaa leh koonto Kilo oo kale. Ku saxiix bax koontada Kilo-ga ah si aad u maamusho.", "alreadySubscribed": "Waxaad hore u haysatay isdiiwaangelin Kilo Pass.", "purchaseUnavailable": "Iibsashada Kilo Pass hadda ma heli karto.", - "tierCredits": "${{amount}} oo credits ah", + "tierCredits": "{{amount}} oo credits ah", "perMonth": "{{price}}/bishii", "verifyPurchaseFailed": "Iibsashadaada lama xaqiijin karin. Hubi xiriirkaaga oo mar kale isku day.", "productsCouldNotLoad": "Badeecadaha Kilo Pass lama soo dejin karin App Store-ka.", @@ -2417,7 +2444,7 @@ "manageFailed": "Maareynta isdiiwaangelinta App Store lama furi karin.", "kiloPassSetup": "Dejinta Kilo Pass", "subscriptionHeaderDescription": "Isdiiwaangelin bil ah oo ku darsa credits dheelitirkaaga Kilo si loogu shaqeeyo kalfadhiyada codeynta AI ee app-ka Kilo — Cloud Agents, kalfadhiyada fog, iyo sheekadaha KiloClaw.", - "tierDescription": "${{price}} oo credits ah oo la bixiyay bil kasta oo la isticmaalo app-ka Kilo.", + "tierDescription": "{{price}} oo credits ah oo la bixiyay bil kasta oo la isticmaalo app-ka Kilo.", "subscribe": "Isdiiwaangeli", "subscribeDescription": "Credits bil ah oo leh horumar dheeraad ah", "manage": "Maamul", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass waa la sugayaa", "statusCanceling": "Kilo Pass waa la joojinayaa", "statusPastDue": "Kilo Pass waa lagu hakaday", - "monthlyCredits": "${{credits}} credits bil ah", + "monthlyCredits": "{{credits}} credits bil ah", "ends": "Wuxuu dhamaadayaa {{date}}", "periodEnd": "dhamaadka muddada", "managedOnGooglePlay": "Waxaa lagu maamulaa Google Play", diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 0dda6fa0d2..23a5285585 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -206,11 +206,11 @@ "loadingLines": "Po ngarkohen {{loaded}} nga {{total}} rreshta…", "expandContext": "Zgjero kontekstin", "expandMoreContext": "Zgjero më shumë kontekst", - "expandLines": "Zgjero {{count}} rreshta ({{start}}–{{end}})", - "expandMoreLines": "Zgjero edhe {{count}} rreshta ({{start}}–{{end}})", - "expandLinesOfContext": "Zgjero {{count}} rreshta konteksti", + "expandLines": "Zgjero {{displayCount}} rreshta ({{start}}–{{end}})", + "expandMoreLines": "Zgjero edhe {{displayCount}} rreshta ({{start}}–{{end}})", + "expandLinesOfContext": "Zgjero {{displayCount}} rreshta konteksti", "expandAll": "Zgjero të gjitha", - "expandAllLines": "Zgjero të gjitha {{count}} rreshtat", + "expandAllLines": "Zgjero të gjitha {{displayCount}} rreshtat", "loadingMoreFiles": "Po ngarkohen më shumë skedarë…", "retryLoadingNextPage": "Riprovo ngarkimin e faqes tjetër", "failedToLoadMoreFiles": "Dështoi ngarkimi i më shumë skedarëve — prek për ta riprovuar", @@ -301,7 +301,7 @@ "closeReactions": "Mbyll reagimet", "reactionsTitle": "Reagimet", "addReaction": "Shto reagim", - "reactionPill": "{{emoji}} reagim, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reagim, {{displayCount}} {{countLabel}}", "reaction_one": "reagim", "reaction": "reagime", "reaction_other": "reagime", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Nuk ka fije rishikimi ose komente bisede në këtë kërkesë tërheqjeje.", "reviewFiles": "Rishiko skedarët", "quotedDiffSnippet": "Copëz dallimi e cituar", - "moreLinesAbove": "… {{count}} rreshta të tjerë më sipër", + "moreLinesAbove": "… {{displayCount}} rreshta të tjerë më sipër", "termsAcceptRequired": "Duhet të pranosh Kushtet e Shërbimit për të postuar.", "termsOutdatedCopy": "Kushtet e Shërbimit ndryshuan. Hape sërish këtë ekran për të pranuar versionin më të fundit.", "termsCheckRetryCopy": "Nuk u arrit të kontrolloheshin Kushtet e Shërbimit. Kontrollo lidhjen dhe provo përsëri." @@ -395,11 +395,11 @@ "retryChecks": "Riprovo kontrollet", "viewOnGitHub": "Shiko PR në GitHub", "noChecksReported": "Asnjë kontroll i raportuar", - "passed": "{{count}} kaluan", - "failed": "{{count}} dështuan", - "pending": "{{count}} në pritje", - "skipped": "{{count}} u anashkaluan", - "checksCount": "{{count}} kontrolle", + "passed": "{{displayCount}} kaluan", + "failed": "{{displayCount}} dështuan", + "pending": "{{displayCount}} në pritje", + "skipped": "{{displayCount}} u anashkaluan", + "checksCount": "{{displayCount}} kontrolle", "checkDetails": "detajet e kontrollit", "pullRequest": "kërkesa e tërheqjes" }, @@ -459,9 +459,9 @@ "pendingComment_one": "koment në pritje", "pendingComment": "komente në pritje", "pendingComment_other": "komente në pritje", - "submitCountOfTotal": "Dërgo {{freshCount}} nga {{totalCount}} komente", + "submitCountOfTotal": "Dërgo {{displayFreshCount}} nga {{displayTotalCount}} komente", "submitReview": "Dërgo rishikimin", - "partialPostedMessage": "U postuan {{freshCount}} koment(e). {{staleCount}} koment(e) tregojnë te një commit më i vjetër dhe mbetën në radhën tënde." + "partialPostedMessage": "U postuan {{displayFreshCount}} koment(e). {{displayStaleCount}} koment(e) tregojnë te një commit më i vjetër dhe mbetën në radhën tënde." }, "reconnectNotice": { "title": "Lidhja me GitHub skadoi", @@ -580,7 +580,8 @@ "agents": "Agjentët", "profile": "Profili", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, skedë, {{position}} nga {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Të fundit", "common": "Të zakonshme", "reactWith": "Reago me {{reaction}}", - "accessibility": "{{emoji}} reagim, {{count}}" + "accessibility": "{{emoji}} reagim, {{displayCount}}" }, "composer": { "replyingTo": "Po i përgjigjesh", @@ -650,7 +651,7 @@ "imageUnavailable": "Imazhi i padisponueshëm", "openFailed": "Nuk u arrit të hapej bashkangjitja. Kontrollo lidhjen dhe provo përsëri.", "attachFailed": "Dështoi bashkangjitja e skedarit", - "limit": "Mund të bashkangjitësh deri në {{count}} skedarë.", + "limit": "Mund të bashkangjitësh deri në {{displayCount}} skedarë.", "sizeRejection": "{{filename}} e kalon kufirin e bashkangjitjes prej {{limit}}.", "unreadable": "Nuk u arrit të lexohej {{filename}}.", "pastedImage": "imazhi i ngjitur", @@ -722,6 +723,7 @@ "finalTermEnds": "Afati përfundimtar përfundon", "afterFinalTerm": "Pas afatit përfundimtar", "remaining": "Mbetur", + "lessThanOneDay": "Më pak se 1 ditë", "ends": "Përfundon", "expires": "Skadon", "noActivePlan": "Asnjë plan aktiv", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "çmimi yt standard mujor", "perMonth": "/muaj", "earlybirdAccessUntil": "Qasja e hershme deri më {{date}}", - "earlybirdEnding": "Herët përfundimi: {{days}} ditë të mbetura", + "earlybirdEnding": "Herët përfundimi: {{remaining}} ditë të mbetura", "paymentPastDue": "Pagesa është vonuar. Përditëso metodën tënde të pagesës.", "subscriptionCancels": "Abonimi anulohet më {{date}}", - "trialDaysRemaining": "Prova: {{days}} ditë të mbetura", - "trialEndingSoon": "Prova po mbaron së shpejti: {{days}}" + "trialDaysRemaining": "Prova: {{remaining}} ditë të mbetura", + "trialEndingSoon": "Prova po mbaron së shpejti: {{remaining}}" }, "changelog": { "title": "Çfarë ka të re", @@ -996,7 +998,7 @@ "stalledTitle": "Diçka u bllokua", "stalledBody": "Nuk arritëm të përfundonim konfigurimin e {{name}}. Provo përsëri, ose dërgo email te hi@kilo.ai nëse kjo vazhdon të ndodhë.", "timeoutTitle": "Duke zgjatur më shumë se sa pritej", - "timeoutBody": "Konfigurimi i {{name}} po zgjat më shumë se zakonisht (mbi {{minutes}} minuta).", + "timeoutBody": "Konfigurimi i {{name}} po zgjat më shumë se zakonisht (mbi {{displayMinutes}} minuta).", "continueInBackground": "Vazhdo në sfond", "settingUp": "Duke konfiguruar {{name}}", "finishingSetup": "Duke përfunduar konfigurimin", @@ -1287,7 +1289,7 @@ "mergeGate": "Porta e bashkimit", "repositories": "Depot", "allRepositories": "Të gjitha depot", - "nSelected": "{{count}} të zgjedhura", + "nSelected": "{{displayCount}} të zgjedhura", "reviewMemory": "Kujtesa e shqyrtimit", "proposedReviewMdGuidance": "Udhëzimi i propozuar i REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "I analizuar", "exploitabilityReasoning": "Arsyetimi i shfrytëzueshmërisë", "suggestedFix": "Zgjidhja e sugjeruar", - "whereFound": "Ku u gjet ({{count}})", + "whereFound": "Ku u gjet ({{displayCount}})", "fullReport": "Raporti i plotë i gjeneruar", "unknown": "E panjohur", "yes": "Po", "no": "Jo" }, "dashboard": { - "findingsCount": "{{count}} gjetje", + "findingsCount": "{{displayCount}} gjetje", "notMeasured": "E pamatur", "actFirst": "Vepro së pari", "slaPosture": "Qëndrimi i SLA-së", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Plani i veprimit për depon", "noOpenFindings": "Asnjë gjetje e hapur nuk ka nevojë për vëmendje", "deadlineToday": "Afati u arrit sot", - "daysOverdue": "{{count}} ditë me vonesë", + "daysOverdue": "{{displayCount}} ditë me vonesë", "withinDeadline": "Brenda afatit", "criticalOverdue": "Kritike me vonesë", "highOverdue": "E lartë me vonesë", @@ -1435,6 +1437,27 @@ "syncQueued": "Sinkronizimi në radhë", "syncStatusUnavailable": "Statusi i sinkronizimit i padisponueshëm" }, + "dashboardMetrics": { + "openFindings": "Gjetje të hapura", + "openFindingsDetail": "{{critical}} kritike, {{high}} të larta", + "confirmedExploitable": "E konfirmuar e shfrytëzueshme", + "confirmedExploitableDetail": "Rreziku i projektit u konfirmua nga analiza", + "needsReview": "Ka nevojë për shqyrtimin tuaj", + "needsReviewDetail": "Kërkohet vendim njerëzor", + "analysisIncomplete": "Analiza e papërfunduar", + "analysisIncompleteDetail": "Rreziku i projektit është ende i panjohur", + "slaCompliance": "Përputhja me SLA", + "notMeasured": "E pamatur", + "withinDeadlineDetail": "{{within}} nga {{total}} brenda afatit", + "noDeadlineData": "Asnjë gjetje nuk ka ende afat SLA", + "deadlinePassed": "Afati kaloi", + "deadlinePassedDetail": "{{critical}} kritike, {{high}} të larta", + "dueThisWeek": "Afati këtë javë", + "dueThisWeekDetail": "{{exploitable}} të konfirmuara të shfrytëzueshme", + "noDeadline": "Pa afat", + "reviewSlaAssignment": "Shqyrto caktimin e SLA-së", + "allOpenFindingsTracked": "Të gjitha gjetjet e hapura gjurmohen" + }, "dismiss": { "title": "Hidhni poshtë gjetjen", "submit": "Hidhni poshtë gjetjen", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Analiza {{mode}}", "automation": "Automatizimi", "automationAllOff": "Të gjitha të çaktivizuara", - "automationCount": "{{count}} nga 3 të aktivizuara", + "automationCount": "{{displayCount}} nga 3 të aktivizuara", "notifications": "Njoftimet", - "notificationsCount": "{{count}} nga 2 të aktivizuara", + "notificationsCount": "{{displayCount}} nga 2 të aktivizuara", "slaPolicy": "Politika e SLA-së", "disabledNoManage": "Security Agent është i çaktivizuar. Vetëm pronarët e organizatës dhe menaxherët e faturimit mund ta aktivizojnë.", "disabledNoRepo": "Zgjidhni të paktën një depo përpara se të aktivizoni Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Hap kërkesën për tërheqje{{number}}", "openDraftPullRequest": "Hap draftin e kërkesës për tërheqje{{number}}", "progress": "Ecuria", - "attemptHistory": "Historia e përpjekjeve ({{count}})", + "attemptHistory": "Historia e përpjekjeve ({{displayCount}})", "attemptNumber": "Përpjekja #{{number}}", "startedBy": "Filluar nga", "model": "Modeli", @@ -1855,9 +1878,9 @@ "toolTask": "detyrë", "readTodos": "Lexo listat e detyrave", "updateTodos": "Përditëso listat e detyrave", - "linesBadge": "{{count}} rreshta", - "filesBadge": "{{count}} skedarë", - "matchesBadge": "{{count}} përputhje" + "linesBadge": "{{displayCount}} rreshta", + "filesBadge": "{{displayCount}} skedarë", + "matchesBadge": "{{displayCount}} përputhje" }, "readToolMarkdown": { "linesTruncated": "rreshta {{start}}–{{end}} (të shkurtuar)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Kjo përgjigje nuk mund të raportohet.", "reportAiResponseSubmitted": "Raporti u dërgua. Faturimi {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detajet e padisponueshme", "textDisplay": "Shfaqja e tekstit", @@ -1999,7 +2026,7 @@ "preparationComplete": "Përgatitja e përfunduar", "preparationFailed": "Përgatitja dështoi", "setupCommand": "Komanda e konfigurimit {{index}}", - "setupCommandOf": "Komanda e konfigurimit {{index}} nga {{count}}" + "setupCommandOf": "Komanda e konfigurimit {{index}} nga {{displayCount}}" }, "permissionCard": { "title": "Kërkohet leje", @@ -2036,7 +2063,7 @@ "submissionFailed": "Dërgimi dështoi. Ju lutemi provoni përsëri.", "questionAnnouncement": "Agjenti ka nevojë për informacionin tuaj. Redaktori është i ndërprerë ndërsa ju përgjigjeni.", "permissionAnnouncement": "Agjenti ka nevojë për leje për të vazhduar. Redaktori është i ndërprerë ndërsa ju vendosni.", - "positionHint": "(1 nga {{count}})", + "positionHint": "(1 nga {{displayCount}})", "movedPastPrompt": "Agjenti ka kaluar përtej kësaj kërkese. Kjo kartë do të mbyllet kur seanca të vazhdojë.", "waitingForAnswer": "Agjenti po pret përgjigjen tuaj. Ndërsa kjo pyetje është e hapur, mesazhi juaj te agjenti është i ndërprerë.", "waitingForPermission": "Agjenti po pret lejen. Ndërsa kjo kërkesë është e hapur, mesazhi juaj te agjenti është i ndërprerë." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Aksesi në kamerë i çaktivizuar", "cameraAccessMessage": "Lejoni aksesin në kamerë te Cilësimet për të bërë një foto.", "couldNotOpenPhotoPicker": "Zgjedhësi i fotove nuk mund të hapej. Rinisni Kilo dhe provoni përsëri.", - "maxFilesAllowed": "Maksimumi {{count}} skedarë të lejuar", + "maxFilesAllowed": "Maksimumi {{displayCount}} skedarë të lejuar", "onlyAddingFiles": "Duke shtuar vetëm {{accepted}} nga {{total}} skedarët (maksimumi {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kostoja {{cost}}", "costSuffix": ", kostoja {{cost}}", "tokensWindowUnavailable": "Konteksti {{used}} tokenë, dritarja e padisponueshme", - "tokensUsage": "Konteksti {{used}} nga {{window}} tokenët, {{percentage}}% i përdorur", + "tokensUsage": "Konteksti {{used}} nga {{window}} tokenët, {{percentage}} i përdorur", "title": "Përdorimi i kontekstit", "used": "I përdorur", "remaining": "I mbetur", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Përdorimi pasqyron përgjigjen më të fundit të përfunduar të asistentit.", "tokenUsage": "Përdorimi i tokenëve", "cacheRate": "Shkalla e cache", - "modelsCount": "Modelet ({{count}})", + "modelsCount": "Modelet ({{displayCount}})", "tokenTotalsNote": "Totalet e tokenëve mbulojnë vetëm këtë seancë dhe përjashtojnë tokenët e nënagjentëve/seancave fëmijë.", "subagents": "Nënagjentët", "subagentsDescription": "Kostoja e mbetur nga seancat fëmijë", @@ -2373,7 +2400,7 @@ "connectedCli": "Në një CLI të lidhur", "newSessionOn": "Seancë e re në {{name}}", "noMatchingSessions": "Nuk ka seanca përputhëse.", - "onlyFirstFilesAttached": "Vetëm {{count}} skedarët e parë do të bashkëngjiten.", + "onlyFirstFilesAttached": "Vetëm {{displayCount}} skedarët e parë do të bashkëngjiten.", "staleMessage": "Kjo ndarje nuk është më e disponueshme.", "retryableMessage": "Seancat tuaja nuk u ngarkuan.", "emptyMessage": "Ende nuk ka seanca — filloni një të re për ta dërguar këtë.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass në këtë Apple Account i përket një llogarie tjetër Kilo. Hyni në atë llogari Kilo për ta menaxhuar.", "alreadySubscribed": "Ju tashmë keni një abonim Kilo Pass.", "purchaseUnavailable": "Blerja e Kilo Pass nuk është e disponueshme tani.", - "tierCredits": "${{amount}} në kredite", + "tierCredits": "{{amount}} në kredite", "perMonth": "{{price}}/muaj", "verifyPurchaseFailed": "Blerja juaj nuk mund të verifikohej. Kontrolloni lidhjen tuaj dhe provoni përsëri.", "productsCouldNotLoad": "Produktet Kilo Pass nuk mund të ngarkoheshin nga App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Menaxhimi i abonimit në App Store nuk u hap.", "kiloPassSetup": "Konfigurimi i Kilo Pass", "subscriptionHeaderDescription": "Një abonim mujor që shton kredite në bilancin tuaj Kilo për të drejtuar seanca kodimi me AI në Kilo App — Cloud Agents, seanca në distancë dhe biseda KiloClaw.", - "tierDescription": "Kredite të paguara prej ${{price}} të shtuara çdo muaj për përdorimin e Kilo App.", + "tierDescription": "Kredite të paguara prej {{price}} të shtuara çdo muaj për përdorimin e Kilo App.", "subscribe": "Abonohu", "subscribeDescription": "Kredite mujore me progres bonus", "manage": "Menaxho", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass në pritje", "statusCanceling": "Kilo Pass duke u anuluar", "statusPastDue": "Kilo Pass me afat të kaluar", - "monthlyCredits": "${{credits}} kredite mujore", + "monthlyCredits": "{{credits}} kredite mujore", "ends": "Përfundon {{date}}", "periodEnd": "fundi i periudhës", "managedOnGooglePlay": "I menaxhuar në Google Play", diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index d97f762b38..2dc2eb050d 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -206,11 +206,11 @@ "loadingLines": "Učitavanje {{loaded}} od {{total}} linija…", "expandContext": "Proširi kontekst", "expandMoreContext": "Proširi više konteksta", - "expandLines": "Proširi {{count}} linija ({{start}}–{{end}})", - "expandMoreLines": "Proširi još {{count}} linija ({{start}}–{{end}})", - "expandLinesOfContext": "Proširi {{count}} linija konteksta", + "expandLines": "Proširi {{displayCount}} linija ({{start}}–{{end}})", + "expandMoreLines": "Proširi još {{displayCount}} linija ({{start}}–{{end}})", + "expandLinesOfContext": "Proširi {{displayCount}} linija konteksta", "expandAll": "Proširi sve", - "expandAllLines": "Proširi svih {{count}} linija", + "expandAllLines": "Proširi svih {{displayCount}} linija", "loadingMoreFiles": "Učitavanje još datoteka…", "retryLoadingNextPage": "Pokušaj ponovo učitavanje sledeće stranice", "failedToLoadMoreFiles": "Nije moguće učitati još datoteka — dodirnite da pokušate ponovo", @@ -227,7 +227,9 @@ "fileLoadedOfTotalCount_other": "{{displayCount}} datoteka učitano od {{total}}", "filesStillLoading": "Datoteke se još učitavaju. Prevucite da osvežite.", "goToOverview": "Idi na Pregled", - "goToOverviewTab": "Idi na karticu Pregled" + "goToOverviewTab": "Idi na karticu Pregled", + "fileLoadedCount_few": "{{displayCount}} datoteke učitane", + "fileLoadedOfTotalCount_few": "{{displayCount}} datoteke učitane od {{total}}" }, "sideBySide": { "noNewlineAtEndOfFile": "⚠️ nema novog reda na kraju datoteke", @@ -301,7 +303,7 @@ "closeReactions": "Zatvori reakcije", "reactionsTitle": "Reakcije", "addReaction": "Dodaj reakciju", - "reactionPill": "{{emoji}} reakcija, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reakcija, {{displayCount}} {{countLabel}}", "reaction_one": "reakcija", "reaction": "reakcije", "reaction_other": "reakcije", @@ -353,10 +355,12 @@ "noDiscussionDescription": "Nema preglednih niti niti komentara u razgovoru na ovom pull request-u.", "reviewFiles": "Pregledaj datoteke", "quotedDiffSnippet": "Citiran diff isečak", - "moreLinesAbove": "… {{count}} više linija iznad", + "moreLinesAbove": "… {{displayCount}} više linija iznad", "termsAcceptRequired": "Morate prihvatiti Uslove korišćenja da biste objavili.", "termsOutdatedCopy": "Uslovi korišćenja su se promenili. Ponovo otvorite ovaj ekran da prihvatite najnoviju verziju.", - "termsCheckRetryCopy": "Nije moguće proveriti Uslove korišćenja. Proverite vezu i pokušajte ponovo." + "termsCheckRetryCopy": "Nije moguće proveriti Uslove korišćenja. Proverite vezu i pokušajte ponovo.", + "comment_few": "{{displayCount}} komentara", + "reaction_few": "reakcije" }, "couldNotOpenGitHubAppSettings": "Nije moguće otvoriti podešavanja GitHub aplikacije", "installKiloGitHubApp": "Instalirajte Kilo GitHub aplikaciju", @@ -395,11 +399,11 @@ "retryChecks": "Pokušaj ponovo provere", "viewOnGitHub": "Pogledaj PR na GitHub", "noChecksReported": "Nema prijavljenih provera", - "passed": "{{count}} prošlo", - "failed": "{{count}} neuspešno", - "pending": "{{count}} na čekanju", - "skipped": "{{count}} preskočeno", - "checksCount": "{{count}} provera", + "passed": "{{displayCount}} prošlo", + "failed": "{{displayCount}} neuspešno", + "pending": "{{displayCount}} na čekanju", + "skipped": "{{displayCount}} preskočeno", + "checksCount": "{{displayCount}} provera", "checkDetails": "detalji provere", "pullRequest": "pull request" }, @@ -459,9 +463,10 @@ "pendingComment_one": "čekajući komentar", "pendingComment": "čekajući komentari", "pendingComment_other": "čekajući komentari", - "submitCountOfTotal": "Pošalji {{freshCount}} od {{totalCount}} komentara", + "submitCountOfTotal": "Pošalji {{displayFreshCount}} od {{displayTotalCount}} komentara", "submitReview": "Pošalji pregled", - "partialPostedMessage": "Poslato {{freshCount}} komentar(a). {{staleCount}} komentar(a) se odnose na stariji commit i ostala su u vašem redu." + "partialPostedMessage": "Poslato {{displayFreshCount}} komentar(a). {{displayStaleCount}} komentar(a) se odnose na stariji commit i ostala su u vašem redu.", + "pendingComment_few": "čekajuća komentara" }, "reconnectNotice": { "title": "GitHub veza je istekla", @@ -488,7 +493,9 @@ "commit_other": "commit-ovi", "file_one": "datoteka", "file": "datoteke", - "file_other": "datoteke" + "file_other": "datoteke", + "commit_few": "commita", + "file_few": "datoteke" }, "pendingComment": { "editOutdatedA11y": "Izmeni zastareli čekajući komentar na {{location}}", @@ -580,7 +587,8 @@ "agents": "Agenti", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, kartica, {{position}} od {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +629,7 @@ "recent": "Skorašnje", "common": "Uobičajeno", "reactWith": "Reaguj sa {{reaction}}", - "accessibility": "{{emoji}} reakcija, {{count}}" + "accessibility": "{{emoji}} reakcija, {{displayCount}}" }, "composer": { "replyingTo": "Odgovaranje na", @@ -650,7 +658,7 @@ "imageUnavailable": "Slika nije dostupna", "openFailed": "Nije moguće otvoriti prilog. Proverite vezu i pokušajte ponovo.", "attachFailed": "Nije moguće priložiti datoteku", - "limit": "Možete priložiti do {{count}} datoteka.", + "limit": "Možete priložiti do {{displayCount}} datoteka.", "sizeRejection": "{{filename}} premašuje ograničenje priloga od {{limit}}.", "unreadable": "Nije moguće pročitati {{filename}}.", "pastedImage": "nalepljena slika", @@ -700,7 +708,8 @@ "someone": "Neko", "typing_one": "{{name}} kuca...", "typing": "{{names}} kucaju...", - "typing_other": "{{names}} kucaju..." + "typing_other": "{{names}} kucaju...", + "typing_few": "{{names}} kucaju..." }, "botStatus": { "online": "Na mreži", @@ -722,6 +731,7 @@ "finalTermEnds": "Konačni rok se završava", "afterFinalTerm": "Posle konačnog roka", "remaining": "Preostalo", + "lessThanOneDay": "Manje od 1 dana", "ends": "Završava se", "expires": "Ističe", "noActivePlan": "Nema aktivnog plana", @@ -740,11 +750,11 @@ "yourStandardMonthlyPrice": "tvoja Standard mesečna cena", "perMonth": "/mesečno", "earlybirdAccessUntil": "Pristup rane ptice do {{date}}", - "earlybirdEnding": "Rana ptica se završava: preostalo {{days}} dana", + "earlybirdEnding": "Rana ptica se završava: preostalo {{remaining}} dana", "paymentPastDue": "Plaćanje kasni. Ažuriraj svoj metod plaćanja.", "subscriptionCancels": "Pretplata se otkazuje {{date}}", - "trialDaysRemaining": "Probno razdoblje: preostalo {{days}} dana", - "trialEndingSoon": "Probno razdoblje se uskoro završava: {{days}}" + "trialDaysRemaining": "Probno razdoblje: preostalo {{remaining}} dana", + "trialEndingSoon": "Probno razdoblje se uskoro završava: {{remaining}}" }, "changelog": { "title": "Šta je novo", @@ -996,7 +1006,7 @@ "stalledTitle": "Nešto se zaglavilo", "stalledBody": "Nismo mogli da završimo podešavanje za {{name}}. Pokušaj ponovo, ili piši na hi@kilo.ai ako se ovo nastavi.", "timeoutTitle": "Traje duže nego što se očekivalo", - "timeoutBody": "Podešavanje za {{name}} traje duže nego obično (preko {{minutes}} minuta).", + "timeoutBody": "Podešavanje za {{name}} traje duže nego obično (preko {{displayMinutes}} minuta).", "continueInBackground": "Nastavi u pozadini", "settingUp": "Podešavanje {{name}}", "finishingSetup": "Završavanje podešavanja", @@ -1071,7 +1081,8 @@ "openUnread_other": "Otvori {{name}}, {{displayCount}} nepročitanih poruka", "open": "Otvori {{name}}", "openSettings": "Otvori podešavanja za {{name}}", - "fixOnKiloAi": "Reši na kilo.ai: {{label}}" + "fixOnKiloAi": "Reši na kilo.ai: {{label}}", + "openUnread_few": "Otvori {{name}}, {{displayCount}} nepročitane poruke" }, "settings": { "channelsDescription": "Telegram, Discord, Slack", @@ -1287,7 +1298,7 @@ "mergeGate": "Prag za spajanje", "repositories": "Repozitorijumi", "allRepositories": "Svi repozitorijumi", - "nSelected": "{{count}} izabrano", + "nSelected": "{{displayCount}} izabrano", "reviewMemory": "Memorija pregleda", "proposedReviewMdGuidance": "Predložene REVIEW.md smernice" }, @@ -1367,7 +1378,8 @@ "severityAll": "Svi nivoi ozbiljnosti", "confidenceHighOnly": "Samo visoka pouzdanost", "confidenceMediumOrHigher": "Srednja ili viša", - "confidenceAny": "Bilo koja pouzdanost" + "confidenceAny": "Bilo koja pouzdanost", + "queued_few": "{{displayCount}} postojeća nalaza su u redu za analizu." }, "analysis": { "couldNotLoad": "Analiza se ne može učitati", @@ -1391,14 +1403,14 @@ "analyzed": "Analizirano", "exploitabilityReasoning": "Obrazloženje iskoristivosti", "suggestedFix": "Predložena ispravka", - "whereFound": "Gde je ovo pronađeno ({{count}})", + "whereFound": "Gde je ovo pronađeno ({{displayCount}})", "fullReport": "Kompletan generisani izveštaj", "unknown": "Nepoznato", "yes": "Da", "no": "Ne" }, "dashboard": { - "findingsCount": "{{count}} nalaza", + "findingsCount": "{{displayCount}} nalaza", "notMeasured": "Nije izmereno", "actFirst": "Prvo deluj", "slaPosture": "Položaj SLA", @@ -1407,7 +1419,7 @@ "repositoryActionPlan": "Plan akcija za repozitorijum", "noOpenFindings": "Nema otvorenih nalaza kojima je potrebna pažnja", "deadlineToday": "Rok je dostignut danas", - "daysOverdue": "{{count}} dana preko roka", + "daysOverdue": "{{displayCount}} dana preko roka", "withinDeadline": "U roku", "criticalOverdue": "Kritično preko roka", "highOverdue": "Visoko preko roka", @@ -1435,6 +1447,27 @@ "syncQueued": "Sinhronizacija je u redu", "syncStatusUnavailable": "Status sinhronizacije nije dostupan" }, + "dashboardMetrics": { + "openFindings": "Otvoreni nalazi", + "openFindingsDetail": "{{critical}} kritičnih, {{high}} visokih", + "confirmedExploitable": "Potvrđeno iskoristivo", + "confirmedExploitableDetail": "Rizik projekta potvrđen analizom", + "needsReview": "Zahteva tvoj pregled", + "needsReviewDetail": "Potrebna ljudska odluka", + "analysisIncomplete": "Analiza nije završena", + "analysisIncompleteDetail": "Rizik projekta je još uvek nepoznat", + "slaCompliance": "Usaglašenost sa SLA", + "notMeasured": "Nije izmereno", + "withinDeadlineDetail": "{{within}} od {{total}} u roku", + "noDeadlineData": "Nijedan nalaz još nema SLA rok", + "deadlinePassed": "Rok je prošao", + "deadlinePassedDetail": "{{critical}} kritičnih, {{high}} visokih", + "dueThisWeek": "Dospelo ove nedelje", + "dueThisWeekDetail": "{{exploitable}} potvrđeno iskoristivih", + "noDeadline": "Bez roka", + "reviewSlaAssignment": "Pregledaj dodelu SLA", + "allOpenFindingsTracked": "Prate se svi otvoreni nalazi" + }, "dismiss": { "title": "Odbaci nalaz", "submit": "Odbaci nalaz", @@ -1500,13 +1533,14 @@ "analysisModeSubtitle": "{{mode}} analiza", "automation": "Automatizacija", "automationAllOff": "Sve isključeno", - "automationCount": "{{count}} od 3 omogućeno", + "automationCount": "{{displayCount}} od 3 omogućeno", "notifications": "Obaveštenja", - "notificationsCount": "{{count}} od 2 omogućeno", + "notificationsCount": "{{displayCount}} od 2 omogućeno", "slaPolicy": "SLA politika", "disabledNoManage": "Security Agent je onemogućen. Samo vlasnici organizacije i menadžeri naplate mogu da ga uključe.", "disabledNoRepo": "Izaberi bar jedan repozitorijum pre omogućavanja Security Agent-a.", - "disabledPrompt": "Uključi Security Agent da sinhronizuješ Dependabot upozorenja, izabereš repozitorijume i konfigurišeš automatizaciju." + "disabledPrompt": "Uključi Security Agent da sinhronizuješ Dependabot upozorenja, izabereš repozitorijume i konfigurišeš automatizaciju.", + "repositoriesCount_few": "{{displayCount}} repozitorijuma su izabrana" }, "remediation": { "cancellationRequested": "Otkazivanje je zatraženo", @@ -1524,7 +1558,7 @@ "openPullRequest": "Otvori pull request{{number}}", "openDraftPullRequest": "Otvori nacrt pull request-a{{number}}", "progress": "Napredak", - "attemptHistory": "Istorija pokušaja ({{count}})", + "attemptHistory": "Istorija pokušaja ({{displayCount}})", "attemptNumber": "Pokušaj #{{number}}", "startedBy": "Pokrenuo", "model": "Model", @@ -1734,7 +1768,9 @@ "cent_other": "centi", "dollar_one": "dolar", "dollar": "dolara", - "dollar_other": "dolara" + "dollar_other": "dolara", + "cent_few": "centa", + "dollar_few": "dolara" }, "githubInstall": { "couldNotOpenTitle": "GitHub se ne može otvoriti", @@ -1830,7 +1866,8 @@ "partRenderer": { "updatedFileCount_one": "Ažuriran {{displayCount}} fajl", "updatedFileCount": "Ažurirano {{displayCount}} fajlova", - "updatedFileCount_other": "Ažurirano {{displayCount}} fajlova" + "updatedFileCount_other": "Ažurirano {{displayCount}} fajlova", + "updatedFileCount_few": "Ažurirana {{displayCount}} fajla" }, "toolPatch": { "operationAdded": "Dodato", @@ -1855,9 +1892,9 @@ "toolTask": "zadatak", "readTodos": "Pročitaj zadatke", "updateTodos": "Ažuriraj zadatke", - "linesBadge": "{{count}} linija", - "filesBadge": "{{count}} fajlova", - "matchesBadge": "{{count}} podudaranja" + "linesBadge": "{{displayCount}} linija", + "filesBadge": "{{displayCount}} fajlova", + "matchesBadge": "{{displayCount}} podudaranja" }, "readToolMarkdown": { "linesTruncated": "linije {{start}}–{{end}} (skraćeno)", @@ -1941,6 +1978,10 @@ "reportAiResponseFailedTerminal": "Ovaj odgovor se ne može prijaviti.", "reportAiResponseSubmitted": "Prijava je poslata. Potvrda {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detalji nisu dostupni", "textDisplay": "Prikaz teksta", @@ -1999,7 +2040,7 @@ "preparationComplete": "Priprema je završena", "preparationFailed": "Priprema nije uspela", "setupCommand": "Komanda podešavanja {{index}}", - "setupCommandOf": "Komanda podešavanja {{index}} od {{count}}" + "setupCommandOf": "Komanda podešavanja {{index}} od {{displayCount}}" }, "permissionCard": { "title": "Potrebna je dozvola", @@ -2036,7 +2077,7 @@ "submissionFailed": "Slanje nije uspelo. Pokušajte ponovo.", "questionAnnouncement": "Agentu je potreban vaš unos. Kompozitor je pauziran dok odgovarate.", "permissionAnnouncement": "Agentu je potrebna dozvola da nastavi. Kompozitor je pauziran dok odlučujete.", - "positionHint": "(1 od {{count}})", + "positionHint": "(1 od {{displayCount}})", "movedPastPrompt": "Agent je prošao pored ovog pitanja. Ova kartica će se zatvoriti kada se sesija nastavi.", "waitingForAnswer": "Agent čeka vaš odgovor. Dok je ovo pitanje otvoreno, vaša poruka agentu je pauzirana.", "waitingForPermission": "Agent čeka dozvolu. Dok je ovaj zahtev otvoren, vaša poruka agentu je pauzirana." @@ -2076,7 +2117,8 @@ "omitted_other": "{{displayCount}} ranijih stavki iz ove sesije nije moglo biti prikazano.", "couldNotLoad": "Učitavanje ranijih poruka nije uspelo.", "unavailable": "Ranije poruke nisu dostupne.", - "tooLarge": "Ranije poruke su prevelike za učitavanje." + "tooLarge": "Ranije poruke su prevelike za učitavanje.", + "omitted_few": "{{displayCount}} ranije stavke iz ove sesije nije moglo biti prikazano." }, "markdownTable": { "viewTable": "Prikaži tabelu", @@ -2088,7 +2130,9 @@ "rowCount_one": "red", "rowCount": "redovi", "rowCount_other": "redovi", - "opensFullScreen": "otvara ceo ekran" + "opensFullScreen": "otvara ceo ekran", + "columnCount_few": "kolone", + "rowCount_few": "reda" }, "sessionFilter": { "title": "Filtriraj sesije", @@ -2157,7 +2201,7 @@ "cameraAccessDisabled": "Pristup kameri onemogućen", "cameraAccessMessage": "Dozvolite pristup kameri u Postavkama da biste snimili fotografiju.", "couldNotOpenPhotoPicker": "Otvaranje birača fotografija nije uspelo. Restartujte Kilo i pokušajte ponovo.", - "maxFilesAllowed": "Maksimalno {{count}} datoteka je dozvoljeno", + "maxFilesAllowed": "Maksimalno {{displayCount}} datoteka je dozvoljeno", "onlyAddingFiles": "Dodaje se samo {{accepted}} od {{total}} datoteka (max {{max}})" }, "composer": { @@ -2222,7 +2266,7 @@ "costPrefix": "cena {{cost}}", "costSuffix": ", cena {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} tokena, prozor nedostupan", - "tokensUsage": "Kontekst {{used}} od {{window}} tokena, iskorišćeno {{percentage}}%", + "tokensUsage": "Kontekst {{used}} od {{window}} tokena, iskorišćeno {{percentage}}", "title": "Upotreba konteksta", "used": "Iskorišćeno", "remaining": "Preostalo", @@ -2231,7 +2275,7 @@ "usageReflectsLatest": "Upotreba odražava poslednji završeni odgovor asistenta.", "tokenUsage": "Upotreba tokena", "cacheRate": "Stopa keša", - "modelsCount": "Modeli ({{count}})", + "modelsCount": "Modeli ({{displayCount}})", "tokenTotalsNote": "Ukupni tokeni pokrivaju samo ovu sesiju i isključuju tokene podagenta/sekundarnih sesija.", "subagents": "Podagenti", "subagentsDescription": "Preostali trošak iz sekundarnih sesija", @@ -2243,7 +2287,8 @@ "stepsCount_one": "{{steps}} korak", "stepsCount": "{{steps}} koraka", "stepsCount_other": "{{steps}} koraka", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} koraka" }, "prBadge": { "open": "otvoren pull request", @@ -2373,7 +2418,7 @@ "connectedCli": "Na povezanom CLI-ju", "newSessionOn": "Nova sesija na {{name}}", "noMatchingSessions": "Nema odgovarajućih sesija.", - "onlyFirstFilesAttached": "Biće priloženo samo prvih {{count}} datoteka.", + "onlyFirstFilesAttached": "Biće priloženo samo prvih {{displayCount}} datoteka.", "staleMessage": "Ovo deljenje više nije dostupno.", "retryableMessage": "Učitavanje vaših sesija nije uspelo.", "emptyMessage": "Još nema sesija — pokrenite novu da biste ovo poslali.", @@ -2406,7 +2451,7 @@ "otherAccountCopy": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu. Prijavite se na taj Kilo nalog da biste njime upravljali.", "alreadySubscribed": "Već imate Kilo Pass pretplatu.", "purchaseUnavailable": "Kilo Pass kupovina trenutno nije dostupna.", - "tierCredits": "${{amount}} u kreditima", + "tierCredits": "{{amount}} u kreditima", "perMonth": "{{price}}/mes", "verifyPurchaseFailed": "Provera vaše kupovine nije uspela. Proverite vezu i pokušajte ponovo.", "productsCouldNotLoad": "Kilo Pass proizvodi nisu mogli biti učitani iz App Store-a.", @@ -2417,7 +2462,7 @@ "manageFailed": "Otvaranje upravljanja pretplatom u App Store-u nije uspelo.", "kiloPassSetup": "Podešavanje Kilo Pass-a", "subscriptionHeaderDescription": "Mesečna pretplata koja dodaje kredite vašem Kilo saldu za pokretanje AI sesija kodiranja u Kilo aplikaciji — Cloud Agenti, udaljene sesije i KiloClaw ćaskanja.", - "tierDescription": "${{price}} plaćenih kredita dodaje se mesečno za upotrebu Kilo aplikacije.", + "tierDescription": "{{price}} plaćenih kredita dodaje se mesečno za upotrebu Kilo aplikacije.", "subscribe": "Pretplati se", "subscribeDescription": "Mesečni krediti sa bonus napretkom", "manage": "Upravljaj", @@ -2425,7 +2470,7 @@ "statusPending": "Kilo Pass na čekanju", "statusCanceling": "Kilo Pass se otkazuje", "statusPastDue": "Kilo Pass docnio", - "monthlyCredits": "${{credits}} mesečnih kredita", + "monthlyCredits": "{{credits}} mesečnih kredita", "ends": "Završava se {{date}}", "periodEnd": "kraj perioda", "managedOnGooglePlay": "Upravlja se na Google Play-u", @@ -2667,7 +2712,8 @@ "processingNeedsReview": "Obrada zahteva pregled", "retry": "Pokušaj ponovo", "retryHint": "Pokušava ponovo učitavanje statusa Kilo Pass-a.", - "setupHint": "Otvara podešavanje Kilo Pass-a na vebu." + "setupHint": "Otvara podešavanje Kilo Pass-a na vebu.", + "paidSeat_few": "{{displayCount}} plaćena mesta" } }, "authErrors": { diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index e26236c839..b4c35622d6 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -206,11 +206,11 @@ "loadingLines": "Läser in {{loaded}} av {{total}} rader...", "expandContext": "Expandera kontext", "expandMoreContext": "Expandera mer kontext", - "expandLines": "Expandera {{count}} rader ({{start}}–{{end}})", - "expandMoreLines": "Expandera ytterligare {{count}} rader ({{start}}–{{end}})", - "expandLinesOfContext": "Expandera {{count}} rader med kontext", + "expandLines": "Expandera {{displayCount}} rader ({{start}}–{{end}})", + "expandMoreLines": "Expandera ytterligare {{displayCount}} rader ({{start}}–{{end}})", + "expandLinesOfContext": "Expandera {{displayCount}} rader med kontext", "expandAll": "Expandera allt", - "expandAllLines": "Expandera alla {{count}} rader", + "expandAllLines": "Expandera alla {{displayCount}} rader", "loadingMoreFiles": "Läser in fler filer...", "retryLoadingNextPage": "Försök läsa in nästa sida igen", "failedToLoadMoreFiles": "Kunde inte läsa in fler filer — tryck för att försöka igen", @@ -301,7 +301,7 @@ "closeReactions": "Stäng reaktioner", "reactionsTitle": "Reaktioner", "addReaction": "Lägg till reaktion", - "reactionPill": "{{emoji}}-reaktion, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}}-reaktion, {{displayCount}} {{countLabel}}", "reaction_one": "reaktion", "reaction": "reaktioner", "reaction_other": "reaktioner", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Inga granskningstrådar eller konversationskommentarer på den här pull requesten.", "reviewFiles": "Granska filer", "quotedDiffSnippet": "Citerat diff-utdrag", - "moreLinesAbove": "… {{count}} fler rader ovanför", + "moreLinesAbove": "… {{displayCount}} fler rader ovanför", "termsAcceptRequired": "Du måste godkänna användarvillkoren för att posta.", "termsOutdatedCopy": "Användarvillkoren har ändrats. Öppna den här skärmen igen för att godkänna den senaste versionen.", "termsCheckRetryCopy": "Kunde inte kontrollera användarvillkoren. Kontrollera anslutningen och försök igen." @@ -395,11 +395,11 @@ "retryChecks": "Försök igen med kontroller", "viewOnGitHub": "Visa PR på GitHub", "noChecksReported": "Inga kontroller rapporterade", - "passed": "{{count}} godkända", - "failed": "{{count}} misslyckades", - "pending": "{{count}} väntande", - "skipped": "{{count}} hoppades över", - "checksCount": "{{count}} kontroller", + "passed": "{{displayCount}} godkända", + "failed": "{{displayCount}} misslyckades", + "pending": "{{displayCount}} väntande", + "skipped": "{{displayCount}} hoppades över", + "checksCount": "{{displayCount}} kontroller", "checkDetails": "kontrolldetaljer", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "väntande kommentar", "pendingComment": "väntande kommentarer", "pendingComment_other": "väntande kommentarer", - "submitCountOfTotal": "Skicka {{freshCount}} av {{totalCount}} kommentarer", + "submitCountOfTotal": "Skicka {{displayFreshCount}} av {{displayTotalCount}} kommentarer", "submitReview": "Skicka granskning", - "partialPostedMessage": "Skickade {{freshCount}} kommentar(er). {{staleCount}} kommentar(er) pekar på en äldre commit och blev kvar i kön." + "partialPostedMessage": "Skickade {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) pekar på en äldre commit och blev kvar i kön." }, "reconnectNotice": { "title": "GitHub-anslutningen har upphört att gälla", @@ -580,7 +580,8 @@ "agents": "Agenter", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, flik, {{position}} av {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Senaste", "common": "Vanliga", "reactWith": "Reagera med {{reaction}}", - "accessibility": "{{emoji}}-reaktion, {{count}}" + "accessibility": "{{emoji}}-reaktion, {{displayCount}}" }, "composer": { "replyingTo": "Svarar på", @@ -650,7 +651,7 @@ "imageUnavailable": "Bilden är inte tillgänglig", "openFailed": "Kunde inte öppna bifogad fil. Kontrollera anslutningen och försök igen.", "attachFailed": "Kunde inte bifoga filen", - "limit": "Du kan bifoga upp till {{count}} filer.", + "limit": "Du kan bifoga upp till {{displayCount}} filer.", "sizeRejection": "{{filename}} överskrider bifogningsgränsen på {{limit}}.", "unreadable": "Kunde inte läsa {{filename}}.", "pastedImage": "den inklistrade bilden", @@ -722,6 +723,7 @@ "finalTermEnds": "Sista perioden slutar", "afterFinalTerm": "Efter sista perioden", "remaining": "Kvar", + "lessThanOneDay": "Mindre än 1 dag", "ends": "Slutar", "expires": "Upphör", "noActivePlan": "Ingen aktiv plan", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ditt Standard-månadspris", "perMonth": "/månad", "earlybirdAccessUntil": "Earlybird-åtkomst till {{date}}", - "earlybirdEnding": "Earlybird avslutas: {{days}} dagar kvar", + "earlybirdEnding": "Earlybird avslutas: {{remaining}} dagar kvar", "paymentPastDue": "Betalning förfallen. Uppdatera din betalningsmetod.", "subscriptionCancels": "Abonnemanget avslutas {{date}}", - "trialDaysRemaining": "Provperiod: {{days}} dagar kvar", - "trialEndingSoon": "Provperioden avslutas snart: {{days}}" + "trialDaysRemaining": "Provperiod: {{remaining}} dagar kvar", + "trialEndingSoon": "Provperioden avslutas snart: {{remaining}}" }, "changelog": { "title": "Vad är nytt", @@ -996,7 +998,7 @@ "stalledTitle": "Något fastnade", "stalledBody": "Vi kunde inte slutföra installationen av {{name}}. Försök igen, eller mejla hi@kilo.ai om detta fortsätter.", "timeoutTitle": "Tar längre tid än förväntat", - "timeoutBody": "Installationen av {{name}} tar längre tid än vanligt (över {{minutes}} minuter).", + "timeoutBody": "Installationen av {{name}} tar längre tid än vanligt (över {{displayMinutes}} minuter).", "continueInBackground": "Fortsätt i bakgrunden", "settingUp": "Konfigurerar {{name}}", "finishingSetup": "Slutför installation", @@ -1287,7 +1289,7 @@ "mergeGate": "Sammanfogningsgrind", "repositories": "Arkiv", "allRepositories": "Alla arkiv", - "nSelected": "{{count}} valda", + "nSelected": "{{displayCount}} valda", "reviewMemory": "Granskningsminne", "proposedReviewMdGuidance": "Föreslagen REVIEW.md-vägledning" }, @@ -1391,14 +1393,14 @@ "analyzed": "Analyserad", "exploitabilityReasoning": "Motivering för utnyttjbarhet", "suggestedFix": "Föreslagen fix", - "whereFound": "Var detta hittades ({{count}})", + "whereFound": "Var detta hittades ({{displayCount}})", "fullReport": "Fullständig genererad rapport", "unknown": "Okänt", "yes": "Ja", "no": "Nej" }, "dashboard": { - "findingsCount": "{{count}} findings", + "findingsCount": "{{displayCount}} findings", "notMeasured": "Inte mätt", "actFirst": "Agrera först", "slaPosture": "SLA-läge", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Åtgärdsplan för arkiv", "noOpenFindings": "Inga öppna findings kräver uppmärksamhet", "deadlineToday": "Deadline nådd idag", - "daysOverdue": "{{count}} dagar försenade", + "daysOverdue": "{{displayCount}} dagar försenade", "withinDeadline": "Inom deadline", "criticalOverdue": "Kritiskt försenat", "highOverdue": "Högt försenat", @@ -1435,6 +1437,27 @@ "syncQueued": "Synkning köad", "syncStatusUnavailable": "Synkstatus otillgänglig" }, + "dashboardMetrics": { + "openFindings": "Öppna findings", + "openFindingsDetail": "{{critical}} kritiska, {{high}} höga", + "confirmedExploitable": "Bekräftat utnyttjbar", + "confirmedExploitableDetail": "Projektrisk bekräftad av analys", + "needsReview": "Kräver din granskning", + "needsReviewDetail": "Mänskligt beslut krävs", + "analysisIncomplete": "Analysen inte klar", + "analysisIncompleteDetail": "Projektrisken är fortfarande okänd", + "slaCompliance": "SLA-efterlevnad", + "notMeasured": "Inte mätt", + "withinDeadlineDetail": "{{within}} av {{total}} inom deadline", + "noDeadlineData": "Inga findings har en SLA-deadline ännu", + "deadlinePassed": "Deadline passerad", + "deadlinePassedDetail": "{{critical}} kritiska, {{high}} höga", + "dueThisWeek": "Förfaller denna vecka", + "dueThisWeekDetail": "{{exploitable}} bekräftat utnyttjbara", + "noDeadline": "Ingen deadline", + "reviewSlaAssignment": "Granska SLA-tilldelning", + "allOpenFindingsTracked": "Alla öppna findings spåras" + }, "dismiss": { "title": "Avskriv finding", "submit": "Avskriv finding", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} analys", "automation": "Automatisering", "automationAllOff": "Allt av", - "automationCount": "{{count}} av 3 aktiverade", + "automationCount": "{{displayCount}} av 3 aktiverade", "notifications": "Meddelanden", - "notificationsCount": "{{count}} av 2 aktiverade", + "notificationsCount": "{{displayCount}} av 2 aktiverade", "slaPolicy": "SLA-policy", "disabledNoManage": "Security Agent är inaktiverad. Endast organisationsägare och faktureringsansvariga kan aktivera den.", "disabledNoRepo": "Välj minst ett arkiv innan du aktiverar Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Öppna pull request{{number}}", "openDraftPullRequest": "Öppna utkast till pull request{{number}}", "progress": "Förlopp", - "attemptHistory": "Försökshistorik ({{count}})", + "attemptHistory": "Försökshistorik ({{displayCount}})", "attemptNumber": "Försök #{{number}}", "startedBy": "Startad av", "model": "Modell", @@ -1855,9 +1878,9 @@ "toolTask": "uppgift", "readTodos": "Läs todos", "updateTodos": "Uppdatera todos", - "linesBadge": "{{count}} rader", - "filesBadge": "{{count}} filer", - "matchesBadge": "{{count}} matchningar" + "linesBadge": "{{displayCount}} rader", + "filesBadge": "{{displayCount}} filer", + "matchesBadge": "{{displayCount}} matchningar" }, "readToolMarkdown": { "linesTruncated": "rader {{start}}–{{end}} (trunkerade)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Det här svaret kan inte rapporteras.", "reportAiResponseSubmitted": "Rapport skickad. Kvitto {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Detaljer otillgängliga", "textDisplay": "Textvisning", @@ -1999,7 +2026,7 @@ "preparationComplete": "Förberedelsen klar", "preparationFailed": "Förberedelsen misslyckades", "setupCommand": "Konfigurationskommando {{index}}", - "setupCommandOf": "Konfigurationskommando {{index}} av {{count}}" + "setupCommandOf": "Konfigurationskommando {{index}} av {{displayCount}}" }, "permissionCard": { "title": "Behörighet krävs", @@ -2036,7 +2063,7 @@ "submissionFailed": "Inskickningen misslyckades. Försök igen.", "questionAnnouncement": "Agenten behöver ditt svar. Kompositören är pausad medan du svarar.", "permissionAnnouncement": "Agenten behöver behörighet för att fortsätta. Kompositören är pausad medan du beslutar.", - "positionHint": "(1 av {{count}})", + "positionHint": "(1 av {{displayCount}})", "movedPastPrompt": "Agenten har gått förbi denna fråga. Detta kort stängs när sessionen fortsätter.", "waitingForAnswer": "Agenten väntar på ditt svar. Medan denna fråga är öppen är ditt meddelande till agenten pausat.", "waitingForPermission": "Agenten väntar på behörighet. Medan denna förfrågan är öppen är ditt meddelande till agenten pausat." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kameratillgång inaktiverad", "cameraAccessMessage": "Tillåt kameratillgång i Inställningar för att ta ett foto.", "couldNotOpenPhotoPicker": "Det gick inte att öppna fotovalaren. Starta om Kilo och försök igen.", - "maxFilesAllowed": "Högst {{count}} filer tillåtna", + "maxFilesAllowed": "Högst {{displayCount}} filer tillåtna", "onlyAddingFiles": "Lägger endast till {{accepted}} av {{total}} filer (max {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "kostnad {{cost}}", "costSuffix": ", kostnad {{cost}}", "tokensWindowUnavailable": "Kontext {{used}} token, fönster ej tillgängligt", - "tokensUsage": "Kontext {{used}} av {{window}} token, {{percentage}}% använt", + "tokensUsage": "Kontext {{used}} av {{window}} token, {{percentage}} använt", "title": "Kontextanvändning", "used": "Använt", "remaining": "Kvar", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Användningen återspeglar det senaste slutförda assistentsvaret.", "tokenUsage": "Tokenanvändning", "cacheRate": "Cachehastighet", - "modelsCount": "Modeller ({{count}})", + "modelsCount": "Modeller ({{displayCount}})", "tokenTotalsNote": "Tokensummor omfattar endast denna session och exkluderar underagent-/undersessionstoken.", "subagents": "Underagenter", "subagentsDescription": "Residualkostnad från barnsessioner", @@ -2373,7 +2400,7 @@ "connectedCli": "På en ansluten CLI", "newSessionOn": "Ny session på {{name}}", "noMatchingSessions": "Inga matchande sessioner.", - "onlyFirstFilesAttached": "Endast de första {{count}} filerna bifogas.", + "onlyFirstFilesAttached": "Endast de första {{displayCount}} filerna bifogas.", "staleMessage": "Denna delning är inte längre tillgänglig.", "retryableMessage": "Det gick inte att läsa in dina sessioner.", "emptyMessage": "Inga sessioner ännu — starta en ny för att skicka detta.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass på detta Apple-konto tillhör ett annat Kilo-konto. Logga in på det Kilo-kontot för att hantera det.", "alreadySubscribed": "Du har redan en Kilo Pass-prenumeration.", "purchaseUnavailable": "Kilo Pass-köp är inte tillgängligt just nu.", - "tierCredits": "${{amount}} i krediter", + "tierCredits": "{{amount}} i krediter", "perMonth": "{{price}}/mån", "verifyPurchaseFailed": "Det gick inte att verifiera ditt köp. Kontrollera din anslutning och försök igen.", "productsCouldNotLoad": "Kilo Pass-produkter kunde inte läsas in från App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Det gick inte att öppna App Store-prenumerationshanteringen.", "kiloPassSetup": "Kilo Pass-installation", "subscriptionHeaderDescription": "En månadsprenumeration som lägger till krediter till ditt Kilo-saldo för att köra AI-kodningssessioner i Kilo-appen — Cloud-agenter, fjärrsessioner och KiloClaw-chattar.", - "tierDescription": "${{price}} betalda krediter läggs till månadsvis för Kilo-appanvändning.", + "tierDescription": "{{price}} betalda krediter läggs till månadsvis för Kilo-appanvändning.", "subscribe": "Prenumerera", "subscribeDescription": "Månatliga krediter med bonusframsteg", "manage": "Hantera", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass väntande", "statusCanceling": "Kilo Pass avbryter", "statusPastDue": "Kilo Pass förfallen", - "monthlyCredits": "${{credits}} månatliga krediter", + "monthlyCredits": "{{credits}} månatliga krediter", "ends": "Slutar {{date}}", "periodEnd": "periodslut", "managedOnGooglePlay": "Hanteras på Google Play", diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index 53b36e5766..a36f2fe4bb 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -206,11 +206,11 @@ "loadingLines": "Inapakia {{loaded}} kati ya {{total}} mistari…", "expandContext": "Panua muktadha", "expandMoreContext": "Panua muktadha zaidi", - "expandLines": "Panua {{count}} mistari ({{start}}–{{end}})", - "expandMoreLines": "Panua zaidi {{count}} mistari ({{start}}–{{end}})", - "expandLinesOfContext": "Panua {{count}} mistari ya muktadha", + "expandLines": "Panua {{displayCount}} mistari ({{start}}–{{end}})", + "expandMoreLines": "Panua zaidi {{displayCount}} mistari ({{start}}–{{end}})", + "expandLinesOfContext": "Panua {{displayCount}} mistari ya muktadha", "expandAll": "Panua zote", - "expandAllLines": "Panua mistari yote {{count}}", + "expandAllLines": "Panua mistari yote {{displayCount}}", "loadingMoreFiles": "Inapakia faili zaidi…", "retryLoadingNextPage": "Jaribu tena kupakia ukurasa unaofuata", "failedToLoadMoreFiles": "Imeshindwa kupakia faili zaidi — gusa kujaribu tena", @@ -301,7 +301,7 @@ "closeReactions": "Funga miitikio", "reactionsTitle": "Miitikio", "addReaction": "Ongeza mwitikio", - "reactionPill": "{{emoji}} mwitikio, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} mwitikio, {{displayCount}} {{countLabel}}", "reaction_one": "mwitikio", "reaction": "miitikio", "reaction_other": "miitikio", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Hakuna mada za ukaguzi au maoni ya mazungumzo kwenye pull request hii.", "reviewFiles": "Kagua faili", "quotedDiffSnippet": "Sehemu ya diff iliyonukuliwa", - "moreLinesAbove": "… {{count}} zaidi mistari hapo juu", + "moreLinesAbove": "… {{displayCount}} zaidi mistari hapo juu", "termsAcceptRequired": "Lazima ukubali Masharti ya Huduma ili kuchapisha.", "termsOutdatedCopy": "Masharti ya Huduma yamebadilika. Fungua upya skrini hii kukubali toleo la hivi karibuni.", "termsCheckRetryCopy": "Imeshindwa kuangalia Masharti ya Huduma. Angalia muunganisho wako na ujaribu tena." @@ -395,11 +395,11 @@ "retryChecks": "Jaribu tena ukaguzi", "viewOnGitHub": "Angalia PR kwenye GitHub", "noChecksReported": "Hakuna ukaguzi ulioripotiwa", - "passed": "{{count}} zimepita", - "failed": "{{count}} zimeshindwa", - "pending": "{{count}} zinasubiri", - "skipped": "{{count}} zimerukwa", - "checksCount": "Ukaguzi {{count}}", + "passed": "{{displayCount}} zimepita", + "failed": "{{displayCount}} zimeshindwa", + "pending": "{{displayCount}} zinasubiri", + "skipped": "{{displayCount}} zimerukwa", + "checksCount": "Ukaguzi {{displayCount}}", "checkDetails": "maelezo ya ukaguzi", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "maoni ya kusubiri", "pendingComment": "maoni ya kusubiri", "pendingComment_other": "maoni ya kusubiri", - "submitCountOfTotal": "Wasilisha {{freshCount}} kati ya {{totalCount}} maoni", + "submitCountOfTotal": "Wasilisha {{displayFreshCount}} kati ya {{displayTotalCount}} maoni", "submitReview": "Wasilisha ukaguzi", - "partialPostedMessage": "Umetuma maoni {{freshCount}}. Maoni {{staleCount}} yanaelekeza kwenye commit la zamani na yalibaki kwenye foleni yako." + "partialPostedMessage": "Umetuma maoni {{displayFreshCount}}. Maoni {{displayStaleCount}} yanaelekeza kwenye commit la zamani na yalibaki kwenye foleni yako." }, "reconnectNotice": { "title": "Muunganisho wa GitHub umekwisha muda", @@ -580,7 +580,8 @@ "agents": "Mawakala", "profile": "Wasifu", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, kichupo, {{position}} kati ya {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "za karibu", "common": "Kawaida", "reactWith": "Itikia na {{reaction}}", - "accessibility": "{{emoji}} mwitikio, {{count}}" + "accessibility": "{{emoji}} mwitikio, {{displayCount}}" }, "composer": { "replyingTo": "Inajibu", @@ -650,7 +651,7 @@ "imageUnavailable": "Picha haipatikani", "openFailed": "Imeshindwa kufungua kiambatisho. Angalia muunganisho wako na ujaribu tena.", "attachFailed": "Imeshindwa kuambatisha faili", - "limit": "Unaweza kuambatisha hadi {{count}} faili.", + "limit": "Unaweza kuambatisha hadi {{displayCount}} faili.", "sizeRejection": "{{filename}} inazidi kikomo cha kiambatisho cha {{limit}}.", "unreadable": "Imeshindwa kusoma {{filename}}.", "pastedImage": "picha iliyobandikwa", @@ -722,6 +723,7 @@ "finalTermEnds": "Muda wa mwisho unaisha", "afterFinalTerm": "Baada ya muda wa mwisho", "remaining": "Kilichobaki", + "lessThanOneDay": "Chini ya siku 1", "ends": "Unaisha", "expires": "Inaisha", "noActivePlan": "Hakuna mpango ulioamilishwa", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "bei yako ya kila mwezi ya Standard", "perMonth": "/kwa mwezi", "earlybirdAccessUntil": "Ufikiaji wa Earlybird hadi {{date}}", - "earlybirdEnding": "Earlybird inaisha: siku {{days}} zimebaki", + "earlybirdEnding": "Earlybird inaisha: siku {{remaining}} zimebaki", "paymentPastDue": "Malipo yamechelewa. Tafadhali sasisha njia yako ya malipo.", "subscriptionCancels": "Usajili unafutwa {{date}}", - "trialDaysRemaining": "Jaribio: siku {{days}} zimesalia", - "trialEndingSoon": "Jaribio linaisha hivi karibuni: {{days}}" + "trialDaysRemaining": "Jaribio: siku {{remaining}} zimesalia", + "trialEndingSoon": "Jaribio linaisha hivi karibuni: {{remaining}}" }, "changelog": { "title": "Ni Nini Kipya", @@ -996,7 +998,7 @@ "stalledTitle": "Kuna kitu kimekwama", "stalledBody": "Hatukuweza kukamilisha usanidi wa {{name}}. Jaribu tena, au tuma barua pepe hi@kilo.ai ikiwa hili linaendelea kutokea.", "timeoutTitle": "Inachukua muda mrefu kuliko ilivyotarajiwa", - "timeoutBody": "Usanidi wa {{name}} unachukua muda mrefu kuliko kawaida (zaidi ya dakika {{minutes}}).", + "timeoutBody": "Usanidi wa {{name}} unachukua muda mrefu kuliko kawaida (zaidi ya dakika {{displayMinutes}}).", "continueInBackground": "Endelea usuli", "settingUp": "Inaweka usanidi wa {{name}}", "finishingSetup": "Inakamilisha usanidi", @@ -1287,7 +1289,7 @@ "mergeGate": "Lango la muunganisho", "repositories": "Hazina", "allRepositories": "Hazina zote", - "nSelected": "{{count}} zimechaguliwa", + "nSelected": "{{displayCount}} zimechaguliwa", "reviewMemory": "Kumbukumbu ya ukaguzi", "proposedReviewMdGuidance": "Mwongozo uliopendekezwa wa REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "Imechambuliwa", "exploitabilityReasoning": "Sababu za uwezekano wa kutumiwa vibaya", "suggestedFix": "Rekebisho linalopendekezwa", - "whereFound": "Mahali hili lilipopatikana ({{count}})", + "whereFound": "Mahali hili lilipopatikana ({{displayCount}})", "fullReport": "Ripoti kamili iliyotengenezwa", "unknown": "Haijulikani", "yes": "Ndiyo", "no": "Hapana" }, "dashboard": { - "findingsCount": "Matokeo {{count}}", + "findingsCount": "Matokeo {{displayCount}}", "notMeasured": "Haijapimwa", "actFirst": "Tenda kwanza", "slaPosture": "Mkao wa SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Mpango wa hatua wa hazina", "noOpenFindings": "Hakuna matokeo wazi yanayohitaji umakini", "deadlineToday": "Muda wa mwisho umefikiwa leo", - "daysOverdue": "Imechelewa kwa siku {{count}}", + "daysOverdue": "Imechelewa kwa siku {{displayCount}}", "withinDeadline": "Ndani ya muda wa mwisho", "criticalOverdue": "Kikubwa kimechelewa", "highOverdue": "Juu kimechelewa", @@ -1435,6 +1437,27 @@ "syncQueued": "Usawazishaji umepangwa", "syncStatusUnavailable": "Hali ya usawazishaji haipatikani" }, + "dashboardMetrics": { + "openFindings": "Matokeo wazi", + "openFindingsDetail": "{{critical}} kikubwa, {{high}} cha juu", + "confirmedExploitable": "Imethibitishwa inaweza kutumiwa vibaya", + "confirmedExploitableDetail": "Hatari ya mradi imethibitishwa na uchambuzi", + "needsReview": "Inahitaji mapitio yako", + "needsReviewDetail": "Uamuzi wa binadamu unahitajika", + "analysisIncomplete": "Uchambuzi haujakamilika", + "analysisIncompleteDetail": "Hatari ya mradi bado haijulikani", + "slaCompliance": "Kufuata SLA", + "notMeasured": "Haijapimwa", + "withinDeadlineDetail": "{{within}} kati ya {{total}} ndani ya muda wa mwisho", + "noDeadlineData": "Hakuna matokeo yenye muda wa mwisho wa SLA bado", + "deadlinePassed": "Muda wa mwisho umepita", + "deadlinePassedDetail": "{{critical}} kikubwa, {{high}} cha juu", + "dueThisWeek": "Inatakiwa wiki hii", + "dueThisWeekDetail": "{{exploitable}} imethibitishwa inaweza kutumiwa vibaya", + "noDeadline": "Hakuna muda wa mwisho", + "reviewSlaAssignment": "Pitia ugawaji wa SLA", + "allOpenFindingsTracked": "Matokeo yote wazi yanafuatiliwa" + }, "dismiss": { "title": "Futa matokeo", "submit": "Futa matokeo", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Uchambuzi wa {{mode}}", "automation": "Otomatiki", "automationAllOff": "Zote zimezimwa", - "automationCount": "{{count}} kati ya 3 zimewezeshwa", + "automationCount": "{{displayCount}} kati ya 3 zimewezeshwa", "notifications": "Arifa", - "notificationsCount": "{{count}} kati ya 2 zimewezeshwa", + "notificationsCount": "{{displayCount}} kati ya 2 zimewezeshwa", "slaPolicy": "Sera ya SLA", "disabledNoManage": "Security Agent imezimwa. Wamiliki wa shirika na wasimamizi wa bili pekee ndio wanaweza kuiwasha.", "disabledNoRepo": "Chagua angalau hazina moja kabla ya kuwasha Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Fungua pull request{{number}}", "openDraftPullRequest": "Fungua rasimu ya pull request{{number}}", "progress": "Maendeleo", - "attemptHistory": "Historia ya majaribio ({{count}})", + "attemptHistory": "Historia ya majaribio ({{displayCount}})", "attemptNumber": "Jaribio #{{number}}", "startedBy": "Imeanzishwa na", "model": "Muundo", @@ -1855,9 +1878,9 @@ "toolTask": "kazi", "readTodos": "Soma kazi", "updateTodos": "Sasisha kazi", - "linesBadge": "Mistari {{count}}", - "filesBadge": "Faili {{count}}", - "matchesBadge": "Linganisho {{count}}" + "linesBadge": "Mistari {{displayCount}}", + "filesBadge": "Faili {{displayCount}}", + "matchesBadge": "Linganisho {{displayCount}}" }, "readToolMarkdown": { "linesTruncated": "mistari {{start}}–{{end}} (imepunguzwa)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Jibu hili haliwezi kuripotiwa.", "reportAiResponseSubmitted": "Ripoti imewasilishwa. Stakabadhi {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Maelezo hayapatikani", "textDisplay": "Onyesho la maandishi", @@ -1999,7 +2026,7 @@ "preparationComplete": "Utayarishaji umekamilika", "preparationFailed": "Utayarishaji umeshindikana", "setupCommand": "Amri ya usanidi {{index}}", - "setupCommandOf": "Amri ya usanidi {{index}} kati ya {{count}}" + "setupCommandOf": "Amri ya usanidi {{index}} kati ya {{displayCount}}" }, "permissionCard": { "title": "Ruhusa inahitajika", @@ -2036,7 +2063,7 @@ "submissionFailed": "Uwasilishaji umeshindwa. Tafadhali jaribu tena.", "questionAnnouncement": "Wakala anahitaji mchango wako. Kitanzi cha uandishi kimesimamishwa wakati unapojibu.", "permissionAnnouncement": "Wakala anahitaji ruhusa kuendelea. Kitanzi cha uandishi kimesimamishwa wakati unaamua.", - "positionHint": "(1 ya {{count}})", + "positionHint": "(1 ya {{displayCount}})", "movedPastPrompt": "Wakala amesogea zaidi ya kidokezo hiki. Kadi hii itafungwa wakati kikao kikiendelea.", "waitingForAnswer": "Wakala anasubiri jibu lako. Wakati swali hili liko wazi, ujumbe wako kwa wakala umesimamishwa.", "waitingForPermission": "Wakala anasubiri ruhusa. Wakati ombi hili liko wazi, ujumbe wako kwa wakala umesimamishwa." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Upatikanaji wa Kamera Umezimwa", "cameraAccessMessage": "Ruhusu upatikanaji wa kamera katika Mipangilio ili kupiga picha.", "couldNotOpenPhotoPicker": "Haikuweza kufungua kichagua picha. Anzisha tena Kilo na ujaribu tena.", - "maxFilesAllowed": "Upeo wa {{count}} faili unaruhusiwa", + "maxFilesAllowed": "Upeo wa {{displayCount}} faili unaruhusiwa", "onlyAddingFiles": "Inaongeza tu {{accepted}} ya {{total}} faili (upeo {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "gharama {{cost}}", "costSuffix": ", gharama {{cost}}", "tokensWindowUnavailable": "Muktadha {{used}} tokeni, dirisha haipatikani", - "tokensUsage": "Muktadha {{used}} wa {{window}} tokeni, {{percentage}}% imetumika", + "tokensUsage": "Muktadha {{used}} wa {{window}} tokeni, {{percentage}} imetumika", "title": "Matumizi ya muktadha", "used": "Iliyotumika", "remaining": "Iliyosalia", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Matumizi yanaonyesha jibu la msaidizi la hivi karibuni lililokamilika.", "tokenUsage": "Matumizi ya tokeni", "cacheRate": "Kiwango cha akiba", - "modelsCount": "Mifano ({{count}})", + "modelsCount": "Mifano ({{displayCount}})", "tokenTotalsNote": "Jumla ya tokeni inajumuisha kikao hiki tu na haijumuishi tokeni za subagent/kikao cha mtoto.", "subagents": "Subagents", "subagentsDescription": "Gharama iliyobaki kutoka kwa vikao vya mtoto", @@ -2373,7 +2400,7 @@ "connectedCli": "Kwenye CLI iliyounganishwa", "newSessionOn": "Kikao kipya kwenye {{name}}", "noMatchingSessions": "Hakuna vikao vinavyolingana.", - "onlyFirstFilesAttached": "Faili {{count}} za kwanza pekee zitaambatishwa.", + "onlyFirstFilesAttached": "Faili {{displayCount}} za kwanza pekee zitaambatishwa.", "staleMessage": "Ushiriki huu haupatikani tena.", "retryableMessage": "Haikuweza kupakia vikao vyako.", "emptyMessage": "Bado hakuna vikao — anza kipya ili utume hili.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass kwenye Akaunti hii ya Apple ni ya akaunti nyingine ya Kilo. Ingia kwenye akaunti hiyo ya Kilo ili uisimamie.", "alreadySubscribed": "Tayari una usajili wa Kilo Pass.", "purchaseUnavailable": "Ununuzi wa Kilo Pass haupatikani sasa hivi.", - "tierCredits": "${{amount}} katika salio", + "tierCredits": "{{amount}} katika salio", "perMonth": "{{price}}/mo", "verifyPurchaseFailed": "Haikuweza kuhakiki ununuzi wako. Angalia muunganisho wako na ujaribu tena.", "productsCouldNotLoad": "Bidhaa za Kilo Pass hazikuweza kupakiwa kutoka App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Imeshindwa kufungua usimamizi wa usajili wa App Store.", "kiloPassSetup": "Usanidi wa Kilo Pass", "subscriptionHeaderDescription": "Usajili wa kila mwezi unaoongeza salio kwenye usawa wako wa Kilo kwa kuendesha vikao vya kuandika msimbo kwa AI katika Kilo App — Cloud Agents, vikao vya mbali, na mazungumzo ya KiloClaw.", - "tierDescription": "${{price}} ya salio linalolipwa linaongezwa kila mwezi kwa matumizi ya Kilo App.", + "tierDescription": "{{price}} ya salio linalolipwa linaongezwa kila mwezi kwa matumizi ya Kilo App.", "subscribe": "Jisajili", "subscribeDescription": "Salio la kila mwezi na maendeleo ya ziada", "manage": "Simamia", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass inasubiri", "statusCanceling": "Kilo Pass inaghairi", "statusPastDue": "Kilo Pass imechelewa", - "monthlyCredits": "${{credits}} salio la kila mwezi", + "monthlyCredits": "{{credits}} salio la kila mwezi", "ends": "Inaisha {{date}}", "periodEnd": "mwisho wa kipindi", "managedOnGooglePlay": "Inasimamiwa kwenye Google Play", diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index 172eea31f5..6797e6ff4f 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -206,11 +206,11 @@ "loadingLines": "{{loaded}} / {{total}} வரிகள் ஏற்றப்படுகிறது…", "expandContext": "சூழலை விரிவாக்கு", "expandMoreContext": "மேலும் சூழலை விரிவாக்கு", - "expandLines": "{{count}} வரிகளை விரிவாக்கு ({{start}}–{{end}})", - "expandMoreLines": "மேலும் {{count}} வரிகளை விரிவாக்கு ({{start}}–{{end}})", - "expandLinesOfContext": "சூழலின் {{count}} வரிகளை விரிவாக்கு", + "expandLines": "{{displayCount}} வரிகளை விரிவாக்கு ({{start}}–{{end}})", + "expandMoreLines": "மேலும் {{displayCount}} வரிகளை விரிவாக்கு ({{start}}–{{end}})", + "expandLinesOfContext": "சூழலின் {{displayCount}} வரிகளை விரிவாக்கு", "expandAll": "அனைத்தையும் விரிவாக்கு", - "expandAllLines": "எல்லா {{count}} வரிகளையும் விரிவாக்கு", + "expandAllLines": "எல்லா {{displayCount}} வரிகளையும் விரிவாக்கு", "loadingMoreFiles": "மேலும் கோப்புகள் ஏற்றப்படுகின்றன…", "retryLoadingNextPage": "அடுத்த பக்கத்தை ஏற்றுவதை மீண்டும் முயற்சி", "failedToLoadMoreFiles": "மேலும் கோப்புகளை ஏற்ற முடியவில்லை — மீண்டும் முயற்சிக்க தட்டவும்", @@ -301,7 +301,7 @@ "closeReactions": "எதிர்வினைகளை மூடு", "reactionsTitle": "எதிர்வினைகள்", "addReaction": "எதிர்வினை சேர்", - "reactionPill": "{{emoji}} எதிர்வினை, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} எதிர்வினை, {{displayCount}} {{countLabel}}", "reaction_one": "எதிர்வினை", "reaction": "எதிர்வினைகள்", "reaction_other": "எதிர்வினைகள்", @@ -353,7 +353,7 @@ "noDiscussionDescription": "இந்த இழுப்பு கோரிக்கையில் மதிப்பாய்வு நூல்கள் அல்லது உரையாடல் கருத்துகள் இல்லை.", "reviewFiles": "கோப்புகளை மதிப்பாய்வு செய்", "quotedDiffSnippet": "மேற்கோள் காட்டிய diff பகுதி", - "moreLinesAbove": "… மேலே {{count}} கூடுதல் வரிகள்", + "moreLinesAbove": "… மேலே {{displayCount}} கூடுதல் வரிகள்", "termsAcceptRequired": "இடுகையிட நீங்கள் சேவை விதிமுறைகளை ஏற்க வேண்டும்.", "termsOutdatedCopy": "சேவை விதிமுறைகள் மாறியது. சமீபத்திய பதிப்பை ஏற்க இந்த திரையை மீண்டும் திறக்கவும்.", "termsCheckRetryCopy": "சேவை விதிமுறைகளைச் சரிபார்க்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்." @@ -395,11 +395,11 @@ "retryChecks": "சோதனைகளை மீண்டும் முயற்சி", "viewOnGitHub": "PR ஐ GitHub இல் பார்", "noChecksReported": "சோதனைகள் எதுவும் பதிவாகவில்லை", - "passed": "{{count}} தேர்ச்சி பெற்றது", - "failed": "{{count}} தோல்வியடைந்தது", - "pending": "{{count}} நிலுவையில் உள்ளது", - "skipped": "{{count}} தவிர்க்கப்பட்டது", - "checksCount": "{{count}} சோதனைகள்", + "passed": "{{displayCount}} தேர்ச்சி பெற்றது", + "failed": "{{displayCount}} தோல்வியடைந்தது", + "pending": "{{displayCount}} நிலுவையில் உள்ளது", + "skipped": "{{displayCount}} தவிர்க்கப்பட்டது", + "checksCount": "{{displayCount}} சோதனைகள்", "checkDetails": "சோதனை விவரங்கள்", "pullRequest": "இழுப்பு கோரிக்கை" }, @@ -459,9 +459,9 @@ "pendingComment_one": "நிலுவை கருத்து", "pendingComment": "நிலுவை கருத்துகள்", "pendingComment_other": "நிலுவை கருத்துகள்", - "submitCountOfTotal": "{{totalCount}} கருத்துகளில் {{freshCount}} ஐ சமர்ப்பி", + "submitCountOfTotal": "{{displayTotalCount}} கருத்துகளில் {{displayFreshCount}} ஐ சமர்ப்பி", "submitReview": "மதிப்பாய்வை சமர்ப்பி", - "partialPostedMessage": "{{freshCount}} கருத்து(களை) இடுகையிட்டது. {{staleCount}} கருத்து(கள்) பழைய commit ஐ சுட்டிக்காட்டி உங்கள் வரிசையில் இருந்தன." + "partialPostedMessage": "{{displayFreshCount}} கருத்து(களை) இடுகையிட்டது. {{displayStaleCount}} கருத்து(கள்) பழைய commit ஐ சுட்டிக்காட்டி உங்கள் வரிசையில் இருந்தன." }, "reconnectNotice": { "title": "GitHub இணைப்பு காலாவதியானது", @@ -580,7 +580,8 @@ "agents": "முகவர்கள்", "profile": "சுயவிவரம்", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, தாவல், மொத்தம் {{total}} இல் {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "சமீபத்திய", "common": "பொதுவான", "reactWith": "{{reaction}} உடன் எதிர்வினை", - "accessibility": "{{emoji}} எதிர்வினை, {{count}}" + "accessibility": "{{emoji}} எதிர்வினை, {{displayCount}}" }, "composer": { "replyingTo": "பதிலளிக்கிறது", @@ -650,7 +651,7 @@ "imageUnavailable": "படம் கிடைக்கவில்லை", "openFailed": "இணைப்பைத் திறக்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்.", "attachFailed": "கோப்பை இணைக்க முடியவில்லை", - "limit": "நீங்கள் {{count}} கோப்புகள் வரை இணைக்கலாம்.", + "limit": "நீங்கள் {{displayCount}} கோப்புகள் வரை இணைக்கலாம்.", "sizeRejection": "{{filename}} {{limit}} இணைப்பு வரம்பை மீறுகிறது.", "unreadable": "{{filename}} ஐ படிக்க முடியவில்லை.", "pastedImage": "ஒட்டிய படம்", @@ -722,6 +723,7 @@ "finalTermEnds": "இறுதி காலம் முடிவடைகிறது", "afterFinalTerm": "இறுதி காலத்திற்குப் பிறகு", "remaining": "மீதமுள்ளது", + "lessThanOneDay": "1 நாளுக்கும் குறைவு", "ends": "முடிவடைகிறது", "expires": "காலாவதியாகிறது", "noActivePlan": "செயலில் உள்ள திட்டம் இல்லை", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "உங்கள் Standard மாதாந்திர விலை", "perMonth": "/மாதம்", "earlybirdAccessUntil": "{{date}} வரை முன்கூட்டிய அணுகல்", - "earlybirdEnding": "முன்கூட்டிய சலுகை முடிவடைகிறது: {{days}} நாட்கள் மீதம்", + "earlybirdEnding": "முன்கூட்டிய சலுகை முடிவடைகிறது: {{remaining}} நாட்கள் மீதம்", "paymentPastDue": "கட்டணம் நிலுவையில் உள்ளது. உங்கள் கட்டண முறையைப் புதுப்பிக்கவும்.", "subscriptionCancels": "சந்தா {{date}} அன்று ரத்தாகிறது", - "trialDaysRemaining": "சோதனை: {{days}} நாட்கள் மீதம்", - "trialEndingSoon": "சோதனை விரைவில் முடிவடைகிறது: {{days}}" + "trialDaysRemaining": "சோதனை: {{remaining}} நாட்கள் மீதம்", + "trialEndingSoon": "சோதனை விரைவில் முடிவடைகிறது: {{remaining}}" }, "changelog": { "title": "என்ன புதியது", @@ -996,7 +998,7 @@ "stalledTitle": "ஏதோ தேக்கமடைந்தது", "stalledBody": "{{name}} இன் அமைவை முடிக்க முடியவில்லை. இது தொடர்ந்து நடந்தால் மீண்டும் முயற்சிக்கவும், அல்லது hi@kilo.ai க்கு மின்னஞ்சல் அனுப்பவும்.", "timeoutTitle": "எதிர்பார்த்ததை விட அதிக நேரம் எடுக்கிறது", - "timeoutBody": "{{name}} இன் அமைவு வழக்கத்தை விட அதிக நேரம் எடுக்கிறது ({{minutes}} நிமிடங்களுக்கு மேல்).", + "timeoutBody": "{{name}} இன் அமைவு வழக்கத்தை விட அதிக நேரம் எடுக்கிறது ({{displayMinutes}} நிமிடங்களுக்கு மேல்).", "continueInBackground": "பின்னணியில் தொடரவும்", "settingUp": "{{name}} ஐ அமைக்கிறது", "finishingSetup": "அமைவை முடிக்கிறது", @@ -1287,7 +1289,7 @@ "mergeGate": "ஒருங்கிணைப்பு நுழைவாயில்", "repositories": "களஞ்சியங்கள்", "allRepositories": "அனைத்து களஞ்சியங்கள்", - "nSelected": "{{count}} தேர்ந்தெடுக்கப்பட்டது", + "nSelected": "{{displayCount}} தேர்ந்தெடுக்கப்பட்டது", "reviewMemory": "மதிப்பாய்வு நினைவகம்", "proposedReviewMdGuidance": "முன்மொழியப்பட்ட REVIEW.md வழிகாட்டுதல்" }, @@ -1391,14 +1393,14 @@ "analyzed": "பகுப்பாய்வு செய்யப்பட்டது", "exploitabilityReasoning": "சுரண்டக்கூடிய தன்மை பகுத்தறிவு", "suggestedFix": "பரிந்துரைக்கப்பட்ட திருத்தம்", - "whereFound": "இது கண்டுபிடிக்கப்பட்ட இடம் ({{count}})", + "whereFound": "இது கண்டுபிடிக்கப்பட்ட இடம் ({{displayCount}})", "fullReport": "முழு உருவாக்கப்பட்ட அறிக்கை", "unknown": "தெரியவில்லை", "yes": "ஆம்", "no": "இல்லை" }, "dashboard": { - "findingsCount": "{{count}} கண்டுபிடிப்புகள்", + "findingsCount": "{{displayCount}} கண்டுபிடிப்புகள்", "notMeasured": "அளவிடப்படவில்லை", "actFirst": "முதலில் செயல்படு", "slaPosture": "SLA நிலை", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "களஞ்சிய செயல் திட்டம்", "noOpenFindings": "கவனம் தேவைப்படும் திறந்த கண்டுபிடிப்புகள் இல்லை", "deadlineToday": "இன்று காலக்கெடு அடைந்தது", - "daysOverdue": "{{count}} நாட்கள் தாமதம்", + "daysOverdue": "{{displayCount}} நாட்கள் தாமதம்", "withinDeadline": "காலக்கெடுவிற்குள்", "criticalOverdue": "முக்கியமான தாமதம்", "highOverdue": "உயர் தாமதம்", @@ -1435,6 +1437,27 @@ "syncQueued": "ஒத்திசைவு வரிசையில் உள்ளது", "syncStatusUnavailable": "ஒத்திசைவு நிலை கிடைக்கவில்லை" }, + "dashboardMetrics": { + "openFindings": "திறந்த கண்டுபிடிப்புகள்", + "openFindingsDetail": "{{critical}} முக்கியமான, {{high}} உயர்", + "confirmedExploitable": "சுரண்டக்கூடியதாக உறுதிப்படுத்தப்பட்டது", + "confirmedExploitableDetail": "திட்ட இடர் பகுப்பாய்வால் உறுதிப்படுத்தப்பட்டது", + "needsReview": "உங்கள் மதிப்பாய்வு தேவை", + "needsReviewDetail": "மனித முடிவு தேவை", + "analysisIncomplete": "பகுப்பாய்வு முடிவடையவில்லை", + "analysisIncompleteDetail": "திட்ட இடர் இன்னும் தெரியவில்லை", + "slaCompliance": "SLA இணக்கம்", + "notMeasured": "அளவிடப்படவில்லை", + "withinDeadlineDetail": "{{total}} இல் {{within}} காலக்கெடுவிற்குள்", + "noDeadlineData": "எந்த கண்டுபிடிப்புகளுக்கும் SLA காலக்கெடு இன்னும் இல்லை", + "deadlinePassed": "காலக்கெடு கடந்துவிட்டது", + "deadlinePassedDetail": "{{critical}} முக்கியமான, {{high}} உயர்", + "dueThisWeek": "இந்த வாரம் காலக்கெடு", + "dueThisWeekDetail": "{{exploitable}} சுரண்டக்கூடியதாக உறுதிப்படுத்தப்பட்டது", + "noDeadline": "காலக்கெடு இல்லை", + "reviewSlaAssignment": "SLA ஒதுக்கீட்டை மதிப்பாய்வு செய்யவும்", + "allOpenFindingsTracked": "அனைத்து திறந்த கண்டுபிடிப்புகளும் கண்காணிக்கப்படுகின்றன" + }, "dismiss": { "title": "கண்டுபிடிப்பை நிராகரி", "submit": "கண்டுபிடிப்பை நிராகரி", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} பகுப்பாய்வு", "automation": "ஆட்டோமேஷன்", "automationAllOff": "அனைத்தும் ஆஃப்", - "automationCount": "{{count}}/3 இயக்கப்பட்டது", + "automationCount": "{{displayCount}}/3 இயக்கப்பட்டது", "notifications": "அறிவிப்புகள்", - "notificationsCount": "{{count}}/2 இயக்கப்பட்டது", + "notificationsCount": "{{displayCount}}/2 இயக்கப்பட்டது", "slaPolicy": "SLA கொள்கை", "disabledNoManage": "Security Agent முடக்கப்பட்டுள்ளது. நிறுவன உரிமையாளர்கள் மற்றும் பில்லிங் மேலாளர்கள் மட்டுமே அதை இயக்க முடியும்.", "disabledNoRepo": "Security Agent ஐ இயக்கும் முன் குறைந்தது ஒரு களஞ்சியத்தையாவது தேர்ந்தெடுக்கவும்.", @@ -1524,7 +1547,7 @@ "openPullRequest": "புல் ரிக்வெஸ்டைத் திற{{number}}", "openDraftPullRequest": "வரைவு புல் ரிக்வெஸ்டைத் திற{{number}}", "progress": "முன்னேற்றம்", - "attemptHistory": "முயற்சி வரலாறு ({{count}})", + "attemptHistory": "முயற்சி வரலாறு ({{displayCount}})", "attemptNumber": "முயற்சி #{{number}}", "startedBy": "தொடங்கியவர்", "model": "மாதிரி", @@ -1855,9 +1878,9 @@ "toolTask": "பணி", "readTodos": "செய்ய வேண்டியவற்றை படி", "updateTodos": "செய்ய வேண்டியவற்றை புதுப்பி", - "linesBadge": "{{count}} வரிகள்", - "filesBadge": "{{count}} கோப்புகள்", - "matchesBadge": "{{count}} பொருத்தங்கள்" + "linesBadge": "{{displayCount}} வரிகள்", + "filesBadge": "{{displayCount}} கோப்புகள்", + "matchesBadge": "{{displayCount}} பொருத்தங்கள்" }, "readToolMarkdown": { "linesTruncated": "{{start}}–{{end}} வரிகள் (துண்டிக்கப்பட்டது)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "இந்த பதிலை அறிக்கை செய்ய முடியாது.", "reportAiResponseSubmitted": "அறிக்கை சமர்ப்பிக்கப்பட்டது. ரசீது {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "விவரங்கள் கிடைக்கவில்லை", "textDisplay": "உரை காட்சி", @@ -1999,7 +2026,7 @@ "preparationComplete": "தயாரிப்பு முடிந்தது", "preparationFailed": "தயாரிப்பு தோல்வியடைந்தது", "setupCommand": "அமைவு கட்டளை {{index}}", - "setupCommandOf": "{{count}} இல் அமைவு கட்டளை {{index}}" + "setupCommandOf": "{{displayCount}} இல் அமைவு கட்டளை {{index}}" }, "permissionCard": { "title": "அனுமதி தேவை", @@ -2036,7 +2063,7 @@ "submissionFailed": "சமர்ப்பிப்பு தோல்வியடைந்தது. மீண்டும் முயற்சிக்கவும்.", "questionAnnouncement": "முகவருக்கு உங்கள் உள்ளீடு தேவை. நீங்கள் பதிலளிக்கும் வரை கம்போசர் இடைநிறுத்தப்பட்டுள்ளது.", "permissionAnnouncement": "தொடர முகவருக்கு அனுமதி தேவை. நீங்கள் முடிவு செய்யும் வரை கம்போசர் இடைநிறுத்தப்பட்டுள்ளது.", - "positionHint": "({{count}} இல் 1)", + "positionHint": "({{displayCount}} இல் 1)", "movedPastPrompt": "முகவர் இந்த கேள்வியைக் கடந்து சென்றுவிட்டார். அமர்வு தொடரும்போது இந்த அட்டை மூடப்படும்.", "waitingForAnswer": "முகவர் உங்கள் பதிலுக்காக காத்திருக்கிறார். இந்த கேள்வி திறந்திருக்கும்போது, முகவருக்கான உங்கள் செய்தி இடைநிறுத்தப்பட்டுள்ளது.", "waitingForPermission": "முகவர் அனுமதிக்காக காத்திருக்கிறார். இந்த கோரிக்கை திறந்திருக்கும்போது, முகவருக்கான உங்கள் செய்தி இடைநிறுத்தப்பட்டுள்ளது." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "கேமரா அணுகல் முடக்கப்பட்டது", "cameraAccessMessage": "புகைப்படம் எடுக்க அமைப்புகளில் கேமரா அணுகலை அனுமதிக்கவும்.", "couldNotOpenPhotoPicker": "புகைப்பட தேர்வியைத் திறக்க முடியவில்லை. Kiloவை மறுதொடக்கம் செய்து மீண்டும் முயற்சிக்கவும்.", - "maxFilesAllowed": "அதிகபட்சம் {{count}} கோப்புகள் அனுமதிக்கப்படும்", + "maxFilesAllowed": "அதிகபட்சம் {{displayCount}} கோப்புகள் அனுமதிக்கப்படும்", "onlyAddingFiles": "{{total}} கோப்புகளில் {{accepted}} மட்டுமே சேர்க்கிறது (அதிகபட்சம் {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "செலவு {{cost}}", "costSuffix": ", செலவு {{cost}}", "tokensWindowUnavailable": "சூழல் {{used}} டோக்கன்கள், சாளரம் கிடைக்கவில்லை", - "tokensUsage": "சூழல் {{window}} டோக்கன்களில் {{used}}, {{percentage}}% பயன்படுத்தப்பட்டது", + "tokensUsage": "சூழல் {{window}} டோக்கன்களில் {{used}}, {{percentage}} பயன்படுத்தப்பட்டது", "title": "சூழல் பயன்பாடு", "used": "பயன்படுத்தப்பட்டது", "remaining": "மீதம்", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "பயன்பாடு சமீபத்திய முடிந்த உதவியாளர் பதிலை பிரதிபலிக்கிறது.", "tokenUsage": "டோக்கன் பயன்பாடு", "cacheRate": "தற்காலிக சேமிப்பு விகிதம்", - "modelsCount": "மாதிரிகள் ({{count}})", + "modelsCount": "மாதிரிகள் ({{displayCount}})", "tokenTotalsNote": "டோக்கன் மொத்தங்கள் இந்த அமர்வை மட்டுமே உள்ளடக்கும், துணை முகவர்/குழந்தை அமர்வு டோக்கன்களை விலக்கும்.", "subagents": "துணை முகவர்கள்", "subagentsDescription": "குழந்தை அமர்வுகளிலிருந்து எஞ்சிய செலவு", @@ -2373,7 +2400,7 @@ "connectedCli": "இணைக்கப்பட்ட CLI இல்", "newSessionOn": "{{name}} இல் புதிய அமர்வு", "noMatchingSessions": "பொருந்தும் அமர்வுகள் இல்லை.", - "onlyFirstFilesAttached": "முதல் {{count}} கோப்புகள் மட்டுமே இணைக்கப்படும்.", + "onlyFirstFilesAttached": "முதல் {{displayCount}} கோப்புகள் மட்டுமே இணைக்கப்படும்.", "staleMessage": "இந்தப் பகிர்வு இனி கிடைக்காது.", "retryableMessage": "உங்கள் அமர்வுகளை ஏற்ற முடியவில்லை.", "emptyMessage": "இன்னும் அமர்வுகள் இல்லை — இதை அனுப்ப ஒரு புதிய ஒன்றைத் தொடங்குங்கள்.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "இந்த Apple கணக்கில் உள்ள Kilo Pass வேறொரு Kilo கணக்கைச் சேர்ந்தது. அதை நிர்வகிக்க அந்த Kilo கணக்கில் உள்நுழையவும்.", "alreadySubscribed": "உங்களிடம் ஏற்கனவே Kilo Pass சந்தா உள்ளது.", "purchaseUnavailable": "Kilo Pass வாங்குதல் இப்போது கிடைக்கவில்லை.", - "tierCredits": "கிரெடிட்களில் ${{amount}}", + "tierCredits": "கிரெடிட்களில் {{amount}}", "perMonth": "{{price}}/மாதம்", "verifyPurchaseFailed": "உங்கள் வாங்குதலைச் சரிபார்க்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்.", "productsCouldNotLoad": "App Storeஇலிருந்து Kilo Pass தயாரிப்புகளை ஏற்ற முடியவில்லை.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store சந்தா நிர்வாகத்தைத் திறக்க முடியவில்லை.", "kiloPassSetup": "Kilo Pass அமைப்பு", "subscriptionHeaderDescription": "Kilo App இல் AI குறியீட்டு அமர்வுகளை இயக்க உங்கள் Kilo இருப்புக்கு கிரெடிட்களைச் சேர்க்கும் மாதாந்திர சந்தா — Cloud Agents, தொலைநிலை அமர்வுகள் மற்றும் KiloClaw அரட்டைகள்.", - "tierDescription": "Kilo App பயன்பாட்டிற்காக ${{price}} செலுத்திய கிரெடிட்கள் மாதந்தோறும் சேர்க்கப்படும்.", + "tierDescription": "Kilo App பயன்பாட்டிற்காக {{price}} செலுத்திய கிரெடிட்கள் மாதந்தோறும் சேர்க்கப்படும்.", "subscribe": "சந்தா எடு", "subscribeDescription": "போனஸ் முன்னேற்றத்துடன் மாதாந்திர கிரெடிட்கள்", "manage": "நிர்வகி", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass நிலுவையில் உள்ளது", "statusCanceling": "Kilo Pass ரத்து செய்யப்படுகிறது", "statusPastDue": "Kilo Pass காலக்கெடு கடந்தது", - "monthlyCredits": "${{credits}} மாதாந்திர கிரெடிட்கள்", + "monthlyCredits": "{{credits}} மாதாந்திர கிரெடிட்கள்", "ends": "{{date}} அன்று முடிகிறது", "periodEnd": "கால முடிவு", "managedOnGooglePlay": "Google Play இல் நிர்வகிக்கப்படுகிறது", diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index 7f96c2d6e6..79a2c9ffc8 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -206,11 +206,11 @@ "loadingLines": "{{loaded}} / {{total}} లైన్లను లోడ్ చేస్తోంది…", "expandContext": "సందర్భం విస్తరించండి", "expandMoreContext": "మరింత సందర్భం విస్తరించండి", - "expandLines": "{{count}} లైన్లను విస్తరించండి ({{start}}–{{end}})", - "expandMoreLines": "మరో {{count}} లైన్లను విస్తరించండి ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} సందర్భ లైన్లను విస్తరించండి", + "expandLines": "{{displayCount}} లైన్లను విస్తరించండి ({{start}}–{{end}})", + "expandMoreLines": "మరో {{displayCount}} లైన్లను విస్తరించండి ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} సందర్భ లైన్లను విస్తరించండి", "expandAll": "అన్నీ విస్తరించండి", - "expandAllLines": "అన్ని {{count}} లైన్లను విస్తరించండి", + "expandAllLines": "అన్ని {{displayCount}} లైన్లను విస్తరించండి", "loadingMoreFiles": "మరిన్ని ఫైల్లను లోడ్ చేస్తోంది…", "retryLoadingNextPage": "తదుపరి పేజీని లోడ్ చేయడం మళ్ళీ ప్రయత్నించండి", "failedToLoadMoreFiles": "మరిన్ని ఫైల్లను లోడ్ చేయడంలో విఫలమైంది — మళ్ళీ ప్రయత్నించడానికి తాప్ చేయండి", @@ -301,7 +301,7 @@ "closeReactions": "ప్రతిచర్యలను మూసివేయండి", "reactionsTitle": "ప్రతిచర్యలు", "addReaction": "ప్రతిచర్య జోడించండి", - "reactionPill": "{{emoji}} ప్రతిచర్య, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ప్రతిచర్య, {{displayCount}} {{countLabel}}", "reaction_one": "ప్రతిచర్య", "reaction": "ప్రతిచర్యలు", "reaction_other": "ప్రతిచర్యలు", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ఈ పుల్ రిక్వెస్ట్పై సమీక్ష త్రెడ్లు లేదా సంభాషణ వ్యాఖ్యలు లేవు.", "reviewFiles": "ఫైల్లను సమీక్షించండి", "quotedDiffSnippet": "కోట్ చేసిన diff స్నిప్పెట్", - "moreLinesAbove": "… పైన మరో {{count}} లైన్లు", + "moreLinesAbove": "… పైన మరో {{displayCount}} లైన్లు", "termsAcceptRequired": "పోస్ట్ చేయడానికి మీరు సేవా నిబంధనలను అంగీకరించాలి.", "termsOutdatedCopy": "సేవా నిబంధనలు మారాయి. తాజా వెర్షన్ను అంగీకరించడానికి ఈ స్క్రీన్ను మళ్ళీ తెరవండి.", "termsCheckRetryCopy": "సేవా నిబంధనలను తనిఖీ చేయలేకపోయింది. మీ కనెక్షన్ను తనిఖీ చేసి మళ్ళీ ప్రయత్నించండి." @@ -395,11 +395,11 @@ "retryChecks": "చెక్లను మళ్ళీ ప్రయత్నించండి", "viewOnGitHub": "GitHubలో PRని చూడండి", "noChecksReported": "చెక్లు నివేదించబడలేదు", - "passed": "{{count}} ఉత్తీర్ణమయ్యాయి", - "failed": "{{count}} విఫలమయ్యాయి", - "pending": "{{count}} వేచి ఉన్నాయి", - "skipped": "{{count}} దాటవేయబడ్డాయి", - "checksCount": "{{count}} చెక్లు", + "passed": "{{displayCount}} ఉత్తీర్ణమయ్యాయి", + "failed": "{{displayCount}} విఫలమయ్యాయి", + "pending": "{{displayCount}} వేచి ఉన్నాయి", + "skipped": "{{displayCount}} దాటవేయబడ్డాయి", + "checksCount": "{{displayCount}} చెక్లు", "checkDetails": "చెక్ వివరాలు", "pullRequest": "పుల్ రిక్వెస్ట్" }, @@ -459,9 +459,9 @@ "pendingComment_one": "పెండింగ్ వ్యాఖ్య", "pendingComment": "పెండింగ్ వ్యాఖ్యలు", "pendingComment_other": "పెండింగ్ వ్యాఖ్యలు", - "submitCountOfTotal": "మొత్తం {{totalCount}} వ్యాఖ్యలలో {{freshCount}} సమర్పించండి", + "submitCountOfTotal": "మొత్తం {{displayTotalCount}} వ్యాఖ్యలలో {{displayFreshCount}} సమర్పించండి", "submitReview": "సమీక్షను సమర్పించండి", - "partialPostedMessage": "{{freshCount}} వ్యాఖ్య(లు) పోస్ట్ చేయబడ్డాయి. {{staleCount}} వ్యాఖ్య(లు) పాత కమిట్కు సూచిస్తున్నాయి మరియు మీ క్యూలో ఉన్నాయి." + "partialPostedMessage": "{{displayFreshCount}} వ్యాఖ్య(లు) పోస్ట్ చేయబడ్డాయి. {{displayStaleCount}} వ్యాఖ్య(లు) పాత కమిట్కు సూచిస్తున్నాయి మరియు మీ క్యూలో ఉన్నాయి." }, "reconnectNotice": { "title": "GitHub కనెక్షన్ గడువు ముగిసింది", @@ -580,7 +580,8 @@ "agents": "ఏజెంట్లు", "profile": "ప్రొఫైల్", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ట్యాబ్, మొత్తం {{total}} లో {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ఇటీవలి", "common": "సాధారణం", "reactWith": "{{reaction}}తో ప్రతిస్పందించండి", - "accessibility": "{{emoji}} ప్రతిచర్య, {{count}}" + "accessibility": "{{emoji}} ప్రతిచర్య, {{displayCount}}" }, "composer": { "replyingTo": "ప్రత్యుత్తరం ఇస్తున్నారు", @@ -650,7 +651,7 @@ "imageUnavailable": "చిత్రం అందుబాటులో లేదు", "openFailed": "అటాచ్మెంట్ను తెరవలేకపోయింది. మీ కనెక్షన్ను తనిఖీ చేసి మళ్ళీ ప్రయత్నించండి.", "attachFailed": "ఫైల్ను అటాచ్ చేయడంలో విఫలమైంది", - "limit": "మీరు గరిష్టంగా {{count}} ఫైల్లను అటాచ్ చేయవచ్చు.", + "limit": "మీరు గరిష్టంగా {{displayCount}} ఫైల్లను అటాచ్ చేయవచ్చు.", "sizeRejection": "{{filename}} {{limit}} అటాచ్మెంట్ పరిమితిని మించిపోయింది.", "unreadable": "{{filename}}ను చదవలేకపోయింది.", "pastedImage": "అతికించిన చిత్రం", @@ -722,6 +723,7 @@ "finalTermEnds": "చివరి టర్మ్ ముగుస్తుంది", "afterFinalTerm": "చివరి టర్మ్ తర్వాత", "remaining": "మిగిలినది", + "lessThanOneDay": "1 రోజు కంటే తక్కువ", "ends": "ముగుస్తుంది", "expires": "గడువు ముగుస్తుంది", "noActivePlan": "చురుకైన ప్లాన్ లేదు", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "మీ Standard నెలవారీ ధర", "perMonth": "/నెల", "earlybirdAccessUntil": "{{date}} వరకు ఎర్లీబర్డ్ యాక్సెస్", - "earlybirdEnding": "ఎర్లీబర్డ్ ముగుస్తోంది: {{days}} రోజులు మిగిలి ఉన్నాయి", + "earlybirdEnding": "ఎర్లీబర్డ్ ముగుస్తోంది: {{remaining}} రోజులు మిగిలి ఉన్నాయి", "paymentPastDue": "చెల్లింపు గడువు ముగిసింది. మీ చెల్లింపు పద్ధతిని నవీకరించండి.", "subscriptionCancels": "చందా {{date}}న రద్దవుతుంది", - "trialDaysRemaining": "ట్రయల్: {{days}} రోజులు మిగిలి ఉన్నాయి", - "trialEndingSoon": "ట్రయల్ త్వరలో ముగుస్తుంది: {{days}}" + "trialDaysRemaining": "ట్రయల్: {{remaining}} రోజులు మిగిలి ఉన్నాయి", + "trialEndingSoon": "ట్రయల్ త్వరలో ముగుస్తుంది: {{remaining}}" }, "changelog": { "title": "కొత్తగా ఏముంది", @@ -996,7 +998,7 @@ "stalledTitle": "ఏదో నిలిచిపోయింది", "stalledBody": "మేము {{name}}ను సెటప్ చేయడం పూర్తి చేయలేకపోయాము. మళ్లీ ప్రయత్నించండి, లేదా ఇది పునరావృతమైతే hi@kilo.aiకు ఇమెయిల్ చేయండి.", "timeoutTitle": "అంచనా కంటే ఎక్కువ సమయం తీసుకుంటోంది", - "timeoutBody": "{{name}} కోసం సెటప్ సాధారణం కంటే ఎక్కువ సమయం తీసుకుంటోంది ({{minutes}} నిమిషాలకు పైగా).", + "timeoutBody": "{{name}} కోసం సెటప్ సాధారణం కంటే ఎక్కువ సమయం తీసుకుంటోంది ({{displayMinutes}} నిమిషాలకు పైగా).", "continueInBackground": "నేపథ్యంలో కొనసాగించండి", "settingUp": "{{name}}ను సెటప్ చేస్తోంది", "finishingSetup": "సెటప్ పూర్తి చేస్తోంది", @@ -1287,7 +1289,7 @@ "mergeGate": "మెర్జ్ గేట్", "repositories": "రిపోజిటరీలు", "allRepositories": "అన్ని రిపోజిటరీలు", - "nSelected": "{{count}} ఎంచుకున్నారు", + "nSelected": "{{displayCount}} ఎంచుకున్నారు", "reviewMemory": "సమీక్ష మెమరీ", "proposedReviewMdGuidance": "ప్రతిపాదించిన REVIEW.md మార్గదర్శకత్వం" }, @@ -1391,14 +1393,14 @@ "analyzed": "విశ్లేషించబడింది", "exploitabilityReasoning": "దుర్వినియోగ సామర్థ్య హేతుబద్ధీకరణ", "suggestedFix": "సూచించిన పరిష్కారం", - "whereFound": "ఇది ఎక్కడ కనుగొనబడింది ({{count}})", + "whereFound": "ఇది ఎక్కడ కనుగొనబడింది ({{displayCount}})", "fullReport": "పూర్తి రూపొందించిన నివేదిక", "unknown": "తెలియదు", "yes": "అవును", "no": "లేదు" }, "dashboard": { - "findingsCount": "{{count}} ఫలితాలు", + "findingsCount": "{{displayCount}} ఫలితాలు", "notMeasured": "కొలవలేదు", "actFirst": "ముందుగా చర్య తీసుకోండి", "slaPosture": "SLA భంగిమ", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "రిపోజిటరీ చర్య ప్రణాళిక", "noOpenFindings": "దృష్టి అవసరమయ్యే తెరిచిన ఫలితాలు లేవు", "deadlineToday": "గడువు ఈరోజే చేరుకుంది", - "daysOverdue": "{{count}} రోజులు గడువు దాటాయి", + "daysOverdue": "{{displayCount}} రోజులు గడువు దాటాయి", "withinDeadline": "గడువులోపు", "criticalOverdue": "క్లిష్టమైనవి గడువు దాటాయి", "highOverdue": "అధికమైనవి గడువు దాటాయి", @@ -1435,6 +1437,27 @@ "syncQueued": "సింక్ క్యూలో ఉంది", "syncStatusUnavailable": "సింక్ స్థితి అందుబాటులో లేదు" }, + "dashboardMetrics": { + "openFindings": "తెరిచిన ఫలితాలు", + "openFindingsDetail": "{{critical}} క్లిష్టమైనవి, {{high}} అధికమైనవి", + "confirmedExploitable": "దుర్వినియోగం చేయదగినదిగా నిర్ధారించబడింది", + "confirmedExploitableDetail": "ప్రాజెక్ట్ ప్రమాదం విశ్లేషణ ద్వారా నిర్ధారించబడింది", + "needsReview": "మీ సమీక్ష అవసరం", + "needsReviewDetail": "మానవ నిర్ణయం అవసరం", + "analysisIncomplete": "విశ్లేషణ పూర్తి కాలేదు", + "analysisIncompleteDetail": "ప్రాజెక్ట్ ప్రమాదం ఇంకా తెలియదు", + "slaCompliance": "SLA సమ్మతి", + "notMeasured": "కొలవలేదు", + "withinDeadlineDetail": "{{total}} లో {{within}} గడువులోపు", + "noDeadlineData": "ఏ ఫలితాలకూ ఇంకా SLA గడువు లేదు", + "deadlinePassed": "గడువు దాటిపోయింది", + "deadlinePassedDetail": "{{critical}} క్లిష్టమైనవి, {{high}} అధికమైనవి", + "dueThisWeek": "ఈ వారం గడువు", + "dueThisWeekDetail": "{{exploitable}} దుర్వినియోగం చేయదగినవిగా నిర్ధారించబడ్డాయి", + "noDeadline": "గడువు లేదు", + "reviewSlaAssignment": "SLA కేటాయింపును సమీక్షించండి", + "allOpenFindingsTracked": "అన్ని తెరిచిన ఫలితాలు ట్రాక్ చేయబడతాయి" + }, "dismiss": { "title": "ఫలితాన్ని తీసివేయండి", "submit": "ఫలితాన్ని తీసివేయండి", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} విశ్లేషణ", "automation": "ఆటోమేషన్", "automationAllOff": "అన్నీ ఆఫ్", - "automationCount": "{{count}} / 3 ప్రారంభించబడింది", + "automationCount": "{{displayCount}} / 3 ప్రారంభించబడింది", "notifications": "నోటిఫికేషన్‌లు", - "notificationsCount": "{{count}} / 2 ప్రారంభించబడింది", + "notificationsCount": "{{displayCount}} / 2 ప్రారంభించబడింది", "slaPolicy": "SLA విధానం", "disabledNoManage": "సెక్యూరిటీ ఏజెంట్ నిలిపివేయబడింది. సంస్థ యజమానులు మరియు బిల్లింగ్ మేనేజర్లు మాత్రమే దీన్ని ఆన్ చేయగలరు.", "disabledNoRepo": "సెక్యూరిటీ ఏజెంట్‌ను ప్రారంభించే ముందు కనీసం ఒక రిపోజిటరీని ఎంచుకోండి.", @@ -1524,7 +1547,7 @@ "openPullRequest": "పుల్ రిక్వెస్ట్ తెరవండి{{number}}", "openDraftPullRequest": "డ్రాఫ్ట్ పుల్ రిక్వెస్ట్ తెరవండి{{number}}", "progress": "పురోగతి", - "attemptHistory": "ప్రయత్న చరిత్ర ({{count}})", + "attemptHistory": "ప్రయత్న చరిత్ర ({{displayCount}})", "attemptNumber": "ప్రయత్నం #{{number}}", "startedBy": "ప్రారంభించినవారు", "model": "మోడల్", @@ -1855,9 +1878,9 @@ "toolTask": "టాస్క్", "readTodos": "టోడోలను చదవండి", "updateTodos": "టోడోలను నవీకరించండి", - "linesBadge": "{{count}} పంక్తులు", - "filesBadge": "{{count}} ఫైల్స్", - "matchesBadge": "{{count}} సరిపోలికలు" + "linesBadge": "{{displayCount}} పంక్తులు", + "filesBadge": "{{displayCount}} ఫైల్స్", + "matchesBadge": "{{displayCount}} సరిపోలికలు" }, "readToolMarkdown": { "linesTruncated": "పంక్తులు {{start}}–{{end}} (ట్రంకేట్ చేయబడింది)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "ఈ ప్రతిస్పందనను నివేదించలేము.", "reportAiResponseSubmitted": "నివేదిక సమర్పించబడింది. రసీదు {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "వివరాలు అందుబాటులో లేవు", "textDisplay": "టెక్స్ట్ ప్రదర్శన", @@ -1999,7 +2026,7 @@ "preparationComplete": "సిద్ధత పూర్తయింది", "preparationFailed": "సిద్ధత విఫలమైంది", "setupCommand": "సెటప్ కమాండ్ {{index}}", - "setupCommandOf": "సెటప్ కమాండ్ {{index}} / {{count}}" + "setupCommandOf": "సెటప్ కమాండ్ {{index}} / {{displayCount}}" }, "permissionCard": { "title": "అనుమతి అవసరం", @@ -2036,7 +2063,7 @@ "submissionFailed": "సమర్పణ విఫలమైంది. దయచేసి మళ్లీ ప్రయత్నించండి.", "questionAnnouncement": "ఏజెంట్కు మీ ఇన్పుట్ అవసరం. మీరు సమాధానం ఇచ్చే వరకు కంపోజర్ పాజ్ చేయబడుతుంది.", "permissionAnnouncement": "కొనసాగడానికి ఏజెంట్కు అనుమతి అవసరం. మీరు నిర్ణయించే వరకు కంపోజర్ పాజ్ చేయబడుతుంది.", - "positionHint": "({{count}}లో 1)", + "positionHint": "({{displayCount}}లో 1)", "movedPastPrompt": "ఏజెంట్ ఈ ప్రాంప్ట్ దాటి కదిలింది. సెషన్ కొనసాగినప్పుడు ఈ కార్డ్ మూసివేయబడుతుంది.", "waitingForAnswer": "ఏజెంట్ మీ సమాధానం కోసం వేచి ఉంది. ఈ ప్రశ్న తెరిచి ఉన్నప్పుడు, ఏజెంట్కు మీ సందేశం పాజ్ చేయబడుతుంది.", "waitingForPermission": "ఏజెంట్ అనుమతి కోసం వేచి ఉంది. ఈ అభ్యర్థన తెరిచి ఉన్నప్పుడు, ఏజెంట్కు మీ సందేశం పాజ్ చేయబడుతుంది." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "కెమెరా యాక్సెస్ నిలిపివేయబడింది", "cameraAccessMessage": "ఫోటో తీయడానికి సెట్టింగ్లలో కెమెరా యాక్సెస్ను అనుమతించండి.", "couldNotOpenPhotoPicker": "ఫోటో పికర్ను తెరవలేకపోయాము. Kiloని పునఃప్రారంభించి మళ్లీ ప్రయత్నించండి.", - "maxFilesAllowed": "గరిష్టంగా {{count}} ఫైల్లు అనుమతించబడతాయి", + "maxFilesAllowed": "గరిష్టంగా {{displayCount}} ఫైల్లు అనుమతించబడతాయి", "onlyAddingFiles": "{{total}} ఫైల్లలో {{accepted}} మాత్రమే జోడిస్తోంది (గరిష్టం {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ఖర్చు {{cost}}", "costSuffix": ", ఖర్చు {{cost}}", "tokensWindowUnavailable": "సందర్భం {{used}} టోకెన్లు, విండో అందుబాటులో లేదు", - "tokensUsage": "సందర్భం {{window}} టోకెన్లలో {{used}} ఉపయోగించబడింది, {{percentage}}% ఉపయోగించబడింది", + "tokensUsage": "సందర్భం {{window}} టోకెన్లలో {{used}} ఉపయోగించబడింది, {{percentage}} ఉపయోగించబడింది", "title": "సందర్భ వినియోగం", "used": "ఉపయోగించబడింది", "remaining": "మిగిలి ఉంది", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "వినియోగం తాజా పూర్తయిన సహాయక ప్రతిస్పందనను ప్రతిబింబిస్తుంది.", "tokenUsage": "టోకెన్ వినియోగం", "cacheRate": "క్యాష్ రేటు", - "modelsCount": "మోడల్లు ({{count}})", + "modelsCount": "మోడల్లు ({{displayCount}})", "tokenTotalsNote": "టోకెన్ మొత్తాలు ఈ సెషన్కు మాత్రమే వర్తిస్తాయి మరియు సబ్ఏజెంట్/చైల్డ్-సెషన్ టోకెన్లను మినహాయిస్తాయి.", "subagents": "సబ్ఏజెంట్లు", "subagentsDescription": "చైల్డ్ సెషన్ల నుండి అవశేష ఖర్చు", @@ -2373,7 +2400,7 @@ "connectedCli": "కనెక్ట్ అయిన CLIలో", "newSessionOn": "{{name}}లో కొత్త సెషన్", "noMatchingSessions": "సరిపోలే సెషన్లు లేవు.", - "onlyFirstFilesAttached": "మొదటి {{count}} ఫైల్లు మాత్రమే అటాచ్ చేయబడతాయి.", + "onlyFirstFilesAttached": "మొదటి {{displayCount}} ఫైల్లు మాత్రమే అటాచ్ చేయబడతాయి.", "staleMessage": "ఈ భాగస్వామ్యం ఇక అందుబాటులో లేదు.", "retryableMessage": "మీ సెషన్లను లోడ్ చేయలేకపోయాము.", "emptyMessage": "ఇంకా సెషన్లు లేవు — దీన్ని పంపడానికి కొత్తదాన్ని ప్రారంభించండి.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "ఈ యాపిల్ ఖాతాలోని Kilo Pass వేరే Kilo ఖాతాకు చెందుతుంది. దాన్ని నిర్వహించడానికి ఆ Kilo ఖాతాతో సైన్ ఇన్ చేయండి.", "alreadySubscribed": "మీకు ఇప్పటికే Kilo Pass చందా ఉంది.", "purchaseUnavailable": "Kilo Pass కొనుగోలు ప్రస్తుతం అందుబాటులో లేదు.", - "tierCredits": "${{amount}} క్రెడిట్లు", + "tierCredits": "{{amount}} క్రెడిట్లు", "perMonth": "{{price}}/నెల", "verifyPurchaseFailed": "మీ కొనుగోలును ధృవీకరించలేకపోయాము. మీ కనెక్షన్ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి.", "productsCouldNotLoad": "యాప్ స్టోర్ నుండి Kilo Pass ఉత్పత్తులను లోడ్ చేయలేకపోయాము.", @@ -2417,7 +2444,7 @@ "manageFailed": "యాప్ స్టోర్ చందా నిర్వహణను తెరవడంలో విఫలమైంది.", "kiloPassSetup": "Kilo Pass సెటప్", "subscriptionHeaderDescription": "Kilo యాప్లో AI కోడింగ్ సెషన్లను నడపడానికి — క్లౌడ్ ఏజెంట్లు, రిమోట్ సెషన్లు మరియు KiloClaw చాట్లు — మీ Kilo బ్యాలెన్స్కు క్రెడిట్లను జోడించే నెలవారీ చందా.", - "tierDescription": "Kilo యాప్ వినియోగం కోసం ${{price}} చెల్లించిన క్రెడిట్లు నెలవారీగా జోడించబడతాయి.", + "tierDescription": "Kilo యాప్ వినియోగం కోసం {{price}} చెల్లించిన క్రెడిట్లు నెలవారీగా జోడించబడతాయి.", "subscribe": "చందాదారుడిగా చేరండి", "subscribeDescription": "బోనస్ ప్రోగ్రెస్తో నెలవారీ క్రెడిట్లు", "manage": "నిర్వహించండి", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass పెండింగ్", "statusCanceling": "Kilo Pass రద్దు అవుతోంది", "statusPastDue": "Kilo Pass వాయిదా ఆలస్యం", - "monthlyCredits": "${{credits}} నెలవారీ క్రెడిట్లు", + "monthlyCredits": "{{credits}} నెలవారీ క్రెడిట్లు", "ends": "{{date}}న ముగుస్తుంది", "periodEnd": "కాల ముగింపు", "managedOnGooglePlay": "Google Playలో నిర్వహించబడుతుంది", diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index faa647fa17..39a952c2dc 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -206,11 +206,11 @@ "loadingLines": "กำลังโหลด {{loaded}} จาก {{total}} บรรทัด…", "expandContext": "ขยายบริบท", "expandMoreContext": "ขยายบริบทเพิ่มเติม", - "expandLines": "ขยาย {{count}} บรรทัด ({{start}}–{{end}})", - "expandMoreLines": "ขยายเพิ่มอีก {{count}} บรรทัด ({{start}}–{{end}})", - "expandLinesOfContext": "ขยายบริบท {{count}} บรรทัด", + "expandLines": "ขยาย {{displayCount}} บรรทัด ({{start}}–{{end}})", + "expandMoreLines": "ขยายเพิ่มอีก {{displayCount}} บรรทัด ({{start}}–{{end}})", + "expandLinesOfContext": "ขยายบริบท {{displayCount}} บรรทัด", "expandAll": "ขยายทั้งหมด", - "expandAllLines": "ขยายทั้งหมด {{count}} บรรทัด", + "expandAllLines": "ขยายทั้งหมด {{displayCount}} บรรทัด", "loadingMoreFiles": "กำลังโหลดไฟล์เพิ่ม…", "retryLoadingNextPage": "ลองโหลดหน้าถัดไปอีกครั้ง", "failedToLoadMoreFiles": "โหลดไฟล์เพิ่มไม่สำเร็จ — แตะเพื่อลองอีกครั้ง", @@ -301,7 +301,7 @@ "closeReactions": "ปิดปฏิกิริยา", "reactionsTitle": "ปฏิกิริยา", "addReaction": "เพิ่มปฏิกิริยา", - "reactionPill": "{{emoji}} ปฏิกิริยา, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ปฏิกิริยา, {{displayCount}} {{countLabel}}", "reaction_one": "ปฏิกิริยา", "reaction": "ปฏิกิริยา", "reaction_other": "ปฏิกิริยา", @@ -353,7 +353,7 @@ "noDiscussionDescription": "ไม่มีเธรดรีวิวหรือความคิดเห็นการสนทนาใน pull request นี้", "reviewFiles": "รีวิวไฟล์", "quotedDiffSnippet": "ส่วนย่อย diff ที่อ้างอิง", - "moreLinesAbove": "… {{count}} บรรทัดเพิ่มเติมด้านบน", + "moreLinesAbove": "… {{displayCount}} บรรทัดเพิ่มเติมด้านบน", "termsAcceptRequired": "คุณต้องยอมรับข้อกำหนดในการให้บริการก่อนจึงจะโพสต์ได้", "termsOutdatedCopy": "ข้อกำหนดในการให้บริการมีการเปลี่ยนแปลง เปิดหน้าจอนี้อีกครั้งเพื่อยอมรับเวอร์ชันล่าสุด", "termsCheckRetryCopy": "ไม่สามารถตรวจสอบข้อกำหนดในการให้บริการได้ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง" @@ -395,11 +395,11 @@ "retryChecks": "ลองตรวจสอบอีกครั้ง", "viewOnGitHub": "ดู PR บน GitHub", "noChecksReported": "ไม่มีการรายงานการตรวจสอบ", - "passed": "{{count}} ผ่าน", - "failed": "{{count}} ล้มเหลว", - "pending": "{{count}} รอดำเนินการ", - "skipped": "{{count}} ข้าม", - "checksCount": "{{count}} การตรวจสอบ", + "passed": "{{displayCount}} ผ่าน", + "failed": "{{displayCount}} ล้มเหลว", + "pending": "{{displayCount}} รอดำเนินการ", + "skipped": "{{displayCount}} ข้าม", + "checksCount": "{{displayCount}} การตรวจสอบ", "checkDetails": "รายละเอียดการตรวจสอบ", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "ความคิดเห็นที่รอดำเนินการ", "pendingComment": "ความคิดเห็นที่รอดำเนินการ", "pendingComment_other": "ความคิดเห็นที่รอดำเนินการ", - "submitCountOfTotal": "ส่ง {{freshCount}} จาก {{totalCount}} ความคิดเห็น", + "submitCountOfTotal": "ส่ง {{displayFreshCount}} จาก {{displayTotalCount}} ความคิดเห็น", "submitReview": "ส่งรีวิว", - "partialPostedMessage": "โพสต์ {{freshCount}} ความคิดเห็นแล้ว {{staleCount}} ความคิดเห็นชี้ไปที่ commit ที่เก่ากว่าและยังอยู่ในคิวของคุณ" + "partialPostedMessage": "โพสต์ {{displayFreshCount}} ความคิดเห็นแล้ว {{displayStaleCount}} ความคิดเห็นชี้ไปที่ commit ที่เก่ากว่าและยังอยู่ในคิวของคุณ" }, "reconnectNotice": { "title": "การเชื่อมต่อ GitHub หมดอายุแล้ว", @@ -580,7 +580,8 @@ "agents": "เอเจนต์", "profile": "โปรไฟล์", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, แท็บ, {{position}} จาก {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "ล่าสุด", "common": "ทั่วไป", "reactWith": "แสดงปฏิกิริยา {{reaction}}", - "accessibility": "{{emoji}} ปฏิกิริยา, {{count}}" + "accessibility": "{{emoji}} ปฏิกิริยา, {{displayCount}}" }, "composer": { "replyingTo": "กำลังตอบกลับ", @@ -650,7 +651,7 @@ "imageUnavailable": "ไม่สามารถแสดงรูปภาพได้", "openFailed": "ไม่สามารถเปิดไฟล์แนบได้ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง", "attachFailed": "แนบไฟล์ไม่สำเร็จ", - "limit": "คุณสามารถแนบได้สูงสุด {{count}} ไฟล์", + "limit": "คุณสามารถแนบได้สูงสุด {{displayCount}} ไฟล์", "sizeRejection": "{{filename}} เกินขีดจำกัดการแนบ {{limit}}", "unreadable": "ไม่สามารถอ่าน {{filename}} ได้", "pastedImage": "รูปภาพที่วาง", @@ -722,6 +723,7 @@ "finalTermEnds": "สิ้นสุดเทอมสุดท้าย", "afterFinalTerm": "หลังเทอมสุดท้าย", "remaining": "คงเหลือ", + "lessThanOneDay": "น้อยกว่า 1 วัน", "ends": "สิ้นสุด", "expires": "หมดอายุ", "noActivePlan": "ไม่มีแพ็กเกจที่ใช้งาน", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "ราคารายเดือน Standard ของคุณ", "perMonth": "/เดือน", "earlybirdAccessUntil": "การเข้าถึง Earlybird จนถึง {{date}}", - "earlybirdEnding": "Earlybird จะสิ้นสุด: เหลือ {{days}} วัน", + "earlybirdEnding": "Earlybird จะสิ้นสุด: เหลือ {{remaining}} วัน", "paymentPastDue": "การชำระเงินค้างชำระ โปรดอัปเดตวิธีชำระเงินของคุณ", "subscriptionCancels": "การสมัครสมาชิกจะยกเลิกใน {{date}}", - "trialDaysRemaining": "ทดลองใช้: เหลือ {{days}} วัน", - "trialEndingSoon": "ทดลองใช้จะสิ้นสุดเร็วๆ นี้: {{days}}" + "trialDaysRemaining": "ทดลองใช้: เหลือ {{remaining}} วัน", + "trialEndingSoon": "ทดลองใช้จะสิ้นสุดเร็วๆ นี้: {{remaining}}" }, "changelog": { "title": "มีอะไรใหม่", @@ -996,7 +998,7 @@ "stalledTitle": "มีบางอย่างติดขัด", "stalledBody": "เราไม่สามารถติดตั้ง {{name}} ให้เสร็จสิ้นได้ ลองอีกครั้งหรืออีเมล hi@kilo.ai หากเกิดซ้ำ", "timeoutTitle": "ใช้เวลานานกว่าที่คาดไว้", - "timeoutBody": "การติดตั้งสำหรับ {{name}} ใช้เวลานานกว่าปกติ (มากกว่า {{minutes}} นาที)", + "timeoutBody": "การติดตั้งสำหรับ {{name}} ใช้เวลานานกว่าปกติ (มากกว่า {{displayMinutes}} นาที)", "continueInBackground": "ดำเนินการต่อในพื้นหลัง", "settingUp": "กำลังติดตั้ง {{name}}", "finishingSetup": "กำลังติดตั้งเสร็จสิ้น", @@ -1287,7 +1289,7 @@ "mergeGate": "เกตการผสาน", "repositories": "ที่เก็บ", "allRepositories": "ที่เก็บทั้งหมด", - "nSelected": "เลือก {{count}} รายการ", + "nSelected": "เลือก {{displayCount}} รายการ", "reviewMemory": "หน่วยความจำการตรวจสอบ", "proposedReviewMdGuidance": "แนวทาง REVIEW.md ที่เสนอ" }, @@ -1391,14 +1393,14 @@ "analyzed": "วิเคราะห์แล้ว", "exploitabilityReasoning": "เหตุผลความสามารถในการโจมตี", "suggestedFix": "วิธีแก้ไขที่แนะนำ", - "whereFound": "ตำแหน่งที่พบนี้ ({{count}})", + "whereFound": "ตำแหน่งที่พบนี้ ({{displayCount}})", "fullReport": "รายงานที่สร้างอย่างครบถ้วน", "unknown": "ไม่ทราบ", "yes": "ใช่", "no": "ไม่" }, "dashboard": { - "findingsCount": "{{count}} findings", + "findingsCount": "{{displayCount}} findings", "notMeasured": "ไม่ได้วัด", "actFirst": "ดำเนินการก่อน", "slaPosture": "ท่าที SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "แผนการดำเนินการของ repository", "noOpenFindings": "ไม่มี findings ที่เปิดอยู่ต้องให้ความสนใจ", "deadlineToday": "ถึงกำหนดเวลาวันนี้", - "daysOverdue": "เลยกำหนด {{count}} วัน", + "daysOverdue": "เลยกำหนด {{displayCount}} วัน", "withinDeadline": "ภายในกำหนดเวลา", "criticalOverdue": "วิกฤตเกินกำหนด", "highOverdue": "สูงเกินกำหนด", @@ -1435,6 +1437,27 @@ "syncQueued": "การซิงค์ถูกจัดคิว", "syncStatusUnavailable": "ไม่มีสถานะการซิงค์" }, + "dashboardMetrics": { + "openFindings": "findings ที่เปิดอยู่", + "openFindingsDetail": "วิกฤต {{critical}}, สูง {{high}}", + "confirmedExploitable": "ยืนยันว่าโจมตีได้", + "confirmedExploitableDetail": "ยืนยันความเสี่ยงของโปรเจกต์โดยการวิเคราะห์", + "needsReview": "ต้องให้คุณตรวจสอบ", + "needsReviewDetail": "ต้องใช้การตัดสินใจของมนุษย์", + "analysisIncomplete": "การวิเคราะห์ไม่สมบูรณ์", + "analysisIncompleteDetail": "ความเสี่ยงของโปรเจกต์ยังไม่ทราบ", + "slaCompliance": "การปฏิบัติตาม SLA", + "notMeasured": "ไม่ได้วัด", + "withinDeadlineDetail": "{{within}} จาก {{total}} ภายในกำหนดเวลา", + "noDeadlineData": "ยังไม่มี findings ใดมีกำหนดเวลา SLA", + "deadlinePassed": "เลยกำหนดเวลา", + "deadlinePassedDetail": "วิกฤต {{critical}}, สูง {{high}}", + "dueThisWeek": "ถึงกำหนดสัปดาห์นี้", + "dueThisWeekDetail": "{{exploitable}} ยืนยันว่าโจมตีได้", + "noDeadline": "ไม่มีกำหนดเวลา", + "reviewSlaAssignment": "ตรวจสอบการกำหนด SLA", + "allOpenFindingsTracked": "ติดตาม findings ที่เปิดอยู่ทั้งหมด" + }, "dismiss": { "title": "ละเว้น finding", "submit": "ละเว้น finding", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "การวิเคราะห์แบบ {{mode}}", "automation": "ระบบอัตโนมัติ", "automationAllOff": "ปิดทั้งหมด", - "automationCount": "เปิด {{count}} จาก 3", + "automationCount": "เปิด {{displayCount}} จาก 3", "notifications": "การแจ้งเตือน", - "notificationsCount": "เปิด {{count}} จาก 2", + "notificationsCount": "เปิด {{displayCount}} จาก 2", "slaPolicy": "นโยบาย SLA", "disabledNoManage": "Security Agent ถูกปิดใช้งาน เฉพาะเจ้าขององค์กรและผู้จัดการบิลลิ่งเท่านั้นที่สามารถเปิดได้", "disabledNoRepo": "เลือกอย่างน้อยหนึ่ง repository ก่อนเปิดใช้งาน Security Agent", @@ -1524,7 +1547,7 @@ "openPullRequest": "เปิด pull request{{number}}", "openDraftPullRequest": "เปิด draft pull request{{number}}", "progress": "ความคืบหน้า", - "attemptHistory": "ประวัติการพยายาม ({{count}})", + "attemptHistory": "ประวัติการพยายาม ({{displayCount}})", "attemptNumber": "การพยายาม #{{number}}", "startedBy": "เริ่มโดย", "model": "โมเดล", @@ -1855,9 +1878,9 @@ "toolTask": "task", "readTodos": "อ่าน todos", "updateTodos": "อัปเดต todos", - "linesBadge": "{{count}} บรรทัด", - "filesBadge": "{{count}} ไฟล์", - "matchesBadge": "{{count}} รายการที่ตรงกัน" + "linesBadge": "{{displayCount}} บรรทัด", + "filesBadge": "{{displayCount}} ไฟล์", + "matchesBadge": "{{displayCount}} รายการที่ตรงกัน" }, "readToolMarkdown": { "linesTruncated": "บรรทัด {{start}}–{{end}} (ถูกตัดทอน)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "การตอบสนองนี้ไม่สามารถรายงานได้", "reportAiResponseSubmitted": "ส่งรายงานแล้ว ใบเสร็จ {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "ไม่มีรายละเอียด", "textDisplay": "การแสดงข้อความ", @@ -1999,7 +2026,7 @@ "preparationComplete": "เตรียมเสร็จสิ้น", "preparationFailed": "การเตรียมล้มเหลว", "setupCommand": "คำสั่งตั้งค่า {{index}}", - "setupCommandOf": "คำสั่งตั้งค่า {{index}} จาก {{count}}" + "setupCommandOf": "คำสั่งตั้งค่า {{index}} จาก {{displayCount}}" }, "permissionCard": { "title": "ต้องมีสิทธิ์", @@ -2036,7 +2063,7 @@ "submissionFailed": "การส่งล้มเหลว กรุณาลองอีกครั้ง", "questionAnnouncement": "เอเจนต์ต้องการข้อมูลจากคุณ ตัวแก้ไขถูกหยุดชั่วคราวในระหว่างที่คุณตอบ", "permissionAnnouncement": "เอเจนต์ต้องได้รับสิทธิ์เพื่อดำเนินการต่อ ตัวแก้ไขถูกหยุดชั่วคราวในระหว่างที่คุณตัดสินใจ", - "positionHint": "(1 จาก {{count}})", + "positionHint": "(1 จาก {{displayCount}})", "movedPastPrompt": "เอเจนต์ได้เลยผ่านข้อความนี้ไปแล้ว การ์ดนี้จะปิดเมื่อเซสชันดำเนินต่อไป", "waitingForAnswer": "เอเจนต์กำลังรอคำตอบของคุณ ในขณะที่คำถามนี้ยังเปิดอยู่ ข้อความของคุณถึงเอเจนต์จะถูกหยุดชั่วคราว", "waitingForPermission": "เอเจนต์กำลังรอสิทธิ์ ในขณะที่คำขอนี้ยังเปิดอยู่ ข้อความของคุณถึงเอเจนต์จะถูกหยุดชั่วคราว" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "การเข้าถึงกล้องถูกปิดใช้งาน", "cameraAccessMessage": "อนุญาตการเข้าถึงกล้องในการตั้งค่าเพื่อถ่ายภาพ", "couldNotOpenPhotoPicker": "เปิดตัวเลือกรูปภาพไม่สำเร็จ รีสตาร์ท Kilo แล้วลองอีกครั้ง", - "maxFilesAllowed": "อนุญาตไฟล์สูงสุด {{count}} ไฟล์", + "maxFilesAllowed": "อนุญาตไฟล์สูงสุด {{displayCount}} ไฟล์", "onlyAddingFiles": "กำลังเพิ่ม {{accepted}} จาก {{total}} ไฟล์เท่านั้น (สูงสุด {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "ค่าใช้จ่าย {{cost}}", "costSuffix": ", ค่าใช้จ่าย {{cost}}", "tokensWindowUnavailable": "บริบท {{used}} โทเคน ไม่ทราบหน้าต่าง", - "tokensUsage": "บริบท {{used}} จาก {{window}} โทเคน ใช้ {{percentage}}%", + "tokensUsage": "บริบท {{used}} จาก {{window}} โทเคน ใช้ {{percentage}}", "title": "การใช้บริบท", "used": "ใช้แล้ว", "remaining": "คงเหลือ", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "การใช้งานสะท้อนถึงคำตอบผู้ช่วยที่เสร็จสมบูรณ์ล่าสุด", "tokenUsage": "การใช้โทเคน", "cacheRate": "อัตราแคช", - "modelsCount": "โมเดล ({{count}})", + "modelsCount": "โมเดล ({{displayCount}})", "tokenTotalsNote": "ยอดรวมโทเคนครอบคลุมเฉพาะเซสชันนี้เท่านั้น และไม่รวมโทเคนของเซสชันซับ/ย่อย", "subagents": "ซับเอเจนต์", "subagentsDescription": "ค่าใช้จ่ายคงเหลือจากเซสชันย่อย", @@ -2373,7 +2400,7 @@ "connectedCli": "บน CLI ที่เชื่อมต่ออยู่", "newSessionOn": "เซสชันใหม่บน {{name}}", "noMatchingSessions": "ไม่มีเซสชันที่ตรงกัน", - "onlyFirstFilesAttached": "เฉพาะ {{count}} ไฟล์แรกเท่านั้นที่จะถูกแนบ", + "onlyFirstFilesAttached": "เฉพาะ {{displayCount}} ไฟล์แรกเท่านั้นที่จะถูกแนบ", "staleMessage": "การแชร์นี้ไม่พร้อมใช้งานอีกต่อไป", "retryableMessage": "โหลดเซสชันของคุณไม่สำเร็จ", "emptyMessage": "ยังไม่มีเซสชัน — เริ่มเซสชันใหม่เพื่อส่งสิ่งนี้", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass ใน Apple Account นี้เป็นของบัญชี Kilo อื่น ลงชื่อเข้าใช้บัญชี Kilo นั้นเพื่อจัดการ", "alreadySubscribed": "คุณมีการสมัครสมาชิก Kilo Pass อยู่แล้ว", "purchaseUnavailable": "การซื้อ Kilo Pass ไม่พร้อมใช้งานในขณะนี้", - "tierCredits": "เครดิต ${{amount}}", + "tierCredits": "เครดิต {{amount}}", "perMonth": "{{price}}/เดือน", "verifyPurchaseFailed": "ยืนยันการซื้อของคุณไม่สำเร็จ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง", "productsCouldNotLoad": "โหลดผลิตภัณฑ์ Kilo Pass จาก App Store ไม่สำเร็จ", @@ -2417,7 +2444,7 @@ "manageFailed": "เปิดการจัดการการสมัครสมาชิก App Store ไม่สำเร็จ", "kiloPassSetup": "การตั้งค่า Kilo Pass", "subscriptionHeaderDescription": "การสมัครสมาชิกรายเดือนที่เพิ่มเครดิตให้กับยอดคงเหลือ Kilo ของคุณสำหรับการรันเซสชันการเขียนโค้ด AI ใน Kilo App — Cloud Agents, เซสชันระยะไกล และการแชท KiloClaw", - "tierDescription": "เครดิตที่ชำระแล้ว ${{price}} ถูกเพิ่มรายเดือนสำหรับการใช้งาน Kilo App", + "tierDescription": "เครดิตที่ชำระแล้ว {{price}} ถูกเพิ่มรายเดือนสำหรับการใช้งาน Kilo App", "subscribe": "สมัครสมาชิก", "subscribeDescription": "เครดิตรายเดือนพร้อมความคืบหน้าโบนัส", "manage": "จัดการ", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass รอดำเนินการ", "statusCanceling": "Kilo Pass กำลังยกเลิก", "statusPastDue": "Kilo Pass ค้างชำระ", - "monthlyCredits": "เครดิต ${{credits}} ต่อเดือน", + "monthlyCredits": "เครดิต {{credits}} ต่อเดือน", "ends": "สิ้นสุด {{date}}", "periodEnd": "สิ้นสุดงวด", "managedOnGooglePlay": "จัดการบน Google Play", diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index b1849cdd5f..e25af8d9c4 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -201,7 +201,8 @@ "agents": "Ajanlar", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, sekme, {{position}} / {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Son", "common": "Yaygın", "reactWith": "{{reaction}} ile tepki ver", - "accessibility": "{{emoji}} tepki, {{count}}" + "accessibility": "{{emoji}} tepki, {{displayCount}}" }, "composer": { "replyingTo": "Yanıtlanıyor", @@ -271,7 +272,7 @@ "imageUnavailable": "Görüntü kullanılamıyor", "openFailed": "Ek açılamadı. Bağlantını kontrol et ve tekrar dene.", "attachFailed": "Dosya eklenemedi", - "limit": "En fazla {{count}} dosya ekleyebilirsin.", + "limit": "En fazla {{displayCount}} dosya ekleyebilirsin.", "sizeRejection": "{{filename}}, {{limit}} ek sınırını aşıyor.", "unreadable": "{{filename}} okunamadı.", "pastedImage": "yapıştırılan görsel", @@ -343,6 +344,7 @@ "finalTermEnds": "Son dönem sona eriyor", "afterFinalTerm": "Son dönemden sonra", "remaining": "Kalan", + "lessThanOneDay": "1 günden az", "ends": "Sona eriyor", "expires": "Süresi doluyor", "noActivePlan": "Etkin plan yok", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "aylık Standard fiyatınız", "perMonth": "/ay", "earlybirdAccessUntil": "Earlybird erişimi {{date}} tarihine kadar", - "earlybirdEnding": "Earlybird bitiyor: {{days}} gün kaldı", + "earlybirdEnding": "Earlybird bitiyor: {{remaining}} gün kaldı", "paymentPastDue": "Ödeme gecikti. Lütfen ödeme yönteminizi güncelleyin.", "subscriptionCancels": "Abonelik {{date}} tarihinde iptal ediliyor", - "trialDaysRemaining": "Deneme: {{days}} gün kaldı", - "trialEndingSoon": "Deneme yakında bitiyor: {{days}}" + "trialDaysRemaining": "Deneme: {{remaining}} gün kaldı", + "trialEndingSoon": "Deneme yakında bitiyor: {{remaining}}" }, "changelog": { "title": "Yenilikler", @@ -665,7 +667,7 @@ "startingSandbox": "Korumalı alan başlatılıyor", "stoppedBody": "{{name}} örneği kurulum sırasında beklenmedik şekilde durdu.", "stoppedTitle": "Kurulum durdu", - "timeoutBody": "{{name}} kurulumu normalden uzun sürüyor ({{minutes}} dakikadan fazla).", + "timeoutBody": "{{name}} kurulumu normalden uzun sürüyor ({{displayMinutes}} dakikadan fazla).", "timeoutTitle": "Beklenenden uzun sürüyor" }, "unavailableDescription": "Bir örnek sağlamak için geçerli bir KiloClaw aboneliği gerekir. Mevcut örnekler ve abonelikler normal şekilde devam eder.", @@ -912,7 +914,7 @@ "focusAreas": "Odak alanları", "mergeGate": "Birleştirme kapısı", "model": "Model", - "nSelected": "{{count}} seçili", + "nSelected": "{{displayCount}} seçili", "proposedReviewMdGuidance": "Önerilen REVIEW.md yönergesi", "repositories": "Depolar", "reviewMemory": "İnceleme belleği", @@ -981,7 +983,7 @@ "triageReasoning": "Triyaj gerekçesi", "unknown": "Bilinmiyor", "watchInCloudAgent": "Bulut Ajanı'nda izle", - "whereFound": "Bunun bulunduğu yer ({{count}})", + "whereFound": "Bunun bulunduğu yer ({{displayCount}})", "yes": "Evet" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "Doğrulanmış istismar edilebilir", "couldNotLoad": "Panel verileri yüklenemedi", "criticalOverdue": "Kritik gecikmiş", - "daysOverdue": "{{count}} gün gecikmiş", + "daysOverdue": "{{displayCount}} gün gecikmiş", "deadlineToday": "Son tarih bugün doldu", "filterByRepository": "Depoya göre filtrele", "findings": "Bulgular", - "findingsCount": "{{count}} bulgu", + "findingsCount": "{{displayCount}} bulgu", "highOverdue": "Yüksek gecikmiş", "lastSynced": "Son eşitleme: {{time}}", "manageRepositories": "Depoları yönet", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "Eşitleme durumu kullanılamıyor", "withinDeadline": "Son tarih içinde" }, + "dashboardMetrics": { + "openFindings": "Açık bulgular", + "openFindingsDetail": "{{critical}} kritik, {{high}} yüksek", + "confirmedExploitable": "Doğrulanmış istismar edilebilir", + "confirmedExploitableDetail": "Proje riski analizle doğrulandı", + "needsReview": "İncelemeniz gerekiyor", + "needsReviewDetail": "İnsan kararı gerekli", + "analysisIncomplete": "Analiz tamamlanmadı", + "analysisIncompleteDetail": "Proje riski henüz bilinmiyor", + "slaCompliance": "SLA uyumu", + "notMeasured": "Ölçülmedi", + "withinDeadlineDetail": "{{total}} içinden {{within}} son tarih içinde", + "noDeadlineData": "Henüz SLA son tarihi olan bulgu yok", + "deadlinePassed": "Son tarih geçti", + "deadlinePassedDetail": "{{critical}} kritik, {{high}} yüksek", + "dueThisWeek": "Bu hafta son teslim", + "dueThisWeekDetail": "{{exploitable}} doğrulanmış istismar edilebilir", + "noDeadline": "Son tarih yok", + "reviewSlaAssignment": "SLA atamasını incele", + "allOpenFindingsTracked": "Tüm açık bulgular takip ediliyor" + }, "dismiss": { "alreadyResolvedDescription": "Bu bulgu zaten çözümlendi ve artık yok sayma kabul etmiyor.", "cannotDismissDescription": "Bulguları yalnızca kuruluş sahipleri ve faturalandırma yöneticileri yok sayabilir.", @@ -1188,7 +1211,7 @@ "title": "Bildirimler" }, "remediation": { - "attemptHistory": "Deneme geçmişi ({{count}})", + "attemptHistory": "Deneme geçmişi ({{displayCount}})", "attemptNumber": "Deneme #{{number}}", "branch": "Dal", "cancelMessage": "Security Agent, sürmekte olan iyileştirme denemesini durdurur.", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "{{mode}} analiz", "automation": "Otomasyon", "automationAllOff": "Tümü kapalı", - "automationCount": "3 özellikten {{count}} etkin", + "automationCount": "3 özellikten {{displayCount}} etkin", "couldNotLoadPermissions": "İzinler yüklenemedi", "couldNotLoadRepositories": "Depolar yüklenemedi", "couldNotLoadSettings": "Security Agent ayarları yüklenemedi", @@ -1267,7 +1290,7 @@ "enabled": "Etkin", "modelsAndAnalysis": "Modeller ve analiz", "notifications": "Bildirimler", - "notificationsCount": "2 özellikten {{count}} etkin", + "notificationsCount": "2 özellikten {{displayCount}} etkin", "off": "Kapalı", "on": "Açık", "repositories": "Depolar", @@ -1476,9 +1499,9 @@ "toolTask": "görev", "readTodos": "Görevleri oku", "updateTodos": "Görevleri güncelle", - "linesBadge": "{{count}} satır", - "filesBadge": "{{count}} dosya", - "matchesBadge": "{{count}} eşleşme" + "linesBadge": "{{displayCount}} satır", + "filesBadge": "{{displayCount}} dosya", + "matchesBadge": "{{displayCount}} eşleşme" }, "readToolMarkdown": { "linesTruncated": "satırlar {{start}}–{{end}} (kısaltıldı)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "Bu yanıt bildirilemez.", "reportAiResponseSubmitted": "Bildirim gönderildi. Makbuz {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Ayrıntılar kullanılamıyor", "textDisplay": "Metin görüntüsü", @@ -1620,7 +1647,7 @@ "preparationComplete": "Hazırlık tamamlandı", "preparationFailed": "Hazırlık başarısız oldu", "setupCommand": "Kurulum komutu {{index}}", - "setupCommandOf": "Kurulum komutu {{index}} / {{count}}" + "setupCommandOf": "Kurulum komutu {{index}} / {{displayCount}}" }, "permissionCard": { "title": "İzin gerekli", @@ -1657,7 +1684,7 @@ "submissionFailed": "Gönderim başarısız oldu. Lütfen tekrar deneyin.", "questionAnnouncement": "Ajanın girdinize ihtiyacı var. Siz yanıtlarken yazma alanı duraklatıldı.", "permissionAnnouncement": "Ajanın devam etmek için izne ihtiyacı var. Siz karar verirken yazma alanı duraklatıldı.", - "positionHint": "(1 / {{count}})", + "positionHint": "(1 / {{displayCount}})", "movedPastPrompt": "Ajan bu istemi geçti. Oturum devam ettiğinde bu kart kapanacak.", "waitingForAnswer": "Ajan yanıtınızı bekliyor. Bu soru açıkken ajana gönderdiğiniz mesaj duraklatılır.", "waitingForPermission": "Ajan izin bekliyor. Bu istek açıkken ajana gönderdiğiniz mesaj duraklatılır." @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "Kamera Erişimi Devre Dışı", "cameraAccessMessage": "Fotoğraf çekmek için Ayarlar'da kamera erişimine izin verin.", "couldNotOpenPhotoPicker": "Fotoğraf seçici açılamadı. Kilo'yu yeniden başlatıp tekrar deneyin.", - "maxFilesAllowed": "En fazla {{count}} dosyaya izin verilir", + "maxFilesAllowed": "En fazla {{displayCount}} dosyaya izin verilir", "onlyAddingFiles": "Yalnızca {{total}} dosyanın {{accepted}} kadarı ekleniyor (en fazla {{max}})" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "maliyet {{cost}}", "costSuffix": ", maliyet {{cost}}", "tokensWindowUnavailable": "Bağlam {{used}} jeton, pencere kullanılamıyor", - "tokensUsage": "Bağlam {{window}} jetonun {{used}} kadarı, %{{percentage}} kullanıldı", + "tokensUsage": "Bağlam {{window}} jetonun {{used}} kadarı, {{percentage}} kullanıldı", "title": "Bağlam kullanımı", "used": "Kullanılan", "remaining": "Kalan", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "Kullanım, tamamlanan en son asistan yanıtını yansıtır.", "tokenUsage": "Jeton kullanımı", "cacheRate": "Önbellek oranı", - "modelsCount": "Modeller ({{count}})", + "modelsCount": "Modeller ({{displayCount}})", "tokenTotalsNote": "Jeton toplamları yalnızca bu oturumu kapsar ve alt ajan/alt oturum jetonlarını hariç tutar.", "subagents": "Alt ajanlar", "subagentsDescription": "Alt oturumlardan kalan maliyet", @@ -1994,7 +2021,7 @@ "connectedCli": "Bağlı bir CLI üzerinde", "newSessionOn": "{{name}} üzerinde yeni oturum", "noMatchingSessions": "Eşleşen oturum yok.", - "onlyFirstFilesAttached": "Yalnızca ilk {{count}} dosya eklenecek.", + "onlyFirstFilesAttached": "Yalnızca ilk {{displayCount}} dosya eklenecek.", "staleMessage": "Bu paylaşım artık kullanılamıyor.", "retryableMessage": "Oturumlarınız yüklenemedi.", "emptyMessage": "Henüz oturum yok — bunu göndermek için yeni bir tane başlatın.", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "Bu Apple Hesabındaki Kilo Pass farklı bir Kilo hesabına ait. Yönetmek için o Kilo hesabıyla oturum açın.", "alreadySubscribed": "Zaten bir Kilo Pass aboneliğiniz var.", "purchaseUnavailable": "Kilo Pass satın alımı şu anda kullanılamıyor.", - "tierCredits": "${{amount}} kredi", + "tierCredits": "{{amount}} kredi", "perMonth": "{{price}}/ay", "verifyPurchaseFailed": "Satın alımınız doğrulanamadı. Bağlantınızı kontrol edip tekrar deneyin.", "productsCouldNotLoad": "Kilo Pass ürünleri App Store'dan yüklenemedi.", @@ -2038,7 +2065,7 @@ "manageFailed": "App Store abonelik yönetimi açılamadı.", "kiloPassSetup": "Kilo Pass kurulumu", "subscriptionHeaderDescription": "Kilo App'te AI kodlama oturumları yürütmek için Kilo bakiyenize kredi ekleyen aylık bir abonelik — Cloud Agents, uzak oturumlar ve KiloClaw sohbetleri.", - "tierDescription": "Kilo App kullanımı için aylık ${{price}} ücretli kredi eklenir.", + "tierDescription": "Kilo App kullanımı için aylık {{price}} ücretli kredi eklenir.", "subscribe": "Abone ol", "subscribeDescription": "Bonus ilerlemeyle aylık krediler", "manage": "Yönet", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass bekleniyor", "statusCanceling": "Kilo Pass iptal ediliyor", "statusPastDue": "Kilo Pass vadesi geçmiş", - "monthlyCredits": "Aylık ${{credits}} kredi", + "monthlyCredits": "Aylık {{credits}} kredi", "ends": "Bitiş: {{date}}", "periodEnd": "dönem sonu", "managedOnGooglePlay": "Google Play'de yönetiliyor", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "Bu çekme isteğini görüntüleme izniniz yok.", "checkConnection": "Bağlantıyı kontrol et", "checks": { - "checksCount": "{{count}} kontrol", + "checksCount": "{{displayCount}} kontrol", "couldNotLoad": "Kontroller yüklenemedi.", - "failed": "{{count}} başarısız", + "failed": "{{displayCount}} başarısız", "noAccess": "Bu deponun kontrollerine erişiminiz yok.", "noChecksReported": "Kontrol bildirilmedi", "notAvailable": "Kontroller henüz kullanılamıyor. Head commit işlenmemiş olabilir veya Kilo GitHub Uygulaması head depoya kurulu olmayabilir.", "openDetails": "{{name}} ayrıntılarını aç", - "passed": "{{count}} geçti", - "pending": "{{count}} bekliyor", + "passed": "{{displayCount}} geçti", + "pending": "{{displayCount}} bekliyor", "retryChecks": "Kontrolleri tekrar dene", - "skipped": "{{count}} atlandı", + "skipped": "{{displayCount}} atlandı", "title": "Kontroller", "viewOnGitHub": "PR'ı GitHub'da görüntüle", "checkDetails": "kontrol ayrıntıları", @@ -2238,7 +2265,7 @@ "terminal": "Bu kullanıcı bildirilemez." } }, - "moreLinesAbove": "… yukarıda {{count}} satır daha", + "moreLinesAbove": "… yukarıda {{displayCount}} satır daha", "mute": "Sustur", "mutedUser": "{{login}} susturuldu", "noDiscussion": "Henüz tartışma yok", @@ -2246,7 +2273,7 @@ "comment_one": "1 yorum", "outdated": "Güncel değil", "quotedDiffSnippet": "Alıntılanan diff parçası", - "reactionPill": "{{emoji}} tepki, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} tepki, {{displayCount}} {{countLabel}}", "reaction": "tepki", "reaction_other": "tepki", "reaction_one": "tepki", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "Bu ref'te bağlam kullanılamıyor", "expandAll": "Tümünü genişlet", - "expandAllLines": "{{count}} satırın tümünü genişlet", + "expandAllLines": "{{displayCount}} satırın tümünü genişlet", "expandContext": "Bağlamı genişlet", - "expandLines": "{{count}} satırı genişlet ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} satır bağlamı genişlet", + "expandLines": "{{displayCount}} satırı genişlet ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} satır bağlamı genişlet", "expandMoreContext": "Daha fazla bağlam genişlet", - "expandMoreLines": "{{count}} satır daha genişlet ({{start}}–{{end}})", + "expandMoreLines": "{{displayCount}} satır daha genişlet ({{start}}–{{end}})", "failedToLoadContext": "Bağlam yüklenemedi — tekrar denemek için dokunun", "failedToLoadMoreFiles": "Daha fazla dosya yüklenemedi — tekrar denemek için dokunun", "fileLoadedCount_one": "{{displayCount}} dosya yüklendi", @@ -2500,8 +2527,8 @@ "pendingComment_one": "bekleyen yorum", "summaryOptional": "Özet (isteğe bağlı)", "title": "İncelemeyi gönder", - "partialPostedMessage": "{{freshCount}} yorum gönderildi. {{staleCount}} yorum daha eski bir commit'e işaret ediyor ve kuyruğunuzda kaldı.", - "submitCountOfTotal": "{{totalCount}} yorumun {{freshCount}} tanesini gönder", + "partialPostedMessage": "{{displayFreshCount}} yorum gönderildi. {{displayStaleCount}} yorum daha eski bir commit'e işaret ediyor ve kuyruğunuzda kaldı.", + "submitCountOfTotal": "{{displayTotalCount}} yorumun {{displayFreshCount}} tanesini gönder", "submitReview": "İncelemeyi gönder" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index d2f48bf185..3d75de351f 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -201,7 +201,8 @@ "agents": "Агенти", "profile": "Профіль", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, вкладка, {{position}} з {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Недавні", "common": "Поширені", "reactWith": "Реагувати з {{reaction}}", - "accessibility": "{{emoji}} реакція, {{count}}" + "accessibility": "{{emoji}} реакція, {{displayCount}}" }, "composer": { "replyingTo": "Відповідь на", @@ -271,7 +272,7 @@ "imageUnavailable": "Зображення недоступне", "openFailed": "Не вдалося відкрити вкладення. Перевірте з'єднання та спробуйте ще раз.", "attachFailed": "Не вдалося прикріпити файл", - "limit": "Можна прикріпити до {{count}} файлів.", + "limit": "Можна прикріпити до {{displayCount}} файлів.", "sizeRejection": "{{filename}} перевищує ліміт вкладення {{limit}}.", "unreadable": "Не вдалося прочитати {{filename}}.", "pastedImage": "вставлене зображення", @@ -321,7 +322,9 @@ "someone": "Хтось", "typing_one": "{{name}} друкує...", "typing": "{{names}} друкують...", - "typing_other": "{{names}} друкують..." + "typing_other": "{{names}} друкують...", + "typing_few": "{{names}} друкують...", + "typing_many": "{{names}} друкують..." }, "botStatus": { "online": "У мережі", @@ -343,6 +346,7 @@ "finalTermEnds": "Останній період завершується", "afterFinalTerm": "Після останнього періоду", "remaining": "Залишилося", + "lessThanOneDay": "Менше ніж 1 день", "ends": "Завершується", "expires": "Спливає", "noActivePlan": "Немає активного тарифу", @@ -361,11 +365,11 @@ "yourStandardMonthlyPrice": "ваша щомісячна ціна Standard", "perMonth": "/міс", "earlybirdAccessUntil": "Доступ Earlybird до {{date}}", - "earlybirdEnding": "Earlybird завершується: залишилося {{days}} дн.", + "earlybirdEnding": "Earlybird завершується: залишилося {{remaining}} дн.", "paymentPastDue": "Платіж прострочено. Оновіть спосіб оплати.", "subscriptionCancels": "Підписка скасовується {{date}}", - "trialDaysRemaining": "Пробний період: залишилося {{days}} дн.", - "trialEndingSoon": "Пробний період завершується незабаром: {{days}}" + "trialDaysRemaining": "Пробний період: залишилося {{remaining}} дн.", + "trialEndingSoon": "Пробний період завершується незабаром: {{remaining}}" }, "changelog": { "title": "Що нового", @@ -567,7 +571,9 @@ "openSettings": "Відкрити налаштування для {{name}}", "openUnread": "Відкрити {{name}}, {{displayCount}} непрочитаних повідомлень", "openUnread_other": "Відкрити {{name}}, {{displayCount}} непрочитаних повідомлень", - "openUnread_one": "Відкрити {{name}}, {{displayCount}} непрочитане повідомлення" + "openUnread_one": "Відкрити {{name}}, {{displayCount}} непрочитане повідомлення", + "openUnread_few": "Відкрити {{name}}, непрочитаних повідомлення: {{displayCount}}", + "openUnread_many": "Відкрити {{name}}, непрочитаних повідомлень: {{displayCount}}" }, "list": { "createInstance": "Створити екземпляр", @@ -665,7 +671,7 @@ "startingSandbox": "Запуск пісочниці", "stoppedBody": "Екземпляр {{name}} несподівано зупинився під час налаштування.", "stoppedTitle": "Налаштування зупинено", - "timeoutBody": "Налаштування {{name}} триває довше, ніж зазвичай (понад {{minutes}} хвилин).", + "timeoutBody": "Налаштування {{name}} триває довше, ніж зазвичай (понад {{displayMinutes}} хвилин).", "timeoutTitle": "Триває довше, ніж очікувалося" }, "unavailableDescription": "Для підготовки екземпляра потрібна активна підписка KiloClaw. Наявні екземпляри та підписки працюють як зазвичай.", @@ -912,7 +918,7 @@ "focusAreas": "Області уваги", "mergeGate": "Шлюз злиття", "model": "Модель", - "nSelected": "{{count}} вибрано", + "nSelected": "{{displayCount}} вибрано", "proposedReviewMdGuidance": "Запропоновані настанови REVIEW.md", "repositories": "Репозиторії", "reviewMemory": "Пам'ять перевірок", @@ -981,7 +987,7 @@ "triageReasoning": "Обґрунтування тріажу", "unknown": "Невідомо", "watchInCloudAgent": "Переглянути в хмарному агенті", - "whereFound": "Де це було знайдено ({{count}})", + "whereFound": "Де це було знайдено ({{displayCount}})", "yes": "Так" }, "analysisSettings": { @@ -1048,7 +1054,9 @@ "severityCriticalOnly": "Лише критичні", "severityHighAndAbove": "Висока та вище", "severityMediumAndAbove": "Середня та вище", - "title": "Автоматизація" + "title": "Автоматизація", + "queued_few": "{{displayCount}} наявні знахідки в черзі на аналіз.", + "queued_many": "{{displayCount}} наявних знахідок у черзі на аналіз." }, "commandRetry": { "discard": "Відкинути" @@ -1061,11 +1069,11 @@ "confirmedExploitable": "Підтверджено експлуатований", "couldNotLoad": "Не вдалося завантажити дані панелі керування", "criticalOverdue": "Критичні прострочені", - "daysOverdue": "прострочено на {{count}} дн.", + "daysOverdue": "прострочено на {{displayCount}} дн.", "deadlineToday": "Термін настав сьогодні", "filterByRepository": "Фільтрувати за репозиторієм", "findings": "Знахідки", - "findingsCount": "{{count}} знахідок", + "findingsCount": "{{displayCount}} знахідок", "highOverdue": "Високі прострочені", "lastSynced": "Востаннє синхронізовано {{time}}", "manageRepositories": "Керувати репозиторіями", @@ -1091,6 +1099,27 @@ "syncStatusUnavailable": "Стан синхронізації недоступний", "withinDeadline": "У межах терміну" }, + "dashboardMetrics": { + "openFindings": "Відкриті знахідки", + "openFindingsDetail": "{{critical}} критичних, {{high}} високих", + "confirmedExploitable": "Підтверджено експлуатований", + "confirmedExploitableDetail": "Ризик проєкту підтверджено аналізом", + "needsReview": "Потребує вашої перевірки", + "needsReviewDetail": "Потрібне рішення людини", + "analysisIncomplete": "Аналіз не завершено", + "analysisIncompleteDetail": "Ризик проєкту ще невідомий", + "slaCompliance": "Відповідність SLA", + "notMeasured": "Не виміряно", + "withinDeadlineDetail": "{{within}} з {{total}} у межах терміну", + "noDeadlineData": "Жодна знахідка ще не має терміну SLA", + "deadlinePassed": "Термін минув", + "deadlinePassedDetail": "{{critical}} критичних, {{high}} високих", + "dueThisWeek": "Термін цього тижня", + "dueThisWeekDetail": "{{exploitable}} підтверджено експлуатованих", + "noDeadline": "Терміну немає", + "reviewSlaAssignment": "Переглянути призначення SLA", + "allOpenFindingsTracked": "Усі відкриті знахідки відстежуються" + }, "dismiss": { "alreadyResolvedDescription": "Цю знахідку вже вирішено, і вона більше не приймає відхилення.", "cannotDismissDescription": "Відхиляти знахідки можуть лише власники організації та менеджери з оплати.", @@ -1188,7 +1217,7 @@ "title": "Сповіщення" }, "remediation": { - "attemptHistory": "Історія спроб ({{count}})", + "attemptHistory": "Історія спроб ({{displayCount}})", "attemptNumber": "Спроба №{{number}}", "branch": "Гілка", "cancelMessage": "Агент безпеки зупинить поточну спробу усунення.", @@ -1256,7 +1285,7 @@ "analysisModeSubtitle": "аналіз {{mode}}", "automation": "Автоматизація", "automationAllOff": "Усе вимкнено", - "automationCount": "увімкнено {{count}} з 3", + "automationCount": "увімкнено {{displayCount}} з 3", "couldNotLoadPermissions": "Не вдалося завантажити дозволи", "couldNotLoadRepositories": "Не вдалося завантажити репозиторії", "couldNotLoadSettings": "Не вдалося завантажити налаштування Агента безпеки", @@ -1267,7 +1296,7 @@ "enabled": "Увімкнено", "modelsAndAnalysis": "Моделі та аналіз", "notifications": "Сповіщення", - "notificationsCount": "увімкнено {{count}} з 2", + "notificationsCount": "увімкнено {{displayCount}} з 2", "off": "Вимкнено", "on": "Увімкнено", "repositories": "Репозиторії", @@ -1278,7 +1307,9 @@ "selectRepositories": "Вибрати репозиторії", "selectRepositoriesSubtitle": "Виберіть, які репозиторії відстежує Агент безпеки", "slaPolicy": "Політика SLA", - "title": "Налаштування" + "title": "Налаштування", + "repositoriesCount_few": "вибрано {{displayCount}} репозиторії", + "repositoriesCount_many": "вибрано {{displayCount}} репозиторіїв" }, "settingsSave": { "discard": "Відкинути", @@ -1355,7 +1386,11 @@ "cent_other": "центів", "dollar_one": "долар", "dollar": "доларів", - "dollar_other": "доларів" + "dollar_other": "доларів", + "cent_few": "центи", + "cent_many": "центів", + "dollar_few": "долари", + "dollar_many": "доларів" }, "githubInstall": { "couldNotOpenMessage": "Не вдалося розпочати налаштування застосунку GitHub. Спробуйте ще раз.", @@ -1451,7 +1486,9 @@ "partRenderer": { "updatedFileCount_one": "Оновлено {{displayCount}} файл", "updatedFileCount": "Оновлено {{displayCount}} файлів", - "updatedFileCount_other": "Оновлено {{displayCount}} файлів" + "updatedFileCount_other": "Оновлено {{displayCount}} файлів", + "updatedFileCount_few": "Оновлено {{displayCount}} файли", + "updatedFileCount_many": "Оновлено {{displayCount}} файлів" }, "toolPatch": { "operationAdded": "Додано", @@ -1476,9 +1513,9 @@ "toolTask": "завдання", "readTodos": "Читати завдання", "updateTodos": "Оновити завдання", - "linesBadge": "{{count}} рядків", - "filesBadge": "{{count}} файлів", - "matchesBadge": "{{count}} збігів" + "linesBadge": "{{displayCount}} рядків", + "filesBadge": "{{displayCount}} файлів", + "matchesBadge": "{{displayCount}} збігів" }, "readToolMarkdown": { "linesTruncated": "рядки {{start}}–{{end}} (обрізано)", @@ -1562,6 +1599,10 @@ "reportAiResponseFailedTerminal": "На цю відповідь не можна поскаржитися.", "reportAiResponseSubmitted": "Скаргу надіслано. Квитанція {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Відомості недоступні", "textDisplay": "Текстове відображення", @@ -1620,7 +1661,7 @@ "preparationComplete": "Підготовку завершено", "preparationFailed": "Підготовка не вдалася", "setupCommand": "Команда налаштування {{index}}", - "setupCommandOf": "Команда налаштування {{index}} з {{count}}" + "setupCommandOf": "Команда налаштування {{index}} з {{displayCount}}" }, "permissionCard": { "title": "Потрібен дозвіл", @@ -1657,7 +1698,7 @@ "submissionFailed": "Надсилання не вдалося. Спробуйте ще раз.", "questionAnnouncement": "Агент потребує вашого введення. Редактор призупинено, поки ви відповідаєте.", "permissionAnnouncement": "Агенту потрібен дозвіл, щоб продовжити. Редактор призупинено, поки ви вирішуєте.", - "positionHint": "(1 з {{count}})", + "positionHint": "(1 з {{displayCount}})", "movedPastPrompt": "Агент пройшов повз цей запит. Ця картка закриється, коли сеанс продовжиться.", "waitingForAnswer": "Агент чекає на вашу відповідь. Поки це запитання відкрите, ваше повідомлення агенту призупинено.", "waitingForPermission": "Агент чекає на дозвіл. Поки цей запит відкритий, ваше повідомлення агенту призупинено." @@ -1697,7 +1738,9 @@ "omitted_other": "{{displayCount}} давніших елементів цього сеансу не вдалося відобразити.", "couldNotLoad": "Не вдалося завантажити давніші повідомлення.", "unavailable": "Давніші повідомлення недоступні.", - "tooLarge": "Давніші повідомлення завеликі для завантаження." + "tooLarge": "Давніші повідомлення завеликі для завантаження.", + "omitted_few": "{{displayCount}} давніших елементи цього сеансу не вдалося відобразити.", + "omitted_many": "{{displayCount}} давніших елементів цього сеансу не вдалося відобразити." }, "markdownTable": { "viewTable": "Переглянути таблицю", @@ -1709,7 +1752,11 @@ "rowCount_one": "рядок", "rowCount": "рядки", "rowCount_other": "рядки", - "opensFullScreen": "відкривається на весь екран" + "opensFullScreen": "відкривається на весь екран", + "columnCount_few": "стовпці", + "columnCount_many": "стовпців", + "rowCount_few": "рядки", + "rowCount_many": "рядків" }, "sessionFilter": { "title": "Фільтрувати сеанси", @@ -1778,7 +1825,7 @@ "cameraAccessDisabled": "Доступ до камери вимкнено", "cameraAccessMessage": "Дозвольте доступ до камери в Налаштуваннях, щоб зробити фото.", "couldNotOpenPhotoPicker": "Не вдалося відкрити вибір фото. Перезапустіть Kilo та спробуйте ще раз.", - "maxFilesAllowed": "Максимум {{count}} файлів", + "maxFilesAllowed": "Максимум {{displayCount}} файлів", "onlyAddingFiles": "Додається лише {{accepted}} із {{total}} файлів (макс. {{max}})" }, "composer": { @@ -1843,7 +1890,7 @@ "costPrefix": "вартість {{cost}}", "costSuffix": ", вартість {{cost}}", "tokensWindowUnavailable": "Контекст {{used}} токенів, вікно недоступне", - "tokensUsage": "Контекст {{used}} з {{window}} токенів, використано {{percentage}}%", + "tokensUsage": "Контекст {{used}} з {{window}} токенів, використано {{percentage}}", "title": "Використання контексту", "used": "Використано", "remaining": "Залишилося", @@ -1852,7 +1899,7 @@ "usageReflectsLatest": "Використання відображає останню завершену відповідь асистента.", "tokenUsage": "Використання токенів", "cacheRate": "Тариф кешу", - "modelsCount": "Моделі ({{count}})", + "modelsCount": "Моделі ({{displayCount}})", "tokenTotalsNote": "Загальна кількість токенів стосується лише цього сеансу та не включає токени субагентів/дочірніх сеансів.", "subagents": "Субагенти", "subagentsDescription": "Залишкова вартість від дочірніх сеансів", @@ -1864,7 +1911,9 @@ "stepsCount_one": "{{steps}} крок", "stepsCount": "{{steps}} кроків", "stepsCount_other": "{{steps}} кроків", - "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}" + "modelAccessibilityLabel": "{{name}}, {{provider}}, {{steps}}, {{cost}}", + "stepsCount_few": "{{steps}} кроки", + "stepsCount_many": "{{steps}} кроків" }, "prBadge": { "open": "відкритий pull request", @@ -1994,7 +2043,7 @@ "connectedCli": "На підключеному CLI", "newSessionOn": "Новий сеанс на {{name}}", "noMatchingSessions": "Немає відповідних сеансів.", - "onlyFirstFilesAttached": "Буде прикріплено лише перші {{count}} файлів.", + "onlyFirstFilesAttached": "Буде прикріплено лише перші {{displayCount}} файлів.", "staleMessage": "Цей обмін більше недоступний.", "retryableMessage": "Не вдалося завантажити ваші сеанси.", "emptyMessage": "Сеансів поки немає — почніть новий, щоб надіслати це.", @@ -2027,7 +2076,7 @@ "otherAccountCopy": "Kilo Pass на цьому обліковому записі Apple належить іншому обліковому запису Kilo. Увійдіть у той обліковий запис Kilo, щоб керувати ним.", "alreadySubscribed": "У вас уже є підписка Kilo Pass.", "purchaseUnavailable": "Покупка Kilo Pass зараз недоступна.", - "tierCredits": "${{amount}} у кредитах", + "tierCredits": "{{amount}} у кредитах", "perMonth": "{{price}}/міс", "verifyPurchaseFailed": "Не вдалося підтвердити вашу покупку. Перевірте з'єднання та спробуйте ще раз.", "productsCouldNotLoad": "Не вдалося завантажити продукти Kilo Pass з App Store.", @@ -2038,7 +2087,7 @@ "manageFailed": "Не вдалося відкрити керування підписками App Store.", "kiloPassSetup": "Налаштування Kilo Pass", "subscriptionHeaderDescription": "Щомісячна підписка, яка додає кредити на ваш баланс Kilo для запуску AI-сесій кодування в Kilo App — Cloud Agents, віддалених сесій і KiloClaw-чатів.", - "tierDescription": "${{price}} платних кредитів додається щомісяця за використання Kilo App.", + "tierDescription": "{{price}} платних кредитів додається щомісяця за використання Kilo App.", "subscribe": "Підписатися", "subscribeDescription": "Щомісячні кредити з бонусним прогресом", "manage": "Керувати", @@ -2046,7 +2095,7 @@ "statusPending": "Kilo Pass очікує", "statusCanceling": "Kilo Pass скасовується", "statusPastDue": "Kilo Pass прострочений", - "monthlyCredits": "${{credits}} щомісячних кредитів", + "monthlyCredits": "{{credits}} щомісячних кредитів", "ends": "Закінчується {{date}}", "periodEnd": "кінець періоду", "managedOnGooglePlay": "Керується в Google Play", @@ -2150,17 +2199,17 @@ "accessDeniedDescription": "У вас немає дозволу переглядати цей pull request.", "checkConnection": "Перевірити з'єднання", "checks": { - "checksCount": "{{count}} перевірок", + "checksCount": "{{displayCount}} перевірок", "couldNotLoad": "Не вдалося завантажити перевірки.", - "failed": "{{count}} невдалих", + "failed": "{{displayCount}} невдалих", "noAccess": "У вас немає доступу до перевірок цього репозиторію.", "noChecksReported": "Перевірок не повідомлено", "notAvailable": "Перевірки ще недоступні. Можливо, головний коміт ще не оброблено або застосунок Kilo GitHub не встановлено в головному репозиторії.", "openDetails": "Відкрити деталі {{name}}", - "passed": "{{count}} успішних", - "pending": "{{count}} очікують", + "passed": "{{displayCount}} успішних", + "pending": "{{displayCount}} очікують", "retryChecks": "Повторити перевірки", - "skipped": "{{count}} пропущено", + "skipped": "{{displayCount}} пропущено", "title": "Перевірки", "viewOnGitHub": "Переглянути PR на GitHub", "checkDetails": "деталі перевірки", @@ -2238,7 +2287,7 @@ "terminal": "На цього користувача не можна поскаржитися." } }, - "moreLinesAbove": "… ще {{count}} рядків вище", + "moreLinesAbove": "… ще {{displayCount}} рядків вище", "mute": "Заглушити", "mutedUser": "Заглушено {{login}}", "noDiscussion": "Обговорень ще немає", @@ -2246,7 +2295,7 @@ "comment_one": "1 коментар", "outdated": "Застаріле", "quotedDiffSnippet": "Процитований фрагмент diff", - "reactionPill": "{{emoji}} реакція, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} реакція, {{displayCount}} {{countLabel}}", "reaction": "реакцій", "reaction_other": "реакцій", "reaction_one": "реакція", @@ -2276,7 +2325,11 @@ "viewTerms": "Переглянути умови", "termsAcceptRequired": "Щоб опублікувати, потрібно прийняти Умови надання послуг.", "termsCheckRetryCopy": "Не вдалося перевірити Умови надання послуг. Перевірте з'єднання та спробуйте ще раз.", - "termsOutdatedCopy": "Умови надання послуг змінилися. Відкрийте цей екран знову, щоб прийняти останню версію." + "termsOutdatedCopy": "Умови надання послуг змінилися. Відкрийте цей екран знову, щоб прийняти останню версію.", + "comment_few": "{{displayCount}} коментарі", + "comment_many": "{{displayCount}} коментарів", + "reaction_few": "реакції", + "reaction_many": "реакцій" }, "entry": { "clearLink": "Очистити посилання на pull request", @@ -2350,12 +2403,12 @@ "hunkRows": { "contextUnavailable": "Контекст недоступний у цьому ref", "expandAll": "Розгорнути все", - "expandAllLines": "Розгорнути всі {{count}} рядків", + "expandAllLines": "Розгорнути всі {{displayCount}} рядків", "expandContext": "Розгорнути контекст", - "expandLines": "Розгорнути {{count}} рядків ({{start}}–{{end}})", - "expandLinesOfContext": "Розгорнути {{count}} рядків контексту", + "expandLines": "Розгорнути {{displayCount}} рядків ({{start}}–{{end}})", + "expandLinesOfContext": "Розгорнути {{displayCount}} рядків контексту", "expandMoreContext": "Розгорнути більше контексту", - "expandMoreLines": "Розгорнути ще {{count}} рядків ({{start}}–{{end}})", + "expandMoreLines": "Розгорнути ще {{displayCount}} рядків ({{start}}–{{end}})", "failedToLoadContext": "Не вдалося завантажити контекст — торкніться, щоб повторити", "failedToLoadMoreFiles": "Не вдалося завантажити більше файлів — торкніться, щоб повторити", "fileLoadedCount_one": "Завантажено {{displayCount}} файл", @@ -2377,7 +2430,11 @@ "loadingLines": "Завантаження {{loaded}} з {{total}} рядків…", "loadingMoreFiles": "Завантаження більшої кількості файлів…", "retryLoadingContext": "Повторити завантаження контексту", - "retryLoadingNextPage": "Повторити завантаження наступної сторінки" + "retryLoadingNextPage": "Повторити завантаження наступної сторінки", + "fileLoadedCount_few": "Завантажено {{displayCount}} файли", + "fileLoadedCount_many": "Завантажено {{displayCount}} файлів", + "fileLoadedOfTotalCount_few": "Завантажено {{displayCount}} файли з {{total}}", + "fileLoadedOfTotalCount_many": "Завантажено {{displayCount}} файлів з {{total}}" }, "inbox": { "couldNotLoad": "Не вдалося завантажити вхідні", @@ -2452,7 +2509,11 @@ "stateOpenApproved": "Відкрито · Схвалено", "stateOpenChangesRequested": "Відкрито · Запитано зміни", "stateOpenReviewRequired": "Відкрито · Потрібна перевірка", - "unknownAuthor": "Невідомий автор" + "unknownAuthor": "Невідомий автор", + "commit_few": "коміти", + "commit_many": "комітів", + "file_few": "файли", + "file_many": "файлів" }, "pendingComment": { "allQueuedHint": "Усі коментарі буде надіслано одним пакетним запитом.", @@ -2500,9 +2561,11 @@ "pendingComment_one": "відкладений коментар", "summaryOptional": "Підсумок (необов'язково)", "title": "Надіслати перевірку", - "partialPostedMessage": "Опубліковано {{freshCount}} коментарів. {{staleCount}} коментарів вказують на старіший коміт і залишилися у вашій черзі.", - "submitCountOfTotal": "Надіслати {{freshCount}} із {{totalCount}} коментарів", - "submitReview": "Надіслати перевірку" + "partialPostedMessage": "Опубліковано {{displayFreshCount}} коментарів. {{displayStaleCount}} коментарів вказують на старіший коміт і залишилися у вашій черзі.", + "submitCountOfTotal": "Надіслати {{displayFreshCount}} із {{displayTotalCount}} коментарів", + "submitReview": "Надіслати перевірку", + "pendingComment_few": "відкладених коментарі", + "pendingComment_many": "відкладених коментарів" }, "fileStatus": { "added": "Додано", @@ -2654,7 +2717,9 @@ "processingNeedsReview": "Обробка потребує перевірки", "retry": "Повторити", "retryHint": "Повторює завантаження стану Kilo Pass.", - "setupHint": "Відкриває налаштування Kilo Pass у вебверсії." + "setupHint": "Відкриває налаштування Kilo Pass у вебверсії.", + "paidSeat_few": "{{displayCount}} оплачених місця", + "paidSeat_many": "{{displayCount}} оплачених місць" } }, "feedback": { diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 44189a2d9b..a13ea055ad 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} میں سے {{loaded}} لائنیں لوڈ ہو رہی ہیں...", "expandContext": "سیاق پھیلائیں", "expandMoreContext": "مزید سیاق پھیلائیں", - "expandLines": "{{count}} لائنیں پھیلائیں ({{start}}–{{end}})", - "expandMoreLines": "مزید {{count}} لائنیں پھیلائیں ({{start}}–{{end}})", - "expandLinesOfContext": "سیاق کی {{count}} لائنیں پھیلائیں", + "expandLines": "{{displayCount}} لائنیں پھیلائیں ({{start}}–{{end}})", + "expandMoreLines": "مزید {{displayCount}} لائنیں پھیلائیں ({{start}}–{{end}})", + "expandLinesOfContext": "سیاق کی {{displayCount}} لائنیں پھیلائیں", "expandAll": "سب پھیلائیں", - "expandAllLines": "تمام {{count}} لائنیں پھیلائیں", + "expandAllLines": "تمام {{displayCount}} لائنیں پھیلائیں", "loadingMoreFiles": "مزید فائلیں لوڈ ہو رہی ہیں...", "retryLoadingNextPage": "اگلا صفحہ لوڈ کرنے کی دوبارہ کوشش کریں", "failedToLoadMoreFiles": "مزید فائلیں لوڈ نہیں ہو سکیں — دوبارہ کوشش کے لیے تھپتھپائیں", @@ -301,7 +301,7 @@ "closeReactions": "ردعمل بند کریں", "reactionsTitle": "ردعمل", "addReaction": "ردعمل شامل کریں", - "reactionPill": "{{emoji}} ردعمل، {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ردعمل، {{displayCount}} {{countLabel}}", "reaction_one": "ردعمل", "reaction": "ردعمل", "reaction_other": "ردعمل", @@ -353,7 +353,7 @@ "noDiscussionDescription": "اس پل ریکویسٹ پر کوئی جائزہ تھریڈ یا گفتگو تبصرہ نہیں۔", "reviewFiles": "فائلوں کا جائزہ لیں", "quotedDiffSnippet": "اقتباسی diff ٹکڑا", - "moreLinesAbove": "اوپر مزید {{count}} لائنیں...", + "moreLinesAbove": "اوپر مزید {{displayCount}} لائنیں...", "termsAcceptRequired": "پوسٹ کرنے کے لیے آپ کو خدمت کی شرائط قبول کرنی ہوں گی۔", "termsOutdatedCopy": "خدمت کی شرائط تبدیل ہو گئیں۔ تازہ ترین ورژن قبول کرنے کے لیے یہ اسکرین دوبارہ کھولیں۔", "termsCheckRetryCopy": "خدمت کی شرائط چیک نہیں ہو سکیں۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔" @@ -395,11 +395,11 @@ "retryChecks": "جانچوں کی دوبارہ کوشش کریں", "viewOnGitHub": "GitHub پر PR دیکھیں", "noChecksReported": "کوئی جانچ رپورٹ نہیں ہوئی", - "passed": "{{count}} پاس", - "failed": "{{count}} ناکام", - "pending": "{{count}} زیر التوا", - "skipped": "{{count}} چھوڑی گئیں", - "checksCount": "{{count}} جانچیں", + "passed": "{{displayCount}} پاس", + "failed": "{{displayCount}} ناکام", + "pending": "{{displayCount}} زیر التوا", + "skipped": "{{displayCount}} چھوڑی گئیں", + "checksCount": "{{displayCount}} جانچیں", "checkDetails": "جانچ کی تفصیلات", "pullRequest": "پل ریکویسٹ" }, @@ -459,9 +459,9 @@ "pendingComment_one": "زیر التوا تبصرہ", "pendingComment": "زیر التوا تبصرے", "pendingComment_other": "زیر التوا تبصرے", - "submitCountOfTotal": "{{totalCount}} میں سے {{freshCount}} تبصرے جمع کریں", + "submitCountOfTotal": "{{displayTotalCount}} میں سے {{displayFreshCount}} تبصرے جمع کریں", "submitReview": "جائزہ جمع کریں", - "partialPostedMessage": "{{freshCount}} تبصرہ(ے) پوسٹ ہوئے۔ {{staleCount}} تبصرہ(ے) پرانی کمیٹ کی طرف اشارہ کرتے ہیں اور آپ کی قطار میں رہے۔" + "partialPostedMessage": "{{displayFreshCount}} تبصرہ(ے) پوسٹ ہوئے۔ {{displayStaleCount}} تبصرہ(ے) پرانی کمیٹ کی طرف اشارہ کرتے ہیں اور آپ کی قطار میں رہے۔" }, "reconnectNotice": { "title": "GitHub کنکشن ختم ہو گیا", @@ -580,7 +580,8 @@ "agents": "ایجینٹس", "profile": "پروفائل", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}، ٹیب، {{total}} میں سے {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "حالیہ", "common": "عام", "reactWith": "{{reaction}} سے ردعمل دیں", - "accessibility": "{{emoji}} ردعمل، {{count}}" + "accessibility": "{{emoji}} ردعمل، {{displayCount}}" }, "composer": { "replyingTo": "کا جواب دے رہے ہیں", @@ -650,7 +651,7 @@ "imageUnavailable": "تصویر دستیاب نہیں", "openFailed": "منسلکہ نہیں کھلا سکے۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔", "attachFailed": "فائل منسلک کرنے میں ناکامی", - "limit": "آپ {{count}} تک فائلیں منسلک کر سکتے ہیں۔", + "limit": "آپ {{displayCount}} تک فائلیں منسلک کر سکتے ہیں۔", "sizeRejection": "{{filename}} {{limit}} منسلکہ حد سے بڑھ جاتی ہے۔", "unreadable": "{{filename}} پڑھی نہیں جا سکی۔", "pastedImage": "چسپاں کردہ تصویر", @@ -722,6 +723,7 @@ "finalTermEnds": "آخری مدت ختم", "afterFinalTerm": "آخری مدت کے بعد", "remaining": "باقی", + "lessThanOneDay": "1 دن سے کم", "ends": "ختم", "expires": "میعاد ختم", "noActivePlan": "کوئی فعال منصوبہ نہیں", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "آپ کی معیاری ماہانہ قیمت", "perMonth": "/ماہ", "earlybirdAccessUntil": "Earlybird تک رسائی {{date}} تک", - "earlybirdEnding": "Earlybird ختم: {{days}} دن باقی", + "earlybirdEnding": "Earlybird ختم: {{remaining}} دن باقی", "paymentPastDue": "ادائیگی زیر التوا ہے۔ براہ کرم اپنا ادائیگی کا طریقہ اپ ڈیٹ کریں۔", "subscriptionCancels": "سبسکرپشن {{date}} کو منسوخ ہوتی ہے", - "trialDaysRemaining": "آزمائش: {{days}} دن باقی", - "trialEndingSoon": "آزمائش جلد ختم: {{days}}" + "trialDaysRemaining": "آزمائش: {{remaining}} دن باقی", + "trialEndingSoon": "آزمائش جلد ختم: {{remaining}}" }, "changelog": { "title": "نیا کیا ہے", @@ -996,7 +998,7 @@ "stalledTitle": "کچھ رک گیا", "stalledBody": "ہم {{name}} کا سیٹ اپ مکمل نہیں کر سکے۔ دوبارہ کوشش کریں، یا اگر ایسا بار بار ہو تو hi@kilo.ai پر ای میل کریں۔", "timeoutTitle": "توقع سے زیادہ وقت لگ رہا ہے", - "timeoutBody": "{{name}} کا سیٹ اپ معمول سے زیادہ وقت لے رہا ہے ({{minutes}} منٹ سے زیادہ)۔", + "timeoutBody": "{{name}} کا سیٹ اپ معمول سے زیادہ وقت لے رہا ہے ({{displayMinutes}} منٹ سے زیادہ)۔", "continueInBackground": "پس منظر میں جاری رکھیں", "settingUp": "{{name}} ترتیب دیا جا رہا ہے", "finishingSetup": "سیٹ اپ مکمل کیا جا رہا ہے", @@ -1287,7 +1289,7 @@ "mergeGate": "مرج گیٹ", "repositories": "ریپوزٹریز", "allRepositories": "تمام ریپوزٹریز", - "nSelected": "{{count}} منتخب", + "nSelected": "{{displayCount}} منتخب", "reviewMemory": "جائزہ میموری", "proposedReviewMdGuidance": "تجویز کردہ REVIEW.md رہنمائی" }, @@ -1391,14 +1393,14 @@ "analyzed": "تجزیہ کیا گیا", "exploitabilityReasoning": "استحصالیت کی دلیل", "suggestedFix": "تجویز کردہ اصلاح", - "whereFound": "یہ کہاں ملا ({{count}})", + "whereFound": "یہ کہاں ملا ({{displayCount}})", "fullReport": "مکمل تیار کردہ رپورٹ", "unknown": "نامعلوم", "yes": "ہاں", "no": "نہیں" }, "dashboard": { - "findingsCount": "{{count}} نتائج", + "findingsCount": "{{displayCount}} نتائج", "notMeasured": "پیمائش نہیں کی گئی", "actFirst": "پہلے اقدام کریں", "slaPosture": "SLA صورتحال", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "ریپوزٹری ایکشن پلان", "noOpenFindings": "کوئی کھلا نتیجہ توجہ نہیں مانگتا", "deadlineToday": "آج آخری تاریخ پہنچ گئی", - "daysOverdue": "{{count}} دن تاخیر شدہ", + "daysOverdue": "{{displayCount}} دن تاخیر شدہ", "withinDeadline": "آخری تاریخ کے اندر", "criticalOverdue": "نازک تاخیر شدہ", "highOverdue": "اعلیٰ تاخیر شدہ", @@ -1435,6 +1437,27 @@ "syncQueued": "ہم آہنگی قطار میں ہے", "syncStatusUnavailable": "ہم آہنگی کی حالت دستیاب نہیں" }, + "dashboardMetrics": { + "openFindings": "کھلے نتائج", + "openFindingsDetail": "{{critical}} نازک، {{high}} اعلیٰ", + "confirmedExploitable": "تصدیق شدہ قابلِ استحصال", + "confirmedExploitableDetail": "پروجیکٹ کا خطرہ تجزیے سے تصدیق شدہ", + "needsReview": "آپ کے جائزے کی ضرورت ہے", + "needsReviewDetail": "انسانی فیصلہ درکار", + "analysisIncomplete": "تجزیہ مکمل نہیں", + "analysisIncompleteDetail": "پروجیکٹ کا خطرہ ابھی نامعلوم", + "slaCompliance": "SLA تعمیل", + "notMeasured": "پیمائش نہیں کی گئی", + "withinDeadlineDetail": "{{total}} میں سے {{within}} آخری تاریخ کے اندر", + "noDeadlineData": "ابھی کسی نتیجے کی SLA آخری تاریخ نہیں", + "deadlinePassed": "آخری تاریخ گزر گئی", + "deadlinePassedDetail": "{{critical}} نازک، {{high}} اعلیٰ", + "dueThisWeek": "اس ہفتے مقرر", + "dueThisWeekDetail": "{{exploitable}} تصدیق شدہ قابلِ استحصال", + "noDeadline": "کوئی آخری تاریخ نہیں", + "reviewSlaAssignment": "SLA تفویض کا جائزہ لیں", + "allOpenFindingsTracked": "تمام کھلے نتائج ٹریک کیے جاتے ہیں" + }, "dismiss": { "title": "نتیجہ خارج کریں", "submit": "نتیجہ خارج کریں", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} تجزیہ", "automation": "خودکار کاری", "automationAllOff": "سب آف", - "automationCount": "{{count}} میں سے 3 فعال", + "automationCount": "{{displayCount}} میں سے 3 فعال", "notifications": "اطلاعات", - "notificationsCount": "{{count}} میں سے 2 فعال", + "notificationsCount": "{{displayCount}} میں سے 2 فعال", "slaPolicy": "SLA پالیسی", "disabledNoManage": "سکیورٹی ایجنٹ غیر فعال ہے۔ صرف تنظیم کے مالکان اور بلنگ مینیجر اسے آن کر سکتے ہیں۔", "disabledNoRepo": "سکیورٹی ایجنٹ فعال کرنے سے پہلے کم از کم ایک ریپوزٹری منتخب کریں۔", @@ -1524,7 +1547,7 @@ "openPullRequest": "Pull request کھولیں{{number}}", "openDraftPullRequest": "ڈرافٹ pull request کھولیں{{number}}", "progress": "پیش رفت", - "attemptHistory": "کوشش کی تاریخ ({{count}})", + "attemptHistory": "کوشش کی تاریخ ({{displayCount}})", "attemptNumber": "کوشش #{{number}}", "startedBy": "شروع کیا بذریعہ", "model": "ماڈل", @@ -1855,9 +1878,9 @@ "toolTask": "کام", "readTodos": "کام پڑھیں", "updateTodos": "کام اپ ڈیٹ کریں", - "linesBadge": "{{count}} لائنیں", - "filesBadge": "{{count}} فائلیں", - "matchesBadge": "{{count}} مماثلتیں" + "linesBadge": "{{displayCount}} لائنیں", + "filesBadge": "{{displayCount}} فائلیں", + "matchesBadge": "{{displayCount}} مماثلتیں" }, "readToolMarkdown": { "linesTruncated": "لائنیں {{start}}–{{end}} (کٹی ہوئی)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "یہ جواب رپورٹ نہیں کیا جا سکتا۔", "reportAiResponseSubmitted": "رپورٹ جمع کرائی گئی۔ رسید {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "تفصیلات دستیاب نہیں", "textDisplay": "متن کی نمائش", @@ -1999,7 +2026,7 @@ "preparationComplete": "تیاری مکمل", "preparationFailed": "تیاری ناکام", "setupCommand": "سیٹ اپ کمانڈ {{index}}", - "setupCommandOf": "سیٹ اپ کمانڈ {{index}} از {{count}}" + "setupCommandOf": "سیٹ اپ کمانڈ {{index}} از {{displayCount}}" }, "permissionCard": { "title": "اجازت درکار ہے", @@ -2036,7 +2063,7 @@ "submissionFailed": "جمع کرانے میں ناکامی۔ براہ کرم دوبارہ کوشش کریں۔", "questionAnnouncement": "ایجنٹ کو آپ کی معلومات درکار ہیں۔ جب تک آپ جواب دیتے ہیں کمپوزر روکا ہوا ہے۔", "permissionAnnouncement": "ایجنٹ کو جاری رکھنے کے لیے اجازت درکار ہے۔ جب تک آپ فیصلہ کرتے ہیں کمپوزر روکا ہوا ہے۔", - "positionHint": "({{count}} میں سے 1)", + "positionHint": "({{displayCount}} میں سے 1)", "movedPastPrompt": "ایجنٹ اس سوال سے آگے بڑھ چکا ہے۔ سیشن جاری رہنے پر یہ کارڈ بند ہو جائے گا۔", "waitingForAnswer": "ایجنٹ آپ کے جواب کا انتظار کر رہا ہے۔ جب تک یہ سوال کھلا ہے، ایجنٹ کو آپ کا پیغام روکا ہوا ہے۔", "waitingForPermission": "ایجنٹ اجازت کا انتظار کر رہا ہے۔ جب تک یہ درخواست کھلی ہے، ایجنٹ کو آپ کا پیغام روکا ہوا ہے۔" @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "کیمرہ رسائی غیر فعال", "cameraAccessMessage": "تصویر لینے کے لیے سیٹنگز میں کیمرہ رسائی کی اجازت دیں۔", "couldNotOpenPhotoPicker": "فوٹو پیکر نہیں کھل سکا۔ Kilo کو دوبارہ شروع کریں اور دوبارہ کوشش کریں۔", - "maxFilesAllowed": "زیادہ سے زیادہ {{count}} فائلیں مجاز ہیں", + "maxFilesAllowed": "زیادہ سے زیادہ {{displayCount}} فائلیں مجاز ہیں", "onlyAddingFiles": "صرف {{accepted}} میں سے {{total}} فائلیں شامل کر رہے ہیں (زیادہ سے زیادہ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "لاگت {{cost}}", "costSuffix": ", لاگت {{cost}}", "tokensWindowUnavailable": "سیاق و سباق {{used}} ٹوکنز، ونڈو دستیاب نہیں", - "tokensUsage": "سیاق و سباق {{window}} میں سے {{used}} ٹوکنز، {{percentage}}% استعمال شدہ", + "tokensUsage": "سیاق و سباق {{window}} میں سے {{used}} ٹوکنز، {{percentage}} استعمال شدہ", "title": "سیاق و سباق کا استعمال", "used": "استعمال شدہ", "remaining": "باقی", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "استعمال تازہ ترین مکمل شدہ معاون جواب کی عکاسی کرتا ہے۔", "tokenUsage": "ٹوکن استعمال", "cacheRate": "کیش ریٹ", - "modelsCount": "ماڈلز ({{count}})", + "modelsCount": "ماڈلز ({{displayCount}})", "tokenTotalsNote": "ٹوکن کل صرف اس سیشن کا احاطہ کرتے ہیں اور ذیلی ایجنٹ/چائلڈ سیشن ٹوکنز کو خارج کرتے ہیں۔", "subagents": "ذیلی ایجنٹس", "subagentsDescription": "چائلڈ سیشنز سے بقایا لاگت", @@ -2373,7 +2400,7 @@ "connectedCli": "منسلک CLI پر", "newSessionOn": "{{name}} پر نیا سیشن", "noMatchingSessions": "کوئی مماثل سیشن نہیں۔", - "onlyFirstFilesAttached": "صرف پہلی {{count}} فائلیں منسلک ہوں گی۔", + "onlyFirstFilesAttached": "صرف پہلی {{displayCount}} فائلیں منسلک ہوں گی۔", "staleMessage": "یہ شیئر اب دستیاب نہیں ہے۔", "retryableMessage": "آپ کے سیشنز لوڈ نہیں ہو سکے۔", "emptyMessage": "ابھی کوئی سیشن نہیں — یہ بھیجنے کے لیے نیا شروع کریں۔", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "اس Apple اکاؤنٹ پر Kilo Pass کسی دوسرے Kilo اکاؤنٹ سے تعلق رکھتا ہے۔ اسے منظم کرنے کے لیے اس Kilo اکاؤنٹ میں سائن ان کریں۔", "alreadySubscribed": "آپ کے پاس پہلے سے Kilo Pass سبسکرپشن ہے۔", "purchaseUnavailable": "Kilo Pass خریداری فی الحال دستیاب نہیں ہے۔", - "tierCredits": "کریڈٹ میں ${{amount}}", + "tierCredits": "کریڈٹ میں {{amount}}", "perMonth": "{{price}}/ماہ", "verifyPurchaseFailed": "آپ کی خریداری کی تصدیق نہیں ہو سکی۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔", "productsCouldNotLoad": "Kilo Pass مصنوعات App Store سے لوڈ نہیں ہو سکیں۔", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store سبسکرپشن انتظام کھولنے میں ناکامی۔", "kiloPassSetup": "Kilo Pass سیٹ اپ", "subscriptionHeaderDescription": "ایک ماہانہ سبسکرپشن جو Kilo App میں AI کوڈنگ سیشن چلانے کے لیے آپ کے Kilo بیلنس میں کریڈٹ شامل کرتی ہے — کلاؤڈ ایجنٹس، ریموٹ سیشنز، اور KiloClaw چیٹس۔", - "tierDescription": "Kilo App استعمال کے لیے ماہانہ ${{price}} ادا شدہ کریڈٹ شامل کیے جاتے ہیں۔", + "tierDescription": "Kilo App استعمال کے لیے ماہانہ {{price}} ادا شدہ کریڈٹ شامل کیے جاتے ہیں۔", "subscribe": "سبسکرائب کریں", "subscribeDescription": "بونس پیشرفت کے ساتھ ماہانہ کریڈٹ", "manage": "منظم کریں", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass زیر التوا", "statusCanceling": "Kilo Pass منسوخ ہو رہا ہے", "statusPastDue": "Kilo Pass تاریخ گزر چکی", - "monthlyCredits": "${{credits}} ماہانہ کریڈٹ", + "monthlyCredits": "{{credits}} ماہانہ کریڈٹ", "ends": "{{date}} کو ختم ہوتا ہے", "periodEnd": "مدت کا اختتام", "managedOnGooglePlay": "Google Play پر منظم", diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index 51fa70474b..ab5d565b0d 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -206,11 +206,11 @@ "loadingLines": "{{total}} dan {{loaded}} qator yuklanmoqda…", "expandContext": "Kontekstni kengaytirish", "expandMoreContext": "Ko'proq kontekstni kengaytirish", - "expandLines": "{{count}} qatorni kengaytirish ({{start}}–{{end}})", - "expandMoreLines": "Yana {{count}} qatorni kengaytirish ({{start}}–{{end}})", - "expandLinesOfContext": "{{count}} qator kontekstni kengaytirish", + "expandLines": "{{displayCount}} qatorni kengaytirish ({{start}}–{{end}})", + "expandMoreLines": "Yana {{displayCount}} qatorni kengaytirish ({{start}}–{{end}})", + "expandLinesOfContext": "{{displayCount}} qator kontekstni kengaytirish", "expandAll": "Hammasini kengaytirish", - "expandAllLines": "Barcha {{count}} qatorni kengaytirish", + "expandAllLines": "Barcha {{displayCount}} qatorni kengaytirish", "loadingMoreFiles": "Ko'proq fayllar yuklanmoqda…", "retryLoadingNextPage": "Keyingi sahifani yuklashni qayta urinish", "failedToLoadMoreFiles": "Ko'proq fayllarni yuklab bo'lmadi — qayta urinish uchun bosing", @@ -301,7 +301,7 @@ "closeReactions": "Reaksiyalarni yopish", "reactionsTitle": "Reaksiyalar", "addReaction": "Reaksiya qo'shish", - "reactionPill": "{{emoji}} reaksiya, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} reaksiya, {{displayCount}} {{countLabel}}", "reaction_one": "reaksiya", "reaction": "reaksiya", "reaction_other": "reaksiya", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Bu pull requestda sharh mavzulari yoki suhbat izohlari yo'q.", "reviewFiles": "Fayllarni ko'rib chiqish", "quotedDiffSnippet": "Iqtibos qilingan diff parchasi", - "moreLinesAbove": "… yuqorida yana {{count}} qator", + "moreLinesAbove": "… yuqorida yana {{displayCount}} qator", "termsAcceptRequired": "Post qoldirish uchun Xizmat shartlarini qabul qilishingiz kerak.", "termsOutdatedCopy": "Xizmat shartlari o'zgardi. Eng so'nggi versiyani qabul qilish uchun bu ekranni qayta oching.", "termsCheckRetryCopy": "Xizmat shartlarini tekshirib bo'lmadi. Ulanishingizni tekshiring va qayta urinib ko'ring." @@ -395,11 +395,11 @@ "retryChecks": "Tekshiruvlarni qayta urinish", "viewOnGitHub": "PRni GitHubda ko'rish", "noChecksReported": "Tekshiruvlar hisobot qilinmagan", - "passed": "{{count}} o'tdi", - "failed": "{{count}} muvaffaqiyatsiz", - "pending": "{{count}} kutilmoqda", - "skipped": "{{count}} o'tkazib yuborildi", - "checksCount": "{{count}} tekshiruv", + "passed": "{{displayCount}} o'tdi", + "failed": "{{displayCount}} muvaffaqiyatsiz", + "pending": "{{displayCount}} kutilmoqda", + "skipped": "{{displayCount}} o'tkazib yuborildi", + "checksCount": "{{displayCount}} tekshiruv", "checkDetails": "tekshiruv tafsilotlari", "pullRequest": "pull request" }, @@ -459,9 +459,9 @@ "pendingComment_one": "kutilayotgan izoh", "pendingComment": "kutilayotgan izohlar", "pendingComment_other": "kutilayotgan izohlar", - "submitCountOfTotal": "{{totalCount}} izohdan {{freshCount}} tasini yuborish", + "submitCountOfTotal": "{{displayTotalCount}} izohdan {{displayFreshCount}} tasini yuborish", "submitReview": "Sharhni yuborish", - "partialPostedMessage": "{{freshCount}} izoh yuborildi. {{staleCount}} izoh eski commitga tegishli bo'lib, navbatingizda qoldi." + "partialPostedMessage": "{{displayFreshCount}} izoh yuborildi. {{displayStaleCount}} izoh eski commitga tegishli bo'lib, navbatingizda qoldi." }, "reconnectNotice": { "title": "GitHub ulanishi muddati tugadi", @@ -580,7 +580,8 @@ "agents": "Agentlar", "profile": "Profil", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, yorliq, {{total}} tadan {{position}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Yaqin", "common": "Umumiy", "reactWith": "{{reaction}} bilan reaksiya qilish", - "accessibility": "{{emoji}} reaksiya, {{count}}" + "accessibility": "{{emoji}} reaksiya, {{displayCount}}" }, "composer": { "replyingTo": "Javob berilmoqda", @@ -650,7 +651,7 @@ "imageUnavailable": "Rasm mavjud emas", "openFailed": "Biriktirmani ochib bo'lmadi. Ulanishingizni tekshiring va qayta urinib ko'ring.", "attachFailed": "Faylni biriktirib bo'lmadi", - "limit": "Siz {{count}} tagacha fayl biriktira olasiz.", + "limit": "Siz {{displayCount}} tagacha fayl biriktira olasiz.", "sizeRejection": "{{filename}} {{limit}} biriktirma chegarasidan oshadi.", "unreadable": "{{filename}} ni o'qib bo'lmadi.", "pastedImage": "joylashtirilgan rasm", @@ -722,6 +723,7 @@ "finalTermEnds": "Yakuniy muddat tugaydi", "afterFinalTerm": "Yakuniy muddatdan keyin", "remaining": "Qolgani", + "lessThanOneDay": "1 kundan kam", "ends": "Tugaydi", "expires": "Muddati o'tadi", "noActivePlan": "Faol reja yo'q", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "Standard oylik narxingiz", "perMonth": "/oy", "earlybirdAccessUntil": "Erta qush kirishi {{date}} gacha", - "earlybirdEnding": "Erta qush tugamoqda: {{days}} kun qoldi", + "earlybirdEnding": "Erta qush tugamoqda: {{remaining}} kun qoldi", "paymentPastDue": "To'lov muddati o'tgan. Iltimos, to'lov usulini yangilang.", "subscriptionCancels": "Obuna {{date}} da bekor qilinadi", - "trialDaysRemaining": "Sinov: {{days}} kun qoldi", - "trialEndingSoon": "Sinov tugamoqda: {{days}}" + "trialDaysRemaining": "Sinov: {{remaining}} kun qoldi", + "trialEndingSoon": "Sinov tugamoqda: {{remaining}}" }, "changelog": { "title": "Nima yangi", @@ -996,7 +998,7 @@ "stalledTitle": "Biror narsa to'xtab qoldi", "stalledBody": "{{name}}ni sozlashni yakunlay olmadik. Qayta urinib ko'ring yoki bu takrorlansa, hi@kilo.ai ga yozing.", "timeoutTitle": "Kutilganidan uzoq davom etyapti", - "timeoutBody": "{{name}} sozlovi odatdagidan uzoqroq davom etyapti ({{minutes}} daqiqadan ko'proq).", + "timeoutBody": "{{name}} sozlovi odatdagidan uzoqroq davom etyapti ({{displayMinutes}} daqiqadan ko'proq).", "continueInBackground": "Fonda davom ettirish", "settingUp": "{{name}} sozlanmoqda", "finishingSetup": "Sozlash yakunlanmoqda", @@ -1287,7 +1289,7 @@ "mergeGate": "Merge shlyuzi", "repositories": "Repozitoriylar", "allRepositories": "Barcha repozitoriylar", - "nSelected": "{{count}} tanlandi", + "nSelected": "{{displayCount}} tanlandi", "reviewMemory": "Ko'rib chiqish xotirasi", "proposedReviewMdGuidance": "Taklif etilgan REVIEW.md yo'riqnomasi" }, @@ -1391,14 +1393,14 @@ "analyzed": "Tahlil qilingan", "exploitabilityReasoning": "Foydalanish imkoniyati asoslari", "suggestedFix": "Tavsiya etilgan tuzatish", - "whereFound": "Qayerda topilgan ({{count}})", + "whereFound": "Qayerda topilgan ({{displayCount}})", "fullReport": "To'liq yaratilgan hisobot", "unknown": "Noma'lum", "yes": "Ha", "no": "Yo'q" }, "dashboard": { - "findingsCount": "{{count}} ta natija", + "findingsCount": "{{displayCount}} ta natija", "notMeasured": "O'lchanmagan", "actFirst": "Avval harakat qilish", "slaPosture": "SLA holati", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Repozitoriya harakat rejasi", "noOpenFindings": "E'tibor talab qiladigan ochiq natijalar yo'q", "deadlineToday": "Muddat bugun yetib bordi", - "daysOverdue": "{{count}} kun kechikdi", + "daysOverdue": "{{displayCount}} kun kechikdi", "withinDeadline": "Muddat ichida", "criticalOverdue": "Tanqidiy kechikdi", "highOverdue": "Yuqori kechikdi", @@ -1435,6 +1437,27 @@ "syncQueued": "Sinxronlash navbatga qo'yildi", "syncStatusUnavailable": "Sinxronlash holati mavjud emas" }, + "dashboardMetrics": { + "openFindings": "Ochiq natijalar", + "openFindingsDetail": "{{critical}} tanqidiy, {{high}} yuqori", + "confirmedExploitable": "Tasdiqlangan foydalanish mumkin", + "confirmedExploitableDetail": "Loyiha xavfi tahlil bilan tasdiqlandi", + "needsReview": "Sizning ko'rib chiqishingiz kerak", + "needsReviewDetail": "Inson qarori talab qilinadi", + "analysisIncomplete": "Tahlil tugallanmagan", + "analysisIncompleteDetail": "Loyiha xavfi hali noma'lum", + "slaCompliance": "SLA muvofiqligi", + "notMeasured": "O'lchanmagan", + "withinDeadlineDetail": "{{total}} tadan {{within}} muddat ichida", + "noDeadlineData": "Hali SLA muddati bo'lgan natija yo'q", + "deadlinePassed": "Muddat o'tdi", + "deadlinePassedDetail": "{{critical}} tanqidiy, {{high}} yuqori", + "dueThisWeek": "Shu hafta muddat", + "dueThisWeekDetail": "{{exploitable}} tasdiqlangan foydalanish mumkin", + "noDeadline": "Muddat yo'q", + "reviewSlaAssignment": "SLA tayinlanishini ko'rib chiqish", + "allOpenFindingsTracked": "Barcha ochiq natijalar kuzatilmoqda" + }, "dismiss": { "title": "Natijani rad etish", "submit": "Natijani rad etish", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} tahlil", "automation": "Avtomatlashtirish", "automationAllOff": "Hammasi o'chiq", - "automationCount": "{{count}} dan 3 tasi yoqilgan", + "automationCount": "{{displayCount}} dan 3 tasi yoqilgan", "notifications": "Bildirishnomalar", - "notificationsCount": "{{count}} dan 2 tasi yoqilgan", + "notificationsCount": "{{displayCount}} dan 2 tasi yoqilgan", "slaPolicy": "SLA siyosati", "disabledNoManage": "Security Agent o'chirilgan. Faqat tashkilot egalari va hisob-kitob menejerlari uni yoqishi mumkin.", "disabledNoRepo": "Security Agent'ni yoqishdan oldin kamida bitta repozitoriyani tanlang.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Pull request'ni ochish{{number}}", "openDraftPullRequest": "Qoralama pull request'ni ochish{{number}}", "progress": "Jarayon", - "attemptHistory": "Urinishlar tarixi ({{count}})", + "attemptHistory": "Urinishlar tarixi ({{displayCount}})", "attemptNumber": "Urinish #{{number}}", "startedBy": "Tomonidan boshlangan", "model": "Model", @@ -1855,9 +1878,9 @@ "toolTask": "vazifa", "readTodos": "Todolarni o'qish", "updateTodos": "Todolarni yangilash", - "linesBadge": "{{count}} qator", - "filesBadge": "{{count}} fayl", - "matchesBadge": "{{count}} moslik" + "linesBadge": "{{displayCount}} qator", + "filesBadge": "{{displayCount}} fayl", + "matchesBadge": "{{displayCount}} moslik" }, "readToolMarkdown": { "linesTruncated": "{{start}}–{{end}} qatorlar (qisqartirilgan)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Ushbu javobni xabar qilib bo'lmaydi.", "reportAiResponseSubmitted": "Xabar yuborildi. Tilxat {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Tafsilotlar mavjud emas", "textDisplay": "Matn ko'rinishi", @@ -1999,7 +2026,7 @@ "preparationComplete": "Tayyorlash tugallandi", "preparationFailed": "Tayyorlash muvaffaqiyatsiz tugadi", "setupCommand": "Sozlash buyrug'i {{index}}", - "setupCommandOf": "{{count}} dan {{index}} sozlash buyrug'i" + "setupCommandOf": "{{displayCount}} dan {{index}} sozlash buyrug'i" }, "permissionCard": { "title": "Ruxsat talab qilinadi", @@ -2036,7 +2063,7 @@ "submissionFailed": "Yuborish amalga oshmadi. Iltimos, qayta urinib ko'ring.", "questionAnnouncement": "Agent sizning javobingizga muhtoj. Siz javob berayotganda komposer pauza qilinadi.", "permissionAnnouncement": "Agent davom etish uchun ruxsatga muhtoj. Siz qaror qilayotganda komposer pauza qilinadi.", - "positionHint": "({{count}} dan 1)", + "positionHint": "({{displayCount}} dan 1)", "movedPastPrompt": "Agent bu so'rovdan o'tib ketdi. Sessiya davom etganda bu karta yopiladi.", "waitingForAnswer": "Agent sizning javobingizni kutmoqda. Bu savol ochiq ekan, agentga xabaringiz pauza qilinadi.", "waitingForPermission": "Agent ruxsatni kutmoqda. Bu so'rov ochiq ekan, agentga xabaringiz pauza qilinadi." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kamera kirishi o'chirilgan", "cameraAccessMessage": "Suratga olish uchun Sozlamalarda kamera kirishiga ruxsat bering.", "couldNotOpenPhotoPicker": "Foto tanlagichni ochib bo'lmadi. Kilo'ni qayta ishga tushiring va qayta urinib ko'ring.", - "maxFilesAllowed": "Maksimal {{count}} ta faylga ruxsat berilgan", + "maxFilesAllowed": "Maksimal {{displayCount}} ta faylga ruxsat berilgan", "onlyAddingFiles": "{{total}} faylning faqat {{accepted}} tasi qo'shilmoqda (maks {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "xarajat {{cost}}", "costSuffix": ", xarajat {{cost}}", "tokensWindowUnavailable": "Kontekst {{used}} token, oyna mavjud emas", - "tokensUsage": "Kontekst {{window}} tokendan {{used}} tasi, {{percentage}}% ishlatilgan", + "tokensUsage": "Kontekst {{window}} tokendan {{used}} tasi, {{percentage}} ishlatilgan", "title": "Kontekstdan foydalanish", "used": "Ishlatilgan", "remaining": "Qolgan", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Foydalanish eng so'nggi yakunlangan yordamchi javobini aks ettiradi.", "tokenUsage": "Tokenlardan foydalanish", "cacheRate": "Kesh tezligi", - "modelsCount": "Modellar ({{count}})", + "modelsCount": "Modellar ({{displayCount}})", "tokenTotalsNote": "Token umumiy summalari faqat shu sessiyani qamrab oladi va subagent/bolalar sessiyasi tokenlarini hisobga olmaydi.", "subagents": "Subagentlar", "subagentsDescription": "Bola sessiyalaridan qolgan xarajat", @@ -2373,7 +2400,7 @@ "connectedCli": "Ulangan CLI'da", "newSessionOn": "{{name}} da yangi sessiya", "noMatchingSessions": "Mos keladigan sessiyalar yo'q.", - "onlyFirstFilesAttached": "Faqat birinchi {{count}} ta fayl biriktiriladi.", + "onlyFirstFilesAttached": "Faqat birinchi {{displayCount}} ta fayl biriktiriladi.", "staleMessage": "Bu ulashish endi mavjud emas.", "retryableMessage": "Sessiyalaringizni yuklab bo'lmadi.", "emptyMessage": "Hali sessiyalar yo'q — buni yuborish uchun yangisini boshlang.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Bu Apple hisobidagi Kilo Pass boshqa Kilo hisobiga tegishli. Uni boshqarish uchun o'sha Kilo hisobiga kiring.", "alreadySubscribed": "Sizda allaqachon Kilo Pass obunasi mavjud.", "purchaseUnavailable": "Kilo Pass sotib olish hozir mavjud emas.", - "tierCredits": "Kreditlarda ${{amount}}", + "tierCredits": "Kreditlarda {{amount}}", "perMonth": "{{price}}/oy", "verifyPurchaseFailed": "Sotib olishingizni tasdiqlab bo'lmadi. Ulanishni tekshiring va qayta urinib ko'ring.", "productsCouldNotLoad": "Kilo Pass mahsulotlarini App Store'dan yuklab bo'lmadi.", @@ -2417,7 +2444,7 @@ "manageFailed": "App Store obuna boshqaruvini ochib bo'lmadi.", "kiloPassSetup": "Kilo Pass sozlamasi", "subscriptionHeaderDescription": "Kilo App'idagi AI kodlash sessiyalari — Cloud Agents, masofaviy sessiyalar va KiloClaw suhbatlari — uchun Kilo balansingizga kreditlar qo'shadigan oylik obuna.", - "tierDescription": "Kilo App'dan foydalanish uchun oyiga qo'shiladigan ${{price}} to'langan kredit.", + "tierDescription": "Kilo App'dan foydalanish uchun oyiga qo'shiladigan {{price}} to'langan kredit.", "subscribe": "Obuna bo'lish", "subscribeDescription": "Bonus progress bilan oylik kreditlar", "manage": "Boshqarish", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass kutilmoqda", "statusCanceling": "Kilo Pass bekor qilinmoqda", "statusPastDue": "Kilo Pass muddati o'tgan", - "monthlyCredits": "Oylik ${{credits}} kredit", + "monthlyCredits": "Oylik {{credits}} kredit", "ends": "{{date}} da tugaydi", "periodEnd": "davr oxiri", "managedOnGooglePlay": "Google Play'da boshqariladi", diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index 730daffe59..99a12fa64c 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -201,7 +201,8 @@ "agents": "Tác nhân", "profile": "Hồ sơ", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, tab, {{position}} trên {{total}}" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "Gần đây", "common": "Phổ biến", "reactWith": "Phản ứng bằng {{reaction}}", - "accessibility": "{{emoji}} phản ứng, {{count}}" + "accessibility": "{{emoji}} phản ứng, {{displayCount}}" }, "composer": { "replyingTo": "Đang trả lời", @@ -271,7 +272,7 @@ "imageUnavailable": "Hình ảnh không khả dụng", "openFailed": "Không mở được tệp đính kèm. Kiểm tra kết nối và thử lại.", "attachFailed": "Không đính kèm được tệp", - "limit": "Bạn có thể đính kèm tối đa {{count}} tệp.", + "limit": "Bạn có thể đính kèm tối đa {{displayCount}} tệp.", "sizeRejection": "{{filename}} vượt quá giới hạn đính kèm {{limit}}.", "unreadable": "Không đọc được {{filename}}.", "pastedImage": "hình ảnh đã dán", @@ -343,6 +344,7 @@ "finalTermEnds": "Kỳ hạn cuối kết thúc", "afterFinalTerm": "Sau kỳ hạn cuối", "remaining": "Còn lại", + "lessThanOneDay": "Dưới 1 ngày", "ends": "Kết thúc", "expires": "Hết hạn", "noActivePlan": "Không có gói đang hoạt động", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "giá Standard hằng tháng của bạn", "perMonth": "/tháng", "earlybirdAccessUntil": "Quyền truy cập Earlybird đến {{date}}", - "earlybirdEnding": "Earlybird sắp kết thúc: còn {{days}} ngày", + "earlybirdEnding": "Earlybird sắp kết thúc: còn {{remaining}} ngày", "paymentPastDue": "Thanh toán quá hạn. Vui lòng cập nhật phương thức thanh toán.", "subscriptionCancels": "Gói đăng ký hủy vào {{date}}", - "trialDaysRemaining": "Dùng thử: còn {{days}} ngày", - "trialEndingSoon": "Dùng thử sắp kết thúc: {{days}}" + "trialDaysRemaining": "Dùng thử: còn {{remaining}} ngày", + "trialEndingSoon": "Dùng thử sắp kết thúc: {{remaining}}" }, "changelog": { "title": "Có gì mới", @@ -665,7 +667,7 @@ "startingSandbox": "Đang khởi động hộp cát", "stoppedBody": "Phiên bản của {{name}} dừng bất ngờ trong quá trình thiết lập.", "stoppedTitle": "Thiết lập đã dừng", - "timeoutBody": "Thiết lập cho {{name}} mất nhiều thời gian hơn bình thường (hơn {{minutes}} phút).", + "timeoutBody": "Thiết lập cho {{name}} mất nhiều thời gian hơn bình thường (hơn {{displayMinutes}} phút).", "timeoutTitle": "Mất nhiều thời gian hơn dự kiến" }, "unavailableDescription": "Cần có gói đăng ký KiloClaw hiện tại để cấp phát phiên bản. Các phiên bản và gói đăng ký hiện có vẫn tiếp tục bình thường.", @@ -912,7 +914,7 @@ "focusAreas": "Lĩnh vực trọng tâm", "mergeGate": "Cổng hợp nhất", "model": "Mô hình", - "nSelected": "{{count}} đã chọn", + "nSelected": "{{displayCount}} đã chọn", "proposedReviewMdGuidance": "Hướng dẫn REVIEW.md được đề xuất", "repositories": "Kho lưu trữ", "reviewMemory": "Bộ nhớ đánh giá", @@ -981,7 +983,7 @@ "triageReasoning": "Lập luận phân loại", "unknown": "Không xác định", "watchInCloudAgent": "Xem trong Cloud Agent", - "whereFound": "Nơi phát hiện ({{count}})", + "whereFound": "Nơi phát hiện ({{displayCount}})", "yes": "Có" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "Đã xác nhận có thể khai thác", "couldNotLoad": "Không thể tải dữ liệu bảng điều khiển", "criticalOverdue": "Nghiêm trọng quá hạn", - "daysOverdue": "Quá hạn {{count}} ngày", + "daysOverdue": "Quá hạn {{displayCount}} ngày", "deadlineToday": "Đến hạn hôm nay", "filterByRepository": "Lọc theo kho lưu trữ", "findings": "Phát hiện", - "findingsCount": "{{count}} phát hiện", + "findingsCount": "{{displayCount}} phát hiện", "highOverdue": "Cao quá hạn", "lastSynced": "Đồng bộ lần cuối {{time}}", "manageRepositories": "Quản lý kho lưu trữ", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "Trạng thái đồng bộ không khả dụng", "withinDeadline": "Trong hạn" }, + "dashboardMetrics": { + "openFindings": "Phát hiện đang mở", + "openFindingsDetail": "{{critical}} nghiêm trọng, {{high}} cao", + "confirmedExploitable": "Đã xác nhận có thể khai thác", + "confirmedExploitableDetail": "Rủi ro dự án được xác nhận bằng phân tích", + "needsReview": "Cần bạn xem xét", + "needsReviewDetail": "Cần quyết định của con người", + "analysisIncomplete": "Phân tích chưa hoàn tất", + "analysisIncompleteDetail": "Rủi ro dự án vẫn chưa rõ", + "slaCompliance": "Tuân thủ SLA", + "notMeasured": "Chưa đo lường", + "withinDeadlineDetail": "{{within}} trong {{total}} trong hạn", + "noDeadlineData": "Chưa có phát hiện nào có hạn chót SLA", + "deadlinePassed": "Đã quá hạn", + "deadlinePassedDetail": "{{critical}} nghiêm trọng, {{high}} cao", + "dueThisWeek": "Đến hạn trong tuần này", + "dueThisWeekDetail": "{{exploitable}} đã xác nhận có thể khai thác", + "noDeadline": "Không có hạn chót", + "reviewSlaAssignment": "Xem xét phân bổ SLA", + "allOpenFindingsTracked": "Tất cả phát hiện đang mở đều được theo dõi" + }, "dismiss": { "alreadyResolvedDescription": "Phát hiện này đã được giải quyết và không còn chấp nhận việc bỏ qua.", "cannotDismissDescription": "Chỉ chủ sở hữu tổ chức và người quản lý thanh toán mới có thể bỏ qua các phát hiện.", @@ -1188,7 +1211,7 @@ "title": "Thông báo" }, "remediation": { - "attemptHistory": "Lịch sử lần thử ({{count}})", + "attemptHistory": "Lịch sử lần thử ({{displayCount}})", "attemptNumber": "Lần thử #{{number}}", "branch": "Nhánh", "cancelMessage": "Security Agent sẽ dừng lần thử khắc phục đang diễn ra.", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "Phân tích {{mode}}", "automation": "Tự động hóa", "automationAllOff": "Tất cả đều tắt", - "automationCount": "Đã bật {{count}}/3", + "automationCount": "Đã bật {{displayCount}}/3", "couldNotLoadPermissions": "Không thể tải quyền", "couldNotLoadRepositories": "Không thể tải các kho lưu trữ", "couldNotLoadSettings": "Không thể tải cài đặt Security Agent", @@ -1267,7 +1290,7 @@ "enabled": "Đã bật", "modelsAndAnalysis": "Mô hình & phân tích", "notifications": "Thông báo", - "notificationsCount": "Đã bật {{count}}/2", + "notificationsCount": "Đã bật {{displayCount}}/2", "off": "Tắt", "on": "Bật", "repositories": "Kho lưu trữ", @@ -1476,9 +1499,9 @@ "toolTask": "tác vụ", "readTodos": "Đọc việc cần làm", "updateTodos": "Cập nhật việc cần làm", - "linesBadge": "{{count}} dòng", - "filesBadge": "{{count}} tệp", - "matchesBadge": "{{count}} kết quả khớp" + "linesBadge": "{{displayCount}} dòng", + "filesBadge": "{{displayCount}} tệp", + "matchesBadge": "{{displayCount}} kết quả khớp" }, "readToolMarkdown": { "linesTruncated": "các dòng {{start}}–{{end}} (đã cắt bớt)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "Không thể báo cáo phản hồi này.", "reportAiResponseSubmitted": "Đã gửi báo cáo. Biên nhận {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Chi tiết không khả dụng", "textDisplay": "Hiển thị văn bản", @@ -1620,7 +1647,7 @@ "preparationComplete": "Chuẩn bị hoàn tất", "preparationFailed": "Chuẩn bị thất bại", "setupCommand": "Lệnh thiết lập {{index}}", - "setupCommandOf": "Lệnh thiết lập {{index}} trên {{count}}" + "setupCommandOf": "Lệnh thiết lập {{index}} trên {{displayCount}}" }, "permissionCard": { "title": "Cần quyền", @@ -1657,7 +1684,7 @@ "submissionFailed": "Gửi thất bại. Vui lòng thử lại.", "questionAnnouncement": "Tác nhân cần nhập liệu của bạn. Trình soạn đang tạm dừng trong khi bạn trả lời.", "permissionAnnouncement": "Tác nhân cần quyền để tiếp tục. Trình soạn đang tạm dừng trong khi bạn quyết định.", - "positionHint": "(1 trên {{count}})", + "positionHint": "(1 trên {{displayCount}})", "movedPastPrompt": "Tác nhân đã vượt qua lời nhắc này. Thẻ này sẽ đóng khi phiên tiếp tục.", "waitingForAnswer": "Tác nhân đang chờ câu trả lời của bạn. Trong khi câu hỏi này đang mở, tin nhắn của bạn đến tác nhân bị tạm dừng.", "waitingForPermission": "Tác nhân đang chờ quyền. Trong khi yêu cầu này đang mở, tin nhắn của bạn đến tác nhân bị tạm dừng." @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "Quyền truy cập máy ảnh bị tắt", "cameraAccessMessage": "Cho phép quyền truy cập máy ảnh trong Cài đặt để chụp ảnh.", "couldNotOpenPhotoPicker": "Không thể mở trình chọn ảnh. Khởi động lại Kilo và thử lại.", - "maxFilesAllowed": "Cho phép tối đa {{count}} tệp", + "maxFilesAllowed": "Cho phép tối đa {{displayCount}} tệp", "onlyAddingFiles": "Chỉ thêm {{accepted}} trong {{total}} tệp (tối đa {{max}})" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "chi phí {{cost}}", "costSuffix": ", chi phí {{cost}}", "tokensWindowUnavailable": "Ngữ cảnh {{used}} token, cửa sổ không khả dụng", - "tokensUsage": "Ngữ cảnh {{used}} trên {{window}} token, đã dùng {{percentage}}%", + "tokensUsage": "Ngữ cảnh {{used}} trên {{window}} token, đã dùng {{percentage}}", "title": "Mức sử dụng ngữ cảnh", "used": "Đã dùng", "remaining": "Còn lại", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "Mức sử dụng phản ánh phản hồi trợ lý hoàn tất gần nhất.", "tokenUsage": "Mức sử dụng token", "cacheRate": "Tỷ lệ bộ nhớ đệm", - "modelsCount": "Mô hình ({{count}})", + "modelsCount": "Mô hình ({{displayCount}})", "tokenTotalsNote": "Tổng token chỉ tính phiên này và không bao gồm token của tác nhân phụ/phiên con.", "subagents": "Tác nhân phụ", "subagentsDescription": "Chi phí còn lại từ các phiên con", @@ -1994,7 +2021,7 @@ "connectedCli": "Trên CLI đã kết nối", "newSessionOn": "Phiên mới trên {{name}}", "noMatchingSessions": "Không có phiên nào khớp.", - "onlyFirstFilesAttached": "Chỉ {{count}} tệp đầu tiên sẽ được đính kèm.", + "onlyFirstFilesAttached": "Chỉ {{displayCount}} tệp đầu tiên sẽ được đính kèm.", "staleMessage": "Chia sẻ này không còn khả dụng.", "retryableMessage": "Không thể tải các phiên của bạn.", "emptyMessage": "Chưa có phiên nào — hãy bắt đầu phiên mới để gửi nội dung này.", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "Kilo Pass trên Tài khoản Apple này thuộc về một tài khoản Kilo khác. Hãy đăng nhập vào tài khoản Kilo đó để quản lý.", "alreadySubscribed": "Bạn đã có gói đăng ký Kilo Pass.", "purchaseUnavailable": "Giao dịch mua Kilo Pass hiện không khả dụng.", - "tierCredits": "${{amount}} tín dụng", + "tierCredits": "{{amount}} tín dụng", "perMonth": "{{price}}/tháng", "verifyPurchaseFailed": "Không thể xác minh giao dịch mua của bạn. Kiểm tra kết nối và thử lại.", "productsCouldNotLoad": "Không thể tải các sản phẩm Kilo Pass từ App Store.", @@ -2038,7 +2065,7 @@ "manageFailed": "Không thể mở quản lý đăng ký App Store.", "kiloPassSetup": "Thiết lập Kilo Pass", "subscriptionHeaderDescription": "Gói đăng ký hàng tháng giúp thêm tín dụng vào số dư Kilo của bạn để chạy các phiên lập trình AI trong Kilo App — Cloud Agents, phiên từ xa và trò chuyện KiloClaw.", - "tierDescription": "${{price}} tín dụng trả phí được thêm hàng tháng cho việc sử dụng Kilo App.", + "tierDescription": "{{price}} tín dụng trả phí được thêm hàng tháng cho việc sử dụng Kilo App.", "subscribe": "Đăng ký", "subscribeDescription": "Tín dụng hàng tháng kèm tiến trình thưởng", "manage": "Quản lý", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass đang chờ", "statusCanceling": "Kilo Pass đang hủy", "statusPastDue": "Kilo Pass quá hạn", - "monthlyCredits": "${{credits}} tín dụng hàng tháng", + "monthlyCredits": "{{credits}} tín dụng hàng tháng", "ends": "Kết thúc {{date}}", "periodEnd": "cuối kỳ", "managedOnGooglePlay": "Được quản lý trên Google Play", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "Bạn không có quyền xem yêu cầu hợp nhất này.", "checkConnection": "Kiểm tra kết nối", "checks": { - "checksCount": "{{count}} lần kiểm tra", + "checksCount": "{{displayCount}} lần kiểm tra", "couldNotLoad": "Không thể tải các lần kiểm tra.", - "failed": "{{count}} thất bại", + "failed": "{{displayCount}} thất bại", "noAccess": "Bạn không có quyền truy cập vào các lần kiểm tra của kho lưu trữ này.", "noChecksReported": "Không có lần kiểm tra nào được báo cáo", "notAvailable": "Các lần kiểm tra chưa khả dụng. Commit đầu có thể chưa được xử lý, hoặc Ứng dụng Kilo GitHub chưa được cài đặt trên kho lưu trữ đầu.", "openDetails": "Mở chi tiết {{name}}", - "passed": "{{count}} đạt", - "pending": "{{count}} đang chờ", + "passed": "{{displayCount}} đạt", + "pending": "{{displayCount}} đang chờ", "retryChecks": "Thử lại các lần kiểm tra", - "skipped": "{{count}} bị bỏ qua", + "skipped": "{{displayCount}} bị bỏ qua", "title": "Kiểm tra", "viewOnGitHub": "Xem PR trên GitHub", "checkDetails": "chi tiết lần kiểm tra", @@ -2238,7 +2265,7 @@ "terminal": "Không thể báo cáo người dùng này." } }, - "moreLinesAbove": "… {{count}} dòng nữa ở trên", + "moreLinesAbove": "… {{displayCount}} dòng nữa ở trên", "mute": "Tắt tiếng", "mutedUser": "Đã tắt tiếng {{login}}", "noDiscussion": "Chưa có thảo luận", @@ -2246,7 +2273,7 @@ "comment_one": "1 bình luận", "outdated": "Đã lỗi thời", "quotedDiffSnippet": "Đoạn diff được trích dẫn", - "reactionPill": "{{emoji}} phản ứng, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} phản ứng, {{displayCount}} {{countLabel}}", "reaction": "phản ứng", "reaction_other": "phản ứng", "reaction_one": "phản ứng", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "Ngữ cảnh không khả dụng tại ref này", "expandAll": "Mở rộng tất cả", - "expandAllLines": "Mở rộng tất cả {{count}} dòng", + "expandAllLines": "Mở rộng tất cả {{displayCount}} dòng", "expandContext": "Mở rộng ngữ cảnh", - "expandLines": "Mở rộng {{count}} dòng ({{start}}–{{end}})", - "expandLinesOfContext": "Mở rộng {{count}} dòng ngữ cảnh", + "expandLines": "Mở rộng {{displayCount}} dòng ({{start}}–{{end}})", + "expandLinesOfContext": "Mở rộng {{displayCount}} dòng ngữ cảnh", "expandMoreContext": "Mở rộng thêm ngữ cảnh", - "expandMoreLines": "Mở rộng thêm {{count}} dòng ({{start}}–{{end}})", + "expandMoreLines": "Mở rộng thêm {{displayCount}} dòng ({{start}}–{{end}})", "failedToLoadContext": "Không tải được ngữ cảnh — chạm để thử lại", "failedToLoadMoreFiles": "Không tải được thêm tệp — chạm để thử lại", "fileLoadedCount_one": "Đã tải {{displayCount}} tệp", @@ -2500,8 +2527,8 @@ "pendingComment_one": "bình luận đang chờ", "summaryOptional": "Tóm tắt (tùy chọn)", "title": "Gửi đánh giá", - "partialPostedMessage": "Đã đăng {{freshCount}} bình luận. {{staleCount}} bình luận trỏ đến commit cũ hơn và vẫn nằm trong hàng đợi của bạn.", - "submitCountOfTotal": "Gửi {{freshCount}} trong {{totalCount}} bình luận", + "partialPostedMessage": "Đã đăng {{displayFreshCount}} bình luận. {{displayStaleCount}} bình luận trỏ đến commit cũ hơn và vẫn nằm trong hàng đợi của bạn.", + "submitCountOfTotal": "Gửi {{displayFreshCount}} trong {{displayTotalCount}} bình luận", "submitReview": "Gửi đánh giá" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index 3f42ee5c96..acb80a6595 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -206,11 +206,11 @@ "loadingLines": "Njẹ {{loaded}} ti {{total}} awọn laini…", "expandContext": "Fẹ̀ aaye-ọrọ", "expandMoreContext": "Fẹ̀ aaye-ọrọ diẹ sii", - "expandLines": "Fẹ̀ {{count}} awọn laini ({{start}}–{{end}})", - "expandMoreLines": "Fẹ̀ {{count}} awọn laini diẹ sii ({{start}}–{{end}})", - "expandLinesOfContext": "Fẹ̀ {{count}} awọn laini aaye-ọrọ", + "expandLines": "Fẹ̀ {{displayCount}} awọn laini ({{start}}–{{end}})", + "expandMoreLines": "Fẹ̀ {{displayCount}} awọn laini diẹ sii ({{start}}–{{end}})", + "expandLinesOfContext": "Fẹ̀ {{displayCount}} awọn laini aaye-ọrọ", "expandAll": "Fẹ̀ gbogbo", - "expandAllLines": "Fẹ̀ gbogbo {{count}} awọn laini", + "expandAllLines": "Fẹ̀ gbogbo {{displayCount}} awọn laini", "loadingMoreFiles": "Njẹ awọn faili diẹ sii…", "retryLoadingNextPage": "Gbìyànjú lati gbe oju-iwe atẹle lẹẹkansi", "failedToLoadMoreFiles": "Kuna lati gbe awọn faili diẹ sii — tẹ lati gbìyànjú lẹẹkansi", @@ -301,7 +301,7 @@ "closeReactions": "Pa awọn aati", "reactionsTitle": "Awọn aati", "addReaction": "Fi aati kun", - "reactionPill": "aati {{emoji}}, {{count}} {{countLabel}}", + "reactionPill": "aati {{emoji}}, {{displayCount}} {{countLabel}}", "reaction_one": "aati", "reaction": "awọn aati", "reaction_other": "awọn aati", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Ko si awọn okun atunyẹwo tabi awọn asọye ibaraẹnisọrọ lori ibeere fifa yii.", "reviewFiles": "Ṣe atunyẹwo awọn faili", "quotedDiffSnippet": "Apero diff ti a sọ", - "moreLinesAbove": "… {{count}} awọn laini diẹ sii loke", + "moreLinesAbove": "… {{displayCount}} awọn laini diẹ sii loke", "termsAcceptRequired": "O gbọdọ gba Awọn Ofin Iṣẹ lati fiweranṣẹ.", "termsOutdatedCopy": "Awọn Ofin Iṣẹ yipada. Tun ṣii iboju yii lati gba ẹya tuntun.", "termsCheckRetryCopy": "Ko le ṣayẹwo Awọn Ofin Iṣẹ. Ṣayẹwo asopọ rẹ ki o gbìyànjú lẹẹkansi." @@ -395,11 +395,11 @@ "retryChecks": "Gbìyànjú awọn ṣayẹwo lẹẹkansi", "viewOnGitHub": "Wo PR lori GitHub", "noChecksReported": "Ko si awọn ṣayẹwo ti a royin", - "passed": "{{count}} kọja", - "failed": "{{count}} kuna", - "pending": "{{count}} nduro", - "skipped": "{{count}} fo", - "checksCount": "{{count}} awọn ṣayẹwo", + "passed": "{{displayCount}} kọja", + "failed": "{{displayCount}} kuna", + "pending": "{{displayCount}} nduro", + "skipped": "{{displayCount}} fo", + "checksCount": "{{displayCount}} awọn ṣayẹwo", "checkDetails": "awọn alaye ṣayẹwo", "pullRequest": "ibeere fifa" }, @@ -459,9 +459,9 @@ "pendingComment_one": "asọye idaduro", "pendingComment": "awọn asọye idaduro", "pendingComment_other": "awọn asọye idaduro", - "submitCountOfTotal": "Fi {{freshCount}} ti {{totalCount}} awọn asọye silẹ", + "submitCountOfTotal": "Fi {{displayFreshCount}} ti {{displayTotalCount}} awọn asọye silẹ", "submitReview": "Fi atunyẹwo silẹ", - "partialPostedMessage": "Fi {{freshCount}} asọye silẹ. {{staleCount}} asọye tọka si iṣẹ atijọ ati pe o wa ninu iṣẹ́ rẹ." + "partialPostedMessage": "Fi {{displayFreshCount}} asọye silẹ. {{displayStaleCount}} asọye tọka si iṣẹ atijọ ati pe o wa ninu iṣẹ́ rẹ." }, "reconnectNotice": { "title": "Asopọ GitHub ti pari", @@ -580,7 +580,8 @@ "agents": "Awọn aṣoju", "profile": "Àkójọpọ̀", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, taabu, {{position}} nínú {{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Aipẹ", "common": "Wọpọ", "reactWith": "Fi aati si {{reaction}}", - "accessibility": "aati {{emoji}}, {{count}}" + "accessibility": "aati {{emoji}}, {{displayCount}}" }, "composer": { "replyingTo": "Nfesi si", @@ -650,7 +651,7 @@ "imageUnavailable": "Aworan ko si", "openFailed": "Ko le ṣii asomọ. Ṣayẹwo asopọ rẹ ki o gbìyànjú lẹẹkansi.", "attachFailed": "Kuna lati so faili mọ", - "limit": "O le so awọn faili {{count}} mọ.", + "limit": "O le so awọn faili {{displayCount}} mọ.", "sizeRejection": "{{filename}} kọja opin asomọ {{limit}}.", "unreadable": "Ko le ka {{filename}}.", "pastedImage": "aworan ti a lẹ pẹ", @@ -722,6 +723,7 @@ "finalTermEnds": "Àkókò ìkẹyìn parí", "afterFinalTerm": "Lẹ́yìn àkókò ìkẹyìn", "remaining": "Ìyókù", + "lessThanOneDay": "Kere ju ọjọ́ kan", "ends": "Parí", "expires": "Kógun", "noActivePlan": "Kò sí ètò tí ó ń ṣiṣẹ́", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "oṣù-ìsanwó Standard rẹ", "perMonth": "/oṣù", "earlybirdAccessUntil": "Ààyè Ẹyẹ òwúrọ̀ títí {{date}}", - "earlybirdEnding": "Ẹyẹ òwúrọ̀ ń parí: {{days}} ọjọ́ kù", + "earlybirdEnding": "Ẹyẹ òwúrọ̀ ń parí: {{remaining}} ọjọ́ kù", "paymentPastDue": "Ìsanwó ti pẹ́. Jọ̀wọ́ mẹ́nu kàn ọ̀nà ìsanwó rẹ.", "subscriptionCancels": "Ìfọwọ́sí fagilé {{date}}", - "trialDaysRemaining": "Ìgbìyànjú: {{days}} ọjọ́ ṣẹ́kù", - "trialEndingSoon": "Ìgbìyànjú ń parí láìpẹ́: {{days}}" + "trialDaysRemaining": "Ìgbìyànjú: {{remaining}} ọjọ́ ṣẹ́kù", + "trialEndingSoon": "Ìgbìyànjú ń parí láìpẹ́: {{remaining}}" }, "changelog": { "title": "Kí ni Tuntun", @@ -996,7 +998,7 @@ "stalledTitle": "Nǹkan kan ṣe dúró", "stalledBody": "A kò lè parí ìtòlẹ́tò {{name}}. Gbìyànjú lẹ́ẹ̀kan síi, tàbí fi iméèlì ranṣẹ́ sí hi@kilo.ai bí èyí bá ń bá a lọ.", "timeoutTitle": "Ǹjẹ́ gba àkókò tó pẹ́ ju tí a rò lọ", - "timeoutBody": "Ìtòlẹ́tò fún {{name}} ń gba àkókò pẹ́ ju ti ìgbà dídì (ju {{minutes}} ìṣẹ́jú lọ).", + "timeoutBody": "Ìtòlẹ́tò fún {{name}} ń gba àkókò pẹ́ ju ti ìgbà dídì (ju {{displayMinutes}} ìṣẹ́jú lọ).", "continueInBackground": "Tẹ̀síwájú ní ẹ̀hìn", "settingUp": "Ǹjẹ́ títòlẹ́tò {{name}}", "finishingSetup": "Ǹjẹ́ típarí ìtòlẹ́tò", @@ -1287,7 +1289,7 @@ "mergeGate": "Ẹ̀bùn ìsopọ̀", "repositories": "Àwọn ìpamọ́", "allRepositories": "Gbogbo àwọn ìpamọ́", - "nSelected": "{{count}} tí a yàn", + "nSelected": "{{displayCount}} tí a yàn", "reviewMemory": "Ìrántí àtúnyẹ̀wò", "proposedReviewMdGuidance": "Ìtọ́sọ́nà REVIEW.md tí a dábàá" }, @@ -1391,14 +1393,14 @@ "analyzed": "Ti itupalẹ", "exploitabilityReasoning": "Ìdíye nilokulo", "suggestedFix": "Atunṣe ti a daba", - "whereFound": "Nibo eyi ti a ri ({{count}})", + "whereFound": "Nibo eyi ti a ri ({{displayCount}})", "fullReport": "Ìjabọ ti a ṣe ni kikun", "unknown": "Àìmọ", "yes": "Bẹẹni", "no": "Rara" }, "dashboard": { - "findingsCount": "{{count}} awọn abawọn", + "findingsCount": "{{displayCount}} awọn abawọn", "notMeasured": "Ko ṣe wiwọn", "actFirst": "Ṣe igbese akọkọ", "slaPosture": "Ipo SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Eto igbese ibi ipamọ", "noOpenFindings": "Ko si awọn abawọn ṣiṣi ti o nilo akiyesi", "deadlineToday": "Ọjọ-ipari ti de oni", - "daysOverdue": "{{count}} ọjọ ti kọja", + "daysOverdue": "{{displayCount}} ọjọ ti kọja", "withinDeadline": "Laarin ọjọ-ipari", "criticalOverdue": "Pataki ti kọja", "highOverdue": "Ga ti kọja", @@ -1435,6 +1437,27 @@ "syncQueued": "Ti wa ni ila fun mimu pọ", "syncStatusUnavailable": "Ipo mimu pọ ko wa" }, + "dashboardMetrics": { + "openFindings": "Awọn abawọn ṣiṣi", + "openFindingsDetail": "{{critical}} pataki, {{high}} ga", + "confirmedExploitable": "Ti jẹrisi pe o le nilokulo", + "confirmedExploitableDetail": "Ewu iṣẹ́-ìdásílẹ̀ ti jẹrisi nipasẹ itupalẹ", + "needsReview": "Nilo atunyẹwo rẹ", + "needsReviewDetail": "Ipinnu eniyan nilo", + "analysisIncomplete": "Itupalẹ ko pari", + "analysisIncompleteDetail": "Ewu iṣẹ́-ìdásílẹ̀ ṣì jẹ́ àìmọ̀", + "slaCompliance": "Ìbáṣepọ̀ SLA", + "notMeasured": "Ko ṣe wiwọn", + "withinDeadlineDetail": "{{within}} nínú {{total}} laarin ọjọ-ipari", + "noDeadlineData": "Ko si awọn abawọn ti o ni ọjọ-ipari SLA sibẹsibẹ", + "deadlinePassed": "Ọjọ-ipari ti kọja", + "deadlinePassedDetail": "{{critical}} pataki, {{high}} ga", + "dueThisWeek": "Yẹ ni ọṣẹ yìí", + "dueThisWeekDetail": "{{exploitable}} ti jẹrisi pe o le nilokulo", + "noDeadline": "Ko si ọjọ-ipari", + "reviewSlaAssignment": "Ṣe atunyẹwo iyàn SLA", + "allOpenFindingsTracked": "Gbogbo awọn abawọn ṣiṣi ni a tọpínpin" + }, "dismiss": { "title": "Fi abawọn silẹ", "submit": "Fi abawọn silẹ", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "Itupalẹ {{mode}}", "automation": "Adaṣe", "automationAllOff": "Gbogbo paa", - "automationCount": "{{count}} ninu 3 ti mu ṣiṣẹ", + "automationCount": "{{displayCount}} ninu 3 ti mu ṣiṣẹ", "notifications": "Awọn ifitonileti", - "notificationsCount": "{{count}} ninu 2 ti mu ṣiṣẹ", + "notificationsCount": "{{displayCount}} ninu 2 ti mu ṣiṣẹ", "slaPolicy": "Eto imulo SLA", "disabledNoManage": "Security Agent ti pa. Awọn oniwun àjọ ati awọn oluṣakoso owo nikan ni o le mu u ṣiṣẹ.", "disabledNoRepo": "Yan o kere ju ibi ipamọ kan ṣaaju ki o to mu Security Agent ṣiṣẹ.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Ṣii ibeere fifa{{number}}", "openDraftPullRequest": "Ṣii ibeere fifa osere{{number}}", "progress": "Ilọsiwaju", - "attemptHistory": "Itan igbiyanju ({{count}})", + "attemptHistory": "Itan igbiyanju ({{displayCount}})", "attemptNumber": "Igbiyanju #{{number}}", "startedBy": "Ti bẹrẹ nipasẹ", "model": "Awoṣe", @@ -1855,9 +1878,9 @@ "toolTask": "iṣẹ", "readTodos": "Ka awọn todos", "updateTodos": "Ṣe imudojuiwọn awọn todos", - "linesBadge": "{{count}} awọn ila", - "filesBadge": "{{count}} awọn faili", - "matchesBadge": "{{count}} awọn baramu" + "linesBadge": "{{displayCount}} awọn ila", + "filesBadge": "{{displayCount}} awọn faili", + "matchesBadge": "{{displayCount}} awọn baramu" }, "readToolMarkdown": { "linesTruncated": "awọn ila {{start}}–{{end}} (ti ge kuru)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "A ko le jabo idahun yii.", "reportAiResponseSubmitted": "Ijabọ ti firanṣẹ. Iwe-ẹri {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Awọn alaye ko wa", "textDisplay": "Ìfihan ọrọ", @@ -1999,7 +2026,7 @@ "preparationComplete": "Imurasilẹ pari", "preparationFailed": "Imurasilẹ kuna", "setupCommand": "Aṣẹ eto {{index}}", - "setupCommandOf": "Aṣẹ eto {{index}} ninu {{count}}" + "setupCommandOf": "Aṣẹ eto {{index}} ninu {{displayCount}}" }, "permissionCard": { "title": "Iraye to nilo", @@ -2036,7 +2063,7 @@ "submissionFailed": "Ifisilẹ kuna. Jọwọ gbiyanju lẹẹkansi.", "questionAnnouncement": "Aṣoju nilo idahun rẹ. Olupilẹṣẹ ti duro si bi o ṣe n dahun.", "permissionAnnouncement": "Aṣoju nilo igbanilaye lati tẹsiwaju. Olupilẹṣẹ ti duro si bi o ṣe n pinnu.", - "positionHint": "(1 ninu {{count}})", + "positionHint": "(1 ninu {{displayCount}})", "movedPastPrompt": "Aṣoju ti kọja ibi ireti yii. Kaadi yii yoo pa nigba ti igba-ijiroro ba tẹsiwaju.", "waitingForAnswer": "Aṣoju n duro fun esi rẹ. Nigba ti ibeere yii ba wa ni sisi, ifiranṣẹ rẹ si aṣoju ti duro si.", "waitingForPermission": "Aṣoju n duro fun igbanilaye. Nigba ti ibeere yii ba wa ni sisi, ifiranṣẹ rẹ si aṣoju ti duro si." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Kamẹra Irayeṣi Ti Pa", "cameraAccessMessage": "Gba irayeṣi kamẹra ni Awọn Eto lati ya aworan.", "couldNotOpenPhotoPicker": "Ko le ṣii oluyan aworan. Tun Kilo bẹrẹ ki o si gbiyanju lẹẹkansi.", - "maxFilesAllowed": "Iwon {{count}} faili ti gba", + "maxFilesAllowed": "Iwon {{displayCount}} faili ti gba", "onlyAddingFiles": "Nikan ṣafikun {{accepted}} ninu {{total}} faili (pupọ {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "idiyele {{cost}}", "costSuffix": ", idiyele {{cost}}", "tokensWindowUnavailable": "Ọrọ-àkóónú {{used}} tokens, windọọ ko si", - "tokensUsage": "Ọrọ-àkóónú {{used}} ninu {{window}} tokens, {{percentage}}% ti lo", + "tokensUsage": "Ọrọ-àkóónú {{used}} ninu {{window}} tokens, {{percentage}} ti lo", "title": "Lilo ọrọ-àkóónú", "used": "Ti lo", "remaining": "To ku", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Lilo ṣe afihan esi oluranlowo ti o pari laipe.", "tokenUsage": "Lilo token", "cacheRate": "Oṣuwọn cache", - "modelsCount": "Awọn awoṣe ({{count}})", + "modelsCount": "Awọn awoṣe ({{displayCount}})", "tokenTotalsNote": "Lapapọ token bo igba-ijiroro yii nikan ati pe ko ka awọn token subagent/igba-ijiroro ọmọ.", "subagents": "Awọn subagent", "subagentsDescription": "Idiyele iyokù lati awọn igba-ijiroro ọmọ", @@ -2373,7 +2400,7 @@ "connectedCli": "Lori CLI ti o ti so", "newSessionOn": "Igba-ijiroro tuntun lori {{name}}", "noMatchingSessions": "Ko si igba-ijiroro to baamu.", - "onlyFirstFilesAttached": "Awọn faili {{count}} akọkọ nikan ni yoo so.", + "onlyFirstFilesAttached": "Awọn faili {{displayCount}} akọkọ nikan ni yoo so.", "staleMessage": "Pinpin yii ko si mọ.", "retryableMessage": "Ko le ṣagbewọ awọn igba-ijiroro rẹ.", "emptyMessage": "Ko si igba-ijiroro sibẹsibẹ — bẹrẹ tuntun lati fi eyi ranṣẹ.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "Kilo Pass lori Apple Account yii jẹ ti Kilo akọọlẹ miiran. Wọle si Kilo akọọlẹ yẹn lati ṣakoso rẹ.", "alreadySubscribed": "O ti ni ìfọwọsowọpọ Kilo Pass tẹlẹ.", "purchaseUnavailable": "Rira Kilo Pass ko si ni bayi.", - "tierCredits": "${{amount}} ninu awọn kirẹditi", + "tierCredits": "{{amount}} ninu awọn kirẹditi", "perMonth": "{{price}}/osu", "verifyPurchaseFailed": "Ko le ṣe ijẹrisi rira rẹ. Ṣayẹwo asopọ rẹ ki o si gbiyanju lẹẹkansi.", "productsCouldNotLoad": "A ko le ṣagbewọ awọn ọja Kilo Pass lati App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Kuna lati ṣii iṣakoso ìfọwọsowọpọ App Store.", "kiloPassSetup": "Eto Kilo Pass", "subscriptionHeaderDescription": "Ìfọwọsowọpọ oṣooṣu ti n fi awọn kirẹditi kun si iwọntunwọnsi Kilo rẹ fun ṣiṣe awọn igba-ijiroro koodu AI ninu Kilo App — Cloud Agents, awọn igba-ijiroro jijin, ati awọn ijiroro KiloClaw.", - "tierDescription": "${{price}} awọn kirẹditi ti a san ti a fi kun ni oṣooṣu fun lilo Kilo App.", + "tierDescription": "{{price}} awọn kirẹditi ti a san ti a fi kun ni oṣooṣu fun lilo Kilo App.", "subscribe": "Fọwọsowọpọ", "subscribeDescription": "Awọn kirẹditi oṣooṣu pẹlu ilọsiwaju ẹbun", "manage": "Ṣakoso", @@ -2425,7 +2452,7 @@ "statusPending": "Kilo Pass n duro", "statusCanceling": "Kilo Pass n fagile", "statusPastDue": "Kilo Pass ti pẹ", - "monthlyCredits": "${{credits}} awọn kirẹditi oṣooṣu", + "monthlyCredits": "{{credits}} awọn kirẹditi oṣooṣu", "ends": "Pari {{date}}", "periodEnd": "ipari akoko", "managedOnGooglePlay": "Ti ṣakoso lori Google Play", diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index 51e759f748..f0177bea6a 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -201,7 +201,8 @@ "agents": "代理", "profile": "个人资料", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}},标签页,{{total}} 中的第 {{position}} 个" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "最近", "common": "常用", "reactWith": "使用 {{reaction}} 回应", - "accessibility": "{{emoji}} 回应,{{count}}" + "accessibility": "{{emoji}} 回应,{{displayCount}}" }, "composer": { "replyingTo": "回复", @@ -271,7 +272,7 @@ "imageUnavailable": "图片不可用", "openFailed": "无法打开附件。请检查网络连接后重试。", "attachFailed": "附加文件失败", - "limit": "最多可附加 {{count}} 个文件。", + "limit": "最多可附加 {{displayCount}} 个文件。", "sizeRejection": "{{filename}} 超出了 {{limit}} 的附件大小限制。", "unreadable": "无法读取 {{filename}}。", "pastedImage": "粘贴的图片", @@ -343,6 +344,7 @@ "finalTermEnds": "最终期限结束", "afterFinalTerm": "最终期限之后", "remaining": "剩余", + "lessThanOneDay": "不到 1 天", "ends": "结束", "expires": "到期", "noActivePlan": "没有生效的方案", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "您的 Standard 月费", "perMonth": "/月", "earlybirdAccessUntil": "Earlybird 访问至 {{date}}", - "earlybirdEnding": "Earlybird 即将结束:剩余 {{days}} 天", + "earlybirdEnding": "Earlybird 即将结束:剩余 {{remaining}} 天", "paymentPastDue": "付款已逾期。请更新您的付款方式。", "subscriptionCancels": "订阅将于 {{date}} 取消", - "trialDaysRemaining": "试用:剩余 {{days}} 天", - "trialEndingSoon": "试用即将结束:{{days}}" + "trialDaysRemaining": "试用:剩余 {{remaining}} 天", + "trialEndingSoon": "试用即将结束:{{remaining}}" }, "changelog": { "title": "新功能", @@ -665,7 +667,7 @@ "startingSandbox": "正在启动沙盒", "stoppedBody": "{{name}} 的实例在设置过程中意外停止。", "stoppedTitle": "设置已停止", - "timeoutBody": "{{name}} 的设置耗时比平时更长(已超过 {{minutes}} 分钟)。", + "timeoutBody": "{{name}} 的设置耗时比平时更长(已超过 {{displayMinutes}} 分钟)。", "timeoutTitle": "耗时比预期更长" }, "unavailableDescription": "配置实例需要有效的 KiloClaw 订阅。现有实例和订阅将照常运行。", @@ -912,7 +914,7 @@ "focusAreas": "关注领域", "mergeGate": "合并门禁", "model": "模型", - "nSelected": "已选 {{count}} 项", + "nSelected": "已选 {{displayCount}} 项", "proposedReviewMdGuidance": "建议的 REVIEW.md 指导", "repositories": "仓库", "reviewMemory": "审查记忆", @@ -981,7 +983,7 @@ "triageReasoning": "分类推理", "unknown": "未知", "watchInCloudAgent": "在 Cloud Agent 中查看", - "whereFound": "发现位置({{count}})", + "whereFound": "发现位置({{displayCount}})", "yes": "是" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "已确认可利用", "couldNotLoad": "无法加载仪表盘数据", "criticalOverdue": "严重逾期", - "daysOverdue": "逾期 {{count}} 天", + "daysOverdue": "逾期 {{displayCount}} 天", "deadlineToday": "今天到期", "filterByRepository": "按仓库筛选", "findings": "发现", - "findingsCount": "{{count}} 个发现", + "findingsCount": "{{displayCount}} 个发现", "highOverdue": "高逾期", "lastSynced": "上次同步于 {{time}}", "manageRepositories": "管理仓库", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "同步状态不可用", "withinDeadline": "在截止时间内" }, + "dashboardMetrics": { + "openFindings": "未解决的发现", + "openFindingsDetail": "{{critical}} 个严重,{{high}} 个高", + "confirmedExploitable": "已确认可利用", + "confirmedExploitableDetail": "项目风险已通过分析确认", + "needsReview": "需要您审核", + "needsReviewDetail": "需要人工决定", + "analysisIncomplete": "分析未完成", + "analysisIncompleteDetail": "项目风险仍未知", + "slaCompliance": "SLA 合规", + "notMeasured": "未测量", + "withinDeadlineDetail": "{{total}} 个中有 {{within}} 个在截止时间内", + "noDeadlineData": "尚无发现具有 SLA 截止时间", + "deadlinePassed": "截止时间已过", + "deadlinePassedDetail": "{{critical}} 个严重,{{high}} 个高", + "dueThisWeek": "本周到期", + "dueThisWeekDetail": "{{exploitable}} 个已确认可利用", + "noDeadline": "无截止时间", + "reviewSlaAssignment": "查看 SLA 分配", + "allOpenFindingsTracked": "所有未解决的发现均已跟踪" + }, "dismiss": { "alreadyResolvedDescription": "此发现已解决,不再接受忽略。", "cannotDismissDescription": "只有组织所有者和账单管理员可以忽略发现。", @@ -1188,7 +1211,7 @@ "title": "通知" }, "remediation": { - "attemptHistory": "尝试历史({{count}})", + "attemptHistory": "尝试历史({{displayCount}})", "attemptNumber": "尝试 #{{number}}", "branch": "分支", "cancelMessage": "安全代理将停止正在进行的修复尝试。", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "{{mode}} 分析", "automation": "自动化", "automationAllOff": "全部关闭", - "automationCount": "已启用 {{count}}/3 项", + "automationCount": "已启用 {{displayCount}}/3 项", "couldNotLoadPermissions": "无法加载权限", "couldNotLoadRepositories": "无法加载仓库", "couldNotLoadSettings": "无法加载安全代理设置", @@ -1267,7 +1290,7 @@ "enabled": "已启用", "modelsAndAnalysis": "模型与分析", "notifications": "通知", - "notificationsCount": "已启用 {{count}}/2 项", + "notificationsCount": "已启用 {{displayCount}}/2 项", "off": "关闭", "on": "开启", "repositories": "仓库", @@ -1476,9 +1499,9 @@ "toolTask": "任务", "readTodos": "读取待办事项", "updateTodos": "更新待办事项", - "linesBadge": "{{count}} 行", - "filesBadge": "{{count}} 个文件", - "matchesBadge": "{{count}} 个匹配" + "linesBadge": "{{displayCount}} 行", + "filesBadge": "{{displayCount}} 个文件", + "matchesBadge": "{{displayCount}} 个匹配" }, "readToolMarkdown": { "linesTruncated": "第 {{start}}–{{end}} 行(已截断)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "此回复无法举报。", "reportAiResponseSubmitted": "举报已提交。回执 {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "详情不可用", "textDisplay": "文本显示", @@ -1620,7 +1647,7 @@ "preparationComplete": "准备完成", "preparationFailed": "准备失败", "setupCommand": "设置命令 {{index}}", - "setupCommandOf": "设置命令 {{index}}/{{count}}" + "setupCommandOf": "设置命令 {{index}}/{{displayCount}}" }, "permissionCard": { "title": "需要权限", @@ -1657,7 +1684,7 @@ "submissionFailed": "提交失败。请重试。", "questionAnnouncement": "代理需要您的输入。在您回答期间,编辑器已暂停。", "permissionAnnouncement": "代理需要权限才能继续。在您决定期间,编辑器已暂停。", - "positionHint": "({{count}} 之 1)", + "positionHint": "({{displayCount}} 之 1)", "movedPastPrompt": "代理已越过此提示。会话继续时此卡片将关闭。", "waitingForAnswer": "代理正在等待您的回答。此问题打开期间,您发给代理的消息已暂停。", "waitingForPermission": "代理正在等待权限。此请求打开期间,您发给代理的消息已暂停。" @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "相机访问已禁用", "cameraAccessMessage": "在设置中允许相机访问以拍照。", "couldNotOpenPhotoPicker": "无法打开照片选择器。请重启 Kilo 后重试。", - "maxFilesAllowed": "最多允许 {{count}} 个文件", + "maxFilesAllowed": "最多允许 {{displayCount}} 个文件", "onlyAddingFiles": "仅添加 {{accepted}} 个文件(共 {{total}} 个,最多 {{max}} 个)" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "费用 {{cost}}", "costSuffix": ",费用 {{cost}}", "tokensWindowUnavailable": "上下文 {{used}} 个令牌,窗口不可用", - "tokensUsage": "上下文 {{used}}/{{window}} 个令牌,已使用 {{percentage}}%", + "tokensUsage": "上下文 {{used}}/{{window}} 个令牌,已使用 {{percentage}}", "title": "上下文使用情况", "used": "已使用", "remaining": "剩余", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "使用情况反映最近一次完成的助手回复。", "tokenUsage": "令牌使用情况", "cacheRate": "缓存费率", - "modelsCount": "模型({{count}})", + "modelsCount": "模型({{displayCount}})", "tokenTotalsNote": "令牌总数仅涵盖此会话,不包括子代理/子会话的令牌。", "subagents": "子代理", "subagentsDescription": "子会话的剩余费用", @@ -1994,7 +2021,7 @@ "connectedCli": "在已连接的 CLI 上", "newSessionOn": "在 {{name}} 上的新会话", "noMatchingSessions": "没有匹配的会话。", - "onlyFirstFilesAttached": "仅会附加前 {{count}} 个文件。", + "onlyFirstFilesAttached": "仅会附加前 {{displayCount}} 个文件。", "staleMessage": "此分享已不再可用。", "retryableMessage": "无法加载您的会话。", "emptyMessage": "暂无会话 — 新建一个会话以发送此内容。", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "此 Apple 账户上的 Kilo Pass 属于另一个 Kilo 账户。请登录该 Kilo 账户进行管理。", "alreadySubscribed": "您已拥有 Kilo Pass 订阅。", "purchaseUnavailable": "Kilo Pass 购买目前不可用。", - "tierCredits": "${{amount}} 积分", + "tierCredits": "{{amount}} 积分", "perMonth": "{{price}}/月", "verifyPurchaseFailed": "无法验证您的购买。请检查连接后重试。", "productsCouldNotLoad": "无法从 App Store 加载 Kilo Pass 产品。", @@ -2038,7 +2065,7 @@ "manageFailed": "无法打开 App Store 订阅管理。", "kiloPassSetup": "Kilo Pass 设置", "subscriptionHeaderDescription": "一项月度订阅,为你的 Kilo 余额添加积分,用于在 Kilo App 中运行 AI 编程会话 — Cloud Agents、远程会话和 KiloClaw 聊天。", - "tierDescription": "每月为 Kilo App 使用添加 ${{price}} 付费积分。", + "tierDescription": "每月为 Kilo App 使用添加 {{price}} 付费积分。", "subscribe": "订阅", "subscribeDescription": "月度积分及奖励进度", "manage": "管理", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass 待处理", "statusCanceling": "Kilo Pass 正在取消", "statusPastDue": "Kilo Pass 已逾期", - "monthlyCredits": "每月 ${{credits}} 积分", + "monthlyCredits": "每月 {{credits}} 积分", "ends": "{{date}} 结束", "periodEnd": "周期结束", "managedOnGooglePlay": "在 Google Play 管理", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "您没有权限查看此拉取请求。", "checkConnection": "检查连接", "checks": { - "checksCount": "{{count}} 项检查", + "checksCount": "{{displayCount}} 项检查", "couldNotLoad": "无法加载检查。", - "failed": "{{count}} 项失败", + "failed": "{{displayCount}} 项失败", "noAccess": "您没有此仓库检查的访问权限。", "noChecksReported": "未报告任何检查", "notAvailable": "检查尚不可用。头部提交可能尚未处理,或者 Kilo GitHub 应用未安装在头部仓库上。", "openDetails": "打开 {{name}} 详情", - "passed": "{{count}} 项通过", - "pending": "{{count}} 项待处理", + "passed": "{{displayCount}} 项通过", + "pending": "{{displayCount}} 项待处理", "retryChecks": "重试检查", - "skipped": "{{count}} 项已跳过", + "skipped": "{{displayCount}} 项已跳过", "title": "检查", "viewOnGitHub": "在 GitHub 上查看 PR", "checkDetails": "检查详情", @@ -2238,7 +2265,7 @@ "terminal": "无法举报此用户。" } }, - "moreLinesAbove": "… 上方还有 {{count}} 行", + "moreLinesAbove": "… 上方还有 {{displayCount}} 行", "mute": "静音", "mutedUser": "已静音 {{login}}", "noDiscussion": "暂无讨论", @@ -2246,7 +2273,7 @@ "comment_one": "1 条评论", "outdated": "已过时", "quotedDiffSnippet": "引用的差异片段", - "reactionPill": "{{emoji}} 回应,{{count}} {{countLabel}}", + "reactionPill": "{{emoji}} 回应,{{displayCount}} {{countLabel}}", "reaction": "个回应", "reaction_other": "个回应", "reaction_one": "个回应", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "此引用处上下文不可用", "expandAll": "全部展开", - "expandAllLines": "展开全部 {{count}} 行", + "expandAllLines": "展开全部 {{displayCount}} 行", "expandContext": "展开上下文", - "expandLines": "展开 {{count}} 行({{start}}–{{end}})", - "expandLinesOfContext": "展开 {{count}} 行上下文", + "expandLines": "展开 {{displayCount}} 行({{start}}–{{end}})", + "expandLinesOfContext": "展开 {{displayCount}} 行上下文", "expandMoreContext": "展开更多上下文", - "expandMoreLines": "展开更多 {{count}} 行({{start}}–{{end}})", + "expandMoreLines": "展开更多 {{displayCount}} 行({{start}}–{{end}})", "failedToLoadContext": "无法加载上下文 — 点击重试", "failedToLoadMoreFiles": "无法加载更多文件 — 点击重试", "fileLoadedCount_one": "已加载 {{displayCount}} 个文件", @@ -2500,8 +2527,8 @@ "pendingComment_one": "条待处理评论", "summaryOptional": "摘要(可选)", "title": "提交审查", - "partialPostedMessage": "已发布 {{freshCount}} 条评论。{{staleCount}} 条评论指向较早的提交,仍保留在您的队列中。", - "submitCountOfTotal": "提交 {{totalCount}} 条评论中的 {{freshCount}} 条", + "partialPostedMessage": "已发布 {{displayFreshCount}} 条评论。{{displayStaleCount}} 条评论指向较早的提交,仍保留在您的队列中。", + "submitCountOfTotal": "提交 {{displayTotalCount}} 条评论中的 {{displayFreshCount}} 条", "submitReview": "提交审查" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index 0a2a54ab80..b4e5b8b42a 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -201,7 +201,8 @@ "agents": "代理", "profile": "個人資料", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}},標籤頁,{{total}} 中的第 {{position}} 個" }, "chat": { "instancePicker": { @@ -242,7 +243,7 @@ "recent": "最近", "common": "常用", "reactWith": "以 {{reaction}} 回應", - "accessibility": "{{emoji}} 反應,{{count}}" + "accessibility": "{{emoji}} 反應,{{displayCount}}" }, "composer": { "replyingTo": "回覆", @@ -271,7 +272,7 @@ "imageUnavailable": "圖片無法使用", "openFailed": "無法開啟附件。請檢查連線後再試一次。", "attachFailed": "附加檔案失敗", - "limit": "最多可附加 {{count}} 個檔案。", + "limit": "最多可附加 {{displayCount}} 個檔案。", "sizeRejection": "{{filename}} 超出 {{limit}} 的附件大小限制。", "unreadable": "無法讀取 {{filename}}。", "pastedImage": "貼上的圖片", @@ -343,6 +344,7 @@ "finalTermEnds": "最終期限結束", "afterFinalTerm": "最終期限之後", "remaining": "剩餘", + "lessThanOneDay": "不到 1 天", "ends": "結束", "expires": "到期", "noActivePlan": "沒有生效的方案", @@ -361,11 +363,11 @@ "yourStandardMonthlyPrice": "您的 Standard 月費", "perMonth": "/月", "earlybirdAccessUntil": "Earlybird 存取至 {{date}}", - "earlybirdEnding": "Earlybird 即將結束:剩餘 {{days}} 天", + "earlybirdEnding": "Earlybird 即將結束:剩餘 {{remaining}} 天", "paymentPastDue": "付款已逾期。請更新您的付款方式。", "subscriptionCancels": "訂閱將於 {{date}} 取消", - "trialDaysRemaining": "試用:剩餘 {{days}} 天", - "trialEndingSoon": "試用即將結束:{{days}}" + "trialDaysRemaining": "試用:剩餘 {{remaining}} 天", + "trialEndingSoon": "試用即將結束:{{remaining}}" }, "changelog": { "title": "新功能", @@ -665,7 +667,7 @@ "startingSandbox": "正在啟動沙箱", "stoppedBody": "{{name}} 的執行個體在設定過程中意外停止。", "stoppedTitle": "設定已停止", - "timeoutBody": "{{name}} 的設定耗時比平常更久(已超過 {{minutes}} 分鐘)。", + "timeoutBody": "{{name}} 的設定耗時比平常更久(已超過 {{displayMinutes}} 分鐘)。", "timeoutTitle": "耗時比預期更久" }, "unavailableDescription": "佈建執行個體需要有效的 KiloClaw 訂閱。現有執行個體與訂閱將照常運作。", @@ -912,7 +914,7 @@ "focusAreas": "重點領域", "mergeGate": "合併門禁", "model": "模型", - "nSelected": "已選取 {{count}} 項", + "nSelected": "已選取 {{displayCount}} 項", "proposedReviewMdGuidance": "建議的 REVIEW.md 指引", "repositories": "存放庫", "reviewMemory": "審查記憶", @@ -981,7 +983,7 @@ "triageReasoning": "分類推理", "unknown": "未知", "watchInCloudAgent": "在 Cloud Agent 中檢視", - "whereFound": "發現位置({{count}})", + "whereFound": "發現位置({{displayCount}})", "yes": "是" }, "analysisSettings": { @@ -1061,11 +1063,11 @@ "confirmedExploitable": "已確認可利用", "couldNotLoad": "無法載入儀表板資料", "criticalOverdue": "嚴重逾期", - "daysOverdue": "逾期 {{count}} 天", + "daysOverdue": "逾期 {{displayCount}} 天", "deadlineToday": "今天到期", "filterByRepository": "依存放庫篩選", "findings": "發現", - "findingsCount": "{{count}} 個發現", + "findingsCount": "{{displayCount}} 個發現", "highOverdue": "高逾期", "lastSynced": "上次同步於 {{time}}", "manageRepositories": "管理存放庫", @@ -1091,6 +1093,27 @@ "syncStatusUnavailable": "同步狀態無法使用", "withinDeadline": "在截止時間內" }, + "dashboardMetrics": { + "openFindings": "未解決的發現", + "openFindingsDetail": "{{critical}} 個嚴重,{{high}} 個高", + "confirmedExploitable": "已確認可利用", + "confirmedExploitableDetail": "專案風險已透過分析確認", + "needsReview": "需要您審核", + "needsReviewDetail": "需要人工決定", + "analysisIncomplete": "分析未完成", + "analysisIncompleteDetail": "專案風險仍未知", + "slaCompliance": "SLA 合規", + "notMeasured": "未測量", + "withinDeadlineDetail": "{{total}} 個中有 {{within}} 個在截止時間內", + "noDeadlineData": "尚無發現具有 SLA 截止時間", + "deadlinePassed": "截止時間已過", + "deadlinePassedDetail": "{{critical}} 個嚴重,{{high}} 個高", + "dueThisWeek": "本週到期", + "dueThisWeekDetail": "{{exploitable}} 個已確認可利用", + "noDeadline": "無截止時間", + "reviewSlaAssignment": "檢視 SLA 指派", + "allOpenFindingsTracked": "所有未解決的發現均已追蹤" + }, "dismiss": { "alreadyResolvedDescription": "此發現已解決,不再接受忽略。", "cannotDismissDescription": "只有組織擁有者與帳單管理員可以忽略發現。", @@ -1188,7 +1211,7 @@ "title": "通知" }, "remediation": { - "attemptHistory": "嘗試記錄({{count}})", + "attemptHistory": "嘗試記錄({{displayCount}})", "attemptNumber": "嘗試 #{{number}}", "branch": "分支", "cancelMessage": "安全性代理將停止進行中的修復嘗試。", @@ -1256,7 +1279,7 @@ "analysisModeSubtitle": "{{mode}} 分析", "automation": "自動化", "automationAllOff": "全部關閉", - "automationCount": "已啟用 {{count}}/3 項", + "automationCount": "已啟用 {{displayCount}}/3 項", "couldNotLoadPermissions": "無法載入權限", "couldNotLoadRepositories": "無法載入存放庫", "couldNotLoadSettings": "無法載入安全性代理設定", @@ -1267,7 +1290,7 @@ "enabled": "已啟用", "modelsAndAnalysis": "模型與分析", "notifications": "通知", - "notificationsCount": "已啟用 {{count}}/2 項", + "notificationsCount": "已啟用 {{displayCount}}/2 項", "off": "關閉", "on": "開啟", "repositories": "存放庫", @@ -1476,9 +1499,9 @@ "toolTask": "任務", "readTodos": "讀取待辦事項", "updateTodos": "更新待辦事項", - "linesBadge": "{{count}} 行", - "filesBadge": "{{count}} 個檔案", - "matchesBadge": "{{count}} 個相符" + "linesBadge": "{{displayCount}} 行", + "filesBadge": "{{displayCount}} 個檔案", + "matchesBadge": "{{displayCount}} 個相符" }, "readToolMarkdown": { "linesTruncated": "第 {{start}}–{{end}} 行(已截斷)", @@ -1562,6 +1585,10 @@ "reportAiResponseFailedTerminal": "此回覆無法檢舉。", "reportAiResponseSubmitted": "檢舉已提交。回執 {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "詳細資料無法使用", "textDisplay": "文字顯示", @@ -1620,7 +1647,7 @@ "preparationComplete": "準備完成", "preparationFailed": "準備失敗", "setupCommand": "設定命令 {{index}}", - "setupCommandOf": "設定命令 {{index}} / {{count}}" + "setupCommandOf": "設定命令 {{index}} / {{displayCount}}" }, "permissionCard": { "title": "需要權限", @@ -1657,7 +1684,7 @@ "submissionFailed": "提交失敗。請再試一次。", "questionAnnouncement": "代理需要您的輸入。回答期間撰寫器已暫停。", "permissionAnnouncement": "代理需要權限才能繼續。決定期間撰寫器已暫停。", - "positionHint": "(第 1 個,共 {{count}} 個)", + "positionHint": "(第 1 個,共 {{displayCount}} 個)", "movedPastPrompt": "代理已越過此提示。工作階段繼續時,此卡片將關閉。", "waitingForAnswer": "代理正在等待您的答案。此問題開啟期間,您傳給代理的訊息已暫停。", "waitingForPermission": "代理正在等待權限。此要求開啟期間,您傳給代理的訊息已暫停。" @@ -1778,7 +1805,7 @@ "cameraAccessDisabled": "相機存取已停用", "cameraAccessMessage": "請在「設定」中允許相機存取以拍攝照片。", "couldNotOpenPhotoPicker": "無法開啟照片選擇器。請重新啟動 Kilo 並再試一次。", - "maxFilesAllowed": "最多允許 {{count}} 個檔案", + "maxFilesAllowed": "最多允許 {{displayCount}} 個檔案", "onlyAddingFiles": "僅附加 {{total}} 個檔案中的 {{accepted}} 個(最多 {{max}} 個)" }, "composer": { @@ -1843,7 +1870,7 @@ "costPrefix": "成本 {{cost}}", "costSuffix": ",成本 {{cost}}", "tokensWindowUnavailable": "內容 {{used}} 個 token,視窗無法使用", - "tokensUsage": "內容 {{used}} / {{window}} 個 token,已使用 {{percentage}}%", + "tokensUsage": "內容 {{used}} / {{window}} 個 token,已使用 {{percentage}}", "title": "內容用量", "used": "已使用", "remaining": "剩餘", @@ -1852,7 +1879,7 @@ "usageReflectsLatest": "用量反映最近一次完成的助理回覆。", "tokenUsage": "Token 用量", "cacheRate": "快取費率", - "modelsCount": "模型({{count}})", + "modelsCount": "模型({{displayCount}})", "tokenTotalsNote": "Token 總計僅涵蓋此工作階段,不包含子代理/子工作階段的 token。", "subagents": "子代理", "subagentsDescription": "子工作階段的剩餘成本", @@ -1994,7 +2021,7 @@ "connectedCli": "在已連接的 CLI 上", "newSessionOn": "在 {{name}} 上建立新工作階段", "noMatchingSessions": "沒有相符的工作階段。", - "onlyFirstFilesAttached": "只會附加前 {{count}} 個檔案。", + "onlyFirstFilesAttached": "只會附加前 {{displayCount}} 個檔案。", "staleMessage": "此分享已不再可用。", "retryableMessage": "無法載入您的工作階段。", "emptyMessage": "尚無工作階段 — 建立新工作階段即可傳送此內容。", @@ -2027,7 +2054,7 @@ "otherAccountCopy": "此 Apple 帳戶上的 Kilo Pass 屬於另一個 Kilo 帳戶。請登入該 Kilo 帳戶以進行管理。", "alreadySubscribed": "您已有 Kilo Pass 訂閱。", "purchaseUnavailable": "Kilo Pass 購買目前無法使用。", - "tierCredits": "${{amount}} 的點數", + "tierCredits": "{{amount}} 的點數", "perMonth": "{{price}}/月", "verifyPurchaseFailed": "無法驗證您的購買。請檢查連線後重試。", "productsCouldNotLoad": "無法從 App Store 載入 Kilo Pass 產品。", @@ -2038,7 +2065,7 @@ "manageFailed": "無法開啟 App Store 訂閱管理。", "kiloPassSetup": "Kilo Pass 設定", "subscriptionHeaderDescription": "每月訂閱,可將點數加入您的 Kilo 餘額,用於在 Kilo App 中執行 AI 程式設計工作階段 — Cloud Agents、遠端工作階段和 KiloClaw 聊天。", - "tierDescription": "每月為 Kilo App 使用加入 ${{price}} 的付費點數。", + "tierDescription": "每月為 Kilo App 使用加入 {{price}} 的付費點數。", "subscribe": "訂閱", "subscribeDescription": "每月點數與獎勵進度", "manage": "管理", @@ -2046,7 +2073,7 @@ "statusPending": "Kilo Pass 待處理", "statusCanceling": "Kilo Pass 取消中", "statusPastDue": "Kilo Pass 已逾期", - "monthlyCredits": "每月 ${{credits}} 點數", + "monthlyCredits": "每月 {{credits}} 點數", "ends": "於 {{date}} 結束", "periodEnd": "計費週期結束", "managedOnGooglePlay": "由 Google Play 管理", @@ -2150,17 +2177,17 @@ "accessDeniedDescription": "您沒有權限檢視此拉取請求。", "checkConnection": "檢查連線", "checks": { - "checksCount": "{{count}} 項檢查", + "checksCount": "{{displayCount}} 項檢查", "couldNotLoad": "無法載入檢查。", - "failed": "{{count}} 項失敗", + "failed": "{{displayCount}} 項失敗", "noAccess": "您沒有此存放庫的檢查存取權限。", "noChecksReported": "沒有回報的檢查", "notAvailable": "檢查尚無法使用。head 提交可能尚未處理,或 Kilo GitHub App 未安裝在 head 存放庫上。", "openDetails": "開啟 {{name}} 詳細資料", - "passed": "{{count}} 項通過", - "pending": "{{count}} 項待處理", + "passed": "{{displayCount}} 項通過", + "pending": "{{displayCount}} 項待處理", "retryChecks": "重試檢查", - "skipped": "{{count}} 項略過", + "skipped": "{{displayCount}} 項略過", "title": "檢查", "viewOnGitHub": "在 GitHub 上檢視 PR", "checkDetails": "檢查詳細資料", @@ -2238,7 +2265,7 @@ "terminal": "無法檢舉此使用者。" } }, - "moreLinesAbove": "…上方還有 {{count}} 行", + "moreLinesAbove": "…上方還有 {{displayCount}} 行", "mute": "靜音", "mutedUser": "已靜音 {{login}}", "noDiscussion": "尚無討論", @@ -2246,7 +2273,7 @@ "comment_one": "1 則留言", "outdated": "已過時", "quotedDiffSnippet": "引用的 diff 片段", - "reactionPill": "{{emoji}} 反應,{{count}} {{countLabel}}", + "reactionPill": "{{emoji}} 反應,{{displayCount}} {{countLabel}}", "reaction": "個反應", "reaction_other": "個反應", "reaction_one": "個反應", @@ -2350,12 +2377,12 @@ "hunkRows": { "contextUnavailable": "此 ref 的內容無法使用", "expandAll": "全部展開", - "expandAllLines": "展開全部 {{count}} 行", + "expandAllLines": "展開全部 {{displayCount}} 行", "expandContext": "展開內容", - "expandLines": "展開 {{count}} 行({{start}}–{{end}})", - "expandLinesOfContext": "展開 {{count}} 行內容", + "expandLines": "展開 {{displayCount}} 行({{start}}–{{end}})", + "expandLinesOfContext": "展開 {{displayCount}} 行內容", "expandMoreContext": "展開更多內容", - "expandMoreLines": "展開更多 {{count}} 行({{start}}–{{end}})", + "expandMoreLines": "展開更多 {{displayCount}} 行({{start}}–{{end}})", "failedToLoadContext": "無法載入內容 — 點按重試", "failedToLoadMoreFiles": "無法載入更多檔案 — 點按重試", "fileLoadedCount_one": "已載入 {{displayCount}} 個檔案", @@ -2500,8 +2527,8 @@ "pendingComment_one": "則待處理留言", "summaryOptional": "摘要(選用)", "title": "提交審查", - "partialPostedMessage": "已發佈 {{freshCount}} 則留言。{{staleCount}} 則留言指向較舊的提交,並保留在您的佇列中。", - "submitCountOfTotal": "提交 {{freshCount}} / {{totalCount}} 則留言", + "partialPostedMessage": "已發佈 {{displayFreshCount}} 則留言。{{displayStaleCount}} 則留言指向較舊的提交,並保留在您的佇列中。", + "submitCountOfTotal": "提交 {{displayFreshCount}} / {{displayTotalCount}} 則留言", "submitReview": "提交審查" }, "fileStatus": { diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index c85744d8a2..4dc69bce4b 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -206,11 +206,11 @@ "loadingLines": "Kuyalayishwa imigqa {{loaded}} kwangu-{{total}}…", "expandContext": "Vula umongo", "expandMoreContext": "Vula umongo owengeziwe", - "expandLines": "Vula imigqa engu-{{count}} ({{start}}–{{end}})", - "expandMoreLines": "Vula eminye imigqa engu-{{count}} ({{start}}–{{end}})", - "expandLinesOfContext": "Vula imigqa engu-{{count}} yomongo", + "expandLines": "Vula imigqa engu-{{displayCount}} ({{start}}–{{end}})", + "expandMoreLines": "Vula eminye imigqa engu-{{displayCount}} ({{start}}–{{end}})", + "expandLinesOfContext": "Vula imigqa engu-{{displayCount}} yomongo", "expandAll": "Vula konke", - "expandAllLines": "Vula yonke imigqa engu-{{count}}", + "expandAllLines": "Vula yonke imigqa engu-{{displayCount}}", "loadingMoreFiles": "Kuyalayishwa amanye amafayela…", "retryLoadingNextPage": "Zama futhi ukulayisha ikhasi elilandelayo", "failedToLoadMoreFiles": "Ukwehluleka ukulayisha amanye amafayela — thepha ukuze uzame futhi", @@ -301,7 +301,7 @@ "closeReactions": "Vala ukusabela", "reactionsTitle": "Ukusabela", "addReaction": "Engeza ukusabela", - "reactionPill": "{{emoji}} ukusabela, {{count}} {{countLabel}}", + "reactionPill": "{{emoji}} ukusabela, {{displayCount}} {{countLabel}}", "reaction_one": "ukusabela", "reaction": "ukusabela", "reaction_other": "ukusabela", @@ -353,7 +353,7 @@ "noDiscussionDescription": "Azikho izintambo zokubuyekeza noma amazwana engxoxo kulesi sicelo sokudonsa.", "reviewFiles": "Buyekeza amafayela", "quotedDiffSnippet": "Ucezu lomehluko olucashuniwe", - "moreLinesAbove": "… eminye imigqa engu-{{count}} ngenhla", + "moreLinesAbove": "… eminye imigqa engu-{{displayCount}} ngenhla", "termsAcceptRequired": "Kumele wamukele Imigomo Yesevisi ukuze uthumele.", "termsOutdatedCopy": "Imigomo Yesevisi ishintshile. Vula kabusha lesi sikrini ukuze wamukele inguqulo yakamuva.", "termsCheckRetryCopy": "Asikwazanga ukuhlola Imigomo Yesevisi. Hlola ukuxhumana kwakho bese uzama futhi." @@ -395,11 +395,11 @@ "retryChecks": "Zama futhi amasheki", "viewOnGitHub": "Buka i-PR ku-GitHub", "noChecksReported": "Azikho izinto ezibikiwe", - "passed": "{{count}} zidlulile", - "failed": "{{count}} zehlulekile", - "pending": "{{count}} zilindile", - "skipped": "{{count}} zeqiwe", - "checksCount": "amasheki angu-{{count}}", + "passed": "{{displayCount}} zidlulile", + "failed": "{{displayCount}} zehlulekile", + "pending": "{{displayCount}} zilindile", + "skipped": "{{displayCount}} zeqiwe", + "checksCount": "amasheki angu-{{displayCount}}", "checkDetails": "imininingwane yesheki", "pullRequest": "isicelo sokudonsa" }, @@ -459,9 +459,9 @@ "pendingComment_one": "amazwana alindile", "pendingComment": "amazwana alindile", "pendingComment_other": "amazwana alindile", - "submitCountOfTotal": "Thumela amazwana angu-{{freshCount}} kwangu-{{totalCount}}", + "submitCountOfTotal": "Thumela amazwana angu-{{displayFreshCount}} kwangu-{{displayTotalCount}}", "submitReview": "Thumela ukubuyekeza", - "partialPostedMessage": "Kuthunyelwe amazwana angu-{{freshCount}}. Amazwana angu-{{staleCount}} akhomba ku-commit endala futhi ahlala emgqeni wakho." + "partialPostedMessage": "Kuthunyelwe amazwana angu-{{displayFreshCount}}. Amazwana angu-{{displayStaleCount}} akhomba ku-commit endala futhi ahlala emgqeni wakho." }, "reconnectNotice": { "title": "Ukuxhumana kwe-GitHub kuphelelwe yisikhathi", @@ -580,7 +580,8 @@ "agents": "Ama-agent", "profile": "Iphrofayili", "kiloclaw": "KiloClaw", - "kiloclawWrapped": "Kilo\nClaw" + "kiloclawWrapped": "Kilo\nClaw", + "position": "{{name}}, ithebhu, {{position}} kwe-{{total}}" }, "chat": { "instancePicker": { @@ -621,7 +622,7 @@ "recent": "Kwamuva", "common": "Okujwayelekile", "reactWith": "Sabela nge-{{reaction}}", - "accessibility": "{{emoji}} ukusabela, {{count}}" + "accessibility": "{{emoji}} ukusabela, {{displayCount}}" }, "composer": { "replyingTo": "Uphendula ku", @@ -650,7 +651,7 @@ "imageUnavailable": "Isithombe asitholakali", "openFailed": "Asikwazanga ukuvula okunamathiselwe. Hlola ukuxhumana kwakho bese uzama futhi.", "attachFailed": "Ukwehluleka ukunamathisela ifayela", - "limit": "Unganamathisela amafayela afinyelela ku-{{count}}.", + "limit": "Unganamathisela amafayela afinyelela ku-{{displayCount}}.", "sizeRejection": "{{filename}} udlula umkhawulo wokunamathisela ongu-{{limit}}.", "unreadable": "Asikwazanga ukufunda {{filename}}.", "pastedImage": "isithombe esinamathiselwe", @@ -722,6 +723,7 @@ "finalTermEnds": "Ithemu yokugcina iyaphela", "afterFinalTerm": "Ngemva kwethemu yokugcina", "remaining": "Okusele", + "lessThanOneDay": "Ngaphansi kosuku olulodwa", "ends": "Kuphela", "expires": "Kuyaphela", "noActivePlan": "Akukho uhlelo olusebenzayo", @@ -740,11 +742,11 @@ "yourStandardMonthlyPrice": "intengo yakho yenyanga ye-Standard", "perMonth": "/inyanga", "earlybirdAccessUntil": "Ukufinyelela kwe-Earlybird kuze kube nge-{{date}}", - "earlybirdEnding": "I-Earlybird iyaphela: izinsuku {{days}} ezisele", + "earlybirdEnding": "I-Earlybird iyaphela: izinsuku {{remaining}} ezisele", "paymentPastDue": "Inkokhelo isidlutshiwe. Uyacelwa ubuyekeze indlela yakho yokukhokha.", "subscriptionCancels": "Ukubhalisa kuyakansela nge-{{date}}", - "trialDaysRemaining": "Isilingo: izinsuku {{days}} ezisele", - "trialEndingSoon": "Isilingo siyaphela maduze: {{days}}" + "trialDaysRemaining": "Isilingo: izinsuku {{remaining}} ezisele", + "trialEndingSoon": "Isilingo siyaphela maduze: {{remaining}}" }, "changelog": { "title": "Yini Esha", @@ -996,7 +998,7 @@ "stalledTitle": "Kukhona okumile", "stalledBody": "Asikwazanga ukuqeda ukusetha kuka-{{name}}. Zama futhi, noma thumela i-imeyili ku-hi@kilo.ai uma lokhu kuqhubeka.", "timeoutTitle": "Kuthatha isikhathi eside kunalokho okulindelekile", - "timeoutBody": "Ukusetha kuka-{{name}} kuthatha isikhathi eside kunokujwayelekile (ngaphezu kwemizuzu engu-{{minutes}}).", + "timeoutBody": "Ukusetha kuka-{{name}} kuthatha isikhathi eside kunokujwayelekile (ngaphezu kwemizuzu engu-{{displayMinutes}}).", "continueInBackground": "Qhubeka ngemuva", "settingUp": "Iyasetha u-{{name}}", "finishingSetup": "Kuphetha ukusetha", @@ -1287,7 +1289,7 @@ "mergeGate": "Isango lokuhlanganisa", "repositories": "Izindawo zokugcina", "allRepositories": "Zonke izindawo zokugcina", - "nSelected": "{{count}} kukhethiwe", + "nSelected": "{{displayCount}} kukhethiwe", "reviewMemory": "Inkumbulo yokubuyekeza", "proposedReviewMdGuidance": "Umhlahlandlela ocetshiswayo we-REVIEW.md" }, @@ -1391,14 +1393,14 @@ "analyzed": "Kuhlaziyiwe", "exploitabilityReasoning": "Isizathu sokuthi kusetshenziswa", "suggestedFix": "Ukulungisa okusikiselwayo", - "whereFound": "Lapho lokhu kutholakale ({{count}})", + "whereFound": "Lapho lokhu kutholakale ({{displayCount}})", "fullReport": "Umbiko ogcwele owakhiwe", "unknown": "Akukaziwa", "yes": "Yebo", "no": "Cha" }, "dashboard": { - "findingsCount": "{{count}} ukutholakele", + "findingsCount": "{{displayCount}} ukutholakele", "notMeasured": "Akukalwanga", "actFirst": "Yenza kuqala", "slaPosture": "Isimo se-SLA", @@ -1407,7 +1409,7 @@ "repositoryActionPlan": "Uhlelo lwezenzo lwe-repository", "noOpenFindings": "Akukho ukutholakele okusemthethweni okudinga ukunakwa", "deadlineToday": "Isikhathi sifinyelelwe namuhla", - "daysOverdue": "{{count}} izinsuku isidliwe", + "daysOverdue": "{{displayCount}} izinsuku isidliwe", "withinDeadline": "Phakathi kwesikhathi", "criticalOverdue": "Okubaluleke kakhulu kudlule isikhathi", "highOverdue": "Okuphezulu kudlule isikhathi", @@ -1435,6 +1437,27 @@ "syncQueued": "Ukuvumelanisa kumisiwe", "syncStatusUnavailable": "Isimo sokuvumelanisa asitholakali" }, + "dashboardMetrics": { + "openFindings": "Ukutholakele okusemthethweni", + "openFindingsDetail": "{{critical}} kubaluleke kakhulu, {{high}} kuphezulu", + "confirmedExploitable": "Kuqinisekisiwe ukuthi kuyasetshenziswa", + "confirmedExploitableDetail": "Ubungozi bephrojekthi buqinisekiswe ngokuhlaziya", + "needsReview": "Kudinga ukubuyekezwa kwakho", + "needsReviewDetail": "Isinqumo somuntu siyadingeka", + "analysisIncomplete": "Ukuhlaziywa akuqediwe", + "analysisIncompleteDetail": "Ubungozi bephrojekthi busengaziwa", + "slaCompliance": "Ukuthobela i-SLA", + "notMeasured": "Akukalwanga", + "withinDeadlineDetail": "{{within}} kwabangu-{{total}} phakathi kwesikhathi", + "noDeadlineData": "Akukho ukutholakele okunesikhathi se-SLA okwamanje", + "deadlinePassed": "Isikhathi sesidluliwe", + "deadlinePassedDetail": "{{critical}} kubaluleke kakhulu, {{high}} kuphezulu", + "dueThisWeek": "Kufanele kwenziwe kuleli sonto", + "dueThisWeekDetail": "{{exploitable}} kuqinisekisiwe ukuthi kuyasetshenziswa", + "noDeadline": "Akukho sikhathi", + "reviewSlaAssignment": "Buyekeza ukwabiwa kwe-SLA", + "allOpenFindingsTracked": "Konke ukutholakele okusemthethweni kuyalandelwa" + }, "dismiss": { "title": "Lahla ukutholakele", "submit": "Lahla ukutholakele", @@ -1500,9 +1523,9 @@ "analysisModeSubtitle": "{{mode}} ukuhlaziywa", "automation": "Ukuzenzekela", "automationAllOff": "Konke kuvaliwe", - "automationCount": "{{count}} kwezingu-3 kuvuliwe", + "automationCount": "{{displayCount}} kwezingu-3 kuvuliwe", "notifications": "Izaziso", - "notificationsCount": "{{count}} kwezingu-2 kuvuliwe", + "notificationsCount": "{{displayCount}} kwezingu-2 kuvuliwe", "slaPolicy": "Inqubomgomo ye-SLA", "disabledNoManage": "I-Security Agent ikhashiwe. Ababanikazi benhlangano nabaphathi bokuphathwa izimali kuphela abangayivula.", "disabledNoRepo": "Khetha okungenani i-repository eyodwa ngaphambi kokuvula i-Security Agent.", @@ -1524,7 +1547,7 @@ "openPullRequest": "Vula i-pull request{{number}}", "openDraftPullRequest": "Vula i-pull request edrafuthiwe{{number}}", "progress": "Inqubekelaphambili", - "attemptHistory": "Umlando wemizamo ({{count}})", + "attemptHistory": "Umlando wemizamo ({{displayCount}})", "attemptNumber": "Umzamo #{{number}}", "startedBy": "Iqalwe ngu", "model": "Imodeli", @@ -1855,9 +1878,9 @@ "toolTask": "umsebenzi", "readTodos": "Funda ama-todo", "updateTodos": "Buyekeza ama-todo", - "linesBadge": "imigqa engu-{{count}}", - "filesBadge": "amafayela angu-{{count}}", - "matchesBadge": "okuqondanayo okungu-{{count}}" + "linesBadge": "imigqa engu-{{displayCount}}", + "filesBadge": "amafayela angu-{{displayCount}}", + "matchesBadge": "okuqondanayo okungu-{{displayCount}}" }, "readToolMarkdown": { "linesTruncated": "imigqa {{start}}–{{end}} (kunganakiwe)", @@ -1941,6 +1964,10 @@ "reportAiResponseFailedTerminal": "Le mpendulo ayikwazi ukubikwa.", "reportAiResponseSubmitted": "Ukubika kuthunyelwe. Irisidi {{receiptId}}" }, + "modelCost": { + "lessThan": "<{{amount}}", + "perMillion": "{{inputLabel}} {{input}} · {{outputLabel}} {{output}} / {{million}} {{tokens}}" + }, "partDetail": { "detailsUnavailable": "Imininingwane ayitholakali", "textDisplay": "Ukuboniswa kombhalo", @@ -1999,7 +2026,7 @@ "preparationComplete": "Ukulungisa kuqediwe", "preparationFailed": "Ukulungisa kwehlulekile", "setupCommand": "Umyalo wokusetha {{index}}", - "setupCommandOf": "Umyalo wokusetha {{index}} kweyingu-{{count}}" + "setupCommandOf": "Umyalo wokusetha {{index}} kweyingu-{{displayCount}}" }, "permissionCard": { "title": "Imvume iyadingeka", @@ -2036,7 +2063,7 @@ "submissionFailed": "Ukuthumela kwehlulekile. Sicela uzame futhi.", "questionAnnouncement": "I-agent idinga ukuthi uphendule. I-composer imisiwe ngenkathi uphendula.", "permissionAnnouncement": "I-agent idinga imvume ukuze iqhubeke. I-composer imisiwe ngenkathi unquma.", - "positionHint": "(1 kwangu-{{count}})", + "positionHint": "(1 kwangu-{{displayCount}})", "movedPastPrompt": "I-agent isidlulile kulesi simo. Le khadi izovaleka lapho iseshini iqhubeka.", "waitingForAnswer": "I-agent ilinde impendulo yakho. Ngenkathi lo mbuzo uvulekile, umlayezo wakho ku-agent umisiwe.", "waitingForPermission": "I-agent ilinde imvume. Ngenkathi lesi sicelo sivulekile, umlayezo wakho ku-agent umisiwe." @@ -2157,7 +2184,7 @@ "cameraAccessDisabled": "Ukufinyelela Kwekhamera Kukhubaziwe", "cameraAccessMessage": "Vumela ukufinyelela kwekhamera ku-Settings ukuze uthathe isithombe.", "couldNotOpenPhotoPicker": "Ayikwazanga ukuvula isikhethi sezithombe. Qala kabusha i-Kilo bese uzama futhi.", - "maxFilesAllowed": "Amafayela amaningi a-{{count}} avunyelwe", + "maxFilesAllowed": "Amafayela amaningi a-{{displayCount}} avunyelwe", "onlyAddingFiles": "Kungenwe kuphela {{accepted}} kwangu-{{total}} amafayela (max {{max}})" }, "composer": { @@ -2222,7 +2249,7 @@ "costPrefix": "izindleko {{cost}}", "costSuffix": ", izindleko {{cost}}", "tokensWindowUnavailable": "Umongo wamathokheni {{used}}, i-window ayitholakali", - "tokensUsage": "Umongo wamathokheni {{used}} kwangu-{{window}}, {{percentage}}% kusetshenzisiwe", + "tokensUsage": "Umongo wamathokheni {{used}} kwangu-{{window}}, {{percentage}} kusetshenzisiwe", "title": "Ukusetshenziswa komongo", "used": "Kusetshenzisiwe", "remaining": "Okusele", @@ -2231,7 +2258,7 @@ "usageReflectsLatest": "Ukusetshenziswa kubonisa impendulo yakamuva ephelele yomsizi.", "tokenUsage": "Ukusetshenziswa kwamathokheni", "cacheRate": "Izinga le-cache", - "modelsCount": "Amamodeli ({{count}})", + "modelsCount": "Amamodeli ({{displayCount}})", "tokenTotalsNote": "Izibalo zamathokheni zihlanganisa lesi seshini kuphela futhi azifaki amathokheni e-subagent/child-session.", "subagents": "Amasubagent", "subagentsDescription": "Izindleko ezisele ezivela kumaseshini abantwana", @@ -2373,7 +2400,7 @@ "connectedCli": "Ku-CLI exhunyiwe", "newSessionOn": "Iseshini entsha ku-{{name}}", "noMatchingSessions": "Azikho izeshini ezihambisanayo.", - "onlyFirstFilesAttached": "Amafayela okuqala angu-{{count}} kuphela azonamathiselwa.", + "onlyFirstFilesAttached": "Amafayela okuqala angu-{{displayCount}} kuphela azonamathiselwa.", "staleMessage": "Lokhu kwabelana akusatholakali.", "retryableMessage": "Asikwazanga ukulayisha amaseshini akho.", "emptyMessage": "Awekho amaseshini okwamanje — qala elisha ukuze uthumele lokhu.", @@ -2406,7 +2433,7 @@ "otherAccountCopy": "I-Kilo Pass kule Apple Account ingeyenye i-akhawunti ye-Kilo. Ngena kuleyo akhawunti ye-Kilo ukuze uyiphathe.", "alreadySubscribed": "Usunokubhalisa kwe-Kilo Pass.", "purchaseUnavailable": "Ukuthenga kwe-Kilo Pass akutholakali njengamanje.", - "tierCredits": "${{amount}} kumakhredithi", + "tierCredits": "{{amount}} kumakhredithi", "perMonth": "{{price}}/inyanga", "verifyPurchaseFailed": "Asikwazanga ukuqinisekisa ukuthenga kwakho. Bheka ukuxhumana kwakho bese uzama futhi.", "productsCouldNotLoad": "Imikhiqizo ye-Kilo Pass ayikwazanga ukulayishwa ku-App Store.", @@ -2417,7 +2444,7 @@ "manageFailed": "Ukwenza ngaphandle ukuphathwa kokubhalisa kwe-App Store kwehlulekile.", "kiloPassSetup": "Ukusethwa kwe-Kilo Pass", "subscriptionHeaderDescription": "Ukubhalisa kwanyanga zonke okwengeza amakhredithi kubhalansi yakho ye-Kilo ukuze usebenzise amaseshini okubhala ikhodi e-AI ku-Kilo App — Ama-Cloud Agents, amaseshini akude, nezingxoxo ze-KiloClaw.", - "tierDescription": "Amakhredithi akhokhelwayo angu-${{price}} engezwa nyanga zonke ngokusetshenziswa kwe-Kilo App.", + "tierDescription": "Amakhredithi akhokhelwayo angu-{{price}} engezwa nyanga zonke ngokusetshenziswa kwe-Kilo App.", "subscribe": "Bhalisa", "subscribeDescription": "Amakhredithi anyanga zonke ngenqubekelaphambili yebhonasi", "manage": "Phatha", @@ -2425,7 +2452,7 @@ "statusPending": "I-Kilo Pass ilindile", "statusCanceling": "I-Kilo Pass iyakhanseleka", "statusPastDue": "I-Kilo Pass idlule isikhathi", - "monthlyCredits": "Amakhredithi anyanga zonke angu-${{credits}}", + "monthlyCredits": "Amakhredithi anyanga zonke angu-{{credits}}", "ends": "Iphela {{date}}", "periodEnd": "ukuphela kwesikhathi", "managedOnGooglePlay": "Kuphathwa ku-Google Play", diff --git a/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts b/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts index ad2853a3bb..166ee20789 100644 --- a/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts +++ b/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts @@ -6,6 +6,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { toast } from 'sonner-native'; import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; import { announceForA11y } from '@/lib/a11y/announce'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { createFrameCoalescer } from '@/lib/coalesce-frame'; @@ -309,6 +310,7 @@ export function useAgentAttachmentUpload( toast.error( i18n.t('agentChat.attachmentPicker.maxFilesAllowed', { count: AGENT_ATTACHMENT_MAX_FILES, + displayCount: formatNumber(AGENT_ATTACHMENT_MAX_FILES, i18n.language), }) ); return; @@ -317,9 +319,9 @@ export function useAgentAttachmentUpload( if (limit.truncated) { toast.warning( i18n.t('agentChat.attachmentPicker.onlyAddingFiles', { - accepted: limit.acceptedCount, - total: candidates.length, - max: AGENT_ATTACHMENT_MAX_FILES, + accepted: formatNumber(limit.acceptedCount, i18n.language), + total: formatNumber(candidates.length, i18n.language), + max: formatNumber(AGENT_ATTACHMENT_MAX_FILES, i18n.language), }) ); } diff --git a/apps/mobile/src/lib/format.test.ts b/apps/mobile/src/lib/format.test.ts index 0a17d454d9..89bdb11515 100644 --- a/apps/mobile/src/lib/format.test.ts +++ b/apps/mobile/src/lib/format.test.ts @@ -1,6 +1,12 @@ import { describe, expect, it } from 'vitest'; -import { firstGrapheme, formatList, formatMoney, parseLocalizedNumber } from './format'; +import { + firstGrapheme, + formatFileSize, + formatList, + formatMoney, + parseLocalizedNumber, +} from './format'; describe('formatMoney', () => { it('uses the passed locale for currency formatting', () => { @@ -9,6 +15,8 @@ describe('formatMoney', () => { expect(en).toBe('$1,234.50'); expect(de).toContain('1.234,50'); + expect(de).toMatch(/1\.234,50\s\$$/); + expect(formatMoney(1234.5, 'ar')).not.toContain('US$'); expect(de).not.toBe(en); }); }); @@ -16,11 +24,13 @@ describe('formatMoney', () => { describe('localized format helpers', () => { it('formats a list and preserves one grapheme', () => { expect(formatList(['A', 'B'], 'de')).toBe('A und B'); + expect(formatFileSize(1024, 'de')).toContain('1 kB'); expect(firstGrapheme('👨‍👩‍👧‍👦 family', 'en')).toBe('👨‍👩‍👧‍👦'); }); it('parses localized numbers and rejects other input', () => { expect(parseLocalizedNumber('1.234,5', 'de-DE')).toBe(1234.5); + expect(parseLocalizedNumber('1 234,5', 'ru')).toBe(1234.5); expect(parseLocalizedNumber('twelve', 'en')).toBeNull(); }); }); diff --git a/apps/mobile/src/lib/format.ts b/apps/mobile/src/lib/format.ts index 0cd93ef52f..f41f1d8673 100644 --- a/apps/mobile/src/lib/format.ts +++ b/apps/mobile/src/lib/format.ts @@ -12,13 +12,26 @@ import { * app language drives the output. FormatJS fills the constructors Hermes omits. */ -export function formatMoney(amount: number, locale: string): string { +export function formatUsd( + amount: number, + locale: string, + options: Intl.NumberFormatOptions = {} +): string { return numberFormat(locale, { + ...options, style: 'currency', currency: 'USD', + }) + .formatToParts(amount) + .map(part => (part.type === 'currency' ? '$' : part.value)) + .join(''); +} + +export function formatMoney(amount: number, locale: string): string { + return formatUsd(amount, locale, { minimumFractionDigits: 2, maximumFractionDigits: 2, - }).format(amount); + }); } /** @@ -27,21 +40,23 @@ export function formatMoney(amount: number, locale: string): string { * always pins two. */ export function formatCurrency(amount: number, locale: string, fractionDigits: number): string { - return numberFormat(locale, { - style: 'currency', - currency: 'USD', + return formatUsd(amount, locale, { minimumFractionDigits: fractionDigits, maximumFractionDigits: fractionDigits, - }).format(amount); + }); } /** Amounts below this render as a zero currency value at four fraction digits (50 µ$). */ export const CURRENCY_ZERO_THRESHOLD = 50 / 1_000_000; export function formatMoneyFromCents(amount: number, locale: string, currency = 'USD'): string { + const normalizedCurrency = currency.toUpperCase(); + if (normalizedCurrency === 'USD') { + return formatUsd(amount / 100, locale); + } return numberFormat(locale, { style: 'currency', - currency: currency.toUpperCase(), + currency: normalizedCurrency, }).format(amount / 100); } @@ -77,14 +92,19 @@ export function formatDuration(seconds: number, locale: string): string { } export function formatFileSize(bytes: number, locale: string): string { - const units = ['B', 'KB', 'MB', 'GB'] as const; + const units = ['byte', 'kilobyte', 'megabyte', 'gigabyte'] as const; let value = bytes; let unit = 0; while (value >= 1024 && unit < units.length - 1) { value /= 1024; unit += 1; } - return `${formatNumber(value, locale, { maximumFractionDigits: unit === 0 ? 0 : 2 })} ${units[unit]}`; + return formatNumber(value, locale, { + style: 'unit', + unit: units[unit], + unitDisplay: 'short', + maximumFractionDigits: unit === 0 ? 0 : 2, + }); } export function firstGrapheme(value: string, locale: string): string { @@ -111,6 +131,9 @@ export function parseLocalizedNumber(value: string, locale: string): number | nu for (const [local, ascii] of digits) { normalized = normalized.split(local).join(ascii); } + if (/^[\s\u00A0\u202F]+$/u.test(group)) { + normalized = normalized.replaceAll(/[ \u00A0\u202F]/gu, group); + } normalized = normalized.split(group).join('').split(decimal).join('.').split(minus).join('-'); if (!/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/.test(normalized)) { return null; diff --git a/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts b/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts index b4aa236110..b5c98d2b2a 100644 --- a/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts +++ b/apps/mobile/src/lib/hooks/use-kiloclaw-billing.ts @@ -1,6 +1,7 @@ +import { i18n } from '@/i18n'; import { formatDate } from '@/lib/format'; import { getResolvedLanguage } from '@/lib/hooks/use-language-preference'; -import { relativeTimeFormat } from '@/lib/intl-cache'; +import { numberFormat } from '@/lib/intl-cache'; import { parseTimestamp } from '@/lib/utils'; import { type useKiloClawBillingStatus } from './use-kiloclaw-queries'; @@ -87,8 +88,12 @@ export function formatBillingDate(iso: string): string { } export function formatRemainingDays(daysRemaining: number): string { - return relativeTimeFormat(getResolvedLanguage(), { numeric: 'auto' }).format( - Math.max(0, daysRemaining), - 'day' - ); + if (daysRemaining <= 0) { + return i18n.t('kiloclaw.billing.lessThanOneDay'); + } + return numberFormat(getResolvedLanguage(), { + style: 'unit', + unit: 'day', + unitDisplay: 'long', + }).format(daysRemaining); } diff --git a/apps/mobile/src/lib/intl-cache.test.ts b/apps/mobile/src/lib/intl-cache.test.ts index d201fe5dda..61abfefe3c 100644 --- a/apps/mobile/src/lib/intl-cache.test.ts +++ b/apps/mobile/src/lib/intl-cache.test.ts @@ -44,7 +44,6 @@ describe('intl-cache', () => { Collator: nativeIntl.Collator, DateTimeFormat: nativeIntl.DateTimeFormat, getCanonicalLocales: nativeIntl.getCanonicalLocales, - Locale: nativeIntl.Locale, NumberFormat: nativeIntl.NumberFormat, PluralRules: nativeIntl.PluralRules, }); @@ -56,5 +55,6 @@ describe('intl-cache', () => { expect(listFormat('de', { type: 'conjunction' }).format(['A', 'B'])).toBe('A und B'); expect(durationFormat('en', { style: 'short' }).format({ hours: 1 })).toContain('1'); expect([...segmenter('en', { granularity: 'grapheme' }).segment('👨‍👩‍👧‍👦X')]).toHaveLength(2); + expect(Intl.Locale).toBeTypeOf('function'); }); }); diff --git a/apps/mobile/src/lib/intl-cache.ts b/apps/mobile/src/lib/intl-cache.ts index 1ec311283f..464086af88 100644 --- a/apps/mobile/src/lib/intl-cache.ts +++ b/apps/mobile/src/lib/intl-cache.ts @@ -1,5 +1,6 @@ import { shouldPolyfill as shouldPolyfillDurationFormat } from '@formatjs/intl-durationformat/should-polyfill.js'; import { shouldPolyfill as shouldPolyfillListFormat } from '@formatjs/intl-listformat/should-polyfill.js'; +import { shouldPolyfill as shouldPolyfillLocale } from '@formatjs/intl-locale/should-polyfill.js'; import { shouldPolyfill as shouldPolyfillNumberFormat } from '@formatjs/intl-numberformat/should-polyfill.js'; import { shouldPolyfill as shouldPolyfillRelativeTimeFormat } from '@formatjs/intl-relativetimeformat/should-polyfill.js'; import { shouldPolyfill as shouldPolyfillSegmenter } from '@formatjs/intl-segmenter/should-polyfill.js'; @@ -29,6 +30,7 @@ let usesListFormatPolyfill = false; let usesRelativeTimePolyfill = false; let usesDurationFormatPolyfill = false; let usesSegmenterPolyfill = false; +let usesLocalePolyfill = false; function localeOrEnglish(locale: string): string { return locale || 'en'; @@ -42,6 +44,13 @@ function localeDataLanguage(locale: string): SupportedLanguage { return isSupportedLanguage(base) ? base : 'en'; } +function ensureLocale(): void { + if (!usesLocalePolyfill && shouldPolyfillLocale()) { + require('@formatjs/intl-locale/polyfill-force.js'); + usesLocalePolyfill = true; + } +} + function ensureNumberFormat(locale: string): void { const language = localeDataLanguage(locale); if (!usesNumberFormatPolyfill && shouldPolyfillNumberFormat(locale)) { @@ -49,6 +58,7 @@ function ensureNumberFormat(locale: string): void { usesNumberFormatPolyfill = true; } if (usesNumberFormatPolyfill) { + ensureLocale(); loadNumberFormatLocaleData(language); } } @@ -60,12 +70,13 @@ function ensureListFormat(locale: string): void { usesListFormatPolyfill = true; } if (usesListFormatPolyfill) { + ensureLocale(); loadListFormatLocaleData(language); } } function ensureRelativeTimeFormat(locale: string): void { - const language = isSupportedLanguage(locale) ? locale : 'en'; + const language = localeDataLanguage(locale); if (!usesRelativeTimePolyfill && shouldPolyfillRelativeTimeFormat(language)) { require('@formatjs/intl-relativetimeformat/polyfill-force.js'); usesRelativeTimePolyfill = true; @@ -73,6 +84,7 @@ function ensureRelativeTimeFormat(locale: string): void { if (!usesRelativeTimePolyfill) { return; } + ensureLocale(); RELATIVE_TIME_LOCALE_LOADERS[language](); } diff --git a/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts b/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts index 0289e45665..9c8e3b0c73 100644 --- a/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts +++ b/apps/mobile/src/lib/kilo-pass/subscription-card-state.ts @@ -4,7 +4,7 @@ import { type PurchaseStatusClass, } from '@kilocode/app-shared/commerce'; import { i18n } from '@/i18n'; -import { formatDate, formatNumber } from '@/lib/format'; +import { formatDate, formatUsd } from '@/lib/format'; import { getResolvedLanguage } from '@/lib/hooks/use-language-preference'; import { parseTimestamp } from '@/lib/utils'; @@ -216,7 +216,8 @@ function getActiveSubscriptionCardState( statusClass: PurchaseStatusClass ): KiloPassSubscriptionCardState { const credits = i18n.t('kiloPass.monthlyCredits', { - credits: formatNumber(subscription.currentPeriodBaseCreditsUsd, i18n.language, { + credits: formatUsd(subscription.currentPeriodBaseCreditsUsd, i18n.language, { + minimumFractionDigits: 0, maximumFractionDigits: 0, }), }); diff --git a/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts b/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts index 8f030a54d0..f61fb22441 100644 --- a/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts +++ b/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts @@ -1,9 +1,15 @@ import { i18n } from '@/i18n'; +import { formatUsd } from '@/lib/format'; export const KILO_PASS_SUBSCRIPTION_HEADER_DESCRIPTION = i18n.t( 'kiloPass.subscriptionHeaderDescription' ); export function formatKiloPassTierDescription(webMonthlyPriceUsd: number): string { - return i18n.t('kiloPass.tierDescription', { price: webMonthlyPriceUsd }); + return i18n.t('kiloPass.tierDescription', { + price: formatUsd(webMonthlyPriceUsd, i18n.language, { + minimumFractionDigits: 0, + maximumFractionDigits: 2, + }), + }); } diff --git a/apps/mobile/src/lib/model-cost.ts b/apps/mobile/src/lib/model-cost.ts index 5d9505f83b..7e0aa8bbfc 100644 --- a/apps/mobile/src/lib/model-cost.ts +++ b/apps/mobile/src/lib/model-cost.ts @@ -1,5 +1,5 @@ import { i18n } from '@/i18n'; -import { formatNumber } from '@/lib/format'; +import { formatNumber, formatUsd } from '@/lib/format'; export type ModelPricing = { prompt?: string; completion?: string }; @@ -14,15 +14,12 @@ function formatSide(pricePerTokenStr: string | undefined): string | null { } if (pricePer1M < 0.01) { - return `<${formatNumber(0.01, i18n.language, { - style: 'currency', - currency: 'USD', - })}`; + return i18n.t('agentChat.modelCost.lessThan', { + amount: formatUsd(0.01, i18n.language), + }); } - return formatNumber(pricePer1M, i18n.language, { - style: 'currency', - currency: 'USD', + return formatUsd(pricePer1M, i18n.language, { minimumFractionDigits: 0, maximumFractionDigits: 2, }); @@ -41,9 +38,14 @@ export function formatModelCostPer1M(pricing: ModelPricing | undefined): string } const million = formatNumber(1_000_000, i18n.language, { notation: 'compact' }); - return `${i18n.t('agentChat.messageDetails.input')} ${input} · ${i18n.t( - 'agentChat.messageDetails.output' - )} ${output} / ${million} ${i18n.t('agentChat.contextUsage.tokens')}`; + return i18n.t('agentChat.modelCost.perMillion', { + input, + inputLabel: i18n.t('agentChat.messageDetails.input'), + million, + output, + outputLabel: i18n.t('agentChat.messageDetails.output'), + tokens: i18n.t('agentChat.contextUsage.tokens'), + }); } /** Row-level cost decision: free/BYOK badges suppress cost; otherwise format. */ diff --git a/apps/mobile/src/lib/model-picker-rows.ts b/apps/mobile/src/lib/model-picker-rows.ts index 1c6b9b8b6a..535614a8f6 100644 --- a/apps/mobile/src/lib/model-picker-rows.ts +++ b/apps/mobile/src/lib/model-picker-rows.ts @@ -1,5 +1,4 @@ import { type SessionModelOption } from '@/lib/hooks/use-session-model-options'; -import { i18n } from '@/i18n'; export type ModelPickerRow = | { key: string; title: string; type: 'header' } @@ -129,7 +128,7 @@ function groupForModel(model: SessionModelOption): Pick ({ })); describe('KiloClaw billing trial display', () => { - it('formats active sub-day trials without saying zero days left', () => { - expect(formatRemainingDays(0)).toBe('today'); - expect(formatRemainingDays(1)).toBe('tomorrow'); - expect(formatRemainingDays(2)).toBe('in 2 days'); + it('formats remaining time as a localized duration', () => { + expect(formatRemainingDays(0)).toBe('Less than 1 day'); + expect(formatRemainingDays(1)).toBe('1 day'); + expect(formatRemainingDays(2)).toBe('2 days'); }); it('treats active zero-day trials as ending soon rather than expired today', () => { diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts index 09c536aa44..52a9c0f069 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts @@ -172,4 +172,14 @@ describe('resolveVoiceInputStartLanguageTag', () => { expect(await resolveVoiceInputStartLanguageTag('fr')).toBe('fr-FR'); }); + + it('uses the matching device region for the selected app language', async () => { + localizationMock.getLocales.mockReturnValue([{ languageTag: 'en-GB' }]); + getSupportedLocalesMock.mockResolvedValue({ + locales: ['en-US', 'en-GB'], + installedLocales: [], + }); + + expect(await resolveVoiceInputStartLanguageTag('en')).toBe('en-GB'); + }); }); diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.ts b/apps/mobile/src/lib/voice-input/voice-input-language.ts index 50b8ef2dec..5a9239d970 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.ts @@ -122,8 +122,8 @@ export async function resolveVoiceInputStartLanguageTag(appLanguage: string): Pr .filter((t): t is string => typeof t === 'string' && t.length > 0); const language = normalizeLocale(appLanguage).split('-')[0]; const preferredTags = [ - appLanguage, ...deviceTags.filter(tag => normalizeLocale(tag).split('-')[0] === language), + appLanguage, ]; const supported = await fetchSupportedLanguageTags(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9ad25ce0d..6dad0dfa28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -331,6 +331,9 @@ importers: '@formatjs/intl-listformat': specifier: ^8.3.13 version: 8.3.13 + '@formatjs/intl-locale': + specifier: ^5.3.10 + version: 5.3.10 '@formatjs/intl-numberformat': specifier: ^9.4.0 version: 9.4.0 @@ -5214,9 +5217,15 @@ packages: '@formatjs/intl-durationformat@0.10.18': resolution: {integrity: sha512-Wyn7TYW1c5EORLuh6IeAyEpaJf6GmvHPN7TXjJj3VT0bl9U2/zv/A518R+5lYtCmXLmmxX7DYz4iKSKzoKkR7g==} + '@formatjs/intl-getcanonicallocales@3.2.11': + resolution: {integrity: sha512-3FX+dgs+n7IZ6LGewqKV+JhAN7PeknS17j2QH0Qq4yQ64QJCmd8ST5FIRRvVgM93T6L2sARpcSH1gNiVMgVy6w==} + '@formatjs/intl-listformat@8.3.13': resolution: {integrity: sha512-BTyqgBrZJdNM0CKIpsRXyuaSWAQ5Y+wP94cQTadTtT4XogvNh9YjnqLqgez6vQS4dTFgqOz5y/gP9rms4C1k1w==} + '@formatjs/intl-locale@5.3.10': + resolution: {integrity: sha512-JAlo479jZagR6Ze7EI4HGcV8Fi0PYVvEYmsis7c5i7I9Wa5d1Cbo+ThvDikhkQi6Gt86fpGriDOiOQP8CT2WZA==} + '@formatjs/intl-localematcher@0.8.13': resolution: {integrity: sha512-kHEAFOkeJSPNi7c5PaKaRjxcBrJwzzt81ifUu+8uve1EDW/VJl83KsxmqgqNZLzcFEhSliZGvx3+pk/RH0IOmg==} @@ -5229,6 +5238,9 @@ packages: '@formatjs/intl-segmenter@12.2.13': resolution: {integrity: sha512-jhxNn6FnvlIOYzn+VG4xRjcLRrLHlDGoRd723YuwdsNHZRvvcC4qvnh5xC5udSv0CiwbBKnPY3OzDNni2NxqIw==} + '@formatjs/intl-supportedvaluesof@2.3.9': + resolution: {integrity: sha512-RquyMkDVrJ5c0fYJSehVfzp7fWELH7vWY4nIvCoEchkDA32Mdm06ms6QvWdW+slECykCmoG4p8SLhwOKj2nCcg==} + '@fregante/relaxed-json@2.0.0': resolution: {integrity: sha512-PyUXQWB42s4jBli435TDiYuVsadwRHnMc27YaLouINktvTWsL3FcKrRMGawTayFk46X+n5bE23RjUTWQwrukWw==} engines: {node: '>= 0.10.0'} @@ -21856,10 +21868,17 @@ snapshots: '@formatjs/bigdecimal': 0.2.7 '@formatjs/intl-localematcher': 0.8.13 + '@formatjs/intl-getcanonicallocales@3.2.11': {} + '@formatjs/intl-listformat@8.3.13': dependencies: '@formatjs/intl-localematcher': 0.8.13 + '@formatjs/intl-locale@5.3.10': + dependencies: + '@formatjs/intl-getcanonicallocales': 3.2.11 + '@formatjs/intl-supportedvaluesof': 2.3.9 + '@formatjs/intl-localematcher@0.8.13': dependencies: '@formatjs/fast-memoize': 3.1.7 @@ -21877,6 +21896,10 @@ snapshots: dependencies: '@formatjs/intl-localematcher': 0.8.13 + '@formatjs/intl-supportedvaluesof@2.3.9': + dependencies: + '@formatjs/fast-memoize': 3.1.7 + '@fregante/relaxed-json@2.0.0': {} '@google/genai@2.10.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(bufferutil@4.1.0)(utf-8-validate@6.0.6)': diff --git a/tools/i18n/check-catalogs.mjs b/tools/i18n/check-catalogs.mjs index 204cdc5d01..f32a65ce82 100644 --- a/tools/i18n/check-catalogs.mjs +++ b/tools/i18n/check-catalogs.mjs @@ -210,10 +210,21 @@ function scanSource() { return { called, referenced }; } +const PLURAL_SUFFIX_RE = /_(zero|one|two|few|many|other)$/; + function pluralBaseKey(key) { return key.replace(/_(?:zero|one|two|few|many|other)$/, ''); } +/** Split a dotted key into its family base and plural category, if any. */ +function pluralParts(key) { + const match = PLURAL_SUFFIX_RE.exec(key); + if (!match) { + return null; + } + return { base: key.slice(0, -match[0].length), category: match[1] }; +} + const tags = supportedLanguages(); for (const catalog of CATALOGS) { @@ -233,6 +244,12 @@ for (const catalog of CATALOGS) { } const english = flatten(parseCatalog(join(catalog.dir, 'en.json'), `${catalog.name}/en`)); + const englishFamilies = new Set( + [...english.keys()] + .map(pluralParts) + .filter(Boolean) + .map(parts => parts.base) + ); const englishValues = new Set(english.values()); for (const [key, value] of english) { if (value.trim() === '') { @@ -266,10 +283,41 @@ for (const catalog of CATALOGS) { } } for (const key of translated.keys()) { - if (!english.has(key)) { + if (english.has(key)) { + continue; + } + const parts = pluralParts(key); + if (!(parts && englishFamilies.has(parts.base))) { fail(`${label}: extra key "${key}" is not in en.json`); } } + const requiredCategories = new Intl.PluralRules(tag).resolvedOptions().pluralCategories; + for (const family of englishFamilies) { + for (const category of requiredCategories) { + if (!translated.has(`${family}_${category}`)) { + fail(`${label}: plural family "${family}" lacks the ${category} category of ${tag}`); + } + } + } + for (const [key, value] of translated) { + if (english.has(key)) { + continue; + } + const parts = pluralParts(key); + if (!(parts && englishFamilies.has(parts.base))) { + continue; + } + const englishRef = + english.get(`${parts.base}_${parts.category}`) ?? + english.get(`${parts.base}_other`) ?? + english.get(parts.base); + const allowed = new Set(placeholders(englishRef).split(',').filter(Boolean)); + for (const ph of placeholders(value).split(',').filter(Boolean)) { + if (!allowed.has(ph)) { + fail(`${label}: "${key}" uses placeholder {{${ph}}}, which the English family does not`); + } + } + } for (const [key, value] of translated) { if (!english.has(key)) { continue; From b07a6e8870e3c71a3cfc80e94efaada4e94cc196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 16:43:52 +0200 Subject: [PATCH 04/14] fix(mobile): close remaining i18n gaps --- apps/mobile/src/app/_layout.tsx | 3 + .../components/kiloclaw/changelog-list.tsx | 4 +- .../src/components/kiloclaw/status-card.tsx | 5 +- .../dashboard-screen.mounted.test.tsx | 73 ++++++++++++++++++- .../security-agent/dashboard-screen.tsx | 5 +- apps/mobile/src/i18n/apply-language.ts | 3 + apps/mobile/src/i18n/locales/af.json | 5 ++ apps/mobile/src/i18n/locales/am.json | 5 ++ apps/mobile/src/i18n/locales/ar.json | 5 ++ apps/mobile/src/i18n/locales/az.json | 5 ++ apps/mobile/src/i18n/locales/be.json | 5 ++ apps/mobile/src/i18n/locales/bg.json | 5 ++ apps/mobile/src/i18n/locales/bn.json | 5 ++ apps/mobile/src/i18n/locales/bs.json | 5 ++ apps/mobile/src/i18n/locales/ca.json | 5 ++ apps/mobile/src/i18n/locales/ckb.json | 5 ++ apps/mobile/src/i18n/locales/cs.json | 5 ++ apps/mobile/src/i18n/locales/cy.json | 11 ++- apps/mobile/src/i18n/locales/da.json | 11 ++- apps/mobile/src/i18n/locales/de.json | 11 ++- apps/mobile/src/i18n/locales/el.json | 11 ++- apps/mobile/src/i18n/locales/en.json | 11 ++- apps/mobile/src/i18n/locales/es.json | 11 ++- apps/mobile/src/i18n/locales/et.json | 11 ++- apps/mobile/src/i18n/locales/eu.json | 11 ++- apps/mobile/src/i18n/locales/fa.json | 11 ++- apps/mobile/src/i18n/locales/fi.json | 11 ++- apps/mobile/src/i18n/locales/fil.json | 11 ++- apps/mobile/src/i18n/locales/fr.json | 11 ++- apps/mobile/src/i18n/locales/ga.json | 11 ++- apps/mobile/src/i18n/locales/gl.json | 11 ++- apps/mobile/src/i18n/locales/gu.json | 11 ++- apps/mobile/src/i18n/locales/ha.json | 11 ++- apps/mobile/src/i18n/locales/he.json | 11 ++- apps/mobile/src/i18n/locales/hi.json | 11 ++- apps/mobile/src/i18n/locales/hr.json | 11 ++- apps/mobile/src/i18n/locales/ht.json | 11 ++- apps/mobile/src/i18n/locales/hu.json | 11 ++- apps/mobile/src/i18n/locales/hy.json | 11 ++- apps/mobile/src/i18n/locales/id.json | 11 ++- apps/mobile/src/i18n/locales/ig.json | 11 ++- apps/mobile/src/i18n/locales/is.json | 11 ++- apps/mobile/src/i18n/locales/it.json | 11 ++- apps/mobile/src/i18n/locales/ja.json | 11 ++- apps/mobile/src/i18n/locales/ka.json | 11 ++- apps/mobile/src/i18n/locales/kk.json | 11 ++- apps/mobile/src/i18n/locales/km.json | 11 ++- apps/mobile/src/i18n/locales/kn.json | 11 ++- apps/mobile/src/i18n/locales/ko.json | 11 ++- apps/mobile/src/i18n/locales/lo.json | 11 ++- apps/mobile/src/i18n/locales/lt.json | 11 ++- apps/mobile/src/i18n/locales/lv.json | 9 ++- apps/mobile/src/i18n/locales/mg.json | 9 ++- apps/mobile/src/i18n/locales/mi.json | 9 ++- apps/mobile/src/i18n/locales/mk.json | 9 ++- apps/mobile/src/i18n/locales/ml.json | 9 ++- apps/mobile/src/i18n/locales/mn.json | 9 ++- apps/mobile/src/i18n/locales/mr.json | 9 ++- apps/mobile/src/i18n/locales/ms.json | 9 ++- apps/mobile/src/i18n/locales/mt.json | 9 ++- apps/mobile/src/i18n/locales/my.json | 9 ++- apps/mobile/src/i18n/locales/nb.json | 11 ++- apps/mobile/src/i18n/locales/ne.json | 11 ++- apps/mobile/src/i18n/locales/nl.json | 11 ++- apps/mobile/src/i18n/locales/om.json | 11 ++- apps/mobile/src/i18n/locales/or.json | 11 ++- apps/mobile/src/i18n/locales/pa.json | 11 ++- apps/mobile/src/i18n/locales/pl.json | 11 ++- apps/mobile/src/i18n/locales/ps.json | 11 ++- apps/mobile/src/i18n/locales/pt-BR.json | 11 ++- apps/mobile/src/i18n/locales/pt.json | 11 ++- apps/mobile/src/i18n/locales/ro.json | 11 ++- apps/mobile/src/i18n/locales/ru.json | 11 ++- apps/mobile/src/i18n/locales/si.json | 11 ++- apps/mobile/src/i18n/locales/sk.json | 11 ++- apps/mobile/src/i18n/locales/sl.json | 11 ++- apps/mobile/src/i18n/locales/so.json | 11 ++- apps/mobile/src/i18n/locales/sq.json | 11 ++- apps/mobile/src/i18n/locales/sr.json | 11 ++- apps/mobile/src/i18n/locales/sv.json | 11 ++- apps/mobile/src/i18n/locales/sw.json | 11 ++- apps/mobile/src/i18n/locales/ta.json | 11 ++- apps/mobile/src/i18n/locales/te.json | 11 ++- apps/mobile/src/i18n/locales/th.json | 11 ++- apps/mobile/src/i18n/locales/tr.json | 9 ++- apps/mobile/src/i18n/locales/uk.json | 9 ++- apps/mobile/src/i18n/locales/ur.json | 9 ++- apps/mobile/src/i18n/locales/uz.json | 9 ++- apps/mobile/src/i18n/locales/vi.json | 9 ++- apps/mobile/src/i18n/locales/yo.json | 9 ++- apps/mobile/src/i18n/locales/zh-Hans.json | 9 ++- apps/mobile/src/i18n/locales/zh-Hant.json | 9 ++- apps/mobile/src/i18n/locales/zu.json | 9 ++- apps/mobile/src/lib/agent-session-groups.ts | 11 ++- apps/mobile/src/lib/device-sessions.ts | 9 +-- apps/mobile/src/lib/format.test.ts | 10 +++ apps/mobile/src/lib/format.ts | 4 + apps/mobile/src/lib/formatjs-locale-data.ts | 4 +- .../intl-cache-hermes-numberformat.test.ts | 25 +++++++ apps/mobile/src/lib/intl-cache.ts | 18 ++++- apps/mobile/src/lib/model-picker-rows.test.ts | 16 ++-- apps/mobile/src/lib/model-picker-rows.ts | 11 ++- .../pr-review/diff/pr-review-truncation.ts | 5 +- apps/mobile/src/lib/relative-time-locales.ts | 2 +- .../src/lib/use-session-model-options.test.ts | 2 +- .../voice-input/voice-input-language.test.ts | 16 ++++ .../lib/voice-input/voice-input-language.ts | 38 +++++++--- 107 files changed, 861 insertions(+), 256 deletions(-) create mode 100644 apps/mobile/src/lib/intl-cache-hermes-numberformat.test.ts diff --git a/apps/mobile/src/app/_layout.tsx b/apps/mobile/src/app/_layout.tsx index e85fdadda5..fc7247844e 100644 --- a/apps/mobile/src/app/_layout.tsx +++ b/apps/mobile/src/app/_layout.tsx @@ -69,6 +69,7 @@ import { useLanguagePreference, } from '@/lib/hooks/use-language-preference'; import { useTrackingPermissionPrompt } from '@/lib/hooks/use-tracking-permission-prompt'; +import { prewarmIntl } from '@/lib/intl-cache'; import { captureLaunchDeepLink, getPendingDeepLink, @@ -369,8 +370,10 @@ function RootLayoutNav() { } try { await i18n.changeLanguage(resolved); + prewarmIntl(resolved); } catch { await i18n.changeLanguage('en'); + prewarmIntl('en'); } void renameAndroidNotificationChannels(); if (!cancelled) { diff --git a/apps/mobile/src/components/kiloclaw/changelog-list.tsx b/apps/mobile/src/components/kiloclaw/changelog-list.tsx index ca02c89ee6..2046d23b1e 100644 --- a/apps/mobile/src/components/kiloclaw/changelog-list.tsx +++ b/apps/mobile/src/components/kiloclaw/changelog-list.tsx @@ -4,7 +4,9 @@ import { useTranslation } from 'react-i18next'; import { Button } from '@/components/ui/button'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; import { captureEvent, INSTANCE_ACTION_EVENT } from '@/lib/analytics/posthog'; +import { formatCalendarDate } from '@/lib/format'; import { type useKiloClawChangelog } from '@/lib/hooks/use-kiloclaw-queries'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { cn } from '@/lib/utils'; @@ -56,7 +58,7 @@ export function ChangelogList({ - {entry.date} + {formatCalendarDate(entry.date, i18n.language)} {deployHint && ( diff --git a/apps/mobile/src/components/kiloclaw/status-card.tsx b/apps/mobile/src/components/kiloclaw/status-card.tsx index 0868e94140..bd48116216 100644 --- a/apps/mobile/src/components/kiloclaw/status-card.tsx +++ b/apps/mobile/src/components/kiloclaw/status-card.tsx @@ -13,6 +13,7 @@ import { useTranslation } from 'react-i18next'; import { KvRow } from '@/components/ui/kv-row'; import { Text } from '@/components/ui/text'; +import { statusLabel } from '@/components/kiloclaw/status-badge'; import { i18n } from '@/i18n'; import { formatDuration, formatNumber } from '@/lib/format'; import { type GatewayState } from '@/lib/hooks/use-kiloclaw-queries'; @@ -57,7 +58,7 @@ export function StatusCard({ : '—'; const cpuLabel = cpus ? `${formatNumber(cpus, i18n.language)} vCPU` : '—'; const lastExitLabel = formatLastExit(lastExitCode, lastExitSignal); - const gatewayLabel = gatewayState ?? '—'; + const gatewayLabel = gatewayState ? statusLabel(gatewayState) : '—'; const uptimeLabel = uptime == null ? '—' : formatDuration(uptime, i18n.language); const restartsLabel = restarts == null ? '—' : formatNumber(restarts, i18n.language); const modelLabel = activeModel ?? '—'; @@ -72,7 +73,7 @@ export function StatusCard({ icon={Activity} label={t('kiloclaw.status.state')} value={gatewayLabel} - valueTone={gatewayLabel === 'running' ? 'good' : 'default'} + valueTone={gatewayState === 'running' ? 'good' : 'default'} /> diff --git a/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx b/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx index 9b750ee14c..c4eaa86863 100644 --- a/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx +++ b/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx @@ -14,8 +14,8 @@ import { createElement } from 'react'; import TestRenderer, { act } from 'react-test-renderer'; import { beforeEach, describe, expect, it, vi } from 'vitest'; -import '@/i18n'; -import { DashboardScreen } from './dashboard-screen'; +import { i18n } from '@/i18n'; +import { buildLocalizedMetrics, DashboardScreen } from './dashboard-screen'; const PERSISTENCE_FAILED_MESSAGE = vi.hoisted( () => 'We could not record this action. Please try again later.' @@ -77,6 +77,9 @@ const outbox = vi.hoisted(() => ({ remove: vi.fn(), refresh: vi.fn(), })); +const sharedMetrics = vi.hoisted(() => ({ + build: vi.fn(), +})); // Captures the useFocusEffect callback so a test can simulate a focus event. const focusEffect = vi.hoisted(() => ({ @@ -161,7 +164,13 @@ vi.mock('@/lib/hooks/use-security-agent-mutations', () => ({ }, })); vi.mock('@kilocode/app-shared/security-agent', () => ({ - buildSecurityDashboardMetrics: () => [], + buildSecurityDashboardMetrics: sharedMetrics.build, + getAnalysisIncompleteCount: (analysis: { + triageComplete: number; + analyzing: number; + notAnalyzed: number; + failed: number; + }) => analysis.triageComplete + analysis.analyzing + analysis.notAnalyzed + analysis.failed, getSecurityRepositoriesInScope: () => [], })); vi.mock('@/lib/security-agent', () => ({ @@ -235,6 +244,10 @@ function renderedTexts(root: I): string[] { .map(n => n.props.children as string); } +function dashboardMetric(id: string) { + return { id, label: '', value: '', detail: '', tone: 'neutral' as const }; +} + describe('DashboardScreen sync control terminal states', () => { beforeEach(() => { triggerSync.mutate.mockClear(); @@ -259,6 +272,7 @@ describe('DashboardScreen sync control terminal states', () => { outbox.refresh.mockClear(); retryCards.cards = []; focusEffect.effect = undefined; + sharedMetrics.build.mockReturnValue([]); }); it('keeps both sync controls enabled in the happy state', () => { @@ -319,6 +333,59 @@ describe('DashboardScreen sync control terminal states', () => { }); }); +describe('buildLocalizedMetrics', () => { + it('localizes every metric branch and its structured values', async () => { + await i18n.changeLanguage('de'); + const data: Parameters[0] = { + analysis: { + total: 1234, + exploitable: 2, + needsReview: 3, + triageComplete: 1, + analyzing: 1, + notAnalyzed: 1, + failed: 1, + }, + severity: { critical: 2, high: 3 }, + sla: { + overall: { total: 10, withinSla: 7, overdue: 3 }, + bySeverity: { critical: { overdue: 1 }, high: { overdue: 2 } }, + dueSoon: { total: 4, exploitable: 2 }, + untrackedCount: 5, + }, + }; + + sharedMetrics.build.mockReturnValueOnce( + ['openFindings', 'exploitable', 'needsReview', 'analysisIncomplete'].map(id => + dashboardMetric(id) + ) + ); + const analysisMetrics = buildLocalizedMetrics(data, false); + sharedMetrics.build.mockReturnValueOnce( + ['slaCompliance', 'deadlinePassed', 'dueSoon', 'noDeadline'].map(id => dashboardMetric(id)) + ); + const slaMetrics = buildLocalizedMetrics(data, true); + + expect([...analysisMetrics, ...slaMetrics].map(item => item.id)).toEqual([ + 'openFindings', + 'exploitable', + 'needsReview', + 'analysisIncomplete', + 'slaCompliance', + 'deadlinePassed', + 'dueSoon', + 'noDeadline', + ]); + expect(analysisMetrics[0]?.value).toBe('1.234'); + expect(slaMetrics[0]?.value).toMatch(/^70[\s\u00A0\u202F]*%$/); + expect(analysisMetrics.every(item => item.label.length > 0 && item.detail.length > 0)).toBe( + true + ); + expect(slaMetrics.every(item => item.label.length > 0 && item.detail.length > 0)).toBe(true); + await i18n.changeLanguage('en'); + }); +}); + describe('DashboardScreen dismiss failure card states', () => { beforeEach(() => { dismissFailures.failures = []; diff --git a/apps/mobile/src/components/security-agent/dashboard-screen.tsx b/apps/mobile/src/components/security-agent/dashboard-screen.tsx index b97fbb88f1..a901717216 100644 --- a/apps/mobile/src/components/security-agent/dashboard-screen.tsx +++ b/apps/mobile/src/components/security-agent/dashboard-screen.tsx @@ -2,6 +2,7 @@ import { buildSecurityDashboardMetrics, type DashboardMetricTone, + type DashboardStats, getAnalysisIncompleteCount, getSecurityRepositoriesInScope, } from '@kilocode/app-shared/security-agent'; @@ -50,9 +51,7 @@ const METRIC_TONE_CLASS = { neutral: 'text-muted-foreground', } satisfies Record; -type DashboardStats = NonNullable['data']>; - -function buildLocalizedMetrics(data: DashboardStats, slaEnabled: boolean) { +export function buildLocalizedMetrics(data: DashboardStats, slaEnabled: boolean) { const metrics = buildSecurityDashboardMetrics(data, slaEnabled); const number = (value: number) => formatNumber(value, i18n.language); diff --git a/apps/mobile/src/i18n/apply-language.ts b/apps/mobile/src/i18n/apply-language.ts index 0eb1a76ff5..3c111aa3d3 100644 --- a/apps/mobile/src/i18n/apply-language.ts +++ b/apps/mobile/src/i18n/apply-language.ts @@ -10,6 +10,7 @@ import { setLanguagePreferenceAsync, } from '@/lib/hooks/use-language-preference'; import { renameAndroidNotificationChannels } from '@/lib/notifications'; +import { prewarmIntl } from '@/lib/intl-cache'; export type ApplyLanguageOutcome = | { kind: 'applied-ltr' } @@ -66,6 +67,7 @@ export async function applyLanguagePreference( const previousLanguage = i18n.language; try { await i18n.changeLanguage(resolved); + prewarmIntl(resolved); } catch { return { kind: 'catalog-failed' }; } @@ -74,6 +76,7 @@ export async function applyLanguagePreference( if (!persisted) { try { await i18n.changeLanguage(previousLanguage); + prewarmIntl(previousLanguage); } catch { // Ignore: the rollback is best-effort; the persist failure already surfaced. } diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index bcd98b7c07..ed8377e970 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -519,6 +519,7 @@ }, "diff": { "selectedTapToChange": "Gekies {{label}}, tik om seleksie te verander", + "truncationBanner": "Wys die eerste {{limit}} van {{total}} veranderde lêers — GitHub API-limiet", "tapToComment": "{{label}}, tik om kommentaar te lewer" }, "linkPasteClipboardEmpty": "Knipbord is leeg", @@ -2144,7 +2145,10 @@ "modelPicker": { "title": "Kies model", "searchPlaceholder": "Soek modelle...", + "allModels": "Alle modelle", + "favorites": "Gunstelinge", "noModels": "Geen modelle beskikbaar nie", + "recommended": "Aanbeveel", "noModelsDescription": "Geen modelle is beskikbaar om te kies nie." }, "modelSelector": { @@ -2306,6 +2310,7 @@ "signedIn": "Aangeteken {{signedIn}} · Laas gesien {{lastSeen}}", "thisDevice": "Hierdie toestel", "title": "Toestelsessies", + "webBrowser": "Webblaaier", "viewProfile": "Bekyk profiel", "signOutThisDevice": "Teken hierdie toestel uit", "signOutThisSession": "Teken hierdie sessie uit", diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 1e708d95b8..98252fe9f4 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -519,6 +519,7 @@ }, "diff": { "selectedTapToChange": "{{label}} ተመርጧል፣ ምርጫውን ለመቀየር ይንኩ", + "truncationBanner": "ከ{{total}} የተለወጡ ፋይሎች ውስጥ የመጀመሪያዎቹን {{limit}} ያሳያል — GitHub API ገደብ", "tapToComment": "{{label}}፣ አስተያየት ለመስጠት ይንኩ" }, "linkPasteClipboardEmpty": "ቅንጥብ ሰሌዳው ባዶ ነው", @@ -2144,7 +2145,10 @@ "modelPicker": { "title": "ሞዴል ይምረጡ", "searchPlaceholder": "ሞዴሎችን ይፈልጉ...", + "allModels": "ሁሉም ሞዴሎች", + "favorites": "ተወዳጆች", "noModels": "ምንም ሞዴሎች የሉም", + "recommended": "የሚመከሩ", "noModelsDescription": "ለመምረጥ ምንም ሞዴሎች የሉም።" }, "modelSelector": { @@ -2306,6 +2310,7 @@ "signedIn": "የገባው {{signedIn}} · የመጨረሻ ጊዜ {{lastSeen}}", "thisDevice": "ይህ መሣሪያ", "title": "የመሣሪያ ክፍለ-ጊዜዎች", + "webBrowser": "የድር አሳሽ", "viewProfile": "መገለጫ ይመልከቱ", "signOutThisDevice": "ከዚህ መሣሪያ ይውጡ", "signOutThisSession": "ከዚህ ክፍለ-ጊዜ ይውጡ", diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 77444af2fb..cd7b066020 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -1805,7 +1805,10 @@ "modelPicker": { "title": "اختيار النموذج", "searchPlaceholder": "البحث عن النماذج...", + "allModels": "كل النماذج", + "favorites": "المفضلة", "noModels": "لا توجد نماذج متاحة", + "recommended": "الموصى بها", "noModelsDescription": "لا توجد نماذج متاحة للاختيار." }, "modelSelector": { @@ -1971,6 +1974,7 @@ "signedIn": "تم تسجيل الدخول {{signedIn}} · آخر ظهور {{lastSeen}}", "thisDevice": "هذا الجهاز", "title": "جلسات الأجهزة", + "webBrowser": "متصفح الويب", "viewProfile": "عرض الملف الشخصي", "signOutThisDevice": "تسجيل الخروج من هذا الجهاز", "signOutThisSession": "تسجيل الخروج من هذه الجلسة", @@ -2618,6 +2622,7 @@ }, "diff": { "selectedTapToChange": "تم تحديد {{label}}، اضغط لتغيير التحديد", + "truncationBanner": "عرض أول {{limit}} من أصل {{total}} ملفًا تم تغييرها — حد GitHub API", "tapToComment": "{{label}}، اضغط للتعليق" }, "linkPasteClipboardEmpty": "الحافظة فارغة", diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index b66d8a11d3..c9d3841166 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -519,6 +519,7 @@ }, "diff": { "selectedTapToChange": "{{label}} seçildi, seçimi dəyişmək üçün toxunun", + "truncationBanner": "Dəyişdirilmiş {{total}} fayldan ilk {{limit}} fayl göstərilir — GitHub API limiti", "tapToComment": "{{label}}, şərh üçün toxunun" }, "linkPasteClipboardEmpty": "Panoda heç nə yoxdur", @@ -2144,7 +2145,10 @@ "modelPicker": { "title": "Model seç", "searchPlaceholder": "Modelləri axtar...", + "allModels": "Bütün modellər", + "favorites": "Sevimlilər", "noModels": "Mövcud model yoxdur", + "recommended": "Tövsiyə olunanlar", "noModelsDescription": "Seçmək üçün mövcud model yoxdur." }, "modelSelector": { @@ -2306,6 +2310,7 @@ "signedIn": "{{signedIn}} tarixində daxil olundu · Son görünmə {{lastSeen}}", "thisDevice": "Bu cihaz", "title": "Cihaz sessiyaları", + "webBrowser": "Veb brauzer", "viewProfile": "Profilə bax", "signOutThisDevice": "Bu cihazdan çıxış et", "signOutThisSession": "Bu sessiyadan çıxış et", diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index 0f6680913e..17b40badc9 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -533,6 +533,7 @@ }, "diff": { "selectedTapToChange": "Выбрана {{label}}, дакраніцеся, каб змяніць выбар", + "truncationBanner": "Паказаны першыя {{limit}} з {{total}} змененых файлаў — ліміт GitHub API", "tapToComment": "{{label}}, дакраніцеся, каб пакінуць каментар" }, "linkPasteClipboardEmpty": "Буфер абмену пусты", @@ -2178,7 +2179,10 @@ "modelPicker": { "title": "Выбраць мадэль", "searchPlaceholder": "Пошук мадэляў...", + "allModels": "Усе мадэлі", + "favorites": "Абранае", "noModels": "Няма даступных мадэляў", + "recommended": "Рэкамендаваныя", "noModelsDescription": "Няма мадэляў для выбару." }, "modelSelector": { @@ -2342,6 +2346,7 @@ "signedIn": "Уваход {{signedIn}} · Апошні візіт {{lastSeen}}", "thisDevice": "Гэтая прылада", "title": "Сеансы прылады", + "webBrowser": "Вэб-браўзер", "viewProfile": "Праглядзець профіль", "signOutThisDevice": "Выйсці з гэтай прылады", "signOutThisSession": "Выйсці з гэтага сеанса", diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index e95152cc09..9e5e4dcceb 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -519,6 +519,7 @@ }, "diff": { "selectedTapToChange": "Избрано {{label}}, докосни, за да промениш избора", + "truncationBanner": "Показват се първите {{limit}} от {{total}} променени файла — лимит на GitHub API", "tapToComment": "{{label}}, докосни, за да коментираш" }, "linkPasteClipboardEmpty": "Клипбордът е празен", @@ -2144,7 +2145,10 @@ "modelPicker": { "title": "Изберете модел", "searchPlaceholder": "Търсене на модели...", + "allModels": "Всички модели", + "favorites": "Любими", "noModels": "Няма налични модели", + "recommended": "Препоръчани", "noModelsDescription": "Няма налични модели за избор." }, "modelSelector": { @@ -2306,6 +2310,7 @@ "signedIn": "Вписан {{signedIn}} · Виждан за последно {{lastSeen}}", "thisDevice": "Това устройство", "title": "Сесии на устройства", + "webBrowser": "Уеб браузър", "viewProfile": "Вижте профила", "signOutThisDevice": "Излезте от това устройство", "signOutThisSession": "Излезте от тази сесия", diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index e38d9367bd..975b0e1fdd 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -519,6 +519,7 @@ }, "diff": { "selectedTapToChange": "{{label}} নির্বাচিত, নির্বাচন পরিবর্তন করতে আলতো চাপুন", + "truncationBanner": "পরিবর্তিত {{total}}টি ফাইলের মধ্যে প্রথম {{limit}}টি দেখানো হচ্ছে — GitHub API সীমা", "tapToComment": "{{label}}, মন্তব্য করতে আলতো চাপুন" }, "linkPasteClipboardEmpty": "ক্লিপবোর্ড খালি", @@ -2144,7 +2145,10 @@ "modelPicker": { "title": "মডেল নির্বাচন করুন", "searchPlaceholder": "মডেল অনুসন্ধান করুন...", + "allModels": "সব মডেল", + "favorites": "প্রিয়", "noModels": "কোনো মডেল উপলব্ধ নেই", + "recommended": "সুপারিশকৃত", "noModelsDescription": "নির্বাচন করার মতো কোনো মডেল উপলব্ধ নেই।" }, "modelSelector": { @@ -2306,6 +2310,7 @@ "signedIn": "সাইন ইন {{signedIn}} · সর্বশেষ দেখা {{lastSeen}}", "thisDevice": "এই ডিভাইস", "title": "ডিভাইস সেশন", + "webBrowser": "ওয়েব ব্রাউজার", "viewProfile": "প্রোফাইল দেখুন", "signOutThisDevice": "এই ডিভাইস থেকে সাইন আউট", "signOutThisSession": "এই সেশন থেকে সাইন আউট", diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index 0ed4802d5a..c85e9caff3 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -526,6 +526,7 @@ }, "diff": { "selectedTapToChange": "Odabrano {{label}}, dodirnite za promjenu odabira", + "truncationBanner": "Prikazano je prvih {{limit}} od {{total}} promijenjenih datoteka — GitHub API ograničenje", "tapToComment": "{{label}}, dodirnite za komentar" }, "linkPasteClipboardEmpty": "Međuspremnik je prazan", @@ -2161,7 +2162,10 @@ "modelPicker": { "title": "Odaberi model", "searchPlaceholder": "Pretraži modele...", + "allModels": "Svi modeli", + "favorites": "Omiljeni", "noModels": "Nema dostupnih modela", + "recommended": "Preporučeno", "noModelsDescription": "Nijedan model nije dostupan za odabir." }, "modelSelector": { @@ -2324,6 +2328,7 @@ "signedIn": "Prijavljen {{signedIn}} · Zadnji put viđen {{lastSeen}}", "thisDevice": "Ovaj uređaj", "title": "Sesije uređaja", + "webBrowser": "Web preglednik", "viewProfile": "Pogledaj profil", "signOutThisDevice": "Odjavi ovaj uređaj", "signOutThisSession": "Odjavi ovu sesiju", diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index 2d7cf54ae3..17e9f4c909 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -526,6 +526,7 @@ }, "diff": { "selectedTapToChange": "{{label}} seleccionat, toca per canviar la selecció", + "truncationBanner": "Es mostren els primers {{limit}} de {{total}} fitxers modificats — límit de l'API de GitHub", "tapToComment": "{{label}}, toca per comentar" }, "linkPasteClipboardEmpty": "El porta-retalls és buit", @@ -2161,7 +2162,10 @@ "modelPicker": { "title": "Selecciona el model", "searchPlaceholder": "Cerca models...", + "allModels": "Tots els models", + "favorites": "Preferits", "noModels": "No hi ha models disponibles", + "recommended": "Recomanats", "noModelsDescription": "No hi ha cap model per seleccionar." }, "modelSelector": { @@ -2324,6 +2328,7 @@ "signedIn": "Iniciat la sessió el {{signedIn}} · Vist per última vegada el {{lastSeen}}", "thisDevice": "Aquest dispositiu", "title": "Sessions de dispositiu", + "webBrowser": "Navegador web", "viewProfile": "Mostra el perfil", "signOutThisDevice": "Tanca la sessió d'aquest dispositiu", "signOutThisSession": "Tanca aquesta sessió", diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index ca552820d5..8acc75dc4b 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -519,6 +519,7 @@ }, "diff": { "selectedTapToChange": "هەڵبژێردراو {{label}}، بۆ گۆڕینی هەڵبژاردن لێی بدە", + "truncationBanner": "پێشاندانی یەکەم {{limit}} لە {{total}} فایلێکی گۆڕاو — سنووری APIـی GitHub", "tapToComment": "{{label}}، بۆ بۆچوون لێی بدە" }, "linkPasteClipboardEmpty": "کلیپبۆردەکە بەتاڵە", @@ -2144,7 +2145,10 @@ "modelPicker": { "title": "هەڵبژاردنی مۆدێل", "searchPlaceholder": "گەڕان لە مۆدێلەکان...", + "allModels": "هەموو مۆدێلەکان", + "favorites": "دڵخوازەکان", "noModels": "هیچ مۆدێلێک بەردەست نییە", + "recommended": "پێشنیارکراوەکان", "noModelsDescription": "هیچ مۆدێلێک نییە بۆ هەڵبژاردن." }, "modelSelector": { @@ -2306,6 +2310,7 @@ "signedIn": "چووە ژوورەوە {{signedIn}} · دوایین بینین {{lastSeen}}", "thisDevice": "ئەم ئامێرە", "title": "دانیشتنەکانی ئامێر", + "webBrowser": "وێب بڕاوزەر", "viewProfile": "بینینی پڕۆفایل", "signOutThisDevice": "دەرچوون لەم ئامێرە", "signOutThisSession": "دەرچوون لەم دانیشتنە", diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index b8452810e0..e9a11f25c7 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -533,6 +533,7 @@ }, "diff": { "selectedTapToChange": "Vybráno {{label}}, klepnutím změníte výběr", + "truncationBanner": "Zobrazuje se prvních {{limit}} z {{total}} změněných souborů — limit rozhraní GitHub API", "tapToComment": "{{label}}, klepnutím okomentujete" }, "linkPasteClipboardEmpty": "Schránka je prázdná", @@ -2178,7 +2179,10 @@ "modelPicker": { "title": "Vyberte model", "searchPlaceholder": "Hledat modely...", + "allModels": "Všechny modely", + "favorites": "Oblíbené", "noModels": "Žádné modely nejsou k dispozici", + "recommended": "Doporučené", "noModelsDescription": "K výběru nejsou k dispozici žádné modely." }, "modelSelector": { @@ -2342,6 +2346,7 @@ "signedIn": "Přihlášeno {{signedIn}} · Naposledy viděno {{lastSeen}}", "thisDevice": "Toto zařízení", "title": "Relace zařízení", + "webBrowser": "Webový prohlížeč", "viewProfile": "Zobrazit profil", "signOutThisDevice": "Odhlásit toto zařízení", "signOutThisSession": "Odhlásit tuto relaci", diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 85aa17d3d9..0b256f0288 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -547,7 +547,8 @@ }, "diff": { "selectedTapToChange": "{{label}} wedi'i ddewis, tapiwch i newid y dewis", - "tapToComment": "{{label}}, tapiwch i sylwebu" + "tapToComment": "{{label}}, tapiwch i sylwebu", + "truncationBanner": "Yn dangos y {{limit}} cyntaf o {{total}} ffeil a newidiwyd — terfyn API GitHub" }, "linkPasteClipboardEmpty": "Mae'r clipfwrdd yn wag", "linkPasteNotAPullRequest": "Nid dolen GitHub pull request yw hon" @@ -2213,7 +2214,10 @@ "title": "Dewis model", "searchPlaceholder": "Chwilio modelau...", "noModels": "Dim modelau ar gael", - "noModelsDescription": "Does dim modelau ar gael i'w dewis." + "noModelsDescription": "Does dim modelau ar gael i'w dewis.", + "favorites": "Ffefrynnau", + "recommended": "Argymelledig", + "allModels": "Pob model" }, "modelSelector": { "model": "Model", @@ -2386,7 +2390,8 @@ "signOutThisSessionTitle": "Allgofnodi'r sesiwn hon?", "signOutThisSessionMessage": "Bydd {{device}} yn cael ei allgofnodi. Gall gadw mynediad API am hyd at awr.", "signOutConfirm": "Allgofnodi", - "signOutMessage": "Bydd angen i chi fewngofnodi eto i gael mynediad i'ch gweithle." + "signOutMessage": "Bydd angen i chi fewngofnodi eto i gael mynediad i'ch gweithle.", + "webBrowser": "Porwr gwe" }, "forceUpdate": { "couldNotOpenStore": "Methwyd agor y siop apiau.", diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index f2bf1e6fbe..c56c9475e0 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Valgt {{label}}, tryk for at ændre markering", - "tapToComment": "{{label}}, tryk for at kommentere" + "tapToComment": "{{label}}, tryk for at kommentere", + "truncationBanner": "Viser de første {{limit}} af {{total}} ændrede filer — GitHub API-grænse" }, "linkPasteClipboardEmpty": "Udklipsholderen er tom", "linkPasteNotAPullRequest": "Ikke et GitHub pull request-link" @@ -2145,7 +2146,10 @@ "title": "Vælg model", "searchPlaceholder": "Søg modeller...", "noModels": "Ingen modeller tilgængelige", - "noModelsDescription": "Der er ingen modeller at vælge." + "noModelsDescription": "Der er ingen modeller at vælge.", + "favorites": "Favoritter", + "recommended": "Anbefalede", + "allModels": "Alle modeller" }, "modelSelector": { "model": "Model", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Log ud af denne session?", "signOutThisSessionMessage": "{{device}} vil blive logget ud. Den kan beholde API-adgang i op til en time.", "signOutConfirm": "Log ud", - "signOutMessage": "Du skal logge ind igen for at få adgang til dit arbejdsområde." + "signOutMessage": "Du skal logge ind igen for at få adgang til dit arbejdsområde.", + "webBrowser": "Webbrowser" }, "forceUpdate": { "couldNotOpenStore": "Kunne ikke åbne app-butikken.", diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index 33c17c4714..74e805ffad 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -1766,7 +1766,10 @@ "title": "Modell wählen", "searchPlaceholder": "Modelle suchen...", "noModels": "Keine Modelle verfügbar", - "noModelsDescription": "Keine Modelle zum Auswählen verfügbar." + "noModelsDescription": "Keine Modelle zum Auswählen verfügbar.", + "favorites": "Favoriten", + "recommended": "Empfohlen", + "allModels": "Alle Modelle" }, "modelSelector": { "model": "Modell", @@ -1935,7 +1938,8 @@ "signOutThisSessionTitle": "Diese Sitzung abmelden?", "signOutThisSessionMessage": "{{device}} wird abgemeldet. Es kann bis zu einer Stunde lang API-Zugriff behalten.", "signOutConfirm": "Abmelden", - "signOutMessage": "Du musst dich erneut anmelden, um auf deinen Arbeitsbereich zuzugreifen." + "signOutMessage": "Du musst dich erneut anmelden, um auf deinen Arbeitsbereich zuzugreifen.", + "webBrowser": "Webbrowser" }, "forceUpdate": { "couldNotOpenStore": "Der App Store konnte nicht geöffnet werden.", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "{{label}} ausgewählt, tippen zum Ändern der Auswahl", - "tapToComment": "{{label}}, tippen zum Kommentieren" + "tapToComment": "{{label}}, tippen zum Kommentieren", + "truncationBanner": "Zeigt die ersten {{limit}} von {{total}} geänderten Dateien — GitHub-API-Limit" }, "linkPasteClipboardEmpty": "Zwischenablage ist leer", "linkPasteNotAPullRequest": "Kein GitHub-Pull-Request-Link" diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index fbc53d3a94..18b561b868 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Επιλεγμένο {{label}}, πατήστε για αλλαγή επιλογής", - "tapToComment": "{{label}}, πατήστε για σχόλιο" + "tapToComment": "{{label}}, πατήστε για σχόλιο", + "truncationBanner": "Εμφάνιση των πρώτων {{limit}} από {{total}} αλλαγμένα αρχεία — όριο API του GitHub" }, "linkPasteClipboardEmpty": "Το πρόχειρο είναι άδειο", "linkPasteNotAPullRequest": "Δεν είναι σύνδεσμος pull request του GitHub" @@ -2145,7 +2146,10 @@ "title": "Επιλογή μοντέλου", "searchPlaceholder": "Αναζήτηση μοντέλων...", "noModels": "Δεν υπάρχουν διαθέσιμα μοντέλα", - "noModelsDescription": "Δεν υπάρχουν διαθέσιμα μοντέλα για επιλογή." + "noModelsDescription": "Δεν υπάρχουν διαθέσιμα μοντέλα για επιλογή.", + "favorites": "Αγαπημένα", + "recommended": "Προτεινόμενα", + "allModels": "Όλα τα μοντέλα" }, "modelSelector": { "model": "Μοντέλο", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Αποσύνδεση από αυτή τη συνεδρία;", "signOutThisSessionMessage": "Το {{device}} θα αποσυνδεθεί. Μπορεί να διατηρήσει πρόσβαση API έως και μία ώρα.", "signOutConfirm": "Αποσύνδεση", - "signOutMessage": "Θα χρειαστεί να συνδεθείτε ξανά για πρόσβαση στον χώρο εργασίας σας." + "signOutMessage": "Θα χρειαστεί να συνδεθείτε ξανά για πρόσβαση στον χώρο εργασίας σας.", + "webBrowser": "Πρόγραμμα περιήγησης ιστού" }, "forceUpdate": { "couldNotOpenStore": "Δεν ήταν δυνατό το άνοιγμα του καταστήματος εφαρμογών.", diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index 6e21cee2af..648d4abefe 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Selected {{label}}, tap to change selection", - "tapToComment": "{{label}}, tap to comment" + "tapToComment": "{{label}}, tap to comment", + "truncationBanner": "Showing the first {{limit}} of {{total}} changed files — GitHub API limit" }, "linkPasteClipboardEmpty": "Clipboard is empty", "linkPasteNotAPullRequest": "Not a GitHub pull request link" @@ -2145,7 +2146,10 @@ "title": "Select model", "searchPlaceholder": "Search models...", "noModels": "No models available", - "noModelsDescription": "No models are available to select." + "noModelsDescription": "No models are available to select.", + "favorites": "Favorites", + "recommended": "Recommended", + "allModels": "All models" }, "modelSelector": { "model": "Model", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Sign out this session?", "signOutThisSessionMessage": "{{device}} will be signed out. It can keep API access for up to an hour.", "signOutConfirm": "Sign out", - "signOutMessage": "You will need to sign in again to access your workspace." + "signOutMessage": "You will need to sign in again to access your workspace.", + "webBrowser": "Web browser" }, "forceUpdate": { "couldNotOpenStore": "Could not open the app store.", diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index f144ce1eaf..23944adde4 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -1776,7 +1776,10 @@ "title": "Seleccionar modelo", "searchPlaceholder": "Buscar modelos...", "noModels": "No hay modelos disponibles", - "noModelsDescription": "No hay modelos disponibles para seleccionar." + "noModelsDescription": "No hay modelos disponibles para seleccionar.", + "favorites": "Favoritos", + "recommended": "Recomendados", + "allModels": "Todos los modelos" }, "modelSelector": { "model": "Modelo", @@ -1946,7 +1949,8 @@ "signOutThisSessionTitle": "¿Cerrar sesión en esta sesión?", "signOutThisSessionMessage": "{{device}} cerrará sesión. Puede mantener acceso a la API hasta una hora.", "signOutConfirm": "Cerrar sesión", - "signOutMessage": "Tendrás que iniciar sesión de nuevo para acceder a tu espacio de trabajo." + "signOutMessage": "Tendrás que iniciar sesión de nuevo para acceder a tu espacio de trabajo.", + "webBrowser": "Navegador web" }, "forceUpdate": { "couldNotOpenStore": "No se pudo abrir la tienda de aplicaciones.", @@ -2564,7 +2568,8 @@ }, "diff": { "selectedTapToChange": "Seleccionado {{label}}, toca para cambiar la selección", - "tapToComment": "{{label}}, toca para comentar" + "tapToComment": "{{label}}, toca para comentar", + "truncationBanner": "Mostrando los primeros {{limit}} de {{total}} archivos modificados — límite de la API de GitHub" }, "linkPasteClipboardEmpty": "El portapapeles está vacío", "linkPasteNotAPullRequest": "No es un enlace de pull request de GitHub" diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index c08f07909b..c3c5e391cd 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Valitud {{label}}, puuduta valiku muutmiseks", - "tapToComment": "{{label}}, puuduta kommenteerimiseks" + "tapToComment": "{{label}}, puuduta kommenteerimiseks", + "truncationBanner": "Kuvatakse esimesed {{limit}} muudetud faili kokku {{total}}-st — GitHubi API piirang" }, "linkPasteClipboardEmpty": "Lõikelaud on tühi", "linkPasteNotAPullRequest": "Pole GitHub pull requesti link" @@ -2145,7 +2146,10 @@ "title": "Vali mudel", "searchPlaceholder": "Otsi mudeleid...", "noModels": "Ühtegi mudelit pole saadaval", - "noModelsDescription": "Valimiseks pole ühtegi mudelit saadaval." + "noModelsDescription": "Valimiseks pole ühtegi mudelit saadaval.", + "favorites": "Lemmikud", + "recommended": "Soovitatud", + "allModels": "Kõik mudelid" }, "modelSelector": { "model": "Mudel", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Logi see seanss välja?", "signOutThisSessionMessage": "{{device}} logitakse välja. See võib säilitada API juurdepääsu kuni tunni.", "signOutConfirm": "Logi välja", - "signOutMessage": "Tööruumile juurdepääsuks peate uuesti sisse logima." + "signOutMessage": "Tööruumile juurdepääsuks peate uuesti sisse logima.", + "webBrowser": "Veebibrauser" }, "forceUpdate": { "couldNotOpenStore": "Rakendusepoodi ei õnnestunud avada.", diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index db0173602a..2d1ddf4eaf 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} hautatuta, sakatu hautaketa aldatzeko", - "tapToComment": "{{label}}, sakatu iruzkintzeko" + "tapToComment": "{{label}}, sakatu iruzkintzeko", + "truncationBanner": "Aldatutako {{total}} fitxategietatik lehenengo {{limit}} erakusten — GitHub API muga" }, "linkPasteClipboardEmpty": "Arbel hutsik dago", "linkPasteNotAPullRequest": "Ez da GitHub-en pull request esteka bat" @@ -2145,7 +2146,10 @@ "title": "Hautatu modeloa", "searchPlaceholder": "Bilatu modeloak...", "noModels": "Ez dago modelorik erabilgarri", - "noModelsDescription": "Ez dago hautatzeko moduko modelorik." + "noModelsDescription": "Ez dago hautatzeko moduko modelorik.", + "favorites": "Gogokoak", + "recommended": "Gomendatuak", + "allModels": "Modelo guztiak" }, "modelSelector": { "model": "Modeloa", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Itxi saio hau?", "signOutThisSessionMessage": "{{device}} saioa itxiko da. Ordubetez gorde dezake API sarbidea.", "signOutConfirm": "Itxi saioa", - "signOutMessage": "Zure lan-eremura sartzeko berriro hasi beharko duzu saioa." + "signOutMessage": "Zure lan-eremura sartzeko berriro hasi beharko duzu saioa.", + "webBrowser": "Web arakatzailea" }, "forceUpdate": { "couldNotOpenStore": "Ezin izan da aplikazio-denda ireki.", diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index 9d5f0f23a8..ca78797d78 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} انتخاب شد، برای تغییر انتخاب ضربه بزنید", - "tapToComment": "{{label}}، برای نظر ضربه بزنید" + "tapToComment": "{{label}}، برای نظر ضربه بزنید", + "truncationBanner": "نمایش {{limit}} فایل اول از {{total}} فایل تغییر یافته — سقف API گیتهاب" }, "linkPasteClipboardEmpty": "کلیپبورد خالی است", "linkPasteNotAPullRequest": "این پیوند درخواست کشش GitHub نیست" @@ -2145,7 +2146,10 @@ "title": "انتخاب مدل", "searchPlaceholder": "جستجوی مدل‌ها...", "noModels": "مدلی در دسترس نیست", - "noModelsDescription": "هیچ مدلی برای انتخاب در دسترس نیست." + "noModelsDescription": "هیچ مدلی برای انتخاب در دسترس نیست.", + "favorites": "موردعلاقهها", + "recommended": "پیشنهادی", + "allModels": "همه مدلها" }, "modelSelector": { "model": "مدل", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "از این جلسه خارج شوم؟", "signOutThisSessionMessage": "{{device}} از سیستم خارج می‌شود. تا یک ساعت دسترسی API را حفظ می‌کند.", "signOutConfirm": "خروج", - "signOutMessage": "برای دسترسی به فضای کاری خود باید دوباره وارد شوید." + "signOutMessage": "برای دسترسی به فضای کاری خود باید دوباره وارد شوید.", + "webBrowser": "مرورگر وب" }, "forceUpdate": { "couldNotOpenStore": "باز کردن فروشگاه برنامه ممکن نشد.", diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 821f8eacbc..e523428f8b 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Valittu {{label}}, napauta vaihtaaksesi valinnan", - "tapToComment": "{{label}}, napauta kommentoidaksesi" + "tapToComment": "{{label}}, napauta kommentoidaksesi", + "truncationBanner": "Näytetään ensimmäiset {{limit}} muutetuista {{total}} tiedostosta — GitHub API:n raja" }, "linkPasteClipboardEmpty": "Leikepöytä on tyhjä", "linkPasteNotAPullRequest": "Ei GitHub-pull request -linkki" @@ -2145,7 +2146,10 @@ "title": "Valitse malli", "searchPlaceholder": "Hae malleja...", "noModels": "Ei malleja saatavilla", - "noModelsDescription": "Ei ole malleja valittavaksi." + "noModelsDescription": "Ei ole malleja valittavaksi.", + "favorites": "Suosikit", + "recommended": "Suositellut", + "allModels": "Kaikki mallit" }, "modelSelector": { "model": "Malli", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Kirjaudu ulos tästä istunnosta?", "signOutThisSessionMessage": "{{device}} kirjataan ulos. Se voi säilyttää API-käytön enintään tunnin ajan.", "signOutConfirm": "Kirjaudu ulos", - "signOutMessage": "Sinun on kirjauduttava sisään uudelleen päästäksesi työtilaan." + "signOutMessage": "Sinun on kirjauduttava sisään uudelleen päästäksesi työtilaan.", + "webBrowser": "Verkkoselain" }, "forceUpdate": { "couldNotOpenStore": "Sovelluskauppaa ei voitu avata.", diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index 418e6be1c2..6654faad78 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Napili ang {{label}}, tap para baguhin ang pagpili", - "tapToComment": "{{label}}, tap para magkomento" + "tapToComment": "{{label}}, tap para magkomento", + "truncationBanner": "Ipinapakita ang unang {{limit}} sa {{total}} binagong file — limitasyon sa API ng GitHub" }, "linkPasteClipboardEmpty": "Walang laman ang clipboard", "linkPasteNotAPullRequest": "Hindi link ng GitHub pull request" @@ -2145,7 +2146,10 @@ "title": "Pumili ng modelo", "searchPlaceholder": "Maghanap ng mga modelo...", "noModels": "Walang available na modelo", - "noModelsDescription": "Walang available na modelo na mapipili." + "noModelsDescription": "Walang available na modelo na mapipili.", + "favorites": "Mga Paborito", + "recommended": "Inirerekomenda", + "allModels": "Lahat ng modelo" }, "modelSelector": { "model": "Modelo", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "I-sign out ang session na ito?", "signOutThisSessionMessage": "Ma-sign out ang {{device}}. Maaari itong magpanatili ng API access nang hanggang isang oras.", "signOutConfirm": "Mag-sign out", - "signOutMessage": "Kailangan mong mag-sign in muli para ma-access ang iyong workspace." + "signOutMessage": "Kailangan mong mag-sign in muli para ma-access ang iyong workspace.", + "webBrowser": "Web browser" }, "forceUpdate": { "couldNotOpenStore": "Hindi mabuksan ang app store.", diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index d34d72f19a..e578f6facd 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -1707,7 +1707,10 @@ "title": "Sélectionner le modèle", "searchPlaceholder": "Rechercher des modèles...", "noModels": "Aucun modèle disponible", - "noModelsDescription": "Aucun modèle n'est disponible à la sélection." + "noModelsDescription": "Aucun modèle n'est disponible à la sélection.", + "favorites": "Favoris", + "recommended": "Recommandés", + "allModels": "Tous les modèles" }, "modelSelector": { "model": "Modèle", @@ -1891,7 +1894,8 @@ "signOutThisSessionTitle": "Déconnecter cette session ?", "signOutThisSessionMessage": "{{device}} sera déconnecté. Il peut conserver l'accès à l'API jusqu'à une heure.", "signOutConfirm": "Se déconnecter", - "signOutMessage": "Vous devrez vous reconnecter pour accéder à votre espace de travail." + "signOutMessage": "Vous devrez vous reconnecter pour accéder à votre espace de travail.", + "webBrowser": "Navigateur web" }, "forceUpdate": { "couldNotOpenStore": "Impossible d'ouvrir l'App Store.", @@ -2564,7 +2568,8 @@ }, "diff": { "selectedTapToChange": "{{label}} sélectionné, touchez pour modifier la sélection", - "tapToComment": "{{label}}, touchez pour commenter" + "tapToComment": "{{label}}, touchez pour commenter", + "truncationBanner": "Affichage des {{limit}} premiers fichiers modifiés sur {{total}} — limite de l'API GitHub" }, "linkPasteClipboardEmpty": "Le presse-papiers est vide", "linkPasteNotAPullRequest": "Ce n'est pas un lien de pull request GitHub" diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index 30c38332c0..e900a0f1c6 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -540,7 +540,8 @@ }, "diff": { "selectedTapToChange": "Roghnaithe {{label}}, tapáil chun an roghnú a athrú", - "tapToComment": "{{label}}, tapáil chun trácht a dhéanamh" + "tapToComment": "{{label}}, tapáil chun trácht a dhéanamh", + "truncationBanner": "Ag taispeáint an chéad {{limit}} de na {{total}} chomhad athraithe — teorainn API GitHub" }, "linkPasteClipboardEmpty": "Tá an ghearrthaisce folamh", "linkPasteNotAPullRequest": "Ní nasc pull request GitHub é seo" @@ -2196,7 +2197,10 @@ "title": "Roghnaigh samhail", "searchPlaceholder": "Cuardaigh samhlacha...", "noModels": "Níl aon samhlacha ar fáil", - "noModelsDescription": "Níl aon samhlacha ar fáil le roghnú." + "noModelsDescription": "Níl aon samhlacha ar fáil le roghnú.", + "favorites": "Cinn is fearr leat", + "recommended": "Molta", + "allModels": "Gach múnla" }, "modelSelector": { "model": "Samhail", @@ -2368,7 +2372,8 @@ "signOutThisSessionTitle": "An bhfuil tú ag iarraidh síniú amach ón seisiún seo?", "signOutThisSessionMessage": "Beidh {{device}} sínithe amach. Is féidir rochtain API a choinneáil aige ar feadh uair an chloig ar a mhéad.", "signOutConfirm": "Sínigh amach", - "signOutMessage": "Beidh ort síniú isteach arís le rochtain a fháil ar do spás oibre." + "signOutMessage": "Beidh ort síniú isteach arís le rochtain a fháil ar do spás oibre.", + "webBrowser": "Brabhsálaí gréasáin" }, "forceUpdate": { "couldNotOpenStore": "Níorbh fhéidir an siopa aip a oscailt.", diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index 596d8dea04..65596073ed 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Seleccionado {{label}}, toca para cambiar a selección", - "tapToComment": "{{label}}, toca para comentar" + "tapToComment": "{{label}}, toca para comentar", + "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} ficheiros modificados — límite da API de GitHub" }, "linkPasteClipboardEmpty": "O portapapeis está baleiro", "linkPasteNotAPullRequest": "Non é unha ligazón de solicitude de cambios de GitHub" @@ -2145,7 +2146,10 @@ "title": "Seleccionar modelo", "searchPlaceholder": "Buscar modelos...", "noModels": "Non hai modelos dispoñibles", - "noModelsDescription": "Non hai modelos dispoñibles para seleccionar." + "noModelsDescription": "Non hai modelos dispoñibles para seleccionar.", + "favorites": "Favoritos", + "recommended": "Recomendado", + "allModels": "Todos os modelos" }, "modelSelector": { "model": "Modelo", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Pechar esta sesión?", "signOutThisSessionMessage": "{{device}} pechará a sesión. Pode manter o acceso á API durante unha hora como máximo.", "signOutConfirm": "Pechar sesión", - "signOutMessage": "Terás que iniciar sesión de novo para acceder ao teu espazo de traballo." + "signOutMessage": "Terás que iniciar sesión de novo para acceder ao teu espazo de traballo.", + "webBrowser": "Navegador web" }, "forceUpdate": { "couldNotOpenStore": "Non se puido abrir a tenda de aplicacións.", diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index 2acc4503dc..5778918449 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} પસંદ કર્યું, પસંદગી બદલવા ટેપ કરો", - "tapToComment": "{{label}}, ટિપ્પણી કરવા ટેપ કરો" + "tapToComment": "{{label}}, ટિપ્પણી કરવા ટેપ કરો", + "truncationBanner": "બદલાયેલી {{total}} ફાઇલોમાંથી પ્રથમ {{limit}} બતાવી રહ્યાં છીએ — GitHub API મર્યાદા" }, "linkPasteClipboardEmpty": "ક્લિપબોર્ડ ખાલી છે", "linkPasteNotAPullRequest": "આ GitHub પુલ રિક્વેસ્ટ લિંક નથી" @@ -2145,7 +2146,10 @@ "title": "મોડલ પસંદ કરો", "searchPlaceholder": "મોડલ્સ શોધો...", "noModels": "કોઈ મોડલ ઉપલબ્ધ નથી", - "noModelsDescription": "પસંદ કરવા માટે કોઈ મોડલ ઉપલબ્ધ નથી." + "noModelsDescription": "પસંદ કરવા માટે કોઈ મોડલ ઉપલબ્ધ નથી.", + "favorites": "ફેવરિટ", + "recommended": "ભલામણ કરેલ", + "allModels": "બધા મોડેલ" }, "modelSelector": { "model": "મોડલ", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "આ સત્ર સાઇન આઉટ કરવું છે?", "signOutThisSessionMessage": "{{device}} સાઇન આઉટ થશે. તે એક કલાક સુધી API ઍક્સેસ રાખી શકે છે.", "signOutConfirm": "સાઇન આઉટ", - "signOutMessage": "તમારા વર્કસ્પેસને ઍક્સેસ કરવા માટે તમારે ફરી સાઇન ઇન કરવું પડશે." + "signOutMessage": "તમારા વર્કસ્પેસને ઍક્સેસ કરવા માટે તમારે ફરી સાઇન ઇન કરવું પડશે.", + "webBrowser": "વેબ બ્રાઉઝર" }, "forceUpdate": { "couldNotOpenStore": "એપ સ્ટોર ખોલી શકાયું નહીં.", diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index 13ddb5663e..d0a551f031 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "An zaɓi {{label}}, danna don canza zaɓi", - "tapToComment": "{{label}}, danna don tsokaci" + "tapToComment": "{{label}}, danna don tsokaci", + "truncationBanner": "Ana nuna farkon {{limit}} na {{total}} fayilolin da aka canza — iyakar GitHub API" }, "linkPasteClipboardEmpty": "Allon kwafi babu kome", "linkPasteNotAPullRequest": "Ba hanyar GitHub pull request ba" @@ -2145,7 +2146,10 @@ "title": "Zaɓi model", "searchPlaceholder": "Nemo models...", "noModels": "Babu models da ake da su", - "noModelsDescription": "Babu models da za a zaɓa." + "noModelsDescription": "Babu models da za a zaɓa.", + "favorites": "Waɗanda ake so", + "recommended": "An ba da shawara", + "allModels": "Duk samfuran" }, "modelSelector": { "model": "Model", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Fita daga wannan zaman?", "signOutThisSessionMessage": "Za a fitar da {{device}}. Za ta iya riƙe damar API na har awa ɗaya.", "signOutConfirm": "Fita", - "signOutMessage": "Za ka buƙaci sake shiga don samun damar sararin aikinka." + "signOutMessage": "Za ka buƙaci sake shiga don samun damar sararin aikinka.", + "webBrowser": "Browser na yanar gizo" }, "forceUpdate": { "couldNotOpenStore": "Ba a iya buɗe kantin apps ba.", diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index 760fe4bcac..0ddd63ccbc 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -1776,7 +1776,10 @@ "title": "בחר דגם", "searchPlaceholder": "חפש דגמים...", "noModels": "אין דגמים זמינים", - "noModelsDescription": "אין דגמים זמינים לבחירה." + "noModelsDescription": "אין דגמים זמינים לבחירה.", + "favorites": "מועדפים", + "recommended": "מומלץ", + "allModels": "כל הדגמים" }, "modelSelector": { "model": "דגם", @@ -1946,7 +1949,8 @@ "signOutThisSessionTitle": "להתנתק מההפעלה הזו?", "signOutThisSessionMessage": "{{device}} ינותק. הוא יכול לשמור על גישת API עד שעה.", "signOutConfirm": "התנתק", - "signOutMessage": "יהיה עליך להיכנס שוב כדי לגשת לסביבת העבודה שלך." + "signOutMessage": "יהיה עליך להיכנס שוב כדי לגשת לסביבת העבודה שלך.", + "webBrowser": "דפדפן" }, "forceUpdate": { "couldNotOpenStore": "לא ניתן היה לפתוח את חנות האפליקציות.", @@ -2564,7 +2568,8 @@ }, "diff": { "selectedTapToChange": "{{label}} נבחר, הקש כדי לשנות את הבחירה", - "tapToComment": "{{label}}, הקש כדי להגיב" + "tapToComment": "{{label}}, הקש כדי להגיב", + "truncationBanner": "מציג את {{limit}} הראשונים מתוך {{total}} קבצים ששונו — מגבלת API של GitHub" }, "linkPasteClipboardEmpty": "הלוח ריק", "linkPasteNotAPullRequest": "לא קישור לבקשת משיכה ב-GitHub" diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index ceb952ad42..3e57f0c9ab 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -1732,7 +1732,10 @@ "title": "मॉडल चुनें", "searchPlaceholder": "मॉडल खोजें...", "noModels": "कोई मॉडल उपलब्ध नहीं", - "noModelsDescription": "चुनने के लिए कोई मॉडल उपलब्ध नहीं है।" + "noModelsDescription": "चुनने के लिए कोई मॉडल उपलब्ध नहीं है।", + "favorites": "पसंदीदा", + "recommended": "अनुशंसित", + "allModels": "सभी मॉडल" }, "modelSelector": { "model": "मॉडल", @@ -1935,7 +1938,8 @@ "signOutThisSessionTitle": "इस सत्र को साइन आउट करें?", "signOutThisSessionMessage": "{{device}} साइन आउट हो जाएगा। यह एक घंटे तक API पहुँच रख सकता है।", "signOutConfirm": "साइन आउट करें", - "signOutMessage": "अपने कार्यक्षेत्र तक पहुँचने के लिए आपको फिर से साइन इन करना होगा।" + "signOutMessage": "अपने कार्यक्षेत्र तक पहुँचने के लिए आपको फिर से साइन इन करना होगा।", + "webBrowser": "वेब ब्राउज़र" }, "forceUpdate": { "couldNotOpenStore": "ऐप स्टोर नहीं खुल सका।", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "{{label}} चुना गया, चयन बदलने के लिए टैप करें", - "tapToComment": "{{label}}, टिप्पणी करने के लिए टैप करें" + "tapToComment": "{{label}}, टिप्पणी करने के लिए टैप करें", + "truncationBanner": "बदली गई {{total}} फ़ाइलों में से पहली {{limit}} फ़ाइलें दिखाई जा रही हैं — GitHub API सीमा" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड खाली है", "linkPasteNotAPullRequest": "यह GitHub पुल रिक्वेस्ट लिंक नहीं है" diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index 73e36f49d1..1cb2611059 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -526,7 +526,8 @@ }, "diff": { "selectedTapToChange": "Odabrano {{label}}, dodirnite za promjenu odabira", - "tapToComment": "{{label}}, dodirnite za komentar" + "tapToComment": "{{label}}, dodirnite za komentar", + "truncationBanner": "Prikazujem prvih {{limit}} od {{total}} promijenjenih datoteka — ograničenje GitHub API-ja" }, "linkPasteClipboardEmpty": "Međuspremnik je prazan", "linkPasteNotAPullRequest": "Nije poveznica na GitHub pull request" @@ -2162,7 +2163,10 @@ "title": "Odaberite model", "searchPlaceholder": "Pretraži modele...", "noModels": "Nema dostupnih modela", - "noModelsDescription": "Nema dostupnih modela za odabir." + "noModelsDescription": "Nema dostupnih modela za odabir.", + "favorites": "Favoriti", + "recommended": "Preporučeno", + "allModels": "Svi modeli" }, "modelSelector": { "model": "Model", @@ -2332,7 +2336,8 @@ "signOutThisSessionTitle": "Odjava iz ove sesije?", "signOutThisSessionMessage": "{{device}} bit će odjavljen. Može zadržati pristup API-ju do sat vremena.", "signOutConfirm": "Odjava", - "signOutMessage": "Morat ćete se ponovno prijaviti za pristup radnom prostoru." + "signOutMessage": "Morat ćete se ponovno prijaviti za pristup radnom prostoru.", + "webBrowser": "Web preglednik" }, "forceUpdate": { "couldNotOpenStore": "Nije moguće otvoriti trgovinu aplikacija.", diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index d5865fb1a1..c37ddbe4d6 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Chwazi {{label}}, tape pou chanje seleksyon", - "tapToComment": "{{label}}, tape pou kòmante" + "tapToComment": "{{label}}, tape pou kòmante", + "truncationBanner": "Ap montre premye {{limit}} sou {{total}} fichye ki chanje — limit API GitHub" }, "linkPasteClipboardEmpty": "Clipboard la vid", "linkPasteNotAPullRequest": "Se pa yon lyen pull request GitHub" @@ -2145,7 +2146,10 @@ "title": "Chwazi modèl", "searchPlaceholder": "Chèche modèl...", "noModels": "Pa gen modèl disponib", - "noModelsDescription": "Pa gen modèl disponib pou chwazi." + "noModelsDescription": "Pa gen modèl disponib pou chwazi.", + "favorites": "Favori", + "recommended": "Rekòmande", + "allModels": "Tout modèl" }, "modelSelector": { "model": "Modèl", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Siyen deyò nan sesyon sa a?", "signOutThisSessionMessage": "{{device}} ap siyen deyò. Li ka kenbe akse API pou jiska yon èdtan.", "signOutConfirm": "Siyen deyò", - "signOutMessage": "Ou ap bezwen siyen nan ankò pou akse espas travay ou." + "signOutMessage": "Ou ap bezwen siyen nan ankò pou akse espas travay ou.", + "webBrowser": "Navigatè entènèt" }, "forceUpdate": { "couldNotOpenStore": "Pa t ka louvri magazen aplikasyon an.", diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index f2e1b36921..102c1dd88c 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Kijelölve: {{label}}, koppintson a kijelölés módosításához", - "tapToComment": "{{label}}, koppintson a megjegyzéshez" + "tapToComment": "{{label}}, koppintson a megjegyzéshez", + "truncationBanner": "A módosított {{total}} fájl közül az első {{limit}} megjelenítése — GitHub API-korlát" }, "linkPasteClipboardEmpty": "A vágólap üres", "linkPasteNotAPullRequest": "Nem GitHub pull request hivatkozás" @@ -2145,7 +2146,10 @@ "title": "Modell kiválasztása", "searchPlaceholder": "Modell keresése...", "noModels": "Nincs elérhető modell", - "noModelsDescription": "Nincs kiválasztható modell." + "noModelsDescription": "Nincs kiválasztható modell.", + "favorites": "Kedvencek", + "recommended": "Ajánlott", + "allModels": "Összes modell" }, "modelSelector": { "model": "Modell", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Kijelentkezel ebből a munkamenetből?", "signOutThisSessionMessage": "{{device}} ki lesz jelentkeztetve. Akár egy óráig megtarthatja az API-hozzáférést.", "signOutConfirm": "Kijelentkezés", - "signOutMessage": "A munkaterület eléréséhez újra be kell jelentkezned." + "signOutMessage": "A munkaterület eléréséhez újra be kell jelentkezned.", + "webBrowser": "Webböngésző" }, "forceUpdate": { "couldNotOpenStore": "Az alkalmazásbolt nem nyitható meg.", diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index 3ba89b60f3..3dd67370b4 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Ընտրված {{label}}, հպեք ընտրությունը փոխելու համար", - "tapToComment": "{{label}}, հպեք մեկնաբանելու համար" + "tapToComment": "{{label}}, հպեք մեկնաբանելու համար", + "truncationBanner": "Ցուցադրվում են փոփոխված {{total}} ֆայլերից առաջին {{limit}}-ը — GitHub API-ի սահմանաչափ" }, "linkPasteClipboardEmpty": "Սեղմատախտակը դատարկ է", "linkPasteNotAPullRequest": "Սա GitHub-ի pull request հղում չէ" @@ -2145,7 +2146,10 @@ "title": "Ընտրել մոդել", "searchPlaceholder": "Որոնել մոդելներ...", "noModels": "Մոդելներ հասանելի չեն", - "noModelsDescription": "Ընտրելու համար մոդելներ հասանելի չեն:" + "noModelsDescription": "Ընտրելու համար մոդելներ հասանելի չեն:", + "favorites": "Նախընտրածներ", + "recommended": "Առաջարկվող", + "allModels": "Բոլոր մոդելները" }, "modelSelector": { "model": "Մոդել", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Դուրս գալ այս նիստից:", "signOutThisSessionMessage": "{{device}}-ը դուրս կգա: Այն կարող է պահպանել API հասանելիությունը մինչև մեկ ժամ:", "signOutConfirm": "Դուրս գալ", - "signOutMessage": "Ձեզ անհրաժեշտ կլինի նորից մուտք գործել՝ ձեր աշխատանքային տարածք մուտք գործելու համար:" + "signOutMessage": "Ձեզ անհրաժեշտ կլինի նորից մուտք գործել՝ ձեր աշխատանքային տարածք մուտք գործելու համար:", + "webBrowser": "Վեբ զննարկիչ" }, "forceUpdate": { "couldNotOpenStore": "Հնարավոր չեղավ բացել հավելվածների խանութը:", diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index b76b60eba3..94b2b515de 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -1766,7 +1766,10 @@ "title": "Pilih model", "searchPlaceholder": "Cari model...", "noModels": "Tidak ada model tersedia", - "noModelsDescription": "Tidak ada model yang tersedia untuk dipilih." + "noModelsDescription": "Tidak ada model yang tersedia untuk dipilih.", + "favorites": "Favorit", + "recommended": "Direkomendasikan", + "allModels": "Semua model" }, "modelSelector": { "model": "Model", @@ -1935,7 +1938,8 @@ "signOutThisSessionTitle": "Keluar dari sesi ini?", "signOutThisSessionMessage": "{{device}} akan dikeluarkan. Perangkat ini dapat mempertahankan akses API hingga satu jam.", "signOutConfirm": "Keluar", - "signOutMessage": "Anda perlu masuk lagi untuk mengakses ruang kerja Anda." + "signOutMessage": "Anda perlu masuk lagi untuk mengakses ruang kerja Anda.", + "webBrowser": "Peramban web" }, "forceUpdate": { "couldNotOpenStore": "Tidak dapat membuka toko aplikasi.", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "Dipilih {{label}}, ketuk untuk mengubah pilihan", - "tapToComment": "{{label}}, ketuk untuk berkomentar" + "tapToComment": "{{label}}, ketuk untuk berkomentar", + "truncationBanner": "Menampilkan {{limit}} file pertama dari {{total}} file yang diubah — batas API GitHub" }, "linkPasteClipboardEmpty": "Clipboard kosong", "linkPasteNotAPullRequest": "Bukan tautan pull request GitHub" diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index 0281b505ea..f5b9f3e477 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Ahọpụtara {{label}}, pịa iji gbanwee nhọrọ", - "tapToComment": "{{label}}, pịa iji kọwaa" + "tapToComment": "{{label}}, pịa iji kọwaa", + "truncationBanner": "Na-egosi nke mbụ {{limit}} n'ime {{total}} faịlụ agbanwere — njedebe API GitHub" }, "linkPasteClipboardEmpty": "Mbadamba ederede tọgbọrọ chakachara", "linkPasteNotAPullRequest": "Ọ bụghị njikọ arịrịọ ndọta GitHub" @@ -2145,7 +2146,10 @@ "title": "Họrọ ụdị", "searchPlaceholder": "Chọọ ụdị...", "noModels": "Enweghị ụdị dị", - "noModelsDescription": "Ọ dịghị ụdị ọ bụla ịhọrọ." + "noModelsDescription": "Ọ dịghị ụdị ọ bụla ịhọrọ.", + "favorites": "Ọkacha mmasị", + "recommended": "Akwadoro", + "allModels": "Modelị niile" }, "modelSelector": { "model": "Ụdị", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Ị pụọ na nnọkọ a?", "signOutThisSessionMessage": "A ga-ewepụ {{device}} na nnọkọ. Ọ nwere ike ịnọgide na-enweta API ruo otu awa.", "signOutConfirm": "Pụọ", - "signOutMessage": "Ị ga-abanye ọzọ ka ị nweta oghere ọrụ gị." + "signOutMessage": "Ị ga-abanye ọzọ ka ị nweta oghere ọrụ gị.", + "webBrowser": "Ihe nchọgharị weebụ" }, "forceUpdate": { "couldNotOpenStore": "Enweghị ike imeghe ụlọ ahịa ngwa.", diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index 6881a39790..ef2536b09f 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Valið {{label}}, bankaðu til að breyta vali", - "tapToComment": "{{label}}, bankaðu til að skrifa athugasemd" + "tapToComment": "{{label}}, bankaðu til að skrifa athugasemd", + "truncationBanner": "Sýni fyrstu {{limit}} af {{total}} breyttum skrám — GitHub API takmörk" }, "linkPasteClipboardEmpty": "Klippiborð er tómt", "linkPasteNotAPullRequest": "Ekki GitHub pull request hlekkur" @@ -2145,7 +2146,10 @@ "title": "Veldu líkan", "searchPlaceholder": "Leita að líkönum...", "noModels": "Engin líkön tiltæk", - "noModelsDescription": "Engin líkön eru tiltæk til vals." + "noModelsDescription": "Engin líkön eru tiltæk til vals.", + "favorites": "Eftirlæti", + "recommended": "Mælt með", + "allModels": "Allar líkön" }, "modelSelector": { "model": "Líkan", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Skrá þessa lotu út?", "signOutThisSessionMessage": "{{device}} verður skráð út. Það getur haldið API-aðgangi í allt að klukkustund.", "signOutConfirm": "Skrá út", - "signOutMessage": "Þú þarft að skrá þig inn aftur til að fá aðgang að vinnusvæðinu þínu." + "signOutMessage": "Þú þarft að skrá þig inn aftur til að fá aðgang að vinnusvæðinu þínu.", + "webBrowser": "Vafri" }, "forceUpdate": { "couldNotOpenStore": "Ekki tókst að opna app-verslunina.", diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index 45ff44720a..e05807fef6 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -1762,7 +1762,10 @@ "title": "Seleziona modello", "searchPlaceholder": "Cerca modelli...", "noModels": "Nessun modello disponibile", - "noModelsDescription": "Nessun modello è disponibile per la selezione." + "noModelsDescription": "Nessun modello è disponibile per la selezione.", + "favorites": "Preferiti", + "recommended": "Consigliati", + "allModels": "Tutti i modelli" }, "modelSelector": { "model": "Modello", @@ -1946,7 +1949,8 @@ "signOutThisSessionTitle": "Disconnettere questa sessione?", "signOutThisSessionMessage": "{{device}} verrà disconnesso. Potrà mantenere l'accesso API per un massimo di un'ora.", "signOutConfirm": "Esci", - "signOutMessage": "Dovrai accedere di nuovo per accedere al tuo spazio di lavoro." + "signOutMessage": "Dovrai accedere di nuovo per accedere al tuo spazio di lavoro.", + "webBrowser": "Browser web" }, "forceUpdate": { "couldNotOpenStore": "Impossibile aprire l'app store.", @@ -2564,7 +2568,8 @@ }, "diff": { "selectedTapToChange": "Selezionato {{label}}, tocca per cambiare selezione", - "tapToComment": "{{label}}, tocca per commentare" + "tapToComment": "{{label}}, tocca per commentare", + "truncationBanner": "Mostra le prime {{limit}} di {{total}} modifiche ai file — limite API GitHub" }, "linkPasteClipboardEmpty": "Appunti vuoti", "linkPasteNotAPullRequest": "Non è un link a una pull request di GitHub" diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 1937fdd8bb..280037771d 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -1766,7 +1766,10 @@ "title": "モデルを選択", "searchPlaceholder": "モデルを検索...", "noModels": "利用可能なモデルはありません", - "noModelsDescription": "選択できるモデルはありません。" + "noModelsDescription": "選択できるモデルはありません。", + "favorites": "お気に入り", + "recommended": "おすすめ", + "allModels": "すべてのモデル" }, "modelSelector": { "model": "モデル", @@ -1935,7 +1938,8 @@ "signOutThisSessionTitle": "このセッションをサインアウトしますか?", "signOutThisSessionMessage": "{{device}}がサインアウトされます。最大1時間はAPIアクセスを維持できます。", "signOutConfirm": "サインアウト", - "signOutMessage": "ワークスペースにアクセスするには、もう一度サインインする必要があります。" + "signOutMessage": "ワークスペースにアクセスするには、もう一度サインインする必要があります。", + "webBrowser": "Webブラウザ" }, "forceUpdate": { "couldNotOpenStore": "アプリストアを開けませんでした。", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "{{label}}を選択中。タップして選択を変更", - "tapToComment": "{{label}}をタップしてコメント" + "tapToComment": "{{label}}をタップしてコメント", + "truncationBanner": "変更されたファイル {{total}} 件中、最初の {{limit}} 件を表示中 — GitHub API の制限" }, "linkPasteClipboardEmpty": "クリップボードが空です", "linkPasteNotAPullRequest": "GitHub のプルリクエストリンクではありません" diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index 26ed535318..6d27fb84d8 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "არჩეულია {{label}}, შეეხეთ არჩევანის შესაცვლელად", - "tapToComment": "{{label}}, შეეხეთ კომენტარისთვის" + "tapToComment": "{{label}}, შეეხეთ კომენტარისთვის", + "truncationBanner": "ნაჩვენებია შეცვლილი ფაილების {{total}}-დან პირველი {{limit}} — GitHub API ლიმიტი" }, "linkPasteClipboardEmpty": "ბუფერი ცარიელია", "linkPasteNotAPullRequest": "არ არის GitHub pull request ბმული" @@ -2145,7 +2146,10 @@ "title": "მოდელის არჩევა", "searchPlaceholder": "მოდელების ძებნა...", "noModels": "მოდელები ხელმისაწვდომი არ არის", - "noModelsDescription": "ასარჩევი მოდელები ხელმისაწვდომი არ არის." + "noModelsDescription": "ასარჩევი მოდელები ხელმისაწვდომი არ არის.", + "favorites": "რჩეულები", + "recommended": "რეკომენდირებული", + "allModels": "ყველა მოდელი" }, "modelSelector": { "model": "მოდელი", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "გავიდეთ ამ სესიიდან?", "signOutThisSessionMessage": "{{device}} გავა. მას API წვდომა ერთ საათამდე შეიძლება შეუნარჩუნდეს.", "signOutConfirm": "გასვლა", - "signOutMessage": "სამუშაო სივრცეში შესასვლელად კვლავ მოგიწევთ შესვლა." + "signOutMessage": "სამუშაო სივრცეში შესასვლელად კვლავ მოგიწევთ შესვლა.", + "webBrowser": "ვებ ბრაუზერი" }, "forceUpdate": { "couldNotOpenStore": "აპლიკაციების მაღაზიის გახსნა ვერ მოხერხდა.", diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index 5e8100c8b3..01302d4815 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} таңдалды, таңдауды өзгерту үшін түртіңіз", - "tapToComment": "{{label}}, пікір қалдыру үшін түртіңіз" + "tapToComment": "{{label}}, пікір қалдыру үшін түртіңіз", + "truncationBanner": "Өзгертілген {{total}} файлдың алғашқы {{limit}}-і көрсетілуде — GitHub API шегі" }, "linkPasteClipboardEmpty": "Айырбастау буфері бос", "linkPasteNotAPullRequest": "GitHub pull request сілтемесі емес" @@ -2145,7 +2146,10 @@ "title": "Модельді таңдау", "searchPlaceholder": "Модельдерді іздеу...", "noModels": "Қолжетімді модельдер жоқ", - "noModelsDescription": "Таңдауға болатын модельдер жоқ." + "noModelsDescription": "Таңдауға болатын модельдер жоқ.", + "favorites": "Таңдаулылар", + "recommended": "Ұсынылған", + "allModels": "Барлық модельдер" }, "modelSelector": { "model": "Модель", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Бұл сессиядан шығасыз ба?", "signOutThisSessionMessage": "{{device}} шығарылады. Ол бір сағатқа дейін API қолжетімділігін сақтай алады.", "signOutConfirm": "Шығу", - "signOutMessage": "Жұмыс кеңістігіне кіру үшін қайта кіру керек болады." + "signOutMessage": "Жұмыс кеңістігіне кіру үшін қайта кіру керек болады.", + "webBrowser": "Веб браузер" }, "forceUpdate": { "couldNotOpenStore": "Қосымшалар дүкенін ашу мүмкін болмады.", diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index ab5e5293c3..afd2ae7315 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "បានជ្រើសរើស {{label}} ប៉ះដើម្បីប្តូរការជ្រើសរើស", - "tapToComment": "{{label}} ប៉ះដើម្បីធ្វើអត្ថាធិប្បាយ" + "tapToComment": "{{label}} ប៉ះដើម្បីធ្វើអត្ថាធិប្បាយ", + "truncationBanner": "កំពុងបង្ហាញ {{limit}} ដំបូងក្នុងចំណោម {{total}} ឯកសារដែលបានផ្លាស់ប្តូរ — ដែនកំណត់ GitHub API" }, "linkPasteClipboardEmpty": "ក្ដារតម្បៀតខ្ទាស់ទទេ", "linkPasteNotAPullRequest": "មិនមែនជាតំណ pull request របស់ GitHub ទេ" @@ -2145,7 +2146,10 @@ "title": "ជ្រើសរើសម៉ូដែល", "searchPlaceholder": "ស្វែងរកម៉ូដែល...", "noModels": "គ្មានម៉ូដែលអាចប្រើបានទេ", - "noModelsDescription": "គ្មានម៉ូដែលណាអាចជ្រើសរើសបានទេ។" + "noModelsDescription": "គ្មានម៉ូដែលណាអាចជ្រើសរើសបានទេ។", + "favorites": "ចំណូលចិត្ត", + "recommended": "បានណែនាំ", + "allModels": "គ្រប់ម៉ូដែល" }, "modelSelector": { "model": "ម៉ូដែល", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "ចេញពីគណនីវគ្គនេះ?", "signOutThisSessionMessage": "{{device}} នឹងត្រូវបានចេញពីគណនី។ វាអាចរក្សាការចូលប្រើ API រហូតដល់មួយម៉ោង។", "signOutConfirm": "ចេញពីគណនី", - "signOutMessage": "អ្នកនឹងត្រូវចូលគណនីម្តងទៀតដើម្បីចូលប្រើ workspace របស់អ្នក។" + "signOutMessage": "អ្នកនឹងត្រូវចូលគណនីម្តងទៀតដើម្បីចូលប្រើ workspace របស់អ្នក។", + "webBrowser": "កម្មវិធីរុករកវេប" }, "forceUpdate": { "couldNotOpenStore": "មិនអាចបើកហាងកម្មវិធីបានទេ។", diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index 520e6a6fdd..c9721aa461 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ, ಆಯ್ಕೆ ಬದಲಾಯಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ", - "tapToComment": "{{label}}, ಕಾಮೆಂಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ" + "tapToComment": "{{label}}, ಕಾಮೆಂಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ", + "truncationBanner": "ಬದಲಾದ {{total}} ಫೈಲ್ಗಳಲ್ಲಿ ಮೊದಲ {{limit}} ತೋರಿಸಲಾಗುತ್ತಿದೆ — GitHub API ಮಿತಿ" }, "linkPasteClipboardEmpty": "ಕ್ಲಿಪ್ಬೋರ್ಡ್ ಖಾಲಿಯಾಗಿದೆ", "linkPasteNotAPullRequest": "GitHub ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ಲಿಂಕ್ ಅಲ್ಲ" @@ -2145,7 +2146,10 @@ "title": "ಮಾದರಿ ಆಯ್ಕೆಮಾಡಿ", "searchPlaceholder": "ಮಾದರಿಗಳನ್ನು ಹುಡುಕಿ...", "noModels": "ಯಾವುದೇ ಮಾದರಿಗಳು ಲಭ್ಯವಿಲ್ಲ", - "noModelsDescription": "ಆಯ್ಕೆ ಮಾಡಲು ಯಾವುದೇ ಮಾದರಿಗಳು ಲಭ್ಯವಿಲ್ಲ." + "noModelsDescription": "ಆಯ್ಕೆ ಮಾಡಲು ಯಾವುದೇ ಮಾದರಿಗಳು ಲಭ್ಯವಿಲ್ಲ.", + "favorites": "ಮೆಚ್ಚಿನವುಗಳು", + "recommended": "ಶಿಫಾರಸು ಮಾಡಲಾದ", + "allModels": "ಎಲ್ಲಾ ಮಾದರಿಗಳು" }, "modelSelector": { "model": "ಮಾದರಿ", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "ಈ ಸೆಷನ್ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡುವುದೇ?", "signOutThisSessionMessage": "{{device}} ಸೈನ್ ಔಟ್ ಆಗುತ್ತದೆ. ಇದು ಒಂದು ಗಂಟೆಯವರೆಗೆ API ಪ್ರವೇಶವನ್ನು ಹೊಂದಬಹುದು.", "signOutConfirm": "ಸೈನ್ ಔಟ್", - "signOutMessage": "ನಿಮ್ಮ ವರ್ಕ್‌ಸ್ಪೇಸ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಮತ್ತೆ ಸೈನ್ ಇನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ." + "signOutMessage": "ನಿಮ್ಮ ವರ್ಕ್‌ಸ್ಪೇಸ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಮತ್ತೆ ಸೈನ್ ಇನ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.", + "webBrowser": "ವೆಬ್ ಬ್ರೌಸರ್" }, "forceUpdate": { "couldNotOpenStore": "ಅಪ್ ಸ್ಟೋರ್ ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index de6f64ad35..cee0c98d27 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -1766,7 +1766,10 @@ "title": "모델 선택", "searchPlaceholder": "모델 검색...", "noModels": "사용 가능한 모델이 없습니다", - "noModelsDescription": "선택할 수 있는 모델이 없습니다." + "noModelsDescription": "선택할 수 있는 모델이 없습니다.", + "favorites": "즐겨찾기", + "recommended": "추천", + "allModels": "모든 모델" }, "modelSelector": { "model": "모델", @@ -1935,7 +1938,8 @@ "signOutThisSessionTitle": "이 세션을 로그아웃하시겠습니까?", "signOutThisSessionMessage": "{{device}}이(가) 로그아웃됩니다. 최대 1시간 동안 API 액세스를 유지할 수 있습니다.", "signOutConfirm": "로그아웃", - "signOutMessage": "작업 영역에 액세스하려면 다시 로그인해야 합니다." + "signOutMessage": "작업 영역에 액세스하려면 다시 로그인해야 합니다.", + "webBrowser": "웹 브라우저" }, "forceUpdate": { "couldNotOpenStore": "앱 스토어를 열 수 없습니다.", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "{{label}} 선택됨, 탭하여 선택 변경", - "tapToComment": "{{label}}, 탭하여 댓글 달기" + "tapToComment": "{{label}}, 탭하여 댓글 달기", + "truncationBanner": "변경된 파일 {{total}}개 중 처음 {{limit}}개를 표시 중 — GitHub API 제한" }, "linkPasteClipboardEmpty": "클립보드가 비어 있습니다", "linkPasteNotAPullRequest": "GitHub 풀 리퀘스트 링크가 아닙니다" diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index 2d209dc657..4e0d59bd6f 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "ເລືອກ {{label}}, ແຕະເພື່ອປ່ຽນການເລືອກ", - "tapToComment": "{{label}}, ແຕະເພື່ອໃສ່ຄຳເຫັນ" + "tapToComment": "{{label}}, ແຕະເພື່ອໃສ່ຄຳເຫັນ", + "truncationBanner": "ກຳລັງສະແດງ {{limit}} ທຳອິດຈາກ {{total}} ໄຟລ໌ທີ່ປ່ຽນແປງ — ຂີດຈຳກັດ GitHub API" }, "linkPasteClipboardEmpty": "ຄລິບບອດວ່າງເປົ່າ", "linkPasteNotAPullRequest": "ບໍ່ແມ່ນລິ້ງ pull request ຂອງ GitHub" @@ -2145,7 +2146,10 @@ "title": "ເລືອກຮູບແບບ", "searchPlaceholder": "ຄົ້ນຫາຮູບແບບ...", "noModels": "ບໍ່ມີຮູບແບບ", - "noModelsDescription": "ບໍ່ມີຮູບແບບໃຫ້ເລືອກ." + "noModelsDescription": "ບໍ່ມີຮູບແບບໃຫ້ເລືອກ.", + "favorites": "ລາຍການທີ່ມັກ", + "recommended": "ແນະນຳ", + "allModels": "ທຸກໂມເດວ" }, "modelSelector": { "model": "ຮູບແບບ", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "ອອກຈາກລະບົບເຊດຊັນນີ້?", "signOutThisSessionMessage": "{{device}} ຈະຖືກອອກຈາກລະບົບ. ມັນສາມາດຮັກສາການເຂົ້າເຖິງ API ໄດ້ສູງສຸດຫນຶ່ງຊົ່ວໂມງ.", "signOutConfirm": "ອອກຈາກລະບົບ", - "signOutMessage": "ທ່ານຈະຕ້ອງເຂົ້າສູ່ລະບົບອີກເພື່ອເຂົ້າເຖິງ workspace ຂອງທ່ານ." + "signOutMessage": "ທ່ານຈະຕ້ອງເຂົ້າສູ່ລະບົບອີກເພື່ອເຂົ້າເຖິງ workspace ຂອງທ່ານ.", + "webBrowser": "ຕົວທ່ອງເວັບ" }, "forceUpdate": { "couldNotOpenStore": "ບໍ່ສາມາດເປີດ app store.", diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index 94f23e9c34..5f3e000dd4 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -533,7 +533,8 @@ }, "diff": { "selectedTapToChange": "Pasirinkta {{label}}, bakstelėkite, kad pakeistumėte pasirinkimą", - "tapToComment": "{{label}}, bakstelėkite, kad pakomentuotumėte" + "tapToComment": "{{label}}, bakstelėkite, kad pakomentuotumėte", + "truncationBanner": "Rodoma pirmi {{limit}} iš {{total}} pakeistų failų — „GitHub“ API limitas" }, "linkPasteClipboardEmpty": "Iškarpinė tuščia", "linkPasteNotAPullRequest": "Tai ne „GitHub“ pull request nuoroda" @@ -2179,7 +2180,10 @@ "title": "Pasirinkti modelį", "searchPlaceholder": "Ieškoti modelių...", "noModels": "Nėra prieinamų modelių", - "noModelsDescription": "Nėra prieinamų modelių, kuriuos būtų galima pasirinkti." + "noModelsDescription": "Nėra prieinamų modelių, kuriuos būtų galima pasirinkti.", + "favorites": "Mėgstamiausi", + "recommended": "Rekomenduojami", + "allModels": "Visi modeliai" }, "modelSelector": { "model": "Modelis", @@ -2350,7 +2354,8 @@ "signOutThisSessionTitle": "Atsijungti šią sesiją?", "signOutThisSessionMessage": "{{device}} bus atsijungtas. Jis gali išlaikyti API prieigą iki valandos.", "signOutConfirm": "Atsijungti", - "signOutMessage": "Norėdami pasiekti savo darbo sritį, turėsite prisijungti iš naujo." + "signOutMessage": "Norėdami pasiekti savo darbo sritį, turėsite prisijungti iš naujo.", + "webBrowser": "Žiniatinklio naršyklė" }, "forceUpdate": { "couldNotOpenStore": "Nepavyko atidaryti programų parduotuvės.", diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 590f0b4f12..cd9be33160 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -526,7 +526,8 @@ }, "diff": { "selectedTapToChange": "Atlasīts {{label}}, pieskarieties, lai mainītu atlasi", - "tapToComment": "{{label}}, pieskarieties, lai komentētu" + "tapToComment": "{{label}}, pieskarieties, lai komentētu", + "truncationBanner": "Tiek rādīti pirmie {{limit}} no {{total}} mainītajiem failiem — GitHub API ierobežojums" }, "linkPasteClipboardEmpty": "Starpliktuve ir tukša", "linkPasteNotAPullRequest": "Nav GitHub pieprasījuma saite" @@ -2162,7 +2163,10 @@ "title": "Izvēlēties modeli", "searchPlaceholder": "Meklēt modeļus...", "noModels": "Nav pieejamu modeļu", - "noModelsDescription": "Nav pieejamu modeļu, ko izvēlēties." + "noModelsDescription": "Nav pieejamu modeļu, ko izvēlēties.", + "favorites": "Izlase", + "recommended": "Ieteicamais", + "allModels": "Visi modeļi" }, "modelSelector": { "model": "Modelis", @@ -2325,6 +2329,7 @@ "thisDevice": "Šī ierīce", "title": "Ierīču sesijas", "viewProfile": "Skatīt profilu", + "webBrowser": "Tīmekļa pārlūks", "signOutThisDevice": "Izrakstīties no šīs ierīces", "signOutThisSession": "Izrakstīties no šīs sesijas", "sessionSignedOut": "Sesija izrakstīta.", diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index cba7cf230a..33101734d6 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Voafidy {{label}}, tsindrio mba hanova ny fisafidianana", - "tapToComment": "{{label}}, tsindrio mba hanehoana hevitra" + "tapToComment": "{{label}}, tsindrio mba hanehoana hevitra", + "truncationBanner": "Mampiseho ny {{limit}} voalohany amin'ny {{total}} rakitra novaina — fetran'ny API GitHub" }, "linkPasteClipboardEmpty": "Foana ny tahiry", "linkPasteNotAPullRequest": "Tsy rohy pull request amin'ny GitHub io" @@ -2145,7 +2146,10 @@ "title": "Fidio modely", "searchPlaceholder": "Fikarohana modely...", "noModels": "Tsy misy modely azo", - "noModelsDescription": "Tsy misy modely azo fidina." + "noModelsDescription": "Tsy misy modely azo fidina.", + "favorites": "Ankafizina", + "recommended": "Atolotra", + "allModels": "Modely rehetra" }, "modelSelector": { "model": "Modely", @@ -2307,6 +2311,7 @@ "thisDevice": "Ity fitaovana ity", "title": "Session fitaovana", "viewProfile": "Jereo ny profil", + "webBrowser": "Navigateur tranonkala", "signOutThisDevice": "Hivoaka amin'ity fitaovana ity", "signOutThisSession": "Hivoaka amin'ity session ity", "sessionSignedOut": "Nivoaka ny session.", diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index 146cbbb0b3..55cbcecc01 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Kua kōwhiria {{label}}, pāwhiria kia huri i te kōwhiringa", - "tapToComment": "{{label}}, pāwhiria kia kōrero" + "tapToComment": "{{label}}, pāwhiria kia kōrero", + "truncationBanner": "E whakaatu ana i ngā {{limit}} tuatahi o ngā {{total}} kōnae kua hurihia — te rohe API a GitHub" }, "linkPasteClipboardEmpty": "Kei te putua tonu te papapātuhi", "linkPasteNotAPullRequest": "Ehara tēnei i te hononga GitHub pull request" @@ -2145,7 +2146,10 @@ "title": "Kōwhiri te tauira", "searchPlaceholder": "Rapu tauira...", "noModels": "Kāore he tauira e wātea ana", - "noModelsDescription": "Kāore he tauira e wātea ana hei kōwhiri." + "noModelsDescription": "Kāore he tauira e wātea ana hei kōwhiri.", + "favorites": "Ngā makau", + "recommended": "E tūtohutia ana", + "allModels": "Ngā tauira katoa" }, "modelSelector": { "model": "Tauira", @@ -2307,6 +2311,7 @@ "thisDevice": "Tēnei pūrere", "title": "Ngā wātū pūrere", "viewProfile": "Tirohia te kōtaha", + "webBrowser": "Pūtirotiro tukutuku", "signOutThisDevice": "Whakaputa atu i tēnei pūrere", "signOutThisSession": "Whakaputa atu i tēnei wātū", "sessionSignedOut": "Kua whakaputa te wātū.", diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index 29f94f97a3..34c2c332fd 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Избрано {{label}}, допрете за да го промените изборот", - "tapToComment": "{{label}}, допрете за да коментирате" + "tapToComment": "{{label}}, допрете за да коментирате", + "truncationBanner": "Прикажува првите {{limit}} од {{total}} изменети датотеки — GitHub API лимит" }, "linkPasteClipboardEmpty": "Таблата со клипборд е празна", "linkPasteNotAPullRequest": "Ова не е линк до GitHub pull request" @@ -2145,7 +2146,10 @@ "title": "Изберете модел", "searchPlaceholder": "Пребарувај модели...", "noModels": "Нема достапни модели", - "noModelsDescription": "Нема достапни модели за избор." + "noModelsDescription": "Нема достапни модели за избор.", + "favorites": "Омилени", + "recommended": "Препорачано", + "allModels": "Сите модели" }, "modelSelector": { "model": "Модел", @@ -2307,6 +2311,7 @@ "thisDevice": "Овој уред", "title": "Сесии на уредот", "viewProfile": "Прикажи профил", + "webBrowser": "Веб прелистувач", "signOutThisDevice": "Одјави го овој уред", "signOutThisSession": "Одјави ја оваа сесија", "sessionSignedOut": "Сесијата е одјавена.", diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index b0a6dbd4ed..85e19aa1fa 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} തിരഞ്ഞെടുത്തു, തിരഞ്ഞെടുപ്പ് മാറ്റാൻ ടാപ്പ് ചെയ്യുക", - "tapToComment": "{{label}}, അഭിപ്രായമിടാൻ ടാപ്പ് ചെയ്യുക" + "tapToComment": "{{label}}, അഭിപ്രായമിടാൻ ടാപ്പ് ചെയ്യുക", + "truncationBanner": "{{total}} മാറ്റപ്പെട്ട ഫയലുകളിൽ ആദ്യത്തെ {{limit}} കാണിക്കുന്നു — GitHub API പരിധി" }, "linkPasteClipboardEmpty": "ക്ലിപ്പ്ബോർഡ് ശൂന്യമാണ്", "linkPasteNotAPullRequest": "ഇത് ഒരു GitHub പുൾ റിക്വസ്റ്റ് ലിങ്ക് അല്ല" @@ -2145,7 +2146,10 @@ "title": "മോഡൽ തിരഞ്ഞെടുക്കുക", "searchPlaceholder": "മോഡലുകൾ തിരയുക...", "noModels": "മോഡലുകൾ ലഭ്യമല്ല", - "noModelsDescription": "തിരഞ്ഞെടുക്കാൻ മോഡലുകൾ ലഭ്യമല്ല." + "noModelsDescription": "തിരഞ്ഞെടുക്കാൻ മോഡലുകൾ ലഭ്യമല്ല.", + "favorites": "പ്രിയപ്പെട്ടവ", + "recommended": "ശുപാർശ ചെയ്യുന്നത്", + "allModels": "എല്ലാ മോഡലുകൾ" }, "modelSelector": { "model": "മോഡൽ", @@ -2307,6 +2311,7 @@ "thisDevice": "ഈ ഉപകരണം", "title": "ഉപകരണ സെഷനുകൾ", "viewProfile": "പ്രൊഫൈൽ കാണുക", + "webBrowser": "വെബ് ബ്രൗസർ", "signOutThisDevice": "ഈ ഉപകരണത്തിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക", "signOutThisSession": "ഈ സെഷനിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യുക", "sessionSignedOut": "സെഷൻ സൈൻ ഔട്ട് ചെയ്തു.", diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index 5c4799a0f8..47ee187c92 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Сонгосон {{label}}, сонголтыг өөрчлөхийн тулд товшино уу", - "tapToComment": "{{label}}, сэтгэгдэл бичихийн тулд товшино уу" + "tapToComment": "{{label}}, сэтгэгдэл бичихийн тулд товшино уу", + "truncationBanner": "Өөрчлөгдсөн {{total}} файлаас эхний {{limit}}-ыг харуулж байна — GitHub API хязгаар" }, "linkPasteClipboardEmpty": "Хуулбар самбар хоосон байна", "linkPasteNotAPullRequest": "Энэ нь GitHub pull request холбоос биш" @@ -2145,7 +2146,10 @@ "title": "Загвар сонгох", "searchPlaceholder": "Загвар хайх...", "noModels": "Загвар байхгүй", - "noModelsDescription": "Сонгох боломжтой загвар алга." + "noModelsDescription": "Сонгох боломжтой загвар алга.", + "favorites": "Дуртай", + "recommended": "Санал болгосон", + "allModels": "Бүх загварууд" }, "modelSelector": { "model": "Загвар", @@ -2307,6 +2311,7 @@ "thisDevice": "Энэ төхөөрөмж", "title": "Төхөөрөмжийн сессий", "viewProfile": "Профайл үзэх", + "webBrowser": "Вэб хөтөч", "signOutThisDevice": "Энэ төхөөрөмжөөс гарах", "signOutThisSession": "Энэ сессийг гарах", "sessionSignedOut": "Сессий гараад дууссан.", diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index beb4aaff1f..d1d861fc1f 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} निवडले, निवड बदलण्यासाठी टॅप करा", - "tapToComment": "{{label}}, टिप्पणी करण्यासाठी टॅप करा" + "tapToComment": "{{label}}, टिप्पणी करण्यासाठी टॅप करा", + "truncationBanner": "{{total}} बदललेल्या फाइल्सपैकी पहिल्या {{limit}} दाखवत आहे — GitHub API मर्यादा" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड रिकामा आहे", "linkPasteNotAPullRequest": "ही GitHub पुल रिक्वेस्ट लिंक नाही" @@ -2145,7 +2146,10 @@ "title": "मॉडेल निवडा", "searchPlaceholder": "मॉडेल शोधा...", "noModels": "कोणतेही मॉडेल उपलब्ध नाही", - "noModelsDescription": "निवडण्यासाठी कोणतेही मॉडेल उपलब्ध नाही." + "noModelsDescription": "निवडण्यासाठी कोणतेही मॉडेल उपलब्ध नाही.", + "favorites": "आवडी", + "recommended": "शिफारस केलेले", + "allModels": "सर्व मॉडेल्स" }, "modelSelector": { "model": "मॉडेल", @@ -2307,6 +2311,7 @@ "thisDevice": "ही डिव्हाइस", "title": "डिव्हाइस सत्रे", "viewProfile": "प्रोफाइल पहा", + "webBrowser": "वेब ब्राउझर", "signOutThisDevice": "या डिव्हाइसवरून साइन आउट करा", "signOutThisSession": "या सत्रातून साइन आउट करा", "sessionSignedOut": "सत्र साइन आउट झाले.", diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index 9135ae025d..9c3c0745ce 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Memilih {{label}}, ketik untuk menukar pilihan", - "tapToComment": "{{label}}, ketik untuk mengomen" + "tapToComment": "{{label}}, ketik untuk mengomen", + "truncationBanner": "Menunjukkan {{limit}} fail pertama daripada {{total}} fail yang diubah — had API GitHub" }, "linkPasteClipboardEmpty": "Papan keratan kosong", "linkPasteNotAPullRequest": "Bukan pautan permintaan tarik GitHub" @@ -2145,7 +2146,10 @@ "title": "Pilih model", "searchPlaceholder": "Cari model...", "noModels": "Tiada model tersedia", - "noModelsDescription": "Tiada model tersedia untuk dipilih." + "noModelsDescription": "Tiada model tersedia untuk dipilih.", + "favorites": "Kegemaran", + "recommended": "Disyorkan", + "allModels": "Semua model" }, "modelSelector": { "model": "Model", @@ -2307,6 +2311,7 @@ "thisDevice": "Peranti ini", "title": "Sesi peranti", "viewProfile": "Lihat profil", + "webBrowser": "Penyemak imbas web", "signOutThisDevice": "Log keluar peranti ini", "signOutThisSession": "Log keluar sesi ini", "sessionSignedOut": "Sesi dilog keluar.", diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 576efbbcd7..ed95f3afc9 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -540,7 +540,8 @@ }, "diff": { "selectedTapToChange": "Magħżul {{label}}, mess biex tibdel l-għażla", - "tapToComment": "{{label}}, mess biex tikkummenta" + "tapToComment": "{{label}}, mess biex tikkummenta", + "truncationBanner": "Qed juri l-ewwel {{limit}} minn {{total}} fajls mibdula — il-limitu tal-API ta' GitHub" }, "linkPasteClipboardEmpty": "L-appostru huwa vojt", "linkPasteNotAPullRequest": "Mhux link ta' pull request ta' GitHub" @@ -2196,7 +2197,10 @@ "title": "Agħżel il-mudell", "searchPlaceholder": "Fittex il-mudelli...", "noModels": "L-ebda mudell disponibbli", - "noModelsDescription": "M'hemm l-ebda mudell disponibbli biex tagħżel." + "noModelsDescription": "M'hemm l-ebda mudell disponibbli biex tagħżel.", + "favorites": "Favoriti", + "recommended": "Rrakkomandat", + "allModels": "Il-mudelli kollha" }, "modelSelector": { "model": "Mudell", @@ -2361,6 +2365,7 @@ "thisDevice": "Dan it-tagħmir", "title": "Sessjonijiet tat-tagħmir", "viewProfile": "Ara l-profil", + "webBrowser": "Browser tal-web", "signOutThisDevice": "Oħroġ minn dan it-tagħmir", "signOutThisSession": "Oħroġ minn din is-sessjoni", "sessionSignedOut": "Is-sessjoni ħarġet.", diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index 47a155587a..519a1af7a0 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} ရွေးထားသည်၊ ရွေးချယ်မှုပြောင်းရန် နှိပ်ပါ", - "tapToComment": "{{label}}, မှတ်ချက်ပေးရန် နှိပ်ပါ" + "tapToComment": "{{label}}, မှတ်ချက်ပေးရန် နှိပ်ပါ", + "truncationBanner": "ပြောင်းလဲထားသော ဖိုင် {{total}} ခုအနက် ပထမဆုံး {{limit}} ခုကို ပြသနေသည် — GitHub API ကန့်သတ်ချက်" }, "linkPasteClipboardEmpty": "ကလစ်ဘုတ် ဗလာဖြစ်သည်", "linkPasteNotAPullRequest": "GitHub pull request လင့်ခ် မဟုတ်ပါ" @@ -2145,7 +2146,10 @@ "title": "မော်ဒယ် ရွေးရန်", "searchPlaceholder": "မော်ဒယ်များ ရှာဖွေရန်...", "noModels": "မော်ဒယ်များ မရနိုင်ပါ", - "noModelsDescription": "ရွေးချယ်ရန် မော်ဒယ်များ မရှိပါ။" + "noModelsDescription": "ရွေးချယ်ရန် မော်ဒယ်များ မရှိပါ။", + "favorites": "စိတ်ကြိုက်", + "recommended": "အကြံပြုထား", + "allModels": "မော်ဒယ်များအားလုံး" }, "modelSelector": { "model": "မော်ဒယ်", @@ -2307,6 +2311,7 @@ "thisDevice": "ဤစက်", "title": "စက် session များ", "viewProfile": "profile ကြည့်ရန်", + "webBrowser": "ဝဘ်ဘရောက်ဆာ", "signOutThisDevice": "ဤစက်မှ ထွက်ရန်", "signOutThisSession": "ဤ session မှ ထွက်ရန်", "sessionSignedOut": "session မှ ထွက်သွားပြီးပါပြီ။", diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index 4e39b3b5f7..a53c86bfbd 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Valgte {{label}}, trykk for å endre markeringen", - "tapToComment": "{{label}}, trykk for å kommentere" + "tapToComment": "{{label}}, trykk for å kommentere", + "truncationBanner": "Viser de første {{limit}} av {{total}} endrede filene — GitHub API-grense" }, "linkPasteClipboardEmpty": "Utklippstavlen er tom", "linkPasteNotAPullRequest": "Ikke en GitHub-pull request-lenke" @@ -2145,7 +2146,10 @@ "title": "Velg modell", "searchPlaceholder": "Søk etter modeller...", "noModels": "Ingen modeller tilgjengelige", - "noModelsDescription": "Ingen modeller er tilgjengelige for valg." + "noModelsDescription": "Ingen modeller er tilgjengelige for valg.", + "favorites": "Favoritter", + "recommended": "Anbefalt", + "allModels": "Alle modeller" }, "modelSelector": { "model": "Modell", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Logg ut denne økten?", "signOutThisSessionMessage": "{{device}} vil bli logget ut. Den kan beholde API-tilgang i opptil en time.", "signOutConfirm": "Logg ut", - "signOutMessage": "Du må logge inn igjen for å få tilgang til arbeidsområdet ditt." + "signOutMessage": "Du må logge inn igjen for å få tilgang til arbeidsområdet ditt.", + "webBrowser": "Nettleser" }, "forceUpdate": { "couldNotOpenStore": "Kunne ikke åpne app-butikken.", diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index 60266752ee..4746768384 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} चयन गरियो, चयन परिवर्तन गर्न ट्याप गर्नुहोस्", - "tapToComment": "{{label}}, टिप्पणी गर्न ट्याप गर्नुहोस्" + "tapToComment": "{{label}}, टिप्पणी गर्न ट्याप गर्नुहोस्", + "truncationBanner": "कुल {{total}} परिवर्तन गरिएका फाइलहरूमध्ये पहिलो {{limit}} देखाइँदै — GitHub API सीमा" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड खाली छ", "linkPasteNotAPullRequest": "GitHub पुल रिक्वेस्ट लिंक होइन" @@ -2144,8 +2145,11 @@ "modelPicker": { "title": "मोडेल चयन गर्नुहोस्", "searchPlaceholder": "मोडेल खोज्नुहोस्...", + "allModels": "सबै मोडेलहरू", + "favorites": "मनपर्ने", "noModels": "कुनै मोडेल उपलब्ध छैन", - "noModelsDescription": "चयन गर्न कुनै मोडेल उपलब्ध छैन।" + "noModelsDescription": "चयन गर्न कुनै मोडेल उपलब्ध छैन।", + "recommended": "सिफारिस गरिएको" }, "modelSelector": { "model": "मोडेल", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "यो सत्रबाट साइन आउट गर्ने?", "signOutThisSessionMessage": "{{device}} साइन आउट गरिनेछ। यसले एक घण्टासम्म API पहुँच राख्न सक्छ।", "signOutConfirm": "साइन आउट", - "signOutMessage": "तपाईंको कार्यक्षेत्रमा पहुँच गर्न फेरि साइन इन गर्नुपर्नेछ।" + "signOutMessage": "तपाईंको कार्यक्षेत्रमा पहुँच गर्न फेरि साइन इन गर्नुपर्नेछ।", + "webBrowser": "वेब ब्राउजर" }, "forceUpdate": { "couldNotOpenStore": "एप स्टोर खोल्न सकिएन।", diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index bf6f61a14e..084d2f85ea 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -1765,8 +1765,11 @@ "modelPicker": { "title": "Model selecteren", "searchPlaceholder": "Modellen zoeken...", + "allModels": "Alle modellen", + "favorites": "Favorieten", "noModels": "Geen modellen beschikbaar", - "noModelsDescription": "Er zijn geen modellen beschikbaar om te selecteren." + "noModelsDescription": "Er zijn geen modellen beschikbaar om te selecteren.", + "recommended": "Aanbevolen" }, "modelSelector": { "model": "Model", @@ -1935,7 +1938,8 @@ "signOutThisSessionTitle": "Deze sessie afmelden?", "signOutThisSessionMessage": "{{device}} wordt afgemeld. Het kan nog tot een uur API-toegang behouden.", "signOutConfirm": "Afmelden", - "signOutMessage": "Je moet je opnieuw aanmelden om toegang te krijgen tot je werkruimte." + "signOutMessage": "Je moet je opnieuw aanmelden om toegang te krijgen tot je werkruimte.", + "webBrowser": "Webbrowser" }, "forceUpdate": { "couldNotOpenStore": "De app store kon niet worden geopend.", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "{{label}} geselecteerd, tik om de selectie te wijzigen", - "tapToComment": "{{label}}, tik om te reageren" + "tapToComment": "{{label}}, tik om te reageren", + "truncationBanner": "De eerste {{limit}} van {{total}} gewijzigde bestanden worden getoond — GitHub API-limiet" }, "linkPasteClipboardEmpty": "Klembord is leeg", "linkPasteNotAPullRequest": "Geen GitHub pull-requestlink" diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index e5cf5f8cb7..b559facff1 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} filatame, filannoo jijjiiruuf tuqi", - "tapToComment": "{{label}}, yaada kennuuf tuqi" + "tapToComment": "{{label}}, yaada kennuuf tuqi", + "truncationBanner": "Faayiloota jijjiramaniin walii {{total}} keessaa isaan jalqabaa {{limit}} agarsiifamaa jira — GitHub API daangaa" }, "linkPasteClipboardEmpty": "Kibirri duwwaa dha", "linkPasteNotAPullRequest": "Hidhaa pull request GitHub hin taane" @@ -2144,8 +2145,11 @@ "modelPicker": { "title": "Moodela filadhu", "searchPlaceholder": "Moodeloota barbaadi...", + "allModels": "Modeeloota hundumaa", + "favorites": "Jaallatamoota", "noModels": "Moodela hin jiru", - "noModelsDescription": "Moodela filachuuf argame hin jiru." + "noModelsDescription": "Moodela filachuuf argame hin jiru.", + "recommended": "Gorfame" }, "modelSelector": { "model": "Moodela", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Shumarra kana baasaa?", "signOutThisSessionMessage": "{{device}} ni bahama. Gara sa'aatii tokkoof hirama API eeguu ni danda'a.", "signOutConfirm": "Bahi", - "signOutMessage": "Warshada kee gahuuf ammas seenuu qabda." + "signOutMessage": "Warshada kee gahuuf ammas seenuu qabda.", + "webBrowser": "Braawzarii weebii" }, "forceUpdate": { "couldNotOpenStore": "Suuqa app banuu hin danda'ine.", diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index ab9768c9bf..6e54c6a335 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} ଚୟନ ହେଲା, ଚୟନ ବଦଳାଇବାକୁ ଟାପ୍ କରନ୍ତୁ", - "tapToComment": "{{label}}, ମନ୍ତବ୍ୟ ଦେବାକୁ ଟାପ୍ କରନ୍ତୁ" + "tapToComment": "{{label}}, ମନ୍ତବ୍ୟ ଦେବାକୁ ଟାପ୍ କରନ୍ତୁ", + "truncationBanner": "ମୋଟ {{total}} ମଧ୍ୟରୁ ପ୍ରଥମ {{limit}} ପରିବର୍ତ୍ତିତ ଫାଇଲ ଦେଖାଯାଉଛି — GitHub API ସୀମା" }, "linkPasteClipboardEmpty": "କ୍ଲିପ୍ବୋର୍ଡ ଖାଲି ଅଛି", "linkPasteNotAPullRequest": "ଏହା GitHub ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ଲିଙ୍କ୍ ନୁହେଁ" @@ -2144,8 +2145,11 @@ "modelPicker": { "title": "ମଡେଲ ଚୟନ କରନ୍ତୁ", "searchPlaceholder": "ମଡେଲ ସନ୍ଧାନ କରନ୍ତୁ...", + "allModels": "ସମସ୍ତ ମଡେଲ", + "favorites": "ପସନ୍ଦ", "noModels": "କୌଣସି ମଡେଲ ଉପଲବ୍ଧ ନାହିଁ", - "noModelsDescription": "ଚୟନ କରିବାକୁ କୌଣସି ମଡେଲ ଉପଲବ୍ଧ ନାହିଁ।" + "noModelsDescription": "ଚୟନ କରିବାକୁ କୌଣସି ମଡେଲ ଉପଲବ୍ଧ ନାହିଁ।", + "recommended": "ସୁପାରିଶ କରାଯାଇଛି" }, "modelSelector": { "model": "ମଡେଲ", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "ଏହି ସେସନ୍ ସାଇନ୍ ଆଉଟ୍ କରିବେ?", "signOutThisSessionMessage": "{{device}} ସାଇନ୍ ଆଉଟ୍ ହେବ। ଏହା ଏକ ଘଣ୍ଟା ପର୍ଯ୍ୟନ୍ତ API ଆକ୍ସେସ୍ ରଖିପାରିବ।", "signOutConfirm": "ସାଇନ୍ ଆଉଟ୍", - "signOutMessage": "ଆପଣଙ୍କ ୱର୍କସ୍ପେସ୍ ଆକ୍ସେସ୍ କରିବାକୁ ଆପଣଙ୍କୁ ପୁନର୍ବାର ସାଇନ୍ ଇନ୍ କରିବାକୁ ପଡ଼ିବ।" + "signOutMessage": "ଆପଣଙ୍କ ୱର୍କସ୍ପେସ୍ ଆକ୍ସେସ୍ କରିବାକୁ ଆପଣଙ୍କୁ ପୁନର୍ବାର ସାଇନ୍ ଇନ୍ କରିବାକୁ ପଡ଼ିବ।", + "webBrowser": "ୱେବ ବ୍ରାଉଜର" }, "forceUpdate": { "couldNotOpenStore": "ଆପ୍ ଷ୍ଟୋର ଖୋଲାଯାଇପାରିଲା ନାହିଁ।", diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 6a2e7a3c8f..8b01025e2a 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} ਚੁਣਿਆ ਗਿਆ, ਚੋਣ ਬਦਲਣ ਲਈ ਟੈਪ ਕਰੋ", - "tapToComment": "{{label}}, ਟਿੱਪਣੀ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ" + "tapToComment": "{{label}}, ਟਿੱਪਣੀ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ", + "truncationBanner": "ਕੁੱਲ {{total}} ਬਦਲੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚੋਂ ਪਹਿਲੇ {{limit}} ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ — GitHub API ਸੀਮਾ" }, "linkPasteClipboardEmpty": "ਕਲਿੱਪਬੋਰਡ ਖਾਲੀ ਹੈ", "linkPasteNotAPullRequest": "ਇਹ GitHub ਪੁੱਲ ਰਿਕਸਟ ਲਿੰਕ ਨਹੀਂ ਹੈ" @@ -2144,8 +2145,11 @@ "modelPicker": { "title": "ਮਾਡਲ ਚੁਣੋ", "searchPlaceholder": "ਮਾਡਲ ਖੋਜੋ...", + "allModels": "ਸਾਰੇ ਮਾਡਲ", + "favorites": "ਪਸੰਦੀਦਾ", "noModels": "ਕੋਈ ਮਾਡਲ ਉਪਲਬਧ ਨਹੀਂ", - "noModelsDescription": "ਚੁਣਨ ਲਈ ਕੋਈ ਮਾਡਲ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।" + "noModelsDescription": "ਚੁਣਨ ਲਈ ਕੋਈ ਮਾਡਲ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।", + "recommended": "ਸਿਫਾਰਸ਼ੀ" }, "modelSelector": { "model": "ਮਾਡਲ", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "ਇਸ ਸੈਸ਼ਨ ਤੋਂ ਸਾਈਨ ਆਉਟ ਕਰੋ?", "signOutThisSessionMessage": "{{device}} ਸਾਈਨ ਆਉਟ ਕੀਤਾ ਜਾਵੇਗਾ। ਇਹ ਇੱਕ ਘੰਟੇ ਤੱਕ API ਪਹੁੰਚ ਰੱਖ ਸਕਦਾ ਹੈ।", "signOutConfirm": "ਸਾਈਨ ਆਉਟ ਕਰੋ", - "signOutMessage": "ਆਪਣੇ ਵਰਕਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਦੁਬਾਰਾ ਸਾਈਨ ਇਨ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।" + "signOutMessage": "ਆਪਣੇ ਵਰਕਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਤੁਹਾਨੂੰ ਦੁਬਾਰਾ ਸਾਈਨ ਇਨ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।", + "webBrowser": "ਵੈੱਬ ਬ੍ਰਾਊਜ਼ਰ" }, "forceUpdate": { "couldNotOpenStore": "ਐਪ ਸਟੋਰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।", diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index c8acefeec2..d63383c798 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -1785,8 +1785,11 @@ "modelPicker": { "title": "Wybierz model", "searchPlaceholder": "Szukaj modeli...", + "allModels": "Wszystkie modele", + "favorites": "Ulubione", "noModels": "Brak dostępnych modeli", - "noModelsDescription": "Brak modeli do wyboru." + "noModelsDescription": "Brak modeli do wyboru.", + "recommended": "Polecane" }, "modelSelector": { "model": "Model", @@ -1957,7 +1960,8 @@ "signOutThisSessionTitle": "Wylogować tę sesję?", "signOutThisSessionMessage": "{{device}} zostanie wylogowane. Może zachować dostęp do API przez maksymalnie godzinę.", "signOutConfirm": "Wyloguj się", - "signOutMessage": "Aby uzyskać dostęp do swojego obszaru roboczego, musisz zalogować się ponownie." + "signOutMessage": "Aby uzyskać dostęp do swojego obszaru roboczego, musisz zalogować się ponownie.", + "webBrowser": "Przeglądarka internetowa" }, "forceUpdate": { "couldNotOpenStore": "Nie można otworzyć sklepu z aplikacjami.", @@ -2582,7 +2586,8 @@ }, "diff": { "selectedTapToChange": "Wybrano {{label}}, dotknij, aby zmienić wybór", - "tapToComment": "{{label}}, dotknij, aby skomentować" + "tapToComment": "{{label}}, dotknij, aby skomentować", + "truncationBanner": "Wyświetlanie pierwszych {{limit}} z {{total}} zmienionych plików — limit API GitHub" }, "linkPasteClipboardEmpty": "Schowek jest pusty", "linkPasteNotAPullRequest": "To nie jest link do pull requesta na GitHub" diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index 2132ab6089..b981cd6f68 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} غوره شوی، د انتخاب بدلولو لپاره ټک وکړئ", - "tapToComment": "{{label}}، د تبصرې لپاره ټک وکړئ" + "tapToComment": "{{label}}، د تبصرې لپاره ټک وکړئ", + "truncationBanner": "د {{total}} بدل شویو فایلونو څخه لومړني {{limit}} ښودل کیږي — د GitHub API حد" }, "linkPasteClipboardEmpty": "کلیپبورډ خالي دی", "linkPasteNotAPullRequest": "دا د GitHub pull request لینک نه دی" @@ -2144,8 +2145,11 @@ "modelPicker": { "title": "ماډل وټاکئ", "searchPlaceholder": "ماډلونه ولټوئ...", + "allModels": "ټول ماډلونه", + "favorites": "غوره شوي", "noModels": "هیڅ ماډل شتون نلري", - "noModelsDescription": "د ټاکنې لپاره هیڅ ماډل شتون نلري." + "noModelsDescription": "د ټاکنې لپاره هیڅ ماډل شتون نلري.", + "recommended": "وړاندیز شوی" }, "modelSelector": { "model": "ماډل", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "له دې غونډې ووځئ؟", "signOutThisSessionMessage": "{{device}} به ووځي. دا کولای شي تر یو ساعت پورې د API لاسرسی وساتي.", "signOutConfirm": "وتل", - "signOutMessage": "د خپل کاري ځای لاسرسي لپاره به بیا ننوتلو ته اړتیا ولرئ." + "signOutMessage": "د خپل کاري ځای لاسرسي لپاره به بیا ننوتلو ته اړتیا ولرئ.", + "webBrowser": "ویب براوزر" }, "forceUpdate": { "couldNotOpenStore": "د ایپ پلورنځی نه شو خلاصېدلای.", diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index 9561bc4e81..db70bb9b2e 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -1761,8 +1761,11 @@ "modelPicker": { "title": "Selecionar modelo", "searchPlaceholder": "Pesquisar modelos...", + "allModels": "Todos os modelos", + "favorites": "Favoritos", "noModels": "Nenhum modelo disponível", - "noModelsDescription": "Nenhum modelo está disponível para seleção." + "noModelsDescription": "Nenhum modelo está disponível para seleção.", + "recommended": "Recomendado" }, "modelSelector": { "model": "Modelo", @@ -1946,7 +1949,8 @@ "signOutThisSessionTitle": "Sair desta sessão?", "signOutThisSessionMessage": "{{device}} será desconectado. Ele pode manter o acesso à API por até uma hora.", "signOutConfirm": "Sair", - "signOutMessage": "Você precisará entrar novamente para acessar seu workspace." + "signOutMessage": "Você precisará entrar novamente para acessar seu workspace.", + "webBrowser": "Navegador web" }, "forceUpdate": { "couldNotOpenStore": "Não foi possível abrir a loja de aplicativos.", @@ -2564,7 +2568,8 @@ }, "diff": { "selectedTapToChange": "{{label}} selecionado, toque para alterar a seleção", - "tapToComment": "{{label}}, toque para comentar" + "tapToComment": "{{label}}, toque para comentar", + "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} arquivos alterados — limite da API do GitHub" }, "linkPasteClipboardEmpty": "A área de transferência está vazia", "linkPasteNotAPullRequest": "Não é um link de pull request do GitHub" diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index 0556c8f5fb..28906346d5 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -526,7 +526,8 @@ }, "diff": { "selectedTapToChange": "{{label}} selecionado, toque para mudar a seleção", - "tapToComment": "{{label}}, toque para comentar" + "tapToComment": "{{label}}, toque para comentar", + "truncationBanner": "A mostrar os primeiros {{limit}} de {{total}} ficheiros alterados — limite da API do GitHub" }, "linkPasteClipboardEmpty": "A área de transferência está vazia", "linkPasteNotAPullRequest": "Não é uma ligação de pull request do GitHub" @@ -2161,8 +2162,11 @@ "modelPicker": { "title": "Selecionar modelo", "searchPlaceholder": "Procurar modelos...", + "allModels": "Todos os modelos", + "favorites": "Favoritos", "noModels": "Sem modelos disponíveis", - "noModelsDescription": "Não há modelos disponíveis para selecionar." + "noModelsDescription": "Não há modelos disponíveis para selecionar.", + "recommended": "Recomendado" }, "modelSelector": { "model": "Modelo", @@ -2332,7 +2336,8 @@ "signOutThisSessionTitle": "Terminar sessão nesta sessão?", "signOutThisSessionMessage": "{{device}} será desconectado. Pode manter o acesso à API por até uma hora.", "signOutConfirm": "Terminar sessão", - "signOutMessage": "Precisará de iniciar sessão novamente para aceder ao seu espaço de trabalho." + "signOutMessage": "Precisará de iniciar sessão novamente para aceder ao seu espaço de trabalho.", + "webBrowser": "Navegador web" }, "forceUpdate": { "couldNotOpenStore": "Não foi possível abrir a loja de aplicações.", diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index 109b78f735..db00d52d8e 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -526,7 +526,8 @@ }, "diff": { "selectedTapToChange": "Selectat {{label}}, atinge pentru a schimba selecția", - "tapToComment": "{{label}}, atinge pentru a comenta" + "tapToComment": "{{label}}, atinge pentru a comenta", + "truncationBanner": "Se afișează primele {{limit}} din {{total}} fișiere modificate — limita API GitHub" }, "linkPasteClipboardEmpty": "Clipboard-ul este gol", "linkPasteNotAPullRequest": "Nu este un link de pull request GitHub" @@ -2161,8 +2162,11 @@ "modelPicker": { "title": "Selectează modelul", "searchPlaceholder": "Caută modele...", + "allModels": "Toate modelele", + "favorites": "Favorite", "noModels": "Niciun model disponibil", - "noModelsDescription": "Nu există modele disponibile de selectat." + "noModelsDescription": "Nu există modele disponibile de selectat.", + "recommended": "Recomandat" }, "modelSelector": { "model": "Model", @@ -2332,7 +2336,8 @@ "signOutThisSessionTitle": "Deconectezi această sesiune?", "signOutThisSessionMessage": "{{device}} va fi deconectat. Poate păstra acces API până la o oră.", "signOutConfirm": "Deconectare", - "signOutMessage": "Va trebui să te autentifici din nou pentru a accesa spațiul de lucru." + "signOutMessage": "Va trebui să te autentifici din nou pentru a accesa spațiul de lucru.", + "webBrowser": "Browser web" }, "forceUpdate": { "couldNotOpenStore": "Magazinul de aplicații nu a putut fi deschis.", diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 16dfddc6ee..3f94d6dcce 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -1785,8 +1785,11 @@ "modelPicker": { "title": "Выбрать модель", "searchPlaceholder": "Поиск моделей...", + "allModels": "Все модели", + "favorites": "Избранное", "noModels": "Нет доступных моделей", - "noModelsDescription": "Нет моделей, доступных для выбора." + "noModelsDescription": "Нет моделей, доступных для выбора.", + "recommended": "Рекомендуемые" }, "modelSelector": { "model": "Модель", @@ -1957,7 +1960,8 @@ "signOutThisSessionTitle": "Выйти из этого сеанса?", "signOutThisSessionMessage": "{{device}} будет выведено из системы. Оно может сохранять доступ к API до одного часа.", "signOutConfirm": "Выйти", - "signOutMessage": "Вам нужно будет войти снова, чтобы получить доступ к рабочему пространству." + "signOutMessage": "Вам нужно будет войти снова, чтобы получить доступ к рабочему пространству.", + "webBrowser": "Веб-браузер" }, "forceUpdate": { "couldNotOpenStore": "Не удалось открыть магазин приложений.", @@ -2582,7 +2586,8 @@ }, "diff": { "selectedTapToChange": "Выбрано {{label}}, нажмите, чтобы изменить выбор", - "tapToComment": "{{label}}, нажмите, чтобы оставить комментарий" + "tapToComment": "{{label}}, нажмите, чтобы оставить комментарий", + "truncationBanner": "Показаны первые {{limit}} из {{total}} изменённых файлов — лимит API GitHub" }, "linkPasteClipboardEmpty": "Буфер обмена пуст", "linkPasteNotAPullRequest": "Это не ссылка на pull request GitHub" diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index 8810cfeb5a..7fb613fcb2 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} තේරී ඇත, තේරීම වෙනස් කිරීමට තට්ටු කරන්න", - "tapToComment": "{{label}}, අදහස් දැක්වීමට තට්ටු කරන්න" + "tapToComment": "{{label}}, අදහස් දැක්වීමට තට්ටු කරන්න", + "truncationBanner": "වෙනස් කළ ගොනු {{total}} අතරින් පළමු {{limit}} පෙන්වයි — GitHub API සීමාව" }, "linkPasteClipboardEmpty": "පසුරු පුවරුව හිස් ය", "linkPasteNotAPullRequest": "GitHub pull request සබැඳියක් නොවේ" @@ -2145,7 +2146,10 @@ "title": "මාදිලිය තෝරන්න", "searchPlaceholder": "මාදිලි සොයන්න...", "noModels": "මාදිලි නොමැත", - "noModelsDescription": "තේරීමට මාදිලි නොමැත." + "noModelsDescription": "තේරීමට මාදිලි නොමැත.", + "favorites": "ප්‍රියතම", + "recommended": "නිර්දේශිත", + "allModels": "සියලුම ආකෘති" }, "modelSelector": { "model": "මාදිලිය", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "මෙම සැසියෙන් පිටවන්නද?", "signOutThisSessionMessage": "{{device}} පිටවනු ඇත. එයට පැයක් දක්වා API ප්‍රවේශය පැවතිය හැක.", "signOutConfirm": "පිටවීම", - "signOutMessage": "ඔබගේ වැඩබිමට ප්‍රවේශ වීමට ඔබට නැවත පුරනය වීමට සිදුවේ." + "signOutMessage": "ඔබගේ වැඩබිමට ප්‍රවේශ වීමට ඔබට නැවත පුරනය වීමට සිදුවේ.", + "webBrowser": "වෙබ් බ්රවුසරය" }, "forceUpdate": { "couldNotOpenStore": "යෙදුම් වෙළඳසැල විවෘත කළ නොහැකි විය.", diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index d68fa64c9c..ae0da01953 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -533,7 +533,8 @@ }, "diff": { "selectedTapToChange": "Vybrané {{label}}, klepnutím zmeníte výber", - "tapToComment": "{{label}}, klepnutím komentujete" + "tapToComment": "{{label}}, klepnutím komentujete", + "truncationBanner": "Zobrazuje sa prvých {{limit}} z {{total}} zmenených súborov — limit GitHub API" }, "linkPasteClipboardEmpty": "Schránka je prázdna", "linkPasteNotAPullRequest": "Nie je to odkaz na GitHub pull request" @@ -2179,7 +2180,10 @@ "title": "Vybrať model", "searchPlaceholder": "Hľadať modely...", "noModels": "Nie sú k dispozícii žiadne modely", - "noModelsDescription": "Nie sú k dispozícii žiadne modely na výber." + "noModelsDescription": "Nie sú k dispozícii žiadne modely na výber.", + "favorites": "Obľúbené", + "recommended": "Odporúčané", + "allModels": "Všetky modely" }, "modelSelector": { "model": "Model", @@ -2350,7 +2354,8 @@ "signOutThisSessionTitle": "Odhlásiť túto reláciu?", "signOutThisSessionMessage": "{{device}} bude odhlásený. Môže si ponechať prístup k API až hodinu.", "signOutConfirm": "Odhlásiť", - "signOutMessage": "Ak chcete pristupovať k svojmu pracovnému priestoru, budete sa musieť znova prihlásiť." + "signOutMessage": "Ak chcete pristupovať k svojmu pracovnému priestoru, budete sa musieť znova prihlásiť.", + "webBrowser": "Webový prehliadač" }, "forceUpdate": { "couldNotOpenStore": "Obchod s aplikáciami sa nepodarilo otvoriť.", diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index 1a8e0264e2..7a84456282 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -533,7 +533,8 @@ }, "diff": { "selectedTapToChange": "Izbrano {{label}}, tapnite za spremembo izbora", - "tapToComment": "{{label}}, tapnite za komentar" + "tapToComment": "{{label}}, tapnite za komentar", + "truncationBanner": "Prikaz prvih {{limit}} od {{total}} spremenjenih datotek — omejitev API GitHub" }, "linkPasteClipboardEmpty": "Odložišče je prazno", "linkPasteNotAPullRequest": "To ni povezava do pull requesta na GitHubu" @@ -2179,7 +2180,10 @@ "title": "Izberi model", "searchPlaceholder": "Išči modele...", "noModels": "Ni na voljo modelov", - "noModelsDescription": "Ni modelov, ki bi jih bilo mogoče izbrati." + "noModelsDescription": "Ni modelov, ki bi jih bilo mogoče izbrati.", + "favorites": "Priljubljeni", + "recommended": "Priporočeno", + "allModels": "Vsi modeli" }, "modelSelector": { "model": "Model", @@ -2350,7 +2354,8 @@ "signOutThisSessionTitle": "Odjavi to sejo?", "signOutThisSessionMessage": "{{device}} bo odjavljen. Dostop do API lahko ohrani do ene ure.", "signOutConfirm": "Odjava", - "signOutMessage": "Za dostop do svojega delovnega prostora se boš moral znova prijaviti." + "signOutMessage": "Za dostop do svojega delovnega prostora se boš moral znova prijaviti.", + "webBrowser": "Spletni brskalnik" }, "forceUpdate": { "couldNotOpenStore": "Trgovine z aplikacijami ni bilo mogoče odpreti.", diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index 8213c33cfd..51782e3525 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Waa la doortay {{label}}, taabo si aad u beddesho xulista", - "tapToComment": "{{label}}, taabo si aad faallo u dajiso" + "tapToComment": "{{label}}, taabo si aad faallo u dajiso", + "truncationBanner": "Waxaa la muujinayaa {{limit}}-ka ugu horreeya ee {{total}} fayl oo la beddelay — xadka API-ga GitHub" }, "linkPasteClipboardEmpty": "Qalabka koobigu waa madhan", "linkPasteNotAPullRequest": "Kuma aha xiriiriyaha codsiga jiidista GitHub" @@ -2145,7 +2146,10 @@ "title": "Xulo model", "searchPlaceholder": "Raadi models...", "noModels": "Ma jiro models", - "noModelsDescription": "Ma jiro models aad dooran karto." + "noModelsDescription": "Ma jiro models aad dooran karto.", + "favorites": "Kuwa la jecel yahay", + "recommended": "Kuwa la soo jeediyo", + "allModels": "Dhammaan moodoelada" }, "modelSelector": { "model": "Model", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Saxiix bax kalfadhiyahan?", "signOutThisSessionMessage": "{{device}} waa la saxiixi doonaa bax. Wuxuu sii hayn karaa gelitaanka API ilaa saacad.", "signOutConfirm": "Saxiix bax", - "signOutMessage": "Waxaad u baahan doontaa inaad mar kale saxiixato si aad u gasho meeshaada shaqada." + "signOutMessage": "Waxaad u baahan doontaa inaad mar kale saxiixato si aad u gasho meeshaada shaqada.", + "webBrowser": "Browser-ka webka" }, "forceUpdate": { "couldNotOpenStore": "Dukaanka app-ka lama furi karin.", diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 23a5285585..a69352ac20 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "E përzgjedhur {{label}}, prek për të ndryshuar përzgjedhjen", - "tapToComment": "{{label}}, prek për të komentuar" + "tapToComment": "{{label}}, prek për të komentuar", + "truncationBanner": "Duke shfaqur {{limit}}-in e parë nga {{total}} skedarë të ndryshuar — kufiri i API-së së GitHub" }, "linkPasteClipboardEmpty": "Kujtesa është bosh", "linkPasteNotAPullRequest": "Nuk është një lidhje e pull request në GitHub" @@ -2145,7 +2146,10 @@ "title": "Zgjidh modelin", "searchPlaceholder": "Kërko modele...", "noModels": "Nuk ka modele të disponueshme", - "noModelsDescription": "Nuk ka modele të disponueshme për të zgjedhur." + "noModelsDescription": "Nuk ka modele të disponueshme për të zgjedhur.", + "favorites": "Të preferuarat", + "recommended": "Të rekomanduara", + "allModels": "Të gjitha modelet" }, "modelSelector": { "model": "Modeli", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Të dilni nga kjo seancë?", "signOutThisSessionMessage": "{{device}} do të dalë. Mund të mbajë akses API deri në një orë.", "signOutConfirm": "Dilni", - "signOutMessage": "Do t'ju duhet të hyni përsëri për të aksesuar hapësirën tuaj të punës." + "signOutMessage": "Do t'ju duhet të hyni përsëri për të aksesuar hapësirën tuaj të punës.", + "webBrowser": "Shfletuesi i uebit" }, "forceUpdate": { "couldNotOpenStore": "Dyqani i aplikacioneve nuk mund të hapej.", diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index 2dc2eb050d..b327f4b2bc 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -526,7 +526,8 @@ }, "diff": { "selectedTapToChange": "Izabrano {{label}}, dodirnite da promenite izbor", - "tapToComment": "{{label}}, dodirnite da komentarišete" + "tapToComment": "{{label}}, dodirnite da komentarišete", + "truncationBanner": "Prikazuje se prvih {{limit}} od {{total}} izmenjenih fajlova — GitHub API limit" }, "linkPasteClipboardEmpty": "Klipbord je prazan", "linkPasteNotAPullRequest": "Nije GitHub pull request link" @@ -2162,7 +2163,10 @@ "title": "Izaberi model", "searchPlaceholder": "Pretraži modele...", "noModels": "Nema dostupnih modela", - "noModelsDescription": "Nema dostupnih modela za izbor." + "noModelsDescription": "Nema dostupnih modela za izbor.", + "favorites": "Omiljeni", + "recommended": "Preporučeno", + "allModels": "Svi modeli" }, "modelSelector": { "model": "Model", @@ -2332,7 +2336,8 @@ "signOutThisSessionTitle": "Odjaviti ovu sesiju?", "signOutThisSessionMessage": "{{device}} će biti odjavljen. Može zadržati API pristup do jednog sata.", "signOutConfirm": "Odjavi se", - "signOutMessage": "Morat ćete se ponovo prijaviti da biste pristupili svom radnom prostoru." + "signOutMessage": "Morat ćete se ponovo prijaviti da biste pristupili svom radnom prostoru.", + "webBrowser": "Veb pregledač" }, "forceUpdate": { "couldNotOpenStore": "Otvaranje prodavnice aplikacija nije uspelo.", diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index b4c35622d6..9aa5d2af43 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Valt {{label}}, tryck för att ändra markering", - "tapToComment": "{{label}}, tryck för att kommentera" + "tapToComment": "{{label}}, tryck för att kommentera", + "truncationBanner": "Visar de första {{limit}} av {{total}} ändrade filer — GitHub API-begränsning" }, "linkPasteClipboardEmpty": "Urklipp är tomt", "linkPasteNotAPullRequest": "Inte en GitHub-pull request-länk" @@ -2145,7 +2146,10 @@ "title": "Välj modell", "searchPlaceholder": "Sök modeller...", "noModels": "Inga modeller tillgängliga", - "noModelsDescription": "Inga modeller finns att välja." + "noModelsDescription": "Inga modeller finns att välja.", + "favorites": "Favoriter", + "recommended": "Rekommenderade", + "allModels": "Alla modeller" }, "modelSelector": { "model": "Modell", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Logga ut den här sessionen?", "signOutThisSessionMessage": "{{device}} loggas ut. Den kan behålla API-åtkomst i upp till en timme.", "signOutConfirm": "Logga ut", - "signOutMessage": "Du måste logga in igen för att komma åt din arbetsyta." + "signOutMessage": "Du måste logga in igen för att komma åt din arbetsyta.", + "webBrowser": "Webbläsare" }, "forceUpdate": { "couldNotOpenStore": "Det gick inte att öppna appbutiken.", diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index a36f2fe4bb..99daf7a441 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} imechaguliwa, gusa kubadilisha uteuzi", - "tapToComment": "{{label}}, gusa kutoa maoni" + "tapToComment": "{{label}}, gusa kutoa maoni", + "truncationBanner": "Inaonyesha {{limit}} za kwanza kati ya {{total}} faili zilizobadilishwa — kikomo cha API ya GitHub" }, "linkPasteClipboardEmpty": "Ubao wa kunakili ni tupu", "linkPasteNotAPullRequest": "Si kiungo cha ombi la kuvuta la GitHub" @@ -2145,7 +2146,10 @@ "title": "Chagua mfano", "searchPlaceholder": "Tafuta mifano...", "noModels": "Hakuna mifano inayopatikana", - "noModelsDescription": "Hakuna mifano inayopatikana ya kuchagua." + "noModelsDescription": "Hakuna mifano inayopatikana ya kuchagua.", + "favorites": "Vipendwa", + "recommended": "Vinapendekezwa", + "allModels": "Miundo yote" }, "modelSelector": { "model": "Mfano", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "Kutoa kikao hiki?", "signOutThisSessionMessage": "{{device}} itatoka. Inaweza kuweka upatikanaji wa API hadi saa moja.", "signOutConfirm": "Ondoka", - "signOutMessage": "Utahitaji kuingia tena ili kupata upatikanaji wa nafasi yako ya kazi." + "signOutMessage": "Utahitaji kuingia tena ili kupata upatikanaji wa nafasi yako ya kazi.", + "webBrowser": "Kivinjari cha wavuti" }, "forceUpdate": { "couldNotOpenStore": "Haikuweza kufungua duka la app.", diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index 6797e6ff4f..a1b39f496a 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} தேர்ந்தெடுக்கப்பட்டது, தேர்வை மாற்ற தட்டவும்", - "tapToComment": "{{label}}, கருத்து தெரிவிக்க தட்டவும்" + "tapToComment": "{{label}}, கருத்து தெரிவிக்க தட்டவும்", + "truncationBanner": "மாற்றப்பட்ட {{total}} கோப்புகளில் முதல் {{limit}} காட்டப்படுகின்றன — GitHub API வரம்பு" }, "linkPasteClipboardEmpty": "கிளிப்போர்டு காலியாக உள்ளது", "linkPasteNotAPullRequest": "GitHub புல் ரீக்வெஸ்ட் இணைப்பு இல்லை" @@ -2145,7 +2146,10 @@ "title": "மாதிரியைத் தேர்ந்தெடுக்கவும்", "searchPlaceholder": "மாதிரிகளைத் தேடு...", "noModels": "மாதிரிகள் இல்லை", - "noModelsDescription": "தேர்ந்தெடுக்கக்கூடிய மாதிரிகள் எதுவும் இல்லை." + "noModelsDescription": "தேர்ந்தெடுக்கக்கூடிய மாதிரிகள் எதுவும் இல்லை.", + "favorites": "பிடித்தவை", + "recommended": "பரிந்துரைக்கப்பட்டவை", + "allModels": "அனைத்து மாதிரிகள்" }, "modelSelector": { "model": "மாதிரி", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "இந்த அமர்விலிருந்து வெளியேறவா?", "signOutThisSessionMessage": "{{device}} வெளியேற்றப்படும். இது ஒரு மணி நேரம் வரை API அணுகலை வைத்திருக்க முடியும்.", "signOutConfirm": "வெளியேறு", - "signOutMessage": "உங்கள் பணியிடத்தை அணுக மீண்டும் உள்நுழைய வேண்டும்." + "signOutMessage": "உங்கள் பணியிடத்தை அணுக மீண்டும் உள்நுழைய வேண்டும்.", + "webBrowser": "இணைய உலாவி" }, "forceUpdate": { "couldNotOpenStore": "ஆப் ஸ்டோரைத் திறக்க முடியவில்லை.", diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index 79a2c9ffc8..e37cab6c1e 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} ఎంచుకోబడింది, ఎంపికను మార్చడానికి తాప్ చేయండి", - "tapToComment": "{{label}}, వ్యాఖ్య చేయడానికి తాప్ చేయండి" + "tapToComment": "{{label}}, వ్యాఖ్య చేయడానికి తాప్ చేయండి", + "truncationBanner": "మొదటి {{limit}} / {{total}} మార్చబడిన ఫైళ్లు చూపుతోంది — GitHub API పరిమితి" }, "linkPasteClipboardEmpty": "క్లిప్బోర్డ్ ఖాళీగా ఉంది", "linkPasteNotAPullRequest": "GitHub పుల్ రిక్వెస్ట్ లింక్ కాదు" @@ -2145,7 +2146,10 @@ "title": "మోడల్ను ఎంచుకోండి", "searchPlaceholder": "మోడల్లను శోధించండి...", "noModels": "ఏ మోడల్లు అందుబాటులో లేవు", - "noModelsDescription": "ఎంచుకోవడానికి ఏ మోడల్లు అందుబాటులో లేవు." + "noModelsDescription": "ఎంచుకోవడానికి ఏ మోడల్లు అందుబాటులో లేవు.", + "favorites": "ఇష్టమైనవి", + "recommended": "సిఫార్సు చేయబడినవి", + "allModels": "అన్ని మోడల్లు" }, "modelSelector": { "model": "మోడల్", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "ఈ సెషన్ నుండి సైన్ అవుట్ చేయాలా?", "signOutThisSessionMessage": "{{device}} సైన్ అవుట్ చేయబడుతుంది. ఇది గంట వరకు API యాక్సెస్ను ఉంచుకోవచ్చు.", "signOutConfirm": "సైన్ అవుట్", - "signOutMessage": "మీ వర్క్స్పేస్ను యాక్సెస్ చేయడానికి మీరు మళ్లీ సైన్ ఇన్ చేయాలి." + "signOutMessage": "మీ వర్క్స్పేస్ను యాక్సెస్ చేయడానికి మీరు మళ్లీ సైన్ ఇన్ చేయాలి.", + "webBrowser": "వెబ్ బ్రౌజర్" }, "forceUpdate": { "couldNotOpenStore": "యాప్ స్టోర్ను తెరవలేకపోయాము.", diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index 39a952c2dc..074dec112d 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "เลือก {{label}} แล้ว แตะเพื่อเปลี่ยนการเลือก", - "tapToComment": "{{label}}, แตะเพื่อแสดงความคิดเห็น" + "tapToComment": "{{label}}, แตะเพื่อแสดงความคิดเห็น", + "truncationBanner": "กำลังแสดง {{limit}} ไฟล์แรกจากทั้งหมด {{total}} ไฟล์ที่เปลี่ยนแปลง — ขีดจำกัด API ของ GitHub" }, "linkPasteClipboardEmpty": "คลิปบอร์ดว่างเปล่า", "linkPasteNotAPullRequest": "ไม่ใช่ลิงก์คำขอดึงของ GitHub" @@ -2145,7 +2146,10 @@ "title": "เลือกโมเดล", "searchPlaceholder": "ค้นหาโมเดล...", "noModels": "ไม่มีโมเดลพร้อมใช้งาน", - "noModelsDescription": "ไม่มีโมเดลให้เลือก" + "noModelsDescription": "ไม่มีโมเดลให้เลือก", + "favorites": "รายการโปรด", + "recommended": "แนะนำ", + "allModels": "โมเดลทั้งหมด" }, "modelSelector": { "model": "โมเดล", @@ -2314,7 +2318,8 @@ "signOutThisSessionTitle": "ออกจากระบบเซสชันนี้หรือไม่?", "signOutThisSessionMessage": "{{device}} จะถูกออกจากระบบ โดยสามารถเข้าถึง API ได้นานถึงหนึ่งชั่วโมง", "signOutConfirm": "ออกจากระบบ", - "signOutMessage": "คุณจะต้องลงชื่อเข้าใหม่อีกครั้งเพื่อเข้าถึงพื้นที่ทำงานของคุณ" + "signOutMessage": "คุณจะต้องลงชื่อเข้าใหม่อีกครั้งเพื่อเข้าถึงพื้นที่ทำงานของคุณ", + "webBrowser": "เว็บเบราว์เซอร์" }, "forceUpdate": { "couldNotOpenStore": "เปิด App Store ไม่สำเร็จ", diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index e25af8d9c4..7a489c1bea 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -1766,7 +1766,10 @@ "title": "Model seç", "searchPlaceholder": "Model ara...", "noModels": "Kullanılabilir model yok", - "noModelsDescription": "Seçilebilecek model yok." + "noModelsDescription": "Seçilebilecek model yok.", + "allModels": "Tüm modeller", + "favorites": "Favoriler", + "recommended": "Önerilen" }, "modelSelector": { "model": "Model", @@ -1926,6 +1929,7 @@ "onlyKiloAppSignIns": "Burada yalnızca Kilo uygulaması oturumları görünür. Editör ve CLI oturumları listelenmez.", "signedIn": "{{signedIn}} tarihinde oturum açıldı · Son görülme {{lastSeen}}", "thisDevice": "Bu cihaz", + "webBrowser": "Web tarayıcısı", "title": "Cihaz oturumları", "viewProfile": "Profili görüntüle", "signOutThisDevice": "Bu cihazın oturumunu kapat", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "Seçilen {{label}}, seçimi değiştirmek için dokunun", - "tapToComment": "{{label}}, yorum yapmak için dokunun" + "tapToComment": "{{label}}, yorum yapmak için dokunun", + "truncationBanner": "Değiştirilen dosyaların ilk {{limit}} tanesi gösteriliyor (toplam {{total}}) — GitHub API sınırı" }, "linkPasteClipboardEmpty": "Pano boş", "linkPasteNotAPullRequest": "GitHub çekme isteği bağlantısı değil" diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 3d75de351f..dfd1cdaa83 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -1786,7 +1786,10 @@ "title": "Вибрати модель", "searchPlaceholder": "Пошук моделей...", "noModels": "Немає доступних моделей", - "noModelsDescription": "Немає доступних моделей для вибору." + "noModelsDescription": "Немає доступних моделей для вибору.", + "allModels": "Усі моделі", + "favorites": "Обрані", + "recommended": "Рекомендовані" }, "modelSelector": { "model": "Модель", @@ -1948,6 +1951,7 @@ "onlyKiloAppSignIns": "Тут відображаються лише входи в застосунок Kilo. Входи редактора та CLI не вказано.", "signedIn": "Вхід {{signedIn}} · Востаннє бачили {{lastSeen}}", "thisDevice": "Цей пристрій", + "webBrowser": "Веб-браузер", "title": "Сеанси пристроїв", "viewProfile": "Переглянути профіль", "signOutThisDevice": "Вийти з цього пристрою", @@ -2582,7 +2586,8 @@ }, "diff": { "selectedTapToChange": "Вибрано {{label}}, торкніться, щоб змінити вибір", - "tapToComment": "{{label}}, торкніться, щоб додати коментар" + "tapToComment": "{{label}}, торкніться, щоб додати коментар", + "truncationBanner": "Показано перші {{limit}} зі {{total}} змінених файлів — обмеження GitHub API" }, "linkPasteClipboardEmpty": "Буфер обміну порожній", "linkPasteNotAPullRequest": "Це не посилання на pull request GitHub" diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index a13ea055ad..9476703951 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} منتخب، انتخاب تبدیل کرنے کے لیے تھپتھپائیں", - "tapToComment": "{{label}}، تبصرہ کرنے کے لیے تھپتھپائیں" + "tapToComment": "{{label}}، تبصرہ کرنے کے لیے تھپتھپائیں", + "truncationBanner": "کل {{total}} تبدیل شدہ فائلوں میں سے پہلی {{limit}} دکھائی جا رہی ہیں — GitHub API حد" }, "linkPasteClipboardEmpty": "کلپ بورڈ خالی ہے", "linkPasteNotAPullRequest": "یہ GitHub پل ریکویسٹ لنک نہیں ہے" @@ -2145,7 +2146,10 @@ "title": "ماڈل منتخب کریں", "searchPlaceholder": "ماڈلز تلاش کریں...", "noModels": "کوئی ماڈل دستیاب نہیں", - "noModelsDescription": "منتخب کرنے کے لیے کوئی ماڈل دستیاب نہیں ہے۔" + "noModelsDescription": "منتخب کرنے کے لیے کوئی ماڈل دستیاب نہیں ہے۔", + "allModels": "تمام ماڈلز", + "favorites": "پسندیدہ", + "recommended": "تجویز کردہ" }, "modelSelector": { "model": "ماڈل", @@ -2305,6 +2309,7 @@ "onlyKiloAppSignIns": "صرف Kilo ایپ کے سائن ان یہاں ظاہر ہوتے ہیں۔ ایڈیٹر اور CLI سائن ان درج نہیں ہیں۔", "signedIn": "{{signedIn}} میں سائن ان · آخری بار دیکھا گیا {{lastSeen}}", "thisDevice": "یہ ڈیوائس", + "webBrowser": "ویب براؤزر", "title": "ڈیوائس سیشنز", "viewProfile": "پروفائل دیکھیں", "signOutThisDevice": "اس ڈیوائس سے سائن آؤٹ کریں", diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index ab5d565b0d..5b6013e39e 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "{{label}} tanlandi, tanlovni o'zgartirish uchun bosing", - "tapToComment": "{{label}}, izoh qoldirish uchun bosing" + "tapToComment": "{{label}}, izoh qoldirish uchun bosing", + "truncationBanner": "Jami {{total}} ta o'zgartirilgan fayldan dastlabki {{limit}} tasi ko'rsatilmoqda — GitHub API chegarasi" }, "linkPasteClipboardEmpty": "Vaqtinchalik xotira bo‘sh", "linkPasteNotAPullRequest": "Bu GitHub pull request havolasi emas" @@ -2145,7 +2146,10 @@ "title": "Modelni tanlash", "searchPlaceholder": "Modellarni qidirish...", "noModels": "Modellar mavjud emas", - "noModelsDescription": "Tanlash uchun modellar mavjud emas." + "noModelsDescription": "Tanlash uchun modellar mavjud emas.", + "allModels": "Barcha modellar", + "favorites": "Sevimlilar", + "recommended": "Tavsiya etilgan" }, "modelSelector": { "model": "Model", @@ -2305,6 +2309,7 @@ "onlyKiloAppSignIns": "Bu yerda faqat Kilo ilovasi kirishlari ko'rinadi. Editor va CLI kirishlari ro'yxatga olinmagan.", "signedIn": "{{signedIn}} da kirilgan · Oxirgi ko'rinish {{lastSeen}}", "thisDevice": "Bu qurilma", + "webBrowser": "Veb-brauzer", "title": "Qurilma sessiyalari", "viewProfile": "Profilni ko'rish", "signOutThisDevice": "Bu qurilmadan chiqish", diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index 99a12fa64c..10284b3c69 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -1766,7 +1766,10 @@ "title": "Chọn mô hình", "searchPlaceholder": "Tìm kiếm mô hình...", "noModels": "Không có mô hình khả dụng", - "noModelsDescription": "Không có mô hình nào để chọn." + "noModelsDescription": "Không có mô hình nào để chọn.", + "allModels": "Tất cả mô hình", + "favorites": "Mục yêu thích", + "recommended": "Được đề xuất" }, "modelSelector": { "model": "Mô hình", @@ -1926,6 +1929,7 @@ "onlyKiloAppSignIns": "Chỉ các lần đăng nhập ứng dụng Kilo xuất hiện tại đây. Đăng nhập Editor và CLI không được liệt kê.", "signedIn": "Đã đăng nhập {{signedIn}} · Lần cuối hoạt động {{lastSeen}}", "thisDevice": "Thiết bị này", + "webBrowser": "Trình duyệt web", "title": "Phiên thiết bị", "viewProfile": "Xem hồ sơ", "signOutThisDevice": "Đăng xuất thiết bị này", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "Đã chọn {{label}}, chạm để đổi lựa chọn", - "tapToComment": "{{label}}, chạm để bình luận" + "tapToComment": "{{label}}, chạm để bình luận", + "truncationBanner": "Hiển thị {{limit}} tệp đã thay đổi đầu tiên trong tổng số {{total}} — giới hạn API của GitHub" }, "linkPasteClipboardEmpty": "Bộ nhớ tạm trống", "linkPasteNotAPullRequest": "Không phải là liên kết yêu cầu kéo GitHub" diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index acb80a6595..f519251cf1 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Yan {{label}}, tẹ lati yi yiyan pada", - "tapToComment": "{{label}}, tẹ lati sọ asọye" + "tapToComment": "{{label}}, tẹ lati sọ asọye", + "truncationBanner": "Ìfihàn àwọn fáìlì àkọ́kọ́ {{limit}} nínú {{total}} fáìlì tí a yí padà — ìpẹ̀kun API GitHub" }, "linkPasteClipboardEmpty": "Àtẹ̀ àkójọpọ̀ ti ṣófo", "linkPasteNotAPullRequest": "Kì í ṣe ọ̀nà asopọ́ pull request GitHub" @@ -2145,7 +2146,10 @@ "title": "Yan awoṣe", "searchPlaceholder": "Wa awọn awoṣe...", "noModels": "Ko si awoṣe to wa", - "noModelsDescription": "Ko si awoṣe to wa lati yan." + "noModelsDescription": "Ko si awoṣe to wa lati yan.", + "allModels": "Gbogbo àwọn awoṣe", + "favorites": "Àwọn ààyàn", + "recommended": "Àwọn tí a dámọ̀ràn" }, "modelSelector": { "model": "Awoṣe", @@ -2305,6 +2309,7 @@ "onlyKiloAppSignIns": "Awọn iwọle app Kilo nikan ni o han nibi. Awọn iwọle Editor ati CLI ko si ninu àkọọlẹ.", "signedIn": "Ti wọle {{signedIn}} · Ti ri kẹhin {{lastSeen}}", "thisDevice": "Ẹrọ yii", + "webBrowser": "Aṣàwákiri wẹ́ẹ̀bù", "title": "Awọn igba-ijiroro ẹrọ", "viewProfile": "Wo profaìlì", "signOutThisDevice": "Wọle jade lori ẹrọ yii", diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index f0177bea6a..2bfdab82de 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -1766,7 +1766,10 @@ "title": "选择模型", "searchPlaceholder": "搜索模型...", "noModels": "没有可用的模型", - "noModelsDescription": "没有可选择的模型。" + "noModelsDescription": "没有可选择的模型。", + "allModels": "所有模型", + "favorites": "收藏", + "recommended": "推荐" }, "modelSelector": { "model": "模型", @@ -1926,6 +1929,7 @@ "onlyKiloAppSignIns": "此处仅显示 Kilo 应用登录。编辑器和 CLI 登录不列出。", "signedIn": "登录于 {{signedIn}} · 最后在线 {{lastSeen}}", "thisDevice": "此设备", + "webBrowser": "网络浏览器", "title": "设备会话", "viewProfile": "查看个人资料", "signOutThisDevice": "退出此设备", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "已选择 {{label}},点按以更改所选内容", - "tapToComment": "{{label}},点按以发表评论" + "tapToComment": "{{label}},点按以发表评论", + "truncationBanner": "正在显示前 {{limit}} 个(共 {{total}} 个)已更改文件 — GitHub API 限制" }, "linkPasteClipboardEmpty": "剪贴板为空", "linkPasteNotAPullRequest": "不是 GitHub 拉取请求链接" diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index b4e5b8b42a..92439493ec 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -1766,7 +1766,10 @@ "title": "選取模型", "searchPlaceholder": "搜尋模型...", "noModels": "沒有可用的模型", - "noModelsDescription": "沒有可選取的模型。" + "noModelsDescription": "沒有可選取的模型。", + "allModels": "所有模型", + "favorites": "我的最愛", + "recommended": "推薦" }, "modelSelector": { "model": "模型", @@ -1926,6 +1929,7 @@ "onlyKiloAppSignIns": "這裡只會顯示 Kilo 應用程式的登入。編輯器和 CLI 登入不會列出。", "signedIn": "登入於 {{signedIn}} · 最後上線 {{lastSeen}}", "thisDevice": "此裝置", + "webBrowser": "網頁瀏覽器", "title": "裝置工作階段", "viewProfile": "檢視個人資料", "signOutThisDevice": "登出此裝置", @@ -2546,7 +2550,8 @@ }, "diff": { "selectedTapToChange": "已選取 {{label}},點擊即可變更選取", - "tapToComment": "{{label}},點擊即可留言" + "tapToComment": "{{label}},點擊即可留言", + "truncationBanner": "正在顯示前 {{limit}} 個(共 {{total}} 個)已變更檔案 — GitHub API 限制" }, "linkPasteClipboardEmpty": "剪貼簿是空的", "linkPasteNotAPullRequest": "不是 GitHub 提取請求的連結" diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index 4dc69bce4b..d543d1fa85 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -519,7 +519,8 @@ }, "diff": { "selectedTapToChange": "Kukhethiwe {{label}}, thepha ukuze ushintshe okukhethiwe", - "tapToComment": "{{label}}, thepha ukuze ubhale amazwana" + "tapToComment": "{{label}}, thepha ukuze ubhale amazwana", + "truncationBanner": "Kuboniswa amafayela okuqala angu-{{limit}} kwangu-{{total}} aguquliwe — umkhawulo we-GitHub API" }, "linkPasteClipboardEmpty": "Ikliphuphodi ayinalutho", "linkPasteNotAPullRequest": "Akuyona isixhumanisi sokudonsa se-GitHub" @@ -2145,7 +2146,10 @@ "title": "Khetha imodeli", "searchPlaceholder": "Sesha amamodeli...", "noModels": "Azikho amamodeli atholakalayo", - "noModelsDescription": "Akukho mamodeli ongawakhetha." + "noModelsDescription": "Akukho mamodeli ongawakhetha.", + "allModels": "Wonke amamodeli", + "favorites": "Okuthandwayo", + "recommended": "Kutuswayo" }, "modelSelector": { "model": "Imodeli", @@ -2305,6 +2309,7 @@ "onlyKiloAppSignIns": "Ukungena kwe-app ye-Kilo kuphela okuvela lapha. Ukungena kwe-Editor ne-CLI akubalwa.", "signedIn": "Ungene {{signedIn}} · Ugcine ukubonwa {{lastSeen}}", "thisDevice": "Le divayisi", + "webBrowser": "Isiphequluli sewebhu", "title": "Amaseshini edivayisi", "viewProfile": "Buka iphrofayili", "signOutThisDevice": "Phuma kule divayisi", diff --git a/apps/mobile/src/lib/agent-session-groups.ts b/apps/mobile/src/lib/agent-session-groups.ts index d31b9ad481..fa0233605a 100644 --- a/apps/mobile/src/lib/agent-session-groups.ts +++ b/apps/mobile/src/lib/agent-session-groups.ts @@ -62,6 +62,9 @@ export function groupAgentSessionsByDate( ); const yesterday = addDays(now, -1); + const todayLabel = i18n.t('chat.conversationList.today'); + const yesterdayLabel = i18n.t('chat.conversationList.yesterday'); + const olderLabel = i18n.t('chat.conversationList.older'); const buckets = new Map(); const bucketOrder: string[] = []; @@ -80,16 +83,16 @@ export function groupAgentSessionsByDate( const date = parseTimestamp(getAgentSessionTimestamp(session, resolvedSort)); if (isSameDay(date, now)) { - addToBucket('Today', session); + addToBucket(todayLabel, session); } else if (isSameDay(date, yesterday)) { - addToBucket('Yesterday', session); + addToBucket(yesterdayLabel, session); } else { const diffMs = now.getTime() - date.getTime(); const diffDays = diffMs / (1000 * 60 * 60 * 24); if (diffDays <= 7) { addToBucket(getWeekdayName(date), session); } else { - addToBucket('Older', session); + addToBucket(olderLabel, session); } } } @@ -97,7 +100,7 @@ export function groupAgentSessionsByDate( // The weekday bucket holds sessions in their sorted (newest-first) order // already; Older needs a second pass because it's keyed by label, not by // insertion order of distinct days. - const olderBucket = buckets.get('Older'); + const olderBucket = buckets.get(olderLabel); if (olderBucket) { olderBucket.sort((a, b) => timestampMs(b, resolvedSort) - timestampMs(a, resolvedSort)); } diff --git a/apps/mobile/src/lib/device-sessions.ts b/apps/mobile/src/lib/device-sessions.ts index e7489340fb..df0207b732 100644 --- a/apps/mobile/src/lib/device-sessions.ts +++ b/apps/mobile/src/lib/device-sessions.ts @@ -1,10 +1,9 @@ import { type inferRouterOutputs, type MobileRouter } from '@kilocode/trpc/mobile'; +import { i18n } from '@/i18n'; /** One active device session as returned by `user.listDeviceSessions`. */ export type DeviceSession = inferRouterOutputs['user']['listDeviceSessions'][number]; -const UNKNOWN_DEVICE_LABEL = 'Unknown device'; - /** * Derive a short, human-readable label from the raw `user_agent` HTTP header * stored on the session row. @@ -17,13 +16,13 @@ const UNKNOWN_DEVICE_LABEL = 'Unknown device'; export function deviceSessionLabel(userAgent: string | null | undefined): string { const trimmed = userAgent?.trim() ?? ''; if (!trimmed) { - return UNKNOWN_DEVICE_LABEL; + return i18n.t('kiloclaw.devicePairing.unknownDevice'); } if (trimmed.startsWith('Mozilla/')) { - return 'Web browser'; + return i18n.t('deviceSessions.webBrowser'); } // "Kilo-Code/1.2.3 (darwin; arm64)" → "Kilo-Code" (drop the version and the rest). - return trimmed.split(/[\s/]/)[0] ?? UNKNOWN_DEVICE_LABEL; + return trimmed.split(/[\s/]/)[0] ?? i18n.t('kiloclaw.devicePairing.unknownDevice'); } /** diff --git a/apps/mobile/src/lib/format.test.ts b/apps/mobile/src/lib/format.test.ts index 89bdb11515..020b5a494b 100644 --- a/apps/mobile/src/lib/format.test.ts +++ b/apps/mobile/src/lib/format.test.ts @@ -2,6 +2,7 @@ import { describe, expect, it } from 'vitest'; import { firstGrapheme, + formatCalendarDate, formatFileSize, formatList, formatMoney, @@ -19,6 +20,11 @@ describe('formatMoney', () => { expect(formatMoney(1234.5, 'ar')).not.toContain('US$'); expect(de).not.toBe(en); }); + + it('uses Portugal rules for Portuguese and Brazil rules for Brazilian Portuguese', () => { + expect(formatMoney(1234.5, 'pt')).toMatch(/^1234,50[\s\u00A0\u202F]+\$$/); + expect(formatMoney(1234.5, 'pt-BR')).toMatch(/^\$[\s\u00A0\u202F]*1\.234,50$/); + }); }); describe('localized format helpers', () => { @@ -33,4 +39,8 @@ describe('localized format helpers', () => { expect(parseLocalizedNumber('1 234,5', 'ru')).toBe(1234.5); expect(parseLocalizedNumber('twelve', 'en')).toBeNull(); }); + + it('formats a calendar date without a time-zone shift', () => { + expect(formatCalendarDate('2026-08-03', 'en-US')).toBe('8/3/2026'); + }); }); diff --git a/apps/mobile/src/lib/format.ts b/apps/mobile/src/lib/format.ts index f41f1d8673..bfde0070a1 100644 --- a/apps/mobile/src/lib/format.ts +++ b/apps/mobile/src/lib/format.ts @@ -64,6 +64,10 @@ export function formatDate(date: Date, locale: string): string { return dateTimeFormat(locale, {}).format(date); } +export function formatCalendarDate(value: string, locale: string): string { + return dateTimeFormat(locale, { timeZone: 'UTC' }).format(new Date(`${value}T00:00:00Z`)); +} + export function formatNumber( value: number, locale: string, diff --git a/apps/mobile/src/lib/formatjs-locale-data.ts b/apps/mobile/src/lib/formatjs-locale-data.ts index 6222c9c998..b808aa3926 100644 --- a/apps/mobile/src/lib/formatjs-locale-data.ts +++ b/apps/mobile/src/lib/formatjs-locale-data.ts @@ -66,7 +66,7 @@ const NUMBER_FORMAT_LOCALE_LOADERS = { ps: () => void require('@formatjs/intl-numberformat/locale-data/ps.js'), fa: () => void require('@formatjs/intl-numberformat/locale-data/fa.js'), pl: () => void require('@formatjs/intl-numberformat/locale-data/pl.js'), - pt: () => void require('@formatjs/intl-numberformat/locale-data/pt.js'), + pt: () => void require('@formatjs/intl-numberformat/locale-data/pt-PT.js'), 'pt-BR': () => void require('@formatjs/intl-numberformat/locale-data/pt.js'), pa: () => void require('@formatjs/intl-numberformat/locale-data/pa.js'), ro: () => void require('@formatjs/intl-numberformat/locale-data/ro.js'), @@ -156,7 +156,7 @@ const LIST_FORMAT_LOCALE_LOADERS = { ps: () => void require('@formatjs/intl-listformat/locale-data/ps.js'), fa: () => void require('@formatjs/intl-listformat/locale-data/fa.js'), pl: () => void require('@formatjs/intl-listformat/locale-data/pl.js'), - pt: () => void require('@formatjs/intl-listformat/locale-data/pt.js'), + pt: () => void require('@formatjs/intl-listformat/locale-data/pt-PT.js'), 'pt-BR': () => void require('@formatjs/intl-listformat/locale-data/pt.js'), pa: () => void require('@formatjs/intl-listformat/locale-data/pa.js'), ro: () => void require('@formatjs/intl-listformat/locale-data/ro.js'), diff --git a/apps/mobile/src/lib/intl-cache-hermes-numberformat.test.ts b/apps/mobile/src/lib/intl-cache-hermes-numberformat.test.ts new file mode 100644 index 0000000000..de044b5671 --- /dev/null +++ b/apps/mobile/src/lib/intl-cache-hermes-numberformat.test.ts @@ -0,0 +1,25 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +describe('Hermes NumberFormat compatibility', () => { + afterEach(() => { + vi.unstubAllGlobals(); + vi.resetModules(); + }); + + it('polyfills currency parts and unit formatting when NumberFormat is missing', async () => { + const nativeIntl = Intl; + vi.stubGlobal('Intl', { + Collator: nativeIntl.Collator, + DateTimeFormat: nativeIntl.DateTimeFormat, + getCanonicalLocales: nativeIntl.getCanonicalLocales, + PluralRules: nativeIntl.PluralRules, + }); + + const { prewarmIntl } = await import('./intl-cache'); + prewarmIntl('de'); + const { formatFileSize, formatMoney } = await import('./format'); + + expect(formatMoney(1234.5, 'de')).toMatch(/1\.234,50[\s\u00A0\u202F]+\$/); + expect(formatFileSize(1024, 'de')).toContain('1 kB'); + }); +}); diff --git a/apps/mobile/src/lib/intl-cache.ts b/apps/mobile/src/lib/intl-cache.ts index 464086af88..565689c0fc 100644 --- a/apps/mobile/src/lib/intl-cache.ts +++ b/apps/mobile/src/lib/intl-cache.ts @@ -33,7 +33,10 @@ let usesSegmenterPolyfill = false; let usesLocalePolyfill = false; function localeOrEnglish(locale: string): string { - return locale || 'en'; + if (!locale) { + return 'en'; + } + return locale === 'pt' ? 'pt-PT' : locale; } function localeDataLanguage(locale: string): SupportedLanguage { @@ -104,10 +107,11 @@ export function dateTimeFormat( locale: Intl.LocalesArgument, options: Intl.DateTimeFormatOptions ): Intl.DateTimeFormat { - const key = `${JSON.stringify(locale)}|${JSON.stringify(options)}`; + const activeLocale = locale === 'pt' ? 'pt-PT' : locale; + const key = `${JSON.stringify(activeLocale)}|${JSON.stringify(options)}`; let format = dateTimeFormats.get(key); if (!format) { - format = new Intl.DateTimeFormat(locale, options); + format = new Intl.DateTimeFormat(activeLocale, options); dateTimeFormats.set(key, format); } return format; @@ -185,3 +189,11 @@ export function segmenter(locale: string, options: Intl.SegmenterOptions): Intl. } return format; } + +export function prewarmIntl(locale: string): void { + numberFormat(locale, {}); + listFormat(locale, { type: 'conjunction' }); + relativeTimeFormat(locale, { numeric: 'auto' }); + durationFormat(locale, { style: 'short' }); + segmenter(locale, { granularity: 'grapheme' }); +} diff --git a/apps/mobile/src/lib/model-picker-rows.test.ts b/apps/mobile/src/lib/model-picker-rows.test.ts index 06779c8cdb..06238b410d 100644 --- a/apps/mobile/src/lib/model-picker-rows.test.ts +++ b/apps/mobile/src/lib/model-picker-rows.test.ts @@ -76,14 +76,14 @@ describe('buildModelPickerRows', () => { expect( buildModelPickerRows({ models: gatewayModels, search: '', favoriteIds: noFavorites }) ).toEqual([ - { key: 'recommended', title: 'RECOMMENDED', type: 'header' }, + { key: 'recommended', title: 'Recommended', type: 'header' }, { key: 'model:anthropic/claude-sonnet-4', model: gatewayModels[0], isFavorite: false, type: 'model', }, - { key: 'all', title: 'ALL MODELS', type: 'header' }, + { key: 'all', title: 'All models', type: 'header' }, { key: 'model:openai/gpt-5', model: gatewayModels[1], isFavorite: false, type: 'model' }, ]); }); @@ -92,7 +92,7 @@ describe('buildModelPickerRows', () => { expect( buildModelPickerRows({ models: gatewayModels, search: 'Sonnet 4', favoriteIds: noFavorites }) ).toEqual([ - { key: 'recommended', title: 'RECOMMENDED', type: 'header' }, + { key: 'recommended', title: 'Recommended', type: 'header' }, { key: 'model:anthropic/claude-sonnet-4', model: gatewayModels[0], @@ -103,7 +103,7 @@ describe('buildModelPickerRows', () => { expect( buildModelPickerRows({ models: gatewayModels, search: 'openai/', favoriteIds: noFavorites }) ).toEqual([ - { key: 'all', title: 'ALL MODELS', type: 'header' }, + { key: 'all', title: 'All models', type: 'header' }, { key: 'model:openai/gpt-5', model: gatewayModels[1], isFavorite: false, type: 'model' }, ]); }); @@ -111,9 +111,9 @@ describe('buildModelPickerRows', () => { it('pulls a favorited model into its own FAVORITES group ahead of everything else', () => { const favoriteIds = new Set(['openai/gpt-5']); expect(buildModelPickerRows({ models: gatewayModels, search: '', favoriteIds })).toEqual([ - { key: 'favorites', title: 'FAVORITES', type: 'header' }, + { key: 'favorites', title: 'Favorites', type: 'header' }, { key: 'model:openai/gpt-5', model: gatewayModels[1], isFavorite: true, type: 'model' }, - { key: 'recommended', title: 'RECOMMENDED', type: 'header' }, + { key: 'recommended', title: 'Recommended', type: 'header' }, { key: 'model:anthropic/claude-sonnet-4', model: gatewayModels[0], @@ -161,7 +161,7 @@ describe('buildModelPickerRows', () => { it('keeps a favorited remote model out of its provider group', () => { const favoriteIds = new Set(['remote:custom-openai:shared/model.id']); expect(buildModelPickerRows({ models: remoteModels, search: '', favoriteIds })).toEqual([ - { key: 'favorites', title: 'FAVORITES', type: 'header' }, + { key: 'favorites', title: 'Favorites', type: 'header' }, { key: 'model:remote-model-1', model: remoteModels[1], isFavorite: true, type: 'model' }, { key: 'provider:anthropic-local', title: 'ANTHROPIC LOCAL', type: 'header' }, { key: 'model:remote-model-0', model: remoteModels[0], isFavorite: false, type: 'model' }, @@ -177,7 +177,7 @@ describe('buildModelPickerRows', () => { { ...remoteWorkspaceClaude, id: 'remote-model-1' }, ]; expect(buildModelPickerRows({ models: reordered, search: '', favoriteIds })).toEqual([ - { key: 'favorites', title: 'FAVORITES', type: 'header' }, + { key: 'favorites', title: 'Favorites', type: 'header' }, { key: 'model:remote-model-0', model: reordered[0], isFavorite: true, type: 'model' }, { key: 'provider:anthropic-local', title: 'ANTHROPIC LOCAL', type: 'header' }, { key: 'model:remote-model-1', model: reordered[1], isFavorite: false, type: 'model' }, diff --git a/apps/mobile/src/lib/model-picker-rows.ts b/apps/mobile/src/lib/model-picker-rows.ts index 535614a8f6..017125e673 100644 --- a/apps/mobile/src/lib/model-picker-rows.ts +++ b/apps/mobile/src/lib/model-picker-rows.ts @@ -1,4 +1,5 @@ import { type SessionModelOption } from '@/lib/hooks/use-session-model-options'; +import { i18n } from '@/i18n'; export type ModelPickerRow = | { key: string; title: string; type: 'header' } @@ -90,7 +91,11 @@ export function buildModelPickerRows({ const rows: ModelPickerRow[] = []; if (favorites.length > 0) { - rows.push({ key: 'favorites', title: 'FAVORITES', type: 'header' }); + rows.push({ + key: 'favorites', + title: i18n.t('agentChat.modelPicker.favorites'), + type: 'header', + }); for (const model of favorites) { rows.push({ key: `model:${model.id}`, model, isFavorite: true, type: 'model' }); } @@ -132,7 +137,7 @@ function groupForModel(model: SessionModelOption): Pick void require('@formatjs/intl-relativetimeformat/locale-data/ps.js'), fa: () => void require('@formatjs/intl-relativetimeformat/locale-data/fa.js'), pl: () => void require('@formatjs/intl-relativetimeformat/locale-data/pl.js'), - pt: () => void require('@formatjs/intl-relativetimeformat/locale-data/pt.js'), + pt: () => void require('@formatjs/intl-relativetimeformat/locale-data/pt-PT.js'), 'pt-BR': () => void require('@formatjs/intl-relativetimeformat/locale-data/pt.js'), pa: () => void require('@formatjs/intl-relativetimeformat/locale-data/pa.js'), ro: () => void require('@formatjs/intl-relativetimeformat/locale-data/ro.js'), diff --git a/apps/mobile/src/lib/use-session-model-options.test.ts b/apps/mobile/src/lib/use-session-model-options.test.ts index 9d2cdfa3f6..9b162381f9 100644 --- a/apps/mobile/src/lib/use-session-model-options.test.ts +++ b/apps/mobile/src/lib/use-session-model-options.test.ts @@ -519,7 +519,7 @@ describe('buildSessionModelOptions capacity projection', () => { buildModelPickerRows({ models: result.options, search: '', favoriteIds: new Set() }) .filter(row => row.type === 'header') .map(row => row.title) - ).toEqual(['RECOMMENDED', 'ALL MODELS']); + ).toEqual(['Recommended', 'All models']); }); it('projects Cloud Agent Gateway context_length onto every option', () => { diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts index 52a9c0f069..3cca278ea7 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts @@ -92,6 +92,12 @@ describe('pickSupportedVoiceInputLanguageTag', () => { it('underscore-form supported identifier returns the original spelling', () => { expect(pickSupportedVoiceInputLanguageTag(['en-DE'], ['en_US'])).toBe('en_US'); }); + + it('keeps the device Chinese script when only a region differs', () => { + expect(pickSupportedVoiceInputLanguageTag(['zh-Hant-TW'], ['zh-CN', 'zh-Hant'])).toBe( + 'zh-Hant' + ); + }); }); describe('resolveVoiceInputStartLanguageTag', () => { @@ -182,4 +188,14 @@ describe('resolveVoiceInputStartLanguageTag', () => { expect(await resolveVoiceInputStartLanguageTag('en')).toBe('en-GB'); }); + + it('keeps the selected Chinese script before a different device script', async () => { + localizationMock.getLocales.mockReturnValue([{ languageTag: 'zh-CN' }]); + getSupportedLocalesMock.mockResolvedValue({ + locales: ['zh-CN', 'zh-Hant'], + installedLocales: [], + }); + + expect(await resolveVoiceInputStartLanguageTag('zh-Hant')).toBe('zh-Hant'); + }); }); diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.ts b/apps/mobile/src/lib/voice-input/voice-input-language.ts index 5a9239d970..c28b26a338 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.ts @@ -27,6 +27,13 @@ function normalizeLocale(tag: string): string { return tag.toLowerCase().replaceAll('_', '-'); } +function scriptSubtag(tag: string): string | undefined { + return normalizeLocale(tag) + .split('-') + .slice(1) + .find(part => part.length === 4); +} + /** * Pick the best supported voice-input language tag from the device's * preferred-language list. Returns the matched tag in the spelling used by @@ -39,10 +46,11 @@ function normalizeLocale(tag: string): string { * a. Exact normalized match in `supportedTags` → return it. * b. Same-language fallback among `supportedTags` sharing the primary * language subtag, with these tie-breaks in order: - * i. Eponymous region: `-` as a plain string rule + * i. The same script subtag, when the device tag has one. + * ii. Eponymous region: `-` as a plain string rule * (e.g. `de`→`de-DE`, `fr`→`fr-FR`). - * ii. `-US` if present. - * iii. Otherwise the first candidate in `supportedTags` order. + * iii. `-US` if present. + * iv. Otherwise the first candidate in `supportedTags` order. * * No match for any device tag → `null`. */ @@ -66,19 +74,27 @@ export function pickSupportedVoiceInputLanguageTag( const [deviceLang] = deviceTag.split('-'); const sameLang = normalized.filter(([n]) => n.split('-')[0] === deviceLang); if (sameLang.length > 0) { - // i. Eponymous region: - + const deviceScript = scriptSubtag(deviceTag); + const sameScript = deviceScript + ? sameLang.find(([n]) => scriptSubtag(n) === deviceScript) + : undefined; + if (sameScript) { + return sameScript[1]; + } + + // ii. Eponymous region: - const eponymous = sameLang.find(([n]) => n === `${deviceLang}-${deviceLang}`.toLowerCase()); if (eponymous) { return eponymous[1]; } - // ii. -US + // iii. -US const usVariant = sameLang.find(([n]) => n === `${deviceLang}-us`); if (usVariant) { return usVariant[1]; } - // iii. First candidate in supportedTags order + // iv. First candidate in supportedTags order const first = sameLang[0]; if (first) { return first[1]; @@ -121,10 +137,12 @@ export async function resolveVoiceInputStartLanguageTag(appLanguage: string): Pr // oxlint-disable-next-line anti-slop/no-runtime-typeof -- environment probe: guards against a real-device value diverging from expo-localization's static type. .filter((t): t is string => typeof t === 'string' && t.length > 0); const language = normalizeLocale(appLanguage).split('-')[0]; - const preferredTags = [ - ...deviceTags.filter(tag => normalizeLocale(tag).split('-')[0] === language), - appLanguage, - ]; + const matchingDeviceTags = deviceTags.filter( + tag => normalizeLocale(tag).split('-')[0] === language + ); + const preferredTags = scriptSubtag(appLanguage) + ? [appLanguage, ...matchingDeviceTags] + : [...matchingDeviceTags, appLanguage]; const supported = await fetchSupportedLanguageTags(); if (!supported || supported.length === 0) { From 17f711aa4e803a1f0ccaeeef352cbf385d9021ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 17:32:08 +0200 Subject: [PATCH 05/14] fix(mobile): localize the remaining hard-coded copy Move every remaining English UI string into the catalog, and fix the formatting bugs the i18n audit found. Copy: GitHub install alerts, merge-blocked reasons, merge method labels, screen-reader announcements, reaction labels, thread anchor labels, attachment validation copy, mutation error fallbacks, Security Agent command toasts, and device sign-in errors. 72 new keys, translated into all 87 catalogs. Formatting: - The audit report labels its dates UTC, so format them in UTC. - Format gigabytes with the unit formatter, and vCPU from the catalog. - Read the Security Agent severity from the SLA keys, not capitalize(). - Treat zh-TW, zh-HK, and zh-MO as Traditional Chinese for voice input. - Ensure NumberFormat before the RelativeTimeFormat polyfill, which constructs one internally. - Never let a prewarm failure throw; it is only a cache fill, and a throw keeps the splash screen up forever. Guard: no-literal-copy now flags announceForA11y literals and the `error.message || 'English'` fallback shape, so neither can come back. Also delete resolveVoiceInputLanguageTag, which has no caller. --- .../src/app/(app)/(tabs)/(2_agents)/index.tsx | 39 ++--- .../src/components/kiloclaw/status-card.tsx | 11 +- .../organization/invited-member-row-state.ts | 2 +- .../discussion/reaction-picker-sheet.tsx | 4 +- .../pr-review/merge/pr-merge-icons.tsx | 4 +- .../pr-review/merge/pr-merge-sheet-parts.tsx | 4 +- .../security-agent/audit-report-screen.tsx | 38 ++++- apps/mobile/src/i18n/locales/af.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/am.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ar.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/az.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/be.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/bg.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/bn.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/bs.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ca.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ckb.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/cs.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/cy.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/da.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/de.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/el.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/en.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/es.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/et.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/eu.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/fa.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/fi.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/fil.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/fr.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ga.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/gl.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/gu.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ha.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/he.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/hi.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/hr.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ht.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/hu.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/hy.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/id.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ig.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/is.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/it.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ja.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ka.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/kk.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/km.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/kn.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ko.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/lo.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/lt.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/lv.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/mg.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/mi.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/mk.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ml.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/mn.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/mr.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ms.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/mt.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/my.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/nb.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ne.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/nl.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/om.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/or.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/pa.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/pl.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ps.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/pt-BR.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/pt.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ro.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ru.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/si.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/sk.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/sl.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/so.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/sq.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/sr.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/sv.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/sw.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ta.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/te.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/th.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/tr.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/uk.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/ur.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/uz.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/vi.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/yo.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/zh-Hans.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/zh-Hant.json | 106 ++++++++++-- apps/mobile/src/i18n/locales/zu.json | 106 ++++++++++-- .../use-agent-attachment-upload.ts | 2 +- .../src/lib/agent-attachments/validate.ts | 11 +- apps/mobile/src/lib/auth/device-auth-poll.ts | 16 +- apps/mobile/src/lib/auth/poll-response.ts | 6 +- apps/mobile/src/lib/auth/use-device-auth.ts | 11 +- apps/mobile/src/lib/format.ts | 8 +- .../src/lib/hooks/use-kiloclaw-mutations.ts | 3 +- .../src/lib/hooks/use-model-preferences.ts | 5 +- .../lib/hooks/use-organization-mutations.ts | 3 +- .../lib/hooks/use-security-agent-commands.ts | 12 +- .../src/lib/hooks/use-session-mutations.ts | 2 +- apps/mobile/src/lib/intl-cache.test.ts | 15 ++ apps/mobile/src/lib/intl-cache.ts | 16 +- .../discussion/reaction-pills.test.ts | 8 +- .../pr-review/discussion/reaction-pills.ts | 24 ++- .../discussion/review-discussion-types.ts | 13 +- .../pr-review/merge/merge-blocked-reasons.ts | 154 ++++++++++-------- .../pr-review/merge/use-pr-merge-mutations.ts | 3 +- .../lib/pr-review/use-pr-review-mutations.ts | 5 +- .../voice-input/voice-input-language.test.ts | 43 ++--- .../lib/voice-input/voice-input-language.ts | 50 +++--- tools/oxlint/no-literal-copy/index.ts | 14 +- 116 files changed, 8667 insertions(+), 1081 deletions(-) diff --git a/apps/mobile/src/app/(app)/(tabs)/(2_agents)/index.tsx b/apps/mobile/src/app/(app)/(tabs)/(2_agents)/index.tsx index 93bc4c4efb..31ce78b6d5 100644 --- a/apps/mobile/src/app/(app)/(tabs)/(2_agents)/index.tsx +++ b/apps/mobile/src/app/(app)/(tabs)/(2_agents)/index.tsx @@ -41,47 +41,44 @@ export function buildGitHubInstallOutcomeAlert( switch (result.kind) { case 'success': { return { - title: 'GitHub App installed', - message: 'Your repositories are now connected.', - buttons: [{ text: 'Continue' }], + title: i18n.t('agents.githubInstall.installedTitle'), + message: i18n.t('agents.githubInstall.installedMessage'), + buttons: [{ text: i18n.t('common.continue') }], }; } case 'pending': { return { - title: 'Awaiting admin approval', - message: 'An organization admin must approve the installation request.', - buttons: [{ text: 'Done' }], + title: i18n.t('agents.githubInstall.pendingTitle'), + message: i18n.t('agents.githubInstall.pendingMessage'), + buttons: [{ text: i18n.t('common.done') }], }; } case 'error': { if (result.code === 'install_state_user_mismatch') { return { - title: 'Account mismatch', - message: - 'This connection was started from the Kilo App signed in as a different account. Sign in to the web with that account, or start again from the app.', - buttons: [{ text: 'Back' }], + title: i18n.t('agents.githubInstall.accountMismatchTitle'), + message: i18n.t('agents.githubInstall.accountMismatchMessage'), + buttons: [{ text: i18n.t('common.back') }], }; } if (result.code === 'not_installation_admin') { return { - title: 'Cannot complete installation', - message: - 'Only a GitHub admin of that account can connect it. Ask an organization admin to install Kilo.', - buttons: [{ text: 'Back' }], + title: i18n.t('agents.githubInstall.cannotCompleteTitle'), + message: i18n.t('agents.githubInstall.notAdminMessage'), + buttons: [{ text: i18n.t('common.back') }], }; } if (result.code === 'installation_already_claimed') { return { - title: 'Cannot complete installation', - message: - 'That GitHub installation is already connected to another Kilo account. Disconnect it there first.', - buttons: [{ text: 'Back' }], + title: i18n.t('agents.githubInstall.cannotCompleteTitle'), + message: i18n.t('agents.githubInstall.alreadyClaimedMessage'), + buttons: [{ text: i18n.t('common.back') }], }; } return { - title: 'Installation did not complete', - message: 'The GitHub App installation was not completed. Try again from the app.', - buttons: [{ text: 'Try again', onPress: onRetry }], + title: i18n.t('agents.githubInstall.didNotCompleteTitle'), + message: i18n.t('agents.githubInstall.didNotCompleteMessage'), + buttons: [{ text: i18n.t('common.tryAgain'), onPress: onRetry }], }; } default: { diff --git a/apps/mobile/src/components/kiloclaw/status-card.tsx b/apps/mobile/src/components/kiloclaw/status-card.tsx index bd48116216..6e154254da 100644 --- a/apps/mobile/src/components/kiloclaw/status-card.tsx +++ b/apps/mobile/src/components/kiloclaw/status-card.tsx @@ -54,9 +54,16 @@ export function StatusCard({ }: Readonly) { const { t } = useTranslation(); const memoryLabel = memoryMb - ? `${formatNumber(memoryMb / 1024, i18n.language, { maximumFractionDigits: 0 })} GB` + ? formatNumber(memoryMb / 1024, i18n.language, { + style: 'unit', + unit: 'gigabyte', + unitDisplay: 'short', + maximumFractionDigits: 0, + }) + : '—'; + const cpuLabel = cpus + ? t('kiloclaw.status.vcpuValue', { value: formatNumber(cpus, i18n.language) }) : '—'; - const cpuLabel = cpus ? `${formatNumber(cpus, i18n.language)} vCPU` : '—'; const lastExitLabel = formatLastExit(lastExitCode, lastExitSignal); const gatewayLabel = gatewayState ? statusLabel(gatewayState) : '—'; const uptimeLabel = uptime == null ? '—' : formatDuration(uptime, i18n.language); diff --git a/apps/mobile/src/components/organization/invited-member-row-state.ts b/apps/mobile/src/components/organization/invited-member-row-state.ts index 6f3b5245b5..4ed4134f7e 100644 --- a/apps/mobile/src/components/organization/invited-member-row-state.ts +++ b/apps/mobile/src/components/organization/invited-member-row-state.ts @@ -87,7 +87,7 @@ export function useResendInvite(organizationId: string) { }); }, onError: (error: { message: string }) => { - announcingToast.error(error.message || 'Something went wrong'); + announcingToast.error(error.message || i18n.t('common.somethingWentWrong')); }, }); } diff --git a/apps/mobile/src/components/pr-review/discussion/reaction-picker-sheet.tsx b/apps/mobile/src/components/pr-review/discussion/reaction-picker-sheet.tsx index f6a5458154..22f8930b23 100644 --- a/apps/mobile/src/components/pr-review/discussion/reaction-picker-sheet.tsx +++ b/apps/mobile/src/components/pr-review/discussion/reaction-picker-sheet.tsx @@ -18,7 +18,7 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { Text } from '@/components/ui/text'; import { moveA11yFocus } from '@/lib/a11y/announce'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; -import { REACTION_EMOJI, REACTION_LABEL } from '@/lib/pr-review/discussion/reaction-pills'; +import { REACTION_EMOJI, reactionLabel } from '@/lib/pr-review/discussion/reaction-pills'; import { REVIEW_REACTION_CONTENTS, type ReviewReactionContent, @@ -101,7 +101,7 @@ export function ReactionPickerSheet({ ({ value, label: PR_MERGE_LABELS[value] })); + return getAllowedMergeMethods(repo).map(value => ({ value, label: prMergeLabel(value) })); } export function defaultMergeMethodOptionFor(repo: PrOverviewRepoSettings): AllowedMergeMethod { diff --git a/apps/mobile/src/components/pr-review/merge/pr-merge-sheet-parts.tsx b/apps/mobile/src/components/pr-review/merge/pr-merge-sheet-parts.tsx index b6e1e51350..a578c3529e 100644 --- a/apps/mobile/src/components/pr-review/merge/pr-merge-sheet-parts.tsx +++ b/apps/mobile/src/components/pr-review/merge/pr-merge-sheet-parts.tsx @@ -19,7 +19,7 @@ import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { cn } from '@/lib/utils'; import { type AllowedMergeMethod, - PR_MERGE_DESCRIPTIONS, + prMergeDescription, } from '@/lib/pr-review/merge/merge-blocked-reasons'; import { type MergeMethodOption } from '@/components/pr-review/merge/pr-merge-icons'; import { PrReviewReconnectNotice } from '@/components/pr-review/pr-review-reconnect-notice'; @@ -60,7 +60,7 @@ function MethodPicker({ onChange(option.value); }} {...radioItemA11y({ label: option.label, checked: active, disabled: isDisabled })} - accessibilityHint={PR_MERGE_DESCRIPTIONS[option.value]} + accessibilityHint={prMergeDescription(option.value)} className={cn( 'min-h-11 items-center justify-center rounded-full border px-4 py-2 active:opacity-70', active && 'border-primary bg-primary', diff --git a/apps/mobile/src/components/security-agent/audit-report-screen.tsx b/apps/mobile/src/components/security-agent/audit-report-screen.tsx index d2be20210b..9568c7b630 100644 --- a/apps/mobile/src/components/security-agent/audit-report-screen.tsx +++ b/apps/mobile/src/components/security-agent/audit-report-screen.tsx @@ -15,7 +15,7 @@ import { TabScreenScrollView } from '@/components/tab-screen'; import { i18n } from '@/i18n'; import { formatDate, formatNumber } from '@/lib/format'; import { useTRPC } from '@/lib/trpc'; -import { capitalize, parseTimestamp } from '@/lib/utils'; +import { parseTimestamp } from '@/lib/utils'; type RouterOutputs = inferRouterOutputs; type AuditReportResponse = RouterOutputs['securityAgent']['getAuditReport']; @@ -24,6 +24,18 @@ type SecurityFindingAuditSection = SecurityAgentAuditReport['findings'][number]; const SEVERITY_ORDER = ['critical', 'high', 'medium', 'low'] as const; +// Literal keys, never a template: the catalog check scans the source for the +// keys a lookup passes on, and a computed key is invisible to it. +const SEVERITY_LABEL_KEYS = { + critical: 'securityAgent.sla.critical', + high: 'securityAgent.sla.high', + medium: 'securityAgent.sla.medium', + low: 'securityAgent.sla.low', + // A finding whose severity the scanner never reported. The SLA policy has no + // row for it, so reuse the finding-details word. + unknown: 'securityAgent.findingDetails.unknown', +} as const; + // Personal and org procedures resolve to nominally distinct tRPC option // types even when structurally identical, so we always call both hooks (one // disabled) and return whichever is active — the same branching pattern as @@ -55,9 +67,15 @@ function AuditReportSkeleton() { function ReportHeader({ report }: Readonly<{ report: SecurityAgentAuditReport }>) { const { t } = useTranslation(); - const start = formatDate(parseTimestamp(report.period.start), i18n.language); - const end = formatDate(parseTimestamp(report.period.displayEnd), i18n.language); - const generatedAt = formatDate(parseTimestamp(report.generatedAt), i18n.language); + const start = formatDate(parseTimestamp(report.period.start), i18n.language, { + timeZone: 'UTC', + }); + const end = formatDate(parseTimestamp(report.period.displayEnd), i18n.language, { + timeZone: 'UTC', + }); + const generatedAt = formatDate(parseTimestamp(report.generatedAt), i18n.language, { + timeZone: 'UTC', + }); return ( @@ -102,7 +120,7 @@ function ReportSummary({ report }: Readonly<{ report: SecurityAgentAuditReport } {SEVERITY_ORDER.map(severity => ( ))} @@ -114,7 +132,7 @@ function ReportSummary({ report }: Readonly<{ report: SecurityAgentAuditReport } function FindingSection({ finding }: Readonly<{ finding: SecurityFindingAuditSection }>) { const { t } = useTranslation(); const meta = [ - capitalize(finding.severity), + t(SEVERITY_LABEL_KEYS[finding.severity]), finding.repository ?? t('securityAgent.auditReport.repositoryNotRecorded'), ].join(' · '); @@ -141,8 +159,12 @@ function FindingSection({ finding }: Readonly<{ finding: SecurityFindingAuditSec function AuditReportView({ report }: Readonly<{ report: SecurityAgentAuditReport }>) { const { t } = useTranslation(); if (report.findings.length === 0) { - const start = formatDate(parseTimestamp(report.period.start), i18n.language); - const end = formatDate(parseTimestamp(report.period.displayEnd), i18n.language); + const start = formatDate(parseTimestamp(report.period.start), i18n.language, { + timeZone: 'UTC', + }); + const end = formatDate(parseTimestamp(report.period.displayEnd), i18n.language, { + timeZone: 'UTC', + }); return ( ([ 'png', @@ -204,10 +205,10 @@ export function canAddAttachments( } const CLASSIFICATION_FAILURE_MESSAGES = { - denied: "Executable files can't be attached", - empty: 'File is empty', - 'too-large': 'Files must be 20 MB or smaller', - unreadable: "Couldn't read this file", + denied: 'chat.attachment.classificationDenied', + empty: 'chat.attachment.classificationEmpty', + 'too-large': 'chat.attachment.classificationTooLarge', + unreadable: 'chat.attachment.classificationUnreadable', } as const satisfies Record<'denied' | 'empty' | 'too-large' | 'unreadable', string>; /** @@ -217,5 +218,5 @@ const CLASSIFICATION_FAILURE_MESSAGES = { export function describeClassificationFailure( reason: 'denied' | 'empty' | 'too-large' | 'unreadable' ): string { - return CLASSIFICATION_FAILURE_MESSAGES[reason]; + return i18n.t(CLASSIFICATION_FAILURE_MESSAGES[reason]); } diff --git a/apps/mobile/src/lib/auth/device-auth-poll.ts b/apps/mobile/src/lib/auth/device-auth-poll.ts index 41010eabda..d367c69690 100644 --- a/apps/mobile/src/lib/auth/device-auth-poll.ts +++ b/apps/mobile/src/lib/auth/device-auth-poll.ts @@ -1,6 +1,7 @@ import { Platform } from 'react-native'; import * as WebBrowser from 'expo-web-browser'; +import { i18n } from '@/i18n'; import { API_BASE_URL } from '@/lib/config'; import { classifyPollResponse } from '@/lib/auth/poll-response'; import { buildClientMetadataHeaders } from '@/lib/client-metadata'; @@ -62,7 +63,7 @@ export function startDeviceAuthPoll(params: { if (Date.now() - startedAt > POLL_OVERALL_TIMEOUT_MS) { cleanup(); setState(previous => - errorDeviceAuthState(code, 'Sign-in timed out. Please try again.', previous.verificationUrl) + errorDeviceAuthState(code, i18n.t('authErrors.signInTimedOut'), previous.verificationUrl) ); return; } @@ -102,7 +103,10 @@ export function startDeviceAuthPoll(params: { if (parsed && (parsed.status === 'denied' || parsed.status === 'expired')) { cleanup(); - const message = parsed.status === 'denied' ? 'Access denied by user' : 'Code expired'; + const message = + parsed.status === 'denied' + ? i18n.t('authErrors.accessDeniedByUser') + : i18n.t('authErrors.codeExpired'); const terminalStatus: 'denied' | 'expired' = parsed.status; setState(previous => terminalDeviceAuthState({ @@ -124,11 +128,7 @@ export function startDeviceAuthPoll(params: { case 'expired': { cleanup(); setState(previous => - errorDeviceAuthState( - code, - 'Sign-in failed. Please try again.', - previous.verificationUrl - ) + errorDeviceAuthState(code, i18n.t('authErrors.signInFailed'), previous.verificationUrl) ); return; } @@ -157,7 +157,7 @@ export function startDeviceAuthPoll(params: { } cleanup(); setState(previous => - errorDeviceAuthState(code, 'Network error. Please try again.', previous.verificationUrl) + errorDeviceAuthState(code, i18n.t('authErrors.networkError'), previous.verificationUrl) ); } }; diff --git a/apps/mobile/src/lib/auth/poll-response.ts b/apps/mobile/src/lib/auth/poll-response.ts index 0254ef26a2..3300902911 100644 --- a/apps/mobile/src/lib/auth/poll-response.ts +++ b/apps/mobile/src/lib/auth/poll-response.ts @@ -1,6 +1,8 @@ // Pure classification of a device-auth poll response's HTTP status. Kept // free of any react-native/expo imports so it can be unit tested directly. +import { i18n } from '@/i18n'; + type PollOutcome = | { readonly status: 'approved' } | { readonly status: 'pending' } @@ -17,10 +19,10 @@ export function classifyPollResponse(httpStatus: number): PollOutcome { return { status: 'pending' }; } if (httpStatus === 403) { - return { status: 'denied', message: 'Access denied by user' }; + return { status: 'denied', message: i18n.t('authErrors.accessDeniedByUser') }; } if (httpStatus === 410) { - return { status: 'expired', message: 'Code expired' }; + return { status: 'expired', message: i18n.t('authErrors.codeExpired') }; } // 429/5xx are transient (rate limiting or a flaky server) — keep polling. if (httpStatus === 429 || httpStatus >= 500) { diff --git a/apps/mobile/src/lib/auth/use-device-auth.ts b/apps/mobile/src/lib/auth/use-device-auth.ts index ced8f59435..ebdcf7091a 100644 --- a/apps/mobile/src/lib/auth/use-device-auth.ts +++ b/apps/mobile/src/lib/auth/use-device-auth.ts @@ -2,6 +2,7 @@ import * as WebBrowser from 'expo-web-browser'; import { useCallback, useEffect, useRef, useState } from 'react'; import { AppState, type AppStateStatus, Platform } from 'react-native'; +import { i18n } from '@/i18n'; import { API_BASE_URL, WEB_BASE_URL } from '@/lib/config'; import { getDeviceAuth429Message } from '@/lib/auth/poll-response'; import { parseDeviceAuthCodeResponse } from '@/lib/auth/native-auth-contract'; @@ -146,7 +147,7 @@ export function useDeviceAuth(): DeviceAuthResult { const startTimeout = setTimeout(() => { startAbort.abort(); setState( - errorDeviceAuthState(undefined, 'Failed to start sign in. Please try again.', undefined) + errorDeviceAuthState(undefined, i18n.t('authErrors.startSignInFailed'), undefined) ); }, START_TIMEOUT_MS); @@ -178,7 +179,7 @@ export function useDeviceAuth(): DeviceAuthResult { return; } setState( - errorDeviceAuthState(undefined, 'Failed to start sign in. Please try again.', undefined) + errorDeviceAuthState(undefined, i18n.t('authErrors.startSignInFailed'), undefined) ); return; } @@ -186,7 +187,7 @@ export function useDeviceAuth(): DeviceAuthResult { const data = parseDeviceAuthCodeResponse(await response.json()); if (!data) { setState( - errorDeviceAuthState(undefined, 'Failed to start sign in. Please try again.', undefined) + errorDeviceAuthState(undefined, i18n.t('authErrors.startSignInFailed'), undefined) ); return; } @@ -248,7 +249,7 @@ export function useDeviceAuth(): DeviceAuthResult { return; } setState( - errorDeviceAuthState(undefined, 'Failed to start sign in. Please try again.', undefined) + errorDeviceAuthState(undefined, i18n.t('authErrors.startSignInFailed'), undefined) ); void clearPendingExternalAuth(); } finally { @@ -271,7 +272,7 @@ export function useDeviceAuth(): DeviceAuthResult { setState(previous => errorDeviceAuthState( previous.code, - 'Could not open browser. Please try again.', + i18n.t('authErrors.couldNotOpenBrowser'), previous.verificationUrl ) ); diff --git a/apps/mobile/src/lib/format.ts b/apps/mobile/src/lib/format.ts index bfde0070a1..7bf3398b8b 100644 --- a/apps/mobile/src/lib/format.ts +++ b/apps/mobile/src/lib/format.ts @@ -60,8 +60,12 @@ export function formatMoneyFromCents(amount: number, locale: string, currency = }).format(amount / 100); } -export function formatDate(date: Date, locale: string): string { - return dateTimeFormat(locale, {}).format(date); +export function formatDate( + date: Date, + locale: string, + options: Intl.DateTimeFormatOptions = {} +): string { + return dateTimeFormat(locale, options).format(date); } export function formatCalendarDate(value: string, locale: string): string { diff --git a/apps/mobile/src/lib/hooks/use-kiloclaw-mutations.ts b/apps/mobile/src/lib/hooks/use-kiloclaw-mutations.ts index 71c67d40d3..090d95ccde 100644 --- a/apps/mobile/src/lib/hooks/use-kiloclaw-mutations.ts +++ b/apps/mobile/src/lib/hooks/use-kiloclaw-mutations.ts @@ -2,6 +2,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { z } from 'zod'; +import { i18n } from '@/i18n'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { type ClawInstance } from '@/lib/hooks/use-instance-context'; import { renameKiloClawInstance } from '@/lib/kiloclaw-display'; @@ -9,7 +10,7 @@ import { useTRPC } from '@/lib/trpc'; import { asyncNoop } from '@/lib/utils'; const onMutationError = (error: { message: string }) => { - announcingToast.error(error.message || 'Something went wrong'); + announcingToast.error(error.message || i18n.t('common.somethingWentWrong')); }; const TrpcHttpStatusErrorSchema = z.looseObject({ diff --git a/apps/mobile/src/lib/hooks/use-model-preferences.ts b/apps/mobile/src/lib/hooks/use-model-preferences.ts index ed7c55b07a..979fa63379 100644 --- a/apps/mobile/src/lib/hooks/use-model-preferences.ts +++ b/apps/mobile/src/lib/hooks/use-model-preferences.ts @@ -3,6 +3,7 @@ import { type inferRouterOutputs, type MobileRouter } from '@kilocode/trpc/mobil import { useCallback, useMemo, useState } from 'react'; import { toast } from 'sonner-native'; +import { i18n } from '@/i18n'; import { isLatestMutationGeneration, nextMutationGeneration, @@ -13,7 +14,7 @@ import { trpcClient, useTRPC } from '@/lib/trpc'; type ModelPreferences = inferRouterOutputs['modelPreferences']['get']; const onError = (error: { message: string }) => { - toast.error(error.message || 'Something went wrong'); + toast.error(error.message || i18n.t('common.somethingWentWrong')); }; // Favorites are stored per user (not per organization), so one chain key @@ -64,7 +65,7 @@ export function useModelPreferences(organizationId: string | undefined) { if (context?.previous && isLatestMutationGeneration(hashKey(queryKey), context.generation)) { queryClient.setQueryData(queryKey, context.previous); } - setFavoritesError(error.message || 'Could not update favorites'); + setFavoritesError(error.message || i18n.t('models.couldNotUpdateFavorites')); }, [queryClient, trpc.modelPreferences.get, input] ); diff --git a/apps/mobile/src/lib/hooks/use-organization-mutations.ts b/apps/mobile/src/lib/hooks/use-organization-mutations.ts index b12ea5bb65..a8eaa11cd3 100644 --- a/apps/mobile/src/lib/hooks/use-organization-mutations.ts +++ b/apps/mobile/src/lib/hooks/use-organization-mutations.ts @@ -1,5 +1,6 @@ import { hashKey, useMutation, useQueryClient } from '@tanstack/react-query'; +import { i18n } from '@/i18n'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { isLatestMutationGeneration, @@ -13,7 +14,7 @@ import { import { trpcClient, useTRPC } from '@/lib/trpc'; const onMutationError = (error: { message: string }) => { - announcingToast.error(error.message || 'Something went wrong'); + announcingToast.error(error.message || i18n.t('common.somethingWentWrong')); }; // Distributive helpers: `OrgWithMembers` is a union of the admin and member diff --git a/apps/mobile/src/lib/hooks/use-security-agent-commands.ts b/apps/mobile/src/lib/hooks/use-security-agent-commands.ts index 287afa5113..56f19bbadb 100644 --- a/apps/mobile/src/lib/hooks/use-security-agent-commands.ts +++ b/apps/mobile/src/lib/hooks/use-security-agent-commands.ts @@ -157,17 +157,19 @@ export function invalidateSecurityQueryScopes( function successMessageForCommand(command: SecurityCommand): string { if (command.commandType === 'dismiss_finding') { - return command.status === 'no_op' ? 'Finding already dismissed' : 'Finding dismissed'; + return command.status === 'no_op' + ? i18n.t('securityAgent.commands.findingAlreadyDismissed') + : i18n.t('securityAgent.commands.findingDismissed'); } if (command.commandType === 'apply_auto_remediation') { return command.status === 'no_op' - ? 'No existing findings queued' - : 'Existing remediations queued'; + ? i18n.t('securityAgent.commands.noRemediationsQueued') + : i18n.t('securityAgent.commands.remediationsQueued'); } if (command.commandType === 'start_analysis') { - return 'Analysis complete'; + return i18n.t('securityAgent.commands.analysisComplete'); } - return 'Sync complete'; + return i18n.t('securityAgent.commands.syncComplete'); } // Polls for and reconciles background Security Agent commands (sync, diff --git a/apps/mobile/src/lib/hooks/use-session-mutations.ts b/apps/mobile/src/lib/hooks/use-session-mutations.ts index c9cf1ca9b9..3c4b7b2ee5 100644 --- a/apps/mobile/src/lib/hooks/use-session-mutations.ts +++ b/apps/mobile/src/lib/hooks/use-session-mutations.ts @@ -20,7 +20,7 @@ import { useTRPC } from '@/lib/trpc'; type SessionsListSnapshot = [QueryKey, SessionsListData | undefined][]; const onError = (error: { message: string }) => { - announcingToast.error(error.message || 'Something went wrong'); + announcingToast.error(error.message || i18n.t('common.somethingWentWrong')); }; export function useSessionMutations() { diff --git a/apps/mobile/src/lib/intl-cache.test.ts b/apps/mobile/src/lib/intl-cache.test.ts index 61abfefe3c..8e264c032e 100644 --- a/apps/mobile/src/lib/intl-cache.test.ts +++ b/apps/mobile/src/lib/intl-cache.test.ts @@ -5,10 +5,16 @@ import { durationFormat, listFormat, numberFormat, + prewarmIntl, relativeTimeFormat, segmenter, } from './intl-cache'; +/** Stands in for a formatter Hermes does not provide. */ +function failingFormat(): never { + throw new Error('boom'); +} + describe('intl-cache', () => { afterEach(() => { vi.unstubAllGlobals(); @@ -57,4 +63,13 @@ describe('intl-cache', () => { expect([...segmenter('en', { granularity: 'grapheme' }).segment('👨‍👩‍👧‍👦X')]).toHaveLength(2); expect(Intl.Locale).toBeTypeOf('function'); }); + + it('prewarmIntl does not throw when a formatter constructor fails', () => { + vi.stubGlobal('Intl', { ...Intl, DurationFormat: failingFormat }); + + // A locale no other test warms, so the caches cannot hide the failure. + expect(() => { + prewarmIntl('sv'); + }).not.toThrow(); + }); }); diff --git a/apps/mobile/src/lib/intl-cache.ts b/apps/mobile/src/lib/intl-cache.ts index 565689c0fc..093dc85aca 100644 --- a/apps/mobile/src/lib/intl-cache.ts +++ b/apps/mobile/src/lib/intl-cache.ts @@ -80,6 +80,7 @@ function ensureListFormat(locale: string): void { function ensureRelativeTimeFormat(locale: string): void { const language = localeDataLanguage(locale); + ensureNumberFormat(locale); if (!usesRelativeTimePolyfill && shouldPolyfillRelativeTimeFormat(language)) { require('@formatjs/intl-relativetimeformat/polyfill-force.js'); usesRelativeTimePolyfill = true; @@ -191,9 +192,14 @@ export function segmenter(locale: string, options: Intl.SegmenterOptions): Intl. } export function prewarmIntl(locale: string): void { - numberFormat(locale, {}); - listFormat(locale, { type: 'conjunction' }); - relativeTimeFormat(locale, { numeric: 'auto' }); - durationFormat(locale, { style: 'short' }); - segmenter(locale, { granularity: 'grapheme' }); + try { + numberFormat(locale, {}); + listFormat(locale, { type: 'conjunction' }); + relativeTimeFormat(locale, { numeric: 'auto' }); + durationFormat(locale, { style: 'short' }); + segmenter(locale, { granularity: 'grapheme' }); + } catch { + // A prewarm is only a cache fill. Every formatter is built again on demand + // at the real call site, so a failure must not block the app. + } } diff --git a/apps/mobile/src/lib/pr-review/discussion/reaction-pills.test.ts b/apps/mobile/src/lib/pr-review/discussion/reaction-pills.test.ts index 4abd4b6542..f56f427322 100644 --- a/apps/mobile/src/lib/pr-review/discussion/reaction-pills.test.ts +++ b/apps/mobile/src/lib/pr-review/discussion/reaction-pills.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { REACTION_EMOJI, REACTION_LABEL, selectReactionPills } from './reaction-pills'; +import { REACTION_EMOJI, reactionLabel, selectReactionPills } from './reaction-pills'; import { REVIEW_REACTION_CONTENTS } from './review-discussion-types'; describe('selectReactionPills', () => { @@ -41,14 +41,14 @@ describe('selectReactionPills', () => { }); }); -describe('REACTION_EMOJI and REACTION_LABEL', () => { +describe('REACTION_EMOJI and reactionLabel', () => { it('cover all 8 REVIEW_REACTION_CONTENTS', () => { expect(REVIEW_REACTION_CONTENTS).toHaveLength(8); for (const content of REVIEW_REACTION_CONTENTS) { expect(REACTION_EMOJI[content]).toBeTruthy(); expect(typeof REACTION_EMOJI[content]).toBe('string'); - expect(REACTION_LABEL[content]).toBeTruthy(); - expect(typeof REACTION_LABEL[content]).toBe('string'); + expect(reactionLabel(content)).toBeTruthy(); + expect(typeof reactionLabel(content)).toBe('string'); } }); }); diff --git a/apps/mobile/src/lib/pr-review/discussion/reaction-pills.ts b/apps/mobile/src/lib/pr-review/discussion/reaction-pills.ts index 4dae9b1234..d75b54b835 100644 --- a/apps/mobile/src/lib/pr-review/discussion/reaction-pills.ts +++ b/apps/mobile/src/lib/pr-review/discussion/reaction-pills.ts @@ -4,6 +4,8 @@ // (pill + picker) and human a11y labels. `selectReactionPills` keeps // only known contents with count > 0, preserving DTO order. +import { i18n } from '@/i18n'; + import { REVIEW_REACTION_CONTENTS, type ReviewReactionContent, @@ -20,17 +22,21 @@ export const REACTION_EMOJI = { EYES: '👀', } satisfies Record; -export const REACTION_LABEL = { - THUMBS_UP: 'Thumbs up', - THUMBS_DOWN: 'Thumbs down', - LAUGH: 'Laugh', - HOORAY: 'Hooray', - CONFUSED: 'Confused', - HEART: 'Heart', - ROCKET: 'Rocket', - EYES: 'Eyes', +const REACTION_LABEL_KEYS = { + THUMBS_UP: 'prReview.discussion.reactions.thumbsUp', + THUMBS_DOWN: 'prReview.discussion.reactions.thumbsDown', + LAUGH: 'prReview.discussion.reactions.laugh', + HOORAY: 'prReview.discussion.reactions.hooray', + CONFUSED: 'prReview.discussion.reactions.confused', + HEART: 'prReview.discussion.reactions.heart', + ROCKET: 'prReview.discussion.reactions.rocket', + EYES: 'prReview.discussion.reactions.eyes', } satisfies Record; +export function reactionLabel(content: ReviewReactionContent): string { + return i18n.t(REACTION_LABEL_KEYS[content]); +} + const KNOWN_CONTENTS = new Set(REVIEW_REACTION_CONTENTS); export type ReactionPill = { diff --git a/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts b/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts index 30c505f458..3f2eaef70c 100644 --- a/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts +++ b/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts @@ -22,6 +22,7 @@ import { type inferRouterOutputs, type MobileRouter } from '@kilocode/trpc/mobile'; +import { i18n } from '@/i18n'; import { parseTimestamp } from '@/lib/utils'; // GitHub's 8 review-comment reaction content values. The trpc DTO @@ -98,17 +99,23 @@ export function selectThreadAnchorLabel(thread: ReviewThread): string { // No complete original anchor — fall back to a path-only outdated label // (never render a dangling "L"). if (originalLine === null) { - return path ? `Outdated on ${path}${side}` : `Outdated${side}`; + return path + ? i18n.t('prReview.discussion.anchor.outdatedOnPath', { path }) + side + : i18n.t('prReview.discussion.outdated') + side; } const original = thread.originalStartLine && thread.originalStartLine !== originalLine ? `L${thread.originalStartLine}–L${originalLine}` : `L${originalLine}`; - return path ? `Outdated on ${path} ${original}${side}` : `Outdated on ${original}${side}`; + return path + ? i18n.t('prReview.discussion.anchor.outdatedOnPathLines', { path, lines: original }) + side + : i18n.t('prReview.discussion.anchor.outdatedOnLines', { lines: original }) + side; } // File-level (subjectType FILE or no line) — only show path. if (thread.subjectType === 'FILE' || thread.line === null) { - return path ? `File comment on ${path}` : 'File comment'; + return path + ? i18n.t('prReview.discussion.anchor.fileCommentOnPath', { path }) + : i18n.t('prReview.discussion.anchor.fileComment'); } // Active line / range. const line = diff --git a/apps/mobile/src/lib/pr-review/merge/merge-blocked-reasons.ts b/apps/mobile/src/lib/pr-review/merge/merge-blocked-reasons.ts index 7c8542aa37..18bd4e7c84 100644 --- a/apps/mobile/src/lib/pr-review/merge/merge-blocked-reasons.ts +++ b/apps/mobile/src/lib/pr-review/merge/merge-blocked-reasons.ts @@ -6,6 +6,8 @@ // pulling in lucide-react-native (whose ESM build uses `import.meta` in // ways the repo's vitest setup doesn't transform). +import { i18n } from '@/i18n'; + export type PrMergeMethod = 'merge' | 'squash' | 'rebase'; type PrReviewDecision = 'APPROVED' | 'CHANGES_REQUESTED' | 'REVIEW_REQUIRED' | null; @@ -96,63 +98,75 @@ export function getMergeabilityStatus(args: { return 'blocked'; } -const UNKNOWN_REASON: MergeBlockedReason = { - id: 'unknown-state', - iconKind: 'unknown-state', - severity: 'warn', - title: "GitHub hasn't reported a mergeable state", - detail: 'Try refreshing the overview in a moment.', -}; +function unknownReason(): MergeBlockedReason { + return { + id: 'unknown-state', + iconKind: 'unknown-state', + severity: 'warn', + title: i18n.t('prReview.merge.blocked.unknownStateTitle'), + detail: i18n.t('prReview.merge.blocked.unknownStateDetail'), + }; +} -const CONFLICTS_REASON: MergeBlockedReason = { - id: 'conflicts', - iconKind: 'conflicts', - severity: 'destructive', - title: 'Merge conflicts', - detail: 'Resolve the merge conflicts on this branch before merging.', -}; +function conflictsReason(): MergeBlockedReason { + return { + id: 'conflicts', + iconKind: 'conflicts', + severity: 'destructive', + title: i18n.t('prReview.merge.blocked.conflictsTitle'), + detail: i18n.t('prReview.merge.blocked.conflictsDetail'), + }; +} -const REQUIRED_REVIEWS_REASON: MergeBlockedReason = { - id: 'required-reviews', - iconKind: 'required-reviews', - severity: 'warn', - title: 'Required reviews missing', - detail: 'Approvals from the required reviewers are missing or pending.', -}; +function requiredReviewsReason(): MergeBlockedReason { + return { + id: 'required-reviews', + iconKind: 'required-reviews', + severity: 'warn', + title: i18n.t('prReview.merge.blocked.requiredReviewsTitle'), + detail: i18n.t('prReview.merge.blocked.requiredReviewsDetail'), + }; +} -const FAILING_CHECKS_REASON: MergeBlockedReason = { - id: 'failing-checks', - iconKind: 'failing-checks', - severity: 'destructive', - title: 'Failing required checks', - detail: 'Required status checks are failing.', -}; +function failingChecksReason(): MergeBlockedReason { + return { + id: 'failing-checks', + iconKind: 'failing-checks', + severity: 'destructive', + title: i18n.t('prReview.merge.blocked.failingChecksTitle'), + detail: i18n.t('prReview.merge.blocked.failingChecksDetail'), + }; +} -const UNSTABLE_REASON: MergeBlockedReason = { - id: 'unstable-checks', - iconKind: 'unstable-checks', - severity: 'info', - title: 'Some checks are failing', - detail: 'Non-required checks are failing. They will not block the merge.', -}; +function unstableReason(): MergeBlockedReason { + return { + id: 'unstable-checks', + iconKind: 'unstable-checks', + severity: 'info', + title: i18n.t('prReview.merge.blocked.unstableTitle'), + detail: i18n.t('prReview.merge.blocked.unstableDetail'), + }; +} -const DRAFT_REASON: MergeBlockedReason = { - id: 'draft', - iconKind: 'draft', - severity: 'info', - title: 'Draft pull request', - detail: 'Mark the pull request as ready for review before merging.', -}; +function draftReason(): MergeBlockedReason { + return { + id: 'draft', + iconKind: 'draft', + severity: 'info', + title: i18n.t('prReview.merge.blocked.draftTitle'), + detail: i18n.t('prReview.merge.blocked.draftDetail'), + }; +} function behindReason(allowUpdateBranch: boolean): MergeBlockedReason { return { id: 'behind', iconKind: 'behind', severity: 'warn', - title: 'Branch is out of date', + title: i18n.t('prReview.merge.blocked.behindTitle'), detail: allowUpdateBranch - ? 'Update the branch from the base, or rebase, before merging.' - : 'The head branch is behind the base. Rebase or update the branch before merging.', + ? i18n.t('prReview.merge.blocked.behindDetailUpdatable') + : i18n.t('prReview.merge.blocked.behindDetail'), }; } @@ -179,12 +193,12 @@ export function getMergeBlockedReasons(args: MergeBlockedReasonsArgs): MergeBloc switch (args.mergeableState) { case 'dirty': { - push(CONFLICTS_REASON); + push(conflictsReason()); break; } case 'blocked': { - push(REQUIRED_REVIEWS_REASON); - push(FAILING_CHECKS_REASON); + push(requiredReviewsReason()); + push(failingChecksReason()); break; } case 'behind': { @@ -192,22 +206,22 @@ export function getMergeBlockedReasons(args: MergeBlockedReasonsArgs): MergeBloc break; } case 'unstable': { - push(UNSTABLE_REASON); + push(unstableReason()); break; } case 'draft': { - push(DRAFT_REASON); + push(draftReason()); break; } case 'clean': { if (args.mergeable === false) { - push(UNKNOWN_REASON); + push(unknownReason()); } break; } case 'unknown': case null: { - push(UNKNOWN_REASON); + push(unknownReason()); break; } default: { @@ -218,18 +232,20 @@ export function getMergeBlockedReasons(args: MergeBlockedReasonsArgs): MergeBloc id: 'unknown-state', iconKind: 'unknown-state', severity: 'warn', - title: 'This pull request is not mergeable yet', - detail: `GitHub reported a "${args.mergeableState}" mergeable state.`, + title: i18n.t('prReview.merge.blocked.notMergeableTitle'), + detail: i18n.t('prReview.merge.blocked.notMergeableDetail', { + state: args.mergeableState, + }), }); } } if (args.reviewDecision === 'REVIEW_REQUIRED' && args.mergeableState !== 'blocked') { - push(REQUIRED_REVIEWS_REASON); + push(requiredReviewsReason()); } if (args.draft && args.mergeableState !== 'draft') { - push(DRAFT_REASON); + push(draftReason()); } return reasons; @@ -256,18 +272,28 @@ export function getAllowedMergeMethods(repo: PrOverviewRepoSettings): AllowedMer return methods; } -export const PR_MERGE_LABELS = { - merge: 'Create a merge commit', - squash: 'Squash and merge', - rebase: 'Rebase and merge', +// Literal keys, never a template: the catalog check scans the source for the +// keys a lookup passes on, and a computed key is invisible to it. +const PR_MERGE_LABEL_KEYS = { + merge: 'prReview.merge.methodLabels.merge', + squash: 'prReview.merge.methodLabels.squash', + rebase: 'prReview.merge.methodLabels.rebase', } satisfies Record; -export const PR_MERGE_DESCRIPTIONS = { - merge: 'Combine all commits from this branch into the base branch with a merge commit.', - squash: 'Combine all commits from this branch into a single commit on the base branch.', - rebase: 'Replay all commits from this branch onto the base branch without a merge commit.', +const PR_MERGE_DESCRIPTION_KEYS = { + merge: 'prReview.merge.methodDescriptions.merge', + squash: 'prReview.merge.methodDescriptions.squash', + rebase: 'prReview.merge.methodDescriptions.rebase', } satisfies Record; +export function prMergeLabel(method: AllowedMergeMethod): string { + return i18n.t(PR_MERGE_LABEL_KEYS[method]); +} + +export function prMergeDescription(method: AllowedMergeMethod): string { + return i18n.t(PR_MERGE_DESCRIPTION_KEYS[method]); +} + /** The default method the picker selects on first open. */ export function defaultMergeMethodFor(repo: PrOverviewRepoSettings): AllowedMergeMethod { const allowed = getAllowedMergeMethods(repo); diff --git a/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts b/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts index 0632298f5d..92e33a3365 100644 --- a/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts +++ b/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts @@ -16,6 +16,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { prIntentFingerprint } from '@kilocode/app-shared/pr-review'; +import { i18n } from '@/i18n'; import { announceForA11y } from '@/lib/a11y/announce'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { trpcClient, useTRPC } from '@/lib/trpc'; @@ -147,7 +148,7 @@ export function useEnableAutoMergeMutation(ref: PrRef) { onSuccess: () => { // Bare success announcement beside the merge sheet's existing // auto-merge success effect (haptic + refetch + dismiss). - announceForA11y('Auto-merge enabled'); + announceForA11y(i18n.t('prReview.announce.autoMergeEnabled')); }, onError: (error: { message: string }) => { announcingToast.error(error.message); diff --git a/apps/mobile/src/lib/pr-review/use-pr-review-mutations.ts b/apps/mobile/src/lib/pr-review/use-pr-review-mutations.ts index 3dccffc711..686daf5e92 100644 --- a/apps/mobile/src/lib/pr-review/use-pr-review-mutations.ts +++ b/apps/mobile/src/lib/pr-review/use-pr-review-mutations.ts @@ -24,6 +24,7 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { prIntentFingerprint } from '@kilocode/app-shared/pr-review'; +import { i18n } from '@/i18n'; import { announceForA11y } from '@/lib/a11y/announce'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { trpcClient, useTRPC } from '@/lib/trpc'; @@ -92,7 +93,7 @@ export function useCreateReviewCommentMutation(ref: PrRef) { // Bare success announcement beside the composer's existing success // effect (haptic + dismiss). The inline composer error box owns the // persistent inline error; the toast owns the failure announcement. - announceForA11y('Comment posted'); + announceForA11y(i18n.t('prReview.announce.commentPosted')); }, onError: (error: { message: string }) => { announcingToast.error(prOperationToastMessage(error, 'create-comment')); @@ -146,7 +147,7 @@ export function useSubmitReviewMutation(ref: PrRef) { onSuccess: () => { // Bare success announcement beside the submit sheet's existing // success effect (queue clear + haptic + dismiss). - announceForA11y('Review submitted'); + announceForA11y(i18n.t('prReview.announce.reviewSubmitted')); }, onError: (error: { message: string }) => { announcingToast.error(prOperationToastMessage(error, 'submit-review')); diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts index 3cca278ea7..bd7785e878 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts @@ -3,7 +3,6 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { __resetVoiceInputLanguageTagCacheForTests, pickSupportedVoiceInputLanguageTag, - resolveVoiceInputLanguageTag, resolveVoiceInputStartLanguageTag, } from './voice-input-language'; @@ -28,30 +27,6 @@ vi.mock('expo-speech-recognition', () => ({ }, })); -describe('resolveVoiceInputLanguageTag', () => { - it('falls back to en-US when the locales array is empty', () => { - expect(resolveVoiceInputLanguageTag([])).toBe('en-US'); - }); - - it('falls back to en-US when the first locale has no languageTag', () => { - expect(resolveVoiceInputLanguageTag([{}])).toBe('en-US'); - }); - - it('falls back to en-US when the first locale languageTag is empty', () => { - expect(resolveVoiceInputLanguageTag([{ languageTag: '' }])).toBe('en-US'); - }); - - it('returns the first locale languageTag when it is populated', () => { - expect(resolveVoiceInputLanguageTag([{ languageTag: 'nl-NL' }])).toBe('nl-NL'); - }); - - it('ignores later locales', () => { - expect(resolveVoiceInputLanguageTag([{ languageTag: 'fr-FR' }, { languageTag: 'de-DE' }])).toBe( - 'fr-FR' - ); - }); -}); - describe('pickSupportedVoiceInputLanguageTag', () => { it('returns the supported spelling on exact match (device en_US → supported en-US)', () => { expect(pickSupportedVoiceInputLanguageTag(['en_US'], ['en-US'])).toBe('en-US'); @@ -98,6 +73,24 @@ describe('pickSupportedVoiceInputLanguageTag', () => { 'zh-Hant' ); }); + + it('keeps the Traditional script when the device names a Traditional region', () => { + expect(pickSupportedVoiceInputLanguageTag(['zh-Hant', 'zh-TW'], ['zh-CN', 'zh-TW'])).toBe( + 'zh-TW' + ); + }); + + it('maps a Simplified script tag onto the Simplified region', () => { + expect(pickSupportedVoiceInputLanguageTag(['zh-Hans'], ['zh-TW', 'zh-CN'])).toBe('zh-CN'); + }); + + it('maps the HK region to Traditional Chinese', () => { + expect(pickSupportedVoiceInputLanguageTag(['zh-HK'], ['zh-CN', 'zh-TW'])).toBe('zh-TW'); + }); + + it('keeps the old behavior for a non-Chinese tag', () => { + expect(pickSupportedVoiceInputLanguageTag(['de-AT'], ['de-DE', 'de-CH'])).toBe('de-DE'); + }); }); describe('resolveVoiceInputStartLanguageTag', () => { diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.ts b/apps/mobile/src/lib/voice-input/voice-input-language.ts index c28b26a338..e1c900161b 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.ts @@ -1,28 +1,6 @@ import { getLocales } from 'expo-localization'; import { ExpoSpeechRecognitionModule } from 'expo-speech-recognition'; -/** - * Resolve the BCP-47 language tag for voice recognition from the device's - * locale list. The helper is defensive because runtime behavior can diverge - * from the package's static typing: `getLocales()` may return an empty - * array, or the first locale may be missing a tag, so every path falls back - * to `en-US`. The parameter shape is intentionally structural so the caller - * can pass `expo-localization`'s `Locale[]` without a type assertion. - */ -export function resolveVoiceInputLanguageTag(locales: readonly { languageTag?: string }[]): string { - const first = locales[0]; - if (!first) { - return 'en-US'; - } - - const tag = first.languageTag; - if (!tag || tag.length === 0) { - return 'en-US'; - } - - return tag; -} - function normalizeLocale(tag: string): string { return tag.toLowerCase().replaceAll('_', '-'); } @@ -34,6 +12,28 @@ function scriptSubtag(tag: string): string | undefined { .find(part => part.length === 4); } +const CHINESE_REGION_SCRIPTS = new Map([ + ['tw', 'hant'], + ['hk', 'hant'], + ['mo', 'hant'], + ['cn', 'hans'], + ['sg', 'hans'], +]); + +/** Script of a tag. Chinese region tags imply a script, so map those too. */ +function scriptOf(tag: string): string | undefined { + const script = scriptSubtag(tag); + if (script) { + return script; + } + const parts = normalizeLocale(tag).split('-'); + if (parts[0] !== 'zh') { + return undefined; + } + const region = parts.slice(1).find(part => part.length === 2); + return region ? CHINESE_REGION_SCRIPTS.get(region) : undefined; +} + /** * Pick the best supported voice-input language tag from the device's * preferred-language list. Returns the matched tag in the spelling used by @@ -74,9 +74,9 @@ export function pickSupportedVoiceInputLanguageTag( const [deviceLang] = deviceTag.split('-'); const sameLang = normalized.filter(([n]) => n.split('-')[0] === deviceLang); if (sameLang.length > 0) { - const deviceScript = scriptSubtag(deviceTag); + const deviceScript = scriptOf(deviceTag); const sameScript = deviceScript - ? sameLang.find(([n]) => scriptSubtag(n) === deviceScript) + ? sameLang.find(([n]) => scriptOf(n) === deviceScript) : undefined; if (sameScript) { return sameScript[1]; @@ -140,7 +140,7 @@ export async function resolveVoiceInputStartLanguageTag(appLanguage: string): Pr const matchingDeviceTags = deviceTags.filter( tag => normalizeLocale(tag).split('-')[0] === language ); - const preferredTags = scriptSubtag(appLanguage) + const preferredTags = scriptOf(appLanguage) ? [appLanguage, ...matchingDeviceTags] : [...matchingDeviceTags, appLanguage]; diff --git a/tools/oxlint/no-literal-copy/index.ts b/tools/oxlint/no-literal-copy/index.ts index 5e6650ff8f..5eb38242f4 100644 --- a/tools/oxlint/no-literal-copy/index.ts +++ b/tools/oxlint/no-literal-copy/index.ts @@ -165,6 +165,11 @@ function isCopyExpression(node: ESTree.Expression): boolean { if (node.type === 'BinaryExpression' && node.operator === '+') { return isCopyExpression(node.left) || isCopyExpression(node.right); } + // `error.message || 'Something went wrong'`: the fallback is the string the + // user reads whenever the server sends no message, so it is copy. + if (node.type === 'LogicalExpression' && (node.operator === '||' || node.operator === '??')) { + return isCopyExpression(node.left) || isCopyExpression(node.right); + } return false; } @@ -330,8 +335,13 @@ const noLiteralCopyRule = defineRule({ return; } } - // Bare toast('message') - if (node.callee.type === 'Identifier' && node.callee.name === 'toast') { + // Bare toast('message'), and announceForA11y('message') — a screen + // reader speaks the argument, so an English literal there ships + // English to every locale exactly like a visible label does. + if ( + node.callee.type === 'Identifier' && + (node.callee.name === 'toast' || node.callee.name === 'announceForA11y') + ) { const first = node.arguments[0]; if (first && isStringArgument(first)) { context.report({ node, messageId: 'literalCopy' }); From 0f9b4786474b8cb02764cc6aeabdc902033634c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 18:22:08 +0200 Subject: [PATCH 06/14] fix(mobile): localize the remaining app-side copy Move the rest of the mobile app's English strings into the catalog, and fix the four bugs the audit round confirmed. Copy: attachment upload failures, voice-input feedback, pull request mutation errors, external-link and invoice and remote-spawn toasts, Kilo Pass purchase errors, Code Reviewer errors, and Security Agent mutation copy. 43 new keys, translated into all 87 catalogs. Bugs: - The audit report labelled its event times UTC but rendered them in the device time zone. One call site was missed last round. - poll-response.ts held two English sign-in errors. - The merge announcement spelled English although its catalog keys existed. - Voice input picked the wrong script for a region-only tag: zh-MY, sr-RS, pa-PK, and az-IR all resolved wrongly. Chinese now follows the same rule resolve-language.ts already states, and a small region map covers sr, pa, az, and uz. - Six catalog values had come back in English (fil, mg, ms, so). Guard: no-literal-copy now reads a conditional expression, so a ternary can no longer hide copy. That change alone found three more English leaks, all fixed here. KiloClaw is allowlisted as a brand name. Copy that lived in a module-level constant now resolves per call, so an in-place language change no longer leaves stale words on screen. --- .../agents/attachment-chip-description.ts | 6 +- .../src/components/agents/chat-composer.tsx | 4 +- .../agents/chat-link-actions.test.ts | 1 - .../components/agents/chat-link-actions.ts | 2 +- .../components/agents/chat-markdown-text.tsx | 2 +- .../components/agents/new-session-prompt.tsx | 4 +- .../agents/use-remote-spawn-dispatch.test.ts | 4 +- .../use-message-input-clipboard-image-hint.ts | 4 +- .../kilo-pass-subscription-screen.test.ts | 1 - .../security-agent/audit-report-screen.tsx | 2 +- .../dashboard-screen.mounted.test.tsx | 4 +- .../security-agent/dashboard-screen.tsx | 8 +-- .../dismiss-finding-screen.mounted.test.tsx | 2 +- .../security-agent/dismiss-finding-screen.tsx | 6 +- apps/mobile/src/i18n/locales/af.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/am.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ar.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/az.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/be.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/bg.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/bn.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/bs.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ca.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ckb.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/cs.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/cy.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/da.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/de.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/el.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/en.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/es.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/et.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/eu.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/fa.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/fi.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/fil.json | 62 ++++++++++++++++--- apps/mobile/src/i18n/locales/fr.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ga.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/gl.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/gu.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ha.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/he.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/hi.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/hr.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ht.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/hu.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/hy.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/id.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ig.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/is.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/it.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ja.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ka.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/kk.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/km.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/kn.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ko.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/lo.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/lt.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/lv.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/mg.json | 60 +++++++++++++++--- apps/mobile/src/i18n/locales/mi.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/mk.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ml.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/mn.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/mr.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ms.json | 60 +++++++++++++++--- apps/mobile/src/i18n/locales/mt.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/my.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/nb.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ne.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/nl.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/om.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/or.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/pa.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/pl.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ps.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/pt-BR.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/pt.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ro.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ru.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/si.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/sk.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/sl.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/so.json | 60 +++++++++++++++--- apps/mobile/src/i18n/locales/sq.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/sr.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/sv.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/sw.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ta.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/te.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/th.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/tr.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/uk.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/ur.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/uz.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/vi.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/yo.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/zh-Hans.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/zh-Hant.json | 58 ++++++++++++++--- apps/mobile/src/i18n/locales/zu.json | 58 ++++++++++++++--- apps/mobile/src/i18n/resolve-language.ts | 7 +-- .../agent-attachment-types.ts | 18 +++--- .../src/lib/agent-attachments/upload-task.ts | 3 +- .../use-agent-attachment-upload.ts | 4 +- .../agent-attachments/use-clipboard-paste.ts | 6 +- apps/mobile/src/lib/auth/poll-response.ts | 4 +- apps/mobile/src/lib/external-link.ts | 8 ++- .../hooks/use-code-reviewer-repo-selection.ts | 3 +- .../mobile/src/lib/hooks/use-code-reviewer.ts | 5 +- .../lib/hooks/use-security-agent-mutations.ts | 22 +++---- .../kilo-pass/subscription-page-copy.test.ts | 11 +--- .../lib/kilo-pass/subscription-page-copy.ts | 4 -- .../kilo-pass/use-store-kilo-pass-purchase.ts | 18 +++--- .../lib/organization-invoice-download.test.ts | 20 +++--- .../src/lib/organization-invoice-download.ts | 11 ++-- .../pr-review/merge/use-pr-merge-mutations.ts | 4 +- .../lib/pr-review/mutation-error-display.ts | 20 +++--- .../src/lib/remote-spawn-admission.test.ts | 6 +- apps/mobile/src/lib/remote-spawn-admission.ts | 6 +- apps/mobile/src/lib/ui-deadline.ts | 6 +- .../voice-input/use-voice-input-actions.ts | 6 +- .../use-voice-input-feedback.test.ts | 2 +- .../lib/voice-input/voice-input-feedback.ts | 8 +-- .../voice-input/voice-input-language.test.ts | 16 +++++ .../lib/voice-input/voice-input-language.ts | 31 +++++++--- .../src/lib/voice-input/voice-input-state.ts | 24 +++---- tools/oxlint/no-literal-copy/allowlist.json | 2 +- tools/oxlint/no-literal-copy/index.ts | 5 ++ 129 files changed, 4533 insertions(+), 853 deletions(-) diff --git a/apps/mobile/src/components/agents/attachment-chip-description.ts b/apps/mobile/src/components/agents/attachment-chip-description.ts index 514c24b574..b01923f289 100644 --- a/apps/mobile/src/components/agents/attachment-chip-description.ts +++ b/apps/mobile/src/components/agents/attachment-chip-description.ts @@ -87,8 +87,10 @@ export function describeAttachmentChip(state: ChipStateInput): ChipDescription { sizeText: formatFileSize(size, i18n.language), progressText, message, - accessibilityLabel: - message !== null ? `${filename}, ${message}` : `${filename}, ${progressText}`, + accessibilityLabel: i18n.t('chat.attachmentPreview.accessibility', { + filename, + status: message ?? progressText, + }), showRetry: isRetryable, showRemove: true, }; diff --git a/apps/mobile/src/components/agents/chat-composer.tsx b/apps/mobile/src/components/agents/chat-composer.tsx index 3824d3bdbe..21bcbd5863 100644 --- a/apps/mobile/src/components/agents/chat-composer.tsx +++ b/apps/mobile/src/components/agents/chat-composer.tsx @@ -76,7 +76,7 @@ import { import { describeClassificationFailure } from '@/lib/agent-attachments/validate'; import { useAndroidPendingPickerRecovery } from '@/lib/agent-attachments/use-android-pending-picker-recovery'; import { - CLIPBOARD_PASTE_EMPTY_MESSAGE, + clipboardPasteEmptyMessage, useClipboardPaste, } from '@/lib/agent-attachments/use-clipboard-paste'; import { type ModelOption } from '@/lib/hooks/use-available-models'; @@ -543,7 +543,7 @@ export function ChatComposer({ }, onFailure: reason => { toast.error( - reason === 'empty' ? CLIPBOARD_PASTE_EMPTY_MESSAGE : describeClassificationFailure(reason) + reason === 'empty' ? clipboardPasteEmptyMessage() : describeClassificationFailure(reason) ); }, maxBytes: AGENT_ATTACHMENT_MAX_BYTES, diff --git a/apps/mobile/src/components/agents/chat-link-actions.test.ts b/apps/mobile/src/components/agents/chat-link-actions.test.ts index 3137f9f421..15b3cd9d46 100644 --- a/apps/mobile/src/components/agents/chat-link-actions.test.ts +++ b/apps/mobile/src/components/agents/chat-link-actions.test.ts @@ -84,7 +84,6 @@ describe('chat link actions', () => { await performChatLinkAction('open', 'https://kilo.ai/docs?source=chat#links'); expect(openExternalUrl).toHaveBeenCalledWith('https://kilo.ai/docs?source=chat#links', { - label: 'link', retryOnError: true, }); }); diff --git a/apps/mobile/src/components/agents/chat-link-actions.ts b/apps/mobile/src/components/agents/chat-link-actions.ts index cc2487ed59..0cc0fde8b7 100644 --- a/apps/mobile/src/components/agents/chat-link-actions.ts +++ b/apps/mobile/src/components/agents/chat-link-actions.ts @@ -72,7 +72,7 @@ function showRetryableError(message: string, retry: () => Promise) { export async function performChatLinkAction(action: ChatLinkAction, href: string): Promise { if (action === 'open') { - await openExternalUrl(href, { label: 'link', retryOnError: true }); + await openExternalUrl(href, { retryOnError: true }); return; } diff --git a/apps/mobile/src/components/agents/chat-markdown-text.tsx b/apps/mobile/src/components/agents/chat-markdown-text.tsx index 6247c6c7cb..c193e68984 100644 --- a/apps/mobile/src/components/agents/chat-markdown-text.tsx +++ b/apps/mobile/src/components/agents/chat-markdown-text.tsx @@ -69,7 +69,7 @@ export function ChatMarkdownText(props: Readonly) { return; } if (action === 'open') { - void openExternalUrl(href, { label: 'link' }); + void openExternalUrl(href); return; } if (action === 'share') { diff --git a/apps/mobile/src/components/agents/new-session-prompt.tsx b/apps/mobile/src/components/agents/new-session-prompt.tsx index 3b72185977..b1247b2d67 100644 --- a/apps/mobile/src/components/agents/new-session-prompt.tsx +++ b/apps/mobile/src/components/agents/new-session-prompt.tsx @@ -33,7 +33,7 @@ import { VoiceInputButton, VoiceInputStatus } from '@/components/voice-input-con import { describeClassificationFailure } from '@/lib/agent-attachments/validate'; import { AGENT_ATTACHMENT_MAX_BYTES } from '@/lib/agent-attachments/constants'; import { - CLIPBOARD_PASTE_EMPTY_MESSAGE, + clipboardPasteEmptyMessage, useClipboardPaste, } from '@/lib/agent-attachments/use-clipboard-paste'; @@ -184,7 +184,7 @@ export function NewSessionPrompt({ }, onFailure: reason => { toast.error( - reason === 'empty' ? CLIPBOARD_PASTE_EMPTY_MESSAGE : describeClassificationFailure(reason) + reason === 'empty' ? clipboardPasteEmptyMessage() : describeClassificationFailure(reason) ); }, maxBytes: AGENT_ATTACHMENT_MAX_BYTES, diff --git a/apps/mobile/src/components/agents/use-remote-spawn-dispatch.test.ts b/apps/mobile/src/components/agents/use-remote-spawn-dispatch.test.ts index f317f0d916..3a0d649907 100644 --- a/apps/mobile/src/components/agents/use-remote-spawn-dispatch.test.ts +++ b/apps/mobile/src/components/agents/use-remote-spawn-dispatch.test.ts @@ -10,7 +10,7 @@ import { type SharePayload, } from '@/lib/share-payload'; import { buildCreateRemoteSessionInput } from '@/lib/hooks/remote-instance-spawn-classifier'; -import { REMOTE_SPAWN_FILES_NOT_SUPPORTED_TOAST } from '@/lib/remote-spawn-admission'; +import { remoteSpawnFilesNotSupportedToast } from '@/lib/remote-spawn-admission'; import { useRemoteSpawnDispatch } from './use-remote-spawn-dispatch'; @@ -410,7 +410,7 @@ describe('useRemoteSpawnDispatch spawn input chain', () => { onStart(); expect(onSpawnAdmitted).not.toHaveBeenCalled(); expect(spawnMock).not.toHaveBeenCalled(); - expect(toastErrorMock).toHaveBeenCalledWith(REMOTE_SPAWN_FILES_NOT_SUPPORTED_TOAST); + expect(toastErrorMock).toHaveBeenCalledWith(remoteSpawnFilesNotSupportedToast()); }); it('does not call the admitted callback without a target instance', () => { diff --git a/apps/mobile/src/components/kilo-chat/use-message-input-clipboard-image-hint.ts b/apps/mobile/src/components/kilo-chat/use-message-input-clipboard-image-hint.ts index 9374734b17..162d6ae12b 100644 --- a/apps/mobile/src/components/kilo-chat/use-message-input-clipboard-image-hint.ts +++ b/apps/mobile/src/components/kilo-chat/use-message-input-clipboard-image-hint.ts @@ -2,7 +2,7 @@ import { toast } from 'sonner-native'; import { i18n } from '@/i18n'; import { - CLIPBOARD_PASTE_EMPTY_MESSAGE, + clipboardPasteEmptyMessage, useClipboardPaste, } from '@/lib/agent-attachments/use-clipboard-paste'; import { buildAttachmentUnreadableToast } from './message-attachment-state'; @@ -29,7 +29,7 @@ export function useMessageInputClipboardImageHint({ onFailure: reason => { toast.error( reason === 'empty' - ? CLIPBOARD_PASTE_EMPTY_MESSAGE + ? clipboardPasteEmptyMessage() : buildAttachmentUnreadableToast(i18n.t('chat.attachment.pastedImage')) ); }, diff --git a/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.test.ts b/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.test.ts index df72866d1b..817264630d 100644 --- a/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.test.ts +++ b/apps/mobile/src/components/kilo-pass/kilo-pass-subscription-screen.test.ts @@ -118,7 +118,6 @@ vi.mock('@/lib/kilo-pass/navigation', () => ({ vi.mock('@/lib/kilo-pass/subscription-page-copy', () => ({ formatKiloPassTierDescription: () => 'description', - KILO_PASS_SUBSCRIPTION_HEADER_DESCRIPTION: '', })); vi.mock('@/lib/kilo-pass/use-store-kilo-pass-purchase', () => ({ diff --git a/apps/mobile/src/components/security-agent/audit-report-screen.tsx b/apps/mobile/src/components/security-agent/audit-report-screen.tsx index 9568c7b630..02366a1534 100644 --- a/apps/mobile/src/components/security-agent/audit-report-screen.tsx +++ b/apps/mobile/src/components/security-agent/audit-report-screen.tsx @@ -146,7 +146,7 @@ function FindingSection({ finding }: Readonly<{ finding: SecurityFindingAuditSec {event.label} - {formatDate(parseTimestamp(event.occurredAt), i18n.language)} ·{' '} + {formatDate(parseTimestamp(event.occurredAt), i18n.language, { timeZone: 'UTC' })} ·{' '} {event.actor.displayName} diff --git a/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx b/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx index c4eaa86863..f29d8333e2 100644 --- a/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx +++ b/apps/mobile/src/components/security-agent/dashboard-screen.mounted.test.tsx @@ -151,8 +151,8 @@ vi.mock('@/components/security-agent/security-command-retry-card', () => ({ vi.mock('@/lib/hooks/use-security-agent-mutations', () => ({ isSecurityConfigurationError: (error: unknown) => error instanceof Error && error.message === CONFIGURATION_ERROR_MESSAGE, - SECURITY_CONFIGURATION_COPY: CONFIGURATION_COPY, - SECURITY_SYNC_RECONCILE_COPY: RECONCILE_COPY, + securityConfigurationCopy: () => CONFIGURATION_COPY, + securitySyncReconcileCopy: () => RECONCILE_COPY, isSecuritySyncRetryable: (error: unknown) => { const message = error instanceof Error ? error.message : ''; return !( diff --git a/apps/mobile/src/components/security-agent/dashboard-screen.tsx b/apps/mobile/src/components/security-agent/dashboard-screen.tsx index a901717216..58acf40e78 100644 --- a/apps/mobile/src/components/security-agent/dashboard-screen.tsx +++ b/apps/mobile/src/components/security-agent/dashboard-screen.tsx @@ -36,8 +36,8 @@ import { import { isSecurityConfigurationError, isSecuritySyncRetryable, - SECURITY_CONFIGURATION_COPY, - SECURITY_SYNC_RECONCILE_COPY, + securityConfigurationCopy, + securitySyncReconcileCopy, } from '@/lib/hooks/use-security-agent-mutations'; import { useSecurityDismissFailures } from '@/lib/hooks/use-security-dismiss-draft'; import { useMutationOutbox } from '@/lib/persist/use-mutation-outbox'; @@ -330,7 +330,7 @@ export function DashboardScreen({ scope }: Readonly<{ scope: string }>) { {triggerSync.isError ? ( {isSecurityConfigurationError(triggerSync.error) - ? SECURITY_CONFIGURATION_COPY + ? securityConfigurationCopy() : triggerSync.error.message} ) : null} @@ -352,7 +352,7 @@ export function DashboardScreen({ scope }: Readonly<{ scope: string }>) { {reconcileRows.map(row => ( { const input = row.input as { repoFullName?: string }; diff --git a/apps/mobile/src/components/security-agent/dismiss-finding-screen.mounted.test.tsx b/apps/mobile/src/components/security-agent/dismiss-finding-screen.mounted.test.tsx index 5e3bbede74..73129fcf20 100644 --- a/apps/mobile/src/components/security-agent/dismiss-finding-screen.mounted.test.tsx +++ b/apps/mobile/src/components/security-agent/dismiss-finding-screen.mounted.test.tsx @@ -85,7 +85,7 @@ vi.mock('@/lib/hooks/use-security-dismiss-draft', () => ({ vi.mock('@/lib/hooks/use-security-agent-mutations', () => ({ isSecurityConfigurationError: (error: unknown) => error instanceof Error && error.message === CONFIGURATION_ERROR_MESSAGE, - SECURITY_CONFIGURATION_COPY: CONFIGURATION_COPY, + securityConfigurationCopy: () => CONFIGURATION_COPY, isSecuritySyncRetryable: (error: unknown) => { const message = error instanceof Error ? error.message : ''; return !( diff --git a/apps/mobile/src/components/security-agent/dismiss-finding-screen.tsx b/apps/mobile/src/components/security-agent/dismiss-finding-screen.tsx index bfcde6bb67..d5f437e412 100644 --- a/apps/mobile/src/components/security-agent/dismiss-finding-screen.tsx +++ b/apps/mobile/src/components/security-agent/dismiss-finding-screen.tsx @@ -15,7 +15,7 @@ import { useSecurityAgentCapability } from '@/lib/hooks/use-security-agent'; import { isSecurityConfigurationError, isSecuritySyncRetryable, - SECURITY_CONFIGURATION_COPY, + securityConfigurationCopy, } from '@/lib/hooks/use-security-agent-mutations'; import { useSecurityDismissDraft } from '@/lib/hooks/use-security-dismiss-draft'; import { useDismissSecurityFinding, useSecurityFinding } from '@/lib/hooks/use-security-findings'; @@ -110,7 +110,7 @@ export function DismissFindingScreen({ scope, findingId }: Readonly {isSecurityConfigurationError(dismissFinding.error) - ? SECURITY_CONFIGURATION_COPY + ? securityConfigurationCopy() : dismissFinding.error.message} )} diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index aa5c30b14e..452f8cf612 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -24,7 +24,10 @@ "required": "vereis", "error": "fout: {{error}}", "back": "Terug", - "somethingWentWrong": "Iets het verkeerd geloop" + "somethingWentWrong": "Iets het verkeerd geloop", + "couldNotOpen": "Kon nie {{label}} oopmaak nie", + "link": "skakel", + "takingLonger": "Dit neem langer as verwag. Jy kan dit toemaak en weer nagaan." }, "language": { "title": "Taal", @@ -576,6 +579,12 @@ "commentPosted": "Kommentaar geplaas", "reviewSubmitted": "Resensie ingedien", "autoMergeEnabled": "Outo-merge geaktiveer" + }, + "mutationError": { + "commentNotPosted": "Hierdie kommentaar kan nie geplaas word nie. Die gekose lyn het dalk verander, of die PR is dalk bygewerk.", + "reviewNotSubmitted": "Hierdie resensie kan nie soos dit is ingedien word nie. Die PR het dalk verander, of jy kan nie jou eie trekversoek resenseer nie.", + "couldNotPostComment": "Kon nie kommentaar plaas nie.", + "couldNotSubmitReview": "Kon nie resensie indien nie. Kontroleer jou verbinding en probeer weer." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Lêer is leeg", "classificationTooLarge": "Lêers moet 20 MB of kleiner wees", "classificationUnreadable": "Kon nie hierdie lêer lees nie", - "announceUploaded": "Aanhegsel opgelaai" + "announceUploaded": "Aanhegsel opgelaai", + "cantUpload": "Hierdie lêer kan nie opgelaai word nie.", + "networkError": "Netwerkfout", + "uploadFailed": "Oplaai het misluk", + "failedToUploadFile": "Kon lêer nie oplaai nie: {{reason}}", + "nothingToPaste": "Niks om te plak nie" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Vonke", "strongArm": "Sterk arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Hierdie instansie kan nie lêers ontvang nie." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Geen besluit", "noResult": "Geen resultaat" }, - "eyebrow": "Kode-hersiener" + "eyebrow": "Kode-hersiener", + "updateFailed": "Kon nie resenseerder bywerk nie", + "configSaveFailed": "Kon nie resensiekonfigurasie stoor nie" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Bestaande regstellings in die tou", "analysisComplete": "Analise voltooi", "syncComplete": "Sinchronisasie voltooi" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Veiligheidsdiens is nie gekonfigureer nie. Herindiening kan nie slaag totdat dit reggestel is nie.", + "syncMayNotHaveCompleted": "'n Sinkronisasie het dalk nie voltooi nie. Probeer weer om dit te versoen, of gooi dit weg.", + "syncInProgress": "'n Veiligheidsinkronisasie is reeds aan die gang. Probeer asseblief weer.", + "dismissalInProgress": "Hierdie van-die-hand-maak is reeds aan die gang. Probeer asseblief weer.", + "couldNotReadPendingSyncs": "Kon nie hangende sinkronisasies lees nie. Probeer weer." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Hierdie toestel kan nie vanlyn transkribeer nie. Jou opname word na {{provider}} gestuur om dit in teks te verander. Kilo stoor nie die klank nie.", "allow": "Laat toe", "start": "Begin steminvoer", - "stop": "Stop steminvoer" + "stop": "Stop steminvoer", + "restricted": "Steminvoer is op hierdie toestel beperk.", + "micRequired": "Mikrofoontoegang word vir steminvoer vereis.", + "micOff": "Mikrofoontoegang is af. Aktiveer dit in Instellings om steminvoer te gebruik.", + "micOffTitle": "Mikrofoontoegang is af", + "noSpeech": "Geen spraak bespeur nie. Tik die mikrofoon om weer te probeer.", + "needsConnection": "Steminvoer benodig tans 'n verbinding. Probeer weer.", + "busy": "Steminvoer is besig. Probeer weer.", + "stopped": "Steminvoer het gestop. Tik die mikrofoon om weer te probeer.", + "unavailableDevice": "Steminvoer is nie op hierdie toestel beskikbaar nie.", + "unavailableLanguage": "Steminvoer is nie vir hierdie toesteltaal beskikbaar nie." }, "share": { "title": "Deel na Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Hierdie Kilo Pass word op die web bestuur.", "legalDisclosure": "Kilo Pass is 'n outomaties-hernubare maandelikse intekening. Betaling word by bevestiging van aankoop van jou Apple ID gehef. Intekeninge hernu elke maand outomaties teen die prys wat vertoon word, tensy dit minstens 24 uur voor die einde van die huidige tydperk gekanselleer word. Bestuur of kanselleer enige tyd in jou App Store-rekeninginstellings.", "legalPrivacyPolicy": "Privaatheidsbeleid", - "legalTermsOfUse": "Gebruiksvoorwaardes (EULA)" + "legalTermsOfUse": "Gebruiksvoorwaardes (EULA)", + "purchaseNotLinked": "Hierdie App Store-aankoop is nie aan jou Kilo-rekening gekoppel nie. Maak seker jy is aangemeld by die Apple ID wat die aankoop gemaak het, en probeer dan weer.", + "purchaseDifferentAccount": "Hierdie App Store-aankoop is nie aan jou Kilo-rekening gekoppel nie. Teken in by die Apple-rekening wat vir die aankoop gebruik is, en probeer dan weer.", + "restoreFailed": "Kon nie aankope herstel nie. Probeer weer.", + "purchaseFailed": "Kon nie aankoop voltooi nie.", + "purchaseStartFailed": "Kon nie App Store-aankoop begin nie." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Oop", "statusPaid": "Betaal", "statusVoid": "Ongeldig", - "title": "Fakture" + "title": "Fakture", + "downloadFailed": "Kon nie faktuur aflaai nie. Kontroleer jou verbinding en probeer weer.", + "sharingUnavailable": "Deling is nie op hierdie toestel beskikbaar nie." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Aanmelding het misluk. Probeer asseblief weer.", "networkError": "Netwerkfout. Probeer asseblief weer.", "accessDeniedByUser": "Toegang deur gebruiker geweier", - "codeExpired": "Kode verval" + "codeExpired": "Kode verval", + "tooManySignInAttempts": "Te veel aanmeldpogings. Wag asseblief en probeer weer." }, "models": { "dataCollected": "Data ingesamel", diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 222ad1dbd9..1c8dac0f3f 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -24,7 +24,10 @@ "required": "ይፈለጋል", "error": "ስህተት: {{error}}", "back": "ተመለስ", - "somethingWentWrong": "አንድ ችግር ተከስቷል" + "somethingWentWrong": "አንድ ችግር ተከስቷል", + "couldNotOpen": "{{label}}ን መክፈት አልተቻለም", + "link": "አገናኝ", + "takingLonger": "ይህ ከተጠበቀው በላይ ጊዜ ይወስዳል። ይህን ዝግተው እንደገና መፈተሽ ይችላሉ።" }, "language": { "title": "ቋንቋ", @@ -576,6 +579,12 @@ "commentPosted": "አስተያየት ተለጥፏል", "reviewSubmitted": "ግምገማ ቀርቧል", "autoMergeEnabled": "ራስ-ሰር ውህደት ነቅቷል" + }, + "mutationError": { + "commentNotPosted": "ይህ አስተያየት ሊለጠፍ አይችልም። የተመረጠው መስመር ተለውጦ ሊሆን ይችላል፣ ወይም PR ተዘምኗል።", + "reviewNotSubmitted": "ይህ ግምገማ እንዳለ ሊቀርብ አይችልም። PR ተለውጦ ሊሆን ይችላል፣ ወይም የራስዎን የጎተራ ጥያቄ መገምገም አይችሉም።", + "couldNotPostComment": "አስተያየት መለጠፍ አልተቻለም።", + "couldNotSubmitReview": "ግምገማውን ማስገባት አልተቻለም። ግንኙነትዎን ያረጋግጡ እና እንደገና ይሞክሩ።" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ፋይሉ ባዶ ነው", "classificationTooLarge": "ፋይሎች 20 MB ወይም ከዚያ ያነሱ መሆን አለባቸው", "classificationUnreadable": "ይህን ፋይል ማንበብ አልተቻለም", - "announceUploaded": "ዓባሪ ተጭኗል" + "announceUploaded": "ዓባሪ ተጭኗል", + "cantUpload": "ይህ ፋይል መጫን አይቻልም።", + "networkError": "የአውታረ መረብ ስህተት", + "uploadFailed": "መጫን አልተሳካም", + "failedToUploadFile": "ፋይሉን መጫን አልተሳካም: {{reason}}", + "nothingToPaste": "የሚለጠፍ ነገር የለም" }, "attachmentPreview": { "accessibility": "{{filename}}፣ {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ብልጭታዎች", "strongArm": "ጠንካራ ክንድ", "talisman": "ታሊስማን" - } + }, + "remoteSpawnFilesNotSupported": "ይህ አጋጣሚ ፋይሎች መቀበል አይችልም።" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "ምንም ውሳኔ", "noResult": "ምንም ውጤት" }, - "eyebrow": "የኮድ ገምጋሚ" + "eyebrow": "የኮድ ገምጋሚ", + "updateFailed": "ገምጋሚውን ማዘመን አልተሳካም", + "configSaveFailed": "የግምገማ ውቅርን ማስቀመጥ አልተሳካም" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ነባር ማስተካከያዎች በወረፋ ላይ ናቸው", "analysisComplete": "ትንታኔ ተጠናቋል", "syncComplete": "ማመሳሰል ተጠናቋል" + }, + "mutations": { + "serviceNotConfiguredResubmit": "የደህንነት አገልግሎት አልተዋቀረም። ይህ እስካልተስተካከለ ድረስ እንደገና ማስገባት ሊሳካ አይችልም።", + "syncMayNotHaveCompleted": "ማመሳሰል ያልተጠናቀቀ ሊሆን ይችላል። ለማስታረቅ እንደገና ይሞክሩ፣ ወይም ያስወግዱት።", + "syncInProgress": "የደህንነት ማመሳሰል ቀድሞውኑ በሂደት ላይ ነው። እባክዎ እንደገና ይሞክሩ።", + "dismissalInProgress": "ይህ ማስወገድ ቀድሞውኑ በሂደት ላይ ነው። እባክዎ እንደገና ይሞክሩ።", + "couldNotReadPendingSyncs": "በመጠባበቅ ላይ ያሉ ማመሳሰሎችን ማንበብ አልተቻለም። እንደገና ይሞክሩ።" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ይህ መሣሪያ ከመስመር ውጭ መገልበጥ አይችልም። ቅጂዎ ወደ ጽሑፍ ለመቀየር ወደ {{provider}} ይላካል። Kilo ድምጹን አያከማችም።", "allow": "ይፍቀዱ", "start": "የድምፅ ግብዓት ይጀምሩ", - "stop": "የድምፅ ግብዓት ያቁሙ" + "stop": "የድምፅ ግብዓት ያቁሙ", + "restricted": "የድምፅ ግብዓት በዚህ መሣሪያ ላይ የተገደበ ነው።", + "micRequired": "ለድምፅ ግብዓት የማይክሮፎን መዳረሻ ያስፈልጋል።", + "micOff": "የማይክሮፎን መዳረሻ ጠፍቷል። የድምፅ ግብዓት ለመጠቀም በቅንብሮች ውስጥ ያንቁት።", + "micOffTitle": "የማይክሮፎን መዳረሻ ጠፍቷል", + "noSpeech": "ምንም ንግግር አልተገኘም። እንደገና ለመሞከር ማይክሮፎኑን ይንኩ።", + "needsConnection": "የድምፅ ግብዓት አሁን ግንኙነት ይፈልጋል። እንደገና ይሞክሩ።", + "busy": "የድምፅ ግብዓት ስራ ላይ ነው። እንደገና ይሞክሩ።", + "stopped": "የድምፅ ግብዓት ቆሟል። እንደገና ለመሞከር ማይክሮፎኑን ይንኩ።", + "unavailableDevice": "የድምፅ ግብዓት በዚህ መሣሪያ ላይ አይገኝም።", + "unavailableLanguage": "የድምፅ ግብዓት ለዚህ የመሣሪያ ቋንቋ አይገኝም።" }, "share": { "title": "ወደ Kilo ያጋሩ", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ይህ Kilo Pass በድር ላይ የሚተዳደር ነው።", "legalDisclosure": "Kilo Pass በራስ-ሰር የሚታደስ ወርሃዊ ምዝገባ ነው። ክፍያው ግዢውን ሲያረጋግጡ በApple ID ዎ ላይ ይጠየቃል። ምዝገባዎች ከወቅቱ ጊዜ ማብቂያ ቢያንስ 24 ሰዓታት በፊት ካልተሰረዙ በስተቀር በየወሩ በተጠቀሰው ዋጋ በራስ-ሰር ይታደሳሉ። በApp Store መለያ ቅንብሮችዎ ውስጥ በማንኛውም ጊዜ ያስተዳድሩ ወይም ይሰርዙ።", "legalPrivacyPolicy": "የግላዊነት ፖሊሲ", - "legalTermsOfUse": "የአጠቃቀም ውሎች (EULA)" + "legalTermsOfUse": "የአጠቃቀም ውሎች (EULA)", + "purchaseNotLinked": "ይህ የApp Store ግዢ ከKilo መለያዎ ጋር አልተገናኘም። ግዢውን ባደረገው Apple ID መግባትዎን ያረጋግጡ፣ ከዚያ እንደገና ይሞክሩ።", + "purchaseDifferentAccount": "ይህ የApp Store ግዢ ከKilo መለያዎ ጋር አልተገናኘም። ለግዢው ወደተጠቀመው የApple መለያ ይግቡ፣ ከዚያ እንደገና ይሞክሩ።", + "restoreFailed": "ግዢዎችን መመለስ አልተሳካም። እንደገና ይሞክሩ።", + "purchaseFailed": "ግዢውን ማጠናቀቅ አልተሳካም።", + "purchaseStartFailed": "የApp Store ግዢን መጀመር አልተሳካም።" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ክፍት", "statusPaid": "የተከፈለ", "statusVoid": "ልክ ያልሆነ", - "title": "ደረሰኞች" + "title": "ደረሰኞች", + "downloadFailed": "ደረሰኙን ማውረድ አልተቻለም። ግንኙነትዎን ያረጋግጡ እና እንደገና ይሞክሩ።", + "sharingUnavailable": "በዚህ መሣሪያ ላይ ማጋራት አይገኝም።" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "መግባቱ አልተሳካም። እባክዎ እንደገና ይሞክሩ።", "networkError": "የአውታረ መረብ ስህተት። እባክዎ እንደገና ይሞክሩ።", "accessDeniedByUser": "በተጠቃሚው መዳረሻ ተከልክሏል", - "codeExpired": "ኮዱ ጊዜው አልፏል" + "codeExpired": "ኮዱ ጊዜው አልፏል", + "tooManySignInAttempts": "በጣም ብዙ የመግቢያ ሙከራዎች። እባክዎ ይጠብቁ እና እንደገና ይሞክሩ።" }, "models": { "dataCollected": "የተሰበሰበ መረጃ", diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 45eac99727..83a312dd9e 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -24,7 +24,10 @@ "notNow": "ليس الآن", "continue": "متابعة", "back": "رجوع", - "somethingWentWrong": "حدث خطأ ما" + "somethingWentWrong": "حدث خطأ ما", + "couldNotOpen": "تعذّر فتح {{label}}", + "link": "رابط", + "takingLonger": "يستغرق هذا وقتًا أطول من المتوقع. يمكنك إغلاق هذا والتحقق مرة أخرى." }, "language": { "title": "اللغة", @@ -283,7 +286,12 @@ "classificationEmpty": "الملف فارغ", "classificationTooLarge": "يجب أن يكون حجم الملفات 20 MB أو أقل", "classificationUnreadable": "تعذّرت قراءة هذا الملف", - "announceUploaded": "تم رفع المرفق" + "announceUploaded": "تم رفع المرفق", + "cantUpload": "لا يمكن رفع هذا الملف.", + "networkError": "خطأ في الشبكة", + "uploadFailed": "فشل الرفع", + "failedToUploadFile": "فشل رفع الملف: {{reason}}", + "nothingToPaste": "لا يوجد شيء للصق" }, "attachmentPreview": { "accessibility": "{{filename}}، {{status}}", @@ -749,7 +757,8 @@ "sparkles": "بريق", "strongArm": "ذراع قوية", "talisman": "طلسم" - } + }, + "remoteSpawnFilesNotSupported": "لا يمكن لهذا المثيل استقبال الملفات." }, "codeReviewer": { "focusAreas": { @@ -936,7 +945,9 @@ "reviewMemory": "ذاكرة المراجعة", "reviewStyle": "أسلوب المراجعة", "set": "تم التعيين" - } + }, + "updateFailed": "فشل تحديث المراجع", + "configSaveFailed": "فشل حفظ إعداد المراجعة" }, "securityAgent": { "filter": { @@ -1366,6 +1377,13 @@ "remediationsQueued": "توجد إصلاحات حالية في قائمة الانتظار", "analysisComplete": "اكتمل التحليل", "syncComplete": "اكتملت المزامنة" + }, + "mutations": { + "serviceNotConfiguredResubmit": "خدمة الأمان غير مهيأة. لا يمكن أن تنجح إعادة الإرسال حتى يتم إصلاح هذا.", + "syncMayNotHaveCompleted": "ربما لم تكتمل المزامنة. أعد المحاولة لتسويتها، أو تجاهلها.", + "syncInProgress": "مزامنة الأمان قيد التقدم بالفعل. يرجى المحاولة مرة أخرى.", + "dismissalInProgress": "هذا الرفض قيد التقدم بالفعل. يرجى المحاولة مرة أخرى.", + "couldNotReadPendingSyncs": "تعذّرت قراءة المزامنات المعلقة. حاول مرة أخرى." } }, "agents": { @@ -2084,7 +2102,17 @@ "onlineTitle": "تتم معالجة الكلام عبر الإنترنت", "staysOff": "يبقى الكلام متوقفًا حتى تسمح بالنسخ الصوتي عبر الإنترنت.", "start": "بدء الإدخال الصوتي", - "stop": "إيقاف الإدخال الصوتي" + "stop": "إيقاف الإدخال الصوتي", + "restricted": "الإدخال الصوتي مقيد على هذا الجهاز.", + "micRequired": "يلزم الوصول إلى الميكروفون للإدخال الصوتي.", + "micOff": "الوصول إلى الميكروفون متوقف. فعّله في الإعدادات لاستخدام الإدخال الصوتي.", + "micOffTitle": "الوصول إلى الميكروفون متوقف", + "noSpeech": "لم يتم اكتشاف أي كلام. اضغط على الميكروفون للمحاولة مرة أخرى.", + "needsConnection": "يحتاج الإدخال الصوتي إلى اتصال الآن. حاول مرة أخرى.", + "busy": "الإدخال الصوتي مشغول. حاول مرة أخرى.", + "stopped": "توقف الإدخال الصوتي. اضغط على الميكروفون للمحاولة مرة أخرى.", + "unavailableDevice": "الإدخال الصوتي غير متاح على هذا الجهاز.", + "unavailableLanguage": "الإدخال الصوتي غير متاح للغة الجهاز هذه." }, "share": { "title": "مشاركة إلى Kilo", @@ -2162,7 +2190,12 @@ "webManagementDescription": "تتم إدارة Kilo Pass هذا على الويب.", "legalDisclosure": "Kilo Pass اشتراك شهري متجدد تلقائيًا. يتم خصم الدفعة من Apple ID الخاص بك عند تأكيد الشراء. تتجدد الاشتراكات تلقائيًا كل شهر بالسعر المعروض ما لم يتم الإلغاء قبل 24 ساعة على الأقل من نهاية الفترة الحالية. يمكنك الإدارة أو الإلغاء في أي وقت من إعدادات حسابك في App Store.", "legalPrivacyPolicy": "سياسة الخصوصية", - "legalTermsOfUse": "شروط الاستخدام (EULA)" + "legalTermsOfUse": "شروط الاستخدام (EULA)", + "purchaseNotLinked": "عملية الشراء هذه من App Store غير مرتبطة بحساب Kilo الخاص بك. تأكد من تسجيل الدخول إلى Apple ID الذي أجرى عملية الشراء، ثم حاول مرة أخرى.", + "purchaseDifferentAccount": "عملية الشراء هذه من App Store غير مرتبطة بحساب Kilo الخاص بك. سجّل الدخول إلى حساب Apple المستخدم للشراء، ثم حاول مرة أخرى.", + "restoreFailed": "فشل استعادة المشتريات. حاول مرة أخرى.", + "purchaseFailed": "فشل إكمال عملية الشراء.", + "purchaseStartFailed": "فشل بدء عملية شراء من App Store." }, "consent": { "kilo": "Kilo", @@ -2704,6 +2737,12 @@ "commentPosted": "تم نشر التعليق", "reviewSubmitted": "تم تقديم المراجعة", "autoMergeEnabled": "تم تفعيل الدمج التلقائي" + }, + "mutationError": { + "commentNotPosted": "لا يمكن نشر هذا التعليق. ربما تغيّر السطر المحدد، أو تم تحديث PR.", + "reviewNotSubmitted": "لا يمكن إرسال هذه المراجعة كما هي. ربما تغيّر PR، أو لا يمكنك مراجعة طلب السحب الخاص بك.", + "couldNotPostComment": "تعذّر نشر التعليق.", + "couldNotSubmitReview": "تعذّر إرسال المراجعة. تحقق من اتصالك وحاول مرة أخرى." } }, "organization": { @@ -2750,7 +2789,9 @@ "title": "الفواتير", "statusPaid": "مدفوع", "statusOpen": "مفتوح", - "statusVoid": "ملغى" + "statusVoid": "ملغى", + "downloadFailed": "تعذّر تنزيل الفاتورة. تحقق من اتصالك وحاول مرة أخرى.", + "sharingUnavailable": "المشاركة غير متاحة على هذا الجهاز." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2878,7 +2919,8 @@ "signInFailed": "فشل تسجيل الدخول. يرجى المحاولة مرة أخرى.", "networkError": "خطأ في الشبكة. يرجى المحاولة مرة أخرى.", "accessDeniedByUser": "تم رفض الوصول بواسطة المستخدم", - "codeExpired": "انتهت صلاحية الرمز" + "codeExpired": "انتهت صلاحية الرمز", + "tooManySignInAttempts": "محاولات تسجيل دخول كثيرة جدًا. يرجى الانتظار والمحاولة مرة أخرى." }, "models": { "dataCollected": "البيانات التي تم جمعها", diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index dc8beb7c51..00dbb4b74f 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -24,7 +24,10 @@ "required": "vacibdir", "error": "xəta: {{error}}", "back": "Geri", - "somethingWentWrong": "Nəsə səhv getdi" + "somethingWentWrong": "Nəsə səhv getdi", + "couldNotOpen": "{{label}} açıla bilmədi", + "link": "link", + "takingLonger": "Bu, gözləniləndən daha uzun çəkir. Bunu bağlayıb yenidən yoxlaya bilərsiniz." }, "language": { "title": "Dil", @@ -576,6 +579,12 @@ "commentPosted": "Şərh yerləşdirildi", "reviewSubmitted": "İcmal təqdim edildi", "autoMergeEnabled": "Avtomatik-merge aktiv edildi" + }, + "mutationError": { + "commentNotPosted": "Bu şərh yerləşdirilə bilməz. Seçilmiş sətir dəyişmiş ola bilər və ya PR yenilənmiş ola bilər.", + "reviewNotSubmitted": "Bu icmal olduğu kimi təqdim edilə bilməz. PR dəyişmiş ola bilər və ya öz pull request'inizi icmal edə bilməzsiniz.", + "couldNotPostComment": "Şərh yerləşdirilə bilmədi.", + "couldNotSubmitReview": "İcmal təqdim edilə bilmədi. Bağlantınızı yoxlayın və yenidən cəhd edin." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Fayl boşdur", "classificationTooLarge": "Fayllar 20 MB və ya daha kiçik olmalıdır", "classificationUnreadable": "Bu fayl oxuna bilmədi", - "announceUploaded": "Əlavə yükləndi" + "announceUploaded": "Əlavə yükləndi", + "cantUpload": "Bu fayl yüklənə bilməz.", + "networkError": "Şəbəkə xətası", + "uploadFailed": "Yükləmə uğursuz oldu", + "failedToUploadFile": "Fayl yüklənə bilmədi: {{reason}}", + "nothingToPaste": "Yapışdırılacaq heç nə yoxdur" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Parıltılar", "strongArm": "Güclü qol", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Bu nümunə fayl qəbul edə bilmir." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Qərar yoxdur", "noResult": "Nəticə yoxdur" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "İcmalçı yenilənə bilmədi", + "configSaveFailed": "İcmal konfiqurasiyası saxlanıla bilmədi" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Mövcud düzəlişlər növbədədir", "analysisComplete": "Təhlil tamamlandı", "syncComplete": "Sinxronizasiya tamamlandı" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Təhlükəsizlik xidməti konfiqurasiya olunmayıb. Bu düzəldilənə qədər yenidən təqdim etmək uğur qazana bilməz.", + "syncMayNotHaveCompleted": "Sinxronlaşdırma tamamlanmamış ola bilər. Onu uzlaşdırmaq üçün yenidən cəhd edin və ya ləğv edin.", + "syncInProgress": "Təhlükəsizlik sinxronlaşdırması artıq davam edir. Zəhmət olmasa yenidən cəhd edin.", + "dismissalInProgress": "Bu rədd artıq davam edir. Zəhmət olmasa yenidən cəhd edin.", + "couldNotReadPendingSyncs": "Gözləyən sinxronlaşdırmalar oxuna bilmədi. Yenidən cəhd edin." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Bu cihaz oflayn transkripsiya edə bilmir. Yazınız mətnə çevrilmək üçün {{provider}}-a göndərilir. Kilo audio faylı saxlamır.", "allow": "İcazə ver", "start": "Səs girişini başlat", - "stop": "Səs girişini dayandır" + "stop": "Səs girişini dayandır", + "restricted": "Səs girişi bu cihazda məhdudlaşdırılıb.", + "micRequired": "Səs girişi üçün mikrofona giriş tələb olunur.", + "micOff": "Mikrofona giriş söndürülüb. Səs girişindən istifadə etmək üçün Parametrlərdə aktivləşdirin.", + "micOffTitle": "Mikrofona giriş söndürülüb", + "noSpeech": "Nitq aşkar edilmədi. Yenidən cəhd etmək üçün mikrofona toxunun.", + "needsConnection": "Səs girişi indi bağlantı tələb edir. Yenidən cəhd edin.", + "busy": "Səs girişi məşğuldur. Yenidən cəhd edin.", + "stopped": "Səs girişi dayandı. Yenidən cəhd etmək üçün mikrofona toxunun.", + "unavailableDevice": "Səs girişi bu cihazda mövcud deyil.", + "unavailableLanguage": "Səs girişi bu cihaz dili üçün mövcud deyil." }, "share": { "title": "Kilo-ya paylaş", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Bu Kilo Pass vebdə idarə olunur.", "legalDisclosure": "Kilo Pass avtomatik yenilənən aylıq abunədir. Ödəniş alışın təsdiqində Apple ID-nizdən çıxılır. Abunəliklər cari dövrün sonuna ən azı 24 saat qalmış ləğv edilmədiyi halda hər ay göstərilən qiymətlə avtomatik yenilənir. İstənilən vaxt App Store hesabınızın parametrlərində idarə edin və ya ləğv edin.", "legalPrivacyPolicy": "Məxfilik Siyasəti", - "legalTermsOfUse": "İstifadə Şərtləri (EULA)" + "legalTermsOfUse": "İstifadə Şərtləri (EULA)", + "purchaseNotLinked": "Bu App Store alışı Kilo hesabınıza bağlı deyil. Alışı edən Apple ID ilə daxil olduğunuza əmin olun, sonra yenidən cəhd edin.", + "purchaseDifferentAccount": "Bu App Store alışı Kilo hesabınıza bağlı deyil. Alış üçün istifadə edilmiş Apple Hesabına daxil olun, sonra yenidən cəhd edin.", + "restoreFailed": "Alışlar bərpa edilə bilmədi. Yenidən cəhd edin.", + "purchaseFailed": "Alış tamamlana bilmədi.", + "purchaseStartFailed": "App Store alışı başladıla bilmədi." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Açıq", "statusPaid": "Ödənilib", "statusVoid": "Etibarsız", - "title": "Fakturalar" + "title": "Fakturalar", + "downloadFailed": "Faktura endirilə bilmədi. Bağlantınızı yoxlayın və yenidən cəhd edin.", + "sharingUnavailable": "Paylaşım bu cihazda mövcud deyil." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Daxil olma uğursuz oldu. Zəhmət olmasa yenidən cəhd edin.", "networkError": "Şəbəkə xətası. Zəhmət olmasa yenidən cəhd edin.", "accessDeniedByUser": "İstifadəçi tərəfindən giriş rədd edildi", - "codeExpired": "Kodun müddəti bitdi" + "codeExpired": "Kodun müddəti bitdi", + "tooManySignInAttempts": "Çox sayda giriş cəhdi. Zəhmət olmasa gözləyin və yenidən cəhd edin." }, "models": { "dataCollected": "Toplanan məlumatlar", diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index baeb0e1ed1..2fa5341b9c 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -24,7 +24,10 @@ "required": "абавязкова", "error": "памылка: {{error}}", "back": "Назад", - "somethingWentWrong": "Нешта пайшло не так" + "somethingWentWrong": "Нешта пайшло не так", + "couldNotOpen": "Не атрымалася адкрыць {{label}}", + "link": "спасылка", + "takingLonger": "Гэта займае больш часу, чым чакалася. Вы можаце закрыць гэта і праверыць зноў." }, "language": { "title": "Мова", @@ -590,6 +593,12 @@ "commentPosted": "Каментар апублікаваны", "reviewSubmitted": "Рэцэнзія адпраўлена", "autoMergeEnabled": "Аўтазліццё ўключана" + }, + "mutationError": { + "commentNotPosted": "Гэты каментар нельга апублікаваць. Магчыма, выбраны радок змяніўся, або PR быў абноўлены.", + "reviewNotSubmitted": "Гэтую рэцэнзію нельга адправіць як ёсць. Магчыма, PR змяніўся, або вы не можаце рэцэнзаваць свой уласны pull request.", + "couldNotPostComment": "Не атрымалася апублікаваць каментар.", + "couldNotSubmitReview": "Не атрымалася адправіць рэцэнзію. Праверце падключэнне і паспрабуйце яшчэ раз." } }, "notifications": { @@ -728,7 +737,12 @@ "classificationEmpty": "Файл пусты", "classificationTooLarge": "Файлы павінны быць 20 MB або менш", "classificationUnreadable": "Не атрымалася прачытаць гэты файл", - "announceUploaded": "Далучэнне загружана" + "announceUploaded": "Далучэнне загружана", + "cantUpload": "Гэты файл нельга загрузіць.", + "networkError": "Памылка сеткі", + "uploadFailed": "Загрузка не ўдалася", + "failedToUploadFile": "Не атрымалася загрузіць файл: {{reason}}", + "nothingToPaste": "Няма чаго ўставіць" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1190,7 +1204,8 @@ "sparkles": "Бліскаўкі", "strongArm": "Моцная рука", "talisman": "Талісман" - } + }, + "remoteSpawnFilesNotSupported": "Гэты экзэмпляр не можа атрымліваць файлы." }, "codeReviewer": { "focusAreas": { @@ -1377,7 +1392,9 @@ "noDecision": "Без рашэння", "noResult": "Без выніку" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Не атрымалася абнавіць рэцэнзента", + "configSaveFailed": "Не атрымалася захаваць канфігурацыю рэцэнзіі" }, "securityAgent": { "filter": { @@ -1803,6 +1820,13 @@ "remediationsQueued": "Існуючыя ліквідацыі пастаўлены ў чаргу", "analysisComplete": "Аналіз завершаны", "syncComplete": "Сінхранізацыя завершана" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Служба бяспекі не настроена. Паўторнае адпраўленне не можа атрымацца, пакуль гэта не будзе выпраўлена.", + "syncMayNotHaveCompleted": "Сінхранізацыя, магчыма, не завяршылася. Паўтарыце, каб узгадніць яе, або адхіліце.", + "syncInProgress": "Сінхранізацыя бяспекі ўжо выконваецца. Паспрабуйце яшчэ раз.", + "dismissalInProgress": "Гэтае адхіленне ўжо выконваецца. Паспрабуйце яшчэ раз.", + "couldNotReadPendingSyncs": "Не атрымалася прачытаць чакаючыя сінхранізацыі. Паспрабуйце яшчэ раз." } }, "agents": { @@ -2507,7 +2531,17 @@ "onlineMessage": "Гэтая прылада не можа выконваць транскрыпцыю афлайн. Ваш запіс адпраўляецца ў {{provider}} для пераўтварэння ў тэкст. Kilo не захоўвае аўдыё.", "allow": "Дазволіць", "start": "Пачаць галасавы ўвод", - "stop": "Спыніць галасавы ўвод" + "stop": "Спыніць галасавы ўвод", + "restricted": "Галасавы ўвод абмежаваны на гэтай прыладзе.", + "micRequired": "Для галасавога ўводу патрабуецца доступ да мікрафона.", + "micOff": "Доступ да мікрафона выключаны. Уключыце яго ў наладах, каб выкарыстоўваць галасавы ўвод.", + "micOffTitle": "Доступ да мікрафона выключаны", + "noSpeech": "Маўленне не выяўлена. Дакраніцеся да мікрафона, каб паспрабаваць зноў.", + "needsConnection": "Галасавому ўводу зараз патрэбна падключэнне. Паспрабуйце яшчэ раз.", + "busy": "Галасавы ўвод заняты. Паспрабуйце яшчэ раз.", + "stopped": "Галасавы ўвод спынены. Дакраніцеся да мікрафона, каб паспрабаваць зноў.", + "unavailableDevice": "Галасавы ўвод недаступны на гэтай прыладзе.", + "unavailableLanguage": "Галасавы ўвод недаступны для мовы гэтай прылады." }, "share": { "title": "Падзяліцца з Kilo", @@ -2585,7 +2619,12 @@ "webManagementDescription": "Гэтым Kilo Pass кіруюць у вэбе.", "legalDisclosure": "Kilo Pass — гэта аўтападоўжвальная штомесячная падпіска. Плацёж спаганяецца з вашага Apple ID пры пацвярджэнні пакупкі. Падпіска аўтаматычна падаўжаецца кожны месяц па паказанай цане, калі яна не адменена не менш чым за 24 гадзіны да заканчэння бягучага перыяду. Кіруйце ёю або адменіце яе ў любы час у наладах уліковага запісу App Store.", "legalPrivacyPolicy": "Палітыка прыватнасці", - "legalTermsOfUse": "Умовы выкарыстання (EULA)" + "legalTermsOfUse": "Умовы выкарыстання (EULA)", + "purchaseNotLinked": "Гэтая пакупка ў App Store не звязана з вашым уліковым запісам Kilo. Пераканайцеся, што вы ўвайшлі ў Apple ID, з якога была зроблена пакупка, і паспрабуйце яшчэ раз.", + "purchaseDifferentAccount": "Гэтая пакупка ў App Store не звязана з вашым уліковым запісам Kilo. Увайдзіце ў Apple Account, які выкарыстоўваўся для пакупкі, і паспрабуйце яшчэ раз.", + "restoreFailed": "Не атрымалася аднавіць пакупкі. Паспрабуйце яшчэ раз.", + "purchaseFailed": "Не атрымалася завяршыць пакупку.", + "purchaseStartFailed": "Не атрымалася пачаць пакупку ў App Store." }, "consent": { "kilo": "Kilo", @@ -2718,7 +2757,9 @@ "statusOpen": "Адкрыты", "statusPaid": "Аплачаны", "statusVoid": "Несапраўдны", - "title": "Рахункі" + "title": "Рахункі", + "downloadFailed": "Не атрымалася спампаваць рахунак. Праверце падключэнне і паспрабуйце яшчэ раз.", + "sharingUnavailable": "Абмен недаступны на гэтай прыладзе." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Уваход не атрымаўся. Паспрабуйце яшчэ раз.", "networkError": "Памылка сеткі. Паспрабуйце яшчэ раз.", "accessDeniedByUser": "Карыстальнік адхіліў доступ", - "codeExpired": "Тэрмін дзеяння кода скончыўся" + "codeExpired": "Тэрмін дзеяння кода скончыўся", + "tooManySignInAttempts": "Занадта шмат спроб уваходу. Пачакайце і паспрабуйце яшчэ раз." }, "models": { "dataCollected": "Сабраныя даныя", diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index c2b669041a..e7d8294703 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -24,7 +24,10 @@ "required": "задължително", "error": "грешка: {{error}}", "back": "Назад", - "somethingWentWrong": "Нещо се обърка" + "somethingWentWrong": "Нещо се обърка", + "couldNotOpen": "Не можахме да отворим {{label}}", + "link": "връзка", + "takingLonger": "Това отнема повече време от очакваното. Можете да го затворите и да проверите отново." }, "language": { "title": "Език", @@ -576,6 +579,12 @@ "commentPosted": "Коментарът е публикуван", "reviewSubmitted": "Прегледът е изпратен", "autoMergeEnabled": "Автоматичното обединяване е активирано" + }, + "mutationError": { + "commentNotPosted": "Този коментар не може да бъде публикуван. Избраният ред може да се е променил или PR може да е бил актуализиран.", + "reviewNotSubmitted": "Този преглед не може да бъде изпратен както е. PR може да се е променил или не можете да преглеждате собствения си pull request.", + "couldNotPostComment": "Не можахме да публикуваме коментара.", + "couldNotSubmitReview": "Не можахме да изпратим прегледа. Проверете връзката си и опитайте отново." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Файлът е празен", "classificationTooLarge": "Файловете трябва да са 20 MB или по-малки", "classificationUnreadable": "Този файл не можа да бъде прочетен", - "announceUploaded": "Прикаченият файл е качен" + "announceUploaded": "Прикаченият файл е качен", + "cantUpload": "Този файл не може да бъде качен.", + "networkError": "Мрежова грешка", + "uploadFailed": "Качването не успя", + "failedToUploadFile": "Не можахме да качим файла: {{reason}}", + "nothingToPaste": "Няма какво да поставите" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Блясъци", "strongArm": "Силна ръка", "talisman": "Талисман" - } + }, + "remoteSpawnFilesNotSupported": "Тази инстанция не може да получава файлове." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Няма решение", "noResult": "Няма резултат" }, - "eyebrow": "Преглеждащ на кода" + "eyebrow": "Преглеждащ на кода", + "updateFailed": "Не можахме да актуализираме рецензента", + "configSaveFailed": "Не можахме да запазим конфигурацията на прегледа" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Съществуващите корекции са опашени", "analysisComplete": "Анализът е завършен", "syncComplete": "Синхронизацията е завършена" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Услугата за сигурност не е конфигурирана. Повторното подаване не може да успее, докато това не бъде коригирано.", + "syncMayNotHaveCompleted": "Синхронизацията може да не е завършила. Опитайте отново, за да я съгласувате, или я отхвърлете.", + "syncInProgress": "Синхронизация за сигурност вече е в процес. Моля, опитайте отново.", + "dismissalInProgress": "Това отхвърляне вече е в процес. Моля, опитайте отново.", + "couldNotReadPendingSyncs": "Не можахме да прочетем чакащите синхронизации. Опитайте отново." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Това устройство не може да транскрибира офлайн. Вашият запис се изпраща до {{provider}}, за да се превърне в текст. Kilo не съхранява аудиото.", "allow": "Разрешете", "start": "Стартиране на гласово въвеждане", - "stop": "Спиране на гласово въвеждане" + "stop": "Спиране на гласово въвеждане", + "restricted": "Гласовото въвеждане е ограничено на това устройство.", + "micRequired": "За гласово въвеждане е необходим достъп до микрофона.", + "micOff": "Достъпът до микрофона е изключен. Включете го в Настройки, за да използвате гласово въвеждане.", + "micOffTitle": "Достъпът до микрофона е изключен", + "noSpeech": "Не е открита реч. Докоснете микрофона, за да опитате отново.", + "needsConnection": "Гласовото въвеждане се нуждае от връзка в момента. Опитайте отново.", + "busy": "Гласовото въвеждане е заето. Опитайте отново.", + "stopped": "Гласовото въвеждане е спряно. Докоснете микрофона, за да опитате отново.", + "unavailableDevice": "Гласовото въвеждане не е налично на това устройство.", + "unavailableLanguage": "Гласовото въвеждане не е налично за езика на това устройство." }, "share": { "title": "Споделете в Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Този Kilo Pass се управлява в мрежата.", "legalDisclosure": "Kilo Pass е автоматично подновявана месечна абонаментна услуга. Плащането се начислява към вашия Apple ID при потвърждаване на покупката. Абонаментът се подновява автоматично всеки месец на показаната цена, освен ако не го отмените поне 24 часа преди края на текущия период. Управлявайте или отменяйте по всяко време в настройките на вашия акаунт в App Store.", "legalPrivacyPolicy": "Политика за поверителност", - "legalTermsOfUse": "Условия за ползване (EULA)" + "legalTermsOfUse": "Условия за ползване (EULA)", + "purchaseNotLinked": "Тази покупка от App Store не е свързана с вашия Kilo акаунт. Уверете се, че сте влезли в Apple ID, от който е направена покупката, и опитайте отново.", + "purchaseDifferentAccount": "Тази покупка от App Store не е свързана с вашия Kilo акаунт. Влезте в Apple акаунта, използван за покупката, и опитайте отново.", + "restoreFailed": "Не можахме да възстановим покупките. Опитайте отново.", + "purchaseFailed": "Не можахме да завършим покупката.", + "purchaseStartFailed": "Не можахме да започнем покупката в App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Отворена", "statusPaid": "Платена", "statusVoid": "Невалидна", - "title": "Фактури" + "title": "Фактури", + "downloadFailed": "Не можахме да изтеглим фактурата. Проверете връзката си и опитайте отново.", + "sharingUnavailable": "Споделянето не е налично на това устройство." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Влизането се провали. Моля, опитай отново.", "networkError": "Мрежова грешка. Моля, опитай отново.", "accessDeniedByUser": "Потребителят отказа достъп", - "codeExpired": "Кодът изтече" + "codeExpired": "Кодът изтече", + "tooManySignInAttempts": "Твърде много опити за влизане. Моля, изчакайте и опитайте отново." }, "models": { "dataCollected": "Събрани данни", diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index e0d3b1ef32..2c3aa567ae 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -24,7 +24,10 @@ "required": "আবশ্যক", "error": "ত্রুটি: {{error}}", "back": "পেছনে", - "somethingWentWrong": "কিছু ভুল হয়েছে" + "somethingWentWrong": "কিছু ভুল হয়েছে", + "couldNotOpen": "{{label}} খোলা যায়নি", + "link": "লিংক", + "takingLonger": "এতে প্রত্যাশার চেয়ে বেশি সময় লাগছে। আপনি এটি বন্ধ করে আবার পরীক্ষা করতে পারেন।" }, "language": { "title": "ভাষা", @@ -576,6 +579,12 @@ "commentPosted": "মন্তব্য পোস্ট হয়েছে", "reviewSubmitted": "রিভিউ জমা হয়েছে", "autoMergeEnabled": "অটো-মার্জ সক্রিয় হয়েছে" + }, + "mutationError": { + "commentNotPosted": "এই মন্তব্যটি পোস্ট করা যাবে না। নির্বাচিত লাইনটি পরিবর্তিত হয়ে থাকতে পারে, বা PR আপডেট হয়ে থাকতে পারে।", + "reviewNotSubmitted": "এই রিভিউটি এখনকার মতো জমা দেওয়া যাবে না। PR পরিবর্তিত হয়ে থাকতে পারে, অথবা আপনি আপনার নিজের পুল রিকোয়েস্ট রিভিউ করতে পারবেন না।", + "couldNotPostComment": "মন্তব্য পোস্ট করা যায়নি।", + "couldNotSubmitReview": "রিভিউ জমা দেওয়া যায়নি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ফাইলটি খালি", "classificationTooLarge": "ফাইলের আকার 20 MB বা তার কম হতে হবে", "classificationUnreadable": "এই ফাইলটি পড়া যায়নি", - "announceUploaded": "সংযুক্তি আপলোড হয়েছে" + "announceUploaded": "সংযুক্তি আপলোড হয়েছে", + "cantUpload": "এই ফাইলটি আপলোড করা যাবে না।", + "networkError": "নেটওয়ার্ক ত্রুটি", + "uploadFailed": "আপলোড ব্যর্থ হয়েছে", + "failedToUploadFile": "ফাইল আপলোড করা যায়নি: {{reason}}", + "nothingToPaste": "পেস্ট করার মতো কিছু নেই" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "স্পার্কল", "strongArm": "শক্তিশালী হাত", "talisman": "তাবিজ" - } + }, + "remoteSpawnFilesNotSupported": "এই ইনস্ট্যান্সটি ফাইল গ্রহণ করতে পারে না।" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "কোনো সিদ্ধান্ত নেই", "noResult": "কোনো ফলাফল নেই" }, - "eyebrow": "কোড রিভিউয়ার" + "eyebrow": "কোড রিভিউয়ার", + "updateFailed": "রিভিউয়ার আপডেট করা যায়নি", + "configSaveFailed": "রিভিউ কনফিগারেশন সংরক্ষণ করা যায়নি" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "বিদ্যমান প্রতিকার সারিবদ্ধ হয়েছে", "analysisComplete": "বিশ্লেষণ সম্পূর্ণ", "syncComplete": "সিঙ্ক সম্পূর্ণ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "সিকিউরিটি পরিষেবা কনফিগার করা নেই। এটি ঠিক না হওয়া পর্যন্ত পুনরায় জমা দেওয়া সফল হতে পারে না।", + "syncMayNotHaveCompleted": "একটি সিঙ্ক সম্পন্ন নাও হতে পারে। এটি সমন্বয় করতে আবার চেষ্টা করুন, অথবা বাতিল করুন।", + "syncInProgress": "একটি সিকিউরিটি সিঙ্ক ইতিমধ্যে চলছে। অনুগ্রহ করে আবার চেষ্টা করুন।", + "dismissalInProgress": "এই খারিজটি ইতিমধ্যে চলছে। অনুগ্রহ করে আবার চেষ্টা করুন।", + "couldNotReadPendingSyncs": "অপেক্ষমাণ সিঙ্ক পড়া যায়নি। আবার চেষ্টা করুন।" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "এই ডিভাইসটি অফলাইনে ট্রান্সক্রাইব করতে পারে না। এটি টেক্সটে রূপান্তর করতে আপনার রেকর্ডিং {{provider}}-এ পাঠানো হয়। Kilo অডিও সংরক্ষণ করে না।", "allow": "অনুমতি দিন", "start": "ভয়েস ইনপুট শুরু করুন", - "stop": "ভয়েস ইনপুট বন্ধ করুন" + "stop": "ভয়েস ইনপুট বন্ধ করুন", + "restricted": "এই ডিভাইসে ভয়েস ইনপুট সীমাবদ্ধ।", + "micRequired": "ভয়েস ইনপুটের জন্য মাইক্রোফোন অ্যাক্সেস প্রয়োজন।", + "micOff": "মাইক্রোফোন অ্যাক্সেস বন্ধ আছে। ভয়েস ইনপুট ব্যবহার করতে সেটিংসে এটি চালু করুন।", + "micOffTitle": "মাইক্রোফোন অ্যাক্সেস বন্ধ", + "noSpeech": "কোনো স্পিচ শনাক্ত হয়নি। আবার চেষ্টা করতে মাইক্রোফোনে আলতো চাপুন।", + "needsConnection": "ভয়েস ইনপুটের এখন সংযোগ প্রয়োজন। আবার চেষ্টা করুন।", + "busy": "ভয়েস ইনপুট ব্যস্ত। আবার চেষ্টা করুন।", + "stopped": "ভয়েস ইনপুট বন্ধ হয়েছে। আবার চেষ্টা করতে মাইক্রোফোনে আলতো চাপুন।", + "unavailableDevice": "এই ডিভাইসে ভয়েস ইনপুট উপলব্ধ নয়।", + "unavailableLanguage": "এই ডিভাইসের ভাষার জন্য ভয়েস ইনপুট উপলব্ধ নয়।" }, "share": { "title": "Kilo-তে শেয়ার করুন", @@ -2549,7 +2583,12 @@ "webManagementDescription": "এই Kilo Pass ওয়েবে পরিচালিত হয়।", "legalDisclosure": "Kilo Pass একটি স্বয়ংক্রিয়-নবায়নযোগ্য মাসিক সাবস্ক্রিপশন। কেনার নিশ্চিতকরণে আপনার Apple ID থেকে পেমেন্ট নেওয়া হয়। সাবস্ক্রিপশন বর্তমান সময়সীমা শেষ হওয়ার কমপক্ষে 24 ঘণ্টা আগে বাতিল না করা হলে প্রতি মাসে দেখানো দামে স্বয়ংক্রিয়ভাবে নবায়ন হয়। আপনার App Store অ্যাকাউন্ট সেটিংসে যেকোনো সময় পরিচালনা বা বাতিল করুন।", "legalPrivacyPolicy": "গোপনীয়তা নীতি", - "legalTermsOfUse": "ব্যবহারের শর্তাবলী (EULA)" + "legalTermsOfUse": "ব্যবহারের শর্তাবলী (EULA)", + "purchaseNotLinked": "এই App Store ক্রয়টি আপনার Kilo অ্যাকাউন্টের সাথে লিঙ্ক করা নেই। নিশ্চিত করুন যে আপনি যে Apple ID দিয়ে ক্রয়টি করেছেন সেটিতে সাইন ইন করেছেন, তারপর আবার চেষ্টা করুন।", + "purchaseDifferentAccount": "এই App Store ক্রয়টি আপনার Kilo অ্যাকাউন্টের সাথে লিঙ্ক করা নেই। ক্রয়ের জন্য ব্যবহৃত Apple Account-এ সাইন ইন করুন, তারপর আবার চেষ্টা করুন।", + "restoreFailed": "ক্রয় পুনরুদ্ধার করা যায়নি। আবার চেষ্টা করুন।", + "purchaseFailed": "ক্রয় সম্পূর্ণ করা যায়নি।", + "purchaseStartFailed": "App Store ক্রয় শুরু করা যায়নি।" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "খোলা", "statusPaid": "পরিশোধিত", "statusVoid": "বাতিল", - "title": "ইনভয়েস" + "title": "ইনভয়েস", + "downloadFailed": "ইনভয়েস ডাউনলোড করা যায়নি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।", + "sharingUnavailable": "এই ডিভাইসে শেয়ারিং উপলব্ধ নয়।" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "সাইন-ইন ব্যর্থ হয়েছে। আবার চেষ্টা করুন।", "networkError": "নেটওয়ার্ক ত্রুটি। আবার চেষ্টা করুন।", "accessDeniedByUser": "ব্যবহারকারী অ্যাক্সেস অস্বীকার করেছেন", - "codeExpired": "কোডের মেয়াদ শেষ হয়েছে" + "codeExpired": "কোডের মেয়াদ শেষ হয়েছে", + "tooManySignInAttempts": "অনেক বেশি সাইন-ইন প্রচেষ্টা হয়েছে। অনুগ্রহ করে অপেক্ষা করে আবার চেষ্টা করুন।" }, "models": { "dataCollected": "সংগৃহীত ডেটা", diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index 670ab3ef59..afbe6fcc94 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -24,7 +24,10 @@ "required": "obavezno", "error": "greška: {{error}}", "back": "Nazad", - "somethingWentWrong": "Nešto je pošlo po zlu" + "somethingWentWrong": "Nešto je pošlo po zlu", + "couldNotOpen": "Nije moguće otvoriti {{label}}", + "link": "link", + "takingLonger": "Ovo traje duže nego što se očekivalo. Možete zatvoriti ovo i provjeriti ponovo." }, "language": { "title": "Jezik", @@ -583,6 +586,12 @@ "commentPosted": "Komentar objavljen", "reviewSubmitted": "Pregled poslan", "autoMergeEnabled": "Automatsko spajanje omogućeno" + }, + "mutationError": { + "commentNotPosted": "Ovaj komentar se ne može objaviti. Odabrana linija se možda promijenila ili je PR možda ažuriran.", + "reviewNotSubmitted": "Ovaj pregled se ne može poslati kakav jeste. PR se možda promijenio ili ne možete pregledati vlastiti pull request.", + "couldNotPostComment": "Objavljivanje komentara nije uspjelo.", + "couldNotSubmitReview": "Slanje pregleda nije uspjelo. Provjerite vezu i pokušajte ponovo." } }, "notifications": { @@ -721,7 +730,12 @@ "classificationEmpty": "Datoteka je prazna", "classificationTooLarge": "Datoteke moraju biti 20 MB ili manje", "classificationUnreadable": "Ova datoteka se nije mogla pročitati", - "announceUploaded": "Prilog otpremljen" + "announceUploaded": "Prilog otpremljen", + "cantUpload": "Ova datoteka se ne može otpremiti.", + "networkError": "Greška u mreži", + "uploadFailed": "Otpremanje nije uspjelo", + "failedToUploadFile": "Otpremanje datoteke nije uspjelo: {{reason}}", + "nothingToPaste": "Nema ništa za lijepljenje" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1181,7 +1195,8 @@ "sparkles": "Iskrice", "strongArm": "Snažna ruka", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Ova instanca ne može primiti datoteke." }, "codeReviewer": { "focusAreas": { @@ -1368,7 +1383,9 @@ "noDecision": "Nema odluke", "noResult": "Nema rezultata" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Ažuriranje pregledača nije uspjelo", + "configSaveFailed": "Čuvanje konfiguracije pregleda nije uspjelo" }, "securityAgent": { "filter": { @@ -1792,6 +1809,13 @@ "remediationsQueued": "Postojeći popravci su u redu", "analysisComplete": "Analiza završena", "syncComplete": "Sinhronizacija završena" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Sigurnosna usluga nije konfigurisana. Ponovno podnošenje ne može uspjeti dok se ovo ne popravi.", + "syncMayNotHaveCompleted": "Sinhronizacija možda nije dovršena. Pokušajte ponovo da je uskladite ili je odbacite.", + "syncInProgress": "Sigurnosna sinhronizacija je već u tijeku. Pokušajte ponovo.", + "dismissalInProgress": "Ovo odbacivanje je već u tijeku. Pokušajte ponovo.", + "couldNotReadPendingSyncs": "Nije moguće pročitati sinhronizacije na čekanju. Pokušajte ponovo." } }, "agents": { @@ -2489,7 +2513,17 @@ "onlineMessage": "Ovaj uređaj ne može transkribovati offline. Vaš snimak se šalje {{provider}}-u za pretvaranje u tekst. Kilo ne pohranjuje audio.", "allow": "Dozvoli", "start": "Pokreni glasovni unos", - "stop": "Zaustavi glasovni unos" + "stop": "Zaustavi glasovni unos", + "restricted": "Glasovni unos je ograničen na ovom uređaju.", + "micRequired": "Za glasovni unos potreban je pristup mikrofonu.", + "micOff": "Pristup mikrofonu je isključen. Uključite ga u Postavkama za korištenje glasovnog unosa.", + "micOffTitle": "Pristup mikrofonu je isključen", + "noSpeech": "Nije otkriven govor. Dodirnite mikrofon za ponovni pokušaj.", + "needsConnection": "Glasovni unos trenutno treba vezu. Pokušajte ponovo.", + "busy": "Glasovni unos je zauzet. Pokušajte ponovo.", + "stopped": "Glasovni unos je zaustavljen. Dodirnite mikrofon za ponovni pokušaj.", + "unavailableDevice": "Glasovni unos nije dostupan na ovom uređaju.", + "unavailableLanguage": "Glasovni unos nije dostupan za jezik ovog uređaja." }, "share": { "title": "Podijeli u Kilo", @@ -2567,7 +2601,12 @@ "webManagementDescription": "Ovim Kilo Pass-om upravlja se na webu.", "legalDisclosure": "Kilo Pass je pretplata s automatskim obnavljanjem. Uplata se naplaćuje na vaš Apple ID pri potvrdi kupovine. Pretplate se automatski obnavljaju svakog mjeseca po prikazanoj cijeni, osim ako ih otkažete najmanje 24 sata prije kraja tekućeg razdoblja. Upravljajte ili otkažite u bilo kojem trenutku u postavkama vašeg App Store računa.", "legalPrivacyPolicy": "Politika privatnosti", - "legalTermsOfUse": "Uvjeti korištenja (EULA)" + "legalTermsOfUse": "Uvjeti korištenja (EULA)", + "purchaseNotLinked": "Ova kupovina u App Store-u nije povezana s vašim Kilo nalogom. Provjerite da ste prijavljeni na Apple ID s kojeg je kupovina napravljena, zatim pokušajte ponovo.", + "purchaseDifferentAccount": "Ova kupovina u App Store-u nije povezana s vašim Kilo nalogom. Prijavite se na Apple nalog korišten za kupovinu, zatim pokušajte ponovo.", + "restoreFailed": "Vraćanje kupovina nije uspjelo. Pokušajte ponovo.", + "purchaseFailed": "Dovršavanje kupovine nije uspjelo.", + "purchaseStartFailed": "Pokretanje kupovine u App Store-u nije uspjelo." }, "consent": { "kilo": "Kilo", @@ -2700,7 +2739,9 @@ "statusOpen": "Otvoreno", "statusPaid": "Plaćeno", "statusVoid": "Nevažeće", - "title": "Fakture" + "title": "Fakture", + "downloadFailed": "Preuzimanje fakture nije uspjelo. Provjerite vezu i pokušajte ponovo.", + "sharingUnavailable": "Dijeljenje nije dostupno na ovom uređaju." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Prijava nije uspjela. Pokušajte ponovo.", "networkError": "Greška u mreži. Pokušajte ponovo.", "accessDeniedByUser": "Korisnik je odbio pristup", - "codeExpired": "Kod je istekao" + "codeExpired": "Kod je istekao", + "tooManySignInAttempts": "Previše pokušaja prijave. Pričekajte i pokušajte ponovo." }, "models": { "dataCollected": "Prikupljeni podaci", diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index f3748d2afa..e8765db746 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -24,7 +24,10 @@ "required": "obligatori", "error": "error: {{error}}", "back": "Enrere", - "somethingWentWrong": "Alguna cosa ha fallat" + "somethingWentWrong": "Alguna cosa ha fallat", + "couldNotOpen": "No s'ha pogut obrir {{label}}", + "link": "enllaç", + "takingLonger": "Això triga més del que s'esperava. Pots tancar-ho i tornar-ho a comprovar." }, "language": { "title": "Idioma", @@ -583,6 +586,12 @@ "commentPosted": "Comentari publicat", "reviewSubmitted": "Revisió enviada", "autoMergeEnabled": "Fusió automàtica activada" + }, + "mutationError": { + "commentNotPosted": "Aquest comentari no es pot publicar. Pot ser que la línia seleccionada hagi canviat, o que la PR s'hagi actualitzat.", + "reviewNotSubmitted": "Aquesta revisió no es pot enviar tal com està. Pot ser que la PR hagi canviat, o no pots revisar la teva pròpia pull request.", + "couldNotPostComment": "No s'ha pogut publicar el comentari.", + "couldNotSubmitReview": "No s'ha pogut enviar la revisió. Comprova la connexió i torna-ho a provar." } }, "notifications": { @@ -721,7 +730,12 @@ "classificationEmpty": "El fitxer és buit", "classificationTooLarge": "Els fitxers han de ser de 20 MB o menys", "classificationUnreadable": "No s'ha pogut llegir aquest fitxer", - "announceUploaded": "Adjunt penjat" + "announceUploaded": "Adjunt penjat", + "cantUpload": "Aquest fitxer no es pot pujar.", + "networkError": "Error de xarxa", + "uploadFailed": "La pujada ha fallat", + "failedToUploadFile": "No s'ha pogut pujar el fitxer: {{reason}}", + "nothingToPaste": "Res per enganxar" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1181,7 +1195,8 @@ "sparkles": "Espurnes", "strongArm": "Braç fort", "talisman": "Talismà" - } + }, + "remoteSpawnFilesNotSupported": "Aquesta instància no pot rebre fitxers." }, "codeReviewer": { "focusAreas": { @@ -1368,7 +1383,9 @@ "noDecision": "Cap decisió", "noResult": "Cap resultat" }, - "eyebrow": "Revisor de codi" + "eyebrow": "Revisor de codi", + "updateFailed": "No s'ha pogut actualitzar el revisor", + "configSaveFailed": "No s'ha pogut desar la configuració de la revisió" }, "securityAgent": { "filter": { @@ -1792,6 +1809,13 @@ "remediationsQueued": "S'han posat les correccions existents a la cua", "analysisComplete": "Anàlisi completada", "syncComplete": "Sincronització completada" + }, + "mutations": { + "serviceNotConfiguredResubmit": "El servei de seguretat no està configurat. Tornar a enviar no pot tenir èxit fins que això es resolgui.", + "syncMayNotHaveCompleted": "Pot ser que una sincronització no s'hagi completat. Torna-ho a provar per reconciliar-la, o descarta-la.", + "syncInProgress": "Una sincronització de seguretat ja està en curs. Torna-ho a provar.", + "dismissalInProgress": "Aquest descartament ja està en curs. Torna-ho a provar.", + "couldNotReadPendingSyncs": "No s'han pogut llegir les sincronitzacions pendents. Torna-ho a provar." } }, "agents": { @@ -2489,7 +2513,17 @@ "onlineMessage": "Aquest dispositiu no pot transcriure sense connexió. El teu enregistrament s'envia a {{provider}} per convertir-lo en text. Kilo no emmagatzema l'àudio.", "allow": "Permet", "start": "Inicia l'entrada de veu", - "stop": "Atura l'entrada de veu" + "stop": "Atura l'entrada de veu", + "restricted": "L'entrada de veu està restringida en aquest dispositiu.", + "micRequired": "Cal accés al micròfon per a l'entrada de veu.", + "micOff": "L'accés al micròfon està desactivat. Activa'l a la configuració per utilitzar l'entrada de veu.", + "micOffTitle": "L'accés al micròfon està desactivat", + "noSpeech": "No s'ha detectat cap veu. Toca el micròfon per tornar-ho a provar.", + "needsConnection": "L'entrada de veu necessita connexió ara mateix. Torna-ho a provar.", + "busy": "L'entrada de veu està ocupada. Torna-ho a provar.", + "stopped": "L'entrada de veu s'ha aturat. Toca el micròfon per tornar-ho a provar.", + "unavailableDevice": "L'entrada de veu no està disponible en aquest dispositiu.", + "unavailableLanguage": "L'entrada de veu no està disponible per a l'idioma d'aquest dispositiu." }, "share": { "title": "Comparteix a Kilo", @@ -2567,7 +2601,12 @@ "webManagementDescription": "Aquest Kilo Pass es gestiona al web.", "legalDisclosure": "Kilo Pass és una subscripció mensual de renovació automàtica. El pagament es carrega al vostre Apple ID en confirmar la compra. Les subscripcions es renoven automàticament cada mes al preu mostrat tret que es cancel·lin com a mínim 24 hores abans del final del període actual. Gestioneu-les o cancel·leu-les en qualsevol moment a la configuració del compte de l'App Store.", "legalPrivacyPolicy": "Política de privadesa", - "legalTermsOfUse": "Condicions d'ús (EULA)" + "legalTermsOfUse": "Condicions d'ús (EULA)", + "purchaseNotLinked": "Aquesta compra d'App Store no està vinculada al teu compte de Kilo. Assegura't que has iniciat la sessió amb l'Apple ID que va fer la compra, i torna-ho a provar.", + "purchaseDifferentAccount": "Aquesta compra d'App Store no està vinculada al teu compte de Kilo. Inicia la sessió amb el compte d'Apple que es va utilitzar per a la compra, i torna-ho a provar.", + "restoreFailed": "No s'han pogut restaurar les compres. Torna-ho a provar.", + "purchaseFailed": "No s'ha pogut completar la compra.", + "purchaseStartFailed": "No s'ha pogut iniciar la compra a l'App Store." }, "consent": { "kilo": "Kilo", @@ -2700,7 +2739,9 @@ "statusOpen": "Oberta", "statusPaid": "Pagada", "statusVoid": "Anul·lada", - "title": "Factures" + "title": "Factures", + "downloadFailed": "No s'ha pogut descarregar la factura. Comprova la connexió i torna-ho a provar.", + "sharingUnavailable": "La compartició no està disponible en aquest dispositiu." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "L'inici de sessió ha fallat. Torna-ho a provar.", "networkError": "Error de xarxa. Torna-ho a provar.", "accessDeniedByUser": "Accés denegat per l'usuari", - "codeExpired": "El codi ha caducat" + "codeExpired": "El codi ha caducat", + "tooManySignInAttempts": "Massa intents d'inici de sessió. Espera i torna-ho a provar." }, "models": { "dataCollected": "Dades recollides", diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index 2e9f824642..a0cf765d7a 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -24,7 +24,10 @@ "required": "پێویستە", "error": "هەڵە: {{error}}", "back": "گەڕانەوە", - "somethingWentWrong": "شتێک هەڵەی کرد" + "somethingWentWrong": "شتێک هەڵەی کرد", + "couldNotOpen": "نەتوانرا {{label}} بکرێتەوە", + "link": "بەستەر", + "takingLonger": "ئەمە زیاتر لە چاوەڕوانکراو دەخایەنێت. دەتوانیت ئەمە داخەیت و دووبارە بپشکنیتەوە." }, "language": { "title": "زمان", @@ -576,6 +579,12 @@ "commentPosted": "بۆچوون بڵاوکرایەوە", "reviewSubmitted": "پێداچوونەوە نێردرا", "autoMergeEnabled": "تێکەڵکردنی ئۆتۆماتیکی چالاک کرا" + }, + "mutationError": { + "commentNotPosted": "ئەم بۆچوونە ناتوانرێت بڵاو بکرێتەوە. ڕەنگە هێڵە هەڵبژێردراوەکە گۆڕابێت، یان PR نوێکرابێتەوە.", + "reviewNotSubmitted": "ئەم پێداچوونەوەیە وەک خۆی ناتوانرێت بنێردرێت. ڕەنگە PR گۆڕابێت، یان ناتوانیت پێداچوونەوە بە داواکاری ڕاکێشانی خۆت بکەیت.", + "couldNotPostComment": "نەتوانرا بۆچوون بڵاو بکرێتەوە.", + "couldNotSubmitReview": "نەتوانرا پێداچوونەوە بنێردرێت. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەرەوە." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "فایلەکە بەتاڵە", "classificationTooLarge": "پێویستە فایلەکان 20 MB یان کەمتر بن", "classificationUnreadable": "نەتوانرا ئەم فایلە بخوێنرێتەوە", - "announceUploaded": "هاوپێچ بارکرا" + "announceUploaded": "هاوپێچ بارکرا", + "cantUpload": "ئەم فایلە ناتوانرێت بار بکرێت.", + "networkError": "هەڵەی تۆڕ", + "uploadFailed": "بارکردن شکستی هێنا", + "failedToUploadFile": "نەتوانرا فایلەکە بار بکرێت: {{reason}}", + "nothingToPaste": "هیچ شتێک نییە بۆ بلکاندن" }, "attachmentPreview": { "accessibility": "{{filename}}، {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "بریقە", "strongArm": "بازوی بەهێز", "talisman": "تالیسمان" - } + }, + "remoteSpawnFilesNotSupported": "ئەم نموونەیە ناتوانێت فایل وەربگرێت." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "هیچ بڕیارێک نییە", "noResult": "هیچ ئەنجامێک نییە" }, - "eyebrow": "پێداچوونەوەکاری کۆد" + "eyebrow": "پێداچوونەوەکاری کۆد", + "updateFailed": "نوێکردنەوەی پێداچوونەوەکار شکستی هێنا", + "configSaveFailed": "پاشەکەوتکردنی ڕێکخستنی پێداچوونەوە شکستی هێنا" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "چارەسەرە هەبووەکان خرانە ڕیزەوە", "analysisComplete": "شیکاری تەواو بوو", "syncComplete": "هاوکاتکردن تەواو بوو" + }, + "mutations": { + "serviceNotConfiguredResubmit": "خزمەتگوزاری ئاسایش ڕێکنەخراوە. دووبارە ناردنەوە سەرکەوتوو نابێت هەتا ئەمە چارەسەر نەکرێت.", + "syncMayNotHaveCompleted": "ڕەنگە ناوسینگێک تەواو نەبووبێت. بۆ پێکگەیاندنی دووبارە هەوڵبدەرەوە، یان وازی لێبهێنە.", + "syncInProgress": "ناوسینگێکی ئاسایش لە ئێستادا لە جێبەجێکردندایە. تکایە دووبارە هەوڵبدەرەوە.", + "dismissalInProgress": "ئەم ڕەتکردنە لە ئێستادا لە جێبەجێکردندایە. تکایە دووبارە هەوڵبدەرەوە.", + "couldNotReadPendingSyncs": "نەتوانرا ناوسینگە چاوەڕوانەکان بخوێنرێنەوە. دووبارە هەوڵبدەرەوە." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ئەم ئامێرە ناتوانێت بە بێ ئینتەرنێت وەربگێڕێت. تۆمارەکەت بۆ {{provider}} دەنێردرێت بۆ گۆڕینی بۆ دەق. Kilo دەنگەکە هەڵناگرێت.", "allow": "ڕێگەدان", "start": "دەستپێکردنی دەنگی تێخستن", - "stop": "وەستاندنی دەنگی تێخستن" + "stop": "وەستاندنی دەنگی تێخستن", + "restricted": "دەنگی تێخستن لەسەر ئەم ئامێرە سنووردارە.", + "micRequired": "دەستگەیشتن بە مایکرۆفۆن پێویستە بۆ دەنگی تێخستن.", + "micOff": "دەستگەیشتن بە مایکرۆفۆن داخراوە. لە ڕێکخستنەکاندا بیچالاک بکە بۆ بەکارهێنانی دەنگی تێخستن.", + "micOffTitle": "دەستگەیشتن بە مایکرۆفۆن داخراوە", + "noSpeech": "هیچ قسەیەک نەدۆزرایەوە. بۆ دووبارە هەوڵدانەوە لە مایکرۆفۆنەکە بدە.", + "needsConnection": "دەنگی تێخستن ئێستا پێویستی بە پەیوەندییە. دووبارە هەوڵبدەرەوە.", + "busy": "دەنگی تێخستن سەرقاڵە. دووبارە هەوڵبدەرەوە.", + "stopped": "دەنگی تێخستن وەستا. بۆ دووبارە هەوڵدانەوە لە مایکرۆفۆنەکە بدە.", + "unavailableDevice": "دەنگی تێخستن لەسەر ئەم ئامێرە بەردەست نییە.", + "unavailableLanguage": "دەنگی تێخستن بۆ زمانی ئەم ئامێرە بەردەست نییە." }, "share": { "title": "هاوبەشکردن بۆ Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ئەم Kilo Passیە لە وێبەکەدا بەڕێوە دەبرێت.", "legalDisclosure": "Kilo Pass بەشداربوونێکی مانگانەیە کە خۆکارانە نوێ دەبێتەوە. لە کاتی پشتڕاستکردنەوەی کڕینەکە، پارە لە Apple IDی تۆ دەبەسترێت. بەشداربوونەکان هەر مانگێک بە بەهای نیشاندراو خۆکارانە نوێ دەبنەوە مەگەر لانیکەم ٢٤ کاتژمێر پێش کۆتایی ماوەی ئێستا هەڵنەوەشێنرێنەوە. لە هەر کاتێکدا لە ڕێکخستنەکانی هەژماری App Store بەڕێوەی ببە یان هەڵیبوەشێنەوە.", "legalPrivacyPolicy": "ڕێسای تایبەتمەندی", - "legalTermsOfUse": "مەرجەکانی بەکارهێنان (EULA)" + "legalTermsOfUse": "مەرجەکانی بەکارهێنان (EULA)", + "purchaseNotLinked": "ئەم کڕینەی App Store بە هەژماری Kiloـی تۆ نەبەستراوە. دڵنیابە لەوەی بەو Apple IDـە چوویتە ژوورەوە کە کڕینەکەی کردووە، پاشان دووبارە هەوڵبدەرەوە.", + "purchaseDifferentAccount": "ئەم کڕینەی App Store بە هەژماری Kiloـی تۆ نەبەستراوە. بەو هەژمارەی Apple بچۆ ژوورەوە کە بۆ کڕینەکە بەکارهاتووە، پاشان دووبارە هەوڵبدەرەوە.", + "restoreFailed": "گەڕاندنەوەی کڕینەکان شکستی هێنا. دووبارە هەوڵبدەرەوە.", + "purchaseFailed": "تەواوکردنی کڕین شکستی هێنا.", + "purchaseStartFailed": "دەستپێکردنی کڕینی App Store شکستی هێنا." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "کراوە", "statusPaid": "پارەدراو", "statusVoid": "پووچەڵ", - "title": "فاکتۆرەکان" + "title": "فاکتۆرەکان", + "downloadFailed": "نەتوانرا فاکتۆرا دابگرێت. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەرەوە.", + "sharingUnavailable": "هاوبەشکردن لەسەر ئەم ئامێرە بەردەست نییە." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "چوونە ژوورەوە شکستی هێنا. تکایە دووبارە هەوڵبدەوە.", "networkError": "هەڵەی تۆڕ. تکایە دووبارە هەوڵبدەوە.", "accessDeniedByUser": "دەستگەیشتن لەلایەن بەکارهێنەرەوە ڕەتکرایەوە", - "codeExpired": "کۆدەکە بەسەرچوو" + "codeExpired": "کۆدەکە بەسەرچوو", + "tooManySignInAttempts": "هەوڵی زۆری چوونەژوورەوە. تکایە چاوەڕوان بکە و دووبارە هەوڵبدەرەوە." }, "models": { "dataCollected": "داتاکان کۆکرانەوە", diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index 8c5472d4a5..b725c001f2 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -24,7 +24,10 @@ "required": "povinné", "error": "chyba: {{error}}", "back": "Zpět", - "somethingWentWrong": "Něco se pokazilo" + "somethingWentWrong": "Něco se pokazilo", + "couldNotOpen": "Nepodařilo se otevřít {{label}}", + "link": "odkaz", + "takingLonger": "Toto trvá déle, než se čekalo. Můžete to zavřít a zkontrolovat znovu." }, "language": { "title": "Jazyk", @@ -590,6 +593,12 @@ "commentPosted": "Komentář odeslán", "reviewSubmitted": "Recenze odeslána", "autoMergeEnabled": "Automatické sloučení povoleno" + }, + "mutationError": { + "commentNotPosted": "Tento komentář nelze odeslat. Vybraný řádek se mohl změnit, nebo mohl být PR aktualizován.", + "reviewNotSubmitted": "Tuto recenzi nelze v aktuálním stavu odeslat. PR se mohl změnit, nebo nemůžete recenzovat vlastní pull request.", + "couldNotPostComment": "Komentář se nepodařilo odeslat.", + "couldNotSubmitReview": "Recenzi se nepodařilo odeslat. Zkontrolujte připojení a zkuste to znovu." } }, "notifications": { @@ -728,7 +737,12 @@ "classificationEmpty": "Soubor je prázdný", "classificationTooLarge": "Soubory musí mít 20 MB nebo méně", "classificationUnreadable": "Tento soubor se nepodařilo přečíst", - "announceUploaded": "Příloha nahrána" + "announceUploaded": "Příloha nahrána", + "cantUpload": "Tento soubor nelze nahrát.", + "networkError": "Chyba sítě", + "uploadFailed": "Nahrávání se nezdařilo", + "failedToUploadFile": "Soubor se nepodařilo nahrát: {{reason}}", + "nothingToPaste": "Nic k vložení" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1190,7 +1204,8 @@ "sparkles": "Třpytky", "strongArm": "Silná paže", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Tato instance nemůže přijímat soubory." }, "codeReviewer": { "focusAreas": { @@ -1377,7 +1392,9 @@ "noDecision": "Žádné rozhodnutí", "noResult": "Žádný výsledek" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Nepodařilo se aktualizovat reviewera", + "configSaveFailed": "Nepodařilo se uložit konfiguraci recenzí" }, "securityAgent": { "filter": { @@ -1803,6 +1820,13 @@ "remediationsQueued": "Stávající nápravy jsou ve frontě", "analysisComplete": "Analýza dokončena", "syncComplete": "Synchronizace dokončena" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Bezpečnostní služba není nakonfigurována. Odeslání znovu nemůže uspět, dokud to nebude opraveno.", + "syncMayNotHaveCompleted": "Synchronizace se možná nedokončila. Zkuste to znovu pro vyřešení, nebo ji zahoďte.", + "syncInProgress": "Bezpečnostní synchronizace již probíhá. Zkuste to prosím znovu.", + "dismissalInProgress": "Toto zamítnutí již probíhá. Zkuste to prosím znovu.", + "couldNotReadPendingSyncs": "Čekající synchronizace se nepodařilo přečíst. Zkuste to znovu." } }, "agents": { @@ -2507,7 +2531,17 @@ "onlineMessage": "Toto zařízení nemůže přepisovat offline. Váš záznam je odeslán poskytovateli {{provider}} pro převod na text. Kilo neukládá zvuk.", "allow": "Povolit", "start": "Spustit hlasový vstup", - "stop": "Zastavit hlasový vstup" + "stop": "Zastavit hlasový vstup", + "restricted": "Hlasový vstup je na tomto zařízení omezen.", + "micRequired": "Pro hlasový vstup je vyžadován přístup k mikrofonu.", + "micOff": "Přístup k mikrofonu je vypnutý. Zapněte jej v Nastavení, abyste mohli používat hlasový vstup.", + "micOffTitle": "Přístup k mikrofonu je vypnutý", + "noSpeech": "Nebyla rozpoznána žádná řeč. Klepnutím na mikrofon to zkusíte znovu.", + "needsConnection": "Hlasový vstup právě vyžaduje připojení. Zkuste to znovu.", + "busy": "Hlasový vstup je zaneprázdněn. Zkuste to znovu.", + "stopped": "Hlasový vstup se zastavil. Klepnutím na mikrofon to zkusíte znovu.", + "unavailableDevice": "Hlasový vstup není na tomto zařízení k dispozici.", + "unavailableLanguage": "Hlasový vstup není k dispozici pro jazyk tohoto zařízení." }, "share": { "title": "Sdílet do Kilo", @@ -2585,7 +2619,12 @@ "webManagementDescription": "Tento Kilo Pass je spravován na webu.", "legalDisclosure": "Kilo Pass je měsíční předplatné s automatickou obnovou. Platba je účtována na váš Apple ID při potvrzení nákupu. Předplatné se automaticky obnovuje každý měsíc za uvedenou cenu, pokud jej nezrušíte nejméně 24 hodin před koncem aktuálního období. Předplatné můžete kdykoli spravovat nebo zrušit v nastavení účtu App Store.", "legalPrivacyPolicy": "Zásady ochrany osobních údajů", - "legalTermsOfUse": "Podmínky použití (EULA)" + "legalTermsOfUse": "Podmínky použití (EULA)", + "purchaseNotLinked": "Tento nákup v App Store není propojen s vaším účtem Kilo. Ujistěte se, že jste přihlášeni k Apple ID, které nákup provedlo, a zkuste to znovu.", + "purchaseDifferentAccount": "Tento nákup v App Store není propojen s vaším účtem Kilo. Přihlaste se k Apple účtu použitému pro nákup a zkuste to znovu.", + "restoreFailed": "Obnovení nákupů se nezdařilo. Zkuste to znovu.", + "purchaseFailed": "Nákup se nepodařilo dokončit.", + "purchaseStartFailed": "Nákup v App Store se nepodařilo zahájit." }, "consent": { "kilo": "Kilo", @@ -2718,7 +2757,9 @@ "statusOpen": "Otevřeno", "statusPaid": "Zaplaceno", "statusVoid": "Neplatné", - "title": "Faktury" + "title": "Faktury", + "downloadFailed": "Fakturu se nepodařilo stáhnout. Zkontrolujte připojení a zkuste to znovu.", + "sharingUnavailable": "Sdílení není na tomto zařízení k dispozici." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Přihlášení se nezdařilo. Zkuste to prosím znovu.", "networkError": "Chyba sítě. Zkuste to prosím znovu.", "accessDeniedByUser": "Přístup zamítnut uživatelem", - "codeExpired": "Kód vypršel" + "codeExpired": "Kód vypršel", + "tooManySignInAttempts": "Příliš mnoho pokusů o přihlášení. Počkejte a zkuste to prosím znovu." }, "models": { "dataCollected": "Shromažďovaná data", diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 898c1ef7f7..56cb712441 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -24,7 +24,10 @@ "required": "gofynnol", "error": "gwall: {{error}}", "back": "Yn ôl", - "somethingWentWrong": "Aeth rhywbeth o'i le" + "somethingWentWrong": "Aeth rhywbeth o'i le", + "couldNotOpen": "Ni ellid agor {{label}}", + "link": "dolen", + "takingLonger": "Mae hyn yn cymryd yn hirach na'r disgwyl. Gallwch gau hwn a gwirio eto." }, "language": { "title": "Iaith", @@ -604,6 +607,12 @@ "commentPosted": "Sylw wedi'i bostio", "reviewSubmitted": "Adolygiad wedi'i gyflwyno", "autoMergeEnabled": "Cyfuno awtomatig wedi'i alluogi" + }, + "mutationError": { + "commentNotPosted": "Ni ellir postio'r sylw hwn. Efallai fod y llinell a ddewiswyd wedi newid, neu fod y PR wedi'i ddiweddaru.", + "reviewNotSubmitted": "Ni ellir cyflwyno'r adolygiad hwn fel y mae. Efallai fod y PR wedi newid, neu ni allwch adolygu eich cais tynnu eich hun.", + "couldNotPostComment": "Ni ellid postio'r sylw.", + "couldNotSubmitReview": "Ni ellid cyflwyno'r adolygiad. Gwiriwch eich cysylltiad a rhoi cynnig arall arni." } }, "notifications": { @@ -742,7 +751,12 @@ "classificationEmpty": "Mae'r ffeil yn wag", "classificationTooLarge": "Rhaid i ffeiliau fod yn 20 MB neu lai", "classificationUnreadable": "Ni ellid darllen y ffeil hon", - "announceUploaded": "Atodiad wedi'i uwchlwytho" + "announceUploaded": "Atodiad wedi'i uwchlwytho", + "cantUpload": "Ni ellir uwchlwytho'r ffeil hon.", + "networkError": "Gwall rhwydwaith", + "uploadFailed": "Methodd yr uwchlwythiad", + "failedToUploadFile": "Methwyd uwchlwytho'r ffeil: {{reason}}", + "nothingToPaste": "Dim byd i'w ludo" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1208,7 +1222,8 @@ "sparkles": "Sgleinion", "strongArm": "Braich gref", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Ni all yr enghraifft hon dderbyn ffeiliau." }, "codeReviewer": { "focusAreas": { @@ -1395,7 +1410,9 @@ "noDecision": "Dim penderfyniad", "noResult": "Dim canlyniad" }, - "eyebrow": "Adolygydd Cod" + "eyebrow": "Adolygydd Cod", + "updateFailed": "Methodd diweddaru'r adolygydd", + "configSaveFailed": "Methodd cadw cyfluniad yr adolygiad" }, "securityAgent": { "filter": { @@ -1825,6 +1842,13 @@ "remediationsQueued": "Unioniadau presennol yn y ciw", "analysisComplete": "Dadansoddiad wedi'i gwblhau", "syncComplete": "Cydamseriad wedi'i gwblhau" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Nid yw'r gwasanaeth diogelwch wedi'i ffurfweddu. Ni all ailddanfoniad lwyddo nes i hwn gael ei drwsio.", + "syncMayNotHaveCompleted": "Efallai na chwblhawyd cysoniad. Ceisiwch eto i'w gysoni, neu taflwch ef.", + "syncInProgress": "Mae cysoniad diogelwch eisoes ar y gweill. Rhowch gynnig arall arni.", + "dismissalInProgress": "Mae'r gwrthodiad hwn eisoes ar y gweill. Rhowch gynnig arall arni.", + "couldNotReadPendingSyncs": "Ni ellid darllen cysoniadau ar y gweill. Rhowch gynnig arall arni." } }, "agents": { @@ -2543,7 +2567,17 @@ "onlineMessage": "Ni all y ddyfais hon drawsgrifio all-lein. Anfonir eich recordiad at {{provider}} i'w droi'n destun. Nid yw Kilo yn storio'r sain.", "allow": "Caniatáu", "start": "Cychwyn mewnbwn llais", - "stop": "Stopio mewnbwn llais" + "stop": "Stopio mewnbwn llais", + "restricted": "Mae mewnbwn llais yn gyfyngedig ar y ddyfais hon.", + "micRequired": "Mae angen mynediad at y meic ar gyfer mewnbwn llais.", + "micOff": "Mae mynediad at y meic wedi'i ddiffodd. Galluwch ef yn Gosodiadau i ddefnyddio mewnbwn llais.", + "micOffTitle": "Mae mynediad at y meic wedi'i ddiffodd", + "noSpeech": "Ni chanfuwyd unrhyw leferydd. Tapiwch y meic i roi cynnig arall arni.", + "needsConnection": "Mae mewnbwn llais angen cysylltiad ar hyn o bryd. Rhowch gynnig arall arni.", + "busy": "Mae mewnbwn llais yn brysur. Rhowch gynnig arall arni.", + "stopped": "Stopiodd mewnbwn llais. Tapiwch y meic i roi cynnig arall arni.", + "unavailableDevice": "Nid yw mewnbwn llais ar gael ar y ddyfais hon.", + "unavailableLanguage": "Nid yw mewnbwn llais ar gael ar gyfer iaith y ddyfais hon." }, "share": { "title": "Rhannu i Kilo", @@ -2621,7 +2655,12 @@ "webManagementDescription": "Mae'r Kilo Pass hwn yn cael ei reoli ar y we.", "legalDisclosure": "Tanysgrifiad misol sy'n adnewyddu'n awtomatig yw Kilo Pass. Codir y taliad i'ch Apple ID ar gadarnhad o'r pryniant. Mae tanysgrifiadau'n adnewyddu'n awtomatig bob mis am y pris a ddangosir oni bai eich bod yn canslo o leiaf 24 awr cyn diwedd y cyfnod cyfredol. Rheolwch neu ganslwch unrhyw bryd yng ngosodiadau cyfrif eich App Store.", "legalPrivacyPolicy": "Polisi Preifatrwydd", - "legalTermsOfUse": "Telerau Defnyddio (EULA)" + "legalTermsOfUse": "Telerau Defnyddio (EULA)", + "purchaseNotLinked": "Nid yw'r pryniant App Store hwn wedi'i gysylltu â'ch cyfrif Kilo. Sicrhewch eich bod wedi mewngofnodi i'r Apple ID a wnaeth y pryniant, yna rhowch gynnig arall arni.", + "purchaseDifferentAccount": "Nid yw'r pryniant App Store hwn wedi'i gysylltu â'ch cyfrif Kilo. Mewngofnodwch i'r Apple Account a ddefnyddiwyd ar gyfer y pryniant, yna rhowch gynnig arall arni.", + "restoreFailed": "Methodd adfer pryniannau. Rhowch gynnig arall arni.", + "purchaseFailed": "Methodd cwblhau'r pryniant.", + "purchaseStartFailed": "Methodd cychwyn pryniant App Store." }, "consent": { "kilo": "Kilo", @@ -2754,7 +2793,9 @@ "statusOpen": "Ar agor", "statusPaid": "Wedi'i thalu", "statusVoid": "Gwag", - "title": "Anfonebau" + "title": "Anfonebau", + "downloadFailed": "Ni ellid lawrlwytho'r anfoneb. Gwiriwch eich cysylltiad a rhoi cynnig arall arni.", + "sharingUnavailable": "Nid yw rhannu ar gael ar y ddyfais hon." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2878,7 +2919,8 @@ "signInFailed": "Methodd mewngofnodi. Rhowch gynnig eto.", "networkError": "Gwall rhwydwaith. Rhowch gynnig eto.", "accessDeniedByUser": "Mynediad wedi'i wrthod gan y defnyddiwr", - "codeExpired": "Cod wedi dod i ben" + "codeExpired": "Cod wedi dod i ben", + "tooManySignInAttempts": "Gormod o geisiadau mewngofnodi. Arhoswch a rhowch gynnig arall arni." }, "models": { "dataCollected": "Data a gasglwyd", diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index 27aa20228c..aab742df59 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -24,7 +24,10 @@ "required": "påkrævet", "error": "fejl: {{error}}", "back": "Tilbage", - "somethingWentWrong": "Noget gik galt" + "somethingWentWrong": "Noget gik galt", + "couldNotOpen": "Kunne ikke åbne {{label}}", + "link": "link", + "takingLonger": "Dette tager længere tid end forventet. Du kan lukke dette og tjekke igen." }, "language": { "title": "Sprog", @@ -576,6 +579,12 @@ "commentPosted": "Kommentar sendt", "reviewSubmitted": "Anmeldelse indsendt", "autoMergeEnabled": "Automatisk fletning aktiveret" + }, + "mutationError": { + "commentNotPosted": "Denne kommentar kan ikke sendes. Den valgte linje kan have ændret sig, eller PR'en kan være blevet opdateret.", + "reviewNotSubmitted": "Denne anmeldelse kan ikke sendes, som den er. PR'en kan have ændret sig, eller du kan ikke anmelde din egen pull request.", + "couldNotPostComment": "Kunne ikke sende kommentaren.", + "couldNotSubmitReview": "Kunne ikke sende anmeldelsen. Tjek din forbindelse og prøv igen." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Filen er tom", "classificationTooLarge": "Filer skal være på 20 MB eller mindre", "classificationUnreadable": "Kunne ikke læse denne fil", - "announceUploaded": "Vedhæftning uploadet" + "announceUploaded": "Vedhæftning uploadet", + "cantUpload": "Denne fil kan ikke uploades.", + "networkError": "Netværksfejl", + "uploadFailed": "Upload mislykkedes", + "failedToUploadFile": "Kunne ikke uploade fil: {{reason}}", + "nothingToPaste": "Intet at indsætte" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Gnister", "strongArm": "Stærk arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Denne instance kan ikke modtage filer." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Ingen beslutning", "noResult": "Intet resultat" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Kunne ikke opdatere Code Reviewer", + "configSaveFailed": "Kunne ikke gemme gennemgangskonfigurationen" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Eksisterende afhjælpninger sat i kø", "analysisComplete": "Analyse fuldført", "syncComplete": "Synkronisering fuldført" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Sikkerhedstjenesten er ikke konfigureret. Genindsendelse kan ikke lykkes, før dette er rettet.", + "syncMayNotHaveCompleted": "En synkronisering er måske ikke blevet fuldført. Prøv igen for at afstemme den, eller kassér den.", + "syncInProgress": "En sikkerhedssynkronisering er allerede i gang. Prøv venligst igen.", + "dismissalInProgress": "Denne afvisning er allerede i gang. Prøv venligst igen.", + "couldNotReadPendingSyncs": "Kunne ikke læse ventende synkroniseringer. Prøv igen." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Denne enhed kan ikke transskribere offline. Din optagelse sendes til {{provider}} for at blive konverteret til tekst. Kilo gemmer ikke lyden.", "allow": "Tillad", "start": "Start taleinput", - "stop": "Stop taleinput" + "stop": "Stop taleinput", + "restricted": "Taleinput er begrænset på denne enhed.", + "micRequired": "Mikrofonadgang er påkrævet for taleinput.", + "micOff": "Mikrofonadgang er slået fra. Slå den til i Indstillinger for at bruge taleinput.", + "micOffTitle": "Mikrofonadgang er slået fra", + "noSpeech": "Ingen tale registreret. Tryk på mikrofonen for at prøve igen.", + "needsConnection": "Taleinput kræver en forbindelse lige nu. Prøv igen.", + "busy": "Taleinput er optaget. Prøv igen.", + "stopped": "Taleinput stoppede. Tryk på mikrofonen for at prøve igen.", + "unavailableDevice": "Taleinput er ikke tilgængeligt på denne enhed.", + "unavailableLanguage": "Taleinput er ikke tilgængeligt for dette enhedssprog." }, "share": { "title": "Del til Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Denne Kilo Pass administreres på nettet.", "legalDisclosure": "Kilo Pass er et automatisk fornyeligt månedligt abonnement. Betaling opkræves på din Apple ID ved bekræftelse af købet. Abonnementer fornyes automatisk hver måned til den viste pris, medmindre de annulleres mindst 24 timer før udløbet af den aktuelle periode. Administrér eller annullér når som helst i dine App Store-kontoindstillinger.", "legalPrivacyPolicy": "Fortrolighedspolitik", - "legalTermsOfUse": "Vilkår for brug (EULA)" + "legalTermsOfUse": "Vilkår for brug (EULA)", + "purchaseNotLinked": "Dette App Store-køb er ikke knyttet til din Kilo-konto. Sørg for, at du er logget ind på den Apple ID, der foretog købet, og prøv igen.", + "purchaseDifferentAccount": "Dette App Store-køb er ikke knyttet til din Kilo-konto. Log ind på den Apple-konto, der blev brugt til købet, og prøv igen.", + "restoreFailed": "Kunne ikke gendanne køb. Prøv igen.", + "purchaseFailed": "Kunne ikke fuldføre købet.", + "purchaseStartFailed": "Kunne ikke starte App Store-købet." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Åben", "statusPaid": "Betalt", "statusVoid": "Annulleret", - "title": "Fakturaer" + "title": "Fakturaer", + "downloadFailed": "Kunne ikke downloade fakturaen. Tjek din forbindelse og prøv igen.", + "sharingUnavailable": "Deling er ikke tilgængelig på denne enhed." }, "lowBalanceAlert": { "emailPlaceholder": "navn@virksomhed.dk", @@ -2802,7 +2843,8 @@ "signInFailed": "Login mislykkedes. Prøv igen.", "networkError": "Netværksfejl. Prøv igen.", "accessDeniedByUser": "Adgang afvist af bruger", - "codeExpired": "Koden er udløbet" + "codeExpired": "Koden er udløbet", + "tooManySignInAttempts": "For mange login-forsøg. Vent og prøv igen." }, "models": { "dataCollected": "Indsamlede data", diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index a36f016202..cc5920c0ce 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -24,7 +24,10 @@ "notNow": "Nicht jetzt", "continue": "Weiter", "back": "Zurück", - "somethingWentWrong": "Etwas ist schiefgelaufen" + "somethingWentWrong": "Etwas ist schiefgelaufen", + "couldNotOpen": "{{label}} konnte nicht geöffnet werden", + "link": "Link", + "takingLonger": "Dies dauert länger als erwartet. Du kannst dies schließen und später erneut prüfen." }, "language": { "title": "Sprache", @@ -283,7 +286,12 @@ "classificationEmpty": "Die Datei ist leer", "classificationTooLarge": "Dateien dürfen höchstens 20 MB groß sein", "classificationUnreadable": "Diese Datei konnte nicht gelesen werden", - "announceUploaded": "Anhang hochgeladen" + "announceUploaded": "Anhang hochgeladen", + "cantUpload": "Diese Datei kann nicht hochgeladen werden.", + "networkError": "Netzwerkfehler", + "uploadFailed": "Hochladen fehlgeschlagen", + "failedToUploadFile": "Datei konnte nicht hochgeladen werden: {{reason}}", + "nothingToPaste": "Nichts einzufügen" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -741,7 +749,8 @@ "sparkles": "Glitzer", "strongArm": "Starker Arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Diese Instanz kann keine Dateien empfangen." }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "Review-Speicher", "reviewStyle": "Review-Stil", "set": "Gesetzt" - } + }, + "updateFailed": "Reviewer konnte nicht aktualisiert werden", + "configSaveFailed": "Review-Konfiguration konnte nicht gespeichert werden" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "Bestehende Behebungen eingereiht", "analysisComplete": "Analyse abgeschlossen", "syncComplete": "Synchronisierung abgeschlossen" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Der Sicherheitsdienst ist nicht konfiguriert. Erneutes Senden kann nicht gelingen, bis dies behoben ist.", + "syncMayNotHaveCompleted": "Eine Synchronisierung wurde möglicherweise nicht abgeschlossen. Wiederhole sie, um sie abzugleichen, oder verwerfe sie.", + "syncInProgress": "Eine Sicherheitssynchronisierung läuft bereits. Bitte versuche es erneut.", + "dismissalInProgress": "Diese Verwerfung ist bereits im Gange. Bitte versuche es erneut.", + "couldNotReadPendingSyncs": "Ausstehende Synchronisierungen konnten nicht gelesen werden. Versuche es erneut." } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "Sprache wird online verarbeitet", "staysOff": "Sprache bleibt aus, bis du die Online-Transkription erlaubst.", "start": "Spracheingabe starten", - "stop": "Spracheingabe stoppen" + "stop": "Spracheingabe stoppen", + "restricted": "Spracheingabe ist auf diesem Gerät eingeschränkt.", + "micRequired": "Für die Spracheingabe ist Mikrofonzugriff erforderlich.", + "micOff": "Mikrofonzugriff ist deaktiviert. Aktiviere ihn in den Einstellungen, um die Spracheingabe zu verwenden.", + "micOffTitle": "Mikrofonzugriff ist deaktiviert", + "noSpeech": "Keine Sprache erkannt. Tippe auf das Mikrofon, um es erneut zu versuchen.", + "needsConnection": "Spracheingabe benötigt gerade eine Verbindung. Versuche es erneut.", + "busy": "Spracheingabe ist beschäftigt. Versuche es erneut.", + "stopped": "Die Spracheingabe wurde gestoppt. Tippe auf das Mikrofon, um es erneut zu versuchen.", + "unavailableDevice": "Spracheingabe ist auf diesem Gerät nicht verfügbar.", + "unavailableLanguage": "Spracheingabe ist für diese Gerätesprache nicht verfügbar." }, "share": { "title": "An Kilo teilen", @@ -2118,7 +2146,12 @@ "webManagementDescription": "Dieser Kilo Pass wird im Web verwaltet.", "legalDisclosure": "Kilo Pass ist ein automatisch verlängerbares Monatsabonnement. Die Zahlung wird bei Kaufbestätigung deiner Apple-ID belastet. Abonnements verlängern sich automatisch jeden Monat zum angezeigten Preis, sofern sie nicht mindestens 24 Stunden vor Ende des aktuellen Zeitraums gekündigt werden. Jederzeit in deinen App-Store-Kontoeinstellungen verwalten oder kündigen.", "legalPrivacyPolicy": "Datenschutzrichtlinie", - "legalTermsOfUse": "Nutzungsbedingungen (EULA)" + "legalTermsOfUse": "Nutzungsbedingungen (EULA)", + "purchaseNotLinked": "Dieser App-Store-Kauf ist nicht mit deinem Kilo-Konto verknüpft. Stelle sicher, dass du mit der Apple-ID angemeldet bist, mit der der Kauf getätigt wurde, und versuche es erneut.", + "purchaseDifferentAccount": "Dieser App-Store-Kauf ist nicht mit deinem Kilo-Konto verknüpft. Melde dich mit dem Apple-Konto an, mit dem der Kauf getätigt wurde, und versuche es erneut.", + "restoreFailed": "Käufe konnten nicht wiederhergestellt werden. Versuche es erneut.", + "purchaseFailed": "Der Kauf konnte nicht abgeschlossen werden.", + "purchaseStartFailed": "Der App-Store-Kauf konnte nicht gestartet werden." }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "Kommentar veröffentlicht", "reviewSubmitted": "Review eingereicht", "autoMergeEnabled": "Auto-Merge aktiviert" + }, + "mutationError": { + "commentNotPosted": "Dieser Kommentar kann nicht veröffentlicht werden. Die ausgewählte Zeile könnte sich geändert haben, oder der PR wurde aktualisiert.", + "reviewNotSubmitted": "Dieses Review kann nicht gesendet werden. Der PR könnte sich geändert haben, oder du kannst deinen eigenen Pull Request nicht prüfen.", + "couldNotPostComment": "Kommentar konnte nicht veröffentlicht werden.", + "couldNotSubmitReview": "Review konnte nicht gesendet werden. Prüfe deine Verbindung und versuche es erneut." } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "Rechnungen", "statusPaid": "Bezahlt", "statusOpen": "Offen", - "statusVoid": "Ungültig" + "statusVoid": "Ungültig", + "downloadFailed": "Rechnung konnte nicht heruntergeladen werden. Prüfe deine Verbindung und versuche es erneut.", + "sharingUnavailable": "Teilen ist auf diesem Gerät nicht verfügbar." }, "lowBalanceAlert": { "emailPlaceholder": "name@firma.de", @@ -2802,7 +2843,8 @@ "signInFailed": "Anmeldung fehlgeschlagen. Bitte versuche es erneut.", "networkError": "Netzwerkfehler. Bitte versuche es erneut.", "accessDeniedByUser": "Zugriff vom Nutzer verweigert", - "codeExpired": "Der Code ist abgelaufen" + "codeExpired": "Der Code ist abgelaufen", + "tooManySignInAttempts": "Zu viele Anmeldeversuche. Bitte warte und versuche es erneut." }, "models": { "dataCollected": "Erfasste Daten", diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index 209b1c10a1..7412c6359b 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -24,7 +24,10 @@ "required": "απαιτείται", "error": "σφάλμα: {{error}}", "back": "Πίσω", - "somethingWentWrong": "Κάτι πήγε στραβά" + "somethingWentWrong": "Κάτι πήγε στραβά", + "couldNotOpen": "Δεν ήταν δυνατό το άνοιγμα {{label}}", + "link": "σύνδεσμος", + "takingLonger": "Αυτό διαρκεί περισσότερο από το αναμενόμενο. Μπορείτε να το κλείσετε και να ελέγξετε ξανά." }, "language": { "title": "Γλώσσα", @@ -576,6 +579,12 @@ "commentPosted": "Δημοσιεύτηκε το σχόλιο", "reviewSubmitted": "Υποβλήθηκε η αναθεώρηση", "autoMergeEnabled": "Η αυτόματη συγχώνευση ενεργοποιήθηκε" + }, + "mutationError": { + "commentNotPosted": "Αυτό το σχόλιο δεν μπορεί να δημοσιευτεί. Η επιλεγμένη γραμμή μπορεί να έχει αλλάξει ή το PR μπορεί να έχει ενημερωθεί.", + "reviewNotSubmitted": "Αυτή η αναθεώρηση δεν μπορεί να υποβληθεί ως έχει. Το PR μπορεί να έχει αλλάξει ή δεν μπορείτε να αναθεωρήσετε το δικό σας pull request.", + "couldNotPostComment": "Δεν ήταν δυνατή η δημοσίευση του σχολίου.", + "couldNotSubmitReview": "Δεν ήταν δυνατή η υποβολή της αναθεώρησης. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Το αρχείο είναι κενό", "classificationTooLarge": "Τα αρχεία πρέπει να είναι 20 MB ή μικρότερα", "classificationUnreadable": "Δεν ήταν δυνατή η ανάγνωση αυτού του αρχείου", - "announceUploaded": "Το συνημμένο μεταφορτώθηκε" + "announceUploaded": "Το συνημμένο μεταφορτώθηκε", + "cantUpload": "Αυτό το αρχείο δεν μπορεί να μεταφορτωθεί.", + "networkError": "Σφάλμα δικτύου", + "uploadFailed": "Η μεταφόρτωση απέτυχε", + "failedToUploadFile": "Δεν ήταν δυνατή η μεταφόρτωση του αρχείου: {{reason}}", + "nothingToPaste": "Δεν υπάρχει τίποτα για επικόλληση" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Λάμψεις", "strongArm": "Δυνατό χέρι", "talisman": "Φυλαχτό" - } + }, + "remoteSpawnFilesNotSupported": "Αυτό το instance δεν μπορεί να λάβει αρχεία." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Καμία απόφαση", "noResult": "Κανένα αποτέλεσμα" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Δεν ήταν δυνατή η ενημέρωση του αναθεωρητή", + "configSaveFailed": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων αναθεώρησης" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Οι υπάρχουσες αποκαταστάσεις μπήκαν στην ουρά", "analysisComplete": "Η ανάλυση ολοκληρώθηκε", "syncComplete": "Ο συγχρονισμός ολοκληρώθηκε" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Η υπηρεσία ασφαλείας δεν έχει διαμορφωθεί. Η εκ νέου υποβολή δεν μπορεί να επιτύχει έως ότου διορθωθεί αυτό.", + "syncMayNotHaveCompleted": "Ένας συγχρονισμός μπορεί να μην έχει ολοκληρωθεί. Δοκιμάστε ξανά για να τον επαναφέρετε ή απορρίψτε τον.", + "syncInProgress": "Ένας συγχρονισμός ασφαλείας είναι ήδη σε εξέλιξη. Δοκιμάστε ξανά.", + "dismissalInProgress": "Αυτή η απόρριψη είναι ήδη σε εξέλιξη. Δοκιμάστε ξανά.", + "couldNotReadPendingSyncs": "Δεν ήταν δυνατή η ανάγνωση των εκκρεμών συγχρονισμών. Δοκιμάστε ξανά." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Αυτή η συσκευή δεν μπορεί να μεταγράψει εκτός σύνδεσης. Η εγγραφή σας αποστέλλεται στο {{provider}} για μετατροπή σε κείμενο. Το Kilo δεν αποθηκεύει τον ήχο.", "allow": "Επιτρέπω", "start": "Έναρξη φωνητικής εισόδου", - "stop": "Διακοπή φωνητικής εισόδου" + "stop": "Διακοπή φωνητικής εισόδου", + "restricted": "Η φωνητική είσοδος είναι περιορισμένη σε αυτή τη συσκευή.", + "micRequired": "Απαιτείται πρόσβαση στο μικρόφωνο για τη φωνητική είσοδο.", + "micOff": "Η πρόσβαση στο μικρόφωνο είναι απενεργοποιημένη. Ενεργοποιήστε την στις Ρυθμίσεις για να χρησιμοποιήσετε τη φωνητική είσοδο.", + "micOffTitle": "Η πρόσβαση στο μικρόφωνο είναι απενεργοποιημένη", + "noSpeech": "Δεν εντοπίστηκε ομιλία. Πατήστε το μικρόφωνο για να δοκιμάσετε ξανά.", + "needsConnection": "Η φωνητική είσοδος χρειάζεται σύνδεση αυτή τη στιγμή. Δοκιμάστε ξανά.", + "busy": "Η φωνητική είσοδος είναι απασχολημένη. Δοκιμάστε ξανά.", + "stopped": "Η φωνητική είσοδος σταμάτησε. Πατήστε το μικρόφωνο για να δοκιμάσετε ξανά.", + "unavailableDevice": "Η φωνητική είσοδος δεν είναι διαθέσιμη σε αυτή τη συσκευή.", + "unavailableLanguage": "Η φωνητική είσοδος δεν είναι διαθέσιμη για τη γλώσσα αυτής της συσκευής." }, "share": { "title": "Κοινή χρήση στο Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Αυτό το Kilo Pass διαχειρίζεται στον ιστό.", "legalDisclosure": "Το Kilo Pass είναι μια συνδρομή με αυτόματη ανανέωση σε μηνιαία βάση. Η πληρωμή χρεώνεται στο Apple ID σας κατά την επιβεβαίωση της αγοράς. Οι συνδρομές ανανεώνονται αυτόματα κάθε μήνα στην τιμή που εμφανίζεται, εκτός εάν ακυρωθούν τουλάχιστον 24 ώρες πριν από το τέλος της τρέχουσας περιόδου. Διαχειριστείτε ή ακυρώστε ανά πάσα στιγμή στις ρυθμίσεις του λογαριασμού σας στο App Store.", "legalPrivacyPolicy": "Πολιτική Απορρήτου", - "legalTermsOfUse": "Όροι Χρήσης (EULA)" + "legalTermsOfUse": "Όροι Χρήσης (EULA)", + "purchaseNotLinked": "Αυτή η αγορά από το App Store δεν συνδέεται με τον λογαριασμό σας στο Kilo. Βεβαιωθείτε ότι έχετε συνδεθεί στο Apple ID με το οποίο έγινε η αγορά και δοκιμάστε ξανά.", + "purchaseDifferentAccount": "Αυτή η αγορά από το App Store δεν συνδέεται με τον λογαριασμό σας στο Kilo. Συνδεθείτε με τον Λογαριασμό Apple που χρησιμοποιήθηκε για την αγορά και δοκιμάστε ξανά.", + "restoreFailed": "Δεν ήταν δυνατή η επαναφορά των αγορών. Δοκιμάστε ξανά.", + "purchaseFailed": "Δεν ήταν δυνατή η ολοκλήρωση της αγοράς.", + "purchaseStartFailed": "Δεν ήταν δυνατή η έναρξη της αγοράς από το App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Ανοιχτό", "statusPaid": "Πληρωμένο", "statusVoid": "Άκυρο", - "title": "Τιμολόγια" + "title": "Τιμολόγια", + "downloadFailed": "Δεν ήταν δυνατή η λήψη του τιμολογίου. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά.", + "sharingUnavailable": "Η κοινή χρήση δεν είναι διαθέσιμη σε αυτή τη συσκευή." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Η σύνδεση απέτυχε. Δοκιμάστε ξανά.", "networkError": "Σφάλμα δικτύου. Δοκιμάστε ξανά.", "accessDeniedByUser": "Η πρόσβαση απορρίφθηκε από τον χρήστη", - "codeExpired": "Ο κωδικός έληξε" + "codeExpired": "Ο κωδικός έληξε", + "tooManySignInAttempts": "Πάρα πολλές προσπάθειες σύνδεσης. Περιμένετε και δοκιμάστε ξανά." }, "models": { "dataCollected": "Δεδομένα που συλλέγονται", diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index 5b36c670e6..77f6695942 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -24,7 +24,10 @@ "required": "required", "error": "error: {{error}}", "back": "Back", - "somethingWentWrong": "Something went wrong" + "somethingWentWrong": "Something went wrong", + "couldNotOpen": "Could not open {{label}}", + "link": "link", + "takingLonger": "This is taking longer than expected. You can close this and check again." }, "language": { "title": "Language", @@ -576,6 +579,12 @@ "commentPosted": "Comment posted", "reviewSubmitted": "Review submitted", "autoMergeEnabled": "Auto-merge enabled" + }, + "mutationError": { + "commentNotPosted": "This comment can't be posted. The selected line may have changed, or the PR may have been updated.", + "reviewNotSubmitted": "This review can't be submitted as is. The PR may have changed, or you can't review your own pull request.", + "couldNotPostComment": "Could not post comment.", + "couldNotSubmitReview": "Could not submit review. Check your connection and try again." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "File is empty", "classificationTooLarge": "Files must be 20 MB or smaller", "classificationUnreadable": "Couldn't read this file", - "announceUploaded": "Attachment uploaded" + "announceUploaded": "Attachment uploaded", + "cantUpload": "This file can't be uploaded.", + "networkError": "Network error", + "uploadFailed": "Upload failed", + "failedToUploadFile": "Failed to upload file: {{reason}}", + "nothingToPaste": "Nothing to paste" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Sparkles", "strongArm": "Strong arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "This instance cannot receive files." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "No decision", "noResult": "No result" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Failed to update reviewer", + "configSaveFailed": "Failed to save review config" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Existing remediations queued", "analysisComplete": "Analysis complete", "syncComplete": "Sync complete" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Security service is not configured. Resubmitting cannot succeed until this is fixed.", + "syncMayNotHaveCompleted": "A sync may not have completed. Retry to reconcile it, or discard.", + "syncInProgress": "A security sync is already in progress. Please try again.", + "dismissalInProgress": "This dismissal is already in progress. Please try again.", + "couldNotReadPendingSyncs": "Could not read pending syncs. Try again." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "This device cannot transcribe offline. Your recording is sent to {{provider}} to turn it into text. Kilo does not store the audio.", "allow": "Allow", "start": "Start voice input", - "stop": "Stop voice input" + "stop": "Stop voice input", + "restricted": "Voice input is restricted on this device.", + "micRequired": "Microphone access is required for voice input.", + "micOff": "Microphone access is off. Enable it in Settings to use voice input.", + "micOffTitle": "Microphone access is off", + "noSpeech": "No speech detected. Tap the microphone to try again.", + "needsConnection": "Voice input needs a connection right now. Try again.", + "busy": "Voice input is busy. Try again.", + "stopped": "Voice input stopped. Tap the microphone to try again.", + "unavailableDevice": "Voice input isn't available on this device.", + "unavailableLanguage": "Voice input isn't available for this device language." }, "share": { "title": "Share to Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "This Kilo Pass is managed on the web.", "legalDisclosure": "Kilo Pass is an auto-renewable monthly subscription. Payment is charged to your Apple ID at confirmation of purchase. Subscriptions renew automatically each month at the price shown unless canceled at least 24 hours before the end of the current period. Manage or cancel anytime in your App Store account settings.", "legalPrivacyPolicy": "Privacy Policy", - "legalTermsOfUse": "Terms of Use (EULA)" + "legalTermsOfUse": "Terms of Use (EULA)", + "purchaseNotLinked": "This App Store purchase isn't linked to your Kilo account. Make sure you're signed in to the Apple ID that made the purchase, then try again.", + "purchaseDifferentAccount": "This App Store purchase isn't linked to your Kilo account. Sign in to the Apple Account used for the purchase, then try again.", + "restoreFailed": "Failed to restore purchases. Try again.", + "purchaseFailed": "Failed to complete purchase.", + "purchaseStartFailed": "Failed to start App Store purchase." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Open", "statusPaid": "Paid", "statusVoid": "Void", - "title": "Invoices" + "title": "Invoices", + "downloadFailed": "Couldn't download invoice. Check your connection and try again.", + "sharingUnavailable": "Sharing is not available on this device." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Sign-in failed. Please try again.", "networkError": "Network error. Please try again.", "accessDeniedByUser": "Access denied by user", - "codeExpired": "Code expired" + "codeExpired": "Code expired", + "tooManySignInAttempts": "Too many sign-in attempts. Please wait and try again." }, "models": { "dataCollected": "Data collected", diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index 87bb25579c..3a584c158c 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -24,7 +24,10 @@ "notNow": "Ahora no", "continue": "Continuar", "back": "Atrás", - "somethingWentWrong": "Algo salió mal" + "somethingWentWrong": "Algo salió mal", + "couldNotOpen": "No se pudo abrir {{label}}", + "link": "enlace", + "takingLonger": "Esto está tardando más de lo esperado. Puedes cerrarlo y comprobarlo de nuevo." }, "language": { "title": "Idioma", @@ -283,7 +286,12 @@ "classificationEmpty": "El archivo está vacío", "classificationTooLarge": "Los archivos deben tener 20 MB o menos", "classificationUnreadable": "No se pudo leer este archivo", - "announceUploaded": "Adjunto subido" + "announceUploaded": "Adjunto subido", + "cantUpload": "Este archivo no se puede subir.", + "networkError": "Error de red", + "uploadFailed": "Subida fallida", + "failedToUploadFile": "No se pudo subir el archivo: {{reason}}", + "nothingToPaste": "No hay nada que pegar" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -743,7 +751,8 @@ "sparkles": "Destellos", "strongArm": "Brazo fuerte", "talisman": "Talismán" - } + }, + "remoteSpawnFilesNotSupported": "Esta instancia no puede recibir archivos." }, "codeReviewer": { "focusAreas": { @@ -930,7 +939,9 @@ "reviewMemory": "Memoria de revisión", "reviewStyle": "Estilo de revisión", "set": "Establecer" - } + }, + "updateFailed": "No se pudo actualizar el revisor", + "configSaveFailed": "No se pudo guardar la configuración de revisión" }, "securityAgent": { "filter": { @@ -1354,6 +1365,13 @@ "remediationsQueued": "Correcciones existentes en cola", "analysisComplete": "Análisis completado", "syncComplete": "Sincronización completada" + }, + "mutations": { + "serviceNotConfiguredResubmit": "El servicio de seguridad no está configurado. El reenvío no puede tener éxito hasta que se solucione.", + "syncMayNotHaveCompleted": "Es posible que una sincronización no se haya completado. Reinténtala para conciliarla o descártala.", + "syncInProgress": "Ya hay una sincronización de seguridad en curso. Inténtalo de nuevo.", + "dismissalInProgress": "Este descarte ya está en curso. Inténtalo de nuevo.", + "couldNotReadPendingSyncs": "No se pudieron leer las sincronizaciones pendientes. Inténtalo de nuevo." } }, "agents": { @@ -2051,7 +2069,17 @@ "onlineTitle": "La voz se procesa en línea", "staysOff": "La voz permanece desactivada hasta que permitas la transcripción en línea.", "start": "Iniciar entrada de voz", - "stop": "Detener entrada de voz" + "stop": "Detener entrada de voz", + "restricted": "La entrada de voz está restringida en este dispositivo.", + "micRequired": "Se requiere acceso al micrófono para la entrada de voz.", + "micOff": "El acceso al micrófono está desactivado. Actívalo en Ajustes para usar la entrada de voz.", + "micOffTitle": "El acceso al micrófono está desactivado", + "noSpeech": "No se detectó voz. Toca el micrófono para intentarlo de nuevo.", + "needsConnection": "La entrada de voz necesita conexión ahora mismo. Inténtalo de nuevo.", + "busy": "La entrada de voz está ocupada. Inténtalo de nuevo.", + "stopped": "La entrada de voz se detuvo. Toca el micrófono para intentarlo de nuevo.", + "unavailableDevice": "La entrada de voz no está disponible en este dispositivo.", + "unavailableLanguage": "La entrada de voz no está disponible para el idioma de este dispositivo." }, "share": { "title": "Compartir en Kilo", @@ -2129,7 +2157,12 @@ "webManagementDescription": "Este Kilo Pass se gestiona en la web.", "legalDisclosure": "Kilo Pass es una suscripción mensual renovable automáticamente. El pago se cobra en tu Apple ID al confirmar la compra. Las suscripciones se renuevan automáticamente cada mes al precio indicado, a menos que se cancelen al menos 24 horas antes del final del período actual. Puedes gestionar o cancelar la suscripción en cualquier momento en los ajustes de tu cuenta de App Store.", "legalPrivacyPolicy": "Política de privacidad", - "legalTermsOfUse": "Términos de uso (EULA)" + "legalTermsOfUse": "Términos de uso (EULA)", + "purchaseNotLinked": "Esta compra de App Store no está vinculada a tu cuenta de Kilo. Asegúrate de haber iniciado sesión con el Apple ID con el que se realizó la compra e inténtalo de nuevo.", + "purchaseDifferentAccount": "Esta compra de App Store no está vinculada a tu cuenta de Kilo. Inicia sesión con la cuenta de Apple utilizada para la compra e inténtalo de nuevo.", + "restoreFailed": "No se pudieron restaurar las compras. Inténtalo de nuevo.", + "purchaseFailed": "No se pudo completar la compra.", + "purchaseStartFailed": "No se pudo iniciar la compra de App Store." }, "consent": { "kilo": "Kilo", @@ -2650,6 +2683,12 @@ "commentPosted": "Comentario publicado", "reviewSubmitted": "Revisión enviada", "autoMergeEnabled": "Fusión automática activada" + }, + "mutationError": { + "commentNotPosted": "Este comentario no se puede publicar. Puede que la línea seleccionada haya cambiado o que la PR se haya actualizado.", + "reviewNotSubmitted": "Esta revisión no se puede enviar tal como está. Puede que la PR haya cambiado o no puedes revisar tu propia pull request.", + "couldNotPostComment": "No se pudo publicar el comentario.", + "couldNotSubmitReview": "No se pudo enviar la revisión. Comprueba tu conexión e inténtalo de nuevo." } }, "organization": { @@ -2696,7 +2735,9 @@ "title": "Facturas", "statusPaid": "Pagada", "statusOpen": "Abierta", - "statusVoid": "Anulada" + "statusVoid": "Anulada", + "downloadFailed": "No se pudo descargar la factura. Comprueba tu conexión e inténtalo de nuevo.", + "sharingUnavailable": "El uso compartido no está disponible en este dispositivo." }, "lowBalanceAlert": { "emailPlaceholder": "nombre@empresa.com", @@ -2821,7 +2862,8 @@ "signInFailed": "No se pudo iniciar sesión. Inténtalo de nuevo.", "networkError": "Error de red. Inténtalo de nuevo.", "accessDeniedByUser": "Acceso denegado por el usuario", - "codeExpired": "El código ha caducado" + "codeExpired": "El código ha caducado", + "tooManySignInAttempts": "Demasiados intentos de inicio de sesión. Espera e inténtalo de nuevo." }, "models": { "dataCollected": "Datos recopilados", diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index 27ad9a1502..a02eeb950b 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -24,7 +24,10 @@ "required": "nõutav", "error": "viga: {{error}}", "back": "Tagasi", - "somethingWentWrong": "Midagi läks valesti" + "somethingWentWrong": "Midagi läks valesti", + "couldNotOpen": "Ei õnnestunud {{label}} avada", + "link": "link", + "takingLonger": "See võtab oodatust kauem aega. Sa võid selle sulgeda ja hiljem uuesti vaadata." }, "language": { "title": "Keel", @@ -576,6 +579,12 @@ "commentPosted": "Kommentaar on postitatud", "reviewSubmitted": "Ülevaade on esitatud", "autoMergeEnabled": "Automaatne ühendamine on lubatud" + }, + "mutationError": { + "commentNotPosted": "Seda kommentaari ei saa postitada. Valitud rida võis muutuda või PR-i värskendati.", + "reviewNotSubmitted": "Seda ülevaadet ei saa sellisel kujul esitada. PR võis muutuda või ei saa sa oma pull request'i üle vaadata.", + "couldNotPostComment": "Kommentaari ei õnnestunud postitada.", + "couldNotSubmitReview": "Ülevaate esitamine ebaõnnestus. Kontrolli ühendust ja proovi uuesti." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Fail on tühi", "classificationTooLarge": "Failid peavad olema 20 MB või väiksemad", "classificationUnreadable": "Seda faili ei õnnestunud lugeda", - "announceUploaded": "Manus on üles laaditud" + "announceUploaded": "Manus on üles laaditud", + "cantUpload": "Seda faili ei saa üles laadida.", + "networkError": "Võrguviga", + "uploadFailed": "Üleslaadimine ebaõnnestus", + "failedToUploadFile": "Faili üleslaadimine ebaõnnestus: {{reason}}", + "nothingToPaste": "Pole midagi kleepida" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Sädelejad", "strongArm": "Tugev käsi", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "See instants ei saa faile vastu võtta." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Otsust pole", "noResult": "Tulemust pole" }, - "eyebrow": "Koodiülevaataja" + "eyebrow": "Koodiülevaataja", + "updateFailed": "Ülevaataja uuendamine ebaõnnestus", + "configSaveFailed": "Ülevaate konfiguratsiooni salvestamine ebaõnnestus" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Olemasolevad parandused pandi järjekorda", "analysisComplete": "Analüüs on lõppenud", "syncComplete": "Sünkroonimine on lõppenud" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Turbeteenus pole seadistatud. Uuesti esitamine ei saa õnnestuda, kuni see on parandatud.", + "syncMayNotHaveCompleted": "Sünkroonimine ei pruukinud lõppeda. Proovi seda kooskõlla viimiseks uuesti või jäta kõrvale.", + "syncInProgress": "Turbesünkroonimine on juba käimas. Proovi uuesti.", + "dismissalInProgress": "See kõrvalejätmine on juba käimas. Proovi uuesti.", + "couldNotReadPendingSyncs": "Ootel sünkroonimisi ei õnnestunud lugeda. Proovi uuesti." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "See seade ei suuda veebiväliselt transkribeerida. Tekstiks muutmiseks saadetakse sinu salvestus {{provider}}-le. Kilo ei salvesta heli.", "allow": "Luba", "start": "Alusta häälsisestust", - "stop": "Lõpeta häälsisestus" + "stop": "Lõpeta häälsisestus", + "restricted": "Häälsisestus on sellel seadmel piiratud.", + "micRequired": "Häälsisestuseks on vajalik mikrofoni juurdepääs.", + "micOff": "Mikrofoni juurdepääs on välja lülitatud. Häälsisestuse kasutamiseks lülita see seadetes sisse.", + "micOffTitle": "Mikrofoni juurdepääs on välja lülitatud", + "noSpeech": "Kõnet ei tuvastatud. Uuesti proovimiseks puuduta mikrofoni.", + "needsConnection": "Häälsisestus vajab praegu ühendust. Proovi uuesti.", + "busy": "Häälsisestus on hõivatud. Proovi uuesti.", + "stopped": "Häälsisestus peatus. Uuesti proovimiseks puuduta mikrofoni.", + "unavailableDevice": "Häälsisestus pole sellel seadmel saadaval.", + "unavailableLanguage": "Häälsisestus pole selle seadme keele puhul saadaval." }, "share": { "title": "Jaga Kilosse", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Seda Kilo Passi hallatakse veebis.", "legalDisclosure": "Kilo Pass on automaatselt uuenev igakuine tellimus. Makse võetakse sinu Apple ID-lt ostu kinnitamisel. Tellimus uueneb iga kuu automaatselt näidatud hinnaga, kui sa seda ei tühista vähemalt 24 tundi enne jooksva perioodi lõppu. Halda või tühista tellimust igal ajal oma App Store konto seadetes.", "legalPrivacyPolicy": "Privaatsuspoliitika", - "legalTermsOfUse": "Kasutustingimused (EULA)" + "legalTermsOfUse": "Kasutustingimused (EULA)", + "purchaseNotLinked": "See App Store'i ost pole sinu Kilo kontoga seotud. Veendu, et oled sisse logitud selle Apple ID-ga, millega ost tehti, ja proovi uuesti.", + "purchaseDifferentAccount": "See App Store'i ost pole sinu Kilo kontoga seotud. Logi sisse ostuks kasutatud Apple kontoga ja proovi uuesti.", + "restoreFailed": "Ostude taastamine ebaõnnestus. Proovi uuesti.", + "purchaseFailed": "Ostu lõpetamine ebaõnnestus.", + "purchaseStartFailed": "App Store'i ostu alustamine ebaõnnestus." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Avatud", "statusPaid": "Makstud", "statusVoid": "Tühistatud", - "title": "Arved" + "title": "Arved", + "downloadFailed": "Arve allalaadimine ei õnnestunud. Kontrolli ühendust ja proovi uuesti.", + "sharingUnavailable": "Jagamine pole sellel seadmel saadaval." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Sisselogimine ebaõnnestus. Proovi uuesti.", "networkError": "Võrguviga. Proovi uuesti.", "accessDeniedByUser": "Kasutaja keelas juurdepääsu", - "codeExpired": "Kood on aegunud" + "codeExpired": "Kood on aegunud", + "tooManySignInAttempts": "Liiga palju sisselogimiskatseid. Oota hetk ja proovi uuesti." }, "models": { "dataCollected": "Kogutud andmed", diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index 18a7fe48fc..611aeca80e 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -24,7 +24,10 @@ "required": "beharrezkoa", "error": "errorea: {{error}}", "back": "Atzera", - "somethingWentWrong": "Zerbait gaizki joan da" + "somethingWentWrong": "Zerbait gaizki joan da", + "couldNotOpen": "Ezin da {{label}} ireki", + "link": "esteka", + "takingLonger": "Espero baino gehiago ari da hartzen. Itxi ezazu eta berriro egiaztatu dezakezu." }, "language": { "title": "Hizkuntza", @@ -576,6 +579,12 @@ "commentPosted": "Iruzkina argitaratuta", "reviewSubmitted": "Berrikuspena bidalita", "autoMergeEnabled": "Auto-batzea gaituta" + }, + "mutationError": { + "commentNotPosted": "Iruzkin hau ezin da argitaratu. Baliteke hautatutako lerroa aldatu izana edo PR-a eguneratu izana.", + "reviewNotSubmitted": "Berrikuspen hau ezin da bidali hala dagoen bezala. Baliteke PR-a aldatu izana, edo zure pull request bera ezin duzu berrikusi.", + "couldNotPostComment": "Ezin izan da iruzkina argitaratu.", + "couldNotSubmitReview": "Ezin izan da berrikuspena bidali. Egiaztatu konexioa eta saiatu berriro." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Fitxategia hutsik dago", "classificationTooLarge": "Fitxategiak 20 MB edo txikiagoak izan behar dira", "classificationUnreadable": "Ezin izan da fitxategi hau irakurri", - "announceUploaded": "Eranskina igo da" + "announceUploaded": "Eranskina igo da", + "cantUpload": "Fitxategi hau ezin da igo.", + "networkError": "Sare-errorea", + "uploadFailed": "Igoerak huts egin du", + "failedToUploadFile": "Fitxategia igotzeak huts egin du: {{reason}}", + "nothingToPaste": "Ez dago ezer itsatsitzeko" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Distirak", "strongArm": "Beso indartsua", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Instantzia honek ezin du fitxategirik jaso." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Ez dago erabakirik", "noResult": "Ez dago emaitzarik" }, - "eyebrow": "Kode-berrikuslea" + "eyebrow": "Kode-berrikuslea", + "updateFailed": "Ezin izan da berrikuslea eguneratu", + "configSaveFailed": "Ezin izan da berrikuspenaren konfigurazioa gorde" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Lehendik dauden konponketak ilaratu dira", "analysisComplete": "Analisia osatuta", "syncComplete": "Sinkronizazioa osatuta" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Segurtasun-zerbitzua ez dago konfiguratuta. Berriro bidaltzeak ez du arrakastarik izango hau konpondu arte.", + "syncMayNotHaveCompleted": "Baliteke sinkronizazioa ez amaitzea. Saiatu berriro lerrokatzeko, edo baztertu.", + "syncInProgress": "Segurtasun-sinkronizazio bat jada martxan dago. Saiatu berriro.", + "dismissalInProgress": "Baztertze hau jada martxan dago. Saiatu berriro.", + "couldNotReadPendingSyncs": "Ezin izan dira zain dauden sinkronizazioak irakurri. Saiatu berriro." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Gailu honek ezin du lineaz kanpo transkribatu. Zure grabaketa {{provider}}ra bidaltzen da testu bihurtzeko. Kilo ez du audioa gordetzen.", "allow": "Baimendu", "start": "Hasi ahots-sarrera", - "stop": "Gelditu ahots-sarrera" + "stop": "Gelditu ahots-sarrera", + "restricted": "Ahots-sarrera mugatuta dago gailu honetan.", + "micRequired": "Mikrofonoaren sarbidea beharrezkoa da ahots-sarrerarako.", + "micOff": "Mikrofonoaren sarbidea itzalita dago. Gaitu ezazu Ezarpenetan ahots-sarrera erabiltzeko.", + "micOffTitle": "Mikrofonoaren sarbidea itzalita dago", + "noSpeech": "Ez da hizketarik detektatu. Sakatu mikrofonoa berriro saiatzeko.", + "needsConnection": "Ahots-sarrerak konexioa behar du oraintxe. Saiatu berriro.", + "busy": "Ahots-sarrera lanpetuta dago. Saiatu berriro.", + "stopped": "Ahots-sarrera gelditu da. Sakatu mikrofonoa berriro saiatzeko.", + "unavailableDevice": "Ahots-sarrera ez dago eskuragarri gailu honetan.", + "unavailableLanguage": "Ahots-sarrera ez dago eskuragarri gailu honen hizkuntzarako." }, "share": { "title": "Partekatu Kilo-n", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass hau webgunean kudeatzen da.", "legalDisclosure": "Kilo Pass hilero automatikoki berritzen den harpidetza da. Erosketa baieztatzen denean, ordainketa zure Apple ID-ra kobratzen da. Harpidetzak automatikoki berritzen dira hilero agertzen den prezioan, uneko aldia amaitu baino 24 ordu lehenago gutxienez ezeztatu ezean. Kudeatu edo ezeztatu edonoiz zure App Store kontuaren ezarpenetan.", "legalPrivacyPolicy": "Pribatutasun-politika", - "legalTermsOfUse": "Erabilera-baldintzak (EULA)" + "legalTermsOfUse": "Erabilera-baldintzak (EULA)", + "purchaseNotLinked": "App Store-ko erosketa hau ez dago zure Kilo kontuarekin lotuta. Ziurtatu erosketaren jabe den Apple IDrekin saioa hasi duzula, eta saiatu berriro.", + "purchaseDifferentAccount": "App Store-ko erosketa hau ez dago zure Kilo kontuarekin lotuta. Hasi saioa erosketarako erabilitako Apple kontuarekin, eta saiatu berriro.", + "restoreFailed": "Ezin dira erosketa berreskuratu. Saiatu berriro.", + "purchaseFailed": "Ezin izan da erosketa amaitu.", + "purchaseStartFailed": "Ezin izan da App Store-ko erosketa hasi." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Irekituta", "statusPaid": "Ordainduta", "statusVoid": "Ballogabea", - "title": "Fakturak" + "title": "Fakturak", + "downloadFailed": "Ezin izan da faktura deskargatu. Egiaztatu konexioa eta saiatu berriro.", + "sharingUnavailable": "Partekatzea ez dago eskuragarri gailu honetan." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Saioa hasteak huts egin du. Saiatu berriro.", "networkError": "Sare-errorea. Saiatu berriro.", "accessDeniedByUser": "Erabiltzaileak sarbidea ukatu du", - "codeExpired": "Kodea iraungi da" + "codeExpired": "Kodea iraungi da", + "tooManySignInAttempts": "Sarbide-saiakera gehiegi. Itxaron eta saiatu berriro." }, "models": { "dataCollected": "Bildutako datuak", diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index 7fb05c945d..4eece48cce 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -24,7 +24,10 @@ "required": "الزامی", "error": "خطا: {{error}}", "back": "بازگشت", - "somethingWentWrong": "مشکلی پیش آمد" + "somethingWentWrong": "مشکلی پیش آمد", + "couldNotOpen": "باز کردن {{label}} ممکن نشد", + "link": "پیوند", + "takingLonger": "این کار بیش از حد انتظار طول می‌کشد. می‌توانید این را ببندید و دوباره بررسی کنید." }, "language": { "title": "زبان", @@ -576,6 +579,12 @@ "commentPosted": "نظر ارسال شد", "reviewSubmitted": "بازبینی ارسال شد", "autoMergeEnabled": "ادغام خودکار فعال شد" + }, + "mutationError": { + "commentNotPosted": "این نظر قابل ارسال نیست. ممکن است خط انتخاب‌شده تغییر کرده باشد یا PR به‌روزرسانی شده باشد.", + "reviewNotSubmitted": "این بازبینی در وضعیت فعلی قابل ارسال نیست. ممکن است PR تغییر کرده باشد یا نتوانید درخواست pull خودتان را بازبینی کنید.", + "couldNotPostComment": "ارسال نظر ممکن نشد.", + "couldNotSubmitReview": "ارسال بازبینی ممکن نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "فایل خالی است", "classificationTooLarge": "فایل‌ها باید 20 MB یا کوچک‌تر باشند", "classificationUnreadable": "خواندن این فایل ممکن نشد", - "announceUploaded": "پیوست بارگذاری شد" + "announceUploaded": "پیوست بارگذاری شد", + "cantUpload": "این فایل قابل بارگذاری نیست.", + "networkError": "خطای شبکه", + "uploadFailed": "بارگذاری ناموفق بود", + "failedToUploadFile": "بارگذاری فایل ناموفق بود: {{reason}}", + "nothingToPaste": "چیزی برای جای‌گذاری نیست" }, "attachmentPreview": { "accessibility": "{{filename}}، {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "جرقه‌ها", "strongArm": "بازوی قوی", "talisman": "طلسم" - } + }, + "remoteSpawnFilesNotSupported": "این نمونه نمی‌تواند فایل دریافت کند." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "بدون تصمیم", "noResult": "بدون نتیجه" }, - "eyebrow": "بررسی‌کننده کد" + "eyebrow": "بررسی‌کننده کد", + "updateFailed": "به‌روزرسانی بازبین ممکن نشد", + "configSaveFailed": "ذخیرهٔ پیکربندی بازبینی ممکن نشد" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "اصلاح‌های موجود در صف قرار گرفتند", "analysisComplete": "تحلیل کامل شد", "syncComplete": "همگام‌سازی کامل شد" + }, + "mutations": { + "serviceNotConfiguredResubmit": "سرویس امنیت پیکربندی نشده است. ارسال مجدد تا رفع این مشکل موفق نمی‌شود.", + "syncMayNotHaveCompleted": "ممکن است همگام‌سازی کامل نشده باشد. برای هماهنگ کردن آن دوباره تلاش کنید یا آن را دور بیندازید.", + "syncInProgress": "یک همگام‌سازی امنیتی در حال انجام است. لطفاً دوباره تلاش کنید.", + "dismissalInProgress": "این رد در حال انجام است. لطفاً دوباره تلاش کنید.", + "couldNotReadPendingSyncs": "خواندن همگام‌سازی‌های در انتظار ممکن نشد. دوباره تلاش کنید." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "این دستگاه نمی‌تواند آفلاین رونویسی کند. ضبط شما برای تبدیل به متن به {{provider}} ارسال می‌شود. Kilo صدا را ذخیره نمی‌کند.", "allow": "مجاز", "start": "شروع ورودی صوتی", - "stop": "توقف ورودی صوتی" + "stop": "توقف ورودی صوتی", + "restricted": "ورودی صوتی در این دستگاه محدود شده است.", + "micRequired": "برای ورودی صوتی، دسترسی به میکروفون لازم است.", + "micOff": "دسترسی به میکروفون خاموش است. برای استفاده از ورودی صوتی، آن را در تنظیمات روشن کنید.", + "micOffTitle": "دسترسی به میکروفون خاموش است", + "noSpeech": "گفتاری تشخیص داده نشد. برای تلاش مجدد روی میکروفون ضربه بزنید.", + "needsConnection": "ورودی صوتی در حال حاضر به اتصال نیاز دارد. دوباره تلاش کنید.", + "busy": "ورودی صوتی مشغول است. دوباره تلاش کنید.", + "stopped": "ورودی صوتی متوقف شد. برای تلاش مجدد روی میکروفون ضربه بزنید.", + "unavailableDevice": "ورودی صوتی در این دستگاه در دسترس نیست.", + "unavailableLanguage": "ورودی صوتی برای زبان این دستگاه در دسترس نیست." }, "share": { "title": "اشتراک در Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "این Kilo Pass در وب مدیریت میشود.", "legalDisclosure": "Kilo Pass یک اشتراک ماهانه با تمدید خودکار است. پرداخت در تأیید خرید از Apple ID شما کسر میشود. اشتراکها هر ماه بهصورت خودکار با قیمت نشاندادهشده تمدید میشوند، مگر اینکه حداقل ۲۴ ساعت قبل از پایان دوره فعلی لغو شوند. هر زمان میتوانید در تنظیمات حساب App Store خود آن را مدیریت یا لغو کنید.", "legalPrivacyPolicy": "خطمشی حریم خصوصی", - "legalTermsOfUse": "شرایط استفاده (EULA)" + "legalTermsOfUse": "شرایط استفاده (EULA)", + "purchaseNotLinked": "این خرید App Store به حساب Kilo شما متصل نیست. مطمئن شوید با Apple ID چی که خرید با آن انجام شده وارد شده‌اید، سپس دوباره تلاش کنید.", + "purchaseDifferentAccount": "این خرید App Store به حساب Kilo شما متصل نیست. با Apple Account مورد استفاده برای خرید وارد شوید، سپس دوباره تلاش کنید.", + "restoreFailed": "بازیابی خریدها ممکن نشد. دوباره تلاش کنید.", + "purchaseFailed": "تکمیل خرید ممکن نشد.", + "purchaseStartFailed": "شروع خرید App Store ممکن نشد." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "باز", "statusPaid": "پرداخت شده", "statusVoid": "باطل", - "title": "فاکتورها" + "title": "فاکتورها", + "downloadFailed": "دانلود فاکتور ممکن نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید.", + "sharingUnavailable": "اشتراک‌گذاری در این دستگاه در دسترس نیست." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ورود ناموفق بود. لطفاً دوباره تلاش کنید.", "networkError": "خطای شبکه. لطفاً دوباره تلاش کنید.", "accessDeniedByUser": "دسترسی توسط کاربر رد شد", - "codeExpired": "کد منقضی شد" + "codeExpired": "کد منقضی شد", + "tooManySignInAttempts": "تعداد تلاش‌های ورود زیاد است. لطفاً صبر کنید و دوباره تلاش کنید." }, "models": { "dataCollected": "دادههای جمعآوریشده", diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 897fa46805..cfadba4108 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -24,7 +24,10 @@ "required": "pakollinen", "error": "virhe: {{error}}", "back": "Takaisin", - "somethingWentWrong": "Jokin meni pieleen" + "somethingWentWrong": "Jokin meni pieleen", + "couldNotOpen": "Ei voitu avata {{label}}", + "link": "linkki", + "takingLonger": "Tämä kestää odotettua kauemmin. Voit sulkea tämän ja tarkistaa myöhemmin." }, "language": { "title": "Kieli", @@ -576,6 +579,12 @@ "commentPosted": "Kommentti lähetetty", "reviewSubmitted": "Arviointi lähetetty", "autoMergeEnabled": "Automaattinen yhdistäminen käytössä" + }, + "mutationError": { + "commentNotPosted": "Tätä kommenttia ei voi julkaista. Valittu rivi on saattanut muuttua tai PR on saatettu päivittää.", + "reviewNotSubmitted": "Tätä arviointia ei voi lähettää sellaisenaan. PR on saatettu muuttaa, tai et voi arvioida omaa pull requestiasi.", + "couldNotPostComment": "Kommenttia ei voitu lähettää.", + "couldNotSubmitReview": "Arviointia ei voitu lähettää. Tarkista yhteys ja yritä uudelleen." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Tiedosto on tyhjä", "classificationTooLarge": "Tiedostojen on oltava enintään 20 MB", "classificationUnreadable": "Tätä tiedostoa ei voitu lukea", - "announceUploaded": "Liite lähetetty" + "announceUploaded": "Liite lähetetty", + "cantUpload": "Tätä tiedostoa ei voi ladata.", + "networkError": "Verkkovirhe", + "uploadFailed": "Lataus epäonnistui", + "failedToUploadFile": "Tiedoston lataaminen epäonnistui: {{reason}}", + "nothingToPaste": "Ei mitään liitettävää" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Kipinät", "strongArm": "Vahva käsivarsi", "talisman": "Talismaani" - } + }, + "remoteSpawnFilesNotSupported": "Tämä instanssi ei voi vastaanottaa tiedostoja." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Ei päätöstä", "noResult": "Ei tulosta" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Arvioijan päivittäminen epäonnistui", + "configSaveFailed": "Arvioinnin konfiguraation tallentaminen epäonnistui" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Olemassa olevat korjaustoimenpiteet jonossa", "analysisComplete": "Analyysi valmis", "syncComplete": "Synkronointi valmis" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Tietoturvapalvelua ei ole määritetty. Uudelleenlähetys ei voi onnistua ennen kuin tämä on korjattu.", + "syncMayNotHaveCompleted": "Synkronointi ei välttämättä ole valmistunut. Yritä uudelleen yhtenäistääksesi se tai hylkää se.", + "syncInProgress": "Tietoturvasynkronointi on jo käynnissä. Yritä uudelleen.", + "dismissalInProgress": "Tämä hylkäys on jo käynnissä. Yritä uudelleen.", + "couldNotReadPendingSyncs": "Odottavia synkronointeja ei voitu lukea. Yritä uudelleen." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Tämä laite ei voi transkriboida offline-tilassa. Tallenteesi lähetetään palveluun {{provider}} tekstiksi muuttamista varten. Kilo ei tallenna ääntä.", "allow": "Salli", "start": "Aloita puheentunnistus", - "stop": "Lopeta puheentunnistus" + "stop": "Lopeta puheentunnistus", + "restricted": "Puheentunnistus on rajoitettu tässä laitteessa.", + "micRequired": "Mikrofonin käyttöoikeus vaaditaan puheentunnistusta varten.", + "micOff": "Mikrofonin käyttöoikeus on pois päältä. Ota se käyttöön Asetuksista käyttääksesi puheentunnistusta.", + "micOffTitle": "Mikrofonin käyttöoikeus on pois päältä", + "noSpeech": "Puhetta ei tunnistettu. Napauta mikrofonia yrittääksesi uudelleen.", + "needsConnection": "Puheentunnistus tarvitsee yhteyden juuri nyt. Yritä uudelleen.", + "busy": "Puheentunnistus on varattu. Yritä uudelleen.", + "stopped": "Puheentunnistus pysähtyi. Napauta mikrofonia yrittääksesi uudelleen.", + "unavailableDevice": "Puheentunnistus ei ole käytettävissä tässä laitteessa.", + "unavailableLanguage": "Puheentunnistus ei ole käytettävissä tälle laitekielelle." }, "share": { "title": "Jaa Kiloon", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Tätä Kilo Pass -tilausta hallinnoidaan verkossa.", "legalDisclosure": "Kilo Pass on automaattisesti uusiutuva kuukausitilaus. Maksu veloitetaan Apple ID:stäsi oston vahvistuksen yhteydessä. Tilaus uusiutuu automaattisesti joka kuukausi näytettyyn hintaan, ellei sitä peruuteta vähintään 24 tuntia ennen nykyisen jakson päättymistä. Hallinnoi tai peruuta milloin tahansa App Store -tilin asetuksissa.", "legalPrivacyPolicy": "Tietosuojakäytäntö", - "legalTermsOfUse": "Käyttöehdot (EULA)" + "legalTermsOfUse": "Käyttöehdot (EULA)", + "purchaseNotLinked": "Tämä App Store -osto ei ole liitetty Kilo-tiliisi. Varmista, että olet kirjautunut Apple ID:llä, jolla osto tehtiin, ja yritä uudelleen.", + "purchaseDifferentAccount": "Tämä App Store -osto ei ole liitetty Kilo-tiliisi. Kirjaudu ostokseen käytetyllä Apple-tilillä ja yritä uudelleen.", + "restoreFailed": "Ostosten palauttaminen epäonnistui. Yritä uudelleen.", + "purchaseFailed": "Oston viimeistely epäonnistui.", + "purchaseStartFailed": "App Store -oston aloittaminen epäonnistui." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Avoin", "statusPaid": "Maksettu", "statusVoid": "Mitätöity", - "title": "Laskut" + "title": "Laskut", + "downloadFailed": "Laskua ei voitu ladata. Tarkista yhteys ja yritä uudelleen.", + "sharingUnavailable": "Jakaminen ei ole käytettävissä tässä laitteessa." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Kirjautuminen epäonnistui. Yritä uudelleen.", "networkError": "Verkkovirhe. Yritä uudelleen.", "accessDeniedByUser": "Käyttäjä eväsi pääsyn", - "codeExpired": "Koodi vanhentui" + "codeExpired": "Koodi vanhentui", + "tooManySignInAttempts": "Liian monta kirjautumisyritystä. Odota hetki ja yritä uudelleen." }, "models": { "dataCollected": "Kerätyt tiedot", diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index 666b650f9d..1d14dc61bb 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -24,7 +24,10 @@ "required": "kinakailangan", "error": "error: {{error}}", "back": "Bumalik", - "somethingWentWrong": "May nangyaring mali" + "somethingWentWrong": "May nangyaring mali", + "couldNotOpen": "Hindi mabuksan ang {{label}}", + "link": "link", + "takingLonger": "Mas tumatagal ito kaysa sa inaasahan. Maaari mong isara ito at tingnan muli." }, "language": { "title": "Wika", @@ -294,7 +297,7 @@ "failingChecksDetail": "Pumapalpak ang mga kinakailangang status check.", "unstableTitle": "May mga check na pumapalpak", "unstableDetail": "Pumapalpak ang mga hindi kinakailangang check. Hindi nila haharangin ang merge.", - "draftTitle": "Draft pull request", + "draftTitle": "Draft na pull request", "draftDetail": "Markahan ang pull request bilang handa para sa review bago mag-merge.", "behindTitle": "Luma na ang branch", "behindDetailUpdatable": "I-update ang branch mula sa base, o mag-rebase, bago mag-merge.", @@ -400,7 +403,7 @@ }, "anchor": { "fileCommentOnPath": "File comment sa {{path}}", - "fileComment": "File comment", + "fileComment": "Komento sa file", "outdatedOnPathLines": "Luma na sa {{path}} {{lines}}", "outdatedOnLines": "Luma na sa {{lines}}", "outdatedOnPath": "Luma na sa {{path}}" @@ -576,6 +579,12 @@ "commentPosted": "Na-post ang komento", "reviewSubmitted": "Na-submit ang review", "autoMergeEnabled": "Naka-enable ang auto-merge" + }, + "mutationError": { + "commentNotPosted": "Hindi maipost ang komentong ito. Maaaring nagbago ang napiling linya, o na-update na ang PR.", + "reviewNotSubmitted": "Hindi maisumite ang review na ito nang ganito. Maaaring nagbago ang PR, o hindi mo maaaring i-review ang sarili mong pull request.", + "couldNotPostComment": "Hindi maipost ang komento.", + "couldNotSubmitReview": "Hindi maisumite ang review. Suriin ang iyong koneksyon at subukan muli." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Walang laman ang file", "classificationTooLarge": "Dapat 20 MB o mas maliit ang mga file", "classificationUnreadable": "Hindi mabasa ang file na ito", - "announceUploaded": "Na-upload ang attachment" + "announceUploaded": "Na-upload ang attachment", + "cantUpload": "Hindi ma-upload ang file na ito.", + "networkError": "Error sa network", + "uploadFailed": "Nabigo ang pag-upload", + "failedToUploadFile": "Nabigong i-upload ang file: {{reason}}", + "nothingToPaste": "Walang maipa-paste" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Sparkles", "strongArm": "Malakas na braso", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Hindi makakatanggap ng mga file ang instance na ito." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Walang desisyon", "noResult": "Walang resulta" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Nabigong i-update ang reviewer", + "configSaveFailed": "Nabigong i-save ang config ng review" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Na-queue ang mga umiiral na remediation", "analysisComplete": "Kumpleto ang analysis", "syncComplete": "Kumpleto ang sync" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Hindi naka-configure ang security service. Hindi magtatagumpay ang pag-resubmit hangga't hindi ito naaayos.", + "syncMayNotHaveCompleted": "Maaaring hindi natapos ang isang sync. I-retry para i-reconcile ito, o i-discard.", + "syncInProgress": "May security sync na nagpapatuloy. Pakisubukan muli.", + "dismissalInProgress": "Nagpapatuloy na ang dismissal na ito. Pakisubukan muli.", + "couldNotReadPendingSyncs": "Hindi mabasa ang mga pending sync. Subukan muli." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Hindi ma-transcribe ng device na ito nang offline. Ipinapadala ang iyong recording sa {{provider}} para gawing text. Hindi iniimbak ng Kilo ang audio.", "allow": "Payagan", "start": "Simulan ang voice input", - "stop": "Itigil ang voice input" + "stop": "Itigil ang voice input", + "restricted": "Pinaghihigpitan ang voice input sa device na ito.", + "micRequired": "Kinakailangan ang access sa mikropono para sa voice input.", + "micOff": "Naka-off ang access sa mikropono. I-enable ito sa Settings para magamit ang voice input.", + "micOffTitle": "Naka-off ang access sa mikropono", + "noSpeech": "Walang narinig na pagsasalita. Tap ang mikropono para subukan muli.", + "needsConnection": "Kailangan ng koneksyon ang voice input ngayon. Subukan muli.", + "busy": "Abala ang voice input. Subukan muli.", + "stopped": "Huminto ang voice input. Tap ang mikropono para subukan muli.", + "unavailableDevice": "Hindi available ang voice input sa device na ito.", + "unavailableLanguage": "Hindi available ang voice input para sa wikang ito ng device." }, "share": { "title": "I-share sa Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Pinamamahalaan sa web ang Kilo Pass na ito.", "legalDisclosure": "Ang Kilo Pass ay isang auto-renewable na buwanang subscription. Babayaran ang bayad sa iyong Apple ID kapag nakumpirma ang pagbili. Awtomatikong nire-renew ang mga subscription bawat buwan sa ipinapakitang presyo maliban kung kinansela nang hindi bababa sa 24 na oras bago matapos ang kasalukuyang panahon. Pamahalaan o kanselahin anumang oras sa iyong mga setting ng App Store account.", "legalPrivacyPolicy": "Patakaran sa Privacy", - "legalTermsOfUse": "Mga Tuntunin ng Paggamit (EULA)" + "legalTermsOfUse": "Mga Tuntunin ng Paggamit (EULA)", + "purchaseNotLinked": "Hindi naka-link ang pagbiling ito sa App Store sa iyong Kilo account. Siguraduhing naka-sign in ka sa Apple ID na bumili, pagkatapos subukan muli.", + "purchaseDifferentAccount": "Hindi naka-link ang pagbiling ito sa App Store sa iyong Kilo account. Mag-sign in sa Apple Account na ginamit sa pagbili, pagkatapos subukan muli.", + "restoreFailed": "Nabigong i-restore ang mga pagbili. Subukan muli.", + "purchaseFailed": "Nabigong kumpletuhin ang pagbili.", + "purchaseStartFailed": "Nabigong simulan ang pagbili sa App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Bukas", "statusPaid": "Bayad", "statusVoid": "Wasto", - "title": "Mga invoice" + "title": "Mga invoice", + "downloadFailed": "Hindi ma-download ang invoice. Suriin ang iyong koneksyon at subukan muli.", + "sharingUnavailable": "Hindi available ang pag-share sa device na ito." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Nabigo ang sign in. Pakisubukan muli.", "networkError": "Error sa network. Pakisubukan muli.", "accessDeniedByUser": "Tinanggihan ng user ang access", - "codeExpired": "Nag-expire ang code" + "codeExpired": "Nag-expire ang code", + "tooManySignInAttempts": "Masyadong maraming pagtatangkang mag-sign in. Pakihintay at subukan muli." }, "models": { "dataCollected": "Kinokolektang data", diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index ffddc7e608..ba8d4f3360 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -24,7 +24,10 @@ "notNow": "Pas maintenant", "continue": "Continuer", "back": "Retour", - "somethingWentWrong": "Une erreur s'est produite" + "somethingWentWrong": "Une erreur s'est produite", + "couldNotOpen": "Impossible d'ouvrir {{label}}", + "link": "lien", + "takingLonger": "Cela prend plus de temps que prévu. Vous pouvez fermer et vérifier à nouveau." }, "language": { "title": "Langue", @@ -269,7 +272,12 @@ "classificationEmpty": "Le fichier est vide", "classificationTooLarge": "Les fichiers doivent faire 20 MB ou moins", "classificationUnreadable": "Impossible de lire ce fichier", - "announceUploaded": "Pièce jointe ajoutée" + "announceUploaded": "Pièce jointe ajoutée", + "cantUpload": "Ce fichier ne peut pas être envoyé.", + "networkError": "Erreur réseau", + "uploadFailed": "Échec de l'envoi", + "failedToUploadFile": "Échec de l'envoi du fichier : {{reason}}", + "nothingToPaste": "Rien à coller" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -729,7 +737,8 @@ "sparkles": "Étincelles", "strongArm": "Bras fort", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Cette instance ne peut pas recevoir de fichiers." }, "codeReviewer": { "focusAreas": { @@ -916,7 +925,9 @@ "reviewMemory": "Mémoire de revue", "reviewStyle": "Style de révision", "set": "Défini" - } + }, + "updateFailed": "Échec de la mise à jour du réviseur", + "configSaveFailed": "Échec de l'enregistrement de la configuration de revue" }, "securityAgent": { "filter": { @@ -1340,6 +1351,13 @@ "remediationsQueued": "Remédiations existantes mises en file d'attente", "analysisComplete": "Analyse terminée", "syncComplete": "Synchronisation terminée" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Le service de sécurité n'est pas configuré. La nouvelle soumission ne pourra pas aboutir tant que ce n'est pas corrigé.", + "syncMayNotHaveCompleted": "Une synchronisation n'a peut-être pas abouti. Réessayez pour la réconcilier, ou abandonnez.", + "syncInProgress": "Une synchronisation de sécurité est déjà en cours. Veuillez réessayer.", + "dismissalInProgress": "Cette ignorance est déjà en cours. Veuillez réessayer.", + "couldNotReadPendingSyncs": "Impossible de lire les synchronisations en attente. Réessayez." } }, "agentChat": { @@ -1979,7 +1997,17 @@ "onlineTitle": "La parole est traitée en ligne", "staysOff": "La parole reste désactivée jusqu'à ce que vous autorisiez la transcription en ligne.", "start": "Démarrer la saisie vocale", - "stop": "Arrêter la saisie vocale" + "stop": "Arrêter la saisie vocale", + "restricted": "La saisie vocale est restreinte sur cet appareil.", + "micRequired": "L'accès au microphone est requis pour la saisie vocale.", + "micOff": "L'accès au microphone est désactivé. Activez-le dans les Réglages pour utiliser la saisie vocale.", + "micOffTitle": "Accès au microphone désactivé", + "noSpeech": "Aucune parole détectée. Touchez le microphone pour réessayer.", + "needsConnection": "La saisie vocale a besoin d'une connexion pour le moment. Réessayez.", + "busy": "La saisie vocale est occupée. Réessayez.", + "stopped": "La saisie vocale s'est arrêtée. Touchez le microphone pour réessayer.", + "unavailableDevice": "La saisie vocale n'est pas disponible sur cet appareil.", + "unavailableLanguage": "La saisie vocale n'est pas disponible pour la langue de cet appareil." }, "share": { "title": "Partager vers Kilo", @@ -2057,7 +2085,12 @@ "webManagementDescription": "Ce Kilo Pass est géré sur le web.", "legalDisclosure": "Kilo Pass est un abonnement mensuel à renouvellement automatique. Le paiement est prélevé sur votre identifiant Apple à la confirmation de l'achat. Les abonnements se renouvellent automatiquement chaque mois au prix indiqué, sauf annulation au moins 24 heures avant la fin de la période en cours. Gérez ou annulez à tout moment dans les réglages de votre compte App Store.", "legalPrivacyPolicy": "Politique de confidentialité", - "legalTermsOfUse": "Conditions d'utilisation (CLUF)" + "legalTermsOfUse": "Conditions d'utilisation (CLUF)", + "purchaseNotLinked": "Cet achat App Store n'est pas lié à votre compte Kilo. Assurez-vous d'être connecté avec l'Apple ID qui a effectué l'achat, puis réessayez.", + "purchaseDifferentAccount": "Cet achat App Store n'est pas lié à votre compte Kilo. Connectez-vous avec le compte Apple utilisé pour l'achat, puis réessayez.", + "restoreFailed": "Échec de la restauration des achats. Réessayez.", + "purchaseFailed": "Échec de l'achat.", + "purchaseStartFailed": "Impossible de démarrer l'achat sur l'App Store." }, "consent": { "kilo": "Kilo", @@ -2650,6 +2683,12 @@ "commentPosted": "Commentaire publié", "reviewSubmitted": "Revue soumise", "autoMergeEnabled": "Fusion automatique activée" + }, + "mutationError": { + "commentNotPosted": "Ce commentaire ne peut pas être publié. La ligne sélectionnée a peut-être changé, ou la PR a peut-être été mise à jour.", + "reviewNotSubmitted": "Cette revue ne peut pas être soumise telle quelle. La PR a peut-être changé, ou vous ne pouvez pas passer en revue votre propre pull request.", + "couldNotPostComment": "Impossible de publier le commentaire.", + "couldNotSubmitReview": "Impossible de soumettre la revue. Vérifiez votre connexion et réessayez." } }, "organization": { @@ -2696,7 +2735,9 @@ "title": "Factures", "statusPaid": "Payée", "statusOpen": "Ouverte", - "statusVoid": "Annulée" + "statusVoid": "Annulée", + "downloadFailed": "Impossible de télécharger la facture. Vérifiez votre connexion et réessayez.", + "sharingUnavailable": "Le partage n'est pas disponible sur cet appareil." }, "lowBalanceAlert": { "emailPlaceholder": "nom@entreprise.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Échec de la connexion. Veuillez réessayer.", "networkError": "Erreur réseau. Veuillez réessayer.", "accessDeniedByUser": "Accès refusé par l'utilisateur", - "codeExpired": "Code expiré" + "codeExpired": "Code expiré", + "tooManySignInAttempts": "Trop de tentatives de connexion. Veuillez patienter et réessayer." }, "models": { "dataCollected": "Données collectées", diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index 2ceda65a36..ceeb8d8e1d 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -24,7 +24,10 @@ "required": "riachtanach", "error": "earráid: {{error}}", "back": "Ar ais", - "somethingWentWrong": "Chuaigh rud éigin mícheart" + "somethingWentWrong": "Chuaigh rud éigin mícheart", + "couldNotOpen": "Níorbh fhéidir {{label}} a oscailt", + "link": "nasc", + "takingLonger": "Tá sé seo ag tógáil níos faide ná mar a bhíothas ag súil leis. Is féidir leat é seo a dhúnadh agus seiceáil arís." }, "language": { "title": "Teanga", @@ -597,6 +600,12 @@ "commentPosted": "Trácht foilsithe", "reviewSubmitted": "Athbhreithniú curtha isteach", "autoMergeEnabled": "Uath-chumasc cumasaithe" + }, + "mutationError": { + "commentNotPosted": "Ní féidir an trácht seo a phostáil. B'fhéidir gur athraíodh an líne roghnaithe, nó b'fhéidir gur nuashonraíodh an PR.", + "reviewNotSubmitted": "Ní féidir an t-athbhreithniú seo a sheoladh mar atá sé. B'fhéidir gur athraíodh an PR, nó ní féidir leat do iarratas tarraingthe féin a athbhreithniú.", + "couldNotPostComment": "Níorbh fhéidir an trácht a phostáil.", + "couldNotSubmitReview": "Níorbh fhéidir an t-athbhreithniú a sheoladh. Seiceáil do nasc agus bain triail as arís." } }, "notifications": { @@ -735,7 +744,12 @@ "classificationEmpty": "Tá an comhad folamh", "classificationTooLarge": "Caithfidh comhaid a bheith 20 MB nó níos lú", "classificationUnreadable": "Níorbh fhéidir an comhad seo a léamh", - "announceUploaded": "Uaslódáladh an ceangaltán" + "announceUploaded": "Uaslódáladh an ceangaltán", + "cantUpload": "Ní féidir an comhad seo a uaslódáil.", + "networkError": "Earráid líonra", + "uploadFailed": "Theip ar an uaslódáil", + "failedToUploadFile": "Theip ar an gcomhad a uaslódáil: {{reason}}", + "nothingToPaste": "Níl aon rud le greamú" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1199,7 +1213,8 @@ "sparkles": "Scintillí", "strongArm": "Lámh láidir", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Ní féidir leis an gcás seo comhaid a fháil." }, "codeReviewer": { "focusAreas": { @@ -1386,7 +1401,9 @@ "noDecision": "Níl aon chinneadh", "noResult": "Níl aon toradh" }, - "eyebrow": "Athbhreithneoir Cóid" + "eyebrow": "Athbhreithneoir Cóid", + "updateFailed": "Theip ar an athbhreithneoir a nuashonrú", + "configSaveFailed": "Theip ar chumraíocht an athbhreithnithe a shábháil" }, "securityAgent": { "filter": { @@ -1814,6 +1831,13 @@ "remediationsQueued": "Feabhsuithe atá ann cheana i scuaine", "analysisComplete": "Anailís críochnaithe", "syncComplete": "Sioncrónú críochnaithe" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Níl an tseirbhís slándála cumraithe. Ní féidir le hathsheoladh éirí go dtí go gceartaítear é seo.", + "syncMayNotHaveCompleted": "B'fhéidir nach bhfuil sioncronú críochnaithe. Déan arís é chun é a réiteach, nó caith uait é.", + "syncInProgress": "Tá sioncronú slándála ar siúl cheana. Bain triail as arís le do thoil.", + "dismissalInProgress": "Tá an díbhe seo ar siúl cheana. Bain triail as arís le do thoil.", + "couldNotReadPendingSyncs": "Níorbh fhéidir sioncronuithe ar feitheamh a léamh. Bain triail as arís." } }, "agents": { @@ -2525,7 +2549,17 @@ "onlineMessage": "Ní féidir leis an ngléas seo tras-scríobh as líne. Seoltar do thaifeadadh chuig {{provider}} le tiontú ina théacs. Ní stórálann Kilo an fhuaim.", "allow": "Ceadaigh", "start": "Tosaigh ionchur gutha", - "stop": "Stadaigh ionchur gutha" + "stop": "Stadaigh ionchur gutha", + "restricted": "Tá ionchur gutha srianta ar an ngléas seo.", + "micRequired": "Teastaíonn rochtain ar mhicreafón le haghaidh ionchur gutha.", + "micOff": "Tá rochtain ar mhicreafón as. Cumasaigh í sna Socruithe chun ionchur gutha a úsáid.", + "micOffTitle": "Tá rochtain ar mhicreafón as", + "noSpeech": "Níor braitheadh aon urlabhra. Tapáil an micreafón chun triail arís a bhaint.", + "needsConnection": "Teastaíonn nasc ón ionchur gutha faoi láthair. Bain triail as arís.", + "busy": "Tá an t-ionchur gutha gnóthach. Bain triail as arís.", + "stopped": "Stop an t-ionchur gutha. Tapáil an micreafón chun triail arís a bhaint.", + "unavailableDevice": "Níl ionchur gutha ar fáil ar an ngléas seo.", + "unavailableLanguage": "Níl ionchur gutha ar fáil don teanga gléis seo." }, "share": { "title": "Roinn le Kilo", @@ -2603,7 +2637,12 @@ "webManagementDescription": "Tá an Kilo Pass seo bainistithe ar an ngréasán.", "legalDisclosure": "Is síntiús míosúil uath-fhionnuaire é Kilo Pass. Gearrtar an táille ar do Apple ID ag deimhniú an cheannaigh. Déanann síntiúis athnuachan go huathoibríoch gach mí ar an bpraghas a thaispeántar mura gcuirtear ceal orthu 24 uair an chloig ar a laghad roimh dheireadh na tréimhse reatha. Bainistigh nó cuir ceal orthu am ar bith i do shocruithe cuntais App Store.", "legalPrivacyPolicy": "Beartas Príobháideachta", - "legalTermsOfUse": "Téarmaí Úsáide (EULA)" + "legalTermsOfUse": "Téarmaí Úsáide (EULA)", + "purchaseNotLinked": "Níl an ceannach App Store seo nasctha le do chuntas Kilo. Déan cinnte go bhfuil tú sínithe isteach leis an Apple ID a rinne an ceannach, ansin bain triail as arís.", + "purchaseDifferentAccount": "Níl an ceannach App Store seo nasctha le do chuntas Kilo. Sínigh isteach leis an Apple Account a úsáideadh don cheannach, ansin bain triail as arís.", + "restoreFailed": "Theip ar na ceannacháin a chur ar ais. Bain triail as arís.", + "purchaseFailed": "Theip ar an gceannach a chríochnú.", + "purchaseStartFailed": "Theip ar cheannach App Store a thosú." }, "consent": { "kilo": "Kilo", @@ -2736,7 +2775,9 @@ "statusOpen": "Ar oscailt", "statusPaid": "Íoctha", "statusVoid": "Neamhní", - "title": "Sonraisc" + "title": "Sonraisc", + "downloadFailed": "Níorbh fhéidir an tsonrasc a íoslódáil. Seiceáil do nasc agus bain triail as arís.", + "sharingUnavailable": "Níl roinnt ar fáil ar an ngléas seo." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2859,7 +2900,8 @@ "signInFailed": "Theip ar an síniú isteach. Bain triail as arís le do thoil.", "networkError": "Earráid líonra. Bain triail as arís le do thoil.", "accessDeniedByUser": "Rochtain diúltaithe ag an úsáideoir", - "codeExpired": "Cód imithe in éag" + "codeExpired": "Cód imithe in éag", + "tooManySignInAttempts": "An iomarca iarrachtaí sínithe isteach. Fan agus bain triail as arís le do thoil." }, "models": { "dataCollected": "Sonraí bailithe", diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index bc25ebf253..bb8c8fe787 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -24,7 +24,10 @@ "required": "obrigatorio", "error": "erro: {{error}}", "back": "Atrás", - "somethingWentWrong": "Algo fallou" + "somethingWentWrong": "Algo fallou", + "couldNotOpen": "Non se puido abrir {{label}}", + "link": "ligazón", + "takingLonger": "Isto leva máis tempo do esperado. Podes pechalo e comprobalo de novo." }, "language": { "title": "Idioma", @@ -576,6 +579,12 @@ "commentPosted": "Comentario publicado", "reviewSubmitted": "Revisión enviada", "autoMergeEnabled": "Fusión automática activada" + }, + "mutationError": { + "commentNotPosted": "Este comentario non se pode publicar. A liña seleccionada pode que cambiase, ou o PR pode que fose actualizado.", + "reviewNotSubmitted": "Esta revisión non se pode enviar tal e como está. O PR pode que cambiase, ou non podes revisar o teu propio pull request.", + "couldNotPostComment": "Non se puido publicar o comentario.", + "couldNotSubmitReview": "Non se puido enviar a revisión. Comproba a túa conexión e proba de novo." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "O arquivo está baleiro", "classificationTooLarge": "Os arquivos deben ter 20 MB ou menos", "classificationUnreadable": "Non se puido ler este arquivo", - "announceUploaded": "Anexo engadido" + "announceUploaded": "Anexo engadido", + "cantUpload": "Este arquivo non se pode subir.", + "networkError": "Erro de rede", + "uploadFailed": "Non se puido subir", + "failedToUploadFile": "Non se puido subir o arquivo: {{reason}}", + "nothingToPaste": "Non hai nada que pegar" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Escintileos", "strongArm": "Brazo forte", "talisman": "Talismán" - } + }, + "remoteSpawnFilesNotSupported": "Esta instancia non pode recibir arquivos." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Sen decisión", "noResult": "Sen resultado" }, - "eyebrow": "Revisor de código" + "eyebrow": "Revisor de código", + "updateFailed": "Non se puido actualizar o revisor", + "configSaveFailed": "Non se puido gardar a configuración da revisión" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Remediacións existentes engadidas á cola", "analysisComplete": "Análise completada", "syncComplete": "Sincronización completada" + }, + "mutations": { + "serviceNotConfiguredResubmit": "O servizo de seguridade non está configurado. O reenvío non pode ter éxito ata que isto se corrixa.", + "syncMayNotHaveCompleted": "Pode que unha sincronización non se completase. Volve tentala para reconciliala, ou descártaa.", + "syncInProgress": "Xa hai unha sincronización de seguridade en curso. Proba de novo.", + "dismissalInProgress": "Este descarte xa está en curso. Proba de novo.", + "couldNotReadPendingSyncs": "Non se puideron ler as sincronizacións pendentes. Proba de novo." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Este dispositivo non pode transcribir sen conexión. A túa gravación envíase a {{provider}} para convertela en texto. Kilo non almacena o audio.", "allow": "Permitir", "start": "Iniciar entrada de voz", - "stop": "Deter entrada de voz" + "stop": "Deter entrada de voz", + "restricted": "A entrada de voz está restrinxida neste dispositivo.", + "micRequired": "Requírese acceso ao micrófono para a entrada de voz.", + "micOff": "O acceso ao micrófono está desactivado. Actívao nos Axustes para usar a entrada de voz.", + "micOffTitle": "O acceso ao micrófono está desactivado", + "noSpeech": "Non se detectou fala. Toca o micrófono para volver tentalo.", + "needsConnection": "A entrada de voz necesita conexión agora mesmo. Proba de novo.", + "busy": "A entrada de voz está ocupada. Proba de novo.", + "stopped": "A entrada de voz detívose. Toca o micrófono para volver tentalo.", + "unavailableDevice": "A entrada de voz non está dispoñible neste dispositivo.", + "unavailableLanguage": "A entrada de voz non está dispoñible para o idioma deste dispositivo." }, "share": { "title": "Compartir en Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Este Kilo Pass xestiónase na web.", "legalDisclosure": "Kilo Pass é unha subscrición mensual auto-renovable. O pago cobrase na túa conta de Apple no momento da compra. As subscricións renóvanse automaticamente cada mes ao prezo indicado a menos que se cancelen polo menos 24 horas antes de que remate o período actual. Xestiona ou cancela en calquera momento na configuración da túa conta da App Store.", "legalPrivacyPolicy": "Política de privacidade", - "legalTermsOfUse": "Termos de uso (EULA)" + "legalTermsOfUse": "Termos de uso (EULA)", + "purchaseNotLinked": "Esta compra da App Store non está ligada á túa conta de Kilo. Asegúrate de iniciar sesión co Apple ID que fixo a compra e proba de novo.", + "purchaseDifferentAccount": "Esta compra da App Store non está ligada á túa conta de Kilo. Inicia sesión coa conta de Apple usada para a compra e proba de novo.", + "restoreFailed": "Non se puideron restaurar as compras. Proba de novo.", + "purchaseFailed": "Non se puido completar a compra.", + "purchaseStartFailed": "Non se puido iniciar a compra na App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Aberta", "statusPaid": "Pagada", "statusVoid": "Anulada", - "title": "Facturas" + "title": "Facturas", + "downloadFailed": "Non se puido descargar a factura. Comproba a túa conexión e proba de novo.", + "sharingUnavailable": "O compartido non está dispoñible neste dispositivo." }, "lowBalanceAlert": { "emailPlaceholder": "nome@empresa.com", @@ -2802,7 +2843,8 @@ "signInFailed": "O inicio de sesión fallou. Proba de novo.", "networkError": "Erro de rede. Proba de novo.", "accessDeniedByUser": "Acceso denegado polo usuario", - "codeExpired": "Código caducado" + "codeExpired": "Código caducado", + "tooManySignInAttempts": "Demasiados intentos de inicio de sesión. Agarda e proba de novo." }, "models": { "dataCollected": "Datos recollidos", diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index 9c606e5fd2..643875c417 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -24,7 +24,10 @@ "required": "જરૂરી", "error": "ભૂલ: {{error}}", "back": "પાછળ", - "somethingWentWrong": "કંઈક ખોટું થયું" + "somethingWentWrong": "કંઈક ખોટું થયું", + "couldNotOpen": "{{label}} ખોલી શકાયું નહીં", + "link": "લિંક", + "takingLonger": "આ અપેક્ષા કરતાં વધુ સમય લઈ રહ્યું છે. તમે આ બંધ કરી શકો છો અને ફરી ચકાસી શકો છો." }, "language": { "title": "ભાષા", @@ -576,6 +579,12 @@ "commentPosted": "ટિપ્પણી પોસ્ટ થઈ", "reviewSubmitted": "સમીક્ષા સબમિટ થઈ", "autoMergeEnabled": "ઓટો-મર્જ સક્ષમ થયું" + }, + "mutationError": { + "commentNotPosted": "આ ટિપ્પણી પોસ્ટ કરી શકાતી નથી. પસંદ કરેલી લીટી બદલાઈ હોઈ શકે છે, અથવા PR અપડેટ થયું હોઈ શકે છે.", + "reviewNotSubmitted": "આ સમીક્ષા જેમ છે તેમ સબમિટ કરી શકાતી નથી. PR બદલાયું હોઈ શકે છે, અથવા તમે તમારી પોતાની પુલ રિક્વેસ્ટની સમીક્ષા કરી શકતા નથી.", + "couldNotPostComment": "ટિપ્પણી પોસ્ટ કરી શકાઈ નહીં.", + "couldNotSubmitReview": "સમીક્ષા સબમિટ કરી શકાઈ નહીં. તમારું કનેક્શન ચકાસો અને ફરી પ્રયત્ન કરો." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ફાઇલ ખાલી છે", "classificationTooLarge": "ફાઇલો 20 MB કે તેથી નાની હોવી જોઈએ", "classificationUnreadable": "આ ફાઇલ વાંચી શકાઈ નહીં", - "announceUploaded": "જોડાણ અપલોડ થયું" + "announceUploaded": "જોડાણ અપલોડ થયું", + "cantUpload": "આ ફાઇલ અપલોડ કરી શકાતી નથી.", + "networkError": "નેટવર્ક ભૂલ", + "uploadFailed": "અપલોડ નિષ્ફળ", + "failedToUploadFile": "ફાઇલ અપલોડ કરવામાં નિષ્ફળ: {{reason}}", + "nothingToPaste": "પેસ્ટ કરવા માટે કંઈ નથી" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ચમક", "strongArm": "મજબૂત હાથ", "talisman": "તાવીજ" - } + }, + "remoteSpawnFilesNotSupported": "આ ઇન્સ્ટન્સ ફાઇલો મેળવી શકતું નથી." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "કોઈ નિર્ણય નથી", "noResult": "કોઈ પરિણામ નથી" }, - "eyebrow": "કોડ સમીક્ષક" + "eyebrow": "કોડ સમીક્ષક", + "updateFailed": "સમીક્ષક અપડેટ કરવામાં નિષ્ફળ", + "configSaveFailed": "સમીક્ષા કોન્ફિગ સાચવવામાં નિષ્ફળ" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "હાલની સુધારણાઓ કતારમાં મૂકાઈ", "analysisComplete": "વિશ્લેષણ પૂર્ણ", "syncComplete": "સિંક પૂર્ણ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "સુરક્ષા સેવા ગોઠવેલી નથી. આ સુધારાય ત્યાં સુધી ફરી સબમિટ કરવું સફળ થઈ શકશે નહીં.", + "syncMayNotHaveCompleted": "સિંક પૂર્ણ થયું ન હોઈ શકે. તેને સંતુલિત કરવા ફરી પ્રયત્ન કરો, અથવા કાઢી નાખો.", + "syncInProgress": "સુરક્ષા સિંક પહેલેથી ચાલુ છે. કૃપા કરીને ફરી પ્રયત્ન કરો.", + "dismissalInProgress": "આ ખારિજ કરવાની પ્રક્રિયા પહેલેથી ચાલુ છે. કૃપા કરીને ફરી પ્રયત્ન કરો.", + "couldNotReadPendingSyncs": "બાકી સિંક વાંચી શકાયા નહીં. ફરી પ્રયત્ન કરો." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "આ ડિવાઇસ ઑફલાઇન ટ્રાન્સક્રાઇબ કરી શકતું નથી. તમારી રેકોર્ડિંગ તેને ટેક્સ્ટમાં ફેરવવા માટે {{provider}} ને મોકલવામાં આવે છે. Kilo ઑડિઓ સંગ્રહિત કરતું નથી.", "allow": "મંજૂરી આપો", "start": "વૉઇસ ઇનપુટ શરૂ કરો", - "stop": "વૉઇસ ઇનપુટ બંધ કરો" + "stop": "વૉઇસ ઇનપુટ બંધ કરો", + "restricted": "આ ઉપકરણ પર વૉઇસ ઇનપુટ પ્રતિબંધિત છે.", + "micRequired": "વૉઇસ ઇનપુટ માટે માઇક્રોફોન પ્રવેશ જરૂરી છે.", + "micOff": "માઇક્રોફોન પ્રવેશ બંધ છે. વૉઇસ ઇનપુટ વાપરવા તેને સેટિંગ્સમાં સક્ષમ કરો.", + "micOffTitle": "માઇક્રોફોન પ્રવેશ બંધ છે", + "noSpeech": "કોઈ સ્પીચ મળી નથી. ફરી પ્રયત્ન કરવા માઇક્રોફોન ટેપ કરો.", + "needsConnection": "વૉઇસ ઇનપુટને હમણાં કનેક્શનની જરૂર છે. ફરી પ્રયત્ન કરો.", + "busy": "વૉઇસ ઇનપુટ વ્યસ્ત છે. ફરી પ્રયત્ન કરો.", + "stopped": "વૉઇસ ઇનપુટ બંધ થયું. ફરી પ્રયત્ન કરવા માઇક્રોફોન ટેપ કરો.", + "unavailableDevice": "આ ઉપકરણ પર વૉઇસ ઇનપુટ ઉપલબ્ધ નથી.", + "unavailableLanguage": "આ ઉપકરણની ભાષા માટે વૉઇસ ઇનપુટ ઉપલબ્ધ નથી." }, "share": { "title": "Kilo પર શેર કરો", @@ -2549,7 +2583,12 @@ "webManagementDescription": "આ Kilo Pass વેબ પર મેનેજ થાય છે.", "legalDisclosure": "Kilo Pass એ આપમેળે રિન્યુ થતું માસિક સબ્સ્ક્રિપ્શન છે. ખરીદીની પુષ્ટિ પર તમારા Apple ID પર ચુકવણી કરવામાં આવે છે. જ્યાં સુધી વર્તમાન સમયગાળાના અંતના 24 કલાક પહેલાં રદ ન કરવામાં આવે ત્યાં સુધી સબ્સ્ક્રિપ્શન દર મહિને દર્શાવેલ કિંમતે આપમેળે રિન્યુ થાય છે. તમારી App Store એકાઉન્ટ સેટિંગ્સમાં ગમે ત્યારે મેનેજ કરો અથવા રદ કરો.", "legalPrivacyPolicy": "ગોપનીયતા નીતિ", - "legalTermsOfUse": "ઉપયોગની શરતો (EULA)" + "legalTermsOfUse": "ઉપયોગની શરતો (EULA)", + "purchaseNotLinked": "આ App Store ખરીદી તમારા Kilo એકાઉન્ટ સાથે લિંક થયેલી નથી. ખાતરી કરો કે તમે ખરીદી કરનાર Apple ID પર સાઇન ઇન છો, પછી ફરી પ્રયત્ન કરો.", + "purchaseDifferentAccount": "આ App Store ખરીદી તમારા Kilo એકાઉન્ટ સાથે લિંક થયેલી નથી. ખરીદી માટે વપરાયેલા Apple એકાઉન્ટમાં સાઇન ઇન કરો, પછી ફરી પ્રયત્ન કરો.", + "restoreFailed": "ખરીદીઓ પુનઃસ્થાપિત કરવામાં નિષ્ફળ. ફરી પ્રયત્ન કરો.", + "purchaseFailed": "ખરીદી પૂર્ણ કરવામાં નિષ્ફળ.", + "purchaseStartFailed": "App Store ખરીદી શરૂ કરવામાં નિષ્ફળ." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ખુલ્લું", "statusPaid": "ચૂકવેલ", "statusVoid": "રદ", - "title": "ઇનવોઇસ" + "title": "ઇનવોઇસ", + "downloadFailed": "ઇનવોઇસ ડાઉનલોડ કરી શકાયું નહીં. તમારું કનેક્શન ચકાસો અને ફરી પ્રયત્ન કરો.", + "sharingUnavailable": "આ ઉપકરણ પર શેરિંગ ઉપલબ્ધ નથી." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "સાઇન-ઇન નિષ્ફળ. કૃપા કરીને ફરી પ્રયાસ કરો.", "networkError": "નેટવર્ક ભૂલ. કૃપા કરીને ફરી પ્રયાસ કરો.", "accessDeniedByUser": "વપરાશકર્તા દ્વારા પ્રવેશ નકારાયો", - "codeExpired": "કોડ સમાપ્ત થયો" + "codeExpired": "કોડ સમાપ્ત થયો", + "tooManySignInAttempts": "ખૂબ બધા સાઇન-ઇન પ્રયાસો. કૃપા કરીને રાહ જુઓ અને ફરી પ્રયત્ન કરો." }, "models": { "dataCollected": "એકત્રિત ડેટા", diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index 6b7f30e7be..2ad84bfcd2 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -24,7 +24,10 @@ "required": "ana buƙata", "error": "kuskure: {{error}}", "back": "Baya", - "somethingWentWrong": "Wani abu ya ɓace" + "somethingWentWrong": "Wani abu ya ɓace", + "couldNotOpen": "Ba a iya buɗe {{label}} ba", + "link": "hanya", + "takingLonger": "Wannan yana ɗaukan lokaci fiye da yadda ake tsammani. Za ka iya rufe wannan ka sake duba." }, "language": { "title": "Harshe", @@ -576,6 +579,12 @@ "commentPosted": "An buga tsokaci", "reviewSubmitted": "An ƙaddamar da bita", "autoMergeEnabled": "An kunna auto-merge" + }, + "mutationError": { + "commentNotPosted": "Ba za a iya buga wannan tsokaci ba. Wataƙila layin da aka zaɓa ya canza, ko kuma an sabunta PR.", + "reviewNotSubmitted": "Ba za a iya ƙaddamar da wannan bita ba yadda take. Wataƙila PR ya canza, ko kuma ba za ka iya bitar buƙatar janka ba.", + "couldNotPostComment": "Ba a iya buga tsokaci ba.", + "couldNotSubmitReview": "Ba a iya ƙaddamar da bita ba. Duba haɗinka ka sake gwadawa." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Fayil ɗin babu kome", "classificationTooLarge": "Fayiloli dole su kasance 20 MB ko ƙasa", "classificationUnreadable": "An kasa karanta wannan fayil", - "announceUploaded": "An ɗora abin da aka haɗa" + "announceUploaded": "An ɗora abin da aka haɗa", + "cantUpload": "Ba za a iya ɗora wannan fayil ba.", + "networkError": "Kuskuren hanyar sadarwa", + "uploadFailed": "Ɗorawa ya gaza", + "failedToUploadFile": "An kasa ɗora fayil: {{reason}}", + "nothingToPaste": "Babu abin da za a manna" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Ɓangarori", "strongArm": "Hannu mai ƙarfi", "talisman": "Layya" - } + }, + "remoteSpawnFilesNotSupported": "Wannan instance ba zai iya karɓar fayiloli ba." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Babu shawara", "noResult": "Babu sakamako" }, - "eyebrow": "Mai Bitar Lambar" + "eyebrow": "Mai Bitar Lambar", + "updateFailed": "An kasa sabunta mai bita", + "configSaveFailed": "An kasa ajiye saitin bita" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "An jera gyare-gyaren da ke akwai", "analysisComplete": "Nazari ya cika", "syncComplete": "Daidaitawa ta cika" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Ba a saita sabis ɗin tsaro ba. Sake ƙaddamarwa ba zai yi nasara ba har sai an gyara wannan.", + "syncMayNotHaveCompleted": "Wataƙila daidaitawa bai cika ba. Sake gwadawa don daidaita shi, ko watsar.", + "syncInProgress": "Daidaitawar tsaro tana ci gaba. Don Allah sake gwadawa.", + "dismissalInProgress": "Wannan watsarwa tana ci gaba. Don Allah sake gwadawa.", + "couldNotReadPendingSyncs": "Ba a iya karanta daidaitawar da ke jira ba. Sake gwadawa." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Wannan na'urar ba za ta iya rubuta magana ba tare da haɗi ba. Ana aika rikodin ka zuwa {{provider}} don a mayar da shi rubutu. Kilo ba ya adana sautin.", "allow": "Ba da izini", "start": "Fara shigar da murya", - "stop": "Dakatar da shigar da murya" + "stop": "Dakatar da shigar da murya", + "restricted": "Shigar da murya an ƙuntata shi akan wannan na'ura.", + "micRequired": "Ana buƙatar damar makirufo don shigar da murya.", + "micOff": "Damar makirufo a kashe. Kunna shi a cikin Saituna don amfani da shigar da murya.", + "micOffTitle": "Damar makirufo a kashe", + "noSpeech": "Ba a gano magana ba. Danna makirufo don sake gwadawa.", + "needsConnection": "Shigar da murya tana buƙatar haɗi a yanzu. Sake gwadawa.", + "busy": "Shigar da murya tana aiki. Sake gwadawa.", + "stopped": "Shigar da murya ta tsaya. Danna makirufo don sake gwadawa.", + "unavailableDevice": "Shigar da murya ba ta samuwa akan wannan na'ura.", + "unavailableLanguage": "Shigar da murya ba ta samuwa don harshen wannan na'ura." }, "share": { "title": "Raba zuwa Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Wannan Kilo Pass ana sarrafa shi a yanar gizo.", "legalDisclosure": "Kilo Pass biyan kuɗi ne na wata-wata wanda ke sabunta kansa. Ana cajin biyan kuɗi ga Apple ID ɗinka a lokacin tabbatar da siyayya. Biyan kuɗi yana sabuntawa kowace wata a farashin da aka nuna sai dai idan an soke shi aƙalla sa'o'i 24 kafin ƙarshen lokaci na yanzu. Sarrafa ko soke a kowane lokaci a saitunan asusunka na App Store.", "legalPrivacyPolicy": "Manufofin Sirri", - "legalTermsOfUse": "Sharuɗɗan Amfani (EULA)" + "legalTermsOfUse": "Sharuɗɗan Amfani (EULA)", + "purchaseNotLinked": "Wannan sayayyar App Store ba a haɗa ta da asusunka na Kilo ba. Tabbatar an shiga da Apple ID ɗin da ya yi sayayyar, sannan sake gwadawa.", + "purchaseDifferentAccount": "Wannan sayayyar App Store ba a haɗa ta da asusunka na Kilo ba. Shiga da Apple Account ɗin da aka yi amfani da shi don sayayyar, sannan sake gwadawa.", + "restoreFailed": "An kasa maido da sayayya. Sake gwadawa.", + "purchaseFailed": "An kasa kammala sayayya.", + "purchaseStartFailed": "An kasa fara sayayyar App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Buɗe", "statusPaid": "An biya", "statusVoid": "Rasa inganci", - "title": "Daftaruwa" + "title": "Daftaruwa", + "downloadFailed": "An kasa sauke daftari. Duba haɗinka ka sake gwadawa.", + "sharingUnavailable": "Raba ba ya samuwa akan wannan na'ura." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Shiga ya gaza. Don Allah sake gwadawa.", "networkError": "Kuskuren hanyar sadarwa. Don Allah sake gwadawa.", "accessDeniedByUser": "Mai amfani ya ƙi samun damar", - "codeExpired": "Lambar ta ƙare" + "codeExpired": "Lambar ta ƙare", + "tooManySignInAttempts": "Ƙoƙarin shiga ya yi yawa. Don Allah jira ka sake gwadawa." }, "models": { "dataCollected": "Bayanan da aka tattara", diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index 58af935b27..3eac3b229b 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -24,7 +24,10 @@ "notNow": "לא עכשיו", "continue": "המשך", "back": "חזרה", - "somethingWentWrong": "משהו השתבש" + "somethingWentWrong": "משהו השתבש", + "couldNotOpen": "לא ניתן לפתוח את {{label}}", + "link": "קישור", + "takingLonger": "זה לוקח יותר זמן מהצפוי. תוכל לסגור את זה ולבדוק שוב." }, "language": { "title": "שפה", @@ -283,7 +286,12 @@ "classificationEmpty": "הקובץ ריק", "classificationTooLarge": "קבצים חייבים להיות 20 MB או קטן יותר", "classificationUnreadable": "לא ניתן היה לקרוא את הקובץ הזה", - "announceUploaded": "הקובץ המצורף הועלה" + "announceUploaded": "הקובץ המצורף הועלה", + "cantUpload": "לא ניתן להעלות את הקובץ הזה.", + "networkError": "שגיאת רשת", + "uploadFailed": "ההעלאה נכשלה", + "failedToUploadFile": "העלאת הקובץ נכשלה: {{reason}}", + "nothingToPaste": "אין מה להדביק" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -743,7 +751,8 @@ "sparkles": "ניצוצות", "strongArm": "זרוע חזקה", "talisman": "קמע" - } + }, + "remoteSpawnFilesNotSupported": "מופע זה אינו יכול לקבל קבצים." }, "codeReviewer": { "focusAreas": { @@ -930,7 +939,9 @@ "reviewMemory": "זיכרון סקירה", "reviewStyle": "סגנון סקירה", "set": "הוגדר" - } + }, + "updateFailed": "עדכון הסוקר נכשל", + "configSaveFailed": "שמירת הגדרת הסקירה נכשלה" }, "securityAgent": { "filter": { @@ -1354,6 +1365,13 @@ "remediationsQueued": "תיקונים קיימים הועמדו בתור", "analysisComplete": "הניתוח הושלם", "syncComplete": "הסנכרון הושלם" + }, + "mutations": { + "serviceNotConfiguredResubmit": "שירות האבטחה אינו מוגדר. הגשה חוזרת לא תוכל להצליח עד שהדבר יתוקן.", + "syncMayNotHaveCompleted": "ייתכן שסנכרון לא הושלם. נסה שוב כדי ליישב אותו, או דחה.", + "syncInProgress": "סנכרון אבטחה כבר מתבצע. נסה שוב.", + "dismissalInProgress": "הדחייה הזו כבר מתבצעת. נסה שוב.", + "couldNotReadPendingSyncs": "לא ניתן היה לקרוא סנכרונים ממתינים. נסה שוב." } }, "agents": { @@ -2051,7 +2069,17 @@ "onlineTitle": "הדיבור מעובד באופן מקוון", "staysOff": "הדיבור נשאר כבוי עד שתאפשר תמלול מקוון.", "start": "התחל קלט קולי", - "stop": "עצור קלט קולי" + "stop": "עצור קלט קולי", + "restricted": "קלט קולי מוגבל במכשיר זה.", + "micRequired": "נדרשת גישה למיקרופון עבור קלט קולי.", + "micOff": "גישת המיקרופון כבויה. הפעל אותה בהגדרות כדי להשתמש בקלט קולי.", + "micOffTitle": "גישת המיקרופון כבויה", + "noSpeech": "לא זוהה דיבור. הקש על המיקרופון כדי לנסות שוב.", + "needsConnection": "קלט קולי דורש חיבור כרגע. נסה שוב.", + "busy": "קלט קולי עסוק. נסה שוב.", + "stopped": "קלט קולי הופסק. הקש על המיקרופון כדי לנסות שוב.", + "unavailableDevice": "קלט קולי אינו זמין במכשיר זה.", + "unavailableLanguage": "קלט קולי אינו זמין עבור שפת המכשיר הזו." }, "share": { "title": "שתף ל-Kilo", @@ -2129,7 +2157,12 @@ "webManagementDescription": "Kilo Pass זה מנוהל באינטרנט.", "legalDisclosure": "Kilo Pass הוא מנוי חודשי שמתחדש אוטומטית. התשלום נגבה מחשבון Apple שלך בעת אישור הרכישה. המנוי מתחדש אוטומטית בכל חודש במחיר המוצג, אלא אם תבטל לפחות 24 שעות לפני סוף התקופה הנוכחית. נהל או בטל בכל עת בהגדרות חשבון App Store שלך.", "legalPrivacyPolicy": "מדיניות פרטיות", - "legalTermsOfUse": "תנאי שימוש (EULA)" + "legalTermsOfUse": "תנאי שימוש (EULA)", + "purchaseNotLinked": "רכישה זו ב-App Store אינה מקושרת לחשבון Kilo שלך. ודא שאתה מחובר ל-Apple ID שביצע את הרכישה, ולאחר מכן נסה שוב.", + "purchaseDifferentAccount": "רכישה זו ב-App Store אינה מקושרת לחשבון Kilo שלך. היכנס לחשבון Apple שבו נעשה שימוש לרכישה, ולאחר מכן נסה שוב.", + "restoreFailed": "שחזור הרכישות נכשל. נסה שוב.", + "purchaseFailed": "השלמת הרכישה נכשלה.", + "purchaseStartFailed": "התחלת הרכישה ב-App Store נכשלה." }, "consent": { "kilo": "Kilo", @@ -2650,6 +2683,12 @@ "commentPosted": "התגובה פורסמה", "reviewSubmitted": "הסקירה נשלחה", "autoMergeEnabled": "מיזוג אוטומטי הופעל" + }, + "mutationError": { + "commentNotPosted": "לא ניתן לפרסם תגובה זו. ייתכן שהשורה שנבחרה השתנתה, או שה-PR עודכן.", + "reviewNotSubmitted": "לא ניתן לשלוח סקירה זו כפי שהיא. ייתכן שה-PR השתנה, או שאינך יכול לסקור בקשת משיכה משלך.", + "couldNotPostComment": "לא ניתן היה לפרסם תגובה.", + "couldNotSubmitReview": "לא ניתן היה לשלוח את הסקירה. בדוק את החיבור ונסה שוב." } }, "organization": { @@ -2696,7 +2735,9 @@ "title": "חשבוניות", "statusPaid": "שולם", "statusOpen": "פתוח", - "statusVoid": "מבוטל" + "statusVoid": "מבוטל", + "downloadFailed": "לא ניתן היה להוריד את החשבונית. בדוק את החיבור ונסה שוב.", + "sharingUnavailable": "שיתוף אינו זמין במכשיר זה." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "הכניסה נכשלה. נסה שוב.", "networkError": "שגיאת רשת. נסה שוב.", "accessDeniedByUser": "הגישה נדחתה על ידי המשתמש", - "codeExpired": "הקוד פג" + "codeExpired": "הקוד פג", + "tooManySignInAttempts": "יותר מדי ניסיונות כניסה. אנא המתן ונסה שוב." }, "models": { "dataCollected": "נתונים שנאספו", diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index 6d686c48e6..17aeb272cf 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -24,7 +24,10 @@ "notNow": "अभी नहीं", "continue": "जारी रखें", "back": "वापस", - "somethingWentWrong": "कुछ गड़बड़ हो गई" + "somethingWentWrong": "कुछ गड़बड़ हो गई", + "couldNotOpen": "{{label}} खोला नहीं जा सका", + "link": "लिंक", + "takingLonger": "इसमें अपेक्षा से अधिक समय लग रहा है। आप इसे बंद करके फिर से जाँच सकते हैं।" }, "language": { "title": "भाषा", @@ -253,7 +256,12 @@ "classificationEmpty": "फ़ाइल खाली है", "classificationTooLarge": "फ़ाइलें 20 MB या उससे छोटी होनी चाहिए", "classificationUnreadable": "यह फ़ाइल पढ़ी नहीं जा सकी", - "announceUploaded": "अटैचमेंट अपलोड हो गया" + "announceUploaded": "अटैचमेंट अपलोड हो गया", + "cantUpload": "यह फ़ाइल अपलोड नहीं की जा सकती।", + "networkError": "नेटवर्क त्रुटि", + "uploadFailed": "अपलोड विफल", + "failedToUploadFile": "फ़ाइल अपलोड करने में विफल: {{reason}}", + "nothingToPaste": "चिपकाने के लिए कुछ नहीं" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -741,7 +749,8 @@ "sparkles": "चमक", "strongArm": "मज़बूत भुजा", "talisman": "तावीज़" - } + }, + "remoteSpawnFilesNotSupported": "यह इंस्टेंस फ़ाइलें प्राप्त नहीं कर सकता।" }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "समीक्षा मेमोरी", "reviewStyle": "समीक्षा शैली", "set": "सेट करें" - } + }, + "updateFailed": "समीक्षक अपडेट करने में विफल", + "configSaveFailed": "समीक्षा कॉन्फ़िग सहेजने में विफल" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "मौजूदा सुधार कतार में लगाए गए", "analysisComplete": "विश्लेषण पूर्ण", "syncComplete": "सिंक पूर्ण" + }, + "mutations": { + "serviceNotConfiguredResubmit": "सुरक्षा सेवा कॉन्फ़िगर नहीं है। इसे ठीक किए जाने तक पुनः सबमिट करना सफल नहीं हो सकता।", + "syncMayNotHaveCompleted": "हो सकता है कि सिंक पूरा न हुआ हो। इसे समेटने के लिए फिर से प्रयास करें, या खारिज करें।", + "syncInProgress": "एक सुरक्षा सिंक पहले से ही चल रहा है। कृपया फिर से प्रयास करें।", + "dismissalInProgress": "यह खारिजीकरण पहले से ही चल रहा है। कृपया फिर से प्रयास करें।", + "couldNotReadPendingSyncs": "लंबित सिंक पढ़े नहीं जा सके। फिर से प्रयास करें।" } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "भाषण ऑनलाइन प्रोसेस होता है", "staysOff": "भाषण तब तक बंद रहता है जब तक आप ऑनलाइन ट्रांसक्रिप्शन की अनुमति नहीं देते।", "start": "वॉइस इनपुट शुरू करें", - "stop": "वॉइस इनपुट रोकें" + "stop": "वॉइस इनपुट रोकें", + "restricted": "इस डिवाइस पर वॉइस इनपुट प्रतिबंधित है।", + "micRequired": "वॉइस इनपुट के लिए माइक्रोफ़ोन एक्सेस आवश्यक है।", + "micOff": "माइक्रोफ़ोन एक्सेस बंद है। वॉइस इनपुट का उपयोग करने के लिए इसे सेटिंग में सक्षम करें।", + "micOffTitle": "माइक्रोफ़ोन एक्सेस बंद है", + "noSpeech": "कोई भाषण नहीं मिला। फिर से प्रयास करने के लिए माइक्रोफ़ोन पर टैप करें।", + "needsConnection": "वॉइस इनपुट को अभी कनेक्शन की आवश्यकता है। फिर से प्रयास करें।", + "busy": "वॉइस इनपुट व्यस्त है। फिर से प्रयास करें।", + "stopped": "वॉइस इनपुट रुक गया। फिर से प्रयास करने के लिए माइक्रोफ़ोन पर टैप करें।", + "unavailableDevice": "इस डिवाइस पर वॉइस इनपुट उपलब्ध नहीं है।", + "unavailableLanguage": "इस डिवाइस की भाषा के लिए वॉइस इनपुट उपलब्ध नहीं है।" }, "share": { "title": "Kilo पर साझा करें", @@ -2118,7 +2146,12 @@ "webManagementDescription": "यह Kilo Pass वेब पर प्रबंधित किया जाता है।", "legalDisclosure": "Kilo Pass एक स्वतः-नवीकरणीय मासिक सदस्यता है। खरीद की पुष्टि पर भुगतान आपके Apple ID से लिया जाता है। सदस्यताएँ हर महीने दिखाई गई कीमत पर स्वतः नवीकरण होती हैं, जब तक कि वर्तमान अवधि समाप्त होने से कम से कम 24 घंटे पहले रद्द न की जाएँ। इन्हें कभी भी अपनी App Store खाता सेटिंग्स में प्रबंधित या रद्द करें।", "legalPrivacyPolicy": "गोपनीयता नीति", - "legalTermsOfUse": "उपयोग की शर्तें (EULA)" + "legalTermsOfUse": "उपयोग की शर्तें (EULA)", + "purchaseNotLinked": "यह App Store खरीदारी आपके Kilo खाते से लिंक नहीं है। सुनिश्चित करें कि आप उस Apple ID में साइन इन हैं जिसने खरीदारी की है, फिर फिर से प्रयास करें।", + "purchaseDifferentAccount": "यह App Store खरीदारी आपके Kilo खाते से लिंक नहीं है। खरीदारी के लिए उपयोग किए गए Apple खाते में साइन इन करें, फिर फिर से प्रयास करें।", + "restoreFailed": "खरीदारी पुनर्स्थापित करने में विफल। फिर से प्रयास करें।", + "purchaseFailed": "खरीदारी पूरी करने में विफल।", + "purchaseStartFailed": "App Store खरीदारी शुरू करने में विफल।" }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "टिप्पणी पोस्ट हुई", "reviewSubmitted": "समीक्षा सबमिट हुई", "autoMergeEnabled": "ऑटो-मर्ज सक्षम हुआ" + }, + "mutationError": { + "commentNotPosted": "यह टिप्पणी पोस्ट नहीं की जा सकती। चुनी गई पंक्ति बदल गई हो सकती है, या PR अपडेट हो गया हो सकता है।", + "reviewNotSubmitted": "यह समीक्षा जैसी है वैसी सबमिट नहीं की जा सकती। PR बदल गया हो सकता है, या आप अपनी खुद की पुल रिक्वेस्ट की समीक्षा नहीं कर सकते।", + "couldNotPostComment": "टिप्पणी पोस्ट नहीं की जा सकी।", + "couldNotSubmitReview": "समीक्षा सबमिट नहीं की जा सकी। अपना कनेक्शन जाँचें और फिर से प्रयास करें।" } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "इनवॉइस", "statusPaid": "भुगतान किया गया", "statusOpen": "खुला", - "statusVoid": "रद्द" + "statusVoid": "रद्द", + "downloadFailed": "इनवॉइस डाउनलोड नहीं हो सका। अपना कनेक्शन जाँचें और फिर से प्रयास करें।", + "sharingUnavailable": "इस डिवाइस पर साझा करना उपलब्ध नहीं है।" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "साइन-इन विफल रहा। कृपया फिर से कोशिश करें।", "networkError": "नेटवर्क त्रुटि। कृपया फिर से कोशिश करें।", "accessDeniedByUser": "उपयोगकर्ता द्वारा पहुँच अस्वीकृत", - "codeExpired": "कोड समाप्त हो गया" + "codeExpired": "कोड समाप्त हो गया", + "tooManySignInAttempts": "साइन-इन के बहुत अधिक प्रयास। कृपया प्रतीक्षा करें और फिर से प्रयास करें।" }, "models": { "dataCollected": "एकत्रित डेटा", diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index b9a3e2473c..d321832338 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -24,7 +24,10 @@ "required": "obavezno", "error": "greška: {{error}}", "back": "Natrag", - "somethingWentWrong": "Nešto je pošlo po zlu" + "somethingWentWrong": "Nešto je pošlo po zlu", + "couldNotOpen": "Nije moguće otvoriti {{label}}", + "link": "poveznica", + "takingLonger": "Ovo traje duže nego što se očekivalo. Možete ovo zatvoriti i ponovno provjeriti." }, "language": { "title": "Jezik", @@ -583,6 +586,12 @@ "commentPosted": "Komentar objavljen", "reviewSubmitted": "Recenzija poslana", "autoMergeEnabled": "Automatsko spajanje omogućeno" + }, + "mutationError": { + "commentNotPosted": "Ovaj komentar ne može se objaviti. Odabrani redak možda se promijenio ili je PR ažuriran.", + "reviewNotSubmitted": "Ova recenzija ne može se poslati u ovom obliku. PR se možda promijenio ili ne možete recenzirati vlastiti pull request.", + "couldNotPostComment": "Nije moguće objaviti komentar.", + "couldNotSubmitReview": "Nije moguće poslati recenziju. Provjerite svoju vezu i pokušajte ponovno." } }, "notifications": { @@ -721,7 +730,12 @@ "classificationEmpty": "Datoteka je prazna", "classificationTooLarge": "Datoteke moraju biti veličine 20 MB ili manje", "classificationUnreadable": "Nije moguće pročitati ovu datoteku", - "announceUploaded": "Privitak učitan" + "announceUploaded": "Privitak učitan", + "cantUpload": "Ova datoteka ne može se učitati.", + "networkError": "Greška mreže", + "uploadFailed": "Učitavanje nije uspjelo", + "failedToUploadFile": "Nije moguće učitati datoteku: {{reason}}", + "nothingToPaste": "Nema što zalijepiti" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1181,7 +1195,8 @@ "sparkles": "Iskrice", "strongArm": "Snažna ruka", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Ova instanca ne može primati datoteke." }, "codeReviewer": { "focusAreas": { @@ -1368,7 +1383,9 @@ "noDecision": "Nema odluke", "noResult": "Nema rezultata" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Nije moguće ažurirati preglednika kôda", + "configSaveFailed": "Nije moguće spremiti konfiguraciju recenzije" }, "securityAgent": { "filter": { @@ -1792,6 +1809,13 @@ "remediationsQueued": "Postojeće sanacije u redu čekanja", "analysisComplete": "Analiza dovršena", "syncComplete": "Sinkronizacija dovršena" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Sigurnosna usluga nije konfigurirana. Ponovno slanje ne može uspjeti dok se to ne popravi.", + "syncMayNotHaveCompleted": "Sinkronizacija možda nije dovršena. Pokušajte ponovno kako biste je uskladili ili je odbacite.", + "syncInProgress": "Sigurnosna sinkronizacija već je u tijeku. Pokušajte ponovno.", + "dismissalInProgress": "Ovo odbacivanje već je u tijeku. Pokušajte ponovno.", + "couldNotReadPendingSyncs": "Nije moguće pročitati čekajuće sinkronizacije. Pokušajte ponovno." } }, "agents": { @@ -2489,7 +2513,17 @@ "onlineMessage": "Ovaj uređaj ne može transkribirati izvan mreže. Vaš se snimak šalje {{provider}}u da bi se pretvorio u tekst. Kilo ne pohranjuje audio.", "allow": "Dopusti", "start": "Pokreni glasovni unos", - "stop": "Zaustavi glasovni unos" + "stop": "Zaustavi glasovni unos", + "restricted": "Glasovni unos ograničen je na ovom uređaju.", + "micRequired": "Za glasovni unos potreban je pristup mikrofonu.", + "micOff": "Pristup mikrofonu je isključen. Omogućite ga u Postavkama za korištenje glasovnog unosa.", + "micOffTitle": "Pristup mikrofonu je isključen", + "noSpeech": "Glas nije prepoznat. Dodirnite mikrofon za ponovni pokušaj.", + "needsConnection": "Glasovni unos trenutačno zahtijeva vezu. Pokušajte ponovno.", + "busy": "Glasovni unos je zauzet. Pokušajte ponovno.", + "stopped": "Glasovni unos je zaustavljen. Dodirnite mikrofon za ponovni pokušaj.", + "unavailableDevice": "Glasovni unos nije dostupan na ovom uređaju.", + "unavailableLanguage": "Glasovni unos nije dostupan za jezik ovog uređaja." }, "share": { "title": "Podijeli u Kilo", @@ -2567,7 +2601,12 @@ "webManagementDescription": "Ovim Kilo Passom upravlja se na webu.", "legalDisclosure": "Kilo Pass je mjesečna pretplata s automatskim obnavljanjem. Plaćanje se naplaćuje s vašeg Apple ID-a pri potvrdi kupnje. Pretplate se automatski obnavljaju svakog mjeseca po prikazanoj cijeni osim ako ne otkažete najmanje 24 sata prije kraja tekućeg razdoblja. Upravljajte ili otkažite u bilo kojem trenutku u postavkama svog App Store računa.", "legalPrivacyPolicy": "Politika privatnosti", - "legalTermsOfUse": "Uvjeti korištenja (EULA)" + "legalTermsOfUse": "Uvjeti korištenja (EULA)", + "purchaseNotLinked": "Ova kupnja iz App Storea nije povezana s vašim Kilo računom. Provjerite jeste li prijavljeni s Apple ID-om kojim je kupnja izvršena, a zatim pokušajte ponovno.", + "purchaseDifferentAccount": "Ova kupnja iz App Storea nije povezana s vašim Kilo računom. Prijavite se s Apple računom korištenim za kupnju, a zatim pokušajte ponovno.", + "restoreFailed": "Nije moguće vratiti kupnje. Pokušajte ponovno.", + "purchaseFailed": "Nije moguće dovršiti kupnju.", + "purchaseStartFailed": "Nije moguće pokrenuti kupnju u App Storeu." }, "consent": { "kilo": "Kilo", @@ -2700,7 +2739,9 @@ "statusOpen": "Otvoreno", "statusPaid": "Plaćeno", "statusVoid": "Poništeno", - "title": "Računi" + "title": "Računi", + "downloadFailed": "Nije moguće preuzeti račun. Provjerite svoju vezu i pokušajte ponovno.", + "sharingUnavailable": "Dijeljenje nije dostupno na ovom uređaju." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Prijava nije uspjela. Pokušajte ponovno.", "networkError": "Greška mreže. Pokušajte ponovno.", "accessDeniedByUser": "Pristup je odbio korisnik", - "codeExpired": "Kôd je istekao" + "codeExpired": "Kôd je istekao", + "tooManySignInAttempts": "Previše pokušaja prijave. Pričekajte i pokušajte ponovno." }, "models": { "dataCollected": "Prikupljeni podaci", diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index 1a8ac81f74..c047596356 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -24,7 +24,10 @@ "required": "obligatwa", "error": "erè: {{error}}", "back": "Tounen", - "somethingWentWrong": "Yon bagay pa mache" + "somethingWentWrong": "Yon bagay pa mache", + "couldNotOpen": "Pa t ka louvri {{label}}", + "link": "lyen", + "takingLonger": "Sa ap pran plis tan pase espere. Ou ka fèmen sa a epi tcheke ankò." }, "language": { "title": "Lang", @@ -576,6 +579,12 @@ "commentPosted": "Kòmantè pòste", "reviewSubmitted": "Revizyon soumèt", "autoMergeEnabled": "Auto-fizyon aktive" + }, + "mutationError": { + "commentNotPosted": "Kòmantè sa a pa ka pòste. Liy ki chwazi a ka chanje, oswa PR la ka mete ajou.", + "reviewNotSubmitted": "Revizyon sa a pa ka soumèt jan li ye a. PR la ka chanje, oswa ou pa ka revize pwòp pull request ou.", + "couldNotPostComment": "Pa t ka pòste kòmantè.", + "couldNotSubmitReview": "Pa t ka soumèt revizyon. Tcheke koneksyon ou epi eseye ankò." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Fichye a vid", "classificationTooLarge": "Fichye yo dwe 20 MB oswa mwens", "classificationUnreadable": "Pa t ka li fichye sa a", - "announceUploaded": "Atachman telechaje" + "announceUploaded": "Atachman telechaje", + "cantUpload": "Fichye sa a pa ka chaje.", + "networkError": "Erè rezo", + "uploadFailed": "Chajman echwe", + "failedToUploadFile": "Echwe pou chaje fichye a: {{reason}}", + "nothingToPaste": "Pa gen anyen pou kole" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Etensèl", "strongArm": "Bra fò", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Enstans sa a pa ka resevwa fichye." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Pa gen desizyon", "noResult": "Pa gen rezilta" }, - "eyebrow": "Revizè Kòd" + "eyebrow": "Revizè Kòd", + "updateFailed": "Echwe pou mete ajou revizè a", + "configSaveFailed": "Echwe pou anrejistre konfigirasyon revizyon" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Remedysyon ki egziste yo an pwosesis", "analysisComplete": "Analiz konplete", "syncComplete": "Senkronizasyon konplete" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Sèvis sekirite pa konfigire. Re-soumèt pa ka reyisi jiskaske sa a korektive.", + "syncMayNotHaveCompleted": "Yon senkronizasyon ka pa t fini. Eseye ankò pou rekonsilye li, oswa jete li.", + "syncInProgress": "Yon senkronizasyon sekirite deja an pwosesis. Tanpri eseye ankò.", + "dismissalInProgress": "Rejè sa a deja an pwosesis. Tanpri eseye ankò.", + "couldNotReadPendingSyncs": "Pa t ka li senkronizasyon annatant. Eseye ankò." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Aparèy sa a pa ka transkri offline. Anrejistreman ou voye bay {{provider}} pou l tounen tèks. Kilo pa estoke odyo a.", "allow": "Pèmèt", "start": "Kòmanse antre vwa", - "stop": "Sispann antre vwa" + "stop": "Sispann antre vwa", + "restricted": "Antre vwa a limite sou aparèy sa a.", + "micRequired": "Aksè mikwofòn nesesè pou antre vwa.", + "micOff": "Aksè mikwofòn fèmen. Aktive l nan Paramèt pou itilize antre vwa.", + "micOffTitle": "Aksè mikwofòn fèmen", + "noSpeech": "Pa gen lapawòl detekte. Tape mikwofòn nan pou eseye ankò.", + "needsConnection": "Antre vwa bezwen yon koneksyon kounye a. Eseye ankò.", + "busy": "Antre vwa okipe. Eseye ankò.", + "stopped": "Antre vwa sispann. Tape mikwofòn nan pou eseye ankò.", + "unavailableDevice": "Antre vwa pa disponib sou aparèy sa a.", + "unavailableLanguage": "Antre vwa pa disponib pou lang aparèy sa a." }, "share": { "title": "Pataje nan Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass sa a jere sou web la.", "legalDisclosure": "Kilo Pass se yon abònman chak mwa ki renouvle otomatikman. Peman an chaje sou Apple ID ou lè acha a konfime. Abònman yo renouvle otomatikman chak mwa nan pri ki montre a sòf si yo anile omwen 24 èdtan anvan fen peryòd aktyèl la. Jere oswa anile nenpòt lè nan paramèt kont App Store ou.", "legalPrivacyPolicy": "Règleman sou Vi prive", - "legalTermsOfUse": "Kondisyon Itilizasyon (EULA)" + "legalTermsOfUse": "Kondisyon Itilizasyon (EULA)", + "purchaseNotLinked": "Acha App Store sa a pa lye ak kont Kilo ou. Asire w ou konekte ak Apple ID ki te fè acha a, epi eseye ankò.", + "purchaseDifferentAccount": "Acha App Store sa a pa lye ak kont Kilo ou. Konekte ak Apple Account yo te itilize pou acha a, epi eseye ankò.", + "restoreFailed": "Echwe pou retabli acha yo. Eseye ankò.", + "purchaseFailed": "Echwe pou fini acha a.", + "purchaseStartFailed": "Echwe pou kòmanse acha App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Louvri", "statusPaid": "Peye", "statusVoid": "Anile", - "title": "Fakti" + "title": "Fakti", + "downloadFailed": "Pa t ka telechaje fakti a. Tcheke koneksyon ou epi eseye ankò.", + "sharingUnavailable": "Pataje pa disponib sou aparèy sa a." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Koneksyon an echwe. Tanpri eseye ankò.", "networkError": "Erè rezo. Tanpri eseye ankò.", "accessDeniedByUser": "Aksè refize pa itilizatè", - "codeExpired": "Kòd la ekspire" + "codeExpired": "Kòd la ekspire", + "tooManySignInAttempts": "Twòp tantativ koneksyon. Tanpri tann epi eseye ankò." }, "models": { "dataCollected": "Done kolekte", diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index f741ad2bd9..e3c595812c 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -24,7 +24,10 @@ "required": "kötelező", "error": "hiba: {{error}}", "back": "Vissza", - "somethingWentWrong": "Valami hiba történt" + "somethingWentWrong": "Valami hiba történt", + "couldNotOpen": "Nem sikerült megnyitni a(z) {{label}} elemet", + "link": "hivatkozás", + "takingLonger": "Ez tovább tart a vártnál. Bezárhatja, és később újra ellenőrizheti." }, "language": { "title": "Nyelv", @@ -576,6 +579,12 @@ "commentPosted": "Megjegyzés közzétéve", "reviewSubmitted": "Ellenőrzés elküldve", "autoMergeEnabled": "Automatikus összevonás engedélyezve" + }, + "mutationError": { + "commentNotPosted": "Ez a megjegyzés nem küldhető el. Lehet, hogy a kijelölt sor megváltozott, vagy a PR frissült.", + "reviewNotSubmitted": "Ez az ellenőrzés ebben a formában nem küldhető el. Lehet, hogy a PR megváltozott, vagy nem ellenőrizheti a saját pull requestjét.", + "couldNotPostComment": "Nem sikerült közzétenni a megjegyzést.", + "couldNotSubmitReview": "Nem sikerült elküldeni az ellenőrzést. Ellenőrizze a kapcsolatot, és próbálja újra." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "A fájl üres", "classificationTooLarge": "A fájlok mérete legfeljebb 20 MB lehet", "classificationUnreadable": "Nem sikerült beolvasni ezt a fájlt", - "announceUploaded": "Csatolmány feltöltve" + "announceUploaded": "Csatolmány feltöltve", + "cantUpload": "Ezt a fájlt nem lehet feltölteni.", + "networkError": "Hálózati hiba", + "uploadFailed": "A feltöltés nem sikerült", + "failedToUploadFile": "Nem sikerült feltölteni a fájlt: {{reason}}", + "nothingToPaste": "Nincs mit beilleszteni" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Csillogás", "strongArm": "Erős kar", "talisman": "Talizmán" - } + }, + "remoteSpawnFilesNotSupported": "Ez a példány nem fogadhat fájlokat." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Nincs döntés", "noResult": "Nincs eredmény" }, - "eyebrow": "Kód-ellenőrző" + "eyebrow": "Kód-ellenőrző", + "updateFailed": "Nem sikerült frissíteni az ellenőrzőt", + "configSaveFailed": "Nem sikerült menteni az ellenőrzési beállításokat" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Meglévő kijavítások sorba állítva", "analysisComplete": "Az elemzés befejeződött", "syncComplete": "A szinkronizálás befejeződött" + }, + "mutations": { + "serviceNotConfiguredResubmit": "A biztonsági szolgáltatás nincs konfigurálva. Az újraküldés addig nem sikerülhet, amíg ez meg nincs javítva.", + "syncMayNotHaveCompleted": "Lehet, hogy egy szinkronizálás nem fejeződött be. Az egyeztetéshez próbálja újra, vagy hagyja figyelmen kívül.", + "syncInProgress": "Egy biztonsági szinkronizálás már folyamatban van. Kérjük, próbálja újra.", + "dismissalInProgress": "Ez az elutasítás már folyamatban van. Kérjük, próbálja újra.", + "couldNotReadPendingSyncs": "Nem sikerült beolvasni a függőben lévő szinkronizálásokat. Próbálja újra." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Ez az eszköz nem tud offline átírni. A felvételedet a(z) {{provider}} kapja meg szöveggé alakításhoz. A Kilo nem tárolja a hangot.", "allow": "Engedélyezés", "start": "Hangbevitel indítása", - "stop": "Hangbevitel leállítása" + "stop": "Hangbevitel leállítása", + "restricted": "A hangbevitel korlátozott ezen az eszközön.", + "micRequired": "A hangbevitelhez mikrofonhozzáférés szükséges.", + "micOff": "A mikrofonhozzáférés ki van kapcsolva. A hangbevitel használatához engedélyezze a Beállításokban.", + "micOffTitle": "A mikrofonhozzáférés ki van kapcsolva", + "noSpeech": "Nem észleltünk beszédet. A mikrofon megérintésével próbálja újra.", + "needsConnection": "A hangbevitelhez jelenleg kapcsolat szükséges. Próbálja újra.", + "busy": "A hangbevitel foglalt. Próbálja újra.", + "stopped": "A hangbevitel leállt. A mikrofon megérintésével próbálja újra.", + "unavailableDevice": "A hangbevitel nem érhető el ezen az eszközön.", + "unavailableLanguage": "A hangbevitel nem érhető el az eszköz nyelvéhez." }, "share": { "title": "Megosztás a Kilo-val", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Ez a Kilo Pass a weben van kezelve.", "legalDisclosure": "A Kilo Pass automatikusan megújuló havi előfizetés. A fizetés az Apple ID-hoz kerül felszámításra a vásárlás megerősítésekor. Az előfizetés minden hónapban automatikusan megújul a megjelenített áron, hacsak nem mondja le legalább 24 órával az aktuális időszak vége előtt. Kezelje vagy mondja le bármikor az App Store fiókbeállításaiban.", "legalPrivacyPolicy": "Adatvédelmi irányelvek", - "legalTermsOfUse": "Felhasználási feltételek (EULA)" + "legalTermsOfUse": "Felhasználási feltételek (EULA)", + "purchaseNotLinked": "Ez az App Store-vásárlás nincs hozzárendelve a Kilo-fiókjához. Győződjön meg róla, hogy azzal az Apple ID-val van bejelentkezve, amellyel a vásárlás történt, majd próbálja újra.", + "purchaseDifferentAccount": "Ez az App Store-vásárlás nincs hozzárendelve a Kilo-fiókjához. Jelentkezzen be a vásárláshoz használt Apple-fiókkal, majd próbálja újra.", + "restoreFailed": "Nem sikerült visszaállítani a vásárlásokat. Próbálja újra.", + "purchaseFailed": "Nem sikerült befejezni a vásárlást.", + "purchaseStartFailed": "Nem sikerült elindítani az App Store-vásárlást." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Nyitva", "statusPaid": "Kifizetve", "statusVoid": "Érvénytelen", - "title": "Számlák" + "title": "Számlák", + "downloadFailed": "Nem sikerült letölteni a számlát. Ellenőrizze a kapcsolatot, és próbálja újra.", + "sharingUnavailable": "A megosztás nem érhető el ezen az eszközön." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "A bejelentkezés nem sikerült. Kérjük, próbálja újra.", "networkError": "Hálózati hiba. Kérjük, próbálja újra.", "accessDeniedByUser": "A hozzáférést a felhasználó megtagadta", - "codeExpired": "A kód lejárt" + "codeExpired": "A kód lejárt", + "tooManySignInAttempts": "Túl sok bejelentkezési kísérlet. Kérjük, várjon, és próbálja újra." }, "models": { "dataCollected": "Gyűjtött adatok", diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index 8ca95dff95..ab852cb05a 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -24,7 +24,10 @@ "required": "պարտադիր", "error": "սխալ: {{error}}", "back": "Հետ", - "somethingWentWrong": "Ինչ-որ բան սխալ գնաց" + "somethingWentWrong": "Ինչ-որ բան սխալ գնաց", + "couldNotOpen": "Չհաջողվեց բացել {{label}}", + "link": "հղում", + "takingLonger": "Սա ավելի երկար է տևում, քան սպասվում էր: Կարող եք փակել սա և նորից ստուգել:" }, "language": { "title": "Լեզու", @@ -576,6 +579,12 @@ "commentPosted": "Մեկնաբանությունը տեղադրված է", "reviewSubmitted": "Վերանայումն ուղարկված է", "autoMergeEnabled": "Ավտո-միավորումը միացված է" + }, + "mutationError": { + "commentNotPosted": "Այս մեկնաբանությունը հնարավոր չէ տեղադրել: Ընտրված տողը կարող է փոխված լինել, կամ PR-ը թարմացված լինել:", + "reviewNotSubmitted": "Այս վերանայումը հնարավոր չէ ուղարկել ներկայիս տեսքով: PR-ը կարող է փոխված լինել, կամ դուք չեք կարող վերանայել ձեր սեփական pull request-ը:", + "couldNotPostComment": "Չհաջողվեց տեղադրել մեկնաբանությունը:", + "couldNotSubmitReview": "Չհաջողվեց ուղարկել վերանայումը: Ստուգեք ձեր կապը և կրկին փորձեք:" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Ֆայլը դատարկ է", "classificationTooLarge": "Ֆայլերը պետք է լինեն 20 MB կամ ավելի փոքր", "classificationUnreadable": "Չհաջողվեց կարդալ այս ֆայլը", - "announceUploaded": "Կցորդը վերբեռնված է" + "announceUploaded": "Կցորդը վերբեռնված է", + "cantUpload": "Այս ֆայլը հնարավոր չէ վերբեռնել:", + "networkError": "Ցանցի սխալ", + "uploadFailed": "Վերբեռնումը ձախողվեց", + "failedToUploadFile": "Չհաջողվեց վերբեռնել ֆայլը: {{reason}}", + "nothingToPaste": "Կպցնելու բան չկա" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Կայծիկներ", "strongArm": "Ուժեղ թև", "talisman": "Թալիսման" - } + }, + "remoteSpawnFilesNotSupported": "Այս մատյանը չի կարող ընդունել ֆայլեր:" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Որոշում չկա", "noResult": "Արդյունք չկա" }, - "eyebrow": "Կոդի ստուգիչ" + "eyebrow": "Կոդի ստուգիչ", + "updateFailed": "Չհաջողվեց թարմացնել գրախոսին", + "configSaveFailed": "Չհաջողվեց պահպանել վերանայման կարգավորումները" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Առկա շտկումները հերթագրված են", "analysisComplete": "Վերլուծությունն ավարտված է", "syncComplete": "Համաժամեցումն ավարտված է" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Անվտանգության ծառայությունը կարգավորված չէ: Կրկին ուղարկումը չի կարող հաջողվել, քանի դեռ սա չի շտկվել:", + "syncMayNotHaveCompleted": "Հնարավոր է՝ համաժամացումն ավարտված չէ: Կրկին փորձեք՝ այն համադրելու համար, կամ մերժեք:", + "syncInProgress": "Անվտանգության համաժամացումն արդեն ընթացքի մեջ է: Խնդրում ենք կրկին փորձել:", + "dismissalInProgress": "Այս մերժումն արդեն ընթացքի մեջ է: Խնդրում ենք կրկին փորձել:", + "couldNotReadPendingSyncs": "Չհաջողվեց կարդալ սպասվող համաժամացումները: Կրկին փորձեք:" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Այս սարքը չի կարող արտագրել օֆլայն: Ձեր ձայնագրությունը ուղարկվում է {{provider}}՝ տեքստի վերածելու համար: Kilo-ն չի պահպանում ձայնագրությունը:", "allow": "Թույլատրել", "start": "Սկսել ձայնային մուտքագրում", - "stop": "Դադարեցնել ձայնային մուտքագրում" + "stop": "Դադարեցնել ձայնային մուտքագրում", + "restricted": "Ձայնային մուտքագրումը սահմանափակված է այս սարքում:", + "micRequired": "Ձայնային մուտքագրման համար անհրաժեշտ է խոսափողի հասանելիություն:", + "micOff": "Խոսափողի հասանելիությունն անջատված է: Միացրեք այն Կարգավորումներում՝ ձայնային մուտքագրումն օգտագործելու համար:", + "micOffTitle": "Խոսափողի հասանելիությունն անջատված է", + "noSpeech": "Խոսք չի հայտնաբերվել: Հպեք խոսափողին՝ կրկին փորձելու համար:", + "needsConnection": "Ձայնային մուտքագրումը հենց հիմա կապի կարիք ունի: Կրկին փորձեք:", + "busy": "Ձայնային մուտքագրումը զբաղված է: Կրկին փորձեք:", + "stopped": "Ձայնային մուտքագրումը դադարեցված է: Հպեք խոսափողին՝ կրկին փորձելու համար:", + "unavailableDevice": "Ձայնային մուտքագրումը հասանելի չէ այս սարքում:", + "unavailableLanguage": "Ձայնային մուտքագրումը հասանելի չէ այս սարքի լեզվի համար:" }, "share": { "title": "Տարածել Kilo-ում", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Այս Kilo Pass-ը կառավարվում է կայքում:", "legalDisclosure": "Kilo Pass-ը ավտոմատ թարմացվող ամսական բաժանորդագրություն է: Վճարումը գանձվում է ձեր Apple ID-ից գնումը հաստատելիս: Բաժանորդագրությունը թարմացվում է ամեն ամիս նշված գնով, եթե չեղարկեք ընթացիկ ժամանակաշրջանի ավարտից առնվազն 24 ժամ առաջ: Կառավարեք կամ չեղարկեք ցանկացած պահի ձեր App Store հաշվի կարգավորումներում:", "legalPrivacyPolicy": "Գաղտնիության քաղաքականություն", - "legalTermsOfUse": "Օգտագործման պայմաններ (EULA)" + "legalTermsOfUse": "Օգտագործման պայմաններ (EULA)", + "purchaseNotLinked": "Այս App Store գնումը կապված չէ ձեր Kilo հաշվի հետ: Համոզվեք, որ մուտք եք գործել այն Apple ID-ով, որով կատարվել է գնումը, ապա կրկին փորձեք:", + "purchaseDifferentAccount": "Այս App Store գնումը կապված չէ ձեր Kilo հաշվի հետ: Մուտք գործեք գնման համար օգտագործված Apple Account-ով, ապա կրկին փորձեք:", + "restoreFailed": "Չհաջողվեց վերականգնել գնումները: Կրկին փորձեք:", + "purchaseFailed": "Չհաջողվեց ավարտել գնումը:", + "purchaseStartFailed": "Չհաջողվեց սկսել App Store գնումը:" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Բաց", "statusPaid": "Վճարված", "statusVoid": "Անվավեր", - "title": "Հաշիվ-ապրանքագրեր" + "title": "Հաշիվ-ապրանքագրեր", + "downloadFailed": "Չհաջողվեց ներբեռնել հաշիվ-ապրանքագիրը: Ստուգեք ձեր կապը և կրկին փորձեք:", + "sharingUnavailable": "Կիսումը հասանելի չէ այս սարքում:" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Մուտքը ձախողվեց: Խնդրում ենք կրկին փորձել:", "networkError": "Ցանցի սխալ: Խնդրում ենք կրկին փորձել:", "accessDeniedByUser": "Մուտքը մերժվել է օգտատիրոջ կողմից", - "codeExpired": "Կոդը ժամկետանց է" + "codeExpired": "Կոդը ժամկետանց է", + "tooManySignInAttempts": "Չափազանց շատ մուտք գործելու փորձեր: Խնդրում ենք սպասել և կրկին փորձել:" }, "models": { "dataCollected": "Հավաքագրված տվյալներ", diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index 37b299f8a8..867210dbfc 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -24,7 +24,10 @@ "notNow": "Nanti saja", "continue": "Lanjutkan", "back": "Kembali", - "somethingWentWrong": "Terjadi kesalahan" + "somethingWentWrong": "Terjadi kesalahan", + "couldNotOpen": "Tidak dapat membuka {{label}}", + "link": "tautan", + "takingLonger": "Ini memakan waktu lebih lama dari yang diperkirakan. Anda dapat menutupnya dan memeriksa kembali." }, "language": { "title": "Bahasa", @@ -283,7 +286,12 @@ "classificationEmpty": "File kosong", "classificationTooLarge": "File harus berukuran 20 MB atau lebih kecil", "classificationUnreadable": "Tidak dapat membaca file ini", - "announceUploaded": "Lampiran diunggah" + "announceUploaded": "Lampiran diunggah", + "cantUpload": "File ini tidak dapat diunggah.", + "networkError": "Kesalahan jaringan", + "uploadFailed": "Unggahan gagal", + "failedToUploadFile": "Gagal mengunggah file: {{reason}}", + "nothingToPaste": "Tidak ada yang bisa ditempel" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -741,7 +749,8 @@ "sparkles": "Kilauan", "strongArm": "Lengan kuat", "talisman": "Jimat" - } + }, + "remoteSpawnFilesNotSupported": "Instans ini tidak dapat menerima file." }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "Memori tinjauan", "reviewStyle": "Gaya tinjauan", "set": "Atur" - } + }, + "updateFailed": "Gagal memperbarui peninjau", + "configSaveFailed": "Gagal menyimpan konfigurasi tinjauan" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "Remediasi yang ada diantrekan", "analysisComplete": "Analisis selesai", "syncComplete": "Sinkronisasi selesai" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Layanan keamanan tidak dikonfigurasi. Pengiriman ulang tidak akan berhasil sampai diperbaiki.", + "syncMayNotHaveCompleted": "Sinkronisasi mungkin belum selesai. Coba lagi untuk mendamaikannya, atau buang.", + "syncInProgress": "Sinkronisasi keamanan sedang berlangsung. Silakan coba lagi.", + "dismissalInProgress": "Pengabaian ini sedang berlangsung. Silakan coba lagi.", + "couldNotReadPendingSyncs": "Tidak dapat membaca sinkronisasi yang tertunda. Coba lagi." } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "Ucapan diproses secara online", "staysOff": "Ucapan tetap nonaktif hingga Anda mengizinkan transkripsi online.", "start": "Mulai masukan suara", - "stop": "Hentikan masukan suara" + "stop": "Hentikan masukan suara", + "restricted": "Masukan suara dibatasi di perangkat ini.", + "micRequired": "Akses mikrofon diperlukan untuk masukan suara.", + "micOff": "Akses mikrofon nonaktif. Aktifkan di Pengaturan untuk menggunakan masukan suara.", + "micOffTitle": "Akses mikrofon nonaktif", + "noSpeech": "Tidak ada ucapan yang terdeteksi. Ketuk mikrofon untuk mencoba lagi.", + "needsConnection": "Masukan suara memerlukan koneksi saat ini. Coba lagi.", + "busy": "Masukan suara sedang sibuk. Coba lagi.", + "stopped": "Masukan suara berhenti. Ketuk mikrofon untuk mencoba lagi.", + "unavailableDevice": "Masukan suara tidak tersedia di perangkat ini.", + "unavailableLanguage": "Masukan suara tidak tersedia untuk bahasa perangkat ini." }, "share": { "title": "Bagikan ke Kilo", @@ -2118,7 +2146,12 @@ "webManagementDescription": "Kilo Pass ini dikelola di web.", "legalDisclosure": "Kilo Pass adalah langganan bulanan yang dapat diperbarui otomatis. Pembayaran dibebankan ke Apple ID Anda saat konfirmasi pembelian. Langganan diperbarui otomatis setiap bulan dengan harga yang ditampilkan kecuali dibatalkan minimal 24 jam sebelum akhir periode berjalan. Kelola atau batalkan kapan saja di pengaturan akun App Store Anda.", "legalPrivacyPolicy": "Kebijakan Privasi", - "legalTermsOfUse": "Ketentuan Penggunaan (EULA)" + "legalTermsOfUse": "Ketentuan Penggunaan (EULA)", + "purchaseNotLinked": "Pembelian App Store ini tidak tertaut ke akun Kilo Anda. Pastikan Anda masuk dengan Apple ID yang melakukan pembelian, lalu coba lagi.", + "purchaseDifferentAccount": "Pembelian App Store ini tidak tertaut ke akun Kilo Anda. Masuk dengan Akun Apple yang digunakan untuk pembelian, lalu coba lagi.", + "restoreFailed": "Gagal memulihkan pembelian. Coba lagi.", + "purchaseFailed": "Gagal menyelesaikan pembelian.", + "purchaseStartFailed": "Gagal memulai pembelian App Store." }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "Komentar terkirim", "reviewSubmitted": "Tinjauan terkirim", "autoMergeEnabled": "Gabung otomatis diaktifkan" + }, + "mutationError": { + "commentNotPosted": "Komentar ini tidak dapat dikirim. Baris yang dipilih mungkin telah berubah, atau PR mungkin telah diperbarui.", + "reviewNotSubmitted": "Tinjauan ini tidak dapat dikirim apa adanya. PR mungkin telah berubah, atau Anda tidak dapat meninjau pull request Anda sendiri.", + "couldNotPostComment": "Tidak dapat mengirim komentar.", + "couldNotSubmitReview": "Tidak dapat mengirim tinjauan. Periksa koneksi Anda dan coba lagi." } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "Faktur", "statusPaid": "Lunas", "statusOpen": "Terbuka", - "statusVoid": "Batal" + "statusVoid": "Batal", + "downloadFailed": "Tidak dapat mengunduh faktur. Periksa koneksi Anda dan coba lagi.", + "sharingUnavailable": "Berbagi tidak tersedia di perangkat ini." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Gagal masuk. Silakan coba lagi.", "networkError": "Kesalahan jaringan. Silakan coba lagi.", "accessDeniedByUser": "Akses ditolak oleh pengguna", - "codeExpired": "Kode kedaluwarsa" + "codeExpired": "Kode kedaluwarsa", + "tooManySignInAttempts": "Terlalu banyak upaya masuk. Silakan tunggu dan coba lagi." }, "models": { "dataCollected": "Data yang dikumpulkan", diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index 8e9f1d4cac..105f5f92f8 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -24,7 +24,10 @@ "required": "achọrọ", "error": "njehie: {{error}}", "back": "Azu", - "somethingWentWrong": "Ihe mere adịghị mma" + "somethingWentWrong": "Ihe mere adịghị mma", + "couldNotOpen": "Enweghị ike imepe {{label}}", + "link": "njikọ", + "takingLonger": "Nke a na-ewe ogologo oge karịa ka a tụrụ anya. Ị nwere ike mechie ya ma lelee ọzọ." }, "language": { "title": "Asụsụ", @@ -576,6 +579,12 @@ "commentPosted": "Biputere nkọwa", "reviewSubmitted": "Nyefere nyocha", "autoMergeEnabled": "Akwadoro njikọta akpaghị aka" + }, + "mutationError": { + "commentNotPosted": "Enweghị ike ibipụta nkọwa a. Ahịrị ahọpụtara nwere ike ịgbanwela, ma ọ bụ PR nwere ike ịbụ na emelitere ya.", + "reviewNotSubmitted": "Enweghị ike ịnyefe nyocha a dịka ọ dị. PR nwere ike ịgbanwela, ma ọ bụ ị nweghị ike ịnyocha arịrịọ dọrọ nke gị.", + "couldNotPostComment": "Enweghị ike ibipụta nkọwa.", + "couldNotSubmitReview": "Enweghị ike ịnyefe nyocha. Lelee njikọ gị ma nwaa ọzọ." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Faịlụ tọgbọrọ chakoo", "classificationTooLarge": "Faịlụ ga-abụ 20 MB ma ọ bụ obere", "classificationUnreadable": "Enweghị ike ịgụ faịlụ a", - "announceUploaded": "Ebugola ihe jikọtara" + "announceUploaded": "Ebugola ihe jikọtara", + "cantUpload": "Enweghị ike ibutu faịlụ a.", + "networkError": "Njehie netwọk", + "uploadFailed": "Ibugote dara", + "failedToUploadFile": "Enweghị ike ibutu faịlụ: {{reason}}", + "nothingToPaste": "Ọ dịghị ihe a ga-amado" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Ihe na-egbuke egbuke", "strongArm": "Ogwe aka siri ike", "talisman": "Ihe nsọ" - } + }, + "remoteSpawnFilesNotSupported": "Ihe ọmụmụ a enweghị ike ịnata faịlụ." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Enweghị mkpebi", "noResult": "Enweghị nsonaazụ" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Emeliteghị onye nyocha", + "configSaveFailed": "Echekwaghị nhazi nyocha" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Ndozi dị adị kwụ n'ahịrị", "analysisComplete": "Nyocha gwụchara", "syncComplete": "Nsomi gwụchara" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Emeghị nhazi ọrụ nchebe. Nzigharị enweghị ike ịga nke ọma ruo mgbe edoziri nke a.", + "syncMayNotHaveCompleted": "Nsomi nwere ike ịbụ na emechabeghị. Nwaa ọzọ iji mezie ya, ma ọ bụ tụfuo ya.", + "syncInProgress": "Nsomi nchebe na-aga n'ihu ugbu a. Biko nwaa ọzọ.", + "dismissalInProgress": "Ịmechi a na-aga n'ihu ugbu a. Biko nwaa ọzọ.", + "couldNotReadPendingSyncs": "Enweghị ike ịgụ nsomi ndị na-echere. Nwaa ọzọ." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Ngwaọrụ a enweghị ike idegharị n'ọfụma. A na-eziga ndekọ gị na {{provider}} ka ọ gbanwee ya ka ọ bụrụ ederede. Kilo anaghị echekwa ụda ahụ.", "allow": "Kwe", "start": "Malite ntinye olu", - "stop": "Kwụsị ntinye olu" + "stop": "Kwụsị ntinye olu", + "restricted": "A na-amachi ntinye olu na ngwaọrụ a.", + "micRequired": "Achọrọ ohere igwe okwu maka ntinye olu.", + "micOff": "Ohere igwe okwu apụwo. Gbanye ya na Ntọala iji jiri ntinye olu.", + "micOffTitle": "Ohere igwe okwu apụwo", + "noSpeech": "A hụghị okwu. Pịa igwe okwu ka ị nwaa ọzọ.", + "needsConnection": "Ntinye olu chọrọ njikọ ugbu a. Nwaa ọzọ.", + "busy": "Ntinye olu na-arụ ọrụ. Nwaa ọzọ.", + "stopped": "Ntinye olu kwụsịrị. Pịa igwe okwu ka ị nwaa ọzọ.", + "unavailableDevice": "Ntinye olu adịghị na ngwaọrụ a.", + "unavailableLanguage": "Ntinye olu adịghị maka asụsụ ngwaọrụ a." }, "share": { "title": "Kekọrịta na Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "A Kilo Pass a na-ejikwa na webụ.", "legalDisclosure": "Kilo Pass bụ ndenye aha kwa ọnwa nke na-emegharị onwe ya. A na-ana ụgwọ na Apple ID gị mgbe ị kwadoro ịzụta. Ndenye aha na-emegharị kwa ọnwa na ọnụahịa egosiri belụsọ na ị kagburu ya ọ dịkarịa ala awa 24 tupu njedebe nke oge ugbu a. Jikwaa ma ọ bụ kagbuo ya mgbe ọ bụla na ntọala akaụntụ App Store gị.", "legalPrivacyPolicy": "Amụma Nzuzo", - "legalTermsOfUse": "Ụkpụrụ Ojiji (EULA)" + "legalTermsOfUse": "Ụkpụrụ Ojiji (EULA)", + "purchaseNotLinked": "Ịzụrụ App Store a ejikọghị na akaụntụ Kilo gị. Gbaa mbọ hụ na ị banyere na Apple ID nke zụrụ ya, wee nwaa ọzọ.", + "purchaseDifferentAccount": "Ịzụrụ App Store a ejikọghị na akaụntụ Kilo gị. Banye na Akaụntụ Apple e ji zụọ ya, wee nwaa ọzọ.", + "restoreFailed": "Ịweghachite azụrụ dara. Nwaa ọzọ.", + "purchaseFailed": "Ịmecha azụrụ dara.", + "purchaseStartFailed": "Ịmalite azụrụ App Store dara." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Mepee", "statusPaid": "Akwụrụ", "statusVoid": "Efefuo", - "title": "Invoices" + "title": "Invoices", + "downloadFailed": "Enweghị ike ibudata akwụkwọ ọnụahịa. Lelee njikọ gị ma nwaa ọzọ.", + "sharingUnavailable": "Nkesa adịghị na ngwaọrụ a." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Nbanye dara. Biko nwaa ọzọ.", "networkError": "Njehie netwọk. Biko nwaa ọzọ.", "accessDeniedByUser": "Onye ọrụ jụrụ ohere", - "codeExpired": "Koodu emebiwo" + "codeExpired": "Koodu emebiwo", + "tooManySignInAttempts": "Mgbalị nbanye karịrị akarị. Biko chere ma nwaa ọzọ." }, "models": { "dataCollected": "Data anakọtara", diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index e211b9f7ef..f1f87a5f03 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -24,7 +24,10 @@ "required": "áskilið", "error": "villa: {{error}}", "back": "Til baka", - "somethingWentWrong": "Eitthvað fór úrskeiðis" + "somethingWentWrong": "Eitthvað fór úrskeiðis", + "couldNotOpen": "Gat ekki opnað {{label}}", + "link": "tengill", + "takingLonger": "Þetta tekur lengri tíma en gert var ráð fyrir. Þú getur lokað þessu og athugað aftur." }, "language": { "title": "Tungumál", @@ -576,6 +579,12 @@ "commentPosted": "Athugasemd birt", "reviewSubmitted": "Úttekt send", "autoMergeEnabled": "Sjálfvirk sameining virkjuð" + }, + "mutationError": { + "commentNotPosted": "Ekki er hægt að birta þessa athugasemd. Valda línan kann að hafa breyst, eða PR-inn kann að hafa verið uppfærður.", + "reviewNotSubmitted": "Ekki er hægt að senda þessa úttekt eins og hún er. PR-inn kann að hafa breyst, eða þú getur ekki yfirfarið þinn eigin pull request.", + "couldNotPostComment": "Gat ekki birt athugasemd.", + "couldNotSubmitReview": "Gat ekki sent úttekt. Athugaðu tenginguna og reyndu aftur." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Skráin er tóm", "classificationTooLarge": "Skrár verða að vera 20 MB eða minni", "classificationUnreadable": "Gat ekki lesið þessa skrá", - "announceUploaded": "Viðhengi hlaðið upp" + "announceUploaded": "Viðhengi hlaðið upp", + "cantUpload": "Ekki er hægt að hlaða þessari skrá upp.", + "networkError": "Netvilla", + "uploadFailed": "Upphleðsla mistókst", + "failedToUploadFile": "Ekki tókst að hlaða upp skrá: {{reason}}", + "nothingToPaste": "Ekkert til að líma" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Glitra", "strongArm": "Sterkur handleggur", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Þetta tilvik getur ekki tekið við skrám." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Engin ákvörðun", "noResult": "Engin niðurstaða" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Mistókst að uppfæra rýnir", + "configSaveFailed": "Mistókst að vista úttektarstillingar" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Núverandi úrbætur settar í biðröð", "analysisComplete": "Greining lokið", "syncComplete": "Samstilling lokið" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Öryggisþjónusta er ekki stillt. Endursending getur ekki tekist fyrr en þetta er lagað.", + "syncMayNotHaveCompleted": "Samstilling kann að ekki hafa klárast. Endurtaktu til að sætta hana, eða fargaðu.", + "syncInProgress": "Öryggissamstilling er þegar í gangi. Reyndu aftur.", + "dismissalInProgress": "Þessi frávísun er þegar í gangi. Reyndu aftur.", + "couldNotReadPendingSyncs": "Gat ekki lesið biðsamstillingar. Reyndu aftur." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Þetta tæki getur ekki umritað án nettengingar. Upptakan þín er send til {{provider}} til að breyta henni í texta. Kilo geymir ekki hljóðið.", "allow": "Leyfa", "start": "Byrja raddinnslátt", - "stop": "Stöðva raddinnslátt" + "stop": "Stöðva raddinnslátt", + "restricted": "Raddinnsláttur er takmarkaður á þessu tæki.", + "micRequired": "Aðgangur að hljóðnema er nauðsynlegur fyrir raddinnslátt.", + "micOff": "Aðgangur að hljóðnema er óvirkur. Virkjaðu hann í Stillingum til að nota raddinnslátt.", + "micOffTitle": "Aðgangur að hljóðnema er óvirkur", + "noSpeech": "Engin rödd greindist. Bankaðu á hljóðnemann til að reyna aftur.", + "needsConnection": "Raddinnsláttur þarfnast nettengingar núna. Reyndu aftur.", + "busy": "Raddinnsláttur er upptekinn. Reyndu aftur.", + "stopped": "Raddinnsláttur stöðvaðist. Bankaðu á hljóðnemann til að reyna aftur.", + "unavailableDevice": "Raddinnsláttur er ekki í boði á þessu tæki.", + "unavailableLanguage": "Raddinnsláttur er ekki í boði fyrir tækjatungumálið." }, "share": { "title": "Deila í Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Þetta Kilo Pass er meðhöndlað á vefnum.", "legalDisclosure": "Kilo Pass er sjálfvirkt endurnýjanleg mánaðaráskrift. Greiðsla er innheimt á Apple ID þinn við staðfestingu kaupa. Áskriftir endurnýjast sjálfkrafa mánaðarlega á sýnandi verði nema sagt sé upp að minnsta kosti 24 klukkustundum fyrir lok gildistímabilsins. Hafa umsjón með eða hætta við hvenær sem er í stillingum App Store reikningsins þíns.", "legalPrivacyPolicy": "Persónuverndarstefna", - "legalTermsOfUse": "Notendaskilmálar (EULA)" + "legalTermsOfUse": "Notendaskilmálar (EULA)", + "purchaseNotLinked": "Þessi App Store-kaup eru ekki tengd Kilo-reikningnum þínum. Gakktu úr skugga um að þú sért skráð(ur) inn á Apple ID-ið sem gerði kaupin, og reyndu svo aftur.", + "purchaseDifferentAccount": "Þessi App Store-kaup eru ekki tengd Kilo-reikningnum þínum. Skráðu þig inn á Apple-reikninginn sem notaður var við kaupin, og reyndu svo aftur.", + "restoreFailed": "Mistókst að endurheimta kaup. Reyndu aftur.", + "purchaseFailed": "Mistókst að ljúka kaupum.", + "purchaseStartFailed": "Mistókst að hefja App Store-kaup." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Opin", "statusPaid": "Greitt", "statusVoid": "Ógilt", - "title": "Reikningar" + "title": "Reikningar", + "downloadFailed": "Gat ekki hlaðið niður reikningi. Athugaðu tenginguna og reyndu aftur.", + "sharingUnavailable": "Deiling er ekki tiltæk á þessu tæki." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Innskráning mistókst. Reyndu aftur.", "networkError": "Netvilla. Reyndu aftur.", "accessDeniedByUser": "Notandi hafnaði aðgangi", - "codeExpired": "Kóði er útrunninn" + "codeExpired": "Kóði er útrunninn", + "tooManySignInAttempts": "Of margar innskráningartilraunir. Bíddu og reyndu aftur." }, "models": { "dataCollected": "Upplýsingar safnaðar", diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index c3b6b680ff..827c0d3b25 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -24,7 +24,10 @@ "notNow": "Non ora", "continue": "Continua", "back": "Indietro", - "somethingWentWrong": "Qualcosa è andato storto" + "somethingWentWrong": "Qualcosa è andato storto", + "couldNotOpen": "Impossibile aprire {{label}}", + "link": "link", + "takingLonger": "Questa operazione sta richiedendo più tempo del previsto. Puoi chiudere e ricontrollare." }, "language": { "title": "Lingua", @@ -269,7 +272,12 @@ "classificationEmpty": "Il file è vuoto", "classificationTooLarge": "I file devono essere di 20 MB o meno", "classificationUnreadable": "Impossibile leggere questo file", - "announceUploaded": "Allegato caricato" + "announceUploaded": "Allegato caricato", + "cantUpload": "Questo file non può essere caricato.", + "networkError": "Errore di rete", + "uploadFailed": "Caricamento non riuscito", + "failedToUploadFile": "Caricamento del file non riuscito: {{reason}}", + "nothingToPaste": "Niente da incollare" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -729,7 +737,8 @@ "sparkles": "Scintille", "strongArm": "Braccio forte", "talisman": "Talismano" - } + }, + "remoteSpawnFilesNotSupported": "Questa istanza non può ricevere file." }, "codeReviewer": { "focusAreas": { @@ -916,7 +925,9 @@ "reviewMemory": "Memoria di revisione", "reviewStyle": "Stile di revisione", "set": "Impostato" - } + }, + "updateFailed": "Aggiornamento del revisore non riuscito", + "configSaveFailed": "Salvataggio della configurazione di revisione non riuscito" }, "securityAgent": { "filter": { @@ -1340,6 +1351,13 @@ "remediationsQueued": "Remediation esistenti in coda", "analysisComplete": "Analisi completata", "syncComplete": "Sincronizzazione completata" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Il servizio di sicurezza non è configurato. Il reinvio non può riuscire finché non viene risolto.", + "syncMayNotHaveCompleted": "Una sincronizzazione potrebbe non essere stata completata. Riprova per riconciliarla oppure scarta.", + "syncInProgress": "Una sincronizzazione di sicurezza è già in corso. Riprova.", + "dismissalInProgress": "Questo ignoramento è già in corso. Riprova.", + "couldNotReadPendingSyncs": "Impossibile leggere le sincronizzazioni in sospeso. Riprova." } }, "agents": { @@ -2051,7 +2069,17 @@ "onlineTitle": "La voce viene elaborata online", "staysOff": "La voce resta disattivata finché non consenti la trascrizione online.", "start": "Avvia l'input vocale", - "stop": "Interrompi l'input vocale" + "stop": "Interrompi l'input vocale", + "restricted": "L'input vocale è limitato su questo dispositivo.", + "micRequired": "Per l'input vocale è necessario l'accesso al microfono.", + "micOff": "L'accesso al microfono è disattivato. Attivalo in Impostazioni per usare l'input vocale.", + "micOffTitle": "L'accesso al microfono è disattivato", + "noSpeech": "Nessun discorso rilevato. Tocca il microfono per riprovare.", + "needsConnection": "L'input vocale richiede una connessione in questo momento. Riprova.", + "busy": "L'input vocale è occupato. Riprova.", + "stopped": "L'input vocale si è interrotto. Tocca il microfono per riprovare.", + "unavailableDevice": "L'input vocale non è disponibile su questo dispositivo.", + "unavailableLanguage": "L'input vocale non è disponibile per la lingua del dispositivo." }, "share": { "title": "Condividi su Kilo", @@ -2129,7 +2157,12 @@ "webManagementDescription": "Questo Kilo Pass è gestito sul web.", "legalDisclosure": "Kilo Pass è un abbonamento mensile a rinnovo automatico. Il pagamento viene addebitato sul tuo Apple ID alla conferma dell'acquisto. Gli abbonamenti si rinnovano automaticamente ogni mese al prezzo mostrato, a meno che non vengano annullati almeno 24 ore prima della fine del periodo corrente. Gestisci o annulla in qualsiasi momento nelle impostazioni del tuo account App Store.", "legalPrivacyPolicy": "Informativa sulla privacy", - "legalTermsOfUse": "Termini di utilizzo (EULA)" + "legalTermsOfUse": "Termini di utilizzo (EULA)", + "purchaseNotLinked": "Questo acquisto dell'App Store non è collegato al tuo account Kilo. Assicurati di aver effettuato l'accesso con l'Apple ID che ha effettuato l'acquisto, poi riprova.", + "purchaseDifferentAccount": "Questo acquisto dell'App Store non è collegato al tuo account Kilo. Accedi con l'account Apple usato per l'acquisto, poi riprova.", + "restoreFailed": "Ripristino degli acquisti non riuscito. Riprova.", + "purchaseFailed": "Impossibile completare l'acquisto.", + "purchaseStartFailed": "Impossibile avviare l'acquisto nell'App Store." }, "consent": { "kilo": "Kilo", @@ -2650,6 +2683,12 @@ "commentPosted": "Commento pubblicato", "reviewSubmitted": "Revisione inviata", "autoMergeEnabled": "Auto-merge attivato" + }, + "mutationError": { + "commentNotPosted": "Questo commento non può essere pubblicato. La riga selezionata potrebbe essere cambiata oppure la PR potrebbe essere stata aggiornata.", + "reviewNotSubmitted": "Questa revisione non può essere inviata così com'è. La PR potrebbe essere cambiata oppure non puoi revisionare la tua stessa pull request.", + "couldNotPostComment": "Impossibile pubblicare il commento.", + "couldNotSubmitReview": "Impossibile inviare la revisione. Controlla la connessione e riprova." } }, "organization": { @@ -2696,7 +2735,9 @@ "title": "Fatture", "statusPaid": "Pagata", "statusOpen": "Aperta", - "statusVoid": "Annullata" + "statusVoid": "Annullata", + "downloadFailed": "Impossibile scaricare la fattura. Controlla la connessione e riprova.", + "sharingUnavailable": "La condivisione non è disponibile su questo dispositivo." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Accesso non riuscito. Riprova.", "networkError": "Errore di rete. Riprova.", "accessDeniedByUser": "Accesso negato dall'utente", - "codeExpired": "Codice scaduto" + "codeExpired": "Codice scaduto", + "tooManySignInAttempts": "Troppi tentativi di accesso. Attendi e riprova." }, "models": { "dataCollected": "Dati raccolti", diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 6fae775bc4..7ec1b678e0 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -24,7 +24,10 @@ "notNow": "後で", "continue": "続行", "back": "戻る", - "somethingWentWrong": "問題が発生しました" + "somethingWentWrong": "問題が発生しました", + "couldNotOpen": "{{label}}を開けませんでした", + "link": "リンク", + "takingLonger": "通常より時間がかかっています。閉じて、後でもう一度確認してください。" }, "language": { "title": "言語", @@ -283,7 +286,12 @@ "classificationEmpty": "ファイルが空です", "classificationTooLarge": "ファイルは20 MB以下である必要があります", "classificationUnreadable": "このファイルを読み取れませんでした", - "announceUploaded": "添付ファイルをアップロードしました" + "announceUploaded": "添付ファイルをアップロードしました", + "cantUpload": "このファイルはアップロードできません。", + "networkError": "ネットワークエラー", + "uploadFailed": "アップロードに失敗しました", + "failedToUploadFile": "ファイルのアップロードに失敗しました: {{reason}}", + "nothingToPaste": "貼り付けるものはありません" }, "attachmentPreview": { "accessibility": "{{filename}}、{{status}}", @@ -741,7 +749,8 @@ "sparkles": "スパークル", "strongArm": "ストロングアーム", "talisman": "タリスマン" - } + }, + "remoteSpawnFilesNotSupported": "このインスタンスはファイルを受信できません。" }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "レビューメモリ", "reviewStyle": "レビュースタイル", "set": "設定" - } + }, + "updateFailed": "レビュアーを更新できませんでした", + "configSaveFailed": "レビュー設定を保存できませんでした" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "既存の修復をキューに入れました", "analysisComplete": "分析が完了しました", "syncComplete": "同期が完了しました" + }, + "mutations": { + "serviceNotConfiguredResubmit": "セキュリティサービスが設定されていません。修正されるまで再送信は成功しません。", + "syncMayNotHaveCompleted": "同期が完了していない可能性があります。再試行して調整するか、破棄してください。", + "syncInProgress": "セキュリティ同期はすでに進行中です。もう一度お試しください。", + "dismissalInProgress": "この却下はすでに進行中です。もう一度お試しください。", + "couldNotReadPendingSyncs": "保留中の同期を読み取れませんでした。もう一度お試しください。" } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "音声はオンラインで処理されます", "staysOff": "オンライン文字起こしを許可するまで、音声はオフのままです。", "start": "音声入力を開始", - "stop": "音声入力を停止" + "stop": "音声入力を停止", + "restricted": "このデバイスでは音声入力が制限されています。", + "micRequired": "音声入力にはマイクへのアクセスが必要です。", + "micOff": "マイクへのアクセスがオフです。音声入力を使うには設定で有効にしてください。", + "micOffTitle": "マイクへのアクセスがオフです", + "noSpeech": "音声が検出されませんでした。マイクをタップして、もう一度お試しください。", + "needsConnection": "音声入力には接続が必要です。もう一度お試しください。", + "busy": "音声入力は処理中です。もう一度お試しください。", + "stopped": "音声入力が停止しました。マイクをタップして、もう一度お試しください。", + "unavailableDevice": "このデバイスでは音声入力は利用できません。", + "unavailableLanguage": "このデバイスの言語では音声入力は利用できません。" }, "share": { "title": "Kiloに共有", @@ -2118,7 +2146,12 @@ "webManagementDescription": "この Kilo Pass は Web で管理されています。", "legalDisclosure": "Kilo Pass は自動更新の月額サブスクリプションです。購入の確認時に、お支払いは Apple ID に請求されます。サブスクリプションは、現在の期間終了の 24 時間前までに解約しない限り、表示された価格で毎月自動更新されます。App Store のアカウント設定でいつでも管理または解約できます。", "legalPrivacyPolicy": "プライバシーポリシー", - "legalTermsOfUse": "利用規約 (EULA)" + "legalTermsOfUse": "利用規約 (EULA)", + "purchaseNotLinked": "このApp Store購入はKiloアカウントにリンクされていません。購入に使用したApple IDでサインインしていることを確認してから、もう一度お試しください。", + "purchaseDifferentAccount": "このApp Store購入はKiloアカウントにリンクされていません。購入に使用したApple Accountにサインインして、もう一度お試しください。", + "restoreFailed": "購入の復元に失敗しました。もう一度お試しください。", + "purchaseFailed": "購入を完了できませんでした。", + "purchaseStartFailed": "App Storeでの購入を開始できませんでした。" }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "コメントを投稿しました", "reviewSubmitted": "レビューを送信しました", "autoMergeEnabled": "自動マージを有効にしました" + }, + "mutationError": { + "commentNotPosted": "このコメントは投稿できません。選択した行が変更されたか、PRが更新された可能性があります。", + "reviewNotSubmitted": "このレビューはこのままでは送信できません。PRが変更されたか、自分のプルリクエストはレビューできない可能性があります。", + "couldNotPostComment": "コメントを投稿できませんでした。", + "couldNotSubmitReview": "レビューを送信できませんでした。接続を確認して、もう一度お試しください。" } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "請求書", "statusPaid": "支払い済み", "statusOpen": "未払い", - "statusVoid": "無効" + "statusVoid": "無効", + "downloadFailed": "請求書をダウンロードできませんでした。接続を確認して、もう一度お試しください。", + "sharingUnavailable": "このデバイスでは共有は利用できません。" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "サインインに失敗しました。もう一度お試しください。", "networkError": "ネットワークエラーが発生しました。もう一度お試しください。", "accessDeniedByUser": "ユーザーによってアクセスが拒否されました", - "codeExpired": "コードの有効期限が切れました" + "codeExpired": "コードの有効期限が切れました", + "tooManySignInAttempts": "サインイン試行回数が多すぎます。しばらく待ってから、もう一度お試しください。" }, "models": { "dataCollected": "収集されるデータ", diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index 4bfecf4fe2..53dd115913 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -24,7 +24,10 @@ "required": "აუცილებელი", "error": "შეცდომა: {{error}}", "back": "უკან", - "somethingWentWrong": "რაღაც არასწორედ მოხდა" + "somethingWentWrong": "რაღაც არასწორედ მოხდა", + "couldNotOpen": "{{label}}-ის გახსნა ვერ მოხერხდა", + "link": "ბმული", + "takingLonger": "ეს მოსალოდნელზე მეტხანს გრძელდება. შეგიძლიათ დახუროთ და მოგვიანებით ისევ შეამოწმოთ." }, "language": { "title": "ენა", @@ -576,6 +579,12 @@ "commentPosted": "კომენტარი გამოქვეყნდა", "reviewSubmitted": "რეცენზია გაგზავნილია", "autoMergeEnabled": "ავტო-შერწყმა ჩართულია" + }, + "mutationError": { + "commentNotPosted": "ამ კომენტარის გამოქვეყნება შეუძლებელია. არჩეული ხაზი შესაძლოა შეცვლილია, ან PR შესაძლოა განახლებულია.", + "reviewNotSubmitted": "ამ რეცენზიის გაგზავნა ამ ფორმით შეუძლებელია. PR შესაძლოა შეცვლილია, ან ვერ ახერხებთ საკუთარი პულ-რექვესთის რეცენზიას.", + "couldNotPostComment": "კომენტარის გამოქვეყნება ვერ მოხერხდა.", + "couldNotSubmitReview": "რეცენზიის გაგზავნა ვერ მოხერხდა. შეამოწმეთ თქვენი კავშირი და სცადეთ კიდევ." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ფაილი ცარიელია", "classificationTooLarge": "ფაილები უნდა იყოს 20 MB ან უფრო მცირე", "classificationUnreadable": "ამ ფაილის წაკითხვა ვერ მოხერხდა", - "announceUploaded": "დანართი ატვირთულია" + "announceUploaded": "დანართი ატვირთულია", + "cantUpload": "ამ ფაილის ატვირთვა შეუძლებელია.", + "networkError": "ქსელის შეცდომა", + "uploadFailed": "ატვირთვა ვერ მოხერხდა", + "failedToUploadFile": "ფაილის ატვირთვა ვერ მოხერხდა: {{reason}}", + "nothingToPaste": "ჩასასმელი არაფერია" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ნაპერწკლები", "strongArm": "ძლიერი მკლავი", "talisman": "თილისმა" - } + }, + "remoteSpawnFilesNotSupported": "ამ ინსტანციას ფაილების მიღება არ შეუძლია." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "გადაწყვეტილება არ არის", "noResult": "შედეგი არ არის" }, - "eyebrow": "კოდის მიმომხილველი" + "eyebrow": "კოდის მიმომხილველი", + "updateFailed": "რეცენზენტის განახლება ვერ მოხერხდა", + "configSaveFailed": "რეცენზიის კონფიგურაციის შენახვა ვერ მოხერხდა" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "არსებული აღდგენები რიგშია", "analysisComplete": "ანალიზი დასრულებულია", "syncComplete": "სინქრონიზაცია დასრულებულია" + }, + "mutations": { + "serviceNotConfiguredResubmit": "უსაფრთხოების სერვისი არ არის კონფიგურირებული. ამის გამოსწორებამდე ხელახალი გაგზავნა წარმატებული ვერ იქნება.", + "syncMayNotHaveCompleted": "სინქრონიზაცია შესაძლოა არ დასრულებულა. გაიმეორეთ შესაჯერებლად, ან გააუქმეთ.", + "syncInProgress": "უსაფრთხოების სინქრონიზაცია უკვე მიმდინარეობს. გთხოვთ, კვლავ სცადოთ.", + "dismissalInProgress": "ეს გაუქმება უკვე მიმდინარეობს. გთხოვთ, კვლავ სცადოთ.", + "couldNotReadPendingSyncs": "მოლოდინში მყოფი სინქრონიზაციების წაკითხვა ვერ მოხერხდა. სცადეთ კიდევ." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ამ მოწყობილობას ოფლაინ ტრანსკრიფცია არ შეუძლია. თქვენი ჩანაწერი იგზავნება {{provider}}-თან ტექსტად გადასაყვანად. Kilo არ ინახავს აუდიოს.", "allow": "დაშვება", "start": "ხმოვანი შეყვანის დაწყება", - "stop": "ხმოვანი შეყვანის შეწყვეტა" + "stop": "ხმოვანი შეყვანის შეწყვეტა", + "restricted": "ამ მოწყობილობაზე ხმოვანი შეყვანა შეზღუდულია.", + "micRequired": "ხმოვანი შეყვანისთვის საჭიროა მიკროფონზე წვდომა.", + "micOff": "მიკროფონზე წვდომა გამორთულია. ჩართეთ იგი პარამეტრებში ხმოვანი შეყვანის გამოსაყენებლად.", + "micOffTitle": "მიკროფონზე წვდომა გამორთულია", + "noSpeech": "მეტყველება არ არის აღმოჩენილი. შეეხეთ მიკროფონს ხელახლა საცდელად.", + "needsConnection": "ხმოვანი შეყვანა ახლა მოითხოვს კავშირს. სცადეთ კიდევ.", + "busy": "ხმოვანი შეყვანა დაკავებულია. სცადეთ კიდევ.", + "stopped": "ხმოვანი შეყვანა შეჩერდა. შეეხეთ მიკროფონს ხელახლა საცდელად.", + "unavailableDevice": "ამ მოწყობილობაზე ხმოვანი შეყვანა მიუწვდომელია.", + "unavailableLanguage": "ხმოვანი შეყვანა მიუწვდომელია ამ მოწყობილობის ენისთვის." }, "share": { "title": "Kilo-ში გაზიარება", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ეს Kilo Pass ინტერნეტში იმართება.", "legalDisclosure": "Kilo Pass არის ავტომატურად განახლებადი ყოველთვიური გამოწერა. გადახდა ჩამოიჭრება თქვენი Apple ID-დან შეძენის დადასტურებისას. გამოწერა ავტომატურად განახლდება ყოველთვიურად მითითებულ ფასად, თუ არ გააუქმებთ მიმდინარე პერიოდის დასრულებამდე სულ მცირე 24 საათით ადრე. მართეთ ან გააუქმეთ ნებისმიერ დროს თქვენი App Store ანგარიშის პარამეტრებში.", "legalPrivacyPolicy": "კონფიდენციალურობის პოლიტიკა", - "legalTermsOfUse": "გამოყენების პირობები (EULA)" + "legalTermsOfUse": "გამოყენების პირობები (EULA)", + "purchaseNotLinked": "ეს App Store შესყიდვა არ არის დაკავშირებული თქვენს Kilo ანგარიშთან. დარწმუნდით, რომ შესული ხართ იმ Apple ID-ით, რომლითაც შესყიდვა განხორციელდა, შემდეგ კვლავ სცადეთ.", + "purchaseDifferentAccount": "ეს App Store შესყიდვა არ არის დაკავშირებული თქვენს Kilo ანგარიშთან. შედით იმ Apple Account-ით, რომელიც გამოიყენებოდა შესყიდვისთვის, შემდეგ კვლავ სცადეთ.", + "restoreFailed": "შესყიდვების აღდგენა ვერ მოხერხდა. სცადეთ კიდევ.", + "purchaseFailed": "შესყიდვის დასრულება ვერ მოხერხდა.", + "purchaseStartFailed": "App Store შესყიდვის დაწყება ვერ მოხერხდა." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ღიაა", "statusPaid": "გადახდილია", "statusVoid": "ბათილია", - "title": "ინვოისები" + "title": "ინვოისები", + "downloadFailed": "ინვოისის ჩამოტვირთვა ვერ მოხერხდა. შეამოწმეთ თქვენი კავშირი და სცადეთ კიდევ.", + "sharingUnavailable": "ამ მოწყობილობაზე გაზიარება მიუწვდომელია." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ავტორიზაცია ვერ მოხერხდა. გთხოვთ, სცადოთ ხელახლა.", "networkError": "ქსელის შეცდომა. გთხოვთ, სცადოთ ხელახლა.", "accessDeniedByUser": "წვდომა უარყოფილია მომხმარებლის მიერ", - "codeExpired": "კოდი ვადაგასულია" + "codeExpired": "კოდი ვადაგასულია", + "tooManySignInAttempts": "ავტორიზაციის მცდელობა ძალიან ბევრია. გთხოვთ, დაელოდოთ და კვლავ სცადოთ." }, "models": { "dataCollected": "შეგროვებული მონაცემები", diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index ed10ead36e..eb594aa548 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -24,7 +24,10 @@ "required": "қажет", "error": "қате: {{error}}", "back": "Артқа", - "somethingWentWrong": "Бірдеңе қате кетті" + "somethingWentWrong": "Бірдеңе қате кетті", + "couldNotOpen": "{{label}} ашу мүмкін болмады", + "link": "Сілтеме", + "takingLonger": "Бұл күтілгеннен ұзағырақ уақыт алады. Мұны жауып, кейін қайта тексеруге болады." }, "language": { "title": "Тіл", @@ -576,6 +579,12 @@ "commentPosted": "Пікір жарияланды", "reviewSubmitted": "Рецензия жіберілді", "autoMergeEnabled": "Авто-біріктіру қосылды" + }, + "mutationError": { + "commentNotPosted": "Бұл пікірді жариялау мүмкін емес. Таңдалған жол өзгерген немесе PR жаңартылған болуы мүмкін.", + "reviewNotSubmitted": "Бұл рецензияны осы күйінде жіберу мүмкін емес. PR өзгерген болуы мүмкін немесе өз pull request-іңізді рецензиялай алмайсыз.", + "couldNotPostComment": "Пікірді жариялау мүмкін болмады.", + "couldNotSubmitReview": "Рецензияны жіберу мүмкін болмады. Қосылымды тексеріп, қайта көріңіз." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Файл бос", "classificationTooLarge": "Файлдар 20 MB немесе одан аз болуы керек", "classificationUnreadable": "Бұл файлды оқу мүмкін болмады", - "announceUploaded": "Тіркеме жүктелді" + "announceUploaded": "Тіркеме жүктелді", + "cantUpload": "Бұл файлды жүктеу мүмкін емес.", + "networkError": "Желі қатесі", + "uploadFailed": "Жүктеу сәтсіз аяқталды", + "failedToUploadFile": "Файлды жүктеу сәтсіз аяқталды: {{reason}}", + "nothingToPaste": "Қоятын ештеңе жоқ" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Ұшқындар", "strongArm": "Мықты қол", "talisman": "Тұмар" - } + }, + "remoteSpawnFilesNotSupported": "Бұл инстанс файл қабылдай алмайды." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Шешім жоқ", "noResult": "Нәтиже жоқ" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Рецензентті жаңарту мүмкін болмады", + "configSaveFailed": "Рецензия конфигурациясын сақтау мүмкін болмады" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Бар түзетулер кезекке қойылды", "analysisComplete": "Талдау аяқталды", "syncComplete": "Синхрондау аяқталды" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Қауіпсіздік қызметі конфигурацияланбаған. Бұл түзетілмейінше, қайта жіберу сәтті болмайды.", + "syncMayNotHaveCompleted": "Синхрондау аяқталмаған болуы мүмкін. Оны үйлестіру үшін қайталаңыз немесе тастаңыз.", + "syncInProgress": "Қауіпсіздік синхрондауы қазірдің өзінде жүріп жатыр. Қайта көріңіз.", + "dismissalInProgress": "Бұл жою қазірдің өзінде жүріп жатыр. Қайта көріңіз.", + "couldNotReadPendingSyncs": "Күтілудегі синхрондауларды оқу мүмкін болмады. Қайта көріңіз." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Бұл құрылғы офлайн транскрипция жасай алмайды. Жазбаңыз мәтінге айналдыру үшін {{provider}}-ға жіберіледі. Kilo аудионы сақтамайды.", "allow": "Рұқсат ету", "start": "Дауыстық енгізуді бастау", - "stop": "Дауыстық енгізуді тоқтату" + "stop": "Дауыстық енгізуді тоқтату", + "restricted": "Бұл құрылғыда дауыстық енгізу шектелген.", + "micRequired": "Дауыстық енгізу үшін микрофонға қолжетімділік қажет.", + "micOff": "Микрофонға қолжетімділік өшірулі. Дауыстық енгізуді пайдалану үшін оны Параметрлерде қосыңыз.", + "micOffTitle": "Микрофонға қолжетімділік өшірулі", + "noSpeech": "Сөйлеу анықталмады. Микрофонды түртіп, қайта көріңіз.", + "needsConnection": "Дауыстық енгізу қазір қосылымды қажет етеді. Қайта көріңіз.", + "busy": "Дауыстық енгізу бос емес. Қайта көріңіз.", + "stopped": "Дауыстық енгізу тоқтатылды. Микрофонды түртіп, қайта көріңіз.", + "unavailableDevice": "Бұл құрылғыда дауыстық енгізу қолжетімсіз.", + "unavailableLanguage": "Бұл құрылғы тілі үшін дауыстық енгізу қолжетімсіз." }, "share": { "title": "Kilo-ға бөлісу", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Бұл Kilo Pass веб-сайтта басқарылады.", "legalDisclosure": "Kilo Pass — автоматты жаңартылатын айлық жазылым. Төлем сатып алуды растау кезінде Apple ID-ге есептеледі. Ағымдағы кезең аяқталмастан кемінде 24 сағат бұрын тоқтатылмаса, жазылымдар көрсетілген баға бойынша әр ай сайын автоматты түрде жаңартылады. Оны App Store тіркелгі баптауларында кез келген уақытта басқарыңыз немесе тоқтатыңыз.", "legalPrivacyPolicy": "Құпиялылық саясаты", - "legalTermsOfUse": "Пайдалану шарттары (EULA)" + "legalTermsOfUse": "Пайдалану шарттары (EULA)", + "purchaseNotLinked": "Бұл App Store сатып алуы Kilo аккаунтыңызға байланыспаған. Сатып алуды жасаған Apple ID арқылы кіргеніңізге көз жеткізіп, қайта көріңіз.", + "purchaseDifferentAccount": "Бұл App Store сатып алуы Kilo аккаунтыңызға байланыспаған. Сатып алу үшін пайдаланылған Apple Account арқылы кіріңіз де, қайта көріңіз.", + "restoreFailed": "Сатып алуларды қалпына келтіру сәтсіз аяқталды. Қайта көріңіз.", + "purchaseFailed": "Сатып алуды аяқтау мүмкін болмады.", + "purchaseStartFailed": "App Store сатып алуын бастау мүмкін болмады." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Ашық", "statusPaid": "Төленген", "statusVoid": "Жарамсыз", - "title": "Шоттар" + "title": "Шоттар", + "downloadFailed": "Шотты жүктеу мүмкін болмады. Қосылымды тексеріп, қайта көріңіз.", + "sharingUnavailable": "Бұл құрылғыда бөлісу қолжетімсіз." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Кіру сәтсіз аяқталды. Қайта көріңіз.", "networkError": "Желі қатесі. Қайта көріңіз.", "accessDeniedByUser": "Қол жеткізуді пайдаланушы қабылдамады", - "codeExpired": "Кодтың мерзімі аяқталды" + "codeExpired": "Кодтың мерзімі аяқталды", + "tooManySignInAttempts": "Кіру әрекеттері тым көп. Сәл күте тұрып, қайта көріңіз." }, "models": { "dataCollected": "Жинақталған деректер", diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index 6a4928f1e4..b940382384 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -24,7 +24,10 @@ "required": "ទាមទារ", "error": "កំហុស: {{error}}", "back": "ត្រឡប់ក្រោយ", - "somethingWentWrong": "មានអ្វីមួយខុសប្រក្រតី" + "somethingWentWrong": "មានអ្វីមួយខុសប្រក្រតី", + "couldNotOpen": "មិនអាចបើក {{label}} បានទេ", + "link": "តំណ", + "takingLonger": "នេះចំណាយពេលយូរជាងការរំពឹងទុក។ អ្នកអាចបិទវា ហើយពិនិត្យម្តងទៀតនៅពេលក្រោយ។" }, "language": { "title": "ភាសា", @@ -576,6 +579,12 @@ "commentPosted": "បានប្រកាសអត្ថាធិប្បាយ", "reviewSubmitted": "បានដាក់ស្នើការពិនិត្យ", "autoMergeEnabled": "បានបើកការបញ្ចូលដោយស្វ័យប្រវត្តិ" + }, + "mutationError": { + "commentNotPosted": "អត្ថាធិប្បាយនេះមិនអាចប្រកាសបានទេ។ បន្ទាត់ដែលបានជ្រើសរើសអាចប្តូរ ឬ PR អាចត្រូវបានធ្វើបច្ចុប្បន្នភាព។", + "reviewNotSubmitted": "ការពិនិត្យនេះមិនអាចដាក់ស្នើដូចដែលវាគឺបានទេ។ PR អាចប្តូរ ឬអ្នកមិនអាចពិនិត្យសំណើទាញរបស់ខ្លួនឯងបានទេ។", + "couldNotPostComment": "មិនអាចប្រកាសអត្ថាធិប្បាយបានទេ។", + "couldNotSubmitReview": "មិនអាចដាក់ស្នើការពិនិត្យបានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ឯកសារទទេ", "classificationTooLarge": "ឯកសារត្រូវតែមាន 20 MB ឬតូចជាង", "classificationUnreadable": "មិនអាចអានឯកសារនេះ", - "announceUploaded": "បានផ្ទុកឡើងឯកសារភ្ជាប់" + "announceUploaded": "បានផ្ទុកឡើងឯកសារភ្ជាប់", + "cantUpload": "ឯកសារនេះមិនអាចផ្ទុកឡើងបានទេ។", + "networkError": "កំហុសបណ្តាញ", + "uploadFailed": "ការផ្ទុកឡើងបានបរាជ័យ", + "failedToUploadFile": "បរាជ័យក្នុងការផ្ទុកឡើងឯកសារ: {{reason}}", + "nothingToPaste": "គ្មានអ្វីត្រូវបិទភ្ជាប់" }, "attachmentPreview": { "accessibility": "{{filename}} {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ផ្កាយភ្លឺ", "strongArm": "ដៃខ្លាំង", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "instance នេះមិនអាចទទួលឯកសារបានទេ។" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "គ្មានការសម្រេចចិត្ត", "noResult": "គ្មានលទ្ធផល" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "បរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាពអ្នកពិនិត្យ", + "configSaveFailed": "បរាជ័យក្នុងការរក្សាទុកការកំណត់រចនាសម្ព័ន្ធការពិនិត្យ" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ការដោះស្រាយដែលមានស្រាប់ត្រូវបានដាក់ក្នុងជួរ", "analysisComplete": "ការវិភាគបានបញ្ចប់", "syncComplete": "ការធ្វើសមកាលកម្មបានបញ្ចប់" + }, + "mutations": { + "serviceNotConfiguredResubmit": "សេវាសន្តិសុខមិនត្រូវបានកំណត់រចនាសម្ព័ន្ធទេ។ ការដាក់ស្នើឡើងវិញមិនអាចជោគជ័យបានទេ រហូតដល់វាត្រូវបានកែ។", + "syncMayNotHaveCompleted": "ការធ្វើសមកាលកម្មអាចមិនទាន់បានបញ្ចប់។ ព្យាយាមម្តងទៀតដើម្បីផ្សះផ្សា ឬបោះបង់។", + "syncInProgress": "ការធ្វើសមកាលកម្មសន្តិសុខកំពុងដំណើរការរួចហើយ។ សូមព្យាយាមម្តងទៀត។", + "dismissalInProgress": "ការបដិសេធនេះកំពុងដំណើរការរួចហើយ។ សូមព្យាយាមម្តងទៀត។", + "couldNotReadPendingSyncs": "មិនអាចអានការធ្វើសមកាលកម្មដែលកំពុងរង់ចាំបានទេ។ ព្យាយាមម្តងទៀត។" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ឧបករណ៍នេះមិនអាចចម្លងដោយគ្មានអនឡាញបានទេ។ ការថតរបស់អ្នកត្រូវបានផ្ញើទៅ {{provider}} ដើម្បីបំប្លែងវាទៅជាអត្ថបទ។ Kilo មិនរក្សាទុកសំឡេងនោះទេ។", "allow": "អនុញ្ញាត", "start": "ចាប់ផ្ដើមបញ្ចូលសំឡេង", - "stop": "បញ្ឈប់ការបញ្ចូលសំឡេង" + "stop": "បញ្ឈប់ការបញ្ចូលសំឡេង", + "restricted": "ការបញ្ចូលសំឡេងត្រូវបានដាក់កំហិតនៅលើឧបករណ៍នេះ។", + "micRequired": "ការបញ្ចូលសំឡេងត្រូវការសិទ្ធិចូលប្រើមីក្រូហ្វូន។", + "micOff": "សិទ្ធិចូលប្រើមីក្រូហ្វូនត្រូវបានបិទ។ បើកវានៅក្នុងការកំណត់ ដើម្បីប្រើការបញ្ចូលសំឡេង។", + "micOffTitle": "សិទ្ធិចូលប្រើមីក្រូហ្វូនត្រូវបានបិទ", + "noSpeech": "រកមិនឃើញការនិយាយទេ។ ប៉ះមីក្រូហ្វូន ដើម្បីព្យាយាមម្តងទៀត។", + "needsConnection": "ការបញ្ចូលសំឡេងត្រូវការការតភ្ជាប់ឥឡូវនេះ។ ព្យាយាមម្តងទៀត។", + "busy": "ការបញ្ចូលសំឡេងកំពុងរវល់។ ព្យាយាមម្តងទៀត។", + "stopped": "ការបញ្ចូលសំឡេងបានឈប់។ ប៉ះមីក្រូហ្វូន ដើម្បីព្យាយាមម្តងទៀត។", + "unavailableDevice": "ការបញ្ចូលសំឡេងមិនអាចប្រើបាននៅលើឧបករណ៍នេះទេ។", + "unavailableLanguage": "ការបញ្ចូលសំឡេងមិនអាចប្រើបានសម្រាប់ភាសាឧបករណ៍នេះទេ។" }, "share": { "title": "ចែករំលែកទៅ Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass នេះត្រូវបានគ្រប់គ្រងនៅលើបណ្ដាញ។", "legalDisclosure": "Kilo Pass គឺជាការជាវប្រចាំខែដែលអាចបន្តដោយស្វ័យប្រវត្តិបាន។ ការទូទាត់នឹងត្រូវគិតលើ Apple ID របស់អ្នកនៅពេលបញ្ជាក់ការទិញ។ ការជាវត្រូវបន្តដោយស្វ័យប្រវត្តិរៀងរាល់ខែក្នុងតម្លៃដែលបង្ហាញ លុះត្រាតែលុបចោលយ៉ាងហោចណាស់ 24 ម៉ោងមុនចុងបញ្ចប់នៃរយៈពេលបច្ចុប្បន្ន។ គ្រប់គ្រង ឬលុបចោលនៅពេលណាក៏បាននៅក្នុងការកំណត់គណនី App Store របស់អ្នក។", "legalPrivacyPolicy": "គោលការណ៍ឯកជនភាព", - "legalTermsOfUse": "លក្ខខណ្ឌនៃការប្រើប្រាស់ (EULA)" + "legalTermsOfUse": "លក្ខខណ្ឌនៃការប្រើប្រាស់ (EULA)", + "purchaseNotLinked": "ការទិញ App Store នេះមិនត្រូវបានភ្ជាប់ទៅគណនី Kilo របស់អ្នកទេ។ សូមប្រាកដថាអ្នកបានចូលជាមួយ Apple ID ដែលបានធ្វើការទិញ បន្ទាប់មកព្យាយាមម្តងទៀត។", + "purchaseDifferentAccount": "ការទិញ App Store នេះមិនត្រូវបានភ្ជាប់ទៅគណនី Kilo របស់អ្នកទេ។ ចូលជាមួយ Apple Account ដែលបានប្រើសម្រាប់ការទិញ បន្ទាប់មកព្យាយាមម្តងទៀត។", + "restoreFailed": "បរាជ័យក្នុងការស្តារការទិញ។ ព្យាយាមម្តងទៀត។", + "purchaseFailed": "បរាជ័យក្នុងការបញ្ចប់ការទិញ។", + "purchaseStartFailed": "បរាជ័យក្នុងការចាប់ផ្ដើមការទិញ App Store។" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "បើក", "statusPaid": "បានបង់", "statusVoid": "ទុកចោល", - "title": "វិក្កយបត្រ" + "title": "វិក្កយបត្រ", + "downloadFailed": "មិនអាចទាញយកវិក្កយបត្របានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។", + "sharingUnavailable": "ការចែករំលែកមិនអាចប្រើបាននៅលើឧបករណ៍នេះទេ។" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ការចូលបរាជ័យ។ សូមព្យាយាមម្តងទៀត។", "networkError": "កំហុសបណ្តាញ។ សូមព្យាយាមម្តងទៀត។", "accessDeniedByUser": "ការចូលប្រើត្រូវបានបដិសេធដោយអ្នកប្រើ", - "codeExpired": "កូដផុតកំណត់" + "codeExpired": "កូដផុតកំណត់", + "tooManySignInAttempts": "ការព្យាយាមចូលច្រើនពេក។ សូមរង់ចាំ ហើយព្យាយាមម្តងទៀត។" }, "models": { "dataCollected": "ទិន្នន័យដែលប្រមូលបាន", diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index 6585a010bf..e9b4c1af6f 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -24,7 +24,10 @@ "required": "ಅಗತ್ಯವಿದೆ", "error": "ದೋಷ: {{error}}", "back": "ಹಿಂದೆ", - "somethingWentWrong": "ಏನೋ ತಪ್ಪಾಗಿದೆ" + "somethingWentWrong": "ಏನೋ ತಪ್ಪಾಗಿದೆ", + "couldNotOpen": "{{label}} ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", + "link": "ಲಿಂಕ್", + "takingLonger": "ಇದು ನಿರೀಕ್ಷೆಗಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ. ನೀವು ಇದನ್ನು ಮುಚ್ಚಿ ಮತ್ತೆ ಪರಿಶೀಲಿಸಬಹುದು." }, "language": { "title": "ಭಾಷೆ", @@ -576,6 +579,12 @@ "commentPosted": "ಕಾಮೆಂಟ್ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ", "reviewSubmitted": "ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಲಾಗಿದೆ", "autoMergeEnabled": "ಸ್ವಯಂ-ವಿಲೀನ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" + }, + "mutationError": { + "commentNotPosted": "ಈ ಕಾಮೆಂಟ್ ಪೋಸ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಆಯ್ಕೆಮಾಡಿದ ಸಾಲು ಬದಲಾಗಿರಬಹುದು, ಅಥವಾ PR ಅಪ್‌ಡೇಟ್ ಆಗಿರಬಹುದು.", + "reviewNotSubmitted": "ಈ ವಿಮರ್ಶೆಯನ್ನು ಹಾಗೆಯೇ ಸಲ್ಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. PR ಬದಲಾಗಿರಬಹುದು, ಅಥವಾ ನಿಮ್ಮ ಸ್ವಂತ ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ಅನ್ನು ನೀವು ವಿಮರ್ಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.", + "couldNotPostComment": "ಕಾಮೆಂಟ್ ಪೋಸ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "couldNotSubmitReview": "ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ಫೈಲ್ ಖಾಲಿಯಾಗಿದೆ", "classificationTooLarge": "ಫೈಲ್‌ಗಳು 20 MB ಅಥವಾ ಅದಕ್ಕಿಂತ ಚಿಕ್ಕದಾಗಿರಬೇಕು", "classificationUnreadable": "ಈ ಫೈಲ್ ಅನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", - "announceUploaded": "ಲಗತ್ತು ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ" + "announceUploaded": "ಲಗತ್ತು ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ", + "cantUpload": "ಈ ಫೈಲ್ ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.", + "networkError": "ನೆಟ್ವರ್ಕ್ ದೋಷ", + "uploadFailed": "ಅಪ್‌ಲೋಡ್ ವಿಫಲವಾಗಿದೆ", + "failedToUploadFile": "ಫೈಲ್ ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ: {{reason}}", + "nothingToPaste": "ಅಂಟಿಸಲು ಏನೂ ಇಲ್ಲ" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ಮಿಂಚುಗಳು", "strongArm": "ಬಲವಾದ ತೋಳು", "talisman": "ತಾಯಿತ" - } + }, + "remoteSpawnFilesNotSupported": "ಈ ಉದಾಹರಣೆಯು ಫೈಲ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "ನಿರ್ಧಾರವಿಲ್ಲ", "noResult": "ಫಲಿತಾಂಶವಿಲ್ಲ" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "ರಿವ್ಯೂಯರ್ ಅನ್ನು ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ", + "configSaveFailed": "ವಿಮರ್ಶೆ ಕಾನ್ಫಿಗ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪರಿಹಾರಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ", "analysisComplete": "ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ", "syncComplete": "ಸಿಂಕ್ ಪೂರ್ಣಗೊಂಡಿದೆ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "ಭದ್ರತಾ ಸೇವೆ ಕಾನ್ಫಿಗರ್ ಆಗಿಲ್ಲ. ಇದನ್ನು ಸರಿಪಡಿಸುವವರೆಗೆ ಮರುಸಲ್ಲಿಸುವಿಕೆ ಯಶಸ್ವಿಯಾಗುವುದಿಲ್ಲ.", + "syncMayNotHaveCompleted": "ಸಿಂಕ್ ಪೂರ್ಣಗೊಂಡಿರದಿರಬಹುದು. ಅದನ್ನು ಸಮನ್ವಯಗೊಳಿಸಲು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ, ಅಥವಾ ತ್ಯಜಿಸಿ.", + "syncInProgress": "ಭದ್ರತಾ ಸಿಂಕ್ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "dismissalInProgress": "ಈ ತೆಗೆದುಹಾಕುವಿಕೆ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "couldNotReadPendingSyncs": "ಬಾಕಿ ಇರುವ ಸಿಂಕ್‌ಗಳನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ಈ ಸಾಧನವು ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಟ್ರಾನ್ಸ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದನ್ನು ಪಠ್ಯವಾಗಿ ಪರಿವರ್ತಿಸಲು ನಿಮ್ಮ ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು {{provider}} ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. Kilo ಆಡಿಯೊವನ್ನು ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ.", "allow": "ಅನುಮತಿಸಿ", "start": "ಧ್ವನಿ ಇನ್ಪುಟ್ ಪ್ರಾರಂಭಿಸಿ", - "stop": "ಧ್ವನಿ ಇನ್ಪುಟ್ ನಿಲ್ಲಿಸಿ" + "stop": "ಧ್ವನಿ ಇನ್ಪುಟ್ ನಿಲ್ಲಿಸಿ", + "restricted": "ಈ ಸಾಧನದಲ್ಲಿ ಧ್ವನಿ ಇನ್ಪುಟ್ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.", + "micRequired": "ಧ್ವನಿ ಇನ್ಪುಟ್‌ಗೆ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶ ಅಗತ್ಯವಿದೆ.", + "micOff": "ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶ ಆಫ್ ಆಗಿದೆ. ಧ್ವನಿ ಇನ್ಪುಟ್ ಬಳಸಲು ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.", + "micOffTitle": "ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶ ಆಫ್ ಆಗಿದೆ", + "noSpeech": "ಯಾವುದೇ ಮಾತು ಪತ್ತೆಯಾಗಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಲು ಮೈಕ್ರೋಫೋನ್ ಟ್ಯಾಪ್ ಮಾಡಿ.", + "needsConnection": "ಧ್ವನಿ ಇನ್ಪುಟ್‌ಗೆ ಈಗ ಸಂಪರ್ಕ ಬೇಕಾಗುತ್ತದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "busy": "ಧ್ವನಿ ಇನ್ಪುಟ್ ಕಾರ್ಯನಿರತವಾಗಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "stopped": "ಧ್ವನಿ ಇನ್ಪುಟ್ ನಿಂತಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಲು ಮೈಕ್ರೋಫೋನ್ ಟ್ಯಾಪ್ ಮಾಡಿ.", + "unavailableDevice": "ಈ ಸಾಧನದಲ್ಲಿ ಧ್ವನಿ ಇನ್ಪುಟ್ ಲಭ್ಯವಿಲ್ಲ.", + "unavailableLanguage": "ಈ ಸಾಧನ ಭಾಷೆಗೆ ಧ್ವನಿ ಇನ್ಪುಟ್ ಲಭ್ಯವಿಲ್ಲ." }, "share": { "title": "Kilo ಗೆ ಹಂಚಿಕೊಳ್ಳಿ", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ಈ Kilo Pass ವೆಬ್ನಲ್ಲಿ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ.", "legalDisclosure": "Kilo Pass ಸ್ವಯಂ-ನವೀಕರಿಸುವ ಮಾಸಿಕ ಚಂದಾದಾರಿಕೆಯಾಗಿದೆ. ಖರೀದಿಯ ದೃಢೀಕರಣದ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ Apple ID ಗೆ ಹಣವನ್ನು ವಿಧಿಸಲಾಗುತ್ತದೆ. ಪ್ರಸ್ತುತ ಅವಧಿಯ ಮುಕ್ತಾಯಕ್ಕೆ ಕನಿಷ್ಠ 24 ಗಂಟೆಗಳ ಮೊದಲು ರದ್ದುಮಾಡದ ಹೊರತು ಚಂದಾದಾರಿಕೆಗಳು ಪ್ರತಿ ತಿಂಗಳು ತೋರಿಸಿದ ಬೆಲೆಯಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಿಸುತ್ತವೆ. ನಿಮ್ಮ App Store ಖಾತೆ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನಿರ್ವಹಿಸಿ ಅಥವಾ ರದ್ದುಮಾಡಿ.", "legalPrivacyPolicy": "ಗೌಪ್ಯತಾ ನೀತಿ", - "legalTermsOfUse": "ಬಳಕೆಯ ನಿಯಮಗಳು (EULA)" + "legalTermsOfUse": "ಬಳಕೆಯ ನಿಯಮಗಳು (EULA)", + "purchaseNotLinked": "ಈ App Store ಖರೀದಿಯು ನಿಮ್ಮ Kilo ಖಾತೆಗೆ ಲಿಂಕ್ ಆಗಿಲ್ಲ. ಖರೀದಿ ಮಾಡಿದ Apple ID ಗೆ ನೀವು ಸೈನ್ ಇನ್ ಆಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "purchaseDifferentAccount": "ಈ App Store ಖರೀದಿಯು ನಿಮ್ಮ Kilo ಖಾತೆಗೆ ಲಿಂಕ್ ಆಗಿಲ್ಲ. ಖರೀದಿಗೆ ಬಳಸಿದ Apple ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "restoreFailed": "ಖರೀದಿಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ವಿಫಲವಾಗಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "purchaseFailed": "ಖರೀದಿ ಪೂರ್ಣಗೊಳಿಸಲು ವಿಫಲವಾಗಿದೆ.", + "purchaseStartFailed": "App Store ಖರೀದಿ ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ತೆರೆದಿದೆ", "statusPaid": "ಪಾವತಿಸಲಾಗಿದೆ", "statusVoid": "ರದ್ದು", - "title": "ಇನ್‌ವಾಯ್ಸ್‌ಗಳು" + "title": "ಇನ್‌ವಾಯ್ಸ್‌ಗಳು", + "downloadFailed": "ಇನ್‌ವಾಯ್ಸ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "sharingUnavailable": "ಈ ಸಾಧನದಲ್ಲಿ ಹಂಚಿಕೆ ಲಭ್ಯವಿಲ್ಲ." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ಸೈನ್ ಇನ್ ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "networkError": "ನೆಟ್‌ವರ್ಕ್ ದೋಷ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "accessDeniedByUser": "ಬಳಕೆದಾರರಿಂದ ಪ್ರವೇಶ ನಿರಾಕರಿಸಲಾಗಿದೆ", - "codeExpired": "ಕೋಡ್ ಅವಧಿ ಮೀರಿದೆ" + "codeExpired": "ಕೋಡ್ ಅವಧಿ ಮೀರಿದೆ", + "tooManySignInAttempts": "ಹಲವು ಸೈನ್-ಇನ್ ಪ್ರಯತ್ನಗಳು. ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." }, "models": { "dataCollected": "ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾ", diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index 90e178de55..fe8350417c 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -24,7 +24,10 @@ "notNow": "나중에", "continue": "계속", "back": "뒤로", - "somethingWentWrong": "문제가 발생했습니다" + "somethingWentWrong": "문제가 발생했습니다", + "couldNotOpen": "{{label}}을(를) 열 수 없습니다", + "link": "링크", + "takingLonger": "예상보다 시간이 더 걸리고 있습니다. 이 화면을 닫고 나중에 다시 확인할 수 있습니다." }, "language": { "title": "언어", @@ -283,7 +286,12 @@ "classificationEmpty": "파일이 비어 있습니다", "classificationTooLarge": "파일은 20 MB 이하여야 합니다", "classificationUnreadable": "이 파일을 읽을 수 없습니다", - "announceUploaded": "첨부 파일이 업로드되었습니다" + "announceUploaded": "첨부 파일이 업로드되었습니다", + "cantUpload": "이 파일은 업로드할 수 없습니다.", + "networkError": "네트워크 오류", + "uploadFailed": "업로드 실패", + "failedToUploadFile": "파일을 업로드하지 못했습니다: {{reason}}", + "nothingToPaste": "붙여넣을 내용이 없습니다" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -741,7 +749,8 @@ "sparkles": "반짝임", "strongArm": "강한 팔", "talisman": "부적" - } + }, + "remoteSpawnFilesNotSupported": "이 인스턴스는 파일을 받을 수 없습니다." }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "리뷰 메모리", "reviewStyle": "검토 스타일", "set": "설정" - } + }, + "updateFailed": "리뷰어를 업데이트하지 못했습니다", + "configSaveFailed": "리뷰 구성을 저장하지 못했습니다" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "기존 수정이 대기열에 추가되었습니다", "analysisComplete": "분석 완료", "syncComplete": "동기화 완료" + }, + "mutations": { + "serviceNotConfiguredResubmit": "보안 서비스가 구성되지 않았습니다. 이 문제가 해결될 때까지 다시 제출할 수 없습니다.", + "syncMayNotHaveCompleted": "동기화가 완료되지 않았을 수 있습니다. 다시 시도하여 조정하거나 버리세요.", + "syncInProgress": "보안 동기화가 이미 진행 중입니다. 다시 시도하세요.", + "dismissalInProgress": "이 해제 작업이 이미 진행 중입니다. 다시 시도하세요.", + "couldNotReadPendingSyncs": "대기 중인 동기화를 읽을 수 없습니다. 다시 시도하세요." } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "음성이 온라인에서 처리됩니다", "staysOff": "온라인 전사를 허용할 때까지 음성 입력은 꺼져 있습니다.", "start": "음성 입력 시작", - "stop": "음성 입력 중지" + "stop": "음성 입력 중지", + "restricted": "이 기기에서 음성 입력이 제한되어 있습니다.", + "micRequired": "음성 입력에는 마이크 접근 권한이 필요합니다.", + "micOff": "마이크 접근이 꺼져 있습니다. 음성 입력을 사용하려면 설정에서 켜세요.", + "micOffTitle": "마이크 접근이 꺼져 있습니다", + "noSpeech": "음성이 감지되지 않았습니다. 마이크를 탭하여 다시 시도하세요.", + "needsConnection": "음성 입력에는 지금 연결이 필요합니다. 다시 시도하세요.", + "busy": "음성 입력이 사용 중입니다. 다시 시도하세요.", + "stopped": "음성 입력이 중지되었습니다. 마이크를 탭하여 다시 시도하세요.", + "unavailableDevice": "이 기기에서는 음성 입력을 사용할 수 없습니다.", + "unavailableLanguage": "이 기기 언어에서는 음성 입력을 사용할 수 없습니다." }, "share": { "title": "Kilo로 공유", @@ -2118,7 +2146,12 @@ "webManagementDescription": "이 Kilo Pass는 웹에서 관리됩니다.", "legalDisclosure": "Kilo Pass는 자동 갱신되는 월간 구독입니다. 결제는 구매 확인 시 Apple ID로 청구됩니다. 구독은 현재 기간 종료 24시간 전까지 취소하지 않으면 표시된 가격으로 매월 자동 갱신됩니다. App Store 계정 설정에서 언제든지 관리하거나 취소할 수 있습니다.", "legalPrivacyPolicy": "개인정보 처리방침", - "legalTermsOfUse": "이용 약관 (EULA)" + "legalTermsOfUse": "이용 약관 (EULA)", + "purchaseNotLinked": "이 App Store 구매는 Kilo 계정에 연결되어 있지 않습니다. 구매한 Apple ID로 로그인되어 있는지 확인한 후 다시 시도하세요.", + "purchaseDifferentAccount": "이 App Store 구매는 Kilo 계정에 연결되어 있지 않습니다. 구매에 사용한 Apple 계정으로 로그인한 후 다시 시도하세요.", + "restoreFailed": "구매를 복원하지 못했습니다. 다시 시도하세요.", + "purchaseFailed": "구매를 완료하지 못했습니다.", + "purchaseStartFailed": "App Store 구매를 시작하지 못했습니다." }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "댓글이 게시되었습니다", "reviewSubmitted": "리뷰가 제출되었습니다", "autoMergeEnabled": "자동 병합이 켜졌습니다" + }, + "mutationError": { + "commentNotPosted": "이 댓글은 게시할 수 없습니다. 선택한 줄이 변경되었거나 PR이 업데이트되었을 수 있습니다.", + "reviewNotSubmitted": "이 리뷰는 그대로 제출할 수 없습니다. PR이 변경되었거나 자신의 풀 리퀘스트를 리뷰할 수 없습니다.", + "couldNotPostComment": "댓글을 게시할 수 없습니다.", + "couldNotSubmitReview": "리뷰를 제출할 수 없습니다. 연결을 확인하고 다시 시도하세요." } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "송장", "statusPaid": "결제 완료", "statusOpen": "미결제", - "statusVoid": "무효" + "statusVoid": "무효", + "downloadFailed": "송장을 다운로드할 수 없습니다. 연결을 확인하고 다시 시도하세요.", + "sharingUnavailable": "이 기기에서는 공유를 사용할 수 없습니다." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "로그인에 실패했습니다. 다시 시도해 주세요.", "networkError": "네트워크 오류. 다시 시도해 주세요.", "accessDeniedByUser": "사용자가 액세스를 거부했습니다", - "codeExpired": "코드가 만료되었습니다" + "codeExpired": "코드가 만료되었습니다", + "tooManySignInAttempts": "로그인 시도가 너무 많습니다. 잠시 기다린 후 다시 시도하세요." }, "models": { "dataCollected": "수집된 데이터", diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index 2ad7bed6f4..646b1be1fc 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -24,7 +24,10 @@ "required": "ຕ້ອງການ", "error": "ຂໍ້ຜິດພາດ: {{error}}", "back": "ກັບຄືນ", - "somethingWentWrong": "ມີບາງຢ່າງຜິດພາດ" + "somethingWentWrong": "ມີບາງຢ່າງຜິດພາດ", + "couldNotOpen": "ບໍ່ສາມາດເປີດ {{label}} ໄດ້", + "link": "ລິ້ງ", + "takingLonger": "ກຳລັງໃຊ້ເວລາດົນກວ່າທີ່ຄາດໄວ້. ທ່ານສາມາດປິດອັນນີ້ ແລະ ກວດເບິ່ງອີກຄັ້ງ." }, "language": { "title": "ພາສາ", @@ -576,6 +579,12 @@ "commentPosted": "ໂພສຄຳເຫັນແລ້ວ", "reviewSubmitted": "ສົ່ງການກວດສອບແລ້ວ", "autoMergeEnabled": "ເປີດ auto-merge ແລ້ວ" + }, + "mutationError": { + "commentNotPosted": "ຄຳເຫັນນີ້ບໍ່ສາມາດໂພສໄດ້. ແຖວທີ່ເລືອກອາດປ່ຽນໄປ, ຫຼື PR ອາດຖືກອັບເດດ.", + "reviewNotSubmitted": "ການກວດສອບນີ້ບໍ່ສາມາດສົ່ງຕາມສະພາບປັດຈຸບັນໄດ້. PR ອາດປ່ຽນໄປ, ຫຼື ທ່ານບໍ່ສາມາດກວດສອບ pull request ຂອງຕົວເອງໄດ້.", + "couldNotPostComment": "ບໍ່ສາມາດໂພສຄຳເຫັນໄດ້.", + "couldNotSubmitReview": "ບໍ່ສາມາດສົ່ງການກວດສອບໄດ້. ກວດເບິ່ງການເຊື່ອມຕໍ່ຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ໄຟລ໌ວ່າງເປົ່າ", "classificationTooLarge": "ໄຟລ໌ຕ້ອງມີຂະໜາດ 20 MB ຫຼື ນ້ອຍກວ່າ", "classificationUnreadable": "ບໍ່ສາມາດອ່ານໄຟລ໌ນີ້ໄດ້", - "announceUploaded": "ອັບໂຫຼດໄຟລ໌ແນບແລ້ວ" + "announceUploaded": "ອັບໂຫຼດໄຟລ໌ແນບແລ້ວ", + "cantUpload": "ໄຟລ໌ນີ້ບໍ່ສາມາດອັບໂຫລດໄດ້.", + "networkError": "ຂໍ້ຜິດພາດເຄືອຂ່າຍ", + "uploadFailed": "ການອັບໂຫລດລົ້ມເຫລວ", + "failedToUploadFile": "ການອັບໂຫລດໄຟລ໌ລົ້ມເຫລວ: {{reason}}", + "nothingToPaste": "ບໍ່ມີຫຍັງໃຫ້ວາງ" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Sparkles", "strongArm": "Strong arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "instance ນີ້ບໍ່ສາມາດຮັບໄຟລ໌ໄດ້." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "ບໍ່ມີການຕັດສິນໃຈ", "noResult": "ບໍ່ມີຜົນ" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "ການອັບເດດຜູ້ກວດສອບລົ້ມເຫລວ", + "configSaveFailed": "ການບັນທຶກການຕັ້ງຄ່າການກວດສອບລົ້ມເຫລວ" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ການແກ້ໄຂທີ່ມີຢູ່ເຂົ້າຄິວແລ້ວ", "analysisComplete": "ການວິເຄາະສຳເລັດ", "syncComplete": "ການຊິ້ງສຳເລັດ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "ບໍລິການຄວາມປອດໄພບໍ່ໄດ້ຖືກຕັ້ງຄ່າ. ການສົ່ງໃໝ່ຈະບໍ່ສຳເລັດຈົນກວ່າອັນນີ້ຈະຖືກແກ້ໄຂ.", + "syncMayNotHaveCompleted": "ການຊິ້ງອາດບໍ່ສຳເລັດ. ລອງອີກເພື່ອປະສານງານ, ຫຼື ຍົກເລີກ.", + "syncInProgress": "ການຊິ້ງຄວາມປອດໄພກຳລັງດຳເນີນຢູ່ແລ້ວ. ກະລຸນາລອງອີກຄັ້ງ.", + "dismissalInProgress": "ການປິດອັນນີ້ກຳລັງດຳເນີນຢູ່ແລ້ວ. ກະລຸນາລອງອີກຄັ້ງ.", + "couldNotReadPendingSyncs": "ບໍ່ສາມາດອ່ານການຊິ້ງທີ່ລໍຖ້າໄດ້. ລອງອີກຄັ້ງ." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ອຸປະກອນນີ້ບໍ່ສາມາດຖອດຄວາມອອບຟາຍໄດ້. ການບັນທຶກຂອງທ່ານຈະຖືກສົ່ງໄປຍັງ {{provider}} ເພື່ອແປງເປັນຂໍ້ຄວາມ. Kilo ຈະບໍ່ເກັບສຽງ.", "allow": "ອະນຸຍາດ", "start": "ເລີ່ມການປ້ອນສຽງ", - "stop": "ຢຸດການປ້ອນສຽງ" + "stop": "ຢຸດການປ້ອນສຽງ", + "restricted": "ການປ້ອນສຽງຖືກຈຳກັດຢູ່ໃນອຸປະກອນນີ້.", + "micRequired": "ຕ້ອງການການເຂົ້າເຖິງໄມໂຄຣໂຟນສຳລັບການປ້ອນສຽງ.", + "micOff": "ການເຂົ້າເຖິງໄມໂຄຣໂຟນຖືກປິດ. ເປີດມັນໃນການຕັ້ງຄ່າເພື່ອໃຊ້ການປ້ອນສຽງ.", + "micOffTitle": "ການເຂົ້າເຖິງໄມໂຄຣໂຟນຖືກປິດ", + "noSpeech": "ບໍ່ກວດພົບສຽງເວົ້າ. ແຕະໄມໂຄຣໂຟນເພື່ອລອງອີກຄັ້ງ.", + "needsConnection": "ການປ້ອນສຽງຕ້ອງການການເຊື່ອມຕໍ່ໃນຕອນນີ້. ລອງອີກຄັ້ງ.", + "busy": "ການປ້ອນສຽງກຳລັງຫຍຸ້ງ. ລອງອີກຄັ້ງ.", + "stopped": "ການປ້ອນສຽງຢຸດແລ້ວ. ແຕະໄມໂຄຣໂຟນເພື່ອລອງອີກຄັ້ງ.", + "unavailableDevice": "ການປ້ອນສຽງບໍ່ມີໃນອຸປະກອນນີ້.", + "unavailableLanguage": "ການປ້ອນສຽງບໍ່ມີສຳລັບພາສາຂອງອຸປະກອນນີ້." }, "share": { "title": "ແບ່ງປັນໄປ Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass ນີ້ຖືກຈັດການຢູ່ເວັບ.", "legalDisclosure": "Kilo Pass ເປັນການສະໝັກສະມາຊິກລາຍເດືອນທີ່ຕໍ່ອັດຕະໂນມັດ. ການຊຳລະຈະຖືກຄິດຄ່າຈາກ Apple ID ຂອງທ່ານເມື່ອຢືນຢັນການຊື້. ການສະໝັກຈະຕໍ່ອັດຕະໂນມັດທຸກເດືອນໃນລາຄາທີ່ສະແດງ ເວັ້ນເສຍແຕ່ຍົກເລີກຢ່າງໜ້ອຍ 24 ຊົ່ວໂມງກ່ອນສິ້ນສຸດໄລຍະປັດຈຸບັນ. ຈັດການ ຫຼື ຍົກເລີກໄດ້ທຸກເວລາໃນການຕັ້ງຄ່າບັນຊີ App Store.", "legalPrivacyPolicy": "ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ", - "legalTermsOfUse": "ຂໍ້ກຳນົດການນຳໃຊ້ (EULA)" + "legalTermsOfUse": "ຂໍ້ກຳນົດການນຳໃຊ້ (EULA)", + "purchaseNotLinked": "ການຊື້ App Store ນີ້ບໍ່ໄດ້ເຊື່ອມໂຍງກັບບັນຊີ Kilo ຂອງທ່ານ. ໃຫ້ແນ່ໃຈວ່າທ່ານເຂົ້າສູ່ລະບົບ Apple ID ທີ່ເຮັດການຊື້, ແລ້ວລອງອີກຄັ້ງ.", + "purchaseDifferentAccount": "ການຊື້ App Store ນີ້ບໍ່ໄດ້ເຊື່ອມໂຍງກັບບັນຊີ Kilo ຂອງທ່ານ. ເຂົ້າສູ່ລະບົບ Apple Account ທີ່ໃຊ້ສຳລັບການຊື້, ແລ້ວລອງອີກຄັ້ງ.", + "restoreFailed": "ການກູ້ຄືນການຊື້ລົ້ມເຫລວ. ລອງອີກຄັ້ງ.", + "purchaseFailed": "ການເຮັດການຊື້ໃຫ້ສຳເລັດລົ້ມເຫລວ.", + "purchaseStartFailed": "ການເລີ່ມການຊື້ App Store ລົ້ມເຫລວ." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ເປີດ", "statusPaid": "ຊຳລະແລ້ວ", "statusVoid": "ຍົກເລີກ", - "title": "ໃບແຈ້ງຫນີ້" + "title": "ໃບແຈ້ງຫນີ້", + "downloadFailed": "ບໍ່ສາມາດດາວໂຫລດໃບແຈ້ງຫນີ້ໄດ້. ກວດເບິ່ງການເຊື່ອມຕໍ່ຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ.", + "sharingUnavailable": "ການແບ່ງປັນບໍ່ມີໃນອຸປະກອນນີ້." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ການເຂົ້າສູ່ລະບົບລົ້ມເຫຼວ. ກະລຸນາລອງອີກຄັ້ງ.", "networkError": "ຂໍ້ຜິດພາດເຄືອຂ່າຍ. ກະລຸນາລອງອີກຄັ້ງ.", "accessDeniedByUser": "ຜູ້ໃຊ້ປະຕິເສດການເຂົ້າເຖິງ", - "codeExpired": "ລະຫັດໝົດອາຍຸ" + "codeExpired": "ລະຫັດໝົດອາຍຸ", + "tooManySignInAttempts": "ມີຄວາມພະຍາຍາມເຂົ້າສູ່ລະບົບຫຼາຍເກີນໄປ. ກະລຸນາລໍຖ້າ ແລະ ລອງອີກຄັ້ງ." }, "models": { "dataCollected": "ຂໍ້ມູນທີ່ເກັບກຳ", diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index d52a04a925..de5d9a34fd 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -24,7 +24,10 @@ "required": "privaloma", "error": "klaida: {{error}}", "back": "Atgal", - "somethingWentWrong": "Kažkas nepavyko" + "somethingWentWrong": "Kažkas nepavyko", + "couldNotOpen": "Nepavyko atidaryti {{label}}", + "link": "nuoroda", + "takingLonger": "Tai trunka ilgiau, nei tikėtasi. Galite tai uždaryti ir patikrinti vėliau." }, "language": { "title": "Kalba", @@ -590,6 +593,12 @@ "commentPosted": "Komentaras paskelbtas", "reviewSubmitted": "Peržiūra pateikta", "autoMergeEnabled": "Automatinis sujungimas įjungtas" + }, + "mutationError": { + "commentNotPosted": "Šio komentaro paskelbti negalima. Pasirinkta eilutė galėjo pasikeisti arba PR galėjo būti atnaujintas.", + "reviewNotSubmitted": "Šios peržiūros negalima pateikti tokios, kokia ji yra. PR galėjo pasikeisti arba negalite peržiūrėti savo pull request.", + "couldNotPostComment": "Nepavyko paskelbti komentaro.", + "couldNotSubmitReview": "Nepavyko pateikti peržiūros. Patikrinkite ryšį ir bandykite dar kartą." } }, "notifications": { @@ -728,7 +737,12 @@ "classificationEmpty": "Failas tuščias", "classificationTooLarge": "Failai turi būti 20 MB arba mažesni", "classificationUnreadable": "Nepavyko perskaityti šio failo", - "announceUploaded": "Priedas įkeltas" + "announceUploaded": "Priedas įkeltas", + "cantUpload": "Šis failas negali būti įkeltas.", + "networkError": "Tinklo klaida", + "uploadFailed": "Įkelti nepavyko", + "failedToUploadFile": "Nepavyko įkelti failo: {{reason}}", + "nothingToPaste": "Nėra ko įklijuoti" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1190,7 +1204,8 @@ "sparkles": "Žiežirbos", "strongArm": "Stipri ranka", "talisman": "Talismanas" - } + }, + "remoteSpawnFilesNotSupported": "Šis egzempliorius negali gauti failų." }, "codeReviewer": { "focusAreas": { @@ -1377,7 +1392,9 @@ "noDecision": "Nėra sprendimo", "noResult": "Nėra rezultato" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Nepavyko atnaujinti recenzento", + "configSaveFailed": "Nepavyko išsaugoti peržiūros konfigūracijos" }, "securityAgent": { "filter": { @@ -1803,6 +1820,13 @@ "remediationsQueued": "Esami taisymai įrašyti į eilę", "analysisComplete": "Analizė užbaigta", "syncComplete": "Sinchronizavimas užbaigtas" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Saugos paslauga nesukonfigūruota. Pakartotinis pateikimas negalės pavykti, kol tai nebus ištaisyta.", + "syncMayNotHaveCompleted": "Sinchronizavimas gali būti nesibaigęs. Bandykite dar kartą, kad jį suderintumėte, arba atmeskite.", + "syncInProgress": "Saugos sinchronizavimas jau vyksta. Bandykite dar kartą.", + "dismissalInProgress": "Šis atmetimas jau vyksta. Bandykite dar kartą.", + "couldNotReadPendingSyncs": "Nepavyko perskaityti laukiančių sinchronizavimų. Bandykite dar kartą." } }, "agents": { @@ -2507,7 +2531,17 @@ "onlineMessage": "Šis įrenginys negali transkribuoti neprisijungęs. Jūsų įrašas siunčiamas {{provider}}, kad jis būtų paverstas tekstu. Kilo nesaugo garso.", "allow": "Leisti", "start": "Pradėti balso įvestį", - "stop": "Sustabdyti balso įvestį" + "stop": "Sustabdyti balso įvestį", + "restricted": "Balso įvestis šiame įrenginyje apribota.", + "micRequired": "Balso įvesčiai reikalinga prieiga prie mikrofono.", + "micOff": "Prieiga prie mikrofono išjungta. Įjunkite ją nustatymuose, kad naudotumėte balso įvestį.", + "micOffTitle": "Prieiga prie mikrofono išjungta", + "noSpeech": "Kalbos neaptikta. Bakstelėkite mikrofoną, kad bandytumėte dar kartą.", + "needsConnection": "Balso įvesčiai dabar reikalingas ryšys. Bandykite dar kartą.", + "busy": "Balso įvestis užimta. Bandykite dar kartą.", + "stopped": "Balso įvestis sustabdyta. Bakstelėkite mikrofoną, kad bandytumėte dar kartą.", + "unavailableDevice": "Balso įvestis šiame įrenginyje nepasiekiama.", + "unavailableLanguage": "Balso įvestis nepasiekiama šios įrenginio kalbos." }, "share": { "title": "Dalintis į Kilo", @@ -2585,7 +2619,12 @@ "webManagementDescription": "Šis „Kilo Pass“ tvarkomas internete.", "legalDisclosure": "„Kilo Pass“ yra automatiškai atnaujinama mėnesinė prenumerata. Mokėjimas nuskaitomas iš jūsų „Apple ID“ patvirtinus pirkimą. Prenumeratos atnaujinamos automatiškai kiekvieną mėnesį nurodyta kaina, nebent atšauksite ne vėliau kaip likus 24 valandoms iki einamojo laikotarpio pabaigos. Tvarkykite arba atšaukite bet kada „App Store“ paskyros nustatymuose.", "legalPrivacyPolicy": "Privatumo politika", - "legalTermsOfUse": "Naudojimo sąlygos (EULA)" + "legalTermsOfUse": "Naudojimo sąlygos (EULA)", + "purchaseNotLinked": "Šis App Store pirkinys nesusietas su jūsų Kilo paskyra. Įsitikinkite, kad prisijungę prie Apple ID, kuriuo atliktas pirkinys, tada bandykite dar kartą.", + "purchaseDifferentAccount": "Šis App Store pirkinys nesusietas su jūsų Kilo paskyra. Prisijunkite prie Apple paskyros, naudotos pirkinį atlikti, tada bandykite dar kartą.", + "restoreFailed": "Nepavyko atkurti pirkinių. Bandykite dar kartą.", + "purchaseFailed": "Nepavyko užbaigti pirkinio.", + "purchaseStartFailed": "Nepavyko pradėti App Store pirkinio." }, "consent": { "kilo": "Kilo", @@ -2718,7 +2757,9 @@ "statusOpen": "Atidaryta", "statusPaid": "Apmokėta", "statusVoid": "Negaliojanti", - "title": "Sąskaitos" + "title": "Sąskaitos", + "downloadFailed": "Nepavyko atsisiųsti sąskaitos. Patikrinkite ryšį ir bandykite dar kartą.", + "sharingUnavailable": "Bendrinimas šiame įrenginyje nepasiekiamas." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Prisijungti nepavyko. Bandykite dar kartą.", "networkError": "Tinklo klaida. Bandykite dar kartą.", "accessDeniedByUser": "Vartotojas atmetė prieigą", - "codeExpired": "Kodo galiojimas baigėsi" + "codeExpired": "Kodo galiojimas baigėsi", + "tooManySignInAttempts": "Per daug prisijungimo bandymų. Palaukite ir bandykite dar kartą." }, "models": { "dataCollected": "Surinkti duomenys", diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 6d436c4be9..79a6f20a7d 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -24,7 +24,10 @@ "required": "obligāts", "error": "kļūda: {{error}}", "back": "Atpakaļ", - "somethingWentWrong": "Kaut kas nogāja greizi" + "somethingWentWrong": "Kaut kas nogāja greizi", + "couldNotOpen": "Neizdevās atvērt {{label}}", + "link": "saite", + "takingLonger": "Tas aizņem vairāk laika, nekā gaidīts. Varat to aizvērt un pārbaudīt vēlreiz." }, "language": { "title": "Valoda", @@ -583,6 +586,12 @@ "commentPosted": "Komentārs publicēts", "reviewSubmitted": "Pārskats iesniegts", "autoMergeEnabled": "Automātiskā apvienošana iespējota" + }, + "mutationError": { + "commentNotPosted": "Šo komentāru nevar publicēt. Atlasītā rinda, iespējams, ir mainījusies, vai PR ir atjaunināts.", + "reviewNotSubmitted": "Šo pārskatu nevar iesniegt tādu, kāds tas ir. PR, iespējams, ir mainījies, vai arī jūs nevarat pārskatīt savu pull request.", + "couldNotPostComment": "Neizdevās publicēt komentāru.", + "couldNotSubmitReview": "Neizdevās iesniegt pārskatu. Pārbaudiet savienojumu un mēģiniet vēlreiz." } }, "notifications": { @@ -721,7 +730,12 @@ "classificationEmpty": "Fails ir tukšs", "classificationTooLarge": "Failiem jābūt 20 MB vai mazākiem", "classificationUnreadable": "Neizdevās nolasīt šo failu", - "announceUploaded": "Pielikums augšupielādēts" + "announceUploaded": "Pielikums augšupielādēts", + "cantUpload": "Šo failu nevar augšupielādēt.", + "networkError": "Tīkla kļūda", + "uploadFailed": "Augšupielāde neizdevās", + "failedToUploadFile": "Neizdevās augšupielādēt failu: {{reason}}", + "nothingToPaste": "Nav ko ielīmēt" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1181,7 +1195,8 @@ "sparkles": "Dzirksteles", "strongArm": "Spēcīga roka", "talisman": "Talismans" - } + }, + "remoteSpawnFilesNotSupported": "Šī instance nevar saņemt failus." }, "codeReviewer": { "focusAreas": { @@ -1368,7 +1383,9 @@ "noDecision": "Nav lēmuma", "noResult": "Nav rezultāta" }, - "eyebrow": "Koda pārskatītājs" + "eyebrow": "Koda pārskatītājs", + "updateFailed": "Neizdevās atjaunināt pārskatītāju", + "configSaveFailed": "Neizdevās saglabāt pārskata konfigurāciju" }, "securityAgent": { "filter": { @@ -1792,6 +1809,13 @@ "remediationsQueued": "Esošie labojumi ievietoti rindā", "analysisComplete": "Analīze pabeigta", "syncComplete": "Sinhronizācija pabeigta" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Drošības pakalpojums nav konfigurēts. Atkārtota iesniegšana nevar izdoties, kamēr tas nav novērsts.", + "syncMayNotHaveCompleted": "Sinhronizācija, iespējams, nav pabeigta. Mēģiniet vēlreiz, lai to saskaņotu, vai atmetiet.", + "syncInProgress": "Drošības sinhronizācija jau notiek. Lūdzu, mēģiniet vēlreiz.", + "dismissalInProgress": "Šī noraidīšana jau notiek. Lūdzu, mēģiniet vēlreiz.", + "couldNotReadPendingSyncs": "Neizdevās nolasīt gaidītās sinhronizācijas. Mēģiniet vēlreiz." } }, "agents": { @@ -2489,7 +2513,17 @@ "onlineMessage": "Šī ierīce nevar transkribēt bezsaistē. Tavs ieraksts tiek nosūtīts {{provider}}, lai to pārvērstu tekstā. Kilo neglabā audio.", "allow": "Atļaut", "start": "Sākt balss ievadi", - "stop": "Apturēt balss ievadi" + "stop": "Apturēt balss ievadi", + "restricted": "Balss ievade šajā ierīcē ir ierobežota.", + "micRequired": "Balss ievadei ir nepieciešama mikrofona piekļuve.", + "micOff": "Mikrofona piekļuve ir izslēgta. Iespējojiet to iestatījumos, lai izmantotu balss ievadi.", + "micOffTitle": "Mikrofona piekļuve ir izslēgta", + "noSpeech": "Netika uztverta runa. Pieskarieties mikrofonam, lai mēģinātu vēlreiz.", + "needsConnection": "Balss ievadei pašlaik ir nepieciešams savienojums. Mēģiniet vēlreiz.", + "busy": "Balss ievade ir aizņemta. Mēģiniet vēlreiz.", + "stopped": "Balss ievade tika apturēta. Pieskarieties mikrofonam, lai mēģinātu vēlreiz.", + "unavailableDevice": "Balss ievade šajā ierīcē nav pieejama.", + "unavailableLanguage": "Balss ievade nav pieejama šai ierīces valodai." }, "share": { "title": "Kopīgot Kilo", @@ -2567,7 +2601,12 @@ "webManagementDescription": "Šis Kilo Pass tiek pārvaldīts tīmeklī.", "legalDisclosure": "Kilo Pass ir automātiski atjaunojams mēneša abonements. Maksājums tiek iekasēts no jūsu Apple ID pirkuma apstiprināšanas brīdī. Abonements katru mēnesi atjaunojas automātiski par norādīto cenu, ja vien tas netiek atcelts vismaz 24 stundas pirms pašreizējā perioda beigām. Pārvaldiet vai atceliet to jebkurā laikā sava App Store konta iestatījumos.", "legalPrivacyPolicy": "Privātuma politika", - "legalTermsOfUse": "Lietošanas noteikumi (EULA)" + "legalTermsOfUse": "Lietošanas noteikumi (EULA)", + "purchaseNotLinked": "Šis App Store pirkums nav saistīts ar jūsu Kilo kontu. Pārliecinieties, ka esat pierakstījies ar Apple ID, kas veica pirkumu, un mēģiniet vēlreiz.", + "purchaseDifferentAccount": "Šis App Store pirkums nav saistīts ar jūsu Kilo kontu. Pierakstieties ar Apple kontu, kas tika izmantots pirkumam, un mēģiniet vēlreiz.", + "restoreFailed": "Neizdevās atjaunot pirkumus. Mēģiniet vēlreiz.", + "purchaseFailed": "Neizdevās pabeigt pirkumu.", + "purchaseStartFailed": "Neizdevās sākt App Store pirkumu." }, "consent": { "kilo": "Kilo", @@ -2700,7 +2739,9 @@ "statusOpen": "Atvērts", "statusPaid": "Apmaksāts", "statusVoid": "Anulēts", - "title": "Rēķini" + "title": "Rēķini", + "downloadFailed": "Neizdevās lejupielādēt rēķinu. Pārbaudiet savienojumu un mēģiniet vēlreiz.", + "sharingUnavailable": "Kopīgošana šajā ierīcē nav pieejama." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Pierakstīšanās neizdevās. Lūdzu, mēģiniet vēlreiz.", "networkError": "Tīkla kļūda. Lūdzu, mēģiniet vēlreiz.", "accessDeniedByUser": "Lietotājs liedza piekļuvi", - "codeExpired": "Kods ir beidzies" + "codeExpired": "Kods ir beidzies", + "tooManySignInAttempts": "Pārāk daudz pierakstīšanās mēģinājumu. Lūdzu, uzgaidiet un mēģiniet vēlreiz." }, "models": { "dataCollected": "Apkopotie dati", diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index 355453a049..4615d047ed 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -24,7 +24,10 @@ "required": "ilaina", "error": "diso: {{error}}", "back": "Hiverina", - "somethingWentWrong": "Nisy olana" + "somethingWentWrong": "Nisy olana", + "couldNotOpen": "Tsy afaka nanokatra {{label}}", + "link": "rohy", + "takingLonger": "Mitarika ela kokoa noho ny andrasana ity. Azonao akatona ity ary jereo indray." }, "language": { "title": "Fiteny", @@ -294,7 +297,7 @@ "failingChecksDetail": "Tsy mandalo ny fanamarinana sata ilaina.", "unstableTitle": "Misy fanamarinana tsy mandalo", "unstableDetail": "Tsy mandalo ny fanamarinana tsy voatery. Tsy hanakana ny fampirina izy ireo.", - "draftTitle": "Draft pull request", + "draftTitle": "Pull request drafta", "draftDetail": "Mariho ny pull request ho vonona hofandrinihana alohan'ny hampirina.", "behindTitle": "Lany daty ny sampana", "behindDetailUpdatable": "Havaozy avy amin'ny base ny sampana, na ataovy rebase, alohan'ny hampirina.", @@ -576,6 +579,12 @@ "commentPosted": "Navoaka ny hevitra", "reviewSubmitted": "Nalefa ny fandinihana", "autoMergeEnabled": "Alefa ny auto-merge" + }, + "mutationError": { + "commentNotPosted": "Tsy azo hapetraka ity hevitra ity. Mety niova ny andalana voafidy, na nohavaozina ny PR.", + "reviewNotSubmitted": "Tsy azo alefa araka izao ity fandinihana ity. Mety niova ny PR, na tsy afaka mandinika ny pull request anao manokana ianao.", + "couldNotPostComment": "Tsy afaka nametraka hevitra.", + "couldNotSubmitReview": "Tsy afaka nandefa ny fandinihana. Jereo ny fifandraisanao ary andramana indray." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Foana ny rakitra", "classificationTooLarge": "Tsy maintsy 20 MB na latsaka ny rakitra", "classificationUnreadable": "Tsy afaka namaky ity rakitra ity", - "announceUploaded": "Nampiakarina ny rakitra" + "announceUploaded": "Nampiakarina ny rakitra", + "cantUpload": "Tsy azo alefa ity rakitra ity.", + "networkError": "Hadisoan'ny tambajotra", + "uploadFailed": "Tsy nahomby ny fampiakarana", + "failedToUploadFile": "Tsy nahomby ny fampiakarana ny rakitra: {{reason}}", + "nothingToPaste": "Tsy misy hamenoina" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Tselatra kely", "strongArm": "Sandry matanjaka", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Tsy afaka mandray rakitra ity instance ity." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Tsy misy fanapahan-kevitra", "noResult": "Tsy misy valiny" }, - "eyebrow": "Mpandinika Code" + "eyebrow": "Mpandinika Code", + "updateFailed": "Tsy nahomby ny fanavaozana ny mpandinika", + "configSaveFailed": "Tsy nahomby ny famonjena ny fikiran'ny fandinihana" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Milahatra ny fanarenana efa misy", "analysisComplete": "Vita ny famakafakana", "syncComplete": "Vita ny sync" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Tsy voarafitra ny serivisy fiarovana. Tsy hahomby ny fandefasana indray mandra-pandaminana izany.", + "syncMayNotHaveCompleted": "Mety tsy vita ny sincro. Andramana indray mba hampifanarahana azy, na ariano.", + "syncInProgress": "Efa misy sincro fiarovana mandeha. Andramana indray azafady.", + "dismissalInProgress": "Efa mandeha ny fanesorana ity. Andramana indray azafady.", + "couldNotReadPendingSyncs": "Tsy afaka namaky ny sincro miandry. Andramana indray." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Tsy afaka mandika offline ity fitaovana ity. Alefa any amin'ny {{provider}} ny rakitsoratrao mba hahazoana lahatsoratra. Tsy voatahirin'i Kilo ny audio.", "allow": "Avelao", "start": "Atombohy ny fidirana amin'ny feo", - "stop": "Ajanony ny fidirana amin'ny feo" + "stop": "Ajanony ny fidirana amin'ny feo", + "restricted": "Voafetra ny fidirana amin'ny feo amin'ity fitaovana ity.", + "micRequired": "Ilaina ny fidirana amin'ny mikrô ho an'ny fidirana amin'ny feo.", + "micOff": "Mihidy ny fidirana amin'ny mikrô. Alefaso ao amin'ny Settings mba hampiasana ny fidirana amin'ny feo.", + "micOffTitle": "Mihidy ny fidirana amin'ny mikrô", + "noSpeech": "Tsy nisy kabary hita. Tsindrio ny mikrô mba andramana indray.", + "needsConnection": "Mila fifandraisana izao ny fidirana amin'ny feo. Andramana indray.", + "busy": "Saika miasa ny fidirana amin'ny feo. Andramana indray.", + "stopped": "Nijanona ny fidirana amin'ny feo. Tsindrio ny mikrô mba andramana indray.", + "unavailableDevice": "Tsy misy ny fidirana amin'ny feo amin'ity fitaovana ity.", + "unavailableLanguage": "Tsy misy ny fidirana amin'ny feo ho an'ny fitenin'ity fitaovana ity." }, "share": { "title": "Zarao amin'ny Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Io Kilo Pass io dia tantanina amin'ny tranonkala.", "legalDisclosure": "Kilo Pass dia famandrihana isam-bolana azo havaozina ho azy. Alaina amin'ny Apple ID anao ny fandoavam-bola rehefa hamafisina ny fividianana. Havaozina ho azy ny famandrihana isam-bolana amin'ny vidiny aseho raha tsy foanana 24 ora farafahakeliny alohan'ny fiafaran'ny fe-potoana ankehitriny. Tantano na foano isaky ny te ianao amin'ny fikandrana kaonty App Store anao.", "legalPrivacyPolicy": "Politika momba ny fiainana manokana", - "legalTermsOfUse": "Fepetran'ny fampiasana (EULA)" + "legalTermsOfUse": "Fepetran'ny fampiasana (EULA)", + "purchaseNotLinked": "Tsy mifandray amin'ny kaonty Kilo anao ity fividianana App Store ity. Ataovy azo antoka fa niditra tamin'ny Apple ID nanao ny fividianana ianao, ary andramana indray.", + "purchaseDifferentAccount": "Tsy mifandray amin'ny kaonty Kilo anao ity fividianana App Store ity. Midira amin'ny Apple Account nampiasaina tamin'ny fividianana, ary andramana indray.", + "restoreFailed": "Tsy nahomby ny famerenana ny fividianana. Andramana indray.", + "purchaseFailed": "Tsy nahomby ny famitana ny fividianana.", + "purchaseStartFailed": "Tsy nahomby ny fanombohana ny fividianana App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Misokatra", "statusPaid": "Voaloa", "statusVoid": "Nofoana", - "title": "Faktiora" + "title": "Faktiora", + "downloadFailed": "Tsy afaka nampidina ny faktiora. Jereo ny fifandraisanao ary andramana indray.", + "sharingUnavailable": "Tsy misy ny fifampizarana amin'ity fitaovana ity." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Tsy nahomby ny fidirana. Andramo indray azafady.", "networkError": "Hadisoan'ny tambajotra. Andramo indray azafady.", "accessDeniedByUser": "Nolavin'ny mpampiasa ny fidirana", - "codeExpired": "Lany daty ny kaody" + "codeExpired": "Lany daty ny kaody", + "tooManySignInAttempts": "Betsaka loatra ny andrana fidirana. Miandrasa kely ary andramana indray azafady." }, "models": { "dataCollected": "Angona voaangona", diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index ce3fa3e614..2db54853ae 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -24,7 +24,10 @@ "required": "e hiahiatia ana", "error": "hapa: {{error}}", "back": "Hoki", - "somethingWentWrong": "Kua hē tētahi mea" + "somethingWentWrong": "Kua hē tētahi mea", + "couldNotOpen": "Kāore i taea te whakatuwhera {{label}}", + "link": "hono", + "takingLonger": "Ka roa ake tēnei i te wā i tūmanakohia. Ka taea e koe te kati i tēnei, ka tiro anō." }, "language": { "title": "Reo", @@ -576,6 +579,12 @@ "commentPosted": "Kua whakairihia te kōrero", "reviewSubmitted": "Kua tukuna te arotake", "autoMergeEnabled": "Kua whakahohea te whakakotahi-aunoa" + }, + "mutationError": { + "commentNotPosted": "Kāore e taea te whakairi tēnei kōrero. Kua huri pea te rārangi i kōwhiria, kua whakahoutia pea rānei te PR.", + "reviewNotSubmitted": "Kāore e taea te tuku tēnei arotake pēnei ana. Kua huri pea te PR, kāore rānei e taea e koe te arotake i tō ake tono huna.", + "couldNotPostComment": "Kāore i taea te whakairi kōrero.", + "couldNotSubmitReview": "Kāore i taea te tuku arotake. Tirohia tō hononga, ka whakamātau anō." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "He kau te kōnae", "classificationTooLarge": "Kia 20 MB iti iho rānei ngā kōnae", "classificationUnreadable": "Kāore i taea te pānui i tēnei kōnae", - "announceUploaded": "Kua tukuaketia te āpititanga" + "announceUploaded": "Kua tukuaketia te āpititanga", + "cantUpload": "Kāore e taea te tuku ake tēnei kōnae.", + "networkError": "Hapa whatunga", + "uploadFailed": "I rahua te tuku ake", + "failedToUploadFile": "I rahua te tuku ake i te kōnae: {{reason}}", + "nothingToPaste": "Kāore he mea hei piri" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Kanapa", "strongArm": "Ringa kaha", "talisman": "Tāpui" - } + }, + "remoteSpawnFilesNotSupported": "Kāore e taea e tēnei tauārai te whiwhi kōnae." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Kāore he whakatau", "noResult": "Kāore he hua" }, - "eyebrow": "Kaiarotake Waehere" + "eyebrow": "Kaiarotake Waehere", + "updateFailed": "I rahua te whakahou i te kaiarotake", + "configSaveFailed": "I rahua te tiaki i te whirihoranga arotake" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Kua tūtira ngā whakapai o nāianei", "analysisComplete": "Kua oti te tātari", "syncComplete": "Kua oti te tukutahi" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Kāore i whirihorahia te ratonga haumarutanga. Kāore e angitu te tuku anō kia whakatikaina rā anō tēnei.", + "syncMayNotHaveCompleted": "Kāore pea i oti te honohono. Whakamātau anō kia hōreria, whakakorehia rānei.", + "syncInProgress": "Kei te haere tonu tētahi honohono haumarutanga. Whakamātau anō.", + "dismissalInProgress": "Kei te haere tonu tēnei whakakorenga. Whakamātau anō.", + "couldNotReadPendingSyncs": "Kāore i taea te pānui i ngā honohono e tatari ana. Whakamātau anō." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Kāore e taea e tēnei pūrere te tuhi kore-tuihono. Ka tukuna tō rekoata ki {{provider}} hei huri hei kuputuhi. Kāore a Kilo e penapena i te ororongo.", "allow": "Tukua", "start": "Tīmatahia te tāuru reo", - "stop": "Whakamutua te tāuru reo" + "stop": "Whakamutua te tāuru reo", + "restricted": "Kua rāhuitia te tāuru reo i tēnei pūrere.", + "micRequired": "Me whai uru hopuoro mō te tāuru reo.", + "micOff": "Kua monoa te uru hopuoro. Whakahohehia i ngā Tautuhinga kia whakamahi i te tāuru reo.", + "micOffTitle": "Kua monoa te uru hopuoro", + "noSpeech": "Kāore i kitea he reo kōrero. Pāwhiritia te hopuoro kia whakamātau anō.", + "needsConnection": "Me whai hononga ināianei te tāuru reo. Whakamātau anō.", + "busy": "Kei te pukumahi te tāuru reo. Whakamātau anō.", + "stopped": "Kua mutu te tāuru reo. Pāwhiritia te hopuoro kia whakamātau anō.", + "unavailableDevice": "Kāore e wātea ana te tāuru reo i tēnei pūrere.", + "unavailableLanguage": "Kāore e wātea ana te tāuru reo mō tēnei reo o te pūrere." }, "share": { "title": "Tuari ki Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kei te whakahaeretia tēnei Kilo Pass i runga i te paetukutuku.", "legalDisclosure": "He ohinga ā-marama e hoko aunoatia ana a Kilo Pass. Ka utua te utu ki tō Apple ID i te whakaaetanga o te hoko. Ka whakahoutia aunoatia ngā ohinga ia marama ki te utu e whakaaturia ana ki te kore e whakakorengia kia 24 hāora i mua i te mutunga o te wā o nāianei. Whakahaerehia, whakakorea rānei i ngā wā katoa i roto i tō tautuhinga pūkete App Store.", "legalPrivacyPolicy": "Kaupapahere Tūmataiti", - "legalTermsOfUse": "Tikanga Whakamahi (EULA)" + "legalTermsOfUse": "Tikanga Whakamahi (EULA)", + "purchaseNotLinked": "Kāore tēnei hokonga App Store i hono ki tō pūkete Kilo. Tirohia kua takiuru koe ki te Apple ID nāna te hokonga, kātahi ka whakamātau anō.", + "purchaseDifferentAccount": "Kāore tēnei hokonga App Store i hono ki tō pūkete Kilo. Takiuru ki te Pūkete Apple i whakamahia mō te hokonga, kātahi ka whakamātau anō.", + "restoreFailed": "I rahua te whakaora i ngā hokonga. Whakamātau anō.", + "purchaseFailed": "I rahua te whakaoti i te hokonga.", + "purchaseStartFailed": "I rahua te tīmata i te hokonga App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Tuwhera", "statusPaid": "Kua utua", "statusVoid": "Kore", - "title": "Ngā nama" + "title": "Ngā nama", + "downloadFailed": "Kāore i taea te tango i te nama. Tirohia tō hononga, ka whakamātau anō.", + "sharingUnavailable": "Kāore e wātea ana te tohatoha i tēnei pūrere." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "I rahua te takiuru. Tēnā koa whakamātau anō.", "networkError": "Hapa whatunga. Tēnā koa whakamātau anō.", "accessDeniedByUser": "Kāore i whakaaetia te uru e te kaiwhakamahi", - "codeExpired": "Kua pau te wā o te waehere" + "codeExpired": "Kua pau te wā o te waehere", + "tooManySignInAttempts": "He nui rawa ngā whakamātautanga takiuru. Tatari, ka whakamātau anō." }, "models": { "dataCollected": "Kua kohia ngā raraunga", diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index be80e93bec..5b651f18c6 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -24,7 +24,10 @@ "required": "задолжително", "error": "грешка: {{error}}", "back": "Назад", - "somethingWentWrong": "Нешто тргна наопаку" + "somethingWentWrong": "Нешто тргна наопаку", + "couldNotOpen": "Не можеше да се отвори {{label}}", + "link": "линк", + "takingLonger": "Ова трае подолго од очекуваното. Можете да го затворите ова и да проверите повторно." }, "language": { "title": "Јазик", @@ -576,6 +579,12 @@ "commentPosted": "Коментарот е објавен", "reviewSubmitted": "Прегледот е испратен", "autoMergeEnabled": "Автоматското спојување е овозможено" + }, + "mutationError": { + "commentNotPosted": "Овој коментар не може да се објави. Избраната линија можеби е променета, или PR-от можеби е ажуриран.", + "reviewNotSubmitted": "Овој преглед не може да се испрати во сегашната состојба. PR-от можеби е променет, или не можете да прегледувате сопствено барање за повлекување.", + "couldNotPostComment": "Не можеше да се објави коментар.", + "couldNotSubmitReview": "Не можеше да се испрати преглед. Проверете ја вашата врска и обидете се повторно." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Датотеката е празна", "classificationTooLarge": "Датотеките мора да бидат 20 MB или помали", "classificationUnreadable": "Не можеше да се прочита оваа датотека", - "announceUploaded": "Прилогот е прикачен" + "announceUploaded": "Прилогот е прикачен", + "cantUpload": "Оваа датотека не може да се испрати.", + "networkError": "Грешка во мрежата", + "uploadFailed": "Испраќањето не успеа", + "failedToUploadFile": "Не успеа испраќањето на датотеката: {{reason}}", + "nothingToPaste": "Нема што да се залепи" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Искри", "strongArm": "Силна рака", "talisman": "Талисман" - } + }, + "remoteSpawnFilesNotSupported": "Оваа инстанца не може да прима датотеки." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Нема одлука", "noResult": "Нема резултат" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Не успеа ажурирањето на прегледувачот", + "configSaveFailed": "Не успеа зачувувањето на конфигурацијата на прегледот" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Постоечките санации се ставени во ред", "analysisComplete": "Анализата е завршена", "syncComplete": "Синхронизацијата е завршена" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Безбедносната услуга не е конфигурирана. Повторното поднесување не може да успее додека ова не се поправи.", + "syncMayNotHaveCompleted": "Синхронизацијата можеби не е завршена. Повторете за да ја усогласите, или отфрлете ја.", + "syncInProgress": "Безбедносна синхронизација е веќе во тек. Обидете се повторно.", + "dismissalInProgress": "Ова отфрлање е веќе во тек. Обидете се повторно.", + "couldNotReadPendingSyncs": "Не можеше да се прочитаат синхронизациите што чекаат. Обидете се повторно." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Овој уред не може да транскрибира офлајн. Вашиот запис се испраќа до {{provider}} за да се претвори во текст. Kilo не го складира аудиото.", "allow": "Дозволи", "start": "Започни гласовен внес", - "stop": "Запре го гласовниот внес" + "stop": "Запре го гласовниот внес", + "restricted": "Гласовниот внес е ограничен на овој уред.", + "micRequired": "За гласовен внес е потребен пристап до микрофонот.", + "micOff": "Пристапот до микрофонот е исклучен. Овозможете го во Поставки за да користите гласовен внес.", + "micOffTitle": "Пристапот до микрофонот е исклучен", + "noSpeech": "Не е откриен говор. Допрете го микрофонот за да се обидете повторно.", + "needsConnection": "Гласовниот внес во моментов бара врска. Обидете се повторно.", + "busy": "Гласовниот внес е зафатен. Обидете се повторно.", + "stopped": "Гласовниот внес е запрен. Допрете го микрофонот за да се обидете повторно.", + "unavailableDevice": "Гласовниот внес не е достапен на овој уред.", + "unavailableLanguage": "Гласовниот внес не е достапен за јазикот на овој уред." }, "share": { "title": "Сподели во Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Овој Kilo Pass се управува на веб.", "legalDisclosure": "Kilo Pass е автоматски обновлива месечна претплата. Плаќањето се наплаќа на вашиот Apple ID при потврдување на купувањето. Претплатите автоматски се обновуваат секој месец по прикажаната цена, освен ако не се откажат најмалку 24 часа пред крајот на тековниот период. Управувајте или откажете во секое време во поставките на вашата App Store сметка.", "legalPrivacyPolicy": "Политика за приватност", - "legalTermsOfUse": "Услови за користење (EULA)" + "legalTermsOfUse": "Услови за користење (EULA)", + "purchaseNotLinked": "Ова купување од App Store не е поврзано со вашата Kilo сметка. Проверете дали сте најавени на Apple ID-то што го изврши купувањето, па обидете се повторно.", + "purchaseDifferentAccount": "Ова купување од App Store не е поврзано со вашата Kilo сметка. Најавете се на Apple сметката користена за купувањето, па обидете се повторно.", + "restoreFailed": "Не успеа враќањето на купувањата. Обидете се повторно.", + "purchaseFailed": "Не успеа завршувањето на купувањето.", + "purchaseStartFailed": "Не успеа започнувањето на купување од App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Отворено", "statusPaid": "Платено", "statusVoid": "Поништено", - "title": "Фактури" + "title": "Фактури", + "downloadFailed": "Не можеше да се преземе фактурата. Проверете ја вашата врска и обидете се повторно.", + "sharingUnavailable": "Споделувањето не е достапно на овој уред." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Најавата не успеа. Обидете се повторно.", "networkError": "Грешка во мрежата. Обидете се повторно.", "accessDeniedByUser": "Пристапот е одбиен од корисникот", - "codeExpired": "Кодот истече" + "codeExpired": "Кодот истече", + "tooManySignInAttempts": "Премногу обиди за најавување. Почекајте и обидете се повторно." }, "models": { "dataCollected": "Собрани податоци", diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index 3719f27288..d10aa90ebf 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -24,7 +24,10 @@ "required": "ആവശ്യമാണ്", "error": "പിശക്: {{error}}", "back": "പിന്നിലേക്ക്", - "somethingWentWrong": "എന്തോ പിശക് സംഭവിച്ചു" + "somethingWentWrong": "എന്തോ പിശക് സംഭവിച്ചു", + "couldNotOpen": "{{label}} തുറക്കാൻ കഴിഞ്ഞില്ല", + "link": "ലിങ്ക്", + "takingLonger": "ഇത് പ്രതീക്ഷിച്ചതിലും കൂടുതൽ സമയമെടുക്കുന്നു. നിങ്ങൾക്ക് ഇത് അടച്ച് വീണ്ടും പരിശോധിക്കാം." }, "language": { "title": "ഭാഷ", @@ -576,6 +579,12 @@ "commentPosted": "അഭിപ്രായം പോസ്റ്റ് ചെയ്തു", "reviewSubmitted": "അവലോകനം സമർപ്പിച്ചു", "autoMergeEnabled": "ഓട്ടോ-മെർജ് പ്രവർത്തനക്ഷമമാക്കി" + }, + "mutationError": { + "commentNotPosted": "ഈ അഭിപ്രായം പോസ്റ്റ് ചെയ്യാൻ കഴിയില്ല. തിരഞ്ഞെടുത്ത വരി മാറിയിരിക്കാം, അല്ലെങ്കിൽ PR അപ്ഡേറ്റ് ചെയ്തിരിക്കാം.", + "reviewNotSubmitted": "ഈ അവലോകനം അതുപോലെ സമർപ്പിക്കാൻ കഴിയില്ല. PR മാറിയിരിക്കാം, അല്ലെങ്കിൽ നിങ്ങളുടെ സ്വന്തം പുൾ റിക്വസ്റ്റ് അവലോകനം ചെയ്യാൻ കഴിഞ്ഞില്ലെന്നും വരാം.", + "couldNotPostComment": "അഭിപ്രായം പോസ്റ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല.", + "couldNotSubmitReview": "അവലോകനം സമർപ്പിക്കാൻ കഴിഞ്ഞില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ഫയൽ ശൂന്യമാണ്", "classificationTooLarge": "ഫയലുകൾ 20 MB അല്ലെങ്കിൽ അതിൽ കുറവായിരിക്കണം", "classificationUnreadable": "ഈ ഫയൽ വായിക്കാൻ കഴിഞ്ഞില്ല", - "announceUploaded": "അറ്റാച്ച്മെന്റ് അപ്ലോഡ് ചെയ്തു" + "announceUploaded": "അറ്റാച്ച്മെന്റ് അപ്ലോഡ് ചെയ്തു", + "cantUpload": "ഈ ഫയൽ അപ്ലോഡ് ചെയ്യാൻ കഴിയില്ല.", + "networkError": "നെറ്റ്വർക്ക് പിശക്", + "uploadFailed": "അപ്ലോഡ് പരാജയപ്പെട്ടു", + "failedToUploadFile": "ഫയൽ അപ്ലോഡ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു: {{reason}}", + "nothingToPaste": "ഒട്ടിക്കാൻ ഒന്നുമില്ല" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "തിളക്കങ്ങൾ", "strongArm": "ശക്തമായ കൈ", "talisman": "താലിസ്മാൻ" - } + }, + "remoteSpawnFilesNotSupported": "ഈ ഇൻസ്റ്റൻസിന് ഫയലുകൾ സ്വീകരിക്കാൻ കഴിയില്ല." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "തീരുമാനമില്ല", "noResult": "ഫലമില്ല" }, - "eyebrow": "കോഡ് റിവ്യൂവർ" + "eyebrow": "കോഡ് റിവ്യൂവർ", + "updateFailed": "റിവ്യൂവർ അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു", + "configSaveFailed": "റിവ്യൂ കോൺഫിഗ് സംരക്ഷിക്കുന്നതിൽ പരാജയപ്പെട്ടു" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "നിലവിലുള്ള പരിഹാരങ്ങൾ ക്യൂവിലാക്കി", "analysisComplete": "വിശകലനം പൂർത്തിയായി", "syncComplete": "സമന്വയം പൂർത്തിയായി" + }, + "mutations": { + "serviceNotConfiguredResubmit": "സുരക്ഷാ സേവനം കോൺഫിഗർ ചെയ്തിട്ടില്ല. ഇത് പരിഹരിക്കുന്നത് വരെ വീണ്ടും സമർപ്പിക്കുന്നത് വിജയിക്കില്ല.", + "syncMayNotHaveCompleted": "ഒരു സമന്വയം പൂർത്തിയാകാതെ പോയിരിക്കാം. അത് പൊരുത്തപ്പെടുത്താൻ വീണ്ടും ശ്രമിക്കുക, അല്ലെങ്കിൽ ഉപേക്ഷിക്കുക.", + "syncInProgress": "ഒരു സുരക്ഷാ സമന്വയം ഇതിനകം പുരോഗതിയിലാണ്. വീണ്ടും ശ്രമിക്കുക.", + "dismissalInProgress": "ഈ നിരസിക്കൽ ഇതിനകം പുരോഗതിയിലാണ്. വീണ്ടും ശ്രമിക്കുക.", + "couldNotReadPendingSyncs": "തീർച്ചയാകാത്ത സമന്വയങ്ങൾ വായിക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ഈ ഉപകരണത്തിന് ഓഫ്ലൈനിൽ ട്രാൻസ്ക്രൈബ് ചെയ്യാൻ കഴിയില്ല. നിങ്ങളുടെ റെക്കോർഡിംഗ് ടെക്സ്റ്റാക്കാൻ {{provider}}-ലേക്ക് അയയ്ക്കുന്നു. Kilo ഓഡിയോ സംഭരിക്കുന്നില്ല.", "allow": "അനുവദിക്കുക", "start": "ശബ്ദ ഇൻപുട്ട് ആരംഭിക്കുക", - "stop": "ശബ്ദ ഇൻപുട്ട് നിർത്തുക" + "stop": "ശബ്ദ ഇൻപുട്ട് നിർത്തുക", + "restricted": "ഈ ഉപകരണത്തിൽ ശബ്ദ ഇൻപുട്ട് നിയന്ത്രിതമാണ്.", + "micRequired": "ശബ്ദ ഇൻപുട്ടിന് മൈക്രോഫോൺ ആക്സസ് ആവശ്യമാണ്.", + "micOff": "മൈക്രോഫോൺ ആക്സസ് ഓഫാണ്. ശബ്ദ ഇൻപുട്ട് ഉപയോഗിക്കാൻ ക്രമീകരണങ്ങളിൽ ഇത് പ്രവർത്തനക്ഷമമാക്കുക.", + "micOffTitle": "മൈക്രോഫോൺ ആക്സസ് ഓഫാണ്", + "noSpeech": "സംസാരം കണ്ടെത്തിയില്ല. വീണ്ടും ശ്രമിക്കാൻ മൈക്രോഫോണിൽ ടാപ്പ് ചെയ്യുക.", + "needsConnection": "ശബ്ദ ഇൻപുട്ടിന് ഇപ്പോൾ ഒരു കണക്ഷൻ ആവശ്യമാണ്. വീണ്ടും ശ്രമിക്കുക.", + "busy": "ശബ്ദ ഇൻപുട്ട് തിരക്കിലാണ്. വീണ്ടും ശ്രമിക്കുക.", + "stopped": "ശബ്ദ ഇൻപുട്ട് നിർത്തി. വീണ്ടും ശ്രമിക്കാൻ മൈക്രോഫോണിൽ ടാപ്പ് ചെയ്യുക.", + "unavailableDevice": "ഈ ഉപകരണത്തിൽ ശബ്ദ ഇൻപുട്ട് ലഭ്യമല്ല.", + "unavailableLanguage": "ഈ ഉപകരണ ഭാഷയ്ക്ക് ശബ്ദ ഇൻപുട്ട് ലഭ്യമല്ല." }, "share": { "title": "Kilo-യിലേക്ക് പങ്കിടുക", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ഈ കിലോ പാസ് വെബിൽ കൈകാര്യം ചെയ്യപ്പെടുന്നു.", "legalDisclosure": "കിലോ പാസ് ഒരു യാന്ത്രിക-പുതുക്കാവുന്ന പ്രതിമാസ സബ്സ്ക്രിപ്ഷൻ ആണ്. വാങ്ങൽ സ്ഥിരീകരിക്കുമ്പോൾ നിങ്ങളുടെ Apple ID-യിൽ നിന്ന് പേയ്മെന്റ് ഈടാക്കുന്നു. നിലവിലെ കാലയളവ് അവസാനിക്കുന്നതിന് കുറഞ്ഞത് 24 മണിക്കൂർ മുമ്പ് റദ്ദാക്കിയില്ലെങ്കിൽ സബ്സ്ക്രിപ്ഷനുകൾ ഓരോ മാസവും കാണിച്ചിരിക്കുന്ന വിലയിൽ സ്വയമേവ പുതുക്കുന്നു. നിങ്ങളുടെ App Store അക്കൗണ്ട് ക്രമീകരണങ്ങളിൽ എപ്പോൾ വേണമെങ്കിലും കൈകാര്യം ചെയ്യുക അല്ലെങ്കിൽ റദ്ദാക്കുക.", "legalPrivacyPolicy": "സ്വകാര്യതാ നയം", - "legalTermsOfUse": "ഉപയോഗ നിബന്ധനകൾ (EULA)" + "legalTermsOfUse": "ഉപയോഗ നിബന്ധനകൾ (EULA)", + "purchaseNotLinked": "ഈ App Store വാങ്ങൽ നിങ്ങളുടെ Kilo അക്കൗണ്ടുമായി ലിങ്ക് ചെയ്തിട്ടില്ല. വാങ്ങൽ നടത്തിയ Apple ID-യിൽ സൈൻ ഇൻ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", + "purchaseDifferentAccount": "ഈ App Store വാങ്ങൽ നിങ്ങളുടെ Kilo അക്കൗണ്ടുമായി ലിങ്ക് ചെയ്തിട്ടില്ല. വാങ്ങലിനായി ഉപയോഗിച്ച Apple അക്കൗണ്ടിൽ സൈൻ ഇൻ ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", + "restoreFailed": "വാങ്ങലുകൾ പുനഃസ്ഥാപിക്കുന്നതിൽ പരാജയപ്പെട്ടു. വീണ്ടും ശ്രമിക്കുക.", + "purchaseFailed": "വാങ്ങൽ പൂർത്തിയാക്കുന്നതിൽ പരാജയപ്പെട്ടു.", + "purchaseStartFailed": "App Store വാങ്ങൽ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "തുറന്നത്", "statusPaid": "അടച്ചത്", "statusVoid": "വാലിഡ് അല്ലാത്തത്", - "title": "ഇൻവോയ്സുകൾ" + "title": "ഇൻവോയ്സുകൾ", + "downloadFailed": "ഇൻവോയ്സ് ഡൗൺലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.", + "sharingUnavailable": "ഈ ഉപകരണത്തിൽ പങ്കിടൽ ലഭ്യമല്ല." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "സൈൻ ഇൻ പരാജയപ്പെട്ടു. വീണ്ടും ശ്രമിക്കുക.", "networkError": "നെറ്റ്വർക്ക് പിശക്. വീണ്ടും ശ്രമിക്കുക.", "accessDeniedByUser": "ഉപയോക്താവ് ആക്സസ് നിരസിച്ചു", - "codeExpired": "കോഡ് കാലഹരണപ്പെട്ടു" + "codeExpired": "കോഡ് കാലഹരണപ്പെട്ടു", + "tooManySignInAttempts": "വളരെയധികം സൈൻ-ഇൻ ശ്രമങ്ങൾ. കാത്തിരുന്ന് വീണ്ടും ശ്രമിക്കുക." }, "models": { "dataCollected": "ശേഖരിച്ച ഡാറ്റ", diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index ec78ab717b..75d032a3d9 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -24,7 +24,10 @@ "required": "шаардлагатай", "error": "алдаа: {{error}}", "back": "Буцах", - "somethingWentWrong": "Ямар нэгэн алдаа гарлаа" + "somethingWentWrong": "Ямар нэгэн алдаа гарлаа", + "couldNotOpen": "{{label}} нээх боломжгүй", + "link": "холбоос", + "takingLonger": "Энэ хүлээгдэж байснаас удаж байна. Та үүнийг хааж, дахин шалгаж болно." }, "language": { "title": "Хэл", @@ -576,6 +579,12 @@ "commentPosted": "Сэтгэгдэл нийтлэгдсэн", "reviewSubmitted": "Тойм илгээгдсэн", "autoMergeEnabled": "Авто-нэгтгэл идэвхжсэн" + }, + "mutationError": { + "commentNotPosted": "Энэ сэтгэгдлийг нийтлэх боломжгүй. Сонгосон мөр өөрчлөгдсөн эсвэл PR шинэчлэгдсэн байж болзошгүй.", + "reviewNotSubmitted": "Энэ тоймыг байгаагаар нь илгээх боломжгүй. PR өөрчлөгдсөн эсвэл та өөрийн pull request-оо тоймлож чадахгүй байж болзошгүй.", + "couldNotPostComment": "Сэтгэгдэл нийтлэх боломжгүй.", + "couldNotSubmitReview": "Тойм илгээх боломжгүй. Холболтоо шалгаад дахин оролдоно уу." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Файл хоосон байна", "classificationTooLarge": "Файлууд 20 MB буюу түүнээс бага байх ёстой", "classificationUnreadable": "Энэ файлыг уншиж чадсангүй", - "announceUploaded": "Хавсралт байршуулагдсан" + "announceUploaded": "Хавсралт байршуулагдсан", + "cantUpload": "Энэ файлыг байршуулах боломжгүй.", + "networkError": "Сүлжээний алдаа", + "uploadFailed": "Байршуулалт амжилтгүй боллоо", + "failedToUploadFile": "Файл байршуулах боломжгүй боллоо: {{reason}}", + "nothingToPaste": "Буулгах зүйл алга" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Оч", "strongArm": "Хүчтэй гар", "talisman": "Талисман" - } + }, + "remoteSpawnFilesNotSupported": "Энэ инстанц файл хүлээн авах боломжгүй." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Шийдвэргүй", "noResult": "Үр дүнгүй" }, - "eyebrow": "Код шалгагч" + "eyebrow": "Код шалгагч", + "updateFailed": "Шалгагчийг шинэчлэх боломжгүй", + "configSaveFailed": "Тоймын тохиргоог хадгалах боломжгүй" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Одоо байгаа засварууд дараалалд орлоо", "analysisComplete": "Шинжилгээ дууссан", "syncComplete": "Синк дууссан" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Аюулгүй байдлын үйлчилгээ тохируулагдаагүй байна. Үүнийг засах хүртэл дахин илгээх амжилтгүй болно.", + "syncMayNotHaveCompleted": "Синк дуусаагүй байж болзошгүй. Үүнийг зохицуулахын тулд дахин оролдох, эсвэл хаях.", + "syncInProgress": "Аюулгүй байдлын синк аль хэдийн явагдаж байна. Дахин оролдоно уу.", + "dismissalInProgress": "Энэ хасалт аль хэдийн явагдаж байна. Дахин оролдоно уу.", + "couldNotReadPendingSyncs": "Хүлээгдэж буй синкүүдийг унших боломжгүй. Дахин оролдоно уу." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Энэ төхөөрөмж офлайн хувиргах боломжгүй. Таны бичлэгийг текст болгохын тулд {{provider}} руу илгээнэ. Kilo аудиог хадгалахгүй.", "allow": "Зөвшөөрөх", "start": "Дуу оруулалтыг эхлүүл", - "stop": "Дуу оруулалтыг зогсоо" + "stop": "Дуу оруулалтыг зогсоо", + "restricted": "Энэ төхөөрөмж дээр дуу оруулалтыг хязгаарласан.", + "micRequired": "Дуу оруулалтад микрофон руу хандах эрх шаардлагатай.", + "micOff": "Микрофон руу хандах эрх унтарсан байна. Дуу оруулалт хэрэглэхийн тулд Тохиргоо хэсэгт идэвхжүүлнэ үү.", + "micOffTitle": "Микрофон руу хандах эрх унтарсан", + "noSpeech": "Яриа илрээгүй. Дахин оролдохын тулд микрофоныг товшино уу.", + "needsConnection": "Дуу оруулалтад яг одоо холболт хэрэгтэй. Дахин оролдоно уу.", + "busy": "Дуу оруулалт завгүй байна. Дахин оролдоно уу.", + "stopped": "Дуу оруулалт зогссон. Дахин оролдохын тулд микрофоныг товшино уу.", + "unavailableDevice": "Энэ төхөөрөмж дээр дуу оруулалт боломжгүй.", + "unavailableLanguage": "Энэ төхөөрөмжийн хэлэнд дуу оруулалт боломжгүй." }, "share": { "title": "Kilo руу хуваалцах", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Энэ Kilo Pass вэб дээр удирдагддаг.", "legalDisclosure": "Kilo Pass нь автоматаар шинэчлэгддэг сарын захиалга юм. Худалдан авалтыг баталгаажуулснаар төлбөрийг таны Apple ID-ээс авна. Захиалга нь одоогийн хугацаа дуусахаас дор хаяж 24 цагийн өмнө цуцлахгүй бол харуулсан үнээр сар бүр автоматаар шинэчлэгддэг. App Store бүртгэлийн тохиргооноос хүссэн үедээ удирдах эсвэл цуцлах боломжтой.", "legalPrivacyPolicy": "Нууцлалын бодлого", - "legalTermsOfUse": "Ашиглах нөхцөл (EULA)" + "legalTermsOfUse": "Ашиглах нөхцөл (EULA)", + "purchaseNotLinked": "Энэ App Store худалдан авалт таны Kilo бүртгэлтэй холбогдоогүй байна. Худалдан авалт хийсэн Apple ID-д нэвтэрсэн эсэхээ шалгаад дахин оролдоно уу.", + "purchaseDifferentAccount": "Энэ App Store худалдан авалт таны Kilo бүртгэлтэй холбогдоогүй байна. Худалдан авалтад ашигласан Apple Account-д нэвтэрч, дахин оролдоно уу.", + "restoreFailed": "Худалдан авалтуудыг сэргээж чадсангүй. Дахин оролдоно уу.", + "purchaseFailed": "Худалдан авалтыг дуусгаж чадсангүй.", + "purchaseStartFailed": "App Store худалдан авалтыг эхлүүлж чадсангүй." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Нээлттэй", "statusPaid": "Төлсөн", "statusVoid": "Хүчингүй", - "title": "Нэхэмжлэхүүд" + "title": "Нэхэмжлэхүүд", + "downloadFailed": "Нэхэмжлэхийг татах боломжгүй. Холболтоо шалгаад дахин оролдоно уу.", + "sharingUnavailable": "Энэ төхөөрөмж дээр хуваалцах боломжгүй." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Нэвтрэлт амжилтгүй болсон. Дахин оролдоно уу.", "networkError": "Сүлжээний алдаа. Дахин оролдоно уу.", "accessDeniedByUser": "Хэрэглэгч хандалтыг зөвшөөрөөгүй", - "codeExpired": "Кодын хугацаа дууссан" + "codeExpired": "Кодын хугацаа дууссан", + "tooManySignInAttempts": "Хэт олон нэвтрэх оролдлого. Түр хүлээгээд дахин оролдоно уу." }, "models": { "dataCollected": "Цуглуулсан өгөгдөл", diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index 3ddf1c9d94..6507bc6124 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -24,7 +24,10 @@ "required": "आवश्यक", "error": "त्रुटी: {{error}}", "back": "मागे", - "somethingWentWrong": "काहीतरी चूक झाली" + "somethingWentWrong": "काहीतरी चूक झाली", + "couldNotOpen": "{{label}} उघडता आले नाही", + "link": "लिंक", + "takingLonger": "हे अपेक्षेपेक्षा जास्त वेळ घेत आहे. तुम्ही हे बंद करून पुन्हा तपासू शकता." }, "language": { "title": "भाषा", @@ -576,6 +579,12 @@ "commentPosted": "टिप्पणी पोस्ट केली", "reviewSubmitted": "पुनरावलोकन सादर केले", "autoMergeEnabled": "ऑटो-मर्ज सक्षम केले" + }, + "mutationError": { + "commentNotPosted": "ही टिप्पणी पोस्ट करता येत नाही. निवडलेली ओळ बदलली असू शकते, किंवा PR अद्ययावत केला गेला असू शकतो.", + "reviewNotSubmitted": "हा पुनरावलोकन जसा आहे तसा सादर करता येत नाही. PR बदलला असू शकतो, किंवा तुम्ही तुमच्या स्वतःच्या पुल रिक्वेस्टचे पुनरावलोकन करू शकत नाही.", + "couldNotPostComment": "टिप्पणी पोस्ट करता आली नाही.", + "couldNotSubmitReview": "पुनरावलोकन सादर करता आले नाही. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "फाइल रिकामी आहे", "classificationTooLarge": "फाइल्स 20 MB किंवा त्यापेक्षा लहान असाव्यात", "classificationUnreadable": "ही फाइल वाचता आली नाही", - "announceUploaded": "संलग्नता अपलोड केली" + "announceUploaded": "संलग्नता अपलोड केली", + "cantUpload": "ही फाइल अपलोड करता येत नाही.", + "networkError": "नेटवर्क त्रुटी", + "uploadFailed": "अपलोड अयशस्वी", + "failedToUploadFile": "फाइल अपलोड करण्यात अयशस्वी: {{reason}}", + "nothingToPaste": "पेस्ट करण्यासारखे काही नाही" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "चकाकी", "strongArm": "मजबूत हात", "talisman": "ताईत" - } + }, + "remoteSpawnFilesNotSupported": "या इन्स्टन्सला फाइल्स मिळू शकत नाहीत." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "निर्णय नाही", "noResult": "परिणाम नाही" }, - "eyebrow": "कोड रिव्ह्यूअर" + "eyebrow": "कोड रिव्ह्यूअर", + "updateFailed": "पुनरावलोकक अद्ययावत करण्यात अयशस्वी", + "configSaveFailed": "पुनरावलोकन कॉन्फिग जतन करण्यात अयशस्वी" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "विद्यमान उपाय रांगेत ठेवले", "analysisComplete": "विश्लेषण पूर्ण", "syncComplete": "समक्रमण पूर्ण" + }, + "mutations": { + "serviceNotConfiguredResubmit": "सुरक्षा सेवा कॉन्फिगर केलेली नाही. हे निराकरण होईपर्यंत पुन्हा सादर करणे यशस्वी होऊ शकत नाही.", + "syncMayNotHaveCompleted": "समक्रमण पूर्ण झाले नसावे. ते समेट करण्यासाठी पुन्हा प्रयत्न करा, किंवा टाकून द्या.", + "syncInProgress": "सुरक्षा समक्रमण आधीच सुरू आहे. कृपया पुन्हा प्रयत्न करा.", + "dismissalInProgress": "हे रद्दीकरण आधीच सुरू आहे. कृपया पुन्हा प्रयत्न करा.", + "couldNotReadPendingSyncs": "प्रलंबित समक्रमण वाचता आले नाही. पुन्हा प्रयत्न करा." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ही डिव्हाइस ऑफलाइन ट्रान्सक्राइब करू शकत नाही. ते मजकुरात बदलण्यासाठी तुमचे रेकॉर्डिंग {{provider}} कडे पाठवले जाते. Kilo ऑडिओ साठवत नाही.", "allow": "परवानगी द्या", "start": "व्हॉइस इनपुट सुरू करा", - "stop": "व्हॉइस इनपुट थांबवा" + "stop": "व्हॉइस इनपुट थांबवा", + "restricted": "या डिव्हाइसवर व्हॉइस इनपुट प्रतिबंधित आहे.", + "micRequired": "व्हॉइस इनपुटसाठी मायक्रोफोन प्रवेश आवश्यक आहे.", + "micOff": "मायक्रोफोन प्रवेश बंद आहे. व्हॉइस इनपुट वापरण्यासाठी तो सेटिंग्जमध्ये सक्षम करा.", + "micOffTitle": "मायक्रोफोन प्रवेश बंद आहे", + "noSpeech": "भाषण आढळले नाही. पुन्हा प्रयत्न करण्यासाठी मायक्रोफोनवर टॅप करा.", + "needsConnection": "व्हॉइस इनपुटला आत्ता कनेक्शनची गरज आहे. पुन्हा प्रयत्न करा.", + "busy": "व्हॉइस इनपुट व्यस्त आहे. पुन्हा प्रयत्न करा.", + "stopped": "व्हॉइस इनपुट थांबले. पुन्हा प्रयत्न करण्यासाठी मायक्रोफोनवर टॅप करा.", + "unavailableDevice": "या डिव्हाइसवर व्हॉइस इनपुट उपलब्ध नाही.", + "unavailableLanguage": "या डिव्हाइसच्या भाषेसाठी व्हॉइस इनपुट उपलब्ध नाही." }, "share": { "title": "Kilo ला शेअर करा", @@ -2549,7 +2583,12 @@ "webManagementDescription": "हे Kilo Pass वेबवर व्यवस्थापित केले जाते.", "legalDisclosure": "Kilo Pass ही आपोआप नूतनीकरण होणारी मासिक सदस्यता आहे. खरेदीच्या पुष्टीकरणावर पेमेंट तुमच्या Apple ID वर आकारले जाते. सदस्यता सध्याच्या कालावधीच्या समाप्तीच्या किमान 24 तास आधी रद्द न केल्यास दरमहा दाखवलेल्या किंमतीवर आपोआप नूतनीकरण होते. तुमच्या App Store खाते सेटिंग्जमध्ये कधीही व्यवस्थापित करा किंवा रद्द करा.", "legalPrivacyPolicy": "गोपनीयता धोरण", - "legalTermsOfUse": "वापराच्या अटी (EULA)" + "legalTermsOfUse": "वापराच्या अटी (EULA)", + "purchaseNotLinked": "ही App Store खरेदी तुमच्या Kilo खात्याशी लिंक नाही. खरेदी केलेल्या Apple ID मध्ये साइन इन केले असल्याची खात्री करा, नंतर पुन्हा प्रयत्न करा.", + "purchaseDifferentAccount": "ही App Store खरेदी तुमच्या Kilo खात्याशी लिंक नाही. खरेदीसाठी वापरलेल्या Apple खात्यात साइन इन करा, नंतर पुन्हा प्रयत्न करा.", + "restoreFailed": "खरेदी पुनर्संचयित करण्यात अयशस्वी. पुन्हा प्रयत्न करा.", + "purchaseFailed": "खरेदी पूर्ण करण्यात अयशस्वी.", + "purchaseStartFailed": "App Store खरेदी सुरू करण्यात अयशस्वी." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "उघडे", "statusPaid": "दिलेले", "statusVoid": "रद्द", - "title": "इनव्हॉइस" + "title": "इनव्हॉइस", + "downloadFailed": "इनव्हॉइस डाउनलोड करता आले नाही. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.", + "sharingUnavailable": "या डिव्हाइसवर सामायिकरण उपलब्ध नाही." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "साइन इन अयशस्वी झाले. कृपया पुन्हा प्रयत्न करा.", "networkError": "नेटवर्क त्रुटी. कृपया पुन्हा प्रयत्न करा.", "accessDeniedByUser": "वापरकर्त्याने प्रवेश नाकारला", - "codeExpired": "कोड कालबाह्य झाला" + "codeExpired": "कोड कालबाह्य झाला", + "tooManySignInAttempts": "खूप जास्त साइन-इन प्रयत्न. कृपया थांबा आणि पुन्हा प्रयत्न करा." }, "models": { "dataCollected": "संकलित डेटा", diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index 308fb2d1fe..a68a876be7 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -24,7 +24,10 @@ "required": "diperlukan", "error": "ralat: {{error}}", "back": "Kembali", - "somethingWentWrong": "Ada sesuatu yang tidak kena" + "somethingWentWrong": "Ada sesuatu yang tidak kena", + "couldNotOpen": "Tidak dapat membuka {{label}}", + "link": "pautan", + "takingLonger": "Ini mengambil masa lebih lama daripada jangkaan. Anda boleh menutup ini dan menyemak semula." }, "language": { "title": "Bahasa", @@ -392,7 +395,7 @@ "thumbsUp": "Ibu jari ke atas", "thumbsDown": "Ibu jari ke bawah", "laugh": "Ketawa", - "hooray": "Hooray", + "hooray": "Hore", "confused": "Keliru", "heart": "Hati", "rocket": "Roket", @@ -576,6 +579,12 @@ "commentPosted": "Komen disiarkan", "reviewSubmitted": "Semakan dihantar", "autoMergeEnabled": "Auto-gabung didayakan" + }, + "mutationError": { + "commentNotPosted": "Komen ini tidak boleh disiarkan. Baris yang dipilih mungkin telah berubah, atau PR mungkin telah dikemas kini.", + "reviewNotSubmitted": "Semakan ini tidak boleh dihantar seadanya. PR mungkin telah berubah, atau anda tidak boleh menyemak permintaan tarik anda sendiri.", + "couldNotPostComment": "Tidak dapat menyiarkan komen.", + "couldNotSubmitReview": "Tidak dapat menghantar semakan. Semak sambungan anda dan cuba lagi." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Fail kosong", "classificationTooLarge": "Fail mesti 20 MB atau lebih kecil", "classificationUnreadable": "Tidak dapat membaca fail ini", - "announceUploaded": "Lampiran dimuat naik" + "announceUploaded": "Lampiran dimuat naik", + "cantUpload": "Fail ini tidak boleh dimuat naik.", + "networkError": "Ralat rangkaian", + "uploadFailed": "Muat naik gagal", + "failedToUploadFile": "Gagal memuat naik fail: {{reason}}", + "nothingToPaste": "Tiada apa untuk ditampal" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Berkilau", "strongArm": "Lengan kuat", "talisman": "Azimat" - } + }, + "remoteSpawnFilesNotSupported": "Instance ini tidak boleh menerima fail." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Tiada keputusan", "noResult": "Tiada hasil" }, - "eyebrow": "Semakan Kod" + "eyebrow": "Semakan Kod", + "updateFailed": "Gagal mengemas kini penyemak", + "configSaveFailed": "Gagal menyimpan konfigurasi semakan" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Pemulihan sedia ada dijadualkan", "analysisComplete": "Analisis selesai", "syncComplete": "Penyegerakan selesai" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Perkhidmatan keselamatan tidak dikonfigurasikan. Penghantaran semula tidak boleh berjaya sehingga ini dibaiki.", + "syncMayNotHaveCompleted": "Penyegerakan mungkin belum selesai. Cuba semula untuk menyelaraskannya, atau buang.", + "syncInProgress": "Penyegerakan keselamatan sedang berjalan. Sila cuba lagi.", + "dismissalInProgress": "Pembuangan ini sedang berjalan. Sila cuba lagi.", + "couldNotReadPendingSyncs": "Tidak dapat membaca penyegerakan yang belum selesai. Cuba lagi." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Peranti ini tidak boleh mentranskripsikan di luar talian. Rakaman anda dihantar ke {{provider}} untuk menukarnya kepada teks. Kilo tidak menyimpan audio tersebut.", "allow": "Benarkan", "start": "Mula input suara", - "stop": "Henti input suara" + "stop": "Henti input suara", + "restricted": "Input suara disekat pada peranti ini.", + "micRequired": "Akses mikrofon diperlukan untuk input suara.", + "micOff": "Akses mikrofon dimatikan. Dayakan dalam Tetapan untuk menggunakan input suara.", + "micOffTitle": "Akses mikrofon dimatikan", + "noSpeech": "Tiada pertuturan dikesan. Ketik mikrofon untuk mencuba lagi.", + "needsConnection": "Input suara memerlukan sambungan sekarang. Cuba lagi.", + "busy": "Input suara sibuk. Cuba lagi.", + "stopped": "Input suara dihentikan. Ketik mikrofon untuk mencuba lagi.", + "unavailableDevice": "Input suara tidak tersedia pada peranti ini.", + "unavailableLanguage": "Input suara tidak tersedia untuk bahasa peranti ini." }, "share": { "title": "Kongsi ke Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass ini diuruskan di web.", "legalDisclosure": "Kilo Pass ialah langganan bulanan auto-boleh diperbaharui. Bayaran dicaj ke Apple ID anda semasa pengesahan pembelian. Langganan diperbaharui secara automatik setiap bulan pada harga yang dipaparkan melainkan dibatalkan sekurang-kurangnya 24 jam sebelum tamat tempoh semasa. Urus atau batalkan pada bila-bila masa dalam tetapan akaun App Store anda.", "legalPrivacyPolicy": "Dasar Privasi", - "legalTermsOfUse": "Terma Penggunaan (EULA)" + "legalTermsOfUse": "Terma Penggunaan (EULA)", + "purchaseNotLinked": "Pembelian App Store ini tidak dipautkan ke akaun Kilo anda. Pastikan anda log masuk ke Apple ID yang membuat pembelian, kemudian cuba lagi.", + "purchaseDifferentAccount": "Pembelian App Store ini tidak dipautkan ke akaun Kilo anda. Log masuk ke Akaun Apple yang digunakan untuk pembelian, kemudian cuba lagi.", + "restoreFailed": "Gagal memulihkan pembelian. Cuba lagi.", + "purchaseFailed": "Gagal menyiapkan pembelian.", + "purchaseStartFailed": "Gagal memulakan pembelian App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Terbuka", "statusPaid": "Berbayar", "statusVoid": "Batal", - "title": "Invois" + "title": "Invois", + "downloadFailed": "Tidak dapat memuat turun invois. Semak sambungan anda dan cuba lagi.", + "sharingUnavailable": "Perkongsian tidak tersedia pada peranti ini." }, "lowBalanceAlert": { "emailPlaceholder": "nama@syarikat.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Log masuk gagal. Sila cuba lagi.", "networkError": "Ralat rangkaian. Sila cuba lagi.", "accessDeniedByUser": "Akses dinafikan oleh pengguna", - "codeExpired": "Kod tamat tempoh" + "codeExpired": "Kod tamat tempoh", + "tooManySignInAttempts": "Terlalu banyak percubaan log masuk. Sila tunggu dan cuba lagi." }, "models": { "dataCollected": "Data dikumpul", diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 78e8ac5719..6b852d25f7 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -24,7 +24,10 @@ "required": "meħtieġ", "error": "żball: {{error}}", "back": "Lura", - "somethingWentWrong": "Ġara xi ħsara" + "somethingWentWrong": "Ġara xi ħsara", + "couldNotOpen": "Ma setax jinfetaħ {{label}}", + "link": "link", + "takingLonger": "Dan qed jieħu aktar żmien milli mistenni. Tista' tagħlaq dan u tiċċekkja għal darb'oħra." }, "language": { "title": "Lingwa", @@ -597,6 +600,12 @@ "commentPosted": "Il-kument ittpoġġa", "reviewSubmitted": "Ir-reviżjoni ntbagħtet", "autoMergeEnabled": "L-auto-merge ġie attivat" + }, + "mutationError": { + "commentNotPosted": "Dan il-kument ma jistax jitpoġġa. Il-linja magħżula setgħet inbidlet, jew il-PR seta' ġie aġġornat.", + "reviewNotSubmitted": "Din ir-reviżjoni ma tistax tintbagħat kif inhi. Il-PR seta' nbidel, jew ma tistax tirrevedi l-pull request tiegħek stess.", + "couldNotPostComment": "Ma setax jitpoġġa kument.", + "couldNotSubmitReview": "Ma setgħetx tintbagħat ir-reviżjoni. Iċċekkja l-konnessjoni tiegħek u erġa' pprova." } }, "notifications": { @@ -735,7 +744,12 @@ "classificationEmpty": "Il-fajl huwa vojt", "classificationTooLarge": "Il-fajls iridu jkunu 20 MB jew iżgħar", "classificationUnreadable": "Ma setax jinqara dan il-fajl", - "announceUploaded": "L-attachment tela'" + "announceUploaded": "L-attachment tela'", + "cantUpload": "Dan il-fajl ma jistax jittella'.", + "networkError": "Żball tan-netwerk", + "uploadFailed": "L-upload fallejt", + "failedToUploadFile": "Ma rnexxiliex ttella' l-fajl: {{reason}}", + "nothingToPaste": "Xejn x'tippejstja" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1199,7 +1213,8 @@ "sparkles": "Tleqqijiet", "strongArm": "Driegħ b'saħħtu", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Din l-istanza ma tistax tirċievi fajls." }, "codeReviewer": { "focusAreas": { @@ -1386,7 +1401,9 @@ "noDecision": "L-ebda deċiżjoni", "noResult": "L-ebda riżultat" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Ma setax jiġi aġġornat ir-reviżur", + "configSaveFailed": "Ma setgħetx tiġi ssejvjata l-konfigurazzjoni tar-reviżjoni" }, "securityAgent": { "filter": { @@ -1814,6 +1831,13 @@ "remediationsQueued": "Ir-rimedji eżistenti fil-kju", "analysisComplete": "L-analiżi kompluta", "syncComplete": "Is-sinkronizzazzjoni kompluta" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Is-servizz tas-sigurtà mhuwiex ikkonfigurat. L-erġa' sottomissjoni ma tistax tirnexxi sakemm dan jitranġa.", + "syncMayNotHaveCompleted": "Jista' jkun li sinkronizzazzjoni ma tlestietx. Erġa' pprova biex tirrikonċiljaha, jew warrabha.", + "syncInProgress": "Sinkronizzazzjoni tas-sigurtà diġà għaddejja. Jekk jogħġbok erġa' pprova.", + "dismissalInProgress": "Dan it-twarrib diġà qed isir. Jekk jogħġbok erġa' pprova.", + "couldNotReadPendingSyncs": "Ma setgħux jinqraw is-sinkronizzazzjonijiet pendenti. Erġa' pprova." } }, "agents": { @@ -2525,7 +2549,17 @@ "onlineMessage": "Dan it-tagħmir ma jistax jittraskrivi offline. Ir-reġistrazzjoni tiegħek tintbagħat lil {{provider}} biex tittrasforma fi test. Kilo ma jaħżinx l-awdjo.", "allow": "Ippermetti", "start": "Ibda d-dħul bil-vuċi", - "stop": "Waqqaf id-dħul bil-vuċi" + "stop": "Waqqaf id-dħul bil-vuċi", + "restricted": "Id-dħul bil-vuċi huwa ristrett fuq dan it-tagħmir.", + "micRequired": "L-aċċess għall-mikrofonu huwa meħtieġ għad-dħul bil-vuċi.", + "micOff": "L-aċċess għall-mikrofonu huwa mitfi. Attivah fis-Settings biex tuża d-dħul bil-vuċi.", + "micOffTitle": "L-aċċess għall-mikrofonu huwa mitfi", + "noSpeech": "L-ebda diskors ma nstab. Tektek il-mikrofonu biex terġa' tipprova.", + "needsConnection": "Id-dħul bil-vuċi jeħtieġ konnessjoni bħalissa. Erġa' pprova.", + "busy": "Id-dħul bil-vuċi huwa okkupat. Erġa' pprova.", + "stopped": "Id-dħul bil-vuċi waqaf. Tektek il-mikrofonu biex terġa' tipprova.", + "unavailableDevice": "Id-dħul bil-vuċi mhux disponibbli fuq dan it-tagħmir.", + "unavailableLanguage": "Id-dħul bil-vuċi mhux disponibbli għal din il-lingwa tal-apparat." }, "share": { "title": "Aqsam ma' Kilo", @@ -2603,7 +2637,12 @@ "webManagementDescription": "Dan il-Kilo Pass jitmexxa fuq il-web.", "legalDisclosure": "Kilo Pass huwa abbonament mensili li jiġġedded awtomatikament. Il-ħlas jitħallas mill-Apple ID tiegħek fil-konferma tax-xiri. L-abbonamenti jiġġeddu awtomatikament kull xahar bil-prezz muri sakemm ma jitħassrux mill-inqas 24 siegħa qabel it-tmiem tal-perjodu attwali. Immaniġġja jew ikkanċella fi kwalunkwe ħin fis-settings tal-kont tal-App Store tiegħek.", "legalPrivacyPolicy": "Politika tal-Privatezza", - "legalTermsOfUse": "Termini tal-Użu (EULA)" + "legalTermsOfUse": "Termini tal-Użu (EULA)", + "purchaseNotLinked": "Dan ix-xiri mill-App Store mhuwiex marbut mal-kont ta' Kilo tiegħek. Kun żgur li inti idħolt fl-Apple ID li għamel ix-xiri, imbagħad erġa' pprova.", + "purchaseDifferentAccount": "Dan ix-xiri mill-App Store mhuwiex marbut mal-kont ta' Kilo tiegħek. Idħol fil-kont tal-Apple użat għax-xiri, imbagħad erġa' pprova.", + "restoreFailed": "Ma setgħux jiġu restawrati x-xirjiet. Erġa' pprova.", + "purchaseFailed": "Ma setax jitlesta x-xiri.", + "purchaseStartFailed": "Ma setax jibda x-xiri mill-App Store." }, "consent": { "kilo": "Kilo", @@ -2736,7 +2775,9 @@ "statusOpen": "Miftuħ", "statusPaid": "Imħallas", "statusVoid": "Battal", - "title": "Fatturi" + "title": "Fatturi", + "downloadFailed": "Ma setgħetx titniżżel il-fattura. Iċċekkja l-konnessjoni tiegħek u erġa' pprova.", + "sharingUnavailable": "Il-qsim mhux disponibbli fuq dan it-tagħmir." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2859,7 +2900,8 @@ "signInFailed": "Id-dħul fallejt. Jekk jogħġbok erġa' pprova.", "networkError": "Żball tan-netwerk. Jekk jogħġbok erġa' pprova.", "accessDeniedByUser": "L-aċċess ġie miċħud mill-utent", - "codeExpired": "Il-kodiċi skada" + "codeExpired": "Il-kodiċi skada", + "tooManySignInAttempts": "Wisq tentattivi ta' dħul. Jekk jogħġbok stenna u erġa' pprova." }, "models": { "dataCollected": "Dejta miġbura", diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index 07e24bfd56..b11332cf73 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -24,7 +24,10 @@ "required": "လိုအပ်", "error": "အမှား: {{error}}", "back": "နောက်သို့", - "somethingWentWrong": "တစ်ခုခု မှားသွားသည်" + "somethingWentWrong": "တစ်ခုခု မှားသွားသည်", + "couldNotOpen": "{{label}} ဖွင့်၍မရပါ", + "link": "လင့်ခ်", + "takingLonger": "ဤအရာသည် မျှော်လင့်ထားသည်ထက် ပိုကြာနေသည်။ ၎င်းကို ပိတ်ပြီး ပြန်စစ်ကြည့်နိုင်ပါသည်။" }, "language": { "title": "ဘာသာစကား", @@ -576,6 +579,12 @@ "commentPosted": "မှတ်ချက် တင်ပြီးပါပြီ", "reviewSubmitted": "သုံးသပ်မှု တင်သွင်းပြီးပါပြီ", "autoMergeEnabled": "အလိုအလျောက် ပေါင်းစည်းမှု ဖွင့်ပြီးပါပြီ" + }, + "mutationError": { + "commentNotPosted": "ဤမှတ်ချက်ကို တင်၍မရပါ။ ရွေးထားသော စာကြောင်း ပြောင်းသွားခြင်း သို့မဟုတ် PR ကို အပ်ဒိတ်လုပ်ထားခြင်း ဖြစ်နိုင်သည်။", + "reviewNotSubmitted": "ဤသုံးသပ်မှုကို လက်ရှိအတိုင်း တင်သွင်း၍မရပါ။ PR ပြောင်းလဲသွားခြင်း သို့မဟုတ် သင့်ကိုယ်ပိုင် pull request ကို သင်သုံးသပ်၍မရခြင်း ဖြစ်နိုင်သည်။", + "couldNotPostComment": "မှတ်ချက် တင်နိုင်ခြင်း မရှိပါ။", + "couldNotSubmitReview": "သုံးသပ်မှု တင်သွင်း၍မရပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ပြီး ထပ်စမ်းကြည့်ပါ။" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ဖိုင် ဗလာဖြစ်သည်", "classificationTooLarge": "ဖိုင်များသည် 20 MB သို့မဟုတ် ထိုထက်နည်းရပါမည်", "classificationUnreadable": "ဤဖိုင်ကို ဖတ်၍မရပါ", - "announceUploaded": "တွဲထားသောဖိုင် တင်ပြီးပါပြီ" + "announceUploaded": "တွဲထားသောဖိုင် တင်ပြီးပါပြီ", + "cantUpload": "ဤဖိုင်ကို အပ်လုဒ်တင်၍မရပါ။", + "networkError": "ကွန်ရက်အမှား", + "uploadFailed": "အပ်လုဒ် မအောင်မြင်ပါ", + "failedToUploadFile": "ဖိုင်အပ်လုဒ် မအောင်မြင်ပါ: {{reason}}", + "nothingToPaste": "ကူးထည့်စရာ မရှိပါ" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ကြယ်များတောက်ပ", "strongArm": "သန်မာသောလက်မောင်း", "talisman": "လက်ဆွဲရတနာ" - } + }, + "remoteSpawnFilesNotSupported": "ဤ instance သည် ဖိုင်များကို လက်ခံ၍မရပါ။" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "ဆုံးဖြတ်ချက် မရှိ", "noResult": "ရလဒ် မရှိ" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "သုံးသပ်သူကို အပ်ဒိတ်လုပ်ရန် မအောင်မြင်ပါ", + "configSaveFailed": "သုံးသပ်မှု ဆက်တင်ကို သိမ်းရန် မအောင်မြင်ပါ" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ရှိပြီးသား ပြုပြင်မှုများ တန်းစီထားပါသည်", "analysisComplete": "ခွဲခြမ်းစိတ်ဖြာမှု ပြီးစီးပါပြီ", "syncComplete": "စင့်ခ် ပြီးစီးပါပြီ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "လုံခြုံရေး ဝန်ဆောင်မှုကို ပြင်ဆင်သတ်မှတ်ထားခြင်း မရှိပါ။ ၎င်းကို ပြုပြင်ပြီးမှသာ ပြန်တင်သွင်းခြင်း အောင်မြင်နိုင်ပါသည်။", + "syncMayNotHaveCompleted": "ထပ်တူပြုမှု ပြီးမြောက်ခြင်း မရှိခဲ့နိုင်ပါ။ ညှိရန် ထပ်စမ်းကြည့်ပါ သို့မဟုတ် စွန့်ပစ်ပါ။", + "syncInProgress": "လုံခြုံရေး ထပ်တူပြုမှုတစ်ခု လုပ်ဆောင်နေပြီးဖြစ်သည်။ ထပ်စမ်းကြည့်ပါ။", + "dismissalInProgress": "ဤဖျက်သိမ်းမှု လုပ်ဆောင်နေပြီးဖြစ်သည်။ ထပ်စမ်းကြည့်ပါ။", + "couldNotReadPendingSyncs": "ဆိုင်းငံ့ထားသော ထပ်တူပြုမှုများကို ဖတ်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ဤစက်သည် အော့ဖ်လိုင်း transcription မလုပ်နိုင်ပါ။ သင့်အသံဖမ်းယူမှုကို စာသားအဖြစ်ပြောင်းရန် {{provider}} သို့ ပို့သည်။ Kilo သည် အသံကို မသိမ်းဆည်းပါ။", "allow": "ခွင့်ပြုပါ", "start": "အသံ ထည့်​သွင်း​မှု စတင်​ပါ", - "stop": "အသံ ထည့်​သွင်း​မှု ရပ်​ပါ" + "stop": "အသံ ထည့်​သွင်း​မှု ရပ်​ပါ", + "restricted": "ဤစက်တွင် အသံထည့်သွင်းမှုကို ကန့်သတ်ထားသည်။", + "micRequired": "အသံထည့်သွင်းမှုအတွက် မိုက်ခရိုဖုန်း အသုံးပြုခွင့် လိုအပ်သည်။", + "micOff": "မိုက်ခရိုဖုန်း အသုံးပြုခွင့် ပိတ်ထားသည်။ အသံထည့်သွင်းမှု သုံးရန် ဆက်တင်များတွင် ဖွင့်ပါ။", + "micOffTitle": "မိုက်ခရိုဖုန်း အသုံးပြုခွင့် ပိတ်ထားသည်", + "noSpeech": "စကားသံ မတွေ့ပါ။ ထပ်စမ်းရန် မိုက်ခရိုဖုန်းကို နှိပ်ပါ။", + "needsConnection": "အသံထည့်သွင်းမှုသည် ယခု ချိတ်ဆက်မှု လိုအပ်သည်။ ထပ်စမ်းကြည့်ပါ။", + "busy": "အသံထည့်သွင်းမှု အလုပ်ရှုပ်နေသည်။ ထပ်စမ်းကြည့်ပါ။", + "stopped": "အသံထည့်သွင်းမှု ရပ်သွားသည်။ ထပ်စမ်းရန် မိုက်ခရိုဖုန်းကို နှိပ်ပါ။", + "unavailableDevice": "ဤစက်တွင် အသံထည့်သွင်းမှု မရနိုင်ပါ။", + "unavailableLanguage": "ဤစက်၏ ဘာသာစကားအတွက် အသံထည့်သွင်းမှု မရနိုင်ပါ။" }, "share": { "title": "Kilo သို့ မျှဝေရန်", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ဤ Kilo Pass ကို ဝဘ်တွင် စီမံ​သည်​။", "legalDisclosure": "Kilo Pass သည် အလိုအလျောက် သက်တမ်းတိုးနိုင်သော လစဉ် စာရင်းသွင်းမှု တစ်ခု ဖြစ်သည်။ ဝယ်ယူမှုကို အတည်ပြုချိန်တွင် သင့် Apple ID မှ ငွေကောက်ခံသည်။ လက်ရှိကာလမကုန်မီ အနည်းဆုံး ၂၄ နာရီကြိုတင် မဖျက်သိမ်းပါက စာရင်းသွင်းမှုများသည် ပြသထားသော ဈေးနှုန်းဖြင့် လစဉ် အလိုအလျောက် သက်တမ်းတိုးသည်။ သင့် App Store အကောင့်ဆက်တင်များတွင် အချိန်မရွေး စီမံပါ သို့မဟုတ် ဖျက်သိမ်းပါ။", "legalPrivacyPolicy": "ကိုယ်ရေးအချက်အလက် မူဝါဒ", - "legalTermsOfUse": "အသုံးပြုမှု စည်းကမ်းများ (EULA)" + "legalTermsOfUse": "အသုံးပြုမှု စည်းကမ်းများ (EULA)", + "purchaseNotLinked": "ဤ App Store ဝယ်ယူမှုသည် သင့် Kilo အကောင့်နှင့် မချိတ်ဆက်ထားပါ။ ဝယ်ယူမှုပြုလုပ်ခဲ့သော Apple ID ဖြင့် ဝင်ထားကြောင်း သေချာစေပြီး ထပ်ကြိုးစားပါ။", + "purchaseDifferentAccount": "ဤ App Store ဝယ်ယူမှုသည် သင့် Kilo အကောင့်နှင့် မချိတ်ဆက်ထားပါ။ ဝယ်ယူမှုအတွက် အသုံးပြုခဲ့သော Apple အကောင့်ဖြင့် ဝင်ပြီး ထပ်ကြိုးစားပါ။", + "restoreFailed": "ဝယ်ယူမှုများ ပြန်ယူရန် မအောင်မြင်ပါ။ ထပ်ကြိုးစားပါ။", + "purchaseFailed": "ဝယ်ယူမှု ပြီးမြောက်ရန် မအောင်မြင်ပါ။", + "purchaseStartFailed": "App Store ဝယ်ယူမှု စတင်ရန် မအောင်မြင်ပါ။" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ဖွင့်ထားသည်", "statusPaid": "ပေးပြီးပါပြီ", "statusVoid": "မတည်တော့", - "title": "ငွေတောင်းခံလွှာများ" + "title": "ငွေတောင်းခံလွှာများ", + "downloadFailed": "ငွေတောင်းခံလွှာကို ဒေါင်းလုဒ်မလုပ်နိုင်ပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ပြီး ထပ်စမ်းကြည့်ပါ။", + "sharingUnavailable": "ဤစက်တွင် မျှဝေခြင်း မရနိုင်ပါ။" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ဝင်ရောက်မှု မအောင်မြင်ပါ။ ထပ်စမ်းကြည့်ပါ။", "networkError": "ကွန်ရက်အမှား။ ထပ်စမ်းကြည့်ပါ။", "accessDeniedByUser": "အသုံးပြုသူက ဝင်ရောက်ခွင့်ကို ငြင်းပယ်ခဲ့သည်", - "codeExpired": "ကုဒ် သက်တမ်းကုန်သွားသည်" + "codeExpired": "ကုဒ် သက်တမ်းကုန်သွားသည်", + "tooManySignInAttempts": "ဝင်ရောက်မှု ကြိုးစားမှု များလွန်းသည်။ ခဏစောင့်ပြီး ထပ်စမ်းကြည့်ပါ။" }, "models": { "dataCollected": "စုဆောင်းထားသော အချက်အလက်", diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index eb2b5b27fa..bc7997815c 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -24,7 +24,10 @@ "required": "påkrevd", "error": "feil: {{error}}", "back": "Tilbake", - "somethingWentWrong": "Noe gikk galt" + "somethingWentWrong": "Noe gikk galt", + "couldNotOpen": "Kunne ikke åpne {{label}}", + "link": "lenke", + "takingLonger": "Dette tar lengre tid enn forventet. Du kan lukke dette og sjekke igjen." }, "language": { "title": "Språk", @@ -576,6 +579,12 @@ "commentPosted": "Kommentar lagt ut", "reviewSubmitted": "Anmeldelse sendt inn", "autoMergeEnabled": "Automatisk fletting aktivert" + }, + "mutationError": { + "commentNotPosted": "Denne kommentaren kan ikke publiseres. Den valgte linjen kan ha endret seg, eller PR-en kan ha blitt oppdatert.", + "reviewNotSubmitted": "Denne anmeldelsen kan ikke sendes inn som den er. PR-en kan ha endret seg, eller du kan ikke anmelde din egen pull request.", + "couldNotPostComment": "Kunne ikke publisere kommentaren.", + "couldNotSubmitReview": "Kunne ikke sende inn anmeldelsen. Sjekk tilkoblingen og prøv igjen." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Filen er tom", "classificationTooLarge": "Filer må være 20 MB eller mindre", "classificationUnreadable": "Kunne ikke lese denne filen", - "announceUploaded": "Vedlegg lastet opp" + "announceUploaded": "Vedlegg lastet opp", + "cantUpload": "Denne filen kan ikke lastes opp.", + "networkError": "Nettverksfeil", + "uploadFailed": "Opplasting mislyktes", + "failedToUploadFile": "Kunne ikke laste opp filen: {{reason}}", + "nothingToPaste": "Ingenting å lime inn" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Gnister", "strongArm": "Sterk arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Denne forekomsten kan ikke motta filer." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Ingen avgjørelse", "noResult": "Ingen resultat" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Kunne ikke oppdatere anmelderen", + "configSaveFailed": "Kunne ikke lagre anmeldelseskonfigurasjonen" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Eksisterende utbedringer satt i kø", "analysisComplete": "Analysen er fullført", "syncComplete": "Synkroniseringen er fullført" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Sikkerhetstjenesten er ikke konfigurert. Ny innsending kan ikke lykkes før dette er fikset.", + "syncMayNotHaveCompleted": "En synkronisering er kanskje ikke fullført. Prøv igjen for å avstemme, eller forkast.", + "syncInProgress": "En sikkerhetssynkronisering pågår allerede. Prøv igjen.", + "dismissalInProgress": "Denne avvisningen pågår allerede. Prøv igjen.", + "couldNotReadPendingSyncs": "Kunne ikke lese ventende synkroniseringer. Prøv igjen." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Denne enheten kan ikke transkribere offline. Opptaket ditt sendes til {{provider}} for å gjøre det om til tekst. Kilo lagrer ikke lyden.", "allow": "Tillat", "start": "Start taleinntasting", - "stop": "Stopp taleinntasting" + "stop": "Stopp taleinntasting", + "restricted": "Taleinntasting er begrenset på denne enheten.", + "micRequired": "Mikrofontilgang kreves for taleinntasting.", + "micOff": "Mikrofontilgang er av. Aktiver den i Innstillinger for å bruke taleinntasting.", + "micOffTitle": "Mikrofontilgang er av", + "noSpeech": "Ingen tale oppdaget. Trykk på mikrofonen for å prøve igjen.", + "needsConnection": "Taleinntasting trenger en tilkobling akkurat nå. Prøv igjen.", + "busy": "Taleinntasting er opptatt. Prøv igjen.", + "stopped": "Taleinntasting stoppet. Trykk på mikrofonen for å prøve igjen.", + "unavailableDevice": "Taleinntasting er ikke tilgjengelig på denne enheten.", + "unavailableLanguage": "Taleinntasting er ikke tilgjengelig for dette enhetsspråket." }, "share": { "title": "Del til Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Denne Kilo Pass-en administreres på nettet.", "legalDisclosure": "Kilo Pass er et automatisk fornybart månedsabonnement. Betaling belastes Apple-ID-en din ved bekreftelse av kjøpet. Abonnementet fornyes automatisk hver måned til prisen som vises, med mindre det kanselleres minst 24 timer før slutten av gjeldende periode. Administrer eller kanseller når som helst i App Store-kontoinnstillingene.", "legalPrivacyPolicy": "Personvernpolicy", - "legalTermsOfUse": "Bruksvilkår (EULA)" + "legalTermsOfUse": "Bruksvilkår (EULA)", + "purchaseNotLinked": "Dette App Store-kjøpet er ikke koblet til Kilo-kontoen din. Kontroller at du er logget på Apple-ID-en som gjorde kjøpet, og prøv igjen.", + "purchaseDifferentAccount": "Dette App Store-kjøpet er ikke koblet til Kilo-kontoen din. Logg på Apple-kontoen som ble brukt for kjøpet, og prøv igjen.", + "restoreFailed": "Kunne ikke gjenopprette kjøp. Prøv igjen.", + "purchaseFailed": "Kunne ikke fullføre kjøpet.", + "purchaseStartFailed": "Kunne ikke starte App Store-kjøpet." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Åpen", "statusPaid": "Betalt", "statusVoid": "Ugyldig", - "title": "Fakturaer" + "title": "Fakturaer", + "downloadFailed": "Kunne ikke laste ned fakturaen. Sjekk tilkoblingen og prøv igjen.", + "sharingUnavailable": "Deling er ikke tilgjengelig på denne enheten." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Påloggingen mislyktes. Prøv igjen.", "networkError": "Nettverksfeil. Prøv igjen.", "accessDeniedByUser": "Tilgang nektet av brukeren", - "codeExpired": "Koden er utløpt" + "codeExpired": "Koden er utløpt", + "tooManySignInAttempts": "For mange påloggingsforsøk. Vent og prøv igjen." }, "models": { "dataCollected": "Data samlet inn", diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index 08a59c868a..2e14cee8a2 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -24,7 +24,10 @@ "required": "आवश्यक", "error": "त्रुटि: {{error}}", "back": "पछाडि", - "somethingWentWrong": "केही गलत भयो" + "somethingWentWrong": "केही गलत भयो", + "couldNotOpen": "{{label}} खोल्न सकिएन", + "link": "लिङ्क", + "takingLonger": "यो अपेक्षा गरिएभन्दा बढी समय लिइरहेको छ। तपाईं यसलाई बन्द गरेर फेरि जाँच्न सक्नुहुन्छ।" }, "language": { "title": "भाषा", @@ -576,6 +579,12 @@ "commentPosted": "टिप्पणी पोस्ट गरियो", "reviewSubmitted": "समीक्षा पेश गरियो", "autoMergeEnabled": "स्वचालित मर्ज सक्षम गरियो" + }, + "mutationError": { + "commentNotPosted": "यो टिप्पणी पोस्ट गर्न सकिँदैन। चयन गरिएको पङ्क्ति परिवर्तन भएको वा PR अद्यावधिक भएको हुन सक्छ।", + "reviewNotSubmitted": "यो समीक्षा जस्तो छ त्यस्तै पेश गर्न सकिँदैन। PR परिवर्तन भएको हुन सक्छ, वा तपाईं आफ्नै पुल अनुरोधको समीक्षा गर्न सक्नुहुन्न।", + "couldNotPostComment": "टिप्पणी पोस्ट गर्न सकिएन।", + "couldNotSubmitReview": "समीक्षा पेश गर्न सकिएन। आफ्नो जडान जाँचेर फेरि प्रयास गर्नुहोस्।" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "फाइल खाली छ", "classificationTooLarge": "फाइलहरू 20 MB वा सानो हुनुपर्छ", "classificationUnreadable": "यो फाइल पढ्न सकिएन", - "announceUploaded": "संलग्न फाइल अपलोड गरियो" + "announceUploaded": "संलग्न फाइल अपलोड गरियो", + "cantUpload": "यो फाइल अपलोड गर्न सकिँदैन।", + "networkError": "नेटवर्क त्रुटि", + "uploadFailed": "अपलोड असफल भयो", + "failedToUploadFile": "फाइल अपलोड गर्न असफल: {{reason}}", + "nothingToPaste": "टाँस्न केही छैन" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "चम्किलाहरू", "strongArm": "बलियो पाखुरा", "talisman": "ताबीज" - } + }, + "remoteSpawnFilesNotSupported": "यो instance ले फाइलहरू प्राप्त गर्न सक्दैन।" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "कुनै निर्णय छैन", "noResult": "कुनै नतिजा छैन" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "समीक्षक अद्यावधिक गर्न असफल भयो", + "configSaveFailed": "समीक्षा कन्फिगरेसन सुरक्षित गर्न असफल भयो" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "अवस्थित सुधारहरू कतारमा राखियो", "analysisComplete": "विश्लेषण पूरा भयो", "syncComplete": "सिन्क पूरा भयो" + }, + "mutations": { + "serviceNotConfiguredResubmit": "सुरक्षा सेवा कन्फिगर गरिएको छैन। यो समाधान नभएसम्म पुनः पेश गर्न सफल हुँदैन।", + "syncMayNotHaveCompleted": "सिंक पूरा नभएको हुन सक्छ। मिलाउन पुनः प्रयास गर्नुहोस्, वा खारेज गर्नुहोस्।", + "syncInProgress": "सुरक्षा सिंक पहिले नै भइरहेको छ। कृपया फेरि प्रयास गर्नुहोस्।", + "dismissalInProgress": "यो खारेजी पहिले नै भइरहेको छ। कृपया फेरि प्रयास गर्नुहोस्।", + "couldNotReadPendingSyncs": "पर्खाइमा रहेका सिंकहरू पढ्न सकिएन। फेरि प्रयास गर्नुहोस्।" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "यो यन्त्रले अनलाइन ट्रान्सक्रिप्ट गर्न सक्दैन। यसलाई पाठमा बदल्न तपाईंको रेकर्डिङ {{provider}} लाई पठाइन्छ। Kilo ले अडियो भण्डारण गर्दैन।", "allow": "अनुमति दिनुहोस्", "start": "भ्वाइस इनपुट सुरु गर्नुहोस्", - "stop": "भ्वाइस इनपुट रोक्नुहोस्" + "stop": "भ्वाइस इनपुट रोक्नुहोस्", + "restricted": "यो यन्त्रमा भ्वाइस इनपुट प्रतिबन्धित छ।", + "micRequired": "भ्वाइस इनपुटका लागि माइक्रोफोन पहुँच आवश्यक छ।", + "micOff": "माइक्रोफोन पहुँच बन्द छ। भ्वाइस इनपुट प्रयोग गर्न सेटिङ्समा यसलाई सक्षम गर्नुहोस्।", + "micOffTitle": "माइक्रोफोन पहुँच बन्द छ", + "noSpeech": "कुनै भाषण पत्ता लागेन। फेरि प्रयास गर्न माइक्रोफोनमा ट्याप गर्नुहोस्।", + "needsConnection": "भ्वाइस इनपुटलाई अहिले जडान चाहिन्छ। फेरि प्रयास गर्नुहोस्।", + "busy": "भ्वाइस इनपुट व्यस्त छ। फेरि प्रयास गर्नुहोस्।", + "stopped": "भ्वाइस इनपुट रोकियो। फेरि प्रयास गर्न माइक्रोफोनमा ट्याप गर्नुहोस्।", + "unavailableDevice": "यो यन्त्रमा भ्वाइस इनपुट उपलब्ध छैन।", + "unavailableLanguage": "यो यन्त्रको भाषाका लागि भ्वाइस इनपुट उपलब्ध छैन।" }, "share": { "title": "Kilo मा साझेदारी गर्नुहोस्", @@ -2549,7 +2583,12 @@ "webManagementDescription": "यो Kilo Pass वेबमा व्यवस्थापन गरिएको छ।", "legalDisclosure": "Kilo Pass स्वतः नवीकरण हुने मासिक सदस्यता हो। खरिद पुष्टि हुँदा भुक्तानी तपाईंको Apple ID बाट लिइन्छ। हालको अवधि समाप्त हुनु कम्तीमा २४ घण्टा अगाडि रद्द नगरेसम्म सदस्यता प्रत्येक महिना देखाइएको मूल्यमा स्वतः नवीकरण हुन्छ। आफ्नो App Store खाता सेटिङमा जुनसुकै बेला व्यवस्थापन वा रद्द गर्नुहोस्।", "legalPrivacyPolicy": "गोपनीयता नीति", - "legalTermsOfUse": "प्रयोगका सर्तहरू (EULA)" + "legalTermsOfUse": "प्रयोगका सर्तहरू (EULA)", + "purchaseNotLinked": "यो App Store खरिद तपाईंको Kilo खातासँग लिङ्क गरिएको छैन। खरिद गरेको Apple ID मा साइन इन गरेको सुनिश्चित गरेर फेरि प्रयास गर्नुहोस्।", + "purchaseDifferentAccount": "यो App Store खरिद तपाईंको Kilo खातासँग लिङ्क गरिएको छैन। खरिदका लागि प्रयोग गरिएको Apple खातामा साइन इन गरेर फेरि प्रयास गर्नुहोस्।", + "restoreFailed": "खरिदहरू पुनः स्थापित गर्न असफल भयो। फेरि प्रयास गर्नुहोस्।", + "purchaseFailed": "खरिद पूरा गर्न असफल भयो।", + "purchaseStartFailed": "App Store खरिद सुरु गर्न असफल भयो।" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "खुला", "statusPaid": "भुक्तान गरिएको", "statusVoid": "रद्द", - "title": "इनभ्वाइसहरू" + "title": "इनभ्वाइसहरू", + "downloadFailed": "इनभ्वाइस डाउनलोड गर्न सकिएन। आफ्नो जडान जाँचेर फेरि प्रयास गर्नुहोस्।", + "sharingUnavailable": "यो यन्त्रमा साझेदारी उपलब्ध छैन।" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "साइन इन असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।", "networkError": "नेटवर्क त्रुटि। कृपया फेरि प्रयास गर्नुहोस्।", "accessDeniedByUser": "प्रयोगकर्ताद्वारा पहुँच अस्वीकार गरियो", - "codeExpired": "कोडको म्याद सकियो" + "codeExpired": "कोडको म्याद सकियो", + "tooManySignInAttempts": "धेरै साइन-इन प्रयास भयो। कृपया पर्खेर फेरि प्रयास गर्नुहोस्।" }, "models": { "dataCollected": "सङ्कलन गरिएको डेटा", diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index 313bf786b8..b6dd59b1e0 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -24,7 +24,10 @@ "notNow": "Niet nu", "continue": "Doorgaan", "back": "Terug", - "somethingWentWrong": "Er is iets misgegaan" + "somethingWentWrong": "Er is iets misgegaan", + "couldNotOpen": "Kon {{label}} niet openen", + "link": "link", + "takingLonger": "Dit duurt langer dan verwacht. Je kunt dit sluiten en later opnieuw controleren." }, "language": { "title": "Taal", @@ -283,7 +286,12 @@ "classificationEmpty": "Bestand is leeg", "classificationTooLarge": "Bestanden moeten 20 MB of kleiner zijn", "classificationUnreadable": "Kon dit bestand niet lezen", - "announceUploaded": "Bijlage geüpload" + "announceUploaded": "Bijlage geüpload", + "cantUpload": "Dit bestand kan niet worden geüpload.", + "networkError": "Netwerkfout", + "uploadFailed": "Uploaden mislukt", + "failedToUploadFile": "Bestand uploaden mislukt: {{reason}}", + "nothingToPaste": "Niets om te plakken" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -741,7 +749,8 @@ "sparkles": "Sprankels", "strongArm": "Sterke arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Deze instantie kan geen bestanden ontvangen." }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "Reviewgeheugen", "reviewStyle": "Beoordelingsstijl", "set": "Ingesteld" - } + }, + "updateFailed": "Reviewer bijwerken mislukt", + "configSaveFailed": "Reviewconfig opslaan mislukt" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "Bestaande herstelacties in de wachtrij", "analysisComplete": "Analyse voltooid", "syncComplete": "Synchronisatie voltooid" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Beveiligingsservice is niet geconfigureerd. Opnieuw indienen kan niet slagen tot dit is opgelost.", + "syncMayNotHaveCompleted": "Een synchronisatie is mogelijk niet voltooid. Probeer opnieuw om deze af te stemmen, of gooi deze weg.", + "syncInProgress": "Een beveiligingssynchronisatie is al bezig. Probeer het opnieuw.", + "dismissalInProgress": "Deze afwijzing is al bezig. Probeer het opnieuw.", + "couldNotReadPendingSyncs": "Openstaande synchronisaties konden niet worden gelezen. Probeer het opnieuw." } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "Spraak wordt online verwerkt", "staysOff": "Spraak blijft uit totdat je online transcriptie toestaat.", "start": "Start spraakinvoer", - "stop": "Stop spraakinvoer" + "stop": "Stop spraakinvoer", + "restricted": "Spraakinvoer is beperkt op dit apparaat.", + "micRequired": "Microfoontoegang is vereist voor spraakinvoer.", + "micOff": "Microfoontoegang staat uit. Schakel het in Instellingen in om spraakinvoer te gebruiken.", + "micOffTitle": "Microfoontoegang staat uit", + "noSpeech": "Geen spraak gedetecteerd. Tik op de microfoon om opnieuw te proberen.", + "needsConnection": "Spraakinvoer heeft nu een verbinding nodig. Probeer het opnieuw.", + "busy": "Spraakinvoer is bezet. Probeer het opnieuw.", + "stopped": "Spraakinvoer gestopt. Tik op de microfoon om opnieuw te proberen.", + "unavailableDevice": "Spraakinvoer is niet beschikbaar op dit apparaat.", + "unavailableLanguage": "Spraakinvoer is niet beschikbaar voor de taal van dit apparaat." }, "share": { "title": "Delen naar Kilo", @@ -2118,7 +2146,12 @@ "webManagementDescription": "Deze Kilo Pass wordt op het web beheerd.", "legalDisclosure": "Kilo Pass is een maandelijks abonnement dat automatisch wordt verlengd. De betaling wordt bij bevestiging van de aankoop in rekening gebracht op je Apple ID. Abonnementen worden elke maand automatisch verlengd voor de weergegeven prijs, tenzij je ten minste 24 uur voor het einde van de huidige periode opzegt. Beheer of annuleer op elk moment in de accountinstellingen van de App Store.", "legalPrivacyPolicy": "Privacybeleid", - "legalTermsOfUse": "Gebruiksvoorwaarden (EULA)" + "legalTermsOfUse": "Gebruiksvoorwaarden (EULA)", + "purchaseNotLinked": "Deze App Store-aankoop is niet gekoppeld aan je Kilo-account. Controleer of je bent aangemeld met het Apple ID waarmee de aankoop is gedaan, en probeer het opnieuw.", + "purchaseDifferentAccount": "Deze App Store-aankoop is niet gekoppeld aan je Kilo-account. Meld je aan met het Apple-account dat voor de aankoop is gebruikt, en probeer het opnieuw.", + "restoreFailed": "Aankopen herstellen mislukt. Probeer het opnieuw.", + "purchaseFailed": "Aankoop voltooien mislukt.", + "purchaseStartFailed": "App Store-aankoop starten mislukt." }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "Opmerking geplaatst", "reviewSubmitted": "Review verzonden", "autoMergeEnabled": "Automatisch samenvoegen ingeschakeld" + }, + "mutationError": { + "commentNotPosted": "Deze opmerking kan niet worden geplaatst. De geselecteerde regel is mogelijk gewijzigd, of de PR is mogelijk bijgewerkt.", + "reviewNotSubmitted": "Deze review kan niet zo worden ingediend. De PR is mogelijk gewijzigd, of je kunt je eigen pull-aanvraag niet beoordelen.", + "couldNotPostComment": "Opmerking kon niet worden geplaatst.", + "couldNotSubmitReview": "Review kon niet worden verzonden. Controleer je verbinding en probeer het opnieuw." } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "Facturen", "statusPaid": "Betaald", "statusOpen": "Open", - "statusVoid": "Ongegrond" + "statusVoid": "Ongegrond", + "downloadFailed": "Factuur kon niet worden gedownload. Controleer je verbinding en probeer het opnieuw.", + "sharingUnavailable": "Delen is niet beschikbaar op dit apparaat." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Aanmelden is mislukt. Probeer het opnieuw.", "networkError": "Netwerkfout. Probeer het opnieuw.", "accessDeniedByUser": "Toegang geweigerd door gebruiker", - "codeExpired": "Code verlopen" + "codeExpired": "Code verlopen", + "tooManySignInAttempts": "Te veel aanmeldpogingen. Wacht even en probeer het opnieuw." }, "models": { "dataCollected": "Verzamelde gegevens", diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index deb4b191a9..6227c65f16 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -24,7 +24,10 @@ "required": "barbaachisaa", "error": "dogoggora: {{error}}", "back": "Gara duuba", - "somethingWentWrong": "Wanti dogoggoraa ta'e jira" + "somethingWentWrong": "Wanti dogoggoraa ta'e jira", + "couldNotOpen": "{{label}} banuu hin dandeenye", + "link": "liinkii", + "takingLonger": "Kun yeroo eeggamaa irraa dheeraa jira. Cuftee deebi'ee ilaaluu dandeessa." }, "language": { "title": "Afaan", @@ -576,6 +579,12 @@ "commentPosted": "Yaadni maxxanfameera", "reviewSubmitted": "Ilalloon dhiheeffameera", "autoMergeEnabled": "Auto-merge dandeesameera" + }, + "mutationError": { + "commentNotPosted": "Yaadni kun maxxanfamuu hin danda'u. Sirriin filatame jijjirameera ta'a, ykn PR haaromameera ta'a.", + "reviewNotSubmitted": "Ilalloon kun akkuma jirutti dhiheeffamuu hin danda'u. PR jijjirameera ta'a, ykn pull request ofii kee ilaaluu hin dandeessu.", + "couldNotPostComment": "Yaada maxxansuu hin dandeenye.", + "couldNotSubmitReview": "Ilalloo dhiheessuu hin dandeenye. Walqabii kee ilaaliitii irra deebi'ii yaali." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Faayilli duwwaa dha", "classificationTooLarge": "Faayilootni 20 MB ykn sanaa gadii ta'uu qabu", "classificationUnreadable": "Faayilii kana dubbisuu hin dandeenye", - "announceUploaded": "Attachment ol fe'ameera" + "announceUploaded": "Attachment ol fe'ameera", + "cantUpload": "Faayiliin kun ol fe'uun hin danda'amu.", + "networkError": "Dogoggorri network", + "uploadFailed": "Ol fe'uun hin milkoofne", + "failedToUploadFile": "Faayilii ol fe'uu dadhabe: {{reason}}", + "nothingToPaste": "Maxxansuuf wanti hin jiru" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Sparfala", "strongArm": "Harka cimaa", "talisman": "Taalismaanii" - } + }, + "remoteSpawnFilesNotSupported": "Tuuramni kun faayiloota fudhachuu hin danda'u." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Murtoo hin jiru", "noResult": "Bu'aa hin jiru" }, - "eyebrow": "Sakatta'a Koodii" + "eyebrow": "Sakatta'a Koodii", + "updateFailed": "Ilaaltuu haaromsuu dadhabe.", + "configSaveFailed": "Qindaa'ina ilalloo kuusuu dadhabe." }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Furamoonni jiran tarreeffamaniiru", "analysisComplete": "Anaaliziin xumurameera", "syncComplete": "Walitti qabamni xumurameera" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Tajaajilli nageenyaa hin qindaa'ine. Kana furuu dura deebi'ee dhiheessuun milkaa'uu hin danda'u.", + "syncMayNotHaveCompleted": "Walitti qabamni xumuramuu hin qaba ta'a. Irra deebi'ii furi, ykn gati.", + "syncInProgress": "Walitti qabamni nageenyaa duraanuu hojii irraa jira. Irra deebi'ii yaali.", + "dismissalInProgress": "Dhiifamni kun duraanuu hojii irraa jira. Irra deebi'ii yaali.", + "couldNotReadPendingSyncs": "Walitti qabamoota eegachaa jiran dubbisuu hin dandeenye. Irra deebi'ii yaali." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Gadgetiin kuni offline galmeessuu hin danda'u. Galmee kee barruuf gara {{provider}} ergama. Kilo sagalee hin kuusu.", "allow": "Hayyami", "start": "Sagalee galchuu jalqabi", - "stop": "Sagalee galchuu dhaabi" + "stop": "Sagalee galchuu dhaabi", + "restricted": "Galchuun sagalee meeshaa kana irratti dhowwameera.", + "micRequired": "Maayikirofoonii itti fufuun sagalee galchuuf barbaachisa.", + "micOff": "Itti fufuun maayikirofoonii cufameera. Sagalee galchuuf Settings keessatti dandeesi.", + "micOffTitle": "Itti fufuun maayikirofoonii cufameera", + "noSpeech": "Sagaleen hin argamne. Irra deebi'uuf maayikirofoonii tuqi.", + "needsConnection": "Galchuun sagalee amma walqabii barbaada. Irra deebi'ii yaali.", + "busy": "Galchuun sagalee qabanaa jira. Irra deebi'ii yaali.", + "stopped": "Galchuun sagalee dhaabbateera. Irra deebi'uuf maayikirofoonii tuqi.", + "unavailableDevice": "Galchuun sagalee meeshaa kana irratti hin jiru.", + "unavailableLanguage": "Galchuun sagalee afaan meeshaa kanaaf hin jiru." }, "share": { "title": "Kilo wajjin qoodi", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass kun weeb irratti bulchama.", "legalDisclosure": "Kilo Pass ji'aan haaromsu subscription dha. Kaffaltiin Apple ID kee irratti yeroo bitachuu mirkaneeffamu ni itti baafama. Subscription'n ji'a ji'aan gatii mul'atuun ni haaroma, yoo yeroo dhumaa dura sa'aatii 24 dura hin haaromsine malee. Yeroo kamillee App Store account keessaa bulchi ykn haqi.", "legalPrivacyPolicy": "Imaammata Iccitii", - "legalTermsOfUse": "Caaccuu Itti Fayyadamaa (EULA)" + "legalTermsOfUse": "Caaccuu Itti Fayyadamaa (EULA)", + "purchaseNotLinked": "Bittaan App Store kana herrega Kilo kee waliin hin walqabamne. Apple ID bittaa kana hojjetu waliin seenuu mirkaneeffadhu, ergasii ammas yaali.", + "purchaseDifferentAccount": "Bittaan App Store kana herrega Kilo kee waliin hin walqabamne. Apple Account bittaa kanaaf fayyadame waliin seenii, ergasii ammas yaali.", + "restoreFailed": "Bittaa deebisuu dadhabe. Irra deebi'ii yaali.", + "purchaseFailed": "Bittaa xumuruu dadhabe.", + "purchaseStartFailed": "Bittaa App Store jalqabuu dadhabe." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Banaa", "statusPaid": "Kaffalameera", "statusVoid": "Bara kana hin fayyadanne", - "title": "Invoices" + "title": "Invoices", + "downloadFailed": "Invoice gadi baasuu hin dandeenye. Walqabii kee ilaaliitii irra deebi'ii yaali.", + "sharingUnavailable": "Qooduun meeshaa kana irratti hin jiru." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Seeniin hin milkoofne. Irra deebi'ii yaali.", "networkError": "Dogoggorri network jira. Irra deebi'ii yaali.", "accessDeniedByUser": "Dheedhumaan fayyadamaadhaan dhowatame", - "codeExpired": "Koodiin xumurame" + "codeExpired": "Koodiin xumurame", + "tooManySignInAttempts": "Yaallii seenii baay'ee godhame. Yeroo xiqqoo eegiitii irra deebi'ii yaali." }, "models": { "dataCollected": "Daataan walitti qabame", diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index b67272438a..174eee1e71 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -24,7 +24,10 @@ "required": "ଆବଶ୍ୟକ", "error": "ତ୍ରୁଟି: {{error}}", "back": "ପଛକୁ", - "somethingWentWrong": "କିଛି ଭୁଲ ହେଲା" + "somethingWentWrong": "କିଛି ଭୁଲ ହେଲା", + "couldNotOpen": "{{label}} ଖୋଲାଯାଇ ପାରିଲା ନାହିଁ", + "link": "ଲିଙ୍କ୍", + "takingLonger": "ଏହା ଆଶା ଅପେକ୍ଷା ଅଧିକ ସମୟ ନେଉଛି। ଆପଣ ଏହାକୁ ବନ୍ଦ କରି ପୁଣି ଯାଞ୍ଚ କରିପାରିବେ।" }, "language": { "title": "ଭାଷା", @@ -576,6 +579,12 @@ "commentPosted": "ମନ୍ତବ୍ୟ ପୋଷ୍ଟ ହେଲା", "reviewSubmitted": "ରିଭ୍ୟୁ ଦାଖଲ ହେଲା", "autoMergeEnabled": "ସ୍ୱୟଂ-ମର୍ଜ୍ ସକ୍ଷମ ହେଲା" + }, + "mutationError": { + "commentNotPosted": "ଏହି ମନ୍ତବ୍ୟ ପୋଷ୍ଟ କରାଯାଇ ପାରିବ ନାହିଁ। ଚୟନ କରାଯାଇଥିବା ଧାଡ଼ି ପରିବର୍ତ୍ତନ ହୋଇଥାଇ ପାରେ, କିମ୍ବା PR ଅପଡେଟ୍ ହୋଇଥାଇ ପାରେ।", + "reviewNotSubmitted": "ଏହି ରିଭ୍ୟୁ ଏହିଭଳି ଦାଖଲ କରାଯାଇ ପାରିବ ନାହିଁ। PR ପରିବର୍ତ୍ତନ ହୋଇଥାଇ ପାରେ, କିମ୍ବା ଆପଣ ନିଜର ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ରିଭ୍ୟୁ କରିପାରିବେ ନାହିଁ।", + "couldNotPostComment": "ମନ୍ତବ୍ୟ ପୋଷ୍ଟ କରାଯାଇ ପାରିଲା ନାହିଁ।", + "couldNotSubmitReview": "ରିଭ୍ୟୁ ଦାଖଲ କରାଯାଇ ପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ଫାଇଲ୍ ଖାଲି ଅଛି", "classificationTooLarge": "ଫାଇଲ୍ 20 MB କିମ୍ବା ତା'ଠାରୁ ଛୋଟ ହେବା ଆବଶ୍ୟକ", "classificationUnreadable": "ଏହି ଫାଇଲ୍ ପଢ଼ାଯାଇ ପାରିଲା ନାହିଁ", - "announceUploaded": "ସଂଲଗ୍ନକାରୀ ଅପଲୋଡ୍ ହେଲା" + "announceUploaded": "ସଂଲଗ୍ନକାରୀ ଅପଲୋଡ୍ ହେଲା", + "cantUpload": "ଏହି ଫାଇଲ୍ ଅପଲୋଡ୍ ହୋଇପାରିବ ନାହିଁ।", + "networkError": "ନେଟୱର୍କ ତ୍ରୁଟି", + "uploadFailed": "ଅପଲୋଡ୍ ବିଫଳ", + "failedToUploadFile": "ଫାଇଲ୍ ଅପଲୋଡ୍ ବିଫଳ ହେଲା: {{reason}}", + "nothingToPaste": "ପେଷ୍ଟ କରିବାକୁ କିଛି ନାହିଁ" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ଚମକ", "strongArm": "ଶକ୍ତିଶାଳୀ ବାହୁ", "talisman": "ତାଲିମନ" - } + }, + "remoteSpawnFilesNotSupported": "ଏହି ଇନସ୍ଟାନ୍ସ ଫାଇଲ ଗ୍ରହଣ କରିପାରିବ ନାହିଁ।" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "କୌଣସି ନିଷ୍ପତ୍ତି ନାହିଁ", "noResult": "କୌଣସି ଫଳାଫଳ ନାହିଁ" }, - "eyebrow": "କୋଡ୍ ସମୀକ୍ଷକ" + "eyebrow": "କୋଡ୍ ସମୀକ୍ଷକ", + "updateFailed": "ରିଭ୍ୟୁୟର୍ ଅପଡେଟ୍ ବିଫଳ ହେଲା", + "configSaveFailed": "ରିଭ୍ୟୁ କନଫିଗ୍ ସଞ୍ଚୟ ବିଫଳ ହେଲା" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ବିଦ୍ୟମାନ ଉପଶମନ ଧାଡ଼ିରେ ରଖାଗଲା", "analysisComplete": "ବିଶ୍ଳେଷଣ ସମାପ୍ତ", "syncComplete": "ସିଙ୍କ୍ ସମାପ୍ତ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "ସୁରକ୍ଷା ସେବା ବିନ୍ୟାସିତ ହୋଇନାହିଁ। ଏହା ସମାଧାନ ନହେବା ପର୍ଯ୍ୟନ୍ତ ପୁନଃଦାଖଲ ସଫଳ ହୋଇପାରିବ ନାହିଁ।", + "syncMayNotHaveCompleted": "ଏକ ସିଙ୍କ୍ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇନଥାଇ ପାରେ। ଏହାକୁ ସୁସଙ୍ଗତ କରିବାକୁ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ, କିମ୍ବା ପରିତ୍ୟାଗ କରନ୍ତୁ।", + "syncInProgress": "ଏକ ସୁରକ୍ଷା ସିଙ୍କ୍ ଆଗରୁ ଚାଲୁଅଛି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "dismissalInProgress": "ଏହି ଖାରଜ ଆଗରୁ ଚାଲୁଅଛି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "couldNotReadPendingSyncs": "ବାକି ସିଙ୍କ୍ ପଢ଼ାଯାଇ ପାରିଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ଏହି ଡିଭାଇସ୍ ଅଫଲାଇନ୍ ଟ୍ରାନ୍ସକ୍ରିପସନ୍ କରିପାରିବ ନାହିଁ। ଆପଣଙ୍କ ରେକର୍ଡିଂ ପାଠ୍ୟରେ ପରିଣତ କରିବାକୁ {{provider}} କୁ ପଠାଯାଏ। Kilo ଅଡିଓ ସଂରକ୍ଷଣ କରେ ନାହିଁ।", "allow": "ଅନୁମତି", "start": "ଭଏସ୍ ଇନ୍ପୁଟ୍ ଆରମ୍ଭ କରନ୍ତୁ", - "stop": "ଭଏସ୍ ଇନ୍ପୁଟ୍ ବନ୍ଦ କରନ୍ତୁ" + "stop": "ଭଏସ୍ ଇନ୍ପୁଟ୍ ବନ୍ଦ କରନ୍ତୁ", + "restricted": "ଏହି ଡିଭାଇସ୍ ରେ ଭଏସ୍ ଇନ୍ପୁଟ୍ ପ୍ରତିବନ୍ଧିତ।", + "micRequired": "ଭଏସ୍ ଇନ୍ପୁଟ୍ ପାଇଁ ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍ ଆବଶ୍ୟକ।", + "micOff": "ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍ ବନ୍ଦ ଅଛି। ଭଏସ୍ ଇନ୍ପୁଟ୍ ବ୍ୟବହାର କରିବାକୁ ସେଟିଂସରେ ଏହାକୁ ସକ୍ଷମ କରନ୍ତୁ।", + "micOffTitle": "ମାଇକ୍ରୋଫୋନ୍ ଆକ୍ସେସ୍ ବନ୍ଦ ଅଛି", + "noSpeech": "କୌଣସି କଥା ଚିହ୍ନଟ ହେଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରିବାକୁ ମାଇକ୍ରୋଫୋନ୍ ଟାପ୍ କରନ୍ତୁ।", + "needsConnection": "ଭଏସ୍ ଇନ୍ପୁଟ୍ ଏବେ ଏକ ସଂଯୋଗ ଆବଶ୍ୟକ କରେ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "busy": "ଭଏସ୍ ଇନ୍ପୁଟ୍ ବ୍ୟସ୍ତ ଅଛି। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "stopped": "ଭଏସ୍ ଇନ୍ପୁଟ୍ ବନ୍ଦ ହେଲା। ପୁଣି ଚେଷ୍ଟା କରିବାକୁ ମାଇକ୍ରୋଫୋନ୍ ଟାପ୍ କରନ୍ତୁ।", + "unavailableDevice": "ଏହି ଡିଭାଇସ୍ ରେ ଭଏସ୍ ଇନ୍ପୁଟ୍ ଉପଲବ୍ଧ ନାହିଁ।", + "unavailableLanguage": "ଏହି ଡିଭାଇସ୍ ଭାଷା ପାଇଁ ଭଏସ୍ ଇନ୍ପୁଟ୍ ଉପଲବ୍ଧ ନାହିଁ।" }, "share": { "title": "Kilo କୁ ଅଂଶୀଦାର କରନ୍ତୁ", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ଏହି Kilo Pass ୱେବରେ ପରିଚାଳିତ ହୁଏ।", "legalDisclosure": "Kilo Pass ଏକ ସ୍ୱୟଂ-ନବୀକରଣୀୟ ମାସିକ ସବସ୍କ୍ରିପ୍ସନ୍। କିଣିବା ସମୟରେ ଆପଣଙ୍କ Apple ID ରୁ ଭୁକ୍ତାନ ଆଦାୟ ହୁଏ। ସବସ୍କ୍ରିପ୍ସନ୍ ପ୍ରତି ମାସରେ ଦର୍ଶାଯାଇଥିବା ମୂଲ୍ୟରେ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ନବୀକରଣ ହୁଏ, ଯଦି ବର୍ତ୍ତମାନର ଅବଧି ସମାପ୍ତ ହେବାର ଅତି କମରେ ୨୪ ଘଣ୍ଟା ପୂର୍ବରୁ ବାତିଲ କରାନଯାଏ। ଆପଣଙ୍କ App Store ଆକାଉଣ୍ଟ ସେଟିଂସରେ ଯେକୌଣସି ସମୟରେ ପରିଚାଳନା କିମ୍ବା ବାତିଲ କରନ୍ତୁ।", "legalPrivacyPolicy": "ଗୋପନୀୟତା ନୀତି", - "legalTermsOfUse": "ବ୍ୟବହାର ନିୟମାବଳୀ (EULA)" + "legalTermsOfUse": "ବ୍ୟବହାର ନିୟମାବଳୀ (EULA)", + "purchaseNotLinked": "ଏହି App Store କ୍ରୟ ଆପଣଙ୍କ Kilo ଆକାଉଣ୍ଟ ସହିତ ଲିଙ୍କ୍ ହୋଇନାହିଁ। କ୍ରୟ କରିଥିବା Apple ID ରେ ସାଇନ୍ ଇନ୍ ହୋଇଥିବା ନିଶ୍ଚିତ କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "purchaseDifferentAccount": "ଏହି App Store କ୍ରୟ ଆପଣଙ୍କ Kilo ଆକାଉଣ୍ଟ ସହିତ ଲିଙ୍କ୍ ହୋଇନାହିଁ। କ୍ରୟ ପାଇଁ ବ୍ୟବହୃତ Apple ଆକାଉଣ୍ଟରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "restoreFailed": "କ୍ରୟ ପୁନଃସ୍ଥାପନ ବିଫଳ ହେଲା। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "purchaseFailed": "କ୍ରୟ ସମ୍ପୂର୍ଣ୍ଣ କରିବାରେ ବିଫଳ।", + "purchaseStartFailed": "App Store କ୍ରୟ ଆରମ୍ଭ କରିବାରେ ବିଫଳ।" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ଖୋଲା", "statusPaid": "ପୈଠ", "statusVoid": "ଅବୈଧ", - "title": "ଇନଭଏସ୍" + "title": "ଇନଭଏସ୍", + "downloadFailed": "ଇନଭଏସ୍ ଡାଉନଲୋଡ୍ କରାଯାଇ ପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "sharingUnavailable": "ଏହି ଡିଭାଇସ୍ ରେ ଅଂଶୀଦାର ଉପଲବ୍ଧ ନାହିଁ।" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ସାଇନ୍ ଇନ୍ ବିଫଳ ହେଲା। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "networkError": "ନେଟୱର୍କ ତ୍ରୁଟି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "accessDeniedByUser": "ବ୍ୟବହାରକାରୀଙ୍କ ଦ୍ୱାରା ଆକ୍ସେସ୍ ଅସ୍ୱୀକୃତ", - "codeExpired": "କୋଡ୍ ଅବଧି ଶେଷ ହେଲା" + "codeExpired": "କୋଡ୍ ଅବଧି ଶେଷ ହେଲା", + "tooManySignInAttempts": "ଅତ୍ୟଧିକ ସାଇନ୍-ଇନ୍ ପ୍ରୟାସ। ଦୟାକରି ଅପେକ୍ଷା କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" }, "models": { "dataCollected": "ସଂଗୃହୀତ ଡାଟା", diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 94fbbfe63f..333c4c8238 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -24,7 +24,10 @@ "required": "ਲੋੜੀਂਦਾ", "error": "ਗਲਤੀ: {{error}}", "back": "ਵਾਪਸ", - "somethingWentWrong": "ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ" + "somethingWentWrong": "ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ", + "couldNotOpen": "{{label}} ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ", + "link": "ਲਿੰਕ", + "takingLonger": "ਇਹ ਉਮੀਦ ਨਾਲੋਂ ਵੱਧ ਸਮਾਂ ਲੈ ਰਿਹਾ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ ਬੰਦ ਕਰਕੇ ਦੁਬਾਰਾ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ।" }, "language": { "title": "ਭਾਸ਼ਾ", @@ -576,6 +579,12 @@ "commentPosted": "ਟਿੱਪਣੀ ਪੋਸਟ ਹੋ ਗਈ", "reviewSubmitted": "ਰਿਵਿਊ ਜਮ੍ਹਾਂ ਹੋ ਗਿਆ", "autoMergeEnabled": "ਆਟੋ-ਮਰਜ ਸਮਰੱਥ ਹੋ ਗਿਆ" + }, + "mutationError": { + "commentNotPosted": "ਇਹ ਟਿੱਪਣੀ ਪੋਸਟ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਚੁਣੀ ਗਈ ਲਾਈਨ ਬਦਲੀ ਹੋ ਸਕਦੀ ਹੈ, ਜਾਂ PR ਅੱਪਡੇਟ ਹੋ ਸਕਦੀ ਹੈ।", + "reviewNotSubmitted": "ਇਹ ਰਿਵਿਊ ਜਿਵੇਂ ਹੈ ਉਵੇਂ ਜਮ੍ਹਾਂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। PR ਬਦਲੀ ਹੋ ਸਕਦੀ ਹੈ, ਜਾਂ ਤੁਸੀਂ ਆਪਣੀ ਪੁੱਲ ਰਿਕਵੈਸਟ ਦਾ ਰਿਵਿਊ ਨਹੀਂ ਕਰ ਸਕਦੇ।", + "couldNotPostComment": "ਟਿੱਪਣੀ ਪੋਸਟ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।", + "couldNotSubmitReview": "ਰਿਵਿਊ ਜਮ੍ਹਾਂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਚੈੱਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ਫਾਈਲ ਖਾਲੀ ਹੈ", "classificationTooLarge": "ਫਾਈਲਾਂ 20 MB ਜਾਂ ਇਸ ਤੋਂ ਛੋਟੀਆਂ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ", "classificationUnreadable": "ਇਹ ਫਾਈਲ ਪੜ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ", - "announceUploaded": "ਅਟੈਚਮੈਂਟ ਅੱਪਲੋਡ ਹੋ ਗਿਆ" + "announceUploaded": "ਅਟੈਚਮੈਂਟ ਅੱਪਲੋਡ ਹੋ ਗਿਆ", + "cantUpload": "ਇਹ ਫਾਈਲ ਅੱਪਲੋਡ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।", + "networkError": "ਨੈੱਟਵਰਕ ਗਲਤੀ", + "uploadFailed": "ਅੱਪਲੋਡ ਅਸਫਲ", + "failedToUploadFile": "ਫਾਈਲ ਅੱਪਲੋਡ ਕਰਨ ਵਿੱਚ ਅਸਫਲ: {{reason}}", + "nothingToPaste": "ਪੇਸਟ ਕਰਨ ਲਈ ਕੁਝ ਨਹੀਂ" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ਚਮਕਾਂ", "strongArm": "ਤਾਕਤਵਰ ਬਾਂਹ", "talisman": "ਤਾਵੀਜ਼" - } + }, + "remoteSpawnFilesNotSupported": "ਇਹ ਇੰਸਟੈਂਸ ਫਾਈਲਾਂ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਦਾ।" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "ਕੋਈ ਫੈਸਲਾ ਨਹੀਂ", "noResult": "ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "ਸਮੀਖਿਅਕ ਅੱਪਡੇਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ", + "configSaveFailed": "ਰਿਵਿਊ ਕੌਂਫਿਗ ਸੁਰੱਖਿਅਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ਮੌਜੂਦਾ ਉਪਚਾਰ ਕਤਾਰ ਵਿੱਚ ਹਨ", "analysisComplete": "ਵਿਸ਼ਲੇਸ਼ਣ ਪੂਰਾ ਹੋ ਗਿਆ", "syncComplete": "ਸਿੰਕ ਪੂਰਾ ਹੋ ਗਿਆ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "ਸੁਰੱਖਿਆ ਸੇਵਾ ਕੌਂਫਿਗਰ ਨਹੀਂ ਹੈ। ਜਦੋਂ ਤੱਕ ਇਹ ਠੀਕ ਨਹੀਂ ਹੁੰਦਾ, ਦੁਬਾਰਾ ਜਮ੍ਹਾਂ ਕਰਨਾ ਸਫਲ ਨਹੀਂ ਹੋ ਸਕਦਾ।", + "syncMayNotHaveCompleted": "ਇੱਕ ਸਿੰਕ ਪੂਰਾ ਨਹੀਂ ਹੋਇਆ ਹੋ ਸਕਦਾ। ਇਸਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਜਾਂ ਖਾਰਜ ਕਰੋ।", + "syncInProgress": "ਇੱਕ ਸੁਰੱਖਿਆ ਸਿੰਕ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਿਹਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "dismissalInProgress": "ਇਹ ਖਾਰਜ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਿਹਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "couldNotReadPendingSyncs": "ਬਕਾਇਆ ਸਿੰਕ ਨਹੀਂ ਪੜ੍ਹੇ ਜਾ ਸਕੇ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ਇਹ ਡਿਵਾਈਸ ਔਫਲਾਈਨ ਟ੍ਰਾਂਸਕ੍ਰਾਈਬ ਨਹੀਂ ਕਰ ਸਕਦੀ। ਇਸ ਨੂੰ ਟੈਕਸਟ ਵਿੱਚ ਬਦਲਣ ਲਈ ਤੁਹਾਡੀ ਰਿਕਾਰਡਿੰਗ {{provider}} ਨੂੰ ਭੇਜੀ ਜਾਂਦੀ ਹੈ। Kilo ਆਡੀਓ ਸਟੋਰ ਨਹੀਂ ਕਰਦਾ।", "allow": "ਇਜਾਜ਼ਤ ਦਿਓ", "start": "ਵੌਇਸ ਇਨਪੁਟ ਸ਼ੁਰੂ ਕਰੋ", - "stop": "ਵੌਇਸ ਇਨਪੁਟ ਰੋਕੋ" + "stop": "ਵੌਇਸ ਇਨਪੁਟ ਰੋਕੋ", + "restricted": "ਇਸ ਡਿਵਾਈਸ 'ਤੇ ਵੌਇਸ ਇਨਪੁਟ ਪ੍ਰਤਿਬੰਧਿਤ ਹੈ।", + "micRequired": "ਵੌਇਸ ਇਨਪੁਟ ਲਈ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਪਹੁੰਚ ਲੋੜੀਂਦੀ ਹੈ।", + "micOff": "ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਪਹੁੰਚ ਬੰਦ ਹੈ। ਵੌਇਸ ਇਨਪੁਟ ਵਰਤਣ ਲਈ ਇਸਨੂੰ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਚਾਲੂ ਕਰੋ।", + "micOffTitle": "ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਪਹੁੰਚ ਬੰਦ ਹੈ", + "noSpeech": "ਕੋਈ ਬੋਲਣ ਦਾ ਪਤਾ ਨਹੀਂ ਲੱਗਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਮਾਈਕ੍ਰੋਫ਼ੋਨ 'ਤੇ ਟੈਪ ਕਰੋ।", + "needsConnection": "ਵੌਇਸ ਇਨਪੁਟ ਨੂੰ ਹੁਣ ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "busy": "ਵੌਇਸ ਇਨਪੁਟ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "stopped": "ਵੌਇਸ ਇਨਪੁਟ ਰੁਕ ਗਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਲਈ ਮਾਈਕ੍ਰੋਫ਼ੋਨ 'ਤੇ ਟੈਪ ਕਰੋ।", + "unavailableDevice": "ਇਸ ਡਿਵਾਈਸ 'ਤੇ ਵੌਇਸ ਇਨਪੁਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", + "unavailableLanguage": "ਇਸ ਡਿਵਾਈਸ ਦੀ ਭਾਸ਼ਾ ਲਈ ਵੌਇਸ ਇਨਪੁਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।" }, "share": { "title": "Kilo ਨੂੰ ਸਾਂਝਾ ਕਰੋ", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ਇਹ Kilo Pass ਵੈੱਬ 'ਤੇ ਪ੍ਰਬੰਧਿਤ ਹੈ।", "legalDisclosure": "Kilo Pass ਇੱਕ ਆਟੋ-ਰੀਨਿਊ ਹੋਣ ਵਾਲੀ ਮਹੀਨਾਵਾਰ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਹੈ। ਭੁਗਤਾਨ ਖਰੀਦ ਦੀ ਪੁਸ਼ਟੀ 'ਤੇ ਤੁਹਾਡੀ Apple ID ਤੋਂ ਕੱਟਿਆ ਜਾਂਦਾ ਹੈ। ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਮੌਜੂਦਾ ਮਿਆਦ ਦੇ ਖਤਮ ਹੋਣ ਤੋਂ ਘੱਟੋ ਘੱਟ 24 ਘੰਟੇ ਪਹਿਲਾਂ ਰੱਦ ਨਾ ਕੀਤੇ ਜਾਣ 'ਤੇ ਦਿਖਾਈ ਗਈ ਕੀਮਤ 'ਤੇ ਹਰ ਮਹੀਨੇ ਆਪਣੇ ਆਪ ਰੀਨਿਊ ਹੁੰਦੀਆਂ ਹਨ। ਆਪਣੀ App Store ਖਾਤਾ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਕਿਸੇ ਵੀ ਸਮੇਂ ਪ੍ਰਬੰਧਿਤ ਜਾਂ ਰੱਦ ਕਰੋ।", "legalPrivacyPolicy": "ਪਰਾਈਵੇਸੀ ਨੀਤੀ", - "legalTermsOfUse": "ਵਰਤੋਂ ਦੀਆਂ ਸ਼ਰਤਾਂ (EULA)" + "legalTermsOfUse": "ਵਰਤੋਂ ਦੀਆਂ ਸ਼ਰਤਾਂ (EULA)", + "purchaseNotLinked": "ਇਹ ਐਪ ਸਟੋਰ ਖਰੀਦ ਤੁਹਾਡੇ Kilo ਖਾਤੇ ਨਾਲ ਲਿੰਕ ਨਹੀਂ ਹੈ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ ਉਸ Apple ID ਨਾਲ ਸਾਈਨ ਇਨ ਹੋ ਜਿਸ ਨੇ ਖਰੀਦ ਕੀਤੀ ਸੀ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "purchaseDifferentAccount": "ਇਹ ਐਪ ਸਟੋਰ ਖਰੀਦ ਤੁਹਾਡੇ Kilo ਖਾਤੇ ਨਾਲ ਲਿੰਕ ਨਹੀਂ ਹੈ। ਖਰੀਦ ਲਈ ਵਰਤੇ ਗਏ Apple ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ ਇਨ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "restoreFailed": "ਖਰੀਦਾਂ ਬਹਾਲ ਕਰਨ ਵਿੱਚ ਅਸਫਲ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "purchaseFailed": "ਖਰੀਦ ਪੂਰੀ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।", + "purchaseStartFailed": "ਐਪ ਸਟੋਰ ਖਰੀਦ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ਖੁੱਲ੍ਹਾ", "statusPaid": "ਅਦਾ ਕੀਤਾ", "statusVoid": "ਅਵੈਧ", - "title": "ਇਨਵੌਇਸ" + "title": "ਇਨਵੌਇਸ", + "downloadFailed": "ਇਨਵੌਇਸ ਡਾਊਨਲੋਡ ਨਹੀਂ ਹੋ ਸਕਿਆ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਚੈੱਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "sharingUnavailable": "ਇਸ ਡਿਵਾਈਸ 'ਤੇ ਸਾਂਝਾ ਕਰਨਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ਸਾਈਨ ਇਨ ਅਸਫਲ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "networkError": "ਨੈੱਟਵਰਕ ਗਲਤੀ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "accessDeniedByUser": "ਉਪਭੋਗੀ ਦੁਆਰਾ ਪਹੁੰਚ ਤੋਂ ਇਨਕਾਰ", - "codeExpired": "ਕੋਡ ਮਿਆਦ ਪੁੱਗ ਗਿਆ" + "codeExpired": "ਕੋਡ ਮਿਆਦ ਪੁੱਗ ਗਿਆ", + "tooManySignInAttempts": "ਬਹੁਤ ਸਾਰੀਆਂ ਸਾਈਨ-ਇਨ ਕੋਸ਼ਿਸ਼ਾਂ। ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" }, "models": { "dataCollected": "ਇਕੱਠਾ ਕੀਤਾ ਗਿਆ ਡੇਟਾ", diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index 552fae5980..2e898c89b1 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -24,7 +24,10 @@ "notNow": "Nie teraz", "continue": "Kontynuuj", "back": "Wstecz", - "somethingWentWrong": "Coś poszło nie tak" + "somethingWentWrong": "Coś poszło nie tak", + "couldNotOpen": "Nie udało się otworzyć {{label}}", + "link": "link", + "takingLonger": "To trwa dłużej niż oczekiwano. Możesz to zamknąć i sprawdzić ponownie." }, "language": { "title": "Język", @@ -283,7 +286,12 @@ "classificationEmpty": "Plik jest pusty", "classificationTooLarge": "Pliki muszą mieć 20 MB lub mniej", "classificationUnreadable": "Nie udało się odczytać tego pliku", - "announceUploaded": "Przesłano załącznik" + "announceUploaded": "Przesłano załącznik", + "cantUpload": "Tego pliku nie można przesłać.", + "networkError": "Błąd sieci", + "uploadFailed": "Przesyłanie nie powiodło się", + "failedToUploadFile": "Nie udało się przesłać pliku: {{reason}}", + "nothingToPaste": "Nie ma nic do wklejenia" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -745,7 +753,8 @@ "sparkles": "Iskierki", "strongArm": "Silne ramię", "talisman": "Talizman" - } + }, + "remoteSpawnFilesNotSupported": "Ta instancja nie może odbierać plików." }, "codeReviewer": { "focusAreas": { @@ -932,7 +941,9 @@ "reviewMemory": "Pamięć przeglądów", "reviewStyle": "Styl przeglądu", "set": "Ustaw" - } + }, + "updateFailed": "Nie udało się zaktualizować recenzenta", + "configSaveFailed": "Nie udało się zapisać konfiguracji recenzji" }, "securityAgent": { "filter": { @@ -1358,6 +1369,13 @@ "remediationsQueued": "Istniejące naprawy dodano do kolejki", "analysisComplete": "Analiza zakończona", "syncComplete": "Synchronizacja zakończona" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Usługa bezpieczeństwa nie jest skonfigurowana. Ponowne przesłanie nie może się powieść, dopóki to nie zostanie naprawione.", + "syncMayNotHaveCompleted": "Synchronizacja mogła nie zostać ukończona. Ponów, aby ją uzgodnić, lub odrzuć.", + "syncInProgress": "Synchronizacja zabezpieczeń jest już w toku. Spróbuj ponownie.", + "dismissalInProgress": "To odrzucenie jest już w toku. Spróbuj ponownie.", + "couldNotReadPendingSyncs": "Nie udało się odczytać oczekujących synchronizacji. Spróbuj ponownie." } }, "agents": { @@ -2062,7 +2080,17 @@ "onlineTitle": "Mowa jest przetwarzana online", "staysOff": "Mowa pozostaje wyłączona, dopóki nie zezwolisz na transkrypcję online.", "start": "Uruchom wprowadzanie głosowe", - "stop": "Zatrzymaj wprowadzanie głosowe" + "stop": "Zatrzymaj wprowadzanie głosowe", + "restricted": "Wprowadzanie głosowe jest ograniczone na tym urządzeniu.", + "micRequired": "Dostęp do mikrofonu jest wymagany do wprowadzania głosowego.", + "micOff": "Dostęp do mikrofonu jest wyłączony. Włącz go w Ustawieniach, aby korzystać z wprowadzania głosowego.", + "micOffTitle": "Dostęp do mikrofonu jest wyłączony", + "noSpeech": "Nie wykryto mowy. Dotknij mikrofonu, aby spróbować ponownie.", + "needsConnection": "Wprowadzanie głosowe wymaga teraz połączenia. Spróbuj ponownie.", + "busy": "Wprowadzanie głosowe jest zajęte. Spróbuj ponownie.", + "stopped": "Wprowadzanie głosowe zostało zatrzymane. Dotknij mikrofonu, aby spróbować ponownie.", + "unavailableDevice": "Wprowadzanie głosowe nie jest dostępne na tym urządzeniu.", + "unavailableLanguage": "Wprowadzanie głosowe nie jest dostępne dla języka tego urządzenia." }, "share": { "title": "Udostępnij do Kilo", @@ -2140,7 +2168,12 @@ "webManagementDescription": "Ten Kilo Pass jest zarządzany w sieci.", "legalDisclosure": "Kilo Pass to automatycznie odnawiana subskrypcja miesięczna. Płatność jest pobierana z Twojego Apple ID przy potwierdzeniu zakupu. Subskrypcja odnawia się automatycznie co miesiąc po podanej cenie, chyba że anulujesz ją co najmniej 24 godziny przed końcem bieżącego okresu. Zarządzaj nią lub anuluj ją w dowolnym momencie w ustawieniach konta App Store.", "legalPrivacyPolicy": "Polityka prywatności", - "legalTermsOfUse": "Warunki korzystania (EULA)" + "legalTermsOfUse": "Warunki korzystania (EULA)", + "purchaseNotLinked": "Ten zakup w App Store nie jest powiązany z Twoim kontem Kilo. Upewnij się, że jesteś zalogowany na Apple ID, na którym dokonano zakupu, a następnie spróbuj ponownie.", + "purchaseDifferentAccount": "Ten zakup w App Store nie jest powiązany z Twoim kontem Kilo. Zaloguj się na konto Apple użyte do zakupu, a następnie spróbuj ponownie.", + "restoreFailed": "Nie udało się przywrócić zakupów. Spróbuj ponownie.", + "purchaseFailed": "Nie udało się dokończyć zakupu.", + "purchaseStartFailed": "Nie udało się rozpocząć zakupu w App Store." }, "consent": { "kilo": "Kilo", @@ -2668,6 +2701,12 @@ "commentPosted": "Opublikowano komentarz", "reviewSubmitted": "Przesłano recenzję", "autoMergeEnabled": "Włączono automatyczne scalanie" + }, + "mutationError": { + "commentNotPosted": "Ten komentarz nie może zostać opublikowany. Wybrana linia mogła się zmienić lub PR mógł zostać zaktualizowany.", + "reviewNotSubmitted": "Ta recenzja nie może zostać przesłana w tej formie. PR mógł się zmienić lub nie możesz recenzować własnego pull requesta.", + "couldNotPostComment": "Nie udało się opublikować komentarza.", + "couldNotSubmitReview": "Nie udało się przesłać recenzji. Sprawdź połączenie i spróbuj ponownie." } }, "organization": { @@ -2714,7 +2753,9 @@ "title": "Faktury", "statusPaid": "Opłacono", "statusOpen": "Otwarta", - "statusVoid": "Unieważniona" + "statusVoid": "Unieważniona", + "downloadFailed": "Nie udało się pobrać faktury. Sprawdź połączenie i spróbuj ponownie.", + "sharingUnavailable": "Udostępnianie nie jest dostępne na tym urządzeniu." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Logowanie nie powiodło się. Spróbuj ponownie.", "networkError": "Błąd sieci. Spróbuj ponownie.", "accessDeniedByUser": "Dostęp odrzucony przez użytkownika", - "codeExpired": "Kod wygasł" + "codeExpired": "Kod wygasł", + "tooManySignInAttempts": "Zbyt wiele prób logowania. Poczekaj i spróbuj ponownie." }, "models": { "dataCollected": "Zebrane dane", diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index 1d5a43426a..e33412cf28 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -24,7 +24,10 @@ "required": "اړین", "error": "تېروتنه: {{error}}", "back": "شاته", - "somethingWentWrong": "یو څه غلط شول" + "somethingWentWrong": "یو څه غلط شول", + "couldNotOpen": "{{label}} پرانیستل کیدی نشو", + "link": "لینک", + "takingLonger": "دا له تمې ډیر وخت نیسي. تاسو کولی شئ دا وتړئ او بیا یې وګورئ." }, "language": { "title": "ژبه", @@ -576,6 +579,12 @@ "commentPosted": "تبصره خپره شوه", "reviewSubmitted": "بیاکتنه وسپارل شوه", "autoMergeEnabled": "اتومات یوځای کول فعال شو" + }, + "mutationError": { + "commentNotPosted": "دا تبصره نشي خپرېدلای. غوره شوې کرښه ممکن بدله شوې وي، یا PR تازه شوی وي.", + "reviewNotSubmitted": "دا بیاکتنه لکه څنګه چې ده نشي سپارل کېدلای. PR ممکن بدل شوی وي، یا تاسو نشئ کولای خپل پل ریکویسټ بیاکتنه کړئ.", + "couldNotPostComment": "تبصره نشوه خپرېدلای.", + "couldNotSubmitReview": "بیاکتنه نشوه سپارل کېدلای. خپل اړیکه وګورئ او بیا هڅه وکړئ." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "فایل خالي دی", "classificationTooLarge": "فایلونه باید 20 MB یا کوچني وي", "classificationUnreadable": "دا فایل لوستل کیدی نشو", - "announceUploaded": "نښلول شوی فایل پورته شو" + "announceUploaded": "نښلول شوی فایل پورته شو", + "cantUpload": "دا فایل نه شي پورته کېدلای.", + "networkError": "د شبکې تېروتنه", + "uploadFailed": "پورته کول ناکام شول", + "failedToUploadFile": "د فایل پورته کول ناکام شول: {{reason}}", + "nothingToPaste": "د پیسټ کولو لپاره څه نشته" }, "attachmentPreview": { "accessibility": "{{filename}}، {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "بلیکي", "strongArm": "قوي لاس", "talisman": "طلسم" - } + }, + "remoteSpawnFilesNotSupported": "دا بیلګه فایلونه نه شي ترلاسه کولای." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "هېڅ پریکړه", "noResult": "هېڅ پایله" }, - "eyebrow": "کوډ بیاکتونکی" + "eyebrow": "کوډ بیاکتونکی", + "updateFailed": "بیاکتونکی تازه کول ناکام شول", + "configSaveFailed": "د بیاکتنې ترتیب خوندي کول ناکام شول" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "موجوده اصلاحات په صف کې ودرول شول", "analysisComplete": "تحلیل بشپړ شو", "syncComplete": "ترکیب بشپړ شو" + }, + "mutations": { + "serviceNotConfiguredResubmit": "د امنیت خدمت نه دی ترتیب شوی. تر هغه چې دا سم نه شي، بیا سپارل بریالي کیدی نشي.", + "syncMayNotHaveCompleted": "ترکیب ممکن بشپړ شوی نه وي. د سمون لپاره بیا هڅه وکړئ، یا یې رد کړئ.", + "syncInProgress": "د امنیت ترکیب دمخه روان دی. مهرباني وکړئ بیا هڅه وکړئ.", + "dismissalInProgress": "دا له پامه غورځول دمخه روان دی. مهرباني وکړئ بیا هڅه وکړئ.", + "couldNotReadPendingSyncs": "انتظاري ترکیبونه نه شول لوستل کېدلای. بیا هڅه وکړئ." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "دا وسیله آفلاین نه شي لیکلای. ستاسو ثبت د متن بدلولو لپاره {{provider}} ته لیږل کېږي. Kilo آډیو نه ذخیره کوي.", "allow": "اجازه ورکړئ", "start": "د غږ معلومات پیل کړئ", - "stop": "د غږ معلومات ودرولئ" + "stop": "د غږ معلومات ودرولئ", + "restricted": "په دې وسیله د غږ معلومات محدود دی.", + "micRequired": "د غږ معلوماتو لپاره مایکروفون ته لاسرسی اړین دی.", + "micOff": "د مایکروفون لاسرسی بند دی. د غږ معلوماتو کارولو لپاره یې په تنظیماتو کې فعال کړئ.", + "micOffTitle": "د مایکروفون لاسرسی بند دی", + "noSpeech": "هیڅ خبره ونه موندل شوه. د بیا هڅې لپاره مایکروفون ټک کړئ.", + "needsConnection": "د غږ معلومات اوسمهال اړیکې ته اړتیا لري. بیا هڅه وکړئ.", + "busy": "د غږ معلومات بوخت دی. بیا هڅه وکړئ.", + "stopped": "د غږ معلومات ودرول شو. د بیا هڅې لپاره مایکروفون ټک کړئ.", + "unavailableDevice": "د غږ معلومات په دې وسیله شتون نلري.", + "unavailableLanguage": "د غږ معلومات د دې وسیلې ژبې لپاره شتون نلري." }, "share": { "title": "Kilo ته شریک کړئ", @@ -2549,7 +2583,12 @@ "webManagementDescription": "دا Kilo Pass په ویب کې اداره کیږي.", "legalDisclosure": "Kilo Pass یو خودکار تازه کېدونکی میاشتنی ګډون دی. پیسې ستاسو Apple ID ته د پیرود د تایید په وخت کې اخیستل کیږي. ګډونونه هر میاشت په ښودل شوي نرخ باندې په اتوماتیک ډول نوي کیږي، پرته له دې چې د اوسنۍ مودې له پای ته رسېدو ۲۴ ساعته مخکې لغوه شي. هر وخت د خپل App Store حساب تنظیماتو کې اداره یا لغوه کړئ.", "legalPrivacyPolicy": "د محرمیت پالیسي", - "legalTermsOfUse": "د استعمال شرایط (EULA)" + "legalTermsOfUse": "د استعمال شرایط (EULA)", + "purchaseNotLinked": "دا د App Store پیرود ستاسو د Kilo حساب سره تړلی نه دی. ډاډ ترلاسه کړئ چې تاسو په هغه Apple ID کې ننوتلي یاست چې پیرود یې کړی، بیا هڅه وکړئ.", + "purchaseDifferentAccount": "دا د App Store پیرود ستاسو د Kilo حساب سره تړلی نه دی. د پیرود لپاره کارول شوي Apple Account ته ننوځئ، بیا هڅه وکړئ.", + "restoreFailed": "پیرودونه بیرته راوړل ناکام شول. بیا هڅه وکړئ.", + "purchaseFailed": "پیرود بشپړول ناکام شول.", + "purchaseStartFailed": "د App Store پیرود پیل کول ناکام شول." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "خلاص", "statusPaid": "ورکړل شوی", "statusVoid": "باطل", - "title": "بیلونه" + "title": "بیلونه", + "downloadFailed": "بیل ډاونلوډ نه شو. خپل اړیکه وګورئ او بیا هڅه وکړئ.", + "sharingUnavailable": "شریکول په دې وسیله شتون نلري." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ننوتل ناکام شول. مهرباني وکړئ بیا هڅه وکړئ.", "networkError": "د شبکې تېروتنه. مهرباني وکړئ بیا هڅه وکړئ.", "accessDeniedByUser": "د کارن لخوا لاسرسی رد شو", - "codeExpired": "کوډ پای ته رسیدلی" + "codeExpired": "کوډ پای ته رسیدلی", + "tooManySignInAttempts": "د ننوتلو ډېرې هڅې وشوې. مهرباني وکړئ انتظار وکړئ او بیا هڅه وکړئ." }, "models": { "dataCollected": "ټول شوي معلومات", diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index 16ef2aa8f8..4f51eb9e91 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -24,7 +24,10 @@ "notNow": "Agora não", "continue": "Continuar", "back": "Voltar", - "somethingWentWrong": "Algo deu errado" + "somethingWentWrong": "Algo deu errado", + "couldNotOpen": "Não foi possível abrir {{label}}", + "link": "link", + "takingLonger": "Isso está demorando mais que o esperado. Você pode fechar isto e verificar novamente." }, "language": { "title": "Idioma", @@ -269,7 +272,12 @@ "classificationEmpty": "O arquivo está vazio", "classificationTooLarge": "Os arquivos devem ter no máximo 20 MB", "classificationUnreadable": "Não foi possível ler este arquivo", - "announceUploaded": "Anexo enviado" + "announceUploaded": "Anexo enviado", + "cantUpload": "Este arquivo não pode ser enviado.", + "networkError": "Erro de rede", + "uploadFailed": "Falha no envio", + "failedToUploadFile": "Falha ao enviar o arquivo: {{reason}}", + "nothingToPaste": "Nada para colar" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -729,7 +737,8 @@ "sparkles": "Brilhos", "strongArm": "Braço forte", "talisman": "Talismã" - } + }, + "remoteSpawnFilesNotSupported": "Esta instância não pode receber arquivos." }, "codeReviewer": { "focusAreas": { @@ -916,7 +925,9 @@ "reviewMemory": "Memória de revisão", "reviewStyle": "Estilo de revisão", "set": "Definir" - } + }, + "updateFailed": "Falha ao atualizar o revisor", + "configSaveFailed": "Falha ao salvar a configuração de revisão" }, "securityAgent": { "filter": { @@ -1340,6 +1351,13 @@ "remediationsQueued": "Remediações existentes na fila", "analysisComplete": "Análise concluída", "syncComplete": "Sincronização concluída" + }, + "mutations": { + "serviceNotConfiguredResubmit": "O serviço de segurança não está configurado. O reenvio não pode ter sucesso até que isto seja corrigido.", + "syncMayNotHaveCompleted": "Uma sincronização pode não ter sido concluída. Tente novamente para reconciliá-la, ou descarte-a.", + "syncInProgress": "Uma sincronização de segurança já está em andamento. Tente novamente.", + "dismissalInProgress": "Esta dispensa já está em andamento. Tente novamente.", + "couldNotReadPendingSyncs": "Não foi possível ler as sincronizações pendentes. Tente novamente." } }, "agents": { @@ -2051,7 +2069,17 @@ "onlineTitle": "A fala é processada online", "staysOff": "A fala permanece desativada até você permitir a transcrição online.", "start": "Iniciar entrada de voz", - "stop": "Parar entrada de voz" + "stop": "Parar entrada de voz", + "restricted": "A entrada de voz é restrita neste dispositivo.", + "micRequired": "O acesso ao microfone é necessário para a entrada de voz.", + "micOff": "O acesso ao microfone está desativado. Ative-o em Ajustes para usar a entrada de voz.", + "micOffTitle": "O acesso ao microfone está desativado", + "noSpeech": "Nenhuma fala detectada. Toque no microfone para tentar novamente.", + "needsConnection": "A entrada de voz precisa de uma conexão agora. Tente novamente.", + "busy": "A entrada de voz está ocupada. Tente novamente.", + "stopped": "A entrada de voz foi interrompida. Toque no microfone para tentar novamente.", + "unavailableDevice": "A entrada de voz não está disponível neste dispositivo.", + "unavailableLanguage": "A entrada de voz não está disponível para o idioma deste dispositivo." }, "share": { "title": "Compartilhar no Kilo", @@ -2129,7 +2157,12 @@ "webManagementDescription": "Este Kilo Pass é gerenciado na web.", "legalDisclosure": "O Kilo Pass é uma assinatura mensal com renovação automática. O pagamento é cobrado na sua Apple ID na confirmação da compra. As assinaturas são renovadas automaticamente todos os meses pelo preço exibido, a menos que sejam canceladas pelo menos 24 horas antes do fim do período atual. Gerencie ou cancele a qualquer momento nas configurações da sua conta na App Store.", "legalPrivacyPolicy": "Política de Privacidade", - "legalTermsOfUse": "Termos de Uso (EULA)" + "legalTermsOfUse": "Termos de Uso (EULA)", + "purchaseNotLinked": "Esta compra da App Store não está vinculada à sua conta Kilo. Verifique se você está conectado ao Apple ID que fez a compra e tente novamente.", + "purchaseDifferentAccount": "Esta compra da App Store não está vinculada à sua conta Kilo. Entre na Apple Account usada na compra e tente novamente.", + "restoreFailed": "Falha ao restaurar as compras. Tente novamente.", + "purchaseFailed": "Falha ao concluir a compra.", + "purchaseStartFailed": "Falha ao iniciar a compra na App Store." }, "consent": { "kilo": "Kilo", @@ -2650,6 +2683,12 @@ "commentPosted": "Comentário publicado", "reviewSubmitted": "Revisão enviada", "autoMergeEnabled": "Merge automático ativado" + }, + "mutationError": { + "commentNotPosted": "Este comentário não pode ser publicado. A linha selecionada pode ter mudado, ou o PR pode ter sido atualizado.", + "reviewNotSubmitted": "Esta revisão não pode ser enviada como está. O PR pode ter mudado, ou você não pode revisar seu próprio pull request.", + "couldNotPostComment": "Não foi possível publicar o comentário.", + "couldNotSubmitReview": "Não foi possível enviar a revisão. Verifique sua conexão e tente novamente." } }, "organization": { @@ -2696,7 +2735,9 @@ "title": "Faturas", "statusPaid": "Pago", "statusOpen": "Em aberto", - "statusVoid": "Cancelada" + "statusVoid": "Cancelada", + "downloadFailed": "Não foi possível baixar a fatura. Verifique sua conexão e tente novamente.", + "sharingUnavailable": "O compartilhamento não está disponível neste dispositivo." }, "lowBalanceAlert": { "emailPlaceholder": "nome@empresa.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Falha na entrada. Tente novamente.", "networkError": "Erro de rede. Tente novamente.", "accessDeniedByUser": "Acesso negado pelo usuário", - "codeExpired": "Código expirado" + "codeExpired": "Código expirado", + "tooManySignInAttempts": "Muitas tentativas de login. Aguarde e tente novamente." }, "models": { "dataCollected": "Dados coletados", diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index a1e3a1cddf..e38141276c 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -24,7 +24,10 @@ "required": "obrigatório", "error": "erro: {{error}}", "back": "Voltar", - "somethingWentWrong": "Algo correu mal" + "somethingWentWrong": "Algo correu mal", + "couldNotOpen": "Não foi possível abrir {{label}}", + "link": "link", + "takingLonger": "Isto está a demorar mais do que o esperado. Pode fechar isto e verificar novamente." }, "language": { "title": "Idioma", @@ -583,6 +586,12 @@ "commentPosted": "Comentário publicado", "reviewSubmitted": "Revisão submetida", "autoMergeEnabled": "Fusão automática ativada" + }, + "mutationError": { + "commentNotPosted": "Este comentário não pode ser publicado. A linha selecionada pode ter mudado, ou o PR pode ter sido atualizado.", + "reviewNotSubmitted": "Esta revisão não pode ser submetida como está. O PR pode ter mudado, ou não pode rever o seu próprio pull request.", + "couldNotPostComment": "Não foi possível publicar o comentário.", + "couldNotSubmitReview": "Não foi possível submeter a revisão. Verifique a sua ligação e tente novamente." } }, "notifications": { @@ -721,7 +730,12 @@ "classificationEmpty": "O ficheiro está vazio", "classificationTooLarge": "Os ficheiros devem ter no máximo 20 MB", "classificationUnreadable": "Não foi possível ler este ficheiro", - "announceUploaded": "Anexo carregado" + "announceUploaded": "Anexo carregado", + "cantUpload": "Este ficheiro não pode ser carregado.", + "networkError": "Erro de rede", + "uploadFailed": "Falha no carregamento", + "failedToUploadFile": "Falha ao carregar o ficheiro: {{reason}}", + "nothingToPaste": "Nada para colar" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1181,7 +1195,8 @@ "sparkles": "Brilhos", "strongArm": "Braço forte", "talisman": "Talismã" - } + }, + "remoteSpawnFilesNotSupported": "Esta instância não pode receber ficheiros." }, "codeReviewer": { "focusAreas": { @@ -1368,7 +1383,9 @@ "noDecision": "Sem decisão", "noResult": "Sem resultado" }, - "eyebrow": "Revisor de Código" + "eyebrow": "Revisor de Código", + "updateFailed": "Falha ao atualizar o revisor", + "configSaveFailed": "Falha ao guardar a configuração de revisão" }, "securityAgent": { "filter": { @@ -1792,6 +1809,13 @@ "remediationsQueued": "Remediações existentes em fila", "analysisComplete": "Análise concluída", "syncComplete": "Sincronização concluída" + }, + "mutations": { + "serviceNotConfiguredResubmit": "O serviço de segurança não está configurado. O reenvio não pode ter sucesso até isto ser corrigido.", + "syncMayNotHaveCompleted": "Uma sincronização pode não ter sido concluída. Tente novamente para reconciliá-la, ou descarte-a.", + "syncInProgress": "Já está em curso uma sincronização de segurança. Tente novamente.", + "dismissalInProgress": "Esta dispensa já está em curso. Tente novamente.", + "couldNotReadPendingSyncs": "Não foi possível ler as sincronizações pendentes. Tente novamente." } }, "agents": { @@ -2489,7 +2513,17 @@ "onlineMessage": "Este dispositivo não consegue transcrever offline. A sua gravação é enviada para {{provider}} para a transformar em texto. O Kilo não armazena o áudio.", "allow": "Permitir", "start": "Iniciar entrada de voz", - "stop": "Parar entrada de voz" + "stop": "Parar entrada de voz", + "restricted": "A entrada de voz está restrita neste dispositivo.", + "micRequired": "O acesso ao microfone é necessário para a entrada de voz.", + "micOff": "O acesso ao microfone está desligado. Ative-o nas Definições para usar a entrada de voz.", + "micOffTitle": "O acesso ao microfone está desligado", + "noSpeech": "Nenhuma fala detetada. Toque no microfone para tentar novamente.", + "needsConnection": "A entrada de voz precisa de uma ligação neste momento. Tente novamente.", + "busy": "A entrada de voz está ocupada. Tente novamente.", + "stopped": "A entrada de voz foi interrompida. Toque no microfone para tentar novamente.", + "unavailableDevice": "A entrada de voz não está disponível neste dispositivo.", + "unavailableLanguage": "A entrada de voz não está disponível para o idioma deste dispositivo." }, "share": { "title": "Partilhar no Kilo", @@ -2567,7 +2601,12 @@ "webManagementDescription": "Este Kilo Pass é gerido na web.", "legalDisclosure": "O Kilo Pass é uma subscrição mensal renovável automaticamente. O pagamento é cobrado no seu Apple ID na confirmação da compra. As subscrições renovam-se automaticamente todos os meses pelo preço indicado, exceto se forem canceladas pelo menos 24 horas antes do fim do período atual. Faça a gestão ou cancele a qualquer momento nas definições da sua conta da App Store.", "legalPrivacyPolicy": "Política de Privacidade", - "legalTermsOfUse": "Termos de Utilização (EULA)" + "legalTermsOfUse": "Termos de Utilização (EULA)", + "purchaseNotLinked": "Esta compra da App Store não está ligada à sua conta Kilo. Certifique-se de que iniciou sessão no Apple ID que efetuou a compra e tente novamente.", + "purchaseDifferentAccount": "Esta compra da App Store não está ligada à sua conta Kilo. Inicie sessão na Apple Account utilizada na compra e tente novamente.", + "restoreFailed": "Falha ao restaurar as compras. Tente novamente.", + "purchaseFailed": "Falha ao concluir a compra.", + "purchaseStartFailed": "Falha ao iniciar a compra na App Store." }, "consent": { "kilo": "Kilo", @@ -2700,7 +2739,9 @@ "statusOpen": "Aberta", "statusPaid": "Paga", "statusVoid": "Anulada", - "title": "Faturas" + "title": "Faturas", + "downloadFailed": "Não foi possível transferir a fatura. Verifique a sua ligação e tente novamente.", + "sharingUnavailable": "A partilha não está disponível neste dispositivo." }, "lowBalanceAlert": { "emailPlaceholder": "nome@empresa.com", @@ -2821,7 +2862,8 @@ "signInFailed": "O início de sessão falhou. Tente novamente.", "networkError": "Erro de rede. Tente novamente.", "accessDeniedByUser": "Acesso negado pelo utilizador", - "codeExpired": "Código expirado" + "codeExpired": "Código expirado", + "tooManySignInAttempts": "Demasiadas tentativas de início de sessão. Aguarde e tente novamente." }, "models": { "dataCollected": "Dados recolhidos", diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index 527178513d..88696405d0 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -24,7 +24,10 @@ "required": "obligatoriu", "error": "eroare: {{error}}", "back": "Înapoi", - "somethingWentWrong": "Ceva nu a mers bine" + "somethingWentWrong": "Ceva nu a mers bine", + "couldNotOpen": "Nu s-a putut deschide {{label}}", + "link": "link", + "takingLonger": "Durează mai mult decât era de așteptat. Poți închide și verifica din nou." }, "language": { "title": "Limba", @@ -583,6 +586,12 @@ "commentPosted": "Comentariu publicat", "reviewSubmitted": "Revizuire trimisă", "autoMergeEnabled": "Fuziunea automată activată" + }, + "mutationError": { + "commentNotPosted": "Acest comentariu nu poate fi postat. Linia selectată s-ar putea să se fi schimbat, sau PR-ul ar fi putut fi actualizat.", + "reviewNotSubmitted": "Această revizuire nu poate fi trimisă așa cum este. PR-ul s-ar putea să se fi schimbat, sau nu poți revizui propriul tău pull request.", + "couldNotPostComment": "Nu s-a putut posta comentariul.", + "couldNotSubmitReview": "Nu s-a putut trimite revizuirea. Verifică conexiunea și încearcă din nou." } }, "notifications": { @@ -721,7 +730,12 @@ "classificationEmpty": "Fișierul este gol", "classificationTooLarge": "Fișierele trebuie să aibă 20 MB sau mai puțin", "classificationUnreadable": "Nu s-a putut citi acest fișier", - "announceUploaded": "Atașament încărcat" + "announceUploaded": "Atașament încărcat", + "cantUpload": "Acest fișier nu poate fi încărcat.", + "networkError": "Eroare de rețea", + "uploadFailed": "Încărcarea a eșuat", + "failedToUploadFile": "Încărcarea fișierului a eșuat: {{reason}}", + "nothingToPaste": "Nimic de lipit" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1181,7 +1195,8 @@ "sparkles": "Scântei", "strongArm": "Braț puternic", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Această instanță nu poate primi fișiere." }, "codeReviewer": { "focusAreas": { @@ -1368,7 +1383,9 @@ "noDecision": "Fără decizie", "noResult": "Fără rezultat" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Actualizarea revizorului a eșuat", + "configSaveFailed": "Salvarea configurării de revizuire a eșuat" }, "securityAgent": { "filter": { @@ -1792,6 +1809,13 @@ "remediationsQueued": "Remedierile existente au fost puse în coadă", "analysisComplete": "Analiză finalizată", "syncComplete": "Sincronizare finalizată" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Serviciul de securitate nu este configurat. Retrimiterea nu poate reuși până când aceasta nu este rezolvată.", + "syncMayNotHaveCompleted": "O sincronizare s-ar putea să nu fi fost finalizată. Reîncearcă pentru a o reconcilia, sau renunță.", + "syncInProgress": "O sincronizare de securitate este deja în curs. Încearcă din nou.", + "dismissalInProgress": "Această respingere este deja în curs. Încearcă din nou.", + "couldNotReadPendingSyncs": "Nu s-au putut citi sincronizările în așteptare. Încearcă din nou." } }, "agents": { @@ -2489,7 +2513,17 @@ "onlineMessage": "Acest dispozitiv nu poate transcrie offline. Înregistrarea ta este trimisă la {{provider}} pentru a fi transformată în text. Kilo nu stochează audio-ul.", "allow": "Permite", "start": "Pornește introducerea vocală", - "stop": "Oprește introducerea vocală" + "stop": "Oprește introducerea vocală", + "restricted": "Introducerea vocală este restricționată pe acest dispozitiv.", + "micRequired": "Accesul la microfon este necesar pentru introducerea vocală.", + "micOff": "Accesul la microfon este dezactivat. Activează-l în Setări pentru a folosi introducerea vocală.", + "micOffTitle": "Accesul la microfon este dezactivat", + "noSpeech": "Nu s-a detectat nicio vorbire. Atinge microfonul pentru a încerca din nou.", + "needsConnection": "Introducerea vocală are nevoie de o conexiune chiar acum. Încearcă din nou.", + "busy": "Introducerea vocală este ocupată. Încearcă din nou.", + "stopped": "Introducerea vocală s-a oprit. Atinge microfonul pentru a încerca din nou.", + "unavailableDevice": "Introducerea vocală nu este disponibilă pe acest dispozitiv.", + "unavailableLanguage": "Introducerea vocală nu este disponibilă pentru limba acestui dispozitiv." }, "share": { "title": "Distribuie către Kilo", @@ -2567,7 +2601,12 @@ "webManagementDescription": "Acest Kilo Pass este gestionat pe web.", "legalDisclosure": "Kilo Pass este un abonament lunar cu reînnoire automată. Plata este încasată de pe Apple ID la confirmarea achiziției. Abonamentele se reînnoiesc automat în fiecare lună la prețul afișat, dacă nu sunt anulate cu cel puțin 24 de ore înainte de sfârșitul perioadei curente. Gestionează sau anulează oricând în setările contului tău App Store.", "legalPrivacyPolicy": "Politica de confidențialitate", - "legalTermsOfUse": "Termeni și condiții (EULA)" + "legalTermsOfUse": "Termeni și condiții (EULA)", + "purchaseNotLinked": "Această achiziție din App Store nu este legată de contul tău Kilo. Asigură-te că ești autentificat în Apple ID-ul care a făcut achiziția, apoi încearcă din nou.", + "purchaseDifferentAccount": "Această achiziție din App Store nu este legată de contul tău Kilo. Autentifică-te în Apple Account-ul folosit pentru achiziție, apoi încearcă din nou.", + "restoreFailed": "Restaurarea achizițiilor a eșuat. Încearcă din nou.", + "purchaseFailed": "Finalizarea achiziției a eșuat.", + "purchaseStartFailed": "Nu s-a putut începe achiziția din App Store." }, "consent": { "kilo": "Kilo", @@ -2700,7 +2739,9 @@ "statusOpen": "Deschisă", "statusPaid": "Plătită", "statusVoid": "Anulată", - "title": "Facturi" + "title": "Facturi", + "downloadFailed": "Factura nu a putut fi descărcată. Verifică conexiunea și încearcă din nou.", + "sharingUnavailable": "Distribuirea nu este disponibilă pe acest dispozitiv." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Autentificarea a eșuat. Încearcă din nou.", "networkError": "Eroare de rețea. Încearcă din nou.", "accessDeniedByUser": "Acces refuzat de utilizator", - "codeExpired": "Cod expirat" + "codeExpired": "Cod expirat", + "tooManySignInAttempts": "Prea multe încercări de autentificare. Așteaptă și încearcă din nou." }, "models": { "dataCollected": "Date colectate", diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index c6bf35e367..310df070f0 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -24,7 +24,10 @@ "notNow": "Не сейчас", "continue": "Продолжить", "back": "Назад", - "somethingWentWrong": "Что-то пошло не так" + "somethingWentWrong": "Что-то пошло не так", + "couldNotOpen": "Не удалось открыть {{label}}", + "link": "ссылка", + "takingLonger": "Это занимает больше времени, чем ожидалось. Вы можете закрыть и проверить снова." }, "language": { "title": "Язык", @@ -283,7 +286,12 @@ "classificationEmpty": "Файл пуст", "classificationTooLarge": "Файлы должны быть не больше 20 MB", "classificationUnreadable": "Не удалось прочитать этот файл", - "announceUploaded": "Вложение загружено" + "announceUploaded": "Вложение загружено", + "cantUpload": "Этот файл нельзя загрузить.", + "networkError": "Ошибка сети", + "uploadFailed": "Загрузка не удалась", + "failedToUploadFile": "Не удалось загрузить файл: {{reason}}", + "nothingToPaste": "Нечего вставлять" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -745,7 +753,8 @@ "sparkles": "Искры", "strongArm": "Сильная рука", "talisman": "Талисман" - } + }, + "remoteSpawnFilesNotSupported": "Этот экземпляр не может принимать файлы." }, "codeReviewer": { "focusAreas": { @@ -932,7 +941,9 @@ "reviewMemory": "Память проверок", "reviewStyle": "Стиль проверки", "set": "Задать" - } + }, + "updateFailed": "Не удалось обновить ревьюера", + "configSaveFailed": "Не удалось сохранить конфигурацию проверки" }, "securityAgent": { "filter": { @@ -1358,6 +1369,13 @@ "remediationsQueued": "Существующие исправления поставлены в очередь", "analysisComplete": "Анализ завершен", "syncComplete": "Синхронизация завершена" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Служба безопасности не настроена. Повторная отправка не удастся, пока это не исправлено.", + "syncMayNotHaveCompleted": "Синхронизация могла не завершиться. Повторите, чтобы согласовать её, или отмените.", + "syncInProgress": "Синхронизация безопасности уже выполняется. Попробуйте снова.", + "dismissalInProgress": "Это отклонение уже выполняется. Попробуйте снова.", + "couldNotReadPendingSyncs": "Не удалось прочитать ожидающие синхронизации. Попробуйте снова." } }, "agents": { @@ -2062,7 +2080,17 @@ "onlineTitle": "Речь обрабатывается онлайн", "staysOff": "Речь остается выключенной, пока вы не разрешите онлайн-транскрипцию.", "start": "Начать голосовой ввод", - "stop": "Остановить голосовой ввод" + "stop": "Остановить голосовой ввод", + "restricted": "Голосовой ввод ограничен на этом устройстве.", + "micRequired": "Для голосового ввода требуется доступ к микрофону.", + "micOff": "Доступ к микрофону выключен. Включите его в Настройках, чтобы использовать голосовой ввод.", + "micOffTitle": "Доступ к микрофону выключен", + "noSpeech": "Речь не обнаружена. Нажмите на микрофон, чтобы попробовать снова.", + "needsConnection": "Сейчас голосовому вводу нужно подключение. Попробуйте снова.", + "busy": "Голосовой ввод занят. Попробуйте снова.", + "stopped": "Голосовой ввод остановлен. Нажмите на микрофон, чтобы попробовать снова.", + "unavailableDevice": "Голосовой ввод недоступен на этом устройстве.", + "unavailableLanguage": "Голосовой ввод недоступен для языка этого устройства." }, "share": { "title": "Поделиться в Kilo", @@ -2140,7 +2168,12 @@ "webManagementDescription": "Этот Kilo Pass управляется в веб-версии.", "legalDisclosure": "Kilo Pass — это ежемесячная подписка с автоматическим продлением. Платёж списывается с вашего Apple ID при подтверждении покупки. Подписка продлевается автоматически каждый месяц по указанной цене, если её не отменить не менее чем за 24 часа до конца текущего периода. Управляйте подпиской или отменяйте её в любой момент в настройках учётной записи App Store.", "legalPrivacyPolicy": "Политика конфиденциальности", - "legalTermsOfUse": "Условия использования (EULA)" + "legalTermsOfUse": "Условия использования (EULA)", + "purchaseNotLinked": "Эта покупка в App Store не привязана к вашему аккаунту Kilo. Убедитесь, что вы вошли в Apple ID, с которого была совершена покупка, и попробуйте снова.", + "purchaseDifferentAccount": "Эта покупка в App Store не привязана к вашему аккаунту Kilo. Войдите в Apple Account, использованный для покупки, и попробуйте снова.", + "restoreFailed": "Не удалось восстановить покупки. Попробуйте снова.", + "purchaseFailed": "Не удалось завершить покупку.", + "purchaseStartFailed": "Не удалось начать покупку в App Store." }, "consent": { "kilo": "Kilo", @@ -2668,6 +2701,12 @@ "commentPosted": "Комментарий опубликован", "reviewSubmitted": "Проверка отправлена", "autoMergeEnabled": "Автослияние включено" + }, + "mutationError": { + "commentNotPosted": "Этот комментарий нельзя отправить. Выбранная строка могла измениться, или PR мог быть обновлён.", + "reviewNotSubmitted": "Эту проверку нельзя отправить в текущем виде. PR мог измениться, или вы не можете проверять собственный pull request.", + "couldNotPostComment": "Не удалось отправить комментарий.", + "couldNotSubmitReview": "Не удалось отправить проверку. Проверьте подключение и попробуйте снова." } }, "organization": { @@ -2714,7 +2753,9 @@ "title": "Счета", "statusPaid": "Оплачено", "statusOpen": "Открыт", - "statusVoid": "Аннулирован" + "statusVoid": "Аннулирован", + "downloadFailed": "Не удалось скачать счёт. Проверьте подключение и попробуйте снова.", + "sharingUnavailable": "Поделиться на этом устройстве нельзя." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Вход не удался. Попробуйте снова.", "networkError": "Ошибка сети. Попробуйте снова.", "accessDeniedByUser": "Доступ отклонен пользователем", - "codeExpired": "Срок действия кода истек" + "codeExpired": "Срок действия кода истек", + "tooManySignInAttempts": "Слишком много попыток входа. Подождите и попробуйте снова." }, "models": { "dataCollected": "Собранные данные", diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index eed8e067a5..ba95014391 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -24,7 +24,10 @@ "required": "අවශ්‍යයි", "error": "දෝෂය: {{error}}", "back": "ආපසු", - "somethingWentWrong": "යම් දෙයක් වැරදී ඇත" + "somethingWentWrong": "යම් දෙයක් වැරදී ඇත", + "couldNotOpen": "{{label}} විවෘත කිරීමට නොහැකි විය", + "link": "සබැඳිය", + "takingLonger": "මෙය බලාපොරොත්තු වූවාට වඩා වැඩි කාලයක් ගනී. ඔබට මෙය වසා නැවත පරීක්ෂා කළ හැක." }, "language": { "title": "භාෂාව", @@ -576,6 +579,12 @@ "commentPosted": "අදහස පළ කරන ලදී", "reviewSubmitted": "සමාලෝචනය ඉදිරිපත් කරන ලදී", "autoMergeEnabled": "ස්වයංක්‍රීය ඒකාබද්ධ කිරීම සක්‍රීය කර ඇත" + }, + "mutationError": { + "commentNotPosted": "මෙම අදහස පළ කළ නොහැක. තෝරාගත් පේළිය වෙනස් වී තිබිය හැක, නැතහොත් PR යාවත්කාලීන කර තිබිය හැක.", + "reviewNotSubmitted": "මෙම සමාලෝචනය මෙලෙසම ඉදිරිපත් කළ නොහැක. PR වෙනස් වී තිබිය හැක, නැතහොත් ඔබට ඔබේම pull request එක සමාලෝචනය කළ නොහැක.", + "couldNotPostComment": "අදහස පළ කිරීමට නොහැකි විය.", + "couldNotSubmitReview": "සමාලෝචනය ඉදිරිපත් කිරීමට නොහැකි විය. ඔබේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ගොනුව හිස් ය", "classificationTooLarge": "ගොනු 20 MB හෝ ඊට අඩු විය යුතුය", "classificationUnreadable": "මෙම ගොනුව කියවීමට නොහැකි විය", - "announceUploaded": "ඇමුණුම උඩුගත කරන ලදී" + "announceUploaded": "ඇමුණුම උඩුගත කරන ලදී", + "cantUpload": "මෙම ගොනුව උඩුගත කළ නොහැක.", + "networkError": "ජාල දෝෂය", + "uploadFailed": "උඩුගත කිරීම අසාර්ථකයි", + "failedToUploadFile": "ගොනුව උඩුගත කිරීමට අසමත් විය: {{reason}}", + "nothingToPaste": "ඇලවීමට කිසිවක් නැත" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Sparkles", "strongArm": "Strong arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "මෙම අවස්ථාවට ගොනු ලබා ගත නොහැක." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "තීරණයක් නොමැත", "noResult": "ප්රතිඵලයක් නොමැත" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "සමාලෝචකයා යාවත්කාලීන කිරීම අසාර්ථකයි", + "configSaveFailed": "සමාලෝචන වින්‍යාසය සුරැකීම අසාර්ථකයි" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "පවතින ප්‍රතිකර්ම පෝලිම් කර ඇත", "analysisComplete": "විශ්ලේෂණය සම්පූර්ණයි", "syncComplete": "සමමුහුර්තය සම්පූර්ණයි" + }, + "mutations": { + "serviceNotConfiguredResubmit": "ආරක්ෂක සේවාව වින්‍යාස කර නොමැත. මෙය නිවැරදි කරන තෙක් නැවත ඉදිරිපත් කිරීම සාර්ථක විය නොහැක.", + "syncMayNotHaveCompleted": "සමමුහුර්තයක් සම්පූර්ණ නොවන්නට ඇත. එය ප්‍රතිසන්ධානය කිරීමට නැවත උත්සාහ කරන්න, නැතහොත් ඉවතලන්න.", + "syncInProgress": "ආරක්ෂක සමමුහුර්තයක් දැනටමත් සිදු වෙමින් පවතී. කරුණාකර නැවත උත්සාහ කරන්න.", + "dismissalInProgress": "මෙම ඉවතලීම දැනටමත් සිදු වෙමින් පවතී. කරුණාකර නැවත උත්සාහ කරන්න.", + "couldNotReadPendingSyncs": "අපේක්ෂිත සමමුහුර්ත කියවීමට නොහැකි විය. නැවත උත්සාහ කරන්න." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "මෙම උපාංගයට නොබැඳිව සංකේතනය කළ නොහැක. එය පෙළ බවට පත් කිරීමට ඔබගේ පටිගත කිරීම {{provider}} වෙත යවනු ලැබේ. Kilo ශ්‍රව්‍යය ගබඩා නොකරයි.", "allow": "ඉඩ දෙන්න", "start": "හඬ ආදානය ආරම්භ කරන්න", - "stop": "හඬ ආදානය නවත්වන්න" + "stop": "හඬ ආදානය නවත්වන්න", + "restricted": "මෙම උපාංගයේ හඬ ආදානය සීමා කර ඇත.", + "micRequired": "හඬ ආදානය සඳහා මයික්‍රෆෝන ප්‍රවේශය අවශ්‍ය වේ.", + "micOff": "මයික්‍රෆෝන ප්‍රවේශය ක්‍රියා විරහිතයි. හඬ ආදානය භාවිතා කිරීමට සැකසුම් තුළ එය සක්‍රීය කරන්න.", + "micOffTitle": "මයික්‍රෆෝන ප්‍රවේශය ක්‍රියා විරහිතයි", + "noSpeech": "කථනයක් හඳුනාගත නොහැකි විය. නැවත උත්සාහ කිරීමට මයික්‍රෆෝනය තට්ටු කරන්න.", + "needsConnection": "හඬ ආදානයට දැන් සම්බන්ධතාවයක් අවශ්‍ය වේ. නැවත උත්සාහ කරන්න.", + "busy": "හඬ ආදානය කාර්යබහුලයි. නැවත උත්සාහ කරන්න.", + "stopped": "හඬ ආදානය නතර විය. නැවත උත්සාහ කිරීමට මයික්‍රෆෝනය තට්ටු කරන්න.", + "unavailableDevice": "මෙම උපාංගයේ හඬ ආදානය ලබා ගත නොහැක.", + "unavailableLanguage": "මෙම උපාංග භාෂාව සඳහා හඬ ආදානය ලබා ගත නොහැක." }, "share": { "title": "Kilo වෙත බෙදාගන්න", @@ -2549,7 +2583,12 @@ "webManagementDescription": "මෙම Kilo Pass වෙබ් අඩවියේ කළමනාකරණය වේ.", "legalDisclosure": "Kilo Pass යනු ස්වයං-අලුත් කළ හැකි මාසික දායකත්වයකි. ගෙවීම ඔබේ Apple ID වෙත මිලදී ගැනීම තහවුරු වූ විට අය කෙරේ. දායකත්ව ස්වයංක්රීයව සෑම මාසයකම පෙන්වන මිලට අලුත් වේ. වත්මන් කාල සීමාව අවසන් වීමට අවම වශයෙන් පැය 24 කට පෙර අවලංගු නොකළහොත්. ඔබේ App Store ගිණුම් සැකසුම් තුළ ඕනෑම අවස්ථාවක කළමනාකරණය කරන්න හෝ අවලංගු කරන්න.", "legalPrivacyPolicy": "රහස්යතා ප්රතිපත්තිය", - "legalTermsOfUse": "භාවිත කොන්දේසි (EULA)" + "legalTermsOfUse": "භාවිත කොන්දේසි (EULA)", + "purchaseNotLinked": "මෙම App Store මිලදී ගැනීම ඔබේ Kilo ගිණුමට සම්බන්ධ කර නොමැත. මිලදී ගැනීම සිදු කළ Apple ID එකට පුරනය වී ඇති බවට වග බලා ගන්න, ඉන්පසු නැවත උත්සාහ කරන්න.", + "purchaseDifferentAccount": "මෙම App Store මිලදී ගැනීම ඔබේ Kilo ගිණුමට සම්බන්ධ කර නොමැත. මිලදී ගැනීම සඳහා භාවිතා කළ Apple ගිණුමට පුරනය වන්න, ඉන්පසු නැවත උත්සාහ කරන්න.", + "restoreFailed": "මිලදී ගැනීම් ප්‍රතිස්ථාපනය කිරීමට අසමත් විය. නැවත උත්සාහ කරන්න.", + "purchaseFailed": "මිලදී ගැනීම සම්පූර්ණ කිරීමට අසමත් විය.", + "purchaseStartFailed": "App Store මිලදී ගැනීම ආරම්භ කිරීමට අසමත් විය." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "විවෘත", "statusPaid": "ගෙවූ", "statusVoid": "අවලංගු", - "title": "ඉන්වොයිසි" + "title": "ඉන්වොයිසි", + "downloadFailed": "ඉන්වොයිසිය බාගත කළ නොහැකි විය. ඔබේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න.", + "sharingUnavailable": "මෙම උපාංගයේ බෙදාගැනීම ලබා ගත නොහැක." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "පිවිසුම අසමත් විය. කරුණාකර නැවත උත්සාහ කරන්න.", "networkError": "ජාල දෝෂයකි. කරුණාකර නැවත උත්සාහ කරන්න.", "accessDeniedByUser": "පරිශීලකයා විසින් ප්‍රවේශය ප්‍රතික්ෂේප කරන ලදී", - "codeExpired": "කේතය කල් ඉකුත් විය" + "codeExpired": "කේතය කල් ඉකුත් විය", + "tooManySignInAttempts": "පුරනය වීමේ උත්සාහයන් බොහෝ වැඩිය. කරුණාකර රැඳී සිට නැවත උත්සාහ කරන්න." }, "models": { "dataCollected": "එකතු කළ දත්ත", diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index fafebfc4a7..c3ed1a1461 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -24,7 +24,10 @@ "required": "povinné", "error": "chyba: {{error}}", "back": "Späť", - "somethingWentWrong": "Niečo sa pokazilo" + "somethingWentWrong": "Niečo sa pokazilo", + "couldNotOpen": "{{label}} sa nepodarilo otvoriť", + "link": "odkaz", + "takingLonger": "Toto trvá dlhšie, ako sa očakávalo. Môžete to zavrieť a skontrolovať znova." }, "language": { "title": "Jazyk", @@ -590,6 +593,12 @@ "commentPosted": "Komentár uverejnený", "reviewSubmitted": "Kontrola odoslaná", "autoMergeEnabled": "Automatické zlúčenie povolené" + }, + "mutationError": { + "commentNotPosted": "Tento komentár sa nedá odoslať. Vybraný riadok sa mohol zmeniť alebo mohol byť PR aktualizovaný.", + "reviewNotSubmitted": "Túto kontrolu nemožno odoslať v tejto podobe. PR sa mohol zmeniť alebo nemôžete kontrolovať vlastný pull request.", + "couldNotPostComment": "Komentár sa nepodarilo odoslať.", + "couldNotSubmitReview": "Kontrolu sa nepodarilo odoslať. Skontrolujte pripojenie a skúste to znova." } }, "notifications": { @@ -728,7 +737,12 @@ "classificationEmpty": "Súbor je prázdny", "classificationTooLarge": "Súbory musia mať 20 MB alebo menej", "classificationUnreadable": "Tento súbor sa nepodarilo prečítať", - "announceUploaded": "Príloha nahraná" + "announceUploaded": "Príloha nahraná", + "cantUpload": "Tento súbor sa nedá nahrať.", + "networkError": "Chyba siete", + "uploadFailed": "Nahrávanie zlyhalo", + "failedToUploadFile": "Súbor sa nepodarilo nahrať: {{reason}}", + "nothingToPaste": "Nie je čo vložiť" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1190,7 +1204,8 @@ "sparkles": "Iskry", "strongArm": "Silné rameno", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Táto inštancia nemôže prijímať súbory." }, "codeReviewer": { "focusAreas": { @@ -1377,7 +1392,9 @@ "noDecision": "Bez rozhodnutia", "noResult": "Bez výsledku" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Kontrolóra sa nepodarilo aktualizovať", + "configSaveFailed": "Konfiguráciu kontroly sa nepodarilo uložiť" }, "securityAgent": { "filter": { @@ -1803,6 +1820,13 @@ "remediationsQueued": "Existujúce nápravy boli zaradené do frontu", "analysisComplete": "Analýza dokončená", "syncComplete": "Synchronizácia dokončená" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Bezpečnostná služba nie je nakonfigurovaná. Opätovné odoslanie nemôže uspieť, kým sa to neopraví.", + "syncMayNotHaveCompleted": "Synchronizácia sa možno nedokončila. Zopakujte ju na zosúladenie alebo ju zahoďte.", + "syncInProgress": "Synchronizácia zabezpečenia už prebieha. Skúste to znova.", + "dismissalInProgress": "Toto odmietnutie už prebieha. Skúste to znova.", + "couldNotReadPendingSyncs": "Čakajúce synchronizácie sa nepodarilo prečítať. Skúste to znova." } }, "agents": { @@ -2507,7 +2531,17 @@ "onlineMessage": "Toto zariadenie nedokáže prepisovať offline. Vaša nahrávka sa odošle do {{provider}}, aby sa premenila na text. Kilo neukladá zvuk.", "allow": "Povoliť", "start": "Spustiť hlasový vstup", - "stop": "Zastaviť hlasový vstup" + "stop": "Zastaviť hlasový vstup", + "restricted": "Hlasový vstup je na tomto zariadení obmedzený.", + "micRequired": "Pre hlasový vstup je potrebný prístup k mikrofónu.", + "micOff": "Prístup k mikrofónu je vypnutý. Povoľte ho v Nastaveniach, aby ste mohli používať hlasový vstup.", + "micOffTitle": "Prístup k mikrofónu je vypnutý", + "noSpeech": "Nezistila sa žiadna reč. Klepnutím na mikrofón to skúste znova.", + "needsConnection": "Hlasový vstup práve teraz potrebuje pripojenie. Skúste to znova.", + "busy": "Hlasový vstup je zaneprázdnený. Skúste to znova.", + "stopped": "Hlasový vstup sa zastavil. Klepnutím na mikrofón to skúste znova.", + "unavailableDevice": "Hlasový vstup nie je na tomto zariadení dostupný.", + "unavailableLanguage": "Hlasový vstup nie je dostupný pre jazyk tohto zariadenia." }, "share": { "title": "Zdieľať do Kilo", @@ -2585,7 +2619,12 @@ "webManagementDescription": "Tento Kilo Pass sa spravuje na webe.", "legalDisclosure": "Kilo Pass je mesačné predplatné s automatickým obnovením. Platba sa účtuje na vaše Apple ID pri potvrdení nákupu. Predplatné sa automaticky obnovuje každý mesiac za zobrazenú cenu, pokiaľ ho nezrušíte najmenej 24 hodín pred koncom aktuálneho obdobia. Spravujte alebo zrušte ho kedykoľvek v nastaveniach svojho účtu App Store.", "legalPrivacyPolicy": "Zásady ochrany osobných údajov", - "legalTermsOfUse": "Podmienky používania (EULA)" + "legalTermsOfUse": "Podmienky používania (EULA)", + "purchaseNotLinked": "Tento nákup v App Store nie je prepojený s vaším účtom Kilo. Uistite sa, že ste prihlásení do Apple ID, cez ktoré bol nákup uskutočnený, a skúste to znova.", + "purchaseDifferentAccount": "Tento nákup v App Store nie je prepojený s vaším účtom Kilo. Prihláste sa do Apple Account použitého na nákup a skúste to znova.", + "restoreFailed": "Obnovenie nákupov zlyhalo. Skúste to znova.", + "purchaseFailed": "Nákup sa nepodarilo dokončiť.", + "purchaseStartFailed": "Nákup v App Store sa nepodarilo spustiť." }, "consent": { "kilo": "Kilo", @@ -2718,7 +2757,9 @@ "statusOpen": "Otvorená", "statusPaid": "Zaplatená", "statusVoid": "Neplatná", - "title": "Faktúry" + "title": "Faktúry", + "downloadFailed": "Faktúru sa nepodarilo stiahnuť. Skontrolujte pripojenie a skúste to znova.", + "sharingUnavailable": "Zdieľanie nie je na tomto zariadení dostupné." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Prihlásenie zlyhalo. Skúste to znova.", "networkError": "Chyba siete. Skúste to znova.", "accessDeniedByUser": "Prístup zamietnutý používateľom", - "codeExpired": "Kód vypršal" + "codeExpired": "Kód vypršal", + "tooManySignInAttempts": "Príliš veľa pokusov o prihlásenie. Počkajte a skúste to znova." }, "models": { "dataCollected": "Zhromaždené údaje", diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index e75ebf1105..1ce6fb2990 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -24,7 +24,10 @@ "required": "obvezno", "error": "napaka: {{error}}", "back": "Nazaj", - "somethingWentWrong": "Nekaj je šlo narobe" + "somethingWentWrong": "Nekaj je šlo narobe", + "couldNotOpen": "{{label}} ni bilo mogoče odpreti", + "link": "povezava", + "takingLonger": "To traja dlje, kot je bilo pričakovano. To lahko zaprete in preverite znova." }, "language": { "title": "Jezik", @@ -590,6 +593,12 @@ "commentPosted": "Komentar objavljen", "reviewSubmitted": "Pregled oddan", "autoMergeEnabled": "Samodejno združevanje omogočeno" + }, + "mutationError": { + "commentNotPosted": "Tega komentarja ni mogoče objaviti. Izbrana vrstica se je morda spremenila ali pa je bil PR posodobljen.", + "reviewNotSubmitted": "Tega pregleda ni mogoče oddati, kot je. PR se je morda spremenil ali pa svojega lastnega pull requesta ne morete pregledati.", + "couldNotPostComment": "Komentarja ni bilo mogoče objaviti.", + "couldNotSubmitReview": "Pregleda ni bilo mogoče oddati. Preverite povezavo in poskusite znova." } }, "notifications": { @@ -728,7 +737,12 @@ "classificationEmpty": "Datoteka je prazna", "classificationTooLarge": "Datoteke morajo biti velike 20 MB ali manj", "classificationUnreadable": "Te datoteke ni bilo mogoče prebrati", - "announceUploaded": "Priloga naložena" + "announceUploaded": "Priloga naložena", + "cantUpload": "Te datoteke ni mogoče naložiti.", + "networkError": "Napaka v omrežju", + "uploadFailed": "Nalaganje ni uspelo", + "failedToUploadFile": "Nalaganje datoteke ni uspelo: {{reason}}", + "nothingToPaste": "Ničesar ni za prilepiti" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1190,7 +1204,8 @@ "sparkles": "Iskrice", "strongArm": "Močna roka", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Ta primerek ne more prejemati datotek." }, "codeReviewer": { "focusAreas": { @@ -1377,7 +1392,9 @@ "noDecision": "Ni odločitve", "noResult": "Ni rezultata" }, - "eyebrow": "Pregledovalnik kode" + "eyebrow": "Pregledovalnik kode", + "updateFailed": "Pregledovalca ni bilo mogoče posodobiti", + "configSaveFailed": "Konfiguracije pregleda ni bilo mogoče shraniti" }, "securityAgent": { "filter": { @@ -1803,6 +1820,13 @@ "remediationsQueued": "Obstoječe odprave v čakalni vrsti", "analysisComplete": "Analiza končana", "syncComplete": "Sinhronizacija končana" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Varnostna storitev ni konfigurirana. Ponovno oddajanje ne more uspeti, dokler to ni odpravljeno.", + "syncMayNotHaveCompleted": "Sinhronizacija se morda ni dokončala. Poskusite znova, da jo uskladite, ali zavrzite.", + "syncInProgress": "Varnostna sinhronizacija že poteka. Poskusite znova.", + "dismissalInProgress": "Ta zavrnitev že poteka. Poskusite znova.", + "couldNotReadPendingSyncs": "Čakajočih sinhronizacij ni bilo mogoče prebrati. Poskusite znova." } }, "agents": { @@ -2507,7 +2531,17 @@ "onlineMessage": "Ta naprava ne more prepisovati brez povezave. Tvoj posnetek se pošlje {{provider}}-ju, da ga pretvori v besedilo. Kilo ne shranjuje zvoka.", "allow": "Dovoli", "start": "Začni glasovni vnos", - "stop": "Ustavi glasovni vnos" + "stop": "Ustavi glasovni vnos", + "restricted": "Glasovni vnos je na tej napravi omejen.", + "micRequired": "Za glasovni vnos je potreben dostop do mikrofona.", + "micOff": "Dostop do mikrofona je izklopljen. Omogočite ga v nastavitvah za uporabo glasovnega vnosa.", + "micOffTitle": "Dostop do mikrofona je izklopljen", + "noSpeech": "Govora ni zaznati. Dotaknite se mikrofona za ponovni poskus.", + "needsConnection": "Glasovni vnos trenutno potrebuje povezavo. Poskusite znova.", + "busy": "Glasovni vnos je zaseden. Poskusite znova.", + "stopped": "Glasovni vnos je bil ustavljen. Dotaknite se mikrofona za ponovni poskus.", + "unavailableDevice": "Glasovni vnos na tej napravi ni na voljo.", + "unavailableLanguage": "Glasovni vnos ni na voljo za ta jezik naprave." }, "share": { "title": "Deli s Kilo", @@ -2585,7 +2619,12 @@ "webManagementDescription": "Ta Kilo Pass se upravlja na spletu.", "legalDisclosure": "Kilo Pass je samodejno obnovljiva mesečna naročnina. Plačilo se bremeni vaš Apple ID ob potrditvi nakupa. Naročnine se samodejno obnovijo vsak mesec po prikazani ceni, razen če jih prekličete vsaj 24 ur pred koncem trenutnega obdobja. Upravljajte ali prekličite kadar koli v nastavitvah računa v App Store.", "legalPrivacyPolicy": "Politika zasebnosti", - "legalTermsOfUse": "Pogoji uporabe (EULA)" + "legalTermsOfUse": "Pogoji uporabe (EULA)", + "purchaseNotLinked": "Ta nakup v App Store ni povezan z vašim Kilo računom. Prepričajte se, da ste prijavljeni v Apple ID, s katerim je bil nakup opravljen, nato poskusite znova.", + "purchaseDifferentAccount": "Ta nakup v App Store ni povezan z vašim Kilo računom. Prijavite se v Apple račun, s katerim je bil nakup opravljen, nato poskusite znova.", + "restoreFailed": "Obnovitev nakupov ni uspela. Poskusite znova.", + "purchaseFailed": "Nakupa ni bilo mogoče dokončati.", + "purchaseStartFailed": "Nakupa v App Store ni bilo mogoče začeti." }, "consent": { "kilo": "Kilo", @@ -2718,7 +2757,9 @@ "statusOpen": "Odprto", "statusPaid": "Plačano", "statusVoid": "Nično", - "title": "Računi" + "title": "Računi", + "downloadFailed": "Računa ni bilo mogoče prenesti. Preverite povezavo in poskusite znova.", + "sharingUnavailable": "Deljenje na tej napravi ni na voljo." }, "lowBalanceAlert": { "emailPlaceholder": "ime@podjetje.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Prijava ni uspela. Poskusite znova.", "networkError": "Napaka v omrežju. Poskusite znova.", "accessDeniedByUser": "Uporabnik je zavrnil dostop", - "codeExpired": "Koda je potekla" + "codeExpired": "Koda je potekla", + "tooManySignInAttempts": "Preveč poskusov prijave. Počakajte in poskusite znova." }, "models": { "dataCollected": "Zbrani podatki", diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index 8c0c24a85b..9b92b7d2b0 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -24,7 +24,10 @@ "required": "loo baahan yahay", "error": "khalad: {{error}}", "back": "Dib", - "somethingWentWrong": "Waxbaa khaldamay" + "somethingWentWrong": "Waxbaa khaldamay", + "couldNotOpen": "{{label}} lama furi karin", + "link": "xiriirka", + "takingLonger": "Tani way ka dheer tahay intii la fileyn. Waad xiri kartaa oo mar kale hubin kartaa." }, "language": { "title": "Luuqad", @@ -392,7 +395,7 @@ "thumbsUp": "Suul kor", "thumbsDown": "Suul hoos", "laugh": "Qosol", - "hooray": "Hooray", + "hooray": "Hurey", "confused": "Jahwareer", "heart": "Qalbi", "rocket": "Raket", @@ -576,6 +579,12 @@ "commentPosted": "Faallada waa la dajiyay", "reviewSubmitted": "Dib-u-eegista waa la gudbiyay", "autoMergeEnabled": "Auto-merge waa la furay" + }, + "mutationError": { + "commentNotPosted": "Faalladan lama dajin karo. Waxaa laga yaabaa in xariiqda la doortay isbeddesho, ama PR-ka la cusbooneysiiyo.", + "reviewNotSubmitted": "Dib-u-eegistan lama gudbin karo sida ay tahay. PR-ka ayaa laga yaabaa inuu isbeddelo, ama ma dib u eegi kartid pull request-kaaga.", + "couldNotPostComment": "Faallada lama dajin karin.", + "couldNotSubmitReview": "Dib-u-eegista lama gudbin karin. Hubi xiriirkaaga oo mar kale isku day." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Faylku waa madhan", "classificationTooLarge": "Faylasha waa inay ahaadaan 20 MB ama ka yar", "classificationUnreadable": "Faylkan lama aqrin karin", - "announceUploaded": "Lifaaqda waa la soo geliyay" + "announceUploaded": "Lifaaqda waa la soo geliyay", + "cantUpload": "Faylkan lama soo gudbin karo.", + "networkError": "Khalad shabakadeed", + "uploadFailed": "Soo gudbintu way fashilantay", + "failedToUploadFile": "Soo gudbinta faylka way fashilantay: {{reason}}", + "nothingToPaste": "Waxba ma jiraan wax la dhajiyo" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Dhalaal", "strongArm": "Gacan adag", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Astaantani ma heli karto faylasha." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Ma jiro go'aan", "noResult": "Ma jiro natiijo" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Dib-u-eegaha lama cusboonaysiin karin", + "configSaveFailed": "Dejinta dib-u-eegista lama kaydin karin" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Wax ka saarista jirta ayaa safka ku jirta", "analysisComplete": "Falanqaynta waa la dhammeeyay", "syncComplete": "Sync-ka waa la dhammeeyay" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Adeegga ammaanka lama habayn. Dib u gudbinta ma guulaysan karto ilaa tan la hagaajiyo.", + "syncMayNotHaveCompleted": "Isku-xirku laga yaabaa inuusan dhammaystirin. Mar kale isku day si aad u isku xirto, ama iska daa.", + "syncInProgress": "Isku-xirka ammaanka horeyba wuu socdaa. Fadlan mar kale isku day.", + "dismissalInProgress": "Isku-xirkaan horeyba wuu socdaa. Fadlan mar kale isku day.", + "couldNotReadPendingSyncs": "Isku-xirka sugaya lama akhriyi karin. Mar kale isku day." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Aaladdani ma qori karto marka aad xiriir la' tahay. Duubistaada waxaa loo diraa {{provider}} si loo beddelo qoraal. Kilo ma kaydin doono maqalka.", "allow": "Oggolow", "start": "Bilow codka gelinta", - "stop": "Jooji codka gelinta" + "stop": "Jooji codka gelinta", + "restricted": "Gelinta codka waa laga xayiray aaladdan.", + "micRequired": "Gelitaanka makarafoonka ayaa loo baahan yahay gelinta codka.", + "micOff": "Gelitaanka makarafoonka waa daman. Ku daar Dejinta si aad u isticmaasho gelinta codka.", + "micOffTitle": "Gelitaanka makarafoonka waa daman", + "noSpeech": "Hadallo lama ogaan. Taabo makarafoonka si aad mar kale isku daydo.", + "needsConnection": "Gelinta codka hadda waxay u baahan tahay xiriir. Mar kale isku day.", + "busy": "Gelinta codka waa mashquul. Mar kale isku day.", + "stopped": "Gelinta codku way joogsatay. Taabo makarafoonka si aad mar kale isku daydo.", + "unavailableDevice": "Gelinta codka aaladdan kuma heli karto.", + "unavailableLanguage": "Gelinta codka looma heli karo luqaddan aaladda." }, "share": { "title": "Wadaag Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass-kan waxaa lagu maareeyaa shabakadda.", "legalDisclosure": "Kilo Pass waa diiwaangelin bil-ah oo is-keeneysa si toos ah. Lacagta waxaa laga qaadaa Apple ID-gaaga markaad xaqiijiso iibsashada. Diiwaangelintu waxay si toos ah u cusbooneysa bil kasta qiimaha la muujiyey ilaa aadan baajin ugu yaraan 24 saacadood ka hor dhamaadka xilli-gii xaafada. Ku maareyso ama baaji wakhti kasta ee goobaha xisaabta App Store.", "legalPrivacyPolicy": "Siyaasadda Asturnaanta", - "legalTermsOfUse": "Shuruudaha Isticmaalka (EULA)" + "legalTermsOfUse": "Shuruudaha Isticmaalka (EULA)", + "purchaseNotLinked": "Iibsashadan App Store kuma xirna akoontigaaga Kilo. Hubi inaad ku soo gashay Apple ID-ga iibsashada sameeyay, ka dibna mar kale isku day.", + "purchaseDifferentAccount": "Iibsashadan App Store kuma xirna akoontigaaga Kilo. Ku soo gal Apple Account-ka loo adeegsaday iibsashada, ka dibna mar kale isku day.", + "restoreFailed": "Soo celinta iibsashada way fashilantay. Mar kale isku day.", + "purchaseFailed": "Iibsashada lama dhammayn karin.", + "purchaseStartFailed": "Bilowga iibsashada App Store waa fashilmay." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Furan", "statusPaid": "La bixiyay", "statusVoid": "Baadil", - "title": "Invoices" + "title": "Invoices", + "downloadFailed": "Invoice-ka lama soo dejin karin. Hubi xiriirkaaga oo mar kale isku day.", + "sharingUnavailable": "Wadaagista aaladdan laguma heli karo." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Soo galista way fashilantay. Fadlan mar kale isku day.", "networkError": "Khalad shabakadeed. Fadlan mar kale isku day.", "accessDeniedByUser": "Gelitaanka isticmaaluhu wuu diiday", - "codeExpired": "Koodhku wuu dhacay" + "codeExpired": "Koodhku wuu dhacay", + "tooManySignInAttempts": "Isku-dayo soo-gal oo aad u badan. Fadlan sug oo mar kale isku day." }, "models": { "dataCollected": "Xog la ururiyay", diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 7e9b126976..1d64a9c22f 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -24,7 +24,10 @@ "required": "kërkohet", "error": "gabim: {{error}}", "back": "Prapa", - "somethingWentWrong": "Diçka shkoi keq" + "somethingWentWrong": "Diçka shkoi keq", + "couldNotOpen": "Nuk u arrit të hapej {{label}}", + "link": "lidhja", + "takingLonger": "Kjo po zgjat më shumë se sa pritej. Mund ta mbyllni dhe ta kontrolloni përsëri." }, "language": { "title": "Gjuha", @@ -576,6 +579,12 @@ "commentPosted": "Komenti u postua", "reviewSubmitted": "Rishikimi u dërgua", "autoMergeEnabled": "Shkrirja automatike u aktivizua" + }, + "mutationError": { + "commentNotPosted": "Ky koment nuk mund të postohet. Rreshti i përzgjedhur mund të ketë ndryshuar, ose PR mund të jetë përditësuar.", + "reviewNotSubmitted": "Ky rishikim nuk mund të dërgohet siç është. PR mund të ketë ndryshuar, ose nuk mund ta rishikoni kërkesën tuaj të tërheqjes.", + "couldNotPostComment": "Nuk u arrit të postohej komenti.", + "couldNotSubmitReview": "Nuk u arrit të dërgohej rishikimi. Kontrolloni lidhjen dhe provoni përsëri." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Skedari është bosh", "classificationTooLarge": "Skedarët duhet të jenë 20 MB ose më të vegjël", "classificationUnreadable": "Nuk u arrit të lexohej ky skedar", - "announceUploaded": "Bashkangjitja u ngarkua" + "announceUploaded": "Bashkangjitja u ngarkua", + "cantUpload": "Ky skedar nuk mund të ngarkohet.", + "networkError": "Gabim rrjeti", + "uploadFailed": "Ngarkimi dështoi", + "failedToUploadFile": "Ngarkimi i skedarit dështoi: {{reason}}", + "nothingToPaste": "Asgjë për të ngjitur" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Shkëndijat", "strongArm": "Krahu i fortë", "talisman": "Talismani" - } + }, + "remoteSpawnFilesNotSupported": "Kjo instancë nuk mund të marrë skedarë." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Asnjë vendim", "noResult": "Asnjë rezultat" }, - "eyebrow": "Shqyrtuesi i Kodit" + "eyebrow": "Shqyrtuesi i Kodit", + "updateFailed": "Nuk u arrit të përditësohej rishikuesi", + "configSaveFailed": "Nuk u arrit të ruhej konfigurimi i rishikimit" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Riparimet ekzistuese në radhë", "analysisComplete": "Analiza e përfunduar", "syncComplete": "Sinkronizimi i përfunduar" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Shërbimi i sigurisë nuk është i konfiguruar. Ridërgimi nuk mund të ketë sukses derisa kjo të rregullohet.", + "syncMayNotHaveCompleted": "Sinkronizimi mund të mos ketë përfunduar. Riprovoni për ta rakorduar, ose hidheni poshtë.", + "syncInProgress": "Një sinkronizim sigurie është tashmë në proces. Provo përsëri.", + "dismissalInProgress": "Kjo hedhje poshtë është tashmë në proces. Provo përsëri.", + "couldNotReadPendingSyncs": "Nuk u arrit të lexoheshin sinkronizimet në pritje. Provo përsëri." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Kjo pajisje nuk mund të transkriptojë jashtë linje. Regjistrimi juaj dërgohet te {{provider}} për ta kthyer në tekst. Kilo nuk e ruan audion.", "allow": "Lejo", "start": "Fillo futjen me zë", - "stop": "Ndalo futjen me zë" + "stop": "Ndalo futjen me zë", + "restricted": "Futja me zë është e kufizuar në këtë pajisje.", + "micRequired": "Për futjen me zë kërkohet qasje te mikrofoni.", + "micOff": "Qasja te mikrofoni është e fikur. Aktivizojeni te Cilësimet për të përdorur futjen me zë.", + "micOffTitle": "Qasja te mikrofoni është e fikur", + "noSpeech": "Nuk u zbulua asnjë fjalim. Prekni mikrofonin për të provuar përsëri.", + "needsConnection": "Futja me zë tani ka nevojë për lidhje. Provo përsëri.", + "busy": "Futja me zë është e zënë. Provo përsëri.", + "stopped": "Futja me zë u ndal. Prekni mikrofonin për të provuar përsëri.", + "unavailableDevice": "Futja me zë nuk është e disponueshme në këtë pajisje.", + "unavailableLanguage": "Futja me zë nuk është e disponueshme për gjuhën e kësaj pajisjeje." }, "share": { "title": "Ndaj te Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Ky Kilo Pass menaxhohet në ueb.", "legalDisclosure": "Kilo Pass është një abonim mujor me rinovim automatik. Pagesa i ngarkohet Apple ID-së suaj në konfirmim të blerjes. Abonimet rinovohen automatikisht çdo muaj me çmimin e treguar, përveç nëse anulohen të paktën 24 orë para përfundimit të periudhës aktuale. Menaxhojeni ose anuloni në çdo kohë te cilësimet e llogarisë suaj në App Store.", "legalPrivacyPolicy": "Politika e privatësisë", - "legalTermsOfUse": "Kushtet e përdorimit (EULA)" + "legalTermsOfUse": "Kushtet e përdorimit (EULA)", + "purchaseNotLinked": "Kjo blerje në App Store nuk është e lidhur me llogarinë tuaj Kilo. Sigurohuni që jeni regjistruar me Apple ID që bëri blerjen, pastaj provoni përsëri.", + "purchaseDifferentAccount": "Kjo blerje në App Store nuk është e lidhur me llogarinë tuaj Kilo. Hyni me Apple Account të përdorur për blerjen, pastaj provoni përsëri.", + "restoreFailed": "Rivendosja e blerjeve dështoi. Provo përsëri.", + "purchaseFailed": "Nuk u arrit të përfundohej blerja.", + "purchaseStartFailed": "Nuk u arrit të fillohej blerja në App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "E hapur", "statusPaid": "E paguar", "statusVoid": "E pavlefshme", - "title": "Faturat" + "title": "Faturat", + "downloadFailed": "Fatura nuk mund të shkarkohej. Kontrolloni lidhjen dhe provoni përsëri.", + "sharingUnavailable": "Ndarja nuk është e disponueshme në këtë pajisje." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Hyrja dështoi. Provo përsëri.", "networkError": "Gabim rrjeti. Provo përsëri.", "accessDeniedByUser": "Qasja u refuzua nga përdoruesi", - "codeExpired": "Kodi skadoi" + "codeExpired": "Kodi skadoi", + "tooManySignInAttempts": "Shumë përpjekje hyrjeje. Prisni dhe provoni përsëri." }, "models": { "dataCollected": "Të dhënat e mbledhura", diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index 43f3ced030..021480a02e 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -24,7 +24,10 @@ "required": "obavezno", "error": "greška: {{error}}", "back": "Nazad", - "somethingWentWrong": "Nešto je pošlo po zlu" + "somethingWentWrong": "Nešto je pošlo po zlu", + "couldNotOpen": "Nije moguće otvoriti {{label}}", + "link": "link", + "takingLonger": "Ovo traje duže nego što se očekivalo. Možete zatvoriti i proveriti ponovo." }, "language": { "title": "Jezik", @@ -583,6 +586,12 @@ "commentPosted": "Komentar objavljen", "reviewSubmitted": "Pregled poslat", "autoMergeEnabled": "Automatsko spajanje omogućeno" + }, + "mutationError": { + "commentNotPosted": "Ovaj komentar se ne može objaviti. Izabrana linija se možda promenila, ili je PR ažuriran.", + "reviewNotSubmitted": "Ovaj pregled se ne može poslati kako jeste. PR se možda promenio, ili ne možete pregledati sopstveni pull request.", + "couldNotPostComment": "Komentar nije moguće objaviti.", + "couldNotSubmitReview": "Pregled nije moguće poslati. Proverite vezu i pokušajte ponovo." } }, "notifications": { @@ -721,7 +730,12 @@ "classificationEmpty": "Fajl je prazan", "classificationTooLarge": "Fajlovi moraju biti 20 MB ili manji", "classificationUnreadable": "Ovaj fajl nije moguće pročitati", - "announceUploaded": "Prilog otpremljen" + "announceUploaded": "Prilog otpremljen", + "cantUpload": "Ova datoteka se ne može otpremiti.", + "networkError": "Mrežna greška", + "uploadFailed": "Otpremanje nije uspelo", + "failedToUploadFile": "Otpremanje datoteke nije uspelo: {{reason}}", + "nothingToPaste": "Nema šta da se nalepi" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1181,7 +1195,8 @@ "sparkles": "Iskrice", "strongArm": "Jaka ruka", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Ova instanca ne može primati datoteke." }, "codeReviewer": { "focusAreas": { @@ -1368,7 +1383,9 @@ "noDecision": "Nema odluke", "noResult": "Nema rezultata" }, - "eyebrow": "Pregledač koda" + "eyebrow": "Pregledač koda", + "updateFailed": "Nije moguće ažurirati pregledača", + "configSaveFailed": "Nije moguće sačuvati konfiguraciju pregleda" }, "securityAgent": { "filter": { @@ -1792,6 +1809,13 @@ "remediationsQueued": "Postojeće sanacije u redu", "analysisComplete": "Analiza završena", "syncComplete": "Sinhronizacija završena" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Sigurnosna usluga nije konfigurisana. Ponovno slanje ne može uspeti dok se ovo ne popravi.", + "syncMayNotHaveCompleted": "Sinhronizacija se možda nije završila. Pokušajte ponovo da je uskladite, ili je odbacite.", + "syncInProgress": "Sinhronizacija sigurnosti je već u toku. Pokušajte ponovo.", + "dismissalInProgress": "Ovo odbacivanje je već u toku. Pokušajte ponovo.", + "couldNotReadPendingSyncs": "Nije moguće pročitati sinhronizacije na čekanju. Pokušajte ponovo." } }, "agents": { @@ -2489,7 +2513,17 @@ "onlineMessage": "Ovaj uređaj ne može transkribovati van mreže. Vaš snimak se šalje provajderu {{provider}} da bi se pretvorio u tekst. Kilo ne čuva audio.", "allow": "Dozvoli", "start": "Pokreni glasovni unos", - "stop": "Zaustavi glasovni unos" + "stop": "Zaustavi glasovni unos", + "restricted": "Glasovni unos je ograničen na ovom uređaju.", + "micRequired": "Za glasovni unos je potreban pristup mikrofonu.", + "micOff": "Pristup mikrofonu je isključen. Omogućite ga u Podešavanjima da koristite glasovni unos.", + "micOffTitle": "Pristup mikrofonu je isključen", + "noSpeech": "Govor nije prepoznat. Dodirnite mikrofon da pokušate ponovo.", + "needsConnection": "Glasovnom unosu je sada potrebna veza. Pokušajte ponovo.", + "busy": "Glasovni unos je zauzet. Pokušajte ponovo.", + "stopped": "Glasovni unos je zaustavljen. Dodirnite mikrofon da pokušate ponovo.", + "unavailableDevice": "Glasovni unos nije dostupan na ovom uređaju.", + "unavailableLanguage": "Glasovni unos nije dostupan za jezik ovog uređaja." }, "share": { "title": "Podeli u Kilo", @@ -2567,7 +2601,12 @@ "webManagementDescription": "Ovim Kilo Pass-om se upravlja na webu.", "legalDisclosure": "Kilo Pass je pretplata na mesec dana koja se automatski obnavlja. Plaćanje se naplaćuje sa vašeg Apple ID-ja pri potvrdi kupovine. Pretplate se automatski obnavljaju svakog meseca po prikazanoj ceni, osim ako ih ne otkažete najmanje 24 sata pre kraja tekućeg perioda. Upravljajte ili otkažite u svakom trenutku u podešavanjima naloga u App Store-u.", "legalPrivacyPolicy": "Politika privatnosti", - "legalTermsOfUse": "Uslovi korišćenja (EULA)" + "legalTermsOfUse": "Uslovi korišćenja (EULA)", + "purchaseNotLinked": "Ova kupovina u App Store-u nije povezana sa vašim Kilo nalogom. Uverite se da ste prijavljeni na Apple ID kojim je kupovina izvršena, pa pokušajte ponovo.", + "purchaseDifferentAccount": "Ova kupovina u App Store-u nije povezana sa vašim Kilo nalogom. Prijavite se na Apple nalog korišćen za kupovinu, pa pokušajte ponovo.", + "restoreFailed": "Vraćanje kupovina nije uspelo. Pokušajte ponovo.", + "purchaseFailed": "Kupovina nije mogla biti dovršena.", + "purchaseStartFailed": "Započinjanje kupovine u App Store-u nije uspelo." }, "consent": { "kilo": "Kilo", @@ -2700,7 +2739,9 @@ "statusOpen": "Otvoreno", "statusPaid": "Plaćeno", "statusVoid": "Stornirano", - "title": "Fakture" + "title": "Fakture", + "downloadFailed": "Faktura nije mogla biti preuzeta. Proverite vezu i pokušajte ponovo.", + "sharingUnavailable": "Deljenje nije dostupno na ovom uređaju." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2821,7 +2862,8 @@ "signInFailed": "Prijava nije uspela. Pokušajte ponovo.", "networkError": "Mrežna greška. Pokušajte ponovo.", "accessDeniedByUser": "Korisnik je odbio pristup", - "codeExpired": "Kod je istekao" + "codeExpired": "Kod je istekao", + "tooManySignInAttempts": "Previše pokušaja prijave. Sačekajte i pokušajte ponovo." }, "models": { "dataCollected": "Prikupljeni podaci", diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index 251d86bedd..988992391d 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -24,7 +24,10 @@ "required": "obligatorisk", "error": "fel: {{error}}", "back": "Tillbaka", - "somethingWentWrong": "Något gick fel" + "somethingWentWrong": "Något gick fel", + "couldNotOpen": "Kunde inte öppna {{label}}", + "link": "länk", + "takingLonger": "Detta tar längre tid än väntat. Du kan stänga det här och kontrollera igen." }, "language": { "title": "Språk", @@ -576,6 +579,12 @@ "commentPosted": "Kommentar publicerad", "reviewSubmitted": "Granskning skickad", "autoMergeEnabled": "Automatisk sammanslagning aktiverad" + }, + "mutationError": { + "commentNotPosted": "Den här kommentaren kan inte postas. Den markerade raden kan ha ändrats, eller så kan PR:en ha uppdaterats.", + "reviewNotSubmitted": "Den här granskningen kan inte skickas som den är. PR:en kan ha ändrats, eller så kan du inte granska din egen pull request.", + "couldNotPostComment": "Kunde inte posta kommentaren.", + "couldNotSubmitReview": "Kunde inte skicka granskningen. Kontrollera anslutningen och försök igen." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Filen är tom", "classificationTooLarge": "Filer måste vara 20 MB eller mindre", "classificationUnreadable": "Kunde inte läsa den här filen", - "announceUploaded": "Bifogad fil uppladdad" + "announceUploaded": "Bifogad fil uppladdad", + "cantUpload": "Den här filen kan inte laddas upp.", + "networkError": "Nätverksfel", + "uploadFailed": "Uppladdningen misslyckades", + "failedToUploadFile": "Det gick inte att ladda upp filen: {{reason}}", + "nothingToPaste": "Ingenting att klistra in" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Glitter", "strongArm": "Stark arm", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Den här instansen kan inte ta emot filer." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Inget beslut", "noResult": "Inget resultat" }, - "eyebrow": "Kodgranskare" + "eyebrow": "Kodgranskare", + "updateFailed": "Det gick inte att uppdatera granskaren", + "configSaveFailed": "Det gick inte att spara granskningskonfigurationen" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Befintliga åtgärder köade", "analysisComplete": "Analysen klar", "syncComplete": "Synkningen klar" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Säkerhetstjänsten är inte konfigurerad. Att skicka igen kan inte lyckas förrän detta är åtgärdat.", + "syncMayNotHaveCompleted": "En synkronisering kanske inte har slutförts. Försök igen för att stämma av, eller kassera.", + "syncInProgress": "En säkerhetssynkronisering pågår redan. Försök igen.", + "dismissalInProgress": "Den här avskrivningen pågår redan. Försök igen.", + "couldNotReadPendingSyncs": "Kunde inte läsa väntande synkroniseringar. Försök igen." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Den här enheten kan inte transkribera offline. Din inspelning skickas till {{provider}} för att omvandlas till text. Kilo lagrar inte ljudet.", "allow": "Tillåt", "start": "Starta röstinmatning", - "stop": "Stoppa röstinmatning" + "stop": "Stoppa röstinmatning", + "restricted": "Röstinmatning är begränsad på den här enheten.", + "micRequired": "Mikrofonåtkomst krävs för röstinmatning.", + "micOff": "Mikrofonåtkomst är avstängd. Aktivera den i Inställningar för att använda röstinmatning.", + "micOffTitle": "Mikrofonåtkomst är avstängd", + "noSpeech": "Inget tal upptäcktes. Tryck på mikrofonen för att försöka igen.", + "needsConnection": "Röstinmatning kräver en anslutning just nu. Försök igen.", + "busy": "Röstinmatningen är upptagen. Försök igen.", + "stopped": "Röstinmatningen stoppades. Tryck på mikrofonen för att försöka igen.", + "unavailableDevice": "Röstinmatning är inte tillgänglig på den här enheten.", + "unavailableLanguage": "Röstinmatning är inte tillgänglig för den här enhetens språk." }, "share": { "title": "Dela till Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Detta Kilo Pass hanteras på webben.", "legalDisclosure": "Kilo Pass är en automatiskt förnybar månadsprenumeration. Betalning dras från ditt Apple-ID vid köpsbekräftelse. Prenumerationen förnyas automatiskt varje månad till det pris som visas om den inte avbryts minst 24 timmar före slutet av den aktuella perioden. Hantera eller avbryt när som helst i dina App Store-kontoinställningar.", "legalPrivacyPolicy": "Integritetspolicy", - "legalTermsOfUse": "Användarvillkor (EULA)" + "legalTermsOfUse": "Användarvillkor (EULA)", + "purchaseNotLinked": "Det här App Store-köpet är inte kopplat till ditt Kilo-konto. Se till att du är inloggad på det Apple-ID som gjorde köpet och försök sedan igen.", + "purchaseDifferentAccount": "Det här App Store-köpet är inte kopplat till ditt Kilo-konto. Logga in på det Apple-konto som användes för köpet och försök sedan igen.", + "restoreFailed": "Det gick inte att återställa köpen. Försök igen.", + "purchaseFailed": "Det gick inte att slutföra köpet.", + "purchaseStartFailed": "Det gick inte att starta App Store-köpet." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Öppen", "statusPaid": "Betald", "statusVoid": "Ogiltig", - "title": "Fakturor" + "title": "Fakturor", + "downloadFailed": "Det gick inte att ladda ner fakturan. Kontrollera anslutningen och försök igen.", + "sharingUnavailable": "Delning är inte tillgänglig på den här enheten." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Inloggningen misslyckades. Försök igen.", "networkError": "Nätverksfel. Försök igen.", "accessDeniedByUser": "Åtkomst nekad av användaren", - "codeExpired": "Koden har upphört att gälla" + "codeExpired": "Koden har upphört att gälla", + "tooManySignInAttempts": "För många inloggningsförsök. Vänta ett tag och försök igen." }, "models": { "dataCollected": "Data samlas in", diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index e999158d98..0b4ecf1fb8 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -24,7 +24,10 @@ "required": "inahitajika", "error": "hitilafu: {{error}}", "back": "Rudi", - "somethingWentWrong": "Jambo fulani lilitokea" + "somethingWentWrong": "Jambo fulani lilitokea", + "couldNotOpen": "Imeshindwa kufungua {{label}}", + "link": "kiungo", + "takingLonger": "Hii inachukua muda mrefu kuliko ilivyotarajiwa. Unaweza kuifunga na kuangalia tena." }, "language": { "title": "Lugha", @@ -576,6 +579,12 @@ "commentPosted": "Maoni yamewasilishwa", "reviewSubmitted": "Ukaguzi umewasilishwa", "autoMergeEnabled": "Muunganisho wa kiotomatiki umewashwa" + }, + "mutationError": { + "commentNotPosted": "Maoni haya hayawezi kuchapishwa. Mstari uliochaguliwa huenda umebadilika, au PR huenda imesasishwa.", + "reviewNotSubmitted": "Ukaguzi huu hauwezi kuwasilishwa kama ulivyo. PR huenda imebadilika, au huwezi kukagua pull request yako mwenyewe.", + "couldNotPostComment": "Imeshindwa kuchapisha maoni.", + "couldNotSubmitReview": "Imeshindwa kuwasilisha ukaguzi. Angalia muunganisho wako na ujaribu tena." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Faili ni tupu", "classificationTooLarge": "Faili lazima ziwe 20 MB au chini", "classificationUnreadable": "Imeshindwa kusoma faili hili", - "announceUploaded": "Kiambatisho kimepakiwa" + "announceUploaded": "Kiambatisho kimepakiwa", + "cantUpload": "Faili hili haliwezi kupakiwa.", + "networkError": "Hitilafu ya mtandao", + "uploadFailed": "Kupakia kumeshindwa", + "failedToUploadFile": "Imeshindwa kupakia faili: {{reason}}", + "nothingToPaste": "Hakuna cha kubandika" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Vimeta", "strongArm": "Mkono wenye nguvu", "talisman": "Talisman" - } + }, + "remoteSpawnFilesNotSupported": "Tukio hili haliwezi kupokea faili." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Hakuna uamuzi", "noResult": "Hakuna matokeo" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Imeshindwa kusasisha mkaguzi", + "configSaveFailed": "Imeshindwa kuhifadhi usanidi wa ukaguzi" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Urekebishaji uliopo umepangwa", "analysisComplete": "Uchambuzi umekamilika", "syncComplete": "Usawazishaji umekamilika" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Huduma ya usalama haijasanidiwa. Kuwasilisha tena hakutafaulu hadi hili lirekebishwe.", + "syncMayNotHaveCompleted": "Usawazishaji huenda haujakamilika. Jaribu tena kuusuluhisha, au uitupilie mbali.", + "syncInProgress": "Usawazishaji wa usalama tayari unaendelea. Tafadhali jaribu tena.", + "dismissalInProgress": "Kufuta huku tayari kunaendelea. Tafadhali jaribu tena.", + "couldNotReadPendingSyncs": "Imeshindwa kusoma usawazishaji unaosubiri. Jaribu tena." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Kifaa hiki hakiwezi kuandika hotuba nje ya mtandao. Rekodi yako inatumwa kwa {{provider}} ili ibadilishwe kuwa maandishi. Kilo haihifadhi sauti.", "allow": "Ruhusu", "start": "Anzisha ingizo la sauti", - "stop": "Acha ingizo la sauti" + "stop": "Acha ingizo la sauti", + "restricted": "Ingizo la sauti limezuiwa kwenye kifaa hiki.", + "micRequired": "Ufikiaji wa kipaza sauti unahitajika kwa ingizo la sauti.", + "micOff": "Ufikiaji wa kipaza sauti umezimwa. Uwashe katika Mipangilio ili utumie ingizo la sauti.", + "micOffTitle": "Ufikiaji wa kipaza sauti umezimwa", + "noSpeech": "Hakuna maneno yaliyogunduliwa. Gusa kipaza sauti kujaribu tena.", + "needsConnection": "Ingizo la sauti linahitaji muunganisho sasa hivi. Jaribu tena.", + "busy": "Ingizo la sauti linashughulika. Jaribu tena.", + "stopped": "Ingizo la sauti limesimama. Gusa kipaza sauti kujaribu tena.", + "unavailableDevice": "Ingizo la sauti halipatikani kwenye kifaa hiki.", + "unavailableLanguage": "Ingizo la sauti halipatikani kwa lugha hii ya kifaa." }, "share": { "title": "Shiriki kwa Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass hii inasimamiwa kwenye wavuti.", "legalDisclosure": "Kilo Pass ni usajili wa kila mwezi unaofanywa upya kiotomatiki. Malipo yanakatwa kwenye Apple ID yako unapothibitisha ununuzi. Usajili unafanywa upya kiotomatiki kila mwezi kwa bei inayoonyeshwa isipokuwa umeghairi angalau saa 24 kabla ya mwisho wa kipindi cha sasa. Simamia au ghairi wakati wowote katika mipangilio ya akaunti yako ya App Store.", "legalPrivacyPolicy": "Sera ya Faragha", - "legalTermsOfUse": "Masharti ya Matumizi (EULA)" + "legalTermsOfUse": "Masharti ya Matumizi (EULA)", + "purchaseNotLinked": "Ununuzi huu wa App Store haujaunganishwa na akaunti yako ya Kilo. Hakikisha umeingia na Apple ID iliyofanya ununuzi, kisha ujaribu tena.", + "purchaseDifferentAccount": "Ununuzi huu wa App Store haujaunganishwa na akaunti yako ya Kilo. Ingia na Akaunti ya Apple iliyotumika kwa ununuzi, kisha ujaribu tena.", + "restoreFailed": "Imeshindwa kurejesha ununuzi. Jaribu tena.", + "purchaseFailed": "Imeshindwa kukamilisha ununuzi.", + "purchaseStartFailed": "Imeshindwa kuanza ununuzi wa App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Funguliwa", "statusPaid": "Imelipwa", "statusVoid": "Batilika", - "title": "Ankara" + "title": "Ankara", + "downloadFailed": "Imeshindwa kupakua ankara. Angalia muunganisho wako na ujaribu tena.", + "sharingUnavailable": "Kushiriki hakupatikani kwenye kifaa hiki." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Kuingia kumeshindwa. Tafadhali jaribu tena.", "networkError": "Hitilafu ya mtandao. Tafadhali jaribu tena.", "accessDeniedByUser": "Ufikiaji umekataliwa na mtumiaji", - "codeExpired": "Msimbo umeisha muda" + "codeExpired": "Msimbo umeisha muda", + "tooManySignInAttempts": "Jaribio nyingi za kuingia. Tafadhali subiri kisha ujaribu tena." }, "models": { "dataCollected": "Data iliyokusanywa", diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index d0343eb93f..277b51718e 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -24,7 +24,10 @@ "required": "தேவை", "error": "பிழை: {{error}}", "back": "பின்", - "somethingWentWrong": "ஏதோ தவறு நடந்தது" + "somethingWentWrong": "ஏதோ தவறு நடந்தது", + "couldNotOpen": "{{label}} திறக்க முடியவில்லை", + "link": "இணைப்பு", + "takingLonger": "இது எதிர்பார்த்ததை விட அதிக நேரம் எடுக்கிறது. நீங்கள் இதை மூடிவிட்டு மீண்டும் சரிபார்க்கலாம்." }, "language": { "title": "மொழி", @@ -576,6 +579,12 @@ "commentPosted": "கருத்து வெளியிடப்பட்டது", "reviewSubmitted": "மதிப்பாய்வு சமர்ப்பிக்கப்பட்டது", "autoMergeEnabled": "தானியங்கி-இணைப்பு இயக்கப்பட்டது" + }, + "mutationError": { + "commentNotPosted": "இந்த கருத்தை இட முடியாது. தேர்ந்தெடுக்கப்பட்ட வரி மாறியிருக்கலாம், அல்லது PR புதுப்பிக்கப்பட்டிருக்கலாம்.", + "reviewNotSubmitted": "இந்த மதிப்பாய்வை அப்படியே சமர்ப்பிக்க முடியாது. PR மாறியிருக்கலாம், அல்லது உங்கள் சொந்த pull request ஐ மதிப்பாய்வு செய்ய முடியாமல் இருக்கலாம்.", + "couldNotPostComment": "கருத்தை இட முடியவில்லை.", + "couldNotSubmitReview": "மதிப்பாய்வை சமர்ப்பிக்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "கோப்பு காலியாக உள்ளது", "classificationTooLarge": "கோப்புகள் 20 MB அல்லது அதற்கும் சிறியதாக இருக்க வேண்டும்", "classificationUnreadable": "இந்த கோப்பை படிக்க முடியவில்லை", - "announceUploaded": "இணைப்பு பதிவேற்றப்பட்டது" + "announceUploaded": "இணைப்பு பதிவேற்றப்பட்டது", + "cantUpload": "இந்த கோப்பை பதிவேற்ற முடியாது.", + "networkError": "நெட்வொர்க் பிழை", + "uploadFailed": "பதிவேற்றம் தோல்வியடைந்தது", + "failedToUploadFile": "கோப்பை பதிவேற்ற முடியவில்லை: {{reason}}", + "nothingToPaste": "ஒட்டுவதற்கு எதுவும் இல்லை" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "பொறிகள்", "strongArm": "வலுவான கை", "talisman": "தாயத்து" - } + }, + "remoteSpawnFilesNotSupported": "இந்த நிகழ்வு கோப்புகளைப் பெற முடியாது." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "முடிவு இல்லை", "noResult": "முடிவு இல்லை" }, - "eyebrow": "குறியீடு மதிப்பாய்வாளர்" + "eyebrow": "குறியீடு மதிப்பாய்வாளர்", + "updateFailed": "மதிப்பாய்வாளரை புதுப்பிக்க முடியவில்லை", + "configSaveFailed": "மதிப்பாய்வு உள்ளமைவை சேமிக்க முடியவில்லை" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ஏற்கனவே உள்ள சரிசெய்தல்கள் வரிசையில் உள்ளன", "analysisComplete": "பகுப்பாய்வு முடிந்தது", "syncComplete": "ஒத்திசைவு முடிந்தது" + }, + "mutations": { + "serviceNotConfiguredResubmit": "பாதுகாப்பு சேவை உள்ளமைக்கப்படவில்லை. இது சரிசெய்யப்படும் வரை மீண்டும் சமர்ப்பிப்பது வெற்றியடையாது.", + "syncMayNotHaveCompleted": "ஒத்திசைவு முழுமையடையாமல் இருக்கலாம். அதை சரிசெய்ய மீண்டும் முயற்சிக்கவும், அல்லது நிராகரிக்கவும்.", + "syncInProgress": "பாதுகாப்பு ஒத்திசைவு ஏற்கனவே நடைபெற்று வருகிறது. மீண்டும் முயற்சிக்கவும்.", + "dismissalInProgress": "இந்த நிராகரிப்பு ஏற்கனவே நடைபெற்று வருகிறது. மீண்டும் முயற்சிக்கவும்.", + "couldNotReadPendingSyncs": "நிலுவையில் உள்ள ஒத்திசைவுகளை படிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "இந்த சாதனத்தால் ஆஃப்லைனில் டிரான்ஸ்கிரைப் செய்ய முடியாது. உங்கள் பதிவு உரையாக மாற்ற {{provider}}க்கு அனுப்பப்படுகிறது. Kilo ஆடியோவை சேமிக்காது.", "allow": "அனுமதி", "start": "குரல் உள்ளீட்டைத் தொடங்கு", - "stop": "குரல் உள்ளீட்டை நிறுத்து" + "stop": "குரல் உள்ளீட்டை நிறுத்து", + "restricted": "இந்த சாதனத்தில் குரல் உள்ளீடு கட்டுப்படுத்தப்பட்டுள்ளது.", + "micRequired": "குரல் உள்ளீட்டிற்கு மைக்ரோஃபோன் அணுகல் தேவை.", + "micOff": "மைக்ரோஃபோன் அணுகல் முடக்கப்பட்டுள்ளது. குரல் உள்ளீட்டைப் பயன்படுத்த அமைப்புகளில் இயக்கவும்.", + "micOffTitle": "மைக்ரோஃபோன் அணுகல் முடக்கப்பட்டுள்ளது", + "noSpeech": "பேச்சு கண்டறியப்படவில்லை. மீண்டும் முயற்சிக்க மைக்ரோஃபோனைத் தட்டவும்.", + "needsConnection": "குரல் உள்ளீட்டிற்கு இப்போது இணைப்பு தேவை. மீண்டும் முயற்சிக்கவும்.", + "busy": "குரல் உள்ளீடு பரபரப்பாக உள்ளது. மீண்டும் முயற்சிக்கவும்.", + "stopped": "குரல் உள்ளீடு நிறுத்தப்பட்டது. மீண்டும் முயற்சிக்க மைக்ரோஃபோனைத் தட்டவும்.", + "unavailableDevice": "இந்த சாதனத்தில் குரல் உள்ளீடு கிடைக்கவில்லை.", + "unavailableLanguage": "இந்த சாதன மொழிக்கு குரல் உள்ளீடு கிடைக்கவில்லை." }, "share": { "title": "Kiloவுக்கு பகிர்", @@ -2549,7 +2583,12 @@ "webManagementDescription": "இந்த Kilo Pass வலைத்தளத்தில் நிர்வகிக்கப்படுகிறது.", "legalDisclosure": "Kilo Pass தானாகப் புதுப்பிக்கப்படும் மாதாந்திர சந்தா. வாங்குதல் உறுதிசெய்யப்பட்டதும் உங்கள் Apple ID-க்கு கட்டணம் வசூலிக்கப்படும். நடப்புக் காலகட்டம் முடிவதற்கு 24 மணிநேரத்திற்கு முன்னர் ரத்து செய்யப்படாவிட்டால், சந்தாக்கள் ஒவ்வொரு மாதமும் காட்டப்படும் விலையில் தானாகவே புதுப்பிக்கப்படும். உங்கள் App Store கணக்கு அமைப்புகளில் எப்போது வேண்டுமானாலும் நிர்வகிக்கவும் அல்லது ரத்து செய்யவும்.", "legalPrivacyPolicy": "தனியுரிமைக் கொள்கை", - "legalTermsOfUse": "பயன்பாட்டு விதிமுறைகள் (EULA)" + "legalTermsOfUse": "பயன்பாட்டு விதிமுறைகள் (EULA)", + "purchaseNotLinked": "இந்த App Store வாங்குதல் உங்கள் Kilo கணக்குடன் இணைக்கப்படவில்லை. வாங்குதலைச் செய்த Apple ID இல் உள்நுழைந்துள்ளீர்கள் என்பதை உறுதிசெய்து, பின்னர் மீண்டும் முயற்சிக்கவும்.", + "purchaseDifferentAccount": "இந்த App Store வாங்குதல் உங்கள் Kilo கணக்குடன் இணைக்கப்படவில்லை. வாங்குதலுக்குப் பயன்படுத்திய Apple கணக்கில் உள்நுழைந்து, பின்னர் மீண்டும் முயற்சிக்கவும்.", + "restoreFailed": "வாங்குதல்களை மீட்டமைக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.", + "purchaseFailed": "வாங்குதலை முடிக்க முடியவில்லை.", + "purchaseStartFailed": "App Store வாங்குதலைத் தொடங்க முடியவில்லை." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "திற", "statusPaid": "செலுத்தப்பட்டது", "statusVoid": "செல்லாது", - "title": "விலைப்பட்டியல்கள்" + "title": "விலைப்பட்டியல்கள்", + "downloadFailed": "விலைப்பட்டியலை பதிவிறக்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்.", + "sharingUnavailable": "இந்த சாதனத்தில் பகிர்வு கிடைக்கவில்லை." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "உள்நுழைவு தோல்வியடைந்தது. மீண்டும் முயற்சிக்கவும்.", "networkError": "நெட்வொர்க் பிழை. மீண்டும் முயற்சிக்கவும்.", "accessDeniedByUser": "பயனரால் அணுகல் மறுக்கப்பட்டது", - "codeExpired": "குறியீடு காலாவதியானது" + "codeExpired": "குறியீடு காலாவதியானது", + "tooManySignInAttempts": "பல உள்நுழைவு முயற்சிகள். தயவுசெய்து காத்திருந்து மீண்டும் முயற்சிக்கவும்." }, "models": { "dataCollected": "சேகரிக்கப்பட்ட தரவு", diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index f7ba4475a7..464c09a7db 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -24,7 +24,10 @@ "required": "అవసరం", "error": "లోపం: {{error}}", "back": "వెనుకకు", - "somethingWentWrong": "ఏదో తప్పు జరిగింది" + "somethingWentWrong": "ఏదో తప్పు జరిగింది", + "couldNotOpen": "{{label}} తెరవలేకపోయాము", + "link": "లింక్", + "takingLonger": "ఇది ఊహించిన దానికంటే ఎక్కువ సమయం తీసుకుంటోంది. మీరు దీన్ని మూసివేసి మళ్లీ తనిఖీ చేయవచ్చు." }, "language": { "title": "భాష", @@ -576,6 +579,12 @@ "commentPosted": "వ్యాఖ్య పోస్ట్ చేయబడింది", "reviewSubmitted": "సమీక్ష సమర్పించబడింది", "autoMergeEnabled": "ఆటో-మెర్జ్ ప్రారంభించబడింది" + }, + "mutationError": { + "commentNotPosted": "ఈ వ్యాఖ్యను పోస్ట్ చేయలేము. ఎంచుకున్న లైన్ మారి ఉండవచ్చు, లేదా PR నవీకరించబడి ఉండవచ్చు.", + "reviewNotSubmitted": "ఈ సమీక్షను ఇలాగే సమర్పించలేము. PR మారి ఉండవచ్చు, లేదా మీ స్వంత పుల్ రిక్వెస్ట్‌ను సమీక్షించలేకపోవచ్చు.", + "couldNotPostComment": "వ్యాఖ్యను పోస్ట్ చేయలేకపోయాము.", + "couldNotSubmitReview": "సమీక్షను సమర్పించలేకపోయాము. మీ కనెక్షన్ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ఫైల్ ఖాళీగా ఉంది", "classificationTooLarge": "ఫైల్లు 20 MB లేదా అంతకంటే చిన్నవిగా ఉండాలి", "classificationUnreadable": "ఈ ఫైల్ను చదవలేకపోయింది", - "announceUploaded": "అటాచ్మెంట్ అప్లోడ్ చేయబడింది" + "announceUploaded": "అటాచ్మెంట్ అప్లోడ్ చేయబడింది", + "cantUpload": "ఈ ఫైల్ను అప్‌లోడ్ చేయలేము.", + "networkError": "నెట్‌వర్క్ లోపం", + "uploadFailed": "అప్‌లోడ్ విఫలమైంది", + "failedToUploadFile": "ఫైల్ అప్‌లోడ్ చేయడంలో విఫలమైంది: {{reason}}", + "nothingToPaste": "పేస్ట్ చేయడానికి ఏమీ లేదు" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "మెరుపులు", "strongArm": "బలమైన చేయి", "talisman": "టాలిస్మాన్" - } + }, + "remoteSpawnFilesNotSupported": "ఈ ఇన్స్టాన్స్ ఫైల్లను స్వీకరించదు." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "నిర్ణయం లేదు", "noResult": "ఫలితం లేదు" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "రివ్యూయర్‌ను నవీకరించడంలో విఫలమైంది", + "configSaveFailed": "సమీక్ష కాన్ఫిగ్‌ను సేవ్ చేయడంలో విఫలమైంది" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "ఇప్పటికే ఉన్న పరిష్కారాలు క్యూలో ఉన్నాయి", "analysisComplete": "విశ్లేషణ పూర్తయింది", "syncComplete": "సింక్ పూర్తయింది" + }, + "mutations": { + "serviceNotConfiguredResubmit": "సెక్యూరిటీ సేవ కాన్ఫిగర్ చేయబడలేదు. ఇది పరిష్కరించబడే వరకు మళ్లీ సమర్పించడం విజయవంతం కాదు.", + "syncMayNotHaveCompleted": "సింక్ పూర్తి కాకపోవచ్చు. దాన్ని సర్దుబాటు చేయడానికి మళ్లీ ప్రయత్నించండి, లేదా విస్మరించండి.", + "syncInProgress": "సెక్యూరిటీ సింక్ ఇప్పటికే జరుగుతోంది. దయచేసి మళ్లీ ప్రయత్నించండి.", + "dismissalInProgress": "ఈ తోసివేత ఇప్పటికే జరుగుతోంది. దయచేసి మళ్లీ ప్రయత్నించండి.", + "couldNotReadPendingSyncs": "పెండింగ్ సింక్‌లను చదవలేకపోయాము. మళ్లీ ప్రయత్నించండి." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "ఈ పరికరం ఆఫ్లైన్లో ట్రాన్స్క్రైబ్ చేయలేదు. మీ రికార్డింగ్ను వచనంగా మార్చడానికి {{provider}}కి పంపబడుతుంది. Kilo ఆడియోను నిల్వ చేయదు.", "allow": "అనుమతించండి", "start": "వాయిస్ ఇన్పుట్ను ప్రారంభించండి", - "stop": "వాయిస్ ఇన్పుట్ను ఆపండి" + "stop": "వాయిస్ ఇన్పుట్ను ఆపండి", + "restricted": "ఈ పరికరంలో వాయిస్ ఇన్పుట్ పరిమితం చేయబడింది.", + "micRequired": "వాయిస్ ఇన్పుట్ కోసం మైక్రోఫోన్ యాక్సెస్ అవసరం.", + "micOff": "మైక్రోఫోన్ యాక్సెస్ ఆఫ్లో ఉంది. వాయిస్ ఇన్పుట్ ఉపయోగించడానికి దీన్ని సెట్టింగ్స్లో ఆన్ చేయండి.", + "micOffTitle": "మైక్రోఫోన్ యాక్సెస్ ఆఫ్లో ఉంది", + "noSpeech": "మాట గుర్తించబడలేదు. మళ్లీ ప్రయత్నించడానికి మైక్రోఫోన్ను తాప్ చేయండి.", + "needsConnection": "వాయిస్ ఇన్పుట్కు ప్రస్తుతం కనెక్షన్ అవసరం. మళ్లీ ప్రయత్నించండి.", + "busy": "వాయిస్ ఇన్పుట్ బిజీగా ఉంది. మళ్లీ ప్రయత్నించండి.", + "stopped": "వాయిస్ ఇన్పుట్ ఆగిపోయింది. మళ్లీ ప్రయత్నించడానికి మైక్రోఫోన్ను తాప్ చేయండి.", + "unavailableDevice": "ఈ పరికరంలో వాయిస్ ఇన్పుట్ అందుబాటులో లేదు.", + "unavailableLanguage": "ఈ పరికర భాషకు వాయిస్ ఇన్పుట్ అందుబాటులో లేదు." }, "share": { "title": "Kiloకి భాగస్వామ్యం చేయండి", @@ -2549,7 +2583,12 @@ "webManagementDescription": "ఈ Kilo Pass వెబ్లో నిర్వహించబడుతుంది.", "legalDisclosure": "Kilo Pass అనేది స్వయంచాలకంగా పునరుద్ధరించబడే నెలవారీ చందా. కొనుగోలు నిర్ధారణ సమయంలో చెల్లింపు మీ Apple IDకి వసూలు చేయబడుతుంది. ప్రస్తుత వ్యవధి ముగిసే 24 గంటల కంటే ముందు రద్దు చేయకపోతే చందాలు ప్రదర్శించిన ధరకు ప్రతి నెల స్వయంచాలకంగా పునరుద్ధరించబడతాయి. మీ App Store ఖాతా సెట్టింగులలో ఎప్పుడైనా నిర్వహించండి లేదా రద్దు చేయండి.", "legalPrivacyPolicy": "గోప్యతా విధానం", - "legalTermsOfUse": "వినియోగ నిబంధనలు (EULA)" + "legalTermsOfUse": "వినియోగ నిబంధనలు (EULA)", + "purchaseNotLinked": "ఈ యాప్ స్టోర్ కొనుగోలు మీ Kilo ఖాతాతో లింక్ చేయబడలేదు. కొనుగోలు చేసిన Apple IDతో మీరు సైన్ ఇన్ అయ్యారని నిర్ధారించుకుని, మళ్లీ ప్రయత్నించండి.", + "purchaseDifferentAccount": "ఈ యాప్ స్టోర్ కొనుగోలు మీ Kilo ఖాతాతో లింక్ చేయబడలేదు. కొనుగోలు కోసం ఉపయోగించిన Apple ఖాతాతో సైన్ ఇన్ చేసి, మళ్లీ ప్రయత్నించండి.", + "restoreFailed": "కొనుగోళ్లను పునరుద్ధరించడంలో విఫలమైంది. మళ్లీ ప్రయత్నించండి.", + "purchaseFailed": "కొనుగోలును పూర్తి చేయడంలో విఫలమైంది.", + "purchaseStartFailed": "యాప్ స్టోర్ కొనుగోలును ప్రారంభించడంలో విఫలమైంది." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "ఓపెన్", "statusPaid": "చెల్లించినది", "statusVoid": "రద్దు", - "title": "ఇన్వాయిస్లు" + "title": "ఇన్వాయిస్లు", + "downloadFailed": "ఇన్వాయిస్ డౌన్‌లోడ్ చేయలేకపోయాము. మీ కనెక్షన్ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి.", + "sharingUnavailable": "ఈ పరికరంలో షేరింగ్ అందుబాటులో లేదు." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "సైన్ ఇన్ విఫలమైంది. దయచేసి మళ్ళీ ప్రయత్నించండి.", "networkError": "నెట్వర్క్ లోపం. దయచేసి మళ్ళీ ప్రయత్నించండి.", "accessDeniedByUser": "వినియోగదారు ద్వారా యాక్సెస్ నిరాకరించబడింది", - "codeExpired": "కోడ్ గడువు ముగిసింది" + "codeExpired": "కోడ్ గడువు ముగిసింది", + "tooManySignInAttempts": "చాలా ఎక్కువ సైన్-ఇన్ ప్రయత్నాలు. దయచేసి వేచి ఉండి మళ్లీ ప్రయత్నించండి." }, "models": { "dataCollected": "సేకరించిన డేటా", diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index 7f5bf701dc..f6bd3717a1 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -24,7 +24,10 @@ "required": "จำเป็น", "error": "ข้อผิดพลาด: {{error}}", "back": "กลับ", - "somethingWentWrong": "เกิดข้อผิดพลาดบางอย่าง" + "somethingWentWrong": "เกิดข้อผิดพลาดบางอย่าง", + "couldNotOpen": "ไม่สามารถเปิด {{label}} ได้", + "link": "ลิงก์", + "takingLonger": "ใช้เวลานานกว่าที่คาดไว้ คุณสามารถปิดหน้านี้แล้วตรวจสอบอีกครั้งได้" }, "language": { "title": "ภาษา", @@ -576,6 +579,12 @@ "commentPosted": "โพสต์ความคิดเห็นแล้ว", "reviewSubmitted": "ส่งรีวิวแล้ว", "autoMergeEnabled": "เปิดการรวมอัตโนมัติแล้ว" + }, + "mutationError": { + "commentNotPosted": "ไม่สามารถโพสต์ความคิดเห็นนี้ได้ บรรทัดที่เลือกอาจมีการเปลี่ยนแปลง หรือ PR อาจได้รับการอัปเดตแล้ว", + "reviewNotSubmitted": "ไม่สามารถส่งรีวิวนี้ในรูปแบบปัจจุบันได้ PR อาจมีการเปลี่ยนแปลง หรือคุณไม่สามารถรีวิว pull request ของตัวเองได้", + "couldNotPostComment": "ไม่สามารถโพสต์ความคิดเห็นได้", + "couldNotSubmitReview": "ไม่สามารถส่งรีวิวได้ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "ไฟล์ว่างเปล่า", "classificationTooLarge": "ไฟล์ต้องมีขนาด 20 MB หรือเล็กกว่า", "classificationUnreadable": "ไม่สามารถอ่านไฟล์นี้ได้", - "announceUploaded": "อัปโหลดไฟล์แนบแล้ว" + "announceUploaded": "อัปโหลดไฟล์แนบแล้ว", + "cantUpload": "ไม่สามารถอัปโหลดไฟล์นี้ได้", + "networkError": "ข้อผิดพลาดของเครือข่าย", + "uploadFailed": "อัปโหลดล้มเหลว", + "failedToUploadFile": "อัปโหลดไฟล์ไม่สำเร็จ: {{reason}}", + "nothingToPaste": "ไม่มีอะไรให้วาง" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "ประกาย", "strongArm": "แขนแข็งแรง", "talisman": "เครื่องราง" - } + }, + "remoteSpawnFilesNotSupported": "อินสแตนซ์นี้ไม่สามารถรับไฟล์ได้" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "ไม่มีการตัดสินใจ", "noResult": "ไม่มีผลลัพธ์" }, - "eyebrow": "ผู้ตรวจสอบโค้ด" + "eyebrow": "ผู้ตรวจสอบโค้ด", + "updateFailed": "อัปเดตผู้ตรวจสอบไม่สำเร็จ", + "configSaveFailed": "บันทึกการกำหนดค่ารีวิวไม่สำเร็จ" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "จัดคิวการแก้ไขที่มีอยู่แล้ว", "analysisComplete": "การวิเคราะห์เสร็จสิ้น", "syncComplete": "การซิงค์เสร็จสิ้น" + }, + "mutations": { + "serviceNotConfiguredResubmit": "ยังไม่ได้กำหนดค่าบริการความปลอดภัย การส่งซ้ำจะไม่สำเร็จจนกว่าจะแก้ไขสิ่งนี้", + "syncMayNotHaveCompleted": "การซิงค์อาจยังไม่เสร็จสมบูรณ์ ลองอีกครั้งเพื่อให้ตรงกัน หรือละทิ้ง", + "syncInProgress": "มีการซิงค์ความปลอดภัยอยู่แล้ว โปรดลองอีกครั้ง", + "dismissalInProgress": "การละเว้นนี้กำลังดำเนินการอยู่แล้ว โปรดลองอีกครั้ง", + "couldNotReadPendingSyncs": "ไม่สามารถอ่านการซิงค์ที่รอดำเนินการได้ ลองอีกครั้ง" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "อุปกรณ์นี้ไม่สามารถถอดความแบบออฟไลน์ได้ การบันทึกของคุณจะถูกส่งไปยัง {{provider}} เพื่อแปลงเป็นข้อความ Kilo ไม่จัดเก็บเสียงนี้", "allow": "อนุญาต", "start": "เริ่มการป้อนเสียง", - "stop": "หยุดการป้อนเสียง" + "stop": "หยุดการป้อนเสียง", + "restricted": "การป้อนเสียงถูกจำกัดบนอุปกรณ์นี้", + "micRequired": "การป้อนเสียงต้องมีการเข้าถึงไมโครโฟน", + "micOff": "การเข้าถึงไมโครโฟนถูกปิด เปิดใช้งานในการตั้งค่าเพื่อใช้การป้อนเสียง", + "micOffTitle": "การเข้าถึงไมโครโฟนถูกปิด", + "noSpeech": "ไม่พบเสียงพูด แตะไมโครโฟนเพื่อลองอีกครั้ง", + "needsConnection": "การป้อนเสียงต้องมีการเชื่อมต่อในขณะนี้ ลองอีกครั้ง", + "busy": "การป้อนเสียงไม่ว่าง ลองอีกครั้ง", + "stopped": "การป้อนเสียงหยุดแล้ว แตะไมโครโฟนเพื่อลองอีกครั้ง", + "unavailableDevice": "การป้อนเสียงไม่พร้อมใช้งานบนอุปกรณ์นี้", + "unavailableLanguage": "การป้อนเสียงไม่พร้อมใช้งานสำหรับภาษาของอุปกรณ์นี้" }, "share": { "title": "แชร์ไปยัง Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass นี้ถูกจัดการบนเว็บ", "legalDisclosure": "Kilo Pass เป็นการสมัครสมาชิกรายเดือนที่ต่ออายุอัตโนมัติ ค่าธรรมเนียมจะถูกเรียกเก็บจาก Apple ID ของคุณเมื่อยืนยันการซื้อ การสมัครสมาชิกจะต่ออายุอัตโนมัติทุกเดือนในราคาที่แสดง เว้นแต่จะยกเลิกอย่างน้อย 24 ชั่วโมงก่อนสิ้นสุดรอบปัจจุบัน จัดการหรือยกเลิกได้ทุกเมื่อในการตั้งค่าบัญชี App Store", "legalPrivacyPolicy": "นโยบายความเป็นส่วนตัว", - "legalTermsOfUse": "ข้อกำหนดการใช้งาน (EULA)" + "legalTermsOfUse": "ข้อกำหนดการใช้งาน (EULA)", + "purchaseNotLinked": "การซื้อใน App Store นี้ไม่ได้เชื่อมโยงกับบัญชี Kilo ของคุณ ตรวจสอบว่าคุณลงชื่อเข้าด้วย Apple ID ที่ใช้ซื้อ แล้วลองอีกครั้ง", + "purchaseDifferentAccount": "การซื้อใน App Store นี้ไม่ได้เชื่อมโยงกับบัญชี Kilo ของคุณ ลงชื่อเข้า Apple Account ที่ใช้สำหรับการซื้อ แล้วลองอีกครั้ง", + "restoreFailed": "คืนค่าการซื้อไม่สำเร็จ ลองอีกครั้ง", + "purchaseFailed": "ทำการซื้อไม่สำเร็จ", + "purchaseStartFailed": "เริ่มการซื้อใน App Store ไม่สำเร็จ" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "เปิด", "statusPaid": "ชำระแล้ว", "statusVoid": "เป็นโมฆะ", - "title": "ใบแจ้งหนี้" + "title": "ใบแจ้งหนี้", + "downloadFailed": "ไม่สามารถดาวน์โหลดใบแจ้งหนี้ได้ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง", + "sharingUnavailable": "การแชร์ไม่พร้อมใช้งานบนอุปกรณ์นี้" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "ลงชื่อเข้าไม่สำเร็จ โปรดลองอีกครั้ง", "networkError": "เกิดข้อผิดพลาดของเครือข่าย โปรดลองอีกครั้ง", "accessDeniedByUser": "ผู้ใช้ปฏิเสธการเข้าถึง", - "codeExpired": "รหัสหมดอายุแล้ว" + "codeExpired": "รหัสหมดอายุแล้ว", + "tooManySignInAttempts": "พยายามลงชื่อเข้ามากเกินไป โปรดรอสักครู่แล้วลองอีกครั้ง" }, "models": { "dataCollected": "ข้อมูลที่รวบรวม", diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index 84d9d4a32c..db31130971 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -24,7 +24,10 @@ "notNow": "Şimdi değil", "continue": "Devam et", "back": "Geri", - "somethingWentWrong": "Bir şeyler ters gitti" + "somethingWentWrong": "Bir şeyler ters gitti", + "couldNotOpen": "{{label}} açılamadı", + "link": "bağlantı", + "takingLonger": "Bu beklenenden uzun sürüyor. Bunu kapatıp tekrar kontrol edebilirsin." }, "language": { "title": "Dil", @@ -283,7 +286,12 @@ "classificationEmpty": "Dosya boş", "classificationTooLarge": "Dosyalar 20 MB veya daha küçük olmalı", "classificationUnreadable": "Bu dosya okunamadı", - "announceUploaded": "Ek yüklendi" + "announceUploaded": "Ek yüklendi", + "cantUpload": "Bu dosya yüklenemiyor.", + "networkError": "Ağ hatası", + "uploadFailed": "Yükleme başarısız oldu", + "failedToUploadFile": "Dosya yüklenemedi: {{reason}}", + "nothingToPaste": "Yapıştırılacak bir şey yok" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -741,7 +749,8 @@ "sparkles": "Parıltılar", "strongArm": "Güçlü kol", "talisman": "Tılsım" - } + }, + "remoteSpawnFilesNotSupported": "Bu instance dosya alamıyor." }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "İnceleme belleği", "reviewStyle": "İnceleme stili", "set": "Ayarlı" - } + }, + "updateFailed": "İnceleyici güncellenemedi", + "configSaveFailed": "İnceleme yapılandırması kaydedilemedi" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "Mevcut iyileştirmeler kuyruğa alındı", "analysisComplete": "Analiz tamamlandı", "syncComplete": "Senkronizasyon tamamlandı" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Güvenlik hizmeti yapılandırılmamış. Bu düzeltilene kadar yeniden gönderme başarılı olamaz.", + "syncMayNotHaveCompleted": "Bir eşitleme tamamlanmamış olabilir. Uzlaştırmak için tekrar deneyin ya da atın.", + "syncInProgress": "Bir güvenlik eşitlemesi zaten devam ediyor. Lütfen tekrar deneyin.", + "dismissalInProgress": "Bu yok sayma zaten devam ediyor. Lütfen tekrar deneyin.", + "couldNotReadPendingSyncs": "Bekleyen eşitlemeler okunamadı. Tekrar deneyin." } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "Konuşma çevrimiçi işleniyor", "staysOff": "Çevrimiçi transkripsiyona izin verene kadar konuşma kapalı kalır.", "start": "Sesli girişi başlat", - "stop": "Sesli girişi durdur" + "stop": "Sesli girişi durdur", + "restricted": "Bu cihazda sesli giriş kısıtlıdır.", + "micRequired": "Sesli giriş için mikrofon erişimi gerekir.", + "micOff": "Mikrofon erişimi kapalı. Sesli girişi kullanmak için Ayarlar'dan etkinleştirin.", + "micOffTitle": "Mikrofon erişimi kapalı", + "noSpeech": "Konuşma algılanmadı. Tekrar denemek için mikrofona dokunun.", + "needsConnection": "Sesli giriş şu anda bir bağlantı gerektiriyor. Tekrar deneyin.", + "busy": "Sesli giriş meşgul. Tekrar deneyin.", + "stopped": "Sesli giriş durdu. Tekrar denemek için mikrofona dokunun.", + "unavailableDevice": "Sesli giriş bu cihazda kullanılamıyor.", + "unavailableLanguage": "Sesli giriş bu cihaz dili için kullanılamıyor." }, "share": { "title": "Kilo'ya paylaş", @@ -2118,7 +2146,12 @@ "webManagementDescription": "Bu Kilo Pass web üzerinden yönetiliyor.", "legalDisclosure": "Kilo Pass, otomatik yenilenen aylık bir aboneliktir. Ödeme, satın alma onayında Apple Kimliğinize yansıtılır. Abonelikler, geçerli dönemin bitiminden en az 24 saat önce iptal edilmediği sürece her ay gösterilen fiyattan otomatik yenilenir. App Store hesap ayarlarınızdan istediğiniz zaman yönetin veya iptal edin.", "legalPrivacyPolicy": "Gizlilik Politikası", - "legalTermsOfUse": "Kullanım Koşulları (EULA)" + "legalTermsOfUse": "Kullanım Koşulları (EULA)", + "purchaseNotLinked": "Bu App Store satın alımı Kilo hesabınıza bağlı değil. Satın alımı yapan Apple ID ile oturum açtığınızdan emin olun, sonra tekrar deneyin.", + "purchaseDifferentAccount": "Bu App Store satın alımı Kilo hesabınıza bağlı değil. Satın alımda kullanılan Apple hesabına giriş yapın, sonra tekrar deneyin.", + "restoreFailed": "Satın alımlar geri yüklenemedi. Tekrar deneyin.", + "purchaseFailed": "Satın alma tamamlanamadı.", + "purchaseStartFailed": "App Store satın alımı başlatılamadı." }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "Yorum gönderildi", "reviewSubmitted": "İnceleme gönderildi", "autoMergeEnabled": "Otomatik birleştirme etkinleştirildi" + }, + "mutationError": { + "commentNotPosted": "Bu yorum gönderilemiyor. Seçili satır değişmiş ya da PR güncellenmiş olabilir.", + "reviewNotSubmitted": "Bu inceleme bu şekilde gönderilemiyor. PR değişmiş olabilir ya da kendi pull request'inizi inceleyemezsiniz.", + "couldNotPostComment": "Yorum gönderilemedi.", + "couldNotSubmitReview": "İnceleme gönderilemedi. Bağlantını kontrol et ve tekrar dene." } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "Faturalar", "statusPaid": "Ödendi", "statusOpen": "Açık", - "statusVoid": "Geçersiz" + "statusVoid": "Geçersiz", + "downloadFailed": "Fatura indirilemedi. Bağlantını kontrol et ve tekrar dene.", + "sharingUnavailable": "Paylaşım bu cihazda kullanılamıyor." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Oturum açma başarısız oldu. Lütfen tekrar deneyin.", "networkError": "Ağ hatası. Lütfen tekrar deneyin.", "accessDeniedByUser": "Kullanıcı erişimi reddetti", - "codeExpired": "Kodun süresi doldu" + "codeExpired": "Kodun süresi doldu", + "tooManySignInAttempts": "Çok fazla oturum açma denemesi yapıldı. Lütfen bekleyin ve tekrar deneyin." }, "models": { "dataCollected": "Toplanan veriler", diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 518257bbb4..3eb9caa271 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -24,7 +24,10 @@ "notNow": "Не зараз", "continue": "Продовжити", "back": "Назад", - "somethingWentWrong": "Щось пішло не так" + "somethingWentWrong": "Щось пішло не так", + "couldNotOpen": "Не вдалося відкрити {{label}}", + "link": "посилання", + "takingLonger": "Це триває довше, ніж очікувалося. Ви можете закрити це та перевірити знову." }, "language": { "title": "Мова", @@ -283,7 +286,12 @@ "classificationEmpty": "Файл порожній", "classificationTooLarge": "Файли мають бути не більше 20 MB", "classificationUnreadable": "Не вдалося прочитати цей файл", - "announceUploaded": "Вкладення завантажено" + "announceUploaded": "Вкладення завантажено", + "cantUpload": "Цей файл не можна завантажити.", + "networkError": "Помилка мережі", + "uploadFailed": "Не вдалося завантажити", + "failedToUploadFile": "Не вдалося завантажити файл: {{reason}}", + "nothingToPaste": "Нема чого вставити" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -745,7 +753,8 @@ "sparkles": "Блискітки", "strongArm": "Сильна рука", "talisman": "Талісман" - } + }, + "remoteSpawnFilesNotSupported": "Цей екземпляр не може отримувати файли." }, "codeReviewer": { "focusAreas": { @@ -932,7 +941,9 @@ "reviewMemory": "Пам'ять перевірок", "reviewStyle": "Стиль перевірки", "set": "Встановлено" - } + }, + "updateFailed": "Не вдалося оновити рев'ювера", + "configSaveFailed": "Не вдалося зберегти конфігурацію огляду" }, "securityAgent": { "filter": { @@ -1358,6 +1369,13 @@ "remediationsQueued": "Наявні усунення поставлено в чергу", "analysisComplete": "Аналіз завершено", "syncComplete": "Синхронізацію завершено" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Службу безпеки не налаштовано. Повторне надсилання не буде успішним, доки це не виправлено.", + "syncMayNotHaveCompleted": "Синхронізація могла не завершитися. Повторіть спробу, щоб узгодити її, або відхиліть.", + "syncInProgress": "Синхронізація безпеки вже триває. Спробуйте ще раз.", + "dismissalInProgress": "Це відхилення вже триває. Спробуйте ще раз.", + "couldNotReadPendingSyncs": "Не вдалося прочитати синхронізації, що очікують. Спробуйте ще раз." } }, "agents": { @@ -2062,7 +2080,17 @@ "onlineTitle": "Мовлення обробляється онлайн", "staysOff": "Мовлення залишається вимкненим, доки ви не дозволите онлайн-транскрипцію.", "start": "Почати голосове введення", - "stop": "Зупинити голосове введення" + "stop": "Зупинити голосове введення", + "restricted": "Голосове введення обмежене на цьому пристрої.", + "micRequired": "Для голосового введення потрібен доступ до мікрофона.", + "micOff": "Доступ до мікрофона вимкнено. Увімкніть його в налаштуваннях, щоб використовувати голосове введення.", + "micOffTitle": "Доступ до мікрофона вимкнено", + "noSpeech": "Мовлення не виявлено. Торкніться мікрофона, щоб спробувати ще раз.", + "needsConnection": "Голосовому введенню зараз потрібне з'єднання. Спробуйте ще раз.", + "busy": "Голосове введення зайняте. Спробуйте ще раз.", + "stopped": "Голосове введення зупинено. Торкніться мікрофона, щоб спробувати ще раз.", + "unavailableDevice": "Голосове введення недоступне на цьому пристрої.", + "unavailableLanguage": "Голосове введення недоступне для мови цього пристрою." }, "share": { "title": "Поділитися в Kilo", @@ -2140,7 +2168,12 @@ "webManagementDescription": "Цим Kilo Pass керують у вебверсії.", "legalDisclosure": "Kilo Pass — це автоматично поновлювана щомісячна підписка. Оплата списується з вашого Apple ID під час підтвердження покупки. Підписка автоматично поновлюється щомісяця за вказаною ціною, якщо її не скасувати щонайменше за 24 години до кінця поточного періоду. Керуйте або скасовуйте її будь-коли в налаштуваннях облікового запису App Store.", "legalPrivacyPolicy": "Політика конфіденційності", - "legalTermsOfUse": "Умови використання (EULA)" + "legalTermsOfUse": "Умови використання (EULA)", + "purchaseNotLinked": "Ця покупка в App Store не пов'язана з вашим обліковим записом Kilo. Переконайтеся, що ви ввійшли в Apple ID, з якого було здійснено покупку, а потім спробуйте ще раз.", + "purchaseDifferentAccount": "Ця покупка в App Store не пов'язана з вашим обліковим записом Kilo. Увійдіть в обліковий запис Apple, який використовувався для покупки, а потім спробуйте ще раз.", + "restoreFailed": "Не вдалося відновити покупки. Спробуйте ще раз.", + "purchaseFailed": "Не вдалося завершити покупку.", + "purchaseStartFailed": "Не вдалося розпочати покупку в App Store." }, "consent": { "kilo": "Kilo", @@ -2668,6 +2701,12 @@ "commentPosted": "Коментар опубліковано", "reviewSubmitted": "Перевірку надіслано", "autoMergeEnabled": "Автоматичне злиття увімкнено" + }, + "mutationError": { + "commentNotPosted": "Цей коментар не можна опублікувати. Виділений рядок міг змінитися, або PR міг бути оновлений.", + "reviewNotSubmitted": "Цей огляд неможливо надіслати в такому вигляді. PR міг змінитися, або ви не можете перевіряти власний pull request.", + "couldNotPostComment": "Не вдалося опублікувати коментар.", + "couldNotSubmitReview": "Не вдалося надіслати огляд. Перевірте з'єднання та спробуйте ще раз." } }, "organization": { @@ -2714,7 +2753,9 @@ "title": "Рахунки", "statusPaid": "Сплачено", "statusOpen": "Відкрито", - "statusVoid": "Анульовано" + "statusVoid": "Анульовано", + "downloadFailed": "Не вдалося завантажити рахунок. Перевірте з'єднання та спробуйте ще раз.", + "sharingUnavailable": "Поширення недоступне на цьому пристрої." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2840,7 +2881,8 @@ "signInFailed": "Вхід не вдався. Спробуйте ще раз.", "networkError": "Помилка мережі. Спробуйте ще раз.", "accessDeniedByUser": "Користувач відмовив у доступі", - "codeExpired": "Термін дії коду минув" + "codeExpired": "Термін дії коду минув", + "tooManySignInAttempts": "Забагато спроб входу. Зачекайте та спробуйте ще раз." }, "models": { "dataCollected": "Зібрані дані", diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 10a97b49dc..1e19b424c0 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -24,7 +24,10 @@ "required": "مطلوبہ", "error": "خرابی: {{error}}", "back": "واپس", - "somethingWentWrong": "کچھ غلط ہو گیا" + "somethingWentWrong": "کچھ غلط ہو گیا", + "couldNotOpen": "{{label}} نہیں کھول سکے", + "link": "لنک", + "takingLonger": "اس میں توقع سے زیادہ وقت لگ رہا ہے۔ آپ اسے بند کر کے دوبارہ چیک کر سکتے ہیں۔" }, "language": { "title": "زبان", @@ -576,6 +579,12 @@ "commentPosted": "تبصرہ پوسٹ ہو گیا", "reviewSubmitted": "جائزہ جمع ہو گیا", "autoMergeEnabled": "آٹو-مرج فعال ہو گیا" + }, + "mutationError": { + "commentNotPosted": "یہ تبصرہ پوسٹ نہیں کیا جا سکتا۔ منتخب لائن بدل گئی ہو سکتی ہے، یا PR اپ ڈیٹ ہو گیا ہو سکتا ہے۔", + "reviewNotSubmitted": "یہ جائزہ اسی طرح جمع نہیں کیا جا سکتا۔ PR بدل گیا ہو سکتا ہے، یا آپ اپنی خود کی پل ریکویسٹ کا جائزہ نہیں لے سکتے۔", + "couldNotPostComment": "تبصرہ پوسٹ نہیں ہو سکا۔", + "couldNotSubmitReview": "جائزہ جمع نہیں ہو سکا۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔" } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "فائل خالی ہے", "classificationTooLarge": "فائلیں 20 MB یا اس سے چھوٹی ہونی چاہئیں", "classificationUnreadable": "یہ فائل پڑھی نہیں جا سکی", - "announceUploaded": "منسلکہ اپ لوڈ ہو گیا" + "announceUploaded": "منسلکہ اپ لوڈ ہو گیا", + "cantUpload": "یہ فائل اپ لوڈ نہیں کی جا سکتی۔", + "networkError": "نیٹ ورک کی خرابی", + "uploadFailed": "اپ لوڈ ناکام", + "failedToUploadFile": "فائل اپ لوڈ نہیں ہو سکی: {{reason}}", + "nothingToPaste": "چسپاں کرنے کے لیے کچھ نہیں" }, "attachmentPreview": { "accessibility": "{{filename}}، {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "چمک", "strongArm": "مضبوط بازو", "talisman": "تعویذ" - } + }, + "remoteSpawnFilesNotSupported": "یہ انسٹنس فائلیں وصول نہیں کر سکتی۔" }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "کوئی فیصلہ نہیں", "noResult": "کوئی نتیجہ نہیں" }, - "eyebrow": "کوڈ ریویور" + "eyebrow": "کوڈ ریویور", + "updateFailed": "ریویور اپ ڈیٹ نہیں ہو سکا", + "configSaveFailed": "جائزہ کنفیگریشن محفوظ نہیں ہو سکی" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "موجودہ اصلاحات قطار میں شامل کر دی گئیں", "analysisComplete": "تجزیہ مکمل ہو گیا", "syncComplete": "مطابقت مکمل ہو گئی" + }, + "mutations": { + "serviceNotConfiguredResubmit": "سیکورٹی سروس کنفیگر نہیں ہے۔ جب تک یہ ٹھیک نہیں ہوتا دوبارہ جمع کرنا کامیاب نہیں ہو سکتا۔", + "syncMayNotHaveCompleted": "مطابقت مکمل نہیں ہوئی ہو سکتی۔ اسے ہم آہنگ کرنے کے لیے دوبارہ کوشش کریں، یا خارج کر دیں۔", + "syncInProgress": "ایک سیکورٹی مطابقت پہلے سے جاری ہے۔ براہ کرم دوبارہ کوشش کریں۔", + "dismissalInProgress": "یہ خارج کرنا پہلے سے جاری ہے۔ براہ کرم دوبارہ کوشش کریں۔", + "couldNotReadPendingSyncs": "زیر التوا مطابقت پڑھی نہیں جا سکی۔ دوبارہ کوشش کریں۔" } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "یہ ڈیوائس آف لائن ٹرانسکرائب نہیں کر سکتی۔ آپ کی ریکارڈنگ {{provider}} کو متن میں تبدیل کرنے کے لیے بھیجی جاتی ہے۔ Kilo آڈیو ذخیرہ نہیں کرتا۔", "allow": "اجازت دیں", "start": "وائس انپٹ شروع کریں", - "stop": "وائس انپٹ روکیں" + "stop": "وائس انپٹ روکیں", + "restricted": "اس ڈیوائس پر وائس انپٹ محدود ہے۔", + "micRequired": "وائس انپٹ کے لیے مائیکروفون تک رسائی درکار ہے۔", + "micOff": "مائیکروفون تک رسائی بند ہے۔ وائس انپٹ استعمال کرنے کے لیے اسے ترتیبات میں فعال کریں۔", + "micOffTitle": "مائیکروفون تک رسائی بند ہے", + "noSpeech": "کوئی گفتار نہیں ملی۔ دوبارہ کوشش کرنے کے لیے مائیکروفون پر ٹیپ کریں۔", + "needsConnection": "وائس انپٹ کو ابھی کنکشن درکار ہے۔ دوبارہ کوشش کریں۔", + "busy": "وائس انپٹ مصروف ہے۔ دوبارہ کوشش کریں۔", + "stopped": "وائس انپٹ رک گیا۔ دوبارہ کوشش کرنے کے لیے مائیکروفون پر ٹیپ کریں۔", + "unavailableDevice": "وائس انپٹ اس ڈیوائس پر دستیاب نہیں ہے۔", + "unavailableLanguage": "وائس انپٹ اس ڈیوائس کی زبان کے لیے دستیاب نہیں ہے۔" }, "share": { "title": "Kilo پر شیئر کریں", @@ -2549,7 +2583,12 @@ "webManagementDescription": "یہ Kilo Pass ویب پر منظم کیا جاتا ہے۔", "legalDisclosure": "Kilo Pass خودکار تجدید کے ساتھ ماہانہ سبسکرپشن ہے۔ ادائیگی خریداری کی تصدیق پر آپ کے Apple ID سے لی جاتی ہے۔ سبسکرپشنز ہر ماہ دکھائی گئی قیمت پر خود بخود تجدید ہوتی ہیں جب تک کہ موجودہ مدت ختم ہونے سے کم از کم 24 گھنٹے پہلے منسوخ نہ کی جائیں۔ اپنی App Store اکاؤنٹ کی ترتیبات میں کسی بھی وقت منظم یا منسوخ کریں۔", "legalPrivacyPolicy": "رازداری کی پالیسی", - "legalTermsOfUse": "استعمال کی شرائط (EULA)" + "legalTermsOfUse": "استعمال کی شرائط (EULA)", + "purchaseNotLinked": "یہ App Store خریداری آپ کے Kilo اکاؤنٹ سے منسلک نہیں ہے۔ اس بات کو یقینی بنائیں کہ آپ اس Apple ID سے سائن ان ہیں جس نے خریداری کی تھی، پھر دوبارہ کوشش کریں۔", + "purchaseDifferentAccount": "یہ App Store خریداری آپ کے Kilo اکاؤنٹ سے منسلک نہیں ہے۔ خریداری کے لیے استعمال شدہ Apple اکاؤنٹ میں سائن ان کریں، پھر دوبارہ کوشش کریں۔", + "restoreFailed": "خریداریاں بحال نہیں ہو سکیں۔ دوبارہ کوشش کریں۔", + "purchaseFailed": "خریداری مکمل نہیں ہو سکی۔", + "purchaseStartFailed": "App Store خریداری شروع نہیں ہو سکی۔" }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "کھلا", "statusPaid": "ادا شدہ", "statusVoid": "باطل", - "title": "انوائسز" + "title": "انوائسز", + "downloadFailed": "انوائس ڈاؤن لوڈ نہیں ہو سکی۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔", + "sharingUnavailable": "اس ڈیوائس پر شیئرنگ دستیاب نہیں ہے۔" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "سائن ان ناکام رہا۔ براہ کرم دوبارہ کوشش کریں۔", "networkError": "نیٹ ورک کی خرابی۔ براہ کرم دوبارہ کوشش کریں۔", "accessDeniedByUser": "صارف نے رسائی مسترد کر دی", - "codeExpired": "کوڈ کی میعاد ختم ہو گئی" + "codeExpired": "کوڈ کی میعاد ختم ہو گئی", + "tooManySignInAttempts": "سائن ان کی بہت زیادہ کوششیں۔ براہ کرم انتظار کریں اور دوبارہ کوشش کریں۔" }, "models": { "dataCollected": "جمع کردہ ڈیٹا", diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index 2e175df954..bf1271fb3f 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -24,7 +24,10 @@ "required": "shart", "error": "xato: {{error}}", "back": "Orqaga", - "somethingWentWrong": "Nimadir noto'g'ri ketdi" + "somethingWentWrong": "Nimadir noto'g'ri ketdi", + "couldNotOpen": "{{label}}ni ochib bo'lmadi", + "link": "havola", + "takingLonger": "Bu kutilganidan ko'proq vaqt olmoqda. Buni yopib, qayta tekshirishingiz mumkin." }, "language": { "title": "Til", @@ -576,6 +579,12 @@ "commentPosted": "Izoh joylashtirildi", "reviewSubmitted": "Sharh yuborildi", "autoMergeEnabled": "Avtomatik birlashtirish yoqildi" + }, + "mutationError": { + "commentNotPosted": "Bu izohni joylashtirib bo'lmaydi. Tanlangan qator o'zgargan yoki PR yangilangan bo'lishi mumkin.", + "reviewNotSubmitted": "Bu sharhni xuddi shunday yuborib bo'lmaydi. PR o'zgargan bo'lishi mumkin yoki siz o'z pull requestingizni ko'rib chiqa olmaysiz.", + "couldNotPostComment": "Izoh joylashtirib bo'lmadi.", + "couldNotSubmitReview": "Sharhni yuborib bo'lmadi. Ulanishingizni tekshiring va qayta urinib ko'ring." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Fayl bo'sh", "classificationTooLarge": "Fayllar 20 MB yoki undan kichik bo'lishi kerak", "classificationUnreadable": "Bu faylni o'qib bo'lmadi", - "announceUploaded": "Biriktirma yuklandi" + "announceUploaded": "Biriktirma yuklandi", + "cantUpload": "Bu faylni yuklab bo'lmaydi.", + "networkError": "Tarmoq xatosi", + "uploadFailed": "Yuklash amalga oshmadi", + "failedToUploadFile": "Faylni yuklab bo'lmadi: {{reason}}", + "nothingToPaste": "Joylashtirish uchun hech narsa yo'q" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Yaltiroqlar", "strongArm": "Kuchli qo'l", "talisman": "Tumor" - } + }, + "remoteSpawnFilesNotSupported": "Bu instansiya fayllarni qabul qila olmaydi." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Qaror yo'q", "noResult": "Natija yo'q" }, - "eyebrow": "Kod ko'rib chiquvchisi" + "eyebrow": "Kod ko'rib chiquvchisi", + "updateFailed": "Sharhlovchini yangilab bo'lmadi", + "configSaveFailed": "Sharh konfiguratsiyasini saqlab bo'lmadi" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Mavjud tuzatishlar navbatga qo'yildi", "analysisComplete": "Tahlil yakunlandi", "syncComplete": "Sinxronlash yakunlandi" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Xavfsizlik xizmati sozlanmagan. Bu tuzatilmaguncha qayta yuborish muvaffaqiyatli bo'lolmaydi.", + "syncMayNotHaveCompleted": "Sinxronlash yakunlanmagan bo'lishi mumkin. Uni moslashtirish uchun qayta urinib ko'ring yoki bekor qiling.", + "syncInProgress": "Xavfsizlik sinxronlashuvi allaqachon davom etmoqda. Iltimos, qayta urinib ko'ring.", + "dismissalInProgress": "Bu rad etish allaqachon davom etmoqda. Iltimos, qayta urinib ko'ring.", + "couldNotReadPendingSyncs": "Kutilayotgan sinxronlashuvlarni o'qib bo'lmadi. Qayta urinib ko'ring." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Bu qurilma oflayn transkripsiya qila olmaydi. Yozuvingiz uni matnga aylantirish uchun {{provider}} ga yuboriladi. Kilo audioni saqlamaydi.", "allow": "Ruxsat berish", "start": "Ovozli kiritishni boshlash", - "stop": "Ovozli kiritishni to‘xtatish" + "stop": "Ovozli kiritishni to‘xtatish", + "restricted": "Bu qurilmada ovozli kiritish cheklangan.", + "micRequired": "Ovozli kiritish uchun mikrofonga kirish talab qilinadi.", + "micOff": "Mikrofonga kirish o'chirilgan. Ovozli kiritishdan foydalanish uchun uni Sozlamalarda yoqing.", + "micOffTitle": "Mikrofonga kirish o'chirilgan", + "noSpeech": "Nutq aniqlanmadi. Qayta urinish uchun mikrofonni bosing.", + "needsConnection": "Ovozli kiritish hozirda ulanishni talab qiladi. Qayta urinib ko'ring.", + "busy": "Ovozli kiritish band. Qayta urinib ko'ring.", + "stopped": "Ovozli kiritish to'xtatildi. Qayta urinish uchun mikrofonni bosing.", + "unavailableDevice": "Ovozli kiritish bu qurilmada mavjud emas.", + "unavailableLanguage": "Ovozli kiritish bu qurilma tili uchun mavjud emas." }, "share": { "title": "Kiloga ulashish", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Bu Kilo Pass veb-saytda boshqariladi.", "legalDisclosure": "Kilo Pass avtomatik yangilanadigan oylik obuna hisoblanadi. To‘lov xaridni tasdiqlashda Apple ID hisobingizdan undiriladi. Obunalar har oy ko‘rsatilgan narxda avtomatik yangilanadi, agar joriy davr tugashidan kamida 24 soat oldin bekor qilinmasa. Istiagan paytda App Store hisob sozlamalaringizda boshqaring yoki bekor qiling.", "legalPrivacyPolicy": "Maxfiylik siyosati", - "legalTermsOfUse": "Foydalanish shartlari (EULA)" + "legalTermsOfUse": "Foydalanish shartlari (EULA)", + "purchaseNotLinked": "Bu App Store xaridi Kilo hisobingizga bog'lanmagan. Xaridni amalga oshirgan Apple ID bilan tizimga kirganingizga ishonch hosil qiling va qayta urinib ko'ring.", + "purchaseDifferentAccount": "Bu App Store xaridi Kilo hisobingizga bog'lanmagan. Xarid uchun ishlatilgan Apple hisobiga kiring va qayta urinib ko'ring.", + "restoreFailed": "Xaridlarni tiklab bo'lmadi. Qayta urinib ko'ring.", + "purchaseFailed": "Xaridni yakunlab bo'lmadi.", + "purchaseStartFailed": "App Store xaridini boshlab bo'lmadi." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Ochiq", "statusPaid": "To'langan", "statusVoid": "Bekor qilingan", - "title": "Fakturalar" + "title": "Fakturalar", + "downloadFailed": "Hisob-fakturani yuklab bo'lmadi. Ulanishingizni tekshiring va qayta urinib ko'ring.", + "sharingUnavailable": "Bu qurilmada ulashish mavjud emas." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Kirish amalga oshmadi. Iltimos, qayta urinib ko'ring.", "networkError": "Tarmoq xatosi. Iltimos, qayta urinib ko'ring.", "accessDeniedByUser": "Foydalanuvchi tomonidan kirish rad etildi", - "codeExpired": "Kodning muddati tugadi" + "codeExpired": "Kodning muddati tugadi", + "tooManySignInAttempts": "Kirish urinishlari juda ko'p. Iltimos, kuting va qayta urinib ko'ring." }, "models": { "dataCollected": "Yig‘ilgan ma’lumotlar", diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index 5c108cb170..71cd3d09f0 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -24,7 +24,10 @@ "notNow": "Để sau", "continue": "Tiếp tục", "back": "Quay lại", - "somethingWentWrong": "Đã xảy ra lỗi" + "somethingWentWrong": "Đã xảy ra lỗi", + "couldNotOpen": "Không thể mở {{label}}", + "link": "liên kết", + "takingLonger": "Việc này lâu hơn dự kiến. Bạn có thể đóng lại và kiểm tra lại." }, "language": { "title": "Ngôn ngữ", @@ -283,7 +286,12 @@ "classificationEmpty": "Tệp trống", "classificationTooLarge": "Tệp phải từ 20 MB trở xuống", "classificationUnreadable": "Không thể đọc tệp này", - "announceUploaded": "Đã tải tệp đính kèm lên" + "announceUploaded": "Đã tải tệp đính kèm lên", + "cantUpload": "Không thể tải tệp này lên.", + "networkError": "Lỗi mạng", + "uploadFailed": "Tải lên thất bại", + "failedToUploadFile": "Không thể tải tệp lên: {{reason}}", + "nothingToPaste": "Không có gì để dán" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -741,7 +749,8 @@ "sparkles": "Lấp lánh", "strongArm": "Cánh tay mạnh mẽ", "talisman": "Bùa hộ mệnh" - } + }, + "remoteSpawnFilesNotSupported": "Phiên bản này không thể nhận tệp." }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "Bộ nhớ đánh giá", "reviewStyle": "Phong cách xem xét", "set": "Đặt" - } + }, + "updateFailed": "Không thể cập nhật người xem xét", + "configSaveFailed": "Không thể lưu cấu hình đánh giá" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "Các bản khắc phục hiện có đã được xếp hàng", "analysisComplete": "Đã hoàn tất phân tích", "syncComplete": "Đã hoàn tất đồng bộ" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Dịch vụ bảo mật chưa được cấu hình. Việc gửi lại không thể thành công cho đến khi sự cố này được khắc phục.", + "syncMayNotHaveCompleted": "Việc đồng bộ có thể chưa hoàn tất. Thử lại để đối soát hoặc hủy bỏ.", + "syncInProgress": "Đã có đồng bộ bảo mật đang diễn ra. Vui lòng thử lại.", + "dismissalInProgress": "Việc bỏ qua này đang được xử lý. Vui lòng thử lại.", + "couldNotReadPendingSyncs": "Không thể đọc các lần đồng bộ đang chờ. Thử lại." } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "Giọng nói được xử lý trực tuyến", "staysOff": "Giọng nói vẫn tắt cho đến khi bạn cho phép chuyển giọng nói thành văn bản trực tuyến.", "start": "Bắt đầu nhập giọng nói", - "stop": "Dừng nhập giọng nói" + "stop": "Dừng nhập giọng nói", + "restricted": "Tính năng nhập giọng nói bị hạn chế trên thiết bị này.", + "micRequired": "Cần quyền truy cập micro để nhập giọng nói.", + "micOff": "Quyền truy cập micro đang tắt. Bật trong Cài đặt để sử dụng tính năng nhập giọng nói.", + "micOffTitle": "Quyền truy cập micro đang tắt", + "noSpeech": "Không phát hiện giọng nói. Chạm vào micro để thử lại.", + "needsConnection": "Nhập giọng nói cần có kết nối ngay lúc này. Thử lại.", + "busy": "Nhập giọng nói đang bận. Thử lại.", + "stopped": "Đã dừng nhập giọng nói. Chạm vào micro để thử lại.", + "unavailableDevice": "Không thể nhập giọng nói trên thiết bị này.", + "unavailableLanguage": "Không thể nhập giọng nói bằng ngôn ngữ của thiết bị này." }, "share": { "title": "Chia sẻ đến Kilo", @@ -2118,7 +2146,12 @@ "webManagementDescription": "Kilo Pass này được quản lý trên web.", "legalDisclosure": "Kilo Pass là gói đăng ký hàng tháng tự gia hạn. Khoản thanh toán được tính vào Apple ID của bạn khi xác nhận mua. Gói đăng ký tự động gia hạn mỗi tháng theo giá đã hiển thị trừ khi bạn hủy ít nhất 24 giờ trước khi kết thúc kỳ hiện tại. Quản lý hoặc hủy bất kỳ lúc nào trong cài đặt tài khoản App Store.", "legalPrivacyPolicy": "Chính sách quyền riêng tư", - "legalTermsOfUse": "Điều khoản sử dụng (EULA)" + "legalTermsOfUse": "Điều khoản sử dụng (EULA)", + "purchaseNotLinked": "Giao dịch mua App Store này chưa được liên kết với tài khoản Kilo của bạn. Hãy đảm bảo bạn đã đăng nhập bằng Apple ID đã thực hiện giao dịch mua, sau đó thử lại.", + "purchaseDifferentAccount": "Giao dịch mua App Store này chưa được liên kết với tài khoản Kilo của bạn. Hãy đăng nhập bằng Tài khoản Apple đã dùng cho giao dịch mua, sau đó thử lại.", + "restoreFailed": "Không thể khôi phục giao dịch mua. Thử lại.", + "purchaseFailed": "Không thể hoàn tất giao dịch mua.", + "purchaseStartFailed": "Không thể bắt đầu giao dịch mua trên App Store." }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "Đã đăng bình luận", "reviewSubmitted": "Đã gửi đánh giá", "autoMergeEnabled": "Đã bật tự động hợp nhất" + }, + "mutationError": { + "commentNotPosted": "Không thể đăng bình luận này. Dòng đã chọn có thể đã thay đổi hoặc PR có thể đã được cập nhật.", + "reviewNotSubmitted": "Không thể gửi đánh giá này như hiện tại. PR có thể đã thay đổi hoặc bạn không thể đánh giá yêu cầu hợp nhất của chính mình.", + "couldNotPostComment": "Không thể đăng bình luận.", + "couldNotSubmitReview": "Không thể gửi đánh giá. Kiểm tra kết nối và thử lại." } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "Hóa đơn", "statusPaid": "Đã thanh toán", "statusOpen": "Đang mở", - "statusVoid": "Vô hiệu" + "statusVoid": "Vô hiệu", + "downloadFailed": "Không thể tải hóa đơn. Kiểm tra kết nối và thử lại.", + "sharingUnavailable": "Không thể chia sẻ trên thiết bị này." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Đăng nhập thất bại. Vui lòng thử lại.", "networkError": "Lỗi mạng. Vui lòng thử lại.", "accessDeniedByUser": "Người dùng từ chối truy cập", - "codeExpired": "Mã đã hết hạn" + "codeExpired": "Mã đã hết hạn", + "tooManySignInAttempts": "Quá nhiều lần đăng nhập. Vui lòng đợi và thử lại." }, "models": { "dataCollected": "Dữ liệu đã thu thập", diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index cbb8059391..91ebb85dda 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -24,7 +24,10 @@ "required": "nbeere", "error": "aṣiṣe: {{error}}", "back": "Padà", - "somethingWentWrong": "Nkankan ko ṣiṣẹ" + "somethingWentWrong": "Nkankan ko ṣiṣẹ", + "couldNotOpen": "Ko le ṣii {{label}}", + "link": "ọna asopọ", + "takingLonger": "Èyí ń gbà ákókò tí ó gùn ju tí a retí lọ. O lè pa á àti tún ṣàyẹ̀wò." }, "language": { "title": "Èdè", @@ -576,6 +579,12 @@ "commentPosted": "Ti fi asọye silẹ", "reviewSubmitted": "Ti fi atunyẹwo silẹ", "autoMergeEnabled": "Ti mu auto-merge ṣiṣẹ" + }, + "mutationError": { + "commentNotPosted": "A kò lè fi àsọyé yìí sílẹ̀. Ìlà tí a yàn lè ti yí padà, tàbí PR lè ti ní ìmúdọ̀tun.", + "reviewNotSubmitted": "A kò lè fi àtúnyẹ̀wò yìí sílẹ̀ bí ó ti rí. PR lè ti yí padà, tàbí o kò lè ṣàtúnyẹ̀wò ìbéèrè fìfà tirẹ.", + "couldNotPostComment": "Kò lè fi àsọyé sílẹ̀.", + "couldNotSubmitReview": "Kò lè fi àtúnyẹ̀wò sílẹ̀. Ṣàyẹ̀wò àsopọ̀ rẹ kí o gbìyànjú lẹ́ẹ̀kan sí i." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Faili ṣofo", "classificationTooLarge": "Awọn faili gbọdọ jẹ 20 MB tabi kere si", "classificationUnreadable": "Ko le ka faili yii", - "announceUploaded": "Ti gbe asomọ si oke" + "announceUploaded": "Ti gbe asomọ si oke", + "cantUpload": "A kò lè gbé fáìlì yìí sókè.", + "networkError": "Àṣìṣe nẹ́tíwọ́ọ̀kì", + "uploadFailed": "Gbigbé sókè kùnà", + "failedToUploadFile": "Kùnà láti gbé fáìlì sókè: {{reason}}", + "nothingToPaste": "Kò sí ohun tó wà láti lẹ́ pẹ́" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Àwọn ẹ̀gbọ̀n", "strongArm": "Apá líle", "talisman": "Tálísímán" - } + }, + "remoteSpawnFilesNotSupported": "Àpẹrẹ yìí kò lè gba àwọn fáìlì." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Kò sí ìpinnu", "noResult": "Kò sí abájáde" }, - "eyebrow": "Code Reviewer" + "eyebrow": "Code Reviewer", + "updateFailed": "Kùnà láti ṣe ìmúdọ̀tun alàyẹ̀wò", + "configSaveFailed": "Kùnà láti fipamọ́ ètò àtúnyẹ̀wò" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "A ti fi awọn ìtùn ti o wa sinu iṣẹ́", "analysisComplete": "Àgbéyẹ̀wò ti pari", "syncComplete": "Àmúṣọ̀kan ti pari" + }, + "mutations": { + "serviceNotConfiguredResubmit": "A kò tòlẹ́tò iṣẹ́ ààbò. Tún-ìfisílẹ̀ kò lè yọrí rere títí a fi ṣàtúnṣe èyí.", + "syncMayNotHaveCompleted": "Àmúṣọ̀kan lè má ti parí. Tún gbìyànjú láti ṣàtúnṣe rẹ̀, tàbí jù ú sílẹ̀.", + "syncInProgress": "Àmúṣọ̀kan ààbò ti ń lọ lọ́wọ́. Jọ̀wọ́ gbìyànjú lẹ́ẹ̀kan sí i.", + "dismissalInProgress": "Fífò kúrò yìí ti ń lọ lọ́wọ́. Jọ̀wọ́ gbìyànjú lẹ́ẹ̀kan sí i.", + "couldNotReadPendingSyncs": "Kò lè ka àwọn àmúṣọ̀kan tí ń dúró. Gbìyànjú lẹ́ẹ̀kan sí i." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Ẹrọ yii ko le kọwe laini asopọ. A fi igbasilẹ rẹ ranṣẹ si {{provider}} lati yi pada si ọrọ. Kilo ko tọju ohun naa.", "allow": "Gba", "start": "Bẹ̀rẹ̀ ìfẹ̀sí ohùn", - "stop": "Dá ìfẹ̀sí ohùn dúró" + "stop": "Dá ìfẹ̀sí ohùn dúró", + "restricted": "Ìfẹ̀sí ohùn ti ni ìhàmọ́ lórí ẹ̀rọ yìí.", + "micRequired": "Ìrayè sí míkírọ́fóònù ni a nílò fún ìfẹ̀sí ohùn.", + "micOff": "Ìrayè sí míkírọ́fóònù ti pà. Mú u ṣiṣẹ́ nínú Eto láti lo ìfẹ̀sí ohùn.", + "micOffTitle": "Ìrayè sí míkírọ́fóònù ti pà", + "noSpeech": "A kò rí ọ̀rọ̀. Tẹ míkírọ́fóònù láti gbìyànjú lẹ́ẹ̀kan sí i.", + "needsConnection": "Ìfẹ̀sí ohùn nílò ìsopọ̀ lọ́wọ́ báyìí. Gbìyànjú lẹ́ẹ̀kan sí i.", + "busy": "Ìfẹ̀sí ohùn dí. Gbìyànjú lẹ́ẹ̀kan sí i.", + "stopped": "Ìfẹ̀sí ohùn dúró. Tẹ míkírọ́fóònù láti gbìyànjú lẹ́ẹ̀kan sí i.", + "unavailableDevice": "Ìfẹ̀sí ohùn kò sí lórí ẹ̀rọ yìí.", + "unavailableLanguage": "Ìfẹ̀sí ohùn kò sí fún èdè ẹ̀rọ yìí." }, "share": { "title": "Pin si Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Kilo Pass yìí ni a ń ṣàkóso lórí wẹ́bù.", "legalDisclosure": "Kilo Pass jẹ́ ìfọwọ́sílẹ̀ oṣooṣu tó máa ń tún ara rẹ̀ ṣe ní àìdáni. Wọ́n máa ń gba owó sí Apple ID rẹ ní ìfìdírí ìrà. Àwọn ìfọwọ́sílẹ̀ máa ń tún ara wọn ṣe lọ́ṣọ̀ọ̀so ní iye tí a fi hàn, àyàfi bí a kò bá fagilé rẹ̀ ni ó kéré tán wákàtí 24 kí ìgbà tí ó ń lọ kí ó parí. Ṣàkóso tàbí fagilé rẹ̀ nígbàkúgbà nínú àwọn ètò àkọọ́lẹ̀ App Store rẹ.", "legalPrivacyPolicy": "Ìlànà Àṣírí", - "legalTermsOfUse": "Àwọn Ìlànà Ìlò (EULA)" + "legalTermsOfUse": "Àwọn Ìlànà Ìlò (EULA)", + "purchaseNotLinked": "Rírà App Store yìí kò ní ìsopọ̀ sí àkọọ́lẹ̀ Kilo rẹ. Ríi dájú pé o wọlé sí Apple ID tó ṣe rírà náà, kí o sì gbìyànjú lẹ́ẹ̀kan sí i.", + "purchaseDifferentAccount": "Rírà App Store yìí kò ní ìsopọ̀ sí àkọọ́lẹ̀ Kilo rẹ. Wọlé sí Apple Account tí a lò fún rírà náà, kí o sì gbìyànjú lẹ́ẹ̀kan sí i.", + "restoreFailed": "Kùnà láti mú àwọn rírà padà. Gbìyànjú lẹ́ẹ̀kan sí i.", + "purchaseFailed": "Kùnà láti parí rírà.", + "purchaseStartFailed": "Kùnà láti bẹ̀rẹ̀ rírà App Store." }, "consent": { "kilo": "Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Ṣii", "statusPaid": "Ti san", "statusVoid": "Ofo", - "title": "Awọn invoice" + "title": "Awọn invoice", + "downloadFailed": "Kò lè ṣìgbàsílẹ̀ invoice. Ṣàyẹ̀wò àsopọ̀ rẹ kí o gbìyànjú lẹ́ẹ̀kan sí i.", + "sharingUnavailable": "Pípín kò sí lórí ẹ̀rọ yìí." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Ìwọlé kùnà. Jọ̀wọ́ tún gbìyànjú.", "networkError": "Àṣìṣe nẹtiwọki. Jọ̀wọ́ tún gbìyànjú.", "accessDeniedByUser": "Olumulo kọ iraye si", - "codeExpired": "Koodu ti pari" + "codeExpired": "Koodu ti pari", + "tooManySignInAttempts": "Ìgbìyànjú ìwọlé ti pọ̀ jù. Jọ̀wọ́ dúró, kí o sì gbìyànjú lẹ́ẹ̀kan sí i." }, "models": { "dataCollected": "Ìsọfúnni tí a kó", diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index 807354663b..b474da603d 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -24,7 +24,10 @@ "notNow": "暂不", "continue": "继续", "back": "返回", - "somethingWentWrong": "出了点问题" + "somethingWentWrong": "出了点问题", + "couldNotOpen": "无法打开 {{label}}", + "link": "链接", + "takingLonger": "这比预期耗时更长。您可以关闭此页面,稍后再查看。" }, "language": { "title": "语言", @@ -283,7 +286,12 @@ "classificationEmpty": "文件为空", "classificationTooLarge": "文件必须为 20 MB 或更小", "classificationUnreadable": "无法读取此文件", - "announceUploaded": "附件已上传" + "announceUploaded": "附件已上传", + "cantUpload": "无法上传此文件。", + "networkError": "网络错误", + "uploadFailed": "上传失败", + "failedToUploadFile": "上传文件失败:{{reason}}", + "nothingToPaste": "没有可粘贴的内容" }, "attachmentPreview": { "accessibility": "{{filename}},{{status}}", @@ -741,7 +749,8 @@ "sparkles": "星光", "strongArm": "强壮手臂", "talisman": "护身符" - } + }, + "remoteSpawnFilesNotSupported": "此实例无法接收文件。" }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "审查记忆", "reviewStyle": "审查风格", "set": "设置" - } + }, + "updateFailed": "更新审查器失败", + "configSaveFailed": "保存审查配置失败" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "现有修复已加入队列", "analysisComplete": "分析完成", "syncComplete": "同步完成" + }, + "mutations": { + "serviceNotConfiguredResubmit": "安全服务未配置。在修复此问题之前,重新提交无法成功。", + "syncMayNotHaveCompleted": "同步可能尚未完成。请重试以进行对账,或将其丢弃。", + "syncInProgress": "已有安全同步正在进行。请重试。", + "dismissalInProgress": "此忽略操作正在进行中。请重试。", + "couldNotReadPendingSyncs": "无法读取待处理的同步。请重试。" } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "语音将在线处理", "staysOff": "在您允许在线转录之前,语音将保持关闭。", "start": "开始语音输入", - "stop": "停止语音输入" + "stop": "停止语音输入", + "restricted": "此设备上的语音输入受到限制。", + "micRequired": "语音输入需要麦克风访问权限。", + "micOff": "麦克风访问权限已关闭。请在设置中开启,以使用语音输入。", + "micOffTitle": "麦克风访问权限已关闭", + "noSpeech": "未检测到语音。点击麦克风重试。", + "needsConnection": "语音输入当前需要网络连接。请重试。", + "busy": "语音输入正忙。请重试。", + "stopped": "语音输入已停止。点击麦克风重试。", + "unavailableDevice": "此设备不支持语音输入。", + "unavailableLanguage": "语音输入不支持此设备的语言。" }, "share": { "title": "分享到 Kilo", @@ -2118,7 +2146,12 @@ "webManagementDescription": "此 Kilo Pass 在网页上管理。", "legalDisclosure": "Kilo Pass 是可自动续订的月度订阅。付款在购买确认时从您的 Apple ID 扣费。订阅每月按所示价格自动续订,除非在当前周期结束前至少 24 小时取消。可随时在您的 App Store 账户设置中管理或取消。", "legalPrivacyPolicy": "隐私政策", - "legalTermsOfUse": "使用条款(EULA)" + "legalTermsOfUse": "使用条款(EULA)", + "purchaseNotLinked": "此 App Store 购买尚未关联到您的 Kilo 账户。请确认您已登录用于购买此项目的 Apple ID,然后重试。", + "purchaseDifferentAccount": "此 App Store 购买尚未关联到您的 Kilo 账户。请登录购买时使用的 Apple 账户,然后重试。", + "restoreFailed": "恢复购买失败。请重试。", + "purchaseFailed": "完成购买失败。", + "purchaseStartFailed": "启动 App Store 购买失败。" }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "评论已发布", "reviewSubmitted": "审查已提交", "autoMergeEnabled": "已开启自动合并" + }, + "mutationError": { + "commentNotPosted": "无法发布此评论。所选行可能已更改,或 PR 可能已更新。", + "reviewNotSubmitted": "此审查无法按现状提交。PR 可能已更改,或您无法审查自己的拉取请求。", + "couldNotPostComment": "无法发布评论。", + "couldNotSubmitReview": "无法提交审查。请检查网络连接后重试。" } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "发票", "statusPaid": "已支付", "statusOpen": "待支付", - "statusVoid": "已作废" + "statusVoid": "已作废", + "downloadFailed": "无法下载发票。请检查网络连接后重试。", + "sharingUnavailable": "此设备不支持分享。" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "登录失败。请重试。", "networkError": "网络错误。请重试。", "accessDeniedByUser": "用户拒绝了访问", - "codeExpired": "代码已过期" + "codeExpired": "代码已过期", + "tooManySignInAttempts": "登录尝试次数过多。请稍等片刻再试。" }, "models": { "dataCollected": "收集的数据", diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index 1f2aa8386a..f501674440 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -24,7 +24,10 @@ "notNow": "稍後再說", "continue": "繼續", "back": "返回", - "somethingWentWrong": "發生錯誤" + "somethingWentWrong": "發生錯誤", + "couldNotOpen": "無法開啟 {{label}}", + "link": "連結", + "takingLonger": "此操作耗時比預期更久。您可以關閉此畫面,稍後再檢查。" }, "language": { "title": "語言", @@ -283,7 +286,12 @@ "classificationEmpty": "檔案為空", "classificationTooLarge": "檔案必須為 20 MB 或更小", "classificationUnreadable": "無法讀取此檔案", - "announceUploaded": "附件已上傳" + "announceUploaded": "附件已上傳", + "cantUpload": "此檔案無法上傳。", + "networkError": "網路錯誤", + "uploadFailed": "上傳失敗", + "failedToUploadFile": "上傳檔案失敗:{{reason}}", + "nothingToPaste": "沒有可貼上的內容" }, "attachmentPreview": { "accessibility": "{{filename}},{{status}}", @@ -741,7 +749,8 @@ "sparkles": "星光", "strongArm": "強壯手臂", "talisman": "護身符" - } + }, + "remoteSpawnFilesNotSupported": "此執行個體無法接收檔案。" }, "codeReviewer": { "focusAreas": { @@ -928,7 +937,9 @@ "reviewMemory": "審查記憶", "reviewStyle": "審查風格", "set": "已設定" - } + }, + "updateFailed": "更新審查員失敗", + "configSaveFailed": "儲存審查設定失敗" }, "securityAgent": { "filter": { @@ -1350,6 +1361,13 @@ "remediationsQueued": "現有修復已排入佇列", "analysisComplete": "分析完成", "syncComplete": "同步完成" + }, + "mutations": { + "serviceNotConfiguredResubmit": "安全性服務尚未設定。在此修正之前,重新提交無法成功。", + "syncMayNotHaveCompleted": "同步可能尚未完成。重試以協調,或捨棄。", + "syncInProgress": "安全性同步已在進行中。請再試一次。", + "dismissalInProgress": "此忽略動作已在進行中。請再試一次。", + "couldNotReadPendingSyncs": "無法讀取待處理的同步。請再試一次。" } }, "agents": { @@ -2040,7 +2058,17 @@ "onlineTitle": "語音會在線上處理", "staysOff": "在您允許線上轉錄之前,語音會保持關閉。", "start": "開始語音輸入", - "stop": "停止語音輸入" + "stop": "停止語音輸入", + "restricted": "此裝置上的語音輸入受到限制。", + "micRequired": "語音輸入需要麥克風存取權限。", + "micOff": "麥克風存取已關閉。請在設定中啟用,以使用語音輸入。", + "micOffTitle": "麥克風存取已關閉", + "noSpeech": "未偵測到語音。點按麥克風圖示再試一次。", + "needsConnection": "語音輸入目前需要連線。請再試一次。", + "busy": "語音輸入忙碌中。請再試一次。", + "stopped": "語音輸入已停止。點按麥克風圖示再試一次。", + "unavailableDevice": "此裝置上無法使用語音輸入。", + "unavailableLanguage": "此裝置語言無法使用語音輸入。" }, "share": { "title": "分享到 Kilo", @@ -2118,7 +2146,12 @@ "webManagementDescription": "此 Kilo Pass 是在網頁上管理的。", "legalDisclosure": "Kilo Pass 是自動續訂的每月訂閱。款項會在購買確認時從您的 Apple ID 扣款。除非在目前週期結束前至少 24 小時取消,否則訂閱會以顯示的價格每月自動續訂。您可以隨時在 App Store 帳戶設定中管理或取消。", "legalPrivacyPolicy": "隱私權政策", - "legalTermsOfUse": "使用條款 (EULA)" + "legalTermsOfUse": "使用條款 (EULA)", + "purchaseNotLinked": "此 App Store 購買未連結至您的 Kilo 帳戶。請確認您已登入進行購買的 Apple ID,然後再試一次。", + "purchaseDifferentAccount": "此 App Store 購買未連結至您的 Kilo 帳戶。請登入用於購買的 Apple 帳戶,然後再試一次。", + "restoreFailed": "恢復購買失敗。請再試一次。", + "purchaseFailed": "無法完成購買。", + "purchaseStartFailed": "無法開始 App Store 購買。" }, "consent": { "kilo": "Kilo", @@ -2632,6 +2665,12 @@ "commentPosted": "留言已發布", "reviewSubmitted": "審查已提交", "autoMergeEnabled": "自動合併已啟用" + }, + "mutationError": { + "commentNotPosted": "此留言無法發布。選取的行可能已變更,或 PR 可能已更新。", + "reviewNotSubmitted": "此審查無法原樣提交。PR 可能已變更,或您無法審查自己的拉取請求。", + "couldNotPostComment": "無法發布留言。", + "couldNotSubmitReview": "無法提交審查。請檢查連線後再試一次。" } }, "organization": { @@ -2678,7 +2717,9 @@ "title": "發票", "statusPaid": "已付款", "statusOpen": "未付款", - "statusVoid": "已作廢" + "statusVoid": "已作廢", + "downloadFailed": "無法下載發票。請檢查連線後再試一次。", + "sharingUnavailable": "此裝置上無法使用分享。" }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "登入失敗。請再試一次。", "networkError": "網路錯誤。請再試一次。", "accessDeniedByUser": "使用者拒絕存取", - "codeExpired": "代碼已過期" + "codeExpired": "代碼已過期", + "tooManySignInAttempts": "登入嘗試次數過多。請稍候再試。" }, "models": { "dataCollected": "收集的資料", diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index 2e26572726..e985abc3b7 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -24,7 +24,10 @@ "required": "kuyadingeka", "error": "iphutha: {{error}}", "back": "Emuva", - "somethingWentWrong": "Kukhona okungahambanga kahle" + "somethingWentWrong": "Kukhona okungahambanga kahle", + "couldNotOpen": "Asikwazanga ukuvula {{label}}", + "link": "isixhumanisi", + "takingLonger": "Lokhu kuthatha isikhathi eside kunalokho okulindelekile. Ungakwazi ukuvala bese ubheka futhi." }, "language": { "title": "Ulimi", @@ -576,6 +579,12 @@ "commentPosted": "Amazwana athunyelwe", "reviewSubmitted": "Ukubuyekeza kuthunyelwe", "autoMergeEnabled": "I-auto-merge ivuliwe" + }, + "mutationError": { + "commentNotPosted": "Lamazwana awakwazi ukuthunyelwa. Umugqa okhethiwe kungenzeka ushintshile, noma i-PR kungenzeka ibuyekezwe.", + "reviewNotSubmitted": "Lokhu kubuyekeza akukwazi ukuthunyelwa njengoba kunjalo. I-PR kungenzeka ishintshile, noma awukwazi ukubuyekeza isicelo sakho sokudonsa.", + "couldNotPostComment": "Asikwazanga ukuthumela amazwana.", + "couldNotSubmitReview": "Asikwazanga ukuthumela ukubuyekeza. Hlola ukuxhumana kwakho bese uzama futhi." } }, "notifications": { @@ -714,7 +723,12 @@ "classificationEmpty": "Ifayela alinalutho", "classificationTooLarge": "Amafayela kumele abe ngu-20 MB noma ngaphansi", "classificationUnreadable": "Asikwazanga ukufunda leli fayela", - "announceUploaded": "Okunamathiselwe kulayishiwe" + "announceUploaded": "Okunamathiselwe kulayishiwe", + "cantUpload": "Leli fayela alikwazi ukulayishwa.", + "networkError": "Iphutha lenethiwekhi", + "uploadFailed": "Ukulayisha kwehlulekile", + "failedToUploadFile": "Kwehlulekile ukulayisha ifayela: {{reason}}", + "nothingToPaste": "Akukho okunamathiselwa" }, "attachmentPreview": { "accessibility": "{{filename}}, {{status}}", @@ -1172,7 +1186,8 @@ "sparkles": "Izintaba zezinkanyezi", "strongArm": "Ingalo enamandla", "talisman": "Ithalimane" - } + }, + "remoteSpawnFilesNotSupported": "Lesi simo asikwazi ukwamukela amafayela." }, "codeReviewer": { "focusAreas": { @@ -1359,7 +1374,9 @@ "noDecision": "Asikho isinqumo", "noResult": "Awukho umphumela" }, - "eyebrow": "I-Code Reviewer" + "eyebrow": "I-Code Reviewer", + "updateFailed": "Kwehlulekile ukubuyekeza umbuyekezi", + "configSaveFailed": "Kwehlulekile ukulondoloza ukucushwa kokubuyekeza" }, "securityAgent": { "filter": { @@ -1781,6 +1798,13 @@ "remediationsQueued": "Ukulungisa okukhona kumisiwe", "analysisComplete": "Ukuhlaziywa kuphelele", "syncComplete": "Ukuvumelanisa kuphelele" + }, + "mutations": { + "serviceNotConfiguredResubmit": "Isevisi yokuphepha ayilungisiwe. Ukuphinda kuthunyelwe akukwazi ukuphumelela kuze kube lokhu kulungisiwe.", + "syncMayNotHaveCompleted": "Ukuvumelanisa kungenzeka kungaqedwanga. Zama futhi ukuze kuvumelaniswe, noma ulahle.", + "syncInProgress": "Ukuvumelanisa kokuphepha sekuqhubeka. Sicela uzame futhi.", + "dismissalInProgress": "Ukulahla sekuqhubeka. Sicela uzame futhi.", + "couldNotReadPendingSyncs": "Asikwazanga ukufunda ukuvumelanisa okulindile. Zama futhi." } }, "agents": { @@ -2471,7 +2495,17 @@ "onlineMessage": "Le divayisi ayikwazi ukubhala izwi ngaphandle kwe-inthanethi. Ukurekhoda kwakho kuthunyelwa ku-{{provider}} ukuze kuphendulwe kube umbhalo. I-Kilo ayigcini i-audio.", "allow": "Vumela", "start": "Qala ukufaka ngezwi", - "stop": "Misa ukufaka ngezwi" + "stop": "Misa ukufaka ngezwi", + "restricted": "Ukufaka ngezwi kuvinjelwe kule divayisi.", + "micRequired": "Ukufinyelela kwemakrofoni kuyadingeka ukuze ufake ngezwi.", + "micOff": "Ukufinyelela kwemakrofoni kuvaliwe. Kuvule ku-Izilungiselelo ukuze usebenzise ukufaka ngezwi.", + "micOffTitle": "Ukufinyelela kwemakrofoni kuvaliwe", + "noSpeech": "Akukho nkulumo etholiwe. Thepha imakrofoni ukuze uzame futhi.", + "needsConnection": "Ukufaka ngezwi kudinga ukuxhumana manje. Zama futhi.", + "busy": "Ukufaka ngezwi kumatasatasa. Zama futhi.", + "stopped": "Ukufaka ngezwi kumisiwe. Thepha imakrofoni ukuze uzame futhi.", + "unavailableDevice": "Ukufaka ngezwi akutholakali kule divayisi.", + "unavailableLanguage": "Ukufaka ngezwi akutholakali kulolu limi lwedivayisi." }, "share": { "title": "Yabelana nge-Kilo", @@ -2549,7 +2583,12 @@ "webManagementDescription": "Le Kilo Pass ilawulwa kuwebhu.", "legalDisclosure": "I-Kilo Pass iwukubhalisela kwanyanga ngalinye okuzivuselelayo ngokuzenzakalelayo. Inkokhelo ikhokhiswa ku-Apple ID yakho lapho kuqinisekiswa ukuthenga. Ukubhalisela kuzivuselela ngokuzenzakalelayo nyanga zonke ngentengo ebonisiwe ngaphandle uma kukhanselwe okungenani amahora angu-24 ngaphambi kokuphela kwesikhathi samanje. Lawula noma ukhansela noma nini kuzilungiselelo zekhawunti yakho ye-App Store.", "legalPrivacyPolicy": "Inqubomgomo Yobumfihlo", - "legalTermsOfUse": "Imigomo Yokusetshenziswa (EULA)" + "legalTermsOfUse": "Imigomo Yokusetshenziswa (EULA)", + "purchaseNotLinked": "Lokhu kuthengwa kwe-App Store akuxhunyiwe ku-akhawunti yakho ye-Kilo. Qinisekisa ukuthi ungenile nge-Apple ID eyenza lokhu kuthenga, bese uzama futhi.", + "purchaseDifferentAccount": "Lokhu kuthengwa kwe-App Store akuxhunyiwe ku-akhawunti yakho ye-Kilo. Ngena nge-Apple Account esetshenziselwe ukuthenga, bese uzama futhi.", + "restoreFailed": "Kwehlulekile ukubuyisela okuthengiwe. Zama futhi.", + "purchaseFailed": "Kwehlulekile ukuqeda ukuthenga.", + "purchaseStartFailed": "Kwehlulekile ukuqala ukuthenga kwe-App Store." }, "consent": { "kilo": "I-Kilo", @@ -2682,7 +2721,9 @@ "statusOpen": "Vulekile", "statusPaid": "Ikhokhiwe", "statusVoid": "Ayisebenzi", - "title": "Ama-invoyisi" + "title": "Ama-invoyisi", + "downloadFailed": "Asikwazanga ukulanda i-invoyisi. Hlola ukuxhumana kwakho bese uzama futhi.", + "sharingUnavailable": "Ukwabelana akutholakali kule divayisi." }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2802,7 +2843,8 @@ "signInFailed": "Ukungena kwehlulekile. Sicela uzame futhi.", "networkError": "Iphutha lenethiwekhi. Sicela uzame futhi.", "accessDeniedByUser": "Ukufinyelela kunqatshiwe ngumsebenzisi", - "codeExpired": "Ikhodi iphelelwe yisikhathi" + "codeExpired": "Ikhodi iphelelwe yisikhathi", + "tooManySignInAttempts": "Imizamo eminingi kakhulu yokungena. Sicela ulinde bese uzama futhi." }, "models": { "dataCollected": "Idatha eqoqiwe", diff --git a/apps/mobile/src/i18n/resolve-language.ts b/apps/mobile/src/i18n/resolve-language.ts index 49fb7949e8..fad9a46886 100644 --- a/apps/mobile/src/i18n/resolve-language.ts +++ b/apps/mobile/src/i18n/resolve-language.ts @@ -24,10 +24,9 @@ function chineseScriptFor(tag: string): SupportedLanguage | undefined { } /** - * Resolve the supported language for a device locale list. Mirrors - * `resolveVoiceInputLanguageTag`: for each device tag in preference order, - * map Chinese scripts, then exact match, then same-language fallback. An - * empty list or no match resolves to `en`. + * Resolve the supported language for a device locale list. For each device + * tag in preference order, map Chinese scripts, then exact match, then + * same-language fallback. An empty list or no match resolves to `en`. */ export function resolveLanguageTag( locales: readonly { languageTag?: string }[] diff --git a/apps/mobile/src/lib/agent-attachments/agent-attachment-types.ts b/apps/mobile/src/lib/agent-attachments/agent-attachment-types.ts index 517da4e96a..46d4c33d9e 100644 --- a/apps/mobile/src/lib/agent-attachments/agent-attachment-types.ts +++ b/apps/mobile/src/lib/agent-attachments/agent-attachment-types.ts @@ -7,6 +7,8 @@ * importing from one place. */ +import { i18n } from '@/i18n'; + import { type AgentAttachmentExtension, type AgentAttachmentMime } from './constants'; type AgentAttachmentKind = 'image' | 'document'; @@ -85,29 +87,29 @@ export function classifyUploadFailure(error: unknown) { const dataMessage = (error as { data?: { code?: string; message?: string } } | null)?.data ?.message; if (code === 'BAD_REQUEST' || code === 'FORBIDDEN' || code === 'UNPROCESSABLE_CONTENT') { - return { retryable: false, reason: dataMessage ?? "This file can't be uploaded." }; + return { retryable: false, reason: dataMessage ?? i18n.t('chat.attachment.cantUpload') }; } if (code === 'UNAUTHORIZED' || code === 'NOT_FOUND') { - return { retryable: false, reason: dataMessage ?? "This file can't be uploaded." }; + return { retryable: false, reason: dataMessage ?? i18n.t('chat.attachment.cantUpload') }; } if (error instanceof TypeError) { - return { retryable: true, reason: 'Network error' }; + return { retryable: true, reason: i18n.t('chat.attachment.networkError') }; } if (error instanceof Error) { if (/abort|cancel|expir/i.test(error.message)) { - return { retryable: true, reason: 'Upload failed' }; + return { retryable: true, reason: i18n.t('chat.attachment.uploadFailed') }; } if (/status (408|429|5\d\d)/.test(error.message)) { - return { retryable: true, reason: 'Upload failed' }; + return { retryable: true, reason: i18n.t('chat.attachment.uploadFailed') }; } if (/status \d{3}/.test(error.message)) { // Any other HTTP error (4xx other than the terminal codes above, // 5xx, etc.) is retryable — the plan pins PUT failures as retryable. - return { retryable: true, reason: 'Upload failed' }; + return { retryable: true, reason: i18n.t('chat.attachment.uploadFailed') }; } - return { retryable: true, reason: 'Upload failed' }; + return { retryable: true, reason: i18n.t('chat.attachment.uploadFailed') }; } - return { retryable: true, reason: 'Upload failed' }; + return { retryable: true, reason: i18n.t('chat.attachment.uploadFailed') }; } /** diff --git a/apps/mobile/src/lib/agent-attachments/upload-task.ts b/apps/mobile/src/lib/agent-attachments/upload-task.ts index 8d198d1a94..dd681c9d44 100644 --- a/apps/mobile/src/lib/agent-attachments/upload-task.ts +++ b/apps/mobile/src/lib/agent-attachments/upload-task.ts @@ -1,5 +1,6 @@ import { createUploadTask, FileSystemUploadType, getInfoAsync } from 'expo-file-system/legacy'; +import { i18n } from '@/i18n'; import { trpcClient } from '@/lib/trpc'; import { type AgentAttachmentExtension, @@ -107,5 +108,5 @@ export async function uploadOne(args: { /** Chip/toast copy for terminal (non-retryable) upload failures. */ export function describeTerminalReason(_reason: string): string { - return "This file can't be uploaded."; + return i18n.t('chat.attachment.cantUpload'); } diff --git a/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts b/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts index 2fb138d66a..58e28c2451 100644 --- a/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts +++ b/apps/mobile/src/lib/agent-attachments/use-agent-attachment-upload.ts @@ -285,7 +285,9 @@ export function useAgentAttachmentUpload( // Single announced toast per failed chip (D19). Terminal surfaces // its own chip copy so the toast only needs to echo the same intent. announcingToast.error( - retryable ? `Failed to upload file: ${reason}` : describeTerminalReason(reason) + retryable + ? i18n.t('chat.attachment.failedToUploadFile', { reason }) + : describeTerminalReason(reason) ); return { id: attachment.id, failed: true }; } finally { diff --git a/apps/mobile/src/lib/agent-attachments/use-clipboard-paste.ts b/apps/mobile/src/lib/agent-attachments/use-clipboard-paste.ts index b158ada924..0c62ea319b 100644 --- a/apps/mobile/src/lib/agent-attachments/use-clipboard-paste.ts +++ b/apps/mobile/src/lib/agent-attachments/use-clipboard-paste.ts @@ -1,6 +1,8 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { AppState, type AppStateStatus } from 'react-native'; +import { i18n } from '@/i18n'; + import { type ClipboardImageFile, hasClipboardImage, @@ -9,7 +11,9 @@ import { readClipboardText, } from './clipboard-image'; -export const CLIPBOARD_PASTE_EMPTY_MESSAGE = 'Nothing to paste'; +export function clipboardPasteEmptyMessage(): string { + return i18n.t('chat.attachment.nothingToPaste'); +} type UseClipboardPasteOptions = { /** Gates `visible` only — `paste` always works. Defaults to true. Pass each diff --git a/apps/mobile/src/lib/auth/poll-response.ts b/apps/mobile/src/lib/auth/poll-response.ts index 3300902911..88d63061a6 100644 --- a/apps/mobile/src/lib/auth/poll-response.ts +++ b/apps/mobile/src/lib/auth/poll-response.ts @@ -30,11 +30,11 @@ export function classifyPollResponse(httpStatus: number): PollOutcome { } // Any other 4xx (400, 401, ...) is not something retrying will fix — and // 1xx/3xx are statuses this endpoint never returns, so treat them the same. - return { status: 'error', message: 'Sign-in failed. Please try again.' }; + return { status: 'error', message: i18n.t('authErrors.signInFailed') }; } /** Extract the user-facing message from a device-auth start 429 JSON body. */ export function getDeviceAuth429Message(body: { error?: string } | undefined): string { - const fallback = 'Too many sign-in attempts. Please wait and try again.'; + const fallback = i18n.t('authErrors.tooManySignInAttempts'); return body?.error ?? fallback; } diff --git a/apps/mobile/src/lib/external-link.ts b/apps/mobile/src/lib/external-link.ts index ed8db289d2..367753ebba 100644 --- a/apps/mobile/src/lib/external-link.ts +++ b/apps/mobile/src/lib/external-link.ts @@ -2,6 +2,8 @@ import * as WebBrowser from 'expo-web-browser'; import { Linking } from 'react-native'; import { toast } from 'sonner-native'; +import { i18n } from '@/i18n'; + type ExternalLinkOptions = { label?: string; retryOnError?: boolean; @@ -24,12 +26,12 @@ async function openUrl(url: string) { export async function openExternalUrl( url: string, - { label = 'link', retryOnError = false }: ExternalLinkOptions = {} + { label = i18n.t('common.link'), retryOnError = false }: ExternalLinkOptions = {} ) { try { await openUrl(url); } catch { - const message = `Could not open ${label}`; + const message = i18n.t('common.couldNotOpen', { label }); if (!retryOnError) { toast.error(message); return; @@ -37,7 +39,7 @@ export async function openExternalUrl( toast.error(message, { action: { - label: 'Try again', + label: i18n.t('common.tryAgain'), onClick: () => { void openExternalUrl(url, { label, retryOnError: true }); }, diff --git a/apps/mobile/src/lib/hooks/use-code-reviewer-repo-selection.ts b/apps/mobile/src/lib/hooks/use-code-reviewer-repo-selection.ts index 08d5c614b3..7a480aba8d 100644 --- a/apps/mobile/src/lib/hooks/use-code-reviewer-repo-selection.ts +++ b/apps/mobile/src/lib/hooks/use-code-reviewer-repo-selection.ts @@ -1,6 +1,7 @@ import { useEffect } from 'react'; import { hashKey, useMutation, useQueryClient } from '@tanstack/react-query'; +import { i18n } from '@/i18n'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { type ReviewConfigData, type ReviewerPlatform } from '@/lib/code-reviewer-config'; import { chainSave } from '@/lib/hooks/save-chain'; @@ -125,7 +126,7 @@ function useSaveReviewConfigDelta(scope: string, platform: ReviewerPlatform) { ...gitlabAutoConfigure, }); if (!result.success) { - throw new Error('Failed to save review config'); + throw new Error(i18n.t('codeReviewer.configSaveFailed')); } if (platform === 'gitlab') { queryClient.setQueryData( diff --git a/apps/mobile/src/lib/hooks/use-code-reviewer.ts b/apps/mobile/src/lib/hooks/use-code-reviewer.ts index cff2d3f298..eacce4e733 100644 --- a/apps/mobile/src/lib/hooks/use-code-reviewer.ts +++ b/apps/mobile/src/lib/hooks/use-code-reviewer.ts @@ -6,6 +6,7 @@ import { type UseQueryResult, } from '@tanstack/react-query'; +import { i18n } from '@/i18n'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { type ConfigPatch, @@ -190,7 +191,7 @@ export function useToggleReviewer(scope: string, platform: ReviewerPlatform) { // resolved mutation — throwing routes it to onError (toast) instead // of letting callers' onSuccess fire haptics/navigation as if it worked. if (!result.success) { - throw new Error('Failed to update reviewer'); + throw new Error(i18n.t('codeReviewer.updateFailed')); } return result; }), @@ -337,7 +338,7 @@ export function useSaveReviewConfig(scope: string, platform: ReviewerPlatform) { // resolve — otherwise onSuccess callers close sheets/navigate away as // if the save worked. if (!result.success) { - throw new Error('Failed to save review config'); + throw new Error(i18n.t('codeReviewer.configSaveFailed')); } if (platform === 'gitlab') { queryClient.setQueryData( diff --git a/apps/mobile/src/lib/hooks/use-security-agent-mutations.ts b/apps/mobile/src/lib/hooks/use-security-agent-mutations.ts index 6a8cbf7441..244ec55f3e 100644 --- a/apps/mobile/src/lib/hooks/use-security-agent-mutations.ts +++ b/apps/mobile/src/lib/hooks/use-security-agent-mutations.ts @@ -45,28 +45,24 @@ const SECURITY_LEDGER_PERSISTENCE_FAILED_MESSAGE = export const SECURITY_SERVICE_NOT_CONFIGURED_MESSAGE = 'Security service is not configured'; /** Surface copy for the missing-configuration state (dismiss sheet). */ -export const SECURITY_CONFIGURATION_COPY = - 'Security service is not configured. Resubmitting cannot succeed until this is fixed.'; +export function securityConfigurationCopy(): string { + return i18n.t('securityAgent.mutations.serviceNotConfiguredResubmit'); +} /** * Card copy for a reconcile-first sync row: a crash mid-sync left the outcome * uncertain, so the card offers a same-key reconcile retry instead of a blind * re-POST. */ -export const SECURITY_SYNC_RECONCILE_COPY = - 'A sync may not have completed. Retry to reconcile it, or discard.'; +export function securitySyncReconcileCopy(): string { + return i18n.t('securityAgent.mutations.syncMayNotHaveCompleted'); +} /** True when the error is the server's missing-Worker-configuration rejection. */ export function isSecurityConfigurationError(error: unknown): boolean { return error instanceof Error && error.message === SECURITY_SERVICE_NOT_CONFIGURED_MESSAGE; } -/** In-progress surface copy: reads like the existing retryable toasts. */ -const SECURITY_SYNC_IN_PROGRESS_COPY = 'A security sync is already in progress. Please try again.'; -/** Same shape, right noun for the dismiss sheet. */ -const SECURITY_DISMISS_IN_PROGRESS_COPY = - 'This dismissal is already in progress. Please try again.'; - /** * True when the mutation may be retried under the SAME operation key. Also * used for finding dismissal, which shares the ledger markers. @@ -101,12 +97,12 @@ function mapOperationInProgress(error: unknown, copy: string) { /** Maps the raw in-progress marker onto retryable sync copy; others pass through. */ export function mapSecuritySyncOperationError(error: unknown) { - return mapOperationInProgress(error, SECURITY_SYNC_IN_PROGRESS_COPY); + return mapOperationInProgress(error, i18n.t('securityAgent.mutations.syncInProgress')); } /** Same marker, dismissal copy: the dismiss sheet must not talk about a sync. */ export function mapSecurityDismissOperationError(error: unknown) { - return mapOperationInProgress(error, SECURITY_DISMISS_IN_PROGRESS_COPY); + return mapOperationInProgress(error, i18n.t('securityAgent.mutations.dismissalInProgress')); } /** Intent fingerprint for a manual sync: a changed scope or repo is a new intent. */ @@ -297,7 +293,7 @@ export function useTriggerSecuritySync(scope: string) { // A failed outbox read reads as no stored rows, so refuse instead of // writing a fresh key over a crash row the server may already hold. if (!(await whenLoaded())) { - throw new Error('Could not read pending syncs. Try again.'); + throw new Error(i18n.t('securityAgent.mutations.couldNotReadPendingSyncs')); } // Persist the reconcile-first row BEFORE the POST and resolve the row's // own operationKey: a stored row keeps its key, so the wire never POSTs diff --git a/apps/mobile/src/lib/kilo-pass/subscription-page-copy.test.ts b/apps/mobile/src/lib/kilo-pass/subscription-page-copy.test.ts index e1383dbbbf..6102a95efe 100644 --- a/apps/mobile/src/lib/kilo-pass/subscription-page-copy.test.ts +++ b/apps/mobile/src/lib/kilo-pass/subscription-page-copy.test.ts @@ -1,17 +1,8 @@ import { describe, expect, it } from 'vitest'; -import { - formatKiloPassTierDescription, - KILO_PASS_SUBSCRIPTION_HEADER_DESCRIPTION, -} from './subscription-page-copy'; +import { formatKiloPassTierDescription } from './subscription-page-copy'; describe('Kilo Pass subscription page copy', () => { - it('describes the monthly subscription uses requested for App Store review', () => { - expect(KILO_PASS_SUBSCRIPTION_HEADER_DESCRIPTION).toBe( - 'A monthly subscription that adds credits to your Kilo balance for running AI coding sessions in Kilo App — Cloud Agents, remote sessions, and KiloClaw chats.' - ); - }); - it('describes guaranteed paid credits added monthly for each tier card', () => { expect(formatKiloPassTierDescription(19)).toBe( '$19 paid credits added monthly for Kilo App usage.' diff --git a/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts b/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts index f61fb22441..4504384aae 100644 --- a/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts +++ b/apps/mobile/src/lib/kilo-pass/subscription-page-copy.ts @@ -1,10 +1,6 @@ import { i18n } from '@/i18n'; import { formatUsd } from '@/lib/format'; -export const KILO_PASS_SUBSCRIPTION_HEADER_DESCRIPTION = i18n.t( - 'kiloPass.subscriptionHeaderDescription' -); - export function formatKiloPassTierDescription(webMonthlyPriceUsd: number): string { return i18n.t('kiloPass.tierDescription', { price: formatUsd(webMonthlyPriceUsd, i18n.language, { diff --git a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts index c50397957d..8f25c48f07 100644 --- a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts +++ b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts @@ -5,6 +5,7 @@ import { ErrorCode, type Purchase } from 'expo-iap'; import { toast } from 'sonner-native'; import { z } from 'zod'; +import { i18n } from '@/i18n'; import { type AppStoreKiloPassProduct } from './store-products'; const userCancelledPurchaseErrorSchema = z.object({ @@ -21,14 +22,9 @@ const errorMessageSchema = z.object({ const APP_STORE_ACCOUNT_TOKEN_MISMATCH_MESSAGE = 'App Store purchase account token does not match the signed-in user.'; -const APP_STORE_PURCHASE_NOT_LINKED_TO_ACCOUNT_MESSAGE = - "This App Store purchase isn't linked to your Kilo account. Make sure you're signed in to the Apple ID that made the purchase, then try again."; const APP_STORE_SUBSCRIPTION_OWNED_BY_ANOTHER_ACCOUNT_MESSAGE = 'The Kilo Pass on this Apple Account belongs to a different Kilo account.'; -const APP_STORE_PURCHASE_NOT_LINKED_USER_MESSAGE = - "This App Store purchase isn't linked to your Kilo account. Sign in to the Apple Account used for the purchase, then try again."; const PURCHASE_ERROR_TOAST_DEDUPE_MS = 1500; -const RESTORE_PURCHASES_ERROR_MESSAGE = 'Failed to restore purchases. Try again.'; export type AppStoreKiloPassPurchaseActionsDeps = { // The real implementations (expo-iap's mutateAsync, the tRPC mutation) each @@ -154,8 +150,8 @@ export function getKiloPassPurchaseErrorMessage(error: unknown, fallback: string if (message === APP_STORE_ACCOUNT_TOKEN_MISMATCH_MESSAGE) { return APP_STORE_SUBSCRIPTION_OWNED_BY_ANOTHER_ACCOUNT_MESSAGE; } - if (message === APP_STORE_PURCHASE_NOT_LINKED_TO_ACCOUNT_MESSAGE) { - return APP_STORE_PURCHASE_NOT_LINKED_USER_MESSAGE; + if (message === i18n.t('kiloPass.purchaseNotLinked')) { + return i18n.t('kiloPass.purchaseDifferentAccount'); } return message; @@ -201,7 +197,7 @@ export function createAppStoreKiloPassPurchaseActions(deps: AppStoreKiloPassPurc await deps.finishTransaction({ purchase, isConsumable: false }); return { completed: true }; } catch (error) { - const message = getKiloPassPurchaseErrorMessage(error, 'Failed to complete purchase.'); + const message = getKiloPassPurchaseErrorMessage(error, i18n.t('kiloPass.purchaseFailed')); return { completed: false, errorMessage: message }; } } @@ -298,7 +294,7 @@ export function createAppStoreKiloPassPurchaseActions(deps: AppStoreKiloPassPurc } catch (error) { const message = getKiloPassPurchaseErrorMessage( error, - 'Failed to start App Store purchase.' + i18n.t('kiloPass.purchaseStartFailed') ); if (message) { deps.showError(message); @@ -315,7 +311,7 @@ export function createAppStoreKiloPassPurchaseActions(deps: AppStoreKiloPassPurc const availablePurchases = await deps.getAvailablePurchases(); const enabledAppleProductIds = await getEnabledAppleProductIdsForRestore(); if (enabledAppleProductIds.length === 0) { - deps.showError(RESTORE_PURCHASES_ERROR_MESSAGE); + deps.showError(i18n.t('kiloPass.restoreFailed')); return 'failed'; } @@ -332,7 +328,7 @@ export function createAppStoreKiloPassPurchaseActions(deps: AppStoreKiloPassPurc }); return completedPurchases.length > 0 ? 'restored' : 'failed'; } catch { - deps.showError(RESTORE_PURCHASES_ERROR_MESSAGE); + deps.showError(i18n.t('kiloPass.restoreFailed')); return 'failed'; } }, diff --git a/apps/mobile/src/lib/organization-invoice-download.test.ts b/apps/mobile/src/lib/organization-invoice-download.test.ts index 00812f03d7..b469072909 100644 --- a/apps/mobile/src/lib/organization-invoice-download.test.ts +++ b/apps/mobile/src/lib/organization-invoice-download.test.ts @@ -3,8 +3,8 @@ import { describe, expect, it, vi } from 'vitest'; import { getInvoiceDownloadErrorMessage, getInvoicePdfFilename, - INVOICE_DOWNLOAD_FAILED_MESSAGE, - INVOICE_SHARING_UNAVAILABLE_MESSAGE, + invoiceDownloadFailedMessage, + invoiceSharingUnavailableMessage, selectInvoiceDownloadErrorMessage, selectInvoiceRowState, } from '@/lib/organization-invoice-download'; @@ -53,33 +53,33 @@ describe('selectInvoiceRowState', () => { describe('selectInvoiceDownloadErrorMessage', () => { it('maps download-failed to a retryable download message with no CTA', () => { expect(selectInvoiceDownloadErrorMessage('download-failed')).toBe( - INVOICE_DOWNLOAD_FAILED_MESSAGE + invoiceDownloadFailedMessage() ); // Retry is by tapping the row again; the toast itself has no action CTA. - expect(INVOICE_DOWNLOAD_FAILED_MESSAGE.toLowerCase()).toContain('try again'); + expect(invoiceDownloadFailedMessage().toLowerCase()).toContain('try again'); }); it('maps sharing-unavailable to a distinct terminal message with no retry CTA', () => { expect(selectInvoiceDownloadErrorMessage('sharing-unavailable')).toBe( - INVOICE_SHARING_UNAVAILABLE_MESSAGE + invoiceSharingUnavailableMessage() ); - expect(INVOICE_SHARING_UNAVAILABLE_MESSAGE.toLowerCase()).toContain('not available'); - expect(INVOICE_SHARING_UNAVAILABLE_MESSAGE.toLowerCase()).not.toContain('try again'); + expect(invoiceSharingUnavailableMessage().toLowerCase()).toContain('not available'); + expect(invoiceSharingUnavailableMessage().toLowerCase()).not.toContain('try again'); }); }); describe('getInvoiceDownloadErrorMessage', () => { it('reads the discriminable reason from ShareRemoteFileError', () => { expect(getInvoiceDownloadErrorMessage(new ShareRemoteFileError('sharing-unavailable'))).toBe( - INVOICE_SHARING_UNAVAILABLE_MESSAGE + invoiceSharingUnavailableMessage() ); expect(getInvoiceDownloadErrorMessage(new ShareRemoteFileError('download-failed'))).toBe( - INVOICE_DOWNLOAD_FAILED_MESSAGE + invoiceDownloadFailedMessage() ); }); it('falls back to the download message for unknown errors', () => { - expect(getInvoiceDownloadErrorMessage(new Error('boom'))).toBe(INVOICE_DOWNLOAD_FAILED_MESSAGE); + expect(getInvoiceDownloadErrorMessage(new Error('boom'))).toBe(invoiceDownloadFailedMessage()); }); }); diff --git a/apps/mobile/src/lib/organization-invoice-download.ts b/apps/mobile/src/lib/organization-invoice-download.ts index 4a8059d8fa..03b03a7b84 100644 --- a/apps/mobile/src/lib/organization-invoice-download.ts +++ b/apps/mobile/src/lib/organization-invoice-download.ts @@ -1,3 +1,4 @@ +import { i18n } from '@/i18n'; import { getShareRemoteFileReason, shareRemoteFile, @@ -9,10 +10,10 @@ const INVOICE_CACHE_DIRECTORY = 'org-invoices'; type InvoiceRowState = 'idle' | 'busy' | 'no-affordance'; -export const INVOICE_DOWNLOAD_FAILED_MESSAGE = - "Couldn't download invoice. Check your connection and try again."; +export const invoiceDownloadFailedMessage = () => i18n.t('organization.invoices.downloadFailed'); -export const INVOICE_SHARING_UNAVAILABLE_MESSAGE = 'Sharing is not available on this device.'; +export const invoiceSharingUnavailableMessage = () => + i18n.t('organization.invoices.sharingUnavailable'); type InvoiceRowStateInput = { readonly invoicePdf: string | null; @@ -45,9 +46,9 @@ export function selectInvoiceRowState(input: InvoiceRowStateInput): InvoiceRowSt */ export function selectInvoiceDownloadErrorMessage(reason: ShareRemoteFileReason): string { if (reason === 'sharing-unavailable') { - return INVOICE_SHARING_UNAVAILABLE_MESSAGE; + return invoiceSharingUnavailableMessage(); } - return INVOICE_DOWNLOAD_FAILED_MESSAGE; + return invoiceDownloadFailedMessage(); } export function getInvoiceDownloadErrorMessage(error: unknown): string { diff --git a/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts b/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts index 92e33a3365..9bdd2ff3ef 100644 --- a/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts +++ b/apps/mobile/src/lib/pr-review/merge/use-pr-merge-mutations.ts @@ -109,7 +109,9 @@ export function useMergePullRequestMutation(ref: PrRef) { // (which renders that text) has no live region of its own. const gate = gateMergeResult(result); const message = - gate.kind === 'partial' ? `Merged. Couldn't delete the branch: ${gate.reason}` : 'Merged'; + gate.kind === 'partial' + ? i18n.t('prReview.merge.partialSuccessBanner.accessibility', { reason: gate.reason }) + : i18n.t('prReview.merge.partialSuccessBanner.title'); announceForA11y(message); }, onError: (error: { message: string }) => { diff --git a/apps/mobile/src/lib/pr-review/mutation-error-display.ts b/apps/mobile/src/lib/pr-review/mutation-error-display.ts index 46b35c26c4..2b27ad43b2 100644 --- a/apps/mobile/src/lib/pr-review/mutation-error-display.ts +++ b/apps/mobile/src/lib/pr-review/mutation-error-display.ts @@ -9,6 +9,7 @@ // have committed, so the user must verify the PR instead of being shown the // generic retryable copy. +import { i18n } from '@/i18n'; import { classifyPrReviewMutationError } from '@/lib/pr-review/classify-pr-review-query-state'; import { isPrOperationAmbiguous, @@ -26,14 +27,6 @@ type MutationErrorDisplay = { message: string; }; -const COMPOSER_BAD_REQUEST = - "This comment can't be posted. The selected line may have changed, or the PR may have been updated."; -const SUBMIT_BAD_REQUEST = - "This review can't be submitted as is. The PR may have changed, or you can't review your own pull request."; -const COMPOSER_RETRYABLE_FALLBACK = 'Could not post comment.'; -const SUBMIT_RETRYABLE = 'Could not submit review. Check your connection and try again.'; -const RECONNECT_MESSAGE = 'GitHub connection expired.'; - type Classification = ReturnType; /** @@ -62,19 +55,22 @@ export function mutationErrorDisplay( if (classification.kind === 'bad-request') { return { kind: 'bad-request', - message: surface === 'composer' ? COMPOSER_BAD_REQUEST : SUBMIT_BAD_REQUEST, + message: + surface === 'composer' + ? i18n.t('prReview.mutationError.commentNotPosted') + : i18n.t('prReview.mutationError.reviewNotSubmitted'), }; } if (classification.kind === 'reconnect') { - return { kind: 'reconnect', message: RECONNECT_MESSAGE }; + return { kind: 'reconnect', message: i18n.t('prReview.connectionExpired') }; } if (surface === 'submit') { - return { kind: 'retryable', message: SUBMIT_RETRYABLE }; + return { kind: 'retryable', message: i18n.t('prReview.mutationError.couldNotSubmitReview') }; } const message = rawError instanceof Error && rawError.message.length > 0 ? rawError.message - : COMPOSER_RETRYABLE_FALLBACK; + : i18n.t('prReview.mutationError.couldNotPostComment'); return { kind: 'retryable', message }; } diff --git a/apps/mobile/src/lib/remote-spawn-admission.test.ts b/apps/mobile/src/lib/remote-spawn-admission.test.ts index 1dc8cecece..7af1e0dd30 100644 --- a/apps/mobile/src/lib/remote-spawn-admission.test.ts +++ b/apps/mobile/src/lib/remote-spawn-admission.test.ts @@ -4,7 +4,7 @@ import { type InstancePickerInstance } from '@/lib/picker-bridge'; import { type SharePayload } from '@/lib/share-payload'; import { - REMOTE_SPAWN_FILES_NOT_SUPPORTED_TOAST, + remoteSpawnFilesNotSupportedToast, resolveRemoteSpawnAdmission, } from './remote-spawn-admission'; @@ -29,13 +29,13 @@ describe('resolveRemoteSpawnAdmission', () => { instance: { ...instance, capabilities: { attachments: false } }, payload: filesPayload, }) - ).toEqual({ allowed: false, toast: REMOTE_SPAWN_FILES_NOT_SUPPORTED_TOAST }); + ).toEqual({ allowed: false, toast: remoteSpawnFilesNotSupportedToast() }); }); it('rejects files when capability is absent', () => { expect(resolveRemoteSpawnAdmission({ instance, payload: filesPayload })).toEqual({ allowed: false, - toast: REMOTE_SPAWN_FILES_NOT_SUPPORTED_TOAST, + toast: remoteSpawnFilesNotSupportedToast(), }); }); diff --git a/apps/mobile/src/lib/remote-spawn-admission.ts b/apps/mobile/src/lib/remote-spawn-admission.ts index 8d7562c78b..073310ff13 100644 --- a/apps/mobile/src/lib/remote-spawn-admission.ts +++ b/apps/mobile/src/lib/remote-spawn-admission.ts @@ -1,7 +1,9 @@ +import { i18n } from '@/i18n'; import { type InstancePickerInstance } from '@/lib/picker-bridge'; import { type SharePayload } from '@/lib/share-payload'; -export const REMOTE_SPAWN_FILES_NOT_SUPPORTED_TOAST = 'This instance cannot receive files.'; +export const remoteSpawnFilesNotSupportedToast = () => + i18n.t('kiloclaw.remoteSpawnFilesNotSupported'); export function resolveRemoteSpawnAdmission(input: { instance: InstancePickerInstance; @@ -12,7 +14,7 @@ export function resolveRemoteSpawnAdmission(input: { return { allowed: true }; } if (payload.files.length > 0 && instance.capabilities?.attachments !== true) { - return { allowed: false, toast: REMOTE_SPAWN_FILES_NOT_SUPPORTED_TOAST }; + return { allowed: false, toast: remoteSpawnFilesNotSupportedToast() }; } return { allowed: true }; diff --git a/apps/mobile/src/lib/ui-deadline.ts b/apps/mobile/src/lib/ui-deadline.ts index be60d55d8a..b5b0fcfc33 100644 --- a/apps/mobile/src/lib/ui-deadline.ts +++ b/apps/mobile/src/lib/ui-deadline.ts @@ -1,3 +1,5 @@ +import { i18n } from '@/i18n'; + const noopDeadlineRejection = (_error: Error) => undefined; export async function withUiDeadline(operation: Promise, timeoutMs: number): Promise { @@ -6,9 +8,7 @@ export async function withUiDeadline(operation: Promise, timeoutMs: number rejectDeadline = reject; }); const timeoutId = setTimeout(() => { - rejectDeadline( - new Error('This is taking longer than expected. You can close this and check again.') - ); + rejectDeadline(new Error(i18n.t('common.takingLonger'))); }, timeoutMs); try { diff --git a/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts b/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts index 2b88368c7c..153c602ddc 100644 --- a/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts +++ b/apps/mobile/src/lib/voice-input/use-voice-input-actions.ts @@ -57,7 +57,7 @@ async function fireHaptic(style: Haptics.ImpactFeedbackStyle): Promise { function announceVoiceInputListening(): void { void fireHaptic(Haptics.ImpactFeedbackStyle.Light); - AccessibilityInfo.announceForAccessibility('Listening'); + AccessibilityInfo.announceForAccessibility(i18n.t('voiceInput.listening')); } export function runVoiceInputListeningFeedback( @@ -73,8 +73,8 @@ export function showFeedback(feedback: VoiceInputFeedback): void { const presentation = resolveVoiceInputFeedbackPresentation(feedback); if (presentation.kind === 'alert') { Alert.alert(presentation.title, presentation.message, [ - { text: 'Cancel', style: 'cancel' }, - { text: 'Open Settings', onPress: () => void Linking.openSettings() }, + { text: i18n.t('common.cancel'), style: 'cancel' }, + { text: i18n.t('common.openSettings'), onPress: () => void Linking.openSettings() }, ]); return; } diff --git a/apps/mobile/src/lib/voice-input/use-voice-input-feedback.test.ts b/apps/mobile/src/lib/voice-input/use-voice-input-feedback.test.ts index b3584a8749..860c83cf35 100644 --- a/apps/mobile/src/lib/voice-input/use-voice-input-feedback.test.ts +++ b/apps/mobile/src/lib/voice-input/use-voice-input-feedback.test.ts @@ -76,6 +76,6 @@ describe('voice input feedback side effects', () => { expect(hapticsMock.impactAsync).toHaveBeenCalledTimes(1); expect(hapticsMock.impactAsync).toHaveBeenCalledWith('light'); expect(accessibilityMock.announceForAccessibility).toHaveBeenCalledOnce(); - expect(accessibilityMock.announceForAccessibility).toHaveBeenCalledWith('Listening'); + expect(accessibilityMock.announceForAccessibility).toHaveBeenCalledWith('Listening...'); }); }); diff --git a/apps/mobile/src/lib/voice-input/voice-input-feedback.ts b/apps/mobile/src/lib/voice-input/voice-input-feedback.ts index 679bdb4429..3ef9cf96c1 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-feedback.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-feedback.ts @@ -1,11 +1,11 @@ +import { i18n } from '@/i18n'; + import { type VoiceInputFeedback, type VoiceInputStatus } from './voice-input-state'; export type VoiceInputFeedbackPresentation = - | { kind: 'alert'; title: 'Microphone access is off'; message: string } + | { kind: 'alert'; title: string; message: string } | { kind: 'toast'; message: string }; -const ALERT_TITLE = 'Microphone access is off' as const; - /** * Pure projection of a `VoiceInputFeedback` into the surface that should * display it. Open-settings feedback (permanent microphone denial) gets a @@ -20,7 +20,7 @@ export function resolveVoiceInputFeedbackPresentation( feedback: VoiceInputFeedback ): VoiceInputFeedbackPresentation { if (feedback.action === 'open-settings') { - return { kind: 'alert', title: ALERT_TITLE, message: feedback.message }; + return { kind: 'alert', title: i18n.t('voiceInput.micOffTitle'), message: feedback.message }; } return { kind: 'toast', message: feedback.message }; } diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts index bd7785e878..6317d2dea6 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.test.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.test.ts @@ -88,6 +88,22 @@ describe('pickSupportedVoiceInputLanguageTag', () => { expect(pickSupportedVoiceInputLanguageTag(['zh-HK'], ['zh-CN', 'zh-TW'])).toBe('zh-TW'); }); + it('maps the Simplified region zh-MY onto the Simplified script', () => { + expect(pickSupportedVoiceInputLanguageTag(['zh-MY'], ['zh-TW', 'zh-CN'])).toBe('zh-CN'); + }); + + it('maps the Serbian RS region onto Cyrillic', () => { + expect(pickSupportedVoiceInputLanguageTag(['sr-RS'], ['sr-Latn', 'sr-Cyrl'])).toBe('sr-Cyrl'); + }); + + it('maps the Punjabi PK region onto the Arabic script', () => { + expect(pickSupportedVoiceInputLanguageTag(['pa-PK'], ['pa-Guru', 'pa-Arab'])).toBe('pa-Arab'); + }); + + it('maps the Azerbaijani IR region onto the Arabic script', () => { + expect(pickSupportedVoiceInputLanguageTag(['az-IR'], ['az-Latn', 'az-Arab'])).toBe('az-Arab'); + }); + it('keeps the old behavior for a non-Chinese tag', () => { expect(pickSupportedVoiceInputLanguageTag(['de-AT'], ['de-DE', 'de-CH'])).toBe('de-DE'); }); diff --git a/apps/mobile/src/lib/voice-input/voice-input-language.ts b/apps/mobile/src/lib/voice-input/voice-input-language.ts index e1c900161b..9b51062d1a 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-language.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-language.ts @@ -12,26 +12,37 @@ function scriptSubtag(tag: string): string | undefined { .find(part => part.length === 4); } -const CHINESE_REGION_SCRIPTS = new Map([ - ['tw', 'hant'], - ['hk', 'hant'], - ['mo', 'hant'], - ['cn', 'hans'], - ['sg', 'hans'], +// Region-implied script, keyed `-`. Chinese is handled by +// its own rule below, which needs no region list. +const REGION_SCRIPTS = new Map([ + ['sr-rs', 'cyrl'], + ['sr-ba', 'cyrl'], + ['sr-me', 'cyrl'], + ['sr-xk', 'cyrl'], + ['pa-pk', 'arab'], + ['pa-in', 'guru'], + ['az-ir', 'arab'], + ['az-az', 'latn'], + ['uz-af', 'arab'], + ['uz-uz', 'latn'], ]); -/** Script of a tag. Chinese region tags imply a script, so map those too. */ +/** Script of a tag. When the tag lacks a script subtag, a region implies one. */ function scriptOf(tag: string): string | undefined { const script = scriptSubtag(tag); if (script) { return script; } const parts = normalizeLocale(tag).split('-'); - if (parts[0] !== 'zh') { - return undefined; + const [language] = parts; + if (language === 'zh') { + const traditional = parts + .slice(1) + .some(subtag => subtag === 'hant' || subtag === 'tw' || subtag === 'hk' || subtag === 'mo'); + return traditional ? 'hant' : 'hans'; } const region = parts.slice(1).find(part => part.length === 2); - return region ? CHINESE_REGION_SCRIPTS.get(region) : undefined; + return region ? REGION_SCRIPTS.get(`${language}-${region}`) : undefined; } /** diff --git a/apps/mobile/src/lib/voice-input/voice-input-state.ts b/apps/mobile/src/lib/voice-input/voice-input-state.ts index 860f3a2a41..43179dd02c 100644 --- a/apps/mobile/src/lib/voice-input/voice-input-state.ts +++ b/apps/mobile/src/lib/voice-input/voice-input-state.ts @@ -1,3 +1,5 @@ +import { i18n } from '@/i18n'; + export type VoiceInputStatus = 'idle' | 'starting' | 'listening' | 'stopping'; export type VoiceInputAvailability = 'available' | 'unavailable'; @@ -89,7 +91,7 @@ export function classifyVoiceInputPermission( return { action: 'none', availability: 'available', - message: 'Voice input is restricted on this device.', + message: i18n.t('voiceInput.restricted'), retryable: false, }; } @@ -97,14 +99,14 @@ export function classifyVoiceInputPermission( return { action: 'none', availability: 'available', - message: 'Microphone access is required for voice input.', + message: i18n.t('voiceInput.micRequired'), retryable: true, }; } return { action: 'open-settings', availability: 'available', - message: 'Microphone access is off. Enable it in Settings to use voice input.', + message: i18n.t('voiceInput.micOff'), retryable: false, }; } @@ -116,7 +118,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'none', availability: 'available', - message: 'No speech detected. Tap the microphone to try again.', + message: i18n.t('voiceInput.noSpeech'), retryable: true, }; } @@ -124,7 +126,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'none', availability: 'available', - message: 'Voice input needs a connection right now. Try again.', + message: i18n.t('voiceInput.needsConnection'), retryable: true, }; } @@ -132,7 +134,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'none', availability: 'available', - message: 'Voice input is busy. Try again.', + message: i18n.t('voiceInput.busy'), retryable: true, }; } @@ -145,7 +147,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'none', availability: 'available', - message: 'Voice input stopped. Tap the microphone to try again.', + message: i18n.t('voiceInput.stopped'), retryable: true, }; } @@ -153,7 +155,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'open-settings', availability: 'available', - message: 'Microphone access is off. Enable it in Settings to use voice input.', + message: i18n.t('voiceInput.micOff'), retryable: false, }; } @@ -161,7 +163,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'none', availability: 'unavailable', - message: "Voice input isn't available on this device.", + message: i18n.t('voiceInput.unavailableDevice'), retryable: false, }; } @@ -169,7 +171,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'none', availability: 'available', - message: "Voice input isn't available for this device language.", + message: i18n.t('voiceInput.unavailableLanguage'), retryable: false, }; } @@ -177,7 +179,7 @@ export function classifyVoiceInputError(code: string): VoiceInputFeedback { return { action: 'none', availability: 'available', - message: 'Voice input stopped. Tap the microphone to try again.', + message: i18n.t('voiceInput.stopped'), retryable: true, }; } diff --git a/tools/oxlint/no-literal-copy/allowlist.json b/tools/oxlint/no-literal-copy/allowlist.json index ebfdbe9725..ad9924c882 100644 --- a/tools/oxlint/no-literal-copy/allowlist.json +++ b/tools/oxlint/no-literal-copy/allowlist.json @@ -1,5 +1,5 @@ { "files": [], - "values": [], + "values": ["KiloClaw"], "constants": ["BYOK_MODEL_LABEL", "KILO_PASS_TITLE", "MESSAGE_TEXT_MAX_CHARS", "URL_PLACEHOLDER"] } diff --git a/tools/oxlint/no-literal-copy/index.ts b/tools/oxlint/no-literal-copy/index.ts index 5eb38242f4..943551eba8 100644 --- a/tools/oxlint/no-literal-copy/index.ts +++ b/tools/oxlint/no-literal-copy/index.ts @@ -170,6 +170,11 @@ function isCopyExpression(node: ESTree.Expression): boolean { if (node.type === 'LogicalExpression' && (node.operator === '||' || node.operator === '??')) { return isCopyExpression(node.left) || isCopyExpression(node.right); } + // `error ? 'Something went wrong' : ''`: the user reads the branch when the + // condition holds, so either branch is copy. + if (node.type === 'ConditionalExpression') { + return isCopyExpression(node.consequent) || isCopyExpression(node.alternate); + } return false; } From 12101fb61a4da197b2e61714c4268f518c2d8542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 18:51:29 +0200 Subject: [PATCH 07/14] fix(mobile): translate the Security Agent and Code Reviewer copy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The largest remaining English surface came from `packages/app-shared`, which web reads directly. Web has no translations, so the shared modules keep every English string exactly as it is. Mobile now maps the stable code each module already carries — an analysis state, a status, a severity, a reason — onto a catalog key, and renders the translated word. Surfaces: every finding row, analysis panel, remediation panel, details panel, dashboard metric, and Code Reviewer status badge. 120 new keys, translated into all 87 catalogs. The deadline copy is computed from dates, so it carries no code to map. `getSecurityDeadlinePresentation` now also returns a `state` union naming the branch and the values the copy needs. The field is additive: web keeps reading `label` and `detail`, and app-shared's own tests still pass. Mobile renders from `state` and formats each date in the active language. Day counts use plural keys, with the categories each language needs rather than English's two. Also localize the pull request submit block reason, and bump the app to 1.0.6. --- apps/mobile/app.config.ts | 2 +- .../code-reviewer/review-list-screen.tsx | 26 ++- .../security-agent/finding-analysis-panel.tsx | 17 +- .../security-agent/finding-details-panel.tsx | 68 +++++- .../finding-remediation-panel.tsx | 197 ++++++++++++++++-- .../components/security-agent/finding-row.tsx | 15 +- apps/mobile/src/i18n/locales/af.json | 128 +++++++++++- apps/mobile/src/i18n/locales/am.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ar.json | 136 +++++++++++- apps/mobile/src/i18n/locales/az.json | 128 +++++++++++- apps/mobile/src/i18n/locales/be.json | 132 +++++++++++- apps/mobile/src/i18n/locales/bg.json | 128 +++++++++++- apps/mobile/src/i18n/locales/bn.json | 128 +++++++++++- apps/mobile/src/i18n/locales/bs.json | 130 +++++++++++- apps/mobile/src/i18n/locales/ca.json | 130 +++++++++++- apps/mobile/src/i18n/locales/ckb.json | 128 +++++++++++- apps/mobile/src/i18n/locales/cs.json | 132 +++++++++++- apps/mobile/src/i18n/locales/cy.json | 136 +++++++++++- apps/mobile/src/i18n/locales/da.json | 128 +++++++++++- apps/mobile/src/i18n/locales/de.json | 128 +++++++++++- apps/mobile/src/i18n/locales/el.json | 128 +++++++++++- apps/mobile/src/i18n/locales/en.json | 128 +++++++++++- apps/mobile/src/i18n/locales/es.json | 130 +++++++++++- apps/mobile/src/i18n/locales/et.json | 128 +++++++++++- apps/mobile/src/i18n/locales/eu.json | 128 +++++++++++- apps/mobile/src/i18n/locales/fa.json | 128 +++++++++++- apps/mobile/src/i18n/locales/fi.json | 128 +++++++++++- apps/mobile/src/i18n/locales/fil.json | 128 +++++++++++- apps/mobile/src/i18n/locales/fr.json | 130 +++++++++++- apps/mobile/src/i18n/locales/ga.json | 134 +++++++++++- apps/mobile/src/i18n/locales/gl.json | 128 +++++++++++- apps/mobile/src/i18n/locales/gu.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ha.json | 128 +++++++++++- apps/mobile/src/i18n/locales/he.json | 130 +++++++++++- apps/mobile/src/i18n/locales/hi.json | 128 +++++++++++- apps/mobile/src/i18n/locales/hr.json | 130 +++++++++++- apps/mobile/src/i18n/locales/ht.json | 128 +++++++++++- apps/mobile/src/i18n/locales/hu.json | 128 +++++++++++- apps/mobile/src/i18n/locales/hy.json | 128 +++++++++++- apps/mobile/src/i18n/locales/id.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ig.json | 128 +++++++++++- apps/mobile/src/i18n/locales/is.json | 128 +++++++++++- apps/mobile/src/i18n/locales/it.json | 130 +++++++++++- apps/mobile/src/i18n/locales/ja.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ka.json | 128 +++++++++++- apps/mobile/src/i18n/locales/kk.json | 128 +++++++++++- apps/mobile/src/i18n/locales/km.json | 128 +++++++++++- apps/mobile/src/i18n/locales/kn.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ko.json | 128 +++++++++++- apps/mobile/src/i18n/locales/lo.json | 128 +++++++++++- apps/mobile/src/i18n/locales/lt.json | 132 +++++++++++- apps/mobile/src/i18n/locales/lv.json | 130 +++++++++++- apps/mobile/src/i18n/locales/mg.json | 128 +++++++++++- apps/mobile/src/i18n/locales/mi.json | 128 +++++++++++- apps/mobile/src/i18n/locales/mk.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ml.json | 128 +++++++++++- apps/mobile/src/i18n/locales/mn.json | 128 +++++++++++- apps/mobile/src/i18n/locales/mr.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ms.json | 128 +++++++++++- apps/mobile/src/i18n/locales/mt.json | 134 +++++++++++- apps/mobile/src/i18n/locales/my.json | 128 +++++++++++- apps/mobile/src/i18n/locales/nb.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ne.json | 128 +++++++++++- apps/mobile/src/i18n/locales/nl.json | 128 +++++++++++- apps/mobile/src/i18n/locales/om.json | 128 +++++++++++- apps/mobile/src/i18n/locales/or.json | 128 +++++++++++- apps/mobile/src/i18n/locales/pa.json | 128 +++++++++++- apps/mobile/src/i18n/locales/pl.json | 132 +++++++++++- apps/mobile/src/i18n/locales/ps.json | 128 +++++++++++- apps/mobile/src/i18n/locales/pt-BR.json | 130 +++++++++++- apps/mobile/src/i18n/locales/pt.json | 130 +++++++++++- apps/mobile/src/i18n/locales/ro.json | 130 +++++++++++- apps/mobile/src/i18n/locales/ru.json | 132 +++++++++++- apps/mobile/src/i18n/locales/si.json | 128 +++++++++++- apps/mobile/src/i18n/locales/sk.json | 132 +++++++++++- apps/mobile/src/i18n/locales/sl.json | 132 +++++++++++- apps/mobile/src/i18n/locales/so.json | 128 +++++++++++- apps/mobile/src/i18n/locales/sq.json | 128 +++++++++++- apps/mobile/src/i18n/locales/sr.json | 130 +++++++++++- apps/mobile/src/i18n/locales/sv.json | 128 +++++++++++- apps/mobile/src/i18n/locales/sw.json | 128 +++++++++++- apps/mobile/src/i18n/locales/ta.json | 128 +++++++++++- apps/mobile/src/i18n/locales/te.json | 128 +++++++++++- apps/mobile/src/i18n/locales/th.json | 128 +++++++++++- apps/mobile/src/i18n/locales/tr.json | 128 +++++++++++- apps/mobile/src/i18n/locales/uk.json | 132 +++++++++++- apps/mobile/src/i18n/locales/ur.json | 128 +++++++++++- apps/mobile/src/i18n/locales/uz.json | 128 +++++++++++- apps/mobile/src/i18n/locales/vi.json | 128 +++++++++++- apps/mobile/src/i18n/locales/yo.json | 128 +++++++++++- apps/mobile/src/i18n/locales/zh-Hans.json | 128 +++++++++++- apps/mobile/src/i18n/locales/zh-Hant.json | 128 +++++++++++- apps/mobile/src/i18n/locales/zu.json | 128 +++++++++++- .../src/lib/hooks/use-security-remediation.ts | 57 ++++- .../pr-review/build-submit-review-input.ts | 5 +- apps/mobile/src/lib/security-agent-copy.ts | 172 +++++++++++++++ .../src/security-agent/presentation.ts | 39 +++- 97 files changed, 11499 insertions(+), 319 deletions(-) create mode 100644 apps/mobile/src/lib/security-agent-copy.ts diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index fcf03d8964..9ff103ed45 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -62,7 +62,7 @@ const config: ExpoConfig = { name: 'Kilo', owner: 'kilocode', slug: 'kilo-app', - version: '1.0.5', + version: '1.0.6', // Portrait-only is an accepted, documented product deviation from WCAG 1.3.4 // (Orientation). Landscape layouts and iPad split-view/multitasking are out // of scope; `ios.requireFullScreen` below enforces that. This is not claimed diff --git a/apps/mobile/src/components/code-reviewer/review-list-screen.tsx b/apps/mobile/src/components/code-reviewer/review-list-screen.tsx index c24affb144..7f7ff33021 100644 --- a/apps/mobile/src/components/code-reviewer/review-list-screen.tsx +++ b/apps/mobile/src/components/code-reviewer/review-list-screen.tsx @@ -4,11 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Pressable, View } from 'react-native'; import Animated, { FadeIn, FadeOut, LinearTransition } from 'react-native-reanimated'; -import { - CODE_REVIEW_STATUS_LABELS, - type CodeReviewStatus, - isCodeReviewStatus, -} from '@kilocode/app-shared/code-review'; +import { type CodeReviewStatus, isCodeReviewStatus } from '@kilocode/app-shared/code-review'; import { EmptyState } from '@/components/empty-state'; import { QueryError } from '@/components/query-error'; import { ScreenHeader } from '@/components/screen-header'; @@ -16,12 +12,13 @@ import { Button } from '@/components/ui/button'; import { Skeleton } from '@/components/ui/skeleton'; import { Text } from '@/components/ui/text'; import { TabScreenScrollView } from '@/components/tab-screen'; +import { i18n } from '@/i18n'; import { useGitHubStatus, useGitLabStatus } from '@/lib/hooks/use-code-reviewer'; import { useReviewList } from '@/lib/hooks/use-code-reviews'; import { cn, parseTimestamp, timeAgo } from '@/lib/utils'; -// Tone classes stay mobile-local; labels come from the shared -// CODE_REVIEW_STATUS_LABELS map so they can't drift from web's copy. +// Tone classes stay mobile-local; the label is the translated catalog key +// for the same stable status code web reads, so it can't drift from web. const STATUS_CLASSNAME = { pending: 'text-muted-foreground', queued: 'text-muted-foreground', @@ -32,6 +29,16 @@ const STATUS_CLASSNAME = { interrupted: 'text-warn', } satisfies Record; +const STATUS_KEY = { + pending: 'codeReviewer.status.pending', + queued: 'codeReviewer.status.queued', + running: 'codeReviewer.status.running', + completed: 'codeReviewer.status.completed', + failed: 'codeReviewer.status.failed', + cancelled: 'codeReviewer.status.cancelled', + interrupted: 'codeReviewer.status.interrupted', +} satisfies Record; + type ReviewListData = NonNullable['data']>; type Review = Extract['reviews'][number]; @@ -39,7 +46,10 @@ export function statusMeta(status: string) { if (!isCodeReviewStatus(status)) { return { label: status, className: 'text-muted-foreground' }; } - return { label: CODE_REVIEW_STATUS_LABELS[status], className: STATUS_CLASSNAME[status] }; + return { + label: i18n.t(STATUS_KEY[status]), + className: STATUS_CLASSNAME[status], + }; } function reviewTime(review: Review): Date { diff --git a/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx b/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx index a6cb32671d..7d7d0865de 100644 --- a/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-analysis-panel.tsx @@ -27,6 +27,10 @@ import { useSecurityAnalysisCapacity } from '@/lib/hooks/use-security-agent'; import { useStartSecurityAnalysis } from '@/lib/hooks/use-security-findings'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { type SecurityAnalysis } from '@/lib/security-agent'; +import { + getSecurityAnalysisDetailDescription, + getSecurityAnalysisDetailTitle, +} from '@/lib/security-agent-copy'; import { firstNonEmpty, parseTimestamp, timeAgo } from '@/lib/utils'; type FindingAnalysisPanelProps = { @@ -81,6 +85,7 @@ export function FindingAnalysisPanel({ ); } + const analysisState = getSecurityFindingAnalysisState(analysis.status, analysis.analysis); const presentation = getSecurityAnalysisDetailPresentation( analysis.status, analysis.analysis, @@ -88,6 +93,13 @@ export function FindingAnalysisPanel({ ); const triage = analysis.analysis?.triage; const sandbox = analysis.analysis?.sandboxAnalysis; + const presentationTitle = getSecurityAnalysisDetailTitle(analysisState); + const presentationDescription = getSecurityAnalysisDetailDescription(analysisState, { + analysisError: analysis.error, + sandboxSummary: sandbox?.summary, + sandboxReasoning: sandbox?.exploitabilityReasoning, + triageReasoning: triage?.needsSandboxReasoning, + }); const technicalMarkdown = firstNonEmpty(sandbox?.rawMarkdown, analysis.analysis?.rawMarkdown); const uniqueLocations = sandbox ? [...new Set(sandbox.usageLocations)] : []; const exploitabilityReasoning = sandbox @@ -98,7 +110,6 @@ export function FindingAnalysisPanel({ // Admission mirrors SecurityFindingRow.tsx's showAnalysisAction/canRestartAnalysis // — server owns eligibility, this just reads the already-fetched state. const findingOpen = analysis.findingState.status === 'open'; - const analysisState = getSecurityFindingAnalysisState(analysis.status, analysis.analysis); // Sandbox/triage evidence is authoritative only once the analysis reached a // terminal sandbox/triage state. A stale result left behind by a failed // retry must not read as "Analyzed" (completion copy) in queued/running/failed. @@ -152,12 +163,12 @@ export function FindingAnalysisPanel({ - {presentation.description} + {presentationDescription} diff --git a/apps/mobile/src/components/security-agent/finding-details-panel.tsx b/apps/mobile/src/components/security-agent/finding-details-panel.tsx index 3258d96555..2289535a58 100644 --- a/apps/mobile/src/components/security-agent/finding-details-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-details-panel.tsx @@ -1,8 +1,6 @@ import { - getDismissalReasonLabel, getFindingLifecycleStatusPresentation, getFindingSeverityPresentation, - getFindingSourceLabel, getSecurityDeadlinePresentation, getSupersedingFindingId, } from '@kilocode/app-shared/security-agent'; @@ -16,9 +14,11 @@ import { FINDING_TONE_TO_KV_ROW_TONE, } from '@/components/security-agent/finding-tone'; import { CollapsibleSection } from '@/components/security-agent/collapsible-section'; +import { getDeadlineCopy } from '@/lib/security-agent-copy'; import { FindingStatusBadge } from '@/components/security-agent/finding-status-badge'; import { KvRow } from '@/components/ui/kv-row'; import { Text } from '@/components/ui/text'; +import { i18n } from '@/i18n'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { getSecurityAgentPath, type SecurityFinding } from '@/lib/security-agent'; import { cn, firstNonEmpty, parseTimestamp, timeAgo } from '@/lib/utils'; @@ -28,6 +28,50 @@ type FindingDetailsPanelProps = { scope: string; }; +// Catalog keys for app-shared presentation codes. The mobile app maps a +// stable code (severity, status, dismissal reason, source) to a key and +// renders `t(key)` instead of app-shared's English labels. +const SEVERITY_KEYS = { + critical: 'securityAgent.sla.critical', + high: 'securityAgent.sla.high', + medium: 'securityAgent.sla.medium', + low: 'securityAgent.sla.low', +} satisfies Record; + +const FINDING_STATUS_KEYS = { + superseded: 'securityAgent.findingDetails.statusSuperseded', + fixed: 'securityAgent.findingDetails.statusFixed', + dismissed: 'securityAgent.findingDetails.dismissed', + open: 'securityAgent.findingDetails.statusOpen', +} satisfies Record; + +const DISMISSAL_REASON_KEYS = { + fix_started: 'securityAgent.findingDetails.reasonFixStarted', + no_bandwidth: 'securityAgent.findingDetails.reasonNoBandwidth', + tolerable_risk: 'securityAgent.findingDetails.reasonTolerableRisk', + inaccurate: 'securityAgent.findingDetails.reasonInaccurate', + not_used: 'securityAgent.findingDetails.reasonNotUsed', +} satisfies Record; + +/** Looks up a possibly-unknown key in a literal dictionary without widening its type. */ +function lookup(dictionary: Readonly>, key: string): V | undefined { + return (dictionary as Readonly>)[key]; +} + +function getDismissalReasonLabel(reason: string | null): string { + if (!reason) { + return i18n.t('securityAgent.findingDetails.reasonAfterReview'); + } + return lookup(DISMISSAL_REASON_KEYS, reason) ?? reason.replaceAll('_', ' '); +} + +function getFindingSourceLabel(source: string): string { + if (source === 'dependabot') { + return i18n.t('securityAgent.findingDetails.sourceDependabot'); + } + return source.replaceAll('_', ' '); +} + function DismissalOrSupersessionNote({ finding, scope, @@ -84,7 +128,15 @@ export function FindingDetailsPanel({ finding, scope }: Readonly - {t('securityAgent.findingDetails.severityLabel', { severity: severity.label })} + {t('securityAgent.findingDetails.severityLabel', { severity: t(severityKey) })} - {status.label} + {t(statusKey)} - + {finding.description ? ( @@ -182,7 +238,7 @@ export function FindingDetailsPanel({ finding, scope }: Readonly diff --git a/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx b/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx index 2faea41c0a..bcd0a99c86 100644 --- a/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx @@ -1,12 +1,8 @@ /* eslint-disable max-lines -- the panel composes the status card, remediation controls, summary PR button, timeline, and attempt history; each is a small rendered surface that mirrors the shared remediation pattern. Splitting would re-encode the same hooks. */ -import { - formatRemediationOrigin, - formatValidationEvidenceEntry, - getRemediationStatusPresentation, - getRemediationUnavailableCopy, -} from '@kilocode/app-shared/security-agent'; +import { getRemediationStatusPresentation } from '@kilocode/app-shared/security-agent'; import { Wrench } from '@/components/ui/icons'; import { useRouter } from 'expo-router'; +import { type TFunction } from 'i18next'; import { ActivityIndicator, Alert, View } from 'react-native'; import { useTranslation } from 'react-i18next'; @@ -58,6 +54,146 @@ function lookup(dictionary: Readonly>, key: string): V | un return (dictionary as Readonly>)[key]; } +// Catalog keys for the remediation status codes, mapped from +// getRemediationStatusPresentation in packages/app-shared. The status code +// plus the PR-draft flag decides the key; icon, tone, and spinning still come +// from app-shared. +const REMEDIATION_STATUS_KEYS = { + cancellationRequested: 'securityAgent.remediationStatus.cancellationRequested', + notStarted: 'securityAgent.remediationStatus.notStarted', + queued: 'securityAgent.remediationStatus.queued', + starting: 'securityAgent.remediationStatus.starting', + inProgress: 'securityAgent.remediationStatus.inProgress', + draftPrOpened: 'securityAgent.remediationStatus.draftPrOpened', + prOpened: 'securityAgent.remediationStatus.prOpened', + blocked: 'securityAgent.remediationStatus.blocked', + failed: 'securityAgent.remediationStatus.failed', + noChangesNeeded: 'securityAgent.remediationStatus.noChangesNeeded', + cancelled: 'securityAgent.remediationStatus.cancelled', +} as const satisfies Record; + +function getRemediationStatusKey( + status: string | null, + options: { cancellationRequestedAt?: string | null; prDraft?: boolean | null } = {} +): string | null { + if ( + options.cancellationRequestedAt && + (status === 'queued' || status === 'launching' || status === 'running') + ) { + return REMEDIATION_STATUS_KEYS.cancellationRequested; + } + switch (status) { + case null: { + return REMEDIATION_STATUS_KEYS.notStarted; + } + case 'queued': { + return REMEDIATION_STATUS_KEYS.queued; + } + case 'launching': { + return REMEDIATION_STATUS_KEYS.starting; + } + case 'running': { + return REMEDIATION_STATUS_KEYS.inProgress; + } + case 'pr_opened': { + return options.prDraft + ? REMEDIATION_STATUS_KEYS.draftPrOpened + : REMEDIATION_STATUS_KEYS.prOpened; + } + case 'blocked': { + return REMEDIATION_STATUS_KEYS.blocked; + } + case 'failed': { + return REMEDIATION_STATUS_KEYS.failed; + } + case 'no_changes_needed': { + return REMEDIATION_STATUS_KEYS.noChangesNeeded; + } + case 'cancelled': { + return REMEDIATION_STATUS_KEYS.cancelled; + } + default: { + return null; + } + } +} + +// Catalog keys for the remediation origin codes, mapped from +// formatRemediationOrigin in packages/app-shared. +const REMEDIATION_ORIGIN_KEYS = { + auto_policy: 'securityAgent.remediationStatus.originAutomaticPolicy', + bulk_existing: 'securityAgent.remediationStatus.originIncludeExistingPolicy', + manual: 'securityAgent.remediationStatus.originManual', +} as const satisfies Record; + +// Catalog keys for the remediation-unavailable reason codes, mapped from +// REMEDIATION_UNAVAILABLE_COPY and getRemediationUnavailableCopy in +// packages/app-shared. Unknown reasons keep the generic copy; a null/eligible +// reason stays null so callers keep their existing fallback. +const REMEDIATION_UNAVAILABLE_KEYS = { + finding_not_found: 'securityAgent.remediationUnavailable.findingNotFound', + approval_required: 'securityAgent.remediationUnavailable.approvalRequired', + finding_not_open: 'securityAgent.remediationUnavailable.findingNotOpen', + repo_not_in_scope: 'securityAgent.remediationUnavailable.repoNotInScope', + analysis_required: 'securityAgent.remediationUnavailable.analysisRequired', + sandbox_analysis_required: 'securityAgent.remediationUnavailable.sandboxAnalysisRequired', + stale_analysis: 'securityAgent.remediationUnavailable.staleAnalysis', + not_exploitable: 'securityAgent.remediationUnavailable.notExploitable', + exploitability_unknown: 'securityAgent.remediationUnavailable.exploitabilityUnknown', + manual_review_required: 'securityAgent.remediationUnavailable.manualReviewRequired', + monitor_required: 'securityAgent.remediationUnavailable.monitorRequired', + triage_only: 'securityAgent.remediationUnavailable.triageOnly', + action_not_concrete: 'securityAgent.remediationUnavailable.actionNotConcrete', + remediation_active: 'securityAgent.remediationUnavailable.remediationActive', + pr_already_opened: 'securityAgent.remediationUnavailable.prAlreadyOpened', + duplicate_analysis_result: 'securityAgent.remediationUnavailable.duplicateAnalysisResult', + retry_not_allowed: 'securityAgent.remediationUnavailable.retryNotAllowed', + security_agent_disabled: 'securityAgent.remediationUnavailable.securityAgentDisabled', + auto_remediation_disabled: 'securityAgent.remediationUnavailable.autoRemediationDisabled', + include_existing_disabled: 'securityAgent.remediationUnavailable.includeExistingDisabled', + below_threshold: 'securityAgent.remediationUnavailable.belowThreshold', + before_enablement: 'securityAgent.remediationUnavailable.beforeEnablement', +} as const satisfies Record; + +const REMEDIATION_UNAVAILABLE_GENERIC_KEY = 'securityAgent.remediationUnavailable.generic'; + +function getRemediationUnavailableKey(reason: string | null | undefined): string | null { + if (!reason || reason === 'eligible') { + return null; + } + // Object.hasOwn (not `in`) so inherited keys like 'constructor' fall + // through to the generic copy instead of leaking prototype members. + return Object.hasOwn(REMEDIATION_UNAVAILABLE_KEYS, reason) + ? REMEDIATION_UNAVAILABLE_KEYS[reason as keyof typeof REMEDIATION_UNAVAILABLE_KEYS] + : REMEDIATION_UNAVAILABLE_GENERIC_KEY; +} + +function getValidationRecordString(record: Record, key: string): string | null { + const value = record[key]; + // oxlint-disable-next-line anti-slop/no-runtime-typeof -- validation evidence arrives as untyped backend JSON; trim-check before treating the value as a string. + return typeof value === 'string' && value.trim() ? value : null; +} + +// Mirrors formatValidationEvidenceEntry in packages/app-shared except the +// `Validation check N` fallback reads the catalog instead of English. +function formatValidationEvidence( + record: Record, + index: number, + t: TFunction +): string { + const label = + getValidationRecordString(record, 'name') ?? + getValidationRecordString(record, 'title') ?? + getValidationRecordString(record, 'command') ?? + getValidationRecordString(record, 'check') ?? + t('securityAgent.remediationStatus.validationCheck', { number: index + 1 }); + const result = + getValidationRecordString(record, 'result') ?? + getValidationRecordString(record, 'status') ?? + getValidationRecordString(record, 'summary'); + return result ? `${label}: ${result}` : label; +} + // Ported from FindingDetailDialog.tsx:1849 (getRemediationPresentation) and // remediation-unavailable-copy.ts — capability/blocker, current summary, and // attempt history (already newest-first from the server) as plain facts. @@ -123,17 +259,24 @@ export function FindingRemediationPanel({ const remediationTimeline = analysis.remediationTimeline ?? []; const latestAttempt = remediationAttempts[0] ?? null; const summaryPrUrl = remediationSummary?.prUrl; - const presentation = getRemediationStatusPresentation(remediationSummary?.status ?? null, { + const summaryStatusOptions = { cancellationRequestedAt: latestAttempt?.cancellationRequestedAt, prDraft: remediationSummary?.prDraft, - }); - const blockerCopy = !remediationCapability.canStart - ? getRemediationUnavailableCopy(remediationCapability.startReason) + }; + const presentation = getRemediationStatusPresentation( + remediationSummary?.status ?? null, + summaryStatusOptions + ); + const statusLabel = + getRemediationStatusKey(remediationSummary?.status ?? null, summaryStatusOptions) ?? + presentation.label; + const blockerKey = !remediationCapability.canStart + ? getRemediationUnavailableKey(remediationCapability.startReason) : null; - const retryBlockerCopy = + const retryBlockerKey = !remediationCapability.canRetry && remediationCapability.retryReason !== remediationCapability.startReason - ? getRemediationUnavailableCopy(remediationCapability.retryReason) + ? getRemediationUnavailableKey(remediationCapability.retryReason) : null; return ( @@ -141,7 +284,7 @@ export function FindingRemediationPanel({ @@ -150,14 +293,14 @@ export function FindingRemediationPanel({ {remediationSummary.outcomeSummary} ) : null} - {blockerCopy ? ( + {blockerKey ? ( - {blockerCopy} + {t(blockerKey)} ) : null} - {retryBlockerCopy ? ( + {retryBlockerKey ? ( - {retryBlockerCopy} + {t(retryBlockerKey)} ) : null} @@ -277,12 +420,22 @@ export function FindingRemediationPanel({ > {remediationAttempts.map(attempt => { - const attemptPresentation = getRemediationStatusPresentation(attempt.status, { + const attemptStatusOptions = { cancellationRequestedAt: attempt.cancellationRequestedAt, prDraft: attempt.prDraft, - }); + }; + const attemptPresentation = getRemediationStatusPresentation( + attempt.status, + attemptStatusOptions + ); + const attemptStatusLabel = + getRemediationStatusKey(attempt.status, attemptStatusOptions) ?? + attemptPresentation.label; + const originKey = lookup(REMEDIATION_ORIGIN_KEYS, attempt.origin); const validation = - attempt.validationEvidence?.map(formatValidationEvidenceEntry) ?? []; + attempt.validationEvidence?.map((record, index) => + formatValidationEvidence(record, index, t) + ) ?? []; const note = firstNonEmpty(attempt.riskNotes, attempt.draftReason); const outcome = firstNonEmpty(attempt.blockedReason, attempt.lastErrorRedacted); const attemptUrl = attempt.prUrl; @@ -301,13 +454,13 @@ export function FindingRemediationPanel({ - {analysis.label} + {analysisLabel} {deadline && DeadlineIcon && ( @@ -245,7 +250,7 @@ export function FindingRow({ spinning={Boolean(deadline.spinning)} /> - {deadline.label} + {deadlineLabel} )} diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index 452f8cf612..f146232e95 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -512,7 +512,9 @@ "pendingComment_other": "hangende kommentare", "submitCountOfTotal": "Dien {{displayFreshCount}} van {{displayTotalCount}} kommentare in", "submitReview": "Dien resensie in", - "partialPostedMessage": "{{displayFreshCount}} kommentaar(s) geplaas. {{displayStaleCount}} kommentaar(s) verwys na 'n ouer commit en het in jou tou gebly." + "partialPostedMessage": "{{displayFreshCount}} kommentaar(s) geplaas. {{displayStaleCount}} kommentaar(s) verwys na 'n ouer commit en het in jou tou gebly.", + "blockedRequestChanges": "Voeg 'n opsomming of minstens een kommentaar by om veranderings te versoek.", + "blockedComment": "Voeg 'n opsomming of minstens een kommentaar by om 'n kommentaarresensie te plaas." }, "reconnectNotice": { "title": "GitHub-verbinding verval", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Kode-hersiener", "updateFailed": "Kon nie resenseerder bywerk nie", - "configSaveFailed": "Kon nie resensiekonfigurasie stoor nie" + "configSaveFailed": "Kon nie resensiekonfigurasie stoor nie", + "status": { + "pending": "Hangend", + "queued": "In die tou", + "running": "Loop", + "completed": "Voltooi", + "failed": "Misluk", + "cancelled": "Gekanselleer", + "interrupted": "Onderbreek" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Bronrekord", "source": "Bron", "sourceId": "Bron-ID", - "viewAdvisory": "Bekyk advies op GitHub" + "viewAdvisory": "Bekyk advies op GitHub", + "statusSuperseded": "Vervang", + "statusFixed": "Reggemaak", + "statusOpen": "Oop", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "'n regstelling het reeds begin", + "reasonNoBandwidth": "geen bandwydte is beskikbaar nie", + "reasonTolerableRisk": "die risiko is aanvaarbaar", + "reasonInaccurate": "die bevinding is onakkuraat", + "reasonNotUsed": "kwesbare kode word nie gebruik nie", + "reasonAfterReview": "na hersiening" }, "settingsOverview": { "title": "Instellings", @@ -1805,6 +1826,107 @@ "syncInProgress": "'n Veiligheidsinkronisasie is reeds aan die gang. Probeer asseblief weer.", "dismissalInProgress": "Hierdie van-die-hand-maak is reeds aan die gang. Probeer asseblief weer.", "couldNotReadPendingSyncs": "Kon nie hangende sinkronisasies lees nie. Probeer weer." + }, + "analysisState": { + "queued": "Ontleding in tou", + "queuedTitle": "Ontleding in tou", + "queuedDescription": "Wag vir ontledingskapasiteit om beskikbaar te word.", + "analyzing": "Besig om te ontleed", + "analyzingTitle": "Besig om te ontleed", + "analyzingDescription": "Kontroleer of toepassingskode die geraakte funksie kan bereik.", + "failed": "Ontleding misluk", + "failedTitle": "Ontleding misluk", + "failedDescription": "Security Agent kon nie die ontleding voltooi nie.", + "extractionFailed": "Benodig hersiening", + "extractionFailedTitle": "Benodig hersiening", + "extractionFailedDescription": "Die tegniese verslag kon nie in 'n gestruktureerde resultaat omskep word nie.", + "exploitable": "Uitbuitbaar", + "exploitableTitle": "Uitbuitbaar", + "exploitableDescription": "Toepassingskode kan die geraakte funksie bereik.", + "notExploitable": "Onbereikbaar", + "notExploitableTitle": "Onbereikbaar", + "notExploitableDescription": "Geen bereikbare pad is in hierdie bewaarplek gevind nie.", + "unknown": "Benodig hersiening", + "unknownTitle": "Benodig hersiening", + "unknownDescription": "Ontleding kon nie bevestig of die kwesbare funksie bereikbaar is nie.", + "safeToDismiss": "Veilig om te verwerp", + "safeToDismissTitle": "Veilig om te verwerp", + "safeToDismissDescription": "Triasie het bepaal dat dit veilig van die hand gemaak kan word sonder kodebasisontleding.", + "manualReview": "Benodig hersiening", + "manualReviewTitle": "Benodig handmatige hersiening", + "manualReviewDescription": "Triasie het hierdie bevinding vir handmatige hersiening gemerk.", + "analysisRequired": "Ontleding vereis", + "analysisRequiredTitle": "Kodebasisontleding vereis", + "analysisRequiredDescription": "Triasie beveel aan om die bewaarplek te ontleed voordat 'n reaksie besluit word.", + "completed": "Ontleed", + "completedTitle": "Ontleed", + "completedDescription": "Ontleding voltooi sonder dat 'n spesifieke uitkoms aangeteken is.", + "notAnalyzed": "Nie ontleed", + "notAnalyzedTitle": "Nie ontleed", + "notAnalyzedDescription": "Kodebasisontleding het nog nie vir hierdie bevinding geloop nie." + }, + "deadline": { + "fixedBeforeDeadline": "Voor sperdatum reggemaak", + "fixed": "Reggemaak", + "fixedOn": "Reggemaak {{date}}", + "resolutionRecorded": "Oplossing aangeteken", + "superseded": "Vervang", + "dismissed": "Verwerp", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Sperdatum nie gestel nie", + "noSlaDeadline": "Geen SLA-sperdatum nie", + "dueOn": "Verskuldig {{date}}", + "overdueNow": "Agterstallig", + "overdue_one": "{{count}} dag agterstallig", + "overdue_other": "{{count}} dae agterstallig", + "dueToday": "Vandag verskuldig", + "dueTomorrow": "Môre verskuldig", + "dueInDays_one": "Verskuldig oor {{count}} dag", + "dueInDays_other": "Verskuldig oor {{count}} dae", + "overdue": "{{count}} dae agterstallig", + "dueInDays": "Verskuldig oor {{count}} dae" + }, + "remediationStatus": { + "cancellationRequested": "Kansellasie versoek", + "notStarted": "Nie begin nie", + "queued": "In die tou", + "starting": "Besig om te begin", + "inProgress": "Aan die gang", + "draftPrOpened": "Konsep-PR geopen", + "prOpened": "PR geopen", + "blocked": "Geblokkeer", + "failed": "Misluk", + "noChangesNeeded": "Geen veranderinge nodig nie", + "cancelled": "Gekanselleer", + "originAutomaticPolicy": "Outomatiese beleid", + "originIncludeExistingPolicy": "Sluit bestaande beleid in", + "originManual": "Handmatig", + "validationCheck": "Valideringskontrole {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Die sekuriteitsbevinding bestaan nie meer nie.", + "approvalRequired": "Auto-regstelling vereis goedkeuring. Begin regstelling handmatig om dit goed te keur.", + "findingNotOpen": "Die bevinding is nie meer oop nie.", + "repoNotInScope": "Die bewaarplek is nie vir Security Agent gekies nie.", + "analysisRequired": "Loop kodebasisontleding voordat jy met regstelling begin.", + "sandboxAnalysisRequired": "Loop kodebasisontleding voordat jy met regstelling begin.", + "staleAnalysis": "Die bevinding het ná ontleding verander. Loop ontleding weer voordat jy met regstelling begin.", + "notExploitable": "Ontleding het geen bereikbare kwesbare pad gevind nie. Auto-regstelling is onbeskikbaar.", + "exploitabilityUnknown": "Ontleding kon nie uitbuitbaarheid bevestig nie. Handmatige hersiening word vereis voor een-klik-regstelling.", + "manualReviewRequired": "Ontleding beveel handmatige hersiening aan, dus is een-klik-regstelling onbeskikbaar.", + "monitorRequired": "Ontleding beveel monitering aan in plaas daarvan om 'n PR te open.", + "triageOnly": "Slegs triasie is voltooi. Loop kodebasisontleding voordat jy met regstelling begin.", + "actionNotConcrete": "Geen konkrete afhanklikheidspatch of voorgestelde regstelling is beskikbaar nie.", + "remediationActive": "'n Regstellingspoging is reeds aktief.", + "prAlreadyOpened": "'n Regstellings-PR is reeds oop.", + "duplicateAnalysisResult": "Hierdie ontledingsresultaat het reeds regstellingswerk opgelewer.", + "retryNotAllowed": "Herprobeer is nie vir hierdie poging beskikbaar nie.", + "securityAgentDisabled": "Security Agent is vir hierdie eienaar gedeaktiveer.", + "autoRemediationDisabled": "Auto-regstelling is gedeaktiveer. Handmatige regstelling kan steeds begin wanneer veiligheidshekke slaag.", + "includeExistingDisabled": "Bestaande bevindings word van outomatiese regstelling uitgesluit.", + "belowThreshold": "Die bevinding is onder die outomatiese ernsgraaddrempel. Handmatige regstelling kan steeds begin wanneer veiligheidshekke slaag.", + "beforeEnablement": "Ontleding is voltooi voordat Auto-regstelling geaktiveer is. Handmatige regstelling kan steeds begin wanneer veiligheidshekke slaag.", + "generic": "Regstelling is vir hierdie bevinding onbeskikbaar." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 1c8dac0f3f..35572ace71 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -512,7 +512,9 @@ "pendingComment_other": "በመጠባበቅ ላይ ያሉ አስተያየቶች", "submitCountOfTotal": "{{displayFreshCount}} ከ {{displayTotalCount}} አስተያየቶች አስገባ", "submitReview": "ግምገማ አስገባ", - "partialPostedMessage": "{{displayFreshCount}} አስተያየት(ዎች) ተለጥፈዋል። {{displayStaleCount}} አስተያየት(ዎች) ወደ አሮጌ መግባት ይጠቁማሉ እና በወረፋዎ ውስጥ ቀሩ።" + "partialPostedMessage": "{{displayFreshCount}} አስተያየት(ዎች) ተለጥፈዋል። {{displayStaleCount}} አስተያየት(ዎች) ወደ አሮጌ መግባት ይጠቁማሉ እና በወረፋዎ ውስጥ ቀሩ።", + "blockedRequestChanges": "ለውጦች ለመጠየቅ ማጠቃለያ ወይም ቢያንስ አንድ አስተያየት ያክሉ።", + "blockedComment": "የአስተያየት ግምገማ ለመለጠፍ ማጠቃለያ ወይም ቢያንስ አንድ አስተያየት ያክሉ።" }, "reconnectNotice": { "title": "የGitHub ግንኙነት ጊዜው አልፏል", @@ -1376,7 +1378,16 @@ }, "eyebrow": "የኮድ ገምጋሚ", "updateFailed": "ገምጋሚውን ማዘመን አልተሳካም", - "configSaveFailed": "የግምገማ ውቅርን ማስቀመጥ አልተሳካም" + "configSaveFailed": "የግምገማ ውቅርን ማስቀመጥ አልተሳካም", + "status": { + "pending": "በመጠበቅ ላይ", + "queued": "ተሰልፏል", + "running": "በስራ ላይ", + "completed": "ተጠናቀቀ", + "failed": "አልተሳካም", + "cancelled": "ተሰርዟል", + "interrupted": "ተቋርጧል" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "የምንጭ መዝገብ", "source": "ምንጭ", "sourceId": "የምንጭ መለያ", - "viewAdvisory": "በGitHub ላይ ምክርን ይመልከቱ" + "viewAdvisory": "በGitHub ላይ ምክርን ይመልከቱ", + "statusSuperseded": "ተተክቷል", + "statusFixed": "ተስተካክሏል", + "statusOpen": "ክፍት", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ጥገና አስቀድሞ ተጀምሯል", + "reasonNoBandwidth": "ምንም አቅም አይገኝም", + "reasonTolerableRisk": "አደጋው የሚቋቋም ነው", + "reasonInaccurate": "ግኝቱ ትክክለኛ አይደለም", + "reasonNotUsed": "የተጋላጭ ኮድ ጥቅም ላይ አይውልም", + "reasonAfterReview": "ከግምገማ በኋላ" }, "settingsOverview": { "title": "ቅንብሮች", @@ -1805,6 +1826,107 @@ "syncInProgress": "የደህንነት ማመሳሰል ቀድሞውኑ በሂደት ላይ ነው። እባክዎ እንደገና ይሞክሩ።", "dismissalInProgress": "ይህ ማስወገድ ቀድሞውኑ በሂደት ላይ ነው። እባክዎ እንደገና ይሞክሩ።", "couldNotReadPendingSyncs": "በመጠባበቅ ላይ ያሉ ማመሳሰሎችን ማንበብ አልተቻለም። እንደገና ይሞክሩ።" + }, + "analysisState": { + "queued": "ትንተናው ተሰልፏል", + "queuedTitle": "ትንተናው ተሰልፏል", + "queuedDescription": "የትንታኔ አቅም እስኪገኝ በመጠበቅ ላይ።", + "analyzing": "በመተንተን ላይ", + "analyzingTitle": "በመተንተን ላይ", + "analyzingDescription": "የመተግበሪያ ኮድ የተጎዳውን ባህሪ መድረስ ይችል እንደሆነ በመፈተሽ ላይ።", + "failed": "ትንተናው አልተሳካም", + "failedTitle": "ትንተናው አልተሳካም", + "failedDescription": "የደህንነት ወኪሉ ትንታኔውን ማጠናቀቅ አልቻለም።", + "extractionFailed": "መገምገም ያስፈልገዋል", + "extractionFailedTitle": "መገምገም ያስፈልገዋል", + "extractionFailedDescription": "የቴክኒክ ሪፖርቱ ወደ የተዋቀረ ውጤት ሊቀየር አልቻለም።", + "exploitable": "ሊበዘበዝ የሚችል", + "exploitableTitle": "ሊበዘበዝ የሚችል", + "exploitableDescription": "የመተግበሪያ ኮድ የተጎዳውን ባህሪ መድረስ ይችላል።", + "notExploitable": "ሊደረስበት የማይችል", + "notExploitableTitle": "ሊደረስበት የማይችል", + "notExploitableDescription": "በዚህ ማከማቻ ውስጥ ሊደረስበት የሚችል መንገድ አልተገኘም።", + "unknown": "መገምገም ያስፈልገዋል", + "unknownTitle": "መገምገም ያስፈልገዋል", + "unknownDescription": "ትንተናው ተጋላጩ ባህሪ መድረስ ይቻል እንደሆነ ማረጋገጥ አልቻለም።", + "safeToDismiss": "ለማሰናበት ደህና", + "safeToDismissTitle": "ለማሰናበት ደህና", + "safeToDismissDescription": "ትሪያጅ ያለ የኮድቤዝ ትንተና ይህ በደህና ሊወገድ እንደሚችል ወስኗል።", + "manualReview": "መገምገም ያስፈልገዋል", + "manualReviewTitle": "የእጅ ግምገማ ያስፈልገዋል", + "manualReviewDescription": "ትሪያጅ ይህን ግኝት ለእጅ ግምገማ ምልክት አድርጎታል።", + "analysisRequired": "ትንተና ያስፈልጋል", + "analysisRequiredTitle": "የኮድቤዝ ትንተና ያስፈልጋል", + "analysisRequiredDescription": "ትሪያጅ ምላሽ ከመወሰን በፊት ማከማቻውን እንዲተነትኑ ይመክራል።", + "completed": "ተተንትኗል", + "completedTitle": "ተተንትኗል", + "completedDescription": "ትንተናው ምንም የተለየ ውጤት ሳይመዘገብ ተጠናቋል።", + "notAnalyzed": "አልተተነተነም", + "notAnalyzedTitle": "አልተተነተነም", + "notAnalyzedDescription": "የኮድቤዝ ትንተና እስካሁን ለዚህ ግኝት አልተካሄደም።" + }, + "deadline": { + "fixedBeforeDeadline": "ከጊዜ ገደቡ በፊት ተስተካክሏል", + "fixed": "ተስተካክሏል", + "fixedOn": "{{date}} ተስተካክሏል", + "resolutionRecorded": "መፍትሄ ተመዝግቧል", + "superseded": "ተተክቷል", + "dismissed": "ተወግዷል", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "የጊዜ ገደብ አልተዘጋጀም", + "noSlaDeadline": "የSLA ጊዜ ገደብ የለም", + "dueOn": "{{date}} የሚደርስ", + "overdueNow": "ጊዜ ያለፈ", + "overdue_one": "{{count}} ቀን ዘግይቷል", + "overdue_other": "{{count}} ቀናት ዘግይቷል", + "dueToday": "ዛሬ ይደርሳል", + "dueTomorrow": "ነገ ይደርሳል", + "dueInDays_one": "በ{{count}} ቀን ውስጥ ይደርሳል", + "dueInDays_other": "በ{{count}} ቀናት ውስጥ ይደርሳል", + "overdue": "{{count}} ቀናት ዘግይቷል", + "dueInDays": "በ{{count}} ቀናት ውስጥ ይደርሳል" + }, + "remediationStatus": { + "cancellationRequested": "ስረዛ ተጠይቋል", + "notStarted": "አልተጀመረም", + "queued": "ተሰልፏል", + "starting": "በመጀመር ላይ", + "inProgress": "በሂደት ላይ", + "draftPrOpened": "ረቂቅ PR ተከፍቷል", + "prOpened": "PR ተከፍቷል", + "blocked": "ታግዷል", + "failed": "አልተሳካም", + "noChangesNeeded": "ምንም ለውጥ አያስፈልግም", + "cancelled": "ተሰርዟል", + "originAutomaticPolicy": "ራስ-ሰር ፖሊሲ", + "originIncludeExistingPolicy": "ያሉትን ፖሊሲ ያካትቱ", + "originManual": "በእጅ", + "validationCheck": "የማረጋገጫ ምርመራ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "የደህንነት ግኝቱ ከእንግዲህ የለም።", + "approvalRequired": "ራስ-ሰር ጥገና ማጽደቅ ይፈልጋል። ለማጽደቅ ጥገናውን በእጅ ይጀምሩ።", + "findingNotOpen": "ግኝቱ ከእንግዲህ ክፍት አይደለም።", + "repoNotInScope": "ማከማቻው ለደህንነት ወኪሉ አልተመረጠም።", + "analysisRequired": "ጥገና ከመጀመርዎ በፊት የኮድቤዝ ትንተናን ያስኬዱ።", + "sandboxAnalysisRequired": "ጥገና ከመጀመርዎ በፊት የኮድቤዝ ትንተናን ያስኬዱ።", + "staleAnalysis": "ከትንታኔ በኋላ ግኝቱ ተለውጧል። ጥገና ከመጀመርዎ በፊት ትንታኔውን እንደገና ያስኬዱ።", + "notExploitable": "ትንተናው ሊደረስበት የሚችል የተጋላጭ መንገድ አላገኘም። ራስ-ሰር ጥገና አይገኝም።", + "exploitabilityUnknown": "ትንተናው ተጠቃሚነትን ማረጋገጥ አልቻለም። በአንድ ጠቅታ ጥገና ከመደረጉ በፊት የእጅ ግምገማ ያስፈልጋል።", + "manualReviewRequired": "ትንተናው የእጅ ግምገማን ይመክራል፣ ስለዚህ በአንድ ጠቅታ ጥገና አይገኝም።", + "monitorRequired": "ትንተናው PR ከመክፈት ይልቅ ክትትልን ይመክራል።", + "triageOnly": "ትሪያጅ ብቻ ተጠናቋል። ጥገና ከመጀመርዎ በፊት የኮድቤዝ ትንተናን ያስኬዱ።", + "actionNotConcrete": "ምንም ተጨባጭ የጥገኛ ፓቼች ወይም የተጠቆመ ጥገና የለም።", + "remediationActive": "የጥገና ሙከራ አስቀድሞ በሂደት ላይ ነው።", + "prAlreadyOpened": "የጥገና PR አስቀድሞ ክፍት ነው።", + "duplicateAnalysisResult": "ይህ የትንታኔ ውጤት አስቀድሞ የጥገና ሥራ አፍርቷል።", + "retryNotAllowed": "ለዚህ ሙከራ ዳግም መሞከር አይገኝም።", + "securityAgentDisabled": "የደህንነት ወኪሉ ለዚህ ባለቤት ተሰናክሏል።", + "autoRemediationDisabled": "ራስ-ሰር ጥገና ተሰናክሏል። የደህንነት መከላከያ በሮች ሲያልፉ የእጅ ጥገና አሁንም ሊጀመር ይችላል።", + "includeExistingDisabled": "ያሉት ግኝቶች ከራስ-ሰር ጥገና ተገልለዋል።", + "belowThreshold": "ግኝቱ ከራስ-ሰር ክብደት ደረጃ በታች ነው። የደህንነት መከላከያ በሮች ሲያልፉ የእጅ ጥገና አሁንም ሊጀመር ይችላል።", + "beforeEnablement": "ራስ-ሰር ጥገና ከመንቃቱ በፊት ትንተናው ተጠናቋል። የደህንነት መከላከያ በሮች ሲያልፉ የእጅ ጥገና አሁንም ሊጀመር ይችላል።", + "generic": "ለዚህ ግኝት ጥገና አይገኝም።" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 83a312dd9e..6c57440b05 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -947,7 +947,16 @@ "set": "تم التعيين" }, "updateFailed": "فشل تحديث المراجع", - "configSaveFailed": "فشل حفظ إعداد المراجعة" + "configSaveFailed": "فشل حفظ إعداد المراجعة", + "status": { + "pending": "قيد الانتظار", + "queued": "في قائمة الانتظار", + "running": "قيد التشغيل", + "completed": "مكتمل", + "failed": "فشل", + "cancelled": "تم الإلغاء", + "interrupted": "تمت المقاطعة" + } }, "securityAgent": { "filter": { @@ -1197,7 +1206,17 @@ "unknown": "غير معروف", "updated": "تم التحديث", "viewAdvisory": "عرض الاستشارة على GitHub", - "vulnerableVersions": "الإصدارات المعرّضة للثغرات" + "vulnerableVersions": "الإصدارات المعرّضة للثغرات", + "statusSuperseded": "مستبدلة", + "statusFixed": "تم الإصلاح", + "statusOpen": "مفتوح", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "بدأ الإصلاح بالفعل", + "reasonNoBandwidth": "لا توجد قدرة متاحة", + "reasonTolerableRisk": "المخاطرة مقبولة", + "reasonInaccurate": "النتيجة غير دقيقة", + "reasonNotUsed": "الكود المعرّض للثغرات غير مستخدم", + "reasonAfterReview": "بعد المراجعة" }, "findingList": { "clearFilters": "مسح عوامل التصفية", @@ -1384,6 +1403,115 @@ "syncInProgress": "مزامنة الأمان قيد التقدم بالفعل. يرجى المحاولة مرة أخرى.", "dismissalInProgress": "هذا الرفض قيد التقدم بالفعل. يرجى المحاولة مرة أخرى.", "couldNotReadPendingSyncs": "تعذّرت قراءة المزامنات المعلقة. حاول مرة أخرى." + }, + "analysisState": { + "queued": "التحليل في قائمة الانتظار", + "queuedTitle": "التحليل في قائمة الانتظار", + "queuedDescription": "في انتظار توفر سعة التحليل.", + "analyzing": "جارٍ التحليل", + "analyzingTitle": "جارٍ التحليل", + "analyzingDescription": "التحقق مما إذا كان كود التطبيق يمكنه الوصول إلى الميزة المتأثرة.", + "failed": "فشل التحليل", + "failedTitle": "فشل التحليل", + "failedDescription": "لم يتمكن وكيل الأمان من إكمال التحليل.", + "extractionFailed": "يحتاج إلى مراجعة", + "extractionFailedTitle": "يحتاج إلى مراجعة", + "extractionFailedDescription": "تعذّر تحويل التقرير الفني إلى نتيجة منظمة.", + "exploitable": "قابل للاستغلال", + "exploitableTitle": "قابل للاستغلال", + "exploitableDescription": "يمكن لكود التطبيق الوصول إلى الميزة المتأثرة.", + "notExploitable": "غير قابل للوصول", + "notExploitableTitle": "غير قابل للوصول", + "notExploitableDescription": "لم يتم العثور على مسار يمكن الوصول إليه في هذا المستودع.", + "unknown": "يحتاج إلى مراجعة", + "unknownTitle": "يحتاج إلى مراجعة", + "unknownDescription": "لم يتمكن التحليل من تأكيد ما إذا كانت الميزة المعرضة للثغرات قابلة للوصول.", + "safeToDismiss": "آمن للرفض", + "safeToDismissTitle": "آمن للرفض", + "safeToDismissDescription": "حدد الفرز أنه يمكن رفض هذا بأمان دون تحليل قاعدة الكود.", + "manualReview": "يحتاج إلى مراجعة", + "manualReviewTitle": "يحتاج إلى مراجعة يدوية", + "manualReviewDescription": "أشار الفرز إلى أن هذه النتيجة تحتاج إلى مراجعة يدوية.", + "analysisRequired": "التحليل مطلوب", + "analysisRequiredTitle": "يلزم تحليل قاعدة الكود", + "analysisRequiredDescription": "يوصي الفرز بتحليل المستودع قبل اتخاذ قرار بشأن الرد.", + "completed": "تم التحليل", + "completedTitle": "تم التحليل", + "completedDescription": "اكتمل التحليل دون تسجيل نتيجة محددة.", + "notAnalyzed": "لم يتم تحليله", + "notAnalyzedTitle": "لم يتم تحليله", + "notAnalyzedDescription": "لم يتم إجراء تحليل قاعدة الكود لهذه النتيجة بعد." + }, + "deadline": { + "fixedBeforeDeadline": "تم الإصلاح قبل الموعد النهائي", + "fixed": "تم الإصلاح", + "fixedOn": "تم الإصلاح في {{date}}", + "resolutionRecorded": "تم تسجيل الحل", + "superseded": "مستبدلة", + "dismissed": "مرفوض", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "الموعد النهائي غير محدد", + "noSlaDeadline": "لا يوجد موعد نهائي لـ SLA", + "dueOn": "مستحق في {{date}}", + "overdueNow": "متأخر", + "overdue_zero": "متأخر {{count}} يوم", + "overdue_one": "متأخر {{count}} يوم", + "overdue_two": "متأخر {{count}} يومين", + "overdue_few": "متأخر {{count}} أيام", + "overdue_many": "متأخر {{count}} يومًا", + "overdue_other": "متأخر {{count}} يومًا", + "dueToday": "مستحق اليوم", + "dueTomorrow": "مستحق غدًا", + "dueInDays_zero": "مستحق خلال {{count}} يوم", + "dueInDays_one": "مستحق خلال {{count}} يوم", + "dueInDays_two": "مستحق خلال {{count}} يومين", + "dueInDays_few": "مستحق خلال {{count}} أيام", + "dueInDays_many": "مستحق خلال {{count}} يومًا", + "dueInDays_other": "مستحق خلال {{count}} يومًا", + "overdue": "متأخر {{count}} يومًا", + "dueInDays": "مستحق خلال {{count}} يومًا" + }, + "remediationStatus": { + "cancellationRequested": "تم طلب الإلغاء", + "notStarted": "لم يبدأ", + "queued": "في قائمة الانتظار", + "starting": "جارٍ البدء", + "inProgress": "قيد التنفيذ", + "draftPrOpened": "تم فتح مسودة طلب سحب", + "prOpened": "تم فتح طلب السحب", + "blocked": "محظور", + "failed": "فشل", + "noChangesNeeded": "لا حاجة إلى تغييرات", + "cancelled": "تم الإلغاء", + "originAutomaticPolicy": "سياسة تلقائية", + "originIncludeExistingPolicy": "تضمين السياسة الحالية", + "originManual": "يدوي", + "validationCheck": "فحص التحقق {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "لم تعد نتيجة الأمان موجودة.", + "approvalRequired": "تتطلب المعالجة التلقائية موافقة. ابدأ المعالجة يدويًا للموافقة عليها.", + "findingNotOpen": "النتيجة لم تعد مفتوحة.", + "repoNotInScope": "المستودع غير محدد لوكيل الأمان.", + "analysisRequired": "شغّل تحليل قاعدة الكود قبل بدء المعالجة.", + "sandboxAnalysisRequired": "شغّل تحليل قاعدة الكود قبل بدء المعالجة.", + "staleAnalysis": "تغيّرت النتيجة بعد التحليل. أعد تشغيل التحليل قبل بدء المعالجة.", + "notExploitable": "لم يعثر التحليل على مسار ضعيف يمكن الوصول إليه. المعالجة التلقائية غير متاحة.", + "exploitabilityUnknown": "لم يتمكن التحليل من تأكيد قابلية الاستغلال. المراجعة اليدوية مطلوبة قبل المعالجة بنقرة واحدة.", + "manualReviewRequired": "يوصي التحليل بمراجعة يدوية، لذا فإن المعالجة بنقرة واحدة غير متاحة.", + "monitorRequired": "يوصي التحليل بالمراقبة بدلًا من فتح طلب سحب.", + "triageOnly": "اكتمل الفرز فقط. شغّل تحليل قاعدة الكود قبل بدء المعالجة.", + "actionNotConcrete": "لا يتوفر تصحيح تبعية محدد أو إصلاح مقترح.", + "remediationActive": "محاولة معالجة نشطة بالفعل.", + "prAlreadyOpened": "طلب سحب للمعالجة مفتوح بالفعل.", + "duplicateAnalysisResult": "أنتجت نتيجة التحليل هذه أعمال معالجة بالفعل.", + "retryNotAllowed": "إعادة المحاولة غير متاحة لهذه المحاولة.", + "securityAgentDisabled": "وكيل الأمان معطّل لهذا المالك.", + "autoRemediationDisabled": "المعالجة التلقائية معطّلة. لا تزال المعالجة اليدوية قابلة للبدء عند اجتياز بوابات الأمان.", + "includeExistingDisabled": "تُستبعد النتائج الحالية من المعالجة التلقائية.", + "belowThreshold": "النتيجة أقل من حد الخطورة التلقائي. لا تزال المعالجة اليدوية قابلة للبدء عند اجتياز بوابات الأمان.", + "beforeEnablement": "اكتمل التحليل قبل تمكين المعالجة التلقائية. لا تزال المعالجة اليدوية قابلة للبدء عند اجتياز بوابات الأمان.", + "generic": "المعالجة غير متاحة لهذه النتيجة." } }, "agents": { @@ -2711,7 +2839,9 @@ "pendingComment_zero": "لا تعليقات معلّقة", "pendingComment_two": "تعليقان معلّقان", "pendingComment_few": "تعليقات معلّقة", - "pendingComment_many": "تعليقًا معلّقًا" + "pendingComment_many": "تعليقًا معلّقًا", + "blockedRequestChanges": "أضف ملخصًا أو تعليقًا واحدًا على الأقل لطلب تغييرات.", + "blockedComment": "أضف ملخصًا أو تعليقًا واحدًا على الأقل لنشر مراجعة تعليقات." }, "fileStatus": { "added": "مضاف", diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index 00dbb4b74f..8f961424b6 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -512,7 +512,9 @@ "pendingComment_other": "gözləyən şərhlər", "submitCountOfTotal": "{{displayTotalCount}} şərhlərdən {{displayFreshCount}} təqdim edin", "submitReview": "İcmalı təqdim et", - "partialPostedMessage": "{{displayFreshCount}} şərh yerləşdirildi. {{displayStaleCount}} şərh köhnə commit-ə işarə edir və növbənizdə qaldı." + "partialPostedMessage": "{{displayFreshCount}} şərh yerləşdirildi. {{displayStaleCount}} şərh köhnə commit-ə işarə edir və növbənizdə qaldı.", + "blockedRequestChanges": "Dəyişiklik tələb etmək üçün xülasə və ya ən azı bir şərh əlavə edin.", + "blockedComment": "Şərh icmalı yerləşdirmək üçün xülasə və ya ən azı bir şərh əlavə edin." }, "reconnectNotice": { "title": "GitHub bağlantısı bitdi", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "İcmalçı yenilənə bilmədi", - "configSaveFailed": "İcmal konfiqurasiyası saxlanıla bilmədi" + "configSaveFailed": "İcmal konfiqurasiyası saxlanıla bilmədi", + "status": { + "pending": "Gözlənilir", + "queued": "Növbəyə alınıb", + "running": "İşləyir", + "completed": "Tamamlandı", + "failed": "Uğursuz", + "cancelled": "Ləğv edildi", + "interrupted": "Kəsildi" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Mənbə qeydi", "source": "Mənbə", "sourceId": "Mənbə ID", - "viewAdvisory": "GitHub-da məsləhəti görün" + "viewAdvisory": "GitHub-da məsləhəti görün", + "statusSuperseded": "Əvəz edilib", + "statusFixed": "Düzəldilib", + "statusOpen": "Açıq", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "düzəliş artıq başlayıb", + "reasonNoBandwidth": "bant genişliyi mövcud deyil", + "reasonTolerableRisk": "risk məqbuldur", + "reasonInaccurate": "tapıntı dəqiq deyil", + "reasonNotUsed": "həssas kod istifadə olunmur", + "reasonAfterReview": "icmaldan sonra" }, "settingsOverview": { "title": "Parametrlər", @@ -1805,6 +1826,107 @@ "syncInProgress": "Təhlükəsizlik sinxronlaşdırması artıq davam edir. Zəhmət olmasa yenidən cəhd edin.", "dismissalInProgress": "Bu rədd artıq davam edir. Zəhmət olmasa yenidən cəhd edin.", "couldNotReadPendingSyncs": "Gözləyən sinxronlaşdırmalar oxuna bilmədi. Yenidən cəhd edin." + }, + "analysisState": { + "queued": "Analiz növbəyə alınıb", + "queuedTitle": "Analiz növbəyə alınıb", + "queuedDescription": "Analiz tutumunun mövcud olması gözlənilir.", + "analyzing": "Təhlil edilir", + "analyzingTitle": "Təhlil edilir", + "analyzingDescription": "Tətbiq kodunun təsirlənmiş funksiyaya çata biləcəyi yoxlanılır.", + "failed": "Analiz uğursuz oldu", + "failedTitle": "Analiz uğursuz oldu", + "failedDescription": "Security Agent analizi tamamlaya bilmədi.", + "extractionFailed": "Nəzərdən keçirilməlidir", + "extractionFailedTitle": "Nəzərdən keçirilməlidir", + "extractionFailedDescription": "Texniki hesabat strukturlaşdırılmış nəticəyə çevrilə bilmədi.", + "exploitable": "İstismar edilə bilən", + "exploitableTitle": "İstismar edilə bilən", + "exploitableDescription": "Tətbiq kodu təsirlənmiş funksiyaya çata bilər.", + "notExploitable": "Çatıla bilməz", + "notExploitableTitle": "Çatıla bilməz", + "notExploitableDescription": "Bu repozitoriyada çatıla bilən yol tapılmadı.", + "unknown": "Nəzərdən keçirilməlidir", + "unknownTitle": "Nəzərdən keçirilməlidir", + "unknownDescription": "Analiz həssas funksiyaya çatıla biləcəyini təsdiqləyə bilmədi.", + "safeToDismiss": "Silinməsi təhlükəsizdir", + "safeToDismissTitle": "Silinməsi təhlükəsizdir", + "safeToDismissDescription": "Triaj kod bazası analizi olmadan bunun təhlükəsiz şəkildə rədd edilə biləcəyini müəyyənləşdirdi.", + "manualReview": "Nəzərdən keçirilməlidir", + "manualReviewTitle": "Əl ilə icmal tələb olunur", + "manualReviewDescription": "Triaj bu tapıntını əl ilə icmal üçün qeyd etdi.", + "analysisRequired": "Analiz tələb olunur", + "analysisRequiredTitle": "Kod bazası analizi tələb olunur", + "analysisRequiredDescription": "Triaj cavab qərarı verməzdən əvvəl repozitoriyanın analiz edilməsini tövsiyə edir.", + "completed": "Analiz edilib", + "completedTitle": "Analiz edilib", + "completedDescription": "Analiz xüsusi nəticə qeyd edilmədən tamamlandı.", + "notAnalyzed": "Analiz edilməyib", + "notAnalyzedTitle": "Analiz edilməyib", + "notAnalyzedDescription": "Kod bazası analizi bu tapıntı üçün hələ aparılmayıb." + }, + "deadline": { + "fixedBeforeDeadline": "Müddətdən əvvəl düzəldilib", + "fixed": "Düzəldilib", + "fixedOn": "{{date}} tarixində düzəldilib", + "resolutionRecorded": "Həll qeydə alınıb", + "superseded": "Əvəz edilib", + "dismissed": "Rədd edilib", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Müddət təyin edilməyib", + "noSlaDeadline": "SLA müddəti yoxdur", + "dueOn": "{{date}} tarixində bitir", + "overdueNow": "Gecikib", + "overdue_one": "{{count}} gün gecikib", + "overdue_other": "{{count}} gün gecikib", + "dueToday": "Bu gün bitir", + "dueTomorrow": "Sabah bitir", + "dueInDays_one": "{{count}} günə bitir", + "dueInDays_other": "{{count}} günə bitir", + "overdue": "{{count}} gün gecikib", + "dueInDays": "{{count}} günə bitir" + }, + "remediationStatus": { + "cancellationRequested": "Ləğv tələb edildi", + "notStarted": "Başlamayıb", + "queued": "Növbəyə alınıb", + "starting": "Başladılır", + "inProgress": "Davam edir", + "draftPrOpened": "Qaralama PR açıldı", + "prOpened": "PR açıldı", + "blocked": "Bloklanıb", + "failed": "Uğursuz", + "noChangesNeeded": "Dəyişiklik lazım deyil", + "cancelled": "Ləğv edildi", + "originAutomaticPolicy": "Avtomatik siyasət", + "originIncludeExistingPolicy": "Mövcud siyasəti daxil et", + "originManual": "Əl ilə", + "validationCheck": "Doğrulama yoxlaması {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Təhlükəsizlik tapıntısı artıq mövcud deyil.", + "approvalRequired": "Avtomatik düzəltmə təsdiq tələb edir. Təsdiqləmək üçün düzəltməyə əl ilə başlayın.", + "findingNotOpen": "Tapıntı artıq açıq deyil.", + "repoNotInScope": "Repozitoriya Security Agent üçün seçilməyib.", + "analysisRequired": "Düzəltməyə başlamazdan əvvəl kod bazası analizini işə salın.", + "sandboxAnalysisRequired": "Düzəltməyə başlamazdan əvvəl kod bazası analizini işə salın.", + "staleAnalysis": "Analizdən sonra tapıntı dəyişdi. Düzəltməyə başlamazdan əvvəl analizi yenidən işə salın.", + "notExploitable": "Analiz çatıla bilən həssas yol tapmadı. Avtomatik düzəltmə mövcud deyil.", + "exploitabilityUnknown": "Analiz istismar edilə bilməni təsdiqləyə bilmədi. Bir kliklə düzəltmədən əvvəl əl ilə icmal tələb olunur.", + "manualReviewRequired": "Analiz əl ilə icmal tövsiyə edir, buna görə bir kliklə düzəltmə mövcud deyil.", + "monitorRequired": "Analiz PR açmaq əvəzinə monitorinq tövsiyə edir.", + "triageOnly": "Yalnız triaj tamamlanıb. Düzəltməyə başlamazdan əvvəl kod bazası analizini işə salın.", + "actionNotConcrete": "Konkret asılılıq yaması və ya təklif olunan düzəliş mövcud deyil.", + "remediationActive": "Düzəltmə cəhdi artıq aktivdir.", + "prAlreadyOpened": "Düzəltmə PR-i artıq açıqdır.", + "duplicateAnalysisResult": "Bu analiz nəticəsi artıq düzəltmə işi istehsal edib.", + "retryNotAllowed": "Bu cəhd üçün yenidən cəhd mövcud deyil.", + "securityAgentDisabled": "Security Agent bu sahib üçün deaktiv edilib.", + "autoRemediationDisabled": "Avtomatik düzəltmə deaktiv edilib. Təhlükəsizlik qapıları keçəndə əl ilə düzəltmə hələ də başlaya bilər.", + "includeExistingDisabled": "Mövcud tapıntılar avtomatik düzəltmədən xaric edilib.", + "belowThreshold": "Tapıntı avtomatik şiddət həddindən aşağıdır. Təhlükəsizlik qapıları keçəndə əl ilə düzəltmə hələ də başlaya bilər.", + "beforeEnablement": "Avtomatik düzəltmə aktivləşdirilməzdən əvvəl analiz tamamlanıb. Təhlükəsizlik qapıları keçəndə əl ilə düzəltmə hələ də başlaya bilər.", + "generic": "Bu tapıntı üçün düzəltmə mövcud deyil." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index 2fa5341b9c..26fa4582f9 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -522,7 +522,9 @@ "submitReview": "Адправіць рэцэнзію", "partialPostedMessage": "Адпраўлена {{displayFreshCount}} каментар(аў). {{displayStaleCount}} каментар(аў) адносяцца да старэйшага каміта і засталіся ў вашай чарзе.", "pendingComment_few": "чакаючых каментары", - "pendingComment_many": "чакаючых каментароў" + "pendingComment_many": "чакаючых каментароў", + "blockedRequestChanges": "Дадайце рэзюмэ або хаця б адзін каментар, каб запытаць змены.", + "blockedComment": "Дадайце рэзюмэ або хаця б адзін каментар, каб адправіць каментарную рэцэнзію." }, "reconnectNotice": { "title": "Тэрмін злучэння з GitHub скончыўся", @@ -1394,7 +1396,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Не атрымалася абнавіць рэцэнзента", - "configSaveFailed": "Не атрымалася захаваць канфігурацыю рэцэнзіі" + "configSaveFailed": "Не атрымалася захаваць канфігурацыю рэцэнзіі", + "status": { + "pending": "Чакае", + "queued": "У чарзе", + "running": "Выконваецца", + "completed": "Завершана", + "failed": "Не атрымалася", + "cancelled": "Адменена", + "interrupted": "Перапынена" + } }, "securityAgent": { "filter": { @@ -1597,7 +1608,17 @@ "sourceRecord": "Зыходны запіс", "source": "Крыніца", "sourceId": "Ідэнтыфікатар крыніцы", - "viewAdvisory": "Паглядзець апавяшчэнне на GitHub" + "viewAdvisory": "Паглядзець апавяшчэнне на GitHub", + "statusSuperseded": "Заменена", + "statusFixed": "Выпраўлена", + "statusOpen": "Адкрыта", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Выпраўленне ўжо пачалося", + "reasonNoBandwidth": "Няма даступнай магчымасці", + "reasonTolerableRisk": "Рызыка прымальная", + "reasonInaccurate": "Знаходка недакладная", + "reasonNotUsed": "Уразлівы код не выкарыстоўваецца", + "reasonAfterReview": "Пасля праверкі" }, "settingsOverview": { "title": "Налады", @@ -1827,6 +1848,111 @@ "syncInProgress": "Сінхранізацыя бяспекі ўжо выконваецца. Паспрабуйце яшчэ раз.", "dismissalInProgress": "Гэтае адхіленне ўжо выконваецца. Паспрабуйце яшчэ раз.", "couldNotReadPendingSyncs": "Не атрымалася прачытаць чакаючыя сінхранізацыі. Паспрабуйце яшчэ раз." + }, + "analysisState": { + "queued": "Аналіз пастаўлены ў чаргу", + "queuedTitle": "Аналіз пастаўлены ў чаргу", + "queuedDescription": "Чаканне вызвалення ёмістасці аналізу.", + "analyzing": "Аналіз", + "analyzingTitle": "Аналіз", + "analyzingDescription": "Праверка, ці можа код праграмы дасягнуць пацярпелага кампанента.", + "failed": "Аналіз правалены", + "failedTitle": "Аналіз правалены", + "failedDescription": "Security Agent не змог завяршыць аналіз.", + "extractionFailed": "Патрабуе праверкі", + "extractionFailedTitle": "Патрабуе праверкі", + "extractionFailedDescription": "Тэхнічную справаздачу не атрымалася пераўтварыць у структураваны вынік.", + "exploitable": "Выкарыстоўвальная", + "exploitableTitle": "Выкарыстоўвальная", + "exploitableDescription": "Код праграмы можа дасягнуць пацярпелага кампанента.", + "notExploitable": "Недасягальная", + "notExploitableTitle": "Недасягальная", + "notExploitableDescription": "У гэтым рэпазіторыі не знойдзены дасягальны шлях.", + "unknown": "Патрабуе праверкі", + "unknownTitle": "Патрабуе праверкі", + "unknownDescription": "Аналіз не змог пацвердзіць, ці дасягальны ўразлівы кампанент.", + "safeToDismiss": "Бяспечна адхіліць", + "safeToDismissTitle": "Бяспечна адхіліць", + "safeToDismissDescription": "Трыяж вызначыў, што гэта можна бяспечна адхіліць без аналізу кодавай базы.", + "manualReview": "Патрабуе праверкі", + "manualReviewTitle": "Патрабуе ручной праверкі", + "manualReviewDescription": "Трыяж пазначыў гэтую знаходку для ручной праверкі.", + "analysisRequired": "Патрабуецца аналіз", + "analysisRequiredTitle": "Патрабуецца аналіз кодавай базы", + "analysisRequiredDescription": "Трыяж рэкамендуе прааналізаваць рэпазіторый перад вызначэннем адказу.", + "completed": "Прааналізавана", + "completedTitle": "Прааналізавана", + "completedDescription": "Аналіз завершаны без зафіксаванага канкрэтнага выніку.", + "notAnalyzed": "Не прааналізавана", + "notAnalyzedTitle": "Не прааналізавана", + "notAnalyzedDescription": "Аналіз кодавай базы для гэтай знаходкі яшчэ не праводзіўся." + }, + "deadline": { + "fixedBeforeDeadline": "Выпраўлена да тэрміну", + "fixed": "Выпраўлена", + "fixedOn": "Выпраўлена {{date}}", + "resolutionRecorded": "Рашэнне зафіксавана", + "superseded": "Заменена", + "dismissed": "Адхілена", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Тэрмін не ўстаноўлены", + "noSlaDeadline": "Тэрмін SLA не прызначаны", + "dueOn": "Тэрмін: {{date}}", + "overdueNow": "Пратэрмінавана", + "overdue_one": "{{count}} дзень пратэрмінавана", + "overdue_few": "{{count}} дні пратэрмінавана", + "overdue_many": "{{count}} дзён пратэрмінавана", + "overdue_other": "{{count}} дзён пратэрмінавана", + "dueToday": "Тэрмін сёння", + "dueTomorrow": "Тэрмін заўтра", + "dueInDays_one": "Праз {{count}} дзень", + "dueInDays_few": "Праз {{count}} дні", + "dueInDays_many": "Праз {{count}} дзён", + "dueInDays_other": "Праз {{count}} дзён", + "overdue": "{{count}} дзён пратэрмінавана", + "dueInDays": "Праз {{count}} дзён" + }, + "remediationStatus": { + "cancellationRequested": "Запытана адмена", + "notStarted": "Не пачата", + "queued": "У чарзе", + "starting": "Запуск", + "inProgress": "Выконваецца", + "draftPrOpened": "Адкрыты чарнавік PR", + "prOpened": "PR адкрыты", + "blocked": "Заблакіравана", + "failed": "Не атрымалася", + "noChangesNeeded": "Змены не патрэбныя", + "cancelled": "Адменена", + "originAutomaticPolicy": "Аўтаматычная палітыка", + "originIncludeExistingPolicy": "Уключыць існуючую палітыку", + "originManual": "Уручную", + "validationCheck": "Праверка валіднасці {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Знаходка па бяспецы больш не існуе.", + "approvalRequired": "Аўтавыпраўленне патрабуе ўхвалення. Запусціце выпраўленне ўручную, каб ухваліць яго.", + "findingNotOpen": "Знаходка больш не адкрытая.", + "repoNotInScope": "Рэпазіторый не выбраны для Security Agent.", + "analysisRequired": "Запусціце аналіз кодавай базы перад пачаткам выпраўлення.", + "sandboxAnalysisRequired": "Запусціце аналіз кодавай базы перад пачаткам выпраўлення.", + "staleAnalysis": "Знаходка змянілася пасля аналізу. Паўторна запусціце аналіз перад пачаткам выпраўлення.", + "notExploitable": "Аналіз не знайшоў дасягальнага ўразлівага шляху. Аўтавыпраўленне недаступна.", + "exploitabilityUnknown": "Аналіз не змог пацвердзіць эксплуатуемасць. Перад выпраўленнем у адзін клік патрабуецца ручная праверка.", + "manualReviewRequired": "Аналіз рэкамендуе ручную праверку, таму выпраўленне ў адзін клік недаступна.", + "monitorRequired": "Аналіз рэкамендуе маніторынг замест адкрыцця PR.", + "triageOnly": "Завершаны толькі трыяж. Запусціце аналіз кодавай базы перад пачаткам выпраўлення.", + "actionNotConcrete": "Няма канкрэтнага патча для залежнасці або прапанаванага выпраўлення.", + "remediationActive": "Спроба выпраўлення ўжо актыўная.", + "prAlreadyOpened": "PR выпраўлення ўжо адкрыты.", + "duplicateAnalysisResult": "Гэты вынік аналізу ўжо стварыў працу па выпраўленні.", + "retryNotAllowed": "Паўтор недаступны для гэтай спробы.", + "securityAgentDisabled": "Security Agent выключаны для гэтага ўладальніка.", + "autoRemediationDisabled": "Аўтавыпраўленне выключана. Ручнае выпраўленне ўсё яшчэ можна пачаць, калі праверкі бяспекі пройдуць.", + "includeExistingDisabled": "Існуючыя знаходкі выключаны з аўтаматычнага выпраўлення.", + "belowThreshold": "Знаходка ніжэй аўтаматычнага парога сур'ёзнасці. Ручнае выпраўленне ўсё яшчэ можна пачаць, калі праверкі бяспекі пройдуць.", + "beforeEnablement": "Аналіз завершаны да ўключэння аўтавыпраўлення. Ручнае выпраўленне ўсё яшчэ можна пачаць, калі праверкі бяспекі пройдуць.", + "generic": "Выпраўленне недаступна для гэтай знаходкі." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index e7d8294703..1680680f24 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -512,7 +512,9 @@ "pendingComment_other": "чакащи коментари", "submitCountOfTotal": "Изпрати {{displayFreshCount}} от {{displayTotalCount}} коментара", "submitReview": "Изпрати прегледа", - "partialPostedMessage": "Публикувахме {{displayFreshCount}} коментара. {{displayStaleCount}} коментара сочат към по-стар commit и останаха в опашката ви." + "partialPostedMessage": "Публикувахме {{displayFreshCount}} коментара. {{displayStaleCount}} коментара сочат към по-стар commit и останаха в опашката ви.", + "blockedRequestChanges": "Добавете обобщение или поне един коментар, за да поискате промени.", + "blockedComment": "Добавете обобщение или поне един коментар, за да изпратите преглед с коментар." }, "reconnectNotice": { "title": "GitHub връзката изтече", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Преглеждащ на кода", "updateFailed": "Не можахме да актуализираме рецензента", - "configSaveFailed": "Не можахме да запазим конфигурацията на прегледа" + "configSaveFailed": "Не можахме да запазим конфигурацията на прегледа", + "status": { + "pending": "В изчакване", + "queued": "В опашка", + "running": "Изпълнява се", + "completed": "Завършено", + "failed": "Неуспешно", + "cancelled": "Отменено", + "interrupted": "Прекъснато" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Изходен запис", "source": "Източник", "sourceId": "ID на източника", - "viewAdvisory": "Прегледай съветника в GitHub" + "viewAdvisory": "Прегледай съветника в GitHub", + "statusSuperseded": "Заместено", + "statusFixed": "Коригирано", + "statusOpen": "Отворено", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Корекция вече е започната", + "reasonNoBandwidth": "Няма наличен капацитет", + "reasonTolerableRisk": "Рискът е приемлив", + "reasonInaccurate": "Откритието е неточно", + "reasonNotUsed": "Уязвимият код не се използва", + "reasonAfterReview": "След преглед" }, "settingsOverview": { "title": "Настройки", @@ -1805,6 +1826,107 @@ "syncInProgress": "Синхронизация за сигурност вече е в процес. Моля, опитайте отново.", "dismissalInProgress": "Това отхвърляне вече е в процес. Моля, опитайте отново.", "couldNotReadPendingSyncs": "Не можахме да прочетем чакащите синхронизации. Опитайте отново." + }, + "analysisState": { + "queued": "Анализът е в опашка", + "queuedTitle": "Анализът е в опашка", + "queuedDescription": "Изчакваме капацитет за анализ да стане наличен.", + "analyzing": "Анализиране", + "analyzingTitle": "Анализиране", + "analyzingDescription": "Проверяваме дали кодът на приложението може да достигне до засегнатата функция.", + "failed": "Анализът е неуспешен", + "failedTitle": "Анализът е неуспешен", + "failedDescription": "Security Agent не можа да завърши анализа.", + "extractionFailed": "Нуждае се от преглед", + "extractionFailedTitle": "Нуждае се от преглед", + "extractionFailedDescription": "Техническият отчет не можа да бъде превърнат в структуриран резултат.", + "exploitable": "Експлоатируем", + "exploitableTitle": "Експлоатируем", + "exploitableDescription": "Кодът на приложението може да достигне до засегнатата функция.", + "notExploitable": "Недостижимо", + "notExploitableTitle": "Недостижимо", + "notExploitableDescription": "В това хранилище не беше открит достижим път.", + "unknown": "Нуждае се от преглед", + "unknownTitle": "Нуждае се от преглед", + "unknownDescription": "Анализът не можа да потвърди дали уязвимата функция е достижима.", + "safeToDismiss": "Безопасна за отхвърляне", + "safeToDismissTitle": "Безопасна за отхвърляне", + "safeToDismissDescription": "Триажът определи, че това може безопасно да бъде отхвърлено без анализ на кодовата база.", + "manualReview": "Нуждае се от преглед", + "manualReviewTitle": "Изисква ръчен преглед", + "manualReviewDescription": "Триажът маркира това откритие за ръчен преглед.", + "analysisRequired": "Изисква се анализ", + "analysisRequiredTitle": "Изисква се анализ на кодовата база", + "analysisRequiredDescription": "Триажът препоръчва да анализираш хранилището, преди да решиш отговора.", + "completed": "Анализирано", + "completedTitle": "Анализирано", + "completedDescription": "Анализът е завършен без записан конкретен резултат.", + "notAnalyzed": "Не е анализирано", + "notAnalyzedTitle": "Не е анализирано", + "notAnalyzedDescription": "Анализът на кодовата база все още не е извършен за това откритие." + }, + "deadline": { + "fixedBeforeDeadline": "Коригирано преди крайния срок", + "fixed": "Коригирано", + "fixedOn": "Коригирано {{date}}", + "resolutionRecorded": "Решението е записано", + "superseded": "Заместено", + "dismissed": "Отхвърлено", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Краен срок не е зададен", + "noSlaDeadline": "Няма присвоен краен срок по SLA", + "dueOn": "Срокът е {{date}}", + "overdueNow": "Просрочено", + "overdue_one": "{{count}} ден просрочен", + "overdue_other": "{{count}} дни просрочени", + "dueToday": "Срокът е днес", + "dueTomorrow": "Срокът е утре", + "dueInDays_one": "Срокът е след {{count}} ден", + "dueInDays_other": "Срокът е след {{count}} дни", + "overdue": "{{count}} дни просрочени", + "dueInDays": "Срокът е след {{count}} дни" + }, + "remediationStatus": { + "cancellationRequested": "Заявено е отмяна", + "notStarted": "Не е започнато", + "queued": "В опашка", + "starting": "Стартиране", + "inProgress": "В процес", + "draftPrOpened": "Отворена чернова на PR", + "prOpened": "PR е отворена", + "blocked": "Блокирано", + "failed": "Неуспешно", + "noChangesNeeded": "Не са нужни промени", + "cancelled": "Отменено", + "originAutomaticPolicy": "Автоматична политика", + "originIncludeExistingPolicy": "Включи съществуващата политика", + "originManual": "Ръчно", + "validationCheck": "Проверка за валидност {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Откритието за сигурност вече не съществува.", + "approvalRequired": "Автоматичното отстраняване изисква одобрение. Стартирай отстраняването ръчно, за да го одобриш.", + "findingNotOpen": "Откритието вече не е отворено.", + "repoNotInScope": "Хранилището не е избрано за Security Agent.", + "analysisRequired": "Изпълни анализ на кодовата база, преди да започнеш отстраняването.", + "sandboxAnalysisRequired": "Изпълни анализ на кодовата база, преди да започнеш отстраняването.", + "staleAnalysis": "Откритието е променено след анализа. Изпълни отново анализа, преди да започнеш отстраняването.", + "notExploitable": "Анализът не откри достижим уязвим път. Автоматичното отстраняване е недостъпно.", + "exploitabilityUnknown": "Анализът не можа да потвърди експлоатируемостта. Преди отстраняването с едно кликване се изисква ръчен преглед.", + "manualReviewRequired": "Анализът препоръчва ръчен преглед, затова отстраняването с едно кликване е недостъпно.", + "monitorRequired": "Анализът препоръчва наблюдение вместо отваряне на PR.", + "triageOnly": "Завършен е само триажът. Изпълни анализ на кодовата база, преди да започнеш отстраняването.", + "actionNotConcrete": "Няма наличен конкретен пач за зависимостта или предложена корекция.", + "remediationActive": "Вече е активен опит за отстраняване.", + "prAlreadyOpened": "Корекционната PR вече е отворена.", + "duplicateAnalysisResult": "Този резултат от анализа вече е създал работа по отстраняване.", + "retryNotAllowed": "Повторният опит не е наличен за този опит.", + "securityAgentDisabled": "Security Agent е деактивиран за този собственик.", + "autoRemediationDisabled": "Автоматичното отстраняване е деактивирано. Ръчното отстраняване все още може да започне, когато проверките за безопасност преминат.", + "includeExistingDisabled": "Съществуващите открития са изключени от автоматичното отстраняване.", + "belowThreshold": "Откритието е под автоматичния праг на сериозност. Ръчното отстраняване все още може да започне, когато проверките за безопасност преминат.", + "beforeEnablement": "Анализът е завършен, преди да е активирано автоматичното отстраняване. Ръчното отстраняване все още може да започне, когато проверките за безопасност преминат.", + "generic": "Отстраняването е недостъпно за това откритие." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index 2c3aa567ae..1f5fa6a615 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -512,7 +512,9 @@ "pendingComment_other": "মুলতুবি মন্তব্য", "submitCountOfTotal": "{{displayTotalCount}}-এর মধ্যে {{displayFreshCount}} মন্তব্য জমা দিন", "submitReview": "রিভিউ জমা দিন", - "partialPostedMessage": "{{displayFreshCount}} মন্তব্য পোস্ট হয়েছে। {{displayStaleCount}} মন্তব্য পুরাতন কমিটে নির্দেশ করে এবং আপনার সারিতে রয়ে গেছে।" + "partialPostedMessage": "{{displayFreshCount}} মন্তব্য পোস্ট হয়েছে। {{displayStaleCount}} মন্তব্য পুরাতন কমিটে নির্দেশ করে এবং আপনার সারিতে রয়ে গেছে।", + "blockedRequestChanges": "পরিবর্তন অনুরোধ করতে একটি সারাংশ বা কমপক্ষে একটি মন্তব্য যোগ করুন।", + "blockedComment": "একটি মন্তব্য রিভিউ পোস্ট করতে একটি সারাংশ বা কমপক্ষে একটি মন্তব্য যোগ করুন।" }, "reconnectNotice": { "title": "GitHub সংযোগের মেয়াদ শেষ হয়েছে", @@ -1376,7 +1378,16 @@ }, "eyebrow": "কোড রিভিউয়ার", "updateFailed": "রিভিউয়ার আপডেট করা যায়নি", - "configSaveFailed": "রিভিউ কনফিগারেশন সংরক্ষণ করা যায়নি" + "configSaveFailed": "রিভিউ কনফিগারেশন সংরক্ষণ করা যায়নি", + "status": { + "pending": "মুলতুবি", + "queued": "সারিতে", + "running": "চলছে", + "completed": "সম্পন্ন", + "failed": "ব্যর্থ হয়েছে", + "cancelled": "বাতিল করা হয়েছে", + "interrupted": "বাধাগ্রস্ত" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "সোর্স রেকর্ড", "source": "সোর্স", "sourceId": "সোর্স আইডি", - "viewAdvisory": "GitHub-এ অ্যাডভাইজরি দেখুন" + "viewAdvisory": "GitHub-এ অ্যাডভাইজরি দেখুন", + "statusSuperseded": "প্রতিস্থাপিত", + "statusFixed": "ঠিক করা হয়েছে", + "statusOpen": "খোলা", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "একটি সমাধান ইতিমধ্যে শুরু হয়েছে", + "reasonNoBandwidth": "কোনো ব্যান্ডউইথ উপলব্ধ নেই", + "reasonTolerableRisk": "ঝুঁকি সহনীয়", + "reasonInaccurate": "ফাইন্ডিংটি সঠিক নয়", + "reasonNotUsed": "দুর্বল কোড ব্যবহার করা হয়নি", + "reasonAfterReview": "পর্যালোচনার পরে" }, "settingsOverview": { "title": "সেটিংস", @@ -1805,6 +1826,107 @@ "syncInProgress": "একটি সিকিউরিটি সিঙ্ক ইতিমধ্যে চলছে। অনুগ্রহ করে আবার চেষ্টা করুন।", "dismissalInProgress": "এই খারিজটি ইতিমধ্যে চলছে। অনুগ্রহ করে আবার চেষ্টা করুন।", "couldNotReadPendingSyncs": "অপেক্ষমাণ সিঙ্ক পড়া যায়নি। আবার চেষ্টা করুন।" + }, + "analysisState": { + "queued": "বিশ্লেষণ সারিতে", + "queuedTitle": "বিশ্লেষণ সারিতে", + "queuedDescription": "বিশ্লেষণের ক্ষমতা উপলব্ধ হওয়ার অপেক্ষায়।", + "analyzing": "বিশ্লেষণ করা হচ্ছে", + "analyzingTitle": "বিশ্লেষণ করা হচ্ছে", + "analyzingDescription": "অ্যাপ্লিকেশন কোড ক্ষতিগ্রস্ত ফিচারে পৌঁছাতে পারে কিনা তা পরীক্ষা করা হচ্ছে।", + "failed": "বিশ্লেষণ ব্যর্থ হয়েছে", + "failedTitle": "বিশ্লেষণ ব্যর্থ হয়েছে", + "failedDescription": "সিকিউরিটি এজেন্ট বিশ্লেষণটি সম্পূর্ণ করতে পারেনি।", + "extractionFailed": "পর্যালোচনা প্রয়োজন", + "extractionFailedTitle": "পর্যালোচনা প্রয়োজন", + "extractionFailedDescription": "প্রযুক্তিগত রিপোর্টটিকে কাঠামোগত ফলাফলে রূপান্তর করা যায়নি।", + "exploitable": "শোষণযোগ্য", + "exploitableTitle": "শোষণযোগ্য", + "exploitableDescription": "অ্যাপ্লিকেশন কোড ক্ষতিগ্রস্ত ফিচারে পৌঁছাতে পারে।", + "notExploitable": "অগম্য", + "notExploitableTitle": "অগম্য", + "notExploitableDescription": "এই রিপোজিটরিতে কোনো পৌঁছানোযোগ্য পথ পাওয়া যায়নি।", + "unknown": "পর্যালোচনা প্রয়োজন", + "unknownTitle": "পর্যালোচনা প্রয়োজন", + "unknownDescription": "বিশ্লেষণ নিশ্চিত করতে পারেনি যে দুর্বল ফিচারটি পৌঁছানোযোগ্য কিনা।", + "safeToDismiss": "বাতিল করা নিরাপদ", + "safeToDismissTitle": "বাতিল করা নিরাপদ", + "safeToDismissDescription": "ট্রায়াজ নির্ধারণ করেছে যে কোডবেস বিশ্লেষণ ছাড়াই এটি নিরাপদে বাতিল করা যেতে পারে।", + "manualReview": "পর্যালোচনা প্রয়োজন", + "manualReviewTitle": "ম্যানুয়াল পর্যালোচনা প্রয়োজন", + "manualReviewDescription": "ট্রায়াজ এই ফাইন্ডিংটি ম্যানুয়াল পর্যালোচনার জন্য চিহ্নিত করেছে।", + "analysisRequired": "বিশ্লেষণ প্রয়োজন", + "analysisRequiredTitle": "কোডবেস বিশ্লেষণ প্রয়োজন", + "analysisRequiredDescription": "ট্রায়াজ সিদ্ধান্ত নেওয়ার আগে রিপোজিটরি বিশ্লেষণের পরামর্শ দেয়।", + "completed": "বিশ্লেষণ করা হয়েছে", + "completedTitle": "বিশ্লেষণ করা হয়েছে", + "completedDescription": "বিশ্লেষণ সম্পূর্ণ হয়েছে কোনো নির্দিষ্ট ফলাফল রেকর্ড ছাড়াই।", + "notAnalyzed": "বিশ্লেষণ করা হয়নি", + "notAnalyzedTitle": "বিশ্লেষণ করা হয়নি", + "notAnalyzedDescription": "এই ফাইন্ডিংটির জন্য এখনো কোডবেস বিশ্লেষণ চালানো হয়নি।" + }, + "deadline": { + "fixedBeforeDeadline": "ডেডলাইনের আগে ঠিক করা হয়েছে", + "fixed": "ঠিক করা হয়েছে", + "fixedOn": "{{date}}-এ ঠিক করা হয়েছে", + "resolutionRecorded": "সমাধান রেকর্ড করা হয়েছে", + "superseded": "প্রতিস্থাপিত", + "dismissed": "খারিজ করা হয়েছে", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "ডেডলাইন নির্ধারিত নেই", + "noSlaDeadline": "কোনো SLA ডেডলাইন নেই", + "dueOn": "{{date}}-এ নির্ধারিত", + "overdueNow": "মেয়াদোত্তীর্ণ", + "overdue_one": "{{count}} দিন বিলম্বিত", + "overdue_other": "{{count}} দিন বিলম্বিত", + "dueToday": "আজ নির্ধারিত", + "dueTomorrow": "আগামীকাল নির্ধারিত", + "dueInDays_one": "{{count}} দিনের মধ্যে নির্ধারিত", + "dueInDays_other": "{{count}} দিনের মধ্যে নির্ধারিত", + "overdue": "{{count}} দিন বিলম্বিত", + "dueInDays": "{{count}} দিনের মধ্যে নির্ধারিত" + }, + "remediationStatus": { + "cancellationRequested": "বাতিলের অনুরোধ করা হয়েছে", + "notStarted": "শুরু হয়নি", + "queued": "সারিতে", + "starting": "শুরু হচ্ছে", + "inProgress": "চলমান", + "draftPrOpened": "ড্রাফ্ট PR খোলা হয়েছে", + "prOpened": "PR খোলা হয়েছে", + "blocked": "অবরুদ্ধ", + "failed": "ব্যর্থ হয়েছে", + "noChangesNeeded": "কোনো পরিবর্তন প্রয়োজন নেই", + "cancelled": "বাতিল করা হয়েছে", + "originAutomaticPolicy": "স্বয়ংক্রিয় নীতি", + "originIncludeExistingPolicy": "বিদ্যমান নীতি অন্তর্ভুক্ত করুন", + "originManual": "ম্যানুয়াল", + "validationCheck": "যাচাইকরণ চেক {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "সিকিউরিটি ফাইন্ডিংটি আর নেই।", + "approvalRequired": "অটো প্রতিকারের জন্য অনুমোদন প্রয়োজন। এটি অনুমোদন করতে ম্যানুয়ালি প্রতিকার শুরু করুন।", + "findingNotOpen": "ফাইন্ডিংটি আর খোলা নেই।", + "repoNotInScope": "সিকিউরিটি এজেন্টের জন্য রিপোজিটরিটি নির্বাচিত নয়।", + "analysisRequired": "প্রতিকার শুরু করার আগে কোডবেস বিশ্লেষণ চালান।", + "sandboxAnalysisRequired": "প্রতিকার শুরু করার আগে কোডবেস বিশ্লেষণ চালান।", + "staleAnalysis": "বিশ্লেষণের পরে ফাইন্ডিংটি পরিবর্তিত হয়েছে। প্রতিকার শুরু করার আগে বিশ্লেষণটি আবার চালান।", + "notExploitable": "বিশ্লেষণে কোনো পৌঁছানোযোগ্য দুর্বল পথ পাওয়া যায়নি। অটো প্রতিকার অনুপলব্ধ।", + "exploitabilityUnknown": "বিশ্লেষণ শোষণযোগ্যতা নিশ্চিত করতে পারেনি। ওয়ান-ক্লিক প্রতিকারের আগে ম্যানুয়াল পর্যালোচনা প্রয়োজন।", + "manualReviewRequired": "বিশ্লেষণ ম্যানুয়াল পর্যালোচনার পরামর্শ দেয়, তাই ওয়ান-ক্লিক প্রতিকার অনুপলব্ধ।", + "monitorRequired": "বিশ্লেষণ PR খোলার পরিবর্তে পর্যবেক্ষণের পরামর্শ দেয়।", + "triageOnly": "শুধুমাত্র ট্রায়াজ সম্পন্ন হয়েছে। প্রতিকার শুরু করার আগে কোডবেস বিশ্লেষণ চালান।", + "actionNotConcrete": "কোনো সুনির্দিষ্ট ডিপেন্ডেন্সি প্যাচ বা প্রস্তাবিত সমাধান উপলব্ধ নেই।", + "remediationActive": "একটি প্রতিকারের প্রচেষ্টা ইতিমধ্যে চলছে।", + "prAlreadyOpened": "একটি প্রতিকারের PR ইতিমধ্যে খোলা আছে।", + "duplicateAnalysisResult": "এই বিশ্লেষণের ফলাফল ইতিমধ্যে প্রতিকারের কাজ তৈরি করেছে।", + "retryNotAllowed": "এই প্রচেষ্টার জন্য পুনরায় চেষ্টা উপলব্ধ নয়।", + "securityAgentDisabled": "এই মালিকের জন্য সিকিউরিটি এজেন্ট নিষ্ক্রিয়।", + "autoRemediationDisabled": "অটো প্রতিকার নিষ্ক্রিয়। সেফটি গেট পাস করলে ম্যানুয়াল প্রতিকার এখনও শুরু হতে পারে।", + "includeExistingDisabled": "বিদ্যমান ফাইন্ডিংগুলো স্বয়ংক্রিয় প্রতিকার থেকে বাদ দেওয়া হয়েছে।", + "belowThreshold": "ফাইন্ডিংটি স্বয়ংক্রিয় তীব্রতা সীমার নিচে। সেফটি গেট পাস করলে ম্যানুয়াল প্রতিকার এখনও শুরু হতে পারে।", + "beforeEnablement": "অটো প্রতিকার সক্রিয় হওয়ার আগেই বিশ্লেষণ সম্পন্ন হয়েছে। সেফটি গেট পাস করলে ম্যানুয়াল প্রতিকার এখনও শুরু হতে পারে।", + "generic": "এই ফাইন্ডিংটির জন্য প্রতিকার অনুপলব্ধ।" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index afbe6fcc94..2b1fa6bff9 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -517,7 +517,9 @@ "submitCountOfTotal": "Pošalji {{displayFreshCount}} od {{displayTotalCount}} komentara", "submitReview": "Pošalji pregled", "partialPostedMessage": "Poslano {{displayFreshCount}} komentar(a). {{displayStaleCount}} komentar(a) se odnosi na stariji commit i ostali su u vašem redu.", - "pendingComment_few": "čekajuća komentara" + "pendingComment_few": "čekajuća komentara", + "blockedRequestChanges": "Dodajte sažetak ili barem jedan komentar da biste zatražili promjene.", + "blockedComment": "Dodajte sažetak ili barem jedan komentar da biste objavili pregled s komentarom." }, "reconnectNotice": { "title": "GitHub veza je istekla", @@ -1385,7 +1387,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Ažuriranje pregledača nije uspjelo", - "configSaveFailed": "Čuvanje konfiguracije pregleda nije uspjelo" + "configSaveFailed": "Čuvanje konfiguracije pregleda nije uspjelo", + "status": { + "pending": "Na čekanju", + "queued": "U redu", + "running": "U tijeku", + "completed": "Završeno", + "failed": "Nije uspjelo", + "cancelled": "Otkazano", + "interrupted": "Prekinuto" + } }, "securityAgent": { "filter": { @@ -1587,7 +1598,17 @@ "sourceRecord": "Izvorni zapis", "source": "Izvor", "sourceId": "ID izvora", - "viewAdvisory": "Pogledaj savjet na GitHubu" + "viewAdvisory": "Pogledaj savjet na GitHubu", + "statusSuperseded": "Zamijenjeno", + "statusFixed": "Popravljeno", + "statusOpen": "Otvoreno", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Popravak je već započet", + "reasonNoBandwidth": "Nema dostupnog kapaciteta", + "reasonTolerableRisk": "Rizik je podnošljiv", + "reasonInaccurate": "Nalaz je netačan", + "reasonNotUsed": "Ranjivi kod se ne koristi", + "reasonAfterReview": "Nakon pregleda" }, "settingsOverview": { "title": "Postavke", @@ -1816,6 +1837,109 @@ "syncInProgress": "Sigurnosna sinhronizacija je već u tijeku. Pokušajte ponovo.", "dismissalInProgress": "Ovo odbacivanje je već u tijeku. Pokušajte ponovo.", "couldNotReadPendingSyncs": "Nije moguće pročitati sinhronizacije na čekanju. Pokušajte ponovo." + }, + "analysisState": { + "queued": "Analiza u redu", + "queuedTitle": "Analiza u redu", + "queuedDescription": "Čekanje da kapacitet za analizu postane dostupan.", + "analyzing": "Analiziranje", + "analyzingTitle": "Analiziranje", + "analyzingDescription": "Provjera može li kod aplikacije dosegnuti pogođenu funkciju.", + "failed": "Analiza nije uspjela", + "failedTitle": "Analiza nije uspjela", + "failedDescription": "Security Agent nije mogao dovršiti analizu.", + "extractionFailed": "Zahtijeva pregled", + "extractionFailedTitle": "Zahtijeva pregled", + "extractionFailedDescription": "Tehnički izvještaj nije mogao biti pretvoren u strukturirani rezultat.", + "exploitable": "Iskoristivo", + "exploitableTitle": "Iskoristivo", + "exploitableDescription": "Kod aplikacije može dosegnuti pogođenu funkciju.", + "notExploitable": "Nedostupno", + "notExploitableTitle": "Nedostupno", + "notExploitableDescription": "U ovoj repozitoriji nije pronađen dostupan put.", + "unknown": "Zahtijeva pregled", + "unknownTitle": "Zahtijeva pregled", + "unknownDescription": "Analiza nije mogla potvrditi je li ranjiva funkcija dostupna.", + "safeToDismiss": "Sigurno za odbacivanje", + "safeToDismissTitle": "Sigurno za odbacivanje", + "safeToDismissDescription": "Triaža je utvrdila da se ovo može sigurno odbaciti bez analize baze koda.", + "manualReview": "Zahtijeva pregled", + "manualReviewTitle": "Treba ručni pregled", + "manualReviewDescription": "Triaža je označila ovaj nalaz za ručni pregled.", + "analysisRequired": "Analiza je potrebna", + "analysisRequiredTitle": "Potrebna je analiza baze koda", + "analysisRequiredDescription": "Triaža preporučuje analizu repozitorija prije donošenja odgovora.", + "completed": "Analizirano", + "completedTitle": "Analizirano", + "completedDescription": "Analiza je dovršena bez zabilježenog konkretnog ishoda.", + "notAnalyzed": "Nije analizirano", + "notAnalyzedTitle": "Nije analizirano", + "notAnalyzedDescription": "Analiza baze koda za ovaj nalaz još nije pokrenuta." + }, + "deadline": { + "fixedBeforeDeadline": "Popravljeno prije roka", + "fixed": "Popravljeno", + "fixedOn": "Popravljeno {{date}}", + "resolutionRecorded": "Rješenje zabilježeno", + "superseded": "Zamijenjeno", + "dismissed": "Odbijeno", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Rok nije postavljen", + "noSlaDeadline": "Nije dodijeljen SLA rok", + "dueOn": "Rok {{date}}", + "overdueNow": "Zakašnjelo", + "overdue_one": "{{count}} dan zakašnjenja", + "overdue_few": "{{count}} dana zakašnjenja", + "overdue_other": "{{count}} dana zakašnjenja", + "dueToday": "Rok je danas", + "dueTomorrow": "Rok je sutra", + "dueInDays_one": "Rok za {{count}} dan", + "dueInDays_few": "Rok za {{count}} dana", + "dueInDays_other": "Rok za {{count}} dana", + "overdue": "{{count}} dana zakašnjenja", + "dueInDays": "Rok za {{count}} dana" + }, + "remediationStatus": { + "cancellationRequested": "Zatraženo otkazivanje", + "notStarted": "Nije započeto", + "queued": "U redu", + "starting": "Pokretanje", + "inProgress": "U tijeku", + "draftPrOpened": "Otvoren nacrt PR-a", + "prOpened": "PR otvoren", + "blocked": "Blokirano", + "failed": "Nije uspjelo", + "noChangesNeeded": "Nisu potrebne izmjene", + "cancelled": "Otkazano", + "originAutomaticPolicy": "Automatska politika", + "originIncludeExistingPolicy": "Uključi postojeću politiku", + "originManual": "Ručno", + "validationCheck": "Provjera valjanosti {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Sigurnosni nalaz više ne postoji.", + "approvalRequired": "Auto sanacija zahtijeva odobrenje. Pokrenite otklanjanje ručno da biste ga odobrili.", + "findingNotOpen": "Nalaz više nije otvoren.", + "repoNotInScope": "Repozitorij nije odabran za Security Agent.", + "analysisRequired": "Pokrenite analizu baze koda prije početka otklanjanja.", + "sandboxAnalysisRequired": "Pokrenite analizu baze koda prije početka otklanjanja.", + "staleAnalysis": "Nalaz se promijenio nakon analize. Ponovo pokrenite analizu prije početka otklanjanja.", + "notExploitable": "Analiza nije pronašla dostupan ranjivi put. Auto sanacija nije dostupna.", + "exploitabilityUnknown": "Analiza nije mogla potvrditi iskoristivost. Prije otklanjanja jednim klikom potreban je ručni pregled.", + "manualReviewRequired": "Analiza preporučuje ručni pregled, pa otklanjanje jednim klikom nije dostupno.", + "monitorRequired": "Analiza preporučuje praćenje umjesto otvaranja PR-a.", + "triageOnly": "Dovršena je samo trijaža. Pokrenite analizu baze koda prije početka otklanjanja.", + "actionNotConcrete": "Nema dostupne konkretne zakrpe zavisnosti ili predloženog rješenja.", + "remediationActive": "Pokušaj otklanjanja je već aktivan.", + "prAlreadyOpened": "PR za otklanjanje je već otvoren.", + "duplicateAnalysisResult": "Ovaj rezultat analize već je proizveo rad na otklanjanju.", + "retryNotAllowed": "Ponovni pokušaj nije dostupan za ovaj pokušaj.", + "securityAgentDisabled": "Security Agent je onemogućen za ovog vlasnika.", + "autoRemediationDisabled": "Auto sanacija je onemogućena. Ručno otklanjanje se i dalje može pokrenuti kada sigurnosne provjere prođu.", + "includeExistingDisabled": "Postojeći nalazi su isključeni iz automatskog otklanjanja.", + "belowThreshold": "Nalaz je ispod automatskog praga ozbiljnosti. Ručno otklanjanje se i dalje može pokrenuti kada sigurnosne provjere prođu.", + "beforeEnablement": "Analiza je dovršena prije nego što je auto sanacija omogućena. Ručno otklanjanje se i dalje može pokrenuti kada sigurnosne provjere prođu.", + "generic": "Otklanjanje nije dostupno za ovaj nalaz." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index e8765db746..cf11d78581 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -517,7 +517,9 @@ "submitCountOfTotal": "Envia {{displayFreshCount}} de {{displayTotalCount}} comentaris", "submitReview": "Envia la revisió", "partialPostedMessage": "S'han publicat {{displayFreshCount}} comentari(s). {{displayStaleCount}} comentari(s) apunten a un commit més antic i han quedat a la teva cua.", - "pendingComment_many": "comentaris pendents" + "pendingComment_many": "comentaris pendents", + "blockedRequestChanges": "Afegeix un resum o com a mínim un comentari per sol·licitar canvis.", + "blockedComment": "Afegeix un resum o com a mínim un comentari per publicar una revisió de comentaris." }, "reconnectNotice": { "title": "La connexió de GitHub ha caducat", @@ -1385,7 +1387,16 @@ }, "eyebrow": "Revisor de codi", "updateFailed": "No s'ha pogut actualitzar el revisor", - "configSaveFailed": "No s'ha pogut desar la configuració de la revisió" + "configSaveFailed": "No s'ha pogut desar la configuració de la revisió", + "status": { + "pending": "Pendent", + "queued": "En cua", + "running": "En execució", + "completed": "Completat", + "failed": "Fallit", + "cancelled": "Cancel·lat", + "interrupted": "Interromput" + } }, "securityAgent": { "filter": { @@ -1587,7 +1598,17 @@ "sourceRecord": "Registre d'origen", "source": "Origen", "sourceId": "ID d'origen", - "viewAdvisory": "Veure l'avís a GitHub" + "viewAdvisory": "Veure l'avís a GitHub", + "statusSuperseded": "Substituït", + "statusFixed": "Corregit", + "statusOpen": "Obert", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ja ha començat una correcció", + "reasonNoBandwidth": "no hi ha capacitat disponible", + "reasonTolerableRisk": "el risc és tolerable", + "reasonInaccurate": "el resultat no és exacte", + "reasonNotUsed": "el codi vulnerable no s'utilitza", + "reasonAfterReview": "després de la revisió" }, "settingsOverview": { "title": "Configuració", @@ -1816,6 +1837,109 @@ "syncInProgress": "Una sincronització de seguretat ja està en curs. Torna-ho a provar.", "dismissalInProgress": "Aquest descartament ja està en curs. Torna-ho a provar.", "couldNotReadPendingSyncs": "No s'han pogut llegir les sincronitzacions pendents. Torna-ho a provar." + }, + "analysisState": { + "queued": "Anàlisi en cua", + "queuedTitle": "Anàlisi en cua", + "queuedDescription": "Esperant que hi hagi capacitat d'anàlisi disponible.", + "analyzing": "Analitzant", + "analyzingTitle": "Analitzant", + "analyzingDescription": "Comprovant si el codi de l'aplicació pot arribar a la funció afectada.", + "failed": "L'anàlisi ha fallat", + "failedTitle": "L'anàlisi ha fallat", + "failedDescription": "Security Agent no ha pogut completar l'anàlisi.", + "extractionFailed": "Requereix revisió", + "extractionFailedTitle": "Requereix revisió", + "extractionFailedDescription": "L'informe tècnic no s'ha pogut convertir en un resultat estructurat.", + "exploitable": "Explotable", + "exploitableTitle": "Explotable", + "exploitableDescription": "El codi de l'aplicació pot arribar a la funció afectada.", + "notExploitable": "Inabastable", + "notExploitableTitle": "Inabastable", + "notExploitableDescription": "No s'ha trobat cap via abastable en aquest repositori.", + "unknown": "Requereix revisió", + "unknownTitle": "Requereix revisió", + "unknownDescription": "L'anàlisi no ha pogut confirmar si la funció vulnerable és abastable.", + "safeToDismiss": "Segur d'ignorar", + "safeToDismissTitle": "Segur d'ignorar", + "safeToDismissDescription": "El triatge ha determinat que això es pot ignorar amb seguretat sense anàlisi del codi base.", + "manualReview": "Requereix revisió", + "manualReviewTitle": "Requereix revisió manual", + "manualReviewDescription": "El triatge ha marcat aquest resultat per a una revisió manual.", + "analysisRequired": "Cal anàlisi", + "analysisRequiredTitle": "Cal l'anàlisi del codi base", + "analysisRequiredDescription": "El triatge recomana analitzar el repositori abans de decidir una resposta.", + "completed": "Analitzat", + "completedTitle": "Analitzat", + "completedDescription": "L'anàlisi s'ha completat sense cap resultat específic registrat.", + "notAnalyzed": "No analitzat", + "notAnalyzedTitle": "No analitzat", + "notAnalyzedDescription": "L'anàlisi del codi base encara no s'ha executat per a aquest resultat." + }, + "deadline": { + "fixedBeforeDeadline": "Corregit abans del termini", + "fixed": "Corregit", + "fixedOn": "Corregit el {{date}}", + "resolutionRecorded": "Resolució registrada", + "superseded": "Substituït", + "dismissed": "Descartat", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Termini no establert", + "noSlaDeadline": "Cap termini SLA", + "dueOn": "Venç el {{date}}", + "overdueNow": "Vençut", + "overdue_one": "{{count}} dia de retard", + "overdue_many": "{{count}} dies de retard", + "overdue_other": "{{count}} dies de retard", + "dueToday": "Venç avui", + "dueTomorrow": "Venç demà", + "dueInDays_one": "Venç en {{count}} dia", + "dueInDays_many": "Venç en {{count}} dies", + "dueInDays_other": "Venç en {{count}} dies", + "overdue": "{{count}} dies de retard", + "dueInDays": "Venç en {{count}} dies" + }, + "remediationStatus": { + "cancellationRequested": "Cancel·lació sol·licitada", + "notStarted": "No començat", + "queued": "En cua", + "starting": "Iniciant", + "inProgress": "En curs", + "draftPrOpened": "Esborrany de PR obert", + "prOpened": "PR oberta", + "blocked": "Bloquejada", + "failed": "Fallida", + "noChangesNeeded": "No calen canvis", + "cancelled": "Cancel·lada", + "originAutomaticPolicy": "Política automàtica", + "originIncludeExistingPolicy": "Política d'incloure les existents", + "originManual": "Manual", + "validationCheck": "Comprovació de validació {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "El resultat de seguretat ja no existeix.", + "approvalRequired": "La correcció automàtica requereix aprovació. Inicia la correcció manualment per aprovar-la.", + "findingNotOpen": "El resultat ja no està obert.", + "repoNotInScope": "El repositori no està seleccionat per a Security Agent.", + "analysisRequired": "Executa l'anàlisi del codi base abans de començar la correcció.", + "sandboxAnalysisRequired": "Executa l'anàlisi del codi base abans de començar la correcció.", + "staleAnalysis": "El resultat ha canviat després de l'anàlisi. Torna a executar l'anàlisi abans de començar la correcció.", + "notExploitable": "L'anàlisi no ha trobat cap via vulnerable abastable. La correcció automàtica no està disponible.", + "exploitabilityUnknown": "L'anàlisi no ha pogut confirmar l'explotabilitat. Cal una revisió manual abans de la correcció amb un sol clic.", + "manualReviewRequired": "L'anàlisi recomana una revisió manual, així que la correcció amb un sol clic no està disponible.", + "monitorRequired": "L'anàlisi recomana supervisar en lloc d'obrir una PR.", + "triageOnly": "Només s'ha completat el triatge. Executa l'anàlisi del codi base abans de començar la correcció.", + "actionNotConcrete": "No hi ha cap pedaç de dependència concret ni correcció suggerida disponible.", + "remediationActive": "Ja hi ha un intent de correcció actiu.", + "prAlreadyOpened": "Ja hi ha una PR de correcció oberta.", + "duplicateAnalysisResult": "Aquest resultat d'anàlisi ja ha produït feina de correcció.", + "retryNotAllowed": "La repetició no està disponible per a aquest intent.", + "securityAgentDisabled": "Security Agent està desactivat per a aquest propietari.", + "autoRemediationDisabled": "La correcció automàtica està desactivada. La correcció manual encara pot començar quan passin les comprovacions de seguretat.", + "includeExistingDisabled": "Els resultats existents s'exclouen de la correcció automàtica.", + "belowThreshold": "El resultat està per sota del llindar automàtic de gravetat. La correcció manual encara pot començar quan passin les comprovacions de seguretat.", + "beforeEnablement": "L'anàlisi es va completar abans d'activar la correcció automàtica. La correcció manual encara pot començar quan passin les comprovacions de seguretat.", + "generic": "La correcció no està disponible per a aquest resultat." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index a0cf765d7a..85cf831fbe 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -512,7 +512,9 @@ "pendingComment_other": "بۆچوونە چاوەڕوانەکان", "submitCountOfTotal": "ناردنی {{displayFreshCount}} لە {{displayTotalCount}} بۆچوون", "submitReview": "ناردنی پێداچوونەوە", - "partialPostedMessage": "{{displayFreshCount}} بۆچوون نێردرا. {{displayStaleCount}} بۆچوون ئاماژە بە کۆمیتێکی کۆن دەکەن و لە ڕیزەکەتدا مانەوە." + "partialPostedMessage": "{{displayFreshCount}} بۆچوون نێردرا. {{displayStaleCount}} بۆچوون ئاماژە بە کۆمیتێکی کۆن دەکەن و لە ڕیزەکەتدا مانەوە.", + "blockedRequestChanges": "بۆ داواکردنی گۆڕانکاری کورتەیەک یان لانیکەم یەک بۆچوون زیاد بکە.", + "blockedComment": "بۆ ناردنی پێداچوونەوەی بۆچوون کورتەیەک یان لانیکەم یەک بۆچوون زیاد بکە." }, "reconnectNotice": { "title": "پەیوەندی GitHub بەسەرچوو", @@ -1376,7 +1378,16 @@ }, "eyebrow": "پێداچوونەوەکاری کۆد", "updateFailed": "نوێکردنەوەی پێداچوونەوەکار شکستی هێنا", - "configSaveFailed": "پاشەکەوتکردنی ڕێکخستنی پێداچوونەوە شکستی هێنا" + "configSaveFailed": "پاشەکەوتکردنی ڕێکخستنی پێداچوونەوە شکستی هێنا", + "status": { + "pending": "چاوەڕوان", + "queued": "ڕیزکراو", + "running": "لە کاردایە", + "completed": "تەواو بوو", + "failed": "شکستی هێنا", + "cancelled": "هەڵوەشایەوە", + "interrupted": "ڕاگیرا" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "تۆماری سەرچاوە", "source": "سەرچاوە", "sourceId": "ناسنامەی سەرچاوە", - "viewAdvisory": "ڕاوێژکاری لە GitHub ببینە" + "viewAdvisory": "ڕاوێژکاری لە GitHub ببینە", + "statusSuperseded": "جێگەی گیراوەتەوە", + "statusFixed": "چاککراو", + "statusOpen": "کراوە", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "چارەسەرێک پێشتر دەستی پێکردووە", + "reasonNoBandwidth": "هیچ توانایەک بەردەست نییە", + "reasonTolerableRisk": "مەترسییەکە قبوڵکراوە", + "reasonInaccurate": "دۆزینەوەکە ورد نییە", + "reasonNotUsed": "کۆدی لاواز بەکارنایەت", + "reasonAfterReview": "دوای پێداچوونەوە" }, "settingsOverview": { "title": "ڕێکخستنەکان", @@ -1805,6 +1826,107 @@ "syncInProgress": "ناوسینگێکی ئاسایش لە ئێستادا لە جێبەجێکردندایە. تکایە دووبارە هەوڵبدەرەوە.", "dismissalInProgress": "ئەم ڕەتکردنە لە ئێستادا لە جێبەجێکردندایە. تکایە دووبارە هەوڵبدەرەوە.", "couldNotReadPendingSyncs": "نەتوانرا ناوسینگە چاوەڕوانەکان بخوێنرێنەوە. دووبارە هەوڵبدەرەوە." + }, + "analysisState": { + "queued": "شیکاری ڕیزکرا", + "queuedTitle": "شیکاری ڕیزکرا", + "queuedDescription": "چاوەڕوانی بەردەستبوونی توانای شیکاری.", + "analyzing": "لە شیکاریدایە", + "analyzingTitle": "لە شیکاریدایە", + "analyzingDescription": "پشکنینی ئەوەی کە ئایا کۆدی ئەپەکە دەگاتە تایبەتمەندییە کارتێکراوەکە.", + "failed": "شیکاری سەرکەوتوو نەبوو", + "failedTitle": "شیکاری سەرکەوتوو نەبوو", + "failedDescription": "ئەرکى ئاسایش نەیتوانی شیکارییەکە تەواو بکات.", + "extractionFailed": "پێویستی بە پێداچوونەوەیە", + "extractionFailedTitle": "پێویستی بە پێداچوونەوەیە", + "extractionFailedDescription": "نەتوانرا ڕاپۆرتی تەکنیکی بگۆڕدرێت بۆ ئەنجامێکی پێکهاتوو.", + "exploitable": "بەکارهێنراو", + "exploitableTitle": "بەکارهێنراو", + "exploitableDescription": "کۆدی ئەپەکە دەگاتە تایبەتمەندییە کارتێکراوەکە.", + "notExploitable": "ناگات", + "notExploitableTitle": "ناگات", + "notExploitableDescription": "هیچ ڕێگایەک نەدۆزرایەوە کە بگات لەم کۆگایەدا.", + "unknown": "پێویستی بە پێداچوونەوەیە", + "unknownTitle": "پێویستی بە پێداچوونەوەیە", + "unknownDescription": "شیکاری نەیتوانی پشتڕاست بکاتەوە کە ئایا تایبەتمەندییە لاوازەکە دەگات.", + "safeToDismiss": "سەلامەتە بۆ لابردن", + "safeToDismissTitle": "سەلامەتە بۆ لابردن", + "safeToDismissDescription": "هەڵسەنگاندن دیاری کرد کە ئەمە بە سەلامەتی دەتوانرێت لاببرێت بەبێ شیکاری کۆد.", + "manualReview": "پێویستی بە پێداچوونەوەیە", + "manualReviewTitle": "پێویستی بە پێداچوونەوەی دەستی", + "manualReviewDescription": "هەڵسەنگاندن ئەم دۆزینەوەیە نیشان کرد بۆ پێداچوونەوەی دەستی.", + "analysisRequired": "شیکاری پێویستە", + "analysisRequiredTitle": "شیکاری کۆد پێویستە", + "analysisRequiredDescription": "هەڵسەنگاندن پێشنیار دەکات کۆگاکە شیکاری بکرێت پێش بڕیاردان لەسەر وەڵام.", + "completed": "شیکراوە", + "completedTitle": "شیکراوە", + "completedDescription": "شیکاری تەواو بوو بەبێ تۆمارکردنی هیچ ئەنجامێکی دیاریکراو.", + "notAnalyzed": "شیکاری نەکراو", + "notAnalyzedTitle": "شیکاری نەکراو", + "notAnalyzedDescription": "شیکاری کۆد هێشتا بۆ ئەم دۆزینەوەیە جێبەجێ نەکراوە." + }, + "deadline": { + "fixedBeforeDeadline": "پێش مۆڵەت چاککراوە", + "fixed": "چاککراو", + "fixedOn": "لە {{date}} چاککرا", + "resolutionRecorded": "چارەسەر تۆمارکرا", + "superseded": "جێگەی گیراوەتەوە", + "dismissed": "لابراو", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "مۆڵەت دیارینەکراوە", + "noSlaDeadline": "هیچ مۆڵەتێکی SLA نییە", + "dueOn": "مۆڵەت لە {{date}}", + "overdueNow": "دواکەوتوو", + "overdue_one": "{{count}} ڕۆژ دواکەوتوو", + "overdue_other": "{{count}} ڕۆژ دواکەوتوو", + "dueToday": "مۆڵەت ئەمڕۆ", + "dueTomorrow": "مۆڵەت بەیانی", + "dueInDays_one": "مۆڵەت لە {{count}} ڕۆژدا", + "dueInDays_other": "مۆڵەت لە {{count}} ڕۆژدا", + "overdue": "{{count}} ڕۆژ دواکەوتوو", + "dueInDays": "مۆڵەت لە {{count}} ڕۆژدا" + }, + "remediationStatus": { + "cancellationRequested": "داواکراوە بۆ هەڵوەشاندنەوە", + "notStarted": "دەستی پێنەکراوە", + "queued": "ڕیزکراو", + "starting": "لە دەستپێکردندایە", + "inProgress": "لە بەردەوامیدایە", + "draftPrOpened": "PRی ڕەشنووس کرایەوە", + "prOpened": "PR کرایەوە", + "blocked": "بەربەستکراو", + "failed": "سەرکەوتوو نەبوو", + "noChangesNeeded": "هیچ گۆڕانکارییەک پێویست نییە", + "cancelled": "هەڵوەشایەوە", + "originAutomaticPolicy": "سیاسەتی ئۆتۆماتیکی", + "originIncludeExistingPolicy": "سیاسەتی لەخۆگرتنی هەبووەکان", + "originManual": "دەستی", + "validationCheck": "پشکنینی پشتڕاستکردنەوە {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "دۆزینەوەی ئاسایش چیتر بوونی نییە.", + "approvalRequired": "چاکسازی ئۆتۆماتیکی پێویستی بە پەسندکردنە. بۆ پەسندکردنی، چارەسەرەکە بە دەستی دەستپێبکە.", + "findingNotOpen": "دۆزینەوەکە چیتر کراوە نییە.", + "repoNotInScope": "کۆگاکە بۆ ئەرکى ئاسایش هەڵنەبژێردراوە.", + "analysisRequired": "پێش دەستپێکردنی چارەسەر شیکاری کۆد جێبەجێ بکە.", + "sandboxAnalysisRequired": "پێش دەستپێکردنی چارەسەر شیکاری کۆد جێبەجێ بکە.", + "staleAnalysis": "دۆزینەوەکە دوای شیکاری گۆڕا. پێش دەستپێکردنی چارەسەر شیکاری دووبارە جێبەجێ بکە.", + "notExploitable": "شیکاری هیچ ڕێگایەکی لاوازی نەدۆزییەوە کە بگات. چاکسازی ئۆتۆماتیکی بەردەست نییە.", + "exploitabilityUnknown": "شیکاری نەیتوانی بەکارهێنان پشتڕاست بکاتەوە. پێش چارەسەری یەک-کرتە پێداچوونەوەی دەستی پێویستە.", + "manualReviewRequired": "شیکاری پێشنیاری پێداچوونەوەی دەستی دەکات، بۆیە چارەسەری یەک-کرتە بەردەست نییە.", + "monitorRequired": "شیکاری پێشنیاری چاودێری دەکات لە جیاتی کردنەوەی PR.", + "triageOnly": "تەنها هەڵسەنگاندن تەواو بووە. پێش دەستپێکردنی چارەسەر شیکاری کۆد جێبەجێ بکە.", + "actionNotConcrete": "هیچ پاچێکی دیاریکراوی پاکێج یان چارەسەرێکی پێشنیارکراو بەردەست نییە.", + "remediationActive": "هەوڵێکی چارەسەر ئێستا چالاکە.", + "prAlreadyOpened": "PRی چارەسەر ئێستا کراوە.", + "duplicateAnalysisResult": "ئەم ئەنجامە شیکارییە پێشتر کاری چارەسەری بەرهەم هێناوە.", + "retryNotAllowed": "هەوڵدانەوە بۆ ئەم هەوڵە بەردەست نییە.", + "securityAgentDisabled": "ئەرکى ئاسایش بۆ ئەم خاوەنە ناچالاککراوە.", + "autoRemediationDisabled": "چاکسازی ئۆتۆماتیکی ناچالاککراوە. چارەسەری دەستی هێشتا دەتوانێت دەستپێبکات کاتێک دەروازە ئاسایشەکان تێدەپەڕن.", + "includeExistingDisabled": "دۆزینەوە هەبووەکان لە چاکسازی ئۆتۆماتیکی دووردەخرێنەوە.", + "belowThreshold": "دۆزینەوەکە لە خوار ئاستی ئۆتۆماتیکییەوەیە. چارەسەری دەستی هێشتا دەتوانێت دەستپێبکات کاتێک دەروازە ئاسایشەکان تێدەپەڕن.", + "beforeEnablement": "شیکاری پێش چالاککردنی چاکسازی ئۆتۆماتیکی تەواو بووە. چارەسەری دەستی هێشتا دەتوانێت دەستپێبکات کاتێک دەروازە ئاسایشەکان تێدەپەڕن.", + "generic": "چارەسەر بۆ ئەم دۆزینەوەیە بەردەست نییە." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index b725c001f2..671b273f94 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -522,7 +522,9 @@ "submitReview": "Odeslat recenzi", "partialPostedMessage": "Odesláno {{displayFreshCount}} komentářů. {{displayStaleCount}} komentářů odkazuje na starší commit a zůstalo ve vaší frontě.", "pendingComment_few": "čekající komentáře", - "pendingComment_many": "čekajících komentářů" + "pendingComment_many": "čekajících komentářů", + "blockedRequestChanges": "Přidejte shrnutí nebo alespoň jeden komentář, abyste mohli požádat o změny.", + "blockedComment": "Přidejte shrnutí nebo alespoň jeden komentář, abyste mohli odeslat recenzi s komentáři." }, "reconnectNotice": { "title": "Připojení ke GitHubu vypršelo", @@ -1394,7 +1396,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Nepodařilo se aktualizovat reviewera", - "configSaveFailed": "Nepodařilo se uložit konfiguraci recenzí" + "configSaveFailed": "Nepodařilo se uložit konfiguraci recenzí", + "status": { + "pending": "Čeká", + "queued": "Ve frontě", + "running": "Běží", + "completed": "Dokončeno", + "failed": "Selhalo", + "cancelled": "Zrušeno", + "interrupted": "Přerušeno" + } }, "securityAgent": { "filter": { @@ -1597,7 +1608,17 @@ "sourceRecord": "Zdrojový záznam", "source": "Zdroj", "sourceId": "ID zdroje", - "viewAdvisory": "Zobrazit poradenství na GitHubu" + "viewAdvisory": "Zobrazit poradenství na GitHubu", + "statusSuperseded": "Nahrazeno", + "statusFixed": "Opraveno", + "statusOpen": "Otevřeno", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "oprava již byla zahájena", + "reasonNoBandwidth": "není k dispozici kapacita", + "reasonTolerableRisk": "riziko je přijatelné", + "reasonInaccurate": "zjištění je nepřesné", + "reasonNotUsed": "zranitelný kód se nepoužívá", + "reasonAfterReview": "po přezkoumání" }, "settingsOverview": { "title": "Nastavení", @@ -1827,6 +1848,111 @@ "syncInProgress": "Bezpečnostní synchronizace již probíhá. Zkuste to prosím znovu.", "dismissalInProgress": "Toto zamítnutí již probíhá. Zkuste to prosím znovu.", "couldNotReadPendingSyncs": "Čekající synchronizace se nepodařilo přečíst. Zkuste to znovu." + }, + "analysisState": { + "queued": "Analýza ve frontě", + "queuedTitle": "Analýza ve frontě", + "queuedDescription": "Čeká se na uvolnění kapacity pro analýzu.", + "analyzing": "Analyzuje se", + "analyzingTitle": "Analyzuje se", + "analyzingDescription": "Kontroluje se, zda kód aplikace může dosáhnout postižené funkce.", + "failed": "Analýza selhala", + "failedTitle": "Analýza selhala", + "failedDescription": "Security Agent nemohl dokončit analýzu.", + "extractionFailed": "Vyžaduje kontrolu", + "extractionFailedTitle": "Vyžaduje kontrolu", + "extractionFailedDescription": "Technickou zprávu se nepodařilo převést na strukturovaný výsledek.", + "exploitable": "Zneužitelné", + "exploitableTitle": "Zneužitelné", + "exploitableDescription": "Kód aplikace může dosáhnout postižené funkce.", + "notExploitable": "Nedosažitelné", + "notExploitableTitle": "Nedosažitelné", + "notExploitableDescription": "V tomto repozitáři nebyla nalezena žádná dosažitelná cesta.", + "unknown": "Vyžaduje kontrolu", + "unknownTitle": "Vyžaduje kontrolu", + "unknownDescription": "Analýza nemohla potvrdit, zda je zranitelná funkce dosažitelná.", + "safeToDismiss": "Bezpečné zavrhnout", + "safeToDismissTitle": "Bezpečné zavrhnout", + "safeToDismissDescription": "Třídění určilo, že to lze bezpečně zavrhnout bez analýzy kódové základny.", + "manualReview": "Vyžaduje kontrolu", + "manualReviewTitle": "Vyžaduje ruční přezkoumání", + "manualReviewDescription": "Třídění označilo toto zjištění pro ruční přezkoumání.", + "analysisRequired": "Je vyžadována analýza", + "analysisRequiredTitle": "Vyžadována analýza kódové základny", + "analysisRequiredDescription": "Třídění doporučuje analyzovat repozitář před rozhodnutím o odpovědi.", + "completed": "Analyzováno", + "completedTitle": "Analyzováno", + "completedDescription": "Analýza byla dokončena bez zaznamenaného konkrétního výsledku.", + "notAnalyzed": "Neanalyzováno", + "notAnalyzedTitle": "Neanalyzováno", + "notAnalyzedDescription": "Analýza kódové základny se pro toto zjištění ještě nespustila." + }, + "deadline": { + "fixedBeforeDeadline": "Opraveno před termínem", + "fixed": "Opraveno", + "fixedOn": "Opraveno {{date}}", + "resolutionRecorded": "Řešení zaznamenáno", + "superseded": "Nahrazeno", + "dismissed": "Zavrženo", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Termín není nastaven", + "noSlaDeadline": "Žádný termín SLA", + "dueOn": "Splatné {{date}}", + "overdueNow": "Po splatnosti", + "overdue_one": "{{count}} den po termínu", + "overdue_few": "{{count}} dny po termínu", + "overdue_many": "{{count}} dní po termínu", + "overdue_other": "{{count}} dní po termínu", + "dueToday": "Splatné dnes", + "dueTomorrow": "Splatné zítra", + "dueInDays_one": "Splatné za {{count}} den", + "dueInDays_few": "Splatné za {{count}} dny", + "dueInDays_many": "Splatné za {{count}} dní", + "dueInDays_other": "Splatné za {{count}} dní", + "overdue": "{{count}} dní po termínu", + "dueInDays": "Splatné za {{count}} dní" + }, + "remediationStatus": { + "cancellationRequested": "Zrušení požadováno", + "notStarted": "Nezahájeno", + "queued": "Ve frontě", + "starting": "Spouští se", + "inProgress": "Probíhá", + "draftPrOpened": "Návrh PR otevřen", + "prOpened": "PR otevřen", + "blocked": "Blokováno", + "failed": "Selhalo", + "noChangesNeeded": "Žádné změny nejsou nutné", + "cancelled": "Zrušeno", + "originAutomaticPolicy": "Automatická zásada", + "originIncludeExistingPolicy": "Zásada zahrnutí stávajících", + "originManual": "Ručně", + "validationCheck": "Validační kontrola {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Bezpečnostní zjištění již neexistuje.", + "approvalRequired": "Automatická náprava vyžaduje schválení. Spusťte nápravu ručně pro její schválení.", + "findingNotOpen": "Zjištění již není otevřené.", + "repoNotInScope": "Repozitář není pro Security Agent vybrán.", + "analysisRequired": "Před zahájením nápravy spusťte analýzu kódové základny.", + "sandboxAnalysisRequired": "Před zahájením nápravy spusťte analýzu kódové základny.", + "staleAnalysis": "Zjištění se po analýze změnilo. Před zahájením nápravy spusťte analýzu znovu.", + "notExploitable": "Analýza nenašla žádnou dosažitelnou zranitelnou cestu. Automatická náprava není k dispozici.", + "exploitabilityUnknown": "Analýza nemohla potvrdit zneužitelnost. Před nápravou jedním kliknutím je vyžadováno ruční přezkoumání.", + "manualReviewRequired": "Analýza doporučuje ruční přezkoumání, takže náprava jedním kliknutím není k dispozici.", + "monitorRequired": "Analýza doporučuje namísto otevření PR sledování.", + "triageOnly": "Dokončeno je pouze třídění. Před zahájením nápravy spusťte analýzu kódové základny.", + "actionNotConcrete": "Není k dispozici žádný konkrétní záplata závislosti ani doporučená oprava.", + "remediationActive": "Pokus o nápravu je již aktivní.", + "prAlreadyOpened": "PR pro nápravu je již otevřen.", + "duplicateAnalysisResult": "Tento výsledek analýzy již vytvořil práci na nápravě.", + "retryNotAllowed": "Opakování není pro tento pokus k dispozici.", + "securityAgentDisabled": "Security Agent je pro tohoto vlastníka zakázán.", + "autoRemediationDisabled": "Automatická náprava je zakázána. Ruční náprava může stále začít, když projdou bezpečnostní brány.", + "includeExistingDisabled": "Stávající zjištění jsou vyloučena z automatické nápravy.", + "belowThreshold": "Zjištění je pod automatickou hranicí závažnosti. Ruční náprava může stále začít, když projdou bezpečnostní brány.", + "beforeEnablement": "Analýza byla dokončena před povolením automatické nápravy. Ruční náprava může stále začít, když projdou bezpečnostní brány.", + "generic": "Náprava není pro toto zjištění k dispozici." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 56cb712441..b3c88f21d5 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -532,7 +532,9 @@ "pendingComment_zero": "sylw ar y gweill", "pendingComment_two": "sylw ar y gweill", "pendingComment_few": "sylw ar y gweill", - "pendingComment_many": "sylwadau ar y gweill" + "pendingComment_many": "sylwadau ar y gweill", + "blockedRequestChanges": "Ychwanegwch grynodeb neu o leiaf un sylw i ofyn am newidiadau.", + "blockedComment": "Ychwanegwch grynodeb neu o leiaf un sylw i bostio adolygiad sylwadau." }, "reconnectNotice": { "title": "Daeth cysylltiad GitHub i ben", @@ -1412,7 +1414,16 @@ }, "eyebrow": "Adolygydd Cod", "updateFailed": "Methodd diweddaru'r adolygydd", - "configSaveFailed": "Methodd cadw cyfluniad yr adolygiad" + "configSaveFailed": "Methodd cadw cyfluniad yr adolygiad", + "status": { + "pending": "Ar y gweill", + "queued": "Mewn ciw", + "running": "Yn rhedeg", + "completed": "Wedi'i gwblhau", + "failed": "Wedi methu", + "cancelled": "Wedi'i ganslo", + "interrupted": "Wedi'i atal" + } }, "securityAgent": { "filter": { @@ -1617,7 +1628,17 @@ "sourceRecord": "Cofnod ffynhonnell", "source": "Ffynhonnell", "sourceId": "ID ffynhonnell", - "viewAdvisory": "Gweld cyngor ar GitHub" + "viewAdvisory": "Gweld cyngor ar GitHub", + "statusSuperseded": "Wedi'i ddisodli", + "statusFixed": "Wedi'i drwsio", + "statusOpen": "Agor", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "mae trwsiad eisoes wedi dechrau", + "reasonNoBandwidth": "dim lled band ar gael", + "reasonTolerableRisk": "mae'r risg yn oddefadwy", + "reasonInaccurate": "mae'r canfyddiad yn anghywir", + "reasonNotUsed": "nid yw cod bregus yn cael ei ddefnyddio", + "reasonAfterReview": "ar ôl adolygiad" }, "settingsOverview": { "title": "Gosodiadau", @@ -1849,6 +1870,115 @@ "syncInProgress": "Mae cysoniad diogelwch eisoes ar y gweill. Rhowch gynnig arall arni.", "dismissalInProgress": "Mae'r gwrthodiad hwn eisoes ar y gweill. Rhowch gynnig arall arni.", "couldNotReadPendingSyncs": "Ni ellid darllen cysoniadau ar y gweill. Rhowch gynnig arall arni." + }, + "analysisState": { + "queued": "Dadansoddiad mewn ciw", + "queuedTitle": "Dadansoddiad mewn ciw", + "queuedDescription": "Yn aros i gapasiti dadansoddi ddod ar gael.", + "analyzing": "Yn dadansoddi", + "analyzingTitle": "Yn dadansoddi", + "analyzingDescription": "Yn gwirio a all cod yr ap gyrraedd y nodwedd yr effeithir arni.", + "failed": "Methodd y dadansoddiad", + "failedTitle": "Methodd y dadansoddiad", + "failedDescription": "Ni allai Security Agent gwblhau'r dadansoddiad.", + "extractionFailed": "Angen adolygiad", + "extractionFailedTitle": "Angen adolygiad", + "extractionFailedDescription": "Ni ellid troi'r adroddiad technegol yn ganlyniad strwythuredig.", + "exploitable": "Yn ecsbloetiadwy", + "exploitableTitle": "Yn ecsbloetiadwy", + "exploitableDescription": "Gall cod yr ap gyrraedd y nodwedd yr effeithir arni.", + "notExploitable": "Anghyrhaeddadwy", + "notExploitableTitle": "Anghyrhaeddadwy", + "notExploitableDescription": "Ni chanfuwyd unrhyw lwybr cyrhaeddadwy yn y storfa hon.", + "unknown": "Angen adolygiad", + "unknownTitle": "Angen adolygiad", + "unknownDescription": "Ni allai'r dadansoddiad gadarnhau a yw'r nodwedd fregus yn gyrhaeddadwy.", + "safeToDismiss": "Yn ddiogel i'w ddiystyru", + "safeToDismissTitle": "Yn ddiogel i'w ddiystyru", + "safeToDismissDescription": "Penderfynodd y trïo y gellir ei ddiystyru'n ddiogel heb ddadansoddiad cod sylfaenol.", + "manualReview": "Angen adolygiad", + "manualReviewTitle": "Angen adolygiad â llaw", + "manualReviewDescription": "Nododd y trïo y canfyddiad hwn ar gyfer adolygiad â llaw.", + "analysisRequired": "Angen dadansoddiad", + "analysisRequiredTitle": "Angen dadansoddiad cod sylfaenol", + "analysisRequiredDescription": "Mae'r trïo yn argymell dadansoddi'r ystorfa cyn penderfynu ar ymateb.", + "completed": "Dadansoddwyd", + "completedTitle": "Dadansoddwyd", + "completedDescription": "Cwblhawyd y dadansoddiad heb unrhyw ganlyniad penodol wedi'i gofnodi.", + "notAnalyzed": "Heb ei ddadansoddi", + "notAnalyzedTitle": "Heb ei ddadansoddi", + "notAnalyzedDescription": "Nid yw dadansoddiad cod sylfaenol wedi rhedeg ar gyfer y canfyddiad hwn eto." + }, + "deadline": { + "fixedBeforeDeadline": "Wedi'i drwsio cyn y dyddiad terfyn", + "fixed": "Wedi'i drwsio", + "fixedOn": "Wedi'i drwsio {{date}}", + "resolutionRecorded": "Datrysiad wedi'i gofnodi", + "superseded": "Wedi'i ddisodli", + "dismissed": "Wedi'i ddiystyru", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Dyddiad terfyn heb ei osod", + "noSlaDeadline": "Dim dyddiad terfyn SLA", + "dueOn": "Dyledus {{date}}", + "overdueNow": "Hwyr", + "overdue_zero": "{{count}} diwrnod yn hwyr", + "overdue_one": "{{count}} diwrnod yn hwyr", + "overdue_two": "{{count}} diwrnod yn hwyr", + "overdue_few": "{{count}} diwrnod yn hwyr", + "overdue_many": "{{count}} diwrnod yn hwyr", + "overdue_other": "{{count}} diwrnod yn hwyr", + "dueToday": "Dyledus heddiw", + "dueTomorrow": "Dyledus yfory", + "dueInDays_zero": "Dyledus mewn {{count}} diwrnod", + "dueInDays_one": "Dyledus mewn {{count}} diwrnod", + "dueInDays_two": "Dyledus mewn {{count}} diwrnod", + "dueInDays_few": "Dyledus mewn {{count}} diwrnod", + "dueInDays_many": "Dyledus mewn {{count}} diwrnod", + "dueInDays_other": "Dyledus mewn {{count}} diwrnod", + "overdue": "{{count}} diwrnod yn hwyr", + "dueInDays": "Dyledus mewn {{count}} diwrnod" + }, + "remediationStatus": { + "cancellationRequested": "Galwad i ganslo wedi'i chofnodi", + "notStarted": "Heb ddechrau", + "queued": "Mewn ciw", + "starting": "Yn dechrau", + "inProgress": "Ar y gweill", + "draftPrOpened": "Cais tynnu drafft wedi'i agor", + "prOpened": "Cais tynnu wedi'i agor", + "blocked": "Wedi'i rwystro", + "failed": "Methodd", + "noChangesNeeded": "Dim newidiadau angenrheidiol", + "cancelled": "Wedi'i ganslo", + "originAutomaticPolicy": "Polisi awtomatig", + "originIncludeExistingPolicy": "Polisi cynnwys presennol", + "originManual": "Â llaw", + "validationCheck": "Gwiriad dilysu {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Nid yw'r canfyddiad diogelwch yn bodoli mwyach.", + "approvalRequired": "Mae angen cymeradwyaeth ar Adfer Awtomatig. Dechreuwch adferiad â llaw i'w gymeradwyo.", + "findingNotOpen": "Nid yw'r canfyddiad ar agor mwyach.", + "repoNotInScope": "Nid yw'r ystorfa wedi'i dewis ar gyfer Security Agent.", + "analysisRequired": "Rhedeg dadansoddiad cod sylfaenol cyn dechrau adferiad.", + "sandboxAnalysisRequired": "Rhedeg dadansoddiad cod sylfaenol cyn dechrau adferiad.", + "staleAnalysis": "Newidiodd y canfyddiad ar ôl dadansoddi. Ailredegwch y dadansoddiad cyn dechrau adferiad.", + "notExploitable": "Ni chanfu dadansoddiad unrhyw lwybr bregus cyrhaeddadwy. Nid yw Adfer Awtomatig ar gael.", + "exploitabilityUnknown": "Ni allai'r dadansoddiad gadarnhau ecsbloetiadwyedd. Mae angen adolygiad â llaw cyn adferiad ag un clic.", + "manualReviewRequired": "Mae'r dadansoddiad yn argymell adolygiad â llaw, felly nid yw adferiad ag un clic ar gael.", + "monitorRequired": "Mae'r dadansoddiad yn argymell monitro yn hytrach nag agor cais tynnu.", + "triageOnly": "Dim ond y trïo sydd wedi'i gwblhau. Rhedeg dadansoddiad cod sylfaenol cyn dechrau adferiad.", + "actionNotConcrete": "Dim clytiad dibyniaeth penodol nac atgyweiriad awgrymedig ar gael.", + "remediationActive": "Mae cynnig adferiad eisoes ar y gweill.", + "prAlreadyOpened": "Mae cais tynnu adferiad eisoes ar agor.", + "duplicateAnalysisResult": "Cynhyrchodd y canlyniad dadansoddi hwn waith adfer eisoes.", + "retryNotAllowed": "Nid yw ailgynnig ar gael ar gyfer y cynnig hwn.", + "securityAgentDisabled": "Mae Security Agent wedi'i analluogi ar gyfer y perchennog hwn.", + "autoRemediationDisabled": "Mae Adfer Awtomatig wedi'i analluogi. Gall adferiad â llaw ddal i ddechrau pan fydd gatiau diogelwch yn pasio.", + "includeExistingDisabled": "Mae canfyddiadau presennol wedi'u heithrio rhag adfer awtomatig.", + "belowThreshold": "Mae'r canfyddiad yn is na throthwy difrifoldeb awtomatig. Gall adferiad â llaw ddal i ddechrau pan fydd gatiau diogelwch yn pasio.", + "beforeEnablement": "Cwblhawyd y dadansoddiad cyn galluogi Adfer Awtomatig. Gall adferiad â llaw ddal i ddechrau pan fydd gatiau diogelwch yn pasio.", + "generic": "Nid yw adferiad ar gael ar gyfer y canfyddiad hwn." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index aab742df59..12b21b99ab 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -512,7 +512,9 @@ "pendingComment_other": "ventende kommentarer", "submitCountOfTotal": "Send {{displayFreshCount}} af {{displayTotalCount}} kommentarer", "submitReview": "Send anmeldelse", - "partialPostedMessage": "Sendte {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) peger på en ældre commit og blev i din kø." + "partialPostedMessage": "Sendte {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) peger på en ældre commit og blev i din kø.", + "blockedRequestChanges": "Tilføj et resumé eller mindst én kommentar for at anmode om ændringer.", + "blockedComment": "Tilføj et resumé eller mindst én kommentar for at sende en kommentaranmeldelse." }, "reconnectNotice": { "title": "GitHub-forbindelsen udløb", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Kunne ikke opdatere Code Reviewer", - "configSaveFailed": "Kunne ikke gemme gennemgangskonfigurationen" + "configSaveFailed": "Kunne ikke gemme gennemgangskonfigurationen", + "status": { + "pending": "Afventer", + "queued": "I kø", + "running": "Kører", + "completed": "Afsluttet", + "failed": "Mislykkedes", + "cancelled": "Annulleret", + "interrupted": "Afbrudt" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Kilderegistrering", "source": "Kilde", "sourceId": "Kilde-ID", - "viewAdvisory": "Se sikkerhedsbulletin på GitHub" + "viewAdvisory": "Se sikkerhedsbulletin på GitHub", + "statusSuperseded": "Overtaget", + "statusFixed": "Løst", + "statusOpen": "Åben", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "en løsning er allerede startet", + "reasonNoBandwidth": "der er ikke kapacitet tilgængelig", + "reasonTolerableRisk": "risikoen er acceptabel", + "reasonInaccurate": "fundet er unøjagtigt", + "reasonNotUsed": "sårbar kode bruges ikke", + "reasonAfterReview": "efter gennemgang" }, "settingsOverview": { "title": "Indstillinger", @@ -1805,6 +1826,107 @@ "syncInProgress": "En sikkerhedssynkronisering er allerede i gang. Prøv venligst igen.", "dismissalInProgress": "Denne afvisning er allerede i gang. Prøv venligst igen.", "couldNotReadPendingSyncs": "Kunne ikke læse ventende synkroniseringer. Prøv igen." + }, + "analysisState": { + "queued": "Analyse i kø", + "queuedTitle": "Analyse i kø", + "queuedDescription": "Venter på, at analysekapacitet bliver tilgængelig.", + "analyzing": "Analyserer", + "analyzingTitle": "Analyserer", + "analyzingDescription": "Kontrollerer, om applikationskoden kan nå den berørte funktion.", + "failed": "Analysen mislykkedes", + "failedTitle": "Analysen mislykkedes", + "failedDescription": "Security Agent kunne ikke fuldføre analysen.", + "extractionFailed": "Kræver gennemgang", + "extractionFailedTitle": "Kræver gennemgang", + "extractionFailedDescription": "Den tekniske rapport kunne ikke omdannes til et struktureret resultat.", + "exploitable": "Udnyttelig", + "exploitableTitle": "Udnyttelig", + "exploitableDescription": "Applikationskoden kan nå den berørte funktion.", + "notExploitable": "Uopnåelig", + "notExploitableTitle": "Uopnåelig", + "notExploitableDescription": "Der blev ikke fundet nogen tilgængelig sti i dette repository.", + "unknown": "Kræver gennemgang", + "unknownTitle": "Kræver gennemgang", + "unknownDescription": "Analysen kunne ikke bekræfte, om den sårbare funktion kan nås.", + "safeToDismiss": "Sikkert at afvise", + "safeToDismissTitle": "Sikkert at afvise", + "safeToDismissDescription": "Triage fastslog, at dette sikkert kan afvises uden kodebaseanalyse.", + "manualReview": "Kræver gennemgang", + "manualReviewTitle": "Kræver manuel gennemgang", + "manualReviewDescription": "Triage markerede dette fund til manuel gennemgang.", + "analysisRequired": "Analyse påkrævet", + "analysisRequiredTitle": "Kodebaseanalyse påkrævet", + "analysisRequiredDescription": "Triage anbefaler at analysere repositoryet, før du beslutter dig for et svar.", + "completed": "Analyseret", + "completedTitle": "Analyseret", + "completedDescription": "Analysen blev fuldført uden et specifikt registreret resultat.", + "notAnalyzed": "Ikke analyseret", + "notAnalyzedTitle": "Ikke analyseret", + "notAnalyzedDescription": "Kodebaseanalyse er endnu ikke kørt for dette fund." + }, + "deadline": { + "fixedBeforeDeadline": "Løst før fristen", + "fixed": "Løst", + "fixedOn": "Løst den {{date}}", + "resolutionRecorded": "Løsning registreret", + "superseded": "Overtaget", + "dismissed": "Afvist", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Frist ikke angivet", + "noSlaDeadline": "Ingen SLA-frist", + "dueOn": "Forfalder den {{date}}", + "overdueNow": "Forsinket", + "overdue_one": "{{count}} dag forsinket", + "overdue_other": "{{count}} dage forsinket", + "dueToday": "Forfalder i dag", + "dueTomorrow": "Forfalder i morgen", + "dueInDays_one": "Forfalder om {{count}} dag", + "dueInDays_other": "Forfalder om {{count}} dage", + "overdue": "{{count}} dage forsinket", + "dueInDays": "Forfalder om {{count}} dage" + }, + "remediationStatus": { + "cancellationRequested": "Annullering anmodet", + "notStarted": "Ikke startet", + "queued": "I kø", + "starting": "Starter", + "inProgress": "I gang", + "draftPrOpened": "Kladdepull request åbnet", + "prOpened": "PR åbnet", + "blocked": "Blokeret", + "failed": "Mislykkedes", + "noChangesNeeded": "Ingen ændringer nødvendige", + "cancelled": "Annulleret", + "originAutomaticPolicy": "Automatisk politik", + "originIncludeExistingPolicy": "Inkluder eksisterende politik", + "originManual": "Manuel", + "validationCheck": "Valideringskontrol {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Sikkerhedsfundet findes ikke længere.", + "approvalRequired": "Autoudbedring kræver godkendelse. Start afhjælpningen manuelt for at godkende den.", + "findingNotOpen": "Fundet er ikke længere åbent.", + "repoNotInScope": "Repositoryet er ikke valgt til Security Agent.", + "analysisRequired": "Kør kodebaseanalyse, før du starter afhjælpningen.", + "sandboxAnalysisRequired": "Kør kodebaseanalyse, før du starter afhjælpningen.", + "staleAnalysis": "Fundet ændrede sig efter analysen. Kør analysen igen, før du starter afhjælpningen.", + "notExploitable": "Analysen fandt ingen tilgængelig sårbar sti. Autoudbedring er ikke tilgængelig.", + "exploitabilityUnknown": "Analysen kunne ikke bekræfte udnytteligheden. Manuel gennemgang er påkrævet, før du kan køre afhjælpning med ét klik.", + "manualReviewRequired": "Analysen anbefaler manuel gennemgang, så afhjælpning med ét klik er ikke tilgængelig.", + "monitorRequired": "Analysen anbefaler overvågning i stedet for at åbne en PR.", + "triageOnly": "Kun triage er fuldført. Kør kodebaseanalyse, før du starter afhjælpningen.", + "actionNotConcrete": "Der er ikke nogen konkret afhængighedsrettelse eller foreslået løsning tilgængelig.", + "remediationActive": "Et afhjælpningsforsøg er allerede i gang.", + "prAlreadyOpened": "Et afhjælpnings-PR er allerede åbent.", + "duplicateAnalysisResult": "Dette analyseresultat har allerede frembragt afhjælpningsarbejde.", + "retryNotAllowed": "Gentagelse er ikke tilgængelig for dette forsøg.", + "securityAgentDisabled": "Security Agent er deaktiveret for denne ejer.", + "autoRemediationDisabled": "Autoudbedring er deaktiveret. Manuel afhjælpning kan stadig startes, når sikkerhedsportene er passeret.", + "includeExistingDisabled": "Eksisterende fund er udelukket fra automatisk afhjælpning.", + "belowThreshold": "Fundet er under automatiseringsgrænsen for sværhedsgrad. Manuel afhjælpning kan stadig startes, når sikkerhedsportene er passeret.", + "beforeEnablement": "Analysen blev fuldført, før Autoudbedring blev aktiveret. Manuel afhjælpning kan stadig startes, når sikkerhedsportene er passeret.", + "generic": "Afhjælpning er ikke tilgængelig for dette fund." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index cc5920c0ce..5bb284af61 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -939,7 +939,16 @@ "set": "Gesetzt" }, "updateFailed": "Reviewer konnte nicht aktualisiert werden", - "configSaveFailed": "Review-Konfiguration konnte nicht gespeichert werden" + "configSaveFailed": "Review-Konfiguration konnte nicht gespeichert werden", + "status": { + "pending": "Ausstehend", + "queued": "In Warteschlange", + "running": "Läuft", + "completed": "Abgeschlossen", + "failed": "Fehlgeschlagen", + "cancelled": "Abgebrochen", + "interrupted": "Unterbrochen" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "Unbekannt", "updated": "Aktualisiert", "viewAdvisory": "Advisory auf GitHub ansehen", - "vulnerableVersions": "Anfällige Versionen" + "vulnerableVersions": "Anfällige Versionen", + "statusSuperseded": "Ersetzt", + "statusFixed": "Behoben", + "statusOpen": "Offen", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ein Fix wurde bereits gestartet", + "reasonNoBandwidth": "keine Kapazität verfügbar", + "reasonTolerableRisk": "das Risiko ist tolerierbar", + "reasonInaccurate": "das Finding ist ungenau", + "reasonNotUsed": "der anfällige Code wird nicht verwendet", + "reasonAfterReview": "nach Prüfung" }, "findingList": { "clearFilters": "Filter löschen", @@ -1368,6 +1387,107 @@ "syncInProgress": "Eine Sicherheitssynchronisierung läuft bereits. Bitte versuche es erneut.", "dismissalInProgress": "Diese Verwerfung ist bereits im Gange. Bitte versuche es erneut.", "couldNotReadPendingSyncs": "Ausstehende Synchronisierungen konnten nicht gelesen werden. Versuche es erneut." + }, + "analysisState": { + "queued": "Analyse eingereiht", + "queuedTitle": "Analyse eingereiht", + "queuedDescription": "Warte, bis Analysekapazität verfügbar ist.", + "analyzing": "Wird analysiert", + "analyzingTitle": "Wird analysiert", + "analyzingDescription": "Prüft, ob der Anwendungscode die betroffene Funktion erreichen kann.", + "failed": "Analyse fehlgeschlagen", + "failedTitle": "Analyse fehlgeschlagen", + "failedDescription": "Security Agent konnte die Analyse nicht abschließen.", + "extractionFailed": "Braucht Prüfung", + "extractionFailedTitle": "Braucht Prüfung", + "extractionFailedDescription": "Der technische Bericht konnte nicht in ein strukturiertes Ergebnis umgewandelt werden.", + "exploitable": "Ausnutzbar", + "exploitableTitle": "Ausnutzbar", + "exploitableDescription": "Der Anwendungscode kann die betroffene Funktion erreichen.", + "notExploitable": "Nicht erreichbar", + "notExploitableTitle": "Nicht erreichbar", + "notExploitableDescription": "In diesem Repository wurde kein erreichbarer Pfad gefunden.", + "unknown": "Braucht Prüfung", + "unknownTitle": "Braucht Prüfung", + "unknownDescription": "Die Analyse konnte nicht bestätigen, ob die anfällige Funktion erreichbar ist.", + "safeToDismiss": "Sicher zu verwerfen", + "safeToDismissTitle": "Sicher zu verwerfen", + "safeToDismissDescription": "Triage hat festgestellt, dass dies ohne Codebase-Analyse sicher verworfen werden kann.", + "manualReview": "Braucht Prüfung", + "manualReviewTitle": "Braucht manuelle Prüfung", + "manualReviewDescription": "Triage hat dieses Finding zur manuellen Prüfung markiert.", + "analysisRequired": "Analyse erforderlich", + "analysisRequiredTitle": "Codebase-Analyse erforderlich", + "analysisRequiredDescription": "Triage empfiehlt, das Repository zu analysieren, bevor du über eine Maßnahme entscheidest.", + "completed": "Analysiert", + "completedTitle": "Analysiert", + "completedDescription": "Die Analyse wurde abgeschlossen, ohne dass ein spezifisches Ergebnis erfasst wurde.", + "notAnalyzed": "Nicht analysiert", + "notAnalyzedTitle": "Nicht analysiert", + "notAnalyzedDescription": "Für dieses Finding wurde noch keine Codebase-Analyse ausgeführt." + }, + "deadline": { + "fixedBeforeDeadline": "Vor der Frist behoben", + "fixed": "Behoben", + "fixedOn": "Behoben am {{date}}", + "resolutionRecorded": "Lösung erfasst", + "superseded": "Ersetzt", + "dismissed": "Verworfen", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Keine Frist festgelegt", + "noSlaDeadline": "Keine SLA-Frist", + "dueOn": "Fällig am {{date}}", + "overdueNow": "Überfällig", + "overdue_one": "{{count}} Tag überfällig", + "overdue_other": "{{count}} Tage überfällig", + "dueToday": "Heute fällig", + "dueTomorrow": "Morgen fällig", + "dueInDays_one": "Fällig in {{count}} Tag", + "dueInDays_other": "Fällig in {{count}} Tagen", + "overdue": "{{count}} Tage überfällig", + "dueInDays": "Fällig in {{count}} Tagen" + }, + "remediationStatus": { + "cancellationRequested": "Abbruch angefordert", + "notStarted": "Nicht gestartet", + "queued": "Eingereiht", + "starting": "Wird gestartet", + "inProgress": "In Bearbeitung", + "draftPrOpened": "Entwurfs-PR geöffnet", + "prOpened": "PR geöffnet", + "blocked": "Blockiert", + "failed": "Fehlgeschlagen", + "noChangesNeeded": "Keine Änderungen nötig", + "cancelled": "Abgebrochen", + "originAutomaticPolicy": "Automatische Richtlinie", + "originIncludeExistingPolicy": "Bestehende Richtlinie einbeziehen", + "originManual": "Manuell", + "validationCheck": "Validierungsprüfung {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Das Security-Finding existiert nicht mehr.", + "approvalRequired": "Die automatische Behebung erfordert eine Genehmigung. Starte die Behebung manuell, um sie zu genehmigen.", + "findingNotOpen": "Das Finding ist nicht mehr offen.", + "repoNotInScope": "Das Repository ist nicht für Security Agent ausgewählt.", + "analysisRequired": "Führe eine Codebase-Analyse aus, bevor du die Behebung startest.", + "sandboxAnalysisRequired": "Führe eine Codebase-Analyse aus, bevor du die Behebung startest.", + "staleAnalysis": "Das Finding hat sich nach der Analyse geändert. Führe die Analyse erneut aus, bevor du die Behebung startest.", + "notExploitable": "Die Analyse fand keinen erreichbaren anfälligen Pfad. Die automatische Behebung ist nicht verfügbar.", + "exploitabilityUnknown": "Die Analyse konnte die Ausnutzbarkeit nicht bestätigen. Vor der Ein-Klick-Behebung ist eine manuelle Prüfung erforderlich.", + "manualReviewRequired": "Die Analyse empfiehlt eine manuelle Prüfung, daher ist die Ein-Klick-Behebung nicht verfügbar.", + "monitorRequired": "Die Analyse empfiehlt Überwachung statt eines PR.", + "triageOnly": "Nur die Triage ist abgeschlossen. Führe eine Codebase-Analyse aus, bevor du die Behebung startest.", + "actionNotConcrete": "Es ist kein konkreter Abhängigkeits-Patch oder vorgeschlagener Fix verfügbar.", + "remediationActive": "Ein Behebungsversuch ist bereits aktiv.", + "prAlreadyOpened": "Ein Behebungs-PR ist bereits offen.", + "duplicateAnalysisResult": "Dieses Analyseergebnis hat bereits Behebungsarbeit erzeugt.", + "retryNotAllowed": "Für diesen Versuch ist kein erneuter Versuch möglich.", + "securityAgentDisabled": "Security Agent ist für diesen Inhaber deaktiviert.", + "autoRemediationDisabled": "Die automatische Behebung ist deaktiviert. Die manuelle Behebung kann weiterhin starten, wenn die Sicherheitsgates bestanden sind.", + "includeExistingDisabled": "Bestehende Findings sind von der automatischen Behebung ausgeschlossen.", + "belowThreshold": "Das Finding liegt unter der automatischen Schweregradschwelle. Die manuelle Behebung kann weiterhin starten, wenn die Sicherheitsgates bestanden sind.", + "beforeEnablement": "Die Analyse wurde abgeschlossen, bevor die automatische Behebung aktiviert wurde. Die manuelle Behebung kann weiterhin starten, wenn die Sicherheitsgates bestanden sind.", + "generic": "Die Behebung ist für dieses Finding nicht verfügbar." } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "Review senden", "partialPostedMessage": "{{displayFreshCount}} Kommentar(e) gesendet. {{displayStaleCount}} Kommentar(e) beziehen sich auf einen älteren Commit und bleiben in deiner Warteschlange.", "submitCountOfTotal": "{{displayFreshCount}} von {{displayTotalCount}} Kommentaren senden", - "submitReview": "Review senden" + "submitReview": "Review senden", + "blockedRequestChanges": "Füge eine Zusammenfassung oder mindestens einen Kommentar hinzu, um Änderungen anzufordern.", + "blockedComment": "Füge eine Zusammenfassung oder mindestens einen Kommentar hinzu, um einen Kommentar-Review zu senden." }, "fileStatus": { "added": "Hinzugefügt", diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index 7412c6359b..d450067f8b 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -512,7 +512,9 @@ "pendingComment_other": "εκκρεμή σχόλια", "submitCountOfTotal": "Υποβολή {{displayFreshCount}} από {{displayTotalCount}} σχόλια", "submitReview": "Υποβολή αναθεώρησης", - "partialPostedMessage": "Δημοσιεύτηκαν {{displayFreshCount}} σχόλιο(α). {{displayStaleCount}} σχόλιο(α) αναφέρονται σε παλαιότερο commit και παρέμειναν στην ουρά σας." + "partialPostedMessage": "Δημοσιεύτηκαν {{displayFreshCount}} σχόλιο(α). {{displayStaleCount}} σχόλιο(α) αναφέρονται σε παλαιότερο commit και παρέμειναν στην ουρά σας.", + "blockedRequestChanges": "Προσθέστε μια σύνοψη ή τουλάχιστον ένα σχόλιο για να ζητήσετε αλλαγές.", + "blockedComment": "Προσθέστε μια σύνοψη ή τουλάχιστον ένα σχόλιο για να δημοσιεύσετε μια αναθεώρηση με σχόλιο." }, "reconnectNotice": { "title": "Η σύνδεση GitHub έληξε", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Δεν ήταν δυνατή η ενημέρωση του αναθεωρητή", - "configSaveFailed": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων αναθεώρησης" + "configSaveFailed": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων αναθεώρησης", + "status": { + "pending": "Σε εκκρεμότητα", + "queued": "Σε αναμονή", + "running": "Σε εξέλιξη", + "completed": "Ολοκληρώθηκε", + "failed": "Απέτυχε", + "cancelled": "Ακυρώθηκε", + "interrupted": "Διακόπηκε" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Εγγραφή πηγής", "source": "Πηγή", "sourceId": "Αναγνωριστικό πηγής", - "viewAdvisory": "Προβολή συμβουλευτικής στο GitHub" + "viewAdvisory": "Προβολή συμβουλευτικής στο GitHub", + "statusSuperseded": "Αντικαταστάθηκε", + "statusFixed": "Διορθώθηκε", + "statusOpen": "Ανοιχτό", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "έχει ήδη ξεκινήσει μια διόρθωση", + "reasonNoBandwidth": "δεν υπάρχει διαθέσιμο περιθώριο", + "reasonTolerableRisk": "ο κίνδυνος είναι αποδεκτός", + "reasonInaccurate": "το εύρημα είναι ανακριβές", + "reasonNotUsed": "ο ευάλωτος κώδικας δεν χρησιμοποιείται", + "reasonAfterReview": "μετά την αναθεώρηση" }, "settingsOverview": { "title": "Ρυθμίσεις", @@ -1805,6 +1826,107 @@ "syncInProgress": "Ένας συγχρονισμός ασφαλείας είναι ήδη σε εξέλιξη. Δοκιμάστε ξανά.", "dismissalInProgress": "Αυτή η απόρριψη είναι ήδη σε εξέλιξη. Δοκιμάστε ξανά.", "couldNotReadPendingSyncs": "Δεν ήταν δυνατή η ανάγνωση των εκκρεμών συγχρονισμών. Δοκιμάστε ξανά." + }, + "analysisState": { + "queued": "Ανάλυση σε αναμονή", + "queuedTitle": "Ανάλυση σε αναμονή", + "queuedDescription": "Αναμονή για διαθέσιμη χωρητικότητα ανάλυσης.", + "analyzing": "Ανάλυση σε εξέλιξη", + "analyzingTitle": "Ανάλυση σε εξέλιξη", + "analyzingDescription": "Έλεγχος αν ο κώδικας της εφαρμογής μπορεί να φτάσει στη σχετική λειτουργία.", + "failed": "Η ανάλυση απέτυχε", + "failedTitle": "Η ανάλυση απέτυχε", + "failedDescription": "Ο Security Agent δεν μπόρεσε να ολοκληρώσει την ανάλυση.", + "extractionFailed": "Χρειάζεται αναθεώρηση", + "extractionFailedTitle": "Χρειάζεται αναθεώρηση", + "extractionFailedDescription": "Η τεχνική αναφορά δεν μπόρεσε να μετατραπεί σε δομημένο αποτέλεσμα.", + "exploitable": "Εκμεταλλεύσιμο", + "exploitableTitle": "Εκμεταλλεύσιμο", + "exploitableDescription": "Ο κώδικας της εφαρμογής μπορεί να φτάσει στη σχετική λειτουργία.", + "notExploitable": "Μη προσεγγίσιμο", + "notExploitableTitle": "Μη προσεγγίσιμο", + "notExploitableDescription": "Δεν βρέθηκε προσεγγίσιμη διαδρομή σε αυτό το αποθετήριο.", + "unknown": "Χρειάζεται αναθεώρηση", + "unknownTitle": "Χρειάζεται αναθεώρηση", + "unknownDescription": "Η ανάλυση δεν μπόρεσε να επιβεβαιώσει αν η ευάλωτη λειτουργία είναι προσεγγίσιμη.", + "safeToDismiss": "Ασφαλές προς απόρριψη", + "safeToDismissTitle": "Ασφαλές προς απόρριψη", + "safeToDismissDescription": "Η διαλογή προσδιόρισε ότι αυτό μπορεί να απορριφθεί με ασφάλεια χωρίς ανάλυση της βάσης κώδικα.", + "manualReview": "Χρειάζεται αναθεώρηση", + "manualReviewTitle": "Χρειάζεται χειροκίνητη αναθεώρηση", + "manualReviewDescription": "Η διαλογή επισήμανε αυτό το εύρημα για χειροκίνητη αναθεώρηση.", + "analysisRequired": "Απαιτείται ανάλυση", + "analysisRequiredTitle": "Απαιτείται ανάλυση της βάσης κώδικα", + "analysisRequiredDescription": "Η διαλογή συνιστά την ανάλυση του αποθετηρίου πριν αποφασίσετε για την αντίδραση.", + "completed": "Αναλύθηκε", + "completedTitle": "Αναλύθηκε", + "completedDescription": "Η ανάλυση ολοκληρώθηκε χωρίς να καταγραφεί συγκεκριμένο αποτέλεσμα.", + "notAnalyzed": "Δεν αναλύθηκε", + "notAnalyzedTitle": "Δεν αναλύθηκε", + "notAnalyzedDescription": "Η ανάλυση της βάσης κώδικα δεν έχει εκτελεστεί ακόμα για αυτό το εύρημα." + }, + "deadline": { + "fixedBeforeDeadline": "Διορθώθηκε πριν την προθεσμία", + "fixed": "Διορθώθηκε", + "fixedOn": "Διορθώθηκε στις {{date}}", + "resolutionRecorded": "Η λύση καταγράφηκε", + "superseded": "Αντικαταστάθηκε", + "dismissed": "Απορρίφθηκε", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Η προθεσμία δεν έχει οριστεί", + "noSlaDeadline": "Χωρίς προθεσμία SLA", + "dueOn": "Λήγει στις {{date}}", + "overdueNow": "Εκπρόθεσμο", + "overdue_one": "{{count}} ημέρα εκπρόθεσμο", + "overdue_other": "{{count}} ημέρες εκπρόθεσμο", + "dueToday": "Λήγει σήμερα", + "dueTomorrow": "Λήγει αύριο", + "dueInDays_one": "Λήγει σε {{count}} ημέρα", + "dueInDays_other": "Λήγει σε {{count}} ημέρες", + "overdue": "{{count}} ημέρες εκπρόθεσμο", + "dueInDays": "Λήγει σε {{count}} ημέρες" + }, + "remediationStatus": { + "cancellationRequested": "Ζητήθηκε ακύρωση", + "notStarted": "Δεν ξεκίνησε", + "queued": "Σε αναμονή", + "starting": "Έναρξη", + "inProgress": "Σε εξέλιξη", + "draftPrOpened": "Ανοίχτηκε πρόχειρο PR", + "prOpened": "Ανοίχτηκε PR", + "blocked": "Μπλοκαρίστηκε", + "failed": "Απέτυχε", + "noChangesNeeded": "Δεν χρειάζονται αλλαγές", + "cancelled": "Ακυρώθηκε", + "originAutomaticPolicy": "Αυτόματη πολιτική", + "originIncludeExistingPolicy": "Συμπερίληψη υπάρχουσας πολιτικής", + "originManual": "Χειροκίνητο", + "validationCheck": "Έλεγχος επικύρωσης {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Το εύρημα ασφάλειας δεν υπάρχει πλέον.", + "approvalRequired": "Η αυτόματη αποκατάσταση απαιτεί έγκριση. Ξεκινήστε την αποκατάσταση χειροκίνητα για να την εγκρίνετε.", + "findingNotOpen": "Το εύρημα δεν είναι πλέον ανοιχτό.", + "repoNotInScope": "Το αποθετήριο δεν έχει επιλεγεί για τον Security Agent.", + "analysisRequired": "Εκτελέστε ανάλυση της βάσης κώδικα πριν ξεκινήσετε την αποκατάσταση.", + "sandboxAnalysisRequired": "Εκτελέστε ανάλυση της βάσης κώδικα πριν ξεκινήσετε την αποκατάσταση.", + "staleAnalysis": "Το εύρημα άλλαξε μετά την ανάλυση. Εκτελέστε ξανά την ανάλυση πριν ξεκινήσετε την αποκατάσταση.", + "notExploitable": "Η ανάλυση δεν βρήκε προσεγγίσιμη ευάλωτη διαδρομή. Η αυτόματη αποκατάσταση δεν είναι διαθέσιμη.", + "exploitabilityUnknown": "Η ανάλυση δεν μπόρεσε να επιβεβαιώσει την εκμεταλλευσιμότητα. Απαιτείται χειροκίνητη αναθεώρηση πριν από την αποκατάσταση με ένα κλικ.", + "manualReviewRequired": "Η ανάλυση συνιστά χειροκίνητη αναθεώρηση, επομένως η αποκατάσταση με ένα κλικ δεν είναι διαθέσιμη.", + "monitorRequired": "Η ανάλυση συνιστά παρακολούθηση αντί για άνοιγμα PR.", + "triageOnly": "Έχει ολοκληρωθεί μόνο η διαλογή. Εκτελέστε ανάλυση της βάσης κώδικα πριν ξεκινήσετε την αποκατάσταση.", + "actionNotConcrete": "Δεν υπάρχει διαθέσιμη συγκεκριμένη επιδιόρθωση εξάρτησης ή προτεινόμενη διόρθωση.", + "remediationActive": "Υπάρχει ήδη μια ενεργή προσπάθεια αποκατάστασης.", + "prAlreadyOpened": "Υπάρχει ήδη ανοιχτό PR αποκατάστασης.", + "duplicateAnalysisResult": "Αυτό το αποτέλεσμα ανάλυσης έχει ήδη δημιουργήσει εργασία αποκατάστασης.", + "retryNotAllowed": "Η επανάληψη δεν είναι διαθέσιμη για αυτή την προσπάθεια.", + "securityAgentDisabled": "Ο Security Agent είναι ανενεργός για αυτόν τον ιδιοκτήτη.", + "autoRemediationDisabled": "Η αυτόματη αποκατάσταση είναι ανενεργή. Η χειροκίνητη αποκατάσταση μπορεί ακόμα να ξεκινήσει όταν περάσουν οι έλεγχοι ασφάλειας.", + "includeExistingDisabled": "Τα υπάρχοντα ευρήματα εξαιρούνται από την αυτόματη αποκατάσταση.", + "belowThreshold": "Το εύρημα είναι κάτω από το αυτόματο όριο σοβαρότητας. Η χειροκίνητη αποκατάσταση μπορεί ακόμα να ξεκινήσει όταν περάσουν οι έλεγχοι ασφάλειας.", + "beforeEnablement": "Η ανάλυση ολοκληρώθηκε πριν ενεργοποιηθεί η αυτόματη αποκατάσταση. Η χειροκίνητη αποκατάσταση μπορεί ακόμα να ξεκινήσει όταν περάσουν οι έλεγχοι ασφάλειας.", + "generic": "Η αποκατάσταση δεν είναι διαθέσιμη για αυτό το εύρημα." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index 77f6695942..83bd5f2323 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -512,7 +512,9 @@ "pendingComment_other": "pending comments", "submitCountOfTotal": "Submit {{displayFreshCount}} of {{displayTotalCount}} comments", "submitReview": "Submit review", - "partialPostedMessage": "Posted {{displayFreshCount}} comment(s). {{displayStaleCount}} comment(s) point at an older commit and stayed in your queue." + "partialPostedMessage": "Posted {{displayFreshCount}} comment(s). {{displayStaleCount}} comment(s) point at an older commit and stayed in your queue.", + "blockedRequestChanges": "Add a summary or at least one comment to request changes.", + "blockedComment": "Add a summary or at least one comment to post a comment review." }, "reconnectNotice": { "title": "GitHub connection expired", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Failed to update reviewer", - "configSaveFailed": "Failed to save review config" + "configSaveFailed": "Failed to save review config", + "status": { + "pending": "Pending", + "queued": "Queued", + "running": "Running", + "completed": "Completed", + "failed": "Failed", + "cancelled": "Cancelled", + "interrupted": "Interrupted" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Source record", "source": "Source", "sourceId": "Source ID", - "viewAdvisory": "View advisory on GitHub" + "viewAdvisory": "View advisory on GitHub", + "statusSuperseded": "Superseded", + "statusFixed": "Fixed", + "statusOpen": "Open", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "a fix has already started", + "reasonNoBandwidth": "no bandwidth is available", + "reasonTolerableRisk": "the risk is tolerable", + "reasonInaccurate": "the finding is inaccurate", + "reasonNotUsed": "vulnerable code is not used", + "reasonAfterReview": "after review" }, "settingsOverview": { "title": "Settings", @@ -1805,6 +1826,107 @@ "syncInProgress": "A security sync is already in progress. Please try again.", "dismissalInProgress": "This dismissal is already in progress. Please try again.", "couldNotReadPendingSyncs": "Could not read pending syncs. Try again." + }, + "analysisState": { + "queued": "Analysis queued", + "queuedTitle": "Analysis queued", + "queuedDescription": "Waiting for analysis capacity to become available.", + "analyzing": "Analyzing", + "analyzingTitle": "Analyzing", + "analyzingDescription": "Checking whether application code can reach the affected feature.", + "failed": "Analysis failed", + "failedTitle": "Analysis failed", + "failedDescription": "Security Agent could not complete the analysis.", + "extractionFailed": "Needs review", + "extractionFailedTitle": "Needs review", + "extractionFailedDescription": "The technical report could not be turned into a structured result.", + "exploitable": "Exploitable", + "exploitableTitle": "Exploitable", + "exploitableDescription": "Application code can reach the affected feature.", + "notExploitable": "Unreachable", + "notExploitableTitle": "Unreachable", + "notExploitableDescription": "No reachable path was found in this repository.", + "unknown": "Needs review", + "unknownTitle": "Needs review", + "unknownDescription": "Analysis could not confirm whether the vulnerable feature is reachable.", + "safeToDismiss": "Safe to dismiss", + "safeToDismissTitle": "Safe to dismiss", + "safeToDismissDescription": "Triage determined this can be safely dismissed without codebase analysis.", + "manualReview": "Needs review", + "manualReviewTitle": "Needs manual review", + "manualReviewDescription": "Triage flagged this finding for manual review.", + "analysisRequired": "Analysis required", + "analysisRequiredTitle": "Codebase analysis required", + "analysisRequiredDescription": "Triage recommends analyzing the repository before deciding a response.", + "completed": "Analyzed", + "completedTitle": "Analyzed", + "completedDescription": "Analysis completed with no specific outcome recorded.", + "notAnalyzed": "Not analyzed", + "notAnalyzedTitle": "Not analyzed", + "notAnalyzedDescription": "Codebase analysis has not run for this finding yet." + }, + "deadline": { + "fixedBeforeDeadline": "Fixed before deadline", + "fixed": "Fixed", + "fixedOn": "Fixed {{date}}", + "resolutionRecorded": "Resolution recorded", + "superseded": "Superseded", + "dismissed": "Dismissed", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Deadline not set", + "noSlaDeadline": "No SLA deadline", + "dueOn": "Due {{date}}", + "overdueNow": "Overdue", + "overdue_one": "{{count}} day overdue", + "overdue_other": "{{count}} days overdue", + "dueToday": "Due today", + "dueTomorrow": "Due tomorrow", + "dueInDays_one": "Due in {{count}} day", + "dueInDays_other": "Due in {{count}} days", + "overdue": "{{count}} days overdue", + "dueInDays": "Due in {{count}} days" + }, + "remediationStatus": { + "cancellationRequested": "Cancellation requested", + "notStarted": "Not started", + "queued": "Queued", + "starting": "Starting", + "inProgress": "In progress", + "draftPrOpened": "Draft PR opened", + "prOpened": "PR opened", + "blocked": "Blocked", + "failed": "Failed", + "noChangesNeeded": "No changes needed", + "cancelled": "Cancelled", + "originAutomaticPolicy": "Automatic policy", + "originIncludeExistingPolicy": "Include existing policy", + "originManual": "Manual", + "validationCheck": "Validation check {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Security finding no longer exists.", + "approvalRequired": "Auto Remediation requires approval. Start remediation manually to approve it.", + "findingNotOpen": "Finding is no longer open.", + "repoNotInScope": "Repository is not selected for Security Agent.", + "analysisRequired": "Run codebase analysis before starting remediation.", + "sandboxAnalysisRequired": "Run codebase analysis before starting remediation.", + "staleAnalysis": "Finding changed after analysis. Rerun analysis before starting remediation.", + "notExploitable": "Analysis found no reachable vulnerable path. Auto Remediation is unavailable.", + "exploitabilityUnknown": "Analysis could not confirm exploitability. Manual review is required before one-click remediation.", + "manualReviewRequired": "Analysis recommends manual review, so one-click remediation is unavailable.", + "monitorRequired": "Analysis recommends monitoring instead of opening a PR.", + "triageOnly": "Only triage has completed. Run codebase analysis before starting remediation.", + "actionNotConcrete": "No concrete dependency patch or suggested fix is available.", + "remediationActive": "A remediation attempt is already active.", + "prAlreadyOpened": "A remediation PR is already open.", + "duplicateAnalysisResult": "This analysis result already produced remediation work.", + "retryNotAllowed": "Retry is not available for this attempt.", + "securityAgentDisabled": "Security Agent is disabled for this owner.", + "autoRemediationDisabled": "Auto Remediation is disabled. Manual remediation can still start when safety gates pass.", + "includeExistingDisabled": "Existing findings are excluded from automatic remediation.", + "belowThreshold": "Finding is below automatic severity threshold. Manual remediation can still start when safety gates pass.", + "beforeEnablement": "Analysis completed before Auto Remediation was enabled. Manual remediation can still start when safety gates pass.", + "generic": "Remediation is unavailable for this finding." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index 3a584c158c..d2947c09bb 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -941,7 +941,16 @@ "set": "Establecer" }, "updateFailed": "No se pudo actualizar el revisor", - "configSaveFailed": "No se pudo guardar la configuración de revisión" + "configSaveFailed": "No se pudo guardar la configuración de revisión", + "status": { + "pending": "Pendiente", + "queued": "En cola", + "running": "En ejecución", + "completed": "Completado", + "failed": "Fallido", + "cancelled": "Cancelado", + "interrupted": "Interrumpido" + } }, "securityAgent": { "filter": { @@ -1188,7 +1197,17 @@ "unknown": "Desconocido", "updated": "Actualizado", "viewAdvisory": "Ver el aviso en GitHub", - "vulnerableVersions": "Versiones vulnerables" + "vulnerableVersions": "Versiones vulnerables", + "statusSuperseded": "Reemplazado", + "statusFixed": "Corregido", + "statusOpen": "Abierto", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ya se ha iniciado una corrección", + "reasonNoBandwidth": "no hay capacidad disponible", + "reasonTolerableRisk": "el riesgo es tolerable", + "reasonInaccurate": "el hallazgo es inexacto", + "reasonNotUsed": "el código vulnerable no se usa", + "reasonAfterReview": "después de la revisión" }, "findingList": { "clearFilters": "Borrar filtros", @@ -1372,6 +1391,109 @@ "syncInProgress": "Ya hay una sincronización de seguridad en curso. Inténtalo de nuevo.", "dismissalInProgress": "Este descarte ya está en curso. Inténtalo de nuevo.", "couldNotReadPendingSyncs": "No se pudieron leer las sincronizaciones pendientes. Inténtalo de nuevo." + }, + "analysisState": { + "queued": "Análisis en cola", + "queuedTitle": "Análisis en cola", + "queuedDescription": "Esperando a que haya capacidad de análisis disponible.", + "analyzing": "Analizando", + "analyzingTitle": "Analizando", + "analyzingDescription": "Comprobando si el código de la aplicación puede llegar a la función afectada.", + "failed": "El análisis falló", + "failedTitle": "El análisis falló", + "failedDescription": "Security Agent no pudo completar el análisis.", + "extractionFailed": "Necesita revisión", + "extractionFailedTitle": "Necesita revisión", + "extractionFailedDescription": "El informe técnico no se pudo convertir en un resultado estructurado.", + "exploitable": "Explotable", + "exploitableTitle": "Explotable", + "exploitableDescription": "El código de la aplicación puede llegar a la función afectada.", + "notExploitable": "Inalcanzable", + "notExploitableTitle": "Inalcanzable", + "notExploitableDescription": "No se encontró ninguna ruta alcanzable en este repositorio.", + "unknown": "Necesita revisión", + "unknownTitle": "Necesita revisión", + "unknownDescription": "El análisis no pudo confirmar si la función vulnerable es alcanzable.", + "safeToDismiss": "Seguro de descartar", + "safeToDismissTitle": "Seguro de descartar", + "safeToDismissDescription": "El triaje determinó que esto se puede descartar con seguridad sin análisis del código.", + "manualReview": "Necesita revisión", + "manualReviewTitle": "Necesita revisión manual", + "manualReviewDescription": "El triaje marcó este hallazgo para revisión manual.", + "analysisRequired": "Análisis requerido", + "analysisRequiredTitle": "Se requiere análisis del código", + "analysisRequiredDescription": "El triaje recomienda analizar el repositorio antes de decidir una respuesta.", + "completed": "Analizado", + "completedTitle": "Analizado", + "completedDescription": "El análisis se completó sin registrar ningún resultado específico.", + "notAnalyzed": "No analizado", + "notAnalyzedTitle": "No analizado", + "notAnalyzedDescription": "El análisis del código aún no se ha ejecutado para este hallazgo." + }, + "deadline": { + "fixedBeforeDeadline": "Corregido antes del plazo", + "fixed": "Corregido", + "fixedOn": "Corregido el {{date}}", + "resolutionRecorded": "Resolución registrada", + "superseded": "Reemplazado", + "dismissed": "Descartado", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Plazo no establecido", + "noSlaDeadline": "Sin plazo de SLA", + "dueOn": "Vence el {{date}}", + "overdueNow": "Vencido", + "overdue_one": "{{count}} día de retraso", + "overdue_many": "{{count}} días de retraso", + "overdue_other": "{{count}} días de retraso", + "dueToday": "Vence hoy", + "dueTomorrow": "Vence mañana", + "dueInDays_one": "Vence en {{count}} día", + "dueInDays_many": "Vence en {{count}} días", + "dueInDays_other": "Vence en {{count}} días", + "overdue": "{{count}} días de retraso", + "dueInDays": "Vence en {{count}} días" + }, + "remediationStatus": { + "cancellationRequested": "Cancelación solicitada", + "notStarted": "No iniciado", + "queued": "En cola", + "starting": "Iniciando", + "inProgress": "En curso", + "draftPrOpened": "PR en borrador abierto", + "prOpened": "PR abierto", + "blocked": "Bloqueado", + "failed": "Fallido", + "noChangesNeeded": "No se necesitan cambios", + "cancelled": "Cancelado", + "originAutomaticPolicy": "Política automática", + "originIncludeExistingPolicy": "Incluir política existente", + "originManual": "Manual", + "validationCheck": "Comprobación de validación {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "El hallazgo de seguridad ya no existe.", + "approvalRequired": "La corrección automática requiere aprobación. Inicia la corrección manualmente para aprobarla.", + "findingNotOpen": "El hallazgo ya no está abierto.", + "repoNotInScope": "El repositorio no está seleccionado para Security Agent.", + "analysisRequired": "Ejecuta el análisis del código antes de iniciar la corrección.", + "sandboxAnalysisRequired": "Ejecuta el análisis del código antes de iniciar la corrección.", + "staleAnalysis": "El hallazgo cambió después del análisis. Vuelve a ejecutar el análisis antes de iniciar la corrección.", + "notExploitable": "El análisis no encontró ninguna ruta vulnerable alcanzable. La corrección automática no está disponible.", + "exploitabilityUnknown": "El análisis no pudo confirmar la explotabilidad. Se requiere revisión manual antes de la corrección con un clic.", + "manualReviewRequired": "El análisis recomienda revisión manual, por lo que la corrección con un clic no está disponible.", + "monitorRequired": "El análisis recomienda monitoreo en lugar de abrir un PR.", + "triageOnly": "Solo se ha completado el triaje. Ejecuta el análisis del código antes de iniciar la corrección.", + "actionNotConcrete": "No hay ningún parche de dependencia concreto ni corrección sugerida disponible.", + "remediationActive": "Ya hay un intento de corrección activo.", + "prAlreadyOpened": "Ya hay un PR de corrección abierto.", + "duplicateAnalysisResult": "Este resultado de análisis ya generó trabajo de corrección.", + "retryNotAllowed": "El reintento no está disponible para este intento.", + "securityAgentDisabled": "Security Agent está desactivado para este propietario.", + "autoRemediationDisabled": "La corrección automática está desactivada. La corrección manual aún puede iniciarse cuando se superen los controles de seguridad.", + "includeExistingDisabled": "Los hallazgos existentes están excluidos de la corrección automática.", + "belowThreshold": "El hallazgo está por debajo del umbral de severidad automático. La corrección manual aún puede iniciarse cuando se superen los controles de seguridad.", + "beforeEnablement": "El análisis se completó antes de que se activara la corrección automática. La corrección manual aún puede iniciarse cuando se superen los controles de seguridad.", + "generic": "La corrección no está disponible para este hallazgo." } }, "agents": { @@ -2657,7 +2779,9 @@ "partialPostedMessage": "Se publicaron {{displayFreshCount}} comentario(s). {{displayStaleCount}} comentario(s) apuntan a un commit anterior y se quedaron en tu cola.", "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentarios", "submitReview": "Enviar revisión", - "pendingComment_many": "comentarios pendientes" + "pendingComment_many": "comentarios pendientes", + "blockedRequestChanges": "Añade un resumen o al menos un comentario para solicitar cambios.", + "blockedComment": "Añade un resumen o al menos un comentario para enviar una revisión de comentario." }, "fileStatus": { "added": "Añadido", diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index a02eeb950b..cf308e65d0 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -512,7 +512,9 @@ "pendingComment_other": "ootel kommentaari", "submitCountOfTotal": "Esita {{displayFreshCount}}/{{displayTotalCount}} kommentaari", "submitReview": "Esita ülevaade", - "partialPostedMessage": "Esitati {{displayFreshCount}} kommentaari. {{displayStaleCount}} kommentaari viitavad vanemale commit'ile ja jäid sinu järjekorda." + "partialPostedMessage": "Esitati {{displayFreshCount}} kommentaari. {{displayStaleCount}} kommentaari viitavad vanemale commit'ile ja jäid sinu järjekorda.", + "blockedRequestChanges": "Muudatuste nõudmiseks lisa kokkuvõte või vähemalt üks kommentaar.", + "blockedComment": "Kommentaarülevaate esitamiseks lisa kokkuvõte või vähemalt üks kommentaar." }, "reconnectNotice": { "title": "GitHub'i ühendus aegus", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Koodiülevaataja", "updateFailed": "Ülevaataja uuendamine ebaõnnestus", - "configSaveFailed": "Ülevaate konfiguratsiooni salvestamine ebaõnnestus" + "configSaveFailed": "Ülevaate konfiguratsiooni salvestamine ebaõnnestus", + "status": { + "pending": "Ootel", + "queued": "Järjekorras", + "running": "Käimas", + "completed": "Lõpetatud", + "failed": "Ebaõnnestus", + "cancelled": "Tühistatud", + "interrupted": "Katkestatud" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Lähtekirje", "source": "Allikas", "sourceId": "Allika ID", - "viewAdvisory": "Vaata nõuannet GitHub'is" + "viewAdvisory": "Vaata nõuannet GitHub'is", + "statusSuperseded": "Asendatud", + "statusFixed": "Parandatud", + "statusOpen": "Avatud", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "parandus on juba alanud", + "reasonNoBandwidth": "läbilaskevõime puudub", + "reasonTolerableRisk": "risk on talutav", + "reasonInaccurate": "leid on ebatäpne", + "reasonNotUsed": "haavatavat koodi ei kasutata", + "reasonAfterReview": "pärast ülevaatamist" }, "settingsOverview": { "title": "Seaded", @@ -1805,6 +1826,107 @@ "syncInProgress": "Turbesünkroonimine on juba käimas. Proovi uuesti.", "dismissalInProgress": "See kõrvalejätmine on juba käimas. Proovi uuesti.", "couldNotReadPendingSyncs": "Ootel sünkroonimisi ei õnnestunud lugeda. Proovi uuesti." + }, + "analysisState": { + "queued": "Analüüs järjekorras", + "queuedTitle": "Analüüs järjekorras", + "queuedDescription": "Oodatakse, kuni analüüsivõimekus vabaneb.", + "analyzing": "Analüüsimine", + "analyzingTitle": "Analüüsimine", + "analyzingDescription": "Kontrollitakse, kas rakenduse kood jõuab mõjutatud funktsioonini.", + "failed": "Analüüs ebaõnnestus", + "failedTitle": "Analüüs ebaõnnestus", + "failedDescription": "Security Agent ei saanud analüüsi lõpule viia.", + "extractionFailed": "Vajab ülevaadet", + "extractionFailedTitle": "Vajab ülevaadet", + "extractionFailedDescription": "Tehnilist aruannet ei õnnestunud struktureeritud tulemuseks muuta.", + "exploitable": "Ärakasutatav", + "exploitableTitle": "Ärakasutatav", + "exploitableDescription": "Rakenduse kood jõuab mõjutatud funktsioonini.", + "notExploitable": "Pole kasutatav", + "notExploitableTitle": "Pole kasutatav", + "notExploitableDescription": "Selles hoidlas ei leitud ligipääsetavat teed.", + "unknown": "Vajab ülevaadet", + "unknownTitle": "Vajab ülevaadet", + "unknownDescription": "Analüüs ei saanud kinnitada, kas haavatav funktsioon on ligipääsetav.", + "safeToDismiss": "Ohutu tagasi lükata", + "safeToDismissTitle": "Ohutu tagasi lükata", + "safeToDismissDescription": "Triaaž otsustas, et selle saab ilma koodivaramu analüüsita ohutult tagasi lükata.", + "manualReview": "Vajab ülevaadet", + "manualReviewTitle": "Vajab käsitsi ülevaatamist", + "manualReviewDescription": "Triaaž märkis selle leiu käsitsi ülevaateks.", + "analysisRequired": "Analüüs on vajalik", + "analysisRequiredTitle": "Koodivaramu analüüs on vajalik", + "analysisRequiredDescription": "Triaaž soovitab enne vastuse otsustamist hoidlat analüüsida.", + "completed": "Analüüsitud", + "completedTitle": "Analüüsitud", + "completedDescription": "Analüüs lõppes ilma konkreetse tulemuseta.", + "notAnalyzed": "Pole analüüsitud", + "notAnalyzedTitle": "Pole analüüsitud", + "notAnalyzedDescription": "Selle leiu koodivaramu analüüsi pole veel käivitatud." + }, + "deadline": { + "fixedBeforeDeadline": "Parandatud enne tähtaega", + "fixed": "Parandatud", + "fixedOn": "Parandatud {{date}}", + "resolutionRecorded": "Lahendus salvestatud", + "superseded": "Asendatud", + "dismissed": "Kõrvale jäetud", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Tähtaega pole määratud", + "noSlaDeadline": "SLA tähtaega pole määratud", + "dueOn": "Tähtaeg {{date}}", + "overdueNow": "Ületähtaegne", + "overdue_one": "{{count}} päev hilinenud", + "overdue_other": "{{count}} päeva hilinenud", + "dueToday": "Tähtaeg täna", + "dueTomorrow": "Tähtaeg homme", + "dueInDays_one": "Tähtaeg {{count}} päeva pärast", + "dueInDays_other": "Tähtaeg {{count}} päeva pärast", + "overdue": "{{count}} päeva hilinenud", + "dueInDays": "Tähtaeg {{count}} päeva pärast" + }, + "remediationStatus": { + "cancellationRequested": "Tühistamist taotleti", + "notStarted": "Pole alustatud", + "queued": "Järjekorras", + "starting": "Käivitatakse", + "inProgress": "Käimas", + "draftPrOpened": "Mustand-PR avatud", + "prOpened": "PR avatud", + "blocked": "Blokeeritud", + "failed": "Ebaõnnestus", + "noChangesNeeded": "Muudatusi pole vaja", + "cancelled": "Tühistatud", + "originAutomaticPolicy": "Automaatne poliitika", + "originIncludeExistingPolicy": "Varasemate kaasamise poliitika", + "originManual": "Käsitsi", + "validationCheck": "Valideerimiskontroll {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Turvaleid ei eksisteeri enam.", + "approvalRequired": "Automaatne parandamine nõuab kinnitust. Kinnitamiseks alusta parandamist käsitsi.", + "findingNotOpen": "Leid ei ole enam avatud.", + "repoNotInScope": "Hoidla pole Security Agent'i jaoks valitud.", + "analysisRequired": "Enne parandamise alustamist käivita koodivaramu analüüs.", + "sandboxAnalysisRequired": "Enne parandamise alustamist käivita koodivaramu analüüs.", + "staleAnalysis": "Leid muutus pärast analüüsi. Enne parandamise alustamist käivita analüüs uuesti.", + "notExploitable": "Analüüs ei leidnud ligipääsetavat haavatavat teed. Automaatne parandamine pole saadaval.", + "exploitabilityUnknown": "Analüüs ei saanud ärakasutatavust kinnitada. Enne üheklõpsulist parandamist on vajalik käsitsi ülevaade.", + "manualReviewRequired": "Analüüs soovitab käsitsi ülevaadet, seega pole üheklõpsuline parandamine saadaval.", + "monitorRequired": "Analüüs soovitab PR-i avamise asemel jälgimist.", + "triageOnly": "Lõppenud on ainult triaaž. Enne parandamise alustamist käivita koodivaramu analüüs.", + "actionNotConcrete": "Konkreetset sõltuvusparandust või soovitatud parandust pole saadaval.", + "remediationActive": "Parandamiskatse on juba käimas.", + "prAlreadyOpened": "Parandamise PR on juba avatud.", + "duplicateAnalysisResult": "See analüüsitulemus on juba parandustööd tootnud.", + "retryNotAllowed": "Selle katse uuesti proovimine pole saadaval.", + "securityAgentDisabled": "Security Agent on selle omaniku jaoks keelatud.", + "autoRemediationDisabled": "Automaatne parandamine on keelatud. Käsitsi parandamine saab siiski alata, kui turvaväravad on läbitud.", + "includeExistingDisabled": "Varasemad leiud on automaatsest parandamisest välja jäetud.", + "belowThreshold": "Leid on automaatse tõsidusläve all. Käsitsi parandamine saab siiski alata, kui turvaväravad on läbitud.", + "beforeEnablement": "Analüüs lõppes enne automaatse parandamise lubamist. Käsitsi parandamine saab siiski alata, kui turvaväravad on läbitud.", + "generic": "Parandamine pole selle leiu jaoks saadaval." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index 611aeca80e..a3a4894f51 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -512,7 +512,9 @@ "pendingComment_other": "zain dauden iruzkin", "submitCountOfTotal": "Bidali {{displayFreshCount}} / {{displayTotalCount}} iruzkin", "submitReview": "Bidali berrikuspena", - "partialPostedMessage": "{{displayFreshCount}} iruzkin argitaratu dira. {{displayStaleCount}} iruzkinek commit zaharrago bat adierazten dute eta zure ilaran geratu dira." + "partialPostedMessage": "{{displayFreshCount}} iruzkin argitaratu dira. {{displayStaleCount}} iruzkinek commit zaharrago bat adierazten dute eta zure ilaran geratu dira.", + "blockedRequestChanges": "Gehitu laburpen bat edo gutxienez iruzkin bat aldaketak eskatzeko.", + "blockedComment": "Gehitu laburpen bat edo gutxienez iruzkin bat iruzkin-berrikuspena bidaltzeko." }, "reconnectNotice": { "title": "GitHub konexioa iraungi da", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Kode-berrikuslea", "updateFailed": "Ezin izan da berrikuslea eguneratu", - "configSaveFailed": "Ezin izan da berrikuspenaren konfigurazioa gorde" + "configSaveFailed": "Ezin izan da berrikuspenaren konfigurazioa gorde", + "status": { + "pending": "Zain", + "queued": "Ilaran", + "running": "Exekutatzen", + "completed": "Osatuta", + "failed": "Huts egin du", + "cancelled": "Bertan behera utzita", + "interrupted": "Etena" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Jatorri-erregistroa", "source": "Jatorria", "sourceId": "Jatorri-IDa", - "viewAdvisory": "Ikusi aholkularitza GitHub-en" + "viewAdvisory": "Ikusi aholkularitza GitHub-en", + "statusSuperseded": "Ordezkatuta", + "statusFixed": "Konponduta", + "statusOpen": "Irekita", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "konponketa bat hasi da jada", + "reasonNoBandwidth": "ez dago ahalmenik", + "reasonTolerableRisk": "arriskua jasangarria da", + "reasonInaccurate": "emaitza ez da zehatza", + "reasonNotUsed": "kode ahula ez da erabiltzen", + "reasonAfterReview": "berrikuspenaren ondoren" }, "settingsOverview": { "title": "Ezarpenak", @@ -1805,6 +1826,107 @@ "syncInProgress": "Segurtasun-sinkronizazio bat jada martxan dago. Saiatu berriro.", "dismissalInProgress": "Baztertze hau jada martxan dago. Saiatu berriro.", "couldNotReadPendingSyncs": "Ezin izan dira zain dauden sinkronizazioak irakurri. Saiatu berriro." + }, + "analysisState": { + "queued": "Analisia ilaran", + "queuedTitle": "Analisia ilaran", + "queuedDescription": "Analisi-ahalmena eskuragarri jartzeko zain.", + "analyzing": "Aztertzen", + "analyzingTitle": "Aztertzen", + "analyzingDescription": "Aplikazioaren kodeak kaltetutako funtziora irits dezakeen egiaztatzen.", + "failed": "Analisiak huts egin du", + "failedTitle": "Analisiak huts egin du", + "failedDescription": "Security Agent-ek ezin izan du analisia osatu.", + "extractionFailed": "Berrikuspena behar du", + "extractionFailedTitle": "Berrikuspena behar du", + "extractionFailedDescription": "Txosten teknikoa ezin da emaitza egituratu bihurtu.", + "exploitable": "Ustia daiteke", + "exploitableTitle": "Ustia daiteke", + "exploitableDescription": "Aplikazioaren kodeak kaltetutako funtziora irits dezake.", + "notExploitable": "Ez da ustia daitekeena", + "notExploitableTitle": "Ez da ustia daitekeena", + "notExploitableDescription": "Ez da bide eskuragarririk aurkitu biltegi honetan.", + "unknown": "Berrikuspena behar du", + "unknownTitle": "Berrikuspena behar du", + "unknownDescription": "Analisiak ezin du baieztatu funtzio ahula eskuragarria den.", + "safeToDismiss": "Baztertzeko segurua", + "safeToDismissTitle": "Baztertzeko segurua", + "safeToDismissDescription": "Triajeak zehaztu du hau segurtasunez baztertu daitekeela kode-basearen analisirik gabe.", + "manualReview": "Berrikuspena behar du", + "manualReviewTitle": "Berrikuspen manuala behar du", + "manualReviewDescription": "Triajeak emaitza hau berrikuspen manualerako markatu du.", + "analysisRequired": "Analisia beharrezkoa da", + "analysisRequiredTitle": "Kode-basearen analisia beharrezkoa da", + "analysisRequiredDescription": "Triajeak biltegia aztertzea gomendatzen du erantzun bat erabaki aurretik.", + "completed": "Aztertuta", + "completedTitle": "Aztertuta", + "completedDescription": "Analisia amaitu da emaitza zehatzik erregistratu gabe.", + "notAnalyzed": "Ez aztertuta", + "notAnalyzedTitle": "Ez aztertuta", + "notAnalyzedDescription": "Kode-basearen analisia oraindik ez da exekutatu emaitza honentzat." + }, + "deadline": { + "fixedBeforeDeadline": "Epea baino lehen konponduta", + "fixed": "Konponduta", + "fixedOn": "Konponduta {{date}}", + "resolutionRecorded": "Ebazpena erregistratuta", + "superseded": "Ordezkatuta", + "dismissed": "Baztertuta", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Ez da eperik ezarri", + "noSlaDeadline": "Ez dago SLA-ederik esleituta", + "dueOn": "Epemuga {{date}}", + "overdueNow": "Atzeratuta", + "overdue_one": "{{count}} egun atzeratuta", + "overdue_other": "{{count}} egun atzeratuta", + "dueToday": "Gaur amaitzen da", + "dueTomorrow": "Bihar amaitzen da", + "dueInDays_one": "{{count}} egun barru amaitzen da", + "dueInDays_other": "{{count}} egun barru amaitzen da", + "overdue": "{{count}} egun atzeratuta", + "dueInDays": "{{count}} egun barru amaitzen da" + }, + "remediationStatus": { + "cancellationRequested": "Bertan behera uztea eskatu da", + "notStarted": "Ez da hasi", + "queued": "Ilaran", + "starting": "Hasten", + "inProgress": "Martxan", + "draftPrOpened": "PR zirriborroa ireki da", + "prOpened": "PR ireki da", + "blocked": "Blokeatuta", + "failed": "Huts egin du", + "noChangesNeeded": "Ez da aldaketarik behar", + "cancelled": "Bertan behera utzita", + "originAutomaticPolicy": "Politika automatikoa", + "originIncludeExistingPolicy": "Lehendik daudenak sartzeko politika", + "originManual": "Manuala", + "validationCheck": "Balioztatze-egiaztapena {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Segurtasun-emaitza jada ez da existitzen.", + "approvalRequired": "Konponketa automatikoak onarpena behar du. Onartzeko, hasi konponketa manualki.", + "findingNotOpen": "Emaitza jada ez dago irekia.", + "repoNotInScope": "Biltegia ez dago hautatuta Security Agent-entzat.", + "analysisRequired": "Exekutatu kode-basearen analisia konponketa hasi aurretik.", + "sandboxAnalysisRequired": "Exekutatu kode-basearen analisia konponketa hasi aurretik.", + "staleAnalysis": "Emaitza aldatu da analisiaren ondoren. Exekutatu analisia berriro konponketa hasi aurretik.", + "notExploitable": "Analisiak ez du eskuragarri dagoen bide ahulik aurkitu. Konponketa automatikoa ez dago eskuragarri.", + "exploitabilityUnknown": "Analisiak ezin du ustiagarritasuna baieztatu. Berrikuspen manuala beharrezkoa da klik bakarreko konponketa aurretik.", + "manualReviewRequired": "Analisiak berrikuspen manuala gomendatzen du, beraz klik bakarreko konponketa ez dago eskuragarri.", + "monitorRequired": "Analisiak PR bat ireki beharrean monitorizazioa gomendatzen du.", + "triageOnly": "Triajea soilik osatu da. Exekutatu kode-basearen analisia konponketa hasi aurretik.", + "actionNotConcrete": "Ez dago menpekotasun-adabaki zehatzik edo proposatutako konponketarik eskuragarri.", + "remediationActive": "Konponketa-saiakera bat jada aktibo dago.", + "prAlreadyOpened": "Konponketa-PR bat jada irekia dago.", + "duplicateAnalysisResult": "Analisi-emaitza honek jada konponketa-lana sortu du.", + "retryNotAllowed": "Ez dago berriro saiatzerik saiakera honetarako.", + "securityAgentDisabled": "Security Agent desgaituta dago jabe honentzat.", + "autoRemediationDisabled": "Konponketa automatikoa desgaituta dago. Konponketa manuala oraindik has daiteke segurtasun-ateak gainditzen direnean.", + "includeExistingDisabled": "Lehendik dauden emaitzak ez dira sartzen konponketa automatikoan.", + "belowThreshold": "Emaitza automatikoko larritasun-atalasearen azpitik dago. Konponketa manuala oraindik has daiteke segurtasun-ateak gainditzen direnean.", + "beforeEnablement": "Analisia konponketa automatikoa gaitu aurretik osatu zen. Konponketa manuala oraindik has daiteke segurtasun-ateak gainditzen direnean.", + "generic": "Konponketa ez dago eskuragarri emaitza honentzat." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index 4eece48cce..c7c21ada1a 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -512,7 +512,9 @@ "pendingComment_other": "نظرات در انتظار", "submitCountOfTotal": "ارسال {{displayFreshCount}} از {{displayTotalCount}} نظر", "submitReview": "ارسال بازبینی", - "partialPostedMessage": "{{displayFreshCount}} نظر ارسال شد. {{displayStaleCount}} نظر به یک commit قدیمی‌تر اشاره دارد و در صف شما ماند." + "partialPostedMessage": "{{displayFreshCount}} نظر ارسال شد. {{displayStaleCount}} نظر به یک commit قدیمی‌تر اشاره دارد و در صف شما ماند.", + "blockedRequestChanges": "برای درخواست تغییرات، یک خلاصه یا حداقل یک نظر اضافه کنید.", + "blockedComment": "برای ارسال بازبینی نظری، یک خلاصه یا حداقل یک نظر اضافه کنید." }, "reconnectNotice": { "title": "اتصال GitHub منقضی شد", @@ -1376,7 +1378,16 @@ }, "eyebrow": "بررسی‌کننده کد", "updateFailed": "به‌روزرسانی بازبین ممکن نشد", - "configSaveFailed": "ذخیرهٔ پیکربندی بازبینی ممکن نشد" + "configSaveFailed": "ذخیرهٔ پیکربندی بازبینی ممکن نشد", + "status": { + "pending": "در انتظار", + "queued": "در صف", + "running": "در حال اجرا", + "completed": "تکمیل شد", + "failed": "شکست خورد", + "cancelled": "لغو شد", + "interrupted": "قطع شد" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "رکورد منبع", "source": "منبع", "sourceId": "شناسه منبع", - "viewAdvisory": "مشاهده مشاوره در GitHub" + "viewAdvisory": "مشاهده مشاوره در GitHub", + "statusSuperseded": "جایگزین شد", + "statusFixed": "برطرف شد", + "statusOpen": "باز", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "یک اصلاح قبلاً شروع شده است", + "reasonNoBandwidth": "هیچ ظرفیتی در دسترس نیست", + "reasonTolerableRisk": "ریسک قابل تحمل است", + "reasonInaccurate": "یافته دقیق نیست", + "reasonNotUsed": "کد آسیب‌پذیر استفاده نمی‌شود", + "reasonAfterReview": "پس از بررسی" }, "settingsOverview": { "title": "تنظیمات", @@ -1805,6 +1826,107 @@ "syncInProgress": "یک همگام‌سازی امنیتی در حال انجام است. لطفاً دوباره تلاش کنید.", "dismissalInProgress": "این رد در حال انجام است. لطفاً دوباره تلاش کنید.", "couldNotReadPendingSyncs": "خواندن همگام‌سازی‌های در انتظار ممکن نشد. دوباره تلاش کنید." + }, + "analysisState": { + "queued": "تحلیل در صف قرار گرفت", + "queuedTitle": "تحلیل در صف قرار گرفت", + "queuedDescription": "در انتظار آزاد شدن ظرفیت تحلیل.", + "analyzing": "در حال تحلیل", + "analyzingTitle": "در حال تحلیل", + "analyzingDescription": "بررسی اینکه آیا کد برنامه می‌تواند به ویژگی آسیب‌دیده دسترسی پیدا کند.", + "failed": "تحلیل ناموفق بود", + "failedTitle": "تحلیل ناموفق بود", + "failedDescription": "عامل امنیت نتوانست تحلیل را کامل کند.", + "extractionFailed": "نیاز به بررسی دارد", + "extractionFailedTitle": "نیاز به بررسی دارد", + "extractionFailedDescription": "تبدیل گزارش فنی به نتیجهٔ ساختاریافته ممکن نشد.", + "exploitable": "قابل بهره‌برداری", + "exploitableTitle": "قابل بهره‌برداری", + "exploitableDescription": "کد برنامه می‌تواند به ویژگی آسیب‌دیده دسترسی پیدا کند.", + "notExploitable": "غیرقابل بهره‌برداری", + "notExploitableTitle": "غیرقابل بهره‌برداری", + "notExploitableDescription": "در این مخزن مسیر قابل دسترسی پیدا نشد.", + "unknown": "نیاز به بررسی دارد", + "unknownTitle": "نیاز به بررسی دارد", + "unknownDescription": "تحلیل نتوانست تأیید کند که آیا ویژگی آسیب‌پذیر قابل دسترسی است.", + "safeToDismiss": "ایمن برای نادیده‌گرفتن", + "safeToDismissTitle": "ایمن برای نادیده‌گرفتن", + "safeToDismissDescription": "اولویت‌بندی تعیین کرد که بدون تحلیل کدبیس می‌توان این را با خیال راحت نادیده گرفت.", + "manualReview": "نیاز به بررسی دارد", + "manualReviewTitle": "نیاز به بررسی دستی دارد", + "manualReviewDescription": "اولویت‌بندی این یافته را برای بررسی دستی علامت‌گذاری کرد.", + "analysisRequired": "تحلیل لازم است", + "analysisRequiredTitle": "تحلیل کدبیس لازم است", + "analysisRequiredDescription": "اولویت‌بندی قبل از تصمیم‌گیری دربارهٔ پاسخ، تحلیل مخزن را توصیه می‌کند.", + "completed": "تحلیل شده", + "completedTitle": "تحلیل شده", + "completedDescription": "تحلیل بدون ثبت نتیجهٔ خاصی کامل شد.", + "notAnalyzed": "تحلیل‌نشده", + "notAnalyzedTitle": "تحلیل‌نشده", + "notAnalyzedDescription": "تحلیل کدبیس هنوز برای این یافته اجرا نشده است." + }, + "deadline": { + "fixedBeforeDeadline": "قبل از مهلت برطرف شد", + "fixed": "برطرف شد", + "fixedOn": "برطرف شد {{date}}", + "resolutionRecorded": "راه‌حل ثبت شد", + "superseded": "جایگزین شد", + "dismissed": "رد شد", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "مهلتی تعیین نشده است", + "noSlaDeadline": "هیچ مهلت SLA اختصاص داده نشده", + "dueOn": "سررسید {{date}}", + "overdueNow": "معوق", + "overdue_one": "{{count}} روز عقب‌افتاده", + "overdue_other": "{{count}} روز عقب‌افتاده", + "dueToday": "سررسید امروز", + "dueTomorrow": "سررسید فردا", + "dueInDays_one": "سررسید تا {{count}} روز دیگر", + "dueInDays_other": "سررسید تا {{count}} روز دیگر", + "overdue": "{{count}} روز عقب‌افتاده", + "dueInDays": "سررسید تا {{count}} روز دیگر" + }, + "remediationStatus": { + "cancellationRequested": "لغو درخواست شد", + "notStarted": "شروع نشده", + "queued": "در صف", + "starting": "در حال شروع", + "inProgress": "در حال انجام", + "draftPrOpened": "PR پیش‌نویس باز شد", + "prOpened": "PR باز شد", + "blocked": "مسدود شد", + "failed": "شکست خورد", + "noChangesNeeded": "تغییری لازم نیست", + "cancelled": "لغو شد", + "originAutomaticPolicy": "خط‌مشی خودکار", + "originIncludeExistingPolicy": "خط‌مشی شامل موارد موجود", + "originManual": "دستی", + "validationCheck": "بررسی اعتبارسنجی {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "یافتهٔ امنیتی دیگر وجود ندارد.", + "approvalRequired": "اصلاح خودکار نیاز به تأیید دارد. برای تأیید آن، اصلاح را به‌صورت دستی شروع کنید.", + "findingNotOpen": "یافته دیگر باز نیست.", + "repoNotInScope": "مخزن برای Security Agent انتخاب نشده است.", + "analysisRequired": "قبل از شروع اصلاح، تحلیل کدبیس را اجرا کنید.", + "sandboxAnalysisRequired": "قبل از شروع اصلاح، تحلیل کدبیس را اجرا کنید.", + "staleAnalysis": "یافته پس از تحلیل تغییر کرد. قبل از شروع اصلاح، تحلیل را دوباره اجرا کنید.", + "notExploitable": "تحلیل مسیر آسیب‌پذیر قابل دسترسی پیدا نکرد. اصلاح خودکار در دسترس نیست.", + "exploitabilityUnknown": "تحلیل نتوانست قابلیت بهره‌برداری را تأیید کند. قبل از اصلاح تک‌کلیکی، بررسی دستی لازم است.", + "manualReviewRequired": "تحلیل بررسی دستی را توصیه می‌کند، بنابراین اصلاح تک‌کلیکی در دسترس نیست.", + "monitorRequired": "تحلیل به‌جای باز کردن PR، نظارت را توصیه می‌کند.", + "triageOnly": "فقط اولویت‌بندی کامل شده است. قبل از شروع اصلاح، تحلیل کدبیس را اجرا کنید.", + "actionNotConcrete": "هیچ وصلهٔ وابستگی مشخص یا اصلاح پیشنهادی در دسترس نیست.", + "remediationActive": "یک تلاش اصلاح در حال حاضر فعال است.", + "prAlreadyOpened": "یک PR اصلاح در حال حاضر باز است.", + "duplicateAnalysisResult": "این نتیجهٔ تحلیل قبلاً کار اصلاح تولید کرده است.", + "retryNotAllowed": "تلاش دوباره برای این اقدام در دسترس نیست.", + "securityAgentDisabled": "Security Agent برای این مالک غیرفعال است.", + "autoRemediationDisabled": "اصلاح خودکار غیرفعال است. اصلاح دستی همچنان می‌تواند وقتی دروازه‌های امنیتی عبور کنند شروع شود.", + "includeExistingDisabled": "یافته‌های موجود از اصلاح خودکار مستثنی شده‌اند.", + "belowThreshold": "یافته زیر آستانهٔ شدت خودکار است. اصلاح دستی همچنان می‌تواند وقتی دروازه‌های امنیتی عبور کنند شروع شود.", + "beforeEnablement": "تحلیل قبل از فعال‌سازی اصلاح خودکار کامل شد. اصلاح دستی همچنان می‌تواند وقتی دروازه‌های امنیتی عبور کنند شروع شود.", + "generic": "اصلاح برای این یافته در دسترس نیست." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index cfadba4108..9a33dab036 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -512,7 +512,9 @@ "pendingComment_other": "odottavaa kommenttia", "submitCountOfTotal": "Lähetä {{displayFreshCount}}/{{displayTotalCount}} kommenttia", "submitReview": "Lähetä arviointi", - "partialPostedMessage": "Lähetettiin {{displayFreshCount}} kommenttia. {{displayStaleCount}} kommenttia viittaa vanhempaan committiin ja jäi jonoon." + "partialPostedMessage": "Lähetettiin {{displayFreshCount}} kommenttia. {{displayStaleCount}} kommenttia viittaa vanhempaan committiin ja jäi jonoon.", + "blockedRequestChanges": "Lisää yhteenveto tai vähintään yksi kommentti muutosten pyytämiseksi.", + "blockedComment": "Lisää yhteenveto tai vähintään yksi kommentti kommenttiarvioinnin lähettämiseksi." }, "reconnectNotice": { "title": "GitHub-yhteys vanhentui", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Arvioijan päivittäminen epäonnistui", - "configSaveFailed": "Arvioinnin konfiguraation tallentaminen epäonnistui" + "configSaveFailed": "Arvioinnin konfiguraation tallentaminen epäonnistui", + "status": { + "pending": "Odottaa", + "queued": "Jonossa", + "running": "Käynnissä", + "completed": "Valmis", + "failed": "Epäonnistui", + "cancelled": "Peruttu", + "interrupted": "Keskeytetty" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Lähdetietue", "source": "Lähde", "sourceId": "Lähteen tunnus", - "viewAdvisory": "Näytä tietoturvatiedote GitHubissa" + "viewAdvisory": "Näytä tietoturvatiedote GitHubissa", + "statusSuperseded": "Korvattu", + "statusFixed": "Korjattu", + "statusOpen": "Avoin", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "korjaus on jo aloitettu", + "reasonNoBandwidth": "resursseja ei ole käytettävissä", + "reasonTolerableRisk": "riski on siedettävä", + "reasonInaccurate": "havainto on virheellinen", + "reasonNotUsed": "haavoittuvaa koodia ei käytetä", + "reasonAfterReview": "tarkistuksen jälkeen" }, "settingsOverview": { "title": "Asetukset", @@ -1805,6 +1826,107 @@ "syncInProgress": "Tietoturvasynkronointi on jo käynnissä. Yritä uudelleen.", "dismissalInProgress": "Tämä hylkäys on jo käynnissä. Yritä uudelleen.", "couldNotReadPendingSyncs": "Odottavia synkronointeja ei voitu lukea. Yritä uudelleen." + }, + "analysisState": { + "queued": "Analyysi jonossa", + "queuedTitle": "Analyysi jonossa", + "queuedDescription": "Odotetaan analyysikapasiteetin vapautumista.", + "analyzing": "Analysoidaan", + "analyzingTitle": "Analysoidaan", + "analyzingDescription": "Tarkistetaan, pääseekö sovelluskoodi vaikutuksenalaiseen ominaisuuteen.", + "failed": "Analyysi epäonnistui", + "failedTitle": "Analyysi epäonnistui", + "failedDescription": "Security Agent ei voinut suorittaa analyysia loppuun.", + "extractionFailed": "Vaatii tarkistuksen", + "extractionFailedTitle": "Vaatii tarkistuksen", + "extractionFailedDescription": "Teknistä raporttia ei voitu muuttaa jäsennellyksi tulokseksi.", + "exploitable": "Hyödynnettävissä", + "exploitableTitle": "Hyödynnettävissä", + "exploitableDescription": "Sovelluskoodi pääsee vaikutuksenalaiseen ominaisuuteen.", + "notExploitable": "Ei hyödynnettävissä", + "notExploitableTitle": "Ei hyödynnettävissä", + "notExploitableDescription": "Tästä repositoriosta ei löytynyt tavoitettavissa olevaa polkua.", + "unknown": "Vaatii tarkistuksen", + "unknownTitle": "Vaatii tarkistuksen", + "unknownDescription": "Analyysi ei voinut vahvistaa, onko haavoittuva ominaisuus tavoitettavissa.", + "safeToDismiss": "Turvallista hylätä", + "safeToDismissTitle": "Turvallista hylätä", + "safeToDismissDescription": "Luokittelu päätti, että tämän voi hylätä turvallisesti ilman koodipohjan analyysia.", + "manualReview": "Vaatii tarkistuksen", + "manualReviewTitle": "Vaatii manuaalisen tarkistuksen", + "manualReviewDescription": "Luokittelu merkitsi tämän havainnon manuaaliseen tarkistukseen.", + "analysisRequired": "Analyysi vaaditaan", + "analysisRequiredTitle": "Koodipohjan analyysi vaaditaan", + "analysisRequiredDescription": "Luokittelu suosittelee repositorion analysointia ennen vastauksen päättämistä.", + "completed": "Analysoitu", + "completedTitle": "Analysoitu", + "completedDescription": "Analyysi valmistui ilman erityistä kirjattua tulosta.", + "notAnalyzed": "Ei analysoitu", + "notAnalyzedTitle": "Ei analysoitu", + "notAnalyzedDescription": "Koodipohjan analyysia ei ole vielä suoritettu tälle havainnolle." + }, + "deadline": { + "fixedBeforeDeadline": "Korjattu ennen määräaikaa", + "fixed": "Korjattu", + "fixedOn": "Korjattu {{date}}", + "resolutionRecorded": "Ratkaisu kirjattu", + "superseded": "Korvattu", + "dismissed": "Hylätty", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Määräaikaa ei ole asetettu", + "noSlaDeadline": "Ei määritettyä SLA-määräaikaa", + "dueOn": "Erääntyy {{date}}", + "overdueNow": "Erääntynyt", + "overdue_one": "{{count}} päivä myöhässä", + "overdue_other": "{{count}} päivää myöhässä", + "dueToday": "Erääntyy tänään", + "dueTomorrow": "Erääntyy huomenna", + "dueInDays_one": "Erääntyy {{count}} päivän kuluttua", + "dueInDays_other": "Erääntyy {{count}} päivän kuluttua", + "overdue": "{{count}} päivää myöhässä", + "dueInDays": "Erääntyy {{count}} päivän kuluttua" + }, + "remediationStatus": { + "cancellationRequested": "Peruutusta pyydetty", + "notStarted": "Ei aloitettu", + "queued": "Jonossa", + "starting": "Käynnistetään", + "inProgress": "Käynnissä", + "draftPrOpened": "Luonnos-PR avattu", + "prOpened": "PR avattu", + "blocked": "Estetty", + "failed": "Epäonnistui", + "noChangesNeeded": "Muutoksia ei tarvita", + "cancelled": "Peruttu", + "originAutomaticPolicy": "Automaattinen käytäntö", + "originIncludeExistingPolicy": "Aiempien sisällyttämisen käytäntö", + "originManual": "Manuaalinen", + "validationCheck": "Validointitarkistus {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Tietoturvahavaintoa ei ole enää olemassa.", + "approvalRequired": "Automaattinen korjaus vaatii hyväksynnän. Aloita korjaus manuaalisesti hyväksyäksesi sen.", + "findingNotOpen": "Havainto ei ole enää avoin.", + "repoNotInScope": "Repositoriota ei ole valittu Security Agentille.", + "analysisRequired": "Suorita koodipohjan analyysi ennen korjauksen aloittamista.", + "sandboxAnalysisRequired": "Suorita koodipohjan analyysi ennen korjauksen aloittamista.", + "staleAnalysis": "Havainto muuttui analyysin jälkeen. Suorita analyysi uudelleen ennen korjauksen aloittamista.", + "notExploitable": "Analyysi ei löytänyt tavoitettavissa olevaa haavoittuvaa polkua. Automaattinen korjaus ei ole käytettävissä.", + "exploitabilityUnknown": "Analyysi ei voinut vahvistaa hyödynnettävyyttä. Manuaalinen tarkistus vaaditaan ennen yhden napsautuksen korjausta.", + "manualReviewRequired": "Analyysi suosittelee manuaalista tarkistusta, joten yhden napsautuksen korjaus ei ole käytettävissä.", + "monitorRequired": "Analyysi suosittelee seurantaa PR:n avaamisen sijaan.", + "triageOnly": "Vain luokittelu on valmis. Suorita koodipohjan analyysi ennen korjauksen aloittamista.", + "actionNotConcrete": "Konkreettista riippuvuuskorjausta tai ehdotettua korjausta ei ole saatavilla.", + "remediationActive": "Korjausyritys on jo käynnissä.", + "prAlreadyOpened": "Korjaus-PR on jo avoinna.", + "duplicateAnalysisResult": "Tämä analyysitulos on jo tuottanut korjaustoimenpiteen.", + "retryNotAllowed": "Uusi yritys ei ole käytettävissä tälle yritykselle.", + "securityAgentDisabled": "Security Agent on poistettu käytöstä tälle omistajalle.", + "autoRemediationDisabled": "Automaattinen korjaus on poistettu käytöstä. Manuaalinen korjaus voi silti alkaa, kun turvaportit läpäistään.", + "includeExistingDisabled": "Olemassa olevat havainnot on suljettu automaattisen korjauksen ulkopuolelle.", + "belowThreshold": "Havainto on automaattisen vakavuuskynnyksen alapuolella. Manuaalinen korjaus voi silti alkaa, kun turvaportit läpäistään.", + "beforeEnablement": "Analyysi valmistui ennen automaattisen korjauksen käyttöönottoa. Manuaalinen korjaus voi silti alkaa, kun turvaportit läpäistään.", + "generic": "Korjaus ei ole käytettävissä tälle havainnolle." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index 1d14dc61bb..a5d7f9c975 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -512,7 +512,9 @@ "pendingComment_other": "mga nakabinbing komento", "submitCountOfTotal": "Isumite ang {{displayFreshCount}} sa {{displayTotalCount}} na komento", "submitReview": "Isumite ang review", - "partialPostedMessage": "Na-post ang {{displayFreshCount}} na komento. Ang {{displayStaleCount}} na komento ay tumutukoy sa mas lumang commit at nanatili sa iyong queue." + "partialPostedMessage": "Na-post ang {{displayFreshCount}} na komento. Ang {{displayStaleCount}} na komento ay tumutukoy sa mas lumang commit at nanatili sa iyong queue.", + "blockedRequestChanges": "Magdagdag ng buod o kahit isang komento para humingi ng pagbabago.", + "blockedComment": "Magdagdag ng buod o kahit isang komento para magsumite ng komentong review." }, "reconnectNotice": { "title": "Nag-expire ang koneksyon sa GitHub", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Nabigong i-update ang reviewer", - "configSaveFailed": "Nabigong i-save ang config ng review" + "configSaveFailed": "Nabigong i-save ang config ng review", + "status": { + "pending": "Nakabinbin", + "queued": "Naka-queue", + "running": "Tumatakbo", + "completed": "Nakumpleto", + "failed": "Nabigo", + "cancelled": "Kinansela", + "interrupted": "Naantala" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Source record", "source": "Source", "sourceId": "Source ID", - "viewAdvisory": "Tingnan ang advisory sa GitHub" + "viewAdvisory": "Tingnan ang advisory sa GitHub", + "statusSuperseded": "Pinalitan", + "statusFixed": "Naayos", + "statusOpen": "Bukas", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "may fix na ang nagsimula", + "reasonNoBandwidth": "walang available na bandwidth", + "reasonTolerableRisk": "katanggap-tanggap ang panganib", + "reasonInaccurate": "hindi tumpak ang finding", + "reasonNotUsed": "hindi ginagamit ang vulnerable na code", + "reasonAfterReview": "pagkatapos ng review" }, "settingsOverview": { "title": "Mga setting", @@ -1805,6 +1826,107 @@ "syncInProgress": "May security sync na nagpapatuloy. Pakisubukan muli.", "dismissalInProgress": "Nagpapatuloy na ang dismissal na ito. Pakisubukan muli.", "couldNotReadPendingSyncs": "Hindi mabasa ang mga pending sync. Subukan muli." + }, + "analysisState": { + "queued": "Nakapila ang analysis", + "queuedTitle": "Nakapila ang analysis", + "queuedDescription": "Naghihintay na maging available ang capacity ng analysis.", + "analyzing": "Sinisuri", + "analyzingTitle": "Sinisuri", + "analyzingDescription": "Sinusuri kung maaabot ng application code ang apektadong feature.", + "failed": "Bumagsak ang analysis", + "failedTitle": "Bumagsak ang analysis", + "failedDescription": "Hindi nakumpleto ng Security Agent ang analysis.", + "extractionFailed": "Kailangang suriin", + "extractionFailedTitle": "Kailangang suriin", + "extractionFailedDescription": "Hindi ma-convert ang technical report sa structured result.", + "exploitable": "Maaaring ma-exploit", + "exploitableTitle": "Maaaring ma-exploit", + "exploitableDescription": "Maaabot ng application code ang apektadong feature.", + "notExploitable": "Hindi maabot", + "notExploitableTitle": "Hindi maabot", + "notExploitableDescription": "Walang nahanap na maaabot na path sa repository na ito.", + "unknown": "Kailangang suriin", + "unknownTitle": "Kailangang suriin", + "unknownDescription": "Hindi makumpirma ng analysis kung maaabot ang vulnerable na feature.", + "safeToDismiss": "Ligtas na i-dismiss", + "safeToDismissTitle": "Ligtas na i-dismiss", + "safeToDismissDescription": "Natukoy ng triage na ligtas itong i-dismiss nang walang codebase analysis.", + "manualReview": "Kailangang suriin", + "manualReviewTitle": "Kailangan ng manu-manong review", + "manualReviewDescription": "Minarkahan ng triage ang finding na ito para sa manu-manong review.", + "analysisRequired": "Kinakailangan ang analysis", + "analysisRequiredTitle": "Kinakailangan ang codebase analysis", + "analysisRequiredDescription": "Inirerekomenda ng triage na suriin ang repository bago magpasya ng tugon.", + "completed": "Nasuri na", + "completedTitle": "Nasuri na", + "completedDescription": "Natapos ang analysis nang walang naitalang partikular na kinalabasan.", + "notAnalyzed": "Hindi nasuri", + "notAnalyzedTitle": "Hindi nasuri", + "notAnalyzedDescription": "Hindi pa tumatakbo ang codebase analysis para sa finding na ito." + }, + "deadline": { + "fixedBeforeDeadline": "Naayos bago ang deadline", + "fixed": "Naayos", + "fixedOn": "Naayos noong {{date}}", + "resolutionRecorded": "Naitala ang resolusyon", + "superseded": "Pinalitan", + "dismissed": "Na-dismiss", + "closedOn": "{{status}} noong {{date}}", + "deadlineNotSet": "Hindi nakatakda ang deadline", + "noSlaDeadline": "Walang deadline ng SLA", + "dueOn": "Due {{date}}", + "overdueNow": "Overdue", + "overdue_one": "{{count}} araw na overdue", + "overdue_other": "{{count}} araw na overdue", + "dueToday": "Due ngayong araw", + "dueTomorrow": "Due bukas", + "dueInDays_one": "Due sa {{count}} araw", + "dueInDays_other": "Due sa {{count}} araw", + "overdue": "{{count}} araw na overdue", + "dueInDays": "Due sa {{count}} araw" + }, + "remediationStatus": { + "cancellationRequested": "Hiniling ang pagkansela", + "notStarted": "Hindi pa nagsisimula", + "queued": "Nakapila", + "starting": "Sinisimula", + "inProgress": "Isinasagawa", + "draftPrOpened": "Binuksan ang draft PR", + "prOpened": "Binuksan ang PR", + "blocked": "Na-block", + "failed": "Nabigo", + "noChangesNeeded": "Walang kailangang pagbabago", + "cancelled": "Kinansela", + "originAutomaticPolicy": "Awtomatikong patakaran", + "originIncludeExistingPolicy": "Isama ang umiiral na patakaran", + "originManual": "Manual", + "validationCheck": "Validation check {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Wala na ang security finding.", + "approvalRequired": "Ang Auto Remediation ay nangangailangan ng approval. Simulan ang remediation nang manu-mano para i-approve ito.", + "findingNotOpen": "Hindi na bukas ang finding.", + "repoNotInScope": "Hindi napili ang repository para sa Security Agent.", + "analysisRequired": "Patakbuhin ang codebase analysis bago simulan ang remediation.", + "sandboxAnalysisRequired": "Patakbuhin ang codebase analysis bago simulan ang remediation.", + "staleAnalysis": "Nagbago ang finding pagkatapos ng analysis. Patakbuhin muli ang analysis bago simulan ang remediation.", + "notExploitable": "Walang nahanap na maaabot na vulnerable path ang analysis. Hindi available ang Auto Remediation.", + "exploitabilityUnknown": "Hindi makumpirma ng analysis ang exploitability. Kinakailangan ang manu-manong review bago ang one-click remediation.", + "manualReviewRequired": "Inirerekomenda ng analysis ang manu-manong review, kaya hindi available ang one-click remediation.", + "monitorRequired": "Inirerekomenda ng analysis ang pag-monitor sa halip na magbukas ng PR.", + "triageOnly": "Triage lang ang nakumpleto. Patakbuhin ang codebase analysis bago simulan ang remediation.", + "actionNotConcrete": "Walang available na konkretong dependency patch o iminungkahing fix.", + "remediationActive": "May aktibong pagsubok sa remediation na.", + "prAlreadyOpened": "May bukas nang remediation PR.", + "duplicateAnalysisResult": "Ang resulta ng analysis na ito ay nakagawa na ng remediation work.", + "retryNotAllowed": "Hindi available ang retry para sa pagsubok na ito.", + "securityAgentDisabled": "Naka-disable ang Security Agent para sa owner na ito.", + "autoRemediationDisabled": "Naka-disable ang Auto Remediation. Maaari pa ring magsimula ang manu-manong remediation kapag pumasa ang mga safety gate.", + "includeExistingDisabled": "Hindi kasama ang mga umiiral na finding sa awtomatikong remediation.", + "belowThreshold": "Mababa sa awtomatikong severity threshold ang finding. Maaari pa ring magsimula ang manu-manong remediation kapag pumasa ang mga safety gate.", + "beforeEnablement": "Natapos ang analysis bago i-enable ang Auto Remediation. Maaari pa ring magsimula ang manu-manong remediation kapag pumasa ang mga safety gate.", + "generic": "Hindi available ang remediation para sa finding na ito." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index ba8d4f3360..ed5bbf7e60 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -927,7 +927,16 @@ "set": "Défini" }, "updateFailed": "Échec de la mise à jour du réviseur", - "configSaveFailed": "Échec de l'enregistrement de la configuration de revue" + "configSaveFailed": "Échec de l'enregistrement de la configuration de revue", + "status": { + "pending": "En attente", + "queued": "En file d'attente", + "running": "En cours", + "completed": "Terminé", + "failed": "Échoué", + "cancelled": "Annulé", + "interrupted": "Interrompu" + } }, "securityAgent": { "filter": { @@ -1174,7 +1183,17 @@ "unknown": "Inconnu", "updated": "Mis à jour", "viewAdvisory": "Voir l'avis sur GitHub", - "vulnerableVersions": "Versions vulnérables" + "vulnerableVersions": "Versions vulnérables", + "statusSuperseded": "Remplacé", + "statusFixed": "Corrigé", + "statusOpen": "Ouvert", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "une correction a déjà commencé", + "reasonNoBandwidth": "aucune capacité n'est disponible", + "reasonTolerableRisk": "le risque est tolérable", + "reasonInaccurate": "le résultat est inexact", + "reasonNotUsed": "le code vulnérable n'est pas utilisé", + "reasonAfterReview": "après revue" }, "findingList": { "clearFilters": "Effacer les filtres", @@ -1358,6 +1377,109 @@ "syncInProgress": "Une synchronisation de sécurité est déjà en cours. Veuillez réessayer.", "dismissalInProgress": "Cette ignorance est déjà en cours. Veuillez réessayer.", "couldNotReadPendingSyncs": "Impossible de lire les synchronisations en attente. Réessayez." + }, + "analysisState": { + "queued": "Analyse en file d'attente", + "queuedTitle": "Analyse en file d'attente", + "queuedDescription": "En attente de disponibilité de la capacité d'analyse.", + "analyzing": "Analyse en cours", + "analyzingTitle": "Analyse en cours", + "analyzingDescription": "Vérification que le code de l'application peut atteindre la fonctionnalité concernée.", + "failed": "Analyse échouée", + "failedTitle": "Analyse échouée", + "failedDescription": "Security Agent n'a pas pu terminer l'analyse.", + "extractionFailed": "Nécessite une revue", + "extractionFailedTitle": "Nécessite une revue", + "extractionFailedDescription": "Le rapport technique n'a pas pu être converti en résultat structuré.", + "exploitable": "Exploitable", + "exploitableTitle": "Exploitable", + "exploitableDescription": "Le code de l'application peut atteindre la fonctionnalité concernée.", + "notExploitable": "Inaccessible", + "notExploitableTitle": "Inaccessible", + "notExploitableDescription": "Aucun chemin accessible n'a été trouvé dans ce dépôt.", + "unknown": "Nécessite une revue", + "unknownTitle": "Nécessite une revue", + "unknownDescription": "L'analyse n'a pas pu confirmer si la fonctionnalité vulnérable est accessible.", + "safeToDismiss": "Peut être ignoré", + "safeToDismissTitle": "Peut être ignoré", + "safeToDismissDescription": "Le triage a déterminé que cela peut être ignoré en toute sécurité sans analyse du code.", + "manualReview": "Nécessite une revue", + "manualReviewTitle": "Nécessite une revue manuelle", + "manualReviewDescription": "Le triage a signalé ce résultat pour une revue manuelle.", + "analysisRequired": "Analyse requise", + "analysisRequiredTitle": "Analyse du code requise", + "analysisRequiredDescription": "Le triage recommande d'analyser le dépôt avant de décider d'une réponse.", + "completed": "Analysé", + "completedTitle": "Analysé", + "completedDescription": "Analyse terminée sans résultat particulier enregistré.", + "notAnalyzed": "Non analysé", + "notAnalyzedTitle": "Non analysé", + "notAnalyzedDescription": "L'analyse du code n'a pas encore été exécutée pour ce résultat." + }, + "deadline": { + "fixedBeforeDeadline": "Corrigé avant l'échéance", + "fixed": "Corrigé", + "fixedOn": "Corrigé le {{date}}", + "resolutionRecorded": "Résolution enregistrée", + "superseded": "Remplacé", + "dismissed": "Ignoré", + "closedOn": "{{status}} le {{date}}", + "deadlineNotSet": "Aucune échéance définie", + "noSlaDeadline": "Aucune échéance SLA", + "dueOn": "Échéance le {{date}}", + "overdueNow": "En retard", + "overdue_one": "{{count}} jour de retard", + "overdue_many": "{{count}} jours de retard", + "overdue_other": "{{count}} jours de retard", + "dueToday": "Échéance aujourd'hui", + "dueTomorrow": "Échéance demain", + "dueInDays_one": "Dans {{count}} jour", + "dueInDays_many": "Dans {{count}} jours", + "dueInDays_other": "Dans {{count}} jours", + "overdue": "{{count}} jours de retard", + "dueInDays": "Dans {{count}} jours" + }, + "remediationStatus": { + "cancellationRequested": "Annulation demandée", + "notStarted": "Non démarrée", + "queued": "En file d'attente", + "starting": "Démarrage", + "inProgress": "En cours", + "draftPrOpened": "PR en brouillon ouverte", + "prOpened": "PR ouverte", + "blocked": "Bloquée", + "failed": "Échouée", + "noChangesNeeded": "Aucune modification nécessaire", + "cancelled": "Annulée", + "originAutomaticPolicy": "Politique automatique", + "originIncludeExistingPolicy": "Politique d'inclusion de l'existant", + "originManual": "Manuelle", + "validationCheck": "Vérification de validation {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Le résultat de sécurité n'existe plus.", + "approvalRequired": "La remédiation automatique requiert une approbation. Démarrez la remédiation manuellement pour l'approuver.", + "findingNotOpen": "Le résultat n'est plus ouvert.", + "repoNotInScope": "Le dépôt n'est pas sélectionné pour Security Agent.", + "analysisRequired": "Exécutez une analyse du code avant de démarrer la remédiation.", + "sandboxAnalysisRequired": "Exécutez une analyse du code avant de démarrer la remédiation.", + "staleAnalysis": "Le résultat a changé après l'analyse. Relancez l'analyse avant de démarrer la remédiation.", + "notExploitable": "L'analyse n'a trouvé aucun chemin vulnérable accessible. La remédiation automatique est indisponible.", + "exploitabilityUnknown": "L'analyse n'a pas pu confirmer l'exploitabilité. Une revue manuelle est requise avant la remédiation en un clic.", + "manualReviewRequired": "L'analyse recommande une revue manuelle, la remédiation en un clic est donc indisponible.", + "monitorRequired": "L'analyse recommande une surveillance plutôt que d'ouvrir une PR.", + "triageOnly": "Seul le triage est terminé. Exécutez une analyse du code avant de démarrer la remédiation.", + "actionNotConcrete": "Aucun correctif de dépendance concret ni aucune correction suggérée n'est disponible.", + "remediationActive": "Une tentative de remédiation est déjà en cours.", + "prAlreadyOpened": "Une PR de remédiation est déjà ouverte.", + "duplicateAnalysisResult": "Ce résultat d'analyse a déjà produit un travail de remédiation.", + "retryNotAllowed": "La nouvelle tentative n'est pas disponible pour cette tentative.", + "securityAgentDisabled": "Security Agent est désactivé pour ce propriétaire.", + "autoRemediationDisabled": "La remédiation automatique est désactivée. La remédiation manuelle peut toujours démarrer lorsque les contrôles de sécurité passent.", + "includeExistingDisabled": "Les résultats existants sont exclus de la remédiation automatique.", + "belowThreshold": "Le résultat est sous le seuil de gravité automatique. La remédiation manuelle peut toujours démarrer lorsque les contrôles de sécurité passent.", + "beforeEnablement": "L'analyse a été réalisée avant l'activation de la remédiation automatique. La remédiation manuelle peut toujours démarrer lorsque les contrôles de sécurité passent.", + "generic": "La remédiation n'est pas disponible pour ce résultat." } }, "agentChat": { @@ -2657,7 +2779,9 @@ "partialPostedMessage": "{{displayFreshCount}} commentaire(s) publié(s). {{displayStaleCount}} commentaire(s) pointent vers un commit plus ancien et sont restés dans votre file d'attente.", "submitCountOfTotal": "Envoyer {{displayFreshCount}} commentaires sur {{displayTotalCount}}", "submitReview": "Envoyer la revue", - "pendingComment_many": "commentaires en attente" + "pendingComment_many": "commentaires en attente", + "blockedRequestChanges": "Ajoutez un résumé ou au moins un commentaire pour demander des modifications.", + "blockedComment": "Ajoutez un résumé ou au moins un commentaire pour envoyer une revue de type commentaire." }, "fileStatus": { "added": "Ajouté", diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index ceeb8d8e1d..db03ea8114 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -527,7 +527,9 @@ "partialPostedMessage": "Postáladh {{displayFreshCount}} trácht(anna). Díríonn {{displayStaleCount}} trácht(anna) ar thiomantas níos sine agus d'fhan siad i do scuaine.", "pendingComment_two": "thrácht ar feitheamh", "pendingComment_few": "thrácht ar feitheamh", - "pendingComment_many": "tráchtanna ar feitheamh" + "pendingComment_many": "tráchtanna ar feitheamh", + "blockedRequestChanges": "Cuir achoimre nó trácht amháin ar a laghad leis chun athruithe a iarraidh.", + "blockedComment": "Cuir achoimre nó trácht amháin ar a laghad leis chun athbhreithniú tráchta a sheoladh." }, "reconnectNotice": { "title": "Tá an nasc GitHub imithe in éag", @@ -1403,7 +1405,16 @@ }, "eyebrow": "Athbhreithneoir Cóid", "updateFailed": "Theip ar an athbhreithneoir a nuashonrú", - "configSaveFailed": "Theip ar chumraíocht an athbhreithnithe a shábháil" + "configSaveFailed": "Theip ar chumraíocht an athbhreithnithe a shábháil", + "status": { + "pending": "Ar feitheamh", + "queued": "Sa scuaine", + "running": "Ar siúl", + "completed": "Críochnaithe", + "failed": "Theip", + "cancelled": "Cealaithe", + "interrupted": "Idirbhriste" + } }, "securityAgent": { "filter": { @@ -1607,7 +1618,17 @@ "sourceRecord": "Taifead foinseach", "source": "Foinse", "sourceId": "Aitheantas foinse", - "viewAdvisory": "Féach ar an gcomhairle ar GitHub" + "viewAdvisory": "Féach ar an gcomhairle ar GitHub", + "statusSuperseded": "Curtha in ionad", + "statusFixed": "Deisithe", + "statusOpen": "Oscailte", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "tá deisiúchán tosaithe cheana", + "reasonNoBandwidth": "níl aon bandaleithead ar fáil", + "reasonTolerableRisk": "tá an priacal inghlactha", + "reasonInaccurate": "tá an fhionnachtain míchruinn", + "reasonNotUsed": "ní úsáidtear an cód leochaileach", + "reasonAfterReview": "tar éis athbhreithnithe" }, "settingsOverview": { "title": "Socruithe", @@ -1838,6 +1859,113 @@ "syncInProgress": "Tá sioncronú slándála ar siúl cheana. Bain triail as arís le do thoil.", "dismissalInProgress": "Tá an díbhe seo ar siúl cheana. Bain triail as arís le do thoil.", "couldNotReadPendingSyncs": "Níorbh fhéidir sioncronuithe ar feitheamh a léamh. Bain triail as arís." + }, + "analysisState": { + "queued": "Anailís i scuaine", + "queuedTitle": "Anailís i scuaine", + "queuedDescription": "Ag fanacht le hacmhainn anailíse a bheith ar fáil.", + "analyzing": "Ag anailísiú", + "analyzingTitle": "Ag anailísiú", + "analyzingDescription": "Ag seiceáil an féidir le cód an aip rochtain a fháil ar an ngné lena mbaineann.", + "failed": "Theip ar an anailís", + "failedTitle": "Theip ar an anailís", + "failedDescription": "Níorbh fhéidir le Security Agent an anailís a chríochnú.", + "extractionFailed": "Teastaíonn athbhreithniú", + "extractionFailedTitle": "Teastaíonn athbhreithniú", + "extractionFailedDescription": "Níorbh fhéidir an tuarascáil theicniúil a iompú ina toradh struchtúrtha.", + "exploitable": "Inshaothraithe", + "exploitableTitle": "Inshaothraithe", + "exploitableDescription": "Is féidir le cód an aip rochtain a fháil ar an ngné lena mbaineann.", + "notExploitable": "Neamhrochtana", + "notExploitableTitle": "Neamhrochtana", + "notExploitableDescription": "Níor aimsíodh aon chosán insroichte sa stór seo.", + "unknown": "Teastaíonn athbhreithniú", + "unknownTitle": "Teastaíonn athbhreithniú", + "unknownDescription": "Níorbh fhéidir leis an anailís a dheimhniú an bhfuil an gné leochaileach insroichte.", + "safeToDismiss": "Sábháilte le dísheachaint", + "safeToDismissTitle": "Sábháilte le dísheachaint", + "safeToDismissDescription": "Chinn an triáiste gur féidir é seo a dhísheachaint go sábháilte gan anailís chirtchóid.", + "manualReview": "Teastaíonn athbhreithniú", + "manualReviewTitle": "Teastaíonn athbhreithniú láimhe", + "manualReviewDescription": "Mharcáil an triáiste an fhionnachtain seo le haghaidh athbhreithnithe láimhe.", + "analysisRequired": "Anailís ag teastáil", + "analysisRequiredTitle": "Anailís chirtchóid ag teastáil", + "analysisRequiredDescription": "Molann an triáiste an stór a anailísiú sula gcinneann tú ar fhreagra.", + "completed": "Anailísithe", + "completedTitle": "Anailísithe", + "completedDescription": "Críochnaíodh an anailís gan aon toradh sonrach a thaifeadadh.", + "notAnalyzed": "Gan anailísiú", + "notAnalyzedTitle": "Gan anailísiú", + "notAnalyzedDescription": "Níor rith anailís an chirtchóid don fhionnachtain seo fós." + }, + "deadline": { + "fixedBeforeDeadline": "Deisithe roimh an spriocdháta", + "fixed": "Deisithe", + "fixedOn": "Deisithe an {{date}}", + "resolutionRecorded": "Taifeadadh an réiteach", + "superseded": "Curtha in ionad", + "dismissed": "Díbithe", + "closedOn": "{{status}} ar {{date}}", + "deadlineNotSet": "Gan spriocdháta socraithe", + "noSlaDeadline": "Gan spriocdháta SLA", + "dueOn": "Dlite ar {{date}}", + "overdueNow": "Thar téarma", + "overdue_one": "{{count}} lá thar téarma", + "overdue_two": "{{count}} lá thar téarma", + "overdue_few": "{{count}} lá thar téarma", + "overdue_many": "{{count}} lá thar téarma", + "overdue_other": "{{count}} lá thar téarma", + "dueToday": "Dlite inniu", + "dueTomorrow": "Dlite amárach", + "dueInDays_one": "Dlite i {{count}} lá", + "dueInDays_two": "Dlite i {{count}} lá", + "dueInDays_few": "Dlite i {{count}} lá", + "dueInDays_many": "Dlite i {{count}} lá", + "dueInDays_other": "Dlite i {{count}} lá", + "overdue": "{{count}} lá thar téarma", + "dueInDays": "Dlite i {{count}} lá" + }, + "remediationStatus": { + "cancellationRequested": "Iarradh cealú", + "notStarted": "Gan tosú", + "queued": "Sa scuaine", + "starting": "Ag tosú", + "inProgress": "Ar siúl", + "draftPrOpened": "Dréacht-PR oscailte", + "prOpened": "PR oscailte", + "blocked": "Coirceadh", + "failed": "Theip", + "noChangesNeeded": "Ní gá aon athruithe", + "cancelled": "Cealaithe", + "originAutomaticPolicy": "Polasaí uathoibríoch", + "originIncludeExistingPolicy": "Polasaí cinn atá ann a chur san áireamh", + "originManual": "De láimh", + "validationCheck": "Seiceáil bailíochtaithe {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Níl an fhionnachtain slándála ann a thuilleadh.", + "approvalRequired": "Teastaíonn ceadú le hUath-fheabhsú. Tosaigh leasú de láimh chun é a cheadú.", + "findingNotOpen": "Níl an fhionnachtain oscailte a thuilleadh.", + "repoNotInScope": "Níl an stór roghnaithe le haghaidh Security Agent.", + "analysisRequired": "Rith anailís chirtchóid sula dtosaíonn tú ar an leasú.", + "sandboxAnalysisRequired": "Rith anailís chirtchóid sula dtosaíonn tú ar an leasú.", + "staleAnalysis": "D'athraigh an fhionnachtain tar éis na hanailíse. Rith an anailís arís sula dtosaíonn tú ar an leasú.", + "notExploitable": "Níor aimsigh an anailís aon chosán leochaileach insroichte. Níl Uath-fheabhsú ar fáil.", + "exploitabilityUnknown": "Níorbh fhéidir leis an anailís inshaothraitheacht a dheimhniú. Teastaíonn athbhreithniú láimhe roimh leasú aon-chliceáil.", + "manualReviewRequired": "Molann an anailís athbhreithniú láimhe, mar sin níl leasú aon-chliceáil ar fáil.", + "monitorRequired": "Molann an anailís monatóireacht seachas PR a oscailt.", + "triageOnly": "Níl ach triáiste críochnaithe. Rith anailís chirtchóid sula dtosaíonn tú ar an leasú.", + "actionNotConcrete": "Níl aon paiste spleáchais nithiúil ná aon deisiúchán molta ar fáil.", + "remediationActive": "Tá iarracht leasaithe ar siúl cheana.", + "prAlreadyOpened": "Tá PR leasaithe oscailte cheana.", + "duplicateAnalysisResult": "Tháirg toradh na hanailíse seo obair leasaithe cheana.", + "retryNotAllowed": "Níl atriail ar fáil don iarracht seo.", + "securityAgentDisabled": "Tá Security Agent díchumasaithe don úinéir seo.", + "autoRemediationDisabled": "Tá Uath-fheabhsú díchumasaithe. Is féidir leasú láimhe a thosú fós nuair a ritheann na geataí sábháilteachta.", + "includeExistingDisabled": "Cuirtear fionnachtana atá ann cheana as an áireamh ó uath-fheabhsú.", + "belowThreshold": "Tá an fhionnachtain faoi bhun na tairsí déine uathoibríche. Is féidir leasú láimhe a thosú fós nuair a ritheann na geataí sábháilteachta.", + "beforeEnablement": "Críochnaíodh an anailís sular cumasaíodh Uath-fheabhsú. Is féidir leasú láimhe a thosú fós nuair a ritheann na geataí sábháilteachta.", + "generic": "Níl leasú ar fáil don fhionnachtain seo." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index bb8c8fe787..dae1af7f21 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -512,7 +512,9 @@ "pendingComment_other": "comentarios pendentes", "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentarios", "submitReview": "Enviar revisión", - "partialPostedMessage": "Publicouse {{displayFreshCount}} comentario(s). {{displayStaleCount}} comentario(s) apuntan a un commit máis antigo e permaneceron na túa cola." + "partialPostedMessage": "Publicouse {{displayFreshCount}} comentario(s). {{displayStaleCount}} comentario(s) apuntan a un commit máis antigo e permaneceron na túa cola.", + "blockedRequestChanges": "Engade un resumo ou polo menos un comentario para solicitar cambios.", + "blockedComment": "Engade un resumo ou polo menos un comentario para enviar unha revisión de comentario." }, "reconnectNotice": { "title": "A conexión de GitHub caducou", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Revisor de código", "updateFailed": "Non se puido actualizar o revisor", - "configSaveFailed": "Non se puido gardar a configuración da revisión" + "configSaveFailed": "Non se puido gardar a configuración da revisión", + "status": { + "pending": "Pendente", + "queued": "En cola", + "running": "Executando", + "completed": "Completado", + "failed": "Fallou", + "cancelled": "Cancelado", + "interrupted": "Interrompido" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Rexistro orixinal", "source": "Orixe", "sourceId": "ID de orixe", - "viewAdvisory": "Ver aviso en GitHub" + "viewAdvisory": "Ver aviso en GitHub", + "statusSuperseded": "Substituído", + "statusFixed": "Corrixido", + "statusOpen": "Aberto", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "xa se iniciou unha corrección", + "reasonNoBandwidth": "non hai dispoñibilidade", + "reasonTolerableRisk": "o risco é tolerable", + "reasonInaccurate": "o achado é impreciso", + "reasonNotUsed": "o código vulnerable non se usa", + "reasonAfterReview": "despois da revisión" }, "settingsOverview": { "title": "Configuración", @@ -1805,6 +1826,107 @@ "syncInProgress": "Xa hai unha sincronización de seguridade en curso. Proba de novo.", "dismissalInProgress": "Este descarte xa está en curso. Proba de novo.", "couldNotReadPendingSyncs": "Non se puideron ler as sincronizacións pendentes. Proba de novo." + }, + "analysisState": { + "queued": "Análise na cola", + "queuedTitle": "Análise na cola", + "queuedDescription": "Agardando a que haxa capacidade de análise dispoñible.", + "analyzing": "Analizando", + "analyzingTitle": "Analizando", + "analyzingDescription": "Comprobando se o código da aplicación pode chegar á función afectada.", + "failed": "Fallou a análise", + "failedTitle": "Fallou a análise", + "failedDescription": "Security Agent non puido completar a análise.", + "extractionFailed": "Necesita revisión", + "extractionFailedTitle": "Necesita revisión", + "extractionFailedDescription": "O informe técnico non se puido converter nun resultado estruturado.", + "exploitable": "Explotable", + "exploitableTitle": "Explotable", + "exploitableDescription": "O código da aplicación pode chegar á función afectada.", + "notExploitable": "Inaccesible", + "notExploitableTitle": "Inaccesible", + "notExploitableDescription": "Non se atopou ningún camiño accesible neste repositorio.", + "unknown": "Necesita revisión", + "unknownTitle": "Necesita revisión", + "unknownDescription": "A análise non puido confirmar se a función vulnerable é accesible.", + "safeToDismiss": "Seguro de descartar", + "safeToDismissTitle": "Seguro de descartar", + "safeToDismissDescription": "A triaxe determinou que isto se pode descartar con seguridade sen análise do código.", + "manualReview": "Necesita revisión", + "manualReviewTitle": "Necesita revisión manual", + "manualReviewDescription": "A triaxe marcou este achado para revisión manual.", + "analysisRequired": "Análise requirida", + "analysisRequiredTitle": "Análise do código requirida", + "analysisRequiredDescription": "A triaxe recomenda analizar o repositorio antes de decidir unha resposta.", + "completed": "Analizado", + "completedTitle": "Analizado", + "completedDescription": "Análise completada sen ningún resultado específico rexistrado.", + "notAnalyzed": "Sen analizar", + "notAnalyzedTitle": "Sen analizar", + "notAnalyzedDescription": "A análise do código aínda non se executou para este achado." + }, + "deadline": { + "fixedBeforeDeadline": "Corrixido antes da praza", + "fixed": "Corrixido", + "fixedOn": "Corrixido o {{date}}", + "resolutionRecorded": "Resolución rexistrada", + "superseded": "Substituído", + "dismissed": "Descartado", + "closedOn": "{{status}} o {{date}}", + "deadlineNotSet": "Praza non definida", + "noSlaDeadline": "Sen praza SLA", + "dueOn": "Vence o {{date}}", + "overdueNow": "Atrasado", + "overdue_one": "{{count}} día de atraso", + "overdue_other": "{{count}} días de atraso", + "dueToday": "Vence hoxe", + "dueTomorrow": "Vence mañá", + "dueInDays_one": "Vence en {{count}} día", + "dueInDays_other": "Vence en {{count}} días", + "overdue": "{{count}} días de atraso", + "dueInDays": "Vence en {{count}} días" + }, + "remediationStatus": { + "cancellationRequested": "Solicitouse a cancelación", + "notStarted": "Sen iniciar", + "queued": "Na cola", + "starting": "Iniciando", + "inProgress": "En curso", + "draftPrOpened": "Borrador de solicitude de cambios aberto", + "prOpened": "Solicitude de cambios aberta", + "blocked": "Bloqueada", + "failed": "Fallou", + "noChangesNeeded": "Non se precisan cambios", + "cancelled": "Cancelado", + "originAutomaticPolicy": "Política automática", + "originIncludeExistingPolicy": "Política de inclusión dos existentes", + "originManual": "Manual", + "validationCheck": "Comprobación de validación {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "O achado de seguridade xa non existe.", + "approvalRequired": "A Autoremediación require aprobación. Inicia a corrección manualmente para aprobala.", + "findingNotOpen": "O achado xa non está aberto.", + "repoNotInScope": "O repositorio non está seleccionado para Security Agent.", + "analysisRequired": "Executa unha análise do código antes de iniciar a corrección.", + "sandboxAnalysisRequired": "Executa unha análise do código antes de iniciar a corrección.", + "staleAnalysis": "O achado cambiou despois da análise. Volve executar a análise antes de iniciar a corrección.", + "notExploitable": "A análise non atopou ningún camiño vulnerable accesible. A Autoremediación non está dispoñible.", + "exploitabilityUnknown": "A análise non puido confirmar a explotabilidade. Requírese revisión manual antes da corrección cun só clic.", + "manualReviewRequired": "A análise recomenda revisión manual, polo que a corrección cun só clic non está dispoñible.", + "monitorRequired": "A análise recomenda supervisión en lugar de abrir un PR.", + "triageOnly": "Só se completou a triaxe. Executa unha análise do código antes de iniciar a corrección.", + "actionNotConcrete": "Non hai ningún parche de dependencia concreto nin unha corrección suxerida dispoñible.", + "remediationActive": "Xa hai un intento de corrección activo.", + "prAlreadyOpened": "Xa hai un PR de corrección aberto.", + "duplicateAnalysisResult": "Este resultado de análise xa produciu traballo de corrección.", + "retryNotAllowed": "O reintento non está dispoñible para este intento.", + "securityAgentDisabled": "Security Agent está desactivado para este propietario.", + "autoRemediationDisabled": "A Autoremediación está desactivada. A corrección manual aínda pode comezar cando pasen as portas de seguridade.", + "includeExistingDisabled": "Os achados existentes exclúense da corrección automática.", + "belowThreshold": "O achado está por baixo do limiar de gravidade automático. A corrección manual aínda pode comezar cando pasen as portas de seguridade.", + "beforeEnablement": "A análise completouse antes de activarse a Autoremediación. A corrección manual aínda pode comezar cando pasen as portas de seguridade.", + "generic": "A corrección non está dispoñible para este achado." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index 643875c417..c47654f1ae 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -512,7 +512,9 @@ "pendingComment_other": "બાકી ટિપ્પણીઓ", "submitCountOfTotal": "{{displayTotalCount}} માંથી {{displayFreshCount}} ટિપ્પણીઓ સબમિટ કરો", "submitReview": "સમીક્ષા સબમિટ કરો", - "partialPostedMessage": "{{displayFreshCount}} ટિપ્પણી(ઓ) પોસ્ટ થઈ. {{displayStaleCount}} ટિપ્પણી(ઓ) જૂની કમિટ પર નિર્દેશ કરે છે અને તમારી કતારમાં રહી." + "partialPostedMessage": "{{displayFreshCount}} ટિપ્પણી(ઓ) પોસ્ટ થઈ. {{displayStaleCount}} ટિપ્પણી(ઓ) જૂની કમિટ પર નિર્દેશ કરે છે અને તમારી કતારમાં રહી.", + "blockedRequestChanges": "ફેરફારો માંગવા માટે સારાંશ અથવા ઓછામાં ઓછી એક ટિપ્પણી ઉમેરો.", + "blockedComment": "ટિપ્પણી સમીક્ષા સબમિટ કરવા માટે સારાંશ અથવા ઓછામાં ઓછી એક ટિપ્પણી ઉમેરો." }, "reconnectNotice": { "title": "GitHub કનેક્શન સમાપ્ત થઈ ગયું", @@ -1376,7 +1378,16 @@ }, "eyebrow": "કોડ સમીક્ષક", "updateFailed": "સમીક્ષક અપડેટ કરવામાં નિષ્ફળ", - "configSaveFailed": "સમીક્ષા કોન્ફિગ સાચવવામાં નિષ્ફળ" + "configSaveFailed": "સમીક્ષા કોન્ફિગ સાચવવામાં નિષ્ફળ", + "status": { + "pending": "બાકી", + "queued": "કતારમાં છે", + "running": "ચાલી રહ્યું છે", + "completed": "પૂર્ણ કરેલ", + "failed": "નિષ્ફળ", + "cancelled": "રદ કરેલ", + "interrupted": "વિક્ષેપિત" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "સ્ત્રોત રેકોર્ડ", "source": "સ્ત્રોત", "sourceId": "સ્ત્રોત ID", - "viewAdvisory": "GitHub પર સલાહ જુઓ" + "viewAdvisory": "GitHub પર સલાહ જુઓ", + "statusSuperseded": "બદલાયેલ", + "statusFixed": "ઠીક કરેલ", + "statusOpen": "ખુલ્લું", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "સુધારો પહેલેથી શરૂ થયો છે", + "reasonNoBandwidth": "કોઈ ક્ષમતા ઉપલબ્ધ નથી", + "reasonTolerableRisk": "જોખમ સહનશીલ છે", + "reasonInaccurate": "શોધ અચોક્કસ છે", + "reasonNotUsed": "સંવેદનશીલ કોડનો ઉપયોગ નથી થયો", + "reasonAfterReview": "સમીક્ષા પછી" }, "settingsOverview": { "title": "સેટિંગ્સ", @@ -1805,6 +1826,107 @@ "syncInProgress": "સુરક્ષા સિંક પહેલેથી ચાલુ છે. કૃપા કરીને ફરી પ્રયત્ન કરો.", "dismissalInProgress": "આ ખારિજ કરવાની પ્રક્રિયા પહેલેથી ચાલુ છે. કૃપા કરીને ફરી પ્રયત્ન કરો.", "couldNotReadPendingSyncs": "બાકી સિંક વાંચી શકાયા નહીં. ફરી પ્રયત્ન કરો." + }, + "analysisState": { + "queued": "વિશ્લેષણ કતારમાં છે", + "queuedTitle": "વિશ્લેષણ કતારમાં છે", + "queuedDescription": "વિશ્લેષણ ક્ષમતા ઉપલબ્ધ થવાની રાહ જોવાઈ રહી છે.", + "analyzing": "વિશ્લેષણ કરી રહ્યા છીએ", + "analyzingTitle": "વિશ્લેષણ કરી રહ્યા છીએ", + "analyzingDescription": "એપ્લિકેશન કોડ પ્રભાવિત ફીચર સુધી પહોંચી શકે છે કે કેમ તે તપાસવામાં આવી રહ્યું છે.", + "failed": "વિશ્લેષણ નિષ્ફળ", + "failedTitle": "વિશ્લેષણ નિષ્ફળ", + "failedDescription": "સિક્યુરિટી એજન્ટ વિશ્લેષણ પૂર્ણ કરી શક્યું નહીં.", + "extractionFailed": "સમીક્ષાની જરૂર છે", + "extractionFailedTitle": "સમીક્ષાની જરૂર છે", + "extractionFailedDescription": "તકનીકી રિપોર્ટને રચનાત્મક પરિણામમાં ફેરવી શકાયું નહીં.", + "exploitable": "શોષણક્ષમ", + "exploitableTitle": "શોષણક્ષમ", + "exploitableDescription": "એપ્લિકેશન કોડ પ્રભાવિત ફીચર સુધી પહોંચી શકે છે.", + "notExploitable": "અપ્રાપ્ય", + "notExploitableTitle": "અપ્રાપ્ય", + "notExploitableDescription": "આ રિપોઝિટરીમાં કોઈ પહોંચી શકાય તેવો માર્ગ મળ્યો નથી.", + "unknown": "સમીક્ષાની જરૂર છે", + "unknownTitle": "સમીક્ષાની જરૂર છે", + "unknownDescription": "વિશ્લેષણ પુષ્ટિ કરી શક્યું નહીં કે સંવેદનશીલ ફીચર પહોંચી શકાય તેવું છે કે નહીં.", + "safeToDismiss": "કાઢી નાખવું સલામત", + "safeToDismissTitle": "કાઢી નાખવું સલામત", + "safeToDismissDescription": "ટ્રાયેજે કોડબેઝ વિશ્લેષણ વિના આ સુરક્ષિત રીતે કાઢી નાખી શકાય તેવું નક્કી કર્યું.", + "manualReview": "સમીક્ષાની જરૂર છે", + "manualReviewTitle": "મેન્યુઅલ સમીક્ષાની જરૂર છે", + "manualReviewDescription": "ટ્રાયેજે આ શોધ મેન્યુઅલ સમીક્ષા માટે ચિહ્નિત કરી.", + "analysisRequired": "વિશ્લેષણ જરૂરી", + "analysisRequiredTitle": "કોડબેઝ વિશ્લેષણ જરૂરી", + "analysisRequiredDescription": "ટ્રાયેજ જવાબ નક્કી કરતા પહેલા રિપોઝિટરીનું વિશ્લેષણ કરવાની ભલામણ કરે છે.", + "completed": "વિશ્લેષિત", + "completedTitle": "વિશ્લેષિત", + "completedDescription": "વિશ્લેષણ કોઈ ચોક્કસ પરિણામ નોંધાયા વિના પૂર્ણ થયું.", + "notAnalyzed": "વિશ્લેષણ નથી કરેલ", + "notAnalyzedTitle": "વિશ્લેષણ નથી કરેલ", + "notAnalyzedDescription": "આ શોધ માટે હજુ કોડબેઝ વિશ્લેષણ ચાલ્યું નથી." + }, + "deadline": { + "fixedBeforeDeadline": "સમયમર્યાદા પહેલાં ઠીક કરેલ", + "fixed": "ઠીક કરેલ", + "fixedOn": "{{date}} ના રોજ ઠીક કરેલ", + "resolutionRecorded": "ઉકેલ નોંધાયેલ", + "superseded": "બદલાયેલ", + "dismissed": "કાઢી નાખેલ", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "અંતિમ તારીખ સેટ નથી", + "noSlaDeadline": "કોઈ SLA અંતિમ તારીખ નથી", + "dueOn": "{{date}} સુધીમાં બાકી", + "overdueNow": "વિલંબિત", + "overdue_one": "{{count}} દિવસ વિલંબિત", + "overdue_other": "{{count}} દિવસ વિલંબિત", + "dueToday": "આજે બાકી", + "dueTomorrow": "કાલે બાકી", + "dueInDays_one": "{{count}} દિવસમાં બાકી", + "dueInDays_other": "{{count}} દિવસોમાં બાકી", + "overdue": "{{count}} દિવસ વિલંબિત", + "dueInDays": "{{count}} દિવસોમાં બાકી" + }, + "remediationStatus": { + "cancellationRequested": "રદ કરવાની વિનંતી કરેલ", + "notStarted": "શરૂ કરેલ નથી", + "queued": "કતારમાં છે", + "starting": "શરૂ થઈ રહ્યું છે", + "inProgress": "ચાલુ છે", + "draftPrOpened": "ડ્રાફ્ટ PR ખોલેલ", + "prOpened": "PR ખોલેલ", + "blocked": "અવરોધિત", + "failed": "નિષ્ફળ", + "noChangesNeeded": "કોઈ ફેરફારની જરૂર નથી", + "cancelled": "રદ કરેલ", + "originAutomaticPolicy": "સ્વચાલિત નીતિ", + "originIncludeExistingPolicy": "હાલની નીતિ શામેલ કરો", + "originManual": "મેન્યુઅલ", + "validationCheck": "માન્યતા તપાસ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "સુરક્ષા શોધ હવે અસ્તિત્વમાં નથી.", + "approvalRequired": "ઓટો સુધારણા માટે મંજૂરી જરૂરી છે. મંજૂરી આપવા સુધારણા મેન્યુઅલ રીતે શરૂ કરો.", + "findingNotOpen": "શોધ હવે ખુલ્લી નથી.", + "repoNotInScope": "રિપોઝિટરી સિક્યુરિટી એજન્ટ માટે પસંદ કરેલી નથી.", + "analysisRequired": "સુધારણા શરૂ કરતા પહેલા કોડબેઝ વિશ્લેષણ ચલાવો.", + "sandboxAnalysisRequired": "સુધારણા શરૂ કરતા પહેલા કોડબેઝ વિશ્લેષણ ચલાવો.", + "staleAnalysis": "વિશ્લેષણ પછી શોધ બદલાઈ. સુધારણા શરૂ કરતા પહેલા વિશ્લેષણ ફરી ચલાવો.", + "notExploitable": "વિશ્લેષણમાં કોઈ પહોંચી શકાય તેવો સંવેદનશીલ માર્ગ મળ્યો નથી. ઓટો સુધારણા ઉપલબ્ધ નથી.", + "exploitabilityUnknown": "વિશ્લેષણ શોષણક્ષમતાની પુષ્ટિ કરી શક્યું નહીં. વન-ક્લિક સુધારણા પહેલા મેન્યુઅલ સમીક્ષા જરૂરી છે.", + "manualReviewRequired": "વિશ્લેષણ મેન્યુઅલ સમીક્ષાની ભલામણ કરે છે, તેથી વન-ક્લિક સુધારણા ઉપલબ્ધ નથી.", + "monitorRequired": "વિશ્લેષણ PR ખોલવાને બદલે મોનિટરિંગની ભલામણ કરે છે.", + "triageOnly": "માત્ર ટ્રાયેજ પૂર્ણ થયું છે. સુધારણા શરૂ કરતા પહેલા કોડબેઝ વિશ્લેષણ ચલાવો.", + "actionNotConcrete": "કોઈ નક્કર ડિપેન્ડન્સી પેચ અથવા સૂચવેલ સુધારો ઉપલબ્ધ નથી.", + "remediationActive": "સુધારણાનો પ્રયાસ પહેલેથી ચાલુ છે.", + "prAlreadyOpened": "સુધારણા PR પહેલેથી ખુલ્લો છે.", + "duplicateAnalysisResult": "આ વિશ્લેષણ પરિણામ પહેલેથી સુધારણા કાર્ય ઉત્પન્ન કર્યું છે.", + "retryNotAllowed": "આ પ્રયાસ માટે ફરી પ્રયત્ન ઉપલબ્ધ નથી.", + "securityAgentDisabled": "સિક્યુરિટી એજન્ટ આ માલિક માટે અક્ષમ છે.", + "autoRemediationDisabled": "ઓટો સુધારણા અક્ષમ છે. સલામતી ગેટ પસાર થાય ત્યારે મેન્યુઅલ સુધારણા હજુ શરૂ થઈ શકે છે.", + "includeExistingDisabled": "હાલની શોધ સ્વચાલિત સુધારણામાંથી બાકાત છે.", + "belowThreshold": "શોધ સ્વચાલિત ગંભીરતા થ્રેશોલ્ડથી નીચે છે. સલામતી ગેટ પસાર થાય ત્યારે મેન્યુઅલ સુધારણા હજુ શરૂ થઈ શકે છે.", + "beforeEnablement": "ઓટો સુધારણા સક્ષમ થતા પહેલા વિશ્લેષણ પૂર્ણ થયું. સલામતી ગેટ પસાર થાય ત્યારે મેન્યુઅલ સુધારણા હજુ શરૂ થઈ શકે છે.", + "generic": "આ શોધ માટે સુધારણા ઉપલબ્ધ નથી." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index 2ad84bfcd2..aeffbc74c4 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -512,7 +512,9 @@ "pendingComment_other": "tsokacin da ke jira", "submitCountOfTotal": "Ƙaddamar da {{displayFreshCount}} daga {{displayTotalCount}} tsokaci", "submitReview": "Ƙaddamar da bita", - "partialPostedMessage": "An buga {{displayFreshCount}} tsokaci. {{displayStaleCount}} tsokaci suna nuna tsohon commit kuma sun kasance a jerinka." + "partialPostedMessage": "An buga {{displayFreshCount}} tsokaci. {{displayStaleCount}} tsokaci suna nuna tsohon commit kuma sun kasance a jerinka.", + "blockedRequestChanges": "Ƙara taƙaitawa ko aƙalla tsokaci ɗaya don neman canje-canje.", + "blockedComment": "Ƙara taƙaitawa ko aƙalla tsokaci ɗaya don ƙaddamar da bitar tsokaci." }, "reconnectNotice": { "title": "Haɗin GitHub ya ƙare", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Mai Bitar Lambar", "updateFailed": "An kasa sabunta mai bita", - "configSaveFailed": "An kasa ajiye saitin bita" + "configSaveFailed": "An kasa ajiye saitin bita", + "status": { + "pending": "Yana jira", + "queued": "A jera", + "running": "Yana gudana", + "completed": "An kammala", + "failed": "Ya kasa", + "cancelled": "An soke", + "interrupted": "An katse" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Rikodin tushe", "source": "Tushe", "sourceId": "ID na tushe", - "viewAdvisory": "Duba shawara akan GitHub" + "viewAdvisory": "Duba shawara akan GitHub", + "statusSuperseded": "An maye gurbinsa", + "statusFixed": "An gyara", + "statusOpen": "Buɗe", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "An riga an fara gyara", + "reasonNoBandwidth": "Babu damar aiki", + "reasonTolerableRisk": "Haɗarin ya zama abin ɗauka", + "reasonInaccurate": "Sakamakon bai yi daidai ba", + "reasonNotUsed": "Ba a yi amfani da lambar mai rauni ba", + "reasonAfterReview": "bayan bita" }, "settingsOverview": { "title": "Saituna", @@ -1805,6 +1826,107 @@ "syncInProgress": "Daidaitawar tsaro tana ci gaba. Don Allah sake gwadawa.", "dismissalInProgress": "Wannan watsarwa tana ci gaba. Don Allah sake gwadawa.", "couldNotReadPendingSyncs": "Ba a iya karanta daidaitawar da ke jira ba. Sake gwadawa." + }, + "analysisState": { + "queued": "An shigar da nazari", + "queuedTitle": "An shigar da nazari", + "queuedDescription": "Ana jiran ƙarfin nazari ya samu.", + "analyzing": "Ana nazarta", + "analyzingTitle": "Ana nazarta", + "analyzingDescription": "Ana duba ko lambar aikace-aikacen na iya isa ga fasalin da abin ya shafa.", + "failed": "Nazarin ya kasa", + "failedTitle": "Nazarin ya kasa", + "failedDescription": "Security Agent bai iya kammala nazarin ba.", + "extractionFailed": "Yana buƙatar bita", + "extractionFailedTitle": "Yana buƙatar bita", + "extractionFailedDescription": "Ba a iya mayar da rahoton fasaha zuwa sakamako mai tsari ba.", + "exploitable": "Ana iya amfani da shi", + "exploitableTitle": "Ana iya amfani da shi", + "exploitableDescription": "Lambar aikace-aikacen na iya isa ga fasalin da abin ya shafa.", + "notExploitable": "Ba za a iya isa ba", + "notExploitableTitle": "Ba za a iya isa ba", + "notExploitableDescription": "Ba a sami wata hanya da za a iya isa ba a cikin wannan ma'ajiya.", + "unknown": "Yana buƙatar bita", + "unknownTitle": "Yana buƙatar bita", + "unknownDescription": "Nazari bai iya tabbatarwa ba ko fasalin da ke da rauni za a iya isa gare shi.", + "safeToDismiss": "Laifi a watsar", + "safeToDismissTitle": "Laifi a watsar", + "safeToDismissDescription": "Tantancewa ya ƙayyade ana iya watsar da wannan lafiya ba tare da nazarin lambar ba.", + "manualReview": "Yana buƙatar bita", + "manualReviewTitle": "Yana buƙatar bitar hannu", + "manualReviewDescription": "Tantancewa ya nuna wannan sakamako don bitar hannu.", + "analysisRequired": "Ana buƙatar nazari", + "analysisRequiredTitle": "Ana buƙatar nazarin lambar", + "analysisRequiredDescription": "Tantancewa ya ba da shawarar nazarin ma'ajiya kafin yanke amsa.", + "completed": "An yi nazari", + "completedTitle": "An yi nazari", + "completedDescription": "Nazari ya kammala ba tare da an rubuta wani sakamako na musamman ba.", + "notAnalyzed": "Ba a nazarta ba", + "notAnalyzedTitle": "Ba a nazarta ba", + "notAnalyzedDescription": "Ba a gudanar da nazarin lamba don wannan sakamako ba tukuna." + }, + "deadline": { + "fixedBeforeDeadline": "An gyara kafin ƙarshen lokaci", + "fixed": "An gyara", + "fixedOn": "An gyara {{date}}", + "resolutionRecorded": "An rubuta warwarewa", + "superseded": "An maye gurbinsa", + "dismissed": "An watsar", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Ba a saita ƙarshen lokaci ba", + "noSlaDeadline": "Babu ƙarshen lokacin SLA", + "dueOn": "Ana sa ran {{date}}", + "overdueNow": "Wuce lokaci", + "overdue_one": "{{count}} kwana a wuce lokaci", + "overdue_other": "{{count}} kwanaki a wuce lokaci", + "dueToday": "Ana sa ran yau", + "dueTomorrow": "Ana sa ran gobe", + "dueInDays_one": "Ana sa ran cikin {{count}} kwana", + "dueInDays_other": "Ana sa ran cikin {{count}} kwanaki", + "overdue": "{{count}} kwanaki a wuce lokaci", + "dueInDays": "Ana sa ran cikin {{count}} kwanaki" + }, + "remediationStatus": { + "cancellationRequested": "An nemi soke", + "notStarted": "Ba a fara ba", + "queued": "A jera", + "starting": "Ana farawa", + "inProgress": "Yana gudana", + "draftPrOpened": "An buɗe daftarin PR", + "prOpened": "An buɗe PR", + "blocked": "An toshe", + "failed": "Ya kasa", + "noChangesNeeded": "Babu canji da ake buƙata", + "cancelled": "An soke", + "originAutomaticPolicy": "Manufar atomatik", + "originIncludeExistingPolicy": "Haɗa manufar da ke akwai", + "originManual": "Na hannu", + "validationCheck": "Duban inganci {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Sakamakon tsaro ba ya wanzu kuma.", + "approvalRequired": "Gyara ta atomatik yana buƙatar amincewa. Fara gyara da hannu don amincewa.", + "findingNotOpen": "Sakamakon ba ya buɗe kuma.", + "repoNotInScope": "Ba a zaɓi ma'ajiya domin Security Agent ba.", + "analysisRequired": "Gudanar da nazarin lambar kafin fara gyara.", + "sandboxAnalysisRequired": "Gudanar da nazarin lambar kafin fara gyara.", + "staleAnalysis": "Sakamako ya canza bayan nazari. Sake gudanar da nazari kafin fara gyara.", + "notExploitable": "Nazari bai sami hanya marar tsaro da za a iya isa ba. Gyara ta atomatik ba ta samuwa.", + "exploitabilityUnknown": "Nazari bai iya tabbatar da yiwuwar amfani ba. Ana buƙatar bitar hannu kafin gyaran danna ɗaya.", + "manualReviewRequired": "Nazari ya ba da shawarar bitar hannu, don haka gyaran danna ɗaya ba ya samuwa.", + "monitorRequired": "Nazari ya ba da shawarar sa ido maimakon buɗe PR.", + "triageOnly": "Tantancewa kawai ya kammala. Gudanar da nazarin lambar kafin fara gyara.", + "actionNotConcrete": "Babu ingantaccen gyara na dogaro ko gyaran da aka ba da shawara.", + "remediationActive": "Ƙoƙarin gyara ya riga ya aiki.", + "prAlreadyOpened": "PR na gyara ya riga ya buɗe.", + "duplicateAnalysisResult": "Wannan sakamakon nazari ya riga ya samar da aikin gyara.", + "retryNotAllowed": "Sake gwadawa ba ya samuwa don wannan ƙoƙari.", + "securityAgentDisabled": "An kashe Security Agent don wannan mai shi.", + "autoRemediationDisabled": "An kashe gyara ta atomatik. Gyaran hannu na iya farawa har yanzu idan ƙofofin aminci suka wuce.", + "includeExistingDisabled": "An cire sakamakon da ke akwai daga gyara ta atomatik.", + "belowThreshold": "Sakamako yana ƙasa da matakin tsananin atomatik. Gyaran hannu na iya farawa har yanzu idan ƙofofin aminci suka wuce.", + "beforeEnablement": "Nazari ya kammala kafin a kunna gyara ta atomatik. Gyaran hannu na iya farawa har yanzu idan ƙofofin aminci suka wuce.", + "generic": "Gyara ba ya samuwa domin wannan sakamako." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index 3eac3b229b..7d3d6f17cd 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -941,7 +941,16 @@ "set": "הוגדר" }, "updateFailed": "עדכון הסוקר נכשל", - "configSaveFailed": "שמירת הגדרת הסקירה נכשלה" + "configSaveFailed": "שמירת הגדרת הסקירה נכשלה", + "status": { + "pending": "ממתין", + "queued": "בתור", + "running": "רץ", + "completed": "הושלם", + "failed": "נכשל", + "cancelled": "בוטל", + "interrupted": "הופסק" + } }, "securityAgent": { "filter": { @@ -1188,7 +1197,17 @@ "unknown": "לא ידוע", "updated": "עודכן", "viewAdvisory": "צפה בייעוץ ב-GitHub", - "vulnerableVersions": "גרסאות פגיעות" + "vulnerableVersions": "גרסאות פגיעות", + "statusSuperseded": "הוחלף", + "statusFixed": "תוקן", + "statusOpen": "פתוח", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "תיקון כבר החל", + "reasonNoBandwidth": "אין רוחב פס זמין", + "reasonTolerableRisk": "הסיכון נסבל", + "reasonInaccurate": "הממצא אינו מדויק", + "reasonNotUsed": "הקוד הפגיע אינו בשימוש", + "reasonAfterReview": "לאחר סקירה" }, "findingList": { "clearFilters": "נקה מסננים", @@ -1372,6 +1391,109 @@ "syncInProgress": "סנכרון אבטחה כבר מתבצע. נסה שוב.", "dismissalInProgress": "הדחייה הזו כבר מתבצעת. נסה שוב.", "couldNotReadPendingSyncs": "לא ניתן היה לקרוא סנכרונים ממתינים. נסה שוב." + }, + "analysisState": { + "queued": "הניתוח הועמד בתור", + "queuedTitle": "הניתוח הועמד בתור", + "queuedDescription": "ממתין שתפנה קיבולת ניתוח.", + "analyzing": "מנתח", + "analyzingTitle": "מנתח", + "analyzingDescription": "בודק האם קוד היישום יכול להגיע ליכולת המושפעת.", + "failed": "הניתוח נכשל", + "failedTitle": "הניתוח נכשל", + "failedDescription": "סוכן האבטחה לא הצליח להשלים את הניתוח.", + "extractionFailed": "דורש סקירה", + "extractionFailedTitle": "דורש סקירה", + "extractionFailedDescription": "לא ניתן היה להפוך את הדוח הטכני לתוצאה מובנית.", + "exploitable": "ניתן לניצול", + "exploitableTitle": "ניתן לניצול", + "exploitableDescription": "קוד היישום יכול להגיע ליכולת המושפעת.", + "notExploitable": "לא ניתן לגישה", + "notExploitableTitle": "לא ניתן לגישה", + "notExploitableDescription": "לא נמצא נתיב שניתן לגישה במאגר זה.", + "unknown": "דורש סקירה", + "unknownTitle": "דורש סקירה", + "unknownDescription": "הניתוח לא יכול היה לאשר אם היכולת הפגיעה ניתנת לגישה.", + "safeToDismiss": "בטוח לדחייה", + "safeToDismissTitle": "בטוח לדחייה", + "safeToDismissDescription": "המיון קבע שניתן לדחות זאת בבטחה ללא ניתוח בסיס קוד.", + "manualReview": "דורש סקירה", + "manualReviewTitle": "דורש סקירה ידנית", + "manualReviewDescription": "המיון סימן ממצא זה לסקירה ידנית.", + "analysisRequired": "נדרש ניתוח", + "analysisRequiredTitle": "נדרש ניתוח בסיס קוד", + "analysisRequiredDescription": "המיון ממליץ לנתח את המאגר לפני קבלת החלטה על תגובה.", + "completed": "נותח", + "completedTitle": "נותח", + "completedDescription": "הניתוח הושלם ללא תיעוד תוצאה ספציפית.", + "notAnalyzed": "לא נותח", + "notAnalyzedTitle": "לא נותח", + "notAnalyzedDescription": "ניתוח בסיס הקוד טרם הופעל עבור ממצא זה." + }, + "deadline": { + "fixedBeforeDeadline": "תוקן לפני המועד", + "fixed": "תוקן", + "fixedOn": "תוקן ב-{{date}}", + "resolutionRecorded": "תועד פתרון", + "superseded": "הוחלף", + "dismissed": "נדחה", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "לא הוגדר מועד אחרון", + "noSlaDeadline": "אין מועד אחרון ל-SLA", + "dueOn": "אמור ב-{{date}}", + "overdueNow": "באיחור", + "overdue_one": "{{count}} יום באיחור", + "overdue_two": "{{count}} ימים באיחור", + "overdue_other": "{{count}} ימים באיחור", + "dueToday": "אמור היום", + "dueTomorrow": "אמור מחר", + "dueInDays_one": "אמור בעוד {{count}} יום", + "dueInDays_two": "אמור בעוד {{count}} ימים", + "dueInDays_other": "אמור בעוד {{count}} ימים", + "overdue": "{{count}} ימים באיחור", + "dueInDays": "אמור בעוד {{count}} ימים" + }, + "remediationStatus": { + "cancellationRequested": "התבקשה ביטול", + "notStarted": "לא התחיל", + "queued": "בתור", + "starting": "מתחיל", + "inProgress": "בתהליך", + "draftPrOpened": "נפתח PR בטיוטה", + "prOpened": "PR נפתח", + "blocked": "נחסם", + "failed": "נכשל", + "noChangesNeeded": "אין צורך בשינויים", + "cancelled": "בוטל", + "originAutomaticPolicy": "מדיניות אוטומטית", + "originIncludeExistingPolicy": "כלול מדיניות קיימת", + "originManual": "ידני", + "validationCheck": "בדיקת ולידציה {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ממצא האבטחה אינו קיים עוד.", + "approvalRequired": "התיקון האוטומטי דורש אישור. התחל תיקון ידני כדי לאשר אותו.", + "findingNotOpen": "הממצא אינו פתוח עוד.", + "repoNotInScope": "המאגר אינו נבחר עבור סוכן האבטחה.", + "analysisRequired": "הרץ ניתוח בסיס קוד לפני תחילת התיקון.", + "sandboxAnalysisRequired": "הרץ ניתוח בסיס קוד לפני תחילת התיקון.", + "staleAnalysis": "הממצא השתנה לאחר הניתוח. הרץ שוב את הניתוח לפני תחילת התיקון.", + "notExploitable": "הניתוח לא מצא נתיב פגיע שניתן לגישה. התיקון האוטומטי אינו זמין.", + "exploitabilityUnknown": "הניתוח לא יכול היה לאשר ניצוליות. נדרשת סקירה ידנית לפני תיקון בלחיצה אחת.", + "manualReviewRequired": "הניתוח ממליץ על סקירה ידנית, ולכן תיקון בלחיצה אחת אינו זמין.", + "monitorRequired": "הניתוח ממליץ על ניטור במקום פתיחת PR.", + "triageOnly": "רק המיון הושלם. הרץ ניתוח בסיס קוד לפני תחילת התיקון.", + "actionNotConcrete": "אין תיקון תלות קונקרטי או פתרון מוצע זמין.", + "remediationActive": "ניסיון תיקון כבר פעיל.", + "prAlreadyOpened": "PR תיקון כבר פתוח.", + "duplicateAnalysisResult": "תוצאת ניתוח זו כבר הניבה עבודת תיקון.", + "retryNotAllowed": "ניסיון חוזר אינו זמין לניסיון זה.", + "securityAgentDisabled": "סוכן האבטחה מושבת עבור בעל זה.", + "autoRemediationDisabled": "התיקון האוטומטי מושבת. תיקון ידני עדיין יכול להתחיל כאשר שערי הבטיחות עוברים.", + "includeExistingDisabled": "ממצאים קיימים אינם נכללים בתיקון אוטומטי.", + "belowThreshold": "הממצא מתחת לסף החומרה האוטומטי. תיקון ידני עדיין יכול להתחיל כאשר שערי הבטיחות עוברים.", + "beforeEnablement": "הניתוח הושלם לפני שהתיקון האוטומטי הופעל. תיקון ידני עדיין יכול להתחיל כאשר שערי הבטיחות עוברים.", + "generic": "התיקון אינו זמין עבור ממצא זה." } }, "agents": { @@ -2657,7 +2779,9 @@ "partialPostedMessage": "פורסמו {{displayFreshCount}} תגובות. {{displayStaleCount}} תגובות מתייחסות ל-commit ישן יותר ונשארו בתור שלך.", "submitCountOfTotal": "שלח {{displayFreshCount}} מתוך {{displayTotalCount}} תגובות", "submitReview": "שלח סקירה", - "pendingComment_two": "תגובות ממתינות" + "pendingComment_two": "תגובות ממתינות", + "blockedRequestChanges": "הוסף סיכום או לפחות תגובה אחת כדי לבקש שינויים.", + "blockedComment": "הוסף סיכום או לפחות תגובה אחת כדי לשלוח סקירת תגובה." }, "fileStatus": { "added": "נוסף", diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index 17aeb272cf..112b539aff 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -939,7 +939,16 @@ "set": "सेट करें" }, "updateFailed": "समीक्षक अपडेट करने में विफल", - "configSaveFailed": "समीक्षा कॉन्फ़िग सहेजने में विफल" + "configSaveFailed": "समीक्षा कॉन्फ़िग सहेजने में विफल", + "status": { + "pending": "लंबित", + "queued": "कतार में", + "running": "चल रहा है", + "completed": "पूर्ण", + "failed": "विफल", + "cancelled": "रद्द किया गया", + "interrupted": "बाधित" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "अज्ञात", "updated": "अपडेट किया गया", "viewAdvisory": "GitHub पर सलाह देखें", - "vulnerableVersions": "असुरक्षित वर्ज़न" + "vulnerableVersions": "असुरक्षित वर्ज़न", + "statusSuperseded": "अधिक्रमित", + "statusFixed": "ठीक किया गया", + "statusOpen": "खुला", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "सुधार पहले ही शुरू हो चुका है", + "reasonNoBandwidth": "कोई बैंडविड्थ उपलब्ध नहीं", + "reasonTolerableRisk": "जोखिम सहनीय है", + "reasonInaccurate": "निष्कर्ष गलत है", + "reasonNotUsed": "असुरक्षित कोड उपयोग नहीं होता", + "reasonAfterReview": "समीक्षा के बाद" }, "findingList": { "clearFilters": "फ़िल्टर साफ़ करें", @@ -1368,6 +1387,107 @@ "syncInProgress": "एक सुरक्षा सिंक पहले से ही चल रहा है। कृपया फिर से प्रयास करें।", "dismissalInProgress": "यह खारिजीकरण पहले से ही चल रहा है। कृपया फिर से प्रयास करें।", "couldNotReadPendingSyncs": "लंबित सिंक पढ़े नहीं जा सके। फिर से प्रयास करें।" + }, + "analysisState": { + "queued": "विश्लेषण कतार में लगाया गया", + "queuedTitle": "विश्लेषण कतार में लगाया गया", + "queuedDescription": "विश्लेषण क्षमता उपलब्ध होने की प्रतीक्षा की जा रही है।", + "analyzing": "विश्लेषण हो रहा है", + "analyzingTitle": "विश्लेषण हो रहा है", + "analyzingDescription": "यह जाँच की जा रही है कि एप्लिकेशन कोड प्रभावित सुविधा तक पहुँच सकता है या नहीं।", + "failed": "विश्लेषण विफल", + "failedTitle": "विश्लेषण विफल", + "failedDescription": "Security Agent विश्लेषण पूरा नहीं कर सका।", + "extractionFailed": "समीक्षा आवश्यक", + "extractionFailedTitle": "समीक्षा आवश्यक", + "extractionFailedDescription": "तकनीकी रिपोर्ट को संरचित परिणाम में नहीं बदला जा सका।", + "exploitable": "शोषण-योग्य", + "exploitableTitle": "शोषण-योग्य", + "exploitableDescription": "एप्लिकेशन कोड प्रभावित सुविधा तक पहुँच सकता है।", + "notExploitable": "अप्राप्य", + "notExploitableTitle": "अप्राप्य", + "notExploitableDescription": "इस रिपॉज़िटरी में कोई प्राप्य मार्ग नहीं मिला।", + "unknown": "समीक्षा आवश्यक", + "unknownTitle": "समीक्षा आवश्यक", + "unknownDescription": "विश्लेषण पुष्टि नहीं कर सका कि असुरक्षित सुविधा प्राप्य है या नहीं।", + "safeToDismiss": "खारिज करने के लिए सुरक्षित", + "safeToDismissTitle": "खारिज करने के लिए सुरक्षित", + "safeToDismissDescription": "ट्राइएज ने निर्धारित किया कि कोडबेस विश्लेषण के बिना इसे सुरक्षित रूप से खारिज किया जा सकता है।", + "manualReview": "समीक्षा आवश्यक", + "manualReviewTitle": "मैन्युअल समीक्षा आवश्यक", + "manualReviewDescription": "ट्राइएज ने इस निष्कर्ष को मैन्युअल समीक्षा के लिए चिह्नित किया।", + "analysisRequired": "विश्लेषण आवश्यक", + "analysisRequiredTitle": "कोडबेस विश्लेषण आवश्यक", + "analysisRequiredDescription": "ट्राइएज प्रतिक्रिया तय करने से पहले रिपॉज़िटरी का विश्लेषण करने की अनुशंसा करता है।", + "completed": "विश्लेषण किया गया", + "completedTitle": "विश्लेषण किया गया", + "completedDescription": "विश्लेषण बिना कोई विशिष्ट परिणाम दर्ज किए पूरा हुआ।", + "notAnalyzed": "विश्लेषण नहीं किया गया", + "notAnalyzedTitle": "विश्लेषण नहीं किया गया", + "notAnalyzedDescription": "इस निष्कर्ष के लिए अभी कोडबेस विश्लेषण नहीं चला है।" + }, + "deadline": { + "fixedBeforeDeadline": "समय सीमा से पहले ठीक किया गया", + "fixed": "ठीक किया गया", + "fixedOn": "{{date}} को ठीक किया गया", + "resolutionRecorded": "समाधान दर्ज किया गया", + "superseded": "अधिक्रमित", + "dismissed": "खारिज किया गया", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "समय सीमा निर्धारित नहीं", + "noSlaDeadline": "कोई SLA समय सीमा नहीं", + "dueOn": "{{date}} को देय", + "overdueNow": "विलंबित", + "overdue_one": "{{count}} दिन विलंबित", + "overdue_other": "{{count}} दिन विलंबित", + "dueToday": "आज देय", + "dueTomorrow": "कल देय", + "dueInDays_one": "{{count}} दिन में देय", + "dueInDays_other": "{{count}} दिनों में देय", + "overdue": "{{count}} दिन विलंबित", + "dueInDays": "{{count}} दिनों में देय" + }, + "remediationStatus": { + "cancellationRequested": "रद्द करने का अनुरोध किया गया", + "notStarted": "शुरू नहीं किया गया", + "queued": "कतार में", + "starting": "शुरू हो रहा है", + "inProgress": "जारी है", + "draftPrOpened": "ड्राफ़्ट PR खोला गया", + "prOpened": "PR खोला गया", + "blocked": "अवरुद्ध", + "failed": "विफल", + "noChangesNeeded": "कोई बदलाव आवश्यक नहीं", + "cancelled": "रद्द किया गया", + "originAutomaticPolicy": "स्वचालित नीति", + "originIncludeExistingPolicy": "मौजूदा नीति शामिल करें", + "originManual": "मैन्युअल", + "validationCheck": "वैधता जाँच {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "सुरक्षा निष्कर्ष अब मौजूद नहीं है।", + "approvalRequired": "ऑटो सुधार के लिए अनुमोदन आवश्यक है। इसे स्वीकृत करने के लिए सुधार मैन्युअल रूप से शुरू करें।", + "findingNotOpen": "निष्कर्ष अब खुला नहीं है।", + "repoNotInScope": "रिपॉज़िटरी Security Agent के लिए चयनित नहीं है।", + "analysisRequired": "सुधार शुरू करने से पहले कोडबेस विश्लेषण चलाएँ।", + "sandboxAnalysisRequired": "सुधार शुरू करने से पहले कोडबेस विश्लेषण चलाएँ।", + "staleAnalysis": "विश्लेषण के बाद निष्कर्ष बदल गया। सुधार शुरू करने से पहले विश्लेषण फिर से चलाएँ।", + "notExploitable": "विश्लेषण में कोई प्राप्य असुरक्षित मार्ग नहीं मिला। ऑटो सुधार अनुपलब्ध है।", + "exploitabilityUnknown": "विश्लेषण शोषण-योग्यता की पुष्टि नहीं कर सका। वन-क्लिक सुधार से पहले मैन्युअल समीक्षा आवश्यक है।", + "manualReviewRequired": "विश्लेषण मैन्युअल समीक्षा की अनुशंसा करता है, इसलिए वन-क्लिक सुधार अनुपलब्ध है।", + "monitorRequired": "विश्लेषण PR खोलने के बजाय निगरानी की अनुशंसा करता है।", + "triageOnly": "केवल ट्राइएज पूरा हुआ है। सुधार शुरू करने से पहले कोडबेस विश्लेषण चलाएँ।", + "actionNotConcrete": "कोई ठोस डिपेंडेंसी पैच या सुझाया गया सुधार उपलब्ध नहीं है।", + "remediationActive": "एक सुधार प्रयास पहले से सक्रिय है।", + "prAlreadyOpened": "एक सुधार PR पहले से खुला है।", + "duplicateAnalysisResult": "इस विश्लेषण परिणाम से पहले ही सुधार कार्य उत्पन्न हो चुका है।", + "retryNotAllowed": "इस प्रयास के लिए पुनः प्रयास उपलब्ध नहीं है।", + "securityAgentDisabled": "इस मालिक के लिए Security Agent अक्षम है।", + "autoRemediationDisabled": "ऑटो सुधार अक्षम है। सुरक्षा गेट पार होने पर मैन्युअल सुधार फिर भी शुरू हो सकता है।", + "includeExistingDisabled": "मौजूदा निष्कर्ष स्वचालित सुधार से बाहर रखे गए हैं।", + "belowThreshold": "निष्कर्ष स्वचालित गंभीरता सीमा से नीचे है। सुरक्षा गेट पार होने पर मैन्युअल सुधार फिर भी शुरू हो सकता है।", + "beforeEnablement": "ऑटो सुधार सक्षम होने से पहले विश्लेषण पूरा हुआ। सुरक्षा गेट पार होने पर मैन्युअल सुधार फिर भी शुरू हो सकता है।", + "generic": "इस निष्कर्ष के लिए सुधार अनुपलब्ध है।" } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "समीक्षा सबमिट करें", "partialPostedMessage": "{{displayFreshCount}} टिप्पणी पोस्ट की गईं। {{displayStaleCount}} टिप्पणी पुराने कमिट की ओर इशारा करती हैं और आपकी कतार में रहीं।", "submitCountOfTotal": "{{displayTotalCount}} में से {{displayFreshCount}} टिप्पणियाँ सबमिट करें", - "submitReview": "समीक्षा सबमिट करें" + "submitReview": "समीक्षा सबमिट करें", + "blockedRequestChanges": "परिवर्तन अनुरोध करने के लिए सारांश या कम से कम एक टिप्पणी जोड़ें।", + "blockedComment": "टिप्पणी समीक्षा पोस्ट करने के लिए सारांश या कम से कम एक टिप्पणी जोड़ें।" }, "fileStatus": { "added": "जोड़ा गया", diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index d321832338..393e34aaf6 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -517,7 +517,9 @@ "submitCountOfTotal": "Pošalji {{displayFreshCount}} od {{displayTotalCount}} komentara", "submitReview": "Pošalji recenziju", "partialPostedMessage": "Poslano {{displayFreshCount}} komentar(a). {{displayStaleCount}} komentar(a) odnose se na stariji commit i ostalo je u vašem redu.", - "pendingComment_few": "čekajuća komentara" + "pendingComment_few": "čekajuća komentara", + "blockedRequestChanges": "Dodajte sažetak ili barem jedan komentar da biste zatražili izmjene.", + "blockedComment": "Dodajte sažetak ili barem jedan komentar da biste objavili recenziju s komentarom." }, "reconnectNotice": { "title": "GitHub veza je istekla", @@ -1385,7 +1387,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Nije moguće ažurirati preglednika kôda", - "configSaveFailed": "Nije moguće spremiti konfiguraciju recenzije" + "configSaveFailed": "Nije moguće spremiti konfiguraciju recenzije", + "status": { + "pending": "Na čekanju", + "queued": "U redu čekanja", + "running": "U tijeku", + "completed": "Dovršeno", + "failed": "Nije uspjelo", + "cancelled": "Otkazano", + "interrupted": "Prekinuto" + } }, "securityAgent": { "filter": { @@ -1587,7 +1598,17 @@ "sourceRecord": "Izvorni zapis", "source": "Izvor", "sourceId": "ID izvora", - "viewAdvisory": "Pogledaj obavijest na GitHubu" + "viewAdvisory": "Pogledaj obavijest na GitHubu", + "statusSuperseded": "Zamijenjeno", + "statusFixed": "Popravljeno", + "statusOpen": "Otvoreno", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "rješenje je već započelo", + "reasonNoBandwidth": "nema dostupnog kapaciteta", + "reasonTolerableRisk": "rizik je prihvatljiv", + "reasonInaccurate": "nalaz je netočan", + "reasonNotUsed": "ranjivi kôd se ne koristi", + "reasonAfterReview": "nakon pregleda" }, "settingsOverview": { "title": "Postavke", @@ -1816,6 +1837,109 @@ "syncInProgress": "Sigurnosna sinkronizacija već je u tijeku. Pokušajte ponovno.", "dismissalInProgress": "Ovo odbacivanje već je u tijeku. Pokušajte ponovno.", "couldNotReadPendingSyncs": "Nije moguće pročitati čekajuće sinkronizacije. Pokušajte ponovno." + }, + "analysisState": { + "queued": "Analiza u redu čekanja", + "queuedTitle": "Analiza u redu čekanja", + "queuedDescription": "Čeka se da kapacitet analize postane dostupan.", + "analyzing": "Analiza u tijeku", + "analyzingTitle": "Analiza u tijeku", + "analyzingDescription": "Provjerava se može li kod aplikacije dosegnuti zahvaćenu značajku.", + "failed": "Analiza nije uspjela", + "failedTitle": "Analiza nije uspjela", + "failedDescription": "Security Agent nije mogao dovršiti analizu.", + "extractionFailed": "Zahtijeva pregled", + "extractionFailedTitle": "Zahtijeva pregled", + "extractionFailedDescription": "Tehničko izvješće nije moglo biti pretvoreno u strukturirani rezultat.", + "exploitable": "Iskoristivo", + "exploitableTitle": "Iskoristivo", + "exploitableDescription": "Kod aplikacije može dosegnuti zahvaćenu značajku.", + "notExploitable": "Nedostižno", + "notExploitableTitle": "Nedostižno", + "notExploitableDescription": "U ovom repozitoriju nije pronađen dostupan put.", + "unknown": "Zahtijeva pregled", + "unknownTitle": "Zahtijeva pregled", + "unknownDescription": "Analiza nije mogla potvrditi je li ranjiva značajka dostupna.", + "safeToDismiss": "Sigurno za odbacivanje", + "safeToDismissTitle": "Sigurno za odbacivanje", + "safeToDismissDescription": "Trijaža je utvrdila da se ovo može sigurno odbaciti bez analize kodne baze.", + "manualReview": "Zahtijeva pregled", + "manualReviewTitle": "Zahtijeva ručni pregled", + "manualReviewDescription": "Trijaža je ovaj nalaz označila za ručni pregled.", + "analysisRequired": "Potrebna analiza", + "analysisRequiredTitle": "Potrebna analiza kodne baze", + "analysisRequiredDescription": "Trijaža preporučuje analizu repozitorija prije odluke o odgovoru.", + "completed": "Analizirano", + "completedTitle": "Analizirano", + "completedDescription": "Analiza je dovršena bez zabilježenog posebnog ishoda.", + "notAnalyzed": "Nije analizirano", + "notAnalyzedTitle": "Nije analizirano", + "notAnalyzedDescription": "Analiza kodne baze još nije pokrenuta za ovaj nalaz." + }, + "deadline": { + "fixedBeforeDeadline": "Popravljeno prije roka", + "fixed": "Popravljeno", + "fixedOn": "Popravljeno {{date}}", + "resolutionRecorded": "Zabilježeno rješenje", + "superseded": "Zamijenjeno", + "dismissed": "Odbijeno", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Rok nije postavljen", + "noSlaDeadline": "Nema SLA roka", + "dueOn": "Dospijeva {{date}}", + "overdueNow": "Prekoračeno", + "overdue_one": "{{count}} dan prekoračenja roka", + "overdue_few": "{{count}} dana prekoračenja roka", + "overdue_other": "{{count}} dana prekoračenja roka", + "dueToday": "Dospijeva danas", + "dueTomorrow": "Dospijeva sutra", + "dueInDays_one": "Dospijeva za {{count}} dan", + "dueInDays_few": "Dospijeva za {{count}} dana", + "dueInDays_other": "Dospijeva za {{count}} dana", + "overdue": "{{count}} dana prekoračenja roka", + "dueInDays": "Dospijeva za {{count}} dana" + }, + "remediationStatus": { + "cancellationRequested": "Zatraženo otkazivanje", + "notStarted": "Nije započeto", + "queued": "U redu čekanja", + "starting": "Pokreće se", + "inProgress": "U tijeku", + "draftPrOpened": "Otvoren nacrt PR-a", + "prOpened": "PR otvoren", + "blocked": "Blokirano", + "failed": "Nije uspjelo", + "noChangesNeeded": "Nisu potrebne izmjene", + "cancelled": "Otkazano", + "originAutomaticPolicy": "Automatska politika", + "originIncludeExistingPolicy": "Uključi postojeću politiku", + "originManual": "Ručno", + "validationCheck": "Provjera validacije {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Sigurnosni nalaz više ne postoji.", + "approvalRequired": "Automatska sanacija zahtijeva odobrenje. Započnite sanaciju ručno da biste je odobrili.", + "findingNotOpen": "Nalaz više nije otvoren.", + "repoNotInScope": "Repozitorij nije odabran za Security Agent.", + "analysisRequired": "Pokrenite analizu kodne baze prije početka sanacije.", + "sandboxAnalysisRequired": "Pokrenite analizu kodne baze prije početka sanacije.", + "staleAnalysis": "Nalaz se promijenio nakon analize. Ponovno pokrenite analizu prije početka sanacije.", + "notExploitable": "Analiza nije pronašla dostupan ranjivi put. Automatska sanacija nije dostupna.", + "exploitabilityUnknown": "Analiza nije mogla potvrditi iskoristivost. Potreban je ručni pregled prije sanacije jednim klikom.", + "manualReviewRequired": "Analiza preporučuje ručni pregled, pa sanacija jednim klikom nije dostupna.", + "monitorRequired": "Analiza preporučuje praćenje umjesto otvaranja PR-a.", + "triageOnly": "Dovršena je samo trijaža. Pokrenite analizu kodne baze prije početka sanacije.", + "actionNotConcrete": "Nema dostupne konkretne zakrpe ovisnosti ni predloženog rješenja.", + "remediationActive": "Pokušaj sanacije je već aktivan.", + "prAlreadyOpened": "PR za sanaciju je već otvoren.", + "duplicateAnalysisResult": "Ovaj rezultat analize već je stvorio sanacijski rad.", + "retryNotAllowed": "Ponovni pokušaj nije dostupan za ovaj pokušaj.", + "securityAgentDisabled": "Security Agent je onemogućen za ovog vlasnika.", + "autoRemediationDisabled": "Automatska sanacija je onemogućena. Ručna sanacija se i dalje može pokrenuti kada sigurnosne provjere prođu.", + "includeExistingDisabled": "Postojeći nalazi isključeni su iz automatske sanacije.", + "belowThreshold": "Nalaz je ispod automatskog praga ozbiljnosti. Ručna sanacija se i dalje može pokrenuti kada sigurnosne provjere prođu.", + "beforeEnablement": "Analiza je dovršena prije omogućavanja automatske sanacije. Ručna sanacija se i dalje može pokrenuti kada sigurnosne provjere prođu.", + "generic": "Sanacija nije dostupna za ovaj nalaz." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index c047596356..05a662aff6 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -512,7 +512,9 @@ "pendingComment_other": "kòmantè an patant", "submitCountOfTotal": "Soumèt {{displayFreshCount}} sou {{displayTotalCount}} kòmantè", "submitReview": "Soumèt revizyon", - "partialPostedMessage": "Pòste {{displayFreshCount}} kòmantè. {{displayStaleCount}} kòmantè deziyen yon komit pi ansyen e rete nan fil ou." + "partialPostedMessage": "Pòste {{displayFreshCount}} kòmantè. {{displayStaleCount}} kòmantè deziyen yon komit pi ansyen e rete nan fil ou.", + "blockedRequestChanges": "Ajoute yon rezime oswa omwen yon kòmantè pou mande chanjman.", + "blockedComment": "Ajoute yon rezime oswa omwen yon kòmantè pou pibliye yon revizyon kòmantè." }, "reconnectNotice": { "title": "Koneksyon GitHub ekspire", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Revizè Kòd", "updateFailed": "Echwe pou mete ajou revizè a", - "configSaveFailed": "Echwe pou anrejistre konfigirasyon revizyon" + "configSaveFailed": "Echwe pou anrejistre konfigirasyon revizyon", + "status": { + "pending": "An patant", + "queued": "An pwosesis", + "running": "Ap kouri", + "completed": "Konplete", + "failed": "Echwe", + "cancelled": "Anile", + "interrupted": "Entèwonp" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Dosye sous", "source": "Sous", "sourceId": "ID sous", - "viewAdvisory": "Gade avi sou GitHub" + "viewAdvisory": "Gade avi sou GitHub", + "statusSuperseded": "Ranplase", + "statusFixed": "Korije", + "statusOpen": "Louvri", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "yon koreksyon te deja kòmanse", + "reasonNoBandwidth": "pa gen kapasite disponib", + "reasonTolerableRisk": "ris la akseptab", + "reasonInaccurate": "rezilta a pa egzak", + "reasonNotUsed": "kod vilnerab la pa itilize", + "reasonAfterReview": "apre revizyon" }, "settingsOverview": { "title": "Anviwònman", @@ -1805,6 +1826,107 @@ "syncInProgress": "Yon senkronizasyon sekirite deja an pwosesis. Tanpri eseye ankò.", "dismissalInProgress": "Rejè sa a deja an pwosesis. Tanpri eseye ankò.", "couldNotReadPendingSyncs": "Pa t ka li senkronizasyon annatant. Eseye ankò." + }, + "analysisState": { + "queued": "Analiz an pwosesis", + "queuedTitle": "Analiz an pwosesis", + "queuedDescription": "Ap tann kapasite analiz la vin disponib.", + "analyzing": "Ap analize", + "analyzingTitle": "Ap analize", + "analyzingDescription": "Ap tcheke si kòd aplikasyon an ka rive jwenn fonksyonalite ki afekte a.", + "failed": "Analiz echwe", + "failedTitle": "Analiz echwe", + "failedDescription": "Security Agent pa t ka fini analiz la.", + "extractionFailed": "Bezwen revizyon", + "extractionFailedTitle": "Bezwen revizyon", + "extractionFailedDescription": "Rapò teknik la pa t ka vin yon rezilta estriktire.", + "exploitable": "Eksplwatab", + "exploitableTitle": "Eksplwatab", + "exploitableDescription": "Kòd aplikasyon an ka rive jwenn fonksyonalite ki afekte a.", + "notExploitable": "Pa aksesib", + "notExploitableTitle": "Pa aksesib", + "notExploitableDescription": "Pa jwenn okenn chemen aksesib nan repo sa a.", + "unknown": "Bezwen revizyon", + "unknownTitle": "Bezwen revizyon", + "unknownDescription": "Analiz pa t ka konfime si fonksyonalite vilnerab la aksesib.", + "safeToDismiss": "San danje pou rejte", + "safeToDismissTitle": "San danje pou rejte", + "safeToDismissDescription": "Triyaj detèmine sa ka rejte san danje san analiz kod.", + "manualReview": "Bezwen revizyon", + "manualReviewTitle": "Bezwen revizyon manyèl", + "manualReviewDescription": "Triyaj make rezilta sa a pou revizyon manyèl.", + "analysisRequired": "Analiz nesesè", + "analysisRequiredTitle": "Analiz kod nesesè", + "analysisRequiredDescription": "Triyaj rekòmande analize repo a anvan ou deside yon repons.", + "completed": "Analize", + "completedTitle": "Analize", + "completedDescription": "Analiz fini san okenn rezilta espesifik anrejistre.", + "notAnalyzed": "Pa analize", + "notAnalyzedTitle": "Pa analize", + "notAnalyzedDescription": "Analiz kod la poko kouri pou rezilta sa a." + }, + "deadline": { + "fixedBeforeDeadline": "Korije anvan dat limit", + "fixed": "Korije", + "fixedOn": "Korije {{date}}", + "resolutionRecorded": "Rezolisyon anrejistre", + "superseded": "Ranplase", + "dismissed": "Rejte", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Dat limit pa fikse", + "noSlaDeadline": "Pa gen dat limit SLA", + "dueOn": "Pou {{date}}", + "overdueNow": "An reta", + "overdue_one": "{{count}} jou an reta", + "overdue_other": "{{count}} jou an reta", + "dueToday": "Pou jodi a", + "dueTomorrow": "Pou demen", + "dueInDays_one": "Pou nan {{count}} jou", + "dueInDays_other": "Pou nan {{count}} jou", + "overdue": "{{count}} jou an reta", + "dueInDays": "Pou nan {{count}} jou" + }, + "remediationStatus": { + "cancellationRequested": "Anilasyon mande", + "notStarted": "Pa kòmanse", + "queued": "An pwosesis", + "starting": "Ap kòmanse", + "inProgress": "An pwosesis", + "draftPrOpened": "PR bouyon ouvè", + "prOpened": "PR louvri", + "blocked": "Bloke", + "failed": "Echwe", + "noChangesNeeded": "Pa gen chanjman ki nesesè", + "cancelled": "Anile", + "originAutomaticPolicy": "Politik otomatik", + "originIncludeExistingPolicy": "Politik ki enkli sa ki egziste yo", + "originManual": "Manyèl", + "validationCheck": "Tchèk validasyon {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Rezilta sekirite pa egziste ankò.", + "approvalRequired": "Koreksyon otomatik mande apwobasyon. Kòmanse remedysyon manyèlman pou apwouve li.", + "findingNotOpen": "Rezilta a pa louvri ankò.", + "repoNotInScope": "Repo a pa seleksyone pou Security Agent.", + "analysisRequired": "Kouri analiz kod anvan ou kòmanse remedysyon.", + "sandboxAnalysisRequired": "Kouri analiz kod anvan ou kòmanse remedysyon.", + "staleAnalysis": "Rezilta a chanje apre analiz la. Re-kouri analiz anvan ou kòmanse remedysyon.", + "notExploitable": "Analiz pa jwenn okenn chemen vilnerab ki aksesib. Koreksyon otomatik pa disponib.", + "exploitabilityUnknown": "Analiz pa t ka konfime eksplwatabilite. Revizyon manyèl nesesè anvan remedysyon yon sèl klik.", + "manualReviewRequired": "Analiz rekòmande revizyon manyèl, kidonk remedysyon yon sèl klik pa disponib.", + "monitorRequired": "Analiz rekòmande siveyans olye pou louvri yon PR.", + "triageOnly": "Se triyaj ki fini. Kouri analiz kod anvan ou kòmanse remedysyon.", + "actionNotConcrete": "Pa gen patch depandans konkrè oswa koreksyon sijere disponib.", + "remediationActive": "Yon tantativ remedysyon deja aktif.", + "prAlreadyOpened": "Yon PR remedysyon deja ouvè.", + "duplicateAnalysisResult": "Rezilta analiz sa a deja pwodui travay remedysyon.", + "retryNotAllowed": "Retantativ pa disponib pou tantativ sa a.", + "securityAgentDisabled": "Security Agent dezaktive pou pwopriyetè sa a.", + "autoRemediationDisabled": "Koreksyon otomatik dezaktive. Remedysyon manyèl ka toujou kòmanse lè pòt sekirite yo pase.", + "includeExistingDisabled": "Rezilta ki egziste yo ekskli de koreksyon otomatik.", + "belowThreshold": "Rezilta a anba seuy gravite otomatik. Remedysyon manyèl ka toujou kòmanse lè pòt sekirite yo pase.", + "beforeEnablement": "Analiz fini anvan yo aktive koreksyon otomatik. Remedysyon manyèl ka toujou kòmanse lè pòt sekirite yo pase.", + "generic": "Remedysyon pa disponib pou rezilta sa a." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index e3c595812c..55dec5ce03 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -512,7 +512,9 @@ "pendingComment_other": "függőben lévő megjegyzés", "submitCountOfTotal": "{{displayFreshCount}} / {{displayTotalCount}} megjegyzés elküldése", "submitReview": "Ellenőrzés elküldése", - "partialPostedMessage": "{{displayFreshCount}} megjegyzés elküldve. {{displayStaleCount}} megjegyzés régebbi commithoz kapcsolódik, és a sorban maradt." + "partialPostedMessage": "{{displayFreshCount}} megjegyzés elküldve. {{displayStaleCount}} megjegyzés régebbi commithoz kapcsolódik, és a sorban maradt.", + "blockedRequestChanges": "Adjon összefoglalót vagy legalább egy megjegyzést a módosítások kéréséhez.", + "blockedComment": "Adjon összefoglalót vagy legalább egy megjegyzést az ellenőrzés megjegyzésként való elküldéséhez." }, "reconnectNotice": { "title": "A GitHub-kapcsolat lejárt", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Kód-ellenőrző", "updateFailed": "Nem sikerült frissíteni az ellenőrzőt", - "configSaveFailed": "Nem sikerült menteni az ellenőrzési beállításokat" + "configSaveFailed": "Nem sikerült menteni az ellenőrzési beállításokat", + "status": { + "pending": "Függőben", + "queued": "Sorban", + "running": "Folyamatban", + "completed": "Befejezve", + "failed": "Sikertelen", + "cancelled": "Lemondva", + "interrupted": "Megszakítva" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Forrásrekord", "source": "Forrás", "sourceId": "Forrásazonosító", - "viewAdvisory": "Tájékoztató megtekintése a GitHubon" + "viewAdvisory": "Tájékoztató megtekintése a GitHubon", + "statusSuperseded": "Felváltva", + "statusFixed": "Javítva", + "statusOpen": "Nyitva", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "már elindult egy javítás", + "reasonNoBandwidth": "nincs rendelkezésre álló kapacitás", + "reasonTolerableRisk": "a kockázat elfogadható", + "reasonInaccurate": "az észlelés pontatlan", + "reasonNotUsed": "a sebezhető kód nincs használatban", + "reasonAfterReview": "áttekintés után" }, "settingsOverview": { "title": "Beállítások", @@ -1805,6 +1826,107 @@ "syncInProgress": "Egy biztonsági szinkronizálás már folyamatban van. Kérjük, próbálja újra.", "dismissalInProgress": "Ez az elutasítás már folyamatban van. Kérjük, próbálja újra.", "couldNotReadPendingSyncs": "Nem sikerült beolvasni a függőben lévő szinkronizálásokat. Próbálja újra." + }, + "analysisState": { + "queued": "Elemzés sorban", + "queuedTitle": "Elemzés sorban", + "queuedDescription": "Várakozás az elemzési kapacitás felszabadulására.", + "analyzing": "Elemzés folyamatban", + "analyzingTitle": "Elemzés folyamatban", + "analyzingDescription": "Annak ellenőrzése, hogy az alkalmazáskód eléri-e az érintett funkciót.", + "failed": "Az elemzés sikertelen", + "failedTitle": "Az elemzés sikertelen", + "failedDescription": "A Security Agent nem tudta befejezni az elemzést.", + "extractionFailed": "Felülvizsgálatot igényel", + "extractionFailedTitle": "Felülvizsgálatot igényel", + "extractionFailedDescription": "A technikai jelentés nem alakítható át strukturált eredménnyé.", + "exploitable": "Kihasználható", + "exploitableTitle": "Kihasználható", + "exploitableDescription": "Az alkalmazáskód eléri az érintett funkciót.", + "notExploitable": "Elérhetetlen", + "notExploitableTitle": "Elérhetetlen", + "notExploitableDescription": "Ebben az adattárban nem található elérhető út.", + "unknown": "Felülvizsgálatot igényel", + "unknownTitle": "Felülvizsgálatot igényel", + "unknownDescription": "Az elemzés nem tudta megerősíteni, hogy a sebezhető funkció elérhető-e.", + "safeToDismiss": "Biztonságosan elvethető", + "safeToDismissTitle": "Biztonságosan elvethető", + "safeToDismissDescription": "A triage megállapította, hogy ez elemzés nélkül biztonságosan elvethető.", + "manualReview": "Felülvizsgálatot igényel", + "manualReviewTitle": "Kézi felülvizsgálatot igényel", + "manualReviewDescription": "A triage kézi felülvizsgálatra jelölte ezt az észlelést.", + "analysisRequired": "Elemzés szükséges", + "analysisRequiredTitle": "Kódbázis-elemzés szükséges", + "analysisRequiredDescription": "A triage az adattár elemzését javasolja a válasz eldöntése előtt.", + "completed": "Elemezve", + "completedTitle": "Elemezve", + "completedDescription": "Az elemzés befejeződött, de nem rögzített konkrét eredményt.", + "notAnalyzed": "Nem elemezve", + "notAnalyzedTitle": "Nem elemezve", + "notAnalyzedDescription": "Ehhez az észleléshez még nem futott le a kódbázis-elemzés." + }, + "deadline": { + "fixedBeforeDeadline": "Határidő előtt javítva", + "fixed": "Javítva", + "fixedOn": "Javítva: {{date}}", + "resolutionRecorded": "Megoldás rögzítve", + "superseded": "Felváltva", + "dismissed": "Elutasítva", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Nincs határidő beállítva", + "noSlaDeadline": "Nincs SLA határidő", + "dueOn": "Esedékes: {{date}}", + "overdueNow": "Lejárt", + "overdue_one": "{{count}} nap késésben", + "overdue_other": "{{count}} nap késésben", + "dueToday": "Ma esedékes", + "dueTomorrow": "Holnap esedékes", + "dueInDays_one": "Esedékes {{count}} nap múlva", + "dueInDays_other": "Esedékes {{count}} nap múlva", + "overdue": "{{count}} nap késésben", + "dueInDays": "Esedékes {{count}} nap múlva" + }, + "remediationStatus": { + "cancellationRequested": "Lemondás kérve", + "notStarted": "Nincs elkezdve", + "queued": "Sorban", + "starting": "Indítás", + "inProgress": "Folyamatban", + "draftPrOpened": "Piszkozat PR megnyitva", + "prOpened": "PR megnyitva", + "blocked": "Blokkolva", + "failed": "Sikertelen", + "noChangesNeeded": "Nincs szükség módosításokra", + "cancelled": "Lemondva", + "originAutomaticPolicy": "Automatikus szabályzat", + "originIncludeExistingPolicy": "Meglévő szabályzat bevonása", + "originManual": "Kézi", + "validationCheck": "Validációs ellenőrzés {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "A biztonsági észlelés már nem létezik.", + "approvalRequired": "Az automatikus hibajavítás jóváhagyást igényel. Indítsa el a kijavítást manuálisan a jóváhagyáshoz.", + "findingNotOpen": "Az észlelés már nincs nyitva.", + "repoNotInScope": "Az adattár nincs kiválasztva a Security Agent számára.", + "analysisRequired": "A kijavítás megkezdése előtt futtassa a kódbázis-elemzést.", + "sandboxAnalysisRequired": "A kijavítás megkezdése előtt futtassa a kódbázis-elemzést.", + "staleAnalysis": "Az észlelés az elemzés után megváltozott. A kijavítás megkezdése előtt futtassa újra az elemzést.", + "notExploitable": "Az elemzés nem talált elérhető sebezhető utat. Az automatikus hibajavítás nem érhető el.", + "exploitabilityUnknown": "Az elemzés nem tudta megerősíteni a kihasználhatóságot. Az egykattintásos kijavítás előtt kézi felülvizsgálat szükséges.", + "manualReviewRequired": "Az elemzés kézi felülvizsgálatot javasol, ezért az egykattintásos kijavítás nem érhető el.", + "monitorRequired": "Az elemzés PR megnyitása helyett megfigyelést javasol.", + "triageOnly": "Csak a triage készült el. A kijavítás megkezdése előtt futtassa a kódbázis-elemzést.", + "actionNotConcrete": "Nincs elérhető konkrét függőségi javítás vagy javasolt hibajavítás.", + "remediationActive": "Egy kijavítási kísérlet már aktív.", + "prAlreadyOpened": "Egy kijavítási PR már nyitva van.", + "duplicateAnalysisResult": "Ez az elemzési eredmény már kijavítási munkát eredményezett.", + "retryNotAllowed": "Ehhez a kísérlethez nincs elérhető újrapróbálkozás.", + "securityAgentDisabled": "A Security Agent le van tiltva ehhez a tulajdonoshoz.", + "autoRemediationDisabled": "Az automatikus hibajavítás le van tiltva. A kézi kijavítás akkor is elindítható, ha a biztonsági átjárók teljesülnek.", + "includeExistingDisabled": "A meglévő észlelések ki vannak zárva az automatikus kijavításból.", + "belowThreshold": "Az észlelés az automatikus súlyossági küszöb alatt van. A kézi kijavítás akkor is elindítható, ha a biztonsági átjárók teljesülnek.", + "beforeEnablement": "Az elemzés az automatikus hibajavítás engedélyezése előtt készült el. A kézi kijavítás akkor is elindítható, ha a biztonsági átjárók teljesülnek.", + "generic": "Ehhez az észleléshez nem érhető el kijavítás." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index ab852cb05a..5e14519902 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -512,7 +512,9 @@ "pendingComment_other": "սպասվող մեկնաբանություններ", "submitCountOfTotal": "Ուղարկել {{displayFreshCount}}-ը {{displayTotalCount}} մեկնաբանություններից", "submitReview": "Ուղարկել վերանայումը", - "partialPostedMessage": "Տեղադրված է {{displayFreshCount}} մեկնաբանություն: {{displayStaleCount}} մեկնաբանություն վերաբերում է ավելի հին commit-ին և մնացել է ձեր հերթում:" + "partialPostedMessage": "Տեղադրված է {{displayFreshCount}} մեկնաբանություն: {{displayStaleCount}} մեկնաբանություն վերաբերում է ավելի հին commit-ին և մնացել է ձեր հերթում:", + "blockedRequestChanges": "Ավելացրեք ամփոփում կամ առնվազն մեկ մեկնաբանություն՝ փոփոխություններ պահանջելու համար:", + "blockedComment": "Ավելացրեք ամփոփում կամ առնվազն մեկ մեկնաբանություն՝ մեկնաբանությամբ վերանայում տեղադրելու համար:" }, "reconnectNotice": { "title": "GitHub կապը ժամկետանց է", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Կոդի ստուգիչ", "updateFailed": "Չհաջողվեց թարմացնել գրախոսին", - "configSaveFailed": "Չհաջողվեց պահպանել վերանայման կարգավորումները" + "configSaveFailed": "Չհաջողվեց պահպանել վերանայման կարգավորումները", + "status": { + "pending": "Սպասում է", + "queued": "Հերթագրված", + "running": "Ընթացքի մեջ է", + "completed": "Ավարտված", + "failed": "Ձախողված", + "cancelled": "Չեղարկված", + "interrupted": "Ընդհատված" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Աղբյուրի գրառում", "source": "Աղբյուր", "sourceId": "Աղբյուրի ID", - "viewAdvisory": "Դիտել խորհրդատվությունը GitHub-ում" + "viewAdvisory": "Դիտել խորհրդատվությունը GitHub-ում", + "statusSuperseded": "Փոխարինված", + "statusFixed": "Ուղղված", + "statusOpen": "Բաց", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ուղղումն արդեն սկսվել է", + "reasonNoBandwidth": "հասանելի հզորություն չկա", + "reasonTolerableRisk": "ռիսկն ընդունելի է", + "reasonInaccurate": "գտածոն անճշտ է", + "reasonNotUsed": "խոցելի կոդը չի օգտագործվում", + "reasonAfterReview": "ստուգումից հետո" }, "settingsOverview": { "title": "Կարգավորումներ", @@ -1805,6 +1826,107 @@ "syncInProgress": "Անվտանգության համաժամացումն արդեն ընթացքի մեջ է: Խնդրում ենք կրկին փորձել:", "dismissalInProgress": "Այս մերժումն արդեն ընթացքի մեջ է: Խնդրում ենք կրկին փորձել:", "couldNotReadPendingSyncs": "Չհաջողվեց կարդալ սպասվող համաժամացումները: Կրկին փորձեք:" + }, + "analysisState": { + "queued": "Վերլուծությունը հերթագրված է", + "queuedTitle": "Վերլուծությունը հերթագրված է", + "queuedDescription": "Սպասում է վերլուծության հզորության հասանելիությանը։", + "analyzing": "Վերլուծվում է", + "analyzingTitle": "Վերլուծվում է", + "analyzingDescription": "Ստուգվում է՝ արդյոք հավելվածի կոդը կարող է հասնել տուժած ֆունկցիային։", + "failed": "Վերլուծությունը ձախողվեց", + "failedTitle": "Վերլուծությունը ձախողվեց", + "failedDescription": "Անվտանգության գործակալը չկարողացավ ավարտել վերլուծությունը։", + "extractionFailed": "Ստուգման կարիք ունի", + "extractionFailedTitle": "Ստուգման կարիք ունի", + "extractionFailedDescription": "Տեխնիկական հաշվետվությունը չկարողացավ վերածվել կառուցվածքային արդյունքի։", + "exploitable": "Շահագործելի", + "exploitableTitle": "Շահագործելի", + "exploitableDescription": "Հավելվածի կոդը կարող է հասնել տուժած ֆունկցիային։", + "notExploitable": "Անհասանելի", + "notExploitableTitle": "Անհասանելի", + "notExploitableDescription": "Այս պահոցում հասանելի ուղի չի գտնվել։", + "unknown": "Ստուգման կարիք ունի", + "unknownTitle": "Ստուգման կարիք ունի", + "unknownDescription": "Վերլուծությունը չկարողացավ հաստատել՝ արդյոք խոցելի ֆունկցիան հասանելի է։", + "safeToDismiss": "Անվտանգ է մերժել", + "safeToDismissTitle": "Անվտանգ է մերժել", + "safeToDismissDescription": "Դասակարգումը որոշել է, որ սա կարող է ապահով մերժվել առանց կոդի բազայի վերլուծության։", + "manualReview": "Ստուգման կարիք ունի", + "manualReviewTitle": "Ձեռքով ստուգման կարիք ունի", + "manualReviewDescription": "Դասակարգումը սա նշել է ձեռքով ստուգման համար։", + "analysisRequired": "Վերլուծություն է պահանջվում", + "analysisRequiredTitle": "Կոդի բազայի վերլուծություն է պահանջվում", + "analysisRequiredDescription": "Դասակարգումը խորհուրդ է տալիս վերլուծել պահոցը՝ պատասխան որոշելուց առաջ։", + "completed": "Վերլուծված", + "completedTitle": "Վերլուծված", + "completedDescription": "Վերլուծությունն ավարտվել է առանց կոնկրետ արդյունքի գրանցման։", + "notAnalyzed": "Չվերլուծված", + "notAnalyzedTitle": "Չվերլուծված", + "notAnalyzedDescription": "Այս գտածոյի համար կոդի բազայի վերլուծությունը դեռ չի գործարկվել։" + }, + "deadline": { + "fixedBeforeDeadline": "Ուղղվել է ժամկետից առաջ", + "fixed": "Ուղղված", + "fixedOn": "Ուղղված է {{date}}", + "resolutionRecorded": "Լուծումը գրանցված է", + "superseded": "Փոխարինված", + "dismissed": "Մերժված", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Ժամկետ նշված չէ", + "noSlaDeadline": "SLA ժամկետ չկա", + "dueOn": "Վերջնաժամկետը՝ {{date}}", + "overdueNow": "Ուշացած", + "overdue_one": "{{count}} օր ուշացած", + "overdue_other": "{{count}} օր ուշացած", + "dueToday": "Վերջնաժամկետն այսօր է", + "dueTomorrow": "Վերջնաժամկետը վաղն է", + "dueInDays_one": "Վերջնաժամկետը՝ {{count}} օրից", + "dueInDays_other": "Վերջնաժամկետը՝ {{count}} օրից", + "overdue": "{{count}} օր ուշացած", + "dueInDays": "Վերջնաժամկետը՝ {{count}} օրից" + }, + "remediationStatus": { + "cancellationRequested": "Չեղարկումը հարցված է", + "notStarted": "Չի սկսվել", + "queued": "Հերթագրված", + "starting": "Սկսվում է", + "inProgress": "Ընթացքի մեջ է", + "draftPrOpened": "Սևագիր PR բաց է", + "prOpened": "PR բաց է", + "blocked": "Արգելափակված", + "failed": "Ձախողված", + "noChangesNeeded": "Փոփոխություններ անհրաժեշտ չեն", + "cancelled": "Չեղարկված", + "originAutomaticPolicy": "Ավտոմատ քաղաքականություն", + "originIncludeExistingPolicy": "Ներառել գոյություն ունեցող քաղաքականությունը", + "originManual": "Ձեռքով", + "validationCheck": "Վավերացման ստուգում {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Անվտանգության գտածոն այլևս գոյություն չունի։", + "approvalRequired": "Ավտոմատ շտկումը հաստատում է պահանջում։ Շտկումը ձեռքով սկսեք՝ այն հաստատելու համար։", + "findingNotOpen": "Գտածոն այլևս բաց չէ։", + "repoNotInScope": "Պահոցը ընտրված չէ Անվտանգության գործակալի համար։", + "analysisRequired": "Շտկումը սկսելուց առաջ գործարկեք կոդի բազայի վերլուծությունը։", + "sandboxAnalysisRequired": "Շտկումը սկսելուց առաջ գործարկեք կոդի բազայի վերլուծությունը։", + "staleAnalysis": "Գտածոն փոխվել է վերլուծությունից հետո։ Շտկումը սկսելուց առաջ նորից գործարկեք վերլուծությունը։", + "notExploitable": "Վերլուծությունը չի գտել հասանելի խոցելի ուղի։ Ավտոմատ շտկումը հասանելի չէ։", + "exploitabilityUnknown": "Վերլուծությունը չկարողացավ հաստատել շահագործելիությունը։ Մեկ սեղմումով շտկումից առաջ անհրաժեշտ է ձեռքով ստուգում։", + "manualReviewRequired": "Վերլուծությունը խորհուրդ է տալիս ձեռքով ստուգում, ուստի մեկ սեղմումով շտկումը հասանելի չէ։", + "monitorRequired": "Վերլուծությունը խորհուրդ է տալիս հետևել PR բացելու փոխարեն։", + "triageOnly": "Ավարտվել է միայն դասակարգումը։ Շտկումը սկսելուց առաջ գործարկեք կոդի բազայի վերլուծությունը։", + "actionNotConcrete": "Հասանելի կոնկրետ կախվածության ուղղում կամ առաջարկվող ուղղում չկա։", + "remediationActive": "Շտկման փորձն արդեն ակտիվ է։", + "prAlreadyOpened": "Շտկման PR-ն արդեն բաց է։", + "duplicateAnalysisResult": "Այս վերլուծության արդյունքն արդեն շտկման աշխատանք է ստեղծել։", + "retryNotAllowed": "Այս փորձի համար կրկնափորձ հասանելի չէ։", + "securityAgentDisabled": "Անվտանգության գործակալն անջատված է այս սեփականատիրոջ համար։", + "autoRemediationDisabled": "Ավտոմատ շտկումն անջատված է։ Ձեռքով շտկումը դեռ կարող է սկսվել, երբ անվտանգության դարպասներն անցնեն։", + "includeExistingDisabled": "Գոյություն ունեցող գտածոները բացառված են ավտոմատ շտկումից։", + "belowThreshold": "Գտածոն ավտոմատ խստության շեմից ցածր է։ Ձեռքով շտկումը դեռ կարող է սկսվել, երբ անվտանգության դարպասներն անցնեն։", + "beforeEnablement": "Վերլուծությունն ավարտվել է մինչև ավտոմատ շտկման միացումը։ Ձեռքով շտկումը դեռ կարող է սկսվել, երբ անվտանգության դարպասներն անցնեն։", + "generic": "Այս գտածոյի համար շտկումը հասանելի չէ։" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index 867210dbfc..b98b6de7ae 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -939,7 +939,16 @@ "set": "Atur" }, "updateFailed": "Gagal memperbarui peninjau", - "configSaveFailed": "Gagal menyimpan konfigurasi tinjauan" + "configSaveFailed": "Gagal menyimpan konfigurasi tinjauan", + "status": { + "pending": "Tertunda", + "queued": "Diantrekan", + "running": "Berjalan", + "completed": "Selesai", + "failed": "Gagal", + "cancelled": "Dibatalkan", + "interrupted": "Terputus" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "Tidak diketahui", "updated": "Diperbarui", "viewAdvisory": "Lihat advisori di GitHub", - "vulnerableVersions": "Versi rentan" + "vulnerableVersions": "Versi rentan", + "statusSuperseded": "Digantikan", + "statusFixed": "Diperbaiki", + "statusOpen": "Terbuka", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "perbaikan sudah dimulai", + "reasonNoBandwidth": "tidak ada bandwidth tersedia", + "reasonTolerableRisk": "risikonya dapat ditoleransi", + "reasonInaccurate": "temuannya tidak akurat", + "reasonNotUsed": "kode yang rentan tidak digunakan", + "reasonAfterReview": "setelah ditinjau" }, "findingList": { "clearFilters": "Hapus filter", @@ -1368,6 +1387,107 @@ "syncInProgress": "Sinkronisasi keamanan sedang berlangsung. Silakan coba lagi.", "dismissalInProgress": "Pengabaian ini sedang berlangsung. Silakan coba lagi.", "couldNotReadPendingSyncs": "Tidak dapat membaca sinkronisasi yang tertunda. Coba lagi." + }, + "analysisState": { + "queued": "Analisis diantrekan", + "queuedTitle": "Analisis diantrekan", + "queuedDescription": "Menunggu kapasitas analisis tersedia.", + "analyzing": "Menganalisis", + "analyzingTitle": "Menganalisis", + "analyzingDescription": "Memeriksa apakah kode aplikasi dapat menjangkau fitur yang terdampak.", + "failed": "Analisis gagal", + "failedTitle": "Analisis gagal", + "failedDescription": "Security Agent tidak dapat menyelesaikan analisis.", + "extractionFailed": "Perlu tinjauan", + "extractionFailedTitle": "Perlu tinjauan", + "extractionFailedDescription": "Laporan teknis tidak dapat diubah menjadi hasil terstruktur.", + "exploitable": "Dapat dieksploitasi", + "exploitableTitle": "Dapat dieksploitasi", + "exploitableDescription": "Kode aplikasi dapat menjangkau fitur yang terdampak.", + "notExploitable": "Tidak terjangkau", + "notExploitableTitle": "Tidak terjangkau", + "notExploitableDescription": "Tidak ada jalur yang dapat dijangkau ditemukan di repositori ini.", + "unknown": "Perlu tinjauan", + "unknownTitle": "Perlu tinjauan", + "unknownDescription": "Analisis tidak dapat mengonfirmasi apakah fitur yang rentan dapat dijangkau.", + "safeToDismiss": "Aman untuk diabaikan", + "safeToDismissTitle": "Aman untuk diabaikan", + "safeToDismissDescription": "Triase menentukan ini dapat diabaikan dengan aman tanpa analisis basis kode.", + "manualReview": "Perlu tinjauan", + "manualReviewTitle": "Perlu tinjauan manual", + "manualReviewDescription": "Triase menandai temuan ini untuk tinjauan manual.", + "analysisRequired": "Analisis diperlukan", + "analysisRequiredTitle": "Analisis basis kode diperlukan", + "analysisRequiredDescription": "Triase merekomendasikan analisis repositori sebelum memutuskan respons.", + "completed": "Dianalisis", + "completedTitle": "Dianalisis", + "completedDescription": "Analisis selesai tanpa hasil spesifik yang tercatat.", + "notAnalyzed": "Belum dianalisis", + "notAnalyzedTitle": "Belum dianalisis", + "notAnalyzedDescription": "Analisis basis kode belum dijalankan untuk temuan ini." + }, + "deadline": { + "fixedBeforeDeadline": "Diperbaiki sebelum tenggat", + "fixed": "Diperbaiki", + "fixedOn": "Diperbaiki {{date}}", + "resolutionRecorded": "Resolusi tercatat", + "superseded": "Digantikan", + "dismissed": "Diabaikan", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Tenggat belum ditetapkan", + "noSlaDeadline": "Tidak ada tenggat SLA", + "dueOn": "Jatuh tempo {{date}}", + "overdueNow": "Terlambat", + "overdue_other": "{{count}} hari terlambat", + "dueToday": "Jatuh tempo hari ini", + "dueTomorrow": "Jatuh tempo besok", + "dueInDays_other": "Jatuh tempo dalam {{count}} hari", + "overdue": "{{count}} hari terlambat", + "overdue_one": "{{count}} hari terlambat", + "dueInDays": "Jatuh tempo dalam {{count}} hari", + "dueInDays_one": "Jatuh tempo dalam {{count}} hari" + }, + "remediationStatus": { + "cancellationRequested": "Pembatalan diminta", + "notStarted": "Belum dimulai", + "queued": "Diantrekan", + "starting": "Memulai", + "inProgress": "Sedang berlangsung", + "draftPrOpened": "Draf PR dibuka", + "prOpened": "PR dibuka", + "blocked": "Diblokir", + "failed": "Gagal", + "noChangesNeeded": "Tidak ada perubahan diperlukan", + "cancelled": "Dibatalkan", + "originAutomaticPolicy": "Kebijakan otomatis", + "originIncludeExistingPolicy": "Sertakan kebijakan yang ada", + "originManual": "Manual", + "validationCheck": "Pemeriksaan validasi {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Temuan keamanan sudah tidak ada.", + "approvalRequired": "Remediasi Otomatis memerlukan persetujuan. Mulai remediasi secara manual untuk menyetujuinya.", + "findingNotOpen": "Temuan sudah tidak terbuka.", + "repoNotInScope": "Repositori tidak dipilih untuk Security Agent.", + "analysisRequired": "Jalankan analisis basis kode sebelum memulai remediasi.", + "sandboxAnalysisRequired": "Jalankan analisis basis kode sebelum memulai remediasi.", + "staleAnalysis": "Temuan berubah setelah analisis. Jalankan ulang analisis sebelum memulai remediasi.", + "notExploitable": "Analisis tidak menemukan jalur rentan yang dapat dijangkau. Remediasi Otomatis tidak tersedia.", + "exploitabilityUnknown": "Analisis tidak dapat mengonfirmasi eksploitabilitas. Tinjauan manual diperlukan sebelum remediasi sekali klik.", + "manualReviewRequired": "Analisis merekomendasikan tinjauan manual, jadi remediasi sekali klik tidak tersedia.", + "monitorRequired": "Analisis merekomendasikan pemantauan alih-alih membuka PR.", + "triageOnly": "Hanya triase yang telah selesai. Jalankan analisis basis kode sebelum memulai remediasi.", + "actionNotConcrete": "Tidak ada patch dependensi konkret atau perbaikan yang disarankan.", + "remediationActive": "Percobaan remediasi sedang berlangsung.", + "prAlreadyOpened": "PR remediasi sudah terbuka.", + "duplicateAnalysisResult": "Hasil analisis ini sudah menghasilkan pekerjaan remediasi.", + "retryNotAllowed": "Coba lagi tidak tersedia untuk percobaan ini.", + "securityAgentDisabled": "Security Agent dinonaktifkan untuk pemilik ini.", + "autoRemediationDisabled": "Remediasi Otomatis dinonaktifkan. Remediasi manual masih dapat dimulai saat gerbang keamanan terpenuhi.", + "includeExistingDisabled": "Temuan yang ada dikecualikan dari remediasi otomatis.", + "belowThreshold": "Temuan di bawah ambang keparahan otomatis. Remediasi manual masih dapat dimulai saat gerbang keamanan terpenuhi.", + "beforeEnablement": "Analisis selesai sebelum Remediasi Otomatis diaktifkan. Remediasi manual masih dapat dimulai saat gerbang keamanan terpenuhi.", + "generic": "Remediasi tidak tersedia untuk temuan ini." } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "Kirim tinjauan", "partialPostedMessage": "{{displayFreshCount}} komentar terkirim. {{displayStaleCount}} komentar mengarah ke commit lama dan tetap berada di antrean Anda.", "submitCountOfTotal": "Kirim {{displayFreshCount}} dari {{displayTotalCount}} komentar", - "submitReview": "Kirim tinjauan" + "submitReview": "Kirim tinjauan", + "blockedRequestChanges": "Tambahkan ringkasan atau setidaknya satu komentar untuk meminta perubahan.", + "blockedComment": "Tambahkan ringkasan atau setidaknya satu komentar untuk mengirim tinjauan komentar." }, "fileStatus": { "added": "Ditambahkan", diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index 105f5f92f8..d18fef9de2 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -512,7 +512,9 @@ "pendingComment_other": "nkọwa na-echere", "submitCountOfTotal": "Nyefee {{displayFreshCount}} n'ime {{displayTotalCount}} nkọwa", "submitReview": "Nyefee nyocha", - "partialPostedMessage": "Biputere {{displayFreshCount}} nkọwa. {{displayStaleCount}} nkọwa na-atụ aka na commit ochie ma nọrọ n'ahịrị gị." + "partialPostedMessage": "Biputere {{displayFreshCount}} nkọwa. {{displayStaleCount}} nkọwa na-atụ aka na commit ochie ma nọrọ n'ahịrị gị.", + "blockedRequestChanges": "Tinye nchịkọta ma ọ bụ opekata mpe otu nkọwa iji rịọ mgbanwe.", + "blockedComment": "Tinye nchịkọta ma ọ bụ opekata mpe otu nkọwa iji bipụta nyocha nkọwa." }, "reconnectNotice": { "title": "Njikọ GitHub emebiwo", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Emeliteghị onye nyocha", - "configSaveFailed": "Echekwaghị nhazi nyocha" + "configSaveFailed": "Echekwaghị nhazi nyocha", + "status": { + "pending": "Na-echere", + "queued": "Edobelere", + "running": "Na-agba", + "completed": "Emechara", + "failed": "Dara", + "cancelled": "Kagbuola", + "interrupted": "Akụsịrị" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Ndekọ isi", "source": "Isi", "sourceId": "ID isi", - "viewAdvisory": "Lee ndụmọdụ na GitHub" + "viewAdvisory": "Lee ndụmọdụ na GitHub", + "statusSuperseded": "Nọchiri", + "statusFixed": "Doziri", + "statusOpen": "Mepee", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ndozi amalitelarị", + "reasonNoBandwidth": "enweghị ikike dị", + "reasonTolerableRisk": "ihe ize ndụ dị ike ịnabata", + "reasonInaccurate": "ihe achọpụtara ezighi ezi", + "reasonNotUsed": "ejighị koodu enweghị nchebe", + "reasonAfterReview": "mgbe nyochachara" }, "settingsOverview": { "title": "Ntọala", @@ -1805,6 +1826,107 @@ "syncInProgress": "Nsomi nchebe na-aga n'ihu ugbu a. Biko nwaa ọzọ.", "dismissalInProgress": "Ịmechi a na-aga n'ihu ugbu a. Biko nwaa ọzọ.", "couldNotReadPendingSyncs": "Enweghị ike ịgụ nsomi ndị na-echere. Nwaa ọzọ." + }, + "analysisState": { + "queued": "Edebere nyocha n'ahịrị", + "queuedTitle": "Edebere nyocha n'ahịrị", + "queuedDescription": "Na-eche ka ikike nyocha dị.", + "analyzing": "Na-enyocha", + "analyzingTitle": "Na-enyocha", + "analyzingDescription": "Na-enyocha ma koodu ngwa nwere ike iru njirimara emetụtara.", + "failed": "Nyocha dara", + "failedTitle": "Nyocha dara", + "failedDescription": "Security Agent enweghị ike imecha nyocha.", + "extractionFailed": "Chọrọ nyocha", + "extractionFailedTitle": "Chọrọ nyocha", + "extractionFailedDescription": "Enweghị ike ịtụgharị akụkọ teknụzụ ka ọ bụrụ nsonaazụ a haziri ahaziri.", + "exploitable": "Enwere ike irigbu ya", + "exploitableTitle": "Enwere ike irigbu ya", + "exploitableDescription": "Koodu ngwa nwere ike iru njirimara emetụtara.", + "notExploitable": "Enweghị ike iru ya", + "notExploitableTitle": "Enweghị ike iru ya", + "notExploitableDescription": "Ahụghị ụzọ ọ bụla enwere ike iru na ebe nchekwa a.", + "unknown": "Chọrọ nyocha", + "unknownTitle": "Chọrọ nyocha", + "unknownDescription": "Nyocha enweghị ike ikwado ma enwere ike iru njirimara adịghị ike.", + "safeToDismiss": "Ọ dị mma ịkagbu", + "safeToDismissTitle": "Ọ dị mma ịkagbu", + "safeToDismissDescription": "Nhazi kpebiri na enwere ike ịkagbu nke a n'enweghị nsogbu na-enweghị nyocha koodu.", + "manualReview": "Chọrọ nyocha", + "manualReviewTitle": "Chọrọ nyocha aka", + "manualReviewDescription": "Nhazi akaraala ihe achọpụtara a maka nyocha aka.", + "analysisRequired": "Nyocha achọrọ", + "analysisRequiredTitle": "Nyocha koodu achọrọ", + "analysisRequiredDescription": "Nhazi na-atụ aro ịnyocha ebe nchekwa tupu ikpebi azịza.", + "completed": "Enyochaala ya", + "completedTitle": "Enyochaala ya", + "completedDescription": "Nyocha gwụchara n'enweghị nsonaazụ akọwapụtara edekọrọ.", + "notAnalyzed": "Enyochabeghị", + "notAnalyzedTitle": "Enyochabeghị", + "notAnalyzedDescription": "A gbabeghị nyocha koodu maka ihe achọpụtara a." + }, + "deadline": { + "fixedBeforeDeadline": "Doziri tupu oge njedebe", + "fixed": "Doziri", + "fixedOn": "Doziri {{date}}", + "resolutionRecorded": "Edekọrọ ndozi", + "superseded": "Nọchiri", + "dismissed": "Ekagburu", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Edebeghị oge njedebe", + "noSlaDeadline": "Enweghị oge njedebe SLA", + "dueOn": "N'ihi {{date}}", + "overdueNow": "Gafere oge", + "overdue_other": "{{count}} ụbọchị gafere oge", + "dueToday": "N'ihi taa", + "dueTomorrow": "N'ihi echi", + "dueInDays_other": "N'ihi n'ime {{count}} ụbọchị", + "overdue": "{{count}} ụbọchị gafere oge", + "overdue_one": "{{count}} ụbọchị gafere oge", + "dueInDays": "N'ihi n'ime {{count}} ụbọchị", + "dueInDays_one": "N'ihi n'ime {{count}} ụbọchị" + }, + "remediationStatus": { + "cancellationRequested": "Akwụsịchara ka a kagbuo", + "notStarted": "Amalitebeghị", + "queued": "Edobelere", + "starting": "Na-amalite", + "inProgress": "Na-aga n'ihu", + "draftPrOpened": "Mepeere PR ihe odide", + "prOpened": "Mepeere PR", + "blocked": "E gbochiri", + "failed": "Dara", + "noChangesNeeded": "Enweghị mgbanwe chọrọ", + "cancelled": "Kagbuola", + "originAutomaticPolicy": "Amụma akpaaka", + "originIncludeExistingPolicy": "Gụnye amụma dịnụ", + "originManual": "Aka", + "validationCheck": "Nyocha nkwenye {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Ihe achọpụtara nchebe adịkwaghị.", + "approvalRequired": "Mgbazi akpaaka chọrọ nkwenye. Malite ndozi n'aka iji kwado ya.", + "findingNotOpen": "Ihe achọpụtara adịkwaghị emeghe.", + "repoNotInScope": "Ahọpụtaghị ebe nchekwa maka Security Agent.", + "analysisRequired": "Gbaa nyocha koodu tupu ịmalite ndozi.", + "sandboxAnalysisRequired": "Gbaa nyocha koodu tupu ịmalite ndozi.", + "staleAnalysis": "Ihe achọpụtara gbanwere mgbe nyochachara. Gbaa nyocha ọzọ tupu ịmalite ndozi.", + "notExploitable": "Nyocha ahụghị ụzọ adịghị ike ọ bụla enwere ike iru. Mgbazi akpaaka adịghị.", + "exploitabilityUnknown": "Nyocha enweghị ike ikwado ike irigbu. A chọrọ nyocha aka tupu ndozi otu pịa.", + "manualReviewRequired": "Nyocha na-atụ aro nyocha aka, yabụ ndozi otu pịa adịghị.", + "monitorRequired": "Nyocha na-atụ aro nlekota kama imepe PR.", + "triageOnly": "Naanị nhazi ka gwụchara. Gbaa nyocha koodu tupu ịmalite ndozi.", + "actionNotConcrete": "Enweghị mgbochi ngwungwu doro anya ma ọ bụ ndozi a tụrụ aro.", + "remediationActive": "Mbọ ndozi na-aga n'ihu ugbu a.", + "prAlreadyOpened": "PR ndozi mepeworo.", + "duplicateAnalysisResult": "Nsonaazụ nyocha a emeworị ọrụ ndozi.", + "retryNotAllowed": "Nwaa ọzọ adịghị maka mbọ a.", + "securityAgentDisabled": "Security Agent gbanyụrụ maka onye nwe a.", + "autoRemediationDisabled": "Mgbazi akpaaka gbanyụrụ. Ndozi aka ka nwere ike ịmalite mgbe ọnụ ụzọ nchebe gafere.", + "includeExistingDisabled": "Ewepụrụ ihe achọpụtara dịnụ na ndozi akpaaka.", + "belowThreshold": "Ihe achọpụtara dị n'okpuru ọkwa nke akpaaka. Ndozi aka ka nwere ike ịmalite mgbe ọnụ ụzọ nchebe gafere.", + "beforeEnablement": "Nyocha gwụchara tupu agbanye Mgbazi akpaaka. Ndozi aka ka nwere ike ịmalite mgbe ọnụ ụzọ nchebe gafere.", + "generic": "Ndozi adịghị maka ihe achọpụtara a." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index f1f87a5f03..2cfa9f27f7 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -512,7 +512,9 @@ "pendingComment_other": "biðandi athugasemdir", "submitCountOfTotal": "Senda {{displayFreshCount}} af {{displayTotalCount}} athugasemdum", "submitReview": "Senda úttekt", - "partialPostedMessage": "Sendi {{displayFreshCount}} athugasemd(ir). {{displayStaleCount}} athugasemd(ir) vísa í eldra commit og voru áfram í hópnum þínum." + "partialPostedMessage": "Sendi {{displayFreshCount}} athugasemd(ir). {{displayStaleCount}} athugasemd(ir) vísa í eldra commit og voru áfram í hópnum þínum.", + "blockedRequestChanges": "Bættu við samantekt eða að minnsta kosti eina athugasemd til að biðja um breytingar.", + "blockedComment": "Bættu við samantekt eða að minnsta kosti eina athugasemd til að senda úttekt með athugasemdum." }, "reconnectNotice": { "title": "GitHub-tengingin rann út", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Mistókst að uppfæra rýnir", - "configSaveFailed": "Mistókst að vista úttektarstillingar" + "configSaveFailed": "Mistókst að vista úttektarstillingar", + "status": { + "pending": "Í bið", + "queued": "Í biðröð", + "running": "Í gangi", + "completed": "Lokið", + "failed": "Mistókst", + "cancelled": "Hætt við", + "interrupted": "Rofið" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Upprunafærsla", "source": "Uppruni", "sourceId": "Upprunakenni", - "viewAdvisory": "Skoða ráðleggingu á GitHub" + "viewAdvisory": "Skoða ráðleggingu á GitHub", + "statusSuperseded": "Leyst af hólmi", + "statusFixed": "Lagað", + "statusOpen": "Opið", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "lagfæring er þegar hafin", + "reasonNoBandwidth": "engin afkastageta er tiltæk", + "reasonTolerableRisk": "áhættan er þolanleg", + "reasonInaccurate": "atvikið er ónákvæmt", + "reasonNotUsed": "viðkvæmur kóði er ekki notaður", + "reasonAfterReview": "eftir yfirferð" }, "settingsOverview": { "title": "Stillingar", @@ -1805,6 +1826,107 @@ "syncInProgress": "Öryggissamstilling er þegar í gangi. Reyndu aftur.", "dismissalInProgress": "Þessi frávísun er þegar í gangi. Reyndu aftur.", "couldNotReadPendingSyncs": "Gat ekki lesið biðsamstillingar. Reyndu aftur." + }, + "analysisState": { + "queued": "Greining í biðröð", + "queuedTitle": "Greining í biðröð", + "queuedDescription": "Bíður eftir að greiningargeta verði tiltæk.", + "analyzing": "Greini", + "analyzingTitle": "Greini", + "analyzingDescription": "Athugar hvort forritskóði geti náð til viðkomandi eiginleika.", + "failed": "Greining mistókst", + "failedTitle": "Greining mistókst", + "failedDescription": "Security Agent gat ekki lokið greiningunni.", + "extractionFailed": "Þarfnast yfirferðar", + "extractionFailedTitle": "Þarfnast yfirferðar", + "extractionFailedDescription": "Ekki tókst að breyta tækniskýrslunni í skipulagða niðurstöðu.", + "exploitable": "Nýtanlegt", + "exploitableTitle": "Nýtanlegt", + "exploitableDescription": "Forritskóði getur náð til viðkomandi eiginleika.", + "notExploitable": "Óaðgengilegt", + "notExploitableTitle": "Óaðgengilegt", + "notExploitableDescription": "Enginn aðgengilegur slóður fannst í þessari geymslu.", + "unknown": "Þarfnast yfirferðar", + "unknownTitle": "Þarfnast yfirferðar", + "unknownDescription": "Greining gat ekki staðfest hvort viðkvæmi eiginleikinn sé aðgengilegur.", + "safeToDismiss": "Öruggt að hafna", + "safeToDismissTitle": "Öruggt að hafna", + "safeToDismissDescription": "Tríage ákvað að hægt sé að hafna þessu á öruggan hátt án kóðagreiningar.", + "manualReview": "Þarfnast yfirferðar", + "manualReviewTitle": "Þarfnast handvirkrar yfirferðar", + "manualReviewDescription": "Tríage merkti þetta atvik til handvirkrar yfirferðar.", + "analysisRequired": "Greining nauðsynleg", + "analysisRequiredTitle": "Kóðagreining nauðsynleg", + "analysisRequiredDescription": "Tríage mælir með því að greina geymsluna áður en ákveðið er hvernig bregðast skuli við.", + "completed": "Greint", + "completedTitle": "Greint", + "completedDescription": "Greining lauk án þess að skrá sérstaka útkomu.", + "notAnalyzed": "Ekki greint", + "notAnalyzedTitle": "Ekki greint", + "notAnalyzedDescription": "Kóðagreining hefur ekki enn keyrt fyrir þetta atvik." + }, + "deadline": { + "fixedBeforeDeadline": "Lagað fyrir frest", + "fixed": "Lagað", + "fixedOn": "Lagað {{date}}", + "resolutionRecorded": "Lausn skráð", + "superseded": "Leyst af hólmi", + "dismissed": "Vísað frá", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Frestur ekki settur", + "noSlaDeadline": "Enginn SLA-frestur", + "dueOn": "Vegna {{date}}", + "overdueNow": "Yfir fresti", + "overdue_one": "{{count}} dagur yfir fresti", + "overdue_other": "{{count}} dagar yfir fresti", + "dueToday": "Vegna í dag", + "dueTomorrow": "Vegna á morgun", + "dueInDays_one": "Vegna eftir {{count}} dag", + "dueInDays_other": "Vegna eftir {{count}} daga", + "overdue": "{{count}} dagar yfir fresti", + "dueInDays": "Vegna eftir {{count}} daga" + }, + "remediationStatus": { + "cancellationRequested": "Hætta við beðið", + "notStarted": "Ekki hafið", + "queued": "Í biðröð", + "starting": "Hefst", + "inProgress": "Í gangi", + "draftPrOpened": "Drög að PR opnuð", + "prOpened": "PR opnaður", + "blocked": "Lokað", + "failed": "Mistókst", + "noChangesNeeded": "Engin breyting nauðsynleg", + "cancelled": "Hætt við", + "originAutomaticPolicy": "Sjálfvirk stefna", + "originIncludeExistingPolicy": "Innifela núverandi stefnu", + "originManual": "Handvirkt", + "validationCheck": "Staðfestingaratriði {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Öryggisatvik er ekki lengur til.", + "approvalRequired": "Sjálfvirk úrbót krefst samþykkis. Hefjaðu úrbætur handvirkt til að samþykkja þær.", + "findingNotOpen": "Atvik er ekki lengur opið.", + "repoNotInScope": "Geymsla er ekki valin fyrir Security Agent.", + "analysisRequired": "Keyrðu kóðagreiningu áður en úrbætur hefjast.", + "sandboxAnalysisRequired": "Keyrðu kóðagreiningu áður en úrbætur hefjast.", + "staleAnalysis": "Atvik breyttist eftir greiningu. Keyrðu greiningu aftur áður en úrbætur hefjast.", + "notExploitable": "Greining fann engan aðgengilegan viðkvæman slóð. Sjálfvirk úrbót er ekki tiltæk.", + "exploitabilityUnknown": "Greining gat ekki staðfest nýtanleika. Handvirk yfirferð er nauðsynleg áður en úrbætur hefjast með einum smelli.", + "manualReviewRequired": "Greining mælir með handvirkri yfirferð, svo úrbætur með einum smelli eru ekki tiltækar.", + "monitorRequired": "Greining mælir með eftirliti í stað þess að opna PR.", + "triageOnly": "Aðeins tríage er lokið. Keyrðu kóðagreiningu áður en úrbætur hefjast.", + "actionNotConcrete": "Engin skýr plástur á ósjálfstæði eða fyrirhuguð lagfæring er tiltæk.", + "remediationActive": "Úrbótatilraun er þegar virk.", + "prAlreadyOpened": "Úrbóta-PR er þegar opinn.", + "duplicateAnalysisResult": "Þessi greiningarniðurstaða framleiddi þegar úrbótavinnu.", + "retryNotAllowed": "Ekki er hægt að reyna þessa tilraun aftur.", + "securityAgentDisabled": "Security Agent er óvirkur fyrir þennan eiganda.", + "autoRemediationDisabled": "Sjálfvirk úrbót er óvirk. Handvirkar úrbætur geta samt hafist þegar öryggisgáttir standast.", + "includeExistingDisabled": "Núverandi atvik eru undanskilin sjálfvirkum úrbótum.", + "belowThreshold": "Atvik er undir lágmarksalvarleika sjálfvirkra úrbóta. Handvirkar úrbætur geta samt hafist þegar öryggisgáttir standast.", + "beforeEnablement": "Greining lauk áður en sjálfvirkar úrbætur voru virkjaðar. Handvirkar úrbætur geta samt hafist þegar öryggisgáttir standast.", + "generic": "Úrbætur eru ekki tiltækar fyrir þetta atvik." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index 827c0d3b25..33b6c87e7f 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -927,7 +927,16 @@ "set": "Impostato" }, "updateFailed": "Aggiornamento del revisore non riuscito", - "configSaveFailed": "Salvataggio della configurazione di revisione non riuscito" + "configSaveFailed": "Salvataggio della configurazione di revisione non riuscito", + "status": { + "pending": "In sospeso", + "queued": "In coda", + "running": "In esecuzione", + "completed": "Completata", + "failed": "Non riuscita", + "cancelled": "Annullata", + "interrupted": "Interrotta" + } }, "securityAgent": { "filter": { @@ -1174,7 +1183,17 @@ "unknown": "Sconosciuto", "updated": "Aggiornato", "viewAdvisory": "Visualizza l'avviso su GitHub", - "vulnerableVersions": "Versioni vulnerabili" + "vulnerableVersions": "Versioni vulnerabili", + "statusSuperseded": "Sostituito", + "statusFixed": "Risolto", + "statusOpen": "Aperto", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "una correzione è già iniziata", + "reasonNoBandwidth": "nessuna capacità disponibile", + "reasonTolerableRisk": "il rischio è tollerabile", + "reasonInaccurate": "il risultato è impreciso", + "reasonNotUsed": "il codice vulnerabile non viene usato", + "reasonAfterReview": "dopo la revisione" }, "findingList": { "clearFilters": "Cancella filtri", @@ -1358,6 +1377,109 @@ "syncInProgress": "Una sincronizzazione di sicurezza è già in corso. Riprova.", "dismissalInProgress": "Questo ignoramento è già in corso. Riprova.", "couldNotReadPendingSyncs": "Impossibile leggere le sincronizzazioni in sospeso. Riprova." + }, + "analysisState": { + "queued": "Analisi in coda", + "queuedTitle": "Analisi in coda", + "queuedDescription": "In attesa che la capacità di analisi diventi disponibile.", + "analyzing": "In analisi", + "analyzingTitle": "In analisi", + "analyzingDescription": "Verifica se il codice dell'applicazione può raggiungere la funzionalità interessata.", + "failed": "Analisi non riuscita", + "failedTitle": "Analisi non riuscita", + "failedDescription": "Security Agent non ha potuto completare l'analisi.", + "extractionFailed": "Richiede revisione", + "extractionFailedTitle": "Richiede revisione", + "extractionFailedDescription": "Il report tecnico non ha potuto essere trasformato in un risultato strutturato.", + "exploitable": "Sfruttabile", + "exploitableTitle": "Sfruttabile", + "exploitableDescription": "Il codice dell'applicazione può raggiungere la funzionalità interessata.", + "notExploitable": "Non raggiungibile", + "notExploitableTitle": "Non raggiungibile", + "notExploitableDescription": "Nessun percorso raggiungibile è stato trovato in questo repository.", + "unknown": "Richiede revisione", + "unknownTitle": "Richiede revisione", + "unknownDescription": "L'analisi non ha potuto confermare se la funzionalità vulnerabile è raggiungibile.", + "safeToDismiss": "Sicuro da ignorare", + "safeToDismissTitle": "Sicuro da ignorare", + "safeToDismissDescription": "Il triage ha determinato che questo può essere ignorato in sicurezza senza analisi del codebase.", + "manualReview": "Richiede revisione", + "manualReviewTitle": "Richiede revisione manuale", + "manualReviewDescription": "Il triage ha segnalato questo risultato per la revisione manuale.", + "analysisRequired": "Analisi richiesta", + "analysisRequiredTitle": "Analisi del codebase richiesta", + "analysisRequiredDescription": "Il triage consiglia di analizzare il repository prima di decidere una risposta.", + "completed": "Analizzato", + "completedTitle": "Analizzato", + "completedDescription": "Analisi completata senza un esito specifico registrato.", + "notAnalyzed": "Non analizzato", + "notAnalyzedTitle": "Non analizzato", + "notAnalyzedDescription": "L'analisi del codebase non è ancora stata eseguita per questo risultato." + }, + "deadline": { + "fixedBeforeDeadline": "Risolto prima della scadenza", + "fixed": "Risolto", + "fixedOn": "Risolto il {{date}}", + "resolutionRecorded": "Risoluzione registrata", + "superseded": "Sostituito", + "dismissed": "Ignorato", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Scadenza non impostata", + "noSlaDeadline": "Nessuna scadenza SLA", + "dueOn": "Scade il {{date}}", + "overdueNow": "In ritardo", + "overdue_one": "{{count}} giorno di ritardo", + "overdue_many": "{{count}} giorni di ritardo", + "overdue_other": "{{count}} giorni di ritardo", + "dueToday": "Scade oggi", + "dueTomorrow": "Scade domani", + "dueInDays_one": "Scade tra {{count}} giorno", + "dueInDays_many": "Scade tra {{count}} giorni", + "dueInDays_other": "Scade tra {{count}} giorni", + "overdue": "{{count}} giorni di ritardo", + "dueInDays": "Scade tra {{count}} giorni" + }, + "remediationStatus": { + "cancellationRequested": "Annullamento richiesto", + "notStarted": "Non avviata", + "queued": "In coda", + "starting": "Avvio", + "inProgress": "In corso", + "draftPrOpened": "PR bozza aperta", + "prOpened": "PR aperta", + "blocked": "Bloccata", + "failed": "Non riuscita", + "noChangesNeeded": "Nessuna modifica necessaria", + "cancelled": "Annullata", + "originAutomaticPolicy": "Criterio automatico", + "originIncludeExistingPolicy": "Criterio include esistenti", + "originManual": "Manuale", + "validationCheck": "Controllo di validazione {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Il risultato di sicurezza non esiste più.", + "approvalRequired": "La remediation automatica richiede l'approvazione. Avvia la remediation manualmente per approvarla.", + "findingNotOpen": "Il risultato non è più aperto.", + "repoNotInScope": "Il repository non è selezionato per Security Agent.", + "analysisRequired": "Esegui l'analisi del codebase prima di avviare la remediation.", + "sandboxAnalysisRequired": "Esegui l'analisi del codebase prima di avviare la remediation.", + "staleAnalysis": "Il risultato è cambiato dopo l'analisi. Esegui di nuovo l'analisi prima di avviare la remediation.", + "notExploitable": "L'analisi non ha trovato alcun percorso vulnerabile raggiungibile. La remediation automatica non è disponibile.", + "exploitabilityUnknown": "L'analisi non ha potuto confermare la sfruttabilità. È richiesta una revisione manuale prima della remediation con un clic.", + "manualReviewRequired": "L'analisi consiglia una revisione manuale, quindi la remediation con un clic non è disponibile.", + "monitorRequired": "L'analisi consiglia il monitoraggio invece di aprire una PR.", + "triageOnly": "È stato completato solo il triage. Esegui l'analisi del codebase prima di avviare la remediation.", + "actionNotConcrete": "Nessuna patch concreta per le dipendenze o correzione suggerita disponibile.", + "remediationActive": "Un tentativo di remediation è già in corso.", + "prAlreadyOpened": "Una PR di remediation è già aperta.", + "duplicateAnalysisResult": "Questo risultato dell'analisi ha già prodotto lavoro di remediation.", + "retryNotAllowed": "Riprova non è disponibile per questo tentativo.", + "securityAgentDisabled": "Security Agent è disabilitato per questo proprietario.", + "autoRemediationDisabled": "La remediation automatica è disabilitata. La remediation manuale può comunque iniziare quando i gate di sicurezza vengono superati.", + "includeExistingDisabled": "I risultati esistenti sono esclusi dalla remediation automatica.", + "belowThreshold": "Il risultato è al di sotto della soglia automatica di gravità. La remediation manuale può comunque iniziare quando i gate di sicurezza vengono superati.", + "beforeEnablement": "L'analisi è stata completata prima che la remediation automatica venisse abilitata. La remediation manuale può comunque iniziare quando i gate di sicurezza vengono superati.", + "generic": "La remediation non è disponibile per questo risultato." } }, "agents": { @@ -2657,7 +2779,9 @@ "partialPostedMessage": "Pubblicati {{displayFreshCount}} commenti. {{displayStaleCount}} commenti fanno riferimento a un commit precedente e sono rimasti in coda.", "submitCountOfTotal": "Invia {{displayFreshCount}} di {{displayTotalCount}} commenti", "submitReview": "Invia revisione", - "pendingComment_many": "commenti in sospeso" + "pendingComment_many": "commenti in sospeso", + "blockedRequestChanges": "Aggiungi un riepilogo o almeno un commento per richiedere modifiche.", + "blockedComment": "Aggiungi un riepilogo o almeno un commento per inviare una revisione come commento." }, "fileStatus": { "added": "Aggiunto", diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 7ec1b678e0..5d55e89b4f 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -939,7 +939,16 @@ "set": "設定" }, "updateFailed": "レビュアーを更新できませんでした", - "configSaveFailed": "レビュー設定を保存できませんでした" + "configSaveFailed": "レビュー設定を保存できませんでした", + "status": { + "pending": "保留中", + "queued": "キュー待ち", + "running": "実行中", + "completed": "完了", + "failed": "失敗", + "cancelled": "キャンセル済み", + "interrupted": "中断" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "不明", "updated": "更新日時", "viewAdvisory": "GitHubでアドバイザリを表示", - "vulnerableVersions": "脆弱なバージョン" + "vulnerableVersions": "脆弱なバージョン", + "statusSuperseded": "置き換え済み", + "statusFixed": "修正済み", + "statusOpen": "未解決", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "修正がすでに開始されている", + "reasonNoBandwidth": "対応する余裕がない", + "reasonTolerableRisk": "リスクは許容範囲", + "reasonInaccurate": "所見が不正確", + "reasonNotUsed": "脆弱なコードは使用されていない", + "reasonAfterReview": "確認後" }, "findingList": { "clearFilters": "フィルターをクリア", @@ -1368,6 +1387,107 @@ "syncInProgress": "セキュリティ同期はすでに進行中です。もう一度お試しください。", "dismissalInProgress": "この却下はすでに進行中です。もう一度お試しください。", "couldNotReadPendingSyncs": "保留中の同期を読み取れませんでした。もう一度お試しください。" + }, + "analysisState": { + "queued": "分析がキューに入りました", + "queuedTitle": "分析がキューに入りました", + "queuedDescription": "分析のキャパシティが解放されるのを待っています。", + "analyzing": "分析中", + "analyzingTitle": "分析中", + "analyzingDescription": "アプリケーションコードが影響を受ける機能に到達できるかを確認しています。", + "failed": "分析に失敗しました", + "failedTitle": "分析に失敗しました", + "failedDescription": "Security Agentは分析を完了できませんでした。", + "extractionFailed": "確認が必要", + "extractionFailedTitle": "確認が必要", + "extractionFailedDescription": "技術レポートを構造化された結果に変換できませんでした。", + "exploitable": "悪用可能", + "exploitableTitle": "悪用可能", + "exploitableDescription": "アプリケーションコードは影響を受ける機能に到達できます。", + "notExploitable": "到達不可", + "notExploitableTitle": "到達不可", + "notExploitableDescription": "このリポジトリには到達可能なパスは見つかりませんでした。", + "unknown": "確認が必要", + "unknownTitle": "確認が必要", + "unknownDescription": "分析では、脆弱な機能が到達可能かどうかを確認できませんでした。", + "safeToDismiss": "安全に却下可能", + "safeToDismissTitle": "安全に却下可能", + "safeToDismissDescription": "トリアージにより、コードベース分析なしで安全に却下できると判断されました。", + "manualReview": "確認が必要", + "manualReviewTitle": "手動確認が必要", + "manualReviewDescription": "トリアージにより、この所見は手動確認が必要とフラグが立てられました。", + "analysisRequired": "分析が必要", + "analysisRequiredTitle": "コードベース分析が必要", + "analysisRequiredDescription": "トリアージは、対応を決定する前にリポジトリの分析を推奨します。", + "completed": "分析済み", + "completedTitle": "分析済み", + "completedDescription": "特定の結果が記録されずに分析が完了しました。", + "notAnalyzed": "未分析", + "notAnalyzedTitle": "未分析", + "notAnalyzedDescription": "この所見のコードベース分析はまだ実行されていません。" + }, + "deadline": { + "fixedBeforeDeadline": "期限前に修正済み", + "fixed": "修正済み", + "fixedOn": "{{date}}に修正", + "resolutionRecorded": "解決が記録されました", + "superseded": "置き換え済み", + "dismissed": "却下済み", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "期限が設定されていません", + "noSlaDeadline": "SLA期限なし", + "dueOn": "{{date}}期限", + "overdueNow": "期限超過", + "overdue_other": "{{count}}日超過", + "dueToday": "今日が期限", + "dueTomorrow": "明日が期限", + "dueInDays_other": "{{count}}日後に期限", + "overdue": "{{count}}日超過", + "overdue_one": "{{count}}日超過", + "dueInDays": "{{count}}日後に期限", + "dueInDays_one": "{{count}}日後に期限" + }, + "remediationStatus": { + "cancellationRequested": "キャンセルを要求しました", + "notStarted": "未開始", + "queued": "キュー待ち", + "starting": "開始中", + "inProgress": "進行中", + "draftPrOpened": "ドラフトPRが開かれました", + "prOpened": "PRが開かれました", + "blocked": "ブロック", + "failed": "失敗", + "noChangesNeeded": "変更は不要です", + "cancelled": "キャンセル済み", + "originAutomaticPolicy": "自動ポリシー", + "originIncludeExistingPolicy": "既存ポリシーを含める", + "originManual": "手動", + "validationCheck": "検証チェック {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "セキュリティ所見はもう存在しません。", + "approvalRequired": "自動修復には承認が必要です。手動で修復を開始して承認してください。", + "findingNotOpen": "所見はもう未解決ではありません。", + "repoNotInScope": "リポジトリがSecurity Agent用に選択されていません。", + "analysisRequired": "修復を開始する前にコードベース分析を実行してください。", + "sandboxAnalysisRequired": "修復を開始する前にコードベース分析を実行してください。", + "staleAnalysis": "分析後に所見が変更されました。修復を開始する前に分析を再実行してください。", + "notExploitable": "分析では到達可能な脆弱なパスは見つかりませんでした。自動修復は利用できません。", + "exploitabilityUnknown": "分析では悪用可能性を確認できませんでした。ワンクリック修復の前に手動確認が必要です。", + "manualReviewRequired": "分析が手動確認を推奨しているため、ワンクリック修復は利用できません。", + "monitorRequired": "分析はPRを開く代わりにモニタリングを推奨しています。", + "triageOnly": "トリアージのみが完了しています。修復を開始する前にコードベース分析を実行してください。", + "actionNotConcrete": "具体的な依存関係パッチまたは推奨修正はありません。", + "remediationActive": "修復試行がすでに進行中です。", + "prAlreadyOpened": "修復PRがすでに開いています。", + "duplicateAnalysisResult": "この分析結果はすでに修復作業を生成しました。", + "retryNotAllowed": "この試行では再試行は利用できません。", + "securityAgentDisabled": "このオーナーではSecurity Agentが無効です。", + "autoRemediationDisabled": "自動修復は無効です。安全ゲートを通過すれば、手動修復はまだ開始できます。", + "includeExistingDisabled": "既存の所見は自動修復から除外されています。", + "belowThreshold": "所見が自動修復の重大度しきい値を下回っています。安全ゲートを通過すれば、手動修復はまだ開始できます。", + "beforeEnablement": "分析は自動修復が有効になる前に完了しました。安全ゲートを通過すれば、手動修復はまだ開始できます。", + "generic": "この所見では修復を利用できません。" } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "レビューを送信", "partialPostedMessage": "{{displayFreshCount}}件のコメントを投稿しました。{{displayStaleCount}}件のコメントは古いコミットを指しているため、キューに残りました。", "submitCountOfTotal": "{{displayTotalCount}}件中{{displayFreshCount}}件のコメントを送信", - "submitReview": "レビューを送信" + "submitReview": "レビューを送信", + "blockedRequestChanges": "変更をリクエストするには、概要またはコメントを1件以上追加してください。", + "blockedComment": "コメントレビューを投稿するには、概要またはコメントを1件以上追加してください。" }, "fileStatus": { "added": "追加", diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index 53dd115913..6a349b4420 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -512,7 +512,9 @@ "pendingComment_other": "მოლოდინის კომენტარი", "submitCountOfTotal": "{{displayFreshCount}} {{displayTotalCount}}-დან კომენტარის გაგზავნა", "submitReview": "რეცენზიის გაგზავნა", - "partialPostedMessage": "გამოქვეყნდა {{displayFreshCount}} კომენტარი. {{displayStaleCount}} კომენტარი მიუთითებს ძველ commit-ზე და დარჩა თქვენს რიგში." + "partialPostedMessage": "გამოქვეყნდა {{displayFreshCount}} კომენტარი. {{displayStaleCount}} კომენტარი მიუთითებს ძველ commit-ზე და დარჩა თქვენს რიგში.", + "blockedRequestChanges": "დაამატეთ შეჯამება ან სულ მცირე ერთი კომენტარი ცვლილებების მოსათხოვნად.", + "blockedComment": "დაამატეთ შეჯამება ან სულ მცირე ერთი კომენტარი კომენტარის რეცენზიის გამოსაქვეყნებლად." }, "reconnectNotice": { "title": "GitHub კავშირი ვადაგასულია", @@ -1376,7 +1378,16 @@ }, "eyebrow": "კოდის მიმომხილველი", "updateFailed": "რეცენზენტის განახლება ვერ მოხერხდა", - "configSaveFailed": "რეცენზიის კონფიგურაციის შენახვა ვერ მოხერხდა" + "configSaveFailed": "რეცენზიის კონფიგურაციის შენახვა ვერ მოხერხდა", + "status": { + "pending": "მოლოდინში", + "queued": "რიგშია", + "running": "მიმდინარეობს", + "completed": "დასრულებულია", + "failed": "ჩაიშალა", + "cancelled": "გაუქმებულია", + "interrupted": "შეწყვეტილია" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "წყაროს ჩანაწერი", "source": "წყარო", "sourceId": "წყაროს ID", - "viewAdvisory": "კონსულტაციის ნახვა GitHub-ზე" + "viewAdvisory": "კონსულტაციის ნახვა GitHub-ზე", + "statusSuperseded": "შეცვლილია", + "statusFixed": "შესწორებულია", + "statusOpen": "ღია", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "შესწორება უკვე დაწყებულია", + "reasonNoBandwidth": "სიმძლავრე მიუწვდომელია", + "reasonTolerableRisk": "რისკი მისაღებია", + "reasonInaccurate": "მონაპოვარი არაზუსტია", + "reasonNotUsed": "დაუცველი კოდი არ გამოიყენება", + "reasonAfterReview": "მიმოხილვის შემდეგ" }, "settingsOverview": { "title": "პარამეტრები", @@ -1805,6 +1826,107 @@ "syncInProgress": "უსაფრთხოების სინქრონიზაცია უკვე მიმდინარეობს. გთხოვთ, კვლავ სცადოთ.", "dismissalInProgress": "ეს გაუქმება უკვე მიმდინარეობს. გთხოვთ, კვლავ სცადოთ.", "couldNotReadPendingSyncs": "მოლოდინში მყოფი სინქრონიზაციების წაკითხვა ვერ მოხერხდა. სცადეთ კიდევ." + }, + "analysisState": { + "queued": "ანალიზი რიგშია", + "queuedTitle": "ანალიზი რიგშია", + "queuedDescription": "ველოდებით ანალიზის სიმძლავრის გათავისუფლებას.", + "analyzing": "მიმდინარეობს ანალიზი", + "analyzingTitle": "მიმდინარეობს ანალიზი", + "analyzingDescription": "მოწმდება, შეუძლია თუ არა აპლიკაციის კოდს დაზარალებულ ფუნქციამდე მისვლა.", + "failed": "ანალიზი ჩაიშალა", + "failedTitle": "ანალიზი ჩაიშალა", + "failedDescription": "უსაფრთხოების აგენტმა ანალიზი ვერ დაასრულა.", + "extractionFailed": "საჭიროებს მიმოხილვას", + "extractionFailedTitle": "საჭიროებს მიმოხილვას", + "extractionFailedDescription": "ტექნიკური ანგარიშის სტრუქტურირებულ შედეგად გადაქცევა ვერ მოხერხდა.", + "exploitable": "ექსპლუატირებადი", + "exploitableTitle": "ექსპლუატირებადი", + "exploitableDescription": "აპლიკაციის კოდს შეუძლია დაზარალებულ ფუნქციამდე მისვლა.", + "notExploitable": "მიუწვდომელი", + "notExploitableTitle": "მიუწვდომელი", + "notExploitableDescription": "ამ რეპოზიტორში მისაწვდომი გზა არ მოიძებნა.", + "unknown": "საჭიროებს მიმოხილვას", + "unknownTitle": "საჭიროებს მიმოხილვას", + "unknownDescription": "ანალიზმა ვერ დაადასტურა, არის თუ არა დაუცველი ფუნქცია მისაწვდომი.", + "safeToDismiss": "უსაფრთხოა გასაუქმებლად", + "safeToDismissTitle": "უსაფრთხოა გასაუქმებლად", + "safeToDismissDescription": "სორტირებამ დაადგინა, რომ ეს კოდბაზის ანალიზის გარეშე შეიძლება უსაფრთხოდ გაუქმდეს.", + "manualReview": "საჭიროებს მიმოხილვას", + "manualReviewTitle": "საჭიროებს ხელით მიმოხილვას", + "manualReviewDescription": "სორტირებამ ეს მონაპოვარი ხელით მიმოხილვისთვის მონიშნა.", + "analysisRequired": "საჭიროა ანალიზი", + "analysisRequiredTitle": "საჭიროა კოდბაზის ანალიზი", + "analysisRequiredDescription": "სორტირება გირჩევთ, გააანალიზოთ რეპოზიტორი პასუხის გადაწყვეტამდე.", + "completed": "გაანალიზებულია", + "completedTitle": "გაანალიზებულია", + "completedDescription": "ანალიზი დასრულდა კონკრეტული შედეგის ჩაწერის გარეშე.", + "notAnalyzed": "არ არის გაანალიზებული", + "notAnalyzedTitle": "არ არის გაანალიზებული", + "notAnalyzedDescription": "ამ მონაპოვრისთვის კოდბაზის ანალიზი ჯერ არ ჩატარებულა." + }, + "deadline": { + "fixedBeforeDeadline": "შესწორებულია ვადამდე", + "fixed": "შესწორებულია", + "fixedOn": "შესწორებულია {{date}}", + "resolutionRecorded": "გადაწყვეტა ჩაწერილია", + "superseded": "შეცვლილია", + "dismissed": "გაუქმებულია", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "ვადა დაუდგენელია", + "noSlaDeadline": "SLA ვადა არ არის", + "dueOn": "ვადა {{date}}", + "overdueNow": "ვადაგადაცილებული", + "overdue_one": "{{count}} დღე ვადაგადაცილებული", + "overdue_other": "{{count}} დღე ვადაგადაცილებული", + "dueToday": "ვადა დღეს ამოიწურა", + "dueTomorrow": "ვადა ხვალ ამოიწურა", + "dueInDays_one": "ვადა {{count}} დღეში", + "dueInDays_other": "ვადა {{count}} დღეში", + "overdue": "{{count}} დღე ვადაგადაცილებული", + "dueInDays": "ვადა {{count}} დღეში" + }, + "remediationStatus": { + "cancellationRequested": "გაუქმება მოთხოვნილია", + "notStarted": "არ არის დაწყებული", + "queued": "რიგშია", + "starting": "იწყება", + "inProgress": "მიმდინარეობს", + "draftPrOpened": "დრაფტ PR გაიხსნა", + "prOpened": "PR გაიხსნა", + "blocked": "დაბლოკილია", + "failed": "ჩაიშალა", + "noChangesNeeded": "ცვლილებები არ არის საჭირო", + "cancelled": "გაუქმებულია", + "originAutomaticPolicy": "ავტომატური პოლიტიკა", + "originIncludeExistingPolicy": "არსებული პოლიტიკის ჩართვა", + "originManual": "ხელით", + "validationCheck": "ვალიდაციის შემოწმება {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "უსაფრთხოების მონაპოვარი აღარ არსებობს.", + "approvalRequired": "ავტო შესწორება მოითხოვს დამტკიცებას. დაიწყეთ აღდგენა ხელით მის დასამტკიცებლად.", + "findingNotOpen": "მონაპოვარი აღარ არის ღია.", + "repoNotInScope": "რეპოზიტორი არ არის არჩეული უსაფრთხოების აგენტისთვის.", + "analysisRequired": "ჩაატარეთ კოდბაზის ანალიზი აღდგენის დაწყებამდე.", + "sandboxAnalysisRequired": "ჩაატარეთ კოდბაზის ანალიზი აღდგენის დაწყებამდე.", + "staleAnalysis": "მონაპოვარი შეიცვალა ანალიზის შემდეგ. გაუშვით ანალიზი ხელახლა აღდგენის დაწყებამდე.", + "notExploitable": "ანალიზმა მისაწვდომი დაუცველი გზა ვერ იპოვა. ავტო შესწორება მიუწვდომელია.", + "exploitabilityUnknown": "ანალიზმა ექსპლუატირებადობა ვერ დაადასტურა. ერთი დაწკაპუნებით აღდგენამდე საჭიროა ხელით მიმოხილვა.", + "manualReviewRequired": "ანალიზი გირჩევთ ხელით მიმოხილვას, ამიტომ ერთი დაწკაპუნებით აღდგენა მიუწვდომელია.", + "monitorRequired": "ანალიზი გირჩევთ მონიტორინგს PR-ის გახსნის ნაცვლად.", + "triageOnly": "მხოლოდ სორტირებაა დასრულებული. ჩაატარეთ კოდბაზის ანალიზი აღდგენის დაწყებამდე.", + "actionNotConcrete": "არ არის ხელმისაწვდომი კონკრეტული დამოკიდებულების შესწორება ან შემოთავაზებული ფიქსი.", + "remediationActive": "აღდგენის მცდელობა უკვე მიმდინარეობს.", + "prAlreadyOpened": "აღდგენის PR უკვე ღიაა.", + "duplicateAnalysisResult": "ამ ანალიზის შედეგმა აღდგენის სამუშაო უკვე წარმოქმნა.", + "retryNotAllowed": "ხელახალი ცდა მიუწვდომელია ამ მცდელობისთვის.", + "securityAgentDisabled": "უსაფრთხოების აგენტი გამორთულია ამ მფლობელისთვის.", + "autoRemediationDisabled": "ავტო შესწორება გამორთულია. ხელით აღდგენა მაინც შეიძლება დაიწყოს, როცა უსაფრთხოების კარიბჭეები გაივლის.", + "includeExistingDisabled": "არსებული მონაპოვრები გამორიცხულია ავტომატური აღდგენიდან.", + "belowThreshold": "მონაპოვარი ავტომატური სიმძიმის ზღვარზე დაბალია. ხელით აღდგენა მაინც შეიძლება დაიწყოს, როცა უსაფრთხოების კარიბჭეები გაივლის.", + "beforeEnablement": "ანალიზი დასრულდა ავტო შესწორების ჩართვამდე. ხელით აღდგენა მაინც შეიძლება დაიწყოს, როცა უსაფრთხოების კარიბჭეები გაივლის.", + "generic": "აღდგენა მიუწვდომელია ამ მონაპოვრისთვის." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index eb594aa548..851e43e381 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -512,7 +512,9 @@ "pendingComment_other": "күтілудегі пікірлер", "submitCountOfTotal": "{{displayTotalCount}} пікірдің {{displayFreshCount}} жіберу", "submitReview": "Рецензияны жіберу", - "partialPostedMessage": "{{displayFreshCount}} пікір жарияланды. {{displayStaleCount}} пікір ескі commit-ке қатысты және кезегіңізде қалды." + "partialPostedMessage": "{{displayFreshCount}} пікір жарияланды. {{displayStaleCount}} пікір ескі commit-ке қатысты және кезегіңізде қалды.", + "blockedRequestChanges": "Өзгерістерді сұрау үшін қорытындыны немесе кемінде бір пікірді қосыңыз.", + "blockedComment": "Пікір рецензиясын жариялау үшін қорытындыны немесе кемінде бір пікірді қосыңыз." }, "reconnectNotice": { "title": "GitHub қосылымының мерзімі өтті", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Рецензентті жаңарту мүмкін болмады", - "configSaveFailed": "Рецензия конфигурациясын сақтау мүмкін болмады" + "configSaveFailed": "Рецензия конфигурациясын сақтау мүмкін болмады", + "status": { + "pending": "Күтілуде", + "queued": "Кезекте", + "running": "Орындалуда", + "completed": "Аяқталды", + "failed": "Сәтсіз аяқталды", + "cancelled": "Тоқтатылды", + "interrupted": "Үзілді" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Бастапқы жазба", "source": "Дереккөз", "sourceId": "Дереккөз идентификаторы", - "viewAdvisory": "GitHub-та кеңес-құжатты қарау" + "viewAdvisory": "GitHub-та кеңес-құжатты қарау", + "statusSuperseded": "Ауыстырылды", + "statusFixed": "Түзетілді", + "statusOpen": "Ашық", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "түзету әлдеқашан басталды", + "reasonNoBandwidth": "қажетті қуат жоқ", + "reasonTolerableRisk": "тәуекел қолайлы", + "reasonInaccurate": "дерек дәл емес", + "reasonNotUsed": "осал код пайдаланылмайды", + "reasonAfterReview": "қараудан кейін" }, "settingsOverview": { "title": "Параметрлер", @@ -1805,6 +1826,107 @@ "syncInProgress": "Қауіпсіздік синхрондауы қазірдің өзінде жүріп жатыр. Қайта көріңіз.", "dismissalInProgress": "Бұл жою қазірдің өзінде жүріп жатыр. Қайта көріңіз.", "couldNotReadPendingSyncs": "Күтілудегі синхрондауларды оқу мүмкін болмады. Қайта көріңіз." + }, + "analysisState": { + "queued": "Талдау кезекке қойылды", + "queuedTitle": "Талдау кезекке қойылды", + "queuedDescription": "Талдау сыйымдылығының босауы күтілуде.", + "analyzing": "Талдау жүргізілуде", + "analyzingTitle": "Талдау жүргізілуде", + "analyzingDescription": "Қолданба кодының зардап шеккен мүмкіндікке жете алатыны тексерілуде.", + "failed": "Талдау сәтсіз аяқталды", + "failedTitle": "Талдау сәтсіз аяқталды", + "failedDescription": "Қауіпсіздік агенті талдауды аяқтай алмады.", + "extractionFailed": "Қарау қажет", + "extractionFailedTitle": "Қарау қажет", + "extractionFailedDescription": "Техникалық есепті құрылымдалған нәтижеге айналдыру мүмкін болмады.", + "exploitable": "Пайдалануға болатын", + "exploitableTitle": "Пайдалануға болатын", + "exploitableDescription": "Қолданба коды зардап шеккен мүмкіндікке жете алады.", + "notExploitable": "Қолжетімсіз", + "notExploitableTitle": "Қолжетімсіз", + "notExploitableDescription": "Бұл репозиторийде қолжетімді жол табылмады.", + "unknown": "Қарау қажет", + "unknownTitle": "Қарау қажет", + "unknownDescription": "Талдау осал мүмкіндіктің қолжетімділігін растай алмады.", + "safeToDismiss": "Болдырмау қауіпсіз", + "safeToDismissTitle": "Болдырмау қауіпсіз", + "safeToDismissDescription": "Сұрыптау мұны код қорын талдаусыз қауіпсіз болдыруға болатынын анықтады.", + "manualReview": "Қарау қажет", + "manualReviewTitle": "Қолмен қарау қажет", + "manualReviewDescription": "Сұрыптау бұл деректі қолмен қарауға белгіледі.", + "analysisRequired": "Талдау қажет", + "analysisRequiredTitle": "Код қорын талдау қажет", + "analysisRequiredDescription": "Сұрыптау жауап қабылдамас бұрын репозиторийді талдауды ұсынады.", + "completed": "Талданды", + "completedTitle": "Талданды", + "completedDescription": "Талдау нақты нәтиже тіркелмей аяқталды.", + "notAnalyzed": "Талданбады", + "notAnalyzedTitle": "Талданбады", + "notAnalyzedDescription": "Бұл дерек үшін код қорын талдау әлі жүргізілмеген." + }, + "deadline": { + "fixedBeforeDeadline": "Мерзімге дейін түзетілді", + "fixed": "Түзетілді", + "fixedOn": "{{date}} күні түзетілді", + "resolutionRecorded": "Шешім тіркелді", + "superseded": "Ауыстырылды", + "dismissed": "Болдырылды", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Мерзім белгіленбеген", + "noSlaDeadline": "SLA мерзімі жоқ", + "dueOn": "Мерзімі {{date}}", + "overdueNow": "Мерзімі өткен", + "overdue_one": "{{count}} күн кешіктірілді", + "overdue_other": "{{count}} күн кешіктірілді", + "dueToday": "Мерзімі бүгін", + "dueTomorrow": "Мерзімі ертең", + "dueInDays_one": "Мерзіміне {{count}} күн қалды", + "dueInDays_other": "Мерзіміне {{count}} күн қалды", + "overdue": "{{count}} күн кешіктірілді", + "dueInDays": "Мерзіміне {{count}} күн қалды" + }, + "remediationStatus": { + "cancellationRequested": "Бас тарту сұралды", + "notStarted": "Басталмаған", + "queued": "Кезекте", + "starting": "Басталуда", + "inProgress": "Орындалуда", + "draftPrOpened": "Draft PR ашылды", + "prOpened": "PR ашылды", + "blocked": "Бұғатталды", + "failed": "Сәтсіз аяқталды", + "noChangesNeeded": "Өзгерістер қажет емес", + "cancelled": "Тоқтатылды", + "originAutomaticPolicy": "Автоматты саясат", + "originIncludeExistingPolicy": "Бар саясатты қосу", + "originManual": "Қолмен", + "validationCheck": "Тексеру {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Қауіпсіздік дерегі енді жоқ.", + "approvalRequired": "Автотүзету мақұлдауды қажет етеді. Мақұлдау үшін түзетуді қолмен бастаңыз.", + "findingNotOpen": "Дерек енді ашық емес.", + "repoNotInScope": "Репозиторий Қауіпсіздік агенті үшін таңдалмаған.", + "analysisRequired": "Түзетуді бастамас бұрын код қорын талдауды жүргізіңіз.", + "sandboxAnalysisRequired": "Түзетуді бастамас бұрын код қорын талдауды жүргізіңіз.", + "staleAnalysis": "Дерек талдаудан кейін өзгерді. Түзетуді бастамас бұрын талдауды қайта жүргізіңіз.", + "notExploitable": "Талдау қолжетімді осал жол таппады. Автотүзету қолжетімсіз.", + "exploitabilityUnknown": "Талдау пайдалану мүмкіндігін растай алмады. Бір рет басу арқылы түзету алдында қолмен қарау қажет.", + "manualReviewRequired": "Талдау қолмен қарауды ұсынады, сондықтан бір рет басу арқылы түзету қолжетімсіз.", + "monitorRequired": "Талдау PR ашудың орнына бақылауды ұсынады.", + "triageOnly": "Тек сұрыптау аяқталды. Түзетуді бастамас бұрын код қорын талдауды жүргізіңіз.", + "actionNotConcrete": "Нақты тәуелділік патчы немесе ұсынылған түзету қолжетімсіз.", + "remediationActive": "Түзету әрекеті қазірдің өзінде белсенді.", + "prAlreadyOpened": "Түзету PR-і қазірдің өзінде ашық.", + "duplicateAnalysisResult": "Бұл талдау нәтижесі түзету жұмысын қазірдің өзінде жасады.", + "retryNotAllowed": "Бұл әрекет үшін қайталау қолжетімсіз.", + "securityAgentDisabled": "Қауіпсіздік агенті бұл иесі үшін өшірілген.", + "autoRemediationDisabled": "Автотүзету өшірілген. Қолмен түзету қауіпсіздік кедергілері өткенде әлі де бастала алады.", + "includeExistingDisabled": "Бар деректер автоматты түзетуден алынып тасталды.", + "belowThreshold": "Дерек автоматты ауырлық шегінен төмен. Қолмен түзету қауіпсіздік кедергілері өткенде әлі де бастала алады.", + "beforeEnablement": "Талдау Автотүзету қосылғанға дейін аяқталды. Қолмен түзету қауіпсіздік кедергілері өткенде әлі де бастала алады.", + "generic": "Бұл дерек үшін түзету қолжетімсіз." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index b940382384..921e82adcb 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -512,7 +512,9 @@ "pendingComment_other": "អត្ថាធិប្បាយរង់ចាំ", "submitCountOfTotal": "ដាក់ស្នើ {{displayFreshCount}} ក្នុងចំណោម {{displayTotalCount}} អត្ថាធិប្បាយ", "submitReview": "ដាក់ស្នើការពិនិត្យ", - "partialPostedMessage": "បានប្រកាស {{displayFreshCount}} អត្ថាធិប្បាយ។ {{displayStaleCount}} អត្ថាធិប្បាយចង្អុលទៅ commit ចាស់ ហើយនៅក្នុងជួររង់ចាំរបស់អ្នក។" + "partialPostedMessage": "បានប្រកាស {{displayFreshCount}} អត្ថាធិប្បាយ។ {{displayStaleCount}} អត្ថាធិប្បាយចង្អុលទៅ commit ចាស់ ហើយនៅក្នុងជួររង់ចាំរបស់អ្នក។", + "blockedRequestChanges": "បន្ថែមសេចក្តីសង្ខេប ឬយ៉ាងហោចណាស់អត្ថាធិប្បាយមួយ ដើម្បីស្នើសុំការផ្លាស់ប្តូរ។", + "blockedComment": "បន្ថែមសេចក្តីសង្ខេប ឬយ៉ាងហោចណាស់អត្ថាធិប្បាយមួយ ដើម្បីប្រកាសការពិនិត្យអត្ថាធិប្បាយ។" }, "reconnectNotice": { "title": "ការតភ្ជាប់ GitHub ផុតកំណត់", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "បរាជ័យក្នុងការធ្វើបច្ចុប្បន្នភាពអ្នកពិនិត្យ", - "configSaveFailed": "បរាជ័យក្នុងការរក្សាទុកការកំណត់រចនាសម្ព័ន្ធការពិនិត្យ" + "configSaveFailed": "បរាជ័យក្នុងការរក្សាទុកការកំណត់រចនាសម្ព័ន្ធការពិនិត្យ", + "status": { + "pending": "កំពុងរង់ចាំ", + "queued": "បានដាក់ក្នុងជួរ", + "running": "កំពុងដំណើរការ", + "completed": "បានបញ្ចប់", + "failed": "បានបរាជ័យ", + "cancelled": "បានលុបចោល", + "interrupted": "ត្រូវបានរំខាន" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "កំណត់ត្រាប្រភព", "source": "ប្រភព", "sourceId": "លេខសម្គាល់ប្រភព", - "viewAdvisory": "មើលសេចក្តីណែនាំនៅលើ GitHub" + "viewAdvisory": "មើលសេចក្តីណែនាំនៅលើ GitHub", + "statusSuperseded": "ត្រូវបានជំនួស", + "statusFixed": "បានជួសជុល", + "statusOpen": "បើក", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ការជួសជុលបានចាប់ផ្តើមរួចហើយ", + "reasonNoBandwidth": "គ្មានសមត្ថភាពដំណើរការ", + "reasonTolerableRisk": "ហានិភ័យអាចទទួលយកបាន", + "reasonInaccurate": "ការរកឃើញមិនត្រឹមត្រូវ", + "reasonNotUsed": "កូដងាយរងគ្រោះមិនត្រូវបានប្រើ", + "reasonAfterReview": "បន្ទាប់ពីការពិនិត្យ" }, "settingsOverview": { "title": "ការកំណត់", @@ -1805,6 +1826,107 @@ "syncInProgress": "ការធ្វើសមកាលកម្មសន្តិសុខកំពុងដំណើរការរួចហើយ។ សូមព្យាយាមម្តងទៀត។", "dismissalInProgress": "ការបដិសេធនេះកំពុងដំណើរការរួចហើយ។ សូមព្យាយាមម្តងទៀត។", "couldNotReadPendingSyncs": "មិនអាចអានការធ្វើសមកាលកម្មដែលកំពុងរង់ចាំបានទេ។ ព្យាយាមម្តងទៀត។" + }, + "analysisState": { + "queued": "ការវិភាគត្រូវបានដាក់ក្នុងជួរ", + "queuedTitle": "ការវិភាគត្រូវបានដាក់ក្នុងជួរ", + "queuedDescription": "កំពុងរង់ចាំសមត្ថភាពវិភាគទំនេរ។", + "analyzing": "កំពុងវិភាគ", + "analyzingTitle": "កំពុងវិភាគ", + "analyzingDescription": "កំពុងពិនិត្យថាតើកូដកម្មវិធីអាចឈានដល់មុខងារដែលរងផលប៉ះពាល់ដែរឬទេ។", + "failed": "ការវិភាគបរាជ័យ", + "failedTitle": "ការវិភាគបរាជ័យ", + "failedDescription": "Security Agent មិនអាចបញ្ចប់ការវិភាគបានទេ។", + "extractionFailed": "ត្រូវការការត្រួតពិនិត្យ", + "extractionFailedTitle": "ត្រូវការការត្រួតពិនិត្យ", + "extractionFailedDescription": "របាយការណ៍បច្ចេកទេសមិនអាចបំប្លែងទៅជាលទ្ធផលតាមរចនាសម្ព័ន្ធបានទេ។", + "exploitable": "អាចកេងប្រវ័ញ្ចបាន", + "exploitableTitle": "អាចកេងប្រវ័ញ្ចបាន", + "exploitableDescription": "កូដកម្មវិធីអាចឈានដល់មុខងារដែលរងផលប៉ះពាល់។", + "notExploitable": "មិនអាចឈានដល់បាន", + "notExploitableTitle": "មិនអាចឈានដល់បាន", + "notExploitableDescription": "រកមិនឃើញផ្លូវណាដែលអាចឈានដល់នៅក្នុងឃ្លាំងកូដនេះទេ។", + "unknown": "ត្រូវការការត្រួតពិនិត្យ", + "unknownTitle": "ត្រូវការការត្រួតពិនិត្យ", + "unknownDescription": "ការវិភាគមិនអាចបញ្ជាក់ថាតើមុខងារដែលងាយរងគ្រោះអាចឈានដល់បានដែរឬទេ។", + "safeToDismiss": "មានសុវត្ថិភាពក្នុងការបដិសេធ", + "safeToDismissTitle": "មានសុវត្ថិភាពក្នុងការបដិសេធ", + "safeToDismissDescription": "ការតម្រៀបបានកំណត់ថានេះអាចត្រូវបានបដិសេធដោយសុវត្ថិភាព ដោយមិនចាំបាច់វិភាគកូដមូលដ្ឋាន។", + "manualReview": "ត្រូវការការត្រួតពិនិត្យ", + "manualReviewTitle": "ត្រូវការការត្រួតពិនិត្យដោយដៃ", + "manualReviewDescription": "ការតម្រៀបបានគូសសម្គាល់ការរកឃើញនេះសម្រាប់ការត្រួតពិនិត្យដោយដៃ។", + "analysisRequired": "ទាមទារការវិភាគ", + "analysisRequiredTitle": "ទាមទារការវិភាគកូដមូលដ្ឋាន", + "analysisRequiredDescription": "ការតម្រៀបណែនាំឱ្យវិភាគឃ្លាំងកូដ មុនពេលសម្រេចលើការឆ្លើយតប។", + "completed": "បានវិភាគ", + "completedTitle": "បានវិភាគ", + "completedDescription": "ការវិភាគបានបញ្ចប់ដោយគ្មានលទ្ធផលជាក់លាក់ណាមួយត្រូវបានកត់ត្រា។", + "notAnalyzed": "មិនបានវិភាគ", + "notAnalyzedTitle": "មិនបានវិភាគ", + "notAnalyzedDescription": "ការវិភាគកូដមូលដ្ឋានមិនទាន់ត្រូវបានដំណើរការសម្រាប់ការរកឃើញនេះនៅឡើយទេ។" + }, + "deadline": { + "fixedBeforeDeadline": "បានជួសជុលមុនថ្ងៃកំណត់", + "fixed": "បានជួសជុល", + "fixedOn": "បានជួសជុលនៅ {{date}}", + "resolutionRecorded": "បានកត់ត្រាដំណោះស្រាយ", + "superseded": "ត្រូវបានជំនួស", + "dismissed": "បានបដិសេធ", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "មិនទាន់កំណត់ថ្ងៃកំណត់", + "noSlaDeadline": "គ្មានថ្ងៃកំណត់ SLA", + "dueOn": "កំណត់នៅ {{date}}", + "overdueNow": "ហួសកំណត់", + "overdue_other": "ហួសកំណត់ {{count}} ថ្ងៃ", + "dueToday": "កំណត់នៅថ្ងៃនេះ", + "dueTomorrow": "កំណត់នៅថ្ងៃស្អែក", + "dueInDays_other": "កំណត់ក្នុងរយៈពេល {{count}} ថ្ងៃ", + "overdue": "ហួសកំណត់ {{count}} ថ្ងៃ", + "overdue_one": "ហួសកំណត់ {{count}} ថ្ងៃ", + "dueInDays": "កំណត់ក្នុងរយៈពេល {{count}} ថ្ងៃ", + "dueInDays_one": "កំណត់ក្នុងរយៈពេល {{count}} ថ្ងៃ" + }, + "remediationStatus": { + "cancellationRequested": "បានស្នើសុំការលុបចោល", + "notStarted": "មិនទាន់ចាប់ផ្តើម", + "queued": "បានដាក់ក្នុងជួរ", + "starting": "កំពុងចាប់ផ្តើម", + "inProgress": "កំពុងដំណើរការ", + "draftPrOpened": "បានបើក PR ព្រាង", + "prOpened": "បានបើក PR", + "blocked": "ត្រូវបានរាំងខ្ទប់", + "failed": "បានបរាជ័យ", + "noChangesNeeded": "មិនចាំបាច់មានការផ្លាស់ប្តូរ", + "cancelled": "បានលុបចោល", + "originAutomaticPolicy": "គោលការណ៍ស្វ័យប្រវត្តិ", + "originIncludeExistingPolicy": "គោលការណ៍រួមបញ្ចូលដែលមានស្រាប់", + "originManual": "ដោយដៃ", + "validationCheck": "ការត្រួតពិនិត្យសុពលភាព {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ការរកឃើញសន្តិសុខលែងមានទៀតហើយ។", + "approvalRequired": "ការកែតម្រូវដោយស្វ័យប្រវត្តិតម្រូវឱ្យមានការអនុម័ត។ ចាប់ផ្តើមការដោះស្រាយដោយដៃ ដើម្បីអនុម័តវា។", + "findingNotOpen": "ការរកឃើញមិនបើកទៀតទេ។", + "repoNotInScope": "ឃ្លាំងកូដមិនត្រូវបានជ្រើសរើសសម្រាប់ Security Agent ទេ។", + "analysisRequired": "ដំណើរការការវិភាគកូដមូលដ្ឋាន មុនពេលចាប់ផ្តើមការដោះស្រាយ។", + "sandboxAnalysisRequired": "ដំណើរការការវិភាគកូដមូលដ្ឋាន មុនពេលចាប់ផ្តើមការដោះស្រាយ។", + "staleAnalysis": "ការរកឃើញបានផ្លាស់ប្តូរបន្ទាប់ពីការវិភាគ។ ដំណើរការការវិភាគឡើងវិញ មុនពេលចាប់ផ្តើមការដោះស្រាយ។", + "notExploitable": "ការវិភាគរកមិនឃើញផ្លូវងាយរងគ្រោះដែលអាចឈានដល់ទេ។ ការកែតម្រូវដោយស្វ័យប្រវត្តិមិនអាចប្រើបានទេ។", + "exploitabilityUnknown": "ការវិភាគមិនអាចបញ្ជាក់លទ្ធភាពកេងប្រវ័ញ្ចបានទេ។ តម្រូវឱ្យមានការត្រួតពិនិត្យដោយដៃ មុនពេលការដោះស្រាយដោយចុចម្តង។", + "manualReviewRequired": "ការវិភាគណែនាំឱ្យធ្វើការត្រួតពិនិត្យដោយដៃ ដូច្នេះការដោះស្រាយដោយចុចម្តងមិនអាចប្រើបានទេ។", + "monitorRequired": "ការវិភាគណែនាំឱ្យតាមដាន ជំនួសឱ្យការបើក PR។", + "triageOnly": "មានតែការតម្រៀបប៉ុណ្ណោះដែលបានបញ្ចប់។ ដំណើរការការវិភាគកូដមូលដ្ឋាន មុនពេលចាប់ផ្តើមការដោះស្រាយ។", + "actionNotConcrete": "គ្មានការជួសជុល dependency ជាក់លាក់ ឬការជួសជុលដែលបានស្នើទេ។", + "remediationActive": "ការព្យាយាមដោះស្រាយកំពុងដំណើរការរួចហើយ។", + "prAlreadyOpened": "PR នៃការដោះស្រាយត្រូវបានបើករួចហើយ។", + "duplicateAnalysisResult": "លទ្ធផលនៃការវិភាគនេះបានបង្កើតការងារដោះស្រាយរួចហើយ។", + "retryNotAllowed": "ការព្យាយាមម្តងទៀតមិនអាចប្រើបានសម្រាប់ការប៉ុនប៉ងនេះទេ។", + "securityAgentDisabled": "Security Agent ត្រូវបានបិទសម្រាប់ម្ចាស់នេះ។", + "autoRemediationDisabled": "ការកែតម្រូវដោយស្វ័យប្រវត្តិត្រូវបានបិទ។ ការដោះស្រាយដោយដៃនៅតែអាចចាប់ផ្តើមបាន នៅពេលដែលច្រកសុវត្ថិភាពឆ្លងកាត់។", + "includeExistingDisabled": "ការរកឃើញដែលមានស្រាប់ត្រូវបានដកចេញពីការកែតម្រូវដោយស្វ័យប្រវត្តិ។", + "belowThreshold": "ការរកឃើញទាបជាងកម្រិតភាពធ្ងន់ធ្ងរដោយស្វ័យប្រវត្តិ។ ការដោះស្រាយដោយដៃនៅតែអាចចាប់ផ្តើមបាន នៅពេលដែលច្រកសុវត្ថិភាពឆ្លងកាត់។", + "beforeEnablement": "ការវិភាគបានបញ្ចប់ មុនពេលការកែតម្រូវដោយស្វ័យប្រវត្តិត្រូវបានបើក។ ការដោះស្រាយដោយដៃនៅតែអាចចាប់ផ្តើមបាន នៅពេលដែលច្រកសុវត្ថិភាពឆ្លងកាត់។", + "generic": "ការដោះស្រាយមិនអាចប្រើបានសម្រាប់ការរកឃើញនេះ។" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index e9b4c1af6f..ef3f6363d5 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -512,7 +512,9 @@ "pendingComment_other": "ಬಾಕಿ ಕಾಮೆಂಟ್‌ಗಳು", "submitCountOfTotal": "{{displayTotalCount}} ರಲ್ಲಿ {{displayFreshCount}} ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಸಲ್ಲಿಸಿ", "submitReview": "ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಿ", - "partialPostedMessage": "{{displayFreshCount}} ಕಾಮೆಂಟ್(ಗಳನ್ನು) ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ. {{displayStaleCount}} ಕಾಮೆಂಟ್(ಗಳು) ಹಳೆಯ ಕಮಿಟ್‌ನತ್ತ ತೋರಿಸುತ್ತವೆ ಮತ್ತು ನಿಮ್ಮ ಕ್ಯೂನಲ್ಲಿ ಉಳಿದಿವೆ." + "partialPostedMessage": "{{displayFreshCount}} ಕಾಮೆಂಟ್(ಗಳನ್ನು) ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ. {{displayStaleCount}} ಕಾಮೆಂಟ್(ಗಳು) ಹಳೆಯ ಕಮಿಟ್‌ನತ್ತ ತೋರಿಸುತ್ತವೆ ಮತ್ತು ನಿಮ್ಮ ಕ್ಯೂನಲ್ಲಿ ಉಳಿದಿವೆ.", + "blockedRequestChanges": "ಬದಲಾವಣೆಗಳನ್ನು ವಿನಂತಿಸಲು ಸಾರಾಂಶ ಅಥವಾ ಕನಿಷ್ಠ ಒಂದು ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ.", + "blockedComment": "ಕಾಮೆಂಟ್ ವಿಮರ್ಶೆಯನ್ನು ಪೋಸ್ಟ್ ಮಾಡಲು ಸಾರಾಂಶ ಅಥವಾ ಕನಿಷ್ಠ ಒಂದು ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ." }, "reconnectNotice": { "title": "GitHub ಸಂಪರ್ಕ ಅವಧಿ ಮೀರಿದೆ", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "ರಿವ್ಯೂಯರ್ ಅನ್ನು ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ", - "configSaveFailed": "ವಿಮರ್ಶೆ ಕಾನ್ಫಿಗ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ" + "configSaveFailed": "ವಿಮರ್ಶೆ ಕಾನ್ಫಿಗ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ", + "status": { + "pending": "ಬಾಕಿ ಇದೆ", + "queued": "ಸರದಿಯಲ್ಲಿದೆ", + "running": "ಚಾಲನೆಯಲ್ಲಿದೆ", + "completed": "ಪೂರ್ಣಗೊಂಡಿದೆ", + "failed": "ವಿಫಲವಾಗಿದೆ", + "cancelled": "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ", + "interrupted": "ಅಡಚಣೆಯಾಗಿದೆ" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "ಮೂಲ ದಾಖಲೆ", "source": "ಮೂಲ", "sourceId": "ಮೂಲ ID", - "viewAdvisory": "GitHub ನಲ್ಲಿ ಸಲಹೆಯನ್ನು ನೋಡಿ" + "viewAdvisory": "GitHub ನಲ್ಲಿ ಸಲಹೆಯನ್ನು ನೋಡಿ", + "statusSuperseded": "ಬದಲಿಸಲಾಗಿದೆ", + "statusFixed": "ಸರಿಪಡಿಸಲಾಗಿದೆ", + "statusOpen": "ತೆರೆದಿದೆ", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ಪರಿಹಾರ ಈಗಾಗಲೇ ಪ್ರಾರಂಭವಾಗಿದೆ", + "reasonNoBandwidth": "ಯಾವುದೇ ಸಾಮರ್ಥ್ಯ ಲಭ್ಯವಿಲ್ಲ", + "reasonTolerableRisk": "ಅಪಾಯವು ಸಹಿಸಬಹುದಾದದ್ದು", + "reasonInaccurate": "ಸಂಶೋಧನೆಯು ನಿಖರವಾಗಿಲ್ಲ", + "reasonNotUsed": "ದುರ್ಬಲ ಕೋಡ್ ಅನ್ನು ಬಳಸಲಾಗಿಲ್ಲ", + "reasonAfterReview": "ಪರಿಶೀಲನೆಯ ನಂತರ" }, "settingsOverview": { "title": "ಸೆಟ್ಟಿಂಗ್ಗಳು", @@ -1805,6 +1826,107 @@ "syncInProgress": "ಭದ್ರತಾ ಸಿಂಕ್ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "dismissalInProgress": "ಈ ತೆಗೆದುಹಾಕುವಿಕೆ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "couldNotReadPendingSyncs": "ಬಾಕಿ ಇರುವ ಸಿಂಕ್‌ಗಳನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." + }, + "analysisState": { + "queued": "ವಿಶ್ಲೇಷಣೆ ಸರದಿಯಲ್ಲಿದೆ", + "queuedTitle": "ವಿಶ್ಲೇಷಣೆ ಸರದಿಯಲ್ಲಿದೆ", + "queuedDescription": "ವಿಶ್ಲೇಷಣಾ ಸಾಮರ್ಥ್ಯ ಲಭ್ಯವಾಗುವವರೆಗೆ ಕಾಯಲಾಗುತ್ತಿದೆ.", + "analyzing": "ವಿಶ್ಲೇಷಿಸಲಾಗುತ್ತಿದೆ", + "analyzingTitle": "ವಿಶ್ಲೇಷಿಸಲಾಗುತ್ತಿದೆ", + "analyzingDescription": "ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಪೀಡಿತ ವೈಶಿಷ್ಟ್ಯವನ್ನು ತಲುಪಬಹುದೇ ಎಂದು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ.", + "failed": "ವಿಶ್ಲೇಷಣೆ ವಿಫಲವಾಗಿದೆ", + "failedTitle": "ವಿಶ್ಲೇಷಣೆ ವಿಫಲವಾಗಿದೆ", + "failedDescription": "Security Agent ವಿಶ್ಲೇಷಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "extractionFailed": "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ", + "extractionFailedTitle": "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ", + "extractionFailedDescription": "ತಾಂತ್ರಿಕ ವರದಿಯನ್ನು ರಚನಾತ್ಮಕ ಫಲಿತಾಂಶವಾಗಿ ಪರಿವರ್ತಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "exploitable": "ದುರ್ಬಳಕೆ ಮಾಡಬಹುದಾದ", + "exploitableTitle": "ದುರ್ಬಳಕೆ ಮಾಡಬಹುದಾದ", + "exploitableDescription": "ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಪೀಡಿತ ವೈಶಿಷ್ಟ್ಯವನ್ನು ತಲುಪಬಹುದು.", + "notExploitable": "ತಲುಪಲಾಗದ", + "notExploitableTitle": "ತಲುಪಲಾಗದ", + "notExploitableDescription": "ಈ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ತಲುಪಬಹುದಾದ ಮಾರ್ಗ ಕಂಡುಬಂದಿಲ್ಲ.", + "unknown": "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ", + "unknownTitle": "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ", + "unknownDescription": "ದುರ್ಬಲ ವೈಶಿಷ್ಟ್ಯವು ತಲುಪಬಹುದೇ ಎಂದು ವಿಶ್ಲೇಷಣೆ ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "safeToDismiss": "ತೆಗೆದುಹಾಕಲು ಸುರಕ್ಷಿತ", + "safeToDismissTitle": "ತೆಗೆದುಹಾಕಲು ಸುರಕ್ಷಿತ", + "safeToDismissDescription": "ಕೋಡ್ಬೇಸ್ ವಿಶ್ಲೇಷಣೆ ಇಲ್ಲದೆಯೇ ಇದನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ತೆಗೆದುಹಾಕಬಹುದು ಎಂದು ಟ್ರಯಾಜ್ ನಿರ್ಧರಿಸಿದೆ.", + "manualReview": "ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ", + "manualReviewTitle": "ಹಸ್ತಚಾಲಿತ ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ", + "manualReviewDescription": "ಟ್ರಯಾಜ್ ಈ ಸಂಶೋಧನೆಯನ್ನು ಹಸ್ತಚಾಲಿತ ಪರಿಶೀಲನೆಗಾಗಿ ಗುರುತಿಸಿದೆ.", + "analysisRequired": "ವಿಶ್ಲೇಷಣೆ ಅಗತ್ಯವಿದೆ", + "analysisRequiredTitle": "ಕೋಡ್ಬೇಸ್ ವಿಶ್ಲೇಷಣೆ ಅಗತ್ಯವಿದೆ", + "analysisRequiredDescription": "ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿರ್ಧರಿಸುವ ಮೊದಲು ರೆಪೊಸಿಟರಿಯನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಟ್ರಯಾಜ್ ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.", + "completed": "ವಿಶ್ಲೇಷಿಸಲಾಗಿದೆ", + "completedTitle": "ವಿಶ್ಲೇಷಿಸಲಾಗಿದೆ", + "completedDescription": "ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಫಲಿತಾಂಶವನ್ನು ದಾಖಲಿಸದೆ ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ.", + "notAnalyzed": "ವಿಶ್ಲೇಷಿಸಲಾಗಿಲ್ಲ", + "notAnalyzedTitle": "ವಿಶ್ಲೇಷಿಸಲಾಗಿಲ್ಲ", + "notAnalyzedDescription": "ಈ ಸಂಶೋಧನೆಗೆ ಕೋಡ್ಬೇಸ್ ವಿಶ್ಲೇಷಣೆ ಇನ್ನೂ ಚಲಾಯಿಸಿಲ್ಲ." + }, + "deadline": { + "fixedBeforeDeadline": "ಗಡುವಿಗೆ ಮೊದಲೇ ಸರಿಪಡಿಸಲಾಗಿದೆ", + "fixed": "ಸರಿಪಡಿಸಲಾಗಿದೆ", + "fixedOn": "{{date}} ರಂದು ಸರಿಪಡಿಸಲಾಗಿದೆ", + "resolutionRecorded": "ಪರಿಹಾರ ದಾಖಲಿಸಲಾಗಿದೆ", + "superseded": "ಬದಲಿಸಲಾಗಿದೆ", + "dismissed": "ತೆಗೆದುಹಾಕಲಾಗಿದೆ", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "ಗಡುವು ನಿಗದಿಯಾಗಿಲ್ಲ", + "noSlaDeadline": "SLA ಗಡುವು ನಿಗದಿಯಾಗಿಲ್ಲ", + "dueOn": "{{date}} ರಂದು ಗಡುವು", + "overdueNow": "ವಿಳಂಬವಾಗಿದೆ", + "overdue_one": "{{count}} ದಿನ ವಿಳಂಬ", + "overdue_other": "{{count}} ದಿನಗಳು ವಿಳಂಬ", + "dueToday": "ಇಂದು ಗಡುವು", + "dueTomorrow": "ನಾಳೆ ಗಡುವು", + "dueInDays_one": "{{count}} ದಿನದಲ್ಲಿ ಗಡುವು", + "dueInDays_other": "{{count}} ದಿನಗಳಲ್ಲಿ ಗಡುವು", + "overdue": "{{count}} ದಿನಗಳು ವಿಳಂಬ", + "dueInDays": "{{count}} ದಿನಗಳಲ್ಲಿ ಗಡುವು" + }, + "remediationStatus": { + "cancellationRequested": "ರದ್ದತಿಯನ್ನು ವಿನಂತಿಸಲಾಗಿದೆ", + "notStarted": "ಪ್ರಾರಂಭಿಸಿಲ್ಲ", + "queued": "ಸರದಿಯಲ್ಲಿದೆ", + "starting": "ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ", + "inProgress": "ಪ್ರಗತಿಯಲ್ಲಿದೆ", + "draftPrOpened": "ಡ್ರಾಫ್ಟ್ PR ತೆರೆಯಲಾಗಿದೆ", + "prOpened": "PR ತೆರೆಯಲಾಗಿದೆ", + "blocked": "ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ", + "failed": "ವಿಫಲವಾಗಿದೆ", + "noChangesNeeded": "ಯಾವುದೇ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿಲ್ಲ", + "cancelled": "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ", + "originAutomaticPolicy": "ಸ್ವಯಂಚಾಲಿತ ನೀತಿ", + "originIncludeExistingPolicy": "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಶೋಧನೆಗಳನ್ನು ಸೇರಿಸುವ ನೀತಿ", + "originManual": "ಹಸ್ತಚಾಲಿತ", + "validationCheck": "ಮೌಲ್ಯೀಕರಣ ಪರಿಶೀಲನೆ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ಭದ್ರತಾ ಸಂಶೋಧನೆ ಇನ್ನು ಮುಂದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ.", + "approvalRequired": "ಸ್ವಯಂ ಪರಿಹಾರಕ್ಕೆ ಅನುಮೋದನೆ ಅಗತ್ಯವಿದೆ. ಅದನ್ನು ಅನುಮೋದಿಸಲು ಪರಿಹಾರವನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಪ್ರಾರಂಭಿಸಿ.", + "findingNotOpen": "ಸಂಶೋಧನೆಯು ಇನ್ನು ಮುಂದೆ ತೆರೆದಿಲ್ಲ.", + "repoNotInScope": "Security Agent ಗಾಗಿ ರೆಪೊಸಿಟರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿಲ್ಲ.", + "analysisRequired": "ಪರಿಹಾರ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಕೋಡ್ಬೇಸ್ ವಿಶ್ಲೇಷಣೆ ಚಲಾಯಿಸಿ.", + "sandboxAnalysisRequired": "ಪರಿಹಾರ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಕೋಡ್ಬೇಸ್ ವಿಶ್ಲೇಷಣೆ ಚಲಾಯಿಸಿ.", + "staleAnalysis": "ವಿಶ್ಲೇಷಣೆಯ ನಂತರ ಸಂಶೋಧನೆ ಬದಲಾಗಿದೆ. ಪರಿಹಾರ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ವಿಶ್ಲೇಷಣೆ ಮತ್ತೆ ಚಲಾಯಿಸಿ.", + "notExploitable": "ವಿಶ್ಲೇಷಣೆಯಲ್ಲಿ ಯಾವುದೇ ತಲುಪಬಹುದಾದ ದುರ್ಬಲ ಮಾರ್ಗ ಕಂಡುಬಂದಿಲ್ಲ. ಸ್ವಯಂ ಪರಿಹಾರ ಲಭ್ಯವಿಲ್ಲ.", + "exploitabilityUnknown": "ವಿಶ್ಲೇಷಣೆಯು ದುರ್ಬಳಕೆಯ ಸಾಧ್ಯತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಒಂದು-ಕ್ಲಿಕ್ ಪರಿಹಾರದ ಮೊದಲು ಹಸ್ತಚಾಲಿತ ಪರಿಶೀಲನೆ ಅಗತ್ಯವಿದೆ.", + "manualReviewRequired": "ವಿಶ್ಲೇಷಣೆಯು ಹಸ್ತಚಾಲಿತ ಪರಿಶೀಲನೆಯನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಒಂದು-ಕ್ಲಿಕ್ ಪರಿಹಾರ ಲಭ್ಯವಿಲ್ಲ.", + "monitorRequired": "PR ತೆರೆಯುವ ಬದಲು ವಿಶ್ಲೇಷಣೆಯು ಮೇಲ್ವಿಚಾರಣೆಯನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.", + "triageOnly": "ಕೇವಲ ಟ್ರಯಾಜ್ ಪೂರ್ಣಗೊಂಡಿದೆ. ಪರಿಹಾರ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಕೋಡ್ಬೇಸ್ ವಿಶ್ಲೇಷಣೆ ಚಲಾಯಿಸಿ.", + "actionNotConcrete": "ಯಾವುದೇ ಸ್ಪಷ್ಟ ಅವಲಂಬನೆ ಪ್ಯಾಚ್ ಅಥವಾ ಸೂಚಿಸಿದ ಪರಿಹಾರ ಲಭ್ಯವಿಲ್ಲ.", + "remediationActive": "ಪರಿಹಾರ ಪ್ರಯತ್ನ ಈಗಾಗಲೇ ಸಕ್ರಿಯವಾಗಿದೆ.", + "prAlreadyOpened": "ಪರಿಹಾರ PR ಈಗಾಗಲೇ ತೆರೆದಿದೆ.", + "duplicateAnalysisResult": "ಈ ವಿಶ್ಲೇಷಣಾ ಫಲಿತಾಂಶವು ಈಗಾಗಲೇ ಪರಿಹಾರ ಕಾರ್ಯವನ್ನು ಉತ್ಪಾದಿಸಿದೆ.", + "retryNotAllowed": "ಈ ಪ್ರಯತ್ನಕ್ಕೆ ಮರುಪ್ರಯತ್ನ ಲಭ್ಯವಿಲ್ಲ.", + "securityAgentDisabled": "ಈ ಮಾಲೀಕರಿಗೆ Security Agent ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.", + "autoRemediationDisabled": "ಸ್ವಯಂ ಪರಿಹಾರ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಸುರಕ್ಷತಾ ಗೇಟ್ಗಳು ಪಾಸ್ ಆದಾಗ ಹಸ್ತಚಾಲಿತ ಪರಿಹಾರ ಇನ್ನೂ ಪ್ರಾರಂಭವಾಗಬಹುದು.", + "includeExistingDisabled": "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಶೋಧನೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತ ಪರಿಹಾರದಿಂದ ಹೊರಗಿಡಲಾಗಿದೆ.", + "belowThreshold": "ಸಂಶೋಧನೆಯು ಸ್ವಯಂಚಾಲಿತ ತೀವ್ರತೆ ಮಿತಿಗಿಂತ ಕಡಿಮೆಯಾಗಿದೆ. ಸುರಕ್ಷತಾ ಗೇಟ್ಗಳು ಪಾಸ್ ಆದಾಗ ಹಸ್ತಚಾಲಿತ ಪರಿಹಾರ ಇನ್ನೂ ಪ್ರಾರಂಭವಾಗಬಹುದು.", + "beforeEnablement": "ಸ್ವಯಂ ಪರಿಹಾರವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲೇ ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ. ಸುರಕ್ಷತಾ ಗೇಟ್ಗಳು ಪಾಸ್ ಆದಾಗ ಹಸ್ತಚಾಲಿತ ಪರಿಹಾರ ಇನ್ನೂ ಪ್ರಾರಂಭವಾಗಬಹುದು.", + "generic": "ಈ ಸಂಶೋಧನೆಗೆ ಪರಿಹಾರ ಲಭ್ಯವಿಲ್ಲ." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index fe8350417c..b7f2f61cc4 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -939,7 +939,16 @@ "set": "설정" }, "updateFailed": "리뷰어를 업데이트하지 못했습니다", - "configSaveFailed": "리뷰 구성을 저장하지 못했습니다" + "configSaveFailed": "리뷰 구성을 저장하지 못했습니다", + "status": { + "pending": "보류 중", + "queued": "대기 중", + "running": "실행 중", + "completed": "완료됨", + "failed": "실패", + "cancelled": "취소됨", + "interrupted": "중단됨" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "알 수 없음", "updated": "업데이트됨", "viewAdvisory": "GitHub에서 권고 보기", - "vulnerableVersions": "취약한 버전" + "vulnerableVersions": "취약한 버전", + "statusSuperseded": "대체됨", + "statusFixed": "수정됨", + "statusOpen": "열림", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "수정이 이미 시작되었습니다", + "reasonNoBandwidth": "여유가 없습니다", + "reasonTolerableRisk": "위험이 감내할 수준입니다", + "reasonInaccurate": "발견 사항이 부정확합니다", + "reasonNotUsed": "취약한 코드가 사용되지 않습니다", + "reasonAfterReview": "검토 후" }, "findingList": { "clearFilters": "필터 지우기", @@ -1368,6 +1387,107 @@ "syncInProgress": "보안 동기화가 이미 진행 중입니다. 다시 시도하세요.", "dismissalInProgress": "이 해제 작업이 이미 진행 중입니다. 다시 시도하세요.", "couldNotReadPendingSyncs": "대기 중인 동기화를 읽을 수 없습니다. 다시 시도하세요." + }, + "analysisState": { + "queued": "분석 대기 중", + "queuedTitle": "분석 대기 중", + "queuedDescription": "분석 용량이 확보될 때까지 기다리는 중입니다.", + "analyzing": "분석 중", + "analyzingTitle": "분석 중", + "analyzingDescription": "애플리케이션 코드가 영향을 받는 기능에 도달할 수 있는지 확인 중입니다.", + "failed": "분석 실패", + "failedTitle": "분석 실패", + "failedDescription": "Security Agent가 분석을 완료하지 못했습니다.", + "extractionFailed": "검토 필요", + "extractionFailedTitle": "검토 필요", + "extractionFailedDescription": "기술 보고서를 구조화된 결과로 변환할 수 없습니다.", + "exploitable": "악용 가능", + "exploitableTitle": "악용 가능", + "exploitableDescription": "애플리케이션 코드가 영향을 받는 기능에 도달할 수 있습니다.", + "notExploitable": "도달 불가", + "notExploitableTitle": "도달 불가", + "notExploitableDescription": "이 저장소에서 도달 가능한 경로를 찾지 못했습니다.", + "unknown": "검토 필요", + "unknownTitle": "검토 필요", + "unknownDescription": "분석에서 취약 기능에 도달할 수 있는지 확인하지 못했습니다.", + "safeToDismiss": "해제 가능", + "safeToDismissTitle": "해제 가능", + "safeToDismissDescription": "분류에서 코드베이스 분석 없이 안전하게 해제할 수 있다고 판단했습니다.", + "manualReview": "검토 필요", + "manualReviewTitle": "수동 검토 필요", + "manualReviewDescription": "분류에서 이 발견 사항을 수동 검토로 표시했습니다.", + "analysisRequired": "분석 필요", + "analysisRequiredTitle": "코드베이스 분석 필요", + "analysisRequiredDescription": "분류에서는 응답을 결정하기 전에 저장소를 분석할 것을 권장합니다.", + "completed": "분석됨", + "completedTitle": "분석됨", + "completedDescription": "특정 결과를 기록하지 않고 분석이 완료되었습니다.", + "notAnalyzed": "분석 안 됨", + "notAnalyzedTitle": "분석 안 됨", + "notAnalyzedDescription": "이 발견 사항에 대해 코드베이스 분석이 아직 실행되지 않았습니다." + }, + "deadline": { + "fixedBeforeDeadline": "마감일 전에 수정됨", + "fixed": "수정됨", + "fixedOn": "{{date}} 수정됨", + "resolutionRecorded": "해결 기록됨", + "superseded": "대체됨", + "dismissed": "해제됨", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "마감일 미설정", + "noSlaDeadline": "SLA 마감일 미지정", + "dueOn": "{{date}} 마감", + "overdueNow": "기한 초과", + "overdue_other": "{{count}}일 기한 초과", + "dueToday": "오늘 마감", + "dueTomorrow": "내일 마감", + "dueInDays_other": "{{count}}일 후 마감", + "overdue": "{{count}}일 기한 초과", + "overdue_one": "{{count}}일 기한 초과", + "dueInDays": "{{count}}일 후 마감", + "dueInDays_one": "{{count}}일 후 마감" + }, + "remediationStatus": { + "cancellationRequested": "취소 요청됨", + "notStarted": "시작 안 함", + "queued": "대기 중", + "starting": "시작 중", + "inProgress": "진행 중", + "draftPrOpened": "초안 PR 열림", + "prOpened": "PR 열림", + "blocked": "차단됨", + "failed": "실패", + "noChangesNeeded": "변경 필요 없음", + "cancelled": "취소됨", + "originAutomaticPolicy": "자동 정책", + "originIncludeExistingPolicy": "기존 발견 사항 포함 정책", + "originManual": "수동", + "validationCheck": "검증 확인 {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "보안 발견 사항이 더 이상 존재하지 않습니다.", + "approvalRequired": "자동 수정에는 승인이 필요합니다. 승인하려면 수정을 수동으로 시작하세요.", + "findingNotOpen": "발견 사항이 더 이상 열려 있지 않습니다.", + "repoNotInScope": "Security Agent에 저장소가 선택되지 않았습니다.", + "analysisRequired": "수정을 시작하기 전에 코드베이스 분석을 실행하세요.", + "sandboxAnalysisRequired": "수정을 시작하기 전에 코드베이스 분석을 실행하세요.", + "staleAnalysis": "분석 후 발견 사항이 변경되었습니다. 수정을 시작하기 전에 분석을 다시 실행하세요.", + "notExploitable": "분석에서 도달 가능한 취약 경로를 찾지 못했습니다. 자동 수정을 사용할 수 없습니다.", + "exploitabilityUnknown": "분석에서 악용 가능성을 확인할 수 없습니다. 원클릭 수정 전에 수동 검토가 필요합니다.", + "manualReviewRequired": "분석에서 수동 검토를 권장하므로 원클릭 수정을 사용할 수 없습니다.", + "monitorRequired": "분석에서 PR을 여는 대신 모니터링을 권장합니다.", + "triageOnly": "분류만 완료되었습니다. 수정을 시작하기 전에 코드베이스 분석을 실행하세요.", + "actionNotConcrete": "구체적인 종속성 패치나 제안된 수정이 없습니다.", + "remediationActive": "수정 시도가 이미 진행 중입니다.", + "prAlreadyOpened": "수정 PR이 이미 열려 있습니다.", + "duplicateAnalysisResult": "이 분석 결과는 이미 수정 작업을 생성했습니다.", + "retryNotAllowed": "이 시도에는 다시 시도할 수 없습니다.", + "securityAgentDisabled": "이 소유자에게는 Security Agent가 비활성화되어 있습니다.", + "autoRemediationDisabled": "자동 수정이 비활성화되어 있습니다. 안전 검사를 통과하면 수동 수정을 시작할 수 있습니다.", + "includeExistingDisabled": "기존 발견 사항은 자동 수정에서 제외됩니다.", + "belowThreshold": "발견 사항이 자동 심각도 기준보다 낮습니다. 안전 검사를 통과하면 수동 수정을 시작할 수 있습니다.", + "beforeEnablement": "자동 수정이 활성화되기 전에 분석이 완료되었습니다. 안전 검사를 통과하면 수동 수정을 시작할 수 있습니다.", + "generic": "이 발견 사항에는 수정을 사용할 수 없습니다." } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "리뷰 제출", "partialPostedMessage": "댓글 {{displayFreshCount}}개를 게시했습니다. 이전 커밋을 가리키는 댓글 {{displayStaleCount}}개는 대기열에 남았습니다.", "submitCountOfTotal": "댓글 {{displayTotalCount}}개 중 {{displayFreshCount}}개 제출", - "submitReview": "리뷰 제출" + "submitReview": "리뷰 제출", + "blockedRequestChanges": "변경을 요청하려면 요약 또는 댓글을 하나 이상 추가하세요.", + "blockedComment": "댓글 리뷰를 게시하려면 요약 또는 댓글을 하나 이상 추가하세요." }, "fileStatus": { "added": "추가됨", diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index 646b1be1fc..ace6250e65 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -512,7 +512,9 @@ "pendingComment_other": "ຄຳເຫັນທີ່ລໍຖ້າ", "submitCountOfTotal": "ສົ່ງ {{displayFreshCount}} ຈາກ {{displayTotalCount}} ຄຳເຫັນ", "submitReview": "ສົ່ງການກວດສອບ", - "partialPostedMessage": "ໂພສ {{displayFreshCount}} ຄຳເຫັນ. {{displayStaleCount}} ຄຳເຫັນຊີ້ບອກໃສ່ commit ທີ່ເກົ່າກວ່າ ແລະ ຍັງຄົງຢູ່ໃນຄິວຂອງທ່ານ." + "partialPostedMessage": "ໂພສ {{displayFreshCount}} ຄຳເຫັນ. {{displayStaleCount}} ຄຳເຫັນຊີ້ບອກໃສ່ commit ທີ່ເກົ່າກວ່າ ແລະ ຍັງຄົງຢູ່ໃນຄິວຂອງທ່ານ.", + "blockedRequestChanges": "ເພີ່ມສະຫຼຸບ ຫຼື ຢ່າງໜ້ອຍໜຶ່ງຄຳເຫັນ ເພື່ອຂໍການປ່ຽນແປງ.", + "blockedComment": "ເພີ່ມສະຫຼຸບ ຫຼື ຢ່າງໜ້ອຍໜຶ່ງຄຳເຫັນ ເພື່ອສົ່ງການກວດສອບແບບຄຳເຫັນ." }, "reconnectNotice": { "title": "ການເຊື່ອມຕໍ່ GitHub ໝົດອາຍຸແລ້ວ", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "ການອັບເດດຜູ້ກວດສອບລົ້ມເຫລວ", - "configSaveFailed": "ການບັນທຶກການຕັ້ງຄ່າການກວດສອບລົ້ມເຫລວ" + "configSaveFailed": "ການບັນທຶກການຕັ້ງຄ່າການກວດສອບລົ້ມເຫລວ", + "status": { + "pending": "ລໍຖ້າ", + "queued": "ລໍຄິວ", + "running": "ກຳລັງດຳເນີນການ", + "completed": "ສຳເລັດ", + "failed": "ລົ້ມເຫຼວ", + "cancelled": "ຖືກຍົກເລີກ", + "interrupted": "ຖືກຂັດຈັງ" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "ບັນທຶກແຫຼ່ງຂໍ້ມູນ", "source": "ແຫຼ່ງຂໍ້ມູນ", "sourceId": "ID ແຫຼ່ງຂໍ້ມູນ", - "viewAdvisory": "ເບິ່ງຄຳແນະນຳໃນ GitHub" + "viewAdvisory": "ເບິ່ງຄຳແນະນຳໃນ GitHub", + "statusSuperseded": "ຖືກທົດແທນ", + "statusFixed": "ແກ້ໄຂແລ້ວ", + "statusOpen": "ເປີດ", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ການແກ້ໄຂໄດ້ເລີ່ມຂຶ້ນແລ້ວ", + "reasonNoBandwidth": "ບໍ່ມີຄວາມສາມາດວ່າງ", + "reasonTolerableRisk": "ຄວາມສ່ຽງສາມາດຍອມຮັບໄດ້", + "reasonInaccurate": "ການກວດພົບບໍ່ຖືກຕ້ອງ", + "reasonNotUsed": "ລະຫັດທີ່ມີຊ່ອງໂຫວ່ບໍ່ຖືກໃຊ້", + "reasonAfterReview": "ຫຼັງຈາກການທົບທວນ" }, "settingsOverview": { "title": "ການຕັ້ງຄ່າ", @@ -1805,6 +1826,107 @@ "syncInProgress": "ການຊິ້ງຄວາມປອດໄພກຳລັງດຳເນີນຢູ່ແລ້ວ. ກະລຸນາລອງອີກຄັ້ງ.", "dismissalInProgress": "ການປິດອັນນີ້ກຳລັງດຳເນີນຢູ່ແລ້ວ. ກະລຸນາລອງອີກຄັ້ງ.", "couldNotReadPendingSyncs": "ບໍ່ສາມາດອ່ານການຊິ້ງທີ່ລໍຖ້າໄດ້. ລອງອີກຄັ້ງ." + }, + "analysisState": { + "queued": "ການວິເຄາະລໍຄິວ", + "queuedTitle": "ການວິເຄາະລໍຄິວ", + "queuedDescription": "ລໍຖ້າໃຫ້ຄວາມສາມາດໃນການວິເຄາະພ້ອມ.", + "analyzing": "ກຳລັງວິເຄາະ", + "analyzingTitle": "ກຳລັງວິເຄາະ", + "analyzingDescription": "ກຳລັງກວດວ່າລະຫັດແອັບສາມາດເຂົ້າເຖິງຟີເຈີທີ່ຖືກກະທົບໄດ້ຫຼືບໍ່.", + "failed": "ການວິເຄາະລົ້ມເຫຼວ", + "failedTitle": "ການວິເຄາະລົ້ມເຫຼວ", + "failedDescription": "Security Agent ບໍ່ສາມາດເຮັດການວິເຄາະໃຫ້ສຳເລັດໄດ້.", + "extractionFailed": "ຕ້ອງການການທົບທວນ", + "extractionFailedTitle": "ຕ້ອງການການທົບທວນ", + "extractionFailedDescription": "ບໍ່ສາມາດປ່ຽນລາຍງານດ້ານວິຊາການເປັນຜົນແບບມີໂຄງສ້າງໄດ້.", + "exploitable": "ສາມາດຖືກໂຈມຕີໄດ້", + "exploitableTitle": "ສາມາດຖືກໂຈມຕີໄດ້", + "exploitableDescription": "ລະຫັດແອັບສາມາດເຂົ້າເຖິງຟີເຈີທີ່ຖືກກະທົບໄດ້.", + "notExploitable": "ບໍ່ສາມາດເຂົ້າເຖິງໄດ້", + "notExploitableTitle": "ບໍ່ສາມາດເຂົ້າເຖິງໄດ້", + "notExploitableDescription": "ບໍ່ພົບເສັ້ນທາງທີ່ສາມາດເຂົ້າເຖິງໄດ້ໃນບ່ອນເກັບລະຫັດນີ້.", + "unknown": "ຕ້ອງການການທົບທວນ", + "unknownTitle": "ຕ້ອງການການທົບທວນ", + "unknownDescription": "ການວິເຄາະບໍ່ສາມາດຢືນຢັນໄດ້ວ່າຟີເຈີທີ່ມີຊ່ອງໂຫວ່ສາມາດເຂົ້າເຖິງໄດ້ຫຼືບໍ່.", + "safeToDismiss": "ປອດໄພທີ່ຈະລຶບ", + "safeToDismissTitle": "ປອດໄພທີ່ຈະລຶບ", + "safeToDismissDescription": "ການຈັດລຳດັບກຳນົດວ່າອັນນີ້ສາມາດລຶບໄດ້ຢ່າງປອດໄພໂດຍບໍ່ຕ້ອງວິເຄາະຖານໂຄ້ດ.", + "manualReview": "ຕ້ອງການການທົບທວນ", + "manualReviewTitle": "ຕ້ອງການການທົບທວນແບບຄູ່ມື", + "manualReviewDescription": "ການຈັດລຳດັບກຳນົດການກວດພົບນີ້ໃຫ້ທົບທວນແບບຄູ່ມື.", + "analysisRequired": "ຕ້ອງການການວິເຄາະ", + "analysisRequiredTitle": "ຕ້ອງການການວິເຄາະຖານໂຄ້ດ", + "analysisRequiredDescription": "ການຈັດລຳດັບແນະນຳໃຫ້ວິເຄາະບ່ອນເກັບລະຫັດກ່ອນຕັດສິນໃຈຕອບສະໜອງ.", + "completed": "ວິເຄາະແລ້ວ", + "completedTitle": "ວິເຄາະແລ້ວ", + "completedDescription": "ການວິເຄາະສຳເລັດໂດຍບໍ່ໄດ້ບັນທຶກຜົນສະເພາະ.", + "notAnalyzed": "ຍັງບໍ່ໄດ້ວິເຄາະ", + "notAnalyzedTitle": "ຍັງບໍ່ໄດ້ວິເຄາະ", + "notAnalyzedDescription": "ການວິເຄາະຖານໂຄ້ດຍັງບໍ່ທັນດຳເນີນສຳລັບການກວດພົບນີ້." + }, + "deadline": { + "fixedBeforeDeadline": "ແກ້ໄຂກ່ອນກຳນົດ", + "fixed": "ແກ້ໄຂແລ້ວ", + "fixedOn": "ແກ້ໄຂເມື່ອ {{date}}", + "resolutionRecorded": "ບັນທຶກການແກ້ໄຂແລ້ວ", + "superseded": "ຖືກທົດແທນ", + "dismissed": "ຖືກປິດ", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "ບໍ່ມີກຳນົດເສັ້ນຕາຍ", + "noSlaDeadline": "ບໍ່ມີກຳນົດເສັ້ນຕາຍ SLA", + "dueOn": "ກຳນົດ {{date}}", + "overdueNow": "ເກີນກຳນົດ", + "overdue_other": "{{count}} ມື້ທີ່ເກີນກຳນົດ", + "dueToday": "ກຳນົດມື້ນີ້", + "dueTomorrow": "ກຳນົດມື້ອື່ນ", + "dueInDays_other": "ກຳນົດພາຍໃນ {{count}} ມື້", + "overdue": "{{count}} ມື້ທີ່ເກີນກຳນົດ", + "overdue_one": "{{count}} ມື້ທີ່ເກີນກຳນົດ", + "dueInDays": "ກຳນົດພາຍໃນ {{count}} ມື້", + "dueInDays_one": "ກຳນົດພາຍໃນ {{count}} ມື້" + }, + "remediationStatus": { + "cancellationRequested": "ຂໍການຍົກເລີກແລ້ວ", + "notStarted": "ຍັງບໍ່ໄດ້ເລີ່ມ", + "queued": "ລໍຄິວ", + "starting": "ກຳລັງເລີ່ມ", + "inProgress": "ກຳລັງດຳເນີນການ", + "draftPrOpened": "ເປີດ PR ຮ່າງ", + "prOpened": "ເປີດ PR", + "blocked": "ຖືກກັ້ນ", + "failed": "ລົ້ມເຫຼວ", + "noChangesNeeded": "ບໍ່ຈຳເປັນຕ້ອງປ່ຽນແປງ", + "cancelled": "ຖືກຍົກເລີກ", + "originAutomaticPolicy": "ນະໂຍບາຍອັດຕະໂນມັດ", + "originIncludeExistingPolicy": "ນະໂຍບາຍລວມການພົບທີ່ມີຢູ່", + "originManual": "ດ້ວຍມື", + "validationCheck": "ການກວດສອບການຢືນຢັນ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ການກວດພົບດ້ານຄວາມປອດໄພບໍ່ມີຢູ່ອີກຕໍ່ໄປ.", + "approvalRequired": "ການແກ້ໄຂອັດຕະໂນມັດຕ້ອງການການອະນຸມັດ. ເລີ່ມການແກ້ໄຂດ້ວຍຕົນເອງເພື່ອອະນຸມັດມັນ.", + "findingNotOpen": "ການກວດພົບບໍ່ໄດ້ເປີດຢູ່ອີກຕໍ່ໄປ.", + "repoNotInScope": "ບໍ່ໄດ້ເລືອກບ່ອນເກັບລະຫັດສຳລັບ Security Agent.", + "analysisRequired": "ດຳເນີນການວິເຄາະຖານໂຄ້ດກ່ອນເລີ່ມການແກ້ໄຂ.", + "sandboxAnalysisRequired": "ດຳເນີນການວິເຄາະຖານໂຄ້ດກ່ອນເລີ່ມການແກ້ໄຂ.", + "staleAnalysis": "ການກວດພົບປ່ຽນແປງຫຼັງຈາກການວິເຄາະ. ດຳເນີນການວິເຄາະໃໝ່ກ່ອນເລີ່ມການແກ້ໄຂ.", + "notExploitable": "ການວິເຄາະບໍ່ພົບເສັ້ນທາງທີ່ສາມາດເຂົ້າເຖິງທີ່ມີຊ່ອງໂຫວ່. ການແກ້ໄຂອັດຕະໂນມັດບໍ່ສາມາດໃຊ້ໄດ້.", + "exploitabilityUnknown": "ການວິເຄາະບໍ່ສາມາດຢືນຢັນຄວາມສາມາດໃນການໃຊ້ປະໂຫຍດ. ຕ້ອງມີການທົບທວນແບບຄູ່ມືກ່ອນການແກ້ໄຂດ້ວຍຄລິກດຽວ.", + "manualReviewRequired": "ການວິເຄາະແນະນຳໃຫ້ທົບທວນແບບຄູ່ມື, ດັ່ງນັ້ນການແກ້ໄຂດ້ວຍຄລິກດຽວບໍ່ສາມາດໃຊ້ໄດ້.", + "monitorRequired": "ການວິເຄາະແນະນຳໃຫ້ຕິດຕາມແທນທີ່ຈະເປີດ PR.", + "triageOnly": "ມີພຽງການຈັດລຳດັບທີ່ສຳເລັດ. ດຳເນີນການວິເຄາະຖານໂຄ້ດກ່ອນເລີ່ມການແກ້ໄຂ.", + "actionNotConcrete": "ບໍ່ມີ patch ການອີງໃສ່ທີ່ຊັດເຈນ ຫຼື ການແກ້ໄຂທີ່ແນະນຳ.", + "remediationActive": "ຄວາມພະຍາຍາມແກ້ໄຂກຳລັງດຳເນີນຢູ່ແລ້ວ.", + "prAlreadyOpened": "PR ການແກ້ໄຂເປີດຢູ່ແລ້ວ.", + "duplicateAnalysisResult": "ຜົນການວິເຄາະນີ້ໄດ້ສ້າງວຽກການແກ້ໄຂແລ້ວ.", + "retryNotAllowed": "ບໍ່ສາມາດລອງໃໝ່ສຳລັບຄວາມພະຍາຍາມນີ້ໄດ້.", + "securityAgentDisabled": "Security Agent ຖືກປິດໃຊ້ງານສຳລັບເຈົ້າຂອງນີ້.", + "autoRemediationDisabled": "ການແກ້ໄຂອັດຕະໂນມັດຖືກປິດໃຊ້ງານ. ການແກ້ໄຂດ້ວຍມືຍັງສາມາດເລີ່ມໄດ້ເມື່ອຜ່ານເກນຄວາມປອດໄພ.", + "includeExistingDisabled": "ການກວດພົບທີ່ມີຢູ່ຖືກຍົກເວັ້ນຈາກການແກ້ໄຂອັດຕະໂນມັດ.", + "belowThreshold": "ການກວດພົບຕ່ຳກວ່າຂອບເຂດຄວາມຮ້າຍແຮງອັດຕະໂນມັດ. ການແກ້ໄຂດ້ວຍມືຍັງສາມາດເລີ່ມໄດ້ເມື່ອຜ່ານເກນຄວາມປອດໄພ.", + "beforeEnablement": "ການວິເຄາະສຳເລັດກ່ອນການແກ້ໄຂອັດຕະໂນມັດຈະຖືກເປີດໃຊ້. ການແກ້ໄຂດ້ວຍມືຍັງສາມາດເລີ່ມໄດ້ເມື່ອຜ່ານເກນຄວາມປອດໄພ.", + "generic": "ການແກ້ໄຂບໍ່ສາມາດໃຊ້ໄດ້ສຳລັບການກວດພົບນີ້." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index de5d9a34fd..f493b06efc 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -522,7 +522,9 @@ "submitReview": "Pateikti peržiūrą", "partialPostedMessage": "Paskelbta {{displayFreshCount}} komentaras(-ai). {{displayStaleCount}} komentaras(-ai) nukreipia į senesnį įsipareigojimą ir liko jūsų eilėje.", "pendingComment_few": "laukiantys komentarai", - "pendingComment_many": "laukiančių komentarų" + "pendingComment_many": "laukiančių komentarų", + "blockedRequestChanges": "Pridėkite santrauką arba bent vieną komentarą, kad prašytumėte pakeitimų.", + "blockedComment": "Pridėkite santrauką arba bent vieną komentarą, kad paskelbtumėte peržiūrą kaip komentarą." }, "reconnectNotice": { "title": "GitHub ryšys baigė galioti", @@ -1394,7 +1396,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Nepavyko atnaujinti recenzento", - "configSaveFailed": "Nepavyko išsaugoti peržiūros konfigūracijos" + "configSaveFailed": "Nepavyko išsaugoti peržiūros konfigūracijos", + "status": { + "pending": "Laukiama", + "queued": "Eilėje", + "running": "Vykdoma", + "completed": "Baigta", + "failed": "Nepavyko", + "cancelled": "Atšaukta", + "interrupted": "Nutraukta" + } }, "securityAgent": { "filter": { @@ -1597,7 +1608,17 @@ "sourceRecord": "Šaltinio įrašas", "source": "Šaltinis", "sourceId": "Šaltinio ID", - "viewAdvisory": "Peržiūrėti patarimą GitHub" + "viewAdvisory": "Peržiūrėti patarimą GitHub", + "statusSuperseded": "Pakeistas", + "statusFixed": "Ištaisyta", + "statusOpen": "Atidaryta", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Taisymas jau pradėtas", + "reasonNoBandwidth": "Nėra laisvos talpos", + "reasonTolerableRisk": "Rizika yra priimtina", + "reasonInaccurate": "Radinys yra netikslus", + "reasonNotUsed": "Pažeidžiamas kodas nenaudojamas", + "reasonAfterReview": "po peržiūros" }, "settingsOverview": { "title": "Nustatymai", @@ -1827,6 +1848,111 @@ "syncInProgress": "Saugos sinchronizavimas jau vyksta. Bandykite dar kartą.", "dismissalInProgress": "Šis atmetimas jau vyksta. Bandykite dar kartą.", "couldNotReadPendingSyncs": "Nepavyko perskaityti laukiančių sinchronizavimų. Bandykite dar kartą." + }, + "analysisState": { + "queued": "Analizė eilėje", + "queuedTitle": "Analizė eilėje", + "queuedDescription": "Laukiama, kol atsilaisvins analizės pajėgumas.", + "analyzing": "Analizuojama", + "analyzingTitle": "Analizuojama", + "analyzingDescription": "Tikrinama, ar programos kodas gali pasiekti paveiktą funkciją.", + "failed": "Analizė nepavyko", + "failedTitle": "Analizė nepavyko", + "failedDescription": "Saugos agentas negalėjo užbaigti analizės.", + "extractionFailed": "Reikia peržiūros", + "extractionFailedTitle": "Reikia peržiūros", + "extractionFailedDescription": "Techninės ataskaitos nepavyko paversti struktūrizuotu rezultatu.", + "exploitable": "Išnaudojamas", + "exploitableTitle": "Išnaudojamas", + "exploitableDescription": "Programos kodas gali pasiekti paveiktą funkciją.", + "notExploitable": "Nepasiekiama", + "notExploitableTitle": "Nepasiekiama", + "notExploitableDescription": "Šioje saugykloje nerasta pasiekiamo kelio.", + "unknown": "Reikia peržiūros", + "unknownTitle": "Reikia peržiūros", + "unknownDescription": "Analizė negalėjo patvirtinti, ar pažeidžiama funkcija yra pasiekiama.", + "safeToDismiss": "Saugu atmesti", + "safeToDismissTitle": "Saugu atmesti", + "safeToDismissDescription": "Triažas nustatė, kad tai galima saugiai atmesti be kodo analizės.", + "manualReview": "Reikia peržiūros", + "manualReviewTitle": "Reikia rankinės peržiūros", + "manualReviewDescription": "Triažas pažymėjo šį radinį rankinei peržiūrai.", + "analysisRequired": "Reikia analizės", + "analysisRequiredTitle": "Reikalinga kodo analizė", + "analysisRequiredDescription": "Triažas rekomenduoja išanalizuoti saugyklą prieš priimant sprendimą.", + "completed": "Išanalizuota", + "completedTitle": "Išanalizuota", + "completedDescription": "Analizė baigta neįrašius konkretaus rezultato.", + "notAnalyzed": "Neanalizuota", + "notAnalyzedTitle": "Neanalizuota", + "notAnalyzedDescription": "Kodo analizė šiam radiniui dar nebuvo paleista." + }, + "deadline": { + "fixedBeforeDeadline": "Ištaisyta prieš terminą", + "fixed": "Ištaisyta", + "fixedOn": "Ištaisyta {{date}}", + "resolutionRecorded": "Sprendimas užfiksuotas", + "superseded": "Pakeistas", + "dismissed": "Atmesta", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Terminas nenustatytas", + "noSlaDeadline": "Nėra SLA termino", + "dueOn": "Terminas {{date}}", + "overdueNow": "Vėluojama", + "overdue_one": "{{count}} diena vėluojama", + "overdue_few": "{{count}} dienos vėluojama", + "overdue_many": "{{count}} dienų vėluojama", + "overdue_other": "{{count}} dienų vėluojama", + "dueToday": "Terminas šiandien", + "dueTomorrow": "Terminas rytoj", + "dueInDays_one": "Terminas po {{count}} dienos", + "dueInDays_few": "Terminas po {{count}} dienų", + "dueInDays_many": "Terminas po {{count}} dienų", + "dueInDays_other": "Terminas po {{count}} dienų", + "overdue": "{{count}} dienų vėluojama", + "dueInDays": "Terminas po {{count}} dienų" + }, + "remediationStatus": { + "cancellationRequested": "Prašoma atšaukti", + "notStarted": "Nepradėta", + "queued": "Eilėje", + "starting": "Pradedama", + "inProgress": "Vykdoma", + "draftPrOpened": "Atidarytas PR juodraštis", + "prOpened": "PR atidarytas", + "blocked": "Užblokuota", + "failed": "Nepavyko", + "noChangesNeeded": "Pokyčių nereikia", + "cancelled": "Atšaukta", + "originAutomaticPolicy": "Automatinė politika", + "originIncludeExistingPolicy": "Įtraukti esamų radinių politiką", + "originManual": "Rankiniu būdu", + "validationCheck": "Patvirtinimo tikrinimas {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Saugos radinys nebeegzistuoja.", + "approvalRequired": "Automatiniam taisymui reikia patvirtinimo. Pradėkite taisymą rankiniu būdu, kad jį patvirtintumėte.", + "findingNotOpen": "Radinys nebėra atidarytas.", + "repoNotInScope": "Saugos agentui saugykla nepasirinkta.", + "analysisRequired": "Prieš pradėdami taisymą paleiskite kodo analizę.", + "sandboxAnalysisRequired": "Prieš pradėdami taisymą paleiskite kodo analizę.", + "staleAnalysis": "Radinys pasikeitė po analizės. Prieš pradėdami taisymą paleiskite analizę iš naujo.", + "notExploitable": "Analizė nerado pasiekiamo pažeidžiamo kelio. Automatinis taisymas nepasiekiamas.", + "exploitabilityUnknown": "Analizė negalėjo patvirtinti išnaudojamumo. Prieš taisymą vienu spustelėjimu reikalinga rankinė peržiūra.", + "manualReviewRequired": "Analizė rekomenduoja rankinę peržiūrą, todėl taisymas vienu spustelėjimu nepasiekiamas.", + "monitorRequired": "Analizė rekomenduoja stebėjimą, o ne PR atidarymą.", + "triageOnly": "Baigtas tik triažas. Prieš pradėdami taisymą paleiskite kodo analizę.", + "actionNotConcrete": "Nėra konkretaus priklausomybės pataisymo ar pasiūlyto sprendimo.", + "remediationActive": "Taisymo bandymas jau vyksta.", + "prAlreadyOpened": "Taisymo PR jau atidarytas.", + "duplicateAnalysisResult": "Šis analizės rezultatas jau sukūrė taisymo darbą.", + "retryNotAllowed": "Šiam bandymui pakartotinis bandymas nepasiekiamas.", + "securityAgentDisabled": "Saugos agentas šiam savininkui išjungtas.", + "autoRemediationDisabled": "Automatinis taisymas išjungtas. Rankinis taisymas vis tiek gali prasidėti, kai saugos patikros praeina.", + "includeExistingDisabled": "Esami radiniai neįtraukiami į automatinį taisymą.", + "belowThreshold": "Radinys yra žemiau automatinio sunkumo slenksčio. Rankinis taisymas vis tiek gali prasidėti, kai saugos patikros praeina.", + "beforeEnablement": "Analizė baigta prieš įjungiant automatinį taisymą. Rankinis taisymas vis tiek gali prasidėti, kai saugos patikros praeina.", + "generic": "Taisymas šiam radiniui nepasiekiamas." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 79a6f20a7d..3b14d8438f 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -517,7 +517,9 @@ "submitCountOfTotal": "Iesniegt {{displayFreshCount}} no {{displayTotalCount}} komentāriem", "submitReview": "Iesniegt pārskatu", "partialPostedMessage": "Publicēti {{displayFreshCount}} komentāri. {{displayStaleCount}} komentāri norāda uz vecāku commit un palika jūsu rindā.", - "pendingComment_zero": "gaidīto komentāru" + "pendingComment_zero": "gaidīto komentāru", + "blockedRequestChanges": "Pievienojiet kopsavilkumu vai vismaz vienu komentāru, lai pieprasītu izmaiņas.", + "blockedComment": "Pievienojiet kopsavilkumu vai vismaz vienu komentāru, lai publicētu pārskatu kā komentāru." }, "reconnectNotice": { "title": "GitHub savienojums beidzies", @@ -1385,7 +1387,16 @@ }, "eyebrow": "Koda pārskatītājs", "updateFailed": "Neizdevās atjaunināt pārskatītāju", - "configSaveFailed": "Neizdevās saglabāt pārskata konfigurāciju" + "configSaveFailed": "Neizdevās saglabāt pārskata konfigurāciju", + "status": { + "pending": "Gaida", + "queued": "Rindā", + "running": "Darbojas", + "completed": "Pabeigts", + "failed": "Neizdevās", + "cancelled": "Atcelts", + "interrupted": "Pārtraukts" + } }, "securityAgent": { "filter": { @@ -1587,7 +1598,17 @@ "sourceRecord": "Avota ieraksts", "source": "Avots", "sourceId": "Avota ID", - "viewAdvisory": "Skatīt paziņojumu GitHub" + "viewAdvisory": "Skatīt paziņojumu GitHub", + "statusSuperseded": "Aizstāts", + "statusFixed": "Izlabots", + "statusOpen": "Atvērts", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "labojums jau ir sākts", + "reasonNoBandwidth": "nav pieejamas jaudas", + "reasonTolerableRisk": "risks ir pieņemams", + "reasonInaccurate": "atradums ir neprecīzs", + "reasonNotUsed": "ievainojamais kods netiek izmantots", + "reasonAfterReview": "pēc pārskatīšanas" }, "settingsOverview": { "title": "Iestatījumi", @@ -1816,6 +1837,109 @@ "syncInProgress": "Drošības sinhronizācija jau notiek. Lūdzu, mēģiniet vēlreiz.", "dismissalInProgress": "Šī noraidīšana jau notiek. Lūdzu, mēģiniet vēlreiz.", "couldNotReadPendingSyncs": "Neizdevās nolasīt gaidītās sinhronizācijas. Mēģiniet vēlreiz." + }, + "analysisState": { + "queued": "Analīze ielikta rindā", + "queuedTitle": "Analīze ielikta rindā", + "queuedDescription": "Gaida, līdz kļūst pieejama analīzes jauda.", + "analyzing": "Analizē", + "analyzingTitle": "Analizē", + "analyzingDescription": "Tiek pārbaudīts, vai lietojumprogrammas kods var sasniegt skarto funkciju.", + "failed": "Analīze neizdevās", + "failedTitle": "Analīze neizdevās", + "failedDescription": "Security Agent nevarēja pabeigt analīzi.", + "extractionFailed": "Nepieciešama pārskatīšana", + "extractionFailedTitle": "Nepieciešama pārskatīšana", + "extractionFailedDescription": "Tehnisko ziņojumu nevarēja pārvērst strukturētā rezultātā.", + "exploitable": "Izmantojams", + "exploitableTitle": "Izmantojams", + "exploitableDescription": "Lietojumprogrammas kods var sasniegt skarto funkciju.", + "notExploitable": "Nesasniedzams", + "notExploitableTitle": "Nesasniedzams", + "notExploitableDescription": "Šajā repozitorijā netika atrasts sasniedzams ceļš.", + "unknown": "Nepieciešama pārskatīšana", + "unknownTitle": "Nepieciešama pārskatīšana", + "unknownDescription": "Analīze nevarēja apstiprināt, vai ievainojamā funkcija ir sasniedzama.", + "safeToDismiss": "Droši noraidīt", + "safeToDismissTitle": "Droši noraidīt", + "safeToDismissDescription": "Vērtēšana noteica, ka to var droši noraidīt bez koda bāzes analīzes.", + "manualReview": "Nepieciešama pārskatīšana", + "manualReviewTitle": "Nepieciešama manuāla pārskatīšana", + "manualReviewDescription": "Vērtēšana iezīmēja šo atradumu manuālai pārskatīšanai.", + "analysisRequired": "Nepieciešama analīze", + "analysisRequiredTitle": "Nepieciešama koda bāzes analīze", + "analysisRequiredDescription": "Vērtēšana iesaka analizēt repozitoriju, pirms pieņemat lēmumu par atbildi.", + "completed": "Analizēts", + "completedTitle": "Analizēts", + "completedDescription": "Analīze pabeigta, neierakstot konkrētu rezultātu.", + "notAnalyzed": "Nav analizēts", + "notAnalyzedTitle": "Nav analizēts", + "notAnalyzedDescription": "Koda bāzes analīze šim atradumam vēl nav veikta." + }, + "deadline": { + "fixedBeforeDeadline": "Izlabots pirms termiņa", + "fixed": "Izlabots", + "fixedOn": "Izlabots {{date}}", + "resolutionRecorded": "Atrisinājums reģistrēts", + "superseded": "Aizstāts", + "dismissed": "Noraidīts", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Termiņš nav iestatīts", + "noSlaDeadline": "Nav piešķirts SLA termiņš", + "dueOn": "Termiņš {{date}}", + "overdueNow": "Nokavēts", + "overdue_zero": "Nokavēts par {{count}} dienām", + "overdue_one": "Nokavēts par {{count}} dienu", + "overdue_other": "Nokavēts par {{count}} dienām", + "dueToday": "Termiņš šodien", + "dueTomorrow": "Termiņš rīt", + "dueInDays_zero": "Termiņš pēc {{count}} dienām", + "dueInDays_one": "Termiņš pēc {{count}} dienas", + "dueInDays_other": "Termiņš pēc {{count}} dienām", + "overdue": "Nokavēts par {{count}} dienām", + "dueInDays": "Termiņš pēc {{count}} dienām" + }, + "remediationStatus": { + "cancellationRequested": "Atcelšana pieprasīta", + "notStarted": "Nav sākts", + "queued": "Rindā", + "starting": "Sākas", + "inProgress": "Notiek", + "draftPrOpened": "Atvērts melnraksta PR", + "prOpened": "PR atvērts", + "blocked": "Bloķēts", + "failed": "Neizdevās", + "noChangesNeeded": "Izmaiņas nav vajadzīgas", + "cancelled": "Atcelts", + "originAutomaticPolicy": "Automātiskā politika", + "originIncludeExistingPolicy": "Iekļaut esošo politiku", + "originManual": "Manuāli", + "validationCheck": "Validācijas pārbaude {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Drošības atradums vairs nepastāv.", + "approvalRequired": "Automātiskā labošana prasa apstiprinājumu. Sāciet labošanu manuāli, lai to apstiprinātu.", + "findingNotOpen": "Atradums vairs nav atvērts.", + "repoNotInScope": "Repozitorijs nav atlasīts Security Agent.", + "analysisRequired": "Pirms labošanas sākšanas veiciet koda bāzes analīzi.", + "sandboxAnalysisRequired": "Pirms labošanas sākšanas veiciet koda bāzes analīzi.", + "staleAnalysis": "Atradums mainījās pēc analīzes. Pirms labošanas sākšanas veiciet analīzi vēlreiz.", + "notExploitable": "Analīze neatrada sasniedzamu ievainojamības ceļu. Automātiskā labošana nav pieejama.", + "exploitabilityUnknown": "Analīze nevarēja apstiprināt izmantojamību. Pirms viena klikšķa labošanas nepieciešama manuāla pārskatīšana.", + "manualReviewRequired": "Analīze iesaka manuālu pārskatīšanu, tāpēc viena klikšķa labošana nav pieejama.", + "monitorRequired": "Analīze iesaka uzraudzību PR atvēršanas vietā.", + "triageOnly": "Pabeigta tikai vērtēšana. Pirms labošanas sākšanas veiciet koda bāzes analīzi.", + "actionNotConcrete": "Nav pieejams konkrēts atkarības ielāps vai ieteikts labojums.", + "remediationActive": "Labošanas mēģinājums jau notiek.", + "prAlreadyOpened": "Labošanas PR jau ir atvērts.", + "duplicateAnalysisResult": "Šis analīzes rezultāts jau radīja labošanas darbu.", + "retryNotAllowed": "Atkārtojums nav pieejams šim mēģinājumam.", + "securityAgentDisabled": "Security Agent ir atspējots šim īpašniekam.", + "autoRemediationDisabled": "Automātiskā labošana ir atspējota. Manuālā labošana joprojām var sākties, kad drošības vārti ir izturēti.", + "includeExistingDisabled": "Esošie atradumi ir izslēgti no automātiskās labošanas.", + "belowThreshold": "Atradums ir zem automātiskās smaguma sliekšņa. Manuālā labošana joprojām var sākties, kad drošības vārti ir izturēti.", + "beforeEnablement": "Analīze pabeigta pirms automātiskās labošanas iespējošanas. Manuālā labošana joprojām var sākties, kad drošības vārti ir izturēti.", + "generic": "Labošana nav pieejama šim atradumam." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index 4615d047ed..93baf60d51 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -512,7 +512,9 @@ "pendingComment_other": "hevitra miandry", "submitCountOfTotal": "Hanefa {{displayFreshCount}} amin'ny {{displayTotalCount}} hevitra", "submitReview": "Hanefa ny fandinihana", - "partialPostedMessage": "Navoaka {{displayFreshCount}} hevitra. {{displayStaleCount}} hevitra manondro commit taloha ary nijanona tao amin'ny filaharan'ireo fika rehetrao." + "partialPostedMessage": "Navoaka {{displayFreshCount}} hevitra. {{displayStaleCount}} hevitra manondro commit taloha ary nijanona tao amin'ny filaharan'ireo fika rehetrao.", + "blockedRequestChanges": "Ampio famintinana na hevitra farafahakeliny iray mba hangatahana fanovana.", + "blockedComment": "Ampio famintinana na hevitra farafahakeliny iray mba hamoahana fandinihana hevitra." }, "reconnectNotice": { "title": "Lany daty ny fifandraisana GitHub", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Mpandinika Code", "updateFailed": "Tsy nahomby ny fanavaozana ny mpandinika", - "configSaveFailed": "Tsy nahomby ny famonjena ny fikiran'ny fandinihana" + "configSaveFailed": "Tsy nahomby ny famonjena ny fikiran'ny fandinihana", + "status": { + "pending": "Miandry", + "queued": "Voalahatra", + "running": "Mandeha", + "completed": "Vita", + "failed": "Tsy nahomby", + "cancelled": "Nofoanana", + "interrupted": "Voasakantsakana" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Rakitra loharano", "source": "Loharano", "sourceId": "ID loharano", - "viewAdvisory": "Jereo ny fampitandremana ao amin'ny GitHub" + "viewAdvisory": "Jereo ny fampitandremana ao amin'ny GitHub", + "statusSuperseded": "Nosoloina", + "statusFixed": "Voavaha", + "statusOpen": "Misokatra", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "efa nanomboka ny fanitsiana", + "reasonNoBandwidth": "tsy misy fahafahana misy", + "reasonTolerableRisk": "zakaina ny loza", + "reasonInaccurate": "diso ny fikarohana", + "reasonNotUsed": "tsy ampiasaina ny code marefo", + "reasonAfterReview": "aorian'ny fanamarinana" }, "settingsOverview": { "title": "Fikirana", @@ -1805,6 +1826,107 @@ "syncInProgress": "Efa misy sincro fiarovana mandeha. Andramana indray azafady.", "dismissalInProgress": "Efa mandeha ny fanesorana ity. Andramana indray azafady.", "couldNotReadPendingSyncs": "Tsy afaka namaky ny sincro miandry. Andramana indray." + }, + "analysisState": { + "queued": "Voalahatra ny famakafakana", + "queuedTitle": "Voalahatra ny famakafakana", + "queuedDescription": "Miandry ny fahafahan'ny famakafakana ho azo ampiasaina.", + "analyzing": "Mamakafaka", + "analyzingTitle": "Mamakafaka", + "analyzingDescription": "Manamarina raha afaka manatona ny endri-javatra voakasika ny kaodin'ny app.", + "failed": "Tsy nahomby ny famakafakana", + "failedTitle": "Tsy nahomby ny famakafakana", + "failedDescription": "Tsy vitan'ny Security Agent ny namarana ny famakafakana.", + "extractionFailed": "Mila fanamarinana", + "extractionFailedTitle": "Mila fanamarinana", + "extractionFailedDescription": "Tsy voaova ho vokatra voarafitra ny tatitra teknika.", + "exploitable": "Azo hararaotina", + "exploitableTitle": "Azo hararaotina", + "exploitableDescription": "Afaka manatona ny endri-javatra voakasika ny kaodin'ny app.", + "notExploitable": "Tsy azo tratrarina", + "notExploitableTitle": "Tsy azo tratrarina", + "notExploitableDescription": "Tsy nisy lalana tratrarina hita tao amin'ity repository ity.", + "unknown": "Mila fanamarinana", + "unknownTitle": "Mila fanamarinana", + "unknownDescription": "Tsy afaka nanamarina ny famakafakana raha tratrarina ny endri-javatra marefo.", + "safeToDismiss": "Azo foanana soa aman-tsara", + "safeToDismissTitle": "Azo foanana soa aman-tsara", + "safeToDismissDescription": "Ny triage dia namaritra fa azo foanana soa aman-tsara ity tsy misy famakafakana codebase.", + "manualReview": "Mila fanamarinana", + "manualReviewTitle": "Mila fanamarinana tanana", + "manualReviewDescription": "Ny triage dia nanamarika ity fikarohana ity ho fanamarinana tanana.", + "analysisRequired": "Ilaina ny famakafakana", + "analysisRequiredTitle": "Ilaina ny famakafakana codebase", + "analysisRequiredDescription": "Manoro hevitra ny triage ny hamakafakana ny repository alohan'ny hanapahan-kevitra.", + "completed": "Voafakafaka", + "completedTitle": "Voafakafaka", + "completedDescription": "Vita ny famakafakana tsy nisy vokatra manokana voarakitra.", + "notAnalyzed": "Tsy nodinihina", + "notAnalyzedTitle": "Tsy nodinihina", + "notAnalyzedDescription": "Mbola tsy nisy famakafakana codebase ho an'ity fikarohana ity." + }, + "deadline": { + "fixedBeforeDeadline": "Voavaha alohan'ny fe-potoana", + "fixed": "Voavaha", + "fixedOn": "Voavaha {{date}}", + "resolutionRecorded": "Voarakitra ny vahaolana", + "superseded": "Nosoloina", + "dismissed": "Voala", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Tsy voapetraka ny fe-potoana", + "noSlaDeadline": "Tsy misy fe-potoana SLA voatendry", + "dueOn": "Fe-potoana {{date}}", + "overdueNow": "Tara", + "overdue_one": "{{count}} andro tara", + "overdue_other": "{{count}} andro tara", + "dueToday": "Fe-potoana androany", + "dueTomorrow": "Fe-potoana rahampitso", + "dueInDays_one": "Amin'ny {{count}} andro", + "dueInDays_other": "Amin'ny {{count}} andro", + "overdue": "{{count}} andro tara", + "dueInDays": "Amin'ny {{count}} andro" + }, + "remediationStatus": { + "cancellationRequested": "Nangatahana ny fanafoanana", + "notStarted": "Tsy mbola natomboka", + "queued": "Voalahatra", + "starting": "Manomboka", + "inProgress": "Mitohy", + "draftPrOpened": "Nosokafana ny draft PR", + "prOpened": "Nosokafana ny PR", + "blocked": "Voasakana", + "failed": "Tsy nahomby", + "noChangesNeeded": "Tsy misy fiovana ilaina", + "cancelled": "Nofoanana", + "originAutomaticPolicy": "Politika mandeha ho azy", + "originIncludeExistingPolicy": "Ampidiro ny politika efa misy", + "originManual": "Tanana", + "validationCheck": "Fanamarinana {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Tsy misy intsony ny fikarohana fiarovana.", + "approvalRequired": "Mitaky fankatoavana ny fanarenana mandeha ho azy. Atombohy amin'ny tanana ny fanarenana mba hankatoavana azy.", + "findingNotOpen": "Tsy misokatra intsony ny fikarohana.", + "repoNotInScope": "Tsy voafidy ho an'ny Security Agent ny repository.", + "analysisRequired": "Ampandehao ny famakafakana codebase alohan'ny hanombohana ny fanarenana.", + "sandboxAnalysisRequired": "Ampandehao ny famakafakana codebase alohan'ny hanombohana ny fanarenana.", + "staleAnalysis": "Niova ny fikarohana taorian'ny famakafakana. Avereno ny famakafakana alohan'ny hanombohana ny fanarenana.", + "notExploitable": "Tsy nahita lalana marefo tratrarina ny famakafakana. Tsy misy ny fanarenana mandeha ho azy.", + "exploitabilityUnknown": "Tsy afaka nanamarina ny famakafakana ny fahazoana hararaotina. Ilaina ny fanamarinana tanana alohan'ny fanarenana amin'ny tsindrio indray mandeha.", + "manualReviewRequired": "Manoro hevitra fanamarinana tanana ny famakafakana, ka tsy misy ny fanarenana amin'ny tsindrio indray mandeha.", + "monitorRequired": "Manoro hevitra fanaraha-maso ny famakafakana fa tsy fanokafana PR.", + "triageOnly": "Ny triage ihany no vita. Ampandehao ny famakafakana codebase alohan'ny hanombohana ny fanarenana.", + "actionNotConcrete": "Tsy misy patch fiankinan-dependance mivaingana na fanitsiana soso-kevitra azo ampiasaina.", + "remediationActive": "Efa misy fanandramana fanarenana mitohy.", + "prAlreadyOpened": "Efa misokatra ny PR fanarenana.", + "duplicateAnalysisResult": "Efa namokatra asa fanarenana ity vokatry ny famakafakana ity.", + "retryNotAllowed": "Tsy misy ny andrana indray ho an'ity fanandramana ity.", + "securityAgentDisabled": "Tsy alefa ho an'ity tompony ity ny Security Agent.", + "autoRemediationDisabled": "Tsy alefa ny fanarenana mandeha ho azy. Mbola afaka manomboka ny fanarenana tanana rehefa mandalo ny vavahady fiarovana.", + "includeExistingDisabled": "Tsy tafiditra amin'ny fanarenana mandeha ho azy ny fikarohana efa misy.", + "belowThreshold": "Ambany noho ny fetra hamafy mandeha ho azy ny fikarohana. Mbola afaka manomboka ny fanarenana tanana rehefa mandalo ny vavahady fiarovana.", + "beforeEnablement": "Vita ny famakafakana talohan'ny nahafahan'ny fanarenana mandeha ho azy. Mbola afaka manomboka ny fanarenana tanana rehefa mandalo ny vavahady fiarovana.", + "generic": "Tsy misy ny fanarenana ho an'ity fikarohana ity." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index 2db54853ae..aa6b506df3 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -512,7 +512,9 @@ "pendingComment_other": "ngā kōrero e tatari ana", "submitCountOfTotal": "Tuku i {{displayFreshCount}} o {{displayTotalCount}} kōrero", "submitReview": "Tuku i te arotake", - "partialPostedMessage": "Kua tukuna {{displayFreshCount}} kōrero. E tohu ana {{displayStaleCount}} kōrero ki tētahi commit tawhito, ā, i noho ki tō tūtira." + "partialPostedMessage": "Kua tukuna {{displayFreshCount}} kōrero. E tohu ana {{displayStaleCount}} kōrero ki tētahi commit tawhito, ā, i noho ki tō tūtira.", + "blockedRequestChanges": "Tāpirihia he whakarāpopoto, i te iti rawa rānei kia kotahi kōrero, hei tono huringa.", + "blockedComment": "Tāpirihia he whakarāpopoto, i te iti rawa rānei kia kotahi kōrero, hei tuku arotake kōrero." }, "reconnectNotice": { "title": "Kua pau te wā o te hononga GitHub", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Kaiarotake Waehere", "updateFailed": "I rahua te whakahou i te kaiarotake", - "configSaveFailed": "I rahua te tiaki i te whirihoranga arotake" + "configSaveFailed": "I rahua te tiaki i te whirihoranga arotake", + "status": { + "pending": "E tatari ana", + "queued": "Kua tūtaki", + "running": "Kei te oma", + "completed": "Kua oti", + "failed": "I rahua", + "cancelled": "Kua whakakorea", + "interrupted": "I haukotia" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Te pūkete puna", "source": "Puna", "sourceId": "ID puna", - "viewAdvisory": "Tirohia te tohutohu i GitHub" + "viewAdvisory": "Tirohia te tohutohu i GitHub", + "statusSuperseded": "Kua whakakapia", + "statusFixed": "Kua whakatikaina", + "statusOpen": "Tuwhera", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "kua tīmata tētahi whakatika", + "reasonNoBandwidth": "kāore he rahi whānui", + "reasonTolerableRisk": "he whakaaetia te mōrea", + "reasonInaccurate": "kāore i te tika te kitea", + "reasonNotUsed": "kāore e whakamahia ana te waehere whakaraerae", + "reasonAfterReview": "i muri i te arotake" }, "settingsOverview": { "title": "Ngā tautuhinga", @@ -1805,6 +1826,107 @@ "syncInProgress": "Kei te haere tonu tētahi honohono haumarutanga. Whakamātau anō.", "dismissalInProgress": "Kei te haere tonu tēnei whakakorenga. Whakamātau anō.", "couldNotReadPendingSyncs": "Kāore i taea te pānui i ngā honohono e tatari ana. Whakamātau anō." + }, + "analysisState": { + "queued": "Kua tūtaki te tātari", + "queuedTitle": "Kua tūtaki te tātari", + "queuedDescription": "E tatari ana mō te kaha tātari kia wātea.", + "analyzing": "Kei te tātari", + "analyzingTitle": "Kei te tātari", + "analyzingDescription": "Kei te tirotiro mēnā ka taea e te waehere taupānga te tae ki te āhuatanga pāngia.", + "failed": "I rahua te tātari", + "failedTitle": "I rahua te tātari", + "failedDescription": "Kāore i taea e Security Agent te whakaoti i te tātari.", + "extractionFailed": "Me arotake", + "extractionFailedTitle": "Me arotake", + "extractionFailedDescription": "Kāore i taea te huri te pūrongo hangarau hei hua kua hanganga.", + "exploitable": "Ka taea te whakamahi kino", + "exploitableTitle": "Ka taea te whakamahi kino", + "exploitableDescription": "Ka taea e te waehere taupānga te tae ki te āhuatanga pāngia.", + "notExploitable": "Kāore e taea te tae", + "notExploitableTitle": "Kāore e taea te tae", + "notExploitableDescription": "Kāore he ara i kitea i tēnei pūranga e taea ana te tae atu.", + "unknown": "Me arotake", + "unknownTitle": "Me arotake", + "unknownDescription": "Kāore i taea e te tātari te whakapūmau mēnā e taea ana te tae ki te āhuatanga whakaraerae.", + "safeToDismiss": "He haumaru te whakakore", + "safeToDismissTitle": "He haumaru te whakakore", + "safeToDismissDescription": "I whakatau te whakarōpū e taea ana te whakakore haumaru tēnei me te kore tātari pūtoi.", + "manualReview": "Me arotake", + "manualReviewTitle": "Me arotake ā-ringa", + "manualReviewDescription": "I tohua tēnei kitea e te whakarōpū mō te arotake ā-ringa.", + "analysisRequired": "E hiahiatia ana te tātari", + "analysisRequiredTitle": "E hiahiatia ana te tātari pūtoi", + "analysisRequiredDescription": "E tūtohu ana te whakarōpū kia tātarihia te pūranga i mua i te whakatau whakautu.", + "completed": "Kua tātaria", + "completedTitle": "Kua tātaria", + "completedDescription": "I oti te tātari me te kore hua motuhake i tuhia.", + "notAnalyzed": "Kāore i tātarihia", + "notAnalyzedTitle": "Kāore i tātarihia", + "notAnalyzedDescription": "Kāore anō kia oma te tātari pūtoi mō tēnei kitea." + }, + "deadline": { + "fixedBeforeDeadline": "Kua whakatika i mua i te mutunga", + "fixed": "Kua whakatikaina", + "fixedOn": "Kua whakatika {{date}}", + "resolutionRecorded": "Kua tuhia te whakataunga", + "superseded": "Kua whakakapia", + "dismissed": "Kua whakakorea", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Kāore anō kia tautapa he mutunga", + "noSlaDeadline": "Kāore he mutunga SLA i tautapa", + "dueOn": "Me whakatutuki i te {{date}}", + "overdueNow": "Kua tōmuri", + "overdue_one": "{{count}} rā kua tōmuri", + "overdue_other": "{{count}} rā kua tōmuri", + "dueToday": "Me whakatutuki i tēnei rā", + "dueTomorrow": "Me whakatutuki āpōpō", + "dueInDays_one": "Me whakatutuki i {{count}} rā", + "dueInDays_other": "Me whakatutuki i {{count}} rā", + "overdue": "{{count}} rā kua tōmuri", + "dueInDays": "Me whakatutuki i {{count}} rā" + }, + "remediationStatus": { + "cancellationRequested": "Kua tonoa te whakakore", + "notStarted": "Kāore anō kia tīmata", + "queued": "Kua tūtaki", + "starting": "Kei te tīmata", + "inProgress": "Kei te haere", + "draftPrOpened": "Kua whakatuwheratia te PR tauira", + "prOpened": "Kua whakatuwheratia te PR", + "blocked": "I āraia", + "failed": "I rahua", + "noChangesNeeded": "Kāore he huringa e hiahiatia ana", + "cancelled": "Kua whakakorea", + "originAutomaticPolicy": "Kaupapa here aunoa", + "originIncludeExistingPolicy": "Whakaurua te kaupapa here o nāianei", + "originManual": "Ā-ringa", + "validationCheck": "Arowhai whakamana {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Kāore e noho ana te kitea haumarutanga.", + "approvalRequired": "Me whiwhi whakaae te whakatika aunoa. Tīmatahia te whakatika ā-ringa hei whakaae.", + "findingNotOpen": "Kāore e tuwhera ana te kitea.", + "repoNotInScope": "Kāore i kōwhiria te pūranga mō Security Agent.", + "analysisRequired": "Whakahaeretia te tātari pūtoi i mua i te tīmatanga o te whakapai.", + "sandboxAnalysisRequired": "Whakahaeretia te tātari pūtoi i mua i te tīmatanga o te whakapai.", + "staleAnalysis": "I huri te kitea i muri i te tātari. Whakahaeretia anō te tātari i mua i te tīmatanga o te whakapai.", + "notExploitable": "Kāore i kitea e te tātari tētahi ara whakaraerae e taea ana te tae. Kāore e wātea ana te whakatika aunoa.", + "exploitabilityUnknown": "Kāore i taea e te tātari te whakapūmau i te taea whakamahi kino. Me arotake ā-ringa i mua i te whakatika kotahi pāwhiri.", + "manualReviewRequired": "E tūtohu ana te tātari kia arotake ā-ringa, nō reira kāore e wātea ana te whakatika kotahi pāwhiri.", + "monitorRequired": "E tūtohu ana te tātari kia aroturuki, kaua e whakatuwhera PR.", + "triageOnly": "Kua oti te whakarōpū anake. Whakahaeretia te tātari pūtoi i mua i te tīmatanga o te whakapai.", + "actionNotConcrete": "Kāore he raihana whakawhirinakitanga pū, he whakatika whakaaro rānei e wātea ana.", + "remediationActive": "Kei te mahi tonu tētahi whakamātau whakapai.", + "prAlreadyOpened": "Kua tuwhera kē tētahi PR whakapai.", + "duplicateAnalysisResult": "Kua whakaputa kē tēnei hua tātari i te mahi whakapai.", + "retryNotAllowed": "Kāore e wātea ana te whakamātau anō mō tēnei whakamātau.", + "securityAgentDisabled": "Kua whakaweto a Security Agent mō tēnei rangatira.", + "autoRemediationDisabled": "Kua whakaweto te whakatika aunoa. Ka taea tonu te tīmata i te whakatika ā-ringa ina tika ngā keeti haumaru.", + "includeExistingDisabled": "Kāore ngā kitea o mua e whakaurua ana ki te whakatika aunoa.", + "belowThreshold": "Kei raro te kitea i te paepae kino aunoa. Ka taea tonu te tīmata i te whakatika ā-ringa ina tika ngā keeti haumaru.", + "beforeEnablement": "I oti te tātari i mua i te whakahohenga o te whakatika aunoa. Ka taea tonu te tīmata i te whakatika ā-ringa ina tika ngā keeti haumaru.", + "generic": "Kāore e wātea ana te whakapai mō tēnei kitea." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index 5b651f18c6..47c90531da 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -512,7 +512,9 @@ "pendingComment_other": "коментари што чекаат", "submitCountOfTotal": "Испрати {{displayFreshCount}} од {{displayTotalCount}} коментари", "submitReview": "Испрати преглед", - "partialPostedMessage": "Објавени {{displayFreshCount}} коментар(и). {{displayStaleCount}} коментар(и) упатуваат на постар commit и останаа во вашиот ред." + "partialPostedMessage": "Објавени {{displayFreshCount}} коментар(и). {{displayStaleCount}} коментар(и) упатуваат на постар commit и останаа во вашиот ред.", + "blockedRequestChanges": "Додајте резиме или барем еден коментар за да побарате промени.", + "blockedComment": "Додајте резиме или барем еден коментар за да објавите преглед како коментар." }, "reconnectNotice": { "title": "GitHub врската истече", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Не успеа ажурирањето на прегледувачот", - "configSaveFailed": "Не успеа зачувувањето на конфигурацијата на прегледот" + "configSaveFailed": "Не успеа зачувувањето на конфигурацијата на прегледот", + "status": { + "pending": "Во чекање", + "queued": "Во ред", + "running": "Во тек", + "completed": "Завршено", + "failed": "Не успеа", + "cancelled": "Откажано", + "interrupted": "Прекинато" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Изворен запис", "source": "Извор", "sourceId": "ИД на извор", - "viewAdvisory": "Прегледај го советот на GitHub" + "viewAdvisory": "Прегледај го советот на GitHub", + "statusSuperseded": "Наткриен", + "statusFixed": "Поправено", + "statusOpen": "Отворено", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "веќе е започната поправка", + "reasonNoBandwidth": "нема достапен капацитет", + "reasonTolerableRisk": "ризикот е поднослив", + "reasonInaccurate": "наодот е неточен", + "reasonNotUsed": "ранливиот код не се користи", + "reasonAfterReview": "по прегледот" }, "settingsOverview": { "title": "Поставки", @@ -1805,6 +1826,107 @@ "syncInProgress": "Безбедносна синхронизација е веќе во тек. Обидете се повторно.", "dismissalInProgress": "Ова отфрлање е веќе во тек. Обидете се повторно.", "couldNotReadPendingSyncs": "Не можеше да се прочитаат синхронизациите што чекаат. Обидете се повторно." + }, + "analysisState": { + "queued": "Анализата е ставена во ред", + "queuedTitle": "Анализата е ставена во ред", + "queuedDescription": "Се чека капацитетот за анализа да стане достапен.", + "analyzing": "Се анализира", + "analyzingTitle": "Се анализира", + "analyzingDescription": "Се проверува дали кодот на апликацијата може да допре до погодената функција.", + "failed": "Анализата не успеа", + "failedTitle": "Анализата не успеа", + "failedDescription": "Безбедносниот агент не можеше да ја заврши анализата.", + "extractionFailed": "Бара преглед", + "extractionFailedTitle": "Бара преглед", + "extractionFailedDescription": "Техничкиот извештај не можеше да се претвори во структуриран резултат.", + "exploitable": "Искористлив", + "exploitableTitle": "Искористлив", + "exploitableDescription": "Кодот на апликацијата може да допре до погодената функција.", + "notExploitable": "Недостапно", + "notExploitableTitle": "Недостапно", + "notExploitableDescription": "Не е пронајден достапен пат во ова складиште.", + "unknown": "Бара преглед", + "unknownTitle": "Бара преглед", + "unknownDescription": "Анализата не можеше да потврди дали ранливата функција е достапна.", + "safeToDismiss": "Безбедно за отфрлање", + "safeToDismissTitle": "Безбедно за отфрлање", + "safeToDismissDescription": "Тријажата утврди дека ова може безбедно да се отфрли без анализа на кодната база.", + "manualReview": "Бара преглед", + "manualReviewTitle": "Потребен е рачен преглед", + "manualReviewDescription": "Тријажата го означи овој наод за рачен преглед.", + "analysisRequired": "Потребна е анализа", + "analysisRequiredTitle": "Потребна е анализа на кодната база", + "analysisRequiredDescription": "Тријажата препорачува анализа на складиштето пред да одлучите за одговор.", + "completed": "Анализирано", + "completedTitle": "Анализирано", + "completedDescription": "Анализата е завршена без запишан конкретен резултат.", + "notAnalyzed": "Не анализирано", + "notAnalyzedTitle": "Не анализирано", + "notAnalyzedDescription": "Анализата на кодната база сè уште не е извршена за овој наод." + }, + "deadline": { + "fixedBeforeDeadline": "Поправено пред рокот", + "fixed": "Поправено", + "fixedOn": "Поправено {{date}}", + "resolutionRecorded": "Решението е запишано", + "superseded": "Наткриен", + "dismissed": "Отфрлен", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Рокот не е поставен", + "noSlaDeadline": "Нема доделен SLA рок", + "dueOn": "Доспева {{date}}", + "overdueNow": "Просрочено", + "overdue_one": "{{count}} ден просрочен", + "overdue_other": "{{count}} дена просрочени", + "dueToday": "Доспева денес", + "dueTomorrow": "Доспева утре", + "dueInDays_one": "Доспева за {{count}} ден", + "dueInDays_other": "Доспева за {{count}} дена", + "overdue": "{{count}} дена просрочени", + "dueInDays": "Доспева за {{count}} дена" + }, + "remediationStatus": { + "cancellationRequested": "Побаран отказ", + "notStarted": "Не е започнато", + "queued": "Во ред", + "starting": "Започнува", + "inProgress": "Во тек", + "draftPrOpened": "Отворен нацрт PR", + "prOpened": "Отворено PR", + "blocked": "Блокирано", + "failed": "Не успеа", + "noChangesNeeded": "Не се потребни промени", + "cancelled": "Откажано", + "originAutomaticPolicy": "Автоматска политика", + "originIncludeExistingPolicy": "Вклучи постоечка политика", + "originManual": "Рачно", + "validationCheck": "Проверка за валидација {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Безбедносниот наод веќе не постои.", + "approvalRequired": "Автоматската санација бара одобрение. Започнете ја санацијата рачно за да ја одобрите.", + "findingNotOpen": "Наодот веќе не е отворен.", + "repoNotInScope": "Складиштето не е избрано за Безбедносниот агент.", + "analysisRequired": "Извршете анализа на кодната база пред да започнете со санирање.", + "sandboxAnalysisRequired": "Извршете анализа на кодната база пред да започнете со санирање.", + "staleAnalysis": "Наодот се промени по анализата. Повторно извршете анализа пред да започнете со санирање.", + "notExploitable": "Анализата не најде достапен ранлив пат. Автоматската санација е недостапна.", + "exploitabilityUnknown": "Анализата не можеше да ја потврди искористливоста. Потребен е рачен преглед пред санација со еден клик.", + "manualReviewRequired": "Анализата препорачува рачен преглед, па санацијата со еден клик е недостапна.", + "monitorRequired": "Анализата препорачува следење наместо отворање PR.", + "triageOnly": "Завршена е само тријажата. Извршете анализа на кодната база пред да започнете со санирање.", + "actionNotConcrete": "Нема достапна конкретна закрпа за зависност или предложена поправка.", + "remediationActive": "Обидот за санирање е веќе активен.", + "prAlreadyOpened": "PR-от за санирање е веќе отворен.", + "duplicateAnalysisResult": "Овој резултат од анализата веќе произведе работа за санирање.", + "retryNotAllowed": "Повторниот обид не е достапен за овој обид.", + "securityAgentDisabled": "Безбедносниот агент е оневозможен за овој сопственик.", + "autoRemediationDisabled": "Автоматската санација е оневозможена. Рачната санација сепак може да започне кога безбедносните пречки ќе бидат поминати.", + "includeExistingDisabled": "Постоечките наоди се исклучени од автоматската санација.", + "belowThreshold": "Наодот е под автоматскиот праг на сериозност. Рачната санација сепак може да започне кога безбедносните пречки ќе бидат поминати.", + "beforeEnablement": "Анализата е завршена пред да се овозможи автоматската санација. Рачната санација сепак може да започне кога безбедносните пречки ќе бидат поминати.", + "generic": "Санирањето е недостапно за овој наод." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index d10aa90ebf..d1a3b16142 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -512,7 +512,9 @@ "pendingComment_other": "തീർച്ചയാകാത്ത അഭിപ്രായങ്ങൾ", "submitCountOfTotal": "{{displayTotalCount}}-ൽ {{displayFreshCount}} അഭിപ്രായങ്ങൾ സമർപ്പിക്കുക", "submitReview": "അവലോകനം സമർപ്പിക്കുക", - "partialPostedMessage": "{{displayFreshCount}} അഭിപ്രായ(ങ്ങൾ) പോസ്റ്റ് ചെയ്തു. {{displayStaleCount}} അഭിപ്രായ(ങ്ങൾ) ഒരു പഴയ കമ്മിറ്റിലേക്ക് ചൂണ്ടിക്കാണിക്കുകയും നിങ്ങളുടെ ക്യൂവിൽ തുടരുകയും ചെയ്തു." + "partialPostedMessage": "{{displayFreshCount}} അഭിപ്രായ(ങ്ങൾ) പോസ്റ്റ് ചെയ്തു. {{displayStaleCount}} അഭിപ്രായ(ങ്ങൾ) ഒരു പഴയ കമ്മിറ്റിലേക്ക് ചൂണ്ടിക്കാണിക്കുകയും നിങ്ങളുടെ ക്യൂവിൽ തുടരുകയും ചെയ്തു.", + "blockedRequestChanges": "മാറ്റങ്ങൾ അഭ്യർത്ഥിക്കാൻ ഒരു സംഗ്രഹം അല്ലെങ്കിൽ കുറഞ്ഞത് ഒരു അഭിപ്രായമെങ്കിലും ചേർക്കുക.", + "blockedComment": "ഒരു അഭിപ്രായ അവലോകനം പോസ്റ്റ് ചെയ്യാൻ ഒരു സംഗ്രഹം അല്ലെങ്കിൽ കുറഞ്ഞത് ഒരു അഭിപ്രായമെങ്കിലും ചേർക്കുക." }, "reconnectNotice": { "title": "GitHub കണക്ഷൻ കാലഹരണപ്പെട്ടു", @@ -1376,7 +1378,16 @@ }, "eyebrow": "കോഡ് റിവ്യൂവർ", "updateFailed": "റിവ്യൂവർ അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു", - "configSaveFailed": "റിവ്യൂ കോൺഫിഗ് സംരക്ഷിക്കുന്നതിൽ പരാജയപ്പെട്ടു" + "configSaveFailed": "റിവ്യൂ കോൺഫിഗ് സംരക്ഷിക്കുന്നതിൽ പരാജയപ്പെട്ടു", + "status": { + "pending": "കാത്തിരിക്കുന്നു", + "queued": "ക്യൂവിലാക്കി", + "running": "പ്രവർത്തിക്കുന്നു", + "completed": "പൂർത്തിയാക്കി", + "failed": "പരാജയപ്പെട്ടു", + "cancelled": "റദ്ദാക്കി", + "interrupted": "തടസ്സപ്പെട്ടു" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "സോഴ്സ് രേഖ", "source": "സോഴ്സ്", "sourceId": "സോഴ്സ് ID", - "viewAdvisory": "GitHub-ൽ അഡ്വൈസറി കാണുക" + "viewAdvisory": "GitHub-ൽ അഡ്വൈസറി കാണുക", + "statusSuperseded": "മാറ്റിസ്ഥാപിച്ചു", + "statusFixed": "പരിഹരിച്ചു", + "statusOpen": "തുറക്കുക", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ഒരു പരിഹാരം ഇതിനകം ആരംഭിച്ചു", + "reasonNoBandwidth": "ബാൻഡ്വിഡ്ത്ത് ലഭ്യമല്ല", + "reasonTolerableRisk": "അപകടസാധ്യത സഹനീയമാണ്", + "reasonInaccurate": "കണ്ടെത്തൽ കൃത്യമല്ല", + "reasonNotUsed": "അപകടസാധ്യതയുള്ള കോഡ് ഉപയോഗിക്കുന്നില്ല", + "reasonAfterReview": "അവലോകനത്തിന് ശേഷം" }, "settingsOverview": { "title": "ക്രമീകരണങ്ങൾ", @@ -1805,6 +1826,107 @@ "syncInProgress": "ഒരു സുരക്ഷാ സമന്വയം ഇതിനകം പുരോഗതിയിലാണ്. വീണ്ടും ശ്രമിക്കുക.", "dismissalInProgress": "ഈ നിരസിക്കൽ ഇതിനകം പുരോഗതിയിലാണ്. വീണ്ടും ശ്രമിക്കുക.", "couldNotReadPendingSyncs": "തീർച്ചയാകാത്ത സമന്വയങ്ങൾ വായിക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക." + }, + "analysisState": { + "queued": "വിശകലനം ക്യൂവിലാക്കി", + "queuedTitle": "വിശകലനം ക്യൂവിലാക്കി", + "queuedDescription": "വിശകലന ശേഷി ലഭ്യമാകുന്നതുവരെ കാത്തിരിക്കുന്നു.", + "analyzing": "വിശകലനം ചെയ്യുന്നു", + "analyzingTitle": "വിശകലനം ചെയ്യുന്നു", + "analyzingDescription": "ആപ്ലിക്കേഷൻ കോഡിന് ബാധിക്കപ്പെട്ട ഫീച്ചറിൽ എത്താൻ കഴിയുമോ എന്ന് പരിശോധിക്കുന്നു.", + "failed": "വിശകലനം പരാജയപ്പെട്ടു", + "failedTitle": "വിശകലനം പരാജയപ്പെട്ടു", + "failedDescription": "Security Agent-ന് വിശകലനം പൂർത്തിയാക്കാൻ കഴിഞ്ഞില്ല.", + "extractionFailed": "അവലോകനം ആവശ്യമാണ്", + "extractionFailedTitle": "അവലോകനം ആവശ്യമാണ്", + "extractionFailedDescription": "സാങ്കേതിക റിപ്പോർട്ട് ഘടനാപരമായ ഫലമാക്കി മാറ്റാൻ കഴിഞ്ഞില്ല.", + "exploitable": "ചൂഷണം ചെയ്യാവുന്നത്", + "exploitableTitle": "ചൂഷണം ചെയ്യാവുന്നത്", + "exploitableDescription": "ആപ്ലിക്കേഷൻ കോഡിന് ബാധിക്കപ്പെട്ട ഫീച്ചറിൽ എത്താനാകും.", + "notExploitable": "എത്തിച്ചേരാനാകാത്തത്", + "notExploitableTitle": "എത്തിച്ചേരാനാകാത്തത്", + "notExploitableDescription": "ഈ റിപ്പോസിറ്ററിയിൽ എത്തിച്ചേരാവുന്ന പാതയൊന്നും കണ്ടെത്തിയില്ല.", + "unknown": "അവലോകനം ആവശ്യമാണ്", + "unknownTitle": "അവലോകനം ആവശ്യമാണ്", + "unknownDescription": "ദുർബലമായ ഫീച്ചർ എത്തിച്ചേരാവുന്നതാണോ എന്ന് വിശകലനത്തിന് സ്ഥിരീകരിക്കാനായില്ല.", + "safeToDismiss": "തള്ളിക്കളയുന്നത് സുരക്ഷിതം", + "safeToDismissTitle": "തള്ളിക്കളയുന്നത് സുരക്ഷിതം", + "safeToDismissDescription": "കോഡ്ബേസ് വിശകലനം കൂടാതെ ഇത് സുരക്ഷിതമായി തള്ളിക്കളയാമെന്ന് ട്രയേജ് നിർണ്ണയിച്ചു.", + "manualReview": "അവലോകനം ആവശ്യമാണ്", + "manualReviewTitle": "മാനുവൽ അവലോകനം ആവശ്യമാണ്", + "manualReviewDescription": "മാനുവൽ അവലോകനത്തിനായി ട്രയേജ് ഈ കണ്ടെത്തൽ അടയാളപ്പെടുത്തി.", + "analysisRequired": "വിശകലനം ആവശ്യമാണ്", + "analysisRequiredTitle": "കോഡ്ബേസ് വിശകലനം ആവശ്യമാണ്", + "analysisRequiredDescription": "പ്രതികരണം തീരുമാനിക്കുന്നതിന് മുമ്പ് റിപ്പോസിറ്ററി വിശകലനം ചെയ്യാൻ ട്രയേജ് ശുപാർശ ചെയ്യുന്നു.", + "completed": "വിശകലനം ചെയ്തു", + "completedTitle": "വിശകലനം ചെയ്തു", + "completedDescription": "പ്രത്യേക ഫലമൊന്നും രേഖപ്പെടുത്താതെ വിശകലനം പൂർത്തിയായി.", + "notAnalyzed": "വിശകലനം ചെയ്തിട്ടില്ല", + "notAnalyzedTitle": "വിശകലനം ചെയ്തിട്ടില്ല", + "notAnalyzedDescription": "ഈ കണ്ടെത്തലിനായി കോഡ്ബേസ് വിശകലനം ഇതുവരെ പ്രവർത്തിപ്പിച്ചിട്ടില്ല." + }, + "deadline": { + "fixedBeforeDeadline": "സമയപരിധിക്ക് മുമ്പ് പരിഹരിച്ചു", + "fixed": "പരിഹരിച്ചു", + "fixedOn": "{{date}}-ൽ പരിഹരിച്ചു", + "resolutionRecorded": "പരിഹാരം രേഖപ്പെടുത്തി", + "superseded": "മാറ്റിസ്ഥാപിച്ചു", + "dismissed": "നിരസിച്ചു", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "സമയപരിധി സജ്ജീകരിച്ചിട്ടില്ല", + "noSlaDeadline": "SLA സമയപരിധിയില്ല", + "dueOn": "{{date}} വരെ", + "overdueNow": "കാലഹരണപ്പെട്ടു", + "overdue_one": "{{count}} ദിവസം കാലഹരണപ്പെട്ടു", + "overdue_other": "{{count}} ദിവസം കാലഹരണപ്പെട്ടു", + "dueToday": "ഇന്ന് സമയപരിധി", + "dueTomorrow": "നാളെ സമയപരിധി", + "dueInDays_one": "{{count}} ദിവസത്തിനുള്ളിൽ", + "dueInDays_other": "{{count}} ദിവസത്തിനുള്ളിൽ", + "overdue": "{{count}} ദിവസം കാലഹരണപ്പെട്ടു", + "dueInDays": "{{count}} ദിവസത്തിനുള്ളിൽ" + }, + "remediationStatus": { + "cancellationRequested": "റദ്ദാക്കൽ അഭ്യർത്ഥിച്ചു", + "notStarted": "ആരംഭിച്ചിട്ടില്ല", + "queued": "ക്യൂവിലാക്കി", + "starting": "ആരംഭിക്കുന്നു", + "inProgress": "പുരോഗമിക്കുന്നു", + "draftPrOpened": "ഡ്രാഫ്റ്റ് PR തുറന്നു", + "prOpened": "PR തുറന്നു", + "blocked": "തടഞ്ഞു", + "failed": "പരാജയപ്പെട്ടു", + "noChangesNeeded": "മാറ്റങ്ങൾ ആവശ്യമില്ല", + "cancelled": "റദ്ദാക്കി", + "originAutomaticPolicy": "ഓട്ടോമാറ്റിക് നയം", + "originIncludeExistingPolicy": "നിലവിലുള്ളവ ഉൾപ്പെടുത്തുന്ന നയം", + "originManual": "മാനുവൽ", + "validationCheck": "സാധുതാ പരിശോധന {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "സുരക്ഷാ കണ്ടെത്തൽ ഇനി നിലവിലില്ല.", + "approvalRequired": "ഓട്ടോ പരിഹാരത്തിന് അംഗീകാരം ആവശ്യമാണ്. അംഗീകരിക്കാൻ പരിഹാരം സ്വമേധയാ ആരംഭിക്കുക.", + "findingNotOpen": "കണ്ടെത്തൽ ഇനി തുറന്ന നിലയിലല്ല.", + "repoNotInScope": "റിപ്പോസിറ്ററി Security Agent-നായി തിരഞ്ഞെടുത്തിട്ടില്ല.", + "analysisRequired": "പരിഹാരം ആരംഭിക്കുന്നതിന് മുമ്പ് കോഡ്ബേസ് വിശകലനം പ്രവർത്തിപ്പിക്കുക.", + "sandboxAnalysisRequired": "പരിഹാരം ആരംഭിക്കുന്നതിന് മുമ്പ് കോഡ്ബേസ് വിശകലനം പ്രവർത്തിപ്പിക്കുക.", + "staleAnalysis": "വിശകലനത്തിന് ശേഷം കണ്ടെത്തൽ മാറി. പരിഹാരം ആരംഭിക്കുന്നതിന് മുമ്പ് വിശകലനം വീണ്ടും പ്രവർത്തിപ്പിക്കുക.", + "notExploitable": "എത്തിച്ചേരാവുന്ന ദുർബല പാത വിശകലനത്തിൽ കണ്ടെത്തിയില്ല. ഓട്ടോ പരിഹാരം ലഭ്യമല്ല.", + "exploitabilityUnknown": "ചൂഷണസാധ്യത വിശകലനത്തിന് സ്ഥിരീകരിക്കാനായില്ല. ഒറ്റക്ലിക്ക് പരിഹാരത്തിന് മുമ്പ് മാനുവൽ അവലോകനം ആവശ്യമാണ്.", + "manualReviewRequired": "വിശകലനം മാനുവൽ അവലോകനം ശുപാർശ ചെയ്യുന്നതിനാൽ ഒറ്റക്ലിക്ക് പരിഹാരം ലഭ്യമല്ല.", + "monitorRequired": "PR തുറക്കുന്നതിന് പകരം നിരീക്ഷിക്കാൻ വിശകലനം ശുപാർശ ചെയ്യുന്നു.", + "triageOnly": "ട്രയേജ് മാത്രമാണ് പൂർത്തിയായത്. പരിഹാരം ആരംഭിക്കുന്നതിന് മുമ്പ് കോഡ്ബേസ് വിശകലനം പ്രവർത്തിപ്പിക്കുക.", + "actionNotConcrete": "കൃത്യമായ ഡിപെൻഡൻസി പാച്ചോ നിർദ്ദേശിച്ച പരിഹാരമോ ലഭ്യമല്ല.", + "remediationActive": "ഒരു പരിഹാര ശ്രമം ഇതിനകം സജീവമാണ്.", + "prAlreadyOpened": "ഒരു പരിഹാര PR ഇതിനകം തുറന്നിട്ടുണ്ട്.", + "duplicateAnalysisResult": "ഈ വിശകലന ഫലം ഇതിനകം പരിഹാര പ്രവർത്തനം നിർമ്മിച്ചു.", + "retryNotAllowed": "ഈ ശ്രമത്തിന് വീണ്ടും ശ്രമം ലഭ്യമല്ല.", + "securityAgentDisabled": "ഈ ഉടമയ്ക്ക് Security Agent പ്രവർത്തനരഹിതമാണ്.", + "autoRemediationDisabled": "ഓട്ടോ പരിഹാരം പ്രവർത്തനരഹിതമാണ്. സുരക്ഷാ ഗേറ്റുകൾ കടന്നുപോകുമ്പോൾ മാനുവൽ പരിഹാരം ഇപ്പോഴും ആരംഭിക്കാം.", + "includeExistingDisabled": "നിലവിലുള്ള കണ്ടെത്തലുകൾ ഓട്ടോമാറ്റിക് പരിഹാരത്തിൽ നിന്ന് ഒഴിവാക്കിയിരിക്കുന്നു.", + "belowThreshold": "കണ്ടെത്തൽ ഓട്ടോമാറ്റിക് ഗുരുതരത്വ പരിധിക്ക് താഴെയാണ്. സുരക്ഷാ ഗേറ്റുകൾ കടന്നുപോകുമ്പോൾ മാനുവൽ പരിഹാരം ഇപ്പോഴും ആരംഭിക്കാം.", + "beforeEnablement": "ഓട്ടോ പരിഹാരം പ്രവർത്തനക്ഷമമാക്കുന്നതിന് മുമ്പ് വിശകലനം പൂർത്തിയായി. സുരക്ഷാ ഗേറ്റുകൾ കടന്നുപോകുമ്പോൾ മാനുവൽ പരിഹാരം ഇപ്പോഴും ആരംഭിക്കാം.", + "generic": "ഈ കണ്ടെത്തലിന് പരിഹാരം ലഭ്യമല്ല." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index 75d032a3d9..2a2d63b875 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -512,7 +512,9 @@ "pendingComment_other": "хүлээгдэж буй сэтгэгдлүүд", "submitCountOfTotal": "{{displayTotalCount}} сэтгэгдлээс {{displayFreshCount}} илгээх", "submitReview": "Тойм илгээх", - "partialPostedMessage": "{{displayFreshCount}} сэтгэгдэл илгээгдсэн. {{displayStaleCount}} сэтгэгдэл хуучин commit-ыг зааж, таны жагсаалтад үлдсэн." + "partialPostedMessage": "{{displayFreshCount}} сэтгэгдэл илгээгдсэн. {{displayStaleCount}} сэтгэгдэл хуучин commit-ыг зааж, таны жагсаалтад үлдсэн.", + "blockedRequestChanges": "Өөрчлөлт хүсэхийн тулд хураангуй эсвэл дор хаяж нэг сэтгэгдэл нэмнэ үү.", + "blockedComment": "Сэтгэгдэл хэлбэрээр тойм илгээхийн тулд хураангуй эсвэл дор хаяж нэг сэтгэгдэл нэмнэ үү." }, "reconnectNotice": { "title": "GitHub холболт дууссан", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Код шалгагч", "updateFailed": "Шалгагчийг шинэчлэх боломжгүй", - "configSaveFailed": "Тоймын тохиргоог хадгалах боломжгүй" + "configSaveFailed": "Тоймын тохиргоог хадгалах боломжгүй", + "status": { + "pending": "Хүлээгдэж байна", + "queued": "Дараалалд орсон", + "running": "Ажиллаж байна", + "completed": "Дууссан", + "failed": "Амжилтгүй болсон", + "cancelled": "Цуцлагдсан", + "interrupted": "Тасарсан" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Эх бичлэг", "source": "Эх үүсвэр", "sourceId": "Эх үүсвэрийн ID", - "viewAdvisory": "GitHub дээр мэдэгдлийг үзэх" + "viewAdvisory": "GitHub дээр мэдэгдлийг үзэх", + "statusSuperseded": "Орлуулсан", + "statusFixed": "Засагдсан", + "statusOpen": "Нээлттэй", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Засвар аль хэдийн эхэлсэн", + "reasonNoBandwidth": "Хүчин чадал боломжгүй", + "reasonTolerableRisk": "Эрсдэл хүлээх боломжтой", + "reasonInaccurate": "Олдвор буруу байна", + "reasonNotUsed": "Эмзэг код ашиглагдахгүй", + "reasonAfterReview": "шалгалтын дараа" }, "settingsOverview": { "title": "Тохиргоо", @@ -1805,6 +1826,107 @@ "syncInProgress": "Аюулгүй байдлын синк аль хэдийн явагдаж байна. Дахин оролдоно уу.", "dismissalInProgress": "Энэ хасалт аль хэдийн явагдаж байна. Дахин оролдоно уу.", "couldNotReadPendingSyncs": "Хүлээгдэж буй синкүүдийг унших боломжгүй. Дахин оролдоно уу." + }, + "analysisState": { + "queued": "Дүн шинжилгээ дараалалд орсон", + "queuedTitle": "Дүн шинжилгээ дараалалд орсон", + "queuedDescription": "Дүн шинжилгээний багтаамж чөлөөлөгдөхийг хүлээж байна.", + "analyzing": "Шинжилж байна", + "analyzingTitle": "Шинжилж байна", + "analyzingDescription": "Аппликейшн код нь өртсөн функцийг хүрч чадах эсэхийг шалгаж байна.", + "failed": "Дүн шинжилгээ амжилтгүй болсон", + "failedTitle": "Дүн шинжилгээ амжилтгүй болсон", + "failedDescription": "Security Agent дүн шинжилгээг дуусгаж чадсангүй.", + "extractionFailed": "Шалгалт шаардлагатай", + "extractionFailedTitle": "Шалгалт шаардлагатай", + "extractionFailedDescription": "Техникийн тайланг бүтэцлэгдсэн үр дүн болгон хувиргаж чадсангүй.", + "exploitable": "Ашиглах боломжтой", + "exploitableTitle": "Ашиглах боломжтой", + "exploitableDescription": "Аппликейшн код өртсөн функцэд хүрч чадна.", + "notExploitable": "Хүрэх боломжгүй", + "notExploitableTitle": "Хүрэх боломжгүй", + "notExploitableDescription": "Энэ репозиторид хүрэх боломжтой зам олдсонгүй.", + "unknown": "Шалгалт шаардлагатай", + "unknownTitle": "Шалгалт шаардлагатай", + "unknownDescription": "Эмзэг функц хүрэх боломжтой эсэхийг дүн шинжилгээ баталгаажуулж чадсангүй.", + "safeToDismiss": "Цуцлахад аюулгүй", + "safeToDismissTitle": "Цуцлахад аюулгүй", + "safeToDismissDescription": "Кодын суурийн шинжилгээгүйгээр үүнийг аюулгүйгээр цуцалж болно гэж triage тогтоосон.", + "manualReview": "Шалгалт шаардлагатай", + "manualReviewTitle": "Гарын авлагын хяналт шаардлагатай", + "manualReviewDescription": "Гарын авлагын хяналтад зориулж triage энэ олдворыг тэмдэглэсэн.", + "analysisRequired": "Дүн шинжилгээ шаардлагатай", + "analysisRequiredTitle": "Кодын суурийн шинжилгээ шаардлагатай", + "analysisRequiredDescription": "Хариу арга хэмжээг шийдэхээс өмнө репозиторид дүн шинжилгээ хийхийг triage зөвлөж байна.", + "completed": "Дүн шинжилгээ хийгдсэн", + "completedTitle": "Дүн шинжилгээ хийгдсэн", + "completedDescription": "Тодорхой үр дүн тэмдэглэгдээгүйгээр дүн шинжилгээ дууссан.", + "notAnalyzed": "Шинжлээгүй", + "notAnalyzedTitle": "Шинжлээгүй", + "notAnalyzedDescription": "Энэ олдворын хувьд кодын суурийн шинжилгээ хараахан ажиллаагүй байна." + }, + "deadline": { + "fixedBeforeDeadline": "Эцсийн хугацаанаас өмнө засагдсан", + "fixed": "Засагдсан", + "fixedOn": "{{date}}-нд засагдсан", + "resolutionRecorded": "Шийдэл тэмдэглэгдсэн", + "superseded": "Орлуулсан", + "dismissed": "Хасагдсан", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Эцсийн хугацаа тогтоогоогүй", + "noSlaDeadline": "SLA эцсийн хугацаагүй", + "dueOn": "{{date}} хүртэл", + "overdueNow": "Хугацаа хэтэрсэн", + "overdue_one": "{{count}} өдөр хоцорсон", + "overdue_other": "{{count}} өдөр хоцорсон", + "dueToday": "Өнөөдөр эцсийн хугацаа", + "dueTomorrow": "Маргааш эцсийн хугацаа", + "dueInDays_one": "{{count}} өдрийн дотор эцсийн хугацаа", + "dueInDays_other": "{{count}} өдрийн дотор эцсийн хугацаа", + "overdue": "{{count}} өдөр хоцорсон", + "dueInDays": "{{count}} өдрийн дотор эцсийн хугацаа" + }, + "remediationStatus": { + "cancellationRequested": "Цуцлах хүсэлт илгээгдсэн", + "notStarted": "Эхлээгүй", + "queued": "Дараалалд орсон", + "starting": "Эхэлж байна", + "inProgress": "Явагдаж байна", + "draftPrOpened": "Draft PR нээгдсэн", + "prOpened": "PR нээгдсэн", + "blocked": "Хаагдсан", + "failed": "Амжилтгүй болсон", + "noChangesNeeded": "Өөрчлөлт шаардлагагүй", + "cancelled": "Цуцлагдсан", + "originAutomaticPolicy": "Автомат бодлого", + "originIncludeExistingPolicy": "Одоо байгааг оруулах бодлого", + "originManual": "Гарын авлага", + "validationCheck": "Баталгаажуулалтын шалгалт {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Аюулгүй байдлын олдвор байхгүй болсон.", + "approvalRequired": "Автомат засвар зөвшөөрөл шаарддаг. Зөвшөөрөхийн тулд засварыг гараар эхлүүлнэ үү.", + "findingNotOpen": "Олдвор нээлттэй байхаа больсон.", + "repoNotInScope": "Репозитори Security Agent-д сонгогдоогүй байна.", + "analysisRequired": "Засвар эхлүүлэхээс өмнө кодын суурийн шинжилгээг ажиллуулна уу.", + "sandboxAnalysisRequired": "Засвар эхлүүлэхээс өмнө кодын суурийн шинжилгээг ажиллуулна уу.", + "staleAnalysis": "Шинжилгээний дараа олдвор өөрчлөгдсөн. Засвар эхлүүлэхээс өмнө дүн шинжилгээг дахин ажиллуулна уу.", + "notExploitable": "Дүн шинжилгээ хүрэх боломжтой эмзэг зам олоогүй. Автомат засвар боломжгүй.", + "exploitabilityUnknown": "Ашиглах боломжийг дүн шинжилгээ баталгаажуулж чадсангүй. Нэг товчлуурын засварын өмнө гарын авлагын хяналт шаардлагатай.", + "manualReviewRequired": "Дүн шинжилгээ гарын авлагын хяналтыг зөвлөж байгаа тул нэг товчлуурын засвар боломжгүй.", + "monitorRequired": "Дүн шинжилгээ PR нээхийн оронд хяналт тавихыг зөвлөж байна.", + "triageOnly": "Зөвхөн triage дууссан. Засвар эхлүүлэхээс өмнө кодын суурийн шинжилгээг ажиллуулна уу.", + "actionNotConcrete": "Тодорхой хамааралтай засвар эсвэл санал болгосон шийдэл байхгүй.", + "remediationActive": "Засварын оролдлого аль хэдийн идэвхтэй байна.", + "prAlreadyOpened": "Засварын PR аль хэдийн нээлттэй байна.", + "duplicateAnalysisResult": "Энэ дүн шинжилгээний үр дүн аль хэдийн засварын ажил гаргасан.", + "retryNotAllowed": "Энэ оролдлогын хувьд дахин оролдох боломжгүй.", + "securityAgentDisabled": "Энэ эзэмшигчийн хувьд Security Agent идэвхгүй байна.", + "autoRemediationDisabled": "Автомат засвар идэвхгүй байна. Аюулгүй байдлын хаалтууд хангагдвал гараар засвар эхлүүлэх боломжтой хэвээр.", + "includeExistingDisabled": "Одоо байгаа олдворууд автомат засвараас хасагдсан.", + "belowThreshold": "Олдвор автомат ноцтой байдлын босгоос доогуур байна. Аюулгүй байдлын хаалтууд хангагдвал гараар засвар эхлүүлэх боломжтой хэвээр.", + "beforeEnablement": "Автомат засвар идэвхжихээс өмнө дүн шинжилгээ дууссан. Аюулгүй байдлын хаалтууд хангагдвал гараар засвар эхлүүлэх боломжтой хэвээр.", + "generic": "Энэ олдворын хувьд засвар боломжгүй." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index 6507bc6124..a74941af7f 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -512,7 +512,9 @@ "pendingComment_other": "प्रलंबित टिप्पण्या", "submitCountOfTotal": "{{displayTotalCount}} पैकी {{displayFreshCount}} टिप्पण्या सादर करा", "submitReview": "पुनरावलोकन सादर करा", - "partialPostedMessage": "{{displayFreshCount}} टिप्पण्या पोस्ट केल्या. {{displayStaleCount}} टिप्पण्या जुन्या कमिटकडे निर्देश करतात आणि तुमच्या रांगेत राहिल्या." + "partialPostedMessage": "{{displayFreshCount}} टिप्पण्या पोस्ट केल्या. {{displayStaleCount}} टिप्पण्या जुन्या कमिटकडे निर्देश करतात आणि तुमच्या रांगेत राहिल्या.", + "blockedRequestChanges": "बदलांची विनंती करण्यासाठी सारांश किंवा किमान एक टिप्पणी जोडा.", + "blockedComment": "टिप्पणी पुनरावलोकन पोस्ट करण्यासाठी सारांश किंवा किमान एक टिप्पणी जोडा." }, "reconnectNotice": { "title": "GitHub कनेक्शन कालबाह्य झाले", @@ -1376,7 +1378,16 @@ }, "eyebrow": "कोड रिव्ह्यूअर", "updateFailed": "पुनरावलोकक अद्ययावत करण्यात अयशस्वी", - "configSaveFailed": "पुनरावलोकन कॉन्फिग जतन करण्यात अयशस्वी" + "configSaveFailed": "पुनरावलोकन कॉन्फिग जतन करण्यात अयशस्वी", + "status": { + "pending": "प्रलंबित", + "queued": "रांगेत", + "running": "चालू आहे", + "completed": "पूर्ण झाले", + "failed": "अयशस्वी", + "cancelled": "रद्द केले", + "interrupted": "व्यत्यय आला" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "स्रोत रेकॉर्ड", "source": "स्रोत", "sourceId": "स्रोत ID", - "viewAdvisory": "GitHub वर सल्ला पहा" + "viewAdvisory": "GitHub वर सल्ला पहा", + "statusSuperseded": "बदलले", + "statusFixed": "निराकरण झाले", + "statusOpen": "उघडा", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "निराकरण आधीच सुरू झाले आहे", + "reasonNoBandwidth": "क्षमता उपलब्ध नाही", + "reasonTolerableRisk": "जोखीम सहन करण्यायोग्य आहे", + "reasonInaccurate": "शोध चुकीचा आहे", + "reasonNotUsed": "असुरक्षित कोड वापरला जात नाही", + "reasonAfterReview": "पुनरावलोकनानंतर" }, "settingsOverview": { "title": "सेटिंग्ज", @@ -1805,6 +1826,107 @@ "syncInProgress": "सुरक्षा समक्रमण आधीच सुरू आहे. कृपया पुन्हा प्रयत्न करा.", "dismissalInProgress": "हे रद्दीकरण आधीच सुरू आहे. कृपया पुन्हा प्रयत्न करा.", "couldNotReadPendingSyncs": "प्रलंबित समक्रमण वाचता आले नाही. पुन्हा प्रयत्न करा." + }, + "analysisState": { + "queued": "विश्लेषण रांगेत", + "queuedTitle": "विश्लेषण रांगेत", + "queuedDescription": "विश्लेषण क्षमता उपलब्ध होण्याची वाट पाहत आहे.", + "analyzing": "विश्लेषण करत आहे", + "analyzingTitle": "विश्लेषण करत आहे", + "analyzingDescription": "अॅप्लिकेशन कोड प्रभावित फीचरपर्यंत पोहोचू शकतो का हे तपासत आहे.", + "failed": "विश्लेषण अयशस्वी", + "failedTitle": "विश्लेषण अयशस्वी", + "failedDescription": "सुरक्षा एजंट विश्लेषण पूर्ण करू शकला नाही.", + "extractionFailed": "पुनरावलोकन आवश्यक", + "extractionFailedTitle": "पुनरावलोकन आवश्यक", + "extractionFailedDescription": "तांत्रिक अहवाल संरचित निकालात बदलता आला नाही.", + "exploitable": "शोषणयोग्य", + "exploitableTitle": "शोषणयोग्य", + "exploitableDescription": "अॅप्लिकेशन कोड प्रभावित फीचरपर्यंत पोहोचू शकतो.", + "notExploitable": "अप्राप्य", + "notExploitableTitle": "अप्राप्य", + "notExploitableDescription": "या भांडारात कोणताही प्राप्य मार्ग सापडला नाही.", + "unknown": "पुनरावलोकन आवश्यक", + "unknownTitle": "पुनरावलोकन आवश्यक", + "unknownDescription": "असुरक्षित फीचर प्राप्य आहे का हे विश्लेषण पुष्टी करू शकले नाही.", + "safeToDismiss": "टाकून देणे सुरक्षित", + "safeToDismissTitle": "टाकून देणे सुरक्षित", + "safeToDismissDescription": "कोडबेस विश्लेषणाशिवाय हे सुरक्षितपणे टाकून देता येईल असे ट्रायजने ठरवले.", + "manualReview": "पुनरावलोकन आवश्यक", + "manualReviewTitle": "मॅन्युअल पुनरावलोकन आवश्यक", + "manualReviewDescription": "मॅन्युअल पुनरावलोकनासाठी ट्रायजने हा शोध चिन्हांकित केला.", + "analysisRequired": "विश्लेषण आवश्यक", + "analysisRequiredTitle": "कोडबेस विश्लेषण आवश्यक", + "analysisRequiredDescription": "प्रतिसाद ठरवण्यापूर्वी भांडाराचे विश्लेषण करण्याची ट्रायज शिफारस करते.", + "completed": "विश्लेषित", + "completedTitle": "विश्लेषित", + "completedDescription": "कोणताही विशिष्ट निकाल नोंदवल्याशिवाय विश्लेषण पूर्ण झाले.", + "notAnalyzed": "विश्लेषण केले नाही", + "notAnalyzedTitle": "विश्लेषण केले नाही", + "notAnalyzedDescription": "या शोधासाठी कोडबेस विश्लेषण अजून चाललेले नाही." + }, + "deadline": { + "fixedBeforeDeadline": "मुदतीपूर्वी निराकरण झाले", + "fixed": "निराकरण झाले", + "fixedOn": "{{date}} रोजी निराकरण झाले", + "resolutionRecorded": "निकाल नोंदवला", + "superseded": "बदलले", + "dismissed": "रद्द केलेले", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "मुदत निश्चित नाही", + "noSlaDeadline": "SLA मुदत नाही", + "dueOn": "मुदत {{date}}", + "overdueNow": "उशीर", + "overdue_one": "{{count}} दिवस उशीर", + "overdue_other": "{{count}} दिवस उशीर", + "dueToday": "आज मुदत", + "dueTomorrow": "उद्या मुदत", + "dueInDays_one": "{{count}} दिवसात मुदत", + "dueInDays_other": "{{count}} दिवसांत मुदत", + "overdue": "{{count}} दिवस उशीर", + "dueInDays": "{{count}} दिवसांत मुदत" + }, + "remediationStatus": { + "cancellationRequested": "रद्दीकरण विनंती केली", + "notStarted": "सुरू केलेले नाही", + "queued": "रांगेत", + "starting": "सुरू होत आहे", + "inProgress": "चालू आहे", + "draftPrOpened": "ड्राफ्ट PR उघडला", + "prOpened": "PR उघडला", + "blocked": "अडकला", + "failed": "अयशस्वी", + "noChangesNeeded": "बदल आवश्यक नाहीत", + "cancelled": "रद्द केले", + "originAutomaticPolicy": "स्वयंचलित धोरण", + "originIncludeExistingPolicy": "विद्यमान समावेश धोरण", + "originManual": "मॅन्युअल", + "validationCheck": "प्रमाणन तपासणी {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "सुरक्षा शोध यापुढे अस्तित्वात नाही.", + "approvalRequired": "स्वयं उपायासाठी मंजुरी आवश्यक. मंजुरी देण्यासाठी उपाय स्वतः सुरू करा.", + "findingNotOpen": "शोध यापुढे खुला नाही.", + "repoNotInScope": "सुरक्षा एजंटसाठी भांडार निवडलेले नाही.", + "analysisRequired": "उपाय सुरू करण्यापूर्वी कोडबेस विश्लेषण चालवा.", + "sandboxAnalysisRequired": "उपाय सुरू करण्यापूर्वी कोडबेस विश्लेषण चालवा.", + "staleAnalysis": "विश्लेषणानंतर शोध बदलला. उपाय सुरू करण्यापूर्वी विश्लेषण पुन्हा चालवा.", + "notExploitable": "विश्लेषणाला प्राप्य असुरक्षित मार्ग सापडला नाही. स्वयं उपाय अनुपलब्ध.", + "exploitabilityUnknown": "शोषणक्षमता विश्लेषण पुष्टी करू शकले नाही. एक-क्लिक उपायापूर्वी मॅन्युअल पुनरावलोकन आवश्यक.", + "manualReviewRequired": "विश्लेषण मॅन्युअल पुनरावलोकनाची शिफारस करते, म्हणून एक-क्लिक उपाय अनुपलब्ध.", + "monitorRequired": "PR उघडण्याऐवजी निरीक्षण करण्याची विश्लेषण शिफारस करते.", + "triageOnly": "फक्त ट्रायज पूर्ण झाले. उपाय सुरू करण्यापूर्वी कोडबेस विश्लेषण चालवा.", + "actionNotConcrete": "कोणताही ठोस डिपेंडन्सी पॅच किंवा सुचवलेले निराकरण उपलब्ध नाही.", + "remediationActive": "उपायाचा प्रयत्न आधीच सक्रिय आहे.", + "prAlreadyOpened": "उपाय PR आधीच खुला आहे.", + "duplicateAnalysisResult": "या विश्लेषण निकालाने आधीच उपाय कार्य निर्माण केले.", + "retryNotAllowed": "या प्रयत्नासाठी पुन्हा प्रयत्न उपलब्ध नाही.", + "securityAgentDisabled": "या मालकासाठी सुरक्षा एजंट अक्षम आहे.", + "autoRemediationDisabled": "स्वयं उपाय अक्षम आहे. सुरक्षा गेट्स पूर्ण झाल्यावर मॅन्युअल उपाय सुरू होऊ शकतो.", + "includeExistingDisabled": "विद्यमान शोध स्वयंचलित उपायातून वगळले आहेत.", + "belowThreshold": "शोध स्वयंचलित तीव्रता मर्यादेखाली आहे. सुरक्षा गेट्स पूर्ण झाल्यावर मॅन्युअल उपाय सुरू होऊ शकतो.", + "beforeEnablement": "स्वयं उपाय सक्षम होण्यापूर्वी विश्लेषण पूर्ण झाले. सुरक्षा गेट्स पूर्ण झाल्यावर मॅन्युअल उपाय सुरू होऊ शकतो.", + "generic": "या शोधासाठी उपाय अनुपलब्ध आहे." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index a68a876be7..66a7ae4e15 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -512,7 +512,9 @@ "pendingComment_other": "komen tertunda", "submitCountOfTotal": "Hantar {{displayFreshCount}} daripada {{displayTotalCount}} komen", "submitReview": "Hantar semakan", - "partialPostedMessage": "Menghantar {{displayFreshCount}} komen. {{displayStaleCount}} komen menunjuk kepada komit yang lebih lama dan kekal dalam giliran anda." + "partialPostedMessage": "Menghantar {{displayFreshCount}} komen. {{displayStaleCount}} komen menunjuk kepada komit yang lebih lama dan kekal dalam giliran anda.", + "blockedRequestChanges": "Tambahkan ringkasan atau sekurang-kurangnya satu komen untuk meminta perubahan.", + "blockedComment": "Tambahkan ringkasan atau sekurang-kurangnya satu komen untuk menghantar semakan komen." }, "reconnectNotice": { "title": "Sambungan GitHub telah tamat tempoh", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Semakan Kod", "updateFailed": "Gagal mengemas kini penyemak", - "configSaveFailed": "Gagal menyimpan konfigurasi semakan" + "configSaveFailed": "Gagal menyimpan konfigurasi semakan", + "status": { + "pending": "Tertunda", + "queued": "Dijadualkan", + "running": "Sedang berjalan", + "completed": "Selesai", + "failed": "Gagal", + "cancelled": "Dibatalkan", + "interrupted": "Terganggu" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Rekod sumber", "source": "Sumber", "sourceId": "ID sumber", - "viewAdvisory": "Lihat nasihat di GitHub" + "viewAdvisory": "Lihat nasihat di GitHub", + "statusSuperseded": "Digantikan", + "statusFixed": "Diperbaiki", + "statusOpen": "Terbuka", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Pembetulan telah dimulakan", + "reasonNoBandwidth": "Tiada kapasiti yang tersedia", + "reasonTolerableRisk": "Risiko boleh diterima", + "reasonInaccurate": "Penemuan itu tidak tepat", + "reasonNotUsed": "Kod terdedah tidak digunakan", + "reasonAfterReview": "selepas semakan" }, "settingsOverview": { "title": "Tetapan", @@ -1805,6 +1826,107 @@ "syncInProgress": "Penyegerakan keselamatan sedang berjalan. Sila cuba lagi.", "dismissalInProgress": "Pembuangan ini sedang berjalan. Sila cuba lagi.", "couldNotReadPendingSyncs": "Tidak dapat membaca penyegerakan yang belum selesai. Cuba lagi." + }, + "analysisState": { + "queued": "Analisis dijadualkan", + "queuedTitle": "Analisis dijadualkan", + "queuedDescription": "Menunggu kapasiti analisis tersedia.", + "analyzing": "Menganalisis", + "analyzingTitle": "Menganalisis", + "analyzingDescription": "Menyemak sama ada kod aplikasi boleh mencapai ciri yang terjejas.", + "failed": "Analisis gagal", + "failedTitle": "Analisis gagal", + "failedDescription": "Security Agent tidak dapat melengkapkan analisis.", + "extractionFailed": "Memerlukan semakan", + "extractionFailedTitle": "Memerlukan semakan", + "extractionFailedDescription": "Laporan teknikal tidak dapat ditukar menjadi hasil berstruktur.", + "exploitable": "Boleh dieksploitasi", + "exploitableTitle": "Boleh dieksploitasi", + "exploitableDescription": "Kod aplikasi boleh mencapai ciri yang terjejas.", + "notExploitable": "Tidak dapat dicapai", + "notExploitableTitle": "Tidak dapat dicapai", + "notExploitableDescription": "Tiada laluan boleh dicapai ditemui dalam repositori ini.", + "unknown": "Memerlukan semakan", + "unknownTitle": "Memerlukan semakan", + "unknownDescription": "Analisis tidak dapat mengesahkan sama ada ciri terdedah boleh dicapai.", + "safeToDismiss": "Selamat untuk diketepikan", + "safeToDismissTitle": "Selamat untuk diketepikan", + "safeToDismissDescription": "Triaj menentukan ini boleh diketepikan dengan selamat tanpa analisis kod asas.", + "manualReview": "Memerlukan semakan", + "manualReviewTitle": "Perlu semakan manual", + "manualReviewDescription": "Triaj menandakan penemuan ini untuk semakan manual.", + "analysisRequired": "Analisis diperlukan", + "analysisRequiredTitle": "Analisis kod asas diperlukan", + "analysisRequiredDescription": "Triaj mengesyorkan menganalisis repositori sebelum memutuskan tindakan.", + "completed": "Dianalisis", + "completedTitle": "Dianalisis", + "completedDescription": "Analisis selesai tanpa sebarang hasil khusus direkodkan.", + "notAnalyzed": "Tidak dianalisis", + "notAnalyzedTitle": "Tidak dianalisis", + "notAnalyzedDescription": "Analisis kod asas belum dijalankan untuk penemuan ini." + }, + "deadline": { + "fixedBeforeDeadline": "Diperbaiki sebelum tarikh akhir", + "fixed": "Diperbaiki", + "fixedOn": "Diperbaiki pada {{date}}", + "resolutionRecorded": "Resolusi direkodkan", + "superseded": "Digantikan", + "dismissed": "Dibuang", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Tarikh akhir tidak ditetapkan", + "noSlaDeadline": "Tiada tarikh akhir SLA", + "dueOn": "Tarikh akhir {{date}}", + "overdueNow": "Tertunggak", + "overdue_other": "{{count}} hari tertunggak", + "dueToday": "Tarikh akhir hari ini", + "dueTomorrow": "Tarikh akhir esok", + "dueInDays_other": "Tarikh akhir dalam {{count}} hari", + "overdue": "{{count}} hari tertunggak", + "overdue_one": "{{count}} hari tertunggak", + "dueInDays": "Tarikh akhir dalam {{count}} hari", + "dueInDays_one": "Tarikh akhir dalam {{count}} hari" + }, + "remediationStatus": { + "cancellationRequested": "Pembatalan diminta", + "notStarted": "Belum dimulakan", + "queued": "Dijadualkan", + "starting": "Sedang dimulakan", + "inProgress": "Sedang berjalan", + "draftPrOpened": "PR draf dibuka", + "prOpened": "PR dibuka", + "blocked": "Disekat", + "failed": "Gagal", + "noChangesNeeded": "Tiada perubahan diperlukan", + "cancelled": "Dibatalkan", + "originAutomaticPolicy": "Dasar automatik", + "originIncludeExistingPolicy": "Dasar termasuk sedia ada", + "originManual": "Manual", + "validationCheck": "Semakan pengesahan {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Penemuan keselamatan tidak lagi wujud.", + "approvalRequired": "Pemulihan Auto memerlukan kelulusan. Mulakan pemulihan secara manual untuk meluluskannya.", + "findingNotOpen": "Penemuan tidak lagi terbuka.", + "repoNotInScope": "Repositori tidak dipilih untuk Security Agent.", + "analysisRequired": "Jalankan analisis kod asas sebelum memulakan pemulihan.", + "sandboxAnalysisRequired": "Jalankan analisis kod asas sebelum memulakan pemulihan.", + "staleAnalysis": "Penemuan berubah selepas analisis. Jalankan semula analisis sebelum memulakan pemulihan.", + "notExploitable": "Analisis tidak menemui laluan terdedah yang boleh dicapai. Pemulihan Auto tidak tersedia.", + "exploitabilityUnknown": "Analisis tidak dapat mengesahkan kebolehkesploitasian. Semakan manual diperlukan sebelum pemulihan satu klik.", + "manualReviewRequired": "Analisis mengesyorkan semakan manual, jadi pemulihan satu klik tidak tersedia.", + "monitorRequired": "Analisis mengesyorkan pemantauan dan bukannya membuka PR.", + "triageOnly": "Hanya triaj yang selesai. Jalankan analisis kod asas sebelum memulakan pemulihan.", + "actionNotConcrete": "Tiada tampalan kebergantungan konkrit atau pembetulan yang dicadangkan tersedia.", + "remediationActive": "Percubaan pemulihan sudah aktif.", + "prAlreadyOpened": "PR pemulihan sudah dibuka.", + "duplicateAnalysisResult": "Hasil analisis ini sudah menghasilkan kerja pemulihan.", + "retryNotAllowed": "Cuba semula tidak tersedia untuk percubaan ini.", + "securityAgentDisabled": "Security Agent dilumpuhkan untuk pemilik ini.", + "autoRemediationDisabled": "Pemulihan Auto dilumpuhkan. Pemulihan manual masih boleh bermula apabila gerbang keselamatan diluluskan.", + "includeExistingDisabled": "Penemuan sedia ada dikecualikan daripada pemulihan automatik.", + "belowThreshold": "Penemuan berada di bawah ambang keterukan automatik. Pemulihan manual masih boleh bermula apabila gerbang keselamatan diluluskan.", + "beforeEnablement": "Analisis selesai sebelum Pemulihan Auto didayakan. Pemulihan manual masih boleh bermula apabila gerbang keselamatan diluluskan.", + "generic": "Pemulihan tidak tersedia untuk penemuan ini." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 6b852d25f7..9ca21644d5 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -527,7 +527,9 @@ "partialPostedMessage": "Tpoġġew {{displayFreshCount}} kumment(i). {{displayStaleCount}} kumment(i) jindikaw commit aktar antik u baqgħu fil-kju tiegħek.", "pendingComment_two": "kummenti pendenti", "pendingComment_few": "kummenti pendenti", - "pendingComment_many": "kumment pendenti" + "pendingComment_many": "kumment pendenti", + "blockedRequestChanges": "Żid sommarju jew mill-inqas kumment wieħed biex titlob bidliet.", + "blockedComment": "Żid sommarju jew mill-inqas kumment wieħed biex tpoġġi reviżjoni bħala kumment." }, "reconnectNotice": { "title": "Il-konnessjoni ta' GitHub skadiet", @@ -1403,7 +1405,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Ma setax jiġi aġġornat ir-reviżur", - "configSaveFailed": "Ma setgħetx tiġi ssejvjata l-konfigurazzjoni tar-reviżjoni" + "configSaveFailed": "Ma setgħetx tiġi ssejvjata l-konfigurazzjoni tar-reviżjoni", + "status": { + "pending": "Pendenti", + "queued": "Fil-kju", + "running": "Għaddej", + "completed": "Tlesta", + "failed": "Falla", + "cancelled": "Ikkkanċellat", + "interrupted": "Interrott" + } }, "securityAgent": { "filter": { @@ -1607,7 +1618,17 @@ "sourceRecord": "Rekord tas-sors", "source": "Sors", "sourceId": "ID tas-sors", - "viewAdvisory": "Ara l-avviż fuq GitHub" + "viewAdvisory": "Ara l-avviż fuq GitHub", + "statusSuperseded": "Sostitwit", + "statusFixed": "Imsewwi", + "statusOpen": "Miftuħ", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "soluzzjoni diġà bdiet", + "reasonNoBandwidth": "l-ebda kapaċità disponibbli", + "reasonTolerableRisk": "ir-riskju huwa tollerabbli", + "reasonInaccurate": "is-sejba mhix preċiża", + "reasonNotUsed": "kodiċi vulnerabbli mhux qed jintuża", + "reasonAfterReview": "wara r-reviżjoni" }, "settingsOverview": { "title": "Settings", @@ -1838,6 +1859,113 @@ "syncInProgress": "Sinkronizzazzjoni tas-sigurtà diġà għaddejja. Jekk jogħġbok erġa' pprova.", "dismissalInProgress": "Dan it-twarrib diġà qed isir. Jekk jogħġbok erġa' pprova.", "couldNotReadPendingSyncs": "Ma setgħux jinqraw is-sinkronizzazzjonijiet pendenti. Erġa' pprova." + }, + "analysisState": { + "queued": "Analiżi fil-kju", + "queuedTitle": "Analiżi fil-kju", + "queuedDescription": "Qed tistenna li tkun disponibbli l-kapaċità tal-analiżi.", + "analyzing": "Qed janalizza", + "analyzingTitle": "Qed janalizza", + "analyzingDescription": "Qed jiġi ċċekkjat jekk il-kodiċi tal-applikazzjoni jistax jilħaq il-karatteristika affettwata.", + "failed": "L-analiżi fallejt", + "failedTitle": "L-analiżi fallejt", + "failedDescription": "Is-Security Agent ma setax itemm l-analiżi.", + "extractionFailed": "Jeħtieġ reviżjoni", + "extractionFailedTitle": "Jeħtieġ reviżjoni", + "extractionFailedDescription": "Ir-rapport tekniku ma setax jinbidel fi riżultat strutturat.", + "exploitable": "Sfruttabbli", + "exploitableTitle": "Sfruttabbli", + "exploitableDescription": "Il-kodiċi tal-applikazzjoni jista' jilħaq il-karatteristika affettwata.", + "notExploitable": "Mhux sfruttabbli", + "notExploitableTitle": "Mhux sfruttabbli", + "notExploitableDescription": "Ma nstabet l-ebda triq li tista' tintlaħaq f'dan ir-repożitorju.", + "unknown": "Jeħtieġ reviżjoni", + "unknownTitle": "Jeħtieġ reviżjoni", + "unknownDescription": "L-analiżi ma setgħetx tikkonferma jekk il-karatteristika vulnerabbli tistax tintlaħaq.", + "safeToDismiss": "Sikur biex jitwarrab", + "safeToDismissTitle": "Sikur biex jitwarrab", + "safeToDismissDescription": "It-triage ddetermina li dan jista' jitwarrab b'mod sikur mingħajr analiżi tal-kodiċi.", + "manualReview": "Jeħtieġ reviżjoni", + "manualReviewTitle": "Jeħtieġ reviżjoni manwali", + "manualReviewDescription": "It-triage mmarka din is-sejba għal reviżjoni manwali.", + "analysisRequired": "Analiżi meħtieġa", + "analysisRequiredTitle": "Analiżi tal-kodiċi meħtieġa", + "analysisRequiredDescription": "It-triage jirrakkomanda li jiġi analizzat ir-repożitorju qabel ma tittieħed deċiżjoni.", + "completed": "Analizzat", + "completedTitle": "Analizzat", + "completedDescription": "L-analiżi tlestiet mingħajr ebda riżultat speċifiku rreġistrat.", + "notAnalyzed": "Mhux analizzat", + "notAnalyzedTitle": "Mhux analizzat", + "notAnalyzedDescription": "L-analiżi tal-kodiċi għadha ma saretx għal din is-sejba." + }, + "deadline": { + "fixedBeforeDeadline": "Imsewwi qabel l-iskadenza", + "fixed": "Imsewwi", + "fixedOn": "Imsewwi {{date}}", + "resolutionRecorded": "Soluzzjoni rreġistrata", + "superseded": "Sostitwit", + "dismissed": "Mwarrab", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "L-ebda skadenza", + "noSlaDeadline": "L-ebda skadenza tal-SLA", + "dueOn": "Jiskadi {{date}}", + "overdueNow": "Tard", + "overdue_one": "{{count}} jum tard", + "overdue_two": "{{count}} jiem tard", + "overdue_few": "{{count}} jiem tard", + "overdue_many": "{{count}} jiem tard", + "overdue_other": "{{count}} jiem tard", + "dueToday": "Jiskadi llum", + "dueTomorrow": "Jiskadi għada", + "dueInDays_one": "Jiskadi fi {{count}} jum", + "dueInDays_two": "Jiskadi fi {{count}} jiem", + "dueInDays_few": "Jiskadi fi {{count}} jiem", + "dueInDays_many": "Jiskadi fi {{count}} jiem", + "dueInDays_other": "Jiskadi fi {{count}} jiem", + "overdue": "{{count}} jiem tard", + "dueInDays": "Jiskadi fi {{count}} jiem" + }, + "remediationStatus": { + "cancellationRequested": "Talba ta' kanċellazzjoni", + "notStarted": "Mhux mibdi", + "queued": "Fil-kju", + "starting": "Qed jibda", + "inProgress": "Għaddej", + "draftPrOpened": "Abbozz ta' PR miftuħ", + "prOpened": "PR miftuħa", + "blocked": "Mblokkat", + "failed": "Falla", + "noChangesNeeded": "L-ebda bidla meħtieġa", + "cancelled": "Ikkkanċellat", + "originAutomaticPolicy": "Politika awtomatika", + "originIncludeExistingPolicy": "Inkludi l-politika eżistenti", + "originManual": "Manwali", + "validationCheck": "Kontroll ta' validazzjoni {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Is-sejba tas-sigurtà ma għadhiex teżisti.", + "approvalRequired": "Ir-Rimedju Awtomatiku jeħtieġ approvazzjoni. Ibda r-rimedju manwalment biex tapprovah.", + "findingNotOpen": "Is-sejba ma għadhiex miftuħa.", + "repoNotInScope": "Ir-repożitorju mhux magħżul għas-Security Agent.", + "analysisRequired": "Mexxi l-analiżi tal-kodiċi qabel ma tibda r-rimedju.", + "sandboxAnalysisRequired": "Mexxi l-analiżi tal-kodiċi qabel ma tibda r-rimedju.", + "staleAnalysis": "Is-sejba nbidlet wara l-analiżi. Erġa' analizza qabel ma tibda r-rimedju.", + "notExploitable": "L-analiżi ma sabitx triq vulnerabbli li tista' tintlaħaq. Ir-Rimedju Awtomatiku mhux disponibbli.", + "exploitabilityUnknown": "L-analiżi ma setgħetx tikkonferma jekk tistax tiġi sfruttata. Jeħtieġ reviżjoni manwali qabel ir-rimedju b'klikk waħda.", + "manualReviewRequired": "L-analiżi tirrakkomanda reviżjoni manwali, għalhekk ir-rimedju b'klikk waħda mhux disponibbli.", + "monitorRequired": "L-analiżi tirrakkomanda monitoraġġ minflok li tiftaħ PR.", + "triageOnly": "It-triage biss tlesta. Mexxi l-analiżi tal-kodiċi qabel ma tibda r-rimedju.", + "actionNotConcrete": "L-ebda garża konkreta għad-dipendenza jew soluzzjoni proposta mhix disponibbli.", + "remediationActive": "Tentattiv ta' rimedju diġà qed isir.", + "prAlreadyOpened": "PR ta' rimedju diġà miftuħa.", + "duplicateAnalysisResult": "Dan ir-riżultat tal-analiżi diġà pproduċa xogħol ta' rimedju.", + "retryNotAllowed": "L-erġa' prova mhix disponibbli għal dan it-tentattiv.", + "securityAgentDisabled": "Is-Security Agent huwa diżattivat għal dan is-sid.", + "autoRemediationDisabled": "Ir-Rimedju Awtomatiku huwa diżattivat. Ir-rimedju manwali xorta jista' jibda meta jgħaddu l-kontrolli tas-sigurtà.", + "includeExistingDisabled": "Is-sejbiet eżistenti huma esklużi mir-rimedju awtomatiku.", + "belowThreshold": "Is-sejba hija taħt il-limitu awtomatiku tas-severità. Ir-rimedju manwali xorta jista' jibda meta jgħaddu l-kontrolli tas-sigurtà.", + "beforeEnablement": "L-analiżi tlestiet qabel ma ġie attivat ir-Rimedju Awtomatiku. Ir-rimedju manwali xorta jista' jibda meta jgħaddu l-kontrolli tas-sigurtà.", + "generic": "Ir-rimedju mhux disponibbli għal din is-sejba." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index b11332cf73..b1c9db39b8 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -512,7 +512,9 @@ "pendingComment_other": "ဆိုင်းငံ့မှတ်ချက်များ", "submitCountOfTotal": "မှတ်ချက် {{displayTotalCount}} တွင် {{displayFreshCount}} တင်သွင်းပါ", "submitReview": "သုံးသပ်မှုတင်သွင်းပါ", - "partialPostedMessage": "မှတ်ချက် {{displayFreshCount}} ခု တင်ပြီးပါပြီ။ မှတ်ချက် {{displayStaleCount}} ခုသည် အဟောင်း commit ကို ညွှန်ပြပြီး သင့်တန်းစီတွင် ရှိနေပါသည်။" + "partialPostedMessage": "မှတ်ချက် {{displayFreshCount}} ခု တင်ပြီးပါပြီ။ မှတ်ချက် {{displayStaleCount}} ခုသည် အဟောင်း commit ကို ညွှန်ပြပြီး သင့်တန်းစီတွင် ရှိနေပါသည်။", + "blockedRequestChanges": "ပြောင်းလဲမှုများ တောင်းဆိုရန် အကျဉ်းချုပ် သို့မဟုတ် အနည်းဆုံး မှတ်ချက်တစ်ခု ထည့်ပါ။", + "blockedComment": "မှတ်ချက် သုံးသပ်မှုတင်ရန် အကျဉ်းချုပ် သို့မဟုတ် အနည်းဆုံး မှတ်ချက်တစ်ခု ထည့်ပါ။" }, "reconnectNotice": { "title": "GitHub ချိတ်ဆက်မှု သက်တမ်းကုန်သွားသည်", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "သုံးသပ်သူကို အပ်ဒိတ်လုပ်ရန် မအောင်မြင်ပါ", - "configSaveFailed": "သုံးသပ်မှု ဆက်တင်ကို သိမ်းရန် မအောင်မြင်ပါ" + "configSaveFailed": "သုံးသပ်မှု ဆက်တင်ကို သိမ်းရန် မအောင်မြင်ပါ", + "status": { + "pending": "ဆိုင်းငံ့", + "queued": "တန်းစီထား", + "running": "လုပ်ဆောင်နေသည်", + "completed": "ပြီးစီး", + "failed": "မအောင်မြင်", + "cancelled": "ဖျက်သိမ်းပြီး", + "interrupted": "ကြားဖြတ်ရပ်တန့်" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "အရင်းအမြစ် မှတ်တမ်း", "source": "အရင်းအမြစ်", "sourceId": "အရင်းအမြစ် ID", - "viewAdvisory": "GitHub တွင် အကြံပြုချက် ကြည့်ရှုပါ" + "viewAdvisory": "GitHub တွင် အကြံပြုချက် ကြည့်ရှုပါ", + "statusSuperseded": "အစားထိုးခံရပြီး", + "statusFixed": "ပြင်ဆင်ပြီး", + "statusOpen": "ဖွင့်", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ပြင်ဆင်မှုတစ်ခု စတင်ပြီးဖြစ်သည်", + "reasonNoBandwidth": "စွမ်းဆောင်နိုင်မှု မရရှိနိုင်ပါ", + "reasonTolerableRisk": "စွန့်စားမှုသည် ခံနိုင်ရည်ရှိသည်", + "reasonInaccurate": "တွေ့ရှိချက်သည် မမှန်ကန်ပါ", + "reasonNotUsed": "အားနည်းချက်ရှိသော ကုဒ်ကို အသုံးမပြုပါ", + "reasonAfterReview": "ပြန်လည်သုံးသပ်ပြီးနောက်" }, "settingsOverview": { "title": "ဆက်တင်များ", @@ -1805,6 +1826,107 @@ "syncInProgress": "လုံခြုံရေး ထပ်တူပြုမှုတစ်ခု လုပ်ဆောင်နေပြီးဖြစ်သည်။ ထပ်စမ်းကြည့်ပါ။", "dismissalInProgress": "ဤဖျက်သိမ်းမှု လုပ်ဆောင်နေပြီးဖြစ်သည်။ ထပ်စမ်းကြည့်ပါ။", "couldNotReadPendingSyncs": "ဆိုင်းငံ့ထားသော ထပ်တူပြုမှုများကို ဖတ်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။" + }, + "analysisState": { + "queued": "ခွဲခြမ်းစိတ်ဖြာမှု တန်းစီထား", + "queuedTitle": "ခွဲခြမ်းစိတ်ဖြာမှု တန်းစီထား", + "queuedDescription": "ခွဲခြမ်းစိတ်ဖြာနိုင်သော စွမ်းဆောင်ရည် ရရှိနိုင်ရန် စောင့်ဆိုင်းနေသည်။", + "analyzing": "ခွဲခြမ်းစိတ်ဖြာနေသည်", + "analyzingTitle": "ခွဲခြမ်းစိတ်ဖြာနေသည်", + "analyzingDescription": "အပလီကေးရှင်း ကုဒ်သည် သက်ရောက်မှုရှိသော လုပ်ဆောင်ချက်သို့ ရောက်ရှိနိုင်မလား စစ်ဆေးနေသည်။", + "failed": "ခွဲခြမ်းစိတ်ဖြာမှု မအောင်မြင်", + "failedTitle": "ခွဲခြမ်းစိတ်ဖြာမှု မအောင်မြင်", + "failedDescription": "Security Agent သည် ခွဲခြမ်းစိတ်ဖြာမှုကို ပြီးမြောက်နိုင်ခြင်း မရှိခဲ့ပါ။", + "extractionFailed": "စစ်ဆေးရန် လိုအပ်", + "extractionFailedTitle": "စစ်ဆေးရန် လိုအပ်", + "extractionFailedDescription": "နည်းပညာအစီရင်ခံစာကို ဖွဲ့စည်းတည်ဆောက်ထားသော ရလဒ်အဖြစ် ပြောင်းနိုင်ခြင်း မရှိခဲ့ပါ။", + "exploitable": "အသုံးချနိုင်သော", + "exploitableTitle": "အသုံးချနိုင်သော", + "exploitableDescription": "အပလီကေးရှင်း ကုဒ်သည် သက်ရောက်မှုရှိသော လုပ်ဆောင်ချက်သို့ ရောက်ရှိနိုင်သည်။", + "notExploitable": "အသုံးချ၍မရ", + "notExploitableTitle": "အသုံးချ၍မရ", + "notExploitableDescription": "ဤသိုလှောင်မှုတွင် ရောက်ရှိနိုင်သော လမ်းကြောင်း မတွေ့ရပါ။", + "unknown": "စစ်ဆေးရန် လိုအပ်", + "unknownTitle": "စစ်ဆေးရန် လိုအပ်", + "unknownDescription": "ခွဲခြမ်းစိတ်ဖြာမှုက အားနည်းချက်ရှိသော လုပ်ဆောင်ချက်သို့ ရောက်ရှိနိုင်မမှန်း အတည်ပြုနိုင်ခြင်း မရှိခဲ့ပါ။", + "safeToDismiss": "ဖျက်ရန် လုံခြုံသည်", + "safeToDismissTitle": "ဖျက်ရန် လုံခြုံသည်", + "safeToDismissDescription": "ခွဲခြားသတ်မှတ်မှုက ဤအရာကို ကုဒ်အခြေစိုက် ခွဲခြမ်းစိတ်ဖြာမှုမပါဘဲ လုံခြုံစွာ ဖျက်သိမ်းနိုင်ကြောင်း ဆုံးဖြတ်ခဲ့သည်။", + "manualReview": "စစ်ဆေးရန် လိုအပ်", + "manualReviewTitle": "ကိုယ်တိုင် ပြန်လည်သုံးသပ်ရန် လိုအပ်", + "manualReviewDescription": "ခွဲခြားသတ်မှတ်မှုက ဤတွေ့ရှိချက်ကို ကိုယ်တိုင် ပြန်လည်သုံးသပ်ရန် အမှတ်အသားပြုခဲ့သည်။", + "analysisRequired": "ခွဲခြမ်းစိတ်ဖြာမှု လိုအပ်", + "analysisRequiredTitle": "ကုဒ်အခြေစိုက် ခွဲခြမ်းစိတ်ဖြာမှု လိုအပ်", + "analysisRequiredDescription": "ခွဲခြားသတ်မှတ်မှုက ဆုံးဖြတ်ချက်မချမီ သိုလှောင်မှုကို ခွဲခြမ်းစိတ်ဖြာရန် အကြံပြုသည်။", + "completed": "ခွဲခြမ်းစိတ်ဖြာပြီး", + "completedTitle": "ခွဲခြမ်းစိတ်ဖြာပြီး", + "completedDescription": "ခွဲခြမ်းစိတ်ဖြာမှု ပြီးစီးခဲ့သော်လည်း တိကျသောရလဒ် မှတ်တမ်းတင်မထားပါ။", + "notAnalyzed": "ခွဲခြမ်းစိတ်ဖြာမထား", + "notAnalyzedTitle": "ခွဲခြမ်းစိတ်ဖြာမထား", + "notAnalyzedDescription": "ဤတွေ့ရှိချက်အတွက် ကုဒ်အခြေစိုက် ခွဲခြမ်းစိတ်ဖြာမှု မလုပ်ဆောင်ရသေးပါ။" + }, + "deadline": { + "fixedBeforeDeadline": "သတ်မှတ်ရက်မတိုင်မီ ပြင်ဆင်ပြီး", + "fixed": "ပြင်ဆင်ပြီး", + "fixedOn": "{{date}} တွင် ပြင်ဆင်ပြီး", + "resolutionRecorded": "ဖြေရှင်းမှု မှတ်တမ်းတင်ပြီး", + "superseded": "အစားထိုးခံရပြီး", + "dismissed": "ဖျက်သိမ်းပြီး", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "သတ်မှတ်ရက် သတ်မှတ်မထား", + "noSlaDeadline": "SLA သတ်မှတ်ရက် မရှိ", + "dueOn": "{{date}} တွင် ကုန်ဆုံးမည်", + "overdueNow": "နောက်ကျနေသည်", + "overdue_other": "{{count}} ရက် ကျော်လွန်ခဲ့သည်", + "dueToday": "ယနေ့ ကုန်ဆုံးမည်", + "dueTomorrow": "မနက်ဖြန် ကုန်ဆုံးမည်", + "dueInDays_other": "{{count}} ရက်အတွင်း ကုန်ဆုံးမည်", + "overdue": "{{count}} ရက် ကျော်လွန်ခဲ့သည်", + "overdue_one": "{{count}} ရက် ကျော်လွန်ခဲ့သည်", + "dueInDays": "{{count}} ရက်အတွင်း ကုန်ဆုံးမည်", + "dueInDays_one": "{{count}} ရက်အတွင်း ကုန်ဆုံးမည်" + }, + "remediationStatus": { + "cancellationRequested": "ဖျက်သိမ်းရန် တောင်းဆိုထား", + "notStarted": "မစတင်ရသေး", + "queued": "တန်းစီထား", + "starting": "စတင်နေသည်", + "inProgress": "လုပ်ဆောင်နေသည်", + "draftPrOpened": "Draft PR ဖွင့်ပြီး", + "prOpened": "PR ဖွင့်ပြီး", + "blocked": "ပိတ်ဆို့ထား", + "failed": "မအောင်မြင်", + "noChangesNeeded": "ပြောင်းလဲမှု မလိုအပ်ပါ", + "cancelled": "ဖျက်သိမ်းပြီး", + "originAutomaticPolicy": "အလိုအလျောက် မူဝါဒ", + "originIncludeExistingPolicy": "ရှိပြီးသား မူဝါဒ ထည့်သွင်းပါ", + "originManual": "လက်ဖြင့်", + "validationCheck": "အတည်ပြုစစ်ဆေးမှု {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "လုံခြုံရေးတွေ့ရှိချက် မရှိတော့ပါ။", + "approvalRequired": "အလိုအလျောက် ပြုပြင်မှုအတွက် အတည်ပြုချက် လိုအပ်သည်။ အတည်ပြုရန် ပြုပြင်မှုကို ကိုယ်တိုင် စတင်ပါ။", + "findingNotOpen": "တွေ့ရှိချက်ကို ဖွင့်မထားတော့ပါ။", + "repoNotInScope": "ဤသိုလှောင်မှုကို Security Agent အတွက် ရွေးချယ်မထားပါ။", + "analysisRequired": "ပြုပြင်မှုမစတင်မီ ကုဒ်အခြေစိုက် ခွဲခြမ်းစိတ်ဖြာမှု လုပ်ဆောင်ပါ။", + "sandboxAnalysisRequired": "ပြုပြင်မှုမစတင်မီ ကုဒ်အခြေစိုက် ခွဲခြမ်းစိတ်ဖြာမှု လုပ်ဆောင်ပါ။", + "staleAnalysis": "ခွဲခြမ်းစိတ်ဖြာပြီးနောက် တွေ့ရှိချက် ပြောင်းလဲသွားသည်။ ပြုပြင်မှုမစတင်မီ ခွဲခြမ်းစိတ်ဖြာမှုကို ပြန်လည်လုပ်ဆောင်ပါ။", + "notExploitable": "ခွဲခြမ်းစိတ်ဖြာမှုတွင် ရောက်ရှိနိုင်သော အားနည်းချက်လမ်းကြောင်း မတွေ့ရပါ။ အလိုအလျောက် ပြုပြင်မှု မရရှိနိုင်ပါ။", + "exploitabilityUnknown": "ခွဲခြမ်းစိတ်ဖြာမှုက အသုံးချနိုင်မှုကို အတည်ပြုနိုင်ခြင်း မရှိခဲ့ပါ။ တစ်ချက်နှိပ်ပြုပြင်မှုမပြုလုပ်မီ ကိုယ်တိုင် ပြန်လည်သုံးသပ်မှု လိုအပ်ပါသည်။", + "manualReviewRequired": "ခွဲခြမ်းစိတ်ဖြာမှုက ကိုယ်တိုင် ပြန်လည်သုံးသပ်ရန် အကြံပြုသောကြောင့် တစ်ချက်နှိပ်ပြုပြင်မှု မရရှိနိုင်ပါ။", + "monitorRequired": "ခွဲခြမ်းစိတ်ဖြာမှုက PR ဖွင့်မည့်အစား စောင့်ကြည့်ရန် အကြံပြုသည်။", + "triageOnly": "ခွဲခြားသတ်မှတ်မှုသာ ပြီးစီးသည်။ ပြုပြင်မှုမစတင်မီ ကုဒ်အခြေစိုက် ခွဲခြမ်းစိတ်ဖြာမှု လုပ်ဆောင်ပါ။", + "actionNotConcrete": "ခိုင်မာသော မှီခိုပစ္စည်း ပြင်ဆင်ချက် သို့မဟုတ် အကြံပြုထားသော ပြင်ဆင်ချက် မရရှိနိုင်ပါ။", + "remediationActive": "ပြုပြင်မှု ကြိုးစားချက်တစ်ခု လုပ်ဆောင်နေပြီးဖြစ်သည်။", + "prAlreadyOpened": "ပြုပြင်မှု PR တစ်ခု ဖွင့်ပြီးဖြစ်သည်။", + "duplicateAnalysisResult": "ဤခွဲခြမ်းစိတ်ဖြာမှုရလဒ်သည် ပြုပြင်မှုလုပ်ငန်းကို ထုတ်လုပ်ပြီးဖြစ်သည်။", + "retryNotAllowed": "ဤကြိုးစားမှုအတွက် ပြန်ကြိုးစားခြင်း မရရှိနိုင်ပါ။", + "securityAgentDisabled": "ဤပိုင်ရှင်အတွက် Security Agent ကို ပိတ်ထားသည်။", + "autoRemediationDisabled": "အလိုအလျောက် ပြုပြင်မှုကို ပိတ်ထားသည်။ လုံခြုံရေးစစ်ဆေးမှုများ အောင်မြင်ပါက ကိုယ်တိုင် ပြုပြင်မှု စတင်နိုင်ဆဲဖြစ်သည်။", + "includeExistingDisabled": "ရှိပြီးသား တွေ့ရှိချက်များကို အလိုအလျောက် ပြုပြင်မှုမှ ဖယ်ထုတ်ထားသည်။", + "belowThreshold": "တွေ့ရှိချက်သည် အလိုအလျောက် အဆင့်သတ်မှတ်ချက်အောက်တွင် ရှိသည်။ လုံခြုံရေးစစ်ဆေးမှုများ အောင်မြင်ပါက ကိုယ်တိုင် ပြုပြင်မှု စတင်နိုင်ဆဲဖြစ်သည်။", + "beforeEnablement": "ခွဲခြမ်းစိတ်ဖြာမှုကို အလိုအလျောက် ပြုပြင်မှု မဖွင့်မီ ပြီးစီးခဲ့သည်။ လုံခြုံရေးစစ်ဆေးမှုများ အောင်မြင်ပါက ကိုယ်တိုင် ပြုပြင်မှု စတင်နိုင်ဆဲဖြစ်သည်။", + "generic": "ဤတွေ့ရှိချက်အတွက် ပြုပြင်မှု မရရှိနိုင်ပါ။" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index bc7997815c..649c776ece 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -512,7 +512,9 @@ "pendingComment_other": "ventende kommentarer", "submitCountOfTotal": "Send {{displayFreshCount}} av {{displayTotalCount}} kommentarer", "submitReview": "Send anmeldelse", - "partialPostedMessage": "Publiserte {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) peker på en eldre commit og ble i køen din." + "partialPostedMessage": "Publiserte {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) peker på en eldre commit og ble i køen din.", + "blockedRequestChanges": "Legg til et sammendrag eller minst én kommentar for å be om endringer.", + "blockedComment": "Legg til et sammendrag eller minst én kommentar for å sende en kommentaranmeldelse." }, "reconnectNotice": { "title": "GitHub-tilkoblingen er utløpt", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Kunne ikke oppdatere anmelderen", - "configSaveFailed": "Kunne ikke lagre anmeldelseskonfigurasjonen" + "configSaveFailed": "Kunne ikke lagre anmeldelseskonfigurasjonen", + "status": { + "pending": "Venter", + "queued": "I kø", + "running": "Kjører", + "completed": "Fullført", + "failed": "Mislyktes", + "cancelled": "Avbrutt", + "interrupted": "Avbrutt uventet" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Kildepost", "source": "Kilde", "sourceId": "Kilde-ID", - "viewAdvisory": "Vis rådgivning på GitHub" + "viewAdvisory": "Vis rådgivning på GitHub", + "statusSuperseded": "Erstattet", + "statusFixed": "Rettet", + "statusOpen": "Åpen", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "en rettelse er allerede startet", + "reasonNoBandwidth": "ingen kapasitet er tilgjengelig", + "reasonTolerableRisk": "risikoen er akseptabel", + "reasonInaccurate": "funnet er unøyaktig", + "reasonNotUsed": "sårbar kode brukes ikke", + "reasonAfterReview": "etter gjennomgang" }, "settingsOverview": { "title": "Innstillinger", @@ -1805,6 +1826,107 @@ "syncInProgress": "En sikkerhetssynkronisering pågår allerede. Prøv igjen.", "dismissalInProgress": "Denne avvisningen pågår allerede. Prøv igjen.", "couldNotReadPendingSyncs": "Kunne ikke lese ventende synkroniseringer. Prøv igjen." + }, + "analysisState": { + "queued": "Analyse i kø", + "queuedTitle": "Analyse i kø", + "queuedDescription": "Venter på at analysekapasitet blir tilgjengelig.", + "analyzing": "Analyserer", + "analyzingTitle": "Analyserer", + "analyzingDescription": "Sjekker om programkoden kan nå den berørte funksjonen.", + "failed": "Analysen mislyktes", + "failedTitle": "Analysen mislyktes", + "failedDescription": "Security Agent kunne ikke fullføre analysen.", + "extractionFailed": "Trenger gjennomgang", + "extractionFailedTitle": "Trenger gjennomgang", + "extractionFailedDescription": "Den tekniske rapporten kunne ikke gjøres om til et strukturert resultat.", + "exploitable": "Utnyttbar", + "exploitableTitle": "Utnyttbar", + "exploitableDescription": "Programkoden kan nå den berørte funksjonen.", + "notExploitable": "Ikke utnyttbar", + "notExploitableTitle": "Ikke utnyttbar", + "notExploitableDescription": "Ingen nåbar sti ble funnet i dette repositoriet.", + "unknown": "Trenger gjennomgang", + "unknownTitle": "Trenger gjennomgang", + "unknownDescription": "Analysen kunne ikke bekrefte om den sårbare funksjonen er nåbar.", + "safeToDismiss": "Trygt å avvise", + "safeToDismissTitle": "Trygt å avvise", + "safeToDismissDescription": "Triagering bestemte at dette trygt kan avvises uten kodebasisanalyse.", + "manualReview": "Trenger gjennomgang", + "manualReviewTitle": "Trenger manuell gjennomgang", + "manualReviewDescription": "Triagering merket dette funnet for manuell gjennomgang.", + "analysisRequired": "Analyse kreves", + "analysisRequiredTitle": "Kodebasisanalyse kreves", + "analysisRequiredDescription": "Triagering anbefaler å analysere repositoriet før du bestemmer deg for en respons.", + "completed": "Analysert", + "completedTitle": "Analysert", + "completedDescription": "Analysen ble fullført uten et spesifikt registrert utfall.", + "notAnalyzed": "Ikke analysert", + "notAnalyzedTitle": "Ikke analysert", + "notAnalyzedDescription": "Kodebasisanalyse har ennå ikke kjørt for dette funnet." + }, + "deadline": { + "fixedBeforeDeadline": "Rettet før fristen", + "fixed": "Rettet", + "fixedOn": "Rettet {{date}}", + "resolutionRecorded": "Løsning registrert", + "superseded": "Erstattet", + "dismissed": "Avvist", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Ingen frist angitt", + "noSlaDeadline": "Ingen SLA-frist", + "dueOn": "Forfaller {{date}}", + "overdueNow": "På overtid", + "overdue_one": "{{count}} dag på overtid", + "overdue_other": "{{count}} dager på overtid", + "dueToday": "Forfaller i dag", + "dueTomorrow": "Forfaller i morgen", + "dueInDays_one": "Forfaller om {{count}} dag", + "dueInDays_other": "Forfaller om {{count}} dager", + "overdue": "{{count}} dager på overtid", + "dueInDays": "Forfaller om {{count}} dager" + }, + "remediationStatus": { + "cancellationRequested": "Avbestilling forespurt", + "notStarted": "Ikke startet", + "queued": "I kø", + "starting": "Starter", + "inProgress": "Pågår", + "draftPrOpened": "Utkast-PR åpnet", + "prOpened": "PR åpnet", + "blocked": "Blokkert", + "failed": "Mislyktes", + "noChangesNeeded": "Ingen endringer nødvendig", + "cancelled": "Avbrutt", + "originAutomaticPolicy": "Automatisk policy", + "originIncludeExistingPolicy": "Inkluder eksisterende policy", + "originManual": "Manuell", + "validationCheck": "Valideringssjekk {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Sikkerhetsfunnet finnes ikke lenger.", + "approvalRequired": "Automatisk utbedring krever godkjenning. Start utbedringen manuelt for å godkjenne den.", + "findingNotOpen": "Funnet er ikke lenger åpent.", + "repoNotInScope": "Repositoriet er ikke valgt for Security Agent.", + "analysisRequired": "Kjør kodebasisanalyse før du starter utbedringen.", + "sandboxAnalysisRequired": "Kjør kodebasisanalyse før du starter utbedringen.", + "staleAnalysis": "Funnet endret seg etter analysen. Kjør analysen på nytt før du starter utbedringen.", + "notExploitable": "Analysen fant ingen nåbar sårbar sti. Automatisk utbedring er utilgjengelig.", + "exploitabilityUnknown": "Analysen kunne ikke bekrefte utnyttbarhet. Manuell gjennomgang kreves før utbedring med ett klikk.", + "manualReviewRequired": "Analysen anbefaler manuell gjennomgang, så utbedring med ett klikk er utilgjengelig.", + "monitorRequired": "Analysen anbefaler overvåking i stedet for å åpne en PR.", + "triageOnly": "Kun triagering er fullført. Kjør kodebasisanalyse før du starter utbedringen.", + "actionNotConcrete": "Ingen konkret avhengighetslapp eller foreslått rettelse er tilgjengelig.", + "remediationActive": "Et utbedringsforsøk er allerede aktivt.", + "prAlreadyOpened": "En utbedrings-PR er allerede åpen.", + "duplicateAnalysisResult": "Dette analyseresultatet har allerede produsert utbedringsarbeid.", + "retryNotAllowed": "Prøving på nytt er ikke tilgjengelig for dette forsøket.", + "securityAgentDisabled": "Security Agent er deaktivert for denne eieren.", + "autoRemediationDisabled": "Automatisk utbedring er deaktivert. Manuell utbedring kan fortsatt starte når sikkerhetsportene er bestått.", + "includeExistingDisabled": "Eksisterende funn er ekskludert fra automatisk utbedring.", + "belowThreshold": "Funnet er under den automatiske alvorlighetsgradsterskelen. Manuell utbedring kan fortsatt starte når sikkerhetsportene er bestått.", + "beforeEnablement": "Analysen ble fullført før automatisk utbedring ble aktivert. Manuell utbedring kan fortsatt starte når sikkerhetsportene er bestått.", + "generic": "Utbedring er utilgjengelig for dette funnet." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index 2e14cee8a2..13078999af 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -512,7 +512,9 @@ "pendingComment_other": "प्रतीक्षामा रहेका टिप्पणीहरू", "submitCountOfTotal": "{{displayTotalCount}} मध्ये {{displayFreshCount}} टिप्पणीहरू पेश गर्नुहोस्", "submitReview": "समीक्षा पेश गर्नुहोस्", - "partialPostedMessage": "{{displayFreshCount}} टिप्पणी(हरू) पेश गरियो। {{displayStaleCount}} टिप्पणी(हरू) पुरानो कमिटमा औंल्याइएको छ र तपाईंको कतारमा रह्यो।" + "partialPostedMessage": "{{displayFreshCount}} टिप्पणी(हरू) पेश गरियो। {{displayStaleCount}} टिप्पणी(हरू) पुरानो कमिटमा औंल्याइएको छ र तपाईंको कतारमा रह्यो।", + "blockedRequestChanges": "परिवर्तनहरू अनुरोध गर्न सारांश वा कम्तीमा एउटा टिप्पणी थप्नुहोस्।", + "blockedComment": "टिप्पणी समीक्षा पेश गर्न सारांश वा कम्तीमा एउटा टिप्पणी थप्नुहोस्।" }, "reconnectNotice": { "title": "GitHub जडानको म्याद सकियो", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "समीक्षक अद्यावधिक गर्न असफल भयो", - "configSaveFailed": "समीक्षा कन्फिगरेसन सुरक्षित गर्न असफल भयो" + "configSaveFailed": "समीक्षा कन्फिगरेसन सुरक्षित गर्न असफल भयो", + "status": { + "pending": "प्रतीक्षामा", + "queued": "कतारमा", + "running": "चलिरहेको", + "completed": "सम्पन्न", + "failed": "असफल", + "cancelled": "रद्द गरियो", + "interrupted": "बाधित" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "स्रोत रेकर्ड", "source": "स्रोत", "sourceId": "स्रोत ID", - "viewAdvisory": "GitHub मा सल्लाह हेर्नुहोस्" + "viewAdvisory": "GitHub मा सल्लाह हेर्नुहोस्", + "statusSuperseded": "प्रतिस्थापित", + "statusFixed": "समाधान गरियो", + "statusOpen": "खुला", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "समाधान पहिले नै सुरु भइसकेको छ", + "reasonNoBandwidth": "कुनै क्षमता उपलब्ध छैन", + "reasonTolerableRisk": "जोखिम सहनयोग्य छ", + "reasonInaccurate": "निष्कर्ष गलत छ", + "reasonNotUsed": "कमजोर कोड प्रयोग गरिएको छैन", + "reasonAfterReview": "समीक्षापछि" }, "settingsOverview": { "title": "सेटिङहरू", @@ -1805,6 +1826,107 @@ "syncInProgress": "सुरक्षा सिंक पहिले नै भइरहेको छ। कृपया फेरि प्रयास गर्नुहोस्।", "dismissalInProgress": "यो खारेजी पहिले नै भइरहेको छ। कृपया फेरि प्रयास गर्नुहोस्।", "couldNotReadPendingSyncs": "पर्खाइमा रहेका सिंकहरू पढ्न सकिएन। फेरि प्रयास गर्नुहोस्।" + }, + "analysisState": { + "queued": "विश्लेषण कतारमा", + "queuedTitle": "विश्लेषण कतारमा", + "queuedDescription": "विश्लेषण क्षमता उपलब्ध हुनको लागि प्रतीक्षा गर्दै।", + "analyzing": "विश्लेषण गर्दै", + "analyzingTitle": "विश्लेषण गर्दै", + "analyzingDescription": "अनुप्रयोग कोडले प्रभावित सुविधामा पुग्न सक्छ कि सक्दैन भनी जाँच्दै।", + "failed": "विश्लेषण असफल भयो", + "failedTitle": "विश्लेषण असफल भयो", + "failedDescription": "सुरक्षा एजेन्टले विश्लेषण पूरा गर्न सकेन।", + "extractionFailed": "समीक्षा आवश्यक", + "extractionFailedTitle": "समीक्षा आवश्यक", + "extractionFailedDescription": "प्राविधिक प्रतिवेदनलाई संरचित नतिजामा बदल्न सकिएन।", + "exploitable": "शोषणयोग्य", + "exploitableTitle": "शोषणयोग्य", + "exploitableDescription": "अनुप्रयोग कोडले प्रभावित सुविधामा पुग्न सक्छ।", + "notExploitable": "शोषणयोग्य छैन", + "notExploitableTitle": "शोषणयोग्य छैन", + "notExploitableDescription": "यस रिपोजिटरीमा कुनै पहुँचयोग्य मार्ग फेला परेन।", + "unknown": "समीक्षा आवश्यक", + "unknownTitle": "समीक्षा आवश्यक", + "unknownDescription": "विश्लेषणले कमजोर सुविधा पहुँचयोग्य छ कि छैन भनी पुष्टि गर्न सकेन।", + "safeToDismiss": "खारेज गर्न सुरक्षित", + "safeToDismissTitle": "खारेज गर्न सुरक्षित", + "safeToDismissDescription": "ट्राइएजले कोडबेस विश्लेषण बिना यो सुरक्षित रूपमा खारेज गर्न सकिने निर्धारण गर्यो।", + "manualReview": "समीक्षा आवश्यक", + "manualReviewTitle": "म्यानुअल समीक्षा आवश्यक", + "manualReviewDescription": "ट्राइएजले यो निष्कर्षलाई म्यानुअल समीक्षाका लागि चिन्ह लगायो।", + "analysisRequired": "विश्लेषण आवश्यक", + "analysisRequiredTitle": "कोडबेस विश्लेषण आवश्यक", + "analysisRequiredDescription": "ट्राइएजले प्रतिक्रिया निर्धारण गर्नु अघि रिपोजिटरी विश्लेषण गर्न सिफारिस गर्छ।", + "completed": "विश्लेषण गरिएको", + "completedTitle": "विश्लेषण गरिएको", + "completedDescription": "विश्लेषण कुनै विशेष नतिजा रेकर्ड नगरी पूरा भयो।", + "notAnalyzed": "विश्लेषण नगरिएको", + "notAnalyzedTitle": "विश्लेषण नगरिएको", + "notAnalyzedDescription": "यो निष्कर्षका लागि कोडबेस विश्लेषण अझै चलाइएको छैन।" + }, + "deadline": { + "fixedBeforeDeadline": "सीमाभन्दा अघि समाधान गरियो", + "fixed": "समाधान गरियो", + "fixedOn": "{{date}} मा समाधान गरियो", + "resolutionRecorded": "समाधान रेकर्ड गरियो", + "superseded": "प्रतिस्थापित", + "dismissed": "खारेज गरियो", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "सीमा तोकिएको छैन", + "noSlaDeadline": "कुनै SLA सीमा छैन", + "dueOn": "{{date}} मा सीमा", + "overdueNow": "ढिलो", + "overdue_one": "{{count}} दिन ढिलो", + "overdue_other": "{{count}} दिन ढिलो", + "dueToday": "आज सीमा", + "dueTomorrow": "भोलि सीमा", + "dueInDays_one": "{{count}} दिनमा सीमा", + "dueInDays_other": "{{count}} दिनमा सीमा", + "overdue": "{{count}} दिन ढिलो", + "dueInDays": "{{count}} दिनमा सीमा" + }, + "remediationStatus": { + "cancellationRequested": "रद्दीकरण अनुरोध गरियो", + "notStarted": "सुरु भएको छैन", + "queued": "कतारमा", + "starting": "सुरु हुँदै", + "inProgress": "चलिरहेको", + "draftPrOpened": "ड्राफ्ट PR खोलियो", + "prOpened": "PR खोलियो", + "blocked": "अवरुद्ध", + "failed": "असफल", + "noChangesNeeded": "कुनै परिवर्तन आवश्यक छैन", + "cancelled": "रद्द गरियो", + "originAutomaticPolicy": "स्वचालित नीति", + "originIncludeExistingPolicy": "अवस्थित नीति समावेश गर्नुहोस्", + "originManual": "म्यानुअल", + "validationCheck": "मान्यता जाँच {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "सुरक्षा निष्कर्ष अब अवस्थित छैन।", + "approvalRequired": "स्वचालित सुधारका लागि स्वीकृति आवश्यक छ। स्वीकृत गर्न सुधार म्यानुअल रूपमा सुरु गर्नुहोस्।", + "findingNotOpen": "निष्कर्ष अब खुला छैन।", + "repoNotInScope": "यो रिपोजिटरी सुरक्षा एजेन्टका लागि चयन गरिएको छैन।", + "analysisRequired": "सुधार सुरु गर्नु अघि कोडबेस विश्लेषण चलाउनुहोस्।", + "sandboxAnalysisRequired": "सुधार सुरु गर्नु अघि कोडबेस विश्लेषण चलाउनुहोस्।", + "staleAnalysis": "विश्लेषण पछि निष्कर्ष परिवर्तन भयो। सुधार सुरु गर्नु अघि विश्लेषण फेरि चलाउनुहोस्।", + "notExploitable": "विश्लेषणले कुनै पहुँचयोग्य कमजोर मार्ग फेला पारेन। स्वचालित सुधार उपलब्ध छैन।", + "exploitabilityUnknown": "विश्लेषणले शोषणयोग्यता पुष्टि गर्न सकेन। एक-क्लिक सुधार अघि म्यानुअल समीक्षा आवश्यक छ।", + "manualReviewRequired": "विश्लेषणले म्यानुअल समीक्षा सिफारिस गर्छ, त्यसैले एक-क्लिक सुधार उपलब्ध छैन।", + "monitorRequired": "विश्लेषणले PR खोल्नुको सट्टा अनुगमन सिफारिस गर्छ।", + "triageOnly": "केवल ट्राइएज पूरा भएको छ। सुधार सुरु गर्नु अघि कोडबेस विश्लेषण चलाउनुहोस्।", + "actionNotConcrete": "कुनै ठोस निर्भरता प्याच वा सुझाव गरिएको समाधान उपलब्ध छैन।", + "remediationActive": "सुधार प्रयास पहिले नै सक्रिय छ।", + "prAlreadyOpened": "सुधार PR पहिले नै खुला छ।", + "duplicateAnalysisResult": "यस विश्लेषण नतिजाले पहिले नै सुधार कार्य उत्पादन गरिसकेको छ।", + "retryNotAllowed": "यस प्रयासका लागि पुन: प्रयास उपलब्ध छैन।", + "securityAgentDisabled": "यस मालिकका लागि सुरक्षा एजेन्ट असक्षम छ।", + "autoRemediationDisabled": "स्वचालित सुधार असक्षम छ। सुरक्षा गेटहरू पार भएमा म्यानुअल सुधार अझै सुरु हुन सक्छ।", + "includeExistingDisabled": "अवस्थित निष्कर्षहरू स्वचालित सुधारबाट बहिष्कृत छन्।", + "belowThreshold": "निष्कर्ष स्वचालित गम्भीरता थ्रेसहोल्डभन्दा तल छ। सुरक्षा गेटहरू पार भएमा म्यानुअल सुधार अझै सुरु हुन सक्छ।", + "beforeEnablement": "विश्लेषण स्वचालित सुधार सक्षम हुनु अघि पूरा भयो। सुरक्षा गेटहरू पार भएमा म्यानुअल सुधार अझै सुरु हुन सक्छ।", + "generic": "यस निष्कर्षका लागि सुधार उपलब्ध छैन।" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index b6dd59b1e0..fe47c3780d 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -939,7 +939,16 @@ "set": "Ingesteld" }, "updateFailed": "Reviewer bijwerken mislukt", - "configSaveFailed": "Reviewconfig opslaan mislukt" + "configSaveFailed": "Reviewconfig opslaan mislukt", + "status": { + "pending": "In behandeling", + "queued": "In wachtrij", + "running": "Bezig", + "completed": "Voltooid", + "failed": "Mislukt", + "cancelled": "Geannuleerd", + "interrupted": "Onderbroken" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "Onbekend", "updated": "Bijgewerkt", "viewAdvisory": "Advies bekijken op GitHub", - "vulnerableVersions": "Kwetsbare versies" + "vulnerableVersions": "Kwetsbare versies", + "statusSuperseded": "Vervangen", + "statusFixed": "Opgelost", + "statusOpen": "Open", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "er is al een oplossing gestart", + "reasonNoBandwidth": "er is geen capaciteit beschikbaar", + "reasonTolerableRisk": "het risico is aanvaardbaar", + "reasonInaccurate": "de bevinding is onjuist", + "reasonNotUsed": "kwetsbare code wordt niet gebruikt", + "reasonAfterReview": "na beoordeling" }, "findingList": { "clearFilters": "Filters wissen", @@ -1368,6 +1387,107 @@ "syncInProgress": "Een beveiligingssynchronisatie is al bezig. Probeer het opnieuw.", "dismissalInProgress": "Deze afwijzing is al bezig. Probeer het opnieuw.", "couldNotReadPendingSyncs": "Openstaande synchronisaties konden niet worden gelezen. Probeer het opnieuw." + }, + "analysisState": { + "queued": "Analyse in wachtrij", + "queuedTitle": "Analyse in wachtrij", + "queuedDescription": "Wachten tot er analysecapaciteit beschikbaar is.", + "analyzing": "Analyseren", + "analyzingTitle": "Analyseren", + "analyzingDescription": "Controleren of applicatiecode het getroffen onderdeel kan bereiken.", + "failed": "Analyse mislukt", + "failedTitle": "Analyse mislukt", + "failedDescription": "Security Agent kon de analyse niet voltooien.", + "extractionFailed": "Beoordeling nodig", + "extractionFailedTitle": "Beoordeling nodig", + "extractionFailedDescription": "Het technische rapport kon niet worden omgezet in een gestructureerd resultaat.", + "exploitable": "Exploiteerbaar", + "exploitableTitle": "Exploiteerbaar", + "exploitableDescription": "Applicatiecode kan het getroffen onderdeel bereiken.", + "notExploitable": "Onbereikbaar", + "notExploitableTitle": "Onbereikbaar", + "notExploitableDescription": "In deze repository is geen bereikbaar pad gevonden.", + "unknown": "Beoordeling nodig", + "unknownTitle": "Beoordeling nodig", + "unknownDescription": "Analyse kon niet bevestigen of het kwetsbare onderdeel bereikbaar is.", + "safeToDismiss": "Veilig om af te wijzen", + "safeToDismissTitle": "Veilig om af te wijzen", + "safeToDismissDescription": "Triage bepaalde dat dit zonder codebase-analyse veilig kan worden afgewezen.", + "manualReview": "Beoordeling nodig", + "manualReviewTitle": "Handmatige beoordeling nodig", + "manualReviewDescription": "Triage markeerde deze bevinding voor handmatige beoordeling.", + "analysisRequired": "Analyse vereist", + "analysisRequiredTitle": "Codebase-analyse vereist", + "analysisRequiredDescription": "Triage raadt aan de repository te analyseren voordat je een reactie kiest.", + "completed": "Geanalyseerd", + "completedTitle": "Geanalyseerd", + "completedDescription": "Analyse voltooid zonder een specifieke uitkomst vast te leggen.", + "notAnalyzed": "Niet geanalyseerd", + "notAnalyzedTitle": "Niet geanalyseerd", + "notAnalyzedDescription": "Codebase-analyse is voor deze bevinding nog niet uitgevoerd." + }, + "deadline": { + "fixedBeforeDeadline": "Opgelost vóór deadline", + "fixed": "Opgelost", + "fixedOn": "Opgelost op {{date}}", + "resolutionRecorded": "Oplossing vastgelegd", + "superseded": "Vervangen", + "dismissed": "Afgewezen", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Deadline niet ingesteld", + "noSlaDeadline": "Geen SLA-deadline", + "dueOn": "Vervalt op {{date}}", + "overdueNow": "Achterstallig", + "overdue_one": "{{count}} dag achterstallig", + "overdue_other": "{{count}} dagen achterstallig", + "dueToday": "Vandaag vervallen", + "dueTomorrow": "Morgen vervallen", + "dueInDays_one": "Vervalt over {{count}} dag", + "dueInDays_other": "Vervalt over {{count}} dagen", + "overdue": "{{count}} dagen achterstallig", + "dueInDays": "Vervalt over {{count}} dagen" + }, + "remediationStatus": { + "cancellationRequested": "Annulering aangevraagd", + "notStarted": "Niet gestart", + "queued": "In wachtrij", + "starting": "Starten", + "inProgress": "Bezig", + "draftPrOpened": "Concept-PR geopend", + "prOpened": "PR geopend", + "blocked": "Geblokkeerd", + "failed": "Mislukt", + "noChangesNeeded": "Geen wijzigingen nodig", + "cancelled": "Geannuleerd", + "originAutomaticPolicy": "Automatisch beleid", + "originIncludeExistingPolicy": "Bestaand beleid opnemen", + "originManual": "Handmatig", + "validationCheck": "Validatiecontrole {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "De beveiligingsbevinding bestaat niet meer.", + "approvalRequired": "Automatisch herstel vereist goedkeuring. Start het herstel handmatig om het goed te keuren.", + "findingNotOpen": "De bevinding is niet meer open.", + "repoNotInScope": "De repository is niet geselecteerd voor Security Agent.", + "analysisRequired": "Voer codebase-analyse uit voordat je herstel start.", + "sandboxAnalysisRequired": "Voer codebase-analyse uit voordat je herstel start.", + "staleAnalysis": "De bevinding is na de analyse gewijzigd. Voer de analyse opnieuw uit voordat je herstel start.", + "notExploitable": "Analyse vond geen bereikbaar kwetsbaar pad. Automatisch herstel is niet beschikbaar.", + "exploitabilityUnknown": "Analyse kon de exploiteerbaarheid niet bevestigen. Handmatige beoordeling is vereist vóór herstel met één klik.", + "manualReviewRequired": "Analyse raadt handmatige beoordeling aan, dus herstel met één klik is niet beschikbaar.", + "monitorRequired": "Analyse raadt monitoring aan in plaats van een PR te openen.", + "triageOnly": "Alleen triage is voltooid. Voer codebase-analyse uit voordat je herstel start.", + "actionNotConcrete": "Er is geen concrete dependency-patch of voorgestelde oplossing beschikbaar.", + "remediationActive": "Er is al een herstelpoging actief.", + "prAlreadyOpened": "Er is al een herstel-PR open.", + "duplicateAnalysisResult": "Dit analyseresultaat heeft al herstelwerk opgeleverd.", + "retryNotAllowed": "Opnieuw proberen is niet beschikbaar voor deze poging.", + "securityAgentDisabled": "Security Agent is uitgeschakeld voor deze eigenaar.", + "autoRemediationDisabled": "Automatisch herstel is uitgeschakeld. Handmatig herstel kan nog steeds starten als de veiligheidscontroles slagen.", + "includeExistingDisabled": "Bestaande bevindingen zijn uitgesloten van automatisch herstel.", + "belowThreshold": "De bevinding zit onder de automatische ernstdrempel. Handmatig herstel kan nog steeds starten als de veiligheidscontroles slagen.", + "beforeEnablement": "Analyse is voltooid voordat Automatisch herstel werd ingeschakeld. Handmatig herstel kan nog steeds starten als de veiligheidscontroles slagen.", + "generic": "Herstel is niet beschikbaar voor deze bevinding." } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "Review verzenden", "partialPostedMessage": "{{displayFreshCount}} opmerking(en) geplaatst. {{displayStaleCount}} opmerking(en) verwijzen naar een oudere commit en blijven in je wachtrij.", "submitCountOfTotal": "{{displayFreshCount}} van {{displayTotalCount}} opmerkingen verzenden", - "submitReview": "Review verzenden" + "submitReview": "Review verzenden", + "blockedRequestChanges": "Voeg een samenvatting of ten minste één opmerking toe om wijzigingen aan te vragen.", + "blockedComment": "Voeg een samenvatting of ten minste één opmerking toe om een review met opmerking te plaatsen." }, "fileStatus": { "added": "Toegevoegd", diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index 6227c65f16..e56d0d6193 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -512,7 +512,9 @@ "pendingComment_other": "yaadota eeggatani", "submitCountOfTotal": "Yaadota {{displayFreshCount}} keessaa {{displayTotalCount}} dhiheessi", "submitReview": "Ilalloo dhiheessi", - "partialPostedMessage": "Yaadota {{displayFreshCount}} maxxanfame. Yaadotni {{displayStaleCount}} commit dheeraa irratti mul'atu fi tarree kee keessa turan." + "partialPostedMessage": "Yaadota {{displayFreshCount}} maxxanfame. Yaadotni {{displayStaleCount}} commit dheeraa irratti mul'atu fi tarree kee keessa turan.", + "blockedRequestChanges": "Jijjiirama gaafachuuf guduunfaa ykn yoo xiqqaate yaada tokko dabali.", + "blockedComment": "Ilalloo yaadaa maxxansuuf guduunfaa ykn yoo xiqqaate yaada tokko dabali." }, "reconnectNotice": { "title": "Walqabii GitHub xumurame", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Sakatta'a Koodii", "updateFailed": "Ilaaltuu haaromsuu dadhabe.", - "configSaveFailed": "Qindaa'ina ilalloo kuusuu dadhabe." + "configSaveFailed": "Qindaa'ina ilalloo kuusuu dadhabe.", + "status": { + "pending": "Eeggachaa", + "queued": "Eeggachuu keessa", + "running": "Hojii irra jira", + "completed": "Xumurame", + "failed": "Dadhabe", + "cancelled": "Haqe", + "interrupted": "Citatte" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Ragaalee madda", "source": "Madda", "sourceId": "ID madda", - "viewAdvisory": "Gorsa 'GitHub' irratti ilaali" + "viewAdvisory": "Gorsa 'GitHub' irratti ilaali", + "statusSuperseded": "Bakka bu'ame", + "statusFixed": "Furmaate", + "statusOpen": "Banaa", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "furmaan duraan jalqabeera", + "reasonNoBandwidth": "dandeettiin hin jiru", + "reasonTolerableRisk": "balaan obsa danda'ama", + "reasonInaccurate": "raawwiin dogoggoraadha", + "reasonNotUsed": "codeen balaa qabu hin fayyadamamu", + "reasonAfterReview": "sakatta'a booda" }, "settingsOverview": { "title": "Qindaa'ina", @@ -1805,6 +1826,107 @@ "syncInProgress": "Walitti qabamni nageenyaa duraanuu hojii irraa jira. Irra deebi'ii yaali.", "dismissalInProgress": "Dhiifamni kun duraanuu hojii irraa jira. Irra deebi'ii yaali.", "couldNotReadPendingSyncs": "Walitti qabamoota eegachaa jiran dubbisuu hin dandeenye. Irra deebi'ii yaali." + }, + "analysisState": { + "queued": "Anaaliziin eeggachuu keessa jira", + "queuedTitle": "Anaaliziin eeggachuu keessa jira", + "queuedDescription": "Dandeettii anaalizii argamuuf eeggachaa jira.", + "analyzing": "Xiinxalamaa", + "analyzingTitle": "Xiinxalamaa", + "analyzingDescription": "Koodiin app qaama miidhame birra gahuu danda'u ilaalaa jira.", + "failed": "Xiinxalli baade", + "failedTitle": "Xiinxalli baade", + "failedDescription": "Security Agent anaalizii xumuruu hin dandeenye.", + "extractionFailed": "Sakatta'uu barbaada", + "extractionFailedTitle": "Sakatta'uu barbaada", + "extractionFailedDescription": "Gabaasni teeknikaalaa bu'aa qindaa'aa ta'uutti jijjiiramuu hin danda'u.", + "exploitable": "Itti fayyadamuu danda'u", + "exploitableTitle": "Itti fayyadamuu danda'u", + "exploitableDescription": "Koodiin app qaama miidhame birra gaha.", + "notExploitable": "Gahuu hin danda'u", + "notExploitableTitle": "Gahuu hin danda'u", + "notExploitableDescription": "Repository kana keessatti karaan gahuu danda'u hin argamne.", + "unknown": "Sakatta'uu barbaada", + "unknownTitle": "Sakatta'uu barbaada", + "unknownDescription": "Xiinxalli qaamni balaa qabu gahamuun danda'u mirkaneessuu hin dandeenye.", + "safeToDismiss": "Irra darbuun nagaa", + "safeToDismissTitle": "Irra darbuun nagaa", + "safeToDismissDescription": "Qoonfiin xiinxala codebase malee irra darbuun nagaa ta'uu murteesseera.", + "manualReview": "Sakatta'uu barbaada", + "manualReviewTitle": "Sakatta'a harkaa barbaada", + "manualReviewDescription": "Qoonfiin raawwii kana sakatta'a harkaaaf mallatteesseera.", + "analysisRequired": "Anaalizii barbaachisa", + "analysisRequiredTitle": "Xiinxalli codebase barbaachisa", + "analysisRequiredDescription": "Qoonfiin deebii murteessuun dura repository xiinxaluu gorsa.", + "completed": "Anaalizii godhame", + "completedTitle": "Anaalizii godhame", + "completedDescription": "Anaaliziin bu'aa addaa galmeessuu malee xumurame.", + "notAnalyzed": "Hin xiinxalamne", + "notAnalyzedTitle": "Hin xiinxalamne", + "notAnalyzedDescription": "Xiinxalli codebase raawwii kanaaf hamma ammaatti hin hojjatamne." + }, + "deadline": { + "fixedBeforeDeadline": "Yeroo dhumaa dura furmaate", + "fixed": "Furmaate", + "fixedOn": "{{date}} irratti furmaate", + "resolutionRecorded": "Furmaan galmaa'eera", + "superseded": "Bakka bu'ame", + "dismissed": "Dhiifame", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Yeroon dhumaa hin saagamne", + "noSlaDeadline": "Yeroon dhumaa SLA hin jiru", + "dueOn": "Yeroon dhumaa {{date}}", + "overdueNow": "Darbeera", + "overdue_one": "Guyyaa {{count}} darbeera", + "overdue_other": "Guyyaa {{count}} darbeera", + "dueToday": "Har'a yeroon dhumaa", + "dueTomorrow": "Boru yeroon dhumaa", + "dueInDays_one": "Yeroo dhumaa guyyaa {{count}} keessatti", + "dueInDays_other": "Yeroo dhumaa guyyaa {{count}} keessatti", + "overdue": "Guyyaa {{count}} darbeera", + "dueInDays": "Yeroo dhumaa guyyaa {{count}} keessatti" + }, + "remediationStatus": { + "cancellationRequested": "Haquun gaafatame", + "notStarted": "Hin jalqabne", + "queued": "Eeggachuu keessa jira", + "starting": "Jalqabaa jira", + "inProgress": "Hojii irra jira", + "draftPrOpened": "PR daaftarii baname", + "prOpened": "PR baname", + "blocked": "Dhaabbate", + "failed": "Dadhabe", + "noChangesNeeded": "Jijjiirri barbaachisaa hin jiru", + "cancelled": "Haqe", + "originAutomaticPolicy": "Imaammata of-rakkoo", + "originIncludeExistingPolicy": "Imaammata kan jiran dabalu", + "originManual": "Harkaan", + "validationCheck": "Mirkannoo {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Raawwiin nageenyaa deebi'ee hin jiru.", + "approvalRequired": "Furamuun of-rakkoo mirkaneeffannaa barbaachisa. Mirkaneessuuf furamuu harkaatiin jalqabi.", + "findingNotOpen": "Raawwiin deebi'ee banaa miti.", + "repoNotInScope": "Repository Security Agent'f hin filatamne.", + "analysisRequired": "Furamuu jalqabuun dura xiinxala codebase hojjedhu.", + "sandboxAnalysisRequired": "Furamuu jalqabuun dura xiinxala codebase hojjedhu.", + "staleAnalysis": "Raawwiin xiinxala booda jijjirameera. Furamuu jalqabuun dura xiinxala deebi'ii hojjedhu.", + "notExploitable": "Xiinxalli karaa balaa gahuu danda'u hin argamne. Furamuun of-rakkoo hin jiraatu.", + "exploitabilityUnknown": "Xiinxalli itti fayyadamuu danda'uu mirkaneessuu hin dandeenye. Furamuu tuqa tokkoon jalqabuun dura sakatta'a harkaa barbaachisa.", + "manualReviewRequired": "Xiinxalli sakatta'a harkaa gorsa, kanaaf furamuun tuqa tokkoon hin jiraatu.", + "monitorRequired": "Xiinxalli PR banuu irra monitooreessuu gorsa.", + "triageOnly": "Qoonfiin qofa xumurame. Furamuu jalqabuun dura xiinxala codebase hojjedhu.", + "actionNotConcrete": "Hir'inni dependency ykn furmaan akeekame hin jiru.", + "remediationActive": "Yaalii furamuu tokko duraan hojii irra jira.", + "prAlreadyOpened": "PR furamuu tokko duraan banameera.", + "duplicateAnalysisResult": "Bu'aan xiinxalaa kanaa duraan hojiin furamuu uumeera.", + "retryNotAllowed": "Irra deebi'uun yaalii kanaaf hin jiraatu.", + "securityAgentDisabled": "Security Agent abbaa kanaaf dhaabbateera.", + "autoRemediationDisabled": "Furamuun of-rakkoo dhaabbateera. Furamuun harkaa mirkaneeffannoon nageenyaa yeroo darbu yoo ta'e jalqabuu danda'a.", + "includeExistingDisabled": "Raawwiileen jiran furamuu of-rakkoo irraa baafaman.", + "belowThreshold": "Raawwiin sadarkaa hamma of-rakkoo gadii jira. Furamuun harkaa mirkaneeffannoon nageenyaa yeroo darbu yoo ta'e jalqabuu danda'a.", + "beforeEnablement": "Xiinxalli furamuun of-rakkoo dandeessamuu dura xumurame. Furamuun harkaa mirkaneeffannoon nageenyaa yeroo darbu yoo ta'e jalqabuu danda'a.", + "generic": "Furamuun raawwii kanaaf hin jiraatu." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index 174eee1e71..b16480cd32 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -512,7 +512,9 @@ "pendingComment_other": "ବାକି ମନ୍ତବ୍ୟଗୁଡ଼ିକ", "submitCountOfTotal": "{{displayTotalCount}} ମନ୍ତବ୍ୟ ମଧ୍ୟରୁ {{displayFreshCount}} ଦାଖଲ କରନ୍ତୁ", "submitReview": "ରିଭ୍ୟୁ ଦାଖଲ କରନ୍ତୁ", - "partialPostedMessage": "{{displayFreshCount}} ମନ୍ତବ୍ୟ ପୋଷ୍ଟ ହେଲା। {{displayStaleCount}} ମନ୍ତବ୍ୟ ଏକ ପୁରୁଣା କମିଟ୍ କୁ ପଏଣ୍ଟ କରେ ଏବଂ ଆପଣଙ୍କ କ୍ୟୁରେ ରହିଲା।" + "partialPostedMessage": "{{displayFreshCount}} ମନ୍ତବ୍ୟ ପୋଷ୍ଟ ହେଲା। {{displayStaleCount}} ମନ୍ତବ୍ୟ ଏକ ପୁରୁଣା କମିଟ୍ କୁ ପଏଣ୍ଟ କରେ ଏବଂ ଆପଣଙ୍କ କ୍ୟୁରେ ରହିଲା।", + "blockedRequestChanges": "ପରିବର୍ତ୍ତନ ଅନୁରୋଧ କରିବାକୁ ଏକ ସାରାଂଶ କିମ୍ବା ଅତି କମରେ ଗୋଟିଏ ମନ୍ତବ୍ୟ ଯୋଡନ୍ତୁ।", + "blockedComment": "ଏକ ମନ୍ତବ୍ୟ ସମୀକ୍ଷା ପୋଷ୍ଟ କରିବାକୁ ଏକ ସାରାଂଶ କିମ୍ବା ଅତି କମରେ ଗୋଟିଏ ମନ୍ତବ୍ୟ ଯୋଡନ୍ତୁ।" }, "reconnectNotice": { "title": "GitHub ସଂଯୋଗ ଅବଧି ଶେଷ ହେଲା", @@ -1376,7 +1378,16 @@ }, "eyebrow": "କୋଡ୍ ସମୀକ୍ଷକ", "updateFailed": "ରିଭ୍ୟୁୟର୍ ଅପଡେଟ୍ ବିଫଳ ହେଲା", - "configSaveFailed": "ରିଭ୍ୟୁ କନଫିଗ୍ ସଞ୍ଚୟ ବିଫଳ ହେଲା" + "configSaveFailed": "ରିଭ୍ୟୁ କନଫିଗ୍ ସଞ୍ଚୟ ବିଫଳ ହେଲା", + "status": { + "pending": "ବାକି", + "queued": "ଧାଡ଼ିରେ", + "running": "ଚାଲୁଛି", + "completed": "ସମାପ୍ତ", + "failed": "ବିଫଳ", + "cancelled": "ବାତିଲ", + "interrupted": "ବ୍ୟାହତ" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "ଉତ୍ସ ରେକର୍ଡ", "source": "ଉତ୍ସ", "sourceId": "ଉତ୍ସ ID", - "viewAdvisory": "GitHub ରେ ପରାମର୍ଶ ଦେଖନ୍ତୁ" + "viewAdvisory": "GitHub ରେ ପରାମର୍ଶ ଦେଖନ୍ତୁ", + "statusSuperseded": "ବଦଳାଯାଇଛି", + "statusFixed": "ସମାଧାନ ହୋଇଛି", + "statusOpen": "ଖୋଲା", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ଏକ ସମାଧାନ ଆରମ୍ଭ ହୋଇସାରିଛି", + "reasonNoBandwidth": "କୌଣସି ସାମର୍ଥ୍ୟ ଉପଲବ୍ଧ ନାହିଁ", + "reasonTolerableRisk": "ବିପଦ ସହନଯୋଗ୍ୟ", + "reasonInaccurate": "ଫଳାଫଳଟି ଅଶୁଦ୍ଧ", + "reasonNotUsed": "ଅସୁରକ୍ଷିତ କୋଡ୍ ବ୍ୟବହୃତ ହେଉନାହିଁ", + "reasonAfterReview": "ସମୀକ୍ଷା ପରେ" }, "settingsOverview": { "title": "ସେଟିଂସ୍", @@ -1805,6 +1826,107 @@ "syncInProgress": "ଏକ ସୁରକ୍ଷା ସିଙ୍କ୍ ଆଗରୁ ଚାଲୁଅଛି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "dismissalInProgress": "ଏହି ଖାରଜ ଆଗରୁ ଚାଲୁଅଛି। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "couldNotReadPendingSyncs": "ବାକି ସିଙ୍କ୍ ପଢ଼ାଯାଇ ପାରିଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" + }, + "analysisState": { + "queued": "ବିଶ୍ଳେଷଣ ଧାଡ଼ିରେ ଅଛି", + "queuedTitle": "ବିଶ୍ଳେଷଣ ଧାଡ଼ିରେ ଅଛି", + "queuedDescription": "ବିଶ୍ଳେଷଣ କ୍ଷମତା ଉପଲବ୍ଧ ହେବାକୁ ଅପେକ୍ଷା କରୁଛି।", + "analyzing": "ବିଶ୍ଳେଷଣ କରାଯାଉଛି", + "analyzingTitle": "ବିଶ୍ଳେଷଣ କରାଯାଉଛି", + "analyzingDescription": "ପ୍ରୟୋଗ କୋଡ୍ ପ୍ରଭାବିତ ବୈଶିଷ୍ଟ୍ୟରେ ପହଞ୍ଚିପାରିବ କି ଯାଞ୍ଚ କରାଯାଉଛି।", + "failed": "ବିଶ୍ଳେଷଣ ବିଫଳ", + "failedTitle": "ବିଶ୍ଳେଷଣ ବିଫଳ", + "failedDescription": "ସୁରକ୍ଷା ଏଜେଣ୍ଟ ବିଶ୍ଳେଷଣ ସମାପ୍ତ କରିପାରିଲା ନାହିଁ।", + "extractionFailed": "ସମୀକ୍ଷା ଆବଶ୍ୟକ", + "extractionFailedTitle": "ସମୀକ୍ଷା ଆବଶ୍ୟକ", + "extractionFailedDescription": "ଟେକ୍ନିକାଲ ରିପୋର୍ଟକୁ ଗଠନମୂଳକ ଫଳାଫଳରେ ପରିଣତ କରାଯାଇପାରିଲା ନାହିଁ।", + "exploitable": "ଶୋଷଣଯୋଗ୍ୟ", + "exploitableTitle": "ଶୋଷଣଯୋଗ୍ୟ", + "exploitableDescription": "ପ୍ରୟୋଗ କୋଡ୍ ପ୍ରଭାବିତ ବୈଶିଷ୍ଟ୍ୟରେ ପହଞ୍ଚିପାରେ।", + "notExploitable": "ଅଗମ୍ୟ", + "notExploitableTitle": "ଅଗମ୍ୟ", + "notExploitableDescription": "ଏହି ରିପୋଜିଟୋରୀରେ କୌଣସି ପହଞ୍ଚଯୋଗ୍ୟ ପଥ ମିଳିଲା ନାହିଁ।", + "unknown": "ସମୀକ୍ଷା ଆବଶ୍ୟକ", + "unknownTitle": "ସମୀକ୍ଷା ଆବଶ୍ୟକ", + "unknownDescription": "ଅସୁରକ୍ଷିତ ବୈଶିଷ୍ଟ୍ୟ ପହଞ୍ଚଯୋଗ୍ୟ କି ନୁହେଁ ବିଶ୍ଳେଷଣ ନିଶ୍ଚିତ କରିପାରିଲା ନାହିଁ।", + "safeToDismiss": "ହଟାଇବା ସୁରକ୍ଷିତ", + "safeToDismissTitle": "ହଟାଇବା ସୁରକ୍ଷିତ", + "safeToDismissDescription": "ବିଭାଜନ ସ୍ଥିର କରିଛି ଯେ କୋଡବେସ୍ ବିଶ୍ଳେଷଣ ବିନା ଏହାକୁ ସୁରକ୍ଷିତ ଭାବରେ ହଟାଯାଇପାରେ।", + "manualReview": "ସମୀକ୍ଷା ଆବଶ୍ୟକ", + "manualReviewTitle": "ମାନୁଆଲ ସମୀକ୍ଷା ଆବଶ୍ୟକ", + "manualReviewDescription": "ବିଭାଜନ ଏହି ଫଳାଫଳକୁ ମାନୁଆଲ ସମୀକ୍ଷା ପାଇଁ ଚିହ୍ନିତ କରିଛି।", + "analysisRequired": "ବିଶ୍ଳେଷଣ ଆବଶ୍ୟକ", + "analysisRequiredTitle": "କୋଡବେସ୍ ବିଶ୍ଳେଷଣ ଆବଶ୍ୟକ", + "analysisRequiredDescription": "ପ୍ରତିକ୍ରିୟା ସ୍ଥିର କରିବା ପୂର୍ବରୁ ବିଭାଜନ ରିପୋଜିଟୋରୀ ବିଶ୍ଳେଷଣ ସୁପାରିଶ କରେ।", + "completed": "ବିଶ୍ଳେଷଣ ହୋଇଛି", + "completedTitle": "ବିଶ୍ଳେଷଣ ହୋଇଛି", + "completedDescription": "କୌଣସି ନିର୍ଦ୍ଦିଷ୍ଟ ଫଳାଫଳ ରେକର୍ଡ ନକରି ବିଶ୍ଳେଷଣ ସମାପ୍ତ ହେଲା।", + "notAnalyzed": "ବିଶ୍ଳେଷଣ ହୋଇନାହିଁ", + "notAnalyzedTitle": "ବିଶ୍ଳେଷଣ ହୋଇନାହିଁ", + "notAnalyzedDescription": "ଏହି ଫଳାଫଳ ପାଇଁ ଏପର୍ଯ୍ୟନ୍ତ କୋଡବେସ୍ ବିଶ୍ଳେଷଣ ଚାଲିନାହିଁ।" + }, + "deadline": { + "fixedBeforeDeadline": "ସମୟସୀମା ପୂର୍ବରୁ ସମାଧାନ", + "fixed": "ସମାଧାନ", + "fixedOn": "{{date}} ରେ ସମାଧାନ", + "resolutionRecorded": "ସମାଧାନ ରେକର୍ଡ ହେଲା", + "superseded": "ବଦଳାଯାଇଛି", + "dismissed": "ହଟାଯାଇଛି", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "ସମୟସୀମା ସେଟ୍ ହୋଇନାହିଁ", + "noSlaDeadline": "କୌଣସି SLA ସମୟସୀମା ନାହିଁ", + "dueOn": "{{date}} ରେ ସମୟସୀମା", + "overdueNow": "ବିଳମ୍ବିତ", + "dueToday": "ଆଜି ସମୟସୀମା", + "dueTomorrow": "ଆସନ୍ତାକାଲି ସମୟସୀମା", + "overdue_one": "{{count}} ଦିନ ବିଳମ୍ବିତ", + "overdue_other": "{{count}} ଦିନ ବିଳମ୍ବିତ", + "dueInDays_one": "{{count}} ଦିନରେ ସମୟସୀମା", + "dueInDays_other": "{{count}} ଦିନରେ ସମୟସୀମା", + "overdue": "{{count}} ଦିନ ବିଳମ୍ବିତ", + "dueInDays": "{{count}} ଦିନରେ ସମୟସୀମା" + }, + "remediationStatus": { + "cancellationRequested": "ବାତିଲ ଅନୁରୋଧ କରାଯାଇଛି", + "notStarted": "ଆରମ୍ଭ ହୋଇନାହିଁ", + "queued": "ଧାଡ଼ିରେ", + "starting": "ଆରମ୍ଭ ହେଉଛି", + "inProgress": "ଚାଲୁଅଛି", + "draftPrOpened": "ଡ୍ରାଫ୍ଟ PR ଖୋଲା ହୋଇଛି", + "prOpened": "PR ଖୋଲା ହୋଇଛି", + "blocked": "ଅବରୋଧ", + "failed": "ବିଫଳ", + "noChangesNeeded": "କୌଣସି ପରିବର୍ତ୍ତନ ଆବଶ୍ୟକ ନାହିଁ", + "cancelled": "ବାତିଲ", + "originAutomaticPolicy": "ସ୍ୱୟଂଚାଳିତ ନୀତି", + "originIncludeExistingPolicy": "ବିଦ୍ୟମାନ ଅନ୍ତର୍ଭୁକ୍ତ ନୀତି", + "originManual": "ମାନୁଆଲ", + "validationCheck": "ବୈଧତା ଯାଞ୍ଚ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ସୁରକ୍ଷା ଫଳାଫଳ ଆଉ ବିଦ୍ୟମାନ ନାହିଁ।", + "approvalRequired": "ସ୍ୱୟଂ ଉପଶମନକୁ ଅନୁମୋଦନ ଆବଶ୍ୟକ। ଅନୁମୋଦନ କରିବାକୁ ମାନୁଆଲ ଭାବରେ ସମାଧାନ ଆରମ୍ଭ କରନ୍ତୁ।", + "findingNotOpen": "ଫଳାଫଳ ଆଉ ଖୋଲା ନାହିଁ।", + "repoNotInScope": "ରିପୋଜିଟୋରୀ ସୁରକ୍ଷା ଏଜେଣ୍ଟ ପାଇଁ ଚୟନ ହୋଇନାହିଁ।", + "analysisRequired": "ସମାଧାନ ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ କୋଡବେସ୍ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।", + "sandboxAnalysisRequired": "ସମାଧାନ ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ କୋଡବେସ୍ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।", + "staleAnalysis": "ବିଶ୍ଳେଷଣ ପରେ ଫଳାଫଳ ପରିବର୍ତ୍ତନ ହେଲା। ସମାଧାନ ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ ବିଶ୍ଳେଷଣ ପୁଣି ଚଲାନ୍ତୁ।", + "notExploitable": "ବିଶ୍ଳେଷଣରେ କୌଣସି ପହଞ୍ଚଯୋଗ୍ୟ ଅସୁରକ୍ଷିତ ପଥ ମିଳିଲା ନାହିଁ। ସ୍ୱୟଂ ଉପଶମନ ଉପଲବ୍ଧ ନୁହେଁ।", + "exploitabilityUnknown": "ବିଶ୍ଳେଷଣ ଶୋଷଣଯୋଗ୍ୟତା ନିଶ୍ଚିତ କରିପାରିଲା ନାହିଁ। ଏକ-କ୍ଲିକ୍ ଉପଶମନ ପୂର୍ବରୁ ମାନୁଆଲ ସମୀକ୍ଷା ଆବଶ୍ୟକ।", + "manualReviewRequired": "ବିଶ୍ଳେଷଣ ମାନୁଆଲ ସମୀକ୍ଷା ସୁପାରିଶ କରେ, ତେଣୁ ଏକ-କ୍ଲିକ୍ ଉପଶମନ ଉପଲବ୍ଧ ନୁହେଁ।", + "monitorRequired": "PR ଖୋଲିବା ପରିବର୍ତ୍ତେ ବିଶ୍ଳେଷଣ ମନିଟରିଂ ସୁପାରିଶ କରେ।", + "triageOnly": "କେବଳ ବିଭାଜନ ସମାପ୍ତ। ସମାଧାନ ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ କୋଡବେସ୍ ବିଶ୍ଳେଷଣ ଚଲାନ୍ତୁ।", + "actionNotConcrete": "କୌଣସି କଂକ୍ରିଟ ଡିପେଣ୍ଡେନ୍ସି ପ୍ୟାଚ କିମ୍ବା ପ୍ରସ୍ତାବିତ ସମାଧାନ ଉପଲବ୍ଧ ନାହିଁ।", + "remediationActive": "ଏକ ସମାଧାନ ପ୍ରୟାସ ଆଗରୁ ସକ୍ରିୟ ଅଛି।", + "prAlreadyOpened": "ଏକ ସମାଧାନ PR ଆଗରୁ ଖୋଲା।", + "duplicateAnalysisResult": "ଏହି ବିଶ୍ଳେଷଣ ଫଳାଫଳ ଆଗରୁ ସମାଧାନ କାର୍ଯ୍ୟ ଉତ୍ପାଦନ କରିଛି।", + "retryNotAllowed": "ଏହି ପ୍ରୟାସ ପାଇଁ ପୁନଃଚେଷ୍ଟା ଉପଲବ୍ଧ ନାହିଁ।", + "securityAgentDisabled": "ଏହି ମାଲିକ ପାଇଁ ସୁରକ୍ଷା ଏଜେଣ୍ଟ ଅକ୍ଷମ।", + "autoRemediationDisabled": "ସ୍ୱୟଂ ଉପଶମନ ଅକ୍ଷମ। ସୁରକ୍ଷା ଗେଟ୍ ପାସ୍ ହେଲେ ମାନୁଆଲ ସମାଧାନ ଏବେ ବି ଆରମ୍ଭ ହୋଇପାରେ।", + "includeExistingDisabled": "ବର୍ତ୍ତମାନର ଫଳାଫଳ ସ୍ୱୟଂ ଉପଶମନରୁ ବାଦ ଦିଆଯାଇଛି।", + "belowThreshold": "ଫଳାଫଳ ସ୍ୱୟଂଚାଳିତ ତୀବ୍ରତା ସୀମା ତଳେ। ସୁରକ୍ଷା ଗେଟ୍ ପାସ୍ ହେଲେ ମାନୁଆଲ ସମାଧାନ ଏବେ ବି ଆରମ୍ଭ ହୋଇପାରେ।", + "beforeEnablement": "ସ୍ୱୟଂ ଉପଶମନ ସକ୍ଷମ ହେବା ପୂର୍ବରୁ ବିଶ୍ଳେଷଣ ସମାପ୍ତ ହେଲା। ସୁରକ୍ଷା ଗେଟ୍ ପାସ୍ ହେଲେ ମାନୁଆଲ ସମାଧାନ ଏବେ ବି ଆରମ୍ଭ ହୋଇପାରେ।", + "generic": "ଏହି ଫଳାଫଳ ପାଇଁ ସମାଧାନ ଉପଲବ୍ଧ ନାହିଁ।" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 333c4c8238..250e5ecadf 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -512,7 +512,9 @@ "pendingComment_other": "ਲੰਬਿਤ ਟਿੱਪਣੀਆਂ", "submitCountOfTotal": "{{displayTotalCount}} ਵਿੱਚੋਂ {{displayFreshCount}} ਟਿੱਪਣੀਆਂ ਜਮ੍ਹਾਂ ਕਰੋ", "submitReview": "ਰਿਵਿਊ ਜਮ੍ਹਾਂ ਕਰੋ", - "partialPostedMessage": "{{displayFreshCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੋਸਟ ਕੀਤੀਆਂ। {{displayStaleCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੁਰਾਣੇ ਕਮਿਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੀ ਕਤਾਰ ਵਿੱਚ ਰਹੀਆਂ।" + "partialPostedMessage": "{{displayFreshCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੋਸਟ ਕੀਤੀਆਂ। {{displayStaleCount}} ਟਿੱਪਣੀ(ਆਂ) ਪੁਰਾਣੇ ਕਮਿਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਤੁਹਾਡੀ ਕਤਾਰ ਵਿੱਚ ਰਹੀਆਂ।", + "blockedRequestChanges": "ਬਦਲਾਅ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਸਾਰਾਂਸ਼ ਜਾਂ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਟਿੱਪਣੀ ਜੋੜੋ।", + "blockedComment": "ਟਿੱਪਣੀ ਰਿਵਿਊ ਪੋਸਟ ਕਰਨ ਲਈ ਸਾਰਾਂਸ਼ ਜਾਂ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਟਿੱਪਣੀ ਜੋੜੋ।" }, "reconnectNotice": { "title": "GitHub ਕਨੈਕਸ਼ਨ ਮਿਆਦ ਪੁੱਗ ਗਿਆ", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "ਸਮੀਖਿਅਕ ਅੱਪਡੇਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ", - "configSaveFailed": "ਰਿਵਿਊ ਕੌਂਫਿਗ ਸੁਰੱਖਿਅਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ" + "configSaveFailed": "ਰਿਵਿਊ ਕੌਂਫਿਗ ਸੁਰੱਖਿਅਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ", + "status": { + "pending": "ਬਕਾਇਆ", + "queued": "ਕਤਾਰ ਵਿੱਚ", + "running": "ਚੱਲ ਰਿਹਾ ਹੈ", + "completed": "ਪੂਰਾ ਹੋਇਆ", + "failed": "ਅਸਫਲ", + "cancelled": "ਰੱਦ ਕੀਤਾ ਗਿਆ", + "interrupted": "ਵਿਚੋਲਿਆ ਗਿਆ" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "ਸਰੋਤ ਰਿਕਾਰਡ", "source": "ਸਰੋਤ", "sourceId": "ਸਰੋਤ ID", - "viewAdvisory": "GitHub 'ਤੇ ਸਲਾਹ ਦੇਖੋ" + "viewAdvisory": "GitHub 'ਤੇ ਸਲਾਹ ਦੇਖੋ", + "statusSuperseded": "ਬਦਲਿਆ ਗਿਆ", + "statusFixed": "ਠੀਕ ਕੀਤਾ ਗਿਆ", + "statusOpen": "ਖੁੱਲ੍ਹਾ", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ਇੱਕ ਸੁਧਾਰ ਪਹਿਲਾਂ ਹੀ ਸ਼ੁਰੂ ਹੋ ਚੁੱਕਾ ਹੈ", + "reasonNoBandwidth": "ਕੋਈ ਬੈਂਡਵਿਡਥ ਉਪਲਬਧ ਨਹੀਂ ਹੈ", + "reasonTolerableRisk": "ਜੋਖਮ ਸਹਿਣਯੋਗ ਹੈ", + "reasonInaccurate": "ਖੋਜ ਗਲਤ ਹੈ", + "reasonNotUsed": "ਕਮਜ਼ੋਰ ਕੋਡ ਵਰਤਿਆ ਨਹੀਂ ਜਾਂਦਾ", + "reasonAfterReview": "ਸਮੀਖਿਆ ਤੋਂ ਬਾਅਦ" }, "settingsOverview": { "title": "ਸੈਟਿੰਗਾਂ", @@ -1805,6 +1826,107 @@ "syncInProgress": "ਇੱਕ ਸੁਰੱਖਿਆ ਸਿੰਕ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਿਹਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "dismissalInProgress": "ਇਹ ਖਾਰਜ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਿਹਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "couldNotReadPendingSyncs": "ਬਕਾਇਆ ਸਿੰਕ ਨਹੀਂ ਪੜ੍ਹੇ ਜਾ ਸਕੇ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + }, + "analysisState": { + "queued": "ਵਿਸ਼ਲੇਸ਼ਣ ਕਤਾਰ ਵਿੱਚ", + "queuedTitle": "ਵਿਸ਼ਲੇਸ਼ਣ ਕਤਾਰ ਵਿੱਚ", + "queuedDescription": "ਵਿਸ਼ਲੇਸ਼ਣ ਸਮਰੱਥਾ ਉਪਲਬਧ ਹੋਣ ਦੀ ਉਡੀਕ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।", + "analyzing": "ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", + "analyzingTitle": "ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", + "analyzingDescription": "ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ ਕਿ ਕੀ ਐਪ ਕੋਡ ਪ੍ਰਭਾਵਿਤ ਵਿਸ਼ੇਸ਼ਤਾ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।", + "failed": "ਵਿਸ਼ਲੇਸ਼ਣ ਅਸਫਲ", + "failedTitle": "ਵਿਸ਼ਲੇਸ਼ਣ ਅਸਫਲ", + "failedDescription": "ਸੁਰੱਖਿਆ ਏਜੰਟ ਵਿਸ਼ਲੇਸ਼ਣ ਪੂਰਾ ਨਹੀਂ ਕਰ ਸਕਿਆ।", + "extractionFailed": "ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ", + "extractionFailedTitle": "ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ", + "extractionFailedDescription": "ਤਕਨੀਕੀ ਰਿਪੋਰਟ ਨੂੰ ਢਾਂਚਾਗਤ ਨਤੀਜੇ ਵਿੱਚ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।", + "exploitable": "ਸ਼ੋਸ਼ਣਯੋਗ", + "exploitableTitle": "ਸ਼ੋਸ਼ਣਯੋਗ", + "exploitableDescription": "ਐਪ ਕੋਡ ਪ੍ਰਭਾਵਿਤ ਵਿਸ਼ੇਸ਼ਤਾ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ।", + "notExploitable": "ਅਪਹੁੰਚਯੋਗ", + "notExploitableTitle": "ਅਪਹੁੰਚਯੋਗ", + "notExploitableDescription": "ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਕੋਈ ਪਹੁੰਚਯੋਗ ਮਾਰਗ ਨਹੀਂ ਮਿਲਿਆ।", + "unknown": "ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ", + "unknownTitle": "ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ", + "unknownDescription": "ਵਿਸ਼ਲੇਸ਼ਣ ਇਹ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕਰ ਸਕਿਆ ਕਿ ਕਮਜ਼ੋਰ ਵਿਸ਼ੇਸ਼ਤਾ ਪਹੁੰਚਯੋਗ ਹੈ ਜਾਂ ਨਹੀਂ।", + "safeToDismiss": "ਰੱਦ ਕਰਨ ਲਈ ਸੁਰੱਖਿਅਤ", + "safeToDismissTitle": "ਰੱਦ ਕਰਨ ਲਈ ਸੁਰੱਖਿਅਤ", + "safeToDismissDescription": "ਟ੍ਰਾਈਜ ਨੇ ਕੋਡਬੇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਬਿਨਾਂ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਰੱਦ ਕਰਨ ਦਾ ਨਿਰਧਾਰਨ ਕੀਤਾ।", + "manualReview": "ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ", + "manualReviewTitle": "ਦਸਤੀ ਸਮੀਖਿਆ ਦੀ ਲੋੜ ਹੈ", + "manualReviewDescription": "ਟ੍ਰਾਈਜ ਨੇ ਇਸ ਖੋਜ ਨੂੰ ਦਸਤੀ ਸਮੀਖਿਆ ਲਈ ਚਿੰਨ੍ਹਿਤ ਕੀਤਾ।", + "analysisRequired": "ਵਿਸ਼ਲੇਸ਼ਣ ਲੋੜੀਂਦਾ ਹੈ", + "analysisRequiredTitle": "ਕੋਡਬੇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਲੋੜੀਂਦਾ ਹੈ", + "analysisRequiredDescription": "ਟ੍ਰਾਈਜ ਜਵਾਬ ਤੈਅ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਰਿਪੋਜ਼ਟਰੀ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਦੀ ਸਿਫਾਰਸ਼ ਕਰਦਾ ਹੈ।", + "completed": "ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਗਿਆ", + "completedTitle": "ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਗਿਆ", + "completedDescription": "ਵਿਸ਼ਲੇਸ਼ਣ ਕਿਸੇ ਖਾਸ ਨਤੀਜੇ ਨੂੰ ਰਿਕਾਰਡ ਕੀਤੇ ਬਿਨਾਂ ਪੂਰਾ ਹੋਇਆ।", + "notAnalyzed": "ਵਿਸ਼ਲੇਸ਼ਿਤ ਨਹੀਂ", + "notAnalyzedTitle": "ਵਿਸ਼ਲੇਸ਼ਿਤ ਨਹੀਂ", + "notAnalyzedDescription": "ਇਸ ਖੋਜ ਲਈ ਅਜੇ ਕੋਡਬੇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਨਹੀਂ ਚੱਲਿਆ।" + }, + "deadline": { + "fixedBeforeDeadline": "ਸਮਾਂ ਸੀਮਾ ਤੋਂ ਪਹਿਲਾਂ ਠੀਕ ਕੀਤਾ ਗਿਆ", + "fixed": "ਠੀਕ ਕੀਤਾ ਗਿਆ", + "fixedOn": "{{date}} ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ", + "resolutionRecorded": "ਹੱਲ ਰਿਕਾਰਡ ਕੀਤਾ ਗਿਆ", + "superseded": "ਬਦਲਿਆ ਗਿਆ", + "dismissed": "ਖਾਰਜ ਕੀਤਾ ਗਿਆ", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "ਸਮਾਂ ਸੀਮਾ ਨਿਰਧਾਰਤ ਨਹੀਂ", + "noSlaDeadline": "ਕੋਈ SLA ਸਮਾਂ ਸੀਮਾ ਨਹੀਂ", + "dueOn": "{{date}} ਨੂੰ ਸਮਾਂ ਸੀਮਾ", + "overdueNow": "ਦੇਰੀ ਨਾਲ", + "overdue_one": "{{count}} ਦਿਨ ਦੇਰੀ ਨਾਲ", + "overdue_other": "{{count}} ਦਿਨ ਦੇਰੀ ਨਾਲ", + "dueToday": "ਅੱਜ ਸਮਾਂ ਸੀਮਾ", + "dueTomorrow": "ਕੱਲ੍ਹ ਸਮਾਂ ਸੀਮਾ", + "dueInDays_one": "{{count}} ਦਿਨ ਵਿੱਚ ਸਮਾਂ ਸੀਮਾ", + "dueInDays_other": "{{count}} ਦਿਨ ਵਿੱਚ ਸਮਾਂ ਸੀਮਾ", + "overdue": "{{count}} ਦਿਨ ਦੇਰੀ ਨਾਲ", + "dueInDays": "{{count}} ਦਿਨ ਵਿੱਚ ਸਮਾਂ ਸੀਮਾ" + }, + "remediationStatus": { + "cancellationRequested": "ਰੱਦ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਗਈ", + "notStarted": "ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ", + "queued": "ਕਤਾਰ ਵਿੱਚ", + "starting": "ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ", + "inProgress": "ਚੱਲ ਰਿਹਾ ਹੈ", + "draftPrOpened": "ਡਰਾਫਟ PR ਖੋਲ੍ਹਿਆ ਗਿਆ", + "prOpened": "PR ਖੋਲ੍ਹਿਆ ਗਿਆ", + "blocked": "ਰੁਕਿਆ ਹੋਇਆ", + "failed": "ਅਸਫਲ", + "noChangesNeeded": "ਕੋਈ ਤਬਦੀਲੀ ਦੀ ਲੋੜ ਨਹੀਂ", + "cancelled": "ਰੱਦ ਕੀਤਾ ਗਿਆ", + "originAutomaticPolicy": "ਆਟੋਮੈਟਿਕ ਨੀਤੀ", + "originIncludeExistingPolicy": "ਮੌਜੂਦਾ ਨੀਤੀ ਸ਼ਾਮਲ ਕਰੋ", + "originManual": "ਦਸਤੀ", + "validationCheck": "ਪੁਸ਼ਟੀ ਜਾਂਚ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ਸੁਰੱਖਿਆ ਖੋਜ ਹੁਣ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।", + "approvalRequired": "ਆਟੋ-ਨਿਵਾਰਨ ਲਈ ਮਨਜ਼ੂਰੀ ਲੋੜੀਂਦੀ ਹੈ। ਇਸਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨ ਲਈ ਨਿਵਾਰਨ ਹੱਥੀਂ ਸ਼ੁਰੂ ਕਰੋ।", + "findingNotOpen": "ਖੋਜ ਹੁਣ ਖੁੱਲ੍ਹੀ ਨਹੀਂ ਹੈ।", + "repoNotInScope": "ਰਿਪੋਜ਼ਟਰੀ ਸੁਰੱਖਿਆ ਏਜੰਟ ਲਈ ਚੁਣੀ ਨਹੀਂ ਗਈ ਹੈ।", + "analysisRequired": "ਨਿਵਾਰਨ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੋਡਬੇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਚਲਾਓ।", + "sandboxAnalysisRequired": "ਨਿਵਾਰਨ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੋਡਬੇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਚਲਾਓ।", + "staleAnalysis": "ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਬਾਅਦ ਖੋਜ ਬਦਲ ਗਈ। ਨਿਵਾਰਨ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਿਸ਼ਲੇਸ਼ਣ ਦੁਬਾਰਾ ਚਲਾਓ।", + "notExploitable": "ਵਿਸ਼ਲੇਸ਼ਣ ਵਿੱਚ ਕੋਈ ਪਹੁੰਚਯੋਗ ਕਮਜ਼ੋਰ ਮਾਰਗ ਨਹੀਂ ਮਿਲਿਆ। ਆਟੋ-ਨਿਵਾਰਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", + "exploitabilityUnknown": "ਵਿਸ਼ਲੇਸ਼ਣ ਸ਼ੋਸ਼ਣਯੋਗਤਾ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕਰ ਸਕਿਆ। ਇੱਕ-ਕਲਿੱਕ ਨਿਵਾਰਨ ਤੋਂ ਪਹਿਲਾਂ ਦਸਤੀ ਸਮੀਖਿਆ ਲੋੜੀਂਦੀ ਹੈ।", + "manualReviewRequired": "ਵਿਸ਼ਲੇਸ਼ਣ ਦਸਤੀ ਸਮੀਖਿਆ ਦੀ ਸਿਫਾਰਸ਼ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਇੱਕ-ਕਲਿੱਕ ਨਿਵਾਰਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", + "monitorRequired": "ਵਿਸ਼ਲੇਸ਼ਣ PR ਖੋਲ੍ਹਣ ਦੀ ਬਜਾਏ ਨਿਗਰਾਨੀ ਕਰਨ ਦੀ ਸਿਫਾਰਸ਼ ਕਰਦਾ ਹੈ।", + "triageOnly": "ਸਿਰਫ਼ ਟ੍ਰਾਈਜ ਪੂਰਾ ਹੋਇਆ ਹੈ। ਨਿਵਾਰਨ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੋਡਬੇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਚਲਾਓ।", + "actionNotConcrete": "ਕੋਈ ਠੋਸ ਡਿਪੈਂਡੈਂਸੀ ਪੈਚ ਜਾਂ ਸੁਝਾਈ ਗਈ ਸੁਧਾਰ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", + "remediationActive": "ਇੱਕ ਨਿਵਾਰਨ ਕੋਸ਼ਿਸ਼ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਹੀ ਹੈ।", + "prAlreadyOpened": "ਇੱਕ ਨਿਵਾਰਨ PR ਪਹਿਲਾਂ ਹੀ ਖੁੱਲ੍ਹੀ ਹੈ।", + "duplicateAnalysisResult": "ਇਸ ਵਿਸ਼ਲੇਸ਼ਣ ਨਤੀਜੇ ਨੇ ਪਹਿਲਾਂ ਹੀ ਨਿਵਾਰਨ ਕੰਮ ਤਿਆਰ ਕੀਤਾ ਹੈ।", + "retryNotAllowed": "ਇਸ ਕੋਸ਼ਿਸ਼ ਲਈ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", + "securityAgentDisabled": "ਸੁਰੱਖਿਆ ਏਜੰਟ ਇਸ ਮਾਲਕ ਲਈ ਅਯੋਗ ਹੈ।", + "autoRemediationDisabled": "ਆਟੋ-ਨਿਵਾਰਨ ਅਯੋਗ ਹੈ। ਜਦੋਂ ਸੁਰੱਖਿਆ ਗੇਟ ਪਾਸ ਹੁੰਦੇ ਹਨ ਤਾਂ ਦਸਤੀ ਨਿਵਾਰਨ ਅਜੇ ਵੀ ਸ਼ੁਰੂ ਹੋ ਸਕਦਾ ਹੈ।", + "includeExistingDisabled": "ਮੌਜੂਦਾ ਖੋਜਾਂ ਨੂੰ ਆਟੋਮੈਟਿਕ ਨਿਵਾਰਨ ਤੋਂ ਬਾਹਰ ਰੱਖਿਆ ਗਿਆ ਹੈ।", + "belowThreshold": "ਖੋਜ ਆਟੋਮੈਟਿਕ ਗੰਭੀਰਤਾ ਥ੍ਰੈਸ਼ਹੋਲਡ ਤੋਂ ਹੇਠਾਂ ਹੈ। ਜਦੋਂ ਸੁਰੱਖਿਆ ਗੇਟ ਪਾਸ ਹੁੰਦੇ ਹਨ ਤਾਂ ਦਸਤੀ ਨਿਵਾਰਨ ਅਜੇ ਵੀ ਸ਼ੁਰੂ ਹੋ ਸਕਦਾ ਹੈ।", + "beforeEnablement": "ਆਟੋ-ਨਿਵਾਰਨ ਸਮਰੱਥ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਵਿਸ਼ਲੇਸ਼ਣ ਪੂਰਾ ਹੋਇਆ। ਜਦੋਂ ਸੁਰੱਖਿਆ ਗੇਟ ਪਾਸ ਹੁੰਦੇ ਹਨ ਤਾਂ ਦਸਤੀ ਨਿਵਾਰਨ ਅਜੇ ਵੀ ਸ਼ੁਰੂ ਹੋ ਸਕਦਾ ਹੈ।", + "generic": "ਇਸ ਖੋਜ ਲਈ ਨਿਵਾਰਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index 2e898c89b1..15dce2e5cb 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -943,7 +943,16 @@ "set": "Ustaw" }, "updateFailed": "Nie udało się zaktualizować recenzenta", - "configSaveFailed": "Nie udało się zapisać konfiguracji recenzji" + "configSaveFailed": "Nie udało się zapisać konfiguracji recenzji", + "status": { + "pending": "Oczekuje", + "queued": "W kolejce", + "running": "W toku", + "completed": "Ukończono", + "failed": "Nie powiodło się", + "cancelled": "Anulowano", + "interrupted": "Przerwano" + } }, "securityAgent": { "filter": { @@ -1191,7 +1200,17 @@ "unknown": "Nieznane", "updated": "Zaktualizowano", "viewAdvisory": "Wyświetl poradę na GitHub", - "vulnerableVersions": "Podatne wersje" + "vulnerableVersions": "Podatne wersje", + "statusSuperseded": "Zastąpione", + "statusFixed": "Naprawione", + "statusOpen": "Otwarte", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Poprawka już się rozpoczęła", + "reasonNoBandwidth": "Brak wolnych zasobów", + "reasonTolerableRisk": "Ryzyko jest akceptowalne", + "reasonInaccurate": "Ustalenie jest nieprawidłowe", + "reasonNotUsed": "Podatny kod nie jest używany", + "reasonAfterReview": "po przeglądzie" }, "findingList": { "clearFilters": "Wyczyść filtry", @@ -1376,6 +1395,111 @@ "syncInProgress": "Synchronizacja zabezpieczeń jest już w toku. Spróbuj ponownie.", "dismissalInProgress": "To odrzucenie jest już w toku. Spróbuj ponownie.", "couldNotReadPendingSyncs": "Nie udało się odczytać oczekujących synchronizacji. Spróbuj ponownie." + }, + "analysisState": { + "queued": "Analiza w kolejce", + "queuedTitle": "Analiza w kolejce", + "queuedDescription": "Oczekiwanie na dostępność zasobów do analizy.", + "analyzing": "Analizowanie", + "analyzingTitle": "Analizowanie", + "analyzingDescription": "Sprawdzanie, czy kod aplikacji może dotrzeć do dotkniętej funkcji.", + "failed": "Analiza nie powiodła się", + "failedTitle": "Analiza nie powiodła się", + "failedDescription": "Security Agent nie mógł ukończyć analizy.", + "extractionFailed": "Wymaga przeglądu", + "extractionFailedTitle": "Wymaga przeglądu", + "extractionFailedDescription": "Nie udało się przekształcić raportu technicznego w strukturalny wynik.", + "exploitable": "Możliwe do wykorzystania", + "exploitableTitle": "Możliwe do wykorzystania", + "exploitableDescription": "Kod aplikacji może dotrzeć do dotkniętej funkcji.", + "notExploitable": "Nieosiągalne", + "notExploitableTitle": "Nieosiągalne", + "notExploitableDescription": "Nie znaleziono osiągalnej ścieżki w tym repozytorium.", + "unknown": "Wymaga przeglądu", + "unknownTitle": "Wymaga przeglądu", + "unknownDescription": "Analiza nie mogła potwierdzić, czy podatna funkcja jest osiągalna.", + "safeToDismiss": "Bezpieczne do odrzucenia", + "safeToDismissTitle": "Bezpieczne do odrzucenia", + "safeToDismissDescription": "Triage ustalił, że można to bezpiecznie odrzucić bez analizy bazy kodu.", + "manualReview": "Wymaga przeglądu", + "manualReviewTitle": "Wymaga ręcznego przeglądu", + "manualReviewDescription": "Triage oznaczył to ustalenie do ręcznego przeglądu.", + "analysisRequired": "Wymagana analiza", + "analysisRequiredTitle": "Wymagana analiza bazy kodu", + "analysisRequiredDescription": "Triage zaleca przeanalizowanie repozytorium przed podjęciem decyzji.", + "completed": "Przeanalizowano", + "completedTitle": "Przeanalizowano", + "completedDescription": "Analiza zakończona bez zarejestrowanego konkretnego wyniku.", + "notAnalyzed": "Nie przeanalizowano", + "notAnalyzedTitle": "Nie przeanalizowano", + "notAnalyzedDescription": "Analiza bazy kodu nie została jeszcze uruchomiona dla tego ustalenia." + }, + "deadline": { + "fixedBeforeDeadline": "Naprawione przed terminem", + "fixed": "Naprawione", + "fixedOn": "Naprawione {{date}}", + "resolutionRecorded": "Zarejestrowano rozwiązanie", + "superseded": "Zastąpione", + "dismissed": "Odrzucone", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Nie ustawiono terminu", + "noSlaDeadline": "Brak terminu SLA", + "dueOn": "Termin: {{date}}", + "overdueNow": "Po terminie", + "overdue_one": "{{count}} dzień po terminie", + "overdue_few": "{{count}} dni po terminie", + "overdue_many": "{{count}} dni po terminie", + "overdue_other": "{{count}} dnia po terminie", + "dueToday": "Termin dziś", + "dueTomorrow": "Termin jutro", + "dueInDays_one": "Za {{count}} dzień", + "dueInDays_few": "Za {{count}} dni", + "dueInDays_many": "Za {{count}} dni", + "dueInDays_other": "Za {{count}} dnia", + "overdue": "{{count}} dnia po terminie", + "dueInDays": "Za {{count}} dnia" + }, + "remediationStatus": { + "cancellationRequested": "Zażądano anulowania", + "notStarted": "Nie rozpoczęto", + "queued": "W kolejce", + "starting": "Rozpoczynanie", + "inProgress": "W toku", + "draftPrOpened": "Otwarto wersję roboczą PR", + "prOpened": "Otwarto PR", + "blocked": "Zablokowano", + "failed": "Nie powiodło się", + "noChangesNeeded": "Brak potrzebnych zmian", + "cancelled": "Anulowano", + "originAutomaticPolicy": "Automatyczna polityka", + "originIncludeExistingPolicy": "Polityka uwzględniania istniejących", + "originManual": "Ręcznie", + "validationCheck": "Kontrola walidacji {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Ustalenie bezpieczeństwa już nie istnieje.", + "approvalRequired": "Automatyczna naprawa wymaga zatwierdzenia. Rozpocznij naprawę ręcznie, aby ją zatwierdzić.", + "findingNotOpen": "Ustalenie nie jest już otwarte.", + "repoNotInScope": "Repozytorium nie jest wybrane dla Security Agent.", + "analysisRequired": "Uruchom analizę bazy kodu przed rozpoczęciem naprawy.", + "sandboxAnalysisRequired": "Uruchom analizę bazy kodu przed rozpoczęciem naprawy.", + "staleAnalysis": "Ustalenie zmieniło się po analizie. Ponów analizę przed rozpoczęciem naprawy.", + "notExploitable": "Analiza nie znalazła osiągalnej podatnej ścieżki. Automatyczna naprawa jest niedostępna.", + "exploitabilityUnknown": "Analiza nie mogła potwierdzić możliwości wykorzystania. Wymagany jest ręczny przegląd przed naprawą jednym kliknięciem.", + "manualReviewRequired": "Analiza zaleca ręczny przegląd, więc naprawa jednym kliknięciem jest niedostępna.", + "monitorRequired": "Analiza zaleca monitorowanie zamiast otwierania PR.", + "triageOnly": "Zakończono tylko triage. Uruchom analizę bazy kodu przed rozpoczęciem naprawy.", + "actionNotConcrete": "Brak konkretnej poprawki zależności lub sugerowanej poprawki.", + "remediationActive": "Próba naprawy jest już aktywna.", + "prAlreadyOpened": "PR naprawczy jest już otwarty.", + "duplicateAnalysisResult": "Ten wynik analizy już wygenerował pracę naprawczą.", + "retryNotAllowed": "Ponowienie nie jest dostępne dla tej próby.", + "securityAgentDisabled": "Security Agent jest wyłączony dla tego właściciela.", + "autoRemediationDisabled": "Automatyczna naprawa jest wyłączona. Ręczna naprawa może się nadal rozpocząć, gdy kontrole bezpieczeństwa zakończą się powodzeniem.", + "includeExistingDisabled": "Istniejące ustalenia są wykluczone z automatycznej naprawy.", + "belowThreshold": "Ustalenie jest poniżej progu automatycznej krytyczności. Ręczna naprawa może się nadal rozpocząć, gdy kontrole bezpieczeństwa zakończą się powodzeniem.", + "beforeEnablement": "Analiza została ukończona przed włączeniem automatycznej naprawy. Ręczna naprawa może się nadal rozpocząć, gdy kontrole bezpieczeństwa zakończą się powodzeniem.", + "generic": "Naprawa jest niedostępna dla tego znaleziska." } }, "agents": { @@ -2675,7 +2799,9 @@ "submitCountOfTotal": "Wyślij {{displayFreshCount}} z {{displayTotalCount}} komentarzy", "submitReview": "Wyślij przegląd", "pendingComment_few": "oczekujące komentarze", - "pendingComment_many": "oczekujących komentarzy" + "pendingComment_many": "oczekujących komentarzy", + "blockedRequestChanges": "Dodaj podsumowanie lub co najmniej jeden komentarz, aby poprosić o zmiany.", + "blockedComment": "Dodaj podsumowanie lub co najmniej jeden komentarz, aby opublikować przegląd z komentarzem." }, "fileStatus": { "added": "Dodano", diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index e33412cf28..ded6ea49aa 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -512,7 +512,9 @@ "pendingComment_other": "په انتظار تبصرې", "submitCountOfTotal": "د {{displayTotalCount}} تبصرو څخه {{displayFreshCount}} وسپارئ", "submitReview": "بیاکتنه وسپارئ", - "partialPostedMessage": "{{displayFreshCount}} تبصره خپره شوه. {{displayStaleCount}} تبصرې په یو زوړ کمټ اشاره کوي او ستاسو په قطار کې پاتې شوې." + "partialPostedMessage": "{{displayFreshCount}} تبصره خپره شوه. {{displayStaleCount}} تبصرې په یو زوړ کمټ اشاره کوي او ستاسو په قطار کې پاتې شوې.", + "blockedRequestChanges": "د بدلونونو د غوښتلو لپاره لنډیز یا لږ تر لږه یوه تبصره اضافه کړئ.", + "blockedComment": "د تبصرې د بیاکتنې د خپرولو لپاره لنډیز یا لږ تر لږه یوه تبصره اضافه کړئ." }, "reconnectNotice": { "title": "د GitHub اړیکه پای ته ورسیده", @@ -1376,7 +1378,16 @@ }, "eyebrow": "کوډ بیاکتونکی", "updateFailed": "بیاکتونکی تازه کول ناکام شول", - "configSaveFailed": "د بیاکتنې ترتیب خوندي کول ناکام شول" + "configSaveFailed": "د بیاکتنې ترتیب خوندي کول ناکام شول", + "status": { + "pending": "په انتظار", + "queued": "په صف کې", + "running": "روان", + "completed": "بشپړ شوی", + "failed": "ناکام", + "cancelled": "لغوه شوی", + "interrupted": "مداخله شوی" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "د سرچینې ریکارډ", "source": "سرچینه", "sourceId": "د سرچینې ID", - "viewAdvisory": "په GitHub کې مشوره وګورئ" + "viewAdvisory": "په GitHub کې مشوره وګورئ", + "statusSuperseded": "بدله شوې", + "statusFixed": "اصلاح شوی", + "statusOpen": "خلاص", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "یو اصلاح لا دمخه پیل شوې ده", + "reasonNoBandwidth": "هیڅ ظرفیت شتون نلري", + "reasonTolerableRisk": "خطر د زغملو وړ دی", + "reasonInaccurate": "موندنه ناسمه ده", + "reasonNotUsed": "زیانمن کوډ نه کارول کیږي", + "reasonAfterReview": "د بیاکتنې وروسته" }, "settingsOverview": { "title": "ترتیبات", @@ -1805,6 +1826,107 @@ "syncInProgress": "د امنیت ترکیب دمخه روان دی. مهرباني وکړئ بیا هڅه وکړئ.", "dismissalInProgress": "دا له پامه غورځول دمخه روان دی. مهرباني وکړئ بیا هڅه وکړئ.", "couldNotReadPendingSyncs": "انتظاري ترکیبونه نه شول لوستل کېدلای. بیا هڅه وکړئ." + }, + "analysisState": { + "queued": "تحلیل په صف کې دی", + "queuedTitle": "تحلیل په صف کې دی", + "queuedDescription": "د تحلیل ظرفیت د شتون انتظار.", + "analyzing": "تحلیل", + "analyzingTitle": "تحلیل", + "analyzingDescription": "معاینه کول چې ایا د اپلیکیشن کوډ کولی شي اغیزمنې بڼې ته ورسیږي.", + "failed": "تحلیل ناکام شو", + "failedTitle": "تحلیل ناکام شو", + "failedDescription": "د امنیت استازی تحلیل بشپړ کولی نشو.", + "extractionFailed": "بیاکتنې ته اړتیا لري", + "extractionFailedTitle": "بیاکتنې ته اړتیا لري", + "extractionFailedDescription": "تخنیکي راپور د منظمې پایلې په بڼه بدلولای نه شو.", + "exploitable": "استحصال وړ", + "exploitableTitle": "استحصال وړ", + "exploitableDescription": "د اپلیکیشن کوډ کولی شي اغیزمنې بڼې ته ورسیږي.", + "notExploitable": "د لاسرسي وړ نه ده", + "notExploitableTitle": "د لاسرسي وړ نه ده", + "notExploitableDescription": "په دې ذخیره کې د لاسرسي وړ لاره ونه موندل شوه.", + "unknown": "بیاکتنې ته اړتیا لري", + "unknownTitle": "بیاکتنې ته اړتیا لري", + "unknownDescription": "تحلیل نشو کولی تایید کړي چې ایا زیانمنه بڼه د لاسرسي وړ ده.", + "safeToDismiss": "د له پامه غورځولو لپاره خوندي", + "safeToDismissTitle": "د له پامه غورځولو لپاره خوندي", + "safeToDismissDescription": "طبقه بندۍ وټاکله چې دا پرته له کوډبیس تحلیل څخه په خوندي توګه له پامه غورځول کیدی شي.", + "manualReview": "بیاکتنې ته اړتیا لري", + "manualReviewTitle": "لاسي بیاکتنې ته اړتیا لري", + "manualReviewDescription": "طبقه بندۍ دا موندنه د لاسي بیاکتنې لپاره په نښه کړه.", + "analysisRequired": "تحلیل اړین دی", + "analysisRequiredTitle": "د کوډبیس تحلیل اړین دی", + "analysisRequiredDescription": "طبقه بندۍ د پریکړې دمخه د ذخیرې تحلیل وړاندیز کوي.", + "completed": "تحلیل شوی", + "completedTitle": "تحلیل شوی", + "completedDescription": "تحلیل پرته له ثبت شوي ځانګړي پایلې بشپړ شو.", + "notAnalyzed": "تحلیل نه شوی", + "notAnalyzedTitle": "تحلیل نه شوی", + "notAnalyzedDescription": "د دې موندنې لپاره لا تر اوسه د کوډبیس تحلیل نه دی چلول شوی." + }, + "deadline": { + "fixedBeforeDeadline": "د مهالو وخت دمخه اصلاح شوی", + "fixed": "اصلاح شوی", + "fixedOn": "په {{date}} اصلاح شوی", + "resolutionRecorded": "حل ثبت شو", + "superseded": "بدله شوې", + "dismissed": "له پامه غورځول شوې", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "مهالو وخت نه دی ټاکل شوی", + "noSlaDeadline": "هیڅ SLA مهالو وخت نشته", + "dueOn": "مهالو وخت: {{date}}", + "overdueNow": "ځنډ", + "overdue_one": "{{count}} ورځ ځنډ", + "overdue_other": "{{count}} ورځې ځنډ", + "dueToday": "نن مهالو وخت", + "dueTomorrow": "سبا مهالو وخت", + "dueInDays_one": "په {{count}} ورځ کې", + "dueInDays_other": "په {{count}} ورځو کې", + "overdue": "{{count}} ورځې ځنډ", + "dueInDays": "په {{count}} ورځو کې" + }, + "remediationStatus": { + "cancellationRequested": "د لغوه کولو غوښتنه وشوه", + "notStarted": "نه دی پیل شوی", + "queued": "په صف کې", + "starting": "پیلېدل", + "inProgress": "په جریان کې", + "draftPrOpened": "د مسودې PR پرانیستل شو", + "prOpened": "PR پرانیستل شو", + "blocked": "بند شوی", + "failed": "ناکام شو", + "noChangesNeeded": "هیڅ بدلون ته اړتیا نشته", + "cancelled": "لغوه شوې", + "originAutomaticPolicy": "اتوماتیک پالیسي", + "originIncludeExistingPolicy": "د موجودو شاملولو پالیسي", + "originManual": "لاسي", + "validationCheck": "د تایید چیک {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "د امنیت موندنه نوره شتون نلري.", + "approvalRequired": "اتوماتیک اصلاح تصویب ته اړتیا لري. د تصویب لپاره اصلاح په لاسي ډول پیل کړئ.", + "findingNotOpen": "موندنه نوره خلاصه نه ده.", + "repoNotInScope": "ذخیره د امنیت استازي لپاره نه ده غوره شوې.", + "analysisRequired": "د اصلاح پیلولو دمخه د کوډبیس تحلیل پرمخ یوسئ.", + "sandboxAnalysisRequired": "د اصلاح پیلولو دمخه د کوډبیس تحلیل پرمخ یوسئ.", + "staleAnalysis": "موندنه د تحلیل وروسته بدله شوه. د اصلاح پیلولو دمخه تحلیل بیا پرمخ یوسئ.", + "notExploitable": "تحلیل هیڅ د لاسرسي وړ زیانمنه لاره ونه موندله. اتوماتیک اصلاح شتون نلري.", + "exploitabilityUnknown": "تحلیل نشو کولی استحصال تایید کړي. د یو کلیک اصلاح څخه دمخه لاسي بیاکتنه اړینه ده.", + "manualReviewRequired": "تحلیل لاسي بیاکتنه وړاندیز کوي، نو د یو کلیک اصلاح شتون نلري.", + "monitorRequired": "تحلیل د PR پرانیستلو پرځای څارنه وړاندیز کوي.", + "triageOnly": "یوازې طبقه بندي بشپړه شوې. د اصلاح پیلولو دمخه د کوډبیس تحلیل پرمخ یوسئ.", + "actionNotConcrete": "هیڅ ځانګړی انحصاري پیچ یا وړاندیز شوی اصلاح شتون نلري.", + "remediationActive": "د اصلاح هڅه لا دمخه فعاله ده.", + "prAlreadyOpened": "د اصلاح PR لا دمخه خلاص دی.", + "duplicateAnalysisResult": "د دې تحلیل پایلې لا دمخه د اصلاح کار تولید کړی.", + "retryNotAllowed": "د دې هڅې لپاره بیا هڅه شتون نلري.", + "securityAgentDisabled": "د امنیت استازی د دې مالک لپاره غیرفعال دی.", + "autoRemediationDisabled": "اتوماتیک اصلاح غیرفعاله ده. کله چې امنیتي دروازې تېرې شي، لاسي اصلاح لاهم پیل کیدی شي.", + "includeExistingDisabled": "موجوده موندنې له اتوماتیک اصلاح څخه خارجې دي.", + "belowThreshold": "موندنه د اتوماتیک کچې حد څخه ښکته ده. کله چې امنیتي دروازې تېرې شي، لاسي اصلاح لاهم پیل کیدی شي.", + "beforeEnablement": "تحلیل د اتوماتیک اصلاح فعالولو دمخه بشپړ شو. کله چې امنیتي دروازې تېرې شي، لاسي اصلاح لاهم پیل کیدی شي.", + "generic": "اصلاح د دې موندنې لپاره شتون نلري." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index 4f51eb9e91..81e12a5f5c 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -927,7 +927,16 @@ "set": "Definir" }, "updateFailed": "Falha ao atualizar o revisor", - "configSaveFailed": "Falha ao salvar a configuração de revisão" + "configSaveFailed": "Falha ao salvar a configuração de revisão", + "status": { + "pending": "Pendente", + "queued": "Na fila", + "running": "Em execução", + "completed": "Concluída", + "failed": "Falhou", + "cancelled": "Cancelado", + "interrupted": "Interrompida" + } }, "securityAgent": { "filter": { @@ -1174,7 +1183,17 @@ "unknown": "Desconhecido", "updated": "Atualizado", "viewAdvisory": "Ver aviso no GitHub", - "vulnerableVersions": "Versões vulneráveis" + "vulnerableVersions": "Versões vulneráveis", + "statusSuperseded": "Substituída", + "statusFixed": "Corrigido", + "statusOpen": "Aberto", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Uma correção já foi iniciada", + "reasonNoBandwidth": "Não há capacidade disponível", + "reasonTolerableRisk": "O risco é tolerável", + "reasonInaccurate": "A descoberta é imprecisa", + "reasonNotUsed": "O código vulnerável não é usado", + "reasonAfterReview": "após a revisão" }, "findingList": { "clearFilters": "Limpar filtros", @@ -1358,6 +1377,109 @@ "syncInProgress": "Uma sincronização de segurança já está em andamento. Tente novamente.", "dismissalInProgress": "Esta dispensa já está em andamento. Tente novamente.", "couldNotReadPendingSyncs": "Não foi possível ler as sincronizações pendentes. Tente novamente." + }, + "analysisState": { + "queued": "Análise na fila", + "queuedTitle": "Análise na fila", + "queuedDescription": "Aguardando a disponibilidade de capacidade de análise.", + "analyzing": "Analisando", + "analyzingTitle": "Analisando", + "analyzingDescription": "Verificando se o código do aplicativo pode alcançar o recurso afetado.", + "failed": "Análise falhou", + "failedTitle": "Análise falhou", + "failedDescription": "O Security Agent não pôde concluir a análise.", + "extractionFailed": "Precisa de revisão", + "extractionFailedTitle": "Precisa de revisão", + "extractionFailedDescription": "Não foi possível transformar o relatório técnico em um resultado estruturado.", + "exploitable": "Explorável", + "exploitableTitle": "Explorável", + "exploitableDescription": "O código do aplicativo pode alcançar o recurso afetado.", + "notExploitable": "Inalcançável", + "notExploitableTitle": "Inalcançável", + "notExploitableDescription": "Nenhum caminho alcançável foi encontrado neste repositório.", + "unknown": "Precisa de revisão", + "unknownTitle": "Precisa de revisão", + "unknownDescription": "A análise não pôde confirmar se o recurso vulnerável é alcançável.", + "safeToDismiss": "Seguro para dispensar", + "safeToDismissTitle": "Seguro para dispensar", + "safeToDismissDescription": "A triagem determinou que isto pode ser dispensado com segurança sem análise do código.", + "manualReview": "Precisa de revisão", + "manualReviewTitle": "Precisa de revisão manual", + "manualReviewDescription": "A triagem sinalizou esta descoberta para revisão manual.", + "analysisRequired": "Análise necessária", + "analysisRequiredTitle": "Análise do código necessária", + "analysisRequiredDescription": "A triagem recomenda analisar o repositório antes de decidir uma resposta.", + "completed": "Analisado", + "completedTitle": "Analisado", + "completedDescription": "Análise concluída sem nenhum resultado específico registrado.", + "notAnalyzed": "Não analisado", + "notAnalyzedTitle": "Não analisado", + "notAnalyzedDescription": "A análise do código ainda não foi executada para esta descoberta." + }, + "deadline": { + "fixedBeforeDeadline": "Corrigido antes do prazo", + "fixed": "Corrigido", + "fixedOn": "Corrigido em {{date}}", + "resolutionRecorded": "Resolução registrada", + "superseded": "Substituída", + "dismissed": "Dispensado", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Prazo não definido", + "noSlaDeadline": "Nenhum prazo de SLA", + "dueOn": "Vence em {{date}}", + "overdueNow": "Em atraso", + "overdue_one": "{{count}} dia em atraso", + "overdue_many": "{{count}} dias em atraso", + "overdue_other": "{{count}} dias em atraso", + "dueToday": "Vence hoje", + "dueTomorrow": "Vence amanhã", + "dueInDays_one": "Vence em {{count}} dia", + "dueInDays_many": "Vence em {{count}} dias", + "dueInDays_other": "Vence em {{count}} dias", + "overdue": "{{count}} dias em atraso", + "dueInDays": "Vence em {{count}} dias" + }, + "remediationStatus": { + "cancellationRequested": "Cancelamento solicitado", + "notStarted": "Não iniciado", + "queued": "Na fila", + "starting": "Iniciando", + "inProgress": "Em andamento", + "draftPrOpened": "PR de rascunho aberto", + "prOpened": "PR aberto", + "blocked": "Bloqueado", + "failed": "Falhou", + "noChangesNeeded": "Nenhuma alteração necessária", + "cancelled": "Cancelado", + "originAutomaticPolicy": "Política automática", + "originIncludeExistingPolicy": "Política de incluir existentes", + "originManual": "Manual", + "validationCheck": "Verificação de validação {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "A descoberta de segurança não existe mais.", + "approvalRequired": "A remediação automática requer aprovação. Inicie a remediação manualmente para aprová-la.", + "findingNotOpen": "A descoberta não está mais aberta.", + "repoNotInScope": "O repositório não está selecionado para o Security Agent.", + "analysisRequired": "Execute a análise do código antes de iniciar a remediação.", + "sandboxAnalysisRequired": "Execute a análise do código antes de iniciar a remediação.", + "staleAnalysis": "A descoberta mudou após a análise. Execute a análise novamente antes de iniciar a remediação.", + "notExploitable": "A análise não encontrou nenhum caminho vulnerável alcançável. A remediação automática está indisponível.", + "exploitabilityUnknown": "A análise não pôde confirmar a explorabilidade. É necessária revisão manual antes da remediação com um clique.", + "manualReviewRequired": "A análise recomenda revisão manual, então a remediação com um clique está indisponível.", + "monitorRequired": "A análise recomenda monitoramento em vez de abrir um PR.", + "triageOnly": "Somente a triagem foi concluída. Execute a análise do código antes de iniciar a remediação.", + "actionNotConcrete": "Nenhum patch de dependência concreto ou correção sugerida está disponível.", + "remediationActive": "Uma tentativa de remediação já está ativa.", + "prAlreadyOpened": "Um PR de remediação já está aberto.", + "duplicateAnalysisResult": "Este resultado de análise já produziu trabalho de remediação.", + "retryNotAllowed": "A repetição não está disponível para esta tentativa.", + "securityAgentDisabled": "O Security Agent está desativado para este proprietário.", + "autoRemediationDisabled": "A remediação automática está desativada. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", + "includeExistingDisabled": "As descobertas existentes são excluídas da remediação automática.", + "belowThreshold": "A descoberta está abaixo do limite de gravidade automático. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", + "beforeEnablement": "A análise foi concluída antes da ativação da remediação automática. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", + "generic": "A remediação está indisponível para esta descoberta." } }, "agents": { @@ -2657,7 +2779,9 @@ "partialPostedMessage": "{{displayFreshCount}} comentário(s) publicado(s). {{displayStaleCount}} comentário(s) apontam para um commit mais antigo e permaneceram na sua fila.", "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentários", "submitReview": "Enviar revisão", - "pendingComment_many": "comentários pendentes" + "pendingComment_many": "comentários pendentes", + "blockedRequestChanges": "Adicione um resumo ou pelo menos um comentário para solicitar alterações.", + "blockedComment": "Adicione um resumo ou pelo menos um comentário para publicar uma revisão com comentário." }, "fileStatus": { "added": "Adicionado", diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index e38141276c..d63cfde297 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -517,7 +517,9 @@ "submitCountOfTotal": "Enviar {{displayFreshCount}} de {{displayTotalCount}} comentários", "submitReview": "Enviar revisão", "partialPostedMessage": "{{displayFreshCount}} comentário(s) enviado(s). {{displayStaleCount}} comentário(s) apontam para um commit mais antigo e ficaram na sua fila.", - "pendingComment_many": "comentários pendentes" + "pendingComment_many": "comentários pendentes", + "blockedRequestChanges": "Adicione um resumo ou pelo menos um comentário para pedir alterações.", + "blockedComment": "Adicione um resumo ou pelo menos um comentário para publicar uma revisão com comentário." }, "reconnectNotice": { "title": "Ligação ao GitHub expirada", @@ -1385,7 +1387,16 @@ }, "eyebrow": "Revisor de Código", "updateFailed": "Falha ao atualizar o revisor", - "configSaveFailed": "Falha ao guardar a configuração de revisão" + "configSaveFailed": "Falha ao guardar a configuração de revisão", + "status": { + "pending": "Pendente", + "queued": "Na fila", + "running": "Em execução", + "completed": "Concluída", + "failed": "Falhou", + "cancelled": "Cancelada", + "interrupted": "Interrompida" + } }, "securityAgent": { "filter": { @@ -1587,7 +1598,17 @@ "sourceRecord": "Registo de origem", "source": "Origem", "sourceId": "ID de origem", - "viewAdvisory": "Ver aviso no GitHub" + "viewAdvisory": "Ver aviso no GitHub", + "statusSuperseded": "Substituída", + "statusFixed": "Corrigido", + "statusOpen": "Aberto", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Já foi iniciada uma correção", + "reasonNoBandwidth": "Não há disponibilidade", + "reasonTolerableRisk": "O risco é tolerável", + "reasonInaccurate": "A descoberta é imprecisa", + "reasonNotUsed": "O código vulnerável não é utilizado", + "reasonAfterReview": "após a revisão" }, "settingsOverview": { "title": "Definições", @@ -1816,6 +1837,109 @@ "syncInProgress": "Já está em curso uma sincronização de segurança. Tente novamente.", "dismissalInProgress": "Esta dispensa já está em curso. Tente novamente.", "couldNotReadPendingSyncs": "Não foi possível ler as sincronizações pendentes. Tente novamente." + }, + "analysisState": { + "queued": "Análise na fila", + "queuedTitle": "Análise na fila", + "queuedDescription": "A aguardar que a capacidade de análise esteja disponível.", + "analyzing": "A analisar", + "analyzingTitle": "A analisar", + "analyzingDescription": "A verificar se o código da aplicação pode alcançar a funcionalidade afetada.", + "failed": "A análise falhou", + "failedTitle": "A análise falhou", + "failedDescription": "O Security Agent não conseguiu concluir a análise.", + "extractionFailed": "Necessita de revisão", + "extractionFailedTitle": "Necessita de revisão", + "extractionFailedDescription": "Não foi possível transformar o relatório técnico num resultado estruturado.", + "exploitable": "Explorável", + "exploitableTitle": "Explorável", + "exploitableDescription": "O código da aplicação pode alcançar a funcionalidade afetada.", + "notExploitable": "Inalcançável", + "notExploitableTitle": "Inalcançável", + "notExploitableDescription": "Nenhum caminho alcançável foi encontrado neste repositório.", + "unknown": "Necessita de revisão", + "unknownTitle": "Necessita de revisão", + "unknownDescription": "A análise não conseguiu confirmar se a funcionalidade vulnerável é alcançável.", + "safeToDismiss": "Seguro para dispensar", + "safeToDismissTitle": "Seguro para dispensar", + "safeToDismissDescription": "A triagem determinou que isto pode ser dispensado com segurança sem análise do código.", + "manualReview": "Necessita de revisão", + "manualReviewTitle": "Necessita de revisão manual", + "manualReviewDescription": "A triagem assinalou esta descoberta para revisão manual.", + "analysisRequired": "Análise necessária", + "analysisRequiredTitle": "Análise do código necessária", + "analysisRequiredDescription": "A triagem recomenda analisar o repositório antes de decidir uma resposta.", + "completed": "Analisado", + "completedTitle": "Analisado", + "completedDescription": "Análise concluída sem nenhum resultado específico registado.", + "notAnalyzed": "Não analisado", + "notAnalyzedTitle": "Não analisado", + "notAnalyzedDescription": "A análise do código ainda não foi executada para esta descoberta." + }, + "deadline": { + "fixedBeforeDeadline": "Corrigido antes do prazo", + "fixed": "Corrigido", + "fixedOn": "Corrigido em {{date}}", + "resolutionRecorded": "Resolução registada", + "superseded": "Substituída", + "dismissed": "Dispensada", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Prazo não definido", + "noSlaDeadline": "Sem prazo de SLA", + "dueOn": "Vence em {{date}}", + "overdueNow": "Em atraso", + "overdue_one": "{{count}} dia em atraso", + "overdue_many": "{{count}} dias em atraso", + "overdue_other": "{{count}} dias em atraso", + "dueToday": "Vence hoje", + "dueTomorrow": "Vence amanhã", + "dueInDays_one": "Vence em {{count}} dia", + "dueInDays_many": "Vence em {{count}} dias", + "dueInDays_other": "Vence em {{count}} dias", + "overdue": "{{count}} dias em atraso", + "dueInDays": "Vence em {{count}} dias" + }, + "remediationStatus": { + "cancellationRequested": "Cancelamento solicitado", + "notStarted": "Não iniciado", + "queued": "Na fila", + "starting": "A iniciar", + "inProgress": "Em curso", + "draftPrOpened": "PR de rascunho aberto", + "prOpened": "PR aberto", + "blocked": "Bloqueado", + "failed": "Falhou", + "noChangesNeeded": "Sem alterações necessárias", + "cancelled": "Cancelada", + "originAutomaticPolicy": "Política automática", + "originIncludeExistingPolicy": "Política de incluir existentes", + "originManual": "Manual", + "validationCheck": "Verificação de validação {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "A descoberta de segurança já não existe.", + "approvalRequired": "A remediação automática requer aprovação. Inicie a remediação manualmente para a aprovar.", + "findingNotOpen": "A descoberta já não está aberta.", + "repoNotInScope": "O repositório não está selecionado para o Security Agent.", + "analysisRequired": "Execute a análise do código antes de iniciar a remediação.", + "sandboxAnalysisRequired": "Execute a análise do código antes de iniciar a remediação.", + "staleAnalysis": "A descoberta mudou após a análise. Execute novamente a análise antes de iniciar a remediação.", + "notExploitable": "A análise não encontrou nenhum caminho vulnerável alcançável. A remediação automática está indisponível.", + "exploitabilityUnknown": "A análise não conseguiu confirmar a explorabilidade. É necessária revisão manual antes da remediação com um clique.", + "manualReviewRequired": "A análise recomenda revisão manual, por isso a remediação com um clique está indisponível.", + "monitorRequired": "A análise recomenda monitorização em vez de abrir um PR.", + "triageOnly": "Apenas a triagem foi concluída. Execute a análise do código antes de iniciar a remediação.", + "actionNotConcrete": "Nenhum patch de dependência concreto ou correção sugerida está disponível.", + "remediationActive": "Já existe uma tentativa de remediação ativa.", + "prAlreadyOpened": "Já existe um PR de remediação aberto.", + "duplicateAnalysisResult": "Este resultado de análise já produziu trabalho de remediação.", + "retryNotAllowed": "Repetir não está disponível para esta tentativa.", + "securityAgentDisabled": "O Security Agent está desativado para este proprietário.", + "autoRemediationDisabled": "A remediação automática está desativada. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", + "includeExistingDisabled": "As descobertas existentes estão excluídas da remediação automática.", + "belowThreshold": "A descoberta está abaixo do limiar de gravidade automático. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", + "beforeEnablement": "A análise foi concluída antes de a remediação automática ser ativada. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", + "generic": "A remediação está indisponível para esta descoberta." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index 88696405d0..2ada813cfe 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -517,7 +517,9 @@ "submitCountOfTotal": "Trimite {{displayFreshCount}} din {{displayTotalCount}} comentarii", "submitReview": "Trimite revizuirea", "partialPostedMessage": "Publicate {{displayFreshCount}} comentariu(i). {{displayStaleCount}} comentariu(i) se referă la un commit mai vechi și au rămas în coada ta.", - "pendingComment_few": "comentarii în așteptare" + "pendingComment_few": "comentarii în așteptare", + "blockedRequestChanges": "Adaugă un rezumat sau cel puțin un comentariu pentru a cere modificări.", + "blockedComment": "Adaugă un rezumat sau cel puțin un comentariu pentru a publica o revizuire cu comentariu." }, "reconnectNotice": { "title": "Conexiunea GitHub a expirat", @@ -1385,7 +1387,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Actualizarea revizorului a eșuat", - "configSaveFailed": "Salvarea configurării de revizuire a eșuat" + "configSaveFailed": "Salvarea configurării de revizuire a eșuat", + "status": { + "pending": "În așteptare", + "queued": "În coadă", + "running": "Rulează", + "completed": "Finalizat", + "failed": "Eșuat", + "cancelled": "Anulat", + "interrupted": "Întrerupt" + } }, "securityAgent": { "filter": { @@ -1587,7 +1598,17 @@ "sourceRecord": "Înregistrarea sursă", "source": "Sursă", "sourceId": "ID sursă", - "viewAdvisory": "Vizualizează avizul pe GitHub" + "viewAdvisory": "Vizualizează avizul pe GitHub", + "statusSuperseded": "Înlocuită", + "statusFixed": "Rezolvată", + "statusOpen": "Deschisă", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "o remediere a început deja", + "reasonNoBandwidth": "nu este disponibilă nicio capacitate", + "reasonTolerableRisk": "riscul este tolerabil", + "reasonInaccurate": "constatarea este inexactă", + "reasonNotUsed": "codul vulnerabil nu este utilizat", + "reasonAfterReview": "după revizuire" }, "settingsOverview": { "title": "Setări", @@ -1816,6 +1837,109 @@ "syncInProgress": "O sincronizare de securitate este deja în curs. Încearcă din nou.", "dismissalInProgress": "Această respingere este deja în curs. Încearcă din nou.", "couldNotReadPendingSyncs": "Nu s-au putut citi sincronizările în așteptare. Încearcă din nou." + }, + "analysisState": { + "queued": "Analiză în coadă", + "queuedTitle": "Analiză în coadă", + "queuedDescription": "Se așteaptă ca o capacitate de analiză să devină disponibilă.", + "analyzing": "Se analizează", + "analyzingTitle": "Se analizează", + "analyzingDescription": "Se verifică dacă codul aplicației poate ajunge la funcția afectată.", + "failed": "Analiză eșuată", + "failedTitle": "Analiză eșuată", + "failedDescription": "Security Agent nu a putut finaliza analiza.", + "extractionFailed": "Necesită revizuire", + "extractionFailedTitle": "Necesită revizuire", + "extractionFailedDescription": "Raportul tehnic nu a putut fi transformat într-un rezultat structurat.", + "exploitable": "Exploatabil", + "exploitableTitle": "Exploatabil", + "exploitableDescription": "Codul aplicației poate ajunge la funcția afectată.", + "notExploitable": "Inaccesibil", + "notExploitableTitle": "Inaccesibil", + "notExploitableDescription": "Nu s-a găsit nicio cale accesibilă în acest depozit.", + "unknown": "Necesită revizuire", + "unknownTitle": "Necesită revizuire", + "unknownDescription": "Analiza nu a putut confirma dacă funcția vulnerabilă este accesibilă.", + "safeToDismiss": "Sigur de eliminat", + "safeToDismissTitle": "Sigur de eliminat", + "safeToDismissDescription": "Triajul a stabilit că aceasta poate fi eliminată în siguranță, fără analiza bazei de cod.", + "manualReview": "Necesită revizuire", + "manualReviewTitle": "Necesită revizuire manuală", + "manualReviewDescription": "Triajul a marcat această constatare pentru revizuire manuală.", + "analysisRequired": "Analiză necesară", + "analysisRequiredTitle": "Analiza bazei de cod este necesară", + "analysisRequiredDescription": "Triajul recomandă analizarea depozitului înainte de a decide un răspuns.", + "completed": "Analizat", + "completedTitle": "Analizat", + "completedDescription": "Analiza s-a finalizat fără un rezultat specific înregistrat.", + "notAnalyzed": "Neanalizat", + "notAnalyzedTitle": "Neanalizat", + "notAnalyzedDescription": "Analiza bazei de cod nu a rulat încă pentru această constatare." + }, + "deadline": { + "fixedBeforeDeadline": "Rezolvată înainte de termen", + "fixed": "Rezolvată", + "fixedOn": "Rezolvată {{date}}", + "resolutionRecorded": "Rezolvare înregistrată", + "superseded": "Înlocuită", + "dismissed": "Respinsă", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Termen limită nesetat", + "noSlaDeadline": "Fără termen limită SLA", + "dueOn": "Scadentă {{date}}", + "overdueNow": "Întârziată", + "overdue_one": "{{count}} zi întârziere", + "overdue_few": "{{count}} zile întârziere", + "overdue_other": "{{count}} zile întârziere", + "dueToday": "Scadentă astăzi", + "dueTomorrow": "Scadentă mâine", + "dueInDays_one": "Scadentă în {{count}} zi", + "dueInDays_few": "Scadentă în {{count}} zile", + "dueInDays_other": "Scadentă în {{count}} zile", + "overdue": "{{count}} zile întârziere", + "dueInDays": "Scadentă în {{count}} zile" + }, + "remediationStatus": { + "cancellationRequested": "Anulare solicitată", + "notStarted": "Neîncepută", + "queued": "În coadă", + "starting": "Se începe", + "inProgress": "În curs", + "draftPrOpened": "PR draft deschis", + "prOpened": "PR deschis", + "blocked": "Blocată", + "failed": "Eșuată", + "noChangesNeeded": "Nu sunt necesare modificări", + "cancelled": "Anulată", + "originAutomaticPolicy": "Politică automată", + "originIncludeExistingPolicy": "Politica de includere a constatărilor existente", + "originManual": "Manual", + "validationCheck": "Verificare de validare {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Constatarea de securitate nu mai există.", + "approvalRequired": "Auto-remedierea necesită aprobare. Începe remedierea manual pentru a o aproba.", + "findingNotOpen": "Constatarea nu mai este deschisă.", + "repoNotInScope": "Depozitul nu este selectat pentru Security Agent.", + "analysisRequired": "Rulează analiza bazei de cod înainte de a începe remedierea.", + "sandboxAnalysisRequired": "Rulează analiza bazei de cod înainte de a începe remedierea.", + "staleAnalysis": "Constatarea s-a schimbat după analiză. Rulează din nou analiza înainte de a începe remedierea.", + "notExploitable": "Analiza nu a găsit nicio cale vulnerabilă accesibilă. Auto-remedierea nu este disponibilă.", + "exploitabilityUnknown": "Analiza nu a putut confirma exploatabilitatea. Revizuirea manuală este necesară înainte de remedierea cu un singur clic.", + "manualReviewRequired": "Analiza recomandă revizuirea manuală, astfel că remedierea cu un singur clic nu este disponibilă.", + "monitorRequired": "Analiza recomandă monitorizarea în loc de deschiderea unui PR.", + "triageOnly": "Doar triajul s-a finalizat. Rulează analiza bazei de cod înainte de a începe remedierea.", + "actionNotConcrete": "Nu este disponibil un patch concret de dependență sau o remediere sugerată.", + "remediationActive": "O tentativă de remediere este deja activă.", + "prAlreadyOpened": "Un PR de remediere este deja deschis.", + "duplicateAnalysisResult": "Acest rezultat de analiză a produs deja lucrări de remediere.", + "retryNotAllowed": "Reîncercarea nu este disponibilă pentru această tentativă.", + "securityAgentDisabled": "Security Agent este dezactivat pentru acest proprietar.", + "autoRemediationDisabled": "Auto-remedierea este dezactivată. Remedierea manuală poate începe totuși când verificările de siguranță trec.", + "includeExistingDisabled": "Constatările existente sunt excluse din remedierea automată.", + "belowThreshold": "Constatarea este sub pragul automat de severitate. Remedierea manuală poate începe totuși când verificările de siguranță trec.", + "beforeEnablement": "Analiza s-a finalizat înainte ca auto-remedierea să fie activată. Remedierea manuală poate începe totuși când verificările de siguranță trec.", + "generic": "Remedierea nu este disponibilă pentru această constatare." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 310df070f0..041144b3f9 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -943,7 +943,16 @@ "set": "Задать" }, "updateFailed": "Не удалось обновить ревьюера", - "configSaveFailed": "Не удалось сохранить конфигурацию проверки" + "configSaveFailed": "Не удалось сохранить конфигурацию проверки", + "status": { + "pending": "Ожидает", + "queued": "В очереди", + "running": "Выполняется", + "completed": "Завершено", + "failed": "Не удалось", + "cancelled": "Отменено", + "interrupted": "Прервано" + } }, "securityAgent": { "filter": { @@ -1191,7 +1200,17 @@ "unknown": "Неизвестно", "updated": "Обновлено", "viewAdvisory": "Посмотреть рекомендацию на GitHub", - "vulnerableVersions": "Уязвимые версии" + "vulnerableVersions": "Уязвимые версии", + "statusSuperseded": "Заменена", + "statusFixed": "Исправлено", + "statusOpen": "Открыта", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "исправление уже начато", + "reasonNoBandwidth": "нет доступных ресурсов", + "reasonTolerableRisk": "риск приемлем", + "reasonInaccurate": "находка неточна", + "reasonNotUsed": "уязвимый код не используется", + "reasonAfterReview": "после проверки" }, "findingList": { "clearFilters": "Сбросить фильтры", @@ -1376,6 +1395,111 @@ "syncInProgress": "Синхронизация безопасности уже выполняется. Попробуйте снова.", "dismissalInProgress": "Это отклонение уже выполняется. Попробуйте снова.", "couldNotReadPendingSyncs": "Не удалось прочитать ожидающие синхронизации. Попробуйте снова." + }, + "analysisState": { + "queued": "Анализ в очереди", + "queuedTitle": "Анализ в очереди", + "queuedDescription": "Ожидается освобождение мощности анализа.", + "analyzing": "Анализируется", + "analyzingTitle": "Анализируется", + "analyzingDescription": "Проверяется, может ли код приложения достичь затронутого компонента.", + "failed": "Анализ не удался", + "failedTitle": "Анализ не удался", + "failedDescription": "Security Agent не смог завершить анализ.", + "extractionFailed": "Требует проверки", + "extractionFailedTitle": "Требует проверки", + "extractionFailedDescription": "Технический отчет не удалось преобразовать в структурированный результат.", + "exploitable": "Эксплуатируемая", + "exploitableTitle": "Эксплуатируемая", + "exploitableDescription": "Код приложения может достичь затронутого компонента.", + "notExploitable": "Недостижима", + "notExploitableTitle": "Недостижима", + "notExploitableDescription": "В этом репозитории не найден достижимый путь.", + "unknown": "Требует проверки", + "unknownTitle": "Требует проверки", + "unknownDescription": "Анализ не смог подтвердить, достижим ли уязвимый компонент.", + "safeToDismiss": "Можно отклонить", + "safeToDismissTitle": "Можно отклонить", + "safeToDismissDescription": "Сортировка определила, что это можно безопасно отклонить без анализа кодовой базы.", + "manualReview": "Требует проверки", + "manualReviewTitle": "Требует ручной проверки", + "manualReviewDescription": "Сортировка пометила эту находку для ручной проверки.", + "analysisRequired": "Требуется анализ", + "analysisRequiredTitle": "Требуется анализ кодовой базы", + "analysisRequiredDescription": "Сортировка рекомендует проанализировать репозиторий перед выбором решения.", + "completed": "Проанализировано", + "completedTitle": "Проанализировано", + "completedDescription": "Анализ завершен без фиксации конкретного результата.", + "notAnalyzed": "Не проанализировано", + "notAnalyzedTitle": "Не проанализировано", + "notAnalyzedDescription": "Анализ кодовой базы для этой находки еще не выполнялся." + }, + "deadline": { + "fixedBeforeDeadline": "Исправлено до срока", + "fixed": "Исправлено", + "fixedOn": "Исправлено {{date}}", + "resolutionRecorded": "Решение зафиксировано", + "superseded": "Заменена", + "dismissed": "Отклонено", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Срок не установлен", + "noSlaDeadline": "Срок SLA не назначен", + "dueOn": "Срок: {{date}}", + "overdueNow": "Просрочено", + "overdue_one": "Просрочено на {{count}} день", + "overdue_few": "Просрочено на {{count}} дня", + "overdue_many": "Просрочено на {{count}} дней", + "overdue_other": "Просрочено на {{count}} дней", + "dueToday": "Срок сегодня", + "dueTomorrow": "Срок завтра", + "dueInDays_one": "Срок через {{count}} день", + "dueInDays_few": "Срок через {{count}} дня", + "dueInDays_many": "Срок через {{count}} дней", + "dueInDays_other": "Срок через {{count}} дней", + "overdue": "Просрочено на {{count}} дней", + "dueInDays": "Срок через {{count}} дней" + }, + "remediationStatus": { + "cancellationRequested": "Запрошена отмена", + "notStarted": "Не начато", + "queued": "В очереди", + "starting": "Запуск", + "inProgress": "В процессе", + "draftPrOpened": "Открыт черновой PR", + "prOpened": "PR открыт", + "blocked": "Заблокировано", + "failed": "Не удалось", + "noChangesNeeded": "Изменения не требуются", + "cancelled": "Отменено", + "originAutomaticPolicy": "Автоматическая политика", + "originIncludeExistingPolicy": "Политика включения существующих находок", + "originManual": "Вручную", + "validationCheck": "Проверка валидации {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Находка безопасности больше не существует.", + "approvalRequired": "Автоисправление требует подтверждения. Запустите исправление вручную, чтобы подтвердить его.", + "findingNotOpen": "Находка больше не открыта.", + "repoNotInScope": "Репозиторий не выбран для Security Agent.", + "analysisRequired": "Запустите анализ кодовой базы перед началом исправления.", + "sandboxAnalysisRequired": "Запустите анализ кодовой базы перед началом исправления.", + "staleAnalysis": "Находка изменилась после анализа. Повторите анализ перед началом исправления.", + "notExploitable": "Анализ не нашёл достижимого пути к уязвимости. Автоисправление недоступно.", + "exploitabilityUnknown": "Анализ не смог подтвердить эксплуатируемость. Перед исправлением в один клик требуется ручная проверка.", + "manualReviewRequired": "Анализ рекомендует ручную проверку, поэтому исправление в один клик недоступно.", + "monitorRequired": "Анализ рекомендует мониторинг вместо открытия PR.", + "triageOnly": "Завершена только сортировка. Запустите анализ кодовой базы перед началом исправления.", + "actionNotConcrete": "Нет доступного конкретного патча зависимости или рекомендуемого исправления.", + "remediationActive": "Попытка исправления уже выполняется.", + "prAlreadyOpened": "PR исправления уже открыт.", + "duplicateAnalysisResult": "Этот результат анализа уже привёл к работе по исправлению.", + "retryNotAllowed": "Повтор недоступен для этой попытки.", + "securityAgentDisabled": "Security Agent отключен для этого владельца.", + "autoRemediationDisabled": "Автоисправление отключено. Ручное исправление всё ещё может начаться, когда проверки безопасности пройдены.", + "includeExistingDisabled": "Существующие находки исключены из автоматического исправления.", + "belowThreshold": "Находка ниже автоматического порога критичности. Ручное исправление всё ещё может начаться, когда проверки безопасности пройдены.", + "beforeEnablement": "Анализ завершен до включения автоисправления. Ручное исправление всё ещё может начаться, когда проверки безопасности пройдены.", + "generic": "Исправление недоступно для этой находки." } }, "agents": { @@ -2675,7 +2799,9 @@ "submitCountOfTotal": "Отправить {{displayFreshCount}} из {{displayTotalCount}} комментариев", "submitReview": "Отправить проверку", "pendingComment_few": "ожидающих комментария", - "pendingComment_many": "ожидающих комментариев" + "pendingComment_many": "ожидающих комментариев", + "blockedRequestChanges": "Добавьте итог или хотя бы один комментарий, чтобы запросить изменения.", + "blockedComment": "Добавьте итог или хотя бы один комментарий, чтобы отправить проверку с комментарием." }, "fileStatus": { "added": "Добавлено", diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index ba95014391..42fc09925d 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -512,7 +512,9 @@ "pendingComment_other": "අත්හිටුවන ලද අදහස්", "submitCountOfTotal": "අදහස් {{displayTotalCount}} න් {{displayFreshCount}} ඉදිරිපත් කරන්න", "submitReview": "සමාලෝචනය ඉදිරිපත් කරන්න", - "partialPostedMessage": "අදහස් {{displayFreshCount}} ක් පළ කරන ලදී. අදහස් {{displayStaleCount}} ක් පැරණි commit එකක් දෙස බලා ඔබේ පෝලිමේ රැඳී ඇත." + "partialPostedMessage": "අදහස් {{displayFreshCount}} ක් පළ කරන ලදී. අදහස් {{displayStaleCount}} ක් පැරණි commit එකක් දෙස බලා ඔබේ පෝලිමේ රැඳී ඇත.", + "blockedRequestChanges": "වෙනස්කම් ඉල්ලීමට සාරාංශයක් හෝ අවම වශයෙන් එක් අදහසක් එක් කරන්න.", + "blockedComment": "අදහස් සමාලෝචනයක් පළ කිරීමට සාරාංශයක් හෝ අවම වශයෙන් එක් අදහසක් එක් කරන්න." }, "reconnectNotice": { "title": "GitHub සම්බන්ධතාවය කල් ඉකුත් විය", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "සමාලෝචකයා යාවත්කාලීන කිරීම අසාර්ථකයි", - "configSaveFailed": "සමාලෝචන වින්‍යාසය සුරැකීම අසාර්ථකයි" + "configSaveFailed": "සමාලෝචන වින්‍යාසය සුරැකීම අසාර්ථකයි", + "status": { + "pending": "බලා සිටී", + "queued": "පෝලිම් කර ඇත", + "running": "ධාවනය වෙමින්", + "completed": "සම්පූර්ණයි", + "failed": "අසමත් විය", + "cancelled": "අවලංගු කර ඇත", + "interrupted": "බාධා විය" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "මූලාශ්ර වාර්තාව", "source": "මූලාශ්රය", "sourceId": "මූලාශ්ර හැඳුනුම", - "viewAdvisory": "GitHub හි උපදෙස් බලන්න" + "viewAdvisory": "GitHub හි උපදෙස් බලන්න", + "statusSuperseded": "ප්රතිස්ථාපනය වී ඇත", + "statusFixed": "නිවැරදි කර ඇත", + "statusOpen": "විවෘත", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "නිවැරදි කිරීමක් දැනටමත් ආරම්භ වී ඇත", + "reasonNoBandwidth": "කිසිදු ධාරිතාවක් ලබාගත නොහැක", + "reasonTolerableRisk": "අවදානම ඉවසිය හැකි ය", + "reasonInaccurate": "සොයාගැනීම අසත්ය වේ", + "reasonNotUsed": "අවදානම් කේතය භාවිතා නොකරයි", + "reasonAfterReview": "සමාලෝචනයෙන් පසුව" }, "settingsOverview": { "title": "සැකසුම්", @@ -1805,6 +1826,107 @@ "syncInProgress": "ආරක්ෂක සමමුහුර්තයක් දැනටමත් සිදු වෙමින් පවතී. කරුණාකර නැවත උත්සාහ කරන්න.", "dismissalInProgress": "මෙම ඉවතලීම දැනටමත් සිදු වෙමින් පවතී. කරුණාකර නැවත උත්සාහ කරන්න.", "couldNotReadPendingSyncs": "අපේක්ෂිත සමමුහුර්ත කියවීමට නොහැකි විය. නැවත උත්සාහ කරන්න." + }, + "analysisState": { + "queued": "විශ්ලේෂණය පෝලිම් කර ඇත", + "queuedTitle": "විශ්ලේෂණය පෝලිම් කර ඇත", + "queuedDescription": "විශ්ලේෂණ ධාරිතාව ලබා ගත හැකි වන තෙක් රැඳී සිටීම.", + "analyzing": "විශ්ලේෂණය වෙමින්", + "analyzingTitle": "විශ්ලේෂණය වෙමින්", + "analyzingDescription": "යෙදුම් කේතයට බලපෑමට ලක් වූ විශේෂාංගය වෙත ළඟා විය හැකිද යන්න පරීක්ෂා කිරීම.", + "failed": "විශ්ලේෂණය අසමත් විය", + "failedTitle": "විශ්ලේෂණය අසමත් විය", + "failedDescription": "Security Agent හට විශ්ලේෂණය සම්පූර්ණ කළ නොහැකි විය.", + "extractionFailed": "සමාලෝචනය අවශ්යයි", + "extractionFailedTitle": "සමාලෝචනය අවශ්යයි", + "extractionFailedDescription": "තාක්ෂණික වාර්තාව ව්‍යුහගත ප්‍රතිඵලයක් බවට පත් කළ නොහැකි විය.", + "exploitable": "සූරාකෑමට හැකි", + "exploitableTitle": "සූරාකෑමට හැකි", + "exploitableDescription": "යෙදුම් කේතයට බලපෑමට ලක් වූ විශේෂාංගය වෙත ළඟා විය හැක.", + "notExploitable": "ළඟා විය නොහැකි", + "notExploitableTitle": "ළඟා විය නොහැකි", + "notExploitableDescription": "මෙම ගබඩාවේ ළඟා විය හැකි මාර්ගයක් හමු නොවීය.", + "unknown": "සමාලෝචනය අවශ්‍යයි", + "unknownTitle": "සමාලෝචනය අවශ්‍යයි", + "unknownDescription": "අවදානමට ලක් වූ විශේෂාංගය ළඟා විය හැකිද යන්න විශ්ලේෂණයෙන් තහවුරු කළ නොහැකි විය.", + "safeToDismiss": "ඉවත් කිරීමට ආරක්ෂිත", + "safeToDismissTitle": "ඉවත් කිරීමට ආරක්ෂිත", + "safeToDismissDescription": "කේත පදනම විශ්ලේෂණයකින් තොරව මෙය ආරක්ෂිතව ඉවත් කළ හැකි බව Triage තීරණය කළේය.", + "manualReview": "සමාලෝචනය අවශ්‍යයි", + "manualReviewTitle": "අතින් සමාලෝචනය අවශ්‍යයි", + "manualReviewDescription": "Triage මෙම සොයාගැනීම අතින් සමාලෝචනය සඳහා සලකුණු කර ඇත.", + "analysisRequired": "විශ්ලේෂණය අවශ්‍යයි", + "analysisRequiredTitle": "කේත පදනම විශ්ලේෂණය අවශ්‍යයි", + "analysisRequiredDescription": "ප්‍රතිචාරයක් තීරණය කිරීමට පෙර ගබඩාව විශ්ලේෂණය කිරීමට Triage නිර්දේශ කරයි.", + "completed": "විශ්ලේෂණය කර ඇත", + "completedTitle": "විශ්ලේෂණය කර ඇත", + "completedDescription": "නිශ්චිත ප්‍රතිඵලයක් සටහන් නොකර විශ්ලේෂණය සම්පූර්ණ විය.", + "notAnalyzed": "විශ්ලේෂණය නොකළ", + "notAnalyzedTitle": "විශ්ලේෂණය නොකළ", + "notAnalyzedDescription": "මෙම සොයාගැනීම සඳහා කේත පදනම විශ්ලේෂණය තවමත් ධාවනය වී නොමැත." + }, + "deadline": { + "fixedBeforeDeadline": "නියමිත කාලයට පෙර නිවැරදි කර ඇත", + "fixed": "නිවැරදි කර ඇත", + "fixedOn": "{{date}} දින නිවැරදි කර ඇත", + "resolutionRecorded": "විසඳුම සටහන් කර ඇත", + "superseded": "ප්‍රතිස්ථාපනය වී ඇත", + "dismissed": "ඉවතලා ඇත", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "නියමිත කාලය සකසා නොමැත", + "noSlaDeadline": "SLA නියමිත කාලයක් නොමැත", + "dueOn": "{{date}} දින නියමිතයි", + "overdueNow": "ප්‍රමාදයි", + "dueToday": "අද නියමිතයි", + "dueTomorrow": "හෙට නියමිතයි", + "overdue_one": "දින {{count}} ක් ප්‍රමාදයි", + "overdue_other": "දින {{count}} ක් ප්‍රමාදයි", + "dueInDays_one": "දින {{count}} කින් නියමිතයි", + "dueInDays_other": "දින {{count}} කින් නියමිතයි", + "overdue": "දින {{count}} ක් ප්‍රමාදයි", + "dueInDays": "දින {{count}} කින් නියමිතයි" + }, + "remediationStatus": { + "cancellationRequested": "අවලංගු කිරීමක් ඉල්ලා ඇත", + "notStarted": "ආරම්භ කර නොමැත", + "queued": "පෝලිම් කර ඇත", + "starting": "ආරම්භ වෙමින්", + "inProgress": "සිදු වෙමින් පවතී", + "draftPrOpened": "කෙටුම්පත් PR විවෘත කර ඇත", + "prOpened": "PR විවෘත කර ඇත", + "blocked": "අවහිර විය", + "failed": "අසමත් විය", + "noChangesNeeded": "වෙනස්කම් අවශ්‍ය නොවේ", + "cancelled": "අවලංගු කර ඇත", + "originAutomaticPolicy": "ස්වයංක්‍රීය ප්‍රතිපත්තිය", + "originIncludeExistingPolicy": "පවතින ප්‍රතිපත්තිය ඇතුළත් කරන්න", + "originManual": "අතින්", + "validationCheck": "වලංගුකරණ පරීක්ෂාව {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ආරක්ෂක සොයාගැනීම තවදුරටත් නොපවතී.", + "approvalRequired": "ස්වයං ප්‍රතිකර්මයට අනුමැතිය අවශ්‍යයි. එය අනුමත කිරීමට ප්‍රතිකර්මය අතින් ආරම්භ කරන්න.", + "findingNotOpen": "සොයාගැනීම තවදුරටත් විවෘත නොවේ.", + "repoNotInScope": "Security Agent සඳහා ගබඩාව තෝරා නොමැත.", + "analysisRequired": "ප්‍රතිකර්මය ආරම්භ කිරීමට පෙර කේත පදනම විශ්ලේෂණය ධාවනය කරන්න.", + "sandboxAnalysisRequired": "ප්‍රතිකර්මය ආරම්භ කිරීමට පෙර කේත පදනම විශ්ලේෂණය ධාවනය කරන්න.", + "staleAnalysis": "විශ්ලේෂණයෙන් පසු සොයාගැනීම වෙනස් විය. ප්‍රතිකර්මය ආරම්භ කිරීමට පෙර විශ්ලේෂණය නැවත ධාවනය කරන්න.", + "notExploitable": "විශ්ලේෂණයෙන් ළඟා විය හැකි අවදානම් මාර්ගයක් හමු නොවීය. ස්වයං ප්‍රතිකර්මය ලබා ගත නොහැක.", + "exploitabilityUnknown": "සූරාකෑමේ හැකියාව විශ්ලේෂණයෙන් තහවුරු කළ නොහැකි විය. එක්-ක්ලික් ප්‍රතිකර්මයකට පෙර අතින් සමාලෝචනය අවශ්‍යයි.", + "manualReviewRequired": "විශ්ලේෂණය අතින් සමාලෝචනය නිර්දේශ කරයි, එබැවින් එක්-ක්ලික් ප්‍රතිකර්මය ලබා ගත නොහැක.", + "monitorRequired": "PR විවෘත කිරීම වෙනුවට නිරීක්ෂණය කිරීමට විශ්ලේෂණය නිර්දේශ කරයි.", + "triageOnly": "Triage පමණක් සම්පූර්ණ වී ඇත. ප්‍රතිකර්මය ආරම්භ කිරීමට පෙර කේත පදනම විශ්ලේෂණය ධාවනය කරන්න.", + "actionNotConcrete": "සංයුක්ත යැපුම් පැච් එකක් හෝ යෝජිත විසඳුමක් නොමැත.", + "remediationActive": "ප්‍රතිකර්ම උත්සාහයක් දැනටමත් සක්‍රීයයි.", + "prAlreadyOpened": "ප්‍රතිකර්ම PR එකක් දැනටමත් විවෘතයි.", + "duplicateAnalysisResult": "මෙම විශ්ලේෂණ ප්‍රතිඵලය දැනටමත් ප්‍රතිකර්ම කාර්යයක් නිපදවා ඇත.", + "retryNotAllowed": "මෙම උත්සාහය සඳහා නැවත උත්සාහ කිරීම ලබා ගත නොහැක.", + "securityAgentDisabled": "මෙම හිමිකරු සඳහා Security Agent අක්‍රීය කර ඇත.", + "autoRemediationDisabled": "ස්වයං ප්‍රතිකර්මය අක්‍රීය කර ඇත. ආරක්ෂක ගේට්ටු සමත් වූ විට අතින් ප්‍රතිකර්මය තවමත් ආරම්භ කළ හැක.", + "includeExistingDisabled": "පවතින සොයාගැනීම් ස්වයංක්‍රීය ප්‍රතිකර්මයෙන් බැහැර කර ඇත.", + "belowThreshold": "සොයාගැනීම ස්වයංක්‍රීය බරපතලකම සීමාවට වඩා අඩුය. ආරක්ෂක ගේට්ටු සමත් වූ විට අතින් ප්‍රතිකර්මය තවමත් ආරම්භ කළ හැක.", + "beforeEnablement": "ස්වයං ප්‍රතිකර්මය සක්‍රීය කිරීමට පෙර විශ්ලේෂණය සම්පූර්ණ විය. ආරක්ෂක ගේට්ටු සමත් වූ විට අතින් ප්‍රතිකර්මය තවමත් ආරම්භ කළ හැක.", + "generic": "මෙම සොයාගැනීම සඳහා ප්‍රතිකර්මය ලබා ගත නොහැක." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index c3ed1a1461..f2b997f69f 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -522,7 +522,9 @@ "submitReview": "Odoslať kontrolu", "partialPostedMessage": "Odoslaných {{displayFreshCount}} komentárov. {{displayStaleCount}} komentárov smeruje na starší commit a zostalo vo vašom fronte.", "pendingComment_few": "čakajúce komentáre", - "pendingComment_many": "čakajúcich komentárov" + "pendingComment_many": "čakajúcich komentárov", + "blockedRequestChanges": "Ak chcete požiadať o zmeny, pridajte zhrnutie alebo aspoň jeden komentár.", + "blockedComment": "Ak chcete odoslať kontrolu komentárom, pridajte zhrnutie alebo aspoň jeden komentár." }, "reconnectNotice": { "title": "Pripojenie GitHub vypršalo", @@ -1394,7 +1396,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Kontrolóra sa nepodarilo aktualizovať", - "configSaveFailed": "Konfiguráciu kontroly sa nepodarilo uložiť" + "configSaveFailed": "Konfiguráciu kontroly sa nepodarilo uložiť", + "status": { + "pending": "Čaká sa", + "queued": "Vo fronte", + "running": "Prebieha", + "completed": "Dokončené", + "failed": "Zlyhalo", + "cancelled": "Zrušené", + "interrupted": "Prerušené" + } }, "securityAgent": { "filter": { @@ -1597,7 +1608,17 @@ "sourceRecord": "Zdrojový záznam", "source": "Zdroj", "sourceId": "ID zdroja", - "viewAdvisory": "Zobraziť odporúčanie na GitHub" + "viewAdvisory": "Zobraziť odporúčanie na GitHub", + "statusSuperseded": "Nahradené", + "statusFixed": "Opravené", + "statusOpen": "Otvorené", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "oprava sa už začala", + "reasonNoBandwidth": "nie je k dispozícii žiadna kapacita", + "reasonTolerableRisk": "riziko je prijateľné", + "reasonInaccurate": "nález je nepresný", + "reasonNotUsed": "zraniteľný kód sa nepoužíva", + "reasonAfterReview": "po preskúmaní" }, "settingsOverview": { "title": "Nastavenia", @@ -1827,6 +1848,111 @@ "syncInProgress": "Synchronizácia zabezpečenia už prebieha. Skúste to znova.", "dismissalInProgress": "Toto odmietnutie už prebieha. Skúste to znova.", "couldNotReadPendingSyncs": "Čakajúce synchronizácie sa nepodarilo prečítať. Skúste to znova." + }, + "analysisState": { + "queued": "Analýza zaradená", + "queuedTitle": "Analýza zaradená", + "queuedDescription": "Čaká sa, kým bude k dispozícii kapacita na analýzu.", + "analyzing": "Analyzuje sa", + "analyzingTitle": "Analyzuje sa", + "analyzingDescription": "Kontroluje sa, či aplikačný kód môže dosiahnuť postihnutú funkciu.", + "failed": "Analýza zlyhala", + "failedTitle": "Analýza zlyhala", + "failedDescription": "Security Agent nedokázal dokončiť analýzu.", + "extractionFailed": "Vyžaduje preskúmanie", + "extractionFailedTitle": "Vyžaduje preskúmanie", + "extractionFailedDescription": "Technickú správu sa nepodarilo previesť na štruktúrovaný výsledok.", + "exploitable": "Zneužívateľné", + "exploitableTitle": "Zneužívateľné", + "exploitableDescription": "Aplikačný kód môže dosiahnuť postihnutú funkciu.", + "notExploitable": "Nedosiahnuteľné", + "notExploitableTitle": "Nedosiahnuteľné", + "notExploitableDescription": "V tomto repozitári sa nenašla žiadna dosiahnuteľná cesta.", + "unknown": "Vyžaduje preskúmanie", + "unknownTitle": "Vyžaduje preskúmanie", + "unknownDescription": "Analýza nedokázala potvrdiť, či je zraniteľná funkcia dosiahnuteľná.", + "safeToDismiss": "Bezpečné zamietnuť", + "safeToDismissTitle": "Bezpečné zamietnuť", + "safeToDismissDescription": "Triedenie určilo, že to možno bezpečne zamietnuť bez analýzy kódovej základne.", + "manualReview": "Vyžaduje preskúmanie", + "manualReviewTitle": "Vyžaduje manuálne preskúmanie", + "manualReviewDescription": "Triedenie označilo tento nález na manuálne preskúmanie.", + "analysisRequired": "Vyžaduje sa analýza", + "analysisRequiredTitle": "Vyžaduje sa analýza kódovej základne", + "analysisRequiredDescription": "Triedenie odporúča analyzovať repozitár pred rozhodnutím o odpovedi.", + "completed": "Analyzované", + "completedTitle": "Analyzované", + "completedDescription": "Analýza sa dokončila bez zaznamenaného konkrétneho výsledku.", + "notAnalyzed": "Neanalyzované", + "notAnalyzedTitle": "Neanalyzované", + "notAnalyzedDescription": "Analýza kódovej základne sa pre tento nález ešte nespustila." + }, + "deadline": { + "fixedBeforeDeadline": "Opravené pred termínom", + "fixed": "Opravené", + "fixedOn": "Opravené {{date}}", + "resolutionRecorded": "Rozhodnutie zaznamenané", + "superseded": "Nahradené", + "dismissed": "Odmietnuté", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Termín nie je nastavený", + "noSlaDeadline": "Nie je priradený termín SLA", + "dueOn": "Splatné {{date}}", + "overdueNow": "Po termíne", + "dueToday": "Splatné dnes", + "dueTomorrow": "Splatné zajtra", + "overdue_one": "{{count}} deň po termíne", + "overdue_few": "{{count}} dni po termíne", + "overdue_many": "{{count}} dní po termíne", + "overdue_other": "{{count}} dní po termíne", + "dueInDays_one": "Splatné o {{count}} deň", + "dueInDays_few": "Splatné o {{count}} dni", + "dueInDays_many": "Splatné o {{count}} dní", + "dueInDays_other": "Splatné o {{count}} dní", + "overdue": "{{count}} dní po termíne", + "dueInDays": "Splatné o {{count}} dní" + }, + "remediationStatus": { + "cancellationRequested": "Vyžiadané zrušenie", + "notStarted": "Nezačaté", + "queued": "Vo fronte", + "starting": "Spúšťa sa", + "inProgress": "Prebieha", + "draftPrOpened": "Otvorený koncept PR", + "prOpened": "PR otvorený", + "blocked": "Zablokované", + "failed": "Zlyhalo", + "noChangesNeeded": "Žiadne zmeny nie sú potrebné", + "cancelled": "Zrušené", + "originAutomaticPolicy": "Automatická politika", + "originIncludeExistingPolicy": "Politika zahrnutia existujúcich", + "originManual": "Manuálne", + "validationCheck": "Validačná kontrola {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Bezpečnostný nález už neexistuje.", + "approvalRequired": "Auto náprava vyžaduje schválenie. Spustite nápravu manuálne, aby ste ju schválili.", + "findingNotOpen": "Nález už nie je otvorený.", + "repoNotInScope": "Repozitár nie je vybraný pre Security Agent.", + "analysisRequired": "Pred spustením nápravy spustite analýzu kódovej základne.", + "sandboxAnalysisRequired": "Pred spustením nápravy spustite analýzu kódovej základne.", + "staleAnalysis": "Nález sa po analýze zmenil. Pred spustením nápravy zopakujte analýzu.", + "notExploitable": "Analýza nenašla žiadnu dosiahnuteľnú zraniteľnú cestu. Auto náprava nie je dostupná.", + "exploitabilityUnknown": "Analýza nedokázala potvrdiť zneužívateľnosť. Pred nápravou jedným kliknutím je potrebné manuálne preskúmanie.", + "manualReviewRequired": "Analýza odporúča manuálne preskúmanie, takže náprava jedným kliknutím nie je dostupná.", + "monitorRequired": "Analýza odporúča monitorovanie namiesto otvorenia PR.", + "triageOnly": "Dokončené je len triedenie. Pred spustením nápravy spustite analýzu kódovej základne.", + "actionNotConcrete": "Nie je dostupná žiadna konkrétna oprava závislosti ani navrhovaná oprava.", + "remediationActive": "Pokus o nápravu už prebieha.", + "prAlreadyOpened": "PR nápravy je už otvorený.", + "duplicateAnalysisResult": "Tento výsledok analýzy už vytvoril prácu nápravy.", + "retryNotAllowed": "Opakované spustenie nie je pre tento pokus dostupné.", + "securityAgentDisabled": "Security Agent je pre tohto vlastníka zakázaný.", + "autoRemediationDisabled": "Auto náprava je zakázaná. Manuálna náprava sa môže stále spustiť, keď prejdú bezpečnostné brány.", + "includeExistingDisabled": "Existujúce nálezy sú vylúčené z automatickej nápravy.", + "belowThreshold": "Nález je pod prahom automatickej závažnosti. Manuálna náprava sa môže stále spustiť, keď prejdú bezpečnostné brány.", + "beforeEnablement": "Analýza sa dokončila pred povolením Auto nápravy. Manuálna náprava sa môže stále spustiť, keď prejdú bezpečnostné brány.", + "generic": "Náprava nie je pre tento nález dostupná." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index 1ce6fb2990..585b835f3b 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -522,7 +522,9 @@ "submitReview": "Pošlji pregled", "partialPostedMessage": "Objavljenih {{displayFreshCount}} komentarjev. {{displayStaleCount}} komentarjev se nanaša na starejši commit in je ostalo v vaši čakalni vrsti.", "pendingComment_two": "čakajoča komentarja", - "pendingComment_few": "čakajoči komentarji" + "pendingComment_few": "čakajoči komentarji", + "blockedRequestChanges": "Dodaj povzetek ali vsaj en komentar, da zahtevaš spremembe.", + "blockedComment": "Dodaj povzetek ali vsaj en komentar, da objaviš pregled s komentarjem." }, "reconnectNotice": { "title": "Povezava GitHub je potekla", @@ -1394,7 +1396,16 @@ }, "eyebrow": "Pregledovalnik kode", "updateFailed": "Pregledovalca ni bilo mogoče posodobiti", - "configSaveFailed": "Konfiguracije pregleda ni bilo mogoče shraniti" + "configSaveFailed": "Konfiguracije pregleda ni bilo mogoče shraniti", + "status": { + "pending": "Na čakanju", + "queued": "V čakalni vrsti", + "running": "V teku", + "completed": "Dokončano", + "failed": "Ni uspelo", + "cancelled": "Preklicano", + "interrupted": "Prekinjeno" + } }, "securityAgent": { "filter": { @@ -1597,7 +1608,17 @@ "sourceRecord": "Izvorni zapis", "source": "Vir", "sourceId": "ID vira", - "viewAdvisory": "Prikaži opozorilo v GitHub" + "viewAdvisory": "Prikaži opozorilo v GitHub", + "statusSuperseded": "Nadomeščeno", + "statusFixed": "Popravljeno", + "statusOpen": "Odprto", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "poprava se je že začela", + "reasonNoBandwidth": "ni razpoložljive zmogljivosti", + "reasonTolerableRisk": "tveganje je sprejemljivo", + "reasonInaccurate": "najdba ni točna", + "reasonNotUsed": "ranljiva koda se ne uporablja", + "reasonAfterReview": "po pregledu" }, "settingsOverview": { "title": "Nastavitve", @@ -1827,6 +1848,111 @@ "syncInProgress": "Varnostna sinhronizacija že poteka. Poskusite znova.", "dismissalInProgress": "Ta zavrnitev že poteka. Poskusite znova.", "couldNotReadPendingSyncs": "Čakajočih sinhronizacij ni bilo mogoče prebrati. Poskusite znova." + }, + "analysisState": { + "queued": "Analiza v čakalni vrsti", + "queuedTitle": "Analiza v čakalni vrsti", + "queuedDescription": "Čakanje, da zmogljivost za analizo postane na voljo.", + "analyzing": "Analiziranje", + "analyzingTitle": "Analiziranje", + "analyzingDescription": "Preverjanje, ali lahko koda aplikacije doseže prizadeto funkcijo.", + "failed": "Analiza ni uspela", + "failedTitle": "Analiza ni uspela", + "failedDescription": "Varnostni agent analize ni mogel dokončati.", + "extractionFailed": "Potrebuje pregled", + "extractionFailedTitle": "Potrebuje pregled", + "extractionFailedDescription": "Tehničnega poročila ni bilo mogoče pretvoriti v strukturiran rezultat.", + "exploitable": "Izkoristljivo", + "exploitableTitle": "Izkoristljivo", + "exploitableDescription": "Koda aplikacije lahko doseže prizadeto funkcijo.", + "notExploitable": "Nedosegljivo", + "notExploitableTitle": "Nedosegljivo", + "notExploitableDescription": "V tem skladišču ni bila najdena nobena dosegljiva pot.", + "unknown": "Potrebuje pregled", + "unknownTitle": "Potrebuje pregled", + "unknownDescription": "Analiza ni mogla potrditi, ali je ranljiva funkcija dosegljiva.", + "safeToDismiss": "Varno za opustitev", + "safeToDismissTitle": "Varno za opustitev", + "safeToDismissDescription": "Razvrščanje je ugotovilo, da je to mogoče varno opustiti brez analize kode.", + "manualReview": "Potrebuje pregled", + "manualReviewTitle": "Potrebuje ročni pregled", + "manualReviewDescription": "Razvrščanje je to najdbo označilo za ročni pregled.", + "analysisRequired": "Analiza je potrebna", + "analysisRequiredTitle": "Potrebna je analiza kode", + "analysisRequiredDescription": "Razvrščanje priporoča analizo skladišča, preden se odločite za odziv.", + "completed": "Analizirano", + "completedTitle": "Analizirano", + "completedDescription": "Analiza je bila dokončana brez zabeleženega posebnega izida.", + "notAnalyzed": "Ni analizirano", + "notAnalyzedTitle": "Ni analizirano", + "notAnalyzedDescription": "Analiza kode za to najdbo še ni bila izvedena." + }, + "deadline": { + "fixedBeforeDeadline": "Popravljeno pred rokom", + "fixed": "Popravljeno", + "fixedOn": "Popravljeno {{date}}", + "resolutionRecorded": "Razrešitev zabeležena", + "superseded": "Nadomeščeno", + "dismissed": "Zavrženo", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Rok ni določen", + "noSlaDeadline": "Ni dodeljenega roka SLA", + "dueOn": "Zapade {{date}}", + "overdueNow": "Zapadlo", + "overdue_one": "{{count}} dan po roku", + "overdue_two": "{{count}} dneva po roku", + "overdue_few": "{{count}} dni po roku", + "overdue_other": "{{count}} dni po roku", + "dueToday": "Rok je danes", + "dueTomorrow": "Rok je jutri", + "dueInDays_one": "Rok čez {{count}} dan", + "dueInDays_two": "Rok čez {{count}} dneva", + "dueInDays_few": "Rok čez {{count}} dni", + "dueInDays_other": "Rok čez {{count}} dni", + "overdue": "{{count}} dni po roku", + "dueInDays": "Rok čez {{count}} dni" + }, + "remediationStatus": { + "cancellationRequested": "Preklic je bil zahtevan", + "notStarted": "Ni začeto", + "queued": "V čakalni vrsti", + "starting": "Zaganjanje", + "inProgress": "V teku", + "draftPrOpened": "Odprt osnutek PR", + "prOpened": "PR odprt", + "blocked": "Blokirano", + "failed": "Ni uspelo", + "noChangesNeeded": "Spremembe niso potrebne", + "cancelled": "Preklicano", + "originAutomaticPolicy": "Samodejna politika", + "originIncludeExistingPolicy": "Politika vključevanja obstoječih", + "originManual": "Ročno", + "validationCheck": "Preverjanje veljavnosti {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Varnostna najdba ne obstaja več.", + "approvalRequired": "Samodejno odpravljanje zahteva odobritev. Začnite sanacijo ročno, da jo odobrite.", + "findingNotOpen": "Najdba ni več odprta.", + "repoNotInScope": "Skladišče ni izbrano za varnostnega agenta.", + "analysisRequired": "Pred začetkom sanacije zaženite analizo kode.", + "sandboxAnalysisRequired": "Pred začetkom sanacije zaženite analizo kode.", + "staleAnalysis": "Najdba se je po analizi spremenila. Pred začetkom sanacije znova izvedite analizo.", + "notExploitable": "Analiza ni našla dosegljive ranljive poti. Samodejno odpravljanje ni na voljo.", + "exploitabilityUnknown": "Analiza ni mogla potrditi izkoristljivosti. Pred sanacijo z enim klikom je potreben ročni pregled.", + "manualReviewRequired": "Analiza priporoča ročni pregled, zato sanacija z enim klikom ni na voljo.", + "monitorRequired": "Analiza priporoča spremljanje namesto odpiranja PR.", + "triageOnly": "Dokončano je le razvrščanje. Pred začetkom sanacije zaženite analizo kode.", + "actionNotConcrete": "Na voljo ni nobenega konkretnega popravka odvisnosti ali predlagane rešitve.", + "remediationActive": "Poskus sanacije je že aktiven.", + "prAlreadyOpened": "PR za sanacijo je že odprt.", + "duplicateAnalysisResult": "Ta rezultat analize je že ustvaril delo za sanacijo.", + "retryNotAllowed": "Ponovni poskus za ta poskus ni na voljo.", + "securityAgentDisabled": "Varnostni agent je za tega lastnika onemogočen.", + "autoRemediationDisabled": "Samodejno odpravljanje je onemogočeno. Ročna sanacija se lahko še vedno začne, ko so varnostni pogoji izpolnjeni.", + "includeExistingDisabled": "Obstoječe najdbe so izključene iz samodejnega odpravljanja.", + "belowThreshold": "Najdba je pod pragom samodejne resnosti. Ročna sanacija se lahko še vedno začne, ko so varnostni pogoji izpolnjeni.", + "beforeEnablement": "Analiza je bila dokončana, preden je bilo omogočeno samodejno odpravljanje. Ročna sanacija se lahko še vedno začne, ko so varnostni pogoji izpolnjeni.", + "generic": "Sanacija za to najdbo ni na voljo." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index 9b92b7d2b0..916e503f0a 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -512,7 +512,9 @@ "pendingComment_other": "faallooyin sugaya", "submitCountOfTotal": "Dir {{displayFreshCount}} ee {{displayTotalCount}} faallooyinka", "submitReview": "Dir dib-u-eegista", - "partialPostedMessage": "Waxaa la diray {{displayFreshCount}} faallo(yin). {{displayStaleCount}} faallo(yin) ayaa tilmaamaya commit duug ah oo ku sii hadhay safkaaga." + "partialPostedMessage": "Waxaa la diray {{displayFreshCount}} faallo(yin). {{displayStaleCount}} faallo(yin) ayaa tilmaamaya commit duug ah oo ku sii hadhay safkaaga.", + "blockedRequestChanges": "Ku dar soo koobid ama ugu yaraan hal faallo si aad u dalbato isbeddelo.", + "blockedComment": "Ku dar soo koobid ama ugu yaraan hal faallo si aad u dirto dib-u-eegis faallo ah." }, "reconnectNotice": { "title": "Xiriirka GitHub wuu dhacay", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Dib-u-eegaha lama cusboonaysiin karin", - "configSaveFailed": "Dejinta dib-u-eegista lama kaydin karin" + "configSaveFailed": "Dejinta dib-u-eegista lama kaydin karin", + "status": { + "pending": "Sugaya", + "queued": "Safan", + "running": "Socodaya", + "completed": "Waa la dhammeeyay", + "failed": "Way fashilantay", + "cancelled": "Waa la joojiyay", + "interrupted": "Waa la hakiyay" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Rikoodhka asalka ah", "source": "Asalka", "sourceId": "Asalka ID", - "viewAdvisory": "Ku daawo talooyinka GitHub" + "viewAdvisory": "Ku daawo talooyinka GitHub", + "statusSuperseded": "Waa la bedelay", + "statusFixed": "Waa la hagaajiyay", + "statusOpen": "Furan", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "hagaajin ayaa mar hore bilaabatay", + "reasonNoBandwidth": "ma jiro awood la heli karo", + "reasonTolerableRisk": "khatartu waa la dulqaadan karaa", + "reasonInaccurate": "natiijadu sax ma aha", + "reasonNotUsed": "koodhka nugul lama isticmaalo", + "reasonAfterReview": "dib-u-eegis ka dib" }, "settingsOverview": { "title": "Dejinta", @@ -1805,6 +1826,107 @@ "syncInProgress": "Isku-xirka ammaanka horeyba wuu socdaa. Fadlan mar kale isku day.", "dismissalInProgress": "Isku-xirkaan horeyba wuu socdaa. Fadlan mar kale isku day.", "couldNotReadPendingSyncs": "Isku-xirka sugaya lama akhriyi karin. Mar kale isku day." + }, + "analysisState": { + "queued": "Falanqaynta ayaa safan", + "queuedTitle": "Falanqaynta ayaa safan", + "queuedDescription": "Waxaa la sugaa in awoodda falanqayntu ay diyaar noqoto.", + "analyzing": "Waa la falanqeynayaa", + "analyzingTitle": "Waa la falanqeynayaa", + "analyzingDescription": "Waxaa la hubinayaa in koodhka app-ku uu gaari karo sifada saamaysay.", + "failed": "Falanqayntu way fashilantay", + "failedTitle": "Falanqayntu way fashilantay", + "failedDescription": "Security Agent wuu dhamayn kari waayay falanqaynta.", + "extractionFailed": "U baahan dib-u-eegis", + "extractionFailedTitle": "U baahan dib-u-eegis", + "extractionFailedDescription": "Warbixinta farsamada lama beddeli karin natiijo habaysan.", + "exploitable": "Laga faa'iidaysan karo", + "exploitableTitle": "Laga faa'iidaysan karo", + "exploitableDescription": "Koodhka app-ku wuxuu gaari karaa sifada saamaysay.", + "notExploitable": "Lama gaari karo", + "notExploitableTitle": "Lama gaari karo", + "notExploitableDescription": "Kaydkan lama helin waddo la gaari karo.", + "unknown": "U baahan dib-u-eegis", + "unknownTitle": "U baahan dib-u-eegis", + "unknownDescription": "Falanqayntu ma xaqiijin karto in sifada nugulu la gaari karo.", + "safeToDismiss": "Badbaado in la tirtiro", + "safeToDismissTitle": "Badbaado in la tirtiro", + "safeToDismissDescription": "Kala-saaristu waxay go'aamisay in si badbaado leh loo tirtiri karo iyada oo aan falanqayn koodh.", + "manualReview": "U baahan dib-u-eegis", + "manualReviewTitle": "U baahan dib-u-eegis gacmeed", + "manualReviewDescription": "Kala-saaristu waxay natiijadan calaamadisay dib-u-eegis gacmeed.", + "analysisRequired": "Falanqayn ayaa loo baahan yahay", + "analysisRequiredTitle": "Falanqaynta koodhka ayaa loo baahan yahay", + "analysisRequiredDescription": "Kala-saaristu waxay kugula talinaysaa inaad falanqayso kaydka ka hor intaadan go'aamin jawaabta.", + "completed": "Waa la falanqeeyay", + "completedTitle": "Waa la falanqeeyay", + "completedDescription": "Falanqayntu way dhammaatay iyada oo aan la diiwaangelin natiijo gaar ah.", + "notAnalyzed": "Lama falanqeyn", + "notAnalyzedTitle": "Lama falanqeyn", + "notAnalyzedDescription": "Falanqaynta koodhka weli looma socodsiiyay natiijadan." + }, + "deadline": { + "fixedBeforeDeadline": "Waa la hagaajiyay ka hor waqtiga kama-dambaysta ah", + "fixed": "Waa la hagaajiyay", + "fixedOn": "Waa la hagaajiyay {{date}}", + "resolutionRecorded": "Xallintu waa la diiwaangeliyay", + "superseded": "Waa la bedelay", + "dismissed": "Waa la tirtiray", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Waqtiga kama-dambaysta ah lama dejin", + "noSlaDeadline": "Ma jiro waqti kama-dambays ah oo SLA ah", + "dueOn": "Waa in la sameeyo {{date}}", + "overdueNow": "Waa la dhaafay", + "overdue_one": "{{count}} maalin oo la dhaafay", + "overdue_other": "{{count}} maalmood oo la dhaafay", + "dueToday": "Waqtigu waa maanta", + "dueTomorrow": "Waqtigu waa berri", + "dueInDays_one": "Waa in la sameeyo {{count}} maalin gudahood", + "dueInDays_other": "Waa in la sameeyo {{count}} maalmood gudahood", + "overdue": "{{count}} maalmood oo la dhaafay", + "dueInDays": "Waa in la sameeyo {{count}} maalmood gudahood" + }, + "remediationStatus": { + "cancellationRequested": "Laga codsaday in la joojiyo", + "notStarted": "Ma bilaaban", + "queued": "Safan", + "starting": "Waa bilaabayaa", + "inProgress": "Way socotaa", + "draftPrOpened": "PR-ga qabyada ah waa la furay", + "prOpened": "PR waa la furay", + "blocked": "Waa la xannibay", + "failed": "Way fashilantay", + "noChangesNeeded": "Ma jiraan isbeddel loo baahan yahay", + "cancelled": "Waa la joojiyay", + "originAutomaticPolicy": "Siyaasad otomaatig ah", + "originIncludeExistingPolicy": "Ku dar siyaasadda jirta", + "originManual": "Gacmeed", + "validationCheck": "Hubinta ansaxnimada {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Natiijada ammaanku mar dambe ma jirto.", + "approvalRequired": "Dayactirka otomaatigga ah wuxuu u baahan yahay oggolaansho. Bilow hagaajinta gacanta si aad u oggolaato.", + "findingNotOpen": "Natiijadu mar dambe furan ma aha.", + "repoNotInScope": "Kaydka looma dooran Security Agent.", + "analysisRequired": "Socodsii falanqaynta koodhka ka hor intaadan bilow hagaajinta.", + "sandboxAnalysisRequired": "Socodsii falanqaynta koodhka ka hor intaadan bilow hagaajinta.", + "staleAnalysis": "Natiijadu way isbeddeshay falanqayntii ka dib. Dib u socodsii falanqaynta ka hor intaadan bilow hagaajinta.", + "notExploitable": "Falanqayntu ma hesho waddo nugul oo la gaari karo. Dayactirka otomaatigga ah lama heli karo.", + "exploitabilityUnknown": "Falanqayntu ma xaqiijin karto in laga faa'iidaysan karo. Dib-u-eegis gacmeed ayaa loo baahan yahay ka hor dayactirka hal-gujiin ah.", + "manualReviewRequired": "Falanqayntu waxay kugula talinaysaa dib-u-eegis gacmeed, sidaas darteed dayactirka hal-gujiin ah lama heli karo.", + "monitorRequired": "Falanqayntu waxay kugula talinaysaa kormeer halkii laga furi lahaa PR.", + "triageOnly": "Kala-saarista kaliya ayaa dhammaatay. Socodsii falanqaynta koodhka ka hor intaadan bilow hagaajinta.", + "actionNotConcrete": "Ma jiro hagaajin xirmo oo qaas ah ama xal la soo jeediyay.", + "remediationActive": "Isku-day hagaajin ah ayaa horeyba u shaqeeya.", + "prAlreadyOpened": "PR-ga hagaajinta horeyba wuu furan yahay.", + "duplicateAnalysisResult": "Natiijadan falanqaynta horeyba waxay soo saartay shaqo hagaajin ah.", + "retryNotAllowed": "Mar kale isku dayidda looma heli karo isku-daygan.", + "securityAgentDisabled": "Security Agent waa loo damiyay milkiilahan.", + "autoRemediationDisabled": "Dayactirka otomaatigga ah waa la damiyay. Dayactirka gacanta wali wuxuu bilaabmi karaa markay marinnada badbaadada gudbaan.", + "includeExistingDisabled": "Natiijooyinka jira waa laga saaray dayactirka otomaatigga ah.", + "belowThreshold": "Natiijadu waxay ka hooseysaa heerka otomaatigga ah. Dayactirka gacanta wali wuxuu bilaabmi karaa markay marinnada badbaadada gudbaan.", + "beforeEnablement": "Falanqaynta waxaa la dhammeeyay ka hor inta aan la shidin Dayactirka otomaatigga ah. Dayactirka gacanta wali wuxuu bilaabmi karaa markay marinnada badbaadada gudbaan.", + "generic": "Dayactirka looma heli karo natiijadan." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 1d64a9c22f..614b647c7b 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -512,7 +512,9 @@ "pendingComment_other": "komente në pritje", "submitCountOfTotal": "Dërgo {{displayFreshCount}} nga {{displayTotalCount}} komente", "submitReview": "Dërgo rishikimin", - "partialPostedMessage": "U postuan {{displayFreshCount}} koment(e). {{displayStaleCount}} koment(e) tregojnë te një commit më i vjetër dhe mbetën në radhën tënde." + "partialPostedMessage": "U postuan {{displayFreshCount}} koment(e). {{displayStaleCount}} koment(e) tregojnë te një commit më i vjetër dhe mbetën në radhën tënde.", + "blockedRequestChanges": "Shto një përmbledhje ose të paktën një koment për të kërkuar ndryshime.", + "blockedComment": "Shto një përmbledhje ose të paktën një koment për të postuar një rishikim me koment." }, "reconnectNotice": { "title": "Lidhja me GitHub skadoi", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Shqyrtuesi i Kodit", "updateFailed": "Nuk u arrit të përditësohej rishikuesi", - "configSaveFailed": "Nuk u arrit të ruhej konfigurimi i rishikimit" + "configSaveFailed": "Nuk u arrit të ruhej konfigurimi i rishikimit", + "status": { + "pending": "Në pritje", + "queued": "Në radhë", + "running": "Në ekzekutim", + "completed": "I përfunduar", + "failed": "Dështoi", + "cancelled": "I anuluar", + "interrupted": "I ndërprerë" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Rekordi burim", "source": "Burimi", "sourceId": "ID e burimit", - "viewAdvisory": "Shiko njoftimin në GitHub" + "viewAdvisory": "Shiko njoftimin në GitHub", + "statusSuperseded": "E zëvendësuar", + "statusFixed": "E rregulluar", + "statusOpen": "E hapur", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "një zgjidhje ka filluar tashmë", + "reasonNoBandwidth": "nuk ka kapacitet të disponueshëm", + "reasonTolerableRisk": "rreziku është i pranueshëm", + "reasonInaccurate": "gjetja është e pasaktë", + "reasonNotUsed": "kodi i prekshëm nuk përdoret", + "reasonAfterReview": "pas shqyrtimit" }, "settingsOverview": { "title": "Cilësimet", @@ -1805,6 +1826,107 @@ "syncInProgress": "Një sinkronizim sigurie është tashmë në proces. Provo përsëri.", "dismissalInProgress": "Kjo hedhje poshtë është tashmë në proces. Provo përsëri.", "couldNotReadPendingSyncs": "Nuk u arrit të lexoheshin sinkronizimet në pritje. Provo përsëri." + }, + "analysisState": { + "queued": "Analiza në radhë", + "queuedTitle": "Analiza në radhë", + "queuedDescription": "Duke pritur që kapaciteti i analizës të bëhet i disponueshëm.", + "analyzing": "Duke analizuar", + "analyzingTitle": "Duke analizuar", + "analyzingDescription": "Po kontrollohet nëse kodi i aplikacionit mund ta arrijë funksionin e prekur.", + "failed": "Analiza dështoi", + "failedTitle": "Analiza dështoi", + "failedDescription": "Security Agent nuk arriti ta përfundonte analizën.", + "extractionFailed": "Kërkon shqyrtim", + "extractionFailedTitle": "Kërkon shqyrtim", + "extractionFailedDescription": "Raporti teknik nuk u shndërrua në një rezultat të strukturuar.", + "exploitable": "E shfrytëzueshme", + "exploitableTitle": "E shfrytëzueshme", + "exploitableDescription": "Kodi i aplikacionit mund ta arrijë funksionin e prekur.", + "notExploitable": "E paarritshme", + "notExploitableTitle": "E paarritshme", + "notExploitableDescription": "Nuk u gjet asnjë rrugë e arritshme në këtë depo.", + "unknown": "Kërkon shqyrtim", + "unknownTitle": "Kërkon shqyrtim", + "unknownDescription": "Analiza nuk mund të konfirmonte nëse funksioni i prekshëm është i arritshëm.", + "safeToDismiss": "E sigurt për t'u hedhur poshtë", + "safeToDismissTitle": "E sigurt për t'u hedhur poshtë", + "safeToDismissDescription": "Triazhi përcaktoi se kjo mund të hidhet poshtë në mënyrë të sigurt pa analizë të bazës së kodit.", + "manualReview": "Kërkon shqyrtim", + "manualReviewTitle": "Kërkon shqyrtim manual", + "manualReviewDescription": "Triazhi e shënoi këtë gjetje për shqyrtim manual.", + "analysisRequired": "Kërkohet analizë", + "analysisRequiredTitle": "Kërkohet analizë e bazës së kodit", + "analysisRequiredDescription": "Triazhi rekomandon analizimin e depove përpara se të vendosësh për një përgjigje.", + "completed": "I analizuar", + "completedTitle": "I analizuar", + "completedDescription": "Analiza përfundoi pa ndonjë rezultat specifik të regjistruar.", + "notAnalyzed": "I paanalizuar", + "notAnalyzedTitle": "I paanalizuar", + "notAnalyzedDescription": "Analiza e bazës së kodit ende nuk është ekzekutuar për këtë gjetje." + }, + "deadline": { + "fixedBeforeDeadline": "E rregulluar para afatit", + "fixed": "E rregulluar", + "fixedOn": "E rregulluar më {{date}}", + "resolutionRecorded": "Zgjidhja u regjistrua", + "superseded": "E zëvendësuar", + "dismissed": "E hedhur poshtë", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Afati i pacaktuar", + "noSlaDeadline": "Asnjë afat SLA i caktuar", + "dueOn": "Afati më {{date}}", + "overdueNow": "E vonuar", + "overdue_one": "{{count}} ditë me vonesë", + "overdue_other": "{{count}} ditë me vonesë", + "dueToday": "Afati sot", + "dueTomorrow": "Afati nesër", + "dueInDays_one": "Afati brenda {{count}} dite", + "dueInDays_other": "Afati brenda {{count}} ditësh", + "overdue": "{{count}} ditë me vonesë", + "dueInDays": "Afati brenda {{count}} ditësh" + }, + "remediationStatus": { + "cancellationRequested": "Kërkuar anulimi", + "notStarted": "Nuk ka filluar", + "queued": "Në radhë", + "starting": "Duke filluar", + "inProgress": "Në vazhdim", + "draftPrOpened": "U hap drafti i PR", + "prOpened": "U hap PR", + "blocked": "I bllokuar", + "failed": "Dështoi", + "noChangesNeeded": "Asnjë ndryshim i nevojshëm", + "cancelled": "I anuluar", + "originAutomaticPolicy": "Politikë automatike", + "originIncludeExistingPolicy": "Politika e përfshirjes së ekzistueseve", + "originManual": "Manuale", + "validationCheck": "Kontroll vërtetimi {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Gjetja e sigurisë nuk ekziston më.", + "approvalRequired": "Korrigjimi automatik kërkon miratim. Filloni zgjidhjen manualisht për ta miratuar.", + "findingNotOpen": "Gjetja nuk është më e hapur.", + "repoNotInScope": "Depoja nuk është zgjedhur për Security Agent.", + "analysisRequired": "Kryeni analizën e bazës së kodit përpara se të filloni zgjidhjen.", + "sandboxAnalysisRequired": "Kryeni analizën e bazës së kodit përpara se të filloni zgjidhjen.", + "staleAnalysis": "Gjetja ndryshoi pas analizës. Rikryeni analizën përpara se të filloni zgjidhjen.", + "notExploitable": "Analiza nuk gjeti asnjë rrugë të prekshme të arritshme. Korrigjimi automatik nuk është i disponueshëm.", + "exploitabilityUnknown": "Analiza nuk mund të konfirmonte shfrytëzueshmërinë. Kërkohet shqyrtim manual përpara zgjidhjes me një klik.", + "manualReviewRequired": "Analiza rekomandon shqyrtim manual, prandaj zgjidhja me një klik nuk është e disponueshme.", + "monitorRequired": "Analiza rekomandon monitorim në vend të hapjes së një PR.", + "triageOnly": "U përfundua vetëm triazhi. Kryeni analizën e bazës së kodit përpara se të filloni zgjidhjen.", + "actionNotConcrete": "Nuk ka asnjë arnim depoje konkret ose zgjidhje të sugjeruar të disponueshme.", + "remediationActive": "Një përpjekje zgjidhjeje është tashmë aktive.", + "prAlreadyOpened": "Një PR zgjidhjeje është tashmë i hapur.", + "duplicateAnalysisResult": "Ky rezultat analize tashmë prodhoi punë zgjidhjeje.", + "retryNotAllowed": "Riprovimi nuk është i disponueshëm për këtë përpjekje.", + "securityAgentDisabled": "Security Agent është i çaktivizuar për këtë pronar.", + "autoRemediationDisabled": "Korrigjimi automatik është i çaktivizuar. Zgjidhja manuale mund të fillojë ende kur portat e sigurisë të kalohen.", + "includeExistingDisabled": "Gjetjet ekzistuese janë të përjashtuara nga zgjidhja automatike.", + "belowThreshold": "Gjetja është nën pragun automatik të ashpërsisë. Zgjidhja manuale mund të fillojë ende kur portat e sigurisë të kalohen.", + "beforeEnablement": "Analiza u përfundua përpara se të aktivizohej korrigjimi automatik. Zgjidhja manuale mund të fillojë ende kur portat e sigurisë të kalohen.", + "generic": "Zgjidhja nuk është e disponueshme për këtë gjetje." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index 021480a02e..c68cefed04 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -517,7 +517,9 @@ "submitCountOfTotal": "Pošalji {{displayFreshCount}} od {{displayTotalCount}} komentara", "submitReview": "Pošalji pregled", "partialPostedMessage": "Poslato {{displayFreshCount}} komentar(a). {{displayStaleCount}} komentar(a) se odnose na stariji commit i ostala su u vašem redu.", - "pendingComment_few": "čekajuća komentara" + "pendingComment_few": "čekajuća komentara", + "blockedRequestChanges": "Dodaj sažetak ili bar jedan komentar da zatražiš izmene.", + "blockedComment": "Dodaj sažetak ili bar jedan komentar da objaviš pregled sa komentarom." }, "reconnectNotice": { "title": "GitHub veza je istekla", @@ -1385,7 +1387,16 @@ }, "eyebrow": "Pregledač koda", "updateFailed": "Nije moguće ažurirati pregledača", - "configSaveFailed": "Nije moguće sačuvati konfiguraciju pregleda" + "configSaveFailed": "Nije moguće sačuvati konfiguraciju pregleda", + "status": { + "pending": "Na čekanju", + "queued": "U redu", + "running": "U toku", + "completed": "Završeno", + "failed": "Nije uspelo", + "cancelled": "Otkazano", + "interrupted": "Prekinuto" + } }, "securityAgent": { "filter": { @@ -1587,7 +1598,17 @@ "sourceRecord": "Izvorni zapis", "source": "Izvor", "sourceId": "ID izvora", - "viewAdvisory": "Pogledaj savet na GitHub-u" + "viewAdvisory": "Pogledaj savet na GitHub-u", + "statusSuperseded": "Zamenjeno", + "statusFixed": "Ispravljeno", + "statusOpen": "Otvoreno", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ispravka je već započeta", + "reasonNoBandwidth": "nema dostupnog kapaciteta", + "reasonTolerableRisk": "rizik je prihvatljiv", + "reasonInaccurate": "nalaz nije tačan", + "reasonNotUsed": "ranjivi kod se ne koristi", + "reasonAfterReview": "nakon pregleda" }, "settingsOverview": { "title": "Podešavanja", @@ -1816,6 +1837,109 @@ "syncInProgress": "Sinhronizacija sigurnosti je već u toku. Pokušajte ponovo.", "dismissalInProgress": "Ovo odbacivanje je već u toku. Pokušajte ponovo.", "couldNotReadPendingSyncs": "Nije moguće pročitati sinhronizacije na čekanju. Pokušajte ponovo." + }, + "analysisState": { + "queued": "Analiza u redu", + "queuedTitle": "Analiza u redu", + "queuedDescription": "Čeka se da kapacitet za analizu postane dostupan.", + "analyzing": "Analiziranje", + "analyzingTitle": "Analiziranje", + "analyzingDescription": "Proverava se da li aplikacioni kod može da dosegne pogođenu funkciju.", + "failed": "Analiza nije uspela", + "failedTitle": "Analiza nije uspela", + "failedDescription": "Security Agent nije mogao da dovrši analizu.", + "extractionFailed": "Zahteva pregled", + "extractionFailedTitle": "Zahteva pregled", + "extractionFailedDescription": "Tehnički izveštaj se nije mogao pretvoriti u strukturirani rezultat.", + "exploitable": "Iskoristivo", + "exploitableTitle": "Iskoristivo", + "exploitableDescription": "Aplikacioni kod može da dosegne pogođenu funkciju.", + "notExploitable": "Nedosežno", + "notExploitableTitle": "Nedosežno", + "notExploitableDescription": "U ovom repozitorijumu nije pronađen nijedan dosežljiv put.", + "unknown": "Zahteva pregled", + "unknownTitle": "Zahteva pregled", + "unknownDescription": "Analiza nije mogla da potvrdi da li je ranjiva funkcija dosežljiva.", + "safeToDismiss": "Bezbedno za odbacivanje", + "safeToDismissTitle": "Bezbedno za odbacivanje", + "safeToDismissDescription": "Triaža je utvrdila da se ovo može bezbedno odbaciti bez analize koda.", + "manualReview": "Zahteva pregled", + "manualReviewTitle": "Zahteva ručni pregled", + "manualReviewDescription": "Triaža je ovaj nalaz označila za ručni pregled.", + "analysisRequired": "Potrebna je analiza", + "analysisRequiredTitle": "Potrebna je analiza koda", + "analysisRequiredDescription": "Triaža preporučuje analiziranje repozitorijuma pre odlučivanja o odgovoru.", + "completed": "Analizirano", + "completedTitle": "Analizirano", + "completedDescription": "Analiza je završena bez zabeleženog posebnog ishoda.", + "notAnalyzed": "Nije analizirano", + "notAnalyzedTitle": "Nije analizirano", + "notAnalyzedDescription": "Analiza koda još nije pokrenuta za ovaj nalaz." + }, + "deadline": { + "fixedBeforeDeadline": "Ispravljeno pre roka", + "fixed": "Ispravljeno", + "fixedOn": "Ispravljeno {{date}}", + "resolutionRecorded": "Rešenje zabeleženo", + "superseded": "Zamenjeno", + "dismissed": "Odbijeno", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Rok nije postavljen", + "noSlaDeadline": "Nije dodeljen SLA rok", + "dueOn": "Dospelo {{date}}", + "overdueNow": "Preko roka", + "overdue_one": "{{count}} dan preko roka", + "overdue_few": "{{count}} dana preko roka", + "overdue_other": "{{count}} dana preko roka", + "dueToday": "Dospelo danas", + "dueTomorrow": "Dospelo sutra", + "dueInDays_one": "Dospelo za {{count}} dan", + "dueInDays_few": "Dospelo za {{count}} dana", + "dueInDays_other": "Dospelo za {{count}} dana", + "overdue": "{{count}} dana preko roka", + "dueInDays": "Dospelo za {{count}} dana" + }, + "remediationStatus": { + "cancellationRequested": "Otkazivanje je zatraženo", + "notStarted": "Nije započeto", + "queued": "U redu", + "starting": "Započinje", + "inProgress": "U toku", + "draftPrOpened": "Otvoren nacrt PR-a", + "prOpened": "PR je otvoren", + "blocked": "Blokirano", + "failed": "Nije uspelo", + "noChangesNeeded": "Promene nisu potrebne", + "cancelled": "Otkazano", + "originAutomaticPolicy": "Automatska politika", + "originIncludeExistingPolicy": "Politika uključivanja postojećih", + "originManual": "Ručno", + "validationCheck": "Provera validacije {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Bezbednosni nalaz više ne postoji.", + "approvalRequired": "Auto-sanacija zahteva odobrenje. Započni otklanjanje ručno da bi je odobrio.", + "findingNotOpen": "Nalaz više nije otvoren.", + "repoNotInScope": "Repozitorijum nije izabran za Security Agent.", + "analysisRequired": "Pokreni analizu koda pre započinjanja otklanjanja.", + "sandboxAnalysisRequired": "Pokreni analizu koda pre započinjanja otklanjanja.", + "staleAnalysis": "Nalaz se promenio nakon analize. Ponovo pokreni analizu pre započinjanja otklanjanja.", + "notExploitable": "Analiza nije pronašla dosežljiv ranjiv put. Auto-sanacija nije dostupna.", + "exploitabilityUnknown": "Analiza nije mogla da potvrdi iskoristivost. Pre otklanjanja jednim klikom potreban je ručni pregled.", + "manualReviewRequired": "Analiza preporučuje ručni pregled, pa otklanjanje jednim klikom nije dostupno.", + "monitorRequired": "Analiza preporučuje praćenje umesto otvaranja PR-a.", + "triageOnly": "Završena je samo trijaža. Pokreni analizu koda pre započinjanja otklanjanja.", + "actionNotConcrete": "Nema dostupne konkretne zakrpe zavisnosti ili predložene ispravke.", + "remediationActive": "Pokušaj otklanjanja je već aktivan.", + "prAlreadyOpened": "PR za otklanjanje je već otvoren.", + "duplicateAnalysisResult": "Ovaj rezultat analize već je proizveo rad na otklanjanju.", + "retryNotAllowed": "Ponovni pokušaj nije dostupan za ovaj pokušaj.", + "securityAgentDisabled": "Security Agent je onemogućen za ovog vlasnika.", + "autoRemediationDisabled": "Auto-sanacija je onemogućena. Ručno otklanjanje i dalje može da počne kada prođu sigurnosne provere.", + "includeExistingDisabled": "Postojeći nalazi su isključeni iz automatskog otklanjanja.", + "belowThreshold": "Nalaz je ispod automatskog praga ozbiljnosti. Ručno otklanjanje i dalje može da počne kada prođu sigurnosne provere.", + "beforeEnablement": "Analiza je završena pre nego što je auto-sanacija omogućena. Ručno otklanjanje i dalje može da počne kada prođu sigurnosne provere.", + "generic": "Otklanjanje nije dostupno za ovaj nalaz." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index 988992391d..c914d5ff9e 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -512,7 +512,9 @@ "pendingComment_other": "väntande kommentarer", "submitCountOfTotal": "Skicka {{displayFreshCount}} av {{displayTotalCount}} kommentarer", "submitReview": "Skicka granskning", - "partialPostedMessage": "Skickade {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) pekar på en äldre commit och blev kvar i kön." + "partialPostedMessage": "Skickade {{displayFreshCount}} kommentar(er). {{displayStaleCount}} kommentar(er) pekar på en äldre commit och blev kvar i kön.", + "blockedRequestChanges": "Lägg till en sammanfattning eller minst en kommentar för att begära ändringar.", + "blockedComment": "Lägg till en sammanfattning eller minst en kommentar för att skicka en granskning med kommentar." }, "reconnectNotice": { "title": "GitHub-anslutningen har upphört att gälla", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Kodgranskare", "updateFailed": "Det gick inte att uppdatera granskaren", - "configSaveFailed": "Det gick inte att spara granskningskonfigurationen" + "configSaveFailed": "Det gick inte att spara granskningskonfigurationen", + "status": { + "pending": "Väntande", + "queued": "Köad", + "running": "Körs", + "completed": "Slutförd", + "failed": "Misslyckades", + "cancelled": "Avbruten", + "interrupted": "Avbruten" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Källpost", "source": "Källa", "sourceId": "Käll-ID", - "viewAdvisory": "Visa rekommendation på GitHub" + "viewAdvisory": "Visa rekommendation på GitHub", + "statusSuperseded": "Ersatt", + "statusFixed": "Åtgärdad", + "statusOpen": "Öppen", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "en fix har redan startats", + "reasonNoBandwidth": "ingen kapacitet finns tillgänglig", + "reasonTolerableRisk": "risken är acceptabel", + "reasonInaccurate": "findingen är felaktig", + "reasonNotUsed": "sårbar kod används inte", + "reasonAfterReview": "efter granskning" }, "settingsOverview": { "title": "Inställningar", @@ -1805,6 +1826,107 @@ "syncInProgress": "En säkerhetssynkronisering pågår redan. Försök igen.", "dismissalInProgress": "Den här avskrivningen pågår redan. Försök igen.", "couldNotReadPendingSyncs": "Kunde inte läsa väntande synkroniseringar. Försök igen." + }, + "analysisState": { + "queued": "Analys köad", + "queuedTitle": "Analys köad", + "queuedDescription": "Väntar på att analyskapacitet ska bli tillgänglig.", + "analyzing": "Analyserar", + "analyzingTitle": "Analyserar", + "analyzingDescription": "Kontrollerar om applikationskoden kan nå den berörda funktionen.", + "failed": "Analysen misslyckades", + "failedTitle": "Analysen misslyckades", + "failedDescription": "Security Agent kunde inte slutföra analysen.", + "extractionFailed": "Kräver granskning", + "extractionFailedTitle": "Kräver granskning", + "extractionFailedDescription": "Den tekniska rapporten kunde inte omvandlas till ett strukturerat resultat.", + "exploitable": "Utnyttjbar", + "exploitableTitle": "Utnyttjbar", + "exploitableDescription": "Applikationskoden kan nå den berörda funktionen.", + "notExploitable": "Oåtkomlig", + "notExploitableTitle": "Oåtkomlig", + "notExploitableDescription": "Ingen nåbar väg hittades i detta arkiv.", + "unknown": "Kräver granskning", + "unknownTitle": "Kräver granskning", + "unknownDescription": "Analysen kunde inte bekräfta om den sårbara funktionen är nåbar.", + "safeToDismiss": "Säker att avfärda", + "safeToDismissTitle": "Säker att avfärda", + "safeToDismissDescription": "Triagering avgjorde att detta säkert kan avfärdas utan kodbasanalys.", + "manualReview": "Kräver granskning", + "manualReviewTitle": "Kräver manuell granskning", + "manualReviewDescription": "Triagering flaggade denna finding för manuell granskning.", + "analysisRequired": "Analys krävs", + "analysisRequiredTitle": "Kodbasanalys krävs", + "analysisRequiredDescription": "Triagering rekommenderar att arkivet analyseras innan ett svar beslutas.", + "completed": "Analyserad", + "completedTitle": "Analyserad", + "completedDescription": "Analysen slutfördes utan att något specifikt resultat registrerades.", + "notAnalyzed": "Inte analyserad", + "notAnalyzedTitle": "Inte analyserad", + "notAnalyzedDescription": "Kodbasanalys har ännu inte körts för denna finding." + }, + "deadline": { + "fixedBeforeDeadline": "Åtgärdad före deadline", + "fixed": "Åtgärdad", + "fixedOn": "Åtgärdad {{date}}", + "resolutionRecorded": "Lösning registrerad", + "superseded": "Ersatt", + "dismissed": "Avskriven", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Ingen deadline angiven", + "noSlaDeadline": "Ingen SLA-deadline", + "dueOn": "Förfaller {{date}}", + "overdueNow": "Försenad", + "overdue_one": "{{count}} dag försenad", + "overdue_other": "{{count}} dagar försenade", + "dueToday": "Förfaller idag", + "dueTomorrow": "Förfaller imorgon", + "dueInDays_one": "Förfaller om {{count}} dag", + "dueInDays_other": "Förfaller om {{count}} dagar", + "overdue": "{{count}} dagar försenade", + "dueInDays": "Förfaller om {{count}} dagar" + }, + "remediationStatus": { + "cancellationRequested": "Avbokning begärd", + "notStarted": "Inte startad", + "queued": "Köad", + "starting": "Startar", + "inProgress": "Pågår", + "draftPrOpened": "Utkast-PR öppnad", + "prOpened": "PR öppnad", + "blocked": "Blockerad", + "failed": "Misslyckades", + "noChangesNeeded": "Inga ändringar behövs", + "cancelled": "Avbruten", + "originAutomaticPolicy": "Automatisk policy", + "originIncludeExistingPolicy": "Inkludera befintlig policy", + "originManual": "Manuell", + "validationCheck": "Valideringskontroll {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Säkerhetsfindingen finns inte längre.", + "approvalRequired": "Automatisk åtgärd kräver godkännande. Starta åtgärden manuellt för att godkänna den.", + "findingNotOpen": "Findingen är inte längre öppen.", + "repoNotInScope": "Arkivet är inte valt för Security Agent.", + "analysisRequired": "Kör kodbasanalys innan du startar åtgärden.", + "sandboxAnalysisRequired": "Kör kodbasanalys innan du startar åtgärden.", + "staleAnalysis": "Findingen ändrades efter analysen. Kör analysen igen innan du startar åtgärden.", + "notExploitable": "Analysen hittade ingen nåbar sårbar väg. Automatisk åtgärd är inte tillgänglig.", + "exploitabilityUnknown": "Analysen kunde inte bekräfta utnyttjbarhet. Manuell granskning krävs innan åtgärd med ett klick.", + "manualReviewRequired": "Analysen rekommenderar manuell granskning, så åtgärd med ett klick är inte tillgänglig.", + "monitorRequired": "Analysen rekommenderar övervakning istället för att öppna en PR.", + "triageOnly": "Endast triagering har slutförts. Kör kodbasanalys innan du startar åtgärden.", + "actionNotConcrete": "Ingen konkret korrigering av beroende eller föreslagen fix finns tillgänglig.", + "remediationActive": "Ett åtgärdsförsök pågår redan.", + "prAlreadyOpened": "En åtgärds-PR är redan öppen.", + "duplicateAnalysisResult": "Detta analysresultat har redan producerat åtgärdsarbete.", + "retryNotAllowed": "Försök igen är inte tillgängligt för detta försök.", + "securityAgentDisabled": "Security Agent är inaktiverad för denna ägare.", + "autoRemediationDisabled": "Automatisk åtgärd är inaktiverad. Manuell åtgärd kan fortfarande startas när säkerhetsgrindarna passeras.", + "includeExistingDisabled": "Befintliga findings exkluderas från automatisk åtgärd.", + "belowThreshold": "Findingen ligger under tröskeln för automatisk allvarlighet. Manuell åtgärd kan fortfarande startas när säkerhetsgrindarna passeras.", + "beforeEnablement": "Analysen slutfördes innan automatisk åtgärd aktiverades. Manuell åtgärd kan fortfarande startas när säkerhetsgrindarna passeras.", + "generic": "Åtgärd är inte tillgänglig för denna finding." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index 0b4ecf1fb8..e5115a54d4 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -512,7 +512,9 @@ "pendingComment_other": "maoni ya kusubiri", "submitCountOfTotal": "Wasilisha {{displayFreshCount}} kati ya {{displayTotalCount}} maoni", "submitReview": "Wasilisha ukaguzi", - "partialPostedMessage": "Umetuma maoni {{displayFreshCount}}. Maoni {{displayStaleCount}} yanaelekeza kwenye commit la zamani na yalibaki kwenye foleni yako." + "partialPostedMessage": "Umetuma maoni {{displayFreshCount}}. Maoni {{displayStaleCount}} yanaelekeza kwenye commit la zamani na yalibaki kwenye foleni yako.", + "blockedRequestChanges": "Ongeza muhtasari au angalau maoni moja ili kuomba mabadiliko.", + "blockedComment": "Ongeza muhtasari au angalau maoni moja ili kutuma ukaguzi wa maoni." }, "reconnectNotice": { "title": "Muunganisho wa GitHub umekwisha muda", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Imeshindwa kusasisha mkaguzi", - "configSaveFailed": "Imeshindwa kuhifadhi usanidi wa ukaguzi" + "configSaveFailed": "Imeshindwa kuhifadhi usanidi wa ukaguzi", + "status": { + "pending": "Inasubiri", + "queued": "Imepangwa", + "running": "Inaendelea", + "completed": "Imekamilika", + "failed": "Imeshindwa", + "cancelled": "Imegairiwa", + "interrupted": "Imeingiliwa" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Rekodi ya chanzo", "source": "Chanzo", "sourceId": "Kitambulisho cha chanzo", - "viewAdvisory": "Tazama ushauri kwenye GitHub" + "viewAdvisory": "Tazama ushauri kwenye GitHub", + "statusSuperseded": "Imezidiwa", + "statusFixed": "Imerekebishwa", + "statusOpen": "Wazi", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "rekebisho tayari limeanza", + "reasonNoBandwidth": "hakuna uwezo wa kufanya kazi", + "reasonTolerableRisk": "hatari inaweza kuvumiliwa", + "reasonInaccurate": "matokeo si sahihi", + "reasonNotUsed": "msimbo hatarishi hautumiki", + "reasonAfterReview": "baada ya ukaguzi" }, "settingsOverview": { "title": "Mipangilio", @@ -1805,6 +1826,107 @@ "syncInProgress": "Usawazishaji wa usalama tayari unaendelea. Tafadhali jaribu tena.", "dismissalInProgress": "Kufuta huku tayari kunaendelea. Tafadhali jaribu tena.", "couldNotReadPendingSyncs": "Imeshindwa kusoma usawazishaji unaosubiri. Jaribu tena." + }, + "analysisState": { + "queued": "Uchambuzi umepangwa", + "queuedTitle": "Uchambuzi umepangwa", + "queuedDescription": "Inasubiri uwezo wa uchambuzi upatikane.", + "analyzing": "Inachambua", + "analyzingTitle": "Inachambua", + "analyzingDescription": "Inaangalia kama msimbo wa programu unaweza kufikia kipengele kilichoathirika.", + "failed": "Uchambuzi umeshindwa", + "failedTitle": "Uchambuzi umeshindwa", + "failedDescription": "Security Agent haikuweza kukamilisha uchambuzi.", + "extractionFailed": "Inahitaji ukaguzi", + "extractionFailedTitle": "Inahitaji ukaguzi", + "extractionFailedDescription": "Ripoti ya kiufundi haikuweza kugeuzwa kuwa matokeo yaliyopangwa.", + "exploitable": "Inayoweza kutumiwa vibaya", + "exploitableTitle": "Inayoweza kutumiwa vibaya", + "exploitableDescription": "Msimbo wa programu unaweza kufikia kipengele kilichoathirika.", + "notExploitable": "Haifikiwi", + "notExploitableTitle": "Haifikiwi", + "notExploitableDescription": "Hakuna njia inayofikiwa iliyopatikana katika hazina hii.", + "unknown": "Inahitaji ukaguzi", + "unknownTitle": "Inahitaji ukaguzi", + "unknownDescription": "Uchambuzi haukuweza kuthibitisha kama kipengele hatarishi kinafikiwa.", + "safeToDismiss": "Salama kuondoa", + "safeToDismissTitle": "Salama kuondoa", + "safeToDismissDescription": "Upangaji uliamua hili linaweza kuondolewa kwa usalama bila uchambuzi wa msimbo.", + "manualReview": "Inahitaji ukaguzi", + "manualReviewTitle": "Inahitaji ukaguzi wa mwongozo", + "manualReviewDescription": "Upangaji uliweka alama matokeo haya kwa ukaguzi wa mwongozo.", + "analysisRequired": "Uchambuzi unahitajika", + "analysisRequiredTitle": "Uchambuzi wa msimbo unahitajika", + "analysisRequiredDescription": "Upangaji unapendekeza kuchambua hazina kabla ya kuamua jibu.", + "completed": "Imechambuliwa", + "completedTitle": "Imechambuliwa", + "completedDescription": "Uchambuzi ulikamilika bila matokeo mahususi kurekodiwa.", + "notAnalyzed": "Haikuchambuliwa", + "notAnalyzedTitle": "Haikuchambuliwa", + "notAnalyzedDescription": "Uchambuzi wa msimbo haujafanyika kwa matokeo haya bado." + }, + "deadline": { + "fixedBeforeDeadline": "Imerekebishwa kabla ya muda wa mwisho", + "fixed": "Imerekebishwa", + "fixedOn": "Imerekebishwa {{date}}", + "resolutionRecorded": "Uamuzi umerekodiwa", + "superseded": "Imezidiwa", + "dismissed": "Imefutwa", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Muda wa mwisho haujawekwa", + "noSlaDeadline": "Hakuna muda wa mwisho wa SLA", + "dueOn": "Inatakiwa {{date}}", + "overdueNow": "Imechelewa", + "overdue_one": "Imechelewa kwa siku {{count}}", + "overdue_other": "Imechelewa kwa siku {{count}}", + "dueToday": "Inatakiwa leo", + "dueTomorrow": "Inatakiwa kesho", + "dueInDays_one": "Itatakiwa baada ya siku {{count}}", + "dueInDays_other": "Itatakiwa baada ya siku {{count}}", + "overdue": "Imechelewa kwa siku {{count}}", + "dueInDays": "Itatakiwa baada ya siku {{count}}" + }, + "remediationStatus": { + "cancellationRequested": "Kughairi kumeombwa", + "notStarted": "Haijaanza", + "queued": "Imepangwa", + "starting": "Inaanza", + "inProgress": "Inaendelea", + "draftPrOpened": "Rasimu ya PR imefunguliwa", + "prOpened": "PR imefunguliwa", + "blocked": "Imezuiwa", + "failed": "Imeshindwa", + "noChangesNeeded": "Hakuna mabadiliko yanayohitajika", + "cancelled": "Imegairiwa", + "originAutomaticPolicy": "Sera ya kiotomatiki", + "originIncludeExistingPolicy": "Jumuisha sera iliyopo", + "originManual": "Ya mwongozo", + "validationCheck": "Ukaguzi wa uthibitisho {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Matokeo ya usalama hayapo tena.", + "approvalRequired": "Matengenezo ya kiotomatiki yanahitaji idhini. Anza urekebishaji kwa mikono ili uidhinishe.", + "findingNotOpen": "Matokeo hayako wazi tena.", + "repoNotInScope": "Hazina haijachaguliwa kwa Security Agent.", + "analysisRequired": "Endesha uchambuzi wa msimbo kabla ya kuanza urekebishaji.", + "sandboxAnalysisRequired": "Endesha uchambuzi wa msimbo kabla ya kuanza urekebishaji.", + "staleAnalysis": "Matokeo yalibadilika baada ya uchambuzi. Endesha uchambuzi tena kabla ya kuanza urekebishaji.", + "notExploitable": "Uchambuzi haukupata njia hatarishi inayofikiwa. Matengenezo ya kiotomatiki hayapatikani.", + "exploitabilityUnknown": "Uchambuzi haukuweza kuthibitisha uwezekano wa kutumiwa vibaya. Ukaguzi wa mwongozo unahitajika kabla ya urekebishaji wa kitufe kimoja.", + "manualReviewRequired": "Uchambuzi unapendekeza ukaguzi wa mwongozo, kwa hivyo urekebishaji wa kitufe kimoja haupatikani.", + "monitorRequired": "Uchambuzi unapendekeza ufuatiliaji badala ya kufungua PR.", + "triageOnly": "Upangaji pekee umekamilika. Endesha uchambuzi wa msimbo kabla ya kuanza urekebishaji.", + "actionNotConcrete": "Hakuna kiraka mahususi cha tegemezi au rekebisho linalopendekezwa.", + "remediationActive": "Jaribio la urekebishaji tayari linaendelea.", + "prAlreadyOpened": "PR ya urekebishaji tayari iko wazi.", + "duplicateAnalysisResult": "Matokeo haya ya uchambuzi tayari yametoa kazi ya urekebishaji.", + "retryNotAllowed": "Kujaribu tena hakupatikani kwa jaribio hili.", + "securityAgentDisabled": "Security Agent imezimwa kwa mmiliki huyu.", + "autoRemediationDisabled": "Matengenezo ya kiotomatiki yamezimwa. Urekebishaji wa mwongozo bado unaweza kuanza milango ya usalama ikipita.", + "includeExistingDisabled": "Matokeo yaliyopo hayajumuishwi katika urekebishaji wa kiotomatiki.", + "belowThreshold": "Matokeo yako chini ya kizingiti cha ukali wa kiotomatiki. Urekebishaji wa mwongozo bado unaweza kuanza milango ya usalama ikipita.", + "beforeEnablement": "Uchambuzi ulikamilika kabla matengenezo ya kiotomatiki yaliwashwa. Urekebishaji wa mwongozo bado unaweza kuanza milango ya usalama ikipita.", + "generic": "Urekebishaji haupatikani kwa matokeo haya." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index 277b51718e..f64b621280 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -512,7 +512,9 @@ "pendingComment_other": "நிலுவை கருத்துகள்", "submitCountOfTotal": "{{displayTotalCount}} கருத்துகளில் {{displayFreshCount}} ஐ சமர்ப்பி", "submitReview": "மதிப்பாய்வை சமர்ப்பி", - "partialPostedMessage": "{{displayFreshCount}} கருத்து(களை) இடுகையிட்டது. {{displayStaleCount}} கருத்து(கள்) பழைய commit ஐ சுட்டிக்காட்டி உங்கள் வரிசையில் இருந்தன." + "partialPostedMessage": "{{displayFreshCount}} கருத்து(களை) இடுகையிட்டது. {{displayStaleCount}} கருத்து(கள்) பழைய commit ஐ சுட்டிக்காட்டி உங்கள் வரிசையில் இருந்தன.", + "blockedRequestChanges": "மாற்றங்களைக் கோர சுருக்கம் அல்லது குறைந்தபட்சம் ஒரு கருத்தைச் சேர்க்கவும்.", + "blockedComment": "கருத்து மதிப்பாய்வை இடுகையிட சுருக்கம் அல்லது குறைந்தபட்சம் ஒரு கருத்தைச் சேர்க்கவும்." }, "reconnectNotice": { "title": "GitHub இணைப்பு காலாவதியானது", @@ -1376,7 +1378,16 @@ }, "eyebrow": "குறியீடு மதிப்பாய்வாளர்", "updateFailed": "மதிப்பாய்வாளரை புதுப்பிக்க முடியவில்லை", - "configSaveFailed": "மதிப்பாய்வு உள்ளமைவை சேமிக்க முடியவில்லை" + "configSaveFailed": "மதிப்பாய்வு உள்ளமைவை சேமிக்க முடியவில்லை", + "status": { + "pending": "நிலுவையில்", + "queued": "வரிசையில்", + "running": "இயங்குகிறது", + "completed": "முடிந்தது", + "failed": "தோல்வியடைந்தது", + "cancelled": "ரத்து செய்யப்பட்டது", + "interrupted": "குறுக்கிடப்பட்டது" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "மூல பதிவு", "source": "மூலம்", "sourceId": "மூல ID", - "viewAdvisory": "GitHub இல் ஆலோசனையைப் பார்" + "viewAdvisory": "GitHub இல் ஆலோசனையைப் பார்", + "statusSuperseded": "மாற்றப்பட்டது", + "statusFixed": "சரிசெய்யப்பட்டது", + "statusOpen": "திறந்த", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ஒரு திருத்தம் ஏற்கனவே தொடங்கப்பட்டது", + "reasonNoBandwidth": "போதுமான அலைவரிசை கிடைக்கவில்லை", + "reasonTolerableRisk": "இடர் தாங்கக்கூடியது", + "reasonInaccurate": "கண்டுபிடிப்பு துல்லியமாக இல்லை", + "reasonNotUsed": "பாதிக்கப்படக்கூடிய குறியீடு பயன்படுத்தப்படவில்லை", + "reasonAfterReview": "மதிப்பாய்வுக்குப் பிறகு" }, "settingsOverview": { "title": "அமைப்புகள்", @@ -1805,6 +1826,107 @@ "syncInProgress": "பாதுகாப்பு ஒத்திசைவு ஏற்கனவே நடைபெற்று வருகிறது. மீண்டும் முயற்சிக்கவும்.", "dismissalInProgress": "இந்த நிராகரிப்பு ஏற்கனவே நடைபெற்று வருகிறது. மீண்டும் முயற்சிக்கவும்.", "couldNotReadPendingSyncs": "நிலுவையில் உள்ள ஒத்திசைவுகளை படிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்." + }, + "analysisState": { + "queued": "பகுப்பாய்வு வரிசையில் உள்ளது", + "queuedTitle": "பகுப்பாய்வு வரிசையில் உள்ளது", + "queuedDescription": "பகுப்பாய்வு திறன் கிடைக்க காத்திருக்கிறது.", + "analyzing": "பகுப்பாய்வு செய்கிறது", + "analyzingTitle": "பகுப்பாய்வு செய்கிறது", + "analyzingDescription": "பயன்பாட்டு குறியீடு பாதிக்கப்பட்ட அம்சத்தை அடைய முடியுமா என்பதைச் சரிபார்க்கிறது.", + "failed": "பகுப்பாய்வு தோல்வியடைந்தது", + "failedTitle": "பகுப்பாய்வு தோல்வியடைந்தது", + "failedDescription": "Security Agent பகுப்பாய்வை முடிக்க முடியவில்லை.", + "extractionFailed": "மதிப்பாய்வு தேவை", + "extractionFailedTitle": "மதிப்பாய்வு தேவை", + "extractionFailedDescription": "தொழில்நுட்ப அறிக்கையை கட்டமைக்கப்பட்ட முடிவாக மாற்ற முடியவில்லை.", + "exploitable": "சுரண்டக்கூடியது", + "exploitableTitle": "சுரண்டக்கூடியது", + "exploitableDescription": "பயன்பாட்டு குறியீடு பாதிக்கப்பட்ட அம்சத்தை அடையலாம்.", + "notExploitable": "அடைய முடியாதது", + "notExploitableTitle": "அடைய முடியாதது", + "notExploitableDescription": "இந்த களஞ்சியத்தில் அடையக்கூடிய பாதை எதுவும் கண்டறியப்படவில்லை.", + "unknown": "மதிப்பாய்வு தேவை", + "unknownTitle": "மதிப்பாய்வு தேவை", + "unknownDescription": "பாதிக்கப்படக்கூடிய அம்சம் அடையக்கூடியதா என்பதை பகுப்பாய்வு உறுதிப்படுத்த முடியவில்லை.", + "safeToDismiss": "நிராகரிக்க பாதுகாப்பானது", + "safeToDismissTitle": "நிராகரிக்க பாதுகாப்பானது", + "safeToDismissDescription": "குறியீடு அடிப்படை பகுப்பாய்வு இல்லாமல் இதை பாதுகாப்பாக நிராகரிக்கலாம் என வகைப்படுத்தல் தீர்மானித்தது.", + "manualReview": "மதிப்பாய்வு தேவை", + "manualReviewTitle": "கைமுறை மதிப்பாய்வு தேவை", + "manualReviewDescription": "கைமுறை மதிப்பாய்வுக்காக வகைப்படுத்தல் இந்த கண்டுபிடிப்பைக் குறித்தது.", + "analysisRequired": "பகுப்பாய்வு தேவை", + "analysisRequiredTitle": "குறியீடு அடிப்படை பகுப்பாய்வு தேவை", + "analysisRequiredDescription": "பதிலை முடிவு செய்வதற்கு முன் களஞ்சியத்தை பகுப்பாய்வு செய்ய வகைப்படுத்தல் பரிந்துரைக்கிறது.", + "completed": "பகுப்பாய்வு செய்யப்பட்டது", + "completedTitle": "பகுப்பாய்வு செய்யப்பட்டது", + "completedDescription": "பகுப்பாய்வு குறிப்பிட்ட விளைவு பதிவு செய்யப்படாமல் முடிந்தது.", + "notAnalyzed": "பகுப்பாய்வு செய்யப்படவில்லை", + "notAnalyzedTitle": "பகுப்பாய்வு செய்யப்படவில்லை", + "notAnalyzedDescription": "இந்த கண்டுபிடிப்புக்கு குறியீடு அடிப்படை பகுப்பாய்வு இன்னும் இயக்கப்படவில்லை." + }, + "deadline": { + "fixedBeforeDeadline": "காலக்கெடுவுக்கு முன் சரிசெய்யப்பட்டது", + "fixed": "சரிசெய்யப்பட்டது", + "fixedOn": "{{date}} அன்று சரிசெய்யப்பட்டது", + "resolutionRecorded": "தீர்வு பதிவு செய்யப்பட்டது", + "superseded": "மாற்றப்பட்டது", + "dismissed": "நிராகரிக்கப்பட்டது", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "காலக்கெடு அமைக்கப்படவில்லை", + "noSlaDeadline": "SLA காலக்கெடு இல்லை", + "dueOn": "{{date}} காலக்கெடு", + "overdueNow": "காலாவதியானது", + "overdue_one": "{{count}} நாள் தாமதம்", + "overdue_other": "{{count}} நாட்கள் தாமதம்", + "dueToday": "இன்று காலக்கெடு", + "dueTomorrow": "நாளை காலக்கெடு", + "dueInDays_one": "{{count}} நாளில் காலக்கெடு", + "dueInDays_other": "{{count}} நாட்களில் காலக்கெடு", + "overdue": "{{count}} நாட்கள் தாமதம்", + "dueInDays": "{{count}} நாட்களில் காலக்கெடு" + }, + "remediationStatus": { + "cancellationRequested": "ரத்து கோரப்பட்டது", + "notStarted": "தொடங்கப்படவில்லை", + "queued": "வரிசையில் உள்ளது", + "starting": "தொடங்குகிறது", + "inProgress": "நடைபெறுகிறது", + "draftPrOpened": "வரைவு PR திறக்கப்பட்டது", + "prOpened": "PR திறக்கப்பட்டது", + "blocked": "தடுக்கப்பட்டது", + "failed": "தோல்வியடைந்தது", + "noChangesNeeded": "மாற்றங்கள் தேவையில்லை", + "cancelled": "ரத்து செய்யப்பட்டது", + "originAutomaticPolicy": "தானியங்கி கொள்கை", + "originIncludeExistingPolicy": "தற்போதுள்ள கொள்கையைச் சேர்க்கவும்", + "originManual": "கைமுறை", + "validationCheck": "சரிபார்ப்பு சோதனை {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "பாதுகாப்பு கண்டுபிடிப்பு இனி இல்லை.", + "approvalRequired": "தானியங்கி திருத்தத்திற்கு ஒப்புதல் தேவை. அதை அங்கீகரிக்க சரிசெய்தலை கைமுறையாகத் தொடங்கவும்.", + "findingNotOpen": "கண்டுபிடிப்பு இனி திறந்திருக்கவில்லை.", + "repoNotInScope": "Security Agent க்கு களஞ்சியம் தேர்ந்தெடுக்கப்படவில்லை.", + "analysisRequired": "சரிசெய்தலைத் தொடங்கும் முன் குறியீடு அடிப்படை பகுப்பாய்வை இயக்கவும்.", + "sandboxAnalysisRequired": "சரிசெய்தலைத் தொடங்கும் முன் குறியீடு அடிப்படை பகுப்பாய்வை இயக்கவும்.", + "staleAnalysis": "பகுப்பாய்விற்குப் பிறகு கண்டுபிடிப்பு மாறியது. சரிசெய்தலைத் தொடங்கும் முன் பகுப்பாய்வை மீண்டும் இயக்கவும்.", + "notExploitable": "பகுப்பாய்வு அடையக்கூடிய பாதிக்கப்படக்கூடிய பாதையை கண்டறியவில்லை. தானியங்கி திருத்தம் கிடைக்கவில்லை.", + "exploitabilityUnknown": "பகுப்பாய்வு சுரண்டக்கூடிய தன்மையை உறுதிப்படுத்த முடியவில்லை. ஒரே கிளிக்கில் சரிசெய்வதற்கு முன் கைமுறை மதிப்பாய்வு தேவை.", + "manualReviewRequired": "பகுப்பாய்வு கைமுறை மதிப்பாய்வை பரிந்துரைக்கிறது, எனவே ஒரே கிளிக்கில் சரிசெய்தல் கிடைக்கவில்லை.", + "monitorRequired": "PR ஐ திறப்பதற்கு பதிலாக கண்காணிப்பை பகுப்பாய்வு பரிந்துரைக்கிறது.", + "triageOnly": "வகைப்படுத்தல் மட்டுமே முடிந்துள்ளது. சரிசெய்தலைத் தொடங்கும் முன் குறியீடு அடிப்படை பகுப்பாய்வை இயக்கவும்.", + "actionNotConcrete": "உறுதியான சார்பு திருத்தம் அல்லது பரிந்துரைக்கப்பட்ட தீர்வு எதுவும் கிடைக்கவில்லை.", + "remediationActive": "சரிசெய்தல் முயற்சி ஏற்கனவே செயலில் உள்ளது.", + "prAlreadyOpened": "சரிசெய்தல் PR ஏற்கனவே திறந்துள்ளது.", + "duplicateAnalysisResult": "இந்த பகுப்பாய்வு முடிவு ஏற்கனவே சரிசெய்தல் பணியை உருவாக்கியது.", + "retryNotAllowed": "இந்த முயற்சிக்கு மீண்டும் முயற்சி கிடைக்கவில்லை.", + "securityAgentDisabled": "இந்த உரிமையாளருக்கு Security Agent முடக்கப்பட்டுள்ளது.", + "autoRemediationDisabled": "தானியங்கி திருத்தம் முடக்கப்பட்டுள்ளது. பாதுகாப்பு சோதனைகள் நிறைவேறும்போது கைமுறை சரிசெய்தல் இன்னும் தொடங்கலாம்.", + "includeExistingDisabled": "தற்போதுள்ள கண்டுபிடிப்புகள் தானியங்கி சரிசெய்தலிலிருந்து விலக்கப்படுகின்றன.", + "belowThreshold": "கண்டுபிடிப்பு தானியங்கி தீவிர வரம்பிற்கு கீழே உள்ளது. பாதுகாப்பு சோதனைகள் நிறைவேறும்போது கைமுறை சரிசெய்தல் இன்னும் தொடங்கலாம்.", + "beforeEnablement": "தானியங்கி திருத்தம் இயக்கப்படுவதற்கு முன் பகுப்பாய்வு முடிந்தது. பாதுகாப்பு சோதனைகள் நிறைவேறும்போது கைமுறை சரிசெய்தல் இன்னும் தொடங்கலாம்.", + "generic": "இந்த கண்டுபிடிப்பிற்கு சரிசெய்தல் கிடைக்கவில்லை." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index 464c09a7db..e8aba28d3d 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -512,7 +512,9 @@ "pendingComment_other": "పెండింగ్ వ్యాఖ్యలు", "submitCountOfTotal": "మొత్తం {{displayTotalCount}} వ్యాఖ్యలలో {{displayFreshCount}} సమర్పించండి", "submitReview": "సమీక్షను సమర్పించండి", - "partialPostedMessage": "{{displayFreshCount}} వ్యాఖ్య(లు) పోస్ట్ చేయబడ్డాయి. {{displayStaleCount}} వ్యాఖ్య(లు) పాత కమిట్కు సూచిస్తున్నాయి మరియు మీ క్యూలో ఉన్నాయి." + "partialPostedMessage": "{{displayFreshCount}} వ్యాఖ్య(లు) పోస్ట్ చేయబడ్డాయి. {{displayStaleCount}} వ్యాఖ్య(లు) పాత కమిట్కు సూచిస్తున్నాయి మరియు మీ క్యూలో ఉన్నాయి.", + "blockedRequestChanges": "మార్పులను అభ్యర్థించడానికి సారాంశం లేదా కనీసం ఒక వ్యాఖ్యను జోడించండి.", + "blockedComment": "వ్యాఖ్య సమీక్షను పోస్ట్ చేయడానికి సారాంశం లేదా కనీసం ఒక వ్యాఖ్యను జోడించండి." }, "reconnectNotice": { "title": "GitHub కనెక్షన్ గడువు ముగిసింది", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "రివ్యూయర్‌ను నవీకరించడంలో విఫలమైంది", - "configSaveFailed": "సమీక్ష కాన్ఫిగ్‌ను సేవ్ చేయడంలో విఫలమైంది" + "configSaveFailed": "సమీక్ష కాన్ఫిగ్‌ను సేవ్ చేయడంలో విఫలమైంది", + "status": { + "pending": "వేచి ఉంది", + "queued": "క్యూలో ఉంది", + "running": "నడుస్తోంది", + "completed": "పూర్తయింది", + "failed": "విఫలమైంది", + "cancelled": "రద్దు చేయబడింది", + "interrupted": "అంతరాయం కలిగింది" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "మూల రికార్డు", "source": "మూలం", "sourceId": "మూల ID", - "viewAdvisory": "GitHubలో సలహాను చూడండి" + "viewAdvisory": "GitHubలో సలహాను చూడండి", + "statusSuperseded": "భర్తీ చేయబడింది", + "statusFixed": "పరిష్కరించబడింది", + "statusOpen": "తెరిచి ఉంది", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "పరిష్కారం ఇప్పటికే ప్రారంభమైంది", + "reasonNoBandwidth": "బ్యాండ్‌విడ్త్ అందుబాటులో లేదు", + "reasonTolerableRisk": "ప్రమాదం తట్టుకోదగినది", + "reasonInaccurate": "ఫలితం సరికాదు", + "reasonNotUsed": "హాని కలిగించే కోడ్ ఉపయోగించబడదు", + "reasonAfterReview": "సమీక్ష తర్వాత" }, "settingsOverview": { "title": "సెట్టింగ్‌లు", @@ -1805,6 +1826,107 @@ "syncInProgress": "సెక్యూరిటీ సింక్ ఇప్పటికే జరుగుతోంది. దయచేసి మళ్లీ ప్రయత్నించండి.", "dismissalInProgress": "ఈ తోసివేత ఇప్పటికే జరుగుతోంది. దయచేసి మళ్లీ ప్రయత్నించండి.", "couldNotReadPendingSyncs": "పెండింగ్ సింక్‌లను చదవలేకపోయాము. మళ్లీ ప్రయత్నించండి." + }, + "analysisState": { + "queued": "విశ్లేషణ క్యూలో ఉంది", + "queuedTitle": "విశ్లేషణ క్యూలో ఉంది", + "queuedDescription": "విశ్లేషణ సామర్థ్యం అందుబాటులోకి వచ్చే వరకు వేచి ఉంది.", + "analyzing": "విశ్లేషిస్తోంది", + "analyzingTitle": "విశ్లేషిస్తోంది", + "analyzingDescription": "యాప్ కోడ్ ప్రభావిత ఫీచర్‌ను చేరుకోగలదా అని తనిఖీ చేస్తోంది.", + "failed": "విశ్లేషణ విఫలమైంది", + "failedTitle": "విశ్లేషణ విఫలమైంది", + "failedDescription": "సెక్యూరిటీ ఏజెంట్ విశ్లేషణను పూర్తి చేయలేకపోయింది.", + "extractionFailed": "సమీక్ష అవసరం", + "extractionFailedTitle": "సమీక్ష అవసరం", + "extractionFailedDescription": "సాంకేతిక నివేదికను నిర్మాణాత్మక ఫలితంగా మార్చలేకపోయింది.", + "exploitable": "దుర్వినియోగం చేయదగినది", + "exploitableTitle": "దుర్వినియోగం చేయదగినది", + "exploitableDescription": "యాప్ కోడ్ ప్రభావిత ఫీచర్‌ను చేరుకోగలదు.", + "notExploitable": "చేరుకోలేనిది", + "notExploitableTitle": "చేరుకోలేనిది", + "notExploitableDescription": "ఈ రిపోజిటరీలో చేరుకోగలిగే మార్గం ఏదీ కనుగొనబడలేదు.", + "unknown": "సమీక్ష అవసరం", + "unknownTitle": "సమీక్ష అవసరం", + "unknownDescription": "హాని కలిగించే ఫీచర్ చేరుకోగలదా అని విశ్లేషణ నిర్ధారించలేకపోయింది.", + "safeToDismiss": "తోసివేయడం సురక్షితం", + "safeToDismissTitle": "తోసివేయడం సురక్షితం", + "safeToDismissDescription": "కోడ్‌బేస్ విశ్లేషణ లేకుండా దీన్ని సురక్షితంగా తోసివేయవచ్చని ట్రయాజ్ నిర్ధారించింది.", + "manualReview": "సమీక్ష అవసరం", + "manualReviewTitle": "మాన్యువల్ సమీక్ష అవసరం", + "manualReviewDescription": "మాన్యువల్ సమీక్ష కోసం ట్రయాజ్ ఈ ఫలితాన్ని ఫ్లాగ్ చేసింది.", + "analysisRequired": "విశ్లేషణ అవసరం", + "analysisRequiredTitle": "కోడ్‌బేస్ విశ్లేషణ అవసరం", + "analysisRequiredDescription": "ప్రతిస్పందనను నిర్ణయించే ముందు రిపోజిటరీని విశ్లేషించాలని ట్రయాజ్ సిఫార్సు చేస్తుంది.", + "completed": "విశ్లేషించబడింది", + "completedTitle": "విశ్లేషించబడింది", + "completedDescription": "నిర్దిష్ట ఫలితం నమోదు చేయకుండా విశ్లేషణ పూర్తయింది.", + "notAnalyzed": "విశ్లేషించబడలేదు", + "notAnalyzedTitle": "విశ్లేషించబడలేదు", + "notAnalyzedDescription": "ఈ ఫలితానికి కోడ్‌బేస్ విశ్లేషణ ఇంకా అమలు కాలేదు." + }, + "deadline": { + "fixedBeforeDeadline": "గడువుకు ముందే పరిష్కరించబడింది", + "fixed": "పరిష్కరించబడింది", + "fixedOn": "{{date}} నాటికి పరిష్కరించబడింది", + "resolutionRecorded": "పరిష్కారం నమోదు చేయబడింది", + "superseded": "భర్తీ చేయబడింది", + "dismissed": "తీసివేయబడింది", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "గడువు నిర్ణయించబడలేదు", + "noSlaDeadline": "SLA గడువు లేదు", + "dueOn": "{{date}} గడువు", + "overdueNow": "గడువు దాటింది", + "overdue_one": "{{count}} రోజు గడువు దాటింది", + "overdue_other": "{{count}} రోజులు గడువు దాటాయి", + "dueToday": "ఈరోజు గడువు", + "dueTomorrow": "రేపు గడువు", + "dueInDays_one": "{{count}} రోజులో గడువు", + "dueInDays_other": "{{count}} రోజుల్లో గడువు", + "overdue": "{{count}} రోజులు గడువు దాటాయి", + "dueInDays": "{{count}} రోజుల్లో గడువు" + }, + "remediationStatus": { + "cancellationRequested": "రద్దు అభ్యర్థించబడింది", + "notStarted": "ప్రారంభించబడలేదు", + "queued": "క్యూలో ఉంది", + "starting": "ప్రారంభిస్తోంది", + "inProgress": "జరుగుతోంది", + "draftPrOpened": "డ్రాఫ్ట్ PR తెరవబడింది", + "prOpened": "PR తెరవబడింది", + "blocked": "నిరోధించబడింది", + "failed": "విఫలమైంది", + "noChangesNeeded": "మార్పులు అవసరం లేదు", + "cancelled": "రద్దు చేయబడింది", + "originAutomaticPolicy": "స్వయంచాలక విధానం", + "originIncludeExistingPolicy": "ఇప్పటికే ఉన్న విధానాన్ని చేర్చండి", + "originManual": "మాన్యువల్", + "validationCheck": "ధృవీకరణ తనిఖీ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "భద్రతా ఫలితం ఇకపై లేదు.", + "approvalRequired": "ఆటో నివారణకు ఆమోదం అవసరం. దాన్ని ఆమోదించడానికి పరిష్కారాన్ని మాన్యువల్‌గా ప్రారంభించండి.", + "findingNotOpen": "ఫలితం ఇకపై తెరిచి ఉండదు.", + "repoNotInScope": "సెక్యూరిటీ ఏజెంట్ కోసం రిపోజిటరీ ఎంచుకోబడలేదు.", + "analysisRequired": "పరిష్కారాన్ని ప్రారంభించే ముందు కోడ్‌బేస్ విశ్లేషణను అమలు చేయండి.", + "sandboxAnalysisRequired": "పరిష్కారాన్ని ప్రారంభించే ముందు కోడ్‌బేస్ విశ్లేషణను అమలు చేయండి.", + "staleAnalysis": "విశ్లేషణ తర్వాత ఫలితం మారింది. పరిష్కారాన్ని ప్రారంభించే ముందు విశ్లేషణను మళ్ళీ అమలు చేయండి.", + "notExploitable": "విశ్లేషణ చేరుకోగలిగే హాని కలిగించే మార్గాన్ని కనుగొనలేదు. ఆటో నివారణ అందుబాటులో లేదు.", + "exploitabilityUnknown": "విశ్లేషణ దుర్వినియోగ సామర్థ్యాన్ని నిర్ధారించలేకపోయింది. వన్-క్లిక్ పరిష్కారానికి ముందు మాన్యువల్ సమీక్ష అవసరం.", + "manualReviewRequired": "విశ్లేషణ మాన్యువల్ సమీక్షను సిఫార్సు చేస్తుంది, కాబట్టి వన్-క్లిక్ పరిష్కారం అందుబాటులో లేదు.", + "monitorRequired": "PR తెరవడానికి బదులుగా పర్యవేక్షణను విశ్లేషణ సిఫార్సు చేస్తుంది.", + "triageOnly": "ట్రయాజ్ మాత్రమే పూర్తయింది. పరిష్కారాన్ని ప్రారంభించే ముందు కోడ్‌బేస్ విశ్లేషణను అమలు చేయండి.", + "actionNotConcrete": "కాంక్రీట్ డిపెండెన్సీ ప్యాచ్ లేదా సూచించిన పరిష్కారం అందుబాటులో లేదు.", + "remediationActive": "పరిష్కార ప్రయత్నం ఇప్పటికే చురుకుగా ఉంది.", + "prAlreadyOpened": "పరిష్కార PR ఇప్పటికే తెరిచి ఉంది.", + "duplicateAnalysisResult": "ఈ విశ్లేషణ ఫలితం ఇప్పటికే పరిష్కార పనిని ఉత్పత్తి చేసింది.", + "retryNotAllowed": "ఈ ప్రయత్నానికి మళ్ళీ ప్రయత్నించడం అందుబాటులో లేదు.", + "securityAgentDisabled": "ఈ యజమానికి సెక్యూరిటీ ఏజెంట్ నిలిపివేయబడింది.", + "autoRemediationDisabled": "ఆటో నివారణ నిలిపివేయబడింది. భద్రతా గేట్లు దాటినప్పుడు మాన్యువల్ పరిష్కారం ఇప్పటికీ ప్రారంభమవుతుంది.", + "includeExistingDisabled": "ఇప్పటికే ఉన్న ఫలితాలు స్వయంచాలక పరిష్కారం నుండి మినహాయించబడ్డాయి.", + "belowThreshold": "ఫలితం స్వయంచాలక తీవ్రత థ్రెషోల్డ్ కంటే తక్కువగా ఉంది. భద్రతా గేట్లు దాటినప్పుడు మాన్యువల్ పరిష్కారం ఇప్పటికీ ప్రారంభమవుతుంది.", + "beforeEnablement": "ఆటో నివారణ ప్రారంభించబడటానికి ముందు విశ్లేషణ పూర్తయింది. భద్రతా గేట్లు దాటినప్పుడు మాన్యువల్ పరిష్కారం ఇప్పటికీ ప్రారంభమవుతుంది.", + "generic": "ఈ ఫలితానికి పరిష్కారం అందుబాటులో లేదు." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index f6bd3717a1..2e33bef09f 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -512,7 +512,9 @@ "pendingComment_other": "ความคิดเห็นที่รอดำเนินการ", "submitCountOfTotal": "ส่ง {{displayFreshCount}} จาก {{displayTotalCount}} ความคิดเห็น", "submitReview": "ส่งรีวิว", - "partialPostedMessage": "โพสต์ {{displayFreshCount}} ความคิดเห็นแล้ว {{displayStaleCount}} ความคิดเห็นชี้ไปที่ commit ที่เก่ากว่าและยังอยู่ในคิวของคุณ" + "partialPostedMessage": "โพสต์ {{displayFreshCount}} ความคิดเห็นแล้ว {{displayStaleCount}} ความคิดเห็นชี้ไปที่ commit ที่เก่ากว่าและยังอยู่ในคิวของคุณ", + "blockedRequestChanges": "เพิ่มสรุปหรือความคิดเห็นอย่างน้อยหนึ่งรายการเพื่อขอให้แก้ไข", + "blockedComment": "เพิ่มสรุปหรือความคิดเห็นอย่างน้อยหนึ่งรายการเพื่อโพสต์รีวิวแบบความคิดเห็น" }, "reconnectNotice": { "title": "การเชื่อมต่อ GitHub หมดอายุแล้ว", @@ -1376,7 +1378,16 @@ }, "eyebrow": "ผู้ตรวจสอบโค้ด", "updateFailed": "อัปเดตผู้ตรวจสอบไม่สำเร็จ", - "configSaveFailed": "บันทึกการกำหนดค่ารีวิวไม่สำเร็จ" + "configSaveFailed": "บันทึกการกำหนดค่ารีวิวไม่สำเร็จ", + "status": { + "pending": "รอดำเนินการ", + "queued": "อยู่ในคิว", + "running": "กำลังทำงาน", + "completed": "เสร็จสิ้น", + "failed": "ล้มเหลว", + "cancelled": "ยกเลิกแล้ว", + "interrupted": "ถูกขัดจังหวะ" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "บันทึกต้นทาง", "source": "แหล่งที่มา", "sourceId": "ID แหล่งที่มา", - "viewAdvisory": "ดูคำแนะนำบน GitHub" + "viewAdvisory": "ดูคำแนะนำบน GitHub", + "statusSuperseded": "ถูกแทนที่แล้ว", + "statusFixed": "แก้ไขแล้ว", + "statusOpen": "เปิด", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "เริ่มการแก้ไขไปแล้ว", + "reasonNoBandwidth": "ไม่มีความสามารถเพียงพอ", + "reasonTolerableRisk": "ความเสี่ยงยอมรับได้", + "reasonInaccurate": "ผลการค้นหาไม่ถูกต้อง", + "reasonNotUsed": "โค้ดที่มีช่องโหว่ไม่ได้ถูกใช้", + "reasonAfterReview": "หลังการตรวจสอบ" }, "settingsOverview": { "title": "การตั้งค่า", @@ -1805,6 +1826,107 @@ "syncInProgress": "มีการซิงค์ความปลอดภัยอยู่แล้ว โปรดลองอีกครั้ง", "dismissalInProgress": "การละเว้นนี้กำลังดำเนินการอยู่แล้ว โปรดลองอีกครั้ง", "couldNotReadPendingSyncs": "ไม่สามารถอ่านการซิงค์ที่รอดำเนินการได้ ลองอีกครั้ง" + }, + "analysisState": { + "queued": "การวิเคราะห์ถูกจัดคิว", + "queuedTitle": "การวิเคราะห์ถูกจัดคิว", + "queuedDescription": "รอให้ความจุการวิเคราะห์พร้อมใช้งาน", + "analyzing": "กำลังวิเคราะห์", + "analyzingTitle": "กำลังวิเคราะห์", + "analyzingDescription": "กำลังตรวจสอบว่าโค้ดแอปพลิเคชันเข้าถึงฟีเจอร์ที่ได้รับผลกระทบได้หรือไม่", + "failed": "การวิเคราะห์ล้มเหลว", + "failedTitle": "การวิเคราะห์ล้มเหลว", + "failedDescription": "Security Agent ไม่สามารถทำการวิเคราะห์ให้เสร็จสมบูรณ์ได้", + "extractionFailed": "ต้องตรวจสอบ", + "extractionFailedTitle": "ต้องตรวจสอบ", + "extractionFailedDescription": "ไม่สามารถแปลงรายงานทางเทคนิคเป็นผลลัพธ์แบบมีโครงสร้างได้", + "exploitable": "โจมตีได้", + "exploitableTitle": "โจมตีได้", + "exploitableDescription": "โค้ดแอปพลิเคชันเข้าถึงฟีเจอร์ที่ได้รับผลกระทบได้", + "notExploitable": "เข้าถึงไม่ได้", + "notExploitableTitle": "เข้าถึงไม่ได้", + "notExploitableDescription": "ไม่พบเส้นทางที่เข้าถึงได้ใน repository นี้", + "unknown": "ต้องตรวจสอบ", + "unknownTitle": "ต้องตรวจสอบ", + "unknownDescription": "การวิเคราะห์ไม่สามารถยืนยันได้ว่าฟีเจอร์ที่เสี่ยงต่อช่องโหว่เข้าถึงได้หรือไม่", + "safeToDismiss": "ปลอดภัยที่จะละทิ้ง", + "safeToDismissTitle": "ปลอดภัยที่จะละทิ้ง", + "safeToDismissDescription": "การคัดกรองระบุว่าสามารถละทิ้งได้อย่างปลอดภัยโดยไม่ต้องวิเคราะห์โค้ดเบส", + "manualReview": "ต้องตรวจสอบ", + "manualReviewTitle": "ต้องตรวจสอบด้วยตนเอง", + "manualReviewDescription": "การคัดกรองทำเครื่องหมายผลการค้นหานี้ให้ตรวจสอบด้วยตนเอง", + "analysisRequired": "ต้องมีการวิเคราะห์", + "analysisRequiredTitle": "ต้องมีการวิเคราะห์โค้ดเบส", + "analysisRequiredDescription": "การคัดกรองแนะนำให้วิเคราะห์ repository ก่อนตัดสินใจดำเนินการ", + "completed": "วิเคราะห์แล้ว", + "completedTitle": "วิเคราะห์แล้ว", + "completedDescription": "การวิเคราะห์เสร็จสมบูรณ์โดยไม่มีการบันทึกผลลัพธ์เฉพาะ", + "notAnalyzed": "ยังไม่ได้วิเคราะห์", + "notAnalyzedTitle": "ยังไม่ได้วิเคราะห์", + "notAnalyzedDescription": "การวิเคราะห์โค้ดเบสยังไม่รันสำหรับผลการค้นหานี้" + }, + "deadline": { + "fixedBeforeDeadline": "แก้ไขก่อนกำหนดเวลา", + "fixed": "แก้ไขแล้ว", + "fixedOn": "แก้ไขเมื่อ {{date}}", + "resolutionRecorded": "บันทึกการแก้ไขแล้ว", + "superseded": "ถูกแทนที่แล้ว", + "dismissed": "ละทิ้งแล้ว", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "ยังไม่ได้ตั้งกำหนดเวลา", + "noSlaDeadline": "ไม่มีกำหนดเวลา SLA", + "dueOn": "ครบกำหนด {{date}}", + "overdueNow": "เกินกำหนด", + "overdue_other": "เกินกำหนด {{count}} วัน", + "dueToday": "ครบกำหนดวันนี้", + "dueTomorrow": "ครบกำหนดพรุ่งนี้", + "dueInDays_other": "ครบกำหนดใน {{count}} วัน", + "overdue": "เกินกำหนด {{count}} วัน", + "overdue_one": "เกินกำหนด {{count}} วัน", + "dueInDays": "ครบกำหนดใน {{count}} วัน", + "dueInDays_one": "ครบกำหนดใน {{count}} วัน" + }, + "remediationStatus": { + "cancellationRequested": "ขอการยกเลิกแล้ว", + "notStarted": "ยังไม่เริ่ม", + "queued": "จัดคิวแล้ว", + "starting": "กำลังเริ่ม", + "inProgress": "กำลังดำเนินการ", + "draftPrOpened": "เปิด PR ฉบับร่างแล้ว", + "prOpened": "เปิด PR แล้ว", + "blocked": "ถูกบล็อก", + "failed": "ล้มเหลว", + "noChangesNeeded": "ไม่มีการเปลี่ยนแปลงที่จำเป็น", + "cancelled": "ยกเลิกแล้ว", + "originAutomaticPolicy": "นโยบายอัตโนมัติ", + "originIncludeExistingPolicy": "รวมนโยบายที่มีอยู่", + "originManual": "ด้วยตนเอง", + "validationCheck": "การตรวจสอบความถูกต้อง {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "ผลการค้นหาความปลอดภัยไม่มีอยู่อีกต่อไป", + "approvalRequired": "การแก้ไขอัตโนมัติต้องมีการอนุมัติ เริ่มการแก้ไขด้วยตนเองเพื่ออนุมัติ", + "findingNotOpen": "ผลการค้นหาไม่เปิดอยู่อีกต่อไป", + "repoNotInScope": "repository นี้ไม่ได้ถูกเลือกสำหรับ Security Agent", + "analysisRequired": "รันการวิเคราะห์โค้ดเบสก่อนเริ่มการแก้ไข", + "sandboxAnalysisRequired": "รันการวิเคราะห์โค้ดเบสก่อนเริ่มการแก้ไข", + "staleAnalysis": "ผลการค้นหาเปลี่ยนไปหลังการวิเคราะห์ รันการวิเคราะห์อีกครั้งก่อนเริ่มการแก้ไข", + "notExploitable": "การวิเคราะห์ไม่พบเส้นทางที่เข้าถึงได้ซึ่งเสี่ยงต่อช่องโหว่ การแก้ไขอัตโนมัติไม่พร้อมใช้งาน", + "exploitabilityUnknown": "การวิเคราะห์ไม่สามารถยืนยันความสามารถในการโจมตีได้ ต้องตรวจสอบด้วยตนเองก่อนการแก้ไขด้วยคลิกเดียว", + "manualReviewRequired": "การวิเคราะห์แนะนำให้ตรวจสอบด้วยตนเอง ดังนั้นการแก้ไขด้วยคลิกเดียวจึงไม่พร้อมใช้งาน", + "monitorRequired": "การวิเคราะห์แนะนำให้เฝ้าติดตามแทนการเปิด PR", + "triageOnly": "เสร็จสิ้นเพียงการคัดกรอง รันการวิเคราะห์โค้ดเบสก่อนเริ่มการแก้ไข", + "actionNotConcrete": "ไม่มีแพตช์การพึ่งพาหรือวิธีแก้ไขที่แนะนำอย่างเป็นรูปธรรม", + "remediationActive": "มีความพยายามแก้ไขที่ทำงานอยู่แล้ว", + "prAlreadyOpened": "PR การแก้ไขเปิดอยู่แล้ว", + "duplicateAnalysisResult": "ผลการวิเคราะห์นี้สร้างงานแก้ไขไปแล้ว", + "retryNotAllowed": "ไม่สามารถลองใหม่สำหรับความพยายามนี้ได้", + "securityAgentDisabled": "Security Agent ถูกปิดใช้งานสำหรับเจ้าของนี้", + "autoRemediationDisabled": "การแก้ไขอัตโนมัติถูกปิดใช้งาน การแก้ไขด้วยตนเองยังเริ่มได้เมื่อเกตความปลอดภัยผ่าน", + "includeExistingDisabled": "ผลการค้นหาที่มีอยู่ถูกแยกออกจากการแก้ไขอัตโนมัติ", + "belowThreshold": "ผลการค้นหาต่ำกว่าเกณฑ์ความรุนแรงอัตโนมัติ การแก้ไขด้วยตนเองยังเริ่มได้เมื่อเกตความปลอดภัยผ่าน", + "beforeEnablement": "การวิเคราะห์เสร็จสิ้นก่อนเปิดการแก้ไขอัตโนมัติ การแก้ไขด้วยตนเองยังเริ่มได้เมื่อเกตความปลอดภัยผ่าน", + "generic": "การแก้ไขไม่พร้อมใช้งานสำหรับผลการค้นหานี้" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index db31130971..39e102b460 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -939,7 +939,16 @@ "set": "Ayarlı" }, "updateFailed": "İnceleyici güncellenemedi", - "configSaveFailed": "İnceleme yapılandırması kaydedilemedi" + "configSaveFailed": "İnceleme yapılandırması kaydedilemedi", + "status": { + "pending": "Bekliyor", + "queued": "Kuyruğa alındı", + "running": "Çalışıyor", + "completed": "Tamamlandı", + "failed": "Başarısız oldu", + "cancelled": "İptal edildi", + "interrupted": "Kesintiye uğradı" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "Bilinmiyor", "updated": "Güncellendi", "viewAdvisory": "GitHub'da güvenlik bildirimini görüntüle", - "vulnerableVersions": "Savunmasız sürümler" + "vulnerableVersions": "Savunmasız sürümler", + "statusSuperseded": "Geçersiz kılındı", + "statusFixed": "Düzeltildi", + "statusOpen": "Açık", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "bir düzeltme zaten başladı", + "reasonNoBandwidth": "kullanılabilir kapasite yok", + "reasonTolerableRisk": "risk tolere edilebilir", + "reasonInaccurate": "bulgu hatalı", + "reasonNotUsed": "savunmasız kod kullanılmıyor", + "reasonAfterReview": "incelemeden sonra" }, "findingList": { "clearFilters": "Filtreleri temizle", @@ -1368,6 +1387,107 @@ "syncInProgress": "Bir güvenlik eşitlemesi zaten devam ediyor. Lütfen tekrar deneyin.", "dismissalInProgress": "Bu yok sayma zaten devam ediyor. Lütfen tekrar deneyin.", "couldNotReadPendingSyncs": "Bekleyen eşitlemeler okunamadı. Tekrar deneyin." + }, + "analysisState": { + "queued": "Analiz kuyruğa alındı", + "queuedTitle": "Analiz kuyruğa alındı", + "queuedDescription": "Analiz kapasitesinin kullanılabilir olması bekleniyor.", + "analyzing": "Analiz ediliyor", + "analyzingTitle": "Analiz ediliyor", + "analyzingDescription": "Uygulama kodunun etkilenen özelliğe ulaşıp ulaşamadığı kontrol ediliyor.", + "failed": "Analiz başarısız oldu", + "failedTitle": "Analiz başarısız oldu", + "failedDescription": "Security Agent analizi tamamlayamadı.", + "extractionFailed": "İnceleme gerekiyor", + "extractionFailedTitle": "İnceleme gerekiyor", + "extractionFailedDescription": "Teknik rapor yapılandırılmış bir sonuca dönüştürülemedi.", + "exploitable": "İstismar edilebilir", + "exploitableTitle": "İstismar edilebilir", + "exploitableDescription": "Uygulama kodu etkilenen özelliğe ulaşabiliyor.", + "notExploitable": "Ulaşılamaz", + "notExploitableTitle": "Ulaşılamaz", + "notExploitableDescription": "Bu depoda ulaşılabilir bir yol bulunamadı.", + "unknown": "İnceleme gerekiyor", + "unknownTitle": "İnceleme gerekiyor", + "unknownDescription": "Analiz, güvenlik açığı olan özelliğin ulaşılabilir olup olmadığını doğrulayamadı.", + "safeToDismiss": "Yok sayılabilir", + "safeToDismissTitle": "Yok sayılabilir", + "safeToDismissDescription": "Triyaj, kod tabanı analizi olmadan bunun güvenle yok sayılabileceğini belirledi.", + "manualReview": "İnceleme gerekiyor", + "manualReviewTitle": "Manuel inceleme gerekiyor", + "manualReviewDescription": "Triyaj bu bulguyu manuel inceleme için işaretledi.", + "analysisRequired": "Analiz gerekli", + "analysisRequiredTitle": "Kod tabanı analizi gerekli", + "analysisRequiredDescription": "Triyaj, bir yanıta karar vermeden önce deponun analiz edilmesini önerir.", + "completed": "Analiz edildi", + "completedTitle": "Analiz edildi", + "completedDescription": "Analiz, belirli bir sonuç kaydedilmeden tamamlandı.", + "notAnalyzed": "Analiz edilmedi", + "notAnalyzedTitle": "Analiz edilmedi", + "notAnalyzedDescription": "Bu bulgu için kod tabanı analizi henüz çalıştırılmadı." + }, + "deadline": { + "fixedBeforeDeadline": "Son tarihten önce düzeltildi", + "fixed": "Düzeltildi", + "fixedOn": "{{date}} tarihinde düzeltildi", + "resolutionRecorded": "Çözüm kaydedildi", + "superseded": "Geçersiz kılındı", + "dismissed": "Yok sayıldı", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Son tarih belirtilmedi", + "noSlaDeadline": "SLA son tarihi atanmadı", + "dueOn": "Son tarih: {{date}}", + "overdueNow": "Gecikmiş", + "overdue_one": "{{count}} gün gecikmiş", + "overdue_other": "{{count}} gün gecikmiş", + "dueToday": "Son tarih bugün", + "dueTomorrow": "Son tarih yarın", + "dueInDays_one": "{{count}} gün içinde", + "dueInDays_other": "{{count}} gün içinde", + "overdue": "{{count}} gün gecikmiş", + "dueInDays": "{{count}} gün içinde" + }, + "remediationStatus": { + "cancellationRequested": "İptal istendi", + "notStarted": "Başlatılmadı", + "queued": "Kuyruğa alındı", + "starting": "Başlatılıyor", + "inProgress": "Devam ediyor", + "draftPrOpened": "Taslak PR açıldı", + "prOpened": "PR açıldı", + "blocked": "Engellendi", + "failed": "Başarısız oldu", + "noChangesNeeded": "Değişiklik gerekmiyor", + "cancelled": "İptal edildi", + "originAutomaticPolicy": "Otomatik ilke", + "originIncludeExistingPolicy": "Mevcut ilkeyi dahil et", + "originManual": "Manuel", + "validationCheck": "Doğrulama kontrolü {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Güvenlik bulgusu artık mevcut değil.", + "approvalRequired": "Otomatik İyileştirme onay gerektirir. Onaylamak için iyileştirmeyi manuel olarak başlatın.", + "findingNotOpen": "Bulgu artık açık değil.", + "repoNotInScope": "Depo, Security Agent için seçilmedi.", + "analysisRequired": "İyileştirmeyi başlatmadan önce kod tabanı analizini çalıştırın.", + "sandboxAnalysisRequired": "İyileştirmeyi başlatmadan önce kod tabanı analizini çalıştırın.", + "staleAnalysis": "Bulgu, analizden sonra değişti. İyileştirmeyi başlatmadan önce analizi yeniden çalıştırın.", + "notExploitable": "Analiz, ulaşılabilir bir güvenlik açığı yolu bulmadı. Otomatik İyileştirme kullanılamıyor.", + "exploitabilityUnknown": "Analiz, istismar edilebilirliği doğrulayamadı. Tek tıkla iyileştirmeden önce manuel inceleme gerekli.", + "manualReviewRequired": "Analiz manuel inceleme öneriyor, bu yüzden tek tıkla iyileştirme kullanılamıyor.", + "monitorRequired": "Analiz, PR açmak yerine izlemeyi öneriyor.", + "triageOnly": "Yalnızca triyaj tamamlandı. İyileştirmeyi başlatmadan önce kod tabanı analizini çalıştırın.", + "actionNotConcrete": "Somut bir bağımlılık yaması veya önerilen düzeltme mevcut değil.", + "remediationActive": "Zaten etkin bir iyileştirme denemesi var.", + "prAlreadyOpened": "Bir iyileştirme PR'ı zaten açık.", + "duplicateAnalysisResult": "Bu analiz sonucu zaten iyileştirme çalışması üretti.", + "retryNotAllowed": "Bu deneme için yeniden deneme mevcut değil.", + "securityAgentDisabled": "Security Agent bu sahip için devre dışı.", + "autoRemediationDisabled": "Otomatik İyileştirme devre dışı. Güvenlik kapıları geçtiğinde manuel iyileştirme yine de başlayabilir.", + "includeExistingDisabled": "Mevcut bulgular otomatik iyileştirmenin dışında tutulur.", + "belowThreshold": "Bulgu, otomatik önem derecesi eşiğinin altında. Güvenlik kapıları geçtiğinde manuel iyileştirme yine de başlayabilir.", + "beforeEnablement": "Analiz, Otomatik İyileştirme etkinleştirilmeden önce tamamlandı. Güvenlik kapıları geçtiğinde manuel iyileştirme yine de başlayabilir.", + "generic": "Bu bulgu için iyileştirme kullanılamıyor." } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "İncelemeyi gönder", "partialPostedMessage": "{{displayFreshCount}} yorum gönderildi. {{displayStaleCount}} yorum daha eski bir commit'e işaret ediyor ve kuyruğunuzda kaldı.", "submitCountOfTotal": "{{displayTotalCount}} yorumun {{displayFreshCount}} tanesini gönder", - "submitReview": "İncelemeyi gönder" + "submitReview": "İncelemeyi gönder", + "blockedRequestChanges": "Değişiklik istemek için bir özet veya en az bir yorum ekleyin.", + "blockedComment": "Yorum incelemesi göndermek için bir özet veya en az bir yorum ekleyin." }, "fileStatus": { "added": "Eklendi", diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 3eb9caa271..2cd78f487b 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -943,7 +943,16 @@ "set": "Встановлено" }, "updateFailed": "Не вдалося оновити рев'ювера", - "configSaveFailed": "Не вдалося зберегти конфігурацію огляду" + "configSaveFailed": "Не вдалося зберегти конфігурацію огляду", + "status": { + "pending": "Очікує", + "queued": "У черзі", + "running": "Виконується", + "completed": "Завершено", + "failed": "Не вдалося", + "cancelled": "Скасовано", + "interrupted": "Перервано" + } }, "securityAgent": { "filter": { @@ -1191,7 +1200,17 @@ "unknown": "Невідомо", "updated": "Оновлено", "viewAdvisory": "Переглянути рекомендацію на GitHub", - "vulnerableVersions": "Уразливі версії" + "vulnerableVersions": "Уразливі версії", + "statusSuperseded": "Замінено", + "statusFixed": "Виправлено", + "statusOpen": "Відкрито", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "виправлення вже розпочато", + "reasonNoBandwidth": "немає доступних ресурсів", + "reasonTolerableRisk": "ризик прийнятний", + "reasonInaccurate": "знахідка неточна", + "reasonNotUsed": "уразливий код не використовується", + "reasonAfterReview": "після перевірки" }, "findingList": { "clearFilters": "Очистити фільтри", @@ -1376,6 +1395,111 @@ "syncInProgress": "Синхронізація безпеки вже триває. Спробуйте ще раз.", "dismissalInProgress": "Це відхилення вже триває. Спробуйте ще раз.", "couldNotReadPendingSyncs": "Не вдалося прочитати синхронізації, що очікують. Спробуйте ще раз." + }, + "analysisState": { + "queued": "Аналіз у черзі", + "queuedTitle": "Аналіз у черзі", + "queuedDescription": "Очікування на доступність потужності аналізу.", + "analyzing": "Аналізується", + "analyzingTitle": "Аналізується", + "analyzingDescription": "Перевірка, чи може код застосунку досягти враженої функції.", + "failed": "Аналіз не вдався", + "failedTitle": "Аналіз не вдався", + "failedDescription": "Агент безпеки не зміг завершити аналіз.", + "extractionFailed": "Потребує перевірки", + "extractionFailedTitle": "Потребує перевірки", + "extractionFailedDescription": "Технічний звіт не вдалося перетворити на структурований результат.", + "exploitable": "Експлуатований", + "exploitableTitle": "Експлуатований", + "exploitableDescription": "Код застосунку може досягти враженої функції.", + "notExploitable": "Недосяжний", + "notExploitableTitle": "Недосяжний", + "notExploitableDescription": "У цьому репозиторії не знайдено досяжного шляху.", + "unknown": "Потребує перевірки", + "unknownTitle": "Потребує перевірки", + "unknownDescription": "Аналіз не зміг підтвердити, чи вражена функція досяжна.", + "safeToDismiss": "Безпечно відхилити", + "safeToDismissTitle": "Безпечно відхилити", + "safeToDismissDescription": "Тріаж визначив, що це можна безпечно відхилити без аналізу кодової бази.", + "manualReview": "Потребує перевірки", + "manualReviewTitle": "Потребує ручної перевірки", + "manualReviewDescription": "Тріаж позначив цю знахідку для ручної перевірки.", + "analysisRequired": "Потрібен аналіз", + "analysisRequiredTitle": "Потрібен аналіз кодової бази", + "analysisRequiredDescription": "Тріаж рекомендує проаналізувати репозиторій перед прийняттям рішення про відповідь.", + "completed": "Проаналізовано", + "completedTitle": "Проаналізовано", + "completedDescription": "Аналіз завершено без зафіксованого конкретного результату.", + "notAnalyzed": "Не проаналізовано", + "notAnalyzedTitle": "Не проаналізовано", + "notAnalyzedDescription": "Аналіз кодової бази для цієї знахідки ще не виконувався." + }, + "deadline": { + "fixedBeforeDeadline": "Виправлено до терміну", + "fixed": "Виправлено", + "fixedOn": "Виправлено {{date}}", + "resolutionRecorded": "Рішення зафіксовано", + "superseded": "Замінено", + "dismissed": "Відхилено", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Термін не встановлено", + "noSlaDeadline": "Терміну SLA немає", + "dueOn": "Термін: {{date}}", + "overdueNow": "Прострочено", + "overdue_one": "прострочено на {{count}} день", + "overdue_few": "прострочено на {{count}} дні", + "overdue_many": "прострочено на {{count}} днів", + "overdue_other": "прострочено на {{count}} днів", + "dueToday": "Термін сьогодні", + "dueTomorrow": "Термін завтра", + "dueInDays_one": "термін через {{count}} день", + "dueInDays_few": "термін через {{count}} дні", + "dueInDays_many": "термін через {{count}} днів", + "dueInDays_other": "термін через {{count}} днів", + "overdue": "прострочено на {{count}} днів", + "dueInDays": "термін через {{count}} днів" + }, + "remediationStatus": { + "cancellationRequested": "Запит на скасування", + "notStarted": "Не розпочато", + "queued": "У черзі", + "starting": "Запуск", + "inProgress": "Виконується", + "draftPrOpened": "Чернетку PR відкрито", + "prOpened": "PR відкрито", + "blocked": "Заблоковано", + "failed": "Не вдалося", + "noChangesNeeded": "Зміни не потрібні", + "cancelled": "Скасовано", + "originAutomaticPolicy": "Автоматична політика", + "originIncludeExistingPolicy": "Включити наявну політику", + "originManual": "Вручну", + "validationCheck": "Перевірка валідності {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Знахідки безпеки більше не існує.", + "approvalRequired": "Автоусунення потребує схвалення. Запустіть усунення вручну, щоб схвалити його.", + "findingNotOpen": "Знахідку більше не відкрито.", + "repoNotInScope": "Репозиторій не вибрано для Агента безпеки.", + "analysisRequired": "Запустіть аналіз кодової бази перед початком усунення.", + "sandboxAnalysisRequired": "Запустіть аналіз кодової бази перед початком усунення.", + "staleAnalysis": "Знахідка змінилася після аналізу. Повторно запустіть аналіз перед початком усунення.", + "notExploitable": "Аналіз не знайшов досяжного вразливого шляху. Автоусунення недоступне.", + "exploitabilityUnknown": "Аналіз не зміг підтвердити експлуатованість. Перед усуненням одним кліком потрібна ручна перевірка.", + "manualReviewRequired": "Аналіз рекомендує ручну перевірку, тому усунення одним кліком недоступне.", + "monitorRequired": "Аналіз рекомендує моніторинг замість відкриття PR.", + "triageOnly": "Завершено лише тріаж. Запустіть аналіз кодової бази перед початком усунення.", + "actionNotConcrete": "Немає конкретного патча залежності чи запропонованого виправлення.", + "remediationActive": "Спроба усунення вже активна.", + "prAlreadyOpened": "PR усунення вже відкрито.", + "duplicateAnalysisResult": "Цей результат аналізу вже створив роботу з усунення.", + "retryNotAllowed": "Повторення недоступне для цієї спроби.", + "securityAgentDisabled": "Агента безпеки вимкнено для цього власника.", + "autoRemediationDisabled": "Автоусунення вимкнено. Ручне усунення все ще можна запустити, коли перевірки безпеки пройдуть.", + "includeExistingDisabled": "Наявні знахідки виключено з автоматичного усунення.", + "belowThreshold": "Знахідка нижча за поріг автоматичної серйозності. Ручне усунення все ще можна запустити, коли перевірки безпеки пройдуть.", + "beforeEnablement": "Аналіз завершено до увімкнення Автоусунення. Ручне усунення все ще можна запустити, коли перевірки безпеки пройдуть.", + "generic": "Усунення недоступне для цієї знахідки." } }, "agents": { @@ -2675,7 +2799,9 @@ "submitCountOfTotal": "Надіслати {{displayFreshCount}} із {{displayTotalCount}} коментарів", "submitReview": "Надіслати перевірку", "pendingComment_few": "відкладених коментарі", - "pendingComment_many": "відкладених коментарів" + "pendingComment_many": "відкладених коментарів", + "blockedRequestChanges": "Додайте підсумок або принаймні один коментар, щоб запитати зміни.", + "blockedComment": "Додайте підсумок або принаймні один коментар, щоб надіслати перевірку як коментар." }, "fileStatus": { "added": "Додано", diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 1e19b424c0..275429a78c 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -512,7 +512,9 @@ "pendingComment_other": "زیر التوا تبصرے", "submitCountOfTotal": "{{displayTotalCount}} میں سے {{displayFreshCount}} تبصرے جمع کریں", "submitReview": "جائزہ جمع کریں", - "partialPostedMessage": "{{displayFreshCount}} تبصرہ(ے) پوسٹ ہوئے۔ {{displayStaleCount}} تبصرہ(ے) پرانی کمیٹ کی طرف اشارہ کرتے ہیں اور آپ کی قطار میں رہے۔" + "partialPostedMessage": "{{displayFreshCount}} تبصرہ(ے) پوسٹ ہوئے۔ {{displayStaleCount}} تبصرہ(ے) پرانی کمیٹ کی طرف اشارہ کرتے ہیں اور آپ کی قطار میں رہے۔", + "blockedRequestChanges": "تبدیلیوں کی درخواست کرنے کے لیے خلاصہ یا کم از کم ایک تبصرہ شامل کریں۔", + "blockedComment": "تبصرہ جائزہ پوسٹ کرنے کے لیے خلاصہ یا کم از کم ایک تبصرہ شامل کریں۔" }, "reconnectNotice": { "title": "GitHub کنکشن ختم ہو گیا", @@ -1376,7 +1378,16 @@ }, "eyebrow": "کوڈ ریویور", "updateFailed": "ریویور اپ ڈیٹ نہیں ہو سکا", - "configSaveFailed": "جائزہ کنفیگریشن محفوظ نہیں ہو سکی" + "configSaveFailed": "جائزہ کنفیگریشن محفوظ نہیں ہو سکی", + "status": { + "pending": "زیر التوا", + "queued": "قطار میں", + "running": "چل رہا ہے", + "completed": "مکمل ہوا", + "failed": "ناکام", + "cancelled": "منسوخ", + "interrupted": "روک دیا گیا" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "ماخذ ریکارڈ", "source": "ماخذ", "sourceId": "ماخذ ID", - "viewAdvisory": "GitHub پر مشورہ دیکھیں" + "viewAdvisory": "GitHub پر مشورہ دیکھیں", + "statusSuperseded": "تبدیل شدہ", + "statusFixed": "طے شدہ", + "statusOpen": "کھلا", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "اصلاح پہلے ہی شروع ہو چکی ہے", + "reasonNoBandwidth": "کوئی گنجائش دستیاب نہیں", + "reasonTolerableRisk": "خطرہ قابلِ برداشت ہے", + "reasonInaccurate": "نتیجہ غلط ہے", + "reasonNotUsed": "کمزور کوڈ استعمال نہیں ہوتا", + "reasonAfterReview": "جائزے کے بعد" }, "settingsOverview": { "title": "ترتیبات", @@ -1805,6 +1826,107 @@ "syncInProgress": "ایک سیکورٹی مطابقت پہلے سے جاری ہے۔ براہ کرم دوبارہ کوشش کریں۔", "dismissalInProgress": "یہ خارج کرنا پہلے سے جاری ہے۔ براہ کرم دوبارہ کوشش کریں۔", "couldNotReadPendingSyncs": "زیر التوا مطابقت پڑھی نہیں جا سکی۔ دوبارہ کوشش کریں۔" + }, + "analysisState": { + "queued": "تجزیہ قطار میں ہے", + "queuedTitle": "تجزیہ قطار میں ہے", + "queuedDescription": "تجزیہ کی گنجائش دستیاب ہونے کا انتظار کیا جا رہا ہے۔", + "analyzing": "تجزیہ ہو رہا ہے", + "analyzingTitle": "تجزیہ ہو رہا ہے", + "analyzingDescription": "یہ چیک کیا جا رہا ہے کہ آیا ایپلیکیشن کوڈ متاثرہ فیچر تک پہنچ سکتا ہے۔", + "failed": "تجزیہ ناکام", + "failedTitle": "تجزیہ ناکام", + "failedDescription": "سیکیورٹی ایجنٹ تجزیہ مکمل نہیں کر سکا۔", + "extractionFailed": "جائزے کی ضرورت ہے", + "extractionFailedTitle": "جائزے کی ضرورت ہے", + "extractionFailedDescription": "تکنیکی رپورٹ کو منظم نتیجے میں تبدیل نہیں کیا جا سکا۔", + "exploitable": "قابلِ استحصال", + "exploitableTitle": "قابلِ استحصال", + "exploitableDescription": "ایپلیکیشن کوڈ متاثرہ فیچر تک پہنچ سکتا ہے۔", + "notExploitable": "ناقابل رسائی", + "notExploitableTitle": "ناقابل رسائی", + "notExploitableDescription": "اس ریپوزٹری میں کوئی قابلِ رسائی راستہ نہیں ملا۔", + "unknown": "جائزے کی ضرورت ہے", + "unknownTitle": "جائزے کی ضرورت ہے", + "unknownDescription": "تجزیہ اس بات کی تصدیق نہیں کر سکا کہ آیا کمزور فیچر قابلِ رسائی ہے۔", + "safeToDismiss": "مسترد کرنا محفوظ", + "safeToDismissTitle": "مسترد کرنا محفوظ", + "safeToDismissDescription": "چھانٹی نے طے کیا کہ اسے کوڈبیس تجزیے کے بغیر محفوظ طریقے سے مسترد کیا جا سکتا ہے۔", + "manualReview": "جائزے کی ضرورت ہے", + "manualReviewTitle": "دستی جائزے کی ضرورت ہے", + "manualReviewDescription": "چھانٹی نے اس نتیجے کو دستی جائزے کے لیے نشان زد کیا۔", + "analysisRequired": "تجزیہ درکار ہے", + "analysisRequiredTitle": "کوڈبیس تجزیہ درکار ہے", + "analysisRequiredDescription": "چھانٹی تجویز کرتی ہے کہ جواب طے کرنے سے پہلے ریپوزٹری کا تجزیہ کریں۔", + "completed": "تجزیہ کیا گیا", + "completedTitle": "تجزیہ کیا گیا", + "completedDescription": "تجزیہ کسی خاص نتیجے کے بغیر مکمل ہوا۔", + "notAnalyzed": "تجزیہ نہیں کیا گیا", + "notAnalyzedTitle": "تجزیہ نہیں کیا گیا", + "notAnalyzedDescription": "اس نتیجے کے لیے ابھی کوڈبیس تجزیہ نہیں چلایا گیا۔" + }, + "deadline": { + "fixedBeforeDeadline": "آخری تاریخ سے پہلے طے کیا گیا", + "fixed": "طے شدہ", + "fixedOn": "{{date}} کو طے کیا گیا", + "resolutionRecorded": "حل درج کیا گیا", + "superseded": "تبدیل شدہ", + "dismissed": "مسترد کیا گیا", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "آخری تاریخ مقرر نہیں", + "noSlaDeadline": "کوئی SLA آخری تاریخ نہیں", + "dueOn": "مقررہ تاریخ: {{date}}", + "overdueNow": "تاخیر شدہ", + "overdue_one": "{{count}} دن تاخیر شدہ", + "overdue_other": "{{count}} دن تاخیر شدہ", + "dueToday": "آج آخری تاریخ", + "dueTomorrow": "کل آخری تاریخ", + "dueInDays_one": "{{count}} دن میں مقرر", + "dueInDays_other": "{{count}} دن میں مقرر", + "overdue": "{{count}} دن تاخیر شدہ", + "dueInDays": "{{count}} دن میں مقرر" + }, + "remediationStatus": { + "cancellationRequested": "منسوخی کی درخواست کی گئی", + "notStarted": "شروع نہیں ہوا", + "queued": "قطار میں", + "starting": "شروع ہو رہا ہے", + "inProgress": "جاری ہے", + "draftPrOpened": "ڈرافٹ PR کھولا گیا", + "prOpened": "PR کھولا گیا", + "blocked": "مسدود", + "failed": "ناکام", + "noChangesNeeded": "کوئی تبدیلی درکار نہیں", + "cancelled": "منسوخ", + "originAutomaticPolicy": "خودکار پالیسی", + "originIncludeExistingPolicy": "موجودہ پالیسی شامل کریں", + "originManual": "دستی", + "validationCheck": "تصدیقی جانچ {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "سیکیورٹی نتیجہ اب موجود نہیں۔", + "approvalRequired": "آٹو اصلاح کے لیے منظوری درکار ہے۔ اسے منظور کرنے کے لیے اصلاح دستی طور پر شروع کریں۔", + "findingNotOpen": "نتیجہ اب کھلا نہیں ہے۔", + "repoNotInScope": "ریپوزٹری سیکیورٹی ایجنٹ کے لیے منتخب نہیں ہے۔", + "analysisRequired": "اصلاح شروع کرنے سے پہلے کوڈبیس تجزیہ چلائیں۔", + "sandboxAnalysisRequired": "اصلاح شروع کرنے سے پہلے کوڈبیس تجزیہ چلائیں۔", + "staleAnalysis": "تجزیے کے بعد نتیجہ تبدیل ہو گیا۔ اصلاح شروع کرنے سے پہلے تجزیہ دوبارہ چلائیں۔", + "notExploitable": "تجزیے کو کوئی قابلِ رسائی کمزور راستہ نہیں ملا۔ آٹو اصلاح دستیاب نہیں۔", + "exploitabilityUnknown": "تجزیہ استحصالیت کی تصدیق نہیں کر سکا۔ ون کلک اصلاح سے پہلے دستی جائزہ درکار ہے۔", + "manualReviewRequired": "تجزیہ دستی جائزے کی تجویز دیتا ہے، اس لیے ون کلک اصلاح دستیاب نہیں۔", + "monitorRequired": "تجزیہ PR کھولنے کے بجائے نگرانی کی تجویز دیتا ہے۔", + "triageOnly": "صرف چھانٹی مکمل ہوئی ہے۔ اصلاح شروع کرنے سے پہلے کوڈبیس تجزیہ چلائیں۔", + "actionNotConcrete": "کوئی ٹھوس ڈیپینڈنسی پیچ یا تجویز کردہ اصلاح دستیاب نہیں۔", + "remediationActive": "اصلاح کی ایک کوشش پہلے سے جاری ہے۔", + "prAlreadyOpened": "ایک اصلاحی PR پہلے سے کھلا ہے۔", + "duplicateAnalysisResult": "اس تجزیے کے نتیجے نے پہلے ہی اصلاح کا کام پیدا کیا۔", + "retryNotAllowed": "اس کوشش کے لیے دوبارہ کوشش دستیاب نہیں۔", + "securityAgentDisabled": "سیکیورٹی ایجنٹ اس مالک کے لیے غیر فعال ہے۔", + "autoRemediationDisabled": "آٹو اصلاح غیر فعال ہے۔ حفاظتی گیٹس پاس ہونے پر دستی اصلاح پھر بھی شروع ہو سکتی ہے۔", + "includeExistingDisabled": "موجودہ نتائج خودکار اصلاح سے خارج ہیں۔", + "belowThreshold": "نتیجہ خودکار شدت کی حد سے نیچے ہے۔ حفاظتی گیٹس پاس ہونے پر دستی اصلاح پھر بھی شروع ہو سکتی ہے۔", + "beforeEnablement": "آٹو اصلاح فعال ہونے سے پہلے تجزیہ مکمل ہوا۔ حفاظتی گیٹس پاس ہونے پر دستی اصلاح پھر بھی شروع ہو سکتی ہے۔", + "generic": "اس نتیجے کے لیے اصلاح دستیاب نہیں۔" } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index bf1271fb3f..851d095d4f 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -512,7 +512,9 @@ "pendingComment_other": "kutilayotgan izohlar", "submitCountOfTotal": "{{displayTotalCount}} izohdan {{displayFreshCount}} tasini yuborish", "submitReview": "Sharhni yuborish", - "partialPostedMessage": "{{displayFreshCount}} izoh yuborildi. {{displayStaleCount}} izoh eski commitga tegishli bo'lib, navbatingizda qoldi." + "partialPostedMessage": "{{displayFreshCount}} izoh yuborildi. {{displayStaleCount}} izoh eski commitga tegishli bo'lib, navbatingizda qoldi.", + "blockedRequestChanges": "O'zgarishlarni so'rash uchun xulosa yoki kamida bitta izoh qo'shing.", + "blockedComment": "Izoh sharhini yuborish uchun xulosa yoki kamida bitta izoh qo'shing." }, "reconnectNotice": { "title": "GitHub ulanishi muddati tugadi", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Kod ko'rib chiquvchisi", "updateFailed": "Sharhlovchini yangilab bo'lmadi", - "configSaveFailed": "Sharh konfiguratsiyasini saqlab bo'lmadi" + "configSaveFailed": "Sharh konfiguratsiyasini saqlab bo'lmadi", + "status": { + "pending": "Kutilmoqda", + "queued": "Navbatga qo'yildi", + "running": "Ishlamoqda", + "completed": "Yakunlangan", + "failed": "Amalga oshmadi", + "cancelled": "Bekor qilindi", + "interrupted": "Uzildi" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Manba yozuvi", "source": "Manba", "sourceId": "Manba identifikatori", - "viewAdvisory": "GitHub'da maslahatni ko'rish" + "viewAdvisory": "GitHub'da maslahatni ko'rish", + "statusSuperseded": "Almashtirildi", + "statusFixed": "Tuzatildi", + "statusOpen": "Ochiq", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "tuzatish allaqachon boshlangan", + "reasonNoBandwidth": "bo'sh imkoniyat yo'q", + "reasonTolerableRisk": "xavf qabul qilinadigan", + "reasonInaccurate": "natija noto'g'ri", + "reasonNotUsed": "zaif kod ishlatilmayapti", + "reasonAfterReview": "ko'rib chiqishdan keyin" }, "settingsOverview": { "title": "Sozlamalar", @@ -1805,6 +1826,107 @@ "syncInProgress": "Xavfsizlik sinxronlashuvi allaqachon davom etmoqda. Iltimos, qayta urinib ko'ring.", "dismissalInProgress": "Bu rad etish allaqachon davom etmoqda. Iltimos, qayta urinib ko'ring.", "couldNotReadPendingSyncs": "Kutilayotgan sinxronlashuvlarni o'qib bo'lmadi. Qayta urinib ko'ring." + }, + "analysisState": { + "queued": "Tahlil navbatga qo'yildi", + "queuedTitle": "Tahlil navbatga qo'yildi", + "queuedDescription": "Tahlil sig'imi bo'shashini kutish.", + "analyzing": "Tahlil qilinmoqda", + "analyzingTitle": "Tahlil qilinmoqda", + "analyzingDescription": "Ilova kodi ta'sirlangan funksiyaga yeta oladimi, tekshirilmoqda.", + "failed": "Tahlil amalga oshmadi", + "failedTitle": "Tahlil amalga oshmadi", + "failedDescription": "Security Agent tahlilni yakunlay olmadi.", + "extractionFailed": "Ko'rib chiqish kerak", + "extractionFailedTitle": "Ko'rib chiqish kerak", + "extractionFailedDescription": "Texnik hisobotni tuzilgan natijaga aylantirib bo'lmadi.", + "exploitable": "Ekspluatatsiya qilinadigan", + "exploitableTitle": "Ekspluatatsiya qilinadigan", + "exploitableDescription": "Ilova kodi ta'sirlangan funksiyaga yeta oladi.", + "notExploitable": "Ekspluatatsiya qilinmaydigan", + "notExploitableTitle": "Ekspluatatsiya qilinmaydigan", + "notExploitableDescription": "Bu repozitoriyada erishish mumkin bo'lgan yo'l topilmadi.", + "unknown": "Ko'rib chiqish kerak", + "unknownTitle": "Ko'rib chiqish kerak", + "unknownDescription": "Tahlil zaif funksiyaga erishish mumkinligini tasdiqlay olmadi.", + "safeToDismiss": "Rad etish xavfsiz", + "safeToDismissTitle": "Rad etish xavfsiz", + "safeToDismissDescription": "Triage kod bazasi tahlilisiz buni xavfsiz rad etish mumkinligini aniqladi.", + "manualReview": "Ko'rib chiqish kerak", + "manualReviewTitle": "Qo'lda ko'rib chiqish kerak", + "manualReviewDescription": "Triage bu natijani qo'lda ko'rib chiqish uchun belgiladi.", + "analysisRequired": "Tahlil talab qilinadi", + "analysisRequiredTitle": "Kod bazasi tahlili talab qilinadi", + "analysisRequiredDescription": "Triage javob berishdan oldin repozitoriyani tahlil qilishni tavsiya qiladi.", + "completed": "Tahlil qilingan", + "completedTitle": "Tahlil qilingan", + "completedDescription": "Tahlil aniq natija qayd etilmagan holda yakunlandi.", + "notAnalyzed": "Tahlil qilinmagan", + "notAnalyzedTitle": "Tahlil qilinmagan", + "notAnalyzedDescription": "Bu natija uchun kod bazasi tahlili hali ishga tushirilmagan." + }, + "deadline": { + "fixedBeforeDeadline": "Muddatdan oldin tuzatildi", + "fixed": "Tuzatildi", + "fixedOn": "{{date}} da tuzatildi", + "resolutionRecorded": "Qaror qayd etildi", + "superseded": "Almashtirildi", + "dismissed": "Rad etilgan", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Muddat belgilanmagan", + "noSlaDeadline": "SLA muddati belgilanmagan", + "dueOn": "Muddati {{date}}", + "overdueNow": "Muddati o'tgan", + "overdue_one": "{{count}} kun kechikdi", + "overdue_other": "{{count}} kun kechikdi", + "dueToday": "Muddati bugun", + "dueTomorrow": "Muddati ertaga", + "dueInDays_one": "{{count}} kun ichida", + "dueInDays_other": "{{count}} kun ichida", + "overdue": "{{count}} kun kechikdi", + "dueInDays": "{{count}} kun ichida" + }, + "remediationStatus": { + "cancellationRequested": "Bekor qilish so'raldi", + "notStarted": "Boshlanmagan", + "queued": "Navbatga qo'yildi", + "starting": "Boshlanmoqda", + "inProgress": "Davom etmoqda", + "draftPrOpened": "Qoralama PR ochildi", + "prOpened": "PR ochildi", + "blocked": "Bloklandi", + "failed": "Amalga oshmadi", + "noChangesNeeded": "O'zgarishlar kerak emas", + "cancelled": "Bekor qilindi", + "originAutomaticPolicy": "Avtomatik siyosat", + "originIncludeExistingPolicy": "Mavjud siyosatni qo'shish", + "originManual": "Qo'lda", + "validationCheck": "Validatsiya tekshiruvi {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Xavfsizlik natijasi endi mavjud emas.", + "approvalRequired": "Avto tuzatish tasdiqlashni talab qiladi. Tasdiqlash uchun bartaraf etishni qo'lda boshlang.", + "findingNotOpen": "Natija endi ochiq emas.", + "repoNotInScope": "Repozitoriya Security Agent uchun tanlanmagan.", + "analysisRequired": "Bartaraf etishni boshlashdan oldin kod bazasi tahlilini ishga tushiring.", + "sandboxAnalysisRequired": "Bartaraf etishni boshlashdan oldin kod bazasi tahlilini ishga tushiring.", + "staleAnalysis": "Natija tahlildan keyin o'zgardi. Bartaraf etishni boshlashdan oldin tahlilni qayta ishga tushiring.", + "notExploitable": "Tahlil erishish mumkin bo'lgan zaif yo'l topmadi. Avto tuzatish mavjud emas.", + "exploitabilityUnknown": "Tahlil foydalanish imkoniyatini tasdiqlay olmadi. Bir marta bosish bilan bartaraf etishdan oldin qo'lda ko'rib chiqish talab qilinadi.", + "manualReviewRequired": "Tahlil qo'lda ko'rib chiqishni tavsiya qiladi, shuning uchun bir marta bosish bilan bartaraf etish mavjud emas.", + "monitorRequired": "Tahlil PR ochish o'rniga monitoringni tavsiya qiladi.", + "triageOnly": "Faqat triage yakunlandi. Bartaraf etishni boshlashdan oldin kod bazasi tahlilini ishga tushiring.", + "actionNotConcrete": "Aniq bog'liqlik yamog'i yoki tavsiya etilgan tuzatish mavjud emas.", + "remediationActive": "Bartaraf etish urinishi allaqachon faol.", + "prAlreadyOpened": "Bartaraf etish PRi allaqachon ochiq.", + "duplicateAnalysisResult": "Bu tahlil natijasi allaqachon bartaraf etish ishini yaratdi.", + "retryNotAllowed": "Bu urinish uchun qayta urinish mavjud emas.", + "securityAgentDisabled": "Security Agent bu egasi uchun o'chirilgan.", + "autoRemediationDisabled": "Avto tuzatish o'chirilgan. Xavfsizlik shlyuzlari o'tganda qo'lda bartaraf etish hali ham boshlanishi mumkin.", + "includeExistingDisabled": "Mavjud natijalar avtomatik bartaraf etishdan chiqarib tashlangan.", + "belowThreshold": "Natija avtomatik jiddiylik chegarasidan past. Xavfsizlik shlyuzlari o'tganda qo'lda bartaraf etish hali ham boshlanishi mumkin.", + "beforeEnablement": "Tahlil Avto tuzatish yoqilishidan oldin yakunlandi. Xavfsizlik shlyuzlari o'tganda qo'lda bartaraf etish hali ham boshlanishi mumkin.", + "generic": "Bartaraf etish ushbu natija uchun mavjud emas." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index 71cd3d09f0..7d8fd4a9f8 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -939,7 +939,16 @@ "set": "Đặt" }, "updateFailed": "Không thể cập nhật người xem xét", - "configSaveFailed": "Không thể lưu cấu hình đánh giá" + "configSaveFailed": "Không thể lưu cấu hình đánh giá", + "status": { + "pending": "Đang chờ", + "queued": "Đã xếp hàng", + "running": "Đang chạy", + "completed": "Đã hoàn tất", + "failed": "Thất bại", + "cancelled": "Đã hủy", + "interrupted": "Đã bị gián đoạn" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "Không xác định", "updated": "Đã cập nhật", "viewAdvisory": "Xem cảnh báo trên GitHub", - "vulnerableVersions": "Phiên bản dễ bị tấn công" + "vulnerableVersions": "Phiên bản dễ bị tấn công", + "statusSuperseded": "Đã được thay thế", + "statusFixed": "Đã sửa", + "statusOpen": "Đang mở", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "bản sửa đã bắt đầu", + "reasonNoBandwidth": "không có nguồn lực khả dụng", + "reasonTolerableRisk": "rủi ro có thể chấp nhận được", + "reasonInaccurate": "phát hiện không chính xác", + "reasonNotUsed": "mã dễ bị tấn công không được sử dụng", + "reasonAfterReview": "sau khi xem xét" }, "findingList": { "clearFilters": "Xóa bộ lọc", @@ -1368,6 +1387,107 @@ "syncInProgress": "Đã có đồng bộ bảo mật đang diễn ra. Vui lòng thử lại.", "dismissalInProgress": "Việc bỏ qua này đang được xử lý. Vui lòng thử lại.", "couldNotReadPendingSyncs": "Không thể đọc các lần đồng bộ đang chờ. Thử lại." + }, + "analysisState": { + "queued": "Đã xếp hàng phân tích", + "queuedTitle": "Đã xếp hàng phân tích", + "queuedDescription": "Đang chờ dung lượng phân tích khả dụng.", + "analyzing": "Đang phân tích", + "analyzingTitle": "Đang phân tích", + "analyzingDescription": "Đang kiểm tra xem mã ứng dụng có thể đến được tính năng bị ảnh hưởng hay không.", + "failed": "Phân tích thất bại", + "failedTitle": "Phân tích thất bại", + "failedDescription": "Security Agent không thể hoàn tất phân tích.", + "extractionFailed": "Cần xem xét", + "extractionFailedTitle": "Cần xem xét", + "extractionFailedDescription": "Không thể chuyển báo cáo kỹ thuật thành kết quả có cấu trúc.", + "exploitable": "Có thể khai thác", + "exploitableTitle": "Có thể khai thác", + "exploitableDescription": "Mã ứng dụng có thể đến được tính năng bị ảnh hưởng.", + "notExploitable": "Không thể khai thác", + "notExploitableTitle": "Không thể khai thác", + "notExploitableDescription": "Không tìm thấy đường dẫn nào có thể tiếp cận trong kho lưu trữ này.", + "unknown": "Cần xem xét", + "unknownTitle": "Cần xem xét", + "unknownDescription": "Phân tích không thể xác nhận liệu tính năng dễ bị tấn công có thể tiếp cận được hay không.", + "safeToDismiss": "An toàn để bỏ qua", + "safeToDismissTitle": "An toàn để bỏ qua", + "safeToDismissDescription": "Quá trình phân loại xác định điều này có thể được bỏ qua một cách an toàn mà không cần phân tích mã nguồn.", + "manualReview": "Cần xem xét", + "manualReviewTitle": "Cần xem xét thủ công", + "manualReviewDescription": "Quá trình phân loại đã đánh dấu phát hiện này để xem xét thủ công.", + "analysisRequired": "Cần phân tích", + "analysisRequiredTitle": "Cần phân tích mã nguồn", + "analysisRequiredDescription": "Quá trình phân loại khuyến nghị phân tích kho lưu trữ trước khi quyết định phản hồi.", + "completed": "Đã phân tích", + "completedTitle": "Đã phân tích", + "completedDescription": "Phân tích đã hoàn tất mà không ghi nhận kết quả cụ thể nào.", + "notAnalyzed": "Chưa phân tích", + "notAnalyzedTitle": "Chưa phân tích", + "notAnalyzedDescription": "Phân tích mã nguồn chưa chạy cho phát hiện này." + }, + "deadline": { + "fixedBeforeDeadline": "Đã sửa trước hạn chót", + "fixed": "Đã sửa", + "fixedOn": "Đã sửa vào {{date}}", + "resolutionRecorded": "Đã ghi nhận giải pháp", + "superseded": "Đã được thay thế", + "dismissed": "Đã bỏ qua", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Chưa đặt hạn chót", + "noSlaDeadline": "Chưa gán hạn chót SLA", + "dueOn": "Đến hạn {{date}}", + "overdueNow": "Quá hạn", + "overdue_other": "Quá hạn {{count}} ngày", + "dueToday": "Đến hạn hôm nay", + "dueTomorrow": "Đến hạn ngày mai", + "dueInDays_other": "Đến hạn trong {{count}} ngày", + "overdue": "Quá hạn {{count}} ngày", + "overdue_one": "Quá hạn {{count}} ngày", + "dueInDays": "Đến hạn trong {{count}} ngày", + "dueInDays_one": "Đến hạn trong {{count}} ngày" + }, + "remediationStatus": { + "cancellationRequested": "Đã yêu cầu hủy", + "notStarted": "Chưa bắt đầu", + "queued": "Đã xếp hàng", + "starting": "Đang bắt đầu", + "inProgress": "Đang tiến hành", + "draftPrOpened": "Đã mở PR nháp", + "prOpened": "PR đã mở", + "blocked": "Bị chặn", + "failed": "Thất bại", + "noChangesNeeded": "Không cần thay đổi", + "cancelled": "Đã hủy", + "originAutomaticPolicy": "Chính sách tự động", + "originIncludeExistingPolicy": "Bao gồm chính sách hiện có", + "originManual": "Thủ công", + "validationCheck": "Kiểm tra xác thực {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Phát hiện bảo mật không còn tồn tại.", + "approvalRequired": "Tự động khắc phục cần được phê duyệt. Hãy bắt đầu khắc phục thủ công để phê duyệt.", + "findingNotOpen": "Phát hiện không còn mở.", + "repoNotInScope": "Kho lưu trữ chưa được chọn cho Security Agent.", + "analysisRequired": "Chạy phân tích mã nguồn trước khi bắt đầu khắc phục.", + "sandboxAnalysisRequired": "Chạy phân tích mã nguồn trước khi bắt đầu khắc phục.", + "staleAnalysis": "Phát hiện đã thay đổi sau khi phân tích. Chạy lại phân tích trước khi bắt đầu khắc phục.", + "notExploitable": "Phân tích không tìm thấy đường dẫn dễ bị tấn công nào có thể tiếp cận. Tự động khắc phục không khả dụng.", + "exploitabilityUnknown": "Phân tích không thể xác nhận khả năng khai thác. Cần xem xét thủ công trước khi khắc phục bằng một lần chạm.", + "manualReviewRequired": "Phân tích khuyến nghị xem xét thủ công, vì vậy không thể khắc phục bằng một lần chạm.", + "monitorRequired": "Phân tích khuyến nghị theo dõi thay vì mở PR.", + "triageOnly": "Chỉ mới hoàn tất phân loại. Chạy phân tích mã nguồn trước khi bắt đầu khắc phục.", + "actionNotConcrete": "Không có bản vá phụ thuộc cụ thể hoặc bản sửa đề xuất nào khả dụng.", + "remediationActive": "Đã có một lần khắc phục đang hoạt động.", + "prAlreadyOpened": "PR khắc phục đã mở.", + "duplicateAnalysisResult": "Kết quả phân tích này đã tạo công việc khắc phục.", + "retryNotAllowed": "Không thể thử lại cho lần này.", + "securityAgentDisabled": "Security Agent đã bị tắt cho chủ sở hữu này.", + "autoRemediationDisabled": "Tự động khắc phục đã bị tắt. Vẫn có thể bắt đầu khắc phục thủ công khi các cổng kiểm tra an toàn được thông qua.", + "includeExistingDisabled": "Các phát hiện hiện có bị loại khỏi quá trình khắc phục tự động.", + "belowThreshold": "Phát hiện dưới ngưỡng mức nghiêm trọng tự động. Vẫn có thể bắt đầu khắc phục thủ công khi các cổng kiểm tra an toàn được thông qua.", + "beforeEnablement": "Phân tích hoàn tất trước khi bật Tự động khắc phục. Vẫn có thể bắt đầu khắc phục thủ công khi các cổng kiểm tra an toàn được thông qua.", + "generic": "Không thể khắc phục cho phát hiện này." } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "Gửi đánh giá", "partialPostedMessage": "Đã đăng {{displayFreshCount}} bình luận. {{displayStaleCount}} bình luận trỏ đến commit cũ hơn và vẫn nằm trong hàng đợi của bạn.", "submitCountOfTotal": "Gửi {{displayFreshCount}} trong {{displayTotalCount}} bình luận", - "submitReview": "Gửi đánh giá" + "submitReview": "Gửi đánh giá", + "blockedRequestChanges": "Thêm tóm tắt hoặc ít nhất một bình luận để yêu cầu thay đổi.", + "blockedComment": "Thêm tóm tắt hoặc ít nhất một bình luận để gửi đánh giá dạng bình luận." }, "fileStatus": { "added": "Đã thêm", diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index 91ebb85dda..642727c4e0 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -512,7 +512,9 @@ "pendingComment_other": "awọn asọye idaduro", "submitCountOfTotal": "Fi {{displayFreshCount}} ti {{displayTotalCount}} awọn asọye silẹ", "submitReview": "Fi atunyẹwo silẹ", - "partialPostedMessage": "Fi {{displayFreshCount}} asọye silẹ. {{displayStaleCount}} asọye tọka si iṣẹ atijọ ati pe o wa ninu iṣẹ́ rẹ." + "partialPostedMessage": "Fi {{displayFreshCount}} asọye silẹ. {{displayStaleCount}} asọye tọka si iṣẹ atijọ ati pe o wa ninu iṣẹ́ rẹ.", + "blockedRequestChanges": "Fi akojopo tabi o kere ju asọye kan kun lati beere awọn ayipada.", + "blockedComment": "Fi akojopo tabi o kere ju asọye kan kun lati fi atunyẹwo asọye silẹ." }, "reconnectNotice": { "title": "Asopọ GitHub ti pari", @@ -1376,7 +1378,16 @@ }, "eyebrow": "Code Reviewer", "updateFailed": "Kùnà láti ṣe ìmúdọ̀tun alàyẹ̀wò", - "configSaveFailed": "Kùnà láti fipamọ́ ètò àtúnyẹ̀wò" + "configSaveFailed": "Kùnà láti fipamọ́ ètò àtúnyẹ̀wò", + "status": { + "pending": "Ti nduro", + "queued": "Ti wa ni ila", + "running": "Ti n ṣiṣẹ", + "completed": "Ti pari", + "failed": "Kuna", + "cancelled": "Ti fagilee", + "interrupted": "Ti da duro" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Igbasilẹ orisun", "source": "Orisun", "sourceId": "ID orisun", - "viewAdvisory": "Wo imọran lori GitHub" + "viewAdvisory": "Wo imọran lori GitHub", + "statusSuperseded": "Ti rọpo", + "statusFixed": "Ti ṣatunṣe", + "statusOpen": "Ṣí", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "Atunṣe kan ti bẹrẹ tẹlẹ", + "reasonNoBandwidth": "Ko si agbara to wa", + "reasonTolerableRisk": "Ewu naa le farada", + "reasonInaccurate": "Abawọn naa ko pe", + "reasonNotUsed": "Koodu alailagbara ko ni lilo", + "reasonAfterReview": "lẹhin atunyẹwo" }, "settingsOverview": { "title": "Eto", @@ -1805,6 +1826,107 @@ "syncInProgress": "Àmúṣọ̀kan ààbò ti ń lọ lọ́wọ́. Jọ̀wọ́ gbìyànjú lẹ́ẹ̀kan sí i.", "dismissalInProgress": "Fífò kúrò yìí ti ń lọ lọ́wọ́. Jọ̀wọ́ gbìyànjú lẹ́ẹ̀kan sí i.", "couldNotReadPendingSyncs": "Kò lè ka àwọn àmúṣọ̀kan tí ń dúró. Gbìyànjú lẹ́ẹ̀kan sí i." + }, + "analysisState": { + "queued": "Itupalẹ ti wa ni ila", + "queuedTitle": "Itupalẹ ti wa ni ila", + "queuedDescription": "Nduro fun agbara itupalẹ lati wa.", + "analyzing": "Ǹjẹ́ itupalẹ", + "analyzingTitle": "Ǹjẹ́ itupalẹ", + "analyzingDescription": "Ṣiṣayẹwo boya koodu ohun elo le de ọdọ ẹya ti o kan.", + "failed": "Itupalẹ kuna", + "failedTitle": "Itupalẹ kuna", + "failedDescription": "Security Agent ko le pari itupalẹ naa.", + "extractionFailed": "Nilo atunyẹwo", + "extractionFailedTitle": "Nilo atunyẹwo", + "extractionFailedDescription": "A ko le yi ijabọ imọ-ẹrọ pada si abajade ti a ṣeto.", + "exploitable": "O le nilokulo", + "exploitableTitle": "O le nilokulo", + "exploitableDescription": "Koodu ohun elo le de ọdọ ẹya ti o kan.", + "notExploitable": "Ko le nilokulo", + "notExploitableTitle": "Ko le nilokulo", + "notExploitableDescription": "Ko si ọna ti a le de ọdọ ti a ri ni ibi ipamọ yii.", + "unknown": "Nilo atunyẹwo", + "unknownTitle": "Nilo atunyẹwo", + "unknownDescription": "Itupalẹ ko le jẹrisi boya ẹya alailagbara naa le de ọdọ.", + "safeToDismiss": "O daju lati fi silẹ", + "safeToDismissTitle": "O daju lati fi silẹ", + "safeToDismissDescription": "Triage pinnu pe a le fi eyi silẹ lailewu laisi itupalẹ koodu-ipilẹ.", + "manualReview": "Nilo atunyẹwo", + "manualReviewTitle": "Nilo atunyẹwo ọwọ", + "manualReviewDescription": "Triage sami si abawọn yii fun atunyẹwo ọwọ.", + "analysisRequired": "Itupalẹ nilo", + "analysisRequiredTitle": "Itupalẹ koodu-ipilẹ nilo", + "analysisRequiredDescription": "Triage daba ṣiṣe itupalẹ ibi ipamọ ṣaaju pinnu idahun.", + "completed": "Ti itupalẹ", + "completedTitle": "Ti itupalẹ", + "completedDescription": "Itupalẹ pari laisi abajade pato ti a gbasilẹ.", + "notAnalyzed": "Ko tii ṣe itupalẹ", + "notAnalyzedTitle": "Ko tii ṣe itupalẹ", + "notAnalyzedDescription": "Itupalẹ koodu-ipilẹ ko tii ṣiṣẹ fun abawọn yii sibẹsibẹ." + }, + "deadline": { + "fixedBeforeDeadline": "Ti ṣatunṣe ṣaaju ọjọ-ipari", + "fixed": "Ti ṣatunṣe", + "fixedOn": "Ti ṣatunṣe {{date}}", + "resolutionRecorded": "Ipinnu ti gbasilẹ", + "superseded": "Ti rọpo", + "dismissed": "Ti fi silẹ", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "A ko ṣeto ọjọ-ipari", + "noSlaDeadline": "Ko si ọjọ-ipari SLA", + "dueOn": "Yẹ ni {{date}}", + "overdueNow": "O ti pẹ́", + "overdue_other": "{{count}} ọjọ ti kọja", + "dueToday": "Yẹ loni", + "dueTomorrow": "Yẹ lọla", + "dueInDays_other": "Yẹ ni {{count}} ọjọ", + "overdue": "{{count}} ọjọ ti kọja", + "overdue_one": "{{count}} ọjọ ti kọja", + "dueInDays": "Yẹ ni {{count}} ọjọ", + "dueInDays_one": "Yẹ ni {{count}} ọjọ" + }, + "remediationStatus": { + "cancellationRequested": "A beere ifagile", + "notStarted": "Ko tii bẹrẹ", + "queued": "Ti wa ni ila", + "starting": "Ǹjẹ́ bíbẹ̀rẹ̀", + "inProgress": "Ti n lọ lọwọ", + "draftPrOpened": "PR osere ti ṣii", + "prOpened": "PR ti ṣii", + "blocked": "Ti dina", + "failed": "Kuna", + "noChangesNeeded": "Ko si awọn ayipada to nilo", + "cancelled": "Ti fagilee", + "originAutomaticPolicy": "Eto imulo ladaa", + "originIncludeExistingPolicy": "Eto imulo fi awọn ti o wa tẹlẹ kun", + "originManual": "Ọwọ", + "validationCheck": "Ṣayẹwo ijẹrisi {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Abawọn aabo ko si mọ.", + "approvalRequired": "Atunṣe ladaa nilo ifọwọsi. Bẹrẹ atunṣe pẹlu ọwọ lati fọwọsi.", + "findingNotOpen": "Abawọn naa ko ṣii mọ.", + "repoNotInScope": "A ko yan ibi ipamọ fun Security Agent.", + "analysisRequired": "Ṣe itupalẹ koodu-ipilẹ ṣaaju bẹrẹ atunṣe.", + "sandboxAnalysisRequired": "Ṣe itupalẹ koodu-ipilẹ ṣaaju bẹrẹ atunṣe.", + "staleAnalysis": "Abawọn yipada lẹhin itupalẹ. Tun itupalẹ ṣiṣẹ ṣaaju bẹrẹ atunṣe.", + "notExploitable": "Itupalẹ ko ri ọna alailagbara ti a le de ọdọ. Atunṣe ladaa ko wa.", + "exploitabilityUnknown": "Itupalẹ ko le jẹrisi iṣeeṣe nilokulo. Atunyẹwo ọwọ nilo ṣaaju atunṣe titẹ-ẹyọkan.", + "manualReviewRequired": "Itupalẹ daba atunyẹwo ọwọ, nitori naa atunṣe titẹ-ẹyọkan ko wa.", + "monitorRequired": "Itupalẹ daba abojuto dipo ṣiṣii PR.", + "triageOnly": "Triage nikan ti pari. Ṣe itupalẹ koodu-ipilẹ ṣaaju bẹrẹ atunṣe.", + "actionNotConcrete": "Ko si patch igbẹkẹle tabi atunṣe ti a daba to wa.", + "remediationActive": "Igbiyanju atunṣe kan ti n ṣiṣẹ tẹlẹ.", + "prAlreadyOpened": "PR atunṣe kan ti ṣii tẹlẹ.", + "duplicateAnalysisResult": "Abajade itupalẹ yii ti ṣe iṣẹ atunṣe tẹlẹ.", + "retryNotAllowed": "A ko le tun gbiyanju igbiyanju yii.", + "securityAgentDisabled": "A ti pa Security Agent fun oniwun yii.", + "autoRemediationDisabled": "A ti pa Atunṣe ladaa. Atunṣe ọwọ le tun bẹrẹ nigbati awọn ẹnu-ọna aabo ba kọja.", + "includeExistingDisabled": "A ko fi awọn abawọn ti o wa tẹlẹ sinu atunṣe ladaa.", + "belowThreshold": "Abawọn wa ni isalẹ ipele iwọn pataki ladaa. Atunṣe ọwọ le tun bẹrẹ nigbati awọn ẹnu-ọna aabo ba kọja.", + "beforeEnablement": "Itupalẹ pari ṣaaju ki o to mu Atunṣe ladaa ṣiṣẹ. Atunṣe ọwọ le tun bẹrẹ nigbati awọn ẹnu-ọna aabo ba kọja.", + "generic": "Atunṣe ko wa fun abawọn yii." } }, "agents": { diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index b474da603d..fa4c3fe34e 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -939,7 +939,16 @@ "set": "设置" }, "updateFailed": "更新审查器失败", - "configSaveFailed": "保存审查配置失败" + "configSaveFailed": "保存审查配置失败", + "status": { + "pending": "待处理", + "queued": "已排队", + "running": "正在运行", + "completed": "已完成", + "failed": "失败", + "cancelled": "已取消", + "interrupted": "已中断" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "未知", "updated": "已更新", "viewAdvisory": "在 GitHub 上查看公告", - "vulnerableVersions": "易受攻击的版本" + "vulnerableVersions": "易受攻击的版本", + "statusSuperseded": "已被取代", + "statusFixed": "已修复", + "statusOpen": "未解决", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "已开始修复", + "reasonNoBandwidth": "没有可用带宽", + "reasonTolerableRisk": "风险可以接受", + "reasonInaccurate": "发现不准确", + "reasonNotUsed": "易受攻击的代码未被使用", + "reasonAfterReview": "审核后" }, "findingList": { "clearFilters": "清除筛选器", @@ -1368,6 +1387,107 @@ "syncInProgress": "已有安全同步正在进行。请重试。", "dismissalInProgress": "此忽略操作正在进行中。请重试。", "couldNotReadPendingSyncs": "无法读取待处理的同步。请重试。" + }, + "analysisState": { + "queued": "分析已排队", + "queuedTitle": "分析已排队", + "queuedDescription": "正在等待分析容量可用。", + "analyzing": "分析中", + "analyzingTitle": "分析中", + "analyzingDescription": "正在检查应用代码是否可以触达受影响的功能。", + "failed": "分析失败", + "failedTitle": "分析失败", + "failedDescription": "安全代理无法完成分析。", + "extractionFailed": "需要审核", + "extractionFailedTitle": "需要审核", + "extractionFailedDescription": "无法将技术报告转换为结构化结果。", + "exploitable": "可利用", + "exploitableTitle": "可利用", + "exploitableDescription": "应用代码可以触达受影响的功能。", + "notExploitable": "不可利用", + "notExploitableTitle": "不可利用", + "notExploitableDescription": "在此仓库中未找到可触达的路径。", + "unknown": "需要审核", + "unknownTitle": "需要审核", + "unknownDescription": "分析无法确认该漏洞功能是否可触达。", + "safeToDismiss": "可安全忽略", + "safeToDismissTitle": "可安全忽略", + "safeToDismissDescription": "分类判定无需代码库分析即可安全忽略。", + "manualReview": "需要审核", + "manualReviewTitle": "需要人工审核", + "manualReviewDescription": "分类将此发现标记为需要人工审核。", + "analysisRequired": "需要分析", + "analysisRequiredTitle": "需要代码库分析", + "analysisRequiredDescription": "分类建议在决定响应前分析仓库。", + "completed": "已分析", + "completedTitle": "已分析", + "completedDescription": "分析已完成,未记录具体结果。", + "notAnalyzed": "未分析", + "notAnalyzedTitle": "未分析", + "notAnalyzedDescription": "此发现尚未运行代码库分析。" + }, + "deadline": { + "fixedBeforeDeadline": "在截止时间前已修复", + "fixed": "已修复", + "fixedOn": "已于 {{date}} 修复", + "resolutionRecorded": "已记录解决方案", + "superseded": "已被取代", + "dismissed": "已忽略", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "未设置截止时间", + "noSlaDeadline": "无 SLA 截止时间", + "dueOn": "{{date}} 到期", + "overdueNow": "已逾期", + "overdue_other": "逾期 {{count}} 天", + "dueToday": "今天到期", + "dueTomorrow": "明天到期", + "dueInDays_other": "{{count}} 天后到期", + "overdue": "逾期 {{count}} 天", + "overdue_one": "逾期 {{count}} 天", + "dueInDays": "{{count}} 天后到期", + "dueInDays_one": "{{count}} 天后到期" + }, + "remediationStatus": { + "cancellationRequested": "已请求取消", + "notStarted": "未开始", + "queued": "已排队", + "starting": "正在开始", + "inProgress": "进行中", + "draftPrOpened": "草稿 PR 已开启", + "prOpened": "PR 已开启", + "blocked": "受阻", + "failed": "失败", + "noChangesNeeded": "无需更改", + "cancelled": "已取消", + "originAutomaticPolicy": "自动策略", + "originIncludeExistingPolicy": "包含现有策略", + "originManual": "手动", + "validationCheck": "验证检查 {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "安全发现已不存在。", + "approvalRequired": "自动修复需要批准。手动开始修复以批准它。", + "findingNotOpen": "发现已不再处于未解决状态。", + "repoNotInScope": "仓库未被选中用于安全代理。", + "analysisRequired": "开始修复前请先运行代码库分析。", + "sandboxAnalysisRequired": "开始修复前请先运行代码库分析。", + "staleAnalysis": "分析后发现发生了变化。开始修复前请重新运行分析。", + "notExploitable": "分析未找到可触达的漏洞路径。自动修复不可用。", + "exploitabilityUnknown": "分析无法确认可利用性。一键修复前需要人工审核。", + "manualReviewRequired": "分析建议人工审核,因此一键修复不可用。", + "monitorRequired": "分析建议监控而非开启 PR。", + "triageOnly": "仅完成了分类。开始修复前请先运行代码库分析。", + "actionNotConcrete": "没有可用的具体依赖补丁或建议修复。", + "remediationActive": "已有修复尝试正在进行。", + "prAlreadyOpened": "修复 PR 已开启。", + "duplicateAnalysisResult": "此分析结果已产生过修复工作。", + "retryNotAllowed": "此尝试不可重试。", + "securityAgentDisabled": "安全代理对此所有者已禁用。", + "autoRemediationDisabled": "自动修复已禁用。安全门槛通过后仍可手动开始修复。", + "includeExistingDisabled": "现有发现被排除在自动修复之外。", + "belowThreshold": "发现低于自动修复的严重程度阈值。安全门槛通过后仍可手动开始修复。", + "beforeEnablement": "分析在启用自动修复之前完成。安全门槛通过后仍可手动开始修复。", + "generic": "此发现无法进行修复。" } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "提交审查", "partialPostedMessage": "已发布 {{displayFreshCount}} 条评论。{{displayStaleCount}} 条评论指向较早的提交,仍保留在您的队列中。", "submitCountOfTotal": "提交 {{displayTotalCount}} 条评论中的 {{displayFreshCount}} 条", - "submitReview": "提交审查" + "submitReview": "提交审查", + "blockedRequestChanges": "添加摘要或至少一条评论以请求更改。", + "blockedComment": "添加摘要或至少一条评论以提交评论审查。" }, "fileStatus": { "added": "已添加", diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index f501674440..2e58acd293 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -939,7 +939,16 @@ "set": "已設定" }, "updateFailed": "更新審查員失敗", - "configSaveFailed": "儲存審查設定失敗" + "configSaveFailed": "儲存審查設定失敗", + "status": { + "pending": "待處理", + "queued": "已排入佇列", + "running": "執行中", + "completed": "已完成", + "failed": "失敗", + "cancelled": "已取消", + "interrupted": "已中斷" + } }, "securityAgent": { "filter": { @@ -1185,7 +1194,17 @@ "unknown": "未知", "updated": "已更新", "viewAdvisory": "在 GitHub 上檢視公告", - "vulnerableVersions": "易受攻擊的版本" + "vulnerableVersions": "易受攻擊的版本", + "statusSuperseded": "已被取代", + "statusFixed": "已修復", + "statusOpen": "未解決", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "修復已開始", + "reasonNoBandwidth": "沒有可用頻寬", + "reasonTolerableRisk": "風險可以接受", + "reasonInaccurate": "發現不準確", + "reasonNotUsed": "易受攻擊的程式碼未被使用", + "reasonAfterReview": "審核後" }, "findingList": { "clearFilters": "清除篩選器", @@ -1368,6 +1387,107 @@ "syncInProgress": "安全性同步已在進行中。請再試一次。", "dismissalInProgress": "此忽略動作已在進行中。請再試一次。", "couldNotReadPendingSyncs": "無法讀取待處理的同步。請再試一次。" + }, + "analysisState": { + "queued": "分析已排入佇列", + "queuedTitle": "分析已排入佇列", + "queuedDescription": "正在等待分析容量可用。", + "analyzing": "分析中", + "analyzingTitle": "分析中", + "analyzingDescription": "正在檢查應用程式程式碼是否可到達受影響的功能。", + "failed": "分析失敗", + "failedTitle": "分析失敗", + "failedDescription": "安全性代理無法完成分析。", + "extractionFailed": "需要審核", + "extractionFailedTitle": "需要審核", + "extractionFailedDescription": "技術報告無法轉換為結構化結果。", + "exploitable": "可利用", + "exploitableTitle": "可利用", + "exploitableDescription": "應用程式程式碼可到達受影響的功能。", + "notExploitable": "無法到達", + "notExploitableTitle": "無法到達", + "notExploitableDescription": "在此存放庫中未找到可到達的路徑。", + "unknown": "需要審核", + "unknownTitle": "需要審核", + "unknownDescription": "分析無法確認易受攻擊的功能是否可到達。", + "safeToDismiss": "可安全忽略", + "safeToDismissTitle": "可安全忽略", + "safeToDismissDescription": "分類判定此項目可在無需程式碼庫分析的情況下安全忽略。", + "manualReview": "需要審核", + "manualReviewTitle": "需要人工審核", + "manualReviewDescription": "分類已將此發現標記為需要人工審核。", + "analysisRequired": "需要分析", + "analysisRequiredTitle": "需要程式碼庫分析", + "analysisRequiredDescription": "分類建議在決定回應之前先分析存放庫。", + "completed": "已分析", + "completedTitle": "已分析", + "completedDescription": "分析已完成,未記錄特定結果。", + "notAnalyzed": "未分析", + "notAnalyzedTitle": "未分析", + "notAnalyzedDescription": "此發現尚未執行程式碼庫分析。" + }, + "deadline": { + "fixedBeforeDeadline": "已在截止時間前修復", + "fixed": "已修復", + "fixedOn": "已於 {{date}} 修復", + "resolutionRecorded": "已記錄解決方案", + "superseded": "已被取代", + "dismissed": "已忽略", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "未設定截止時間", + "noSlaDeadline": "無 SLA 截止時間", + "dueOn": "{{date}} 到期", + "overdueNow": "已逾期", + "overdue_other": "逾期 {{count}} 天", + "dueToday": "今天到期", + "dueTomorrow": "明天到期", + "dueInDays_other": "{{count}} 天後到期", + "overdue": "逾期 {{count}} 天", + "overdue_one": "逾期 {{count}} 天", + "dueInDays": "{{count}} 天後到期", + "dueInDays_one": "{{count}} 天後到期" + }, + "remediationStatus": { + "cancellationRequested": "已要求取消", + "notStarted": "尚未開始", + "queued": "已排入佇列", + "starting": "啟動中", + "inProgress": "進行中", + "draftPrOpened": "草稿 PR 已開啟", + "prOpened": "PR 已開啟", + "blocked": "受阻", + "failed": "失敗", + "noChangesNeeded": "無需變更", + "cancelled": "已取消", + "originAutomaticPolicy": "自動政策", + "originIncludeExistingPolicy": "包含現有政策", + "originManual": "手動", + "validationCheck": "驗證檢查 {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "安全性發現已不存在。", + "approvalRequired": "自動修復需要核准。請手動開始修復以核准。", + "findingNotOpen": "發現已不再開放。", + "repoNotInScope": "存放庫未選取用於安全性代理。", + "analysisRequired": "開始修復前,請先執行程式碼庫分析。", + "sandboxAnalysisRequired": "開始修復前,請先執行程式碼庫分析。", + "staleAnalysis": "發現於分析後發生變更。開始修復前,請重新執行分析。", + "notExploitable": "分析未找到可到達的易受攻擊路徑。自動修復無法使用。", + "exploitabilityUnknown": "分析無法確認可利用性。一鍵修復前需要人工審核。", + "manualReviewRequired": "分析建議人工審核,因此一鍵修復無法使用。", + "monitorRequired": "分析建議監控而非開啟 PR。", + "triageOnly": "僅完成分類。開始修復前,請先執行程式碼庫分析。", + "actionNotConcrete": "沒有可用的具體相依性修補程式或建議修復。", + "remediationActive": "已有進行中的修復嘗試。", + "prAlreadyOpened": "修復 PR 已開啟。", + "duplicateAnalysisResult": "此分析結果已產生修復工作。", + "retryNotAllowed": "此嘗試無法重試。", + "securityAgentDisabled": "此擁有者的安全性代理已停用。", + "autoRemediationDisabled": "自動修復已停用。通過安全閘門後,手動修復仍可開始。", + "includeExistingDisabled": "現有發現已排除在自動修復之外。", + "belowThreshold": "發現低於自動嚴重程度門檻。通過安全閘門後,手動修復仍可開始。", + "beforeEnablement": "分析在啟用自動修復前完成。通過安全閘門後,手動修復仍可開始。", + "generic": "此發現無法進行修復。" } }, "agents": { @@ -2639,7 +2759,9 @@ "title": "提交審查", "partialPostedMessage": "已發佈 {{displayFreshCount}} 則留言。{{displayStaleCount}} 則留言指向較舊的提交,並保留在您的佇列中。", "submitCountOfTotal": "提交 {{displayFreshCount}} / {{displayTotalCount}} 則留言", - "submitReview": "提交審查" + "submitReview": "提交審查", + "blockedRequestChanges": "新增摘要或至少一則留言以要求變更。", + "blockedComment": "新增摘要或至少一則留言以提交留言審查。" }, "fileStatus": { "added": "已新增", diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index e985abc3b7..bb1134cbf2 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -512,7 +512,9 @@ "pendingComment_other": "amazwana alindile", "submitCountOfTotal": "Thumela amazwana angu-{{displayFreshCount}} kwangu-{{displayTotalCount}}", "submitReview": "Thumela ukubuyekeza", - "partialPostedMessage": "Kuthunyelwe amazwana angu-{{displayFreshCount}}. Amazwana angu-{{displayStaleCount}} akhomba ku-commit endala futhi ahlala emgqeni wakho." + "partialPostedMessage": "Kuthunyelwe amazwana angu-{{displayFreshCount}}. Amazwana angu-{{displayStaleCount}} akhomba ku-commit endala futhi ahlala emgqeni wakho.", + "blockedRequestChanges": "Engeza isifinyezo noma okungenani izwana elilodwa ukuze ucele izinguquko.", + "blockedComment": "Engeza isifinyezo noma okungenani izwana elilodwa ukuze uthumele ukubuyekeza ngamazwana." }, "reconnectNotice": { "title": "Ukuxhumana kwe-GitHub kuphelelwe yisikhathi", @@ -1376,7 +1378,16 @@ }, "eyebrow": "I-Code Reviewer", "updateFailed": "Kwehlulekile ukubuyekeza umbuyekezi", - "configSaveFailed": "Kwehlulekile ukulondoloza ukucushwa kokubuyekeza" + "configSaveFailed": "Kwehlulekile ukulondoloza ukucushwa kokubuyekeza", + "status": { + "pending": "Kulindile", + "queued": "Kumisiwe", + "running": "Iyasebenza", + "completed": "Kuphelele", + "failed": "Kwehlulekile", + "cancelled": "Kukhanseliwe", + "interrupted": "Kuphazamisekile" + } }, "securityAgent": { "filter": { @@ -1577,7 +1588,17 @@ "sourceRecord": "Irekhodi lomthombo", "source": "Umthombo", "sourceId": "I-ID yomthombo", - "viewAdvisory": "Buka iseluleko ku-GitHub" + "viewAdvisory": "Buka iseluleko ku-GitHub", + "statusSuperseded": "Kuthathiwe indawo", + "statusFixed": "Kulungisiwe", + "statusOpen": "Vuliwe", + "sourceDependabot": "GitHub Dependabot", + "reasonFixStarted": "ukulungisa sekuqalile", + "reasonNoBandwidth": "akukho bandwidth etholakalayo", + "reasonTolerableRisk": "ubungozi buyathelekelela", + "reasonInaccurate": "ukutholakele akulungile", + "reasonNotUsed": "ikhodi enobungozi ayisetshenziswa", + "reasonAfterReview": "ngemva kokubuyekezwa" }, "settingsOverview": { "title": "Izilungiselelo", @@ -1805,6 +1826,107 @@ "syncInProgress": "Ukuvumelanisa kokuphepha sekuqhubeka. Sicela uzame futhi.", "dismissalInProgress": "Ukulahla sekuqhubeka. Sicela uzame futhi.", "couldNotReadPendingSyncs": "Asikwazanga ukufunda ukuvumelanisa okulindile. Zama futhi." + }, + "analysisState": { + "queued": "Ukuhlaziywa kumisiwe", + "queuedTitle": "Ukuhlaziywa kumisiwe", + "queuedDescription": "Kulindwa amandla okuhlaziya ukuthi atholakale.", + "analyzing": "Iyahlaziya", + "analyzingTitle": "Iyahlaziya", + "analyzingDescription": "Kuyahlolwa ukuthi ikhodi yohlelo lokusebenza ingafinyelela yini esicini esithintekile.", + "failed": "Ukuhlaziya kwehlulekile", + "failedTitle": "Ukuhlaziya kwehlulekile", + "failedDescription": "I-Security Agent ayikwazanga ukuqeda ukuhlaziywa.", + "extractionFailed": "Idinga ukubuyekezwa", + "extractionFailedTitle": "Idinga ukubuyekezwa", + "extractionFailedDescription": "Umbiko wezobuchwepheshe awukwazanga ukuguqulwa ube umphumela ohleliwe.", + "exploitable": "Iyasebenziseka", + "exploitableTitle": "Iyasebenziseka", + "exploitableDescription": "Ikhodi yohlelo lokusebenza ingafinyelela esicini esithintekile.", + "notExploitable": "Ayifinyeleleki", + "notExploitableTitle": "Ayifinyeleleki", + "notExploitableDescription": "Akukho ndlela efinyelelekayo etholakale kulesi sizinda.", + "unknown": "Idinga ukubuyekezwa", + "unknownTitle": "Idinga ukubuyekezwa", + "unknownDescription": "Ukuhlaziywa akukwazanga ukuqinisekisa ukuthi isici esinobungozi siyafinyeleleka yini.", + "safeToDismiss": "Kuphephile ukuyichitha", + "safeToDismissTitle": "Kuphephile ukuyichitha", + "safeToDismissDescription": "Ukuhlukanisa kunqume ukuthi lokhu kungachithwa ngokuphephile ngaphandle kokuhlaziywa kwe-codebase.", + "manualReview": "Idinga ukubuyekezwa", + "manualReviewTitle": "Idinga ukubuyekezwa ngesandla", + "manualReviewDescription": "Ukuhlukanisa kuphawule lokhu kutholakele ukuthi kudinga ukubuyekezwa ngesandla.", + "analysisRequired": "Ukuhlaziywa kuyadingeka", + "analysisRequiredTitle": "Ukuhlaziywa kwe-codebase kuyadingeka", + "analysisRequiredDescription": "Ukuhlukanisa kuphakamisa ukuhlaziya i-repository ngaphambi kokunquma impendulo.", + "completed": "Kuhlaziyiwe", + "completedTitle": "Kuhlaziyiwe", + "completedDescription": "Ukuhlaziywa kuphelele ngaphandle komphumela othile orekhodiwe.", + "notAnalyzed": "Akukahlaziywa", + "notAnalyzedTitle": "Akukahlaziywa", + "notAnalyzedDescription": "Ukuhlaziywa kwe-codebase akukakashayeli kulokhu kutholakele." + }, + "deadline": { + "fixedBeforeDeadline": "Kulungisiwe ngaphambi kwesikhathi", + "fixed": "Kulungisiwe", + "fixedOn": "Kulungisiwe ngo-{{date}}", + "resolutionRecorded": "Isixazululo sirekhodiwe", + "superseded": "Kuthathiwe indawo", + "dismissed": "Kulahlwe", + "closedOn": "{{status}} {{date}}", + "deadlineNotSet": "Isikhathi asikasethwa", + "noSlaDeadline": "Akukho sikhathi se-SLA", + "dueOn": "Kufanele kwenziwe nge-{{date}}", + "overdueNow": "Kudlule isikhathi", + "overdue_one": "Usuku olungu-{{count}} isidliwe", + "overdue_other": "Izinsuku ezingu-{{count}} isidliwe", + "dueToday": "Isikhathi sifinyelelwe namuhla", + "dueTomorrow": "Isikhathi sifinyelelwe kusasa", + "dueInDays_one": "Isikhathi sifinyelelwa ngosuku olungu-{{count}}", + "dueInDays_other": "Isikhathi sifinyelelwa ngezinsuku ezingu-{{count}}", + "overdue": "Izinsuku ezingu-{{count}} isidliwe", + "dueInDays": "Isikhathi sifinyelelwa ngezinsuku ezingu-{{count}}" + }, + "remediationStatus": { + "cancellationRequested": "Ukukhansela kuceliwe", + "notStarted": "Akukaqalwa", + "queued": "Kumisiwe", + "starting": "Iyaqalwa", + "inProgress": "Kuyaqhubeka", + "draftPrOpened": "I-draft PR ivuliwe", + "prOpened": "I-PR ivuliwe", + "blocked": "Kuvinjwe", + "failed": "Kwehlulekile", + "noChangesNeeded": "Akukho zinguquko ezidingekayo", + "cancelled": "Kukhanseliwe", + "originAutomaticPolicy": "Inqubomgomo ezenzakalelayo", + "originIncludeExistingPolicy": "Inqubomgomo yokufaka okukhona", + "originManual": "Okwenziwa ngesandla", + "validationCheck": "Ukuhlolwa kokuqinisekisa {{number}}" + }, + "remediationUnavailable": { + "findingNotFound": "Ukutholakele kokuphepha akusekho.", + "approvalRequired": "Ukulungisa okuzenzakalelayo kudinga imvume. Qala ukulungisa ngesandla ukuze kuvunyelwe.", + "findingNotOpen": "Ukutholakele akusavuliwe.", + "repoNotInScope": "I-repository ayikhethiwe ye-Security Agent.", + "analysisRequired": "Shayela ukuhlaziywa kwe-codebase ngaphambi kokuqala ukulungisa.", + "sandboxAnalysisRequired": "Shayela ukuhlaziywa kwe-codebase ngaphambi kokuqala ukulungisa.", + "staleAnalysis": "Ukutholakele kushintshile ngemva kokuhlaziywa. Phinda uhlaziye ngaphambi kokuqala ukulungisa.", + "notExploitable": "Ukuhlaziywa akutholanga ndlela enobungozi efinyelelekayo. Ukulungisa okuzenzakalelayo akutholakali.", + "exploitabilityUnknown": "Ukuhlaziywa akukwazanga ukuqinisekisa ukuthi kuyasebenziseka. Ukubuyekezwa ngesandla kuyadingeka ngaphambi kokulungisa ngokuchofoza okukodwa.", + "manualReviewRequired": "Ukuhlaziywa kuphakamisa ukubuyekezwa ngesandla, ngakho ukulungisa ngokuchofoza okukodwa akutholakali.", + "monitorRequired": "Ukuhlaziywa kuphakamisa ukuqapha esikhundleni sokuvula i-PR.", + "triageOnly": "Ukuhlukanisa kuphela okuqediwe. Shayela ukuhlaziywa kwe-codebase ngaphambi kokuqala ukulungisa.", + "actionNotConcrete": "Akukho patch eqondile yokuncika noma ukulungisa okusikiselwayo okutholakalayo.", + "remediationActive": "Umzamo wokulungisa usuvele usebenza.", + "prAlreadyOpened": "I-PR yokulungisa isivele ivuliwe.", + "duplicateAnalysisResult": "Lo mphumela wokuhlaziywa usuvele ukhiqize umsebenzi wokulungisa.", + "retryNotAllowed": "Ukuphinda kuzanywe akutholakali kulomzamo.", + "securityAgentDisabled": "I-Security Agent ikhashiwe kulo mnikazi.", + "autoRemediationDisabled": "Ukulungisa okuzenzakalelayo kukhashiwe. Ukulungisa okwenziwa ngesandla kusengaqala lapho izingosi zokuphepha zidlula.", + "includeExistingDisabled": "Ukutholakele okukhona kukhishiwe ekulungiseni okuzenzakalelayo.", + "belowThreshold": "Ukutholakele kungaphansi komkhawulo wobunzima ozenzakalelayo. Ukulungisa okwenziwa ngesandla kusengaqala lapho izingosi zokuphepha zidlula.", + "beforeEnablement": "Ukuhlaziywa kuqediwe ngaphambi kokuthi kuvulwe ukulungisa okuzenzakalelayo. Ukulungisa okwenziwa ngesandla kusengaqala lapho izingosi zokuphepha zidlula.", + "generic": "Ukulungisa akutholakali kulokhu kutholakele." } }, "agents": { diff --git a/apps/mobile/src/lib/hooks/use-security-remediation.ts b/apps/mobile/src/lib/hooks/use-security-remediation.ts index 2ca15078c3..0348735d93 100644 --- a/apps/mobile/src/lib/hooks/use-security-remediation.ts +++ b/apps/mobile/src/lib/hooks/use-security-remediation.ts @@ -1,10 +1,7 @@ // Remediation write hooks for a security finding: start, retry, and cancel. // Split out of `use-security-findings.ts` (which keeps the finding queries and // the dismiss hook) so each file stays under the max-lines limit. -import { - getRemediationUnavailableCopy, - isPersonalSecurityScope, -} from '@kilocode/app-shared/security-agent'; +import { isPersonalSecurityScope } from '@kilocode/app-shared/security-agent'; import { hashKey, useMutation, useQueryClient } from '@tanstack/react-query'; import { toast } from 'sonner-native'; @@ -18,6 +15,48 @@ import { scheduleCacheMaintenance } from '@/lib/query/schedule-cache-maintenance import { type SecurityAnalysis } from '@/lib/security-agent'; import { trpcClient, useTRPC } from '@/lib/trpc'; +// Catalog keys for the remediation-unavailable reason codes, mapped from +// REMEDIATION_UNAVAILABLE_COPY and getRemediationUnavailableCopy in +// packages/app-shared. Unknown reasons keep the generic copy; a null/eligible +// reason stays null so callers keep their existing fallback. +const REMEDIATION_UNAVAILABLE_KEYS = { + finding_not_found: 'securityAgent.remediationUnavailable.findingNotFound', + approval_required: 'securityAgent.remediationUnavailable.approvalRequired', + finding_not_open: 'securityAgent.remediationUnavailable.findingNotOpen', + repo_not_in_scope: 'securityAgent.remediationUnavailable.repoNotInScope', + analysis_required: 'securityAgent.remediationUnavailable.analysisRequired', + sandbox_analysis_required: 'securityAgent.remediationUnavailable.sandboxAnalysisRequired', + stale_analysis: 'securityAgent.remediationUnavailable.staleAnalysis', + not_exploitable: 'securityAgent.remediationUnavailable.notExploitable', + exploitability_unknown: 'securityAgent.remediationUnavailable.exploitabilityUnknown', + manual_review_required: 'securityAgent.remediationUnavailable.manualReviewRequired', + monitor_required: 'securityAgent.remediationUnavailable.monitorRequired', + triage_only: 'securityAgent.remediationUnavailable.triageOnly', + action_not_concrete: 'securityAgent.remediationUnavailable.actionNotConcrete', + remediation_active: 'securityAgent.remediationUnavailable.remediationActive', + pr_already_opened: 'securityAgent.remediationUnavailable.prAlreadyOpened', + duplicate_analysis_result: 'securityAgent.remediationUnavailable.duplicateAnalysisResult', + retry_not_allowed: 'securityAgent.remediationUnavailable.retryNotAllowed', + security_agent_disabled: 'securityAgent.remediationUnavailable.securityAgentDisabled', + auto_remediation_disabled: 'securityAgent.remediationUnavailable.autoRemediationDisabled', + include_existing_disabled: 'securityAgent.remediationUnavailable.includeExistingDisabled', + below_threshold: 'securityAgent.remediationUnavailable.belowThreshold', + before_enablement: 'securityAgent.remediationUnavailable.beforeEnablement', +} as const satisfies Record; + +const REMEDIATION_UNAVAILABLE_GENERIC_KEY = 'securityAgent.remediationUnavailable.generic'; + +function getRemediationUnavailableKey(reason: string | null | undefined): string | null { + if (!reason || reason === 'eligible') { + return null; + } + // Object.hasOwn (not `in`) so inherited keys like 'constructor' fall + // through to the generic copy instead of leaking prototype members. + return Object.hasOwn(REMEDIATION_UNAVAILABLE_KEYS, reason) + ? REMEDIATION_UNAVAILABLE_KEYS[reason as keyof typeof REMEDIATION_UNAVAILABLE_KEYS] + : REMEDIATION_UNAVAILABLE_GENERIC_KEY; +} + async function invalidateRemediationQueries( deps: { trpc: ReturnType; @@ -81,8 +120,9 @@ export function useStartSecurityRemediation(scope: string) { onSuccess: async (result, vars) => { if (!result.queued) { toast.error( - getRemediationUnavailableCopy(result.reason) ?? - i18n.t('securityAgent.remediation.unavailable') + i18n.t( + getRemediationUnavailableKey(result.reason) ?? 'securityAgent.remediation.unavailable' + ) ); } else { toast.success(i18n.t('securityAgent.remediation.queued')); @@ -113,8 +153,9 @@ export function useRetrySecurityRemediation(scope: string) { onSuccess: async (result, vars) => { if (!result.queued) { toast.error( - getRemediationUnavailableCopy(result.reason) ?? - i18n.t('securityAgent.remediation.unavailable') + i18n.t( + getRemediationUnavailableKey(result.reason) ?? 'securityAgent.remediation.unavailable' + ) ); } else { toast.success(i18n.t('securityAgent.remediation.retryQueued')); diff --git a/apps/mobile/src/lib/pr-review/build-submit-review-input.ts b/apps/mobile/src/lib/pr-review/build-submit-review-input.ts index b05bfc12f7..403aa38ba6 100644 --- a/apps/mobile/src/lib/pr-review/build-submit-review-input.ts +++ b/apps/mobile/src/lib/pr-review/build-submit-review-input.ts @@ -1,3 +1,4 @@ +import { i18n } from '@/i18n'; import { type SubmitReviewComment, type SubmitReviewInput, @@ -23,9 +24,9 @@ export function reviewSubmitBlockReason(args: { return null; } if (args.event === 'REQUEST_CHANGES') { - return 'Add a summary or at least one comment to request changes.'; + return i18n.t('prReview.submit.blockedRequestChanges'); } - return 'Add a summary or at least one comment to post a comment review.'; + return i18n.t('prReview.submit.blockedComment'); } type BuildSubmitReviewInputArgs = { diff --git a/apps/mobile/src/lib/security-agent-copy.ts b/apps/mobile/src/lib/security-agent-copy.ts new file mode 100644 index 0000000000..2f5b1d05f0 --- /dev/null +++ b/apps/mobile/src/lib/security-agent-copy.ts @@ -0,0 +1,172 @@ +import { + type FindingDeadlineState, + type SecurityFindingAnalysisState, +} from '@kilocode/app-shared/security-agent'; + +import { i18n } from '@/i18n'; +import { formatDate } from '@/lib/format'; +import { firstNonEmpty } from '@/lib/utils'; + +// Analysis-state copy keys, translated at render time. English wording must +// match packages/app-shared/src/security-agent/presentation.ts exactly. +const LABEL_KEYS = { + queued: 'securityAgent.analysisState.queued', + analyzing: 'securityAgent.analysisState.analyzing', + failed: 'securityAgent.analysisState.failed', + 'extraction-failed': 'securityAgent.analysisState.extractionFailed', + exploitable: 'securityAgent.analysisState.exploitable', + 'not-exploitable': 'securityAgent.analysisState.notExploitable', + unknown: 'securityAgent.analysisState.unknown', + 'safe-to-dismiss': 'securityAgent.analysisState.safeToDismiss', + 'manual-review': 'securityAgent.analysisState.manualReview', + 'analysis-required': 'securityAgent.analysisState.analysisRequired', + completed: 'securityAgent.analysisState.completed', + 'not-analyzed': 'securityAgent.analysisState.notAnalyzed', +} satisfies Record; + +const TITLE_KEYS = { + queued: 'securityAgent.analysisState.queuedTitle', + analyzing: 'securityAgent.analysisState.analyzingTitle', + failed: 'securityAgent.analysisState.failedTitle', + 'extraction-failed': 'securityAgent.analysisState.extractionFailedTitle', + exploitable: 'securityAgent.analysisState.exploitableTitle', + 'not-exploitable': 'securityAgent.analysisState.notExploitableTitle', + unknown: 'securityAgent.analysisState.unknownTitle', + 'safe-to-dismiss': 'securityAgent.analysisState.safeToDismissTitle', + 'manual-review': 'securityAgent.analysisState.manualReviewTitle', + 'analysis-required': 'securityAgent.analysisState.analysisRequiredTitle', + completed: 'securityAgent.analysisState.completedTitle', + 'not-analyzed': 'securityAgent.analysisState.notAnalyzedTitle', +} satisfies Record; + +const DESCRIPTION_KEYS = { + queued: 'securityAgent.analysisState.queuedDescription', + analyzing: 'securityAgent.analysisState.analyzingDescription', + failed: 'securityAgent.analysisState.failedDescription', + 'extraction-failed': 'securityAgent.analysisState.extractionFailedDescription', + exploitable: 'securityAgent.analysisState.exploitableDescription', + 'not-exploitable': 'securityAgent.analysisState.notExploitableDescription', + unknown: 'securityAgent.analysisState.unknownDescription', + 'safe-to-dismiss': 'securityAgent.analysisState.safeToDismissDescription', + 'manual-review': 'securityAgent.analysisState.manualReviewDescription', + 'analysis-required': 'securityAgent.analysisState.analysisRequiredDescription', + completed: 'securityAgent.analysisState.completedDescription', + 'not-analyzed': 'securityAgent.analysisState.notAnalyzedDescription', +} satisfies Record; + +/** + * Dynamic text that replaces the English fallback for a state, mirroring the + * firstNonEmpty precedence in presentation.ts. Pass null/undefined to fall + * back to the translated copy. + */ +type SecurityAnalysisDynamicText = { + analysisError?: string | null; + sandboxSummary?: string | null; + sandboxReasoning?: string | null; + triageReasoning?: string | null; +}; + +export function getSecurityAnalysisLabel(state: SecurityFindingAnalysisState): string { + return i18n.t(LABEL_KEYS[state]); +} + +export function getSecurityAnalysisDetailTitle(state: SecurityFindingAnalysisState): string { + return i18n.t(TITLE_KEYS[state]); +} + +export function getSecurityAnalysisDetailDescription( + state: SecurityFindingAnalysisState, + dynamic: SecurityAnalysisDynamicText = {} +): string { + const fallback = i18n.t(DESCRIPTION_KEYS[state]); + if (state === 'failed') { + return firstNonEmpty(dynamic.analysisError, fallback); + } + if (state === 'exploitable' || state === 'not-exploitable' || state === 'unknown') { + return firstNonEmpty(dynamic.sandboxSummary, dynamic.sandboxReasoning, fallback); + } + if (state === 'safe-to-dismiss' || state === 'manual-review' || state === 'analysis-required') { + return firstNonEmpty(dynamic.triageReasoning, fallback); + } + return fallback; +} + +type DeadlineCopy = { label: string; detail: string }; + +// Renders the deadline from its stable state code, never from the English +// label/detail the shared module built (web still reads those). Dates use the +// active app language via formatDate. +export function getDeadlineCopy(state: FindingDeadlineState): DeadlineCopy { + switch (state.kind) { + case 'fixed': { + const label = state.beforeDeadline + ? i18n.t('securityAgent.deadline.fixedBeforeDeadline') + : i18n.t('securityAgent.deadline.fixed'); + const detail = state.fixedAt + ? i18n.t('securityAgent.deadline.fixedOn', { + date: formatDate(state.fixedAt, i18n.language), + }) + : i18n.t('securityAgent.deadline.resolutionRecorded'); + return { label, detail }; + } + case 'closed': { + const status = state.superseded + ? i18n.t('securityAgent.deadline.superseded') + : i18n.t('securityAgent.deadline.dismissed'); + return { + label: status, + detail: i18n.t('securityAgent.deadline.closedOn', { + status, + date: formatDate(state.at, i18n.language), + }), + }; + } + case 'no-deadline': { + return { + label: i18n.t('securityAgent.deadline.deadlineNotSet'), + detail: i18n.t('securityAgent.deadline.noSlaDeadline'), + }; + } + case 'overdue': { + return { + label: + state.days === 0 + ? i18n.t('securityAgent.deadline.overdueNow') + : i18n.t('securityAgent.deadline.overdue', { count: state.days }), + detail: i18n.t('securityAgent.deadline.dueOn', { + date: formatDate(state.deadline, i18n.language), + }), + }; + } + case 'due-today': { + return { + label: i18n.t('securityAgent.deadline.dueToday'), + detail: i18n.t('securityAgent.deadline.dueOn', { + date: formatDate(state.deadline, i18n.language), + }), + }; + } + case 'due-tomorrow': { + return { + label: i18n.t('securityAgent.deadline.dueTomorrow'), + detail: i18n.t('securityAgent.deadline.dueOn', { + date: formatDate(state.deadline, i18n.language), + }), + }; + } + case 'due-in': { + return { + label: i18n.t('securityAgent.deadline.dueInDays', { count: state.days }), + detail: i18n.t('securityAgent.deadline.dueOn', { + date: formatDate(state.deadline, i18n.language), + }), + }; + } + default: { + return { + label: i18n.t('securityAgent.deadline.deadlineNotSet'), + detail: i18n.t('securityAgent.deadline.noSlaDeadline'), + }; + } + } +} diff --git a/packages/app-shared/src/security-agent/presentation.ts b/packages/app-shared/src/security-agent/presentation.ts index ca5fe861b0..102b92e89b 100644 --- a/packages/app-shared/src/security-agent/presentation.ts +++ b/packages/app-shared/src/security-agent/presentation.ts @@ -33,7 +33,23 @@ type FindingStatusPresentation = { tooltip?: string | null; }; -type FindingDeadlinePresentation = FindingStatusPresentation & { detail: string }; +// Stable code describing which deadline branch produced the copy, so mobile +// can map it to its own translated strings instead of parsing the English +// label/detail. `fixedAt` is null when the fixed-at timestamp is missing +// (the shared copy then reads "Resolution recorded"). +export type FindingDeadlineState = + | { kind: 'fixed'; beforeDeadline: boolean; fixedAt: Date | null } + | { kind: 'closed'; superseded: boolean; at: Date } + | { kind: 'no-deadline' } + | { kind: 'overdue'; days: number; deadline: Date } + | { kind: 'due-today'; deadline: Date } + | { kind: 'due-tomorrow'; deadline: Date } + | { kind: 'due-in'; days: number; deadline: Date }; + +type FindingDeadlinePresentation = FindingStatusPresentation & { + detail: string; + state: FindingDeadlineState; +}; // Structural shape of a finding's `analysis` column — permissive so it's // satisfied by both web's SecurityFinding (from @kilocode/db/schema) and @@ -289,6 +305,7 @@ export function getSecurityDeadlinePresentation( label: fixedBeforeDeadline ? 'Fixed before deadline' : 'Fixed', detail: fixedAt ? `Fixed ${formatFindingDate(fixedAt)}` : 'Resolution recorded', tone: fixedBeforeDeadline ? 'success' : 'neutral', + state: { kind: 'fixed', beforeDeadline: fixedBeforeDeadline, fixedAt }, }; } @@ -300,6 +317,7 @@ export function getSecurityDeadlinePresentation( label, detail: `${label} ${formatFindingDate(updatedAt)}`, tone: 'neutral', + state: { kind: 'closed', superseded: isSupersededFinding(finding), at: updatedAt }, }; } @@ -309,6 +327,7 @@ export function getSecurityDeadlinePresentation( label: 'Deadline not set', detail: 'No SLA deadline', tone: 'neutral', + state: { kind: 'no-deadline' }, }; } @@ -325,19 +344,33 @@ export function getSecurityDeadlinePresentation( : `${overdueDays} ${overdueDays === 1 ? 'day' : 'days'} overdue`, detail, tone: 'danger', + state: { kind: 'overdue', days: overdueDays, deadline }, }; } if (calendarDays === 0) { - return { icon: 'clock', label: 'Due today', detail, tone: 'warning' }; + return { + icon: 'clock', + label: 'Due today', + detail, + tone: 'warning', + state: { kind: 'due-today', deadline }, + }; } if (calendarDays === 1) { - return { icon: 'clock', label: 'Due tomorrow', detail, tone: 'warning' }; + return { + icon: 'clock', + label: 'Due tomorrow', + detail, + tone: 'warning', + state: { kind: 'due-tomorrow', deadline }, + }; } return { icon: 'clock', label: `Due in ${calendarDays} days`, detail, tone: calendarDays <= 3 ? 'warning' : 'neutral', + state: { kind: 'due-in', days: calendarDays, deadline }, }; } From a84ae7156d5d41f32a6a57cfb71d2b54dfa83fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 18:56:13 +0200 Subject: [PATCH 08/14] fix(mobile): match the App Store error contract in English The backend sends its purchase errors in English whatever the app's language is, so the mobile match must compare English, not a translated catalog value. The last commit translated one of the two matched constants, which made the remapping silently skip in every other language and showed the raw English server text instead. Both matched constants are English again, and a comment names them as the backend contract. Only the copy the user reads is translated. The owned-by-another-account sentence is now the key `kiloPass.purchaseOwnedByAnotherAccount`, and the contract sentence is no longer a catalog key at all. Reported by Kilo Code review on PR 5478. --- apps/mobile/src/i18n/locales/af.json | 4 ++-- apps/mobile/src/i18n/locales/am.json | 4 ++-- apps/mobile/src/i18n/locales/ar.json | 4 ++-- apps/mobile/src/i18n/locales/az.json | 4 ++-- apps/mobile/src/i18n/locales/be.json | 4 ++-- apps/mobile/src/i18n/locales/bg.json | 4 ++-- apps/mobile/src/i18n/locales/bn.json | 4 ++-- apps/mobile/src/i18n/locales/bs.json | 4 ++-- apps/mobile/src/i18n/locales/ca.json | 4 ++-- apps/mobile/src/i18n/locales/ckb.json | 4 ++-- apps/mobile/src/i18n/locales/cs.json | 4 ++-- apps/mobile/src/i18n/locales/cy.json | 4 ++-- apps/mobile/src/i18n/locales/da.json | 4 ++-- apps/mobile/src/i18n/locales/de.json | 4 ++-- apps/mobile/src/i18n/locales/el.json | 4 ++-- apps/mobile/src/i18n/locales/en.json | 4 ++-- apps/mobile/src/i18n/locales/es.json | 4 ++-- apps/mobile/src/i18n/locales/et.json | 4 ++-- apps/mobile/src/i18n/locales/eu.json | 4 ++-- apps/mobile/src/i18n/locales/fa.json | 4 ++-- apps/mobile/src/i18n/locales/fi.json | 4 ++-- apps/mobile/src/i18n/locales/fil.json | 4 ++-- apps/mobile/src/i18n/locales/fr.json | 4 ++-- apps/mobile/src/i18n/locales/ga.json | 4 ++-- apps/mobile/src/i18n/locales/gl.json | 4 ++-- apps/mobile/src/i18n/locales/gu.json | 4 ++-- apps/mobile/src/i18n/locales/ha.json | 4 ++-- apps/mobile/src/i18n/locales/he.json | 4 ++-- apps/mobile/src/i18n/locales/hi.json | 4 ++-- apps/mobile/src/i18n/locales/hr.json | 4 ++-- apps/mobile/src/i18n/locales/ht.json | 4 ++-- apps/mobile/src/i18n/locales/hu.json | 4 ++-- apps/mobile/src/i18n/locales/hy.json | 4 ++-- apps/mobile/src/i18n/locales/id.json | 4 ++-- apps/mobile/src/i18n/locales/ig.json | 4 ++-- apps/mobile/src/i18n/locales/is.json | 4 ++-- apps/mobile/src/i18n/locales/it.json | 4 ++-- apps/mobile/src/i18n/locales/ja.json | 4 ++-- apps/mobile/src/i18n/locales/ka.json | 4 ++-- apps/mobile/src/i18n/locales/kk.json | 4 ++-- apps/mobile/src/i18n/locales/km.json | 4 ++-- apps/mobile/src/i18n/locales/kn.json | 4 ++-- apps/mobile/src/i18n/locales/ko.json | 4 ++-- apps/mobile/src/i18n/locales/lo.json | 4 ++-- apps/mobile/src/i18n/locales/lt.json | 4 ++-- apps/mobile/src/i18n/locales/lv.json | 4 ++-- apps/mobile/src/i18n/locales/mg.json | 4 ++-- apps/mobile/src/i18n/locales/mi.json | 4 ++-- apps/mobile/src/i18n/locales/mk.json | 4 ++-- apps/mobile/src/i18n/locales/ml.json | 4 ++-- apps/mobile/src/i18n/locales/mn.json | 4 ++-- apps/mobile/src/i18n/locales/mr.json | 4 ++-- apps/mobile/src/i18n/locales/ms.json | 4 ++-- apps/mobile/src/i18n/locales/mt.json | 4 ++-- apps/mobile/src/i18n/locales/my.json | 4 ++-- apps/mobile/src/i18n/locales/nb.json | 4 ++-- apps/mobile/src/i18n/locales/ne.json | 4 ++-- apps/mobile/src/i18n/locales/nl.json | 4 ++-- apps/mobile/src/i18n/locales/om.json | 4 ++-- apps/mobile/src/i18n/locales/or.json | 4 ++-- apps/mobile/src/i18n/locales/pa.json | 4 ++-- apps/mobile/src/i18n/locales/pl.json | 4 ++-- apps/mobile/src/i18n/locales/ps.json | 4 ++-- apps/mobile/src/i18n/locales/pt-BR.json | 4 ++-- apps/mobile/src/i18n/locales/pt.json | 4 ++-- apps/mobile/src/i18n/locales/ro.json | 4 ++-- apps/mobile/src/i18n/locales/ru.json | 4 ++-- apps/mobile/src/i18n/locales/si.json | 4 ++-- apps/mobile/src/i18n/locales/sk.json | 4 ++-- apps/mobile/src/i18n/locales/sl.json | 4 ++-- apps/mobile/src/i18n/locales/so.json | 4 ++-- apps/mobile/src/i18n/locales/sq.json | 4 ++-- apps/mobile/src/i18n/locales/sr.json | 4 ++-- apps/mobile/src/i18n/locales/sv.json | 4 ++-- apps/mobile/src/i18n/locales/sw.json | 4 ++-- apps/mobile/src/i18n/locales/ta.json | 4 ++-- apps/mobile/src/i18n/locales/te.json | 4 ++-- apps/mobile/src/i18n/locales/th.json | 4 ++-- apps/mobile/src/i18n/locales/tr.json | 4 ++-- apps/mobile/src/i18n/locales/uk.json | 4 ++-- apps/mobile/src/i18n/locales/ur.json | 4 ++-- apps/mobile/src/i18n/locales/uz.json | 4 ++-- apps/mobile/src/i18n/locales/vi.json | 4 ++-- apps/mobile/src/i18n/locales/yo.json | 4 ++-- apps/mobile/src/i18n/locales/zh-Hans.json | 4 ++-- apps/mobile/src/i18n/locales/zh-Hant.json | 4 ++-- apps/mobile/src/i18n/locales/zu.json | 4 ++-- .../lib/kilo-pass/use-store-kilo-pass-purchase.ts | 12 +++++++----- 88 files changed, 181 insertions(+), 179 deletions(-) diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index f146232e95..4dbc31ebe3 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass is 'n outomaties-hernubare maandelikse intekening. Betaling word by bevestiging van aankoop van jou Apple ID gehef. Intekeninge hernu elke maand outomaties teen die prys wat vertoon word, tensy dit minstens 24 uur voor die einde van die huidige tydperk gekanselleer word. Bestuur of kanselleer enige tyd in jou App Store-rekeninginstellings.", "legalPrivacyPolicy": "Privaatheidsbeleid", "legalTermsOfUse": "Gebruiksvoorwaardes (EULA)", - "purchaseNotLinked": "Hierdie App Store-aankoop is nie aan jou Kilo-rekening gekoppel nie. Maak seker jy is aangemeld by die Apple ID wat die aankoop gemaak het, en probeer dan weer.", "purchaseDifferentAccount": "Hierdie App Store-aankoop is nie aan jou Kilo-rekening gekoppel nie. Teken in by die Apple-rekening wat vir die aankoop gebruik is, en probeer dan weer.", "restoreFailed": "Kon nie aankope herstel nie. Probeer weer.", "purchaseFailed": "Kon nie aankoop voltooi nie.", - "purchaseStartFailed": "Kon nie App Store-aankoop begin nie." + "purchaseStartFailed": "Kon nie App Store-aankoop begin nie.", + "purchaseOwnedByAnotherAccount": "Die Kilo Pass op hierdie Apple-rekening behoort aan 'n ander Kilo-rekening." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 35572ace71..1a4bcceb19 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass በራስ-ሰር የሚታደስ ወርሃዊ ምዝገባ ነው። ክፍያው ግዢውን ሲያረጋግጡ በApple ID ዎ ላይ ይጠየቃል። ምዝገባዎች ከወቅቱ ጊዜ ማብቂያ ቢያንስ 24 ሰዓታት በፊት ካልተሰረዙ በስተቀር በየወሩ በተጠቀሰው ዋጋ በራስ-ሰር ይታደሳሉ። በApp Store መለያ ቅንብሮችዎ ውስጥ በማንኛውም ጊዜ ያስተዳድሩ ወይም ይሰርዙ።", "legalPrivacyPolicy": "የግላዊነት ፖሊሲ", "legalTermsOfUse": "የአጠቃቀም ውሎች (EULA)", - "purchaseNotLinked": "ይህ የApp Store ግዢ ከKilo መለያዎ ጋር አልተገናኘም። ግዢውን ባደረገው Apple ID መግባትዎን ያረጋግጡ፣ ከዚያ እንደገና ይሞክሩ።", "purchaseDifferentAccount": "ይህ የApp Store ግዢ ከKilo መለያዎ ጋር አልተገናኘም። ለግዢው ወደተጠቀመው የApple መለያ ይግቡ፣ ከዚያ እንደገና ይሞክሩ።", "restoreFailed": "ግዢዎችን መመለስ አልተሳካም። እንደገና ይሞክሩ።", "purchaseFailed": "ግዢውን ማጠናቀቅ አልተሳካም።", - "purchaseStartFailed": "የApp Store ግዢን መጀመር አልተሳካም።" + "purchaseStartFailed": "የApp Store ግዢን መጀመር አልተሳካም።", + "purchaseOwnedByAnotherAccount": "በዚህ Apple Account ላይ ያለው Kilo Pass የሌላ የKilo መለያ ነው።" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 6c57440b05..72d1599867 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -2319,11 +2319,11 @@ "legalDisclosure": "Kilo Pass اشتراك شهري متجدد تلقائيًا. يتم خصم الدفعة من Apple ID الخاص بك عند تأكيد الشراء. تتجدد الاشتراكات تلقائيًا كل شهر بالسعر المعروض ما لم يتم الإلغاء قبل 24 ساعة على الأقل من نهاية الفترة الحالية. يمكنك الإدارة أو الإلغاء في أي وقت من إعدادات حسابك في App Store.", "legalPrivacyPolicy": "سياسة الخصوصية", "legalTermsOfUse": "شروط الاستخدام (EULA)", - "purchaseNotLinked": "عملية الشراء هذه من App Store غير مرتبطة بحساب Kilo الخاص بك. تأكد من تسجيل الدخول إلى Apple ID الذي أجرى عملية الشراء، ثم حاول مرة أخرى.", "purchaseDifferentAccount": "عملية الشراء هذه من App Store غير مرتبطة بحساب Kilo الخاص بك. سجّل الدخول إلى حساب Apple المستخدم للشراء، ثم حاول مرة أخرى.", "restoreFailed": "فشل استعادة المشتريات. حاول مرة أخرى.", "purchaseFailed": "فشل إكمال عملية الشراء.", - "purchaseStartFailed": "فشل بدء عملية شراء من App Store." + "purchaseStartFailed": "فشل بدء عملية شراء من App Store.", + "purchaseOwnedByAnotherAccount": "ينتمي Kilo Pass على حساب Apple هذا إلى حساب Kilo مختلف." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index 8f961424b6..a0d90d8ca2 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass avtomatik yenilənən aylıq abunədir. Ödəniş alışın təsdiqində Apple ID-nizdən çıxılır. Abunəliklər cari dövrün sonuna ən azı 24 saat qalmış ləğv edilmədiyi halda hər ay göstərilən qiymətlə avtomatik yenilənir. İstənilən vaxt App Store hesabınızın parametrlərində idarə edin və ya ləğv edin.", "legalPrivacyPolicy": "Məxfilik Siyasəti", "legalTermsOfUse": "İstifadə Şərtləri (EULA)", - "purchaseNotLinked": "Bu App Store alışı Kilo hesabınıza bağlı deyil. Alışı edən Apple ID ilə daxil olduğunuza əmin olun, sonra yenidən cəhd edin.", "purchaseDifferentAccount": "Bu App Store alışı Kilo hesabınıza bağlı deyil. Alış üçün istifadə edilmiş Apple Hesabına daxil olun, sonra yenidən cəhd edin.", "restoreFailed": "Alışlar bərpa edilə bilmədi. Yenidən cəhd edin.", "purchaseFailed": "Alış tamamlana bilmədi.", - "purchaseStartFailed": "App Store alışı başladıla bilmədi." + "purchaseStartFailed": "App Store alışı başladıla bilmədi.", + "purchaseOwnedByAnotherAccount": "Bu Apple Hesabındakı Kilo Pass başqa Kilo hesabına aiddir." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index 26fa4582f9..16cb1166f0 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -2746,11 +2746,11 @@ "legalDisclosure": "Kilo Pass — гэта аўтападоўжвальная штомесячная падпіска. Плацёж спаганяецца з вашага Apple ID пры пацвярджэнні пакупкі. Падпіска аўтаматычна падаўжаецца кожны месяц па паказанай цане, калі яна не адменена не менш чым за 24 гадзіны да заканчэння бягучага перыяду. Кіруйце ёю або адменіце яе ў любы час у наладах уліковага запісу App Store.", "legalPrivacyPolicy": "Палітыка прыватнасці", "legalTermsOfUse": "Умовы выкарыстання (EULA)", - "purchaseNotLinked": "Гэтая пакупка ў App Store не звязана з вашым уліковым запісам Kilo. Пераканайцеся, што вы ўвайшлі ў Apple ID, з якога была зроблена пакупка, і паспрабуйце яшчэ раз.", "purchaseDifferentAccount": "Гэтая пакупка ў App Store не звязана з вашым уліковым запісам Kilo. Увайдзіце ў Apple Account, які выкарыстоўваўся для пакупкі, і паспрабуйце яшчэ раз.", "restoreFailed": "Не атрымалася аднавіць пакупкі. Паспрабуйце яшчэ раз.", "purchaseFailed": "Не атрымалася завяршыць пакупку.", - "purchaseStartFailed": "Не атрымалася пачаць пакупку ў App Store." + "purchaseStartFailed": "Не атрымалася пачаць пакупку ў App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass на гэтым Apple Account належыць іншаму ўліковаму запісу Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index 1680680f24..6f34a605a4 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass е автоматично подновявана месечна абонаментна услуга. Плащането се начислява към вашия Apple ID при потвърждаване на покупката. Абонаментът се подновява автоматично всеки месец на показаната цена, освен ако не го отмените поне 24 часа преди края на текущия период. Управлявайте или отменяйте по всяко време в настройките на вашия акаунт в App Store.", "legalPrivacyPolicy": "Политика за поверителност", "legalTermsOfUse": "Условия за ползване (EULA)", - "purchaseNotLinked": "Тази покупка от App Store не е свързана с вашия Kilo акаунт. Уверете се, че сте влезли в Apple ID, от който е направена покупката, и опитайте отново.", "purchaseDifferentAccount": "Тази покупка от App Store не е свързана с вашия Kilo акаунт. Влезте в Apple акаунта, използван за покупката, и опитайте отново.", "restoreFailed": "Не можахме да възстановим покупките. Опитайте отново.", "purchaseFailed": "Не можахме да завършим покупката.", - "purchaseStartFailed": "Не можахме да започнем покупката в App Store." + "purchaseStartFailed": "Не можахме да започнем покупката в App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass на този Apple акаунт принадлежи на друг Kilo акаунт." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index 1f5fa6a615..7d3ff2beb7 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass একটি স্বয়ংক্রিয়-নবায়নযোগ্য মাসিক সাবস্ক্রিপশন। কেনার নিশ্চিতকরণে আপনার Apple ID থেকে পেমেন্ট নেওয়া হয়। সাবস্ক্রিপশন বর্তমান সময়সীমা শেষ হওয়ার কমপক্ষে 24 ঘণ্টা আগে বাতিল না করা হলে প্রতি মাসে দেখানো দামে স্বয়ংক্রিয়ভাবে নবায়ন হয়। আপনার App Store অ্যাকাউন্ট সেটিংসে যেকোনো সময় পরিচালনা বা বাতিল করুন।", "legalPrivacyPolicy": "গোপনীয়তা নীতি", "legalTermsOfUse": "ব্যবহারের শর্তাবলী (EULA)", - "purchaseNotLinked": "এই App Store ক্রয়টি আপনার Kilo অ্যাকাউন্টের সাথে লিঙ্ক করা নেই। নিশ্চিত করুন যে আপনি যে Apple ID দিয়ে ক্রয়টি করেছেন সেটিতে সাইন ইন করেছেন, তারপর আবার চেষ্টা করুন।", "purchaseDifferentAccount": "এই App Store ক্রয়টি আপনার Kilo অ্যাকাউন্টের সাথে লিঙ্ক করা নেই। ক্রয়ের জন্য ব্যবহৃত Apple Account-এ সাইন ইন করুন, তারপর আবার চেষ্টা করুন।", "restoreFailed": "ক্রয় পুনরুদ্ধার করা যায়নি। আবার চেষ্টা করুন।", "purchaseFailed": "ক্রয় সম্পূর্ণ করা যায়নি।", - "purchaseStartFailed": "App Store ক্রয় শুরু করা যায়নি।" + "purchaseStartFailed": "App Store ক্রয় শুরু করা যায়নি।", + "purchaseOwnedByAnotherAccount": "এই Apple Account-এ Kilo Pass একটি ভিন্ন Kilo অ্যাকাউন্টের।" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index 2b1fa6bff9..a43bd79950 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -2726,11 +2726,11 @@ "legalDisclosure": "Kilo Pass je pretplata s automatskim obnavljanjem. Uplata se naplaćuje na vaš Apple ID pri potvrdi kupovine. Pretplate se automatski obnavljaju svakog mjeseca po prikazanoj cijeni, osim ako ih otkažete najmanje 24 sata prije kraja tekućeg razdoblja. Upravljajte ili otkažite u bilo kojem trenutku u postavkama vašeg App Store računa.", "legalPrivacyPolicy": "Politika privatnosti", "legalTermsOfUse": "Uvjeti korištenja (EULA)", - "purchaseNotLinked": "Ova kupovina u App Store-u nije povezana s vašim Kilo nalogom. Provjerite da ste prijavljeni na Apple ID s kojeg je kupovina napravljena, zatim pokušajte ponovo.", "purchaseDifferentAccount": "Ova kupovina u App Store-u nije povezana s vašim Kilo nalogom. Prijavite se na Apple nalog korišten za kupovinu, zatim pokušajte ponovo.", "restoreFailed": "Vraćanje kupovina nije uspjelo. Pokušajte ponovo.", "purchaseFailed": "Dovršavanje kupovine nije uspjelo.", - "purchaseStartFailed": "Pokretanje kupovine u App Store-u nije uspjelo." + "purchaseStartFailed": "Pokretanje kupovine u App Store-u nije uspjelo.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index cf11d78581..fb5355acfe 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -2726,11 +2726,11 @@ "legalDisclosure": "Kilo Pass és una subscripció mensual de renovació automàtica. El pagament es carrega al vostre Apple ID en confirmar la compra. Les subscripcions es renoven automàticament cada mes al preu mostrat tret que es cancel·lin com a mínim 24 hores abans del final del període actual. Gestioneu-les o cancel·leu-les en qualsevol moment a la configuració del compte de l'App Store.", "legalPrivacyPolicy": "Política de privadesa", "legalTermsOfUse": "Condicions d'ús (EULA)", - "purchaseNotLinked": "Aquesta compra d'App Store no està vinculada al teu compte de Kilo. Assegura't que has iniciat la sessió amb l'Apple ID que va fer la compra, i torna-ho a provar.", "purchaseDifferentAccount": "Aquesta compra d'App Store no està vinculada al teu compte de Kilo. Inicia la sessió amb el compte d'Apple que es va utilitzar per a la compra, i torna-ho a provar.", "restoreFailed": "No s'han pogut restaurar les compres. Torna-ho a provar.", "purchaseFailed": "No s'ha pogut completar la compra.", - "purchaseStartFailed": "No s'ha pogut iniciar la compra a l'App Store." + "purchaseStartFailed": "No s'ha pogut iniciar la compra a l'App Store.", + "purchaseOwnedByAnotherAccount": "El Kilo Pass d'aquest Apple Account pertany a un compte de Kilo diferent." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index 85cf831fbe..0dd93ca7cd 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass بەشداربوونێکی مانگانەیە کە خۆکارانە نوێ دەبێتەوە. لە کاتی پشتڕاستکردنەوەی کڕینەکە، پارە لە Apple IDی تۆ دەبەسترێت. بەشداربوونەکان هەر مانگێک بە بەهای نیشاندراو خۆکارانە نوێ دەبنەوە مەگەر لانیکەم ٢٤ کاتژمێر پێش کۆتایی ماوەی ئێستا هەڵنەوەشێنرێنەوە. لە هەر کاتێکدا لە ڕێکخستنەکانی هەژماری App Store بەڕێوەی ببە یان هەڵیبوەشێنەوە.", "legalPrivacyPolicy": "ڕێسای تایبەتمەندی", "legalTermsOfUse": "مەرجەکانی بەکارهێنان (EULA)", - "purchaseNotLinked": "ئەم کڕینەی App Store بە هەژماری Kiloـی تۆ نەبەستراوە. دڵنیابە لەوەی بەو Apple IDـە چوویتە ژوورەوە کە کڕینەکەی کردووە، پاشان دووبارە هەوڵبدەرەوە.", "purchaseDifferentAccount": "ئەم کڕینەی App Store بە هەژماری Kiloـی تۆ نەبەستراوە. بەو هەژمارەی Apple بچۆ ژوورەوە کە بۆ کڕینەکە بەکارهاتووە، پاشان دووبارە هەوڵبدەرەوە.", "restoreFailed": "گەڕاندنەوەی کڕینەکان شکستی هێنا. دووبارە هەوڵبدەرەوە.", "purchaseFailed": "تەواوکردنی کڕین شکستی هێنا.", - "purchaseStartFailed": "دەستپێکردنی کڕینی App Store شکستی هێنا." + "purchaseStartFailed": "دەستپێکردنی کڕینی App Store شکستی هێنا.", + "purchaseOwnedByAnotherAccount": "Kilo Passـی ئەم هەژمارەی Apple سەر بە هەژمارەیەکی دیکەی Kilo یە." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index 671b273f94..fd83c9e5ed 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -2746,11 +2746,11 @@ "legalDisclosure": "Kilo Pass je měsíční předplatné s automatickou obnovou. Platba je účtována na váš Apple ID při potvrzení nákupu. Předplatné se automaticky obnovuje každý měsíc za uvedenou cenu, pokud jej nezrušíte nejméně 24 hodin před koncem aktuálního období. Předplatné můžete kdykoli spravovat nebo zrušit v nastavení účtu App Store.", "legalPrivacyPolicy": "Zásady ochrany osobních údajů", "legalTermsOfUse": "Podmínky použití (EULA)", - "purchaseNotLinked": "Tento nákup v App Store není propojen s vaším účtem Kilo. Ujistěte se, že jste přihlášeni k Apple ID, které nákup provedlo, a zkuste to znovu.", "purchaseDifferentAccount": "Tento nákup v App Store není propojen s vaším účtem Kilo. Přihlaste se k Apple účtu použitému pro nákup a zkuste to znovu.", "restoreFailed": "Obnovení nákupů se nezdařilo. Zkuste to znovu.", "purchaseFailed": "Nákup se nepodařilo dokončit.", - "purchaseStartFailed": "Nákup v App Store se nepodařilo zahájit." + "purchaseStartFailed": "Nákup v App Store se nepodařilo zahájit.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na tomto Apple účtu patří k jinému účtu Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index b3c88f21d5..6ddec01eed 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -2786,11 +2786,11 @@ "legalDisclosure": "Tanysgrifiad misol sy'n adnewyddu'n awtomatig yw Kilo Pass. Codir y taliad i'ch Apple ID ar gadarnhad o'r pryniant. Mae tanysgrifiadau'n adnewyddu'n awtomatig bob mis am y pris a ddangosir oni bai eich bod yn canslo o leiaf 24 awr cyn diwedd y cyfnod cyfredol. Rheolwch neu ganslwch unrhyw bryd yng ngosodiadau cyfrif eich App Store.", "legalPrivacyPolicy": "Polisi Preifatrwydd", "legalTermsOfUse": "Telerau Defnyddio (EULA)", - "purchaseNotLinked": "Nid yw'r pryniant App Store hwn wedi'i gysylltu â'ch cyfrif Kilo. Sicrhewch eich bod wedi mewngofnodi i'r Apple ID a wnaeth y pryniant, yna rhowch gynnig arall arni.", "purchaseDifferentAccount": "Nid yw'r pryniant App Store hwn wedi'i gysylltu â'ch cyfrif Kilo. Mewngofnodwch i'r Apple Account a ddefnyddiwyd ar gyfer y pryniant, yna rhowch gynnig arall arni.", "restoreFailed": "Methodd adfer pryniannau. Rhowch gynnig arall arni.", "purchaseFailed": "Methodd cwblhau'r pryniant.", - "purchaseStartFailed": "Methodd cychwyn pryniant App Store." + "purchaseStartFailed": "Methodd cychwyn pryniant App Store.", + "purchaseOwnedByAnotherAccount": "Mae'r Kilo Pass ar yr Apple Account hwn yn perthyn i gyfrif Kilo gwahanol." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index 12b21b99ab..77be78491e 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass er et automatisk fornyeligt månedligt abonnement. Betaling opkræves på din Apple ID ved bekræftelse af købet. Abonnementer fornyes automatisk hver måned til den viste pris, medmindre de annulleres mindst 24 timer før udløbet af den aktuelle periode. Administrér eller annullér når som helst i dine App Store-kontoindstillinger.", "legalPrivacyPolicy": "Fortrolighedspolitik", "legalTermsOfUse": "Vilkår for brug (EULA)", - "purchaseNotLinked": "Dette App Store-køb er ikke knyttet til din Kilo-konto. Sørg for, at du er logget ind på den Apple ID, der foretog købet, og prøv igen.", "purchaseDifferentAccount": "Dette App Store-køb er ikke knyttet til din Kilo-konto. Log ind på den Apple-konto, der blev brugt til købet, og prøv igen.", "restoreFailed": "Kunne ikke gendanne køb. Prøv igen.", "purchaseFailed": "Kunne ikke fuldføre købet.", - "purchaseStartFailed": "Kunne ikke starte App Store-købet." + "purchaseStartFailed": "Kunne ikke starte App Store-købet.", + "purchaseOwnedByAnotherAccount": "Kilo Pass på denne Apple-konto tilhører en anden Kilo-konto." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index 5bb284af61..e80be06977 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass ist ein automatisch verlängerbares Monatsabonnement. Die Zahlung wird bei Kaufbestätigung deiner Apple-ID belastet. Abonnements verlängern sich automatisch jeden Monat zum angezeigten Preis, sofern sie nicht mindestens 24 Stunden vor Ende des aktuellen Zeitraums gekündigt werden. Jederzeit in deinen App-Store-Kontoeinstellungen verwalten oder kündigen.", "legalPrivacyPolicy": "Datenschutzrichtlinie", "legalTermsOfUse": "Nutzungsbedingungen (EULA)", - "purchaseNotLinked": "Dieser App-Store-Kauf ist nicht mit deinem Kilo-Konto verknüpft. Stelle sicher, dass du mit der Apple-ID angemeldet bist, mit der der Kauf getätigt wurde, und versuche es erneut.", "purchaseDifferentAccount": "Dieser App-Store-Kauf ist nicht mit deinem Kilo-Konto verknüpft. Melde dich mit dem Apple-Konto an, mit dem der Kauf getätigt wurde, und versuche es erneut.", "restoreFailed": "Käufe konnten nicht wiederhergestellt werden. Versuche es erneut.", "purchaseFailed": "Der Kauf konnte nicht abgeschlossen werden.", - "purchaseStartFailed": "Der App-Store-Kauf konnte nicht gestartet werden." + "purchaseStartFailed": "Der App-Store-Kauf konnte nicht gestartet werden.", + "purchaseOwnedByAnotherAccount": "Der Kilo Pass auf diesem Apple-Konto gehört zu einem anderen Kilo-Konto." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index d450067f8b..c3d777f85c 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Το Kilo Pass είναι μια συνδρομή με αυτόματη ανανέωση σε μηνιαία βάση. Η πληρωμή χρεώνεται στο Apple ID σας κατά την επιβεβαίωση της αγοράς. Οι συνδρομές ανανεώνονται αυτόματα κάθε μήνα στην τιμή που εμφανίζεται, εκτός εάν ακυρωθούν τουλάχιστον 24 ώρες πριν από το τέλος της τρέχουσας περιόδου. Διαχειριστείτε ή ακυρώστε ανά πάσα στιγμή στις ρυθμίσεις του λογαριασμού σας στο App Store.", "legalPrivacyPolicy": "Πολιτική Απορρήτου", "legalTermsOfUse": "Όροι Χρήσης (EULA)", - "purchaseNotLinked": "Αυτή η αγορά από το App Store δεν συνδέεται με τον λογαριασμό σας στο Kilo. Βεβαιωθείτε ότι έχετε συνδεθεί στο Apple ID με το οποίο έγινε η αγορά και δοκιμάστε ξανά.", "purchaseDifferentAccount": "Αυτή η αγορά από το App Store δεν συνδέεται με τον λογαριασμό σας στο Kilo. Συνδεθείτε με τον Λογαριασμό Apple που χρησιμοποιήθηκε για την αγορά και δοκιμάστε ξανά.", "restoreFailed": "Δεν ήταν δυνατή η επαναφορά των αγορών. Δοκιμάστε ξανά.", "purchaseFailed": "Δεν ήταν δυνατή η ολοκλήρωση της αγοράς.", - "purchaseStartFailed": "Δεν ήταν δυνατή η έναρξη της αγοράς από το App Store." + "purchaseStartFailed": "Δεν ήταν δυνατή η έναρξη της αγοράς από το App Store.", + "purchaseOwnedByAnotherAccount": "Το Kilo Pass σε αυτόν τον Λογαριασμό Apple ανήκει σε διαφορετικό λογαριασμό Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index 83bd5f2323..a733967664 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass is an auto-renewable monthly subscription. Payment is charged to your Apple ID at confirmation of purchase. Subscriptions renew automatically each month at the price shown unless canceled at least 24 hours before the end of the current period. Manage or cancel anytime in your App Store account settings.", "legalPrivacyPolicy": "Privacy Policy", "legalTermsOfUse": "Terms of Use (EULA)", - "purchaseNotLinked": "This App Store purchase isn't linked to your Kilo account. Make sure you're signed in to the Apple ID that made the purchase, then try again.", "purchaseDifferentAccount": "This App Store purchase isn't linked to your Kilo account. Sign in to the Apple Account used for the purchase, then try again.", "restoreFailed": "Failed to restore purchases. Try again.", "purchaseFailed": "Failed to complete purchase.", - "purchaseStartFailed": "Failed to start App Store purchase." + "purchaseStartFailed": "Failed to start App Store purchase.", + "purchaseOwnedByAnotherAccount": "The Kilo Pass on this Apple Account belongs to a different Kilo account." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index d2947c09bb..0709f9d79c 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -2280,11 +2280,11 @@ "legalDisclosure": "Kilo Pass es una suscripción mensual renovable automáticamente. El pago se cobra en tu Apple ID al confirmar la compra. Las suscripciones se renuevan automáticamente cada mes al precio indicado, a menos que se cancelen al menos 24 horas antes del final del período actual. Puedes gestionar o cancelar la suscripción en cualquier momento en los ajustes de tu cuenta de App Store.", "legalPrivacyPolicy": "Política de privacidad", "legalTermsOfUse": "Términos de uso (EULA)", - "purchaseNotLinked": "Esta compra de App Store no está vinculada a tu cuenta de Kilo. Asegúrate de haber iniciado sesión con el Apple ID con el que se realizó la compra e inténtalo de nuevo.", "purchaseDifferentAccount": "Esta compra de App Store no está vinculada a tu cuenta de Kilo. Inicia sesión con la cuenta de Apple utilizada para la compra e inténtalo de nuevo.", "restoreFailed": "No se pudieron restaurar las compras. Inténtalo de nuevo.", "purchaseFailed": "No se pudo completar la compra.", - "purchaseStartFailed": "No se pudo iniciar la compra de App Store." + "purchaseStartFailed": "No se pudo iniciar la compra de App Store.", + "purchaseOwnedByAnotherAccount": "El Kilo Pass de esta cuenta de Apple pertenece a una cuenta de Kilo diferente." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index cf308e65d0..a0fc6a9b60 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass on automaatselt uuenev igakuine tellimus. Makse võetakse sinu Apple ID-lt ostu kinnitamisel. Tellimus uueneb iga kuu automaatselt näidatud hinnaga, kui sa seda ei tühista vähemalt 24 tundi enne jooksva perioodi lõppu. Halda või tühista tellimust igal ajal oma App Store konto seadetes.", "legalPrivacyPolicy": "Privaatsuspoliitika", "legalTermsOfUse": "Kasutustingimused (EULA)", - "purchaseNotLinked": "See App Store'i ost pole sinu Kilo kontoga seotud. Veendu, et oled sisse logitud selle Apple ID-ga, millega ost tehti, ja proovi uuesti.", "purchaseDifferentAccount": "See App Store'i ost pole sinu Kilo kontoga seotud. Logi sisse ostuks kasutatud Apple kontoga ja proovi uuesti.", "restoreFailed": "Ostude taastamine ebaõnnestus. Proovi uuesti.", "purchaseFailed": "Ostu lõpetamine ebaõnnestus.", - "purchaseStartFailed": "App Store'i ostu alustamine ebaõnnestus." + "purchaseStartFailed": "App Store'i ostu alustamine ebaõnnestus.", + "purchaseOwnedByAnotherAccount": "Selle Apple kontoga seotud Kilo Pass kuulub teisele Kilo kontole." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index a3a4894f51..0f10503e56 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass hilero automatikoki berritzen den harpidetza da. Erosketa baieztatzen denean, ordainketa zure Apple ID-ra kobratzen da. Harpidetzak automatikoki berritzen dira hilero agertzen den prezioan, uneko aldia amaitu baino 24 ordu lehenago gutxienez ezeztatu ezean. Kudeatu edo ezeztatu edonoiz zure App Store kontuaren ezarpenetan.", "legalPrivacyPolicy": "Pribatutasun-politika", "legalTermsOfUse": "Erabilera-baldintzak (EULA)", - "purchaseNotLinked": "App Store-ko erosketa hau ez dago zure Kilo kontuarekin lotuta. Ziurtatu erosketaren jabe den Apple IDrekin saioa hasi duzula, eta saiatu berriro.", "purchaseDifferentAccount": "App Store-ko erosketa hau ez dago zure Kilo kontuarekin lotuta. Hasi saioa erosketarako erabilitako Apple kontuarekin, eta saiatu berriro.", "restoreFailed": "Ezin dira erosketa berreskuratu. Saiatu berriro.", "purchaseFailed": "Ezin izan da erosketa amaitu.", - "purchaseStartFailed": "Ezin izan da App Store-ko erosketa hasi." + "purchaseStartFailed": "Ezin izan da App Store-ko erosketa hasi.", + "purchaseOwnedByAnotherAccount": "Apple kontu honetako Kilo Pass beste Kilo kontu bati dagokio." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index c7c21ada1a..9e5c8a599a 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass یک اشتراک ماهانه با تمدید خودکار است. پرداخت در تأیید خرید از Apple ID شما کسر میشود. اشتراکها هر ماه بهصورت خودکار با قیمت نشاندادهشده تمدید میشوند، مگر اینکه حداقل ۲۴ ساعت قبل از پایان دوره فعلی لغو شوند. هر زمان میتوانید در تنظیمات حساب App Store خود آن را مدیریت یا لغو کنید.", "legalPrivacyPolicy": "خطمشی حریم خصوصی", "legalTermsOfUse": "شرایط استفاده (EULA)", - "purchaseNotLinked": "این خرید App Store به حساب Kilo شما متصل نیست. مطمئن شوید با Apple ID چی که خرید با آن انجام شده وارد شده‌اید، سپس دوباره تلاش کنید.", "purchaseDifferentAccount": "این خرید App Store به حساب Kilo شما متصل نیست. با Apple Account مورد استفاده برای خرید وارد شوید، سپس دوباره تلاش کنید.", "restoreFailed": "بازیابی خریدها ممکن نشد. دوباره تلاش کنید.", "purchaseFailed": "تکمیل خرید ممکن نشد.", - "purchaseStartFailed": "شروع خرید App Store ممکن نشد." + "purchaseStartFailed": "شروع خرید App Store ممکن نشد.", + "purchaseOwnedByAnotherAccount": "Kilo Pass روی این Apple Account متعلق به یک حساب Kilo دیگر است." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 9a33dab036..4677953df5 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass on automaattisesti uusiutuva kuukausitilaus. Maksu veloitetaan Apple ID:stäsi oston vahvistuksen yhteydessä. Tilaus uusiutuu automaattisesti joka kuukausi näytettyyn hintaan, ellei sitä peruuteta vähintään 24 tuntia ennen nykyisen jakson päättymistä. Hallinnoi tai peruuta milloin tahansa App Store -tilin asetuksissa.", "legalPrivacyPolicy": "Tietosuojakäytäntö", "legalTermsOfUse": "Käyttöehdot (EULA)", - "purchaseNotLinked": "Tämä App Store -osto ei ole liitetty Kilo-tiliisi. Varmista, että olet kirjautunut Apple ID:llä, jolla osto tehtiin, ja yritä uudelleen.", "purchaseDifferentAccount": "Tämä App Store -osto ei ole liitetty Kilo-tiliisi. Kirjaudu ostokseen käytetyllä Apple-tilillä ja yritä uudelleen.", "restoreFailed": "Ostosten palauttaminen epäonnistui. Yritä uudelleen.", "purchaseFailed": "Oston viimeistely epäonnistui.", - "purchaseStartFailed": "App Store -oston aloittaminen epäonnistui." + "purchaseStartFailed": "App Store -oston aloittaminen epäonnistui.", + "purchaseOwnedByAnotherAccount": "Tämän Apple-tilin Kilo Pass kuuluu eri Kilo-tilille." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index a5d7f9c975..8f103a0d85 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Ang Kilo Pass ay isang auto-renewable na buwanang subscription. Babayaran ang bayad sa iyong Apple ID kapag nakumpirma ang pagbili. Awtomatikong nire-renew ang mga subscription bawat buwan sa ipinapakitang presyo maliban kung kinansela nang hindi bababa sa 24 na oras bago matapos ang kasalukuyang panahon. Pamahalaan o kanselahin anumang oras sa iyong mga setting ng App Store account.", "legalPrivacyPolicy": "Patakaran sa Privacy", "legalTermsOfUse": "Mga Tuntunin ng Paggamit (EULA)", - "purchaseNotLinked": "Hindi naka-link ang pagbiling ito sa App Store sa iyong Kilo account. Siguraduhing naka-sign in ka sa Apple ID na bumili, pagkatapos subukan muli.", "purchaseDifferentAccount": "Hindi naka-link ang pagbiling ito sa App Store sa iyong Kilo account. Mag-sign in sa Apple Account na ginamit sa pagbili, pagkatapos subukan muli.", "restoreFailed": "Nabigong i-restore ang mga pagbili. Subukan muli.", "purchaseFailed": "Nabigong kumpletuhin ang pagbili.", - "purchaseStartFailed": "Nabigong simulan ang pagbili sa App Store." + "purchaseStartFailed": "Nabigong simulan ang pagbili sa App Store.", + "purchaseOwnedByAnotherAccount": "Ang Kilo Pass sa Apple Account na ito ay kabilang sa ibang Kilo account." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index ed5bbf7e60..66dd31f212 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -2208,11 +2208,11 @@ "legalDisclosure": "Kilo Pass est un abonnement mensuel à renouvellement automatique. Le paiement est prélevé sur votre identifiant Apple à la confirmation de l'achat. Les abonnements se renouvellent automatiquement chaque mois au prix indiqué, sauf annulation au moins 24 heures avant la fin de la période en cours. Gérez ou annulez à tout moment dans les réglages de votre compte App Store.", "legalPrivacyPolicy": "Politique de confidentialité", "legalTermsOfUse": "Conditions d'utilisation (CLUF)", - "purchaseNotLinked": "Cet achat App Store n'est pas lié à votre compte Kilo. Assurez-vous d'être connecté avec l'Apple ID qui a effectué l'achat, puis réessayez.", "purchaseDifferentAccount": "Cet achat App Store n'est pas lié à votre compte Kilo. Connectez-vous avec le compte Apple utilisé pour l'achat, puis réessayez.", "restoreFailed": "Échec de la restauration des achats. Réessayez.", "purchaseFailed": "Échec de l'achat.", - "purchaseStartFailed": "Impossible de démarrer l'achat sur l'App Store." + "purchaseStartFailed": "Impossible de démarrer l'achat sur l'App Store.", + "purchaseOwnedByAnotherAccount": "Le Kilo Pass sur ce compte Apple appartient à un autre compte Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index db03ea8114..1fad3b7a81 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -2766,11 +2766,11 @@ "legalDisclosure": "Is síntiús míosúil uath-fhionnuaire é Kilo Pass. Gearrtar an táille ar do Apple ID ag deimhniú an cheannaigh. Déanann síntiúis athnuachan go huathoibríoch gach mí ar an bpraghas a thaispeántar mura gcuirtear ceal orthu 24 uair an chloig ar a laghad roimh dheireadh na tréimhse reatha. Bainistigh nó cuir ceal orthu am ar bith i do shocruithe cuntais App Store.", "legalPrivacyPolicy": "Beartas Príobháideachta", "legalTermsOfUse": "Téarmaí Úsáide (EULA)", - "purchaseNotLinked": "Níl an ceannach App Store seo nasctha le do chuntas Kilo. Déan cinnte go bhfuil tú sínithe isteach leis an Apple ID a rinne an ceannach, ansin bain triail as arís.", "purchaseDifferentAccount": "Níl an ceannach App Store seo nasctha le do chuntas Kilo. Sínigh isteach leis an Apple Account a úsáideadh don cheannach, ansin bain triail as arís.", "restoreFailed": "Theip ar na ceannacháin a chur ar ais. Bain triail as arís.", "purchaseFailed": "Theip ar an gceannach a chríochnú.", - "purchaseStartFailed": "Theip ar cheannach App Store a thosú." + "purchaseStartFailed": "Theip ar cheannach App Store a thosú.", + "purchaseOwnedByAnotherAccount": "Baineann an Kilo Pass ar an Apple Account seo le cuntas Kilo éagsúil." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index dae1af7f21..d323d06143 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass é unha subscrición mensual auto-renovable. O pago cobrase na túa conta de Apple no momento da compra. As subscricións renóvanse automaticamente cada mes ao prezo indicado a menos que se cancelen polo menos 24 horas antes de que remate o período actual. Xestiona ou cancela en calquera momento na configuración da túa conta da App Store.", "legalPrivacyPolicy": "Política de privacidade", "legalTermsOfUse": "Termos de uso (EULA)", - "purchaseNotLinked": "Esta compra da App Store non está ligada á túa conta de Kilo. Asegúrate de iniciar sesión co Apple ID que fixo a compra e proba de novo.", "purchaseDifferentAccount": "Esta compra da App Store non está ligada á túa conta de Kilo. Inicia sesión coa conta de Apple usada para a compra e proba de novo.", "restoreFailed": "Non se puideron restaurar as compras. Proba de novo.", "purchaseFailed": "Non se puido completar a compra.", - "purchaseStartFailed": "Non se puido iniciar a compra na App Store." + "purchaseStartFailed": "Non se puido iniciar a compra na App Store.", + "purchaseOwnedByAnotherAccount": "O Kilo Pass desta conta de Apple pertence a outra conta de Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index c47654f1ae..f25cb64b4c 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass એ આપમેળે રિન્યુ થતું માસિક સબ્સ્ક્રિપ્શન છે. ખરીદીની પુષ્ટિ પર તમારા Apple ID પર ચુકવણી કરવામાં આવે છે. જ્યાં સુધી વર્તમાન સમયગાળાના અંતના 24 કલાક પહેલાં રદ ન કરવામાં આવે ત્યાં સુધી સબ્સ્ક્રિપ્શન દર મહિને દર્શાવેલ કિંમતે આપમેળે રિન્યુ થાય છે. તમારી App Store એકાઉન્ટ સેટિંગ્સમાં ગમે ત્યારે મેનેજ કરો અથવા રદ કરો.", "legalPrivacyPolicy": "ગોપનીયતા નીતિ", "legalTermsOfUse": "ઉપયોગની શરતો (EULA)", - "purchaseNotLinked": "આ App Store ખરીદી તમારા Kilo એકાઉન્ટ સાથે લિંક થયેલી નથી. ખાતરી કરો કે તમે ખરીદી કરનાર Apple ID પર સાઇન ઇન છો, પછી ફરી પ્રયત્ન કરો.", "purchaseDifferentAccount": "આ App Store ખરીદી તમારા Kilo એકાઉન્ટ સાથે લિંક થયેલી નથી. ખરીદી માટે વપરાયેલા Apple એકાઉન્ટમાં સાઇન ઇન કરો, પછી ફરી પ્રયત્ન કરો.", "restoreFailed": "ખરીદીઓ પુનઃસ્થાપિત કરવામાં નિષ્ફળ. ફરી પ્રયત્ન કરો.", "purchaseFailed": "ખરીદી પૂર્ણ કરવામાં નિષ્ફળ.", - "purchaseStartFailed": "App Store ખરીદી શરૂ કરવામાં નિષ્ફળ." + "purchaseStartFailed": "App Store ખરીદી શરૂ કરવામાં નિષ્ફળ.", + "purchaseOwnedByAnotherAccount": "આ Apple ખાતા પરનું Kilo Pass એ અલગ Kilo ખાતા સાથે સંબંધિત છે." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index aeffbc74c4..d73015026c 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass biyan kuɗi ne na wata-wata wanda ke sabunta kansa. Ana cajin biyan kuɗi ga Apple ID ɗinka a lokacin tabbatar da siyayya. Biyan kuɗi yana sabuntawa kowace wata a farashin da aka nuna sai dai idan an soke shi aƙalla sa'o'i 24 kafin ƙarshen lokaci na yanzu. Sarrafa ko soke a kowane lokaci a saitunan asusunka na App Store.", "legalPrivacyPolicy": "Manufofin Sirri", "legalTermsOfUse": "Sharuɗɗan Amfani (EULA)", - "purchaseNotLinked": "Wannan sayayyar App Store ba a haɗa ta da asusunka na Kilo ba. Tabbatar an shiga da Apple ID ɗin da ya yi sayayyar, sannan sake gwadawa.", "purchaseDifferentAccount": "Wannan sayayyar App Store ba a haɗa ta da asusunka na Kilo ba. Shiga da Apple Account ɗin da aka yi amfani da shi don sayayyar, sannan sake gwadawa.", "restoreFailed": "An kasa maido da sayayya. Sake gwadawa.", "purchaseFailed": "An kasa kammala sayayya.", - "purchaseStartFailed": "An kasa fara sayayyar App Store." + "purchaseStartFailed": "An kasa fara sayayyar App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass akan wannan Apple Account na wani asusun Kilo ne daban." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index 7d3d6f17cd..c01753bc3e 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -2280,11 +2280,11 @@ "legalDisclosure": "Kilo Pass הוא מנוי חודשי שמתחדש אוטומטית. התשלום נגבה מחשבון Apple שלך בעת אישור הרכישה. המנוי מתחדש אוטומטית בכל חודש במחיר המוצג, אלא אם תבטל לפחות 24 שעות לפני סוף התקופה הנוכחית. נהל או בטל בכל עת בהגדרות חשבון App Store שלך.", "legalPrivacyPolicy": "מדיניות פרטיות", "legalTermsOfUse": "תנאי שימוש (EULA)", - "purchaseNotLinked": "רכישה זו ב-App Store אינה מקושרת לחשבון Kilo שלך. ודא שאתה מחובר ל-Apple ID שביצע את הרכישה, ולאחר מכן נסה שוב.", "purchaseDifferentAccount": "רכישה זו ב-App Store אינה מקושרת לחשבון Kilo שלך. היכנס לחשבון Apple שבו נעשה שימוש לרכישה, ולאחר מכן נסה שוב.", "restoreFailed": "שחזור הרכישות נכשל. נסה שוב.", "purchaseFailed": "השלמת הרכישה נכשלה.", - "purchaseStartFailed": "התחלת הרכישה ב-App Store נכשלה." + "purchaseStartFailed": "התחלת הרכישה ב-App Store נכשלה.", + "purchaseOwnedByAnotherAccount": "ה-Kilo Pass בחשבון Apple הזה שייך לחשבון Kilo אחר." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index 112b539aff..d430e747e3 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass एक स्वतः-नवीकरणीय मासिक सदस्यता है। खरीद की पुष्टि पर भुगतान आपके Apple ID से लिया जाता है। सदस्यताएँ हर महीने दिखाई गई कीमत पर स्वतः नवीकरण होती हैं, जब तक कि वर्तमान अवधि समाप्त होने से कम से कम 24 घंटे पहले रद्द न की जाएँ। इन्हें कभी भी अपनी App Store खाता सेटिंग्स में प्रबंधित या रद्द करें।", "legalPrivacyPolicy": "गोपनीयता नीति", "legalTermsOfUse": "उपयोग की शर्तें (EULA)", - "purchaseNotLinked": "यह App Store खरीदारी आपके Kilo खाते से लिंक नहीं है। सुनिश्चित करें कि आप उस Apple ID में साइन इन हैं जिसने खरीदारी की है, फिर फिर से प्रयास करें।", "purchaseDifferentAccount": "यह App Store खरीदारी आपके Kilo खाते से लिंक नहीं है। खरीदारी के लिए उपयोग किए गए Apple खाते में साइन इन करें, फिर फिर से प्रयास करें।", "restoreFailed": "खरीदारी पुनर्स्थापित करने में विफल। फिर से प्रयास करें।", "purchaseFailed": "खरीदारी पूरी करने में विफल।", - "purchaseStartFailed": "App Store खरीदारी शुरू करने में विफल।" + "purchaseStartFailed": "App Store खरीदारी शुरू करने में विफल।", + "purchaseOwnedByAnotherAccount": "इस Apple खाते का Kilo Pass किसी दूसरे Kilo खाते से संबंधित है।" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index 393e34aaf6..1b4a7ca3df 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -2726,11 +2726,11 @@ "legalDisclosure": "Kilo Pass je mjesečna pretplata s automatskim obnavljanjem. Plaćanje se naplaćuje s vašeg Apple ID-a pri potvrdi kupnje. Pretplate se automatski obnavljaju svakog mjeseca po prikazanoj cijeni osim ako ne otkažete najmanje 24 sata prije kraja tekućeg razdoblja. Upravljajte ili otkažite u bilo kojem trenutku u postavkama svog App Store računa.", "legalPrivacyPolicy": "Politika privatnosti", "legalTermsOfUse": "Uvjeti korištenja (EULA)", - "purchaseNotLinked": "Ova kupnja iz App Storea nije povezana s vašim Kilo računom. Provjerite jeste li prijavljeni s Apple ID-om kojim je kupnja izvršena, a zatim pokušajte ponovno.", "purchaseDifferentAccount": "Ova kupnja iz App Storea nije povezana s vašim Kilo računom. Prijavite se s Apple računom korištenim za kupnju, a zatim pokušajte ponovno.", "restoreFailed": "Nije moguće vratiti kupnje. Pokušajte ponovno.", "purchaseFailed": "Nije moguće dovršiti kupnju.", - "purchaseStartFailed": "Nije moguće pokrenuti kupnju u App Storeu." + "purchaseStartFailed": "Nije moguće pokrenuti kupnju u App Storeu.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple računu pripada drugom Kilo računu." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index 05a662aff6..54e51cff42 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass se yon abònman chak mwa ki renouvle otomatikman. Peman an chaje sou Apple ID ou lè acha a konfime. Abònman yo renouvle otomatikman chak mwa nan pri ki montre a sòf si yo anile omwen 24 èdtan anvan fen peryòd aktyèl la. Jere oswa anile nenpòt lè nan paramèt kont App Store ou.", "legalPrivacyPolicy": "Règleman sou Vi prive", "legalTermsOfUse": "Kondisyon Itilizasyon (EULA)", - "purchaseNotLinked": "Acha App Store sa a pa lye ak kont Kilo ou. Asire w ou konekte ak Apple ID ki te fè acha a, epi eseye ankò.", "purchaseDifferentAccount": "Acha App Store sa a pa lye ak kont Kilo ou. Konekte ak Apple Account yo te itilize pou acha a, epi eseye ankò.", "restoreFailed": "Echwe pou retabli acha yo. Eseye ankò.", "purchaseFailed": "Echwe pou fini acha a.", - "purchaseStartFailed": "Echwe pou kòmanse acha App Store." + "purchaseStartFailed": "Echwe pou kòmanse acha App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass la sou Kont Apple sa a fè pati yon lòt kont Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index 55dec5ce03..42ca6eeb89 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "A Kilo Pass automatikusan megújuló havi előfizetés. A fizetés az Apple ID-hoz kerül felszámításra a vásárlás megerősítésekor. Az előfizetés minden hónapban automatikusan megújul a megjelenített áron, hacsak nem mondja le legalább 24 órával az aktuális időszak vége előtt. Kezelje vagy mondja le bármikor az App Store fiókbeállításaiban.", "legalPrivacyPolicy": "Adatvédelmi irányelvek", "legalTermsOfUse": "Felhasználási feltételek (EULA)", - "purchaseNotLinked": "Ez az App Store-vásárlás nincs hozzárendelve a Kilo-fiókjához. Győződjön meg róla, hogy azzal az Apple ID-val van bejelentkezve, amellyel a vásárlás történt, majd próbálja újra.", "purchaseDifferentAccount": "Ez az App Store-vásárlás nincs hozzárendelve a Kilo-fiókjához. Jelentkezzen be a vásárláshoz használt Apple-fiókkal, majd próbálja újra.", "restoreFailed": "Nem sikerült visszaállítani a vásárlásokat. Próbálja újra.", "purchaseFailed": "Nem sikerült befejezni a vásárlást.", - "purchaseStartFailed": "Nem sikerült elindítani az App Store-vásárlást." + "purchaseStartFailed": "Nem sikerült elindítani az App Store-vásárlást.", + "purchaseOwnedByAnotherAccount": "Az ezen Apple-fiókon lévő Kilo Pass egy másik Kilo-fiókhoz tartozik." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index 5e14519902..7163a10c13 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass-ը ավտոմատ թարմացվող ամսական բաժանորդագրություն է: Վճարումը գանձվում է ձեր Apple ID-ից գնումը հաստատելիս: Բաժանորդագրությունը թարմացվում է ամեն ամիս նշված գնով, եթե չեղարկեք ընթացիկ ժամանակաշրջանի ավարտից առնվազն 24 ժամ առաջ: Կառավարեք կամ չեղարկեք ցանկացած պահի ձեր App Store հաշվի կարգավորումներում:", "legalPrivacyPolicy": "Գաղտնիության քաղաքականություն", "legalTermsOfUse": "Օգտագործման պայմաններ (EULA)", - "purchaseNotLinked": "Այս App Store գնումը կապված չէ ձեր Kilo հաշվի հետ: Համոզվեք, որ մուտք եք գործել այն Apple ID-ով, որով կատարվել է գնումը, ապա կրկին փորձեք:", "purchaseDifferentAccount": "Այս App Store գնումը կապված չէ ձեր Kilo հաշվի հետ: Մուտք գործեք գնման համար օգտագործված Apple Account-ով, ապա կրկին փորձեք:", "restoreFailed": "Չհաջողվեց վերականգնել գնումները: Կրկին փորձեք:", "purchaseFailed": "Չհաջողվեց ավարտել գնումը:", - "purchaseStartFailed": "Չհաջողվեց սկսել App Store գնումը:" + "purchaseStartFailed": "Չհաջողվեց սկսել App Store գնումը:", + "purchaseOwnedByAnotherAccount": "Այս Apple Account-ի Kilo Pass-ը պատկանում է մեկ այլ Kilo հաշվին:" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index b98b6de7ae..a0108986db 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass adalah langganan bulanan yang dapat diperbarui otomatis. Pembayaran dibebankan ke Apple ID Anda saat konfirmasi pembelian. Langganan diperbarui otomatis setiap bulan dengan harga yang ditampilkan kecuali dibatalkan minimal 24 jam sebelum akhir periode berjalan. Kelola atau batalkan kapan saja di pengaturan akun App Store Anda.", "legalPrivacyPolicy": "Kebijakan Privasi", "legalTermsOfUse": "Ketentuan Penggunaan (EULA)", - "purchaseNotLinked": "Pembelian App Store ini tidak tertaut ke akun Kilo Anda. Pastikan Anda masuk dengan Apple ID yang melakukan pembelian, lalu coba lagi.", "purchaseDifferentAccount": "Pembelian App Store ini tidak tertaut ke akun Kilo Anda. Masuk dengan Akun Apple yang digunakan untuk pembelian, lalu coba lagi.", "restoreFailed": "Gagal memulihkan pembelian. Coba lagi.", "purchaseFailed": "Gagal menyelesaikan pembelian.", - "purchaseStartFailed": "Gagal memulai pembelian App Store." + "purchaseStartFailed": "Gagal memulai pembelian App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass di Akun Apple ini milik akun Kilo yang berbeda." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index d18fef9de2..7604f9d261 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass bụ ndenye aha kwa ọnwa nke na-emegharị onwe ya. A na-ana ụgwọ na Apple ID gị mgbe ị kwadoro ịzụta. Ndenye aha na-emegharị kwa ọnwa na ọnụahịa egosiri belụsọ na ị kagburu ya ọ dịkarịa ala awa 24 tupu njedebe nke oge ugbu a. Jikwaa ma ọ bụ kagbuo ya mgbe ọ bụla na ntọala akaụntụ App Store gị.", "legalPrivacyPolicy": "Amụma Nzuzo", "legalTermsOfUse": "Ụkpụrụ Ojiji (EULA)", - "purchaseNotLinked": "Ịzụrụ App Store a ejikọghị na akaụntụ Kilo gị. Gbaa mbọ hụ na ị banyere na Apple ID nke zụrụ ya, wee nwaa ọzọ.", "purchaseDifferentAccount": "Ịzụrụ App Store a ejikọghị na akaụntụ Kilo gị. Banye na Akaụntụ Apple e ji zụọ ya, wee nwaa ọzọ.", "restoreFailed": "Ịweghachite azụrụ dara. Nwaa ọzọ.", "purchaseFailed": "Ịmecha azụrụ dara.", - "purchaseStartFailed": "Ịmalite azụrụ App Store dara." + "purchaseStartFailed": "Ịmalite azụrụ App Store dara.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na Akaụntụ Apple a bụ nke akaụntụ Kilo ọzọ." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index 2cfa9f27f7..9afefd1d01 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass er sjálfvirkt endurnýjanleg mánaðaráskrift. Greiðsla er innheimt á Apple ID þinn við staðfestingu kaupa. Áskriftir endurnýjast sjálfkrafa mánaðarlega á sýnandi verði nema sagt sé upp að minnsta kosti 24 klukkustundum fyrir lok gildistímabilsins. Hafa umsjón með eða hætta við hvenær sem er í stillingum App Store reikningsins þíns.", "legalPrivacyPolicy": "Persónuverndarstefna", "legalTermsOfUse": "Notendaskilmálar (EULA)", - "purchaseNotLinked": "Þessi App Store-kaup eru ekki tengd Kilo-reikningnum þínum. Gakktu úr skugga um að þú sért skráð(ur) inn á Apple ID-ið sem gerði kaupin, og reyndu svo aftur.", "purchaseDifferentAccount": "Þessi App Store-kaup eru ekki tengd Kilo-reikningnum þínum. Skráðu þig inn á Apple-reikninginn sem notaður var við kaupin, og reyndu svo aftur.", "restoreFailed": "Mistókst að endurheimta kaup. Reyndu aftur.", "purchaseFailed": "Mistókst að ljúka kaupum.", - "purchaseStartFailed": "Mistókst að hefja App Store-kaup." + "purchaseStartFailed": "Mistókst að hefja App Store-kaup.", + "purchaseOwnedByAnotherAccount": "Kilo Pass á þessum Apple-reikningi tilheyrir öðrum Kilo-reikningi." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index 33b6c87e7f..608b6bb362 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -2280,11 +2280,11 @@ "legalDisclosure": "Kilo Pass è un abbonamento mensile a rinnovo automatico. Il pagamento viene addebitato sul tuo Apple ID alla conferma dell'acquisto. Gli abbonamenti si rinnovano automaticamente ogni mese al prezzo mostrato, a meno che non vengano annullati almeno 24 ore prima della fine del periodo corrente. Gestisci o annulla in qualsiasi momento nelle impostazioni del tuo account App Store.", "legalPrivacyPolicy": "Informativa sulla privacy", "legalTermsOfUse": "Termini di utilizzo (EULA)", - "purchaseNotLinked": "Questo acquisto dell'App Store non è collegato al tuo account Kilo. Assicurati di aver effettuato l'accesso con l'Apple ID che ha effettuato l'acquisto, poi riprova.", "purchaseDifferentAccount": "Questo acquisto dell'App Store non è collegato al tuo account Kilo. Accedi con l'account Apple usato per l'acquisto, poi riprova.", "restoreFailed": "Ripristino degli acquisti non riuscito. Riprova.", "purchaseFailed": "Impossibile completare l'acquisto.", - "purchaseStartFailed": "Impossibile avviare l'acquisto nell'App Store." + "purchaseStartFailed": "Impossibile avviare l'acquisto nell'App Store.", + "purchaseOwnedByAnotherAccount": "Il Kilo Pass su questo account Apple appartiene a un account Kilo diverso." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 5d55e89b4f..923f8a1785 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass は自動更新の月額サブスクリプションです。購入の確認時に、お支払いは Apple ID に請求されます。サブスクリプションは、現在の期間終了の 24 時間前までに解約しない限り、表示された価格で毎月自動更新されます。App Store のアカウント設定でいつでも管理または解約できます。", "legalPrivacyPolicy": "プライバシーポリシー", "legalTermsOfUse": "利用規約 (EULA)", - "purchaseNotLinked": "このApp Store購入はKiloアカウントにリンクされていません。購入に使用したApple IDでサインインしていることを確認してから、もう一度お試しください。", "purchaseDifferentAccount": "このApp Store購入はKiloアカウントにリンクされていません。購入に使用したApple Accountにサインインして、もう一度お試しください。", "restoreFailed": "購入の復元に失敗しました。もう一度お試しください。", "purchaseFailed": "購入を完了できませんでした。", - "purchaseStartFailed": "App Storeでの購入を開始できませんでした。" + "purchaseStartFailed": "App Storeでの購入を開始できませんでした。", + "purchaseOwnedByAnotherAccount": "このAppleアカウントのKilo Passは別のKiloアカウントに属しています。" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index 6a349b4420..7f63159a15 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass არის ავტომატურად განახლებადი ყოველთვიური გამოწერა. გადახდა ჩამოიჭრება თქვენი Apple ID-დან შეძენის დადასტურებისას. გამოწერა ავტომატურად განახლდება ყოველთვიურად მითითებულ ფასად, თუ არ გააუქმებთ მიმდინარე პერიოდის დასრულებამდე სულ მცირე 24 საათით ადრე. მართეთ ან გააუქმეთ ნებისმიერ დროს თქვენი App Store ანგარიშის პარამეტრებში.", "legalPrivacyPolicy": "კონფიდენციალურობის პოლიტიკა", "legalTermsOfUse": "გამოყენების პირობები (EULA)", - "purchaseNotLinked": "ეს App Store შესყიდვა არ არის დაკავშირებული თქვენს Kilo ანგარიშთან. დარწმუნდით, რომ შესული ხართ იმ Apple ID-ით, რომლითაც შესყიდვა განხორციელდა, შემდეგ კვლავ სცადეთ.", "purchaseDifferentAccount": "ეს App Store შესყიდვა არ არის დაკავშირებული თქვენს Kilo ანგარიშთან. შედით იმ Apple Account-ით, რომელიც გამოიყენებოდა შესყიდვისთვის, შემდეგ კვლავ სცადეთ.", "restoreFailed": "შესყიდვების აღდგენა ვერ მოხერხდა. სცადეთ კიდევ.", "purchaseFailed": "შესყიდვის დასრულება ვერ მოხერხდა.", - "purchaseStartFailed": "App Store შესყიდვის დაწყება ვერ მოხერხდა." + "purchaseStartFailed": "App Store შესყიდვის დაწყება ვერ მოხერხდა.", + "purchaseOwnedByAnotherAccount": "ეს Apple ანგარიშზე არსებული Kilo Pass სხვა Kilo ანგარიშს ეკუთვნის." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index 851e43e381..ad82daba59 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass — автоматты жаңартылатын айлық жазылым. Төлем сатып алуды растау кезінде Apple ID-ге есептеледі. Ағымдағы кезең аяқталмастан кемінде 24 сағат бұрын тоқтатылмаса, жазылымдар көрсетілген баға бойынша әр ай сайын автоматты түрде жаңартылады. Оны App Store тіркелгі баптауларында кез келген уақытта басқарыңыз немесе тоқтатыңыз.", "legalPrivacyPolicy": "Құпиялылық саясаты", "legalTermsOfUse": "Пайдалану шарттары (EULA)", - "purchaseNotLinked": "Бұл App Store сатып алуы Kilo аккаунтыңызға байланыспаған. Сатып алуды жасаған Apple ID арқылы кіргеніңізге көз жеткізіп, қайта көріңіз.", "purchaseDifferentAccount": "Бұл App Store сатып алуы Kilo аккаунтыңызға байланыспаған. Сатып алу үшін пайдаланылған Apple Account арқылы кіріңіз де, қайта көріңіз.", "restoreFailed": "Сатып алуларды қалпына келтіру сәтсіз аяқталды. Қайта көріңіз.", "purchaseFailed": "Сатып алуды аяқтау мүмкін болмады.", - "purchaseStartFailed": "App Store сатып алуын бастау мүмкін болмады." + "purchaseStartFailed": "App Store сатып алуын бастау мүмкін болмады.", + "purchaseOwnedByAnotherAccount": "Бұл Apple Аккаунтындағы Kilo Pass басқа Kilo аккаунтына тиесілі." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index 921e82adcb..c8e782d1cc 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass គឺជាការជាវប្រចាំខែដែលអាចបន្តដោយស្វ័យប្រវត្តិបាន។ ការទូទាត់នឹងត្រូវគិតលើ Apple ID របស់អ្នកនៅពេលបញ្ជាក់ការទិញ។ ការជាវត្រូវបន្តដោយស្វ័យប្រវត្តិរៀងរាល់ខែក្នុងតម្លៃដែលបង្ហាញ លុះត្រាតែលុបចោលយ៉ាងហោចណាស់ 24 ម៉ោងមុនចុងបញ្ចប់នៃរយៈពេលបច្ចុប្បន្ន។ គ្រប់គ្រង ឬលុបចោលនៅពេលណាក៏បាននៅក្នុងការកំណត់គណនី App Store របស់អ្នក។", "legalPrivacyPolicy": "គោលការណ៍ឯកជនភាព", "legalTermsOfUse": "លក្ខខណ្ឌនៃការប្រើប្រាស់ (EULA)", - "purchaseNotLinked": "ការទិញ App Store នេះមិនត្រូវបានភ្ជាប់ទៅគណនី Kilo របស់អ្នកទេ។ សូមប្រាកដថាអ្នកបានចូលជាមួយ Apple ID ដែលបានធ្វើការទិញ បន្ទាប់មកព្យាយាមម្តងទៀត។", "purchaseDifferentAccount": "ការទិញ App Store នេះមិនត្រូវបានភ្ជាប់ទៅគណនី Kilo របស់អ្នកទេ។ ចូលជាមួយ Apple Account ដែលបានប្រើសម្រាប់ការទិញ បន្ទាប់មកព្យាយាមម្តងទៀត។", "restoreFailed": "បរាជ័យក្នុងការស្តារការទិញ។ ព្យាយាមម្តងទៀត។", "purchaseFailed": "បរាជ័យក្នុងការបញ្ចប់ការទិញ។", - "purchaseStartFailed": "បរាជ័យក្នុងការចាប់ផ្ដើមការទិញ App Store។" + "purchaseStartFailed": "បរាជ័យក្នុងការចាប់ផ្ដើមការទិញ App Store។", + "purchaseOwnedByAnotherAccount": "Kilo Pass នៅលើ Apple Account នេះជារបស់គណនី Kilo ផ្សេង។" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index ef3f6363d5..1b273b8f66 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ಸ್ವಯಂ-ನವೀಕರಿಸುವ ಮಾಸಿಕ ಚಂದಾದಾರಿಕೆಯಾಗಿದೆ. ಖರೀದಿಯ ದೃಢೀಕರಣದ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ Apple ID ಗೆ ಹಣವನ್ನು ವಿಧಿಸಲಾಗುತ್ತದೆ. ಪ್ರಸ್ತುತ ಅವಧಿಯ ಮುಕ್ತಾಯಕ್ಕೆ ಕನಿಷ್ಠ 24 ಗಂಟೆಗಳ ಮೊದಲು ರದ್ದುಮಾಡದ ಹೊರತು ಚಂದಾದಾರಿಕೆಗಳು ಪ್ರತಿ ತಿಂಗಳು ತೋರಿಸಿದ ಬೆಲೆಯಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಿಸುತ್ತವೆ. ನಿಮ್ಮ App Store ಖಾತೆ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನಿರ್ವಹಿಸಿ ಅಥವಾ ರದ್ದುಮಾಡಿ.", "legalPrivacyPolicy": "ಗೌಪ್ಯತಾ ನೀತಿ", "legalTermsOfUse": "ಬಳಕೆಯ ನಿಯಮಗಳು (EULA)", - "purchaseNotLinked": "ಈ App Store ಖರೀದಿಯು ನಿಮ್ಮ Kilo ಖಾತೆಗೆ ಲಿಂಕ್ ಆಗಿಲ್ಲ. ಖರೀದಿ ಮಾಡಿದ Apple ID ಗೆ ನೀವು ಸೈನ್ ಇನ್ ಆಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "purchaseDifferentAccount": "ಈ App Store ಖರೀದಿಯು ನಿಮ್ಮ Kilo ಖಾತೆಗೆ ಲಿಂಕ್ ಆಗಿಲ್ಲ. ಖರೀದಿಗೆ ಬಳಸಿದ Apple ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "restoreFailed": "ಖರೀದಿಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ವಿಫಲವಾಗಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "purchaseFailed": "ಖರೀದಿ ಪೂರ್ಣಗೊಳಿಸಲು ವಿಫಲವಾಗಿದೆ.", - "purchaseStartFailed": "App Store ಖರೀದಿ ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ." + "purchaseStartFailed": "App Store ಖರೀದಿ ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ.", + "purchaseOwnedByAnotherAccount": "ಈ Apple Account ನಲ್ಲಿನ Kilo Pass ಬೇರೆ Kilo ಖಾತೆಗೆ ಸೇರಿದೆ." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index b7f2f61cc4..f66bd4226c 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass는 자동 갱신되는 월간 구독입니다. 결제는 구매 확인 시 Apple ID로 청구됩니다. 구독은 현재 기간 종료 24시간 전까지 취소하지 않으면 표시된 가격으로 매월 자동 갱신됩니다. App Store 계정 설정에서 언제든지 관리하거나 취소할 수 있습니다.", "legalPrivacyPolicy": "개인정보 처리방침", "legalTermsOfUse": "이용 약관 (EULA)", - "purchaseNotLinked": "이 App Store 구매는 Kilo 계정에 연결되어 있지 않습니다. 구매한 Apple ID로 로그인되어 있는지 확인한 후 다시 시도하세요.", "purchaseDifferentAccount": "이 App Store 구매는 Kilo 계정에 연결되어 있지 않습니다. 구매에 사용한 Apple 계정으로 로그인한 후 다시 시도하세요.", "restoreFailed": "구매를 복원하지 못했습니다. 다시 시도하세요.", "purchaseFailed": "구매를 완료하지 못했습니다.", - "purchaseStartFailed": "App Store 구매를 시작하지 못했습니다." + "purchaseStartFailed": "App Store 구매를 시작하지 못했습니다.", + "purchaseOwnedByAnotherAccount": "이 Apple 계정의 Kilo Pass는 다른 Kilo 계정에 속합니다." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index ace6250e65..21709188b0 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ເປັນການສະໝັກສະມາຊິກລາຍເດືອນທີ່ຕໍ່ອັດຕະໂນມັດ. ການຊຳລະຈະຖືກຄິດຄ່າຈາກ Apple ID ຂອງທ່ານເມື່ອຢືນຢັນການຊື້. ການສະໝັກຈະຕໍ່ອັດຕະໂນມັດທຸກເດືອນໃນລາຄາທີ່ສະແດງ ເວັ້ນເສຍແຕ່ຍົກເລີກຢ່າງໜ້ອຍ 24 ຊົ່ວໂມງກ່ອນສິ້ນສຸດໄລຍະປັດຈຸບັນ. ຈັດການ ຫຼື ຍົກເລີກໄດ້ທຸກເວລາໃນການຕັ້ງຄ່າບັນຊີ App Store.", "legalPrivacyPolicy": "ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ", "legalTermsOfUse": "ຂໍ້ກຳນົດການນຳໃຊ້ (EULA)", - "purchaseNotLinked": "ການຊື້ App Store ນີ້ບໍ່ໄດ້ເຊື່ອມໂຍງກັບບັນຊີ Kilo ຂອງທ່ານ. ໃຫ້ແນ່ໃຈວ່າທ່ານເຂົ້າສູ່ລະບົບ Apple ID ທີ່ເຮັດການຊື້, ແລ້ວລອງອີກຄັ້ງ.", "purchaseDifferentAccount": "ການຊື້ App Store ນີ້ບໍ່ໄດ້ເຊື່ອມໂຍງກັບບັນຊີ Kilo ຂອງທ່ານ. ເຂົ້າສູ່ລະບົບ Apple Account ທີ່ໃຊ້ສຳລັບການຊື້, ແລ້ວລອງອີກຄັ້ງ.", "restoreFailed": "ການກູ້ຄືນການຊື້ລົ້ມເຫລວ. ລອງອີກຄັ້ງ.", "purchaseFailed": "ການເຮັດການຊື້ໃຫ້ສຳເລັດລົ້ມເຫລວ.", - "purchaseStartFailed": "ການເລີ່ມການຊື້ App Store ລົ້ມເຫລວ." + "purchaseStartFailed": "ການເລີ່ມການຊື້ App Store ລົ້ມເຫລວ.", + "purchaseOwnedByAnotherAccount": "Kilo Pass ໃນ Apple Account ນີ້ເປັນຂອງບັນຊີ Kilo ອື່ນ." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index f493b06efc..8514a8046f 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -2746,11 +2746,11 @@ "legalDisclosure": "„Kilo Pass“ yra automatiškai atnaujinama mėnesinė prenumerata. Mokėjimas nuskaitomas iš jūsų „Apple ID“ patvirtinus pirkimą. Prenumeratos atnaujinamos automatiškai kiekvieną mėnesį nurodyta kaina, nebent atšauksite ne vėliau kaip likus 24 valandoms iki einamojo laikotarpio pabaigos. Tvarkykite arba atšaukite bet kada „App Store“ paskyros nustatymuose.", "legalPrivacyPolicy": "Privatumo politika", "legalTermsOfUse": "Naudojimo sąlygos (EULA)", - "purchaseNotLinked": "Šis App Store pirkinys nesusietas su jūsų Kilo paskyra. Įsitikinkite, kad prisijungę prie Apple ID, kuriuo atliktas pirkinys, tada bandykite dar kartą.", "purchaseDifferentAccount": "Šis App Store pirkinys nesusietas su jūsų Kilo paskyra. Prisijunkite prie Apple paskyros, naudotos pirkinį atlikti, tada bandykite dar kartą.", "restoreFailed": "Nepavyko atkurti pirkinių. Bandykite dar kartą.", "purchaseFailed": "Nepavyko užbaigti pirkinio.", - "purchaseStartFailed": "Nepavyko pradėti App Store pirkinio." + "purchaseStartFailed": "Nepavyko pradėti App Store pirkinio.", + "purchaseOwnedByAnotherAccount": "Kilo Pass šioje Apple paskyroje priklauso kitai Kilo paskyrai." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 3b14d8438f..50c5f165bc 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -2726,11 +2726,11 @@ "legalDisclosure": "Kilo Pass ir automātiski atjaunojams mēneša abonements. Maksājums tiek iekasēts no jūsu Apple ID pirkuma apstiprināšanas brīdī. Abonements katru mēnesi atjaunojas automātiski par norādīto cenu, ja vien tas netiek atcelts vismaz 24 stundas pirms pašreizējā perioda beigām. Pārvaldiet vai atceliet to jebkurā laikā sava App Store konta iestatījumos.", "legalPrivacyPolicy": "Privātuma politika", "legalTermsOfUse": "Lietošanas noteikumi (EULA)", - "purchaseNotLinked": "Šis App Store pirkums nav saistīts ar jūsu Kilo kontu. Pārliecinieties, ka esat pierakstījies ar Apple ID, kas veica pirkumu, un mēģiniet vēlreiz.", "purchaseDifferentAccount": "Šis App Store pirkums nav saistīts ar jūsu Kilo kontu. Pierakstieties ar Apple kontu, kas tika izmantots pirkumam, un mēģiniet vēlreiz.", "restoreFailed": "Neizdevās atjaunot pirkumus. Mēģiniet vēlreiz.", "purchaseFailed": "Neizdevās pabeigt pirkumu.", - "purchaseStartFailed": "Neizdevās sākt App Store pirkumu." + "purchaseStartFailed": "Neizdevās sākt App Store pirkumu.", + "purchaseOwnedByAnotherAccount": "Kilo Pass šajā Apple kontā pieder citam Kilo kontam." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index 93baf60d51..506689b46f 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass dia famandrihana isam-bolana azo havaozina ho azy. Alaina amin'ny Apple ID anao ny fandoavam-bola rehefa hamafisina ny fividianana. Havaozina ho azy ny famandrihana isam-bolana amin'ny vidiny aseho raha tsy foanana 24 ora farafahakeliny alohan'ny fiafaran'ny fe-potoana ankehitriny. Tantano na foano isaky ny te ianao amin'ny fikandrana kaonty App Store anao.", "legalPrivacyPolicy": "Politika momba ny fiainana manokana", "legalTermsOfUse": "Fepetran'ny fampiasana (EULA)", - "purchaseNotLinked": "Tsy mifandray amin'ny kaonty Kilo anao ity fividianana App Store ity. Ataovy azo antoka fa niditra tamin'ny Apple ID nanao ny fividianana ianao, ary andramana indray.", "purchaseDifferentAccount": "Tsy mifandray amin'ny kaonty Kilo anao ity fividianana App Store ity. Midira amin'ny Apple Account nampiasaina tamin'ny fividianana, ary andramana indray.", "restoreFailed": "Tsy nahomby ny famerenana ny fividianana. Andramana indray.", "purchaseFailed": "Tsy nahomby ny famitana ny fividianana.", - "purchaseStartFailed": "Tsy nahomby ny fanombohana ny fividianana App Store." + "purchaseStartFailed": "Tsy nahomby ny fanombohana ny fividianana App Store.", + "purchaseOwnedByAnotherAccount": "Ny Kilo Pass amin'ity Apple Account ity dia an'ny kaonty Kilo hafa." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index aa6b506df3..6ce3be75a1 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "He ohinga ā-marama e hoko aunoatia ana a Kilo Pass. Ka utua te utu ki tō Apple ID i te whakaaetanga o te hoko. Ka whakahoutia aunoatia ngā ohinga ia marama ki te utu e whakaaturia ana ki te kore e whakakorengia kia 24 hāora i mua i te mutunga o te wā o nāianei. Whakahaerehia, whakakorea rānei i ngā wā katoa i roto i tō tautuhinga pūkete App Store.", "legalPrivacyPolicy": "Kaupapahere Tūmataiti", "legalTermsOfUse": "Tikanga Whakamahi (EULA)", - "purchaseNotLinked": "Kāore tēnei hokonga App Store i hono ki tō pūkete Kilo. Tirohia kua takiuru koe ki te Apple ID nāna te hokonga, kātahi ka whakamātau anō.", "purchaseDifferentAccount": "Kāore tēnei hokonga App Store i hono ki tō pūkete Kilo. Takiuru ki te Pūkete Apple i whakamahia mō te hokonga, kātahi ka whakamātau anō.", "restoreFailed": "I rahua te whakaora i ngā hokonga. Whakamātau anō.", "purchaseFailed": "I rahua te whakaoti i te hokonga.", - "purchaseStartFailed": "I rahua te tīmata i te hokonga App Store." + "purchaseStartFailed": "I rahua te tīmata i te hokonga App Store.", + "purchaseOwnedByAnotherAccount": "Ko te Kilo Pass o tēnei Pūkete Apple nō tētahi atu pūkete Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index 47c90531da..a9c1ac6452 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass е автоматски обновлива месечна претплата. Плаќањето се наплаќа на вашиот Apple ID при потврдување на купувањето. Претплатите автоматски се обновуваат секој месец по прикажаната цена, освен ако не се откажат најмалку 24 часа пред крајот на тековниот период. Управувајте или откажете во секое време во поставките на вашата App Store сметка.", "legalPrivacyPolicy": "Политика за приватност", "legalTermsOfUse": "Услови за користење (EULA)", - "purchaseNotLinked": "Ова купување од App Store не е поврзано со вашата Kilo сметка. Проверете дали сте најавени на Apple ID-то што го изврши купувањето, па обидете се повторно.", "purchaseDifferentAccount": "Ова купување од App Store не е поврзано со вашата Kilo сметка. Најавете се на Apple сметката користена за купувањето, па обидете се повторно.", "restoreFailed": "Не успеа враќањето на купувањата. Обидете се повторно.", "purchaseFailed": "Не успеа завршувањето на купувањето.", - "purchaseStartFailed": "Не успеа започнувањето на купување од App Store." + "purchaseStartFailed": "Не успеа започнувањето на купување од App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass-от на оваа Apple сметка припаѓа на друга Kilo сметка." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index d1a3b16142..73bb417103 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "കിലോ പാസ് ഒരു യാന്ത്രിക-പുതുക്കാവുന്ന പ്രതിമാസ സബ്സ്ക്രിപ്ഷൻ ആണ്. വാങ്ങൽ സ്ഥിരീകരിക്കുമ്പോൾ നിങ്ങളുടെ Apple ID-യിൽ നിന്ന് പേയ്മെന്റ് ഈടാക്കുന്നു. നിലവിലെ കാലയളവ് അവസാനിക്കുന്നതിന് കുറഞ്ഞത് 24 മണിക്കൂർ മുമ്പ് റദ്ദാക്കിയില്ലെങ്കിൽ സബ്സ്ക്രിപ്ഷനുകൾ ഓരോ മാസവും കാണിച്ചിരിക്കുന്ന വിലയിൽ സ്വയമേവ പുതുക്കുന്നു. നിങ്ങളുടെ App Store അക്കൗണ്ട് ക്രമീകരണങ്ങളിൽ എപ്പോൾ വേണമെങ്കിലും കൈകാര്യം ചെയ്യുക അല്ലെങ്കിൽ റദ്ദാക്കുക.", "legalPrivacyPolicy": "സ്വകാര്യതാ നയം", "legalTermsOfUse": "ഉപയോഗ നിബന്ധനകൾ (EULA)", - "purchaseNotLinked": "ഈ App Store വാങ്ങൽ നിങ്ങളുടെ Kilo അക്കൗണ്ടുമായി ലിങ്ക് ചെയ്തിട്ടില്ല. വാങ്ങൽ നടത്തിയ Apple ID-യിൽ സൈൻ ഇൻ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", "purchaseDifferentAccount": "ഈ App Store വാങ്ങൽ നിങ്ങളുടെ Kilo അക്കൗണ്ടുമായി ലിങ്ക് ചെയ്തിട്ടില്ല. വാങ്ങലിനായി ഉപയോഗിച്ച Apple അക്കൗണ്ടിൽ സൈൻ ഇൻ ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", "restoreFailed": "വാങ്ങലുകൾ പുനഃസ്ഥാപിക്കുന്നതിൽ പരാജയപ്പെട്ടു. വീണ്ടും ശ്രമിക്കുക.", "purchaseFailed": "വാങ്ങൽ പൂർത്തിയാക്കുന്നതിൽ പരാജയപ്പെട്ടു.", - "purchaseStartFailed": "App Store വാങ്ങൽ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു." + "purchaseStartFailed": "App Store വാങ്ങൽ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു.", + "purchaseOwnedByAnotherAccount": "ഈ Apple അക്കൗണ്ടിലെ Kilo Pass മറ്റൊരു Kilo അക്കൗണ്ടിന്റേതാണ്." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index 2a2d63b875..3b98012b6e 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass нь автоматаар шинэчлэгддэг сарын захиалга юм. Худалдан авалтыг баталгаажуулснаар төлбөрийг таны Apple ID-ээс авна. Захиалга нь одоогийн хугацаа дуусахаас дор хаяж 24 цагийн өмнө цуцлахгүй бол харуулсан үнээр сар бүр автоматаар шинэчлэгддэг. App Store бүртгэлийн тохиргооноос хүссэн үедээ удирдах эсвэл цуцлах боломжтой.", "legalPrivacyPolicy": "Нууцлалын бодлого", "legalTermsOfUse": "Ашиглах нөхцөл (EULA)", - "purchaseNotLinked": "Энэ App Store худалдан авалт таны Kilo бүртгэлтэй холбогдоогүй байна. Худалдан авалт хийсэн Apple ID-д нэвтэрсэн эсэхээ шалгаад дахин оролдоно уу.", "purchaseDifferentAccount": "Энэ App Store худалдан авалт таны Kilo бүртгэлтэй холбогдоогүй байна. Худалдан авалтад ашигласан Apple Account-д нэвтэрч, дахин оролдоно уу.", "restoreFailed": "Худалдан авалтуудыг сэргээж чадсангүй. Дахин оролдоно уу.", "purchaseFailed": "Худалдан авалтыг дуусгаж чадсангүй.", - "purchaseStartFailed": "App Store худалдан авалтыг эхлүүлж чадсангүй." + "purchaseStartFailed": "App Store худалдан авалтыг эхлүүлж чадсангүй.", + "purchaseOwnedByAnotherAccount": "Энэ Apple Account дээрх Kilo Pass нь өөр Kilo бүртгэлд харьяалагдана." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index a74941af7f..f1cf164dcb 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ही आपोआप नूतनीकरण होणारी मासिक सदस्यता आहे. खरेदीच्या पुष्टीकरणावर पेमेंट तुमच्या Apple ID वर आकारले जाते. सदस्यता सध्याच्या कालावधीच्या समाप्तीच्या किमान 24 तास आधी रद्द न केल्यास दरमहा दाखवलेल्या किंमतीवर आपोआप नूतनीकरण होते. तुमच्या App Store खाते सेटिंग्जमध्ये कधीही व्यवस्थापित करा किंवा रद्द करा.", "legalPrivacyPolicy": "गोपनीयता धोरण", "legalTermsOfUse": "वापराच्या अटी (EULA)", - "purchaseNotLinked": "ही App Store खरेदी तुमच्या Kilo खात्याशी लिंक नाही. खरेदी केलेल्या Apple ID मध्ये साइन इन केले असल्याची खात्री करा, नंतर पुन्हा प्रयत्न करा.", "purchaseDifferentAccount": "ही App Store खरेदी तुमच्या Kilo खात्याशी लिंक नाही. खरेदीसाठी वापरलेल्या Apple खात्यात साइन इन करा, नंतर पुन्हा प्रयत्न करा.", "restoreFailed": "खरेदी पुनर्संचयित करण्यात अयशस्वी. पुन्हा प्रयत्न करा.", "purchaseFailed": "खरेदी पूर्ण करण्यात अयशस्वी.", - "purchaseStartFailed": "App Store खरेदी सुरू करण्यात अयशस्वी." + "purchaseStartFailed": "App Store खरेदी सुरू करण्यात अयशस्वी.", + "purchaseOwnedByAnotherAccount": "या Apple खात्यावरील Kilo Pass वेगळ्या Kilo खात्याशी संबंधित आहे." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index 66a7ae4e15..4c43d5334d 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ialah langganan bulanan auto-boleh diperbaharui. Bayaran dicaj ke Apple ID anda semasa pengesahan pembelian. Langganan diperbaharui secara automatik setiap bulan pada harga yang dipaparkan melainkan dibatalkan sekurang-kurangnya 24 jam sebelum tamat tempoh semasa. Urus atau batalkan pada bila-bila masa dalam tetapan akaun App Store anda.", "legalPrivacyPolicy": "Dasar Privasi", "legalTermsOfUse": "Terma Penggunaan (EULA)", - "purchaseNotLinked": "Pembelian App Store ini tidak dipautkan ke akaun Kilo anda. Pastikan anda log masuk ke Apple ID yang membuat pembelian, kemudian cuba lagi.", "purchaseDifferentAccount": "Pembelian App Store ini tidak dipautkan ke akaun Kilo anda. Log masuk ke Akaun Apple yang digunakan untuk pembelian, kemudian cuba lagi.", "restoreFailed": "Gagal memulihkan pembelian. Cuba lagi.", "purchaseFailed": "Gagal menyiapkan pembelian.", - "purchaseStartFailed": "Gagal memulakan pembelian App Store." + "purchaseStartFailed": "Gagal memulakan pembelian App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass pada Akaun Apple ini kepunyaan akaun Kilo yang berbeza." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 9ca21644d5..1fc8179c8a 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -2766,11 +2766,11 @@ "legalDisclosure": "Kilo Pass huwa abbonament mensili li jiġġedded awtomatikament. Il-ħlas jitħallas mill-Apple ID tiegħek fil-konferma tax-xiri. L-abbonamenti jiġġeddu awtomatikament kull xahar bil-prezz muri sakemm ma jitħassrux mill-inqas 24 siegħa qabel it-tmiem tal-perjodu attwali. Immaniġġja jew ikkanċella fi kwalunkwe ħin fis-settings tal-kont tal-App Store tiegħek.", "legalPrivacyPolicy": "Politika tal-Privatezza", "legalTermsOfUse": "Termini tal-Użu (EULA)", - "purchaseNotLinked": "Dan ix-xiri mill-App Store mhuwiex marbut mal-kont ta' Kilo tiegħek. Kun żgur li inti idħolt fl-Apple ID li għamel ix-xiri, imbagħad erġa' pprova.", "purchaseDifferentAccount": "Dan ix-xiri mill-App Store mhuwiex marbut mal-kont ta' Kilo tiegħek. Idħol fil-kont tal-Apple użat għax-xiri, imbagħad erġa' pprova.", "restoreFailed": "Ma setgħux jiġu restawrati x-xirjiet. Erġa' pprova.", "purchaseFailed": "Ma setax jitlesta x-xiri.", - "purchaseStartFailed": "Ma setax jibda x-xiri mill-App Store." + "purchaseStartFailed": "Ma setax jibda x-xiri mill-App Store.", + "purchaseOwnedByAnotherAccount": "Il-Kilo Pass fuq dan l-Apple Account jappartjeni għal kont ieħor ta' Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index b1c9db39b8..04d1eaef84 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass သည် အလိုအလျောက် သက်တမ်းတိုးနိုင်သော လစဉ် စာရင်းသွင်းမှု တစ်ခု ဖြစ်သည်။ ဝယ်ယူမှုကို အတည်ပြုချိန်တွင် သင့် Apple ID မှ ငွေကောက်ခံသည်။ လက်ရှိကာလမကုန်မီ အနည်းဆုံး ၂၄ နာရီကြိုတင် မဖျက်သိမ်းပါက စာရင်းသွင်းမှုများသည် ပြသထားသော ဈေးနှုန်းဖြင့် လစဉ် အလိုအလျောက် သက်တမ်းတိုးသည်။ သင့် App Store အကောင့်ဆက်တင်များတွင် အချိန်မရွေး စီမံပါ သို့မဟုတ် ဖျက်သိမ်းပါ။", "legalPrivacyPolicy": "ကိုယ်ရေးအချက်အလက် မူဝါဒ", "legalTermsOfUse": "အသုံးပြုမှု စည်းကမ်းများ (EULA)", - "purchaseNotLinked": "ဤ App Store ဝယ်ယူမှုသည် သင့် Kilo အကောင့်နှင့် မချိတ်ဆက်ထားပါ။ ဝယ်ယူမှုပြုလုပ်ခဲ့သော Apple ID ဖြင့် ဝင်ထားကြောင်း သေချာစေပြီး ထပ်ကြိုးစားပါ။", "purchaseDifferentAccount": "ဤ App Store ဝယ်ယူမှုသည် သင့် Kilo အကောင့်နှင့် မချိတ်ဆက်ထားပါ။ ဝယ်ယူမှုအတွက် အသုံးပြုခဲ့သော Apple အကောင့်ဖြင့် ဝင်ပြီး ထပ်ကြိုးစားပါ။", "restoreFailed": "ဝယ်ယူမှုများ ပြန်ယူရန် မအောင်မြင်ပါ။ ထပ်ကြိုးစားပါ။", "purchaseFailed": "ဝယ်ယူမှု ပြီးမြောက်ရန် မအောင်မြင်ပါ။", - "purchaseStartFailed": "App Store ဝယ်ယူမှု စတင်ရန် မအောင်မြင်ပါ။" + "purchaseStartFailed": "App Store ဝယ်ယူမှု စတင်ရန် မအောင်မြင်ပါ။", + "purchaseOwnedByAnotherAccount": "ဤ Apple Account ရှိ Kilo Pass သည် အခြား Kilo အကောင့်တစ်ခုနှင့် သက်ဆိုင်သည်။" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index 649c776ece..ab64d7aa92 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass er et automatisk fornybart månedsabonnement. Betaling belastes Apple-ID-en din ved bekreftelse av kjøpet. Abonnementet fornyes automatisk hver måned til prisen som vises, med mindre det kanselleres minst 24 timer før slutten av gjeldende periode. Administrer eller kanseller når som helst i App Store-kontoinnstillingene.", "legalPrivacyPolicy": "Personvernpolicy", "legalTermsOfUse": "Bruksvilkår (EULA)", - "purchaseNotLinked": "Dette App Store-kjøpet er ikke koblet til Kilo-kontoen din. Kontroller at du er logget på Apple-ID-en som gjorde kjøpet, og prøv igjen.", "purchaseDifferentAccount": "Dette App Store-kjøpet er ikke koblet til Kilo-kontoen din. Logg på Apple-kontoen som ble brukt for kjøpet, og prøv igjen.", "restoreFailed": "Kunne ikke gjenopprette kjøp. Prøv igjen.", "purchaseFailed": "Kunne ikke fullføre kjøpet.", - "purchaseStartFailed": "Kunne ikke starte App Store-kjøpet." + "purchaseStartFailed": "Kunne ikke starte App Store-kjøpet.", + "purchaseOwnedByAnotherAccount": "Kilo Pass på denne Apple-kontoen tilhører en annen Kilo-konto." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index 13078999af..3055f75dee 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass स्वतः नवीकरण हुने मासिक सदस्यता हो। खरिद पुष्टि हुँदा भुक्तानी तपाईंको Apple ID बाट लिइन्छ। हालको अवधि समाप्त हुनु कम्तीमा २४ घण्टा अगाडि रद्द नगरेसम्म सदस्यता प्रत्येक महिना देखाइएको मूल्यमा स्वतः नवीकरण हुन्छ। आफ्नो App Store खाता सेटिङमा जुनसुकै बेला व्यवस्थापन वा रद्द गर्नुहोस्।", "legalPrivacyPolicy": "गोपनीयता नीति", "legalTermsOfUse": "प्रयोगका सर्तहरू (EULA)", - "purchaseNotLinked": "यो App Store खरिद तपाईंको Kilo खातासँग लिङ्क गरिएको छैन। खरिद गरेको Apple ID मा साइन इन गरेको सुनिश्चित गरेर फेरि प्रयास गर्नुहोस्।", "purchaseDifferentAccount": "यो App Store खरिद तपाईंको Kilo खातासँग लिङ्क गरिएको छैन। खरिदका लागि प्रयोग गरिएको Apple खातामा साइन इन गरेर फेरि प्रयास गर्नुहोस्।", "restoreFailed": "खरिदहरू पुनः स्थापित गर्न असफल भयो। फेरि प्रयास गर्नुहोस्।", "purchaseFailed": "खरिद पूरा गर्न असफल भयो।", - "purchaseStartFailed": "App Store खरिद सुरु गर्न असफल भयो।" + "purchaseStartFailed": "App Store खरिद सुरु गर्न असफल भयो।", + "purchaseOwnedByAnotherAccount": "यो Apple खातामा रहेको Kilo Pass अर्को Kilo खातासँग सम्बन्धित छ।" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index fe47c3780d..ce6ce25621 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass is een maandelijks abonnement dat automatisch wordt verlengd. De betaling wordt bij bevestiging van de aankoop in rekening gebracht op je Apple ID. Abonnementen worden elke maand automatisch verlengd voor de weergegeven prijs, tenzij je ten minste 24 uur voor het einde van de huidige periode opzegt. Beheer of annuleer op elk moment in de accountinstellingen van de App Store.", "legalPrivacyPolicy": "Privacybeleid", "legalTermsOfUse": "Gebruiksvoorwaarden (EULA)", - "purchaseNotLinked": "Deze App Store-aankoop is niet gekoppeld aan je Kilo-account. Controleer of je bent aangemeld met het Apple ID waarmee de aankoop is gedaan, en probeer het opnieuw.", "purchaseDifferentAccount": "Deze App Store-aankoop is niet gekoppeld aan je Kilo-account. Meld je aan met het Apple-account dat voor de aankoop is gebruikt, en probeer het opnieuw.", "restoreFailed": "Aankopen herstellen mislukt. Probeer het opnieuw.", "purchaseFailed": "Aankoop voltooien mislukt.", - "purchaseStartFailed": "App Store-aankoop starten mislukt." + "purchaseStartFailed": "App Store-aankoop starten mislukt.", + "purchaseOwnedByAnotherAccount": "De Kilo Pass op dit Apple-account hoort bij een ander Kilo-account." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index e56d0d6193..52b497ea90 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ji'aan haaromsu subscription dha. Kaffaltiin Apple ID kee irratti yeroo bitachuu mirkaneeffamu ni itti baafama. Subscription'n ji'a ji'aan gatii mul'atuun ni haaroma, yoo yeroo dhumaa dura sa'aatii 24 dura hin haaromsine malee. Yeroo kamillee App Store account keessaa bulchi ykn haqi.", "legalPrivacyPolicy": "Imaammata Iccitii", "legalTermsOfUse": "Caaccuu Itti Fayyadamaa (EULA)", - "purchaseNotLinked": "Bittaan App Store kana herrega Kilo kee waliin hin walqabamne. Apple ID bittaa kana hojjetu waliin seenuu mirkaneeffadhu, ergasii ammas yaali.", "purchaseDifferentAccount": "Bittaan App Store kana herrega Kilo kee waliin hin walqabamne. Apple Account bittaa kanaaf fayyadame waliin seenii, ergasii ammas yaali.", "restoreFailed": "Bittaa deebisuu dadhabe. Irra deebi'ii yaali.", "purchaseFailed": "Bittaa xumuruu dadhabe.", - "purchaseStartFailed": "Bittaa App Store jalqabuu dadhabe." + "purchaseStartFailed": "Bittaa App Store jalqabuu dadhabe.", + "purchaseOwnedByAnotherAccount": "Kilo Pass akkaawuntii Apple kana irratti jiru akkaawuntii Kilo adda biraa keessaa." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index b16480cd32..0ea9a66351 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ଏକ ସ୍ୱୟଂ-ନବୀକରଣୀୟ ମାସିକ ସବସ୍କ୍ରିପ୍ସନ୍। କିଣିବା ସମୟରେ ଆପଣଙ୍କ Apple ID ରୁ ଭୁକ୍ତାନ ଆଦାୟ ହୁଏ। ସବସ୍କ୍ରିପ୍ସନ୍ ପ୍ରତି ମାସରେ ଦର୍ଶାଯାଇଥିବା ମୂଲ୍ୟରେ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ନବୀକରଣ ହୁଏ, ଯଦି ବର୍ତ୍ତମାନର ଅବଧି ସମାପ୍ତ ହେବାର ଅତି କମରେ ୨୪ ଘଣ୍ଟା ପୂର୍ବରୁ ବାତିଲ କରାନଯାଏ। ଆପଣଙ୍କ App Store ଆକାଉଣ୍ଟ ସେଟିଂସରେ ଯେକୌଣସି ସମୟରେ ପରିଚାଳନା କିମ୍ବା ବାତିଲ କରନ୍ତୁ।", "legalPrivacyPolicy": "ଗୋପନୀୟତା ନୀତି", "legalTermsOfUse": "ବ୍ୟବହାର ନିୟମାବଳୀ (EULA)", - "purchaseNotLinked": "ଏହି App Store କ୍ରୟ ଆପଣଙ୍କ Kilo ଆକାଉଣ୍ଟ ସହିତ ଲିଙ୍କ୍ ହୋଇନାହିଁ। କ୍ରୟ କରିଥିବା Apple ID ରେ ସାଇନ୍ ଇନ୍ ହୋଇଥିବା ନିଶ୍ଚିତ କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "purchaseDifferentAccount": "ଏହି App Store କ୍ରୟ ଆପଣଙ୍କ Kilo ଆକାଉଣ୍ଟ ସହିତ ଲିଙ୍କ୍ ହୋଇନାହିଁ। କ୍ରୟ ପାଇଁ ବ୍ୟବହୃତ Apple ଆକାଉଣ୍ଟରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "restoreFailed": "କ୍ରୟ ପୁନଃସ୍ଥାପନ ବିଫଳ ହେଲା। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "purchaseFailed": "କ୍ରୟ ସମ୍ପୂର୍ଣ୍ଣ କରିବାରେ ବିଫଳ।", - "purchaseStartFailed": "App Store କ୍ରୟ ଆରମ୍ଭ କରିବାରେ ବିଫଳ।" + "purchaseStartFailed": "App Store କ୍ରୟ ଆରମ୍ଭ କରିବାରେ ବିଫଳ।", + "purchaseOwnedByAnotherAccount": "ଏହି Apple ଆକାଉଣ୍ଟରେ ଥିବା Kilo Pass ଅନ୍ୟ ଏକ Kilo ଆକାଉଣ୍ଟର ଅଟେ।" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 250e5ecadf..323449f13d 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ਇੱਕ ਆਟੋ-ਰੀਨਿਊ ਹੋਣ ਵਾਲੀ ਮਹੀਨਾਵਾਰ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਹੈ। ਭੁਗਤਾਨ ਖਰੀਦ ਦੀ ਪੁਸ਼ਟੀ 'ਤੇ ਤੁਹਾਡੀ Apple ID ਤੋਂ ਕੱਟਿਆ ਜਾਂਦਾ ਹੈ। ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਮੌਜੂਦਾ ਮਿਆਦ ਦੇ ਖਤਮ ਹੋਣ ਤੋਂ ਘੱਟੋ ਘੱਟ 24 ਘੰਟੇ ਪਹਿਲਾਂ ਰੱਦ ਨਾ ਕੀਤੇ ਜਾਣ 'ਤੇ ਦਿਖਾਈ ਗਈ ਕੀਮਤ 'ਤੇ ਹਰ ਮਹੀਨੇ ਆਪਣੇ ਆਪ ਰੀਨਿਊ ਹੁੰਦੀਆਂ ਹਨ। ਆਪਣੀ App Store ਖਾਤਾ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਕਿਸੇ ਵੀ ਸਮੇਂ ਪ੍ਰਬੰਧਿਤ ਜਾਂ ਰੱਦ ਕਰੋ।", "legalPrivacyPolicy": "ਪਰਾਈਵੇਸੀ ਨੀਤੀ", "legalTermsOfUse": "ਵਰਤੋਂ ਦੀਆਂ ਸ਼ਰਤਾਂ (EULA)", - "purchaseNotLinked": "ਇਹ ਐਪ ਸਟੋਰ ਖਰੀਦ ਤੁਹਾਡੇ Kilo ਖਾਤੇ ਨਾਲ ਲਿੰਕ ਨਹੀਂ ਹੈ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਸੀਂ ਉਸ Apple ID ਨਾਲ ਸਾਈਨ ਇਨ ਹੋ ਜਿਸ ਨੇ ਖਰੀਦ ਕੀਤੀ ਸੀ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "purchaseDifferentAccount": "ਇਹ ਐਪ ਸਟੋਰ ਖਰੀਦ ਤੁਹਾਡੇ Kilo ਖਾਤੇ ਨਾਲ ਲਿੰਕ ਨਹੀਂ ਹੈ। ਖਰੀਦ ਲਈ ਵਰਤੇ ਗਏ Apple ਖਾਤੇ ਵਿੱਚ ਸਾਈਨ ਇਨ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "restoreFailed": "ਖਰੀਦਾਂ ਬਹਾਲ ਕਰਨ ਵਿੱਚ ਅਸਫਲ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "purchaseFailed": "ਖਰੀਦ ਪੂਰੀ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।", - "purchaseStartFailed": "ਐਪ ਸਟੋਰ ਖਰੀਦ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।" + "purchaseStartFailed": "ਐਪ ਸਟੋਰ ਖਰੀਦ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।", + "purchaseOwnedByAnotherAccount": "ਇਸ Apple ਖਾਤੇ 'ਤੇ Kilo Pass ਵੱਖਰੇ Kilo ਖਾਤੇ ਨਾਲ ਸਬੰਧਤ ਹੈ।" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index 15dce2e5cb..7d4e8059b5 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -2293,11 +2293,11 @@ "legalDisclosure": "Kilo Pass to automatycznie odnawiana subskrypcja miesięczna. Płatność jest pobierana z Twojego Apple ID przy potwierdzeniu zakupu. Subskrypcja odnawia się automatycznie co miesiąc po podanej cenie, chyba że anulujesz ją co najmniej 24 godziny przed końcem bieżącego okresu. Zarządzaj nią lub anuluj ją w dowolnym momencie w ustawieniach konta App Store.", "legalPrivacyPolicy": "Polityka prywatności", "legalTermsOfUse": "Warunki korzystania (EULA)", - "purchaseNotLinked": "Ten zakup w App Store nie jest powiązany z Twoim kontem Kilo. Upewnij się, że jesteś zalogowany na Apple ID, na którym dokonano zakupu, a następnie spróbuj ponownie.", "purchaseDifferentAccount": "Ten zakup w App Store nie jest powiązany z Twoim kontem Kilo. Zaloguj się na konto Apple użyte do zakupu, a następnie spróbuj ponownie.", "restoreFailed": "Nie udało się przywrócić zakupów. Spróbuj ponownie.", "purchaseFailed": "Nie udało się dokończyć zakupu.", - "purchaseStartFailed": "Nie udało się rozpocząć zakupu w App Store." + "purchaseStartFailed": "Nie udało się rozpocząć zakupu w App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na tym koncie Apple należy do innego konta Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index ded6ea49aa..a6874eea05 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass یو خودکار تازه کېدونکی میاشتنی ګډون دی. پیسې ستاسو Apple ID ته د پیرود د تایید په وخت کې اخیستل کیږي. ګډونونه هر میاشت په ښودل شوي نرخ باندې په اتوماتیک ډول نوي کیږي، پرته له دې چې د اوسنۍ مودې له پای ته رسېدو ۲۴ ساعته مخکې لغوه شي. هر وخت د خپل App Store حساب تنظیماتو کې اداره یا لغوه کړئ.", "legalPrivacyPolicy": "د محرمیت پالیسي", "legalTermsOfUse": "د استعمال شرایط (EULA)", - "purchaseNotLinked": "دا د App Store پیرود ستاسو د Kilo حساب سره تړلی نه دی. ډاډ ترلاسه کړئ چې تاسو په هغه Apple ID کې ننوتلي یاست چې پیرود یې کړی، بیا هڅه وکړئ.", "purchaseDifferentAccount": "دا د App Store پیرود ستاسو د Kilo حساب سره تړلی نه دی. د پیرود لپاره کارول شوي Apple Account ته ننوځئ، بیا هڅه وکړئ.", "restoreFailed": "پیرودونه بیرته راوړل ناکام شول. بیا هڅه وکړئ.", "purchaseFailed": "پیرود بشپړول ناکام شول.", - "purchaseStartFailed": "د App Store پیرود پیل کول ناکام شول." + "purchaseStartFailed": "د App Store پیرود پیل کول ناکام شول.", + "purchaseOwnedByAnotherAccount": "دا Apple Account باندې Kilo Pass د بل Kilo حساب پورې اړه لري." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index 81e12a5f5c..284c18d2cc 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -2280,11 +2280,11 @@ "legalDisclosure": "O Kilo Pass é uma assinatura mensal com renovação automática. O pagamento é cobrado na sua Apple ID na confirmação da compra. As assinaturas são renovadas automaticamente todos os meses pelo preço exibido, a menos que sejam canceladas pelo menos 24 horas antes do fim do período atual. Gerencie ou cancele a qualquer momento nas configurações da sua conta na App Store.", "legalPrivacyPolicy": "Política de Privacidade", "legalTermsOfUse": "Termos de Uso (EULA)", - "purchaseNotLinked": "Esta compra da App Store não está vinculada à sua conta Kilo. Verifique se você está conectado ao Apple ID que fez a compra e tente novamente.", "purchaseDifferentAccount": "Esta compra da App Store não está vinculada à sua conta Kilo. Entre na Apple Account usada na compra e tente novamente.", "restoreFailed": "Falha ao restaurar as compras. Tente novamente.", "purchaseFailed": "Falha ao concluir a compra.", - "purchaseStartFailed": "Falha ao iniciar a compra na App Store." + "purchaseStartFailed": "Falha ao iniciar a compra na App Store.", + "purchaseOwnedByAnotherAccount": "O Kilo Pass desta Conta Apple pertence a uma conta Kilo diferente." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index d63cfde297..03f4edb66f 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -2726,11 +2726,11 @@ "legalDisclosure": "O Kilo Pass é uma subscrição mensal renovável automaticamente. O pagamento é cobrado no seu Apple ID na confirmação da compra. As subscrições renovam-se automaticamente todos os meses pelo preço indicado, exceto se forem canceladas pelo menos 24 horas antes do fim do período atual. Faça a gestão ou cancele a qualquer momento nas definições da sua conta da App Store.", "legalPrivacyPolicy": "Política de Privacidade", "legalTermsOfUse": "Termos de Utilização (EULA)", - "purchaseNotLinked": "Esta compra da App Store não está ligada à sua conta Kilo. Certifique-se de que iniciou sessão no Apple ID que efetuou a compra e tente novamente.", "purchaseDifferentAccount": "Esta compra da App Store não está ligada à sua conta Kilo. Inicie sessão na Apple Account utilizada na compra e tente novamente.", "restoreFailed": "Falha ao restaurar as compras. Tente novamente.", "purchaseFailed": "Falha ao concluir a compra.", - "purchaseStartFailed": "Falha ao iniciar a compra na App Store." + "purchaseStartFailed": "Falha ao iniciar a compra na App Store.", + "purchaseOwnedByAnotherAccount": "O Kilo Pass desta Apple Account pertence a uma conta Kilo diferente." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index 2ada813cfe..4bbc91d166 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -2726,11 +2726,11 @@ "legalDisclosure": "Kilo Pass este un abonament lunar cu reînnoire automată. Plata este încasată de pe Apple ID la confirmarea achiziției. Abonamentele se reînnoiesc automat în fiecare lună la prețul afișat, dacă nu sunt anulate cu cel puțin 24 de ore înainte de sfârșitul perioadei curente. Gestionează sau anulează oricând în setările contului tău App Store.", "legalPrivacyPolicy": "Politica de confidențialitate", "legalTermsOfUse": "Termeni și condiții (EULA)", - "purchaseNotLinked": "Această achiziție din App Store nu este legată de contul tău Kilo. Asigură-te că ești autentificat în Apple ID-ul care a făcut achiziția, apoi încearcă din nou.", "purchaseDifferentAccount": "Această achiziție din App Store nu este legată de contul tău Kilo. Autentifică-te în Apple Account-ul folosit pentru achiziție, apoi încearcă din nou.", "restoreFailed": "Restaurarea achizițiilor a eșuat. Încearcă din nou.", "purchaseFailed": "Finalizarea achiziției a eșuat.", - "purchaseStartFailed": "Nu s-a putut începe achiziția din App Store." + "purchaseStartFailed": "Nu s-a putut începe achiziția din App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass de pe acest Apple Account aparține unui alt cont Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 041144b3f9..9710911482 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -2293,11 +2293,11 @@ "legalDisclosure": "Kilo Pass — это ежемесячная подписка с автоматическим продлением. Платёж списывается с вашего Apple ID при подтверждении покупки. Подписка продлевается автоматически каждый месяц по указанной цене, если её не отменить не менее чем за 24 часа до конца текущего периода. Управляйте подпиской или отменяйте её в любой момент в настройках учётной записи App Store.", "legalPrivacyPolicy": "Политика конфиденциальности", "legalTermsOfUse": "Условия использования (EULA)", - "purchaseNotLinked": "Эта покупка в App Store не привязана к вашему аккаунту Kilo. Убедитесь, что вы вошли в Apple ID, с которого была совершена покупка, и попробуйте снова.", "purchaseDifferentAccount": "Эта покупка в App Store не привязана к вашему аккаунту Kilo. Войдите в Apple Account, использованный для покупки, и попробуйте снова.", "restoreFailed": "Не удалось восстановить покупки. Попробуйте снова.", "purchaseFailed": "Не удалось завершить покупку.", - "purchaseStartFailed": "Не удалось начать покупку в App Store." + "purchaseStartFailed": "Не удалось начать покупку в App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass на этом Apple Account принадлежит другому аккаунту Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index 42fc09925d..7ac41842ab 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass යනු ස්වයං-අලුත් කළ හැකි මාසික දායකත්වයකි. ගෙවීම ඔබේ Apple ID වෙත මිලදී ගැනීම තහවුරු වූ විට අය කෙරේ. දායකත්ව ස්වයංක්රීයව සෑම මාසයකම පෙන්වන මිලට අලුත් වේ. වත්මන් කාල සීමාව අවසන් වීමට අවම වශයෙන් පැය 24 කට පෙර අවලංගු නොකළහොත්. ඔබේ App Store ගිණුම් සැකසුම් තුළ ඕනෑම අවස්ථාවක කළමනාකරණය කරන්න හෝ අවලංගු කරන්න.", "legalPrivacyPolicy": "රහස්යතා ප්රතිපත්තිය", "legalTermsOfUse": "භාවිත කොන්දේසි (EULA)", - "purchaseNotLinked": "මෙම App Store මිලදී ගැනීම ඔබේ Kilo ගිණුමට සම්බන්ධ කර නොමැත. මිලදී ගැනීම සිදු කළ Apple ID එකට පුරනය වී ඇති බවට වග බලා ගන්න, ඉන්පසු නැවත උත්සාහ කරන්න.", "purchaseDifferentAccount": "මෙම App Store මිලදී ගැනීම ඔබේ Kilo ගිණුමට සම්බන්ධ කර නොමැත. මිලදී ගැනීම සඳහා භාවිතා කළ Apple ගිණුමට පුරනය වන්න, ඉන්පසු නැවත උත්සාහ කරන්න.", "restoreFailed": "මිලදී ගැනීම් ප්‍රතිස්ථාපනය කිරීමට අසමත් විය. නැවත උත්සාහ කරන්න.", "purchaseFailed": "මිලදී ගැනීම සම්පූර්ණ කිරීමට අසමත් විය.", - "purchaseStartFailed": "App Store මිලදී ගැනීම ආරම්භ කිරීමට අසමත් විය." + "purchaseStartFailed": "App Store මිලදී ගැනීම ආරම්භ කිරීමට අසමත් විය.", + "purchaseOwnedByAnotherAccount": "මෙම Apple ගිණුමේ Kilo Pass වෙනත් Kilo ගිණුමකට අයත් වේ." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index f2b997f69f..8410346a48 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -2746,11 +2746,11 @@ "legalDisclosure": "Kilo Pass je mesačné predplatné s automatickým obnovením. Platba sa účtuje na vaše Apple ID pri potvrdení nákupu. Predplatné sa automaticky obnovuje každý mesiac za zobrazenú cenu, pokiaľ ho nezrušíte najmenej 24 hodín pred koncom aktuálneho obdobia. Spravujte alebo zrušte ho kedykoľvek v nastaveniach svojho účtu App Store.", "legalPrivacyPolicy": "Zásady ochrany osobných údajov", "legalTermsOfUse": "Podmienky používania (EULA)", - "purchaseNotLinked": "Tento nákup v App Store nie je prepojený s vaším účtom Kilo. Uistite sa, že ste prihlásení do Apple ID, cez ktoré bol nákup uskutočnený, a skúste to znova.", "purchaseDifferentAccount": "Tento nákup v App Store nie je prepojený s vaším účtom Kilo. Prihláste sa do Apple Account použitého na nákup a skúste to znova.", "restoreFailed": "Obnovenie nákupov zlyhalo. Skúste to znova.", "purchaseFailed": "Nákup sa nepodarilo dokončiť.", - "purchaseStartFailed": "Nákup v App Store sa nepodarilo spustiť." + "purchaseStartFailed": "Nákup v App Store sa nepodarilo spustiť.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na tomto Apple Account patrí inému účtu Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index 585b835f3b..45e1006dd8 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -2746,11 +2746,11 @@ "legalDisclosure": "Kilo Pass je samodejno obnovljiva mesečna naročnina. Plačilo se bremeni vaš Apple ID ob potrditvi nakupa. Naročnine se samodejno obnovijo vsak mesec po prikazani ceni, razen če jih prekličete vsaj 24 ur pred koncem trenutnega obdobja. Upravljajte ali prekličite kadar koli v nastavitvah računa v App Store.", "legalPrivacyPolicy": "Politika zasebnosti", "legalTermsOfUse": "Pogoji uporabe (EULA)", - "purchaseNotLinked": "Ta nakup v App Store ni povezan z vašim Kilo računom. Prepričajte se, da ste prijavljeni v Apple ID, s katerim je bil nakup opravljen, nato poskusite znova.", "purchaseDifferentAccount": "Ta nakup v App Store ni povezan z vašim Kilo računom. Prijavite se v Apple račun, s katerim je bil nakup opravljen, nato poskusite znova.", "restoreFailed": "Obnovitev nakupov ni uspela. Poskusite znova.", "purchaseFailed": "Nakupa ni bilo mogoče dokončati.", - "purchaseStartFailed": "Nakupa v App Store ni bilo mogoče začeti." + "purchaseStartFailed": "Nakupa v App Store ni bilo mogoče začeti.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na tem Apple računu pripada drugemu Kilo računu." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index 916e503f0a..8becf4f59c 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass waa diiwaangelin bil-ah oo is-keeneysa si toos ah. Lacagta waxaa laga qaadaa Apple ID-gaaga markaad xaqiijiso iibsashada. Diiwaangelintu waxay si toos ah u cusbooneysa bil kasta qiimaha la muujiyey ilaa aadan baajin ugu yaraan 24 saacadood ka hor dhamaadka xilli-gii xaafada. Ku maareyso ama baaji wakhti kasta ee goobaha xisaabta App Store.", "legalPrivacyPolicy": "Siyaasadda Asturnaanta", "legalTermsOfUse": "Shuruudaha Isticmaalka (EULA)", - "purchaseNotLinked": "Iibsashadan App Store kuma xirna akoontigaaga Kilo. Hubi inaad ku soo gashay Apple ID-ga iibsashada sameeyay, ka dibna mar kale isku day.", "purchaseDifferentAccount": "Iibsashadan App Store kuma xirna akoontigaaga Kilo. Ku soo gal Apple Account-ka loo adeegsaday iibsashada, ka dibna mar kale isku day.", "restoreFailed": "Soo celinta iibsashada way fashilantay. Mar kale isku day.", "purchaseFailed": "Iibsashada lama dhammayn karin.", - "purchaseStartFailed": "Bilowga iibsashada App Store waa fashilmay." + "purchaseStartFailed": "Bilowga iibsashada App Store waa fashilmay.", + "purchaseOwnedByAnotherAccount": "Kilo Pass-ka ku yaal Xisaabtan Apple-ka ah waxaa leh koonto Kilo oo kale." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 614b647c7b..6ef629bfcb 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass është një abonim mujor me rinovim automatik. Pagesa i ngarkohet Apple ID-së suaj në konfirmim të blerjes. Abonimet rinovohen automatikisht çdo muaj me çmimin e treguar, përveç nëse anulohen të paktën 24 orë para përfundimit të periudhës aktuale. Menaxhojeni ose anuloni në çdo kohë te cilësimet e llogarisë suaj në App Store.", "legalPrivacyPolicy": "Politika e privatësisë", "legalTermsOfUse": "Kushtet e përdorimit (EULA)", - "purchaseNotLinked": "Kjo blerje në App Store nuk është e lidhur me llogarinë tuaj Kilo. Sigurohuni që jeni regjistruar me Apple ID që bëri blerjen, pastaj provoni përsëri.", "purchaseDifferentAccount": "Kjo blerje në App Store nuk është e lidhur me llogarinë tuaj Kilo. Hyni me Apple Account të përdorur për blerjen, pastaj provoni përsëri.", "restoreFailed": "Rivendosja e blerjeve dështoi. Provo përsëri.", "purchaseFailed": "Nuk u arrit të përfundohej blerja.", - "purchaseStartFailed": "Nuk u arrit të fillohej blerja në App Store." + "purchaseStartFailed": "Nuk u arrit të fillohej blerja në App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass në këtë Apple Account i përket një llogarie tjetër Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index c68cefed04..19767075bd 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -2726,11 +2726,11 @@ "legalDisclosure": "Kilo Pass je pretplata na mesec dana koja se automatski obnavlja. Plaćanje se naplaćuje sa vašeg Apple ID-ja pri potvrdi kupovine. Pretplate se automatski obnavljaju svakog meseca po prikazanoj ceni, osim ako ih ne otkažete najmanje 24 sata pre kraja tekućeg perioda. Upravljajte ili otkažite u svakom trenutku u podešavanjima naloga u App Store-u.", "legalPrivacyPolicy": "Politika privatnosti", "legalTermsOfUse": "Uslovi korišćenja (EULA)", - "purchaseNotLinked": "Ova kupovina u App Store-u nije povezana sa vašim Kilo nalogom. Uverite se da ste prijavljeni na Apple ID kojim je kupovina izvršena, pa pokušajte ponovo.", "purchaseDifferentAccount": "Ova kupovina u App Store-u nije povezana sa vašim Kilo nalogom. Prijavite se na Apple nalog korišćen za kupovinu, pa pokušajte ponovo.", "restoreFailed": "Vraćanje kupovina nije uspelo. Pokušajte ponovo.", "purchaseFailed": "Kupovina nije mogla biti dovršena.", - "purchaseStartFailed": "Započinjanje kupovine u App Store-u nije uspelo." + "purchaseStartFailed": "Započinjanje kupovine u App Store-u nije uspelo.", + "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index c914d5ff9e..672b43c43a 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass är en automatiskt förnybar månadsprenumeration. Betalning dras från ditt Apple-ID vid köpsbekräftelse. Prenumerationen förnyas automatiskt varje månad till det pris som visas om den inte avbryts minst 24 timmar före slutet av den aktuella perioden. Hantera eller avbryt när som helst i dina App Store-kontoinställningar.", "legalPrivacyPolicy": "Integritetspolicy", "legalTermsOfUse": "Användarvillkor (EULA)", - "purchaseNotLinked": "Det här App Store-köpet är inte kopplat till ditt Kilo-konto. Se till att du är inloggad på det Apple-ID som gjorde köpet och försök sedan igen.", "purchaseDifferentAccount": "Det här App Store-köpet är inte kopplat till ditt Kilo-konto. Logga in på det Apple-konto som användes för köpet och försök sedan igen.", "restoreFailed": "Det gick inte att återställa köpen. Försök igen.", "purchaseFailed": "Det gick inte att slutföra köpet.", - "purchaseStartFailed": "Det gick inte att starta App Store-köpet." + "purchaseStartFailed": "Det gick inte att starta App Store-köpet.", + "purchaseOwnedByAnotherAccount": "Kilo Pass på detta Apple-konto tillhör ett annat Kilo-konto." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index e5115a54d4..599ca14385 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass ni usajili wa kila mwezi unaofanywa upya kiotomatiki. Malipo yanakatwa kwenye Apple ID yako unapothibitisha ununuzi. Usajili unafanywa upya kiotomatiki kila mwezi kwa bei inayoonyeshwa isipokuwa umeghairi angalau saa 24 kabla ya mwisho wa kipindi cha sasa. Simamia au ghairi wakati wowote katika mipangilio ya akaunti yako ya App Store.", "legalPrivacyPolicy": "Sera ya Faragha", "legalTermsOfUse": "Masharti ya Matumizi (EULA)", - "purchaseNotLinked": "Ununuzi huu wa App Store haujaunganishwa na akaunti yako ya Kilo. Hakikisha umeingia na Apple ID iliyofanya ununuzi, kisha ujaribu tena.", "purchaseDifferentAccount": "Ununuzi huu wa App Store haujaunganishwa na akaunti yako ya Kilo. Ingia na Akaunti ya Apple iliyotumika kwa ununuzi, kisha ujaribu tena.", "restoreFailed": "Imeshindwa kurejesha ununuzi. Jaribu tena.", "purchaseFailed": "Imeshindwa kukamilisha ununuzi.", - "purchaseStartFailed": "Imeshindwa kuanza ununuzi wa App Store." + "purchaseStartFailed": "Imeshindwa kuanza ununuzi wa App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass kwenye Akaunti hii ya Apple ni ya akaunti nyingine ya Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index f64b621280..101916dbd6 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass தானாகப் புதுப்பிக்கப்படும் மாதாந்திர சந்தா. வாங்குதல் உறுதிசெய்யப்பட்டதும் உங்கள் Apple ID-க்கு கட்டணம் வசூலிக்கப்படும். நடப்புக் காலகட்டம் முடிவதற்கு 24 மணிநேரத்திற்கு முன்னர் ரத்து செய்யப்படாவிட்டால், சந்தாக்கள் ஒவ்வொரு மாதமும் காட்டப்படும் விலையில் தானாகவே புதுப்பிக்கப்படும். உங்கள் App Store கணக்கு அமைப்புகளில் எப்போது வேண்டுமானாலும் நிர்வகிக்கவும் அல்லது ரத்து செய்யவும்.", "legalPrivacyPolicy": "தனியுரிமைக் கொள்கை", "legalTermsOfUse": "பயன்பாட்டு விதிமுறைகள் (EULA)", - "purchaseNotLinked": "இந்த App Store வாங்குதல் உங்கள் Kilo கணக்குடன் இணைக்கப்படவில்லை. வாங்குதலைச் செய்த Apple ID இல் உள்நுழைந்துள்ளீர்கள் என்பதை உறுதிசெய்து, பின்னர் மீண்டும் முயற்சிக்கவும்.", "purchaseDifferentAccount": "இந்த App Store வாங்குதல் உங்கள் Kilo கணக்குடன் இணைக்கப்படவில்லை. வாங்குதலுக்குப் பயன்படுத்திய Apple கணக்கில் உள்நுழைந்து, பின்னர் மீண்டும் முயற்சிக்கவும்.", "restoreFailed": "வாங்குதல்களை மீட்டமைக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.", "purchaseFailed": "வாங்குதலை முடிக்க முடியவில்லை.", - "purchaseStartFailed": "App Store வாங்குதலைத் தொடங்க முடியவில்லை." + "purchaseStartFailed": "App Store வாங்குதலைத் தொடங்க முடியவில்லை.", + "purchaseOwnedByAnotherAccount": "இந்த Apple கணக்கில் உள்ள Kilo Pass வேறொரு Kilo கணக்கைச் சேர்ந்தது." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index e8aba28d3d..17526d4ec2 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass అనేది స్వయంచాలకంగా పునరుద్ధరించబడే నెలవారీ చందా. కొనుగోలు నిర్ధారణ సమయంలో చెల్లింపు మీ Apple IDకి వసూలు చేయబడుతుంది. ప్రస్తుత వ్యవధి ముగిసే 24 గంటల కంటే ముందు రద్దు చేయకపోతే చందాలు ప్రదర్శించిన ధరకు ప్రతి నెల స్వయంచాలకంగా పునరుద్ధరించబడతాయి. మీ App Store ఖాతా సెట్టింగులలో ఎప్పుడైనా నిర్వహించండి లేదా రద్దు చేయండి.", "legalPrivacyPolicy": "గోప్యతా విధానం", "legalTermsOfUse": "వినియోగ నిబంధనలు (EULA)", - "purchaseNotLinked": "ఈ యాప్ స్టోర్ కొనుగోలు మీ Kilo ఖాతాతో లింక్ చేయబడలేదు. కొనుగోలు చేసిన Apple IDతో మీరు సైన్ ఇన్ అయ్యారని నిర్ధారించుకుని, మళ్లీ ప్రయత్నించండి.", "purchaseDifferentAccount": "ఈ యాప్ స్టోర్ కొనుగోలు మీ Kilo ఖాతాతో లింక్ చేయబడలేదు. కొనుగోలు కోసం ఉపయోగించిన Apple ఖాతాతో సైన్ ఇన్ చేసి, మళ్లీ ప్రయత్నించండి.", "restoreFailed": "కొనుగోళ్లను పునరుద్ధరించడంలో విఫలమైంది. మళ్లీ ప్రయత్నించండి.", "purchaseFailed": "కొనుగోలును పూర్తి చేయడంలో విఫలమైంది.", - "purchaseStartFailed": "యాప్ స్టోర్ కొనుగోలును ప్రారంభించడంలో విఫలమైంది." + "purchaseStartFailed": "యాప్ స్టోర్ కొనుగోలును ప్రారంభించడంలో విఫలమైంది.", + "purchaseOwnedByAnotherAccount": "ఈ యాపిల్ ఖాతాలోని Kilo Pass వేరే Kilo ఖాతాకు చెందుతుంది." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index 2e33bef09f..e9788bff4e 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass เป็นการสมัครสมาชิกรายเดือนที่ต่ออายุอัตโนมัติ ค่าธรรมเนียมจะถูกเรียกเก็บจาก Apple ID ของคุณเมื่อยืนยันการซื้อ การสมัครสมาชิกจะต่ออายุอัตโนมัติทุกเดือนในราคาที่แสดง เว้นแต่จะยกเลิกอย่างน้อย 24 ชั่วโมงก่อนสิ้นสุดรอบปัจจุบัน จัดการหรือยกเลิกได้ทุกเมื่อในการตั้งค่าบัญชี App Store", "legalPrivacyPolicy": "นโยบายความเป็นส่วนตัว", "legalTermsOfUse": "ข้อกำหนดการใช้งาน (EULA)", - "purchaseNotLinked": "การซื้อใน App Store นี้ไม่ได้เชื่อมโยงกับบัญชี Kilo ของคุณ ตรวจสอบว่าคุณลงชื่อเข้าด้วย Apple ID ที่ใช้ซื้อ แล้วลองอีกครั้ง", "purchaseDifferentAccount": "การซื้อใน App Store นี้ไม่ได้เชื่อมโยงกับบัญชี Kilo ของคุณ ลงชื่อเข้า Apple Account ที่ใช้สำหรับการซื้อ แล้วลองอีกครั้ง", "restoreFailed": "คืนค่าการซื้อไม่สำเร็จ ลองอีกครั้ง", "purchaseFailed": "ทำการซื้อไม่สำเร็จ", - "purchaseStartFailed": "เริ่มการซื้อใน App Store ไม่สำเร็จ" + "purchaseStartFailed": "เริ่มการซื้อใน App Store ไม่สำเร็จ", + "purchaseOwnedByAnotherAccount": "Kilo Pass ใน Apple Account นี้เป็นของบัญชี Kilo อื่น" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index 39e102b460..377ec79778 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass, otomatik yenilenen aylık bir aboneliktir. Ödeme, satın alma onayında Apple Kimliğinize yansıtılır. Abonelikler, geçerli dönemin bitiminden en az 24 saat önce iptal edilmediği sürece her ay gösterilen fiyattan otomatik yenilenir. App Store hesap ayarlarınızdan istediğiniz zaman yönetin veya iptal edin.", "legalPrivacyPolicy": "Gizlilik Politikası", "legalTermsOfUse": "Kullanım Koşulları (EULA)", - "purchaseNotLinked": "Bu App Store satın alımı Kilo hesabınıza bağlı değil. Satın alımı yapan Apple ID ile oturum açtığınızdan emin olun, sonra tekrar deneyin.", "purchaseDifferentAccount": "Bu App Store satın alımı Kilo hesabınıza bağlı değil. Satın alımda kullanılan Apple hesabına giriş yapın, sonra tekrar deneyin.", "restoreFailed": "Satın alımlar geri yüklenemedi. Tekrar deneyin.", "purchaseFailed": "Satın alma tamamlanamadı.", - "purchaseStartFailed": "App Store satın alımı başlatılamadı." + "purchaseStartFailed": "App Store satın alımı başlatılamadı.", + "purchaseOwnedByAnotherAccount": "Bu Apple Hesabındaki Kilo Pass farklı bir Kilo hesabına ait." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 2cd78f487b..45826d5b6c 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -2293,11 +2293,11 @@ "legalDisclosure": "Kilo Pass — це автоматично поновлювана щомісячна підписка. Оплата списується з вашого Apple ID під час підтвердження покупки. Підписка автоматично поновлюється щомісяця за вказаною ціною, якщо її не скасувати щонайменше за 24 години до кінця поточного періоду. Керуйте або скасовуйте її будь-коли в налаштуваннях облікового запису App Store.", "legalPrivacyPolicy": "Політика конфіденційності", "legalTermsOfUse": "Умови використання (EULA)", - "purchaseNotLinked": "Ця покупка в App Store не пов'язана з вашим обліковим записом Kilo. Переконайтеся, що ви ввійшли в Apple ID, з якого було здійснено покупку, а потім спробуйте ще раз.", "purchaseDifferentAccount": "Ця покупка в App Store не пов'язана з вашим обліковим записом Kilo. Увійдіть в обліковий запис Apple, який використовувався для покупки, а потім спробуйте ще раз.", "restoreFailed": "Не вдалося відновити покупки. Спробуйте ще раз.", "purchaseFailed": "Не вдалося завершити покупку.", - "purchaseStartFailed": "Не вдалося розпочати покупку в App Store." + "purchaseStartFailed": "Не вдалося розпочати покупку в App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass на цьому обліковому записі Apple належить іншому обліковому запису Kilo." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 275429a78c..616cd5f531 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass خودکار تجدید کے ساتھ ماہانہ سبسکرپشن ہے۔ ادائیگی خریداری کی تصدیق پر آپ کے Apple ID سے لی جاتی ہے۔ سبسکرپشنز ہر ماہ دکھائی گئی قیمت پر خود بخود تجدید ہوتی ہیں جب تک کہ موجودہ مدت ختم ہونے سے کم از کم 24 گھنٹے پہلے منسوخ نہ کی جائیں۔ اپنی App Store اکاؤنٹ کی ترتیبات میں کسی بھی وقت منظم یا منسوخ کریں۔", "legalPrivacyPolicy": "رازداری کی پالیسی", "legalTermsOfUse": "استعمال کی شرائط (EULA)", - "purchaseNotLinked": "یہ App Store خریداری آپ کے Kilo اکاؤنٹ سے منسلک نہیں ہے۔ اس بات کو یقینی بنائیں کہ آپ اس Apple ID سے سائن ان ہیں جس نے خریداری کی تھی، پھر دوبارہ کوشش کریں۔", "purchaseDifferentAccount": "یہ App Store خریداری آپ کے Kilo اکاؤنٹ سے منسلک نہیں ہے۔ خریداری کے لیے استعمال شدہ Apple اکاؤنٹ میں سائن ان کریں، پھر دوبارہ کوشش کریں۔", "restoreFailed": "خریداریاں بحال نہیں ہو سکیں۔ دوبارہ کوشش کریں۔", "purchaseFailed": "خریداری مکمل نہیں ہو سکی۔", - "purchaseStartFailed": "App Store خریداری شروع نہیں ہو سکی۔" + "purchaseStartFailed": "App Store خریداری شروع نہیں ہو سکی۔", + "purchaseOwnedByAnotherAccount": "اس Apple اکاؤنٹ پر Kilo Pass کسی دوسرے Kilo اکاؤنٹ سے تعلق رکھتا ہے۔" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index 851d095d4f..63f8029cac 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass avtomatik yangilanadigan oylik obuna hisoblanadi. To‘lov xaridni tasdiqlashda Apple ID hisobingizdan undiriladi. Obunalar har oy ko‘rsatilgan narxda avtomatik yangilanadi, agar joriy davr tugashidan kamida 24 soat oldin bekor qilinmasa. Istiagan paytda App Store hisob sozlamalaringizda boshqaring yoki bekor qiling.", "legalPrivacyPolicy": "Maxfiylik siyosati", "legalTermsOfUse": "Foydalanish shartlari (EULA)", - "purchaseNotLinked": "Bu App Store xaridi Kilo hisobingizga bog'lanmagan. Xaridni amalga oshirgan Apple ID bilan tizimga kirganingizga ishonch hosil qiling va qayta urinib ko'ring.", "purchaseDifferentAccount": "Bu App Store xaridi Kilo hisobingizga bog'lanmagan. Xarid uchun ishlatilgan Apple hisobiga kiring va qayta urinib ko'ring.", "restoreFailed": "Xaridlarni tiklab bo'lmadi. Qayta urinib ko'ring.", "purchaseFailed": "Xaridni yakunlab bo'lmadi.", - "purchaseStartFailed": "App Store xaridini boshlab bo'lmadi." + "purchaseStartFailed": "App Store xaridini boshlab bo'lmadi.", + "purchaseOwnedByAnotherAccount": "Bu Apple hisobidagi Kilo Pass boshqa Kilo hisobiga tegishli." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index 7d8fd4a9f8..16b514c42c 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass là gói đăng ký hàng tháng tự gia hạn. Khoản thanh toán được tính vào Apple ID của bạn khi xác nhận mua. Gói đăng ký tự động gia hạn mỗi tháng theo giá đã hiển thị trừ khi bạn hủy ít nhất 24 giờ trước khi kết thúc kỳ hiện tại. Quản lý hoặc hủy bất kỳ lúc nào trong cài đặt tài khoản App Store.", "legalPrivacyPolicy": "Chính sách quyền riêng tư", "legalTermsOfUse": "Điều khoản sử dụng (EULA)", - "purchaseNotLinked": "Giao dịch mua App Store này chưa được liên kết với tài khoản Kilo của bạn. Hãy đảm bảo bạn đã đăng nhập bằng Apple ID đã thực hiện giao dịch mua, sau đó thử lại.", "purchaseDifferentAccount": "Giao dịch mua App Store này chưa được liên kết với tài khoản Kilo của bạn. Hãy đăng nhập bằng Tài khoản Apple đã dùng cho giao dịch mua, sau đó thử lại.", "restoreFailed": "Không thể khôi phục giao dịch mua. Thử lại.", "purchaseFailed": "Không thể hoàn tất giao dịch mua.", - "purchaseStartFailed": "Không thể bắt đầu giao dịch mua trên App Store." + "purchaseStartFailed": "Không thể bắt đầu giao dịch mua trên App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass trên Tài khoản Apple này thuộc về một tài khoản Kilo khác." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index 642727c4e0..c1fabc9a13 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "Kilo Pass jẹ́ ìfọwọ́sílẹ̀ oṣooṣu tó máa ń tún ara rẹ̀ ṣe ní àìdáni. Wọ́n máa ń gba owó sí Apple ID rẹ ní ìfìdírí ìrà. Àwọn ìfọwọ́sílẹ̀ máa ń tún ara wọn ṣe lọ́ṣọ̀ọ̀so ní iye tí a fi hàn, àyàfi bí a kò bá fagilé rẹ̀ ni ó kéré tán wákàtí 24 kí ìgbà tí ó ń lọ kí ó parí. Ṣàkóso tàbí fagilé rẹ̀ nígbàkúgbà nínú àwọn ètò àkọọ́lẹ̀ App Store rẹ.", "legalPrivacyPolicy": "Ìlànà Àṣírí", "legalTermsOfUse": "Àwọn Ìlànà Ìlò (EULA)", - "purchaseNotLinked": "Rírà App Store yìí kò ní ìsopọ̀ sí àkọọ́lẹ̀ Kilo rẹ. Ríi dájú pé o wọlé sí Apple ID tó ṣe rírà náà, kí o sì gbìyànjú lẹ́ẹ̀kan sí i.", "purchaseDifferentAccount": "Rírà App Store yìí kò ní ìsopọ̀ sí àkọọ́lẹ̀ Kilo rẹ. Wọlé sí Apple Account tí a lò fún rírà náà, kí o sì gbìyànjú lẹ́ẹ̀kan sí i.", "restoreFailed": "Kùnà láti mú àwọn rírà padà. Gbìyànjú lẹ́ẹ̀kan sí i.", "purchaseFailed": "Kùnà láti parí rírà.", - "purchaseStartFailed": "Kùnà láti bẹ̀rẹ̀ rírà App Store." + "purchaseStartFailed": "Kùnà láti bẹ̀rẹ̀ rírà App Store.", + "purchaseOwnedByAnotherAccount": "Kilo Pass lori Apple Account yii jẹ ti Kilo akọọlẹ miiran." }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index fa4c3fe34e..f86e7a7573 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass 是可自动续订的月度订阅。付款在购买确认时从您的 Apple ID 扣费。订阅每月按所示价格自动续订,除非在当前周期结束前至少 24 小时取消。可随时在您的 App Store 账户设置中管理或取消。", "legalPrivacyPolicy": "隐私政策", "legalTermsOfUse": "使用条款(EULA)", - "purchaseNotLinked": "此 App Store 购买尚未关联到您的 Kilo 账户。请确认您已登录用于购买此项目的 Apple ID,然后重试。", "purchaseDifferentAccount": "此 App Store 购买尚未关联到您的 Kilo 账户。请登录购买时使用的 Apple 账户,然后重试。", "restoreFailed": "恢复购买失败。请重试。", "purchaseFailed": "完成购买失败。", - "purchaseStartFailed": "启动 App Store 购买失败。" + "purchaseStartFailed": "启动 App Store 购买失败。", + "purchaseOwnedByAnotherAccount": "此 Apple 账户上的 Kilo Pass 属于另一个 Kilo 账户。" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index 2e58acd293..9908edbd2b 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -2267,11 +2267,11 @@ "legalDisclosure": "Kilo Pass 是自動續訂的每月訂閱。款項會在購買確認時從您的 Apple ID 扣款。除非在目前週期結束前至少 24 小時取消,否則訂閱會以顯示的價格每月自動續訂。您可以隨時在 App Store 帳戶設定中管理或取消。", "legalPrivacyPolicy": "隱私權政策", "legalTermsOfUse": "使用條款 (EULA)", - "purchaseNotLinked": "此 App Store 購買未連結至您的 Kilo 帳戶。請確認您已登入進行購買的 Apple ID,然後再試一次。", "purchaseDifferentAccount": "此 App Store 購買未連結至您的 Kilo 帳戶。請登入用於購買的 Apple 帳戶,然後再試一次。", "restoreFailed": "恢復購買失敗。請再試一次。", "purchaseFailed": "無法完成購買。", - "purchaseStartFailed": "無法開始 App Store 購買。" + "purchaseStartFailed": "無法開始 App Store 購買。", + "purchaseOwnedByAnotherAccount": "此 Apple 帳戶上的 Kilo Pass 屬於另一個 Kilo 帳戶。" }, "consent": { "kilo": "Kilo", diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index bb1134cbf2..16a42e19b4 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -2706,11 +2706,11 @@ "legalDisclosure": "I-Kilo Pass iwukubhalisela kwanyanga ngalinye okuzivuselelayo ngokuzenzakalelayo. Inkokhelo ikhokhiswa ku-Apple ID yakho lapho kuqinisekiswa ukuthenga. Ukubhalisela kuzivuselela ngokuzenzakalelayo nyanga zonke ngentengo ebonisiwe ngaphandle uma kukhanselwe okungenani amahora angu-24 ngaphambi kokuphela kwesikhathi samanje. Lawula noma ukhansela noma nini kuzilungiselelo zekhawunti yakho ye-App Store.", "legalPrivacyPolicy": "Inqubomgomo Yobumfihlo", "legalTermsOfUse": "Imigomo Yokusetshenziswa (EULA)", - "purchaseNotLinked": "Lokhu kuthengwa kwe-App Store akuxhunyiwe ku-akhawunti yakho ye-Kilo. Qinisekisa ukuthi ungenile nge-Apple ID eyenza lokhu kuthenga, bese uzama futhi.", "purchaseDifferentAccount": "Lokhu kuthengwa kwe-App Store akuxhunyiwe ku-akhawunti yakho ye-Kilo. Ngena nge-Apple Account esetshenziselwe ukuthenga, bese uzama futhi.", "restoreFailed": "Kwehlulekile ukubuyisela okuthengiwe. Zama futhi.", "purchaseFailed": "Kwehlulekile ukuqeda ukuthenga.", - "purchaseStartFailed": "Kwehlulekile ukuqala ukuthenga kwe-App Store." + "purchaseStartFailed": "Kwehlulekile ukuqala ukuthenga kwe-App Store.", + "purchaseOwnedByAnotherAccount": "I-Kilo Pass kule Apple Account ingeyenye i-akhawunti ye-Kilo." }, "consent": { "kilo": "I-Kilo", diff --git a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts index 8f25c48f07..e238e06842 100644 --- a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts +++ b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts @@ -20,10 +20,12 @@ const errorMessageSchema = z.object({ message: z.string(), }); +// Backend contract strings. The server sends these in English whatever the +// app's language is, so they are matched, never shown, and never translated. const APP_STORE_ACCOUNT_TOKEN_MISMATCH_MESSAGE = 'App Store purchase account token does not match the signed-in user.'; -const APP_STORE_SUBSCRIPTION_OWNED_BY_ANOTHER_ACCOUNT_MESSAGE = - 'The Kilo Pass on this Apple Account belongs to a different Kilo account.'; +const APP_STORE_PURCHASE_NOT_LINKED_TO_ACCOUNT_MESSAGE = + "This App Store purchase isn't linked to your Kilo account. Make sure you're signed in to the Apple ID that made the purchase, then try again."; const PURCHASE_ERROR_TOAST_DEDUPE_MS = 1500; export type AppStoreKiloPassPurchaseActionsDeps = { @@ -143,14 +145,14 @@ export function getKiloPassPurchaseErrorMessage(error: unknown, fallback: string } if (isAlreadyOwnedPurchaseError(error)) { - return APP_STORE_SUBSCRIPTION_OWNED_BY_ANOTHER_ACCOUNT_MESSAGE; + return i18n.t('kiloPass.purchaseOwnedByAnotherAccount'); } const message = getErrorMessage(error, fallback); if (message === APP_STORE_ACCOUNT_TOKEN_MISMATCH_MESSAGE) { - return APP_STORE_SUBSCRIPTION_OWNED_BY_ANOTHER_ACCOUNT_MESSAGE; + return i18n.t('kiloPass.purchaseOwnedByAnotherAccount'); } - if (message === i18n.t('kiloPass.purchaseNotLinked')) { + if (message === APP_STORE_PURCHASE_NOT_LINKED_TO_ACCOUNT_MESSAGE) { return i18n.t('kiloPass.purchaseDifferentAccount'); } From ad371ba0cc48f880a8f8c5ef6f30319bae224146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 19:13:32 +0200 Subject: [PATCH 09/14] fix(mobile): show the raw code for an unknown severity or status The finding details panel mapped a severity and a lifecycle status onto a catalog key, and fell back to the word "Unknown" when the backend sent a value the app does not know yet. packages/app-shared renders the raw code there, so web shows the new value and mobile hid it. Fall back to the raw code, the same way the shared module does. --- .../security-agent/finding-details-panel.tsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/mobile/src/components/security-agent/finding-details-panel.tsx b/apps/mobile/src/components/security-agent/finding-details-panel.tsx index 2289535a58..971b720358 100644 --- a/apps/mobile/src/components/security-agent/finding-details-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-details-panel.tsx @@ -130,13 +130,17 @@ export function FindingDetailsPanel({ finding, scope }: Readonly - {t('securityAgent.findingDetails.severityLabel', { severity: t(severityKey) })} + {t('securityAgent.findingDetails.severityLabel', { severity: severityLabel })} - {t(statusKey)} + {statusLabel} Date: Tue, 25 Aug 2026 19:55:44 +0200 Subject: [PATCH 10/14] fix(mobile): translate the copy a capitalized code stood in for `capitalize()` on a database code reads as English in all 87 languages. It was the app's largest systemic i18n gap: severity, review style, gate threshold, focus area, analysis mode, thinking effort, subscription plan, and invoice status all rendered an English word this way. Each of those now maps its code to a catalog key, and falls back to the raw code when the backend sends a value the app does not know yet, the same way packages/app-shared renders it for web. Also localized, all reaching the user as English before: - the four pull request retry toasts and the merge-result default - the Code Reviewer needs-attention banner - the Security Agent command failure toasts - the Kilo Pass App Store errors - the Added / Deleted / Context words a screen reader speaks per diff line - a set of smaller toasts and fallback labels 82 new keys, translated into all 87 catalogs. packages/app-shared is unchanged, so web keeps every English string it reads today. --- .../[scope]/[platform]/(edit)/focus-areas.tsx | 10 +- .../[scope]/[platform]/(edit)/gate.tsx | 7 + .../[scope]/[platform]/(edit)/style.tsx | 7 + .../(app)/kiloclaw/[instance-id]/billing.tsx | 15 +- .../mobile/src/components/add-credits-row.tsx | 2 +- .../agents/exit-remote-session-from-list.ts | 7 +- .../code-reviewer/action-required-keys.ts | 39 +++++ .../components/code-reviewer/option-list.tsx | 5 +- .../code-reviewer/platform-overview-rows.ts | 38 ++++- .../platform-overview-screen.tsx | 16 +- .../organization/credit-activity-screen.tsx | 26 +++- .../organization/invoices-screen.tsx | 26 ++-- .../components/security-agent/finding-row.tsx | 17 ++- .../settings-overview-screen.tsx | 15 +- apps/mobile/src/i18n/locales/af.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/am.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ar.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/az.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/be.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/bg.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/bn.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/bs.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ca.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ckb.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/cs.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/cy.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/da.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/de.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/el.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/en.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/es.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/et.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/eu.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/fa.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/fi.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/fil.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/fr.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ga.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/gl.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/gu.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ha.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/he.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/hi.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/hr.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ht.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/hu.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/hy.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/id.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ig.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/is.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/it.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ja.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ka.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/kk.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/km.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/kn.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ko.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/lo.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/lt.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/lv.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/mg.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/mi.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/mk.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ml.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/mn.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/mr.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ms.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/mt.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/my.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/nb.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ne.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/nl.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/om.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/or.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/pa.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/pl.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ps.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/pt-BR.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/pt.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ro.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ru.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/si.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/sk.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/sl.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/so.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/sq.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/sr.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/sv.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/sw.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ta.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/te.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/th.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/tr.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/uk.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/ur.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/uz.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/vi.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/yo.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/zh-Hans.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/zh-Hant.json | 141 ++++++++++++++++-- apps/mobile/src/i18n/locales/zu.json | 141 ++++++++++++++++-- apps/mobile/src/lib/feedback.ts | 2 +- .../hooks/security-command-failure-copy.ts | 38 +++++ .../src/lib/hooks/use-available-models.ts | 22 ++- apps/mobile/src/lib/hooks/use-code-reviews.ts | 3 +- .../lib/hooks/use-security-agent-commands.ts | 2 +- .../lib/hooks/use-session-model-options.ts | 3 +- .../kilo-pass/store-products-loader.test.ts | 5 +- .../lib/kilo-pass/store-products-loader.ts | 7 +- .../kilo-pass/use-store-kilo-pass-products.ts | 6 +- .../kilo-pass/use-store-kilo-pass-purchase.ts | 2 +- apps/mobile/src/lib/kiloclaw-display.ts | 4 +- .../src/lib/pr-review/diff/parse-patch.ts | 13 +- .../lib/pr-review/merge/merge-result-error.ts | 4 +- .../pr-review/merge/pr-operation-ledger.ts | 16 +- 115 files changed, 11329 insertions(+), 1295 deletions(-) create mode 100644 apps/mobile/src/components/code-reviewer/action-required-keys.ts create mode 100644 apps/mobile/src/lib/hooks/security-command-failure-copy.ts diff --git a/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/focus-areas.tsx b/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/focus-areas.tsx index e68e74181e..37bbd566ea 100644 --- a/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/focus-areas.tsx +++ b/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/focus-areas.tsx @@ -21,6 +21,14 @@ export default function FocusAreasRoute() { const selected = data?.focusAreas ?? []; const disabled = data == null; const { t } = useTranslation(); + const areaLabels = { + security: 'codeReviewer.focusArea.security', + performance: 'codeReviewer.focusArea.performance', + bugs: 'codeReviewer.focusArea.bugs', + style: 'codeReviewer.focusArea.style', + testing: 'codeReviewer.focusArea.testing', + documentation: 'codeReviewer.focusArea.documentation', + } as const; const toggleArea = (area: string) => { // Read the cache at call time, not the render-time snapshot above, so @@ -43,7 +51,7 @@ export default function FocusAreasRoute() { {REVIEW_FOCUS_AREAS.map(area => ( ; + +/** Looks up a possibly-unknown key in a literal dictionary without widening its type. */ +function lookup(dictionary: Readonly>, key: string): V | undefined { + return (dictionary as Readonly>)[key]; +} function DetailRow({ label, @@ -132,7 +142,8 @@ function PlanDetails({ return ; } if (billing.subscription) { - const planName = capitalize(billing.subscription.plan); + const planKey = lookup(SUBSCRIPTION_PLAN_KEYS, billing.subscription.plan); + const planName = planKey ? t(planKey) : billing.subscription.plan; const cancelling = billing.subscription.cancelAtPeriodEnd; return ( diff --git a/apps/mobile/src/components/add-credits-row.tsx b/apps/mobile/src/components/add-credits-row.tsx index 95806ccbeb..c60863f328 100644 --- a/apps/mobile/src/components/add-credits-row.tsx +++ b/apps/mobile/src/components/add-credits-row.tsx @@ -29,7 +29,7 @@ export function AddCreditsRow({ url, className }: AddCreditsRowProps) { size="sm" variant="outline" onPress={() => { - void openExternalUrl(url, { label: 'billing page' }); + void openExternalUrl(url, { label: t('addCredits.billingPage') }); }} > {t('addCredits.cta')} diff --git a/apps/mobile/src/components/agents/exit-remote-session-from-list.ts b/apps/mobile/src/components/agents/exit-remote-session-from-list.ts index 6de680c373..2678fb81eb 100644 --- a/apps/mobile/src/components/agents/exit-remote-session-from-list.ts +++ b/apps/mobile/src/components/agents/exit-remote-session-from-list.ts @@ -14,8 +14,6 @@ const REMOTE_SESSION_EXIT_NOT_SUPPORTED_MESSAGE = const REMOTE_SESSION_EXIT_UNAVAILABLE_MESSAGE = 'Remote session exit is unavailable for the current session'; const REMOTE_SESSION_EXIT_UPGRADE_PREFIX = 'Remote slash commands require a newer Kilo CLI'; -const RETRY_TOAST_LABEL = 'Try again'; -const FALLBACK_ERROR_MESSAGE = 'Failed to exit session'; const NON_RETRYABLE_EXIT_MESSAGES: ReadonlySet = new Set([ REMOTE_SESSION_EXIT_NOT_SUPPORTED_MESSAGE, @@ -62,7 +60,8 @@ export async function exitRemoteSessionFromList({ try { await sendExit(); } catch (error) { - const message = error instanceof Error ? error.message : FALLBACK_ERROR_MESSAGE; + const message = + error instanceof Error ? error.message : i18n.t('agentChat.remoteSession.failedToExit'); if (isNonRetryableExitError(message)) { // Fail-closed: the SDK signalled "do not send". No CTA so the user // sees the copy but cannot trigger another attempt. @@ -72,7 +71,7 @@ export async function exitRemoteSessionFromList({ // send without a second confirm. announcingToast.error(message, { action: { - label: RETRY_TOAST_LABEL, + label: i18n.t('common.tryAgain'), onClick: () => { void runSend(); }, diff --git a/apps/mobile/src/components/code-reviewer/action-required-keys.ts b/apps/mobile/src/components/code-reviewer/action-required-keys.ts new file mode 100644 index 0000000000..790ddaf455 --- /dev/null +++ b/apps/mobile/src/components/code-reviewer/action-required-keys.ts @@ -0,0 +1,39 @@ +import { type CodeReviewActionRequiredReason } from '@kilocode/app-shared/code-reviews'; + +// Catalog keys for the needs-attention banner. packages/app-shared keeps its +// English for web; mobile renders the translated copy for the same reason code. +export const ACTION_REQUIRED_KEYS = { + github_installation_required: { + title: 'codeReviewer.actionRequired.githubInstallationRequired.title', + description: 'codeReviewer.actionRequired.githubInstallationRequired.description', + recoveryLabel: 'codeReviewer.actionRequired.githubInstallationRequired.recoveryLabel', + }, + github_ip_allow_list: { + title: 'codeReviewer.actionRequired.githubIpAllowList.title', + description: 'codeReviewer.actionRequired.githubIpAllowList.description', + recoveryLabel: 'codeReviewer.actionRequired.githubIpAllowList.recoveryLabel', + }, + gitlab_project_access_required: { + title: 'codeReviewer.actionRequired.gitlabProjectAccessRequired.title', + description: 'codeReviewer.actionRequired.gitlabProjectAccessRequired.description', + recoveryLabel: 'codeReviewer.actionRequired.gitlabProjectAccessRequired.recoveryLabel', + }, + byok_invalid_key: { + title: 'codeReviewer.actionRequired.byokInvalidKey.title', + description: 'codeReviewer.actionRequired.byokInvalidKey.description', + recoveryLabel: 'codeReviewer.actionRequired.byokInvalidKey.recoveryLabel', + }, + selected_model_unavailable: { + title: 'codeReviewer.actionRequired.selectedModelUnavailable.title', + description: 'codeReviewer.actionRequired.selectedModelUnavailable.description', + recoveryLabel: 'codeReviewer.actionRequired.selectedModelUnavailable.recoveryLabel', + }, + repeated_repository_clone_timeout: { + title: 'codeReviewer.actionRequired.repeatedRepositoryCloneTimeout.title', + description: 'codeReviewer.actionRequired.repeatedRepositoryCloneTimeout.description', + recoveryLabel: 'codeReviewer.actionRequired.repeatedRepositoryCloneTimeout.recoveryLabel', + }, +} satisfies Record< + CodeReviewActionRequiredReason, + { title: string; description: string; recoveryLabel: string } +>; diff --git a/apps/mobile/src/components/code-reviewer/option-list.tsx b/apps/mobile/src/components/code-reviewer/option-list.tsx index 149cf17fd4..cbfce049c6 100644 --- a/apps/mobile/src/components/code-reviewer/option-list.tsx +++ b/apps/mobile/src/components/code-reviewer/option-list.tsx @@ -15,6 +15,8 @@ type OptionListProps = { /** Must resolve/reject once the save actually completes — the screen * navigates back only on confirmed success. */ onSelect: (value: T) => Promise; + /** Optional per-option row label; defaults to the raw option value. */ + labels?: Readonly>; /** Optional per-option caption below the label. */ descriptions?: Readonly>; /** Disables every row, e.g. while the config backing `selected` is still loading. */ @@ -27,6 +29,7 @@ export function OptionList({ options, selected, onSelect, + labels, descriptions, disabled, }: Readonly>) { @@ -56,7 +59,7 @@ export function OptionList({ {options.map(option => ( 0 - ? formatList(data.focusAreas.map(capitalize), i18n.language) + ? formatList( + // An area the app does not know yet reads as its raw code. + data.focusAreas.map(area => + area in focusAreaLabels + ? i18n.t(focusAreaLabels[area as keyof typeof focusAreaLabels]) + : area + ), + i18n.language + ) : i18n.t('codeReviewer.overview.allAreas'), }, // Custom Instructions is deprecated in favour of REVIEW.md, so the row is @@ -86,7 +116,7 @@ export function buildOverviewRows({ field: 'gate', icon: Gauge, title: i18n.t('codeReviewer.overview.mergeGate'), - subtitle: capitalize(data.gateThreshold), + subtitle: i18n.t(gateThresholdLabels[data.gateThreshold]), }, ] : []), diff --git a/apps/mobile/src/components/code-reviewer/platform-overview-screen.tsx b/apps/mobile/src/components/code-reviewer/platform-overview-screen.tsx index 8a8d757cc6..6088eaaf3e 100644 --- a/apps/mobile/src/components/code-reviewer/platform-overview-screen.tsx +++ b/apps/mobile/src/components/code-reviewer/platform-overview-screen.tsx @@ -5,7 +5,6 @@ import { ActivityIndicator, Switch, View } from 'react-native'; import Animated, { FadeIn, FadeOut, LinearTransition } from 'react-native-reanimated'; import { openModelPicker } from '@/components/agents/model-selector'; -import { getCodeReviewActionRequiredCopy } from '@kilocode/app-shared/code-reviews'; import { BitbucketOverview } from '@/components/code-reviewer/bitbucket-overview'; import { buildOverviewRows, @@ -34,6 +33,7 @@ import { useToggleReviewer, } from '@/lib/hooks/use-code-reviewer'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; +import { ACTION_REQUIRED_KEYS } from '@/components/code-reviewer/action-required-keys'; export function PlatformOverviewScreen({ scope, @@ -171,10 +171,8 @@ export function PlatformOverviewScreen({ : undefined, }); - const actionRequiredCopy = - data?.actionRequired != null - ? getCodeReviewActionRequiredCopy(data.actionRequired.reason) - : null; + const actionRequiredKeys = + data?.actionRequired != null ? ACTION_REQUIRED_KEYS[data.actionRequired.reason] : null; return ( @@ -236,14 +234,14 @@ export function PlatformOverviewScreen({ )} - {actionRequiredCopy != null && ( + {actionRequiredKeys != null && ( - {actionRequiredCopy.title} + {t(actionRequiredKeys.title)} - {actionRequiredCopy.description} + {t(actionRequiredKeys.description)} - {actionRequiredCopy.recoveryLabel} + {t(actionRequiredKeys.recoveryLabel)} )} diff --git a/apps/mobile/src/components/organization/credit-activity-screen.tsx b/apps/mobile/src/components/organization/credit-activity-screen.tsx index f1a2b3eb8e..cb140e3a19 100644 --- a/apps/mobile/src/components/organization/credit-activity-screen.tsx +++ b/apps/mobile/src/components/organization/credit-activity-screen.tsx @@ -22,11 +22,27 @@ import { } from '@/lib/hooks/use-organization-queries'; import { useOrganization } from '@/lib/organization-context'; import { reconcileOrgDeepLink } from '@/lib/org-deep-link'; -import { capitalize, cn, firstNonEmpty, parseTimestamp } from '@/lib/utils'; +import { cn, firstNonEmpty, parseTimestamp } from '@/lib/utils'; + +const CREDIT_CATEGORY_KEYS = { + organization_custom: 'organization.creditActivity.category.organization_custom', + parent_to_child_transfer_in: 'organization.creditActivity.category.parent_to_child_transfer_in', + parent_to_child_transfer_out: 'organization.creditActivity.category.parent_to_child_transfer_out', + 'oss-sponsorship': 'organization.creditActivity.category.oss-sponsorship', + 'oss-monthly-reset': 'organization.creditActivity.category.oss-monthly-reset', + 'team-topup-bonus-2025': 'organization.creditActivity.category.team-topup-bonus-2025', + accounting_adjustment: 'organization.creditActivity.category.accounting_adjustment', + credits_expired: 'organization.creditActivity.category.credits_expired', +} satisfies Record; + +/** Looks up a possibly-unknown key in a literal dictionary without widening its type. */ +function lookup(dictionary: Readonly>, key: string): V | undefined { + return (dictionary as Readonly>)[key]; +} -function humanizeCategory(category: string): string { - const spaced = category.replaceAll('_', ' '); - return capitalize(spaced); +function categoryLabel(category: string): string { + const key = lookup(CREDIT_CATEGORY_KEYS, category); + return key ? i18n.t(key) : category; } function CreditRowSkeleton() { @@ -44,7 +60,7 @@ function CreditRow({ transaction }: Readonly<{ transaction: CreditTransaction }> const isPositive = amount >= 0; const title = firstNonEmpty( transaction.description, - transaction.credit_category ? humanizeCategory(transaction.credit_category) : undefined, + transaction.credit_category ? categoryLabel(transaction.credit_category) : undefined, t('organization.creditActivity.transactionFallback') ); diff --git a/apps/mobile/src/components/organization/invoices-screen.tsx b/apps/mobile/src/components/organization/invoices-screen.tsx index 78cd58a64c..d28e287a2d 100644 --- a/apps/mobile/src/components/organization/invoices-screen.tsx +++ b/apps/mobile/src/components/organization/invoices-screen.tsx @@ -25,25 +25,31 @@ import { selectInvoiceRowState, shareOrganizationInvoicePdf, } from '@/lib/organization-invoice-download'; -import { capitalize, cn, firstNonEmpty } from '@/lib/utils'; +import { cn, firstNonEmpty } from '@/lib/utils'; + +const STATUS_LABEL_KEYS = { + paid: 'organization.invoices.status.paid', + open: 'organization.invoices.status.open', + void: 'organization.invoices.status.void', + draft: 'organization.invoices.status.draft', + uncollectible: 'organization.invoices.status.uncollectible', + unknown: 'organization.invoices.status.unknown', +} satisfies Record; const STATUS_META = { paid: { - labelKey: 'organization.invoices.statusPaid', pillClass: 'bg-good', textClass: 'text-good-foreground', }, open: { - labelKey: 'organization.invoices.statusOpen', pillClass: 'bg-warn', textClass: 'text-warn-foreground', }, void: { - labelKey: 'organization.invoices.statusVoid', pillClass: 'bg-muted', textClass: 'text-muted-foreground', }, -} as const satisfies Record; +} as const satisfies Record; /** Looks up a possibly-unknown key in a literal dictionary without widening its type. */ function lookup(dictionary: Readonly>, key: string): V | undefined { @@ -52,13 +58,11 @@ function lookup(dictionary: Readonly>, key: string): V | un function statusMeta(status: string) { const meta = lookup(STATUS_META, status); - if (meta) { - return { label: i18n.t(meta.labelKey), pillClass: meta.pillClass, textClass: meta.textClass }; - } + const labelKey = lookup(STATUS_LABEL_KEYS, status); return { - label: capitalize(status), - pillClass: 'bg-muted', - textClass: 'text-muted-foreground', + label: labelKey ? i18n.t(labelKey) : status, + pillClass: meta?.pillClass ?? 'bg-muted', + textClass: meta?.textClass ?? 'text-muted-foreground', }; } diff --git a/apps/mobile/src/components/security-agent/finding-row.tsx b/apps/mobile/src/components/security-agent/finding-row.tsx index cb4335afab..2de666f442 100644 --- a/apps/mobile/src/components/security-agent/finding-row.tsx +++ b/apps/mobile/src/components/security-agent/finding-row.tsx @@ -21,7 +21,14 @@ import { useStartSecurityAnalysis } from '@/lib/hooks/use-security-findings'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; import { getSecurityAgentPath, type SecurityFinding } from '@/lib/security-agent'; import { getDeadlineCopy, getSecurityAnalysisLabel } from '@/lib/security-agent-copy'; -import { capitalize, cn } from '@/lib/utils'; +import { cn } from '@/lib/utils'; + +const SEVERITY_KEYS = { + critical: 'securityAgent.sla.critical', + high: 'securityAgent.sla.high', + medium: 'securityAgent.sla.medium', + low: 'securityAgent.sla.low', +} satisfies Record; const SEVERITY_TEXT_CLASS = { critical: 'text-destructive', @@ -176,6 +183,8 @@ export function FindingRow({ const deadline = slaEnabled ? getSecurityDeadlinePresentation(finding) : null; const deadlineLabel = deadline ? getDeadlineCopy(deadline.state).label : ''; const nextAction = getNextActionLabel(finding); + const severityKey = lookup(SEVERITY_KEYS, finding.severity); + const severityLabel = severityKey ? t(severityKey) : finding.severity; const AnalysisIcon = FINDING_ICONS[analysis.icon]; const DeadlineIcon = deadline ? FINDING_ICONS[deadline.icon] : null; @@ -192,14 +201,14 @@ export function FindingRow({ const accessibilityLabel = deadline ? t('securityAgent.findingRow.a11yWithDeadline', { - severity: capitalize(finding.severity), + severity: severityLabel, title: finding.title, repo: finding.repo_full_name, analysis: analysisLabel, deadline: deadlineLabel, }) : t('securityAgent.findingRow.a11y', { - severity: capitalize(finding.severity), + severity: severityLabel, title: finding.title, repo: finding.repo_full_name, analysis: analysisLabel, @@ -221,7 +230,7 @@ export function FindingRow({ lookup(SEVERITY_TEXT_CLASS, finding.severity) ?? 'text-muted-foreground' )} > - {capitalize(finding.severity)} + {severityLabel} {finding.title} diff --git a/apps/mobile/src/components/security-agent/settings-overview-screen.tsx b/apps/mobile/src/components/security-agent/settings-overview-screen.tsx index 6873a3df30..f5b93bd6ca 100644 --- a/apps/mobile/src/components/security-agent/settings-overview-screen.tsx +++ b/apps/mobile/src/components/security-agent/settings-overview-screen.tsx @@ -23,7 +23,17 @@ import { } from '@/lib/hooks/use-security-agent'; import { useCommittedConnectivityStatus } from '@/lib/hooks/use-offline-banner-state'; import { getSecurityAgentPath } from '@/lib/security-agent'; -import { capitalize } from '@/lib/utils'; + +const ANALYSIS_MODE_KEYS = { + auto: 'securityAgent.analysisMode.auto', + shallow: 'securityAgent.analysisMode.shallow', + deep: 'securityAgent.analysisMode.deep', +} satisfies Record; + +/** Looks up a possibly-unknown key in a literal dictionary without widening its type. */ +function lookup(dictionary: Readonly>, key: string): V | undefined { + return (dictionary as Readonly>)[key]; +} function SettingsOverviewSkeleton() { const { t } = useTranslation(); @@ -142,6 +152,7 @@ export function SettingsOverviewScreen({ data.newFindingNotificationsEnabled, data.slaNotificationsEnabled, ].filter(Boolean).length; + const analysisModeLabel = lookup(ANALYSIS_MODE_KEYS, data.analysisMode) ?? data.analysisMode; const handleToggle = (value: boolean) => { void Haptics.selectionAsync(); @@ -267,7 +278,7 @@ export function SettingsOverviewScreen({ icon={Cpu} title={t('securityAgent.settingsOverview.modelsAndAnalysis')} subtitle={t('securityAgent.settingsOverview.analysisModeSubtitle', { - mode: capitalize(data.analysisMode), + mode: analysisModeLabel, })} onPress={() => { router.push(getSecurityAgentPath(scope, 'settings/analysis')); diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index 4dbc31ebe3..f7585b75a6 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Gekies {{label}}, tik om seleksie te verander", "truncationBanner": "Wys die eerste {{limit}} van {{total}} veranderde lêers — GitHub API-limiet", - "tapToComment": "{{label}}, tik om kommentaar te lewer" + "tapToComment": "{{label}}, tik om kommentaar te lewer", + "statusAdded": "Bygevoeg", + "statusContext": "Konteks", + "statusDeleted": "Verwyder" }, "linkPasteClipboardEmpty": "Knipbord is leeg", "linkPasteNotAPullRequest": "Nie 'n GitHub-pull-request-skakel nie", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Hierdie resensie kan nie soos dit is ingedien word nie. Die PR het dalk verander, of jy kan nie jou eie trekversoek resenseer nie.", "couldNotPostComment": "Kon nie kommentaar plaas nie.", "couldNotSubmitReview": "Kon nie resensie indien nie. Kontroleer jou verbinding en probeer weer." + }, + "operation": { + "couldNotReply": "Kon nie antwoord nie.", + "couldNotCompleteAction": "Kon nie hierdie aksie voltooi nie.", + "mergeResultDefaultError": "GitHub het nie die samesmelting voltooi nie." } }, "notifications": { @@ -821,7 +829,11 @@ "subscriptionCancels": "Intekening kanselleer {{date}}", "trialDaysRemaining": "Proefperiode: {{remaining}} oor", "trialEndingSoon": "Proefperiode eindig binnekort: {{remaining}}", - "lessThanOneDay": "Minder as 1 dag" + "lessThanOneDay": "Minder as 1 dag", + "planName": { + "commit": "Vastelê", + "standard": "Standard" + } }, "changelog": { "title": "Wat's Nuut", @@ -1189,7 +1201,8 @@ "strongArm": "Sterk arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Hierdie instansie kan nie lêers ontvang nie." + "remoteSpawnFilesNotSupported": "Hierdie instansie kan nie lêers ontvang nie.", + "instanceSwitcherTitle": "KiloClaw-instansie" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Misluk", "cancelled": "Gekanselleer", "interrupted": "Onderbreek" - } + }, + "reviewStyle": { + "strict": "Streng", + "balanced": "Gebalanseerd", + "lenient": "Toegeeflik", + "roast": "Roast" + }, + "focusArea": { + "security": "Sekuriteit", + "performance": "Prestasie", + "bugs": "Foute", + "style": "Styl", + "testing": "Toetsing", + "documentation": "Dokumentasie" + }, + "gateThreshold": { + "off": "Af", + "all": "Alles", + "warning": "Waarskuwing", + "critical": "Krities" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Kode-hersiener benodig aandag", + "description": "Kode-hersiener is gedeaktiveer omdat Kilo nie toegang tot hierdie bewaarplek kan kry met 'n aktiewe GitHub App-installasie nie. Werk die GitHub App-installasie by, en aktiveer Kode-hersiener weer.", + "recoveryLabel": "Werk GitHub App by" + }, + "githubIpAllowList": { + "title": "Kode-hersiener benodig aandag", + "description": "Kode-hersiener is gedeaktiveer omdat hierdie GitHub-organisasie 'n IP-toelatingslys gebruik wat Kilo blokkeer. Kontak hi@kilocode.ai vir hulp, en aktiveer Kode-hersiener weer.", + "recoveryLabel": "Kontak ondersteuning" + }, + "gitlabProjectAccessRequired": { + "title": "Kode-hersiener benodig aandag", + "description": "Kode-hersiener is gedeaktiveer omdat Kilo nie 'n GitLab-projektoegangstoken vir hierdie projek kan skep nie. Verleen Maintainer-toegang of aktiveer projektoegangstokens, en aktiveer Kode-hersiener weer.", + "recoveryLabel": "Werk GitLab-integrasie by" + }, + "byokInvalidKey": { + "title": "Kode-hersiener benodig aandag", + "description": "Kode-hersiener is gedeaktiveer omdat die geselekteerde BYOK API-sleutel ongeldig is, herroep is, of nie toestemming het nie. Werk die sleutel by of kies 'n ander model, en aktiveer Kode-hersiener weer.", + "recoveryLabel": "Werk BYOK-instellings by" + }, + "selectedModelUnavailable": { + "title": "Kode-hersiener benodig aandag", + "description": "Kode-hersiener is gedeaktiveer omdat die geselekteerde model nie vir cloud agent-sessies beskikbaar is nie. Kies 'n beskikbare model, en aktiveer Kode-hersiener weer.", + "recoveryLabel": "Werk Kode-hersiener-instellings by" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Kode-hersiener benodig aandag", + "description": "Kode-hersiener is gedeaktiveer ná drie bewaarplekkloneer-tydverstrekke vandag. Kontak hi@kilocode.ai vir hulp, en aktiveer Kode-hersiener weer.", + "recoveryLabel": "Kontak ondersteuning" + } + }, + "unknownError": "Onbekende fout" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Die bevinding is onder die outomatiese ernsgraaddrempel. Handmatige regstelling kan steeds begin wanneer veiligheidshekke slaag.", "beforeEnablement": "Ontleding is voltooi voordat Auto-regstelling geaktiveer is. Handmatige regstelling kan steeds begin wanneer veiligheidshekke slaag.", "generic": "Regstelling is vir hierdie bevinding onbeskikbaar." + }, + "commandFailure": { + "ownerCapReached": "Ontledingskapasiteit is vol. Wag vir 'n aktiewe ontleding om klaar te maak, en probeer dan weer.", + "githubTokenUnavailable": "GitHub-magtiging benodig aandag. Her-magtig GitHub App, en probeer dan weer.", + "githubAuthInvalid": "GitHub-magtiging benodig aandag. Her-magtig GitHub App, en probeer dan weer.", + "findingUnavailable": "Bevinding is nie meer beskikbaar nie. Verfris bevindings en probeer weer as dit oop bly.", + "repositoryUnavailable": "Bewaarplek is nie meer vir GitHub App beskikbaar nie. Verfris bewaarplektoegang, en probeer dan weer.", + "invalidDismissTarget": "Bevinding kan nie van die hand gemaak word nie omdat sy Dependabot-teiken ongeldig is.", + "commandStalled": "Aksie in die tou het nie betyds klaargemaak nie. Probeer aksie weer.", + "queueRetriesExhausted": "Aksie kon nie ná verskeie pogings voltooi word nie. Probeer aksie weer.", + "queueAdmissionFailed": "Aksie in die tou kon nie toegelaat word nie. Probeer aksie weer.", + "generic": "Aksie in die tou het misluk. Probeer aksie weer." + }, + "analysisMode": { + "auto": "Outo", + "shallow": "Vlak", + "deep": "Diep" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Voeg {{name}} by gunstelinge", "removeFromFavorites": "Verwyder {{name}} van gunstelinge", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Sessiemodel" }, "attachmentPreview": { "openFailedRetry": "Kon nie lêer oopmaak nie. Probeer asseblief weer.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Voeg krediete by", - "description": "Voeg krediete by om gebruik aan die gang te hou." + "description": "Voeg krediete by om gebruik aan die gang te hou.", + "billingPage": "faktureringsbladsy" }, "deviceSessions": { "couldNotLoad": "Kon nie sessies laai nie", @@ -2710,7 +2795,10 @@ "restoreFailed": "Kon nie aankope herstel nie. Probeer weer.", "purchaseFailed": "Kon nie aankoop voltooi nie.", "purchaseStartFailed": "Kon nie App Store-aankoop begin nie.", - "purchaseOwnedByAnotherAccount": "Die Kilo Pass op hierdie Apple-rekening behoort aan 'n ander Kilo-rekening." + "purchaseOwnedByAnotherAccount": "Die Kilo Pass op hierdie Apple-rekening behoort aan 'n ander Kilo-rekening.", + "couldNotConnectToAppStore": "Kon nie aan die App Store koppel nie. Kontroleer jou verbinding en probeer weer.", + "noMatchingProducts": "Geen ooreenstemmende Kilo Pass-produkte is deur App Store teruggegee nie.", + "purchaseMissingSignedTransaction": "App Store-aankoop het nie 'n getekende transaksie-JWS ingesluit nie." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Moet werk", "sorryTitle": "Ons is jammer om dit te hoor!", "sorryMessage": "Laat ons asseblief weet wat beter moet word. Die ingenieur in beheer van die app lees elke verslag!", - "emailUs": "E-pos ons" + "emailUs": "E-pos ons", + "emailSubject": "terugvoer oor mobiele app" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Geen kredietaktiwiteit nie", "expires": "Verval {{date}}", "title": "Kredietaktiwiteit", - "transactionFallback": "Krediettransaksie" + "transactionFallback": "Krediettransaksie", + "category": { + "organization_custom": "Organisasie-aangepas", + "parent_to_child_transfer_in": "Ouer-na-kind-oordrag in", + "parent_to_child_transfer_out": "Ouer-na-kind-oordrag uit", + "oss-sponsorship": "OSS-borgskap", + "oss-monthly-reset": "OSS-maandelikse herstel", + "team-topup-bonus-2025": "Span-hervulling-bonus-2025", + "accounting_adjustment": "Rekeningkundige aanpassing", + "credits_expired": "Krediete verval" + } }, "inviteMember": { "emailError": "Voer 'n geldige e-posadres in", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakture word outomaties elke faktuursiklus gegenereer en sal hier verskyn sodra jou organisasie gefaktureer word.", "emptyTitle": "Geen fakture nie", "invoiceFallback": "Faktuur", - "statusOpen": "Oop", - "statusPaid": "Betaal", - "statusVoid": "Ongeldig", "title": "Fakture", "downloadFailed": "Kon nie faktuur aflaai nie. Kontroleer jou verbinding en probeer weer.", - "sharingUnavailable": "Deling is nie op hierdie toestel beskikbaar nie." + "sharingUnavailable": "Deling is nie op hierdie toestel beskikbaar nie.", + "status": { + "paid": "Betaal", + "open": "Oop", + "void": "Ongeldig", + "draft": "Konsep", + "uncollectible": "Oninbaar", + "unknown": "Onbekend" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data ingesamel", "free": "Gratis", - "couldNotUpdateFavorites": "Kon nie gunstelinge bywerk nie" + "couldNotUpdateFavorites": "Kon nie gunstelinge bywerk nie", + "thinkingEffort": { + "none": "Geen", + "minimal": "Minimaal", + "low": "Laag", + "medium": "Medium", + "high": "Hoog", + "xhigh": "Ekstra hoog", + "max": "Maksimum" + } } } diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 1a4bcceb19..7d7a0c3551 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} ተመርጧል፣ ምርጫውን ለመቀየር ይንኩ", "truncationBanner": "ከ{{total}} የተለወጡ ፋይሎች ውስጥ የመጀመሪያዎቹን {{limit}} ያሳያል — GitHub API ገደብ", - "tapToComment": "{{label}}፣ አስተያየት ለመስጠት ይንኩ" + "tapToComment": "{{label}}፣ አስተያየት ለመስጠት ይንኩ", + "statusAdded": "ታክሏል", + "statusContext": "አውድ", + "statusDeleted": "ተሰርዟል" }, "linkPasteClipboardEmpty": "ቅንጥብ ሰሌዳው ባዶ ነው", "linkPasteNotAPullRequest": "የGitHub ፑል እንደጠየቀ አገናኝ አይደለም", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ይህ ግምገማ እንዳለ ሊቀርብ አይችልም። PR ተለውጦ ሊሆን ይችላል፣ ወይም የራስዎን የጎተራ ጥያቄ መገምገም አይችሉም።", "couldNotPostComment": "አስተያየት መለጠፍ አልተቻለም።", "couldNotSubmitReview": "ግምገማውን ማስገባት አልተቻለም። ግንኙነትዎን ያረጋግጡ እና እንደገና ይሞክሩ።" + }, + "operation": { + "couldNotReply": "መልስ መስጠት አልተቻለም።", + "couldNotCompleteAction": "ይህን እርምጃ ማጠናቀቅ አልተቻለም።", + "mergeResultDefaultError": "GitHub ውህደቱን አላጠናቀቀም።" } }, "notifications": { @@ -821,7 +829,11 @@ "subscriptionCancels": "ምዝገባ {{date}} ይሰረዛል", "trialDaysRemaining": "ሙከራ፡ {{remaining}} ቀርተዋል", "trialEndingSoon": "ሙከራ በቅርቡ ያበቃል፡ {{remaining}}", - "lessThanOneDay": "ከ1 ቀን በታች" + "lessThanOneDay": "ከ1 ቀን በታች", + "planName": { + "commit": "አስተያይ", + "standard": "መደበኛ" + } }, "changelog": { "title": "ምን አዲስ", @@ -1189,7 +1201,8 @@ "strongArm": "ጠንካራ ክንድ", "talisman": "ታሊስማን" }, - "remoteSpawnFilesNotSupported": "ይህ አጋጣሚ ፋይሎች መቀበል አይችልም።" + "remoteSpawnFilesNotSupported": "ይህ አጋጣሚ ፋይሎች መቀበል አይችልም።", + "instanceSwitcherTitle": "የKiloClaw አጋጣሚ" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "አልተሳካም", "cancelled": "ተሰርዟል", "interrupted": "ተቋርጧል" - } + }, + "reviewStyle": { + "strict": "ጥብቅ", + "balanced": "ሚዛናዊ", + "lenient": "ገር", + "roast": "Roast" + }, + "focusArea": { + "security": "ደህንነት", + "performance": "አፈጻጸም", + "bugs": "ሳንካዎች", + "style": "ዘይቤ", + "testing": "ሙከራ", + "documentation": "ሰነዶች" + }, + "gateThreshold": { + "off": "ጠፍቷል", + "all": "ሁሉም", + "warning": "ማስጠንቀቂያ", + "critical": "ወሳኝ" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "የኮድ ገምጋሚ ትኩረት ይፈልጋል", + "description": "የኮድ ገምጋሚ የተሰናከለው Kilo በንቁ የGitHub መተግበሪያ ጭነት ወደዚህ መጋዘን መድረስ ስለማይችል ነው። የGitHub መተግበሪያ ጭነቱን ያዘምኑ፣ ከዚያ የኮድ ገምጋሚውን እንደገና ያንቁ።", + "recoveryLabel": "የGitHub መተግበሪያውን ያዘምኑ" + }, + "githubIpAllowList": { + "title": "የኮድ ገምጋሚ ትኩረት ይፈልጋል", + "description": "የኮድ ገምጋሚ የተሰናከለው ይህ የGitHub ድርጅት Kiloን የሚያግድ የIP ፈቃድ ዝርዝር ስለሚጠቀም ነው። ለእርዳታ hi@kilocode.aiን ያግኙ፣ ከዚያ የኮድ ገምጋሚውን እንደገና ያንቁ።", + "recoveryLabel": "ድጋፍን ያግኙ" + }, + "gitlabProjectAccessRequired": { + "title": "የኮድ ገምጋሚ ትኩረት ይፈልጋል", + "description": "የኮድ ገምጋሚ የተሰናከለው Kilo ለዚህ ፕሮጀክት የGitLab የፕሮጀክት መዳረሻ ቶከን መፍጠር ስለማይችል ነው። የMaintainer መዳረሻ ይስጡ ወይም የፕሮጀክት መዳረሻ ቶከኖችን ያንቁ፣ ከዚያ የኮድ ገምጋሚውን እንደገና ያንቁ።", + "recoveryLabel": "የGitLab ውህደትን ያዘምኑ" + }, + "byokInvalidKey": { + "title": "የኮድ ገምጋሚ ትኩረት ይፈልጋል", + "description": "የኮድ ገምጋሚ የተሰናከለው የተመረጠው የBYOK API ቁልፍ ልክ ያልሆነ፣ የተሰረዘ ወይም ፍቃድ የሌለው ስለሆነ ነው። ቁልፉን ያዘምኑ ወይም ሌላ ሞዴል ይምረጡ፣ ከዚያ የኮድ ገምጋሚውን እንደገና ያንቁ።", + "recoveryLabel": "የBYOK ቅንብሮችን ያዘምኑ" + }, + "selectedModelUnavailable": { + "title": "የኮድ ገምጋሚ ትኩረት ይፈልጋል", + "description": "የኮድ ገምጋሚ የተሰናከለው የተመረጠው ሞዴል ለክላውድ ወኪል ክፍለ-ጊዜዎች ስለማይገኝ ነው። የሚገኝ ሞዴል ይምረጡ፣ ከዚያ የኮድ ገምጋሚውን እንደገና ያንቁ።", + "recoveryLabel": "የኮድ ገምጋሚ ቅንብሮችን ያዘምኑ" + }, + "repeatedRepositoryCloneTimeout": { + "title": "የኮድ ገምጋሚ ትኩረት ይፈልጋል", + "description": "የኮድ ገምጋሚ ዛሬ ከሶስት የመጋዘን ቅጂ ጊዜ ማብቂያዎች በኋላ ተሰናክሏል። ለእርዳታ hi@kilocode.aiን ያግኙ፣ ከዚያ የኮድ ገምጋሚውን እንደገና ያንቁ።", + "recoveryLabel": "ድጋፍን ያግኙ" + } + }, + "unknownError": "የማይታወቅ ስህተት" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ግኝቱ ከራስ-ሰር ክብደት ደረጃ በታች ነው። የደህንነት መከላከያ በሮች ሲያልፉ የእጅ ጥገና አሁንም ሊጀመር ይችላል።", "beforeEnablement": "ራስ-ሰር ጥገና ከመንቃቱ በፊት ትንተናው ተጠናቋል። የደህንነት መከላከያ በሮች ሲያልፉ የእጅ ጥገና አሁንም ሊጀመር ይችላል።", "generic": "ለዚህ ግኝት ጥገና አይገኝም።" + }, + "commandFailure": { + "ownerCapReached": "የትንታኔ አቅም ሙሉ ነው። ንቁ የሆነ ትንታኔ እስኪጠናቀቅ ይጠብቁ፣ ከዚያ እንደገና ይሞክሩ።", + "githubTokenUnavailable": "የGitHub ፍቃድ ትኩረት ይፈልጋል። የGitHub መተግበሪያን እንደገና ያስፈቅዱ፣ ከዚያ እንደገና ይሞክሩ።", + "githubAuthInvalid": "የGitHub ፍቃድ ትኩረት ይፈልጋል። የGitHub መተግበሪያን እንደገና ያስፈቅዱ፣ ከዚያ እንደገና ይሞክሩ።", + "findingUnavailable": "ግኝቱ ከእንግዲህ አይገኝም። ግኝቶችን ያድሱ እና ክፍት ከሆነ እንደገና ይሞክሩ።", + "repositoryUnavailable": "ማከማቻው ከእንግዲህ ለGitHub መተግበሪያ አይገኝም። የማከማቻ መዳረሻን ያድሱ፣ ከዚያ እንደገና ይሞክሩ።", + "invalidDismissTarget": "ግኝቱ ሊወገድ አይችልም ምክንያቱም የDependabot ኢላማው ልክ ያልሆነ ነው።", + "commandStalled": "የተሰለፈ እርምጃ በሰዓቱ አልጨረሰም። እርምጃውን እንደገና ይሞክሩ።", + "queueRetriesExhausted": "እርምጃው ከብዙ ሙከራዎች በኋላ ሊጠናቀቅ አልቻለም። እርምጃውን እንደገና ይሞክሩ።", + "queueAdmissionFailed": "የተሰለፈው እርምጃ ተቀባይነት ማግኘት አልቻለም። እርምጃውን እንደገና ይሞክሩ።", + "generic": "የተሰለፈ እርምጃ አልተሳካም። እርምጃውን እንደገና ይሞክሩ።" + }, + "analysisMode": { + "auto": "አውቶ", + "shallow": "ጥልቀት የሌለው", + "deep": "ጥልቅ" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} ወደ ተወዳጆች ያክሉ", "removeFromFavorites": "{{name}} ከተወዳጆች ያስወግዱ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "መካ" + "thinkingEffortMedium": "መካ", + "sessionModel": "የክፍለ-ጊዜ ሞዴል" }, "attachmentPreview": { "openFailedRetry": "ፋይሉን መክፈት አልተሳካም። እባክዎ እንደገና ይሞክሩ።", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ክሬዲት ያክሉ", - "description": "አጠቃቀሙን ለመቀጠል ክሬዲት ያክሉ።" + "description": "አጠቃቀሙን ለመቀጠል ክሬዲት ያክሉ።", + "billingPage": "የክፍያ መለያ ገጽ" }, "deviceSessions": { "couldNotLoad": "ክፍለ-ጊዜዎችን መጫን አልተቻለም", @@ -2710,7 +2795,10 @@ "restoreFailed": "ግዢዎችን መመለስ አልተሳካም። እንደገና ይሞክሩ።", "purchaseFailed": "ግዢውን ማጠናቀቅ አልተሳካም።", "purchaseStartFailed": "የApp Store ግዢን መጀመር አልተሳካም።", - "purchaseOwnedByAnotherAccount": "በዚህ Apple Account ላይ ያለው Kilo Pass የሌላ የKilo መለያ ነው።" + "purchaseOwnedByAnotherAccount": "በዚህ Apple Account ላይ ያለው Kilo Pass የሌላ የKilo መለያ ነው።", + "couldNotConnectToAppStore": "ከApp Store ጋር መገናኘት አልተቻለም። ግንኙነትዎን ያረጋግጡና እንደገና ይሞክሩ።", + "noMatchingProducts": "App Store የሚዛመዱ የKilo Pass ምርቶችን አልመለሰም።", + "purchaseMissingSignedTransaction": "የApp Store ግዢ የተፈረመ የግብይት JWS አላካተተም።" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "ማሻሻያ ይፈልጋል", "sorryTitle": "ይህን ስለሰማን አዝነናል!", "sorryMessage": "እባክዎ ምን ማሻሻል እንዳለበት ያሳውቁን። የመተግበሪያው ሃላፊ መሐንዲስ እያንዳንዱን ሪፖርት ያነባል!", - "emailUs": "ይፃፉልን" + "emailUs": "ይፃፉልን", + "emailSubject": "የሞባይል መተግበሪያ አስተያየት" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "ምንም የክሬዲት እንቅስቃሴ የለም", "expires": "የሚያበቃው {{date}}", "title": "የክሬዲት እንቅስቃሴ", - "transactionFallback": "የክሬዲት ግብይት" + "transactionFallback": "የክሬዲት ግብይት", + "category": { + "organization_custom": "የድርጅት ብጁ", + "parent_to_child_transfer_in": "ከወላጅ ወደ ልጅ ዝውውር ገቢ", + "parent_to_child_transfer_out": "ከወላጅ ወደ ልጅ ዝውውር ወጪ", + "oss-sponsorship": "የOSS ስፖንሰርሺፕ", + "oss-monthly-reset": "ወርሃዊ የOSS ዳግም ማስጀመር", + "team-topup-bonus-2025": "የቡድን ሙሌት ጉርሻ-2025", + "accounting_adjustment": "የሂሳብ ማስተካከያ", + "credits_expired": "ክሬዲቶች ጊዜያቸው አልፏል" + } }, "inviteMember": { "emailError": "ትክክለኛ የኢሜይል አድራሻ ያስገቡ", @@ -2840,12 +2939,17 @@ "emptyDescription": "ደረሰኞች በእያንዳንዱ የክፍያ ዑደት በራስ-ሰር ይመነጫሉ እና ድርጅትዎ ከተከፈለ በኋላ እዚህ ይታያሉ።", "emptyTitle": "ምንም ደረሰኞች የሉም", "invoiceFallback": "ደረሰኝ", - "statusOpen": "ክፍት", - "statusPaid": "የተከፈለ", - "statusVoid": "ልክ ያልሆነ", "title": "ደረሰኞች", "downloadFailed": "ደረሰኙን ማውረድ አልተቻለም። ግንኙነትዎን ያረጋግጡ እና እንደገና ይሞክሩ።", - "sharingUnavailable": "በዚህ መሣሪያ ላይ ማጋራት አይገኝም።" + "sharingUnavailable": "በዚህ መሣሪያ ላይ ማጋራት አይገኝም።", + "status": { + "paid": "የተከፈለ", + "open": "ክፍት", + "void": "ልክ ያልሆነ", + "draft": "ረቂቅ", + "uncollectible": "የማይሰበሰብ", + "unknown": "የማይታወቅ" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "የተሰበሰበ መረጃ", "free": "ነፃ", - "couldNotUpdateFavorites": "ተወዳጆችን ማዘመን አልተቻለም" + "couldNotUpdateFavorites": "ተወዳጆችን ማዘመን አልተቻለም", + "thinkingEffort": { + "none": "ምንም", + "minimal": "በጣም ትንሽ", + "low": "ዝቅተኛ", + "medium": "መካከለኛ", + "high": "ከፍተኛ", + "xhigh": "እጅግ ከፍተኛ", + "max": "ከፍተኛው" + } } } diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 72d1599867..2a53c6573c 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -386,7 +386,11 @@ "subscriptionCancels": "يُلغى الاشتراك في {{date}}", "trialDaysRemaining": "النسخة التجريبية: متبقٍ {{remaining}}", "trialEndingSoon": "تنتهي النسخة التجريبية قريبًا: {{remaining}}", - "lessThanOneDay": "أقل من يوم واحد" + "lessThanOneDay": "أقل من يوم واحد", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "ما الجديد", @@ -758,7 +762,8 @@ "strongArm": "ذراع قوية", "talisman": "طلسم" }, - "remoteSpawnFilesNotSupported": "لا يمكن لهذا المثيل استقبال الملفات." + "remoteSpawnFilesNotSupported": "لا يمكن لهذا المثيل استقبال الملفات.", + "instanceSwitcherTitle": "مثيل KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -956,7 +961,60 @@ "failed": "فشل", "cancelled": "تم الإلغاء", "interrupted": "تمت المقاطعة" - } + }, + "reviewStyle": { + "strict": "صارم", + "balanced": "متوازن", + "lenient": "متساهل", + "roast": "Roast" + }, + "focusArea": { + "security": "الأمان", + "performance": "الأداء", + "bugs": "الأخطاء", + "style": "الأسلوب", + "testing": "الاختبار", + "documentation": "التوثيق" + }, + "gateThreshold": { + "off": "إيقاف", + "all": "الكل", + "warning": "تحذير", + "critical": "حرجة" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "مراجع الكود يحتاج إلى انتباه", + "description": "تم تعطيل مراجع الكود لأن Kilo لا يمكنه الوصول إلى هذا المستودع مع وجود تثبيت نشط لتطبيق GitHub. حدّث تثبيت تطبيق GitHub، ثم أعد تفعيل مراجع الكود.", + "recoveryLabel": "تحديث تطبيق GitHub" + }, + "githubIpAllowList": { + "title": "مراجع الكود يحتاج إلى انتباه", + "description": "تم تعطيل مراجع الكود لأن هذه المؤسسة على GitHub تستخدم قائمة عناوين IP مسموح بها تحظر Kilo. تواصل مع hi@kilocode.ai للمساعدة، ثم أعد تفعيل مراجع الكود.", + "recoveryLabel": "الاتصال بالدعم" + }, + "gitlabProjectAccessRequired": { + "title": "مراجع الكود يحتاج إلى انتباه", + "description": "تم تعطيل مراجع الكود لأن Kilo لا يمكنه إنشاء رمز وصول للمشروع في GitLab لهذا المشروع. امنح وصول المشرف أو فعّل رموز وصول المشروع، ثم أعد تفعيل مراجع الكود.", + "recoveryLabel": "تحديث تكامل GitLab" + }, + "byokInvalidKey": { + "title": "مراجع الكود يحتاج إلى انتباه", + "description": "تم تعطيل مراجع الكود لأن مفتاح BYOK API المحدد غير صالح أو تم إلغاؤه أو يفتقر إلى الصلاحية. حدّث المفتاح أو اختر نموذجًا آخر، ثم أعد تفعيل مراجع الكود.", + "recoveryLabel": "تحديث إعدادات BYOK" + }, + "selectedModelUnavailable": { + "title": "مراجع الكود يحتاج إلى انتباه", + "description": "تم تعطيل مراجع الكود لأن النموذج المحدد غير متاح لجلسات وكيل السحابة. اختر نموذجًا متاحًا، ثم أعد تفعيل مراجع الكود.", + "recoveryLabel": "تحديث إعدادات مراجع الكود" + }, + "repeatedRepositoryCloneTimeout": { + "title": "مراجع الكود يحتاج إلى انتباه", + "description": "تم تعطيل مراجع الكود بعد ثلاث مهلات لاستنساخ المستودع اليوم. تواصل مع hi@kilocode.ai للمساعدة، ثم أعد تفعيل مراجع الكود.", + "recoveryLabel": "الاتصال بالدعم" + } + }, + "unknownError": "خطأ غير معروف" }, "securityAgent": { "filter": { @@ -1512,6 +1570,23 @@ "belowThreshold": "النتيجة أقل من حد الخطورة التلقائي. لا تزال المعالجة اليدوية قابلة للبدء عند اجتياز بوابات الأمان.", "beforeEnablement": "اكتمل التحليل قبل تمكين المعالجة التلقائية. لا تزال المعالجة اليدوية قابلة للبدء عند اجتياز بوابات الأمان.", "generic": "المعالجة غير متاحة لهذه النتيجة." + }, + "commandFailure": { + "ownerCapReached": "سعة التحليل ممتلئة. انتظر انتهاء تحليل نشط، ثم أعد المحاولة.", + "githubTokenUnavailable": "تفويض GitHub يحتاج إلى انتباه. أعد تفويض تطبيق GitHub، ثم أعد المحاولة.", + "githubAuthInvalid": "تفويض GitHub يحتاج إلى انتباه. أعد تفويض تطبيق GitHub، ثم أعد المحاولة.", + "findingUnavailable": "لم تعد النتيجة متاحة. حدّث النتائج وأعد المحاولة إذا ظلت مفتوحة.", + "repositoryUnavailable": "لم يعد المستودع متاحًا لتطبيق GitHub. حدّث وصول المستودع، ثم أعد المحاولة.", + "invalidDismissTarget": "لا يمكن رفض النتيجة لأن هدف Dependabot الخاص بها غير صالح.", + "commandStalled": "لم يكتمل الإجراء في قائمة الانتظار في الوقت المحدد. أعد محاولة الإجراء.", + "queueRetriesExhausted": "تعذّر إكمال الإجراء بعد عدة محاولات. أعد محاولة الإجراء.", + "queueAdmissionFailed": "تعذّر قبول الإجراء في قائمة الانتظار. أعد محاولة الإجراء.", + "generic": "فشل الإجراء في قائمة الانتظار. أعد محاولة الإجراء." + }, + "analysisMode": { + "auto": "تلقائي", + "shallow": "سطحي", + "deep": "عميق" } }, "agents": { @@ -1999,7 +2074,8 @@ "addToFavorites": "إضافة {{name}} إلى المفضلة", "removeFromFavorites": "إزالة {{name}} من المفضلة", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "متوسط" + "thinkingEffortMedium": "متوسط", + "sessionModel": "نموذج الجلسة" }, "attachmentPreview": { "openFailedRetry": "تعذّر فتح الملف. يرجى المحاولة مرة أخرى.", @@ -2135,7 +2211,8 @@ }, "addCredits": { "cta": "إضافة أرصدة", - "description": "أضف أرصدة للحفاظ على استمرار الاستخدام." + "description": "أضف أرصدة للحفاظ على استمرار الاستخدام.", + "billingPage": "صفحة الفوترة" }, "deviceSessions": { "couldNotLoad": "تعذّر تحميل الجلسات", @@ -2323,7 +2400,10 @@ "restoreFailed": "فشل استعادة المشتريات. حاول مرة أخرى.", "purchaseFailed": "فشل إكمال عملية الشراء.", "purchaseStartFailed": "فشل بدء عملية شراء من App Store.", - "purchaseOwnedByAnotherAccount": "ينتمي Kilo Pass على حساب Apple هذا إلى حساب Kilo مختلف." + "purchaseOwnedByAnotherAccount": "ينتمي Kilo Pass على حساب Apple هذا إلى حساب Kilo مختلف.", + "couldNotConnectToAppStore": "تعذّر الاتصال بـ App Store. تحقق من اتصالك وحاول مرة أخرى.", + "noMatchingProducts": "لم يُرجع App Store منتجات Kilo Pass مطابقة.", + "purchaseMissingSignedTransaction": "لم تتضمن عملية الشراء من App Store معاملة موقعة بصيغة JWS." }, "consent": { "kilo": "Kilo", @@ -2859,7 +2939,10 @@ "diff": { "selectedTapToChange": "تم تحديد {{label}}، اضغط لتغيير التحديد", "truncationBanner": "عرض أول {{limit}} من أصل {{total}} ملفًا تم تغييرها — حد GitHub API", - "tapToComment": "{{label}}، اضغط للتعليق" + "tapToComment": "{{label}}، اضغط للتعليق", + "statusAdded": "تمت الإضافة", + "statusContext": "السياق", + "statusDeleted": "تم الحذف" }, "linkPasteClipboardEmpty": "الحافظة فارغة", "linkPasteNotAPullRequest": "ليس رابط طلب سحب على GitHub", @@ -2873,6 +2956,11 @@ "reviewNotSubmitted": "لا يمكن إرسال هذه المراجعة كما هي. ربما تغيّر PR، أو لا يمكنك مراجعة طلب السحب الخاص بك.", "couldNotPostComment": "تعذّر نشر التعليق.", "couldNotSubmitReview": "تعذّر إرسال المراجعة. تحقق من اتصالك وحاول مرة أخرى." + }, + "operation": { + "couldNotReply": "تعذّر الرد.", + "couldNotCompleteAction": "تعذّر إكمال هذا الإجراء.", + "mergeResultDefaultError": "لم يكمل GitHub الدمج." } }, "organization": { @@ -2890,7 +2978,17 @@ "emptyTitle": "لا يوجد نشاط رصيد", "expires": "تنتهي في {{date}}", "title": "نشاط الرصيد", - "transactionFallback": "معاملة رصيد" + "transactionFallback": "معاملة رصيد", + "category": { + "organization_custom": "مخصص للمؤسسة", + "parent_to_child_transfer_in": "تحويل من الأصل إلى الفرع (داخل)", + "parent_to_child_transfer_out": "تحويل من الأصل إلى الفرع (خارج)", + "oss-sponsorship": "رعاية OSS", + "oss-monthly-reset": "إعادة تعيين OSS الشهرية", + "team-topup-bonus-2025": "مكافأة شحن الفريق 2025", + "accounting_adjustment": "تعديل محاسبي", + "credits_expired": "انتهت صلاحية الأرصدة" + } }, "hub": { "balance": "الرصيد", @@ -2917,11 +3015,16 @@ "emptyTitle": "لا توجد فواتير", "invoiceFallback": "فاتورة", "title": "الفواتير", - "statusPaid": "مدفوع", - "statusOpen": "مفتوح", - "statusVoid": "ملغى", "downloadFailed": "تعذّر تنزيل الفاتورة. تحقق من اتصالك وحاول مرة أخرى.", - "sharingUnavailable": "المشاركة غير متاحة على هذا الجهاز." + "sharingUnavailable": "المشاركة غير متاحة على هذا الجهاز.", + "status": { + "paid": "مدفوع", + "open": "مفتوح", + "void": "ملغى", + "draft": "مسودة", + "uncollectible": "غير قابل للتحصيل", + "unknown": "غير معروف" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3025,7 +3128,8 @@ "promptTitle": "ما رأيك في تطبيق Kilo؟", "rateKilo": "قيّم Kilo", "sorryMessage": "يرجى إخبارنا بما يحتاج إلى تحسين. المهندس المسؤول عن التطبيق يقرأ كل تقرير!", - "sorryTitle": "نأسف لسماع ذلك!" + "sorryTitle": "نأسف لسماع ذلك!", + "emailSubject": "ملاحظات حول تطبيق الجوال" }, "authErrors": { "emailAlreadyUsed": "يوجد حساب بهذا البريد الإلكتروني مسجل بطريقة تسجيل دخول مختلفة. جرّب طريقة أخرى أو استخدم \"$t(login.moreSignInOptions)\".", @@ -3055,6 +3159,15 @@ "models": { "dataCollected": "البيانات التي تم جمعها", "free": "مجاني", - "couldNotUpdateFavorites": "تعذّر تحديث المفضلة" + "couldNotUpdateFavorites": "تعذّر تحديث المفضلة", + "thinkingEffort": { + "none": "لا شيء", + "minimal": "أدنى", + "low": "منخفض", + "medium": "متوسط", + "high": "عالٍ", + "xhigh": "عالٍ جدًا", + "max": "الحد الأقصى" + } } } diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index a0d90d8ca2..9139b6aeb4 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} seçildi, seçimi dəyişmək üçün toxunun", "truncationBanner": "Dəyişdirilmiş {{total}} fayldan ilk {{limit}} fayl göstərilir — GitHub API limiti", - "tapToComment": "{{label}}, şərh üçün toxunun" + "tapToComment": "{{label}}, şərh üçün toxunun", + "statusAdded": "Əlavə edildi", + "statusContext": "Kontekst", + "statusDeleted": "Silindi" }, "linkPasteClipboardEmpty": "Panoda heç nə yoxdur", "linkPasteNotAPullRequest": "Bu, GitHub pull request linki deyil", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Bu icmal olduğu kimi təqdim edilə bilməz. PR dəyişmiş ola bilər və ya öz pull request'inizi icmal edə bilməzsiniz.", "couldNotPostComment": "Şərh yerləşdirilə bilmədi.", "couldNotSubmitReview": "İcmal təqdim edilə bilmədi. Bağlantınızı yoxlayın və yenidən cəhd edin." + }, + "operation": { + "couldNotReply": "Cavab vermək mümkün olmadı.", + "couldNotCompleteAction": "Bu əməliyyatı tamamlamaq mümkün olmadı.", + "mergeResultDefaultError": "GitHub birləşməni tamamlamadı." } }, "notifications": { @@ -821,7 +829,11 @@ "subscriptionCancels": "Abunəlik {{date}} tarixində ləğv olunur", "trialDaysRemaining": "Sınaq: {{remaining}} qalıb", "trialEndingSoon": "Sınaq tezliklə bitir: {{remaining}}", - "lessThanOneDay": "1 gündən az" + "lessThanOneDay": "1 gündən az", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Nə Yeni Var", @@ -1189,7 +1201,8 @@ "strongArm": "Güclü qol", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Bu nümunə fayl qəbul edə bilmir." + "remoteSpawnFilesNotSupported": "Bu nümunə fayl qəbul edə bilmir.", + "instanceSwitcherTitle": "KiloClaw nümunəsi" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Uğursuz", "cancelled": "Ləğv edildi", "interrupted": "Kəsildi" - } + }, + "reviewStyle": { + "strict": "Ciddi", + "balanced": "Balanslı", + "lenient": "Yumşaq", + "roast": "Roast" + }, + "focusArea": { + "security": "Təhlükəsizlik", + "performance": "Performans", + "bugs": "Səhvlər", + "style": "Stil", + "testing": "Testlər", + "documentation": "Sənədləşmə" + }, + "gateThreshold": { + "off": "Söndürülüb", + "all": "Hamısı", + "warning": "Xəbərdarlıq", + "critical": "Kritik" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer diqqət tələb edir", + "description": "Code Reviewer Kilo aktiv GitHub App quraşdırması ilə bu repozitoriyaya daxil ola bilmədiyi üçün söndürüldü. GitHub App quraşdırmasını yeniləyin, sonra Code Reviewer-ı yenidən aktiv edin.", + "recoveryLabel": "GitHub App-i yenilə" + }, + "githubIpAllowList": { + "title": "Code Reviewer diqqət tələb edir", + "description": "Code Reviewer bu GitHub təşkilatı Kilo-nu bloklayan IP icazə siyahısından istifadə etdiyi üçün söndürüldü. Kömək üçün hi@kilocode.ai ilə əlaqə saxlayın, sonra Code Reviewer-ı yenidən aktiv edin.", + "recoveryLabel": "Dəstəklə əlaqə saxla" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer diqqət tələb edir", + "description": "Code Reviewer Kilo bu layihə üçün GitLab Project Access Token yarada bilmədiyi üçün söndürüldü. Maintainer girişi verin və ya Project Access Token-ları aktiv edin, sonra Code Reviewer-ı yenidən aktiv edin.", + "recoveryLabel": "GitLab inteqrasiyasını yenilə" + }, + "byokInvalidKey": { + "title": "Code Reviewer diqqət tələb edir", + "description": "Code Reviewer seçilmiş BYOK API açarı etibarsız, ləğv edilmiş və ya icazəsiz olduğu üçün söndürüldü. Açarı yeniləyin və ya başqa model seçin, sonra Code Reviewer-ı yenidən aktiv edin.", + "recoveryLabel": "BYOK parametrlərini yenilə" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer diqqət tələb edir", + "description": "Code Reviewer seçilmiş model cloud agent sessiyaları üçün mövcud olmadığı üçün söndürüldü. Mövcud model seçin, sonra Code Reviewer-ı yenidən aktiv edin.", + "recoveryLabel": "Code Reviewer parametrlərini yenilə" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer diqqət tələb edir", + "description": "Code Reviewer bu gün üç repozitoriya klonlanması vaxt aşımından sonra söndürüldü. Kömək üçün hi@kilocode.ai ilə əlaqə saxlayın, sonra Code Reviewer-ı yenidən aktiv edin.", + "recoveryLabel": "Dəstəklə əlaqə saxla" + } + }, + "unknownError": "Naməlum xəta" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Tapıntı avtomatik şiddət həddindən aşağıdır. Təhlükəsizlik qapıları keçəndə əl ilə düzəltmə hələ də başlaya bilər.", "beforeEnablement": "Avtomatik düzəltmə aktivləşdirilməzdən əvvəl analiz tamamlanıb. Təhlükəsizlik qapıları keçəndə əl ilə düzəltmə hələ də başlaya bilər.", "generic": "Bu tapıntı üçün düzəltmə mövcud deyil." + }, + "commandFailure": { + "ownerCapReached": "Analiz tutumu doludur. Aktiv analizin bitməsini gözləyin, sonra yenidən cəhd edin.", + "githubTokenUnavailable": "GitHub icazəsi diqqət tələb edir. GitHub App-i yenidən icazələndirin, sonra yenidən cəhd edin.", + "githubAuthInvalid": "GitHub icazəsi diqqət tələb edir. GitHub App-i yenidən icazələndirin, sonra yenidən cəhd edin.", + "findingUnavailable": "Tapıntı artıq mövcud deyil. Tapıntıları yeniləyin və açıq qalırsa yenidən cəhd edin.", + "repositoryUnavailable": "Repozitoriya artıq GitHub App üçün mövcud deyil. Repozitoriya girişini yeniləyin, sonra yenidən cəhd edin.", + "invalidDismissTarget": "Tapıntı Dependabot hədəfi etibarsız olduğu üçün silinə bilməz.", + "commandStalled": "Növbəyə alınmış əməliyyat vaxtında bitmədi. Əməliyyatı yenidən cəhd edin.", + "queueRetriesExhausted": "Əməliyyat bir neçə cəhddən sonra tamamlana bilmədi. Əməliyyatı yenidən cəhd edin.", + "queueAdmissionFailed": "Növbəyə alınmış əməliyyat qəbul edilə bilmədi. Əməliyyatı yenidən cəhd edin.", + "generic": "Növbəyə alınmış əməliyyat uğursuz oldu. Əməliyyatı yenidən cəhd edin." + }, + "analysisMode": { + "auto": "Avtomatik", + "shallow": "Dayaz", + "deep": "Dərin" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}}-i sevimlilərə əlavə et", "removeFromFavorites": "{{name}}-i sevimlilərdən sil", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Orta" + "thinkingEffortMedium": "Orta", + "sessionModel": "Sessiya modeli" }, "attachmentPreview": { "openFailedRetry": "Fayl açıla bilmədi. Zəhmət olmasa yenidən cəhd edin.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Kredit əlavə et", - "description": "İstifadənin davam etməsi üçün kredit əlavə edin." + "description": "İstifadənin davam etməsi üçün kredit əlavə edin.", + "billingPage": "faktura səhifəsi" }, "deviceSessions": { "couldNotLoad": "Sessiyalar yüklənə bilmədi", @@ -2710,7 +2795,10 @@ "restoreFailed": "Alışlar bərpa edilə bilmədi. Yenidən cəhd edin.", "purchaseFailed": "Alış tamamlana bilmədi.", "purchaseStartFailed": "App Store alışı başladıla bilmədi.", - "purchaseOwnedByAnotherAccount": "Bu Apple Hesabındakı Kilo Pass başqa Kilo hesabına aiddir." + "purchaseOwnedByAnotherAccount": "Bu Apple Hesabındakı Kilo Pass başqa Kilo hesabına aiddir.", + "couldNotConnectToAppStore": "App Store-a qoşulmaq mümkün olmadı. Bağlantınızı yoxlayın və yenidən cəhd edin.", + "noMatchingProducts": "App Store uyğun Kilo Pass məhsulu qaytarmadı.", + "purchaseMissingSignedTransaction": "App Store alışı imzalanmış əməliyyat JWS-i daxil etmədi." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Təkmilləşdirmə lazımdır", "sorryTitle": "Bunu eşitdiyimizə təəssüflənirik!", "sorryMessage": "Zəhmət olmasa nəyin yaxşılaşdırılması lazım olduğunu bizə bildirin. Tətbiqə cavabdeh olan mühəndis hər hesabatı oxuyur!", - "emailUs": "Bizə e-poçt göndərin" + "emailUs": "Bizə e-poçt göndərin", + "emailSubject": "mobil tətbiq rəyi" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Kredit fəaliyyəti yoxdur", "expires": "{{date}} tarixində başa çatır", "title": "Kredit fəaliyyəti", - "transactionFallback": "Kredit əməliyyatı" + "transactionFallback": "Kredit əməliyyatı", + "category": { + "organization_custom": "Təşkilat xüsusi", + "parent_to_child_transfer_in": "Valideyndən uşaqa köçürmə (daxil)", + "parent_to_child_transfer_out": "Valideyndən uşaqa köçürmə (xaric)", + "oss-sponsorship": "OSS sponsorluğu", + "oss-monthly-reset": "OSS aylıq sıfırlama", + "team-topup-bonus-2025": "Komanda doldurma bonusu-2025", + "accounting_adjustment": "Mühasibat düzəlişi", + "credits_expired": "Kreditlərin müddəti bitib" + } }, "inviteMember": { "emailError": "Etibarlı e-poçt ünvanı daxil edin", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakturalar hər ödəniş dövründə avtomatik yaradılır və təşkilatınız ödənildikdən sonra burada görünəcək.", "emptyTitle": "Faktura yoxdur", "invoiceFallback": "Faktura", - "statusOpen": "Açıq", - "statusPaid": "Ödənilib", - "statusVoid": "Etibarsız", "title": "Fakturalar", "downloadFailed": "Faktura endirilə bilmədi. Bağlantınızı yoxlayın və yenidən cəhd edin.", - "sharingUnavailable": "Paylaşım bu cihazda mövcud deyil." + "sharingUnavailable": "Paylaşım bu cihazda mövcud deyil.", + "status": { + "paid": "Ödənilib", + "open": "Açıq", + "void": "Etibarsız", + "draft": "Qaralama", + "uncollectible": "Yığıla bilməyən", + "unknown": "Naməlum" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Toplanan məlumatlar", "free": "Pulsuz", - "couldNotUpdateFavorites": "Sevimlilər yenilənə bilmədi" + "couldNotUpdateFavorites": "Sevimlilər yenilənə bilmədi", + "thinkingEffort": { + "none": "Heç biri", + "minimal": "Minimal", + "low": "Aşağı", + "medium": "Orta", + "high": "Yüksək", + "xhigh": "Çox yüksək", + "max": "Maksimum" + } } } diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index 16cb1166f0..ae452045c3 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -587,7 +587,10 @@ "diff": { "selectedTapToChange": "Выбрана {{label}}, дакраніцеся, каб змяніць выбар", "truncationBanner": "Паказаны першыя {{limit}} з {{total}} змененых файлаў — ліміт GitHub API", - "tapToComment": "{{label}}, дакраніцеся, каб пакінуць каментар" + "tapToComment": "{{label}}, дакраніцеся, каб пакінуць каментар", + "statusAdded": "Дададзены", + "statusContext": "Кантэкст", + "statusDeleted": "Выдалены" }, "linkPasteClipboardEmpty": "Буфер абмену пусты", "linkPasteNotAPullRequest": "Гэта не спасылка на pull request GitHub", @@ -601,6 +604,11 @@ "reviewNotSubmitted": "Гэтую рэцэнзію нельга адправіць як ёсць. Магчыма, PR змяніўся, або вы не можаце рэцэнзаваць свой уласны pull request.", "couldNotPostComment": "Не атрымалася апублікаваць каментар.", "couldNotSubmitReview": "Не атрымалася адправіць рэцэнзію. Праверце падключэнне і паспрабуйце яшчэ раз." + }, + "operation": { + "couldNotReply": "Не атрымалася адказаць.", + "couldNotCompleteAction": "Не атрымалася завяршыць гэтае дзеянне.", + "mergeResultDefaultError": "GitHub не завяршыў зліццё." } }, "notifications": { @@ -837,7 +845,11 @@ "subscriptionCancels": "Падпіска адмяняецца {{date}}", "trialDaysRemaining": "Пробная версія: засталося {{remaining}}", "trialEndingSoon": "Пробная версія сканчаецца: {{remaining}}", - "lessThanOneDay": "Менш за 1 дзень" + "lessThanOneDay": "Менш за 1 дзень", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Што новага", @@ -1207,7 +1219,8 @@ "strongArm": "Моцная рука", "talisman": "Талісман" }, - "remoteSpawnFilesNotSupported": "Гэты экзэмпляр не можа атрымліваць файлы." + "remoteSpawnFilesNotSupported": "Гэты экзэмпляр не можа атрымліваць файлы.", + "instanceSwitcherTitle": "Экзэмпляр KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1405,7 +1418,60 @@ "failed": "Не атрымалася", "cancelled": "Адменена", "interrupted": "Перапынена" - } + }, + "reviewStyle": { + "strict": "Строгі", + "balanced": "Збалансаваны", + "lenient": "Паблажлівы", + "roast": "Roast" + }, + "focusArea": { + "security": "Бяспека", + "performance": "Прадукцыйнасць", + "bugs": "Памылкі", + "style": "Стыль", + "testing": "Тэставанне", + "documentation": "Дакументацыя" + }, + "gateThreshold": { + "off": "Выключана", + "all": "Усё", + "warning": "Папярэджанне", + "critical": "Крытычна" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer патрабуе ўвагі", + "description": "Code Reviewer быў адключаны, таму што Kilo не можа атрымаць доступ да гэтага рэпазіторыя з актыўнай устаноўкай GitHub App. Абнавіце ўстаноўку GitHub App, а потым зноў уключыце Code Reviewer.", + "recoveryLabel": "Абнавіць GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer патрабуе ўвагі", + "description": "Code Reviewer быў адключаны, таму што гэтая арганізацыя GitHub выкарыстоўвае спіс дазволеных IP-адрасоў, які блакуе Kilo. Звярніцеся па дапамогу на hi@kilocode.ai, а потым зноў уключыце Code Reviewer.", + "recoveryLabel": "Звярнуцца ў падтрымку" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer патрабуе ўвагі", + "description": "Code Reviewer быў адключаны, таму што Kilo не можа стварыць GitLab Project Access Token для гэтага праекта. Дайце доступ Maintainer або ўключыце Project Access Tokens, а потым зноў уключыце Code Reviewer.", + "recoveryLabel": "Абнавіць інтэграцыю з GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer патрабуе ўвагі", + "description": "Code Reviewer быў адключаны, таму што выбраны BYOK API ключ несапраўдны, адкліканы або не мае дазволу. Абнавіце ключ або абярыце іншую мадэль, а потым зноў уключыце Code Reviewer.", + "recoveryLabel": "Абнавіць налады BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer патрабуе ўвагі", + "description": "Code Reviewer быў адключаны, таму што выбраная мадэль недаступная для сеансаў хмарнага агента. Абярыце даступную мадэль, а потым зноў уключыце Code Reviewer.", + "recoveryLabel": "Абнавіць налады Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer патрабуе ўвагі", + "description": "Code Reviewer быў адключаны пасля трох тайм-аўтаў кланавання рэпазіторыяў сёння. Звярніцеся па дапамогу на hi@kilocode.ai, а потым зноў уключыце Code Reviewer.", + "recoveryLabel": "Звярнуцца ў падтрымку" + } + }, + "unknownError": "Невядомая памылка" }, "securityAgent": { "filter": { @@ -1953,6 +2019,23 @@ "belowThreshold": "Знаходка ніжэй аўтаматычнага парога сур'ёзнасці. Ручнае выпраўленне ўсё яшчэ можна пачаць, калі праверкі бяспекі пройдуць.", "beforeEnablement": "Аналіз завершаны да ўключэння аўтавыпраўлення. Ручнае выпраўленне ўсё яшчэ можна пачаць, калі праверкі бяспекі пройдуць.", "generic": "Выпраўленне недаступна для гэтай знаходкі." + }, + "commandFailure": { + "ownerCapReached": "Ёмістасць аналізу занятая. Дачакайцеся завяршэння актыўнага аналізу, а потым паўтарыце спробу.", + "githubTokenUnavailable": "Аўтарызацыя GitHub патрабуе ўвагі. Паўторна аўтарызуйце GitHub App, а потым паўтарыце спробу.", + "githubAuthInvalid": "Аўтарызацыя GitHub патрабуе ўвагі. Паўторна аўтарызуйце GitHub App, а потым паўтарыце спробу.", + "findingUnavailable": "Знаходка больш недаступная. Абнавіце знаходкі і паўтарыце спробу, калі яна застаецца адкрытай.", + "repositoryUnavailable": "Рэпазіторый больш недаступны для GitHub App. Абнавіце доступ да рэпазіторыя, а потым паўтарыце спробу.", + "invalidDismissTarget": "Знаходку немагчыма адхіліць, таму што яе мэта Dependabot несапраўдная.", + "commandStalled": "Пастаўленае ў чаргу дзеянне не скончылася своечасова. Паўтарыце дзеянне.", + "queueRetriesExhausted": "Не атрымалася завяршыць дзеянне пасля некалькіх спроб. Паўтарыце дзеянне.", + "queueAdmissionFailed": "Пастаўленае ў чаргу дзеянне не ўдалося прыняць. Паўтарыце дзеянне.", + "generic": "Пастаўленае ў чаргу дзеянне не атрымалася. Паўтарыце дзеянне." + }, + "analysisMode": { + "auto": "Аўта", + "shallow": "Павярхоўны", + "deep": "Глыбокі" } }, "agents": { @@ -2428,7 +2511,8 @@ "addToFavorites": "Дадаць {{name}} у абранае", "removeFromFavorites": "Прыбраць {{name}} з абранага", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Мадэль сеансу" }, "attachmentPreview": { "openFailedRetry": "Не ўдалося адкрыць файл. Паспрабуйце яшчэ раз.", @@ -2562,7 +2646,8 @@ }, "addCredits": { "cta": "Дадаць крэдыты", - "description": "Дадайце крэдыты, каб карыстанне працягвалася." + "description": "Дадайце крэдыты, каб карыстанне працягвалася.", + "billingPage": "старонка аплаты" }, "deviceSessions": { "couldNotLoad": "Не ўдалося загрузіць сеансы", @@ -2750,7 +2835,10 @@ "restoreFailed": "Не атрымалася аднавіць пакупкі. Паспрабуйце яшчэ раз.", "purchaseFailed": "Не атрымалася завяршыць пакупку.", "purchaseStartFailed": "Не атрымалася пачаць пакупку ў App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass на гэтым Apple Account належыць іншаму ўліковаму запісу Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass на гэтым Apple Account належыць іншаму ўліковаму запісу Kilo.", + "couldNotConnectToAppStore": "Не атрымалася падключыцца да App Store. Праверце падключэнне і паспрабуйце яшчэ раз.", + "noMatchingProducts": "App Store не вярнуў прадукты Kilo Pass, якія адпавядаюць запыту.", + "purchaseMissingSignedTransaction": "Пакупка ў App Store не ўключала падпісаную транзакцыю JWS." }, "consent": { "kilo": "Kilo", @@ -2846,7 +2934,8 @@ "needsWork": "Трэба папрацаваць", "sorryTitle": "Шкада гэта чуць!", "sorryMessage": "Калі ласка, паведаміце нам, што трэба палепшыць. Інжынер, які адказвае за дадатак, чытае кожную справаздачу!", - "emailUs": "Напішыце нам" + "emailUs": "Напішыце нам", + "emailSubject": "водгук аб мабільным дадатку" }, "organization": { "boundary": { @@ -2863,7 +2952,17 @@ "emptyTitle": "Няма актыўнасці па крэдытах", "expires": "Сканчваецца {{date}}", "title": "Актыўнасць па крэдытах", - "transactionFallback": "Крэдытная транзакцыя" + "transactionFallback": "Крэдытная транзакцыя", + "category": { + "organization_custom": "Уласная арганізацыя", + "parent_to_child_transfer_in": "Пераказ ад бацькоўскай да даччынай арганізацыі", + "parent_to_child_transfer_out": "Пераказ ад даччынай да бацькоўскай арганізацыі", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Бухгалтарская карэкціроўка", + "credits_expired": "Крэдыты скончыліся" + } }, "inviteMember": { "emailError": "Увядзіце сапраўдны адрас электроннай пошты", @@ -2880,12 +2979,17 @@ "emptyDescription": "Рахункі ствараюцца аўтаматычна кожны разліковы перыяд і з'явяцца тут пасля выстаўлення рахунку вашай арганізацыі.", "emptyTitle": "Няма рахункаў", "invoiceFallback": "Рахунак", - "statusOpen": "Адкрыты", - "statusPaid": "Аплачаны", - "statusVoid": "Несапраўдны", "title": "Рахункі", "downloadFailed": "Не атрымалася спампаваць рахунак. Праверце падключэнне і паспрабуйце яшчэ раз.", - "sharingUnavailable": "Абмен недаступны на гэтай прыладзе." + "sharingUnavailable": "Абмен недаступны на гэтай прыладзе.", + "status": { + "paid": "Аплачаны", + "open": "Адкрыты", + "void": "Несапраўдны", + "draft": "Чарнавік", + "uncollectible": "Неспагнаны", + "unknown": "Невядомы" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Сабраныя даныя", "free": "Бясплатна", - "couldNotUpdateFavorites": "Не атрымалася абнавіць выбранае" + "couldNotUpdateFavorites": "Не атрымалася абнавіць выбранае", + "thinkingEffort": { + "none": "Няма", + "minimal": "Мінімальнае", + "low": "Нізкае", + "medium": "Сярэдняе", + "high": "Высокае", + "xhigh": "Вельмі высокае", + "max": "Максімум" + } } } diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index 6f34a605a4..e05bce7c34 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Избрано {{label}}, докосни, за да промениш избора", "truncationBanner": "Показват се първите {{limit}} от {{total}} променени файла — лимит на GitHub API", - "tapToComment": "{{label}}, докосни, за да коментираш" + "tapToComment": "{{label}}, докосни, за да коментираш", + "statusAdded": "Добавен", + "statusContext": "Контекст", + "statusDeleted": "Изтрит" }, "linkPasteClipboardEmpty": "Клипбордът е празен", "linkPasteNotAPullRequest": "Не е връзка към pull request в GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Този преглед не може да бъде изпратен както е. PR може да се е променил или не можете да преглеждате собствения си pull request.", "couldNotPostComment": "Не можахме да публикуваме коментара.", "couldNotSubmitReview": "Не можахме да изпратим прегледа. Проверете връзката си и опитайте отново." + }, + "operation": { + "couldNotReply": "Не можахме да отговорим.", + "couldNotCompleteAction": "Не можахме да завършим това действие.", + "mergeResultDefaultError": "GitHub не завърши обединяването." } }, "notifications": { @@ -821,7 +829,11 @@ "subscriptionCancels": "Абонаментът се анулира на {{date}}", "trialDaysRemaining": "Пробен период: остават {{remaining}}", "trialEndingSoon": "Пробният период приключва скоро: {{remaining}}", - "lessThanOneDay": "По-малко от 1 ден" + "lessThanOneDay": "По-малко от 1 ден", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Какво ново", @@ -1189,7 +1201,8 @@ "strongArm": "Силна ръка", "talisman": "Талисман" }, - "remoteSpawnFilesNotSupported": "Тази инстанция не може да получава файлове." + "remoteSpawnFilesNotSupported": "Тази инстанция не може да получава файлове.", + "instanceSwitcherTitle": "Инстанция на KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Неуспешно", "cancelled": "Отменено", "interrupted": "Прекъснато" - } + }, + "reviewStyle": { + "strict": "Строг", + "balanced": "Балансиран", + "lenient": "Снизходителен", + "roast": "Roast" + }, + "focusArea": { + "security": "Сигурност", + "performance": "Производителност", + "bugs": "Грешки", + "style": "Стил", + "testing": "Тестване", + "documentation": "Документация" + }, + "gateThreshold": { + "off": "Изключено", + "all": "Всички", + "warning": "Предупреждение", + "critical": "Критично" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer се нуждае от внимание", + "description": "Code Reviewer беше деактивиран, защото Kilo не може да получи достъп до това хранилище с активна инсталация на GitHub App. Актуализирайте инсталацията на GitHub App и след това активирайте отново Code Reviewer.", + "recoveryLabel": "Актуализирай GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer се нуждае от внимание", + "description": "Code Reviewer беше деактивиран, защото тази GitHub организация използва списък с разрешени IP адреси, който блокира Kilo. Свържете се с hi@kilocode.ai за помощ и след това активирайте отново Code Reviewer.", + "recoveryLabel": "Свържете се с поддръжката" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer се нуждае от внимание", + "description": "Code Reviewer беше деактивиран, защото Kilo не може да създаде GitLab Project Access Token за този проект. Предоставете достъп на Maintainer или активирайте Project Access Tokens и след това активирайте отново Code Reviewer.", + "recoveryLabel": "Актуализирай интеграцията с GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer се нуждае от внимание", + "description": "Code Reviewer беше деактивиран, защото избраният BYOK API ключ е невалиден, отменен или няма разрешение. Актуализирайте ключа или изберете друг модел и след това активирайте отново Code Reviewer.", + "recoveryLabel": "Актуализирай настройките на BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer се нуждае от внимание", + "description": "Code Reviewer беше деактивиран, защото избраният модел не е наличен за сесии на облачен агент. Изберете наличен модел и след това активирайте отново Code Reviewer.", + "recoveryLabel": "Актуализирай настройките на Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer се нуждае от внимание", + "description": "Code Reviewer беше деактивиран след три таймаута при клониране на хранилище днес. Свържете се с hi@kilocode.ai за помощ и след това активирайте отново Code Reviewer.", + "recoveryLabel": "Свържете се с поддръжката" + } + }, + "unknownError": "Неизвестна грешка" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Откритието е под автоматичния праг на сериозност. Ръчното отстраняване все още може да започне, когато проверките за безопасност преминат.", "beforeEnablement": "Анализът е завършен, преди да е активирано автоматичното отстраняване. Ръчното отстраняване все още може да започне, когато проверките за безопасност преминат.", "generic": "Отстраняването е недостъпно за това откритие." + }, + "commandFailure": { + "ownerCapReached": "Капацитетът за анализ е запълнен. Изчакай активен анализ да приключи и след това опитай отново.", + "githubTokenUnavailable": "Оторизацията на GitHub изисква внимание. Ре-оторизирай GitHub App и след това опитай отново.", + "githubAuthInvalid": "Оторизацията на GitHub изисква внимание. Ре-оторизирай GitHub App и след това опитай отново.", + "findingUnavailable": "Констатацията вече не е налична. Опресни констатациите и опитай отново, ако все още е отворена.", + "repositoryUnavailable": "Хранилището вече не е налично за GitHub App. Опресни достъпа до хранилището и след това опитай отново.", + "invalidDismissTarget": "Констатацията не може да бъде отхвърлена, защото нейната цел в Dependabot е невалидна.", + "commandStalled": "Действие в опашка не приключи навреме. Опитай отново действието.", + "queueRetriesExhausted": "Действието не можа да бъде завършено след няколко опита. Опитай отново действието.", + "queueAdmissionFailed": "Действие в опашка не можа да бъде прието. Опитай отново действието.", + "generic": "Действие в опашка не успя. Опитай отново действието." + }, + "analysisMode": { + "auto": "Автоматично", + "shallow": "Повърхностно", + "deep": "Дълбоко" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Добавете {{name}} към любими", "removeFromFavorites": "Премахнете {{name}} от любими", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Сред" + "thinkingEffortMedium": "Сред", + "sessionModel": "Модел на сесията" }, "attachmentPreview": { "openFailedRetry": "Неуспешно отваряне на файла. Моля, опитайте отново.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Добавете кредити", - "description": "Добавете кредити, за да продължите използването." + "description": "Добавете кредити, за да продължите използването.", + "billingPage": "страница за фактуриране" }, "deviceSessions": { "couldNotLoad": "Не можаха да се заредят сесиите", @@ -2710,7 +2795,10 @@ "restoreFailed": "Не можахме да възстановим покупките. Опитайте отново.", "purchaseFailed": "Не можахме да завършим покупката.", "purchaseStartFailed": "Не можахме да започнем покупката в App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass на този Apple акаунт принадлежи на друг Kilo акаунт." + "purchaseOwnedByAnotherAccount": "Kilo Pass на този Apple акаунт принадлежи на друг Kilo акаунт.", + "couldNotConnectToAppStore": "Не можахме да се свържем с App Store. Проверете връзката си и опитайте отново.", + "noMatchingProducts": "App Store не върна съвпадащи продукти на Kilo Pass.", + "purchaseMissingSignedTransaction": "Покупката в App Store не включва подписана транзакция JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Има нужда от подобрение", "sorryTitle": "Съжаляваме, че чуваме това!", "sorryMessage": "Моля, уведомете ни какво трябва да се подобри. Инженерът, отговарящ за приложението, чете всеки един доклад!", - "emailUs": "Пишете ни" + "emailUs": "Пишете ни", + "emailSubject": "обратна връзка за мобилното приложение" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Няма кредитна активност", "expires": "Изтича {{date}}", "title": "Кредитна активност", - "transactionFallback": "Кредитна транзакция" + "transactionFallback": "Кредитна транзакция", + "category": { + "organization_custom": "Персонализирано за организация", + "parent_to_child_transfer_in": "Прехвърляне от родителска към дъщерна организация", + "parent_to_child_transfer_out": "Прехвърляне от дъщерна към родителска организация", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Счетоводна корекция", + "credits_expired": "Изтекли кредити" + } }, "inviteMember": { "emailError": "Въведете валиден имейл адрес", @@ -2840,12 +2939,17 @@ "emptyDescription": "Фактурите се генерират автоматично всеки цикъл на таксуване и ще се появят тук, след като вашата организация бъде таксувана.", "emptyTitle": "Няма фактури", "invoiceFallback": "Фактура", - "statusOpen": "Отворена", - "statusPaid": "Платена", - "statusVoid": "Невалидна", "title": "Фактури", "downloadFailed": "Не можахме да изтеглим фактурата. Проверете връзката си и опитайте отново.", - "sharingUnavailable": "Споделянето не е налично на това устройство." + "sharingUnavailable": "Споделянето не е налично на това устройство.", + "status": { + "paid": "Платена", + "open": "Отворена", + "void": "Невалидна", + "draft": "Чернова", + "uncollectible": "Несъбираема", + "unknown": "Неизвестна" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Събрани данни", "free": "Безплатно", - "couldNotUpdateFavorites": "Не можахме да актуализираме любимите" + "couldNotUpdateFavorites": "Не можахме да актуализираме любимите", + "thinkingEffort": { + "none": "Няма", + "minimal": "Минимално", + "low": "Ниско", + "medium": "Средно", + "high": "Високо", + "xhigh": "Много високо", + "max": "Максимум" + } } } diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index 7d3ff2beb7..dcc67219bd 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} নির্বাচিত, নির্বাচন পরিবর্তন করতে আলতো চাপুন", "truncationBanner": "পরিবর্তিত {{total}}টি ফাইলের মধ্যে প্রথম {{limit}}টি দেখানো হচ্ছে — GitHub API সীমা", - "tapToComment": "{{label}}, মন্তব্য করতে আলতো চাপুন" + "tapToComment": "{{label}}, মন্তব্য করতে আলতো চাপুন", + "statusAdded": "যোগ করা হয়েছে", + "statusContext": "প্রসঙ্গ", + "statusDeleted": "মুছে ফেলা হয়েছে" }, "linkPasteClipboardEmpty": "ক্লিপবোর্ড খালি", "linkPasteNotAPullRequest": "এটি একটি GitHub pull request লিংক নয়", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "এই রিভিউটি এখনকার মতো জমা দেওয়া যাবে না। PR পরিবর্তিত হয়ে থাকতে পারে, অথবা আপনি আপনার নিজের পুল রিকোয়েস্ট রিভিউ করতে পারবেন না।", "couldNotPostComment": "মন্তব্য পোস্ট করা যায়নি।", "couldNotSubmitReview": "রিভিউ জমা দেওয়া যায়নি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।" + }, + "operation": { + "couldNotReply": "উত্তর দেওয়া যায়নি।", + "couldNotCompleteAction": "এই কাজটি সম্পূর্ণ করা যায়নি।", + "mergeResultDefaultError": "GitHub মার্জ সম্পূর্ণ করেনি।" } }, "notifications": { @@ -821,7 +829,11 @@ "subscriptionCancels": "সাবস্ক্রিপশন বাতিল হয় {{date}}", "trialDaysRemaining": "ট্রায়াল: {{remaining}} বাকি", "trialEndingSoon": "ট্রায়াল শীঘ্রই শেষ হচ্ছে: {{remaining}}", - "lessThanOneDay": "1 দিনেরও কম" + "lessThanOneDay": "1 দিনেরও কম", + "planName": { + "commit": "কমিট", + "standard": "স্ট্যান্ডার্ড" + } }, "changelog": { "title": "নতুন কী", @@ -1189,7 +1201,8 @@ "strongArm": "শক্তিশালী হাত", "talisman": "তাবিজ" }, - "remoteSpawnFilesNotSupported": "এই ইনস্ট্যান্সটি ফাইল গ্রহণ করতে পারে না।" + "remoteSpawnFilesNotSupported": "এই ইনস্ট্যান্সটি ফাইল গ্রহণ করতে পারে না।", + "instanceSwitcherTitle": "KiloClaw ইনস্ট্যান্স" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ব্যর্থ হয়েছে", "cancelled": "বাতিল করা হয়েছে", "interrupted": "বাধাগ্রস্ত" - } + }, + "reviewStyle": { + "strict": "কঠোর", + "balanced": "সুষম", + "lenient": "নমনীয়", + "roast": "Roast" + }, + "focusArea": { + "security": "নিরাপত্তা", + "performance": "পারফরম্যান্স", + "bugs": "বাগ", + "style": "স্টাইল", + "testing": "টেস্টিং", + "documentation": "ডকুমেন্টেশন" + }, + "gateThreshold": { + "off": "বন্ধ", + "all": "সব", + "warning": "সতর্কতা", + "critical": "ক্রিটিক্যাল" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer-এর মনোযোগ প্রয়োজন", + "description": "Code Reviewer নিষ্ক্রিয় করা হয়েছে কারণ সক্রিয় GitHub অ্যাপ ইনস্টলেশনের মাধ্যমে Kilo এই রিপোজিটরিতে অ্যাক্সেস করতে পারে না। GitHub অ্যাপ ইনস্টলেশন আপডেট করুন, তারপর Code Reviewer আবার সক্রিয় করুন।", + "recoveryLabel": "GitHub অ্যাপ আপডেট করুন" + }, + "githubIpAllowList": { + "title": "Code Reviewer-এর মনোযোগ প্রয়োজন", + "description": "Code Reviewer নিষ্ক্রিয় করা হয়েছে কারণ এই GitHub সংস্থাটি একটি IP অনুমোদিত তালিকা ব্যবহার করে যা Kilo-কে ব্লক করে। সাহায্যের জন্য hi@kilocode.ai-তে যোগাযোগ করুন, তারপর Code Reviewer আবার সক্রিয় করুন।", + "recoveryLabel": "সাপোর্টে যোগাযোগ করুন" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer-এর মনোযোগ প্রয়োজন", + "description": "Code Reviewer নিষ্ক্রিয় করা হয়েছে কারণ Kilo এই প্রজেক্টের জন্য একটি GitLab Project Access Token তৈরি করতে পারে না। Maintainer অ্যাক্সেস দিন বা Project Access Tokens সক্রিয় করুন, তারপর Code Reviewer আবার সক্রিয় করুন।", + "recoveryLabel": "GitLab ইন্টিগ্রেশন আপডেট করুন" + }, + "byokInvalidKey": { + "title": "Code Reviewer-এর মনোযোগ প্রয়োজন", + "description": "Code Reviewer নিষ্ক্রিয় করা হয়েছে কারণ নির্বাচিত BYOK API কীটি অবৈধ, প্রত্যাহার করা হয়েছে বা অনুমতি নেই। কীটি আপডেট করুন বা অন্য মডেল বেছে নিন, তারপর Code Reviewer আবার সক্রিয় করুন।", + "recoveryLabel": "BYOK সেটিংস আপডেট করুন" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer-এর মনোযোগ প্রয়োজন", + "description": "Code Reviewer নিষ্ক্রিয় করা হয়েছে কারণ নির্বাচিত মডেলটি ক্লাউড এজেন্ট সেশনের জন্য উপলব্ধ নয়। একটি উপলব্ধ মডেল বেছে নিন, তারপর Code Reviewer আবার সক্রিয় করুন।", + "recoveryLabel": "Code Reviewer সেটিংস আপডেট করুন" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer-এর মনোযোগ প্রয়োজন", + "description": "আজ তিনটি রিপোজিটরি ক্লোন টাইমআউটের পরে Code Reviewer নিষ্ক্রিয় করা হয়েছে। সাহায্যের জন্য hi@kilocode.ai-তে যোগাযোগ করুন, তারপর Code Reviewer আবার সক্রিয় করুন।", + "recoveryLabel": "সাপোর্টে যোগাযোগ করুন" + } + }, + "unknownError": "অজানা ত্রুটি" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ফাইন্ডিংটি স্বয়ংক্রিয় তীব্রতা সীমার নিচে। সেফটি গেট পাস করলে ম্যানুয়াল প্রতিকার এখনও শুরু হতে পারে।", "beforeEnablement": "অটো প্রতিকার সক্রিয় হওয়ার আগেই বিশ্লেষণ সম্পন্ন হয়েছে। সেফটি গেট পাস করলে ম্যানুয়াল প্রতিকার এখনও শুরু হতে পারে।", "generic": "এই ফাইন্ডিংটির জন্য প্রতিকার অনুপলব্ধ।" + }, + "commandFailure": { + "ownerCapReached": "বিশ্লেষণের ক্ষমতা পূর্ণ। সক্রিয় বিশ্লেষণ শেষ হওয়ার জন্য অপেক্ষা করুন, তারপর আবার চেষ্টা করুন।", + "githubTokenUnavailable": "GitHub অনুমোদনের মনোযোগ প্রয়োজন। GitHub অ্যাপ পুনরায় অনুমোদন করুন, তারপর আবার চেষ্টা করুন।", + "githubAuthInvalid": "GitHub অনুমোদনের মনোযোগ প্রয়োজন। GitHub অ্যাপ পুনরায় অনুমোদন করুন, তারপর আবার চেষ্টা করুন।", + "findingUnavailable": "ফাইন্ডিংটি আর উপলব্ধ নেই। ফাইন্ডিং রিফ্রেশ করুন এবং এটি খোলা থাকলে আবার চেষ্টা করুন।", + "repositoryUnavailable": "রিপোজিটরিটি GitHub অ্যাপের জন্য আর উপলব্ধ নেই। রিপোজিটরি অ্যাক্সেস রিফ্রেশ করুন, তারপর আবার চেষ্টা করুন।", + "invalidDismissTarget": "ফাইন্ডিংটি বাতিল করা যাবে না কারণ এর Dependabot টার্গেটটি অবৈধ।", + "commandStalled": "সারিবদ্ধ অ্যাকশনটি সময়মতো শেষ হয়নি। অ্যাকশনটি আবার চেষ্টা করুন।", + "queueRetriesExhausted": "কয়েকটি চেষ্টার পরেও অ্যাকশনটি সম্পূর্ণ করা যায়নি। অ্যাকশনটি আবার চেষ্টা করুন।", + "queueAdmissionFailed": "সারিবদ্ধ অ্যাকশনটি গৃহীত হয়নি। অ্যাকশনটি আবার চেষ্টা করুন।", + "generic": "সারিবদ্ধ অ্যাকশনটি ব্যর্থ হয়েছে। অ্যাকশনটি আবার চেষ্টা করুন।" + }, + "analysisMode": { + "auto": "অটো", + "shallow": "অগভীর", + "deep": "গভীর" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} ফেভারিটে যোগ করুন", "removeFromFavorites": "{{name}} ফেভারিট থেকে সরান", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "মিড" + "thinkingEffortMedium": "মিড", + "sessionModel": "সেশনের মডেল" }, "attachmentPreview": { "openFailedRetry": "ফাইল খুলতে ব্যর্থ হয়েছে। আবার চেষ্টা করুন।", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ক্রেডিট যোগ করুন", - "description": "ব্যবহার চালু রাখতে ক্রেডিট যোগ করুন।" + "description": "ব্যবহার চালু রাখতে ক্রেডিট যোগ করুন।", + "billingPage": "বিলিং পেজ" }, "deviceSessions": { "couldNotLoad": "সেশন লোড করা যায়নি", @@ -2710,7 +2795,10 @@ "restoreFailed": "ক্রয় পুনরুদ্ধার করা যায়নি। আবার চেষ্টা করুন।", "purchaseFailed": "ক্রয় সম্পূর্ণ করা যায়নি।", "purchaseStartFailed": "App Store ক্রয় শুরু করা যায়নি।", - "purchaseOwnedByAnotherAccount": "এই Apple Account-এ Kilo Pass একটি ভিন্ন Kilo অ্যাকাউন্টের।" + "purchaseOwnedByAnotherAccount": "এই Apple Account-এ Kilo Pass একটি ভিন্ন Kilo অ্যাকাউন্টের।", + "couldNotConnectToAppStore": "App Store-এ সংযোগ করা যায়নি। আপনার সংযোগ পরীক্ষা করুন এবং আবার চেষ্টা করুন।", + "noMatchingProducts": "App Store থেকে মিলে যাওয়া কোনো Kilo Pass পণ্য ফেরত দেওয়া হয়নি।", + "purchaseMissingSignedTransaction": "App Store ক্রয়ে স্বাক্ষরিত লেনদেন JWS অন্তর্ভুক্ত ছিল না।" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "উন্নতি প্রয়োজন", "sorryTitle": "এটা শুনে আমরা দুঃখিত!", "sorryMessage": "কী উন্নত করতে হবে তা আমাদের জানান। অ্যাপের দায়িত্বে থাকা ইঞ্জিনিয়ার প্রতিটি রিপোর্ট পড়েন!", - "emailUs": "আমাদের ইমেইল করুন" + "emailUs": "আমাদের ইমেইল করুন", + "emailSubject": "মোবাইল অ্যাপ ফিডব্যাক" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "কোনো ক্রেডিট কার্যকলাপ নেই", "expires": "{{date}} মেয়াদ শেষ হয়", "title": "ক্রেডিট কার্যকলাপ", - "transactionFallback": "ক্রেডিট লেনদেন" + "transactionFallback": "ক্রেডিট লেনদেন", + "category": { + "organization_custom": "সংস্থা কাস্টম", + "parent_to_child_transfer_in": "প্যারেন্ট থেকে চাইল্ডে স্থানান্তর", + "parent_to_child_transfer_out": "চাইল্ড থেকে প্যারেন্টে স্থানান্তর", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "অ্যাকাউন্টিং সমন্বয়", + "credits_expired": "ক্রেডিটের মেয়াদ শেষ" + } }, "inviteMember": { "emailError": "একটি বৈধ ইমেইল ঠিকানা লিখুন", @@ -2840,12 +2939,17 @@ "emptyDescription": "প্রতিটি বিলিং চক্রে স্বয়ংক্রিয়ভাবে ইনভয়েস তৈরি হয় এবং আপনার সংস্থা বিল হলে এখানে প্রদর্শিত হবে।", "emptyTitle": "কোনো ইনভয়েস নেই", "invoiceFallback": "ইনভয়েস", - "statusOpen": "খোলা", - "statusPaid": "পরিশোধিত", - "statusVoid": "বাতিল", "title": "ইনভয়েস", "downloadFailed": "ইনভয়েস ডাউনলোড করা যায়নি। আপনার সংযোগ পরীক্ষা করে আবার চেষ্টা করুন।", - "sharingUnavailable": "এই ডিভাইসে শেয়ারিং উপলব্ধ নয়।" + "sharingUnavailable": "এই ডিভাইসে শেয়ারিং উপলব্ধ নয়।", + "status": { + "paid": "পরিশোধিত", + "open": "খোলা", + "void": "বাতিল", + "draft": "খসড়া", + "uncollectible": "আদায়যোগ্য নয়", + "unknown": "অজানা" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "সংগৃহীত ডেটা", "free": "ফ্রি", - "couldNotUpdateFavorites": "প্রিয় আপডেট করা যায়নি" + "couldNotUpdateFavorites": "প্রিয় আপডেট করা যায়নি", + "thinkingEffort": { + "none": "নেই", + "minimal": "ন্যূনতম", + "low": "নিম্ন", + "medium": "মাঝারি", + "high": "উচ্চ", + "xhigh": "অতিরিক্ত উচ্চ", + "max": "সর্বোচ্চ" + } } } diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index a43bd79950..cac6ec22d5 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -580,7 +580,10 @@ "diff": { "selectedTapToChange": "Odabrano {{label}}, dodirnite za promjenu odabira", "truncationBanner": "Prikazano je prvih {{limit}} od {{total}} promijenjenih datoteka — GitHub API ograničenje", - "tapToComment": "{{label}}, dodirnite za komentar" + "tapToComment": "{{label}}, dodirnite za komentar", + "statusAdded": "Dodano", + "statusContext": "Kontekst", + "statusDeleted": "Obrisano" }, "linkPasteClipboardEmpty": "Međuspremnik je prazan", "linkPasteNotAPullRequest": "Nije GitHub pull request link", @@ -594,6 +597,11 @@ "reviewNotSubmitted": "Ovaj pregled se ne može poslati kakav jeste. PR se možda promijenio ili ne možete pregledati vlastiti pull request.", "couldNotPostComment": "Objavljivanje komentara nije uspjelo.", "couldNotSubmitReview": "Slanje pregleda nije uspjelo. Provjerite vezu i pokušajte ponovo." + }, + "operation": { + "couldNotReply": "Odgovor nije uspio.", + "couldNotCompleteAction": "Nije moguće dovršiti ovu radnju.", + "mergeResultDefaultError": "GitHub nije dovršio spajanje." } }, "notifications": { @@ -829,7 +837,11 @@ "subscriptionCancels": "Pretplata se otkazuje {{date}}", "trialDaysRemaining": "Proba: preostalo {{remaining}}", "trialEndingSoon": "Proba uskoro prestaje: {{remaining}}", - "lessThanOneDay": "Manje od 1 dana" + "lessThanOneDay": "Manje od 1 dana", + "planName": { + "commit": "Obaveza", + "standard": "Standard" + } }, "changelog": { "title": "Šta je novo", @@ -1198,7 +1210,8 @@ "strongArm": "Snažna ruka", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Ova instanca ne može primiti datoteke." + "remoteSpawnFilesNotSupported": "Ova instanca ne može primiti datoteke.", + "instanceSwitcherTitle": "KiloClaw instanca" }, "codeReviewer": { "focusAreas": { @@ -1396,7 +1409,60 @@ "failed": "Nije uspjelo", "cancelled": "Otkazano", "interrupted": "Prekinuto" - } + }, + "reviewStyle": { + "strict": "Strog", + "balanced": "Uravnotežen", + "lenient": "Blag", + "roast": "Roast" + }, + "focusArea": { + "security": "Sigurnost", + "performance": "Performanse", + "bugs": "Greške", + "style": "Stil", + "testing": "Testiranje", + "documentation": "Dokumentacija" + }, + "gateThreshold": { + "off": "Isključeno", + "all": "Sve", + "warning": "Upozorenje", + "critical": "Kritično" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer zahtijeva pažnju", + "description": "Code Reviewer je onemogućen jer Kilo ne može pristupiti ovom repozitoriju s aktivnom GitHub App instalacijom. Ažurirajte GitHub App instalaciju, zatim ponovo omogućite Code Reviewer.", + "recoveryLabel": "Ažuriraj GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer zahtijeva pažnju", + "description": "Code Reviewer je onemogućen jer ova GitHub organizacija koristi listu dozvoljenih IP adresa koja blokira Kilo. Kontaktirajte hi@kilocode.ai za pomoć, zatim ponovo omogućite Code Reviewer.", + "recoveryLabel": "Kontaktiraj podršku" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer zahtijeva pažnju", + "description": "Code Reviewer je onemogućen jer Kilo ne može kreirati GitLab Project Access Token za ovaj projekat. Dodijelite Maintainer pristup ili omogućite Project Access Tokens, zatim ponovo omogućite Code Reviewer.", + "recoveryLabel": "Ažuriraj GitLab integraciju" + }, + "byokInvalidKey": { + "title": "Code Reviewer zahtijeva pažnju", + "description": "Code Reviewer je onemogućen jer je odabrani BYOK API ključ nevažeći, opozvan ili nema dozvolu. Ažurirajte ključ ili odaberite drugi model, zatim ponovo omogućite Code Reviewer.", + "recoveryLabel": "Ažuriraj BYOK postavke" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer zahtijeva pažnju", + "description": "Code Reviewer je onemogućen jer odabrani model nije dostupan za cloud agent sesije. Odaberite dostupan model, zatim ponovo omogućite Code Reviewer.", + "recoveryLabel": "Ažuriraj Code Reviewer postavke" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer zahtijeva pažnju", + "description": "Code Reviewer je onemogućen nakon tri vremenska isteka kloniranja repozitorija danas. Kontaktirajte hi@kilocode.ai za pomoć, zatim ponovo omogućite Code Reviewer.", + "recoveryLabel": "Kontaktiraj podršku" + } + }, + "unknownError": "Nepoznata greška" }, "securityAgent": { "filter": { @@ -1940,6 +2006,23 @@ "belowThreshold": "Nalaz je ispod automatskog praga ozbiljnosti. Ručno otklanjanje se i dalje može pokrenuti kada sigurnosne provjere prođu.", "beforeEnablement": "Analiza je dovršena prije nego što je auto sanacija omogućena. Ručno otklanjanje se i dalje može pokrenuti kada sigurnosne provjere prođu.", "generic": "Otklanjanje nije dostupno za ovaj nalaz." + }, + "commandFailure": { + "ownerCapReached": "Kapacitet analize je pun. Pričekajte da se aktivna analiza završi, zatim pokušajte ponovo.", + "githubTokenUnavailable": "GitHub autorizacija zahtijeva pažnju. Ponovo autorizirajte GitHub aplikaciju, zatim pokušajte ponovo.", + "githubAuthInvalid": "GitHub autorizacija zahtijeva pažnju. Ponovo autorizirajte GitHub aplikaciju, zatim pokušajte ponovo.", + "findingUnavailable": "Nalaz više nije dostupan. Osvježite nalaze i pokušajte ponovo ako ostane otvoren.", + "repositoryUnavailable": "Repozitorij više nije dostupan GitHub aplikaciji. Osvježite pristup repozitoriju, zatim pokušajte ponovo.", + "invalidDismissTarget": "Nalaz se ne može odbaciti jer je njegov Dependabot cilj nevažeći.", + "commandStalled": "Radnja u redu nije završila na vrijeme. Pokušajte ponovo radnju.", + "queueRetriesExhausted": "Radnja se nije mogla završiti nakon nekoliko pokušaja. Pokušajte ponovo radnju.", + "queueAdmissionFailed": "Radnja u redu nije mogla biti prihvaćena. Pokušajte ponovo radnju.", + "generic": "Radnja u redu nije uspjela. Pokušajte ponovo radnju." + }, + "analysisMode": { + "auto": "Automatski", + "shallow": "Plitko", + "deep": "Duboko" } }, "agents": { @@ -2409,7 +2492,8 @@ "addToFavorites": "Dodaj {{name}} u favorite", "removeFromFavorites": "Ukloni {{name}} iz favorita", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model sesije" }, "attachmentPreview": { "openFailedRetry": "Otvaranje datoteke nije uspjelo. Pokušajte ponovo.", @@ -2542,7 +2626,8 @@ }, "addCredits": { "cta": "Dodaj kredite", - "description": "Dodajte kredite da održite upotrebu u radu." + "description": "Dodajte kredite da održite upotrebu u radu.", + "billingPage": "stranica za naplatu" }, "deviceSessions": { "couldNotLoad": "Sesije nisu mogle biti učitane", @@ -2730,7 +2815,10 @@ "restoreFailed": "Vraćanje kupovina nije uspjelo. Pokušajte ponovo.", "purchaseFailed": "Dovršavanje kupovine nije uspjelo.", "purchaseStartFailed": "Pokretanje kupovine u App Store-u nije uspjelo.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu." + "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu.", + "couldNotConnectToAppStore": "Nije moguće povezati se s App Store-om. Provjerite vezu i pokušajte ponovo.", + "noMatchingProducts": "App Store nije vratio odgovarajuće Kilo Pass proizvode.", + "purchaseMissingSignedTransaction": "Kupovina u App Store-u nije uključivala potpisanu transakciju JWS." }, "consent": { "kilo": "Kilo", @@ -2826,7 +2914,8 @@ "needsWork": "Treba poboljšanja", "sorryTitle": "Žao nam je to čuti!", "sorryMessage": "Javite nam šta treba biti bolje. Inženjer zadužen za aplikaciju čita svaki pojedinačni izvještaj!", - "emailUs": "Pošaljite nam email" + "emailUs": "Pošaljite nam email", + "emailSubject": "povratne informacije o mobilnoj aplikaciji" }, "organization": { "boundary": { @@ -2843,7 +2932,17 @@ "emptyTitle": "Nema aktivnosti kredita", "expires": "Istječe {{date}}", "title": "Aktivnost kredita", - "transactionFallback": "Transakcija kredita" + "transactionFallback": "Transakcija kredita", + "category": { + "organization_custom": "Prilagođeno za organizaciju", + "parent_to_child_transfer_in": "Prijenos s matične na podružničnu organizaciju", + "parent_to_child_transfer_out": "Prijenos s podružnične na matičnu organizaciju", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Računovodstvena korekcija", + "credits_expired": "Istekli krediti" + } }, "inviteMember": { "emailError": "Unesite važeću email adresu", @@ -2860,12 +2959,17 @@ "emptyDescription": "Fakture se generišu automatski svakog ciklusa naplate i pojavit će se ovdje nakon što vaša organizacija bude naplaćena.", "emptyTitle": "Nema faktura", "invoiceFallback": "Faktura", - "statusOpen": "Otvoreno", - "statusPaid": "Plaćeno", - "statusVoid": "Nevažeće", "title": "Fakture", "downloadFailed": "Preuzimanje fakture nije uspjelo. Provjerite vezu i pokušajte ponovo.", - "sharingUnavailable": "Dijeljenje nije dostupno na ovom uređaju." + "sharingUnavailable": "Dijeljenje nije dostupno na ovom uređaju.", + "status": { + "paid": "Plaćeno", + "open": "Otvoreno", + "void": "Nevažeće", + "draft": "Naert", + "uncollectible": "Nenaplativo", + "unknown": "Nepoznato" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Prikupljeni podaci", "free": "Besplatno", - "couldNotUpdateFavorites": "Omiljeni se nisu mogli ažurirati" + "couldNotUpdateFavorites": "Omiljeni se nisu mogli ažurirati", + "thinkingEffort": { + "none": "Nema", + "minimal": "Minimalno", + "low": "Nisko", + "medium": "Srednje", + "high": "Visoko", + "xhigh": "Ekstra visoko", + "max": "Maksimum" + } } } diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index fb5355acfe..0a26e4f152 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -580,7 +580,10 @@ "diff": { "selectedTapToChange": "{{label}} seleccionat, toca per canviar la selecció", "truncationBanner": "Es mostren els primers {{limit}} de {{total}} fitxers modificats — límit de l'API de GitHub", - "tapToComment": "{{label}}, toca per comentar" + "tapToComment": "{{label}}, toca per comentar", + "statusAdded": "Afegit", + "statusContext": "Context", + "statusDeleted": "Eliminat" }, "linkPasteClipboardEmpty": "El porta-retalls és buit", "linkPasteNotAPullRequest": "No és un enllaç de pull request de GitHub", @@ -594,6 +597,11 @@ "reviewNotSubmitted": "Aquesta revisió no es pot enviar tal com està. Pot ser que la PR hagi canviat, o no pots revisar la teva pròpia pull request.", "couldNotPostComment": "No s'ha pogut publicar el comentari.", "couldNotSubmitReview": "No s'ha pogut enviar la revisió. Comprova la connexió i torna-ho a provar." + }, + "operation": { + "couldNotReply": "No s'ha pogut respondre.", + "couldNotCompleteAction": "No s'ha pogut completar aquesta acció.", + "mergeResultDefaultError": "GitHub no ha completat la fusió." } }, "notifications": { @@ -829,7 +837,11 @@ "subscriptionCancels": "La subscripció es cancel·la el {{date}}", "trialDaysRemaining": "Prova: queden {{remaining}}", "trialEndingSoon": "La prova acaba aviat: {{remaining}}", - "lessThanOneDay": "Menys d'1 dia" + "lessThanOneDay": "Menys d'1 dia", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Novetats", @@ -1198,7 +1210,8 @@ "strongArm": "Braç fort", "talisman": "Talismà" }, - "remoteSpawnFilesNotSupported": "Aquesta instància no pot rebre fitxers." + "remoteSpawnFilesNotSupported": "Aquesta instància no pot rebre fitxers.", + "instanceSwitcherTitle": "Instància de KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1396,7 +1409,60 @@ "failed": "Fallit", "cancelled": "Cancel·lat", "interrupted": "Interromput" - } + }, + "reviewStyle": { + "strict": "Estricte", + "balanced": "Equilibrat", + "lenient": "Flexible", + "roast": "Roast" + }, + "focusArea": { + "security": "Seguretat", + "performance": "Rendiment", + "bugs": "Errors", + "style": "Estil", + "testing": "Proves", + "documentation": "Documentació" + }, + "gateThreshold": { + "off": "Desactivat", + "all": "Tots", + "warning": "Avís", + "critical": "Crític" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "El Revisor de codi requereix atenció", + "description": "El Revisor de codi s'ha desactivat perquè Kilo no pot accedir a aquest repositori amb una instal·lació activa de l'aplicació de GitHub. Actualitza la instal·lació de l'aplicació de GitHub i torna a activar el Revisor de codi.", + "recoveryLabel": "Actualitza l'aplicació de GitHub" + }, + "githubIpAllowList": { + "title": "El Revisor de codi requereix atenció", + "description": "El Revisor de codi s'ha desactivat perquè aquesta organització de GitHub utilitza una llista d'IP permeses que bloqueja Kilo. Contacta amb hi@kilocode.ai per demanar ajuda i torna a activar el Revisor de codi.", + "recoveryLabel": "Contacta amb el suport" + }, + "gitlabProjectAccessRequired": { + "title": "El Revisor de codi requereix atenció", + "description": "El Revisor de codi s'ha desactivat perquè Kilo no pot crear un token d'accés de projecte de GitLab per a aquest projecte. Concedeix accés de Maintainer o activa els tokens d'accés de projecte i torna a activar el Revisor de codi.", + "recoveryLabel": "Actualitza la integració de GitLab" + }, + "byokInvalidKey": { + "title": "El Revisor de codi requereix atenció", + "description": "El Revisor de codi s'ha desactivat perquè la clau d'API BYOK seleccionada no és vàlida, s'ha revocat o no té permisos. Actualitza la clau o tria un altre model i torna a activar el Revisor de codi.", + "recoveryLabel": "Actualitza la configuració de BYOK" + }, + "selectedModelUnavailable": { + "title": "El Revisor de codi requereix atenció", + "description": "El Revisor de codi s'ha desactivat perquè el model seleccionat no està disponible per a les sessions de Cloud Agent. Tria un model disponible i torna a activar el Revisor de codi.", + "recoveryLabel": "Actualitza la configuració del Revisor de codi" + }, + "repeatedRepositoryCloneTimeout": { + "title": "El Revisor de codi requereix atenció", + "description": "El Revisor de codi s'ha desactivat després de tres temps d'espera de clonació de repositoris avui. Contacta amb hi@kilocode.ai per demanar ajuda i torna a activar el Revisor de codi.", + "recoveryLabel": "Contacta amb el suport" + } + }, + "unknownError": "Error desconegut" }, "securityAgent": { "filter": { @@ -1940,6 +2006,23 @@ "belowThreshold": "El resultat està per sota del llindar automàtic de gravetat. La correcció manual encara pot començar quan passin les comprovacions de seguretat.", "beforeEnablement": "L'anàlisi es va completar abans d'activar la correcció automàtica. La correcció manual encara pot començar quan passin les comprovacions de seguretat.", "generic": "La correcció no està disponible per a aquest resultat." + }, + "commandFailure": { + "ownerCapReached": "La capacitat d'anàlisi està plena. Espera que acabi una anàlisi activa i torna-ho a provar.", + "githubTokenUnavailable": "L'autorització de GitHub requereix atenció. Torna a autoritzar l'aplicació de GitHub i torna-ho a provar.", + "githubAuthInvalid": "L'autorització de GitHub requereix atenció. Torna a autoritzar l'aplicació de GitHub i torna-ho a provar.", + "findingUnavailable": "El resultat ja no està disponible. Actualitza els resultats i torna-ho a provar si continua obert.", + "repositoryUnavailable": "El repositori ja no està disponible per a l'aplicació de GitHub. Actualitza l'accés al repositori i torna-ho a provar.", + "invalidDismissTarget": "El resultat no es pot descartar perquè el seu objectiu de Dependabot no és vàlid.", + "commandStalled": "L'acció en cua no ha acabat a temps. Torna a provar l'acció.", + "queueRetriesExhausted": "L'acció no s'ha pogut completar després de diversos intents. Torna a provar l'acció.", + "queueAdmissionFailed": "L'acció en cua no s'ha pogut admetre. Torna a provar l'acció.", + "generic": "L'acció en cua ha fallat. Torna a provar l'acció." + }, + "analysisMode": { + "auto": "Automàtic", + "shallow": "Superficial", + "deep": "Profunda" } }, "agents": { @@ -2409,7 +2492,8 @@ "addToFavorites": "Afegeix {{name}} als favorits", "removeFromFavorites": "Treu {{name}} dels favorits", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model de sessió" }, "attachmentPreview": { "openFailedRetry": "No s'ha pogut obrir el fitxer. Torna-ho a provar.", @@ -2542,7 +2626,8 @@ }, "addCredits": { "cta": "Afegeix crèdits", - "description": "Afegeix crèdits per mantenir l'ús actiu." + "description": "Afegeix crèdits per mantenir l'ús actiu.", + "billingPage": "pàgina de facturació" }, "deviceSessions": { "couldNotLoad": "No s'han pogut carregar les sessions", @@ -2730,7 +2815,10 @@ "restoreFailed": "No s'han pogut restaurar les compres. Torna-ho a provar.", "purchaseFailed": "No s'ha pogut completar la compra.", "purchaseStartFailed": "No s'ha pogut iniciar la compra a l'App Store.", - "purchaseOwnedByAnotherAccount": "El Kilo Pass d'aquest Apple Account pertany a un compte de Kilo diferent." + "purchaseOwnedByAnotherAccount": "El Kilo Pass d'aquest Apple Account pertany a un compte de Kilo diferent.", + "couldNotConnectToAppStore": "No s'ha pogut connectar amb l'App Store. Comprova la connexió i torna-ho a provar.", + "noMatchingProducts": "L'App Store no ha retornat cap producte de Kilo Pass que coincideixi.", + "purchaseMissingSignedTransaction": "La compra de l'App Store no incloïa una JWS de transacció signada." }, "consent": { "kilo": "Kilo", @@ -2826,7 +2914,8 @@ "needsWork": "Necessita millores", "sorryTitle": "Ens sap greu sentir-ho!", "sorryMessage": "Si us plau, feu-nos saber què cal millorar. L'enginyer responsable de l'aplicació llegeix tots i cadascun dels informes!", - "emailUs": "Escriu-nos" + "emailUs": "Escriu-nos", + "emailSubject": "comentaris de l'aplicació mòbil" }, "organization": { "boundary": { @@ -2843,7 +2932,17 @@ "emptyTitle": "No hi ha activitat de crèdit", "expires": "Caduca el {{date}}", "title": "Activitat de crèdit", - "transactionFallback": "Transacció de crèdit" + "transactionFallback": "Transacció de crèdit", + "category": { + "organization_custom": "Personalitzat d'organització", + "parent_to_child_transfer_in": "Transferència entrant de l'organització principal a la filial", + "parent_to_child_transfer_out": "Transferència sortint de l'organització principal a la filial", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Ajust comptable", + "credits_expired": "Crèdits caducats" + } }, "inviteMember": { "emailError": "Introduïu una adreça de correu vàlida", @@ -2860,12 +2959,17 @@ "emptyDescription": "Les factures es generen automàticament cada cicle de facturació i apareixeran aquí un cop l'organització sigui facturada.", "emptyTitle": "No hi ha factures", "invoiceFallback": "Factura", - "statusOpen": "Oberta", - "statusPaid": "Pagada", - "statusVoid": "Anul·lada", "title": "Factures", "downloadFailed": "No s'ha pogut descarregar la factura. Comprova la connexió i torna-ho a provar.", - "sharingUnavailable": "La compartició no està disponible en aquest dispositiu." + "sharingUnavailable": "La compartició no està disponible en aquest dispositiu.", + "status": { + "paid": "Pagada", + "open": "Oberta", + "void": "Anul·lada", + "draft": "Esborrany", + "uncollectible": "No cobrable", + "unknown": "Desconegut" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Dades recollides", "free": "Gratuït", - "couldNotUpdateFavorites": "No s'han pogut actualitzar els favorits" + "couldNotUpdateFavorites": "No s'han pogut actualitzar els favorits", + "thinkingEffort": { + "none": "Cap", + "minimal": "Mínim", + "low": "Baix", + "medium": "Mitjà", + "high": "Alt", + "xhigh": "Extra alt", + "max": "Màxim" + } } } diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index 0dd93ca7cd..ef597b56db 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "هەڵبژێردراو {{label}}، بۆ گۆڕینی هەڵبژاردن لێی بدە", "truncationBanner": "پێشاندانی یەکەم {{limit}} لە {{total}} فایلێکی گۆڕاو — سنووری APIـی GitHub", - "tapToComment": "{{label}}، بۆ بۆچوون لێی بدە" + "tapToComment": "{{label}}، بۆ بۆچوون لێی بدە", + "statusAdded": "زیادکراو", + "statusContext": "دەق", + "statusDeleted": "سڕراو" }, "linkPasteClipboardEmpty": "کلیپبۆردەکە بەتاڵە", "linkPasteNotAPullRequest": "لینکی پرسی ڕاکێشان (pull request)ی GitHub نییە", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ئەم پێداچوونەوەیە وەک خۆی ناتوانرێت بنێردرێت. ڕەنگە PR گۆڕابێت، یان ناتوانیت پێداچوونەوە بە داواکاری ڕاکێشانی خۆت بکەیت.", "couldNotPostComment": "نەتوانرا بۆچوون بڵاو بکرێتەوە.", "couldNotSubmitReview": "نەتوانرا پێداچوونەوە بنێردرێت. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەرەوە." + }, + "operation": { + "couldNotReply": "نەتوانرا وەڵام بدرێتەوە.", + "couldNotCompleteAction": "نەتوانرا ئەم کردارە تەواو بکرێت.", + "mergeResultDefaultError": "GitHub نەیتوانی تێکەڵکردنەکە تەواو بکات." } }, "notifications": { @@ -821,7 +829,11 @@ "subscriptionCancels": "ئەندامێتی لە {{date}} هەڵدەوەشێتەوە", "trialDaysRemaining": "تاقیکردنەوە: {{remaining}} ماوە", "trialEndingSoon": "تاقیکردنەوە بەم زووانە کۆتایی دێت: {{remaining}}", - "lessThanOneDay": "کەمتر لە 1 ڕۆژ" + "lessThanOneDay": "کەمتر لە 1 ڕۆژ", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "چی نوێیە", @@ -1189,7 +1201,8 @@ "strongArm": "بازوی بەهێز", "talisman": "تالیسمان" }, - "remoteSpawnFilesNotSupported": "ئەم نموونەیە ناتوانێت فایل وەربگرێت." + "remoteSpawnFilesNotSupported": "ئەم نموونەیە ناتوانێت فایل وەربگرێت.", + "instanceSwitcherTitle": "نموونەی KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "شکستی هێنا", "cancelled": "هەڵوەشایەوە", "interrupted": "ڕاگیرا" - } + }, + "reviewStyle": { + "strict": "توند", + "balanced": "هاوسەنگ", + "lenient": "نەرم", + "roast": "Roast" + }, + "focusArea": { + "security": "ئاسایش", + "performance": "کارایی", + "bugs": "باگەکان", + "style": "ستایل", + "testing": "تاقیکردنەوە", + "documentation": "بەڵگەنامە" + }, + "gateThreshold": { + "off": "ناچالاک", + "all": "هەموو", + "warning": "ئاگادارکردنەوە", + "critical": "گرنگ" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "پێداچوونەوەکاری کۆد پێویستی بە سەرنجە", + "description": "پێداچوونەوەکاری کۆد ناچالاککرا چونکە Kilo ناتوانێت بە دامەزراندنێکی چالاکی GitHub App دەستبگات بەم کۆگایە. دامەزراندنی GitHub App نوێ بکەوە، پاشان پێداچوونەوەکاری کۆد دووبارە چالاک بکە.", + "recoveryLabel": "نوێکردنەوەی GitHub App" + }, + "githubIpAllowList": { + "title": "پێداچوونەوەکاری کۆد پێویستی بە سەرنجە", + "description": "پێداچوونەوەکاری کۆد ناچالاککرا چونکە ئەم ڕێکخراوەی GitHub لیستی ڕێگەپێدراوی IP بەکاردەهێنێت کە Kilo بەربەست دەکات. بۆ یارمەتی پەیوەندی بکە بە hi@kilocode.ai، پاشان پێداچوونەوەکاری کۆد دووبارە چالاک بکە.", + "recoveryLabel": "پەیوەندی بە پشتیوانی" + }, + "gitlabProjectAccessRequired": { + "title": "پێداچوونەوەکاری کۆد پێویستی بە سەرنجە", + "description": "پێداچوونەوەکاری کۆد ناچالاککرا چونکە Kilo ناتوانێت توکنی دەستگەیشتنی پرۆژەی GitLab دروست بکات بۆ ئەم پرۆژەیە. دەستگەیشتنی پارێزەر بدە یان توکنەکانی دەستگەیشتنی پرۆژە چالاک بکە، پاشان پێداچوونەوەکاری کۆد دووبارە چالاک بکە.", + "recoveryLabel": "نوێکردنەوەی یەکگرتنی GitLab" + }, + "byokInvalidKey": { + "title": "پێداچوونەوەکاری کۆد پێویستی بە سەرنجە", + "description": "پێداچوونەوەکاری کۆد ناچالاککرا چونکە کلیلی APIـی BYOKی هەڵبژێردراو نادروستە، لابراوە، یان مۆڵەتی نییە. کلیلەکە نوێ بکەوە یان مۆدێلێکی تر هەڵبژێرە، پاشان پێداچوونەوەکاری کۆد دووبارە چالاک بکە.", + "recoveryLabel": "نوێکردنەوەی ڕێکخستنەکانی BYOK" + }, + "selectedModelUnavailable": { + "title": "پێداچوونەوەکاری کۆد پێویستی بە سەرنجە", + "description": "پێداچوونەوەکاری کۆد ناچالاککرا چونکە مۆدێلی هەڵبژێردراو بۆ دانیشتنەکانی ئەرکی هەور بەردەست نییە. مۆدێلێکی بەردەست هەڵبژێرە، پاشان پێداچوونەوەکاری کۆد دووبارە چالاک بکە.", + "recoveryLabel": "نوێکردنەوەی ڕێکخستنەکانی پێداچوونەوەکاری کۆد" + }, + "repeatedRepositoryCloneTimeout": { + "title": "پێداچوونەوەکاری کۆد پێویستی بە سەرنجە", + "description": "پێداچوونەوەکاری کۆد ئەمڕۆ دوای سێ کات بەسەرچووی کلۆنی کۆگا ناچالاککرا. بۆ یارمەتی پەیوەندی بکە بە hi@kilocode.ai، پاشان پێداچوونەوەکاری کۆد دووبارە چالاک بکە.", + "recoveryLabel": "پەیوەندی بە پشتیوانی" + } + }, + "unknownError": "هەڵەی نەزانراو" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "دۆزینەوەکە لە خوار ئاستی ئۆتۆماتیکییەوەیە. چارەسەری دەستی هێشتا دەتوانێت دەستپێبکات کاتێک دەروازە ئاسایشەکان تێدەپەڕن.", "beforeEnablement": "شیکاری پێش چالاککردنی چاکسازی ئۆتۆماتیکی تەواو بووە. چارەسەری دەستی هێشتا دەتوانێت دەستپێبکات کاتێک دەروازە ئاسایشەکان تێدەپەڕن.", "generic": "چارەسەر بۆ ئەم دۆزینەوەیە بەردەست نییە." + }, + "commandFailure": { + "ownerCapReached": "توانای شیکاری پڕە. چاوەڕوانی تەواوبوونی شیکارییەکی چالاک بکە، پاشان دووبارە هەوڵبدەرەوە.", + "githubTokenUnavailable": "ڕێگاپێدانی GitHub پێویستی بە سەرنجە. دووبارە ڕێگاپێدان بە GitHub App، پاشان دووبارە هەوڵبدەرەوە.", + "githubAuthInvalid": "ڕێگاپێدانی GitHub پێویستی بە سەرنجە. دووبارە ڕێگاپێدان بە GitHub App، پاشان دووبارە هەوڵبدەرەوە.", + "findingUnavailable": "دۆزینەوەکە چیتر بەردەست نییە. دۆزینەوەکان نوێ بکەرەوە و ئەگەر هێشتا کراوە بێت دووبارە هەوڵبدەرەوە.", + "repositoryUnavailable": "کۆگاکە چیتر بۆ GitHub App بەردەست نییە. دەستگەیشتنی کۆگا نوێ بکەرەوە، پاشان دووبارە هەوڵبدەرەوە.", + "invalidDismissTarget": "دۆزینەوەکە ناتوانرێت ڕەت بکرێت چونکە ئامانجی Dependabotی نادروستە.", + "commandStalled": "کردارە ڕیزکراوەکە لە کاتدا تەواو نەبوو. دووبارە هەوڵی کردارەکە بدەرەوە.", + "queueRetriesExhausted": "کردارەکە دوای چەندین هەوڵ نەتوانرا تەواو بکرێت. دووبارە هەوڵی کردارەکە بدەرەوە.", + "queueAdmissionFailed": "کردارە ڕیزکراوەکە نەتوانرا وەربگیردرێت. دووبارە هەوڵی کردارەکە بدەرەوە.", + "generic": "کردارە ڕیزکراوەکە سەرکەوتوو نەبوو. دووبارە هەوڵی کردارەکە بدەرەوە." + }, + "analysisMode": { + "auto": "ئۆتۆ", + "shallow": "کەم", + "deep": "قوڵ" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "زیادکردنی {{name}} بۆ هەڵبژاردەکان", "removeFromFavorites": "لابردنی {{name}} لە هەڵبژاردەکان", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "مۆدێلی سێشن" }, "attachmentPreview": { "openFailedRetry": "کردنەوەی فایل سەرکەوتوو نەبوو. تکایە دووبارە هەوڵبدەرەوە.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "زیادکردنی کرێدت", - "description": "کرێدت زیاد بکە بۆ بەردەوامبوون لە بەکارهێنان." + "description": "کرێدت زیاد بکە بۆ بەردەوامبوون لە بەکارهێنان.", + "billingPage": "پەڕەی پارەدان" }, "deviceSessions": { "couldNotLoad": "نەتوانرا دانیشتنەکان باربکرێن", @@ -2710,7 +2795,10 @@ "restoreFailed": "گەڕاندنەوەی کڕینەکان شکستی هێنا. دووبارە هەوڵبدەرەوە.", "purchaseFailed": "تەواوکردنی کڕین شکستی هێنا.", "purchaseStartFailed": "دەستپێکردنی کڕینی App Store شکستی هێنا.", - "purchaseOwnedByAnotherAccount": "Kilo Passـی ئەم هەژمارەی Apple سەر بە هەژمارەیەکی دیکەی Kilo یە." + "purchaseOwnedByAnotherAccount": "Kilo Passـی ئەم هەژمارەی Apple سەر بە هەژمارەیەکی دیکەی Kilo یە.", + "couldNotConnectToAppStore": "نەتوانرا پەیوەندی بە App Store بکرێت. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەرەوە.", + "noMatchingProducts": "هیچ بەرهەمێکی گونجاوی Kilo Pass لەلایەن App Storeوە نەگەڕێندرایەوە.", + "purchaseMissingSignedTransaction": "کڕینەکەی App Store مامەڵەیەکی واژووکراوی JWSی لەخۆ نەگرتبوو." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "پێویستی بە کارە", "sorryTitle": "دڵگرانین بە بیستنی ئەوە!", "sorryMessage": "تکایە ڕای بگەیەنە کە چی پێویستە باشتر بێت. ئەندازیارێک کە بەرپرسە لە ئەپ هەر ڕاپۆرتێک دەخوێنێتەوە!", - "emailUs": "ئیمەیڵمان بۆ بنێرە" + "emailUs": "ئیمەیڵمان بۆ بنێرە", + "emailSubject": "بۆچوونی ئەپی مۆبایل" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "هیچ چالاکییەکی کرێدت نییە", "expires": "بەسەردەچێت {{date}}", "title": "چالاکی کرێدت", - "transactionFallback": "وەرگرتنی کرێدت" + "transactionFallback": "وەرگرتنی کرێدت", + "category": { + "organization_custom": "تایبەتی ڕێکخراو", + "parent_to_child_transfer_in": "گواستنەوە لە باوان بۆ منداڵ (هاتوو)", + "parent_to_child_transfer_out": "گواستنەوە لە باوان بۆ منداڵ (دەرچوو)", + "oss-sponsorship": "سپۆنسەری OSS", + "oss-monthly-reset": "ڕێستکردنی مانگانەی OSS", + "team-topup-bonus-2025": "بۆنەی زیادکردنی تیم 2025", + "accounting_adjustment": "ڕێکخستنی هەژماری", + "credits_expired": "بەسەرچوونی کرێدت" + } }, "inviteMember": { "emailError": "ناونیشانی ئیمەیڵی دروست بنووسە", @@ -2840,12 +2939,17 @@ "emptyDescription": "فاکتۆرەکان هەر سوڕی وەرگرتنێکدا بە شێوەی خۆکار دروست دەکرێن و لێرەدا دەردەکەون کاتێک ڕێکخراوەکەت وەرگرتنی بۆ دەکرێت.", "emptyTitle": "هیچ فاکتۆرەیەک نییە", "invoiceFallback": "فاکتۆرا", - "statusOpen": "کراوە", - "statusPaid": "پارەدراو", - "statusVoid": "پووچەڵ", "title": "فاکتۆرەکان", "downloadFailed": "نەتوانرا فاکتۆرا دابگرێت. پەیوەندییەکەت بپشکنە و دووبارە هەوڵبدەرەوە.", - "sharingUnavailable": "هاوبەشکردن لەسەر ئەم ئامێرە بەردەست نییە." + "sharingUnavailable": "هاوبەشکردن لەسەر ئەم ئامێرە بەردەست نییە.", + "status": { + "paid": "پارەدراو", + "open": "کراوە", + "void": "پووچەڵ", + "draft": "ڕەشنووس", + "uncollectible": "نەکۆڵکراو", + "unknown": "نەزانراو" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "داتاکان کۆکرانەوە", "free": "خۆڕایی", - "couldNotUpdateFavorites": "نەتوانرا دڵخوازەکان نوێ بکرێنەوە" + "couldNotUpdateFavorites": "نەتوانرا دڵخوازەکان نوێ بکرێنەوە", + "thinkingEffort": { + "none": "هیچ", + "minimal": "کەمترین", + "low": "نزم", + "medium": "ناوەندی", + "high": "بەرز", + "xhigh": "زۆر بەرز", + "max": "زۆرترین" + } } } diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index fd83c9e5ed..78e38e8b60 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -587,7 +587,10 @@ "diff": { "selectedTapToChange": "Vybráno {{label}}, klepnutím změníte výběr", "truncationBanner": "Zobrazuje se prvních {{limit}} z {{total}} změněných souborů — limit rozhraní GitHub API", - "tapToComment": "{{label}}, klepnutím okomentujete" + "tapToComment": "{{label}}, klepnutím okomentujete", + "statusAdded": "Přidáno", + "statusContext": "Kontext", + "statusDeleted": "Smazáno" }, "linkPasteClipboardEmpty": "Schránka je prázdná", "linkPasteNotAPullRequest": "Toto není odkaz na pull request v GitHubu", @@ -601,6 +604,11 @@ "reviewNotSubmitted": "Tuto recenzi nelze v aktuálním stavu odeslat. PR se mohl změnit, nebo nemůžete recenzovat vlastní pull request.", "couldNotPostComment": "Komentář se nepodařilo odeslat.", "couldNotSubmitReview": "Recenzi se nepodařilo odeslat. Zkontrolujte připojení a zkuste to znovu." + }, + "operation": { + "couldNotReply": "Odpověď se nepodařilo odeslat.", + "couldNotCompleteAction": "Tuto akci se nepodařilo dokončit.", + "mergeResultDefaultError": "GitHub nedokončil sloučení." } }, "notifications": { @@ -837,7 +845,11 @@ "subscriptionCancels": "Předplatné se ruší {{date}}", "trialDaysRemaining": "Zkušební verze: zbývá {{remaining}}", "trialEndingSoon": "Zkušební verze brzy skončí: {{remaining}}", - "lessThanOneDay": "Méně než 1 den" + "lessThanOneDay": "Méně než 1 den", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Co je nového", @@ -1207,7 +1219,8 @@ "strongArm": "Silná paže", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Tato instance nemůže přijímat soubory." + "remoteSpawnFilesNotSupported": "Tato instance nemůže přijímat soubory.", + "instanceSwitcherTitle": "Instance KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1405,7 +1418,60 @@ "failed": "Selhalo", "cancelled": "Zrušeno", "interrupted": "Přerušeno" - } + }, + "reviewStyle": { + "strict": "Přísný", + "balanced": "Vyvážený", + "lenient": "Shovívavý", + "roast": "Roast" + }, + "focusArea": { + "security": "Zabezpečení", + "performance": "Výkon", + "bugs": "Chyby", + "style": "Styl", + "testing": "Testování", + "documentation": "Dokumentace" + }, + "gateThreshold": { + "off": "Vypnuto", + "all": "Vše", + "warning": "Varování", + "critical": "Kritické" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer vyžaduje pozornost", + "description": "Code Reviewer byl zakázán, protože Kilo nemá přístup k tomuto úložišti s aktivní instalací GitHub App. Aktualizujte instalaci GitHub App a pak Code Reviewer znovu povolte.", + "recoveryLabel": "Aktualizovat GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer vyžaduje pozornost", + "description": "Code Reviewer byl zakázán, protože tato organizace GitHub používá seznam povolených IP adres, který blokuje Kilo. Kontaktujte hi@kilocode.ai a pak Code Reviewer znovu povolte.", + "recoveryLabel": "Kontaktovat podporu" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer vyžaduje pozornost", + "description": "Code Reviewer byl zakázán, protože Kilo nemůže pro tento projekt vytvořit token přístupu k projektu GitLab. Udělte přístup správce (Maintainer) nebo povolte tokeny přístupu k projektu a pak Code Reviewer znovu povolte.", + "recoveryLabel": "Aktualizovat integraci GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer vyžaduje pozornost", + "description": "Code Reviewer byl zakázán, protože vybraný klíč rozhraní API BYOK je neplatný, byl odvolán nebo nemá oprávnění. Aktualizujte klíč nebo zvolte jiný model a pak Code Reviewer znovu povolte.", + "recoveryLabel": "Aktualizovat nastavení BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer vyžaduje pozornost", + "description": "Code Reviewer byl zakázán, protože vybraný model není k dispozici pro relace cloudového agenta. Vyberte dostupný model a pak Code Reviewer znovu povolte.", + "recoveryLabel": "Aktualizovat nastavení Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer vyžaduje pozornost", + "description": "Code Reviewer byl zakázán po třech dnešních časových limitech klonování úložiště. Kontaktujte hi@kilocode.ai a pak Code Reviewer znovu povolte.", + "recoveryLabel": "Kontaktovat podporu" + } + }, + "unknownError": "Neznámá chyba" }, "securityAgent": { "filter": { @@ -1953,6 +2019,23 @@ "belowThreshold": "Zjištění je pod automatickou hranicí závažnosti. Ruční náprava může stále začít, když projdou bezpečnostní brány.", "beforeEnablement": "Analýza byla dokončena před povolením automatické nápravy. Ruční náprava může stále začít, když projdou bezpečnostní brány.", "generic": "Náprava není pro toto zjištění k dispozici." + }, + "commandFailure": { + "ownerCapReached": "Kapacita analýzy je plná. Počkejte, dokud neskončí aktivní analýza, a zkuste to znovu.", + "githubTokenUnavailable": "Autorizace GitHub vyžaduje pozornost. Znovu autorizujte GitHub App a zkuste to znovu.", + "githubAuthInvalid": "Autorizace GitHub vyžaduje pozornost. Znovu autorizujte GitHub App a zkuste to znovu.", + "findingUnavailable": "Zjištění již není k dispozici. Obnovte zjištění a zkuste to znovu, pokud zůstává otevřené.", + "repositoryUnavailable": "Úložiště již není pro GitHub App k dispozici. Obnovte přístup k úložišti a zkuste to znovu.", + "invalidDismissTarget": "Zjištění nelze zamítnout, protože jeho cíl Dependabot je neplatný.", + "commandStalled": "Akce ve frontě se nedokončila včas. Zkuste akci znovu.", + "queueRetriesExhausted": "Akci se nepodařilo dokončit po několika pokusech. Zkuste akci znovu.", + "queueAdmissionFailed": "Akci ve frontě se nepodařilo přijmout. Zkuste akci znovu.", + "generic": "Akce ve frontě selhala. Zkuste akci znovu." + }, + "analysisMode": { + "auto": "Automaticky", + "shallow": "Mělká", + "deep": "Hluboká" } }, "agents": { @@ -2428,7 +2511,8 @@ "addToFavorites": "Přidat {{name}} do oblíbených", "removeFromFavorites": "Odebrat {{name}} z oblíbených", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Stř" + "thinkingEffortMedium": "Stř", + "sessionModel": "Model relace" }, "attachmentPreview": { "openFailedRetry": "Otevření souboru se nezdařilo. Zkuste to prosím znovu.", @@ -2562,7 +2646,8 @@ }, "addCredits": { "cta": "Přidat kredity", - "description": "Přidejte kredity, aby využití mohlo pokračovat." + "description": "Přidejte kredity, aby využití mohlo pokračovat.", + "billingPage": "fakturační stránka" }, "deviceSessions": { "couldNotLoad": "Relace se nepodařilo načíst", @@ -2750,7 +2835,10 @@ "restoreFailed": "Obnovení nákupů se nezdařilo. Zkuste to znovu.", "purchaseFailed": "Nákup se nepodařilo dokončit.", "purchaseStartFailed": "Nákup v App Store se nepodařilo zahájit.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na tomto Apple účtu patří k jinému účtu Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass na tomto Apple účtu patří k jinému účtu Kilo.", + "couldNotConnectToAppStore": "Nepodařilo se připojit k App Store. Zkontrolujte připojení a zkuste to znovu.", + "noMatchingProducts": "App Store nevrátil žádné odpovídající produkty Kilo Pass.", + "purchaseMissingSignedTransaction": "Nákup v App Store neobsahoval podepsanou transakci JWS." }, "consent": { "kilo": "Kilo", @@ -2846,7 +2934,8 @@ "needsWork": "Vyžaduje zlepšení", "sorryTitle": "Je nám líto, že to slyšíme!", "sorryMessage": "Dejte nám prosím vědět, co by mělo být lepší. Inženýr odpovědný za aplikaci čte každou jednotlivou zprávu!", - "emailUs": "Napište nám e-mail" + "emailUs": "Napište nám e-mail", + "emailSubject": "zpětná vazba k mobilní aplikaci" }, "organization": { "boundary": { @@ -2863,7 +2952,17 @@ "emptyTitle": "Žádná aktivita kreditů", "expires": "Platnost do {{date}}", "title": "Aktivita kreditů", - "transactionFallback": "Kreditní transakce" + "transactionFallback": "Kreditní transakce", + "category": { + "organization_custom": "Vlastní organizace", + "parent_to_child_transfer_in": "Převod z rodičovské do dceřiné organizace (příchozí)", + "parent_to_child_transfer_out": "Převod z rodičovské do dceřiné organizace (odchozí)", + "oss-sponsorship": "Sponzorství OSS", + "oss-monthly-reset": "Měsíční obnovení OSS", + "team-topup-bonus-2025": "Bonus za doplnění týmu 2025", + "accounting_adjustment": "Účetní úprava", + "credits_expired": "Kredity s prošlou platností" + } }, "inviteMember": { "emailError": "Zadejte platnou e-mailovou adresu", @@ -2880,12 +2979,17 @@ "emptyDescription": "Faktury se generují automaticky každý fakturační cyklus a zde se zobrazí, jakmile je vaše organizace vyúčtována.", "emptyTitle": "Žádné faktury", "invoiceFallback": "Faktura", - "statusOpen": "Otevřeno", - "statusPaid": "Zaplaceno", - "statusVoid": "Neplatné", "title": "Faktury", "downloadFailed": "Fakturu se nepodařilo stáhnout. Zkontrolujte připojení a zkuste to znovu.", - "sharingUnavailable": "Sdílení není na tomto zařízení k dispozici." + "sharingUnavailable": "Sdílení není na tomto zařízení k dispozici.", + "status": { + "paid": "Zaplaceno", + "open": "Otevřeno", + "void": "Neplatné", + "draft": "Koncept", + "uncollectible": "Nedobytné", + "unknown": "Neznámé" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Shromažďovaná data", "free": "Zdarma", - "couldNotUpdateFavorites": "Oblíbené se nepodařilo aktualizovat" + "couldNotUpdateFavorites": "Oblíbené se nepodařilo aktualizovat", + "thinkingEffort": { + "none": "Žádné", + "minimal": "Minimální", + "low": "Nízké", + "medium": "Střední", + "high": "Vysoké", + "xhigh": "Velmi vysoké", + "max": "Maximální" + } } } diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 6ddec01eed..5812801755 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -601,7 +601,10 @@ "diff": { "selectedTapToChange": "{{label}} wedi'i ddewis, tapiwch i newid y dewis", "tapToComment": "{{label}}, tapiwch i sylwebu", - "truncationBanner": "Yn dangos y {{limit}} cyntaf o {{total}} ffeil a newidiwyd — terfyn API GitHub" + "truncationBanner": "Yn dangos y {{limit}} cyntaf o {{total}} ffeil a newidiwyd — terfyn API GitHub", + "statusAdded": "Wedi'i ychwanegu", + "statusContext": "Cyd-destun", + "statusDeleted": "Wedi'i ddileu" }, "linkPasteClipboardEmpty": "Mae'r clipfwrdd yn wag", "linkPasteNotAPullRequest": "Nid dolen GitHub pull request yw hon", @@ -615,6 +618,11 @@ "reviewNotSubmitted": "Ni ellir cyflwyno'r adolygiad hwn fel y mae. Efallai fod y PR wedi newid, neu ni allwch adolygu eich cais tynnu eich hun.", "couldNotPostComment": "Ni ellid postio'r sylw.", "couldNotSubmitReview": "Ni ellid cyflwyno'r adolygiad. Gwiriwch eich cysylltiad a rhoi cynnig arall arni." + }, + "operation": { + "couldNotReply": "Ni ellid ateb.", + "couldNotCompleteAction": "Ni ellid cwblhau'r weithred hon.", + "mergeResultDefaultError": "Ni chwblhaodd GitHub y cyfuniad." } }, "notifications": { @@ -853,7 +861,11 @@ "paymentPastDue": "Taliad hwyr. Diweddarwch eich dull talu.", "subscriptionCancels": "Mae'r tanysgrifiad yn canslo {{date}}", "trialDaysRemaining": "Treial: {{remaining}} ar ôl", - "trialEndingSoon": "Treial yn dod i ben yn fuan: {{remaining}}" + "trialEndingSoon": "Treial yn dod i ben yn fuan: {{remaining}}", + "planName": { + "commit": "Ymrwymo", + "standard": "Safonol" + } }, "changelog": { "title": "Beth sy'n Newydd", @@ -1225,7 +1237,8 @@ "strongArm": "Braich gref", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Ni all yr enghraifft hon dderbyn ffeiliau." + "remoteSpawnFilesNotSupported": "Ni all yr enghraifft hon dderbyn ffeiliau.", + "instanceSwitcherTitle": "Enghraifft KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1423,7 +1436,60 @@ "failed": "Wedi methu", "cancelled": "Wedi'i ganslo", "interrupted": "Wedi'i atal" - } + }, + "reviewStyle": { + "strict": "Llym", + "balanced": "Cytbwys", + "lenient": "Llac", + "roast": "Rhost" + }, + "focusArea": { + "security": "Diogelwch", + "performance": "Perfformiad", + "bugs": "Chwilod", + "style": "Arddull", + "testing": "Profi", + "documentation": "Dogfennaeth" + }, + "gateThreshold": { + "off": "I ffwrdd", + "all": "Pob un", + "warning": "Rhybuddion", + "critical": "Critigol" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Mae angen sylw ar yr Adolygydd Cod", + "description": "Analluogwyd yr Adolygydd Cod oherwydd na all Kilo gyrchu'r ystorfa hon gyda gosodiad Ap GitHub gweithredol. Diweddarwch osodiad yr Ap GitHub, yna galluogwch yr Adolygydd Cod eto.", + "recoveryLabel": "Diweddaru Ap GitHub" + }, + "githubIpAllowList": { + "title": "Mae angen sylw ar yr Adolygydd Cod", + "description": "Analluogwyd yr Adolygydd Cod oherwydd bod y sefydliad GitHub hwn yn defnyddio rhestr ganiatáu IP sy'n blocio Kilo. Cysylltwch â hi@kilocode.ai am gymorth, yna galluogwch yr Adolygydd Cod eto.", + "recoveryLabel": "Cysylltu â chymorth" + }, + "gitlabProjectAccessRequired": { + "title": "Mae angen sylw ar yr Adolygydd Cod", + "description": "Analluogwyd yr Adolygydd Cod oherwydd na all Kilo greu Tocyn Mynediad Prosiect GitLab ar gyfer y prosiect hwn. Rhowch fynediad Cynhalydd neu galluogwch Docynnau Mynediad Prosiect, yna galluogwch yr Adolygydd Cod eto.", + "recoveryLabel": "Diweddaru integreiddiad GitLab" + }, + "byokInvalidKey": { + "title": "Mae angen sylw ar yr Adolygydd Cod", + "description": "Analluogwyd yr Adolygydd Cod oherwydd bod yr allwedd API BYOK a ddewiswyd yn annilys, wedi'i dirymu, neu heb ganiatâd. Diweddarwch yr allwedd neu dewiswch fodel arall, yna galluogwch yr Adolygydd Cod eto.", + "recoveryLabel": "Diweddaru gosodiadau BYOK" + }, + "selectedModelUnavailable": { + "title": "Mae angen sylw ar yr Adolygydd Cod", + "description": "Analluogwyd yr Adolygydd Cod oherwydd nad yw'r model a ddewiswyd ar gael ar gyfer sesiynau Cloud Agent. Dewiswch fodel sydd ar gael, yna galluogwch yr Adolygydd Cod eto.", + "recoveryLabel": "Diweddaru gosodiadau'r Adolygydd Cod" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Mae angen sylw ar yr Adolygydd Cod", + "description": "Analluogwyd yr Adolygydd Cod ar ôl tri oedi clonio ystorfa heddiw. Cysylltwch â hi@kilocode.ai am gymorth, yna galluogwch yr Adolygydd Cod eto.", + "recoveryLabel": "Cysylltu â chymorth" + } + }, + "unknownError": "Gwall anhysbys" }, "securityAgent": { "filter": { @@ -1979,6 +2045,23 @@ "belowThreshold": "Mae'r canfyddiad yn is na throthwy difrifoldeb awtomatig. Gall adferiad â llaw ddal i ddechrau pan fydd gatiau diogelwch yn pasio.", "beforeEnablement": "Cwblhawyd y dadansoddiad cyn galluogi Adfer Awtomatig. Gall adferiad â llaw ddal i ddechrau pan fydd gatiau diogelwch yn pasio.", "generic": "Nid yw adferiad ar gael ar gyfer y canfyddiad hwn." + }, + "commandFailure": { + "ownerCapReached": "Mae capasiti dadansoddi'n llawn. Arhoswch i ddadansoddiad gweithredol orffen, yna rhowch gynnig arall arni.", + "githubTokenUnavailable": "Mae angen sylw ar awdurdodiad GitHub. Ail-awdurdodwch yr Ap GitHub, yna rhowch gynnig arall arni.", + "githubAuthInvalid": "Mae angen sylw ar awdurdodiad GitHub. Ail-awdurdodwch yr Ap GitHub, yna rhowch gynnig arall arni.", + "findingUnavailable": "Nid yw'r canfyddiad ar gael mwyach. Adnewyddwch ganfyddiadau a rhowch gynnig arall arni os yw'n parhau ar agor.", + "repositoryUnavailable": "Nid yw'r ystorfa ar gael i Ap GitHub mwyach. Adnewyddwch fynediad i'r ystorfa, yna rhowch gynnig arall arni.", + "invalidDismissTarget": "Ni ellir gwrthod y canfyddiad oherwydd bod ei darged Dependabot yn annilys.", + "commandStalled": "Ni orffennodd y weithred a roddwyd mewn ciw mewn pryd. Rhowch gynnig arall arni.", + "queueRetriesExhausted": "Ni ellid cwblhau'r weithred ar ôl sawl cynnig. Rhowch gynnig arall arni.", + "queueAdmissionFailed": "Ni ellid derbyn y weithred a roddwyd mewn ciw. Rhowch gynnig arall arni.", + "generic": "Methodd y weithred a roddwyd mewn ciw. Rhowch gynnig arall arni." + }, + "analysisMode": { + "auto": "Awtomatig", + "shallow": "Bas", + "deep": "Dwfn" } }, "agents": { @@ -2466,7 +2549,8 @@ "addToFavorites": "Ychwanegu {{name}} i'r ffefrynnau", "removeFromFavorites": "Dileu {{name}} o'r ffefrynnau", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model y sesiwn" }, "attachmentPreview": { "openFailedRetry": "Methwyd agor y ffeil. Ceisiwch eto.", @@ -2602,7 +2686,8 @@ }, "addCredits": { "cta": "Ychwanegu credydau", - "description": "Ychwanegwch gredydau i gadw defnydd yn rhedeg." + "description": "Ychwanegwch gredydau i gadw defnydd yn rhedeg.", + "billingPage": "tudalen filio" }, "deviceSessions": { "couldNotLoad": "Methwyd llwytho sesiynau", @@ -2790,7 +2875,10 @@ "restoreFailed": "Methodd adfer pryniannau. Rhowch gynnig arall arni.", "purchaseFailed": "Methodd cwblhau'r pryniant.", "purchaseStartFailed": "Methodd cychwyn pryniant App Store.", - "purchaseOwnedByAnotherAccount": "Mae'r Kilo Pass ar yr Apple Account hwn yn perthyn i gyfrif Kilo gwahanol." + "purchaseOwnedByAnotherAccount": "Mae'r Kilo Pass ar yr Apple Account hwn yn perthyn i gyfrif Kilo gwahanol.", + "couldNotConnectToAppStore": "Ni ellid cysylltu â'r App Store. Gwiriwch eich cysylltiad a cheisiwch eto.", + "noMatchingProducts": "Ni ddychwelodd yr App Store unrhyw gynhyrchion Kilo Pass cyfatebol.", + "purchaseMissingSignedTransaction": "Ni chynhwysodd y pryniant App Store drafodiad JWS wedi'i lofnodi." }, "consent": { "kilo": "Kilo", @@ -2886,7 +2974,8 @@ "needsWork": "Angen gwaith", "sorryTitle": "Mae'n ddrwg gennym glywed hynny!", "sorryMessage": "Rhowch wybod i ni beth sydd angen ei wella. Mae'r peiriannydd sy'n gyfrifol am yr ap yn darllen pob adroddiad!", - "emailUs": "E-bostiwch ni" + "emailUs": "E-bostiwch ni", + "emailSubject": "Adborth ap symudol" }, "organization": { "boundary": { @@ -2903,7 +2992,17 @@ "emptyTitle": "Dim gweithgaredd credyd", "expires": "Yn dod i ben {{date}}", "title": "Gweithgaredd credyd", - "transactionFallback": "Trafodiad credyd" + "transactionFallback": "Trafodiad credyd", + "category": { + "organization_custom": "Addasiad arferiad sefydliad", + "parent_to_child_transfer_in": "Trosglwyddiad rhiant i blentyn i mewn", + "parent_to_child_transfer_out": "Trosglwyddiad rhiant i blentyn allan", + "oss-sponsorship": "Nawdd OSS", + "oss-monthly-reset": "Ailosod misol OSS", + "team-topup-bonus-2025": "Bonws ail-lenwi tîm 2025", + "accounting_adjustment": "Addasiad cyfrifyddu", + "credits_expired": "Credydau wedi dod i ben" + } }, "inviteMember": { "emailError": "Nodwch gyfeiriad e-bost dilys", @@ -2920,12 +3019,17 @@ "emptyDescription": "Cynhyrchir anfonebau'n awtomatig bob cylch bilio a byddant yn ymddangos yma unwaith y bydd eich sefydliad yn cael ei filio.", "emptyTitle": "Dim anfonebau", "invoiceFallback": "Anfoneb", - "statusOpen": "Ar agor", - "statusPaid": "Wedi'i thalu", - "statusVoid": "Gwag", "title": "Anfonebau", "downloadFailed": "Ni ellid lawrlwytho'r anfoneb. Gwiriwch eich cysylltiad a rhoi cynnig arall arni.", - "sharingUnavailable": "Nid yw rhannu ar gael ar y ddyfais hon." + "sharingUnavailable": "Nid yw rhannu ar gael ar y ddyfais hon.", + "status": { + "paid": "Wedi'i thalu", + "open": "Ar agor", + "void": "Gwag", + "draft": "Drafft", + "uncollectible": "Anghasgladwy", + "unknown": "Anhysbys" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3055,6 +3159,15 @@ "models": { "dataCollected": "Data a gasglwyd", "free": "Am ddim", - "couldNotUpdateFavorites": "Ni ellid diweddaru ffefrynnau" + "couldNotUpdateFavorites": "Ni ellid diweddaru ffefrynnau", + "thinkingEffort": { + "none": "Dim", + "minimal": "Lleiaf", + "low": "Isel", + "medium": "Canolig", + "high": "Uchel", + "xhigh": "Uchel iawn", + "max": "Uchaf" + } } } diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index 77be78491e..e7a31988f1 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Valgt {{label}}, tryk for at ændre markering", "tapToComment": "{{label}}, tryk for at kommentere", - "truncationBanner": "Viser de første {{limit}} af {{total}} ændrede filer — GitHub API-grænse" + "truncationBanner": "Viser de første {{limit}} af {{total}} ændrede filer — GitHub API-grænse", + "statusAdded": "Tilføjet", + "statusContext": "Kontekst", + "statusDeleted": "Slettet" }, "linkPasteClipboardEmpty": "Udklipsholderen er tom", "linkPasteNotAPullRequest": "Ikke et GitHub pull request-link", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Denne anmeldelse kan ikke sendes, som den er. PR'en kan have ændret sig, eller du kan ikke anmelde din egen pull request.", "couldNotPostComment": "Kunne ikke sende kommentaren.", "couldNotSubmitReview": "Kunne ikke sende anmeldelsen. Tjek din forbindelse og prøv igen." + }, + "operation": { + "couldNotReply": "Kunne ikke svare.", + "couldNotCompleteAction": "Kunne ikke fuldføre denne handling.", + "mergeResultDefaultError": "GitHub fuldførte ikke fletningen." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Betaling er forfalden. Opdater venligst din betalingsmetode.", "subscriptionCancels": "Abonnement annulleres {{date}}", "trialDaysRemaining": "Prøveperiode: {{remaining}} tilbage", - "trialEndingSoon": "Prøveperiode slutter snart: {{remaining}}" + "trialEndingSoon": "Prøveperiode slutter snart: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Hvad er nyt", @@ -1189,7 +1201,8 @@ "strongArm": "Stærk arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Denne instance kan ikke modtage filer." + "remoteSpawnFilesNotSupported": "Denne instance kan ikke modtage filer.", + "instanceSwitcherTitle": "KiloClaw-forekomst" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Mislykkedes", "cancelled": "Annulleret", "interrupted": "Afbrudt" - } + }, + "reviewStyle": { + "strict": "Streng", + "balanced": "Afbalanceret", + "lenient": "Mild", + "roast": "Roast" + }, + "focusArea": { + "security": "Sikkerhed", + "performance": "Ydeevne", + "bugs": "Fejl", + "style": "Stil", + "testing": "Test", + "documentation": "Dokumentation" + }, + "gateThreshold": { + "off": "Fra", + "all": "Alle", + "warning": "Advarsel", + "critical": "Kritisk" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer kræver opmærksomhed", + "description": "Code Reviewer blev deaktiveret, fordi Kilo ikke kan få adgang til dette repository med en aktiv GitHub App-installation. Opdater GitHub App-installationen, og aktiver derefter Code Reviewer igen.", + "recoveryLabel": "Opdater GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer kræver opmærksomhed", + "description": "Code Reviewer blev deaktiveret, fordi denne GitHub-organisation bruger en IP-allowlist, der blokerer Kilo. Kontakt hi@kilocode.ai for hjælp, og aktiver derefter Code Reviewer igen.", + "recoveryLabel": "Kontakt support" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer kræver opmærksomhed", + "description": "Code Reviewer blev deaktiveret, fordi Kilo ikke kan oprette en GitLab Project Access Token til dette projekt. Giv Maintainer-adgang eller aktivér Project Access Tokens, og aktiver derefter Code Reviewer igen.", + "recoveryLabel": "Opdater GitLab-integration" + }, + "byokInvalidKey": { + "title": "Code Reviewer kræver opmærksomhed", + "description": "Code Reviewer blev deaktiveret, fordi den valgte BYOK API-nøgle er ugyldig, tilbagekaldt eller mangler tilladelse. Opdater nøglen eller vælg en anden model, og aktiver derefter Code Reviewer igen.", + "recoveryLabel": "Opdater BYOK-indstillinger" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer kræver opmærksomhed", + "description": "Code Reviewer blev deaktiveret, fordi den valgte model ikke er tilgængelig til cloud agent-sessioner. Vælg en tilgængelig model, og aktiver derefter Code Reviewer igen.", + "recoveryLabel": "Opdater Code Reviewer-indstillinger" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer kræver opmærksomhed", + "description": "Code Reviewer blev deaktiveret efter tre repository-clone-timeouts i dag. Kontakt hi@kilocode.ai for hjælp, og aktiver derefter Code Reviewer igen.", + "recoveryLabel": "Kontakt support" + } + }, + "unknownError": "Ukendt fejl" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Fundet er under automatiseringsgrænsen for sværhedsgrad. Manuel afhjælpning kan stadig startes, når sikkerhedsportene er passeret.", "beforeEnablement": "Analysen blev fuldført, før Autoudbedring blev aktiveret. Manuel afhjælpning kan stadig startes, når sikkerhedsportene er passeret.", "generic": "Afhjælpning er ikke tilgængelig for dette fund." + }, + "commandFailure": { + "ownerCapReached": "Analysekapaciteten er fuld. Vent på, at en aktiv analyse er færdig, og prøv derefter igen.", + "githubTokenUnavailable": "GitHub-godkendelse kræver opmærksomhed. Genautoriser GitHub App, og prøv derefter igen.", + "githubAuthInvalid": "GitHub-godkendelse kræver opmærksomhed. Genautoriser GitHub App, og prøv derefter igen.", + "findingUnavailable": "Fundet er ikke længere tilgængeligt. Opdater fundene, og prøv igen, hvis det stadig er åbent.", + "repositoryUnavailable": "Repository er ikke længere tilgængeligt for GitHub App. Opdater repository-adgangen, og prøv derefter igen.", + "invalidDismissTarget": "Fundet kan ikke afvises, fordi dets Dependabot-mål er ugyldigt.", + "commandStalled": "Handlingen i kø blev ikke færdig i tide. Prøv handlingen igen.", + "queueRetriesExhausted": "Handlingen kunne ikke fuldføres efter flere forsøg. Prøv handlingen igen.", + "queueAdmissionFailed": "Handlingen i kø kunne ikke optages. Prøv handlingen igen.", + "generic": "Handlingen i kø mislykkedes. Prøv handlingen igen." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Overfladisk", + "deep": "Dyb" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Tilføj {{name}} til favoritter", "removeFromFavorites": "Fjern {{name}} fra favoritter", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Sessionsmodel" }, "attachmentPreview": { "openFailedRetry": "Kunne ikke åbne filen. Prøv igen.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Tilføj kreditter", - "description": "Tilføj kreditter for at holde forbruget kørende." + "description": "Tilføj kreditter for at holde forbruget kørende.", + "billingPage": "faktureringsside" }, "deviceSessions": { "couldNotLoad": "Kunne ikke indlæse sessioner", @@ -2710,7 +2795,10 @@ "restoreFailed": "Kunne ikke gendanne køb. Prøv igen.", "purchaseFailed": "Kunne ikke fuldføre købet.", "purchaseStartFailed": "Kunne ikke starte App Store-købet.", - "purchaseOwnedByAnotherAccount": "Kilo Pass på denne Apple-konto tilhører en anden Kilo-konto." + "purchaseOwnedByAnotherAccount": "Kilo Pass på denne Apple-konto tilhører en anden Kilo-konto.", + "couldNotConnectToAppStore": "Kunne ikke oprette forbindelse til App Store. Tjek din forbindelse, og prøv igen.", + "noMatchingProducts": "App Store returnerede ingen matchende Kilo Pass-produkter.", + "purchaseMissingSignedTransaction": "App Store-købet inkluderede ikke en signeret transaktions-JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Har brug for forbedringer", "sorryTitle": "Vi er kede af at høre det!", "sorryMessage": "Fortæl os venligst, hvad der kan blive bedre. Ingeniøren med ansvar for appen læser hver eneste rapport!", - "emailUs": "Skriv til os" + "emailUs": "Skriv til os", + "emailSubject": "feedback til mobilappen" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ingen kreditaktivitet", "expires": "Udløber {{date}}", "title": "Kreditaktivitet", - "transactionFallback": "Kredittransaktion" + "transactionFallback": "Kredittransaktion", + "category": { + "organization_custom": "Organisationstilpasset", + "parent_to_child_transfer_in": "Indgående overførsel fra forælder til barn", + "parent_to_child_transfer_out": "Udgående overførsel fra forælder til barn", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Regnskabsmæssig justering", + "credits_expired": "Udløbne kreditter" + } }, "inviteMember": { "emailError": "Angiv en gyldig e-mailadresse", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakturaer genereres automatisk hver faktureringscyklus og vises her, når din organisation er faktureret.", "emptyTitle": "Ingen fakturaer", "invoiceFallback": "Faktura", - "statusOpen": "Åben", - "statusPaid": "Betalt", - "statusVoid": "Annulleret", "title": "Fakturaer", "downloadFailed": "Kunne ikke downloade fakturaen. Tjek din forbindelse og prøv igen.", - "sharingUnavailable": "Deling er ikke tilgængelig på denne enhed." + "sharingUnavailable": "Deling er ikke tilgængelig på denne enhed.", + "status": { + "paid": "Betalt", + "open": "Åben", + "void": "Annulleret", + "draft": "Kladde", + "uncollectible": "Uinddrivelig", + "unknown": "Ukendt" + } }, "lowBalanceAlert": { "emailPlaceholder": "navn@virksomhed.dk", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Indsamlede data", "free": "Gratis", - "couldNotUpdateFavorites": "Kunne ikke opdatere favoritter" + "couldNotUpdateFavorites": "Kunne ikke opdatere favoritter", + "thinkingEffort": { + "none": "Ingen", + "minimal": "Minimal", + "low": "Lav", + "medium": "Mellem", + "high": "Høj", + "xhigh": "Ekstra høj", + "max": "Maks" + } } } diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index e80be06977..b7f9440f38 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -382,7 +382,11 @@ "paymentPastDue": "Zahlung überfällig. Bitte aktualisiere deine Zahlungsmethode.", "subscriptionCancels": "Abo endet am {{date}}", "trialDaysRemaining": "Testphase: noch {{remaining}}", - "trialEndingSoon": "Testphase endet bald: {{remaining}}" + "trialEndingSoon": "Testphase endet bald: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Neuigkeiten", @@ -750,7 +754,8 @@ "strongArm": "Starker Arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Diese Instanz kann keine Dateien empfangen." + "remoteSpawnFilesNotSupported": "Diese Instanz kann keine Dateien empfangen.", + "instanceSwitcherTitle": "KiloClaw-Instanz" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "Fehlgeschlagen", "cancelled": "Abgebrochen", "interrupted": "Unterbrochen" - } + }, + "reviewStyle": { + "strict": "Streng", + "balanced": "Ausgewogen", + "lenient": "Milde", + "roast": "Roast" + }, + "focusArea": { + "security": "Sicherheit", + "performance": "Leistung", + "bugs": "Fehler", + "style": "Stil", + "testing": "Tests", + "documentation": "Dokumentation" + }, + "gateThreshold": { + "off": "Aus", + "all": "Alle", + "warning": "Warnung", + "critical": "Kritisch" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer braucht Aufmerksamkeit", + "description": "Code Reviewer wurde deaktiviert, weil Kilo mit einer aktiven GitHub-App-Installation nicht auf dieses Repository zugreifen kann. Aktualisiere die GitHub-App-Installation und aktiviere Code Reviewer anschließend wieder.", + "recoveryLabel": "GitHub-App aktualisieren" + }, + "githubIpAllowList": { + "title": "Code Reviewer braucht Aufmerksamkeit", + "description": "Code Reviewer wurde deaktiviert, weil diese GitHub-Organisation eine IP-Allowlist verwendet, die Kilo blockiert. Kontaktiere hi@kilocode.ai für Hilfe und aktiviere Code Reviewer anschließend wieder.", + "recoveryLabel": "Support kontaktieren" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer braucht Aufmerksamkeit", + "description": "Code Reviewer wurde deaktiviert, weil Kilo für dieses Projekt kein GitLab Project Access Token erstellen kann. Gewähre Maintainer-Zugriff oder aktiviere Project Access Tokens und aktiviere Code Reviewer anschließend wieder.", + "recoveryLabel": "GitLab-Integration aktualisieren" + }, + "byokInvalidKey": { + "title": "Code Reviewer braucht Aufmerksamkeit", + "description": "Code Reviewer wurde deaktiviert, weil der ausgewählte BYOK-API-Schlüssel ungültig, widerrufen oder ohne Berechtigung ist. Aktualisiere den Schlüssel oder wähle ein anderes Modell und aktiviere Code Reviewer anschließend wieder.", + "recoveryLabel": "BYOK-Einstellungen aktualisieren" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer braucht Aufmerksamkeit", + "description": "Code Reviewer wurde deaktiviert, weil das ausgewählte Modell für Cloud-Agent-Sitzungen nicht verfügbar ist. Wähle ein verfügbares Modell und aktiviere Code Reviewer anschließend wieder.", + "recoveryLabel": "Code-Reviewer-Einstellungen aktualisieren" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer braucht Aufmerksamkeit", + "description": "Code Reviewer wurde deaktiviert, weil heute drei Zeitüberschreitungen beim Klonen von Repositories aufgetreten sind. Kontaktiere hi@kilocode.ai für Hilfe und aktiviere Code Reviewer anschließend wieder.", + "recoveryLabel": "Support kontaktieren" + } + }, + "unknownError": "Unbekannter Fehler" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "Das Finding liegt unter der automatischen Schweregradschwelle. Die manuelle Behebung kann weiterhin starten, wenn die Sicherheitsgates bestanden sind.", "beforeEnablement": "Die Analyse wurde abgeschlossen, bevor die automatische Behebung aktiviert wurde. Die manuelle Behebung kann weiterhin starten, wenn die Sicherheitsgates bestanden sind.", "generic": "Die Behebung ist für dieses Finding nicht verfügbar." + }, + "commandFailure": { + "ownerCapReached": "Die Analysekapazität ist voll. Warte, bis eine aktive Analyse abgeschlossen ist, und versuche es dann erneut.", + "githubTokenUnavailable": "Die GitHub-Autorisierung braucht Aufmerksamkeit. Autorisiere die GitHub-App erneut und versuche es anschließend erneut.", + "githubAuthInvalid": "Die GitHub-Autorisierung braucht Aufmerksamkeit. Autorisiere die GitHub-App erneut und versuche es anschließend erneut.", + "findingUnavailable": "Das Finding ist nicht mehr verfügbar. Aktualisiere die Findings und versuche es erneut, wenn es weiterhin offen ist.", + "repositoryUnavailable": "Das Repository ist für die GitHub-App nicht mehr verfügbar. Aktualisiere den Repository-Zugriff und versuche es anschließend erneut.", + "invalidDismissTarget": "Das Finding kann nicht verworfen werden, weil sein Dependabot-Ziel ungültig ist.", + "commandStalled": "Die eingereihte Aktion wurde nicht rechtzeitig abgeschlossen. Wiederhole die Aktion.", + "queueRetriesExhausted": "Die Aktion konnte nach mehreren Versuchen nicht abgeschlossen werden. Wiederhole die Aktion.", + "queueAdmissionFailed": "Die eingereihte Aktion konnte nicht angenommen werden. Wiederhole die Aktion.", + "generic": "Die eingereihte Aktion ist fehlgeschlagen. Wiederhole die Aktion." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Oberflächlich", + "deep": "Tief" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "{{name}} zu Favoriten hinzufügen", "removeFromFavorites": "{{name}} aus Favoriten entfernen", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Mittel" + "thinkingEffortMedium": "Mittel", + "sessionModel": "Sitzungsmodell" }, "attachmentPreview": { "openFailedRetry": "Datei konnte nicht geöffnet werden. Bitte versuche es erneut.", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "Guthaben hinzufügen", - "description": "Guthaben hinzufügen, damit die Nutzung weiterläuft." + "description": "Guthaben hinzufügen, damit die Nutzung weiterläuft.", + "billingPage": "Abrechnungsseite" }, "deviceSessions": { "couldNotLoad": "Sitzungen konnten nicht geladen werden", @@ -2271,7 +2348,10 @@ "restoreFailed": "Käufe konnten nicht wiederhergestellt werden. Versuche es erneut.", "purchaseFailed": "Der Kauf konnte nicht abgeschlossen werden.", "purchaseStartFailed": "Der App-Store-Kauf konnte nicht gestartet werden.", - "purchaseOwnedByAnotherAccount": "Der Kilo Pass auf diesem Apple-Konto gehört zu einem anderen Kilo-Konto." + "purchaseOwnedByAnotherAccount": "Der Kilo Pass auf diesem Apple-Konto gehört zu einem anderen Kilo-Konto.", + "couldNotConnectToAppStore": "Keine Verbindung zum App Store möglich. Überprüfe deine Verbindung und versuche es erneut.", + "noMatchingProducts": "Der App Store hat keine passenden Kilo-Pass-Produkte zurückgegeben.", + "purchaseMissingSignedTransaction": "Der App-Store-Kauf enthielt keine signierte Transaktions-JWS." }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "{{label}} ausgewählt, tippen zum Ändern der Auswahl", "tapToComment": "{{label}}, tippen zum Kommentieren", - "truncationBanner": "Zeigt die ersten {{limit}} von {{total}} geänderten Dateien — GitHub-API-Limit" + "truncationBanner": "Zeigt die ersten {{limit}} von {{total}} geänderten Dateien — GitHub-API-Limit", + "statusAdded": "Hinzugefügt", + "statusContext": "Kontext", + "statusDeleted": "Gelöscht" }, "linkPasteClipboardEmpty": "Zwischenablage ist leer", "linkPasteNotAPullRequest": "Kein GitHub-Pull-Request-Link", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "Dieses Review kann nicht gesendet werden. Der PR könnte sich geändert haben, oder du kannst deinen eigenen Pull Request nicht prüfen.", "couldNotPostComment": "Kommentar konnte nicht veröffentlicht werden.", "couldNotSubmitReview": "Review konnte nicht gesendet werden. Prüfe deine Verbindung und versuche es erneut." + }, + "operation": { + "couldNotReply": "Antwort konnte nicht gesendet werden.", + "couldNotCompleteAction": "Diese Aktion konnte nicht abgeschlossen werden.", + "mergeResultDefaultError": "GitHub hat die Zusammenführung nicht abgeschlossen." } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "Keine Guthabenaktivität", "expires": "Läuft ab am {{date}}", "title": "Guthabenaktivität", - "transactionFallback": "Guthabentransaktion" + "transactionFallback": "Guthabentransaktion", + "category": { + "organization_custom": "Organisationsspezifisch", + "parent_to_child_transfer_in": "Eingehende Übertragung von übergeordneter zu untergeordneter Organisation", + "parent_to_child_transfer_out": "Ausgehende Übertragung von übergeordneter zu untergeordneter Organisation", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Buchhaltungsanpassung", + "credits_expired": "Abgelaufene Credits" + } }, "hub": { "balance": "Guthaben", @@ -2837,11 +2935,16 @@ "emptyTitle": "Keine Rechnungen", "invoiceFallback": "Rechnung", "title": "Rechnungen", - "statusPaid": "Bezahlt", - "statusOpen": "Offen", - "statusVoid": "Ungültig", "downloadFailed": "Rechnung konnte nicht heruntergeladen werden. Prüfe deine Verbindung und versuche es erneut.", - "sharingUnavailable": "Teilen ist auf diesem Gerät nicht verfügbar." + "sharingUnavailable": "Teilen ist auf diesem Gerät nicht verfügbar.", + "status": { + "paid": "Bezahlt", + "open": "Offen", + "void": "Ungültig", + "draft": "Entwurf", + "uncollectible": "Nicht einziehbar", + "unknown": "Unbekannt" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@firma.de", @@ -2941,7 +3044,8 @@ "promptTitle": "Wie gefällt dir die Kilo-App?", "rateKilo": "Kilo bewerten", "sorryMessage": "Bitte sag uns, was besser werden muss. Der für die App zuständige Entwickler liest jeden einzelnen Bericht!", - "sorryTitle": "Das tut uns leid!" + "sorryTitle": "Das tut uns leid!", + "emailSubject": "Feedback zur Mobile-App" }, "authErrors": { "emailAlreadyUsed": "Ein Konto mit dieser E-Mail existiert bereits mit einer anderen Anmeldemethode. Versuche eine andere Methode oder nutze „$t(login.moreSignInOptions)“.", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Erfasste Daten", "free": "Kostenlos", - "couldNotUpdateFavorites": "Favoriten konnten nicht aktualisiert werden" + "couldNotUpdateFavorites": "Favoriten konnten nicht aktualisiert werden", + "thinkingEffort": { + "none": "Keine", + "minimal": "Minimal", + "low": "Niedrig", + "medium": "Mittel", + "high": "Hoch", + "xhigh": "Extra hoch", + "max": "Max" + } } } diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index c3d777f85c..4fe25127c3 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Επιλεγμένο {{label}}, πατήστε για αλλαγή επιλογής", "tapToComment": "{{label}}, πατήστε για σχόλιο", - "truncationBanner": "Εμφάνιση των πρώτων {{limit}} από {{total}} αλλαγμένα αρχεία — όριο API του GitHub" + "truncationBanner": "Εμφάνιση των πρώτων {{limit}} από {{total}} αλλαγμένα αρχεία — όριο API του GitHub", + "statusAdded": "Προστέθηκε", + "statusContext": "Πλαίσιο", + "statusDeleted": "Διαγράφηκε" }, "linkPasteClipboardEmpty": "Το πρόχειρο είναι άδειο", "linkPasteNotAPullRequest": "Δεν είναι σύνδεσμος pull request του GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Αυτή η αναθεώρηση δεν μπορεί να υποβληθεί ως έχει. Το PR μπορεί να έχει αλλάξει ή δεν μπορείτε να αναθεωρήσετε το δικό σας pull request.", "couldNotPostComment": "Δεν ήταν δυνατή η δημοσίευση του σχολίου.", "couldNotSubmitReview": "Δεν ήταν δυνατή η υποβολή της αναθεώρησης. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά." + }, + "operation": { + "couldNotReply": "Δεν ήταν δυνατή η απάντηση.", + "couldNotCompleteAction": "Δεν ήταν δυνατή η ολοκλήρωση αυτής της ενέργειας.", + "mergeResultDefaultError": "Το GitHub δεν ολοκλήρωσε τη συγχώνευση." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Εκπρόθεσμη πληρωμή. Ενημερώστε τη μέθοδο πληρωμής σας.", "subscriptionCancels": "Η συνδρομή ακυρώνεται στις {{date}}", "trialDaysRemaining": "Δοκιμή: {{remaining}} απομένουν", - "trialEndingSoon": "Η δοκιμή λήγει σύντομα: {{remaining}}" + "trialEndingSoon": "Η δοκιμή λήγει σύντομα: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Τι νέο υπάρχει", @@ -1189,7 +1201,8 @@ "strongArm": "Δυνατό χέρι", "talisman": "Φυλαχτό" }, - "remoteSpawnFilesNotSupported": "Αυτό το instance δεν μπορεί να λάβει αρχεία." + "remoteSpawnFilesNotSupported": "Αυτό το instance δεν μπορεί να λάβει αρχεία.", + "instanceSwitcherTitle": "Παρουσία KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Απέτυχε", "cancelled": "Ακυρώθηκε", "interrupted": "Διακόπηκε" - } + }, + "reviewStyle": { + "strict": "Αυστηρή", + "balanced": "Ισορροπημένη", + "lenient": "Επιεικής", + "roast": "Roast" + }, + "focusArea": { + "security": "Ασφάλεια", + "performance": "Απόδοση", + "bugs": "Σφάλματα", + "style": "Στυλ", + "testing": "Δοκιμές", + "documentation": "Τεκμηρίωση" + }, + "gateThreshold": { + "off": "Απενεργοποιημένο", + "all": "Όλα", + "warning": "Προειδοποίηση", + "critical": "Κρίσιμο" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Ο Code Reviewer χρειάζεται προσοχή", + "description": "Ο Code Reviewer απενεργοποιήθηκε επειδή το Kilo δεν μπορεί να αποκτήσει πρόσβαση σε αυτό το repository με ενεργή εγκατάσταση της εφαρμογής GitHub. Ενημερώστε την εγκατάσταση της εφαρμογής GitHub και ενεργοποιήστε ξανά τον Code Reviewer.", + "recoveryLabel": "Ενημέρωση εφαρμογής GitHub" + }, + "githubIpAllowList": { + "title": "Ο Code Reviewer χρειάζεται προσοχή", + "description": "Ο Code Reviewer απενεργοποιήθηκε επειδή αυτός ο οργανισμός GitHub χρησιμοποιεί λίστα επιτρεπόμενων διευθύνσεων IP που αποκλείει το Kilo. Επικοινωνήστε με το hi@kilocode.ai για βοήθεια και ενεργοποιήστε ξανά τον Code Reviewer.", + "recoveryLabel": "Επικοινωνία με την υποστήριξη" + }, + "gitlabProjectAccessRequired": { + "title": "Ο Code Reviewer χρειάζεται προσοχή", + "description": "Ο Code Reviewer απενεργοποιήθηκε επειδή το Kilo δεν μπορεί να δημιουργήσει GitLab Project Access Token για αυτό το έργο. Παραχωρήστε πρόσβαση Maintainer ή ενεργοποιήστε τα Project Access Tokens και ενεργοποιήστε ξανά τον Code Reviewer.", + "recoveryLabel": "Ενημέρωση ενσωμάτωσης GitLab" + }, + "byokInvalidKey": { + "title": "Ο Code Reviewer χρειάζεται προσοχή", + "description": "Ο Code Reviewer απενεργοποιήθηκε επειδή το επιλεγμένο κλειδί API BYOK είναι μη έγκυρο, έχει ανακληθεί ή δεν διαθέτει άδεια. Ενημερώστε το κλειδί ή επιλέξτε άλλο μοντέλο και ενεργοποιήστε ξανά τον Code Reviewer.", + "recoveryLabel": "Ενημέρωση ρυθμίσεων BYOK" + }, + "selectedModelUnavailable": { + "title": "Ο Code Reviewer χρειάζεται προσοχή", + "description": "Ο Code Reviewer απενεργοποιήθηκε επειδή το επιλεγμένο μοντέλο δεν είναι διαθέσιμο για συνεδρίες cloud agent. Επιλέξτε ένα διαθέσιμο μοντέλο και ενεργοποιήστε ξανά τον Code Reviewer.", + "recoveryLabel": "Ενημέρωση ρυθμίσεων Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Ο Code Reviewer χρειάζεται προσοχή", + "description": "Ο Code Reviewer απενεργοποιήθηκε μετά από τρεις λήξεις χρόνου κλωνοποίησης αποθετηρίου σήμερα. Επικοινωνήστε με το hi@kilocode.ai για βοήθεια και ενεργοποιήστε ξανά τον Code Reviewer.", + "recoveryLabel": "Επικοινωνία με την υποστήριξη" + } + }, + "unknownError": "Άγνωστο σφάλμα" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Το εύρημα είναι κάτω από το αυτόματο όριο σοβαρότητας. Η χειροκίνητη αποκατάσταση μπορεί ακόμα να ξεκινήσει όταν περάσουν οι έλεγχοι ασφάλειας.", "beforeEnablement": "Η ανάλυση ολοκληρώθηκε πριν ενεργοποιηθεί η αυτόματη αποκατάσταση. Η χειροκίνητη αποκατάσταση μπορεί ακόμα να ξεκινήσει όταν περάσουν οι έλεγχοι ασφάλειας.", "generic": "Η αποκατάσταση δεν είναι διαθέσιμη για αυτό το εύρημα." + }, + "commandFailure": { + "ownerCapReached": "Η χωρητικότητα ανάλυσης είναι πλήρης. Περιμένετε να ολοκληρωθεί μια ενεργή ανάλυση και δοκιμάστε ξανά.", + "githubTokenUnavailable": "Η εξουσιοδότηση GitHub χρειάζεται προσοχή. Εξουσιοδοτήστε ξανά την εφαρμογή GitHub και δοκιμάστε ξανά.", + "githubAuthInvalid": "Η εξουσιοδότηση GitHub χρειάζεται προσοχή. Εξουσιοδοτήστε ξανά την εφαρμογή GitHub και δοκιμάστε ξανά.", + "findingUnavailable": "Το εύρημα δεν είναι πλέον διαθέσιμο. Ανανεώστε τα ευρήματα και δοκιμάστε ξανά αν παραμένει ανοιχτό.", + "repositoryUnavailable": "Το αποθετήριο δεν είναι πλέον διαθέσιμο στην εφαρμογή GitHub. Ανανεώστε την πρόσβαση στο αποθετήριο και δοκιμάστε ξανά.", + "invalidDismissTarget": "Το εύρημα δεν μπορεί να απορριφθεί επειδή ο στόχος του Dependabot δεν είναι έγκυρος.", + "commandStalled": "Η ενέργεια στην αναμονή δεν ολοκληρώθηκε εγκαίρως. Επαναλάβετε την ενέργεια.", + "queueRetriesExhausted": "Η ενέργεια δεν μπόρεσε να ολοκληρωθεί μετά από πολλές προσπάθειες. Επαναλάβετε την ενέργεια.", + "queueAdmissionFailed": "Δεν ήταν δυνατή η εισαγωγή της ενέργειας στην αναμονή. Επαναλάβετε την ενέργεια.", + "generic": "Η ενέργεια στην αναμονή απέτυχε. Επαναλάβετε την ενέργεια." + }, + "analysisMode": { + "auto": "Αυτόματη", + "shallow": "Επιφανειακή", + "deep": "Εις βάθος" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Προσθήκη του {{name}} στα αγαπημένα", "removeFromFavorites": "Αφαίρεση του {{name}} από τα αγαπημένα", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Μοντέλο συνεδρίας" }, "attachmentPreview": { "openFailedRetry": "Αποτυχία ανοίγματος αρχείου. Δοκιμάστε ξανά.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Προσθήκη πιστώσεων", - "description": "Προσθέστε πιστώσεις για να συνεχίσει η χρήση." + "description": "Προσθέστε πιστώσεις για να συνεχίσει η χρήση.", + "billingPage": "σελίδα χρέωσης" }, "deviceSessions": { "couldNotLoad": "Δεν ήταν δυνατή η φόρτωση συνεδριών", @@ -2710,7 +2795,10 @@ "restoreFailed": "Δεν ήταν δυνατή η επαναφορά των αγορών. Δοκιμάστε ξανά.", "purchaseFailed": "Δεν ήταν δυνατή η ολοκλήρωση της αγοράς.", "purchaseStartFailed": "Δεν ήταν δυνατή η έναρξη της αγοράς από το App Store.", - "purchaseOwnedByAnotherAccount": "Το Kilo Pass σε αυτόν τον Λογαριασμό Apple ανήκει σε διαφορετικό λογαριασμό Kilo." + "purchaseOwnedByAnotherAccount": "Το Kilo Pass σε αυτόν τον Λογαριασμό Apple ανήκει σε διαφορετικό λογαριασμό Kilo.", + "couldNotConnectToAppStore": "Δεν ήταν δυνατή η σύνδεση με το App Store. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά.", + "noMatchingProducts": "Το App Store δεν επέστρεψε προϊόντα Kilo Pass που να ταιριάζουν.", + "purchaseMissingSignedTransaction": "Η αγορά στο App Store δεν περιλάμβανε υπογεγραμμένη JWS συναλλαγής." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Χρειάζεται βελτίωση", "sorryTitle": "Λυπούμαστε που το ακούμε!", "sorryMessage": "Παρακαλούμε ενημερώστε μας τι πρέπει να βελτιωθεί. Ο μηχανικός που είναι υπεύθυνος για την εφαρμογή διαβάζει κάθε αναφορά!", - "emailUs": "Στείλτε μας email" + "emailUs": "Στείλτε μας email", + "emailSubject": "σχόλια για την εφαρμογή για κινητά" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Καμία δραστηριότητα πιστώσεων", "expires": "Λήγει {{date}}", "title": "Δραστηριότητα πιστώσεων", - "transactionFallback": "Συναλλαγή πιστώσεων" + "transactionFallback": "Συναλλαγή πιστώσεων", + "category": { + "organization_custom": "Προσαρμοσμένο οργανισμού", + "parent_to_child_transfer_in": "Εισερχόμενη μεταφορά από γονικό σε θυγατρικό", + "parent_to_child_transfer_out": "Εξερχόμενη μεταφορά από γονικό σε θυγατρικό", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Λογιστική προσαρμογή", + "credits_expired": "Ληγμένες πιστώσεις" + } }, "inviteMember": { "emailError": "Εισαγάγετε μια έγκυρη διεύθυνση email", @@ -2840,12 +2939,17 @@ "emptyDescription": "Τα τιμολόγια δημιουργούνται αυτόματα κάθε κύκλο χρέωσης και θα εμφανίζονται εδώ μόλις χρεωθεί ο οργανισμός σας.", "emptyTitle": "Κανένα τιμολόγιο", "invoiceFallback": "Τιμολόγιο", - "statusOpen": "Ανοιχτό", - "statusPaid": "Πληρωμένο", - "statusVoid": "Άκυρο", "title": "Τιμολόγια", "downloadFailed": "Δεν ήταν δυνατή η λήψη του τιμολογίου. Ελέγξτε τη σύνδεσή σας και δοκιμάστε ξανά.", - "sharingUnavailable": "Η κοινή χρήση δεν είναι διαθέσιμη σε αυτή τη συσκευή." + "sharingUnavailable": "Η κοινή χρήση δεν είναι διαθέσιμη σε αυτή τη συσκευή.", + "status": { + "paid": "Πληρωμένο", + "open": "Ανοιχτό", + "void": "Άκυρο", + "draft": "Πρόχειρο", + "uncollectible": "Μη εισπράξιμο", + "unknown": "Άγνωστο" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Δεδομένα που συλλέγονται", "free": "Δωρεάν", - "couldNotUpdateFavorites": "Δεν ήταν δυνατή η ενημέρωση των αγαπημένων" + "couldNotUpdateFavorites": "Δεν ήταν δυνατή η ενημέρωση των αγαπημένων", + "thinkingEffort": { + "none": "Καθόλου", + "minimal": "Ελάχιστη", + "low": "Χαμηλή", + "medium": "Μεσαία", + "high": "Υψηλή", + "xhigh": "Πολύ υψηλή", + "max": "Μέγιστη" + } } } diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index a733967664..69adf366e9 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Selected {{label}}, tap to change selection", "tapToComment": "{{label}}, tap to comment", - "truncationBanner": "Showing the first {{limit}} of {{total}} changed files — GitHub API limit" + "truncationBanner": "Showing the first {{limit}} of {{total}} changed files — GitHub API limit", + "statusAdded": "Added", + "statusContext": "Context", + "statusDeleted": "Deleted" }, "linkPasteClipboardEmpty": "Clipboard is empty", "linkPasteNotAPullRequest": "Not a GitHub pull request link", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "This review can't be submitted as is. The PR may have changed, or you can't review your own pull request.", "couldNotPostComment": "Could not post comment.", "couldNotSubmitReview": "Could not submit review. Check your connection and try again." + }, + "operation": { + "couldNotReply": "Could not reply.", + "couldNotCompleteAction": "Could not complete this action.", + "mergeResultDefaultError": "GitHub did not complete the merge." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Payment past due. Please update your payment method.", "subscriptionCancels": "Subscription cancels {{date}}", "trialDaysRemaining": "Trial: {{remaining}} remaining", - "trialEndingSoon": "Trial ending soon: {{remaining}}" + "trialEndingSoon": "Trial ending soon: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "What's New", @@ -1189,7 +1201,8 @@ "strongArm": "Strong arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "This instance cannot receive files." + "remoteSpawnFilesNotSupported": "This instance cannot receive files.", + "instanceSwitcherTitle": "KiloClaw instance" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Failed", "cancelled": "Cancelled", "interrupted": "Interrupted" - } + }, + "reviewStyle": { + "strict": "Strict", + "balanced": "Balanced", + "lenient": "Lenient", + "roast": "Roast" + }, + "focusArea": { + "security": "Security", + "performance": "Performance", + "bugs": "Bugs", + "style": "Style", + "testing": "Testing", + "documentation": "Documentation" + }, + "gateThreshold": { + "off": "Off", + "all": "All", + "warning": "Warning", + "critical": "Critical" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer needs attention", + "description": "Code Reviewer was disabled because Kilo cannot access this repository with an active GitHub App installation. Update the GitHub App installation, then enable Code Reviewer again.", + "recoveryLabel": "Update GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer needs attention", + "description": "Code Reviewer was disabled because this GitHub organization uses an IP allow list that blocks Kilo. Contact hi@kilocode.ai for help, then enable Code Reviewer again.", + "recoveryLabel": "Contact support" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer needs attention", + "description": "Code Reviewer was disabled because Kilo cannot create a GitLab Project Access Token for this project. Grant Maintainer access or enable Project Access Tokens, then enable Code Reviewer again.", + "recoveryLabel": "Update GitLab integration" + }, + "byokInvalidKey": { + "title": "Code Reviewer needs attention", + "description": "Code Reviewer was disabled because the selected BYOK API key is invalid, revoked, or lacks permission. Update the key or choose another model, then enable Code Reviewer again.", + "recoveryLabel": "Update BYOK settings" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer needs attention", + "description": "Code Reviewer was disabled because the selected model is not available for cloud agent sessions. Choose an available model, then enable Code Reviewer again.", + "recoveryLabel": "Update Code Reviewer settings" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer needs attention", + "description": "Code Reviewer was disabled after three repository clone timeouts today. Contact hi@kilocode.ai for help, then enable Code Reviewer again.", + "recoveryLabel": "Contact support" + } + }, + "unknownError": "Unknown error" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Finding is below automatic severity threshold. Manual remediation can still start when safety gates pass.", "beforeEnablement": "Analysis completed before Auto Remediation was enabled. Manual remediation can still start when safety gates pass.", "generic": "Remediation is unavailable for this finding." + }, + "commandFailure": { + "ownerCapReached": "Analysis capacity is full. Wait for an active analysis to finish, then retry.", + "githubTokenUnavailable": "GitHub authorization needs attention. Re-authorize GitHub App, then retry.", + "githubAuthInvalid": "GitHub authorization needs attention. Re-authorize GitHub App, then retry.", + "findingUnavailable": "Finding is no longer available. Refresh findings and retry if it remains open.", + "repositoryUnavailable": "Repository is no longer available to GitHub App. Refresh repository access, then retry.", + "invalidDismissTarget": "Finding cannot be dismissed because its Dependabot target is invalid.", + "commandStalled": "Queued action did not finish in time. Retry action.", + "queueRetriesExhausted": "Action could not be completed after several attempts. Retry action.", + "queueAdmissionFailed": "Queued action could not be admitted. Retry action.", + "generic": "Queued action failed. Retry action." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Shallow", + "deep": "Deep" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Add {{name}} to favorites", "removeFromFavorites": "Remove {{name}} from favorites", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Session model" }, "attachmentPreview": { "openFailedRetry": "Failed to open file. Please try again.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Add credits", - "description": "Add credits to keep usage running." + "description": "Add credits to keep usage running.", + "billingPage": "billing page" }, "deviceSessions": { "couldNotLoad": "Could not load sessions", @@ -2710,7 +2795,10 @@ "restoreFailed": "Failed to restore purchases. Try again.", "purchaseFailed": "Failed to complete purchase.", "purchaseStartFailed": "Failed to start App Store purchase.", - "purchaseOwnedByAnotherAccount": "The Kilo Pass on this Apple Account belongs to a different Kilo account." + "purchaseOwnedByAnotherAccount": "The Kilo Pass on this Apple Account belongs to a different Kilo account.", + "couldNotConnectToAppStore": "Could not connect to the App Store. Check your connection and try again.", + "noMatchingProducts": "No matching Kilo Pass products were returned by App Store.", + "purchaseMissingSignedTransaction": "App Store purchase did not include a signed transaction JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Needs work", "sorryTitle": "We're sorry to hear that!", "sorryMessage": "Please let us know what needs to be better. The engineer in charge of the app reads every single report!", - "emailUs": "Email us" + "emailUs": "Email us", + "emailSubject": "mobile app feedback" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "No credit activity", "expires": "Expires {{date}}", "title": "Credit activity", - "transactionFallback": "Credit transaction" + "transactionFallback": "Credit transaction", + "category": { + "organization_custom": "Organization custom", + "parent_to_child_transfer_in": "Parent to child transfer in", + "parent_to_child_transfer_out": "Parent to child transfer out", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Accounting adjustment", + "credits_expired": "Credits expired" + } }, "inviteMember": { "emailError": "Enter a valid email address", @@ -2840,12 +2939,17 @@ "emptyDescription": "Invoices are generated automatically each billing cycle and will appear here once your organization is billed.", "emptyTitle": "No invoices", "invoiceFallback": "Invoice", - "statusOpen": "Open", - "statusPaid": "Paid", - "statusVoid": "Void", "title": "Invoices", "downloadFailed": "Couldn't download invoice. Check your connection and try again.", - "sharingUnavailable": "Sharing is not available on this device." + "sharingUnavailable": "Sharing is not available on this device.", + "status": { + "paid": "Paid", + "open": "Open", + "void": "Void", + "draft": "Draft", + "uncollectible": "Uncollectible", + "unknown": "Unknown" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data collected", "free": "Free", - "couldNotUpdateFavorites": "Could not update favorites" + "couldNotUpdateFavorites": "Could not update favorites", + "thinkingEffort": { + "none": "None", + "minimal": "Minimal", + "low": "Low", + "medium": "Medium", + "high": "High", + "xhigh": "Extra High", + "max": "Max" + } } } diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index 0709f9d79c..a6e48bd07e 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -383,7 +383,11 @@ "paymentPastDue": "Pago vencido. Actualiza tu método de pago.", "subscriptionCancels": "La suscripción se cancela el {{date}}", "trialDaysRemaining": "Prueba: {{remaining}} restantes", - "trialEndingSoon": "La prueba termina pronto: {{remaining}}" + "trialEndingSoon": "La prueba termina pronto: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Novedades", @@ -752,7 +756,8 @@ "strongArm": "Brazo fuerte", "talisman": "Talismán" }, - "remoteSpawnFilesNotSupported": "Esta instancia no puede recibir archivos." + "remoteSpawnFilesNotSupported": "Esta instancia no puede recibir archivos.", + "instanceSwitcherTitle": "Instancia de KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -950,7 +955,60 @@ "failed": "Fallido", "cancelled": "Cancelado", "interrupted": "Interrumpido" - } + }, + "reviewStyle": { + "strict": "Estricto", + "balanced": "Equilibrado", + "lenient": "Flexible", + "roast": "Roast" + }, + "focusArea": { + "security": "Seguridad", + "performance": "Rendimiento", + "bugs": "Errores", + "style": "Estilo", + "testing": "Pruebas", + "documentation": "Documentación" + }, + "gateThreshold": { + "off": "Desactivado", + "all": "Todos", + "warning": "Advertencia", + "critical": "Crítico" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer necesita atención", + "description": "Code Reviewer se desactivó porque Kilo no puede acceder a este repositorio con una instalación activa de la GitHub App. Actualiza la instalación de la GitHub App y vuelve a activar Code Reviewer.", + "recoveryLabel": "Actualizar GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer necesita atención", + "description": "Code Reviewer se desactivó porque esta organización de GitHub usa una lista de IP permitidas que bloquea a Kilo. Contacta con hi@kilocode.ai para obtener ayuda y vuelve a activar Code Reviewer.", + "recoveryLabel": "Contactar con el soporte" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer necesita atención", + "description": "Code Reviewer se desactivó porque Kilo no puede crear un GitLab Project Access Token para este proyecto. Concede acceso de Maintainer o activa los Project Access Tokens y vuelve a activar Code Reviewer.", + "recoveryLabel": "Actualizar la integración de GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer necesita atención", + "description": "Code Reviewer se desactivó porque la clave de API BYOK seleccionada no es válida, fue revocada o no tiene permisos. Actualiza la clave o elige otro modelo y vuelve a activar Code Reviewer.", + "recoveryLabel": "Actualizar la configuración de BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer necesita atención", + "description": "Code Reviewer se desactivó porque el modelo seleccionado no está disponible para sesiones de agente en la nube. Elige un modelo disponible y vuelve a activar Code Reviewer.", + "recoveryLabel": "Actualizar la configuración de Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer necesita atención", + "description": "Code Reviewer se desactivó después de tres tiempos de espera de clonación de repositorio hoy. Contacta con hi@kilocode.ai para obtener ayuda y vuelve a activar Code Reviewer.", + "recoveryLabel": "Contactar con el soporte" + } + }, + "unknownError": "Error desconocido" }, "securityAgent": { "filter": { @@ -1494,6 +1552,23 @@ "belowThreshold": "El hallazgo está por debajo del umbral de severidad automático. La corrección manual aún puede iniciarse cuando se superen los controles de seguridad.", "beforeEnablement": "El análisis se completó antes de que se activara la corrección automática. La corrección manual aún puede iniciarse cuando se superen los controles de seguridad.", "generic": "La corrección no está disponible para este hallazgo." + }, + "commandFailure": { + "ownerCapReached": "La capacidad de análisis está llena. Espera a que termine un análisis activo y vuelve a intentarlo.", + "githubTokenUnavailable": "La autorización de GitHub necesita atención. Vuelve a autorizar la GitHub App e inténtalo de nuevo.", + "githubAuthInvalid": "La autorización de GitHub necesita atención. Vuelve a autorizar la GitHub App e inténtalo de nuevo.", + "findingUnavailable": "El hallazgo ya no está disponible. Actualiza los hallazgos y vuelve a intentarlo si sigue abierto.", + "repositoryUnavailable": "El repositorio ya no está disponible para la GitHub App. Actualiza el acceso al repositorio e inténtalo de nuevo.", + "invalidDismissTarget": "El hallazgo no se puede descartar porque su objetivo de Dependabot no es válido.", + "commandStalled": "La acción en cola no terminó a tiempo. Vuelve a intentar la acción.", + "queueRetriesExhausted": "La acción no se pudo completar tras varios intentos. Vuelve a intentar la acción.", + "queueAdmissionFailed": "No se pudo admitir la acción en cola. Vuelve a intentar la acción.", + "generic": "La acción en cola falló. Vuelve a intentar la acción." + }, + "analysisMode": { + "auto": "Automático", + "shallow": "Superficial", + "deep": "Profundo" } }, "agents": { @@ -1963,7 +2038,8 @@ "addToFavorites": "Añadir {{name}} a favoritos", "removeFromFavorites": "Quitar {{name}} de favoritos", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Modelo de sesión" }, "attachmentPreview": { "openFailedRetry": "No se pudo abrir el archivo. Inténtalo de nuevo.", @@ -2096,7 +2172,8 @@ }, "addCredits": { "cta": "Añadir créditos", - "description": "Añade créditos para que el uso siga funcionando." + "description": "Añade créditos para que el uso siga funcionando.", + "billingPage": "página de facturación" }, "deviceSessions": { "couldNotLoad": "No se pudieron cargar las sesiones", @@ -2284,7 +2361,10 @@ "restoreFailed": "No se pudieron restaurar las compras. Inténtalo de nuevo.", "purchaseFailed": "No se pudo completar la compra.", "purchaseStartFailed": "No se pudo iniciar la compra de App Store.", - "purchaseOwnedByAnotherAccount": "El Kilo Pass de esta cuenta de Apple pertenece a una cuenta de Kilo diferente." + "purchaseOwnedByAnotherAccount": "El Kilo Pass de esta cuenta de Apple pertenece a una cuenta de Kilo diferente.", + "couldNotConnectToAppStore": "No se pudo conectar con el App Store. Comprueba tu conexión y vuelve a intentarlo.", + "noMatchingProducts": "El App Store no devolvió productos de Kilo Pass que coincidieran.", + "purchaseMissingSignedTransaction": "La compra del App Store no incluía una JWS de transacción firmada." }, "consent": { "kilo": "Kilo", @@ -2799,7 +2879,10 @@ "diff": { "selectedTapToChange": "Seleccionado {{label}}, toca para cambiar la selección", "tapToComment": "{{label}}, toca para comentar", - "truncationBanner": "Mostrando los primeros {{limit}} de {{total}} archivos modificados — límite de la API de GitHub" + "truncationBanner": "Mostrando los primeros {{limit}} de {{total}} archivos modificados — límite de la API de GitHub", + "statusAdded": "Añadido", + "statusContext": "Contexto", + "statusDeleted": "Eliminado" }, "linkPasteClipboardEmpty": "El portapapeles está vacío", "linkPasteNotAPullRequest": "No es un enlace de pull request de GitHub", @@ -2813,6 +2896,11 @@ "reviewNotSubmitted": "Esta revisión no se puede enviar tal como está. Puede que la PR haya cambiado o no puedes revisar tu propia pull request.", "couldNotPostComment": "No se pudo publicar el comentario.", "couldNotSubmitReview": "No se pudo enviar la revisión. Comprueba tu conexión e inténtalo de nuevo." + }, + "operation": { + "couldNotReply": "No se pudo responder.", + "couldNotCompleteAction": "No se pudo completar esta acción.", + "mergeResultDefaultError": "GitHub no completó la fusión." } }, "organization": { @@ -2830,7 +2918,17 @@ "emptyTitle": "Sin actividad de créditos", "expires": "Caduca {{date}}", "title": "Actividad de créditos", - "transactionFallback": "Transacción de créditos" + "transactionFallback": "Transacción de créditos", + "category": { + "organization_custom": "Personalizado de organización", + "parent_to_child_transfer_in": "Transferencia entrante de la organización principal a la secundaria", + "parent_to_child_transfer_out": "Transferencia saliente de la organización principal a la secundaria", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Ajuste contable", + "credits_expired": "Créditos caducados" + } }, "hub": { "balance": "Saldo", @@ -2857,11 +2955,16 @@ "emptyTitle": "Sin facturas", "invoiceFallback": "Factura", "title": "Facturas", - "statusPaid": "Pagada", - "statusOpen": "Abierta", - "statusVoid": "Anulada", "downloadFailed": "No se pudo descargar la factura. Comprueba tu conexión e inténtalo de nuevo.", - "sharingUnavailable": "El uso compartido no está disponible en este dispositivo." + "sharingUnavailable": "El uso compartido no está disponible en este dispositivo.", + "status": { + "paid": "Pagada", + "open": "Abierta", + "void": "Anulada", + "draft": "Borrador", + "uncollectible": "No cobrable", + "unknown": "Desconocido" + } }, "lowBalanceAlert": { "emailPlaceholder": "nombre@empresa.com", @@ -2962,7 +3065,8 @@ "promptTitle": "¿Qué te parece la app de Kilo?", "rateKilo": "Valora Kilo", "sorryMessage": "Cuéntanos qué se puede mejorar. ¡El ingeniero responsable de la app lee todos los informes!", - "sorryTitle": "¡Lamentamos oírlo!" + "sorryTitle": "¡Lamentamos oírlo!", + "emailSubject": "comentarios sobre la aplicación móvil" }, "authErrors": { "emailAlreadyUsed": "Ya existe una cuenta con este correo, pero con otro método de inicio de sesión. Prueba otro método o usa '$t(login.moreSignInOptions)'.", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Datos recopilados", "free": "Gratis", - "couldNotUpdateFavorites": "No se pudieron actualizar los favoritos" + "couldNotUpdateFavorites": "No se pudieron actualizar los favoritos", + "thinkingEffort": { + "none": "Ninguno", + "minimal": "Mínimo", + "low": "Bajo", + "medium": "Medio", + "high": "Alto", + "xhigh": "Muy alto", + "max": "Máximo" + } } } diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index a0fc6a9b60..38b4a9baaf 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Valitud {{label}}, puuduta valiku muutmiseks", "tapToComment": "{{label}}, puuduta kommenteerimiseks", - "truncationBanner": "Kuvatakse esimesed {{limit}} muudetud faili kokku {{total}}-st — GitHubi API piirang" + "truncationBanner": "Kuvatakse esimesed {{limit}} muudetud faili kokku {{total}}-st — GitHubi API piirang", + "statusAdded": "Lisatud", + "statusContext": "Kontekst", + "statusDeleted": "Kustutatud" }, "linkPasteClipboardEmpty": "Lõikelaud on tühi", "linkPasteNotAPullRequest": "Pole GitHub pull requesti link", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Seda ülevaadet ei saa sellisel kujul esitada. PR võis muutuda või ei saa sa oma pull request'i üle vaadata.", "couldNotPostComment": "Kommentaari ei õnnestunud postitada.", "couldNotSubmitReview": "Ülevaate esitamine ebaõnnestus. Kontrolli ühendust ja proovi uuesti." + }, + "operation": { + "couldNotReply": "Vastamine ebaõnnestus.", + "couldNotCompleteAction": "Seda toimingut ei õnnestunud lõpule viia.", + "mergeResultDefaultError": "GitHub ei lõpetanud ühendamist." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Makse on ületähtajal. Palun uuendage oma makseviisi.", "subscriptionCancels": "Tellimus tühistub {{date}}", "trialDaysRemaining": "Prooviperiood: {{remaining}} jäänud", - "trialEndingSoon": "Prooviperiood lõpeb varsti: {{remaining}}" + "trialEndingSoon": "Prooviperiood lõpeb varsti: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Mis on uut", @@ -1189,7 +1201,8 @@ "strongArm": "Tugev käsi", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "See instants ei saa faile vastu võtta." + "remoteSpawnFilesNotSupported": "See instants ei saa faile vastu võtta.", + "instanceSwitcherTitle": "KiloClaw-i eksemplar" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Ebaõnnestus", "cancelled": "Tühistatud", "interrupted": "Katkestatud" - } + }, + "reviewStyle": { + "strict": "Range", + "balanced": "Tasakaalustatud", + "lenient": "Leebe", + "roast": "Roast" + }, + "focusArea": { + "security": "Turvalisus", + "performance": "Jõudlus", + "bugs": "Vead", + "style": "Stiil", + "testing": "Testimine", + "documentation": "Dokumentatsioon" + }, + "gateThreshold": { + "off": "Väljas", + "all": "Kõik", + "warning": "Hoiatus", + "critical": "Kriitiline" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Koodiülevaataja vajab tähelepanu", + "description": "Koodiülevaataja keelati, kuna Kilo ei pääse aktiivse GitHub App'i installiga sellele hoidlale ligi. Uuenda GitHub App'i installi, seejärel luba koodiülevaataja uuesti.", + "recoveryLabel": "Uuenda GitHub App'i" + }, + "githubIpAllowList": { + "title": "Koodiülevaataja vajab tähelepanu", + "description": "Koodiülevaataja keelati, kuna see GitHubi organisatsioon kasutab IP-lubatud loendit, mis blokeerib Kilo. Abi saamiseks võta ühendust aadressil hi@kilocode.ai, seejärel luba koodiülevaataja uuesti.", + "recoveryLabel": "Võta ühendust toega" + }, + "gitlabProjectAccessRequired": { + "title": "Koodiülevaataja vajab tähelepanu", + "description": "Koodiülevaataja keelati, kuna Kilo ei saa selle projekti jaoks GitLabi projekti juurdepääsutunnust luua. Anna haldaja juurdepääs või luba projekti juurdepääsutunnused, seejärel luba koodiülevaataja uuesti.", + "recoveryLabel": "Uuenda GitLabi integratsiooni" + }, + "byokInvalidKey": { + "title": "Koodiülevaataja vajab tähelepanu", + "description": "Koodiülevaataja keelati, kuna valitud BYOK API-võti on kehtetu, tühistatud või puudub tal õigus. Uuenda võtit või vali teine mudel, seejärel luba koodiülevaataja uuesti.", + "recoveryLabel": "Uuenda BYOK seadeid" + }, + "selectedModelUnavailable": { + "title": "Koodiülevaataja vajab tähelepanu", + "description": "Koodiülevaataja keelati, kuna valitud mudel pole pilveagendi seansside jaoks saadaval. Vali saadaolev mudel, seejärel luba koodiülevaataja uuesti.", + "recoveryLabel": "Uuenda koodiülevaataja seadeid" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Koodiülevaataja vajab tähelepanu", + "description": "Koodiülevaataja keelati pärast kolme hoidla kloonimise ajalõppu täna. Abi saamiseks võta ühendust aadressil hi@kilocode.ai, seejärel luba koodiülevaataja uuesti.", + "recoveryLabel": "Võta ühendust toega" + } + }, + "unknownError": "Tundmatu viga" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Leid on automaatse tõsidusläve all. Käsitsi parandamine saab siiski alata, kui turvaväravad on läbitud.", "beforeEnablement": "Analüüs lõppes enne automaatse parandamise lubamist. Käsitsi parandamine saab siiski alata, kui turvaväravad on läbitud.", "generic": "Parandamine pole selle leiu jaoks saadaval." + }, + "commandFailure": { + "ownerCapReached": "Analüüsivõimekus on täis. Oota, kuni aktiivne analüüs lõpeb, seejärel proovi uuesti.", + "githubTokenUnavailable": "GitHubi volitus vajab tähelepanu. Volita GitHub App uuesti, seejärel proovi uuesti.", + "githubAuthInvalid": "GitHubi volitus vajab tähelepanu. Volita GitHub App uuesti, seejärel proovi uuesti.", + "findingUnavailable": "Leid pole enam saadaval. Värskenda leide ja proovi uuesti, kui see on endiselt avatud.", + "repositoryUnavailable": "Hoidla pole GitHub App'ile enam saadaval. Värskenda hoidla juurdepääsu, seejärel proovi uuesti.", + "invalidDismissTarget": "Leidu ei saa tagasi lükata, kuna selle Dependaboti sihtmärk on vigane.", + "commandStalled": "Järjekorras olev toiming ei lõppenud õigeaegselt. Proovi toimingut uuesti.", + "queueRetriesExhausted": "Toimingut ei õnnestunud pärast mitut katset lõpule viia. Proovi toimingut uuesti.", + "queueAdmissionFailed": "Järjekorras olevat toimingut ei õnnestunud vastu võtta. Proovi toimingut uuesti.", + "generic": "Järjekorras olev toiming ebaõnnestus. Proovi toimingut uuesti." + }, + "analysisMode": { + "auto": "Automaatne", + "shallow": "Pindmine", + "deep": "Sügav" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Lisa {{name}} lemmikutesse", "removeFromFavorites": "Eemalda {{name}} lemmikutest", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Seansi mudel" }, "attachmentPreview": { "openFailedRetry": "Faili avamine ebaõnnestus. Proovige uuesti.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Lisa krediiti", - "description": "Kasutuse jätkamiseks lisage krediiti." + "description": "Kasutuse jätkamiseks lisage krediiti.", + "billingPage": "arveldusleht" }, "deviceSessions": { "couldNotLoad": "Seansse ei õnnestunud laadida", @@ -2710,7 +2795,10 @@ "restoreFailed": "Ostude taastamine ebaõnnestus. Proovi uuesti.", "purchaseFailed": "Ostu lõpetamine ebaõnnestus.", "purchaseStartFailed": "App Store'i ostu alustamine ebaõnnestus.", - "purchaseOwnedByAnotherAccount": "Selle Apple kontoga seotud Kilo Pass kuulub teisele Kilo kontole." + "purchaseOwnedByAnotherAccount": "Selle Apple kontoga seotud Kilo Pass kuulub teisele Kilo kontole.", + "couldNotConnectToAppStore": "App Store'iga ühendamine ebaõnnestus. Kontrolli ühendust ja proovi uuesti.", + "noMatchingProducts": "App Store ei tagastanud ühtegi sobivat Kilo Passi toodet.", + "purchaseMissingSignedTransaction": "App Store'i ost ei sisaldanud allkirjastatud tehingu JWS-i." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Vajab täiendamist", "sorryTitle": "Meil on kahju seda kuulda!", "sorryMessage": "Andke meile teada, mida tuleks parandada. Rakenduse eest vastutav insener loeb iga üksikut aruannet!", - "emailUs": "Kirjutage meile" + "emailUs": "Kirjutage meile", + "emailSubject": "mobiilirakenduse tagasiside" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Krediiditegevust pole", "expires": "Aegub {{date}}", "title": "Krediiditegevus", - "transactionFallback": "Krediiditehing" + "transactionFallback": "Krediiditehing", + "category": { + "organization_custom": "Organisatsiooni kohandatud", + "parent_to_child_transfer_in": "Ülekanne vanemalt lapsele (sisse)", + "parent_to_child_transfer_out": "Ülekanne vanemalt lapsele (välja)", + "oss-sponsorship": "OSS-sponsorlus", + "oss-monthly-reset": "OSS-i kuu lähtestamine", + "team-topup-bonus-2025": "Meeskonna täiendusboonus 2025", + "accounting_adjustment": "Raamatupidamiskorrigeerimine", + "credits_expired": "Krediidid aegusid" + } }, "inviteMember": { "emailError": "Sisestage kehtiv e-posti aadress", @@ -2840,12 +2939,17 @@ "emptyDescription": "Arved genereeritakse automaatselt igal arveldustsüklil ja ilmuvad siia, kui teie organisatsioonile arveldatakse.", "emptyTitle": "Arveid pole", "invoiceFallback": "Arve", - "statusOpen": "Avatud", - "statusPaid": "Makstud", - "statusVoid": "Tühistatud", "title": "Arved", "downloadFailed": "Arve allalaadimine ei õnnestunud. Kontrolli ühendust ja proovi uuesti.", - "sharingUnavailable": "Jagamine pole sellel seadmel saadaval." + "sharingUnavailable": "Jagamine pole sellel seadmel saadaval.", + "status": { + "paid": "Makstud", + "open": "Avatud", + "void": "Tühistatud", + "draft": "Mustand", + "uncollectible": "Sissenõudmatu", + "unknown": "Teadmata" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Kogutud andmed", "free": "Tasuta", - "couldNotUpdateFavorites": "Lemmikute uuendamine ebaõnnestus" + "couldNotUpdateFavorites": "Lemmikute uuendamine ebaõnnestus", + "thinkingEffort": { + "none": "Puudub", + "minimal": "Minimaalne", + "low": "Madal", + "medium": "Keskmine", + "high": "Kõrge", + "xhigh": "Väga kõrge", + "max": "Maksimaalne" + } } } diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index 0f10503e56..d781ae8212 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} hautatuta, sakatu hautaketa aldatzeko", "tapToComment": "{{label}}, sakatu iruzkintzeko", - "truncationBanner": "Aldatutako {{total}} fitxategietatik lehenengo {{limit}} erakusten — GitHub API muga" + "truncationBanner": "Aldatutako {{total}} fitxategietatik lehenengo {{limit}} erakusten — GitHub API muga", + "statusAdded": "Gehituta", + "statusContext": "Testuingurua", + "statusDeleted": "Ezabatuta" }, "linkPasteClipboardEmpty": "Arbel hutsik dago", "linkPasteNotAPullRequest": "Ez da GitHub-en pull request esteka bat", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Berrikuspen hau ezin da bidali hala dagoen bezala. Baliteke PR-a aldatu izana, edo zure pull request bera ezin duzu berrikusi.", "couldNotPostComment": "Ezin izan da iruzkina argitaratu.", "couldNotSubmitReview": "Ezin izan da berrikuspena bidali. Egiaztatu konexioa eta saiatu berriro." + }, + "operation": { + "couldNotReply": "Ezin izan da erantzun.", + "couldNotCompleteAction": "Ezin izan da ekintza hau amaitu.", + "mergeResultDefaultError": "GitHub-ek ez du batzea amaitu." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Ordainketa atzeratuta dago. Eguneratu zure ordainketa-metodoa.", "subscriptionCancels": "Harpidetza {{date}}n bertan behera uzten da", "trialDaysRemaining": "Proba: {{remaining}} geratzen dira", - "trialEndingSoon": "Proba laster amaitzen da: {{remaining}}" + "trialEndingSoon": "Proba laster amaitzen da: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Zer berri", @@ -1189,7 +1201,8 @@ "strongArm": "Beso indartsua", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Instantzia honek ezin du fitxategirik jaso." + "remoteSpawnFilesNotSupported": "Instantzia honek ezin du fitxategirik jaso.", + "instanceSwitcherTitle": "KiloClaw instantzia" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Huts egin du", "cancelled": "Bertan behera utzita", "interrupted": "Etena" - } + }, + "reviewStyle": { + "strict": "Zorrotza", + "balanced": "Orekatua", + "lenient": "Onbera", + "roast": "Roast" + }, + "focusArea": { + "security": "Segurtasuna", + "performance": "Errendimendua", + "bugs": "Akatsak", + "style": "Estiloa", + "testing": "Probak", + "documentation": "Dokumentazioa" + }, + "gateThreshold": { + "off": "Desaktibo", + "all": "Dena", + "warning": "Abisua", + "critical": "Kritikoa" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Kode-berrikusleak arreta behar du", + "description": "Kode-berrikuslea desgaitu egin da, Kilo-k ezin duelako biltegi honetara sartu GitHub App instalazio aktibo batekin. Eguneratu GitHub App instalazioa, eta gero berriro gaitu Kode-berrikuslea.", + "recoveryLabel": "Eguneratu GitHub App" + }, + "githubIpAllowList": { + "title": "Kode-berrikusleak arreta behar du", + "description": "Kode-berrikuslea desgaitu egin da, GitHub erakunde honek Kilo blokeatzen duen IP baimen-zerrenda erabiltzen duelako. Jarri harremanetan hi@kilocode.ai helbidearekin laguntza eskuratzeko, eta gero berriro gaitu Kode-berrikuslea.", + "recoveryLabel": "Jarri harremanetan laguntzarekin" + }, + "gitlabProjectAccessRequired": { + "title": "Kode-berrikusleak arreta behar du", + "description": "Kode-berrikuslea desgaitu egin da, Kilo-k ezin duelako GitLab Proiektu Sarbide Token bat sortu proiektu honetarako. Eman Maintainer sarbidea edo gaitu Proiektu Sarbide Token-ak, eta gero berriro gaitu Kode-berrikuslea.", + "recoveryLabel": "Eguneratu GitLab integrazioa" + }, + "byokInvalidKey": { + "title": "Kode-berrikusleak arreta behar du", + "description": "Kode-berrikuslea desgaitu egin da, hautatutako BYOK API gakoa baliogabea, ezeztatua edo baimenik gabea delako. Eguneratu gakoa edo aukeratu beste modelo bat, eta gero berriro gaitu Kode-berrikuslea.", + "recoveryLabel": "Eguneratu BYOK ezarpenak" + }, + "selectedModelUnavailable": { + "title": "Kode-berrikusleak arreta behar du", + "description": "Kode-berrikuslea desgaitu egin da, hautatutako modeloa ez dagoelako erabilgarri cloud agent saioetarako. Aukeratu modelo erabilgarri bat, eta gero berriro gaitu Kode-berrikuslea.", + "recoveryLabel": "Eguneratu Kode-berrikuslearen ezarpenak" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Kode-berrikusleak arreta behar du", + "description": "Kode-berrikuslea desgaitu egin da gaur hiru biltegi-klonazio denbora-muga izan ondoren. Jarri harremanetan hi@kilocode.ai helbidearekin laguntza eskuratzeko, eta gero berriro gaitu Kode-berrikuslea.", + "recoveryLabel": "Jarri harremanetan laguntzarekin" + } + }, + "unknownError": "Errore ezezaguna" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Emaitza automatikoko larritasun-atalasearen azpitik dago. Konponketa manuala oraindik has daiteke segurtasun-ateak gainditzen direnean.", "beforeEnablement": "Analisia konponketa automatikoa gaitu aurretik osatu zen. Konponketa manuala oraindik has daiteke segurtasun-ateak gainditzen direnean.", "generic": "Konponketa ez dago eskuragarri emaitza honentzat." + }, + "commandFailure": { + "ownerCapReached": "Analisi-ahalmena beteta dago. Itxaron martxan dagoen analisia amaitzeko, eta gero saiatu berriro.", + "githubTokenUnavailable": "GitHub baimenak arreta behar du. Berriz baimendu GitHub App, eta gero saiatu berriro.", + "githubAuthInvalid": "GitHub baimenak arreta behar du. Berriz baimendu GitHub App, eta gero saiatu berriro.", + "findingUnavailable": "Emaitza ez dago jada erabilgarri. Freskatu emaitzak eta saiatu berriro irekita badago.", + "repositoryUnavailable": "Biltegia ez dago jada erabilgarri GitHub App-entzat. Freskatu biltegirako sarbidea, eta gero saiatu berriro.", + "invalidDismissTarget": "Emaitza ezin da baztertu, bere Dependabot helburua baliogabea delako.", + "commandStalled": "Ilaratutako ekintza ez da garaiz amaitu. Saiatu ekintza berriro.", + "queueRetriesExhausted": "Ekintza ezin izan da amaitu hainbat saiakera egin ondoren. Saiatu ekintza berriro.", + "queueAdmissionFailed": "Ilaratutako ekintza ezin izan da onartu. Saiatu ekintza berriro.", + "generic": "Ilaratutako ekintzak huts egin du. Saiatu ekintza berriro." + }, + "analysisMode": { + "auto": "Automatikoa", + "shallow": "Azalekoa", + "deep": "Sakona" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Gehitu {{name}} gogokoetara", "removeFromFavorites": "Kendu {{name}} gogokoetatik", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Ertaina" + "thinkingEffortMedium": "Ertaina", + "sessionModel": "Saioaren modeloa" }, "attachmentPreview": { "openFailedRetry": "Ezin izan da fitxategia ireki. Saiatu berriro.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Gehitu kredituak", - "description": "Gehitu kredituak erabilerak jarrai dezan." + "description": "Gehitu kredituak erabilerak jarrai dezan.", + "billingPage": "fakturazio-orria" }, "deviceSessions": { "couldNotLoad": "Ezin izan dira saioak kargatu", @@ -2710,7 +2795,10 @@ "restoreFailed": "Ezin dira erosketa berreskuratu. Saiatu berriro.", "purchaseFailed": "Ezin izan da erosketa amaitu.", "purchaseStartFailed": "Ezin izan da App Store-ko erosketa hasi.", - "purchaseOwnedByAnotherAccount": "Apple kontu honetako Kilo Pass beste Kilo kontu bati dagokio." + "purchaseOwnedByAnotherAccount": "Apple kontu honetako Kilo Pass beste Kilo kontu bati dagokio.", + "couldNotConnectToAppStore": "Ezin izan da App Store-ra konektatu. Egiaztatu konexioa eta saiatu berriro.", + "noMatchingProducts": "App Store-k ez du Kilo Pass produktu egokirik itzuli.", + "purchaseMissingSignedTransaction": "App Store erosketak ez du sinatutako transakzio JWS bat barne hartu." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Hobetu behar du", "sorryTitle": "Sentitzen dugu entzuteagatik!", "sorryMessage": "Mesedez, esan iezaguzu zer hobetu behar den. Aplikazioaren arduradunak irakurtzen du txosten bakoitza!", - "emailUs": "Bidali iezaguzu posta" + "emailUs": "Bidali iezaguzu posta", + "emailSubject": "mugikorreko aplikazioaren feedbacka" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ez dago kreditu-jarduerarik", "expires": "Iraungitzen da {{date}}", "title": "Kreditu-jarduera", - "transactionFallback": "Kreditu-transakzioa" + "transactionFallback": "Kreditu-transakzioa", + "category": { + "organization_custom": "Erakundearen pertsonalizatua", + "parent_to_child_transfer_in": "Gurasotik seme-alabara transferentzia (sarrera)", + "parent_to_child_transfer_out": "Gurasotik seme-alabara transferentzia (irteera)", + "oss-sponsorship": "OSS-espontsoritza", + "oss-monthly-reset": "OSS-hileko berrezarpena", + "team-topup-bonus-2025": "Taldearen topup-bonua 2025", + "accounting_adjustment": "Kontabilitate-doikuntza", + "credits_expired": "Kredituak iraungita" + } }, "inviteMember": { "emailError": "Sartu posta-helbide baliozko bat", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakturak automatikoki sortzen dira fakturazio-ziklo bakoitzean eta hemen agertuko dira zure erakundea fakturatu ondoren.", "emptyTitle": "Ez dago fakturarik", "invoiceFallback": "Faktura", - "statusOpen": "Irekituta", - "statusPaid": "Ordainduta", - "statusVoid": "Ballogabea", "title": "Fakturak", "downloadFailed": "Ezin izan da faktura deskargatu. Egiaztatu konexioa eta saiatu berriro.", - "sharingUnavailable": "Partekatzea ez dago eskuragarri gailu honetan." + "sharingUnavailable": "Partekatzea ez dago eskuragarri gailu honetan.", + "status": { + "paid": "Ordainduta", + "open": "Irekituta", + "void": "Ballogabea", + "draft": "Zirriborroa", + "uncollectible": "Kobratu ezina", + "unknown": "Ezezaguna" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Bildutako datuak", "free": "Doan", - "couldNotUpdateFavorites": "Ezin izan dira gogokoak eguneratu" + "couldNotUpdateFavorites": "Ezin izan dira gogokoak eguneratu", + "thinkingEffort": { + "none": "Bat ere ez", + "minimal": "Gutxienekoa", + "low": "Baxua", + "medium": "Ertaina", + "high": "Altua", + "xhigh": "Oso altua", + "max": "Gehienez" + } } } diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index 9e5c8a599a..f53f8375b9 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} انتخاب شد، برای تغییر انتخاب ضربه بزنید", "tapToComment": "{{label}}، برای نظر ضربه بزنید", - "truncationBanner": "نمایش {{limit}} فایل اول از {{total}} فایل تغییر یافته — سقف API گیتهاب" + "truncationBanner": "نمایش {{limit}} فایل اول از {{total}} فایل تغییر یافته — سقف API گیتهاب", + "statusAdded": "افزوده شده", + "statusContext": "زمینه", + "statusDeleted": "حذف شده" }, "linkPasteClipboardEmpty": "کلیپبورد خالی است", "linkPasteNotAPullRequest": "این پیوند درخواست کشش GitHub نیست", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "این بازبینی در وضعیت فعلی قابل ارسال نیست. ممکن است PR تغییر کرده باشد یا نتوانید درخواست pull خودتان را بازبینی کنید.", "couldNotPostComment": "ارسال نظر ممکن نشد.", "couldNotSubmitReview": "ارسال بازبینی ممکن نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید." + }, + "operation": { + "couldNotReply": "پاسخ ممکن نشد.", + "couldNotCompleteAction": "تکمیل این عمل ممکن نشد.", + "mergeResultDefaultError": "GitHub ادغام را تکمیل نکرد." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "پرداخت معوق است. لطفاً روش پرداخت خود را به‌روزرسانی کنید.", "subscriptionCancels": "اشتراک در {{date}} لغو می‌شود", "trialDaysRemaining": "آزمایشی: {{remaining}} باقی‌مانده", - "trialEndingSoon": "به زودی پایان آزمایشی: {{remaining}}" + "trialEndingSoon": "به زودی پایان آزمایشی: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "چه خبر", @@ -1189,7 +1201,8 @@ "strongArm": "بازوی قوی", "talisman": "طلسم" }, - "remoteSpawnFilesNotSupported": "این نمونه نمی‌تواند فایل دریافت کند." + "remoteSpawnFilesNotSupported": "این نمونه نمی‌تواند فایل دریافت کند.", + "instanceSwitcherTitle": "نمونهٔ KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "شکست خورد", "cancelled": "لغو شد", "interrupted": "قطع شد" - } + }, + "reviewStyle": { + "strict": "سخت‌گیرانه", + "balanced": "متعادل", + "lenient": "سهل‌گیر", + "roast": "Roast" + }, + "focusArea": { + "security": "امنیت", + "performance": "عملکرد", + "bugs": "باگ‌ها", + "style": "سبک", + "testing": "تست", + "documentation": "مستندات" + }, + "gateThreshold": { + "off": "خاموش", + "all": "همه", + "warning": "هشدار", + "critical": "بحرانی" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "بررسی‌کننده کد نیاز به توجه دارد", + "description": "بررسی‌کننده کد غیرفعال شد، زیرا Kilo نمی‌تواند با نصب فعال GitHub App به این مخزن دسترسی پیدا کند. نصب GitHub App را به‌روزرسانی کنید، سپس دوباره بررسی‌کننده کد را فعال کنید.", + "recoveryLabel": "به‌روزرسانی GitHub App" + }, + "githubIpAllowList": { + "title": "بررسی‌کننده کد نیاز به توجه دارد", + "description": "بررسی‌کننده کد غیرفعال شد، زیرا این سازمان GitHub از فهرست مجاز IP استفاده می‌کند که Kilo را مسدود می‌کند. برای کمک با hi@kilocode.ai تماس بگیرید، سپس دوباره بررسی‌کننده کد را فعال کنید.", + "recoveryLabel": "تماس با پشتیبانی" + }, + "gitlabProjectAccessRequired": { + "title": "بررسی‌کننده کد نیاز به توجه دارد", + "description": "بررسی‌کننده کد غیرفعال شد، زیرا Kilo نمی‌تواند برای این پروژه Token دسترسی پروژه GitLab ایجاد کند. دسترسی نگهدارنده را اعطا کنید یا Tokenهای دسترسی پروژه را فعال کنید، سپس دوباره بررسی‌کننده کد را فعال کنید.", + "recoveryLabel": "به‌روزرسانی یکپارچه‌سازی GitLab" + }, + "byokInvalidKey": { + "title": "بررسی‌کننده کد نیاز به توجه دارد", + "description": "بررسی‌کننده کد غیرفعال شد، زیرا کلید API BYOK انتخاب‌شده نامعتبر، لغو شده یا فاقد مجوز است. کلید را به‌روزرسانی کنید یا مدل دیگری انتخاب کنید، سپس دوباره بررسی‌کننده کد را فعال کنید.", + "recoveryLabel": "به‌روزرسانی تنظیمات BYOK" + }, + "selectedModelUnavailable": { + "title": "بررسی‌کننده کد نیاز به توجه دارد", + "description": "بررسی‌کننده کد غیرفعال شد، زیرا مدل انتخاب‌شده برای جلسات عامل ابری در دسترس نیست. یک مدل در دسترس انتخاب کنید، سپس دوباره بررسی‌کننده کد را فعال کنید.", + "recoveryLabel": "به‌روزرسانی تنظیمات بررسی‌کننده کد" + }, + "repeatedRepositoryCloneTimeout": { + "title": "بررسی‌کننده کد نیاز به توجه دارد", + "description": "بررسی‌کننده کد پس از سه وقفهٔ مهلت شبیه‌سازی مخزن امروز غیرفعال شد. برای کمک با hi@kilocode.ai تماس بگیرید، سپس دوباره بررسی‌کننده کد را فعال کنید.", + "recoveryLabel": "تماس با پشتیبانی" + } + }, + "unknownError": "خطای ناشناخته" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "یافته زیر آستانهٔ شدت خودکار است. اصلاح دستی همچنان می‌تواند وقتی دروازه‌های امنیتی عبور کنند شروع شود.", "beforeEnablement": "تحلیل قبل از فعال‌سازی اصلاح خودکار کامل شد. اصلاح دستی همچنان می‌تواند وقتی دروازه‌های امنیتی عبور کنند شروع شود.", "generic": "اصلاح برای این یافته در دسترس نیست." + }, + "commandFailure": { + "ownerCapReached": "ظرفیت تحلیل کامل است. صبر کنید تا تحلیل فعال پایان یابد، سپس دوباره تلاش کنید.", + "githubTokenUnavailable": "مجوز GitHub نیاز به توجه دارد. GitHub App را دوباره مجاز کنید، سپس دوباره تلاش کنید.", + "githubAuthInvalid": "مجوز GitHub نیاز به توجه دارد. GitHub App را دوباره مجاز کنید، سپس دوباره تلاش کنید.", + "findingUnavailable": "یافته دیگر در دسترس نیست. یافته‌ها را تازه‌سازی کنید و اگر همچنان باز است، دوباره تلاش کنید.", + "repositoryUnavailable": "مخزن دیگر برای GitHub App در دسترس نیست. دسترسی به مخزن را تازه‌سازی کنید، سپس دوباره تلاش کنید.", + "invalidDismissTarget": "یافته را نمی‌توان رد کرد، زیرا هدف Dependabot آن نامعتبر است.", + "commandStalled": "عمل در صف به‌موقع تمام نشد. عمل را دوباره تلاش کنید.", + "queueRetriesExhausted": "پس از چند بار تلاش، عمل تکمیل نشد. عمل را دوباره تلاش کنید.", + "queueAdmissionFailed": "عمل در صف پذیرفته نشد. عمل را دوباره تلاش کنید.", + "generic": "عمل در صف ناموفق بود. عمل را دوباره تلاش کنید." + }, + "analysisMode": { + "auto": "خودکار", + "shallow": "سطحی", + "deep": "عمیق" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "افزودن {{name}} به موارد دلخواه", "removeFromFavorites": "حذف {{name}} از موارد دلخواه", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "متوسط" + "thinkingEffortMedium": "متوسط", + "sessionModel": "مدل جلسه" }, "attachmentPreview": { "openFailedRetry": "باز کردن فایل ناموفق بود. لطفاً دوباره تلاش کنید.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "افزودن اعتبار", - "description": "برای ادامه استفاده، اعتبار اضافه کنید." + "description": "برای ادامه استفاده، اعتبار اضافه کنید.", + "billingPage": "صفحه صورتحساب" }, "deviceSessions": { "couldNotLoad": "جلسات بارگذاری نشدند", @@ -2710,7 +2795,10 @@ "restoreFailed": "بازیابی خریدها ممکن نشد. دوباره تلاش کنید.", "purchaseFailed": "تکمیل خرید ممکن نشد.", "purchaseStartFailed": "شروع خرید App Store ممکن نشد.", - "purchaseOwnedByAnotherAccount": "Kilo Pass روی این Apple Account متعلق به یک حساب Kilo دیگر است." + "purchaseOwnedByAnotherAccount": "Kilo Pass روی این Apple Account متعلق به یک حساب Kilo دیگر است.", + "couldNotConnectToAppStore": "اتصال به App Store ممکن نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید.", + "noMatchingProducts": "App Store هیچ محصول منطبقی از Kilo Pass برنگرداند.", + "purchaseMissingSignedTransaction": "خرید App Store شامل تراکنش امضاشدهٔ JWS نبود." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "نیاز به بهبود دارد", "sorryTitle": "از شنیدن این متأسفیم!", "sorryMessage": "لطفاً به ما اطلاع دهید چه چیزی باید بهتر شود. مهندس مسئول برنامه هر گزارش را می‌خواند!", - "emailUs": "برای ما ایمیل بفرستید" + "emailUs": "برای ما ایمیل بفرستید", + "emailSubject": "بازخورد برنامه موبایل" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "فعالیت اعتباری نیست", "expires": "انقضا در {{date}}", "title": "فعالیت اعتباری", - "transactionFallback": "تراکنش اعتباری" + "transactionFallback": "تراکنش اعتباری", + "category": { + "organization_custom": "سفارشی سازمان", + "parent_to_child_transfer_in": "انتقال از والد به فرزند (ورودی)", + "parent_to_child_transfer_out": "انتقال از والد به فرزند (خروجی)", + "oss-sponsorship": "حمایت مالی OSS", + "oss-monthly-reset": "بازنشانی ماهانه OSS", + "team-topup-bonus-2025": "پاداش شارژ تیم 2025", + "accounting_adjustment": "تعدیل حسابداری", + "credits_expired": "اعتبارها منقضی شدند" + } }, "inviteMember": { "emailError": "یک آدرس ایمیل معتبر وارد کنید", @@ -2840,12 +2939,17 @@ "emptyDescription": "فاکتورها به‌صورت خودکار در هر چرخه صورتحساب تولید می‌شوند و پس از صدور صورتحساب سازمان شما در اینجا ظاهر می‌شوند.", "emptyTitle": "فاکتوری نیست", "invoiceFallback": "فاکتور", - "statusOpen": "باز", - "statusPaid": "پرداخت شده", - "statusVoid": "باطل", "title": "فاکتورها", "downloadFailed": "دانلود فاکتور ممکن نشد. اتصال خود را بررسی کنید و دوباره تلاش کنید.", - "sharingUnavailable": "اشتراک‌گذاری در این دستگاه در دسترس نیست." + "sharingUnavailable": "اشتراک‌گذاری در این دستگاه در دسترس نیست.", + "status": { + "paid": "پرداخت شده", + "open": "باز", + "void": "باطل", + "draft": "پیش‌نویس", + "uncollectible": "وصول‌نشدنی", + "unknown": "ناشناخته" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "دادههای جمعآوریشده", "free": "رایگان", - "couldNotUpdateFavorites": "به‌روزرسانی موردعلاقه‌ها ممکن نشد" + "couldNotUpdateFavorites": "به‌روزرسانی موردعلاقه‌ها ممکن نشد", + "thinkingEffort": { + "none": "هیچ", + "minimal": "حداقلی", + "low": "کم", + "medium": "متوسط", + "high": "زیاد", + "xhigh": "خیلی زیاد", + "max": "حداکثر" + } } } diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 4677953df5..3e8775b088 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Valittu {{label}}, napauta vaihtaaksesi valinnan", "tapToComment": "{{label}}, napauta kommentoidaksesi", - "truncationBanner": "Näytetään ensimmäiset {{limit}} muutetuista {{total}} tiedostosta — GitHub API:n raja" + "truncationBanner": "Näytetään ensimmäiset {{limit}} muutetuista {{total}} tiedostosta — GitHub API:n raja", + "statusAdded": "Lisätty", + "statusContext": "Konteksti", + "statusDeleted": "Poistettu" }, "linkPasteClipboardEmpty": "Leikepöytä on tyhjä", "linkPasteNotAPullRequest": "Ei GitHub-pull request -linkki", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Tätä arviointia ei voi lähettää sellaisenaan. PR on saatettu muuttaa, tai et voi arvioida omaa pull requestiasi.", "couldNotPostComment": "Kommenttia ei voitu lähettää.", "couldNotSubmitReview": "Arviointia ei voitu lähettää. Tarkista yhteys ja yritä uudelleen." + }, + "operation": { + "couldNotReply": "Vastaaminen epäonnistui.", + "couldNotCompleteAction": "Tätä toimintoa ei voitu suorittaa loppuun.", + "mergeResultDefaultError": "GitHub ei saattanut yhdistämistä loppuun." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Maksu on erääntynyt. Päivitä maksutapasi.", "subscriptionCancels": "Tilaus peruuntuu {{date}}", "trialDaysRemaining": "Kokeilu: {{remaining}} jäljellä", - "trialEndingSoon": "Kokeilu päättyy pian: {{remaining}}" + "trialEndingSoon": "Kokeilu päättyy pian: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Mitä uutta", @@ -1189,7 +1201,8 @@ "strongArm": "Vahva käsivarsi", "talisman": "Talismaani" }, - "remoteSpawnFilesNotSupported": "Tämä instanssi ei voi vastaanottaa tiedostoja." + "remoteSpawnFilesNotSupported": "Tämä instanssi ei voi vastaanottaa tiedostoja.", + "instanceSwitcherTitle": "KiloClaw-instanssi" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Epäonnistui", "cancelled": "Peruttu", "interrupted": "Keskeytetty" - } + }, + "reviewStyle": { + "strict": "Tiukka", + "balanced": "Tasapainoinen", + "lenient": "Lempeä", + "roast": "Roast" + }, + "focusArea": { + "security": "Turvallisuus", + "performance": "Suorituskyky", + "bugs": "Bugit", + "style": "Tyyli", + "testing": "Testaus", + "documentation": "Dokumentaatio" + }, + "gateThreshold": { + "off": "Pois", + "all": "Kaikki", + "warning": "Varoitus", + "critical": "Kriittinen" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer vaatii huomiota", + "description": "Code Reviewer poistettiin käytöstä, koska Kilo ei pääse tähän repositorioon aktiivisella GitHub App -asennuksella. Päivitä GitHub App -asennus ja ota Code Reviewer uudelleen käyttöön.", + "recoveryLabel": "Päivitä GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer vaatii huomiota", + "description": "Code Reviewer poistettiin käytöstä, koska tämä GitHub-organisaatio käyttää IP-sallittujen luetteloa, joka estää Kilo. Ota yhteyttä hi@kilocode.ai -osoitteeseen saadaksesi apua ja ota Code Reviewer uudelleen käyttöön.", + "recoveryLabel": "Ota yhteyttä tukeen" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer vaatii huomiota", + "description": "Code Reviewer poistettiin käytöstä, koska Kilo ei voi luoda GitLab-projektin käyttöoikeustunnusta tälle projektille. Myönnä Maintainer-käyttöoikeus tai ota projektin käyttöoikeustunnukset käyttöön ja ota Code Reviewer uudelleen käyttöön.", + "recoveryLabel": "Päivitä GitLab-integraatio" + }, + "byokInvalidKey": { + "title": "Code Reviewer vaatii huomiota", + "description": "Code Reviewer poistettiin käytöstä, koska valittu BYOK API -avain on virheellinen, peruutettu tai siitä puuttuu oikeus. Päivitä avain tai valitse toinen malli ja ota Code Reviewer uudelleen käyttöön.", + "recoveryLabel": "Päivitä BYOK-asetukset" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer vaatii huomiota", + "description": "Code Reviewer poistettiin käytöstä, koska valittu malli ei ole käytettävissä cloud agent -istunnoissa. Valitse käytettävissä oleva malli ja ota Code Reviewer uudelleen käyttöön.", + "recoveryLabel": "Päivitä Code Reviewer -asetukset" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer vaatii huomiota", + "description": "Code Reviewer poistettiin käytöstä kolmen repositorion kloonauksen aikakatkaisun jälkeen tänään. Ota yhteyttä hi@kilocode.ai -osoitteeseen saadaksesi apua ja ota Code Reviewer uudelleen käyttöön.", + "recoveryLabel": "Ota yhteyttä tukeen" + } + }, + "unknownError": "Tuntematon virhe" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Havainto on automaattisen vakavuuskynnyksen alapuolella. Manuaalinen korjaus voi silti alkaa, kun turvaportit läpäistään.", "beforeEnablement": "Analyysi valmistui ennen automaattisen korjauksen käyttöönottoa. Manuaalinen korjaus voi silti alkaa, kun turvaportit läpäistään.", "generic": "Korjaus ei ole käytettävissä tälle havainnolle." + }, + "commandFailure": { + "ownerCapReached": "Analyysikapasiteetti on täynnä. Odota, että käynnissä oleva analyysi päättyy, ja yritä sitten uudelleen.", + "githubTokenUnavailable": "GitHub-valtuutus vaatii huomiota. Valtuuta GitHub App uudelleen ja yritä sitten uudelleen.", + "githubAuthInvalid": "GitHub-valtuutus vaatii huomiota. Valtuuta GitHub App uudelleen ja yritä sitten uudelleen.", + "findingUnavailable": "Havainto ei ole enää käytettävissä. Päivitä havainnot ja yritä uudelleen, jos se on edelleen auki.", + "repositoryUnavailable": "Repositorio ei ole enää GitHub Appin käytettävissä. Päivitä repositorion käyttöoikeus ja yritä sitten uudelleen.", + "invalidDismissTarget": "Havaintoa ei voi hylätä, koska sen Dependabot-kohde on virheellinen.", + "commandStalled": "Jonossa oleva toiminto ei valmistunut ajoissa. Yritä toimintoa uudelleen.", + "queueRetriesExhausted": "Toimintoa ei voitu suorittaa loppuun useiden yritysten jälkeen. Yritä toimintoa uudelleen.", + "queueAdmissionFailed": "Jonossa olevaa toimintoa ei voitu hyväksyä. Yritä toimintoa uudelleen.", + "generic": "Jonossa oleva toiminto epäonnistui. Yritä toimintoa uudelleen." + }, + "analysisMode": { + "auto": "Automaattinen", + "shallow": "Pinnallinen", + "deep": "Syvä" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Lisää {{name}} suosikkeihin", "removeFromFavorites": "Poista {{name}} suosikeista", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Istunnon malli" }, "attachmentPreview": { "openFailedRetry": "Tiedoston avaaminen epäonnistui. Yritä uudelleen.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Lisää krediittejä", - "description": "Lisää krediittejä pitääksesi käytön käynnissä." + "description": "Lisää krediittejä pitääksesi käytön käynnissä.", + "billingPage": "laskutussivu" }, "deviceSessions": { "couldNotLoad": "Istuntoja ei voitu ladata", @@ -2710,7 +2795,10 @@ "restoreFailed": "Ostosten palauttaminen epäonnistui. Yritä uudelleen.", "purchaseFailed": "Oston viimeistely epäonnistui.", "purchaseStartFailed": "App Store -oston aloittaminen epäonnistui.", - "purchaseOwnedByAnotherAccount": "Tämän Apple-tilin Kilo Pass kuuluu eri Kilo-tilille." + "purchaseOwnedByAnotherAccount": "Tämän Apple-tilin Kilo Pass kuuluu eri Kilo-tilille.", + "couldNotConnectToAppStore": "Yhteyden muodostaminen App Storeen epäonnistui. Tarkista yhteys ja yritä uudelleen.", + "noMatchingProducts": "App Store ei palauttanut yhtään sopivaa Kilo Pass -tuotetta.", + "purchaseMissingSignedTransaction": "App Store -osto ei sisältänyt allekirjoitettua tapahtuman JWS:ää." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Vaatii parannuksia", "sorryTitle": "Ikävä kuulla se!", "sorryMessage": "Kerro meille, mitä pitäisi parantaa. Sovelluksesta vastaava insinööri lukee jokaisen raportin!", - "emailUs": "Lähetä sähköpostia" + "emailUs": "Lähetä sähköpostia", + "emailSubject": "mobiilisovelluksen palaute" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ei krediittitoimintaa", "expires": "Vanhenee {{date}}", "title": "Krediittitoiminta", - "transactionFallback": "Krediittitapahtuma" + "transactionFallback": "Krediittitapahtuma", + "category": { + "organization_custom": "Organisaation mukautettu", + "parent_to_child_transfer_in": "Siirto vanhemmalta lapselle (sisään)", + "parent_to_child_transfer_out": "Siirto vanhemmalta lapselle (ulos)", + "oss-sponsorship": "OSS-sponsorointi", + "oss-monthly-reset": "OSS-kuukausittainen nollaus", + "team-topup-bonus-2025": "Tiimin topup-bonus 2025", + "accounting_adjustment": "Kirjanpidon oikaisu", + "credits_expired": "Krediitit vanhentuivat" + } }, "inviteMember": { "emailError": "Syötä kelvollinen sähköpostiosoite", @@ -2840,12 +2939,17 @@ "emptyDescription": "Laskut luodaan automaattisesti jokaisessa laskutusjaksossa ja ne näkyvät täällä, kun organisaatiosi on laskutettu.", "emptyTitle": "Ei laskuja", "invoiceFallback": "Lasku", - "statusOpen": "Avoin", - "statusPaid": "Maksettu", - "statusVoid": "Mitätöity", "title": "Laskut", "downloadFailed": "Laskua ei voitu ladata. Tarkista yhteys ja yritä uudelleen.", - "sharingUnavailable": "Jakaminen ei ole käytettävissä tässä laitteessa." + "sharingUnavailable": "Jakaminen ei ole käytettävissä tässä laitteessa.", + "status": { + "paid": "Maksettu", + "open": "Avoin", + "void": "Mitätöity", + "draft": "Luonnos", + "uncollectible": "Perimiskelvoton", + "unknown": "Tuntematon" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Kerätyt tiedot", "free": "Ilmainen", - "couldNotUpdateFavorites": "Suosikkeja ei voitu päivittää" + "couldNotUpdateFavorites": "Suosikkeja ei voitu päivittää", + "thinkingEffort": { + "none": "Ei mitään", + "minimal": "Minimaalinen", + "low": "Matala", + "medium": "Keskitaso", + "high": "Korkea", + "xhigh": "Erittäin korkea", + "max": "Maksimi" + } } } diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index 8f103a0d85..205d19f33f 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Napili ang {{label}}, tap para baguhin ang pagpili", "tapToComment": "{{label}}, tap para magkomento", - "truncationBanner": "Ipinapakita ang unang {{limit}} sa {{total}} binagong file — limitasyon sa API ng GitHub" + "truncationBanner": "Ipinapakita ang unang {{limit}} sa {{total}} binagong file — limitasyon sa API ng GitHub", + "statusAdded": "Idinagdag", + "statusContext": "Konteksto", + "statusDeleted": "Na-delete" }, "linkPasteClipboardEmpty": "Walang laman ang clipboard", "linkPasteNotAPullRequest": "Hindi link ng GitHub pull request", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Hindi maisumite ang review na ito nang ganito. Maaaring nagbago ang PR, o hindi mo maaaring i-review ang sarili mong pull request.", "couldNotPostComment": "Hindi maipost ang komento.", "couldNotSubmitReview": "Hindi maisumite ang review. Suriin ang iyong koneksyon at subukan muli." + }, + "operation": { + "couldNotReply": "Hindi makapag-reply.", + "couldNotCompleteAction": "Hindi makumpleto ang aksyong ito.", + "mergeResultDefaultError": "Hindi kinumpleto ng GitHub ang merge." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Huli na ang bayad. Pakiusap, i-update ang iyong paraan ng pagbabayad.", "subscriptionCancels": "Kakanselahin ang subscription sa {{date}}", "trialDaysRemaining": "Trial: {{remaining}} ang natitira", - "trialEndingSoon": "Malapit nang matapos ang trial: {{remaining}}" + "trialEndingSoon": "Malapit nang matapos ang trial: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Ano ang Bago", @@ -1189,7 +1201,8 @@ "strongArm": "Malakas na braso", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Hindi makakatanggap ng mga file ang instance na ito." + "remoteSpawnFilesNotSupported": "Hindi makakatanggap ng mga file ang instance na ito.", + "instanceSwitcherTitle": "Instance ng KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Nabigo", "cancelled": "Kinansela", "interrupted": "Naantala" - } + }, + "reviewStyle": { + "strict": "Strict", + "balanced": "Balanced", + "lenient": "Lenient", + "roast": "Roast" + }, + "focusArea": { + "security": "Seguridad", + "performance": "Pagganap", + "bugs": "Mga Bug", + "style": "Estilo", + "testing": "Pagsubok", + "documentation": "Dokumentasyon" + }, + "gateThreshold": { + "off": "Naka-off", + "all": "Lahat", + "warning": "Babala", + "critical": "Critical" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Kailangan ng Code Reviewer ng pansin", + "description": "Na-disable ang Code Reviewer dahil hindi ma-access ng Kilo ang repository na ito gamit ang aktibong pag-install ng GitHub App. I-update ang pag-install ng GitHub App, pagkatapos ay i-enable muli ang Code Reviewer.", + "recoveryLabel": "I-update ang GitHub App" + }, + "githubIpAllowList": { + "title": "Kailangan ng Code Reviewer ng pansin", + "description": "Na-disable ang Code Reviewer dahil gumagamit ang GitHub organization na ito ng IP allow list na humaharang sa Kilo. Makipag-ugnayan sa hi@kilocode.ai para sa tulong, pagkatapos ay i-enable muli ang Code Reviewer.", + "recoveryLabel": "Makipag-ugnayan sa suporta" + }, + "gitlabProjectAccessRequired": { + "title": "Kailangan ng Code Reviewer ng pansin", + "description": "Na-disable ang Code Reviewer dahil hindi makagawa ang Kilo ng GitLab Project Access Token para sa project na ito. Magbigay ng Maintainer access o i-enable ang Project Access Tokens, pagkatapos ay i-enable muli ang Code Reviewer.", + "recoveryLabel": "I-update ang GitLab integration" + }, + "byokInvalidKey": { + "title": "Kailangan ng Code Reviewer ng pansin", + "description": "Na-disable ang Code Reviewer dahil hindi wasto, na-revoke, o kulang sa pahintulot ang napiling BYOK API key. I-update ang key o pumili ng ibang modelo, pagkatapos ay i-enable muli ang Code Reviewer.", + "recoveryLabel": "I-update ang mga setting ng BYOK" + }, + "selectedModelUnavailable": { + "title": "Kailangan ng Code Reviewer ng pansin", + "description": "Na-disable ang Code Reviewer dahil hindi available ang napiling modelo para sa cloud agent sessions. Pumili ng available na modelo, pagkatapos ay i-enable muli ang Code Reviewer.", + "recoveryLabel": "I-update ang mga setting ng Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Kailangan ng Code Reviewer ng pansin", + "description": "Na-disable ang Code Reviewer pagkatapos ng tatlong repository clone timeout ngayong araw. Makipag-ugnayan sa hi@kilocode.ai para sa tulong, pagkatapos ay i-enable muli ang Code Reviewer.", + "recoveryLabel": "Makipag-ugnayan sa suporta" + } + }, + "unknownError": "Hindi kilalang error" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Mababa sa awtomatikong severity threshold ang finding. Maaari pa ring magsimula ang manu-manong remediation kapag pumasa ang mga safety gate.", "beforeEnablement": "Natapos ang analysis bago i-enable ang Auto Remediation. Maaari pa ring magsimula ang manu-manong remediation kapag pumasa ang mga safety gate.", "generic": "Hindi available ang remediation para sa finding na ito." + }, + "commandFailure": { + "ownerCapReached": "Puno na ang capacity ng analysis. Maghintay na matapos ang aktibong analysis, pagkatapos ay subukan muli.", + "githubTokenUnavailable": "Kailangan ng pansin ang GitHub authorization. Muling i-authorize ang GitHub App, pagkatapos ay subukan muli.", + "githubAuthInvalid": "Kailangan ng pansin ang GitHub authorization. Muling i-authorize ang GitHub App, pagkatapos ay subukan muli.", + "findingUnavailable": "Hindi na available ang finding. I-refresh ang mga finding at subukan muli kung mananatiling bukas ito.", + "repositoryUnavailable": "Hindi na available ang repository sa GitHub App. I-refresh ang repository access, pagkatapos ay subukan muli.", + "invalidDismissTarget": "Hindi ma-dismiss ang finding dahil hindi wasto ang Dependabot target nito.", + "commandStalled": "Hindi natapos ang queued action sa tamang oras. Subukan muli ang action.", + "queueRetriesExhausted": "Hindi makumpleto ang action pagkatapos ng ilang pagtatangka. Subukan muli ang action.", + "queueAdmissionFailed": "Hindi matanggap ang queued action. Subukan muli ang action.", + "generic": "Nabigo ang queued action. Subukan muli ang action." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Mababaw", + "deep": "Malalim" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Idagdag ang {{name}} sa mga paborito", "removeFromFavorites": "Alisin ang {{name}} sa mga paborito", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model ng session" }, "attachmentPreview": { "openFailedRetry": "Hindi nabuksan ang file. Pakisubukan muli.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Magdagdag ng credits", - "description": "Magdagdag ng credits para patuloy ang paggamit." + "description": "Magdagdag ng credits para patuloy ang paggamit.", + "billingPage": "pahina ng billing" }, "deviceSessions": { "couldNotLoad": "Hindi ma-load ang mga session", @@ -2710,7 +2795,10 @@ "restoreFailed": "Nabigong i-restore ang mga pagbili. Subukan muli.", "purchaseFailed": "Nabigong kumpletuhin ang pagbili.", "purchaseStartFailed": "Nabigong simulan ang pagbili sa App Store.", - "purchaseOwnedByAnotherAccount": "Ang Kilo Pass sa Apple Account na ito ay kabilang sa ibang Kilo account." + "purchaseOwnedByAnotherAccount": "Ang Kilo Pass sa Apple Account na ito ay kabilang sa ibang Kilo account.", + "couldNotConnectToAppStore": "Hindi makakonekta sa App Store. Suriin ang iyong koneksyon at subukan muli.", + "noMatchingProducts": "Walang tumugmang Kilo Pass product na ibinalik ng App Store.", + "purchaseMissingSignedTransaction": "Hindi kasama sa App Store purchase ang naka-sign na transaction JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Kailangan pang ayusin", "sorryTitle": "Nalulungkot kaming marinig iyan!", "sorryMessage": "Mangyaring ipaalam sa amin kung ano ang kailangang pagbutihin. Binabasa ng engineer na namamahala sa app ang bawat report!", - "emailUs": "I-email kami" + "emailUs": "I-email kami", + "emailSubject": "feedback sa mobile app" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Walang credit activity", "expires": "Mag-e-expire {{date}}", "title": "Credit activity", - "transactionFallback": "Transaksyon ng credit" + "transactionFallback": "Transaksyon ng credit", + "category": { + "organization_custom": "Custom ng organization", + "parent_to_child_transfer_in": "Transfer in mula sa parent", + "parent_to_child_transfer_out": "Transfer out papunta sa child", + "oss-sponsorship": "Sponsorship ng OSS", + "oss-monthly-reset": "Buwanang reset ng OSS", + "team-topup-bonus-2025": "Team top-up bonus 2025", + "accounting_adjustment": "Pagsasaayos ng accounting", + "credits_expired": "Nag-expire na credits" + } }, "inviteMember": { "emailError": "Maglagay ng wastong email address", @@ -2840,12 +2939,17 @@ "emptyDescription": "Awtomatikong bubuo ang mga invoice bawat billing cycle at lalabas dito kapag na-bill na ang iyong organization.", "emptyTitle": "Walang invoice", "invoiceFallback": "Invoice", - "statusOpen": "Bukas", - "statusPaid": "Bayad", - "statusVoid": "Wasto", "title": "Mga invoice", "downloadFailed": "Hindi ma-download ang invoice. Suriin ang iyong koneksyon at subukan muli.", - "sharingUnavailable": "Hindi available ang pag-share sa device na ito." + "sharingUnavailable": "Hindi available ang pag-share sa device na ito.", + "status": { + "paid": "Bayad", + "open": "Bukas", + "void": "Walang bisa", + "draft": "Draft", + "uncollectible": "Hindi makokolekta", + "unknown": "Hindi alam" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Kinokolektang data", "free": "Libre", - "couldNotUpdateFavorites": "Hindi ma-update ang mga paborito" + "couldNotUpdateFavorites": "Hindi ma-update ang mga paborito", + "thinkingEffort": { + "none": "Wala", + "minimal": "Minimal", + "low": "Mababa", + "medium": "Katamtaman", + "high": "Mataas", + "xhigh": "Napakataas", + "max": "Maksimum" + } } } diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index 66dd31f212..9d397f77b5 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -369,7 +369,11 @@ "paymentPastDue": "Paiement en retard. Veuillez mettre à jour votre mode de paiement.", "subscriptionCancels": "L'abonnement sera annulé le {{date}}", "trialDaysRemaining": "Essai : {{remaining}} restant", - "trialEndingSoon": "L'essai se termine bientôt : {{remaining}}" + "trialEndingSoon": "L'essai se termine bientôt : {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Nouveautés", @@ -738,7 +742,8 @@ "strongArm": "Bras fort", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Cette instance ne peut pas recevoir de fichiers." + "remoteSpawnFilesNotSupported": "Cette instance ne peut pas recevoir de fichiers.", + "instanceSwitcherTitle": "Instance KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -936,7 +941,60 @@ "failed": "Échoué", "cancelled": "Annulé", "interrupted": "Interrompu" - } + }, + "reviewStyle": { + "strict": "Strict", + "balanced": "Équilibré", + "lenient": "Indulgent", + "roast": "Roast" + }, + "focusArea": { + "security": "Sécurité", + "performance": "Performance", + "bugs": "Bugs", + "style": "Style", + "testing": "Tests", + "documentation": "Documentation" + }, + "gateThreshold": { + "off": "Désactivé", + "all": "Tout", + "warning": "Avertissement", + "critical": "Critique" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Le Code Reviewer nécessite votre attention", + "description": "Le Code Reviewer a été désactivé car Kilo ne peut pas accéder à ce dépôt avec une installation active de la GitHub App. Mettez à jour l'installation de la GitHub App, puis réactivez le Code Reviewer.", + "recoveryLabel": "Mettre à jour la GitHub App" + }, + "githubIpAllowList": { + "title": "Le Code Reviewer nécessite votre attention", + "description": "Le Code Reviewer a été désactivé car cette organisation GitHub utilise une liste d'autorisation IP qui bloque Kilo. Contactez hi@kilocode.ai pour obtenir de l'aide, puis réactivez le Code Reviewer.", + "recoveryLabel": "Contacter le support" + }, + "gitlabProjectAccessRequired": { + "title": "Le Code Reviewer nécessite votre attention", + "description": "Le Code Reviewer a été désactivé car Kilo ne peut pas créer de jeton d'accès de projet GitLab pour ce projet. Accordez un accès Maintainer ou activez les jetons d'accès de projet, puis réactivez le Code Reviewer.", + "recoveryLabel": "Mettre à jour l'intégration GitLab" + }, + "byokInvalidKey": { + "title": "Le Code Reviewer nécessite votre attention", + "description": "Le Code Reviewer a été désactivé car la clé API BYOK sélectionnée est invalide, révoquée ou ne dispose pas des autorisations nécessaires. Mettez à jour la clé ou choisissez un autre modèle, puis réactivez le Code Reviewer.", + "recoveryLabel": "Mettre à jour les paramètres BYOK" + }, + "selectedModelUnavailable": { + "title": "Le Code Reviewer nécessite votre attention", + "description": "Le Code Reviewer a été désactivé car le modèle sélectionné n'est pas disponible pour les sessions Cloud Agent. Choisissez un modèle disponible, puis réactivez le Code Reviewer.", + "recoveryLabel": "Mettre à jour les paramètres du Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Le Code Reviewer nécessite votre attention", + "description": "Le Code Reviewer a été désactivé après trois dépassements du délai de clonage de dépôt aujourd'hui. Contactez hi@kilocode.ai pour obtenir de l'aide, puis réactivez le Code Reviewer.", + "recoveryLabel": "Contacter le support" + } + }, + "unknownError": "Erreur inconnue" }, "securityAgent": { "filter": { @@ -1480,6 +1538,23 @@ "belowThreshold": "Le résultat est sous le seuil de gravité automatique. La remédiation manuelle peut toujours démarrer lorsque les contrôles de sécurité passent.", "beforeEnablement": "L'analyse a été réalisée avant l'activation de la remédiation automatique. La remédiation manuelle peut toujours démarrer lorsque les contrôles de sécurité passent.", "generic": "La remédiation n'est pas disponible pour ce résultat." + }, + "commandFailure": { + "ownerCapReached": "La capacité d'analyse est pleine. Attendez qu'une analyse active se termine, puis réessayez.", + "githubTokenUnavailable": "L'autorisation GitHub nécessite votre attention. Réautorisez la GitHub App, puis réessayez.", + "githubAuthInvalid": "L'autorisation GitHub nécessite votre attention. Réautorisez la GitHub App, puis réessayez.", + "findingUnavailable": "Le résultat n'est plus disponible. Actualisez les résultats et réessayez s'il reste ouvert.", + "repositoryUnavailable": "Le dépôt n'est plus disponible pour la GitHub App. Actualisez l'accès au dépôt, puis réessayez.", + "invalidDismissTarget": "Le résultat ne peut pas être ignoré car sa cible Dependabot est invalide.", + "commandStalled": "L'action en file d'attente n'a pas abouti à temps. Réessayez l'action.", + "queueRetriesExhausted": "L'action n'a pas pu être terminée après plusieurs tentatives. Réessayez l'action.", + "queueAdmissionFailed": "L'action en file d'attente n'a pas pu être admise. Réessayez l'action.", + "generic": "L'action en file d'attente a échoué. Réessayez l'action." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Superficielle", + "deep": "Profonde" } }, "agentChat": { @@ -1883,7 +1958,8 @@ "addToFavorites": "Ajouter {{name}} aux favoris", "removeFromFavorites": "Retirer {{name}} des favoris", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Moyen" + "thinkingEffortMedium": "Moyen", + "sessionModel": "Modèle de session" }, "attachmentPreview": { "openFailedRetry": "Échec de l'ouverture du fichier. Veuillez réessayer.", @@ -2030,7 +2106,8 @@ }, "addCredits": { "cta": "Ajouter des crédits", - "description": "Ajoutez des crédits pour que l'utilisation continue." + "description": "Ajoutez des crédits pour que l'utilisation continue.", + "billingPage": "page de facturation" }, "deviceSessions": { "couldNotLoad": "Impossible de charger les sessions", @@ -2212,7 +2289,10 @@ "restoreFailed": "Échec de la restauration des achats. Réessayez.", "purchaseFailed": "Échec de l'achat.", "purchaseStartFailed": "Impossible de démarrer l'achat sur l'App Store.", - "purchaseOwnedByAnotherAccount": "Le Kilo Pass sur ce compte Apple appartient à un autre compte Kilo." + "purchaseOwnedByAnotherAccount": "Le Kilo Pass sur ce compte Apple appartient à un autre compte Kilo.", + "couldNotConnectToAppStore": "Impossible de se connecter à l'App Store. Vérifiez votre connexion et réessayez.", + "noMatchingProducts": "Aucun produit Kilo Pass correspondant n'a été renvoyé par l'App Store.", + "purchaseMissingSignedTransaction": "L'achat App Store n'incluait pas de transaction signée JWS." }, "consent": { "kilo": "Kilo", @@ -2799,7 +2879,10 @@ "diff": { "selectedTapToChange": "{{label}} sélectionné, touchez pour modifier la sélection", "tapToComment": "{{label}}, touchez pour commenter", - "truncationBanner": "Affichage des {{limit}} premiers fichiers modifiés sur {{total}} — limite de l'API GitHub" + "truncationBanner": "Affichage des {{limit}} premiers fichiers modifiés sur {{total}} — limite de l'API GitHub", + "statusAdded": "Ajouté", + "statusContext": "Contexte", + "statusDeleted": "Supprimé" }, "linkPasteClipboardEmpty": "Le presse-papiers est vide", "linkPasteNotAPullRequest": "Ce n'est pas un lien de pull request GitHub", @@ -2813,6 +2896,11 @@ "reviewNotSubmitted": "Cette revue ne peut pas être soumise telle quelle. La PR a peut-être changé, ou vous ne pouvez pas passer en revue votre propre pull request.", "couldNotPostComment": "Impossible de publier le commentaire.", "couldNotSubmitReview": "Impossible de soumettre la revue. Vérifiez votre connexion et réessayez." + }, + "operation": { + "couldNotReply": "Impossible de répondre.", + "couldNotCompleteAction": "Impossible de terminer cette action.", + "mergeResultDefaultError": "GitHub n'a pas terminé la fusion." } }, "organization": { @@ -2830,7 +2918,17 @@ "emptyTitle": "Aucune activité de crédits", "expires": "Expire le {{date}}", "title": "Activité de crédits", - "transactionFallback": "Transaction de crédits" + "transactionFallback": "Transaction de crédits", + "category": { + "organization_custom": "Personnalisé pour l'organisation", + "parent_to_child_transfer_in": "Transfert entrant depuis l'organisation parente", + "parent_to_child_transfer_out": "Transfert sortant vers l'organisation enfant", + "oss-sponsorship": "Sponsoring OSS", + "oss-monthly-reset": "Réinitialisation mensuelle OSS", + "team-topup-bonus-2025": "Bonus de rechargement d'équipe 2025", + "accounting_adjustment": "Ajustement comptable", + "credits_expired": "Crédits expirés" + } }, "hub": { "balance": "Solde", @@ -2857,11 +2955,16 @@ "emptyTitle": "Aucune facture", "invoiceFallback": "Facture", "title": "Factures", - "statusPaid": "Payée", - "statusOpen": "Ouverte", - "statusVoid": "Annulée", "downloadFailed": "Impossible de télécharger la facture. Vérifiez votre connexion et réessayez.", - "sharingUnavailable": "Le partage n'est pas disponible sur cet appareil." + "sharingUnavailable": "Le partage n'est pas disponible sur cet appareil.", + "status": { + "paid": "Payée", + "open": "Ouverte", + "void": "Annulée", + "draft": "Brouillon", + "uncollectible": "Irrecouvrable", + "unknown": "Inconnu" + } }, "lowBalanceAlert": { "emailPlaceholder": "nom@entreprise.com", @@ -2962,7 +3065,8 @@ "promptTitle": "Comment trouvez-vous l'app Kilo ?", "rateKilo": "Évaluer Kilo", "sorryMessage": "Dites-nous ce qui doit être amélioré. L'ingénieur responsable de l'app lit chaque rapport !", - "sorryTitle": "Nous sommes désolés de l'entendre !" + "sorryTitle": "Nous sommes désolés de l'entendre !", + "emailSubject": "retour sur l'app mobile" }, "authErrors": { "emailAlreadyUsed": "Un compte avec cet e-mail existe déjà avec une autre méthode de connexion. Essayez une autre méthode ou utilisez « $t(login.moreSignInOptions) ».", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Données collectées", "free": "Gratuit", - "couldNotUpdateFavorites": "Impossible de mettre à jour les favoris" + "couldNotUpdateFavorites": "Impossible de mettre à jour les favoris", + "thinkingEffort": { + "none": "Aucun", + "minimal": "Minimal", + "low": "Faible", + "medium": "Moyen", + "high": "Élevé", + "xhigh": "Très élevé", + "max": "Maximum" + } } } diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index 1fad3b7a81..c90568e402 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -594,7 +594,10 @@ "diff": { "selectedTapToChange": "Roghnaithe {{label}}, tapáil chun an roghnú a athrú", "tapToComment": "{{label}}, tapáil chun trácht a dhéanamh", - "truncationBanner": "Ag taispeáint an chéad {{limit}} de na {{total}} chomhad athraithe — teorainn API GitHub" + "truncationBanner": "Ag taispeáint an chéad {{limit}} de na {{total}} chomhad athraithe — teorainn API GitHub", + "statusAdded": "Curtha leis", + "statusContext": "Comhthéacs", + "statusDeleted": "Scriosta" }, "linkPasteClipboardEmpty": "Tá an ghearrthaisce folamh", "linkPasteNotAPullRequest": "Ní nasc pull request GitHub é seo", @@ -608,6 +611,11 @@ "reviewNotSubmitted": "Ní féidir an t-athbhreithniú seo a sheoladh mar atá sé. B'fhéidir gur athraíodh an PR, nó ní féidir leat do iarratas tarraingthe féin a athbhreithniú.", "couldNotPostComment": "Níorbh fhéidir an trácht a phostáil.", "couldNotSubmitReview": "Níorbh fhéidir an t-athbhreithniú a sheoladh. Seiceáil do nasc agus bain triail as arís." + }, + "operation": { + "couldNotReply": "Níorbh fhéidir freagra a thabhairt.", + "couldNotCompleteAction": "Níorbh fhéidir an gníomh seo a chríochnú.", + "mergeResultDefaultError": "Níor chríochnaigh GitHub an cumaisc." } }, "notifications": { @@ -845,7 +853,11 @@ "paymentPastDue": "Íocaíocht thar téarma. Nuashonraigh do mhodh íocaíochta le do thoil.", "subscriptionCancels": "Cealaítear an síntiús {{date}}", "trialDaysRemaining": "Triail: {{remaining}} fágtha", - "trialEndingSoon": "Triail ag críochnú go luath: {{remaining}}" + "trialEndingSoon": "Triail ag críochnú go luath: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Caighdeánach" + } }, "changelog": { "title": "Cad atá Nua", @@ -1216,7 +1228,8 @@ "strongArm": "Lámh láidir", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Ní féidir leis an gcás seo comhaid a fháil." + "remoteSpawnFilesNotSupported": "Ní féidir leis an gcás seo comhaid a fháil.", + "instanceSwitcherTitle": "Instance KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1414,7 +1427,60 @@ "failed": "Theip", "cancelled": "Cealaithe", "interrupted": "Idirbhriste" - } + }, + "reviewStyle": { + "strict": "Dian", + "balanced": "Cothrom", + "lenient": "Maithiúnach", + "roast": "Roast" + }, + "focusArea": { + "security": "Slándáil", + "performance": "Feidhmíocht", + "bugs": "Fabhtanna", + "style": "Stíl", + "testing": "Tástáil", + "documentation": "Doiciméadú" + }, + "gateThreshold": { + "off": "As", + "all": "Uile", + "warning": "Rabhadh", + "critical": "Criticiúil" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Teastaíonn aird ar Athbhreithneoir Cóid", + "description": "Díchumasaíodh Athbhreithneoir Cóid toisc nach féidir le Kilo rochtain a fháil ar an stór seo le suiteáil ghníomhach GitHub App. Nuashonraigh suiteáil GitHub App, ansin cumasaigh Athbhreithneoir Cóid arís.", + "recoveryLabel": "Nuashonraigh GitHub App" + }, + "githubIpAllowList": { + "title": "Teastaíonn aird ar Athbhreithneoir Cóid", + "description": "Díchumasaíodh Athbhreithneoir Cóid toisc go n-úsáideann an eagraíocht GitHub seo liosta ceadaithe IP a chuireann bac ar Kilo. Déan teagmháil le hi@kilocode.ai le haghaidh cabhrach, ansin cumasaigh Athbhreithneoir Cóid arís.", + "recoveryLabel": "Déan teagmháil le tacaíocht" + }, + "gitlabProjectAccessRequired": { + "title": "Teastaíonn aird ar Athbhreithneoir Cóid", + "description": "Díchumasaíodh Athbhreithneoir Cóid toisc nach féidir le Kilo Token Rochtana Tionscadail GitLab a chruthú don tionscadal seo. Deonaigh rochtain Cothaitheora nó cumasaigh Token Rochtana Tionscadail, ansin cumasaigh Athbhreithneoir Cóid arís.", + "recoveryLabel": "Nuashonraigh comhtháthú GitLab" + }, + "byokInvalidKey": { + "title": "Teastaíonn aird ar Athbhreithneoir Cóid", + "description": "Díchumasaíodh Athbhreithneoir Cóid toisc go bhfuil an eochair API BYOK roghnaithe neamhbhailí, cúlghairthe, nó gan cead. Nuashonraigh an eochair nó roghnaigh samhail eile, ansin cumasaigh Athbhreithneoir Cóid arís.", + "recoveryLabel": "Nuashonraigh socruithe BYOK" + }, + "selectedModelUnavailable": { + "title": "Teastaíonn aird ar Athbhreithneoir Cóid", + "description": "Díchumasaíodh Athbhreithneoir Cóid toisc nach bhfuil an tsamhail roghnaithe ar fáil do sheisiúin ghníomhaire scamall. Roghnaigh samhail atá ar fáil, ansin cumasaigh Athbhreithneoir Cóid arís.", + "recoveryLabel": "Nuashonraigh socruithe Athbhreithneora Cóid" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Teastaíonn aird ar Athbhreithneoir Cóid", + "description": "Díchumasaíodh Athbhreithneoir Cóid tar éis trí mhoill chlónála stóir inniu. Déan teagmháil le hi@kilocode.ai le haghaidh cabhrach, ansin cumasaigh Athbhreithneoir Cóid arís.", + "recoveryLabel": "Déan teagmháil le tacaíocht" + } + }, + "unknownError": "Earráid anaithnid" }, "securityAgent": { "filter": { @@ -1966,6 +2032,23 @@ "belowThreshold": "Tá an fhionnachtain faoi bhun na tairsí déine uathoibríche. Is féidir leasú láimhe a thosú fós nuair a ritheann na geataí sábháilteachta.", "beforeEnablement": "Críochnaíodh an anailís sular cumasaíodh Uath-fheabhsú. Is féidir leasú láimhe a thosú fós nuair a ritheann na geataí sábháilteachta.", "generic": "Níl leasú ar fáil don fhionnachtain seo." + }, + "commandFailure": { + "ownerCapReached": "Tá acmhainn na hanailíse lán. Fan go gcríochnóidh anailís ghníomhach, ansin bain triail as arís.", + "githubTokenUnavailable": "Teastaíonn aird ar údarú GitHub. Údaraigh GitHub App arís, ansin bain triail as arís.", + "githubAuthInvalid": "Teastaíonn aird ar údarú GitHub. Údaraigh GitHub App arís, ansin bain triail as arís.", + "findingUnavailable": "Níl an fhionnachtain ar fáil a thuilleadh. Athnuaigh fionnachtana agus bain triail as arís má fhanann sí oscailte.", + "repositoryUnavailable": "Níl an stór ar fáil do GitHub App a thuilleadh. Athnuaigh rochtain stóir, ansin bain triail as arís.", + "invalidDismissTarget": "Ní féidir an fhionnachtain a dhísheachaint toisc go bhfuil a sprioc Dependabot neamhbhailí.", + "commandStalled": "Níor chríochnaigh an gníomh scuaineáilte in am. Déan an gníomh arís.", + "queueRetriesExhausted": "Níorbh fhéidir an gníomh a chríochnú tar éis roinnt iarrachtaí. Déan an gníomh arís.", + "queueAdmissionFailed": "Níorbh fhéidir an gníomh scuaineáilte a ligean isteach. Déan an gníomh arís.", + "generic": "Theip ar an ngníomh scuaineáilte. Déan an gníomh arís." + }, + "analysisMode": { + "auto": "Uathoibríoch", + "shallow": "Éadomhain", + "deep": "Domhain" } }, "agents": { @@ -2447,7 +2530,8 @@ "addToFavorites": "Cuir {{name}} leis na cinn is fearr leat", "removeFromFavorites": "Bain {{name}} ó na cinn is fearr leat", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Samhail an tseisiúin" }, "attachmentPreview": { "openFailedRetry": "Theip ar an gcomhad a oscailt. Bain triail as arís.", @@ -2582,7 +2666,8 @@ }, "addCredits": { "cta": "Cuir creidmheasanna leis", - "description": "Cuir creidmheasanna leis le húsáid a choinneáil ar siúl." + "description": "Cuir creidmheasanna leis le húsáid a choinneáil ar siúl.", + "billingPage": "leathanach billeála" }, "deviceSessions": { "couldNotLoad": "Níorbh fhéidir seisiúin a lódáil", @@ -2770,7 +2855,10 @@ "restoreFailed": "Theip ar na ceannacháin a chur ar ais. Bain triail as arís.", "purchaseFailed": "Theip ar an gceannach a chríochnú.", "purchaseStartFailed": "Theip ar cheannach App Store a thosú.", - "purchaseOwnedByAnotherAccount": "Baineann an Kilo Pass ar an Apple Account seo le cuntas Kilo éagsúil." + "purchaseOwnedByAnotherAccount": "Baineann an Kilo Pass ar an Apple Account seo le cuntas Kilo éagsúil.", + "couldNotConnectToAppStore": "Níorbh fhéidir ceangal le App Store. Seiceáil do cheangal agus bain triail as arís.", + "noMatchingProducts": "Níor fhill App Store aon táirgí Kilo Pass comhoiriúnacha.", + "purchaseMissingSignedTransaction": "Ní raibh idirbheart sínithe JWS san áireamh i gceannach App Store." }, "consent": { "kilo": "Kilo", @@ -2866,7 +2954,8 @@ "needsWork": "Teastaíonn obair", "sorryTitle": "Tá brón orainn é sin a chloisteáil!", "sorryMessage": "Inis dúinn cad a chaithfidh a bheith níos fearr. Léann an t-innealtóir atá i gceannas ar an aip gach tuarascáil!", - "emailUs": "Seol ríomhphost chugainn" + "emailUs": "Seol ríomhphost chugainn", + "emailSubject": "aiseolas ar an aip shoghluaiste" }, "organization": { "boundary": { @@ -2883,7 +2972,17 @@ "emptyTitle": "Níl aon ghníomhaíocht creidmheasa", "expires": "Imíonn in éag {{date}}", "title": "Gníomhaíocht creidmheasa", - "transactionFallback": "Idirbheart creidmheasa" + "transactionFallback": "Idirbheart creidmheasa", + "category": { + "organization_custom": "Saincheaptha eagraíochta", + "parent_to_child_transfer_in": "Aistriú isteach ó thuismitheoir go leanbh", + "parent_to_child_transfer_out": "Aistriú amach ó thuismitheoir go leanbh", + "oss-sponsorship": "Urraíocht OSS", + "oss-monthly-reset": "Athshocrú míosúil OSS", + "team-topup-bonus-2025": "Bónas forlíonta foirne 2025", + "accounting_adjustment": "Coigeartú cuntasaíochta", + "credits_expired": "Creidmheasanna imithe in éag" + } }, "inviteMember": { "emailError": "Iontráil seoladh ríomhphoist bailí", @@ -2900,12 +2999,17 @@ "emptyDescription": "Gintear sonraisc go huathoibríoch gach timthriall billeála agus taispeánfar iad anseo nuair a bheidh d'eagraíocht billeáilte.", "emptyTitle": "Níl aon sonraisc", "invoiceFallback": "Sonrasc", - "statusOpen": "Ar oscailt", - "statusPaid": "Íoctha", - "statusVoid": "Neamhní", "title": "Sonraisc", "downloadFailed": "Níorbh fhéidir an tsonrasc a íoslódáil. Seiceáil do nasc agus bain triail as arís.", - "sharingUnavailable": "Níl roinnt ar fáil ar an ngléas seo." + "sharingUnavailable": "Níl roinnt ar fáil ar an ngléas seo.", + "status": { + "paid": "Íoctha", + "open": "Ar oscailt", + "void": "Neamhní", + "draft": "Dréacht", + "uncollectible": "Dobhailithe", + "unknown": "Anaithnid" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3034,6 +3138,15 @@ "models": { "dataCollected": "Sonraí bailithe", "free": "Saor in aisce", - "couldNotUpdateFavorites": "Níorbh fhéidir na cinn is fearr leat a nuashonrú" + "couldNotUpdateFavorites": "Níorbh fhéidir na cinn is fearr leat a nuashonrú", + "thinkingEffort": { + "none": "Aon cheann", + "minimal": "Íosta", + "low": "Íseal", + "medium": "Meánach", + "high": "Ard", + "xhigh": "An-ard", + "max": "Uasmhéid" + } } } diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index d323d06143..a50a36200a 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Seleccionado {{label}}, toca para cambiar a selección", "tapToComment": "{{label}}, toca para comentar", - "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} ficheiros modificados — límite da API de GitHub" + "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} ficheiros modificados — límite da API de GitHub", + "statusAdded": "Engadido", + "statusContext": "Contexto", + "statusDeleted": "Eliminado" }, "linkPasteClipboardEmpty": "O portapapeis está baleiro", "linkPasteNotAPullRequest": "Non é unha ligazón de solicitude de cambios de GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Esta revisión non se pode enviar tal e como está. O PR pode que cambiase, ou non podes revisar o teu propio pull request.", "couldNotPostComment": "Non se puido publicar o comentario.", "couldNotSubmitReview": "Non se puido enviar a revisión. Comproba a túa conexión e proba de novo." + }, + "operation": { + "couldNotReply": "Non se puido responder.", + "couldNotCompleteAction": "Non se puido completar esta acción.", + "mergeResultDefaultError": "GitHub non completou a fusión." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "O pago está vencido. Actualiza o teu método de pago.", "subscriptionCancels": "A subscrición cancelase o {{date}}", "trialDaysRemaining": "Probas: quedan {{remaining}}", - "trialEndingSoon": "As probas rematan pronto: {{remaining}}" + "trialEndingSoon": "As probas rematan pronto: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Novidades", @@ -1189,7 +1201,8 @@ "strongArm": "Brazo forte", "talisman": "Talismán" }, - "remoteSpawnFilesNotSupported": "Esta instancia non pode recibir arquivos." + "remoteSpawnFilesNotSupported": "Esta instancia non pode recibir arquivos.", + "instanceSwitcherTitle": "Instancia de KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Fallou", "cancelled": "Cancelado", "interrupted": "Interrompido" - } + }, + "reviewStyle": { + "strict": "Estrito", + "balanced": "Equilibrado", + "lenient": "Indulgente", + "roast": "Roast" + }, + "focusArea": { + "security": "Seguridade", + "performance": "Rendemento", + "bugs": "Erros", + "style": "Estilo", + "testing": "Probas", + "documentation": "Documentación" + }, + "gateThreshold": { + "off": "Desactivado", + "all": "Todos", + "warning": "Aviso", + "critical": "Crítico" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "O Revisor de código necesita atención", + "description": "O Revisor de código desactivouse porque Kilo non pode acceder a este repositorio cunha instalación activa da app de GitHub. Actualiza a instalación da app de GitHub e volve activar o Revisor de código.", + "recoveryLabel": "Actualizar a app de GitHub" + }, + "githubIpAllowList": { + "title": "O Revisor de código necesita atención", + "description": "O Revisor de código desactivouse porque esta organización de GitHub usa unha lista de permitidos de IP que bloquea Kilo. Contacta con hi@kilocode.ai para obter axuda e volve activar o Revisor de código.", + "recoveryLabel": "Contactar co soporte" + }, + "gitlabProjectAccessRequired": { + "title": "O Revisor de código necesita atención", + "description": "O Revisor de código desactivouse porque Kilo non pode crear un token de acceso ao proxecto de GitLab para este proxecto. Concede acceso de mantenedor ou activa os tokens de acceso ao proxecto e volve activar o Revisor de código.", + "recoveryLabel": "Actualizar a integración de GitLab" + }, + "byokInvalidKey": { + "title": "O Revisor de código necesita atención", + "description": "O Revisor de código desactivouse porque a clave de API de BYOK seleccionada é inválida, foi revogada ou carece de permisos. Actualiza a clave ou escolle outro modelo e volve activar o Revisor de código.", + "recoveryLabel": "Actualizar a configuración de BYOK" + }, + "selectedModelUnavailable": { + "title": "O Revisor de código necesita atención", + "description": "O Revisor de código desactivouse porque o modelo seleccionado non está dispoñible para sesións de axente na nube. Escolle un modelo dispoñible e volve activar o Revisor de código.", + "recoveryLabel": "Actualizar a configuración do Revisor de código" + }, + "repeatedRepositoryCloneTimeout": { + "title": "O Revisor de código necesita atención", + "description": "O Revisor de código desactivouse despois de tres tempos de espera de clonación de repositorios hoxe. Contacta con hi@kilocode.ai para obter axuda e volve activar o Revisor de código.", + "recoveryLabel": "Contactar co soporte" + } + }, + "unknownError": "Erro descoñecido" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "O achado está por baixo do limiar de gravidade automático. A corrección manual aínda pode comezar cando pasen as portas de seguridade.", "beforeEnablement": "A análise completouse antes de activarse a Autoremediación. A corrección manual aínda pode comezar cando pasen as portas de seguridade.", "generic": "A corrección non está dispoñible para este achado." + }, + "commandFailure": { + "ownerCapReached": "A capacidade de análise está chea. Agarda a que remate unha análise activa e reinténtao.", + "githubTokenUnavailable": "A autorización de GitHub necesita atención. Volve autorizar a app de GitHub e reinténtao.", + "githubAuthInvalid": "A autorización de GitHub necesita atención. Volve autorizar a app de GitHub e reinténtao.", + "findingUnavailable": "O achado xa non está dispoñible. Actualiza os achados e reinténtao se permanece aberto.", + "repositoryUnavailable": "O repositorio xa non está dispoñible para a app de GitHub. Actualiza o acceso ao repositorio e reinténtao.", + "invalidDismissTarget": "O achado non se pode descartar porque o seu obxectivo de Dependabot é inválido.", + "commandStalled": "A acción en cola non rematou a tempo. Reintenta a acción.", + "queueRetriesExhausted": "A acción non se puido completar despois de varios intentos. Reintenta a acción.", + "queueAdmissionFailed": "A acción en cola non se puido admitir. Reintenta a acción.", + "generic": "A acción en cola fallou. Reintenta a acción." + }, + "analysisMode": { + "auto": "Automático", + "shallow": "Superficial", + "deep": "Profunda" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Engadir {{name}} aos favoritos", "removeFromFavorites": "Eliminar {{name}} dos favoritos", "thinkingEffortXhigh": "XA", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Modelo da sesión" }, "attachmentPreview": { "openFailedRetry": "Non se puido abrir o ficheiro. Téntao de novo.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Engadir créditos", - "description": "Engade créditos para manter o uso en marcha." + "description": "Engade créditos para manter o uso en marcha.", + "billingPage": "páxina de facturación" }, "deviceSessions": { "couldNotLoad": "Non se puideron cargar as sesións", @@ -2710,7 +2795,10 @@ "restoreFailed": "Non se puideron restaurar as compras. Proba de novo.", "purchaseFailed": "Non se puido completar a compra.", "purchaseStartFailed": "Non se puido iniciar a compra na App Store.", - "purchaseOwnedByAnotherAccount": "O Kilo Pass desta conta de Apple pertence a outra conta de Kilo." + "purchaseOwnedByAnotherAccount": "O Kilo Pass desta conta de Apple pertence a outra conta de Kilo.", + "couldNotConnectToAppStore": "Non se puido conectar coa App Store. Comproba a túa conexión e téntao de novo.", + "noMatchingProducts": "A App Store non devolveu ningún produto de Kilo Pass coincidente.", + "purchaseMissingSignedTransaction": "A compra da App Store non incluíu unha transacción asinada en JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Necesita melloras", "sorryTitle": "Sentímolo!", "sorryMessage": "Por favor, dínos que precisa mellorar. A persoa enxeñeira responsable da app le cada un dos informes!", - "emailUs": "Escríbenos" + "emailUs": "Escríbenos", + "emailSubject": "comentarios sobre a app móbil" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Non hai actividade de crédito", "expires": "Caduca {{date}}", "title": "Actividade de crédito", - "transactionFallback": "Transacción de crédito" + "transactionFallback": "Transacción de crédito", + "category": { + "organization_custom": "Personalizado da organización", + "parent_to_child_transfer_in": "Transferencia entrante desde a organización nai", + "parent_to_child_transfer_out": "Transferencia saínte cara á organización filla", + "oss-sponsorship": "Patrocinio OSS", + "oss-monthly-reset": "Restablecemento mensual de OSS", + "team-topup-bonus-2025": "Bono de recarga de equipo 2025", + "accounting_adjustment": "Axuste contable", + "credits_expired": "Créditos caducados" + } }, "inviteMember": { "emailError": "Introduce un enderezo de correo válido", @@ -2840,12 +2939,17 @@ "emptyDescription": "As facturas xéranse automaticamente en cada ciclo de facturación e aparecerán aquí unha vez que se facture a túa organización.", "emptyTitle": "Non hai facturas", "invoiceFallback": "Factura", - "statusOpen": "Aberta", - "statusPaid": "Pagada", - "statusVoid": "Anulada", "title": "Facturas", "downloadFailed": "Non se puido descargar a factura. Comproba a túa conexión e proba de novo.", - "sharingUnavailable": "O compartido non está dispoñible neste dispositivo." + "sharingUnavailable": "O compartido non está dispoñible neste dispositivo.", + "status": { + "paid": "Pagada", + "open": "Aberta", + "void": "Anulada", + "draft": "Borrador", + "uncollectible": "Incobrable", + "unknown": "Descoñecido" + } }, "lowBalanceAlert": { "emailPlaceholder": "nome@empresa.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Datos recollidos", "free": "Grátis", - "couldNotUpdateFavorites": "Non se puideron actualizar os favoritos" + "couldNotUpdateFavorites": "Non se puideron actualizar os favoritos", + "thinkingEffort": { + "none": "Ningún", + "minimal": "Mínimo", + "low": "Baixo", + "medium": "Medio", + "high": "Alto", + "xhigh": "Moi alto", + "max": "Máximo" + } } } diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index f25cb64b4c..68690ab0ff 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} પસંદ કર્યું, પસંદગી બદલવા ટેપ કરો", "tapToComment": "{{label}}, ટિપ્પણી કરવા ટેપ કરો", - "truncationBanner": "બદલાયેલી {{total}} ફાઇલોમાંથી પ્રથમ {{limit}} બતાવી રહ્યાં છીએ — GitHub API મર્યાદા" + "truncationBanner": "બદલાયેલી {{total}} ફાઇલોમાંથી પ્રથમ {{limit}} બતાવી રહ્યાં છીએ — GitHub API મર્યાદા", + "statusAdded": "ઉમેરાયું", + "statusContext": "સંદર્ભ", + "statusDeleted": "કાઢી નાખવામાં આવ્યું" }, "linkPasteClipboardEmpty": "ક્લિપબોર્ડ ખાલી છે", "linkPasteNotAPullRequest": "આ GitHub પુલ રિક્વેસ્ટ લિંક નથી", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "આ સમીક્ષા જેમ છે તેમ સબમિટ કરી શકાતી નથી. PR બદલાયું હોઈ શકે છે, અથવા તમે તમારી પોતાની પુલ રિક્વેસ્ટની સમીક્ષા કરી શકતા નથી.", "couldNotPostComment": "ટિપ્પણી પોસ્ટ કરી શકાઈ નહીં.", "couldNotSubmitReview": "સમીક્ષા સબમિટ કરી શકાઈ નહીં. તમારું કનેક્શન ચકાસો અને ફરી પ્રયત્ન કરો." + }, + "operation": { + "couldNotReply": "જવાબ આપી શકાયો નહીં.", + "couldNotCompleteAction": "આ ક્રિયા પૂર્ણ કરી શકાઈ નહીં.", + "mergeResultDefaultError": "GitHub એ મર્જ પૂર્ણ કર્યું નથી." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ચુકવણી મોડી છે. કૃપા કરીને તમારી ચુકવણી પદ્ધતિ અપડેટ કરો.", "subscriptionCancels": "સબ્સ્ક્રિપ્શન {{date}} ના રોજ રદ થાય છે", "trialDaysRemaining": "ટ્રાયલ: {{remaining}} બાકી", - "trialEndingSoon": "ટ્રાયલ ટૂંક સમયમાં સમાપ્ત: {{remaining}}" + "trialEndingSoon": "ટ્રાયલ ટૂંક સમયમાં સમાપ્ત: {{remaining}}", + "planName": { + "commit": "કમિટ", + "standard": "સ્ટાન્ડર્ડ" + } }, "changelog": { "title": "નવું શું છે", @@ -1189,7 +1201,8 @@ "strongArm": "મજબૂત હાથ", "talisman": "તાવીજ" }, - "remoteSpawnFilesNotSupported": "આ ઇન્સ્ટન્સ ફાઇલો મેળવી શકતું નથી." + "remoteSpawnFilesNotSupported": "આ ઇન્સ્ટન્સ ફાઇલો મેળવી શકતું નથી.", + "instanceSwitcherTitle": "KiloClaw ઇન્સ્ટન્સ" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "નિષ્ફળ", "cancelled": "રદ કરેલ", "interrupted": "વિક્ષેપિત" - } + }, + "reviewStyle": { + "strict": "કડક", + "balanced": "સંતુલિત", + "lenient": "ઉદાર", + "roast": "રોસ્ટ" + }, + "focusArea": { + "security": "સુરક્ષા", + "performance": "પ્રદર્શન", + "bugs": "બગ્સ", + "style": "શૈલી", + "testing": "પરીક્ષણ", + "documentation": "દસ્તાવેજીકરણ" + }, + "gateThreshold": { + "off": "બંધ", + "all": "બધા", + "warning": "ચેતવણી", + "critical": "નિર્ણાયક" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "કોડ સમીક્ષકને ધ્યાનની જરૂર છે", + "description": "કોડ સમીક્ષક અક્ષમ કરવામાં આવ્યું કારણ કે Kilo સક્રિય GitHub ઍપ ઇન્સ્ટોલેશન સાથે આ રિપોઝિટરીને ઍક્સેસ કરી શકતું નથી. GitHub ઍપ ઇન્સ્ટોલેશન અપડેટ કરો, પછી કોડ સમીક્ષક ફરી સક્ષમ કરો.", + "recoveryLabel": "GitHub ઍપ અપડેટ કરો" + }, + "githubIpAllowList": { + "title": "કોડ સમીક્ષકને ધ્યાનની જરૂર છે", + "description": "કોડ સમીક્ષક અક્ષમ કરવામાં આવ્યું કારણ કે આ GitHub સંસ્થા Kilo ને અવરોધતી IP અનુમતિ યાદી વાપરે છે. મદદ માટે hi@kilocode.ai નો સંપર્ક કરો, પછી કોડ સમીક્ષક ફરી સક્ષમ કરો.", + "recoveryLabel": "સપોર્ટનો સંપર્ક કરો" + }, + "gitlabProjectAccessRequired": { + "title": "કોડ સમીક્ષકને ધ્યાનની જરૂર છે", + "description": "કોડ સમીક્ષક અક્ષમ કરવામાં આવ્યું કારણ કે Kilo આ પ્રોજેક્ટ માટે GitLab પ્રોજેક્ટ એક્સેસ ટોકન બનાવી શકતું નથી. મેન્ટેનર એક્સેસ આપો અથવા પ્રોજેક્ટ એક્સેસ ટોકન્સ સક્ષમ કરો, પછી કોડ સમીક્ષક ફરી સક્ષમ કરો.", + "recoveryLabel": "GitLab એકીકરણ અપડેટ કરો" + }, + "byokInvalidKey": { + "title": "કોડ સમીક્ષકને ધ્યાનની જરૂર છે", + "description": "કોડ સમીક્ષક અક્ષમ કરવામાં આવ્યું કારણ કે પસંદ કરેલ BYOK API કી અમાન્ય, રદ કરેલ, અથવા પરવાનગી વગરની છે. કી અપડેટ કરો અથવા બીજું મોડલ પસંદ કરો, પછી કોડ સમીક્ષક ફરી સક્ષમ કરો.", + "recoveryLabel": "BYOK સેટિંગ્સ અપડેટ કરો" + }, + "selectedModelUnavailable": { + "title": "કોડ સમીક્ષકને ધ્યાનની જરૂર છે", + "description": "કોડ સમીક્ષક અક્ષમ કરવામાં આવ્યું કારણ કે પસંદ કરેલ મોડલ ક્લાઉડ એજન્ટ સત્રો માટે ઉપલબ્ધ નથી. ઉપલબ્ધ મોડલ પસંદ કરો, પછી કોડ સમીક્ષક ફરી સક્ષમ કરો.", + "recoveryLabel": "કોડ સમીક્ષક સેટિંગ્સ અપડેટ કરો" + }, + "repeatedRepositoryCloneTimeout": { + "title": "કોડ સમીક્ષકને ધ્યાનની જરૂર છે", + "description": "ત્રણ રિપોઝિટરી ક્લોન ટાઇમઆઉટ પછી આજે કોડ સમીક્ષક અક્ષમ કરવામાં આવ્યું. મદદ માટે hi@kilocode.ai નો સંપર્ક કરો, પછી કોડ સમીક્ષક ફરી સક્ષમ કરો.", + "recoveryLabel": "સપોર્ટનો સંપર્ક કરો" + } + }, + "unknownError": "અજ્ઞાત ભૂલ" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "શોધ સ્વચાલિત ગંભીરતા થ્રેશોલ્ડથી નીચે છે. સલામતી ગેટ પસાર થાય ત્યારે મેન્યુઅલ સુધારણા હજુ શરૂ થઈ શકે છે.", "beforeEnablement": "ઓટો સુધારણા સક્ષમ થતા પહેલા વિશ્લેષણ પૂર્ણ થયું. સલામતી ગેટ પસાર થાય ત્યારે મેન્યુઅલ સુધારણા હજુ શરૂ થઈ શકે છે.", "generic": "આ શોધ માટે સુધારણા ઉપલબ્ધ નથી." + }, + "commandFailure": { + "ownerCapReached": "વિશ્લેષણ ક્ષમતા ભરેલી છે. સક્રિય વિશ્લેષણ પૂરું થાય ત્યાં સુધી રાહ જુઓ, પછી ફરી પ્રયત્ન કરો.", + "githubTokenUnavailable": "GitHub અધિકૃતતાને ધ્યાનની જરૂર છે. GitHub ઍપ ફરી અધિકૃત કરો, પછી ફરી પ્રયત્ન કરો.", + "githubAuthInvalid": "GitHub અધિકૃતતાને ધ્યાનની જરૂર છે. GitHub ઍપ ફરી અધિકૃત કરો, પછી ફરી પ્રયત્ન કરો.", + "findingUnavailable": "શોધ હવે ઉપલબ્ધ નથી. શોધો તાજી કરો અને તે ખુલ્લી રહે તો ફરી પ્રયત્ન કરો.", + "repositoryUnavailable": "રિપોઝિટરી હવે GitHub ઍપ માટે ઉપલબ્ધ નથી. રિપોઝિટરી ઍક્સેસ તાજી કરો, પછી ફરી પ્રયત્ન કરો.", + "invalidDismissTarget": "તેનું Dependabot લક્ષ્ય અમાન્ય હોવાથી શોધને કાઢી નાખી શકાતી નથી.", + "commandStalled": "કતારમાં રહેલી ક્રિયા સમયસર પૂર્ણ થઈ નહીં. ક્રિયા ફરી પ્રયત્ન કરો.", + "queueRetriesExhausted": "ઘણા પ્રયત્નો પછી ક્રિયા પૂર્ણ કરી શકાઈ નહીં. ક્રિયા ફરી પ્રયત્ન કરો.", + "queueAdmissionFailed": "કતારમાં રહેલી ક્રિયા સ્વીકારી શકાઈ નહીં. ક્રિયા ફરી પ્રયત્ન કરો.", + "generic": "કતારમાં રહેલી ક્રિયા નિષ્ફળ થઈ. ક્રિયા ફરી પ્રયત્ન કરો." + }, + "analysisMode": { + "auto": "ઓટો", + "shallow": "છીછરું", + "deep": "ઊંડું" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} ફેવરિટમાં ઉમેરો", "removeFromFavorites": "{{name}} ફેવરિટમાંથી દૂર કરો", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "સત્ર મોડલ" }, "attachmentPreview": { "openFailedRetry": "ફાઇલ ખોલવામાં નિષ્ફળ. કૃપા કરીને ફરી પ્રયાસ કરો.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ક્રેડિટ ઉમેરો", - "description": "વપરાશ ચાલુ રાખવા માટે ક્રેડિટ ઉમેરો." + "description": "વપરાશ ચાલુ રાખવા માટે ક્રેડિટ ઉમેરો.", + "billingPage": "બિલિંગ પૃષ્ઠ" }, "deviceSessions": { "couldNotLoad": "સત્રો લોડ કરી શકાયા નહીં", @@ -2710,7 +2795,10 @@ "restoreFailed": "ખરીદીઓ પુનઃસ્થાપિત કરવામાં નિષ્ફળ. ફરી પ્રયત્ન કરો.", "purchaseFailed": "ખરીદી પૂર્ણ કરવામાં નિષ્ફળ.", "purchaseStartFailed": "App Store ખરીદી શરૂ કરવામાં નિષ્ફળ.", - "purchaseOwnedByAnotherAccount": "આ Apple ખાતા પરનું Kilo Pass એ અલગ Kilo ખાતા સાથે સંબંધિત છે." + "purchaseOwnedByAnotherAccount": "આ Apple ખાતા પરનું Kilo Pass એ અલગ Kilo ખાતા સાથે સંબંધિત છે.", + "couldNotConnectToAppStore": "App Store થી કનેક્ટ થઈ શકાયું નહીં. તમારું કનેક્શન ચકાસો અને ફરી પ્રયત્ન કરો.", + "noMatchingProducts": "App Store દ્વારા કોઈ મેળ ખાતા Kilo Pass ઉત્પાદનો પરત આપવામાં આવ્યા નથી.", + "purchaseMissingSignedTransaction": "App Store ખરીદીમાં સહી કરેલ ટ્રાન્ઝેક્શન JWS સમાવિષ્ટ ન હતું." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "સુધારણાની જરૂર છે", "sorryTitle": "આ સાંભળીને અમને દિલગીરી થઈ!", "sorryMessage": "શું સુધારવાની જરૂર છે તે અમને જણાવો. એપ માટે જવાબદાર એન્જિનિયર દરેક રિપોર્ટ વાંચે છે!", - "emailUs": "અમને ઇમેઇલ કરો" + "emailUs": "અમને ઇમેઇલ કરો", + "emailSubject": "મોબાઇલ એપ પ્રતિસાદ" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "કોઈ ક્રેડિટ પ્રવૃત્તિ નથી", "expires": "{{date}} ને સમાપ્ત", "title": "ક્રેડિટ પ્રવૃત્તિ", - "transactionFallback": "ક્રેડિટ ટ્રાન્ઝેક્શન" + "transactionFallback": "ક્રેડિટ ટ્રાન્ઝેક્શન", + "category": { + "organization_custom": "સંગઠન કસ્ટમ", + "parent_to_child_transfer_in": "પેરન્ટથી ચાઇલ્ડમાં સ્થાનાંતરણ (ઇન)", + "parent_to_child_transfer_out": "પેરન્ટથી ચાઇલ્ડમાં સ્થાનાંતરણ (આઉટ)", + "oss-sponsorship": "OSS સ્પોન્સરશિપ", + "oss-monthly-reset": "OSS માસિક રીસેટ", + "team-topup-bonus-2025": "ટીમ ટોપઅપ બોનસ 2025", + "accounting_adjustment": "એકાઉન્ટિંગ ગોઠવણ", + "credits_expired": "ક્રેડિટ સમાપ્ત થઈ" + } }, "inviteMember": { "emailError": "માન્ય ઇમેઇલ સરનામું દાખલ કરો", @@ -2840,12 +2939,17 @@ "emptyDescription": "ઇનવોઇસ દરેક બિલિંગ ચક્ર પર આપમેળે ઉત્પન્ન થાય છે અને તમારા સંગઠનને બિલ થતાં જ અહીં દેખાશે.", "emptyTitle": "કોઈ ઇનવોઇસ નથી", "invoiceFallback": "ઇનવોઇસ", - "statusOpen": "ખુલ્લું", - "statusPaid": "ચૂકવેલ", - "statusVoid": "રદ", "title": "ઇનવોઇસ", "downloadFailed": "ઇનવોઇસ ડાઉનલોડ કરી શકાયું નહીં. તમારું કનેક્શન ચકાસો અને ફરી પ્રયત્ન કરો.", - "sharingUnavailable": "આ ઉપકરણ પર શેરિંગ ઉપલબ્ધ નથી." + "sharingUnavailable": "આ ઉપકરણ પર શેરિંગ ઉપલબ્ધ નથી.", + "status": { + "paid": "ચૂકવેલ", + "open": "ખુલ્લું", + "void": "રદ", + "draft": "ડ્રાફ્ટ", + "uncollectible": "વસૂલ કરી ન શકાય તેવું", + "unknown": "અજ્ઞાત" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "એકત્રિત ડેટા", "free": "મફત", - "couldNotUpdateFavorites": "ફેવરિટ અપડેટ કરી શકાયાં નહીં" + "couldNotUpdateFavorites": "ફેવરિટ અપડેટ કરી શકાયાં નહીં", + "thinkingEffort": { + "none": "કંઈ નહીં", + "minimal": "ન્યૂનતમ", + "low": "નીચું", + "medium": "મધ્યમ", + "high": "ઉચ્ચ", + "xhigh": "અતિ ઉચ્ચ", + "max": "મહત્તમ" + } } } diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index d73015026c..7a4ef30c43 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "An zaɓi {{label}}, danna don canza zaɓi", "tapToComment": "{{label}}, danna don tsokaci", - "truncationBanner": "Ana nuna farkon {{limit}} na {{total}} fayilolin da aka canza — iyakar GitHub API" + "truncationBanner": "Ana nuna farkon {{limit}} na {{total}} fayilolin da aka canza — iyakar GitHub API", + "statusAdded": "An ƙara", + "statusContext": "Mahallin", + "statusDeleted": "An share" }, "linkPasteClipboardEmpty": "Allon kwafi babu kome", "linkPasteNotAPullRequest": "Ba hanyar GitHub pull request ba", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Ba za a iya ƙaddamar da wannan bita ba yadda take. Wataƙila PR ya canza, ko kuma ba za ka iya bitar buƙatar janka ba.", "couldNotPostComment": "Ba a iya buga tsokaci ba.", "couldNotSubmitReview": "Ba a iya ƙaddamar da bita ba. Duba haɗinka ka sake gwadawa." + }, + "operation": { + "couldNotReply": "Ba a iya amsawa ba.", + "couldNotCompleteAction": "Ba a iya kammala wannan aikin ba.", + "mergeResultDefaultError": "GitHub bai kammala haɗawa ba." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Biyan kuɗi ya wuce lokaci. Da fatan sabunta hanyar biyan ka.", "subscriptionCancels": "Biyan kuɗi zai soke {{date}}", "trialDaysRemaining": "Gwaji: {{remaining}} suka rage", - "trialEndingSoon": "Gwaji zai ƙare ba da jimawa: {{remaining}}" + "trialEndingSoon": "Gwaji zai ƙare ba da jimawa: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Me Sabo", @@ -1189,7 +1201,8 @@ "strongArm": "Hannu mai ƙarfi", "talisman": "Layya" }, - "remoteSpawnFilesNotSupported": "Wannan instance ba zai iya karɓar fayiloli ba." + "remoteSpawnFilesNotSupported": "Wannan instance ba zai iya karɓar fayiloli ba.", + "instanceSwitcherTitle": "Misalin KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Ya kasa", "cancelled": "An soke", "interrupted": "An katse" - } + }, + "reviewStyle": { + "strict": "Mai tsauri", + "balanced": "Daidaitacce", + "lenient": "Sassauƙa", + "roast": "Roast" + }, + "focusArea": { + "security": "Tsaro", + "performance": "Aiki", + "bugs": "Kwari", + "style": "Salon", + "testing": "Gwaji", + "documentation": "Rubuce-rubuce" + }, + "gateThreshold": { + "off": "Kashe", + "all": "Duk", + "warning": "Gargadi", + "critical": "Mai tsanani" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Mai Bitar Lambar yana buƙatar kulawa", + "description": "An kashe Mai Bitar Lambar domin Kilo ba zai iya shiga wannan ma'ajiya ba tare da shigarwar GitHub App mai aiki. Sabunta shigarwar GitHub App, sannan ka kunna Mai Bitar Lambar.", + "recoveryLabel": "Sabunta GitHub App" + }, + "githubIpAllowList": { + "title": "Mai Bitar Lambar yana buƙatar kulawa", + "description": "An kashe Mai Bitar Lambar domin wannan ƙungiyar GitHub tana amfani da jerin dama na IP wanda ke toshe Kilo. Tuntuɓi hi@kilocode.ai don taimako, sannan ka kunna Mai Bitar Lambar.", + "recoveryLabel": "Tuntuɓi tallafi" + }, + "gitlabProjectAccessRequired": { + "title": "Mai Bitar Lambar yana buƙatar kulawa", + "description": "An kashe Mai Bitar Lambar domin Kilo ba zai iya ƙirƙirar Token na shiga aikin GitLab don wannan aikin ba. Ba da damar Maintainer ko kunna Token na shiga aiki, sannan ka kunna Mai Bitar Lambar.", + "recoveryLabel": "Sabunta haɗin GitLab" + }, + "byokInvalidKey": { + "title": "Mai Bitar Lambar yana buƙatar kulawa", + "description": "An kashe Mai Bitar Lambar domin zaɓaɓɓen maɓallin API na BYOK bai inganta ba, an soke shi, ko kuma ba shi da izini. Sabunta maɓallin ko zaɓi wani samfuri, sannan ka kunna Mai Bitar Lambar.", + "recoveryLabel": "Sabunta saitunan BYOK" + }, + "selectedModelUnavailable": { + "title": "Mai Bitar Lambar yana buƙatar kulawa", + "description": "An kashe Mai Bitar Lambar domin zaɓaɓɓen samfurin ba ya samuwa don zaman wakilan cloud. Zaɓi samfurin da ke samuwa, sannan ka kunna Mai Bitar Lambar.", + "recoveryLabel": "Sabunta saitunan Mai Bitar Lambar" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Mai Bitar Lambar yana buƙatar kulawa", + "description": "An kashe Mai Bitar Lambar bayan lokutan ƙarewar clone na ma'ajiya sau uku a yau. Tuntuɓi hi@kilocode.ai don taimako, sannan ka kunna Mai Bitar Lambar.", + "recoveryLabel": "Tuntuɓi tallafi" + } + }, + "unknownError": "Kuskuren da ba a sani ba" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Sakamako yana ƙasa da matakin tsananin atomatik. Gyaran hannu na iya farawa har yanzu idan ƙofofin aminci suka wuce.", "beforeEnablement": "Nazari ya kammala kafin a kunna gyara ta atomatik. Gyaran hannu na iya farawa har yanzu idan ƙofofin aminci suka wuce.", "generic": "Gyara ba ya samuwa domin wannan sakamako." + }, + "commandFailure": { + "ownerCapReached": "Ƙarfin nazari ya cika. Jira wani nazari mai aiki ya gama, sannan ka sake gwadawa.", + "githubTokenUnavailable": "Izinin GitHub yana buƙatar kulawa. Sake ba da izini ga GitHub App, sannan ka sake gwadawa.", + "githubAuthInvalid": "Izinin GitHub yana buƙatar kulawa. Sake ba da izini ga GitHub App, sannan ka sake gwadawa.", + "findingUnavailable": "Sakamakon ba ya samuwa kuma. Sabunta sakamakon ka sake gwadawa idan har yana buɗe.", + "repositoryUnavailable": "Ma'ajiya ba ta samuwa ga GitHub App kuma. Sabunta damar ma'ajiya, sannan ka sake gwadawa.", + "invalidDismissTarget": "Ba za a iya watsar da sakamako ba domin manufar Dependabot tasa ba ta inganta.", + "commandStalled": "Aikin da ke jere bai ƙare a lokaci ba. Sake gwada aikin.", + "queueRetriesExhausted": "Ba a iya kammala aikin ba bayan ƙoƙari da yawa. Sake gwada aikin.", + "queueAdmissionFailed": "Ba a iya shigar da aikin da ke jere ba. Sake gwada aikin.", + "generic": "Aikin da ke jere ya gaza. Sake gwada aikin." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Maras zurfi", + "deep": "Mai zurfi" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Ƙara {{name}} zuwa waɗanda ake so", "removeFromFavorites": "Cire {{name}} daga waɗanda ake so", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Samfurin zaman" }, "attachmentPreview": { "openFailedRetry": "An kasa buɗe fayil. Da fatan za a sake gwadawa.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Ƙara credits", - "description": "Ƙara credits don ci gaba da amfani." + "description": "Ƙara credits don ci gaba da amfani.", + "billingPage": "shafin biyan kuɗi" }, "deviceSessions": { "couldNotLoad": "An kasa ɗora zaman", @@ -2710,7 +2795,10 @@ "restoreFailed": "An kasa maido da sayayya. Sake gwadawa.", "purchaseFailed": "An kasa kammala sayayya.", "purchaseStartFailed": "An kasa fara sayayyar App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass akan wannan Apple Account na wani asusun Kilo ne daban." + "purchaseOwnedByAnotherAccount": "Kilo Pass akan wannan Apple Account na wani asusun Kilo ne daban.", + "couldNotConnectToAppStore": "Ba a iya haɗawa da App Store ba. Duba haɗinka ka sake gwadawa.", + "noMatchingProducts": "Babu samfuran Kilo Pass da suka dace da App Store ya dawo da su.", + "purchaseMissingSignedTransaction": "Siyayyar App Store ba ta haɗa da JWS na ma'amala mai sa hannu ba." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Yana buƙatar ingantawa", "sorryTitle": "Mun yi nadamar jin haka!", "sorryMessage": "Da fatan za a sanar da mu abin da ya kamata a inganta. Injiniyan da ke kula da app ɗin yana karanta kowane rahoto!", - "emailUs": "Aiko mana imel" + "emailUs": "Aiko mana imel", + "emailSubject": "ra'ayin app ɗin wayar hannu" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Babu ayyukan credits", "expires": "Yana ƙare {{date}}", "title": "Ayyukan credits", - "transactionFallback": "Ma'amalar credits" + "transactionFallback": "Ma'amalar credits", + "category": { + "organization_custom": "Na musamman na ƙungiya", + "parent_to_child_transfer_in": "Canja wuri daga iyaye zuwa yaro (shiga)", + "parent_to_child_transfer_out": "Canja wuri daga iyaye zuwa yaro (fita)", + "oss-sponsorship": "Tallafin OSS", + "oss-monthly-reset": "Sake saitin OSS na wata-wata", + "team-topup-bonus-2025": "Kyautar Topup na Ƙungiya 2025", + "accounting_adjustment": "Daidaitawar lissafin kuɗi", + "credits_expired": "Credits sun ƙare" + } }, "inviteMember": { "emailError": "Shigar da ingantacciyar adireshin imel", @@ -2840,12 +2939,17 @@ "emptyDescription": "Ana samar da daftaruwa kai tsaye kowane zagayen biyan kuɗi kuma za su bayyana a nan da zarar an biya ƙungiyarka.", "emptyTitle": "Babu daftaruwa", "invoiceFallback": "Daftari", - "statusOpen": "Buɗe", - "statusPaid": "An biya", - "statusVoid": "Rasa inganci", "title": "Daftaruwa", "downloadFailed": "An kasa sauke daftari. Duba haɗinka ka sake gwadawa.", - "sharingUnavailable": "Raba ba ya samuwa akan wannan na'ura." + "sharingUnavailable": "Raba ba ya samuwa akan wannan na'ura.", + "status": { + "paid": "An biya", + "open": "Buɗe", + "void": "Rasa inganci", + "draft": "Daftari", + "uncollectible": "Ba za a iya karɓa ba", + "unknown": "Ba a sani ba" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Bayanan da aka tattara", "free": "Kyauta", - "couldNotUpdateFavorites": "Ba a iya sabunta waɗanda ake so ba" + "couldNotUpdateFavorites": "Ba a iya sabunta waɗanda ake so ba", + "thinkingEffort": { + "none": "Babu", + "minimal": "Kadan", + "low": "Ƙanana", + "medium": "Matsakaici", + "high": "Babba", + "xhigh": "Babba sosai", + "max": "Mafi girma" + } } } diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index c01753bc3e..b4696b1ee2 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -383,7 +383,11 @@ "paymentPastDue": "התשלום באיחור. עדכן את אמצעי התשלום שלך.", "subscriptionCancels": "המינוי מתבטל ב-{{date}}", "trialDaysRemaining": "ניסיון: נותרו {{remaining}}", - "trialEndingSoon": "הניסיון מסתיים בקרוב: {{remaining}}" + "trialEndingSoon": "הניסיון מסתיים בקרוב: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "מה חדש", @@ -752,7 +756,8 @@ "strongArm": "זרוע חזקה", "talisman": "קמע" }, - "remoteSpawnFilesNotSupported": "מופע זה אינו יכול לקבל קבצים." + "remoteSpawnFilesNotSupported": "מופע זה אינו יכול לקבל קבצים.", + "instanceSwitcherTitle": "מופע KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -950,7 +955,60 @@ "failed": "נכשל", "cancelled": "בוטל", "interrupted": "הופסק" - } + }, + "reviewStyle": { + "strict": "מחמיר", + "balanced": "מאוזן", + "lenient": "מקל", + "roast": "Roast" + }, + "focusArea": { + "security": "אבטחה", + "performance": "ביצועים", + "bugs": "באגים", + "style": "סגנון", + "testing": "בדיקות", + "documentation": "תיעוד" + }, + "gateThreshold": { + "off": "כבוי", + "all": "הכל", + "warning": "אזהרה", + "critical": "קריטי" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "סוקר הקוד זקוק לתשומת לב", + "description": "סוקר הקוד הושבת מכיוון ש-Kilo אינו יכול לגשת למאגר זה עם התקנת אפליקציית GitHub פעילה. עדכן את התקנת אפליקציית GitHub, ולאחר מכן הפעל שוב את סוקר הקוד.", + "recoveryLabel": "עדכן את אפליקציית GitHub" + }, + "githubIpAllowList": { + "title": "סוקר הקוד זקוק לתשומת לב", + "description": "סוקר הקוד הושבת מכיוון שארגון GitHub זה משתמש ברשימת היתר IP שחוסמת את Kilo. צור קשר עם hi@kilocode.ai לעזרה, ולאחר מכן הפעל שוב את סוקר הקוד.", + "recoveryLabel": "צור קשר עם התמיכה" + }, + "gitlabProjectAccessRequired": { + "title": "סוקר הקוד זקוק לתשומת לב", + "description": "סוקר הקוד הושבת מכיוון ש-Kilo אינו יכול ליצור אסימון גישה לפרויקט GitLab עבור פרויקט זה. הענק גישת Maintainer או הפעל Project Access Tokens, ולאחר מכן הפעל שוב את סוקר הקוד.", + "recoveryLabel": "עדכן את שילוב GitLab" + }, + "byokInvalidKey": { + "title": "סוקר הקוד זקוק לתשומת לב", + "description": "סוקר הקוד הושבת מכיוון שמפתח ה-API של BYOK שנבחר אינו תקין, בוטל או חסר הרשאה. עדכן את המפתח או בחר דגם אחר, ולאחר מכן הפעל שוב את סוקר הקוד.", + "recoveryLabel": "עדכן את הגדרות BYOK" + }, + "selectedModelUnavailable": { + "title": "סוקר הקוד זקוק לתשומת לב", + "description": "סוקר הקוד הושבת מכיוון שהדגם שנבחר אינו זמין להפעלות סוכן ענן. בחר דגם זמין, ולאחר מכן הפעל שוב את סוקר הקוד.", + "recoveryLabel": "עדכן את הגדרות סוקר הקוד" + }, + "repeatedRepositoryCloneTimeout": { + "title": "סוקר הקוד זקוק לתשומת לב", + "description": "סוקר הקוד הושבת לאחר שלושה פסקי זמן של שיבוט מאגר היום. צור קשר עם hi@kilocode.ai לעזרה, ולאחר מכן הפעל שוב את סוקר הקוד.", + "recoveryLabel": "צור קשר עם התמיכה" + } + }, + "unknownError": "שגיאה לא ידועה" }, "securityAgent": { "filter": { @@ -1494,6 +1552,23 @@ "belowThreshold": "הממצא מתחת לסף החומרה האוטומטי. תיקון ידני עדיין יכול להתחיל כאשר שערי הבטיחות עוברים.", "beforeEnablement": "הניתוח הושלם לפני שהתיקון האוטומטי הופעל. תיקון ידני עדיין יכול להתחיל כאשר שערי הבטיחות עוברים.", "generic": "התיקון אינו זמין עבור ממצא זה." + }, + "commandFailure": { + "ownerCapReached": "קיבולת הניתוח מלאה. המתן עד שניתוח פעיל יסתיים, ואז נסה שוב.", + "githubTokenUnavailable": "אישור GitHub דורש תשומת לב. הענק הרשאה מחדש לאפליקציית GitHub, ואז נסה שוב.", + "githubAuthInvalid": "אישור GitHub דורש תשומת לב. הענק הרשאה מחדש לאפליקציית GitHub, ואז נסה שוב.", + "findingUnavailable": "הממצא אינו זמין עוד. רענן את הממצאים ונסה שוב אם הוא עדיין פתוח.", + "repositoryUnavailable": "המאגר אינו זמין עוד לאפליקציית GitHub. רענן את גישת המאגר, ואז נסה שוב.", + "invalidDismissTarget": "לא ניתן לדחות את הממצא מכיוון שיעד ה-Dependabot שלו אינו תקין.", + "commandStalled": "הפעולה שהועמדה בתור לא הסתיימה בזמן. נסה שוב את הפעולה.", + "queueRetriesExhausted": "לא ניתן היה להשלים את הפעולה לאחר מספר ניסיונות. נסה שוב את הפעולה.", + "queueAdmissionFailed": "לא ניתן היה לקבל את הפעולה שהועמדה בתור. נסה שוב את הפעולה.", + "generic": "הפעולה שהועמדה בתור נכשלה. נסה שוב את הפעולה." + }, + "analysisMode": { + "auto": "אוטומטי", + "shallow": "רדוד", + "deep": "עמוק" } }, "agents": { @@ -1963,7 +2038,8 @@ "addToFavorites": "הוסף את {{name}} למועדפים", "removeFromFavorites": "הסר את {{name}} מהמועדפים", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "בינוני" + "thinkingEffortMedium": "בינוני", + "sessionModel": "דגם הפעלה" }, "attachmentPreview": { "openFailedRetry": "לא ניתן היה לפתוח את הקובץ. נסה שוב.", @@ -2096,7 +2172,8 @@ }, "addCredits": { "cta": "הוסף קרדיטים", - "description": "הוסף קרדיטים כדי להמשיך את השימוש." + "description": "הוסף קרדיטים כדי להמשיך את השימוש.", + "billingPage": "דף החיוב" }, "deviceSessions": { "couldNotLoad": "לא ניתן לטעון הפעלות", @@ -2284,7 +2361,10 @@ "restoreFailed": "שחזור הרכישות נכשל. נסה שוב.", "purchaseFailed": "השלמת הרכישה נכשלה.", "purchaseStartFailed": "התחלת הרכישה ב-App Store נכשלה.", - "purchaseOwnedByAnotherAccount": "ה-Kilo Pass בחשבון Apple הזה שייך לחשבון Kilo אחר." + "purchaseOwnedByAnotherAccount": "ה-Kilo Pass בחשבון Apple הזה שייך לחשבון Kilo אחר.", + "couldNotConnectToAppStore": "לא ניתן היה להתחבר ל-App Store. בדוק את החיבור ונסה שוב.", + "noMatchingProducts": "לא הוחזרו מוצרי Kilo Pass תואמים מ-App Store.", + "purchaseMissingSignedTransaction": "הרכישה ב-App Store לא כללה JWS עסקה חתום." }, "consent": { "kilo": "Kilo", @@ -2799,7 +2879,10 @@ "diff": { "selectedTapToChange": "{{label}} נבחר, הקש כדי לשנות את הבחירה", "tapToComment": "{{label}}, הקש כדי להגיב", - "truncationBanner": "מציג את {{limit}} הראשונים מתוך {{total}} קבצים ששונו — מגבלת API של GitHub" + "truncationBanner": "מציג את {{limit}} הראשונים מתוך {{total}} קבצים ששונו — מגבלת API של GitHub", + "statusAdded": "נוסף", + "statusContext": "הקשר", + "statusDeleted": "נמחק" }, "linkPasteClipboardEmpty": "הלוח ריק", "linkPasteNotAPullRequest": "לא קישור לבקשת משיכה ב-GitHub", @@ -2813,6 +2896,11 @@ "reviewNotSubmitted": "לא ניתן לשלוח סקירה זו כפי שהיא. ייתכן שה-PR השתנה, או שאינך יכול לסקור בקשת משיכה משלך.", "couldNotPostComment": "לא ניתן היה לפרסם תגובה.", "couldNotSubmitReview": "לא ניתן היה לשלוח את הסקירה. בדוק את החיבור ונסה שוב." + }, + "operation": { + "couldNotReply": "לא ניתן היה להשיב.", + "couldNotCompleteAction": "לא ניתן היה להשלים פעולה זו.", + "mergeResultDefaultError": "GitHub לא השלים את המיזוג." } }, "organization": { @@ -2830,7 +2918,17 @@ "emptyTitle": "אין פעילות קרדיטים", "expires": "פג תוקף {{date}}", "title": "פעילות קרדיטים", - "transactionFallback": "עסקת קרדיט" + "transactionFallback": "עסקת קרדיט", + "category": { + "organization_custom": "מותאם אישית של הארגון", + "parent_to_child_transfer_in": "העברה נכנסת מהורה לילד", + "parent_to_child_transfer_out": "העברה יוצאת מהורה לילד", + "oss-sponsorship": "חסות OSS", + "oss-monthly-reset": "איפוס חודשי של OSS", + "team-topup-bonus-2025": "בונוס טופ-אפ של צוות 2025", + "accounting_adjustment": "התאמה חשבונאית", + "credits_expired": "הקרדיטים פגו" + } }, "hub": { "balance": "יתרה", @@ -2857,11 +2955,16 @@ "emptyTitle": "אין חשבוניות", "invoiceFallback": "חשבונית", "title": "חשבוניות", - "statusPaid": "שולם", - "statusOpen": "פתוח", - "statusVoid": "מבוטל", "downloadFailed": "לא ניתן היה להוריד את החשבונית. בדוק את החיבור ונסה שוב.", - "sharingUnavailable": "שיתוף אינו זמין במכשיר זה." + "sharingUnavailable": "שיתוף אינו זמין במכשיר זה.", + "status": { + "paid": "שולם", + "open": "פתוח", + "void": "מבוטל", + "draft": "טיוטה", + "uncollectible": "לא ניתן לגביה", + "unknown": "לא ידוע" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2962,7 +3065,8 @@ "promptTitle": "מה דעתך על אפליקציית Kilo?", "rateKilo": "דרג את Kilo", "sorryMessage": "ספר לנו מה צריך להשתפר. המהנדס האחראי על האפליקציה קורא כל דוח!", - "sorryTitle": "אנחנו מצטערים לשמוע את זה!" + "sorryTitle": "אנחנו מצטערים לשמוע את זה!", + "emailSubject": "משוב על אפליקציית המובייל" }, "authErrors": { "emailAlreadyUsed": "חשבון עם כתובת דוא\"ל זו כבר קיים בשיטת התחברות אחרת. נסה שיטה אחרת או השתמש ב'$t(login.moreSignInOptions)'.", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "נתונים שנאספו", "free": "חינם", - "couldNotUpdateFavorites": "לא ניתן היה לעדכן את המועדפים" + "couldNotUpdateFavorites": "לא ניתן היה לעדכן את המועדפים", + "thinkingEffort": { + "none": "ללא", + "minimal": "מינימלי", + "low": "נמוך", + "medium": "בינוני", + "high": "גבוה", + "xhigh": "גבוה במיוחד", + "max": "מקסימום" + } } } diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index d430e747e3..647b7b15e4 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -382,7 +382,11 @@ "paymentPastDue": "भुगतान बकाया है। कृपया अपनी भुगतान विधि अपडेट करें।", "subscriptionCancels": "सदस्यता {{date}} को रद्द होती है", "trialDaysRemaining": "परीक्षण: {{remaining}} शेष", - "trialEndingSoon": "परीक्षण जल्द समाप्त हो रहा है: {{remaining}}" + "trialEndingSoon": "परीक्षण जल्द समाप्त हो रहा है: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "नया क्या है", @@ -750,7 +754,8 @@ "strongArm": "मज़बूत भुजा", "talisman": "तावीज़" }, - "remoteSpawnFilesNotSupported": "यह इंस्टेंस फ़ाइलें प्राप्त नहीं कर सकता।" + "remoteSpawnFilesNotSupported": "यह इंस्टेंस फ़ाइलें प्राप्त नहीं कर सकता।", + "instanceSwitcherTitle": "KiloClaw इंस्टेंस" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "विफल", "cancelled": "रद्द किया गया", "interrupted": "बाधित" - } + }, + "reviewStyle": { + "strict": "सख्त", + "balanced": "संतुलित", + "lenient": "उदार", + "roast": "रोस्ट" + }, + "focusArea": { + "security": "सुरक्षा", + "performance": "प्रदर्शन", + "bugs": "बग्स", + "style": "शैली", + "testing": "परीक्षण", + "documentation": "दस्तावेज़ीकरण" + }, + "gateThreshold": { + "off": "बंद", + "all": "सभी", + "warning": "चेतावनी", + "critical": "गंभीर" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "कोड समीक्षक को ध्यान देने की आवश्यकता है", + "description": "कोड समीक्षक अक्षम किया गया था क्योंकि Kilo सक्रिय GitHub ऐप इंस्टॉलेशन के साथ इस रिपॉज़िटरी तक पहुँच नहीं सकता। GitHub ऐप इंस्टॉलेशन अपडेट करें, फिर कोड समीक्षक को फिर से सक्षम करें।", + "recoveryLabel": "GitHub ऐप अपडेट करें" + }, + "githubIpAllowList": { + "title": "कोड समीक्षक को ध्यान देने की आवश्यकता है", + "description": "कोड समीक्षक अक्षम किया गया था क्योंकि यह GitHub संगठन IP अनुमति सूची का उपयोग करता है जो Kilo को ब्लॉक करती है। सहायता के लिए hi@kilocode.ai से संपर्क करें, फिर कोड समीक्षक को फिर से सक्षम करें।", + "recoveryLabel": "सहायता से संपर्क करें" + }, + "gitlabProjectAccessRequired": { + "title": "कोड समीक्षक को ध्यान देने की आवश्यकता है", + "description": "कोड समीक्षक अक्षम किया गया था क्योंकि Kilo इस प्रोजेक्ट के लिए GitLab प्रोजेक्ट एक्सेस टोकन नहीं बना सकता। Maintainer पहुँच दें या Project Access Tokens सक्षम करें, फिर कोड समीक्षक को फिर से सक्षम करें।", + "recoveryLabel": "GitLab एकीकरण अपडेट करें" + }, + "byokInvalidKey": { + "title": "कोड समीक्षक को ध्यान देने की आवश्यकता है", + "description": "कोड समीक्षक अक्षम किया गया था क्योंकि चयनित BYOK API कुंजी अमान्य, निरस्त, या अनुमति-रहित है। कुंजी अपडेट करें या दूसरा मॉडल चुनें, फिर कोड समीक्षक को फिर से सक्षम करें।", + "recoveryLabel": "BYOK सेटिंग अपडेट करें" + }, + "selectedModelUnavailable": { + "title": "कोड समीक्षक को ध्यान देने की आवश्यकता है", + "description": "कोड समीक्षक अक्षम किया गया था क्योंकि चयनित मॉडल क्लाउड एजेंट सत्रों के लिए उपलब्ध नहीं है। उपलब्ध मॉडल चुनें, फिर कोड समीक्षक को फिर से सक्षम करें।", + "recoveryLabel": "कोड समीक्षक सेटिंग अपडेट करें" + }, + "repeatedRepositoryCloneTimeout": { + "title": "कोड समीक्षक को ध्यान देने की आवश्यकता है", + "description": "आज तीन रिपॉज़िटरी क्लोन टाइमआउट के बाद कोड समीक्षक अक्षम किया गया था। सहायता के लिए hi@kilocode.ai से संपर्क करें, फिर कोड समीक्षक को फिर से सक्षम करें।", + "recoveryLabel": "सहायता से संपर्क करें" + } + }, + "unknownError": "अज्ञात त्रुटि" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "निष्कर्ष स्वचालित गंभीरता सीमा से नीचे है। सुरक्षा गेट पार होने पर मैन्युअल सुधार फिर भी शुरू हो सकता है।", "beforeEnablement": "ऑटो सुधार सक्षम होने से पहले विश्लेषण पूरा हुआ। सुरक्षा गेट पार होने पर मैन्युअल सुधार फिर भी शुरू हो सकता है।", "generic": "इस निष्कर्ष के लिए सुधार अनुपलब्ध है।" + }, + "commandFailure": { + "ownerCapReached": "विश्लेषण क्षमता भर गई है। किसी सक्रिय विश्लेषण के समाप्त होने की प्रतीक्षा करें, फिर दोबारा प्रयास करें।", + "githubTokenUnavailable": "GitHub प्राधिकरण पर ध्यान देने की आवश्यकता है। GitHub ऐप को फिर से अधिकृत करें, फिर दोबारा प्रयास करें।", + "githubAuthInvalid": "GitHub प्राधिकरण पर ध्यान देने की आवश्यकता है। GitHub ऐप को फिर से अधिकृत करें, फिर दोबारा प्रयास करें।", + "findingUnavailable": "निष्कर्ष अब उपलब्ध नहीं है। निष्कर्ष ताज़ा करें और यदि वह खुला रहता है तो दोबारा प्रयास करें।", + "repositoryUnavailable": "रिपॉज़िटरी अब GitHub ऐप के लिए उपलब्ध नहीं है। रिपॉज़िटरी पहुँच ताज़ा करें, फिर दोबारा प्रयास करें।", + "invalidDismissTarget": "निष्कर्ष को खारिज नहीं किया जा सकता क्योंकि इसका Dependabot लक्ष्य अमान्य है।", + "commandStalled": "कतार में लगी कार्रवाई समय पर पूरी नहीं हुई। कार्रवाई फिर से करें।", + "queueRetriesExhausted": "कई प्रयासों के बाद कार्रवाई पूरी नहीं हो सकी। कार्रवाई फिर से करें।", + "queueAdmissionFailed": "कतार में लगी कार्रवाई स्वीकार नहीं की जा सकी। कार्रवाई फिर से करें।", + "generic": "कतार में लगी कार्रवाई विफल रही। कार्रवाई फिर से करें।" + }, + "analysisMode": { + "auto": "ऑटो", + "shallow": "उथला", + "deep": "गहरा" } }, "agents": { @@ -1917,7 +1992,8 @@ "addToFavorites": "{{name}} को पसंदीदा में जोड़ें", "removeFromFavorites": "{{name}} को पसंदीदा से हटाएँ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "सत्र मॉडल" }, "attachmentPreview": { "openFailedRetry": "फ़ाइल खोलने में विफल। कृपया फिर से कोशिश करें।", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "क्रेडिट जोड़ें", - "description": "उपयोग जारी रखने के लिए क्रेडिट जोड़ें।" + "description": "उपयोग जारी रखने के लिए क्रेडिट जोड़ें।", + "billingPage": "बिलिंग पेज" }, "deviceSessions": { "couldNotLoad": "सत्र लोड नहीं हो सके", @@ -2271,7 +2348,10 @@ "restoreFailed": "खरीदारी पुनर्स्थापित करने में विफल। फिर से प्रयास करें।", "purchaseFailed": "खरीदारी पूरी करने में विफल।", "purchaseStartFailed": "App Store खरीदारी शुरू करने में विफल।", - "purchaseOwnedByAnotherAccount": "इस Apple खाते का Kilo Pass किसी दूसरे Kilo खाते से संबंधित है।" + "purchaseOwnedByAnotherAccount": "इस Apple खाते का Kilo Pass किसी दूसरे Kilo खाते से संबंधित है।", + "couldNotConnectToAppStore": "App Store से कनेक्ट नहीं हो सका। अपना कनेक्शन जाँचें और फिर से प्रयास करें।", + "noMatchingProducts": "App Store द्वारा कोई मिलता-जुलता Kilo Pass उत्पाद नहीं लौटाया गया।", + "purchaseMissingSignedTransaction": "App Store खरीद में हस्ताक्षरित लेन-देन JWS शामिल नहीं था।" }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "{{label}} चुना गया, चयन बदलने के लिए टैप करें", "tapToComment": "{{label}}, टिप्पणी करने के लिए टैप करें", - "truncationBanner": "बदली गई {{total}} फ़ाइलों में से पहली {{limit}} फ़ाइलें दिखाई जा रही हैं — GitHub API सीमा" + "truncationBanner": "बदली गई {{total}} फ़ाइलों में से पहली {{limit}} फ़ाइलें दिखाई जा रही हैं — GitHub API सीमा", + "statusAdded": "जोड़ा गया", + "statusContext": "संदर्भ", + "statusDeleted": "हटाया गया" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड खाली है", "linkPasteNotAPullRequest": "यह GitHub पुल रिक्वेस्ट लिंक नहीं है", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "यह समीक्षा जैसी है वैसी सबमिट नहीं की जा सकती। PR बदल गया हो सकता है, या आप अपनी खुद की पुल रिक्वेस्ट की समीक्षा नहीं कर सकते।", "couldNotPostComment": "टिप्पणी पोस्ट नहीं की जा सकी।", "couldNotSubmitReview": "समीक्षा सबमिट नहीं की जा सकी। अपना कनेक्शन जाँचें और फिर से प्रयास करें।" + }, + "operation": { + "couldNotReply": "उत्तर नहीं दे सका।", + "couldNotCompleteAction": "यह कार्रवाई पूरी नहीं हो सकी।", + "mergeResultDefaultError": "GitHub ने मर्ज पूरा नहीं किया।" } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "कोई क्रेडिट गतिविधि नहीं", "expires": "{{date}} को समाप्त होता है", "title": "क्रेडिट गतिविधि", - "transactionFallback": "क्रेडिट लेन-देन" + "transactionFallback": "क्रेडिट लेन-देन", + "category": { + "organization_custom": "संगठन कस्टम", + "parent_to_child_transfer_in": "पैरेंट से चाइल्ड में स्थानांतरण (आवक)", + "parent_to_child_transfer_out": "पैरेंट से चाइल्ड में स्थानांतरण (जावक)", + "oss-sponsorship": "OSS प्रायोजन", + "oss-monthly-reset": "OSS मासिक रीसेट", + "team-topup-bonus-2025": "टीम टॉप-अप बोनस 2025", + "accounting_adjustment": "लेखा समायोजन", + "credits_expired": "क्रेडिट समाप्त हुए" + } }, "hub": { "balance": "बैलेंस", @@ -2837,11 +2935,16 @@ "emptyTitle": "कोई इनवॉइस नहीं", "invoiceFallback": "इनवॉइस", "title": "इनवॉइस", - "statusPaid": "भुगतान किया गया", - "statusOpen": "खुला", - "statusVoid": "रद्द", "downloadFailed": "इनवॉइस डाउनलोड नहीं हो सका। अपना कनेक्शन जाँचें और फिर से प्रयास करें।", - "sharingUnavailable": "इस डिवाइस पर साझा करना उपलब्ध नहीं है।" + "sharingUnavailable": "इस डिवाइस पर साझा करना उपलब्ध नहीं है।", + "status": { + "paid": "भुगतान किया गया", + "open": "खुला", + "void": "रद्द", + "draft": "ड्राफ़्ट", + "uncollectible": "वसूली योग्य नहीं", + "unknown": "अज्ञात" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "आपको Kilo ऐप कैसा लग रहा है?", "rateKilo": "Kilo को रेट करें", "sorryMessage": "कृपया हमें बताएँ कि क्या बेहतर होना चाहिए। ऐप का प्रभारी इंजीनियर हर एक रिपोर्ट पढ़ता है!", - "sorryTitle": "यह सुनकर हमें खेद है!" + "sorryTitle": "यह सुनकर हमें खेद है!", + "emailSubject": "मोबाइल ऐप फ़ीडबैक" }, "authErrors": { "emailAlreadyUsed": "इस ईमेल वाला एक खाता पहले से मौजूद है, लेकिन एक अलग साइन-इन विधि के साथ। कोई दूसरी विधि आज़माएँ या '$t(login.moreSignInOptions)' का उपयोग करें।", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "एकत्रित डेटा", "free": "निःशुल्क", - "couldNotUpdateFavorites": "पसंदीदा अपडेट नहीं हो सके" + "couldNotUpdateFavorites": "पसंदीदा अपडेट नहीं हो सके", + "thinkingEffort": { + "none": "कोई नहीं", + "minimal": "न्यूनतम", + "low": "निम्न", + "medium": "मध्यम", + "high": "उच्च", + "xhigh": "अति उच्च", + "max": "अधिकतम" + } } } diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index 1b4a7ca3df..952929be69 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -580,7 +580,10 @@ "diff": { "selectedTapToChange": "Odabrano {{label}}, dodirnite za promjenu odabira", "tapToComment": "{{label}}, dodirnite za komentar", - "truncationBanner": "Prikazujem prvih {{limit}} od {{total}} promijenjenih datoteka — ograničenje GitHub API-ja" + "truncationBanner": "Prikazujem prvih {{limit}} od {{total}} promijenjenih datoteka — ograničenje GitHub API-ja", + "statusAdded": "Dodano", + "statusContext": "Kontekst", + "statusDeleted": "Obrisano" }, "linkPasteClipboardEmpty": "Međuspremnik je prazan", "linkPasteNotAPullRequest": "Nije poveznica na GitHub pull request", @@ -594,6 +597,11 @@ "reviewNotSubmitted": "Ova recenzija ne može se poslati u ovom obliku. PR se možda promijenio ili ne možete recenzirati vlastiti pull request.", "couldNotPostComment": "Nije moguće objaviti komentar.", "couldNotSubmitReview": "Nije moguće poslati recenziju. Provjerite svoju vezu i pokušajte ponovno." + }, + "operation": { + "couldNotReply": "Nije moguće odgovoriti.", + "couldNotCompleteAction": "Nije moguće dovršiti ovu radnju.", + "mergeResultDefaultError": "GitHub nije dovršio spajanje." } }, "notifications": { @@ -829,7 +837,11 @@ "paymentPastDue": "Plaćanje je u kašnjenju. Ažurirajte način plaćanja.", "subscriptionCancels": "Pretplata se otkazuje {{date}}", "trialDaysRemaining": "Proba: preostalo {{remaining}}", - "trialEndingSoon": "Proba uskoro završava: {{remaining}}" + "trialEndingSoon": "Proba uskoro završava: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Što je novo", @@ -1198,7 +1210,8 @@ "strongArm": "Snažna ruka", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Ova instanca ne može primati datoteke." + "remoteSpawnFilesNotSupported": "Ova instanca ne može primati datoteke.", + "instanceSwitcherTitle": "KiloClaw instanca" }, "codeReviewer": { "focusAreas": { @@ -1396,7 +1409,60 @@ "failed": "Nije uspjelo", "cancelled": "Otkazano", "interrupted": "Prekinuto" - } + }, + "reviewStyle": { + "strict": "Strogo", + "balanced": "Uravnoteženo", + "lenient": "Blago", + "roast": "Roast" + }, + "focusArea": { + "security": "Sigurnost", + "performance": "Izvedba", + "bugs": "Greške", + "style": "Stil", + "testing": "Testiranje", + "documentation": "Dokumentacija" + }, + "gateThreshold": { + "off": "Isključeno", + "all": "Sve", + "warning": "Upozorenje", + "critical": "Kritično" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Preglednik kôda zahtijeva pozornost", + "description": "Preglednik kôda je onemogućen jer Kilo ne može pristupiti ovom spremištu s aktivnom instalacijom GitHub aplikacije. Ažurirajte instalaciju GitHub aplikacije, a zatim ponovno omogućite Preglednik kôda.", + "recoveryLabel": "Ažuriraj GitHub aplikaciju" + }, + "githubIpAllowList": { + "title": "Preglednik kôda zahtijeva pozornost", + "description": "Preglednik kôda je onemogućen jer ova GitHub organizacija koristi popis dopuštenih IP adresa koji blokira Kilo. Za pomoć se obratite na hi@kilocode.ai, a zatim ponovno omogućite Preglednik kôda.", + "recoveryLabel": "Kontaktirajte podršku" + }, + "gitlabProjectAccessRequired": { + "title": "Preglednik kôda zahtijeva pozornost", + "description": "Preglednik kôda je onemogućen jer Kilo ne može stvoriti GitLab Project Access Token za ovaj projekt. Dodijelite pristup razine Maintainer ili omogućite Project Access Tokens, a zatim ponovno omogućite Preglednik kôda.", + "recoveryLabel": "Ažuriraj GitLab integraciju" + }, + "byokInvalidKey": { + "title": "Preglednik kôda zahtijeva pozornost", + "description": "Preglednik kôda je onemogućen jer je odabrani BYOK API ključ nevažeći, opozvan ili nema dopuštenja. Ažurirajte ključ ili odaberite drugi model, a zatim ponovno omogućite Preglednik kôda.", + "recoveryLabel": "Ažuriraj BYOK postavke" + }, + "selectedModelUnavailable": { + "title": "Preglednik kôda zahtijeva pozornost", + "description": "Preglednik kôda je onemogućen jer odabrani model nije dostupan za Cloud Agent sesije. Odaberite dostupan model, a zatim ponovno omogućite Preglednik kôda.", + "recoveryLabel": "Ažuriraj postavke Preglednika kôda" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Preglednik kôda zahtijeva pozornost", + "description": "Preglednik kôda je onemogućen nakon tri vremenska isteka kloniranja spremišta danas. Za pomoć se obratite na hi@kilocode.ai, a zatim ponovno omogućite Preglednik kôda.", + "recoveryLabel": "Kontaktirajte podršku" + } + }, + "unknownError": "Nepoznata pogreška" }, "securityAgent": { "filter": { @@ -1940,6 +2006,23 @@ "belowThreshold": "Nalaz je ispod automatskog praga ozbiljnosti. Ručna sanacija se i dalje može pokrenuti kada sigurnosne provjere prođu.", "beforeEnablement": "Analiza je dovršena prije omogućavanja automatske sanacije. Ručna sanacija se i dalje može pokrenuti kada sigurnosne provjere prođu.", "generic": "Sanacija nije dostupna za ovaj nalaz." + }, + "commandFailure": { + "ownerCapReached": "Kapacitet analize je pun. Pričekajte da aktivna analiza završi, zatim pokušajte ponovno.", + "githubTokenUnavailable": "GitHub autorizacija zahtijeva pozornost. Ponovno autorizirajte GitHub aplikaciju, zatim pokušajte ponovno.", + "githubAuthInvalid": "GitHub autorizacija zahtijeva pozornost. Ponovno autorizirajte GitHub aplikaciju, zatim pokušajte ponovno.", + "findingUnavailable": "Nalaz više nije dostupan. Osvježite nalaze i pokušajte ponovno ako ostane otvoren.", + "repositoryUnavailable": "Repozitorij više nije dostupan GitHub aplikaciji. Osvježite pristup repozitoriju, zatim pokušajte ponovno.", + "invalidDismissTarget": "Nalaz se ne može odbaciti jer je njegov Dependabot cilj nevažeći.", + "commandStalled": "Radnja u redu čekanja nije završila na vrijeme. Pokušajte radnju ponovno.", + "queueRetriesExhausted": "Radnju nije moguće dovršiti nakon nekoliko pokušaja. Pokušajte radnju ponovno.", + "queueAdmissionFailed": "Radnju u redu čekanja nije moguće prihvatiti. Pokušajte radnju ponovno.", + "generic": "Radnja u redu čekanja nije uspjela. Pokušajte radnju ponovno." + }, + "analysisMode": { + "auto": "Automatski", + "shallow": "Površno", + "deep": "Duboko" } }, "agents": { @@ -2409,7 +2492,8 @@ "addToFavorites": "Dodaj {{name}} u favorite", "removeFromFavorites": "Ukloni {{name}} iz favorita", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model sesije" }, "attachmentPreview": { "openFailedRetry": "Otvaranje datoteke nije uspjelo. Pokušajte ponovno.", @@ -2542,7 +2626,8 @@ }, "addCredits": { "cta": "Dodaj kredite", - "description": "Dodajte kredite da bi korištenje nastavilo raditi." + "description": "Dodajte kredite da bi korištenje nastavilo raditi.", + "billingPage": "stranica za naplatu" }, "deviceSessions": { "couldNotLoad": "Nije moguće učitati sesije", @@ -2730,7 +2815,10 @@ "restoreFailed": "Nije moguće vratiti kupnje. Pokušajte ponovno.", "purchaseFailed": "Nije moguće dovršiti kupnju.", "purchaseStartFailed": "Nije moguće pokrenuti kupnju u App Storeu.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple računu pripada drugom Kilo računu." + "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple računu pripada drugom Kilo računu.", + "couldNotConnectToAppStore": "Nije moguće povezati se s App Storeom. Provjerite vezu i pokušajte ponovno.", + "noMatchingProducts": "App Store nije vratio odgovarajuće Kilo Pass proizvode.", + "purchaseMissingSignedTransaction": "Kupnja u App Storeu nije uključivala potpisani transakcijski JWS." }, "consent": { "kilo": "Kilo", @@ -2826,7 +2914,8 @@ "needsWork": "Treba poboljšanja", "sorryTitle": "Žao nam je to čuti!", "sorryMessage": "Javite nam što treba poboljšati. Inženjer zadužen za aplikaciju čita svako pojedino izvješće!", - "emailUs": "Pošaljite nam e-poštu" + "emailUs": "Pošaljite nam e-poštu", + "emailSubject": "povratne informacije iz mobilne aplikacije" }, "organization": { "boundary": { @@ -2843,7 +2932,17 @@ "emptyTitle": "Nema aktivnosti kredita", "expires": "Istječe {{date}}", "title": "Aktivnost kredita", - "transactionFallback": "Kreditna transakcija" + "transactionFallback": "Kreditna transakcija", + "category": { + "organization_custom": "Prilagođeno organizaciji", + "parent_to_child_transfer_in": "Prijenos iz matične u podređenu (ulaz)", + "parent_to_child_transfer_out": "Prijenos iz matične u podređenu (izlaz)", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Računovodstvena prilagodba", + "credits_expired": "Istekli krediti" + } }, "inviteMember": { "emailError": "Unesite valjanu adresu e-pošte", @@ -2860,12 +2959,17 @@ "emptyDescription": "Računi se generiraju automatski u svakom ciklusu naplate i pojavit će se ovdje kada se vaša organizacija naplati.", "emptyTitle": "Nema računa", "invoiceFallback": "Račun", - "statusOpen": "Otvoreno", - "statusPaid": "Plaćeno", - "statusVoid": "Poništeno", "title": "Računi", "downloadFailed": "Nije moguće preuzeti račun. Provjerite svoju vezu i pokušajte ponovno.", - "sharingUnavailable": "Dijeljenje nije dostupno na ovom uređaju." + "sharingUnavailable": "Dijeljenje nije dostupno na ovom uređaju.", + "status": { + "paid": "Plaćeno", + "open": "Otvoreno", + "void": "Poništeno", + "draft": "Nacrt", + "uncollectible": "Nenaplativo", + "unknown": "Nepoznato" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Prikupljeni podaci", "free": "Besplatno", - "couldNotUpdateFavorites": "Nije moguće ažurirati favorite" + "couldNotUpdateFavorites": "Nije moguće ažurirati favorite", + "thinkingEffort": { + "none": "Ništa", + "minimal": "Minimalno", + "low": "Nisko", + "medium": "Srednje", + "high": "Visoko", + "xhigh": "Vrlo visoko", + "max": "Maksimalno" + } } } diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index 54e51cff42..715a92580e 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Chwazi {{label}}, tape pou chanje seleksyon", "tapToComment": "{{label}}, tape pou kòmante", - "truncationBanner": "Ap montre premye {{limit}} sou {{total}} fichye ki chanje — limit API GitHub" + "truncationBanner": "Ap montre premye {{limit}} sou {{total}} fichye ki chanje — limit API GitHub", + "statusAdded": "Ajoute", + "statusContext": "Kontèks", + "statusDeleted": "Efase" }, "linkPasteClipboardEmpty": "Clipboard la vid", "linkPasteNotAPullRequest": "Se pa yon lyen pull request GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Revizyon sa a pa ka soumèt jan li ye a. PR la ka chanje, oswa ou pa ka revize pwòp pull request ou.", "couldNotPostComment": "Pa t ka pòste kòmantè.", "couldNotSubmitReview": "Pa t ka soumèt revizyon. Tcheke koneksyon ou epi eseye ankò." + }, + "operation": { + "couldNotReply": "Pa t ka reponn.", + "couldNotCompleteAction": "Pa t ka fini aksyon sa a.", + "mergeResultDefaultError": "GitHub pa t fini fizyon an." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Peman an reta. Tanpri mete ajou metòd peman ou a.", "subscriptionCancels": "Abònman an anile {{date}}", "trialDaysRemaining": "Eseye: {{remaining}} rete", - "trialEndingSoon": "Eseye ap fini pito: {{remaining}}" + "trialEndingSoon": "Eseye ap fini pito: {{remaining}}", + "planName": { + "commit": "Konmèt", + "standard": "Standard" + } }, "changelog": { "title": "Kisa ki Nouvo", @@ -1189,7 +1201,8 @@ "strongArm": "Bra fò", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Enstans sa a pa ka resevwa fichye." + "remoteSpawnFilesNotSupported": "Enstans sa a pa ka resevwa fichye.", + "instanceSwitcherTitle": "Enstans KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Echwe", "cancelled": "Anile", "interrupted": "Entèwonp" - } + }, + "reviewStyle": { + "strict": "Sevè", + "balanced": "Ekilibre", + "lenient": "Toleran", + "roast": "Roast" + }, + "focusArea": { + "security": "Sekirite", + "performance": "Pèfòmans", + "bugs": "Ensek", + "style": "Estil", + "testing": "Tès", + "documentation": "Dokimantasyon" + }, + "gateThreshold": { + "off": "Etenn", + "all": "Tout", + "warning": "Avètisman", + "critical": "Kritik" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Revizè Kòd bezwen atansyon", + "description": "Revizè Kòd dezaktive paske Kilo pa ka jwenn aksè sou repo sa a ak yon enstalasyon GitHub App aktif. Mete ajou enstalasyon GitHub App la, epi aktive Revizè Kòd ankò.", + "recoveryLabel": "Mete ajou GitHub App" + }, + "githubIpAllowList": { + "title": "Revizè Kòd bezwen atansyon", + "description": "Revizè Kòd dezaktive paske òganizasyon GitHub sa a itilize yon lis IP otorize ki bloke Kilo. Kontakte hi@kilocode.ai pou jwenn èd, epi aktive Revizè Kòd ankò.", + "recoveryLabel": "Kontakte sipò" + }, + "gitlabProjectAccessRequired": { + "title": "Revizè Kòd bezwen atansyon", + "description": "Revizè Kòd dezaktive paske Kilo pa ka kreye yon Token Aksè Pwojè GitLab pou pwojè sa a. Bay aksè Maintainer oswa aktive Token Aksè Pwojè yo, epi aktive Revizè Kòd ankò.", + "recoveryLabel": "Mete ajou entegrasyon GitLab" + }, + "byokInvalidKey": { + "title": "Revizè Kòd bezwen atansyon", + "description": "Revizè Kòd dezaktive paske kle API BYOK chwazi a pa valid, li revoke, oswa li pa gen pèmisyon. Mete ajou kle a oswa chwazi yon lòt modèl, epi aktive Revizè Kòd ankò.", + "recoveryLabel": "Mete ajou paramèt BYOK" + }, + "selectedModelUnavailable": { + "title": "Revizè Kòd bezwen atansyon", + "description": "Revizè Kòd dezaktive paske modèl la chwazi pa disponib pou sesyon Cloud Agent. Chwazi yon modèl ki disponib, epi aktive Revizè Kòd ankò.", + "recoveryLabel": "Mete ajou paramèt Revizè Kòd" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Revizè Kòd bezwen atansyon", + "description": "Revizè Kòd dezaktive apre twa tan ekspire klonaj repo jodi a. Kontakte hi@kilocode.ai pou jwenn èd, epi aktive Revizè Kòd ankò.", + "recoveryLabel": "Kontakte sipò" + } + }, + "unknownError": "Erè enkoni" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Rezilta a anba seuy gravite otomatik. Remedysyon manyèl ka toujou kòmanse lè pòt sekirite yo pase.", "beforeEnablement": "Analiz fini anvan yo aktive koreksyon otomatik. Remedysyon manyèl ka toujou kòmanse lè pòt sekirite yo pase.", "generic": "Remedysyon pa disponib pou rezilta sa a." + }, + "commandFailure": { + "ownerCapReached": "Kapasite analiz la plen. Tann pou yon analiz aktif fini, epi eseye ankò.", + "githubTokenUnavailable": "Otorizasyon GitHub bezwen atansyon. Re-otorize GitHub App, epi eseye ankò.", + "githubAuthInvalid": "Otorizasyon GitHub bezwen atansyon. Re-otorize GitHub App, epi eseye ankò.", + "findingUnavailable": "Rezilta a pa disponib ankò. Rafrechi rezilta yo epi eseye ankò si li rete louvri.", + "repositoryUnavailable": "Repo a pa disponib pou GitHub App ankò. Rafrechi aksè repo a, epi eseye ankò.", + "invalidDismissTarget": "Rezilta a pa ka rejte paske sib Dependabot li a pa valid.", + "commandStalled": "Aksyon an pwosesis la pa t fini alè. Eseye aksyon an ankò.", + "queueRetriesExhausted": "Aksyon an pa t ka fini apre plizyè tantativ. Eseye aksyon an ankò.", + "queueAdmissionFailed": "Aksyon an pwosesis la pa t ka admèt. Eseye aksyon an ankò.", + "generic": "Aksyon an pwosesis la echwe. Eseye aksyon an ankò." + }, + "analysisMode": { + "auto": "Otomatik", + "shallow": "Supèrfisyèl", + "deep": "Pwofon" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Ajoute {{name}} nan favori", "removeFromFavorites": "Retire {{name}} nan favori", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Modèl sesyon" }, "attachmentPreview": { "openFailedRetry": "Echèk pou louvri fichye a. Tanpri eseye ankò.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Ajoute kredi", - "description": "Ajoute kredi pou kenbe itilizasyon an ap mache." + "description": "Ajoute kredi pou kenbe itilizasyon an ap mache.", + "billingPage": "paj faktirasyon an" }, "deviceSessions": { "couldNotLoad": "Pa t ka chaje sesyon", @@ -2710,7 +2795,10 @@ "restoreFailed": "Echwe pou retabli acha yo. Eseye ankò.", "purchaseFailed": "Echwe pou fini acha a.", "purchaseStartFailed": "Echwe pou kòmanse acha App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass la sou Kont Apple sa a fè pati yon lòt kont Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass la sou Kont Apple sa a fè pati yon lòt kont Kilo.", + "couldNotConnectToAppStore": "Pa t ka konekte ak App Store. Tcheke koneksyon ou epi eseye ankò.", + "noMatchingProducts": "App Store pa t retounen pwodwi Kilo Pass ki matche yo.", + "purchaseMissingSignedTransaction": "Acha nan App Store pa t enkli yon JWS transaksyon siyen." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Gen travay pou fè", "sorryTitle": "Nou regrèt tande sa!", "sorryMessage": "Tanpri fè nou konnen kisa ki bezwen pi byen. Enjenyè ki responsab aplikasyon an li chak rapò!", - "emailUs": "Imel nou" + "emailUs": "Imel nou", + "emailSubject": "kòmantè sou aplikasyon mobil" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Pa gen aktivite kredi", "expires": "Ekspire {{date}}", "title": "Aktivite kredi", - "transactionFallback": "Transaksyon kredi" + "transactionFallback": "Transaksyon kredi", + "category": { + "organization_custom": "Koutim òganizasyon", + "parent_to_child_transfer_in": "Transfè paran nan timoun (antre)", + "parent_to_child_transfer_out": "Transfè paran nan timoun (sòti)", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Ajisteman kontab", + "credits_expired": "Kredi ekspire" + } }, "inviteMember": { "emailError": "Antre yon adrès imel valid", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakti yo jenere otomatikman chak sik bilin epi yo ap parèt isit la yon fwa òganizasyon ou fè bil.", "emptyTitle": "Pa gen fakti", "invoiceFallback": "Fakti", - "statusOpen": "Louvri", - "statusPaid": "Peye", - "statusVoid": "Anile", "title": "Fakti", "downloadFailed": "Pa t ka telechaje fakti a. Tcheke koneksyon ou epi eseye ankò.", - "sharingUnavailable": "Pataje pa disponib sou aparèy sa a." + "sharingUnavailable": "Pataje pa disponib sou aparèy sa a.", + "status": { + "paid": "Peye", + "open": "Louvri", + "void": "Envalid", + "draft": "Brouyon", + "uncollectible": "Enkobrèb", + "unknown": "Enkoni" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Done kolekte", "free": "Gratis", - "couldNotUpdateFavorites": "Pa t ka mete ajou favori yo" + "couldNotUpdateFavorites": "Pa t ka mete ajou favori yo", + "thinkingEffort": { + "none": "Anyen", + "minimal": "Minimòm", + "low": "Ba", + "medium": "Mwayen", + "high": "Wo", + "xhigh": "Trè wo", + "max": "Maksimòm" + } } } diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index 42ca6eeb89..9566293aa6 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Kijelölve: {{label}}, koppintson a kijelölés módosításához", "tapToComment": "{{label}}, koppintson a megjegyzéshez", - "truncationBanner": "A módosított {{total}} fájl közül az első {{limit}} megjelenítése — GitHub API-korlát" + "truncationBanner": "A módosított {{total}} fájl közül az első {{limit}} megjelenítése — GitHub API-korlát", + "statusAdded": "Hozzáadva", + "statusContext": "Kontextus", + "statusDeleted": "Törölve" }, "linkPasteClipboardEmpty": "A vágólap üres", "linkPasteNotAPullRequest": "Nem GitHub pull request hivatkozás", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Ez az ellenőrzés ebben a formában nem küldhető el. Lehet, hogy a PR megváltozott, vagy nem ellenőrizheti a saját pull requestjét.", "couldNotPostComment": "Nem sikerült közzétenni a megjegyzést.", "couldNotSubmitReview": "Nem sikerült elküldeni az ellenőrzést. Ellenőrizze a kapcsolatot, és próbálja újra." + }, + "operation": { + "couldNotReply": "Nem sikerült válaszolni.", + "couldNotCompleteAction": "Nem sikerült végrehajtani ezt a műveletet.", + "mergeResultDefaultError": "A GitHub nem fejezte be az összevonást." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "A fizetés lejárt. Kérjük, frissítsd a fizetési módodat.", "subscriptionCancels": "Az előfizetés {{date}}-kor törlődik", "trialDaysRemaining": "Próba: {{remaining}} van hátra", - "trialEndingSoon": "Próba hamarosan vége: {{remaining}}" + "trialEndingSoon": "Próba hamarosan vége: {{remaining}}", + "planName": { + "commit": "Elköteleződés", + "standard": "Standard" + } }, "changelog": { "title": "Mi újság", @@ -1189,7 +1201,8 @@ "strongArm": "Erős kar", "talisman": "Talizmán" }, - "remoteSpawnFilesNotSupported": "Ez a példány nem fogadhat fájlokat." + "remoteSpawnFilesNotSupported": "Ez a példány nem fogadhat fájlokat.", + "instanceSwitcherTitle": "KiloClaw-példány" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Sikertelen", "cancelled": "Lemondva", "interrupted": "Megszakítva" - } + }, + "reviewStyle": { + "strict": "Szigorú", + "balanced": "Kiegyensúlyozott", + "lenient": "Engedékeny", + "roast": "Roast" + }, + "focusArea": { + "security": "Biztonság", + "performance": "Teljesítmény", + "bugs": "Hibák", + "style": "Stílus", + "testing": "Tesztelés", + "documentation": "Dokumentáció" + }, + "gateThreshold": { + "off": "Ki", + "all": "Mind", + "warning": "Figyelmeztetés", + "critical": "Kritikus" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "A Kódellenőrző figyelmet igényel", + "description": "A Kódellenőrző azért lett letiltva, mert a Kilo nem fér hozzá ehhez a tárhelyhez egy aktív GitHub App-telepítéssel. Frissítse a GitHub App telepítését, majd engedélyezze újra a Kódellenőrzőt.", + "recoveryLabel": "GitHub App frissítése" + }, + "githubIpAllowList": { + "title": "A Kódellenőrző figyelmet igényel", + "description": "A Kódellenőrző azért lett letiltva, mert ez a GitHub-szervezet IP-engedélyezési listát használ, amely blokkolja a Kilót. Kérjen segítséget itt: hi@kilocode.ai, majd engedélyezze újra a Kódellenőrzőt.", + "recoveryLabel": "Forduljon az ügyfélszolgálathoz" + }, + "gitlabProjectAccessRequired": { + "title": "A Kódellenőrző figyelmet igényel", + "description": "A Kódellenőrző azért lett letiltva, mert a Kilo nem tud GitLab Project Access Tokent létrehozni ehhez a projekthez. Adjon Maintainer hozzáférést vagy engedélyezze a Project Access Tokeneket, majd engedélyezze újra a Kódellenőrzőt.", + "recoveryLabel": "GitLab-integráció frissítése" + }, + "byokInvalidKey": { + "title": "A Kódellenőrző figyelmet igényel", + "description": "A Kódellenőrző azért lett letiltva, mert a kiválasztott BYOK API-kulcs érvénytelen, visszavonták, vagy nincs jogosultsága. Frissítse a kulcsot vagy válasszon másik modellt, majd engedélyezze újra a Kódellenőrzőt.", + "recoveryLabel": "BYOK-beállítások frissítése" + }, + "selectedModelUnavailable": { + "title": "A Kódellenőrző figyelmet igényel", + "description": "A Kódellenőrző azért lett letiltva, mert a kiválasztott modell nem érhető el felhőügynök-munkamenetekhez. Válasszon egy elérhető modellt, majd engedélyezze újra a Kódellenőrzőt.", + "recoveryLabel": "A Kódellenőrző beállításainak frissítése" + }, + "repeatedRepositoryCloneTimeout": { + "title": "A Kódellenőrző figyelmet igényel", + "description": "A Kódellenőrző azért lett letiltva, mert ma három tárhely-klónozási időtúllépés történt. Kérjen segítséget itt: hi@kilocode.ai, majd engedélyezze újra a Kódellenőrzőt.", + "recoveryLabel": "Forduljon az ügyfélszolgálathoz" + } + }, + "unknownError": "Ismeretlen hiba" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Az észlelés az automatikus súlyossági küszöb alatt van. A kézi kijavítás akkor is elindítható, ha a biztonsági átjárók teljesülnek.", "beforeEnablement": "Az elemzés az automatikus hibajavítás engedélyezése előtt készült el. A kézi kijavítás akkor is elindítható, ha a biztonsági átjárók teljesülnek.", "generic": "Ehhez az észleléshez nem érhető el kijavítás." + }, + "commandFailure": { + "ownerCapReached": "Az elemzési kapacitás megtelt. Várja meg, amíg egy aktív elemzés befejeződik, majd próbálja újra.", + "githubTokenUnavailable": "A GitHub-hitelesítés figyelmet igényel. Engedélyezze újra a GitHub Appot, majd próbálja újra.", + "githubAuthInvalid": "A GitHub-hitelesítés figyelmet igényel. Engedélyezze újra a GitHub Appot, majd próbálja újra.", + "findingUnavailable": "Az észlelés már nem érhető el. Frissítse az észleléseket, és próbálja újra, ha még mindig nyitott.", + "repositoryUnavailable": "Az adattár már nem érhető el a GitHub App számára. Frissítse az adattár-hozzáférést, majd próbálja újra.", + "invalidDismissTarget": "Az észlelés nem vethető el, mert a Dependabot-célja érvénytelen.", + "commandStalled": "A sorba állított művelet nem fejeződött be időben. Próbálja újra a műveletet.", + "queueRetriesExhausted": "A művelet több próbálkozás után sem fejeződött be. Próbálja újra a műveletet.", + "queueAdmissionFailed": "A sorba állított művelet nem került elfogadásra. Próbálja újra a műveletet.", + "generic": "A sorba állított művelet meghiúsult. Próbálja újra a műveletet." + }, + "analysisMode": { + "auto": "Automatikus", + "shallow": "Felszínes", + "deep": "Mély" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} hozzáadása a kedvencekhez", "removeFromFavorites": "{{name}} eltávolítása a kedvencekből", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Köz" + "thinkingEffortMedium": "Köz", + "sessionModel": "Munkamenet modell" }, "attachmentPreview": { "openFailedRetry": "A fájl megnyitása nem sikerült. Próbáld újra.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Kreditek hozzáadása", - "description": "Adj hozzá krediteket a használat fenntartásához." + "description": "Adj hozzá krediteket a használat fenntartásához.", + "billingPage": "számlázási oldal" }, "deviceSessions": { "couldNotLoad": "A munkamenetek nem tölthetők be", @@ -2710,7 +2795,10 @@ "restoreFailed": "Nem sikerült visszaállítani a vásárlásokat. Próbálja újra.", "purchaseFailed": "Nem sikerült befejezni a vásárlást.", "purchaseStartFailed": "Nem sikerült elindítani az App Store-vásárlást.", - "purchaseOwnedByAnotherAccount": "Az ezen Apple-fiókon lévő Kilo Pass egy másik Kilo-fiókhoz tartozik." + "purchaseOwnedByAnotherAccount": "Az ezen Apple-fiókon lévő Kilo Pass egy másik Kilo-fiókhoz tartozik.", + "couldNotConnectToAppStore": "Nem sikerült csatlakozni az App Store-hoz. Ellenőrizze a kapcsolatot, és próbálja újra.", + "noMatchingProducts": "Az App Store nem adott vissza megfelelő Kilo Pass termékeket.", + "purchaseMissingSignedTransaction": "Az App Store-vásárlás nem tartalmazott aláírt JWS-tranzakciót." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Javításra szorul", "sorryTitle": "Sajnáljuk, hogy ezt halljuk!", "sorryMessage": "Kérjük, tudasd velünk, min kellene javítani. Az alkalmazásért felelős mérnök minden egyes jelentést elolvas!", - "emailUs": "Írj nekünk e-mailt" + "emailUs": "Írj nekünk e-mailt", + "emailSubject": "mobilalkalmazás-visszajelzés" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Nincs kredittevékenység", "expires": "Lejárat: {{date}}", "title": "Kredittevékenység", - "transactionFallback": "Kredittranzakció" + "transactionFallback": "Kredittranzakció", + "category": { + "organization_custom": "Egyedi szervezeti", + "parent_to_child_transfer_in": "Szülőről gyermekre átutalás (bejövő)", + "parent_to_child_transfer_out": "Szülőről gyermekre átutalás (kimenő)", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Számviteli kiigazítás", + "credits_expired": "Lejárt kreditek" + } }, "inviteMember": { "emailError": "Adj meg érvényes e-mail címet", @@ -2840,12 +2939,17 @@ "emptyDescription": "A számlák automatikusan generálódnak minden számlázási ciklusban, és itt jelennek meg, amint a szervezetedet kiszámlázták.", "emptyTitle": "Nincs számla", "invoiceFallback": "Szamla", - "statusOpen": "Nyitva", - "statusPaid": "Kifizetve", - "statusVoid": "Érvénytelen", "title": "Számlák", "downloadFailed": "Nem sikerült letölteni a számlát. Ellenőrizze a kapcsolatot, és próbálja újra.", - "sharingUnavailable": "A megosztás nem érhető el ezen az eszközön." + "sharingUnavailable": "A megosztás nem érhető el ezen az eszközön.", + "status": { + "paid": "Fizetve", + "open": "Nyitott", + "void": "Érvénytelen", + "draft": "Piszkozat", + "uncollectible": "Behajthatatlan", + "unknown": "Ismeretlen" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Gyűjtött adatok", "free": "Ingyenes", - "couldNotUpdateFavorites": "Nem sikerült frissíteni a kedvenceket" + "couldNotUpdateFavorites": "Nem sikerült frissíteni a kedvenceket", + "thinkingEffort": { + "none": "Semmi", + "minimal": "Minimális", + "low": "Alacsony", + "medium": "Közepes", + "high": "Magas", + "xhigh": "Extra magas", + "max": "Maximum" + } } } diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index 7163a10c13..d95370c7a0 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Ընտրված {{label}}, հպեք ընտրությունը փոխելու համար", "tapToComment": "{{label}}, հպեք մեկնաբանելու համար", - "truncationBanner": "Ցուցադրվում են փոփոխված {{total}} ֆայլերից առաջին {{limit}}-ը — GitHub API-ի սահմանաչափ" + "truncationBanner": "Ցուցադրվում են փոփոխված {{total}} ֆայլերից առաջին {{limit}}-ը — GitHub API-ի սահմանաչափ", + "statusAdded": "Ավելացված", + "statusContext": "Համատեքստ", + "statusDeleted": "Ջնջված" }, "linkPasteClipboardEmpty": "Սեղմատախտակը դատարկ է", "linkPasteNotAPullRequest": "Սա GitHub-ի pull request հղում չէ", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Այս վերանայումը հնարավոր չէ ուղարկել ներկայիս տեսքով: PR-ը կարող է փոխված լինել, կամ դուք չեք կարող վերանայել ձեր սեփական pull request-ը:", "couldNotPostComment": "Չհաջողվեց տեղադրել մեկնաբանությունը:", "couldNotSubmitReview": "Չհաջողվեց ուղարկել վերանայումը: Ստուգեք ձեր կապը և կրկին փորձեք:" + }, + "operation": { + "couldNotReply": "Չհաջողվեց պատասխանել:", + "couldNotCompleteAction": "Չհաջողվեց ավարտել այս գործողությունը:", + "mergeResultDefaultError": "GitHub-ը չավարտեց միավորումը:" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Վճարումն ուշացած է: Խնդրում ենք թարմացնել վճարման եղանակը:", "subscriptionCancels": "Բաժանորդագրությունը չեղարկվում է {{date}}-ին", "trialDaysRemaining": "Փորձարկում՝ մնացել է {{remaining}}", - "trialEndingSoon": "Փորձարկումը շուտով կավարտվի՝ {{remaining}}" + "trialEndingSoon": "Փորձարկումը շուտով կավարտվի՝ {{remaining}}", + "planName": { + "commit": "Հաստատել", + "standard": "Ստանդարտ" + } }, "changelog": { "title": "Ի՞նչ նորություն կա", @@ -1189,7 +1201,8 @@ "strongArm": "Ուժեղ թև", "talisman": "Թալիսման" }, - "remoteSpawnFilesNotSupported": "Այս մատյանը չի կարող ընդունել ֆայլեր:" + "remoteSpawnFilesNotSupported": "Այս մատյանը չի կարող ընդունել ֆայլեր:", + "instanceSwitcherTitle": "KiloClaw դեպք" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Ձախողված", "cancelled": "Չեղարկված", "interrupted": "Ընդհատված" - } + }, + "reviewStyle": { + "strict": "Խիստ", + "balanced": "Հավասարակշռված", + "lenient": "Ներողամիտ", + "roast": "Roast" + }, + "focusArea": { + "security": "Անվտանգություն", + "performance": "Կատարողականություն", + "bugs": "Սխալներ", + "style": "Ոճ", + "testing": "Թեստավորում", + "documentation": "Փաստաթղթեր" + }, + "gateThreshold": { + "off": "Անջատված", + "all": "Բոլորը", + "warning": "Նախազգուշացում", + "critical": "Կրիտիկական" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Կոդի գրախոսը ուշադրության կարիք ունի", + "description": "Կոդի գրախոսն անջատվել է, քանի որ Kilo-ն չի կարող մուտք գործել այս պահոց՝ ակտիվ GitHub App տեղադրմամբ: Թարմացրեք GitHub App-ի տեղադրումը, ապա կրկին միացրեք Կոդի գրախոսին:", + "recoveryLabel": "Թարմացնել GitHub App-ը" + }, + "githubIpAllowList": { + "title": "Կոդի գրախոսը ուշադրության կարիք ունի", + "description": "Կոդի գրախոսն անջատվել է, քանի որ այս GitHub կազմակերպությունը օգտագործում է IP թույլատրելի ցուցակ, որը արգելափակում է Kilo-ն: Օգնության համար կապվեք hi@kilocode.ai-ի հետ, ապա կրկին միացրեք Կոդի գրախոսին:", + "recoveryLabel": "Կապվեք աջակցության հետ" + }, + "gitlabProjectAccessRequired": { + "title": "Կոդի գրախոսը ուշադրության կարիք ունի", + "description": "Կոդի գրախոսն անջատվել է, քանի որ Kilo-ն չի կարող GitLab Project Access Token ստեղծել այս նախագծի համար: Տրամադրեք Maintainer մուտք կամ միացրեք Project Access Token-երը, ապա կրկին միացրեք Կոդի գրախոսին:", + "recoveryLabel": "Թարմացնել GitLab ինտեգրացիան" + }, + "byokInvalidKey": { + "title": "Կոդի գրախոսը ուշադրության կարիք ունի", + "description": "Կոդի գրախոսն անջատվել է, քանի որ ընտրված BYOK API բանալին անվավեր է, չեղարկված է կամ թույլտվություն չունի: Թարմացրեք բանալին կամ ընտրեք մեկ այլ մոդել, ապա կրկին միացրեք Կոդի գրախոսին:", + "recoveryLabel": "Թարմացնել BYOK կարգավորումները" + }, + "selectedModelUnavailable": { + "title": "Կոդի գրախոսը ուշադրության կարիք ունի", + "description": "Կոդի գրախոսն անջատվել է, քանի որ ընտրված մոդելը հասանելի չէ ամպային գործակալի նիստերի համար: Ընտրեք հասանելի մոդել, ապա կրկին միացրեք Կոդի գրախոսին:", + "recoveryLabel": "Թարմացնել Կոդի գրախոսի կարգավորումները" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Կոդի գրախոսը ուշադրության կարիք ունի", + "description": "Կոդի գրախոսն անջատվել է այսօր պահոցի կլոնավորման երեք ժամանակի սպառումից հետո: Օգնության համար կապվեք hi@kilocode.ai-ի հետ, ապա կրկին միացրեք Կոդի գրախոսին:", + "recoveryLabel": "Կապվեք աջակցության հետ" + } + }, + "unknownError": "Անհայտ սխալ" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Գտածոն ավտոմատ խստության շեմից ցածր է։ Ձեռքով շտկումը դեռ կարող է սկսվել, երբ անվտանգության դարպասներն անցնեն։", "beforeEnablement": "Վերլուծությունն ավարտվել է մինչև ավտոմատ շտկման միացումը։ Ձեռքով շտկումը դեռ կարող է սկսվել, երբ անվտանգության դարպասներն անցնեն։", "generic": "Այս գտածոյի համար շտկումը հասանելի չէ։" + }, + "commandFailure": { + "ownerCapReached": "Վերլուծության հզորությունը լիքն է: Սպասեք ակտիվ վերլուծության ավարտին, ապա կրկին փորձեք:", + "githubTokenUnavailable": "GitHub-ի թույլտվությունը ուշադրության կարիք ունի: Վերալիազորեք GitHub App-ը, ապա կրկին փորձեք:", + "githubAuthInvalid": "GitHub-ի թույլտվությունը ուշադրության կարիք ունի: Վերալիազորեք GitHub App-ը, ապա կրկին փորձեք:", + "findingUnavailable": "Գտածոն այլևս հասանելի չէ: Թարմացրեք գտածոները և կրկին փորձեք, եթե այն մնում է բաց:", + "repositoryUnavailable": "Պահոցն այլևս հասանելի չէ GitHub App-ին: Թարմացրեք պահոցի մուտքը, ապա կրկին փորձեք:", + "invalidDismissTarget": "Գտածոն հնարավոր չէ մերժել, քանի որ դրա Dependabot թիրախն անվավեր է:", + "commandStalled": "Հերթագրված գործողությունը ժամանակին չավարտվեց: Կրկին փորձեք գործողությունը:", + "queueRetriesExhausted": "Գործողությունը չհաջողվեց ավարտել մի քանի փորձից հետո: Կրկին փորձեք գործողությունը:", + "queueAdmissionFailed": "Հերթագրված գործողությունը չկարողացավ ընդունվել: Կրկին փորձեք գործողությունը:", + "generic": "Հերթագրված գործողությունը ձախողվեց: Կրկին փորձեք գործողությունը:" + }, + "analysisMode": { + "auto": "Ավտոմատ", + "shallow": "Մակերեսային", + "deep": "Խորը" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Ավելացնել {{name}}-ը նախընտրածներին", "removeFromFavorites": "Հեռացնել {{name}}-ը նախընտրածներից", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Միջ" + "thinkingEffortMedium": "Միջ", + "sessionModel": "Նիստի մոդել" }, "attachmentPreview": { "openFailedRetry": "Ֆայլը չհաջողվեց բացել: Խնդրում ենք նորից փորձել:", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Ավելացնել կրեդիտներ", - "description": "Ավելացրեք կրեդիտներ՝ օգտագործումը շարունակելու համար:" + "description": "Ավելացրեք կրեդիտներ՝ օգտագործումը շարունակելու համար:", + "billingPage": "վճարումների էջ" }, "deviceSessions": { "couldNotLoad": "Հնարավոր չեղավ բեռնել նիստերը", @@ -2710,7 +2795,10 @@ "restoreFailed": "Չհաջողվեց վերականգնել գնումները: Կրկին փորձեք:", "purchaseFailed": "Չհաջողվեց ավարտել գնումը:", "purchaseStartFailed": "Չհաջողվեց սկսել App Store գնումը:", - "purchaseOwnedByAnotherAccount": "Այս Apple Account-ի Kilo Pass-ը պատկանում է մեկ այլ Kilo հաշվին:" + "purchaseOwnedByAnotherAccount": "Այս Apple Account-ի Kilo Pass-ը պատկանում է մեկ այլ Kilo հաշվին:", + "couldNotConnectToAppStore": "Չհաջողվեց միանալ App Store-ին: Ստուգեք կապը և կրկին փորձեք:", + "noMatchingProducts": "App Store-ը չվերադարձրեց համապատասխան Kilo Pass ապրանքներ:", + "purchaseMissingSignedTransaction": "App Store-ի գնումը չներառեց ստորագրված JWS գործարք:" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Բարելավման կարիք ունի", "sorryTitle": "Ցավում ենք դա լսել:", "sorryMessage": "Խնդրում ենք հայտնել մեզ, թե ինչն է պետք բարելավել: Հավելվածի պատասխանատու ինժեները կարդում է յուրաքանչյուր հաշվետվություն:", - "emailUs": "Էլփոստ ուղարկեք մեզ" + "emailUs": "Էլփոստ ուղարկեք մեզ", + "emailSubject": "շարժական հավելվածի հետադարձ կապ" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Կրեդիտի գործունեություն չկա", "expires": "Ժամկետը լրանում է {{date}}-ին", "title": "Կրեդիտի գործունեություն", - "transactionFallback": "Կրեդիտի գործարք" + "transactionFallback": "Կրեդիտի գործարք", + "category": { + "organization_custom": "Կազմակերպության հատուկ", + "parent_to_child_transfer_in": "Ծնողից երեխա փոխանցում (մուտք)", + "parent_to_child_transfer_out": "Ծնողից երեխա փոխանցում (ելք)", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Հաշվապահական ճշգրտում", + "credits_expired": "Սպառված կրեդիտներ" + } }, "inviteMember": { "emailError": "Մուտքագրեք վավեր էլփոստի հասցե", @@ -2840,12 +2939,17 @@ "emptyDescription": "Հաշիվ-ապրանքագրերը ստեղծվում են ավտոմատ կերպով յուրաքանչյուր վճարման ցիկլում և կհայտնվեն այստեղ, երբ ձեր կազմակերպությունը վճարվի:", "emptyTitle": "Հաշիվ-ապրանքագրեր չկան", "invoiceFallback": "Հաշիվ-ապրանքագիր", - "statusOpen": "Բաց", - "statusPaid": "Վճարված", - "statusVoid": "Անվավեր", "title": "Հաշիվ-ապրանքագրեր", "downloadFailed": "Չհաջողվեց ներբեռնել հաշիվ-ապրանքագիրը: Ստուգեք ձեր կապը և կրկին փորձեք:", - "sharingUnavailable": "Կիսումը հասանելի չէ այս սարքում:" + "sharingUnavailable": "Կիսումը հասանելի չէ այս սարքում:", + "status": { + "paid": "Վճարված", + "open": "Բաց", + "void": "Անվավեր", + "draft": "Սևագիր", + "uncollectible": "Անվերականգնելի", + "unknown": "Անհայտ" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Հավաքագրված տվյալներ", "free": "Անվճար", - "couldNotUpdateFavorites": "Չհաջողվեց թարմացնել նախընտրածները" + "couldNotUpdateFavorites": "Չհաջողվեց թարմացնել նախընտրածները", + "thinkingEffort": { + "none": "Ոչինչ", + "minimal": "Նվազագույն", + "low": "Ցածր", + "medium": "Միջին", + "high": "Բարձր", + "xhigh": "Շատ բարձր", + "max": "Առավելագույն" + } } } diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index a0108986db..0398cdc8f4 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -382,7 +382,11 @@ "paymentPastDue": "Pembayaran jatuh tempo. Perbarui metode pembayaran Anda.", "subscriptionCancels": "Langganan dibatalkan {{date}}", "trialDaysRemaining": "Uji coba: {{remaining}} tersisa", - "trialEndingSoon": "Uji coba segera berakhir: {{remaining}}" + "trialEndingSoon": "Uji coba segera berakhir: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Yang Baru", @@ -750,7 +754,8 @@ "strongArm": "Lengan kuat", "talisman": "Jimat" }, - "remoteSpawnFilesNotSupported": "Instans ini tidak dapat menerima file." + "remoteSpawnFilesNotSupported": "Instans ini tidak dapat menerima file.", + "instanceSwitcherTitle": "Instans KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "Gagal", "cancelled": "Dibatalkan", "interrupted": "Terputus" - } + }, + "reviewStyle": { + "strict": "Ketat", + "balanced": "Seimbang", + "lenient": "Longgar", + "roast": "Roast" + }, + "focusArea": { + "security": "Keamanan", + "performance": "Kinerja", + "bugs": "Bug", + "style": "Gaya", + "testing": "Pengujian", + "documentation": "Dokumentasi" + }, + "gateThreshold": { + "off": "Nonaktif", + "all": "Semua", + "warning": "Peringatan", + "critical": "Kritis" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Peninjau Kode memerlukan perhatian", + "description": "Peninjau Kode dinonaktifkan karena Kilo tidak dapat mengakses repositori ini dengan pemasangan Aplikasi GitHub yang aktif. Perbarui pemasangan Aplikasi GitHub, lalu aktifkan kembali Peninjau Kode.", + "recoveryLabel": "Perbarui Aplikasi GitHub" + }, + "githubIpAllowList": { + "title": "Peninjau Kode memerlukan perhatian", + "description": "Peninjau Kode dinonaktifkan karena organisasi GitHub ini menggunakan daftar izin IP yang memblokir Kilo. Hubungi hi@kilocode.ai untuk bantuan, lalu aktifkan kembali Peninjau Kode.", + "recoveryLabel": "Hubungi dukungan" + }, + "gitlabProjectAccessRequired": { + "title": "Peninjau Kode memerlukan perhatian", + "description": "Peninjau Kode dinonaktifkan karena Kilo tidak dapat membuat Token Akses Proyek GitLab untuk proyek ini. Berikan akses Maintainer atau aktifkan Token Akses Proyek, lalu aktifkan kembali Peninjau Kode.", + "recoveryLabel": "Perbarui integrasi GitLab" + }, + "byokInvalidKey": { + "title": "Peninjau Kode memerlukan perhatian", + "description": "Peninjau Kode dinonaktifkan karena kunci API BYOK yang dipilih tidak valid, dicabut, atau tidak memiliki izin. Perbarui kunci atau pilih model lain, lalu aktifkan kembali Peninjau Kode.", + "recoveryLabel": "Perbarui pengaturan BYOK" + }, + "selectedModelUnavailable": { + "title": "Peninjau Kode memerlukan perhatian", + "description": "Peninjau Kode dinonaktifkan karena model yang dipilih tidak tersedia untuk sesi agen cloud. Pilih model yang tersedia, lalu aktifkan kembali Peninjau Kode.", + "recoveryLabel": "Perbarui pengaturan Peninjau Kode" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Peninjau Kode memerlukan perhatian", + "description": "Peninjau Kode dinonaktifkan setelah tiga kali waktu habis kloning repositori hari ini. Hubungi hi@kilocode.ai untuk bantuan, lalu aktifkan kembali Peninjau Kode.", + "recoveryLabel": "Hubungi dukungan" + } + }, + "unknownError": "Kesalahan tidak dikenal" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "Temuan di bawah ambang keparahan otomatis. Remediasi manual masih dapat dimulai saat gerbang keamanan terpenuhi.", "beforeEnablement": "Analisis selesai sebelum Remediasi Otomatis diaktifkan. Remediasi manual masih dapat dimulai saat gerbang keamanan terpenuhi.", "generic": "Remediasi tidak tersedia untuk temuan ini." + }, + "commandFailure": { + "ownerCapReached": "Kapasitas analisis penuh. Tunggu analisis aktif selesai, lalu coba lagi.", + "githubTokenUnavailable": "Otorisasi GitHub perlu perhatian. Otorisasi ulang Aplikasi GitHub, lalu coba lagi.", + "githubAuthInvalid": "Otorisasi GitHub perlu perhatian. Otorisasi ulang Aplikasi GitHub, lalu coba lagi.", + "findingUnavailable": "Temuan tidak lagi tersedia. Muat ulang temuan, lalu coba lagi jika masih terbuka.", + "repositoryUnavailable": "Repositori tidak lagi tersedia untuk Aplikasi GitHub. Muat ulang akses repositori, lalu coba lagi.", + "invalidDismissTarget": "Temuan tidak dapat diabaikan karena target Dependabot-nya tidak valid.", + "commandStalled": "Tindakan yang diantrekan tidak selesai tepat waktu. Coba lagi tindakan.", + "queueRetriesExhausted": "Tindakan tidak dapat diselesaikan setelah beberapa kali percobaan. Coba lagi tindakan.", + "queueAdmissionFailed": "Tindakan yang diantrekan tidak dapat diterima. Coba lagi tindakan.", + "generic": "Tindakan yang diantrekan gagal. Coba lagi tindakan." + }, + "analysisMode": { + "auto": "Otomatis", + "shallow": "Dangkal", + "deep": "Dalam" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "Tambahkan {{name}} ke favorit", "removeFromFavorites": "Hapus {{name}} dari favorit", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model sesi" }, "attachmentPreview": { "openFailedRetry": "Gagal membuka file. Coba lagi.", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "Tambah kredit", - "description": "Tambah kredit agar penggunaan tetap berjalan." + "description": "Tambah kredit agar penggunaan tetap berjalan.", + "billingPage": "halaman penagihan" }, "deviceSessions": { "couldNotLoad": "Tidak dapat memuat sesi", @@ -2271,7 +2348,10 @@ "restoreFailed": "Gagal memulihkan pembelian. Coba lagi.", "purchaseFailed": "Gagal menyelesaikan pembelian.", "purchaseStartFailed": "Gagal memulai pembelian App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass di Akun Apple ini milik akun Kilo yang berbeda." + "purchaseOwnedByAnotherAccount": "Kilo Pass di Akun Apple ini milik akun Kilo yang berbeda.", + "couldNotConnectToAppStore": "Tidak dapat terhubung ke App Store. Periksa koneksi Anda, lalu coba lagi.", + "noMatchingProducts": "App Store tidak mengembalikan produk Kilo Pass yang cocok.", + "purchaseMissingSignedTransaction": "Pembelian App Store tidak menyertakan JWS transaksi yang ditandatangani." }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "Dipilih {{label}}, ketuk untuk mengubah pilihan", "tapToComment": "{{label}}, ketuk untuk berkomentar", - "truncationBanner": "Menampilkan {{limit}} file pertama dari {{total}} file yang diubah — batas API GitHub" + "truncationBanner": "Menampilkan {{limit}} file pertama dari {{total}} file yang diubah — batas API GitHub", + "statusAdded": "Ditambahkan", + "statusContext": "Konteks", + "statusDeleted": "Dihapus" }, "linkPasteClipboardEmpty": "Clipboard kosong", "linkPasteNotAPullRequest": "Bukan tautan pull request GitHub", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "Tinjauan ini tidak dapat dikirim apa adanya. PR mungkin telah berubah, atau Anda tidak dapat meninjau pull request Anda sendiri.", "couldNotPostComment": "Tidak dapat mengirim komentar.", "couldNotSubmitReview": "Tidak dapat mengirim tinjauan. Periksa koneksi Anda dan coba lagi." + }, + "operation": { + "couldNotReply": "Tidak dapat membalas.", + "couldNotCompleteAction": "Tidak dapat menyelesaikan tindakan ini.", + "mergeResultDefaultError": "GitHub tidak menyelesaikan penggabungan." } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "Tidak ada aktivitas kredit", "expires": "Kedaluwarsa {{date}}", "title": "Aktivitas kredit", - "transactionFallback": "Transaksi kredit" + "transactionFallback": "Transaksi kredit", + "category": { + "organization_custom": "Kustom organisasi", + "parent_to_child_transfer_in": "Transfer masuk induk ke anak", + "parent_to_child_transfer_out": "Transfer keluar induk ke anak", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Penyesuaian akuntansi", + "credits_expired": "Kredit kedaluwarsa" + } }, "hub": { "balance": "Saldo", @@ -2837,11 +2935,16 @@ "emptyTitle": "Tidak ada faktur", "invoiceFallback": "Faktur", "title": "Faktur", - "statusPaid": "Lunas", - "statusOpen": "Terbuka", - "statusVoid": "Batal", "downloadFailed": "Tidak dapat mengunduh faktur. Periksa koneksi Anda dan coba lagi.", - "sharingUnavailable": "Berbagi tidak tersedia di perangkat ini." + "sharingUnavailable": "Berbagi tidak tersedia di perangkat ini.", + "status": { + "paid": "Lunas", + "open": "Terbuka", + "void": "Batal", + "draft": "Draf", + "uncollectible": "Tidak tertagih", + "unknown": "Tidak dikenal" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "Bagaimana pendapat Anda tentang aplikasi Kilo?", "rateKilo": "Beri Nilai Kilo", "sorryMessage": "Beri tahu kami apa yang perlu diperbaiki. Insinyur yang menangani aplikasi membaca setiap laporan!", - "sorryTitle": "Kami menyesal mendengarnya!" + "sorryTitle": "Kami menyesal mendengarnya!", + "emailSubject": "umpan balik aplikasi seluler" }, "authErrors": { "emailAlreadyUsed": "Akun dengan email ini sudah ada dengan metode masuk yang berbeda. Coba metode lain atau gunakan '$t(login.moreSignInOptions)'.", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data yang dikumpulkan", "free": "Gratis", - "couldNotUpdateFavorites": "Tidak dapat memperbarui favorit" + "couldNotUpdateFavorites": "Tidak dapat memperbarui favorit", + "thinkingEffort": { + "none": "Tidak ada", + "minimal": "Minimal", + "low": "Rendah", + "medium": "Sedang", + "high": "Tinggi", + "xhigh": "Ekstra Tinggi", + "max": "Maks" + } } } diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index 7604f9d261..bf423c5c63 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Ahọpụtara {{label}}, pịa iji gbanwee nhọrọ", "tapToComment": "{{label}}, pịa iji kọwaa", - "truncationBanner": "Na-egosi nke mbụ {{limit}} n'ime {{total}} faịlụ agbanwere — njedebe API GitHub" + "truncationBanner": "Na-egosi nke mbụ {{limit}} n'ime {{total}} faịlụ agbanwere — njedebe API GitHub", + "statusAdded": "Agbakwunyere", + "statusContext": "Ọdịnaya", + "statusDeleted": "Ehichapụla" }, "linkPasteClipboardEmpty": "Mbadamba ederede tọgbọrọ chakachara", "linkPasteNotAPullRequest": "Ọ bụghị njikọ arịrịọ ndọta GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Enweghị ike ịnyefe nyocha a dịka ọ dị. PR nwere ike ịgbanwela, ma ọ bụ ị nweghị ike ịnyocha arịrịọ dọrọ nke gị.", "couldNotPostComment": "Enweghị ike ibipụta nkọwa.", "couldNotSubmitReview": "Enweghị ike ịnyefe nyocha. Lelee njikọ gị ma nwaa ọzọ." + }, + "operation": { + "couldNotReply": "Enweghị ike ịzaghachi.", + "couldNotCompleteAction": "Enweghị ike imecha omume a.", + "mergeResultDefaultError": "GitHub emechaghị njikọta ahụ." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Ịkwụ ụgwọ gafeworo oge. Biko melite usoro ịkwụ ụgwọ gị.", "subscriptionCancels": "Ndenye na-akagbu {{date}}", "trialDaysRemaining": "Nnwale: {{remaining}} fọdụrụ", - "trialEndingSoon": "Nnwale na-akwụsị n'oge na-adịghị anya: {{remaining}}" + "trialEndingSoon": "Nnwale na-akwụsị n'oge na-adịghị anya: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Ihe Ọhụrụ", @@ -1189,7 +1201,8 @@ "strongArm": "Ogwe aka siri ike", "talisman": "Ihe nsọ" }, - "remoteSpawnFilesNotSupported": "Ihe ọmụmụ a enweghị ike ịnata faịlụ." + "remoteSpawnFilesNotSupported": "Ihe ọmụmụ a enweghị ike ịnata faịlụ.", + "instanceSwitcherTitle": "Ihe atụ KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Dara", "cancelled": "Kagbuola", "interrupted": "Akụsịrị" - } + }, + "reviewStyle": { + "strict": "Siri ike", + "balanced": "Ike nha", + "lenient": "Nnagide", + "roast": "Roast" + }, + "focusArea": { + "security": "Nchebe", + "performance": "Arụmọrụ", + "bugs": "Njehie", + "style": "Ụdị", + "testing": "Nnwale", + "documentation": "Akwụkwọ" + }, + "gateThreshold": { + "off": "Gbanyụọ", + "all": "Niile", + "warning": "Ịdọ aka ná ntị", + "critical": "Dị oké njọ" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Onye na-enyocha Koodu chọrọ nlebara anya", + "description": "E gbanyụrụ Onye na-enyocha Koodu n'ihi na Kilo enweghị ike ịnweta ebe nchekwa a na ntinye GitHub App na-arụ ọrụ. Melite ntinye GitHub App, wee gbanyeghachi Onye na-enyocha Koodu.", + "recoveryLabel": "Melite GitHub App" + }, + "githubIpAllowList": { + "title": "Onye na-enyocha Koodu chọrọ nlebara anya", + "description": "E gbanyụrụ Onye na-enyocha Koodu n'ihi na nzukọ GitHub a na-eji ndepụta ikike IP nke na-egbochi Kilo. Kpọtụrụ hi@kilocode.ai maka enyemaka, wee gbanyeghachi Onye na-enyocha Koodu.", + "recoveryLabel": "Kpọtụrụ nkwado" + }, + "gitlabProjectAccessRequired": { + "title": "Onye na-enyocha Koodu chọrọ nlebara anya", + "description": "E gbanyụrụ Onye na-enyocha Koodu n'ihi na Kilo enweghị ike imepụta GitLab Project Access Token maka ọrụ a. Nye ohere Maintainer ma ọ bụ gbanye Project Access Tokens, wee gbanyeghachi Onye na-enyocha Koodu.", + "recoveryLabel": "Melite njikọ GitLab" + }, + "byokInvalidKey": { + "title": "Onye na-enyocha Koodu chọrọ nlebara anya", + "description": "E gbanyụrụ Onye na-enyocha Koodu n'ihi na igodo API BYOK ahọpụtara adịghị mma, kagburu ya, ma ọ bụ enweghị ikike. Melite igodo ma ọ bụ họrọ ụdị ọzọ, wee gbanyeghachi Onye na-enyocha Koodu.", + "recoveryLabel": "Melite ntọala BYOK" + }, + "selectedModelUnavailable": { + "title": "Onye na-enyocha Koodu chọrọ nlebara anya", + "description": "E gbanyụrụ Onye na-enyocha Koodu n'ihi na ụdị ahọpụtara adịghị maka oge onye nnọchite cloud. Họrọ ụdị dịnụ, wee gbanyeghachi Onye na-enyocha Koodu.", + "recoveryLabel": "Melite ntọala Onye na-enyocha Koodu" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Onye na-enyocha Koodu chọrọ nlebara anya", + "description": "E gbanyụrụ Onye na-enyocha Koodu mgbe oge ngwụcha nke ịdepụtaghachi ebe nchekwa atọ taa. Kpọtụrụ hi@kilocode.ai maka enyemaka, wee gbanyeghachi Onye na-enyocha Koodu.", + "recoveryLabel": "Kpọtụrụ nkwado" + } + }, + "unknownError": "Njehie a na-amaghị" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Ihe achọpụtara dị n'okpuru ọkwa nke akpaaka. Ndozi aka ka nwere ike ịmalite mgbe ọnụ ụzọ nchebe gafere.", "beforeEnablement": "Nyocha gwụchara tupu agbanye Mgbazi akpaaka. Ndozi aka ka nwere ike ịmalite mgbe ọnụ ụzọ nchebe gafere.", "generic": "Ndozi adịghị maka ihe achọpụtara a." + }, + "commandFailure": { + "ownerCapReached": "Ikike nyocha juru. Chere ka nyocha dị ndụ mechaa, wee nwaa ọzọ.", + "githubTokenUnavailable": "Ikike GitHub chọrọ nlebara anya. Nye GitHub App ikike ọzọ, wee nwaa ọzọ.", + "githubAuthInvalid": "Ikike GitHub chọrọ nlebara anya. Nye GitHub App ikike ọzọ, wee nwaa ọzọ.", + "findingUnavailable": "Ihe achọpụtara adịkwaghị. Meegharịa ihe achọpụtara wee nwaa ọzọ ma ọ bụrụ na ọ ka mepere emepe.", + "repositoryUnavailable": "Ebe nchekwa adịkwaghị maka GitHub App. Meegharịa ohere ebe nchekwa, wee nwaa ọzọ.", + "invalidDismissTarget": "Enweghị ike ịkagbu ihe achọpụtara n'ihi na ebumnuche Dependabot ya adịghị mma.", + "commandStalled": "Omume kwụ n'ahịrị emechaghị n'oge. Nwaa omume ahụ ọzọ.", + "queueRetriesExhausted": "Enweghị ike imecha omume ahụ mgbe ọtụtụ mbọ gasịrị. Nwaa omume ahụ ọzọ.", + "queueAdmissionFailed": "Enweghị ike ịnabata omume kwụ n'ahịrị. Nwaa omume ahụ ọzọ.", + "generic": "Omume kwụ n'ahịrị dara. Nwaa omume ahụ ọzọ." + }, + "analysisMode": { + "auto": "Akpaaka", + "shallow": "Nke na-emighị emi", + "deep": "Nke miri emi" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Tinye {{name}} na ndị ọkacha mmasị", "removeFromFavorites": "Wepụ {{name}} na ndị ọkacha mmasị", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Ụdị nzukọ" }, "attachmentPreview": { "openFailedRetry": "Enweghị ike imeghe faịlụ. Biko nwaa ọzọ.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Ịgbakwunye kredit", - "description": "Ịgbakwunye kredit ka ojiji wee gaa n'ihu." + "description": "Ịgbakwunye kredit ka ojiji wee gaa n'ihu.", + "billingPage": "ibe ịkwụ ụgwọ" }, "deviceSessions": { "couldNotLoad": "Enweghị ike ibutu nnọkọ", @@ -2710,7 +2795,10 @@ "restoreFailed": "Ịweghachite azụrụ dara. Nwaa ọzọ.", "purchaseFailed": "Ịmecha azụrụ dara.", "purchaseStartFailed": "Ịmalite azụrụ App Store dara.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na Akaụntụ Apple a bụ nke akaụntụ Kilo ọzọ." + "purchaseOwnedByAnotherAccount": "Kilo Pass na Akaụntụ Apple a bụ nke akaụntụ Kilo ọzọ.", + "couldNotConnectToAppStore": "Enweghị ike ijikọ na App Store. Lelee njikọ gị wee nwaa ọzọ.", + "noMatchingProducts": "App Store eweghachiteghị ngwaahịa Kilo Pass dakọtara.", + "purchaseMissingSignedTransaction": "Ịzụrụ ihe na App Store agụnyeghị JWS azụmahịa edere aka." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Ọ chọrọ ọrụ", "sorryTitle": "Ọ dị anyị mwute ịnụ nke a!", "sorryMessage": "Biko gwa anyị ihe kwesịrị ịka mma. Onye injinia na-elekọta ngwa na-agụ akụkọ ọ bụla!", - "emailUs": "Ziga anyị email" + "emailUs": "Ziga anyị email", + "emailSubject": "nzaghachi ngwa mobile" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ọ dịghị ọrụ kredit", "expires": "Na-agwụ na {{date}}", "title": "Ọrụ kredit", - "transactionFallback": "Azụmahịa kredit" + "transactionFallback": "Azụmahịa kredit", + "category": { + "organization_custom": "Omenala nzukọ", + "parent_to_child_transfer_in": "Mbugharị nne na nna na-abata na nwa", + "parent_to_child_transfer_out": "Mbugharị nne na nna na-apụ na nwa", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Mmezi ndekọ ego", + "credits_expired": "Kredit emebiwo" + } }, "inviteMember": { "emailError": "Tinye adres email ziri ezi", @@ -2840,12 +2939,17 @@ "emptyDescription": "A na-emepụta invoice na akpaghị aka na okirikiri ịgba ụgwọ ọ bụla ma ga-apụta ebe a ozugbo a gbara ụlọ ọrụ gị ụgwọ.", "emptyTitle": "Ọ dịghị invoice", "invoiceFallback": "Invoice", - "statusOpen": "Mepee", - "statusPaid": "Akwụrụ", - "statusVoid": "Efefuo", "title": "Invoices", "downloadFailed": "Enweghị ike ibudata akwụkwọ ọnụahịa. Lelee njikọ gị ma nwaa ọzọ.", - "sharingUnavailable": "Nkesa adịghị na ngwaọrụ a." + "sharingUnavailable": "Nkesa adịghị na ngwaọrụ a.", + "status": { + "paid": "Akwụrụ", + "open": "Mepere emepe", + "void": "Efefuo", + "draft": "Ihe odide", + "uncollectible": "Enweghị ike ịnakọta", + "unknown": "Amaghị" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data anakọtara", "free": "N'efu", - "couldNotUpdateFavorites": "Enweghị ike imelite ọkacha mmasị" + "couldNotUpdateFavorites": "Enweghị ike imelite ọkacha mmasị", + "thinkingEffort": { + "none": "Ọ dịghị", + "minimal": "Nke kacha nta", + "low": "Dị ala", + "medium": "Ọkara", + "high": "Dị elu", + "xhigh": "Dị elu karịsịa", + "max": "Kachasị" + } } } diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index 9afefd1d01..0f3ab6483d 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Valið {{label}}, bankaðu til að breyta vali", "tapToComment": "{{label}}, bankaðu til að skrifa athugasemd", - "truncationBanner": "Sýni fyrstu {{limit}} af {{total}} breyttum skrám — GitHub API takmörk" + "truncationBanner": "Sýni fyrstu {{limit}} af {{total}} breyttum skrám — GitHub API takmörk", + "statusAdded": "Bætt", + "statusContext": "Samhengi", + "statusDeleted": "Eytt" }, "linkPasteClipboardEmpty": "Klippiborð er tómt", "linkPasteNotAPullRequest": "Ekki GitHub pull request hlekkur", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Ekki er hægt að senda þessa úttekt eins og hún er. PR-inn kann að hafa breyst, eða þú getur ekki yfirfarið þinn eigin pull request.", "couldNotPostComment": "Gat ekki birt athugasemd.", "couldNotSubmitReview": "Gat ekki sent úttekt. Athugaðu tenginguna og reyndu aftur." + }, + "operation": { + "couldNotReply": "Gat ekki svarað.", + "couldNotCompleteAction": "Gat ekki lokið þessari aðgerð.", + "mergeResultDefaultError": "GitHub kláraði ekki sameininguna." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Greiðsla er komin fram yfir gjalddaga. Uppfærðu greiðslumáta þinn.", "subscriptionCancels": "Áskrift fellur úr gildi {{date}}", "trialDaysRemaining": "Reynslutímabil: {{remaining}} eftir", - "trialEndingSoon": "Reynslutímabili lýkur fljótlega: {{remaining}}" + "trialEndingSoon": "Reynslutímabili lýkur fljótlega: {{remaining}}", + "planName": { + "commit": "Skuldbinda", + "standard": "Standard" + } }, "changelog": { "title": "Hvað er nýtt", @@ -1189,7 +1201,8 @@ "strongArm": "Sterkur handleggur", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Þetta tilvik getur ekki tekið við skrám." + "remoteSpawnFilesNotSupported": "Þetta tilvik getur ekki tekið við skrám.", + "instanceSwitcherTitle": "KiloClaw tilvik" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Mistókst", "cancelled": "Hætt við", "interrupted": "Rofið" - } + }, + "reviewStyle": { + "strict": "Strangt", + "balanced": "Jafnvægt", + "lenient": "Eftirgefið", + "roast": "Roast" + }, + "focusArea": { + "security": "Öryggi", + "performance": "Afköst", + "bugs": "Gallar", + "style": "Stíll", + "testing": "Prófanir", + "documentation": "Skjölun" + }, + "gateThreshold": { + "off": "Af", + "all": "Allt", + "warning": "Viðvörun", + "critical": "Alvarlegt" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer þarfnast athygli", + "description": "Code Reviewer var óvirkur vegna þess að Kilo getur ekki nálgast þessa geymslu með virkri GitHub App-uppsetningu. Uppfærðu GitHub App-uppsetninguna, og virkjaðu svo Code Reviewer aftur.", + "recoveryLabel": "Uppfæra GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer þarfnast athygli", + "description": "Code Reviewer var óvirkur vegna þess að þessi GitHub-stofnun notar IP-leyfislista sem loka á Kilo. Hafðu samband við hi@kilocode.ai til að fá hjálp, og virkjaðu svo Code Reviewer aftur.", + "recoveryLabel": "Hafðu samband við þjónustuver" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer þarfnast athygli", + "description": "Code Reviewer var óvirkur vegna þess að Kilo getur ekki búið til GitLab Project Access Token fyrir þetta verkefni. Veittu Maintainer-aðgang eða virkjaðu Project Access Tokens, og virkjaðu svo Code Reviewer aftur.", + "recoveryLabel": "Uppfæra GitLab-samþættingu" + }, + "byokInvalidKey": { + "title": "Code Reviewer þarfnast athygli", + "description": "Code Reviewer var óvirkur vegna þess að valdi BYOK API-lykillinn er ógildur, afturkallaður eða skortir heimild. Uppfærðu lykilinn eða veldu annað líkan, og virkjaðu svo Code Reviewer aftur.", + "recoveryLabel": "Uppfæra BYOK-stillingar" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer þarfnast athygli", + "description": "Code Reviewer var óvirkur vegna þess að valda líkanið er ekki tiltækt fyrir cloud agent-lotur. Veldu tiltækt líkan, og virkjaðu svo Code Reviewer aftur.", + "recoveryLabel": "Uppfæra Code Reviewer-stillingar" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer þarfnast athygli", + "description": "Code Reviewer var óvirkur eftir þrjú tímamörk á geymsluklónun í dag. Hafðu samband við hi@kilocode.ai til að fá hjálp, og virkjaðu svo Code Reviewer aftur.", + "recoveryLabel": "Hafðu samband við þjónustuver" + } + }, + "unknownError": "Óþekkt villa" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Atvik er undir lágmarksalvarleika sjálfvirkra úrbóta. Handvirkar úrbætur geta samt hafist þegar öryggisgáttir standast.", "beforeEnablement": "Greining lauk áður en sjálfvirkar úrbætur voru virkjaðar. Handvirkar úrbætur geta samt hafist þegar öryggisgáttir standast.", "generic": "Úrbætur eru ekki tiltækar fyrir þetta atvik." + }, + "commandFailure": { + "ownerCapReached": "Greiningargeta er full. Bíddu þar til virk greining lýkur, og reyndu svo aftur.", + "githubTokenUnavailable": "GitHub-heimild þarfnast athygli. Endurheimildu GitHub App, og reyndu svo aftur.", + "githubAuthInvalid": "GitHub-heimild þarfnast athygli. Endurheimildu GitHub App, og reyndu svo aftur.", + "findingUnavailable": "Atvik er ekki lengur tiltækt. Endurnýjaðu atvik og reyndu aftur ef það er enn opið.", + "repositoryUnavailable": "Geymsla er ekki lengur tiltæk GitHub App. Endurnýjaðu geymsluaðgang, og reyndu svo aftur.", + "invalidDismissTarget": "Ekki er hægt að vísa atviki frá vegna þess að Dependabot-markmið þess er ógilt.", + "commandStalled": "Aðgerð í biðröð lauk ekki í tíma. Reyndu aðgerðina aftur.", + "queueRetriesExhausted": "Ekki tókst að klára aðgerðina eftir nokkrar tilraunir. Reyndu aðgerðina aftur.", + "queueAdmissionFailed": "Ekki tókst að setja aðgerð í biðröð. Reyndu aðgerðina aftur.", + "generic": "Aðgerð í biðröð mistókst. Reyndu aðgerðina aftur." + }, + "analysisMode": { + "auto": "Sjálfvirkt", + "shallow": "Grunn", + "deep": "Djúpt" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Bæta {{name}} við eftirlæti", "removeFromFavorites": "Fjarlægja {{name}} af eftirlætum", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Mið" + "thinkingEffortMedium": "Mið", + "sessionModel": "Lotulíkan" }, "attachmentPreview": { "openFailedRetry": "Ekki tókst að opna skrána. Reyndu aftur.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Bæta við kredítum", - "description": "Bættu við kredítum til að halda notkuninni gangandi." + "description": "Bættu við kredítum til að halda notkuninni gangandi.", + "billingPage": "reikningasíðu" }, "deviceSessions": { "couldNotLoad": "Ekki tókst að hlaða lotur", @@ -2710,7 +2795,10 @@ "restoreFailed": "Mistókst að endurheimta kaup. Reyndu aftur.", "purchaseFailed": "Mistókst að ljúka kaupum.", "purchaseStartFailed": "Mistókst að hefja App Store-kaup.", - "purchaseOwnedByAnotherAccount": "Kilo Pass á þessum Apple-reikningi tilheyrir öðrum Kilo-reikningi." + "purchaseOwnedByAnotherAccount": "Kilo Pass á þessum Apple-reikningi tilheyrir öðrum Kilo-reikningi.", + "couldNotConnectToAppStore": "Gat ekki tengst App Store. Athugaðu tenginguna og reyndu aftur.", + "noMatchingProducts": "Engar samsvarandi Kilo Pass-vörur komu frá App Store.", + "purchaseMissingSignedTransaction": "App Store-kaup innihéldu ekki undirritaða færslu JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Þarfnast úrbóta", "sorryTitle": "Okkur þykir leitt að heyra það!", "sorryMessage": "Vinsamlega láttu okkur vita hvað þarf að bæta. Verkfræðingurinn sem sér um appið les hverja einustu skýrslu!", - "emailUs": "Sendu okkur tölvupóst" + "emailUs": "Sendu okkur tölvupóst", + "emailSubject": "Ábending um farsímaapp" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Engin kreditvirkni", "expires": "Rennur út {{date}}", "title": "Kreditvirkni", - "transactionFallback": "Kreditfærsla" + "transactionFallback": "Kreditfærsla", + "category": { + "organization_custom": "Sérsniðið fyrir félag", + "parent_to_child_transfer_in": "Flutningur inn frá móðurfélagi", + "parent_to_child_transfer_out": "Flutningur út til móðurfélags", + "oss-sponsorship": "OSS-styrkur", + "oss-monthly-reset": "OSS-mánaðarleg endurstilling", + "team-topup-bonus-2025": "Hópáfyllingarbónus 2025", + "accounting_adjustment": "Bókhaldsleiðrétting", + "credits_expired": "Kredítur runnu út" + } }, "inviteMember": { "emailError": "Sláðu inn gilt tölvupóstfang", @@ -2840,12 +2939,17 @@ "emptyDescription": "Reikningar eru myndaðir sjálfkrafa á hverju innheimtutímabili og munu birtast hér þegar félagið þitt er innheimt.", "emptyTitle": "Engir reikningar", "invoiceFallback": "Reikningur", - "statusOpen": "Opin", - "statusPaid": "Greitt", - "statusVoid": "Ógilt", "title": "Reikningar", "downloadFailed": "Gat ekki hlaðið niður reikningi. Athugaðu tenginguna og reyndu aftur.", - "sharingUnavailable": "Deiling er ekki tiltæk á þessu tæki." + "sharingUnavailable": "Deiling er ekki tiltæk á þessu tæki.", + "status": { + "paid": "Greitt", + "open": "Opin", + "void": "Ógilt", + "draft": "Drög", + "uncollectible": "Óinnheimtanlegt", + "unknown": "Óþekkt" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Upplýsingar safnaðar", "free": "Ókeypis", - "couldNotUpdateFavorites": "Gat ekki uppfært uppáhald" + "couldNotUpdateFavorites": "Gat ekki uppfært uppáhald", + "thinkingEffort": { + "none": "Ekkert", + "minimal": "Lágmark", + "low": "Lágt", + "medium": "Miðlungs", + "high": "Hátt", + "xhigh": "Mjög hátt", + "max": "Hámark" + } } } diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index 608b6bb362..acf7a26afa 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -369,7 +369,11 @@ "paymentPastDue": "Pagamento scaduto. Aggiorna il tuo metodo di pagamento.", "subscriptionCancels": "L'abbonamento si annulla il {{date}}", "trialDaysRemaining": "Prova: {{remaining}} rimanenti", - "trialEndingSoon": "Prova in scadenza: {{remaining}}" + "trialEndingSoon": "Prova in scadenza: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Novità", @@ -738,7 +742,8 @@ "strongArm": "Braccio forte", "talisman": "Talismano" }, - "remoteSpawnFilesNotSupported": "Questa istanza non può ricevere file." + "remoteSpawnFilesNotSupported": "Questa istanza non può ricevere file.", + "instanceSwitcherTitle": "Istanza KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -936,7 +941,60 @@ "failed": "Non riuscita", "cancelled": "Annullata", "interrupted": "Interrotta" - } + }, + "reviewStyle": { + "strict": "Severo", + "balanced": "Bilanciato", + "lenient": "Indulgente", + "roast": "Roast" + }, + "focusArea": { + "security": "Sicurezza", + "performance": "Prestazioni", + "bugs": "Bug", + "style": "Stile", + "testing": "Testing", + "documentation": "Documentazione" + }, + "gateThreshold": { + "off": "Disattivato", + "all": "Tutti", + "warning": "Avviso", + "critical": "Critico" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer richiede attenzione", + "description": "Code Reviewer è stato disabilitato perché Kilo non può accedere a questo repository con un'installazione attiva della GitHub App. Aggiorna l'installazione della GitHub App, poi riattiva Code Reviewer.", + "recoveryLabel": "Aggiorna GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer richiede attenzione", + "description": "Code Reviewer è stato disabilitato perché questa organizzazione GitHub usa una lista consentita di indirizzi IP che blocca Kilo. Contatta hi@kilocode.ai per assistenza, poi riattiva Code Reviewer.", + "recoveryLabel": "Contatta l'assistenza" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer richiede attenzione", + "description": "Code Reviewer è stato disabilitato perché Kilo non può creare un GitLab Project Access Token per questo progetto. Concedi l'accesso Maintainer o abilita i Project Access Token, poi riattiva Code Reviewer.", + "recoveryLabel": "Aggiorna l'integrazione GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer richiede attenzione", + "description": "Code Reviewer è stato disabilitato perché la chiave API BYOK selezionata non è valida, è stata revocata o non ha i permessi. Aggiorna la chiave o scegli un altro modello, poi riattiva Code Reviewer.", + "recoveryLabel": "Aggiorna le impostazioni BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer richiede attenzione", + "description": "Code Reviewer è stato disabilitato perché il modello selezionato non è disponibile per le sessioni dell'agente cloud. Scegli un modello disponibile, poi riattiva Code Reviewer.", + "recoveryLabel": "Aggiorna le impostazioni di Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer richiede attenzione", + "description": "Code Reviewer è stato disabilitato dopo tre timeout di clonazione del repository oggi. Contatta hi@kilocode.ai per assistenza, poi riattiva Code Reviewer.", + "recoveryLabel": "Contatta l'assistenza" + } + }, + "unknownError": "Errore sconosciuto" }, "securityAgent": { "filter": { @@ -1480,6 +1538,23 @@ "belowThreshold": "Il risultato è al di sotto della soglia automatica di gravità. La remediation manuale può comunque iniziare quando i gate di sicurezza vengono superati.", "beforeEnablement": "L'analisi è stata completata prima che la remediation automatica venisse abilitata. La remediation manuale può comunque iniziare quando i gate di sicurezza vengono superati.", "generic": "La remediation non è disponibile per questo risultato." + }, + "commandFailure": { + "ownerCapReached": "La capacità di analisi è piena. Attendi il completamento di un'analisi attiva, poi riprova.", + "githubTokenUnavailable": "L'autorizzazione GitHub richiede attenzione. Riautorizza la GitHub App, poi riprova.", + "githubAuthInvalid": "L'autorizzazione GitHub richiede attenzione. Riautorizza la GitHub App, poi riprova.", + "findingUnavailable": "Il risultato non è più disponibile. Aggiorna i risultati e riprova se risulta ancora aperto.", + "repositoryUnavailable": "Il repository non è più disponibile per la GitHub App. Aggiorna l'accesso al repository, poi riprova.", + "invalidDismissTarget": "Il risultato non può essere ignorato perché il relativo target Dependabot non è valido.", + "commandStalled": "L'azione in coda non è terminata in tempo. Riprova l'azione.", + "queueRetriesExhausted": "L'azione non ha potuto essere completata dopo diversi tentativi. Riprova l'azione.", + "queueAdmissionFailed": "L'azione in coda non ha potuto essere accettata. Riprova l'azione.", + "generic": "L'azione in coda non è riuscita. Riprova l'azione." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Superficiale", + "deep": "Profonda" } }, "agents": { @@ -1949,7 +2024,8 @@ "addToFavorites": "Aggiungi {{name}} ai preferiti", "removeFromFavorites": "Rimuovi {{name}} dai preferiti", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Modello della sessione" }, "attachmentPreview": { "openFailedRetry": "Impossibile aprire il file. Riprova.", @@ -2096,7 +2172,8 @@ }, "addCredits": { "cta": "Aggiungi crediti", - "description": "Aggiungi crediti per mantenere attivo l'utilizzo." + "description": "Aggiungi crediti per mantenere attivo l'utilizzo.", + "billingPage": "pagina di fatturazione" }, "deviceSessions": { "couldNotLoad": "Impossibile caricare le sessioni", @@ -2284,7 +2361,10 @@ "restoreFailed": "Ripristino degli acquisti non riuscito. Riprova.", "purchaseFailed": "Impossibile completare l'acquisto.", "purchaseStartFailed": "Impossibile avviare l'acquisto nell'App Store.", - "purchaseOwnedByAnotherAccount": "Il Kilo Pass su questo account Apple appartiene a un account Kilo diverso." + "purchaseOwnedByAnotherAccount": "Il Kilo Pass su questo account Apple appartiene a un account Kilo diverso.", + "couldNotConnectToAppStore": "Impossibile connettersi all'App Store. Controlla la connessione e riprova.", + "noMatchingProducts": "L'App Store non ha restituito prodotti Kilo Pass corrispondenti.", + "purchaseMissingSignedTransaction": "L'acquisto sull'App Store non includeva una JWS di transazione firmata." }, "consent": { "kilo": "Kilo", @@ -2799,7 +2879,10 @@ "diff": { "selectedTapToChange": "Selezionato {{label}}, tocca per cambiare selezione", "tapToComment": "{{label}}, tocca per commentare", - "truncationBanner": "Mostra le prime {{limit}} di {{total}} modifiche ai file — limite API GitHub" + "truncationBanner": "Mostra le prime {{limit}} di {{total}} modifiche ai file — limite API GitHub", + "statusAdded": "Aggiunto", + "statusContext": "Contesto", + "statusDeleted": "Eliminato" }, "linkPasteClipboardEmpty": "Appunti vuoti", "linkPasteNotAPullRequest": "Non è un link a una pull request di GitHub", @@ -2813,6 +2896,11 @@ "reviewNotSubmitted": "Questa revisione non può essere inviata così com'è. La PR potrebbe essere cambiata oppure non puoi revisionare la tua stessa pull request.", "couldNotPostComment": "Impossibile pubblicare il commento.", "couldNotSubmitReview": "Impossibile inviare la revisione. Controlla la connessione e riprova." + }, + "operation": { + "couldNotReply": "Impossibile rispondere.", + "couldNotCompleteAction": "Impossibile completare questa azione.", + "mergeResultDefaultError": "GitHub non ha completato il merge." } }, "organization": { @@ -2830,7 +2918,17 @@ "emptyTitle": "Nessuna attività sui crediti", "expires": "Scade il {{date}}", "title": "Attività sui crediti", - "transactionFallback": "Transazione di crediti" + "transactionFallback": "Transazione di crediti", + "category": { + "organization_custom": "Personalizzato organizzazione", + "parent_to_child_transfer_in": "Trasferimento da genitore a figlio in entrata", + "parent_to_child_transfer_out": "Trasferimento da genitore a figlio in uscita", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Rettifica contabile", + "credits_expired": "Crediti scaduti" + } }, "hub": { "balance": "Saldo", @@ -2857,11 +2955,16 @@ "emptyTitle": "Nessuna fattura", "invoiceFallback": "Fattura", "title": "Fatture", - "statusPaid": "Pagata", - "statusOpen": "Aperta", - "statusVoid": "Annullata", "downloadFailed": "Impossibile scaricare la fattura. Controlla la connessione e riprova.", - "sharingUnavailable": "La condivisione non è disponibile su questo dispositivo." + "sharingUnavailable": "La condivisione non è disponibile su questo dispositivo.", + "status": { + "paid": "Pagata", + "open": "Aperta", + "void": "Annullata", + "draft": "Bozza", + "uncollectible": "Non riscuotibile", + "unknown": "Sconosciuto" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2962,7 +3065,8 @@ "promptTitle": "Come ti trovi con l'app Kilo?", "rateKilo": "Valuta Kilo", "sorryMessage": "Facci sapere cosa va migliorato. L'ingegnere responsabile dell'app legge ogni singola segnalazione!", - "sorryTitle": "Ci dispiace!" + "sorryTitle": "Ci dispiace!", + "emailSubject": "feedback sull'app mobile" }, "authErrors": { "emailAlreadyUsed": "Esiste già un account con questa email e un metodo di accesso diverso. Prova un altro metodo oppure usa \"$t(login.moreSignInOptions)\".", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Dati raccolti", "free": "Gratuito", - "couldNotUpdateFavorites": "Impossibile aggiornare i preferiti" + "couldNotUpdateFavorites": "Impossibile aggiornare i preferiti", + "thinkingEffort": { + "none": "Nessuno", + "minimal": "Minimo", + "low": "Basso", + "medium": "Medio", + "high": "Alto", + "xhigh": "Extra Alto", + "max": "Massimo" + } } } diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 923f8a1785..00e6f6829a 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -382,7 +382,11 @@ "paymentPastDue": "お支払いが期限を過ぎています。お支払い方法を更新してください。", "subscriptionCancels": "サブスクリプションは{{date}}に解約されます", "trialDaysRemaining": "トライアル: 残り{{remaining}}", - "trialEndingSoon": "トライアル終了間近: {{remaining}}" + "trialEndingSoon": "トライアル終了間近: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "新着情報", @@ -750,7 +754,8 @@ "strongArm": "ストロングアーム", "talisman": "タリスマン" }, - "remoteSpawnFilesNotSupported": "このインスタンスはファイルを受信できません。" + "remoteSpawnFilesNotSupported": "このインスタンスはファイルを受信できません。", + "instanceSwitcherTitle": "KiloClawインスタンス" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "失敗", "cancelled": "キャンセル済み", "interrupted": "中断" - } + }, + "reviewStyle": { + "strict": "厳格", + "balanced": "バランス", + "lenient": "寛容", + "roast": "容赦なし" + }, + "focusArea": { + "security": "セキュリティ", + "performance": "パフォーマンス", + "bugs": "バグ", + "style": "スタイル", + "testing": "テスト", + "documentation": "ドキュメント" + }, + "gateThreshold": { + "off": "オフ", + "all": "すべて", + "warning": "警告", + "critical": "重大" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "コードレビュアーに対応が必要です", + "description": "KiloがアクティブなGitHub Appインストールでこのリポジトリにアクセスできないため、コードレビュアーは無効になりました。GitHub Appのインストールを更新してから、コードレビュアーを再度有効にしてください。", + "recoveryLabel": "GitHub Appを更新" + }, + "githubIpAllowList": { + "title": "コードレビュアーに対応が必要です", + "description": "このGitHub組織がKiloをブロックするIP許可リストを使用しているため、コードレビュアーは無効になりました。サポートが必要な場合はhi@kilocode.aiに連絡してから、コードレビュアーを再度有効にしてください。", + "recoveryLabel": "サポートに連絡" + }, + "gitlabProjectAccessRequired": { + "title": "コードレビュアーに対応が必要です", + "description": "KiloがこのプロジェクトのGitLab Project Access Tokenを作成できないため、コードレビュアーは無効になりました。Maintainerアクセスを付与するか、Project Access Tokensを有効にしてから、コードレビュアーを再度有効にしてください。", + "recoveryLabel": "GitLabインテグレーションを更新" + }, + "byokInvalidKey": { + "title": "コードレビュアーに対応が必要です", + "description": "選択したBYOK APIキーが無効、失効、または権限がないため、コードレビュアーは無効になりました。キーを更新するか別のモデルを選択してから、コードレビュアーを再度有効にしてください。", + "recoveryLabel": "BYOK設定を更新" + }, + "selectedModelUnavailable": { + "title": "コードレビュアーに対応が必要です", + "description": "選択したモデルがクラウドエージェントセッションで利用できないため、コードレビュアーは無効になりました。利用可能なモデルを選択してから、コードレビュアーを再度有効にしてください。", + "recoveryLabel": "コードレビュアー設定を更新" + }, + "repeatedRepositoryCloneTimeout": { + "title": "コードレビュアーに対応が必要です", + "description": "今日3回のリポジトリクローンタイムアウトが発生したため、コードレビュアーは無効になりました。サポートが必要な場合はhi@kilocode.aiに連絡してから、コードレビュアーを再度有効にしてください。", + "recoveryLabel": "サポートに連絡" + } + }, + "unknownError": "不明なエラー" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "所見が自動修復の重大度しきい値を下回っています。安全ゲートを通過すれば、手動修復はまだ開始できます。", "beforeEnablement": "分析は自動修復が有効になる前に完了しました。安全ゲートを通過すれば、手動修復はまだ開始できます。", "generic": "この所見では修復を利用できません。" + }, + "commandFailure": { + "ownerCapReached": "分析キャパシティがいっぱいです。アクティブな分析が終了するまで待ってから、再試行してください。", + "githubTokenUnavailable": "GitHubの承認に対応が必要です。GitHub Appを再承認してから、再試行してください。", + "githubAuthInvalid": "GitHubの承認に対応が必要です。GitHub Appを再承認してから、再試行してください。", + "findingUnavailable": "所見は利用できなくなりました。所見を更新し、未解決のままなら再試行してください。", + "repositoryUnavailable": "リポジトリがGitHub Appから利用できなくなりました。リポジトリアクセスを更新してから、再試行してください。", + "invalidDismissTarget": "Dependabotターゲットが無効なため、所見を却下できません。", + "commandStalled": "キューに入れたアクションが時間内に完了しませんでした。アクションを再試行してください。", + "queueRetriesExhausted": "数回試行した後もアクションを完了できませんでした。アクションを再試行してください。", + "queueAdmissionFailed": "キューに入れたアクションを受け付けられませんでした。アクションを再試行してください。", + "generic": "キューに入れたアクションに失敗しました。アクションを再試行してください。" + }, + "analysisMode": { + "auto": "自動", + "shallow": "簡易", + "deep": "詳細" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "{{name}}をお気に入りに追加", "removeFromFavorites": "{{name}}をお気に入りから削除", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "セッションモデル" }, "attachmentPreview": { "openFailedRetry": "ファイルを開けませんでした。もう一度お試しください。", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "クレジットを追加", - "description": "使用を継続するにはクレジットを追加してください。" + "description": "使用を継続するにはクレジットを追加してください。", + "billingPage": "請求ページ" }, "deviceSessions": { "couldNotLoad": "セッションを読み込めませんでした", @@ -2271,7 +2348,10 @@ "restoreFailed": "購入の復元に失敗しました。もう一度お試しください。", "purchaseFailed": "購入を完了できませんでした。", "purchaseStartFailed": "App Storeでの購入を開始できませんでした。", - "purchaseOwnedByAnotherAccount": "このAppleアカウントのKilo Passは別のKiloアカウントに属しています。" + "purchaseOwnedByAnotherAccount": "このAppleアカウントのKilo Passは別のKiloアカウントに属しています。", + "couldNotConnectToAppStore": "App Storeに接続できませんでした。接続を確認して、もう一度お試しください。", + "noMatchingProducts": "App Storeから一致するKilo Pass製品は返されませんでした。", + "purchaseMissingSignedTransaction": "App Storeの購入に署名済みトランザクションJWSが含まれていませんでした。" }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "{{label}}を選択中。タップして選択を変更", "tapToComment": "{{label}}をタップしてコメント", - "truncationBanner": "変更されたファイル {{total}} 件中、最初の {{limit}} 件を表示中 — GitHub API の制限" + "truncationBanner": "変更されたファイル {{total}} 件中、最初の {{limit}} 件を表示中 — GitHub API の制限", + "statusAdded": "追加", + "statusContext": "コンテキスト", + "statusDeleted": "削除" }, "linkPasteClipboardEmpty": "クリップボードが空です", "linkPasteNotAPullRequest": "GitHub のプルリクエストリンクではありません", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "このレビューはこのままでは送信できません。PRが変更されたか、自分のプルリクエストはレビューできない可能性があります。", "couldNotPostComment": "コメントを投稿できませんでした。", "couldNotSubmitReview": "レビューを送信できませんでした。接続を確認して、もう一度お試しください。" + }, + "operation": { + "couldNotReply": "返信できませんでした。", + "couldNotCompleteAction": "この操作を完了できませんでした。", + "mergeResultDefaultError": "GitHubはマージを完了しませんでした。" } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "クレジットアクティビティはありません", "expires": "失効: {{date}}", "title": "クレジットアクティビティ", - "transactionFallback": "クレジット取引" + "transactionFallback": "クレジット取引", + "category": { + "organization_custom": "組織カスタム", + "parent_to_child_transfer_in": "親から子への振替(入)", + "parent_to_child_transfer_out": "親から子への振替(出)", + "oss-sponsorship": "OSSスポンサーシップ", + "oss-monthly-reset": "OSS月次リセット", + "team-topup-bonus-2025": "チームチャージボーナス2025", + "accounting_adjustment": "会計調整", + "credits_expired": "クレジット失効" + } }, "hub": { "balance": "残高", @@ -2837,11 +2935,16 @@ "emptyTitle": "請求書はありません", "invoiceFallback": "請求書", "title": "請求書", - "statusPaid": "支払い済み", - "statusOpen": "未払い", - "statusVoid": "無効", "downloadFailed": "請求書をダウンロードできませんでした。接続を確認して、もう一度お試しください。", - "sharingUnavailable": "このデバイスでは共有は利用できません。" + "sharingUnavailable": "このデバイスでは共有は利用できません。", + "status": { + "paid": "支払い済み", + "open": "未払い", + "void": "無効", + "draft": "下書き", + "uncollectible": "回収不能", + "unknown": "不明" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "Kiloアプリはいかがですか?", "rateKilo": "Kiloを評価", "sorryMessage": "どこを改善すべきかお知らせください。アプリ担当のエンジニアがすべての報告を読んでいます!", - "sorryTitle": "それは残念です。" + "sorryTitle": "それは残念です。", + "emailSubject": "モバイルアプリのフィードバック" }, "authErrors": { "emailAlreadyUsed": "このメールアドレスのアカウントは、別のサインイン方法ですでに存在します。別の方法を試すか、[$t(login.moreSignInOptions)] を使用してください。", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "収集されるデータ", "free": "無料", - "couldNotUpdateFavorites": "お気に入りを更新できませんでした" + "couldNotUpdateFavorites": "お気に入りを更新できませんでした", + "thinkingEffort": { + "none": "なし", + "minimal": "最小限", + "low": "低", + "medium": "中", + "high": "高", + "xhigh": "非常に高い", + "max": "最大" + } } } diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index 7f63159a15..2ee7f855a2 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "არჩეულია {{label}}, შეეხეთ არჩევანის შესაცვლელად", "tapToComment": "{{label}}, შეეხეთ კომენტარისთვის", - "truncationBanner": "ნაჩვენებია შეცვლილი ფაილების {{total}}-დან პირველი {{limit}} — GitHub API ლიმიტი" + "truncationBanner": "ნაჩვენებია შეცვლილი ფაილების {{total}}-დან პირველი {{limit}} — GitHub API ლიმიტი", + "statusAdded": "დამატებულია", + "statusContext": "კონტექსტი", + "statusDeleted": "წაშლილია" }, "linkPasteClipboardEmpty": "ბუფერი ცარიელია", "linkPasteNotAPullRequest": "არ არის GitHub pull request ბმული", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ამ რეცენზიის გაგზავნა ამ ფორმით შეუძლებელია. PR შესაძლოა შეცვლილია, ან ვერ ახერხებთ საკუთარი პულ-რექვესთის რეცენზიას.", "couldNotPostComment": "კომენტარის გამოქვეყნება ვერ მოხერხდა.", "couldNotSubmitReview": "რეცენზიის გაგზავნა ვერ მოხერხდა. შეამოწმეთ თქვენი კავშირი და სცადეთ კიდევ." + }, + "operation": { + "couldNotReply": "პასუხი ვერ მოხერხდა.", + "couldNotCompleteAction": "ამ მოქმედების დასრულება ვერ მოხერხდა.", + "mergeResultDefaultError": "GitHub-მა შერწყმა ვერ დაასრულა." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "გადახდა დაგვიანებულია. გთხოვთ, განაახლოთ გადახდის მეთოდი.", "subscriptionCancels": "გამოწერა გაუქმდება {{date}}", "trialDaysRemaining": "საცდელი პერიოდი: {{remaining}} დარჩა", - "trialEndingSoon": "საცდელი პერიოდი მალე მთავრდება: {{remaining}}" + "trialEndingSoon": "საცდელი პერიოდი მალე მთავრდება: {{remaining}}", + "planName": { + "commit": "ვალდებულება", + "standard": "სტანდარტული" + } }, "changelog": { "title": "რა არის ახალი", @@ -1189,7 +1201,8 @@ "strongArm": "ძლიერი მკლავი", "talisman": "თილისმა" }, - "remoteSpawnFilesNotSupported": "ამ ინსტანციას ფაილების მიღება არ შეუძლია." + "remoteSpawnFilesNotSupported": "ამ ინსტანციას ფაილების მიღება არ შეუძლია.", + "instanceSwitcherTitle": "KiloClaw ინსტანცია" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ჩაიშალა", "cancelled": "გაუქმებულია", "interrupted": "შეწყვეტილია" - } + }, + "reviewStyle": { + "strict": "მკაცრი", + "balanced": "დაბალანსებული", + "lenient": "დამთმობი", + "roast": "როსტი" + }, + "focusArea": { + "security": "უსაფრთხოება", + "performance": "შესრულება", + "bugs": "ბაგები", + "style": "სტილი", + "testing": "ტესტირება", + "documentation": "დოკუმენტაცია" + }, + "gateThreshold": { + "off": "გამორთულია", + "all": "ყველა", + "warning": "გაფრთხილება", + "critical": "კრიტიკული" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "კოდის რეცენზენტს ყურადღება სჭირდება", + "description": "კოდის რეცენზენტი გამორთულია, რადგან Kilo ვერ წვდება ამ საცავს აქტიური GitHub App ინსტალაციით. განაახლეთ GitHub App ინსტალაცია და კვლავ ჩართეთ კოდის რეცენზენტი.", + "recoveryLabel": "GitHub App-ის განახლება" + }, + "githubIpAllowList": { + "title": "კოდის რეცენზენტს ყურადღება სჭირდება", + "description": "კოდის რეცენზენტი გამორთულია, რადგან ეს GitHub ორგანიზაცია იყენებს IP დაშვების სიას, რომელიც ბლოკავს Kilo-ს. დახმარებისთვის დაუკავშირდით hi@kilocode.ai-ს და კვლავ ჩართეთ კოდის რეცენზენტი.", + "recoveryLabel": "მხარდაჭერასთან დაკავშირება" + }, + "gitlabProjectAccessRequired": { + "title": "კოდის რეცენზენტს ყურადღება სჭირდება", + "description": "კოდის რეცენზენტი გამორთულია, რადგან Kilo ვერ ქმნის GitLab Project Access Token-ს ამ პროექტისთვის. მიანიჭეთ Maintainer წვდომა ან ჩართეთ Project Access Tokens და კვლავ ჩართეთ კოდის რეცენზენტი.", + "recoveryLabel": "GitLab ინტეგრაციის განახლება" + }, + "byokInvalidKey": { + "title": "კოდის რეცენზენტს ყურადღება სჭირდება", + "description": "კოდის რეცენზენტი გამორთულია, რადგან არჩეული BYOK API გასაღები არასწორია, გაუქმებულია ან არ აქვს ნებართვა. განაახლეთ გასაღები ან აირჩიეთ სხვა მოდელი და კვლავ ჩართეთ კოდის რეცენზენტი.", + "recoveryLabel": "BYOK პარამეტრების განახლება" + }, + "selectedModelUnavailable": { + "title": "კოდის რეცენზენტს ყურადღება სჭირდება", + "description": "კოდის რეცენზენტი გამორთულია, რადგან არჩეული მოდელი მიუწვდომელია cloud agent სესიებისთვის. აირჩიეთ ხელმისაწვდომი მოდელი და კვლავ ჩართეთ კოდის რეცენზენტი.", + "recoveryLabel": "კოდის რეცენზენტის პარამეტრების განახლება" + }, + "repeatedRepositoryCloneTimeout": { + "title": "კოდის რეცენზენტს ყურადღება სჭირდება", + "description": "კოდის რეცენზენტი გამორთულია დღეს სამი საცავის კლონირების ტაიმაუტის შემდეგ. დახმარებისთვის დაუკავშირდით hi@kilocode.ai-ს და კვლავ ჩართეთ კოდის რეცენზენტი.", + "recoveryLabel": "მხარდაჭერასთან დაკავშირება" + } + }, + "unknownError": "უცნობი შეცდომა" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "მონაპოვარი ავტომატური სიმძიმის ზღვარზე დაბალია. ხელით აღდგენა მაინც შეიძლება დაიწყოს, როცა უსაფრთხოების კარიბჭეები გაივლის.", "beforeEnablement": "ანალიზი დასრულდა ავტო შესწორების ჩართვამდე. ხელით აღდგენა მაინც შეიძლება დაიწყოს, როცა უსაფრთხოების კარიბჭეები გაივლის.", "generic": "აღდგენა მიუწვდომელია ამ მონაპოვრისთვის." + }, + "commandFailure": { + "ownerCapReached": "ანალიზის სიმძლავრე სავსეა. დაელოდეთ აქტიური ანალიზის დასრულებას და ხელახლა სცადეთ.", + "githubTokenUnavailable": "GitHub ავტორიზაციას ყურადღება სჭირდება. ხელახლა უფლება მიეცით GitHub App-ს და ხელახლა სცადეთ.", + "githubAuthInvalid": "GitHub ავტორიზაციას ყურადღება სჭირდება. ხელახლა უფლება მიეცით GitHub App-ს და ხელახლა სცადეთ.", + "findingUnavailable": "აღმოჩენა აღარ არის ხელმისაწვდომი. განაახლეთ აღმოჩენები და ხელახლა სცადეთ, თუ ის ღია რჩება.", + "repositoryUnavailable": "საცავი აღარ არის ხელმისაწვდომი GitHub App-ისთვის. განაახლეთ საცავის წვდომა და ხელახლა სცადეთ.", + "invalidDismissTarget": "აღმოჩენის გაუქმება შეუძლებელია, რადგან მისი Dependabot სამიზნე არასწორია.", + "commandStalled": "დაყენებული მოქმედება დროულად არ დასრულდა. ხელახლა სცადეთ მოქმედება.", + "queueRetriesExhausted": "მოქმედების დასრულება ვერ მოხერხდა რამდენიმე ცდის შემდეგ. ხელახლა სცადეთ მოქმედება.", + "queueAdmissionFailed": "დაყენებული მოქმედების მიღება ვერ მოხერხდა. ხელახლა სცადეთ მოქმედება.", + "generic": "დაყენებული მოქმედება ვერ მოხერხდა. ხელახლა სცადეთ მოქმედება." + }, + "analysisMode": { + "auto": "ავტო", + "shallow": "ზედაპირული", + "deep": "სიღრმისეული" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} რჩეულებში დამატება", "removeFromFavorites": "{{name}} რჩეულებიდან ამოღება", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "სესიის მოდელი" }, "attachmentPreview": { "openFailedRetry": "ფაილის გახსნა ვერ მოხერხდა. გთხოვთ, სცადოთ თავიდან.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "კრედიტების დამატება", - "description": "დაამატეთ კრედიტები გამოყენების გასაგრძელებლად." + "description": "დაამატეთ კრედიტები გამოყენების გასაგრძელებლად.", + "billingPage": "ბილინგის გვერდი" }, "deviceSessions": { "couldNotLoad": "სესიების ჩატვირთვა ვერ მოხერხდა", @@ -2710,7 +2795,10 @@ "restoreFailed": "შესყიდვების აღდგენა ვერ მოხერხდა. სცადეთ კიდევ.", "purchaseFailed": "შესყიდვის დასრულება ვერ მოხერხდა.", "purchaseStartFailed": "App Store შესყიდვის დაწყება ვერ მოხერხდა.", - "purchaseOwnedByAnotherAccount": "ეს Apple ანგარიშზე არსებული Kilo Pass სხვა Kilo ანგარიშს ეკუთვნის." + "purchaseOwnedByAnotherAccount": "ეს Apple ანგარიშზე არსებული Kilo Pass სხვა Kilo ანგარიშს ეკუთვნის.", + "couldNotConnectToAppStore": "App Store-თან დაკავშირება ვერ მოხერხდა. შეამოწმეთ თქვენი კავშირი და სცადეთ კიდევ.", + "noMatchingProducts": "App Store-მა არ დააბრუნა შესაბამისი Kilo Pass პროდუქტები.", + "purchaseMissingSignedTransaction": "App Store-ის შესყიდვა არ შეიცავდა ხელმოწერილ ტრანზაქციის JWS-ს." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "გასაუმჯობესებელია", "sorryTitle": "ბოდიშს ვიხდით, რომ ეს გვესმის!", "sorryMessage": "გთხოვთ, გვითხრათ, რა უნდა გაუმჯობესდეს. აპზე პასუხისმგებელი ინჟინერი ყველა ანგარიშს კითხულობს!", - "emailUs": "მოგვწერეთ" + "emailUs": "მოგვწერეთ", + "emailSubject": "მობილური აპლიკაციის გამოხმაურება" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "კრედიტის აქტივობა არ არის", "expires": "ვადა გაუვა {{date}}", "title": "კრედიტის აქტივობა", - "transactionFallback": "კრედიტის ტრანზაქცია" + "transactionFallback": "კრედიტის ტრანზაქცია", + "category": { + "organization_custom": "ორგანიზაციის მორგებული", + "parent_to_child_transfer_in": "მშობლიდან შვილზე გადარიცხვა (შემოსული)", + "parent_to_child_transfer_out": "მშობლიდან შვილზე გადარიცხვა (გასული)", + "oss-sponsorship": "OSS სპონსორობა", + "oss-monthly-reset": "OSS ყოველთვიური გადატვირთვა", + "team-topup-bonus-2025": "გუნდის შევსების ბონუსი 2025", + "accounting_adjustment": "ბუღალტრული კორექტირება", + "credits_expired": "ვადაგასული კრედიტები" + } }, "inviteMember": { "emailError": "შეიყვანეთ მოქმედი ელფოსტის მისამართი", @@ -2840,12 +2939,17 @@ "emptyDescription": "ინვოისები ავტომატურად იქმნება ყოველ ბილინგ ციკლში და აქ გამოჩნდება, როცა თქვენი ორგანიზაცია დაიბილინგება.", "emptyTitle": "ინვოისები არ არის", "invoiceFallback": "ინვოისი", - "statusOpen": "ღიაა", - "statusPaid": "გადახდილია", - "statusVoid": "ბათილია", "title": "ინვოისები", "downloadFailed": "ინვოისის ჩამოტვირთვა ვერ მოხერხდა. შეამოწმეთ თქვენი კავშირი და სცადეთ კიდევ.", - "sharingUnavailable": "ამ მოწყობილობაზე გაზიარება მიუწვდომელია." + "sharingUnavailable": "ამ მოწყობილობაზე გაზიარება მიუწვდომელია.", + "status": { + "paid": "გადახდილია", + "open": "ღიაა", + "void": "ბათილია", + "draft": "მონახაზი", + "uncollectible": "ამოუღებელი", + "unknown": "უცნობი" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "შეგროვებული მონაცემები", "free": "უფასო", - "couldNotUpdateFavorites": "რჩეულების განახლება ვერ მოხერხდა" + "couldNotUpdateFavorites": "რჩეულების განახლება ვერ მოხერხდა", + "thinkingEffort": { + "none": "არცერთი", + "minimal": "მინიმალური", + "low": "დაბალი", + "medium": "საშუალო", + "high": "მაღალი", + "xhigh": "ძალიან მაღალი", + "max": "მაქსიმალური" + } } } diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index ad82daba59..2641bdbbd1 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} таңдалды, таңдауды өзгерту үшін түртіңіз", "tapToComment": "{{label}}, пікір қалдыру үшін түртіңіз", - "truncationBanner": "Өзгертілген {{total}} файлдың алғашқы {{limit}}-і көрсетілуде — GitHub API шегі" + "truncationBanner": "Өзгертілген {{total}} файлдың алғашқы {{limit}}-і көрсетілуде — GitHub API шегі", + "statusAdded": "Қосылды", + "statusContext": "Контекст", + "statusDeleted": "Жойылды" }, "linkPasteClipboardEmpty": "Айырбастау буфері бос", "linkPasteNotAPullRequest": "GitHub pull request сілтемесі емес", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Бұл рецензияны осы күйінде жіберу мүмкін емес. PR өзгерген болуы мүмкін немесе өз pull request-іңізді рецензиялай алмайсыз.", "couldNotPostComment": "Пікірді жариялау мүмкін болмады.", "couldNotSubmitReview": "Рецензияны жіберу мүмкін болмады. Қосылымды тексеріп, қайта көріңіз." + }, + "operation": { + "couldNotReply": "Жауап беру мүмкін болмады.", + "couldNotCompleteAction": "Бұл әрекетті аяқтау мүмкін болмады.", + "mergeResultDefaultError": "GitHub біріктіруді аяқтамады." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Төлем мерзімі өтіп кетті. Төлем әдісін жаңартыңыз.", "subscriptionCancels": "Жазылым {{date}} күні жойылады", "trialDaysRemaining": "Сынақ: {{remaining}} қалды", - "trialEndingSoon": "Сынақ жақында аяқталады: {{remaining}}" + "trialEndingSoon": "Сынақ жақында аяқталады: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Не жаңалық", @@ -1189,7 +1201,8 @@ "strongArm": "Мықты қол", "talisman": "Тұмар" }, - "remoteSpawnFilesNotSupported": "Бұл инстанс файл қабылдай алмайды." + "remoteSpawnFilesNotSupported": "Бұл инстанс файл қабылдай алмайды.", + "instanceSwitcherTitle": "KiloClaw инстансы" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Сәтсіз аяқталды", "cancelled": "Тоқтатылды", "interrupted": "Үзілді" - } + }, + "reviewStyle": { + "strict": "Қатаң", + "balanced": "Теңгерімді", + "lenient": "Жұмсақ", + "roast": "Рост" + }, + "focusArea": { + "security": "Қауіпсіздік", + "performance": "Өнімділік", + "bugs": "Қателер", + "style": "Стиль", + "testing": "Тестілеу", + "documentation": "Құжаттама" + }, + "gateThreshold": { + "off": "Өшірулі", + "all": "Барлығы", + "warning": "Ескерту", + "critical": "Критикалық" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer назарды қажет етеді", + "description": "Kilo бұл репозиторийге белсенді GitHub App орнату арқылы қол жеткізе алмағандықтан, Code Reviewer өшірілді. GitHub App орнатуды жаңартып, Code Reviewer-ді қайта қосыңыз.", + "recoveryLabel": "GitHub App жаңарту" + }, + "githubIpAllowList": { + "title": "Code Reviewer назарды қажет етеді", + "description": "Бұл GitHub ұйымы Kilo-ны бұғаттайтын IP рұқсат тізімін қолданатындықтан, Code Reviewer өшірілді. Көмек алу үшін hi@kilocode.ai мекенжайына хабарласып, Code Reviewer-ді қайта қосыңыз.", + "recoveryLabel": "Қолдау қызметіне хабарласу" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer назарды қажет етеді", + "description": "Kilo бұл жоба үшін GitLab Project Access Token жасай алмағандықтан, Code Reviewer өшірілді. Maintainer қолжетімділігін беріңіз немесе Project Access Tokens қосып, Code Reviewer-ді қайта қосыңыз.", + "recoveryLabel": "GitLab интеграциясын жаңарту" + }, + "byokInvalidKey": { + "title": "Code Reviewer назарды қажет етеді", + "description": "Таңдалған BYOK API кілті жарамсыз, қайтарылған немесе рұқсаты жоқ болғандықтан, Code Reviewer өшірілді. Кілтті жаңартыңыз немесе басқа модельді таңдап, Code Reviewer-ді қайта қосыңыз.", + "recoveryLabel": "BYOK баптауларын жаңарту" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer назарды қажет етеді", + "description": "Таңдалған модель cloud agent сессиялары үшін қолжетімсіз болғандықтан, Code Reviewer өшірілді. Қолжетімді модельді таңдап, Code Reviewer-ді қайта қосыңыз.", + "recoveryLabel": "Code Reviewer баптауларын жаңарту" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer назарды қажет етеді", + "description": "Бүгін үш репозиторий клондау уақыты аяқталғаннан кейін Code Reviewer өшірілді. Көмек алу үшін hi@kilocode.ai мекенжайына хабарласып, Code Reviewer-ді қайта қосыңыз.", + "recoveryLabel": "Қолдау қызметіне хабарласу" + } + }, + "unknownError": "Белгісіз қате" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Дерек автоматты ауырлық шегінен төмен. Қолмен түзету қауіпсіздік кедергілері өткенде әлі де бастала алады.", "beforeEnablement": "Талдау Автотүзету қосылғанға дейін аяқталды. Қолмен түзету қауіпсіздік кедергілері өткенде әлі де бастала алады.", "generic": "Бұл дерек үшін түзету қолжетімсіз." + }, + "commandFailure": { + "ownerCapReached": "Талдау сыйымдылығы толы. Белсенді талдау аяқталуын күтіп, қайта көріңіз.", + "githubTokenUnavailable": "GitHub авторизациясы назарды қажет етеді. GitHub App-қа қайта рұқсат беріп, қайта көріңіз.", + "githubAuthInvalid": "GitHub авторизациясы назарды қажет етеді. GitHub App-қа қайта рұқсат беріп, қайта көріңіз.", + "findingUnavailable": "Дерек енді қолжетімсіз. Деректерді жаңартып, егер ол ашық қалса, қайта көріңіз.", + "repositoryUnavailable": "Репозиторий GitHub App үшін енді қолжетімсіз. Репозиторий қолжетімділігін жаңартып, қайта көріңіз.", + "invalidDismissTarget": "Оның Dependabot нысаны жарамсыз болғандықтан, деректі жою мүмкін емес.", + "commandStalled": "Кезектегі әрекет уақытында аяқталмады. Әрекетті қайталаңыз.", + "queueRetriesExhausted": "Бірнеше әрекеттен кейін әрекетті аяқтау мүмкін болмады. Әрекетті қайталаңыз.", + "queueAdmissionFailed": "Кезектегі әрекет қабылдана алмады. Әрекетті қайталаңыз.", + "generic": "Кезектегі әрекет сәтсіз аяқталды. Әрекетті қайталаңыз." + }, + "analysisMode": { + "auto": "Авто", + "shallow": "Жеңіл", + "deep": "Терең" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} таңдаулыларға қосу", "removeFromFavorites": "{{name}} таңдаулылардан алып тастау", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Сессия моделі" }, "attachmentPreview": { "openFailedRetry": "Файлды ашу сәтсіз аяқталды. Қайталап көріңіз.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Кредиттер қосу", - "description": "Пайдалануды жалғастыру үшін кредиттер қосыңыз." + "description": "Пайдалануды жалғастыру үшін кредиттер қосыңыз.", + "billingPage": "төлем беті" }, "deviceSessions": { "couldNotLoad": "Сессияларды жүктеу мүмкін болмады", @@ -2710,7 +2795,10 @@ "restoreFailed": "Сатып алуларды қалпына келтіру сәтсіз аяқталды. Қайта көріңіз.", "purchaseFailed": "Сатып алуды аяқтау мүмкін болмады.", "purchaseStartFailed": "App Store сатып алуын бастау мүмкін болмады.", - "purchaseOwnedByAnotherAccount": "Бұл Apple Аккаунтындағы Kilo Pass басқа Kilo аккаунтына тиесілі." + "purchaseOwnedByAnotherAccount": "Бұл Apple Аккаунтындағы Kilo Pass басқа Kilo аккаунтына тиесілі.", + "couldNotConnectToAppStore": "App Store-ға қосылу мүмкін болмады. Қосылымды тексеріп, қайта көріңіз.", + "noMatchingProducts": "App Store сәйкес Kilo Pass өнімдерін қайтармады.", + "purchaseMissingSignedTransaction": "App Store сатып алуы қол қойылған транзакция JWS қамтымады." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Жақсарту қажет", "sorryTitle": "Мұны естігенімізге өкінеміз!", "sorryMessage": "Не жақсарту керектігін айтыңыз. Қосымшаға жауапты инженер әрбір есепті оқиды!", - "emailUs": "Бізге жазыңыз" + "emailUs": "Бізге жазыңыз", + "emailSubject": "мобильді қосымша туралы кері байланыс" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Кредит әрекеті жоқ", "expires": "{{date}} мерзімі аяқталады", "title": "Кредит әрекеті", - "transactionFallback": "Кредит транзакциясы" + "transactionFallback": "Кредит транзакциясы", + "category": { + "organization_custom": "Ұйымның теңшелетін", + "parent_to_child_transfer_in": "Ата-анадан балаға аударым (кіріс)", + "parent_to_child_transfer_out": "Ата-анадан балаға аударым (шығыс)", + "oss-sponsorship": "OSS демеушілігі", + "oss-monthly-reset": "OSS айлық қалпына келтіру", + "team-topup-bonus-2025": "Топты толтыру бонусы 2025", + "accounting_adjustment": "Есептік түзету", + "credits_expired": "Кредиттердің мерзімі аяқталды" + } }, "inviteMember": { "emailError": "Жарамды электрондық пошта мекенжайын енгізіңіз", @@ -2840,12 +2939,17 @@ "emptyDescription": "Шоттар әр төлем циклінде автоматты түрде жасалады және ұйымыңыз төленгеннен кейін осында көрсетіледі.", "emptyTitle": "Шоттар жоқ", "invoiceFallback": "Шот", - "statusOpen": "Ашық", - "statusPaid": "Төленген", - "statusVoid": "Жарамсыз", "title": "Шоттар", "downloadFailed": "Шотты жүктеу мүмкін болмады. Қосылымды тексеріп, қайта көріңіз.", - "sharingUnavailable": "Бұл құрылғыда бөлісу қолжетімсіз." + "sharingUnavailable": "Бұл құрылғыда бөлісу қолжетімсіз.", + "status": { + "paid": "Төленген", + "open": "Ашық", + "void": "Жарамсыз", + "draft": "Жоба", + "uncollectible": "Өндіріп алу мүмкін емес", + "unknown": "Белгісіз" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Жинақталған деректер", "free": "Тегін", - "couldNotUpdateFavorites": "Таңдаулыларды жаңарту мүмкін болмады" + "couldNotUpdateFavorites": "Таңдаулыларды жаңарту мүмкін болмады", + "thinkingEffort": { + "none": "Жоқ", + "minimal": "Минималды", + "low": "Төмен", + "medium": "Орташа", + "high": "Жоғары", + "xhigh": "Өте жоғары", + "max": "Максималды" + } } } diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index c8e782d1cc..9275d821dc 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "បានជ្រើសរើស {{label}} ប៉ះដើម្បីប្តូរការជ្រើសរើស", "tapToComment": "{{label}} ប៉ះដើម្បីធ្វើអត្ថាធិប្បាយ", - "truncationBanner": "កំពុងបង្ហាញ {{limit}} ដំបូងក្នុងចំណោម {{total}} ឯកសារដែលបានផ្លាស់ប្តូរ — ដែនកំណត់ GitHub API" + "truncationBanner": "កំពុងបង្ហាញ {{limit}} ដំបូងក្នុងចំណោម {{total}} ឯកសារដែលបានផ្លាស់ប្តូរ — ដែនកំណត់ GitHub API", + "statusAdded": "បានបន្ថែម", + "statusContext": "បរិបទ", + "statusDeleted": "បានលុប" }, "linkPasteClipboardEmpty": "ក្ដារតម្បៀតខ្ទាស់ទទេ", "linkPasteNotAPullRequest": "មិនមែនជាតំណ pull request របស់ GitHub ទេ", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ការពិនិត្យនេះមិនអាចដាក់ស្នើដូចដែលវាគឺបានទេ។ PR អាចប្តូរ ឬអ្នកមិនអាចពិនិត្យសំណើទាញរបស់ខ្លួនឯងបានទេ។", "couldNotPostComment": "មិនអាចប្រកាសអត្ថាធិប្បាយបានទេ។", "couldNotSubmitReview": "មិនអាចដាក់ស្នើការពិនិត្យបានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។" + }, + "operation": { + "couldNotReply": "មិនអាចឆ្លើយតបបានទេ។", + "couldNotCompleteAction": "មិនអាចបញ្ចប់សកម្មភាពនេះបានទេ។", + "mergeResultDefaultError": "GitHub មិនបានបញ្ចប់ការបញ្ចូលទេ។" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ការទូទាត់ហួសកំណត់។ សូមធ្វើបច្ចុប្បន្នភាពវិធីសាស្ត្រទូទាត់របស់អ្នក។", "subscriptionCancels": "ការជាវនឹងត្រូវលុបចោល {{date}}", "trialDaysRemaining": "សាកល្បង៖ នៅសល់ {{remaining}}", - "trialEndingSoon": "ការសាកល្បងនឹងបញ្ចប់ឆាប់ៗ៖ {{remaining}}" + "trialEndingSoon": "ការសាកល្បងនឹងបញ្ចប់ឆាប់ៗ៖ {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "អ្វីដែលថ្មី", @@ -1189,7 +1201,8 @@ "strongArm": "ដៃខ្លាំង", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "instance នេះមិនអាចទទួលឯកសារបានទេ។" + "remoteSpawnFilesNotSupported": "instance នេះមិនអាចទទួលឯកសារបានទេ។", + "instanceSwitcherTitle": "ឧទាហរណ៍ KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "បានបរាជ័យ", "cancelled": "បានលុបចោល", "interrupted": "ត្រូវបានរំខាន" - } + }, + "reviewStyle": { + "strict": "តឹងរ៉ឹង", + "balanced": "មានតុល្យភាព", + "lenient": "ស្រាល", + "roast": "រ៉ូស្ត" + }, + "focusArea": { + "security": "សន្តិសុខ", + "performance": "ដំណើរការ", + "bugs": "កំហុស", + "style": "ស្ទីល", + "testing": "ការធ្វើតេស្ត", + "documentation": "ឯកសារ" + }, + "gateThreshold": { + "off": "បិទ", + "all": "ទាំងអស់", + "warning": "ការព្រមាន", + "critical": "សំខាន់" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer ត្រូវការការយកចិត្តទុកដាក់", + "description": "Code Reviewer ត្រូវបានបិទ ព្រោះ Kilo មិនអាចចូលប្រើឃ្លាំងនេះជាមួយការដំឡើង GitHub App សកម្មបានទេ។ ធ្វើបច្ចុប្បន្នភាពការដំឡើង GitHub App បន្ទាប់មកបើក Code Reviewer ម្តងទៀត។", + "recoveryLabel": "ធ្វើបច្ចុប្បន្នភាព GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer ត្រូវការការយកចិត្តទុកដាក់", + "description": "Code Reviewer ត្រូវបានបិទ ព្រោះអង្គការ GitHub នេះប្រើបញ្ជីអនុញ្ញាត IP ដែលរារាំង Kilo។ ទាក់ទង hi@kilocode.ai សម្រាប់ជំនួយ បន្ទាប់មកបើក Code Reviewer ម្តងទៀត។", + "recoveryLabel": "ទាក់ទងការគាំទ្រ" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer ត្រូវការការយកចិត្តទុកដាក់", + "description": "Code Reviewer ត្រូវបានបិទ ព្រោះ Kilo មិនអាចបង្កើត GitLab Project Access Token សម្រាប់គម្រោងនេះបានទេ។ ផ្តល់សិទ្ធិ Maintainer ឬបើក Project Access Tokens បន្ទាប់មកបើក Code Reviewer ម្តងទៀត។", + "recoveryLabel": "ធ្វើបច្ចុប្បន្នភាពការរួមបញ្ចូល GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer ត្រូវការការយកចិត្តទុកដាក់", + "description": "Code Reviewer ត្រូវបានបិទ ព្រោះសោ API BYOK ដែលបានជ្រើសរើសមិនត្រឹមត្រូវ ត្រូវបានដកហូត ឬគ្មានការអនុញ្ញាត។ ធ្វើបច្ចុប្បន្នភាពសោ ឬជ្រើសរើសគំរូផ្សេង បន្ទាប់មកបើក Code Reviewer ម្តងទៀត។", + "recoveryLabel": "ធ្វើបច្ចុប្បន្នភាពការកំណត់ BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer ត្រូវការការយកចិត្តទុកដាក់", + "description": "Code Reviewer ត្រូវបានបិទ ព្រោះគំរូដែលបានជ្រើសរើសមិនអាចប្រើបានសម្រាប់សម័យការ cloud agent ទេ។ ជ្រើសរើសគំរូដែលអាចប្រើបាន បន្ទាប់មកបើក Code Reviewer ម្តងទៀត។", + "recoveryLabel": "ធ្វើបច្ចុប្បន្នភាពការកំណត់ Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer ត្រូវការការយកចិត្តទុកដាក់", + "description": "Code Reviewer ត្រូវបានបិទ បន្ទាប់ពីការផុតកំណត់ពេលក្លូនឃ្លាំងចំនួនបីនៅថ្ងៃនេះ។ ទាក់ទង hi@kilocode.ai សម្រាប់ជំនួយ បន្ទាប់មកបើក Code Reviewer ម្តងទៀត។", + "recoveryLabel": "ទាក់ទងការគាំទ្រ" + } + }, + "unknownError": "កំហុសមិនស្គាល់" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ការរកឃើញទាបជាងកម្រិតភាពធ្ងន់ធ្ងរដោយស្វ័យប្រវត្តិ។ ការដោះស្រាយដោយដៃនៅតែអាចចាប់ផ្តើមបាន នៅពេលដែលច្រកសុវត្ថិភាពឆ្លងកាត់។", "beforeEnablement": "ការវិភាគបានបញ្ចប់ មុនពេលការកែតម្រូវដោយស្វ័យប្រវត្តិត្រូវបានបើក។ ការដោះស្រាយដោយដៃនៅតែអាចចាប់ផ្តើមបាន នៅពេលដែលច្រកសុវត្ថិភាពឆ្លងកាត់។", "generic": "ការដោះស្រាយមិនអាចប្រើបានសម្រាប់ការរកឃើញនេះ។" + }, + "commandFailure": { + "ownerCapReached": "សមត្ថភាពវិភាគពេញហើយ។ រង់ចាំការវិភាគសកម្មបញ្ចប់ បន្ទាប់មកព្យាយាមម្តងទៀត។", + "githubTokenUnavailable": "ការអនុញ្ញាត GitHub ត្រូវការការយកចិត្តទុកដាក់។ អនុញ្ញាត GitHub App ឡើងវិញ បន្ទាប់មកព្យាយាមម្តងទៀត។", + "githubAuthInvalid": "ការអនុញ្ញាត GitHub ត្រូវការការយកចិត្តទុកដាក់។ អនុញ្ញាត GitHub App ឡើងវិញ បន្ទាប់មកព្យាយាមម្តងទៀត។", + "findingUnavailable": "ការរកឃើញមិនអាចប្រើបានទៀតទេ។ ធ្វើឱ្យការរកឃើញស្រស់ ហើយព្យាយាមម្តងទៀត ប្រសិនបើវានៅតែបើក។", + "repositoryUnavailable": "ឃ្លាំងមិនអាចប្រើបានសម្រាប់ GitHub App ទៀតទេ។ ធ្វើឱ្យការចូលប្រើឃ្លាំងស្រស់ បន្ទាប់មកព្យាយាមម្តងទៀត។", + "invalidDismissTarget": "ការរកឃើញមិនអាចត្រូវបានលុបចោលបានទេ ព្រោះគោលដៅ Dependabot របស់វាមិនត្រឹមត្រូវ។", + "commandStalled": "សកម្មភាពក្នុងជួរមិនបានបញ្ចប់ទាន់ពេលទេ។ ព្យាយាមសកម្មភាពម្តងទៀត។", + "queueRetriesExhausted": "មិនអាចបញ្ចប់សកម្មភាពបានទេ បន្ទាប់ពីការព្យាយាមជាច្រើនដង។ ព្យាយាមសកម្មភាពម្តងទៀត។", + "queueAdmissionFailed": "សកម្មភាពក្នុងជួរមិនអាចទទួលយកបានទេ។ ព្យាយាមសកម្មភាពម្តងទៀត។", + "generic": "សកម្មភាពក្នុងជួរបានបរាជ័យ។ ព្យាយាមសកម្មភាពម្តងទៀត។" + }, + "analysisMode": { + "auto": "ស្វ័យប្រវត្តិ", + "shallow": "រាក់", + "deep": "ជ្រៅ" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "បន្ថែម {{name}} ទៅចំណូលចិត្ត", "removeFromFavorites": "ដក {{name}} ចេញពីចំណូលចិត្ត", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "គំរូសម័យការ" }, "attachmentPreview": { "openFailedRetry": "មិនអាចបើកឯកសារបានទេ។ សូមព្យាយាមម្តងទៀត។", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "បន្ថែមឥណទាន", - "description": "បន្ថែមឥណទានដើម្បីរក្សាការប្រើប្រាស់ឱ្យដំណើរការ។" + "description": "បន្ថែមឥណទានដើម្បីរក្សាការប្រើប្រាស់ឱ្យដំណើរការ។", + "billingPage": "ទំព័រវិក្កយបត្រ" }, "deviceSessions": { "couldNotLoad": "មិនអាចផ្ទុកវគ្គបានទេ", @@ -2710,7 +2795,10 @@ "restoreFailed": "បរាជ័យក្នុងការស្តារការទិញ។ ព្យាយាមម្តងទៀត។", "purchaseFailed": "បរាជ័យក្នុងការបញ្ចប់ការទិញ។", "purchaseStartFailed": "បរាជ័យក្នុងការចាប់ផ្ដើមការទិញ App Store។", - "purchaseOwnedByAnotherAccount": "Kilo Pass នៅលើ Apple Account នេះជារបស់គណនី Kilo ផ្សេង។" + "purchaseOwnedByAnotherAccount": "Kilo Pass នៅលើ Apple Account នេះជារបស់គណនី Kilo ផ្សេង។", + "couldNotConnectToAppStore": "មិនអាចភ្ជាប់ទៅ App Store បានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។", + "noMatchingProducts": "App Store មិនបានប្រគល់ផលិតផល Kilo Pass ដែលត្រូវគ្នាទេ។", + "purchaseMissingSignedTransaction": "ការទិញ App Store មិនបានរួមបញ្ចូល JWS ប្រតិបត្តិការដែលបានចុះហត្ថលេខាទេ។" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "ត្រូវការកែលម្អ", "sorryTitle": "យើងសុំទោសដែលបានឮដូច្នេះ!", "sorryMessage": "សូមប្រាប់យើងពីអ្វីដែលត្រូវកែលម្អ។ វិស្វករដែលទទួលបន្ទុកកម្មវិធីអានរាល់របាយការណ៍!", - "emailUs": "ផ្ញើអ៊ីមែលមកយើង" + "emailUs": "ផ្ញើអ៊ីមែលមកយើង", + "emailSubject": "មតិកែលម្អកម្មវិធីទូរស័ព្ទ" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "គ្មានសកម្មភាពឥណទានទេ", "expires": "ផុតកំណត់ {{date}}", "title": "សកម្មភាពឥណទាន", - "transactionFallback": "ប្រតិបត្តិការឥណទាន" + "transactionFallback": "ប្រតិបត្តិការឥណទាន", + "category": { + "organization_custom": "តាមបំណងរបស់អង្គការ", + "parent_to_child_transfer_in": "ការផ្ទេរពីមេទៅកូន (ចូល)", + "parent_to_child_transfer_out": "ការផ្ទេរពីមេទៅកូន (ចេញ)", + "oss-sponsorship": "ការឧបត្ថម្ភ OSS", + "oss-monthly-reset": "ការកំណត់ឡើងវិញប្រចាំខែ OSS", + "team-topup-bonus-2025": "ប្រាក់រង្វាន់បន្ថែមក្រុម 2025", + "accounting_adjustment": "ការកែតម្រូវគណនេយ្យ", + "credits_expired": "ឥណទានផុតកំណត់" + } }, "inviteMember": { "emailError": "បញ្ចូលអាសយដ្ឋានអ៊ីមែលត្រឹមត្រូវ", @@ -2840,12 +2939,17 @@ "emptyDescription": "វិក្កយបត្រត្រូវបានបង្កើតដោយស្វ័យប្រវត្តិរាល់វដ្តគិតប្រាក់ ហើយនឹងបង្ហាញនៅទីនេះនៅពេលអង្គការរបស់អ្នកត្រូវបានគិតប្រាក់។", "emptyTitle": "គ្មានវិក្កយបត្រទេ", "invoiceFallback": "វិក្កយបត្រ", - "statusOpen": "បើក", - "statusPaid": "បានបង់", - "statusVoid": "ទុកចោល", "title": "វិក្កយបត្រ", "downloadFailed": "មិនអាចទាញយកវិក្កយបត្របានទេ។ ពិនិត្យការតភ្ជាប់របស់អ្នក ហើយព្យាយាមម្តងទៀត។", - "sharingUnavailable": "ការចែករំលែកមិនអាចប្រើបាននៅលើឧបករណ៍នេះទេ។" + "sharingUnavailable": "ការចែករំលែកមិនអាចប្រើបាននៅលើឧបករណ៍នេះទេ។", + "status": { + "paid": "បានបង់", + "open": "បើក", + "void": "ទុកចោល", + "draft": "សេចក្តីព្រាង", + "uncollectible": "មិនអាចទារបាន", + "unknown": "មិនស្គាល់" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ទិន្នន័យដែលប្រមូលបាន", "free": "ឥតគិតថ្លៃ", - "couldNotUpdateFavorites": "មិនអាចធ្វើបច្ចុប្បន្នភាពចំណូលចិត្ត" + "couldNotUpdateFavorites": "មិនអាចធ្វើបច្ចុប្បន្នភាពចំណូលចិត្ត", + "thinkingEffort": { + "none": "គ្មាន", + "minimal": "តិចតួចបំផុត", + "low": "ទាប", + "medium": "មធ្យម", + "high": "ខ្ពស់", + "xhigh": "ខ្ពស់ខ្លាំង", + "max": "អតិបរមា" + } } } diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index 1b273b8f66..eb090604c7 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ, ಆಯ್ಕೆ ಬದಲಾಯಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ", "tapToComment": "{{label}}, ಕಾಮೆಂಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ", - "truncationBanner": "ಬದಲಾದ {{total}} ಫೈಲ್ಗಳಲ್ಲಿ ಮೊದಲ {{limit}} ತೋರಿಸಲಾಗುತ್ತಿದೆ — GitHub API ಮಿತಿ" + "truncationBanner": "ಬದಲಾದ {{total}} ಫೈಲ್ಗಳಲ್ಲಿ ಮೊದಲ {{limit}} ತೋರಿಸಲಾಗುತ್ತಿದೆ — GitHub API ಮಿತಿ", + "statusAdded": "ಸೇರಿಸಲಾಗಿದೆ", + "statusContext": "ಸಂದರ್ಭ", + "statusDeleted": "ಅಳಿಸಲಾಗಿದೆ" }, "linkPasteClipboardEmpty": "ಕ್ಲಿಪ್ಬೋರ್ಡ್ ಖಾಲಿಯಾಗಿದೆ", "linkPasteNotAPullRequest": "GitHub ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ಲಿಂಕ್ ಅಲ್ಲ", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ಈ ವಿಮರ್ಶೆಯನ್ನು ಹಾಗೆಯೇ ಸಲ್ಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. PR ಬದಲಾಗಿರಬಹುದು, ಅಥವಾ ನಿಮ್ಮ ಸ್ವಂತ ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ಅನ್ನು ನೀವು ವಿಮರ್ಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.", "couldNotPostComment": "ಕಾಮೆಂಟ್ ಪೋಸ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "couldNotSubmitReview": "ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." + }, + "operation": { + "couldNotReply": "ಉತ್ತರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "couldNotCompleteAction": "ಈ ಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", + "mergeResultDefaultError": "GitHub ವಿಲೀನವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಿಲ್ಲ." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ಪಾವತಿ ಬಾಕಿ ಇದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಪಾವತಿ ವಿಧಾನವನ್ನು ನವೀಕರಿಸಿ.", "subscriptionCancels": "ಚಂದಾದಾರಿಕೆ {{date}} ರಂದು ರದ್ದಾಗುತ್ತದೆ", "trialDaysRemaining": "ಪ್ರಯೋಗ: {{remaining}} ಉಳಿದಿವೆ", - "trialEndingSoon": "ಪ್ರಯೋಗ ಶೀಘ್ರದಲ್ಲೇ ಮುಗಿಯುತ್ತದೆ: {{remaining}}" + "trialEndingSoon": "ಪ್ರಯೋಗ ಶೀಘ್ರದಲ್ಲೇ ಮುಗಿಯುತ್ತದೆ: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "ಏನಿದೆ ಹೊಸದು", @@ -1189,7 +1201,8 @@ "strongArm": "ಬಲವಾದ ತೋಳು", "talisman": "ತಾಯಿತ" }, - "remoteSpawnFilesNotSupported": "ಈ ಉದಾಹರಣೆಯು ಫೈಲ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." + "remoteSpawnFilesNotSupported": "ಈ ಉದಾಹರಣೆಯು ಫೈಲ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.", + "instanceSwitcherTitle": "KiloClaw ಉದಾಹರಣೆ" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ವಿಫಲವಾಗಿದೆ", "cancelled": "ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ", "interrupted": "ಅಡಚಣೆಯಾಗಿದೆ" - } + }, + "reviewStyle": { + "strict": "ಕಟ್ಟುನಿಟ್ಟಾದ", + "balanced": "ಸಮತೋಲಿತ", + "lenient": "ಸೌಮ್ಯ", + "roast": "Roast" + }, + "focusArea": { + "security": "ಭದ್ರತೆ", + "performance": "ಕಾರ್ಯಕ್ಷಮತೆ", + "bugs": "ಬಗ್ಗಳು", + "style": "ಶೈಲಿ", + "testing": "ಪರೀಕ್ಷೆ", + "documentation": "ದಸ್ತಾವೇಜು" + }, + "gateThreshold": { + "off": "ಆಫ್", + "all": "ಎಲ್ಲಾ", + "warning": "ಎಚ್ಚರಿಕೆ", + "critical": "ನಿರ್ಣಾಯಕ" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer ಗೆ ಗಮನ ಬೇಕು", + "description": "Kilo ಈ ರೆಪೊಸಿಟರಿಯನ್ನು ಸಕ್ರಿಯ GitHub App ಸ್ಥಾಪನೆಯೊಂದಿಗೆ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗದ ಕಾರಣ Code Reviewer ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. GitHub App ಸ್ಥಾಪನೆಯನ್ನು ನವೀಕರಿಸಿ, ನಂತರ Code Reviewer ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಿ.", + "recoveryLabel": "GitHub App ನವೀಕರಿಸಿ" + }, + "githubIpAllowList": { + "title": "Code Reviewer ಗೆ ಗಮನ ಬೇಕು", + "description": "ಈ GitHub ಸಂಸ್ಥೆಯು Kilo ಅನ್ನು ನಿರ್ಬಂಧಿಸುವ IP ಅನುಮತಿ ಪಟ್ಟಿಯನ್ನು ಬಳಸುವುದರಿಂದ Code Reviewer ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಸಹಾಯಕ್ಕಾಗಿ hi@kilocode.ai ಅನ್ನು ಸಂಪರ್ಕಿಸಿ, ನಂತರ Code Reviewer ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಿ.", + "recoveryLabel": "ಬೆಂಬಲವನ್ನು ಸಂಪರ್ಕಿಸಿ" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer ಗೆ ಗಮನ ಬೇಕು", + "description": "Kilo ಈ ಯೋಜನೆಗಾಗಿ GitLab Project Access Token ರಚಿಸಲು ಸಾಧ್ಯವಾಗದ ಕಾರಣ Code Reviewer ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. Maintainer ಪ್ರವೇಶವನ್ನು ನೀಡಿ ಅಥವಾ Project Access Token ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ, ನಂತರ Code Reviewer ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಿ.", + "recoveryLabel": "GitLab ಏಕೀಕರಣ ನವೀಕರಿಸಿ" + }, + "byokInvalidKey": { + "title": "Code Reviewer ಗೆ ಗಮನ ಬೇಕು", + "description": "ಆಯ್ಕೆಮಾಡಿದ BYOK API ಕೀ ಅಮಾನ್ಯವಾಗಿದೆ, ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ, ಅಥವಾ ಅನುಮತಿಯನ್ನು ಹೊಂದಿಲ್ಲದ ಕಾರಣ Code Reviewer ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಕೀ ಅನ್ನು ನವೀಕರಿಸಿ ಅಥವಾ ಬೇರೆ ಮಾದರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ, ನಂತರ Code Reviewer ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಿ.", + "recoveryLabel": "BYOK ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನವೀಕರಿಸಿ" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer ಗೆ ಗಮನ ಬೇಕು", + "description": "ಆಯ್ಕೆಮಾಡಿದ ಮಾದರಿಯು ಕ್ಲೌಡ್ ಏಜೆಂಟ್ ಸೆಷನ್‌ಗಳಿಗೆ ಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ Code Reviewer ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಲಭ್ಯವಿರುವ ಮಾದರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ, ನಂತರ Code Reviewer ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಿ.", + "recoveryLabel": "Code Reviewer ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನವೀಕರಿಸಿ" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer ಗೆ ಗಮನ ಬೇಕು", + "description": "ಇಂದು ಮೂರು ರೆಪೊಸಿಟರಿ ಕ್ಲೋನ್ ಸಮಯಮಿತಿಗಳ ನಂತರ Code Reviewer ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಸಹಾಯಕ್ಕಾಗಿ hi@kilocode.ai ಅನ್ನು ಸಂಪರ್ಕಿಸಿ, ನಂತರ Code Reviewer ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸಿ.", + "recoveryLabel": "ಬೆಂಬಲವನ್ನು ಸಂಪರ್ಕಿಸಿ" + } + }, + "unknownError": "ಅಪರಿಚಿತ ದೋಷ" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ಸಂಶೋಧನೆಯು ಸ್ವಯಂಚಾಲಿತ ತೀವ್ರತೆ ಮಿತಿಗಿಂತ ಕಡಿಮೆಯಾಗಿದೆ. ಸುರಕ್ಷತಾ ಗೇಟ್ಗಳು ಪಾಸ್ ಆದಾಗ ಹಸ್ತಚಾಲಿತ ಪರಿಹಾರ ಇನ್ನೂ ಪ್ರಾರಂಭವಾಗಬಹುದು.", "beforeEnablement": "ಸ್ವಯಂ ಪರಿಹಾರವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲೇ ವಿಶ್ಲೇಷಣೆ ಪೂರ್ಣಗೊಂಡಿದೆ. ಸುರಕ್ಷತಾ ಗೇಟ್ಗಳು ಪಾಸ್ ಆದಾಗ ಹಸ್ತಚಾಲಿತ ಪರಿಹಾರ ಇನ್ನೂ ಪ್ರಾರಂಭವಾಗಬಹುದು.", "generic": "ಈ ಸಂಶೋಧನೆಗೆ ಪರಿಹಾರ ಲಭ್ಯವಿಲ್ಲ." + }, + "commandFailure": { + "ownerCapReached": "ವಿಶ್ಲೇಷಣೆ ಸಾಮರ್ಥ್ಯ ತುಂಬಿದೆ. ಸಕ್ರಿಯ ವಿಶ್ಲೇಷಣೆ ಮುಗಿಯುವವರೆಗೆ ಕಾಯಿರಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "githubTokenUnavailable": "GitHub ಅಧಿಕಾರಕ್ಕೆ ಗಮನ ಬೇಕು. GitHub App ಅನ್ನು ಮರು-ಅಧಿಕಾರ ಮಾಡಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "githubAuthInvalid": "GitHub ಅಧಿಕಾರಕ್ಕೆ ಗಮನ ಬೇಕು. GitHub App ಅನ್ನು ಮರು-ಅಧಿಕಾರ ಮಾಡಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "findingUnavailable": "ಸಂಶೋಧನೆ ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿಲ್ಲ. ಸಂಶೋಧನೆಗಳನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ, ಅದು ತೆರೆದಿದ್ದರೆ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "repositoryUnavailable": "ರೆಪೊಸಿಟರಿ ಇನ್ನು ಮುಂದೆ GitHub App ಗೆ ಲಭ್ಯವಿಲ್ಲ. ರೆಪೊಸಿಟರಿ ಪ್ರವೇಶವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "invalidDismissTarget": "ಅದರ Dependabot ಗುರಿಯು ಅಮಾನ್ಯವಾಗಿರುವುದರಿಂದ ಸಂಶೋಧನೆಯನ್ನು ತಳ್ಳಿಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ.", + "commandStalled": "ಕ್ಯೂ ಮಾಡಿದ ಕ್ರಿಯೆಯು ಸಮಯಕ್ಕೆ ಮುಗಿಯಲಿಲ್ಲ. ಕ್ರಿಯೆಯನ್ನು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "queueRetriesExhausted": "ಹಲವಾರು ಪ್ರಯತ್ನಗಳ ನಂತರವೂ ಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಕ್ರಿಯೆಯನ್ನು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "queueAdmissionFailed": "ಕ್ಯೂ ಮಾಡಿದ ಕ್ರಿಯೆಯನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಕ್ರಿಯೆಯನ್ನು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "generic": "ಕ್ಯೂ ಮಾಡಿದ ಕ್ರಿಯೆಯು ವಿಫಲವಾಗಿದೆ. ಕ್ರಿಯೆಯನ್ನು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ." + }, + "analysisMode": { + "auto": "ಸ್ವಯಂ", + "shallow": "ಆಳವಲ್ಲದ", + "deep": "ಆಳವಾದ" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} ಅನ್ನು ಮೆಚ್ಚಿನವುಗಳಿಗೆ ಸೇರಿಸಿ", "removeFromFavorites": "{{name}} ಅನ್ನು ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಿ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "ಸೆಶನ್ ಮಾದರಿ" }, "attachmentPreview": { "openFailedRetry": "ಫೈಲ್ ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ಸೇರಿಸಿ", - "description": "ಬಳಕೆಯನ್ನು ಮುಂದುವರಿಸಲು ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ಸೇರಿಸಿ." + "description": "ಬಳಕೆಯನ್ನು ಮುಂದುವರಿಸಲು ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ಸೇರಿಸಿ.", + "billingPage": "ಬಿಲ್ಲಿಂಗ್ ಪುಟ" }, "deviceSessions": { "couldNotLoad": "ಸೆಷನ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", @@ -2710,7 +2795,10 @@ "restoreFailed": "ಖರೀದಿಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ವಿಫಲವಾಗಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "purchaseFailed": "ಖರೀದಿ ಪೂರ್ಣಗೊಳಿಸಲು ವಿಫಲವಾಗಿದೆ.", "purchaseStartFailed": "App Store ಖರೀದಿ ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ.", - "purchaseOwnedByAnotherAccount": "ಈ Apple Account ನಲ್ಲಿನ Kilo Pass ಬೇರೆ Kilo ಖಾತೆಗೆ ಸೇರಿದೆ." + "purchaseOwnedByAnotherAccount": "ಈ Apple Account ನಲ್ಲಿನ Kilo Pass ಬೇರೆ Kilo ಖಾತೆಗೆ ಸೇರಿದೆ.", + "couldNotConnectToAppStore": "App Store ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "noMatchingProducts": "App Store ನಿಂದ ಹೊಂದಿಕೆಯಾಗುವ Kilo Pass ಉತ್ಪನ್ನಗಳು ಯಾವುವೂ ಹಿಂತಿರುಗಿಸಲಾಗಿಲ್ಲ.", + "purchaseMissingSignedTransaction": "App Store ಖರೀದಿಯು ಸಹಿ ಮಾಡಿದ ವಹಿವಾಟು JWS ಅನ್ನು ಒಳಗೊಂಡಿರಲಿಲ್ಲ." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "ಸುಧಾರಣೆ ಬೇಕು", "sorryTitle": "ಅದನ್ನು ಕೇಳಿ ನಮಗೆ ವಿಷಾದವಾಗಿದೆ!", "sorryMessage": "ಏನನ್ನು ಸುಧಾರಿಸಬೇಕು ಎಂದು ದಯವಿಟ್ಟು ನಮಗೆ ತಿಳಿಸಿ. ಅಪ್‌ನ ಉಸ್ತುವಾರಿ ಎಂಜಿನಿಯರ್ ಪ್ರತಿ ವರದಿಯನ್ನು ಓದುತ್ತಾರೆ!", - "emailUs": "ನಮಗೆ ಇಮೇಲ್ ಮಾಡಿ" + "emailUs": "ನಮಗೆ ಇಮೇಲ್ ಮಾಡಿ", + "emailSubject": "ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್ ಪ್ರತಿಕ್ರಿಯೆ" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "ಯಾವುದೇ ಕ್ರೆಡಿಟ್ ಚಟುವಟಿಕೆಯಿಲ್ಲ", "expires": "{{date}} ರಂದು ಮುಕ್ತಾಯಗೊಳ್ಳುತ್ತದೆ", "title": "ಕ್ರೆಡಿಟ್ ಚಟುವಟಿಕೆ", - "transactionFallback": "ಕ್ರೆಡಿಟ್ ವಹಿವಾಟು" + "transactionFallback": "ಕ್ರೆಡಿಟ್ ವಹಿವಾಟು", + "category": { + "organization_custom": "ಸಂಸ್ಥೆ ಕಸ್ಟಮ್", + "parent_to_child_transfer_in": "ಪೋಷಕರಿಂದ ಮಕ್ಕಳಿಗೆ ವರ್ಗಾವಣೆ (ಇನ್)", + "parent_to_child_transfer_out": "ಪೋಷಕರಿಂದ ಮಕ್ಕಳಿಗೆ ವರ್ಗಾವಣೆ (ಔಟ್)", + "oss-sponsorship": "OSS ಪ್ರಾಯೋಜಕತ್ವ", + "oss-monthly-reset": "OSS ಮಾಸಿಕ ಮರುಹೊಂದಿಸುವಿಕೆ", + "team-topup-bonus-2025": "ತಂಡದ ಟಾಪ್-ಅಪ್ ಬೋನಸ್ 2025", + "accounting_adjustment": "ಲೆಕ್ಕಪತ್ರ ಹೊಂದಾಣಿಕೆ", + "credits_expired": "ಕ್ರೆಡಿಟ್‌ಗಳು ಅವಧಿ ಮುಗಿದವು" + } }, "inviteMember": { "emailError": "ಮಾನ್ಯ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ", @@ -2840,12 +2939,17 @@ "emptyDescription": "ಇನ್‌ವಾಯ್ಸ್‌ಗಳನ್ನು ಪ್ರತಿ ಬಿಲ್ಲಿಂಗ್ ಚಕ್ರದಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಸಂಸ್ಥೆಗೆ ಬಿಲ್ ಆದ ನಂತರ ಇಲ್ಲಿ ಕಾಣಿಸುತ್ತವೆ.", "emptyTitle": "ಯಾವುದೇ ಇನ್‌ವಾಯ್ಸ್‌ಗಳಿಲ್ಲ", "invoiceFallback": "ಇನ್‌ವಾಯ್ಸ್", - "statusOpen": "ತೆರೆದಿದೆ", - "statusPaid": "ಪಾವತಿಸಲಾಗಿದೆ", - "statusVoid": "ರದ್ದು", "title": "ಇನ್‌ವಾಯ್ಸ್‌ಗಳು", "downloadFailed": "ಇನ್‌ವಾಯ್ಸ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", - "sharingUnavailable": "ಈ ಸಾಧನದಲ್ಲಿ ಹಂಚಿಕೆ ಲಭ್ಯವಿಲ್ಲ." + "sharingUnavailable": "ಈ ಸಾಧನದಲ್ಲಿ ಹಂಚಿಕೆ ಲಭ್ಯವಿಲ್ಲ.", + "status": { + "paid": "ಪಾವತಿಸಲಾಗಿದೆ", + "open": "ತೆರೆದಿದೆ", + "void": "ರದ್ದು", + "draft": "ಡ್ರಾಫ್ಟ್", + "uncollectible": "ವಸೂಲಿ ಮಾಡಲಾಗದ", + "unknown": "ತಿಳಿದಿಲ್ಲ" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾ", "free": "ಉಚಿತ", - "couldNotUpdateFavorites": "ಮೆಚ್ಚಿನವುಗಳನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ" + "couldNotUpdateFavorites": "ಮೆಚ್ಚಿನವುಗಳನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", + "thinkingEffort": { + "none": "ಯಾವುದೂ ಇಲ್ಲ", + "minimal": "ಕನಿಷ್ಠ", + "low": "ಕಡಿಮೆ", + "medium": "ಮಧ್ಯಮ", + "high": "ಹೆಚ್ಚಿನ", + "xhigh": "ಹೆಚ್ಚುವರಿ ಹೆಚ್ಚಿನ", + "max": "ಗರಿಷ್ಠ" + } } } diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index f66bd4226c..5e0d33056e 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -382,7 +382,11 @@ "paymentPastDue": "결제가 연체되었습니다. 결제 수단을 업데이트하세요.", "subscriptionCancels": "구독이 {{date}}에 취소됩니다", "trialDaysRemaining": "체험: {{remaining}} 남음", - "trialEndingSoon": "체험 종료 임박: {{remaining}}" + "trialEndingSoon": "체험 종료 임박: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "새로운 기능", @@ -750,7 +754,8 @@ "strongArm": "강한 팔", "talisman": "부적" }, - "remoteSpawnFilesNotSupported": "이 인스턴스는 파일을 받을 수 없습니다." + "remoteSpawnFilesNotSupported": "이 인스턴스는 파일을 받을 수 없습니다.", + "instanceSwitcherTitle": "KiloClaw 인스턴스" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "실패", "cancelled": "취소됨", "interrupted": "중단됨" - } + }, + "reviewStyle": { + "strict": "엄격", + "balanced": "균형", + "lenient": "관대", + "roast": "Roast" + }, + "focusArea": { + "security": "보안", + "performance": "성능", + "bugs": "버그", + "style": "스타일", + "testing": "테스트", + "documentation": "문서화" + }, + "gateThreshold": { + "off": "꺼짐", + "all": "전체", + "warning": "경고", + "critical": "치명적" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer의 주의가 필요합니다", + "description": "Kilo가 활성 GitHub 앱 설치로 이 리포지토리에 액세스할 수 없어 Code Reviewer가 비활성화되었습니다. GitHub 앱 설치를 업데이트한 후 Code Reviewer를 다시 활성화하세요.", + "recoveryLabel": "GitHub 앱 업데이트" + }, + "githubIpAllowList": { + "title": "Code Reviewer의 주의가 필요합니다", + "description": "이 GitHub 조직이 Kilo를 차단하는 IP 허용 목록을 사용하기 때문에 Code Reviewer가 비활성화되었습니다. 도움이 필요하면 hi@kilocode.ai에 문의한 후 Code Reviewer를 다시 활성화하세요.", + "recoveryLabel": "지원팀에 문의" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer의 주의가 필요합니다", + "description": "Kilo가 이 프로젝트에 대한 GitLab 프로젝트 액세스 토큰을 만들 수 없어 Code Reviewer가 비활성화되었습니다. Maintainer 액세스를 부여하거나 프로젝트 액세스 토큰을 활성화한 후 Code Reviewer를 다시 활성화하세요.", + "recoveryLabel": "GitLab 통합 업데이트" + }, + "byokInvalidKey": { + "title": "Code Reviewer의 주의가 필요합니다", + "description": "선택한 BYOK API 키가 유효하지 않거나, 취소되었거나, 권한이 없어 Code Reviewer가 비활성화되었습니다. 키를 업데이트하거나 다른 모델을 선택한 후 Code Reviewer를 다시 활성화하세요.", + "recoveryLabel": "BYOK 설정 업데이트" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer의 주의가 필요합니다", + "description": "선택한 모델이 클라우드 에이전트 세션에 사용할 수 없어 Code Reviewer가 비활성화되었습니다. 사용 가능한 모델을 선택한 후 Code Reviewer를 다시 활성화하세요.", + "recoveryLabel": "Code Reviewer 설정 업데이트" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer의 주의가 필요합니다", + "description": "오늘 리포지토리 복제 시간 초과가 세 번 발생하여 Code Reviewer가 비활성화되었습니다. 도움이 필요하면 hi@kilocode.ai에 문의한 후 Code Reviewer를 다시 활성화하세요.", + "recoveryLabel": "지원팀에 문의" + } + }, + "unknownError": "알 수 없는 오류" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "발견 사항이 자동 심각도 기준보다 낮습니다. 안전 검사를 통과하면 수동 수정을 시작할 수 있습니다.", "beforeEnablement": "자동 수정이 활성화되기 전에 분석이 완료되었습니다. 안전 검사를 통과하면 수동 수정을 시작할 수 있습니다.", "generic": "이 발견 사항에는 수정을 사용할 수 없습니다." + }, + "commandFailure": { + "ownerCapReached": "분석 용량이 가득 찼습니다. 진행 중인 분석이 끝날 때까지 기다린 후 다시 시도하세요.", + "githubTokenUnavailable": "GitHub 인증에 주의가 필요합니다. GitHub 앱을 다시 승인한 후 다시 시도하세요.", + "githubAuthInvalid": "GitHub 인증에 주의가 필요합니다. GitHub 앱을 다시 승인한 후 다시 시도하세요.", + "findingUnavailable": "발견 사항을 더 이상 사용할 수 없습니다. 발견 사항을 새로고침하고, 계속 열려 있으면 다시 시도하세요.", + "repositoryUnavailable": "리포지토리를 GitHub 앱에서 더 이상 사용할 수 없습니다. 리포지토리 액세스를 새로고침한 후 다시 시도하세요.", + "invalidDismissTarget": "Dependabot 대상이 유효하지 않아 발견 사항을 해제할 수 없습니다.", + "commandStalled": "대기 중인 작업이 제시간에 끝나지 않았습니다. 작업을 다시 시도하세요.", + "queueRetriesExhausted": "여러 번 시도한 후에도 작업을 완료할 수 없었습니다. 작업을 다시 시도하세요.", + "queueAdmissionFailed": "대기 중인 작업을 수락할 수 없습니다. 작업을 다시 시도하세요.", + "generic": "대기 중인 작업이 실패했습니다. 작업을 다시 시도하세요." + }, + "analysisMode": { + "auto": "자동", + "shallow": "얕음", + "deep": "심층" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "{{name}}을(를) 즐겨찾기에 추가", "removeFromFavorites": "{{name}}을(를) 즐겨찾기에서 제거", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "세션 모델" }, "attachmentPreview": { "openFailedRetry": "파일을 열지 못했습니다. 다시 시도하세요.", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "크레딧 추가", - "description": "사용을 계속하려면 크레딧을 추가하세요." + "description": "사용을 계속하려면 크레딧을 추가하세요.", + "billingPage": "결제 페이지" }, "deviceSessions": { "couldNotLoad": "세션을 불러올 수 없습니다", @@ -2271,7 +2348,10 @@ "restoreFailed": "구매를 복원하지 못했습니다. 다시 시도하세요.", "purchaseFailed": "구매를 완료하지 못했습니다.", "purchaseStartFailed": "App Store 구매를 시작하지 못했습니다.", - "purchaseOwnedByAnotherAccount": "이 Apple 계정의 Kilo Pass는 다른 Kilo 계정에 속합니다." + "purchaseOwnedByAnotherAccount": "이 Apple 계정의 Kilo Pass는 다른 Kilo 계정에 속합니다.", + "couldNotConnectToAppStore": "App Store에 연결할 수 없습니다. 연결을 확인하고 다시 시도하세요.", + "noMatchingProducts": "App Store에서 일치하는 Kilo Pass 상품이 반환되지 않았습니다.", + "purchaseMissingSignedTransaction": "App Store 구매에 서명된 거래 JWS가 포함되지 않았습니다." }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "{{label}} 선택됨, 탭하여 선택 변경", "tapToComment": "{{label}}, 탭하여 댓글 달기", - "truncationBanner": "변경된 파일 {{total}}개 중 처음 {{limit}}개를 표시 중 — GitHub API 제한" + "truncationBanner": "변경된 파일 {{total}}개 중 처음 {{limit}}개를 표시 중 — GitHub API 제한", + "statusAdded": "추가됨", + "statusContext": "컨텍스트", + "statusDeleted": "삭제됨" }, "linkPasteClipboardEmpty": "클립보드가 비어 있습니다", "linkPasteNotAPullRequest": "GitHub 풀 리퀘스트 링크가 아닙니다", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "이 리뷰는 그대로 제출할 수 없습니다. PR이 변경되었거나 자신의 풀 리퀘스트를 리뷰할 수 없습니다.", "couldNotPostComment": "댓글을 게시할 수 없습니다.", "couldNotSubmitReview": "리뷰를 제출할 수 없습니다. 연결을 확인하고 다시 시도하세요." + }, + "operation": { + "couldNotReply": "답글을 달 수 없습니다.", + "couldNotCompleteAction": "이 작업을 완료할 수 없습니다.", + "mergeResultDefaultError": "GitHub가 병합을 완료하지 않았습니다." } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "크레딧 활동 없음", "expires": "{{date}}에 만료", "title": "크레딧 활동", - "transactionFallback": "크레딧 거래" + "transactionFallback": "크레딧 거래", + "category": { + "organization_custom": "조직 맞춤", + "parent_to_child_transfer_in": "상위에서 하위로 전입", + "parent_to_child_transfer_out": "상위에서 하위로 전출", + "oss-sponsorship": "OSS 후원", + "oss-monthly-reset": "OSS 월간 초기화", + "team-topup-bonus-2025": "팀 충전 보너스 2025", + "accounting_adjustment": "회계 조정", + "credits_expired": "크레딧 만료" + } }, "hub": { "balance": "잔액", @@ -2837,11 +2935,16 @@ "emptyTitle": "송장 없음", "invoiceFallback": "송장", "title": "송장", - "statusPaid": "결제 완료", - "statusOpen": "미결제", - "statusVoid": "무효", "downloadFailed": "송장을 다운로드할 수 없습니다. 연결을 확인하고 다시 시도하세요.", - "sharingUnavailable": "이 기기에서는 공유를 사용할 수 없습니다." + "sharingUnavailable": "이 기기에서는 공유를 사용할 수 없습니다.", + "status": { + "paid": "결제 완료", + "open": "미결제", + "void": "무효", + "draft": "초안", + "uncollectible": "회수 불가", + "unknown": "알 수 없음" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "Kilo 앱은 어떠신가요?", "rateKilo": "Kilo 평가하기", "sorryMessage": "무엇을 개선해야 하는지 알려주세요. 앱 담당 엔지니어가 모든 보고를 읽습니다!", - "sorryTitle": "안타깝네요!" + "sorryTitle": "안타깝네요!", + "emailSubject": "모바일 앱 피드백" }, "authErrors": { "emailAlreadyUsed": "이 이메일로 된 계정이 다른 로그인 방식으로 이미 존재합니다. 다른 방식을 시도하거나 '$t(login.moreSignInOptions)'을 사용하세요.", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "수집된 데이터", "free": "무료", - "couldNotUpdateFavorites": "즐겨찾기를 업데이트할 수 없습니다" + "couldNotUpdateFavorites": "즐겨찾기를 업데이트할 수 없습니다", + "thinkingEffort": { + "none": "없음", + "minimal": "최소", + "low": "낮음", + "medium": "중간", + "high": "높음", + "xhigh": "매우 높음", + "max": "최대" + } } } diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index 21709188b0..febe1f9af3 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "ເລືອກ {{label}}, ແຕະເພື່ອປ່ຽນການເລືອກ", "tapToComment": "{{label}}, ແຕະເພື່ອໃສ່ຄຳເຫັນ", - "truncationBanner": "ກຳລັງສະແດງ {{limit}} ທຳອິດຈາກ {{total}} ໄຟລ໌ທີ່ປ່ຽນແປງ — ຂີດຈຳກັດ GitHub API" + "truncationBanner": "ກຳລັງສະແດງ {{limit}} ທຳອິດຈາກ {{total}} ໄຟລ໌ທີ່ປ່ຽນແປງ — ຂີດຈຳກັດ GitHub API", + "statusAdded": "ເພີ່ມແລ້ວ", + "statusContext": "ບໍລິບົດ", + "statusDeleted": "ລຶບແລ້ວ" }, "linkPasteClipboardEmpty": "ຄລິບບອດວ່າງເປົ່າ", "linkPasteNotAPullRequest": "ບໍ່ແມ່ນລິ້ງ pull request ຂອງ GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ການກວດສອບນີ້ບໍ່ສາມາດສົ່ງຕາມສະພາບປັດຈຸບັນໄດ້. PR ອາດປ່ຽນໄປ, ຫຼື ທ່ານບໍ່ສາມາດກວດສອບ pull request ຂອງຕົວເອງໄດ້.", "couldNotPostComment": "ບໍ່ສາມາດໂພສຄຳເຫັນໄດ້.", "couldNotSubmitReview": "ບໍ່ສາມາດສົ່ງການກວດສອບໄດ້. ກວດເບິ່ງການເຊື່ອມຕໍ່ຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ." + }, + "operation": { + "couldNotReply": "ບໍ່ສາມາດຕອບໄດ້.", + "couldNotCompleteAction": "ບໍ່ສາມາດເຮັດການກະທຳນີ້ໃຫ້ສຳເລັດໄດ້.", + "mergeResultDefaultError": "GitHub ບໍ່ໄດ້ເຮັດການ merge ໃຫ້ສຳເລັດ." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ການຈ່າຍເງິນເກີນກຳນົດ. ກະລຸນາອັບເດດວິທີການຈ່າຍເງິນຂອງທ່ານ.", "subscriptionCancels": "ສະມາຊິກຈະຖືກຍົກເລີກໃນ {{date}}", "trialDaysRemaining": "ທົດລອງ: {{remaining}} ເຫຼືອ", - "trialEndingSoon": "ທົດລອງຈະສິ້ນສຸດອີກບໍ່ດົນ: {{remaining}}" + "trialEndingSoon": "ທົດລອງຈະສິ້ນສຸດອີກບໍ່ດົນ: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "ມີອັນໃໝ່ຫຍັງ", @@ -1189,7 +1201,8 @@ "strongArm": "Strong arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "instance ນີ້ບໍ່ສາມາດຮັບໄຟລ໌ໄດ້." + "remoteSpawnFilesNotSupported": "instance ນີ້ບໍ່ສາມາດຮັບໄຟລ໌ໄດ້.", + "instanceSwitcherTitle": "KiloClaw ອິນສະແຕນ" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ລົ້ມເຫຼວ", "cancelled": "ຖືກຍົກເລີກ", "interrupted": "ຖືກຂັດຈັງ" - } + }, + "reviewStyle": { + "strict": "ເຄັ່ງຄັດ", + "balanced": "ສົມດຸນ", + "lenient": "ຜ່ອນຜັນ", + "roast": "Roast" + }, + "focusArea": { + "security": "ຄວາມປອດໄພ", + "performance": "ປະສິດທິພາບ", + "bugs": "ບັກ", + "style": "ຮູບແບບ", + "testing": "ການທົດສອບ", + "documentation": "ເອກະສານ" + }, + "gateThreshold": { + "off": "ປິດ", + "all": "ທັງໝົດ", + "warning": "ຄຳເຕືອນ", + "critical": "ສຳຄັນ" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer ຕ້ອງການຄວາມເອົາໃຈໃສ່", + "description": "Code Reviewer ຖືກປິດໃຊ້ງານ ເພາະ Kilo ບໍ່ສາມາດເຂົ້າເຖິງບ່ອນເກັບລະຫັດນີ້ດ້ວຍການຕິດຕັ້ງ GitHub App ທີ່ເຄື່ອນໄຫວ. ອັບເດດການຕິດຕັ້ງ GitHub App, ແລ້ວເປີດໃຊ້ Code Reviewer ອີກຄັ້ງ.", + "recoveryLabel": "ອັບເດດ GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer ຕ້ອງການຄວາມເອົາໃຈໃສ່", + "description": "Code Reviewer ຖືກປິດໃຊ້ງານ ເພາະອົງກອນ GitHub ນີ້ໃຊ້ລາຍຊື່ອະນຸຍາດ IP ທີ່ກັ້ນ Kilo. ຕິດຕໍ່ hi@kilocode.ai ເພື່ອຂໍຄວາມຊ່ວຍເຫຼືອ, ແລ້ວເປີດໃຊ້ Code Reviewer ອີກຄັ້ງ.", + "recoveryLabel": "ຕິດຕໍ່ຝ່າຍສະໜັບສະໜູນ" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer ຕ້ອງການຄວາມເອົາໃຈໃສ່", + "description": "Code Reviewer ຖືກປິດໃຊ້ງານ ເພາະ Kilo ບໍ່ສາມາດສ້າງ GitLab Project Access Token ສຳລັບໂຄງການນີ້. ໃຫ້ສິດ Maintainer ຫຼື ເປີດໃຊ້ Project Access Tokens, ແລ້ວເປີດໃຊ້ Code Reviewer ອີກຄັ້ງ.", + "recoveryLabel": "ອັບເດດການເຊື່ອມຕໍ່ GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer ຕ້ອງການຄວາມເອົາໃຈໃສ່", + "description": "Code Reviewer ຖືກປິດໃຊ້ງານ ເພາະປຸ່ມ API BYOK ທີ່ເລືອກໄວ້ບໍ່ຖືກຕ້ອງ, ຖືກເພີ່ງ, ຫຼື ຂາດສິດ. ອັບເດດປຸ່ມ ຫຼື ເລືອກຮູບແບບອື່ນ, ແລ້ວເປີດໃຊ້ Code Reviewer ອີກຄັ້ງ.", + "recoveryLabel": "ອັບເດດການຕັ້ງຄ່າ BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer ຕ້ອງການຄວາມເອົາໃຈໃສ່", + "description": "Code Reviewer ຖືກປິດໃຊ້ງານ ເພາະຮູບແບບທີ່ເລືອກບໍ່ມີສຳລັບເຊດຊັນ cloud agent. ເລືອກຮູບແບບທີ່ມີ, ແລ້ວເປີດໃຊ້ Code Reviewer ອີກຄັ້ງ.", + "recoveryLabel": "ອັບເດດການຕັ້ງຄ່າ Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer ຕ້ອງການຄວາມເອົາໃຈໃສ່", + "description": "Code Reviewer ຖືກປິດໃຊ້ງານຫຼັງຈາກເວລາສຳເນົາບ່ອນເກັບລະຫັດໝົດ 3 ຄັ້ງໃນມື້ນີ້. ຕິດຕໍ່ hi@kilocode.ai ເພື່ອຂໍຄວາມຊ່ວຍເຫຼືອ, ແລ້ວເປີດໃຊ້ Code Reviewer ອີກຄັ້ງ.", + "recoveryLabel": "ຕິດຕໍ່ຝ່າຍສະໜັບສະໜູນ" + } + }, + "unknownError": "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ຈັກ" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ການກວດພົບຕ່ຳກວ່າຂອບເຂດຄວາມຮ້າຍແຮງອັດຕະໂນມັດ. ການແກ້ໄຂດ້ວຍມືຍັງສາມາດເລີ່ມໄດ້ເມື່ອຜ່ານເກນຄວາມປອດໄພ.", "beforeEnablement": "ການວິເຄາະສຳເລັດກ່ອນການແກ້ໄຂອັດຕະໂນມັດຈະຖືກເປີດໃຊ້. ການແກ້ໄຂດ້ວຍມືຍັງສາມາດເລີ່ມໄດ້ເມື່ອຜ່ານເກນຄວາມປອດໄພ.", "generic": "ການແກ້ໄຂບໍ່ສາມາດໃຊ້ໄດ້ສຳລັບການກວດພົບນີ້." + }, + "commandFailure": { + "ownerCapReached": "ຄວາມສາມາດວິເຄາະເຕັມ. ລໍຖ້າການວິເຄາະທີ່ກຳລັງດຳເນີນການຢູ່ໃຫ້ສຳເລັດ, ແລ້ວລອງໃໝ່.", + "githubTokenUnavailable": "ການອະນຸຍາດ GitHub ຕ້ອງການຄວາມເອົາໃຈໃສ່. ອະນຸຍາດ GitHub App ໃໝ່, ແລ້ວລອງໃໝ່.", + "githubAuthInvalid": "ການອະນຸຍາດ GitHub ຕ້ອງການຄວາມເອົາໃຈໃສ່. ອະນຸຍາດ GitHub App ໃໝ່, ແລ້ວລອງໃໝ່.", + "findingUnavailable": "ການຄົ້ນພົບບໍ່ມີອີກແລ້ວ. ໂຫຼດການຄົ້ນພົບຄືນ ແລະ ລອງໃໝ່ຖ້າຍັງເປີດຢູ່.", + "repositoryUnavailable": "ບ່ອນເກັບລະຫັດບໍ່ມີສຳລັບ GitHub App ອີກຕໍ່ໄປ. ໂຫຼດການເຂົ້າເຖິງບ່ອນເກັບລະຫັດຄືນ, ແລ້ວລອງໃໝ່.", + "invalidDismissTarget": "ບໍ່ສາມາດຍົກເລີກການຄົ້ນພົບໄດ້ ເພາະເປົ້າໝາຍ Dependabot ຂອງມັນບໍ່ຖືກຕ້ອງ.", + "commandStalled": "ການກະທຳທີ່ລໍຖ້າຢູ່ບໍ່ສຳເລັດທັນເວລາ. ລອງການກະທຳອີກ.", + "queueRetriesExhausted": "ບໍ່ສາມາດເຮັດການກະທຳໃຫ້ສຳເລັດໄດ້ຫຼັງຈາກພະຍາຍາມຫຼາຍຄັ້ງ. ລອງການກະທຳອີກ.", + "queueAdmissionFailed": "ບໍ່ສາມາດຮັບການກະທຳທີ່ລໍຖ້າຢູ່ໄດ້. ລອງການກະທຳອີກ.", + "generic": "ການກະທຳທີ່ລໍຖ້າຢູ່ລົ້ມເຫຼວ. ລອງການກະທຳອີກ." + }, + "analysisMode": { + "auto": "ອັດຕະໂນມັດ", + "shallow": "ຕື້ນ", + "deep": "ເລິກ" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "ເພີ່ມ {{name}} ໃສ່ລາຍການທີ່ມັກ", "removeFromFavorites": "ລຶບ {{name}} ອອກຈາກລາຍການທີ່ມັກ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "ຮູບແບບເຊດຊັນ" }, "attachmentPreview": { "openFailedRetry": "ບໍ່ສາມາດເປີດໄຟລ໌. ກະລຸນາລອງອີກ.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ເພີ່ມເຄຣດິດ", - "description": "ເພີ່ມເຄຣດິດເພື່ອຮັກສາການໃຊ້ງານ." + "description": "ເພີ່ມເຄຣດິດເພື່ອຮັກສາການໃຊ້ງານ.", + "billingPage": "ໜ້າການອອກບິນ" }, "deviceSessions": { "couldNotLoad": "ບໍ່ສາມາດໂຫລດເຊດຊັນ", @@ -2710,7 +2795,10 @@ "restoreFailed": "ການກູ້ຄືນການຊື້ລົ້ມເຫລວ. ລອງອີກຄັ້ງ.", "purchaseFailed": "ການເຮັດການຊື້ໃຫ້ສຳເລັດລົ້ມເຫລວ.", "purchaseStartFailed": "ການເລີ່ມການຊື້ App Store ລົ້ມເຫລວ.", - "purchaseOwnedByAnotherAccount": "Kilo Pass ໃນ Apple Account ນີ້ເປັນຂອງບັນຊີ Kilo ອື່ນ." + "purchaseOwnedByAnotherAccount": "Kilo Pass ໃນ Apple Account ນີ້ເປັນຂອງບັນຊີ Kilo ອື່ນ.", + "couldNotConnectToAppStore": "ບໍ່ສາມາດເຊື່ອມຕໍ່ກັບ App Store ໄດ້. ກວດເບິ່ງການເຊື່ອມຕໍ່ຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ.", + "noMatchingProducts": "App Store ບໍ່ໄດ້ສົ່ງຄືນສິນຄ້າ Kilo Pass ທີ່ກົງກັນ.", + "purchaseMissingSignedTransaction": "ການຊື້ App Store ບໍ່ໄດ້ລວມມີ JWS ລາຍການທີ່ມີລາຍເຊັນ." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "ຕ້ອງປັບປຸງ", "sorryTitle": "ຂໍໂທດທີ່ໄດ້ຍິນ!", "sorryMessage": "ກະລຸນາແຈ້ງໃຫ້ເຮົາຮູ້ສິ່ງທີ່ຕ້ອງດີຂຶ້ນ. ວິສະວະກອນທີ່ຮັບຜິດຊອບແອັບອ່ານທຸກລາຍງານ!", - "emailUs": "ສົ່ງອີເມວຫາເຮົາ" + "emailUs": "ສົ່ງອີເມວຫາເຮົາ", + "emailSubject": "ຄຳຕິຊົມແອັບມືຖື" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "ບໍ່ມີກິດຈະກຳເຄຣດິດ", "expires": "ໝົດອາຍຸ {{date}}", "title": "ກິດຈະກຳເຄຣດິດ", - "transactionFallback": "ລາຍການເຄຣດິດ" + "transactionFallback": "ລາຍການເຄຣດິດ", + "category": { + "organization_custom": "ອົງກອນກຳນົດເອງ", + "parent_to_child_transfer_in": "ໂອນເຂົ້າຈາກພໍ່ແມ່ຫາລູກ", + "parent_to_child_transfer_out": "ໂອນອອກຈາກພໍ່ແມ່ຫາລູກ", + "oss-sponsorship": "ການສະໜັບສະໜູນ OSS", + "oss-monthly-reset": "ການຕັ້ງຄ່າລາຍເດືອນ OSS", + "team-topup-bonus-2025": "ໂບນັດເຕີມເງິນທີມ 2025", + "accounting_adjustment": "ການປັບບັນຊີ", + "credits_expired": "ເຄຣດິດໝົດອາຍຸ" + } }, "inviteMember": { "emailError": "ໃສ່ທີ່ຢູ່ອີເມວທີ່ຖືກຕ້ອງ", @@ -2840,12 +2939,17 @@ "emptyDescription": "ໃບແຈ້ງຫນີ້ຖືກສ້າງອັດຕະໂນມັດທຸກຮອບການຄິດໄລ່ ແລະ ຈະປະກົດຢູ່ທີ່ນີ້ເມື່ອອົງກອນຂອງທ່ານຖືກຄິດໄລ່.", "emptyTitle": "ບໍ່ມີໃບແຈ້ງຫນີ້", "invoiceFallback": "ໃບແຈ້ງຫນີ້", - "statusOpen": "ເປີດ", - "statusPaid": "ຊຳລະແລ້ວ", - "statusVoid": "ຍົກເລີກ", "title": "ໃບແຈ້ງຫນີ້", "downloadFailed": "ບໍ່ສາມາດດາວໂຫລດໃບແຈ້ງຫນີ້ໄດ້. ກວດເບິ່ງການເຊື່ອມຕໍ່ຂອງທ່ານ ແລະ ລອງອີກຄັ້ງ.", - "sharingUnavailable": "ການແບ່ງປັນບໍ່ມີໃນອຸປະກອນນີ້." + "sharingUnavailable": "ການແບ່ງປັນບໍ່ມີໃນອຸປະກອນນີ້.", + "status": { + "paid": "ຊຳລະແລ້ວ", + "open": "ເປີດ", + "void": "ຍົກເລີກ", + "draft": "ຮ່າງ", + "uncollectible": "ເກັບບໍ່ໄດ້", + "unknown": "ບໍ່ຮູ້" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ຂໍ້ມູນທີ່ເກັບກຳ", "free": "ຟຣີ", - "couldNotUpdateFavorites": "ບໍ່ສາມາດອັບເດດລາຍການທີ່ມັກໄດ້" + "couldNotUpdateFavorites": "ບໍ່ສາມາດອັບເດດລາຍການທີ່ມັກໄດ້", + "thinkingEffort": { + "none": "ບໍ່ມີ", + "minimal": "ໜ້ອຍທີ່ສຸດ", + "low": "ຕໍ່າ", + "medium": "ປານກາງ", + "high": "ສູງ", + "xhigh": "ສູງພິເສດ", + "max": "ສູງສຸດ" + } } } diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index 8514a8046f..3939cee961 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -587,7 +587,10 @@ "diff": { "selectedTapToChange": "Pasirinkta {{label}}, bakstelėkite, kad pakeistumėte pasirinkimą", "tapToComment": "{{label}}, bakstelėkite, kad pakomentuotumėte", - "truncationBanner": "Rodoma pirmi {{limit}} iš {{total}} pakeistų failų — „GitHub“ API limitas" + "truncationBanner": "Rodoma pirmi {{limit}} iš {{total}} pakeistų failų — „GitHub“ API limitas", + "statusAdded": "Pridėta", + "statusContext": "Kontekstas", + "statusDeleted": "Ištrinta" }, "linkPasteClipboardEmpty": "Iškarpinė tuščia", "linkPasteNotAPullRequest": "Tai ne „GitHub“ pull request nuoroda", @@ -601,6 +604,11 @@ "reviewNotSubmitted": "Šios peržiūros negalima pateikti tokios, kokia ji yra. PR galėjo pasikeisti arba negalite peržiūrėti savo pull request.", "couldNotPostComment": "Nepavyko paskelbti komentaro.", "couldNotSubmitReview": "Nepavyko pateikti peržiūros. Patikrinkite ryšį ir bandykite dar kartą." + }, + "operation": { + "couldNotReply": "Nepavyko atsakyti.", + "couldNotCompleteAction": "Nepavyko užbaigti šio veiksmo.", + "mergeResultDefaultError": "„GitHub“ nebaigė sujungimo." } }, "notifications": { @@ -837,7 +845,11 @@ "paymentPastDue": "Mokėjimas pavėluotas. Atnaujinkite mokėjimo būdą.", "subscriptionCancels": "Prenumerata atšaukiama {{date}}", "trialDaysRemaining": "Bandomasis laikotarpis: liko {{remaining}}", - "trialEndingSoon": "Bandomasis laikotarpis greitai baigiasi: {{remaining}}" + "trialEndingSoon": "Bandomasis laikotarpis greitai baigiasi: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Kas naujo", @@ -1207,7 +1219,8 @@ "strongArm": "Stipri ranka", "talisman": "Talismanas" }, - "remoteSpawnFilesNotSupported": "Šis egzempliorius negali gauti failų." + "remoteSpawnFilesNotSupported": "Šis egzempliorius negali gauti failų.", + "instanceSwitcherTitle": "KiloClaw egzempliorius" }, "codeReviewer": { "focusAreas": { @@ -1405,7 +1418,60 @@ "failed": "Nepavyko", "cancelled": "Atšaukta", "interrupted": "Nutraukta" - } + }, + "reviewStyle": { + "strict": "Griežtas", + "balanced": "Subalansuotas", + "lenient": "Švelnus", + "roast": "Roast" + }, + "focusArea": { + "security": "Sauga", + "performance": "Našumas", + "bugs": "Klaidos", + "style": "Stilius", + "testing": "Testavimas", + "documentation": "Dokumentacija" + }, + "gateThreshold": { + "off": "Išjungta", + "all": "Visi", + "warning": "Įspėjimas", + "critical": "Kritinis" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer reikia dėmesio", + "description": "Code Reviewer buvo išjungtas, nes Kilo negali pasiekti šios saugyklos su aktyvia GitHub App įdiegtimi. Atnaujinkite GitHub App įdiegtį, tada vėl įjunkite Code Reviewer.", + "recoveryLabel": "Atnaujinti GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer reikia dėmesio", + "description": "Code Reviewer buvo išjungtas, nes ši GitHub organizacija naudoja IP leidimų sąrašą, kuris blokuoja Kilo. Susisiekite su hi@kilocode.ai dėl pagalbos, tada vėl įjunkite Code Reviewer.", + "recoveryLabel": "Susisiekti su palaikymu" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer reikia dėmesio", + "description": "Code Reviewer buvo išjungtas, nes Kilo negali sukurti GitLab projekto prieigos rakto šiam projektui. Suteikite Maintainer prieigą arba įgalinkite projekto prieigos raktus, tada vėl įjunkite Code Reviewer.", + "recoveryLabel": "Atnaujinti GitLab integraciją" + }, + "byokInvalidKey": { + "title": "Code Reviewer reikia dėmesio", + "description": "Code Reviewer buvo išjungtas, nes pasirinktas BYOK API raktas yra netinkamas, atšauktas arba neturi leidimo. Atnaujinkite raktą arba pasirinkite kitą modelį, tada vėl įjunkite Code Reviewer.", + "recoveryLabel": "Atnaujinti BYOK nustatymus" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer reikia dėmesio", + "description": "Code Reviewer buvo išjungtas, nes pasirinktas modelis neprieinamas debesies agento sesijoms. Pasirinkite pasiekiamą modelį, tada vėl įjunkite Code Reviewer.", + "recoveryLabel": "Atnaujinti Code Reviewer nustatymus" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer reikia dėmesio", + "description": "Code Reviewer buvo išjungtas po trijų saugyklos klonavimo laukimo laikų šiandien. Susisiekite su hi@kilocode.ai dėl pagalbos, tada vėl įjunkite Code Reviewer.", + "recoveryLabel": "Susisiekti su palaikymu" + } + }, + "unknownError": "Nežinoma klaida" }, "securityAgent": { "filter": { @@ -1953,6 +2019,23 @@ "belowThreshold": "Radinys yra žemiau automatinio sunkumo slenksčio. Rankinis taisymas vis tiek gali prasidėti, kai saugos patikros praeina.", "beforeEnablement": "Analizė baigta prieš įjungiant automatinį taisymą. Rankinis taisymas vis tiek gali prasidėti, kai saugos patikros praeina.", "generic": "Taisymas šiam radiniui nepasiekiamas." + }, + "commandFailure": { + "ownerCapReached": "Analizės talpa užpildyta. Palaukite, kol baigsis aktyvi analizė, tada bandykite dar kartą.", + "githubTokenUnavailable": "GitHub autorizacijai reikia dėmesio. Iš naujo autorizuokite GitHub App, tada bandykite dar kartą.", + "githubAuthInvalid": "GitHub autorizacijai reikia dėmesio. Iš naujo autorizuokite GitHub App, tada bandykite dar kartą.", + "findingUnavailable": "Radinys nebegalimas. Atnaujinkite radinius ir bandykite dar kartą, jei jis vis dar atidarytas.", + "repositoryUnavailable": "Saugykla nebegalima GitHub App. Atnaujinkite saugyklos prieigą, tada bandykite dar kartą.", + "invalidDismissTarget": "Radinio negalima atmesti, nes jo Dependabot tikslas netinkamas.", + "commandStalled": "Eilėje esantis veiksmas nebaigtas laiku. Bandykite veiksmą dar kartą.", + "queueRetriesExhausted": "Veiksmo nepavyko užbaigti po kelių bandymų. Bandykite veiksmą dar kartą.", + "queueAdmissionFailed": "Eilėje esančio veiksmo nepavyko priimti. Bandykite veiksmą dar kartą.", + "generic": "Eilėje esantis veiksmas nepavyko. Bandykite veiksmą dar kartą." + }, + "analysisMode": { + "auto": "Automatiškai", + "shallow": "Paviršinis", + "deep": "Išsamus" } }, "agents": { @@ -2428,7 +2511,8 @@ "addToFavorites": "Įtraukti {{name}} į mėgstamiausius", "removeFromFavorites": "Pašalinti {{name}} iš mėgstamiausių", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Sesijos modelis" }, "attachmentPreview": { "openFailedRetry": "Nepavyko atidaryti failo. Bandykite dar kartą.", @@ -2562,7 +2646,8 @@ }, "addCredits": { "cta": "Pridėti kreditų", - "description": "Pridėkite kreditų, kad naudojimas tęstųsi." + "description": "Pridėkite kreditų, kad naudojimas tęstųsi.", + "billingPage": "atsiskaitymų puslapis" }, "deviceSessions": { "couldNotLoad": "Nepavyko įkelti sesijų", @@ -2750,7 +2835,10 @@ "restoreFailed": "Nepavyko atkurti pirkinių. Bandykite dar kartą.", "purchaseFailed": "Nepavyko užbaigti pirkinio.", "purchaseStartFailed": "Nepavyko pradėti App Store pirkinio.", - "purchaseOwnedByAnotherAccount": "Kilo Pass šioje Apple paskyroje priklauso kitai Kilo paskyrai." + "purchaseOwnedByAnotherAccount": "Kilo Pass šioje Apple paskyroje priklauso kitai Kilo paskyrai.", + "couldNotConnectToAppStore": "Nepavyko prisijungti prie App Store. Patikrinkite ryšį ir bandykite dar kartą.", + "noMatchingProducts": "App Store negrąžino jokių atitinkančių Kilo Pass produktų.", + "purchaseMissingSignedTransaction": "App Store pirkinys neapėmė pasirašytos operacijos JWS." }, "consent": { "kilo": "Kilo", @@ -2846,7 +2934,8 @@ "needsWork": "Reikia patobulinti", "sorryTitle": "Mums gaila tai girdėti!", "sorryMessage": "Praneškite mums, ką reikia patobulinti. Už programą atsakingas inžinierius perskaito kiekvieną ataskaitą!", - "emailUs": "Parašykite mums" + "emailUs": "Parašykite mums", + "emailSubject": "mobiliosios programėlės atsiliepimai" }, "organization": { "boundary": { @@ -2863,7 +2952,17 @@ "emptyTitle": "Nėra kreditų veiklos", "expires": "Baigia galioti {{date}}", "title": "Kreditų veikla", - "transactionFallback": "Kreditų operacija" + "transactionFallback": "Kreditų operacija", + "category": { + "organization_custom": "Organizacijos pasirinktinis", + "parent_to_child_transfer_in": "Perkėlimas iš pirminės į dukterinę (gauta)", + "parent_to_child_transfer_out": "Perkėlimas iš pirminės į dukterinę (išsiųsta)", + "oss-sponsorship": "OSS rėmimas", + "oss-monthly-reset": "OSS mėnesinis atstatymas", + "team-topup-bonus-2025": "Komandos papildymo premija 2025", + "accounting_adjustment": "Apskaitos koregavimas", + "credits_expired": "Kreditai pasibaigė" + } }, "inviteMember": { "emailError": "Įveskite galiojantį el. pašto adresą", @@ -2880,12 +2979,17 @@ "emptyDescription": "Sąskaitos sugeneruojamos automatiškai kiekvieną atsiskaitymo ciklą ir čia atsiras, kai jūsų organizacija bus apmokėta.", "emptyTitle": "Nėra sąskaitų", "invoiceFallback": "Sąskaita", - "statusOpen": "Atidaryta", - "statusPaid": "Apmokėta", - "statusVoid": "Negaliojanti", "title": "Sąskaitos", "downloadFailed": "Nepavyko atsisiųsti sąskaitos. Patikrinkite ryšį ir bandykite dar kartą.", - "sharingUnavailable": "Bendrinimas šiame įrenginyje nepasiekiamas." + "sharingUnavailable": "Bendrinimas šiame įrenginyje nepasiekiamas.", + "status": { + "paid": "Apmokėta", + "open": "Atidaryta", + "void": "Negaliojanti", + "draft": "Juodraštis", + "uncollectible": "Neišieškoma", + "unknown": "Nežinoma" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Surinkti duomenys", "free": "Nemokama", - "couldNotUpdateFavorites": "Nepavyko atnaujinti mėgstamiausių" + "couldNotUpdateFavorites": "Nepavyko atnaujinti mėgstamiausių", + "thinkingEffort": { + "none": "Nėra", + "minimal": "Minimalus", + "low": "Žemas", + "medium": "Vidutinis", + "high": "Aukštas", + "xhigh": "Ypač aukštas", + "max": "Maksimalus" + } } } diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 50c5f165bc..381112c90a 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -580,7 +580,10 @@ "diff": { "selectedTapToChange": "Atlasīts {{label}}, pieskarieties, lai mainītu atlasi", "tapToComment": "{{label}}, pieskarieties, lai komentētu", - "truncationBanner": "Tiek rādīti pirmie {{limit}} no {{total}} mainītajiem failiem — GitHub API ierobežojums" + "truncationBanner": "Tiek rādīti pirmie {{limit}} no {{total}} mainītajiem failiem — GitHub API ierobežojums", + "statusAdded": "Pievienots", + "statusContext": "Konteksts", + "statusDeleted": "Dzēsts" }, "linkPasteClipboardEmpty": "Starpliktuve ir tukša", "linkPasteNotAPullRequest": "Nav GitHub pieprasījuma saite", @@ -594,6 +597,11 @@ "reviewNotSubmitted": "Šo pārskatu nevar iesniegt tādu, kāds tas ir. PR, iespējams, ir mainījies, vai arī jūs nevarat pārskatīt savu pull request.", "couldNotPostComment": "Neizdevās publicēt komentāru.", "couldNotSubmitReview": "Neizdevās iesniegt pārskatu. Pārbaudiet savienojumu un mēģiniet vēlreiz." + }, + "operation": { + "couldNotReply": "Neizdevās atbildēt.", + "couldNotCompleteAction": "Neizdevās pabeigt šo darbību.", + "mergeResultDefaultError": "GitHub nepabeidza apvienošanu." } }, "notifications": { @@ -829,7 +837,11 @@ "paymentPastDue": "Maksājums ir nokavēts. Lūdzu, atjauniniet savu maksājuma metodi.", "subscriptionCancels": "Abonements tiek atcelts {{date}}", "trialDaysRemaining": "Izmēģinājums: {{remaining}}", - "trialEndingSoon": "Izmēģinājums beidzas drīz: {{remaining}}" + "trialEndingSoon": "Izmēģinājums beidzas drīz: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Kas jauns", @@ -1198,7 +1210,8 @@ "strongArm": "Spēcīga roka", "talisman": "Talismans" }, - "remoteSpawnFilesNotSupported": "Šī instance nevar saņemt failus." + "remoteSpawnFilesNotSupported": "Šī instance nevar saņemt failus.", + "instanceSwitcherTitle": "KiloClaw instance" }, "codeReviewer": { "focusAreas": { @@ -1396,7 +1409,60 @@ "failed": "Neizdevās", "cancelled": "Atcelts", "interrupted": "Pārtraukts" - } + }, + "reviewStyle": { + "strict": "Stingrs", + "balanced": "Līdzsvarots", + "lenient": "Pieļaujošs", + "roast": "Roast" + }, + "focusArea": { + "security": "Drošība", + "performance": "Veiktspēja", + "bugs": "Kļūdas", + "style": "Stils", + "testing": "Testēšana", + "documentation": "Dokumentācija" + }, + "gateThreshold": { + "off": "Izslēgts", + "all": "Visi", + "warning": "Brīdinājumi", + "critical": "Kritiski" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Koda pārskatītājam nepieciešama uzmanība", + "description": "Koda pārskatītājs tika atspējots, jo Kilo nevar piekļūt šim repozitorijam ar aktīvu GitHub lietotnes instalāciju. Atjauniniet GitHub lietotnes instalāciju, pēc tam iespējojiet Koda pārskatītāju vēlreiz.", + "recoveryLabel": "Atjaunināt GitHub lietotni" + }, + "githubIpAllowList": { + "title": "Koda pārskatītājam nepieciešama uzmanība", + "description": "Koda pārskatītājs tika atspējots, jo šī GitHub organizācija izmanto IP atļauto sarakstu, kas bloķē Kilo. Sazinieties ar hi@kilocode.ai, pēc tam iespējojiet Koda pārskatītāju vēlreiz.", + "recoveryLabel": "Sazināties ar atbalstu" + }, + "gitlabProjectAccessRequired": { + "title": "Koda pārskatītājam nepieciešama uzmanība", + "description": "Koda pārskatītājs tika atspējots, jo Kilo nevar izveidot GitLab projekta piekļuves pilnvaru šim projektam. Piešķiriet Maintainer piekļuvi vai iespējojiet projekta piekļuves pilnvaras, pēc tam iespējojiet Koda pārskatītāju vēlreiz.", + "recoveryLabel": "Atjaunināt GitLab integrāciju" + }, + "byokInvalidKey": { + "title": "Koda pārskatītājam nepieciešama uzmanība", + "description": "Koda pārskatītājs tika atspējots, jo atlasītā BYOK API atslēga ir nederīga, atsaukta vai tai trūkst atļaujas. Atjauniniet atslēgu vai izvēlieties citu modeli, pēc tam iespējojiet Koda pārskatītāju vēlreiz.", + "recoveryLabel": "Atjaunināt BYOK iestatījumus" + }, + "selectedModelUnavailable": { + "title": "Koda pārskatītājam nepieciešama uzmanība", + "description": "Koda pārskatītājs tika atspējots, jo atlasītais modelis nav pieejams Cloud Agent sesijām. Izvēlieties pieejamu modeli, pēc tam iespējojiet Koda pārskatītāju vēlreiz.", + "recoveryLabel": "Atjaunināt Koda pārskatītāja iestatījumus" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Koda pārskatītājam nepieciešama uzmanība", + "description": "Koda pārskatītājs tika atspējots pēc trim repozitorija klonēšanas noildzēm šodien. Sazinieties ar hi@kilocode.ai, pēc tam iespējojiet Koda pārskatītāju vēlreiz.", + "recoveryLabel": "Sazināties ar atbalstu" + } + }, + "unknownError": "Nezināma kļūda" }, "securityAgent": { "filter": { @@ -1940,6 +2006,23 @@ "belowThreshold": "Atradums ir zem automātiskās smaguma sliekšņa. Manuālā labošana joprojām var sākties, kad drošības vārti ir izturēti.", "beforeEnablement": "Analīze pabeigta pirms automātiskās labošanas iespējošanas. Manuālā labošana joprojām var sākties, kad drošības vārti ir izturēti.", "generic": "Labošana nav pieejama šim atradumam." + }, + "commandFailure": { + "ownerCapReached": "Analīzes kapacitāte ir pilna. Pagaidiet, līdz aktīvā analīze beidzas, pēc tam mēģiniet vēlreiz.", + "githubTokenUnavailable": "GitHub autorizācijai nepieciešama uzmanība. Atkārtoti autorizējiet GitHub lietotni, pēc tam mēģiniet vēlreiz.", + "githubAuthInvalid": "GitHub autorizācijai nepieciešama uzmanība. Atkārtoti autorizējiet GitHub lietotni, pēc tam mēģiniet vēlreiz.", + "findingUnavailable": "Atradums vairs nav pieejams. Atsvaidziniet atradumus un mēģiniet vēlreiz, ja tas paliek atvērts.", + "repositoryUnavailable": "Repozitorijs vairs nav pieejams GitHub lietotnei. Atsvaidziniet repozitorija piekļuvi, pēc tam mēģiniet vēlreiz.", + "invalidDismissTarget": "Atradumu nevar noraidīt, jo tā Dependabot mērķis ir nederīgs.", + "commandStalled": "Rindā esošā darbība nepabeidzās laikā. Mēģiniet darbību vēlreiz.", + "queueRetriesExhausted": "Darbību nevarēja pabeigt pēc vairākiem mēģinājumiem. Mēģiniet darbību vēlreiz.", + "queueAdmissionFailed": "Rindā esošo darbību nevarēja pieņemt. Mēģiniet darbību vēlreiz.", + "generic": "Rindā esošā darbība neizdevās. Mēģiniet darbību vēlreiz." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Seķla", + "deep": "Dziļa" } }, "agents": { @@ -2409,7 +2492,8 @@ "addToFavorites": "Pievienot {{name}} izlasei", "removeFromFavorites": "Noņemt {{name}} no izlases", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Vid" + "thinkingEffortMedium": "Vid", + "sessionModel": "Sesijas modelis" }, "attachmentPreview": { "openFailedRetry": "Neizdevās atvērt failu. Lūdzu, mēģini vēlreiz.", @@ -2542,7 +2626,8 @@ }, "addCredits": { "cta": "Pievienot kredītus", - "description": "Pievieno kredītus, lai lietojums turpinātos." + "description": "Pievieno kredītus, lai lietojums turpinātos.", + "billingPage": "norēķinu lapa" }, "deviceSessions": { "couldNotLoad": "Neizdevās ielādēt sesijas", @@ -2730,7 +2815,10 @@ "restoreFailed": "Neizdevās atjaunot pirkumus. Mēģiniet vēlreiz.", "purchaseFailed": "Neizdevās pabeigt pirkumu.", "purchaseStartFailed": "Neizdevās sākt App Store pirkumu.", - "purchaseOwnedByAnotherAccount": "Kilo Pass šajā Apple kontā pieder citam Kilo kontam." + "purchaseOwnedByAnotherAccount": "Kilo Pass šajā Apple kontā pieder citam Kilo kontam.", + "couldNotConnectToAppStore": "Neizdevās savienoties ar App Store. Pārbaudiet savienojumu un mēģiniet vēlreiz.", + "noMatchingProducts": "App Store neatgrieza atbilstošus Kilo Pass produktus.", + "purchaseMissingSignedTransaction": "App Store pirkums neietvēra parakstītu darījuma JWS." }, "consent": { "kilo": "Kilo", @@ -2826,7 +2914,8 @@ "needsWork": "Vajag uzlabojumus", "sorryTitle": "Mums ir žēl to dzirdēt!", "sorryMessage": "Lūdzu, ļauj mums uzzināt, kas jāuzlabo. Inženieris, kurš atbild par lietotni, izlasa katru ziņojumu!", - "emailUs": "Raksti mums" + "emailUs": "Raksti mums", + "emailSubject": "mobilās lietotnes atsauksme" }, "organization": { "boundary": { @@ -2843,7 +2932,17 @@ "emptyTitle": "Nav kredītu aktivitātes", "expires": "Beidzas {{date}}", "title": "Kredītu aktivitāte", - "transactionFallback": "Kredīta darījums" + "transactionFallback": "Kredīta darījums", + "category": { + "organization_custom": "Organizācijas pielāgotais", + "parent_to_child_transfer_in": "Pārskaitījums no vecāka bērnam (ienākošais)", + "parent_to_child_transfer_out": "Pārskaitījums no vecāka bērnam (izejošais)", + "oss-sponsorship": "OSS sponsorēšana", + "oss-monthly-reset": "OSS ikmēneša atiestatīšana", + "team-topup-bonus-2025": "Komandas papildinājuma bonuss 2025", + "accounting_adjustment": "Grāmatvedības korekcija", + "credits_expired": "Kredīti beigušies" + } }, "inviteMember": { "emailError": "Ievadi derīgu e-pasta adresi", @@ -2860,12 +2959,17 @@ "emptyDescription": "Rēķini tiek ģenerēti automātiski katrā norēķinu ciklā un parādīsies šeit, kad tava organizācija tiks norēķināta.", "emptyTitle": "Nav rēķinu", "invoiceFallback": "Rēķins", - "statusOpen": "Atvērts", - "statusPaid": "Apmaksāts", - "statusVoid": "Anulēts", "title": "Rēķini", "downloadFailed": "Neizdevās lejupielādēt rēķinu. Pārbaudiet savienojumu un mēģiniet vēlreiz.", - "sharingUnavailable": "Kopīgošana šajā ierīcē nav pieejama." + "sharingUnavailable": "Kopīgošana šajā ierīcē nav pieejama.", + "status": { + "paid": "Apmaksāts", + "open": "Atvērts", + "void": "Anulēts", + "draft": "Melnraksts", + "uncollectible": "Nepiedzenams", + "unknown": "Nezināms" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Apkopotie dati", "free": "Bezmaksas", - "couldNotUpdateFavorites": "Neizdevās atjaunināt izlasi" + "couldNotUpdateFavorites": "Neizdevās atjaunināt izlasi", + "thinkingEffort": { + "none": "Nav", + "minimal": "Minimāla", + "low": "Zema", + "medium": "Vidēja", + "high": "Augsta", + "xhigh": "Īpaši augsta", + "max": "Maksimāla" + } } } diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index 506689b46f..564ad958ef 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Voafidy {{label}}, tsindrio mba hanova ny fisafidianana", "tapToComment": "{{label}}, tsindrio mba hanehoana hevitra", - "truncationBanner": "Mampiseho ny {{limit}} voalohany amin'ny {{total}} rakitra novaina — fetran'ny API GitHub" + "truncationBanner": "Mampiseho ny {{limit}} voalohany amin'ny {{total}} rakitra novaina — fetran'ny API GitHub", + "statusAdded": "Nampiana", + "statusContext": "Contexte", + "statusDeleted": "Voafafa" }, "linkPasteClipboardEmpty": "Foana ny tahiry", "linkPasteNotAPullRequest": "Tsy rohy pull request amin'ny GitHub io", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Tsy azo alefa araka izao ity fandinihana ity. Mety niova ny PR, na tsy afaka mandinika ny pull request anao manokana ianao.", "couldNotPostComment": "Tsy afaka nametraka hevitra.", "couldNotSubmitReview": "Tsy afaka nandefa ny fandinihana. Jereo ny fifandraisanao ary andramana indray." + }, + "operation": { + "couldNotReply": "Tsy afaka namaly.", + "couldNotCompleteAction": "Tsy afaka nahavita ity hetsika ity.", + "mergeResultDefaultError": "Tsy nahavita nampirina ny GitHub." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Tara ny fandoavana. Havaozy ny fomba fandoavanao.", "subscriptionCancels": "Hafaomby ny famandrihana amin'ny {{date}}", "trialDaysRemaining": "Andrana: {{remaining}}", - "trialEndingSoon": "Hifarana tsy ho ela ny andrana: {{remaining}}" + "trialEndingSoon": "Hifarana tsy ho ela ny andrana: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Inona ny vaovao", @@ -1189,7 +1201,8 @@ "strongArm": "Sandry matanjaka", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Tsy afaka mandray rakitra ity instance ity." + "remoteSpawnFilesNotSupported": "Tsy afaka mandray rakitra ity instance ity.", + "instanceSwitcherTitle": "Instance KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Tsy nahomby", "cancelled": "Nofoanana", "interrupted": "Voasakantsakana" - } + }, + "reviewStyle": { + "strict": "Henjana", + "balanced": "Voalanjalanja", + "lenient": "Malefaka", + "roast": "Roast" + }, + "focusArea": { + "security": "Fiarovana", + "performance": "Fahombiazana", + "bugs": "Lesoka", + "style": "Fomba", + "testing": "Fitsapana", + "documentation": "Fanamarihana" + }, + "gateThreshold": { + "off": "Maty", + "all": "Rehetra", + "warning": "Fampitandremana", + "critical": "Zava-dehibe" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Mila jerena ny Code Reviewer", + "description": "Nofoanana ny Code Reviewer satria tsy afaka miditra amin'ity repository ity i Kilo amin'ny fametrahana GitHub App mavitrika. Havaozy ny fametrahana GitHub App, dia avereno alefa ny Code Reviewer.", + "recoveryLabel": "Havaozy ny GitHub App" + }, + "githubIpAllowList": { + "title": "Mila jerena ny Code Reviewer", + "description": "Nofoanana ny Code Reviewer satria ity fikambanana GitHub ity dia mampiasa lisitra avelan'ny IP izay manakana an'i Kilo. Mifandraisa amin'ny hi@kilocode.ai raha mila fanampiana, dia avereno alefa ny Code Reviewer.", + "recoveryLabel": "Mifandraisa amin'ny support" + }, + "gitlabProjectAccessRequired": { + "title": "Mila jerena ny Code Reviewer", + "description": "Nofoanana ny Code Reviewer satria tsy afaka mamorona GitLab Project Access Token ho an'ity tetikasa ity i Kilo. Omeo fidirana Maintainer na alefaso ny Project Access Tokens, dia avereno alefa ny Code Reviewer.", + "recoveryLabel": "Havaozy ny fampidirana GitLab" + }, + "byokInvalidKey": { + "title": "Mila jerena ny Code Reviewer", + "description": "Nofoanana ny Code Reviewer satria tsy manan-kery, voafoana, na tsy ampy alalana ny BYOK API key voafidy. Havaozy ny key na fidio modely hafa, dia avereno alefa ny Code Reviewer.", + "recoveryLabel": "Havaozy ny fika BYOK" + }, + "selectedModelUnavailable": { + "title": "Mila jerena ny Code Reviewer", + "description": "Nofoanana ny Code Reviewer satria tsy misy ho an'ny session cloud agent ny modely voafidy. Fidio modely azo ampiasaina, dia avereno alefa ny Code Reviewer.", + "recoveryLabel": "Havaozy ny fika Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Mila jerena ny Code Reviewer", + "description": "Nofoanana ny Code Reviewer rehefa nisy timeout telo tamin'ny clone repository androany. Mifandraisa amin'ny hi@kilocode.ai raha mila fanampiana, dia avereno alefa ny Code Reviewer.", + "recoveryLabel": "Mifandraisa amin'ny support" + } + }, + "unknownError": "Hadisoana tsy fantatra" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Ambany noho ny fetra hamafy mandeha ho azy ny fikarohana. Mbola afaka manomboka ny fanarenana tanana rehefa mandalo ny vavahady fiarovana.", "beforeEnablement": "Vita ny famakafakana talohan'ny nahafahan'ny fanarenana mandeha ho azy. Mbola afaka manomboka ny fanarenana tanana rehefa mandalo ny vavahady fiarovana.", "generic": "Tsy misy ny fanarenana ho an'ity fikarohana ity." + }, + "commandFailure": { + "ownerCapReached": "Feno ny fahafahana famakafakana. Andraso ho vita ny famakafakana mavitrika, dia andramana indray.", + "githubTokenUnavailable": "Mila jerena ny fanomezan-dàlana GitHub. Avereno omena alalana ny GitHub App, dia andramana indray.", + "githubAuthInvalid": "Mila jerena ny fanomezan-dàlana GitHub. Avereno omena alalana ny GitHub App, dia andramana indray.", + "findingUnavailable": "Tsy misy intsony ny fikarohana. Havaozy ny fikarohana ary andramana indray raha mbola misokatra izy.", + "repositoryUnavailable": "Tsy misy intsony ny repository ho an'ny GitHub App. Havaozy ny fidirana amin'ny repository, dia andramana indray.", + "invalidDismissTarget": "Tsy azo esorina ny fikarohana satria tsy manan-kery ny target Dependabot-ny.", + "commandStalled": "Tsy vita ara-potoana ny hetsika voalahatra. Avereno ny hetsika.", + "queueRetriesExhausted": "Tsy afaka nahavita ny hetsika aorian'ny andrana maromaro. Avereno ny hetsika.", + "queueAdmissionFailed": "Tsy afaka noraisina ny hetsika voalahatra. Avereno ny hetsika.", + "generic": "Tsy nahomby ny hetsika voalahatra. Avereno ny hetsika." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Marivo", + "deep": "Lalina" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Ampio {{name}} amin'ny ankafizinao", "removeFromFavorites": "Esory {{name}} amin'ny ankafizinao", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Modely Session" }, "attachmentPreview": { "openFailedRetry": "Tsy nahomby ny fanokafana rakitra. Andramo indray azafady.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Ampio crédits", - "description": "Ampio crédits mba hitohizan'ny fampiasana." + "description": "Ampio crédits mba hitohizan'ny fampiasana.", + "billingPage": "pejy fandoavana" }, "deviceSessions": { "couldNotLoad": "Tsy afaka nampidirina ny session", @@ -2710,7 +2795,10 @@ "restoreFailed": "Tsy nahomby ny famerenana ny fividianana. Andramana indray.", "purchaseFailed": "Tsy nahomby ny famitana ny fividianana.", "purchaseStartFailed": "Tsy nahomby ny fanombohana ny fividianana App Store.", - "purchaseOwnedByAnotherAccount": "Ny Kilo Pass amin'ity Apple Account ity dia an'ny kaonty Kilo hafa." + "purchaseOwnedByAnotherAccount": "Ny Kilo Pass amin'ity Apple Account ity dia an'ny kaonty Kilo hafa.", + "couldNotConnectToAppStore": "Tsy afaka nifandray tamin'ny App Store. Jereo ny fifandraisanao ary andramana indray.", + "noMatchingProducts": "Tsy niverina avy amin'ny App Store ny vokatra Kilo Pass mifanaraka.", + "purchaseMissingSignedTransaction": "Tsy nampidirina tamin'ny fividianana App Store ny JWS transaction sonia." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Mila fanatsarana", "sorryTitle": "Malahelo izahay mandre izany!", "sorryMessage": "Ampahafantaro anay azafady izay tokony ho tsara kokoa. Mamaky ny tatitra rehetra ny injenieran'ny app!", - "emailUs": "Alefaso email" + "emailUs": "Alefaso email", + "emailSubject": "fanehoan-kevitra momba ny app mobile" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Tsy misy hetsika crédit", "expires": "Lany daty {{date}}", "title": "Hetsika crédit", - "transactionFallback": "Famindrana crédit" + "transactionFallback": "Famindrana crédit", + "category": { + "organization_custom": "Manokana ny fikambanana", + "parent_to_child_transfer_in": "Famindrana avy amin'ny ray aman-dreny ho an'ny zanaka (miditra)", + "parent_to_child_transfer_out": "Famindrana avy amin'ny ray aman-dreny ho an'ny zanaka (mivoaka)", + "oss-sponsorship": "Sponsorship OSS", + "oss-monthly-reset": "Famerenana isam-bolana OSS", + "team-topup-bonus-2025": "Bonus top-up ekipa 2025", + "accounting_adjustment": "Fanitsiana kaonty", + "credits_expired": "Lany daty ny credits" + } }, "inviteMember": { "emailError": "Ampidiro adiresy email sahaza", @@ -2840,12 +2939,17 @@ "emptyDescription": "Vokarina ho azy isaky ny tsingerin'ny faktiora ny faktiora ary hiseho eto rehefa voahazo faktiora ny orinasanao.", "emptyTitle": "Tsy misy faktiora", "invoiceFallback": "Faktiora", - "statusOpen": "Misokatra", - "statusPaid": "Voaloa", - "statusVoid": "Nofoana", "title": "Faktiora", "downloadFailed": "Tsy afaka nampidina ny faktiora. Jereo ny fifandraisanao ary andramana indray.", - "sharingUnavailable": "Tsy misy ny fifampizarana amin'ity fitaovana ity." + "sharingUnavailable": "Tsy misy ny fifampizarana amin'ity fitaovana ity.", + "status": { + "paid": "Voaloa", + "open": "Misokatra", + "void": "Nofoana", + "draft": "Draft", + "uncollectible": "Tsy azo angonina", + "unknown": "Tsy fantatra" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Angona voaangona", "free": "Maimaimpoana", - "couldNotUpdateFavorites": "Tsy afaka nanavao ny ankafizina" + "couldNotUpdateFavorites": "Tsy afaka nanavao ny ankafizina", + "thinkingEffort": { + "none": "Tsy misy", + "minimal": "Kely indrindra", + "low": "Ambany", + "medium": "Antonony", + "high": "Avo", + "xhigh": "Avo be", + "max": "Ambony indrindra" + } } } diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index 6ce3be75a1..27fd3adf28 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Kua kōwhiria {{label}}, pāwhiria kia huri i te kōwhiringa", "tapToComment": "{{label}}, pāwhiria kia kōrero", - "truncationBanner": "E whakaatu ana i ngā {{limit}} tuatahi o ngā {{total}} kōnae kua hurihia — te rohe API a GitHub" + "truncationBanner": "E whakaatu ana i ngā {{limit}} tuatahi o ngā {{total}} kōnae kua hurihia — te rohe API a GitHub", + "statusAdded": "Kua tāpiritia", + "statusContext": "Horopaki", + "statusDeleted": "Kua mukua" }, "linkPasteClipboardEmpty": "Kei te putua tonu te papapātuhi", "linkPasteNotAPullRequest": "Ehara tēnei i te hononga GitHub pull request", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Kāore e taea te tuku tēnei arotake pēnei ana. Kua huri pea te PR, kāore rānei e taea e koe te arotake i tō ake tono huna.", "couldNotPostComment": "Kāore i taea te whakairi kōrero.", "couldNotSubmitReview": "Kāore i taea te tuku arotake. Tirohia tō hononga, ka whakamātau anō." + }, + "operation": { + "couldNotReply": "Kāore i taea te whakahoki.", + "couldNotCompleteAction": "Kāore i taea te whakaoti tēnei mahi.", + "mergeResultDefaultError": "Kāore i whakaotia e GitHub te whakakotahi." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Kua tōmuri te utu. Whakahōutia tō tikanga utu.", "subscriptionCancels": "Ka whakakore te ohohenga i {{date}}", "trialDaysRemaining": "Whakamātau: {{remaining}}", - "trialEndingSoon": "Whakamātau ka mutu tata nei: {{remaining}}" + "trialEndingSoon": "Whakamātau ka mutu tata nei: {{remaining}}", + "planName": { + "commit": "Whakapūmau", + "standard": "Paerewa" + } }, "changelog": { "title": "He aha te mea hou", @@ -1189,7 +1201,8 @@ "strongArm": "Ringa kaha", "talisman": "Tāpui" }, - "remoteSpawnFilesNotSupported": "Kāore e taea e tēnei tauārai te whiwhi kōnae." + "remoteSpawnFilesNotSupported": "Kāore e taea e tēnei tauārai te whiwhi kōnae.", + "instanceSwitcherTitle": "Tauira KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "I rahua", "cancelled": "Kua whakakorea", "interrupted": "I haukotia" - } + }, + "reviewStyle": { + "strict": "Kaha", + "balanced": "Whakaōrite", + "lenient": "Ngāwari", + "roast": "Roast" + }, + "focusArea": { + "security": "Haumarutanga", + "performance": "Mahinga", + "bugs": "Ngā Hapa", + "style": "Te Āhua", + "testing": "Whakamātautau", + "documentation": "Tuhinga" + }, + "gateThreshold": { + "off": "Weto", + "all": "Katoa", + "warning": "Whakatūpato", + "critical": "Tino kino" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Me aro ki te Kaiarotake Waehere", + "description": "I whakaweto te Kaiarotake Waehere nā te mea kāore e taea e Kilo te uru ki tēnei pūranga me tētahi tāutanga Taupānga GitHub hōhi. Whakahoutia te tāutanga Taupānga GitHub, kātahi whakahohe anō i te Kaiarotake Waehere.", + "recoveryLabel": "Whakahou Taupānga GitHub" + }, + "githubIpAllowList": { + "title": "Me aro ki te Kaiarotake Waehere", + "description": "I whakaweto te Kaiarotake Waehere nā te mea ka whakamahi tēnei whakahaere GitHub i tētahi rārangi whakaaetanga IP e ārai ana i a Kilo. Whakapā ki hi@kilocode.ai mō te āwhina, kātahi whakahohe anō i te Kaiarotake Waehere.", + "recoveryLabel": "Whakapā ki te tautoko" + }, + "gitlabProjectAccessRequired": { + "title": "Me aro ki te Kaiarotake Waehere", + "description": "I whakaweto te Kaiarotake Waehere nā te mea kāore e taea e Kilo te hanga GitLab Project Access Token mō tēnei kaupapa. Hoatu te uru Maintainer, whakahohe rānei i ngā Project Access Tokens, kātahi whakahohe anō i te Kaiarotake Waehere.", + "recoveryLabel": "Whakahou te tāhei GitLab" + }, + "byokInvalidKey": { + "title": "Me aro ki te Kaiarotake Waehere", + "description": "I whakaweto te Kaiarotake Waehere nā te mea kāore e tika ana, kua unuhia, kāore rānei e whai whakaaetanga te kī API BYOK i kōwhiria. Whakahoutia te kī, kōwhiri rānei i tētahi atu tauira, kātahi whakahohe anō i te Kaiarotake Waehere.", + "recoveryLabel": "Whakahou ngā tautuhinga BYOK" + }, + "selectedModelUnavailable": { + "title": "Me aro ki te Kaiarotake Waehere", + "description": "I whakaweto te Kaiarotake Waehere nā te mea kāore e wātea ana te tauira i kōwhiria mō ngā wātūtū kaihoko kapua. Kōwhiria tētahi tauira e wātea ana, kātahi whakahohe anō i te Kaiarotake Waehere.", + "recoveryLabel": "Whakahou ngā tautuhinga Kaiarotake Waehere" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Me aro ki te Kaiarotake Waehere", + "description": "I whakaweto te Kaiarotake Waehere i muri i ngā tārua pūranga e toru i pau te wā i te rā nei. Whakapā ki hi@kilocode.ai mō te āwhina, kātahi whakahohe anō i te Kaiarotake Waehere.", + "recoveryLabel": "Whakapā ki te tautoko" + } + }, + "unknownError": "Hapa kāore e mōhiotia" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Kei raro te kitea i te paepae kino aunoa. Ka taea tonu te tīmata i te whakatika ā-ringa ina tika ngā keeti haumaru.", "beforeEnablement": "I oti te tātari i mua i te whakahohenga o te whakatika aunoa. Ka taea tonu te tīmata i te whakatika ā-ringa ina tika ngā keeti haumaru.", "generic": "Kāore e wātea ana te whakapai mō tēnei kitea." + }, + "commandFailure": { + "ownerCapReached": "Kua kī te rahi tātari. Tatari kia mutu tētahi tātari hōhi, kātahi whakamātau anō.", + "githubTokenUnavailable": "Me aro ki te whakamanatanga GitHub. Whakamana anō i te Taupānga GitHub, kātahi whakamātau anō.", + "githubAuthInvalid": "Me aro ki te whakamanatanga GitHub. Whakamana anō i te Taupānga GitHub, kātahi whakamātau anō.", + "findingUnavailable": "Kāore e wātea ana te kitea. Whakahou i ngā kitea, whakamātau anō inā noho tuwhera tonu.", + "repositoryUnavailable": "Kāore e wātea ana te pūranga ki te Taupānga GitHub. Whakahou i te uru pūranga, kātahi whakamātau anō.", + "invalidDismissTarget": "Kāore e taea te whakakore i te kitea nā te mea kāore e tika ana tana whāinga Dependabot.", + "commandStalled": "Kāore i mutu i te wā tika te mahi kua tūtaki. Whakamātau anō i te mahi.", + "queueRetriesExhausted": "Kāore i taea te whakaoti i te mahi i muri i ētahi whakamātaunga. Whakamātau anō i te mahi.", + "queueAdmissionFailed": "Kāore i taea te whakaae i te mahi kua tūtaki. Whakamātau anō i te mahi.", + "generic": "I rahua te mahi kua tūtaki. Whakamātau anō i te mahi." + }, + "analysisMode": { + "auto": "Aunoa", + "shallow": "Pāpaku", + "deep": "Hōhonu" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Tāpiri {{name}} ki ngā makau", "removeFromFavorites": "Tangohia {{name}} i ngā makau", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Te tauira wātūtū" }, "attachmentPreview": { "openFailedRetry": "Kāore i taea te whakatuwhera te kōnae. Tēnā whakamātau anō.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Tāpiri whiwhinga", - "description": "Tāpiri whiwhinga kia haere tonu te whakamahinga." + "description": "Tāpiri whiwhinga kia haere tonu te whakamahinga.", + "billingPage": "te whārangi utunga" }, "deviceSessions": { "couldNotLoad": "Kāore i taea te uta ngā wātū", @@ -2710,7 +2795,10 @@ "restoreFailed": "I rahua te whakaora i ngā hokonga. Whakamātau anō.", "purchaseFailed": "I rahua te whakaoti i te hokonga.", "purchaseStartFailed": "I rahua te tīmata i te hokonga App Store.", - "purchaseOwnedByAnotherAccount": "Ko te Kilo Pass o tēnei Pūkete Apple nō tētahi atu pūkete Kilo." + "purchaseOwnedByAnotherAccount": "Ko te Kilo Pass o tēnei Pūkete Apple nō tētahi atu pūkete Kilo.", + "couldNotConnectToAppStore": "Kāore i taea te hono ki te App Store. Tirohia tō hononga, whakamātau anō.", + "noMatchingProducts": "Kāore he hua Kilo Pass i hoki mai i te App Store e ōrite ana.", + "purchaseMissingSignedTransaction": "Kāore i whakauruhia he JWS tauwhitinga kua hainatia ki te hokonga App Store." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Me mahi anō", "sorryTitle": "E aroha ana mātou!", "sorryMessage": "Tēnā whakamōhio mai ki a mātou te mea hei whakapai. Ka pānui te pūkaha o te taupānga i ia pūrongo!", - "emailUs": "Īmēra mai" + "emailUs": "Īmēra mai", + "emailSubject": "urupare taupānga pūkoro" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Kāore he mahi whiwhinga", "expires": "Ka pau {{date}}", "title": "Ngā mahi whiwhinga", - "transactionFallback": "Te whakawhitinga whiwhinga" + "transactionFallback": "Te whakawhitinga whiwhinga", + "category": { + "organization_custom": "Whakaritenga whakahaere", + "parent_to_child_transfer_in": "Whakawhitinga matua ki te tamaiti (tomo)", + "parent_to_child_transfer_out": "Whakawhitinga matua ki te tamaiti (putanga)", + "oss-sponsorship": "Te tautoko OSS", + "oss-monthly-reset": "Te whakataka anō ā-marama OSS", + "team-topup-bonus-2025": "Te top-up bonus rōpū 2025", + "accounting_adjustment": "Te whakatikatika kaute", + "credits_expired": "Kua pau ngā whiwhinga" + } }, "inviteMember": { "emailError": "Whakaurua he wāhitau īmēra tika", @@ -2840,12 +2939,17 @@ "emptyDescription": "Ka hangaia ngā nama ā-unahia i ia huringa utu, ka puta ki konei ina utua tō whakahaere.", "emptyTitle": "Kāore he nama", "invoiceFallback": "Nama", - "statusOpen": "Tuwhera", - "statusPaid": "Kua utua", - "statusVoid": "Kore", "title": "Ngā nama", "downloadFailed": "Kāore i taea te tango i te nama. Tirohia tō hononga, ka whakamātau anō.", - "sharingUnavailable": "Kāore e wātea ana te tohatoha i tēnei pūrere." + "sharingUnavailable": "Kāore e wātea ana te tohatoha i tēnei pūrere.", + "status": { + "paid": "Kua utua", + "open": "Tuwhera", + "void": "Kore", + "draft": "Hukitanga", + "uncollectible": "Kāore e taea te kohi", + "unknown": "Kāore e mōhiotia" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Kua kohia ngā raraunga", "free": "Koreutu", - "couldNotUpdateFavorites": "Kāore i taea te whakahou i ngā makau" + "couldNotUpdateFavorites": "Kāore i taea te whakahou i ngā makau", + "thinkingEffort": { + "none": "Kore", + "minimal": "Iti rawa", + "low": "Iti", + "medium": "Waenga", + "high": "Teitei", + "xhigh": "Tino teitei", + "max": "Mōrahi" + } } } diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index a9c1ac6452..86057058ee 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Избрано {{label}}, допрете за да го промените изборот", "tapToComment": "{{label}}, допрете за да коментирате", - "truncationBanner": "Прикажува првите {{limit}} од {{total}} изменети датотеки — GitHub API лимит" + "truncationBanner": "Прикажува првите {{limit}} од {{total}} изменети датотеки — GitHub API лимит", + "statusAdded": "Додадено", + "statusContext": "Контекст", + "statusDeleted": "Избришано" }, "linkPasteClipboardEmpty": "Таблата со клипборд е празна", "linkPasteNotAPullRequest": "Ова не е линк до GitHub pull request", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Овој преглед не може да се испрати во сегашната состојба. PR-от можеби е променет, или не можете да прегледувате сопствено барање за повлекување.", "couldNotPostComment": "Не можеше да се објави коментар.", "couldNotSubmitReview": "Не можеше да се испрати преглед. Проверете ја вашата врска и обидете се повторно." + }, + "operation": { + "couldNotReply": "Не можеше да се одговори.", + "couldNotCompleteAction": "Не можеше да се заврши оваа акција.", + "mergeResultDefaultError": "GitHub не го заврши спојувањето." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Плаќањето е задоцнето. Ажурирај го начинот на плаќање.", "subscriptionCancels": "Претплатата се откажува {{date}}", "trialDaysRemaining": "Проба: {{remaining}}", - "trialEndingSoon": "Пробата наскоро завршува: {{remaining}}" + "trialEndingSoon": "Пробата наскоро завршува: {{remaining}}", + "planName": { + "commit": "Посвети", + "standard": "Standard" + } }, "changelog": { "title": "Што има ново", @@ -1189,7 +1201,8 @@ "strongArm": "Силна рака", "talisman": "Талисман" }, - "remoteSpawnFilesNotSupported": "Оваа инстанца не може да прима датотеки." + "remoteSpawnFilesNotSupported": "Оваа инстанца не може да прима датотеки.", + "instanceSwitcherTitle": "KiloClaw инстанца" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Не успеа", "cancelled": "Откажано", "interrupted": "Прекинато" - } + }, + "reviewStyle": { + "strict": "Строго", + "balanced": "Избалансирано", + "lenient": "Благо", + "roast": "Roast" + }, + "focusArea": { + "security": "Безбедност", + "performance": "Перформанси", + "bugs": "Багови", + "style": "Стил", + "testing": "Тестирање", + "documentation": "Документација" + }, + "gateThreshold": { + "off": "Исклучено", + "all": "Сите", + "warning": "Предупредување", + "critical": "Критично" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Потребно е внимание за Code Reviewer", + "description": "Code Reviewer е оневозможен затоа што Kilo не може да пристапи до ова складиште со активна GitHub App инсталација. Ажурирајте ја GitHub App инсталацијата, па повторно овозможете го Code Reviewer.", + "recoveryLabel": "Ажурирај GitHub App" + }, + "githubIpAllowList": { + "title": "Потребно е внимание за Code Reviewer", + "description": "Code Reviewer е оневозможен затоа што оваа GitHub организација користи IP дозволена листа што го блокира Kilo. Контактирајте hi@kilocode.ai за помош, па повторно овозможете го Code Reviewer.", + "recoveryLabel": "Контактирај поддршка" + }, + "gitlabProjectAccessRequired": { + "title": "Потребно е внимание за Code Reviewer", + "description": "Code Reviewer е оневозможен затоа што Kilo не може да создаде GitLab Project Access Token за овој проект. Дајте Maintainer пристап или овозможете Project Access Tokens, па повторно овозможете го Code Reviewer.", + "recoveryLabel": "Ажурирај GitLab интеграција" + }, + "byokInvalidKey": { + "title": "Потребно е внимание за Code Reviewer", + "description": "Code Reviewer е оневозможен затоа што избраниот BYOK API клуч е невалиден, повлечен или нема дозвола. Ажурирајте го клучот или изберете друг модел, па повторно овозможете го Code Reviewer.", + "recoveryLabel": "Ажурирај BYOK поставки" + }, + "selectedModelUnavailable": { + "title": "Потребно е внимание за Code Reviewer", + "description": "Code Reviewer е оневозможен затоа што избраниот модел не е достапен за сесии на облачни агенти. Изберете достапен модел, па повторно овозможете го Code Reviewer.", + "recoveryLabel": "Ажурирај Code Reviewer поставки" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Потребно е внимание за Code Reviewer", + "description": "Code Reviewer е оневозможен по три истекувања на време за клонирање на складиште денес. Контактирајте hi@kilocode.ai за помош, па повторно овозможете го Code Reviewer.", + "recoveryLabel": "Контактирај поддршка" + } + }, + "unknownError": "Непозната грешка" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Наодот е под автоматскиот праг на сериозност. Рачната санација сепак може да започне кога безбедносните пречки ќе бидат поминати.", "beforeEnablement": "Анализата е завршена пред да се овозможи автоматската санација. Рачната санација сепак може да започне кога безбедносните пречки ќе бидат поминати.", "generic": "Санирањето е недостапно за овој наод." + }, + "commandFailure": { + "ownerCapReached": "Капацитетот за анализа е полн. Почекајте активната анализа да заврши, па обидете се повторно.", + "githubTokenUnavailable": "Потребно е внимание за GitHub авторизацијата. Повторно авторизирајте го GitHub App, па обидете се повторно.", + "githubAuthInvalid": "Потребно е внимание за GitHub авторизацијата. Повторно авторизирајте го GitHub App, па обидете се повторно.", + "findingUnavailable": "Наодот повеќе не е достапен. Освежете ги наодите и обидете се повторно ако остане отворен.", + "repositoryUnavailable": "Складиштето повеќе не е достапно за GitHub App. Освежете го пристапот до складиштето, па обидете се повторно.", + "invalidDismissTarget": "Наодот не може да се отфрли затоа што неговата Dependabot цел е невалидна.", + "commandStalled": "Поставената акција не заврши навреме. Повторете ја акцијата.", + "queueRetriesExhausted": "Акцијата не можеше да се заврши по неколку обиди. Повторете ја акцијата.", + "queueAdmissionFailed": "Поставената акција не можеше да се прифати. Повторете ја акцијата.", + "generic": "Поставената акција не успеа. Повторете ја акцијата." + }, + "analysisMode": { + "auto": "Автоматски", + "shallow": "Плитко", + "deep": "Длабоко" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Додади {{name}} во омилени", "removeFromFavorites": "Отстрани {{name}} од омилени", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Модел на сесија" }, "attachmentPreview": { "openFailedRetry": "Не успеав да ја отворам датотеката. Обидете се повторно.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Додади кредити", - "description": "Додајте кредити за да ја одржите употребата активна." + "description": "Додајте кредити за да ја одржите употребата активна.", + "billingPage": "страница за наплата" }, "deviceSessions": { "couldNotLoad": "Не можев да ги вчитам сесиите", @@ -2710,7 +2795,10 @@ "restoreFailed": "Не успеа враќањето на купувањата. Обидете се повторно.", "purchaseFailed": "Не успеа завршувањето на купувањето.", "purchaseStartFailed": "Не успеа започнувањето на купување од App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass-от на оваа Apple сметка припаѓа на друга Kilo сметка." + "purchaseOwnedByAnotherAccount": "Kilo Pass-от на оваа Apple сметка припаѓа на друга Kilo сметка.", + "couldNotConnectToAppStore": "Не можеше да се поврзе со App Store. Проверете ја вашата врска и обидете се повторно.", + "noMatchingProducts": "App Store не врати соодветни Kilo Pass производи.", + "purchaseMissingSignedTransaction": "Купувањето од App Store не вклучуваше потпишана трансакциска JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Има простор за подобрување", "sorryTitle": "Жал ни е што го чуеме тоа!", "sorryMessage": "Ве молиме кажете ни што треба да биде подобро. Инженерот задолжен за апликацијата чита секој извештај!", - "emailUs": "Испратете ни е-пошта" + "emailUs": "Испратете ни е-пошта", + "emailSubject": "повратна информација за мобилната апликација" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Нема активност со кредити", "expires": "Истекува {{date}}", "title": "Активност со кредити", - "transactionFallback": "Кредитна трансакција" + "transactionFallback": "Кредитна трансакција", + "category": { + "organization_custom": "Прилагодено за организацијата", + "parent_to_child_transfer_in": "Трансфер од родител на дете (влез)", + "parent_to_child_transfer_out": "Трансфер од родител на дете (излез)", + "oss-sponsorship": "OSS спонзорство", + "oss-monthly-reset": "OSS месечно ресетирање", + "team-topup-bonus-2025": "Тимски top-up бонус 2025", + "accounting_adjustment": "Сметководствена корекција", + "credits_expired": "Истечени кредити" + } }, "inviteMember": { "emailError": "Внесете валидна е-пошта адреса", @@ -2840,12 +2939,17 @@ "emptyDescription": "Фактурите се генерираат автоматски при секој циклус на наплата и ќе се појават тука откако вашата организација ќе биде наплатена.", "emptyTitle": "Нема фактури", "invoiceFallback": "Фактура", - "statusOpen": "Отворено", - "statusPaid": "Платено", - "statusVoid": "Поништено", "title": "Фактури", "downloadFailed": "Не можеше да се преземе фактурата. Проверете ја вашата врска и обидете се повторно.", - "sharingUnavailable": "Споделувањето не е достапно на овој уред." + "sharingUnavailable": "Споделувањето не е достапно на овој уред.", + "status": { + "paid": "Платено", + "open": "Отворено", + "void": "Поништено", + "draft": "Нацрт", + "uncollectible": "Ненаплатливо", + "unknown": "Непознато" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Собрани податоци", "free": "Бесплатно", - "couldNotUpdateFavorites": "Не успеа ажурирањето на омилените" + "couldNotUpdateFavorites": "Не успеа ажурирањето на омилените", + "thinkingEffort": { + "none": "Ниту една", + "minimal": "Минимално", + "low": "Ниско", + "medium": "Средно", + "high": "Високо", + "xhigh": "Екстра високо", + "max": "Максимално" + } } } diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index 73bb417103..93aa268c33 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} തിരഞ്ഞെടുത്തു, തിരഞ്ഞെടുപ്പ് മാറ്റാൻ ടാപ്പ് ചെയ്യുക", "tapToComment": "{{label}}, അഭിപ്രായമിടാൻ ടാപ്പ് ചെയ്യുക", - "truncationBanner": "{{total}} മാറ്റപ്പെട്ട ഫയലുകളിൽ ആദ്യത്തെ {{limit}} കാണിക്കുന്നു — GitHub API പരിധി" + "truncationBanner": "{{total}} മാറ്റപ്പെട്ട ഫയലുകളിൽ ആദ്യത്തെ {{limit}} കാണിക്കുന്നു — GitHub API പരിധി", + "statusAdded": "ചേർത്തു", + "statusContext": "കോണ്ടെക്സ്റ്റ്", + "statusDeleted": "ഇല്ലാതാക്കി" }, "linkPasteClipboardEmpty": "ക്ലിപ്പ്ബോർഡ് ശൂന്യമാണ്", "linkPasteNotAPullRequest": "ഇത് ഒരു GitHub പുൾ റിക്വസ്റ്റ് ലിങ്ക് അല്ല", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ഈ അവലോകനം അതുപോലെ സമർപ്പിക്കാൻ കഴിയില്ല. PR മാറിയിരിക്കാം, അല്ലെങ്കിൽ നിങ്ങളുടെ സ്വന്തം പുൾ റിക്വസ്റ്റ് അവലോകനം ചെയ്യാൻ കഴിഞ്ഞില്ലെന്നും വരാം.", "couldNotPostComment": "അഭിപ്രായം പോസ്റ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല.", "couldNotSubmitReview": "അവലോകനം സമർപ്പിക്കാൻ കഴിഞ്ഞില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക." + }, + "operation": { + "couldNotReply": "മറുപടി നൽകാനായില്ല.", + "couldNotCompleteAction": "ഈ പ്രവർത്തനം പൂർത്തിയാക്കാൻ കഴിഞ്ഞില്ല.", + "mergeResultDefaultError": "GitHub മെർജ് പൂർത്തിയാക്കിയില്ല." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "പേയ്മെന്റ് കാലഹരണപ്പെട്ടു. നിങ്ങളുടെ പേയ്മെന്റ് രീതി അപ്ഡേറ്റ് ചെയ്യുക.", "subscriptionCancels": "സബ്സ്ക്രിപ്ഷൻ {{date}} ന് റദ്ദാക്കും", "trialDaysRemaining": "ട്രയൽ: {{remaining}}", - "trialEndingSoon": "ട്രയൽ ഉടൻ അവസാനിക്കുന്നു: {{remaining}}" + "trialEndingSoon": "ട്രയൽ ഉടൻ അവസാനിക്കുന്നു: {{remaining}}", + "planName": { + "commit": "കമ്മിറ്റ്", + "standard": "സ്റ്റാൻഡേർഡ്" + } }, "changelog": { "title": "പുതിയതെന്താണ്", @@ -1189,7 +1201,8 @@ "strongArm": "ശക്തമായ കൈ", "talisman": "താലിസ്മാൻ" }, - "remoteSpawnFilesNotSupported": "ഈ ഇൻസ്റ്റൻസിന് ഫയലുകൾ സ്വീകരിക്കാൻ കഴിയില്ല." + "remoteSpawnFilesNotSupported": "ഈ ഇൻസ്റ്റൻസിന് ഫയലുകൾ സ്വീകരിക്കാൻ കഴിയില്ല.", + "instanceSwitcherTitle": "KiloClaw ഇൻസ്റ്റൻസ്" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "പരാജയപ്പെട്ടു", "cancelled": "റദ്ദാക്കി", "interrupted": "തടസ്സപ്പെട്ടു" - } + }, + "reviewStyle": { + "strict": "കർശനം", + "balanced": "സമതുലിതം", + "lenient": "വിട്ടുവീഴ്ച", + "roast": "റോസ്റ്റ്" + }, + "focusArea": { + "security": "സുരക്ഷ", + "performance": "പ്രകടനം", + "bugs": "ബഗുകൾ", + "style": "ശൈലി", + "testing": "ടെസ്റ്റിംഗ്", + "documentation": "ഡോക്യുമെന്റേഷൻ" + }, + "gateThreshold": { + "off": "ഓഫ്", + "all": "എല്ലാം", + "warning": "മുന്നറിയിപ്പ്", + "critical": "ഗുരുതരം" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "കോഡ് റിവ്യൂവറിന് ശ്രദ്ധ ആവശ്യമാണ്", + "description": "സജീവമായ GitHub App ഇൻസ്റ്റാളേഷനുമായി Kilo-യ്ക്ക് ഈ റിപ്പോസിറ്ററി ആക്സസ് ചെയ്യാൻ കഴിയാത്തതിനാൽ കോഡ് റിവ്യൂവർ പ്രവർത്തനരഹിതമാക്കി. GitHub App ഇൻസ്റ്റാളേഷൻ അപ്ഡേറ്റ് ചെയ്യുക, തുടർന്ന് കോഡ് റിവ്യൂവർ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക.", + "recoveryLabel": "GitHub App അപ്ഡേറ്റ് ചെയ്യുക" + }, + "githubIpAllowList": { + "title": "കോഡ് റിവ്യൂവറിന് ശ്രദ്ധ ആവശ്യമാണ്", + "description": "ഈ GitHub ഓർഗനൈസേഷൻ Kilo-യെ തടയുന്ന ഒരു IP അനുവദനീയ ലിസ്റ്റ് ഉപയോഗിക്കുന്നതിനാൽ കോഡ് റിവ്യൂവർ പ്രവർത്തനരഹിതമാക്കി. സഹായത്തിനായി hi@kilocode.ai-യുമായി ബന്ധപ്പെടുക, തുടർന്ന് കോഡ് റിവ്യൂവർ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക.", + "recoveryLabel": "സപ്പോർട്ടുമായി ബന്ധപ്പെടുക" + }, + "gitlabProjectAccessRequired": { + "title": "കോഡ് റിവ്യൂവറിന് ശ്രദ്ധ ആവശ്യമാണ്", + "description": "ഈ പ്രോജക്ടിനായി Kilo-യ്ക്ക് GitLab പ്രോജക്ട് ആക്സസ് ടോക്കൺ സൃഷ്ടിക്കാൻ കഴിയാത്തതിനാൽ കോഡ് റിവ്യൂവർ പ്രവർത്തനരഹിതമാക്കി. മെയിന്റൈനർ ആക്സസ് അനുവദിക്കുക അല്ലെങ്കിൽ പ്രോജക്ട് ആക്സസ് ടോക്കണുകൾ പ്രവർത്തനക്ഷമമാക്കുക, തുടർന്ന് കോഡ് റിവ്യൂവർ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക.", + "recoveryLabel": "GitLab സംയോജനം അപ്ഡേറ്റ് ചെയ്യുക" + }, + "byokInvalidKey": { + "title": "കോഡ് റിവ്യൂവറിന് ശ്രദ്ധ ആവശ്യമാണ്", + "description": "തിരഞ്ഞെടുത്ത BYOK API കീ അസാധുവാണ്, റദ്ദാക്കപ്പെട്ടതാണ്, അല്ലെങ്കിൽ അനുമതിയില്ലാത്തതാണ് എന്നതിനാൽ കോഡ് റിവ്യൂവർ പ്രവർത്തനരഹിതമാക്കി. കീ അപ്ഡേറ്റ് ചെയ്യുക അല്ലെങ്കിൽ മറ്റൊരു മോഡൽ തിരഞ്ഞെടുക്കുക, തുടർന്ന് കോഡ് റിവ്യൂവർ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക.", + "recoveryLabel": "BYOK ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക" + }, + "selectedModelUnavailable": { + "title": "കോഡ് റിവ്യൂവറിന് ശ്രദ്ധ ആവശ്യമാണ്", + "description": "തിരഞ്ഞെടുത്ത മോഡൽ ക്ലൗഡ് ഏജന്റ് സെഷനുകൾക്ക് ലഭ്യമല്ലാത്തതിനാൽ കോഡ് റിവ്യൂവർ പ്രവർത്തനരഹിതമാക്കി. ലഭ്യമായ ഒരു മോഡൽ തിരഞ്ഞെടുക്കുക, തുടർന്ന് കോഡ് റിവ്യൂവർ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക.", + "recoveryLabel": "കോഡ് റിവ്യൂവർ ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക" + }, + "repeatedRepositoryCloneTimeout": { + "title": "കോഡ് റിവ്യൂവറിന് ശ്രദ്ധ ആവശ്യമാണ്", + "description": "ഇന്ന് മൂന്ന് റിപ്പോസിറ്ററി ക്ലോൺ ടൈംഔട്ടുകൾക്ക് ശേഷം കോഡ് റിവ്യൂവർ പ്രവർത്തനരഹിതമാക്കി. സഹായത്തിനായി hi@kilocode.ai-യുമായി ബന്ധപ്പെടുക, തുടർന്ന് കോഡ് റിവ്യൂവർ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക.", + "recoveryLabel": "സപ്പോർട്ടുമായി ബന്ധപ്പെടുക" + } + }, + "unknownError": "അജ്ഞാത പിശക്" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "കണ്ടെത്തൽ ഓട്ടോമാറ്റിക് ഗുരുതരത്വ പരിധിക്ക് താഴെയാണ്. സുരക്ഷാ ഗേറ്റുകൾ കടന്നുപോകുമ്പോൾ മാനുവൽ പരിഹാരം ഇപ്പോഴും ആരംഭിക്കാം.", "beforeEnablement": "ഓട്ടോ പരിഹാരം പ്രവർത്തനക്ഷമമാക്കുന്നതിന് മുമ്പ് വിശകലനം പൂർത്തിയായി. സുരക്ഷാ ഗേറ്റുകൾ കടന്നുപോകുമ്പോൾ മാനുവൽ പരിഹാരം ഇപ്പോഴും ആരംഭിക്കാം.", "generic": "ഈ കണ്ടെത്തലിന് പരിഹാരം ലഭ്യമല്ല." + }, + "commandFailure": { + "ownerCapReached": "വിശകലന ശേഷി നിറഞ്ഞു. സജീവ വിശകലനം പൂർത്തിയാകുന്നതുവരെ കാത്തിരിക്കുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", + "githubTokenUnavailable": "GitHub അംഗീകാരത്തിന് ശ്രദ്ധ ആവശ്യമാണ്. GitHub App വീണ്ടും അംഗീകരിക്കുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", + "githubAuthInvalid": "GitHub അംഗീകാരത്തിന് ശ്രദ്ധ ആവശ്യമാണ്. GitHub App വീണ്ടും അംഗീകരിക്കുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", + "findingUnavailable": "കണ്ടെത്തൽ ഇനി ലഭ്യമല്ല. കണ്ടെത്തലുകൾ പുതുക്കി, അത് തുറന്നിരിക്കുന്നുവെങ്കിൽ വീണ്ടും ശ്രമിക്കുക.", + "repositoryUnavailable": "റിപ്പോസിറ്ററി GitHub App-ന് ഇനി ലഭ്യമല്ല. റിപ്പോസിറ്ററി ആക്സസ് പുതുക്കുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.", + "invalidDismissTarget": "അതിന്റെ Dependabot ടാർഗറ്റ് അസാധുവായതിനാൽ കണ്ടെത്തൽ നിരസിക്കാൻ കഴിയില്ല.", + "commandStalled": "ക്യൂവിലാക്കിയ പ്രവർത്തനം സമയത്തിനുള്ളിൽ പൂർത്തിയായില്ല. പ്രവർത്തനം വീണ്ടും ശ്രമിക്കുക.", + "queueRetriesExhausted": "നിരവധി ശ്രമങ്ങൾക്ക് ശേഷം പ്രവർത്തനം പൂർത്തിയാക്കാൻ കഴിഞ്ഞില്ല. പ്രവർത്തനം വീണ്ടും ശ്രമിക്കുക.", + "queueAdmissionFailed": "ക്യൂവിലാക്കിയ പ്രവർത്തനം അംഗീകരിക്കാൻ കഴിഞ്ഞില്ല. പ്രവർത്തനം വീണ്ടും ശ്രമിക്കുക.", + "generic": "ക്യൂവിലാക്കിയ പ്രവർത്തനം പരാജയപ്പെട്ടു. പ്രവർത്തനം വീണ്ടും ശ്രമിക്കുക." + }, + "analysisMode": { + "auto": "ഓട്ടോ", + "shallow": "ആഴം കുറഞ്ഞ", + "deep": "ആഴമുള്ള" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} പ്രിയപ്പെട്ടവയിലേക്ക് ചേർക്കുക", "removeFromFavorites": "{{name}} പ്രിയപ്പെട്ടവയിൽ നിന്ന് നീക്കം ചെയ്യുക", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "മീഡി" + "thinkingEffortMedium": "മീഡി", + "sessionModel": "സെഷൻ മോഡൽ" }, "attachmentPreview": { "openFailedRetry": "ഫയൽ തുറക്കാൻ കഴിഞ്ഞില്ല. വീണ്ടും ശ്രമിക്കുക.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ക്രെഡിറ്റുകൾ ചേർക്കുക", - "description": "ഉപയോഗം തുടരാൻ ക്രെഡിറ്റുകൾ ചേർക്കുക." + "description": "ഉപയോഗം തുടരാൻ ക്രെഡിറ്റുകൾ ചേർക്കുക.", + "billingPage": "ബില്ലിംഗ് പേജ്" }, "deviceSessions": { "couldNotLoad": "സെഷനുകൾ ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല", @@ -2710,7 +2795,10 @@ "restoreFailed": "വാങ്ങലുകൾ പുനഃസ്ഥാപിക്കുന്നതിൽ പരാജയപ്പെട്ടു. വീണ്ടും ശ്രമിക്കുക.", "purchaseFailed": "വാങ്ങൽ പൂർത്തിയാക്കുന്നതിൽ പരാജയപ്പെട്ടു.", "purchaseStartFailed": "App Store വാങ്ങൽ ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു.", - "purchaseOwnedByAnotherAccount": "ഈ Apple അക്കൗണ്ടിലെ Kilo Pass മറ്റൊരു Kilo അക്കൗണ്ടിന്റേതാണ്." + "purchaseOwnedByAnotherAccount": "ഈ Apple അക്കൗണ്ടിലെ Kilo Pass മറ്റൊരു Kilo അക്കൗണ്ടിന്റേതാണ്.", + "couldNotConnectToAppStore": "App Store-ലേക്ക് കണക്റ്റുചെയ്യാൻ കഴിഞ്ഞില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.", + "noMatchingProducts": "App Store-ൽ നിന്ന് പൊരുത്തപ്പെടുന്ന Kilo Pass ഉൽപ്പന്നങ്ങളൊന്നും ലഭിച്ചില്ല.", + "purchaseMissingSignedTransaction": "App Store വാങ്ങലിൽ ഒപ്പിട്ട ഇടപാട് JWS ഉൾപ്പെടുത്തിയിട്ടില്ല." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "മെച്ചപ്പെടുത്തേണ്ടതുണ്ട്", "sorryTitle": "ഇത് കേട്ടതിൽ ഞങ്ങൾക്ക് ഖേദമുണ്ട്!", "sorryMessage": "എന്താണ് മെച്ചപ്പെടുത്തേണ്ടതെന്ന് ഞങ്ങളെ അറിയിക്കുക. ആപ്പിന്റെ ചുമതലയുള്ള എഞ്ചിനീയർ എല്ലാ റിപ്പോർട്ടും വായിക്കുന്നു!", - "emailUs": "ഞങ്ങൾക്ക് ഇമെയിൽ ചെയ്യുക" + "emailUs": "ഞങ്ങൾക്ക് ഇമെയിൽ ചെയ്യുക", + "emailSubject": "മൊബൈൽ ആപ്പ് ഫീഡ്ബാക്ക്" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "ക്രെഡിറ്റ് പ്രവർത്തനം ഇല്ല", "expires": "{{date}}-ന് കാലഹരണപ്പെടുന്നു", "title": "ക്രെഡിറ്റ് പ്രവർത്തനം", - "transactionFallback": "ക്രെഡിറ്റ് ഇടപാട്" + "transactionFallback": "ക്രെഡിറ്റ് ഇടപാട്", + "category": { + "organization_custom": "ഓർഗനൈസേഷൻ ഇഷ്ടാനുസൃതം", + "parent_to_child_transfer_in": "രക്ഷാകർതൃ ട്രാൻസ്ഫർ ഇൻ", + "parent_to_child_transfer_out": "രക്ഷാകർതൃ ട്രാൻസ്ഫർ ഔട്ട്", + "oss-sponsorship": "OSS-സ്പോൺസർഷിപ്പ്", + "oss-monthly-reset": "OSS-മാസിക-റീസെറ്റ്", + "team-topup-bonus-2025": "ടീം-ടോപ്പ്-അപ്പ്-ബോണസ്-2025", + "accounting_adjustment": "അക്കൗണ്ടിംഗ് ക്രമീകരണം", + "credits_expired": "ക്രെഡിറ്റുകൾ കാലഹരണപ്പെട്ടു" + } }, "inviteMember": { "emailError": "സാധുവായ ഒരു ഇമെയിൽ വിലാസം നൽകുക", @@ -2840,12 +2939,17 @@ "emptyDescription": "ഓരോ ബില്ലിംഗ് സൈക്കിളിലും ഇൻവോയ്സുകൾ സ്വയമേവ സൃഷ്ടിക്കപ്പെടും, നിങ്ങളുടെ ഓർഗനൈസേഷന് ബില്ല് ചെയ്തുകഴിഞ്ഞാൽ അവ ഇവിടെ ദൃശ്യമാകും.", "emptyTitle": "ഇൻവോയ്സുകൾ ഇല്ല", "invoiceFallback": "ഇൻവോയ്സ്", - "statusOpen": "തുറന്നത്", - "statusPaid": "അടച്ചത്", - "statusVoid": "വാലിഡ് അല്ലാത്തത്", "title": "ഇൻവോയ്സുകൾ", "downloadFailed": "ഇൻവോയ്സ് ഡൗൺലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.", - "sharingUnavailable": "ഈ ഉപകരണത്തിൽ പങ്കിടൽ ലഭ്യമല്ല." + "sharingUnavailable": "ഈ ഉപകരണത്തിൽ പങ്കിടൽ ലഭ്യമല്ല.", + "status": { + "paid": "അടച്ചത്", + "open": "തുറന്നത്", + "void": "വാലിഡ് അല്ലാത്തത്", + "draft": "ഡ്രാഫ്റ്റ്", + "uncollectible": "ഈടാക്കാനാവാത്തത്", + "unknown": "അജ്ഞാതം" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ശേഖരിച്ച ഡാറ്റ", "free": "സൗജന്യം", - "couldNotUpdateFavorites": "പ്രിയപ്പെട്ടവ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല" + "couldNotUpdateFavorites": "പ്രിയപ്പെട്ടവ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല", + "thinkingEffort": { + "none": "ഒന്നുമില്ല", + "minimal": "ഏറ്റവും കുറഞ്ഞത്", + "low": "കുറഞ്ഞത്", + "medium": "ഇടത്തരം", + "high": "ഉയർന്നത്", + "xhigh": "എക്സ്ട്രാ ഹൈ", + "max": "പരമാവധി" + } } } diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index 3b98012b6e..e15b5e2a6c 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Сонгосон {{label}}, сонголтыг өөрчлөхийн тулд товшино уу", "tapToComment": "{{label}}, сэтгэгдэл бичихийн тулд товшино уу", - "truncationBanner": "Өөрчлөгдсөн {{total}} файлаас эхний {{limit}}-ыг харуулж байна — GitHub API хязгаар" + "truncationBanner": "Өөрчлөгдсөн {{total}} файлаас эхний {{limit}}-ыг харуулж байна — GitHub API хязгаар", + "statusAdded": "Нэмсэн", + "statusContext": "Контекст", + "statusDeleted": "Устгасан" }, "linkPasteClipboardEmpty": "Хуулбар самбар хоосон байна", "linkPasteNotAPullRequest": "Энэ нь GitHub pull request холбоос биш", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Энэ тоймыг байгаагаар нь илгээх боломжгүй. PR өөрчлөгдсөн эсвэл та өөрийн pull request-оо тоймлож чадахгүй байж болзошгүй.", "couldNotPostComment": "Сэтгэгдэл нийтлэх боломжгүй.", "couldNotSubmitReview": "Тойм илгээх боломжгүй. Холболтоо шалгаад дахин оролдоно уу." + }, + "operation": { + "couldNotReply": "Хариулах боломжгүй.", + "couldNotCompleteAction": "Энэ үйлдлийг гүйцэтгэх боломжгүй.", + "mergeResultDefaultError": "GitHub нэгтгэлтийг гүйцээгүй." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Төлбөр хугацаа хэтэрсэн. Төлбөрийн аргаа шинэчлээрэй.", "subscriptionCancels": "Захиалга {{date}} өдөр цуцлагдана", "trialDaysRemaining": "Туршилт: {{remaining}}", - "trialEndingSoon": "Туршилт удахгүй дуусна: {{remaining}}" + "trialEndingSoon": "Туршилт удахгүй дуусна: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Стандарт" + } }, "changelog": { "title": "Шинэ юу байна", @@ -1189,7 +1201,8 @@ "strongArm": "Хүчтэй гар", "talisman": "Талисман" }, - "remoteSpawnFilesNotSupported": "Энэ инстанц файл хүлээн авах боломжгүй." + "remoteSpawnFilesNotSupported": "Энэ инстанц файл хүлээн авах боломжгүй.", + "instanceSwitcherTitle": "KiloClaw инстанц" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Амжилтгүй болсон", "cancelled": "Цуцлагдсан", "interrupted": "Тасарсан" - } + }, + "reviewStyle": { + "strict": "Хатуу", + "balanced": "Тэнцвэртэй", + "lenient": "Зөөлөн", + "roast": "Роаст" + }, + "focusArea": { + "security": "Аюулгүй байдал", + "performance": "Гүйцэтгэл", + "bugs": "Алдаанууд", + "style": "Стиль", + "testing": "Туршилт", + "documentation": "Баримтжуулалт" + }, + "gateThreshold": { + "off": "Унтарсан", + "all": "Бүгд", + "warning": "Анхааруулга", + "critical": "Чухал" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Кодын шалгагч анхаарал шаардаж байна", + "description": "Kilo GitHub App-ийн идэвхтэй суулгацтай энэ репозиторт хандах боломжгүй тул Кодын шалгагчийг идэвхгүйжүүлсэн. GitHub App суулгацыг шинэчилж, дараа нь Кодын шалгагчийг дахин идэвхжүүлнэ үү.", + "recoveryLabel": "GitHub App шинэчлэх" + }, + "githubIpAllowList": { + "title": "Кодын шалгагч анхаарал шаардаж байна", + "description": "Энэ GitHub байгууллага Kilo-г блоклодог IP зөвшөөрлийн жагсаалт ашигладаг тул Кодын шалгагчийг идэвхгүйжүүлсэн. Тусламж авахын тулд hi@kilocode.ai хаягаар холбогдож, дараа нь Кодын шалгагчийг дахин идэвхжүүлнэ үү.", + "recoveryLabel": "Дэмжлэгтэй холбогдох" + }, + "gitlabProjectAccessRequired": { + "title": "Кодын шалгагч анхаарал шаардаж байна", + "description": "Kilo энэ төсөлд зориулж GitLab Project Access Token үүсгэж чадахгүй тул Кодын шалгагчийг идэвхгүйжүүлсэн. Maintainer хандалт олгох эсвэл Project Access Token-ыг идэвхжүүлж, дараа нь Кодын шалгагчийг дахин идэвхжүүлнэ үү.", + "recoveryLabel": "GitLab интеграцийг шинэчлэх" + }, + "byokInvalidKey": { + "title": "Кодын шалгагч анхаарал шаардаж байна", + "description": "Сонгосон BYOK API түлхүүр хүчингүй, хүчингүй болсон, эсвэл зөвшөөрөлгүй тул Кодын шалгагчийг идэвхгүйжүүлсэн. Түлхүүрийг шинэчилж эсвэл өөр загвар сонгож, дараа нь Кодын шалгагчийг дахин идэвхжүүлнэ үү.", + "recoveryLabel": "BYOK тохиргоог шинэчлэх" + }, + "selectedModelUnavailable": { + "title": "Кодын шалгагч анхаарал шаардаж байна", + "description": "Сонгосон загвар cloud agent сессүүдэд боломжгүй тул Кодын шалгагчийг идэвхгүйжүүлсэн. Боломжтой загвар сонгож, дараа нь Кодын шалгагчийг дахин идэвхжүүлнэ үү.", + "recoveryLabel": "Кодын шалгагчийн тохиргоог шинэчлэх" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Кодын шалгагч анхаарал шаардаж байна", + "description": "Өнөөдөр гурван удаа репозиторын клонны хугацаа дууссны дараа Кодын шалгагчийг идэвхгүйжүүлсэн. Тусламж авахын тулд hi@kilocode.ai хаягаар холбогдож, дараа нь Кодын шалгагчийг дахин идэвхжүүлнэ үү.", + "recoveryLabel": "Дэмжлэгтэй холбогдох" + } + }, + "unknownError": "Тодорхойгүй алдаа" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Олдвор автомат ноцтой байдлын босгоос доогуур байна. Аюулгүй байдлын хаалтууд хангагдвал гараар засвар эхлүүлэх боломжтой хэвээр.", "beforeEnablement": "Автомат засвар идэвхжихээс өмнө дүн шинжилгээ дууссан. Аюулгүй байдлын хаалтууд хангагдвал гараар засвар эхлүүлэх боломжтой хэвээр.", "generic": "Энэ олдворын хувьд засвар боломжгүй." + }, + "commandFailure": { + "ownerCapReached": "Дүн шинжилгээний багтаамж дүүрсэн байна. Идэвхтэй дүн шинжилгээ дуусахыг хүлээж, дараа нь дахин оролдоно уу.", + "githubTokenUnavailable": "GitHub зөвшөөрөлд анхаарал шаардлагатай. GitHub App-ыг дахин зөвшөөрч, дараа нь дахин оролдоно уу.", + "githubAuthInvalid": "GitHub зөвшөөрөлд анхаарал шаардлагатай. GitHub App-ыг дахин зөвшөөрч, дараа нь дахин оролдоно уу.", + "findingUnavailable": "Олдвор цаашид боломжгүй байна. Олдворуудыг сэргээж, нээлттэй хэвээр байвал дахин оролдоно уу.", + "repositoryUnavailable": "Репозитор GitHub App-д цаашид боломжгүй. Репозиторын хандалтыг сэргээж, дараа нь дахин оролдоно уу.", + "invalidDismissTarget": "Олдворын Dependabot зорилт хүчингүй тул олдворыг хаях боломжгүй.", + "commandStalled": "Дараалалд орсон үйлдэл хугацаанд нь дуусаагүй. Үйлдлийг дахин оролдоно уу.", + "queueRetriesExhausted": "Хэд хэдэн оролдлогын дараа үйлдлийг гүйцэтгэх боломжгүй. Үйлдлийг дахин оролдоно уу.", + "queueAdmissionFailed": "Дараалалд орсон үйлдлийг хүлээн авах боломжгүй. Үйлдлийг дахин оролдоно уу.", + "generic": "Дараалалд орсон үйлдэл амжилтгүй болсон. Үйлдлийг дахин оролдоно уу." + }, + "analysisMode": { + "auto": "Авто", + "shallow": "Гүехэн", + "deep": "Гүн" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}}-г дуртай зүйлсэд нэмэх", "removeFromFavorites": "{{name}}-г дуртай зүйлсээс хасах", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Сессийн загвар" }, "attachmentPreview": { "openFailedRetry": "Файлыг нээж чадсангүй. Дахин оролдоно уу.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Кредит нэмэх", - "description": "Ашиглалтыг үргэлжлүүлэхийн тулд кредит нэмнэ үү." + "description": "Ашиглалтыг үргэлжлүүлэхийн тулд кредит нэмнэ үү.", + "billingPage": "биллингийн хуудас" }, "deviceSessions": { "couldNotLoad": "Сессийг ачаалж чадсангүй", @@ -2710,7 +2795,10 @@ "restoreFailed": "Худалдан авалтуудыг сэргээж чадсангүй. Дахин оролдоно уу.", "purchaseFailed": "Худалдан авалтыг дуусгаж чадсангүй.", "purchaseStartFailed": "App Store худалдан авалтыг эхлүүлж чадсангүй.", - "purchaseOwnedByAnotherAccount": "Энэ Apple Account дээрх Kilo Pass нь өөр Kilo бүртгэлд харьяалагдана." + "purchaseOwnedByAnotherAccount": "Энэ Apple Account дээрх Kilo Pass нь өөр Kilo бүртгэлд харьяалагдана.", + "couldNotConnectToAppStore": "App Store-д холбогдох боломжгүй. Холболтоо шалгаад дахин оролдоно уу.", + "noMatchingProducts": "App Store тохирох Kilo Pass бүтээгдэхүүн буцаасангүй.", + "purchaseMissingSignedTransaction": "App Store худалдан авалтад гарын үсэгтэй transaction JWS ороогүй байна." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Сайжруулах шаардлагатай", "sorryTitle": "Сонсоход харамсалтай байна!", "sorryMessage": "Юуг сайжруулах шаардлагатайг бидэнд мэдэгдэнэ үү. Аппыг хариуцсан инженер тайлан бүрийг уншдаг!", - "emailUs": "Бидэнд имэйл илгээх" + "emailUs": "Бидэнд имэйл илгээх", + "emailSubject": "гар утасны апп-ын санал хүсэлт" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Кредитийн үйл ажиллагаа алга", "expires": "Хугацаа дуусах {{date}}", "title": "Кредитийн үйл ажиллагаа", - "transactionFallback": "Кредитийн гүйлгээ" + "transactionFallback": "Кредитийн гүйлгээ", + "category": { + "organization_custom": "Байгууллагын тусгай", + "parent_to_child_transfer_in": "Эцэг эхээс хүүхэд рүү шилжүүлэх (орж ирсэн)", + "parent_to_child_transfer_out": "Эцэг эхээс хүүхэд рүү шилжүүлэх (гарсан)", + "oss-sponsorship": "OSS ивээн тэтгэлэг", + "oss-monthly-reset": "OSS сарын дахин тохируулга", + "team-topup-bonus-2025": "Багийн топ-ап бонус-2025", + "accounting_adjustment": "Нягтлан бодох бүртгэлийн тохируулга", + "credits_expired": "Кредит дууссан" + } }, "inviteMember": { "emailError": "Хүчинтэй имэйл хаяг оруулна уу", @@ -2840,12 +2939,17 @@ "emptyDescription": "Нэхэмжлэхүүд төлбөрийн мөчлөг бүрт автоматаар үүсгэгдэж, байгууллага тань төлбөр төлсний дараа энд харагдана.", "emptyTitle": "Нэхэмжлэх алга", "invoiceFallback": "Нэхэмжлэх", - "statusOpen": "Нээлттэй", - "statusPaid": "Төлсөн", - "statusVoid": "Хүчингүй", "title": "Нэхэмжлэхүүд", "downloadFailed": "Нэхэмжлэхийг татах боломжгүй. Холболтоо шалгаад дахин оролдоно уу.", - "sharingUnavailable": "Энэ төхөөрөмж дээр хуваалцах боломжгүй." + "sharingUnavailable": "Энэ төхөөрөмж дээр хуваалцах боломжгүй.", + "status": { + "paid": "Төлсөн", + "open": "Нээлттэй", + "void": "Хүчингүй", + "draft": "Ноорог", + "uncollectible": "Цуглуулах боломжгүй", + "unknown": "Тодорхойгүй" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Цуглуулсан өгөгдөл", "free": "Үнэгүй", - "couldNotUpdateFavorites": "Дуртай зүйлсийг шинэчлэх боломжгүй" + "couldNotUpdateFavorites": "Дуртай зүйлсийг шинэчлэх боломжгүй", + "thinkingEffort": { + "none": "Байхгүй", + "minimal": "Хамгийн бага", + "low": "Бага", + "medium": "Дунд", + "high": "Өндөр", + "xhigh": "Маш өндөр", + "max": "Дээд" + } } } diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index f1cf164dcb..815f6e0d62 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} निवडले, निवड बदलण्यासाठी टॅप करा", "tapToComment": "{{label}}, टिप्पणी करण्यासाठी टॅप करा", - "truncationBanner": "{{total}} बदललेल्या फाइल्सपैकी पहिल्या {{limit}} दाखवत आहे — GitHub API मर्यादा" + "truncationBanner": "{{total}} बदललेल्या फाइल्सपैकी पहिल्या {{limit}} दाखवत आहे — GitHub API मर्यादा", + "statusAdded": "जोडले", + "statusContext": "संदर्भ", + "statusDeleted": "हटवले" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड रिकामा आहे", "linkPasteNotAPullRequest": "ही GitHub पुल रिक्वेस्ट लिंक नाही", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "हा पुनरावलोकन जसा आहे तसा सादर करता येत नाही. PR बदलला असू शकतो, किंवा तुम्ही तुमच्या स्वतःच्या पुल रिक्वेस्टचे पुनरावलोकन करू शकत नाही.", "couldNotPostComment": "टिप्पणी पोस्ट करता आली नाही.", "couldNotSubmitReview": "पुनरावलोकन सादर करता आले नाही. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा." + }, + "operation": { + "couldNotReply": "उत्तर देता आले नाही.", + "couldNotCompleteAction": "ही क्रिया पूर्ण करता आली नाही.", + "mergeResultDefaultError": "GitHub ने मर्ज पूर्ण केले नाही." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "पेमेंट थकीत आहे. कृपया तुमची पेमेंट पद्धत अद्यतनित करा.", "subscriptionCancels": "सदस्यत्व {{date}} रोजी रद्द होते", "trialDaysRemaining": "ट्रायल: {{remaining}}", - "trialEndingSoon": "ट्रायल लवकर संपत आहे: {{remaining}}" + "trialEndingSoon": "ट्रायल लवकर संपत आहे: {{remaining}}", + "planName": { + "commit": "कमिट", + "standard": "स्टँडर्ड" + } }, "changelog": { "title": "नवीन काय आहे", @@ -1189,7 +1201,8 @@ "strongArm": "मजबूत हात", "talisman": "ताईत" }, - "remoteSpawnFilesNotSupported": "या इन्स्टन्सला फाइल्स मिळू शकत नाहीत." + "remoteSpawnFilesNotSupported": "या इन्स्टन्सला फाइल्स मिळू शकत नाहीत.", + "instanceSwitcherTitle": "KiloClaw इन्स्टन्स" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "अयशस्वी", "cancelled": "रद्द केले", "interrupted": "व्यत्यय आला" - } + }, + "reviewStyle": { + "strict": "कठोर", + "balanced": "संतुलित", + "lenient": "उदार", + "roast": "रोस्ट" + }, + "focusArea": { + "security": "सुरक्षा", + "performance": "कार्यक्षमता", + "bugs": "बग", + "style": "शैली", + "testing": "चाचणी", + "documentation": "दस्तऐवजीकरण" + }, + "gateThreshold": { + "off": "बंद", + "all": "सर्व", + "warning": "चेतावणी", + "critical": "गंभीर" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "कोड पुनरावलोककाला लक्ष देणे आवश्यक आहे", + "description": "Kilo ला सक्रिय GitHub अॅप स्थापनेसह या रेपॉजिटरीमध्ये प्रवेश करता आला नाही म्हणून कोड पुनरावलोकक अक्षम केला गेला. GitHub अॅप स्थापना अद्यतनित करा, नंतर कोड पुनरावलोकक पुन्हा सक्षम करा.", + "recoveryLabel": "GitHub अॅप अद्यतनित करा" + }, + "githubIpAllowList": { + "title": "कोड पुनरावलोककाला लक्ष देणे आवश्यक आहे", + "description": "या GitHub संस्थेने Kilo ला ब्लॉक करणारी IP परवानगी यादी वापरल्याने कोड पुनरावलोकक अक्षम केला गेला. मदतीसाठी hi@kilocode.ai वर संपर्क करा, नंतर कोड पुनरावलोकक पुन्हा सक्षम करा.", + "recoveryLabel": "समर्थनाशी संपर्क साधा" + }, + "gitlabProjectAccessRequired": { + "title": "कोड पुनरावलोककाला लक्ष देणे आवश्यक आहे", + "description": "या प्रकल्पासाठी Kilo ला GitLab प्रोजेक्ट अॅक्सेस टोकन तयार करता आले नाही म्हणून कोड पुनरावलोकक अक्षम केला गेला. मेंटेनर प्रवेश द्या किंवा प्रोजेक्ट अॅक्सेस टोकन सक्षम करा, नंतर कोड पुनरावलोकक पुन्हा सक्षम करा.", + "recoveryLabel": "GitLab एकत्रीकरण अद्यतनित करा" + }, + "byokInvalidKey": { + "title": "कोड पुनरावलोककाला लक्ष देणे आवश्यक आहे", + "description": "निवडलेली BYOK API की अवैध, रद्द किंवा परवानगीहीन असल्याने कोड पुनरावलोकक अक्षम केला गेला. की अद्यतनित करा किंवा दुसरे मॉडेल निवडा, नंतर कोड पुनरावलोकक पुन्हा सक्षम करा.", + "recoveryLabel": "BYOK सेटिंग्ज अद्यतनित करा" + }, + "selectedModelUnavailable": { + "title": "कोड पुनरावलोककाला लक्ष देणे आवश्यक आहे", + "description": "निवडलेले मॉडेल क्लाउड एजंट सत्रांसाठी उपलब्ध नसल्याने कोड पुनरावलोकक अक्षम केला गेला. उपलब्ध मॉडेल निवडा, नंतर कोड पुनरावलोकक पुन्हा सक्षम करा.", + "recoveryLabel": "कोड पुनरावलोकक सेटिंग्ज अद्यतनित करा" + }, + "repeatedRepositoryCloneTimeout": { + "title": "कोड पुनरावलोककाला लक्ष देणे आवश्यक आहे", + "description": "आज तीन रेपॉजिटरी क्लोन टाइमआउटनंतर कोड पुनरावलोकक अक्षम केला गेला. मदतीसाठी hi@kilocode.ai वर संपर्क करा, नंतर कोड पुनरावलोकक पुन्हा सक्षम करा.", + "recoveryLabel": "समर्थनाशी संपर्क साधा" + } + }, + "unknownError": "अज्ञात त्रुटी" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "शोध स्वयंचलित तीव्रता मर्यादेखाली आहे. सुरक्षा गेट्स पूर्ण झाल्यावर मॅन्युअल उपाय सुरू होऊ शकतो.", "beforeEnablement": "स्वयं उपाय सक्षम होण्यापूर्वी विश्लेषण पूर्ण झाले. सुरक्षा गेट्स पूर्ण झाल्यावर मॅन्युअल उपाय सुरू होऊ शकतो.", "generic": "या शोधासाठी उपाय अनुपलब्ध आहे." + }, + "commandFailure": { + "ownerCapReached": "विश्लेषण क्षमता भरलेली आहे. सक्रिय विश्लेषण संपण्याची वाट पहा, नंतर पुन्हा प्रयत्न करा.", + "githubTokenUnavailable": "GitHub अधिकाराकडे लक्ष देणे आवश्यक आहे. GitHub अॅप पुन्हा अधिकृत करा, नंतर पुन्हा प्रयत्न करा.", + "githubAuthInvalid": "GitHub अधिकाराकडे लक्ष देणे आवश्यक आहे. GitHub अॅप पुन्हा अधिकृत करा, नंतर पुन्हा प्रयत्न करा.", + "findingUnavailable": "निष्कर्ष यापुढे उपलब्ध नाही. निष्कर्ष रीफ्रेश करा आणि तो खुला असल्यास पुन्हा प्रयत्न करा.", + "repositoryUnavailable": "रेपॉजिटरी GitHub अॅपसाठी यापुढे उपलब्ध नाही. रेपॉजिटरी प्रवेश रीफ्रेश करा, नंतर पुन्हा प्रयत्न करा.", + "invalidDismissTarget": "निष्कर्षाचे Dependabot लक्ष्य अवैध असल्याने तो नाकारता येत नाही.", + "commandStalled": "रांगेतील क्रिया वेळेत पूर्ण झाली नाही. क्रिया पुन्हा करा.", + "queueRetriesExhausted": "अनेक प्रयत्नांनंतर क्रिया पूर्ण करता आली नाही. क्रिया पुन्हा करा.", + "queueAdmissionFailed": "रांगेतील क्रिया स्वीकारता आली नाही. क्रिया पुन्हा करा.", + "generic": "रांगेतील क्रिया अयशस्वी झाली. क्रिया पुन्हा करा." + }, + "analysisMode": { + "auto": "स्वयं", + "shallow": "उथळ", + "deep": "खोल" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} आवडींमध्ये जोडा", "removeFromFavorites": "{{name}} आवडींमधून काढा", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "मध्यम" + "thinkingEffortMedium": "मध्यम", + "sessionModel": "सत्र मॉडेल" }, "attachmentPreview": { "openFailedRetry": "फाइल उघडता आली नाही. कृपया पुन्हा प्रयत्न करा.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "क्रेडिट्स जोडा", - "description": "वापर सुरू ठेवण्यासाठी क्रेडिट्स जोडा." + "description": "वापर सुरू ठेवण्यासाठी क्रेडिट्स जोडा.", + "billingPage": "बिलिंग पृष्ठ" }, "deviceSessions": { "couldNotLoad": "सत्रे लोड करता आली नाहीत", @@ -2710,7 +2795,10 @@ "restoreFailed": "खरेदी पुनर्संचयित करण्यात अयशस्वी. पुन्हा प्रयत्न करा.", "purchaseFailed": "खरेदी पूर्ण करण्यात अयशस्वी.", "purchaseStartFailed": "App Store खरेदी सुरू करण्यात अयशस्वी.", - "purchaseOwnedByAnotherAccount": "या Apple खात्यावरील Kilo Pass वेगळ्या Kilo खात्याशी संबंधित आहे." + "purchaseOwnedByAnotherAccount": "या Apple खात्यावरील Kilo Pass वेगळ्या Kilo खात्याशी संबंधित आहे.", + "couldNotConnectToAppStore": "App Store शी कनेक्ट होता आले नाही. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.", + "noMatchingProducts": "App Store ने जुळणारी Kilo Pass उत्पादने परत केली नाहीत.", + "purchaseMissingSignedTransaction": "App Store खरेदीत स्वाक्षरी केलेले व्यवहार JWS समाविष्ट नव्हते." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "सुधारणा आवश्यक", "sorryTitle": "हे ऐकून आम्हाला वाईट वाटते!", "sorryMessage": "कृपया काय सुधारणे आवश्यक आहे ते कळवा. अ‍ॅपचा प्रभारी अभियंता प्रत्येक रिपोर्ट वाचतो!", - "emailUs": "आम्हाला ईमेल करा" + "emailUs": "आम्हाला ईमेल करा", + "emailSubject": "मोबाइल अॅप अभिप्राय" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "क्रेडिट क्रियाकलाप नाही", "expires": "{{date}} रोजी कालबाह्य", "title": "क्रेडिट क्रियाकलाप", - "transactionFallback": "क्रेडिट व्यवहार" + "transactionFallback": "क्रेडिट व्यवहार", + "category": { + "organization_custom": "संस्था कस्टम", + "parent_to_child_transfer_in": "पालक ते मूल हस्तांतरण (आत)", + "parent_to_child_transfer_out": "पालक ते मूल हस्तांतरण (बाहेर)", + "oss-sponsorship": "OSS प्रायोजकत्व", + "oss-monthly-reset": "OSS मासिक रीसेट", + "team-topup-bonus-2025": "टीम टॉप-अप बोनस-2025", + "accounting_adjustment": "लेखा समायोजन", + "credits_expired": "क्रेडिट कालबाह्य झाले" + } }, "inviteMember": { "emailError": "वैध ईमेल पत्ता प्रविष्ट करा", @@ -2840,12 +2939,17 @@ "emptyDescription": "इनव्हॉइस प्रत्येक बिलिंग चक्रात आपोआप निर्माण केले जातात आणि तुमची संस्था बिल केली जाईल तेव्हा येथे दिसतील.", "emptyTitle": "इनव्हॉइस नाहीत", "invoiceFallback": "इनव्हॉइस", - "statusOpen": "उघडे", - "statusPaid": "दिलेले", - "statusVoid": "रद्द", "title": "इनव्हॉइस", "downloadFailed": "इनव्हॉइस डाउनलोड करता आले नाही. तुमचे कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.", - "sharingUnavailable": "या डिव्हाइसवर सामायिकरण उपलब्ध नाही." + "sharingUnavailable": "या डिव्हाइसवर सामायिकरण उपलब्ध नाही.", + "status": { + "paid": "दिलेले", + "open": "उघडे", + "void": "रद्द", + "draft": "मसुदा", + "uncollectible": "वसूल करता न येणारे", + "unknown": "अज्ञात" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "संकलित डेटा", "free": "मोफत", - "couldNotUpdateFavorites": "आवडी अद्यतनित करता आल्या नाहीत" + "couldNotUpdateFavorites": "आवडी अद्यतनित करता आल्या नाहीत", + "thinkingEffort": { + "none": "काहीही नाही", + "minimal": "किमान", + "low": "कमी", + "medium": "मध्यम", + "high": "उच्च", + "xhigh": "अति उच्च", + "max": "जास्तीत जास्त" + } } } diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index 4c43d5334d..0c7f986692 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Memilih {{label}}, ketik untuk menukar pilihan", "tapToComment": "{{label}}, ketik untuk mengomen", - "truncationBanner": "Menunjukkan {{limit}} fail pertama daripada {{total}} fail yang diubah — had API GitHub" + "truncationBanner": "Menunjukkan {{limit}} fail pertama daripada {{total}} fail yang diubah — had API GitHub", + "statusAdded": "Ditambah", + "statusContext": "Konteks", + "statusDeleted": "Dipadam" }, "linkPasteClipboardEmpty": "Papan keratan kosong", "linkPasteNotAPullRequest": "Bukan pautan permintaan tarik GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Semakan ini tidak boleh dihantar seadanya. PR mungkin telah berubah, atau anda tidak boleh menyemak permintaan tarik anda sendiri.", "couldNotPostComment": "Tidak dapat menyiarkan komen.", "couldNotSubmitReview": "Tidak dapat menghantar semakan. Semak sambungan anda dan cuba lagi." + }, + "operation": { + "couldNotReply": "Tidak dapat membalas.", + "couldNotCompleteAction": "Tidak dapat melengkapkan tindakan ini.", + "mergeResultDefaultError": "GitHub tidak melengkapkan gabungan." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Pembayaran tertunggak. Sila kemas kini kaedah pembayaran anda.", "subscriptionCancels": "Langganan dibatalkan {{date}}", "trialDaysRemaining": "Percubaan: {{remaining}}", - "trialEndingSoon": "Percubaan tamat tidak lama lagi: {{remaining}}" + "trialEndingSoon": "Percubaan tamat tidak lama lagi: {{remaining}}", + "planName": { + "commit": "Komit", + "standard": "Standard" + } }, "changelog": { "title": "Apakah Baharu", @@ -1189,7 +1201,8 @@ "strongArm": "Lengan kuat", "talisman": "Azimat" }, - "remoteSpawnFilesNotSupported": "Instance ini tidak boleh menerima fail." + "remoteSpawnFilesNotSupported": "Instance ini tidak boleh menerima fail.", + "instanceSwitcherTitle": "Instance KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Gagal", "cancelled": "Dibatalkan", "interrupted": "Terganggu" - } + }, + "reviewStyle": { + "strict": "Ketat", + "balanced": "Seimbang", + "lenient": "Longgar", + "roast": "Roast" + }, + "focusArea": { + "security": "Keselamatan", + "performance": "Prestasi", + "bugs": "Bug", + "style": "Gaya", + "testing": "Pengujian", + "documentation": "Dokumentasi" + }, + "gateThreshold": { + "off": "Mati", + "all": "Semua", + "warning": "Amaran", + "critical": "Kritikal" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Penyemak Kod memerlukan perhatian", + "description": "Penyemak Kod dinyahdayakan kerana Kilo tidak dapat mengakses repositori ini dengan pemasangan Apl GitHub yang aktif. Kemas kini pemasangan Apl GitHub, kemudian dayakan Penyemak Kod semula.", + "recoveryLabel": "Kemas Kini Apl GitHub" + }, + "githubIpAllowList": { + "title": "Penyemak Kod memerlukan perhatian", + "description": "Penyemak Kod dinyahdayakan kerana organisasi GitHub ini menggunakan senarai benarkan IP yang menyekat Kilo. Hubungi hi@kilocode.ai untuk bantuan, kemudian dayakan Penyemak Kod semula.", + "recoveryLabel": "Hubungi sokongan" + }, + "gitlabProjectAccessRequired": { + "title": "Penyemak Kod memerlukan perhatian", + "description": "Penyemak Kod dinyahdayakan kerana Kilo tidak dapat mencipta Token Akses Projek GitLab untuk projek ini. Beri akses Maintainer atau dayakan Token Akses Projek, kemudian dayakan Penyemak Kod semula.", + "recoveryLabel": "Kemas Kini Integrasi GitLab" + }, + "byokInvalidKey": { + "title": "Penyemak Kod memerlukan perhatian", + "description": "Penyemak Kod dinyahdayakan kerana kunci API BYOK yang dipilih tidak sah, telah dibatalkan, atau tiada kebenaran. Kemas kini kunci atau pilih model lain, kemudian dayakan Penyemak Kod semula.", + "recoveryLabel": "Kemas Kini Tetapan BYOK" + }, + "selectedModelUnavailable": { + "title": "Penyemak Kod memerlukan perhatian", + "description": "Penyemak Kod dinyahdayakan kerana model yang dipilih tidak tersedia untuk sesi ejen awan. Pilih model yang tersedia, kemudian dayakan Penyemak Kod semula.", + "recoveryLabel": "Kemas Kini Tetapan Penyemak Kod" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Penyemak Kod memerlukan perhatian", + "description": "Penyemak Kod dinyahdayakan selepas tiga tamat masa klon repositori hari ini. Hubungi hi@kilocode.ai untuk bantuan, kemudian dayakan Penyemak Kod semula.", + "recoveryLabel": "Hubungi sokongan" + } + }, + "unknownError": "Ralat tidak diketahui" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Penemuan berada di bawah ambang keterukan automatik. Pemulihan manual masih boleh bermula apabila gerbang keselamatan diluluskan.", "beforeEnablement": "Analisis selesai sebelum Pemulihan Auto didayakan. Pemulihan manual masih boleh bermula apabila gerbang keselamatan diluluskan.", "generic": "Pemulihan tidak tersedia untuk penemuan ini." + }, + "commandFailure": { + "ownerCapReached": "Kapasiti analisis penuh. Tunggu analisis aktif selesai, kemudian cuba lagi.", + "githubTokenUnavailable": "Pengesahan GitHub memerlukan perhatian. Sahkan semula Apl GitHub, kemudian cuba lagi.", + "githubAuthInvalid": "Pengesahan GitHub memerlukan perhatian. Sahkan semula Apl GitHub, kemudian cuba lagi.", + "findingUnavailable": "Penemuan tidak lagi tersedia. Muat semula penemuan dan cuba lagi jika ia masih terbuka.", + "repositoryUnavailable": "Repositori tidak lagi tersedia kepada Apl GitHub. Muat semula akses repositori, kemudian cuba lagi.", + "invalidDismissTarget": "Penemuan tidak boleh diketepikan kerana sasaran Dependabotnya tidak sah.", + "commandStalled": "Tindakan beratur tidak selesai dalam masa. Cuba tindakan semula.", + "queueRetriesExhausted": "Tindakan tidak dapat diselesaikan selepas beberapa percubaan. Cuba tindakan semula.", + "queueAdmissionFailed": "Tindakan beratur tidak dapat diterima. Cuba tindakan semula.", + "generic": "Tindakan beratur gagal. Cuba tindakan semula." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Cetek", + "deep": "Mendalam" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Tambah {{name}} ke kegemaran", "removeFromFavorites": "Buang {{name}} daripada kegemaran", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model sesi" }, "attachmentPreview": { "openFailedRetry": "Gagal membuka fail. Sila cuba lagi.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Tambah kredit", - "description": "Tambah kredit untuk mengekalkan penggunaan berjalan." + "description": "Tambah kredit untuk mengekalkan penggunaan berjalan.", + "billingPage": "halaman bil" }, "deviceSessions": { "couldNotLoad": "Tidak dapat memuatkan sesi", @@ -2710,7 +2795,10 @@ "restoreFailed": "Gagal memulihkan pembelian. Cuba lagi.", "purchaseFailed": "Gagal menyiapkan pembelian.", "purchaseStartFailed": "Gagal memulakan pembelian App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass pada Akaun Apple ini kepunyaan akaun Kilo yang berbeza." + "purchaseOwnedByAnotherAccount": "Kilo Pass pada Akaun Apple ini kepunyaan akaun Kilo yang berbeza.", + "couldNotConnectToAppStore": "Tidak dapat menyambung ke App Store. Semak sambungan anda dan cuba lagi.", + "noMatchingProducts": "App Store tidak mengembalikan produk Kilo Pass yang sepadan.", + "purchaseMissingSignedTransaction": "Pembelian App Store tidak menyertakan transaksi JWS yang ditandatangani." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Perlu diperbaiki", "sorryTitle": "Kami minta maaf mendengarnya!", "sorryMessage": "Sila beritahu kami apa yang perlu diperbaiki. Jurutera yang bertanggungjawab ke atas apl membaca setiap laporan!", - "emailUs": "E-mel kami" + "emailUs": "E-mel kami", + "emailSubject": "maklum balas apl mudah alih" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Tiada aktiviti kredit", "expires": "Tamat {{date}}", "title": "Aktiviti kredit", - "transactionFallback": "Transaksi kredit" + "transactionFallback": "Transaksi kredit", + "category": { + "organization_custom": "Kustom organisasi", + "parent_to_child_transfer_in": "Pemindahan masuk ibu bapa ke anak", + "parent_to_child_transfer_out": "Pemindahan keluar ibu bapa ke anak", + "oss-sponsorship": "Penajaan OSS", + "oss-monthly-reset": "Tetapan semula bulanan OSS", + "team-topup-bonus-2025": "Bonus tambah nilai pasukan-2025", + "accounting_adjustment": "Pelarasan perakaunan", + "credits_expired": "Kredit tamat tempoh" + } }, "inviteMember": { "emailError": "Masukkan alamat e-mel yang sah", @@ -2840,12 +2939,17 @@ "emptyDescription": "Invois dijana secara automatik setiap kitaran pengebilan dan akan muncul di sini setelah organisasi anda dibilkan.", "emptyTitle": "Tiada invois", "invoiceFallback": "Invois", - "statusOpen": "Terbuka", - "statusPaid": "Berbayar", - "statusVoid": "Batal", "title": "Invois", "downloadFailed": "Tidak dapat memuat turun invois. Semak sambungan anda dan cuba lagi.", - "sharingUnavailable": "Perkongsian tidak tersedia pada peranti ini." + "sharingUnavailable": "Perkongsian tidak tersedia pada peranti ini.", + "status": { + "paid": "Berbayar", + "open": "Terbuka", + "void": "Batal", + "draft": "Draf", + "uncollectible": "Tidak boleh dituntut", + "unknown": "Tidak diketahui" + } }, "lowBalanceAlert": { "emailPlaceholder": "nama@syarikat.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data dikumpul", "free": "Percuma", - "couldNotUpdateFavorites": "Tidak dapat mengemas kini kegemaran" + "couldNotUpdateFavorites": "Tidak dapat mengemas kini kegemaran", + "thinkingEffort": { + "none": "Tiada", + "minimal": "Minimum", + "low": "Rendah", + "medium": "Sederhana", + "high": "Tinggi", + "xhigh": "Sangat Tinggi", + "max": "Maksimum" + } } } diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 1fc8179c8a..9d12a584d7 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -594,7 +594,10 @@ "diff": { "selectedTapToChange": "Magħżul {{label}}, mess biex tibdel l-għażla", "tapToComment": "{{label}}, mess biex tikkummenta", - "truncationBanner": "Qed juri l-ewwel {{limit}} minn {{total}} fajls mibdula — il-limitu tal-API ta' GitHub" + "truncationBanner": "Qed juri l-ewwel {{limit}} minn {{total}} fajls mibdula — il-limitu tal-API ta' GitHub", + "statusAdded": "Miżjud", + "statusContext": "Kuntest", + "statusDeleted": "Imħassar" }, "linkPasteClipboardEmpty": "L-appostru huwa vojt", "linkPasteNotAPullRequest": "Mhux link ta' pull request ta' GitHub", @@ -608,6 +611,11 @@ "reviewNotSubmitted": "Din ir-reviżjoni ma tistax tintbagħat kif inhi. Il-PR seta' nbidel, jew ma tistax tirrevedi l-pull request tiegħek stess.", "couldNotPostComment": "Ma setax jitpoġġa kument.", "couldNotSubmitReview": "Ma setgħetx tintbagħat ir-reviżjoni. Iċċekkja l-konnessjoni tiegħek u erġa' pprova." + }, + "operation": { + "couldNotReply": "Ma setgħetx tingħata risposta.", + "couldNotCompleteAction": "Ma setgħetx titlesta din l-azzjoni.", + "mergeResultDefaultError": "GitHub ma lestiex il-merge." } }, "notifications": { @@ -845,7 +853,11 @@ "paymentPastDue": "Ħlas tard. Jekk jogħġbok aġġorna l-metodu tal-ħlas tiegħek.", "subscriptionCancels": "L-abbonament jikkanċella fil-{{date}}", "trialDaysRemaining": "Prova: {{remaining}}", - "trialEndingSoon": "Il-prova dalwaqt tintemm: {{remaining}}" + "trialEndingSoon": "Il-prova dalwaqt tintemm: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "X'Ġdid", @@ -1216,7 +1228,8 @@ "strongArm": "Driegħ b'saħħtu", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Din l-istanza ma tistax tirċievi fajls." + "remoteSpawnFilesNotSupported": "Din l-istanza ma tistax tirċievi fajls.", + "instanceSwitcherTitle": "Istanza ta' KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1414,7 +1427,60 @@ "failed": "Falla", "cancelled": "Ikkkanċellat", "interrupted": "Interrott" - } + }, + "reviewStyle": { + "strict": "Strett", + "balanced": "Bilanċjat", + "lenient": "Permissiv", + "roast": "Roast" + }, + "focusArea": { + "security": "Sigurtà", + "performance": "Prestazzjoni", + "bugs": "Bugs", + "style": "Stil", + "testing": "Ittestjar", + "documentation": "Dokumentazzjoni" + }, + "gateThreshold": { + "off": "Mitfi", + "all": "Kollha", + "warning": "Twissija", + "critical": "Kritiku" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer jeħtieġ attenzjoni", + "description": "Code Reviewer ġie diżattivat għaliex Kilo ma jistax jaċċessa dan ir-repository b'installazzjoni attiva tal-GitHub App. Aġġorna l-installazzjoni tal-GitHub App, imbagħad erġa' attiva Code Reviewer.", + "recoveryLabel": "Aġġorna l-GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer jeħtieġ attenzjoni", + "description": "Code Reviewer ġie diżattivat għaliex din l-organizzazzjoni ta' GitHub tuża lista ta' IP permessi li timblokka lil Kilo. Ikkuntattja hi@kilocode.ai għall-għajnuna, imbagħad erġa' attiva Code Reviewer.", + "recoveryLabel": "Ikkuntattja l-appoġġ" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer jeħtieġ attenzjoni", + "description": "Code Reviewer ġie diżattivat għaliex Kilo ma jistax joħloq GitLab Project Access Token għal dan il-proġett. Agħti aċċess ta' Maintainer jew attiva l-Project Access Tokens, imbagħad erġa' attiva Code Reviewer.", + "recoveryLabel": "Aġġorna l-integrazzjoni tal-GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer jeħtieġ attenzjoni", + "description": "Code Reviewer ġie diżattivat għaliex iċ-ċavetta tal-API BYOK magħżula mhix valida, ġiet irtirata, jew m'għandhiex permess. Aġġorna ċ-ċavetta jew agħżel mudell ieħor, imbagħad erġa' attiva Code Reviewer.", + "recoveryLabel": "Aġġorna s-settings tal-BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer jeħtieġ attenzjoni", + "description": "Code Reviewer ġie diżattivat għaliex il-mudell magħżul mhux disponibbli għas-sessjonijiet tal-cloud agent. Agħżel mudell disponibbli, imbagħad erġa' attiva Code Reviewer.", + "recoveryLabel": "Aġġorna s-settings tal-Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer jeħtieġ attenzjoni", + "description": "Code Reviewer ġie diżattivat wara tliet timeout tal-clone tar-repository illum. Ikkuntattja hi@kilocode.ai għall-għajnuna, imbagħad erġa' attiva Code Reviewer.", + "recoveryLabel": "Ikkuntattja l-appoġġ" + } + }, + "unknownError": "Żball mhux magħruf" }, "securityAgent": { "filter": { @@ -1966,6 +2032,23 @@ "belowThreshold": "Is-sejba hija taħt il-limitu awtomatiku tas-severità. Ir-rimedju manwali xorta jista' jibda meta jgħaddu l-kontrolli tas-sigurtà.", "beforeEnablement": "L-analiżi tlestiet qabel ma ġie attivat ir-Rimedju Awtomatiku. Ir-rimedju manwali xorta jista' jibda meta jgħaddu l-kontrolli tas-sigurtà.", "generic": "Ir-rimedju mhux disponibbli għal din is-sejba." + }, + "commandFailure": { + "ownerCapReached": "Il-kapaċità tal-analiżi hija mimlija. Stenna li tispiċċa analiżi attiva, imbagħad erġa' pprova.", + "githubTokenUnavailable": "L-awtorizzazzjoni ta' GitHub teħtieġ attenzjoni. Erġa' awtorizza l-GitHub App, imbagħad erġa' pprova.", + "githubAuthInvalid": "L-awtorizzazzjoni ta' GitHub teħtieġ attenzjoni. Erġa' awtorizza l-GitHub App, imbagħad erġa' pprova.", + "findingUnavailable": "Is-sejba m'għadhiex disponibbli. Aġġorna s-sejbiet u erġa' pprova jekk tibqa' miftuħa.", + "repositoryUnavailable": "Ir-repository m'għadux disponibbli għall-GitHub App. Aġġorna l-aċċess tar-repository, imbagħad erġa' pprova.", + "invalidDismissTarget": "Is-sejba ma tistax tiġi skartata għaliex il-mira tagħha ta' Dependabot mhix valida.", + "commandStalled": "L-azzjoni fil-kju ma spiċċatx fil-ħin. Erġa' pprova l-azzjoni.", + "queueRetriesExhausted": "L-azzjoni ma setgħetx titlesta wara diversi tentattivi. Erġa' pprova l-azzjoni.", + "queueAdmissionFailed": "L-azzjoni fil-kju ma setgħetx tiġi ammessa. Erġa' pprova l-azzjoni.", + "generic": "L-azzjoni fil-kju fallejt. Erġa' pprova l-azzjoni." + }, + "analysisMode": { + "auto": "Awto", + "shallow": "Baxx", + "deep": "Fond" } }, "agents": { @@ -2447,7 +2530,8 @@ "addToFavorites": "Żid {{name}} mal-favoriti", "removeFromFavorites": "Neħħi {{name}} mill-favoriti", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Mudell tas-sessjoni" }, "attachmentPreview": { "openFailedRetry": "Ma setax jinfetaħ il-fajl. Ipprova għal darb'oħra.", @@ -2582,7 +2666,8 @@ }, "addCredits": { "cta": "Żid krediti", - "description": "Żid krediti biex l-użu jkompli jaħdem." + "description": "Żid krediti biex l-użu jkompli jaħdem.", + "billingPage": "paġna tal-ħlas" }, "deviceSessions": { "couldNotLoad": "Ma setgħux jitgħabbew is-sessjonijiet", @@ -2770,7 +2855,10 @@ "restoreFailed": "Ma setgħux jiġu restawrati x-xirjiet. Erġa' pprova.", "purchaseFailed": "Ma setax jitlesta x-xiri.", "purchaseStartFailed": "Ma setax jibda x-xiri mill-App Store.", - "purchaseOwnedByAnotherAccount": "Il-Kilo Pass fuq dan l-Apple Account jappartjeni għal kont ieħor ta' Kilo." + "purchaseOwnedByAnotherAccount": "Il-Kilo Pass fuq dan l-Apple Account jappartjeni għal kont ieħor ta' Kilo.", + "couldNotConnectToAppStore": "Ma setgħetx tikkonnettja mal-App Store. Iċċekkja l-konnessjoni tiegħek u erġa' pprova.", + "noMatchingProducts": "L-ebda prodott ta' Kilo Pass li jaqbel ma rritorna l-App Store.", + "purchaseMissingSignedTransaction": "Ix-xiri tal-App Store ma kienx jinkludi JWS ta' transazzjoni ffirmata." }, "consent": { "kilo": "Kilo", @@ -2866,7 +2954,8 @@ "needsWork": "Għandu bżonn titjib", "sorryTitle": "Iddispjċina li nisimgħu dan!", "sorryMessage": "Jekk jogħġbok għidilna x'għandu jitjieb. L-inġinier responsabbli mill-app jaqra kull rapport!", - "emailUs": "Ibgħatilna email" + "emailUs": "Ibgħatilna email", + "emailSubject": "feedback dwar l-app tal-mowbajl" }, "organization": { "boundary": { @@ -2883,7 +2972,17 @@ "emptyTitle": "L-ebda attività ta' kreditu", "expires": "Jiskadi {{date}}", "title": "Attività ta' kreditu", - "transactionFallback": "Transazzjoni ta' kreditu" + "transactionFallback": "Transazzjoni ta' kreditu", + "category": { + "organization_custom": "Organizzazzjoni personalizzata", + "parent_to_child_transfer_in": "Trasferiment 'il ġewwa minn ġenitur għal wild", + "parent_to_child_transfer_out": "Trasferiment 'il barra minn wild għal ġenitur", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Aġġustament tal-kontabilità", + "credits_expired": "Krediti skaduti" + } }, "inviteMember": { "emailError": "Daħħal indirizz ta' email validu", @@ -2900,12 +2999,17 @@ "emptyDescription": "Il-fatturi jiġu ġġenerati awtomatikament kull ċiklu ta' ħlas u se jidhru hawnhekk ladarba l-organizzazzjoni tiegħek tiġi fatturata.", "emptyTitle": "L-ebda fattura", "invoiceFallback": "Fattura", - "statusOpen": "Miftuħ", - "statusPaid": "Imħallas", - "statusVoid": "Battal", "title": "Fatturi", "downloadFailed": "Ma setgħetx titniżżel il-fattura. Iċċekkja l-konnessjoni tiegħek u erġa' pprova.", - "sharingUnavailable": "Il-qsim mhux disponibbli fuq dan it-tagħmir." + "sharingUnavailable": "Il-qsim mhux disponibbli fuq dan it-tagħmir.", + "status": { + "paid": "Imħallas", + "open": "Miftuħ", + "void": "Battal", + "draft": "Abbozz", + "uncollectible": "Ma jistax jinġabar", + "unknown": "Mhux magħruf" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3034,6 +3138,15 @@ "models": { "dataCollected": "Dejta miġbura", "free": "B'xejn", - "couldNotUpdateFavorites": "Ma setgħux jiġu aġġornati l-favoriti" + "couldNotUpdateFavorites": "Ma setgħux jiġu aġġornati l-favoriti", + "thinkingEffort": { + "none": "Xejn", + "minimal": "Minimu", + "low": "Baxx", + "medium": "Medju", + "high": "Għoli", + "xhigh": "Għoli ħafna", + "max": "Massimu" + } } } diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index 04d1eaef84..1c6b6d670a 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} ရွေးထားသည်၊ ရွေးချယ်မှုပြောင်းရန် နှိပ်ပါ", "tapToComment": "{{label}}, မှတ်ချက်ပေးရန် နှိပ်ပါ", - "truncationBanner": "ပြောင်းလဲထားသော ဖိုင် {{total}} ခုအနက် ပထမဆုံး {{limit}} ခုကို ပြသနေသည် — GitHub API ကန့်သတ်ချက်" + "truncationBanner": "ပြောင်းလဲထားသော ဖိုင် {{total}} ခုအနက် ပထမဆုံး {{limit}} ခုကို ပြသနေသည် — GitHub API ကန့်သတ်ချက်", + "statusAdded": "ထည့်ပြီး", + "statusContext": "Context", + "statusDeleted": "ဖျက်ပြီး" }, "linkPasteClipboardEmpty": "ကလစ်ဘုတ် ဗလာဖြစ်သည်", "linkPasteNotAPullRequest": "GitHub pull request လင့်ခ် မဟုတ်ပါ", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ဤသုံးသပ်မှုကို လက်ရှိအတိုင်း တင်သွင်း၍မရပါ။ PR ပြောင်းလဲသွားခြင်း သို့မဟုတ် သင့်ကိုယ်ပိုင် pull request ကို သင်သုံးသပ်၍မရခြင်း ဖြစ်နိုင်သည်။", "couldNotPostComment": "မှတ်ချက် တင်နိုင်ခြင်း မရှိပါ။", "couldNotSubmitReview": "သုံးသပ်မှု တင်သွင်း၍မရပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ပြီး ထပ်စမ်းကြည့်ပါ။" + }, + "operation": { + "couldNotReply": "အကြောင်းပြန်မရပါ။", + "couldNotCompleteAction": "ဤလုပ်ဆောင်ချက်ကို မပြီးမြောက်နိုင်ပါ။", + "mergeResultDefaultError": "GitHub သည် ပေါင်းစည်းမှုကို မပြီးမြောက်ခဲ့ပါ။" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ပေးချေမှု နောက်ကျနေသည်။ သင့်ပေးချေနည်းကို မွမ်းမံပါ။", "subscriptionCancels": "စာရင်းသွင်းမှု {{date}} တွင် ပယ်ဖျက်မည်", "trialDaysRemaining": "စမ်းသုံး- {{remaining}}", - "trialEndingSoon": "စမ်းသုံး မကြာမီ ကုန်ဆုံး- {{remaining}}" + "trialEndingSoon": "စမ်းသုံး မကြာမီ ကုန်ဆုံး- {{remaining}}", + "planName": { + "commit": "ကတိပြု", + "standard": "Standard" + } }, "changelog": { "title": "အသစ်အဆန်း", @@ -1189,7 +1201,8 @@ "strongArm": "သန်မာသောလက်မောင်း", "talisman": "လက်ဆွဲရတနာ" }, - "remoteSpawnFilesNotSupported": "ဤ instance သည် ဖိုင်များကို လက်ခံ၍မရပါ။" + "remoteSpawnFilesNotSupported": "ဤ instance သည် ဖိုင်များကို လက်ခံ၍မရပါ။", + "instanceSwitcherTitle": "KiloClaw အင်စတန့်" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "မအောင်မြင်", "cancelled": "ဖျက်သိမ်းပြီး", "interrupted": "ကြားဖြတ်ရပ်တန့်" - } + }, + "reviewStyle": { + "strict": "တင်းကျပ်", + "balanced": "ဟန်ချက်ညီ", + "lenient": "ဖြေလျှော့", + "roast": "Roast" + }, + "focusArea": { + "security": "လုံခြုံရေး", + "performance": "စွမ်းဆောင်ရည်", + "bugs": "Bugs", + "style": "ပုံစံ", + "testing": "စမ်းသပ်ခြင်း", + "documentation": "စာရွက်စာတမ်း" + }, + "gateThreshold": { + "off": "ပိတ်", + "all": "အားလုံး", + "warning": "သတိပေးချက်", + "critical": "အရေးကြီး" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer အာရုံစိုက်ရန် လိုအပ်သည်", + "description": "Code Reviewer ကို ပိတ်ထားခဲ့သည်။ အဘယ်ကြောင့်ဆိုသော် Kilo သည် ဤ repository ကို တက်ကြွသော GitHub App တပ်ဆင်မှုဖြင့် ဝင်ရောက်၍မရသောကြောင့်ဖြစ်သည်။ GitHub App တပ်ဆင်မှုကို ပြန်လည်မွမ်းမံပြီး Code Reviewer ကို ပြန်ဖွင့်ပါ။", + "recoveryLabel": "GitHub App ကို မွမ်းမံပါ" + }, + "githubIpAllowList": { + "title": "Code Reviewer အာရုံစိုက်ရန် လိုအပ်သည်", + "description": "ဤ GitHub အဖွဲ့အစည်းသည် Kilo ကို ပိတ်ဆို့သော IP ခွင့်ပြုစာရင်းကို အသုံးပြုသောကြောင့် Code Reviewer ကို ပိတ်ထားခဲ့သည်။ အကူအညီအတွက် hi@kilocode.ai သို့ ဆက်သွယ်ပြီး Code Reviewer ကို ပြန်ဖွင့်ပါ။", + "recoveryLabel": "ပံ့ပိုးမှုကို ဆက်သွယ်ပါ" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer အာရုံစိုက်ရန် လိုအပ်သည်", + "description": "Kilo သည် ဤပရောဂျက်အတွက် GitLab Project Access Token ကို ဖန်တီး၍မရသောကြောင့် Code Reviewer ကို ပိတ်ထားခဲ့သည်။ Maintainer ဝင်ရောက်ခွင့် ပေးပါ သို့မဟုတ် Project Access Tokens ကို ဖွင့်ပြီး Code Reviewer ကို ပြန်ဖွင့်ပါ။", + "recoveryLabel": "GitLab ပေါင်းစည်းမှုကို မွမ်းမံပါ" + }, + "byokInvalidKey": { + "title": "Code Reviewer အာရုံစိုက်ရန် လိုအပ်သည်", + "description": "ရွေးချယ်ထားသော BYOK API သော့သည် မမှန်ကန်၊ ရုပ်သိမ်းခံထားရ သို့မဟုတ် ခွင့်ပြုချက်မရှိသောကြောင့် Code Reviewer ကို ပိတ်ထားခဲ့သည်။ သော့ကို မွမ်းမံပါ သို့မဟုတ် အခြားမော်ဒယ်ကို ရွေးပြီး Code Reviewer ကို ပြန်ဖွင့်ပါ။", + "recoveryLabel": "BYOK ဆက်တင်များကို မွမ်းမံပါ" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer အာရုံစိုက်ရန် လိုအပ်သည်", + "description": "ရွေးချယ်ထားသော မော်ဒယ်သည် cloud agent ဆက်ရှင်များအတွက် မရနိုင်သောကြောင့် Code Reviewer ကို ပိတ်ထားခဲ့သည်။ ရနိုင်သော မော်ဒယ်ကို ရွေးပြီး Code Reviewer ကို ပြန်ဖွင့်ပါ။", + "recoveryLabel": "Code Reviewer ဆက်တင်များကို မွမ်းမံပါ" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer အာရုံစိုက်ရန် လိုအပ်သည်", + "description": "ယနေ့ repository clone သုံးကြိမ် timeout ဖြစ်ပြီးနောက် Code Reviewer ကို ပိတ်ထားခဲ့သည်။ အကူအညီအတွက် hi@kilocode.ai သို့ ဆက်သွယ်ပြီး Code Reviewer ကို ပြန်ဖွင့်ပါ။", + "recoveryLabel": "ပံ့ပိုးမှုကို ဆက်သွယ်ပါ" + } + }, + "unknownError": "အမည်မသိ အမှား" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "တွေ့ရှိချက်သည် အလိုအလျောက် အဆင့်သတ်မှတ်ချက်အောက်တွင် ရှိသည်။ လုံခြုံရေးစစ်ဆေးမှုများ အောင်မြင်ပါက ကိုယ်တိုင် ပြုပြင်မှု စတင်နိုင်ဆဲဖြစ်သည်။", "beforeEnablement": "ခွဲခြမ်းစိတ်ဖြာမှုကို အလိုအလျောက် ပြုပြင်မှု မဖွင့်မီ ပြီးစီးခဲ့သည်။ လုံခြုံရေးစစ်ဆေးမှုများ အောင်မြင်ပါက ကိုယ်တိုင် ပြုပြင်မှု စတင်နိုင်ဆဲဖြစ်သည်။", "generic": "ဤတွေ့ရှိချက်အတွက် ပြုပြင်မှု မရရှိနိုင်ပါ။" + }, + "commandFailure": { + "ownerCapReached": "ခွဲခြမ်းစိတ်ဖြာမှု စွမ်းရည် ပြည့်နေပါသည်။ လုပ်ဆောင်နေသော ခွဲခြမ်းစိတ်ဖြာမှု ပြီးသည်အထိ စောင့်ပြီး ထပ်စမ်းပါ။", + "githubTokenUnavailable": "GitHub ခွင့်ပြုချက် အာရုံစိုက်ရန် လိုအပ်ပါသည်။ GitHub App ကို ပြန်လည်ခွင့်ပြုပြီး ထပ်စမ်းပါ။", + "githubAuthInvalid": "GitHub ခွင့်ပြုချက် အာရုံစိုက်ရန် လိုအပ်ပါသည်။ GitHub App ကို ပြန်လည်ခွင့်ပြုပြီး ထပ်စမ်းပါ။", + "findingUnavailable": "တွေ့ရှိချက် မရနိုင်တော့ပါ။ တွေ့ရှိချက်များကို ပြန်ဆန်းပြီး ၎င်းဖွင့်ထားဆဲဖြစ်ပါက ထပ်စမ်းပါ။", + "repositoryUnavailable": "Repository သည် GitHub App အတွက် မရနိုင်တော့ပါ။ Repository ဝင်ရောက်ခွင့်ကို ပြန်ဆန်းပြီး ထပ်စမ်းပါ။", + "invalidDismissTarget": "၎င်း၏ Dependabot ပစ်မှတ်သည် မမှန်ကန်သောကြောင့် တွေ့ရှိချက်ကို ပယ်ဖျက်၍မရပါ။", + "commandStalled": "စောင့်ဆိုင်းထားသော လုပ်ဆောင်ချက်သည် အချိန်မီ မပြီးဆုံးပါ။ လုပ်ဆောင်ချက်ကို ထပ်စမ်းပါ။", + "queueRetriesExhausted": "အကြိမ်ပေါင်းများစွာ ကြိုးစားပြီးနောက် လုပ်ဆောင်ချက်ကို မပြီးမြောက်နိုင်ပါ။ လုပ်ဆောင်ချက်ကို ထပ်စမ်းပါ။", + "queueAdmissionFailed": "စောင့်ဆိုင်းထားသော လုပ်ဆောင်ချက်ကို လက်ခံ၍မရပါ။ လုပ်ဆောင်ချက်ကို ထပ်စမ်းပါ။", + "generic": "စောင့်ဆိုင်းထားသော လုပ်ဆောင်ချက် မအောင်မြင်ပါ။ လုပ်ဆောင်ချက်ကို ထပ်စမ်းပါ။" + }, + "analysisMode": { + "auto": "အလိုအလျောက်", + "shallow": "ပေါ့ပါး", + "deep": "နက်ရှိုင်း" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} ကို စိတ်ကြိုက်များသို့ ထည့်ပါ", "removeFromFavorites": "{{name}} ကို စိတ်ကြိုက်များမှ ဖယ်ရှားပါ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "ဆက်ရှင် မော်ဒယ်" }, "attachmentPreview": { "openFailedRetry": "ဖိုင်ဖွင့်ရန် မအောင်မြင်ပါ။ ထပ်ကြိုးစားပါ။", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "credit များ ထည့်ပါ", - "description": "အသုံးပြုမှု ဆက်လုပ်ရန် credit များ ထည့်ပါ။" + "description": "အသုံးပြုမှု ဆက်လုပ်ရန် credit များ ထည့်ပါ။", + "billingPage": "ငွေပေးချေမှု စာမျက်နှာ" }, "deviceSessions": { "couldNotLoad": "session များကို မဖွင့်နိုင်ပါ", @@ -2710,7 +2795,10 @@ "restoreFailed": "ဝယ်ယူမှုများ ပြန်ယူရန် မအောင်မြင်ပါ။ ထပ်ကြိုးစားပါ။", "purchaseFailed": "ဝယ်ယူမှု ပြီးမြောက်ရန် မအောင်မြင်ပါ။", "purchaseStartFailed": "App Store ဝယ်ယူမှု စတင်ရန် မအောင်မြင်ပါ။", - "purchaseOwnedByAnotherAccount": "ဤ Apple Account ရှိ Kilo Pass သည် အခြား Kilo အကောင့်တစ်ခုနှင့် သက်ဆိုင်သည်။" + "purchaseOwnedByAnotherAccount": "ဤ Apple Account ရှိ Kilo Pass သည် အခြား Kilo အကောင့်တစ်ခုနှင့် သက်ဆိုင်သည်။", + "couldNotConnectToAppStore": "App Store သို့ ချိတ်ဆက်၍မရပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ပြီး ထပ်စမ်းကြည့်ပါ။", + "noMatchingProducts": "App Store မှ ကိုက်ညီသော Kilo Pass ထုတ်ကုန်များ ပြန်ပို့ခြင်း မရှိပါ။", + "purchaseMissingSignedTransaction": "App Store ဝယ်ယူမှုတွင် လက်မှတ်ရေးထိုးထားသော ငွေပေးငွေယူ JWS မပါဝင်ပါ။" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "တိုးတက်ရန် လိုသည်", "sorryTitle": "ထိုသတင်းကြားရသည့်အတွက် ဝမ်းနည်းပါသည်။", "sorryMessage": "ဘာတွေ ပိုကောင်းအောင် လုပ်ရန် လိုသည်ကို အသိပေးပါ။ အက်ပ်တာဝန်ခံ အင်ဂျင်နီယာသည် အစီရင်ခံချက်တိုင်းကို ဖတ်ပါသည်။", - "emailUs": "ကျွန်ုပ်တို့ထံ အီးမေးလ် ပို့ပါ" + "emailUs": "ကျွန်ုပ်တို့ထံ အီးမေးလ် ပို့ပါ", + "emailSubject": "မိုဘိုင်းအက်ပ် တုံ့ပြန်ချက်" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "credit လုပ်ဆောင်ချက် မရှိပါ", "expires": "{{date}} တွင် သက်တမ်းကုန်သည်", "title": "credit လုပ်ဆောင်ချက်", - "transactionFallback": "credit အရောင်းအဝယ်" + "transactionFallback": "credit အရောင်းအဝယ်", + "category": { + "organization_custom": "အဖွဲ့အစည်း စိတ်ကြိုက်", + "parent_to_child_transfer_in": "ပင်မမှ ကလေးသို့ ဝင်လွှဲပြောင်းမှု", + "parent_to_child_transfer_out": "ကလေးမှ ပင်မသို့ ထွက်လွှဲပြောင်းမှု", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "စာရင်းကိုင် ပြုပြင်မှု", + "credits_expired": "သက်တမ်းကုန် ခရက်ဒစ်များ" + } }, "inviteMember": { "emailError": "မှန်ကန်သော အီးမေးလ် လိပ်စာ ထည့်ပါ", @@ -2840,12 +2939,17 @@ "emptyDescription": "ငွေတောင်းခံလွှာများကို ငွေကောက်ခံစက်ဝန်း တစ်ခုစီတွင် အလိုအလျောက် ထုတ်ပြီး သင့်အဖွဲ့အစည်းကို ငွေကောက်ခံပြီးသည်နှင့် ဤနေရာတွင် ပေါ်လာပါမည်။", "emptyTitle": "ငွေတောင်းခံလွှာများ မရှိပါ", "invoiceFallback": "ငွေတောင်းခံလွှာ", - "statusOpen": "ဖွင့်ထားသည်", - "statusPaid": "ပေးပြီးပါပြီ", - "statusVoid": "မတည်တော့", "title": "ငွေတောင်းခံလွှာများ", "downloadFailed": "ငွေတောင်းခံလွှာကို ဒေါင်းလုဒ်မလုပ်နိုင်ပါ။ သင့်ချိတ်ဆက်မှုကို စစ်ပြီး ထပ်စမ်းကြည့်ပါ။", - "sharingUnavailable": "ဤစက်တွင် မျှဝေခြင်း မရနိုင်ပါ။" + "sharingUnavailable": "ဤစက်တွင် မျှဝေခြင်း မရနိုင်ပါ။", + "status": { + "paid": "ပေးပြီးပါပြီ", + "open": "ဖွင့်ထားသည်", + "void": "မတည်တော့", + "draft": "အမူကြမ်း", + "uncollectible": "ကောက်ခံ၍မရသော", + "unknown": "အမည်မသိ" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "စုဆောင်းထားသော အချက်အလက်", "free": "အခမဲ့", - "couldNotUpdateFavorites": "အကြိုက်ဆုံးများကို အပ်ဒိတ်လုပ်၍မရပါ" + "couldNotUpdateFavorites": "အကြိုက်ဆုံးများကို အပ်ဒိတ်လုပ်၍မရပါ", + "thinkingEffort": { + "none": "မရှိ", + "minimal": "အနည်းငယ်", + "low": "နိမ့်", + "medium": "အလယ်", + "high": "မြင့်", + "xhigh": "အလွန်မြင့်", + "max": "အမြင့်ဆုံး" + } } } diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index ab64d7aa92..6a6dcda779 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Valgte {{label}}, trykk for å endre markeringen", "tapToComment": "{{label}}, trykk for å kommentere", - "truncationBanner": "Viser de første {{limit}} av {{total}} endrede filene — GitHub API-grense" + "truncationBanner": "Viser de første {{limit}} av {{total}} endrede filene — GitHub API-grense", + "statusAdded": "Lagt til", + "statusContext": "Kontekst", + "statusDeleted": "Slettet" }, "linkPasteClipboardEmpty": "Utklippstavlen er tom", "linkPasteNotAPullRequest": "Ikke en GitHub-pull request-lenke", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Denne anmeldelsen kan ikke sendes inn som den er. PR-en kan ha endret seg, eller du kan ikke anmelde din egen pull request.", "couldNotPostComment": "Kunne ikke publisere kommentaren.", "couldNotSubmitReview": "Kunne ikke sende inn anmeldelsen. Sjekk tilkoblingen og prøv igjen." + }, + "operation": { + "couldNotReply": "Kunne ikke svare.", + "couldNotCompleteAction": "Kunne ikke fullføre denne handlingen.", + "mergeResultDefaultError": "GitHub fullførte ikke flettingen." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Betaling er forfalt. Oppdater betalingsmåten din.", "subscriptionCancels": "Abonnementet avsluttes {{date}}", "trialDaysRemaining": "Prøveperiode: {{remaining}}", - "trialEndingSoon": "Prøveperioden slutter snart: {{remaining}}" + "trialEndingSoon": "Prøveperioden slutter snart: {{remaining}}", + "planName": { + "commit": "Bindende plan", + "standard": "Standard" + } }, "changelog": { "title": "Hva er nytt", @@ -1189,7 +1201,8 @@ "strongArm": "Sterk arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Denne forekomsten kan ikke motta filer." + "remoteSpawnFilesNotSupported": "Denne forekomsten kan ikke motta filer.", + "instanceSwitcherTitle": "KiloClaw-forekomst" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Mislyktes", "cancelled": "Avbrutt", "interrupted": "Avbrutt uventet" - } + }, + "reviewStyle": { + "strict": "Streng", + "balanced": "Balansert", + "lenient": "Ettergivende", + "roast": "Roast" + }, + "focusArea": { + "security": "Sikkerhet", + "performance": "Ytelse", + "bugs": "Feil", + "style": "Stil", + "testing": "Testing", + "documentation": "Dokumentasjon" + }, + "gateThreshold": { + "off": "Av", + "all": "Alle", + "warning": "Advarsel", + "critical": "Kritisk" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer trenger oppmerksomhet", + "description": "Code Reviewer ble deaktivert fordi Kilo ikke kan få tilgang til dette depotet med en aktiv GitHub-appinstallasjon. Oppdater GitHub-appinstallasjonen, og aktiver deretter Code Reviewer igjen.", + "recoveryLabel": "Oppdater GitHub-appen" + }, + "githubIpAllowList": { + "title": "Code Reviewer trenger oppmerksomhet", + "description": "Code Reviewer ble deaktivert fordi denne GitHub-organisasjonen bruker en IP-allowliste som blokkerer Kilo. Kontakt hi@kilocode.ai for hjelp, og aktiver deretter Code Reviewer igjen.", + "recoveryLabel": "Kontakt kundestøtte" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer trenger oppmerksomhet", + "description": "Code Reviewer ble deaktivert fordi Kilo ikke kan opprette en GitLab Project Access Token for dette prosjektet. Gi Maintainer-tilgang eller aktiver Project Access Tokens, og aktiver deretter Code Reviewer igjen.", + "recoveryLabel": "Oppdater GitLab-integrasjonen" + }, + "byokInvalidKey": { + "title": "Code Reviewer trenger oppmerksomhet", + "description": "Code Reviewer ble deaktivert fordi den valgte BYOK API-nøkkelen er ugyldig, tilbakekalt eller mangler tillatelse. Oppdater nøkkelen eller velg en annen modell, og aktiver deretter Code Reviewer igjen.", + "recoveryLabel": "Oppdater BYOK-innstillinger" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer trenger oppmerksomhet", + "description": "Code Reviewer ble deaktivert fordi den valgte modellen ikke er tilgjengelig for cloud-agentøkter. Velg en tilgjengelig modell, og aktiver deretter Code Reviewer igjen.", + "recoveryLabel": "Oppdater Code Reviewer-innstillingene" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer trenger oppmerksomhet", + "description": "Code Reviewer ble deaktivert etter tre timeout for depotkloning i dag. Kontakt hi@kilocode.ai for hjelp, og aktiver deretter Code Reviewer igjen.", + "recoveryLabel": "Kontakt kundestøtte" + } + }, + "unknownError": "Ukjent feil" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Funnet er under den automatiske alvorlighetsgradsterskelen. Manuell utbedring kan fortsatt starte når sikkerhetsportene er bestått.", "beforeEnablement": "Analysen ble fullført før automatisk utbedring ble aktivert. Manuell utbedring kan fortsatt starte når sikkerhetsportene er bestått.", "generic": "Utbedring er utilgjengelig for dette funnet." + }, + "commandFailure": { + "ownerCapReached": "Analysekapasiteten er full. Vent til en aktiv analyse er ferdig, og prøv igjen.", + "githubTokenUnavailable": "GitHub-autorisasjonen trenger oppmerksomhet. Autoriser GitHub-appen på nytt, og prøv igjen.", + "githubAuthInvalid": "GitHub-autorisasjonen trenger oppmerksomhet. Autoriser GitHub-appen på nytt, og prøv igjen.", + "findingUnavailable": "Funnet er ikke lenger tilgjengelig. Oppdater funnene og prøv igjen hvis det fortsatt er åpent.", + "repositoryUnavailable": "Depotet er ikke lenger tilgjengelig for GitHub-appen. Oppdater depottilgangen, og prøv igjen.", + "invalidDismissTarget": "Funnet kan ikke avvises fordi Dependabot-målet er ugyldig.", + "commandStalled": "Den køede handlingen ble ikke ferdig i tide. Prøv handlingen igjen.", + "queueRetriesExhausted": "Handlingen kunne ikke fullføres etter flere forsøk. Prøv handlingen igjen.", + "queueAdmissionFailed": "Den køede handlingen kunne ikke bli tatt opp. Prøv handlingen igjen.", + "generic": "Den køede handlingen mislyktes. Prøv handlingen igjen." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Grunn", + "deep": "Dyp" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Legg {{name}} til favoritter", "removeFromFavorites": "Fjern {{name}} fra favoritter", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Sesjonsmodell" }, "attachmentPreview": { "openFailedRetry": "Kunne ikke åpne filen. Prøv igjen.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Legg til kreditter", - "description": "Legg til kreditter for å holde bruken i gang." + "description": "Legg til kreditter for å holde bruken i gang.", + "billingPage": "faktureringsside" }, "deviceSessions": { "couldNotLoad": "Kunne ikke laste økter", @@ -2710,7 +2795,10 @@ "restoreFailed": "Kunne ikke gjenopprette kjøp. Prøv igjen.", "purchaseFailed": "Kunne ikke fullføre kjøpet.", "purchaseStartFailed": "Kunne ikke starte App Store-kjøpet.", - "purchaseOwnedByAnotherAccount": "Kilo Pass på denne Apple-kontoen tilhører en annen Kilo-konto." + "purchaseOwnedByAnotherAccount": "Kilo Pass på denne Apple-kontoen tilhører en annen Kilo-konto.", + "couldNotConnectToAppStore": "Kunne ikke koble til App Store. Sjekk tilkoblingen og prøv igjen.", + "noMatchingProducts": "App Store returnerte ingen samsvarende Kilo Pass-produkter.", + "purchaseMissingSignedTransaction": "App Store-kjøpet inneholdt ikke en signert transaksjons-JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Trenger forbedring", "sorryTitle": "Så leit å høre!", "sorryMessage": "Fortell oss hva som må bli bedre. Ingeniøren som har ansvaret for appen, leser hver eneste rapport!", - "emailUs": "Send oss e-post" + "emailUs": "Send oss e-post", + "emailSubject": "tilbakemelding på mobilappen" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ingen kredittaktivitet", "expires": "Utløper {{date}}", "title": "Kredittaktivitet", - "transactionFallback": "Kreditttransaksjon" + "transactionFallback": "Kreditttransaksjon", + "category": { + "organization_custom": "Organisasjonsspesifikk", + "parent_to_child_transfer_in": "Overføring inn fra overordnet til underordnet", + "parent_to_child_transfer_out": "Overføring ut fra underordnet til overordnet", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Regnskapsjustering", + "credits_expired": "Kreditter utløpt" + } }, "inviteMember": { "emailError": "Angi en gyldig e-postadresse", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakturaer genereres automatisk hver faktureringssyklus og vil vises her når organisasjonen din faktureres.", "emptyTitle": "Ingen fakturaer", "invoiceFallback": "Faktura", - "statusOpen": "Åpen", - "statusPaid": "Betalt", - "statusVoid": "Ugyldig", "title": "Fakturaer", "downloadFailed": "Kunne ikke laste ned fakturaen. Sjekk tilkoblingen og prøv igjen.", - "sharingUnavailable": "Deling er ikke tilgjengelig på denne enheten." + "sharingUnavailable": "Deling er ikke tilgjengelig på denne enheten.", + "status": { + "paid": "Betalt", + "open": "Åpen", + "void": "Ugyldig", + "draft": "Kladd", + "uncollectible": "Uinnkrevbar", + "unknown": "Ukjent" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data samlet inn", "free": "Gratis", - "couldNotUpdateFavorites": "Kunne ikke oppdatere favoritter" + "couldNotUpdateFavorites": "Kunne ikke oppdatere favoritter", + "thinkingEffort": { + "none": "Ingen", + "minimal": "Minimal", + "low": "Lav", + "medium": "Middels", + "high": "Høy", + "xhigh": "Ekstra høy", + "max": "Maks" + } } } diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index 3055f75dee..ff57b70265 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} चयन गरियो, चयन परिवर्तन गर्न ट्याप गर्नुहोस्", "tapToComment": "{{label}}, टिप्पणी गर्न ट्याप गर्नुहोस्", - "truncationBanner": "कुल {{total}} परिवर्तन गरिएका फाइलहरूमध्ये पहिलो {{limit}} देखाइँदै — GitHub API सीमा" + "truncationBanner": "कुल {{total}} परिवर्तन गरिएका फाइलहरूमध्ये पहिलो {{limit}} देखाइँदै — GitHub API सीमा", + "statusAdded": "थपियो", + "statusContext": "सन्दर्भ", + "statusDeleted": "मेटियो" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड खाली छ", "linkPasteNotAPullRequest": "GitHub पुल रिक्वेस्ट लिंक होइन", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "यो समीक्षा जस्तो छ त्यस्तै पेश गर्न सकिँदैन। PR परिवर्तन भएको हुन सक्छ, वा तपाईं आफ्नै पुल अनुरोधको समीक्षा गर्न सक्नुहुन्न।", "couldNotPostComment": "टिप्पणी पोस्ट गर्न सकिएन।", "couldNotSubmitReview": "समीक्षा पेश गर्न सकिएन। आफ्नो जडान जाँचेर फेरि प्रयास गर्नुहोस्।" + }, + "operation": { + "couldNotReply": "जवाफ दिन सकिएन।", + "couldNotCompleteAction": "यो कार्य पूरा गर्न सकिएन।", + "mergeResultDefaultError": "GitHub ले मर्ज पूरा गरेन।" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "भुक्तानी बक्यौता भयो। कृपया आफ्नो भुक्तानी विधि अद्यावधिक गर्नुहोस्।", "subscriptionCancels": "सदस्यता {{date}} मा रद्द हुन्छ", "trialDaysRemaining": "परीक्षण: {{remaining}} बाँकी", - "trialEndingSoon": "परीक्षण चाँडै समाप्त हुँदै: {{remaining}}" + "trialEndingSoon": "परीक्षण चाँडै समाप्त हुँदै: {{remaining}}", + "planName": { + "commit": "कमिट", + "standard": "स्ट्यान्डर्ड" + } }, "changelog": { "title": "के नयाँ छ", @@ -1189,7 +1201,8 @@ "strongArm": "बलियो पाखुरा", "talisman": "ताबीज" }, - "remoteSpawnFilesNotSupported": "यो instance ले फाइलहरू प्राप्त गर्न सक्दैन।" + "remoteSpawnFilesNotSupported": "यो instance ले फाइलहरू प्राप्त गर्न सक्दैन।", + "instanceSwitcherTitle": "KiloClaw इन्स्ट्यान्स" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "असफल", "cancelled": "रद्द गरियो", "interrupted": "बाधित" - } + }, + "reviewStyle": { + "strict": "कडा", + "balanced": "सन्तुलित", + "lenient": "नरम", + "roast": "Roast" + }, + "focusArea": { + "security": "सुरक्षा", + "performance": "प्रदर्शन", + "bugs": "बगहरू", + "style": "शैली", + "testing": "परीक्षण", + "documentation": "दस्तावेज" + }, + "gateThreshold": { + "off": "बन्द", + "all": "सबै", + "warning": "चेतावनी", + "critical": "क्रिटिकल" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer लाई ध्यान चाहिन्छ", + "description": "Kilo सक्रिय GitHub App स्थापनासहित यो भण्डारमा पहुँच गर्न नसक्ने भएकाले Code Reviewer असक्षम गरियो। GitHub App स्थापना अद्यावधिक गर्नुहोस्, त्यसपछि Code Reviewer फेरि सक्षम गर्नुहोस्।", + "recoveryLabel": "GitHub App अद्यावधिक गर्नुहोस्" + }, + "githubIpAllowList": { + "title": "Code Reviewer लाई ध्यान चाहिन्छ", + "description": "यो GitHub संस्थाले Kilo लाई रोक्ने IP अनुमति सूची प्रयोग गर्ने भएकाले Code Reviewer असक्षम गरियो। मद्दतका लागि hi@kilocode.ai मा सम्पर्क गर्नुहोस्, त्यसपछि Code Reviewer फेरि सक्षम गर्नुहोस्।", + "recoveryLabel": "सहयोगलाई सम्पर्क गर्नुहोस्" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer लाई ध्यान चाहिन्छ", + "description": "यो परियोजनाका लागि Kilo ले GitLab Project Access Token सिर्जना गर्न नसक्ने भएकाले Code Reviewer असक्षम गरियो। Maintainer पहुँच दिनुहोस् वा Project Access Tokens सक्षम गर्नुहोस्, त्यसपछि Code Reviewer फेरि सक्षम गर्नुहोस्।", + "recoveryLabel": "GitLab एकीकरण अद्यावधिक गर्नुहोस्" + }, + "byokInvalidKey": { + "title": "Code Reviewer लाई ध्यान चाहिन्छ", + "description": "चयन गरिएको BYOK API कुञ्जी अवैध, फिर्ता लिइएको, वा अनुमति नभएको भएकाले Code Reviewer असक्षम गरियो। कुञ्जी अद्यावधिक गर्नुहोस् वा अर्को मोडेल छान्नुहोस्, त्यसपछि Code Reviewer फेरि सक्षम गर्नुहोस्।", + "recoveryLabel": "BYOK सेटिङहरू अद्यावधिक गर्नुहोस्" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer लाई ध्यान चाहिन्छ", + "description": "चयन गरिएको मोडेल क्लाउड एजेन्ट सत्रहरूका लागि उपलब्ध नभएको भएकाले Code Reviewer असक्षम गरियो। उपलब्ध मोडेल छान्नुहोस्, त्यसपछि Code Reviewer फेरि सक्षम गर्नुहोस्।", + "recoveryLabel": "Code Reviewer सेटिङहरू अद्यावधिक गर्नुहोस्" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer लाई ध्यान चाहिन्छ", + "description": "आज तीन पटक भण्डार क्लोन टाइमआउट भएपछि Code Reviewer असक्षम गरियो। मद्दतका लागि hi@kilocode.ai मा सम्पर्क गर्नुहोस्, त्यसपछि Code Reviewer फेरि सक्षम गर्नुहोस्।", + "recoveryLabel": "सहयोगलाई सम्पर्क गर्नुहोस्" + } + }, + "unknownError": "अज्ञात त्रुटि" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "निष्कर्ष स्वचालित गम्भीरता थ्रेसहोल्डभन्दा तल छ। सुरक्षा गेटहरू पार भएमा म्यानुअल सुधार अझै सुरु हुन सक्छ।", "beforeEnablement": "विश्लेषण स्वचालित सुधार सक्षम हुनु अघि पूरा भयो। सुरक्षा गेटहरू पार भएमा म्यानुअल सुधार अझै सुरु हुन सक्छ।", "generic": "यस निष्कर्षका लागि सुधार उपलब्ध छैन।" + }, + "commandFailure": { + "ownerCapReached": "विश्लेषण क्षमता भरिएको छ। सक्रिय विश्लेषण समाप्त हुन पर्खनुहोस्, त्यसपछि फेरि प्रयास गर्नुहोस्।", + "githubTokenUnavailable": "GitHub प्राधिकरणलाई ध्यान चाहिन्छ। GitHub App पुनः अधिकृत गर्नुहोस्, त्यसपछि फेरि प्रयास गर्नुहोस्।", + "githubAuthInvalid": "GitHub प्राधिकरणलाई ध्यान चाहिन्छ। GitHub App पुनः अधिकृत गर्नुहोस्, त्यसपछि फेरि प्रयास गर्नुहोस्।", + "findingUnavailable": "निष्कर्ष अब उपलब्ध छैन। निष्कर्षहरू ताजा गर्नुहोस् र यदि यो खुला रह्यो भने फेरि प्रयास गर्नुहोस्।", + "repositoryUnavailable": "भण्डार अब GitHub App का लागि उपलब्ध छैन। भण्डार पहुँच ताजा गर्नुहोस्, त्यसपछि फेरि प्रयास गर्नुहोस्।", + "invalidDismissTarget": "यसको Dependabot लक्ष्य अवैध भएकाले निष्कर्ष खारेज गर्न सकिँदैन।", + "commandStalled": "कतारमा राखिएको कार्य समयमै समाप्त भएन। कार्य फेरि प्रयास गर्नुहोस्।", + "queueRetriesExhausted": "धेरै प्रयासपछि कार्य पूरा गर्न सकिएन। कार्य फेरि प्रयास गर्नुहोस्।", + "queueAdmissionFailed": "कतारमा राखिएको कार्य स्वीकार गर्न सकिएन। कार्य फेरि प्रयास गर्नुहोस्।", + "generic": "कतारमा राखिएको कार्य असफल भयो। कार्य फेरि प्रयास गर्नुहोस्।" + }, + "analysisMode": { + "auto": "स्वचालित", + "shallow": "सतही", + "deep": "गहिरो" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "मनपर्नेमा {{name}} थप्नुहोस्", "removeFromFavorites": "मनपर्नेबाट {{name}} हटाउनुहोस्", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "मध्यम" + "thinkingEffortMedium": "मध्यम", + "sessionModel": "सत्र मोडेल" }, "attachmentPreview": { "openFailedRetry": "फाइल खोल्न असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "क्रेडिट थप्नुहोस्", - "description": "प्रयोग जारी राख्न क्रेडिट थप्नुहोस्।" + "description": "प्रयोग जारी राख्न क्रेडिट थप्नुहोस्।", + "billingPage": "बिलिङ पृष्ठ" }, "deviceSessions": { "couldNotLoad": "सत्रहरू लोड गर्न सकिएन", @@ -2710,7 +2795,10 @@ "restoreFailed": "खरिदहरू पुनः स्थापित गर्न असफल भयो। फेरि प्रयास गर्नुहोस्।", "purchaseFailed": "खरिद पूरा गर्न असफल भयो।", "purchaseStartFailed": "App Store खरिद सुरु गर्न असफल भयो।", - "purchaseOwnedByAnotherAccount": "यो Apple खातामा रहेको Kilo Pass अर्को Kilo खातासँग सम्बन्धित छ।" + "purchaseOwnedByAnotherAccount": "यो Apple खातामा रहेको Kilo Pass अर्को Kilo खातासँग सम्बन्धित छ।", + "couldNotConnectToAppStore": "App Store मा जडान गर्न सकिएन। आफ्नो जडान जाँचेर फेरि प्रयास गर्नुहोस्।", + "noMatchingProducts": "App Store बाट कुनै मिल्ने Kilo Pass उत्पादनहरू फर्काइएन।", + "purchaseMissingSignedTransaction": "App Store खरिदमा हस्ताक्षरित लेनदेन JWS समावेश थिएन।" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "सुधार चाहिन्छ", "sorryTitle": "यो सुन्दा हामीलाई दुख लाग्यो!", "sorryMessage": "के सुधार गर्नुपर्छ कृपया हामीलाई थाहा दिनुहोस्। एपको जिम्मेवार इन्जिनियरले हरेक रिपोर्ट पढ्छ!", - "emailUs": "हामीलाई इमेल गर्नुहोस्" + "emailUs": "हामीलाई इमेल गर्नुहोस्", + "emailSubject": "मोबाइल एप प्रतिक्रिया" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "कुनै क्रेडिट गतिविधि छैन", "expires": "{{date}} मा समाप्त हुन्छ", "title": "क्रेडिट गतिविधि", - "transactionFallback": "क्रेडिट लेनदेन" + "transactionFallback": "क्रेडिट लेनदेन", + "category": { + "organization_custom": "संस्था अनुकूलित", + "parent_to_child_transfer_in": "अभिभावकबाट सन्तानमा स्थानान्तरण (भित्र)", + "parent_to_child_transfer_out": "सन्तानबाट अभिभावकमा स्थानान्तरण (बाहिर)", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "लेखा समायोजन", + "credits_expired": "म्याद सकिएका क्रेडिटहरू" + } }, "inviteMember": { "emailError": "मान्य इमेल ठेगाना प्रविष्ट गर्नुहोस्", @@ -2840,12 +2939,17 @@ "emptyDescription": "इनभ्वाइसहरू प्रत्येक बिलिङ चक्रमा स्वचालित रूपमा उत्पन्न हुन्छन् र तपाईंको संगठन बिल भएपछि यहाँ देखिनेछन्।", "emptyTitle": "कुनै इनभ्वाइस छैन", "invoiceFallback": "इनभ्वाइस", - "statusOpen": "खुला", - "statusPaid": "भुक्तान गरिएको", - "statusVoid": "रद्द", "title": "इनभ्वाइसहरू", "downloadFailed": "इनभ्वाइस डाउनलोड गर्न सकिएन। आफ्नो जडान जाँचेर फेरि प्रयास गर्नुहोस्।", - "sharingUnavailable": "यो यन्त्रमा साझेदारी उपलब्ध छैन।" + "sharingUnavailable": "यो यन्त्रमा साझेदारी उपलब्ध छैन।", + "status": { + "paid": "भुक्तान गरिएको", + "open": "खुला", + "void": "रद्द", + "draft": "मस्यौदा", + "uncollectible": "असुली नहुने", + "unknown": "अज्ञात" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "सङ्कलन गरिएको डेटा", "free": "नि:शुल्क", - "couldNotUpdateFavorites": "मनपर्नेहरू अद्यावधिक गर्न सकिएन" + "couldNotUpdateFavorites": "मनपर्नेहरू अद्यावधिक गर्न सकिएन", + "thinkingEffort": { + "none": "कुनै पनि होइन", + "minimal": "न्यूनतम", + "low": "कम", + "medium": "मध्यम", + "high": "उच्च", + "xhigh": "अति उच्च", + "max": "अधिकतम" + } } } diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index ce6ce25621..942d365887 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -382,7 +382,11 @@ "paymentPastDue": "Betaling achterstallig. Werk je betaalmethode bij.", "subscriptionCancels": "Abonnement wordt geannuleerd op {{date}}", "trialDaysRemaining": "Proefperiode: {{remaining}} resterend", - "trialEndingSoon": "Proefperiode eindigt binnenkort: {{remaining}}" + "trialEndingSoon": "Proefperiode eindigt binnenkort: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Wat is er nieuw", @@ -750,7 +754,8 @@ "strongArm": "Sterke arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Deze instantie kan geen bestanden ontvangen." + "remoteSpawnFilesNotSupported": "Deze instantie kan geen bestanden ontvangen.", + "instanceSwitcherTitle": "KiloClaw-instantie" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "Mislukt", "cancelled": "Geannuleerd", "interrupted": "Onderbroken" - } + }, + "reviewStyle": { + "strict": "Strict", + "balanced": "Gebalanceerd", + "lenient": "Soepel", + "roast": "Roast" + }, + "focusArea": { + "security": "Beveiliging", + "performance": "Prestaties", + "bugs": "Bugs", + "style": "Stijl", + "testing": "Testen", + "documentation": "Documentatie" + }, + "gateThreshold": { + "off": "Uit", + "all": "Alles", + "warning": "Waarschuwing", + "critical": "Kritiek" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer heeft aandacht nodig", + "description": "Code Reviewer is uitgeschakeld omdat Kilo geen toegang tot deze repository heeft met een actieve GitHub App-installatie. Werk de GitHub App-installatie bij en schakel Code Reviewer vervolgens weer in.", + "recoveryLabel": "GitHub App bijwerken" + }, + "githubIpAllowList": { + "title": "Code Reviewer heeft aandacht nodig", + "description": "Code Reviewer is uitgeschakeld omdat deze GitHub-organisatie een IP-toegangslijst gebruikt die Kilo blokkeert. Neem contact op met hi@kilocode.ai voor hulp en schakel Code Reviewer vervolgens weer in.", + "recoveryLabel": "Contact opnemen met ondersteuning" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer heeft aandacht nodig", + "description": "Code Reviewer is uitgeschakeld omdat Kilo geen GitLab Project Access Token voor dit project kan aanmaken. Verleen Maintainer-toegang of schakel Project Access Tokens in en schakel Code Reviewer vervolgens weer in.", + "recoveryLabel": "GitLab-integratie bijwerken" + }, + "byokInvalidKey": { + "title": "Code Reviewer heeft aandacht nodig", + "description": "Code Reviewer is uitgeschakeld omdat de geselecteerde BYOK API-sleutel ongeldig is, is ingetrokken of onvoldoende rechten heeft. Werk de sleutel bij of kies een ander model en schakel Code Reviewer vervolgens weer in.", + "recoveryLabel": "BYOK-instellingen bijwerken" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer heeft aandacht nodig", + "description": "Code Reviewer is uitgeschakeld omdat het geselecteerde model niet beschikbaar is voor cloudagentsessies. Kies een beschikbaar model en schakel Code Reviewer vervolgens weer in.", + "recoveryLabel": "Code Reviewer-instellingen bijwerken" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer heeft aandacht nodig", + "description": "Code Reviewer is uitgeschakeld na drie time-outs bij het klonen van de repository vandaag. Neem contact op met hi@kilocode.ai voor hulp en schakel Code Reviewer vervolgens weer in.", + "recoveryLabel": "Contact opnemen met ondersteuning" + } + }, + "unknownError": "Onbekende fout" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "De bevinding zit onder de automatische ernstdrempel. Handmatig herstel kan nog steeds starten als de veiligheidscontroles slagen.", "beforeEnablement": "Analyse is voltooid voordat Automatisch herstel werd ingeschakeld. Handmatig herstel kan nog steeds starten als de veiligheidscontroles slagen.", "generic": "Herstel is niet beschikbaar voor deze bevinding." + }, + "commandFailure": { + "ownerCapReached": "Analysecapaciteit is vol. Wacht tot een actieve analyse is afgerond en probeer het opnieuw.", + "githubTokenUnavailable": "GitHub-autorisatie heeft aandacht nodig. Autoriseer de GitHub App opnieuw en probeer het opnieuw.", + "githubAuthInvalid": "GitHub-autorisatie heeft aandacht nodig. Autoriseer de GitHub App opnieuw en probeer het opnieuw.", + "findingUnavailable": "De bevinding is niet meer beschikbaar. Vernieuw de bevindingen en probeer het opnieuw als deze nog open is.", + "repositoryUnavailable": "De repository is niet meer beschikbaar voor de GitHub App. Vernieuw de repositorytoegang en probeer het opnieuw.", + "invalidDismissTarget": "De bevinding kan niet worden genegeerd omdat het Dependabot-doel ongeldig is.", + "commandStalled": "De actie in de wachtrij is niet op tijd afgerond. Probeer de actie opnieuw.", + "queueRetriesExhausted": "De actie kon na meerdere pogingen niet worden voltooid. Probeer de actie opnieuw.", + "queueAdmissionFailed": "De actie in de wachtrij kon niet worden toegelaten. Probeer de actie opnieuw.", + "generic": "De actie in de wachtrij is mislukt. Probeer de actie opnieuw." + }, + "analysisMode": { + "auto": "Automatisch", + "shallow": "Oppervlakkig", + "deep": "Diep" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "{{name}} aan favorieten toevoegen", "removeFromFavorites": "{{name}} uit favorieten verwijderen", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Gem" + "thinkingEffortMedium": "Gem", + "sessionModel": "Sessiemodel" }, "attachmentPreview": { "openFailedRetry": "Bestand openen mislukt. Probeer het opnieuw.", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "Credits toevoegen", - "description": "Voeg credits toe om het gebruik draaiende te houden." + "description": "Voeg credits toe om het gebruik draaiende te houden.", + "billingPage": "factureringspagina" }, "deviceSessions": { "couldNotLoad": "Sessies konden niet worden geladen", @@ -2271,7 +2348,10 @@ "restoreFailed": "Aankopen herstellen mislukt. Probeer het opnieuw.", "purchaseFailed": "Aankoop voltooien mislukt.", "purchaseStartFailed": "App Store-aankoop starten mislukt.", - "purchaseOwnedByAnotherAccount": "De Kilo Pass op dit Apple-account hoort bij een ander Kilo-account." + "purchaseOwnedByAnotherAccount": "De Kilo Pass op dit Apple-account hoort bij een ander Kilo-account.", + "couldNotConnectToAppStore": "Kan geen verbinding maken met de App Store. Controleer je verbinding en probeer het opnieuw.", + "noMatchingProducts": "De App Store gaf geen overeenkomende Kilo Pass-producten terug.", + "purchaseMissingSignedTransaction": "De App Store-aankoop bevatte geen ondertekende transactie-JWS." }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "{{label}} geselecteerd, tik om de selectie te wijzigen", "tapToComment": "{{label}}, tik om te reageren", - "truncationBanner": "De eerste {{limit}} van {{total}} gewijzigde bestanden worden getoond — GitHub API-limiet" + "truncationBanner": "De eerste {{limit}} van {{total}} gewijzigde bestanden worden getoond — GitHub API-limiet", + "statusAdded": "Toegevoegd", + "statusContext": "Context", + "statusDeleted": "Verwijderd" }, "linkPasteClipboardEmpty": "Klembord is leeg", "linkPasteNotAPullRequest": "Geen GitHub pull-requestlink", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "Deze review kan niet zo worden ingediend. De PR is mogelijk gewijzigd, of je kunt je eigen pull-aanvraag niet beoordelen.", "couldNotPostComment": "Opmerking kon niet worden geplaatst.", "couldNotSubmitReview": "Review kon niet worden verzonden. Controleer je verbinding en probeer het opnieuw." + }, + "operation": { + "couldNotReply": "Kon niet reageren.", + "couldNotCompleteAction": "Deze actie kon niet worden voltooid.", + "mergeResultDefaultError": "GitHub heeft de merge niet voltooid." } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "Geen creditactiviteit", "expires": "Verloopt {{date}}", "title": "Creditactiviteit", - "transactionFallback": "Credittransactie" + "transactionFallback": "Credittransactie", + "category": { + "organization_custom": "Aangepast door organisatie", + "parent_to_child_transfer_in": "Overdracht van bovenliggende naar onderliggende organisatie (in)", + "parent_to_child_transfer_out": "Overdracht van bovenliggende naar onderliggende organisatie (uit)", + "oss-sponsorship": "OSS-sponsorschap", + "oss-monthly-reset": "OSS-maandelijkse reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Boekhoudkundige correctie", + "credits_expired": "Credits verlopen" + } }, "hub": { "balance": "Saldo", @@ -2837,11 +2935,16 @@ "emptyTitle": "Geen facturen", "invoiceFallback": "Factuur", "title": "Facturen", - "statusPaid": "Betaald", - "statusOpen": "Open", - "statusVoid": "Ongegrond", "downloadFailed": "Factuur kon niet worden gedownload. Controleer je verbinding en probeer het opnieuw.", - "sharingUnavailable": "Delen is niet beschikbaar op dit apparaat." + "sharingUnavailable": "Delen is niet beschikbaar op dit apparaat.", + "status": { + "paid": "Betaald", + "open": "Open", + "void": "Ongegrond", + "draft": "Concept", + "uncollectible": "Oninbaar", + "unknown": "Onbekend" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "Hoe bevalt de Kilo-app je?", "rateKilo": "Kilo beoordelen", "sorryMessage": "Laat ons weten wat er beter kan. De engineer die over de app gaat, leest elk rapport!", - "sorryTitle": "Wat jammer om te horen!" + "sorryTitle": "Wat jammer om te horen!", + "emailSubject": "feedback op mobiele app" }, "authErrors": { "emailAlreadyUsed": "Er bestaat al een account met dit e-mailadres via een andere aanmeldmethode. Probeer een andere methode of gebruik '$t(login.moreSignInOptions)'.", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Verzamelde gegevens", "free": "Gratis", - "couldNotUpdateFavorites": "Kon favorieten niet bijwerken" + "couldNotUpdateFavorites": "Kon favorieten niet bijwerken", + "thinkingEffort": { + "none": "Geen", + "minimal": "Minimaal", + "low": "Laag", + "medium": "Gemiddeld", + "high": "Hoog", + "xhigh": "Extra hoog", + "max": "Max" + } } } diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index 52b497ea90..5c6c2552e1 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} filatame, filannoo jijjiiruuf tuqi", "tapToComment": "{{label}}, yaada kennuuf tuqi", - "truncationBanner": "Faayiloota jijjiramaniin walii {{total}} keessaa isaan jalqabaa {{limit}} agarsiifamaa jira — GitHub API daangaa" + "truncationBanner": "Faayiloota jijjiramaniin walii {{total}} keessaa isaan jalqabaa {{limit}} agarsiifamaa jira — GitHub API daangaa", + "statusAdded": "Dabalamte", + "statusContext": "Context", + "statusDeleted": "Balleessamte" }, "linkPasteClipboardEmpty": "Kibirri duwwaa dha", "linkPasteNotAPullRequest": "Hidhaa pull request GitHub hin taane", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Ilalloon kun akkuma jirutti dhiheeffamuu hin danda'u. PR jijjirameera ta'a, ykn pull request ofii kee ilaaluu hin dandeessu.", "couldNotPostComment": "Yaada maxxansuu hin dandeenye.", "couldNotSubmitReview": "Ilalloo dhiheessuu hin dandeenye. Walqabii kee ilaaliitii irra deebi'ii yaali." + }, + "operation": { + "couldNotReply": "Deebii kennuu hin dandeenye.", + "couldNotCompleteAction": "Gocha kana xumuruu hin dandeenye.", + "mergeResultDefaultError": "GitHub makxinsaa hin xumuurre." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Kaffaltiin yeroo xumuraa darbeera. Mala kaffaltii keessan haaromsaa.", "subscriptionCancels": "Ragaahannaan {{date}} irratti dhuma", "trialDaysRemaining": "Qoramaa: {{remaining}} hafe", - "trialEndingSoon": "Qoramaan dhumuuf jira: {{remaining}}" + "trialEndingSoon": "Qoramaan dhumuuf jira: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Waan Haarayaa", @@ -1189,7 +1201,8 @@ "strongArm": "Harka cimaa", "talisman": "Taalismaanii" }, - "remoteSpawnFilesNotSupported": "Tuuramni kun faayiloota fudhachuu hin danda'u." + "remoteSpawnFilesNotSupported": "Tuuramni kun faayiloota fudhachuu hin danda'u.", + "instanceSwitcherTitle": "Tuurama KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Dadhabe", "cancelled": "Haqe", "interrupted": "Citatte" - } + }, + "reviewStyle": { + "strict": "Cimaa", + "balanced": "Walqixa", + "lenient": "Lafaa", + "roast": "Roast" + }, + "focusArea": { + "security": "Nageenya", + "performance": "Qulqullina", + "bugs": "Bugii", + "style": "Haala", + "testing": "Madaallii", + "documentation": "Barreeffama" + }, + "gateThreshold": { + "off": "Cufame", + "all": "Hunda", + "warning": "Akeekii", + "critical": "Hamaa" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Sakatta'a Koodii xiyyeeffannoo barbaada.", + "description": "Sakatta'a Koodii dhaabbateera, sababiin isaa Kilo GitHub App installashinii hojjechaa ta'een repository kana argachuu hin dandeenyeef. Installashinii GitHub App haaromsiitii sakatta'aa koodii ammas bani.", + "recoveryLabel": "GitHub App haaromsi" + }, + "githubIpAllowList": { + "title": "Sakatta'a Koodii xiyyeeffannoo barbaada.", + "description": "Sakatta'a Koodii dhaabbateera, sababiin isaa dhaabbanni GitHub kanaa tarree hayyama IP kan Kilo dhowwu fayyadama. Gargaarsaaf hi@kilocode.ai qunnamiitii sakatta'aa koodii ammas bani.", + "recoveryLabel": "Deeggarsa qunnami" + }, + "gitlabProjectAccessRequired": { + "title": "Sakatta'a Koodii xiyyeeffannoo barbaada.", + "description": "Sakatta'a Koodii dhaabbateera, sababiin isaa Kilo GitLab Project Access Token projektii kanaaf uumuu hin dandeenyeef. Hayyama Maintainer kenni ykn Project Access Tokens dandeessifii sakatta'aa koodii ammas bani.", + "recoveryLabel": "Walqabxii GitLab haaromsi" + }, + "byokInvalidKey": { + "title": "Sakatta'a Koodii xiyyeeffannoo barbaada.", + "description": "Sakatta'a Koodii dhaabbateera, sababiin isaa sirrichi BYOK API key filatame dogoggora ykn haqame ykn hayyama hin qabu. Sirricha haaromsi ykn modeela biraa filadhuutii sakatta'aa koodii ammas bani.", + "recoveryLabel": "Qindaa'ina BYOK haaromsi" + }, + "selectedModelUnavailable": { + "title": "Sakatta'a Koodii xiyyeeffannoo barbaada.", + "description": "Sakatta'a Koodii dhaabbateera, sababiin isaa modeelliin filatame walta'ii agentii duumessaa irratti hin argamu. Modeela argamu filadhuutii sakatta'aa koodii ammas bani.", + "recoveryLabel": "Qindaa'ina Sakatta'a Koodii haaromsi" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Sakatta'a Koodii xiyyeeffannoo barbaada.", + "description": "Sakatta'a Koodii har'a yeroo clone repository sadii yeroon xumuramee booda dhaabbateera. Gargaarsaaf hi@kilocode.ai qunnamiitii sakatta'aa koodii ammas bani.", + "recoveryLabel": "Deeggarsa qunnami" + } + }, + "unknownError": "Dogoggora hin beekamne" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Raawwiin sadarkaa hamma of-rakkoo gadii jira. Furamuun harkaa mirkaneeffannoon nageenyaa yeroo darbu yoo ta'e jalqabuu danda'a.", "beforeEnablement": "Xiinxalli furamuun of-rakkoo dandeessamuu dura xumurame. Furamuun harkaa mirkaneeffannoon nageenyaa yeroo darbu yoo ta'e jalqabuu danda'a.", "generic": "Furamuun raawwii kanaaf hin jiraatu." + }, + "commandFailure": { + "ownerCapReached": "Dandeettiin anaalizii guutee jira. Anaalizii hojjechaa jiru xumuruu eegiitii irra deebi'ii yaali.", + "githubTokenUnavailable": "Hayyamiinsi GitHub xiyyeeffannoo barbaada. GitHub App ammas hayyamii irra deebi'ii yaali.", + "githubAuthInvalid": "Hayyamiinsi GitHub xiyyeeffannoo barbaada. GitHub App ammas hayyamii irra deebi'ii yaali.", + "findingUnavailable": "Arganni deebi'ee hin jiru. Argamoota haaromsiitii, yoo banaa ta'e, irra deebi'ii yaali.", + "repositoryUnavailable": "Repository deebi'ee GitHub App irratti hin jiru. Akcessii repository haaromsiitii irra deebi'ii yaali.", + "invalidDismissTarget": "Arganni salphifamuu hin danda'u, sababiin isaa kaayyoon Dependabot isaa sirrii miti.", + "commandStalled": "Gochi eeggachaa keessa ture yeroo keessa xumuramuu hin dandeenye. Gochicha irra deebi'i.", + "queueRetriesExhausted": "Gochi yaalii hedduu booda xumuramuu hin dandeenye. Gochicha irra deebi'i.", + "queueAdmissionFailed": "Gochi eeggachaa keessa ture fudhatamuu hin dandeenye. Gochicha irra deebi'i.", + "generic": "Gochi eeggachaa keessa ture dadhabe. Gochicha irra deebi'i." + }, + "analysisMode": { + "auto": "Ofumaan", + "shallow": "Gubbaa", + "deep": "Gadi fagoo" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} jaallatamootatti dabali", "removeFromFavorites": "{{name}} jaallatamootarra baasi", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Modeela xalayyii" }, "attachmentPreview": { "openFailedRetry": "Faayilii baniuu hin danda'ine. Mee ammas yaali.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Kiriiditii dabali", - "description": "Fayyadamuun itti fufuuf kiriiditii dabali." + "description": "Fayyadamuun itti fufuuf kiriiditii dabali.", + "billingPage": "fuula kaffaltii" }, "deviceSessions": { "couldNotLoad": "Shumarra fudhachuu hin danda'ine", @@ -2710,7 +2795,10 @@ "restoreFailed": "Bittaa deebisuu dadhabe. Irra deebi'ii yaali.", "purchaseFailed": "Bittaa xumuruu dadhabe.", "purchaseStartFailed": "Bittaa App Store jalqabuu dadhabe.", - "purchaseOwnedByAnotherAccount": "Kilo Pass akkaawuntii Apple kana irratti jiru akkaawuntii Kilo adda biraa keessaa." + "purchaseOwnedByAnotherAccount": "Kilo Pass akkaawuntii Apple kana irratti jiru akkaawuntii Kilo adda biraa keessaa.", + "couldNotConnectToAppStore": "App Store waliin walqabachuu hin dandeenye. Walqabii kee ilaaliitii irra deebi'ii yaali.", + "noMatchingProducts": "App Store bu'aa Kilo Pass waliin walmaddan hin deebise.", + "purchaseMissingSignedTransaction": "Bittaan App Store JWS daldalaa mallatteeffame hin qabu ture." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Fooyyessuu barbaada", "sorryTitle": "Nuf gaabbii dha!", "sorryMessage": "Maaloo waan fooyyessuu qabu nutti himi. Injinariin app irratti itti gaafatamu gabaasa hundumaa ni dubbisa!", - "emailUs": "Email nuu ergi" + "emailUs": "Email nuu ergi", + "emailSubject": "yaada app mobaayilaati" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Sochii kiriiditii hin jiru", "expires": "{{date}} dhumata", "title": "Sochii kiriiditii", - "transactionFallback": "Daldalli kiriiditii" + "transactionFallback": "Daldalli kiriiditii", + "category": { + "organization_custom": "Haala dhaabbataa", + "parent_to_child_transfer_in": "Daddarbii dhaabbataa irraa gara dhaabbataa ilmaanitti (galtee)", + "parent_to_child_transfer_out": "Daddarbii dhaabbataa irraa gara dhaabbataa ilmaanitti (ba'aa)", + "oss-sponsorship": "OSS-sponsorarii", + "oss-monthly-reset": "OSS-irra deebiin ji'aa", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Sirreeffama herregaa", + "credits_expired": "Kiriiditiin xumuramte" + } }, "inviteMember": { "emailError": "Teessoo email sirrii seeni", @@ -2840,12 +2939,17 @@ "emptyDescription": "Invoicen yeroo walii cikilli kaffaltii hunda samagammaatti uumama, dhaabbiin kee kaffalamee booda asitti ni mul'ata.", "emptyTitle": "Invoice hin jiru", "invoiceFallback": "Invoice", - "statusOpen": "Banaa", - "statusPaid": "Kaffalameera", - "statusVoid": "Bara kana hin fayyadanne", "title": "Invoices", "downloadFailed": "Invoice gadi baasuu hin dandeenye. Walqabii kee ilaaliitii irra deebi'ii yaali.", - "sharingUnavailable": "Qooduun meeshaa kana irratti hin jiru." + "sharingUnavailable": "Qooduun meeshaa kana irratti hin jiru.", + "status": { + "paid": "Kaffalameera", + "open": "Banaa", + "void": "Bara kana hin fayyadanne", + "draft": "Daraftii", + "uncollectible": "Kan walitti hin qabamne", + "unknown": "Hin beekamu" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Daataan walitti qabame", "free": "Bilisa", - "couldNotUpdateFavorites": "Jaallatamoota haaromsuu hin dandeenye" + "couldNotUpdateFavorites": "Jaallatamoota haaromsuu hin dandeenye", + "thinkingEffort": { + "none": "Hin jiru", + "minimal": "Xiqqaa", + "low": "Gad-aanaa", + "medium": "Giddu-galeessa", + "high": "Ol-aanaa", + "xhigh": "Baay'ee ol-aanaa", + "max": "Hamma olaanaa" + } } } diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index 0ea9a66351..01128c0d29 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} ଚୟନ ହେଲା, ଚୟନ ବଦଳାଇବାକୁ ଟାପ୍ କରନ୍ତୁ", "tapToComment": "{{label}}, ମନ୍ତବ୍ୟ ଦେବାକୁ ଟାପ୍ କରନ୍ତୁ", - "truncationBanner": "ମୋଟ {{total}} ମଧ୍ୟରୁ ପ୍ରଥମ {{limit}} ପରିବର୍ତ୍ତିତ ଫାଇଲ ଦେଖାଯାଉଛି — GitHub API ସୀମା" + "truncationBanner": "ମୋଟ {{total}} ମଧ୍ୟରୁ ପ୍ରଥମ {{limit}} ପରିବର୍ତ୍ତିତ ଫାଇଲ ଦେଖାଯାଉଛି — GitHub API ସୀମା", + "statusAdded": "ଯୋଡ଼ାଗଲା", + "statusContext": "ପ୍ରସଙ୍ଗ", + "statusDeleted": "ବିଲୋପ ହେଲା" }, "linkPasteClipboardEmpty": "କ୍ଲିପ୍ବୋର୍ଡ ଖାଲି ଅଛି", "linkPasteNotAPullRequest": "ଏହା GitHub ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ଲିଙ୍କ୍ ନୁହେଁ", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ଏହି ରିଭ୍ୟୁ ଏହିଭଳି ଦାଖଲ କରାଯାଇ ପାରିବ ନାହିଁ। PR ପରିବର୍ତ୍ତନ ହୋଇଥାଇ ପାରେ, କିମ୍ବା ଆପଣ ନିଜର ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ରିଭ୍ୟୁ କରିପାରିବେ ନାହିଁ।", "couldNotPostComment": "ମନ୍ତବ୍ୟ ପୋଷ୍ଟ କରାଯାଇ ପାରିଲା ନାହିଁ।", "couldNotSubmitReview": "ରିଭ୍ୟୁ ଦାଖଲ କରାଯାଇ ପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" + }, + "operation": { + "couldNotReply": "ଉତ୍ତର ଦେବା ଯାଇ ପାରିଲା ନାହିଁ।", + "couldNotCompleteAction": "ଏହି କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ କରାଯାଇ ପାରିଲା ନାହିଁ।", + "mergeResultDefaultError": "GitHub ମର୍ଜ୍ ସମ୍ପୂର୍ଣ୍ଣ କଲା ନାହିଁ।" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ଦେୟ ବିଳମ୍ବିତ। ଦୟାକରି ଆପଣଙ୍କ ଦେୟ ପଦ୍ଧତି ଅପଡେଟ୍ କରନ୍ତୁ।", "subscriptionCancels": "ସବସ୍କ୍ରିପ୍ସନ୍ {{date}} ରେ ବାତିଲ ହୁଏ", "trialDaysRemaining": "ଟ୍ରାଏଲ: {{remaining}} ବାକି", - "trialEndingSoon": "ଟ୍ରାଏଲ୍ ଶୀଘ୍ର ସମାପ୍ତ: {{remaining}}" + "trialEndingSoon": "ଟ୍ରାଏଲ୍ ଶୀଘ୍ର ସମାପ୍ତ: {{remaining}}", + "planName": { + "commit": "କମିଟ୍", + "standard": "Standard" + } }, "changelog": { "title": "ନୂଆ କ'ଣ", @@ -1189,7 +1201,8 @@ "strongArm": "ଶକ୍ତିଶାଳୀ ବାହୁ", "talisman": "ତାଲିମନ" }, - "remoteSpawnFilesNotSupported": "ଏହି ଇନସ୍ଟାନ୍ସ ଫାଇଲ ଗ୍ରହଣ କରିପାରିବ ନାହିଁ।" + "remoteSpawnFilesNotSupported": "ଏହି ଇନସ୍ଟାନ୍ସ ଫାଇଲ ଗ୍ରହଣ କରିପାରିବ ନାହିଁ।", + "instanceSwitcherTitle": "KiloClaw ଇନ୍ସଟାନ୍ସ" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ବିଫଳ", "cancelled": "ବାତିଲ", "interrupted": "ବ୍ୟାହତ" - } + }, + "reviewStyle": { + "strict": "କଠୋର", + "balanced": "ସନ୍ତୁଳିତ", + "lenient": "ଶିଥିଳ", + "roast": "Roast" + }, + "focusArea": { + "security": "ନିରାପତ୍ତା", + "performance": "ପ୍ରଦର୍ଶନ", + "bugs": "ବଗ୍", + "style": "ଶୈଳୀ", + "testing": "ପରୀକ୍ଷା", + "documentation": "ଡକ୍ୟୁମେଣ୍ଟେସନ୍" + }, + "gateThreshold": { + "off": "ବନ୍ଦ", + "all": "ସମସ୍ତ", + "warning": "ଚେତାବନୀ", + "critical": "ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer ର ଧ୍ୟାନ ଦରକାର", + "description": "Code Reviewer ଅକ୍ଷମ କରାଯାଇଥିଲା କାରଣ Kilo ଏକ ସକ୍ରିୟ GitHub App ଇନଷ୍ଟଲେସନ୍ ସହିତ ଏହି ରିପୋଜିଟୋରୀକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ। GitHub App ଇନଷ୍ଟଲେସନ୍ ଅପଡେଟ୍ କରନ୍ତୁ, ତାପରେ Code Reviewer କୁ ପୁଣି ସକ୍ଷମ କରନ୍ତୁ।", + "recoveryLabel": "GitHub App ଅପଡେଟ୍ କରନ୍ତୁ" + }, + "githubIpAllowList": { + "title": "Code Reviewer ର ଧ୍ୟାନ ଦରକାର", + "description": "Code Reviewer ଅକ୍ଷମ କରାଯାଇଥିଲା କାରଣ ଏହି GitHub ସଂଗଠନ ଏକ IP ଅନୁମତି ତାଲିକା ବ୍ୟବହାର କରେ ଯାହା Kilo କୁ ଅବରୋଧ କରେ। ସାହାଯ୍ୟ ପାଇଁ hi@kilocode.ai ରେ ଯୋଗାଯୋଗ କରନ୍ତୁ, ତାପରେ Code Reviewer କୁ ପୁଣି ସକ୍ଷମ କରନ୍ତୁ।", + "recoveryLabel": "ସହାୟତା ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer ର ଧ୍ୟାନ ଦରକାର", + "description": "Code Reviewer ଅକ୍ଷମ କରାଯାଇଥିଲା କାରଣ Kilo ଏହି ପ୍ରୋଜେକ୍ଟ ପାଇଁ ଏକ GitLab Project Access Token ସୃଷ୍ଟି କରିପାରିବ ନାହିଁ। Maintainer ଆକ୍ସେସ୍ ପ୍ରଦାନ କରନ୍ତୁ କିମ୍ବା Project Access Tokens ସକ୍ଷମ କରନ୍ତୁ, ତାପରେ Code Reviewer କୁ ପୁଣି ସକ୍ଷମ କରନ୍ତୁ।", + "recoveryLabel": "GitLab ଏକୀକରଣ ଅପଡେଟ୍ କରନ୍ତୁ" + }, + "byokInvalidKey": { + "title": "Code Reviewer ର ଧ୍ୟାନ ଦରକାର", + "description": "Code Reviewer ଅକ୍ଷମ କରାଯାଇଥିଲା କାରଣ ଚୟନ କରାଯାଇଥିବା BYOK API କି ଅବୈଧ, ପ୍ରତ୍ୟାହାର, କିମ୍ବା ଅନୁମତି ନାହିଁ। କି ଅପଡେଟ୍ କରନ୍ତୁ କିମ୍ବା ଅନ୍ୟ ଏକ ମଡେଲ ଚୟନ କରନ୍ତୁ, ତାପରେ Code Reviewer କୁ ପୁଣି ସକ୍ଷମ କରନ୍ତୁ।", + "recoveryLabel": "BYOK ସେଟିଂ ଅପଡେଟ୍ କରନ୍ତୁ" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer ର ଧ୍ୟାନ ଦରକାର", + "description": "Code Reviewer ଅକ୍ଷମ କରାଯାଇଥିଲା କାରଣ ଚୟନ କରାଯାଇଥିବା ମଡେଲ କ୍ଲାଉଡ୍ ଏଜେଣ୍ଟ ସେସନ୍ ପାଇଁ ଉପଲବ୍ଧ ନାହିଁ। ଏକ ଉପଲବ୍ଧ ମଡେଲ ଚୟନ କରନ୍ତୁ, ତାପରେ Code Reviewer କୁ ପୁଣି ସକ୍ଷମ କରନ୍ତୁ।", + "recoveryLabel": "Code Reviewer ସେଟିଂ ଅପଡେଟ୍ କରନ୍ତୁ" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer ର ଧ୍ୟାନ ଦରକାର", + "description": "ଆଜି ତିନୋଟି ରିପୋଜିଟୋରୀ କ୍ଲୋନ୍ ଟାଇମ୍ଆଉଟ୍ ପରେ Code Reviewer ଅକ୍ଷମ କରାଯାଇଥିଲା। ସାହାଯ୍ୟ ପାଇଁ hi@kilocode.ai ରେ ଯୋଗାଯୋଗ କରନ୍ତୁ, ତାପରେ Code Reviewer କୁ ପୁଣି ସକ୍ଷମ କରନ୍ତୁ।", + "recoveryLabel": "ସହାୟତା ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ" + } + }, + "unknownError": "ଅଜଣା ତ୍ରୁଟି" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ଫଳାଫଳ ସ୍ୱୟଂଚାଳିତ ତୀବ୍ରତା ସୀମା ତଳେ। ସୁରକ୍ଷା ଗେଟ୍ ପାସ୍ ହେଲେ ମାନୁଆଲ ସମାଧାନ ଏବେ ବି ଆରମ୍ଭ ହୋଇପାରେ।", "beforeEnablement": "ସ୍ୱୟଂ ଉପଶମନ ସକ୍ଷମ ହେବା ପୂର୍ବରୁ ବିଶ୍ଳେଷଣ ସମାପ୍ତ ହେଲା। ସୁରକ୍ଷା ଗେଟ୍ ପାସ୍ ହେଲେ ମାନୁଆଲ ସମାଧାନ ଏବେ ବି ଆରମ୍ଭ ହୋଇପାରେ।", "generic": "ଏହି ଫଳାଫଳ ପାଇଁ ସମାଧାନ ଉପଲବ୍ଧ ନାହିଁ।" + }, + "commandFailure": { + "ownerCapReached": "ବିଶ୍ଳେଷଣ କ୍ଷମତା ପୂର୍ଣ୍ଣ। ଏକ ସକ୍ରିୟ ବିଶ୍ଳେଷଣ ସରିବା ପାଇଁ ଅପେକ୍ଷା କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "githubTokenUnavailable": "GitHub ପ୍ରାଧିକରଣର ଧ୍ୟାନ ଦରକାର। GitHub App କୁ ପୁନଃ-ପ୍ରାଧିକୃତ କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "githubAuthInvalid": "GitHub ପ୍ରାଧିକରଣର ଧ୍ୟାନ ଦରକାର। GitHub App କୁ ପୁନଃ-ପ୍ରାଧିକୃତ କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "findingUnavailable": "ଫାଇଣ୍ଡିଂ ଆଉ ଉପଲବ୍ଧ ନାହିଁ। ଫାଇଣ୍ଡିଂଗୁଡ଼ିକୁ ରିଫ୍ରେସ୍ କରନ୍ତୁ ଏବଂ ଯଦି ଏହା ଖୋଲା ରହେ ତେବେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "repositoryUnavailable": "ରିପୋଜିଟୋରୀ ଆଉ GitHub App ପାଇଁ ଉପଲବ୍ଧ ନାହିଁ। ରିପୋଜିଟୋରୀ ଆକ୍ସେସ୍ ରିଫ୍ରେସ୍ କରନ୍ତୁ, ତାପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "invalidDismissTarget": "ଫାଇଣ୍ଡିଂକୁ ଖାରଜ କରାଯାଇ ପାରିବ ନାହିଁ କାରଣ ଏହାର Dependabot ଟାର୍ଗେଟ୍ ଅବୈଧ।", + "commandStalled": "ଧାଡ଼ିରେ ଥିବା କାର୍ଯ୍ୟ ସମୟରେ ସମ୍ପୂର୍ଣ୍ଣ ହେଲା ନାହିଁ। କାର୍ଯ୍ୟ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "queueRetriesExhausted": "ଏକାଧିକ ପ୍ରୟାସ ପରେ କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇପାରିଲା ନାହିଁ। କାର୍ଯ୍ୟ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "queueAdmissionFailed": "ଧାଡ଼ିରେ ଥିବା କାର୍ଯ୍ୟ ସ୍ୱୀକୃତ ହୋଇପାରିଲା ନାହିଁ। କାର୍ଯ୍ୟ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "generic": "ଧାଡ଼ିରେ ଥିବା କାର୍ଯ୍ୟ ବିଫଳ ହେଲା। କାର୍ଯ୍ୟ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।" + }, + "analysisMode": { + "auto": "ଅଟୋ", + "shallow": "ଅଗଭୀର", + "deep": "ଗଭୀର" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "ପସନ୍ଦରେ {{name}} ଯୋଡ଼ନ୍ତୁ", "removeFromFavorites": "ପସନ୍ଦରୁ {{name}} ଅପସାରଣ କରନ୍ତୁ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "ସେସନ୍ ମଡେଲ" }, "attachmentPreview": { "openFailedRetry": "ଫାଇଲ ଖୋଲିବାରେ ବିଫଳ। ଦୟାକରି ପୁନର୍ବାର ଚେଷ୍ଟା କରନ୍ତୁ।", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "କ୍ରେଡିଟ୍ ଯୋଡ଼ନ୍ତୁ", - "description": "ବ୍ୟବହାର ଜାରି ରଖିବାକୁ କ୍ରେଡିଟ୍ ଯୋଡ଼ନ୍ତୁ।" + "description": "ବ୍ୟବହାର ଜାରି ରଖିବାକୁ କ୍ରେଡିଟ୍ ଯୋଡ଼ନ୍ତୁ।", + "billingPage": "ବିଲିଂ ପୃଷ୍ଠା" }, "deviceSessions": { "couldNotLoad": "ସେସନ୍ ଲୋଡ୍ ହୋଇପାରିଲା ନାହିଁ", @@ -2710,7 +2795,10 @@ "restoreFailed": "କ୍ରୟ ପୁନଃସ୍ଥାପନ ବିଫଳ ହେଲା। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", "purchaseFailed": "କ୍ରୟ ସମ୍ପୂର୍ଣ୍ଣ କରିବାରେ ବିଫଳ।", "purchaseStartFailed": "App Store କ୍ରୟ ଆରମ୍ଭ କରିବାରେ ବିଫଳ।", - "purchaseOwnedByAnotherAccount": "ଏହି Apple ଆକାଉଣ୍ଟରେ ଥିବା Kilo Pass ଅନ୍ୟ ଏକ Kilo ଆକାଉଣ୍ଟର ଅଟେ।" + "purchaseOwnedByAnotherAccount": "ଏହି Apple ଆକାଉଣ୍ଟରେ ଥିବା Kilo Pass ଅନ୍ୟ ଏକ Kilo ଆକାଉଣ୍ଟର ଅଟେ।", + "couldNotConnectToAppStore": "App Store ସହିତ ସଂଯୋଗ ହୋଇପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "noMatchingProducts": "App Store ଦ୍ୱାରା କୌଣସି ମେଳ ଖାଉଥିବା Kilo Pass ଉତ୍ପାଦ ଫେରସ୍ତ କରାଯାଇ ନାହିଁ।", + "purchaseMissingSignedTransaction": "App Store କ୍ରୟରେ ଏକ ସ୍ୱାକ୍ଷରିତ ଲେଣଦେଣ JWS ଅନ୍ତର୍ଭୁକ୍ତ ନଥିଲା।" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "ଉନ୍ନତି ଦରକାର", "sorryTitle": "ଏହା ଶୁଣି ଆମେ ଦୁଃଖିତ!", "sorryMessage": "କ'ଣ ଉନ୍ନତ ହେବା ଦରକାର ଆମକୁ ଜଣାନ୍ତୁ। ଆପ୍ ର ଦାୟିତ୍ୱରେ ଥିବା ଇଞ୍ଜିନିୟର ପ୍ରତ୍ୟେକ ରିପୋର୍ଟ ପଢ଼ନ୍ତି!", - "emailUs": "ଆମକୁ ଇମେଲ୍ କରନ୍ତୁ" + "emailUs": "ଆମକୁ ଇମେଲ୍ କରନ୍ତୁ", + "emailSubject": "ମୋବାଇଲ୍ ଆପ୍ ଫିଡବ୍ୟାକ୍" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "କୌଣସି କ୍ରେଡିଟ୍ କାର୍ଯ୍ୟକଳାପ ନାହିଁ", "expires": "{{date}}ରେ ମିଆଦ ଶେଷ", "title": "କ୍ରେଡିଟ୍ କାର୍ଯ୍ୟକଳାପ", - "transactionFallback": "କ୍ରେଡିଟ୍ ଲେଣଦେଣ" + "transactionFallback": "କ୍ରେଡିଟ୍ ଲେଣଦେଣ", + "category": { + "organization_custom": "ସଂଗଠନ କଷ୍ଟମ", + "parent_to_child_transfer_in": "ମୁଖ୍ୟରୁ ଅଧୀନକୁ ସ୍ଥାନାନ୍ତର (ଇନ୍)", + "parent_to_child_transfer_out": "ମୁଖ୍ୟରୁ ଅଧୀନକୁ ସ୍ଥାନାନ୍ତର (ଆଉଟ୍)", + "oss-sponsorship": "OSS-ପ୍ରାୟୋଜିତ", + "oss-monthly-reset": "OSS-ମାସିକ ରିସେଟ୍", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "ହିସାବ ସଂଶୋଧନ", + "credits_expired": "କ୍ରେଡିଟ୍ ସମାପ୍ତ" + } }, "inviteMember": { "emailError": "ଏକ ବୈଧ ଇମେଲ୍ ଠିକଣା ପ୍ରବେଶ କରନ୍ତୁ", @@ -2840,12 +2939,17 @@ "emptyDescription": "ପ୍ରତ୍ୟେକ ବିଲିଂ ଚକ୍ରରେ ଇନଭଏସ୍ ସ୍ୱୟଂକ୍ରିୟ ଭାବେ ଉତ୍ପନ୍ନ ହୁଏ ଏବଂ ଆପଣଙ୍କ ସଂଗଠନ ବିଲ୍ ହେଲେ ଏଠାରେ ଦେଖାଯିବ।", "emptyTitle": "କୌଣସି ଇନଭଏସ୍ ନାହିଁ", "invoiceFallback": "ଇନଭଏସ୍", - "statusOpen": "ଖୋଲା", - "statusPaid": "ପୈଠ", - "statusVoid": "ଅବୈଧ", "title": "ଇନଭଏସ୍", "downloadFailed": "ଇନଭଏସ୍ ଡାଉନଲୋଡ୍ କରାଯାଇ ପାରିଲା ନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", - "sharingUnavailable": "ଏହି ଡିଭାଇସ୍ ରେ ଅଂଶୀଦାର ଉପଲବ୍ଧ ନାହିଁ।" + "sharingUnavailable": "ଏହି ଡିଭାଇସ୍ ରେ ଅଂଶୀଦାର ଉପଲବ୍ଧ ନାହିଁ।", + "status": { + "paid": "ପୈଠ", + "open": "ଖୋଲା", + "void": "ଅବୈଧ", + "draft": "ଡ୍ରାଫ୍ଟ", + "uncollectible": "ଅସଂଗ୍ରହଣୀୟ", + "unknown": "ଅଜଣା" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ସଂଗୃହୀତ ଡାଟା", "free": "ମାଗଣା", - "couldNotUpdateFavorites": "ପସନ୍ଦଗୁଡ଼ିକ ଅଦ୍ୟତନ କରାଯାଇ ପାରିଲା ନାହିଁ" + "couldNotUpdateFavorites": "ପସନ୍ଦଗୁଡ଼ିକ ଅଦ୍ୟତନ କରାଯାଇ ପାରିଲା ନାହିଁ", + "thinkingEffort": { + "none": "ନାହିଁ", + "minimal": "ସର୍ବନିମ୍ନ", + "low": "ନିମ୍ନ", + "medium": "ମଧ୍ୟମ", + "high": "ଉଚ୍ଚ", + "xhigh": "ଅତି ଉଚ୍ଚ", + "max": "ସର୍ବାଧିକ" + } } } diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 323449f13d..8d6a251fdb 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} ਚੁਣਿਆ ਗਿਆ, ਚੋਣ ਬਦਲਣ ਲਈ ਟੈਪ ਕਰੋ", "tapToComment": "{{label}}, ਟਿੱਪਣੀ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ", - "truncationBanner": "ਕੁੱਲ {{total}} ਬਦਲੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚੋਂ ਪਹਿਲੇ {{limit}} ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ — GitHub API ਸੀਮਾ" + "truncationBanner": "ਕੁੱਲ {{total}} ਬਦਲੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚੋਂ ਪਹਿਲੇ {{limit}} ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ — GitHub API ਸੀਮਾ", + "statusAdded": "ਜੋੜਿਆ ਗਿਆ", + "statusContext": "ਸੰਦਰਭ", + "statusDeleted": "ਮਿਟਾਇਆ ਗਿਆ" }, "linkPasteClipboardEmpty": "ਕਲਿੱਪਬੋਰਡ ਖਾਲੀ ਹੈ", "linkPasteNotAPullRequest": "ਇਹ GitHub ਪੁੱਲ ਰਿਕਸਟ ਲਿੰਕ ਨਹੀਂ ਹੈ", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ਇਹ ਰਿਵਿਊ ਜਿਵੇਂ ਹੈ ਉਵੇਂ ਜਮ੍ਹਾਂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। PR ਬਦਲੀ ਹੋ ਸਕਦੀ ਹੈ, ਜਾਂ ਤੁਸੀਂ ਆਪਣੀ ਪੁੱਲ ਰਿਕਵੈਸਟ ਦਾ ਰਿਵਿਊ ਨਹੀਂ ਕਰ ਸਕਦੇ।", "couldNotPostComment": "ਟਿੱਪਣੀ ਪੋਸਟ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।", "couldNotSubmitReview": "ਰਿਵਿਊ ਜਮ੍ਹਾਂ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਚੈੱਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" + }, + "operation": { + "couldNotReply": "ਜਵਾਬ ਨਹੀਂ ਦਿੱਤਾ ਜਾ ਸਕਿਆ।", + "couldNotCompleteAction": "ਇਹ ਕਾਰਵਾਈ ਪੂਰੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।", + "mergeResultDefaultError": "GitHub ਨੇ ਮਰਜ ਪੂਰੀ ਨਹੀਂ ਕੀਤੀ।" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ਭੁਗਤਾਨ ਬਕਾਇਆ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਭੁਗਤਾਨ ਢੰਗ ਅੱਪਡੇਟ ਕਰੋ।", "subscriptionCancels": "ਗਾਹਕੀ {{date}} ਨੂੰ ਰੱਦ ਹੁੰਦੀ ਹੈ", "trialDaysRemaining": "ਅਜ਼ਮਾਇਸ਼: {{remaining}} ਬਾਕੀ", - "trialEndingSoon": "ਅਜ਼ਮਾਇਸ਼ ਜਲਦੀ ਖਤਮ ਹੋ ਰਹੀ ਹੈ: {{remaining}}" + "trialEndingSoon": "ਅਜ਼ਮਾਇਸ਼ ਜਲਦੀ ਖਤਮ ਹੋ ਰਹੀ ਹੈ: {{remaining}}", + "planName": { + "commit": "ਕਮਿਟ", + "standard": "Standard" + } }, "changelog": { "title": "ਕੀ ਨਵਾਂ ਹੈ", @@ -1189,7 +1201,8 @@ "strongArm": "ਤਾਕਤਵਰ ਬਾਂਹ", "talisman": "ਤਾਵੀਜ਼" }, - "remoteSpawnFilesNotSupported": "ਇਹ ਇੰਸਟੈਂਸ ਫਾਈਲਾਂ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਦਾ।" + "remoteSpawnFilesNotSupported": "ਇਹ ਇੰਸਟੈਂਸ ਫਾਈਲਾਂ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਸਕਦਾ।", + "instanceSwitcherTitle": "KiloClaw ਇੰਸਟੈਂਸ" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ਅਸਫਲ", "cancelled": "ਰੱਦ ਕੀਤਾ ਗਿਆ", "interrupted": "ਵਿਚੋਲਿਆ ਗਿਆ" - } + }, + "reviewStyle": { + "strict": "ਸਖ਼ਤ", + "balanced": "ਸੰਤੁਲਿਤ", + "lenient": "ਉਦਾਰ", + "roast": "Roast" + }, + "focusArea": { + "security": "ਸੁਰੱਖਿਆ", + "performance": "ਪ੍ਰਦਰਸ਼ਨ", + "bugs": "ਬੱਗ", + "style": "ਸ਼ੈਲੀ", + "testing": "ਟੈਸਟਿੰਗ", + "documentation": "ਦਸਤਾਵੇਜ਼" + }, + "gateThreshold": { + "off": "ਬੰਦ", + "all": "ਸਾਰੇ", + "warning": "ਚੇਤਾਵਨੀ", + "critical": "ਗੰਭੀਰ" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ", + "description": "Code Reviewer ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ Kilo ਇੱਕ ਸਰਗਰਮ GitHub App ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਲ ਇਸ ਰਿਪੋਜ਼ਟਰੀ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦਾ। GitHub App ਇੰਸਟਾਲੇਸ਼ਨ ਅੱਪਡੇਟ ਕਰੋ, ਫਿਰ Code Reviewer ਦੁਬਾਰਾ ਸਮਰੱਥ ਕਰੋ।", + "recoveryLabel": "GitHub App ਅੱਪਡੇਟ ਕਰੋ" + }, + "githubIpAllowList": { + "title": "Code Reviewer ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ", + "description": "Code Reviewer ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਇਹ GitHub ਸੰਗਠਨ ਇੱਕ IP ਅਨੁਮਤੀ ਸੂਚੀ ਵਰਤਦਾ ਹੈ ਜੋ Kilo ਨੂੰ ਬਲੌਕ ਕਰਦੀ ਹੈ। ਮਦਦ ਲਈ hi@kilocode.ai ਨਾਲ ਸੰਪਰਕ ਕਰੋ, ਫਿਰ Code Reviewer ਦੁਬਾਰਾ ਸਮਰੱਥ ਕਰੋ।", + "recoveryLabel": "ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰੋ" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ", + "description": "Code Reviewer ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ Kilo ਇਸ ਪ੍ਰੋਜੈਕਟ ਲਈ GitLab Project Access Token ਨਹੀਂ ਬਣਾ ਸਕਦਾ। Maintainer ਪਹੁੰਚ ਦਿਓ ਜਾਂ Project Access Tokens ਸਮਰੱਥ ਕਰੋ, ਫਿਰ Code Reviewer ਦੁਬਾਰਾ ਸਮਰੱਥ ਕਰੋ।", + "recoveryLabel": "GitLab ਏਕੀਕਰਣ ਅੱਪਡੇਟ ਕਰੋ" + }, + "byokInvalidKey": { + "title": "Code Reviewer ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ", + "description": "Code Reviewer ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਚੁਣੀ ਗਈ BYOK API ਕੁੰਜੀ ਅਵੈਧ ਹੈ, ਰੱਦ ਕੀਤੀ ਗਈ ਹੈ, ਜਾਂ ਇਸ ਵਿੱਚ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ। ਕੁੰਜੀ ਅੱਪਡੇਟ ਕਰੋ ਜਾਂ ਕੋਈ ਹੋਰ ਮਾਡਲ ਚੁਣੋ, ਫਿਰ Code Reviewer ਦੁਬਾਰਾ ਸਮਰੱਥ ਕਰੋ।", + "recoveryLabel": "BYOK ਸੈਟਿੰਗਾਂ ਅੱਪਡੇਟ ਕਰੋ" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ", + "description": "Code Reviewer ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਚੁਣਿਆ ਗਿਆ ਮਾਡਲ ਕਲਾਉਡ ਏਜੰਟ ਸੈਸ਼ਨਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। ਕੋਈ ਉਪਲਬਧ ਮਾਡਲ ਚੁਣੋ, ਫਿਰ Code Reviewer ਦੁਬਾਰਾ ਸਮਰੱਥ ਕਰੋ।", + "recoveryLabel": "Code Reviewer ਸੈਟਿੰਗਾਂ ਅੱਪਡੇਟ ਕਰੋ" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ", + "description": "ਅੱਜ ਤਿੰਨ ਰਿਪੋਜ਼ਟਰੀ ਕਲੋਨ ਟਾਈਮਆਊਟ ਤੋਂ ਬਾਅਦ Code Reviewer ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ। ਮਦਦ ਲਈ hi@kilocode.ai ਨਾਲ ਸੰਪਰਕ ਕਰੋ, ਫਿਰ Code Reviewer ਦੁਬਾਰਾ ਸਮਰੱਥ ਕਰੋ।", + "recoveryLabel": "ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰੋ" + } + }, + "unknownError": "ਅਣਜਾਣ ਗਲਤੀ" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ਖੋਜ ਆਟੋਮੈਟਿਕ ਗੰਭੀਰਤਾ ਥ੍ਰੈਸ਼ਹੋਲਡ ਤੋਂ ਹੇਠਾਂ ਹੈ। ਜਦੋਂ ਸੁਰੱਖਿਆ ਗੇਟ ਪਾਸ ਹੁੰਦੇ ਹਨ ਤਾਂ ਦਸਤੀ ਨਿਵਾਰਨ ਅਜੇ ਵੀ ਸ਼ੁਰੂ ਹੋ ਸਕਦਾ ਹੈ।", "beforeEnablement": "ਆਟੋ-ਨਿਵਾਰਨ ਸਮਰੱਥ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਵਿਸ਼ਲੇਸ਼ਣ ਪੂਰਾ ਹੋਇਆ। ਜਦੋਂ ਸੁਰੱਖਿਆ ਗੇਟ ਪਾਸ ਹੁੰਦੇ ਹਨ ਤਾਂ ਦਸਤੀ ਨਿਵਾਰਨ ਅਜੇ ਵੀ ਸ਼ੁਰੂ ਹੋ ਸਕਦਾ ਹੈ।", "generic": "ਇਸ ਖੋਜ ਲਈ ਨਿਵਾਰਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।" + }, + "commandFailure": { + "ownerCapReached": "ਵਿਸ਼ਲੇਸ਼ਣ ਸਮਰੱਥਾ ਭਰੀ ਹੋਈ ਹੈ। ਕਿਰਿਆਸ਼ੀਲ ਵਿਸ਼ਲੇਸ਼ਣ ਖਤਮ ਹੋਣ ਦੀ ਉਡੀਕ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "githubTokenUnavailable": "GitHub ਅਧਿਕਾਰ ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ। GitHub App ਦੁਬਾਰਾ ਅਧਿਕਾਰ ਦਿਓ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "githubAuthInvalid": "GitHub ਅਧਿਕਾਰ ਨੂੰ ਧਿਆਨ ਦੀ ਲੋੜ ਹੈ। GitHub App ਦੁਬਾਰਾ ਅਧਿਕਾਰ ਦਿਓ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "findingUnavailable": "ਖੋਜ ਹੁਣ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। ਖੋਜਾਂ ਨੂੰ ਰਿਫਰੈਸ਼ ਕਰੋ ਅਤੇ ਜੇਕਰ ਇਹ ਖੁੱਲ੍ਹੀ ਰਹਿੰਦੀ ਹੈ ਤਾਂ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "repositoryUnavailable": "ਰਿਪੋਜ਼ਟਰੀ ਹੁਣ GitHub App ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। ਰਿਪੋਜ਼ਟਰੀ ਪਹੁੰਚ ਰਿਫਰੈਸ਼ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "invalidDismissTarget": "ਖੋਜ ਨੂੰ ਖਾਰਜ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਕਿਉਂਕਿ ਇਸਦਾ Dependabot ਟੀਚਾ ਅਵੈਧ ਹੈ।", + "commandStalled": "ਕਤਾਰਬੱਧ ਕਾਰਵਾਈ ਸਮੇਂ ਸਿਰ ਪੂਰੀ ਨਹੀਂ ਹੋਈ। ਕਾਰਵਾਈ ਦੁਬਾਰਾ ਕਰੋ।", + "queueRetriesExhausted": "ਕਈ ਕੋਸ਼ਿਸ਼ਾਂ ਤੋਂ ਬਾਅਦ ਕਾਰਵਾਈ ਪੂਰੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ। ਕਾਰਵਾਈ ਦੁਬਾਰਾ ਕਰੋ।", + "queueAdmissionFailed": "ਕਤਾਰਬੱਧ ਕਾਰਵਾਈ ਸਵੀਕਾਰ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ। ਕਾਰਵਾਈ ਦੁਬਾਰਾ ਕਰੋ।", + "generic": "ਕਤਾਰਬੱਧ ਕਾਰਵਾਈ ਅਸਫਲ ਰਹੀ। ਕਾਰਵਾਈ ਦੁਬਾਰਾ ਕਰੋ।" + }, + "analysisMode": { + "auto": "ਆਟੋ", + "shallow": "ਸਤਹੀ", + "deep": "ਡੂੰਘਾ" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} ਨੂੰ ਪਸੰਦੀਦਾ ਵਿੱਚ ਜੋੜੋ", "removeFromFavorites": "{{name}} ਨੂੰ ਪਸੰਦੀਦਾ ਤੋਂ ਹਟਾਓ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "ਸੈਸ਼ਨ ਮਾਡਲ" }, "attachmentPreview": { "openFailedRetry": "ਫਾਈਲ ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ਕ੍ਰੈਡਿਟ ਜੋੜੋ", - "description": "ਵਰਤੋਂ ਚਲਦੀ ਰੱਖਣ ਲਈ ਕ੍ਰੈਡਿਟ ਜੋੜੋ।" + "description": "ਵਰਤੋਂ ਚਲਦੀ ਰੱਖਣ ਲਈ ਕ੍ਰੈਡਿਟ ਜੋੜੋ।", + "billingPage": "ਬਿਲਿੰਗ ਪੰਨਾ" }, "deviceSessions": { "couldNotLoad": "ਸੈਸ਼ਨ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ", @@ -2710,7 +2795,10 @@ "restoreFailed": "ਖਰੀਦਾਂ ਬਹਾਲ ਕਰਨ ਵਿੱਚ ਅਸਫਲ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", "purchaseFailed": "ਖਰੀਦ ਪੂਰੀ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।", "purchaseStartFailed": "ਐਪ ਸਟੋਰ ਖਰੀਦ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਅਸਫਲ।", - "purchaseOwnedByAnotherAccount": "ਇਸ Apple ਖਾਤੇ 'ਤੇ Kilo Pass ਵੱਖਰੇ Kilo ਖਾਤੇ ਨਾਲ ਸਬੰਧਤ ਹੈ।" + "purchaseOwnedByAnotherAccount": "ਇਸ Apple ਖਾਤੇ 'ਤੇ Kilo Pass ਵੱਖਰੇ Kilo ਖਾਤੇ ਨਾਲ ਸਬੰਧਤ ਹੈ।", + "couldNotConnectToAppStore": "App Store ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਹੋ ਸਕਿਆ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਜਾਂਚੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "noMatchingProducts": "App Store ਦੁਆਰਾ ਕੋਈ ਮੇਲ ਖਾਂਦੇ Kilo Pass ਉਤਪਾਦ ਵਾਪਸ ਨਹੀਂ ਕੀਤੇ ਗਏ।", + "purchaseMissingSignedTransaction": "App Store ਖਰੀਦ ਵਿੱਚ ਦਸਤਖਤ ਕੀਤਾ ਟ੍ਰਾਂਜ਼ੈਕਸ਼ਨ JWS ਸ਼ਾਮਲ ਨਹੀਂ ਸੀ।" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "ਸੁਧਾਰ ਦੀ ਲੋੜ ਹੈ", "sorryTitle": "ਇਹ ਸੁਣ ਕੇ ਸਾਨੂੰ ਅਫਸੋਸ ਹੈ!", "sorryMessage": "ਕਿਰਪਾ ਕਰਕੇ ਸਾਨੂੰ ਦੱਸੋ ਕਿ ਕੀ ਸੁਧਾਰ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਐਪ ਦੀ ਜ਼ਿੰਮੇਵਾਰ ਇੰਜੀਨੀਅਰ ਹਰ ਇੱਕ ਰਿਪੋਰਟ ਪੜ੍ਹਦਾ ਹੈ!", - "emailUs": "ਸਾਨੂੰ ਈਮੇਲ ਕਰੋ" + "emailUs": "ਸਾਨੂੰ ਈਮੇਲ ਕਰੋ", + "emailSubject": "ਮੋਬਾਈਲ ਐਪ ਫੀਡਬੈਕ" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "ਕੋਈ ਕ੍ਰੈਡਿਟ ਗਤੀਵਿਧੀ ਨਹੀਂ", "expires": "{{date}} ਨੂੰ ਖਤਮ ਹੁੰਦਾ ਹੈ", "title": "ਕ੍ਰੈਡਿਟ ਗਤੀਵਿਧੀ", - "transactionFallback": "ਕ੍ਰੈਡਿਟ ਲੈਣ-ਦੇਣ" + "transactionFallback": "ਕ੍ਰੈਡਿਟ ਲੈਣ-ਦੇਣ", + "category": { + "organization_custom": "ਸੰਗਠਨ ਕਸਟਮ", + "parent_to_child_transfer_in": "ਪੇਰੈਂਟ ਤੋਂ ਚਾਈਲਡ ਟ੍ਰਾਂਸਫਰ (ਅੰਦਰ)", + "parent_to_child_transfer_out": "ਪੇਰੈਂਟ ਤੋਂ ਚਾਈਲਡ ਟ੍ਰਾਂਸਫਰ (ਬਾਹਰ)", + "oss-sponsorship": "OSS-ਸਪਾਂਸਰਸ਼ਿਪ", + "oss-monthly-reset": "OSS-ਮਾਸਿਕ ਰੀਸੈਟ", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "ਲੇਖਾ ਸਮਾਯੋਜਨ", + "credits_expired": "ਕ੍ਰੈਡਿਟ ਮਿਆਦ ਪੁੱਗ ਗਏ" + } }, "inviteMember": { "emailError": "ਵੈਧ ਈਮੇਲ ਪਤਾ ਦਰਜ ਕਰੋ", @@ -2840,12 +2939,17 @@ "emptyDescription": "ਇਨਵੌਇਸ ਹਰ ਬਿਲਿੰਗ ਚੱਕਰ 'ਤੇ ਆਪਣੇ ਆਪ ਤਿਆਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਤੁਹਾਡੀ ਸੰਸਥਾ ਦੇ ਬਿਲ ਹੋਣ 'ਤੇ ਇੱਥੇ ਦਿਖਾਈ ਦੇਣਗੇ।", "emptyTitle": "ਕੋਈ ਇਨਵੌਇਸ ਨਹੀਂ", "invoiceFallback": "ਇਨਵੌਇਸ", - "statusOpen": "ਖੁੱਲ੍ਹਾ", - "statusPaid": "ਅਦਾ ਕੀਤਾ", - "statusVoid": "ਅਵੈਧ", "title": "ਇਨਵੌਇਸ", "downloadFailed": "ਇਨਵੌਇਸ ਡਾਊਨਲੋਡ ਨਹੀਂ ਹੋ ਸਕਿਆ। ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਚੈੱਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", - "sharingUnavailable": "ਇਸ ਡਿਵਾਈਸ 'ਤੇ ਸਾਂਝਾ ਕਰਨਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।" + "sharingUnavailable": "ਇਸ ਡਿਵਾਈਸ 'ਤੇ ਸਾਂਝਾ ਕਰਨਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।", + "status": { + "paid": "ਅਦਾ ਕੀਤਾ", + "open": "ਖੁੱਲ੍ਹਾ", + "void": "ਅਵੈਧ", + "draft": "ਡਰਾਫਟ", + "uncollectible": "ਅਵਸੂਲਯੋਗ", + "unknown": "ਅਣਜਾਣ" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ਇਕੱਠਾ ਕੀਤਾ ਗਿਆ ਡੇਟਾ", "free": "ਮੁਫਤ", - "couldNotUpdateFavorites": "ਪਸੰਦੀਦਾ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕੇ" + "couldNotUpdateFavorites": "ਪਸੰਦੀਦਾ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤੇ ਜਾ ਸਕੇ", + "thinkingEffort": { + "none": "ਕੋਈ ਨਹੀਂ", + "minimal": "ਘੱਟੋ-ਘੱਟ", + "low": "ਨੀਵਾਂ", + "medium": "ਦਰਮਿਆਨਾ", + "high": "ਉੱਚਾ", + "xhigh": "ਬਹੁਤ ਉੱਚਾ", + "max": "ਅਧਿਕਤਮ" + } } } diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index 7d4e8059b5..3079a67994 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -384,7 +384,11 @@ "paymentPastDue": "Płatność zaległa. Zaktualizuj metodę płatności.", "subscriptionCancels": "Subskrypcja zostanie anulowana {{date}}", "trialDaysRemaining": "Okres próbny: pozostało {{remaining}}", - "trialEndingSoon": "Okres próbny wkrótce się kończy: {{remaining}}" + "trialEndingSoon": "Okres próbny wkrótce się kończy: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Co nowego", @@ -754,7 +758,8 @@ "strongArm": "Silne ramię", "talisman": "Talizman" }, - "remoteSpawnFilesNotSupported": "Ta instancja nie może odbierać plików." + "remoteSpawnFilesNotSupported": "Ta instancja nie może odbierać plików.", + "instanceSwitcherTitle": "Instancja KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -952,7 +957,60 @@ "failed": "Nie powiodło się", "cancelled": "Anulowano", "interrupted": "Przerwano" - } + }, + "reviewStyle": { + "strict": "Rygorystyczny", + "balanced": "Zrównoważony", + "lenient": "Pobłażliwy", + "roast": "Roast" + }, + "focusArea": { + "security": "Bezpieczeństwo", + "performance": "Wydajność", + "bugs": "Błędy", + "style": "Styl", + "testing": "Testowanie", + "documentation": "Dokumentacja" + }, + "gateThreshold": { + "off": "Wyłączone", + "all": "Wszystkie", + "warning": "Ostrzeżenia", + "critical": "Krytyczne" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer wymaga uwagi", + "description": "Code Reviewer został wyłączony, ponieważ Kilo nie może uzyskać dostępu do tego repozytorium przez aktywną instalację aplikacji GitHub. Zaktualizuj instalację aplikacji GitHub, a następnie włącz Code Reviewer ponownie.", + "recoveryLabel": "Zaktualizuj aplikację GitHub" + }, + "githubIpAllowList": { + "title": "Code Reviewer wymaga uwagi", + "description": "Code Reviewer został wyłączony, ponieważ ta organizacja GitHub używa listy dozwolonych adresów IP, która blokuje Kilo. Skontaktuj się z hi@kilocode.ai, aby uzyskać pomoc, a następnie włącz Code Reviewer ponownie.", + "recoveryLabel": "Skontaktuj się z pomocą techniczną" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer wymaga uwagi", + "description": "Code Reviewer został wyłączony, ponieważ Kilo nie może utworzyć tokenu dostępu do projektu GitLab dla tego projektu. Przyznaj dostęp typu Maintainer lub włącz tokeny dostępu do projektu, a następnie włącz Code Reviewer ponownie.", + "recoveryLabel": "Zaktualizuj integrację z GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer wymaga uwagi", + "description": "Code Reviewer został wyłączony, ponieważ wybrany klucz API BYOK jest nieprawidłowy, odwołany lub nie ma wymaganych uprawnień. Zaktualizuj klucz lub wybierz inny model, a następnie włącz Code Reviewer ponownie.", + "recoveryLabel": "Zaktualizuj ustawienia BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer wymaga uwagi", + "description": "Code Reviewer został wyłączony, ponieważ wybrany model nie jest dostępny dla sesji agenta w chmurze. Wybierz dostępny model, a następnie włącz Code Reviewer ponownie.", + "recoveryLabel": "Zaktualizuj ustawienia Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer wymaga uwagi", + "description": "Code Reviewer został wyłączony po trzech dzisiejszych przekroczeniach limitu czasu klonowania repozytorium. Skontaktuj się z hi@kilocode.ai, aby uzyskać pomoc, a następnie włącz Code Reviewer ponownie.", + "recoveryLabel": "Skontaktuj się z pomocą techniczną" + } + }, + "unknownError": "Nieznany błąd" }, "securityAgent": { "filter": { @@ -1500,6 +1558,23 @@ "belowThreshold": "Ustalenie jest poniżej progu automatycznej krytyczności. Ręczna naprawa może się nadal rozpocząć, gdy kontrole bezpieczeństwa zakończą się powodzeniem.", "beforeEnablement": "Analiza została ukończona przed włączeniem automatycznej naprawy. Ręczna naprawa może się nadal rozpocząć, gdy kontrole bezpieczeństwa zakończą się powodzeniem.", "generic": "Naprawa jest niedostępna dla tego znaleziska." + }, + "commandFailure": { + "ownerCapReached": "Limit analiz jest pełny. Poczekaj, aż aktywna analiza się zakończy, a następnie spróbuj ponownie.", + "githubTokenUnavailable": "Autoryzacja GitHub wymaga uwagi. Ponownie autoryzuj aplikację GitHub, a następnie spróbuj ponownie.", + "githubAuthInvalid": "Autoryzacja GitHub wymaga uwagi. Ponownie autoryzuj aplikację GitHub, a następnie spróbuj ponownie.", + "findingUnavailable": "Ustalenie nie jest już dostępne. Odśwież ustalenia i spróbuj ponownie, jeśli nadal jest otwarte.", + "repositoryUnavailable": "Repozytorium nie jest już dostępne dla aplikacji GitHub. Odśwież dostęp do repozytorium, a następnie spróbuj ponownie.", + "invalidDismissTarget": "Ustalenie nie może zostać odrzucone, ponieważ jego cel Dependabot jest nieprawidłowy.", + "commandStalled": "Zakolejkowana akcja nie została ukończona na czas. Spróbuj ponownie wykonać akcję.", + "queueRetriesExhausted": "Akcja nie mogła zostać ukończona po kilku próbach. Spróbuj ponownie wykonać akcję.", + "queueAdmissionFailed": "Zakolejkowana akcja nie mogła zostać przyjęta. Spróbuj ponownie wykonać akcję.", + "generic": "Zakolejkowana akcja nie powiodła się. Spróbuj ponownie wykonać akcję." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Płytka", + "deep": "Głęboka" } }, "agents": { @@ -1975,7 +2050,8 @@ "addToFavorites": "Dodaj {{name}} do ulubionych", "removeFromFavorites": "Usuń {{name}} z ulubionych", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Średni" + "thinkingEffortMedium": "Średni", + "sessionModel": "Model sesji" }, "attachmentPreview": { "openFailedRetry": "Nie udało się otworzyć pliku. Spróbuj ponownie.", @@ -2109,7 +2185,8 @@ }, "addCredits": { "cta": "Dodaj kredyty", - "description": "Dodaj kredyty, aby utrzymać działanie." + "description": "Dodaj kredyty, aby utrzymać działanie.", + "billingPage": "strona rozliczeń" }, "deviceSessions": { "couldNotLoad": "Nie można załadować sesji", @@ -2297,7 +2374,10 @@ "restoreFailed": "Nie udało się przywrócić zakupów. Spróbuj ponownie.", "purchaseFailed": "Nie udało się dokończyć zakupu.", "purchaseStartFailed": "Nie udało się rozpocząć zakupu w App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na tym koncie Apple należy do innego konta Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass na tym koncie Apple należy do innego konta Kilo.", + "couldNotConnectToAppStore": "Nie udało się połączyć z App Store. Sprawdź połączenie i spróbuj ponownie.", + "noMatchingProducts": "App Store nie zwróciła pasujących produktów Kilo Pass.", + "purchaseMissingSignedTransaction": "Zakup w App Store nie zawierał podpisanej transakcji JWS." }, "consent": { "kilo": "Kilo", @@ -2819,7 +2899,10 @@ "diff": { "selectedTapToChange": "Wybrano {{label}}, dotknij, aby zmienić wybór", "tapToComment": "{{label}}, dotknij, aby skomentować", - "truncationBanner": "Wyświetlanie pierwszych {{limit}} z {{total}} zmienionych plików — limit API GitHub" + "truncationBanner": "Wyświetlanie pierwszych {{limit}} z {{total}} zmienionych plików — limit API GitHub", + "statusAdded": "Dodano", + "statusContext": "Kontekst", + "statusDeleted": "Usunięto" }, "linkPasteClipboardEmpty": "Schowek jest pusty", "linkPasteNotAPullRequest": "To nie jest link do pull requesta na GitHub", @@ -2833,6 +2916,11 @@ "reviewNotSubmitted": "Ta recenzja nie może zostać przesłana w tej formie. PR mógł się zmienić lub nie możesz recenzować własnego pull requesta.", "couldNotPostComment": "Nie udało się opublikować komentarza.", "couldNotSubmitReview": "Nie udało się przesłać recenzji. Sprawdź połączenie i spróbuj ponownie." + }, + "operation": { + "couldNotReply": "Nie udało się odpowiedzieć.", + "couldNotCompleteAction": "Nie udało się ukończyć tej akcji.", + "mergeResultDefaultError": "GitHub nie ukończył scalania." } }, "organization": { @@ -2850,7 +2938,17 @@ "emptyTitle": "Brak aktywności kredytowej", "expires": "Wygasa {{date}}", "title": "Aktywność kredytowa", - "transactionFallback": "Transakcja kredytowa" + "transactionFallback": "Transakcja kredytowa", + "category": { + "organization_custom": "Niestandardowe organizacji", + "parent_to_child_transfer_in": "Przelew z organizacji nadrzędnej do podrzędnej (przychodzący)", + "parent_to_child_transfer_out": "Przelew z organizacji nadrzędnej do podrzędnej (wychodzący)", + "oss-sponsorship": "Sponsoring OSS", + "oss-monthly-reset": "Miesięczny reset OSS", + "team-topup-bonus-2025": "Bonus doładowania zespołu 2025", + "accounting_adjustment": "Korekta księgowa", + "credits_expired": "Kredyty wygasły" + } }, "hub": { "balance": "Saldo", @@ -2877,11 +2975,16 @@ "emptyTitle": "Brak faktur", "invoiceFallback": "Faktura", "title": "Faktury", - "statusPaid": "Opłacono", - "statusOpen": "Otwarta", - "statusVoid": "Unieważniona", "downloadFailed": "Nie udało się pobrać faktury. Sprawdź połączenie i spróbuj ponownie.", - "sharingUnavailable": "Udostępnianie nie jest dostępne na tym urządzeniu." + "sharingUnavailable": "Udostępnianie nie jest dostępne na tym urządzeniu.", + "status": { + "paid": "Opłacono", + "open": "Otwarta", + "void": "Unieważniona", + "draft": "Wersja robocza", + "uncollectible": "Nieściągalna", + "unknown": "Nieznana" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2983,7 +3086,8 @@ "promptTitle": "Jak podoba Ci się aplikacja Kilo?", "rateKilo": "Oceń Kilo", "sorryMessage": "Daj nam znać, co należy poprawić. Inżynier odpowiedzialny za aplikację czyta każde zgłoszenie!", - "sorryTitle": "Przykro nam to słyszeć!" + "sorryTitle": "Przykro nam to słyszeć!", + "emailSubject": "opinia o aplikacji mobilnej" }, "authErrors": { "emailAlreadyUsed": "Konto z tym adresem e-mail już istnieje i używa innej metody logowania. Spróbuj innej metody lub użyj „$t(login.moreSignInOptions)”.", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Zebrane dane", "free": "Bezpłatnie", - "couldNotUpdateFavorites": "Nie udało się zaktualizować ulubionych" + "couldNotUpdateFavorites": "Nie udało się zaktualizować ulubionych", + "thinkingEffort": { + "none": "Brak", + "minimal": "Minimalny", + "low": "Niski", + "medium": "Średni", + "high": "Wysoki", + "xhigh": "Bardzo wysoki", + "max": "Maksymalny" + } } } diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index a6874eea05..3ccc57826a 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} غوره شوی، د انتخاب بدلولو لپاره ټک وکړئ", "tapToComment": "{{label}}، د تبصرې لپاره ټک وکړئ", - "truncationBanner": "د {{total}} بدل شویو فایلونو څخه لومړني {{limit}} ښودل کیږي — د GitHub API حد" + "truncationBanner": "د {{total}} بدل شویو فایلونو څخه لومړني {{limit}} ښودل کیږي — د GitHub API حد", + "statusAdded": "اضافه شوی", + "statusContext": "شرایط", + "statusDeleted": "ړنګ شوی" }, "linkPasteClipboardEmpty": "کلیپبورډ خالي دی", "linkPasteNotAPullRequest": "دا د GitHub pull request لینک نه دی", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "دا بیاکتنه لکه څنګه چې ده نشي سپارل کېدلای. PR ممکن بدل شوی وي، یا تاسو نشئ کولای خپل پل ریکویسټ بیاکتنه کړئ.", "couldNotPostComment": "تبصره نشوه خپرېدلای.", "couldNotSubmitReview": "بیاکتنه نشوه سپارل کېدلای. خپل اړیکه وګورئ او بیا هڅه وکړئ." + }, + "operation": { + "couldNotReply": "ځواب ورکول کیدی نشو.", + "couldNotCompleteAction": "دا کړنه بشپړول کیدی نشو.", + "mergeResultDefaultError": "GitHub یوځای کول بشپړ نه کړل." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "تادیه له نیټې تېره شوې. مهرباني وکړئ د تادیې طریقه نوي کړئ.", "subscriptionCancels": "ګډون په {{date}} لغوه کېږي", "trialDaysRemaining": "تجربه: {{remaining}} پاتې دي", - "trialEndingSoon": "تجربه ډېر ژر پای ته رسېږي: {{remaining}}" + "trialEndingSoon": "تجربه ډېر ژر پای ته رسېږي: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "نوی څه دی", @@ -1189,7 +1201,8 @@ "strongArm": "قوي لاس", "talisman": "طلسم" }, - "remoteSpawnFilesNotSupported": "دا بیلګه فایلونه نه شي ترلاسه کولای." + "remoteSpawnFilesNotSupported": "دا بیلګه فایلونه نه شي ترلاسه کولای.", + "instanceSwitcherTitle": "د KiloClaw بیلګه" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ناکام", "cancelled": "لغوه شوی", "interrupted": "مداخله شوی" - } + }, + "reviewStyle": { + "strict": "سخت", + "balanced": "متعادل", + "lenient": "نرم", + "roast": "Roast" + }, + "focusArea": { + "security": "امنیت", + "performance": "کارکردګۍ", + "bugs": "بګونه", + "style": "سټایل", + "testing": "ازموینه", + "documentation": "اسناد" + }, + "gateThreshold": { + "off": "بند", + "all": "ټول", + "warning": "خبرداری", + "critical": "جدي" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "کوډ بیاکتونکی پاملرنې ته اړتیا لري", + "description": "کوډ بیاکتونکی غیر فعال شو ځکه چې Kilo نشي کولای د فعال GitHub App نصبولو سره دې ذخیرې ته لاسرسی ومومي. د GitHub App نصبول تازه کړئ، بیا کوډ بیاکتونکی بیا فعال کړئ.", + "recoveryLabel": "د GitHub App نصبول تازه کړئ" + }, + "githubIpAllowList": { + "title": "کوډ بیاکتونکی پاملرنې ته اړتیا لري", + "description": "کوډ بیاکتونکی غیر فعال شو ځکه چې دا GitHub سازمان د IP اجازه لړلیک کاروي چې Kilo بندوي. د مرستې لپاره له hi@kilocode.ai سره اړیکه ونیسئ، بیا کوډ بیاکتونکی بیا فعال کړئ.", + "recoveryLabel": "له ملاتړ سره اړیکه ونیسئ" + }, + "gitlabProjectAccessRequired": { + "title": "کوډ بیاکتونکی پاملرنې ته اړتیا لري", + "description": "کوډ بیاکتونکی غیر فعال شو ځکه چې Kilo نشي کولای د دې پروژې لپاره د GitLab Project Access Token جوړ کړي. د Maintainer لاسرسی ورکړئ یا د Project Access Tokens فعال کړئ، بیا کوډ بیاکتونکی بیا فعال کړئ.", + "recoveryLabel": "د GitLab ادغام تازه کړئ" + }, + "byokInvalidKey": { + "title": "کوډ بیاکتونکی پاملرنې ته اړتیا لري", + "description": "کوډ بیاکتونکی غیر فعال شو ځکه چې غوره شوی BYOK API کلید ناسم، منسوخ، یا پرته له اجازې ده. کلید تازه کړئ یا بل ماډل وټاکئ، بیا کوډ بیاکتونکی بیا فعال کړئ.", + "recoveryLabel": "د BYOK ترتیبات تازه کړئ" + }, + "selectedModelUnavailable": { + "title": "کوډ بیاکتونکی پاملرنې ته اړتیا لري", + "description": "کوډ بیاکتونکی غیر فعال شو ځکه چې غوره شوی ماډل د کلاوډ اجنټ ناستو لپاره شتون نلري. یو شتون لرونکی ماډل وټاکئ، بیا کوډ بیاکتونکی بیا فعال کړئ.", + "recoveryLabel": "د کوډ بیاکتونکي ترتیبات تازه کړئ" + }, + "repeatedRepositoryCloneTimeout": { + "title": "کوډ بیاکتونکی پاملرنې ته اړتیا لري", + "description": "کوډ بیاکتونکی نن د دریو ذخیرې کلون وخت څخه د تېریدو وروسته غیر فعال شو. د مرستې لپاره له hi@kilocode.ai سره اړیکه ونیسئ، بیا کوډ بیاکتونکی بیا فعال کړئ.", + "recoveryLabel": "له ملاتړ سره اړیکه ونیسئ" + } + }, + "unknownError": "نامعلومه تېروتنه" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "موندنه د اتوماتیک کچې حد څخه ښکته ده. کله چې امنیتي دروازې تېرې شي، لاسي اصلاح لاهم پیل کیدی شي.", "beforeEnablement": "تحلیل د اتوماتیک اصلاح فعالولو دمخه بشپړ شو. کله چې امنیتي دروازې تېرې شي، لاسي اصلاح لاهم پیل کیدی شي.", "generic": "اصلاح د دې موندنې لپاره شتون نلري." + }, + "commandFailure": { + "ownerCapReached": "د تحلیل ظرفیت ډک دی. انتظار وکړئ چې یو فعال تحلیل پای ته ورسي، بیا هڅه وکړئ.", + "githubTokenUnavailable": "د GitHub اجازه پاملرنې ته اړتیا لري. د GitHub App بیا اجازه ورکړئ، بیا هڅه وکړئ.", + "githubAuthInvalid": "د GitHub اجازه پاملرنې ته اړتیا لري. د GitHub App بیا اجازه ورکړئ، بیا هڅه وکړئ.", + "findingUnavailable": "موندنه نوره شتون نلري. موندنې تازه کړئ او که خلاصه پاتې وي بیا هڅه وکړئ.", + "repositoryUnavailable": "ذخیره نوره د GitHub App لپاره شتون نلري. د ذخیرې لاسرسی تازه کړئ، بیا هڅه وکړئ.", + "invalidDismissTarget": "موندنه ردول کیدی نشي ځکه چې د هغې Dependabot هدف ناسم دی.", + "commandStalled": "قطار شوې کړنه په وخت کې بشپړه نشوه. کړنه بیا هڅه کړئ.", + "queueRetriesExhausted": "کړنه د څو هڅو وروسته بشپړه کیدی نشوه. کړنه بیا هڅه کړئ.", + "queueAdmissionFailed": "قطار شوې کړنه منل کیدی نشوه. کړنه بیا هڅه کړئ.", + "generic": "قطار شوې کړنه ناکامه شوه. کړنه بیا هڅه کړئ." + }, + "analysisMode": { + "auto": "اتومات", + "shallow": "سطحي", + "deep": "ژور" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} غوره شویو ته اضافه کړئ", "removeFromFavorites": "{{name}} له غوره شویو څخه لرې کړئ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "د ناستې ماډل" }, "attachmentPreview": { "openFailedRetry": "فایل نه شو خلاصېدلای. مهرباني وکړئ بیا هڅه وکړئ.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "کریډیټونه اضافه کړئ", - "description": "د کارولو د دوام لپاره کریډیټونه اضافه کړئ." + "description": "د کارولو د دوام لپاره کریډیټونه اضافه کړئ.", + "billingPage": "د بلینګ پاڼه" }, "deviceSessions": { "couldNotLoad": "غونډې نه شول پورته کېدلای", @@ -2710,7 +2795,10 @@ "restoreFailed": "پیرودونه بیرته راوړل ناکام شول. بیا هڅه وکړئ.", "purchaseFailed": "پیرود بشپړول ناکام شول.", "purchaseStartFailed": "د App Store پیرود پیل کول ناکام شول.", - "purchaseOwnedByAnotherAccount": "دا Apple Account باندې Kilo Pass د بل Kilo حساب پورې اړه لري." + "purchaseOwnedByAnotherAccount": "دا Apple Account باندې Kilo Pass د بل Kilo حساب پورې اړه لري.", + "couldNotConnectToAppStore": "له App Store سره اړیکه نشوه نیول کېدای. خپله اړیکه وګورئ او بیا هڅه وکړئ.", + "noMatchingProducts": "د App Store لخوا کوم ورته Kilo Pass محصولات بیرته نه دي راستانه شوي.", + "purchaseMissingSignedTransaction": "د App Store پیرود لاسلیک شوی JWS لیږد نه درلود." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "کار ته اړتیا لري", "sorryTitle": "موږ د دې اوریدو څخه بخښنه غواړو!", "sorryMessage": "مهرباني وکړئ موږ ته خبر راکړئ چې څه باید ښه شي. د ایپ مسؤل انجنیر هر راپور لولي!", - "emailUs": "موږ ته بریښنالیک واستوئ" + "emailUs": "موږ ته بریښنالیک واستوئ", + "emailSubject": "د موبایل ایپ غبرګون" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "هیڅ کریډیټ فعالیت نشته", "expires": "{{date}} پای ته رسیږي", "title": "د کریډیټ فعالیت", - "transactionFallback": "د کریډیټ راکړه ورکړه" + "transactionFallback": "د کریډیټ راکړه ورکړه", + "category": { + "organization_custom": "د سازمان ځانګړی", + "parent_to_child_transfer_in": "له والد څخه ماشوم ته لیږد (داخل)", + "parent_to_child_transfer_out": "له والد څخه ماشوم ته لیږد (خارج)", + "oss-sponsorship": "د OSS سپانسرشيپ", + "oss-monthly-reset": "د OSS میاشتنی ریسیټ", + "team-topup-bonus-2025": "د ټیم ټاپ اپ بونس 2025", + "accounting_adjustment": "د محاسبې سمون", + "credits_expired": "کریډیټونه منقضي شوي" + } }, "inviteMember": { "emailError": "یو سم بریښنالیک آدرس دننه کړئ", @@ -2840,12 +2939,17 @@ "emptyDescription": "بیلونه په هر بیلینګ دوره کې په اتومات ډول رامنځته کېږي او یوځل چې ستاسو سازمان بیل شي دلته به ښکاره شي.", "emptyTitle": "هیڅ بیل نشته", "invoiceFallback": "بیل", - "statusOpen": "خلاص", - "statusPaid": "ورکړل شوی", - "statusVoid": "باطل", "title": "بیلونه", "downloadFailed": "بیل ډاونلوډ نه شو. خپل اړیکه وګورئ او بیا هڅه وکړئ.", - "sharingUnavailable": "شریکول په دې وسیله شتون نلري." + "sharingUnavailable": "شریکول په دې وسیله شتون نلري.", + "status": { + "paid": "ورکړل شوی", + "open": "خلاص", + "void": "باطل", + "draft": "مسوده", + "uncollectible": "نه راټولېدونکی", + "unknown": "نامعلوم" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ټول شوي معلومات", "free": "وړیا", - "couldNotUpdateFavorites": "غوره شوي تازه کول ممکن نه وو" + "couldNotUpdateFavorites": "غوره شوي تازه کول ممکن نه وو", + "thinkingEffort": { + "none": "هېڅ", + "minimal": "لږ تر لږه", + "low": "ټیټ", + "medium": "منځنۍ", + "high": "لوړ", + "xhigh": "ډېر لوړ", + "max": "اعظمي" + } } } diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index 284c18d2cc..43b0efe6fc 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -369,7 +369,11 @@ "paymentPastDue": "Pagamento em atraso. Atualize sua forma de pagamento.", "subscriptionCancels": "Assinatura cancela em {{date}}", "trialDaysRemaining": "Teste: faltam {{remaining}}", - "trialEndingSoon": "Teste terminando em breve: {{remaining}}" + "trialEndingSoon": "Teste terminando em breve: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Novidades", @@ -738,7 +742,8 @@ "strongArm": "Braço forte", "talisman": "Talismã" }, - "remoteSpawnFilesNotSupported": "Esta instância não pode receber arquivos." + "remoteSpawnFilesNotSupported": "Esta instância não pode receber arquivos.", + "instanceSwitcherTitle": "Instância do KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -936,7 +941,60 @@ "failed": "Falhou", "cancelled": "Cancelado", "interrupted": "Interrompida" - } + }, + "reviewStyle": { + "strict": "Rigoroso", + "balanced": "Equilibrado", + "lenient": "Tolerante", + "roast": "Roast" + }, + "focusArea": { + "security": "Segurança", + "performance": "Desempenho", + "bugs": "Erros", + "style": "Estilo", + "testing": "Testes", + "documentation": "Documentação" + }, + "gateThreshold": { + "off": "Desativado", + "all": "Todos", + "warning": "Avisos", + "critical": "Crítico" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "O Code Reviewer precisa de atenção", + "description": "O Code Reviewer foi desativado porque o Kilo não consegue acessar este repositório com uma instalação ativa do GitHub App. Atualize a instalação do GitHub App e reative o Code Reviewer.", + "recoveryLabel": "Atualizar GitHub App" + }, + "githubIpAllowList": { + "title": "O Code Reviewer precisa de atenção", + "description": "O Code Reviewer foi desativado porque esta organização do GitHub usa uma lista de permissão de IP que bloqueia o Kilo. Fale com hi@kilocode.ai para obter ajuda e reative o Code Reviewer.", + "recoveryLabel": "Falar com o suporte" + }, + "gitlabProjectAccessRequired": { + "title": "O Code Reviewer precisa de atenção", + "description": "O Code Reviewer foi desativado porque o Kilo não consegue criar um Token de Acesso de Projeto do GitLab para este projeto. Conceda acesso de Maintainer ou ative os Tokens de Acesso de Projeto e reative o Code Reviewer.", + "recoveryLabel": "Atualizar integração do GitLab" + }, + "byokInvalidKey": { + "title": "O Code Reviewer precisa de atenção", + "description": "O Code Reviewer foi desativado porque a chave de API BYOK selecionada é inválida, revogada ou sem permissão. Atualize a chave ou escolha outro modelo e reative o Code Reviewer.", + "recoveryLabel": "Atualizar configurações do BYOK" + }, + "selectedModelUnavailable": { + "title": "O Code Reviewer precisa de atenção", + "description": "O Code Reviewer foi desativado porque o modelo selecionado não está disponível para sessões de agente na nuvem. Escolha um modelo disponível e reative o Code Reviewer.", + "recoveryLabel": "Atualizar configurações do Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "O Code Reviewer precisa de atenção", + "description": "O Code Reviewer foi desativado após três tempos esgotados de clonagem de repositório hoje. Fale com hi@kilocode.ai para obter ajuda e reative o Code Reviewer.", + "recoveryLabel": "Falar com o suporte" + } + }, + "unknownError": "Erro desconhecido" }, "securityAgent": { "filter": { @@ -1480,6 +1538,23 @@ "belowThreshold": "A descoberta está abaixo do limite de gravidade automático. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", "beforeEnablement": "A análise foi concluída antes da ativação da remediação automática. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", "generic": "A remediação está indisponível para esta descoberta." + }, + "commandFailure": { + "ownerCapReached": "A capacidade de análise está cheia. Aguarde uma análise ativa terminar e tente novamente.", + "githubTokenUnavailable": "A autorização do GitHub precisa de atenção. Reautorize o GitHub App e tente novamente.", + "githubAuthInvalid": "A autorização do GitHub precisa de atenção. Reautorize o GitHub App e tente novamente.", + "findingUnavailable": "A descoberta não está mais disponível. Atualize as descobertas e tente novamente se ela continuar aberta.", + "repositoryUnavailable": "O repositório não está mais disponível para o GitHub App. Atualize o acesso ao repositório e tente novamente.", + "invalidDismissTarget": "A descoberta não pode ser dispensada porque o alvo do Dependabot dela é inválido.", + "commandStalled": "A ação na fila não terminou a tempo. Tente a ação novamente.", + "queueRetriesExhausted": "A ação não pôde ser concluída após várias tentativas. Tente a ação novamente.", + "queueAdmissionFailed": "A ação na fila não pôde ser aceita. Tente a ação novamente.", + "generic": "A ação na fila falhou. Tente a ação novamente." + }, + "analysisMode": { + "auto": "Automático", + "shallow": "Rasa", + "deep": "Profunda" } }, "agents": { @@ -1949,7 +2024,8 @@ "addToFavorites": "Adicionar {{name}} aos favoritos", "removeFromFavorites": "Remover {{name}} dos favoritos", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Méd" + "thinkingEffortMedium": "Méd", + "sessionModel": "Modelo da sessão" }, "attachmentPreview": { "openFailedRetry": "Falha ao abrir o arquivo. Tente novamente.", @@ -2096,7 +2172,8 @@ }, "addCredits": { "cta": "Adicionar créditos", - "description": "Adicione créditos para manter o uso em funcionamento." + "description": "Adicione créditos para manter o uso em funcionamento.", + "billingPage": "página de cobrança" }, "deviceSessions": { "couldNotLoad": "Não foi possível carregar as sessões", @@ -2284,7 +2361,10 @@ "restoreFailed": "Falha ao restaurar as compras. Tente novamente.", "purchaseFailed": "Falha ao concluir a compra.", "purchaseStartFailed": "Falha ao iniciar a compra na App Store.", - "purchaseOwnedByAnotherAccount": "O Kilo Pass desta Conta Apple pertence a uma conta Kilo diferente." + "purchaseOwnedByAnotherAccount": "O Kilo Pass desta Conta Apple pertence a uma conta Kilo diferente.", + "couldNotConnectToAppStore": "Não foi possível conectar à App Store. Verifique sua conexão e tente novamente.", + "noMatchingProducts": "A App Store não retornou produtos Kilo Pass correspondentes.", + "purchaseMissingSignedTransaction": "A compra na App Store não incluiu uma transação assinada JWS." }, "consent": { "kilo": "Kilo", @@ -2799,7 +2879,10 @@ "diff": { "selectedTapToChange": "{{label}} selecionado, toque para alterar a seleção", "tapToComment": "{{label}}, toque para comentar", - "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} arquivos alterados — limite da API do GitHub" + "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} arquivos alterados — limite da API do GitHub", + "statusAdded": "Adicionado", + "statusContext": "Contexto", + "statusDeleted": "Excluído" }, "linkPasteClipboardEmpty": "A área de transferência está vazia", "linkPasteNotAPullRequest": "Não é um link de pull request do GitHub", @@ -2813,6 +2896,11 @@ "reviewNotSubmitted": "Esta revisão não pode ser enviada como está. O PR pode ter mudado, ou você não pode revisar seu próprio pull request.", "couldNotPostComment": "Não foi possível publicar o comentário.", "couldNotSubmitReview": "Não foi possível enviar a revisão. Verifique sua conexão e tente novamente." + }, + "operation": { + "couldNotReply": "Não foi possível responder.", + "couldNotCompleteAction": "Não foi possível concluir esta ação.", + "mergeResultDefaultError": "O GitHub não concluiu o merge." } }, "organization": { @@ -2830,7 +2918,17 @@ "emptyTitle": "Nenhuma atividade de crédito", "expires": "Expira em {{date}}", "title": "Atividade de crédito", - "transactionFallback": "Transação de crédito" + "transactionFallback": "Transação de crédito", + "category": { + "organization_custom": "Personalizado da organização", + "parent_to_child_transfer_in": "Transferência de pai para filho (entrada)", + "parent_to_child_transfer_out": "Transferência de pai para filho (saída)", + "oss-sponsorship": "Patrocínio OSS", + "oss-monthly-reset": "Reinício mensal OSS", + "team-topup-bonus-2025": "Bônus de recarga da equipe 2025", + "accounting_adjustment": "Ajuste contábil", + "credits_expired": "Créditos expirados" + } }, "hub": { "balance": "Saldo", @@ -2857,11 +2955,16 @@ "emptyTitle": "Nenhuma fatura", "invoiceFallback": "Fatura", "title": "Faturas", - "statusPaid": "Pago", - "statusOpen": "Em aberto", - "statusVoid": "Cancelada", "downloadFailed": "Não foi possível baixar a fatura. Verifique sua conexão e tente novamente.", - "sharingUnavailable": "O compartilhamento não está disponível neste dispositivo." + "sharingUnavailable": "O compartilhamento não está disponível neste dispositivo.", + "status": { + "paid": "Pago", + "open": "Em aberto", + "void": "Cancelada", + "draft": "Rascunho", + "uncollectible": "Incobrável", + "unknown": "Desconhecido" + } }, "lowBalanceAlert": { "emailPlaceholder": "nome@empresa.com", @@ -2962,7 +3065,8 @@ "promptTitle": "O que você está achando do app Kilo?", "rateKilo": "Avaliar o Kilo", "sorryMessage": "Conte para nós o que precisa melhorar. O engenheiro responsável pelo app lê cada relatório!", - "sorryTitle": "Lamentamos saber disso!" + "sorryTitle": "Lamentamos saber disso!", + "emailSubject": "feedback do aplicativo móvel" }, "authErrors": { "emailAlreadyUsed": "Já existe uma conta com este e-mail usando um método de entrada diferente. Tente outro método ou use '$t(login.moreSignInOptions)'.", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Dados coletados", "free": "Grátis", - "couldNotUpdateFavorites": "Não foi possível atualizar os favoritos" + "couldNotUpdateFavorites": "Não foi possível atualizar os favoritos", + "thinkingEffort": { + "none": "Nenhum", + "minimal": "Mínimo", + "low": "Baixo", + "medium": "Médio", + "high": "Alto", + "xhigh": "Muito alto", + "max": "Máximo" + } } } diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index 03f4edb66f..88719f1492 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -580,7 +580,10 @@ "diff": { "selectedTapToChange": "{{label}} selecionado, toque para mudar a seleção", "tapToComment": "{{label}}, toque para comentar", - "truncationBanner": "A mostrar os primeiros {{limit}} de {{total}} ficheiros alterados — limite da API do GitHub" + "truncationBanner": "A mostrar os primeiros {{limit}} de {{total}} ficheiros alterados — limite da API do GitHub", + "statusAdded": "Adicionado", + "statusContext": "Contexto", + "statusDeleted": "Eliminado" }, "linkPasteClipboardEmpty": "A área de transferência está vazia", "linkPasteNotAPullRequest": "Não é uma ligação de pull request do GitHub", @@ -594,6 +597,11 @@ "reviewNotSubmitted": "Esta revisão não pode ser submetida como está. O PR pode ter mudado, ou não pode rever o seu próprio pull request.", "couldNotPostComment": "Não foi possível publicar o comentário.", "couldNotSubmitReview": "Não foi possível submeter a revisão. Verifique a sua ligação e tente novamente." + }, + "operation": { + "couldNotReply": "Não foi possível responder.", + "couldNotCompleteAction": "Não foi possível concluir esta ação.", + "mergeResultDefaultError": "O GitHub não concluiu a fusão." } }, "notifications": { @@ -829,7 +837,11 @@ "paymentPastDue": "Pagamento em atraso. Atualize o seu método de pagamento.", "subscriptionCancels": "A subscrição é cancelada em {{date}}", "trialDaysRemaining": "Teste: faltam {{remaining}}", - "trialEndingSoon": "Teste a terminar em breve: {{remaining}}" + "trialEndingSoon": "Teste a terminar em breve: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Novidades", @@ -1198,7 +1210,8 @@ "strongArm": "Braço forte", "talisman": "Talismã" }, - "remoteSpawnFilesNotSupported": "Esta instância não pode receber ficheiros." + "remoteSpawnFilesNotSupported": "Esta instância não pode receber ficheiros.", + "instanceSwitcherTitle": "Instância KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1396,7 +1409,60 @@ "failed": "Falhou", "cancelled": "Cancelada", "interrupted": "Interrompida" - } + }, + "reviewStyle": { + "strict": "Rigoroso", + "balanced": "Equilibrado", + "lenient": "Tolerante", + "roast": "Roast" + }, + "focusArea": { + "security": "Segurança", + "performance": "Desempenho", + "bugs": "Erros", + "style": "Estilo", + "testing": "Testes", + "documentation": "Documentação" + }, + "gateThreshold": { + "off": "Desativado", + "all": "Todos", + "warning": "Avisos", + "critical": "Crítico" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "O Revisor de Código precisa de atenção", + "description": "O Revisor de Código foi desativado porque o Kilo não consegue aceder a este repositório com uma instalação ativa da GitHub App. Atualize a instalação da GitHub App e volte a ativar o Revisor de Código.", + "recoveryLabel": "Atualizar GitHub App" + }, + "githubIpAllowList": { + "title": "O Revisor de Código precisa de atenção", + "description": "O Revisor de Código foi desativado porque esta organização do GitHub usa uma lista de permissão de IP que bloqueia o Kilo. Contacte hi@kilocode.ai para obter ajuda e volte a ativar o Revisor de Código.", + "recoveryLabel": "Contactar o suporte" + }, + "gitlabProjectAccessRequired": { + "title": "O Revisor de Código precisa de atenção", + "description": "O Revisor de Código foi desativado porque o Kilo não consegue criar um Token de Acesso de Projeto do GitLab para este projeto. Conceda acesso de Maintainer ou ative os Tokens de Acesso de Projeto e volte a ativar o Revisor de Código.", + "recoveryLabel": "Atualizar integração do GitLab" + }, + "byokInvalidKey": { + "title": "O Revisor de Código precisa de atenção", + "description": "O Revisor de Código foi desativado porque a chave de API BYOK selecionada é inválida, revogada ou sem permissão. Atualize a chave ou escolha outro modelo e volte a ativar o Revisor de Código.", + "recoveryLabel": "Atualizar definições do BYOK" + }, + "selectedModelUnavailable": { + "title": "O Revisor de Código precisa de atenção", + "description": "O Revisor de Código foi desativado porque o modelo selecionado não está disponível para sessões de agente na nuvem. Escolha um modelo disponível e volte a ativar o Revisor de Código.", + "recoveryLabel": "Atualizar definições do Revisor de Código" + }, + "repeatedRepositoryCloneTimeout": { + "title": "O Revisor de Código precisa de atenção", + "description": "O Revisor de Código foi desativado depois de três tempos esgotados de clonagem de repositório hoje. Contacte hi@kilocode.ai para obter ajuda e volte a ativar o Revisor de Código.", + "recoveryLabel": "Contactar o suporte" + } + }, + "unknownError": "Erro desconhecido" }, "securityAgent": { "filter": { @@ -1940,6 +2006,23 @@ "belowThreshold": "A descoberta está abaixo do limiar de gravidade automático. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", "beforeEnablement": "A análise foi concluída antes de a remediação automática ser ativada. A remediação manual ainda pode ser iniciada quando as verificações de segurança passarem.", "generic": "A remediação está indisponível para esta descoberta." + }, + "commandFailure": { + "ownerCapReached": "A capacidade de análise está cheia. Aguarde que uma análise ativa termine e tente novamente.", + "githubTokenUnavailable": "A autorização do GitHub precisa de atenção. Reautorize a GitHub App e tente novamente.", + "githubAuthInvalid": "A autorização do GitHub precisa de atenção. Reautorize a GitHub App e tente novamente.", + "findingUnavailable": "A descoberta já não está disponível. Atualize as descobertas e tente novamente se continuar aberta.", + "repositoryUnavailable": "O repositório já não está disponível para a GitHub App. Atualize o acesso ao repositório e tente novamente.", + "invalidDismissTarget": "A descoberta não pode ser dispensada porque o alvo Dependabot dela é inválido.", + "commandStalled": "A ação na fila não terminou a tempo. Tente a ação novamente.", + "queueRetriesExhausted": "A ação não pôde ser concluída após várias tentativas. Tente a ação novamente.", + "queueAdmissionFailed": "A ação na fila não pôde ser aceite. Tente a ação novamente.", + "generic": "A ação na fila falhou. Tente a ação novamente." + }, + "analysisMode": { + "auto": "Automático", + "shallow": "Superficial", + "deep": "Profundo" } }, "agents": { @@ -2409,7 +2492,8 @@ "addToFavorites": "Adicionar {{name}} aos favoritos", "removeFromFavorites": "Remover {{name}} dos favoritos", "thinkingEffortXhigh": "XA", - "thinkingEffortMedium": "Méd" + "thinkingEffortMedium": "Méd", + "sessionModel": "Modelo da sessão" }, "attachmentPreview": { "openFailedRetry": "Falha ao abrir o ficheiro. Tente novamente.", @@ -2542,7 +2626,8 @@ }, "addCredits": { "cta": "Adicionar créditos", - "description": "Adicione créditos para manter o uso em funcionamento." + "description": "Adicione créditos para manter o uso em funcionamento.", + "billingPage": "página de faturação" }, "deviceSessions": { "couldNotLoad": "Não foi possível carregar as sessões", @@ -2730,7 +2815,10 @@ "restoreFailed": "Falha ao restaurar as compras. Tente novamente.", "purchaseFailed": "Falha ao concluir a compra.", "purchaseStartFailed": "Falha ao iniciar a compra na App Store.", - "purchaseOwnedByAnotherAccount": "O Kilo Pass desta Apple Account pertence a uma conta Kilo diferente." + "purchaseOwnedByAnotherAccount": "O Kilo Pass desta Apple Account pertence a uma conta Kilo diferente.", + "couldNotConnectToAppStore": "Não foi possível ligar à App Store. Verifique a sua ligação e tente novamente.", + "noMatchingProducts": "A App Store não devolveu produtos Kilo Pass correspondentes.", + "purchaseMissingSignedTransaction": "A compra na App Store não incluiu uma transação assinada JWS." }, "consent": { "kilo": "Kilo", @@ -2826,7 +2914,8 @@ "needsWork": "Precisa de melhorias", "sorryTitle": "Lamentamos ouvir isso!", "sorryMessage": "Por favor, diga-nos o que precisa de ser melhor. O engenheiro responsável pela aplicação lê todos os relatórios!", - "emailUs": "Enviar email" + "emailUs": "Enviar email", + "emailSubject": "feedback da aplicação móvel" }, "organization": { "boundary": { @@ -2843,7 +2932,17 @@ "emptyTitle": "Sem atividade de crédito", "expires": "Expira em {{date}}", "title": "Atividade de crédito", - "transactionFallback": "Transação de crédito" + "transactionFallback": "Transação de crédito", + "category": { + "organization_custom": "Personalizado da organização", + "parent_to_child_transfer_in": "Transferência de pai para filho (entrada)", + "parent_to_child_transfer_out": "Transferência de pai para filho (saída)", + "oss-sponsorship": "Patrocínio OSS", + "oss-monthly-reset": "Reinício mensal OSS", + "team-topup-bonus-2025": "Bónus de carregamento da equipa 2025", + "accounting_adjustment": "Ajuste contabilístico", + "credits_expired": "Créditos expirados" + } }, "inviteMember": { "emailError": "Introduza um endereço de email válido", @@ -2860,12 +2959,17 @@ "emptyDescription": "As faturas são geradas automaticamente em cada ciclo de faturação e aparecerão aqui assim que a sua organização for faturada.", "emptyTitle": "Sem faturas", "invoiceFallback": "Fatura", - "statusOpen": "Aberta", - "statusPaid": "Paga", - "statusVoid": "Anulada", "title": "Faturas", "downloadFailed": "Não foi possível transferir a fatura. Verifique a sua ligação e tente novamente.", - "sharingUnavailable": "A partilha não está disponível neste dispositivo." + "sharingUnavailable": "A partilha não está disponível neste dispositivo.", + "status": { + "paid": "Paga", + "open": "Aberta", + "void": "Anulada", + "draft": "Rascunho", + "uncollectible": "Incobrável", + "unknown": "Desconhecido" + } }, "lowBalanceAlert": { "emailPlaceholder": "nome@empresa.com", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Dados recolhidos", "free": "Gratuito", - "couldNotUpdateFavorites": "Não foi possível atualizar os favoritos" + "couldNotUpdateFavorites": "Não foi possível atualizar os favoritos", + "thinkingEffort": { + "none": "Nenhum", + "minimal": "Mínimo", + "low": "Baixo", + "medium": "Médio", + "high": "Alto", + "xhigh": "Muito alto", + "max": "Máximo" + } } } diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index 4bbc91d166..fb1fd9d8d3 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -580,7 +580,10 @@ "diff": { "selectedTapToChange": "Selectat {{label}}, atinge pentru a schimba selecția", "tapToComment": "{{label}}, atinge pentru a comenta", - "truncationBanner": "Se afișează primele {{limit}} din {{total}} fișiere modificate — limita API GitHub" + "truncationBanner": "Se afișează primele {{limit}} din {{total}} fișiere modificate — limita API GitHub", + "statusAdded": "Adăugat", + "statusContext": "Context", + "statusDeleted": "Șters" }, "linkPasteClipboardEmpty": "Clipboard-ul este gol", "linkPasteNotAPullRequest": "Nu este un link de pull request GitHub", @@ -594,6 +597,11 @@ "reviewNotSubmitted": "Această revizuire nu poate fi trimisă așa cum este. PR-ul s-ar putea să se fi schimbat, sau nu poți revizui propriul tău pull request.", "couldNotPostComment": "Nu s-a putut posta comentariul.", "couldNotSubmitReview": "Nu s-a putut trimite revizuirea. Verifică conexiunea și încearcă din nou." + }, + "operation": { + "couldNotReply": "Nu s-a putut răspunde.", + "couldNotCompleteAction": "Nu s-a putut finaliza această acțiune.", + "mergeResultDefaultError": "GitHub nu a finalizat fuzionarea." } }, "notifications": { @@ -829,7 +837,11 @@ "paymentPastDue": "Plată întârziată. Te rugăm să actualizezi metoda de plată.", "subscriptionCancels": "Abonamentul se anulează pe {{date}}", "trialDaysRemaining": "Perioadă de probă: {{remaining}} rămase", - "trialEndingSoon": "Perioada de probă se încheie curând: {{remaining}}" + "trialEndingSoon": "Perioada de probă se încheie curând: {{remaining}}", + "planName": { + "commit": "Angajare", + "standard": "Standard" + } }, "changelog": { "title": "Ce e nou", @@ -1198,7 +1210,8 @@ "strongArm": "Braț puternic", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Această instanță nu poate primi fișiere." + "remoteSpawnFilesNotSupported": "Această instanță nu poate primi fișiere.", + "instanceSwitcherTitle": "Instanță KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1396,7 +1409,60 @@ "failed": "Eșuat", "cancelled": "Anulat", "interrupted": "Întrerupt" - } + }, + "reviewStyle": { + "strict": "Strict", + "balanced": "Echilibrat", + "lenient": "Îngăduitor", + "roast": "Roast" + }, + "focusArea": { + "security": "Securitate", + "performance": "Performanță", + "bugs": "Bug-uri", + "style": "Stil", + "testing": "Testare", + "documentation": "Documentație" + }, + "gateThreshold": { + "off": "Dezactivat", + "all": "Toate", + "warning": "Avertisment", + "critical": "Critic" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer are nevoie de atenție", + "description": "Code Reviewer a fost dezactivat deoarece Kilo nu poate accesa acest depozit cu o instalare activă a aplicației GitHub. Actualizează instalarea aplicației GitHub, apoi activează din nou Code Reviewer.", + "recoveryLabel": "Actualizează aplicația GitHub" + }, + "githubIpAllowList": { + "title": "Code Reviewer are nevoie de atenție", + "description": "Code Reviewer a fost dezactivat deoarece această organizație GitHub folosește o listă de IP-uri permise care blochează Kilo. Contactează hi@kilocode.ai pentru ajutor, apoi activează din nou Code Reviewer.", + "recoveryLabel": "Contactează asistența" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer are nevoie de atenție", + "description": "Code Reviewer a fost dezactivat deoarece Kilo nu poate crea un GitLab Project Access Token pentru acest proiect. Acordă acces de Maintainer sau activează Project Access Tokens, apoi activează din nou Code Reviewer.", + "recoveryLabel": "Actualizează integrarea GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer are nevoie de atenție", + "description": "Code Reviewer a fost dezactivat deoarece cheia API BYOK selectată este invalidă, revocată sau nu are permisiune. Actualizează cheia sau alege alt model, apoi activează din nou Code Reviewer.", + "recoveryLabel": "Actualizează setările BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer are nevoie de atenție", + "description": "Code Reviewer a fost dezactivat deoarece modelul selectat nu este disponibil pentru sesiunile de cloud agent. Alege un model disponibil, apoi activează din nou Code Reviewer.", + "recoveryLabel": "Actualizează setările Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer are nevoie de atenție", + "description": "Code Reviewer a fost dezactivat după trei timeout-uri de clonare a depozitului astăzi. Contactează hi@kilocode.ai pentru ajutor, apoi activează din nou Code Reviewer.", + "recoveryLabel": "Contactează asistența" + } + }, + "unknownError": "Eroare necunoscută" }, "securityAgent": { "filter": { @@ -1940,6 +2006,23 @@ "belowThreshold": "Constatarea este sub pragul automat de severitate. Remedierea manuală poate începe totuși când verificările de siguranță trec.", "beforeEnablement": "Analiza s-a finalizat înainte ca auto-remedierea să fie activată. Remedierea manuală poate începe totuși când verificările de siguranță trec.", "generic": "Remedierea nu este disponibilă pentru această constatare." + }, + "commandFailure": { + "ownerCapReached": "Capacitatea de analiză este plină. Așteaptă finalizarea unei analize active, apoi reîncearcă.", + "githubTokenUnavailable": "Autorizarea GitHub necesită atenție. Autorizează din nou aplicația GitHub, apoi reîncearcă.", + "githubAuthInvalid": "Autorizarea GitHub necesită atenție. Autorizează din nou aplicația GitHub, apoi reîncearcă.", + "findingUnavailable": "Constatarea nu mai este disponibilă. Reîmprospătează constatările și reîncearcă dacă rămâne deschisă.", + "repositoryUnavailable": "Depozitul nu mai este disponibil pentru aplicația GitHub. Reîmprospătează accesul la depozit, apoi reîncearcă.", + "invalidDismissTarget": "Constatarea nu poate fi eliminată deoarece ținta sa Dependabot este invalidă.", + "commandStalled": "Acțiunea în coadă nu s-a finalizat la timp. Reîncearcă acțiunea.", + "queueRetriesExhausted": "Acțiunea nu a putut fi finalizată după mai multe încercări. Reîncearcă acțiunea.", + "queueAdmissionFailed": "Acțiunea în coadă nu a putut fi acceptată. Reîncearcă acțiunea.", + "generic": "Acțiunea în coadă a eșuat. Reîncearcă acțiunea." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Superficială", + "deep": "Profundă" } }, "agents": { @@ -2409,7 +2492,8 @@ "addToFavorites": "Adaugă {{name}} la favorite", "removeFromFavorites": "Elimină {{name}} din favorite", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Modelul sesiunii" }, "attachmentPreview": { "openFailedRetry": "Fișierul nu a putut fi deschis. Încearcă din nou.", @@ -2542,7 +2626,8 @@ }, "addCredits": { "cta": "Adaugă credite", - "description": "Adaugă credite pentru a menține utilizarea activă." + "description": "Adaugă credite pentru a menține utilizarea activă.", + "billingPage": "pagina de facturare" }, "deviceSessions": { "couldNotLoad": "Sesiunile nu au putut fi încărcate", @@ -2730,7 +2815,10 @@ "restoreFailed": "Restaurarea achizițiilor a eșuat. Încearcă din nou.", "purchaseFailed": "Finalizarea achiziției a eșuat.", "purchaseStartFailed": "Nu s-a putut începe achiziția din App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass de pe acest Apple Account aparține unui alt cont Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass de pe acest Apple Account aparține unui alt cont Kilo.", + "couldNotConnectToAppStore": "Nu s-a putut conecta la App Store. Verifică conexiunea și încearcă din nou.", + "noMatchingProducts": "App Store nu a returnat produse Kilo Pass corespunzătoare.", + "purchaseMissingSignedTransaction": "Achiziția din App Store nu a inclus o tranzacție semnată JWS." }, "consent": { "kilo": "Kilo", @@ -2826,7 +2914,8 @@ "needsWork": "Trebuie îmbunătățit", "sorryTitle": "Ne pare rău să auzim asta!", "sorryMessage": "Te rugăm să ne spui ce trebuie îmbunătățit. Inginerul responsabil de aplicație citește fiecare raport!", - "emailUs": "Trimite-ne un email" + "emailUs": "Trimite-ne un email", + "emailSubject": "feedback despre aplicația mobilă" }, "organization": { "boundary": { @@ -2843,7 +2932,17 @@ "emptyTitle": "Nicio activitate de credite", "expires": "Expiră {{date}}", "title": "Activitate de credite", - "transactionFallback": "Tranzacție de credite" + "transactionFallback": "Tranzacție de credite", + "category": { + "organization_custom": "Personalizat organizație", + "parent_to_child_transfer_in": "Transfer primit de la organizația părinte", + "parent_to_child_transfer_out": "Transfer trimis către organizația copil", + "oss-sponsorship": "Sponsorizare OSS", + "oss-monthly-reset": "Resetare lunară OSS", + "team-topup-bonus-2025": "Bonus pentru reîncărcarea echipei 2025", + "accounting_adjustment": "Ajustare contabilă", + "credits_expired": "Credite expirate" + } }, "inviteMember": { "emailError": "Introdu o adresă de email validă", @@ -2860,12 +2959,17 @@ "emptyDescription": "Facturile sunt generate automat la fiecare ciclu de facturare și vor apărea aici odată ce organizația ta este facturată.", "emptyTitle": "Nicio factură", "invoiceFallback": "Factură", - "statusOpen": "Deschisă", - "statusPaid": "Plătită", - "statusVoid": "Anulată", "title": "Facturi", "downloadFailed": "Factura nu a putut fi descărcată. Verifică conexiunea și încearcă din nou.", - "sharingUnavailable": "Distribuirea nu este disponibilă pe acest dispozitiv." + "sharingUnavailable": "Distribuirea nu este disponibilă pe acest dispozitiv.", + "status": { + "paid": "Plătită", + "open": "Deschisă", + "void": "Anulată", + "draft": "Ciornă", + "uncollectible": "Neîncasabilă", + "unknown": "Necunoscut" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Date colectate", "free": "Gratuit", - "couldNotUpdateFavorites": "Nu s-au putut actualiza favoritele" + "couldNotUpdateFavorites": "Nu s-au putut actualiza favoritele", + "thinkingEffort": { + "none": "Niciunul", + "minimal": "Minimal", + "low": "Scăzut", + "medium": "Mediu", + "high": "Ridicat", + "xhigh": "Extra ridicat", + "max": "Maxim" + } } } diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 9710911482..4abad10386 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -384,7 +384,11 @@ "paymentPastDue": "Платеж просрочен. Обновите способ оплаты.", "subscriptionCancels": "Подписка отменяется {{date}}", "trialDaysRemaining": "Пробный период: осталось {{remaining}}", - "trialEndingSoon": "Пробный период скоро закончится: {{remaining}}" + "trialEndingSoon": "Пробный период скоро закончится: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Что нового", @@ -754,7 +758,8 @@ "strongArm": "Сильная рука", "talisman": "Талисман" }, - "remoteSpawnFilesNotSupported": "Этот экземпляр не может принимать файлы." + "remoteSpawnFilesNotSupported": "Этот экземпляр не может принимать файлы.", + "instanceSwitcherTitle": "Экземпляр KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -952,7 +957,60 @@ "failed": "Не удалось", "cancelled": "Отменено", "interrupted": "Прервано" - } + }, + "reviewStyle": { + "strict": "Строгий", + "balanced": "Сбалансированный", + "lenient": "Мягкий", + "roast": "Roast" + }, + "focusArea": { + "security": "Безопасность", + "performance": "Производительность", + "bugs": "Ошибки", + "style": "Стиль", + "testing": "Тестирование", + "documentation": "Документация" + }, + "gateThreshold": { + "off": "Выкл.", + "all": "Все", + "warning": "Предупреждения", + "critical": "Критические" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer требует внимания", + "description": "Code Reviewer был отключен, потому что Kilo не может получить доступ к этому репозиторию с активной установкой приложения GitHub. Обновите установку приложения GitHub, затем снова включите Code Reviewer.", + "recoveryLabel": "Обновить приложение GitHub" + }, + "githubIpAllowList": { + "title": "Code Reviewer требует внимания", + "description": "Code Reviewer был отключен, потому что эта организация GitHub использует список разрешенных IP-адресов, который блокирует Kilo. Обратитесь за помощью на hi@kilocode.ai, затем снова включите Code Reviewer.", + "recoveryLabel": "Связаться с поддержкой" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer требует внимания", + "description": "Code Reviewer был отключен, потому что Kilo не может создать токен доступа к проекту GitLab для этого проекта. Предоставьте доступ уровня Maintainer или включите токены доступа к проектам, затем снова включите Code Reviewer.", + "recoveryLabel": "Обновить интеграцию GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer требует внимания", + "description": "Code Reviewer был отключен, потому что выбранный ключ API BYOK недействителен, отозван или не имеет разрешений. Обновите ключ или выберите другую модель, затем снова включите Code Reviewer.", + "recoveryLabel": "Обновить настройки BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer требует внимания", + "description": "Code Reviewer был отключен, потому что выбранная модель недоступна для облачных сеансов агента. Выберите доступную модель, затем снова включите Code Reviewer.", + "recoveryLabel": "Обновить настройки Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer требует внимания", + "description": "Code Reviewer был отключен после трех сегодняшних превышений времени ожидания клонирования репозитория. Обратитесь за помощью на hi@kilocode.ai, затем снова включите Code Reviewer.", + "recoveryLabel": "Связаться с поддержкой" + } + }, + "unknownError": "Неизвестная ошибка" }, "securityAgent": { "filter": { @@ -1500,6 +1558,23 @@ "belowThreshold": "Находка ниже автоматического порога критичности. Ручное исправление всё ещё может начаться, когда проверки безопасности пройдены.", "beforeEnablement": "Анализ завершен до включения автоисправления. Ручное исправление всё ещё может начаться, когда проверки безопасности пройдены.", "generic": "Исправление недоступно для этой находки." + }, + "commandFailure": { + "ownerCapReached": "Лимит анализа исчерпан. Дождитесь завершения активного анализа, затем повторите попытку.", + "githubTokenUnavailable": "Авторизация GitHub требует внимания. Повторно авторизуйте приложение GitHub, затем повторите попытку.", + "githubAuthInvalid": "Авторизация GitHub требует внимания. Повторно авторизуйте приложение GitHub, затем повторите попытку.", + "findingUnavailable": "Находка больше недоступна. Обновите список находок и повторите, если она останется открытой.", + "repositoryUnavailable": "Репозиторий больше недоступен для приложения GitHub. Обновите доступ к репозиторию, затем повторите попытку.", + "invalidDismissTarget": "Находку нельзя отклонить, потому что её цель Dependabot недействительна.", + "commandStalled": "Поставленное в очередь действие не завершилось вовремя. Повторите действие.", + "queueRetriesExhausted": "Действие не удалось выполнить после нескольких попыток. Повторите действие.", + "queueAdmissionFailed": "Поставленное в очередь действие не удалось принять. Повторите действие.", + "generic": "Поставленное в очередь действие не удалось. Повторите действие." + }, + "analysisMode": { + "auto": "Авто", + "shallow": "Поверхностная", + "deep": "Глубокая" } }, "agents": { @@ -1975,7 +2050,8 @@ "addToFavorites": "Добавить {{name}} в избранное", "removeFromFavorites": "Убрать {{name}} из избранного", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Модель сеанса" }, "attachmentPreview": { "openFailedRetry": "Не удалось открыть файл. Попробуйте снова.", @@ -2109,7 +2185,8 @@ }, "addCredits": { "cta": "Добавить кредиты", - "description": "Добавьте кредиты, чтобы продолжить использование." + "description": "Добавьте кредиты, чтобы продолжить использование.", + "billingPage": "страница оплаты" }, "deviceSessions": { "couldNotLoad": "Не удалось загрузить сеансы", @@ -2297,7 +2374,10 @@ "restoreFailed": "Не удалось восстановить покупки. Попробуйте снова.", "purchaseFailed": "Не удалось завершить покупку.", "purchaseStartFailed": "Не удалось начать покупку в App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass на этом Apple Account принадлежит другому аккаунту Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass на этом Apple Account принадлежит другому аккаунту Kilo.", + "couldNotConnectToAppStore": "Не удалось подключиться к App Store. Проверьте подключение и попробуйте снова.", + "noMatchingProducts": "App Store не вернул подходящих продуктов Kilo Pass.", + "purchaseMissingSignedTransaction": "Покупка в App Store не включала подписанную транзакцию JWS." }, "consent": { "kilo": "Kilo", @@ -2819,7 +2899,10 @@ "diff": { "selectedTapToChange": "Выбрано {{label}}, нажмите, чтобы изменить выбор", "tapToComment": "{{label}}, нажмите, чтобы оставить комментарий", - "truncationBanner": "Показаны первые {{limit}} из {{total}} изменённых файлов — лимит API GitHub" + "truncationBanner": "Показаны первые {{limit}} из {{total}} изменённых файлов — лимит API GitHub", + "statusAdded": "Добавлено", + "statusContext": "Контекст", + "statusDeleted": "Удалено" }, "linkPasteClipboardEmpty": "Буфер обмена пуст", "linkPasteNotAPullRequest": "Это не ссылка на pull request GitHub", @@ -2833,6 +2916,11 @@ "reviewNotSubmitted": "Эту проверку нельзя отправить в текущем виде. PR мог измениться, или вы не можете проверять собственный pull request.", "couldNotPostComment": "Не удалось отправить комментарий.", "couldNotSubmitReview": "Не удалось отправить проверку. Проверьте подключение и попробуйте снова." + }, + "operation": { + "couldNotReply": "Не удалось ответить.", + "couldNotCompleteAction": "Не удалось выполнить это действие.", + "mergeResultDefaultError": "GitHub не завершил слияние." } }, "organization": { @@ -2850,7 +2938,17 @@ "emptyTitle": "Нет операций с кредитами", "expires": "Истекает {{date}}", "title": "Операции с кредитами", - "transactionFallback": "Кредитная операция" + "transactionFallback": "Кредитная операция", + "category": { + "organization_custom": "Индивидуальная настройка организации", + "parent_to_child_transfer_in": "Входящий перевод от родительской организации", + "parent_to_child_transfer_out": "Исходящий перевод в дочернюю организацию", + "oss-sponsorship": "OSS-спонсорство", + "oss-monthly-reset": "OSS-ежемесячный сброс", + "team-topup-bonus-2025": "Бонус за пополнение баланса команды 2025", + "accounting_adjustment": "Бухгалтерская корректировка", + "credits_expired": "Кредиты истекли" + } }, "hub": { "balance": "Баланс", @@ -2877,11 +2975,16 @@ "emptyTitle": "Нет счетов", "invoiceFallback": "Счет", "title": "Счета", - "statusPaid": "Оплачено", - "statusOpen": "Открыт", - "statusVoid": "Аннулирован", "downloadFailed": "Не удалось скачать счёт. Проверьте подключение и попробуйте снова.", - "sharingUnavailable": "Поделиться на этом устройстве нельзя." + "sharingUnavailable": "Поделиться на этом устройстве нельзя.", + "status": { + "paid": "Оплачено", + "open": "Открыт", + "void": "Аннулирован", + "draft": "Черновик", + "uncollectible": "Не подлежит взысканию", + "unknown": "Неизвестно" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2983,7 +3086,8 @@ "promptTitle": "Как вам приложение Kilo?", "rateKilo": "Оценить Kilo", "sorryMessage": "Пожалуйста, расскажите, что можно улучшить. Инженер, отвечающий за приложение, читает каждый отчет!", - "sorryTitle": "Нам жаль это слышать!" + "sorryTitle": "Нам жаль это слышать!", + "emailSubject": "отзыв о мобильном приложении" }, "authErrors": { "emailAlreadyUsed": "Аккаунт с этим email уже существует с другим способом входа. Попробуйте другой способ или используйте «$t(login.moreSignInOptions)».", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Собранные данные", "free": "Бесплатно", - "couldNotUpdateFavorites": "Не удалось обновить избранное" + "couldNotUpdateFavorites": "Не удалось обновить избранное", + "thinkingEffort": { + "none": "Нет", + "minimal": "Минимальный", + "low": "Низкий", + "medium": "Средний", + "high": "Высокий", + "xhigh": "Очень высокий", + "max": "Максимальный" + } } } diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index 7ac41842ab..5a1c36bf83 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} තේරී ඇත, තේරීම වෙනස් කිරීමට තට්ටු කරන්න", "tapToComment": "{{label}}, අදහස් දැක්වීමට තට්ටු කරන්න", - "truncationBanner": "වෙනස් කළ ගොනු {{total}} අතරින් පළමු {{limit}} පෙන්වයි — GitHub API සීමාව" + "truncationBanner": "වෙනස් කළ ගොනු {{total}} අතරින් පළමු {{limit}} පෙන්වයි — GitHub API සීමාව", + "statusAdded": "එකතු කරන ලදී", + "statusContext": "සන්දර්භය", + "statusDeleted": "මකා දමන ලදී" }, "linkPasteClipboardEmpty": "පසුරු පුවරුව හිස් ය", "linkPasteNotAPullRequest": "GitHub pull request සබැඳියක් නොවේ", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "මෙම සමාලෝචනය මෙලෙසම ඉදිරිපත් කළ නොහැක. PR වෙනස් වී තිබිය හැක, නැතහොත් ඔබට ඔබේම pull request එක සමාලෝචනය කළ නොහැක.", "couldNotPostComment": "අදහස පළ කිරීමට නොහැකි විය.", "couldNotSubmitReview": "සමාලෝචනය ඉදිරිපත් කිරීමට නොහැකි විය. ඔබේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න." + }, + "operation": { + "couldNotReply": "පිළිතුරු දිය නොහැකි විය.", + "couldNotCompleteAction": "මෙම ක්‍රියාව සම්පූර්ණ කිරීමට නොහැකි විය.", + "mergeResultDefaultError": "GitHub ඒකාබද්ධ කිරීම සම්පූර්ණ කළේ නැත." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ගෙවීම කල් ඉකුත් විය. කරුණාකර ඔබේ ගෙවීම් ක්රමය යාවත්කාලීන කරන්න.", "subscriptionCancels": "දායකත්වය {{date}} දින අවලංගු වේ", "trialDaysRemaining": "අත්හදා බැලීම: {{remaining}} දින ඉතිරියි", - "trialEndingSoon": "අත්හදා බැලීම ඉක්මනින් අවසන් වේ: {{remaining}}" + "trialEndingSoon": "අත්හදා බැලීම ඉක්මනින් අවසන් වේ: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "අලුත් මොනවද", @@ -1189,7 +1201,8 @@ "strongArm": "Strong arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "මෙම අවස්ථාවට ගොනු ලබා ගත නොහැක." + "remoteSpawnFilesNotSupported": "මෙම අවස්ථාවට ගොනු ලබා ගත නොහැක.", + "instanceSwitcherTitle": "KiloClaw අවස්ථාව" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "අසමත් විය", "cancelled": "අවලංගු කර ඇත", "interrupted": "බාධා විය" - } + }, + "reviewStyle": { + "strict": "දැඩි", + "balanced": "සමබර", + "lenient": "නම්‍යශීලී", + "roast": "Roast" + }, + "focusArea": { + "security": "ආරක්ෂාව", + "performance": "කාර්ය සාධනය", + "bugs": "දෝෂ", + "style": "විලාසය", + "testing": "පරීක්ෂාව", + "documentation": "ලේඛන" + }, + "gateThreshold": { + "off": "ක්‍රියා විරහිතයි", + "all": "සියල්ල", + "warning": "අනතුරු ඇඟවීම", + "critical": "තීරණාත්මක" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer අවධානය අවශ්‍යයි", + "description": "Code Reviewer අක්‍රීය කර ඇත, මන්ද Kilo ට සක්‍රීය GitHub App ස්ථාපනයක් සමඟ මෙම ගබඩාවට ප්‍රවේශ විය නොහැක. GitHub App ස්ථාපනය යාවත්කාලීන කර, ඉන්පසු Code Reviewer නැවත සක්‍රීය කරන්න.", + "recoveryLabel": "GitHub App යාවත්කාලීන කරන්න" + }, + "githubIpAllowList": { + "title": "Code Reviewer අවධානය අවශ්‍යයි", + "description": "Code Reviewer අක්‍රීය කර ඇත, මන්ද මෙම GitHub සංවිධානය Kilo අවහිර කරන IP අවසර ලැයිස්තුවක් භාවිතා කරයි. උපකාර සඳහා hi@kilocode.ai අමතන්න, ඉන්පසු Code Reviewer නැවත සක්‍රීය කරන්න.", + "recoveryLabel": "සහාය අමතන්න" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer අවධානය අවශ්‍යයි", + "description": "Code Reviewer අක්‍රීය කර ඇත, මන්ද Kilo ට මෙම ව්‍යාපෘතිය සඳහා GitLab Project Access Token එකක් සෑදිය නොහැක. Maintainer ප්‍රවේශය ලබා දෙන්න හෝ Project Access Tokens සක්‍රීය කරන්න, ඉන්පසු Code Reviewer නැවත සක්‍රීය කරන්න.", + "recoveryLabel": "GitLab ඒකාබද්ධතාව යාවත්කාලීන කරන්න" + }, + "byokInvalidKey": { + "title": "Code Reviewer අවධානය අවශ්‍යයි", + "description": "Code Reviewer අක්‍රීය කර ඇත, මන්ද තෝරාගත් BYOK API යතුර අවලංගුය, ඉවත් කර ඇත, නැතහොත් අවසරයක් නොමැත. යතුර යාවත්කාලීන කරන්න හෝ වෙනත් මාදිලියක් තෝරන්න, ඉන්පසු Code Reviewer නැවත සක්‍රීය කරන්න.", + "recoveryLabel": "BYOK සැකසුම් යාවත්කාලීන කරන්න" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer අවධානය අවශ්‍යයි", + "description": "Code Reviewer අක්‍රීය කර ඇත, මන්ද තෝරාගත් මාදිලිය cloud agent සැසි සඳහා ලබා ගත නොහැක. පවතින මාදිලියක් තෝරන්න, ඉන්පසු Code Reviewer නැවත සක්‍රීය කරන්න.", + "recoveryLabel": "Code Reviewer සැකසුම් යාවත්කාලීන කරන්න" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer අවධානය අවශ්‍යයි", + "description": "අද දින ගබඩා ක්ලෝන කිරීමේ කාල අවසන් තුනකින් පසු Code Reviewer අක්‍රීය කර ඇත. උපකාර සඳහා hi@kilocode.ai අමතන්න, ඉන්පසු Code Reviewer නැවත සක්‍රීය කරන්න.", + "recoveryLabel": "සහාය අමතන්න" + } + }, + "unknownError": "නොදන්නා දෝෂයක්" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "සොයාගැනීම ස්වයංක්‍රීය බරපතලකම සීමාවට වඩා අඩුය. ආරක්ෂක ගේට්ටු සමත් වූ විට අතින් ප්‍රතිකර්මය තවමත් ආරම්භ කළ හැක.", "beforeEnablement": "ස්වයං ප්‍රතිකර්මය සක්‍රීය කිරීමට පෙර විශ්ලේෂණය සම්පූර්ණ විය. ආරක්ෂක ගේට්ටු සමත් වූ විට අතින් ප්‍රතිකර්මය තවමත් ආරම්භ කළ හැක.", "generic": "මෙම සොයාගැනීම සඳහා ප්‍රතිකර්මය ලබා ගත නොහැක." + }, + "commandFailure": { + "ownerCapReached": "විශ්ලේෂණ ධාරිතාව පිරී ඇත. සක්‍රීය විශ්ලේෂණයක් අවසන් වන තෙක් රැඳී සිට, ඉන්පසු නැවත උත්සාහ කරන්න.", + "githubTokenUnavailable": "GitHub අවසරය අවධානය අවශ්‍යයි. GitHub App නැවත අවසර දෙන්න, ඉන්පසු නැවත උත්සාහ කරන්න.", + "githubAuthInvalid": "GitHub අවසරය අවධානය අවශ්‍යයි. GitHub App නැවත අවසර දෙන්න, ඉන්පසු නැවත උත්සාහ කරන්න.", + "findingUnavailable": "සොයාගැනීම තවදුරටත් ලබා ගත නොහැක. සොයාගැනීම් නැවුම් කර එය විවෘතව පැවතුනහොත් නැවත උත්සාහ කරන්න.", + "repositoryUnavailable": "ගබඩාව තවදුරටත් GitHub App සඳහා ලබා ගත නොහැක. ගබඩා ප්‍රවේශය නැවුම් කර, ඉන්පසු නැවත උත්සාහ කරන්න.", + "invalidDismissTarget": "සොයාගැනීම ඉවතලිය නොහැක, මන්ද එහි Dependabot ඉලක්කය අවලංගුය.", + "commandStalled": "පෝලිම් කළ ක්‍රියාව නියමිත වේලාවට අවසන් නොවීය. ක්‍රියාව නැවත උත්සාහ කරන්න.", + "queueRetriesExhausted": "උත්සාහ කිහිපයකින් පසු ක්‍රියාව සම්පූර්ණ කිරීමට නොහැකි විය. ක්‍රියාව නැවත උත්සාහ කරන්න.", + "queueAdmissionFailed": "පෝලිම් කළ ක්‍රියාව පිළිගැනීමට නොහැකි විය. ක්‍රියාව නැවත උත්සාහ කරන්න.", + "generic": "පෝලිම් කළ ක්‍රියාව අසාර්ථක විය. ක්‍රියාව නැවත උත්සාහ කරන්න." + }, + "analysisMode": { + "auto": "ස්වයංක්‍රීය", + "shallow": "මතුපිටින්", + "deep": "ගැඹුරු" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "ප්‍රියතමයන්ට {{name}} එක් කරන්න", "removeFromFavorites": "ප්‍රියතමයන්ගෙන් {{name}} ඉවත් කරන්න", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "සැසියේ ආකෘතිය" }, "attachmentPreview": { "openFailedRetry": "ගොනුව විවෘත කිරීම අසාර්ථකයි. කරුණාකර නැවත උත්සාහ කරන්න.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "ණය එක් කරන්න", - "description": "භාවිතය ක්‍රියාත්මකව තබා ගැනීමට ණය එක් කරන්න." + "description": "භාවිතය ක්‍රියාත්මකව තබා ගැනීමට ණය එක් කරන්න.", + "billingPage": "බිල්පත් පිටුව" }, "deviceSessions": { "couldNotLoad": "සැසි පූරණය කළ නොහැකි විය", @@ -2710,7 +2795,10 @@ "restoreFailed": "මිලදී ගැනීම් ප්‍රතිස්ථාපනය කිරීමට අසමත් විය. නැවත උත්සාහ කරන්න.", "purchaseFailed": "මිලදී ගැනීම සම්පූර්ණ කිරීමට අසමත් විය.", "purchaseStartFailed": "App Store මිලදී ගැනීම ආරම්භ කිරීමට අසමත් විය.", - "purchaseOwnedByAnotherAccount": "මෙම Apple ගිණුමේ Kilo Pass වෙනත් Kilo ගිණුමකට අයත් වේ." + "purchaseOwnedByAnotherAccount": "මෙම Apple ගිණුමේ Kilo Pass වෙනත් Kilo ගිණුමකට අයත් වේ.", + "couldNotConnectToAppStore": "App Store වෙත සම්බන්ධ වීමට නොහැකි විය. ඔබේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න.", + "noMatchingProducts": "App Store විසින් ගැළපෙන Kilo Pass නිෂ්පාදන ලබා දුන්නේ නැත.", + "purchaseMissingSignedTransaction": "App Store මිලදී ගැනීමේදී අත්සන් කළ JWS ගනුදෙනුවක් ඇතුළත් නොවීය." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "වැඩිදියුණු කිරීම අවශ්‍යයි", "sorryTitle": "එය ඇසීමට අපට කණගාටුයි!", "sorryMessage": "වැඩිදියුණු කළ යුතු දේ අපට දන්වන්න. යෙදුමේ වගකිව යුතු ඉංජිනේරුවා සෑම වාර්තාවක්ම කියවයි!", - "emailUs": "අපට ඊමේල් කරන්න" + "emailUs": "අපට ඊමේල් කරන්න", + "emailSubject": "ජංගම යෙදුම් ප්‍රතිපෝෂණය" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "ණය ක්‍රියාකාරකම් නොමැත", "expires": "කල් ඉකුත් වන්නේ {{date}}", "title": "ණය ක්‍රියාකාරකම්", - "transactionFallback": "ණය ගනුදෙනුව" + "transactionFallback": "ණය ගනුදෙනුව", + "category": { + "organization_custom": "සංවිධාන අභිරුචි", + "parent_to_child_transfer_in": "මාපිය සංවිධානයෙන් ලැබුණු මාරුව", + "parent_to_child_transfer_out": "දරු සංවිධානයට යවන ලද මාරුව", + "oss-sponsorship": "OSS අනුග්‍රහය", + "oss-monthly-reset": "OSS මාසික යළි සැකසීම", + "team-topup-bonus-2025": "2025 කණ්ඩායම් ඉහළ දැමීමේ ප්‍රසාදය", + "accounting_adjustment": "ගිණුම්කරණ ගැලපීම", + "credits_expired": "ණය කල් ඉකුත් විය" + } }, "inviteMember": { "emailError": "වලංගු ඊමේල් ලිපිනයක් ඇතුළු කරන්න", @@ -2840,12 +2939,17 @@ "emptyDescription": "ඉන්වොයිසි සෑම බිල්පත් චක්‍රයකම ස්වයංක්‍රීයව ජනනය වන අතර ඔබගේ සංවිධානයට බිල් කළ පසු මෙහි දිස්වනු ඇත.", "emptyTitle": "ඉන්වොයිසි නොමැත", "invoiceFallback": "ඉන්වොයිසිය", - "statusOpen": "විවෘත", - "statusPaid": "ගෙවූ", - "statusVoid": "අවලංගු", "title": "ඉන්වොයිසි", "downloadFailed": "ඉන්වොයිසිය බාගත කළ නොහැකි විය. ඔබේ සම්බන්ධතාවය පරීක්ෂා කර නැවත උත්සාහ කරන්න.", - "sharingUnavailable": "මෙම උපාංගයේ බෙදාගැනීම ලබා ගත නොහැක." + "sharingUnavailable": "මෙම උපාංගයේ බෙදාගැනීම ලබා ගත නොහැක.", + "status": { + "paid": "ගෙවූ", + "open": "විවෘත", + "void": "අවලංගු", + "draft": "කෙටුම්පත", + "uncollectible": "එකතු කළ නොහැකි", + "unknown": "නොදන්නා" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "එකතු කළ දත්ත", "free": "නොමිලේ", - "couldNotUpdateFavorites": "ප්‍රියතමයන් යාවත්කාලීන කිරීමට නොහැකි විය" + "couldNotUpdateFavorites": "ප්‍රියතමයන් යාවත්කාලීන කිරීමට නොහැකි විය", + "thinkingEffort": { + "none": "කිසිවක් නැත", + "minimal": "අවම", + "low": "අඩු", + "medium": "මධ්‍යම", + "high": "ඉහළ", + "xhigh": "ඉතා ඉහළ", + "max": "උපරිම" + } } } diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index 8410346a48..9201b4cd85 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -587,7 +587,10 @@ "diff": { "selectedTapToChange": "Vybrané {{label}}, klepnutím zmeníte výber", "tapToComment": "{{label}}, klepnutím komentujete", - "truncationBanner": "Zobrazuje sa prvých {{limit}} z {{total}} zmenených súborov — limit GitHub API" + "truncationBanner": "Zobrazuje sa prvých {{limit}} z {{total}} zmenených súborov — limit GitHub API", + "statusAdded": "Pridané", + "statusContext": "Kontext", + "statusDeleted": "Vymazané" }, "linkPasteClipboardEmpty": "Schránka je prázdna", "linkPasteNotAPullRequest": "Nie je to odkaz na GitHub pull request", @@ -601,6 +604,11 @@ "reviewNotSubmitted": "Túto kontrolu nemožno odoslať v tejto podobe. PR sa mohol zmeniť alebo nemôžete kontrolovať vlastný pull request.", "couldNotPostComment": "Komentár sa nepodarilo odoslať.", "couldNotSubmitReview": "Kontrolu sa nepodarilo odoslať. Skontrolujte pripojenie a skúste to znova." + }, + "operation": { + "couldNotReply": "Nepodarilo sa odpovedať.", + "couldNotCompleteAction": "Túto akciu sa nepodarilo dokončiť.", + "mergeResultDefaultError": "GitHub nedokončil zlúčenie." } }, "notifications": { @@ -837,7 +845,11 @@ "paymentPastDue": "Platba je po splatnosti. Aktualizujte svoj spôsob platby.", "subscriptionCancels": "Predplatné sa ruší {{date}}", "trialDaysRemaining": "Skúšobné obdobie: zostáva {{remaining}} dní", - "trialEndingSoon": "Skúšobné obdobie sa čoskoro končí: {{remaining}}" + "trialEndingSoon": "Skúšobné obdobie sa čoskoro končí: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Čo je nové", @@ -1207,7 +1219,8 @@ "strongArm": "Silné rameno", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Táto inštancia nemôže prijímať súbory." + "remoteSpawnFilesNotSupported": "Táto inštancia nemôže prijímať súbory.", + "instanceSwitcherTitle": "Inštancia KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1405,7 +1418,60 @@ "failed": "Zlyhalo", "cancelled": "Zrušené", "interrupted": "Prerušené" - } + }, + "reviewStyle": { + "strict": "Prísny", + "balanced": "Vyvážený", + "lenient": "Zhovievavý", + "roast": "Roast" + }, + "focusArea": { + "security": "Bezpečnosť", + "performance": "Výkon", + "bugs": "Chyby", + "style": "Štýl", + "testing": "Testovanie", + "documentation": "Dokumentácia" + }, + "gateThreshold": { + "off": "Vypnuté", + "all": "Všetko", + "warning": "Upozornenia", + "critical": "Kritické" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer vyžaduje pozornosť", + "description": "Code Reviewer bol zakázaný, pretože Kilo nemá prístup k tomuto repozitáru s aktívnou inštaláciou GitHub aplikácie. Aktualizujte inštaláciu GitHub aplikácie a potom znova povoľte Code Reviewer.", + "recoveryLabel": "Aktualizovať GitHub aplikáciu" + }, + "githubIpAllowList": { + "title": "Code Reviewer vyžaduje pozornosť", + "description": "Code Reviewer bol zakázaný, pretože táto GitHub organizácia používa zoznam povolených IP adries, ktorý blokuje Kilo. Požiadajte o pomoc na hi@kilocode.ai a potom znova povoľte Code Reviewer.", + "recoveryLabel": "Kontaktovať podporu" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer vyžaduje pozornosť", + "description": "Code Reviewer bol zakázaný, pretože Kilo nemôže vytvoriť token na prístup k projektu GitLab pre tento projekt. Udeľte prístup Maintainer alebo povoľte tokeny na prístup k projektom a potom znova povoľte Code Reviewer.", + "recoveryLabel": "Aktualizovať integráciu GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer vyžaduje pozornosť", + "description": "Code Reviewer bol zakázaný, pretože vybraný BYOK API kľúč je neplatný, odvolaný alebo nemá povolenia. Aktualizujte kľúč alebo vyberte iný model a potom znova povoľte Code Reviewer.", + "recoveryLabel": "Aktualizovať nastavenia BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer vyžaduje pozornosť", + "description": "Code Reviewer bol zakázaný, pretože vybraný model nie je dostupný pre relácie cloud agenta. Vyberte dostupný model a potom znova povoľte Code Reviewer.", + "recoveryLabel": "Aktualizovať nastavenia Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer vyžaduje pozornosť", + "description": "Code Reviewer bol zakázaný po troch dnešných prekročeniach časového limitu klonovania repozitára. Požiadajte o pomoc na hi@kilocode.ai a potom znova povoľte Code Reviewer.", + "recoveryLabel": "Kontaktovať podporu" + } + }, + "unknownError": "Neznáma chyba" }, "securityAgent": { "filter": { @@ -1953,6 +2019,23 @@ "belowThreshold": "Nález je pod prahom automatickej závažnosti. Manuálna náprava sa môže stále spustiť, keď prejdú bezpečnostné brány.", "beforeEnablement": "Analýza sa dokončila pred povolením Auto nápravy. Manuálna náprava sa môže stále spustiť, keď prejdú bezpečnostné brány.", "generic": "Náprava nie je pre tento nález dostupná." + }, + "commandFailure": { + "ownerCapReached": "Kapacita analýzy je plná. Počkajte, kým sa dokončí aktívna analýza, a potom to skúste znova.", + "githubTokenUnavailable": "Autorizácia GitHub vyžaduje pozornosť. Znova autorizujte GitHub aplikáciu a potom to skúste znova.", + "githubAuthInvalid": "Autorizácia GitHub vyžaduje pozornosť. Znova autorizujte GitHub aplikáciu a potom to skúste znova.", + "findingUnavailable": "Nález už nie je dostupný. Obnovte nálezy a ak zostane otvorený, skúste to znova.", + "repositoryUnavailable": "Repozitár už nie je dostupný pre GitHub aplikáciu. Obnovte prístup k repozitáru a potom to skúste znova.", + "invalidDismissTarget": "Nález nemožno zamietnuť, pretože jeho cieľ Dependabot je neplatný.", + "commandStalled": "Zaradená akcia sa nedokončila včas. Zopakujte akciu.", + "queueRetriesExhausted": "Akciu sa po niekoľkých pokusoch nepodarilo dokončiť. Zopakujte akciu.", + "queueAdmissionFailed": "Zaradenú akciu sa nepodarilo prijať. Zopakujte akciu.", + "generic": "Zaradená akcia zlyhala. Zopakujte akciu." + }, + "analysisMode": { + "auto": "Automaticky", + "shallow": "Plytká", + "deep": "Hlboká" } }, "agents": { @@ -2428,7 +2511,8 @@ "addToFavorites": "Pridať {{name}} do obľúbených", "removeFromFavorites": "Odstrániť {{name}} z obľúbených", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model sedenia" }, "attachmentPreview": { "openFailedRetry": "Súbor sa nepodarilo otvoriť. Skúste to znova.", @@ -2562,7 +2646,8 @@ }, "addCredits": { "cta": "Pridať kredity", - "description": "Pridajte kredity, aby využívanie pokračovalo." + "description": "Pridajte kredity, aby využívanie pokračovalo.", + "billingPage": "fakturačná stránka" }, "deviceSessions": { "couldNotLoad": "Relácie sa nepodarilo načítať", @@ -2750,7 +2835,10 @@ "restoreFailed": "Obnovenie nákupov zlyhalo. Skúste to znova.", "purchaseFailed": "Nákup sa nepodarilo dokončiť.", "purchaseStartFailed": "Nákup v App Store sa nepodarilo spustiť.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na tomto Apple Account patrí inému účtu Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass na tomto Apple Account patrí inému účtu Kilo.", + "couldNotConnectToAppStore": "Nepodarilo sa pripojiť k App Store. Skontrolujte pripojenie a skúste to znova.", + "noMatchingProducts": "App Store nevrátil žiadne zodpovedajúce produkty Kilo Pass.", + "purchaseMissingSignedTransaction": "Nákup v App Store neobsahoval podpísanú transakciu JWS." }, "consent": { "kilo": "Kilo", @@ -2846,7 +2934,8 @@ "needsWork": "Treba vylepšiť", "sorryTitle": "Mrzí nás, že to počujeme!", "sorryMessage": "Dajte nám prosím vedieť, čo treba zlepšiť. Inžinier zodpovedný za aplikáciu číta každé jednotlivé hlásenie!", - "emailUs": "Napíšte nám e-mail" + "emailUs": "Napíšte nám e-mail", + "emailSubject": "spätná väzba k mobilnej aplikácii" }, "organization": { "boundary": { @@ -2863,7 +2952,17 @@ "emptyTitle": "Žiadna aktivita kreditov", "expires": "Platnosť končí {{date}}", "title": "Aktivita kreditov", - "transactionFallback": "Kreditná transakcia" + "transactionFallback": "Kreditná transakcia", + "category": { + "organization_custom": "Vlastná organizácia", + "parent_to_child_transfer_in": "Prijatý prevod z materskej organizácie", + "parent_to_child_transfer_out": "Odoslaný prevod do dcérskej organizácie", + "oss-sponsorship": "Sponzorstvo OSS", + "oss-monthly-reset": "Mesačný reset OSS", + "team-topup-bonus-2025": "Tímový bonus za doplnenie kreditov 2025", + "accounting_adjustment": "Účtovná úprava", + "credits_expired": "Kredity vypršali" + } }, "inviteMember": { "emailError": "Zadajte platnú e-mailovú adresu", @@ -2880,12 +2979,17 @@ "emptyDescription": "Faktúry sa generujú automaticky každý fakturačný cyklus a objavia sa tu, keď bude vaša organizácia vyfakturovaná.", "emptyTitle": "Žiadne faktúry", "invoiceFallback": "Faktúra", - "statusOpen": "Otvorená", - "statusPaid": "Zaplatená", - "statusVoid": "Neplatná", "title": "Faktúry", "downloadFailed": "Faktúru sa nepodarilo stiahnuť. Skontrolujte pripojenie a skúste to znova.", - "sharingUnavailable": "Zdieľanie nie je na tomto zariadení dostupné." + "sharingUnavailable": "Zdieľanie nie je na tomto zariadení dostupné.", + "status": { + "paid": "Zaplatená", + "open": "Otvorená", + "void": "Neplatná", + "draft": "Koncept", + "uncollectible": "Nevymožiteľná", + "unknown": "Neznáme" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Zhromaždené údaje", "free": "Zadarmo", - "couldNotUpdateFavorites": "Obľúbené sa nepodarilo aktualizovať" + "couldNotUpdateFavorites": "Obľúbené sa nepodarilo aktualizovať", + "thinkingEffort": { + "none": "Žiadna", + "minimal": "Minimálna", + "low": "Nízka", + "medium": "Stredná", + "high": "Vysoká", + "xhigh": "Veľmi vysoká", + "max": "Maximálna" + } } } diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index 45e1006dd8..71500bf002 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -587,7 +587,10 @@ "diff": { "selectedTapToChange": "Izbrano {{label}}, tapnite za spremembo izbora", "tapToComment": "{{label}}, tapnite za komentar", - "truncationBanner": "Prikaz prvih {{limit}} od {{total}} spremenjenih datotek — omejitev API GitHub" + "truncationBanner": "Prikaz prvih {{limit}} od {{total}} spremenjenih datotek — omejitev API GitHub", + "statusAdded": "Dodano", + "statusContext": "Kontekst", + "statusDeleted": "Izbrisano" }, "linkPasteClipboardEmpty": "Odložišče je prazno", "linkPasteNotAPullRequest": "To ni povezava do pull requesta na GitHubu", @@ -601,6 +604,11 @@ "reviewNotSubmitted": "Tega pregleda ni mogoče oddati, kot je. PR se je morda spremenil ali pa svojega lastnega pull requesta ne morete pregledati.", "couldNotPostComment": "Komentarja ni bilo mogoče objaviti.", "couldNotSubmitReview": "Pregleda ni bilo mogoče oddati. Preverite povezavo in poskusite znova." + }, + "operation": { + "couldNotReply": "Odgovora ni bilo mogoče poslati.", + "couldNotCompleteAction": "Tega dejanja ni bilo mogoče dokončati.", + "mergeResultDefaultError": "GitHub ni dokončal združitve." } }, "notifications": { @@ -837,7 +845,11 @@ "paymentPastDue": "Plačilo je zapadlo. Posodobite svoj način plačila.", "subscriptionCancels": "Naročnina se prekliče {{date}}", "trialDaysRemaining": "Preizkus: preostalih {{remaining}} dni", - "trialEndingSoon": "Preizkus se kmalu konča: {{remaining}}" + "trialEndingSoon": "Preizkus se kmalu konča: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Kaj je novega", @@ -1207,7 +1219,8 @@ "strongArm": "Močna roka", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Ta primerek ne more prejemati datotek." + "remoteSpawnFilesNotSupported": "Ta primerek ne more prejemati datotek.", + "instanceSwitcherTitle": "Primerek KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1405,7 +1418,60 @@ "failed": "Ni uspelo", "cancelled": "Preklicano", "interrupted": "Prekinjeno" - } + }, + "reviewStyle": { + "strict": "Strogo", + "balanced": "Uravnoteženo", + "lenient": "Popustljivo", + "roast": "Roast" + }, + "focusArea": { + "security": "Varnost", + "performance": "Zmogljivost", + "bugs": "Hrošči", + "style": "Slog", + "testing": "Testiranje", + "documentation": "Dokumentacija" + }, + "gateThreshold": { + "off": "Izklopljeno", + "all": "Vse", + "warning": "Opozorilo", + "critical": "Kritično" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Pregledovalec kode potrebuje pozornost", + "description": "Pregledovalec kode je bil onemogočen, ker Kilo ne more dostopati do tega skladišča z aktivno namestitvijo aplikacije GitHub. Posodobi namestitev aplikacije GitHub in nato znova omogoči Pregledovalca kode.", + "recoveryLabel": "Posodobi aplikacijo GitHub" + }, + "githubIpAllowList": { + "title": "Pregledovalec kode potrebuje pozornost", + "description": "Pregledovalec kode je bil onemogočen, ker ta organizacija GitHub uporablja seznam dovoljenih naslovov IP, ki blokira Kilo. Za pomoč se obrni na hi@kilocode.ai in nato znova omogoči Pregledovalca kode.", + "recoveryLabel": "Obrni se na podporo" + }, + "gitlabProjectAccessRequired": { + "title": "Pregledovalec kode potrebuje pozornost", + "description": "Pregledovalec kode je bil onemogočen, ker Kilo za ta projekt ne more ustvariti žetona za dostop do projekta GitLab. Dodeli dostop vloge Maintainer ali omogoči žetone za dostop do projektov in nato znova omogoči Pregledovalca kode.", + "recoveryLabel": "Posodobi integracijo GitLab" + }, + "byokInvalidKey": { + "title": "Pregledovalec kode potrebuje pozornost", + "description": "Pregledovalec kode je bil onemogočen, ker je izbrani API ključ BYOK neveljaven, preklican ali nima ustreznih dovoljenj. Posodobi ključ ali izberi drug model in nato znova omogoči Pregledovalca kode.", + "recoveryLabel": "Posodobi nastavitve BYOK" + }, + "selectedModelUnavailable": { + "title": "Pregledovalec kode potrebuje pozornost", + "description": "Pregledovalec kode je bil onemogočen, ker izbrani model ni na voljo za seje Cloud Agent. Izberi razpoložljivi model in nato znova omogoči Pregledovalca kode.", + "recoveryLabel": "Posodobi nastavitve Pregledovalca kode" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Pregledovalec kode potrebuje pozornost", + "description": "Pregledovalec kode je bil onemogočen po treh prekinitvah kloniranja skladišč danes. Za pomoč se obrni na hi@kilocode.ai in nato znova omogoči Pregledovalca kode.", + "recoveryLabel": "Obrni se na podporo" + } + }, + "unknownError": "Neznana napaka" }, "securityAgent": { "filter": { @@ -1953,6 +2019,23 @@ "belowThreshold": "Najdba je pod pragom samodejne resnosti. Ročna sanacija se lahko še vedno začne, ko so varnostni pogoji izpolnjeni.", "beforeEnablement": "Analiza je bila dokončana, preden je bilo omogočeno samodejno odpravljanje. Ročna sanacija se lahko še vedno začne, ko so varnostni pogoji izpolnjeni.", "generic": "Sanacija za to najdbo ni na voljo." + }, + "commandFailure": { + "ownerCapReached": "Zmogljivost analize je polna. Počakaj, da se aktivna analiza konča, in nato poskusi znova.", + "githubTokenUnavailable": "Pooblastilo GitHub potrebuje pozornost. Znova pooblasti aplikacijo GitHub in nato poskusi znova.", + "githubAuthInvalid": "Pooblastilo GitHub potrebuje pozornost. Znova pooblasti aplikacijo GitHub in nato poskusi znova.", + "findingUnavailable": "Ugotovitev ni več na voljo. Osveži ugotovitve in poskusi znova, če ostane odprta.", + "repositoryUnavailable": "Skladišče ni več na voljo aplikaciji GitHub. Osveži dostop do skladišča in nato poskusi znova.", + "invalidDismissTarget": "Ugotovitve ni mogoče opustiti, ker je njena tarča Dependabot neveljavna.", + "commandStalled": "Čakalno dejanje ni bilo dokončano pravočasno. Poskusi dejanje znova.", + "queueRetriesExhausted": "Dejanja po več poskusih ni bilo mogoče dokončati. Poskusi dejanje znova.", + "queueAdmissionFailed": "Čakalnega dejanja ni bilo mogoče sprejeti. Poskusi dejanje znova.", + "generic": "Čakalno dejanje ni uspelo. Poskusi dejanje znova." + }, + "analysisMode": { + "auto": "Samodejno", + "shallow": "Površinsko", + "deep": "Poglobljeno" } }, "agents": { @@ -2428,7 +2511,8 @@ "addToFavorites": "Dodaj {{name}} med priljubljene", "removeFromFavorites": "Odstrani {{name}} iz priljubljenih", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model seje" }, "attachmentPreview": { "openFailedRetry": "Odpiranje datoteke ni uspelo. Poskusi znova.", @@ -2562,7 +2646,8 @@ }, "addCredits": { "cta": "Dodaj kredite", - "description": "Dodaj kredite, da bo poraba tekla naprej." + "description": "Dodaj kredite, da bo poraba tekla naprej.", + "billingPage": "stran za zaračunavanje" }, "deviceSessions": { "couldNotLoad": "Sej ni bilo mogoče naložiti", @@ -2750,7 +2835,10 @@ "restoreFailed": "Obnovitev nakupov ni uspela. Poskusite znova.", "purchaseFailed": "Nakupa ni bilo mogoče dokončati.", "purchaseStartFailed": "Nakupa v App Store ni bilo mogoče začeti.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na tem Apple računu pripada drugemu Kilo računu." + "purchaseOwnedByAnotherAccount": "Kilo Pass na tem Apple računu pripada drugemu Kilo računu.", + "couldNotConnectToAppStore": "Ni se bilo mogoče povezati z App Store. Preveri svojo povezavo in poskusi znova.", + "noMatchingProducts": "App Store ni vrnil ustreznih izdelkov Kilo Pass.", + "purchaseMissingSignedTransaction": "Nakup v App Store ni vključeval podpisanega zapisa transakcije JWS." }, "consent": { "kilo": "Kilo", @@ -2846,7 +2934,8 @@ "needsWork": "Potrebuje izboljšave", "sorryTitle": "Žal nam je, da si to slišali!", "sorryMessage": "Prosimo, povej nam, kaj je treba izboljšati. Inženir, odgovoren za aplikacijo, prebere vsako posamezno poročilo!", - "emailUs": "Piši nam" + "emailUs": "Piši nam", + "emailSubject": "povratne informacije o mobilni aplikaciji" }, "organization": { "boundary": { @@ -2863,7 +2952,17 @@ "emptyTitle": "Ni kreditne aktivnosti", "expires": "Poteče {{date}}", "title": "Kreditna aktivnost", - "transactionFallback": "Kreditna transakcija" + "transactionFallback": "Kreditna transakcija", + "category": { + "organization_custom": "Organizacija po meri", + "parent_to_child_transfer_in": "Vhodni prenos iz nadrejene v podrejeno organizacijo", + "parent_to_child_transfer_out": "Izhodni prenos iz nadrejene v podrejeno organizacijo", + "oss-sponsorship": "Sponzorstvo OSS", + "oss-monthly-reset": "Mesečna ponastavitev OSS", + "team-topup-bonus-2025": "Ekipni bonus za polnjenje 2025", + "accounting_adjustment": "Računovodska prilagoditev", + "credits_expired": "Potečeni krediti" + } }, "inviteMember": { "emailError": "Vnesi veljaven e-poštni naslov", @@ -2880,12 +2979,17 @@ "emptyDescription": "Računi se ustvarijo samodejno v vsakem obračunskem ciklu in bodo tukaj prikazani, ko bo organizacija obračunana.", "emptyTitle": "Ni računov", "invoiceFallback": "Račun", - "statusOpen": "Odprto", - "statusPaid": "Plačano", - "statusVoid": "Nično", "title": "Računi", "downloadFailed": "Računa ni bilo mogoče prenesti. Preverite povezavo in poskusite znova.", - "sharingUnavailable": "Deljenje na tej napravi ni na voljo." + "sharingUnavailable": "Deljenje na tej napravi ni na voljo.", + "status": { + "paid": "Plačano", + "open": "Odprto", + "void": "Nično", + "draft": "Osnutek", + "uncollectible": "Neizterljivo", + "unknown": "Neznano" + } }, "lowBalanceAlert": { "emailPlaceholder": "ime@podjetje.com", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Zbrani podatki", "free": "Brezplačno", - "couldNotUpdateFavorites": "Priljubljenih ni bilo mogoče posodobiti" + "couldNotUpdateFavorites": "Priljubljenih ni bilo mogoče posodobiti", + "thinkingEffort": { + "none": "Nič", + "minimal": "Minimalno", + "low": "Nizko", + "medium": "Srednje", + "high": "Visoko", + "xhigh": "Zelo visoko", + "max": "Največ" + } } } diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index 8becf4f59c..6d2e847c07 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Waa la doortay {{label}}, taabo si aad u beddesho xulista", "tapToComment": "{{label}}, taabo si aad faallo u dajiso", - "truncationBanner": "Waxaa la muujinayaa {{limit}}-ka ugu horreeya ee {{total}} fayl oo la beddelay — xadka API-ga GitHub" + "truncationBanner": "Waxaa la muujinayaa {{limit}}-ka ugu horreeya ee {{total}} fayl oo la beddelay — xadka API-ga GitHub", + "statusAdded": "Waa la daray", + "statusContext": "Xaalad", + "statusDeleted": "Waa la tirtiray" }, "linkPasteClipboardEmpty": "Qalabka koobigu waa madhan", "linkPasteNotAPullRequest": "Kuma aha xiriiriyaha codsiga jiidista GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Dib-u-eegistan lama gudbin karo sida ay tahay. PR-ka ayaa laga yaabaa inuu isbeddelo, ama ma dib u eegi kartid pull request-kaaga.", "couldNotPostComment": "Faallada lama dajin karin.", "couldNotSubmitReview": "Dib-u-eegista lama gudbin karin. Hubi xiriirkaaga oo mar kale isku day." + }, + "operation": { + "couldNotReply": "Lama jawaabi karin.", + "couldNotCompleteAction": "Falkan lama dhammayn karin.", + "mergeResultDefaultError": "GitHub kama dhammaystirin isku-darka." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Bixinta way gabi dhacday. Fadlan cusboonaysii habka bixinta.", "subscriptionCancels": "Rukunintu way joogsanaysaa {{date}}", "trialDaysRemaining": "Tijaabo: {{remaining}} maalmood ayaa harsan", - "trialEndingSoon": "Tijaabadu way dhammaanaysaa: {{remaining}}" + "trialEndingSoon": "Tijaabadu way dhammaanaysaa: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Waa Maxay Cusub", @@ -1189,7 +1201,8 @@ "strongArm": "Gacan adag", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Astaantani ma heli karto faylasha." + "remoteSpawnFilesNotSupported": "Astaantani ma heli karto faylasha.", + "instanceSwitcherTitle": "Instance-ka KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Way fashilantay", "cancelled": "Waa la joojiyay", "interrupted": "Waa la hakiyay" - } + }, + "reviewStyle": { + "strict": "Adag", + "balanced": "Dheellitiran", + "lenient": "Naxariis badan", + "roast": "Roast" + }, + "focusArea": { + "security": "Ammaanka", + "performance": "Waxqabadka", + "bugs": "Cilladaha", + "style": "Qaabka", + "testing": "Tijaabinta", + "documentation": "Dokumentasid" + }, + "gateThreshold": { + "off": "Daman", + "all": "Dhammaan", + "warning": "Digniin", + "critical": "Muhiim" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer wuxuu u baahan yahay feejignaan", + "description": "Code Reviewer waa la damiyay sababtoo ah Kilo ma heli karo kaydkan iyada oo la isticmaalayo rakibaad GitHub App oo firfircoon. Cusbooneysii rakibaadda GitHub App, ka dib mar kale daare Code Reviewer.", + "recoveryLabel": "Cusbooneysii GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer wuxuu u baahan yahay feejignaan", + "description": "Code Reviewer waa la damiyay sababtoo ah ururkan GitHub wuxuu isticmaalaa liis ogolaansho IP ah oo xannibaya Kilo. La xiriir hi@kilocode.ai si aad caawimaad u hesho, ka dib mar kale daare Code Reviewer.", + "recoveryLabel": "La xiriir taageerada" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer wuxuu u baahan yahay feejignaan", + "description": "Code Reviewer waa la damiyay sababtoo ah Kilo ma abuuri karo Token-ka Gelitaanka Mashruuca GitLab ee mashruucan. Sii ogolaanshaha Maintainer ama daare Token-yada Gelitaanka Mashruuca, ka dib mar kale daare Code Reviewer.", + "recoveryLabel": "Cusbooneysii isdhexgalka GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer wuxuu u baahan yahay feejignaan", + "description": "Code Reviewer waa la damiyay sababtoo ah furaha API-ga ee BYOK ee la doortay waa khalad, waa la laabay, ama ma laha ogolaansho. Cusbooneysii furaha ama dooro model kale, ka dib mar kale daare Code Reviewer.", + "recoveryLabel": "Cusbooneysii dejinta BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer wuxuu u baahan yahay feejignaan", + "description": "Code Reviewer waa la damiyay sababtoo ah model-ka la doortay ma heli karo kalfadhiyada Cloud Agent. Dooro model la heli karo, ka dib mar kale daare Code Reviewer.", + "recoveryLabel": "Cusbooneysii dejinta Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer wuxuu u baahan yahay feejignaan", + "description": "Code Reviewer waa la damiyay ka dib saddex waqti oo ka dhacay cloning-ka kaydka maanta. La xiriir hi@kilocode.ai si aad caawimaad u hesho, ka dib mar kale daare Code Reviewer.", + "recoveryLabel": "La xiriir taageerada" + } + }, + "unknownError": "Khalad aan la aqoon" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Natiijadu waxay ka hooseysaa heerka otomaatigga ah. Dayactirka gacanta wali wuxuu bilaabmi karaa markay marinnada badbaadada gudbaan.", "beforeEnablement": "Falanqaynta waxaa la dhammeeyay ka hor inta aan la shidin Dayactirka otomaatigga ah. Dayactirka gacanta wali wuxuu bilaabmi karaa markay marinnada badbaadada gudbaan.", "generic": "Dayactirka looma heli karo natiijadan." + }, + "commandFailure": { + "ownerCapReached": "Awoodda falanqaynta way buuxday. Sug falanqayn firfircoon inay dhammaato, ka dib mar kale isku day.", + "githubTokenUnavailable": "Ogolaanshaha GitHub wuxuu u baahan yahay feejignaan. Mar kale ogolow GitHub App, ka dib mar kale isku day.", + "githubAuthInvalid": "Ogolaanshaha GitHub wuxuu u baahan yahay feejignaan. Mar kale ogolow GitHub App, ka dib mar kale isku day.", + "findingUnavailable": "Natiijadu mar dambe ma heli karto. Cusbooneysii natiijooyinka oo mar kale isku day haddii ay weli furan tahay.", + "repositoryUnavailable": "Kaydku mar dambe ma heli karo GitHub App-ka. Cusbooneysii helitaanka kaydka, ka dib mar kale isku day.", + "invalidDismissTarget": "Natiijada lama tirtiri karo sababtoo ah bartilmaameedka Dependabot ee iyada waa khalad.", + "commandStalled": "Falka safka ku jira kuma dhammaanin waqtiga la ogol yahay. Mar kale isku day falka.", + "queueRetriesExhausted": "Falka lama dhamayn karin ka dib dhowr isku day. Mar kale isku day falka.", + "queueAdmissionFailed": "Falka safka ku jira lama aqbalin karin. Mar kale isku day falka.", + "generic": "Falka safka ku jira way fashilantay. Mar kale isku day falka." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Gacan-ku-dheg", + "deep": "Qoto dheer" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Ku dar {{name}} jecel-yada", "removeFromFavorites": "Ka saar {{name}} jecel-yada", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model-ka kalfadhiga" }, "attachmentPreview": { "openFailedRetry": "Faylka lama furi karin. Fadlan mar kale isku day.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Ku dar credits", - "description": "Ku dar credits si isticmaalku u sii socdo." + "description": "Ku dar credits si isticmaalku u sii socdo.", + "billingPage": "bogga billing-ka" }, "deviceSessions": { "couldNotLoad": "Kalfadhiyada lama soo dejin karin", @@ -2710,7 +2795,10 @@ "restoreFailed": "Soo celinta iibsashada way fashilantay. Mar kale isku day.", "purchaseFailed": "Iibsashada lama dhammayn karin.", "purchaseStartFailed": "Bilowga iibsashada App Store waa fashilmay.", - "purchaseOwnedByAnotherAccount": "Kilo Pass-ka ku yaal Xisaabtan Apple-ka ah waxaa leh koonto Kilo oo kale." + "purchaseOwnedByAnotherAccount": "Kilo Pass-ka ku yaal Xisaabtan Apple-ka ah waxaa leh koonto Kilo oo kale.", + "couldNotConnectToAppStore": "Lama xiri karin App Store-ka. Hubi xiriirkaaga oo mar kale isku day.", + "noMatchingProducts": "App Store-ka ma soo celin badeecado Kilo Pass oo u dhigma.", + "purchaseMissingSignedTransaction": "Iibsashada App Store-ka kuma jirin heshiis la saxiixay oo JWS ah." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Waa loo baahan yahay hagaajin", "sorryTitle": "Waxaan ka xunnahay inaad taan tiri!", "sorryMessage": "Fadlan noo sheeg waxa loo baahan yahay in la wanaajiyo. Injineerka mas'uulka ka ah app-ka ayaa akhriya warbixin kasta!", - "emailUs": "Noo e-mayl" + "emailUs": "Noo e-mayl", + "emailSubject": "jawaab-celinta app-ka mobilada" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ma jiro hawlo credit ah", "expires": "Wuxuu dhamaanayaa {{date}}", "title": "Hawlaha credits-ka", - "transactionFallback": "Tacsidka credits-ka" + "transactionFallback": "Tacsidka credits-ka", + "category": { + "organization_custom": "Urur gaar ah", + "parent_to_child_transfer_in": "Gudasho waalidka ilaa ilmaha (soo gelin)", + "parent_to_child_transfer_out": "Gudasho waalidka ilaa ilmaha (ka bixid)", + "oss-sponsorship": "Kafaalo OSS", + "oss-monthly-reset": "Dib-u-dejinta OSS ee bishii", + "team-topup-bonus-2025": "Bonuska kooxda ee dhaaminta 2025", + "accounting_adjustment": "Hagaajinta xisaabta", + "credits_expired": "Credits oo dhacay" + } }, "inviteMember": { "emailError": "Geli ciwaan email oo ansax ah", @@ -2840,12 +2939,17 @@ "emptyDescription": "Invoices waxaa si toos ah loo soo saaraa wareeg kasta oo biil ah oo halkan ka soo muuqan doonaa marka ururkaaga la biil-qaado.", "emptyTitle": "Ma jiro invoices", "invoiceFallback": "Invoice", - "statusOpen": "Furan", - "statusPaid": "La bixiyay", - "statusVoid": "Baadil", "title": "Invoices", "downloadFailed": "Invoice-ka lama soo dejin karin. Hubi xiriirkaaga oo mar kale isku day.", - "sharingUnavailable": "Wadaagista aaladdan laguma heli karo." + "sharingUnavailable": "Wadaagista aaladdan laguma heli karo.", + "status": { + "paid": "La bixiyay", + "open": "Furan", + "void": "Baadil", + "draft": "Qabyo", + "uncollectible": "Lama ururin karo", + "unknown": "Lama garanayo" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Xog la ururiyay", "free": "Bilaash", - "couldNotUpdateFavorites": "Kuwa la jeclaaday lama cusboonaysiin karin" + "couldNotUpdateFavorites": "Kuwa la jeclaaday lama cusboonaysiin karin", + "thinkingEffort": { + "none": "Waxba", + "minimal": "Ugu yar", + "low": "Hoose", + "medium": "Dhexdhexaad", + "high": "Sare", + "xhigh": "Aad u sare", + "max": "Ugu badnaan" + } } } diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 6ef629bfcb..113d2a4b21 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "E përzgjedhur {{label}}, prek për të ndryshuar përzgjedhjen", "tapToComment": "{{label}}, prek për të komentuar", - "truncationBanner": "Duke shfaqur {{limit}}-in e parë nga {{total}} skedarë të ndryshuar — kufiri i API-së së GitHub" + "truncationBanner": "Duke shfaqur {{limit}}-in e parë nga {{total}} skedarë të ndryshuar — kufiri i API-së së GitHub", + "statusAdded": "I shtuar", + "statusContext": "Kontekst", + "statusDeleted": "I fshirë" }, "linkPasteClipboardEmpty": "Kujtesa është bosh", "linkPasteNotAPullRequest": "Nuk është një lidhje e pull request në GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Ky rishikim nuk mund të dërgohet siç është. PR mund të ketë ndryshuar, ose nuk mund ta rishikoni kërkesën tuaj të tërheqjes.", "couldNotPostComment": "Nuk u arrit të postohej komenti.", "couldNotSubmitReview": "Nuk u arrit të dërgohej rishikimi. Kontrolloni lidhjen dhe provoni përsëri." + }, + "operation": { + "couldNotReply": "Nuk u arrit të përgjigjeshej.", + "couldNotCompleteAction": "Nuk u arrit të përfundohej ky veprim.", + "mergeResultDefaultError": "GitHub nuk e përfundoi shkrirjen." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Pagesa është vonuar. Përditëso metodën tënde të pagesës.", "subscriptionCancels": "Abonimi anulohet më {{date}}", "trialDaysRemaining": "Prova: {{remaining}} ditë të mbetura", - "trialEndingSoon": "Prova po mbaron së shpejti: {{remaining}}" + "trialEndingSoon": "Prova po mbaron së shpejti: {{remaining}}", + "planName": { + "commit": "Angazhohu", + "standard": "Standard" + } }, "changelog": { "title": "Çfarë ka të re", @@ -1189,7 +1201,8 @@ "strongArm": "Krahu i fortë", "talisman": "Talismani" }, - "remoteSpawnFilesNotSupported": "Kjo instancë nuk mund të marrë skedarë." + "remoteSpawnFilesNotSupported": "Kjo instancë nuk mund të marrë skedarë.", + "instanceSwitcherTitle": "Instanca KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Dështoi", "cancelled": "I anuluar", "interrupted": "I ndërprerë" - } + }, + "reviewStyle": { + "strict": "I rreptë", + "balanced": "I ekuilibruar", + "lenient": "I butë", + "roast": "Roast" + }, + "focusArea": { + "security": "Siguria", + "performance": "Performanca", + "bugs": "Defektet", + "style": "Stili", + "testing": "Testimi", + "documentation": "Dokumentimi" + }, + "gateThreshold": { + "off": "I çaktivizuar", + "all": "Të gjitha", + "warning": "Paralajmërim", + "critical": "Kritike" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Shqyrtuesi i Kodit kërkon vëmendje", + "description": "Shqyrtuesi i Kodit u çaktivizua sepse Kilo nuk mund të qaset te kjo depo me një instalim aktiv të Aplikacionit të GitHub. Përditëso instalimin e Aplikacionit të GitHub, pastaj aktivizoje përsëri Shqyrtuesin e Kodit.", + "recoveryLabel": "Përditëso Aplikacionin e GitHub" + }, + "githubIpAllowList": { + "title": "Shqyrtuesi i Kodit kërkon vëmendje", + "description": "Shqyrtuesi i Kodit u çaktivizua sepse kjo organizatë GitHub përdor një listë të lejuar IP-sh që bllokon Kilo. Kontakto hi@kilocode.ai për ndihmë, pastaj aktivizoje përsëri Shqyrtuesin e Kodit.", + "recoveryLabel": "Kontakto mbështetjen" + }, + "gitlabProjectAccessRequired": { + "title": "Shqyrtuesi i Kodit kërkon vëmendje", + "description": "Shqyrtuesi i Kodit u çaktivizua sepse Kilo nuk mund të krijojë një Token Qasjeje Projekti GitLab për këtë projekt. Jepi akses Maintainer ose aktivizo Token-et e Qasjes në Projekt, pastaj aktivizoje përsëri Shqyrtuesin e Kodit.", + "recoveryLabel": "Përditëso integrimin e GitLab" + }, + "byokInvalidKey": { + "title": "Shqyrtuesi i Kodit kërkon vëmendje", + "description": "Shqyrtuesi i Kodit u çaktivizua sepse çelësi i zgjedhur i API-së BYOK është i pavlefshëm, i revokuar ose i mungon leja. Përditëso çelësin ose zgjidh një model tjetër, pastaj aktivizoje përsëri Shqyrtuesin e Kodit.", + "recoveryLabel": "Përditëso cilësimet e BYOK" + }, + "selectedModelUnavailable": { + "title": "Shqyrtuesi i Kodit kërkon vëmendje", + "description": "Shqyrtuesi i Kodit u çaktivizua sepse modeli i zgjedhur nuk është i disponueshëm për seancat e Cloud Agent. Zgjidh një model të disponueshëm, pastaj aktivizoje përsëri Shqyrtuesin e Kodit.", + "recoveryLabel": "Përditëso cilësimet e Shqyrtuesit të Kodit" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Shqyrtuesi i Kodit kërkon vëmendje", + "description": "Shqyrtuesi i Kodit u çaktivizua pas tre kohëmatjeve të klonimit të depove sot. Kontakto hi@kilocode.ai për ndihmë, pastaj aktivizoje përsëri Shqyrtuesin e Kodit.", + "recoveryLabel": "Kontakto mbështetjen" + } + }, + "unknownError": "Gabim i panjohur" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Gjetja është nën pragun automatik të ashpërsisë. Zgjidhja manuale mund të fillojë ende kur portat e sigurisë të kalohen.", "beforeEnablement": "Analiza u përfundua përpara se të aktivizohej korrigjimi automatik. Zgjidhja manuale mund të fillojë ende kur portat e sigurisë të kalohen.", "generic": "Zgjidhja nuk është e disponueshme për këtë gjetje." + }, + "commandFailure": { + "ownerCapReached": "Kapaciteti i analizës është i plotë. Prisni që një analizë aktive të përfundojë, pastaj provoni përsëri.", + "githubTokenUnavailable": "Autorizimi i GitHub kërkon vëmendje. Riautorizoni Aplikacionin e GitHub, pastaj provoni përsëri.", + "githubAuthInvalid": "Autorizimi i GitHub kërkon vëmendje. Riautorizoni Aplikacionin e GitHub, pastaj provoni përsëri.", + "findingUnavailable": "Gjetja nuk është më e disponueshme. Rifreskoni gjetjet dhe provoni përsëri nëse mbetet e hapur.", + "repositoryUnavailable": "Depoja nuk është më e disponueshme për Aplikacionin e GitHub. Rifreskoni aksesin në depo, pastaj provoni përsëri.", + "invalidDismissTarget": "Gjetja nuk mund të hidhet poshtë sepse shënjestra e saj Dependabot është e pavlefshme.", + "commandStalled": "Veprimi në radhë nuk përfundoi në kohë. Provoni veprimin përsëri.", + "queueRetriesExhausted": "Veprimi nuk mund të përfundohej pas disa përpjekjesh. Provoni veprimin përsëri.", + "queueAdmissionFailed": "Veprimi në radhë nuk mund të pranohej. Provoni veprimin përsëri.", + "generic": "Veprimi në radhë dështoi. Provoni veprimin përsëri." + }, + "analysisMode": { + "auto": "Automatik", + "shallow": "E cekët", + "deep": "E thellë" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Shto {{name}} te të preferuarat", "removeFromFavorites": "Hiq {{name}} nga të preferuarat", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Mes" + "thinkingEffortMedium": "Mes", + "sessionModel": "Modeli i seancës" }, "attachmentPreview": { "openFailedRetry": "Skedari nuk u hap. Ju lutemi provoni përsëri.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Shto kredite", - "description": "Shtoni kredite për ta mbajtur përdorimin në funksion." + "description": "Shtoni kredite për ta mbajtur përdorimin në funksion.", + "billingPage": "faqja e faturimit" }, "deviceSessions": { "couldNotLoad": "Seancat nuk mund të ngarkoheshin", @@ -2710,7 +2795,10 @@ "restoreFailed": "Rivendosja e blerjeve dështoi. Provo përsëri.", "purchaseFailed": "Nuk u arrit të përfundohej blerja.", "purchaseStartFailed": "Nuk u arrit të fillohej blerja në App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass në këtë Apple Account i përket një llogarie tjetër Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass në këtë Apple Account i përket një llogarie tjetër Kilo.", + "couldNotConnectToAppStore": "Nuk u arrit të lidheshim me App Store. Kontrollo lidhjen dhe provo përsëri.", + "noMatchingProducts": "App Store nuk ktheu produkte Kilo Pass që përputhen.", + "purchaseMissingSignedTransaction": "Blerja në App Store nuk përfshinte një transaksion të nënshkruar JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Ka nevojë për përmirësim", "sorryTitle": "Na vjen keq ta dëgjojmë këtë!", "sorryMessage": "Ju lutemi na tregoni se çfarë duhet të përmirësohet. Inxhinieri përgjegjës për aplikacionin e lexon çdo raport!", - "emailUs": "Na dërgoni email" + "emailUs": "Na dërgoni email", + "emailSubject": "përshtypjet për aplikacionin celular" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Nuk ka aktivitet krediti", "expires": "Skadon {{date}}", "title": "Aktiviteti i krediteve", - "transactionFallback": "Transaksion krediti" + "transactionFallback": "Transaksion krediti", + "category": { + "organization_custom": "Organizatë e personalizuar", + "parent_to_child_transfer_in": "Transferim nga prindi te fëmija (hyrje)", + "parent_to_child_transfer_out": "Transferim nga prindi te fëmija (dalje)", + "oss-sponsorship": "Sponsorim OSS", + "oss-monthly-reset": "Rivendosja mujore e OSS", + "team-topup-bonus-2025": "Bonusi i ekipit për rimbushje 2025", + "accounting_adjustment": "Rregullim kontabël", + "credits_expired": "Kredite të skaduara" + } }, "inviteMember": { "emailError": "Futni një adresë email-i të vlefshme", @@ -2840,12 +2939,17 @@ "emptyDescription": "Faturat gjenerohen automatikisht çdo cikël faturimi dhe do të shfaqen këtu sapo organizata juaj të faturohet.", "emptyTitle": "Nuk ka fatura", "invoiceFallback": "Fatura", - "statusOpen": "E hapur", - "statusPaid": "E paguar", - "statusVoid": "E pavlefshme", "title": "Faturat", "downloadFailed": "Fatura nuk mund të shkarkohej. Kontrolloni lidhjen dhe provoni përsëri.", - "sharingUnavailable": "Ndarja nuk është e disponueshme në këtë pajisje." + "sharingUnavailable": "Ndarja nuk është e disponueshme në këtë pajisje.", + "status": { + "paid": "E paguar", + "open": "E hapur", + "void": "E pavlefshme", + "draft": "Draft", + "uncollectible": "E pakolektueshme", + "unknown": "E panjohur" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Të dhënat e mbledhura", "free": "Falas", - "couldNotUpdateFavorites": "Nuk u arrit të përditësoheshin të preferuarat" + "couldNotUpdateFavorites": "Nuk u arrit të përditësoheshin të preferuarat", + "thinkingEffort": { + "none": "Asnjë", + "minimal": "Minimal", + "low": "I ulët", + "medium": "I mesëm", + "high": "I lartë", + "xhigh": "Shumë i lartë", + "max": "Maksimal" + } } } diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index 19767075bd..b13b3abb6f 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -580,7 +580,10 @@ "diff": { "selectedTapToChange": "Izabrano {{label}}, dodirnite da promenite izbor", "tapToComment": "{{label}}, dodirnite da komentarišete", - "truncationBanner": "Prikazuje se prvih {{limit}} od {{total}} izmenjenih fajlova — GitHub API limit" + "truncationBanner": "Prikazuje se prvih {{limit}} od {{total}} izmenjenih fajlova — GitHub API limit", + "statusAdded": "Dodato", + "statusContext": "Kontekst", + "statusDeleted": "Obrisano" }, "linkPasteClipboardEmpty": "Klipbord je prazan", "linkPasteNotAPullRequest": "Nije GitHub pull request link", @@ -594,6 +597,11 @@ "reviewNotSubmitted": "Ovaj pregled se ne može poslati kako jeste. PR se možda promenio, ili ne možete pregledati sopstveni pull request.", "couldNotPostComment": "Komentar nije moguće objaviti.", "couldNotSubmitReview": "Pregled nije moguće poslati. Proverite vezu i pokušajte ponovo." + }, + "operation": { + "couldNotReply": "Nije moguće odgovoriti.", + "couldNotCompleteAction": "Nije moguće dovršiti ovu radnju.", + "mergeResultDefaultError": "GitHub nije završio spajanje." } }, "notifications": { @@ -829,7 +837,11 @@ "paymentPastDue": "Plaćanje kasni. Ažuriraj svoj metod plaćanja.", "subscriptionCancels": "Pretplata se otkazuje {{date}}", "trialDaysRemaining": "Probno razdoblje: preostalo {{remaining}} dana", - "trialEndingSoon": "Probno razdoblje se uskoro završava: {{remaining}}" + "trialEndingSoon": "Probno razdoblje se uskoro završava: {{remaining}}", + "planName": { + "commit": "Obaveza", + "standard": "Standard" + } }, "changelog": { "title": "Šta je novo", @@ -1198,7 +1210,8 @@ "strongArm": "Jaka ruka", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Ova instanca ne može primati datoteke." + "remoteSpawnFilesNotSupported": "Ova instanca ne može primati datoteke.", + "instanceSwitcherTitle": "KiloClaw instanca" }, "codeReviewer": { "focusAreas": { @@ -1396,7 +1409,60 @@ "failed": "Nije uspelo", "cancelled": "Otkazano", "interrupted": "Prekinuto" - } + }, + "reviewStyle": { + "strict": "Strogo", + "balanced": "Uravnoteženo", + "lenient": "Blago", + "roast": "Roast" + }, + "focusArea": { + "security": "Sigurnost", + "performance": "Učinak", + "bugs": "Greške", + "style": "Stil", + "testing": "Testiranje", + "documentation": "Dokumentacija" + }, + "gateThreshold": { + "off": "Isključeno", + "all": "Sve", + "warning": "Upozorenje", + "critical": "Kritično" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Pregledač koda zahteva pažnju", + "description": "Pregledač koda je onemogućen jer Kilo ne može da pristupi ovom repozitorijumu uz aktivnu instalaciju GitHub aplikacije. Ažuriraj instalaciju GitHub aplikacije, a zatim ponovo omogući Pregledač koda.", + "recoveryLabel": "Ažuriraj GitHub aplikaciju" + }, + "githubIpAllowList": { + "title": "Pregledač koda zahteva pažnju", + "description": "Pregledač koda je onemogućen jer ova GitHub organizacija koristi IP listu dozvoljenih adresa koja blokira Kilo. Kontaktiraj hi@kilocode.ai za pomoć, a zatim ponovo omogući Pregledač koda.", + "recoveryLabel": "Kontaktiraj podršku" + }, + "gitlabProjectAccessRequired": { + "title": "Pregledač koda zahteva pažnju", + "description": "Pregledač koda je onemogućen jer Kilo ne može da kreira GitLab Project Access Token za ovaj projekat. Dodeli pristup nivoa Maintainer ili omogući Project Access Tokens, a zatim ponovo omogući Pregledač koda.", + "recoveryLabel": "Ažuriraj GitLab integraciju" + }, + "byokInvalidKey": { + "title": "Pregledač koda zahteva pažnju", + "description": "Pregledač koda je onemogućen jer je izabrani BYOK API ključ nevažeći, opozvan ili nema dozvolu. Ažuriraj ključ ili izaberi drugi model, a zatim ponovo omogući Pregledač koda.", + "recoveryLabel": "Ažuriraj BYOK podešavanja" + }, + "selectedModelUnavailable": { + "title": "Pregledač koda zahteva pažnju", + "description": "Pregledač koda je onemogućen jer izabrani model nije dostupan za Cloud Agent sesije. Izaberi dostupan model, a zatim ponovo omogući Pregledač koda.", + "recoveryLabel": "Ažuriraj podešavanja Pregledača koda" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Pregledač koda zahteva pažnju", + "description": "Pregledač koda je onemogućen nakon tri vremenska prekoračenja kloniranja repozitorijuma danas. Kontaktiraj hi@kilocode.ai za pomoć, a zatim ponovo omogući Pregledač koda.", + "recoveryLabel": "Kontaktiraj podršku" + } + }, + "unknownError": "Nepoznata greška" }, "securityAgent": { "filter": { @@ -1940,6 +2006,23 @@ "belowThreshold": "Nalaz je ispod automatskog praga ozbiljnosti. Ručno otklanjanje i dalje može da počne kada prođu sigurnosne provere.", "beforeEnablement": "Analiza je završena pre nego što je auto-sanacija omogućena. Ručno otklanjanje i dalje može da počne kada prođu sigurnosne provere.", "generic": "Otklanjanje nije dostupno za ovaj nalaz." + }, + "commandFailure": { + "ownerCapReached": "Kapacitet analize je pun. Sačekaj da se aktivna analiza završi, pa pokušaj ponovo.", + "githubTokenUnavailable": "GitHub autorizacija zahteva pažnju. Ponovo ovlasti GitHub aplikaciju, pa pokušaj ponovo.", + "githubAuthInvalid": "GitHub autorizacija zahteva pažnju. Ponovo ovlasti GitHub aplikaciju, pa pokušaj ponovo.", + "findingUnavailable": "Nalaz više nije dostupan. Osveži nalaze i pokušaj ponovo ako ostane otvoren.", + "repositoryUnavailable": "Repozitorijum više nije dostupan GitHub aplikaciji. Osveži pristup repozitorijumu, pa pokušaj ponovo.", + "invalidDismissTarget": "Nalaz se ne može odbaciti jer je njegov Dependabot cilj nevažeći.", + "commandStalled": "Zakazana radnja se nije završila na vreme. Pokušaj ponovo radnju.", + "queueRetriesExhausted": "Radnja se nije mogla završiti nakon nekoliko pokušaja. Pokušaj ponovo radnju.", + "queueAdmissionFailed": "Zakazana radnja se nije mogla prihvatiti. Pokušaj ponovo radnju.", + "generic": "Zakazana radnja nije uspela. Pokušaj ponovo radnju." + }, + "analysisMode": { + "auto": "Automatski", + "shallow": "Plitko", + "deep": "Duboko" } }, "agents": { @@ -2409,7 +2492,8 @@ "addToFavorites": "Dodaj {{name}} u omiljene", "removeFromFavorites": "Ukloni {{name}} iz omiljenih", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Model sesije" }, "attachmentPreview": { "openFailedRetry": "Otvaranje datoteke nije uspelo. Pokušajte ponovo.", @@ -2542,7 +2626,8 @@ }, "addCredits": { "cta": "Dodaj kredite", - "description": "Dodajte kredite da bi upotreba nastavila da radi." + "description": "Dodajte kredite da bi upotreba nastavila da radi.", + "billingPage": "stranica za naplatu" }, "deviceSessions": { "couldNotLoad": "Učitavanje sesija nije uspelo", @@ -2730,7 +2815,10 @@ "restoreFailed": "Vraćanje kupovina nije uspelo. Pokušajte ponovo.", "purchaseFailed": "Kupovina nije mogla biti dovršena.", "purchaseStartFailed": "Započinjanje kupovine u App Store-u nije uspelo.", - "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu." + "purchaseOwnedByAnotherAccount": "Kilo Pass na ovom Apple nalogu pripada drugom Kilo nalogu.", + "couldNotConnectToAppStore": "Nije moguće povezati se sa App Store-om. Proverite vezu i pokušajte ponovo.", + "noMatchingProducts": "App Store nije vratio nijedan odgovarajući Kilo Pass proizvod.", + "purchaseMissingSignedTransaction": "App Store kupovina nije uključivala potpisanu JWS transakciju." }, "consent": { "kilo": "Kilo", @@ -2826,7 +2914,8 @@ "needsWork": "Potrebno je poboljšanje", "sorryTitle": "Žao nam je da to čujemo!", "sorryMessage": "Molimo vas da nas obavestite šta treba da bude bolje. Inženjer zadužen za aplikaciju čita svaki izveštaj!", - "emailUs": "Pišite nam" + "emailUs": "Pišite nam", + "emailSubject": "povratne informacije o mobilnoj aplikaciji" }, "organization": { "boundary": { @@ -2843,7 +2932,17 @@ "emptyTitle": "Nema aktivnosti kredita", "expires": "Ističe {{date}}", "title": "Aktivnost kredita", - "transactionFallback": "Kreditna transakcija" + "transactionFallback": "Kreditna transakcija", + "category": { + "organization_custom": "Prilagođeno organizaciji", + "parent_to_child_transfer_in": "Prenos iz matične u podređenu (ulaz)", + "parent_to_child_transfer_out": "Prenos iz matične u podređenu (izlaz)", + "oss-sponsorship": "OSS sponzorstvo", + "oss-monthly-reset": "OSS mesečni reset", + "team-topup-bonus-2025": "Timski bonus za dopunu 2025", + "accounting_adjustment": "Računovodstveno usklađivanje", + "credits_expired": "Istekli krediti" + } }, "inviteMember": { "emailError": "Unesite važeću adresu e-pošte", @@ -2860,12 +2959,17 @@ "emptyDescription": "Fakture se generišu automatski svakog ciklusa naplate i pojaviće se ovde kada vaša organizacija bude naplaćena.", "emptyTitle": "Nema faktura", "invoiceFallback": "Faktura", - "statusOpen": "Otvoreno", - "statusPaid": "Plaćeno", - "statusVoid": "Stornirano", "title": "Fakture", "downloadFailed": "Faktura nije mogla biti preuzeta. Proverite vezu i pokušajte ponovo.", - "sharingUnavailable": "Deljenje nije dostupno na ovom uređaju." + "sharingUnavailable": "Deljenje nije dostupno na ovom uređaju.", + "status": { + "paid": "Plaćeno", + "open": "Otvoreno", + "void": "Stornirano", + "draft": "Nacrt", + "uncollectible": "Nenaplativo", + "unknown": "Nepoznato" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2992,6 +3096,15 @@ "models": { "dataCollected": "Prikupljeni podaci", "free": "Besplatno", - "couldNotUpdateFavorites": "Nije moguće ažurirati omiljene" + "couldNotUpdateFavorites": "Nije moguće ažurirati omiljene", + "thinkingEffort": { + "none": "Ništa", + "minimal": "Minimalno", + "low": "Nisko", + "medium": "Srednje", + "high": "Visoko", + "xhigh": "Veoma visoko", + "max": "Maksimalno" + } } } diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index 672b43c43a..f42c84d4e9 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Valt {{label}}, tryck för att ändra markering", "tapToComment": "{{label}}, tryck för att kommentera", - "truncationBanner": "Visar de första {{limit}} av {{total}} ändrade filer — GitHub API-begränsning" + "truncationBanner": "Visar de första {{limit}} av {{total}} ändrade filer — GitHub API-begränsning", + "statusAdded": "Tillagd", + "statusContext": "Kontext", + "statusDeleted": "Borttagen" }, "linkPasteClipboardEmpty": "Urklipp är tomt", "linkPasteNotAPullRequest": "Inte en GitHub-pull request-länk", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Den här granskningen kan inte skickas som den är. PR:en kan ha ändrats, eller så kan du inte granska din egen pull request.", "couldNotPostComment": "Kunde inte posta kommentaren.", "couldNotSubmitReview": "Kunde inte skicka granskningen. Kontrollera anslutningen och försök igen." + }, + "operation": { + "couldNotReply": "Kunde inte svara.", + "couldNotCompleteAction": "Kunde inte slutföra den här åtgärden.", + "mergeResultDefaultError": "GitHub slutförde inte sammanslagningen." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Betalning förfallen. Uppdatera din betalningsmetod.", "subscriptionCancels": "Abonnemanget avslutas {{date}}", "trialDaysRemaining": "Provperiod: {{remaining}} dagar kvar", - "trialEndingSoon": "Provperioden avslutas snart: {{remaining}}" + "trialEndingSoon": "Provperioden avslutas snart: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Vad är nytt", @@ -1189,7 +1201,8 @@ "strongArm": "Stark arm", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Den här instansen kan inte ta emot filer." + "remoteSpawnFilesNotSupported": "Den här instansen kan inte ta emot filer.", + "instanceSwitcherTitle": "KiloClaw-instans" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Misslyckades", "cancelled": "Avbruten", "interrupted": "Avbruten" - } + }, + "reviewStyle": { + "strict": "Strikt", + "balanced": "Balanserad", + "lenient": "Mild", + "roast": "Roast" + }, + "focusArea": { + "security": "Säkerhet", + "performance": "Prestanda", + "bugs": "Buggar", + "style": "Stil", + "testing": "Testning", + "documentation": "Dokumentation" + }, + "gateThreshold": { + "off": "Av", + "all": "Alla", + "warning": "Varning", + "critical": "Kritisk" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Kodgranskaren behöver uppmärksamhet", + "description": "Kodgranskaren inaktiverades eftersom Kilo inte kan komma åt detta arkiv med en aktiv GitHub App-installation. Uppdatera GitHub App-installationen och aktivera sedan Kodgranskaren igen.", + "recoveryLabel": "Uppdatera GitHub App" + }, + "githubIpAllowList": { + "title": "Kodgranskaren behöver uppmärksamhet", + "description": "Kodgranskaren inaktiverades eftersom denna GitHub-organisation använder en IP-tillåtelselista som blockerar Kilo. Kontakta hi@kilocode.ai för hjälp och aktivera sedan Kodgranskaren igen.", + "recoveryLabel": "Kontakta support" + }, + "gitlabProjectAccessRequired": { + "title": "Kodgranskaren behöver uppmärksamhet", + "description": "Kodgranskaren inaktiverades eftersom Kilo inte kan skapa en GitLab Project Access Token för detta projekt. Ge Maintainer-åtkomst eller aktivera Project Access Tokens och aktivera sedan Kodgranskaren igen.", + "recoveryLabel": "Uppdatera GitLab-integreringen" + }, + "byokInvalidKey": { + "title": "Kodgranskaren behöver uppmärksamhet", + "description": "Kodgranskaren inaktiverades eftersom den valda BYOK-API-nyckeln är ogiltig, återkallad eller saknar behörighet. Uppdatera nyckeln eller välj en annan modell och aktivera sedan Kodgranskaren igen.", + "recoveryLabel": "Uppdatera BYOK-inställningar" + }, + "selectedModelUnavailable": { + "title": "Kodgranskaren behöver uppmärksamhet", + "description": "Kodgranskaren inaktiverades eftersom den valda modellen inte är tillgänglig för molnagentsessioner. Välj en tillgänglig modell och aktivera sedan Kodgranskaren igen.", + "recoveryLabel": "Uppdatera Kodgranskarens inställningar" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Kodgranskaren behöver uppmärksamhet", + "description": "Kodgranskaren inaktiverades efter tre arkivklonings-timeouts idag. Kontakta hi@kilocode.ai för hjälp och aktivera sedan Kodgranskaren igen.", + "recoveryLabel": "Kontakta support" + } + }, + "unknownError": "Okänt fel" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Findingen ligger under tröskeln för automatisk allvarlighet. Manuell åtgärd kan fortfarande startas när säkerhetsgrindarna passeras.", "beforeEnablement": "Analysen slutfördes innan automatisk åtgärd aktiverades. Manuell åtgärd kan fortfarande startas när säkerhetsgrindarna passeras.", "generic": "Åtgärd är inte tillgänglig för denna finding." + }, + "commandFailure": { + "ownerCapReached": "Analyskapaciteten är full. Vänta tills en aktiv analys är klar och försök sedan igen.", + "githubTokenUnavailable": "GitHub-auktoriseringen behöver uppmärksamhet. Auktorisera GitHub App på nytt och försök sedan igen.", + "githubAuthInvalid": "GitHub-auktoriseringen behöver uppmärksamhet. Auktorisera GitHub App på nytt och försök sedan igen.", + "findingUnavailable": "Fyndet är inte längre tillgängligt. Uppdatera fynden och försök igen om det fortfarande är öppet.", + "repositoryUnavailable": "Arkivet är inte längre tillgängligt för GitHub App. Uppdatera arkivåtkomsten och försök sedan igen.", + "invalidDismissTarget": "Fyndet kan inte avfärdas eftersom dess Dependabot-mål är ogiltigt.", + "commandStalled": "Den köade åtgärden blev inte klar i tid. Försök igen med åtgärden.", + "queueRetriesExhausted": "Åtgärden kunde inte slutföras efter flera försök. Försök igen med åtgärden.", + "queueAdmissionFailed": "Den köade åtgärden kunde inte godkännas. Försök igen med åtgärden.", + "generic": "Den köade åtgärden misslyckades. Försök igen med åtgärden." + }, + "analysisMode": { + "auto": "Auto", + "shallow": "Ytlig", + "deep": "Djup" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Lägg till {{name}} i favoriter", "removeFromFavorites": "Ta bort {{name}} från favoriter", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Sessionmodell" }, "attachmentPreview": { "openFailedRetry": "Det gick inte att öppna filen. Försök igen.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Lägg till krediter", - "description": "Lägg till krediter för att hålla användningen igång." + "description": "Lägg till krediter för att hålla användningen igång.", + "billingPage": "faktureringssidan" }, "deviceSessions": { "couldNotLoad": "Det gick inte att läsa in sessioner", @@ -2710,7 +2795,10 @@ "restoreFailed": "Det gick inte att återställa köpen. Försök igen.", "purchaseFailed": "Det gick inte att slutföra köpet.", "purchaseStartFailed": "Det gick inte att starta App Store-köpet.", - "purchaseOwnedByAnotherAccount": "Kilo Pass på detta Apple-konto tillhör ett annat Kilo-konto." + "purchaseOwnedByAnotherAccount": "Kilo Pass på detta Apple-konto tillhör ett annat Kilo-konto.", + "couldNotConnectToAppStore": "Kunde inte ansluta till App Store. Kontrollera anslutningen och försök igen.", + "noMatchingProducts": "App Store returnerade inga matchande Kilo Pass-produkter.", + "purchaseMissingSignedTransaction": "App Store-köpet innehöll ingen signerad transaktion JWS." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Behöver förbättras", "sorryTitle": "Vi är ledsna att höra det!", "sorryMessage": "Berätta gärna vad som behöver bli bättre. Ingenjören som ansvarar för appen läser varje enskild rapport!", - "emailUs": "E-posta oss" + "emailUs": "E-posta oss", + "emailSubject": "feedback om mobilappen" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ingen kreditaktivitet", "expires": "Upphör {{date}}", "title": "Kreditaktivitet", - "transactionFallback": "Kredittransaktion" + "transactionFallback": "Kredittransaktion", + "category": { + "organization_custom": "Organisationsanpassad", + "parent_to_child_transfer_in": "Överföring från förälder till barn (in)", + "parent_to_child_transfer_out": "Överföring från förälder till barn (ut)", + "oss-sponsorship": "OSS-sponsring", + "oss-monthly-reset": "OSS månatlig återställning", + "team-topup-bonus-2025": "Team-påfyllnadsbonus 2025", + "accounting_adjustment": "Redovisningsjustering", + "credits_expired": "Krediter upphörde" + } }, "inviteMember": { "emailError": "Ange en giltig e-postadress", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakturor genereras automatiskt varje faktureringscykel och visas här när din organisation har fakturerats.", "emptyTitle": "Inga fakturor", "invoiceFallback": "Faktura", - "statusOpen": "Öppen", - "statusPaid": "Betald", - "statusVoid": "Ogiltig", "title": "Fakturor", "downloadFailed": "Det gick inte att ladda ner fakturan. Kontrollera anslutningen och försök igen.", - "sharingUnavailable": "Delning är inte tillgänglig på den här enheten." + "sharingUnavailable": "Delning är inte tillgänglig på den här enheten.", + "status": { + "paid": "Betald", + "open": "Öppen", + "void": "Ogiltig", + "draft": "Utkast", + "uncollectible": "Oindrivbar", + "unknown": "Okänd" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data samlas in", "free": "Gratis", - "couldNotUpdateFavorites": "Kunde inte uppdatera favoriter" + "couldNotUpdateFavorites": "Kunde inte uppdatera favoriter", + "thinkingEffort": { + "none": "Ingen", + "minimal": "Minimal", + "low": "Låg", + "medium": "Medel", + "high": "Hög", + "xhigh": "Extra hög", + "max": "Max" + } } } diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index 599ca14385..0e0b0140f5 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} imechaguliwa, gusa kubadilisha uteuzi", "tapToComment": "{{label}}, gusa kutoa maoni", - "truncationBanner": "Inaonyesha {{limit}} za kwanza kati ya {{total}} faili zilizobadilishwa — kikomo cha API ya GitHub" + "truncationBanner": "Inaonyesha {{limit}} za kwanza kati ya {{total}} faili zilizobadilishwa — kikomo cha API ya GitHub", + "statusAdded": "Imeongezwa", + "statusContext": "Muktadha", + "statusDeleted": "Imefutwa" }, "linkPasteClipboardEmpty": "Ubao wa kunakili ni tupu", "linkPasteNotAPullRequest": "Si kiungo cha ombi la kuvuta la GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Ukaguzi huu hauwezi kuwasilishwa kama ulivyo. PR huenda imebadilika, au huwezi kukagua pull request yako mwenyewe.", "couldNotPostComment": "Imeshindwa kuchapisha maoni.", "couldNotSubmitReview": "Imeshindwa kuwasilisha ukaguzi. Angalia muunganisho wako na ujaribu tena." + }, + "operation": { + "couldNotReply": "Imeshindwa kujibu.", + "couldNotCompleteAction": "Imeshindwa kukamilisha kitendo hiki.", + "mergeResultDefaultError": "GitHub haikukamilisha muunganisho." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Malipo yamechelewa. Tafadhali sasisha njia yako ya malipo.", "subscriptionCancels": "Usajili unafutwa {{date}}", "trialDaysRemaining": "Jaribio: siku {{remaining}} zimesalia", - "trialEndingSoon": "Jaribio linaisha hivi karibuni: {{remaining}}" + "trialEndingSoon": "Jaribio linaisha hivi karibuni: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Ni Nini Kipya", @@ -1189,7 +1201,8 @@ "strongArm": "Mkono wenye nguvu", "talisman": "Talisman" }, - "remoteSpawnFilesNotSupported": "Tukio hili haliwezi kupokea faili." + "remoteSpawnFilesNotSupported": "Tukio hili haliwezi kupokea faili.", + "instanceSwitcherTitle": "Tukio la KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Imeshindwa", "cancelled": "Imegairiwa", "interrupted": "Imeingiliwa" - } + }, + "reviewStyle": { + "strict": "Kali", + "balanced": "Iliyosawazishwa", + "lenient": "Mpole", + "roast": "Roast" + }, + "focusArea": { + "security": "Usalama", + "performance": "Utendaji", + "bugs": "Matatizo", + "style": "Mtindo", + "testing": "Upimaji", + "documentation": "Nyaraka" + }, + "gateThreshold": { + "off": "Zima", + "all": "Zote", + "warning": "Onyo", + "critical": "Muhimu" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer inahitaji uangalizi", + "description": "Code Reviewer ilizimwa kwa sababu Kilo haiwezi kufikia hazina hii kwa usakinishaji unaoendelea wa GitHub App. Sasisha usakinishaji wa GitHub App, kisha washa Code Reviewer tena.", + "recoveryLabel": "Sasisha GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer inahitaji uangalizi", + "description": "Code Reviewer ilizimwa kwa sababu shirika hili la GitHub linatumia orodha ya kuruhusu IP inayozuia Kilo. Wasiliana na hi@kilocode.ai kwa usaidizi, kisha washa Code Reviewer tena.", + "recoveryLabel": "Wasiliana na usaidizi" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer inahitaji uangalizi", + "description": "Code Reviewer ilizimwa kwa sababu Kilo haiwezi kuunda GitLab Project Access Token kwa mradi huu. Toa ufikiaji wa Maintainer au washa Project Access Tokens, kisha washa Code Reviewer tena.", + "recoveryLabel": "Sasisha ujumuisho wa GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer inahitaji uangalizi", + "description": "Code Reviewer ilizimwa kwa sababu ufunguo wa API wa BYOK uliochaguliwa ni batili, umeondolewa, au hauna ruhusa. Sasisha ufunguo au chagua muundo mwingine, kisha washa Code Reviewer tena.", + "recoveryLabel": "Sasisha mipangilio ya BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer inahitaji uangalizi", + "description": "Code Reviewer ilizimwa kwa sababu muundo uliochaguliwa haupatikani kwa vipindi vya wakala wa wingu. Chagua muundo unaopatikana, kisha washa Code Reviewer tena.", + "recoveryLabel": "Sasisha mipangilio ya Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer inahitaji uangalizi", + "description": "Code Reviewer ilizimwa baada ya muda wa kloni wa hazina kuisha mara tatu leo. Wasiliana na hi@kilocode.ai kwa usaidizi, kisha washa Code Reviewer tena.", + "recoveryLabel": "Wasiliana na usaidizi" + } + }, + "unknownError": "Hitilafu isiyojulikana" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Matokeo yako chini ya kizingiti cha ukali wa kiotomatiki. Urekebishaji wa mwongozo bado unaweza kuanza milango ya usalama ikipita.", "beforeEnablement": "Uchambuzi ulikamilika kabla matengenezo ya kiotomatiki yaliwashwa. Urekebishaji wa mwongozo bado unaweza kuanza milango ya usalama ikipita.", "generic": "Urekebishaji haupatikani kwa matokeo haya." + }, + "commandFailure": { + "ownerCapReached": "Uwezo wa uchambuzi umejaa. Subiri uchambuzi unaoendelea umalize, kisha ujaribu tena.", + "githubTokenUnavailable": "Uidhinishaji wa GitHub unahitaji uangalizi. Idhinisha GitHub App tena, kisha ujaribu tena.", + "githubAuthInvalid": "Uidhinishaji wa GitHub unahitaji uangalizi. Idhinisha GitHub App tena, kisha ujaribu tena.", + "findingUnavailable": "Matokeo hayapatikani tena. Sasisha matokeo na ujaribu tena ikiwa bado yapo wazi.", + "repositoryUnavailable": "Hazina haipatikani tena kwa GitHub App. Sasisha ufikiaji wa hazina, kisha ujaribu tena.", + "invalidDismissTarget": "Matokeo hayawezi kuondolewa kwa sababu lengo lake la Dependabot si halali.", + "commandStalled": "Kitendo kilichopangwa hakikumaliza kwa wakati. Jaribu kitendo tena.", + "queueRetriesExhausted": "Kitendo hakikuweza kukamilika baada ya majaribio kadhaa. Jaribu kitendo tena.", + "queueAdmissionFailed": "Kitendo kilichopangwa hakikuweza kukubaliwa. Jaribu kitendo tena.", + "generic": "Kitendo kilichopangwa kilishindikana. Jaribu kitendo tena." + }, + "analysisMode": { + "auto": "Kiotomatiki", + "shallow": "Ya kina kidogo", + "deep": "Ya kina kirefu" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Ongeza {{name}} kwenye vipendwa", "removeFromFavorites": "Ondoa {{name}} kwenye vipendwa", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Muundo wa kipindi" }, "attachmentPreview": { "openFailedRetry": "Imeshindwa kufungua faili. Tafadhali jaribu tena.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Ongeza salio", - "description": "Ongeza salio ili uendelee kutumia." + "description": "Ongeza salio ili uendelee kutumia.", + "billingPage": "ukurasa wa malipo" }, "deviceSessions": { "couldNotLoad": "Haikuweza kupakia vikao", @@ -2710,7 +2795,10 @@ "restoreFailed": "Imeshindwa kurejesha ununuzi. Jaribu tena.", "purchaseFailed": "Imeshindwa kukamilisha ununuzi.", "purchaseStartFailed": "Imeshindwa kuanza ununuzi wa App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass kwenye Akaunti hii ya Apple ni ya akaunti nyingine ya Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass kwenye Akaunti hii ya Apple ni ya akaunti nyingine ya Kilo.", + "couldNotConnectToAppStore": "Imeshindwa kuunganishwa kwenye App Store. Angalia muunganisho wako na ujaribu tena.", + "noMatchingProducts": "App Store haikurudisha bidhaa zinazolingana za Kilo Pass.", + "purchaseMissingSignedTransaction": "Ununuzi wa App Store haukujumuisha JWS ya muamala iliyotiwa saini." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Inahitaji kazi", "sorryTitle": "Tunasikitika kusikia hivyo!", "sorryMessage": "Tafadhali tujulishe kile kinachohitaji kuboreshwa. Mhandisi anayesimamia app husoma kila ripoti!", - "emailUs": "Tuandikie barua pepe" + "emailUs": "Tuandikie barua pepe", + "emailSubject": "maoni ya programu ya simu" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Hakuna shughuli za salio", "expires": "Inaisha {{date}}", "title": "Shughuli za salio", - "transactionFallback": "Shughuli ya salio" + "transactionFallback": "Shughuli ya salio", + "category": { + "organization_custom": "Maalum ya shirika", + "parent_to_child_transfer_in": "Uhamisho kutoka mzazi hadi mtoto (ndani)", + "parent_to_child_transfer_out": "Uhamisho kutoka mzazi hadi mtoto (nje)", + "oss-sponsorship": "Udhamini wa OSS", + "oss-monthly-reset": "Uwekaji upya wa kila mwezi wa OSS", + "team-topup-bonus-2025": "Bonasi ya kujaza timu 2025", + "accounting_adjustment": "Marekebisho ya uhasibu", + "credits_expired": "Mikopo imeisha" + } }, "inviteMember": { "emailError": "Ingiza anwani halali ya barua pepe", @@ -2840,12 +2939,17 @@ "emptyDescription": "Ankara hutengenezwa kiotomatiki kila mzunguko wa bili na zitaonekana hapa shirika lako likisha tozwa.", "emptyTitle": "Hakuna ankara", "invoiceFallback": "Ankara", - "statusOpen": "Funguliwa", - "statusPaid": "Imelipwa", - "statusVoid": "Batilika", "title": "Ankara", "downloadFailed": "Imeshindwa kupakua ankara. Angalia muunganisho wako na ujaribu tena.", - "sharingUnavailable": "Kushiriki hakupatikani kwenye kifaa hiki." + "sharingUnavailable": "Kushiriki hakupatikani kwenye kifaa hiki.", + "status": { + "paid": "Imelipwa", + "open": "Funguliwa", + "void": "Batilika", + "draft": "Rasimu", + "uncollectible": "Isiyoweza kukusanywa", + "unknown": "Isiyojulikana" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Data iliyokusanywa", "free": "Bure", - "couldNotUpdateFavorites": "Haikuweza kusasisha vipendwa" + "couldNotUpdateFavorites": "Haikuweza kusasisha vipendwa", + "thinkingEffort": { + "none": "Hakuna", + "minimal": "Kidogo sana", + "low": "Chini", + "medium": "Kati", + "high": "Juu", + "xhigh": "Juu zaidi", + "max": "Upeo" + } } } diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index 101916dbd6..f3f0dcdf54 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} தேர்ந்தெடுக்கப்பட்டது, தேர்வை மாற்ற தட்டவும்", "tapToComment": "{{label}}, கருத்து தெரிவிக்க தட்டவும்", - "truncationBanner": "மாற்றப்பட்ட {{total}} கோப்புகளில் முதல் {{limit}} காட்டப்படுகின்றன — GitHub API வரம்பு" + "truncationBanner": "மாற்றப்பட்ட {{total}} கோப்புகளில் முதல் {{limit}} காட்டப்படுகின்றன — GitHub API வரம்பு", + "statusAdded": "சேர்க்கப்பட்டது", + "statusContext": "சூழல்", + "statusDeleted": "நீக்கப்பட்டது" }, "linkPasteClipboardEmpty": "கிளிப்போர்டு காலியாக உள்ளது", "linkPasteNotAPullRequest": "GitHub புல் ரீக்வெஸ்ட் இணைப்பு இல்லை", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "இந்த மதிப்பாய்வை அப்படியே சமர்ப்பிக்க முடியாது. PR மாறியிருக்கலாம், அல்லது உங்கள் சொந்த pull request ஐ மதிப்பாய்வு செய்ய முடியாமல் இருக்கலாம்.", "couldNotPostComment": "கருத்தை இட முடியவில்லை.", "couldNotSubmitReview": "மதிப்பாய்வை சமர்ப்பிக்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்." + }, + "operation": { + "couldNotReply": "பதிலளிக்க முடியவில்லை.", + "couldNotCompleteAction": "இந்த செயலை முடிக்க முடியவில்லை.", + "mergeResultDefaultError": "GitHub ஒருங்கிணைப்பை முடிக்கவில்லை." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "கட்டணம் நிலுவையில் உள்ளது. உங்கள் கட்டண முறையைப் புதுப்பிக்கவும்.", "subscriptionCancels": "சந்தா {{date}} அன்று ரத்தாகிறது", "trialDaysRemaining": "சோதனை: {{remaining}} நாட்கள் மீதம்", - "trialEndingSoon": "சோதனை விரைவில் முடிவடைகிறது: {{remaining}}" + "trialEndingSoon": "சோதனை விரைவில் முடிவடைகிறது: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "என்ன புதியது", @@ -1189,7 +1201,8 @@ "strongArm": "வலுவான கை", "talisman": "தாயத்து" }, - "remoteSpawnFilesNotSupported": "இந்த நிகழ்வு கோப்புகளைப் பெற முடியாது." + "remoteSpawnFilesNotSupported": "இந்த நிகழ்வு கோப்புகளைப் பெற முடியாது.", + "instanceSwitcherTitle": "KiloClaw நிகழ்வு" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "தோல்வியடைந்தது", "cancelled": "ரத்து செய்யப்பட்டது", "interrupted": "குறுக்கிடப்பட்டது" - } + }, + "reviewStyle": { + "strict": "கடுமையானது", + "balanced": "சமநிலையானது", + "lenient": "தளர்வானது", + "roast": "Roast" + }, + "focusArea": { + "security": "பாதுகாப்பு", + "performance": "செயல்திறன்", + "bugs": "பிழைகள்", + "style": "பாணி", + "testing": "சோதனை", + "documentation": "ஆவணங்கள்" + }, + "gateThreshold": { + "off": "ஆஃப்", + "all": "அனைத்தும்", + "warning": "எச்சரிக்கை", + "critical": "முக்கியமானது" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "குறியீடு மதிப்பாய்வாளர் கவனம் தேவை", + "description": "செயலில் உள்ள GitHub App நிறுவலுடன் Kilo இந்த களஞ்சியத்தை அணுக முடியாததால் குறியீடு மதிப்பாய்வாளர் முடக்கப்பட்டது. GitHub App நிறுவலைப் புதுப்பித்து, பின்னர் குறியீடு மதிப்பாய்வாளரை மீண்டும் இயக்கவும்.", + "recoveryLabel": "GitHub App ஐ புதுப்பி" + }, + "githubIpAllowList": { + "title": "குறியீடு மதிப்பாய்வாளர் கவனம் தேவை", + "description": "இந்த GitHub நிறுவனம் Kilo வைத் தடுக்கும் IP அனுமதி பட்டியலைப் பயன்படுத்துவதால் குறியீடு மதிப்பாய்வாளர் முடக்கப்பட்டது. உதவிக்கு hi@kilocode.ai ஐ தொடர்பு கொண்டு, பின்னர் குறியீடு மதிப்பாய்வாளரை மீண்டும் இயக்கவும்.", + "recoveryLabel": "ஆதரவைத் தொடர்பு கொள்ளவும்" + }, + "gitlabProjectAccessRequired": { + "title": "குறியீடு மதிப்பாய்வாளர் கவனம் தேவை", + "description": "இந்த திட்டத்திற்கு Kilo ஒரு GitLab Project Access Token ஐ உருவாக்க முடியாததால் குறியீடு மதிப்பாய்வாளர் முடக்கப்பட்டது. Maintainer அணுகலை வழங்கவும் அல்லது Project Access Tokens ஐ இயக்கவும், பின்னர் குறியீடு மதிப்பாய்வாளரை மீண்டும் இயக்கவும்.", + "recoveryLabel": "GitLab ஒருங்கிணைப்பைப் புதுப்பி" + }, + "byokInvalidKey": { + "title": "குறியீடு மதிப்பாய்வாளர் கவனம் தேவை", + "description": "தேர்ந்தெடுக்கப்பட்ட BYOK API விசை செல்லுபடியாகாதது, ரத்து செய்யப்பட்டது, அல்லது அனுமதி இல்லாதது என்பதால் குறியீடு மதிப்பாய்வாளர் முடக்கப்பட்டது. விசையைப் புதுப்பிக்கவும் அல்லது வேறு மாதிரியைத் தேர்ந்தெடுக்கவும், பின்னர் குறியீடு மதிப்பாய்வாளரை மீண்டும் இயக்கவும்.", + "recoveryLabel": "BYOK அமைப்புகளைப் புதுப்பி" + }, + "selectedModelUnavailable": { + "title": "குறியீடு மதிப்பாய்வாளர் கவனம் தேவை", + "description": "தேர்ந்தெடுக்கப்பட்ட மாதிரி கிளவுட் முகவர் அமர்வுகளுக்கு கிடைக்காததால் குறியீடு மதிப்பாய்வாளர் முடக்கப்பட்டது. கிடைக்கக்கூடிய மாதிரியைத் தேர்ந்தெடுத்து, பின்னர் குறியீடு மதிப்பாய்வாளரை மீண்டும் இயக்கவும்.", + "recoveryLabel": "குறியீடு மதிப்பாய்வாளர் அமைப்புகளைப் புதுப்பி" + }, + "repeatedRepositoryCloneTimeout": { + "title": "குறியீடு மதிப்பாய்வாளர் கவனம் தேவை", + "description": "இன்று மூன்று களஞ்சிய குளோன் நேரம் முடிவடைந்த பிறகு குறியீடு மதிப்பாய்வாளர் முடக்கப்பட்டது. உதவிக்கு hi@kilocode.ai ஐ தொடர்பு கொண்டு, பின்னர் குறியீடு மதிப்பாய்வாளரை மீண்டும் இயக்கவும்.", + "recoveryLabel": "ஆதரவைத் தொடர்பு கொள்ளவும்" + } + }, + "unknownError": "தெரியாத பிழை" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "கண்டுபிடிப்பு தானியங்கி தீவிர வரம்பிற்கு கீழே உள்ளது. பாதுகாப்பு சோதனைகள் நிறைவேறும்போது கைமுறை சரிசெய்தல் இன்னும் தொடங்கலாம்.", "beforeEnablement": "தானியங்கி திருத்தம் இயக்கப்படுவதற்கு முன் பகுப்பாய்வு முடிந்தது. பாதுகாப்பு சோதனைகள் நிறைவேறும்போது கைமுறை சரிசெய்தல் இன்னும் தொடங்கலாம்.", "generic": "இந்த கண்டுபிடிப்பிற்கு சரிசெய்தல் கிடைக்கவில்லை." + }, + "commandFailure": { + "ownerCapReached": "பகுப்பாய்வு திறன் நிரம்பியுள்ளது. செயலில் உள்ள பகுப்பாய்வு முடிவடையும் வரை காத்திருந்து, பின்னர் மீண்டும் முயற்சிக்கவும்.", + "githubTokenUnavailable": "GitHub அங்கீகாரத்திற்கு கவனம் தேவை. GitHub App ஐ மீண்டும் அங்கீகரிக்கவும், பின்னர் மீண்டும் முயற்சிக்கவும்.", + "githubAuthInvalid": "GitHub அங்கீகாரத்திற்கு கவனம் தேவை. GitHub App ஐ மீண்டும் அங்கீகரிக்கவும், பின்னர் மீண்டும் முயற்சிக்கவும்.", + "findingUnavailable": "கண்டுபிடிப்பு இனி கிடைக்கவில்லை. கண்டுபிடிப்புகளைப் புதுப்பித்து, அது திறந்திருந்தால் மீண்டும் முயற்சிக்கவும்.", + "repositoryUnavailable": "களஞ்சியம் GitHub App க்கு இனி கிடைக்கவில்லை. களஞ்சிய அணுகலைப் புதுப்பித்து, பின்னர் மீண்டும் முயற்சிக்கவும்.", + "invalidDismissTarget": "கண்டுபிடிப்பின் Dependabot இலக்கு செல்லுபடியாகாததால் அதை நிராகரிக்க முடியாது.", + "commandStalled": "வரிசையில் உள்ள செயல் சரியான நேரத்தில் முடிக்கப்படவில்லை. செயலை மீண்டும் முயற்சி செய்.", + "queueRetriesExhausted": "பல முயற்சிகளுக்குப் பிறகும் செயலை முடிக்க முடியவில்லை. செயலை மீண்டும் முயற்சி செய்.", + "queueAdmissionFailed": "வரிசையில் உள்ள செயலை ஏற்க முடியவில்லை. செயலை மீண்டும் முயற்சி செய்.", + "generic": "வரிசையில் உள்ள செயல் தோல்வியடைந்தது. செயலை மீண்டும் முயற்சி செய்." + }, + "analysisMode": { + "auto": "தானியங்கி", + "shallow": "மேலோட்டமான", + "deep": "ஆழமான" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}}ஐ பிடித்தவற்றில் சேர்க்கவும்", "removeFromFavorites": "{{name}}ஐ பிடித்தவற்றிலிருந்து அகற்றவும்", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "அமர்வு மாதிரி" }, "attachmentPreview": { "openFailedRetry": "கோப்பைத் திறக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "கிரெடிட்களைச் சேர்க்கவும்", - "description": "பயன்பாடு தொடர்ந்து இயங்க கிரெடிட்களைச் சேர்க்கவும்." + "description": "பயன்பாடு தொடர்ந்து இயங்க கிரெடிட்களைச் சேர்க்கவும்.", + "billingPage": "பில்லிங் பக்கம்" }, "deviceSessions": { "couldNotLoad": "அமர்வுகளை ஏற்ற முடியவில்லை", @@ -2710,7 +2795,10 @@ "restoreFailed": "வாங்குதல்களை மீட்டமைக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.", "purchaseFailed": "வாங்குதலை முடிக்க முடியவில்லை.", "purchaseStartFailed": "App Store வாங்குதலைத் தொடங்க முடியவில்லை.", - "purchaseOwnedByAnotherAccount": "இந்த Apple கணக்கில் உள்ள Kilo Pass வேறொரு Kilo கணக்கைச் சேர்ந்தது." + "purchaseOwnedByAnotherAccount": "இந்த Apple கணக்கில் உள்ள Kilo Pass வேறொரு Kilo கணக்கைச் சேர்ந்தது.", + "couldNotConnectToAppStore": "App Store உடன் இணைக்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்.", + "noMatchingProducts": "App Store பொருந்தக்கூடிய Kilo Pass தயாரிப்புகளை எதுவும் திருப்பி அனுப்பவில்லை.", + "purchaseMissingSignedTransaction": "App Store வாங்குதலில் கையொப்பமிட்ட பரிவர்த்தனை JWS இல்லை." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "மேம்பாடு தேவை", "sorryTitle": "இதைக் கேட்பதற்கு வருந்துகிறோம்!", "sorryMessage": "எதை மேம்படுத்த வேண்டும் என்பதை எங்களுக்குத் தெரியப்படுத்தவும். ஆப்பின் பொறுப்பாளர் ஒவ்வொரு அறிக்கையையும் படிக்கிறார்!", - "emailUs": "எங்களுக்கு மின்னஞ்சல் செய்யுங்கள்" + "emailUs": "எங்களுக்கு மின்னஞ்சல் செய்யுங்கள்", + "emailSubject": "மொபைல் பயன்பாட்டு கருத்து" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "கிரெடிட் செயல்பாடு இல்லை", "expires": "{{date}} அன்று காலாவதியாகிறது", "title": "கிரெடிட் செயல்பாடு", - "transactionFallback": "கிரெடிட் பரிவர்த்தனை" + "transactionFallback": "கிரெடிட் பரிவர்த்தனை", + "category": { + "organization_custom": "நிறுவன தனிப்பயன்", + "parent_to_child_transfer_in": "பெற்றோரிடமிருந்து குழந்தைக்கு மாற்றம் (உள்)", + "parent_to_child_transfer_out": "பெற்றோரிடமிருந்து குழந்தைக்கு மாற்றம் (வெளி)", + "oss-sponsorship": "OSS நிதியுதவி", + "oss-monthly-reset": "OSS மாதாந்திர மீட்டமைப்பு", + "team-topup-bonus-2025": "குழு டாப்-அப் போனஸ் 2025", + "accounting_adjustment": "கணக்கியல் சரிசெய்தல்", + "credits_expired": "கிரெடிட்கள் காலாவதியானது" + } }, "inviteMember": { "emailError": "செல்லுபடியாகும் மின்னஞ்சல் முகவரியை உள்ளிடவும்", @@ -2840,12 +2939,17 @@ "emptyDescription": "ஒவ்வொரு பில்லிங் சுழற்சியிலும் விலைப்பட்டியல்கள் தானாக உருவாக்கப்படும், மேலும் உங்கள் நிறுவனம் பில்லிங் செய்யப்பட்டவுடன் இங்கே தோன்றும்.", "emptyTitle": "விலைப்பட்டியல்கள் இல்லை", "invoiceFallback": "விலைப்பட்டியல்", - "statusOpen": "திற", - "statusPaid": "செலுத்தப்பட்டது", - "statusVoid": "செல்லாது", "title": "விலைப்பட்டியல்கள்", "downloadFailed": "விலைப்பட்டியலை பதிவிறக்க முடியவில்லை. உங்கள் இணைப்பைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்.", - "sharingUnavailable": "இந்த சாதனத்தில் பகிர்வு கிடைக்கவில்லை." + "sharingUnavailable": "இந்த சாதனத்தில் பகிர்வு கிடைக்கவில்லை.", + "status": { + "paid": "செலுத்தப்பட்டது", + "open": "திற", + "void": "செல்லாது", + "draft": "வரைவு", + "uncollectible": "வசூலிக்க முடியாதது", + "unknown": "தெரியாதது" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "சேகரிக்கப்பட்ட தரவு", "free": "இலவசம்", - "couldNotUpdateFavorites": "பிடித்தவைகளைப் புதுப்பிக்க முடியவில்லை" + "couldNotUpdateFavorites": "பிடித்தவைகளைப் புதுப்பிக்க முடியவில்லை", + "thinkingEffort": { + "none": "எதுவும் இல்லை", + "minimal": "குறைந்தபட்சம்", + "low": "குறைந்த", + "medium": "நடுத்தர", + "high": "உயர்", + "xhigh": "மிக உயர்", + "max": "அதிகபட்சம்" + } } } diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index 17526d4ec2..f39dc70e82 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} ఎంచుకోబడింది, ఎంపికను మార్చడానికి తాప్ చేయండి", "tapToComment": "{{label}}, వ్యాఖ్య చేయడానికి తాప్ చేయండి", - "truncationBanner": "మొదటి {{limit}} / {{total}} మార్చబడిన ఫైళ్లు చూపుతోంది — GitHub API పరిమితి" + "truncationBanner": "మొదటి {{limit}} / {{total}} మార్చబడిన ఫైళ్లు చూపుతోంది — GitHub API పరిమితి", + "statusAdded": "జోడించబడింది", + "statusContext": "సందర్భం", + "statusDeleted": "తొలగించబడింది" }, "linkPasteClipboardEmpty": "క్లిప్బోర్డ్ ఖాళీగా ఉంది", "linkPasteNotAPullRequest": "GitHub పుల్ రిక్వెస్ట్ లింక్ కాదు", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ఈ సమీక్షను ఇలాగే సమర్పించలేము. PR మారి ఉండవచ్చు, లేదా మీ స్వంత పుల్ రిక్వెస్ట్‌ను సమీక్షించలేకపోవచ్చు.", "couldNotPostComment": "వ్యాఖ్యను పోస్ట్ చేయలేకపోయాము.", "couldNotSubmitReview": "సమీక్షను సమర్పించలేకపోయాము. మీ కనెక్షన్ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి." + }, + "operation": { + "couldNotReply": "ప్రత్యుత్తరం ఇవ్వలేకపోయింది.", + "couldNotCompleteAction": "ఈ చర్యను పూర్తి చేయలేకపోయాము.", + "mergeResultDefaultError": "GitHub మెర్జ్ను పూర్తి చేయలేదు." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "చెల్లింపు గడువు ముగిసింది. మీ చెల్లింపు పద్ధతిని నవీకరించండి.", "subscriptionCancels": "చందా {{date}}న రద్దవుతుంది", "trialDaysRemaining": "ట్రయల్: {{remaining}} రోజులు మిగిలి ఉన్నాయి", - "trialEndingSoon": "ట్రయల్ త్వరలో ముగుస్తుంది: {{remaining}}" + "trialEndingSoon": "ట్రయల్ త్వరలో ముగుస్తుంది: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "కొత్తగా ఏముంది", @@ -1189,7 +1201,8 @@ "strongArm": "బలమైన చేయి", "talisman": "టాలిస్మాన్" }, - "remoteSpawnFilesNotSupported": "ఈ ఇన్స్టాన్స్ ఫైల్లను స్వీకరించదు." + "remoteSpawnFilesNotSupported": "ఈ ఇన్స్టాన్స్ ఫైల్లను స్వీకరించదు.", + "instanceSwitcherTitle": "KiloClaw ఇన్స్టాన్స్" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "విఫలమైంది", "cancelled": "రద్దు చేయబడింది", "interrupted": "అంతరాయం కలిగింది" - } + }, + "reviewStyle": { + "strict": "కఠినమైనది", + "balanced": "సమతుల్యం", + "lenient": "సౌమ్యం", + "roast": "Roast" + }, + "focusArea": { + "security": "సెక్యూరిటీ", + "performance": "పనితీరు", + "bugs": "బగ్స్", + "style": "శైలి", + "testing": "టెస్టింగ్", + "documentation": "డాక్యుమెంటేషన్" + }, + "gateThreshold": { + "off": "ఆఫ్", + "all": "అన్నీ", + "warning": "హెచ్చరిక", + "critical": "క్రిటికల్" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewerకు శ్రద్ధ అవసరం", + "description": "చురుకైన GitHub App ఇన్స్టాలేషన్తో Kilo ఈ రిపోజిటరీని యాక్సెస్ చేయలేకపోవడం వల్ల Code Reviewer నిలిపివేయబడింది. GitHub App ఇన్స్టాలేషన్ను అప్డేట్ చేసి, ఆపై Code Reviewerను మళ్ళీ ప్రారంభించండి.", + "recoveryLabel": "GitHub Appను అప్డేట్ చేయండి" + }, + "githubIpAllowList": { + "title": "Code Reviewerకు శ్రద్ధ అవసరం", + "description": "ఈ GitHub సంస్థ Kiloను బ్లాక్ చేసే IP అనుమతి జాబితాను ఉపయోగిస్తున్నందున Code Reviewer నిలిపివేయబడింది. సహాయం కోసం hi@kilocode.aiని సంప్రదించి, ఆపై Code Reviewerను మళ్ళీ ప్రారంభించండి.", + "recoveryLabel": "మద్దతును సంప్రదించండి" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewerకు శ్రద్ధ అవసరం", + "description": "ఈ ప్రాజెక్ట్ కోసం Kilo GitLab Project Access Tokenను సృష్టించలేకపోవడం వల్ల Code Reviewer నిలిపివేయబడింది. Maintainer యాక్సెస్ మంజూరు చేయండి లేదా Project Access Tokens ప్రారంభించండి, ఆపై Code Reviewerను మళ్ళీ ప్రారంభించండి.", + "recoveryLabel": "GitLab ఇంటిగ్రేషన్ను అప్డేట్ చేయండి" + }, + "byokInvalidKey": { + "title": "Code Reviewerకు శ్రద్ధ అవసరం", + "description": "ఎంచుకున్న BYOK API కీ చెల్లదు, రద్దు చేయబడింది లేదా అనుమతి లేకపోవడం వల్ల Code Reviewer నిలిపివేయబడింది. కీని అప్డేట్ చేయండి లేదా మరొక మోడల్ను ఎంచుకోండి, ఆపై Code Reviewerను మళ్ళీ ప్రారంభించండి.", + "recoveryLabel": "BYOK సెట్టింగ్లను అప్డేట్ చేయండి" + }, + "selectedModelUnavailable": { + "title": "Code Reviewerకు శ్రద్ధ అవసరం", + "description": "ఎంచుకున్న మోడల్ క్లౌడ్ ఏజెంట్ సెషన్లకు అందుబాటులో లేకపోవడం వల్ల Code Reviewer నిలిపివేయబడింది. అందుబాటులో ఉన్న మోడల్ను ఎంచుకుని, ఆపై Code Reviewerను మళ్ళీ ప్రారంభించండి.", + "recoveryLabel": "Code Reviewer సెట్టింగ్లను అప్డేట్ చేయండి" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewerకు శ్రద్ధ అవసరం", + "description": "ఈరోజు మూడు రిపోజిటరీ క్లోన్ టైమవుట్ల తర్వాత Code Reviewer నిలిపివేయబడింది. సహాయం కోసం hi@kilocode.aiని సంప్రదించి, ఆపై Code Reviewerను మళ్ళీ ప్రారంభించండి.", + "recoveryLabel": "మద్దతును సంప్రదించండి" + } + }, + "unknownError": "తెలియని లోపం" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ఫలితం స్వయంచాలక తీవ్రత థ్రెషోల్డ్ కంటే తక్కువగా ఉంది. భద్రతా గేట్లు దాటినప్పుడు మాన్యువల్ పరిష్కారం ఇప్పటికీ ప్రారంభమవుతుంది.", "beforeEnablement": "ఆటో నివారణ ప్రారంభించబడటానికి ముందు విశ్లేషణ పూర్తయింది. భద్రతా గేట్లు దాటినప్పుడు మాన్యువల్ పరిష్కారం ఇప్పటికీ ప్రారంభమవుతుంది.", "generic": "ఈ ఫలితానికి పరిష్కారం అందుబాటులో లేదు." + }, + "commandFailure": { + "ownerCapReached": "విశ్లేషణ సామర్థ్యం నిండిపోయింది. చురుకైన విశ్లేషణ పూర్తయ్యే వరకు వేచి ఉండి, ఆపై మళ్ళీ ప్రయత్నించండి.", + "githubTokenUnavailable": "GitHub ఆథరైజేషన్కు శ్రద్ధ అవసరం. GitHub Appను మళ్ళీ అథరైజ్ చేసి, ఆపై మళ్ళీ ప్రయత్నించండి.", + "githubAuthInvalid": "GitHub ఆథరైజేషన్కు శ్రద్ధ అవసరం. GitHub Appను మళ్ళీ అథరైజ్ చేసి, ఆపై మళ్ళీ ప్రయత్నించండి.", + "findingUnavailable": "ఫలితం ఇక అందుబాటులో లేదు. ఫలితాలను రిఫ్రెష్ చేసి, అది ఇంకా తెరిచి ఉంటే మళ్ళీ ప్రయత్నించండి.", + "repositoryUnavailable": "రిపోజిటరీ ఇక GitHub Appకు అందుబాటులో లేదు. రిపోజిటరీ యాక్సెస్ను రిఫ్రెష్ చేసి, ఆపై మళ్ళీ ప్రయత్నించండి.", + "invalidDismissTarget": "ఫలితం యొక్క Dependabot లక్ష్యం చెల్లదు కాబట్టి దానిని తోసివేయలేరు.", + "commandStalled": "క్యూ చేసిన చర్య సమయానికి పూర్తి కాలేదు. చర్యను మళ్ళీ ప్రయత్నించండి.", + "queueRetriesExhausted": "అనేక ప్రయత్నాల తర్వాత చర్యను పూర్తి చేయలేకపోయాము. చర్యను మళ్ళీ ప్రయత్నించండి.", + "queueAdmissionFailed": "క్యూ చేసిన చర్యను అంగీకరించలేకపోయాము. చర్యను మళ్ళీ ప్రయత్నించండి.", + "generic": "క్యూ చేసిన చర్య విఫలమైంది. చర్యను మళ్ళీ ప్రయత్నించండి." + }, + "analysisMode": { + "auto": "ఆటో", + "shallow": "ఉపరితల", + "deep": "లోతైన" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} ఫేవరిట్లకు జోడించండి", "removeFromFavorites": "{{name}} ఫేవరిట్ల నుండి తీసివేయండి", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "సెషన్ మోడల్" }, "attachmentPreview": { "openFailedRetry": "ఫైల్ను తెరవడం విఫలమైంది. దయచేసి మళ్లీ ప్రయత్నించండి.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "క్రెడిట్లను జోడించండి", - "description": "వినియోగం కొనసాగడానికి క్రెడిట్లను జోడించండి." + "description": "వినియోగం కొనసాగడానికి క్రెడిట్లను జోడించండి.", + "billingPage": "బిల్లింగ్ పేజీ" }, "deviceSessions": { "couldNotLoad": "సెషన్లను లోడ్ చేయలేకపోయాము", @@ -2710,7 +2795,10 @@ "restoreFailed": "కొనుగోళ్లను పునరుద్ధరించడంలో విఫలమైంది. మళ్లీ ప్రయత్నించండి.", "purchaseFailed": "కొనుగోలును పూర్తి చేయడంలో విఫలమైంది.", "purchaseStartFailed": "యాప్ స్టోర్ కొనుగోలును ప్రారంభించడంలో విఫలమైంది.", - "purchaseOwnedByAnotherAccount": "ఈ యాపిల్ ఖాతాలోని Kilo Pass వేరే Kilo ఖాతాకు చెందుతుంది." + "purchaseOwnedByAnotherAccount": "ఈ యాపిల్ ఖాతాలోని Kilo Pass వేరే Kilo ఖాతాకు చెందుతుంది.", + "couldNotConnectToAppStore": "App Storeకు కనెక్ట్ చేయలేకపోయింది. మీ కనెక్షన్ను తనిఖీ చేసి మళ్ళీ ప్రయత్నించండి.", + "noMatchingProducts": "App Store సరిపోలే Kilo Pass ఉత్పత్తులను ఏవీ తిరిగి ఇవ్వలేదు.", + "purchaseMissingSignedTransaction": "App Store కొనుగోలులో సంతకం చేసిన లావాదేవీ JWS చేర్చబడలేదు." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "మెరుగుదల అవసరం", "sorryTitle": "విని మేము విచారిస్తున్నాము!", "sorryMessage": "ఏమి మెరుగుపరచాలో దయచేసి మాకు తెలియజేయండి. యాప్ బాధ్యత వహించే ఇంజనీర్ ప్రతి రిపోర్ట్ను చదువుతారు!", - "emailUs": "మాకు ఇమెయిల్ చేయండి" + "emailUs": "మాకు ఇమెయిల్ చేయండి", + "emailSubject": "మొబైల్ యాప్ ఫీడ్బ్యాక్" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "క్రెడిట్ కార్యాచరణ లేదు", "expires": "{{date}}న గడువు ముగుస్తుంది", "title": "క్రెడిట్ కార్యాచరణ", - "transactionFallback": "క్రెడిట్ లావాదేవీ" + "transactionFallback": "క్రెడిట్ లావాదేవీ", + "category": { + "organization_custom": "సంస్థ కస్టమ్", + "parent_to_child_transfer_in": "పేరెంట్ నుండి చైల్డ్కు బదిలీ (లోపలికి)", + "parent_to_child_transfer_out": "పేరెంట్ నుండి చైల్డ్కు బదిలీ (బయటకి)", + "oss-sponsorship": "OSS స్పాన్సర్షిప్", + "oss-monthly-reset": "OSS నెలవారీ రీసెట్", + "team-topup-bonus-2025": "టీమ్ టాప్-అప్ బోనస్ 2025", + "accounting_adjustment": "అకౌంటింగ్ సర్దుబాటు", + "credits_expired": "క్రెడిట్లు గడువు ముగిశాయి" + } }, "inviteMember": { "emailError": "చెల్లుబాటు అయ్యే ఇమెయిల్ చిరునామాను నమోదు చేయండి", @@ -2840,12 +2939,17 @@ "emptyDescription": "ఇన్వాయిస్లు ప్రతి బిల్లింగ్ చక్రానికి స్వయంచాలకంగా ఉత్పత్తి చేయబడతాయి మరియు మీ ఆర్గనైజేషన్కు బిల్లు వేయబడిన తర్వాత ఇక్కడ కనిపిస్తాయి.", "emptyTitle": "ఇన్వాయిస్లు లేవు", "invoiceFallback": "ఇన్వాయిస్", - "statusOpen": "ఓపెన్", - "statusPaid": "చెల్లించినది", - "statusVoid": "రద్దు", "title": "ఇన్వాయిస్లు", "downloadFailed": "ఇన్వాయిస్ డౌన్‌లోడ్ చేయలేకపోయాము. మీ కనెక్షన్ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి.", - "sharingUnavailable": "ఈ పరికరంలో షేరింగ్ అందుబాటులో లేదు." + "sharingUnavailable": "ఈ పరికరంలో షేరింగ్ అందుబాటులో లేదు.", + "status": { + "paid": "చెల్లించినది", + "open": "ఓపెన్", + "void": "రద్దు", + "draft": "డ్రాఫ్ట్", + "uncollectible": "వసూలు చేయలేనిది", + "unknown": "తెలియనిది" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "సేకరించిన డేటా", "free": "ఉచితం", - "couldNotUpdateFavorites": "ఫేవరిట్లను నవీకరించలేకపోయింది" + "couldNotUpdateFavorites": "ఫేవరిట్లను నవీకరించలేకపోయింది", + "thinkingEffort": { + "none": "ఏదీ లేదు", + "minimal": "కనిష్టం", + "low": "తక్కువ", + "medium": "మధ్యస్థం", + "high": "అధికం", + "xhigh": "అత్యధికం", + "max": "గరిష్టం" + } } } diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index e9788bff4e..6e10fd0432 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "เลือก {{label}} แล้ว แตะเพื่อเปลี่ยนการเลือก", "tapToComment": "{{label}}, แตะเพื่อแสดงความคิดเห็น", - "truncationBanner": "กำลังแสดง {{limit}} ไฟล์แรกจากทั้งหมด {{total}} ไฟล์ที่เปลี่ยนแปลง — ขีดจำกัด API ของ GitHub" + "truncationBanner": "กำลังแสดง {{limit}} ไฟล์แรกจากทั้งหมด {{total}} ไฟล์ที่เปลี่ยนแปลง — ขีดจำกัด API ของ GitHub", + "statusAdded": "เพิ่มแล้ว", + "statusContext": "บริบท", + "statusDeleted": "ลบแล้ว" }, "linkPasteClipboardEmpty": "คลิปบอร์ดว่างเปล่า", "linkPasteNotAPullRequest": "ไม่ใช่ลิงก์คำขอดึงของ GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "ไม่สามารถส่งรีวิวนี้ในรูปแบบปัจจุบันได้ PR อาจมีการเปลี่ยนแปลง หรือคุณไม่สามารถรีวิว pull request ของตัวเองได้", "couldNotPostComment": "ไม่สามารถโพสต์ความคิดเห็นได้", "couldNotSubmitReview": "ไม่สามารถส่งรีวิวได้ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง" + }, + "operation": { + "couldNotReply": "ไม่สามารถตอบกลับได้", + "couldNotCompleteAction": "ไม่สามารถดำเนินการนี้ให้เสร็จสมบูรณ์ได้", + "mergeResultDefaultError": "GitHub ไม่ได้รวมให้เสร็จสมบูรณ์" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "การชำระเงินค้างชำระ โปรดอัปเดตวิธีชำระเงินของคุณ", "subscriptionCancels": "การสมัครสมาชิกจะยกเลิกใน {{date}}", "trialDaysRemaining": "ทดลองใช้: เหลือ {{remaining}} วัน", - "trialEndingSoon": "ทดลองใช้จะสิ้นสุดเร็วๆ นี้: {{remaining}}" + "trialEndingSoon": "ทดลองใช้จะสิ้นสุดเร็วๆ นี้: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "มีอะไรใหม่", @@ -1189,7 +1201,8 @@ "strongArm": "แขนแข็งแรง", "talisman": "เครื่องราง" }, - "remoteSpawnFilesNotSupported": "อินสแตนซ์นี้ไม่สามารถรับไฟล์ได้" + "remoteSpawnFilesNotSupported": "อินสแตนซ์นี้ไม่สามารถรับไฟล์ได้", + "instanceSwitcherTitle": "อินสแตนซ์ KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ล้มเหลว", "cancelled": "ยกเลิกแล้ว", "interrupted": "ถูกขัดจังหวะ" - } + }, + "reviewStyle": { + "strict": "เข้มงวด", + "balanced": "สมดุล", + "lenient": "ผ่อนปรน", + "roast": "Roast" + }, + "focusArea": { + "security": "ความปลอดภัย", + "performance": "ประสิทธิภาพ", + "bugs": "บั๊ก", + "style": "สไตล์", + "testing": "การทดสอบ", + "documentation": "เอกสารประกอบ" + }, + "gateThreshold": { + "off": "ปิด", + "all": "ทั้งหมด", + "warning": "คำเตือน", + "critical": "วิกฤต" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "ผู้ตรวจสอบโค้ดต้องการความสนใจ", + "description": "ผู้ตรวจสอบโค้ดถูกปิดใช้งานเนื่องจาก Kilo ไม่สามารถเข้าถึงที่เก็บนี้ด้วยการติดตั้ง GitHub App ที่ใช้งานอยู่ อัปเดตการติดตั้ง GitHub App แล้วเปิดผู้ตรวจสอบโค้ดอีกครั้ง", + "recoveryLabel": "อัปเดต GitHub App" + }, + "githubIpAllowList": { + "title": "ผู้ตรวจสอบโค้ดต้องการความสนใจ", + "description": "ผู้ตรวจสอบโค้ดถูกปิดใช้งานเนื่องจากองค์กร GitHub นี้ใช้รายการอนุญาต IP ที่บล็อก Kilo ติดต่อ hi@kilocode.ai เพื่อขอความช่วยเหลือ แล้วเปิดผู้ตรวจสอบโค้ดอีกครั้ง", + "recoveryLabel": "ติดต่อฝ่ายสนับสนุน" + }, + "gitlabProjectAccessRequired": { + "title": "ผู้ตรวจสอบโค้ดต้องการความสนใจ", + "description": "ผู้ตรวจสอบโค้ดถูกปิดใช้งานเนื่องจาก Kilo ไม่สามารถสร้าง GitLab Project Access Token สำหรับโปรเจกต์นี้ได้ ให้สิทธิ์การเข้าถึงแบบ Maintainer หรือเปิดใช้งาน Project Access Tokens แล้วเปิดผู้ตรวจสอบโค้ดอีกครั้ง", + "recoveryLabel": "อัปเดตการผสานรวม GitLab" + }, + "byokInvalidKey": { + "title": "ผู้ตรวจสอบโค้ดต้องการความสนใจ", + "description": "ผู้ตรวจสอบโค้ดถูกปิดใช้งานเนื่องจากคีย์ API BYOK ที่เลือกไม่ถูกต้อง ถูกเพิกถอน หรือขาดสิทธิ์ อัปเดตคีย์หรือเลือกโมเดลอื่น แล้วเปิดผู้ตรวจสอบโค้ดอีกครั้ง", + "recoveryLabel": "อัปเดตการตั้งค่า BYOK" + }, + "selectedModelUnavailable": { + "title": "ผู้ตรวจสอบโค้ดต้องการความสนใจ", + "description": "ผู้ตรวจสอบโค้ดถูกปิดใช้งานเนื่องจากโมเดลที่เลือกไม่พร้อมใช้งานสำหรับเซสชันคลาวด์เอเจนต์ เลือกโมเดลที่พร้อมใช้งาน แล้วเปิดผู้ตรวจสอบโค้ดอีกครั้ง", + "recoveryLabel": "อัปเดตการตั้งค่าผู้ตรวจสอบโค้ด" + }, + "repeatedRepositoryCloneTimeout": { + "title": "ผู้ตรวจสอบโค้ดต้องการความสนใจ", + "description": "ผู้ตรวจสอบโค้ดถูกปิดใช้งานหลังจากการหมดเวลาการคัดลอกที่เก็บสามครั้งในวันนี้ ติดต่อ hi@kilocode.ai เพื่อขอความช่วยเหลือ แล้วเปิดผู้ตรวจสอบโค้ดอีกครั้ง", + "recoveryLabel": "ติดต่อฝ่ายสนับสนุน" + } + }, + "unknownError": "ข้อผิดพลาดที่ไม่รู้จัก" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "ผลการค้นหาต่ำกว่าเกณฑ์ความรุนแรงอัตโนมัติ การแก้ไขด้วยตนเองยังเริ่มได้เมื่อเกตความปลอดภัยผ่าน", "beforeEnablement": "การวิเคราะห์เสร็จสิ้นก่อนเปิดการแก้ไขอัตโนมัติ การแก้ไขด้วยตนเองยังเริ่มได้เมื่อเกตความปลอดภัยผ่าน", "generic": "การแก้ไขไม่พร้อมใช้งานสำหรับผลการค้นหานี้" + }, + "commandFailure": { + "ownerCapReached": "ความจุการวิเคราะห์เต็ม รอให้การวิเคราะห์ที่กำลังทำงานเสร็จสิ้น แล้วลองอีกครั้ง", + "githubTokenUnavailable": "การอนุญาต GitHub ต้องได้รับการดูแล อนุมัติ GitHub App อีกครั้ง แล้วลองอีกครั้ง", + "githubAuthInvalid": "การอนุญาต GitHub ต้องได้รับการดูแล อนุมัติ GitHub App อีกครั้ง แล้วลองอีกครั้ง", + "findingUnavailable": "ไม่มี finding นี้แล้ว รีเฟรช findings แล้วลองอีกครั้งหากยังเปิดอยู่", + "repositoryUnavailable": "Repository ไม่พร้อมใช้งานสำหรับ GitHub App อีกต่อไป รีเฟรชการเข้าถึง repository แล้วลองอีกครั้ง", + "invalidDismissTarget": "ไม่สามารถละเว้น finding ได้เนื่องจากเป้าหมาย Dependabot ไม่ถูกต้อง", + "commandStalled": "การดำเนินการที่จัดคิวไม่เสร็จสิ้นทันเวลา ลองดำเนินการอีกครั้ง", + "queueRetriesExhausted": "ไม่สามารถดำเนินการให้เสร็จสิ้นได้หลังจากการพยายามหลายครั้ง ลองดำเนินการอีกครั้ง", + "queueAdmissionFailed": "ไม่สามารถรับการดำเนินการที่จัดคิวได้ ลองดำเนินการอีกครั้ง", + "generic": "การดำเนินการที่จัดคิวล้มเหลว ลองดำเนินการอีกครั้ง" + }, + "analysisMode": { + "auto": "อัตโนมัติ", + "shallow": "ตื้น", + "deep": "ลึก" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "เพิ่ม {{name}} ในรายการโปรด", "removeFromFavorites": "นำ {{name}} ออกจากรายการโปรด", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "โมเดลเซสชัน" }, "attachmentPreview": { "openFailedRetry": "เปิดไฟล์ไม่สำเร็จ กรุณาลองอีกครั้ง", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "เพิ่มเครดิต", - "description": "เพิ่มเครดิตเพื่อให้การใช้งานดำเนินต่อไป" + "description": "เพิ่มเครดิตเพื่อให้การใช้งานดำเนินต่อไป", + "billingPage": "หน้าเรียกเก็บเงิน" }, "deviceSessions": { "couldNotLoad": "โหลดเซสชันไม่สำเร็จ", @@ -2710,7 +2795,10 @@ "restoreFailed": "คืนค่าการซื้อไม่สำเร็จ ลองอีกครั้ง", "purchaseFailed": "ทำการซื้อไม่สำเร็จ", "purchaseStartFailed": "เริ่มการซื้อใน App Store ไม่สำเร็จ", - "purchaseOwnedByAnotherAccount": "Kilo Pass ใน Apple Account นี้เป็นของบัญชี Kilo อื่น" + "purchaseOwnedByAnotherAccount": "Kilo Pass ใน Apple Account นี้เป็นของบัญชี Kilo อื่น", + "couldNotConnectToAppStore": "ไม่สามารถเชื่อมต่อกับ App Store ได้ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง", + "noMatchingProducts": "App Store ไม่ส่งคืนผลิตภัณฑ์ Kilo Pass ที่ตรงกัน", + "purchaseMissingSignedTransaction": "การซื้อใน App Store ไม่รวมธุรกรรม JWS ที่ลงนาม" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "ต้องปรับปรุง", "sorryTitle": "เราขอโทษที่ได้ยินแบบนั้น!", "sorryMessage": "กรุณาแจ้งให้เรารู้ว่าต้องปรับปรุงอะไรบ้าง วิศวกรที่รับผิดชอบแอปอ่านทุกรายงาน!", - "emailUs": "ส่งอีเมลถึงเรา" + "emailUs": "ส่งอีเมลถึงเรา", + "emailSubject": "ข้อเสนอแนะแอปมือถือ" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "ไม่มีกิจกรรมเครดิต", "expires": "หมดอายุ {{date}}", "title": "กิจกรรมเครดิต", - "transactionFallback": "ธุรกรรมเครดิต" + "transactionFallback": "ธุรกรรมเครดิต", + "category": { + "organization_custom": "องค์กรกำหนดเอง", + "parent_to_child_transfer_in": "โอนเข้าจากองค์กรแม่ไปยังองค์กรลูก", + "parent_to_child_transfer_out": "โอนออกจากองค์กรแม่ไปยังองค์กรลูก", + "oss-sponsorship": "การสนับสนุน OSS", + "oss-monthly-reset": "การรีเซ็ตรายเดือน OSS", + "team-topup-bonus-2025": "โบนัสเติมเงินทีม 2025", + "accounting_adjustment": "การปรับปรุงบัญชี", + "credits_expired": "เครดิตหมดอายุ" + } }, "inviteMember": { "emailError": "ป้อนที่อยู่อีเมลที่ถูกต้อง", @@ -2840,12 +2939,17 @@ "emptyDescription": "ใบแจ้งหนี้ถูกสร้างโดยอัตโนมัติในแต่ละรอบการเรียกเก็บเงิน และจะปรากฏที่นี่เมื่อองค์กรของคุณถูกเรียกเก็บเงินแล้ว", "emptyTitle": "ไม่มีใบแจ้งหนี้", "invoiceFallback": "ใบแจ้งหนี้", - "statusOpen": "เปิด", - "statusPaid": "ชำระแล้ว", - "statusVoid": "เป็นโมฆะ", "title": "ใบแจ้งหนี้", "downloadFailed": "ไม่สามารถดาวน์โหลดใบแจ้งหนี้ได้ ตรวจสอบการเชื่อมต่อของคุณแล้วลองอีกครั้ง", - "sharingUnavailable": "การแชร์ไม่พร้อมใช้งานบนอุปกรณ์นี้" + "sharingUnavailable": "การแชร์ไม่พร้อมใช้งานบนอุปกรณ์นี้", + "status": { + "paid": "ชำระแล้ว", + "open": "เปิด", + "void": "เป็นโมฆะ", + "draft": "ฉบับร่าง", + "uncollectible": "เก็บไม่ได้", + "unknown": "ไม่ทราบ" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "ข้อมูลที่รวบรวม", "free": "ฟรี", - "couldNotUpdateFavorites": "ไม่สามารถอัปเดตรายการโปรดได้" + "couldNotUpdateFavorites": "ไม่สามารถอัปเดตรายการโปรดได้", + "thinkingEffort": { + "none": "ไม่มี", + "minimal": "น้อยที่สุด", + "low": "ต่ำ", + "medium": "ปานกลาง", + "high": "สูง", + "xhigh": "สูงมาก", + "max": "สูงสุด" + } } } diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index 377ec79778..22fccd25c7 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -382,7 +382,11 @@ "paymentPastDue": "Ödeme gecikti. Lütfen ödeme yönteminizi güncelleyin.", "subscriptionCancels": "Abonelik {{date}} tarihinde iptal ediliyor", "trialDaysRemaining": "Deneme: {{remaining}} gün kaldı", - "trialEndingSoon": "Deneme yakında bitiyor: {{remaining}}" + "trialEndingSoon": "Deneme yakında bitiyor: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Yenilikler", @@ -750,7 +754,8 @@ "strongArm": "Güçlü kol", "talisman": "Tılsım" }, - "remoteSpawnFilesNotSupported": "Bu instance dosya alamıyor." + "remoteSpawnFilesNotSupported": "Bu instance dosya alamıyor.", + "instanceSwitcherTitle": "KiloClaw örneği" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "Başarısız oldu", "cancelled": "İptal edildi", "interrupted": "Kesintiye uğradı" - } + }, + "reviewStyle": { + "strict": "Katı", + "balanced": "Dengeli", + "lenient": "Hoşgörülü", + "roast": "Roast" + }, + "focusArea": { + "security": "Güvenlik", + "performance": "Performans", + "bugs": "Hatalar", + "style": "Stil", + "testing": "Test", + "documentation": "Belgeler" + }, + "gateThreshold": { + "off": "Kapalı", + "all": "Tümü", + "warning": "Uyarı", + "critical": "Kritik" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Kod İnceleyici ilgi gerektiriyor", + "description": "Kod İnceleyici, Kilo'nun bu depoya etkin bir GitHub Uygulaması kurulumuyla erişememesi nedeniyle devre dışı bırakıldı. GitHub Uygulaması kurulumunu güncelleyin, ardından Kod İnceleyici'yi tekrar etkinleştirin.", + "recoveryLabel": "GitHub Uygulamasını güncelle" + }, + "githubIpAllowList": { + "title": "Kod İnceleyici ilgi gerektiriyor", + "description": "Kod İnceleyici, bu GitHub kuruluşunun Kilo'yu engelleyen bir IP izin listesi kullanması nedeniyle devre dışı bırakıldı. Yardım için hi@kilocode.ai adresine ulaşın, ardından Kod İnceleyici'yi tekrar etkinleştirin.", + "recoveryLabel": "Destekle iletişime geç" + }, + "gitlabProjectAccessRequired": { + "title": "Kod İnceleyici ilgi gerektiriyor", + "description": "Kod İnceleyici, Kilo'nun bu proje için bir GitLab Proje Erişim Jetonu oluşturamaması nedeniyle devre dışı bırakıldı. Sahip erişimi verin veya Proje Erişim Jetonlarını etkinleştirin, ardından Kod İnceleyici'yi tekrar etkinleştirin.", + "recoveryLabel": "GitLab entegrasyonunu güncelle" + }, + "byokInvalidKey": { + "title": "Kod İnceleyici ilgi gerektiriyor", + "description": "Kod İnceleyici, seçilen BYOK API anahtarının geçersiz, iptal edilmiş veya izinsiz olması nedeniyle devre dışı bırakıldı. Anahtarı güncelleyin veya başka bir model seçin, ardından Kod İnceleyici'yi tekrar etkinleştirin.", + "recoveryLabel": "BYOK ayarlarını güncelle" + }, + "selectedModelUnavailable": { + "title": "Kod İnceleyici ilgi gerektiriyor", + "description": "Kod İnceleyici, seçilen modelin bulut ajan oturumları için kullanılamaması nedeniyle devre dışı bırakıldı. Kullanılabilir bir model seçin, ardından Kod İnceleyici'yi tekrar etkinleştirin.", + "recoveryLabel": "Kod İnceleyici ayarlarını güncelle" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Kod İnceleyici ilgi gerektiriyor", + "description": "Kod İnceleyici, bugün üç depo klonlama zaman aşımından sonra devre dışı bırakıldı. Yardım için hi@kilocode.ai adresine ulaşın, ardından Kod İnceleyici'yi tekrar etkinleştirin.", + "recoveryLabel": "Destekle iletişime geç" + } + }, + "unknownError": "Bilinmeyen hata" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "Bulgu, otomatik önem derecesi eşiğinin altında. Güvenlik kapıları geçtiğinde manuel iyileştirme yine de başlayabilir.", "beforeEnablement": "Analiz, Otomatik İyileştirme etkinleştirilmeden önce tamamlandı. Güvenlik kapıları geçtiğinde manuel iyileştirme yine de başlayabilir.", "generic": "Bu bulgu için iyileştirme kullanılamıyor." + }, + "commandFailure": { + "ownerCapReached": "Analiz kapasitesi dolu. Etkin bir analizin bitmesini bekleyin, ardından tekrar deneyin.", + "githubTokenUnavailable": "GitHub yetkilendirmesi ilgi gerektiriyor. GitHub Uygulamasını yeniden yetkilendirin, ardından tekrar deneyin.", + "githubAuthInvalid": "GitHub yetkilendirmesi ilgi gerektiriyor. GitHub Uygulamasını yeniden yetkilendirin, ardından tekrar deneyin.", + "findingUnavailable": "Bu bulgu artık kullanılamıyor. Bulguları yenileyin ve açık kalırsa tekrar deneyin.", + "repositoryUnavailable": "Depo artık GitHub Uygulaması için kullanılamıyor. Depo erişimini yenileyin, ardından tekrar deneyin.", + "invalidDismissTarget": "Dependabot hedefi geçersiz olduğu için bulgu yok sayılamıyor.", + "commandStalled": "Kuyruğa alınan işlem zamanında tamamlanmadı. İşlemi tekrar dene.", + "queueRetriesExhausted": "İşlem birkaç denemeden sonra tamamlanamadı. İşlemi tekrar dene.", + "queueAdmissionFailed": "Kuyruğa alınan işlem kabul edilemedi. İşlemi tekrar dene.", + "generic": "Kuyruğa alınan işlem başarısız oldu. İşlemi tekrar dene." + }, + "analysisMode": { + "auto": "Otomatik", + "shallow": "Yüzeysel", + "deep": "Derin" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "{{name}} favorilere ekle", "removeFromFavorites": "{{name}} favorilerden kaldır", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Orta" + "thinkingEffortMedium": "Orta", + "sessionModel": "Oturum modeli" }, "attachmentPreview": { "openFailedRetry": "Dosya açılamadı. Lütfen tekrar deneyin.", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "Kredi ekle", - "description": "Kullanımın sürmesi için kredi ekleyin." + "description": "Kullanımın sürmesi için kredi ekleyin.", + "billingPage": "faturalandırma sayfası" }, "deviceSessions": { "couldNotLoad": "Oturumlar yüklenemedi", @@ -2271,7 +2348,10 @@ "restoreFailed": "Satın alımlar geri yüklenemedi. Tekrar deneyin.", "purchaseFailed": "Satın alma tamamlanamadı.", "purchaseStartFailed": "App Store satın alımı başlatılamadı.", - "purchaseOwnedByAnotherAccount": "Bu Apple Hesabındaki Kilo Pass farklı bir Kilo hesabına ait." + "purchaseOwnedByAnotherAccount": "Bu Apple Hesabındaki Kilo Pass farklı bir Kilo hesabına ait.", + "couldNotConnectToAppStore": "App Store'a bağlanılamadı. Bağlantınızı kontrol edin ve tekrar deneyin.", + "noMatchingProducts": "App Store eşleşen Kilo Pass ürünü döndürmedi.", + "purchaseMissingSignedTransaction": "App Store satın alımı imzalı bir işlem JWS'si içermiyor." }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "Seçilen {{label}}, seçimi değiştirmek için dokunun", "tapToComment": "{{label}}, yorum yapmak için dokunun", - "truncationBanner": "Değiştirilen dosyaların ilk {{limit}} tanesi gösteriliyor (toplam {{total}}) — GitHub API sınırı" + "truncationBanner": "Değiştirilen dosyaların ilk {{limit}} tanesi gösteriliyor (toplam {{total}}) — GitHub API sınırı", + "statusAdded": "Eklendi", + "statusContext": "Bağlam", + "statusDeleted": "Silindi" }, "linkPasteClipboardEmpty": "Pano boş", "linkPasteNotAPullRequest": "GitHub çekme isteği bağlantısı değil", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "Bu inceleme bu şekilde gönderilemiyor. PR değişmiş olabilir ya da kendi pull request'inizi inceleyemezsiniz.", "couldNotPostComment": "Yorum gönderilemedi.", "couldNotSubmitReview": "İnceleme gönderilemedi. Bağlantını kontrol et ve tekrar dene." + }, + "operation": { + "couldNotReply": "Yanıt verilemedi.", + "couldNotCompleteAction": "Bu işlem tamamlanamadı.", + "mergeResultDefaultError": "GitHub birleştirmeyi tamamlamadı." } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "Kredi etkinliği yok", "expires": "Son kullanma: {{date}}", "title": "Kredi etkinliği", - "transactionFallback": "Kredi işlemi" + "transactionFallback": "Kredi işlemi", + "category": { + "organization_custom": "Kuruluş özel", + "parent_to_child_transfer_in": "Üst kuruluştan alt kuruluşa giriş transferi", + "parent_to_child_transfer_out": "Üst kuruluştan alt kuruluşa çıkış transferi", + "oss-sponsorship": "OSS sponsorluğu", + "oss-monthly-reset": "OSS aylık sıfırlama", + "team-topup-bonus-2025": "Ekip bakiye yükleme bonusu 2025", + "accounting_adjustment": "Muhasebe düzeltmesi", + "credits_expired": "Kredilerin süresi doldu" + } }, "hub": { "balance": "Bakiye", @@ -2837,11 +2935,16 @@ "emptyTitle": "Fatura yok", "invoiceFallback": "Fatura", "title": "Faturalar", - "statusPaid": "Ödendi", - "statusOpen": "Açık", - "statusVoid": "Geçersiz", "downloadFailed": "Fatura indirilemedi. Bağlantını kontrol et ve tekrar dene.", - "sharingUnavailable": "Paylaşım bu cihazda kullanılamıyor." + "sharingUnavailable": "Paylaşım bu cihazda kullanılamıyor.", + "status": { + "paid": "Ödendi", + "open": "Açık", + "void": "Geçersiz", + "draft": "Taslak", + "uncollectible": "Tahsil edilemez", + "unknown": "Bilinmiyor" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "Kilo uygulamasını nasıl buluyorsunuz?", "rateKilo": "Kilo'yu değerlendir", "sorryMessage": "Lütfen neyin daha iyi olması gerektiğini bize bildirin. Uygulamadan sorumlu mühendis her raporu tek tek okur!", - "sorryTitle": "Bunu duyduğumuza üzüldük!" + "sorryTitle": "Bunu duyduğumuza üzüldük!", + "emailSubject": "mobil uygulama geri bildirimi" }, "authErrors": { "emailAlreadyUsed": "Bu e-posta ile farklı bir oturum açma yöntemine sahip bir hesap zaten mevcut. Başka bir yöntem deneyin veya '$t(login.moreSignInOptions)'ni kullanın.", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Toplanan veriler", "free": "Ücretsiz", - "couldNotUpdateFavorites": "Sık kullanılanlar güncellenemedi" + "couldNotUpdateFavorites": "Sık kullanılanlar güncellenemedi", + "thinkingEffort": { + "none": "Yok", + "minimal": "Minimum", + "low": "Düşük", + "medium": "Orta", + "high": "Yüksek", + "xhigh": "Çok yüksek", + "max": "Maksimum" + } } } diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 45826d5b6c..67a05c7616 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -384,7 +384,11 @@ "paymentPastDue": "Платіж прострочено. Оновіть спосіб оплати.", "subscriptionCancels": "Підписка скасовується {{date}}", "trialDaysRemaining": "Пробний період: залишилося {{remaining}} дн.", - "trialEndingSoon": "Пробний період завершується незабаром: {{remaining}}" + "trialEndingSoon": "Пробний період завершується незабаром: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Що нового", @@ -754,7 +758,8 @@ "strongArm": "Сильна рука", "talisman": "Талісман" }, - "remoteSpawnFilesNotSupported": "Цей екземпляр не може отримувати файли." + "remoteSpawnFilesNotSupported": "Цей екземпляр не може отримувати файли.", + "instanceSwitcherTitle": "Екземпляр KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -952,7 +957,60 @@ "failed": "Не вдалося", "cancelled": "Скасовано", "interrupted": "Перервано" - } + }, + "reviewStyle": { + "strict": "Суворий", + "balanced": "Збалансований", + "lenient": "Поблажливий", + "roast": "Roast" + }, + "focusArea": { + "security": "Безпека", + "performance": "Продуктивність", + "bugs": "Помилки", + "style": "Стиль", + "testing": "Тестування", + "documentation": "Документація" + }, + "gateThreshold": { + "off": "Вимкнено", + "all": "Усі", + "warning": "Попередження", + "critical": "Критичний" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer потребує уваги", + "description": "Code Reviewer було вимкнено, оскільки Kilo не може отримати доступ до цього репозиторію з активною установкою застосунку GitHub. Оновіть установку застосунку GitHub, а потім знову ввімкніть Code Reviewer.", + "recoveryLabel": "Оновити застосунок GitHub" + }, + "githubIpAllowList": { + "title": "Code Reviewer потребує уваги", + "description": "Code Reviewer було вимкнено, оскільки ця організація GitHub використовує список дозволених IP-адрес, який блокує Kilo. Зверніться по допомогу на hi@kilocode.ai, а потім знову ввімкніть Code Reviewer.", + "recoveryLabel": "Звернутися до підтримки" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer потребує уваги", + "description": "Code Reviewer було вимкнено, оскільки Kilo не може створити токен доступу до проєкту GitLab для цього проєкту. Надайте доступ Maintainer або ввімкніть Project Access Tokens, а потім знову ввімкніть Code Reviewer.", + "recoveryLabel": "Оновити інтеграцію GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer потребує уваги", + "description": "Code Reviewer було вимкнено, оскільки вибраний ключ API BYOK недійсний, відкликаний або не має дозволу. Оновіть ключ або виберіть іншу модель, а потім знову ввімкніть Code Reviewer.", + "recoveryLabel": "Оновити налаштування BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer потребує уваги", + "description": "Code Reviewer було вимкнено, оскільки вибрана модель недоступна для сеансів хмарного агента. Виберіть доступну модель, а потім знову ввімкніть Code Reviewer.", + "recoveryLabel": "Оновити налаштування Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer потребує уваги", + "description": "Code Reviewer було вимкнено після трьох тайм-аутів клонування репозиторію сьогодні. Зверніться по допомогу на hi@kilocode.ai, а потім знову ввімкніть Code Reviewer.", + "recoveryLabel": "Звернутися до підтримки" + } + }, + "unknownError": "Невідома помилка" }, "securityAgent": { "filter": { @@ -1500,6 +1558,23 @@ "belowThreshold": "Знахідка нижча за поріг автоматичної серйозності. Ручне усунення все ще можна запустити, коли перевірки безпеки пройдуть.", "beforeEnablement": "Аналіз завершено до увімкнення Автоусунення. Ручне усунення все ще можна запустити, коли перевірки безпеки пройдуть.", "generic": "Усунення недоступне для цієї знахідки." + }, + "commandFailure": { + "ownerCapReached": "Потужність аналізу вичерпано. Зачекайте, поки завершиться активний аналіз, а потім повторіть спробу.", + "githubTokenUnavailable": "Авторизація GitHub потребує уваги. Повторно авторизуйте застосунок GitHub, а потім повторіть спробу.", + "githubAuthInvalid": "Авторизація GitHub потребує уваги. Повторно авторизуйте застосунок GitHub, а потім повторіть спробу.", + "findingUnavailable": "Знахідка більше недоступна. Оновіть знахідки та повторіть спробу, якщо вона залишається відкритою.", + "repositoryUnavailable": "Репозиторій більше недоступний для застосунку GitHub. Оновіть доступ до репозиторію, а потім повторіть спробу.", + "invalidDismissTarget": "Знахідку не можна відхилити, оскільки її ціль Dependabot недійсна.", + "commandStalled": "Поставлена в чергу дія не завершилася вчасно. Повторіть дію.", + "queueRetriesExhausted": "Дію не вдалося завершити після кількох спроб. Повторіть дію.", + "queueAdmissionFailed": "Поставлену в чергу дію не вдалося прийняти. Повторіть дію.", + "generic": "Поставлена в чергу дія не вдалася. Повторіть дію." + }, + "analysisMode": { + "auto": "Авто", + "shallow": "Поверхневий", + "deep": "Глибокий" } }, "agents": { @@ -1975,7 +2050,8 @@ "addToFavorites": "Додати {{name}} до обраного", "removeFromFavorites": "Видалити {{name}} з обраного", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Модель сеансу" }, "attachmentPreview": { "openFailedRetry": "Не вдалося відкрити файл. Спробуйте ще раз.", @@ -2109,7 +2185,8 @@ }, "addCredits": { "cta": "Додати кредити", - "description": "Додайте кредити, щоб продовжити використання." + "description": "Додайте кредити, щоб продовжити використання.", + "billingPage": "сторінка оплати" }, "deviceSessions": { "couldNotLoad": "Не вдалося завантажити сеанси", @@ -2297,7 +2374,10 @@ "restoreFailed": "Не вдалося відновити покупки. Спробуйте ще раз.", "purchaseFailed": "Не вдалося завершити покупку.", "purchaseStartFailed": "Не вдалося розпочати покупку в App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass на цьому обліковому записі Apple належить іншому обліковому запису Kilo." + "purchaseOwnedByAnotherAccount": "Kilo Pass на цьому обліковому записі Apple належить іншому обліковому запису Kilo.", + "couldNotConnectToAppStore": "Не вдалося підключитися до App Store. Перевірте з'єднання та спробуйте ще раз.", + "noMatchingProducts": "App Store не повернув відповідних продуктів Kilo Pass.", + "purchaseMissingSignedTransaction": "Покупка в App Store не містила підписаної транзакції JWS." }, "consent": { "kilo": "Kilo", @@ -2819,7 +2899,10 @@ "diff": { "selectedTapToChange": "Вибрано {{label}}, торкніться, щоб змінити вибір", "tapToComment": "{{label}}, торкніться, щоб додати коментар", - "truncationBanner": "Показано перші {{limit}} зі {{total}} змінених файлів — обмеження GitHub API" + "truncationBanner": "Показано перші {{limit}} зі {{total}} змінених файлів — обмеження GitHub API", + "statusAdded": "Додано", + "statusContext": "Контекст", + "statusDeleted": "Видалено" }, "linkPasteClipboardEmpty": "Буфер обміну порожній", "linkPasteNotAPullRequest": "Це не посилання на pull request GitHub", @@ -2833,6 +2916,11 @@ "reviewNotSubmitted": "Цей огляд неможливо надіслати в такому вигляді. PR міг змінитися, або ви не можете перевіряти власний pull request.", "couldNotPostComment": "Не вдалося опублікувати коментар.", "couldNotSubmitReview": "Не вдалося надіслати огляд. Перевірте з'єднання та спробуйте ще раз." + }, + "operation": { + "couldNotReply": "Не вдалося відповісти.", + "couldNotCompleteAction": "Не вдалося завершити цю дію.", + "mergeResultDefaultError": "GitHub не завершив злиття." } }, "organization": { @@ -2850,7 +2938,17 @@ "emptyTitle": "Немає активності кредитів", "expires": "Спливає {{date}}", "title": "Активність кредитів", - "transactionFallback": "Транзакція кредитів" + "transactionFallback": "Транзакція кредитів", + "category": { + "organization_custom": "Спеціальний для організації", + "parent_to_child_transfer_in": "Переказ від батьківської організації до дочірньої (вхід)", + "parent_to_child_transfer_out": "Переказ від батьківської організації до дочірньої (вихід)", + "oss-sponsorship": "Спонсорство OSS", + "oss-monthly-reset": "Щомісячне скидання OSS", + "team-topup-bonus-2025": "Командний бонус поповнення 2025", + "accounting_adjustment": "Бухгалтерське коригування", + "credits_expired": "Термін дії кредитів минув" + } }, "hub": { "balance": "Баланс", @@ -2877,11 +2975,16 @@ "emptyTitle": "Немає рахунків", "invoiceFallback": "Рахунок", "title": "Рахунки", - "statusPaid": "Сплачено", - "statusOpen": "Відкрито", - "statusVoid": "Анульовано", "downloadFailed": "Не вдалося завантажити рахунок. Перевірте з'єднання та спробуйте ще раз.", - "sharingUnavailable": "Поширення недоступне на цьому пристрої." + "sharingUnavailable": "Поширення недоступне на цьому пристрої.", + "status": { + "paid": "Сплачено", + "open": "Відкрито", + "void": "Анульовано", + "draft": "Чернетка", + "uncollectible": "Безнадійний", + "unknown": "Невідомо" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2983,7 +3086,8 @@ "promptTitle": "Як вам застосунок Kilo?", "rateKilo": "Оцінити Kilo", "sorryMessage": "Розкажіть, що варто покращити. Інженер, відповідальний за застосунок, читає кожен звіт!", - "sorryTitle": "Нам шкода це чути!" + "sorryTitle": "Нам шкода це чути!", + "emailSubject": "відгук про мобільний застосунок" }, "authErrors": { "emailAlreadyUsed": "Обліковий запис із цією електронною поштою вже існує з іншим способом входу. Спробуйте інший спосіб або скористайтеся пунктом «$t(login.moreSignInOptions)».", @@ -3013,6 +3117,15 @@ "models": { "dataCollected": "Зібрані дані", "free": "Безкоштовно", - "couldNotUpdateFavorites": "Не вдалося оновити обрані" + "couldNotUpdateFavorites": "Не вдалося оновити обрані", + "thinkingEffort": { + "none": "Немає", + "minimal": "Мінімальний", + "low": "Низький", + "medium": "Середній", + "high": "Високий", + "xhigh": "Дуже високий", + "max": "Максимальний" + } } } diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 616cd5f531..2a9c2516d6 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} منتخب، انتخاب تبدیل کرنے کے لیے تھپتھپائیں", "tapToComment": "{{label}}، تبصرہ کرنے کے لیے تھپتھپائیں", - "truncationBanner": "کل {{total}} تبدیل شدہ فائلوں میں سے پہلی {{limit}} دکھائی جا رہی ہیں — GitHub API حد" + "truncationBanner": "کل {{total}} تبدیل شدہ فائلوں میں سے پہلی {{limit}} دکھائی جا رہی ہیں — GitHub API حد", + "statusAdded": "شامل شدہ", + "statusContext": "سیاق", + "statusDeleted": "حذف شدہ" }, "linkPasteClipboardEmpty": "کلپ بورڈ خالی ہے", "linkPasteNotAPullRequest": "یہ GitHub پل ریکویسٹ لنک نہیں ہے", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "یہ جائزہ اسی طرح جمع نہیں کیا جا سکتا۔ PR بدل گیا ہو سکتا ہے، یا آپ اپنی خود کی پل ریکویسٹ کا جائزہ نہیں لے سکتے۔", "couldNotPostComment": "تبصرہ پوسٹ نہیں ہو سکا۔", "couldNotSubmitReview": "جائزہ جمع نہیں ہو سکا۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔" + }, + "operation": { + "couldNotReply": "جواب نہیں ہو سکا۔", + "couldNotCompleteAction": "یہ کارروائی مکمل نہیں ہو سکی۔", + "mergeResultDefaultError": "GitHub نے مرج مکمل نہیں کیا۔" } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "ادائیگی زیر التوا ہے۔ براہ کرم اپنا ادائیگی کا طریقہ اپ ڈیٹ کریں۔", "subscriptionCancels": "سبسکرپشن {{date}} کو منسوخ ہوتی ہے", "trialDaysRemaining": "آزمائش: {{remaining}} دن باقی", - "trialEndingSoon": "آزمائش جلد ختم: {{remaining}}" + "trialEndingSoon": "آزمائش جلد ختم: {{remaining}}", + "planName": { + "commit": "کمٹ", + "standard": "Standard" + } }, "changelog": { "title": "نیا کیا ہے", @@ -1189,7 +1201,8 @@ "strongArm": "مضبوط بازو", "talisman": "تعویذ" }, - "remoteSpawnFilesNotSupported": "یہ انسٹنس فائلیں وصول نہیں کر سکتی۔" + "remoteSpawnFilesNotSupported": "یہ انسٹنس فائلیں وصول نہیں کر سکتی۔", + "instanceSwitcherTitle": "KiloClaw انسٹنس" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "ناکام", "cancelled": "منسوخ", "interrupted": "روک دیا گیا" - } + }, + "reviewStyle": { + "strict": "سخت", + "balanced": "متوازن", + "lenient": "نرم", + "roast": "Roast" + }, + "focusArea": { + "security": "سکیورٹی", + "performance": "کارکردگی", + "bugs": "بگز", + "style": "انداز", + "testing": "ٹیسٹنگ", + "documentation": "دستاویزات" + }, + "gateThreshold": { + "off": "بند", + "all": "تمام", + "warning": "انتباہ", + "critical": "سنگین" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "کوڈ ریویور کو توجہ درکار ہے", + "description": "کوڈ ریویور غیر فعال کیا گیا کیونکہ Kilo ایک فعال GitHub App انسٹالیشن کے ساتھ اس ریپوزٹری تک رسائی حاصل نہیں کر سکتا۔ GitHub App انسٹالیشن اپ ڈیٹ کریں، پھر کوڈ ریویور دوبارہ فعال کریں۔", + "recoveryLabel": "GitHub App اپ ڈیٹ کریں" + }, + "githubIpAllowList": { + "title": "کوڈ ریویور کو توجہ درکار ہے", + "description": "کوڈ ریویور غیر فعال کیا گیا کیونکہ یہ GitHub تنظیم ایک IP اجازت فہرست استعمال کرتی ہے جو Kilo کو بلاک کرتی ہے۔ مدد کے لیے hi@kilocode.ai پر رابطہ کریں، پھر کوڈ ریویور دوبارہ فعال کریں۔", + "recoveryLabel": "سپورٹ سے رابطہ کریں" + }, + "gitlabProjectAccessRequired": { + "title": "کوڈ ریویور کو توجہ درکار ہے", + "description": "کوڈ ریویور غیر فعال کیا گیا کیونکہ Kilo اس پروجیکٹ کے لیے GitLab پروجیکٹ ایکسیس ٹوکن نہیں بنا سکتا۔ Maintainer رسائی دیں یا پروجیکٹ ایکسیس ٹوکنز فعال کریں، پھر کوڈ ریویور دوبارہ فعال کریں۔", + "recoveryLabel": "GitLab انضمام اپ ڈیٹ کریں" + }, + "byokInvalidKey": { + "title": "کوڈ ریویور کو توجہ درکار ہے", + "description": "کوڈ ریویور غیر فعال کیا گیا کیونکہ منتخب BYOK API کلید غلط، منسوخ، یا اجازت کے بغیر ہے۔ کلید اپ ڈیٹ کریں یا کوئی اور ماڈل منتخب کریں، پھر کوڈ ریویور دوبارہ فعال کریں۔", + "recoveryLabel": "BYOK ترتیبات اپ ڈیٹ کریں" + }, + "selectedModelUnavailable": { + "title": "کوڈ ریویور کو توجہ درکار ہے", + "description": "کوڈ ریویور غیر فعال کیا گیا کیونکہ منتخب ماڈل کلاؤڈ ایجنٹ سیشنز کے لیے دستیاب نہیں ہے۔ ایک دستیاب ماڈل منتخب کریں، پھر کوڈ ریویور دوبارہ فعال کریں۔", + "recoveryLabel": "کوڈ ریویور ترتیبات اپ ڈیٹ کریں" + }, + "repeatedRepositoryCloneTimeout": { + "title": "کوڈ ریویور کو توجہ درکار ہے", + "description": "کوڈ ریویور آج تین ریپوزٹری کلون ٹائم آؤٹ کے بعد غیر فعال کیا گیا۔ مدد کے لیے hi@kilocode.ai پر رابطہ کریں، پھر کوڈ ریویور دوبارہ فعال کریں۔", + "recoveryLabel": "سپورٹ سے رابطہ کریں" + } + }, + "unknownError": "نامعلوم خرابی" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "نتیجہ خودکار شدت کی حد سے نیچے ہے۔ حفاظتی گیٹس پاس ہونے پر دستی اصلاح پھر بھی شروع ہو سکتی ہے۔", "beforeEnablement": "آٹو اصلاح فعال ہونے سے پہلے تجزیہ مکمل ہوا۔ حفاظتی گیٹس پاس ہونے پر دستی اصلاح پھر بھی شروع ہو سکتی ہے۔", "generic": "اس نتیجے کے لیے اصلاح دستیاب نہیں۔" + }, + "commandFailure": { + "ownerCapReached": "تجزیہ کی گنجائش بھری ہوئی ہے۔ فعال تجزیے کے مکمل ہونے کا انتظار کریں، پھر دوبارہ کوشش کریں۔", + "githubTokenUnavailable": "GitHub اجازت کو توجہ درکار ہے۔ GitHub App کو دوبارہ مجاز کریں، پھر دوبارہ کوشش کریں۔", + "githubAuthInvalid": "GitHub اجازت کو توجہ درکار ہے۔ GitHub App کو دوبارہ مجاز کریں، پھر دوبارہ کوشش کریں۔", + "findingUnavailable": "فائنڈنگ اب دستیاب نہیں ہے۔ فائنڈنگز تازہ کریں اور اگر کھلی رہے تو دوبارہ کوشش کریں۔", + "repositoryUnavailable": "ریپوزٹری اب GitHub App کے لیے دستیاب نہیں ہے۔ ریپوزٹری رسائی تازہ کریں، پھر دوبارہ کوشش کریں۔", + "invalidDismissTarget": "فائنڈنگ کو مسترد نہیں کیا جا سکتا کیونکہ اس کا Dependabot ہدف غلط ہے۔", + "commandStalled": "قطار میں شامل کارروائی وقت پر مکمل نہیں ہوئی۔ کارروائی دوبارہ کریں۔", + "queueRetriesExhausted": "کئی کوششوں کے بعد کارروائی مکمل نہیں ہو سکی۔ کارروائی دوبارہ کریں۔", + "queueAdmissionFailed": "قطار میں شامل کارروائی قبول نہیں ہو سکی۔ کارروائی دوبارہ کریں۔", + "generic": "قطار میں شامل کارروائی ناکام ہو گئی۔ کارروائی دوبارہ کریں۔" + }, + "analysisMode": { + "auto": "آٹو", + "shallow": "سطحی", + "deep": "گہرا" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} کو پسندیدہ میں شامل کریں", "removeFromFavorites": "{{name}} کو پسندیدہ سے ہٹائیں", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "سیشن ماڈل" }, "attachmentPreview": { "openFailedRetry": "فائل کھولنے میں ناکامی۔ براہ کرم دوبارہ کوشش کریں۔", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "کریڈٹ شامل کریں", - "description": "استعمال جاری رکھنے کے لیے کریڈٹ شامل کریں۔" + "description": "استعمال جاری رکھنے کے لیے کریڈٹ شامل کریں۔", + "billingPage": "بلنگ صفحہ" }, "deviceSessions": { "couldNotLoad": "سیشنز لوڈ نہیں ہو سکے", @@ -2710,7 +2795,10 @@ "restoreFailed": "خریداریاں بحال نہیں ہو سکیں۔ دوبارہ کوشش کریں۔", "purchaseFailed": "خریداری مکمل نہیں ہو سکی۔", "purchaseStartFailed": "App Store خریداری شروع نہیں ہو سکی۔", - "purchaseOwnedByAnotherAccount": "اس Apple اکاؤنٹ پر Kilo Pass کسی دوسرے Kilo اکاؤنٹ سے تعلق رکھتا ہے۔" + "purchaseOwnedByAnotherAccount": "اس Apple اکاؤنٹ پر Kilo Pass کسی دوسرے Kilo اکاؤنٹ سے تعلق رکھتا ہے۔", + "couldNotConnectToAppStore": "App Store سے منسلک نہیں ہو سکا۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔", + "noMatchingProducts": "App Store نے مماثل Kilo Pass مصنوعات واپس نہیں کیں۔", + "purchaseMissingSignedTransaction": "App Store خریداری میں دستخط شدہ ٹرانزیکشن JWS شامل نہیں تھی۔" }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "بہتری کی ضرورت ہے", "sorryTitle": "ہمیں سن کر افسوس ہوا!", "sorryMessage": "براہ کرم ہمیں بتائیں کہ کیا بہتر ہونے کی ضرورت ہے۔ ایپ کا ذمہ دار انجینئر ہر ایک رپورٹ پڑھتا ہے!", - "emailUs": "ہمیں ای میل کریں" + "emailUs": "ہمیں ای میل کریں", + "emailSubject": "موبائل ایپ رائے" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "کوئی کریڈٹ سرگرمی نہیں", "expires": "{{date}} کو ختم ہوتا ہے", "title": "کریڈٹ سرگرمی", - "transactionFallback": "کریڈٹ لین دین" + "transactionFallback": "کریڈٹ لین دین", + "category": { + "organization_custom": "تنظیم حسب ضرورت", + "parent_to_child_transfer_in": "والد سے بچے کی منتقلی (داخل)", + "parent_to_child_transfer_out": "والد سے بچے کی منتقلی (خارج)", + "oss-sponsorship": "OSS کفالت", + "oss-monthly-reset": "OSS ماہانہ ری سیٹ", + "team-topup-bonus-2025": "ٹیم ٹاپ اپ بونس 2025", + "accounting_adjustment": "اکاؤنٹنگ ایڈجسٹمنٹ", + "credits_expired": "کریڈٹس کی میعاد ختم" + } }, "inviteMember": { "emailError": "درست ای میل پتہ درج کریں", @@ -2840,12 +2939,17 @@ "emptyDescription": "انوائسز ہر بلنگ سائیکل پر خود بخود تیار ہوتی ہیں اور آپ کی تنظیم کو بل ہونے کے بعد یہاں ظاہر ہوں گی۔", "emptyTitle": "کوئی انوائسز نہیں", "invoiceFallback": "انوائس", - "statusOpen": "کھلا", - "statusPaid": "ادا شدہ", - "statusVoid": "باطل", "title": "انوائسز", "downloadFailed": "انوائس ڈاؤن لوڈ نہیں ہو سکی۔ اپنا کنکشن چیک کریں اور دوبارہ کوشش کریں۔", - "sharingUnavailable": "اس ڈیوائس پر شیئرنگ دستیاب نہیں ہے۔" + "sharingUnavailable": "اس ڈیوائس پر شیئرنگ دستیاب نہیں ہے۔", + "status": { + "paid": "ادا شدہ", + "open": "کھلا", + "void": "باطل", + "draft": "ڈرافٹ", + "uncollectible": "ناقابل وصول", + "unknown": "نامعلوم" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "جمع کردہ ڈیٹا", "free": "مفت", - "couldNotUpdateFavorites": "پسندیدہ اپ ڈیٹ نہیں ہو سکے" + "couldNotUpdateFavorites": "پسندیدہ اپ ڈیٹ نہیں ہو سکے", + "thinkingEffort": { + "none": "کوئی نہیں", + "minimal": "کم سے کم", + "low": "کم", + "medium": "درمیانہ", + "high": "زیادہ", + "xhigh": "بہت زیادہ", + "max": "زیادہ سے زیادہ" + } } } diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index 63f8029cac..9a78cd0344 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "{{label}} tanlandi, tanlovni o'zgartirish uchun bosing", "tapToComment": "{{label}}, izoh qoldirish uchun bosing", - "truncationBanner": "Jami {{total}} ta o'zgartirilgan fayldan dastlabki {{limit}} tasi ko'rsatilmoqda — GitHub API chegarasi" + "truncationBanner": "Jami {{total}} ta o'zgartirilgan fayldan dastlabki {{limit}} tasi ko'rsatilmoqda — GitHub API chegarasi", + "statusAdded": "Qo'shildi", + "statusContext": "Kontekst", + "statusDeleted": "O'chirildi" }, "linkPasteClipboardEmpty": "Vaqtinchalik xotira bo‘sh", "linkPasteNotAPullRequest": "Bu GitHub pull request havolasi emas", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Bu sharhni xuddi shunday yuborib bo'lmaydi. PR o'zgargan bo'lishi mumkin yoki siz o'z pull requestingizni ko'rib chiqa olmaysiz.", "couldNotPostComment": "Izoh joylashtirib bo'lmadi.", "couldNotSubmitReview": "Sharhni yuborib bo'lmadi. Ulanishingizni tekshiring va qayta urinib ko'ring." + }, + "operation": { + "couldNotReply": "Javob bera olmadi.", + "couldNotCompleteAction": "Bu amalni yakunlab bo'lmadi.", + "mergeResultDefaultError": "GitHub birlashtirishni yakunlamadi." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "To'lov muddati o'tgan. Iltimos, to'lov usulini yangilang.", "subscriptionCancels": "Obuna {{date}} da bekor qilinadi", "trialDaysRemaining": "Sinov: {{remaining}} kun qoldi", - "trialEndingSoon": "Sinov tugamoqda: {{remaining}}" + "trialEndingSoon": "Sinov tugamoqda: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Nima yangi", @@ -1189,7 +1201,8 @@ "strongArm": "Kuchli qo'l", "talisman": "Tumor" }, - "remoteSpawnFilesNotSupported": "Bu instansiya fayllarni qabul qila olmaydi." + "remoteSpawnFilesNotSupported": "Bu instansiya fayllarni qabul qila olmaydi.", + "instanceSwitcherTitle": "KiloClaw instansiyasi" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Amalga oshmadi", "cancelled": "Bekor qilindi", "interrupted": "Uzildi" - } + }, + "reviewStyle": { + "strict": "Qattiq", + "balanced": "Balanslangan", + "lenient": "Yumshoq", + "roast": "Roast" + }, + "focusArea": { + "security": "Xavfsizlik", + "performance": "Ishlash", + "bugs": "Xatolar", + "style": "Uslub", + "testing": "Testlash", + "documentation": "Hujjatlar" + }, + "gateThreshold": { + "off": "O'chirilgan", + "all": "Barchasi", + "warning": "Ogohlantirish", + "critical": "Muhim" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Kod ko'rib chiquvchisi e'tibor talab qiladi", + "description": "Kod ko'rib chiquvchisi o'chirildi, chunki Kilo faol GitHub App o'rnatmasi bilan bu repozitoriyaga kira olmaydi. GitHub App o'rnatmasini yangilang, so'ng Kod ko'rib chiquvchisini qayta yoqing.", + "recoveryLabel": "GitHub App'ni yangilash" + }, + "githubIpAllowList": { + "title": "Kod ko'rib chiquvchisi e'tibor talab qiladi", + "description": "Kod ko'rib chiquvchisi o'chirildi, chunki bu GitHub tashkiloti Kiloni bloklaydigan IP ruxsat ro'yxatidan foydalanadi. Yordam uchun hi@kilocode.ai ga murojaat qiling, so'ng Kod ko'rib chiquvchisini qayta yoqing.", + "recoveryLabel": "Qo'llab-quvvatlash bilan bog'lanish" + }, + "gitlabProjectAccessRequired": { + "title": "Kod ko'rib chiquvchisi e'tibor talab qiladi", + "description": "Kod ko'rib chiquvchisi o'chirildi, chunki Kilo bu loyiha uchun GitLab Project Access Token yarata olmaydi. Maintainer kirishini bering yoki Project Access Tokenlarni yoqing, so'ng Kod ko'rib chiquvchisini qayta yoqing.", + "recoveryLabel": "GitLab integratsiyasini yangilash" + }, + "byokInvalidKey": { + "title": "Kod ko'rib chiquvchisi e'tibor talab qiladi", + "description": "Kod ko'rib chiquvchisi o'chirildi, chunki tanlangan BYOK API kaliti noto'g'ri, bekor qilingan yoki ruxsatsiz. Kalitni yangilang yoki boshqa modelni tanlang, so'ng Kod ko'rib chiquvchisini qayta yoqing.", + "recoveryLabel": "BYOK sozlamalarini yangilash" + }, + "selectedModelUnavailable": { + "title": "Kod ko'rib chiquvchisi e'tibor talab qiladi", + "description": "Kod ko'rib chiquvchisi o'chirildi, chunki tanlangan model cloud agent seanslari uchun mavjud emas. Mavjud modelni tanlang, so'ng Kod ko'rib chiquvchisini qayta yoqing.", + "recoveryLabel": "Kod ko'rib chiquvchisi sozlamalarini yangilash" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Kod ko'rib chiquvchisi e'tibor talab qiladi", + "description": "Kod ko'rib chiquvchisi bugun uch marta repozitoriy klonlash muddati tugagach o'chirildi. Yordam uchun hi@kilocode.ai ga murojaat qiling, so'ng Kod ko'rib chiquvchisini qayta yoqing.", + "recoveryLabel": "Qo'llab-quvvatlash bilan bog'lanish" + } + }, + "unknownError": "Noma'lum xato" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Natija avtomatik jiddiylik chegarasidan past. Xavfsizlik shlyuzlari o'tganda qo'lda bartaraf etish hali ham boshlanishi mumkin.", "beforeEnablement": "Tahlil Avto tuzatish yoqilishidan oldin yakunlandi. Xavfsizlik shlyuzlari o'tganda qo'lda bartaraf etish hali ham boshlanishi mumkin.", "generic": "Bartaraf etish ushbu natija uchun mavjud emas." + }, + "commandFailure": { + "ownerCapReached": "Tahlil sig'imi to'la. Faol tahlil tugashini kuting, so'ng qayta urinib ko'ring.", + "githubTokenUnavailable": "GitHub avtorizatsiyasi e'tibor talab qiladi. GitHub App'ni qayta avtorizatsiya qiling, so'ng qayta urinib ko'ring.", + "githubAuthInvalid": "GitHub avtorizatsiyasi e'tibor talab qiladi. GitHub App'ni qayta avtorizatsiya qiling, so'ng qayta urinib ko'ring.", + "findingUnavailable": "Topilma endi mavjud emas. Topilmalarni yangilang va u ochiq bo'lib qolsa, qayta urinib ko'ring.", + "repositoryUnavailable": "Repozitoriya GitHub App uchun endi mavjud emas. Repozitoriya kirishini yangilang, so'ng qayta urinib ko'ring.", + "invalidDismissTarget": "Topilmani rad etib bo'lmaydi, chunki uning Dependabot maqsadi noto'g'ri.", + "commandStalled": "Navbatdagi amal o'z vaqtida tugamadi. Amalni qayta urinib ko'ring.", + "queueRetriesExhausted": "Amalni bir necha urinishdan keyin ham yakunlab bo'lmadi. Amalni qayta urinib ko'ring.", + "queueAdmissionFailed": "Navbatdagi amalni qabul qilib bo'lmadi. Amalni qayta urinib ko'ring.", + "generic": "Navbatdagi amal amalga oshmadi. Amalni qayta urinib ko'ring." + }, + "analysisMode": { + "auto": "Avto", + "shallow": "Sayoz", + "deep": "Chuqur" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "{{name}} sevimlilarga qo'shish", "removeFromFavorites": "{{name}} sevimlilardan olib tashlash", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Seans modeli" }, "attachmentPreview": { "openFailedRetry": "Faylni ochib bo'lmadi. Iltimos, qayta urinib ko'ring.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Kreditlar qo'shish", - "description": "Foydalanishni davom ettirish uchun kreditlar qo'shing." + "description": "Foydalanishni davom ettirish uchun kreditlar qo'shing.", + "billingPage": "to'lov sahifasi" }, "deviceSessions": { "couldNotLoad": "Sessiyalarni yuklab bo'lmadi", @@ -2710,7 +2795,10 @@ "restoreFailed": "Xaridlarni tiklab bo'lmadi. Qayta urinib ko'ring.", "purchaseFailed": "Xaridni yakunlab bo'lmadi.", "purchaseStartFailed": "App Store xaridini boshlab bo'lmadi.", - "purchaseOwnedByAnotherAccount": "Bu Apple hisobidagi Kilo Pass boshqa Kilo hisobiga tegishli." + "purchaseOwnedByAnotherAccount": "Bu Apple hisobidagi Kilo Pass boshqa Kilo hisobiga tegishli.", + "couldNotConnectToAppStore": "App Store'ga ulanib bo'lmadi. Ulanishingizni tekshiring va qayta urinib ko'ring.", + "noMatchingProducts": "App Store tomonidan mos Kilo Pass mahsulotlari qaytarilmadi.", + "purchaseMissingSignedTransaction": "App Store xaridi imzolangan tranzaksiya JWS'ini o'z ichiga olmadi." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Yaxshilash kerak", "sorryTitle": "Buni eshitganimizdan afsusdamiz!", "sorryMessage": "Iltimos, nimani yaxshilash kerakligini aytib bering. Ilova uchun mas'ul muhandis har bir hisobotni o'qiydi!", - "emailUs": "Bizga email yozing" + "emailUs": "Bizga email yozing", + "emailSubject": "mobil ilova fikr-mulohazasi" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Kredit faoliyati yo'q", "expires": "{{date}} da tugaydi", "title": "Kredit faoliyati", - "transactionFallback": "Kredit tranzaksiyasi" + "transactionFallback": "Kredit tranzaksiyasi", + "category": { + "organization_custom": "Tashkilot maxsus", + "parent_to_child_transfer_in": "Ota tashkilotdan bolaga kiruvchi o'tkazma", + "parent_to_child_transfer_out": "Ota tashkilotdan bolaga chiquvchi o'tkazma", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Buxgalteriya tuzatmasi", + "credits_expired": "Kreditlar muddati tugadi" + } }, "inviteMember": { "emailError": "To'g'ri email manzil kiriting", @@ -2840,12 +2939,17 @@ "emptyDescription": "Fakturalar har bir to'lov sikli avtomatik ravishda yaratiladi va tashkilotingiz hisoblanishi bilan shu yerda ko'rinadi.", "emptyTitle": "Fakturalar yo'q", "invoiceFallback": "Faktura", - "statusOpen": "Ochiq", - "statusPaid": "To'langan", - "statusVoid": "Bekor qilingan", "title": "Fakturalar", "downloadFailed": "Hisob-fakturani yuklab bo'lmadi. Ulanishingizni tekshiring va qayta urinib ko'ring.", - "sharingUnavailable": "Bu qurilmada ulashish mavjud emas." + "sharingUnavailable": "Bu qurilmada ulashish mavjud emas.", + "status": { + "paid": "To'langan", + "open": "Ochiq", + "void": "Bekor qilingan", + "draft": "Qoralama", + "uncollectible": "Undirib bo'lmaydigan", + "unknown": "Noma'lum" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Yig‘ilgan ma’lumotlar", "free": "Bepul", - "couldNotUpdateFavorites": "Sevimlilarni yangilab bo'lmadi" + "couldNotUpdateFavorites": "Sevimlilarni yangilab bo'lmadi", + "thinkingEffort": { + "none": "Yo'q", + "minimal": "Minimal", + "low": "Past", + "medium": "O'rta", + "high": "Yuqori", + "xhigh": "Juda yuqori", + "max": "Maksimal" + } } } diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index 16b514c42c..3c6408d372 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -382,7 +382,11 @@ "paymentPastDue": "Thanh toán quá hạn. Vui lòng cập nhật phương thức thanh toán.", "subscriptionCancels": "Gói đăng ký hủy vào {{date}}", "trialDaysRemaining": "Dùng thử: còn {{remaining}} ngày", - "trialEndingSoon": "Dùng thử sắp kết thúc: {{remaining}}" + "trialEndingSoon": "Dùng thử sắp kết thúc: {{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "Có gì mới", @@ -750,7 +754,8 @@ "strongArm": "Cánh tay mạnh mẽ", "talisman": "Bùa hộ mệnh" }, - "remoteSpawnFilesNotSupported": "Phiên bản này không thể nhận tệp." + "remoteSpawnFilesNotSupported": "Phiên bản này không thể nhận tệp.", + "instanceSwitcherTitle": "Phiên bản KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "Thất bại", "cancelled": "Đã hủy", "interrupted": "Đã bị gián đoạn" - } + }, + "reviewStyle": { + "strict": "Nghiêm ngặt", + "balanced": "Cân bằng", + "lenient": "Dễ dãi", + "roast": "Roast" + }, + "focusArea": { + "security": "Bảo mật", + "performance": "Hiệu năng", + "bugs": "Lỗi", + "style": "Phong cách", + "testing": "Kiểm thử", + "documentation": "Tài liệu" + }, + "gateThreshold": { + "off": "Tắt", + "all": "Tất cả", + "warning": "Cảnh báo", + "critical": "Nghiêm trọng" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Người xem xét mã cần chú ý", + "description": "Người xem xét mã đã bị tắt vì Kilo không thể truy cập kho lưu trữ này với một cài đặt GitHub App đang hoạt động. Hãy cập nhật cài đặt GitHub App, sau đó bật lại Người xem xét mã.", + "recoveryLabel": "Cập nhật GitHub App" + }, + "githubIpAllowList": { + "title": "Người xem xét mã cần chú ý", + "description": "Người xem xét mã đã bị tắt vì tổ chức GitHub này sử dụng danh sách IP được phép chặn Kilo. Hãy liên hệ hi@kilocode.ai để được trợ giúp, sau đó bật lại Người xem xét mã.", + "recoveryLabel": "Liên hệ hỗ trợ" + }, + "gitlabProjectAccessRequired": { + "title": "Người xem xét mã cần chú ý", + "description": "Người xem xét mã đã bị tắt vì Kilo không thể tạo Mã thông báo truy cập dự án GitLab cho dự án này. Hãy cấp quyền truy cập Maintainer hoặc bật Mã thông báo truy cập dự án, sau đó bật lại Người xem xét mã.", + "recoveryLabel": "Cập nhật tích hợp GitLab" + }, + "byokInvalidKey": { + "title": "Người xem xét mã cần chú ý", + "description": "Người xem xét mã đã bị tắt vì khóa API BYOK đã chọn không hợp lệ, đã bị thu hồi hoặc thiếu quyền. Hãy cập nhật khóa hoặc chọn một mô hình khác, sau đó bật lại Người xem xét mã.", + "recoveryLabel": "Cập nhật cài đặt BYOK" + }, + "selectedModelUnavailable": { + "title": "Người xem xét mã cần chú ý", + "description": "Người xem xét mã đã bị tắt vì mô hình đã chọn không khả dụng cho các phiên tác nhân đám mây. Hãy chọn một mô hình khả dụng, sau đó bật lại Người xem xét mã.", + "recoveryLabel": "Cập nhật cài đặt Người xem xét mã" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Người xem xét mã cần chú ý", + "description": "Người xem xét mã đã bị tắt sau ba lần hết thời gian sao chép kho lưu trữ hôm nay. Hãy liên hệ hi@kilocode.ai để được trợ giúp, sau đó bật lại Người xem xét mã.", + "recoveryLabel": "Liên hệ hỗ trợ" + } + }, + "unknownError": "Lỗi không xác định" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "Phát hiện dưới ngưỡng mức nghiêm trọng tự động. Vẫn có thể bắt đầu khắc phục thủ công khi các cổng kiểm tra an toàn được thông qua.", "beforeEnablement": "Phân tích hoàn tất trước khi bật Tự động khắc phục. Vẫn có thể bắt đầu khắc phục thủ công khi các cổng kiểm tra an toàn được thông qua.", "generic": "Không thể khắc phục cho phát hiện này." + }, + "commandFailure": { + "ownerCapReached": "Dung lượng phân tích đã đầy. Hãy đợi một phân tích đang chạy hoàn tất, sau đó thử lại.", + "githubTokenUnavailable": "Ủy quyền GitHub cần được chú ý. Hãy ủy quyền lại GitHub App, sau đó thử lại.", + "githubAuthInvalid": "Ủy quyền GitHub cần được chú ý. Hãy ủy quyền lại GitHub App, sau đó thử lại.", + "findingUnavailable": "Phát hiện không còn khả dụng. Hãy làm mới các phát hiện và thử lại nếu nó vẫn còn mở.", + "repositoryUnavailable": "Kho lưu trữ không còn khả dụng cho GitHub App. Hãy làm mới quyền truy cập kho lưu trữ, sau đó thử lại.", + "invalidDismissTarget": "Không thể bỏ qua phát hiện vì mục tiêu Dependabot của nó không hợp lệ.", + "commandStalled": "Hành động đã xếp hàng không hoàn tất đúng hạn. Hãy thử lại hành động.", + "queueRetriesExhausted": "Không thể hoàn tất hành động sau nhiều lần thử. Hãy thử lại hành động.", + "queueAdmissionFailed": "Không thể tiếp nhận hành động đã xếp hàng. Hãy thử lại hành động.", + "generic": "Hành động đã xếp hàng thất bại. Hãy thử lại hành động." + }, + "analysisMode": { + "auto": "Tự động", + "shallow": "Nông", + "deep": "Sâu" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "Thêm {{name}} vào mục yêu thích", "removeFromFavorites": "Xóa {{name}} khỏi mục yêu thích", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Mô hình phiên" }, "attachmentPreview": { "openFailedRetry": "Không thể mở tệp. Vui lòng thử lại.", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "Thêm tín dụng", - "description": "Thêm tín dụng để tiếp tục sử dụng." + "description": "Thêm tín dụng để tiếp tục sử dụng.", + "billingPage": "trang thanh toán" }, "deviceSessions": { "couldNotLoad": "Không thể tải các phiên", @@ -2271,7 +2348,10 @@ "restoreFailed": "Không thể khôi phục giao dịch mua. Thử lại.", "purchaseFailed": "Không thể hoàn tất giao dịch mua.", "purchaseStartFailed": "Không thể bắt đầu giao dịch mua trên App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass trên Tài khoản Apple này thuộc về một tài khoản Kilo khác." + "purchaseOwnedByAnotherAccount": "Kilo Pass trên Tài khoản Apple này thuộc về một tài khoản Kilo khác.", + "couldNotConnectToAppStore": "Không thể kết nối với App Store. Kiểm tra kết nối của bạn và thử lại.", + "noMatchingProducts": "App Store không trả về sản phẩm Kilo Pass nào phù hợp.", + "purchaseMissingSignedTransaction": "Giao dịch mua App Store không bao gồm JWS giao dịch đã ký." }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "Đã chọn {{label}}, chạm để đổi lựa chọn", "tapToComment": "{{label}}, chạm để bình luận", - "truncationBanner": "Hiển thị {{limit}} tệp đã thay đổi đầu tiên trong tổng số {{total}} — giới hạn API của GitHub" + "truncationBanner": "Hiển thị {{limit}} tệp đã thay đổi đầu tiên trong tổng số {{total}} — giới hạn API của GitHub", + "statusAdded": "Đã thêm", + "statusContext": "Ngữ cảnh", + "statusDeleted": "Đã xóa" }, "linkPasteClipboardEmpty": "Bộ nhớ tạm trống", "linkPasteNotAPullRequest": "Không phải là liên kết yêu cầu kéo GitHub", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "Không thể gửi đánh giá này như hiện tại. PR có thể đã thay đổi hoặc bạn không thể đánh giá yêu cầu hợp nhất của chính mình.", "couldNotPostComment": "Không thể đăng bình luận.", "couldNotSubmitReview": "Không thể gửi đánh giá. Kiểm tra kết nối và thử lại." + }, + "operation": { + "couldNotReply": "Không thể trả lời.", + "couldNotCompleteAction": "Không thể hoàn tất hành động này.", + "mergeResultDefaultError": "GitHub đã không hoàn tất việc hợp nhất." } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "Không có hoạt động tín dụng", "expires": "Hết hạn {{date}}", "title": "Hoạt động tín dụng", - "transactionFallback": "Giao dịch tín dụng" + "transactionFallback": "Giao dịch tín dụng", + "category": { + "organization_custom": "Tùy chỉnh tổ chức", + "parent_to_child_transfer_in": "Chuyển khoản từ tổ chức cha sang con (vào)", + "parent_to_child_transfer_out": "Chuyển khoản từ tổ chức cha sang con (ra)", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Điều chỉnh kế toán", + "credits_expired": "Tín dụng đã hết hạn" + } }, "hub": { "balance": "Số dư", @@ -2837,11 +2935,16 @@ "emptyTitle": "Không có hóa đơn", "invoiceFallback": "Hóa đơn", "title": "Hóa đơn", - "statusPaid": "Đã thanh toán", - "statusOpen": "Đang mở", - "statusVoid": "Vô hiệu", "downloadFailed": "Không thể tải hóa đơn. Kiểm tra kết nối và thử lại.", - "sharingUnavailable": "Không thể chia sẻ trên thiết bị này." + "sharingUnavailable": "Không thể chia sẻ trên thiết bị này.", + "status": { + "paid": "Đã thanh toán", + "open": "Đang mở", + "void": "Vô hiệu", + "draft": "Nháp", + "uncollectible": "Không thể thu hồi", + "unknown": "Không xác định" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "Bạn thấy ứng dụng Kilo thế nào?", "rateKilo": "Đánh giá Kilo", "sorryMessage": "Vui lòng cho chúng tôi biết điều cần cải thiện. Kỹ sư phụ trách ứng dụng đọc từng báo cáo một!", - "sorryTitle": "Chúng tôi rất tiếc khi nghe điều đó!" + "sorryTitle": "Chúng tôi rất tiếc khi nghe điều đó!", + "emailSubject": "phản hồi ứng dụng di động" }, "authErrors": { "emailAlreadyUsed": "Đã có tài khoản với email này nhưng sử dụng phương thức đăng nhập khác. Hãy thử phương thức khác hoặc dùng '$t(login.moreSignInOptions)'.", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Dữ liệu đã thu thập", "free": "Miễn phí", - "couldNotUpdateFavorites": "Không thể cập nhật mục yêu thích" + "couldNotUpdateFavorites": "Không thể cập nhật mục yêu thích", + "thinkingEffort": { + "none": "Không", + "minimal": "Tối thiểu", + "low": "Thấp", + "medium": "Trung bình", + "high": "Cao", + "xhigh": "Rất cao", + "max": "Tối đa" + } } } diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index c1fabc9a13..8beb7b5ff1 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Yan {{label}}, tẹ lati yi yiyan pada", "tapToComment": "{{label}}, tẹ lati sọ asọye", - "truncationBanner": "Ìfihàn àwọn fáìlì àkọ́kọ́ {{limit}} nínú {{total}} fáìlì tí a yí padà — ìpẹ̀kun API GitHub" + "truncationBanner": "Ìfihàn àwọn fáìlì àkọ́kọ́ {{limit}} nínú {{total}} fáìlì tí a yí padà — ìpẹ̀kun API GitHub", + "statusAdded": "Ti fi kun", + "statusContext": "Àyíká", + "statusDeleted": "Ti pa" }, "linkPasteClipboardEmpty": "Àtẹ̀ àkójọpọ̀ ti ṣófo", "linkPasteNotAPullRequest": "Kì í ṣe ọ̀nà asopọ́ pull request GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "A kò lè fi àtúnyẹ̀wò yìí sílẹ̀ bí ó ti rí. PR lè ti yí padà, tàbí o kò lè ṣàtúnyẹ̀wò ìbéèrè fìfà tirẹ.", "couldNotPostComment": "Kò lè fi àsọyé sílẹ̀.", "couldNotSubmitReview": "Kò lè fi àtúnyẹ̀wò sílẹ̀. Ṣàyẹ̀wò àsopọ̀ rẹ kí o gbìyànjú lẹ́ẹ̀kan sí i." + }, + "operation": { + "couldNotReply": "Ko le fesi.", + "couldNotCompleteAction": "Kò lè parí ìgbésẹ̀ yìí.", + "mergeResultDefaultError": "GitHub kò parí ìsopọ̀ náà." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Ìsanwó ti pẹ́. Jọ̀wọ́ mẹ́nu kàn ọ̀nà ìsanwó rẹ.", "subscriptionCancels": "Ìfọwọ́sí fagilé {{date}}", "trialDaysRemaining": "Ìgbìyànjú: {{remaining}} ọjọ́ ṣẹ́kù", - "trialEndingSoon": "Ìgbìyànjú ń parí láìpẹ́: {{remaining}}" + "trialEndingSoon": "Ìgbìyànjú ń parí láìpẹ́: {{remaining}}", + "planName": { + "commit": "Fọwọ́ sí", + "standard": "Standard" + } }, "changelog": { "title": "Kí ni Tuntun", @@ -1189,7 +1201,8 @@ "strongArm": "Apá líle", "talisman": "Tálísímán" }, - "remoteSpawnFilesNotSupported": "Àpẹrẹ yìí kò lè gba àwọn fáìlì." + "remoteSpawnFilesNotSupported": "Àpẹrẹ yìí kò lè gba àwọn fáìlì.", + "instanceSwitcherTitle": "Àpẹrẹ KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Kuna", "cancelled": "Ti fagilee", "interrupted": "Ti da duro" - } + }, + "reviewStyle": { + "strict": "Lile", + "balanced": "Dídọ̀gba", + "lenient": "Rọ̀rùn", + "roast": "Roast" + }, + "focusArea": { + "security": "Ààbò", + "performance": "Ìṣiṣẹ́", + "bugs": "Àwọn àṣìṣe", + "style": "Àrà", + "testing": "Ìdánwò", + "documentation": "Ìwé àkọsílẹ̀" + }, + "gateThreshold": { + "off": "Pa", + "all": "Gbogbo", + "warning": "Ìkìlọ̀", + "critical": "Àrà ọ̀tọ̀" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "Code Reviewer nílò àfiyèsí", + "description": "A ti pa Code Reviewer nítorí pé Kilo kò lè wọlé sí ibi ìpamọ́ yìí pẹ̀lú ìtòlẹ́tò GitHub App tí ń ṣiṣẹ́. Ṣe ìmúdójúiwọn ìtòlẹ́tò GitHub App, lẹ́yìn náà tún Code Reviewer ṣiṣẹ́.", + "recoveryLabel": "Ṣe ìmúdójúiwọn GitHub App" + }, + "githubIpAllowList": { + "title": "Code Reviewer nílò àfiyèsí", + "description": "A ti pa Code Reviewer nítorí pé àjọ GitHub yìí lo àkójọ ààyè IP tí ń dí Kilo lọ́wọ́. Kàn sí hi@kilocode.ai fún ìrànwọ́, lẹ́yìn náà tún Code Reviewer ṣiṣẹ́.", + "recoveryLabel": "Kàn sí ìtìlẹ́yìn" + }, + "gitlabProjectAccessRequired": { + "title": "Code Reviewer nílò àfiyèsí", + "description": "A ti pa Code Reviewer nítorí pé Kilo kò lè dá Àmi Wọlé Ìṣẹ́ GitLab fún iṣẹ́ yìí. Fún ni ààyè Maintainer tàbí ṣe àwọn Àmi Wọlé Ìṣẹ́ ṣiṣẹ́, lẹ́yìn náà tún Code Reviewer ṣiṣẹ́.", + "recoveryLabel": "Ṣe ìmúdójúiwọn ìsopọ̀ GitLab" + }, + "byokInvalidKey": { + "title": "Code Reviewer nílò àfiyèsí", + "description": "A ti pa Code Reviewer nítorí pé bọ́tìnnì API BYOK tí a yàn kò tọ́, a fagilé rẹ̀, tàbí kò ní ààyè. Ṣe ìmúdójúiwọn bọ́tìnnì náà tàbí yan awoṣe mìíràn, lẹ́yìn náà tún Code Reviewer ṣiṣẹ́.", + "recoveryLabel": "Ṣe ìmúdójúiwọn àwọn ètò BYOK" + }, + "selectedModelUnavailable": { + "title": "Code Reviewer nílò àfiyèsí", + "description": "A ti pa Code Reviewer nítorí pé awoṣe tí a yàn kò sí fún àwọn igba-ijiroro aṣojú àwọsánmọ̀. Yan awoṣe tí ó wà, lẹ́yìn náà tún Code Reviewer ṣiṣẹ́.", + "recoveryLabel": "Ṣe ìmúdójúiwọn àwọn ètò Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "Code Reviewer nílò àfiyèsí", + "description": "A ti pa Code Reviewer lẹ́yìn àkókò ìdarí kòpí ìpamọ́ mẹ́ta lónìí. Kàn sí hi@kilocode.ai fún ìrànwọ́, lẹ́yìn náà tún Code Reviewer ṣiṣẹ́.", + "recoveryLabel": "Kàn sí ìtìlẹ́yìn" + } + }, + "unknownError": "Àṣìṣe àìmọ̀" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Abawọn wa ni isalẹ ipele iwọn pataki ladaa. Atunṣe ọwọ le tun bẹrẹ nigbati awọn ẹnu-ọna aabo ba kọja.", "beforeEnablement": "Itupalẹ pari ṣaaju ki o to mu Atunṣe ladaa ṣiṣẹ. Atunṣe ọwọ le tun bẹrẹ nigbati awọn ẹnu-ọna aabo ba kọja.", "generic": "Atunṣe ko wa fun abawọn yii." + }, + "commandFailure": { + "ownerCapReached": "Agbara itupalẹ ti kun. Duro fun itupalẹ ti nṣiṣẹ lọwọ lati pari, lẹ́yìn náà gbìyànjú lẹ́ẹ̀kan sí i.", + "githubTokenUnavailable": "Ìfọwọ́sí GitHub nílò àfiyèsí. Tún fún GitHub App ní aṣẹ, lẹ́yìn náà gbìyànjú lẹ́ẹ̀kan sí i.", + "githubAuthInvalid": "Ìfọwọ́sí GitHub nílò àfiyèsí. Tún fún GitHub App ní aṣẹ, lẹ́yìn náà gbìyànjú lẹ́ẹ̀kan sí i.", + "findingUnavailable": "Àwírí náà kò sí mọ́. Tun ṣe àwọn àwírí kí o sì gbìyànjú lẹ́ẹ̀kan sí i bí ó bá ṣì ṣí.", + "repositoryUnavailable": "Ibi ìpamọ́ kò sí mọ́ fún GitHub App. Tun ṣe ààyè ibi ìpamọ́, lẹ́yìn náà gbìyànjú lẹ́ẹ̀kan sí i.", + "invalidDismissTarget": "A kò lè fi àwírí náà sílẹ̀ nítorí pé àfojúsùn Dependabot rẹ̀ kò tọ́.", + "commandStalled": "Ìgbésẹ̀ tí ó wà ní ìlà kò parí ní àkókò. Tún gbìyànjú ìgbésẹ̀ náà.", + "queueRetriesExhausted": "A kò lè parí ìgbésẹ̀ náà lẹ́yìn àwọn ìgbìyànjú púpọ̀. Tún gbìyànjú ìgbésẹ̀ náà.", + "queueAdmissionFailed": "A kò lè gba ìgbésẹ̀ tí ó wà ní ìlà. Tún gbìyànjú ìgbésẹ̀ náà.", + "generic": "Ìgbésẹ̀ tí ó wà ní ìlà kùnà. Tún gbìyànjú ìgbésẹ̀ náà." + }, + "analysisMode": { + "auto": "Aifọwọyi", + "shallow": "Aijinle", + "deep": "Jinlẹ" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Fi {{name}} kun si awọn ayanfẹ", "removeFromFavorites": "Yọ {{name}} kuro ninu awọn ayanfẹ", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Awoṣe igba-ijiroro" }, "attachmentPreview": { "openFailedRetry": "A ti kuna lati ṣii faili. Jọwọ gbiyanju lẹẹkansi.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Fi awọn kirẹditi kun", - "description": "Fi awọn kirẹditi kun lati jẹki lilo tẹsiwaju." + "description": "Fi awọn kirẹditi kun lati jẹki lilo tẹsiwaju.", + "billingPage": "ojú-ewé ìsanwó" }, "deviceSessions": { "couldNotLoad": "Ko le ṣagbewọ awọn igba-ijiroro", @@ -2710,7 +2795,10 @@ "restoreFailed": "Kùnà láti mú àwọn rírà padà. Gbìyànjú lẹ́ẹ̀kan sí i.", "purchaseFailed": "Kùnà láti parí rírà.", "purchaseStartFailed": "Kùnà láti bẹ̀rẹ̀ rírà App Store.", - "purchaseOwnedByAnotherAccount": "Kilo Pass lori Apple Account yii jẹ ti Kilo akọọlẹ miiran." + "purchaseOwnedByAnotherAccount": "Kilo Pass lori Apple Account yii jẹ ti Kilo akọọlẹ miiran.", + "couldNotConnectToAppStore": "A ko le sopọ si App Store. Ṣayẹwo asopọ rẹ ki o gbiyanju lẹẹkansi.", + "noMatchingProducts": "Ko si awọn ọja Kilo Pass ti o baamu ti App Store da pada.", + "purchaseMissingSignedTransaction": "Rírà App Store kò ní JWS ìṣìṣẹ́ tí a fọwọ́ sí." }, "consent": { "kilo": "Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Nilo iṣẹ", "sorryTitle": "A binu lati gbọ iyẹn!", "sorryMessage": "Jọwọ jẹ ki a mọ ohun ti o nilo lati dara. Ẹlẹrọ ti n ṣakoso app ka gbogbo ijabọ kan!", - "emailUs": "Fi imeeli ranṣẹ si wa" + "emailUs": "Fi imeeli ranṣẹ si wa", + "emailSubject": "ìdáhùn ohun-èlò alágbèéká" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Ko si iṣẹ-ṣiṣe kirẹditi", "expires": "Pari {{date}}", "title": "Iṣẹ-ṣiṣe kirẹditi", - "transactionFallback": "Iṣowo kirẹditi" + "transactionFallback": "Iṣowo kirẹditi", + "category": { + "organization_custom": "Àṣà àjọ", + "parent_to_child_transfer_in": "Gbigbe láti òbí sí ọmọ (wọlé)", + "parent_to_child_transfer_out": "Gbigbe láti òbí sí ọmọ (jàde)", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "Àtúnṣe ìṣirò-owó", + "credits_expired": "Àwọn kíredìtì ti parí" + } }, "inviteMember": { "emailError": "Tẹ adirẹsi imeeli ti o wulo", @@ -2840,12 +2939,17 @@ "emptyDescription": "A ṣe awọn invoice laifọwọyi ni gbogbo akoko owo ki o si yoo han nibi ni kete ti a ba gba owo ajọ rẹ.", "emptyTitle": "Ko si invoice", "invoiceFallback": "Invoice", - "statusOpen": "Ṣii", - "statusPaid": "Ti san", - "statusVoid": "Ofo", "title": "Awọn invoice", "downloadFailed": "Kò lè ṣìgbàsílẹ̀ invoice. Ṣàyẹ̀wò àsopọ̀ rẹ kí o gbìyànjú lẹ́ẹ̀kan sí i.", - "sharingUnavailable": "Pípín kò sí lórí ẹ̀rọ yìí." + "sharingUnavailable": "Pípín kò sí lórí ẹ̀rọ yìí.", + "status": { + "paid": "Ti san", + "open": "Ṣii", + "void": "Ofo", + "draft": "Àkọsílẹ̀", + "uncollectible": "Àìlègbà", + "unknown": "Àìmọ̀" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Ìsọfúnni tí a kó", "free": "Ọ̀fẹ́", - "couldNotUpdateFavorites": "Ko le ṣe imudojuiwọn awọn aàyàn" + "couldNotUpdateFavorites": "Ko le ṣe imudojuiwọn awọn aàyàn", + "thinkingEffort": { + "none": "Kò sí", + "minimal": "Kéré jùlọ", + "low": "Kéré", + "medium": "Alabọde", + "high": "Giga", + "xhigh": "Gíga púpọ̀", + "max": "Pátápátá" + } } } diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index f86e7a7573..58cd805ae3 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -382,7 +382,11 @@ "paymentPastDue": "付款已逾期。请更新您的付款方式。", "subscriptionCancels": "订阅将于 {{date}} 取消", "trialDaysRemaining": "试用:剩余 {{remaining}} 天", - "trialEndingSoon": "试用即将结束:{{remaining}}" + "trialEndingSoon": "试用即将结束:{{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "新功能", @@ -750,7 +754,8 @@ "strongArm": "强壮手臂", "talisman": "护身符" }, - "remoteSpawnFilesNotSupported": "此实例无法接收文件。" + "remoteSpawnFilesNotSupported": "此实例无法接收文件。", + "instanceSwitcherTitle": "KiloClaw 实例" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "失败", "cancelled": "已取消", "interrupted": "已中断" - } + }, + "reviewStyle": { + "strict": "严格", + "balanced": "均衡", + "lenient": "宽松", + "roast": "Roast" + }, + "focusArea": { + "security": "安全", + "performance": "性能", + "bugs": "缺陷", + "style": "风格", + "testing": "测试", + "documentation": "文档" + }, + "gateThreshold": { + "off": "关闭", + "all": "全部", + "warning": "警告", + "critical": "严重" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "代码审查器需要关注", + "description": "代码审查器已被禁用,因为 Kilo 无法通过有效的 GitHub App 安装访问此仓库。请更新 GitHub App 安装,然后重新启用代码审查器。", + "recoveryLabel": "更新 GitHub App" + }, + "githubIpAllowList": { + "title": "代码审查器需要关注", + "description": "代码审查器已被禁用,因为此 GitHub 组织使用会阻止 Kilo 的 IP 允许列表。请联系 hi@kilocode.ai 寻求帮助,然后重新启用代码审查器。", + "recoveryLabel": "联系支持" + }, + "gitlabProjectAccessRequired": { + "title": "代码审查器需要关注", + "description": "代码审查器已被禁用,因为 Kilo 无法为此项目创建 GitLab 项目访问令牌。请授予 Maintainer 访问权限或启用项目访问令牌,然后重新启用代码审查器。", + "recoveryLabel": "更新 GitLab 集成" + }, + "byokInvalidKey": { + "title": "代码审查器需要关注", + "description": "代码审查器已被禁用,因为所选 BYOK API 密钥无效、已被撤销或缺少权限。请更新密钥或选择其他模型,然后重新启用代码审查器。", + "recoveryLabel": "更新 BYOK 设置" + }, + "selectedModelUnavailable": { + "title": "代码审查器需要关注", + "description": "代码审查器已被禁用,因为所选模型不适用于云端代理会话。请选择一个可用的模型,然后重新启用代码审查器。", + "recoveryLabel": "更新代码审查器设置" + }, + "repeatedRepositoryCloneTimeout": { + "title": "代码审查器需要关注", + "description": "代码审查器在今日三次仓库克隆超时后已被禁用。请联系 hi@kilocode.ai 寻求帮助,然后重新启用代码审查器。", + "recoveryLabel": "联系支持" + } + }, + "unknownError": "未知错误" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "发现低于自动修复的严重程度阈值。安全门槛通过后仍可手动开始修复。", "beforeEnablement": "分析在启用自动修复之前完成。安全门槛通过后仍可手动开始修复。", "generic": "此发现无法进行修复。" + }, + "commandFailure": { + "ownerCapReached": "分析容量已满。请等待正在进行的分析完成,然后重试。", + "githubTokenUnavailable": "GitHub 授权需要关注。请重新授权 GitHub App,然后重试。", + "githubAuthInvalid": "GitHub 授权需要关注。请重新授权 GitHub App,然后重试。", + "findingUnavailable": "发现已不再可用。请刷新发现,如果它仍处于打开状态,请重试。", + "repositoryUnavailable": "仓库对 GitHub App 已不再可用。请刷新仓库访问权限,然后重试。", + "invalidDismissTarget": "无法忽略此发现,因为其 Dependabot 目标无效。", + "commandStalled": "排队的操作未按时完成。请重试操作。", + "queueRetriesExhausted": "操作经过多次尝试后仍无法完成。请重试操作。", + "queueAdmissionFailed": "排队的操作无法被受理。请重试操作。", + "generic": "排队的操作失败。请重试操作。" + }, + "analysisMode": { + "auto": "自动", + "shallow": "浅度", + "deep": "深度" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "将 {{name}} 添加到收藏", "removeFromFavorites": "从收藏中移除 {{name}}", "thinkingEffortXhigh": "超高", - "thinkingEffortMedium": "中" + "thinkingEffortMedium": "中", + "sessionModel": "会话模型" }, "attachmentPreview": { "openFailedRetry": "打开文件失败。请重试。", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "添加积分", - "description": "添加积分以保持使用运行。" + "description": "添加积分以保持使用运行。", + "billingPage": "账单页面" }, "deviceSessions": { "couldNotLoad": "无法加载会话", @@ -2271,7 +2348,10 @@ "restoreFailed": "恢复购买失败。请重试。", "purchaseFailed": "完成购买失败。", "purchaseStartFailed": "启动 App Store 购买失败。", - "purchaseOwnedByAnotherAccount": "此 Apple 账户上的 Kilo Pass 属于另一个 Kilo 账户。" + "purchaseOwnedByAnotherAccount": "此 Apple 账户上的 Kilo Pass 属于另一个 Kilo 账户。", + "couldNotConnectToAppStore": "无法连接到 App Store。请检查您的网络连接后重试。", + "noMatchingProducts": "App Store 未返回匹配的 Kilo Pass 产品。", + "purchaseMissingSignedTransaction": "App Store 购买未包含已签名的交易 JWS。" }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "已选择 {{label}},点按以更改所选内容", "tapToComment": "{{label}},点按以发表评论", - "truncationBanner": "正在显示前 {{limit}} 个(共 {{total}} 个)已更改文件 — GitHub API 限制" + "truncationBanner": "正在显示前 {{limit}} 个(共 {{total}} 个)已更改文件 — GitHub API 限制", + "statusAdded": "已添加", + "statusContext": "上下文", + "statusDeleted": "已删除" }, "linkPasteClipboardEmpty": "剪贴板为空", "linkPasteNotAPullRequest": "不是 GitHub 拉取请求链接", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "此审查无法按现状提交。PR 可能已更改,或您无法审查自己的拉取请求。", "couldNotPostComment": "无法发布评论。", "couldNotSubmitReview": "无法提交审查。请检查网络连接后重试。" + }, + "operation": { + "couldNotReply": "无法回复。", + "couldNotCompleteAction": "无法完成此操作。", + "mergeResultDefaultError": "GitHub 未完成合并。" } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "没有积分动态", "expires": "到期时间 {{date}}", "title": "积分动态", - "transactionFallback": "积分交易" + "transactionFallback": "积分交易", + "category": { + "organization_custom": "组织自定义", + "parent_to_child_transfer_in": "上级转入下级", + "parent_to_child_transfer_out": "上级转出至下级", + "oss-sponsorship": "Oss-sponsorship", + "oss-monthly-reset": "Oss-monthly-reset", + "team-topup-bonus-2025": "Team-topup-bonus-2025", + "accounting_adjustment": "会计调整", + "credits_expired": "积分已过期" + } }, "hub": { "balance": "余额", @@ -2837,11 +2935,16 @@ "emptyTitle": "没有发票", "invoiceFallback": "发票", "title": "发票", - "statusPaid": "已支付", - "statusOpen": "待支付", - "statusVoid": "已作废", "downloadFailed": "无法下载发票。请检查网络连接后重试。", - "sharingUnavailable": "此设备不支持分享。" + "sharingUnavailable": "此设备不支持分享。", + "status": { + "paid": "已支付", + "open": "待支付", + "void": "已作废", + "draft": "草稿", + "uncollectible": "无法收回", + "unknown": "未知" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "您觉得 Kilo 应用怎么样?", "rateKilo": "给 Kilo 评分", "sorryMessage": "请告诉我们哪些地方需要改进。负责该应用的工程师会阅读每一份报告!", - "sorryTitle": "很抱歉听到您这么说!" + "sorryTitle": "很抱歉听到您这么说!", + "emailSubject": "移动应用反馈" }, "authErrors": { "emailAlreadyUsed": "使用此邮箱的账户已存在,但登录方式不同。请尝试其他方式或使用\"$t(login.moreSignInOptions)\"。", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "收集的数据", "free": "免费", - "couldNotUpdateFavorites": "无法更新收藏" + "couldNotUpdateFavorites": "无法更新收藏", + "thinkingEffort": { + "none": "无", + "minimal": "最低", + "low": "低", + "medium": "中", + "high": "高", + "xhigh": "超高", + "max": "最高" + } } } diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index 9908edbd2b..20fe65454a 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -382,7 +382,11 @@ "paymentPastDue": "付款已逾期。請更新您的付款方式。", "subscriptionCancels": "訂閱將於 {{date}} 取消", "trialDaysRemaining": "試用:剩餘 {{remaining}} 天", - "trialEndingSoon": "試用即將結束:{{remaining}}" + "trialEndingSoon": "試用即將結束:{{remaining}}", + "planName": { + "commit": "Commit", + "standard": "Standard" + } }, "changelog": { "title": "新功能", @@ -750,7 +754,8 @@ "strongArm": "強壯手臂", "talisman": "護身符" }, - "remoteSpawnFilesNotSupported": "此執行個體無法接收檔案。" + "remoteSpawnFilesNotSupported": "此執行個體無法接收檔案。", + "instanceSwitcherTitle": "KiloClaw 執行個體" }, "codeReviewer": { "focusAreas": { @@ -948,7 +953,60 @@ "failed": "失敗", "cancelled": "已取消", "interrupted": "已中斷" - } + }, + "reviewStyle": { + "strict": "嚴格", + "balanced": "均衡", + "lenient": "寬鬆", + "roast": "毒舌" + }, + "focusArea": { + "security": "安全性", + "performance": "效能", + "bugs": "缺陷", + "style": "風格", + "testing": "測試", + "documentation": "文件" + }, + "gateThreshold": { + "off": "關閉", + "all": "全部", + "warning": "警告", + "critical": "嚴重" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "程式碼審查員需要關注", + "description": "程式碼審查員已停用,因為 Kilo 無法透過有效的 GitHub App 安裝存取此存放庫。請更新 GitHub App 安裝,然後重新啟用程式碼審查員。", + "recoveryLabel": "更新 GitHub App" + }, + "githubIpAllowList": { + "title": "程式碼審查員需要關注", + "description": "程式碼審查員已停用,因為此 GitHub 組織使用會封鎖 Kilo 的 IP 允許清單。請聯絡 hi@kilocode.ai 尋求協助,然後重新啟用程式碼審查員。", + "recoveryLabel": "聯絡支援" + }, + "gitlabProjectAccessRequired": { + "title": "程式碼審查員需要關注", + "description": "程式碼審查員已停用,因為 Kilo 無法為此專案建立 GitLab 專案存取權杖。請授予 Maintainer 存取權限或啟用專案存取權杖,然後重新啟用程式碼審查員。", + "recoveryLabel": "更新 GitLab 整合" + }, + "byokInvalidKey": { + "title": "程式碼審查員需要關注", + "description": "程式碼審查員已停用,因為所選的 BYOK API 金鑰無效、已撤銷或缺少權限。請更新金鑰或選擇其他模型,然後重新啟用程式碼審查員。", + "recoveryLabel": "更新 BYOK 設定" + }, + "selectedModelUnavailable": { + "title": "程式碼審查員需要關注", + "description": "程式碼審查員已停用,因為所選模型無法用於雲端代理工作階段。請選擇可用的模型,然後重新啟用程式碼審查員。", + "recoveryLabel": "更新程式碼審查員設定" + }, + "repeatedRepositoryCloneTimeout": { + "title": "程式碼審查員需要關注", + "description": "程式碼審查員在今日三次存放庫複製逾時後已停用。請聯絡 hi@kilocode.ai 尋求協助,然後重新啟用程式碼審查員。", + "recoveryLabel": "聯絡支援" + } + }, + "unknownError": "未知錯誤" }, "securityAgent": { "filter": { @@ -1488,6 +1546,23 @@ "belowThreshold": "發現低於自動嚴重程度門檻。通過安全閘門後,手動修復仍可開始。", "beforeEnablement": "分析在啟用自動修復前完成。通過安全閘門後,手動修復仍可開始。", "generic": "此發現無法進行修復。" + }, + "commandFailure": { + "ownerCapReached": "分析容量已滿。請等待進行中的分析完成,然後重試。", + "githubTokenUnavailable": "GitHub 授權需要關注。請重新授權 GitHub App,然後重試。", + "githubAuthInvalid": "GitHub 授權需要關注。請重新授權 GitHub App,然後重試。", + "findingUnavailable": "發現已不再可用。請重新整理發現;如果它仍然開啟,請重試。", + "repositoryUnavailable": "存放庫已不再對 GitHub App 可用。請重新整理存放庫存取權限,然後重試。", + "invalidDismissTarget": "無法忽略此發現,因為其 Dependabot 目標無效。", + "commandStalled": "排入佇列的動作未能及時完成。請重試動作。", + "queueRetriesExhausted": "動作經多次嘗試後仍無法完成。請重試動作。", + "queueAdmissionFailed": "排入佇列的動作無法受理。請重試動作。", + "generic": "排入佇列的動作失敗。請重試動作。" + }, + "analysisMode": { + "auto": "自動", + "shallow": "淺度", + "deep": "深度" } }, "agents": { @@ -1951,7 +2026,8 @@ "addToFavorites": "將 {{name}} 加入最愛", "removeFromFavorites": "將 {{name}} 從最愛移除", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "中" + "thinkingEffortMedium": "中", + "sessionModel": "工作階段模型" }, "attachmentPreview": { "openFailedRetry": "無法開啟檔案。請再試一次。", @@ -2083,7 +2159,8 @@ }, "addCredits": { "cta": "新增點數", - "description": "新增點數以維持使用量運作。" + "description": "新增點數以維持使用量運作。", + "billingPage": "帳單頁面" }, "deviceSessions": { "couldNotLoad": "無法載入工作階段", @@ -2271,7 +2348,10 @@ "restoreFailed": "恢復購買失敗。請再試一次。", "purchaseFailed": "無法完成購買。", "purchaseStartFailed": "無法開始 App Store 購買。", - "purchaseOwnedByAnotherAccount": "此 Apple 帳戶上的 Kilo Pass 屬於另一個 Kilo 帳戶。" + "purchaseOwnedByAnotherAccount": "此 Apple 帳戶上的 Kilo Pass 屬於另一個 Kilo 帳戶。", + "couldNotConnectToAppStore": "無法連線到 App Store。請檢查連線後再試一次。", + "noMatchingProducts": "App Store 沒有傳回相符的 Kilo Pass 產品。", + "purchaseMissingSignedTransaction": "App Store 購買未包含已簽署的交易 JWS。" }, "consent": { "kilo": "Kilo", @@ -2779,7 +2859,10 @@ "diff": { "selectedTapToChange": "已選取 {{label}},點擊即可變更選取", "tapToComment": "{{label}},點擊即可留言", - "truncationBanner": "正在顯示前 {{limit}} 個(共 {{total}} 個)已變更檔案 — GitHub API 限制" + "truncationBanner": "正在顯示前 {{limit}} 個(共 {{total}} 個)已變更檔案 — GitHub API 限制", + "statusAdded": "已新增", + "statusContext": "內容", + "statusDeleted": "已刪除" }, "linkPasteClipboardEmpty": "剪貼簿是空的", "linkPasteNotAPullRequest": "不是 GitHub 提取請求的連結", @@ -2793,6 +2876,11 @@ "reviewNotSubmitted": "此審查無法原樣提交。PR 可能已變更,或您無法審查自己的拉取請求。", "couldNotPostComment": "無法發布留言。", "couldNotSubmitReview": "無法提交審查。請檢查連線後再試一次。" + }, + "operation": { + "couldNotReply": "無法回覆。", + "couldNotCompleteAction": "無法完成此動作。", + "mergeResultDefaultError": "GitHub 未完成合併。" } }, "organization": { @@ -2810,7 +2898,17 @@ "emptyTitle": "沒有點數動態", "expires": "到期時間 {{date}}", "title": "點數動態", - "transactionFallback": "點數交易" + "transactionFallback": "點數交易", + "category": { + "organization_custom": "組織自訂", + "parent_to_child_transfer_in": "父組織至子組織轉入", + "parent_to_child_transfer_out": "父組織至子組織轉出", + "oss-sponsorship": "開源贊助", + "oss-monthly-reset": "開源每月重設", + "team-topup-bonus-2025": "團隊加值獎勵 2025", + "accounting_adjustment": "會計調整", + "credits_expired": "點數已到期" + } }, "hub": { "balance": "餘額", @@ -2837,11 +2935,16 @@ "emptyTitle": "沒有發票", "invoiceFallback": "發票", "title": "發票", - "statusPaid": "已付款", - "statusOpen": "未付款", - "statusVoid": "已作廢", "downloadFailed": "無法下載發票。請檢查連線後再試一次。", - "sharingUnavailable": "此裝置上無法使用分享。" + "sharingUnavailable": "此裝置上無法使用分享。", + "status": { + "paid": "已付款", + "open": "未付款", + "void": "已作廢", + "draft": "草稿", + "uncollectible": "無法收回", + "unknown": "未知" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2941,7 +3044,8 @@ "promptTitle": "您覺得 Kilo 應用程式如何?", "rateKilo": "為 Kilo 評分", "sorryMessage": "請告訴我們哪裡需要改進。負責此應用程式的工程師會閱讀每一份報告!", - "sorryTitle": "很遺憾聽到您這麼說!" + "sorryTitle": "很遺憾聽到您這麼說!", + "emailSubject": "行動應用程式意見回饋" }, "authErrors": { "emailAlreadyUsed": "使用此電子郵件的帳戶已存在,但登入方式不同。請嘗試其他方式,或使用「$t(login.moreSignInOptions)」。", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "收集的資料", "free": "免費", - "couldNotUpdateFavorites": "無法更新我的最愛" + "couldNotUpdateFavorites": "無法更新我的最愛", + "thinkingEffort": { + "none": "無", + "minimal": "極少", + "low": "低", + "medium": "中", + "high": "高", + "xhigh": "極高", + "max": "最高" + } } } diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index 16a42e19b4..2a583002ff 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -573,7 +573,10 @@ "diff": { "selectedTapToChange": "Kukhethiwe {{label}}, thepha ukuze ushintshe okukhethiwe", "tapToComment": "{{label}}, thepha ukuze ubhale amazwana", - "truncationBanner": "Kuboniswa amafayela okuqala angu-{{limit}} kwangu-{{total}} aguquliwe — umkhawulo we-GitHub API" + "truncationBanner": "Kuboniswa amafayela okuqala angu-{{limit}} kwangu-{{total}} aguquliwe — umkhawulo we-GitHub API", + "statusAdded": "Kwengeziwe", + "statusContext": "Umongo", + "statusDeleted": "Kususiwe" }, "linkPasteClipboardEmpty": "Ikliphuphodi ayinalutho", "linkPasteNotAPullRequest": "Akuyona isixhumanisi sokudonsa se-GitHub", @@ -587,6 +590,11 @@ "reviewNotSubmitted": "Lokhu kubuyekeza akukwazi ukuthunyelwa njengoba kunjalo. I-PR kungenzeka ishintshile, noma awukwazi ukubuyekeza isicelo sakho sokudonsa.", "couldNotPostComment": "Asikwazanga ukuthumela amazwana.", "couldNotSubmitReview": "Asikwazanga ukuthumela ukubuyekeza. Hlola ukuxhumana kwakho bese uzama futhi." + }, + "operation": { + "couldNotReply": "Asikwazanga ukuphendula.", + "couldNotCompleteAction": "Asikwazanga ukuqeda lesi senzo.", + "mergeResultDefaultError": "I-GitHub ayizange iqede ukuhlanganisa." } }, "notifications": { @@ -821,7 +829,11 @@ "paymentPastDue": "Inkokhelo isidlutshiwe. Uyacelwa ubuyekeze indlela yakho yokukhokha.", "subscriptionCancels": "Ukubhalisa kuyakansela nge-{{date}}", "trialDaysRemaining": "Isilingo: izinsuku {{remaining}} ezisele", - "trialEndingSoon": "Isilingo siyaphela maduze: {{remaining}}" + "trialEndingSoon": "Isilingo siyaphela maduze: {{remaining}}", + "planName": { + "commit": "Zibophelela", + "standard": "I-Standard" + } }, "changelog": { "title": "Yini Esha", @@ -1189,7 +1201,8 @@ "strongArm": "Ingalo enamandla", "talisman": "Ithalimane" }, - "remoteSpawnFilesNotSupported": "Lesi simo asikwazi ukwamukela amafayela." + "remoteSpawnFilesNotSupported": "Lesi simo asikwazi ukwamukela amafayela.", + "instanceSwitcherTitle": "Isimo se-KiloClaw" }, "codeReviewer": { "focusAreas": { @@ -1387,7 +1400,60 @@ "failed": "Kwehlulekile", "cancelled": "Kukhanseliwe", "interrupted": "Kuphazamisekile" - } + }, + "reviewStyle": { + "strict": "Okungqongqo", + "balanced": "Kulingene", + "lenient": "Okunomusa", + "roast": "Roast" + }, + "focusArea": { + "security": "Ukuphepha", + "performance": "Ukusebenza", + "bugs": "Amaphutha", + "style": "Isitayela", + "testing": "Ukuhlola", + "documentation": "Imibhalo" + }, + "gateThreshold": { + "off": "Ivaliwe", + "all": "Konke", + "warning": "Isexwayiso", + "critical": "Kubucayi" + }, + "actionRequired": { + "githubInstallationRequired": { + "title": "I-Code Reviewer idinga ukunakwa", + "description": "I-Code Reviewer ikhashiwe ngoba i-Kilo ayikwazi ukufinyelela le repository ngokufakwa okusebenzayo kwe-GitHub App. Buyekeza ukufakwa kwe-GitHub App, bese uvula kabusha i-Code Reviewer.", + "recoveryLabel": "Buyekeza i-GitHub App" + }, + "githubIpAllowList": { + "title": "I-Code Reviewer idinga ukunakwa", + "description": "I-Code Reviewer ikhashiwe ngoba le nhlangano ye-GitHub isebenzisa uhlu lokuvumela lwe-IP oluvimba i-Kilo. Xhumana no-hi@kilocode.ai ukuze uthole usizo, bese uvula kabusha i-Code Reviewer.", + "recoveryLabel": "Xhumana nosekelo" + }, + "gitlabProjectAccessRequired": { + "title": "I-Code Reviewer idinga ukunakwa", + "description": "I-Code Reviewer ikhashiwe ngoba i-Kilo ayikwazi ukudala i-GitLab Project Access Token yaleli phrojekthi. Nika ukufinyelela kuka-Maintainer noma vumela ama-Project Access Token, bese uvula kabusha i-Code Reviewer.", + "recoveryLabel": "Buyekeza ukuhlanganiswa kwe-GitLab" + }, + "byokInvalidKey": { + "title": "I-Code Reviewer idinga ukunakwa", + "description": "I-Code Reviewer ikhashiwe ngoba ukhiye we-BYOK API okhethiwe awuvumelekile, uhoxisiwe, noma awunayo imvume. Buyekeza ukhiye noma khetha enye imodeli, bese uvula kabusha i-Code Reviewer.", + "recoveryLabel": "Buyekeza izilungiselelo ze-BYOK" + }, + "selectedModelUnavailable": { + "title": "I-Code Reviewer idinga ukunakwa", + "description": "I-Code Reviewer ikhashiwe ngoba imodeli ekhethiwe ayitholakali kumaseshini e-cloud agent. Khetha imodeli etholakalayo, bese uvula kabusha i-Code Reviewer.", + "recoveryLabel": "Buyekeza izilungiselelo ze-Code Reviewer" + }, + "repeatedRepositoryCloneTimeout": { + "title": "I-Code Reviewer idinga ukunakwa", + "description": "I-Code Reviewer ikhashiwe ngemva kokuphelelwa yisikhathi kokuklonywa kwama-repository amathathu namuhla. Xhumana no-hi@kilocode.ai ukuze uthole usizo, bese uvula kabusha i-Code Reviewer.", + "recoveryLabel": "Xhumana nosekelo" + } + }, + "unknownError": "Iphutha elingaziwa" }, "securityAgent": { "filter": { @@ -1927,6 +1993,23 @@ "belowThreshold": "Ukutholakele kungaphansi komkhawulo wobunzima ozenzakalelayo. Ukulungisa okwenziwa ngesandla kusengaqala lapho izingosi zokuphepha zidlula.", "beforeEnablement": "Ukuhlaziywa kuqediwe ngaphambi kokuthi kuvulwe ukulungisa okuzenzakalelayo. Ukulungisa okwenziwa ngesandla kusengaqala lapho izingosi zokuphepha zidlula.", "generic": "Ukulungisa akutholakali kulokhu kutholakele." + }, + "commandFailure": { + "ownerCapReached": "Amandla okuhlaziya agcwele. Linda ukuhlaziywa okusebenzayo kuqede, bese uzama futhi.", + "githubTokenUnavailable": "Ukugunyazwa kwe-GitHub kudinga ukunakwa. Qinisekisa kabusha i-GitHub App, bese uzama futhi.", + "githubAuthInvalid": "Ukugunyazwa kwe-GitHub kudinga ukunakwa. Qinisekisa kabusha i-GitHub App, bese uzama futhi.", + "findingUnavailable": "Ukutholakele akusatholakali. Vuselela okutholakele bese uzama futhi uma kusavuliwe.", + "repositoryUnavailable": "I-repository ayisatholakali ku-GitHub App. Vuselela ukufinyelela kwe-repository, bese uzama futhi.", + "invalidDismissTarget": "Ukutholakele akukwazi ukuchithwa ngoba ithagethi yayo ye-Dependabot ayivumelekile.", + "commandStalled": "Isenzo esimisiwe asiqedanga ngesikhathi. Zama isenzo futhi.", + "queueRetriesExhausted": "Isenzo asikwazanga ukuqedwa ngemva kwemizamo eminingana. Zama isenzo futhi.", + "queueAdmissionFailed": "Isenzo esimisiwe asikwazanga ukwamukelwa. Zama isenzo futhi.", + "generic": "Isenzo esimisiwe sehlulekile. Zama isenzo futhi." + }, + "analysisMode": { + "auto": "Okuzenzakalelayo", + "shallow": "Okungajulile", + "deep": "Okujulile" } }, "agents": { @@ -2390,7 +2473,8 @@ "addToFavorites": "Engeza {{name}} kokuthandiwe", "removeFromFavorites": "Susa {{name}} kokuthandiwe", "thinkingEffortXhigh": "XH", - "thinkingEffortMedium": "Med" + "thinkingEffortMedium": "Med", + "sessionModel": "Imodeli yeseshini" }, "attachmentPreview": { "openFailedRetry": "Ukwenza ngaphandle ifayela kwehlulekile. Sicela uzame futhi.", @@ -2522,7 +2606,8 @@ }, "addCredits": { "cta": "Engeza amakhredithi", - "description": "Engeza amakhredithi ukuze uqhubeke nokusetshenziswa." + "description": "Engeza amakhredithi ukuze uqhubeke nokusetshenziswa.", + "billingPage": "ikhasi lokukhokha" }, "deviceSessions": { "couldNotLoad": "Ayikwazanga ukulayisha amaseshini", @@ -2710,7 +2795,10 @@ "restoreFailed": "Kwehlulekile ukubuyisela okuthengiwe. Zama futhi.", "purchaseFailed": "Kwehlulekile ukuqeda ukuthenga.", "purchaseStartFailed": "Kwehlulekile ukuqala ukuthenga kwe-App Store.", - "purchaseOwnedByAnotherAccount": "I-Kilo Pass kule Apple Account ingeyenye i-akhawunti ye-Kilo." + "purchaseOwnedByAnotherAccount": "I-Kilo Pass kule Apple Account ingeyenye i-akhawunti ye-Kilo.", + "couldNotConnectToAppStore": "Asikwazanga ukuxhuma ku-App Store. Bheka ukuxhumana kwakho bese uzama futhi.", + "noMatchingProducts": "Akukho mikhiqizo ye-Kilo Pass ehambisanayo ebuyiswe yi-App Store.", + "purchaseMissingSignedTransaction": "Ukuthenga kwe-App Store akuzange kufake i-JWS esayiniwe yenqubo." }, "consent": { "kilo": "I-Kilo", @@ -2806,7 +2894,8 @@ "needsWork": "Kudinga umsebenzi", "sorryTitle": "Siyaxolisa ukukuzwa lokho!", "sorryMessage": "Sicela usazise ukuthi yini edinga ukuthuthuka. Unjiniyela ophethe i-app ufunda yonke imibiko!", - "emailUs": "Sithumele i-imeyili" + "emailUs": "Sithumele i-imeyili", + "emailSubject": "Impendulo ye-mobile app" }, "organization": { "boundary": { @@ -2823,7 +2912,17 @@ "emptyTitle": "Akukho msebenzi wamakhredithi", "expires": "Iphela {{date}}", "title": "Umsebenzi wamakhredithi", - "transactionFallback": "Ukwenziwa kwamakhredithi" + "transactionFallback": "Ukwenziwa kwamakhredithi", + "category": { + "organization_custom": "Inhlangano ngokwezifiso", + "parent_to_child_transfer_in": "Ukudluliswa okungenayo kusuka kumzali kuya kumntwana", + "parent_to_child_transfer_out": "Ukudluliswa okuphumayo kusuka kumzali kuya kumntwana", + "oss-sponsorship": "Ukuxhaswa kwe-OSS", + "oss-monthly-reset": "Ukusetha kabusha kwanyanga zonke kwe-OSS", + "team-topup-bonus-2025": "Ibhonasi ye-team top-up 2025", + "accounting_adjustment": "Ukulungiswa kwezimali", + "credits_expired": "Amakhredithi aphelelwe yisikhathi" + } }, "inviteMember": { "emailError": "Faka ikheli le-imeyili elivumelekile", @@ -2840,12 +2939,17 @@ "emptyDescription": "Ama-invoyisi akhiqizwa ngokuzenzakalelayo ngomjikelezo ngamunye wokukhokha futhi azovela lapha uma inhlangano yakho isikhokhiswa.", "emptyTitle": "Azikho izinvoyisi", "invoiceFallback": "I-invoyisi", - "statusOpen": "Vulekile", - "statusPaid": "Ikhokhiwe", - "statusVoid": "Ayisebenzi", "title": "Ama-invoyisi", "downloadFailed": "Asikwazanga ukulanda i-invoyisi. Hlola ukuxhumana kwakho bese uzama futhi.", - "sharingUnavailable": "Ukwabelana akutholakali kule divayisi." + "sharingUnavailable": "Ukwabelana akutholakali kule divayisi.", + "status": { + "paid": "Ikhokhiwe", + "open": "Vulekile", + "void": "Ayisebenzi", + "draft": "Okusalungiswa", + "uncollectible": "Okungakhokhiwa", + "unknown": "Okungaziwa" + } }, "lowBalanceAlert": { "emailPlaceholder": "name@company.com", @@ -2971,6 +3075,15 @@ "models": { "dataCollected": "Idatha eqoqiwe", "free": "Mahhala", - "couldNotUpdateFavorites": "Akukwazanga ukubuyekeza okuthandwayo" + "couldNotUpdateFavorites": "Akukwazanga ukubuyekeza okuthandwayo", + "thinkingEffort": { + "none": "Lutho", + "minimal": "Okuncane kakhulu", + "low": "Okuphansi", + "medium": "Okumaphakathi", + "high": "Okuphezulu", + "xhigh": "Okuphezulu kakhulu", + "max": "Okuphezulu kunakho konke" + } } } diff --git a/apps/mobile/src/lib/feedback.ts b/apps/mobile/src/lib/feedback.ts index 7ec8c40c80..05bbb878e0 100644 --- a/apps/mobile/src/lib/feedback.ts +++ b/apps/mobile/src/lib/feedback.ts @@ -23,7 +23,7 @@ async function openSupportEmail(userId: string | undefined) { `OS: ${Platform.OS} ${Platform.Version}`, ].join('\n'); const body = `\n\n---\n${envDetails}`; - const url = `mailto:${SUPPORT_EMAIL}?subject=${encodeURIComponent('mobile app feedback')}&body=${encodeURIComponent(body)}`; + const url = `mailto:${SUPPORT_EMAIL}?subject=${encodeURIComponent(i18n.t('feedback.emailSubject'))}&body=${encodeURIComponent(body)}`; try { await Linking.openURL(url); } catch { diff --git a/apps/mobile/src/lib/hooks/security-command-failure-copy.ts b/apps/mobile/src/lib/hooks/security-command-failure-copy.ts new file mode 100644 index 0000000000..c29d145747 --- /dev/null +++ b/apps/mobile/src/lib/hooks/security-command-failure-copy.ts @@ -0,0 +1,38 @@ +import { i18n } from '@/i18n'; +import { type SecurityCommand } from '@/lib/security-agent'; + +// Failure copy is chosen from a stable result code. Web still reads the +// shared English strings in packages/app-shared/src/security-agent/commands.ts, +// so mobile maps each code to a catalog key and translates at toast time. +const FAILURE_MESSAGE_KEY_BY_RESULT_CODE = { + OWNER_CAP_REACHED: 'securityAgent.commandFailure.ownerCapReached', + GITHUB_TOKEN_UNAVAILABLE: 'securityAgent.commandFailure.githubTokenUnavailable', + GITHUB_AUTH_INVALID: 'securityAgent.commandFailure.githubAuthInvalid', + FINDING_UNAVAILABLE: 'securityAgent.commandFailure.findingUnavailable', + REPOSITORY_UNAVAILABLE: 'securityAgent.commandFailure.repositoryUnavailable', + INVALID_DISMISS_TARGET: 'securityAgent.commandFailure.invalidDismissTarget', + COMMAND_STALLED: 'securityAgent.commandFailure.commandStalled', + QUEUE_RETRIES_EXHAUSTED: 'securityAgent.commandFailure.queueRetriesExhausted', +} satisfies Record; + +const QUEUE_ADMISSION_FAILED_KEY = 'securityAgent.commandFailure.queueAdmissionFailed'; +const GENERIC_FAILURE_KEY = 'securityAgent.commandFailure.generic'; + +// Mirrors getSecurityCommandFailureMessage in packages/app-shared: a known +// result code translates to catalog copy; QUEUE_ADMISSION_FAILED and unknown +// codes keep lastErrorRedacted when present, else the translated fallback. +export function getSecurityCommandFailureMessage(command: SecurityCommand): string { + const knownKey = + command.resultCode && command.resultCode in FAILURE_MESSAGE_KEY_BY_RESULT_CODE + ? FAILURE_MESSAGE_KEY_BY_RESULT_CODE[ + command.resultCode as keyof typeof FAILURE_MESSAGE_KEY_BY_RESULT_CODE + ] + : undefined; + if (knownKey) { + return i18n.t(knownKey); + } + if (command.resultCode === 'QUEUE_ADMISSION_FAILED') { + return command.lastErrorRedacted ?? i18n.t(QUEUE_ADMISSION_FAILED_KEY); + } + return command.lastErrorRedacted ?? i18n.t(GENERIC_FAILURE_KEY); +} diff --git a/apps/mobile/src/lib/hooks/use-available-models.ts b/apps/mobile/src/lib/hooks/use-available-models.ts index 82ce2d0f03..69c94f1199 100644 --- a/apps/mobile/src/lib/hooks/use-available-models.ts +++ b/apps/mobile/src/lib/hooks/use-available-models.ts @@ -5,7 +5,21 @@ import { API_BASE_URL } from '@/lib/config'; import { getAuthTokenForRequest } from '@/lib/auth/token-owner'; import { i18n } from '@/i18n'; import { collator } from '@/lib/intl-cache'; -import { capitalize } from '@/lib/utils'; + +const THINKING_EFFORT_KEYS = { + none: 'models.thinkingEffort.none', + minimal: 'models.thinkingEffort.minimal', + low: 'models.thinkingEffort.low', + medium: 'models.thinkingEffort.medium', + high: 'models.thinkingEffort.high', + xhigh: 'models.thinkingEffort.xhigh', + max: 'models.thinkingEffort.max', +} satisfies Record; + +/** Looks up a possibly-unknown key in a literal dictionary without widening its type. */ +function lookup(dictionary: Readonly>, key: string): V | undefined { + return (dictionary as Readonly>)[key]; +} // ── Types ───────────────────────────────────────────────────────────── @@ -94,10 +108,8 @@ export function toModelOptions(data: ModelResponse | undefined): ModelOption[] { } export function thinkingEffortLabel(variant: string): string { - if (variant === 'xhigh') { - return 'Extra High'; - } - return capitalize(variant); + const key = lookup(THINKING_EFFORT_KEYS, variant); + return key ? i18n.t(key) : variant; } // ── Helpers ────────────────────────────────────────────────────────── diff --git a/apps/mobile/src/lib/hooks/use-code-reviews.ts b/apps/mobile/src/lib/hooks/use-code-reviews.ts index fc587187e2..0f482e9c99 100644 --- a/apps/mobile/src/lib/hooks/use-code-reviews.ts +++ b/apps/mobile/src/lib/hooks/use-code-reviews.ts @@ -1,6 +1,7 @@ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { hasInFlightReview, isInFlightReviewStatus } from '@kilocode/app-shared/code-review'; +import { i18n } from '@/i18n'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { PERSONAL_SCOPE } from '@/lib/hooks/use-code-reviewer'; import { trpcClient, useTRPC } from '@/lib/trpc'; @@ -142,7 +143,7 @@ export async function createManualReviewMutationFn(scope: string, vars: CreateMa // used by other code-reviews mutations, so a domain failure still routes // to onError without treating a real success payload as a failure. if ((result as { success?: boolean }).success === false) { - throw new Error((result as { error?: string }).error ?? 'Unknown error'); + throw new Error((result as { error?: string }).error ?? i18n.t('codeReviewer.unknownError')); } return result; } diff --git a/apps/mobile/src/lib/hooks/use-security-agent-commands.ts b/apps/mobile/src/lib/hooks/use-security-agent-commands.ts index 56f19bbadb..dd9d34f37d 100644 --- a/apps/mobile/src/lib/hooks/use-security-agent-commands.ts +++ b/apps/mobile/src/lib/hooks/use-security-agent-commands.ts @@ -1,5 +1,4 @@ import { - getSecurityCommandFailureMessage, getSecurityCommandInvalidationScopes, isActiveSecurityCommand, isPersonalSecurityScope, @@ -11,6 +10,7 @@ import { useEffect, useRef, useState } from 'react'; import { type QueryClient, useQueries, useQuery, useQueryClient } from '@tanstack/react-query'; import { i18n } from '@/i18n'; +import { getSecurityCommandFailureMessage } from '@/lib/hooks/security-command-failure-copy'; import { announcingToast } from '@/lib/a11y/announcing-toast'; import { reconcileFirstPage } from '@/lib/query/infinite-retention'; import { scheduleCacheMaintenance } from '@/lib/query/schedule-cache-maintenance'; diff --git a/apps/mobile/src/lib/hooks/use-session-model-options.ts b/apps/mobile/src/lib/hooks/use-session-model-options.ts index 34aa7bbc7f..5cf6265512 100644 --- a/apps/mobile/src/lib/hooks/use-session-model-options.ts +++ b/apps/mobile/src/lib/hooks/use-session-model-options.ts @@ -9,6 +9,7 @@ import { } from '@kilocode/cloud-agent-sdk'; import { sortRemoteModelCatalogProviders } from '@kilocode/cloud-agent-sdk/remote-model-order'; +import { i18n } from '@/i18n'; import { type ModelOption } from '@/lib/hooks/use-available-models'; type SessionModelSource = @@ -115,7 +116,7 @@ function buildUnavailableRemoteOptions(input: BuildSessionModelOptionsInput): Se ? createUnavailableOption(currentSelection.model) : ({ id: 'remote-session-model', - name: 'Session model', + name: i18n.t('agentChat.modelSelector.sessionModel'), displayId: '', variants: [], isPreferred: false, diff --git a/apps/mobile/src/lib/kilo-pass/store-products-loader.test.ts b/apps/mobile/src/lib/kilo-pass/store-products-loader.test.ts index 02909c61c1..f868220a57 100644 --- a/apps/mobile/src/lib/kilo-pass/store-products-loader.test.ts +++ b/apps/mobile/src/lib/kilo-pass/store-products-loader.test.ts @@ -2,9 +2,10 @@ import { describe, expect, it, vi } from 'vitest'; import { loadAppStoreKiloPassProducts, - NO_MATCHING_KILO_PASS_PRODUCTS_MESSAGE, + NO_MATCHING_KILO_PASS_PRODUCTS_KEY, } from './store-products-loader'; import { type BackendStoreKiloPassProduct } from './store-products'; +import { i18n } from '@/i18n'; const backendProducts: BackendStoreKiloPassProduct[] = [ { @@ -68,6 +69,6 @@ describe('loadAppStoreKiloPassProducts', () => { products: backendProducts, }), }) - ).rejects.toThrow(NO_MATCHING_KILO_PASS_PRODUCTS_MESSAGE); + ).rejects.toThrow(i18n.t(NO_MATCHING_KILO_PASS_PRODUCTS_KEY)); }); }); diff --git a/apps/mobile/src/lib/kilo-pass/store-products-loader.ts b/apps/mobile/src/lib/kilo-pass/store-products-loader.ts index 14a6d4bc7d..e46a7a2000 100644 --- a/apps/mobile/src/lib/kilo-pass/store-products-loader.ts +++ b/apps/mobile/src/lib/kilo-pass/store-products-loader.ts @@ -1,3 +1,5 @@ +import { i18n } from '@/i18n'; + import { type AppStoreKiloPassProduct, type BackendStoreKiloPassProduct, @@ -5,8 +7,7 @@ import { type StoreKiloPassProduct, } from './store-products'; -export const NO_MATCHING_KILO_PASS_PRODUCTS_MESSAGE = - 'No matching Kilo Pass products were returned by App Store.'; +export const NO_MATCHING_KILO_PASS_PRODUCTS_KEY = 'kiloPass.noMatchingProducts'; export async function loadAppStoreKiloPassProducts(params: { fetchStoreProducts: (productSkus: string[]) => Promise; @@ -31,7 +32,7 @@ export async function loadAppStoreKiloPassProducts(params: { }); if (products.length === 0) { - throw new Error(NO_MATCHING_KILO_PASS_PRODUCTS_MESSAGE); + throw new Error(i18n.t(NO_MATCHING_KILO_PASS_PRODUCTS_KEY)); } return products; diff --git a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-products.ts b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-products.ts index c1d85dfea6..44770aa772 100644 --- a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-products.ts +++ b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-products.ts @@ -2,6 +2,7 @@ import { useCallback, useEffect, useState } from 'react'; import { Platform } from 'react-native'; import { useQuery, useQueryClient } from '@tanstack/react-query'; +import { i18n } from '@/i18n'; import { useCurrentUserId } from '@/lib/hooks/use-current-user-id'; import { useTRPC } from '@/lib/trpc'; import { type StoreKiloPassProduct } from './store-products'; @@ -12,8 +13,7 @@ const STORE_KILO_PASS_PRODUCTS_STALE_TIME_MS = 5 * 60 * 1000; // Fixed bound on the App Store connection handshake — raise if real // devices routinely need longer than this to connect. const APP_STORE_CONNECTION_TIMEOUT_MS = 8000; -const APP_STORE_CONNECTION_TIMEOUT_MESSAGE = - 'Could not connect to the App Store. Check your connection and try again.'; +const APP_STORE_CONNECTION_TIMEOUT_MESSAGE = 'kiloPass.couldNotConnectToAppStore'; export type StoreKiloPassProductsOptions = { /** Whether the App Store connection (from the IAP owner) is established. */ @@ -36,7 +36,7 @@ export function useStoreKiloPassProducts(options: StoreKiloPassProductsOptions) return undefined; } const timer = setTimeout(() => { - setStoreErrorMessage(current => current ?? APP_STORE_CONNECTION_TIMEOUT_MESSAGE); + setStoreErrorMessage(current => current ?? i18n.t(APP_STORE_CONNECTION_TIMEOUT_MESSAGE)); }, APP_STORE_CONNECTION_TIMEOUT_MS); return () => { clearTimeout(timer); diff --git a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts index e238e06842..990e4e1f47 100644 --- a/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts +++ b/apps/mobile/src/lib/kilo-pass/use-store-kilo-pass-purchase.ts @@ -122,7 +122,7 @@ export function isRecoverableKiloPassPurchase( function getPurchaseToken(purchase: Purchase): string { const token = purchase.purchaseToken; if (!token) { - throw new Error('App Store purchase did not include a signed transaction JWS.'); + throw new Error(i18n.t('kiloPass.purchaseMissingSignedTransaction')); } return token; } diff --git a/apps/mobile/src/lib/kiloclaw-display.ts b/apps/mobile/src/lib/kiloclaw-display.ts index 5b1c0812d6..a179d3c922 100644 --- a/apps/mobile/src/lib/kiloclaw-display.ts +++ b/apps/mobile/src/lib/kiloclaw-display.ts @@ -1,3 +1,5 @@ +import { i18n } from '@/i18n'; + type KiloClawDisplayInstance = { botName?: string | null; name?: string | null; @@ -23,7 +25,7 @@ export function kiloclawConversationEyebrow(instance: KiloClawDisplayInstance | export function kiloclawInstanceSwitcherTitle(instance: KiloClawDisplayInstance | undefined) { return ( firstDisplayValue([instance?.botName, instance?.name, instance?.organizationName]) ?? - 'KiloClaw instance' + i18n.t('kiloclaw.instanceSwitcherTitle') ); } diff --git a/apps/mobile/src/lib/pr-review/diff/parse-patch.ts b/apps/mobile/src/lib/pr-review/diff/parse-patch.ts index b882bedc10..98ff3434fb 100644 --- a/apps/mobile/src/lib/pr-review/diff/parse-patch.ts +++ b/apps/mobile/src/lib/pr-review/diff/parse-patch.ts @@ -19,10 +19,9 @@ // so this module is testable in plain Node and reusable by any future // non-mobile surface (web, CLI, etc.). -export type DiffLineType = 'context' | 'add' | 'del'; +import { i18n } from '@/i18n'; -/** Human-readable, screen-reader-friendly status word for a diff line. */ -type DiffLineStatusWord = 'Added' | 'Deleted' | 'Context'; +export type DiffLineType = 'context' | 'add' | 'del'; /** * Single-character gutter glyph for a diff line. The CHARACTER is the @@ -41,14 +40,14 @@ type DiffLineMarker = '+' | '-' | '·'; * The status word for a diff line. Used in accessibility labels and any * future surface that needs to describe the line type in prose. */ -export function diffLineStatusWord(type: DiffLineType): DiffLineStatusWord { +export function diffLineStatusWord(type: DiffLineType): string { if (type === 'add') { - return 'Added'; + return i18n.t('prReview.diff.statusAdded'); } if (type === 'del') { - return 'Deleted'; + return i18n.t('prReview.diff.statusDeleted'); } - return 'Context'; + return i18n.t('prReview.diff.statusContext'); } /** diff --git a/apps/mobile/src/lib/pr-review/merge/merge-result-error.ts b/apps/mobile/src/lib/pr-review/merge/merge-result-error.ts index ce0cb16d1c..0eb0e76a35 100644 --- a/apps/mobile/src/lib/pr-review/merge/merge-result-error.ts +++ b/apps/mobile/src/lib/pr-review/merge/merge-result-error.ts @@ -10,6 +10,8 @@ // Routing it through the BAD_REQUEST branch would disable the submit // button and lock the user out of retrying. +import { i18n } from '@/i18n'; + export class MergeNotCompletedError extends Error { /** The sha GitHub reported in the merge response, when available. */ readonly sha?: string; @@ -17,7 +19,7 @@ export class MergeNotCompletedError extends Error { readonly reason?: string; constructor(args: { message?: string; sha?: string; reason?: string } = {}) { - super(args.message ?? 'GitHub did not complete the merge.'); + super(args.message ?? i18n.t('prReview.operation.mergeResultDefaultError')); this.name = 'MergeNotCompletedError'; this.sha = args.sha; this.reason = args.reason; diff --git a/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts b/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts index 0f9d81a034..36f65b69a2 100644 --- a/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts +++ b/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts @@ -4,6 +4,7 @@ // per-surface PR copy. The per-intent key and the raw markers live in // `@/lib/operation-key`, which every ledgered surface shares. +import { i18n } from '@/i18n'; import { isOperationInProgress } from '@/lib/operation-key'; import { classifyPrReviewMutationError } from '@/lib/pr-review/classify-pr-review-query-state'; @@ -18,11 +19,12 @@ export type PrMutationSurface = 'create-comment' | 'submit-review' | 'reply' | ' // Existing retryable fallback copy per surface (mirrors the sheet/composer // defaults so an in-progress duplicate reads like a normal retryable failure). +// Values are catalog keys, translated at the use site. const PR_SURFACE_RETRYABLE_COPY = { - 'create-comment': 'Could not post comment.', - 'submit-review': 'Could not submit review. Check your connection and try again.', - reply: 'Could not reply.', - merge: 'Could not merge pull request.', + 'create-comment': 'prReview.mutationError.couldNotPostComment', + 'submit-review': 'prReview.mutationError.couldNotSubmitReview', + reply: 'prReview.operation.couldNotReply', + merge: 'prReview.merge.couldNotMerge', } satisfies Record; export function isPrOperationAmbiguous(error: unknown): boolean { @@ -54,7 +56,7 @@ export function isPrMutationRetryable(error: unknown): boolean { */ export function mapPrOperationError(error: T, surface: PrMutationSurface): T | Error { if (isOperationInProgress(error)) { - return new Error(PR_SURFACE_RETRYABLE_COPY[surface]); + return new Error(i18n.t(PR_SURFACE_RETRYABLE_COPY[surface])); } if (isPrOperationAmbiguous(error)) { return new Error(PR_OPERATION_AMBIGUOUS_MESSAGE); @@ -68,5 +70,7 @@ export function mapPrOperationError(error: T, surface: PrMutationSurface): T /** Toast message for a PR mutation error, after ledger-outcome mapping. */ export function prOperationToastMessage(error: unknown, surface: PrMutationSurface): string { const mapped = mapPrOperationError(error, surface); - return mapped instanceof Error ? mapped.message : 'Could not complete this action.'; + return mapped instanceof Error + ? mapped.message + : i18n.t('prReview.operation.couldNotCompleteAction'); } From ed73052902539fc2cbcaad4811d5ba8e33ced96d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 20:23:22 +0200 Subject: [PATCH 11/14] fix(mobile): translate the last six strings a user can read or hear A final sweep found six English strings hiding in shapes the lint rule cannot see. All six reach a user. - The pull request ledger re-wrapped its ambiguous and persistence markers for display. The marker is also a server contract the sheets classify against, so the kind now travels on the error object and the message is translated. Comparing the message alone would have broken pr-merge-sheet.tsx:220 and reply-input.tsx:184. - A deleted GitHub account showed as the literal `deleted user`. - A screen reader spoke `cost` before every session row's price. - A screen reader spoke `line N` and `(empty)` on every pull request diff line. - The force-update screen named `app store page` in its failure toast. - A non-Error FORBIDDEN throw fell back to the word `Forbidden`. 10 new keys, translated into all 87 catalogs. --- .../components/agents/session-list-helpers.ts | 4 +-- .../src/components/force-update-screen.tsx | 3 ++- apps/mobile/src/i18n/locales/af.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/am.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ar.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/az.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/be.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/bg.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/bn.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/bs.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ca.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ckb.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/cs.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/cy.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/da.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/de.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/el.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/en.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/es.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/et.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/eu.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/fa.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/fi.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/fil.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/fr.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ga.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/gl.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/gu.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ha.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/he.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/hi.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/hr.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ht.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/hu.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/hy.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/id.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ig.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/is.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/it.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ja.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ka.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/kk.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/km.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/kn.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ko.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/lo.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/lt.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/lv.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/mg.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/mi.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/mk.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ml.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/mn.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/mr.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ms.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/mt.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/my.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/nb.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ne.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/nl.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/om.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/or.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/pa.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/pl.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ps.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/pt-BR.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/pt.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ro.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ru.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/si.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/sk.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/sl.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/so.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/sq.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/sr.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/sv.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/sw.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ta.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/te.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/th.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/tr.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/uk.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/ur.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/uz.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/vi.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/yo.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/zh-Hans.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/zh-Hant.json | 20 ++++++++++---- apps/mobile/src/i18n/locales/zu.json | 20 ++++++++++---- .../classify-pr-review-query-state.ts | 3 ++- .../src/lib/pr-review/diff/parse-patch.ts | 8 +++--- .../discussion/review-discussion-types.ts | 2 +- .../pr-review/merge/pr-operation-ledger.ts | 27 +++++++++++++++++-- 93 files changed, 1342 insertions(+), 445 deletions(-) diff --git a/apps/mobile/src/components/agents/session-list-helpers.ts b/apps/mobile/src/components/agents/session-list-helpers.ts index f5153829d1..257a061782 100644 --- a/apps/mobile/src/components/agents/session-list-helpers.ts +++ b/apps/mobile/src/components/agents/session-list-helpers.ts @@ -186,10 +186,10 @@ export function composeActiveSessionSpokenMeta( timeSpoken: string | null ): string | null { if (cost && timeSpoken) { - return `cost ${cost}, ${timeSpoken}`; + return i18n.t('agents.sessionRow.costSpokenWithTime', { cost, time: timeSpoken }); } if (cost) { - return `cost ${cost}`; + return i18n.t('agents.sessionRow.costSpoken', { cost }); } if (timeSpoken) { return timeSpoken; diff --git a/apps/mobile/src/components/force-update-screen.tsx b/apps/mobile/src/components/force-update-screen.tsx index 3c45bf2cab..ac3bb5cba5 100644 --- a/apps/mobile/src/components/force-update-screen.tsx +++ b/apps/mobile/src/components/force-update-screen.tsx @@ -8,6 +8,7 @@ import { Button } from '@/components/ui/button'; import { Text } from '@/components/ui/text'; import { openExternalUrl } from '@/lib/external-link'; import { useThemeColors } from '@/lib/hooks/use-theme-colors'; +import { i18n } from '@/i18n'; const STORE_URL = Platform.OS === 'ios' @@ -72,7 +73,7 @@ export function ForceUpdateScreen() { variant="outline" className="w-full" onPress={() => { - void openExternalUrl(STORE_URL, { label: 'app store page' }); + void openExternalUrl(STORE_URL, { label: i18n.t('forceUpdate.appStorePage') }); }} > {t('common.openInBrowser')} diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index f7585b75a6..10314c1187 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Uitgediend op {{path}} {{lines}}", "outdatedOnLines": "Uitgediend op {{lines}}", "outdatedOnPath": "Uitgediend op {{path}}" - } + }, + "deletedUser": "verwyderde gebruiker" }, "couldNotOpenGitHubAppSettings": "Kon nie GitHub-toepinstellings oopmaak nie", "installKiloGitHubApp": "Installeer die Kilo GitHub-toep", @@ -576,7 +577,10 @@ "tapToComment": "{{label}}, tik om kommentaar te lewer", "statusAdded": "Bygevoeg", "statusContext": "Konteks", - "statusDeleted": "Verwyder" + "statusDeleted": "Verwyder", + "lineLabel": "{{status}} lyn {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(leeg)" }, "linkPasteClipboardEmpty": "Knipbord is leeg", "linkPasteNotAPullRequest": "Nie 'n GitHub-pull-request-skakel nie", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Kon nie antwoord nie.", "couldNotCompleteAction": "Kon nie hierdie aksie voltooi nie.", - "mergeResultDefaultError": "GitHub het nie die samesmelting voltooi nie." + "mergeResultDefaultError": "GitHub het nie die samesmelting voltooi nie.", + "ambiguous": "Kon nie bevestig nie — kyk na die PR voordat jy weer probeer.", + "persistenceFailed": "Ons kon nie hierdie aksie aanteken nie. Probeer asseblief later weer.", + "forbidden": "Verbode" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "sent", "dollar_one": "dollar", "dollar": "dollars", - "dollar_other": "dollars" + "dollar_other": "dollars", + "costSpoken": "koste {{cost}}", + "costSpokenWithTime": "koste {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Kon GitHub nie oopmaak nie", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Kon nie die appwinkel oopmaak nie.", "description": "'n Nuwe weergawe van Kilo is beskikbaar. Dateer asseblief op om voort te gaan.", "title": "Opdatering vereis", - "updateNow": "Dateer nou op" + "updateNow": "Dateer nou op", + "appStorePage": "appwinkel-bladsy" }, "home": { "couldNotLoadSessions": "Kon nie sessies laai nie", diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index 7d7a0c3551..9d77ba5c38 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "በ{{path}} {{lines}} ላይ ያረጀ", "outdatedOnLines": "በ{{lines}} ላይ ያረጀ", "outdatedOnPath": "በ{{path}} ላይ ያረጀ" - } + }, + "deletedUser": "የተሰረዘ ተጠቃሚ" }, "couldNotOpenGitHubAppSettings": "የGitHub መተግበሪያ ቅንብሮችን መክፈት አልተቻለም", "installKiloGitHubApp": "የKilo GitHub መተግበሪያን ጫን", @@ -576,7 +577,10 @@ "tapToComment": "{{label}}፣ አስተያየት ለመስጠት ይንኩ", "statusAdded": "ታክሏል", "statusContext": "አውድ", - "statusDeleted": "ተሰርዟል" + "statusDeleted": "ተሰርዟል", + "lineLabel": "{{status}} መስመር {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ባዶ)" }, "linkPasteClipboardEmpty": "ቅንጥብ ሰሌዳው ባዶ ነው", "linkPasteNotAPullRequest": "የGitHub ፑል እንደጠየቀ አገናኝ አይደለም", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "መልስ መስጠት አልተቻለም።", "couldNotCompleteAction": "ይህን እርምጃ ማጠናቀቅ አልተቻለም።", - "mergeResultDefaultError": "GitHub ውህደቱን አላጠናቀቀም።" + "mergeResultDefaultError": "GitHub ውህደቱን አላጠናቀቀም።", + "ambiguous": "ማረጋገጥ አልተቻለም — እንደገና ከመሞከርዎ በፊት PRን ያረጋግጡ።", + "persistenceFailed": "ይህን እርምጃ መመዝገብ አልቻልን። እባክዎ በኋላ እንደገና ይሞክሩ።", + "forbidden": "የተከለከለ" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ሳንቲሞች", "dollar_one": "ዶላር", "dollar": "ዶላሮች", - "dollar_other": "ዶላሮች" + "dollar_other": "ዶላሮች", + "costSpoken": "ዋጋ {{cost}}", + "costSpokenWithTime": "ዋጋ {{cost}}፣ {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHubን መክፈት አልተቻለም", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "የመተግበሪያ መደብር መክፈት አልተቻለም።", "description": "አዲስ የKilo ስሪት ይገኛል። ለመቀጠል እባክዎ ያዘምኑ።", "title": "ማዘመን ያስፈልጋል", - "updateNow": "አሁን ያዘምኑ" + "updateNow": "አሁን ያዘምኑ", + "appStorePage": "የመተግበሪያ መደብር ገጽ" }, "home": { "couldNotLoadSessions": "ክፍለ-ጊዜዎችን መጫን አልተቻለም", diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 2a53c6573c..37d87e267e 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -1639,7 +1639,9 @@ "dollar_zero": "دولار", "dollar_two": "دولاران", "dollar_few": "دولارات", - "dollar_many": "دولارًا" + "dollar_many": "دولارًا", + "costSpoken": "التكلفة {{cost}}", + "costSpokenWithTime": "التكلفة {{cost}}، {{time}}" }, "githubInstall": { "couldNotOpenMessage": "تعذّر بدء إعداد تطبيق GitHub. يرجى المحاولة مرة أخرى.", @@ -2239,7 +2241,8 @@ "couldNotOpenStore": "تعذّر فتح متجر التطبيقات.", "description": "يتوفر إصدار جديد من Kilo. يرجى التحديث للمتابعة.", "title": "التحديث مطلوب", - "updateNow": "حدّث الآن" + "updateNow": "حدّث الآن", + "appStorePage": "صفحة متجر التطبيقات" }, "home": { "couldNotLoadSessions": "تعذّر تحميل الجلسات", @@ -2644,7 +2647,8 @@ "outdatedOnPathLines": "قديم في {{path}} {{lines}}", "outdatedOnLines": "قديم في {{lines}}", "outdatedOnPath": "قديم في {{path}}" - } + }, + "deletedUser": "مستخدم محذوف" }, "entry": { "clearLink": "مسح رابط طلب السحب", @@ -2942,7 +2946,10 @@ "tapToComment": "{{label}}، اضغط للتعليق", "statusAdded": "تمت الإضافة", "statusContext": "السياق", - "statusDeleted": "تم الحذف" + "statusDeleted": "تم الحذف", + "lineLabel": "{{status}} سطر {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(فارغ)" }, "linkPasteClipboardEmpty": "الحافظة فارغة", "linkPasteNotAPullRequest": "ليس رابط طلب سحب على GitHub", @@ -2960,7 +2967,10 @@ "operation": { "couldNotReply": "تعذّر الرد.", "couldNotCompleteAction": "تعذّر إكمال هذا الإجراء.", - "mergeResultDefaultError": "لم يكمل GitHub الدمج." + "mergeResultDefaultError": "لم يكمل GitHub الدمج.", + "ambiguous": "تعذّر التأكيد — تحقق من PR قبل إعادة المحاولة.", + "persistenceFailed": "لم نتمكن من تسجيل هذا الإجراء. يرجى المحاولة مرة أخرى لاحقًا.", + "forbidden": "ممنوع" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index 9139b6aeb4..6b9deca9e2 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} üzərində köhnəlmiş", "outdatedOnLines": "{{lines}} üzərində köhnəlmiş", "outdatedOnPath": "{{path}} üzərində köhnəlmiş" - } + }, + "deletedUser": "silinmiş istifadəçi" }, "couldNotOpenGitHubAppSettings": "GitHub App parametrləri açıla bilmədi", "installKiloGitHubApp": "Kilo GitHub App'ini quraşdırın", @@ -576,7 +577,10 @@ "tapToComment": "{{label}}, şərh üçün toxunun", "statusAdded": "Əlavə edildi", "statusContext": "Kontekst", - "statusDeleted": "Silindi" + "statusDeleted": "Silindi", + "lineLabel": "{{status}} sətir {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(boş)" }, "linkPasteClipboardEmpty": "Panoda heç nə yoxdur", "linkPasteNotAPullRequest": "Bu, GitHub pull request linki deyil", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Cavab vermək mümkün olmadı.", "couldNotCompleteAction": "Bu əməliyyatı tamamlamaq mümkün olmadı.", - "mergeResultDefaultError": "GitHub birləşməni tamamlamadı." + "mergeResultDefaultError": "GitHub birləşməni tamamlamadı.", + "ambiguous": "Təsdiqləmək mümkün olmadı — yenidən cəhd etməzdən əvvəl PR-ə baxın.", + "persistenceFailed": "Bu əməliyyatı qeyd edə bilmədik. Zəhmət olmasa daha sonra yenidən cəhd edin.", + "forbidden": "Qadağandır" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "sent", "dollar_one": "dollar", "dollar": "dollar", - "dollar_other": "dollar" + "dollar_other": "dollar", + "costSpoken": "xərc {{cost}}", + "costSpokenWithTime": "xərc {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub açıla bilmədi", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Tətbiq mağazası açıla bilmədi.", "description": "Kilo-nun yeni versiyası mövcuddur. Davam etmək üçün yeniləyin.", "title": "Yeniləmə tələb olunur", - "updateNow": "İndi yenilə" + "updateNow": "İndi yenilə", + "appStorePage": "tətbiq mağazası səhifəsi" }, "home": { "couldNotLoadSessions": "Sessiyalar yüklənə bilmədi", diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index ae452045c3..68ab9e8e65 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -415,7 +415,8 @@ "outdatedOnPathLines": "Састарэла на {{path}} {{lines}}", "outdatedOnLines": "Састарэла на {{lines}}", "outdatedOnPath": "Састарэла на {{path}}" - } + }, + "deletedUser": "выдалены карыстальнік" }, "couldNotOpenGitHubAppSettings": "Не атрымалася адкрыць налады GitHub App", "installKiloGitHubApp": "Усталяваць Kilo GitHub App", @@ -590,7 +591,10 @@ "tapToComment": "{{label}}, дакраніцеся, каб пакінуць каментар", "statusAdded": "Дададзены", "statusContext": "Кантэкст", - "statusDeleted": "Выдалены" + "statusDeleted": "Выдалены", + "lineLabel": "{{status}} радок {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(пуста)" }, "linkPasteClipboardEmpty": "Буфер абмену пусты", "linkPasteNotAPullRequest": "Гэта не спасылка на pull request GitHub", @@ -608,7 +612,10 @@ "operation": { "couldNotReply": "Не атрымалася адказаць.", "couldNotCompleteAction": "Не атрымалася завяршыць гэтае дзеянне.", - "mergeResultDefaultError": "GitHub не завяршыў зліццё." + "mergeResultDefaultError": "GitHub не завяршыў зліццё.", + "ambiguous": "Не атрымалася пацвердзіць — праверце PR перад паўторнай спробай.", + "persistenceFailed": "Не ўдалося запісаць гэтае дзеянне. Паспрабуйце яшчэ раз пазней.", + "forbidden": "Забаронена" } }, "notifications": { @@ -2084,7 +2091,9 @@ "cent_few": "цэнты", "cent_many": "цэнтаў", "dollar_few": "долары", - "dollar_many": "долараў" + "dollar_many": "долараў", + "costSpoken": "кошт {{cost}}", + "costSpokenWithTime": "кошт {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Не атрымалася адкрыць GitHub", @@ -2674,7 +2683,8 @@ "couldNotOpenStore": "Не ўдалося адкрыць краму дадаткаў.", "description": "Даступная новая версія Kilo. Абнавіцеся, каб працягнуць.", "title": "Патрабуецца абнаўленне", - "updateNow": "Абнавіць зараз" + "updateNow": "Абнавіць зараз", + "appStorePage": "старонка крамы дадаткаў" }, "home": { "couldNotLoadSessions": "Не ўдалося загрузіць сеансы", diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index e05bce7c34..1ae3e0ee25 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Остаряло на {{path}} {{lines}}", "outdatedOnLines": "Остаряло на {{lines}}", "outdatedOnPath": "Остаряло на {{path}}" - } + }, + "deletedUser": "изтрит потребител" }, "couldNotOpenGitHubAppSettings": "Не можахме да отворим настройките на GitHub App", "installKiloGitHubApp": "Инсталирай Kilo GitHub App", @@ -576,7 +577,10 @@ "tapToComment": "{{label}}, докосни, за да коментираш", "statusAdded": "Добавен", "statusContext": "Контекст", - "statusDeleted": "Изтрит" + "statusDeleted": "Изтрит", + "lineLabel": "{{status}} ред {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(празно)" }, "linkPasteClipboardEmpty": "Клипбордът е празен", "linkPasteNotAPullRequest": "Не е връзка към pull request в GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Не можахме да отговорим.", "couldNotCompleteAction": "Не можахме да завършим това действие.", - "mergeResultDefaultError": "GitHub не завърши обединяването." + "mergeResultDefaultError": "GitHub не завърши обединяването.", + "ambiguous": "Не можахме да потвърдим — проверете PR-а, преди да опитате отново.", + "persistenceFailed": "Не успяхме да запишем това действие. Моля, опитайте отново по-късно.", + "forbidden": "Забранено" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "цента", "dollar_one": "долар", "dollar": "долара", - "dollar_other": "долара" + "dollar_other": "долара", + "costSpoken": "разход {{cost}}", + "costSpokenWithTime": "разход {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Не може да се отвори GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Не може да се отвори магазинът за приложения.", "description": "Налична е нова версия на Kilo. Моля, актуализирайте, за да продължите.", "title": "Изисква се актуализация", - "updateNow": "Актуализирайте сега" + "updateNow": "Актуализирайте сега", + "appStorePage": "страница на магазина за приложения" }, "home": { "couldNotLoadSessions": "Не можаха да се заредят сесиите", diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index dcc67219bd..9b69afda73 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}}-এ পুরানো", "outdatedOnLines": "{{lines}}-এ পুরানো", "outdatedOnPath": "{{path}}-এ পুরানো" - } + }, + "deletedUser": "মুছে ফেলা ব্যবহারকারী" }, "couldNotOpenGitHubAppSettings": "GitHub অ্যাপ সেটিংস খোলা যায়নি", "installKiloGitHubApp": "Kilo GitHub অ্যাপ ইনস্টল করুন", @@ -576,7 +577,10 @@ "tapToComment": "{{label}}, মন্তব্য করতে আলতো চাপুন", "statusAdded": "যোগ করা হয়েছে", "statusContext": "প্রসঙ্গ", - "statusDeleted": "মুছে ফেলা হয়েছে" + "statusDeleted": "মুছে ফেলা হয়েছে", + "lineLabel": "{{status}} লাইন {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(খালি)" }, "linkPasteClipboardEmpty": "ক্লিপবোর্ড খালি", "linkPasteNotAPullRequest": "এটি একটি GitHub pull request লিংক নয়", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "উত্তর দেওয়া যায়নি।", "couldNotCompleteAction": "এই কাজটি সম্পূর্ণ করা যায়নি।", - "mergeResultDefaultError": "GitHub মার্জ সম্পূর্ণ করেনি।" + "mergeResultDefaultError": "GitHub মার্জ সম্পূর্ণ করেনি।", + "ambiguous": "নিশ্চিত করা যায়নি — আবার চেষ্টা করার আগে PR-টি পরীক্ষা করুন।", + "persistenceFailed": "এই কাজটি রেকর্ড করা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।", + "forbidden": "নিষিদ্ধ" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "সেন্ট", "dollar_one": "ডলার", "dollar": "ডলার", - "dollar_other": "ডলার" + "dollar_other": "ডলার", + "costSpoken": "খরচ {{cost}}", + "costSpokenWithTime": "খরচ {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub খোলা যায়নি", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "অ্যাপ স্টোর খোলা যায়নি।", "description": "Kilo-এর একটি নতুন সংস্করণ উপলব্ধ। চালিয়ে যেতে আপডেট করুন।", "title": "আপডেট প্রয়োজন", - "updateNow": "এখনই আপডেট করুন" + "updateNow": "এখনই আপডেট করুন", + "appStorePage": "অ্যাপ স্টোর পেজ" }, "home": { "couldNotLoadSessions": "সেশন লোড করা যায়নি", diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index cac6ec22d5..ece18e9eda 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -411,7 +411,8 @@ "outdatedOnPathLines": "Zastarjelo na {{path}} {{lines}}", "outdatedOnLines": "Zastarjelo na {{lines}}", "outdatedOnPath": "Zastarjelo na {{path}}" - } + }, + "deletedUser": "obrisani korisnik" }, "couldNotOpenGitHubAppSettings": "Postavke GitHub aplikacije se nisu mogle otvoriti", "installKiloGitHubApp": "Instaliraj Kilo GitHub aplikaciju", @@ -583,7 +584,10 @@ "tapToComment": "{{label}}, dodirnite za komentar", "statusAdded": "Dodano", "statusContext": "Kontekst", - "statusDeleted": "Obrisano" + "statusDeleted": "Obrisano", + "lineLabel": "{{status}} redak {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(prazno)" }, "linkPasteClipboardEmpty": "Međuspremnik je prazan", "linkPasteNotAPullRequest": "Nije GitHub pull request link", @@ -601,7 +605,10 @@ "operation": { "couldNotReply": "Odgovor nije uspio.", "couldNotCompleteAction": "Nije moguće dovršiti ovu radnju.", - "mergeResultDefaultError": "GitHub nije dovršio spajanje." + "mergeResultDefaultError": "GitHub nije dovršio spajanje.", + "ambiguous": "Nije moguće potvrditi — provjerite PR prije ponovnog pokušaja.", + "persistenceFailed": "Nismo mogli zabilježiti ovu radnju. Pokušajte ponovo kasnije.", + "forbidden": "Zabranjeno" } }, "notifications": { @@ -2069,7 +2076,9 @@ "dollar": "dolara", "dollar_other": "dolara", "cent_few": "centa", - "dollar_few": "dolara" + "dollar_few": "dolara", + "costSpoken": "trošak {{cost}}", + "costSpokenWithTime": "trošak {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Nije moguće otvoriti GitHub", @@ -2654,7 +2663,8 @@ "couldNotOpenStore": "Trgovina aplikacija nije mogla biti otvorena.", "description": "Dostupna je nova verzija Kilo. Ažurirajte za nastavak.", "title": "Ažuriranje je obavezno", - "updateNow": "Ažuriraj sada" + "updateNow": "Ažuriraj sada", + "appStorePage": "stranica trgovine aplikacija" }, "home": { "couldNotLoadSessions": "Sesije nisu mogle biti učitane", diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index 0a26e4f152..e60e789fe0 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -411,7 +411,8 @@ "outdatedOnPathLines": "Desactualitzat a {{path}} {{lines}}", "outdatedOnLines": "Desactualitzat a {{lines}}", "outdatedOnPath": "Desactualitzat a {{path}}" - } + }, + "deletedUser": "usuari eliminat" }, "couldNotOpenGitHubAppSettings": "No s'ha pogut obrir la configuració de l'app de GitHub", "installKiloGitHubApp": "Instal·la l'app Kilo de GitHub", @@ -583,7 +584,10 @@ "tapToComment": "{{label}}, toca per comentar", "statusAdded": "Afegit", "statusContext": "Context", - "statusDeleted": "Eliminat" + "statusDeleted": "Eliminat", + "lineLabel": "{{status}} línia {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(buit)" }, "linkPasteClipboardEmpty": "El porta-retalls és buit", "linkPasteNotAPullRequest": "No és un enllaç de pull request de GitHub", @@ -601,7 +605,10 @@ "operation": { "couldNotReply": "No s'ha pogut respondre.", "couldNotCompleteAction": "No s'ha pogut completar aquesta acció.", - "mergeResultDefaultError": "GitHub no ha completat la fusió." + "mergeResultDefaultError": "GitHub no ha completat la fusió.", + "ambiguous": "No s'ha pogut confirmar — comprova el PR abans de tornar-ho a provar.", + "persistenceFailed": "No s'ha pogut registrar aquesta acció. Torna-ho a provar més tard.", + "forbidden": "Prohibit" } }, "notifications": { @@ -2069,7 +2076,9 @@ "dollar": "dòlars", "dollar_other": "dòlars", "cent_many": "cèntims", - "dollar_many": "dòlars" + "dollar_many": "dòlars", + "costSpoken": "cost {{cost}}", + "costSpokenWithTime": "cost {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "No s'ha pogut obrir GitHub", @@ -2654,7 +2663,8 @@ "couldNotOpenStore": "No s'ha pogut obrir l'App Store.", "description": "Hi ha disponible una versió nova de Kilo. Actualitzeu-la per continuar.", "title": "Cal actualitzar", - "updateNow": "Actualitza ara" + "updateNow": "Actualitza ara", + "appStorePage": "pàgina de l'App Store" }, "home": { "couldNotLoadSessions": "No s'han pogut carregar les sessions", diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index ef597b56db..6a87f42de5 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "بەسەرچوو لەسەر {{path}} {{lines}}", "outdatedOnLines": "بەسەرچوو لەسەر {{lines}}", "outdatedOnPath": "بەسەرچوو لەسەر {{path}}" - } + }, + "deletedUser": "بەکارهێنەری سڕراو" }, "couldNotOpenGitHubAppSettings": "نەتوانرا ڕێکخستنەکانی GitHub App بکرێنەوە", "installKiloGitHubApp": "دامەزراندنی Kilo GitHub App", @@ -576,7 +577,10 @@ "tapToComment": "{{label}}، بۆ بۆچوون لێی بدە", "statusAdded": "زیادکراو", "statusContext": "دەق", - "statusDeleted": "سڕراو" + "statusDeleted": "سڕراو", + "lineLabel": "{{status}} هێڵی {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(بەتاڵ)" }, "linkPasteClipboardEmpty": "کلیپبۆردەکە بەتاڵە", "linkPasteNotAPullRequest": "لینکی پرسی ڕاکێشان (pull request)ی GitHub نییە", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "نەتوانرا وەڵام بدرێتەوە.", "couldNotCompleteAction": "نەتوانرا ئەم کردارە تەواو بکرێت.", - "mergeResultDefaultError": "GitHub نەیتوانی تێکەڵکردنەکە تەواو بکات." + "mergeResultDefaultError": "GitHub نەیتوانی تێکەڵکردنەکە تەواو بکات.", + "ambiguous": "نەتوانرا پشتڕاست بکرێتەوە — پێش هەوڵدانەوە، PR بپشکنە.", + "persistenceFailed": "نەتوانرا ئەم کردارە تۆمار بکرێت. تکایە دواتر هەوڵبدەوە.", + "forbidden": "قەدەغەکراو" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "سەنت", "dollar_one": "دۆلار", "dollar": "دۆلار", - "dollar_other": "دۆلار" + "dollar_other": "دۆلار", + "costSpoken": "تێچووی {{cost}}", + "costSpokenWithTime": "تێچووی {{cost}}، {{time}}" }, "githubInstall": { "couldNotOpenTitle": "نەتوانرا GitHub بکرێتەوە", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "نەتوانرا دوکانەکە بکرێتەوە.", "description": "وەشانی نوێی Kilo بەردەستە. تکایە نوێی بکەرەوە بۆ بەردەوامبوون.", "title": "نوێکردنەوە پێویستە", - "updateNow": "ئێستا نوێ بکەرەوە" + "updateNow": "ئێستا نوێ بکەرەوە", + "appStorePage": "پەڕەی دوکانی ئەپ" }, "home": { "couldNotLoadSessions": "نەتوانرا دانیشتنەکان باربکرێن", diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index 78e38e8b60..3353f8a590 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -415,7 +415,8 @@ "outdatedOnPathLines": "Zastaralé na {{path}} {{lines}}", "outdatedOnLines": "Zastaralé na {{lines}}", "outdatedOnPath": "Zastaralé na {{path}}" - } + }, + "deletedUser": "smazaný uživatel" }, "couldNotOpenGitHubAppSettings": "Nastavení GitHub App se nepodařilo otevřít", "installKiloGitHubApp": "Nainstalovat Kilo GitHub App", @@ -590,7 +591,10 @@ "tapToComment": "{{label}}, klepnutím okomentujete", "statusAdded": "Přidáno", "statusContext": "Kontext", - "statusDeleted": "Smazáno" + "statusDeleted": "Smazáno", + "lineLabel": "{{status}} řádek {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(prázdné)" }, "linkPasteClipboardEmpty": "Schránka je prázdná", "linkPasteNotAPullRequest": "Toto není odkaz na pull request v GitHubu", @@ -608,7 +612,10 @@ "operation": { "couldNotReply": "Odpověď se nepodařilo odeslat.", "couldNotCompleteAction": "Tuto akci se nepodařilo dokončit.", - "mergeResultDefaultError": "GitHub nedokončil sloučení." + "mergeResultDefaultError": "GitHub nedokončil sloučení.", + "ambiguous": "Nepodařilo se potvrdit — zkontrolujte PR a zkuste to znovu.", + "persistenceFailed": "Nepodařilo se zaznamenat tuto akci. Zkuste to prosím později.", + "forbidden": "Zakázáno" } }, "notifications": { @@ -2084,7 +2091,9 @@ "cent_few": "centy", "cent_many": "centů", "dollar_few": "dolary", - "dollar_many": "dolarů" + "dollar_many": "dolarů", + "costSpoken": "náklady {{cost}}", + "costSpokenWithTime": "náklady {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub se nepodařilo otevřít", @@ -2674,7 +2683,8 @@ "couldNotOpenStore": "Obchod s aplikacemi se nepodařilo otevřít.", "description": "Je k dispozici nová verze Kilo. Pro pokračování aktualizujte.", "title": "Vyžaduje se aktualizace", - "updateNow": "Aktualizovat nyní" + "updateNow": "Aktualizovat nyní", + "appStorePage": "stránka obchodu s aplikacemi" }, "home": { "couldNotLoadSessions": "Relace se nepodařilo načíst", diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 5812801755..f55c7a5a69 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -423,7 +423,8 @@ "outdatedOnPathLines": "Hen ffasiwn ar {{path}} {{lines}}", "outdatedOnLines": "Hen ffasiwn ar {{lines}}", "outdatedOnPath": "Hen ffasiwn ar {{path}}" - } + }, + "deletedUser": "defnyddiwr wedi'i ddileu" }, "couldNotOpenGitHubAppSettings": "Ni ellid agor gosodiadau Ap GitHub", "installKiloGitHubApp": "Gosod Ap GitHub Kilo", @@ -604,7 +605,10 @@ "truncationBanner": "Yn dangos y {{limit}} cyntaf o {{total}} ffeil a newidiwyd — terfyn API GitHub", "statusAdded": "Wedi'i ychwanegu", "statusContext": "Cyd-destun", - "statusDeleted": "Wedi'i ddileu" + "statusDeleted": "Wedi'i ddileu", + "lineLabel": "{{status}} llinell {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(gwag)" }, "linkPasteClipboardEmpty": "Mae'r clipfwrdd yn wag", "linkPasteNotAPullRequest": "Nid dolen GitHub pull request yw hon", @@ -622,7 +626,10 @@ "operation": { "couldNotReply": "Ni ellid ateb.", "couldNotCompleteAction": "Ni ellid cwblhau'r weithred hon.", - "mergeResultDefaultError": "Ni chwblhaodd GitHub y cyfuniad." + "mergeResultDefaultError": "Ni chwblhaodd GitHub y cyfuniad.", + "ambiguous": "Ni ellid cadarnhau — gwiriwch y PR cyn rhoi cynnig arall arni.", + "persistenceFailed": "Ni ellid cofnodi'r weithred hon. Rhowch gynnig arall arni yn nes ymlaen.", + "forbidden": "Gwaharddedig" } }, "notifications": { @@ -2114,7 +2121,9 @@ "dollar_zero": "doler", "dollar_two": "ddoler", "dollar_few": "ddoler", - "dollar_many": "doler" + "dollar_many": "doler", + "costSpoken": "cost {{cost}}", + "costSpokenWithTime": "cost {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Methwyd agor GitHub", @@ -2714,7 +2723,8 @@ "couldNotOpenStore": "Methwyd agor y siop apiau.", "description": "Mae fersiwn newydd o Kilo ar gael. Diweddarwch i barhau.", "title": "Angen diweddaru", - "updateNow": "Diweddaru nawr" + "updateNow": "Diweddaru nawr", + "appStorePage": "tudalen y siop apiau" }, "home": { "couldNotLoadSessions": "Methwyd llwytho sesiynau", diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index e7a31988f1..6fabd25909 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Forældet på {{path}} {{lines}}", "outdatedOnLines": "Forældet på {{lines}}", "outdatedOnPath": "Forældet på {{path}}" - } + }, + "deletedUser": "slettet bruger" }, "couldNotOpenGitHubAppSettings": "Kunne ikke åbne GitHub-appindstillinger", "installKiloGitHubApp": "Installer Kilo GitHub-appen", @@ -576,7 +577,10 @@ "truncationBanner": "Viser de første {{limit}} af {{total}} ændrede filer — GitHub API-grænse", "statusAdded": "Tilføjet", "statusContext": "Kontekst", - "statusDeleted": "Slettet" + "statusDeleted": "Slettet", + "lineLabel": "{{status}} linje {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tom)" }, "linkPasteClipboardEmpty": "Udklipsholderen er tom", "linkPasteNotAPullRequest": "Ikke et GitHub pull request-link", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Kunne ikke svare.", "couldNotCompleteAction": "Kunne ikke fuldføre denne handling.", - "mergeResultDefaultError": "GitHub fuldførte ikke fletningen." + "mergeResultDefaultError": "GitHub fuldførte ikke fletningen.", + "ambiguous": "Kunne ikke bekræftes — tjek PR'en, før du prøver igen.", + "persistenceFailed": "Vi kunne ikke registrere denne handling. Prøv igen senere.", + "forbidden": "Forbudt" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cent", "dollar_one": "dollar", "dollar": "dollars", - "dollar_other": "dollars" + "dollar_other": "dollars", + "costSpoken": "pris {{cost}}", + "costSpokenWithTime": "pris {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Kunne ikke åbne GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Kunne ikke åbne app-butikken.", "description": "En ny version af Kilo er tilgængelig. Opdater for at fortsætte.", "title": "Opdatering kræves", - "updateNow": "Opdater nu" + "updateNow": "Opdater nu", + "appStorePage": "side i app-butikken" }, "home": { "couldNotLoadSessions": "Kunne ikke indlæse sessioner", diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index b7f9440f38..499ddebe0d 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -1607,7 +1607,9 @@ "cent_other": "Cent", "dollar_one": "Dollar", "dollar": "Dollar", - "dollar_other": "Dollar" + "dollar_other": "Dollar", + "costSpoken": "Kosten {{cost}}", + "costSpokenWithTime": "Kosten {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Das Setup der GitHub-App konnte nicht gestartet werden. Bitte versuche es erneut.", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "Der App Store konnte nicht geöffnet werden.", "description": "Eine neue Version von Kilo ist verfügbar. Bitte aktualisiere, um fortzufahren.", "title": "Update erforderlich", - "updateNow": "Jetzt aktualisieren" + "updateNow": "Jetzt aktualisieren", + "appStorePage": "App-Store-Seite" }, "home": { "couldNotLoadSessions": "Sitzungen konnten nicht geladen werden", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "Veraltet auf {{path}} {{lines}}", "outdatedOnLines": "Veraltet auf {{lines}}", "outdatedOnPath": "Veraltet auf {{path}}" - } + }, + "deletedUser": "gelöschter Benutzer" }, "entry": { "clearLink": "Pull-Request-Link löschen", @@ -2862,7 +2866,10 @@ "truncationBanner": "Zeigt die ersten {{limit}} von {{total}} geänderten Dateien — GitHub-API-Limit", "statusAdded": "Hinzugefügt", "statusContext": "Kontext", - "statusDeleted": "Gelöscht" + "statusDeleted": "Gelöscht", + "lineLabel": "{{status}} Zeile {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(leer)" }, "linkPasteClipboardEmpty": "Zwischenablage ist leer", "linkPasteNotAPullRequest": "Kein GitHub-Pull-Request-Link", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "Antwort konnte nicht gesendet werden.", "couldNotCompleteAction": "Diese Aktion konnte nicht abgeschlossen werden.", - "mergeResultDefaultError": "GitHub hat die Zusammenführung nicht abgeschlossen." + "mergeResultDefaultError": "GitHub hat die Zusammenführung nicht abgeschlossen.", + "ambiguous": "Konnte nicht bestätigt werden — prüfe den PR, bevor du es erneut versuchst.", + "persistenceFailed": "Wir konnten diese Aktion nicht aufzeichnen. Bitte versuche es später erneut.", + "forbidden": "Verboten" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index 4fe25127c3..34f30e7e36 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Ξεπερασμένο στο {{path}} {{lines}}", "outdatedOnLines": "Ξεπερασμένο στις {{lines}}", "outdatedOnPath": "Ξεπερασμένο στο {{path}}" - } + }, + "deletedUser": "διαγραμμένος χρήστης" }, "couldNotOpenGitHubAppSettings": "Δεν ήταν δυνατό το άνοιγμα των ρυθμίσεων GitHub App", "installKiloGitHubApp": "Εγκατάσταση του Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Εμφάνιση των πρώτων {{limit}} από {{total}} αλλαγμένα αρχεία — όριο API του GitHub", "statusAdded": "Προστέθηκε", "statusContext": "Πλαίσιο", - "statusDeleted": "Διαγράφηκε" + "statusDeleted": "Διαγράφηκε", + "lineLabel": "{{status}} γραμμή {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(κενό)" }, "linkPasteClipboardEmpty": "Το πρόχειρο είναι άδειο", "linkPasteNotAPullRequest": "Δεν είναι σύνδεσμος pull request του GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Δεν ήταν δυνατή η απάντηση.", "couldNotCompleteAction": "Δεν ήταν δυνατή η ολοκλήρωση αυτής της ενέργειας.", - "mergeResultDefaultError": "Το GitHub δεν ολοκλήρωσε τη συγχώνευση." + "mergeResultDefaultError": "Το GitHub δεν ολοκλήρωσε τη συγχώνευση.", + "ambiguous": "Δεν ήταν δυνατή η επιβεβαίωση — ελέγξτε το PR πριν δοκιμάσετε ξανά.", + "persistenceFailed": "Δεν ήταν δυνατή η καταγραφή αυτής της ενέργειας. Δοκιμάστε ξανά αργότερα.", + "forbidden": "Απαγορεύεται" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "σεντς", "dollar_one": "δολάριο", "dollar": "δολάρια", - "dollar_other": "δολάρια" + "dollar_other": "δολάρια", + "costSpoken": "κόστος {{cost}}", + "costSpokenWithTime": "κόστος {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Δεν ήταν δυνατό το άνοιγμα του GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Δεν ήταν δυνατό το άνοιγμα του καταστήματος εφαρμογών.", "description": "Μια νέα έκδοση του Kilo είναι διαθέσιμη. Ενημερώστε για να συνεχίσετε.", "title": "Απαιτείται ενημέρωση", - "updateNow": "Ενημέρωση τώρα" + "updateNow": "Ενημέρωση τώρα", + "appStorePage": "σελίδα καταστήματος εφαρμογών" }, "home": { "couldNotLoadSessions": "Δεν ήταν δυνατή η φόρτωση συνεδριών", diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index 69adf366e9..16596b8fb9 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Outdated on {{path}} {{lines}}", "outdatedOnLines": "Outdated on {{lines}}", "outdatedOnPath": "Outdated on {{path}}" - } + }, + "deletedUser": "deleted user" }, "couldNotOpenGitHubAppSettings": "Could not open GitHub App settings", "installKiloGitHubApp": "Install the Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Showing the first {{limit}} of {{total}} changed files — GitHub API limit", "statusAdded": "Added", "statusContext": "Context", - "statusDeleted": "Deleted" + "statusDeleted": "Deleted", + "lineLabel": "{{status}} line {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(empty)" }, "linkPasteClipboardEmpty": "Clipboard is empty", "linkPasteNotAPullRequest": "Not a GitHub pull request link", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Could not reply.", "couldNotCompleteAction": "Could not complete this action.", - "mergeResultDefaultError": "GitHub did not complete the merge." + "mergeResultDefaultError": "GitHub did not complete the merge.", + "ambiguous": "Couldn't confirm — check the PR before retrying.", + "persistenceFailed": "We could not record this action. Please try again later.", + "forbidden": "Forbidden" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cents", "dollar_one": "dollar", "dollar": "dollars", - "dollar_other": "dollars" + "dollar_other": "dollars", + "costSpoken": "cost {{cost}}", + "costSpokenWithTime": "cost {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Could not open GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Could not open the app store.", "description": "A new version of Kilo is available. Please update to continue.", "title": "Update required", - "updateNow": "Update now" + "updateNow": "Update now", + "appStorePage": "app store page" }, "home": { "couldNotLoadSessions": "Couldn't load sessions", diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index a6e48bd07e..1ec5b45e6c 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -1615,7 +1615,9 @@ "dollar": "dólares", "dollar_other": "dólares", "cent_many": "céntimos", - "dollar_many": "dólares" + "dollar_many": "dólares", + "costSpoken": "coste {{cost}}", + "costSpokenWithTime": "coste {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "No pudimos iniciar la configuración de la GitHub App. Inténtalo de nuevo.", @@ -2200,7 +2202,8 @@ "couldNotOpenStore": "No se pudo abrir la tienda de aplicaciones.", "description": "Hay una nueva versión de Kilo disponible. Actualiza para continuar.", "title": "Actualización requerida", - "updateNow": "Actualizar ahora" + "updateNow": "Actualizar ahora", + "appStorePage": "página de la tienda de aplicaciones" }, "home": { "couldNotLoadSessions": "No se pudieron cargar las sesiones", @@ -2599,7 +2602,8 @@ "outdatedOnPathLines": "Desactualizado en {{path}} {{lines}}", "outdatedOnLines": "Desactualizado en {{lines}}", "outdatedOnPath": "Desactualizado en {{path}}" - } + }, + "deletedUser": "usuario eliminado" }, "entry": { "clearLink": "Borrar enlace de la pull request", @@ -2882,7 +2886,10 @@ "truncationBanner": "Mostrando los primeros {{limit}} de {{total}} archivos modificados — límite de la API de GitHub", "statusAdded": "Añadido", "statusContext": "Contexto", - "statusDeleted": "Eliminado" + "statusDeleted": "Eliminado", + "lineLabel": "{{status}} línea {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(vacío)" }, "linkPasteClipboardEmpty": "El portapapeles está vacío", "linkPasteNotAPullRequest": "No es un enlace de pull request de GitHub", @@ -2900,7 +2907,10 @@ "operation": { "couldNotReply": "No se pudo responder.", "couldNotCompleteAction": "No se pudo completar esta acción.", - "mergeResultDefaultError": "GitHub no completó la fusión." + "mergeResultDefaultError": "GitHub no completó la fusión.", + "ambiguous": "No se pudo confirmar — comprueba el PR antes de reintentar.", + "persistenceFailed": "No se pudo registrar esta acción. Inténtalo de nuevo más tarde.", + "forbidden": "Prohibido" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index 38b4a9baaf..54453c722d 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Aegunud: {{path}} {{lines}}", "outdatedOnLines": "Aegunud: {{lines}}", "outdatedOnPath": "Aegunud: {{path}}" - } + }, + "deletedUser": "kustutatud kasutaja" }, "couldNotOpenGitHubAppSettings": "GitHub'i rakenduse seadete avamine ebaõnnestus", "installKiloGitHubApp": "Installi Kilo GitHub'i rakendus", @@ -576,7 +577,10 @@ "truncationBanner": "Kuvatakse esimesed {{limit}} muudetud faili kokku {{total}}-st — GitHubi API piirang", "statusAdded": "Lisatud", "statusContext": "Kontekst", - "statusDeleted": "Kustutatud" + "statusDeleted": "Kustutatud", + "lineLabel": "{{status}} rida {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tühi)" }, "linkPasteClipboardEmpty": "Lõikelaud on tühi", "linkPasteNotAPullRequest": "Pole GitHub pull requesti link", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Vastamine ebaõnnestus.", "couldNotCompleteAction": "Seda toimingut ei õnnestunud lõpule viia.", - "mergeResultDefaultError": "GitHub ei lõpetanud ühendamist." + "mergeResultDefaultError": "GitHub ei lõpetanud ühendamist.", + "ambiguous": "Ei õnnestunud kinnitada — kontrolli PR-i enne uuesti proovimist.", + "persistenceFailed": "Me ei saanud seda toimingut salvestada. Proovi hiljem uuesti.", + "forbidden": "Keelatud" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "senti", "dollar_one": "dollar", "dollar": "dollarit", - "dollar_other": "dollarit" + "dollar_other": "dollarit", + "costSpoken": "kulu {{cost}}", + "costSpokenWithTime": "kulu {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub'i avamine ebaõnnestus", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Rakendusepoodi ei õnnestunud avada.", "description": "Saadaval on Kilo uus versioon. Jätkamiseks uuendage.", "title": "Uuendus nõutud", - "updateNow": "Uuenda kohe" + "updateNow": "Uuenda kohe", + "appStorePage": "rakendusepoe leht" }, "home": { "couldNotLoadSessions": "Seansse ei õnnestunud laadida", diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index d781ae8212..1c02b84bdf 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Zaharkitua: {{path}} {{lines}}", "outdatedOnLines": "Zaharkitua: {{lines}}", "outdatedOnPath": "Zaharkitua: {{path}}" - } + }, + "deletedUser": "erabiltzaile ezabatua" }, "couldNotOpenGitHubAppSettings": "Ezin izan da GitHub aplikazioaren ezarpena ireki", "installKiloGitHubApp": "Instalatu Kilo GitHub aplikazioa", @@ -576,7 +577,10 @@ "truncationBanner": "Aldatutako {{total}} fitxategietatik lehenengo {{limit}} erakusten — GitHub API muga", "statusAdded": "Gehituta", "statusContext": "Testuingurua", - "statusDeleted": "Ezabatuta" + "statusDeleted": "Ezabatuta", + "lineLabel": "{{status}} lerroa {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(hutsik)" }, "linkPasteClipboardEmpty": "Arbel hutsik dago", "linkPasteNotAPullRequest": "Ez da GitHub-en pull request esteka bat", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Ezin izan da erantzun.", "couldNotCompleteAction": "Ezin izan da ekintza hau amaitu.", - "mergeResultDefaultError": "GitHub-ek ez du batzea amaitu." + "mergeResultDefaultError": "GitHub-ek ez du batzea amaitu.", + "ambiguous": "Ezin izan da berretsi — egiaztatu PR-a berriro saiatu aurretik.", + "persistenceFailed": "Ezin izan dugu ekintza hau erregistratu. Saiatu berriro geroago.", + "forbidden": "Debekatuta" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "zentimo", "dollar_one": "dolar", "dollar": "dolar", - "dollar_other": "dolar" + "dollar_other": "dolar", + "costSpoken": "kostua {{cost}}", + "costSpokenWithTime": "kostua {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Ezin da GitHub ireki", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Ezin izan da aplikazio-denda ireki.", "description": "Kilo-ren bertsio berri bat dago erabilgarri. Mesedez, eguneratu jarraitzeko.", "title": "Eguneratzea beharrezkoa", - "updateNow": "Eguneratu orain" + "updateNow": "Eguneratu orain", + "appStorePage": "aplikazio-dendaren orria" }, "home": { "couldNotLoadSessions": "Ezin izan dira saioak kargatu", diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index f53f8375b9..e877a932db 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "قدیمی: {{path}} {{lines}}", "outdatedOnLines": "قدیمی: {{lines}}", "outdatedOnPath": "قدیمی: {{path}}" - } + }, + "deletedUser": "کاربر حذف‌شده" }, "couldNotOpenGitHubAppSettings": "باز کردن تنظیمات GitHub App ممکن نشد", "installKiloGitHubApp": "نصب Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "نمایش {{limit}} فایل اول از {{total}} فایل تغییر یافته — سقف API گیتهاب", "statusAdded": "افزوده شده", "statusContext": "زمینه", - "statusDeleted": "حذف شده" + "statusDeleted": "حذف شده", + "lineLabel": "{{status}} خط {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(خالی)" }, "linkPasteClipboardEmpty": "کلیپبورد خالی است", "linkPasteNotAPullRequest": "این پیوند درخواست کشش GitHub نیست", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "پاسخ ممکن نشد.", "couldNotCompleteAction": "تکمیل این عمل ممکن نشد.", - "mergeResultDefaultError": "GitHub ادغام را تکمیل نکرد." + "mergeResultDefaultError": "GitHub ادغام را تکمیل نکرد.", + "ambiguous": "نمی‌توان تأیید کرد — قبل از تلاش مجدد، PR را بررسی کنید.", + "persistenceFailed": "نتوانستیم این اقدام را ثبت کنیم. لطفاً بعداً دوباره تلاش کنید.", + "forbidden": "ممنوع" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "سنت", "dollar_one": "دلار", "dollar": "دلار", - "dollar_other": "دلار" + "dollar_other": "دلار", + "costSpoken": "هزینه {{cost}}", + "costSpokenWithTime": "هزینه {{cost}}، {{time}}" }, "githubInstall": { "couldNotOpenTitle": "باز کردن GitHub ممکن نشد", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "باز کردن فروشگاه برنامه ممکن نشد.", "description": "نسخه جدیدی از Kilo در دسترس است. برای ادامه، به‌روزرسانی کنید.", "title": "به‌روزرسانی لازم است", - "updateNow": "اکنون به‌روزرسانی کنید" + "updateNow": "اکنون به‌روزرسانی کنید", + "appStorePage": "صفحهٔ فروشگاه برنامه" }, "home": { "couldNotLoadSessions": "جلسات بارگذاری نشدند", diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 3e8775b088..a73a45b015 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Vanhentunut: {{path}} {{lines}}", "outdatedOnLines": "Vanhentunut: {{lines}}", "outdatedOnPath": "Vanhentunut: {{path}}" - } + }, + "deletedUser": "poistettu käyttäjä" }, "couldNotOpenGitHubAppSettings": "GitHub-sovelluksen asetuksia ei voitu avata", "installKiloGitHubApp": "Asenna Kilo GitHub -sovellus", @@ -576,7 +577,10 @@ "truncationBanner": "Näytetään ensimmäiset {{limit}} muutetuista {{total}} tiedostosta — GitHub API:n raja", "statusAdded": "Lisätty", "statusContext": "Konteksti", - "statusDeleted": "Poistettu" + "statusDeleted": "Poistettu", + "lineLabel": "{{status}} rivi {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tyhjä)" }, "linkPasteClipboardEmpty": "Leikepöytä on tyhjä", "linkPasteNotAPullRequest": "Ei GitHub-pull request -linkki", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Vastaaminen epäonnistui.", "couldNotCompleteAction": "Tätä toimintoa ei voitu suorittaa loppuun.", - "mergeResultDefaultError": "GitHub ei saattanut yhdistämistä loppuun." + "mergeResultDefaultError": "GitHub ei saattanut yhdistämistä loppuun.", + "ambiguous": "Vahvistusta ei saatu — tarkista PR ennen uudelleen yrittämistä.", + "persistenceFailed": "Emme voineet tallentaa tätä toimintoa. Yritä myöhemmin uudelleen.", + "forbidden": "Kielletty" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "senttiä", "dollar_one": "dollari", "dollar": "dollaria", - "dollar_other": "dollaria" + "dollar_other": "dollaria", + "costSpoken": "hinta {{cost}}", + "costSpokenWithTime": "hinta {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHubia ei voitu avata", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Sovelluskauppaa ei voitu avata.", "description": "Kilo-sovelluksesta on uusi versio saatavilla. Päivitä jatkaaksesi.", "title": "Päivitys vaaditaan", - "updateNow": "Päivitä nyt" + "updateNow": "Päivitä nyt", + "appStorePage": "sovelluskaupan sivu" }, "home": { "couldNotLoadSessions": "Istuntoja ei voitu ladata", diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index 205d19f33f..80c26d4e66 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Luma na sa {{path}} {{lines}}", "outdatedOnLines": "Luma na sa {{lines}}", "outdatedOnPath": "Luma na sa {{path}}" - } + }, + "deletedUser": "na-delete na user" }, "couldNotOpenGitHubAppSettings": "Hindi mabuksan ang mga setting ng GitHub App", "installKiloGitHubApp": "I-install ang Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Ipinapakita ang unang {{limit}} sa {{total}} binagong file — limitasyon sa API ng GitHub", "statusAdded": "Idinagdag", "statusContext": "Konteksto", - "statusDeleted": "Na-delete" + "statusDeleted": "Na-delete", + "lineLabel": "{{status}} na linya {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(walang laman)" }, "linkPasteClipboardEmpty": "Walang laman ang clipboard", "linkPasteNotAPullRequest": "Hindi link ng GitHub pull request", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Hindi makapag-reply.", "couldNotCompleteAction": "Hindi makumpleto ang aksyong ito.", - "mergeResultDefaultError": "Hindi kinumpleto ng GitHub ang merge." + "mergeResultDefaultError": "Hindi kinumpleto ng GitHub ang merge.", + "ambiguous": "Hindi makumpirma — suriin ang PR bago subukan muli.", + "persistenceFailed": "Hindi namin maitala ang aksyong ito. Pakisubukan muli mamaya.", + "forbidden": "Bawal" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cent", "dollar_one": "dollar", "dollar": "dollar", - "dollar_other": "dollar" + "dollar_other": "dollar", + "costSpoken": "gastos {{cost}}", + "costSpokenWithTime": "gastos {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Hindi mabuksan ang GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Hindi mabuksan ang app store.", "description": "May available na bagong bersyon ng Kilo. Mangyaring mag-update para magpatuloy.", "title": "Kinakailangan ang update", - "updateNow": "Mag-update ngayon" + "updateNow": "Mag-update ngayon", + "appStorePage": "pahina ng app store" }, "home": { "couldNotLoadSessions": "Hindi ma-load ang mga session", diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index 9d397f77b5..a26d1afa75 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -2134,7 +2134,8 @@ "couldNotOpenStore": "Impossible d'ouvrir l'App Store.", "description": "Une nouvelle version de Kilo est disponible. Veuillez mettre à jour pour continuer.", "title": "Mise à jour requise", - "updateNow": "Mettre à jour maintenant" + "updateNow": "Mettre à jour maintenant", + "appStorePage": "page de l'App Store" }, "home": { "couldNotLoadSessions": "Impossible de charger les sessions", @@ -2421,7 +2422,9 @@ "dollar": "dollars", "dollar_other": "dollars", "cent_many": "centimes", - "dollar_many": "dollars" + "dollar_many": "dollars", + "costSpoken": "coût {{cost}}", + "costSpokenWithTime": "coût {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Impossible de démarrer la configuration de la GitHub App. Veuillez réessayer.", @@ -2599,7 +2602,8 @@ "outdatedOnPathLines": "Obsolète sur {{path}} {{lines}}", "outdatedOnLines": "Obsolète sur {{lines}}", "outdatedOnPath": "Obsolète sur {{path}}" - } + }, + "deletedUser": "utilisateur supprimé" }, "entry": { "clearLink": "Effacer le lien de la pull request", @@ -2882,7 +2886,10 @@ "truncationBanner": "Affichage des {{limit}} premiers fichiers modifiés sur {{total}} — limite de l'API GitHub", "statusAdded": "Ajouté", "statusContext": "Contexte", - "statusDeleted": "Supprimé" + "statusDeleted": "Supprimé", + "lineLabel": "{{status}} ligne {{line}} : {{text}}", + "lineLabelNoNumber": "{{status}} : {{text}}", + "emptyLine": "(vide)" }, "linkPasteClipboardEmpty": "Le presse-papiers est vide", "linkPasteNotAPullRequest": "Ce n'est pas un lien de pull request GitHub", @@ -2900,7 +2907,10 @@ "operation": { "couldNotReply": "Impossible de répondre.", "couldNotCompleteAction": "Impossible de terminer cette action.", - "mergeResultDefaultError": "GitHub n'a pas terminé la fusion." + "mergeResultDefaultError": "GitHub n'a pas terminé la fusion.", + "ambiguous": "Impossible de confirmer — vérifiez la PR avant de réessayer.", + "persistenceFailed": "Nous n'avons pas pu enregistrer cette action. Veuillez réessayer plus tard.", + "forbidden": "Interdit" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index c90568e402..3168dad6f6 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -419,7 +419,8 @@ "outdatedOnPathLines": "Seanchaithe ar {{path}} {{lines}}", "outdatedOnLines": "Seanchaithe ar {{lines}}", "outdatedOnPath": "Seanchaithe ar {{path}}" - } + }, + "deletedUser": "úsáideoir scriosta" }, "couldNotOpenGitHubAppSettings": "Níorbh fhéidir socruithe Aip GitHub a oscailt", "installKiloGitHubApp": "Suiteáil Aip GitHub Kilo", @@ -597,7 +598,10 @@ "truncationBanner": "Ag taispeáint an chéad {{limit}} de na {{total}} chomhad athraithe — teorainn API GitHub", "statusAdded": "Curtha leis", "statusContext": "Comhthéacs", - "statusDeleted": "Scriosta" + "statusDeleted": "Scriosta", + "lineLabel": "{{status}} líne {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(folamh)" }, "linkPasteClipboardEmpty": "Tá an ghearrthaisce folamh", "linkPasteNotAPullRequest": "Ní nasc pull request GitHub é seo", @@ -615,7 +619,10 @@ "operation": { "couldNotReply": "Níorbh fhéidir freagra a thabhairt.", "couldNotCompleteAction": "Níorbh fhéidir an gníomh seo a chríochnú.", - "mergeResultDefaultError": "Níor chríochnaigh GitHub an cumaisc." + "mergeResultDefaultError": "Níor chríochnaigh GitHub an cumaisc.", + "ambiguous": "Níorbh fhéidir deimhniú — seiceáil an PR sula ndéanann tú iarracht arís.", + "persistenceFailed": "Níorbh fhéidir linn an gníomh seo a thaifeadadh. Bain triail as arís níos déanaí.", + "forbidden": "Toirmiscthe" } }, "notifications": { @@ -2099,7 +2106,9 @@ "cent_many": "cent", "dollar_two": "dollar", "dollar_few": "dollar", - "dollar_many": "dollar" + "dollar_many": "dollar", + "costSpoken": "costas {{cost}}", + "costSpokenWithTime": "costas {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Níorbh fhéidir GitHub a oscailt", @@ -2694,7 +2703,8 @@ "couldNotOpenStore": "Níorbh fhéidir an siopa aip a oscailt.", "description": "Tá leagan nua de Kilo ar fáil. Nuashonraigh le leanúint ar aghaidh.", "title": "Nuashonrú riachtanach", - "updateNow": "Nuashonraigh anois" + "updateNow": "Nuashonraigh anois", + "appStorePage": "leathanach an tsiopa aip" }, "home": { "couldNotLoadSessions": "Níorbh fhéidir seisiúin a lódáil", diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index a50a36200a..96400a4d4d 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Desactualizado en {{path}} {{lines}}", "outdatedOnLines": "Desactualizado en {{lines}}", "outdatedOnPath": "Desactualizado en {{path}}" - } + }, + "deletedUser": "usuario eliminado" }, "couldNotOpenGitHubAppSettings": "Non se puideron abrir os axustes da GitHub App", "installKiloGitHubApp": "Instalar a Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} ficheiros modificados — límite da API de GitHub", "statusAdded": "Engadido", "statusContext": "Contexto", - "statusDeleted": "Eliminado" + "statusDeleted": "Eliminado", + "lineLabel": "{{status}} liña {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(baleiro)" }, "linkPasteClipboardEmpty": "O portapapeis está baleiro", "linkPasteNotAPullRequest": "Non é unha ligazón de solicitude de cambios de GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Non se puido responder.", "couldNotCompleteAction": "Non se puido completar esta acción.", - "mergeResultDefaultError": "GitHub non completou a fusión." + "mergeResultDefaultError": "GitHub non completou a fusión.", + "ambiguous": "Non se puido confirmar — comproba o PR antes de volver intentalo.", + "persistenceFailed": "Non puidemos rexistrar esta acción. Téntao de novo máis tarde.", + "forbidden": "Prohibido" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "céntimos", "dollar_one": "dólar", "dollar": "dólares", - "dollar_other": "dólares" + "dollar_other": "dólares", + "costSpoken": "custo {{cost}}", + "costSpokenWithTime": "custo {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Non se puido abrir GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Non se puido abrir a tenda de aplicacións.", "description": "Hai unha nova versión de Kilo dispoñible. Actualiza para continuar.", "title": "Actualización necesaria", - "updateNow": "Actualizar agora" + "updateNow": "Actualizar agora", + "appStorePage": "páxina da tenda de aplicacións" }, "home": { "couldNotLoadSessions": "Non se puideron cargar as sesións", diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index 68690ab0ff..f506bbae69 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} પર જૂનું", "outdatedOnLines": "{{lines}} પર જૂનું", "outdatedOnPath": "{{path}} પર જૂનું" - } + }, + "deletedUser": "કાઢી નાખેલ વપરાશકર્તા" }, "couldNotOpenGitHubAppSettings": "GitHub એપ સેટિંગ્સ ખોલી શકાઈ નહીં", "installKiloGitHubApp": "Kilo GitHub એપ ઇન્સ્ટોલ કરો", @@ -576,7 +577,10 @@ "truncationBanner": "બદલાયેલી {{total}} ફાઇલોમાંથી પ્રથમ {{limit}} બતાવી રહ્યાં છીએ — GitHub API મર્યાદા", "statusAdded": "ઉમેરાયું", "statusContext": "સંદર્ભ", - "statusDeleted": "કાઢી નાખવામાં આવ્યું" + "statusDeleted": "કાઢી નાખવામાં આવ્યું", + "lineLabel": "{{status}} પંક્તિ {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ખાલી)" }, "linkPasteClipboardEmpty": "ક્લિપબોર્ડ ખાલી છે", "linkPasteNotAPullRequest": "આ GitHub પુલ રિક્વેસ્ટ લિંક નથી", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "જવાબ આપી શકાયો નહીં.", "couldNotCompleteAction": "આ ક્રિયા પૂર્ણ કરી શકાઈ નહીં.", - "mergeResultDefaultError": "GitHub એ મર્જ પૂર્ણ કર્યું નથી." + "mergeResultDefaultError": "GitHub એ મર્જ પૂર્ણ કર્યું નથી.", + "ambiguous": "પુષ્ટિ કરી શકાઈ નહીં — ફરી પ્રયાસ કરતાં પહેલાં PR તપાસો.", + "persistenceFailed": "અમે આ ક્રિયા રેકોર્ડ કરી શક્યા નથી. કૃપા કરીને પછીથી ફરી પ્રયત્ન કરો.", + "forbidden": "પ્રતિબંધિત" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "સેન્ટ", "dollar_one": "ડૉલર", "dollar": "ડૉલર", - "dollar_other": "ડૉલર" + "dollar_other": "ડૉલર", + "costSpoken": "કિંમત {{cost}}", + "costSpokenWithTime": "કિંમત {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ખોલી શકાયું નથી", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "એપ સ્ટોર ખોલી શકાયું નહીં.", "description": "Kilo નો નવો વર્ઝન ઉપલબ્ધ છે. ચાલુ રાખવા માટે કૃપા કરીને અપડેટ કરો.", "title": "અપડેટ જરૂરી", - "updateNow": "હમણાં અપડેટ કરો" + "updateNow": "હમણાં અપડેટ કરો", + "appStorePage": "એપ સ્ટોર પેજ" }, "home": { "couldNotLoadSessions": "સત્રો લોડ કરી શકાયા નહીં", diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index 7a4ef30c43..4a14815609 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Tsoho akan {{path}} {{lines}}", "outdatedOnLines": "Tsoho akan {{lines}}", "outdatedOnPath": "Tsoho akan {{path}}" - } + }, + "deletedUser": "mai amfani da aka share" }, "couldNotOpenGitHubAppSettings": "Ba a iya buɗe saitunan GitHub App ba", "installKiloGitHubApp": "Shigar da Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Ana nuna farkon {{limit}} na {{total}} fayilolin da aka canza — iyakar GitHub API", "statusAdded": "An ƙara", "statusContext": "Mahallin", - "statusDeleted": "An share" + "statusDeleted": "An share", + "lineLabel": "{{status}} layin {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(marar komai)" }, "linkPasteClipboardEmpty": "Allon kwafi babu kome", "linkPasteNotAPullRequest": "Ba hanyar GitHub pull request ba", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Ba a iya amsawa ba.", "couldNotCompleteAction": "Ba a iya kammala wannan aikin ba.", - "mergeResultDefaultError": "GitHub bai kammala haɗawa ba." + "mergeResultDefaultError": "GitHub bai kammala haɗawa ba.", + "ambiguous": "Ba a iya tabbatarwa ba — duba PR kafin ka sake gwadawa.", + "persistenceFailed": "Ba mu iya rubuta wannan aikin ba. Da fatan za ka sake gwadawa daga baya.", + "forbidden": "An hana" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "senti", "dollar_one": "dala", "dollar": "daloli", - "dollar_other": "daloli" + "dollar_other": "daloli", + "costSpoken": "Farashi {{cost}}", + "costSpokenWithTime": "Farashi {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "An kasa buɗe GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Ba a iya buɗe kantin apps ba.", "description": "Akwai sabon sigar Kilo. Da fatan za a sabunta don ci gaba.", "title": "Ana buƙatar sabuntawa", - "updateNow": "Sabunta yanzu" + "updateNow": "Sabunta yanzu", + "appStorePage": "shafin kantin apps" }, "home": { "couldNotLoadSessions": "An kasa ɗora zaman", diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index b4696b1ee2..bce9e64484 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -1615,7 +1615,9 @@ "dollar": "דולרים", "dollar_other": "דולרים", "cent_two": "סנטים", - "dollar_two": "דולרים" + "dollar_two": "דולרים", + "costSpoken": "עלות {{cost}}", + "costSpokenWithTime": "עלות {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "לא ניתן היה להתחיל את הגדרת אפליקציית GitHub. נסה שוב.", @@ -2200,7 +2202,8 @@ "couldNotOpenStore": "לא ניתן היה לפתוח את חנות האפליקציות.", "description": "גרסה חדשה של Kilo זמינה. עדכן כדי להמשיך.", "title": "נדרש עדכון", - "updateNow": "עדכן עכשיו" + "updateNow": "עדכן עכשיו", + "appStorePage": "דף חנות האפליקציות" }, "home": { "couldNotLoadSessions": "לא ניתן לטעון הפעלות", @@ -2599,7 +2602,8 @@ "outdatedOnPathLines": "מיושן על {{path}} {{lines}}", "outdatedOnLines": "מיושן על {{lines}}", "outdatedOnPath": "מיושן על {{path}}" - } + }, + "deletedUser": "משתמש שנמחק" }, "entry": { "clearLink": "נקה קישור בקשת משיכה", @@ -2882,7 +2886,10 @@ "truncationBanner": "מציג את {{limit}} הראשונים מתוך {{total}} קבצים ששונו — מגבלת API של GitHub", "statusAdded": "נוסף", "statusContext": "הקשר", - "statusDeleted": "נמחק" + "statusDeleted": "נמחק", + "lineLabel": "{{status}} שורה {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ריק)" }, "linkPasteClipboardEmpty": "הלוח ריק", "linkPasteNotAPullRequest": "לא קישור לבקשת משיכה ב-GitHub", @@ -2900,7 +2907,10 @@ "operation": { "couldNotReply": "לא ניתן היה להשיב.", "couldNotCompleteAction": "לא ניתן היה להשלים פעולה זו.", - "mergeResultDefaultError": "GitHub לא השלים את המיזוג." + "mergeResultDefaultError": "GitHub לא השלים את המיזוג.", + "ambiguous": "לא ניתן היה לאשר — בדוק את ה-PR לפני שתנסה שוב.", + "persistenceFailed": "לא הצלחנו לתעד פעולה זו. אנא נסה שוב מאוחר יותר.", + "forbidden": "אין הרשאה" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index 647b7b15e4..606241dfe2 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -1607,7 +1607,9 @@ "cent_other": "सेंट", "dollar_one": "डॉलर", "dollar": "डॉलर", - "dollar_other": "डॉलर" + "dollar_other": "डॉलर", + "costSpoken": "लागत {{cost}}", + "costSpokenWithTime": "लागत {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "हम GitHub ऐप सेटअप शुरू नहीं कर सके। कृपया फिर से कोशिश करें।", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "ऐप स्टोर नहीं खुल सका।", "description": "Kilo का नया संस्करण उपलब्ध है। जारी रखने के लिए कृपया अपडेट करें।", "title": "अपडेट आवश्यक", - "updateNow": "अभी अपडेट करें" + "updateNow": "अभी अपडेट करें", + "appStorePage": "ऐप स्टोर पेज" }, "home": { "couldNotLoadSessions": "सत्र लोड नहीं हो सके", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} पर पुराना", "outdatedOnLines": "{{lines}} पर पुराना", "outdatedOnPath": "{{path}} पर पुराना" - } + }, + "deletedUser": "हटाया गया उपयोगकर्ता" }, "entry": { "clearLink": "पुल रिक्वेस्ट लिंक साफ़ करें", @@ -2862,7 +2866,10 @@ "truncationBanner": "बदली गई {{total}} फ़ाइलों में से पहली {{limit}} फ़ाइलें दिखाई जा रही हैं — GitHub API सीमा", "statusAdded": "जोड़ा गया", "statusContext": "संदर्भ", - "statusDeleted": "हटाया गया" + "statusDeleted": "हटाया गया", + "lineLabel": "{{status}} पंक्ति {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(खाली)" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड खाली है", "linkPasteNotAPullRequest": "यह GitHub पुल रिक्वेस्ट लिंक नहीं है", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "उत्तर नहीं दे सका।", "couldNotCompleteAction": "यह कार्रवाई पूरी नहीं हो सकी।", - "mergeResultDefaultError": "GitHub ने मर्ज पूरा नहीं किया।" + "mergeResultDefaultError": "GitHub ने मर्ज पूरा नहीं किया।", + "ambiguous": "पुष्टि नहीं हो सकी — दोबारा कोशिश करने से पहले PR जाँचें।", + "persistenceFailed": "हम इस कार्रवाई को रिकॉर्ड नहीं कर सके। कृपया बाद में फिर से प्रयास करें।", + "forbidden": "निषिद्ध" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index 952929be69..c2c444a8ba 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -411,7 +411,8 @@ "outdatedOnPathLines": "Zastarjelo na {{path}} {{lines}}", "outdatedOnLines": "Zastarjelo na {{lines}}", "outdatedOnPath": "Zastarjelo na {{path}}" - } + }, + "deletedUser": "obrisani korisnik" }, "couldNotOpenGitHubAppSettings": "Nije moguće otvoriti postavke GitHub aplikacije", "installKiloGitHubApp": "Instaliraj Kilo GitHub aplikaciju", @@ -583,7 +584,10 @@ "truncationBanner": "Prikazujem prvih {{limit}} od {{total}} promijenjenih datoteka — ograničenje GitHub API-ja", "statusAdded": "Dodano", "statusContext": "Kontekst", - "statusDeleted": "Obrisano" + "statusDeleted": "Obrisano", + "lineLabel": "{{status}} redak {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(prazno)" }, "linkPasteClipboardEmpty": "Međuspremnik je prazan", "linkPasteNotAPullRequest": "Nije poveznica na GitHub pull request", @@ -601,7 +605,10 @@ "operation": { "couldNotReply": "Nije moguće odgovoriti.", "couldNotCompleteAction": "Nije moguće dovršiti ovu radnju.", - "mergeResultDefaultError": "GitHub nije dovršio spajanje." + "mergeResultDefaultError": "GitHub nije dovršio spajanje.", + "ambiguous": "Nije moguće potvrditi — provjerite PR prije ponovnog pokušaja.", + "persistenceFailed": "Nismo mogli zabilježiti ovu radnju. Pokušajte ponovno kasnije.", + "forbidden": "Zabranjeno" } }, "notifications": { @@ -2069,7 +2076,9 @@ "dollar": "dolara", "dollar_other": "dolara", "cent_few": "centa", - "dollar_few": "dolara" + "dollar_few": "dolara", + "costSpoken": "Trošak {{cost}}", + "costSpokenWithTime": "Trošak {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Nije moguće otvoriti GitHub", @@ -2654,7 +2663,8 @@ "couldNotOpenStore": "Nije moguće otvoriti trgovinu aplikacija.", "description": "Dostupna je nova verzija Kilo. Ažurirajte za nastavak.", "title": "Potrebno ažuriranje", - "updateNow": "Ažuriraj sada" + "updateNow": "Ažuriraj sada", + "appStorePage": "stranica trgovine aplikacija" }, "home": { "couldNotLoadSessions": "Nije moguće učitati sesije", diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index 715a92580e..953ba63da4 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Demode sou {{path}} {{lines}}", "outdatedOnLines": "Demode sou {{lines}}", "outdatedOnPath": "Demode sou {{path}}" - } + }, + "deletedUser": "itilizatè efase" }, "couldNotOpenGitHubAppSettings": "Pa t ka louvri paramèt GitHub App", "installKiloGitHubApp": "Enstale Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Ap montre premye {{limit}} sou {{total}} fichye ki chanje — limit API GitHub", "statusAdded": "Ajoute", "statusContext": "Kontèks", - "statusDeleted": "Efase" + "statusDeleted": "Efase", + "lineLabel": "{{status}} liy {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(vid)" }, "linkPasteClipboardEmpty": "Clipboard la vid", "linkPasteNotAPullRequest": "Se pa yon lyen pull request GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Pa t ka reponn.", "couldNotCompleteAction": "Pa t ka fini aksyon sa a.", - "mergeResultDefaultError": "GitHub pa t fini fizyon an." + "mergeResultDefaultError": "GitHub pa t fini fizyon an.", + "ambiguous": "Pa t ka konfime — tcheke PR a anvan ou eseye ankò.", + "persistenceFailed": "Nou pa t ka anrejistre aksyon sa a. Tanpri eseye ankò pita.", + "forbidden": "Entèdi" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "santim", "dollar_one": "dola", "dollar": "dola", - "dollar_other": "dola" + "dollar_other": "dola", + "costSpoken": "Pri {{cost}}", + "costSpokenWithTime": "Pri {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Pa t 'kapab louvri GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Pa t ka louvri magazen aplikasyon an.", "description": "Yon nouvo vèsyon Kilo disponib. Tanpri mete ajou pou kontinye.", "title": "Aktyalizasyon obligatwa", - "updateNow": "Mete ajou kounye a" + "updateNow": "Mete ajou kounye a", + "appStorePage": "paj magazen aplikasyon" }, "home": { "couldNotLoadSessions": "Pa t ka chaje sesyon", diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index 9566293aa6..3945d33856 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Elavult itt: {{path}} {{lines}}", "outdatedOnLines": "Elavult itt: {{lines}}", "outdatedOnPath": "Elavult itt: {{path}}" - } + }, + "deletedUser": "törölt felhasználó" }, "couldNotOpenGitHubAppSettings": "Nem sikerült megnyitni a GitHub App beállításait", "installKiloGitHubApp": "A Kilo GitHub App telepítése", @@ -576,7 +577,10 @@ "truncationBanner": "A módosított {{total}} fájl közül az első {{limit}} megjelenítése — GitHub API-korlát", "statusAdded": "Hozzáadva", "statusContext": "Kontextus", - "statusDeleted": "Törölve" + "statusDeleted": "Törölve", + "lineLabel": "{{status}} sor {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(üres)" }, "linkPasteClipboardEmpty": "A vágólap üres", "linkPasteNotAPullRequest": "Nem GitHub pull request hivatkozás", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Nem sikerült válaszolni.", "couldNotCompleteAction": "Nem sikerült végrehajtani ezt a műveletet.", - "mergeResultDefaultError": "A GitHub nem fejezte be az összevonást." + "mergeResultDefaultError": "A GitHub nem fejezte be az összevonást.", + "ambiguous": "Nem sikerült megerősíteni — ellenőrizze a PR-t az újrapróbálás előtt.", + "persistenceFailed": "Nem sikerült rögzíteni ezt a műveletet. Kérjük, próbálja újra később.", + "forbidden": "Tiltott" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cent", "dollar_one": "dollár", "dollar": "dollár", - "dollar_other": "dollár" + "dollar_other": "dollár", + "costSpoken": "költség {{cost}}", + "costSpokenWithTime": "költség {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "A GitHub megnyitása nem sikerült", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Az alkalmazásbolt nem nyitható meg.", "description": "Elérhető a Kilo új verziója. A folytatáshoz frissíts.", "title": "Frissítés szükséges", - "updateNow": "Frissítés most" + "updateNow": "Frissítés most", + "appStorePage": "alkalmazásbolt oldala" }, "home": { "couldNotLoadSessions": "A munkameneteket nem sikerült betölteni", diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index d95370c7a0..16687116e5 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Հնացած է {{path}} {{lines}}-ում", "outdatedOnLines": "Հնացած է {{lines}}-ում", "outdatedOnPath": "Հնացած է {{path}}-ում" - } + }, + "deletedUser": "ջնջված օգտատեր" }, "couldNotOpenGitHubAppSettings": "Չհաջողվեց բացել GitHub հավելվածի կարգավորումները", "installKiloGitHubApp": "Տեղադրել Kilo GitHub հավելվածը", @@ -576,7 +577,10 @@ "truncationBanner": "Ցուցադրվում են փոփոխված {{total}} ֆայլերից առաջին {{limit}}-ը — GitHub API-ի սահմանաչափ", "statusAdded": "Ավելացված", "statusContext": "Համատեքստ", - "statusDeleted": "Ջնջված" + "statusDeleted": "Ջնջված", + "lineLabel": "{{status}} տող {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(դատարկ)" }, "linkPasteClipboardEmpty": "Սեղմատախտակը դատարկ է", "linkPasteNotAPullRequest": "Սա GitHub-ի pull request հղում չէ", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Չհաջողվեց պատասխանել:", "couldNotCompleteAction": "Չհաջողվեց ավարտել այս գործողությունը:", - "mergeResultDefaultError": "GitHub-ը չավարտեց միավորումը:" + "mergeResultDefaultError": "GitHub-ը չավարտեց միավորումը:", + "ambiguous": "Չհաջողվեց հաստատել — նախքան նորից փորձելը ստուգեք PR-ը։", + "persistenceFailed": "Մենք չկարողացանք գրանցել այս գործողությունը: Խնդրում ենք կրկին փորձել ավելի ուշ:", + "forbidden": "Արգելված" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ցենտ", "dollar_one": "դոլար", "dollar": "դոլար", - "dollar_other": "դոլար" + "dollar_other": "դոլար", + "costSpoken": "Արժեք {{cost}}", + "costSpokenWithTime": "Արժեք {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Չհաջողվեց բացել GitHub-ը", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Հնարավոր չեղավ բացել հավելվածների խանութը:", "description": "Kilo-ի նոր տարբերակը հասանելի է: Խնդրում ենք թարմացնել՝ շարունակելու համար:", "title": "Թարմացումը պարտադիր է", - "updateNow": "Թարմացնել հիմա" + "updateNow": "Թարմացնել հիմա", + "appStorePage": "հավելվածների խանութի էջ" }, "home": { "couldNotLoadSessions": "Հնարավոր չեղավ բեռնել նիստերը", diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index 0398cdc8f4..52d13fb8cc 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -1607,7 +1607,9 @@ "cent_other": "sen", "dollar_one": "dolar", "dollar": "dolar", - "dollar_other": "dolar" + "dollar_other": "dolar", + "costSpoken": "biaya {{cost}}", + "costSpokenWithTime": "biaya {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Kami tidak dapat memulai penyiapan Aplikasi GitHub. Silakan coba lagi.", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "Tidak dapat membuka toko aplikasi.", "description": "Versi baru Kilo tersedia. Perbarui untuk melanjutkan.", "title": "Pembaruan diperlukan", - "updateNow": "Perbarui sekarang" + "updateNow": "Perbarui sekarang", + "appStorePage": "halaman toko aplikasi" }, "home": { "couldNotLoadSessions": "Tidak dapat memuat sesi", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "Kedaluwarsa di {{path}} {{lines}}", "outdatedOnLines": "Kedaluwarsa di {{lines}}", "outdatedOnPath": "Kedaluwarsa di {{path}}" - } + }, + "deletedUser": "pengguna yang dihapus" }, "entry": { "clearLink": "Hapus tautan pull request", @@ -2862,7 +2866,10 @@ "truncationBanner": "Menampilkan {{limit}} file pertama dari {{total}} file yang diubah — batas API GitHub", "statusAdded": "Ditambahkan", "statusContext": "Konteks", - "statusDeleted": "Dihapus" + "statusDeleted": "Dihapus", + "lineLabel": "{{status}} baris {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(kosong)" }, "linkPasteClipboardEmpty": "Clipboard kosong", "linkPasteNotAPullRequest": "Bukan tautan pull request GitHub", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "Tidak dapat membalas.", "couldNotCompleteAction": "Tidak dapat menyelesaikan tindakan ini.", - "mergeResultDefaultError": "GitHub tidak menyelesaikan penggabungan." + "mergeResultDefaultError": "GitHub tidak menyelesaikan penggabungan.", + "ambiguous": "Tidak dapat mengonfirmasi — periksa PR sebelum mencoba lagi.", + "persistenceFailed": "Kami tidak dapat mencatat tindakan ini. Silakan coba lagi nanti.", + "forbidden": "Dilarang" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index bf423c5c63..130484ff54 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Ochie na {{path}} {{lines}}", "outdatedOnLines": "Ochie na {{lines}}", "outdatedOnPath": "Ochie na {{path}}" - } + }, + "deletedUser": "onye ọrụ e hichapụrụ" }, "couldNotOpenGitHubAppSettings": "Enweghị ike imepe ntọala Ngwa GitHub", "installKiloGitHubApp": "Tinye Ngwa Kilo GitHub", @@ -576,7 +577,10 @@ "truncationBanner": "Na-egosi nke mbụ {{limit}} n'ime {{total}} faịlụ agbanwere — njedebe API GitHub", "statusAdded": "Agbakwunyere", "statusContext": "Ọdịnaya", - "statusDeleted": "Ehichapụla" + "statusDeleted": "Ehichapụla", + "lineLabel": "{{status}} ahịrị {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(efu)" }, "linkPasteClipboardEmpty": "Mbadamba ederede tọgbọrọ chakachara", "linkPasteNotAPullRequest": "Ọ bụghị njikọ arịrịọ ndọta GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Enweghị ike ịzaghachi.", "couldNotCompleteAction": "Enweghị ike imecha omume a.", - "mergeResultDefaultError": "GitHub emechaghị njikọta ahụ." + "mergeResultDefaultError": "GitHub emechaghị njikọta ahụ.", + "ambiguous": "Enweghị ike ikwenye — lelee PR tupu ị nwaa ọzọ.", + "persistenceFailed": "Anyị enweghị ike ịdekọ omume a. Biko nwaa ọzọ ma emechaa.", + "forbidden": "Amachibidoro" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "senti", "dollar_one": "dollar", "dollar": "dollar", - "dollar_other": "dollar" + "dollar_other": "dollar", + "costSpoken": "ọnụ ahịa {{cost}}", + "costSpokenWithTime": "ọnụ ahịa {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Enweghị ike imeghe GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Enweghị ike imeghe ụlọ ahịa ngwa.", "description": "Ụdị ọhụrụ nke Kilo dị. Biko melite ka ị gaa n'ihu.", "title": "Ịmelite chọrọ", - "updateNow": "Melite ugbu a" + "updateNow": "Melite ugbu a", + "appStorePage": "ibe ụlọ ahịa ngwa" }, "home": { "couldNotLoadSessions": "Enweghị ike ibutu nnọkọ", diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index 0f3ab6483d..81704d67fd 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Úrelt á {{path}} {{lines}}", "outdatedOnLines": "Úrelt á {{lines}}", "outdatedOnPath": "Úrelt á {{path}}" - } + }, + "deletedUser": "eyddur notandi" }, "couldNotOpenGitHubAppSettings": "Gat ekki opnað stillingar GitHub App", "installKiloGitHubApp": "Settu upp Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Sýni fyrstu {{limit}} af {{total}} breyttum skrám — GitHub API takmörk", "statusAdded": "Bætt", "statusContext": "Samhengi", - "statusDeleted": "Eytt" + "statusDeleted": "Eytt", + "lineLabel": "{{status}} lína {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tómt)" }, "linkPasteClipboardEmpty": "Klippiborð er tómt", "linkPasteNotAPullRequest": "Ekki GitHub pull request hlekkur", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Gat ekki svarað.", "couldNotCompleteAction": "Gat ekki lokið þessari aðgerð.", - "mergeResultDefaultError": "GitHub kláraði ekki sameininguna." + "mergeResultDefaultError": "GitHub kláraði ekki sameininguna.", + "ambiguous": "Gat ekki staðfest — athugaðu PR áður en þú reynir aftur.", + "persistenceFailed": "Við gátum ekki skráð þessa aðgerð. Reyndu aftur síðar.", + "forbidden": "Bannað" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cent", "dollar_one": "dalur", "dollar": "dalir", - "dollar_other": "dalir" + "dollar_other": "dalir", + "costSpoken": "kostnaður {{cost}}", + "costSpokenWithTime": "kostnaður {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Ekki tókst að opna GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Ekki tókst að opna app-verslunina.", "description": "Ný útgáfa af Kilo er tiltæk. Uppfærðu til að halda áfram.", "title": "Uppfærsla nauðsynleg", - "updateNow": "Uppfæra núna" + "updateNow": "Uppfæra núna", + "appStorePage": "app-verslunarsíða" }, "home": { "couldNotLoadSessions": "Ekki tókst að hlaða lotur", diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index acf7a26afa..5813a4ab28 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -1601,7 +1601,9 @@ "dollar": "dollari", "dollar_other": "dollari", "cent_many": "centesimi", - "dollar_many": "dollari" + "dollar_many": "dollari", + "costSpoken": "costo {{cost}}", + "costSpokenWithTime": "costo {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Impossibile avviare la configurazione della GitHub App. Riprova.", @@ -2200,7 +2202,8 @@ "couldNotOpenStore": "Impossibile aprire l'app store.", "description": "È disponibile una nuova versione di Kilo. Aggiorna per continuare.", "title": "Aggiornamento richiesto", - "updateNow": "Aggiorna ora" + "updateNow": "Aggiorna ora", + "appStorePage": "pagina dell'app store" }, "home": { "couldNotLoadSessions": "Impossibile caricare le sessioni", @@ -2599,7 +2602,8 @@ "outdatedOnPathLines": "Obsoleto su {{path}} {{lines}}", "outdatedOnLines": "Obsoleto su {{lines}}", "outdatedOnPath": "Obsoleto su {{path}}" - } + }, + "deletedUser": "utente eliminato" }, "entry": { "clearLink": "Cancella il link della pull request", @@ -2882,7 +2886,10 @@ "truncationBanner": "Mostra le prime {{limit}} di {{total}} modifiche ai file — limite API GitHub", "statusAdded": "Aggiunto", "statusContext": "Contesto", - "statusDeleted": "Eliminato" + "statusDeleted": "Eliminato", + "lineLabel": "{{status}} riga {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(vuoto)" }, "linkPasteClipboardEmpty": "Appunti vuoti", "linkPasteNotAPullRequest": "Non è un link a una pull request di GitHub", @@ -2900,7 +2907,10 @@ "operation": { "couldNotReply": "Impossibile rispondere.", "couldNotCompleteAction": "Impossibile completare questa azione.", - "mergeResultDefaultError": "GitHub non ha completato il merge." + "mergeResultDefaultError": "GitHub non ha completato il merge.", + "ambiguous": "Impossibile confermare — controlla la PR prima di riprovare.", + "persistenceFailed": "Non abbiamo potuto registrare questa azione. Riprova più tardi.", + "forbidden": "Vietato" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 00e6f6829a..fee362fecd 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -1607,7 +1607,9 @@ "cent_other": "セント", "dollar_one": "ドル", "dollar": "ドル", - "dollar_other": "ドル" + "dollar_other": "ドル", + "costSpoken": "コスト {{cost}}", + "costSpokenWithTime": "コスト {{cost}}、{{time}}" }, "githubInstall": { "couldNotOpenMessage": "GitHub Appのセットアップを開始できませんでした。もう一度お試しください。", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "アプリストアを開けませんでした。", "description": "Kiloの新しいバージョンが利用可能です。続行するには更新してください。", "title": "更新が必要です", - "updateNow": "今すぐ更新" + "updateNow": "今すぐ更新", + "appStorePage": "アプリストアのページ" }, "home": { "couldNotLoadSessions": "セッションを読み込めませんでした", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "{{path}} {{lines}}の古いコメント", "outdatedOnLines": "{{lines}}の古いコメント", "outdatedOnPath": "{{path}}の古いコメント" - } + }, + "deletedUser": "削除されたユーザー" }, "entry": { "clearLink": "プルリクエストリンクをクリア", @@ -2862,7 +2866,10 @@ "truncationBanner": "変更されたファイル {{total}} 件中、最初の {{limit}} 件を表示中 — GitHub API の制限", "statusAdded": "追加", "statusContext": "コンテキスト", - "statusDeleted": "削除" + "statusDeleted": "削除", + "lineLabel": "{{status}} {{line}}行: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(空)" }, "linkPasteClipboardEmpty": "クリップボードが空です", "linkPasteNotAPullRequest": "GitHub のプルリクエストリンクではありません", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "返信できませんでした。", "couldNotCompleteAction": "この操作を完了できませんでした。", - "mergeResultDefaultError": "GitHubはマージを完了しませんでした。" + "mergeResultDefaultError": "GitHubはマージを完了しませんでした。", + "ambiguous": "確認できませんでした — 再試行する前にPRを確認してください。", + "persistenceFailed": "この操作を記録できませんでした。後でもう一度お試しください。", + "forbidden": "禁止" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index 2ee7f855a2..48c22784e2 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "მოძველებულია {{path}} {{lines}}-ზე", "outdatedOnLines": "მოძველებულია {{lines}}-ზე", "outdatedOnPath": "მოძველებულია {{path}}-ზე" - } + }, + "deletedUser": "წაშლილი მომხმარებელი" }, "couldNotOpenGitHubAppSettings": "GitHub აპლიკაციის პარამეტრების გახსნა ვერ მოხერხდა", "installKiloGitHubApp": "დააინსტალირეთ Kilo GitHub აპლიკაცია", @@ -576,7 +577,10 @@ "truncationBanner": "ნაჩვენებია შეცვლილი ფაილების {{total}}-დან პირველი {{limit}} — GitHub API ლიმიტი", "statusAdded": "დამატებულია", "statusContext": "კონტექსტი", - "statusDeleted": "წაშლილია" + "statusDeleted": "წაშლილია", + "lineLabel": "{{status}} ხაზი {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ცარიელი)" }, "linkPasteClipboardEmpty": "ბუფერი ცარიელია", "linkPasteNotAPullRequest": "არ არის GitHub pull request ბმული", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "პასუხი ვერ მოხერხდა.", "couldNotCompleteAction": "ამ მოქმედების დასრულება ვერ მოხერხდა.", - "mergeResultDefaultError": "GitHub-მა შერწყმა ვერ დაასრულა." + "mergeResultDefaultError": "GitHub-მა შერწყმა ვერ დაასრულა.", + "ambiguous": "დადასტურება ვერ მოხერხდა — PR-ის ხელახლა ცდამდე შეამოწმეთ იგი.", + "persistenceFailed": "ამ მოქმედების ჩაწერა ვერ მოხერხდა. გთხოვთ, სცადოთ მოგვიანებით.", + "forbidden": "აკრძალულია" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ცენტი", "dollar_one": "დოლარი", "dollar": "დოლარი", - "dollar_other": "დოლარი" + "dollar_other": "დოლარი", + "costSpoken": "ღირებულება {{cost}}", + "costSpokenWithTime": "ღირებულება {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub-ის გახსნა ვერ მოხერხდა", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "აპლიკაციების მაღაზიის გახსნა ვერ მოხერხდა.", "description": "Kilo-ის ახალი ვერსია ხელმისაწვდომია. გასაგრძელებლად გთხოვთ, განაახლოთ.", "title": "საჭიროა განახლება", - "updateNow": "ახლავე განახლება" + "updateNow": "ახლავე განახლება", + "appStorePage": "აპლიკაციების მაღაზიის გვერდი" }, "home": { "couldNotLoadSessions": "სესიების ჩატვირთვა ვერ მოხერხდა", diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index 2641bdbbd1..e8e76cfaa6 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} бойынша ескірген", "outdatedOnLines": "{{lines}} бойынша ескірген", "outdatedOnPath": "{{path}} бойынша ескірген" - } + }, + "deletedUser": "жойылған пайдаланушы" }, "couldNotOpenGitHubAppSettings": "GitHub App параметрлерін ашу мүмкін болмады", "installKiloGitHubApp": "Kilo GitHub App орнату", @@ -576,7 +577,10 @@ "truncationBanner": "Өзгертілген {{total}} файлдың алғашқы {{limit}}-і көрсетілуде — GitHub API шегі", "statusAdded": "Қосылды", "statusContext": "Контекст", - "statusDeleted": "Жойылды" + "statusDeleted": "Жойылды", + "lineLabel": "{{status}} {{line}} жол: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(бос)" }, "linkPasteClipboardEmpty": "Айырбастау буфері бос", "linkPasteNotAPullRequest": "GitHub pull request сілтемесі емес", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Жауап беру мүмкін болмады.", "couldNotCompleteAction": "Бұл әрекетті аяқтау мүмкін болмады.", - "mergeResultDefaultError": "GitHub біріктіруді аяқтамады." + "mergeResultDefaultError": "GitHub біріктіруді аяқтамады.", + "ambiguous": "Растау мүмкін болмады — қайталамас бұрын PR-ті тексеріңіз.", + "persistenceFailed": "Бұл әрекетті тіркей алмадық. Кейінірек қайталап көріңіз.", + "forbidden": "Тыйым салынған" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "цент", "dollar_one": "доллар", "dollar": "доллар", - "dollar_other": "доллар" + "dollar_other": "доллар", + "costSpoken": "құны {{cost}}", + "costSpokenWithTime": "құны {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ашу мүмкін болмады", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Қосымшалар дүкенін ашу мүмкін болмады.", "description": "Kilo-ның жаңа нұсқасы қолжетімді. Жалғастыру үшін жаңартыңыз.", "title": "Жаңарту қажет", - "updateNow": "Қазір жаңарту" + "updateNow": "Қазір жаңарту", + "appStorePage": "қосымшалар дүкенінің беті" }, "home": { "couldNotLoadSessions": "Сессияларды жүктеу мүмкін болмады", diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index 9275d821dc..cf2f1e31fe 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "ហួសសម័យនៅលើ {{path}} {{lines}}", "outdatedOnLines": "ហួសសម័យនៅលើ {{lines}}", "outdatedOnPath": "ហួសសម័យនៅលើ {{path}}" - } + }, + "deletedUser": "អ្នកប្រើដែលបានលុប" }, "couldNotOpenGitHubAppSettings": "មិនអាចបើកការកំណត់ GitHub App បានទេ", "installKiloGitHubApp": "ដំឡើង Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "កំពុងបង្ហាញ {{limit}} ដំបូងក្នុងចំណោម {{total}} ឯកសារដែលបានផ្លាស់ប្តូរ — ដែនកំណត់ GitHub API", "statusAdded": "បានបន្ថែម", "statusContext": "បរិបទ", - "statusDeleted": "បានលុប" + "statusDeleted": "បានលុប", + "lineLabel": "{{status}} បន្ទាត់ {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ទទេ)" }, "linkPasteClipboardEmpty": "ក្ដារតម្បៀតខ្ទាស់ទទេ", "linkPasteNotAPullRequest": "មិនមែនជាតំណ pull request របស់ GitHub ទេ", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "មិនអាចឆ្លើយតបបានទេ។", "couldNotCompleteAction": "មិនអាចបញ្ចប់សកម្មភាពនេះបានទេ។", - "mergeResultDefaultError": "GitHub មិនបានបញ្ចប់ការបញ្ចូលទេ។" + "mergeResultDefaultError": "GitHub មិនបានបញ្ចប់ការបញ្ចូលទេ។", + "ambiguous": "មិនអាចបញ្ជាក់បានទេ — សូមពិនិត្យ PR មុនពេលព្យាយាមម្តងទៀត។", + "persistenceFailed": "យើងមិនអាចកត់ត្រាសកម្មភាពនេះបានទេ។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។", + "forbidden": "ហាមឃាត់" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "សេន", "dollar_one": "ដុល្លារ", "dollar": "ដុល្លារ", - "dollar_other": "ដុល្លារ" + "dollar_other": "ដុល្លារ", + "costSpoken": "តម្លៃ {{cost}}", + "costSpokenWithTime": "តម្លៃ {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "មិនអាចបើក GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "មិនអាចបើកហាងកម្មវិធីបានទេ។", "description": "កំណែថ្មីរបស់ Kilo អាចប្រើបាន។ សូមធ្វើបច្ចុប្បន្នភាពដើម្បីបន្ត។", "title": "ទាមទារការធ្វើបច្ចុប្បន្នភាព", - "updateNow": "ធ្វើបច្ចុប្បន្នភាពឥឡូវនេះ" + "updateNow": "ធ្វើបច្ចុប្បន្នភាពឥឡូវនេះ", + "appStorePage": "ទំព័រហាងកម្មវិធី" }, "home": { "couldNotLoadSessions": "មិនអាចផ្ទុកវគ្គបានទេ", diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index eb090604c7..24267060ce 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} ನಲ್ಲಿ ಹಳೆಯದಾಗಿದೆ", "outdatedOnLines": "{{lines}} ನಲ್ಲಿ ಹಳೆಯದಾಗಿದೆ", "outdatedOnPath": "{{path}} ನಲ್ಲಿ ಹಳೆಯದಾಗಿದೆ" - } + }, + "deletedUser": "ಅಳಿಸಲಾದ ಬಳಕೆದಾರ" }, "couldNotOpenGitHubAppSettings": "GitHub App ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", "installKiloGitHubApp": "Kilo GitHub App ಅನ್ನು ಸ್ಥಾಪಿಸಿ", @@ -576,7 +577,10 @@ "truncationBanner": "ಬದಲಾದ {{total}} ಫೈಲ್ಗಳಲ್ಲಿ ಮೊದಲ {{limit}} ತೋರಿಸಲಾಗುತ್ತಿದೆ — GitHub API ಮಿತಿ", "statusAdded": "ಸೇರಿಸಲಾಗಿದೆ", "statusContext": "ಸಂದರ್ಭ", - "statusDeleted": "ಅಳಿಸಲಾಗಿದೆ" + "statusDeleted": "ಅಳಿಸಲಾಗಿದೆ", + "lineLabel": "{{status}} ಸಾಲು {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ಖಾಲಿ)" }, "linkPasteClipboardEmpty": "ಕ್ಲಿಪ್ಬೋರ್ಡ್ ಖಾಲಿಯಾಗಿದೆ", "linkPasteNotAPullRequest": "GitHub ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್ ಲಿಂಕ್ ಅಲ್ಲ", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "ಉತ್ತರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "couldNotCompleteAction": "ಈ ಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", - "mergeResultDefaultError": "GitHub ವಿಲೀನವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಿಲ್ಲ." + "mergeResultDefaultError": "GitHub ವಿಲೀನವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲಿಲ್ಲ.", + "ambiguous": "ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ — ಮತ್ತೆ ಪ್ರಯತ್ನಿಸುವ ಮೊದಲು PR ಪರಿಶೀಲಿಸಿ.", + "persistenceFailed": "ಈ ಕ್ರಿಯೆಯನ್ನು ದಾಖಲಿಸಲು ನಮಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", + "forbidden": "ನಿಷೇಧಿಸಲಾಗಿದೆ" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ಸೆಂಟ್ಗಳು", "dollar_one": "ಡಾಲರ್", "dollar": "ಡಾಲರ್ಗಳು", - "dollar_other": "ಡಾಲರ್ಗಳು" + "dollar_other": "ಡಾಲರ್ಗಳು", + "costSpoken": "ವೆಚ್ಚ {{cost}}", + "costSpokenWithTime": "ವೆಚ್ಚ {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "ಅಪ್ ಸ್ಟೋರ್ ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.", "description": "Kilo ನ ಹೊಸ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ. ಮುಂದುವರಿಯಲು ದಯವಿಟ್ಟು ನವೀಕರಿಸಿ.", "title": "ನವೀಕರಣ ಅಗತ್ಯವಿದೆ", - "updateNow": "ಈಗ ನವೀಕರಿಸಿ" + "updateNow": "ಈಗ ನವೀಕರಿಸಿ", + "appStorePage": "ಅಪ್ ಸ್ಟೋರ್ ಪುಟ" }, "home": { "couldNotLoadSessions": "ಸೆಷನ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index 5e0d33056e..3bb1c507fe 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -1607,7 +1607,9 @@ "cent_other": "센트", "dollar_one": "달러", "dollar": "달러", - "dollar_other": "달러" + "dollar_other": "달러", + "costSpoken": "비용 {{cost}}", + "costSpokenWithTime": "비용 {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "GitHub 앱 설정을 시작할 수 없습니다. 다시 시도하세요.", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "앱 스토어를 열 수 없습니다.", "description": "새 버전의 Kilo가 있습니다. 계속하려면 업데이트하세요.", "title": "업데이트 필요", - "updateNow": "지금 업데이트" + "updateNow": "지금 업데이트", + "appStorePage": "앱 스토어 페이지" }, "home": { "couldNotLoadSessions": "세션을 불러올 수 없습니다", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "{{path}} {{lines}}에 오래됨", "outdatedOnLines": "{{lines}}에 오래됨", "outdatedOnPath": "{{path}}에 오래됨" - } + }, + "deletedUser": "삭제된 사용자" }, "entry": { "clearLink": "풀 리퀘스트 링크 지우기", @@ -2862,7 +2866,10 @@ "truncationBanner": "변경된 파일 {{total}}개 중 처음 {{limit}}개를 표시 중 — GitHub API 제한", "statusAdded": "추가됨", "statusContext": "컨텍스트", - "statusDeleted": "삭제됨" + "statusDeleted": "삭제됨", + "lineLabel": "{{status}} 줄 {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(비어 있음)" }, "linkPasteClipboardEmpty": "클립보드가 비어 있습니다", "linkPasteNotAPullRequest": "GitHub 풀 리퀘스트 링크가 아닙니다", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "답글을 달 수 없습니다.", "couldNotCompleteAction": "이 작업을 완료할 수 없습니다.", - "mergeResultDefaultError": "GitHub가 병합을 완료하지 않았습니다." + "mergeResultDefaultError": "GitHub가 병합을 완료하지 않았습니다.", + "ambiguous": "확인할 수 없습니다 — 다시 시도하기 전에 PR을 확인하세요.", + "persistenceFailed": "이 작업을 기록하지 못했습니다. 나중에 다시 시도하세요.", + "forbidden": "금지됨" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index febe1f9af3..58918de988 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "ລ້າສະໄໝໃນ {{path}} {{lines}}", "outdatedOnLines": "ລ້າສະໄໝໃນ {{lines}}", "outdatedOnPath": "ລ້າສະໄໝໃນ {{path}}" - } + }, + "deletedUser": "ຜູ້ໃຊ້ທີ່ຖືກລຶບ" }, "couldNotOpenGitHubAppSettings": "ບໍ່ສາມາດເປີດການຕັ້ງຄ່າ GitHub App ໄດ້", "installKiloGitHubApp": "ຕິດຕັ້ງ Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "ກຳລັງສະແດງ {{limit}} ທຳອິດຈາກ {{total}} ໄຟລ໌ທີ່ປ່ຽນແປງ — ຂີດຈຳກັດ GitHub API", "statusAdded": "ເພີ່ມແລ້ວ", "statusContext": "ບໍລິບົດ", - "statusDeleted": "ລຶບແລ້ວ" + "statusDeleted": "ລຶບແລ້ວ", + "lineLabel": "{{status}} ແຖວ {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ຫວ່າງ)" }, "linkPasteClipboardEmpty": "ຄລິບບອດວ່າງເປົ່າ", "linkPasteNotAPullRequest": "ບໍ່ແມ່ນລິ້ງ pull request ຂອງ GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "ບໍ່ສາມາດຕອບໄດ້.", "couldNotCompleteAction": "ບໍ່ສາມາດເຮັດການກະທຳນີ້ໃຫ້ສຳເລັດໄດ້.", - "mergeResultDefaultError": "GitHub ບໍ່ໄດ້ເຮັດການ merge ໃຫ້ສຳເລັດ." + "mergeResultDefaultError": "GitHub ບໍ່ໄດ້ເຮັດການ merge ໃຫ້ສຳເລັດ.", + "ambiguous": "ບໍ່ສາມາດຢືນຢັນໄດ້ — ກວດເບິ່ງ PR ກ່ອນລອງໃໝ່.", + "persistenceFailed": "ພວກເຮົາບໍ່ສາມາດບັນທຶກການກະທຳນີ້ໄດ້. ກະລຸນາລອງໃໝ່ພາຍຫຼັງ.", + "forbidden": "ຖືກຫ້າມ" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ເຊັນ", "dollar_one": "ໂດລາ", "dollar": "ໂດລາ", - "dollar_other": "ໂດລາ" + "dollar_other": "ໂດລາ", + "costSpoken": "ຄ່າໃຊ້ຈ່າຍ {{cost}}", + "costSpokenWithTime": "ຄ່າໃຊ້ຈ່າຍ {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "ບໍ່ສາມາດເປີດ GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "ບໍ່ສາມາດເປີດ app store.", "description": "Kilo ຮຸ່ນໃໝ່ມີແລ້ວ. ກະລຸນາອັບເດດເພື່ອສືບຕໍ່.", "title": "ຕ້ອງອັບເດດ", - "updateNow": "ອັບເດດດຽວນີ້" + "updateNow": "ອັບເດດດຽວນີ້", + "appStorePage": "ໜ້າ app store" }, "home": { "couldNotLoadSessions": "ບໍ່ສາມາດໂຫລດເຊດຊັນ", diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index 3939cee961..c5733d135e 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -415,7 +415,8 @@ "outdatedOnPathLines": "Pasenęs {{path}} {{lines}}", "outdatedOnLines": "Pasenęs {{lines}}", "outdatedOnPath": "Pasenęs {{path}}" - } + }, + "deletedUser": "ištrintas vartotojas" }, "couldNotOpenGitHubAppSettings": "Nepavyko atidaryti GitHub programėlės nustatymų", "installKiloGitHubApp": "Įdiegti Kilo GitHub programėlę", @@ -590,7 +591,10 @@ "truncationBanner": "Rodoma pirmi {{limit}} iš {{total}} pakeistų failų — „GitHub“ API limitas", "statusAdded": "Pridėta", "statusContext": "Kontekstas", - "statusDeleted": "Ištrinta" + "statusDeleted": "Ištrinta", + "lineLabel": "{{status}} eilutė {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tuščia)" }, "linkPasteClipboardEmpty": "Iškarpinė tuščia", "linkPasteNotAPullRequest": "Tai ne „GitHub“ pull request nuoroda", @@ -608,7 +612,10 @@ "operation": { "couldNotReply": "Nepavyko atsakyti.", "couldNotCompleteAction": "Nepavyko užbaigti šio veiksmo.", - "mergeResultDefaultError": "„GitHub“ nebaigė sujungimo." + "mergeResultDefaultError": "„GitHub“ nebaigė sujungimo.", + "ambiguous": "Nepavyko patvirtinti — prieš bandydami dar kartą patikrinkite PR.", + "persistenceFailed": "Nepavyko užfiksuoti šio veiksmo. Bandykite dar kartą vėliau.", + "forbidden": "Draudžiama" } }, "notifications": { @@ -2084,7 +2091,9 @@ "cent_few": "centai", "cent_many": "centų", "dollar_few": "doleriai", - "dollar_many": "dolerių" + "dollar_many": "dolerių", + "costSpoken": "kaina {{cost}}", + "costSpokenWithTime": "kaina {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Nepavyko atidaryti GitHub", @@ -2674,7 +2683,8 @@ "couldNotOpenStore": "Nepavyko atidaryti programų parduotuvės.", "description": "Galima nauja Kilo versija. Atnaujinkite, kad tęstumėte.", "title": "Reikia atnaujinti", - "updateNow": "Atnaujinti dabar" + "updateNow": "Atnaujinti dabar", + "appStorePage": "programų parduotuvės puslapis" }, "home": { "couldNotLoadSessions": "Nepavyko įkelti sesijų", diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 381112c90a..fab2c66cfd 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -411,7 +411,8 @@ "outdatedOnPathLines": "Novecojis uz {{path}} {{lines}}", "outdatedOnLines": "Novecojis uz {{lines}}", "outdatedOnPath": "Novecojis uz {{path}}" - } + }, + "deletedUser": "dzēsts lietotājs" }, "couldNotOpenGitHubAppSettings": "Neizdevās atvērt GitHub lietotnes iestatījumus", "installKiloGitHubApp": "Instalēt Kilo GitHub lietotni", @@ -583,7 +584,10 @@ "truncationBanner": "Tiek rādīti pirmie {{limit}} no {{total}} mainītajiem failiem — GitHub API ierobežojums", "statusAdded": "Pievienots", "statusContext": "Konteksts", - "statusDeleted": "Dzēsts" + "statusDeleted": "Dzēsts", + "lineLabel": "{{status}} rinda {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tukšs)" }, "linkPasteClipboardEmpty": "Starpliktuve ir tukša", "linkPasteNotAPullRequest": "Nav GitHub pieprasījuma saite", @@ -601,7 +605,10 @@ "operation": { "couldNotReply": "Neizdevās atbildēt.", "couldNotCompleteAction": "Neizdevās pabeigt šo darbību.", - "mergeResultDefaultError": "GitHub nepabeidza apvienošanu." + "mergeResultDefaultError": "GitHub nepabeidza apvienošanu.", + "ambiguous": "Neizdevās apstiprināt — pirms mēģināšanas vēlreiz pārbaudiet PR.", + "persistenceFailed": "Mēs nevarējām reģistrēt šo darbību. Lūdzu, mēģini vēlreiz vēlāk.", + "forbidden": "Aizliegts" } }, "notifications": { @@ -2069,7 +2076,9 @@ "dollar": "dolāri", "dollar_other": "dolāri", "cent_zero": "centu", - "dollar_zero": "dolāru" + "dollar_zero": "dolāru", + "costSpoken": "izmaksas {{cost}}", + "costSpokenWithTime": "izmaksas {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Neizdevās atvērt GitHub", @@ -2654,7 +2663,8 @@ "couldNotOpenStore": "Neizdevās atvērt lietotņu veikalu.", "description": "Pieejama jauna Kilo versija. Lūdzu, atjaunini, lai turpinātu.", "title": "Nepieciešams atjauninājums", - "updateNow": "Atjaunināt tagad" + "updateNow": "Atjaunināt tagad", + "appStorePage": "lietotņu veikala lapa" }, "home": { "couldNotLoadSessions": "Neizdevās ielādēt sesijas", diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index 564ad958ef..4296924db6 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Lany daty amin'ny {{path}} {{lines}}", "outdatedOnLines": "Lany daty amin'ny {{lines}}", "outdatedOnPath": "Lany daty amin'ny {{path}}" - } + }, + "deletedUser": "mpampiasa voafafa" }, "couldNotOpenGitHubAppSettings": "Tsy afaka nanokatra ny fika GitHub App", "installKiloGitHubApp": "Ampetraho ny Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Mampiseho ny {{limit}} voalohany amin'ny {{total}} rakitra novaina — fetran'ny API GitHub", "statusAdded": "Nampiana", "statusContext": "Contexte", - "statusDeleted": "Voafafa" + "statusDeleted": "Voafafa", + "lineLabel": "{{status}} andalana {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(foana)" }, "linkPasteClipboardEmpty": "Foana ny tahiry", "linkPasteNotAPullRequest": "Tsy rohy pull request amin'ny GitHub io", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Tsy afaka namaly.", "couldNotCompleteAction": "Tsy afaka nahavita ity hetsika ity.", - "mergeResultDefaultError": "Tsy nahavita nampirina ny GitHub." + "mergeResultDefaultError": "Tsy nahavita nampirina ny GitHub.", + "ambiguous": "Tsy afaka nanamafy — jereo ny PR alohan'ny andramana indray.", + "persistenceFailed": "Tsy vitanay ny nandrakitra ity hetsika ity. Andramo indray azafady any aoriana.", + "forbidden": "Voarara" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cent", "dollar_one": "dolara", "dollar": "dolara", - "dollar_other": "dolara" + "dollar_other": "dolara", + "costSpoken": "vidy {{cost}}", + "costSpokenWithTime": "vidy {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Tsy afaka nanokatra ny GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Tsy afaka nanokatra ny app store.", "description": "Misy kinova vaovao amin'ny Kilo. Vaovao azafady raha hanohy.", "title": "Ilaina ny fanavaozana", - "updateNow": "Havaozina izao" + "updateNow": "Havaozina izao", + "appStorePage": "pejy app store" }, "home": { "couldNotLoadSessions": "Tsy afaka nampidirina ny session", diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index 27fd3adf28..2f73e190ed 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Kua tawhito ki {{path}} {{lines}}", "outdatedOnLines": "Kua tawhito ki {{lines}}", "outdatedOnPath": "Kua tawhito ki {{path}}" - } + }, + "deletedUser": "kaimahi kua mukua" }, "couldNotOpenGitHubAppSettings": "Kāore i taea te whakatuwhera i ngā tautuhinga Taupānga GitHub", "installKiloGitHubApp": "Tāuta i te Taupānga Kilo GitHub", @@ -576,7 +577,10 @@ "truncationBanner": "E whakaatu ana i ngā {{limit}} tuatahi o ngā {{total}} kōnae kua hurihia — te rohe API a GitHub", "statusAdded": "Kua tāpiritia", "statusContext": "Horopaki", - "statusDeleted": "Kua mukua" + "statusDeleted": "Kua mukua", + "lineLabel": "{{status}} rārangi {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(putanga kore)" }, "linkPasteClipboardEmpty": "Kei te putua tonu te papapātuhi", "linkPasteNotAPullRequest": "Ehara tēnei i te hononga GitHub pull request", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Kāore i taea te whakahoki.", "couldNotCompleteAction": "Kāore i taea te whakaoti tēnei mahi.", - "mergeResultDefaultError": "Kāore i whakaotia e GitHub te whakakotahi." + "mergeResultDefaultError": "Kāore i whakaotia e GitHub te whakakotahi.", + "ambiguous": "Kāore i taea te whakaū — tirohia te PR i mua i te whakamātau anō.", + "persistenceFailed": "Kāore i taea e mātou te tuhia tēnei mahi. Tēnā whakamātau anō ā muri ake.", + "forbidden": "Kua rāhuitia" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ngā heneti", "dollar_one": "tāra", "dollar": "ngā tāra", - "dollar_other": "ngā tāra" + "dollar_other": "ngā tāra", + "costSpoken": "utu {{cost}}", + "costSpokenWithTime": "utu {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Kāore i taea te whakatuwhera GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Kāore i taea te whakatuwhera te toa taupānga.", "description": "E wātea ana he putanga hōu o Kilo. Tēnā whakamohoatia kia haere tonu.", "title": "Me whakamohoa", - "updateNow": "Whakamohoa ināianei" + "updateNow": "Whakamohoa ināianei", + "appStorePage": "te whārangi toa taupānga" }, "home": { "couldNotLoadSessions": "Kāore i taea te uta ngā wātū", diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index 86057058ee..e5ba3d9d70 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Застарено на {{path}} {{lines}}", "outdatedOnLines": "Застарено на {{lines}}", "outdatedOnPath": "Застарено на {{path}}" - } + }, + "deletedUser": "избришан корисник" }, "couldNotOpenGitHubAppSettings": "Не можеше да се отворат поставките на GitHub App", "installKiloGitHubApp": "Инсталирај го Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Прикажува првите {{limit}} од {{total}} изменети датотеки — GitHub API лимит", "statusAdded": "Додадено", "statusContext": "Контекст", - "statusDeleted": "Избришано" + "statusDeleted": "Избришано", + "lineLabel": "{{status}} линија {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(празно)" }, "linkPasteClipboardEmpty": "Таблата со клипборд е празна", "linkPasteNotAPullRequest": "Ова не е линк до GitHub pull request", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Не можеше да се одговори.", "couldNotCompleteAction": "Не можеше да се заврши оваа акција.", - "mergeResultDefaultError": "GitHub не го заврши спојувањето." + "mergeResultDefaultError": "GitHub не го заврши спојувањето.", + "ambiguous": "Не можеше да се потврди — проверете го PR-от пред да се обидете повторно.", + "persistenceFailed": "Не можевме да ја забележиме оваа акција. Обидете се повторно подоцна.", + "forbidden": "Забрането" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "центи", "dollar_one": "долар", "dollar": "долари", - "dollar_other": "долари" + "dollar_other": "долари", + "costSpoken": "цена {{cost}}", + "costSpokenWithTime": "цена {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Не можеше да се отвори GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Не можев да ја отворам продавницата за апликации.", "description": "Достапна е нова верзија на Kilo. Ажурирајте за да продолжите.", "title": "Потребно е ажурирање", - "updateNow": "Ажурирај сега" + "updateNow": "Ажурирај сега", + "appStorePage": "страница на продавницата за апликации" }, "home": { "couldNotLoadSessions": "Не можев да ги вчитам сесиите", diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index 93aa268c33..a8d51b46c4 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}}-ലെ കാലഹരണപ്പെട്ടത്", "outdatedOnLines": "{{lines}}-ലെ കാലഹരണപ്പെട്ടത്", "outdatedOnPath": "{{path}}-ലെ കാലഹരണപ്പെട്ടത്" - } + }, + "deletedUser": "ഇല്ലാതാക്കിയ ഉപയോക്താവ്" }, "couldNotOpenGitHubAppSettings": "GitHub ആപ്പ് ക്രമീകരണങ്ങൾ തുറക്കാനായില്ല", "installKiloGitHubApp": "Kilo GitHub ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യുക", @@ -576,7 +577,10 @@ "truncationBanner": "{{total}} മാറ്റപ്പെട്ട ഫയലുകളിൽ ആദ്യത്തെ {{limit}} കാണിക്കുന്നു — GitHub API പരിധി", "statusAdded": "ചേർത്തു", "statusContext": "കോണ്ടെക്സ്റ്റ്", - "statusDeleted": "ഇല്ലാതാക്കി" + "statusDeleted": "ഇല്ലാതാക്കി", + "lineLabel": "{{status}} വരി {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ശൂന്യം)" }, "linkPasteClipboardEmpty": "ക്ലിപ്പ്ബോർഡ് ശൂന്യമാണ്", "linkPasteNotAPullRequest": "ഇത് ഒരു GitHub പുൾ റിക്വസ്റ്റ് ലിങ്ക് അല്ല", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "മറുപടി നൽകാനായില്ല.", "couldNotCompleteAction": "ഈ പ്രവർത്തനം പൂർത്തിയാക്കാൻ കഴിഞ്ഞില്ല.", - "mergeResultDefaultError": "GitHub മെർജ് പൂർത്തിയാക്കിയില്ല." + "mergeResultDefaultError": "GitHub മെർജ് പൂർത്തിയാക്കിയില്ല.", + "ambiguous": "സ്ഥിരീകരിക്കാനായില്ല — വീണ്ടും ശ്രമിക്കുന്നതിന് മുമ്പ് PR പരിശോധിക്കുക.", + "persistenceFailed": "ഈ പ്രവർത്തനം രേഖപ്പെടുത്താൻ ഞങ്ങൾക്ക് കഴിഞ്ഞില്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.", + "forbidden": "നിരോധിച്ചിരിക്കുന്നു" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "സെന്റുകൾ", "dollar_one": "ഡോളർ", "dollar": "ഡോളറുകൾ", - "dollar_other": "ഡോളറുകൾ" + "dollar_other": "ഡോളറുകൾ", + "costSpoken": "ചെലവ് {{cost}}", + "costSpokenWithTime": "ചെലവ് {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub തുറക്കാൻ കഴിഞ്ഞില്ല", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "ആപ്പ് സ്റ്റോർ തുറക്കാൻ കഴിഞ്ഞില്ല.", "description": "Kilo-യുടെ ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്. തുടരാൻ അപ്ഡേറ്റ് ചെയ്യുക.", "title": "അപ്ഡേറ്റ് ആവശ്യമാണ്", - "updateNow": "ഇപ്പോൾ അപ്ഡേറ്റ് ചെയ്യുക" + "updateNow": "ഇപ്പോൾ അപ്ഡേറ്റ് ചെയ്യുക", + "appStorePage": "ആപ്പ് സ്റ്റോർ പേജ്" }, "home": { "couldNotLoadSessions": "സെഷനുകൾ ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല", diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index e15b5e2a6c..cb369be28d 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} дээрх хуучирсан", "outdatedOnLines": "{{lines}} дээрх хуучирсан", "outdatedOnPath": "{{path}} дээрх хуучирсан" - } + }, + "deletedUser": "Устгагдсан хэрэглэгч" }, "couldNotOpenGitHubAppSettings": "GitHub App тохиргоог нээх боломжгүй", "installKiloGitHubApp": "Kilo GitHub App суулгах", @@ -576,7 +577,10 @@ "truncationBanner": "Өөрчлөгдсөн {{total}} файлаас эхний {{limit}}-ыг харуулж байна — GitHub API хязгаар", "statusAdded": "Нэмсэн", "statusContext": "Контекст", - "statusDeleted": "Устгасан" + "statusDeleted": "Устгасан", + "lineLabel": "{{status}} мөр {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(хоосон)" }, "linkPasteClipboardEmpty": "Хуулбар самбар хоосон байна", "linkPasteNotAPullRequest": "Энэ нь GitHub pull request холбоос биш", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Хариулах боломжгүй.", "couldNotCompleteAction": "Энэ үйлдлийг гүйцэтгэх боломжгүй.", - "mergeResultDefaultError": "GitHub нэгтгэлтийг гүйцээгүй." + "mergeResultDefaultError": "GitHub нэгтгэлтийг гүйцээгүй.", + "ambiguous": "Баталгаажуулж чадсангүй — дахин оролдохын өмнө PR-г шалгана уу.", + "persistenceFailed": "Бид энэ үйлдлийг бүртгэж чадсангүй. Дараа дахин оролдоно уу.", + "forbidden": "Хориглосон" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "цент", "dollar_one": "доллар", "dollar": "доллар", - "dollar_other": "доллар" + "dollar_other": "доллар", + "costSpoken": "зардал {{cost}}", + "costSpokenWithTime": "зардал {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub-ыг нээх боломжгүй", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Апп дэлгүүрийг нээж чадсангүй.", "description": "Kilo-ийн шинэ хувилбар гарлаа. Үргэлжлүүлэхийн тулд шинэчлэнэ үү.", "title": "Шинэчлэлт шаардлагатай", - "updateNow": "Одоо шинэчлэх" + "updateNow": "Одоо шинэчлэх", + "appStorePage": "Апп дэлгүүрийн хуудас" }, "home": { "couldNotLoadSessions": "Сессийг ачаалж чадсангүй", diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index 815f6e0d62..3d74e548f8 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} वर कालबाह्य", "outdatedOnLines": "{{lines}} वर कालबाह्य", "outdatedOnPath": "{{path}} वर कालबाह्य" - } + }, + "deletedUser": "हटवलेला वापरकर्ता" }, "couldNotOpenGitHubAppSettings": "GitHub अॅप सेटिंग्ज उघडता आल्या नाहीत", "installKiloGitHubApp": "Kilo GitHub अॅप स्थापित करा", @@ -576,7 +577,10 @@ "truncationBanner": "{{total}} बदललेल्या फाइल्सपैकी पहिल्या {{limit}} दाखवत आहे — GitHub API मर्यादा", "statusAdded": "जोडले", "statusContext": "संदर्भ", - "statusDeleted": "हटवले" + "statusDeleted": "हटवले", + "lineLabel": "{{status}} ओळ {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(रिकामी)" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड रिकामा आहे", "linkPasteNotAPullRequest": "ही GitHub पुल रिक्वेस्ट लिंक नाही", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "उत्तर देता आले नाही.", "couldNotCompleteAction": "ही क्रिया पूर्ण करता आली नाही.", - "mergeResultDefaultError": "GitHub ने मर्ज पूर्ण केले नाही." + "mergeResultDefaultError": "GitHub ने मर्ज पूर्ण केले नाही.", + "ambiguous": "पुष्टी करता आली नाही — पुन्हा प्रयत्न करण्यापूर्वी PR तपासा.", + "persistenceFailed": "आम्ही ही क्रिया नोंदवू शकलो नाही. कृपया नंतर पुन्हा प्रयत्न करा.", + "forbidden": "निषिद्ध" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "सेंट", "dollar_one": "डॉलर", "dollar": "डॉलर", - "dollar_other": "डॉलर" + "dollar_other": "डॉलर", + "costSpoken": "खर्च {{cost}}", + "costSpokenWithTime": "खर्च {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub उघडता आले नाही", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "अ‍ॅप स्टोअर उघडता आले नाही.", "description": "Kilo ची नवीन आवृत्ती उपलब्ध आहे. सुरू ठेवण्यासाठी कृपया अपडेट करा.", "title": "अपडेट आवश्यक", - "updateNow": "आता अपडेट करा" + "updateNow": "आता अपडेट करा", + "appStorePage": "अ‍ॅप स्टोअर पेज" }, "home": { "couldNotLoadSessions": "सत्रे लोड करता आली नाहीत", diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index 0c7f986692..7fc8ca35a7 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Usang pada {{path}} {{lines}}", "outdatedOnLines": "Usang pada {{lines}}", "outdatedOnPath": "Usang pada {{path}}" - } + }, + "deletedUser": "pengguna dipadam" }, "couldNotOpenGitHubAppSettings": "Tidak dapat membuka tetapan Apl GitHub", "installKiloGitHubApp": "Pasang Apl GitHub Kilo", @@ -576,7 +577,10 @@ "truncationBanner": "Menunjukkan {{limit}} fail pertama daripada {{total}} fail yang diubah — had API GitHub", "statusAdded": "Ditambah", "statusContext": "Konteks", - "statusDeleted": "Dipadam" + "statusDeleted": "Dipadam", + "lineLabel": "{{status}} baris {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(kosong)" }, "linkPasteClipboardEmpty": "Papan keratan kosong", "linkPasteNotAPullRequest": "Bukan pautan permintaan tarik GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Tidak dapat membalas.", "couldNotCompleteAction": "Tidak dapat melengkapkan tindakan ini.", - "mergeResultDefaultError": "GitHub tidak melengkapkan gabungan." + "mergeResultDefaultError": "GitHub tidak melengkapkan gabungan.", + "ambiguous": "Tidak dapat mengesahkan — semak PR sebelum mencuba lagi.", + "persistenceFailed": "Kami tidak dapat merakam tindakan ini. Sila cuba lagi kemudian.", + "forbidden": "Dilarang" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "sen", "dollar_one": "dolar", "dollar": "dolar", - "dollar_other": "dolar" + "dollar_other": "dolar", + "costSpoken": "kos {{cost}}", + "costSpokenWithTime": "kos {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Tidak dapat membuka GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Tidak dapat membuka gedung apl.", "description": "Versi baharu Kilo tersedia. Sila kemas kini untuk meneruskan.", "title": "Kemas kini diperlukan", - "updateNow": "Kemas kini sekarang" + "updateNow": "Kemas kini sekarang", + "appStorePage": "halaman gedung apl" }, "home": { "couldNotLoadSessions": "Tidak dapat memuatkan sesi", diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 9d12a584d7..cfd24ecc4a 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -419,7 +419,8 @@ "outdatedOnPathLines": "Skadut fuq {{path}} {{lines}}", "outdatedOnLines": "Skadut fuq {{lines}}", "outdatedOnPath": "Skadut fuq {{path}}" - } + }, + "deletedUser": "utent imħassar" }, "couldNotOpenGitHubAppSettings": "Ma setgħux jinfetħu s-settings tal-GitHub App", "installKiloGitHubApp": "Installa l-Kilo GitHub App", @@ -597,7 +598,10 @@ "truncationBanner": "Qed juri l-ewwel {{limit}} minn {{total}} fajls mibdula — il-limitu tal-API ta' GitHub", "statusAdded": "Miżjud", "statusContext": "Kuntest", - "statusDeleted": "Imħassar" + "statusDeleted": "Imħassar", + "lineLabel": "{{status}} linja {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(vojta)" }, "linkPasteClipboardEmpty": "L-appostru huwa vojt", "linkPasteNotAPullRequest": "Mhux link ta' pull request ta' GitHub", @@ -615,7 +619,10 @@ "operation": { "couldNotReply": "Ma setgħetx tingħata risposta.", "couldNotCompleteAction": "Ma setgħetx titlesta din l-azzjoni.", - "mergeResultDefaultError": "GitHub ma lestiex il-merge." + "mergeResultDefaultError": "GitHub ma lestiex il-merge.", + "ambiguous": "Ma setgħetx tiġi kkonfermata — iċċekkja l-PR qabel terġa' tipprova.", + "persistenceFailed": "Ma stajniex nirreġistraw din l-azzjoni. Jekk jogħġbok erġa' pprova aktar tard.", + "forbidden": "Ipprojbit" } }, "notifications": { @@ -2099,7 +2106,9 @@ "cent_many": "ċenteżmu", "dollar_two": "dollari", "dollar_few": "dollari", - "dollar_many": "dollaru" + "dollar_many": "dollaru", + "costSpoken": "spiża {{cost}}", + "costSpokenWithTime": "spiża {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Ma setax jinfetaħ GitHub", @@ -2694,7 +2703,8 @@ "couldNotOpenStore": "Ma setgħetx tinfetaħ l-app store.", "description": "Verżjoni ġdida ta' Kilo hija disponibbli. Jekk jogħġbok aġġorna biex tkompli.", "title": "Aġġornament meħtieġ", - "updateNow": "Aġġorna issa" + "updateNow": "Aġġorna issa", + "appStorePage": "paġna tal-app store" }, "home": { "couldNotLoadSessions": "Ma setgħux jitgħabbew is-sessjonijiet", diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index 1c6b6d670a..fbdf39f095 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} တွင် ခေတ်နောက်ကျသော", "outdatedOnLines": "{{lines}} တွင် ခေတ်နောက်ကျသော", "outdatedOnPath": "{{path}} တွင် ခေတ်နောက်ကျသော" - } + }, + "deletedUser": "ဖျက်လိုက်သော အသုံးပြုသူ" }, "couldNotOpenGitHubAppSettings": "GitHub App ဆက်တင်များကို ဖွင့်မရပါ", "installKiloGitHubApp": "Kilo GitHub App ကို ထည့်သွင်းပါ", @@ -576,7 +577,10 @@ "truncationBanner": "ပြောင်းလဲထားသော ဖိုင် {{total}} ခုအနက် ပထမဆုံး {{limit}} ခုကို ပြသနေသည် — GitHub API ကန့်သတ်ချက်", "statusAdded": "ထည့်ပြီး", "statusContext": "Context", - "statusDeleted": "ဖျက်ပြီး" + "statusDeleted": "ဖျက်ပြီး", + "lineLabel": "{{status}} စာကြောင်း {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ဗလာ)" }, "linkPasteClipboardEmpty": "ကလစ်ဘုတ် ဗလာဖြစ်သည်", "linkPasteNotAPullRequest": "GitHub pull request လင့်ခ် မဟုတ်ပါ", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "အကြောင်းပြန်မရပါ။", "couldNotCompleteAction": "ဤလုပ်ဆောင်ချက်ကို မပြီးမြောက်နိုင်ပါ။", - "mergeResultDefaultError": "GitHub သည် ပေါင်းစည်းမှုကို မပြီးမြောက်ခဲ့ပါ။" + "mergeResultDefaultError": "GitHub သည် ပေါင်းစည်းမှုကို မပြီးမြောက်ခဲ့ပါ။", + "ambiguous": "အတည်ပြု၍မရပါ — ပြန်မစမ်းမီ PR ကို စစ်ဆေးပါ။", + "persistenceFailed": "ဤလုပ်ဆောင်ချက်ကို မှတ်တမ်းတင်နိုင်ခြင်း မရှိပါ။ နောက်မှ ထပ်စမ်းကြည့်ပါ။", + "forbidden": "တားမြစ်ထားသည်" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ဆင့်များ", "dollar_one": "ဒေါ်လာ", "dollar": "ဒေါ်လာများ", - "dollar_other": "ဒေါ်လာများ" + "dollar_other": "ဒေါ်လာများ", + "costSpoken": "ကုန်ကျစရိတ် {{cost}}", + "costSpokenWithTime": "ကုန်ကျစရိတ် {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ကို မဖွင့်နိုင်ခဲ့ပါ", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "အက်ပ် စတိုးကို မဖွင့်နိုင်ပါ။", "description": "Kilo ၏ ဗားရှင်းအသစ် ရနိုင်ပါသည်။ ဆက်သုံးရန် အဆင့်မြှင့်ပါ။", "title": "အဆင့်မြှင့်ရန် လိုအပ်သည်", - "updateNow": "ယခု အဆင့်မြှင့်ပါ" + "updateNow": "ယခု အဆင့်မြှင့်ပါ", + "appStorePage": "အက်ပ်စတိုး စာမျက်နှာ" }, "home": { "couldNotLoadSessions": "session များကို မတင်နိုင်ပါ", diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index 6a6dcda779..1c25df2009 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Utdatert på {{path}} {{lines}}", "outdatedOnLines": "Utdatert på {{lines}}", "outdatedOnPath": "Utdatert på {{path}}" - } + }, + "deletedUser": "slettet bruker" }, "couldNotOpenGitHubAppSettings": "Kunne ikke åpne GitHub-appinnstillingene", "installKiloGitHubApp": "Installer Kilo GitHub-appen", @@ -576,7 +577,10 @@ "truncationBanner": "Viser de første {{limit}} av {{total}} endrede filene — GitHub API-grense", "statusAdded": "Lagt til", "statusContext": "Kontekst", - "statusDeleted": "Slettet" + "statusDeleted": "Slettet", + "lineLabel": "{{status}} linje {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tom)" }, "linkPasteClipboardEmpty": "Utklippstavlen er tom", "linkPasteNotAPullRequest": "Ikke en GitHub-pull request-lenke", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Kunne ikke svare.", "couldNotCompleteAction": "Kunne ikke fullføre denne handlingen.", - "mergeResultDefaultError": "GitHub fullførte ikke flettingen." + "mergeResultDefaultError": "GitHub fullførte ikke flettingen.", + "ambiguous": "Kunne ikke bekrefte — sjekk PR-en før du prøver igjen.", + "persistenceFailed": "Vi kunne ikke registrere denne handlingen. Prøv igjen senere.", + "forbidden": "Forbudt" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cent", "dollar_one": "dollar", "dollar": "dollarer", - "dollar_other": "dollarer" + "dollar_other": "dollarer", + "costSpoken": "kostnad {{cost}}", + "costSpokenWithTime": "kostnad {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Kunne ikke åpne GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Kunne ikke åpne app-butikken.", "description": "En ny versjon av Kilo er tilgjengelig. Oppdater for å fortsette.", "title": "Oppdatering nødvendig", - "updateNow": "Oppdater nå" + "updateNow": "Oppdater nå", + "appStorePage": "app-butikkside" }, "home": { "couldNotLoadSessions": "Kunne ikke laste økter", diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index ff57b70265..3e272f9fb8 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} मा पुरानो", "outdatedOnLines": "{{lines}} मा पुरानो", "outdatedOnPath": "{{path}} मा पुरानो" - } + }, + "deletedUser": "मेटिएको प्रयोगकर्ता" }, "couldNotOpenGitHubAppSettings": "GitHub App सेटिङ खोल्न सकिएन", "installKiloGitHubApp": "Kilo GitHub App स्थापना गर्नुहोस्", @@ -576,7 +577,10 @@ "truncationBanner": "कुल {{total}} परिवर्तन गरिएका फाइलहरूमध्ये पहिलो {{limit}} देखाइँदै — GitHub API सीमा", "statusAdded": "थपियो", "statusContext": "सन्दर्भ", - "statusDeleted": "मेटियो" + "statusDeleted": "मेटियो", + "lineLabel": "{{status}} पङ्क्ति {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(खाली)" }, "linkPasteClipboardEmpty": "क्लिपबोर्ड खाली छ", "linkPasteNotAPullRequest": "GitHub पुल रिक्वेस्ट लिंक होइन", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "जवाफ दिन सकिएन।", "couldNotCompleteAction": "यो कार्य पूरा गर्न सकिएन।", - "mergeResultDefaultError": "GitHub ले मर्ज पूरा गरेन।" + "mergeResultDefaultError": "GitHub ले मर्ज पूरा गरेन।", + "ambiguous": "पुष्टि गर्न सकिएन — पुनः प्रयास गर्नुअघि PR जाँच्नुहोस्।", + "persistenceFailed": "हामीले यो कार्य रेकर्ड गर्न सकेनौं। कृपया पछि फेरि प्रयास गर्नुहोस्।", + "forbidden": "निषेध गरिएको" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "सेन्टहरू", "dollar_one": "डलर", "dollar": "डलरहरू", - "dollar_other": "डलरहरू" + "dollar_other": "डलरहरू", + "costSpoken": "लागत {{cost}}", + "costSpokenWithTime": "लागत {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub खोल्न सकिएन", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "एप स्टोर खोल्न सकिएन।", "description": "Kilo को नयाँ संस्करण उपलब्ध छ। जारी राख्न कृपया अद्यावधिक गर्नुहोस्।", "title": "अद्यावधिक आवश्यक छ", - "updateNow": "अहिले अद्यावधिक गर्नुहोस्" + "updateNow": "अहिले अद्यावधिक गर्नुहोस्", + "appStorePage": "एप स्टोर पृष्ठ" }, "home": { "couldNotLoadSessions": "सत्रहरू लोड गर्न सकिएन", diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index 942d365887..e98b013aca 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -1607,7 +1607,9 @@ "cent_other": "centen", "dollar_one": "dollar", "dollar": "dollars", - "dollar_other": "dollars" + "dollar_other": "dollars", + "costSpoken": "kosten {{cost}}", + "costSpokenWithTime": "kosten {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "We konden de installatie van de GitHub-app niet starten. Probeer het opnieuw.", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "De app store kon niet worden geopend.", "description": "Er is een nieuwe versie van Kilo beschikbaar. Werk bij om door te gaan.", "title": "Update vereist", - "updateNow": "Nu bijwerken" + "updateNow": "Nu bijwerken", + "appStorePage": "app store-pagina" }, "home": { "couldNotLoadSessions": "Sessies konden niet worden geladen", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "Verouderd op {{path}} {{lines}}", "outdatedOnLines": "Verouderd op {{lines}}", "outdatedOnPath": "Verouderd op {{path}}" - } + }, + "deletedUser": "verwijderde gebruiker" }, "entry": { "clearLink": "Pull-aanvraag-link wissen", @@ -2862,7 +2866,10 @@ "truncationBanner": "De eerste {{limit}} van {{total}} gewijzigde bestanden worden getoond — GitHub API-limiet", "statusAdded": "Toegevoegd", "statusContext": "Context", - "statusDeleted": "Verwijderd" + "statusDeleted": "Verwijderd", + "lineLabel": "{{status}} regel {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(leeg)" }, "linkPasteClipboardEmpty": "Klembord is leeg", "linkPasteNotAPullRequest": "Geen GitHub pull-requestlink", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "Kon niet reageren.", "couldNotCompleteAction": "Deze actie kon niet worden voltooid.", - "mergeResultDefaultError": "GitHub heeft de merge niet voltooid." + "mergeResultDefaultError": "GitHub heeft de merge niet voltooid.", + "ambiguous": "Kon niet bevestigen — controleer de PR voordat je het opnieuw probeert.", + "persistenceFailed": "We konden deze actie niet vastleggen. Probeer het later opnieuw.", + "forbidden": "Verboden" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index 5c6c2552e1..4ca1f44624 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Gara duraa {{path}} {{lines}} irratti", "outdatedOnLines": "Gara duraa {{lines}} irratti", "outdatedOnPath": "Gara duraa {{path}} irratti" - } + }, + "deletedUser": "fayyadamaa haqame" }, "couldNotOpenGitHubAppSettings": "Ejjannoo App GitHub banuu hin dandeenye", "installKiloGitHubApp": "App Kilo GitHub dhaabbessi", @@ -576,7 +577,10 @@ "truncationBanner": "Faayiloota jijjiramaniin walii {{total}} keessaa isaan jalqabaa {{limit}} agarsiifamaa jira — GitHub API daangaa", "statusAdded": "Dabalamte", "statusContext": "Context", - "statusDeleted": "Balleessamte" + "statusDeleted": "Balleessamte", + "lineLabel": "{{status}} sarara {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(duwwaa)" }, "linkPasteClipboardEmpty": "Kibirri duwwaa dha", "linkPasteNotAPullRequest": "Hidhaa pull request GitHub hin taane", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Deebii kennuu hin dandeenye.", "couldNotCompleteAction": "Gocha kana xumuruu hin dandeenye.", - "mergeResultDefaultError": "GitHub makxinsaa hin xumuurre." + "mergeResultDefaultError": "GitHub makxinsaa hin xumuurre.", + "ambiguous": "Mirkaneessuu hin dandeenye — deebi'ii yaaluu dura PR ilaali.", + "persistenceFailed": "Gocha kana galmeessuu hin dandeenye. Maaloo booda deebi'ii yaali.", + "forbidden": "Hayyama hin qabdu" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "santiimaa", "dollar_one": "doolaara", "dollar": "doolaara", - "dollar_other": "doolaara" + "dollar_other": "doolaara", + "costSpoken": "gatii {{cost}}", + "costSpokenWithTime": "gatii {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub banuu hin dandeenye", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Suuqa app banuu hin danda'ine.", "description": "Gara haaraa Kilo ni argama. Itti fufuuf maaloo fooyyessi.", "title": "Fooyyessuu barbaachisa", - "updateNow": "Amma fooyyessi" + "updateNow": "Amma fooyyessi", + "appStorePage": "fuula suuqa app" }, "home": { "couldNotLoadSessions": "Shumarra fudhachuu hin danda'ine", diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index 01128c0d29..257e1425f8 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} ରେ ଅପ୍ରଚଳିତ", "outdatedOnLines": "{{lines}} ରେ ଅପ୍ରଚଳିତ", "outdatedOnPath": "{{path}} ରେ ଅପ୍ରଚଳିତ" - } + }, + "deletedUser": "ବିଲୋପ ହୋଇଥିବା ବ୍ୟବହାରକାରୀ" }, "couldNotOpenGitHubAppSettings": "GitHub ଆପ୍ ସେଟିଂସ୍ ଖୋଲାଯାଇ ପାରିଲା ନାହିଁ", "installKiloGitHubApp": "Kilo GitHub ଆପ୍ ଇନଷ୍ଟଲ୍ କରନ୍ତୁ", @@ -576,7 +577,10 @@ "truncationBanner": "ମୋଟ {{total}} ମଧ୍ୟରୁ ପ୍ରଥମ {{limit}} ପରିବର୍ତ୍ତିତ ଫାଇଲ ଦେଖାଯାଉଛି — GitHub API ସୀମା", "statusAdded": "ଯୋଡ଼ାଗଲା", "statusContext": "ପ୍ରସଙ୍ଗ", - "statusDeleted": "ବିଲୋପ ହେଲା" + "statusDeleted": "ବିଲୋପ ହେଲା", + "lineLabel": "{{status}} ଧାଡ଼ି {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ଖାଲି)" }, "linkPasteClipboardEmpty": "କ୍ଲିପ୍ବୋର୍ଡ ଖାଲି ଅଛି", "linkPasteNotAPullRequest": "ଏହା GitHub ପୁଲ୍ ରିକ୍ୱେଷ୍ଟ ଲିଙ୍କ୍ ନୁହେଁ", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "ଉତ୍ତର ଦେବା ଯାଇ ପାରିଲା ନାହିଁ।", "couldNotCompleteAction": "ଏହି କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ କରାଯାଇ ପାରିଲା ନାହିଁ।", - "mergeResultDefaultError": "GitHub ମର୍ଜ୍ ସମ୍ପୂର୍ଣ୍ଣ କଲା ନାହିଁ।" + "mergeResultDefaultError": "GitHub ମର୍ଜ୍ ସମ୍ପୂର୍ଣ୍ଣ କଲା ନାହିଁ।", + "ambiguous": "ନିଶ୍ଚିତ କରାଯାଇ ପାରିଲା ନାହିଁ — ପୁଣି ଚେଷ୍ଟା କରିବା ପୂର୍ବରୁ PR ଯାଞ୍ଚ କରନ୍ତୁ।", + "persistenceFailed": "ଏହି କାର୍ଯ୍ୟ ରେକର୍ଡ୍ କରାଯାଇ ପାରିଲା ନାହିଁ। ଦୟାକରି ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।", + "forbidden": "ନିଷେଧ" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ସେଣ୍ଟ", "dollar_one": "ଡଲାର", "dollar": "ଡଲାର", - "dollar_other": "ଡଲାର" + "dollar_other": "ଡଲାର", + "costSpoken": "ଖର୍ଚ୍ଚ {{cost}}", + "costSpokenWithTime": "ଖର୍ଚ୍ଚ {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ଖୋଲାଯାଇପାରିଲା ନାହିଁ", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "ଆପ୍ ଷ୍ଟୋର ଖୋଲାଯାଇପାରିଲା ନାହିଁ।", "description": "Kilo ର ଏକ ନୂତନ ସଂସ୍କରଣ ଉପଲବ୍ଧ। ଜାରି ରଖିବାକୁ ଅପଡେଟ୍ କରନ୍ତୁ।", "title": "ଅପଡେଟ୍ ଆବଶ୍ୟକ", - "updateNow": "ଏବେ ଅପଡେଟ୍ କରନ୍ତୁ" + "updateNow": "ଏବେ ଅପଡେଟ୍ କରନ୍ତୁ", + "appStorePage": "ଆପ୍ ଷ୍ଟୋର ପୃଷ୍ଠା" }, "home": { "couldNotLoadSessions": "ସେସନ୍ ଲୋଡ୍ ହୋଇପାରିଲା ନାହିଁ", diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 8d6a251fdb..0bce6c2bc5 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} 'ਤੇ ਪੁਰਾਣਾ", "outdatedOnLines": "{{lines}} 'ਤੇ ਪੁਰਾਣਾ", "outdatedOnPath": "{{path}} 'ਤੇ ਪੁਰਾਣਾ" - } + }, + "deletedUser": "ਮਿਟਾਇਆ ਗਿਆ ਉਪਭੋਗਤਾ" }, "couldNotOpenGitHubAppSettings": "GitHub ਐਪ ਸੈਟਿੰਗਾਂ ਖੋਲ੍ਹੀਆਂ ਨਹੀਂ ਜਾ ਸਕੀਆਂ", "installKiloGitHubApp": "Kilo GitHub ਐਪ ਸਥਾਪਿਤ ਕਰੋ", @@ -576,7 +577,10 @@ "truncationBanner": "ਕੁੱਲ {{total}} ਬਦਲੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚੋਂ ਪਹਿਲੇ {{limit}} ਦਿਖਾਏ ਜਾ ਰਹੇ ਹਨ — GitHub API ਸੀਮਾ", "statusAdded": "ਜੋੜਿਆ ਗਿਆ", "statusContext": "ਸੰਦਰਭ", - "statusDeleted": "ਮਿਟਾਇਆ ਗਿਆ" + "statusDeleted": "ਮਿਟਾਇਆ ਗਿਆ", + "lineLabel": "{{status}} ਲਾਈਨ {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ਖਾਲੀ)" }, "linkPasteClipboardEmpty": "ਕਲਿੱਪਬੋਰਡ ਖਾਲੀ ਹੈ", "linkPasteNotAPullRequest": "ਇਹ GitHub ਪੁੱਲ ਰਿਕਸਟ ਲਿੰਕ ਨਹੀਂ ਹੈ", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "ਜਵਾਬ ਨਹੀਂ ਦਿੱਤਾ ਜਾ ਸਕਿਆ।", "couldNotCompleteAction": "ਇਹ ਕਾਰਵਾਈ ਪੂਰੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।", - "mergeResultDefaultError": "GitHub ਨੇ ਮਰਜ ਪੂਰੀ ਨਹੀਂ ਕੀਤੀ।" + "mergeResultDefaultError": "GitHub ਨੇ ਮਰਜ ਪੂਰੀ ਨਹੀਂ ਕੀਤੀ।", + "ambiguous": "ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ — ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ PR ਚੈੱਕ ਕਰੋ।", + "persistenceFailed": "ਅਸੀਂ ਇਹ ਕਾਰਵਾਈ ਰਿਕਾਰਡ ਨਹੀਂ ਕਰ ਸਕੇ। ਕਿਰਪਾ ਕਰਕੇ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।", + "forbidden": "ਮਨਾਹੀ" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ਸੈਂਟ", "dollar_one": "ਡਾਲਰ", "dollar": "ਡਾਲਰ", - "dollar_other": "ਡਾਲਰ" + "dollar_other": "ਡਾਲਰ", + "costSpoken": "ਲਾਗਤ {{cost}}", + "costSpokenWithTime": "ਲਾਗਤ {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "ਐਪ ਸਟੋਰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ।", "description": "Kilo ਦਾ ਨਵਾਂ ਵਰਜਨ ਉਪਲਬਧ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਜਾਰੀ ਰੱਖਣ ਲਈ ਅੱਪਡੇਟ ਕਰੋ।", "title": "ਅੱਪਡੇਟ ਲੋੜੀਂਦਾ ਹੈ", - "updateNow": "ਹੁਣ ਅੱਪਡੇਟ ਕਰੋ" + "updateNow": "ਹੁਣ ਅੱਪਡੇਟ ਕਰੋ", + "appStorePage": "ਐਪ ਸਟੋਰ ਪੰਨਾ" }, "home": { "couldNotLoadSessions": "ਸੈਸ਼ਨ ਲੋਡ ਨਹੀਂ ਹੋ ਸਕੇ", diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index 3079a67994..497b1b62fb 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -1623,7 +1623,9 @@ "cent_few": "centy", "cent_many": "centów", "dollar_few": "dolary", - "dollar_many": "dolarów" + "dollar_many": "dolarów", + "costSpoken": "koszt {{cost}}", + "costSpokenWithTime": "koszt {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Nie udało się rozpocząć konfiguracji aplikacji GitHub. Spróbuj ponownie.", @@ -2213,7 +2215,8 @@ "couldNotOpenStore": "Nie można otworzyć sklepu z aplikacjami.", "description": "Dostępna jest nowa wersja Kilo. Zaktualizuj, aby kontynuować.", "title": "Wymagana aktualizacja", - "updateNow": "Zaktualizuj teraz" + "updateNow": "Zaktualizuj teraz", + "appStorePage": "strona sklepu z aplikacjami" }, "home": { "couldNotLoadSessions": "Nie można załadować sesji", @@ -2614,7 +2617,8 @@ "outdatedOnPathLines": "Nieaktualny na {{path}} {{lines}}", "outdatedOnLines": "Nieaktualny na {{lines}}", "outdatedOnPath": "Nieaktualny na {{path}}" - } + }, + "deletedUser": "usunięty użytkownik" }, "entry": { "clearLink": "Wyczyść link pull requesta", @@ -2902,7 +2906,10 @@ "truncationBanner": "Wyświetlanie pierwszych {{limit}} z {{total}} zmienionych plików — limit API GitHub", "statusAdded": "Dodano", "statusContext": "Kontekst", - "statusDeleted": "Usunięto" + "statusDeleted": "Usunięto", + "lineLabel": "{{status}} wiersz {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(pusty)" }, "linkPasteClipboardEmpty": "Schowek jest pusty", "linkPasteNotAPullRequest": "To nie jest link do pull requesta na GitHub", @@ -2920,7 +2927,10 @@ "operation": { "couldNotReply": "Nie udało się odpowiedzieć.", "couldNotCompleteAction": "Nie udało się ukończyć tej akcji.", - "mergeResultDefaultError": "GitHub nie ukończył scalania." + "mergeResultDefaultError": "GitHub nie ukończył scalania.", + "ambiguous": "Nie udało się potwierdzić — sprawdź PR przed ponowną próbą.", + "persistenceFailed": "Nie mogliśmy zapisać tej akcji. Spróbuj ponownie później.", + "forbidden": "Zabronione" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index 3ccc57826a..898f09a098 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "په {{path}} {{lines}} کې زوړ", "outdatedOnLines": "په {{lines}} کې زوړ", "outdatedOnPath": "په {{path}} کې زوړ" - } + }, + "deletedUser": "ړنګ شوی کارن" }, "couldNotOpenGitHubAppSettings": "د GitHub اپلیکیشن تنظیمات پرانیستل کیدی نشو", "installKiloGitHubApp": "د کلیو GitHub اپلیکیشن نصب کړئ", @@ -576,7 +577,10 @@ "truncationBanner": "د {{total}} بدل شویو فایلونو څخه لومړني {{limit}} ښودل کیږي — د GitHub API حد", "statusAdded": "اضافه شوی", "statusContext": "شرایط", - "statusDeleted": "ړنګ شوی" + "statusDeleted": "ړنګ شوی", + "lineLabel": "{{status}} کرښه {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(خالي)" }, "linkPasteClipboardEmpty": "کلیپبورډ خالي دی", "linkPasteNotAPullRequest": "دا د GitHub pull request لینک نه دی", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "ځواب ورکول کیدی نشو.", "couldNotCompleteAction": "دا کړنه بشپړول کیدی نشو.", - "mergeResultDefaultError": "GitHub یوځای کول بشپړ نه کړل." + "mergeResultDefaultError": "GitHub یوځای کول بشپړ نه کړل.", + "ambiguous": "تأیید کیدی نشو — د بیا هڅې څخه مخکې PR وګورئ.", + "persistenceFailed": "موږ دا کړنه ثبت نه شو کولی. مهرباني وکړئ وروسته بیا هڅه وکړئ.", + "forbidden": "منع شوی" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "سینټه", "dollar_one": "ډالر", "dollar": "ډالره", - "dollar_other": "ډالره" + "dollar_other": "ډالره", + "costSpoken": "لګښت {{cost}}", + "costSpokenWithTime": "لګښت {{cost}}، {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub پرانیستل نشو", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "د ایپ پلورنځی نه شو خلاصېدلای.", "description": "د Kilo نوې نسخه شتون لري. مهرباني وکړئ د دوام لپاره تازه یې کړئ.", "title": "تازه کول اړین دي", - "updateNow": "اوس تازه کړئ" + "updateNow": "اوس تازه کړئ", + "appStorePage": "د ایپ پلورنځی پاڼه" }, "home": { "couldNotLoadSessions": "غونډې نه شول پورته کېدلای", diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index 43b0efe6fc..2dc6283ea2 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -1601,7 +1601,9 @@ "dollar": "dólares", "dollar_other": "dólares", "cent_many": "centavos", - "dollar_many": "dólares" + "dollar_many": "dólares", + "costSpoken": "custo {{cost}}", + "costSpokenWithTime": "custo {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Não foi possível iniciar a configuração do GitHub App. Tente novamente.", @@ -2200,7 +2202,8 @@ "couldNotOpenStore": "Não foi possível abrir a loja de aplicativos.", "description": "Uma nova versão do Kilo está disponível. Atualize para continuar.", "title": "Atualização necessária", - "updateNow": "Atualizar agora" + "updateNow": "Atualizar agora", + "appStorePage": "página da loja de aplicativos" }, "home": { "couldNotLoadSessions": "Não foi possível carregar as sessões", @@ -2599,7 +2602,8 @@ "outdatedOnPathLines": "Desatualizado em {{path}} {{lines}}", "outdatedOnLines": "Desatualizado em {{lines}}", "outdatedOnPath": "Desatualizado em {{path}}" - } + }, + "deletedUser": "usuário excluído" }, "entry": { "clearLink": "Limpar link do pull request", @@ -2882,7 +2886,10 @@ "truncationBanner": "Mostrando os primeiros {{limit}} de {{total}} arquivos alterados — limite da API do GitHub", "statusAdded": "Adicionado", "statusContext": "Contexto", - "statusDeleted": "Excluído" + "statusDeleted": "Excluído", + "lineLabel": "{{status}} linha {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(vazio)" }, "linkPasteClipboardEmpty": "A área de transferência está vazia", "linkPasteNotAPullRequest": "Não é um link de pull request do GitHub", @@ -2900,7 +2907,10 @@ "operation": { "couldNotReply": "Não foi possível responder.", "couldNotCompleteAction": "Não foi possível concluir esta ação.", - "mergeResultDefaultError": "O GitHub não concluiu o merge." + "mergeResultDefaultError": "O GitHub não concluiu o merge.", + "ambiguous": "Não foi possível confirmar — verifique o PR antes de tentar novamente.", + "persistenceFailed": "Não foi possível registrar esta ação. Tente novamente mais tarde.", + "forbidden": "Proibido" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index 88719f1492..7b916e2b54 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -411,7 +411,8 @@ "outdatedOnPathLines": "Desatualizado em {{path}} {{lines}}", "outdatedOnLines": "Desatualizado em {{lines}}", "outdatedOnPath": "Desatualizado em {{path}}" - } + }, + "deletedUser": "utilizador eliminado" }, "couldNotOpenGitHubAppSettings": "Não foi possível abrir as definições da GitHub App", "installKiloGitHubApp": "Instalar a Kilo GitHub App", @@ -583,7 +584,10 @@ "truncationBanner": "A mostrar os primeiros {{limit}} de {{total}} ficheiros alterados — limite da API do GitHub", "statusAdded": "Adicionado", "statusContext": "Contexto", - "statusDeleted": "Eliminado" + "statusDeleted": "Eliminado", + "lineLabel": "{{status}} linha {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(vazio)" }, "linkPasteClipboardEmpty": "A área de transferência está vazia", "linkPasteNotAPullRequest": "Não é uma ligação de pull request do GitHub", @@ -601,7 +605,10 @@ "operation": { "couldNotReply": "Não foi possível responder.", "couldNotCompleteAction": "Não foi possível concluir esta ação.", - "mergeResultDefaultError": "O GitHub não concluiu a fusão." + "mergeResultDefaultError": "O GitHub não concluiu a fusão.", + "ambiguous": "Não foi possível confirmar — verifique o PR antes de tentar novamente.", + "persistenceFailed": "Não foi possível registar esta ação. Tente novamente mais tarde.", + "forbidden": "Proibido" } }, "notifications": { @@ -2069,7 +2076,9 @@ "dollar": "dólares", "dollar_other": "dólares", "cent_many": "cêntimos", - "dollar_many": "dólares" + "dollar_many": "dólares", + "costSpoken": "custo {{cost}}", + "costSpokenWithTime": "custo {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Não foi possível abrir o GitHub", @@ -2654,7 +2663,8 @@ "couldNotOpenStore": "Não foi possível abrir a loja de aplicações.", "description": "Está disponível uma nova versão do Kilo. Atualize para continuar.", "title": "Atualização necessária", - "updateNow": "Atualizar agora" + "updateNow": "Atualizar agora", + "appStorePage": "página da loja de aplicações" }, "home": { "couldNotLoadSessions": "Não foi possível carregar as sessões", diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index fb1fd9d8d3..c17bab53d7 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -411,7 +411,8 @@ "outdatedOnPathLines": "Învechit pe {{path}} {{lines}}", "outdatedOnLines": "Învechit pe {{lines}}", "outdatedOnPath": "Învechit pe {{path}}" - } + }, + "deletedUser": "utilizator șters" }, "couldNotOpenGitHubAppSettings": "Nu s-au putut deschide setările aplicației GitHub", "installKiloGitHubApp": "Instalează Kilo GitHub App", @@ -583,7 +584,10 @@ "truncationBanner": "Se afișează primele {{limit}} din {{total}} fișiere modificate — limita API GitHub", "statusAdded": "Adăugat", "statusContext": "Context", - "statusDeleted": "Șters" + "statusDeleted": "Șters", + "lineLabel": "{{status}} linia {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(gol)" }, "linkPasteClipboardEmpty": "Clipboard-ul este gol", "linkPasteNotAPullRequest": "Nu este un link de pull request GitHub", @@ -601,7 +605,10 @@ "operation": { "couldNotReply": "Nu s-a putut răspunde.", "couldNotCompleteAction": "Nu s-a putut finaliza această acțiune.", - "mergeResultDefaultError": "GitHub nu a finalizat fuzionarea." + "mergeResultDefaultError": "GitHub nu a finalizat fuzionarea.", + "ambiguous": "Nu s-a putut confirma — verifică PR-ul înainte de a reîncerca.", + "persistenceFailed": "Nu am putut înregistra această acțiune. Încearcă din nou mai târziu.", + "forbidden": "Interzis" } }, "notifications": { @@ -2069,7 +2076,9 @@ "dollar": "dolari", "dollar_other": "dolari", "cent_few": "cenți", - "dollar_few": "dolari" + "dollar_few": "dolari", + "costSpoken": "cost {{cost}}", + "costSpokenWithTime": "cost {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Nu s-a putut deschide GitHub", @@ -2654,7 +2663,8 @@ "couldNotOpenStore": "Magazinul de aplicații nu a putut fi deschis.", "description": "Este disponibilă o versiune nouă de Kilo. Actualizează pentru a continua.", "title": "Actualizare necesară", - "updateNow": "Actualizează acum" + "updateNow": "Actualizează acum", + "appStorePage": "pagina magazinului de aplicații" }, "home": { "couldNotLoadSessions": "Sesiunile nu au putut fi încărcate", diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 4abad10386..21c6d9273e 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -1623,7 +1623,9 @@ "cent_few": "цента", "cent_many": "центов", "dollar_few": "доллара", - "dollar_many": "долларов" + "dollar_many": "долларов", + "costSpoken": "стоимость {{cost}}", + "costSpokenWithTime": "стоимость {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Не удалось начать настройку GitHub App. Попробуйте снова.", @@ -2213,7 +2215,8 @@ "couldNotOpenStore": "Не удалось открыть магазин приложений.", "description": "Доступна новая версия Kilo. Обновите приложение, чтобы продолжить.", "title": "Требуется обновление", - "updateNow": "Обновить сейчас" + "updateNow": "Обновить сейчас", + "appStorePage": "страница магазина приложений" }, "home": { "couldNotLoadSessions": "Не удалось загрузить сеансы", @@ -2614,7 +2617,8 @@ "outdatedOnPathLines": "Устарело в {{path}} {{lines}}", "outdatedOnLines": "Устарело в {{lines}}", "outdatedOnPath": "Устарело в {{path}}" - } + }, + "deletedUser": "удаленный пользователь" }, "entry": { "clearLink": "Очистить ссылку на pull request", @@ -2902,7 +2906,10 @@ "truncationBanner": "Показаны первые {{limit}} из {{total}} изменённых файлов — лимит API GitHub", "statusAdded": "Добавлено", "statusContext": "Контекст", - "statusDeleted": "Удалено" + "statusDeleted": "Удалено", + "lineLabel": "{{status}} строка {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(пусто)" }, "linkPasteClipboardEmpty": "Буфер обмена пуст", "linkPasteNotAPullRequest": "Это не ссылка на pull request GitHub", @@ -2920,7 +2927,10 @@ "operation": { "couldNotReply": "Не удалось ответить.", "couldNotCompleteAction": "Не удалось выполнить это действие.", - "mergeResultDefaultError": "GitHub не завершил слияние." + "mergeResultDefaultError": "GitHub не завершил слияние.", + "ambiguous": "Не удалось подтвердить — проверьте PR перед повторной попыткой.", + "persistenceFailed": "Не удалось записать это действие. Повторите попытку позже.", + "forbidden": "Запрещено" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index 5a1c36bf83..fd97fa858d 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} හි යල් පැන ගිය", "outdatedOnLines": "{{lines}} හි යල් පැන ගිය", "outdatedOnPath": "{{path}} හි යල් පැන ගිය" - } + }, + "deletedUser": "මකා දැමූ පරිශීලකයා" }, "couldNotOpenGitHubAppSettings": "GitHub App සැකසුම් විවෘත කිරීමට නොහැකි විය", "installKiloGitHubApp": "Kilo GitHub App ස්ථාපනය කරන්න", @@ -576,7 +577,10 @@ "truncationBanner": "වෙනස් කළ ගොනු {{total}} අතරින් පළමු {{limit}} පෙන්වයි — GitHub API සීමාව", "statusAdded": "එකතු කරන ලදී", "statusContext": "සන්දර්භය", - "statusDeleted": "මකා දමන ලදී" + "statusDeleted": "මකා දමන ලදී", + "lineLabel": "{{status}} පේළිය {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(හිස්)" }, "linkPasteClipboardEmpty": "පසුරු පුවරුව හිස් ය", "linkPasteNotAPullRequest": "GitHub pull request සබැඳියක් නොවේ", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "පිළිතුරු දිය නොහැකි විය.", "couldNotCompleteAction": "මෙම ක්‍රියාව සම්පූර්ණ කිරීමට නොහැකි විය.", - "mergeResultDefaultError": "GitHub ඒකාබද්ධ කිරීම සම්පූර්ණ කළේ නැත." + "mergeResultDefaultError": "GitHub ඒකාබද්ධ කිරීම සම්පූර්ණ කළේ නැත.", + "ambiguous": "තහවුරු කිරීමට නොහැකි විය — නැවත උත්සාහ කිරීමට පෙර PR එක පරීක්ෂා කරන්න.", + "persistenceFailed": "මෙම ක්‍රියාව වාර්තා කිරීමට නොහැකි විය. කරුණාකර පසුව නැවත උත්සාහ කරන්න.", + "forbidden": "තහනම්" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "ශත", "dollar_one": "ඩොලරය", "dollar": "ඩොලර්", - "dollar_other": "ඩොලර්" + "dollar_other": "ඩොලර්", + "costSpoken": "පිරිවැය {{cost}}", + "costSpokenWithTime": "පිරිවැය {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub විවෘත කළ නොහැක", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "යෙදුම් වෙළඳසැල විවෘත කළ නොහැකි විය.", "description": "Kilo හි නව අනුවාදයක් ලබා ගත හැක. ඉදිරියට යාමට කරුණාකර යාවත්කාලීන කරන්න.", "title": "යාවත්කාලීනය අවශ්‍යයි", - "updateNow": "දැන් යාවත්කාලීන කරන්න" + "updateNow": "දැන් යාවත්කාලීන කරන්න", + "appStorePage": "යෙදුම් වෙළඳසැලේ පිටුව" }, "home": { "couldNotLoadSessions": "සැසි පූරණය කළ නොහැකි විය", diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index 9201b4cd85..a0d29d6994 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -415,7 +415,8 @@ "outdatedOnPathLines": "Zastarané v {{path}} {{lines}}", "outdatedOnLines": "Zastarané v {{lines}}", "outdatedOnPath": "Zastarané v {{path}}" - } + }, + "deletedUser": "vymazaný používateľ" }, "couldNotOpenGitHubAppSettings": "Nastavenia aplikácie GitHub App sa nepodarilo otvoriť", "installKiloGitHubApp": "Nainštalovať aplikáciu Kilo GitHub App", @@ -590,7 +591,10 @@ "truncationBanner": "Zobrazuje sa prvých {{limit}} z {{total}} zmenených súborov — limit GitHub API", "statusAdded": "Pridané", "statusContext": "Kontext", - "statusDeleted": "Vymazané" + "statusDeleted": "Vymazané", + "lineLabel": "{{status}} riadok {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(prázdne)" }, "linkPasteClipboardEmpty": "Schránka je prázdna", "linkPasteNotAPullRequest": "Nie je to odkaz na GitHub pull request", @@ -608,7 +612,10 @@ "operation": { "couldNotReply": "Nepodarilo sa odpovedať.", "couldNotCompleteAction": "Túto akciu sa nepodarilo dokončiť.", - "mergeResultDefaultError": "GitHub nedokončil zlúčenie." + "mergeResultDefaultError": "GitHub nedokončil zlúčenie.", + "ambiguous": "Nepodarilo sa potvrdiť — skontrolujte PR pred opätovným pokusom.", + "persistenceFailed": "Túto akciu sa nepodarilo zaznamenať. Skúste to neskôr.", + "forbidden": "Zakázané" } }, "notifications": { @@ -2084,7 +2091,9 @@ "cent_few": "centy", "cent_many": "centov", "dollar_few": "doláre", - "dollar_many": "dolárov" + "dollar_many": "dolárov", + "costSpoken": "cena {{cost}}", + "costSpokenWithTime": "cena {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub sa nepodarilo otvoriť", @@ -2674,7 +2683,8 @@ "couldNotOpenStore": "Obchod s aplikáciami sa nepodarilo otvoriť.", "description": "K dispozícii je nová verzia Kilo. Ak chcete pokračovať, aktualizujte.", "title": "Vyžaduje sa aktualizácia", - "updateNow": "Aktualizovať teraz" + "updateNow": "Aktualizovať teraz", + "appStorePage": "stránka obchodu s aplikáciami" }, "home": { "couldNotLoadSessions": "Relácie sa nepodarilo načítať", diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index 71500bf002..24774f227e 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -415,7 +415,8 @@ "outdatedOnPathLines": "Zastarelo na {{path}} {{lines}}", "outdatedOnLines": "Zastarelo na {{lines}}", "outdatedOnPath": "Zastarelo na {{path}}" - } + }, + "deletedUser": "izbrisani uporabnik" }, "couldNotOpenGitHubAppSettings": "Nastavitev aplikacije GitHub ni bilo mogoče odpreti", "installKiloGitHubApp": "Namesti aplikacijo Kilo GitHub", @@ -590,7 +591,10 @@ "truncationBanner": "Prikaz prvih {{limit}} od {{total}} spremenjenih datotek — omejitev API GitHub", "statusAdded": "Dodano", "statusContext": "Kontekst", - "statusDeleted": "Izbrisano" + "statusDeleted": "Izbrisano", + "lineLabel": "{{status}} vrstica {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(prazno)" }, "linkPasteClipboardEmpty": "Odložišče je prazno", "linkPasteNotAPullRequest": "To ni povezava do pull requesta na GitHubu", @@ -608,7 +612,10 @@ "operation": { "couldNotReply": "Odgovora ni bilo mogoče poslati.", "couldNotCompleteAction": "Tega dejanja ni bilo mogoče dokončati.", - "mergeResultDefaultError": "GitHub ni dokončal združitve." + "mergeResultDefaultError": "GitHub ni dokončal združitve.", + "ambiguous": "Ni bilo mogoče potrditi — preverite PR, preden poskusite znova.", + "persistenceFailed": "Tega dejanja ni bilo mogoče zabeležiti. Poskusite znova pozneje.", + "forbidden": "Prepovedano" } }, "notifications": { @@ -2084,7 +2091,9 @@ "cent_two": "centa", "cent_few": "centi", "dollar_two": "dolarja", - "dollar_few": "dolarji" + "dollar_few": "dolarji", + "costSpoken": "stroški {{cost}}", + "costSpokenWithTime": "stroški {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ni bilo mogoče odpreti", @@ -2674,7 +2683,8 @@ "couldNotOpenStore": "Trgovine z aplikacijami ni bilo mogoče odpreti.", "description": "Na voljo je nova različica Kilo. Prosimo, posodobi za nadaljevanje.", "title": "Posodobitev je obvezna", - "updateNow": "Posodobi zdaj" + "updateNow": "Posodobi zdaj", + "appStorePage": "stran trgovine z aplikacijami" }, "home": { "couldNotLoadSessions": "Sej ni bilo mogoče naložiti", diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index 6d2e847c07..d12d6b950e 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Waa duugoobay ee {{path}} {{lines}}", "outdatedOnLines": "Waa duugoobay ee {{lines}}", "outdatedOnPath": "Waa duugoobay ee {{path}}" - } + }, + "deletedUser": "isticmaale la tirtiray" }, "couldNotOpenGitHubAppSettings": "Dejinta GitHub App lama furi karin", "installKiloGitHubApp": "Rakib Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Waxaa la muujinayaa {{limit}}-ka ugu horreeya ee {{total}} fayl oo la beddelay — xadka API-ga GitHub", "statusAdded": "Waa la daray", "statusContext": "Xaalad", - "statusDeleted": "Waa la tirtiray" + "statusDeleted": "Waa la tirtiray", + "lineLabel": "{{status}} xariiqda {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(far madhan)" }, "linkPasteClipboardEmpty": "Qalabka koobigu waa madhan", "linkPasteNotAPullRequest": "Kuma aha xiriiriyaha codsiga jiidista GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Lama jawaabi karin.", "couldNotCompleteAction": "Falkan lama dhammayn karin.", - "mergeResultDefaultError": "GitHub kama dhammaystirin isku-darka." + "mergeResultDefaultError": "GitHub kama dhammaystirin isku-darka.", + "ambiguous": "Lama xaqiijin karin — hubi PR-ka ka hor intaadan mar kale isku dayin.", + "persistenceFailed": "Falkan lama diwaangelin karin. Fadlan mar kale isku day markii dambe.", + "forbidden": "Waa mamnuuc" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "senti", "dollar_one": "doolar", "dollar": "doolarro", - "dollar_other": "doolarro" + "dollar_other": "doolarro", + "costSpoken": "qiimaha {{cost}}", + "costSpokenWithTime": "qiimaha {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Lama furi karin GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Dukaanka app-ka lama furi karin.", "description": "Nooc cusub oo Kilo ah ayaa diyaar ah. Fadlan cusboonaysii si aad u sii socoto.", "title": "Cusboonaysiin loo baahan yahay", - "updateNow": "Hadda cusboonaysii" + "updateNow": "Hadda cusboonaysii", + "appStorePage": "bogga dukaanka app-ka" }, "home": { "couldNotLoadSessions": "Kalfadhiyada lama soo dejin karin", diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index 113d2a4b21..59199201a4 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "E vjetëruar te {{path}} {{lines}}", "outdatedOnLines": "E vjetëruar te {{lines}}", "outdatedOnPath": "E vjetëruar te {{path}}" - } + }, + "deletedUser": "përdorues i fshirë" }, "couldNotOpenGitHubAppSettings": "Nuk u arrit të hapeshin cilësimet e Aplikacionit të GitHub", "installKiloGitHubApp": "Instalo Aplikacionin Kilo të GitHub", @@ -576,7 +577,10 @@ "truncationBanner": "Duke shfaqur {{limit}}-in e parë nga {{total}} skedarë të ndryshuar — kufiri i API-së së GitHub", "statusAdded": "I shtuar", "statusContext": "Kontekst", - "statusDeleted": "I fshirë" + "statusDeleted": "I fshirë", + "lineLabel": "{{status}} rreshti {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(bosh)" }, "linkPasteClipboardEmpty": "Kujtesa është bosh", "linkPasteNotAPullRequest": "Nuk është një lidhje e pull request në GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Nuk u arrit të përgjigjeshej.", "couldNotCompleteAction": "Nuk u arrit të përfundohej ky veprim.", - "mergeResultDefaultError": "GitHub nuk e përfundoi shkrirjen." + "mergeResultDefaultError": "GitHub nuk e përfundoi shkrirjen.", + "ambiguous": "Nuk u konfirmua — kontrollo PR-në përpara se të provosh përsëri.", + "persistenceFailed": "Nuk arritëm ta regjistronim këtë veprim. Provo përsëri më vonë.", + "forbidden": "I ndaluar" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "centë", "dollar_one": "dollar", "dollar": "dollarë", - "dollar_other": "dollarë" + "dollar_other": "dollarë", + "costSpoken": "kostoja {{cost}}", + "costSpokenWithTime": "kostoja {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Nuk u hap GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Dyqani i aplikacioneve nuk mund të hapej.", "description": "Është i disponueshëm një version i ri i Kilo. Ju lutemi përditësoni për të vazhduar.", "title": "Kërkohet përditësim", - "updateNow": "Përditëso tani" + "updateNow": "Përditëso tani", + "appStorePage": "faqja e dyqanit të aplikacioneve" }, "home": { "couldNotLoadSessions": "Seancat nuk u ngarkuan", diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index b13b3abb6f..fd8b275d53 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -411,7 +411,8 @@ "outdatedOnPathLines": "Zastarelo na {{path}} {{lines}}", "outdatedOnLines": "Zastarelo na {{lines}}", "outdatedOnPath": "Zastarelo na {{path}}" - } + }, + "deletedUser": "obrisani korisnik" }, "couldNotOpenGitHubAppSettings": "Nije moguće otvoriti podešavanja GitHub aplikacije", "installKiloGitHubApp": "Instalirajte Kilo GitHub aplikaciju", @@ -583,7 +584,10 @@ "truncationBanner": "Prikazuje se prvih {{limit}} od {{total}} izmenjenih fajlova — GitHub API limit", "statusAdded": "Dodato", "statusContext": "Kontekst", - "statusDeleted": "Obrisano" + "statusDeleted": "Obrisano", + "lineLabel": "{{status}} linija {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(prazno)" }, "linkPasteClipboardEmpty": "Klipbord je prazan", "linkPasteNotAPullRequest": "Nije GitHub pull request link", @@ -601,7 +605,10 @@ "operation": { "couldNotReply": "Nije moguće odgovoriti.", "couldNotCompleteAction": "Nije moguće dovršiti ovu radnju.", - "mergeResultDefaultError": "GitHub nije završio spajanje." + "mergeResultDefaultError": "GitHub nije završio spajanje.", + "ambiguous": "Nije moguće potvrditi — proverite PR pre ponovnog pokušaja.", + "persistenceFailed": "Nismo mogli da zabeležimo ovu radnju. Pokušajte ponovo kasnije.", + "forbidden": "Zabranjeno" } }, "notifications": { @@ -2069,7 +2076,9 @@ "dollar": "dolara", "dollar_other": "dolara", "cent_few": "centa", - "dollar_few": "dolara" + "dollar_few": "dolara", + "costSpoken": "cena {{cost}}", + "costSpokenWithTime": "cena {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub se ne može otvoriti", @@ -2654,7 +2663,8 @@ "couldNotOpenStore": "Otvaranje prodavnice aplikacija nije uspelo.", "description": "Dostupna je nova verzija Kilo-a. Ažurirajte da biste nastavili.", "title": "Ažuriranje potrebno", - "updateNow": "Ažuriraj sada" + "updateNow": "Ažuriraj sada", + "appStorePage": "stranica prodavnice aplikacija" }, "home": { "couldNotLoadSessions": "Učitavanje sesija nije uspelo", diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index f42c84d4e9..e1a8bd1aa0 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Föråldrad på {{path}} {{lines}}", "outdatedOnLines": "Föråldrad på {{lines}}", "outdatedOnPath": "Föråldrad på {{path}}" - } + }, + "deletedUser": "raderad användare" }, "couldNotOpenGitHubAppSettings": "Kunde inte öppna GitHub Apps inställningar", "installKiloGitHubApp": "Installera Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Visar de första {{limit}} av {{total}} ändrade filer — GitHub API-begränsning", "statusAdded": "Tillagd", "statusContext": "Kontext", - "statusDeleted": "Borttagen" + "statusDeleted": "Borttagen", + "lineLabel": "{{status}} rad {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tom)" }, "linkPasteClipboardEmpty": "Urklipp är tomt", "linkPasteNotAPullRequest": "Inte en GitHub-pull request-länk", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Kunde inte svara.", "couldNotCompleteAction": "Kunde inte slutföra den här åtgärden.", - "mergeResultDefaultError": "GitHub slutförde inte sammanslagningen." + "mergeResultDefaultError": "GitHub slutförde inte sammanslagningen.", + "ambiguous": "Kunde inte bekräfta — kontrollera PR:en innan du försöker igen.", + "persistenceFailed": "Vi kunde inte registrera den här åtgärden. Försök igen senare.", + "forbidden": "Förbjuden" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cent", "dollar_one": "dollar", "dollar": "dollar", - "dollar_other": "dollar" + "dollar_other": "dollar", + "costSpoken": "kostnad {{cost}}", + "costSpokenWithTime": "kostnad {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Kunde inte öppna GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Det gick inte att öppna appbutiken.", "description": "En ny version av Kilo är tillgänglig. Uppdatera för att fortsätta.", "title": "Uppdatering krävs", - "updateNow": "Uppdatera nu" + "updateNow": "Uppdatera nu", + "appStorePage": "appbutikssidan" }, "home": { "couldNotLoadSessions": "Det gick inte att läsa in sessioner", diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index 0e0b0140f5..cc63036a4b 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Imeisha muda kwenye {{path}} {{lines}}", "outdatedOnLines": "Imeisha muda kwenye {{lines}}", "outdatedOnPath": "Imeisha muda kwenye {{path}}" - } + }, + "deletedUser": "mtumiaji aliyefutwa" }, "couldNotOpenGitHubAppSettings": "Imeshindwa kufungua mipangilio ya GitHub App", "installKiloGitHubApp": "Sakinisha Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Inaonyesha {{limit}} za kwanza kati ya {{total}} faili zilizobadilishwa — kikomo cha API ya GitHub", "statusAdded": "Imeongezwa", "statusContext": "Muktadha", - "statusDeleted": "Imefutwa" + "statusDeleted": "Imefutwa", + "lineLabel": "{{status}} mstari {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(tupu)" }, "linkPasteClipboardEmpty": "Ubao wa kunakili ni tupu", "linkPasteNotAPullRequest": "Si kiungo cha ombi la kuvuta la GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Imeshindwa kujibu.", "couldNotCompleteAction": "Imeshindwa kukamilisha kitendo hiki.", - "mergeResultDefaultError": "GitHub haikukamilisha muunganisho." + "mergeResultDefaultError": "GitHub haikukamilisha muunganisho.", + "ambiguous": "Haikuweza kuthibitisha — angalia PR kabla ya kujaribu tena.", + "persistenceFailed": "Hatukuweza kurekodi kitendo hiki. Tafadhali jaribu tena baadaye.", + "forbidden": "Imekatazwa" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "senti", "dollar_one": "dola", "dollar": "dola", - "dollar_other": "dola" + "dollar_other": "dola", + "costSpoken": "gharama {{cost}}", + "costSpokenWithTime": "gharama {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Haikuweza kufungua GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Haikuweza kufungua duka la app.", "description": "Toleo jipya la Kilo linapatikana. Tafadhali sasisha ili uendelee.", "title": "Sasisho linahitajika", - "updateNow": "Sasisha sasa" + "updateNow": "Sasisha sasa", + "appStorePage": "ukurasa wa duka la app" }, "home": { "couldNotLoadSessions": "Haikuweza kupakia vikao", diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index f3f0dcdf54..31f7d1bf6a 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} இல் காலாவதியானது", "outdatedOnLines": "{{lines}} இல் காலாவதியானது", "outdatedOnPath": "{{path}} இல் காலாவதியானது" - } + }, + "deletedUser": "நீக்கப்பட்ட பயனர்" }, "couldNotOpenGitHubAppSettings": "GitHub App அமைப்புகளைத் திறக்க முடியவில்லை", "installKiloGitHubApp": "Kilo GitHub App ஐ நிறுவு", @@ -576,7 +577,10 @@ "truncationBanner": "மாற்றப்பட்ட {{total}} கோப்புகளில் முதல் {{limit}} காட்டப்படுகின்றன — GitHub API வரம்பு", "statusAdded": "சேர்க்கப்பட்டது", "statusContext": "சூழல்", - "statusDeleted": "நீக்கப்பட்டது" + "statusDeleted": "நீக்கப்பட்டது", + "lineLabel": "{{status}} வரி {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(காலி)" }, "linkPasteClipboardEmpty": "கிளிப்போர்டு காலியாக உள்ளது", "linkPasteNotAPullRequest": "GitHub புல் ரீக்வெஸ்ட் இணைப்பு இல்லை", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "பதிலளிக்க முடியவில்லை.", "couldNotCompleteAction": "இந்த செயலை முடிக்க முடியவில்லை.", - "mergeResultDefaultError": "GitHub ஒருங்கிணைப்பை முடிக்கவில்லை." + "mergeResultDefaultError": "GitHub ஒருங்கிணைப்பை முடிக்கவில்லை.", + "ambiguous": "உறுதிப்படுத்த முடியவில்லை — மீண்டும் முயற்சிக்கும் முன் PR-ஐச் சரிபார்க்கவும்.", + "persistenceFailed": "இந்த செயலைப் பதிவு செய்ய முடியவில்லை. தயவுசெய்து பிறகு முயற்சிக்கவும்.", + "forbidden": "தடைசெய்யப்பட்டது" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "சென்ட்கள்", "dollar_one": "டாலர்", "dollar": "டாலர்கள்", - "dollar_other": "டாலர்கள்" + "dollar_other": "டாலர்கள்", + "costSpoken": "செலவு {{cost}}", + "costSpokenWithTime": "செலவு {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub ஐ திறக்க முடியவில்லை", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "ஆப் ஸ்டோரைத் திறக்க முடியவில்லை.", "description": "Kiloவின் புதிய பதிப்பு கிடைக்கிறது. தொடர புதுப்பிக்கவும்.", "title": "புதுப்பிப்பு தேவை", - "updateNow": "இப்போது புதுப்பி" + "updateNow": "இப்போது புதுப்பி", + "appStorePage": "ஆப் ஸ்டோர் பக்கம்" }, "home": { "couldNotLoadSessions": "அமர்வுகளை ஏற்ற முடியவில்லை", diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index f39dc70e82..21b023235b 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} లో పాతది", "outdatedOnLines": "{{lines}} లో పాతది", "outdatedOnPath": "{{path}} లో పాతది" - } + }, + "deletedUser": "తొలగించిన వినియోగదారు" }, "couldNotOpenGitHubAppSettings": "GitHub యాప్ సెట్టింగ్లను తెరవలేకపోయింది", "installKiloGitHubApp": "Kilo GitHub యాప్ను ఇన్స్టాల్ చేయండి", @@ -576,7 +577,10 @@ "truncationBanner": "మొదటి {{limit}} / {{total}} మార్చబడిన ఫైళ్లు చూపుతోంది — GitHub API పరిమితి", "statusAdded": "జోడించబడింది", "statusContext": "సందర్భం", - "statusDeleted": "తొలగించబడింది" + "statusDeleted": "తొలగించబడింది", + "lineLabel": "{{status}} లైన్ {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ఖాళీ)" }, "linkPasteClipboardEmpty": "క్లిప్బోర్డ్ ఖాళీగా ఉంది", "linkPasteNotAPullRequest": "GitHub పుల్ రిక్వెస్ట్ లింక్ కాదు", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "ప్రత్యుత్తరం ఇవ్వలేకపోయింది.", "couldNotCompleteAction": "ఈ చర్యను పూర్తి చేయలేకపోయాము.", - "mergeResultDefaultError": "GitHub మెర్జ్ను పూర్తి చేయలేదు." + "mergeResultDefaultError": "GitHub మెర్జ్ను పూర్తి చేయలేదు.", + "ambiguous": "నిర్ధారించలేకపోయాము — మళ్లీ ప్రయత్నించే ముందు PRని తనిఖీ చేయండి.", + "persistenceFailed": "ఈ చర్యను రికార్డ్ చేయలేకపోయాము. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి.", + "forbidden": "నిషేధించబడింది" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "సెంట్లు", "dollar_one": "డాలర్", "dollar": "డాలర్లు", - "dollar_other": "డాలర్లు" + "dollar_other": "డాలర్లు", + "costSpoken": "ఖర్చు {{cost}}", + "costSpokenWithTime": "ఖర్చు {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHubను తెరవలేకపోయింది", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "యాప్ స్టోర్ను తెరవలేకపోయాము.", "description": "Kilo కొత్త వెర్షన్ అందుబాటులో ఉంది. కొనసాగించడానికి దయచేసి నవీకరించండి.", "title": "నవీకరణ అవసరం", - "updateNow": "ఇప్పుడే నవీకరించండి" + "updateNow": "ఇప్పుడే నవీకరించండి", + "appStorePage": "యాప్ స్టోర్ పేజీ" }, "home": { "couldNotLoadSessions": "సెషన్లను లోడ్ చేయలేకపోయాము", diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index 6e10fd0432..a43b47c446 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "ล้าสมัยบน {{path}} {{lines}}", "outdatedOnLines": "ล้าสมัยบน {{lines}}", "outdatedOnPath": "ล้าสมัยบน {{path}}" - } + }, + "deletedUser": "ผู้ใช้ที่ถูกลบ" }, "couldNotOpenGitHubAppSettings": "ไม่สามารถเปิดการตั้งค่า GitHub App ได้", "installKiloGitHubApp": "ติดตั้ง Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "กำลังแสดง {{limit}} ไฟล์แรกจากทั้งหมด {{total}} ไฟล์ที่เปลี่ยนแปลง — ขีดจำกัด API ของ GitHub", "statusAdded": "เพิ่มแล้ว", "statusContext": "บริบท", - "statusDeleted": "ลบแล้ว" + "statusDeleted": "ลบแล้ว", + "lineLabel": "{{status}} บรรทัด {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ว่างเปล่า)" }, "linkPasteClipboardEmpty": "คลิปบอร์ดว่างเปล่า", "linkPasteNotAPullRequest": "ไม่ใช่ลิงก์คำขอดึงของ GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "ไม่สามารถตอบกลับได้", "couldNotCompleteAction": "ไม่สามารถดำเนินการนี้ให้เสร็จสมบูรณ์ได้", - "mergeResultDefaultError": "GitHub ไม่ได้รวมให้เสร็จสมบูรณ์" + "mergeResultDefaultError": "GitHub ไม่ได้รวมให้เสร็จสมบูรณ์", + "ambiguous": "ยืนยันไม่ได้ — โปรดตรวจสอบ PR ก่อนลองอีกครั้ง", + "persistenceFailed": "เราไม่สามารถบันทึกการดำเนินการนี้ได้ โปรดลองอีกครั้งในภายหลัง", + "forbidden": "ถูกห้าม" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "cents", "dollar_one": "ดอลลาร์", "dollar": "ดอลลาร์", - "dollar_other": "ดอลลาร์" + "dollar_other": "ดอลลาร์", + "costSpoken": "ค่าใช้จ่าย {{cost}}", + "costSpokenWithTime": "ค่าใช้จ่าย {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "ไม่สามารถเปิด GitHub ได้", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "เปิด App Store ไม่สำเร็จ", "description": "มี Kilo เวอร์ชันใหม่ กรุณาอัปเดตเพื่อดำเนินการต่อ", "title": "ต้องอัปเดต", - "updateNow": "อัปเดตตอนนี้" + "updateNow": "อัปเดตตอนนี้", + "appStorePage": "หน้า App Store" }, "home": { "couldNotLoadSessions": "โหลดเซสชันไม่สำเร็จ", diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index 22fccd25c7..af806bfa2d 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -1607,7 +1607,9 @@ "cent_other": "sent", "dollar_one": "dolar", "dollar": "dolar", - "dollar_other": "dolar" + "dollar_other": "dolar", + "costSpoken": "maliyet {{cost}}", + "costSpokenWithTime": "maliyet {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "GitHub Uygulaması kurulumu başlatılamadı. Lütfen tekrar deneyin.", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "Uygulama mağazası açılamadı.", "description": "Kilo'nun yeni bir sürümü mevcut. Devam etmek için lütfen güncelleyin.", "title": "Güncelleme gerekli", - "updateNow": "Şimdi güncelle" + "updateNow": "Şimdi güncelle", + "appStorePage": "uygulama mağazası sayfası" }, "home": { "couldNotLoadSessions": "Oturumlar yüklenemedi", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} konumunda güncel değil", "outdatedOnLines": "{{lines}} konumunda güncel değil", "outdatedOnPath": "{{path}} konumunda güncel değil" - } + }, + "deletedUser": "silinen kullanıcı" }, "entry": { "clearLink": "Çekme isteği bağlantısını temizle", @@ -2862,7 +2866,10 @@ "truncationBanner": "Değiştirilen dosyaların ilk {{limit}} tanesi gösteriliyor (toplam {{total}}) — GitHub API sınırı", "statusAdded": "Eklendi", "statusContext": "Bağlam", - "statusDeleted": "Silindi" + "statusDeleted": "Silindi", + "lineLabel": "{{status}} satırı {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(boş)" }, "linkPasteClipboardEmpty": "Pano boş", "linkPasteNotAPullRequest": "GitHub çekme isteği bağlantısı değil", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "Yanıt verilemedi.", "couldNotCompleteAction": "Bu işlem tamamlanamadı.", - "mergeResultDefaultError": "GitHub birleştirmeyi tamamlamadı." + "mergeResultDefaultError": "GitHub birleştirmeyi tamamlamadı.", + "ambiguous": "Doğrulanamadı — yeniden denemeden önce PR'yi kontrol edin.", + "persistenceFailed": "Bu işlemi kaydedemedik. Lütfen daha sonra tekrar deneyin.", + "forbidden": "Yasak" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 67a05c7616..8236a93bc8 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -1623,7 +1623,9 @@ "cent_few": "центи", "cent_many": "центів", "dollar_few": "долари", - "dollar_many": "доларів" + "dollar_many": "доларів", + "costSpoken": "вартість {{cost}}", + "costSpokenWithTime": "вартість {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Не вдалося розпочати налаштування застосунку GitHub. Спробуйте ще раз.", @@ -2213,7 +2215,8 @@ "couldNotOpenStore": "Не вдалося відкрити магазин застосунків.", "description": "Доступна нова версія Kilo. Оновіться, щоб продовжити.", "title": "Потрібне оновлення", - "updateNow": "Оновити зараз" + "updateNow": "Оновити зараз", + "appStorePage": "сторінка магазину застосунків" }, "home": { "couldNotLoadSessions": "Не вдалося завантажити сеанси", @@ -2614,7 +2617,8 @@ "outdatedOnPathLines": "Застаріле на {{path}} {{lines}}", "outdatedOnLines": "Застаріле на {{lines}}", "outdatedOnPath": "Застаріле на {{path}}" - } + }, + "deletedUser": "видалений користувач" }, "entry": { "clearLink": "Очистити посилання на pull request", @@ -2902,7 +2906,10 @@ "truncationBanner": "Показано перші {{limit}} зі {{total}} змінених файлів — обмеження GitHub API", "statusAdded": "Додано", "statusContext": "Контекст", - "statusDeleted": "Видалено" + "statusDeleted": "Видалено", + "lineLabel": "{{status}} рядок {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(порожньо)" }, "linkPasteClipboardEmpty": "Буфер обміну порожній", "linkPasteNotAPullRequest": "Це не посилання на pull request GitHub", @@ -2920,7 +2927,10 @@ "operation": { "couldNotReply": "Не вдалося відповісти.", "couldNotCompleteAction": "Не вдалося завершити цю дію.", - "mergeResultDefaultError": "GitHub не завершив злиття." + "mergeResultDefaultError": "GitHub не завершив злиття.", + "ambiguous": "Не вдалося підтвердити — перевірте PR, перш ніж повторювати спробу.", + "persistenceFailed": "Не вдалося зберегти цю дію. Спробуйте ще раз пізніше.", + "forbidden": "Заборонено" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 2a9c2516d6..663484846a 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} پر پرانا", "outdatedOnLines": "{{lines}} پر پرانا", "outdatedOnPath": "{{path}} پر پرانا" - } + }, + "deletedUser": "حذف شدہ صارف" }, "couldNotOpenGitHubAppSettings": "GitHub ایپ کی سیٹنگز نہیں کھلی سکیں", "installKiloGitHubApp": "Kilo GitHub ایپ انسٹال کریں", @@ -576,7 +577,10 @@ "truncationBanner": "کل {{total}} تبدیل شدہ فائلوں میں سے پہلی {{limit}} دکھائی جا رہی ہیں — GitHub API حد", "statusAdded": "شامل شدہ", "statusContext": "سیاق", - "statusDeleted": "حذف شدہ" + "statusDeleted": "حذف شدہ", + "lineLabel": "{{status}} لائن {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(خالی)" }, "linkPasteClipboardEmpty": "کلپ بورڈ خالی ہے", "linkPasteNotAPullRequest": "یہ GitHub پل ریکویسٹ لنک نہیں ہے", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "جواب نہیں ہو سکا۔", "couldNotCompleteAction": "یہ کارروائی مکمل نہیں ہو سکی۔", - "mergeResultDefaultError": "GitHub نے مرج مکمل نہیں کیا۔" + "mergeResultDefaultError": "GitHub نے مرج مکمل نہیں کیا۔", + "ambiguous": "تصدیق نہیں ہو سکی — دوبارہ کوشش کرنے سے پہلے PR چیک کریں۔", + "persistenceFailed": "ہم اس کارروائی کو ریکارڈ نہیں کر سکے۔ براہ کرم بعد میں دوبارہ کوشش کریں۔", + "forbidden": "ممنوع" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "سینٹ", "dollar_one": "ڈالر", "dollar": "ڈالر", - "dollar_other": "ڈالر" + "dollar_other": "ڈالر", + "costSpoken": "لاگت {{cost}}", + "costSpokenWithTime": "لاگت {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub نہیں کھل سکا", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "ایپ اسٹور نہیں کھل سکا۔", "description": "Kilo کا نیا ورژن دستیاب ہے۔ براہ کرم جاری رکھنے کے لیے اپ ڈیٹ کریں۔", "title": "اپ ڈیٹ ضروری ہے", - "updateNow": "ابھی اپ ڈیٹ کریں" + "updateNow": "ابھی اپ ڈیٹ کریں", + "appStorePage": "ایپ اسٹور کا صفحہ" }, "home": { "couldNotLoadSessions": "سیشنز لوڈ نہیں ہو سکے", diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index 9a78cd0344..b6d7f9239e 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} da eskirgan", "outdatedOnLines": "{{lines}} da eskirgan", "outdatedOnPath": "{{path}} da eskirgan" - } + }, + "deletedUser": "o'chirilgan foydalanuvchi" }, "couldNotOpenGitHubAppSettings": "GitHub ilovasi sozlamalarini ochib bo'lmadi", "installKiloGitHubApp": "Kilo GitHub ilovasini o'rnatish", @@ -576,7 +577,10 @@ "truncationBanner": "Jami {{total}} ta o'zgartirilgan fayldan dastlabki {{limit}} tasi ko'rsatilmoqda — GitHub API chegarasi", "statusAdded": "Qo'shildi", "statusContext": "Kontekst", - "statusDeleted": "O'chirildi" + "statusDeleted": "O'chirildi", + "lineLabel": "{{status}} qator {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(bo'sh)" }, "linkPasteClipboardEmpty": "Vaqtinchalik xotira bo‘sh", "linkPasteNotAPullRequest": "Bu GitHub pull request havolasi emas", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Javob bera olmadi.", "couldNotCompleteAction": "Bu amalni yakunlab bo'lmadi.", - "mergeResultDefaultError": "GitHub birlashtirishni yakunlamadi." + "mergeResultDefaultError": "GitHub birlashtirishni yakunlamadi.", + "ambiguous": "Tasdiqlab bo'lmadi — qayta urinishdan oldin PR'ni tekshiring.", + "persistenceFailed": "Bu amalni yozib ololmadik. Iltimos, keyinroq qayta urinib ko'ring.", + "forbidden": "Taqiqlangan" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "sent", "dollar_one": "dollar", "dollar": "dollar", - "dollar_other": "dollar" + "dollar_other": "dollar", + "costSpoken": "xarajat {{cost}}", + "costSpokenWithTime": "xarajat {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "GitHub'ni ochib bo'lmadi", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Ilova do'konini ochib bo'lmadi.", "description": "Kilo'ning yangi versiyasi mavjud. Davom etish uchun yangilang.", "title": "Yangilash talab qilinadi", - "updateNow": "Hozir yangilash" + "updateNow": "Hozir yangilash", + "appStorePage": "ilova do'koni sahifasi" }, "home": { "couldNotLoadSessions": "Sessiyalarni yuklab bo'lmadi", diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index 3c6408d372..b65a44aa3c 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -1607,7 +1607,9 @@ "cent_other": "xu", "dollar_one": "đô la", "dollar": "đô la", - "dollar_other": "đô la" + "dollar_other": "đô la", + "costSpoken": "chi phí {{cost}}", + "costSpokenWithTime": "chi phí {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenMessage": "Chúng tôi không thể bắt đầu thiết lập ứng dụng GitHub. Vui lòng thử lại.", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "Không thể mở cửa hàng ứng dụng.", "description": "Đã có phiên bản mới của Kilo. Vui lòng cập nhật để tiếp tục.", "title": "Cần cập nhật", - "updateNow": "Cập nhật ngay" + "updateNow": "Cập nhật ngay", + "appStorePage": "trang cửa hàng ứng dụng" }, "home": { "couldNotLoadSessions": "Không thể tải các phiên", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "Đã lỗi thời trên {{path}} {{lines}}", "outdatedOnLines": "Đã lỗi thời trên {{lines}}", "outdatedOnPath": "Đã lỗi thời trên {{path}}" - } + }, + "deletedUser": "người dùng đã bị xóa" }, "entry": { "clearLink": "Xóa liên kết yêu cầu hợp nhất", @@ -2862,7 +2866,10 @@ "truncationBanner": "Hiển thị {{limit}} tệp đã thay đổi đầu tiên trong tổng số {{total}} — giới hạn API của GitHub", "statusAdded": "Đã thêm", "statusContext": "Ngữ cảnh", - "statusDeleted": "Đã xóa" + "statusDeleted": "Đã xóa", + "lineLabel": "{{status}} dòng {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(trống)" }, "linkPasteClipboardEmpty": "Bộ nhớ tạm trống", "linkPasteNotAPullRequest": "Không phải là liên kết yêu cầu kéo GitHub", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "Không thể trả lời.", "couldNotCompleteAction": "Không thể hoàn tất hành động này.", - "mergeResultDefaultError": "GitHub đã không hoàn tất việc hợp nhất." + "mergeResultDefaultError": "GitHub đã không hoàn tất việc hợp nhất.", + "ambiguous": "Không thể xác nhận — hãy kiểm tra PR trước khi thử lại.", + "persistenceFailed": "Chúng tôi không thể ghi lại hành động này. Vui lòng thử lại sau.", + "forbidden": "Bị cấm" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index 8beb7b5ff1..157482318b 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Atijọ lori {{path}} {{lines}}", "outdatedOnLines": "Atijọ lori {{lines}}", "outdatedOnPath": "Atijọ lori {{path}}" - } + }, + "deletedUser": "olumulo ti a pa" }, "couldNotOpenGitHubAppSettings": "Ko le ṣii awọn eto GitHub App", "installKiloGitHubApp": "Fi Kilo GitHub App sori", @@ -576,7 +577,10 @@ "truncationBanner": "Ìfihàn àwọn fáìlì àkọ́kọ́ {{limit}} nínú {{total}} fáìlì tí a yí padà — ìpẹ̀kun API GitHub", "statusAdded": "Ti fi kun", "statusContext": "Àyíká", - "statusDeleted": "Ti pa" + "statusDeleted": "Ti pa", + "lineLabel": "{{status}} laini {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(ofo)" }, "linkPasteClipboardEmpty": "Àtẹ̀ àkójọpọ̀ ti ṣófo", "linkPasteNotAPullRequest": "Kì í ṣe ọ̀nà asopọ́ pull request GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Ko le fesi.", "couldNotCompleteAction": "Kò lè parí ìgbésẹ̀ yìí.", - "mergeResultDefaultError": "GitHub kò parí ìsopọ̀ náà." + "mergeResultDefaultError": "GitHub kò parí ìsopọ̀ náà.", + "ambiguous": "A ko le fi idi rẹ mulẹ — ṣayẹwo PR naa ki o to gbiyanju lẹẹkansi.", + "persistenceFailed": "A ko le gbasilẹ iṣe yii. Jọwọ gbiyanju lẹẹkansi nigbamii.", + "forbidden": "Eewọ" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "awọn centi", "dollar_one": "dọla", "dollar": "awọn dọla", - "dollar_other": "awọn dọla" + "dollar_other": "awọn dọla", + "costSpoken": "idiyele {{cost}}", + "costSpokenWithTime": "idiyele {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Ko le ṣii GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Ko le ṣii ibi-itaja app.", "description": "Ẹya tuntun ti Kilo wa. Jọwọ ṣe igbesoke lati tẹsiwaju.", "title": "Igbesoke nilo", - "updateNow": "Ṣe igbesoke ni bayi" + "updateNow": "Ṣe igbesoke ni bayi", + "appStorePage": "oju-iwe ibi-itaja app" }, "home": { "couldNotLoadSessions": "Ko le ṣagbewọ awọn igba-ijiroro", diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index 58cd805ae3..5d6a96849b 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -1607,7 +1607,9 @@ "cent_other": "美分", "dollar_one": "美元", "dollar": "美元", - "dollar_other": "美元" + "dollar_other": "美元", + "costSpoken": "费用 {{cost}}", + "costSpokenWithTime": "费用 {{cost}},{{time}}" }, "githubInstall": { "couldNotOpenMessage": "我们无法启动 GitHub App 设置。请重试。", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "无法打开应用商店。", "description": "Kilo 有新版本可用。请更新以继续。", "title": "需要更新", - "updateNow": "立即更新" + "updateNow": "立即更新", + "appStorePage": "应用商店页面" }, "home": { "couldNotLoadSessions": "无法加载会话", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "在 {{path}} {{lines}} 上已过时", "outdatedOnLines": "在 {{lines}} 上已过时", "outdatedOnPath": "在 {{path}} 上已过时" - } + }, + "deletedUser": "已删除的用户" }, "entry": { "clearLink": "清除拉取请求链接", @@ -2862,7 +2866,10 @@ "truncationBanner": "正在显示前 {{limit}} 个(共 {{total}} 个)已更改文件 — GitHub API 限制", "statusAdded": "已添加", "statusContext": "上下文", - "statusDeleted": "已删除" + "statusDeleted": "已删除", + "lineLabel": "{{status}} 行 {{line}}:{{text}}", + "lineLabelNoNumber": "{{status}}:{{text}}", + "emptyLine": "(空)" }, "linkPasteClipboardEmpty": "剪贴板为空", "linkPasteNotAPullRequest": "不是 GitHub 拉取请求链接", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "无法回复。", "couldNotCompleteAction": "无法完成此操作。", - "mergeResultDefaultError": "GitHub 未完成合并。" + "mergeResultDefaultError": "GitHub 未完成合并。", + "ambiguous": "无法确认 — 请先检查 PR 再重试。", + "persistenceFailed": "我们无法记录此操作。请稍后重试。", + "forbidden": "禁止" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index 20fe65454a..a9a50d4291 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -1607,7 +1607,9 @@ "cent_other": "美分", "dollar_one": "美元", "dollar": "美元", - "dollar_other": "美元" + "dollar_other": "美元", + "costSpoken": "成本 {{cost}}", + "costSpokenWithTime": "成本 {{cost}},{{time}}" }, "githubInstall": { "couldNotOpenMessage": "無法啟動 GitHub App 設定。請再試一次。", @@ -2187,7 +2189,8 @@ "couldNotOpenStore": "無法開啟應用程式商店。", "description": "有新版 Kilo 可供使用。請更新以繼續。", "title": "需要更新", - "updateNow": "立即更新" + "updateNow": "立即更新", + "appStorePage": "應用程式商店頁面" }, "home": { "couldNotLoadSessions": "無法載入工作階段", @@ -2584,7 +2587,8 @@ "outdatedOnPathLines": "{{path}} {{lines}} 已過時", "outdatedOnLines": "{{lines}} 已過時", "outdatedOnPath": "{{path}} 已過時" - } + }, + "deletedUser": "已刪除的使用者" }, "entry": { "clearLink": "清除拉取請求連結", @@ -2862,7 +2866,10 @@ "truncationBanner": "正在顯示前 {{limit}} 個(共 {{total}} 個)已變更檔案 — GitHub API 限制", "statusAdded": "已新增", "statusContext": "內容", - "statusDeleted": "已刪除" + "statusDeleted": "已刪除", + "lineLabel": "{{status}} 行 {{line}}:{{text}}", + "lineLabelNoNumber": "{{status}}:{{text}}", + "emptyLine": "(空)" }, "linkPasteClipboardEmpty": "剪貼簿是空的", "linkPasteNotAPullRequest": "不是 GitHub 提取請求的連結", @@ -2880,7 +2887,10 @@ "operation": { "couldNotReply": "無法回覆。", "couldNotCompleteAction": "無法完成此動作。", - "mergeResultDefaultError": "GitHub 未完成合併。" + "mergeResultDefaultError": "GitHub 未完成合併。", + "ambiguous": "無法確認 — 請先檢查 PR 再重試。", + "persistenceFailed": "我們無法記錄此操作。請稍後再試。", + "forbidden": "禁止" } }, "organization": { diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index 2a583002ff..fcb0218991 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -407,7 +407,8 @@ "outdatedOnPathLines": "Kwedlule isikhathi ku-{{path}} {{lines}}", "outdatedOnLines": "Kwedlule isikhathi ku-{{lines}}", "outdatedOnPath": "Kwedlule isikhathi ku-{{path}}" - } + }, + "deletedUser": "umsebenzisi osusiwe" }, "couldNotOpenGitHubAppSettings": "Asikwazanga ukuvula izilungiselelo ze-GitHub App", "installKiloGitHubApp": "Faka uhlelo lwe-Kilo GitHub App", @@ -576,7 +577,10 @@ "truncationBanner": "Kuboniswa amafayela okuqala angu-{{limit}} kwangu-{{total}} aguquliwe — umkhawulo we-GitHub API", "statusAdded": "Kwengeziwe", "statusContext": "Umongo", - "statusDeleted": "Kususiwe" + "statusDeleted": "Kususiwe", + "lineLabel": "{{status}} umugqa {{line}}: {{text}}", + "lineLabelNoNumber": "{{status}}: {{text}}", + "emptyLine": "(okungenalutho)" }, "linkPasteClipboardEmpty": "Ikliphuphodi ayinalutho", "linkPasteNotAPullRequest": "Akuyona isixhumanisi sokudonsa se-GitHub", @@ -594,7 +598,10 @@ "operation": { "couldNotReply": "Asikwazanga ukuphendula.", "couldNotCompleteAction": "Asikwazanga ukuqeda lesi senzo.", - "mergeResultDefaultError": "I-GitHub ayizange iqede ukuhlanganisa." + "mergeResultDefaultError": "I-GitHub ayizange iqede ukuhlanganisa.", + "ambiguous": "Asikwazanga ukuqinisekisa — hlola i-PR ngaphambi kokuzama futhi.", + "persistenceFailed": "Asikwazanga ukurekhoda lesi senzo. Sicela uzame futhi kamuva.", + "forbidden": "Kunqatshelwe" } }, "notifications": { @@ -2054,7 +2061,9 @@ "cent_other": "amasenti", "dollar_one": "idola", "dollar": "amadola", - "dollar_other": "amadola" + "dollar_other": "amadola", + "costSpoken": "izindleko {{cost}}", + "costSpokenWithTime": "izindleko {{cost}}, {{time}}" }, "githubInstall": { "couldNotOpenTitle": "Akukwazanga ukuvula i-GitHub", @@ -2634,7 +2643,8 @@ "couldNotOpenStore": "Ayikwazanga ukuvula i-app store.", "description": "Inguqulo entsha ye-Kilo iyatholakala. Sicela ubuyekeze ukuze uqhubeke.", "title": "Ukubuyekeza kuyadingeka", - "updateNow": "Buyekeza manje" + "updateNow": "Buyekeza manje", + "appStorePage": "ikhasi le-app store" }, "home": { "couldNotLoadSessions": "Asikwazanga ukulayisha amaseshini", diff --git a/apps/mobile/src/lib/pr-review/classify-pr-review-query-state.ts b/apps/mobile/src/lib/pr-review/classify-pr-review-query-state.ts index 53375b5f87..4f8bba3d65 100644 --- a/apps/mobile/src/lib/pr-review/classify-pr-review-query-state.ts +++ b/apps/mobile/src/lib/pr-review/classify-pr-review-query-state.ts @@ -10,6 +10,7 @@ // that keeps it testable in plain Node. import { readTrpcErrorField } from '@/lib/trpc-error'; +import { i18n } from '@/i18n'; type PrReviewQueryState = | { @@ -122,7 +123,7 @@ export function classifyPrReviewMutationError(error: unknown): PrReviewMutationE if (code === 'FORBIDDEN') { return { kind: 'forbidden', - message: error instanceof Error ? error.message : 'Forbidden', + message: error instanceof Error ? error.message : i18n.t('prReview.operation.forbidden'), }; } if (code === 'PRECONDITION_FAILED' && readTrpcErrorField(error, 'message') === 'terms_required') { diff --git a/apps/mobile/src/lib/pr-review/diff/parse-patch.ts b/apps/mobile/src/lib/pr-review/diff/parse-patch.ts index 98ff3434fb..bacf48f6bd 100644 --- a/apps/mobile/src/lib/pr-review/diff/parse-patch.ts +++ b/apps/mobile/src/lib/pr-review/diff/parse-patch.ts @@ -96,10 +96,12 @@ export type ParsedDiffLine = { export function buildDiffLineAccessibilityLabel(line: ParsedDiffLine): string { const status = diffLineStatusWord(line.type); const lineNumber = line.newLine ?? line.oldLine; - const linePart = lineNumber !== undefined ? ` line ${lineNumber}` : ''; const trimmed = line.text.trim(); - const text = trimmed === '' ? '(empty)' : line.text; - return `${status}${linePart}: ${text}`; + const text = trimmed === '' ? i18n.t('prReview.diff.emptyLine') : line.text; + if (lineNumber === undefined) { + return i18n.t('prReview.diff.lineLabelNoNumber', { status, text }); + } + return i18n.t('prReview.diff.lineLabel', { status, line: lineNumber, text }); } export type ParsedHunk = { diff --git a/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts b/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts index 3f2eaef70c..8bdeb2f927 100644 --- a/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts +++ b/apps/mobile/src/lib/pr-review/discussion/review-discussion-types.ts @@ -143,7 +143,7 @@ export function selectThreadBadges(thread: ReviewThread) { * `author: null` in the GraphQL DTO). */ export function selectCommentAuthorName(author: ReviewComment['author']): string { - return author?.login ?? 'deleted user'; + return author?.login ?? i18n.t('prReview.discussion.deletedUser'); } /** diff --git a/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts b/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts index 36f65b69a2..a846e37525 100644 --- a/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts +++ b/apps/mobile/src/lib/pr-review/merge/pr-operation-ledger.ts @@ -27,11 +27,31 @@ const PR_SURFACE_RETRYABLE_COPY = { merge: 'prReview.merge.couldNotMerge', } satisfies Record; +/** + * A ledger marker re-wrapped for display. The kind travels on the error, not in + * its text, so the sheets can still classify it after the message is + * translated. The server's own English marker is still matched below. + */ +class PrOperationMarkerError extends Error { + kind: 'ambiguous' | 'persistence-failed'; + + constructor(kind: 'ambiguous' | 'persistence-failed', message: string) { + super(message); + this.kind = kind; + } +} + export function isPrOperationAmbiguous(error: unknown): boolean { + if (error instanceof PrOperationMarkerError) { + return error.kind === 'ambiguous'; + } return error instanceof Error && error.message === PR_OPERATION_AMBIGUOUS_MESSAGE; } export function isPrOperationPersistenceFailed(error: unknown): boolean { + if (error instanceof PrOperationMarkerError) { + return error.kind === 'persistence-failed'; + } return error instanceof Error && error.message === PR_OPERATION_PERSISTENCE_FAILED_MESSAGE; } @@ -59,10 +79,13 @@ export function mapPrOperationError(error: T, surface: PrMutationSurface): T return new Error(i18n.t(PR_SURFACE_RETRYABLE_COPY[surface])); } if (isPrOperationAmbiguous(error)) { - return new Error(PR_OPERATION_AMBIGUOUS_MESSAGE); + return new PrOperationMarkerError('ambiguous', i18n.t('prReview.operation.ambiguous')); } if (isPrOperationPersistenceFailed(error)) { - return new Error(PR_OPERATION_PERSISTENCE_FAILED_MESSAGE); + return new PrOperationMarkerError( + 'persistence-failed', + i18n.t('prReview.operation.persistenceFailed') + ); } return error; } From 501e0313a99d73ab1316a78e68e5a5c5e9857e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 20:59:59 +0200 Subject: [PATCH 12/14] fix(mobile): translate the Kilo Chat error and attachment copy A chat 401 or 403 toasted the English words "Not allowed" in every language, and the message-length and empty-message phrases read English too. A reply preview to an attachment with no filename showed "Image" or "Attachment". packages/kilo-chat is shared with the web app, which has no translations, so its English is untouched: `formatKiloChatError` and `contentBlocksPreviewText` return byte-for-byte what web reads today. Both now build that English from a new exported classifier, and mobile maps the classifier's stable kind onto a catalog key. A server-phrased error still shows the server's own message rather than the caller's generic fallback, so nothing is lost when the backend explains what went wrong. Also translate the pull request ledger markers in the inline error boxes. The toast already read the translated message, but the composer, submit sheet, and reply box each spelled the English constant. Six new keys, translated into all 87 catalogs. --- .../kilo-chat/execute-action-feedback.ts | 6 +- .../hooks/use-conversation-message-actions.ts | 8 +- .../use-conversation-message-controller.ts | 8 +- .../kilo-chat/hooks/use-conversations.ts | 8 +- .../kilo-chat/hooks/use-messages.ts | 6 +- .../components/kilo-chat/kilo-chat-error.ts | 32 +++++++ .../kilo-chat/message-presentation.ts | 22 ++++- .../pr-review/discussion/reply-input.tsx | 7 +- apps/mobile/src/i18n/locales/af.json | 10 ++- apps/mobile/src/i18n/locales/am.json | 10 ++- apps/mobile/src/i18n/locales/ar.json | 10 ++- apps/mobile/src/i18n/locales/az.json | 10 ++- apps/mobile/src/i18n/locales/be.json | 10 ++- apps/mobile/src/i18n/locales/bg.json | 10 ++- apps/mobile/src/i18n/locales/bn.json | 10 ++- apps/mobile/src/i18n/locales/bs.json | 10 ++- apps/mobile/src/i18n/locales/ca.json | 10 ++- apps/mobile/src/i18n/locales/ckb.json | 10 ++- apps/mobile/src/i18n/locales/cs.json | 10 ++- apps/mobile/src/i18n/locales/cy.json | 10 ++- apps/mobile/src/i18n/locales/da.json | 10 ++- apps/mobile/src/i18n/locales/de.json | 10 ++- apps/mobile/src/i18n/locales/el.json | 10 ++- apps/mobile/src/i18n/locales/en.json | 10 ++- apps/mobile/src/i18n/locales/es.json | 10 ++- apps/mobile/src/i18n/locales/et.json | 10 ++- apps/mobile/src/i18n/locales/eu.json | 10 ++- apps/mobile/src/i18n/locales/fa.json | 10 ++- apps/mobile/src/i18n/locales/fi.json | 10 ++- apps/mobile/src/i18n/locales/fil.json | 10 ++- apps/mobile/src/i18n/locales/fr.json | 10 ++- apps/mobile/src/i18n/locales/ga.json | 10 ++- apps/mobile/src/i18n/locales/gl.json | 10 ++- apps/mobile/src/i18n/locales/gu.json | 10 ++- apps/mobile/src/i18n/locales/ha.json | 10 ++- apps/mobile/src/i18n/locales/he.json | 10 ++- apps/mobile/src/i18n/locales/hi.json | 10 ++- apps/mobile/src/i18n/locales/hr.json | 10 ++- apps/mobile/src/i18n/locales/ht.json | 10 ++- apps/mobile/src/i18n/locales/hu.json | 10 ++- apps/mobile/src/i18n/locales/hy.json | 10 ++- apps/mobile/src/i18n/locales/id.json | 10 ++- apps/mobile/src/i18n/locales/ig.json | 10 ++- apps/mobile/src/i18n/locales/is.json | 10 ++- apps/mobile/src/i18n/locales/it.json | 10 ++- apps/mobile/src/i18n/locales/ja.json | 10 ++- apps/mobile/src/i18n/locales/ka.json | 10 ++- apps/mobile/src/i18n/locales/kk.json | 10 ++- apps/mobile/src/i18n/locales/km.json | 10 ++- apps/mobile/src/i18n/locales/kn.json | 10 ++- apps/mobile/src/i18n/locales/ko.json | 10 ++- apps/mobile/src/i18n/locales/lo.json | 10 ++- apps/mobile/src/i18n/locales/lt.json | 10 ++- apps/mobile/src/i18n/locales/lv.json | 10 ++- apps/mobile/src/i18n/locales/mg.json | 10 ++- apps/mobile/src/i18n/locales/mi.json | 10 ++- apps/mobile/src/i18n/locales/mk.json | 10 ++- apps/mobile/src/i18n/locales/ml.json | 10 ++- apps/mobile/src/i18n/locales/mn.json | 10 ++- apps/mobile/src/i18n/locales/mr.json | 10 ++- apps/mobile/src/i18n/locales/ms.json | 10 ++- apps/mobile/src/i18n/locales/mt.json | 10 ++- apps/mobile/src/i18n/locales/my.json | 10 ++- apps/mobile/src/i18n/locales/nb.json | 10 ++- apps/mobile/src/i18n/locales/ne.json | 10 ++- apps/mobile/src/i18n/locales/nl.json | 10 ++- apps/mobile/src/i18n/locales/om.json | 10 ++- apps/mobile/src/i18n/locales/or.json | 10 ++- apps/mobile/src/i18n/locales/pa.json | 10 ++- apps/mobile/src/i18n/locales/pl.json | 10 ++- apps/mobile/src/i18n/locales/ps.json | 10 ++- apps/mobile/src/i18n/locales/pt-BR.json | 10 ++- apps/mobile/src/i18n/locales/pt.json | 10 ++- apps/mobile/src/i18n/locales/ro.json | 10 ++- apps/mobile/src/i18n/locales/ru.json | 10 ++- apps/mobile/src/i18n/locales/si.json | 10 ++- apps/mobile/src/i18n/locales/sk.json | 10 ++- apps/mobile/src/i18n/locales/sl.json | 10 ++- apps/mobile/src/i18n/locales/so.json | 10 ++- apps/mobile/src/i18n/locales/sq.json | 10 ++- apps/mobile/src/i18n/locales/sr.json | 10 ++- apps/mobile/src/i18n/locales/sv.json | 10 ++- apps/mobile/src/i18n/locales/sw.json | 10 ++- apps/mobile/src/i18n/locales/ta.json | 10 ++- apps/mobile/src/i18n/locales/te.json | 10 ++- apps/mobile/src/i18n/locales/th.json | 10 ++- apps/mobile/src/i18n/locales/tr.json | 10 ++- apps/mobile/src/i18n/locales/uk.json | 10 ++- apps/mobile/src/i18n/locales/ur.json | 10 ++- apps/mobile/src/i18n/locales/uz.json | 10 ++- apps/mobile/src/i18n/locales/vi.json | 10 ++- apps/mobile/src/i18n/locales/yo.json | 10 ++- apps/mobile/src/i18n/locales/zh-Hans.json | 10 ++- apps/mobile/src/i18n/locales/zh-Hant.json | 10 ++- apps/mobile/src/i18n/locales/zu.json | 10 ++- .../lib/pr-review/mutation-error-display.ts | 6 +- packages/kilo-chat/src/errors.ts | 85 ++++++++++++++----- packages/kilo-chat/src/index.ts | 9 +- packages/kilo-chat/src/utils.ts | 46 ++++++++-- 99 files changed, 972 insertions(+), 141 deletions(-) create mode 100644 apps/mobile/src/components/kilo-chat/kilo-chat-error.ts diff --git a/apps/mobile/src/components/kilo-chat/execute-action-feedback.ts b/apps/mobile/src/components/kilo-chat/execute-action-feedback.ts index e348e1a85f..5047caba35 100644 --- a/apps/mobile/src/components/kilo-chat/execute-action-feedback.ts +++ b/apps/mobile/src/components/kilo-chat/execute-action-feedback.ts @@ -1,8 +1,10 @@ -import { type ExecApprovalDecision, formatKiloChatError, type Message } from '@kilocode/kilo-chat'; +import { type ExecApprovalDecision, type Message } from '@kilocode/kilo-chat'; import { toast } from 'sonner-native'; import { i18n } from '@/i18n'; +import { formatMobileKiloChatError } from './kilo-chat-error'; + type ExecuteActionVariables = { messageId: string; groupId: string; @@ -34,7 +36,7 @@ export function executeActionWithMobileFeedback({ }) { const options = { onError: (err: unknown) => { - toast.error(formatKiloChatError(err, i18n.t('chat.messageActions.executeFailed'))); + toast.error(formatMobileKiloChatError(err, i18n.t('chat.messageActions.executeFailed'))); }, ...(onSettled ? { onSettled } : {}), }; diff --git a/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-actions.ts b/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-actions.ts index a1e3725a22..ca854678fd 100644 --- a/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-actions.ts +++ b/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-actions.ts @@ -14,7 +14,6 @@ import { buildMessageActionAvailability, contentBlocksToText, type ExecApprovalDecision, - formatKiloChatError, type KiloChatClient, type Message, } from '@kilocode/kilo-chat'; @@ -26,6 +25,7 @@ import { toast } from 'sonner-native'; import { i18n } from '@/i18n'; import { executeActionWithMobileFeedback } from '../execute-action-feedback'; +import { formatMobileKiloChatError } from '../kilo-chat-error'; import { buildMessageActionSheetOptions, getSelectedMessageAction } from '../message-actions'; import { canCopyMessage, canRetryFailedMessage, canToggleReaction } from '../message-presentation'; @@ -70,7 +70,7 @@ export function useConversationMessageActions({ { onError: err => { toast.error( - formatKiloChatError(err, i18n.t('chat.messageActions.removeReactionFailed')) + formatMobileKiloChatError(err, i18n.t('chat.messageActions.removeReactionFailed')) ); }, } @@ -81,7 +81,7 @@ export function useConversationMessageActions({ { onError: err => { toast.error( - formatKiloChatError(err, i18n.t('chat.messageActions.addReactionFailed')) + formatMobileKiloChatError(err, i18n.t('chat.messageActions.addReactionFailed')) ); }, } @@ -190,7 +190,7 @@ export function useConversationMessageActions({ { onError: err => { toast.error( - formatKiloChatError(err, i18n.t('chat.messageActions.deleteFailed')) + formatMobileKiloChatError(err, i18n.t('chat.messageActions.deleteFailed')) ); }, } diff --git a/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-controller.ts b/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-controller.ts index ee77832862..08bc7ac6e2 100644 --- a/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-controller.ts +++ b/apps/mobile/src/components/kilo-chat/hooks/use-conversation-message-controller.ts @@ -3,7 +3,6 @@ import { useEditMessage, useRedeliverMessage } from '@kilocode/kilo-chat-hooks'; import { buildMessageEditContent, contentBlocksToText, - formatKiloChatError, type InputContentBlock, type KiloChatClient, type Message, @@ -15,6 +14,7 @@ import { i18n } from '@/i18n'; import { captureEvent, MESSAGE_SENT_EVENT } from '@/lib/analytics/posthog'; import { resolveMobileMessageInputAvailability } from '../bot-send-state'; +import { formatMobileKiloChatError } from '../kilo-chat-error'; import { type MessageInputSubmitControls } from '../message-input-state'; import { buildSendMessageVariables, @@ -107,7 +107,9 @@ export function useConversationMessageController({ void Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success); }, onError: err => { - toast.error(formatKiloChatError(err, i18n.t('chat.messageActions.retrySendFailed'))); + toast.error( + formatMobileKiloChatError(err, i18n.t('chat.messageActions.retrySendFailed')) + ); }, } ); @@ -151,7 +153,7 @@ export function useConversationMessageController({ setRemovedEditAttachmentIds([]); void Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success); } catch (error) { - toast.error(formatKiloChatError(error, i18n.t('chat.messageActions.editFailed'))); + toast.error(formatMobileKiloChatError(error, i18n.t('chat.messageActions.editFailed'))); } return; } diff --git a/apps/mobile/src/components/kilo-chat/hooks/use-conversations.ts b/apps/mobile/src/components/kilo-chat/hooks/use-conversations.ts index 079faaf202..5a43611571 100644 --- a/apps/mobile/src/components/kilo-chat/hooks/use-conversations.ts +++ b/apps/mobile/src/components/kilo-chat/hooks/use-conversations.ts @@ -1,4 +1,4 @@ -import { formatKiloChatError, type KiloChatClient } from '@kilocode/kilo-chat'; +import { type KiloChatClient } from '@kilocode/kilo-chat'; import { useConversationDetail, useConversations, @@ -10,12 +10,14 @@ import { toast } from 'sonner-native'; import { i18n } from '@/i18n'; +import { formatMobileKiloChatError } from '../kilo-chat-error'; + export { useConversations, useConversationDetail }; export function useCreateConversation(client: KiloChatClient) { return useSharedCreateConversation(client, { onError: err => { - toast.error(formatKiloChatError(err, i18n.t('chat.conversation.createFailed'))); + toast.error(formatMobileKiloChatError(err, i18n.t('chat.conversation.createFailed'))); }, }); } @@ -29,7 +31,7 @@ export function useRenameConversation(client: KiloChatClient) { export function useLeaveConversation(client: KiloChatClient) { return useSharedLeaveConversation(client, { onError: err => { - toast.error(formatKiloChatError(err, i18n.t('chat.conversation.leaveFailed'))); + toast.error(formatMobileKiloChatError(err, i18n.t('chat.conversation.leaveFailed'))); }, }); } diff --git a/apps/mobile/src/components/kilo-chat/hooks/use-messages.ts b/apps/mobile/src/components/kilo-chat/hooks/use-messages.ts index 1c99950529..9b3f48a008 100644 --- a/apps/mobile/src/components/kilo-chat/hooks/use-messages.ts +++ b/apps/mobile/src/components/kilo-chat/hooks/use-messages.ts @@ -1,4 +1,4 @@ -import { formatKiloChatError, type KiloChatClient } from '@kilocode/kilo-chat'; +import { type KiloChatClient } from '@kilocode/kilo-chat'; import { useMessageCacheUpdater, useMessages, @@ -8,6 +8,8 @@ import { toast } from 'sonner-native'; import { i18n } from '@/i18n'; +import { formatMobileKiloChatError } from '../kilo-chat-error'; + export { useMessages, useMessageCacheUpdater }; export function useSendMessage( @@ -17,7 +19,7 @@ export function useSendMessage( ) { return useSharedSendMessage(client, conversationId, currentUserId, { onError: err => { - toast.error(formatKiloChatError(err, i18n.t('chat.messageActions.sendFailed'))); + toast.error(formatMobileKiloChatError(err, i18n.t('chat.messageActions.sendFailed'))); }, }); } diff --git a/apps/mobile/src/components/kilo-chat/kilo-chat-error.ts b/apps/mobile/src/components/kilo-chat/kilo-chat-error.ts new file mode 100644 index 0000000000..5ef362507c --- /dev/null +++ b/apps/mobile/src/components/kilo-chat/kilo-chat-error.ts @@ -0,0 +1,32 @@ +import { classifyKiloChatError } from '@kilocode/kilo-chat'; + +import { i18n } from '@/i18n'; +import { formatNumber } from '@/lib/format'; + +// Copy is chosen from the stable classifier kind. Web still reads the shared +// English strings in packages/kilo-chat, so mobile maps each kind to a catalog +// key and translates at toast time. The map holds keys, never English. +const ERROR_KEY_BY_KIND = { + 'not-allowed': 'chat.errors.notAllowed', + 'message-too-long': 'chat.errors.messageTooLong', + 'title-too-long': 'chat.errors.titleTooLong', + 'message-empty': 'chat.errors.messageEmpty', +} satisfies Record; + +export function formatMobileKiloChatError(err: unknown, fallback: string): string { + const kind = classifyKiloChatError(err); + if (kind.kind === 'not-allowed' || kind.kind === 'message-empty') { + return i18n.t(ERROR_KEY_BY_KIND[kind.kind]); + } + if (kind.kind === 'message-too-long' || kind.kind === 'title-too-long') { + return i18n.t(ERROR_KEY_BY_KIND[kind.kind], { + limit: formatNumber(kind.limit, i18n.language), + }); + } + if (kind.kind === 'server') { + // The server phrased this one; showing the caller's fallback instead would + // drop what actually went wrong. + return kind.message; + } + return fallback; +} diff --git a/apps/mobile/src/components/kilo-chat/message-presentation.ts b/apps/mobile/src/components/kilo-chat/message-presentation.ts index 683928996d..50202518e9 100644 --- a/apps/mobile/src/components/kilo-chat/message-presentation.ts +++ b/apps/mobile/src/components/kilo-chat/message-presentation.ts @@ -1,6 +1,6 @@ import { type AttachmentBlock, - contentBlocksPreviewText, + contentBlocksAttachmentPreviewLabels, contentBlocksToText, type ConversationDetailResponse, type CreateMessageRequest, @@ -67,7 +67,25 @@ export function getReplyPreviewText(replyToMessage: ReplyPreviewSource): string if ('previewText' in replyToMessage) { return replyToMessage.previewText ?? i18n.t('chat.messageBubble.message'); } - return contentBlocksPreviewText(replyToMessage.content) || i18n.t('chat.messageBubble.message'); + const text = contentBlocksToText(replyToMessage.content).trim(); + if (text) { + return text; + } + const labels = contentBlocksAttachmentPreviewLabels(replyToMessage.content); + if (labels.length === 0) { + return i18n.t('chat.messageBubble.message'); + } + return labels + .map(label => { + if (label.kind === 'filename') { + return label.filename; + } + if (label.kind === 'image') { + return i18n.t('chat.messageBubble.image'); + } + return i18n.t('chat.messageBubble.attachment'); + }) + .join(', '); } export function getDeliveryFailureLabel(message: Message): string | null { diff --git a/apps/mobile/src/components/pr-review/discussion/reply-input.tsx b/apps/mobile/src/components/pr-review/discussion/reply-input.tsx index cedc59b29f..06c5bb8a1d 100644 --- a/apps/mobile/src/components/pr-review/discussion/reply-input.tsx +++ b/apps/mobile/src/components/pr-review/discussion/reply-input.tsx @@ -21,10 +21,7 @@ import { useDraftFlushOnBackground } from '@/lib/persist/use-draft-flush'; import { useFencedDraftLoad } from '@/lib/persist/use-draft-load'; import { classifyPrReviewMutationError } from '@/lib/pr-review/classify-pr-review-query-state'; import { type useReplyToCommentMutation } from '@/lib/pr-review/discussion/use-review-discussion-mutations'; -import { - isPrOperationPersistenceFailed, - PR_OPERATION_PERSISTENCE_FAILED_MESSAGE, -} from '@/lib/pr-review/merge/pr-operation-ledger'; +import { isPrOperationPersistenceFailed } from '@/lib/pr-review/merge/pr-operation-ledger'; import { trpcClient } from '@/lib/trpc'; /** @@ -182,7 +179,7 @@ export function ReplyInput({ owner, repo, number, commentId, reply }: Readonly= 500) return fallback; + if (err.status === 401 || err.status === 403) return { kind: 'not-allowed' }; + if (err.status >= 500) return { kind: 'fallback' }; const body = err.body; - if (!body || typeof body !== 'object') return fallback; + if (!body || typeof body !== 'object') return { kind: 'fallback' }; const issues = (body as { issues?: unknown }).issues; if (Array.isArray(issues) && issues.length > 0) { - const phrased = phraseIssue(issues[0] as core.$ZodIssue); - if (phrased) return phrased; + const classified = classifyIssue(issues[0] as core.$ZodIssue); + if (classified) return classified; } const serverError = (body as { error?: unknown }).error; - if (typeof serverError === 'string' && serverError.length > 0) return serverError; + if (typeof serverError === 'string' && serverError.length > 0) { + return { kind: 'server', message: serverError }; + } - return fallback; + return { kind: 'fallback' }; +} + +/** + * Derive the English string web reads today. Built from the classifier so the + * two stay in lockstep; the output is byte-for-byte what web rendered before. + */ +export function formatKiloChatError(err: unknown, fallback: string): string { + const kind = classifyKiloChatError(err); + switch (kind.kind) { + case 'not-allowed': + return 'Not allowed'; + case 'message-too-long': + return `Message is too long — keep it under ${kind.limit.toLocaleString('en-US')} characters`; + case 'title-too-long': + return `Title is too long — keep it under ${kind.limit} characters`; + case 'message-empty': + return "Message can't be empty"; + case 'server': + return kind.message; + case 'fallback': + return fallback; + } } -function phraseIssue(issue: core.$ZodIssue): string | null { +function classifyIssue(issue: core.$ZodIssue): KiloChatErrorKind | null { const path = issue.path; const onTextContent = path[0] === 'content' && typeof path[1] === 'number' && path[2] === 'text'; const onTitle = path[0] === 'title'; @@ -52,16 +91,20 @@ function phraseIssue(issue: core.$ZodIssue): string | null { if (issue.code === 'too_big') { const max = Number(issue.maximum); if (onTextContent) { - const limit = Number.isFinite(max) ? max : MESSAGE_TEXT_MAX_CHARS; - return `Message is too long — keep it under ${limit.toLocaleString('en-US')} characters`; + return { + kind: 'message-too-long', + limit: Number.isFinite(max) ? max : MESSAGE_TEXT_MAX_CHARS, + }; } if (onTitle) { - const limit = Number.isFinite(max) ? max : CONVERSATION_TITLE_MAX_CHARS; - return `Title is too long — keep it under ${limit} characters`; + return { + kind: 'title-too-long', + limit: Number.isFinite(max) ? max : CONVERSATION_TITLE_MAX_CHARS, + }; } } if (issue.code === 'too_small' && onTextContent) { - return "Message can't be empty"; + return { kind: 'message-empty' }; } return null; } diff --git a/packages/kilo-chat/src/index.ts b/packages/kilo-chat/src/index.ts index f28b7466d8..87fd1f38e3 100644 --- a/packages/kilo-chat/src/index.ts +++ b/packages/kilo-chat/src/index.ts @@ -1,9 +1,16 @@ export { KiloChatClient } from './client'; -export { KiloChatApiError, formatKiloChatError } from './errors'; +export { + KiloChatApiError, + classifyKiloChatError, + formatKiloChatError, + type KiloChatErrorKind, +} from './errors'; export { ulidToTimestamp, contentBlocksToText, contentBlocksPreviewText, + contentBlocksAttachmentPreviewLabels, + type AttachmentPreviewLabel, buildReplyToMessageSnapshot, formatFileSize, remainingEditableAttachments, diff --git a/packages/kilo-chat/src/utils.ts b/packages/kilo-chat/src/utils.ts index ee4e47b719..667e7d2d74 100644 --- a/packages/kilo-chat/src/utils.ts +++ b/packages/kilo-chat/src/utils.ts @@ -116,6 +116,32 @@ export function contentBlocksToText(content: Array<{ type: string; text?: string type PreviewBlock = { type: string; text?: string; filename?: string; mimeType?: string }; +/** + * Structured label for one attachment in a preview: its filename when present, + * or a stable fallback code for a nameless attachment. Mobile maps the + * `image`/`attachment` codes to catalog keys; web keeps the English strings + * `contentBlocksPreviewText` returns. + */ +export type AttachmentPreviewLabel = + | { kind: 'filename'; filename: string } + | { kind: 'image' } + | { kind: 'attachment' }; + +export function contentBlocksAttachmentPreviewLabels( + content: Array +): AttachmentPreviewLabel[] { + return content + .filter( + (b): b is { type: 'attachment'; filename?: string; mimeType?: string } => + b.type === 'attachment' + ) + .map(a => + a.filename + ? { kind: 'filename', filename: a.filename } + : { kind: a.mimeType?.startsWith('image/') ? 'image' : 'attachment' } + ); +} + /** * Short, human-readable single-line preview of a message's content blocks. * Falls back to attachment filenames (or a mime-typed descriptor) when no @@ -125,13 +151,19 @@ type PreviewBlock = { type: string; text?: string; filename?: string; mimeType?: export function contentBlocksPreviewText(content: Array): string { const text = contentBlocksToText(content).trim(); if (text) return text; - const attachments = content.filter( - (b): b is { type: 'attachment'; filename?: string; mimeType?: string } => - b.type === 'attachment' - ); - if (attachments.length === 0) return ''; - return attachments - .map(a => a.filename || (a.mimeType?.startsWith('image/') ? 'Image' : 'Attachment')) + const labels = contentBlocksAttachmentPreviewLabels(content); + if (labels.length === 0) return ''; + return labels + .map(label => { + switch (label.kind) { + case 'filename': + return label.filename; + case 'image': + return 'Image'; + case 'attachment': + return 'Attachment'; + } + }) .join(', '); } From f782bccc43e599000046bff03b5efeb56ea6f278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 21:04:33 +0200 Subject: [PATCH 13/14] fix(mobile): render the translated word, not the catalog key Six places passed a catalog key where the copy belonged, so the user read `securityAgent.analysisMode.automatic` instead of `Automatic`. The Code Reviewer option lists render `labels[option]` verbatim, and the Security Agent badges and rows rendered the lookup result directly. Fixed the analysis mode row, the gate and style option lists, the dismissal reason, and both remediation status badges. Reported by Kilo Code review on PR 5478. --- .../[scope]/[platform]/(edit)/gate.tsx | 8 ++++---- .../[scope]/[platform]/(edit)/style.tsx | 8 ++++---- .../security-agent/finding-details-panel.tsx | 3 ++- .../finding-remediation-panel.tsx | 18 ++++++++++++------ .../settings-overview-screen.tsx | 3 ++- 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/gate.tsx b/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/gate.tsx index d1ffae95ba..a5e820825b 100644 --- a/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/gate.tsx +++ b/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/gate.tsx @@ -11,10 +11,10 @@ export default function GateThresholdRoute() { const save = useSaveReviewConfig(scope, platform); const { t } = useTranslation(); const labels = { - off: 'codeReviewer.gateThreshold.off', - all: 'codeReviewer.gateThreshold.all', - warning: 'codeReviewer.gateThreshold.warning', - critical: 'codeReviewer.gateThreshold.critical', + off: t('codeReviewer.gateThreshold.off'), + all: t('codeReviewer.gateThreshold.all'), + warning: t('codeReviewer.gateThreshold.warning'), + critical: t('codeReviewer.gateThreshold.critical'), } as const; const descriptions = { off: t('codeReviewer.gate.off'), diff --git a/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/style.tsx b/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/style.tsx index eb276c9fea..4a9c9d9a47 100644 --- a/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/style.tsx +++ b/apps/mobile/src/app/(app)/(tabs)/(3_profile)/code-reviewer/[scope]/[platform]/(edit)/style.tsx @@ -11,10 +11,10 @@ export default function ReviewStyleRoute() { const save = useSaveReviewConfig(scope, platform); const { t } = useTranslation(); const labels = { - strict: 'codeReviewer.reviewStyle.strict', - balanced: 'codeReviewer.reviewStyle.balanced', - lenient: 'codeReviewer.reviewStyle.lenient', - roast: 'codeReviewer.reviewStyle.roast', + strict: t('codeReviewer.reviewStyle.strict'), + balanced: t('codeReviewer.reviewStyle.balanced'), + lenient: t('codeReviewer.reviewStyle.lenient'), + roast: t('codeReviewer.reviewStyle.roast'), } as const; const descriptions = { strict: t('codeReviewer.style.strict'), diff --git a/apps/mobile/src/components/security-agent/finding-details-panel.tsx b/apps/mobile/src/components/security-agent/finding-details-panel.tsx index 971b720358..76424ec6e7 100644 --- a/apps/mobile/src/components/security-agent/finding-details-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-details-panel.tsx @@ -62,7 +62,8 @@ function getDismissalReasonLabel(reason: string | null): string { if (!reason) { return i18n.t('securityAgent.findingDetails.reasonAfterReview'); } - return lookup(DISMISSAL_REASON_KEYS, reason) ?? reason.replaceAll('_', ' '); + const key = lookup(DISMISSAL_REASON_KEYS, reason); + return key ? i18n.t(key) : reason.replaceAll('_', ' '); } function getFindingSourceLabel(source: string): string { diff --git a/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx b/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx index bcd0a99c86..8e82bfd1e3 100644 --- a/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx +++ b/apps/mobile/src/components/security-agent/finding-remediation-panel.tsx @@ -267,9 +267,11 @@ export function FindingRemediationPanel({ remediationSummary?.status ?? null, summaryStatusOptions ); - const statusLabel = - getRemediationStatusKey(remediationSummary?.status ?? null, summaryStatusOptions) ?? - presentation.label; + const statusKey = getRemediationStatusKey( + remediationSummary?.status ?? null, + summaryStatusOptions + ); + const statusLabel = statusKey ? t(statusKey) : presentation.label; const blockerKey = !remediationCapability.canStart ? getRemediationUnavailableKey(remediationCapability.startReason) : null; @@ -428,9 +430,13 @@ export function FindingRemediationPanel({ attempt.status, attemptStatusOptions ); - const attemptStatusLabel = - getRemediationStatusKey(attempt.status, attemptStatusOptions) ?? - attemptPresentation.label; + const attemptStatusKey = getRemediationStatusKey( + attempt.status, + attemptStatusOptions + ); + const attemptStatusLabel = attemptStatusKey + ? t(attemptStatusKey) + : attemptPresentation.label; const originKey = lookup(REMEDIATION_ORIGIN_KEYS, attempt.origin); const validation = attempt.validationEvidence?.map((record, index) => diff --git a/apps/mobile/src/components/security-agent/settings-overview-screen.tsx b/apps/mobile/src/components/security-agent/settings-overview-screen.tsx index f5b93bd6ca..144f7fbfce 100644 --- a/apps/mobile/src/components/security-agent/settings-overview-screen.tsx +++ b/apps/mobile/src/components/security-agent/settings-overview-screen.tsx @@ -152,7 +152,8 @@ export function SettingsOverviewScreen({ data.newFindingNotificationsEnabled, data.slaNotificationsEnabled, ].filter(Boolean).length; - const analysisModeLabel = lookup(ANALYSIS_MODE_KEYS, data.analysisMode) ?? data.analysisMode; + const analysisModeKey = lookup(ANALYSIS_MODE_KEYS, data.analysisMode); + const analysisModeLabel = analysisModeKey ? t(analysisModeKey) : data.analysisMode; const handleToggle = (value: boolean) => { void Haptics.selectionAsync(); From 13f4b7176d0466beefd2a54aa786b98b1e1a2fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Igor=20=C5=A0=C4=87eki=C4=87?= Date: Tue, 25 Aug 2026 21:35:13 +0200 Subject: [PATCH 14/14] fix(mobile): translate the snapshot status and remote-exit errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The agent-chat working indicator and the child-session cards showed "Initializing snapshot…" in English while a CLI snapshot started. The literal stays pinned so it still matches the CLI's own typography; only the text the user reads comes from the catalog now. The three remote-session exit errors were toasted verbatim. They are a pinned producer/consumer contract with the SDK, so they are still matched in English and only the shown copy is translated. The dev-only StoreKit refund toasts stay English on purpose: the button is gated behind __DEV__, so no production reader can reach them. Four new keys, translated into all 87 catalogs. --- .../src/components/agents/compute-status.ts | 2 +- .../exit-remote-session-with-feedback.ts | 21 +++++++++++++++++-- apps/mobile/src/i18n/locales/af.json | 8 +++++-- apps/mobile/src/i18n/locales/am.json | 8 +++++-- apps/mobile/src/i18n/locales/ar.json | 8 +++++-- apps/mobile/src/i18n/locales/az.json | 8 +++++-- apps/mobile/src/i18n/locales/be.json | 8 +++++-- apps/mobile/src/i18n/locales/bg.json | 8 +++++-- apps/mobile/src/i18n/locales/bn.json | 8 +++++-- apps/mobile/src/i18n/locales/bs.json | 8 +++++-- apps/mobile/src/i18n/locales/ca.json | 8 +++++-- apps/mobile/src/i18n/locales/ckb.json | 8 +++++-- apps/mobile/src/i18n/locales/cs.json | 8 +++++-- apps/mobile/src/i18n/locales/cy.json | 8 +++++-- apps/mobile/src/i18n/locales/da.json | 8 +++++-- apps/mobile/src/i18n/locales/de.json | 8 +++++-- apps/mobile/src/i18n/locales/el.json | 8 +++++-- apps/mobile/src/i18n/locales/en.json | 8 +++++-- apps/mobile/src/i18n/locales/es.json | 8 +++++-- apps/mobile/src/i18n/locales/et.json | 8 +++++-- apps/mobile/src/i18n/locales/eu.json | 8 +++++-- apps/mobile/src/i18n/locales/fa.json | 8 +++++-- apps/mobile/src/i18n/locales/fi.json | 8 +++++-- apps/mobile/src/i18n/locales/fil.json | 8 +++++-- apps/mobile/src/i18n/locales/fr.json | 8 +++++-- apps/mobile/src/i18n/locales/ga.json | 8 +++++-- apps/mobile/src/i18n/locales/gl.json | 8 +++++-- apps/mobile/src/i18n/locales/gu.json | 8 +++++-- apps/mobile/src/i18n/locales/ha.json | 8 +++++-- apps/mobile/src/i18n/locales/he.json | 8 +++++-- apps/mobile/src/i18n/locales/hi.json | 8 +++++-- apps/mobile/src/i18n/locales/hr.json | 8 +++++-- apps/mobile/src/i18n/locales/ht.json | 8 +++++-- apps/mobile/src/i18n/locales/hu.json | 8 +++++-- apps/mobile/src/i18n/locales/hy.json | 8 +++++-- apps/mobile/src/i18n/locales/id.json | 8 +++++-- apps/mobile/src/i18n/locales/ig.json | 8 +++++-- apps/mobile/src/i18n/locales/is.json | 8 +++++-- apps/mobile/src/i18n/locales/it.json | 8 +++++-- apps/mobile/src/i18n/locales/ja.json | 8 +++++-- apps/mobile/src/i18n/locales/ka.json | 8 +++++-- apps/mobile/src/i18n/locales/kk.json | 8 +++++-- apps/mobile/src/i18n/locales/km.json | 8 +++++-- apps/mobile/src/i18n/locales/kn.json | 8 +++++-- apps/mobile/src/i18n/locales/ko.json | 8 +++++-- apps/mobile/src/i18n/locales/lo.json | 8 +++++-- apps/mobile/src/i18n/locales/lt.json | 8 +++++-- apps/mobile/src/i18n/locales/lv.json | 8 +++++-- apps/mobile/src/i18n/locales/mg.json | 8 +++++-- apps/mobile/src/i18n/locales/mi.json | 8 +++++-- apps/mobile/src/i18n/locales/mk.json | 8 +++++-- apps/mobile/src/i18n/locales/ml.json | 8 +++++-- apps/mobile/src/i18n/locales/mn.json | 8 +++++-- apps/mobile/src/i18n/locales/mr.json | 8 +++++-- apps/mobile/src/i18n/locales/ms.json | 8 +++++-- apps/mobile/src/i18n/locales/mt.json | 8 +++++-- apps/mobile/src/i18n/locales/my.json | 8 +++++-- apps/mobile/src/i18n/locales/nb.json | 8 +++++-- apps/mobile/src/i18n/locales/ne.json | 8 +++++-- apps/mobile/src/i18n/locales/nl.json | 8 +++++-- apps/mobile/src/i18n/locales/om.json | 8 +++++-- apps/mobile/src/i18n/locales/or.json | 8 +++++-- apps/mobile/src/i18n/locales/pa.json | 8 +++++-- apps/mobile/src/i18n/locales/pl.json | 8 +++++-- apps/mobile/src/i18n/locales/ps.json | 8 +++++-- apps/mobile/src/i18n/locales/pt-BR.json | 8 +++++-- apps/mobile/src/i18n/locales/pt.json | 8 +++++-- apps/mobile/src/i18n/locales/ro.json | 8 +++++-- apps/mobile/src/i18n/locales/ru.json | 8 +++++-- apps/mobile/src/i18n/locales/si.json | 8 +++++-- apps/mobile/src/i18n/locales/sk.json | 8 +++++-- apps/mobile/src/i18n/locales/sl.json | 8 +++++-- apps/mobile/src/i18n/locales/so.json | 8 +++++-- apps/mobile/src/i18n/locales/sq.json | 8 +++++-- apps/mobile/src/i18n/locales/sr.json | 8 +++++-- apps/mobile/src/i18n/locales/sv.json | 8 +++++-- apps/mobile/src/i18n/locales/sw.json | 8 +++++-- apps/mobile/src/i18n/locales/ta.json | 8 +++++-- apps/mobile/src/i18n/locales/te.json | 8 +++++-- apps/mobile/src/i18n/locales/th.json | 8 +++++-- apps/mobile/src/i18n/locales/tr.json | 8 +++++-- apps/mobile/src/i18n/locales/uk.json | 8 +++++-- apps/mobile/src/i18n/locales/ur.json | 8 +++++-- apps/mobile/src/i18n/locales/uz.json | 8 +++++-- apps/mobile/src/i18n/locales/vi.json | 8 +++++-- apps/mobile/src/i18n/locales/yo.json | 8 +++++-- apps/mobile/src/i18n/locales/zh-Hans.json | 8 +++++-- apps/mobile/src/i18n/locales/zh-Hant.json | 8 +++++-- apps/mobile/src/i18n/locales/zu.json | 8 +++++-- 89 files changed, 542 insertions(+), 177 deletions(-) diff --git a/apps/mobile/src/components/agents/compute-status.ts b/apps/mobile/src/components/agents/compute-status.ts index c6fc2a45fa..befbfb5d91 100644 --- a/apps/mobile/src/components/agents/compute-status.ts +++ b/apps/mobile/src/components/agents/compute-status.ts @@ -35,7 +35,7 @@ export function computeStatus(part: Part): string { } if (part.type === 'text') { if (isSnapshotProgressPart(part)) { - return SNAPSHOT_PROGRESS_STATUS; + return i18n.t('agentChat.computeStatus.initializingSnapshot'); } return i18n.t('agentChat.computeStatus.writingResponse'); } diff --git a/apps/mobile/src/components/agents/exit-remote-session-with-feedback.ts b/apps/mobile/src/components/agents/exit-remote-session-with-feedback.ts index dd6fa832ad..0c3bff670e 100644 --- a/apps/mobile/src/components/agents/exit-remote-session-with-feedback.ts +++ b/apps/mobile/src/components/agents/exit-remote-session-with-feedback.ts @@ -53,6 +53,20 @@ const NON_RETRYABLE_EXIT_MESSAGES: ReadonlySet = new Set([ REMOTE_SESSION_EXIT_UNAVAILABLE_MESSAGE, ]); +/** Catalog copy for a pinned SDK exit message, or null when it is not one. */ +function exitErrorCopy(message: string): string | null { + if (message === REMOTE_SESSION_EXIT_NOT_SUPPORTED_MESSAGE) { + return i18n.t('agentChat.remoteSession.exitNotSupported'); + } + if (message === REMOTE_SESSION_EXIT_UNAVAILABLE_MESSAGE) { + return i18n.t('agentChat.remoteSession.exitUnavailable'); + } + if (message.startsWith(REMOTE_SESSION_EXIT_UPGRADE_PREFIX)) { + return i18n.t('agentChat.remoteSession.exitNeedsNewerCli'); + } + return null; +} + function isNonRetryableExitError(message: string): boolean { if (NON_RETRYABLE_EXIT_MESSAGES.has(message)) { return true; @@ -76,16 +90,19 @@ export async function exitRemoteSessionWithFeedback({ } catch (error) { const message = error instanceof Error ? error.message : i18n.t('agentChat.remoteSession.failedToExit'); + // The three pinned SDK messages are a producer/consumer contract, matched + // above in English. Once matched, show the reader their own language. + const shown = exitErrorCopy(message) ?? message; if (isNonRetryableExitError(message)) { // Fail-closed: the SDK already signalled "do not send" by rejecting // before any wire command. Surface the message with no CTA so the // user sees the upgrade copy but cannot trigger another attempt. - toast.error(message); + toast.error(shown); } else { // Retryable: transport / ACK / heartbeat failure. The draft is // preserved by the submit-lock contract; the retry action re-runs // the exit mutation under the same SubmitLock the initial send held. - toast.error(message, { + toast.error(shown, { action: { label: i18n.t('common.tryAgain'), onClick: () => { diff --git a/apps/mobile/src/i18n/locales/af.json b/apps/mobile/src/i18n/locales/af.json index bf8ef92cee..179eb5574f 100644 --- a/apps/mobile/src/i18n/locales/af.json +++ b/apps/mobile/src/i18n/locales/af.json @@ -2129,7 +2129,10 @@ "exitMessage": "Dit stop die lopende sessie maar hou sy geskiedenis.", "keepSessionRunning": "Hou sessie aan die loop", "exitSession": "Sluit sessie", - "restartExitFailed": "'n Nuwe sessie begin. Die vorige sessie is steeds oop." + "restartExitFailed": "'n Nuwe sessie begin. Die vorige sessie is steeds oop.", + "exitNotSupported": "Om 'n afgeleë sessie te verlaat, word nie vir die huidige sessie ondersteun nie", + "exitUnavailable": "Om 'n afgeleë sessie te verlaat, is nie vir die huidige sessie beskikbaar nie", + "exitNeedsNewerCli": "Afgeleë skuinsstreep-opdragte vereis 'n nuwer Kilo CLI. Dateer Kilo CLI op en maak weer verbinding." }, "sessionConnection": { "connecting": "Koppel…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Delegeer werk", "askingQuestion": "Vra 'n vraag", "consideringNextSteps": "Oorweeg volgende stappe", - "writingResponse": "Skryf antwoord" + "writingResponse": "Skryf antwoord", + "initializingSnapshot": "Inisialiseer momentopname…" }, "slashCommands": { "startNewSession": "Begin 'n nuwe sessie", diff --git a/apps/mobile/src/i18n/locales/am.json b/apps/mobile/src/i18n/locales/am.json index f56b9b41eb..1f3a1d7709 100644 --- a/apps/mobile/src/i18n/locales/am.json +++ b/apps/mobile/src/i18n/locales/am.json @@ -2129,7 +2129,10 @@ "exitMessage": "ይህ በሂደት ላይ ያለውን ክፍለ ጊዜ ያቆማል ግን ታሪኩን ይይዛል።", "keepSessionRunning": "ክፍለ ጊዜውን በስራ ላይ ያቆዩ", "exitSession": "ከክፍለ ጊዜው ውጣ", - "restartExitFailed": "አዲስ ክፍለ ጊዜ ተጀምሯል። የቀድሞው ክፍለ ጊዜ አሁንም ክፍት ነው።" + "restartExitFailed": "አዲስ ክፍለ ጊዜ ተጀምሯል። የቀድሞው ክፍለ ጊዜ አሁንም ክፍት ነው።", + "exitNotSupported": "የርቀት ክፍለ ጊዜ መውጣት ለአሁኑ ክፍለ ጊዜ አይደገፍም", + "exitUnavailable": "የርቀት ክፍለ ጊዜ መውጣት ለአሁኑ ክፍለ ጊዜ አይገኝም", + "exitNeedsNewerCli": "የርቀት ስላሽ ትዕዛዞች የበለጠ አዲስ Kilo CLI ይጠይቃሉ። Kilo CLIን ያዘምኑ እና እንደገና ይገናኙ።" }, "sessionConnection": { "connecting": "በማገናኘት ላይ…", @@ -2559,7 +2562,8 @@ "delegatingWork": "ሥራን በመላክ ላይ", "askingQuestion": "ጥያቄ በመጠየቅ ላይ", "consideringNextSteps": "ቀጣይ እርምጃዎችን እያሰበ ላይ", - "writingResponse": "ምላሽ በመጻፍ ላይ" + "writingResponse": "ምላሽ በመጻፍ ላይ", + "initializingSnapshot": "ቅጽበታዊ ገጽታን በማስጀመር ላይ…" }, "slashCommands": { "startNewSession": "አዲስ ክፍለ-ጊዜ ይጀምሩ", diff --git a/apps/mobile/src/i18n/locales/ar.json b/apps/mobile/src/i18n/locales/ar.json index 4f68e7a621..0fdea59424 100644 --- a/apps/mobile/src/i18n/locales/ar.json +++ b/apps/mobile/src/i18n/locales/ar.json @@ -1707,7 +1707,10 @@ "exitMessage": "يؤدي هذا إلى إيقاف الجلسة الجارية مع الاحتفاظ بسجلها.", "keepSessionRunning": "إبقاء الجلسة قيد التشغيل", "exitSession": "الخروج من الجلسة", - "restartExitFailed": "بدأت جلسة جديدة. الجلسة السابقة ما تزال مفتوحة." + "restartExitFailed": "بدأت جلسة جديدة. الجلسة السابقة ما تزال مفتوحة.", + "exitNotSupported": "الخروج من الجلسة البعيدة غير مدعوم للجلسة الحالية", + "exitUnavailable": "الخروج من الجلسة البعيدة غير متاح للجلسة الحالية", + "exitNeedsNewerCli": "تتطلب أوامر الشرطة المائلة عن بُعد إصدارًا أحدث من Kilo CLI. حدّث Kilo CLI وأعد الاتصال." }, "sessionConnection": { "connecting": "جارٍ الاتصال…", @@ -2153,7 +2156,8 @@ "delegatingWork": "جارٍ تفويض العمل", "askingQuestion": "جارٍ طرح سؤال", "consideringNextSteps": "جارٍ النظر في الخطوات التالية", - "writingResponse": "جارٍ كتابة الرد" + "writingResponse": "جارٍ كتابة الرد", + "initializingSnapshot": "جارٍ تهيئة اللقطة…" }, "slashCommands": { "startNewSession": "بدء جلسة جديدة", diff --git a/apps/mobile/src/i18n/locales/az.json b/apps/mobile/src/i18n/locales/az.json index ef3d3a8b59..2a098b38f8 100644 --- a/apps/mobile/src/i18n/locales/az.json +++ b/apps/mobile/src/i18n/locales/az.json @@ -2129,7 +2129,10 @@ "exitMessage": "Bu işləyən sessiyanı dayandırır, lakin tarixçəsini saxlayır.", "keepSessionRunning": "Sessiyanı işləməyə davam etdir", "exitSession": "Sessiyadan çıx", - "restartExitFailed": "Yeni sessiya başladıldı. Əvvəlki sessiya hələ də açıqdır." + "restartExitFailed": "Yeni sessiya başladıldı. Əvvəlki sessiya hələ də açıqdır.", + "exitNotSupported": "Uzaq sessiyadan çıxış cari sessiya üçün dəstəklənmir", + "exitUnavailable": "Uzaq sessiyadan çıxış cari sessiya üçün mövcud deyil", + "exitNeedsNewerCli": "Uzaq slash əmrləri daha yeni Kilo CLI tələb edir. Kilo CLI-ni yeniləyin və yenidən qoşulun." }, "sessionConnection": { "connecting": "Qoşulur…", @@ -2559,7 +2562,8 @@ "delegatingWork": "İş ötürülür", "askingQuestion": "Sual verilir", "consideringNextSteps": "Növbəti addımlar nəzərdən keçirilir", - "writingResponse": "Cavab yazılır" + "writingResponse": "Cavab yazılır", + "initializingSnapshot": "Anlıq görüntü işə salınır…" }, "slashCommands": { "startNewSession": "Yeni sessiyaya başla", diff --git a/apps/mobile/src/i18n/locales/be.json b/apps/mobile/src/i18n/locales/be.json index 69608ce7f1..682d9f8275 100644 --- a/apps/mobile/src/i18n/locales/be.json +++ b/apps/mobile/src/i18n/locales/be.json @@ -2159,7 +2159,10 @@ "exitMessage": "Гэта спыняе працуючы сеанс, але захоўвае яго гісторыю.", "keepSessionRunning": "Працягваць сеанс", "exitSession": "Выйсці з сеанса", - "restartExitFailed": "Пачаты новы сеанс. Папярэдні сеанс усё яшчэ адкрыты." + "restartExitFailed": "Пачаты новы сеанс. Папярэдні сеанс усё яшчэ адкрыты.", + "exitNotSupported": "Выхад з аддаленага сеанса не падтрымліваецца для бягучага сеанса", + "exitUnavailable": "Выхад з аддаленага сеанса недаступны для бягучага сеанса", + "exitNeedsNewerCli": "Аддаленыя слаш-каманды патрабуюць навейшага Kilo CLI. Абнавіце Kilo CLI і падключыцеся зноў." }, "sessionConnection": { "connecting": "Падключэнне…", @@ -2597,7 +2600,8 @@ "delegatingWork": "Перадача работы", "askingQuestion": "Заданне пытання", "consideringNextSteps": "Разгляд наступных крокаў", - "writingResponse": "Напісанне адказу" + "writingResponse": "Напісанне адказу", + "initializingSnapshot": "Ініцыялізацыя здымка…" }, "slashCommands": { "startNewSession": "Пачаць новы сеанс", diff --git a/apps/mobile/src/i18n/locales/bg.json b/apps/mobile/src/i18n/locales/bg.json index e233f014c6..7f41626925 100644 --- a/apps/mobile/src/i18n/locales/bg.json +++ b/apps/mobile/src/i18n/locales/bg.json @@ -2129,7 +2129,10 @@ "exitMessage": "Това спира текущата сесия, но запазва историята ѝ.", "keepSessionRunning": "Продължи сесията", "exitSession": "Прекрати сесията", - "restartExitFailed": "Започна нова сесия. Предишната сесия все още е отворена." + "restartExitFailed": "Започна нова сесия. Предишната сесия все още е отворена.", + "exitNotSupported": "Излизането от отдалечена сесия не се поддържа за текущата сесия", + "exitUnavailable": "Излизането от отдалечена сесия не е налично за текущата сесия", + "exitNeedsNewerCli": "Отдалечените команди със наклонена черта изискват по-нов Kilo CLI. Актуализирайте Kilo CLI и се свържете отново." }, "sessionConnection": { "connecting": "Свързване…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Възлагане на работа", "askingQuestion": "Задаване на въпрос", "consideringNextSteps": "Обмисляне на следващите стъпки", - "writingResponse": "Писане на отговор" + "writingResponse": "Писане на отговор", + "initializingSnapshot": "Инициализиране на моментна снимка…" }, "slashCommands": { "startNewSession": "Започнете нова сесия", diff --git a/apps/mobile/src/i18n/locales/bn.json b/apps/mobile/src/i18n/locales/bn.json index e7a36df1a5..08204183f5 100644 --- a/apps/mobile/src/i18n/locales/bn.json +++ b/apps/mobile/src/i18n/locales/bn.json @@ -2129,7 +2129,10 @@ "exitMessage": "এটি চলমান সেশনটি বন্ধ করে কিন্তু এর ইতিহাস রাখে।", "keepSessionRunning": "সেশন চলমান রাখুন", "exitSession": "সেশন শেষ করুন", - "restartExitFailed": "একটি নতুন সেশন শুরু হয়েছে। আগের সেশনটি এখনও খোলা আছে।" + "restartExitFailed": "একটি নতুন সেশন শুরু হয়েছে। আগের সেশনটি এখনও খোলা আছে।", + "exitNotSupported": "বর্তমান সেশনের জন্য দূরবর্তী সেশন থেকে প্রস্থান সমর্থিত নয়", + "exitUnavailable": "বর্তমান সেশনের জন্য দূরবর্তী সেশন থেকে প্রস্থান উপলব্ধ নয়", + "exitNeedsNewerCli": "দূরবর্তী স্ল্যাশ কমান্ডের জন্য একটি নতুন Kilo CLI প্রয়োজন। Kilo CLI আপডেট করুন এবং পুনরায় সংযোগ করুন।" }, "sessionConnection": { "connecting": "সংযোগ হচ্ছে…", @@ -2559,7 +2562,8 @@ "delegatingWork": "কাজ অর্পণ করছে", "askingQuestion": "একটি প্রশ্ন জিজ্ঞাসা করছে", "consideringNextSteps": "পরবর্তী পদক্ষেপ বিবেচনা করছে", - "writingResponse": "উত্তর লিখছে" + "writingResponse": "উত্তর লিখছে", + "initializingSnapshot": "স্ন্যাপশট প্রস্তুত করা হচ্ছে…" }, "slashCommands": { "startNewSession": "একটি নতুন সেশন শুরু করুন", diff --git a/apps/mobile/src/i18n/locales/bs.json b/apps/mobile/src/i18n/locales/bs.json index 7fea3f05e5..b1af1fd817 100644 --- a/apps/mobile/src/i18n/locales/bs.json +++ b/apps/mobile/src/i18n/locales/bs.json @@ -2144,7 +2144,10 @@ "exitMessage": "Ovo zaustavlja sesiju u tijeku, ali zadržava njezinu povijest.", "keepSessionRunning": "Nastavi sesiju izvoditi", "exitSession": "Izađi iz sesije", - "restartExitFailed": "Započeta je nova sesija. Prethodna sesija je još uvijek otvorena." + "restartExitFailed": "Započeta je nova sesija. Prethodna sesija je još uvijek otvorena.", + "exitNotSupported": "Izlazak iz daljinske sesije nije podržan za trenutnu sesiju", + "exitUnavailable": "Izlazak iz daljinske sesije nije dostupan za trenutnu sesiju", + "exitNeedsNewerCli": "Daljinske komande sa kosom crtom zahtijevaju noviji Kilo CLI. Ažurirajte Kilo CLI i ponovno se povežite." }, "sessionConnection": { "connecting": "Povezivanje…", @@ -2578,7 +2581,8 @@ "delegatingWork": "Delegiranje posla", "askingQuestion": "Postavljanje pitanja", "consideringNextSteps": "Razmatranje sljedećih koraka", - "writingResponse": "Pisanje odgovora" + "writingResponse": "Pisanje odgovora", + "initializingSnapshot": "Inicijalizacija snimke…" }, "slashCommands": { "startNewSession": "Započni novu sesiju", diff --git a/apps/mobile/src/i18n/locales/ca.json b/apps/mobile/src/i18n/locales/ca.json index 28e6b768cb..45ca358412 100644 --- a/apps/mobile/src/i18n/locales/ca.json +++ b/apps/mobile/src/i18n/locales/ca.json @@ -2144,7 +2144,10 @@ "exitMessage": "Això atura la sessió en execució però conserva el seu historial.", "keepSessionRunning": "Mantén la sessió en execució", "exitSession": "Finalitza la sessió", - "restartExitFailed": "S'ha iniciat una sessió nova. La sessió anterior encara està oberta." + "restartExitFailed": "S'ha iniciat una sessió nova. La sessió anterior encara està oberta.", + "exitNotSupported": "La sortida de la sessió remota no és compatible amb la sessió actual", + "exitUnavailable": "La sortida de la sessió remota no està disponible per a la sessió actual", + "exitNeedsNewerCli": "Les ordres de barra remotes requereixen una versió més nova del CLI de Kilo. Actualitzeu el CLI de Kilo i torneu-vos a connectar." }, "sessionConnection": { "connecting": "Connectant…", @@ -2578,7 +2581,8 @@ "delegatingWork": "Delegant feina", "askingQuestion": "Fent una pregunta", "consideringNextSteps": "Considerant els propers passos", - "writingResponse": "Escrivint la resposta" + "writingResponse": "Escrivint la resposta", + "initializingSnapshot": "Inicialitzant la instantània…" }, "slashCommands": { "startNewSession": "Inicia una nova sessió", diff --git a/apps/mobile/src/i18n/locales/ckb.json b/apps/mobile/src/i18n/locales/ckb.json index 1a8f35babf..a9f94bb7ce 100644 --- a/apps/mobile/src/i18n/locales/ckb.json +++ b/apps/mobile/src/i18n/locales/ckb.json @@ -2129,7 +2129,10 @@ "exitMessage": "ئەمە سێشنی ڕێکخراو دەوەستێنێت بەڵام مێژووەکەی دەپارێزێت.", "keepSessionRunning": "سێشن بەردەوام بە لە کار", "exitSession": "دەرچوون لە سێشن", - "restartExitFailed": "سێشنێکی نوێ دەستپێکرا. سێشنی پێشوو هێشتا کراوە." + "restartExitFailed": "سێشنێکی نوێ دەستپێکرا. سێشنی پێشوو هێشتا کراوە.", + "exitNotSupported": "دەرچوون لە سێشنی دوور بۆ سێشنی ئێستا پشتگیری ناکرێت", + "exitUnavailable": "دەرچوون لە سێشنی دوور بۆ سێشنی ئێستا بەردەست نییە", + "exitNeedsNewerCli": "فەرمانەکانی سلاشی دوور پێویستیان بە وەشانی نوێتری Kilo CLI هەیە. Kilo CLI نوێ بکەرەوە و دووبارە پەیوەندی بکەرەوە." }, "sessionConnection": { "connecting": "پەیوەندیکردن…", @@ -2559,7 +2562,8 @@ "delegatingWork": "سپاردنی کار", "askingQuestion": "پرسیار کردن", "consideringNextSteps": "بیرکردنەوە لە هەنگاوەکانی داهاتوو", - "writingResponse": "نووسینی وەڵام" + "writingResponse": "نووسینی وەڵام", + "initializingSnapshot": "دەستپێکردنی snapshot…" }, "slashCommands": { "startNewSession": "دەستپێکردنی دانیشتنێکی نوێ", diff --git a/apps/mobile/src/i18n/locales/cs.json b/apps/mobile/src/i18n/locales/cs.json index 7cf695927d..9d1353bec0 100644 --- a/apps/mobile/src/i18n/locales/cs.json +++ b/apps/mobile/src/i18n/locales/cs.json @@ -2159,7 +2159,10 @@ "exitMessage": "Tím se zastaví běžící relace, ale zachová se její historie.", "keepSessionRunning": "Nechat relaci běžet", "exitSession": "Ukončit relaci", - "restartExitFailed": "Byla spuštěna nová relace. Předchozí relace je stále otevřená." + "restartExitFailed": "Byla spuštěna nová relace. Předchozí relace je stále otevřená.", + "exitNotSupported": "Ukončení vzdálené relace není pro aktuální relaci podporováno", + "exitUnavailable": "Ukončení vzdálené relace není pro aktuální relaci k dispozici", + "exitNeedsNewerCli": "Slash příkazy pro vzdálenou relaci vyžadují novější Kilo CLI. Aktualizujte Kilo CLI a připojte se znovu." }, "sessionConnection": { "connecting": "Připojování…", @@ -2597,7 +2600,8 @@ "delegatingWork": "Předávání práce", "askingQuestion": "Položení otázky", "consideringNextSteps": "Zvažování dalších kroků", - "writingResponse": "Psaní odpovědi" + "writingResponse": "Psaní odpovědi", + "initializingSnapshot": "Inicializace snímku…" }, "slashCommands": { "startNewSession": "Zahájit novou relaci", diff --git a/apps/mobile/src/i18n/locales/cy.json b/apps/mobile/src/i18n/locales/cy.json index 26e763e288..ec08d0a88a 100644 --- a/apps/mobile/src/i18n/locales/cy.json +++ b/apps/mobile/src/i18n/locales/cy.json @@ -2189,7 +2189,10 @@ "exitMessage": "Mae hyn yn stopio'r sesiwn sy'n rhedeg ond yn cadw ei hanes.", "keepSessionRunning": "Parhau i gadw'r sesiwn yn rhedeg", "exitSession": "Gadael sesiwn", - "restartExitFailed": "Dechreuwyd sesiwn newydd. Mae'r sesiwn flaenorol yn dal ar agor." + "restartExitFailed": "Dechreuwyd sesiwn newydd. Mae'r sesiwn flaenorol yn dal ar agor.", + "exitNotSupported": "Nid yw gadael y sesiwn o bell yn cael ei gefnogi ar gyfer y sesiwn gyfredol", + "exitUnavailable": "Nid yw gadael y sesiwn o bell ar gael ar gyfer y sesiwn gyfredol", + "exitNeedsNewerCli": "Mae angen Kilo CLI mwy newydd ar orchmynion slaes o bell. Diweddarwch Kilo CLI ac ailgysylltwch." }, "sessionConnection": { "connecting": "Yn cysylltu…", @@ -2635,7 +2638,8 @@ "delegatingWork": "Dirprwyo gwaith", "askingQuestion": "Gofyn cwestiwn", "consideringNextSteps": "Ystyried y camau nesaf", - "writingResponse": "Ysgrifennu ymateb" + "writingResponse": "Ysgrifennu ymateb", + "initializingSnapshot": "Cychwyn ciplun…" }, "slashCommands": { "startNewSession": "Dechrau sesiwn newydd", diff --git a/apps/mobile/src/i18n/locales/da.json b/apps/mobile/src/i18n/locales/da.json index 4afe2adce1..610558c4a3 100644 --- a/apps/mobile/src/i18n/locales/da.json +++ b/apps/mobile/src/i18n/locales/da.json @@ -2129,7 +2129,10 @@ "exitMessage": "Dette stopper den kørende session, men bevarer dens historik.", "keepSessionRunning": "Hold sessionen kørende", "exitSession": "Afslut session", - "restartExitFailed": "Startede en ny session. Den tidligere session er stadig åben." + "restartExitFailed": "Startede en ny session. Den tidligere session er stadig åben.", + "exitNotSupported": "Afslutning af fjernsession understøttes ikke for den aktuelle session", + "exitUnavailable": "Afslutning af fjernsession er ikke tilgængelig for den aktuelle session", + "exitNeedsNewerCli": "Fjern-slash-kommandoer kræver en nyere Kilo CLI. Opdater Kilo CLI, og opret forbindelse igen." }, "sessionConnection": { "connecting": "Forbinder…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Delegerer arbejde", "askingQuestion": "Stiller et spørgsmål", "consideringNextSteps": "Overvejer næste trin", - "writingResponse": "Skriver svar" + "writingResponse": "Skriver svar", + "initializingSnapshot": "Initialiserer snapshot…" }, "slashCommands": { "startNewSession": "Start en ny session", diff --git a/apps/mobile/src/i18n/locales/de.json b/apps/mobile/src/i18n/locales/de.json index cf4f2b3852..20587c6f96 100644 --- a/apps/mobile/src/i18n/locales/de.json +++ b/apps/mobile/src/i18n/locales/de.json @@ -1675,7 +1675,10 @@ "exitMessage": "Dies stoppt die laufende Sitzung, behält aber ihren Verlauf.", "keepSessionRunning": "Sitzung weiterlaufen lassen", "exitSession": "Sitzung beenden", - "restartExitFailed": "Neue Sitzung gestartet. Die vorherige Sitzung ist noch geöffnet." + "restartExitFailed": "Neue Sitzung gestartet. Die vorherige Sitzung ist noch geöffnet.", + "exitNotSupported": "Das Beenden der Remote-Sitzung wird für die aktuelle Sitzung nicht unterstützt", + "exitUnavailable": "Das Beenden der Remote-Sitzung ist für die aktuelle Sitzung nicht verfügbar", + "exitNeedsNewerCli": "Slash-Befehle in Remote-Sitzungen erfordern eine neuere Kilo CLI. Aktualisiere die Kilo CLI und verbinde dich erneut." }, "sessionConnection": { "connecting": "Verbinde…", @@ -2105,7 +2108,8 @@ "delegatingWork": "Arbeit delegieren", "askingQuestion": "Frage stellen", "consideringNextSteps": "Nächste Schritte abwägen", - "writingResponse": "Antwort schreiben" + "writingResponse": "Antwort schreiben", + "initializingSnapshot": "Snapshot wird initialisiert…" }, "slashCommands": { "startNewSession": "Neue Sitzung starten", diff --git a/apps/mobile/src/i18n/locales/el.json b/apps/mobile/src/i18n/locales/el.json index 30f0adab31..3187e81a0a 100644 --- a/apps/mobile/src/i18n/locales/el.json +++ b/apps/mobile/src/i18n/locales/el.json @@ -2129,7 +2129,10 @@ "exitMessage": "Αυτό σταματά τη συνεδρία που εκτελείται, αλλά διατηρεί το ιστορικό της.", "keepSessionRunning": "Συνέχιση εκτέλεσης συνεδρίας", "exitSession": "Τερματισμός συνεδρίας", - "restartExitFailed": "Ξεκίνησε νέα συνεδρία. Η προηγούμενη συνεδρία είναι ακόμα ανοιχτή." + "restartExitFailed": "Ξεκίνησε νέα συνεδρία. Η προηγούμενη συνεδρία είναι ακόμα ανοιχτή.", + "exitNotSupported": "Η έξοδος από την απομακρυσμένη συνεδρία δεν υποστηρίζεται για την τρέχουσα συνεδρία", + "exitUnavailable": "Η έξοδος από την απομακρυσμένη συνεδρία δεν είναι διαθέσιμη για την τρέχουσα συνεδρία", + "exitNeedsNewerCli": "Οι εντολές με κάθετο για απομακρυσμένη συνεδρία απαιτούν νεότερη έκδοση του Kilo CLI. Ενημερώστε το Kilo CLI και συνδεθείτε ξανά." }, "sessionConnection": { "connecting": "Σύνδεση…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Ανάθεση εργασίας", "askingQuestion": "Υποβολή ερώτησης", "consideringNextSteps": "Εξέταση επόμενων βημάτων", - "writingResponse": "Σύνταξη απάντησης" + "writingResponse": "Σύνταξη απάντησης", + "initializingSnapshot": "Αρχικοποίηση snapshot…" }, "slashCommands": { "startNewSession": "Έναρξη νέας συνεδρίας", diff --git a/apps/mobile/src/i18n/locales/en.json b/apps/mobile/src/i18n/locales/en.json index de79c85f16..4306062a21 100644 --- a/apps/mobile/src/i18n/locales/en.json +++ b/apps/mobile/src/i18n/locales/en.json @@ -2129,7 +2129,10 @@ "exitMessage": "This stops the running session but keeps its history.", "keepSessionRunning": "Keep session running", "exitSession": "Exit session", - "restartExitFailed": "Started a new session. The previous session is still open." + "restartExitFailed": "Started a new session. The previous session is still open.", + "exitNotSupported": "Remote session exit is not supported for the current session", + "exitUnavailable": "Remote session exit is unavailable for the current session", + "exitNeedsNewerCli": "Remote slash commands require a newer Kilo CLI. Update Kilo CLI and reconnect." }, "sessionConnection": { "connecting": "Connecting…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Delegating work", "askingQuestion": "Asking a question", "consideringNextSteps": "Considering next steps", - "writingResponse": "Writing response" + "writingResponse": "Writing response", + "initializingSnapshot": "Initializing snapshot…" }, "slashCommands": { "startNewSession": "Start a new session", diff --git a/apps/mobile/src/i18n/locales/es.json b/apps/mobile/src/i18n/locales/es.json index a1bd502079..62ca5ce446 100644 --- a/apps/mobile/src/i18n/locales/es.json +++ b/apps/mobile/src/i18n/locales/es.json @@ -1683,7 +1683,10 @@ "exitMessage": "Esto detiene la sesión en ejecución pero conserva su historial.", "keepSessionRunning": "Mantener la sesión en ejecución", "exitSession": "Salir de la sesión", - "restartExitFailed": "Se inició una nueva sesión. La sesión anterior sigue abierta." + "restartExitFailed": "Se inició una nueva sesión. La sesión anterior sigue abierta.", + "exitNotSupported": "La salida de la sesión remota no se admite para la sesión actual", + "exitUnavailable": "La salida de la sesión remota no está disponible para la sesión actual", + "exitNeedsNewerCli": "Los comandos slash remotos requieren una versión más reciente de Kilo CLI. Actualiza Kilo CLI y vuelve a conectarte." }, "sessionConnection": { "connecting": "Conectando…", @@ -2117,7 +2120,8 @@ "delegatingWork": "Delegando trabajo", "askingQuestion": "Haciendo una pregunta", "consideringNextSteps": "Considerando los próximos pasos", - "writingResponse": "Escribiendo la respuesta" + "writingResponse": "Escribiendo la respuesta", + "initializingSnapshot": "Inicializando snapshot…" }, "slashCommands": { "startNewSession": "Iniciar una nueva sesión", diff --git a/apps/mobile/src/i18n/locales/et.json b/apps/mobile/src/i18n/locales/et.json index b47ab9ef9f..8b84b06de0 100644 --- a/apps/mobile/src/i18n/locales/et.json +++ b/apps/mobile/src/i18n/locales/et.json @@ -2129,7 +2129,10 @@ "exitMessage": "See peatab käimasoleva seansi, kuid säilitab selle ajaloo.", "keepSessionRunning": "Jäta seanss käima", "exitSession": "Välju seansist", - "restartExitFailed": "Alustati uut seanssi. Eelmine seanss on endiselt avatud." + "restartExitFailed": "Alustati uut seanssi. Eelmine seanss on endiselt avatud.", + "exitNotSupported": "Kaugseansist väljumine ei ole praeguse seansi jaoks toetatud", + "exitUnavailable": "Kaugseansist väljumine ei ole praeguse seansi jaoks saadaval", + "exitNeedsNewerCli": "Kaugseansi slash-käsud nõuavad uuemat Kilo CLI-d. Uuenda Kilo CLI-d ja ühendu uuesti." }, "sessionConnection": { "connecting": "Ühendamine…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Töö delegeerimine", "askingQuestion": "Küsimuse esitamine", "consideringNextSteps": "Järgmiste sammude kaalumine", - "writingResponse": "Vastuse kirjutamine" + "writingResponse": "Vastuse kirjutamine", + "initializingSnapshot": "Snapshoti initsialiseerimine…" }, "slashCommands": { "startNewSession": "Alusta uut seanssi", diff --git a/apps/mobile/src/i18n/locales/eu.json b/apps/mobile/src/i18n/locales/eu.json index 14a6c18580..7147fe6c11 100644 --- a/apps/mobile/src/i18n/locales/eu.json +++ b/apps/mobile/src/i18n/locales/eu.json @@ -2129,7 +2129,10 @@ "exitMessage": "Honek egiten ari den saioa gelditzen du, baina haren historia gordetzen du.", "keepSessionRunning": "Saioa exekutatzen mantendu", "exitSession": "Irten saiotik", - "restartExitFailed": "Saio berri bat hasi da. Aurreko saioa oraindik irekita dago." + "restartExitFailed": "Saio berri bat hasi da. Aurreko saioa oraindik irekita dago.", + "exitNotSupported": "Urruneko saiotik irtetea ez da onartzen uneko saioarentzat", + "exitUnavailable": "Urruneko saiotik irtetea ez dago eskuragarri uneko saioarentzat", + "exitNeedsNewerCli": "Urruneko slash komandoek Kilo CLI bertsio berriago bat behar dute. Eguneratu Kilo CLI eta konektatu berriro." }, "sessionConnection": { "connecting": "Konektatzen…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Lana eskuordetzen", "askingQuestion": "Galdera bat egiten", "consideringNextSteps": "Hurrengo urratsak aztertzen", - "writingResponse": "Erantzuna idazten" + "writingResponse": "Erantzuna idazten", + "initializingSnapshot": "Snapshot-a hasieratzen…" }, "slashCommands": { "startNewSession": "Hasi saio berri bat", diff --git a/apps/mobile/src/i18n/locales/fa.json b/apps/mobile/src/i18n/locales/fa.json index ff0e32fce4..4842f3291e 100644 --- a/apps/mobile/src/i18n/locales/fa.json +++ b/apps/mobile/src/i18n/locales/fa.json @@ -2129,7 +2129,10 @@ "exitMessage": "این نشست در حال اجرا را متوقف میکند اما تاریخچه آن را نگه میدارد.", "keepSessionRunning": "نشست در حال اجرا بماند", "exitSession": "خروج از نشست", - "restartExitFailed": "یک نشست جدید شروع شد. نشست قبلی همچنان باز است." + "restartExitFailed": "یک نشست جدید شروع شد. نشست قبلی همچنان باز است.", + "exitNotSupported": "خروج از نشست از راه دور برای نشست فعلی پشتیبانی نمی‌شود", + "exitUnavailable": "خروج از نشست از راه دور برای نشست فعلی در دسترس نیست", + "exitNeedsNewerCli": "دستورات اسلش از راه دور به نسخه جدیدتری از Kilo CLI نیاز دارند. Kilo CLI را به‌روزرسانی کنید و دوباره متصل شوید." }, "sessionConnection": { "connecting": "در حال اتصال…", @@ -2559,7 +2562,8 @@ "delegatingWork": "در حال واگذاری کار", "askingQuestion": "در حال پرسیدن سؤال", "consideringNextSteps": "در حال بررسی گام‌های بعدی", - "writingResponse": "در حال نوشتن پاسخ" + "writingResponse": "در حال نوشتن پاسخ", + "initializingSnapshot": "در حال راه‌اندازی اسنپ‌شات…" }, "slashCommands": { "startNewSession": "شروع یک جلسه جدید", diff --git a/apps/mobile/src/i18n/locales/fi.json b/apps/mobile/src/i18n/locales/fi.json index 525c19574d..5e80ef31c4 100644 --- a/apps/mobile/src/i18n/locales/fi.json +++ b/apps/mobile/src/i18n/locales/fi.json @@ -2129,7 +2129,10 @@ "exitMessage": "Tämä pysäyttää käynnissä olevan istunnon mutta säilyttää sen historian.", "keepSessionRunning": "Pidä istunto käynnissä", "exitSession": "Poistu istunnosta", - "restartExitFailed": "Aloitettiin uusi istunto. Edellinen istunto on edelleen avoinna." + "restartExitFailed": "Aloitettiin uusi istunto. Edellinen istunto on edelleen avoinna.", + "exitNotSupported": "Etäistunnosta poistuminen ei ole tuettu nykyiselle istunnolle", + "exitUnavailable": "Etäistunnosta poistuminen ei ole käytettävissä nykyiselle istunnolle", + "exitNeedsNewerCli": "Etä-slash-komennot edellyttävät uudempaa Kilo CLI:tä. Päivitä Kilo CLI ja yhdistä uudelleen." }, "sessionConnection": { "connecting": "Yhdistetään…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Delegoimassa työtä", "askingQuestion": "Esitetään kysymys", "consideringNextSteps": "Harkitaan seuraavia vaiheita", - "writingResponse": "Kirjoitetaan vastausta" + "writingResponse": "Kirjoitetaan vastausta", + "initializingSnapshot": "Alustetaan tilannekuvaa…" }, "slashCommands": { "startNewSession": "Aloita uusi istunto", diff --git a/apps/mobile/src/i18n/locales/fil.json b/apps/mobile/src/i18n/locales/fil.json index e47e324d0f..5b4b0890c4 100644 --- a/apps/mobile/src/i18n/locales/fil.json +++ b/apps/mobile/src/i18n/locales/fil.json @@ -2129,7 +2129,10 @@ "exitMessage": "Ito ay nagpapatigil sa tumatakbong session ngunit pinapanatili ang kasaysayan nito.", "keepSessionRunning": "Panatilihing tumatakbo ang session", "exitSession": "Lumabas sa session", - "restartExitFailed": "Nagsimula ng bagong session. Bukas pa rin ang nakaraang session." + "restartExitFailed": "Nagsimula ng bagong session. Bukas pa rin ang nakaraang session.", + "exitNotSupported": "Hindi sinusuportahan ang paglabas sa remote session para sa kasalukuyang session", + "exitUnavailable": "Hindi available ang paglabas sa remote session para sa kasalukuyang session", + "exitNeedsNewerCli": "Ang mga remote slash command ay nangangailangan ng mas bagong Kilo CLI. I-update ang Kilo CLI at muling kumonekta." }, "sessionConnection": { "connecting": "Kumokonekta…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Nagde-delegate ng trabaho", "askingQuestion": "Nagtatanong", "consideringNextSteps": "Isinasaalang-alang ang mga susunod na hakbang", - "writingResponse": "Sinusulat ang tugon" + "writingResponse": "Sinusulat ang tugon", + "initializingSnapshot": "Sinisimulan ang snapshot…" }, "slashCommands": { "startNewSession": "Magsimula ng bagong session", diff --git a/apps/mobile/src/i18n/locales/fr.json b/apps/mobile/src/i18n/locales/fr.json index c3452670ad..0bf00bcac6 100644 --- a/apps/mobile/src/i18n/locales/fr.json +++ b/apps/mobile/src/i18n/locales/fr.json @@ -1601,7 +1601,10 @@ "exitMessage": "Cela arrête la session en cours mais conserve son historique.", "keepSessionRunning": "Garder la session active", "exitSession": "Quitter la session", - "restartExitFailed": "Nouvelle session démarrée. La session précédente est encore ouverte." + "restartExitFailed": "Nouvelle session démarrée. La session précédente est encore ouverte.", + "exitNotSupported": "La sortie de session distante n'est pas prise en charge pour la session actuelle", + "exitUnavailable": "La sortie de session distante est indisponible pour la session actuelle", + "exitNeedsNewerCli": "Les commandes slash à distance nécessitent une CLI Kilo plus récente. Mettez à jour la CLI Kilo et reconnectez-vous." }, "sessionConnection": { "connecting": "Connexion…", @@ -2035,7 +2038,8 @@ "delegatingWork": "Délègue le travail", "askingQuestion": "Pose une question", "consideringNextSteps": "Étudie les prochaines étapes", - "writingResponse": "Rédige la réponse" + "writingResponse": "Rédige la réponse", + "initializingSnapshot": "Initialisation de l'instantané…" }, "slashCommands": { "startNewSession": "Démarrer une nouvelle session", diff --git a/apps/mobile/src/i18n/locales/ga.json b/apps/mobile/src/i18n/locales/ga.json index 52830c68d6..603abe730b 100644 --- a/apps/mobile/src/i18n/locales/ga.json +++ b/apps/mobile/src/i18n/locales/ga.json @@ -2174,7 +2174,10 @@ "exitMessage": "Stopann sé seo an seisiún atá ar siúl ach coinníonn sé a stair.", "keepSessionRunning": "Coinnigh an seisiún ar siúl", "exitSession": "Scoir den seisiún", - "restartExitFailed": "Tosaíodh seisiún nua. Tá an seisiún roimhe sin fós oscailte." + "restartExitFailed": "Tosaíodh seisiún nua. Tá an seisiún roimhe sin fós oscailte.", + "exitNotSupported": "Ní thacaítear le scoir an tseisiúin chianda don seisiún reatha", + "exitUnavailable": "Níl scoir an tseisiúin chianda ar fáil don seisiún reatha", + "exitNeedsNewerCli": "Éilíonn orduithe slais cianda Kilo CLI níos nua. Nuashonraigh Kilo CLI agus athcheangail." }, "sessionConnection": { "connecting": "Ag nascadh…", @@ -2616,7 +2619,8 @@ "delegatingWork": "Ag tarmligean obair", "askingQuestion": "Ag cur ceist", "consideringNextSteps": "Ag smaoineamh ar na chéad chéimeanna eile", - "writingResponse": "Ag scríobh freagra" + "writingResponse": "Ag scríobh freagra", + "initializingSnapshot": "Ag tosú an snapshot…" }, "slashCommands": { "startNewSession": "Tosaigh seisiún nua", diff --git a/apps/mobile/src/i18n/locales/gl.json b/apps/mobile/src/i18n/locales/gl.json index 5937da1a6b..866a18691c 100644 --- a/apps/mobile/src/i18n/locales/gl.json +++ b/apps/mobile/src/i18n/locales/gl.json @@ -2129,7 +2129,10 @@ "exitMessage": "Isto detén a sesión en execución pero conserva o seu historial.", "keepSessionRunning": "Manter a sesión en execución", "exitSession": "Saír da sesión", - "restartExitFailed": "Iniciouse unha nova sesión. A sesión anterior segue aberta." + "restartExitFailed": "Iniciouse unha nova sesión. A sesión anterior segue aberta.", + "exitNotSupported": "Non se admite a saída da sesión remota para a sesión actual", + "exitUnavailable": "A saída da sesión remota non está dispoñible para a sesión actual", + "exitNeedsNewerCli": "Os comandos de barra remotos requiren un Kilo CLI máis novo. Actualiza o Kilo CLI e reconéctate." }, "sessionConnection": { "connecting": "Conectando…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Delegando traballo", "askingQuestion": "Facendo unha pregunta", "consideringNextSteps": "Considerando os seguintes pasos", - "writingResponse": "Redactando a resposta" + "writingResponse": "Redactando a resposta", + "initializingSnapshot": "Inicializando a instantánea…" }, "slashCommands": { "startNewSession": "Iniciar unha nova sesión", diff --git a/apps/mobile/src/i18n/locales/gu.json b/apps/mobile/src/i18n/locales/gu.json index 254c3184d9..c3a428ca02 100644 --- a/apps/mobile/src/i18n/locales/gu.json +++ b/apps/mobile/src/i18n/locales/gu.json @@ -2129,7 +2129,10 @@ "exitMessage": "આ ચાલુ સત્ર રોકશે પણ તેનો ઇતિહાસ રાખશે.", "keepSessionRunning": "સત્ર ચાલતું રાખો", "exitSession": "સત્રમાંથી બહાર નીકળો", - "restartExitFailed": "નવું સત્ર શરૂ થયું. પહેલું સત્ર હજુ ખુલ્લું છે." + "restartExitFailed": "નવું સત્ર શરૂ થયું. પહેલું સત્ર હજુ ખુલ્લું છે.", + "exitNotSupported": "વર્તમાન સત્ર માટે રિમોટ સત્રમાંથી બહાર નીકળવું સમર્થિત નથી", + "exitUnavailable": "વર્તમાન સત્ર માટે રિમોટ સત્રમાંથી બહાર નીકળવું ઉપલબ્ધ નથી", + "exitNeedsNewerCli": "રિમોટ સ્લેશ કમાન્ડ માટે નવા Kilo CLIની જરૂર છે. Kilo CLI અપડેટ કરો અને ફરી કનેક્ટ કરો." }, "sessionConnection": { "connecting": "કનેક્ટ થઈ રહ્યું છે…", @@ -2559,7 +2562,8 @@ "delegatingWork": "કાર્ય સોંપી રહ્યું છે", "askingQuestion": "પ્રશ્ન પૂછી રહ્યું છે", "consideringNextSteps": "આગળના પગલાંઓ વિચારી રહ્યું છે", - "writingResponse": "જવાબ લખી રહ્યું છે" + "writingResponse": "જવાબ લખી રહ્યું છે", + "initializingSnapshot": "સ્નેપશોટ પ્રારંભ કરી રહ્યું છે…" }, "slashCommands": { "startNewSession": "નવું સત્ર શરૂ કરો", diff --git a/apps/mobile/src/i18n/locales/ha.json b/apps/mobile/src/i18n/locales/ha.json index 231f11e8e2..388ed226fd 100644 --- a/apps/mobile/src/i18n/locales/ha.json +++ b/apps/mobile/src/i18n/locales/ha.json @@ -2129,7 +2129,10 @@ "exitMessage": "Wannan yana dakatar da zaman da ke gudana amma yana kiyaye tarihinsa.", "keepSessionRunning": "Ci gaba da gudanar da zaman", "exitSession": "Fita daga zaman", - "restartExitFailed": "An fara sabon zaman. Zaman da ya gabata har yanzu a buɗe yake." + "restartExitFailed": "An fara sabon zaman. Zaman da ya gabata har yanzu a buɗe yake.", + "exitNotSupported": "Ba a goyan bayan fita daga zaman na nesa don wannan zaman ba", + "exitUnavailable": "Fita daga zaman na nesa ba ya samuwa don wannan zaman", + "exitNeedsNewerCli": "Umarnin slash na nesa suna buƙatar sabuwar Kilo CLI. Sabunta Kilo CLI kuma sake haɗawa." }, "sessionConnection": { "connecting": "Ana haɗawa…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Ba da aiki", "askingQuestion": "Yin tambaya", "consideringNextSteps": "Yin la'akari da matakai na gaba", - "writingResponse": "Rubuta amsa" + "writingResponse": "Rubuta amsa", + "initializingSnapshot": "Ana fara snapshot…" }, "slashCommands": { "startNewSession": "Fara sabon zama", diff --git a/apps/mobile/src/i18n/locales/he.json b/apps/mobile/src/i18n/locales/he.json index 435fe7a779..9fca20e1be 100644 --- a/apps/mobile/src/i18n/locales/he.json +++ b/apps/mobile/src/i18n/locales/he.json @@ -1683,7 +1683,10 @@ "exitMessage": "פעולה זו עוצרת את ההפעלה הרצה אך שומרת על ההיסטוריה שלה.", "keepSessionRunning": "השאר את ההפעלה רצה", "exitSession": "צא מההפעלה", - "restartExitFailed": "התחילה הפעלה חדשה. ההפעלה הקודמת עדיין פתוחה." + "restartExitFailed": "התחילה הפעלה חדשה. ההפעלה הקודמת עדיין פתוחה.", + "exitNotSupported": "יציאה מהפעלה מרוחקת אינה נתמכת בהפעלה הנוכחית", + "exitUnavailable": "יציאה מההפעלה המרוחקת אינה זמינה בהפעלה הנוכחית", + "exitNeedsNewerCli": "פקודות slash מרוחקות דורשות Kilo CLI חדש יותר. עדכן את Kilo CLI והתחבר מחדש." }, "sessionConnection": { "connecting": "מתחבר…", @@ -2117,7 +2120,8 @@ "delegatingWork": "מאציל עבודה", "askingQuestion": "שואל שאלה", "consideringNextSteps": "שוקל את הצעדים הבאים", - "writingResponse": "כותב תשובה" + "writingResponse": "כותב תשובה", + "initializingSnapshot": "מאתחל תמונת מצב…" }, "slashCommands": { "startNewSession": "התחל הפעלה חדשה", diff --git a/apps/mobile/src/i18n/locales/hi.json b/apps/mobile/src/i18n/locales/hi.json index 09c0decbd1..94107c0c25 100644 --- a/apps/mobile/src/i18n/locales/hi.json +++ b/apps/mobile/src/i18n/locales/hi.json @@ -1681,7 +1681,10 @@ "exitSession": "सत्र से बाहर निकलें", "exitTitle": "सत्र से बाहर निकलें?", "keepSessionRunning": "सत्र चालू रखें", - "restartExitFailed": "नया सत्र शुरू हुआ। पिछला सत्र अभी भी खुला है।" + "restartExitFailed": "नया सत्र शुरू हुआ। पिछला सत्र अभी भी खुला है।", + "exitNotSupported": "वर्तमान सत्र के लिए रिमोट सत्र से बाहर निकलना समर्थित नहीं है", + "exitUnavailable": "वर्तमान सत्र के लिए रिमोट सत्र से बाहर निकलना उपलब्ध नहीं है", + "exitNeedsNewerCli": "रिमोट स्लैश कमांड के लिए नए Kilo CLI की आवश्यकता है। Kilo CLI अपडेट करें और फिर से कनेक्ट करें।" }, "newSession": { "title": "नया सत्र", @@ -2071,7 +2074,8 @@ "delegatingWork": "काम सौंप रहा है", "askingQuestion": "प्रश्न पूछ रहा है", "consideringNextSteps": "अगले चरणों पर विचार कर रहा है", - "writingResponse": "प्रतिक्रिया लिख रहा है" + "writingResponse": "प्रतिक्रिया लिख रहा है", + "initializingSnapshot": "स्नैपशॉट आरंभ किया जा रहा है…" }, "slashCommands": { "startNewSession": "नया सत्र शुरू करें", diff --git a/apps/mobile/src/i18n/locales/hr.json b/apps/mobile/src/i18n/locales/hr.json index 6092cdf2ca..a326f7c7f8 100644 --- a/apps/mobile/src/i18n/locales/hr.json +++ b/apps/mobile/src/i18n/locales/hr.json @@ -2144,7 +2144,10 @@ "exitMessage": "To zaustavlja aktivnu sesiju, ali zadržava njezinu povijest.", "keepSessionRunning": "Nastavi sesiju", "exitSession": "Zatvori sesiju", - "restartExitFailed": "Započeta je nova sesija. Prethodna sesija je još otvorena." + "restartExitFailed": "Započeta je nova sesija. Prethodna sesija je još otvorena.", + "exitNotSupported": "Izlazak iz udaljene sesije nije podržan za trenutnu sesiju", + "exitUnavailable": "Izlazak iz udaljene sesije nije dostupan za trenutnu sesiju", + "exitNeedsNewerCli": "Daljinske slash naredbe zahtijevaju noviju verziju Kilo CLI-ja. Ažurirajte Kilo CLI i ponovno se povežite." }, "sessionConnection": { "connecting": "Povezivanje…", @@ -2578,7 +2581,8 @@ "delegatingWork": "Delegiranje posla", "askingQuestion": "Postavljanje pitanja", "consideringNextSteps": "Razmatranje sljedećih koraka", - "writingResponse": "Pisanje odgovora" + "writingResponse": "Pisanje odgovora", + "initializingSnapshot": "Inicijalizacija snimke…" }, "slashCommands": { "startNewSession": "Pokreni novu sesiju", diff --git a/apps/mobile/src/i18n/locales/ht.json b/apps/mobile/src/i18n/locales/ht.json index df9413c73d..1623abeae8 100644 --- a/apps/mobile/src/i18n/locales/ht.json +++ b/apps/mobile/src/i18n/locales/ht.json @@ -2129,7 +2129,10 @@ "exitMessage": "Sa a sispann sesyon an k ap kouri a men li kenbe istwa li.", "keepSessionRunning": "Kenbe sesyon an k ap kouri", "exitSession": "Soti nan sesyon an", - "restartExitFailed": "Te kòmanse yon nouvo sesyon. Ansyen sesyon an toujou louvri." + "restartExitFailed": "Te kòmanse yon nouvo sesyon. Ansyen sesyon an toujou louvri.", + "exitNotSupported": "Sòti nan sesyon aleka pa sipòte pou sesyon aktyèl la", + "exitUnavailable": "Sòti nan sesyon aleka pa disponib pou sesyon aktyèl la", + "exitNeedsNewerCli": "Kòmandman slash aleka mande yon nouvo Kilo CLI. Mete ajou Kilo CLI a epi rekonekte." }, "sessionConnection": { "connecting": "Ap konekte…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Ap delege travay", "askingQuestion": "Ap poze yon kesyon", "consideringNextSteps": "Ap konsidere pwochen etap", - "writingResponse": "Ap ekri repons" + "writingResponse": "Ap ekri repons", + "initializingSnapshot": "Ap inisyalize snapshot…" }, "slashCommands": { "startNewSession": "Kòmanse yon nouvo sesyon", diff --git a/apps/mobile/src/i18n/locales/hu.json b/apps/mobile/src/i18n/locales/hu.json index 08e44f4f31..68344e07ca 100644 --- a/apps/mobile/src/i18n/locales/hu.json +++ b/apps/mobile/src/i18n/locales/hu.json @@ -2129,7 +2129,10 @@ "exitMessage": "Ez leállítja a futó munkamenetet, de megőrzi az előzményeit.", "keepSessionRunning": "Munkamenet futva tartása", "exitSession": "Kilépés a munkamenetből", - "restartExitFailed": "Új munkamenet indult. Az előző munkamenet még mindig nyitva van." + "restartExitFailed": "Új munkamenet indult. Az előző munkamenet még mindig nyitva van.", + "exitNotSupported": "A távoli munkamenetből való kilépés nem támogatott az aktuális munkamenetben", + "exitUnavailable": "A távoli munkamenetből való kilépés nem érhető el az aktuális munkamenetben", + "exitNeedsNewerCli": "A távoli slash parancsokhoz újabb Kilo CLI szükséges. Frissítsd a Kilo CLI-t, és csatlakozz újra." }, "sessionConnection": { "connecting": "Csatlakozás…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Munka delegálása", "askingQuestion": "Kérdés feltevése", "consideringNextSteps": "Következő lépések mérlegelése", - "writingResponse": "Válasz írása" + "writingResponse": "Válasz írása", + "initializingSnapshot": "Pillanatkép inicializálása…" }, "slashCommands": { "startNewSession": "Új munkamenet indítása", diff --git a/apps/mobile/src/i18n/locales/hy.json b/apps/mobile/src/i18n/locales/hy.json index 4cbeb5dd2f..1ef4ba1003 100644 --- a/apps/mobile/src/i18n/locales/hy.json +++ b/apps/mobile/src/i18n/locales/hy.json @@ -2129,7 +2129,10 @@ "exitMessage": "Սա կկանգնեցնի ընթացիկ նիստը, բայց կպահպանի դրա պատմությունը։", "keepSessionRunning": "Շարունակել նիստը", "exitSession": "Փակել նիստը", - "restartExitFailed": "Սկսվեց նոր նիստ։ Նախորդ նիստը դեռ բաց է։" + "restartExitFailed": "Սկսվեց նոր նիստ։ Նախորդ նիստը դեռ բաց է։", + "exitNotSupported": "Հեռավոր նիստից ելքը չի աջակցվում ընթացիկ նիստի համար", + "exitUnavailable": "Հեռավոր նիստից ելքը հասանելի չէ ընթացիկ նիստի համար", + "exitNeedsNewerCli": "Հեռավոր slash հրամանների համար անհրաժեշտ է ավելի նոր Kilo CLI։ Թարմացրեք Kilo CLI-ն և միացեք կրկին։" }, "sessionConnection": { "connecting": "Միանում…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Պատվիրակում է աշխատանք", "askingQuestion": "Հարց է տալիս", "consideringNextSteps": "Քննարկում է հաջորդ քայլերը", - "writingResponse": "Գրում է պատասխան" + "writingResponse": "Գրում է պատասխան", + "initializingSnapshot": "Սկզբնավորվում է snapshot-ը…" }, "slashCommands": { "startNewSession": "Սկսել նոր նիստ", diff --git a/apps/mobile/src/i18n/locales/id.json b/apps/mobile/src/i18n/locales/id.json index dd245055ba..a37c7dabea 100644 --- a/apps/mobile/src/i18n/locales/id.json +++ b/apps/mobile/src/i18n/locales/id.json @@ -1675,7 +1675,10 @@ "exitMessage": "Ini menghentikan sesi yang berjalan tetapi menyimpan riwayatnya.", "keepSessionRunning": "Biarkan sesi tetap berjalan", "exitSession": "Keluar dari sesi", - "restartExitFailed": "Sesi baru dimulai. Sesi sebelumnya masih terbuka." + "restartExitFailed": "Sesi baru dimulai. Sesi sebelumnya masih terbuka.", + "exitNotSupported": "Keluar dari sesi jarak jauh tidak didukung untuk sesi saat ini", + "exitUnavailable": "Keluar dari sesi jarak jauh tidak tersedia untuk sesi saat ini", + "exitNeedsNewerCli": "Perintah slash jarak jauh memerlukan Kilo CLI yang lebih baru. Perbarui Kilo CLI dan sambungkan kembali." }, "sessionConnection": { "connecting": "Menghubungkan…", @@ -2105,7 +2108,8 @@ "delegatingWork": "Mendelegasikan pekerjaan", "askingQuestion": "Mengajukan pertanyaan", "consideringNextSteps": "Mempertimbangkan langkah berikutnya", - "writingResponse": "Menulis respons" + "writingResponse": "Menulis respons", + "initializingSnapshot": "Menginisialisasi snapshot…" }, "slashCommands": { "startNewSession": "Mulai sesi baru", diff --git a/apps/mobile/src/i18n/locales/ig.json b/apps/mobile/src/i18n/locales/ig.json index 5f7a62f557..6648d92eaa 100644 --- a/apps/mobile/src/i18n/locales/ig.json +++ b/apps/mobile/src/i18n/locales/ig.json @@ -2129,7 +2129,10 @@ "exitMessage": "Nke a na-akwụsị nzukọ na-agba ọsọ ma na-edobe akụkọ ya.", "keepSessionRunning": "Nọgidenụ ka nzukọ na-agba", "exitSession": "Pụọ na nzukọ", - "restartExitFailed": "Malitere nzukọ ọhụrụ. Nzukọ gara aga ka mepere emepe." + "restartExitFailed": "Malitere nzukọ ọhụrụ. Nzukọ gara aga ka mepere emepe.", + "exitNotSupported": "Ịpụ na nzukọ dị anya adịghị kwado maka nzukọ dị ugbu a", + "exitUnavailable": "Ịpụ na nzukọ dị anya adịghị maka nzukọ dị ugbu a", + "exitNeedsNewerCli": "Iwu slash dị anya chọrọ Kilo CLI ọhụrụ. Melite Kilo CLI ma jikọọ ọzọ." }, "sessionConnection": { "connecting": "Na-ejikọ…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Na-enyefe ọrụ", "askingQuestion": "Na-ajụ ajụjụ", "consideringNextSteps": "Na-atụle usoro ndị na-esote", - "writingResponse": "Na-ede nzaghachi" + "writingResponse": "Na-ede nzaghachi", + "initializingSnapshot": "Na-amalite snapshot…" }, "slashCommands": { "startNewSession": "Malite nnọkọ ọhụrụ", diff --git a/apps/mobile/src/i18n/locales/is.json b/apps/mobile/src/i18n/locales/is.json index 1b458d3f9c..0edb0a5e81 100644 --- a/apps/mobile/src/i18n/locales/is.json +++ b/apps/mobile/src/i18n/locales/is.json @@ -2129,7 +2129,10 @@ "exitMessage": "Þetta stöðvar keyrslulotu en geymir sögu hennar.", "keepSessionRunning": "Halda lotu í gangi", "exitSession": "Ljúka lotu", - "restartExitFailed": "Byrjaði nýja lotu. Fyrri lotan er enn opin." + "restartExitFailed": "Byrjaði nýja lotu. Fyrri lotan er enn opin.", + "exitNotSupported": "Ekki er stutt að hætta í fjarlægri lotu fyrir núverandi lotu", + "exitUnavailable": "Ekki er hægt að hætta í fjarlægri lotu fyrir núverandi lotu", + "exitNeedsNewerCli": "Fjarlæg slash-skipun krefst nýrri Kilo CLI. Uppfærðu Kilo CLI og tengdu aftur." }, "sessionConnection": { "connecting": "Tengist…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Úthlutar verkefnum", "askingQuestion": "Spyr spurningu", "consideringNextSteps": "Hugleiðir næstu skref", - "writingResponse": "Skrifar svar" + "writingResponse": "Skrifar svar", + "initializingSnapshot": "Upphafsstilling myndatöku…" }, "slashCommands": { "startNewSession": "Byrja nýja lotu", diff --git a/apps/mobile/src/i18n/locales/it.json b/apps/mobile/src/i18n/locales/it.json index 706899da19..a79bcc768d 100644 --- a/apps/mobile/src/i18n/locales/it.json +++ b/apps/mobile/src/i18n/locales/it.json @@ -1669,7 +1669,10 @@ "exitMessage": "Interrompe la sessione in esecuzione ma ne conserva la cronologia.", "keepSessionRunning": "Mantieni la sessione in esecuzione", "exitSession": "Esci dalla sessione", - "restartExitFailed": "Nuova sessione avviata. La sessione precedente è ancora aperta." + "restartExitFailed": "Nuova sessione avviata. La sessione precedente è ancora aperta.", + "exitNotSupported": "L'uscita dalla sessione remota non è supportata per la sessione corrente", + "exitUnavailable": "L'uscita dalla sessione remota non è disponibile per la sessione corrente", + "exitNeedsNewerCli": "I comandi slash remoti richiedono una versione più recente della CLI di Kilo. Aggiorna la CLI di Kilo e riconnettiti." }, "sessionConnection": { "connecting": "Connessione…", @@ -2103,7 +2106,8 @@ "delegatingWork": "Delega del lavoro", "askingQuestion": "Pone una domanda", "consideringNextSteps": "Valutazione dei prossimi passi", - "writingResponse": "Scrittura della risposta" + "writingResponse": "Scrittura della risposta", + "initializingSnapshot": "Inizializzazione dello snapshot…" }, "slashCommands": { "startNewSession": "Avvia una nuova sessione", diff --git a/apps/mobile/src/i18n/locales/ja.json b/apps/mobile/src/i18n/locales/ja.json index 4c1374f973..86643aa019 100644 --- a/apps/mobile/src/i18n/locales/ja.json +++ b/apps/mobile/src/i18n/locales/ja.json @@ -1675,7 +1675,10 @@ "exitMessage": "実行中のセッションは停止しますが、履歴は保持されます。", "keepSessionRunning": "セッションを実行したままにする", "exitSession": "セッションを終了", - "restartExitFailed": "新しいセッションを開始しました。前のセッションはまだ開いています。" + "restartExitFailed": "新しいセッションを開始しました。前のセッションはまだ開いています。", + "exitNotSupported": "現在のセッションではリモートセッションの終了はサポートされていません", + "exitUnavailable": "現在のセッションではリモートセッションの終了を利用できません", + "exitNeedsNewerCli": "リモートのスラッシュコマンドには新しいKilo CLIが必要です。Kilo CLIを更新して再接続してください。" }, "sessionConnection": { "connecting": "接続中…", @@ -2105,7 +2108,8 @@ "delegatingWork": "作業を委任中", "askingQuestion": "質問中", "consideringNextSteps": "次のステップを検討中", - "writingResponse": "応答を作成中" + "writingResponse": "応答を作成中", + "initializingSnapshot": "スナップショットを初期化中…" }, "slashCommands": { "startNewSession": "新しいセッションを開始", diff --git a/apps/mobile/src/i18n/locales/ka.json b/apps/mobile/src/i18n/locales/ka.json index da6b33c3aa..6e5b5e15b9 100644 --- a/apps/mobile/src/i18n/locales/ka.json +++ b/apps/mobile/src/i18n/locales/ka.json @@ -2129,7 +2129,10 @@ "exitMessage": "ეს აჩერებს მიმდინარე სესიას, მაგრამ ინახავს მის ისტორიას.", "keepSessionRunning": "სესიის გაშვების გაგრძელება", "exitSession": "სესიიდან გასვლა", - "restartExitFailed": "ახალი სესია დაიწყო. წინა სესია კვლავ ღიაა." + "restartExitFailed": "ახალი სესია დაიწყო. წინა სესია კვლავ ღიაა.", + "exitNotSupported": "დისტანციური სესიიდან გასვლა არ არის მხარდაჭერილი მიმდინარე სესიისთვის", + "exitUnavailable": "დისტანციური სესიიდან გასვლა მიუწვდომელია მიმდინარე სესიისთვის", + "exitNeedsNewerCli": "დისტანციური სლეშ ბრძანებები საჭიროებენ Kilo CLI-ის უფრო ახალ ვერსიას. განაახლეთ Kilo CLI და ხელახლა დაუკავშირდით." }, "sessionConnection": { "connecting": "კავშირი…", @@ -2559,7 +2562,8 @@ "delegatingWork": "სამუშაოს დელეგირება", "askingQuestion": "შეკითხვის დასმა", "consideringNextSteps": "შემდეგი ნაბიჯების განხილვა", - "writingResponse": "პასუხის წერა" + "writingResponse": "პასუხის წერა", + "initializingSnapshot": "სნეფშოტის ინიციალიზაცია…" }, "slashCommands": { "startNewSession": "ახალი სესიის დაწყება", diff --git a/apps/mobile/src/i18n/locales/kk.json b/apps/mobile/src/i18n/locales/kk.json index ed5b7eb23e..3de9aff0e1 100644 --- a/apps/mobile/src/i18n/locales/kk.json +++ b/apps/mobile/src/i18n/locales/kk.json @@ -2129,7 +2129,10 @@ "exitMessage": "Бұл орындалып жатқан сессияны тоқтатады, бірақ оның тарихын сақтайды.", "keepSessionRunning": "Сессияның орындалуын жалғастыру", "exitSession": "Сессиядан шығу", - "restartExitFailed": "Жаңа сессия басталды. Алдыңғы сессия әлі ашық." + "restartExitFailed": "Жаңа сессия басталды. Алдыңғы сессия әлі ашық.", + "exitNotSupported": "Ағымдағы сессия үшін қашықтағы сессиядан шығу қолдау көрсетілмейді", + "exitUnavailable": "Ағымдағы сессия үшін қашықтағы сессиядан шығу қолжетімсіз", + "exitNeedsNewerCli": "Қашықтағы слеш пәрмендері Kilo CLI-дің жаңа нұсқасын қажет етеді. Kilo CLI жаңартып, қайта қосылыңыз." }, "sessionConnection": { "connecting": "Қосылуда…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Жұмыс тапсырылуда", "askingQuestion": "Сұрақ қойылуда", "consideringNextSteps": "Келесі қадамдар қарастырылуда", - "writingResponse": "Жауап жазылуда" + "writingResponse": "Жауап жазылуда", + "initializingSnapshot": "Снэпшот инициализациялануда…" }, "slashCommands": { "startNewSession": "Жаңа сессияны бастау", diff --git a/apps/mobile/src/i18n/locales/km.json b/apps/mobile/src/i18n/locales/km.json index feab966c6a..5a0f3fe509 100644 --- a/apps/mobile/src/i18n/locales/km.json +++ b/apps/mobile/src/i18n/locales/km.json @@ -2129,7 +2129,10 @@ "exitMessage": "នេះបញ្ឈប់វគ្គដែលកំពុងដំណើរការ ប៉ុន្តែរក្សាទុកប្រវត្តិរបស់វា។", "keepSessionRunning": "បន្តដំណើរការវគ្គ", "exitSession": "ចាកចេញពីវគ្គ", - "restartExitFailed": "បានចាប់ផ្តើមវគ្គថ្មី។ វគ្គមុននៅតែបើក។" + "restartExitFailed": "បានចាប់ផ្តើមវគ្គថ្មី។ វគ្គមុននៅតែបើក។", + "exitNotSupported": "ការចាកចេញពីវគ្គពីចម្ងាយមិនត្រូវបានគាំទ្រសម្រាប់វគ្គបច្ចុប្បន្នទេ", + "exitUnavailable": "ការចាកចេញពីវគ្គពីចម្ងាយមិនអាចប្រើបានសម្រាប់វគ្គបច្ចុប្បន្នទេ", + "exitNeedsNewerCli": "ពាក្យបញ្ជាស្លេសពីចម្ងាយត្រូវការ Kilo CLI ថ្មីជាងនេះ។ ធ្វើបច្ចុប្បន្នភាព Kilo CLI ហើយភ្ជាប់ឡើងវិញ។" }, "sessionConnection": { "connecting": "កំពុងភ្ជាប់…", @@ -2559,7 +2562,8 @@ "delegatingWork": "កំពុងប្រគល់ការងារ", "askingQuestion": "កំពុងសួរសំណួរ", "consideringNextSteps": "កំពុងពិចារណាជំហានបន្ទាប់", - "writingResponse": "កំពុងសរសេរការឆ្លើយតប" + "writingResponse": "កំពុងសរសេរការឆ្លើយតប", + "initializingSnapshot": "កំពុងចាប់ផ្តើម snapshot…" }, "slashCommands": { "startNewSession": "ចាប់ផ្តើមវគ្គថ្មី", diff --git a/apps/mobile/src/i18n/locales/kn.json b/apps/mobile/src/i18n/locales/kn.json index ca5251691a..8418878554 100644 --- a/apps/mobile/src/i18n/locales/kn.json +++ b/apps/mobile/src/i18n/locales/kn.json @@ -2129,7 +2129,10 @@ "exitMessage": "ಇದು ಚಲಾಯಿಸುತ್ತಿರುವ ಸೆಶನ್ ಅನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ ಆದರೆ ಅದರ ಇತಿಹಾಸವನ್ನು ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ.", "keepSessionRunning": "ಸೆಶನ್ ಚಲಾಯಿಸುತ್ತಲೇ ಇರಿ", "exitSession": "ಸೆಶನ್ ನಿರ್ಗಮಿಸಿ", - "restartExitFailed": "ಹೊಸ ಸೆಶನ್ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ. ಹಿಂದಿನ ಸೆಶನ್ ಇನ್ನೂ ತೆರೆದಿದೆ." + "restartExitFailed": "ಹೊಸ ಸೆಶನ್ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ. ಹಿಂದಿನ ಸೆಶನ್ ಇನ್ನೂ ತೆರೆದಿದೆ.", + "exitNotSupported": "ಪ್ರಸ್ತುತ ಸೆಶನ್ಗೆ ರಿಮೋಟ್ ಸೆಶನ್ ನಿರ್ಗಮನವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ", + "exitUnavailable": "ಪ್ರಸ್ತುತ ಸೆಶನ್ಗೆ ರಿಮೋಟ್ ಸೆಶನ್ ನಿರ್ಗಮನ ಲಭ್ಯವಿಲ್ಲ", + "exitNeedsNewerCli": "ರಿಮೋಟ್ ಸ್ಲಾಶ್ ಆಜ್ಞೆಗಳಿಗೆ ಹೊಸ Kilo CLI ಅಗತ್ಯವಿದೆ. Kilo CLI ನವೀಕರಿಸಿ ಮತ್ತು ಮತ್ತೆ ಸಂಪರ್ಕಿಸಿ." }, "sessionConnection": { "connecting": "ಸಂಪರ್ಕಿಸುತ್ತಿದೆ…", @@ -2559,7 +2562,8 @@ "delegatingWork": "ಕೆಲಸವನ್ನು ವಹಿಸುತ್ತಿದೆ", "askingQuestion": "ಪ್ರಶ್ನೆ ಕೇಳುತ್ತಿದೆ", "consideringNextSteps": "ಮುಂದಿನ ಹಂತಗಳನ್ನು ಪರಿಗಣಿಸುತ್ತಿದೆ", - "writingResponse": "ಪ್ರತಿಕ್ರಿಯೆ ಬರೆಯುತ್ತಿದೆ" + "writingResponse": "ಪ್ರತಿಕ್ರಿಯೆ ಬರೆಯುತ್ತಿದೆ", + "initializingSnapshot": "ಸ್ನ್ಯಾಪ್ಶಾಟ್ ಆರಂಭಿಸುತ್ತಿದೆ…" }, "slashCommands": { "startNewSession": "ಹೊಸ ಸೆಷನ್ ಪ್ರಾರಂಭಿಸಿ", diff --git a/apps/mobile/src/i18n/locales/ko.json b/apps/mobile/src/i18n/locales/ko.json index 1e41e45efa..a4e9241094 100644 --- a/apps/mobile/src/i18n/locales/ko.json +++ b/apps/mobile/src/i18n/locales/ko.json @@ -1675,7 +1675,10 @@ "exitMessage": "실행 중인 세션을 중지하지만 기록은 유지됩니다.", "keepSessionRunning": "세션 계속 실행", "exitSession": "세션 종료", - "restartExitFailed": "새 세션을 시작했습니다. 이전 세션은 아직 열려 있습니다." + "restartExitFailed": "새 세션을 시작했습니다. 이전 세션은 아직 열려 있습니다.", + "exitNotSupported": "현재 세션에서는 원격 세션 종료가 지원되지 않습니다", + "exitUnavailable": "현재 세션에서는 원격 세션 종료를 사용할 수 없습니다", + "exitNeedsNewerCli": "원격 슬래시 명령에는 최신 Kilo CLI가 필요합니다. Kilo CLI를 업데이트하고 다시 연결하세요." }, "sessionConnection": { "connecting": "연결 중…", @@ -2105,7 +2108,8 @@ "delegatingWork": "작업 위임 중", "askingQuestion": "질문하는 중", "consideringNextSteps": "다음 단계 검토 중", - "writingResponse": "응답 작성 중" + "writingResponse": "응답 작성 중", + "initializingSnapshot": "스냅샷 초기화 중…" }, "slashCommands": { "startNewSession": "새 세션 시작", diff --git a/apps/mobile/src/i18n/locales/lo.json b/apps/mobile/src/i18n/locales/lo.json index 55cef6436b..9e49fa8614 100644 --- a/apps/mobile/src/i18n/locales/lo.json +++ b/apps/mobile/src/i18n/locales/lo.json @@ -2129,7 +2129,10 @@ "exitMessage": "ອັນນີ້ຢຸດເຊດຊັນທີ່ກຳລັງດຳເນີນຢູ່ ແຕ່ເກັບປະຫວັດຂອງມັນໄວ້.", "keepSessionRunning": "ໃຫ້ເຊດຊັນດຳເນີນການຕໍ່ໄປ", "exitSession": "ອອກຈາກເຊດຊັນ", - "restartExitFailed": "ເລີ່ມເຊດຊັນໃໝ່ແລ້ວ. ເຊດຊັນກ່ອນໜ້າຍັງເປີດຢູ່." + "restartExitFailed": "ເລີ່ມເຊດຊັນໃໝ່ແລ້ວ. ເຊດຊັນກ່ອນໜ້າຍັງເປີດຢູ່.", + "exitNotSupported": "ການອອກຈາກເຊດຊັນທາງໄກບໍ່ຮອງຮັບສຳລັບເຊດຊັນປັດຈຸບັນ", + "exitUnavailable": "ການອອກຈາກເຊດຊັນທາງໄກບໍ່ສາມາດໃຊ້ໄດ້ສຳລັບເຊດຊັນປັດຈຸບັນ", + "exitNeedsNewerCli": "ຄຳສັ່ງ slash ທາງໄກຕ້ອງການ Kilo CLI ຮຸ່ນໃໝ່ກວ່າ. ອັບເດດ Kilo CLI ແລະ ເຊື່ອມຕໍ່ໃໝ່." }, "sessionConnection": { "connecting": "ກຳລັງເຊື່ອມຕໍ່…", @@ -2559,7 +2562,8 @@ "delegatingWork": "ກຳລັງມອບໝາຍວຽກ", "askingQuestion": "ກຳລັງຖາມຄຳຖາມ", "consideringNextSteps": "ກຳລັງພິຈາລະນາຂັ້ນຕອນຕໍ່ໄປ", - "writingResponse": "ກຳລັງຂຽນຄຳຕອບ" + "writingResponse": "ກຳລັງຂຽນຄຳຕອບ", + "initializingSnapshot": "ກຳລັງເລີ່ມສ້າງ snapshot…" }, "slashCommands": { "startNewSession": "ເລີ່ມເຊດຊັນໃໝ່", diff --git a/apps/mobile/src/i18n/locales/lt.json b/apps/mobile/src/i18n/locales/lt.json index 2303b998dc..7fc514cef3 100644 --- a/apps/mobile/src/i18n/locales/lt.json +++ b/apps/mobile/src/i18n/locales/lt.json @@ -2159,7 +2159,10 @@ "exitMessage": "Tai sustabdo vykdomą sesiją, bet išsaugo jos istoriją.", "keepSessionRunning": "Toliau vykdyti sesiją", "exitSession": "Baigti sesiją", - "restartExitFailed": "Pradėta nauja sesija. Ankstesnė sesija vis dar atidaryta." + "restartExitFailed": "Pradėta nauja sesija. Ankstesnė sesija vis dar atidaryta.", + "exitNotSupported": "Dabartinei sesijai nuotolinės sesijos nutraukimas nepalaikomas", + "exitUnavailable": "Dabartinei sesijai nuotolinės sesijos nutraukimas nepasiekiamas", + "exitNeedsNewerCli": "Nuotolinės slash komandos reikalauja naujesnės Kilo CLI versijos. Atnaujinkite Kilo CLI ir prisijunkite iš naujo." }, "sessionConnection": { "connecting": "Jungiama…", @@ -2597,7 +2600,8 @@ "delegatingWork": "Perduodamas darbas", "askingQuestion": "Užduodamas klausimas", "consideringNextSteps": "Svarstomi kiti žingsniai", - "writingResponse": "Rašomas atsakymas" + "writingResponse": "Rašomas atsakymas", + "initializingSnapshot": "Inicijuojama momentinė kopija…" }, "slashCommands": { "startNewSession": "Pradėti naują sesiją", diff --git a/apps/mobile/src/i18n/locales/lv.json b/apps/mobile/src/i18n/locales/lv.json index 616193227c..a3cecd5137 100644 --- a/apps/mobile/src/i18n/locales/lv.json +++ b/apps/mobile/src/i18n/locales/lv.json @@ -2144,7 +2144,10 @@ "exitMessage": "Tas aptur notiekošo sesiju, bet saglabā tās vēsturi.", "keepSessionRunning": "Turpināt sesijas darbību", "exitSession": "Iziet no sesijas", - "restartExitFailed": "Sākta jauna sesija. Iepriekšējā sesija joprojām ir atvērta." + "restartExitFailed": "Sākta jauna sesija. Iepriekšējā sesija joprojām ir atvērta.", + "exitNotSupported": "Pašreizējai sesijai attālās sesijas iziešana netiek atbalstīta", + "exitUnavailable": "Pašreizējai sesijai attālās sesijas iziešana nav pieejama", + "exitNeedsNewerCli": "Attālās slash komandas prasa jaunāku Kilo CLI versiju. Atjaunini Kilo CLI un savienojies vēlreiz." }, "sessionConnection": { "connecting": "Savienojas…", @@ -2578,7 +2581,8 @@ "delegatingWork": "Deleģē darbu", "askingQuestion": "Uzdod jautājumu", "consideringNextSteps": "Apsver nākamās darbības", - "writingResponse": "Raksta atbildi" + "writingResponse": "Raksta atbildi", + "initializingSnapshot": "Notiek momentuzņēmuma inicializācija…" }, "slashCommands": { "startNewSession": "Sākt jaunu sesiju", diff --git a/apps/mobile/src/i18n/locales/mg.json b/apps/mobile/src/i18n/locales/mg.json index 2197c60f40..146db4af7b 100644 --- a/apps/mobile/src/i18n/locales/mg.json +++ b/apps/mobile/src/i18n/locales/mg.json @@ -2129,7 +2129,10 @@ "exitMessage": "Hijanonan'ny session mitohy izany saingy hotahiry ny tantarany.", "keepSessionRunning": "Tohizo ny fampandehanana ny session", "exitSession": "Mivoaha amin'ny session", - "restartExitFailed": "Nanomboka session vaovao. Mbola misokatra ny session taloha." + "restartExitFailed": "Nanomboka session vaovao. Mbola misokatra ny session taloha.", + "exitNotSupported": "Tsy tohanana ny fivoahana amin'ny session lavitra ho an'ny session amin'izao fotoana izao.", + "exitUnavailable": "Tsy azo ampiasaina ny fivoahana amin'ny session lavitra ho an'ny session amin'izao fotoana izao.", + "exitNeedsNewerCli": "Mitaky Kilo CLI vaovao ny baiko slash lavitra. Vaovao ny Kilo CLI ary hampifandray indray." }, "sessionConnection": { "connecting": "Mampifandray…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Mandefa asa", "askingQuestion": "Mametraka fanontaniana", "consideringNextSteps": "Mieritreritra ny dingana manaraka", - "writingResponse": "Manoratra valiny" + "writingResponse": "Manoratra valiny", + "initializingSnapshot": "Manomboka ny snapshot…" }, "slashCommands": { "startNewSession": "Atombohy session vaovao", diff --git a/apps/mobile/src/i18n/locales/mi.json b/apps/mobile/src/i18n/locales/mi.json index 4ec1727501..b95694790f 100644 --- a/apps/mobile/src/i18n/locales/mi.json +++ b/apps/mobile/src/i18n/locales/mi.json @@ -2129,7 +2129,10 @@ "exitMessage": "Ka mutu tēnei i te wātūtū e oma ana engari ka tiakina tōna hītori.", "keepSessionRunning": "Me oma tonu te wātūtū", "exitSession": "Puta i te wātūtū", - "restartExitFailed": "Kua tīmata tētahi wātūtū hou. Kei te tūwhera tonu te wātūtū o mua." + "restartExitFailed": "Kua tīmata tētahi wātūtū hou. Kei te tūwhera tonu te wātūtū o mua.", + "exitNotSupported": "Kāore e tautokona te putanga i te wātūtū mamao mō te wātūtū o nāianei.", + "exitUnavailable": "Kāore e wātea ana te putanga i te wātūtū mamao mō te wātūtū o nāianei.", + "exitNeedsNewerCli": "E hiahiatia ana he Kilo CLI hōu e ngā whakahau slash mamao. Whakamohoatia te Kilo CLI ka hono anō." }, "sessionConnection": { "connecting": "Kei te hono…", @@ -2559,7 +2562,8 @@ "delegatingWork": "E tuku ana i te mahi", "askingQuestion": "E pātai ana i he pātai", "consideringNextSteps": "E whakaaro ana i ngā mahi e whai ake nei", - "writingResponse": "E tuhi ana i te whakautu" + "writingResponse": "E tuhi ana i te whakautu", + "initializingSnapshot": "E tīmata ana te hopukanga…" }, "slashCommands": { "startNewSession": "Tīmata he wātū hōu", diff --git a/apps/mobile/src/i18n/locales/mk.json b/apps/mobile/src/i18n/locales/mk.json index 38599c7e91..575c19ec55 100644 --- a/apps/mobile/src/i18n/locales/mk.json +++ b/apps/mobile/src/i18n/locales/mk.json @@ -2129,7 +2129,10 @@ "exitMessage": "Ова ја запира тековната сесија, но ја зачувува нејзината историја.", "keepSessionRunning": "Продолжи сесијата да работи", "exitSession": "Напушти сесија", - "restartExitFailed": "Започната е нова сесија. Претходната сесија е сè уште отворена." + "restartExitFailed": "Започната е нова сесија. Претходната сесија е сè уште отворена.", + "exitNotSupported": "Напуштањето на далечинската сесија не е поддржано за тековната сесија.", + "exitUnavailable": "Напуштањето на далечинската сесија е недостапно за тековната сесија.", + "exitNeedsNewerCli": "Далечинските slash команди бараат понов Kilo CLI. Ажурирајте го Kilo CLI и поврзете се повторно." }, "sessionConnection": { "connecting": "Поврзување…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Делегирање на работа", "askingQuestion": "Поставување прашање", "consideringNextSteps": "Разгледување на следните чекори", - "writingResponse": "Пишување одговор" + "writingResponse": "Пишување одговор", + "initializingSnapshot": "Иницијализирање снимка…" }, "slashCommands": { "startNewSession": "Започни нова сесија", diff --git a/apps/mobile/src/i18n/locales/ml.json b/apps/mobile/src/i18n/locales/ml.json index 4dd155de56..b61686c9e5 100644 --- a/apps/mobile/src/i18n/locales/ml.json +++ b/apps/mobile/src/i18n/locales/ml.json @@ -2129,7 +2129,10 @@ "exitMessage": "ഇത് പ്രവർത്തിക്കുന്ന സെഷൻ നിർത്തും, പക്ഷേ അതിന്റെ ചരിത്രം നിലനിർത്തും.", "keepSessionRunning": "സെഷൻ പ്രവർത്തിക്കുന്നത് തുടരുക", "exitSession": "സെഷനിൽ നിന്ന് പുറത്തുകടക്കുക", - "restartExitFailed": "ഒരു പുതിയ സെഷൻ ആരംഭിച്ചു. മുൻ സെഷൻ ഇപ്പോഴും തുറന്നിരിക്കുന്നു." + "restartExitFailed": "ഒരു പുതിയ സെഷൻ ആരംഭിച്ചു. മുൻ സെഷൻ ഇപ്പോഴും തുറന്നിരിക്കുന്നു.", + "exitNotSupported": "വിദൂര സെഷനിൽ നിന്നുള്ള പുറത്തുകടക്കൽ നിലവിലെ സെഷനിൽ പിന്തുണയ്ക്കുന്നില്ല.", + "exitUnavailable": "വിദൂര സെഷനിൽ നിന്നുള്ള പുറത്തുകടക്കൽ നിലവിലെ സെഷനിൽ ലഭ്യമല്ല.", + "exitNeedsNewerCli": "വിദൂര slash കമാൻഡുകൾക്ക് പുതിയ Kilo CLI ആവശ്യമാണ്. Kilo CLI അപ്ഗ്രേഡ് ചെയ്ത് വീണ്ടും കണക്ട് ചെയ്യുക." }, "sessionConnection": { "connecting": "കണക്റ്റുചെയ്യുന്നു…", @@ -2559,7 +2562,8 @@ "delegatingWork": "ജോലി ഏൽപ്പിക്കുന്നു", "askingQuestion": "ഒരു ചോദ്യം ചോദിക്കുന്നു", "consideringNextSteps": "അടുത്ത ഘട്ടങ്ങൾ പരിഗണിക്കുന്നു", - "writingResponse": "പ്രതികരണം എഴുതുന്നു" + "writingResponse": "പ്രതികരണം എഴുതുന്നു", + "initializingSnapshot": "സ്നാപ്പ്ഷോട്ട് സമാരംഭിക്കുന്നു…" }, "slashCommands": { "startNewSession": "ഒരു പുതിയ സെഷൻ ആരംഭിക്കുക", diff --git a/apps/mobile/src/i18n/locales/mn.json b/apps/mobile/src/i18n/locales/mn.json index f60e526497..416206c11e 100644 --- a/apps/mobile/src/i18n/locales/mn.json +++ b/apps/mobile/src/i18n/locales/mn.json @@ -2129,7 +2129,10 @@ "exitMessage": "Энэ нь ажиллаж буй сессийг зогсоох боловч түүх нь үлдэнэ.", "keepSessionRunning": "Сессийг ажиллуулахыг үргэлжлүүлэх", "exitSession": "Сессээс гарах", - "restartExitFailed": "Шинэ сесс эхэлсэн. Өмнөх сесс нээлттэй хэвээр байна." + "restartExitFailed": "Шинэ сесс эхэлсэн. Өмнөх сесс нээлттэй хэвээр байна.", + "exitNotSupported": "Алсын сессээс гарах нь одоогийн сессэд дэмжигдэхгүй.", + "exitUnavailable": "Алсын сессээс гарах нь одоогийн сессэд боломжгүй.", + "exitNeedsNewerCli": "Алсын slash командуудад шинэ Kilo CLI шаардлагатай. Kilo CLI-ээ шинэчлээд дахин холбоно уу." }, "sessionConnection": { "connecting": "Холбогдож байна…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Ажлыг шилжүүлж байна", "askingQuestion": "Асуулт асууж байна", "consideringNextSteps": "Дараагийн алхмуудыг авч үзэж байна", - "writingResponse": "Хариулт бичиж байна" + "writingResponse": "Хариулт бичиж байна", + "initializingSnapshot": "Снапшотыг эхлүүлж байна…" }, "slashCommands": { "startNewSession": "Шинэ сесси эхлүүлэх", diff --git a/apps/mobile/src/i18n/locales/mr.json b/apps/mobile/src/i18n/locales/mr.json index 6c0de5a0e3..94fff6def3 100644 --- a/apps/mobile/src/i18n/locales/mr.json +++ b/apps/mobile/src/i18n/locales/mr.json @@ -2129,7 +2129,10 @@ "exitMessage": "यामुळे चालू सत्र थांबते पण त्याचा इतिहास कायम राहतो.", "keepSessionRunning": "सत्र चालू ठेवा", "exitSession": "सत्रातून बाहेर पडा", - "restartExitFailed": "नवीन सत्र सुरू केले. मागील सत्र अजूनही खुले आहे." + "restartExitFailed": "नवीन सत्र सुरू केले. मागील सत्र अजूनही खुले आहे.", + "exitNotSupported": "दूरस्थ सत्रातून बाहेर पडणे सध्याच्या सत्रासाठी समर्थित नाही.", + "exitUnavailable": "दूरस्थ सत्रातून बाहेर पडणे सध्याच्या सत्रासाठी अनुपलब्ध आहे.", + "exitNeedsNewerCli": "दूरस्थ slash कमांड्ससाठी नवीन Kilo CLI आवश्यक आहे. Kilo CLI अपडेट करा आणि पुन्हा कनेक्ट करा." }, "sessionConnection": { "connecting": "कनेक्ट होत आहे…", @@ -2559,7 +2562,8 @@ "delegatingWork": "काम सोपवत आहे", "askingQuestion": "प्रश्न विचारत आहे", "consideringNextSteps": "पुढील पावले विचारात घेत आहे", - "writingResponse": "प्रतिसाद लिहित आहे" + "writingResponse": "प्रतिसाद लिहित आहे", + "initializingSnapshot": "स्नॅपशॉट सुरू करत आहे…" }, "slashCommands": { "startNewSession": "नवीन सत्र सुरू करा", diff --git a/apps/mobile/src/i18n/locales/ms.json b/apps/mobile/src/i18n/locales/ms.json index aa517eb926..24685b4c3a 100644 --- a/apps/mobile/src/i18n/locales/ms.json +++ b/apps/mobile/src/i18n/locales/ms.json @@ -2129,7 +2129,10 @@ "exitMessage": "Ini menghentikan sesi yang berjalan tetapi mengekalkan sejarahnya.", "keepSessionRunning": "Teruskan sesi berjalan", "exitSession": "Keluar dari sesi", - "restartExitFailed": "Memulakan sesi baharu. Sesi sebelumnya masih terbuka." + "restartExitFailed": "Memulakan sesi baharu. Sesi sebelumnya masih terbuka.", + "exitNotSupported": "Keluar dari sesi jauh tidak disokong untuk sesi semasa.", + "exitUnavailable": "Keluar dari sesi jauh tidak tersedia untuk sesi semasa.", + "exitNeedsNewerCli": "Arahan slash jauh memerlukan Kilo CLI yang lebih baharu. Naik taraf Kilo CLI dan sambung semula." }, "sessionConnection": { "connecting": "Menyambung…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Mewakilkan kerja", "askingQuestion": "Mengemukakan soalan", "consideringNextSteps": "Mempertimbangkan langkah seterusnya", - "writingResponse": "Menulis respons" + "writingResponse": "Menulis respons", + "initializingSnapshot": "Memulakan snapshot…" }, "slashCommands": { "startNewSession": "Mulakan sesi baharu", diff --git a/apps/mobile/src/i18n/locales/mt.json b/apps/mobile/src/i18n/locales/mt.json index 2e13b3724e..91adac54cd 100644 --- a/apps/mobile/src/i18n/locales/mt.json +++ b/apps/mobile/src/i18n/locales/mt.json @@ -2174,7 +2174,10 @@ "exitMessage": "Dan iwaqqaf is-sessjoni għaddejja iżda jżomm l-istorja tagħha.", "keepSessionRunning": "Żomm is-sessjoni għaddejja", "exitSession": "Ispeċċa s-sessjoni", - "restartExitFailed": "Bdiet sessjoni ġdida. Is-sessjoni preċedenti għadha miftuħa." + "restartExitFailed": "Bdiet sessjoni ġdida. Is-sessjoni preċedenti għadha miftuħa.", + "exitNotSupported": "Il-ħruġ mis-sessjoni remota mhux appoġġjat għas-sessjoni attwali.", + "exitUnavailable": "Il-ħruġ mis-sessjoni remota mhux disponibbli għas-sessjoni attwali.", + "exitNeedsNewerCli": "Il-kmandi slash remoti jeħtieġu Kilo CLI aktar ġdid. Aġġorna l-Kilo CLI u erġa' kkonnetta." }, "sessionConnection": { "connecting": "Qed jikkonnettja…", @@ -2616,7 +2619,8 @@ "delegatingWork": "Qed jiddelega x-xogħol", "askingQuestion": "Qed jagħmel mistoqsija", "consideringNextSteps": "Qed jikkunsidra l-passi li jmiss", - "writingResponse": "Qed jikteb ir-risposta" + "writingResponse": "Qed jikteb ir-risposta", + "initializingSnapshot": "Qed jibda is-snapshot…" }, "slashCommands": { "startNewSession": "Ibda sessjoni ġdida", diff --git a/apps/mobile/src/i18n/locales/my.json b/apps/mobile/src/i18n/locales/my.json index a39468ad7d..0a45c4f612 100644 --- a/apps/mobile/src/i18n/locales/my.json +++ b/apps/mobile/src/i18n/locales/my.json @@ -2129,7 +2129,10 @@ "exitMessage": "၎င်းသည် လုပ်ဆောင်နေသော စက်ရှင်ကို ရပ်တန့်သော်လည်း ၎င်း၏ မှတ်တမ်းကို သိမ်းဆည်းထားသည်။", "keepSessionRunning": "စက်ရှင်ကို ဆက်လက်လုပ်ဆောင်ပါ", "exitSession": "စက်ရှင်မှ ထွက်ပါ", - "restartExitFailed": "စက်ရှင်အသစ်တစ်ခု စတင်ခဲ့သည်။ ယခင်စက်ရှင်သည် ဆက်လက်ဖွင့်ထားဆဲဖြစ်သည်။" + "restartExitFailed": "စက်ရှင်အသစ်တစ်ခု စတင်ခဲ့သည်။ ယခင်စက်ရှင်သည် ဆက်လက်ဖွင့်ထားဆဲဖြစ်သည်။", + "exitNotSupported": "အဝေးစက်ရှင်မှ ထွက်ခြင်းကို လက်ရှိ စက်ရှင်တွင် မပံ့ပိုးပါ။", + "exitUnavailable": "အဝေးစက်ရှင်မှ ထွက်ခြင်းကို လက်ရှိ စက်ရှင်တွင် မရရှိနိုင်ပါ။", + "exitNeedsNewerCli": "အဝေး slash command များအတွက် Kilo CLI အသစ် လိုအပ်ပါသည်။ Kilo CLI ကို အဆင့်မြှင့်ပြီး ပြန်ချိတ်ဆက်ပါ။" }, "sessionConnection": { "connecting": "ချိတ်ဆက်နေသည်…", @@ -2559,7 +2562,8 @@ "delegatingWork": "လုပ်ငန်းများ လွှဲပြောင်းနေသည်", "askingQuestion": "မေးခွန်းတစ်ခု မေးနေသည်", "consideringNextSteps": "နောက်လုပ်ဆောင်ချက်များ စဉ်းစားနေသည်", - "writingResponse": "တုံ့ပြန်ချက် ရေးနေသည်" + "writingResponse": "တုံ့ပြန်ချက် ရေးနေသည်", + "initializingSnapshot": "snapshot စတင်နေသည်…" }, "slashCommands": { "startNewSession": "session အသစ် စတင်ရန်", diff --git a/apps/mobile/src/i18n/locales/nb.json b/apps/mobile/src/i18n/locales/nb.json index 8609922dd7..d5943f515b 100644 --- a/apps/mobile/src/i18n/locales/nb.json +++ b/apps/mobile/src/i18n/locales/nb.json @@ -2129,7 +2129,10 @@ "exitMessage": "Dette stopper den kjørende økten, men beholder historikken.", "keepSessionRunning": "La økten fortsette å kjøre", "exitSession": "Avslutt økt", - "restartExitFailed": "Startet en ny økt. Den forrige økten er fortsatt åpen." + "restartExitFailed": "Startet en ny økt. Den forrige økten er fortsatt åpen.", + "exitNotSupported": "Avslutning av ekstern økt støttes ikke for den gjeldende økten", + "exitUnavailable": "Avslutning av ekstern økt er utilgjengelig for den gjeldende økten", + "exitNeedsNewerCli": "Eksterne skråstrekskommandoer krever en nyere Kilo CLI. Oppdater Kilo CLI og koble til på nytt." }, "sessionConnection": { "connecting": "Kobler til…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Delegerer arbeid", "askingQuestion": "Stiller et spørsmål", "consideringNextSteps": "Vurderer neste steg", - "writingResponse": "Skriver svar" + "writingResponse": "Skriver svar", + "initializingSnapshot": "Initialiserer øyeblikksbilde…" }, "slashCommands": { "startNewSession": "Start en ny økt", diff --git a/apps/mobile/src/i18n/locales/ne.json b/apps/mobile/src/i18n/locales/ne.json index 1d855ece26..0903b6966c 100644 --- a/apps/mobile/src/i18n/locales/ne.json +++ b/apps/mobile/src/i18n/locales/ne.json @@ -2129,7 +2129,10 @@ "exitMessage": "यसले चलिरहेको सत्र रोक्छ तर यसको इतिहास राख्छ।", "keepSessionRunning": "सत्र चलाइराख्नुहोस्", "exitSession": "सत्र बाहिरिनुहोस्", - "restartExitFailed": "नयाँ सत्र सुरु गरियो। अघिल्लो सत्र अझै खुला छ।" + "restartExitFailed": "नयाँ सत्र सुरु गरियो। अघिल्लो सत्र अझै खुला छ।", + "exitNotSupported": "वर्तमान सत्रका लागि दूरस्थ सत्रबाट बाहिरिने समर्थन छैन", + "exitUnavailable": "वर्तमान सत्रका लागि दूरस्थ सत्रबाट बाहिरिने उपलब्ध छैन", + "exitNeedsNewerCli": "दूरस्थ स्ल्यास कमाण्डहरूका लागि नयाँ Kilo CLI चाहिन्छ। Kilo CLI अद्यावधिक गरेर पुनः जडान गर्नुहोस्।" }, "sessionConnection": { "connecting": "जडान गर्दै…", @@ -2559,7 +2562,8 @@ "delegatingWork": "काम सुम्पिँदै", "askingQuestion": "प्रश्न सोध्दै", "consideringNextSteps": "अर्को चरणहरू विचार गर्दै", - "writingResponse": "प्रतिक्रिया लेख्दै" + "writingResponse": "प्रतिक्रिया लेख्दै", + "initializingSnapshot": "स्न्यापसट सुरु गर्दै…" }, "slashCommands": { "startNewSession": "नयाँ सत्र सुरु गर्नुहोस्", diff --git a/apps/mobile/src/i18n/locales/nl.json b/apps/mobile/src/i18n/locales/nl.json index 22d0e82b61..7a0dcc79ab 100644 --- a/apps/mobile/src/i18n/locales/nl.json +++ b/apps/mobile/src/i18n/locales/nl.json @@ -1675,7 +1675,10 @@ "exitMessage": "Dit stopt de lopende sessie maar behoudt de geschiedenis.", "keepSessionRunning": "Sessie laten draaien", "exitSession": "Sessie afsluiten", - "restartExitFailed": "Nieuwe sessie gestart. De vorige sessie is nog open." + "restartExitFailed": "Nieuwe sessie gestart. De vorige sessie is nog open.", + "exitNotSupported": "Het afsluiten van een externe sessie wordt niet ondersteund voor de huidige sessie", + "exitUnavailable": "Het afsluiten van een externe sessie is niet beschikbaar voor de huidige sessie", + "exitNeedsNewerCli": "Externe slash-opdrachten vereisen een nieuwere Kilo CLI. Werk Kilo CLI bij en maak opnieuw verbinding." }, "sessionConnection": { "connecting": "Verbinden…", @@ -2105,7 +2108,8 @@ "delegatingWork": "Werk delegeren", "askingQuestion": "Een vraag stellen", "consideringNextSteps": "Volgende stappen overwegen", - "writingResponse": "Antwoord schrijven" + "writingResponse": "Antwoord schrijven", + "initializingSnapshot": "Snapshot initialiseren…" }, "slashCommands": { "startNewSession": "Een nieuwe sessie starten", diff --git a/apps/mobile/src/i18n/locales/om.json b/apps/mobile/src/i18n/locales/om.json index 653056dc01..0395e03a59 100644 --- a/apps/mobile/src/i18n/locales/om.json +++ b/apps/mobile/src/i18n/locales/om.json @@ -2129,7 +2129,10 @@ "exitMessage": "Kun xalayyii hojjechaa jiru dhaaba garuu seenaa isaa eega.", "keepSessionRunning": "Xalayyii hojjechuu itti fufi", "exitSession": "Xalayyii keessaa ba'i", - "restartExitFailed": "Xalayyii haaraa jalqabe. Xalayyiin duraanii hamma ammaatti banamaa jira." + "restartExitFailed": "Xalayyii haaraa jalqabe. Xalayyiin duraanii hamma ammaatti banamaa jira.", + "exitNotSupported": "Xalayyii fagoo keessaa ba'uun sessa ammaa kanaaf hin deeggaramu", + "exitUnavailable": "Xalayyii fagoo keessaa ba'uun sessa ammaa kanaaf hin argamu", + "exitNeedsNewerCli": "Ajajootni slash fagoo Kilo CLI haaraa barbaadu. Kilo CLI haaromsiitii deebi'ii walqabi." }, "sessionConnection": { "connecting": "Wal qabachaa jira…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Hojii ramaduu jira", "askingQuestion": "Gaaffii gaafachaa jira", "consideringNextSteps": "Tarkaanfii itti aanu yaadachaa jira", - "writingResponse": "Deebii barreessaa jira" + "writingResponse": "Deebii barreessaa jira", + "initializingSnapshot": "Snapshot jalqabaa jira…" }, "slashCommands": { "startNewSession": "Shumarra haaraa jalqabi", diff --git a/apps/mobile/src/i18n/locales/or.json b/apps/mobile/src/i18n/locales/or.json index 43c904814e..d8557abb26 100644 --- a/apps/mobile/src/i18n/locales/or.json +++ b/apps/mobile/src/i18n/locales/or.json @@ -2129,7 +2129,10 @@ "exitMessage": "ଏହା ଚାଲୁଥିବା ସେସନ୍ ବନ୍ଦ କରେ କିନ୍ତୁ ଏହାର ଇତିହାସ ରଖେ।", "keepSessionRunning": "ସେସନ୍ ଚାଲୁ ରଖନ୍ତୁ", "exitSession": "ସେସନ୍ ବାହାରନ୍ତୁ", - "restartExitFailed": "ଏକ ନୂଆ ସେସନ୍ ଆରମ୍ଭ ହେଲା। ପୂର୍ବ ସେସନ୍ ଏପର୍ଯ୍ୟନ୍ତ ଖୋଲା।" + "restartExitFailed": "ଏକ ନୂଆ ସେସନ୍ ଆରମ୍ଭ ହେଲା। ପୂର୍ବ ସେସନ୍ ଏପର୍ଯ୍ୟନ୍ତ ଖୋଲା।", + "exitNotSupported": "ବର୍ତ୍ତମାନ ସେସନ୍ ପାଇଁ ଦୂରସ୍ଥ ସେସନ୍ ବାହାରିବା ସମର୍ଥିତ ନୁହେଁ", + "exitUnavailable": "ବର୍ତ୍ତମାନ ସେସନ୍ ପାଇଁ ଦୂରସ୍ଥ ସେସନ୍ ବାହାରିବା ଉପଲବ୍ଧ ନାହିଁ", + "exitNeedsNewerCli": "ଦୂରସ୍ଥ ସ୍ଲାସ୍ କମାଣ୍ଡଗୁଡ଼ିକ ଏକ ନୂତନ Kilo CLI ଆବଶ୍ୟକ କରନ୍ତି। Kilo CLI ଅଦ୍ୟତନ କରି ପୁନଃସଂଯୋଗ କରନ୍ତୁ।" }, "sessionConnection": { "connecting": "ସଂଯୋଗ କରୁଛି…", @@ -2559,7 +2562,8 @@ "delegatingWork": "କାର୍ଯ୍ୟ ଅର୍ପଣ କରୁଛି", "askingQuestion": "ପ୍ରଶ୍ନ ପଚାରୁଛି", "consideringNextSteps": "ପରବର୍ତ୍ତୀ ପଦକ୍ଷେପ ବିଚାର କରୁଛି", - "writingResponse": "ଉତ୍ତର ଲେଖୁଛି" + "writingResponse": "ଉତ୍ତର ଲେଖୁଛି", + "initializingSnapshot": "ସ୍ନାପସଟ୍ ଆରମ୍ଭ କରୁଛି…" }, "slashCommands": { "startNewSession": "ନୂତନ ସେସନ୍ ଆରମ୍ଭ କରନ୍ତୁ", diff --git a/apps/mobile/src/i18n/locales/pa.json b/apps/mobile/src/i18n/locales/pa.json index 856898059f..f3a5f5c699 100644 --- a/apps/mobile/src/i18n/locales/pa.json +++ b/apps/mobile/src/i18n/locales/pa.json @@ -2129,7 +2129,10 @@ "exitMessage": "ਇਹ ਚੱਲ ਰਹੇ ਸੈਸ਼ਨ ਨੂੰ ਰੋਕਦਾ ਹੈ ਪਰ ਇਸਦਾ ਇਤਿਹਾਸ ਰੱਖਦਾ ਹੈ।", "keepSessionRunning": "ਸੈਸ਼ਨ ਚਲਦਾ ਰੱਖੋ", "exitSession": "ਸੈਸ਼ਨ ਤੋਂ ਬਾਹਰ ਨਿਕਲੋ", - "restartExitFailed": "ਨਵਾਂ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ। ਪਿਛਲਾ ਸੈਸ਼ਨ ਅਜੇ ਵੀ ਖੁੱਲ੍ਹਾ ਹੈ।" + "restartExitFailed": "ਨਵਾਂ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ। ਪਿਛਲਾ ਸੈਸ਼ਨ ਅਜੇ ਵੀ ਖੁੱਲ੍ਹਾ ਹੈ।", + "exitNotSupported": "ਮੌਜੂਦਾ ਸੈਸ਼ਨ ਲਈ ਰਿਮੋਟ ਸੈਸ਼ਨ ਤੋਂ ਬਾਹਰ ਜਾਣਾ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ", + "exitUnavailable": "ਮੌਜੂਦਾ ਸੈਸ਼ਨ ਲਈ ਰਿਮੋਟ ਸੈਸ਼ਨ ਤੋਂ ਬਾਹਰ ਜਾਣਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ", + "exitNeedsNewerCli": "ਰਿਮੋਟ ਸਲੈਸ਼ ਕਮਾਂਡਾਂ ਲਈ ਇੱਕ ਨਵਾਂ Kilo CLI ਲੋੜੀਂਦਾ ਹੈ। Kilo CLI ਅੱਪਡੇਟ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕਨੈਕਟ ਕਰੋ।" }, "sessionConnection": { "connecting": "ਕਨੈਕਟ ਹੋ ਰਿਹਾ ਹੈ…", @@ -2559,7 +2562,8 @@ "delegatingWork": "ਕੰਮ ਸੌਂਪਿਆ ਜਾ ਰਿਹਾ ਹੈ", "askingQuestion": "ਇੱਕ ਸਵਾਲ ਪੁੱਛਿਆ ਜਾ ਰਿਹਾ ਹੈ", "consideringNextSteps": "ਅਗਲੇ ਕਦਮਾਂ 'ਤੇ ਵਿਚਾਰ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ", - "writingResponse": "ਜਵਾਬ ਲਿਖਿਆ ਜਾ ਰਿਹਾ ਹੈ" + "writingResponse": "ਜਵਾਬ ਲਿਖਿਆ ਜਾ ਰਿਹਾ ਹੈ", + "initializingSnapshot": "ਸਨੈਪਸ਼ਾਟ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…" }, "slashCommands": { "startNewSession": "ਨਵਾਂ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰੋ", diff --git a/apps/mobile/src/i18n/locales/pl.json b/apps/mobile/src/i18n/locales/pl.json index aacd0983fb..5da88aa35e 100644 --- a/apps/mobile/src/i18n/locales/pl.json +++ b/apps/mobile/src/i18n/locales/pl.json @@ -1691,7 +1691,10 @@ "exitMessage": "Spowoduje to zatrzymanie działającej sesji, ale zachowa jej historię.", "keepSessionRunning": "Pozostaw sesję uruchomioną", "exitSession": "Zakończ sesję", - "restartExitFailed": "Rozpoczęto nową sesję. Poprzednia sesja jest nadal otwarta." + "restartExitFailed": "Rozpoczęto nową sesję. Poprzednia sesja jest nadal otwarta.", + "exitNotSupported": "Zakończenie sesji zdalnej nie jest obsługiwane dla bieżącej sesji", + "exitUnavailable": "Zakończenie sesji zdalnej jest niedostępne dla bieżącej sesji", + "exitNeedsNewerCli": "Zdalne polecenia slash wymagają nowszej wersji Kilo CLI. Zaktualizuj Kilo CLI i połącz się ponownie." }, "sessionConnection": { "connecting": "Łączenie…", @@ -2129,7 +2132,8 @@ "delegatingWork": "Delegowanie pracy", "askingQuestion": "Zadawanie pytania", "consideringNextSteps": "Rozważanie kolejnych kroków", - "writingResponse": "Pisanie odpowiedzi" + "writingResponse": "Pisanie odpowiedzi", + "initializingSnapshot": "Inicjalizowanie migawki…" }, "slashCommands": { "startNewSession": "Rozpocznij nową sesję", diff --git a/apps/mobile/src/i18n/locales/ps.json b/apps/mobile/src/i18n/locales/ps.json index 02b9ee83f2..739206755a 100644 --- a/apps/mobile/src/i18n/locales/ps.json +++ b/apps/mobile/src/i18n/locales/ps.json @@ -2129,7 +2129,10 @@ "exitMessage": "دا روانه ناسته ودروي خو تاریخچه یې ساتي.", "keepSessionRunning": "ناسته روانه وساتئ", "exitSession": "له ناستې ووځئ", - "restartExitFailed": "نوې ناسته پیل شوه. مخکینۍ ناسته لا هم خلاصه ده." + "restartExitFailed": "نوې ناسته پیل شوه. مخکینۍ ناسته لا هم خلاصه ده.", + "exitNotSupported": "د اوسنۍ غونډې لپاره د لیرې ناستې وتل ملاتړ نه کیږي", + "exitUnavailable": "د اوسنۍ غونډې لپاره د لیرې ناستې وتل شتون نلري", + "exitNeedsNewerCli": "د لیرې سلیش کمانډونو لپاره نوې Kilo CLI اړینه ده. Kilo CLI تازه کړئ او بیا ونښلئ." }, "sessionConnection": { "connecting": "نښلېږي…", @@ -2559,7 +2562,8 @@ "delegatingWork": "کار سپارل", "askingQuestion": "پوښتنه کول", "consideringNextSteps": "راتلونکي ګامونه غور کول", - "writingResponse": "ځواب لیکل" + "writingResponse": "ځواب لیکل", + "initializingSnapshot": "سنپ شاټ پیل کیږي…" }, "slashCommands": { "startNewSession": "نوې غونډه پیل کړئ", diff --git a/apps/mobile/src/i18n/locales/pt-BR.json b/apps/mobile/src/i18n/locales/pt-BR.json index 9f5cc50b03..1c9d7ba94d 100644 --- a/apps/mobile/src/i18n/locales/pt-BR.json +++ b/apps/mobile/src/i18n/locales/pt-BR.json @@ -1669,7 +1669,10 @@ "exitMessage": "Isso interrompe a sessão em execução, mas mantém seu histórico.", "keepSessionRunning": "Manter sessão em execução", "exitSession": "Encerrar sessão", - "restartExitFailed": "Uma nova sessão foi iniciada. A sessão anterior ainda está aberta." + "restartExitFailed": "Uma nova sessão foi iniciada. A sessão anterior ainda está aberta.", + "exitNotSupported": "Não há suporte para encerrar a sessão remota na sessão atual", + "exitUnavailable": "Não é possível encerrar a sessão remota na sessão atual", + "exitNeedsNewerCli": "Os comandos de barra remotos exigem uma Kilo CLI mais recente. Atualize a Kilo CLI e reconecte." }, "sessionConnection": { "connecting": "Conectando…", @@ -2103,7 +2106,8 @@ "delegatingWork": "Delegando trabalho", "askingQuestion": "Fazendo uma pergunta", "consideringNextSteps": "Considerando os próximos passos", - "writingResponse": "Escrevendo a resposta" + "writingResponse": "Escrevendo a resposta", + "initializingSnapshot": "Inicializando o snapshot…" }, "slashCommands": { "startNewSession": "Iniciar uma nova sessão", diff --git a/apps/mobile/src/i18n/locales/pt.json b/apps/mobile/src/i18n/locales/pt.json index 8a39c0ab70..60a4d727b9 100644 --- a/apps/mobile/src/i18n/locales/pt.json +++ b/apps/mobile/src/i18n/locales/pt.json @@ -2144,7 +2144,10 @@ "exitMessage": "Isto interrompe a sessão em execução mas mantém o seu histórico.", "keepSessionRunning": "Manter a sessão em execução", "exitSession": "Sair da sessão", - "restartExitFailed": "Iniciada uma nova sessão. A sessão anterior ainda está aberta." + "restartExitFailed": "Iniciada uma nova sessão. A sessão anterior ainda está aberta.", + "exitNotSupported": "Sair da sessão remota não é suportado para a sessão atual", + "exitUnavailable": "Sair da sessão remota não está disponível para a sessão atual", + "exitNeedsNewerCli": "Os comandos de barra remotos exigem uma CLI do Kilo mais recente. Atualize a CLI do Kilo e volte a ligar." }, "sessionConnection": { "connecting": "A ligar…", @@ -2578,7 +2581,8 @@ "delegatingWork": "A delegar trabalho", "askingQuestion": "A fazer uma pergunta", "consideringNextSteps": "A considerar os próximos passos", - "writingResponse": "A escrever a resposta" + "writingResponse": "A escrever a resposta", + "initializingSnapshot": "A inicializar o instantâneo…" }, "slashCommands": { "startNewSession": "Iniciar uma nova sessão", diff --git a/apps/mobile/src/i18n/locales/ro.json b/apps/mobile/src/i18n/locales/ro.json index b50322c63a..3557f51480 100644 --- a/apps/mobile/src/i18n/locales/ro.json +++ b/apps/mobile/src/i18n/locales/ro.json @@ -2144,7 +2144,10 @@ "exitMessage": "Aceasta oprește sesiunea în curs, dar îi păstrează istoricul.", "keepSessionRunning": "Păstrează sesiunea în curs", "exitSession": "Închide sesiunea", - "restartExitFailed": "A început o sesiune nouă. Sesiunea anterioară este încă deschisă." + "restartExitFailed": "A început o sesiune nouă. Sesiunea anterioară este încă deschisă.", + "exitNotSupported": "Ieșirea din sesiunea de la distanță nu este acceptată pentru sesiunea curentă", + "exitUnavailable": "Ieșirea din sesiunea de la distanță nu este disponibilă pentru sesiunea curentă", + "exitNeedsNewerCli": "Comenzile slash de la distanță necesită un Kilo CLI mai nou. Actualizează Kilo CLI și reconectează-te." }, "sessionConnection": { "connecting": "Se conectează…", @@ -2578,7 +2581,8 @@ "delegatingWork": "Deleagă activitate", "askingQuestion": "Pune o întrebare", "consideringNextSteps": "Analizează pașii următori", - "writingResponse": "Scrie răspunsul" + "writingResponse": "Scrie răspunsul", + "initializingSnapshot": "Se inițializează instantaneul…" }, "slashCommands": { "startNewSession": "Începe o sesiune nouă", diff --git a/apps/mobile/src/i18n/locales/ru.json b/apps/mobile/src/i18n/locales/ru.json index 349bcec5df..66bc2eeb13 100644 --- a/apps/mobile/src/i18n/locales/ru.json +++ b/apps/mobile/src/i18n/locales/ru.json @@ -1691,7 +1691,10 @@ "exitMessage": "Это остановит текущий сеанс, но сохранит его историю.", "keepSessionRunning": "Оставить сеанс запущенным", "exitSession": "Выйти из сеанса", - "restartExitFailed": "Начата новая сессия. Предыдущая сессия всё ещё открыта." + "restartExitFailed": "Начата новая сессия. Предыдущая сессия всё ещё открыта.", + "exitNotSupported": "Выход из удаленного сеанса не поддерживается для текущего сеанса", + "exitUnavailable": "Выход из удаленного сеанса недоступен для текущего сеанса", + "exitNeedsNewerCli": "Удаленные команды со слешем требуют более новый Kilo CLI. Обновите Kilo CLI и переподключитесь." }, "sessionConnection": { "connecting": "Подключение…", @@ -2129,7 +2132,8 @@ "delegatingWork": "Делегирование работы", "askingQuestion": "Задает вопрос", "consideringNextSteps": "Обдумывание следующих шагов", - "writingResponse": "Написание ответа" + "writingResponse": "Написание ответа", + "initializingSnapshot": "Инициализация снимка…" }, "slashCommands": { "startNewSession": "Начать новый сеанс", diff --git a/apps/mobile/src/i18n/locales/si.json b/apps/mobile/src/i18n/locales/si.json index 75eeb7696a..20e21e0903 100644 --- a/apps/mobile/src/i18n/locales/si.json +++ b/apps/mobile/src/i18n/locales/si.json @@ -2129,7 +2129,10 @@ "exitMessage": "මෙය ධාවනය වන සැසිය නවත්වන නමුත් එහි ඉතිහාසය තබා ගනී.", "keepSessionRunning": "සැසිය දිගටම ධාවනය කරන්න", "exitSession": "සැසියෙන් ඉවත් වන්න", - "restartExitFailed": "නව සැසියක් ආරම්භ කර ඇත. පෙර සැසිය තවමත් විවෘතයි." + "restartExitFailed": "නව සැසියක් ආරම්භ කර ඇත. පෙර සැසිය තවමත් විවෘතයි.", + "exitNotSupported": "වත්මන් සැසිය සඳහා දුරස්ථ සැසියෙන් පිටවීම සහාය නොදක්වයි", + "exitUnavailable": "වත්මන් සැසිය සඳහා දුරස්ථ සැසියෙන් පිටවීම ලබා ගත නොහැක", + "exitNeedsNewerCli": "දුරස්ථ ස්ලෑෂ් විධාන සඳහා නව Kilo CLI එකක් අවශ්ය වේ. Kilo CLI යාවත්කාලීන කර නැවත සම්බන්ධ වන්න." }, "sessionConnection": { "connecting": "සම්බන්ධ වෙමින්…", @@ -2559,7 +2562,8 @@ "delegatingWork": "කාර්යය පැවරීම", "askingQuestion": "ප්‍රශ්නයක් අසමින්", "consideringNextSteps": "ඊළඟ පියවර සලකා බලමින්", - "writingResponse": "ප්‍රතිචාරය ලියමින්" + "writingResponse": "ප්‍රතිචාරය ලියමින්", + "initializingSnapshot": "ස්නැප්ෂොට් එක ආරම්භ කරමින්…" }, "slashCommands": { "startNewSession": "නව සැසියක් ආරම්භ කරන්න", diff --git a/apps/mobile/src/i18n/locales/sk.json b/apps/mobile/src/i18n/locales/sk.json index 38364eb0bf..d24ddeeb9a 100644 --- a/apps/mobile/src/i18n/locales/sk.json +++ b/apps/mobile/src/i18n/locales/sk.json @@ -2159,7 +2159,10 @@ "exitMessage": "Týmto sa zastaví bežiace sedenie, ale jeho história sa zachová.", "keepSessionRunning": "Nechajte sedenie bežať", "exitSession": "Ukončiť sedenie", - "restartExitFailed": "Spustilo sa nové sedenie. Predchádzajúce sedenie je stále otvorené." + "restartExitFailed": "Spustilo sa nové sedenie. Predchádzajúce sedenie je stále otvorené.", + "exitNotSupported": "Ukončenie vzdialeného sedenia nie je pre aktuálne sedenie podporované", + "exitUnavailable": "Ukončenie vzdialeného sedenia nie je pre aktuálne sedenie dostupné", + "exitNeedsNewerCli": "Vzdialené príkazy so lomkou vyžadujú novšie Kilo CLI. Aktualizujte Kilo CLI a znovu sa pripojte." }, "sessionConnection": { "connecting": "Pripája sa…", @@ -2597,7 +2600,8 @@ "delegatingWork": "Delegujem prácu", "askingQuestion": "Kladiem otázku", "consideringNextSteps": "Zvažujem ďalšie kroky", - "writingResponse": "Píšem odpoveď" + "writingResponse": "Píšem odpoveď", + "initializingSnapshot": "Inicializujem snímku…" }, "slashCommands": { "startNewSession": "Spustiť novú reláciu", diff --git a/apps/mobile/src/i18n/locales/sl.json b/apps/mobile/src/i18n/locales/sl.json index c97d9c1ba3..2d75260db9 100644 --- a/apps/mobile/src/i18n/locales/sl.json +++ b/apps/mobile/src/i18n/locales/sl.json @@ -2159,7 +2159,10 @@ "exitMessage": "To ustavi izvajano sejo, vendar ohrani njeno zgodovino.", "keepSessionRunning": "Pusti sejo izvajati", "exitSession": "Zapusti sejo", - "restartExitFailed": "Začela se je nova seja. Prejšnja seja je še vedno odprta." + "restartExitFailed": "Začela se je nova seja. Prejšnja seja je še vedno odprta.", + "exitNotSupported": "Zapustitev oddaljene seje za trenutno sejo ni podprta", + "exitUnavailable": "Zapustitev oddaljene seje za trenutno sejo ni na voljo", + "exitNeedsNewerCli": "Oddaljeni ukazi s poševnico zahtevajo novejši Kilo CLI. Posodobite Kilo CLI in se ponovno povežite." }, "sessionConnection": { "connecting": "Povezovanje…", @@ -2597,7 +2600,8 @@ "delegatingWork": "Delegiranje dela", "askingQuestion": "Postavljanje vprašanja", "consideringNextSteps": "Premišljevanje o naslednjih korakih", - "writingResponse": "Pisanje odgovora" + "writingResponse": "Pisanje odgovora", + "initializingSnapshot": "Inicializacija posnetka…" }, "slashCommands": { "startNewSession": "Začni novo sejo", diff --git a/apps/mobile/src/i18n/locales/so.json b/apps/mobile/src/i18n/locales/so.json index d833104eb5..d164157755 100644 --- a/apps/mobile/src/i18n/locales/so.json +++ b/apps/mobile/src/i18n/locales/so.json @@ -2129,7 +2129,10 @@ "exitMessage": "Tani waxay joojinaysaa kalfadhiga socda laakiin waxay keydisaa taariikhdiisa.", "keepSessionRunning": "Si wad u socodsii kalfadhiga", "exitSession": "Ka bax kalfadhiga", - "restartExitFailed": "Waxaa la bilaabay kalfadhi cusub. Kalfadhigii hore wali wuu furan yahay." + "restartExitFailed": "Waxaa la bilaabay kalfadhi cusub. Kalfadhigii hore wali wuu furan yahay.", + "exitNotSupported": "Ka bixidda kalfadhiga fog looma taageero kalfadhiga hadda jira", + "exitUnavailable": "Ka bixidda kalfadhiga fog looma heli karo kalfadhiga hadda jira", + "exitNeedsNewerCli": "Amarrada jiidka ee fog waxay u baahan yihiin Kilo CLI ka cusub. Cusboonaysii Kilo CLI oo dib u xir." }, "sessionConnection": { "connecting": "Ku xirid...", @@ -2559,7 +2562,8 @@ "delegatingWork": "Waxaa dhiibaya hawsha", "askingQuestion": "Waydiinaya su'aal", "consideringNextSteps": "Tixgelinaya tillaabooyinka xiga", - "writingResponse": "Qoraya jawaabta" + "writingResponse": "Qoraya jawaabta", + "initializingSnapshot": "Bilaabaya snapshot-ka…" }, "slashCommands": { "startNewSession": "Bilow kalfadhi cusub", diff --git a/apps/mobile/src/i18n/locales/sq.json b/apps/mobile/src/i18n/locales/sq.json index ccc80710d9..a7c6d60719 100644 --- a/apps/mobile/src/i18n/locales/sq.json +++ b/apps/mobile/src/i18n/locales/sq.json @@ -2129,7 +2129,10 @@ "exitMessage": "Kjo ndalon seancën që po ekzekutohet, por ruan historinë e saj.", "keepSessionRunning": "Mbaje seancën në ekzekutim", "exitSession": "Mbyll seancën", - "restartExitFailed": "Filloi një seancë e re. Seanca e mëparshme është ende e hapur." + "restartExitFailed": "Filloi një seancë e re. Seanca e mëparshme është ende e hapur.", + "exitNotSupported": "Dalja nga seanca në distancë nuk mbështetet për seancën aktuale", + "exitUnavailable": "Dalja nga seanca në distancë nuk është e disponueshme për seancën aktuale", + "exitNeedsNewerCli": "Komandat e pjerrëta në distancë kërkojnë një Kilo CLI më të ri. Përditësoni Kilo CLI dhe rilidhuni." }, "sessionConnection": { "connecting": "Duke u lidhur…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Duke deleguar punën", "askingQuestion": "Duke bërë një pyetje", "consideringNextSteps": "Duke shqyrtuar hapat e ardhshëm", - "writingResponse": "Duke shkruar përgjigjen" + "writingResponse": "Duke shkruar përgjigjen", + "initializingSnapshot": "Duke inicializuar snapshot-in…" }, "slashCommands": { "startNewSession": "Filloni një seancë të re", diff --git a/apps/mobile/src/i18n/locales/sr.json b/apps/mobile/src/i18n/locales/sr.json index b0b64f9528..417d06e9c5 100644 --- a/apps/mobile/src/i18n/locales/sr.json +++ b/apps/mobile/src/i18n/locales/sr.json @@ -2144,7 +2144,10 @@ "exitMessage": "Ovo zaustavlja sesiju koja radi, ali zadržava njenu istoriju.", "keepSessionRunning": "Nastavi da sesija radi", "exitSession": "Izađi iz sesije", - "restartExitFailed": "Pokrenuta je nova sesija. Prethodna sesija je i dalje otvorena." + "restartExitFailed": "Pokrenuta je nova sesija. Prethodna sesija je i dalje otvorena.", + "exitNotSupported": "Izlazak iz daljinske sesije nije podržan za trenutnu sesiju", + "exitUnavailable": "Izlazak iz daljinske sesije nije dostupan za trenutnu sesiju", + "exitNeedsNewerCli": "Daljinske slash komande zahtevaju noviji Kilo CLI. Ažurirajte Kilo CLI i ponovo se povežite." }, "sessionConnection": { "connecting": "Povezivanje…", @@ -2578,7 +2581,8 @@ "delegatingWork": "Delegiranje posla", "askingQuestion": "Postavljanje pitanja", "consideringNextSteps": "Razmatranje sledećih koraka", - "writingResponse": "Pisanje odgovora" + "writingResponse": "Pisanje odgovora", + "initializingSnapshot": "Inicijalizacija snimka…" }, "slashCommands": { "startNewSession": "Pokreni novu sesiju", diff --git a/apps/mobile/src/i18n/locales/sv.json b/apps/mobile/src/i18n/locales/sv.json index 948c3b9e02..78b40dc984 100644 --- a/apps/mobile/src/i18n/locales/sv.json +++ b/apps/mobile/src/i18n/locales/sv.json @@ -2129,7 +2129,10 @@ "exitMessage": "Detta stoppar den körande sessionen men behåller dess historik.", "keepSessionRunning": "Fortsätt köra sessionen", "exitSession": "Avsluta sessionen", - "restartExitFailed": "Startade en ny session. Den föregående sessionen är fortfarande öppen." + "restartExitFailed": "Startade en ny session. Den föregående sessionen är fortfarande öppen.", + "exitNotSupported": "Att avsluta fjärrsessionen stöds inte för den aktuella sessionen.", + "exitUnavailable": "Att avsluta fjärrsessionen är inte tillgängligt för den aktuella sessionen.", + "exitNeedsNewerCli": "Snedstreckskommandon i fjärrsessioner kräver en nyare Kilo CLI. Uppdatera Kilo CLI och återanslut." }, "sessionConnection": { "connecting": "Ansluter…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Delegerar arbete", "askingQuestion": "Ställer en fråga", "consideringNextSteps": "Överväger nästa steg", - "writingResponse": "Skriver svar" + "writingResponse": "Skriver svar", + "initializingSnapshot": "Initierar snapshot…" }, "slashCommands": { "startNewSession": "Starta en ny session", diff --git a/apps/mobile/src/i18n/locales/sw.json b/apps/mobile/src/i18n/locales/sw.json index a4c9c8a34b..2a1845532c 100644 --- a/apps/mobile/src/i18n/locales/sw.json +++ b/apps/mobile/src/i18n/locales/sw.json @@ -2129,7 +2129,10 @@ "exitMessage": "Hii inasimamisha kikao kinachoendelea lakini inahifadhi historia yake.", "keepSessionRunning": "Endeleza kikao kinachoendelea", "exitSession": "Toka kwenye kikao", - "restartExitFailed": "Imeanza kikao kipya. Kikao cha awali bado kimefunguliwa." + "restartExitFailed": "Imeanza kikao kipya. Kikao cha awali bado kimefunguliwa.", + "exitNotSupported": "Kutoka kwenye kikao cha mbali hakuungwi mkono kwa kikao cha sasa.", + "exitUnavailable": "Kutoka kwenye kikao cha mbali hakupatikani kwa kikao cha sasa.", + "exitNeedsNewerCli": "Amri za slash za mbali zinahitaji Kilo CLI mpya zaidi. Sasisha Kilo CLI na unganisha tena." }, "sessionConnection": { "connecting": "Inaunganisha…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Inagawia kazi", "askingQuestion": "Inauliza swali", "consideringNextSteps": "Inazingatia hatua zinazofuata", - "writingResponse": "Inaandika jibu" + "writingResponse": "Inaandika jibu", + "initializingSnapshot": "Inaanzisha snapshot…" }, "slashCommands": { "startNewSession": "Anza kikao kipya", diff --git a/apps/mobile/src/i18n/locales/ta.json b/apps/mobile/src/i18n/locales/ta.json index 2745138fe0..c6bf6952f0 100644 --- a/apps/mobile/src/i18n/locales/ta.json +++ b/apps/mobile/src/i18n/locales/ta.json @@ -2129,7 +2129,10 @@ "exitMessage": "இது இயங்கும் அமர்வை நிறுத்தும் ஆனால் அதன் வரலாற்றை வைத்திருக்கும்.", "keepSessionRunning": "அமர்வை இயங்க வை", "exitSession": "அமர்விலிருந்து வெளியேறு", - "restartExitFailed": "புதிய அமர்வைத் தொடங்கியது. முந்தைய அமர்வு இன்னும் திறந்துள்ளது." + "restartExitFailed": "புதிய அமர்வைத் தொடங்கியது. முந்தைய அமர்வு இன்னும் திறந்துள்ளது.", + "exitNotSupported": "தொலை அமர்விலிருந்து வெளியேறுவது தற்போதைய அமர்வுக்கு ஆதரிக்கப்படவில்லை.", + "exitUnavailable": "தொலை அமர்விலிருந்து வெளியேறுவது தற்போதைய அமர்வுக்கு கிடைக்கவில்லை.", + "exitNeedsNewerCli": "தொலை ஸ்லாஷ் கட்டளைகளுக்கு புதிய Kilo CLI தேவைப்படுகிறது. Kilo CLI ஐ புதுப்பித்து மீண்டும் இணைக்கவும்." }, "sessionConnection": { "connecting": "இணைக்கிறது…", @@ -2559,7 +2562,8 @@ "delegatingWork": "பணியை ஒப்படைக்கிறது", "askingQuestion": "ஒரு கேள்வியைக் கேட்கிறது", "consideringNextSteps": "அடுத்த படிகளை பரிசீலிக்கிறது", - "writingResponse": "பதிலை எழுதுகிறது" + "writingResponse": "பதிலை எழுதுகிறது", + "initializingSnapshot": "ஸ்னாப்ஷாட்டை தொடங்குகிறது…" }, "slashCommands": { "startNewSession": "புதிய அமர்வைத் தொடங்கு", diff --git a/apps/mobile/src/i18n/locales/te.json b/apps/mobile/src/i18n/locales/te.json index c90050d7d4..cfe5ee6d6c 100644 --- a/apps/mobile/src/i18n/locales/te.json +++ b/apps/mobile/src/i18n/locales/te.json @@ -2129,7 +2129,10 @@ "exitMessage": "ఇది నడుస్తున్న సెషన్‌ను ఆపుతుంది కానీ దాని చరిత్రను ఉంచుతుంది.", "keepSessionRunning": "సెషన్ నడుస్తూనే ఉంచండి", "exitSession": "సెషన్ నుండి నిష్క్రమించండి", - "restartExitFailed": "కొత్త సెషన్ ప్రారంభించబడింది. మునుపటి సెషన్ ఇప్పటికీ తెరిచి ఉంది." + "restartExitFailed": "కొత్త సెషన్ ప్రారంభించబడింది. మునుపటి సెషన్ ఇప్పటికీ తెరిచి ఉంది.", + "exitNotSupported": "రిమోట్ సెషన్ నుండి నిష్క్రమించడం ప్రస్తుత సెషన్‌కు మద్దతు ఇవ్వబడదు.", + "exitUnavailable": "రిమోట్ సెషన్ నుండి నిష్క్రమించడం ప్రస్తుత సెషన్‌కు అందుబాటులో లేదు.", + "exitNeedsNewerCli": "రిమోట్ స్లాష్ కమాండ్లకు కొత్త Kilo CLI అవసరం. Kilo CLIని నవీకరించి మళ్లీ కనెక్ట్ చేయండి." }, "sessionConnection": { "connecting": "కనెక్ట్ అవుతోంది…", @@ -2559,7 +2562,8 @@ "delegatingWork": "పనిని అప్పగిస్తోంది", "askingQuestion": "ప్రశ్న అడుగుతోంది", "consideringNextSteps": "తదుపరి దశలను పరిశీలిస్తోంది", - "writingResponse": "స్పందన రాస్తోంది" + "writingResponse": "స్పందన రాస్తోంది", + "initializingSnapshot": "స్నాప్షాట్‌ను ప్రారంభిస్తోంది…" }, "slashCommands": { "startNewSession": "కొత్త సెషన్ను ప్రారంభించండి", diff --git a/apps/mobile/src/i18n/locales/th.json b/apps/mobile/src/i18n/locales/th.json index c4d5f237e7..6f4ba0c805 100644 --- a/apps/mobile/src/i18n/locales/th.json +++ b/apps/mobile/src/i18n/locales/th.json @@ -2129,7 +2129,10 @@ "exitMessage": "สิ่งนี้หยุด session ที่ทำงานอยู่แต่เก็บประวัติไว้", "keepSessionRunning": "ให้ session ทำงานต่อไป", "exitSession": "ออกจาก session", - "restartExitFailed": "เริ่ม session ใหม่แล้ว session ก่อนหน้ายังเปิดอยู่" + "restartExitFailed": "เริ่ม session ใหม่แล้ว session ก่อนหน้ายังเปิดอยู่", + "exitNotSupported": "การออกจาก remote session ไม่รองรับสำหรับ session ปัจจุบัน", + "exitUnavailable": "การออกจาก remote session ไม่พร้อมใช้งานสำหรับ session ปัจจุบัน", + "exitNeedsNewerCli": "คำสั่งเครื่องหมายทับใน remote session ต้องใช้ Kilo CLI ที่ใหม่กว่า อัปเดต Kilo CLI และเชื่อมต่อใหม่" }, "sessionConnection": { "connecting": "กำลังเชื่อมต่อ…", @@ -2559,7 +2562,8 @@ "delegatingWork": "กำลังมอบหมายงาน", "askingQuestion": "กำลังถามคำถาม", "consideringNextSteps": "กำลังพิจารณาขั้นตอนถัดไป", - "writingResponse": "กำลังเขียนคำตอบ" + "writingResponse": "กำลังเขียนคำตอบ", + "initializingSnapshot": "กำลังเริ่มต้น snapshot…" }, "slashCommands": { "startNewSession": "เริ่มเซสชันใหม่", diff --git a/apps/mobile/src/i18n/locales/tr.json b/apps/mobile/src/i18n/locales/tr.json index c6a44d5c96..47e56220c7 100644 --- a/apps/mobile/src/i18n/locales/tr.json +++ b/apps/mobile/src/i18n/locales/tr.json @@ -1675,7 +1675,10 @@ "exitMessage": "Bu, çalışan oturumu durdurur ancak geçmişini korur.", "keepSessionRunning": "Oturumu çalışır durumda tut", "exitSession": "Oturumdan çık", - "restartExitFailed": "Yeni oturum başlatıldı. Önceki oturum hâlâ açık." + "restartExitFailed": "Yeni oturum başlatıldı. Önceki oturum hâlâ açık.", + "exitNotSupported": "Uzak oturumdan çıkış, geçerli oturum için desteklenmiyor.", + "exitUnavailable": "Uzak oturumdan çıkış, geçerli oturum için kullanılamıyor.", + "exitNeedsNewerCli": "Uzak eğik çizgi komutları daha yeni bir Kilo CLI gerektirir. Kilo CLI'yı güncelleyin ve yeniden bağlanın." }, "sessionConnection": { "connecting": "Bağlanıyor…", @@ -2105,7 +2108,8 @@ "delegatingWork": "İş dağıtıyor", "askingQuestion": "Soru soruyor", "consideringNextSteps": "Sonraki adımları değerlendiriyor", - "writingResponse": "Yanıt yazıyor" + "writingResponse": "Yanıt yazıyor", + "initializingSnapshot": "Anlık görüntü başlatılıyor…" }, "slashCommands": { "startNewSession": "Yeni bir oturum başlat", diff --git a/apps/mobile/src/i18n/locales/uk.json b/apps/mobile/src/i18n/locales/uk.json index 02dc4988ee..8cdac07bbf 100644 --- a/apps/mobile/src/i18n/locales/uk.json +++ b/apps/mobile/src/i18n/locales/uk.json @@ -1691,7 +1691,10 @@ "exitMessage": "Це зупиняє запущений сеанс, але зберігає його історію.", "keepSessionRunning": "Залишити сеанс запущеним", "exitSession": "Завершити сеанс", - "restartExitFailed": "Розпочато новий сеанс. Попередній сеанс ще відкритий." + "restartExitFailed": "Розпочато новий сеанс. Попередній сеанс ще відкритий.", + "exitNotSupported": "Завершення віддаленого сеансу не підтримується для поточного сеансу.", + "exitUnavailable": "Завершення віддаленого сеансу недоступне для поточного сеансу.", + "exitNeedsNewerCli": "Віддалені слеш-команди потребують новішої версії Kilo CLI. Оновіть Kilo CLI та підключіться знову." }, "sessionConnection": { "connecting": "Підключення…", @@ -2129,7 +2132,8 @@ "delegatingWork": "Делегування роботи", "askingQuestion": "Постановка запитання", "consideringNextSteps": "Обмірковування наступних кроків", - "writingResponse": "Написання відповіді" + "writingResponse": "Написання відповіді", + "initializingSnapshot": "Ініціалізація знімка…" }, "slashCommands": { "startNewSession": "Розпочати новий сеанс", diff --git a/apps/mobile/src/i18n/locales/ur.json b/apps/mobile/src/i18n/locales/ur.json index 127545b067..0e3729148d 100644 --- a/apps/mobile/src/i18n/locales/ur.json +++ b/apps/mobile/src/i18n/locales/ur.json @@ -2129,7 +2129,10 @@ "exitMessage": "یہ چلتے ہوئے سیشن کو روکتا ہے لیکن اس کی تاریخ محفوظ رکھتا ہے۔", "keepSessionRunning": "سیشن چلاتے رہیں", "exitSession": "سیشن سے باہر نکلیں", - "restartExitFailed": "نیا سیشن شروع ہوا۔ پچھلا سیشن اب بھی کھلا ہے۔" + "restartExitFailed": "نیا سیشن شروع ہوا۔ پچھلا سیشن اب بھی کھلا ہے۔", + "exitNotSupported": "موجودہ سیشن کے لیے ریموٹ سیشن سے باہر نکلنا سپورٹ نہیں کیا جاتا۔", + "exitUnavailable": "موجودہ سیشن کے لیے ریموٹ سیشن سے باہر نکلنا دستیاب نہیں۔", + "exitNeedsNewerCli": "ریموٹ سلیش کمانڈز کے لیے نئے Kilo CLI کی ضرورت ہے۔ Kilo CLI اپ ڈیٹ کریں اور دوبارہ جڑیں۔" }, "sessionConnection": { "connecting": "جڑ رہے ہیں…", @@ -2559,7 +2562,8 @@ "delegatingWork": "کام تفویض کر رہے ہیں", "askingQuestion": "سوال پوچھ رہے ہیں", "consideringNextSteps": "اگلے اقدامات پر غور کر رہے ہیں", - "writingResponse": "جواب لکھ رہے ہیں" + "writingResponse": "جواب لکھ رہے ہیں", + "initializingSnapshot": "سنیپ شاٹ شروع ہو رہا ہے…" }, "slashCommands": { "startNewSession": "نیا سیشن شروع کریں", diff --git a/apps/mobile/src/i18n/locales/uz.json b/apps/mobile/src/i18n/locales/uz.json index 8a218c2a9e..92f2916dad 100644 --- a/apps/mobile/src/i18n/locales/uz.json +++ b/apps/mobile/src/i18n/locales/uz.json @@ -2129,7 +2129,10 @@ "exitMessage": "Bu davom etayotgan sessiyani to'xtatadi, lekin uning tarixini saqlaydi.", "keepSessionRunning": "Sessiyani ishda saqlash", "exitSession": "Sessiyadan chiqish", - "restartExitFailed": "Yangi sessiya boshlandi. Avvalgi sessiya hali ham ochiq." + "restartExitFailed": "Yangi sessiya boshlandi. Avvalgi sessiya hali ham ochiq.", + "exitNotSupported": "Joriy sessiya uchun masofaviy sessiyadan chiqish qo'llab-quvvatlanmaydi.", + "exitUnavailable": "Joriy sessiya uchun masofaviy sessiyadan chiqish mavjud emas.", + "exitNeedsNewerCli": "Masofaviy slash buyruqlari yangiroq Kilo CLI'ni talab qiladi. Kilo CLI'ni yangilang va qayta ulaning." }, "sessionConnection": { "connecting": "Ulanish…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Ish topshirilmoqda", "askingQuestion": "Savol berilmoqda", "consideringNextSteps": "Keyingi qadamlar ko'rib chiqilmoqda", - "writingResponse": "Javob yozilmoqda" + "writingResponse": "Javob yozilmoqda", + "initializingSnapshot": "Snapshot boshlanmoqda…" }, "slashCommands": { "startNewSession": "Yangi sessiya boshlash", diff --git a/apps/mobile/src/i18n/locales/vi.json b/apps/mobile/src/i18n/locales/vi.json index c01b9b6927..455691db46 100644 --- a/apps/mobile/src/i18n/locales/vi.json +++ b/apps/mobile/src/i18n/locales/vi.json @@ -1675,7 +1675,10 @@ "exitMessage": "Thao tác này dừng phiên đang chạy nhưng giữ lại lịch sử của nó.", "keepSessionRunning": "Giữ phiên chạy", "exitSession": "Thoát phiên", - "restartExitFailed": "Đã bắt đầu phiên mới. Phiên trước vẫn đang mở." + "restartExitFailed": "Đã bắt đầu phiên mới. Phiên trước vẫn đang mở.", + "exitNotSupported": "Thoát phiên từ xa không được hỗ trợ cho phiên hiện tại", + "exitUnavailable": "Thoát phiên từ xa không khả dụng cho phiên hiện tại", + "exitNeedsNewerCli": "Lệnh gạch chéo từ xa yêu cầu Kilo CLI mới hơn. Hãy cập nhật Kilo CLI và kết nối lại." }, "sessionConnection": { "connecting": "Đang kết nối…", @@ -2105,7 +2108,8 @@ "delegatingWork": "Đang phân công công việc", "askingQuestion": "Đang đặt câu hỏi", "consideringNextSteps": "Đang cân nhắc các bước tiếp theo", - "writingResponse": "Đang viết phản hồi" + "writingResponse": "Đang viết phản hồi", + "initializingSnapshot": "Đang khởi tạo ảnh chụp nhanh…" }, "slashCommands": { "startNewSession": "Bắt đầu phiên mới", diff --git a/apps/mobile/src/i18n/locales/yo.json b/apps/mobile/src/i18n/locales/yo.json index af25b079fa..e9e8b9b53a 100644 --- a/apps/mobile/src/i18n/locales/yo.json +++ b/apps/mobile/src/i18n/locales/yo.json @@ -2129,7 +2129,10 @@ "exitMessage": "Eyi da akoko ti n ṣiṣẹ duro ṣugbọn o pa itan rẹ mọ.", "keepSessionRunning": "Pa akoko ṣiṣẹ mọ", "exitSession": "Jade kuro ni akoko", - "restartExitFailed": "Bẹrẹ akoko tuntun. Akoko ti tẹlẹ ṣi ṣii." + "restartExitFailed": "Bẹrẹ akoko tuntun. Akoko ti tẹlẹ ṣi ṣii.", + "exitNotSupported": "Ko ṣee ṣe lati jade kuro ni akoko jijin fun akoko lọwọlọwọ", + "exitUnavailable": "Jade kuro ni akoko jijin ko wa fun akoko lọwọlọwọ", + "exitNeedsNewerCli": "Awọn aṣẹ slash jijin nilo Kilo CLI tuntun kan. Ṣe imudojuiwọn Kilo CLI ki o si tun so." }, "sessionConnection": { "connecting": "Ti n sopọ…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Nfún iṣẹ lọ", "askingQuestion": "Nbi ibeere", "consideringNextSteps": "Nro awọn igbese atẹle", - "writingResponse": "Nkọ esi" + "writingResponse": "Nkọ esi", + "initializingSnapshot": "Npilẹṣẹ aworan…" }, "slashCommands": { "startNewSession": "Bẹrẹ igba-ijiroro tuntun", diff --git a/apps/mobile/src/i18n/locales/zh-Hans.json b/apps/mobile/src/i18n/locales/zh-Hans.json index faec60b836..e6f7067bd6 100644 --- a/apps/mobile/src/i18n/locales/zh-Hans.json +++ b/apps/mobile/src/i18n/locales/zh-Hans.json @@ -1675,7 +1675,10 @@ "exitMessage": "这会停止正在运行的会话,但保留其历史记录。", "keepSessionRunning": "保持会话运行", "exitSession": "退出会话", - "restartExitFailed": "已开始新会话。上一个会话仍处于打开状态。" + "restartExitFailed": "已开始新会话。上一个会话仍处于打开状态。", + "exitNotSupported": "当前会话不支持退出远程会话", + "exitUnavailable": "当前会话无法退出远程会话", + "exitNeedsNewerCli": "远程斜杠命令需要更新的 Kilo CLI。请更新 Kilo CLI 并重新连接。" }, "sessionConnection": { "connecting": "正在连接…", @@ -2105,7 +2108,8 @@ "delegatingWork": "正在委派工作", "askingQuestion": "正在提问", "consideringNextSteps": "正在考虑下一步", - "writingResponse": "正在撰写回复" + "writingResponse": "正在撰写回复", + "initializingSnapshot": "正在初始化快照…" }, "slashCommands": { "startNewSession": "开始一个新会话", diff --git a/apps/mobile/src/i18n/locales/zh-Hant.json b/apps/mobile/src/i18n/locales/zh-Hant.json index 0f9bb009d2..d05487d6ce 100644 --- a/apps/mobile/src/i18n/locales/zh-Hant.json +++ b/apps/mobile/src/i18n/locales/zh-Hant.json @@ -1675,7 +1675,10 @@ "exitMessage": "這會停止執行中的工作階段,但保留其記錄。", "keepSessionRunning": "保持工作階段執行", "exitSession": "結束工作階段", - "restartExitFailed": "已開始新工作階段。上一個工作階段仍處於開啟狀態。" + "restartExitFailed": "已開始新工作階段。上一個工作階段仍處於開啟狀態。", + "exitNotSupported": "目前的工作階段不支援結束遠端工作階段", + "exitUnavailable": "目前的工作階段無法結束遠端工作階段", + "exitNeedsNewerCli": "遠端斜線指令需要更新的 Kilo CLI。請更新 Kilo CLI 並重新連接。" }, "sessionConnection": { "connecting": "連線中…", @@ -2105,7 +2108,8 @@ "delegatingWork": "正在分派工作", "askingQuestion": "正在提問", "consideringNextSteps": "正在考慮後續步驟", - "writingResponse": "正在撰寫回覆" + "writingResponse": "正在撰寫回覆", + "initializingSnapshot": "正在初始化快照…" }, "slashCommands": { "startNewSession": "開始新工作階段", diff --git a/apps/mobile/src/i18n/locales/zu.json b/apps/mobile/src/i18n/locales/zu.json index baadfd925a..af6c8cdbaf 100644 --- a/apps/mobile/src/i18n/locales/zu.json +++ b/apps/mobile/src/i18n/locales/zu.json @@ -2129,7 +2129,10 @@ "exitMessage": "Lokhu kuyeka iseshini esebenzayo kodwa kugcina umlando wayo.", "keepSessionRunning": "Qhubeka iseshini isebenze", "exitSession": "Phuma eseshini", - "restartExitFailed": "Kuqalwe iseshini entsha. Iseshini yangaphambilini isavuliwe." + "restartExitFailed": "Kuqalwe iseshini entsha. Iseshini yangaphambilini isavuliwe.", + "exitNotSupported": "Ukuphuma eseshini ekude akusekelwa kulesi seshini samanje", + "exitUnavailable": "Ukuphuma eseshini ekude akutholakali kulesi seshini samanje", + "exitNeedsNewerCli": "Imiyalo ye-slash ekude idinga i-Kilo CLI entsha. Buyekeza i-Kilo CLI bese uxhumana futhi." }, "sessionConnection": { "connecting": "Iyaxhuma…", @@ -2559,7 +2562,8 @@ "delegatingWork": "Ithuma umsebenzi", "askingQuestion": "Ibuza umbuzo", "consideringNextSteps": "Icabanga ngezinyathelo ezilandelayo", - "writingResponse": "Ibhala impendulo" + "writingResponse": "Ibhala impendulo", + "initializingSnapshot": "Iqala i-snapshot…" }, "slashCommands": { "startNewSession": "Qala iseshini entsha",