diff --git a/.gitignore b/.gitignore index 9fd59fec..4ac4250c 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,7 @@ docs/ main.exe .playwright-mcp/ .claude/ -graphify-out/ \ No newline at end of file +graphify-out/ +# Local dev launch scripts (machine-specific, not part of the repo) +run.sh +run.ps1 diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..098662c5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,61 @@ +# Repository instructions for coding agents + +Read and follow `CLAUDE.md` for the repository architecture, commands, and +contribution rules. The instructions below add the design direction for the +v2 web interface. + +## V2 web design direction + +These rules apply to everything under `apps/web/src/v2/**` — the whole v2 +interface lives there and nothing else does: + +- `apps/web/src/v2/pages/**` — one file per v1 page, same filename +- `apps/web/src/v2/components/**` — shadcn primitives in `ui/`, the v2 shell in `layout/` +- `apps/web/src/v2/{contexts,hooks,lib,styles}/**` + +Nothing outside `src/v2/` may import from it (enforced by `no-restricted-imports` +in `apps/web/eslint.config.js`); `src/routes/` is the one exception, since it +mounts both interfaces. The reverse is allowed: v2 reuses v1's services, api +types and domain components. + +Use these references when designing or implementing the v2 interface: + +1. [shadcn/ui component documentation](https://ui.shadcn.com/docs/components) + is the primary reference for component APIs, composition, accessibility, + states, and usage patterns. +2. [shadcn/ui source repository](https://github.com/shadcn-ui/ui) is the + primary reference when the documentation is insufficient or the current + component implementation needs to be inspected. +3. [AdminCN Free](https://shadcnstudio.com/templates/admin-dashboard/admincn-free) + is the visual and interaction reference for dashboard composition, + navigation, responsive layouts, tables, forms, settings, and application + pages. + +### Implementation rules + +- Prefer the project's existing shadcn primitives from + `@/components/shadcn/ui`. Their aliases and the `new-york` style are defined + in `apps/web/components.json`. +- Before creating a custom primitive, check the shadcn/ui documentation and + the components already present in `apps/web/src/components/shadcn/ui`. +- Use AdminCN as design inspiration, not as a framework dependency. Devlane is + a React 19 + Vite + React Router application; do not copy Next.js-specific + routing, server-component, or App Router patterns into it. +- Adapt external examples to Devlane's existing services, route conventions, + theme tokens, and component structure. Do not clone, vendor, or import an + external template wholesale. +- Keep v2 work within the v2 surface unless the task explicitly requires a + shared or legacy-interface change. +- Preserve the current shadcn token bridge and theme behavior. Prefer semantic + theme classes and tokens over one-off colors, radii, or spacing values. +- Treat `.shadcn-v4` and `.shadcn-reference` themes as comparison aids only; + shipped Devlane UI must use the normal Devlane token bridge. +- Every screen must remain responsive and accessible, including keyboard + navigation, visible focus, labels, loading/empty/error states, and usable + light and dark themes. +- Reuse components and patterns across v2 pages instead of duplicating the + same UI for individual pages. + +When a reference conflicts with the repository's architecture or product +behavior, preserve Devlane's behavior and adapt only the visual/compositional +pattern. diff --git a/CLAUDE.md b/CLAUDE.md index 4df9aa25..39853c23 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -127,6 +127,46 @@ src/ - **Editor**: TipTap 3.22.3 — keep all `@tiptap/*` packages on the **same exact version** (they share peer deps; mismatches break silently). - **Lazy boundaries**: every page is `lazy()` with a `}>`. New pages should follow the same pattern in `routes/index.tsx`. +## V2 interface design system + +The v2 web interface lives entirely under `apps/web/src/v2/**` and is built on +shadcn/ui. **Read [AGENTS.md](AGENTS.md) before designing or implementing +anything on that surface** — it is the authoritative design direction and +lists the reference sources: + +- [shadcn/ui docs](https://ui.shadcn.com/docs/components) — primary reference for component APIs, composition, accessibility, and states. +- [shadcn-ui/ui repo](https://github.com/shadcn-ui/ui) — source of truth when the docs are insufficient. +- [AdminCN Free](https://shadcnstudio.com/templates/admin-dashboard/admincn-free) — visual/interaction reference for dashboard composition, navigation, tables, forms, and settings pages. + +Component config lives in `apps/web/components.json` (`new-york` style, slate +base, lucide icons, `@/v2/components/ui` alias). Reuse existing primitives +from that directory before adding new ones, and adapt references to Devlane's +services, routes, and theme tokens rather than vendoring template code. + +**v2 is a preference, not a route.** Both interfaces answer to the same URLs. +`routes/index.tsx` declares each path once and picks the element with +`` (`routes/InterfaceVariant.tsx`), which reads the +stored preference from `v2/contexts/InterfaceContext` (localStorage key +`devlane-interface-version`). Consequences when adding a page: + +- Add one route entry, not two. If only one interface has the page, use plain + `` (setup and instance-admin are v1-only). +- v2 links must use the shipped v1 URL shapes (`/projects/:id/issues`, not + `work-items`); a v2 page reached by a v1 URL is the whole point. +- Both shells (`components/layout/AppShell.tsx` and its v2 mirror) mount on the + `:workspaceSlug` route and render an ``, so child routes are shared. + +**v1 and v2 are isolated.** `src/v2/` mirrors `src/`: a v2 page carries the +same filename and export name as the v1 page it replaces +(`v2/pages/IssueListPage.tsx` ↔ `pages/IssueListPage.tsx`); `routes/index.tsx` +aliases the v2 side to `…PageV2` locally. Outside `src/v2/` and `src/routes/`, +nothing may import from `src/v2` — ESLint fails the build if it does. v1 files +must stay byte-identical to what they'd be without v2; the only v2-aware line +in a v1 page is `` in `pages/SettingsPage.tsx`, whose +implementation lives in `routes/InterfaceSwitch.tsx`. v2 styles are imported by +the v2 shell and auth shell, not by the global `index.css`, so a v1 reader +never downloads them. + ## Working with this repo - When adding an API endpoint, the change usually touches: `model/` (if new entity) → `store/` → `service/` → `handler/` → register in `router/router.go` → corresponding service in `apps/web/src/services/` → web consumer. diff --git a/apps/api/internal/handler/user.go b/apps/api/internal/handler/user.go index 8e7e82bc..5754d41a 100644 --- a/apps/api/internal/handler/user.go +++ b/apps/api/internal/handler/user.go @@ -105,19 +105,32 @@ func (h *UserHandler) GetActivity(c *gin.Context) { issueID = a.IssueID.String() issueName = issueMap[issueID] } - activities = append(activities, userActivityItem{ - createdAt: a.CreatedAt, - body: gin.H{ - "id": a.ID.String(), - "type": "issue_activity", - "created_at": a.CreatedAt, - "description": issueActivityDescription(a), - "issue_id": issueID, - "issue_name": issueName, - "workspace_id": a.WorkspaceID.String(), - "project_id": a.ProjectID.String(), - }, - }) + body := gin.H{ + "id": a.ID.String(), + "type": "issue_activity", + "created_at": a.CreatedAt, + "description": issueActivityDescription(a), + "issue_id": issueID, + "issue_name": issueName, + "workspace_id": a.WorkspaceID.String(), + "project_id": a.ProjectID.String(), + } + // The row's own comment is free text, so `description` is the only thing + // to show for it. Everything else is bookkeeping the client can phrase + // itself — send the parts so it can render them in the user's language. + if a.Comment == nil || strings.TrimSpace(*a.Comment) == "" { + body["verb"] = a.Verb + if a.Field != nil { + body["field"] = *a.Field + } + if a.OldValue != nil { + body["old_value"] = *a.OldValue + } + if a.NewValue != nil { + body["new_value"] = *a.NewValue + } + } + activities = append(activities, userActivityItem{createdAt: a.CreatedAt, body: body}) } sort.SliceStable(activities, func(i, j int) bool { return activities[i].createdAt.After(activities[j].createdAt) diff --git a/apps/web/README.md b/apps/web/README.md index 606195e6..d0b340fc 100644 --- a/apps/web/README.md +++ b/apps/web/README.md @@ -45,3 +45,10 @@ shared `apiClient` in `src/api/client.ts` (`withCredentials: true` for cookie sessions — don't create new axios instances). Routing is workspace-scoped (`/:workspaceSlug/...`). See the repo-root `CLAUDE.md` for the full frontend architecture overview and `CONTRIBUTING.md` for commit/PR conventions. + +## V2 design system + +The v2 interface (`src/pages/*V2.tsx`, `src/components/shadcn/**`) is built on +shadcn/ui — `new-york` style, slate base color, lucide icons, configured in +`components.json`. The reference sources and the rules for using them are in +the repo-root `AGENTS.md`; read it before adding or restyling v2 UI. diff --git a/apps/web/components.json b/apps/web/components.json new file mode 100644 index 00000000..20caefe1 --- /dev/null +++ b/apps/web/components.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/index.css", + "baseColor": "slate", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "aliases": { + "components": "@/v2/components", + "utils": "@/lib/utils", + "ui": "@/v2/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "registries": { + "@componentry": "https://componentry.fun/r/{name}.json" + } +} diff --git a/apps/web/eslint.config.js b/apps/web/eslint.config.js index 2c37a870..35258766 100644 --- a/apps/web/eslint.config.js +++ b/apps/web/eslint.config.js @@ -28,12 +28,51 @@ export default defineConfig([ 'i18next/no-literal-string': 'off', }, }, + { + // Vendored shadcn/ui primitives (`npx shadcn add …`). These are upstream + // files we re-pull rather than hand-author, so the rules that assume our + // own authoring conventions are relaxed here — keeping the directory + // diff-clean against upstream. Anything we write ourselves lives outside + // this path and is still fully linted. + files: ['src/v2/components/**/*.{ts,tsx}'], + rules: { + // Upstream co-locates cva variant objects with the component. + 'react-refresh/only-export-components': 'off', + // Upstream ships English a11y labels ("Close", "Previous"); those get + // translated at the call site or by wrapping the primitive, not by + // editing the vendored file. + 'i18next/no-literal-string': 'off', + }, + }, + { + // The v2 interface is self-contained: everything it owns lives under + // `src/v2/`, and nothing outside may reach into it. `src/routes/` is the + // one exception — it is the composition root that mounts both interfaces + // on the same paths via . The reverse direction stays open: v2 + // reuses v1's services, contexts and domain components deliberately. + files: ['src/**/*.{ts,tsx}'], + ignores: ['src/v2/**', 'src/routes/**'], + rules: { + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['**/v2/**', '@/v2/*'], + message: + 'v1 code must not import from src/v2. The v2 interface is isolated; it is mounted from src/routes/index.tsx with .', + }, + ], + }, + ], + }, + }, { // Guard against new hardcoded user-facing strings: flag literal JSX text so // every visible string goes through t()/. The i18n setup itself and // tests are exempt. files: ['src/**/*.tsx'], - ignores: ['src/i18n/**', '**/*.test.tsx'], + ignores: ['src/i18n/**', '**/*.test.tsx', 'src/v2/components/**'], rules: { 'i18next/no-literal-string': [ 'error', diff --git a/apps/web/i18next-parser.config.cjs b/apps/web/i18next-parser.config.cjs index 8081afa6..e9456483 100644 --- a/apps/web/i18next-parser.config.cjs +++ b/apps/web/i18next-parser.config.cjs @@ -6,7 +6,7 @@ module.exports = { input: ['src/**/*.{ts,tsx}'], output: 'src/i18n/locales/$LOCALE/$NAMESPACE.json', - locales: ['en', 'az'], + locales: ['en', 'az', 'tr'], defaultNamespace: 'translation', // Match the runtime config: flat, dotted keys. keySeparator: false, @@ -16,6 +16,7 @@ module.exports = { keepRemoved: true, createOldCatalogs: false, // For a new/untranslated key, seed the value with the key's default (English - // text passed as the second t() arg). az values are filled in by translators. + // text passed as the second t() arg). Other locale values are filled in by + // translators. defaultValue: (locale, _ns, key, value) => (locale === 'en' ? (value ?? key) : ''), }; diff --git a/apps/web/package-lock.json b/apps/web/package-lock.json index 44a6d896..a7720ad9 100644 --- a/apps/web/package-lock.json +++ b/apps/web/package-lock.json @@ -32,19 +32,26 @@ "@tiptap/starter-kit": "3.22.3", "@tiptap/suggestion": "^3.22.3", "axios": "^1.16.0", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "date-fns": "^4.4.0", "dompurify": "^3.2.7", "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.1", "lucide-react": "^0.563.0", "node": "^26.5.0", + "radix-ui": "^1.6.7", "react": "^19.2.0", + "react-day-picker": "^10.0.1", "react-dom": "^19.2.0", "react-i18next": "^17.0.9", "react-router-dom": "^7.13.0", - "recharts": "^3.7.0", + "recharts": "^3.8.0", + "sonner": "^2.0.8", "tailwind-merge": "^3.4.0", - "tailwindcss": "^4.1.18" + "tailwindcss": "^4.1.18", + "tw-animate-css": "1.4.0" }, "devDependencies": { "@eslint/js": "^9.39.1", @@ -313,6 +320,12 @@ "node": ">=6.9.0" } }, + "node_modules/@date-fns/tz": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.5.0.tgz", + "integrity": "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg==", + "license": "MIT" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", @@ -1016,62 +1029,1558 @@ "node": ">=12" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.3.tgz", + "integrity": "sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", + "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.15.tgz", + "integrity": "sha512-WTQwcAvQf5sOcuUyi90lKPbhwcvQ+j55cjrSmeaN+L2vKU3DooOvlKw2MDeiJ5IkV5N905KW0/fGojKOBhD11A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.20", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.20.tgz", + "integrity": "sha512-jDhG9FvAEnlhnjrsINbNXcUa4G+L1KqSkJSunkbKEzFRcAb52jvM0PjPxPRvhe1HNc5F5yc0yzzWeeqlH4yBIg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collapsible": "1.1.20", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.23.tgz", + "integrity": "sha512-VAYOiQRqj3GPpYJE0I9J+X8Ip05cyVlNdKOFeiGS2Ou1HHGfpl0BxOyZm6nmVDyU+W+NF3/XLzmjHmVGydhwgA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dialog": "1.1.23", + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.15.tgz", + "integrity": "sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.15.tgz", + "integrity": "sha512-fy+dyVR+90nelK8rqIznFlxzx7uPcGbhxH8Nfr2bHb4UfSe+e3hklOC0luK0hDwVwnRX7xTRySpsrQVeW+/oNQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.2.6.tgz", + "integrity": "sha512-4ULOTJ/mqy2hT9GlWa/MFHxHSvH3nJzHnZM1waNsc5Bonv7i70aNenghXmD97S6OJ81ekXONGGt4nT1r0PfEdA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.11.tgz", + "integrity": "sha512-Gnptr9pDDQxD3hgq2dtPbtrp/c2qH1mBwIzw3X/ivrMb2e1t0jMTi606fVEqFPaQR1ggXIVQWKj3P2WW9v7zGQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.20.tgz", + "integrity": "sha512-mcGesGplBnzN2sbvJETzpCNfSMyPnb29q1GRLU+Ib7bJrpIG2ywmRoh2V5VbA2uNvKikKUlVbAPks7JDjz4A8Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.15.tgz", + "integrity": "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.2.tgz", + "integrity": "sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.3.7.tgz", + "integrity": "sha512-CtXP35dxaB5T3zXSd+E3uHe/QpXcpYnZmxp6OaIbfthtfW4wyb77M23BG+bwIJDtsMwEP/YssdsmNyZu7jhWew==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.23.tgz", + "integrity": "sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.4.tgz", + "integrity": "sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.19.tgz", + "integrity": "sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-effect-event": "0.0.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.24.tgz", + "integrity": "sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.6.tgz", + "integrity": "sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.16.tgz", + "integrity": "sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-form": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.16.tgz", + "integrity": "sha512-Q4TLEn2A7TAypxwmd6R9EwrlXDvkfYSDMrq9/887AXAGh+G1rH+kYJKSTv+Si9Y0JPKTwKYv6PviAJosysNimA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-label": "2.1.15", + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.23.tgz", + "integrity": "sha512-H8qONfZd3ltrU3+jHCIgITbWo6e1iTKvP9DHdrvYbX48ooRM5FjEDTn16AMwdfuOGkWdZEhpl3PLL/Wk/AnHDQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", + "integrity": "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.15.tgz", + "integrity": "sha512-o/rdYEwZTTo5tjknnPeyQFU45kUC4i/XyeDPP+HGyi6XqpOP6Zf5Ya5vh/Yfe9Id5JiuWnnAx2XqIeD3UYZt0g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.24.tgz", + "integrity": "sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-callback-ref": "1.1.4", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menubar": { + "version": "1.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.24.tgz", + "integrity": "sha512-eeVs0vf7cuqXaM0qLQCPcufImiJNVBXdJDLu7ZGYl2732UH23Qat/foNGrr6vYV3/DdTsBqASoggUFgH14OcZA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.22.tgz", + "integrity": "sha512-ou7iLEJ+yrhQndkkA4U21XIdS/CS45F4iXIkTZcb6/Ne9EMsOuDudVmCwmDnfFZZ+y1FZqXRNSIgBy+YMvZVZg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-previous": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-one-time-password-field": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.16.tgz", + "integrity": "sha512-Tj9P6ntAJEw52oq/F0AGknXR4XncxEt7XU47O3xJQOiWfLzEy3d9gtgKfvjSzGxzHkfL+VzvxGu2KTFsloJqXw==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-password-toggle-field": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.11.tgz", + "integrity": "sha512-4gvFnmDXu3dgj21CqsufzIameRvlRd4SBqaWhcrlrNhRo0Y5i/49AmRJYe1fdAM3G2VNBbmin4b0D6cdQocwgw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-is-hydrated": "0.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.23.tgz", + "integrity": "sha512-mw58MrBlyHWFisTOYignD0vf/3gdcgAR+9of1s9G/38CbFiUwH1nCDkc0AUM9IrXFgN5Ue8n45j9WCgyM1sbiQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-controllable-state": "1.2.6", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.7.tgz", + "integrity": "sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-rect": "1.1.4", + "@radix-ui/react-use-size": "1.1.4", + "@radix-ui/rect": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.17.tgz", + "integrity": "sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", + "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", + "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.16.tgz", + "integrity": "sha512-5XnomAsoZZCY+KNTxbIghpGqPruZvKFNlvcAljVAOdDRDsH4/OZQxhtwo5wdtoDM5R6MhJBb2sPnDuRFep3lzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.4.7.tgz", + "integrity": "sha512-cgYFEkntCxppHZgtSZ+7vh0wbZQ+IC7PPMw8DSnRG27B6kDd32/Zw0OJt7dGDigCoprMuWHjg2PvUn3PYvPFoQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.19.tgz", + "integrity": "sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.18", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.18.tgz", + "integrity": "sha512-Zn5Cd171wxsO3Dfg8HaW6RifTb9CYTKQJHs/G4+LN1GfmJpaQMZQyQxMprVPHpaz7QY4l9BxK2JwQuzHsXC8nA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.3.7.tgz", + "integrity": "sha512-WFGImkmbzcfxeIwq/+4HvRN0pizBwbwQUED4I13ezQsDdfl38ZntN6TmR8XaSzPBqoCToe8rF75j6NPNDSzhbg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-previous": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.15.tgz", + "integrity": "sha512-jOLO4lssEzWpoDu7G+Ze4VjwMRUBt291pnZD0gmalREZipnTX3wadQo7Fy48GCTfe14/YRN6rw/rOJqrE85Wxw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.4.7.tgz", + "integrity": "sha512-mTSLf1GC/C0moWjTbvCM6Qn/gBjvlFt1azuWF2v7MN5C3Zq2U2J2lN3ZEYkpujuOU5Ro7A28wkviSxaKnG0BYg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-previous": "1.1.4", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", + "integrity": "sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.3.7.tgz", + "integrity": "sha512-48tB/4dn2UVLBCYhTu9AuR63IHl73l/qLbLgxd86noTUor4/K4LFDAcYjK+isP5313qxaFpjPVogE7+Y0/V3Kw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.21.tgz", + "integrity": "sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.23.tgz", + "integrity": "sha512-ofhyAsYaocRGOs/n0XWdUOSVzEAG6BfrMVM8z0c0kLEWY38w/0WuMFPTJP/HVaZPYkMvHZoKIIhNcjbTCBILPg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.18.tgz", + "integrity": "sha512-7lonPlKfSacd20GlOBx2ltuVKz9oqWYZz+oMQyOltw6t1y2nyftj2ZmwwUHYn49kqfDWcp8dNZm5NgV+5Z+mug==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.19.tgz", + "integrity": "sha512-OtnwuSVjd1Ofi+AdnvhsjQdyuhCDwYs1w9RyB5BN/OavXOVQo42SYqQjwUnbPnaiPFBpQ9aX70dWeee+v2oBLA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-toggle": "1.1.18", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toolbar": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.19.tgz", + "integrity": "sha512-Ph0IvtYw4VB12ZnZg+YtrGs8yJQsnizwo/zu0R4Y/nWugtJzA7Pg1eWeuDR9+LSqn+xjamss+UOSOJJJ4gx8jw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-separator": "1.1.15", + "@radix-ui/react-toggle-group": "1.1.19" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.16.tgz", + "integrity": "sha512-6EamKFRRnlpdadndbZ6LMwycfwkwPte1B42hs6QA0gYhjaOKqW4PZ4pjaW9UrlDX5eVt/OjncE7BFTPL5nmZhg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.4.tgz", + "integrity": "sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", + "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", + "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.5.tgz", + "integrity": "sha512-ge3ipobwSXTj4JyVtswQ7qZj0ZHdtbGuOno/LrgAAeSxtsJ6Vs4Gz5IkPH2bmqpjcLUFoqGhA/mueuIf63UXlA==", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "@radix-ui/react-use-callback-ref": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.3.tgz", + "integrity": "sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==", "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", + "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", "license": "MIT", - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.4.tgz", + "integrity": "sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.4.tgz", + "integrity": "sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==", "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@radix-ui/rect": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.4.tgz", + "integrity": "sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==", "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.11.tgz", + "integrity": "sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } } }, + "node_modules/@radix-ui/rect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.3.tgz", + "integrity": "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==", + "license": "MIT" + }, "node_modules/@react-aria/focus": { "version": "3.21.4", "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.4.tgz", @@ -3289,6 +4798,18 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3672,6 +5193,18 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", @@ -3691,6 +5224,22 @@ "node": ">=6" } }, + "node_modules/cmdk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz", + "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "^1.1.1", + "@radix-ui/react-dialog": "^1.1.6", + "@radix-ui/react-id": "^1.1.0", + "@radix-ui/react-primitive": "^2.0.2" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3955,6 +5504,16 @@ "node": ">=12" } }, + "node_modules/date-fns": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.4.0.tgz", + "integrity": "sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -4004,6 +5563,12 @@ "node": ">=8" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -4817,6 +6382,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -7113,6 +8687,83 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/radix-ui": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.6.7.tgz", + "integrity": "sha512-QBdhh1arIEUvPC0dQ5+nwWAxt7+N+oP/9jPwjJkGFoSk/sqxg32gJtSXGtFh8frAIcS6oC9cx2Q+7KYCQLOAeA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-accessible-icon": "1.1.15", + "@radix-ui/react-accordion": "1.2.20", + "@radix-ui/react-alert-dialog": "1.1.23", + "@radix-ui/react-arrow": "1.1.15", + "@radix-ui/react-aspect-ratio": "1.1.15", + "@radix-ui/react-avatar": "1.2.6", + "@radix-ui/react-checkbox": "1.3.11", + "@radix-ui/react-collapsible": "1.1.20", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-context-menu": "2.3.7", + "@radix-ui/react-dialog": "1.1.23", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-dropdown-menu": "2.1.24", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-form": "0.1.16", + "@radix-ui/react-hover-card": "1.1.23", + "@radix-ui/react-label": "2.1.15", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-menubar": "1.1.24", + "@radix-ui/react-navigation-menu": "1.2.22", + "@radix-ui/react-one-time-password-field": "0.1.16", + "@radix-ui/react-password-toggle-field": "0.1.11", + "@radix-ui/react-popover": "1.1.23", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-progress": "1.1.16", + "@radix-ui/react-radio-group": "1.4.7", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-scroll-area": "1.2.18", + "@radix-ui/react-select": "2.3.7", + "@radix-ui/react-separator": "1.1.15", + "@radix-ui/react-slider": "1.4.7", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-switch": "1.3.7", + "@radix-ui/react-tabs": "1.1.21", + "@radix-ui/react-toast": "1.2.23", + "@radix-ui/react-toggle": "1.1.18", + "@radix-ui/react-toggle-group": "1.1.19", + "@radix-ui/react-toolbar": "1.1.19", + "@radix-ui/react-tooltip": "1.2.16", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-escape-keydown": "1.1.5", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-size": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/react": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", @@ -7122,6 +8773,32 @@ "node": ">=0.10.0" } }, + "node_modules/react-day-picker": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-10.0.1.tgz", + "integrity": "sha512-eNh6BlwcYInWaJtRv18mXQ06Ys/H6rdTZAnTaSdOYJuTpwP1JMCHNd1FDRadA+gbeinq+psdULN5Xnowy9mV8w==", + "license": "MIT", + "dependencies": { + "@date-fns/tz": "^1.4.1", + "date-fns": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/gpbl" + }, + "peerDependencies": { + "@types/react": ">=16.8.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-dom": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", @@ -7191,6 +8868,53 @@ } } }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/react-router": { "version": "7.18.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.1.tgz", @@ -7229,6 +8953,28 @@ "react-dom": ">=18" } }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -7246,15 +8992,15 @@ } }, "node_modules/recharts": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.7.0.tgz", - "integrity": "sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.8.0.tgz", + "integrity": "sha512-Z/m38DX3L73ExO4Tpc9/iZWHmHnlzWG4njQbxsF5aSjwqmHNDDIm0rdEBArkwsBvR8U6EirlEHiQNYWCVh9sGQ==", "license": "MIT", "workspaces": [ "www" ], "dependencies": { - "@reduxjs/toolkit": "1.x.x || 2.x.x", + "@reduxjs/toolkit": "^1.9.0 || 2.x.x", "clsx": "^2.1.1", "decimal.js-light": "^2.5.1", "es-toolkit": "^1.39.3", @@ -7506,6 +9252,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/sonner": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.8.tgz", + "integrity": "sha512-UM/ByIoFra8yzV75n1o0Puu0bw5U/9UNnDacrJNspekBewIfsQ3D6ez1nvlWpt7aTsO6rujQtifBpycwIivqlg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/sort-keys": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.1.0.tgz", @@ -7827,6 +9589,15 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/tw-animate-css": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7966,6 +9737,49 @@ "punycode": "^2.1.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/use-sync-external-store": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", diff --git a/apps/web/package.json b/apps/web/package.json index acfe667d..95d707b9 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -39,19 +39,26 @@ "@tiptap/starter-kit": "3.22.3", "@tiptap/suggestion": "^3.22.3", "axios": "^1.16.0", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "date-fns": "^4.4.0", "dompurify": "^3.2.7", "i18next": "^26.3.6", "i18next-browser-languagedetector": "^8.2.1", "lucide-react": "^0.563.0", "node": "^26.5.0", + "radix-ui": "^1.6.7", "react": "^19.2.0", + "react-day-picker": "^10.0.1", "react-dom": "^19.2.0", "react-i18next": "^17.0.9", "react-router-dom": "^7.13.0", - "recharts": "^3.7.0", + "recharts": "^3.8.0", + "sonner": "^2.0.8", "tailwind-merge": "^3.4.0", - "tailwindcss": "^4.1.18" + "tailwindcss": "^4.1.18", + "tw-animate-css": "1.4.0" }, "devDependencies": { "@eslint/js": "^9.39.1", diff --git a/apps/web/src/api/types.ts b/apps/web/src/api/types.ts index 72ee42ca..4da5ebcd 100644 --- a/apps/web/src/api/types.ts +++ b/apps/web/src/api/types.ts @@ -429,7 +429,13 @@ export interface UserActivityItem { id: string; type: string; created_at: string; + /** Server-rendered English fallback, used when the parts below are absent. */ description: string; + /** Set only for bookkeeping rows the client can phrase itself (see describeActivity). */ + verb?: string; + field?: string; + old_value?: string; + new_value?: string; issue_id?: string; issue_name?: string; workspace_id?: string; diff --git a/apps/web/src/components/CreateWorkItemModal.tsx b/apps/web/src/components/CreateWorkItemModal.tsx index 59cf5478..62ee1670 100644 --- a/apps/web/src/components/CreateWorkItemModal.tsx +++ b/apps/web/src/components/CreateWorkItemModal.tsx @@ -380,6 +380,9 @@ export function CreateWorkItemModal({ setModuleId(null); setParentId(null); } + } catch { + /* The caller renders createError. A rejected save must leave the + composer open so the user can correct or retry it. */ } finally { setSubmitting(false); } diff --git a/apps/web/src/i18n/README.md b/apps/web/src/i18n/README.md index b1131e18..aea7b259 100644 --- a/apps/web/src/i18n/README.md +++ b/apps/web/src/i18n/README.md @@ -2,7 +2,8 @@ The web UI is translated with [`react-i18next`](https://react.i18next.com/). `src/i18n/index.ts` initializes it once (imported from `main.tsx`); English -(`en`) is the source of truth and Azerbaijani (`az`) is a full translation. +(`en`) is the source of truth, with Azerbaijani (`az`) and Turkish (`tr`) as +full translations. ## Using translations in a component diff --git a/apps/web/src/i18n/dynamicKeys.ts b/apps/web/src/i18n/dynamicKeys.ts index 32aa53b8..e47174c7 100644 --- a/apps/web/src/i18n/dynamicKeys.ts +++ b/apps/web/src/i18n/dynamicKeys.ts @@ -4,7 +4,7 @@ import type { TFunction } from 'i18next'; * Some strings are looked up with a computed (template-literal) key, e.g. * `t(`module.status.${id}`, label)`. i18next-parser can't see those keys * statically, so they're registered here with their English defaults to keep the - * `en` and `az` catalogs complete. This function is never called — it exists so + * `en`, `az`, and `tr` catalogs complete. This function is never called — it exists so * the parser (and translators) have every key. Keep it in sync with the enum * sources it mirrors. */ @@ -89,6 +89,45 @@ export function registerDynamicKeys(t: TFunction) { t('settings.section.exports', 'Exports'); t('settings.section.webhooks', 'Webhooks'); + // notification preference rows (NotificationPreferencesPanel ROWS) + t('settings.notifications.row.property.label', 'Property changes'); + t( + 'settings.notifications.row.property.desc', + "Notify me when work items' properties like assignees, priority, or estimates change.", + ); + t('settings.notifications.row.state.label', 'State change'); + t( + 'settings.notifications.row.state.desc', + 'Notify me when a work item moves to a different state.', + ); + t('settings.notifications.row.completed.label', 'Work item completed'); + t('settings.notifications.row.completed.desc', 'Notify me when a work item is completed.'); + t('settings.notifications.row.comments.label', 'Comments'); + t('settings.notifications.row.comments.desc', 'Notify me when someone comments on a work item.'); + t('settings.notifications.row.mentions.label', 'Mentions'); + t( + 'settings.notifications.row.mentions.desc', + 'Notify me when someone mentions me in a comment or description.', + ); + + // activity-feed field labels (src/lib/activityDescription.ts FIELD_LABELS) + t('activity.field.name', 'name'); + t('activity.field.description', 'description'); + t('activity.field.priority', 'priority'); + t('activity.field.state', 'state'); + t('activity.field.start_date', 'start date'); + t('activity.field.target_date', 'due date'); + t('activity.field.estimate_point', 'estimate'); + t('activity.field.parent', 'parent'); + t('activity.field.project_id', 'project'); + t('activity.field.is_epic', 'epic'); + t('activity.field.assignees', 'assignee'); + t('activity.field.labels', 'label'); + t('activity.field.relation', 'relation'); + t('activity.field.link', 'link'); + t('activity.field.attachment', 'attachment'); + t('activity.field.comment', 'comment'); + // webhook event labels + hints (WebhooksSettings EVENTS) t('settings.webhooks.event.issue.label', 'Issues'); t('settings.webhooks.event.issue.hint', 'Created, updated, or deleted issues'); diff --git a/apps/web/src/i18n/index.ts b/apps/web/src/i18n/index.ts index b259395f..be66fb35 100644 --- a/apps/web/src/i18n/index.ts +++ b/apps/web/src/i18n/index.ts @@ -4,6 +4,7 @@ import LanguageDetector from 'i18next-browser-languagedetector'; import en from './locales/en/translation.json'; import az from './locales/az/translation.json'; +import tr from './locales/tr/translation.json'; import './dynamicKeys'; // registers template-literal keys for the parser /** @@ -16,6 +17,7 @@ export const LANGUAGE_STORAGE_KEY = 'devlane-language'; export const SUPPORTED_LANGUAGES = [ { code: 'en', label: 'English', dir: 'ltr' }, { code: 'az', label: 'Azərbaycanca', dir: 'ltr' }, + { code: 'tr', label: 'Türkçe', dir: 'ltr' }, ] as const; export type LanguageCode = (typeof SUPPORTED_LANGUAGES)[number]['code']; @@ -23,6 +25,7 @@ export type LanguageCode = (typeof SUPPORTED_LANGUAGES)[number]['code']; const resources = { en: { translation: en }, az: { translation: az }, + tr: { translation: tr }, } as const; void i18n diff --git a/apps/web/src/i18n/locales/az/translation.json b/apps/web/src/i18n/locales/az/translation.json index eae67e18..d9e11c13 100644 --- a/apps/web/src/i18n/locales/az/translation.json +++ b/apps/web/src/i18n/locales/az/translation.json @@ -1,4 +1,30 @@ { + "activity.added": "{{field}} əlavə edildi: {{value}}", + "activity.addedBare": "{{field}} əlavə edildi", + "activity.created": "İş elementi yaradıldı", + "activity.deleted": "İş elementi silindi", + "activity.field.assignees": "Təyin edilən şəxs", + "activity.field.attachment": "Əlavə", + "activity.field.comment": "Şərh", + "activity.field.description": "Təsvir", + "activity.field.estimate_point": "Qiymətləndirmə", + "activity.field.is_epic": "Epik", + "activity.field.labels": "Etiket", + "activity.field.link": "Keçid", + "activity.field.name": "Ad", + "activity.field.parent": "Üst element", + "activity.field.priority": "Prioritet", + "activity.field.project_id": "Layihə", + "activity.field.relation": "Əlaqə", + "activity.field.start_date": "Başlanğıc tarixi", + "activity.field.state": "Status", + "activity.field.target_date": "Bitmə tarixi", + "activity.removed": "{{field}} silindi: {{value}}", + "activity.removedBare": "{{field}} silindi", + "activity.updated": "{{field}} yeniləndi", + "activity.updatedFrom": "{{field}} {{old}} dəyərindən yeniləndi", + "activity.updatedFromTo": "{{field}} {{old}} dəyərindən {{new}} dəyərinə yeniləndi", + "activity.updatedTo": "{{field}} {{new}} olaraq yeniləndi", "analytics.activeProjects": "Aktiv layihələr", "analytics.addProperty": "Xüsusiyyət əlavə et", "analytics.allProjects": "Bütün layihələr", @@ -28,10 +54,16 @@ "analytics.documentTitle": "Analitika", "analytics.exportAsCsv": "CSV kimi ixrac et", "analytics.filterWorkItem": "İş elementi", + "analytics.loadError": "Analitika məlumatları yüklənə bilmədi.", + "analytics.loadErrorDescription": "Bağlantınızı yoxlayın və yenidən cəhd edin. İş sahənizin məlumatları dəyişdirilməyib.", + "analytics.loadingOverview": "Analitika icmalı yüklənir", "analytics.metrics": "Metrikalar", "analytics.overview": "İcmal", + "analytics.overviewDescription": "İş sahəsinin fəaliyyətini, çatdırılmanı və komandanın irəliləyişini bir baxışda izləyin.", + "analytics.overviewSummary": "Layihələr {{projects}} · İş elementləri {{workItems}} · Üzvlər {{members}}", "analytics.priority": "Prioritet", "analytics.prioritySuffixPlural": "lər", + "analytics.projectCompletion": "{{project}} tamamlanması: {{percent}}%", "analytics.projectInsights": "Layihə təhlilləri", "analytics.projectsCount_one": "{{count}} layihə", "analytics.projectsCount_other": "{{count}} Layihə", @@ -50,26 +82,51 @@ "analytics.unstartedWorkItems": "Başlanmamış iş elementləri", "analytics.workItems": "İş elementləri", "analytics.workItemsChartTitle": "İş elementləri", + "archives.activeFilters": "Aktiv filtrlər", + "archives.archived": "Arxivləşdirilib", "archives.archivedOn": "Arxivləşdirilib {{date}}", "archives.archivedProjects": "Arxivlənmiş layihələr", "archives.documentTitle": "Arxivlər", "archives.empty": "Arxivlənmiş iş elementi yoxdur", "archives.emptyHint": "İş elementini menyusundan arxivləşdirin və o burada görünəcək.", "archives.loadError": "Arxivlənmiş iş elementləri yüklənə bilmədi.", - "archives.loading": "Arxivlər yüklənir…", + "archives.loadErrorDescription": "Bağlantınızı yoxlayın və yenidən cəhd edin. Arxivlənmiş məlumatlarınız dəyişdirilməyib.", + "archives.loadErrorTitle": "Arxivlər yüklənə bilmədi", "archives.loadMoreError": "Daha çox arxivlənmiş iş elementi yüklənə bilmədi.", + "archives.loading": "Arxivlər yüklənir…", + "archives.noArchivedProjects": "Arxivlənmiş layihə yoxdur", + "archives.noArchivedProjectsHint": "Arxivlənmiş layihələr bərpa edilənədək burada görünəcək.", + "archives.noMatches": "Hazırkı axtarışa və ya filtrlərə uyğun arxiv yoxdur.", + "archives.noMatchesTitle": "Arxiv tapılmadı", + "archives.noMatchesYet": "Yüklənmiş arxivlərdə bu görünüşə uyğun nəticə yoxdur. Axtarışa davam etmək üçün daha çoxunu yükləyin.", + "archives.noMatchesYetTitle": "Hələ uyğun nəticə yoxdur", + "archives.pageDescription": "İş sahənizdəki arxivlənmiş iş elementlərini və layihələri nəzərdən keçirin və bərpa edin.", + "archives.projectsTableCaption": "Arxivlənmiş layihələr, arxiv tarixləri və bərpa əməliyyatları", + "archives.projectsTableLabel": "Arxivlənmiş layihələr cədvəli", "archives.restoreItemError": "Həmin iş elementi bərpa edilə bilmədi.", + "archives.restoreProject": "{{project}} layihəsini bərpa et", "archives.restoreProjectError": "Həmin layihəni bərpa etmək mümkün olmadı.", + "archives.restoreWorkItem": "{{item}} iş elementini bərpa et", "archives.restoring": "Bərpa olunur…", + "archives.scope": "Arxiv növü", + "archives.searchPlaceholder": "Arxivlərdə axtar", "archives.subtitle": "Bu iş sahəsindəki arxivlənmiş iş elementləri. Onu öz layihəsinə qaytarmaq üçün bərpa edin.", + "archives.summary": "İş elementləri {{workItems}} · Layihələr {{projects}}", "archives.title": "Arxivlər", + "archives.toolbar": "Arxiv idarəetmələri", + "archives.visibleProjectCount_one": "{{count}} arxivlənmiş layihə görünür", + "archives.visibleProjectCount_other": "{{count}} arxivlənmiş layihə görünür", + "archives.visibleWorkItemCount_one": "{{count}} arxivlənmiş iş elementi görünür", + "archives.visibleWorkItemCount_other": "{{count}} arxivlənmiş iş elementi görünür", + "archives.workItemsTableCaption": "Arxivlənmiş iş elementləri, onların layihələri, arxiv tarixləri və bərpa əməliyyatları", + "archives.workItemsTableLabel": "Arxivlənmiş iş elementləri cədvəli", "auth.forgotPassword.backToSignIn": "Girişə qayıt", "auth.forgotPassword.documentTitle": "Şifrəni unutdum", "auth.forgotPassword.resendIn_one": "{{count}} saniyə sonra yenidən göndər", "auth.forgotPassword.resendIn_other": "{{count}} saniyəyə yenidən göndər", "auth.forgotPassword.resendResetLink": "Sıfırlama linkini yenidən göndər", - "auth.forgotPassword.sending": "Göndərilir…", "auth.forgotPassword.sendResetLink": "Sıfırlama linki göndər", + "auth.forgotPassword.sending": "Göndərilir…", "auth.forgotPassword.subtitle": "E-poçtunuzu daxil edin, biz sizə şifrəni sıfırlamaq üçün keçid göndərəcəyik.", "auth.forgotPassword.successMessage": "Əgər {{email}} qeydiyyatdan keçibsə, tezliklə sıfırlama linki alacaqsınız. Gələnlər qutusunu və spam qovluğunu yoxlayın.", "auth.forgotPassword.title": "Şifrənizi sıfırlayın", @@ -94,8 +151,8 @@ "auth.inviteSignUp.reqMinLength": "Ən azı 8 simvol", "auth.inviteSignUp.reqNumber": "Ən az 1 rəqəm", "auth.inviteSignUp.reqSpecial": "Minimum 1 xüsusi simvol", - "auth.inviteSignUp.requirementsError": "Zəhmət olmasa bütün parol tələblərini ödəyin.", "auth.inviteSignUp.reqUpper": "Bir böyük hərf", + "auth.inviteSignUp.requirementsError": "Zəhmət olmasa bütün parol tələblərini ödəyin.", "auth.inviteSignUp.subtitle": "Hesabınızı yaratmaq və iş sahəsinə qoşulmaq üçün şifrə təyin edin.", "auth.login.codeLabel": "6 rəqəmli kod", "auth.login.codeLengthError": "E-poçtunuzdakı 6 rəqəmli kodu daxil edin.", @@ -153,8 +210,6 @@ "auth.setPassword.setting": "Şifrə təyin edilir…", "auth.setPassword.subtitle": "Yeni parol yaradın.", "auth.setPassword.title": "Şifrə təyin et", - "auth.signingIn": "daxil olmaqla", - "auth.signingUp": "qeydiyyatdan keçməklə", "auth.signUp.codeLabel": "6 rəqəmli kod", "auth.signUp.codeLengthError": "E-poçtunuzdakı 6 rəqəmli kodu daxil edin.", "auth.signUp.confirmPasswordPlaceholder": "Parolu yenidən daxil edin", @@ -177,6 +232,8 @@ "auth.signUp.titleCode": "E-poçtunuzu təsdiqləyin", "auth.signUp.useMagicCode": "Bunun əvəzinə e-poçt kodu ilə qeydiyyatdan keçin", "auth.signUp.usePassword": "Bunun əvəzinə şifrə istifadə et", + "auth.signingIn": "daxil olmaqla", + "auth.signingUp": "qeydiyyatdan keçməklə", "auth.termsNotice": "{{action}} xidmət şərtlərimiz və məxfilik siyasətimizlə razılaşırsınız.", "commandPalette.accountSettings": "Hesab tənzimləmələri", "commandPalette.accountSettings.match": "profil tənzimləmələr bildirişlər", @@ -232,17 +289,20 @@ "commandPalette.viewsAll": "İş sahəsi görünüşlərini aç", "commandPalette.viewsAll.match": "baxışlar bütün məsələlər", "commandPalette.workspaceLevel": "İş sahəsi səviyyəsi", + "common.access": "Giriş", "common.actions": "Əməliyyatlar", "common.add": "Əlavə et", - "common.adding": "Əlavə olunur…", "common.addToFavorites": "Sevimlilərə əlavə et", "common.addView": "Görünüş əlavə et", "common.addWorkItem": "İş elementi əlavə et", + "common.adding": "Əlavə olunur…", "common.after": "Sonra", "common.all": "Hamısı", "common.analytics": "Analitika", + "common.anyTime": "İstənilən vaxt", "common.apply": "Tətbiq et", "common.archive": "Arxivlə", + "common.archived": "Arxivlənib", "common.ascending": "Artan", "common.assignees": "Təyin olunanlar", "common.back": "Geri", @@ -252,6 +312,8 @@ "common.change": "Dəyiş", "common.checking": "Yoxlanılır…", "common.clear": "Təmizlə", + "common.clearAll": "Hamısını təmizlə", + "common.clearFilters": "Filtrləri təmizlə", "common.clearSearch": "Axtarışı təmizlə", "common.close": "Bağla", "common.collapseSidebar": "Yan paneli yığ", @@ -263,6 +325,7 @@ "common.confirmPassword": "Parolu təsdiqlə", "common.continue": "Davam et", "common.copyLink": "Linki kopyala", + "common.copyLinkError": "Bu keçid kopyalana bilmədi.", "common.create": "Yarat", "common.createAccount": "Hesab yarat", "common.created": "Yaradılıb", @@ -275,6 +338,7 @@ "common.custom": "Fərdi", "common.customRange": "Xüsusi aralıq", "common.cycle": "Dövr", + "common.cycles": "Dövrlər", "common.datePreset.oneMonthAgo": "1 ay əvvəl", "common.datePreset.oneMonthFromNow": "İndidən 1 ay sonra", "common.datePreset.oneWeekAgo": "1 həftə əvvəl", @@ -295,8 +359,10 @@ "common.edit": "Redaktə et", "common.email": "E-poçt", "common.emailPlaceholder": "you@example.com", + "common.epics": "Epiklər", "common.expandSidebar": "Yan paneli genişləndir", "common.favorites": "Sevimlilər", + "common.filters": "Filtrlər", "common.firstName": "Ad", "common.genericError": "Nəsə səhv oldu. Zəhmət olmasa yenidən cəhd edin.", "common.goBack": "Geri qayıt", @@ -306,6 +372,7 @@ "common.help": "Kömək", "common.hideConfirmPassword": "Parol təsdiqini gizlət", "common.hidePassword": "Şifrəni gizlət", + "common.intake": "Gələn sorğular", "common.join": "Qoşul", "common.justNow": "indicə", "common.labels": "Etiketlər", @@ -322,8 +389,9 @@ "common.layout.timeline": "Zaman xətti", "common.layout.timelineComingSoon": "Vaxt qrafiki (tezliklə)", "common.lead": "Rəhbər", - "common.loading": "Yüklənir…", + "common.linkCopied": "Keçid kopyalandı", "common.loadMore": "Daha çox yüklə", + "common.loading": "Yüklənir…", "common.logOut": "Çıxış", "common.manual": "Əl ilə", "common.member": "Üzv", @@ -336,13 +404,15 @@ "common.move": "Köçür", "common.name": "Ad", "common.noMatchesFound": "Uyğunluq tapılmadı", - "common.none": "Yoxdur", "common.noPriority": "Prioritet yoxdur", "common.noState": "Vəziyyət yoxdur", "common.noWorkItems": "İş elementi yoxdur", + "common.none": "Yoxdur", "common.openInNewTab": "Yeni tabda aç", "common.optional": "İstəyə bağlı", "common.or": "və ya", + "common.other": "Digər", + "common.pages": "Səhifələr", "common.password": "Parol", "common.passwordsDoNotMatchInline": "Şifrələr uyğun gəlmir", "common.passwordsMatch": "Parollar uyğun gəlir", @@ -359,18 +429,21 @@ "common.public": "Açıq", "common.refresh": "Yenilə", "common.remove": "Sil", + "common.removeFilter": "{{filter}} filtrini sil", "common.removeFromFavorites": "Sevimlilərdən sil", "common.required": "Tələb olunur", "common.reset": "Sıfırla", + "common.resetFilters": "Filtrləri sıfırla", "common.restore": "Bərpa et", + "common.retry": "Yenidən cəhd et", "common.save": "Yadda saxla", "common.saveChanges": "Dəyişiklikləri yadda saxla", "common.saving": "Yadda saxlanılır…", "common.search": "Axtar", "common.searchEllipsis": "Axtar...", "common.select": "Seç", - "common.selected": "Seçilmiş", "common.selectProject": "Layihə seçin", + "common.selected": "Seçilmiş", "common.send": "Göndər", "common.showConfirmPassword": "Şifrə təsdiqini göstər", "common.showLess": "Daha az göstər", @@ -383,7 +456,9 @@ "common.startDate": "Başlama tarixi", "common.startDateRange": "Başlanğıc tarix aralığı", "common.state": "Status", + "common.status": "Status", "common.subWorkItems": "Alt iş elementləri", + "common.thisProject": "bu layihə", "common.time.daysAgo_one": "{{count}} gün əvvəl", "common.time.daysAgo_other": "{{count}} gün əvvəl", "common.time.hoursAgo_one": "{{count}} saat əvvəl", @@ -394,10 +469,12 @@ "common.title": "Başlıq", "common.titleRequired": "Başlıq tələb olunur.", "common.today": "Bu gün", + "common.total": "Cəmi", "common.unarchive": "Arxivdən çıxar", "common.unassigned": "Təyin edilməyib", "common.unknown": "Naməlum", "common.untitled": "Adsız", + "common.updated": "Yenilənib", "common.updatedAt": "Yenilənmə tarixi", "common.updating": "Yenilənir…", "common.user": "İstifadəçi", @@ -414,9 +491,9 @@ "cycle.backToCycles": "Tsikllərə qayıt", "cycle.burndown": "Burndown", "cycle.completeCycle": "Dövrü tamamla", - "cycle.completed": "Tamamlandı", "cycle.completeError": "Tsikl tamamlana bilmədi. Zəhmət olmasa yenidən cəhd edin.", "cycle.completeModalBody": "{{name}} tamamlandıqda onun tərəqqisi qeyd olunur. İstəyə görə tamamlanmamış iş elementlərini başqa tsiklə köçürə bilərsiniz.", + "cycle.completed": "Tamamlandı", "cycle.completing": "Tamamlanır…", "cycle.create.error": "Tsikl yaratmaq alınmadı.", "cycle.create.submit": "Dövr yarat", @@ -428,8 +505,8 @@ "cycle.layoutSpreadsheet": "Cədvəl", "cycle.layoutTimeline": "Zaman xətti", "cycle.loading": "Tsikl yüklənir…", - "cycle.notFound": "Tsikl tapılmadı.", "cycle.noWorkItems": "Bu dövrdə iş elementi yoxdur.", + "cycle.notFound": "Tsikl tapılmadı.", "cycle.overallProgress": "Ümumi irəliləyiş", "cycle.overlapWarningOne": "Bu tarixlər {{names}} dövrü ilə üst-üstə düşür.", "cycle.overlapWarningOther": "Bu tarixlər {{names}} tsikllərilə üst-üstə düşür.", @@ -451,6 +528,7 @@ "cycle.workItems": "İş elementləri", "cycle.workItemsCount_one": "{{count}} iş elementi", "cycle.workItemsCount_other": "{{count}} iş elementi", + "cycles.active": "Aktiv", "cycles.activeCycle": "Aktiv tsikl", "cycles.activeCycles": "Aktiv dövrlər", "cycles.alsoInProgress": "Həmçinin icrada:", @@ -459,18 +537,42 @@ "cycles.burndown.pending_one": "Gözləyən iş elementləri - {{count}}", "cycles.burndown.pending_other": "Gözləyən iş elementləri - {{count}}", "cycles.burndown.title": "İş elementi burndown qrafiki", + "cycles.completed": "Tamamlanmış", "cycles.completedCycle_one": "Tamamlanan dövr {{count}}", "cycles.completedCycle_other": "Tamamlanmış tsikl {{count}}", + "cycles.confirmDeleteDescription": "Dövr silinir. İş elementləri layihədə qalır.", + "cycles.confirmDeleteTitle": "{{cycle}} silinsin?", + "cycles.createDescription": "Tsikl iş elementlərinin daxil edildiyi vaxt məhdudiyyətli təhvil pəncərəsidir.", + "cycles.createFailed": "Tsikl yaradıla bilmədi.", + "cycles.createSuccess": "{{cycle}} yaradıldı", "cycles.cycleFallbackName": "Tsikl", + "cycles.cycleMenu": "{{cycle}} əməliyyatları", + "cycles.dateRangeInvalid": "Bitmə tarixi başlanğıc tarixindən əvvəl ola bilməz.", "cycles.deleteCannotUndo": "Bu geri qaytarıla bilməz.", "cycles.deleteConfirmTitle": "\"{{name}}\" silinsin?", + "cycles.deleteError": "Bu dövr silinə bilmədi.", + "cycles.deleteSuccess": "Dövr silindi", + "cycles.descriptionPlaceholder": "İstəyə bağlı təsvir", "cycles.documentTitle": "Tsikllər", + "cycles.empty": "Hələ dövr yoxdur", + "cycles.emptyDescription": "Dövrlər işi zaman aralıqlarına bölür ki, komanda nəyin nə vaxt çatacağını görsün.", + "cycles.endDate": "Bitmə tarixi", + "cycles.loadError": "Dövrlər yüklənə bilmədi.", + "cycles.loading": "Tsikllər yüklənir…", "cycles.moreDetails": "Ətraflı məlumat", + "cycles.namePlaceholder": "Tsikl adı", + "cycles.newCycle": "Yeni tsikl", + "cycles.noActive": "Hazırda işləyən dövr yoxdur.", "cycles.noCompleted": "Tamamlanmış tsikl yoxdur.", "cycles.noDates": "Tarix yoxdur", + "cycles.noLabel": "Etiket yoxdur", "cycles.noLabels": "Etiket yoxdur", + "cycles.noMatches": "Cari axtarış və filtrlərə uyğun tsikl yoxdur.", + "cycles.noOwner": "Rəhbər yoxdur", "cycles.noUpcoming": "Qarşıdan gələn tsikl yoxdur.", "cycles.onlyCompletedArchivable": "Yalnız tamamlanmış tsikllər arxivlənə bilər.", + "cycles.pageDescription": "{{project}} üçün zaman aralığına bölünmüş çatdırılma pəncərələri.", + "cycles.percentClosed": "{{percent}}% bağlandı", "cycles.percentOf": "{{total}}-dən {{percent}}%", "cycles.progress.backlog_one": "Backlog {{count}} iş elementi{{plural}}", "cycles.progress.backlog_other": "Backlog {{count}} iş elementi{{plural}}", @@ -481,16 +583,24 @@ "cycles.progress.started_other": "Başlanmış {{count}} iş elementi{{plural}}", "cycles.progress.title": "İrəliləyiş", "cycles.progress.workItemClosed": "{{completed}}/{{total}} iş elementi bağlandı", + "cycles.searchPlaceholder": "Dövrlərdə axtar", + "cycles.startDate": "Başlanğıc tarixi", + "cycles.summary": "{{total}} dövrdən {{visible}}", "cycles.tabs.assignees": "Təyin olunanlar", "cycles.tabs.assigneesEmpty": "Bu tsikldə təyin edilmiş şəxs yoxdur.", "cycles.tabs.labels": "Etiketlər", "cycles.tabs.labelsEmpty": "Bu tsikldə etiket yoxdur.", "cycles.tabs.priority": "Prioritet iş elementləri", "cycles.tabs.priorityEmpty": "Prioritet bölgüsünü görmək üçün iş elementləri əlavə edin.", + "cycles.toolbar": "Dövr idarəetmələri", "cycles.unassigned": "Təyin edilməyib", "cycles.unknownLabel": "Naməlum", + "cycles.upcoming": "Gələcək", "cycles.upcomingCycle_one": "Gələcək dövr {{count}}", "cycles.upcomingCycle_other": "Növbəti tsikl {{count}}", + "cycles.updateSuccess": "Dövr yeniləndi", + "cycles.workItemCount_one": "{{count}} iş elementi", + "cycles.workItemCount_other": "{{count}} iş elementi", "display.displayProperties": "Göstərilən xüsusiyyətlər", "display.groupAssignees": "Təyin olunanlar", "display.groupBy": "Qruplaşdır", @@ -524,6 +634,7 @@ "display.showEmptyGroups": "Boş qrupları göstər", "display.showSubWorkItems": "Alt iş elementlərini göstər", "display.subGroupBy": "Alt-qruplaşdır", + "drafts.activeFilters": "Aktiv filtrlər", "drafts.backlog": "Backlog", "drafts.copySuffix": "{{name}} (kopya)", "drafts.createLabelNamed": "\"{{name}}\" etiketini yarat", @@ -539,31 +650,43 @@ "drafts.failedToCreateLabel": "Etiket yaradıla bilmədi.", "drafts.labelsTitle": "Etiketlər {{label}}", "drafts.loadError": "Qaralamalar yüklənə bilmədi.", - "drafts.loadingDrafts": "Qaralamalar yüklənir…", + "drafts.loadErrorDescription": "Bağlantınızı yoxlayın və yenidən cəhd edin. Qaralama məlumatlarınız dəyişdirilməyib.", "drafts.loadWorkspaceError": "İş sahəsi yüklənə bilmədi.", + "drafts.loadWorkspaceErrorDescription": "Bağlantınızı yoxlayın və yenidən cəhd edin. Qaralama məlumatlarınız dəyişdirilməyib.", + "drafts.loadingDrafts": "Qaralamalar yüklənir…", + "drafts.loadingPage": "Qaralamalar səhifəsi yüklənir", "drafts.makeCopy": "Nüsxə çıxar", "drafts.moduleCount_one": "{{count}} modul", "drafts.moduleCount_other": "{{count}} Modul", "drafts.moveToIssues": "Məsələlərə köçür", "drafts.noCycle": "Tsikl yoxdur", + "drafts.noMatches": "Cari axtarışa və ya filtrlərə uyğun qaralama yoxdur.", + "drafts.noMatchesTitle": "Qaralama tapılmadı", "drafts.noModule": "Modul yoxdur", "drafts.noProjects": "Hələ layihə yoxdur", "drafts.noProjectsHint": "Qaralama iş elementləri əlavə etmədən əvvəl bu iş sahəsində layihə yaradın.", "drafts.noStates": "Vəziyyət yoxdur", "drafts.oneModule": "1 Modul", "drafts.openDraft": "{{name}} qaralamasını aç", + "drafts.pageDescription": "İşi layihələrinizdə yayımlamazdan əvvəl qeyd edin və dəqiqləşdirin.", "drafts.pressEnterToCreateLabel": "Etiket yaratmaq üçün Enter düyməsinə basın", "drafts.priority": "Prioritet", "drafts.priorityTitle": "Prioritet {{priority}}", "drafts.publishError": "Qaralama dərc edilə bilmədi.", "drafts.saveFailed": "Qaralamanı yadda saxlamaq alınmadı.", + "drafts.searchPlaceholder": "Qaralamalarda axtarın", "drafts.startDate": "Başlanğıc tarixi", "drafts.startDateTitle": "Başlama tarixi {{date}}", + "drafts.summary": "{{drafts}} göstərilir · {{projects}} layihə", + "drafts.tableCaption": "İş sahəsinin qaralama iş elementləri və onların redaktə edilə bilən planlaşdırma xüsusiyyətləri", + "drafts.tableLabel": "Qaralama iş elementləri cədvəli", + "drafts.toolbar": "Qaralama idarəetmələri", "drafts.typeToAddLabel": "Yeni etiket əlavə etmək üçün yazın", "drafts.unassigned": "Təyin edilməyib", "drafts.updateCycleError": "Dövr yenilənə bilmədi.", "drafts.updateError": "Qaralamanı yeniləmək mümkün olmadı.", "drafts.updateModuleError": "Modul yenilənə bilmədi.", + "drafts.visibleCount": "{{count}} qaralama görünür", "drafts.workspaceNotFound": "İş sahəsi tapılmadı.", "editor.background": "Fon", "editor.clearBackground": "Fonu təmizlə", @@ -587,14 +710,14 @@ "epic.convertConfirm": "Bu epiki yenidən iş elementinə çevirmək istəyirsiniz?", "epic.convertError": "İş elementinə çevrilmə uğursuz oldu.", "epic.convertToWorkItem": "İş elementinə çevir", - "epic.links": "Keçidlər", "epic.linkTitlePlaceholder": "Başlıq (istəyə görə)", + "epic.links": "Keçidlər", "epic.loading": "Epik yüklənir…", "epic.noLinks": "Hələ link yoxdur.", "epic.noMatchingIssues": "Uyğun məsələ yoxdur.", "epic.noPriority": "prioritet yoxdur", - "epic.notFound": "Epik tapılmadı.", "epic.noWorkItems": "Hələ iş elementi yoxdur.", + "epic.notFound": "Epik tapılmadı.", "epic.removeFromEpic": "Epikdən çıxar", "epic.removeIssueError": "Məsələni epikdən silmək alınmadı.", "epic.removeNamedFromEpic": "{{name}} epikdən silinsin", @@ -602,15 +725,31 @@ "epic.title": "Epik", "epic.workItemsCount_one": "İş elementləri ({{count}})", "epic.workItemsCount_other": "İş elementləri ({{count}})", + "epics.createDescription": "Epik əlaqəli iş elementlərini qruplaşdırır ki, uzunmüddətli iş tək bir şey kimi izlənsin.", "epics.createFailed": "Epik yaratmaq alınmadı.", + "epics.descriptionPlaceholder": "İstəyə bağlı təsvir", "epics.documentTitle": "Epiklər", "epics.empty": "Hələ epik yoxdur. Əlaqəli işi qruplaşdırmaq üçün bir dənə yaradın.", + "epics.emptyDescription": "Epiklər əlaqəli iş elementlərini qruplaşdırır ki, uzunmüddətli səy tək bir bütöv kimi izlənsin.", + "epics.emptyTitle": "Hələ epik yoxdur", + "epics.loadErrorDescription": "Bağlantınızı yoxlayıb yenidən cəhd edin. Epikləriniz dəyişdirilməyib.", + "epics.loadErrorTitle": "Epiklər yüklənə bilmədi", "epics.loading": "Epiklər yüklənir…", "epics.namePlaceholder": "Epik adı", "epics.newEpic": "Yeni epik", + "epics.noMatches": "Cari axtarışa uyğun epik yoxdur.", + "epics.noMatchesFiltered": "Cari axtarış və filtrlərə uyğun epik yoxdur.", + "epics.noMatchesTitle": "Epik tapılmadı", "epics.noPriority": "prioritet yoxdur", "epics.open": "Açıq", + "epics.pageDescription": "{{project}} layihəsində işi qruplaşdıran uzunmüddətli səylər.", + "epics.searchPlaceholder": "Epiklərdə axtar", + "epics.summary": "{{total}} epikdən {{visible}}", + "epics.tableCaption": "Bu layihədəki epiklər — vəziyyət, prioritet, irəliləyiş və son tarix.", + "epics.tableLabel": "Epiklər cədvəli", "epics.title": "Epiklər", + "epics.toolbar": "Epik idarəetmələri", + "epics.visibleCount": "{{count}} epik göstərilir", "filters.activeWorkItems": "Aktiv iş elementləri", "filters.allWorkItems": "Bütün iş elementləri", "filters.assignee": "Təyin edilən şəxs", @@ -629,6 +768,7 @@ "filters.mention": "Qeyd", "filters.noDueDate": "Bitmə tarixi yoxdur", "filters.noLabelsInWorkspace": "İş sahəsində etiket yoxdur. Onlara görə filtrləmək üçün layihəyə etiket əlavə edin.", + "filters.noOptions": "Hələ filtrləyəcək bir şey yoxdur.", "filters.priority": "Prioritet", "filters.project": "Layihə", "filters.startDate": "Başlanğıc tarix", @@ -661,8 +801,8 @@ "header.display.orderDirection": "Sıralama istiqaməti", "header.display.properties": "Göstərmə xüsusiyyətləri", "header.display.showSubWorkItems": "Alt iş elementlərini göstər", - "header.drafts": "Qaralamalar", "header.draftWorkItem": "İş elementi qaralaması yarat", + "header.drafts": "Qaralamalar", "header.filters": "Filtrlər", "header.filtersWithCount_one": "Filtrlər ({{count}})", "header.filtersWithCount_other": "Filtrlər ({{count}})", @@ -754,9 +894,9 @@ "image.searching": "Axtarılır…", "image.tabUpload": "Yüklə", "image.uploadFailed": "Yükləmə uğursuz oldu", - "image.uploading": "Yüklənir…", "image.uploadSave": "Yüklə və saxla", "image.uploadTitle": "Şəkil yüklə", + "image.uploading": "Yüklənir…", "instanceAdmin.admins.accountHint": "Şəxsin artıq Devlane hesabı olmalıdır.", "instanceAdmin.admins.addAdmin": "Admin əlavə et", "instanceAdmin.admins.adding": "Əlavə olunur…", @@ -875,9 +1015,9 @@ "instanceAdmin.email.port": "Port", "instanceAdmin.email.security": "E-poçt təhlükəsizliyi", "instanceAdmin.email.securityNone": "Yoxdur", + "instanceAdmin.email.sendTest": "Test e-poçtu göndər", "instanceAdmin.email.senderEmail": "Göndərənin e-poçt ünvanı", "instanceAdmin.email.senderEmailHint": "Bu, bu instansiyadan e-poçt alarkən istifadəçilərinizin görəcəyi e-poçt ünvanıdır. Bu ünvanı təsdiqləməli olacaqsınız.", - "instanceAdmin.email.sendTest": "Test e-poçtu göndər", "instanceAdmin.email.setPassword": "Şifrə təyin et", "instanceAdmin.email.showPassword": "Parolu göstər", "instanceAdmin.email.subtitle": "Devlane İnternetlə əlaqə saxlamadan öz nümunənizdən sizə və istifadəçilərinizə faydalı e-poçtlar göndərə bilər. Aşağıda quraşdırın və saxlamazdan əvvəl tənzimləmələrinizi sınaqdan keçirin.", @@ -966,12 +1106,15 @@ "instanceAdmin.workspaces.preventTitle": "Başqa heç kimin iş sahəsi yaratmasının qarşısını alın.", "instanceAdmin.workspaces.subtitle": "Bütün iş sahələrinə baxın və onları kimin yarada biləcəyinə nəzarət edin.", "instanceAdmin.workspaces.title": "Bu instansiyadakı iş sahələri", + "intake.accept": "Qəbul et", + "intake.accepted": "Qəbul edilmiş", "intake.action.accept": "Qəbul et", "intake.action.decline": "İmtina et", "intake.action.duplicateOfPlaceholder": "Dublikatı…", "intake.action.markDuplicate": "Dublikat kimi işarələ", "intake.action.snooze": "Təxirə sal", "intake.action.snoozePlaceholder": "Təxirə sal…", + "intake.actionError": "Həmin qəbul elementi yenilənə bilmədi.", "intake.actionFailed": "Həmin əməliyyat tamamlana bilmədi. Zəhmət olmasa yenidən cəhd edin.", "intake.activeIssues": "Aktiv məsələlər", "intake.column.actions": "Əməliyyatlar", @@ -981,22 +1124,44 @@ "intake.column.snoozedUntil": "Təxirə salınıb", "intake.column.source": "Mənbə", "intake.column.workItem": "İş elementi", + "intake.decline": "Rədd et", + "intake.declined": "Rədd edilmiş", "intake.documentTitle": "Qəbul", "intake.empty": "Burada heç nə yoxdur. Bu triaj növbəsi boşdur.", + "intake.emptyDescription": "Layihədən kənarda qaldırılan sorğular qəbul, təxirə salma və ya rədd üçün buraya düşür.", + "intake.emptyTitle": "Triaj ediləcək bir şey yoxdur", + "intake.loadErrorDescription": "Bağlantınızı yoxlayıb yenidən cəhd edin. Növbədəki heç nə dəyişdirilməyib.", + "intake.loadErrorTitle": "Qəbul yüklənə bilmədi", "intake.loading": "Qəbul yüklənir…", + "intake.noMatches": "Cari axtarışa uyğun qəbul elementi yoxdur.", + "intake.noMatchesTitle": "Sorğu tapılmadı", + "intake.pageDescription": "{{project}} layihəsinə gələn sorğuları triaj edin.", + "intake.pending": "Gözləyən", + "intake.request": "Sorğu", + "intake.scope": "Triaj statusu", + "intake.searchPlaceholder": "Sorğularda axtar", + "intake.snooze": "Təxirə sal", "intake.snooze.days_one": "{{count}} gün", "intake.snooze.days_other": "{{count}} gün", "intake.snooze.oneDay": "1 gün", "intake.snooze.oneWeek": "1 həftə", "intake.snooze.threeDays": "3 gün", + "intake.snoozed": "Təxirə salınmış", + "intake.source": "Mənbə", "intake.source.inApp": "Tətbiqdaxili", "intake.subtitle": "Daxil olan işi çeşidləyin: onu layihəyə qəbul edin, rədd edin, təxirə salın və ya dublikat kimi qeyd edin.", + "intake.summary": "{{pending}} gözləyir · bu növbədə {{visible}}", + "intake.tableCaption": "Gələn sorğular — prioritet, mənbə, yaradılma tarixi və triaj əməliyyatları.", + "intake.tableLabel": "Qəbul cədvəli", "intake.tabs.accepted": "Qəbul edilmiş", "intake.tabs.declined": "Rədd edilib", "intake.tabs.duplicate": "Dublikat", "intake.tabs.pending": "Gözləyən", "intake.tabs.snoozed": "Təxirə salınmış", "intake.title": "Qəbul", + "intake.toolbar": "Qəbul idarəetmələri", + "intake.untitled": "Adsız sorğu", + "intake.visibleCount": "{{count}} sorğu göstərilir", "integrations.configureSyncAria": "{{name}} üçün GitHub sinxronizasiyasını konfiqurasiya et", "integrations.description": "Devlane-i komandanızın artıq istifadə etdiyi alətlərlə birləşdirərək işi sinxron saxlayın.", "integrations.github.connect": "Qoş", @@ -1012,10 +1177,10 @@ "integrations.github.linked": "{{name}} bağlandı.", "integrations.github.unlinkConfirm": "GitHub repozitoriyasını bu layihədən ayırmaq istəyirsiniz?", "integrations.link": "Link", - "integrations.linkedRepositories": "Bağlı repozitoriyalar", "integrations.linkModalHint": "GitHub App-in giriş imkanı olan bir repozitoriya seçin. Bu layihəni hədəf alan pull request-lər onun məsələlərinə bağlanacaq.", "integrations.linkModalTitle": "GitHub repozitoriyasını {{name}} ilə əlaqələndirin", "integrations.linkRepo": "Reponu bağla", + "integrations.linkedRepositories": "Bağlı repozitoriyalar", "integrations.loadMore": "Daha çox yüklə", "integrations.noRepoLinked": "Heç bir repozitoriya bağlanmayıb.", "integrations.noReposAccessible": "Quraşdırma üçün əlçatan repozitoriya yoxdur. Əvvəlcə bu tətbiqi GitHub-dakı repozitoriyaya əlavə edin.", @@ -1030,10 +1195,11 @@ "integrations.syncSettings": "Sinxronlaşdırma tənzimləmələri", "integrations.title": "İnteqrasiyalar", "integrations.unlink": "Əlaqəni ayır", - "module.addedTime": "{{time}} əlavə edildi", + "issues.targetDate": "Bitmə tarixi", "module.addExistingWorkItem": "Mövcud iş elementi əlavə et", "module.addLink": "Link əlavə et", "module.addWorkItem": "İş elementi əlavə et", + "module.addedTime": "{{time}} əlavə edildi", "module.allWorkItems": "Bütün iş elementləri", "module.attachments": "Əlavələr", "module.backToModules": "Modullara qayıt", @@ -1055,8 +1221,8 @@ "module.links": "Linklər", "module.moduleColumn": "Modul", "module.newWorkItem": "Yeni iş elementi", - "module.notFound": "Modul tapılmadı.", "module.noWorkItemsMatchFilters": "Filtrlərinizə uyğun iş elementi yoxdur.", + "module.notFound": "Modul tapılmadı.", "module.removeLink": "Linki sil", "module.status.backlog": "Backlog", "module.status.cancelled": "Ləğv edildi", @@ -1077,23 +1243,53 @@ "module.url": "URL", "module.urlPlaceholder": "URL yazın və ya yapışdırın", "module.visibility": "Görünərlik", + "moduleStatus.backlog": "Backlog", + "moduleStatus.cancelled": "Ləğv edilib", + "moduleStatus.completed": "Tamamlanıb", + "moduleStatus.in_progress": "Davam edir", + "moduleStatus.paused": "Dayandırılıb", + "moduleStatus.planned": "Planlaşdırılıb", "modules.columnDuration": "Müddət", "modules.columnModules": "Modullar", + "modules.createDescription": "Modul layihəni ayrıca planlaşdırılan və izlənən iş hissəsinə bölür.", + "modules.createFailed": "Modul yaradıla bilmədi.", + "modules.dateRangeInvalid": "Hədəf tarixi başlanğıc tarixindən əvvəl ola bilməz.", "modules.dateRangeModalTitle": "Tarix aralığı", "modules.dateRangePlaceholder": "Başlanğıc tarixi → Bitmə tarixi", + "modules.descriptionPlaceholder": "İstəyə bağlı təsvir", "modules.documentTitle": "Modullar", "modules.durationDays_one": "{{count}} gün", "modules.durationDays_other": "{{count}} gün", "modules.editDates": "Modul tarixlərini redaktə et", "modules.empty": "Hələ modul yoxdur.", + "modules.emptyDescription": "Modullar layihəni ayrıca planlaşdırılan və izlənən iş bloklarına bölür.", "modules.emptyFavorites": "Sevimli modul yoxdur. Modulları buraya əlavə etmək üçün ulduzlayın.", "modules.emptySearch": "Axtarışınıza uyğun modul yoxdur.", + "modules.emptyTitle": "Hələ modul yoxdur", "modules.fullScreen": "Tam ekran", + "modules.loadErrorDescription": "Bağlantınızı yoxlayıb yenidən cəhd edin. Modullarınız dəyişdirilməyib.", + "modules.loadErrorTitle": "Modullar yüklənə bilmədi", + "modules.loading": "Modullar yüklənir…", "modules.moduleCount_one": "{{count}} Modul{{plural}}", "modules.moduleCount_other": "{{count}} Modul{{plural}}", + "modules.namePlaceholder": "Modul adı", + "modules.newModule": "Yeni modul", + "modules.noMatches": "Cari axtarışa uyğun modul yoxdur.", + "modules.noMatchesFiltered": "Cari axtarış və filtrlərə uyğun modul yoxdur.", + "modules.noMatchesTitle": "Modul tapılmadı", "modules.onlyCompletedArchivable": "Yalnız tamamlanmış və ya ləğv edilmiş modul arxivlənə bilər.", + "modules.pageDescription": "{{project}} layihəsində ayrıca planlaşdırılan iş blokları.", + "modules.searchPlaceholder": "Modullarda axtar", + "modules.startDate": "Başlanğıc", + "modules.summary": "{{total}} moduldan {{visible}}", + "modules.tableCaption": "Bu layihədəki modullar — status, irəliləyiş, başlanğıc və hədəf tarixləri.", + "modules.tableLabel": "Modullar cədvəli", + "modules.targetDate": "Hədəf", "modules.today": "Bu gün", + "modules.toolbar": "Modul idarəetmələri", + "modules.visibleCount": "{{count}} modul göstərilir", "modules.week": "{{number}}. həftə", + "nav.account": "Hesab", "nav.analytics": "Analitika", "nav.archives": "Arxivlər", "nav.deleteFolder": "Qovluğu sil", @@ -1105,6 +1301,7 @@ "nav.newFavoritesFolder": "Yeni sevimlilər qovluğu", "nav.newFolder": "Yeni qovluq", "nav.newWorkItem": "Yeni iş elementi", + "nav.notifications": "Bildirişlər", "nav.openCommandPalette": "Əmr paletini aç", "nav.projects": "Layihələr", "nav.removeFavorite": "Sevimlini sil", @@ -1115,23 +1312,33 @@ "nav.settings": "Tənzimləmələr", "nav.sidebar.ariaLabel": "Əsas yan panel", "nav.signOut": "Çıxış et", + "nav.signOutFailed": "Yerli olaraq çıxış edildi, lakin serverə çatmaq olmadı.", + "nav.signingOut": "Çıxış edilir…", "nav.views": "Baxışlar", "nav.workspaceInvites": "İş sahəsi dəvətləri", "nav.workspaceMenu": "İş sahəsi menyusu", "nav.yourWork": "İşiniz", + "notifications.actionError": "Əməliyyatı tamamlamaq mümkün olmadı. Yenidən cəhd edin.", "notifications.actorFallback": "Kimsə", "notifications.assigned": "{{actor}} sizi {{issueRef}} — {{name}} işinə təyin etdi", "notifications.commented": "{{actor}} {{issueRef}} — {{name}} işinə şərh yazdı", + "notifications.detailDescription": "Bildiriş təfərrüatları və əməliyyatları.", "notifications.documentTitle": "Gələnlər qutusu", "notifications.empty.all": "Gələnlər qutusu boşdur. Cəlb olduğunuz məsələlər haqqında bildirişlər burada görünəcək.", "notifications.empty.archived": "Arxivlənmiş bildiriş yoxdur. Gələnlərdən bir sətri itirmədən sahmana salmaq üçün arxivləşdirin.", "notifications.empty.mentions": "Hələ qeyd yoxdur. Kimsə sizi məsələdə və ya şərhdə @ ilə qeyd etdikdə burada görünəcək.", + "notifications.empty.unread": "Bütün bildirişlərə baxmısınız. Oxunmamış bildiriş yoxdur.", + "notifications.listLabel": "Bildirişlər", + "notifications.loadError": "Bildirişləri yükləmək mümkün olmadı.", "notifications.markAllRead": "Hamısını oxunmuş kimi işarələ", "notifications.markRead": "Oxunmuş kimi işarələ", "notifications.markUnread": "Oxunmamış kimi qeyd et", "notifications.mentioned": "{{actor}} sizi {{issueRef}} — {{name}} işində qeyd etdi", "notifications.new": "Yeni", + "notifications.noSearchResults": "Axtarışınıza uyğun bildiriş yoxdur.", "notifications.openIssue": "Məsələni aç", + "notifications.retry": "Yenidən cəhd et", + "notifications.searchPlaceholder": "Bildirişlərdə axtar…", "notifications.selectPrompt": "Təfərrüatları görmək üçün bildiriş seçin.", "notifications.snooze.custom": "Fərdi", "notifications.snooze.forOneHour": "1 saatlıq", @@ -1144,6 +1351,11 @@ "notifications.stateChangedFrom": "buradan", "notifications.stateChangedTo": "buraya", "notifications.subscribed": "{{actor}} {{issueRef}} işini yenilədi", + "notifications.subtitle": "İştirak etdiyiniz işlərlə bağlı yeniliklər bir yerdə.", + "notifications.tab.all": "Hamısı", + "notifications.tab.archived": "Arxivlənmiş", + "notifications.tab.mentions": "Qeydlər", + "notifications.tab.unread": "Oxunmamış", "page.addSubPage": "Alt-səhifə əlavə et", "page.archive": "Arxivlə", "page.archived": "Arxivləndi", @@ -1158,10 +1370,10 @@ "page.favorite": "Sevimli", "page.hideSidePanel": "Yan paneli gizlət", "page.history": "Tarixçə", - "page.loadingProjects": "Layihələr yüklənir…", "page.loadProjectsError": "Layihələri yükləmək alınmadı.", - "page.lockedNotice": "Sahib bu səhifəni kilidləyib. Oxuya bilərsiniz, amma redaktə edə bilməzsiniz.", + "page.loadingProjects": "Layihələr yüklənir…", "page.lockPage": "Səhifəni kilidlə", + "page.lockedNotice": "Sahib bu səhifəni kilidləyib. Oxuya bilərsiniz, amma redaktə edə bilməzsiniz.", "page.makeCopy": "Nüsxə çıxar", "page.makePrivate": "Şəxsi et", "page.makePublic": "Açıq et", @@ -1171,8 +1383,8 @@ "page.moveToProject": "Layihəyə köçür", "page.noOtherProjects": "Başqa mövcud layihə yoxdur.", "page.noSubPages": "Alt səhifə yoxdur.", - "page.notFound": "Səhifə tapılmadı.", "page.noVersions": "Hələ versiya yoxdur.", + "page.notFound": "Səhifə tapılmadı.", "page.outline": "Struktur", "page.relativeDaysAgo_one": "{{count}}g əvvəl", "page.relativeDaysAgo_other": "{{count}}g əvvəl", @@ -1186,8 +1398,8 @@ "page.restore": "Bərpa et", "page.restoreFailed": "Bərpa alınmadı", "page.restoreThisVersion": "Bu versiyanı bərpa et", - "page.savedAt": "Yadda saxlanıldı · {{time}}", "page.saveFailed": "Saxlama alınmadı", + "page.savedAt": "Yadda saxlanıldı · {{time}}", "page.saving": "Yadda saxlanılır…", "page.showSidePanel": "Yan paneli göstər", "page.subPages": "Alt-səhifələr", @@ -1197,34 +1409,66 @@ "page.untitled": "Başlıqsız", "page.untitledSubpage": "Adsız alt-səhifə", "page.versionPreviewTitle": "Versiya önizləməsi · {{time}}", + "pages.access": "Giriş", "pages.addPage": "Səhifə əlavə et", + "pages.archiveError": "Həmin səhifə arxivlənə bilmədi.", + "pages.archivedTableLabel": "Arxivlənmiş səhifələr cədvəli", "pages.ascending": "Artan", "pages.clearFilters": "Filtrləri təmizlə", "pages.closeSearch": "Axtarışı bağla", - "pages.createdOn": "Yaradıldı {{date}}", + "pages.createDescription": "Səhifələr işin ətrafındakı yazını saxlayır — spesifikasiyalar, qeydlər və qərarlar.", + "pages.createFailed": "Səhifə yaradıla bilmədi.", "pages.createPage": "Səhifə yarat", + "pages.createdOn": "Yaradıldı {{date}}", "pages.deleteFailed": "Silinmə uğursuz oldu", "pages.descending": "Azalan", "pages.documentTitle": "Səhifələr", "pages.emptyArchived": "Arxivlənmiş səhifələr burada görünəcək. Aktiv siyahını sadələşdirmək üçün səhifəni detal görünüşündən arxivləyin.", + "pages.emptyArchivedTitle": "Arxivlənmiş səhifə yoxdur", + "pages.emptyDescription": "Səhifələr işin ətrafındakı yazını saxlayır — iş elementindən uzun ömürlü spesifikasiya, qeyd və qərarlar.", "pages.emptyPrivate": "Hələ şəxsi səhifə yoxdur. Şəxsi kimi işarələdiyiniz səhifələr yalnız sizə görünür.", "pages.emptyPublic": "Hələ ictimai səhifə yoxdur. Komandanızla birlikdə işi sənədləşdirməyə başlamaq üçün ilk səhifənizi yaradın.", + "pages.emptyTitle": "Hələ səhifə yoxdur", "pages.favorite": "Sevimli", "pages.filters": "Filtrlər", + "pages.loadErrorDescription": "Bağlantınızı yoxlayıb yenidən cəhd edin. Səhifələriniz dəyişdirilməyib.", + "pages.loadErrorTitle": "Səhifələr yüklənə bilmədi", + "pages.loading": "Səhifələr yüklənir…", + "pages.lock": "Kilidlə", + "pages.lockError": "Həmin səhifə yenilənə bilmədi.", "pages.locked": "Kilidli", + "pages.lockedOnly": "Yalnız kilidli", "pages.makeCopy": "Kopya yarat", + "pages.newPage": "Yeni səhifə", + "pages.noMatches": "Cari axtarışa uyğun səhifə yoxdur.", + "pages.noMatchesTitle": "Səhifə tapılmadı", "pages.ownedBy": "Sahibi: {{name}}", "pages.ownedByMe": "Mənə məxsus", + "pages.pageDescription": "{{project}} layihəsi ilə birlikdə yaşayan yazılı bilik.", "pages.private": "Şəxsi", "pages.public": "İctimai", "pages.quickFilters": "Sürətli filtrlər", + "pages.scope": "Səhifə növü", "pages.searchPlaceholder": "Səhifələri axtar", + "pages.summary": "{{live}} aktiv · {{archived}} arxivlənmiş", + "pages.tableCaption": "Bu layihədəki səhifələr — giriş, tarixlər və əməliyyatlar.", + "pages.tableLabel": "Səhifələr cədvəli", "pages.title": "Başlıq", + "pages.toolbar": "Səhifə idarəetmələri", + "pages.unarchiveError": "Həmin səhifə bərpa edilə bilmədi.", "pages.unfavorite": "Sevimlilərdən çıxar", + "pages.unlock": "Kilidi aç", "pages.untitled": "Adsız", "pages.untitledPage": "Adsız səhifə", "pages.visibility": "Görünürlük", "pages.visibilityNav": "Səhifə görünürlüyü", + "pages.visibleCount": "{{count}} səhifə göstərilir", + "priority.high": "Yüksək", + "priority.low": "Aşağı", + "priority.medium": "Orta", + "priority.none": "Yoxdur", + "priority.urgent": "Təcili", + "profile.about": "Haqqında", "profile.activity.assignee": "{{ref}} elementinə yeni təyin edilən şəxs {{assignee}} əlavə etdiniz {{time}}", "profile.activity.created": "Siz {{ref}} {{title}} yaratdınız {{time}}", "profile.activity.cycle": "Siz {{ref}} {{title}} elementini {{cycle}} dövrünə əlavə etdiniz {{time}}", @@ -1232,9 +1476,11 @@ "profile.activity.label": "Siz {{ref}} {{title}} elementinə yeni <2>{{label}} etiketi əlavə etdiniz {{time}}", "profile.activityTab.assignee": "Siz <4>{{ref}} elementinə yeni məsul şəxs <1>{{assignee}} əlavə etdiniz {{time}}.", "profile.activityTab.created": "<2>{{ref}} {{title}} yaratdınız {{time}}.", + "profile.activityTab.createdShort": "Yaradıldı", "profile.activityTab.cycle": "Siz <2>{{ref}} {{title}} elementini <5>{{cycle}} tsikline əlavə etdiniz {{time}}.", "profile.activityTab.generic": "Fəaliyyət {{time}}.", "profile.activityTab.label": "Siz <6>{{ref}} {{title}}-ə yeni <2>{{label}} etiketi əlavə etdiniz {{time}}.", + "profile.activityTimeline": "Fəaliyyət zaman qrafiki", "profile.allWorkItems_one": "Bütün iş elementləri {{count}}", "profile.allWorkItems_other": "Bütün iş elementləri {{count}}", "profile.chartView": "Qrafik görünüşü", @@ -1243,30 +1489,52 @@ "profile.downloadTodaysActivity": "Bugünkü fəaliyyəti endir", "profile.editProfile": "Profili redaktə et", "profile.filters": "Filtrlər", + "profile.fullName": "Ad soyad", "profile.joinedOn": "Qoşulma tarixi: {{date}}", "profile.listView": "Siyahı görünüşü", + "profile.loadError": "Bu profil yüklənə bilmədi.", + "profile.loadErrorDescription": "Bağlantınızı yoxlayın və yenidən cəhd edin. Profil məlumatları dəyişdirilməyib.", + "profile.loading": "Profil yüklənir", "profile.memberFallback": "Üzv", + "profile.noAssigned": "Hələ heç nə təyin edilməyib.", + "profile.noCreated": "Hələ heç nə yaradılmayıb.", + "profile.noMatchingProjects": "Axtarışınıza uyğun layihə yoxdur.", + "profile.noProjects": "Hələ layihə yoxdur.", "profile.noRecentActivity": "Son fəaliyyət yoxdur", "profile.noWorkItems": "İş elementi yoxdur", + "profile.openProject": "{{project}} layihəsini aç", "profile.overview": "Ümumi baxış", + "profile.pageDescription": "İş sahənizdə üzv məlumatlarını, iş yükünü və son işləri nəzərdən keçirin.", "profile.priority.high": "Yüksək", "profile.priority.low": "Aşağı", "profile.priority.medium": "Orta", "profile.priority.none": "Yoxdur", "profile.priority.urgent": "Təcili", + "profile.priorityProgress": "{{priority}}: təyin edilmiş {{total}} iş elementindən {{count}}-i", + "profile.projectProgress": "{{percent}}%", "profile.projects": "Layihələr", + "profile.projectsList": "Layihə siyahısı", "profile.recentActivity": "Son fəaliyyət", + "profile.searchProjects": "Layihə axtar", + "profile.showingProjects": "{{total}} layihədən {{shown}} göstərilir", + "profile.summary": "{{assigned}} təyin edilmiş · {{created}} yaradılmış · {{projects}} layihə", "profile.tab.activity": "Fəaliyyət", "profile.tab.assigned": "Təyin edilmiş", "profile.tab.created": "Yaradıldı", "profile.tab.subscribed": "Abunə olunmuş", "profile.tab.summary": "Xülasə", "profile.timezone": "Saat qurşağı 23:10 UTC", + "profile.timezoneLabel": "Saat qurşağı", + "profile.timezoneValue": "Saat qurşağı {{time}} ({{zone}})", + "profile.toggleProjectStates": "{{project}} üçün status bölgüsünü göstər", + "profile.username": "İstifadəçi adı", "profile.usernameFallback": "istifadəçi", "profile.workItemCountOne_one": "{{count}} iş elementi", "profile.workItemCountOne_other": "{{count}} iş elementi", "profile.workItemCountOther_one": "{{count}} iş elementi", "profile.workItemCountOther_other": "{{count}} İş elementi", + "profile.workItemCount_one": "{{count}} iş elementi", + "profile.workItemCount_other": "{{count}} iş elementi", "profile.workItemsAssigned": "Təyin edilmiş iş elementləri", "profile.workItemsByPriority": "Prioritetə görə iş elementləri", "profile.workItemsByState": "Vəziyyətə görə iş elementləri", @@ -1274,20 +1542,37 @@ "profile.workItemsSubscribed": "Abunə olunmuş iş elementləri", "profile.workload.backlog": "Backlog", "profile.workload.canceled": "Ləğv edilmiş", + "profile.workload.cancelled": "Ləğv edilmiş", "profile.workload.completed": "Tamamlandı", "profile.workload.notStarted": "Başlamayıb", + "profile.workload.started": "Davam edir", "profile.workload.title": "İş yükü", + "profile.workload.unstarted": "Gözləyir", "profile.workload.workingOn": "Üzərində işləyir", + "profile.workspace": "İş sahəsi", "project.create.aboutId": "Layihə ID-si haqqında", + "project.create.accessLabel": "Giriş", + "project.create.accessPublic": "İctimai", + "project.create.accessSecret": "Şəxsi", "project.create.changeIcon": "Layihə ikonunu dəyiş", "project.create.chooseImage": "Şəkil seçin", "project.create.coverTitle": "Layihə üz qabığını seçin", + "project.create.descriptionLabel": "Təsvir", + "project.create.descriptionPlaceholder": "Bu layihə nə üçündür?", "project.create.error": "Layihə yaradıla bilmədi.", + "project.create.idHint": "Hər iş elementinin əvvəlində görünür, məsələn DEV-1. Boş saxlanarsa addan yaradılır.", + "project.create.idLabel": "Layihə ID-si", "project.create.idPlaceholder": "Layihə ID-si", "project.create.idTooltip": "Layihədəki iş elementlərini unikal şəkildə müəyyən etməyə kömək edir. Maksimum 7 simvol.", + "project.create.leadLabel": "Rəhbər", + "project.create.leadPlaceholder": "Rəhbər seçin", + "project.create.leadUnknown": "Naməlum üzv", + "project.create.nameLabel": "Ad", "project.create.namePlaceholder": "Layihə adı", "project.create.nameRequired": "Layihə adı tələb olunur.", "project.create.submit": "Layihə yarat", + "project.create.submitting": "Yaradılır…", + "project.create.subtitle": "Layihələr komandanızın birlikdə təqdim etdiyi iş elementlərini, dövrləri və modulları qruplaşdırır.", "project.create.title": "Layihə yarat", "project.icon.chooseIcon": "İkon seçin", "project.icon.color": "Rəng", @@ -1298,17 +1583,50 @@ "project.network.label": "Şəbəkə", "project.network.private": "Şəxsi", "project.network.public": "İctimai", + "projects.activeFilters": "Aktiv filtrlər", "projects.addToFavorites": "Sevimlilərə əlavə et", + "projects.createProject": "Yeni layihə", "projects.documentTitle": "Layihələr", "projects.empty": "Hələ layihə yoxdur.", + "projects.emptyDescription": "Layihələr iş elementlərini, dövrləri, modulları və komanda yoldaşlarını bir yerdə birləşdirir.", + "projects.emptyTitle": "İlk layihənizi yaradın", "projects.extraMembers_one": "daha {{count}}", "projects.extraMembers_other": "daha {{count}}", + "projects.favoriteError": "Sevimlini yeniləmək mümkün olmadı. Yenidən cəhd edin.", + "projects.favoriteLoadError": "Sevimliləri yükləmək mümkün olmadı. Layihə siyahısı hələ də əlçatandır.", + "projects.gridLabel": "Layihə kartları", + "projects.gridView": "Kart görünüşü", + "projects.loadErrorDescription": "Bağlantınızı yoxlayın və yenidən cəhd edin. Layihə məlumatlarınız dəyişdirilməyib.", + "projects.loadErrorTitle": "Layihələri yükləmək mümkün olmadı", + "projects.loading": "Layihələr yüklənir", + "projects.loadingMembers": "Üzvlər yüklənir", + "projects.memberCount_one": "{{count}} üzv", + "projects.memberCount_other": "{{count}} üzv", + "projects.memberList": "Üzvlər: {{members}}", + "projects.membersLoadingNotice": "Üzv məlumatları hələ yüklənir.", + "projects.membersPartialNotice": "Bəzi üzv məlumatları əlçatan olmadığı üçün üzv əsaslı nəticələri göstərmək mümkün deyil.", + "projects.membersUnavailable": "Üzv məlumatları əlçatan deyil", "projects.noDescription": "Təsvir yoxdur", "projects.noFilterResults": "Seçilmiş filtrlərə uyğun layihə yoxdur.", + "projects.noFilterResultsTitle": "Layihə tapılmadı", "projects.noMembers": "Üzv yoxdur", "projects.noSearchResults": "Axtarışınıza uyğun nəticə yoxdur", + "projects.openWorkItems": "İş elementlərini aç", + "projects.pageDescription": "İş sahəniz üzrə işi, insanları və çatdırılmanı təşkil edin.", + "projects.projectMenu": "{{project}} əməliyyatları", "projects.projectSettings": "Layihə parametrləri", "projects.removeFromFavorites": "Sevimlilərdən çıxar", + "projects.rosterLoadError": "İş sahəsinin üzvlərini yükləmək mümkün olmadı. İnsan filtrləri və rəhbər seçimi müvəqqəti olaraq əlçatan deyil.", + "projects.scope": "Layihə əhatəsi", + "projects.summary": "Layihələr {{projects}} · İştirak {{mine}} · Sevimlilər {{favorites}}", + "projects.tableCaption": "İş sahəsinin layihələri, giriş icazəsi, rəhbərləri, üzvləri və yenilənmələri", + "projects.tableLabel": "Layihələr cədvəli", + "projects.tableView": "Cədvəl görünüşü", + "projects.toolbar": "Layihə idarəetmələri", + "projects.unassignedLead": "Rəhbər təyin edilməyib", + "projects.viewMode": "Layihə görünüşü", + "projects.visibleCount_one": "{{count}} layihə göstərilir", + "projects.visibleCount_other": "{{count}} layihə göstərilir", "settings.account.changeProfilePicture": "Profil şəklini dəyiş", "settings.account.deactivate.busy": "Deaktiv edilir…", "settings.account.deactivate.confirm": "Deaktiv et", @@ -1328,10 +1646,13 @@ "settings.account.emailChange.sendCode": "Kod göndər", "settings.account.emailChange.sendError": "Təsdiq kodunu göndərmək alınmadı", "settings.account.emailChange.sending": "Göndərilir…", + "settings.account.emailChange.updated": "E-poçt ünvanı yeniləndi.", "settings.account.emailChange.verifyPrompt": "{{email}} ünvanına göndərdiyimiz kodu daxil edin.", + "settings.account.emailDescription": "Daxil olmaq və sizinlə əlaqə saxlamaq üçün istifadə olunur. Yeni ünvan qüvvəyə minməzdən əvvəl təsdiqlənməlidir.", "settings.account.firstName": "Ad", "settings.account.lastName": "Soyad", "settings.account.profileSaveError": "Profil yadda saxlanıla bilmədi", + "settings.account.profileSaved": "Profil yeniləndi.", "settings.account.saveChanges": "Dəyişiklikləri yadda saxla", "settings.account.selectCoverImage": "Örtük şəkli seçin", "settings.account.uploadProfilePicture": "Profil şəklini yüklə", @@ -1340,10 +1661,11 @@ "settings.activity.subtitle": "Bütün layihələr və iş elementləri üzrə son əməliyyatlarınızı və dəyişikliklərinizi izləyin.", "settings.activity.title": "Fəaliyyət", "settings.activity.youCommented": "Şərh yazdınız {{time}}", + "settings.activity.youUpdated": "Yeniləmə etdiniz {{time}}", "settings.apiTokens.add": "İş sahəsi tokeni əlavə et", "settings.apiTokens.copyHint": "Bu tokeni indi kopyalayın; bir daha göstərilməyəcək.", - "settings.apiTokens.createdTitle": "Token yaradıldı", "settings.apiTokens.createTitle": "İş sahəsi tokeni yarat", + "settings.apiTokens.createdTitle": "Token yaradıldı", "settings.apiTokens.description": "Bu iş sahəsi kimi autentifikasiya edən xidmət tokenləri yaradın ki, skriptlər və inteqrasiyalar şəxsi hesab olmadan ona giriş əldə edə bilsin.", "settings.apiTokens.empty": "Hələ iş sahəsi tokeni yoxdur.", "settings.apiTokens.error.adminOnlyCreate": "Yalnız iş sahəsi adminləri xidmət tokenləri yarada bilər.", @@ -1487,9 +1809,29 @@ "settings.notifications.inAppAria": "{{label}} tətbiqdaxili", "settings.notifications.project.description": "Bu layihədəki işlər üçün necə xəbərdar edildiyiniz. İş sahəsi və hesab defoltlarını ləğv edir.", "settings.notifications.project.title": "Layihə bildirişləri", + "settings.notifications.row.comments.desc": "Kimsə bir iş elementinə şərh yazdıqda mənə bildir.", + "settings.notifications.row.comments.label": "Şərhlər", + "settings.notifications.row.completed.desc": "Bir iş elementi tamamlandıqda mənə bildir.", + "settings.notifications.row.completed.label": "İş elementi tamamlandı", + "settings.notifications.row.mentions.desc": "Kimsə bir şərhdə və ya təsvirdə məni qeyd etdikdə mənə bildir.", + "settings.notifications.row.mentions.label": "Qeyd etmələr", + "settings.notifications.row.property.desc": "İş elementlərinin təyin edilən şəxs, prioritet və ya qiymətləndirmə kimi xassələri dəyişdikdə mənə bildir.", + "settings.notifications.row.property.label": "Xassə dəyişiklikləri", + "settings.notifications.row.state.desc": "Bir iş elementi fərqli bir statusa keçdikdə mənə bildir.", + "settings.notifications.row.state.label": "Status dəyişikliyi", "settings.notifications.title": "Bildirişlər", "settings.notifications.workspace.description": "Bu iş sahəsindəki iş barədə necə xəbərdar edildiyiniz. Hesab standartlarınızı əvəz edir; layihələr bunu əvəz edə bilər.", "settings.notifications.workspace.title": "İş sahəsi bildirişləri", + "settings.preferences.appearance.help": "Bir-birindən asılı olmayan iki seçim: rejim interfeysin işıqlı və ya qaranlıq olduğunu, vurğu isə düymələrin və fokus halqalarının hansı rənglə dolduğunu müəyyən edir.", + "settings.preferences.appearance.title": "Görünüş", + "settings.preferences.colorTheme.accent": "Vurğu", + "settings.preferences.colorTheme.accentHelp": "Yalnız dolu düymələri və fokus halqalarını rəngləndirir. Səthlər, sərhədlər və mətn olduğu kimi qalır.", + "settings.preferences.colorTheme.blue": "Mavi", + "settings.preferences.colorTheme.default": "Defolt", + "settings.preferences.colorTheme.green": "Yaşıl", + "settings.preferences.colorTheme.orange": "Narıncı", + "settings.preferences.colorTheme.rose": "Gül", + "settings.preferences.colorTheme.violet": "Bənövşəyi", "settings.preferences.firstDayOfWeek.help": "Bu, tətbiqinizdəki bütün təqvimlərin görünüşünü dəyişəcək.", "settings.preferences.firstDayOfWeek.monday": "Bazar ertəsi", "settings.preferences.firstDayOfWeek.sunday": "Bazar", @@ -1497,7 +1839,10 @@ "settings.preferences.language.help": "İstifadəçi interfeysində istifadə olunan dili seçin.", "settings.preferences.language.title": "Dil", "settings.preferences.languageAndTime": "Dil və Vaxt", + "settings.preferences.regionalDescription": "Tarixlərin, saatların və interfeysin sizə necə göstərilməsi.", + "settings.preferences.regionalTitle": "Dil və region", "settings.preferences.save": "Seçimləri yadda saxla", + "settings.preferences.saved": "Tənzimləmələr yadda saxlanıldı.", "settings.preferences.subtitle": "Tətbiq təcrübənizi işlədiyiniz tərzdə fərdiləşdirin", "settings.preferences.theme.dark": "Tünd", "settings.preferences.theme.help": "İnterfeysinizin rəng sxemini seçin və ya fərdiləşdirin.", @@ -1542,6 +1887,7 @@ "settings.section.states": "Statuslar", "settings.section.tokens": "Şəxsi Giriş Tokenləri", "settings.section.webhooks": "Webhook-lar", + "settings.security.cardDescription": "Başqa heç bir yerdə istifadə etmədiyiniz parol seçin.", "settings.security.changeError": "Parol dəyişdirilə bilmədi", "settings.security.changePassword": "Şifrəni dəyiş", "settings.security.changing": "Dəyişdirilir…", @@ -1578,9 +1924,9 @@ "settings.tabs.workspace": "İş sahəsi", "settings.tokens.add": "Şəxsi giriş tokeni əlavə et", "settings.tokens.copyWarning": "Bu tokeni indi kopyalayın; o bir daha göstərilməyəcək.", + "settings.tokens.createTitle": "Token yarat", "settings.tokens.created": "Yaradılıb {{time}}", "settings.tokens.createdTitle": "Token yaradıldı", - "settings.tokens.createTitle": "Token yarat", "settings.tokens.empty": "Hələ token yoxdur.", "settings.tokens.expiry.month": "1 ay", "settings.tokens.expiry.never": "Heç vaxt bitmir", @@ -1613,10 +1959,10 @@ "settings.webhooks.error.update": "Webhook-u yeniləmək mümkün olmadı. Zəhmət olmasa yenidən cəhd edin.", "settings.webhooks.event.cycle.hint": "Tsikl dəyişiklikləri", "settings.webhooks.event.cycle.label": "Dövrlər", - "settings.webhooks.event.issue_comment.hint": "Məsələlərə yeni şərhlər", - "settings.webhooks.event.issue_comment.label": "Məsələ şərhləri", "settings.webhooks.event.issue.hint": "Yaradılmış, yenilənmiş və ya silinmiş məsələlər", "settings.webhooks.event.issue.label": "Issue-lar", + "settings.webhooks.event.issue_comment.hint": "Məsələlərə yeni şərhlər", + "settings.webhooks.event.issue_comment.label": "Məsələ şərhləri", "settings.webhooks.event.module.hint": "Modul dəyişiklikləri", "settings.webhooks.event.module.label": "Modullar", "settings.webhooks.event.project.hint": "Layihə həyat dövrü dəyişiklikləri", @@ -1689,6 +2035,8 @@ "stateGroup.completed": "Hazır", "stateGroup.started": "İcrada", "stateGroup.unstarted": "Görüləcək", + "states.completed": "Bitdi", + "states.started": "İcradadır", "stickies.backgroundColor": "Fon rəngi", "stickies.bold": "Qalın", "stickies.changeColor": "Rəngi dəyiş", @@ -1705,21 +2053,28 @@ "views.access.private": "Şəxsi", "views.access.public": "İctimai", "views.access.restricted": "Məhdudlaşdırılmış", + "views.accessPrivate": "Şəxsi", + "views.accessPublic": "Açıq", + "views.accessRestricted": "Məhdud", + "views.activeFilters": "Aktiv filtrlər", "views.addView": "Görünüş əlavə et", "views.addWorkItem": "İş elementi əlavə et", "views.allWorkItems": "Bütün iş elementləri", + "views.assigned": "Təyin edilmiş", "views.assignees": "Təyin olunanlar", "views.attachments": "Əlavələr", "views.backToViews": "Görünüşlərə qayıt", + "views.boardLabel": "İş elementləri lövhəsi", "views.clearAll": "Hamısını təmizlə", "views.clearFilter": "{{label}} filtrini təmizlə", "views.copied": "Kopyalandı!", - "views.created": "Yaradılıb", - "views.createdBy": "Yaradan", - "views.createdOn": "Yaradılma tarixi", "views.createFailed": "Görünüş yaradıla bilmədi.", "views.createFirst": "İlk görünüşünüzü yaradın", + "views.createProjectViewDescription": "Görünüş filtr dəstini yadda saxlayır ki, hər gün baxdığınız iş bir kliklə açılsın.", "views.createView": "Görünüş yarat", + "views.created": "Yaradılıb", + "views.createdBy": "Yaradan", + "views.createdOn": "Yaradılma tarixi", "views.creating": "Yaradılır...", "views.customDateRange": "Fərdi · {{after}} → {{before}}", "views.cycle": "Tsikl", @@ -1727,6 +2082,7 @@ "views.dateRange.previousMonth": "Əvvəlki ay", "views.dateRange.summary": "Sonra: {{after}} Əvvəl: {{before}}", "views.deleteConfirm": "{{name}} görünüşü silinsin? Bu əməliyyat geri qaytarıla bilməz.", + "views.deleteError": "Həmin görünüş silinə bilmədi.", "views.deleteFailed": "Görünüş silinə bilmədi.", "views.deleteView": "Görünüşü sil", "views.deleting": "Silinir...", @@ -1744,12 +2100,13 @@ "views.emptyDescription": "Görünüşlər tez-tez istifadə etdiyiniz və ya asan giriş istədiyiniz saxlanmış filtrlər toplusudur. Layihədəki bütün həmkarlarınız hər kəsin görünüşlərini görə və ehtiyaclarına ən uyğununu seçə bilər.", "views.emptyTitle": "Layihəniz üçün filtrlənmiş görünüşləri yadda saxlayın. Lazım olduğu qədər yaradın", "views.emptyWorkItems": "Hələ iş elementi yoxdur. Layihənin İş elementləri bölməsindən birini yaradın və ya başlamaq üçün görünüş əlavə edin.", + "views.emptyWorkItemsTitle": "Hələ iş elementi yoxdur", "views.estimate": "Qiymətləndirmə", "views.failedToCreate": "İş elementi yaradıla bilmədi", "views.favoriteError": "Sevimli yenilənə bilmədi. Zəhmət olmasa yenidən cəhd edin.", + "views.favoriteView": "Görünüşü sevimli et", "views.favorites": "Sevimlilər", "views.favoritesOnly": "yalnız", - "views.favoriteView": "Görünüşü sevimli et", "views.filter.assigneesLabel": "Təyin edilən şəxslər", "views.filter.clearAll": "Hamısını təmizlə", "views.filter.clearFilter": "{{label}} filtrini təmizlə", @@ -1777,11 +2134,17 @@ "views.filterCount_one": "{{count}} filtr", "views.filterCount_other": "{{count}} filtr", "views.filters": "Filtrlər", + "views.grouping": "Qruplaşdırma", "views.labels": "Etiketlər", "views.lastMonth": "Son 1 ay", "views.lastTwoWeeks": "Son 2 həftə", "views.lastWeek": "Son 1 həftə", + "views.layout": "Düzülüş", + "views.listLabel": "İş elementləri siyahısı", "views.loadError": "Layihə görünüşləri hazırda yüklənə bilmir. Zəhmət olmasa səhifəni yeniləyin və yenidən cəhd edin.", + "views.loadErrorDescription": "Bağlantınızı yoxlayıb yenidən cəhd edin. İş elementləriniz dəyişdirilməyib.", + "views.loadErrorTitle": "İş elementləri yüklənə bilmədi", + "views.loading": "İş elementləri yüklənir", "views.loadingProject": "Layihə yüklənir...", "views.loadingView": "Görünüş yüklənir…", "views.loadingViewDetail": "Görünüş yüklənir...", @@ -1794,6 +2157,8 @@ "views.newView": "Yeni görünüş", "views.newWorkItem": "Yeni iş elementi", "views.noCycle": "Tsikl yoxdur", + "views.noFilterResults": "Cari axtarış və filtrlərə uyğun iş elementi yoxdur.", + "views.noFilterResultsTitle": "İş elementi tapılmadı", "views.noLabels": "Etiket yoxdur.", "views.noLabelsGroup": "Etiket yoxdur", "views.noMatchDescription": "Axtarışınızı, yaradılma tarixini, sevimliləri və ya yaradan filtrlərini təmizləməyə və ya yumşaltmağa cəhd edin.", @@ -1805,15 +2170,29 @@ "views.oneFilter": "1 filtr", "views.openInNewTab": "Yeni vərəqdə aç", "views.optionalDescription": "İstəyə bağlı təsvir", + "views.pageDescription": "İş sahənizdəki bütün layihələr üzrə iş elementlərini izləyin.", "views.priority": "Prioritet", "views.private": "Şəxsi", + "views.projectEmptyDescription": "Görünüş filtr dəstini saxlayır ki, hər gün baxdığınız iş bir kliklə açılsın.", + "views.projectLoadErrorDescription": "Bağlantınızı yoxlayıb yenidən cəhd edin. Görünüşləriniz dəyişdirilməyib.", + "views.projectLoadErrorTitle": "Görünüşlər yüklənə bilmədi", + "views.projectNoMatches": "Cari axtarışa uyğun görünüş yoxdur.", + "views.projectNoMatchesFiltered": "Cari axtarış və filtrlərə uyğun görünüş yoxdur.", "views.projectNotFound": "Layihə tapılmadı.", + "views.projectPageDescription": "{{project}} layihəsindəki iş üzərində saxlanmış filtrlər.", + "views.projectSummary": "{{total}} görünüşdən {{visible}}", + "views.projectTableCaption": "Bu layihədəki saxlanmış görünüşlər — giriş, son yenilənmə və görünüş əməliyyatları.", + "views.projectTableLabel": "Görünüşlər cədvəli", + "views.projectVisibleCount": "{{count}} görünüş göstərilir", "views.public": "İctimai", "views.restricted": "Məhdudlaşdırılıb", "views.saveChanges": "Dəyişiklikləri saxla", - "views.saved": "Yadda saxlanıldı", "views.saveError": "Yadda saxlanıla bilmədi. Yenidən cəhd edin.", + "views.saved": "Yadda saxlanıldı", "views.saving": "Yadda saxlanılır...", + "views.scope": "Baxış əhatəsi", + "views.searchPlaceholder": "İş elementlərini axtar", + "views.searchProjectViews": "Görünüşlərdə axtar", "views.selectCycle": "Tsikl seçin", "views.selectLabels": "Etiketləri seçin", "views.selectModules": "Modulları seç", @@ -1821,21 +2200,27 @@ "views.selectParent.title": "Valideyn seçin", "views.showSubWorkItems": "Alt iş elementlərini göstər", "views.startDate": "Başlama tarixi", + "views.state": "Status", "views.subWorkItems": "Alt iş elementləri", + "views.subscribed": "Abunə olunmuş", + "views.summary": "İş elementləri {{items}} · Açıq {{open}} · Tamamlanmış {{completed}}", + "views.tableLabel": "İş elementləri cədvəli", "views.thisView": "bu görünüş", "views.title": "Başlıq", "views.titleRequired": "Başlıq tələb olunur.", + "views.toolbar": "Baxış idarəetmələri", "views.unableToLoadView": "Bu görünüş yüklənə bilmədi.", "views.unassigned": "Təyin edilməyib", "views.unfavoriteView": "Baxışı sevimlilərdən çıxar", "views.unknown": "Naməlum", - "views.updatedOn": "Yenilənib", "views.updateFailed": "Görünüş yenilənə bilmədi.", + "views.updatedOn": "Yenilənib", "views.viewActions": "Görünüş əməliyyatları", "views.viewDoesNotExist": "Görünüş mövcud deyil", "views.viewNamePlaceholder": "Baxış adı", "views.viewNotFound": "Görünüş tapılmadı.", "views.viewNotFoundDescription": "Axtardığınız görünüş mövcud deyil və ya onu görməyə icazəniz yoxdur.", + "views.visibleCount": "{{count}} iş elementi görünür", "views.workItems": "İş elementləri", "views.zeroAttachments": "0 əlavə", "views.zeroLinks": "0 keçid", @@ -1915,8 +2300,8 @@ "workItem.create.title": "Yeni iş elementi yarat", "workItem.create.titleDraft": "Qaralama iş elementi yarat", "workItem.description.placeholder": "Təsvir əlavə edin…", - "workItem.description.saved": "Yadda saxlanıldı", "workItem.description.saveFailed": "Yadda saxlanıla bilmədi", + "workItem.description.saved": "Yadda saxlanıldı", "workItem.description.saving": "Yadda saxlanılır…", "workItem.detail.activity": "Fəaliyyət", "workItem.detail.addAssignee": "Təyin edilən əlavə et", @@ -1928,9 +2313,12 @@ "workItem.detail.archiveFailed": "İş elementi arxivlənə bilmədi.", "workItem.detail.assigneesCount_one": "{{count}} təyin olunan", "workItem.detail.assigneesCount_other": "{{count}} təyin edilmiş şəxs", + "workItem.detail.backToList": "İş elementlərinə qayıt", "workItem.detail.bot": "Bot", "workItem.detail.botAriaLabel": "GitHub bot", "workItem.detail.botTitle": "GitHub inteqrasiyası tərəfindən yerləşdirilib", + "workItem.detail.commentFailed": "Şərh göndərilə bilmədi.", + "workItem.detail.comments": "Şərhlər", "workItem.detail.commentsCount_one": "Şərhlər {{count}}", "workItem.detail.commentsCount_other": "Şərhlər {{count}}", "workItem.detail.confirmChange": "təsdiqlə", @@ -1956,6 +2344,7 @@ "workItem.detail.field.dueDate": "Son tarix", "workItem.detail.field.estimate": "Təxmin", "workItem.detail.field.labels": "Etiketlər", + "workItem.detail.field.module": "Modul", "workItem.detail.field.modules": "Modullar", "workItem.detail.field.parent": "Əsas element", "workItem.detail.field.priority": "Prioritet", @@ -1967,7 +2356,9 @@ "workItem.detail.issueNotFound": "Məsələ tapılmadı.", "workItem.detail.issuesBreadcrumb": "Məsələlər", "workItem.detail.lastEdited": "Son redaktə {{date}}", + "workItem.detail.loading": "İş elementi yüklənir", "workItem.detail.noComments": "Hələ şərh yoxdur.", + "workItem.detail.noCommentsDescription": "Müzakirəyə başlayın — şərhlər bu iş elementini aça bilən hər kəsə görünür.", "workItem.detail.noCycle": "Tsikl yoxdur", "workItem.detail.noEstimate": "Qiymətləndirmə yoxdur", "workItem.detail.noLabels": "Etiket yoxdur.", @@ -1976,13 +2367,24 @@ "workItem.detail.noModules": "Modul yoxdur", "workItem.detail.noPriority": "Prioritet yoxdur", "workItem.detail.noState": "Vəziyyət yoxdur", + "workItem.detail.noSubWorkItems": "Hələ alt iş elementi yoxdur", + "workItem.detail.noSubWorkItemsDescription": "Bu iş elementini başqa iş elementinin əsas elementi təyin edərək hissələrə bölün.", + "workItem.detail.notFoundDescription": "Bu iş elementi silinmiş ola bilər və ya aça bilmədiyiniz layihəyə aiddir.", + "workItem.detail.pageDescription": "Bu iş elementinin təsvirini, alt iş elementlərini və müzakirəsini izləyin.", + "workItem.detail.pageSummary": "Yeniləndi {{updated}} · Yaradıldı {{created}}", "workItem.detail.postCommentFailed": "Şərh yerləşdirmək alınmadı.", "workItem.detail.properties": "Xüsusiyyətlər", "workItem.detail.removeParent": "Valideyni sil", "workItem.detail.restoreFailed": "İş elementi bərpa edilə bilmədi.", + "workItem.detail.sections": "İş elementi bölmələri", "workItem.detail.selectLabel": "Etiket seç", "workItem.detail.selectState": "Vəziyyət seçin", + "workItem.detail.subItemsTableCaption": "Bu iş elementinin alt iş elementləri: status, prioritet və bitmə tarixi ilə.", "workItem.detail.subWorkItems": "Alt iş elementləri", + "workItem.detail.subWorkItemsProgress": "Alt iş gedişatı", + "workItem.detail.subscribe": "Abunə ol", + "workItem.detail.subscribed": "Abunəsiniz", + "workItem.detail.toolbar": "İş elementi idarəetmələri", "workItem.detail.updateCommentFailed": "Şərhi yeniləmək alınmadı.", "workItem.detail.updateCycleFailed": "Tsikli yeniləmək alınmadı.", "workItem.detail.updateFailed": "İş elementi yenilənə bilmədi.", @@ -2066,8 +2468,8 @@ "workItem.pr.countOpen_other": "{{count}} açıq", "workItem.pr.empty": "Hələ pull request yoxdur. PR bu məsələyə istinad etdikdə (məs.<0>Fixes DEV-42) onlar avtomatik görünür, və ya yuxarıda URL yapışdıra bilərsiniz.", "workItem.pr.link": "Əlaqələndir", - "workItem.pr.linking": "Bağlanır…", "workItem.pr.linkPr": "Pull request bağla", + "workItem.pr.linking": "Bağlanır…", "workItem.pr.loading": "PR-lar yüklənir…", "workItem.pr.manual": "əl ilə", "workItem.pr.prCount_one": "{{count}} pull request", @@ -2081,14 +2483,14 @@ "workItem.pr.urlLabel": "Pull request URL-i", "workItem.pr.urlPlaceholder": "https://github.com/owner/repo/pull/123", "workItem.reactWith": "{{emoji}} ilə reaksiya ver", - "workItem.relations.add": "Əlaqə əlavə et", - "workItem.relations.empty": "Hələ əlaqə yoxdur.", - "workItem.relations.searchPlaceholder": "Məsələləri axtar…", - "workItem.relations.title": "Əlaqələr", "workItem.relationType.blocked_by": "Tərəfindən bloklanıb", "workItem.relationType.blocking": "Bloklayır", "workItem.relationType.duplicate": "Dublikat", "workItem.relationType.relates_to": "Əlaqəlidir", + "workItem.relations.add": "Əlaqə əlavə et", + "workItem.relations.empty": "Hələ əlaqə yoxdur.", + "workItem.relations.searchPlaceholder": "Məsələləri axtar…", + "workItem.relations.title": "Əlaqələr", "workItem.searchWorkItems": "İş elementlərini axtar", "workItem.selectAll": "Hamısını seç", "workItem.selectedCount_one": "{{count}} iş elementi seçildi", diff --git a/apps/web/src/i18n/locales/en/translation.json b/apps/web/src/i18n/locales/en/translation.json index 2f089869..911768bf 100644 --- a/apps/web/src/i18n/locales/en/translation.json +++ b/apps/web/src/i18n/locales/en/translation.json @@ -1,4 +1,30 @@ { + "activity.added": "Added {{field}}: {{value}}", + "activity.addedBare": "Added {{field}}", + "activity.created": "Created work item", + "activity.deleted": "Deleted work item", + "activity.field.assignees": "assignee", + "activity.field.attachment": "attachment", + "activity.field.comment": "comment", + "activity.field.description": "description", + "activity.field.estimate_point": "estimate", + "activity.field.is_epic": "epic", + "activity.field.labels": "label", + "activity.field.link": "link", + "activity.field.name": "name", + "activity.field.parent": "parent", + "activity.field.priority": "priority", + "activity.field.project_id": "project", + "activity.field.relation": "relation", + "activity.field.start_date": "start date", + "activity.field.state": "state", + "activity.field.target_date": "due date", + "activity.removed": "Removed {{field}}: {{value}}", + "activity.removedBare": "Removed {{field}}", + "activity.updated": "Updated {{field}}", + "activity.updatedFrom": "Updated {{field}} from {{old}}", + "activity.updatedFromTo": "Updated {{field}} from {{old}} to {{new}}", + "activity.updatedTo": "Updated {{field}} to {{new}}", "analytics.activeProjects": "Active Projects", "analytics.addProperty": "Add Property", "analytics.allProjects": "All Projects", @@ -6,14 +32,22 @@ "analytics.axisNoOfWorkItem": "NO. OF WORK ITEM", "analytics.axisNoOfWorkItems": "NO. OF WORK ITEMS", "analytics.axisPriority": "PRIORITY", + "analytics.axisWorkItemCount": "NO. OF WORK ITEM", + "analytics.axisWorkItemsCount": "NO. OF WORK ITEMS", "analytics.backlogWorkItems": "Backlog Work items", + "analytics.byPriority": "By priority", + "analytics.byPriorityHint": "Open work items grouped by priority.", + "analytics.byState": "By state", + "analytics.byStateHint": "Open work items grouped by state.", "analytics.colBacklog": "Backlog", "analytics.colCancelled": "Cancelled", "analytics.colCompleted": "Completed", "analytics.colProject": "Project", "analytics.colStarted": "Started", "analytics.colUnstarted": "Unstarted", + "analytics.completedOfTotal": "{{completed}} of {{total}} done", "analytics.completedWorkItems": "Completed Work items", + "analytics.completion": "Completion", "analytics.count": "Count", "analytics.created": "Created", "analytics.createdVsResolved": "Created vs Resolved", @@ -26,43 +60,112 @@ "analytics.dimensionViews": "Views", "analytics.dimensionWorkItems": "Work Items", "analytics.documentTitle": "Analytics", + "analytics.done": "Done", + "analytics.export": "Export", "analytics.exportAsCsv": "Export as csv", + "analytics.exportCsv": "CSV", + "analytics.exportFailed": "Export failed. Please try again.", + "analytics.exporting": "Exporting…", + "analytics.exportProjectCsv": "Export Project CSV", + "analytics.exports": "Exports", + "analytics.exportsHint": "Download the underlying rows as CSV.", + "analytics.exportWorkspace": "Export workspace", "analytics.filterWorkItem": "Work item", + "analytics.loadError": "Could not load analytics data.", + "analytics.loadErrorDescription": "Check your connection and try again. Your workspace data has not been changed.", + "analytics.loadFailed": "Could not load analytics. Please try again.", + "analytics.loadingOverview": "Loading analytics overview", "analytics.metrics": "Metrics", + "analytics.noWorkItems": "No work items yet.", "analytics.overview": "Overview", + "analytics.overviewDescription": "Monitor workspace activity, delivery, and team progress at a glance.", + "analytics.overviewSummary": "Projects {{projects}} · Work items {{workItems}} · Members {{members}}", + "analytics.partial": "Some analytics could not be computed and are shown as zero.", + "analytics.prioritiesCount_one": "{{count}} Priorities", + "analytics.prioritiesCount_other": "{{count}} Priorities", "analytics.priority": "Priority", "analytics.prioritySuffixPlural": "ies", + "analytics.project": "Project", + "analytics.projectBreakdown": "Project breakdown", + "analytics.projectBreakdownDescription": "Work item counts per project, alongside how much is finished.", + "analytics.projectCompletion": "{{project}} completion: {{percent}}%", "analytics.projectInsights": "Project Insights", + "analytics.projectProgress": "Project progress", + "analytics.projectProgressDescription": "Share of each project’s work items that are done. Cancelled items are excluded.", "analytics.projectsCount_one": "{{count}} Projects", "analytics.projectsCount_other": "{{count}} Projects", "analytics.resolved": "Resolved", + "analytics.share": "Share", "analytics.startedWorkItems": "Started Work items", + "analytics.state": "State", + "analytics.stateBacklog": "Backlog", + "analytics.stateCancelled": "Cancelled", + "analytics.stateDone": "Done", + "analytics.stateInProgress": "In progress", + "analytics.stateTodo": "Todo", "analytics.summaryOfProjects": "Summary of Projects", "analytics.totalAdmins": "Total Admins", "analytics.totalCycles": "Total Cycles", "analytics.totalGuests": "Total Guests", "analytics.totalIntake": "Total Intake", "analytics.totalMembers": "Total Members", + "analytics.totalModules": "Modules", + "analytics.totalPages": "Pages", "analytics.totalProjects": "Total Projects", "analytics.totalUsers": "Total Users", "analytics.totalWorkItems": "Total Work items", + "analytics.trend": "Created vs resolved", + "analytics.trendHint": "Work items opened and closed over time.", "analytics.trendOnCharts": "Trend on charts", + "analytics.unclassifiedWorkItems_one": "{{count}} work items have no state and are not plotted.", + "analytics.unclassifiedWorkItems_other": "{{count}} work items have no state and are not plotted.", "analytics.unstartedWorkItems": "Unstarted Work items", + "analytics.viewAllProjects_one": "All {{count}} projects", + "analytics.viewAllProjects_other": "All {{count}} projects", "analytics.workItems": "Work items", + "analytics.workItemsByState": "Work items by state", + "analytics.workItemsByStateDescription": "Every work item in the workspace, by where it sits in its lifecycle.", "analytics.workItemsChartTitle": "Work Items", + "appShellV2.documentTitle": "App shell (v2)", + "archives.activeFilters": "Active filters", + "archives.archived": "Archived", "archives.archivedOn": "Archived {{date}}", "archives.archivedProjects": "Archived projects", "archives.documentTitle": "Archives", "archives.empty": "No archived work items", "archives.emptyHint": "Archive a work item from its menu and it will show up here.", "archives.loadError": "Could not load archived work items.", + "archives.loadErrorDescription": "Check your connection and try again. Your archived data has not been changed.", + "archives.loadErrorTitle": "Archives could not be loaded", "archives.loading": "Loading archives…", "archives.loadMoreError": "Could not load more archived work items.", + "archives.noArchivedProjects": "No archived projects", + "archives.noArchivedProjectsHint": "Archived projects will appear here until they are restored.", + "archives.noMatches": "No archives match the current search or filters.", + "archives.noMatchesTitle": "No archives found", + "archives.noMatchesYet": "No loaded archives match this view. Load more to continue searching.", + "archives.noMatchesYetTitle": "No matches yet", + "archives.pageDescription": "Review and restore archived work items and projects across your workspace.", + "archives.projectsTableCaption": "Archived projects, archive dates, and restore actions", + "archives.projectsTableLabel": "Archived projects table", "archives.restoreItemError": "Could not restore that work item.", + "archives.restoreProject": "Restore {{project}}", "archives.restoreProjectError": "Could not restore that project.", + "archives.restoreWorkItem": "Restore {{item}}", "archives.restoring": "Restoring…", + "archives.scope": "Archive type", + "archives.searchPlaceholder": "Search archives", "archives.subtitle": "Archived work items across this workspace. Restore one to bring it back to its project.", + "archives.summary": "Work items {{workItems}} · Projects {{projects}}", "archives.title": "Archives", + "archives.toolbar": "Archive controls", + "archives.visibleProjectCount_one": "{{count}} archived project visible", + "archives.visibleProjectCount_other": "{{count}} archived projects visible", + "archives.visibleWorkItemCount_one": "{{count}} archived work item visible", + "archives.visibleWorkItemCount_other": "{{count}} archived work items visible", + "archives.workItemsTableCaption": "Archived work items, their projects, archive dates, and restore actions", + "archives.workItemsTableLabel": "Archived work items table", + "auth.copyright": "© {{year}} Devlane. All rights reserved.", "auth.forgotPassword.backToSignIn": "Back to sign in", "auth.forgotPassword.documentTitle": "Forgot password", "auth.forgotPassword.resendIn_one": "Resend in {{count}}s", @@ -73,6 +176,9 @@ "auth.forgotPassword.subtitle": "Enter your email and we'll send you a link to reset your password.", "auth.forgotPassword.successMessage": "If {{email}} is registered, you'll receive a reset link shortly. Check your inbox and spam folder.", "auth.forgotPassword.title": "Reset your password", + "auth.hero.description": "Issue tracking and project management for development teams. Organise work into projects, cycles, and modules, and keep everyone on the same page.", + "auth.hero.title1": "Plan the work.", + "auth.hero.title2": "Ship the product.", "auth.inviteAccept.accept": "Accept", "auth.inviteAccept.clearEmail": "Clear email", "auth.inviteAccept.declineFailed": "Failed to decline. Please try again.", @@ -104,14 +210,21 @@ "auth.login.continueWithGitlab": "Continue with GitLab", "auth.login.continueWithGoogle": "Continue with Google", "auth.login.documentTitle": "Sign in", + "auth.login.emailLabel": "Email", + "auth.login.emailPlaceholder": "name@company.com", "auth.login.forgotPassword": "Forgot your password?", + "auth.login.heroDescription": "Issue tracking and project management for development teams. Organise work into projects, cycles, and modules, and keep everyone on the same page.", + "auth.login.heroTitle1": "Plan the work.", + "auth.login.heroTitle2": "Ship the product.", "auth.login.invalidCode": "Invalid or expired code.", "auth.login.magicHint": "After you continue, you can use your password or choose a one-time email code instead.", "auth.login.noAccount": "Don't have an account? ", + "auth.login.passwordLabel": "Password", "auth.login.passwordPlaceholder": "Enter password", "auth.login.resendCode": "Resend code", "auth.login.resetSmtpHint": "To reset your password, ask your administrator to configure SMTP.", "auth.login.sendCodeError": "Could not send sign-in code.", + "auth.login.signIn": "Sign in", "auth.login.signingIn": "Signing in…", "auth.login.subtitleCode": "We sent a 6-digit code to your inbox. It expires in 10 minutes.", "auth.login.subtitleEmail": "Enter your email to continue.", @@ -162,6 +275,10 @@ "auth.signUp.disabledBody": "Public sign-up is currently disabled. Please contact your administrator.", "auth.signUp.disabledTitle": "Sign up is disabled", "auth.signUp.documentTitle": "Sign up", + "auth.signUp.haveAccount": "Already have an account? ", + "auth.signUp.heroDescription": "Issue tracking and project management for development teams. Organise work into projects, cycles, and modules, and keep everyone on the same page.", + "auth.signUp.heroTitle1": "Plan the work.", + "auth.signUp.heroTitle2": "Ship the product.", "auth.signUp.invalidCode": "Invalid or expired code.", "auth.signUp.inviteOnly": "Sign-up is by invite only.", "auth.signUp.passwordPlaceholder": "Enter password", @@ -178,6 +295,10 @@ "auth.signUp.useMagicCode": "Sign up with email code instead", "auth.signUp.usePassword": "Use password instead", "auth.termsNotice": "By {{action}}, you agree to our terms of service and privacy policy.", + "calendar.nextMonth": "Next month", + "calendar.previousMonth": "Previous month", + "calendar.showWeekends": "Show weekends", + "calendar.undated": "No due date", "commandPalette.accountSettings": "Account settings", "commandPalette.accountSettings.match": "profile preferences notifications", "commandPalette.actions": "Actions", @@ -232,6 +353,7 @@ "commandPalette.viewsAll": "Open workspace views", "commandPalette.viewsAll.match": "views all issues", "commandPalette.workspaceLevel": "Workspace level", + "common.access": "Access", "common.actions": "Actions", "common.add": "Add", "common.adding": "Adding…", @@ -241,8 +363,10 @@ "common.after": "After", "common.all": "All", "common.analytics": "Analytics", + "common.anyTime": "Any time", "common.apply": "Apply", "common.archive": "Archive", + "common.archived": "Archived", "common.ascending": "Ascending", "common.assignees": "Assignees", "common.back": "Back", @@ -252,7 +376,10 @@ "common.change": "Change", "common.checking": "Checking…", "common.clear": "Clear", + "common.clearAll": "Clear all", + "common.clearFilters": "Clear filters", "common.clearSearch": "Clear search", + "common.clearSelection": "Clear selection", "common.close": "Close", "common.collapseSidebar": "Collapse sidebar", "common.color": "Color", @@ -262,7 +389,9 @@ "common.confirm": "Confirm", "common.confirmPassword": "Confirm password", "common.continue": "Continue", + "common.copy": "Copy", "common.copyLink": "Copy link", + "common.copyLinkError": "Could not copy that link.", "common.create": "Create", "common.createAccount": "Create account", "common.created": "Created", @@ -275,6 +404,7 @@ "common.custom": "Custom", "common.customRange": "Custom range", "common.cycle": "Cycle", + "common.cycles": "Cycles", "common.datePreset.oneMonthAgo": "1 month ago", "common.datePreset.oneMonthFromNow": "1 month from now", "common.datePreset.oneWeekAgo": "1 week ago", @@ -288,15 +418,20 @@ "common.descending": "Descending", "common.description": "Description", "common.discard": "Discard", + "common.display": "Display", "common.done": "Done", "common.due": "Due", "common.dueDate": "Due date", "common.dueDateRange": "Due date range", + "common.duplicate": "Duplicate", "common.edit": "Edit", "common.email": "Email", "common.emailPlaceholder": "you@example.com", + "common.epics": "Epics", "common.expandSidebar": "Expand sidebar", + "common.favorite": "Favorite", "common.favorites": "Favorites", + "common.filters": "Filters", "common.firstName": "First name", "common.genericError": "Something went wrong. Please try again.", "common.goBack": "Go back", @@ -306,6 +441,7 @@ "common.help": "Help", "common.hideConfirmPassword": "Hide confirm password", "common.hidePassword": "Hide password", + "common.intake": "Intake", "common.join": "Join", "common.justNow": "just now", "common.labels": "Labels", @@ -322,6 +458,7 @@ "common.layout.timeline": "Timeline", "common.layout.timelineComingSoon": "Timeline (coming soon)", "common.lead": "Lead", + "common.linkCopied": "Link copied", "common.loading": "Loading…", "common.loadMore": "Load more", "common.logOut": "Log out", @@ -330,19 +467,25 @@ "common.members": "Members", "common.module": "Module", "common.modules": "Modules", + "common.more": "More", "common.moreCount_one": "{{count}} more", "common.moreCount_other": "{{count}} more", "common.moreOptions": "More options", "common.move": "Move", "common.name": "Name", + "common.new": "New", "common.noMatchesFound": "No matches found", "common.none": "None", "common.noPriority": "No priority", + "common.noResults": "No results", "common.noState": "No state", "common.noWorkItems": "No work items", + "common.open": "Open", "common.openInNewTab": "Open in new tab", "common.optional": "Optional", "common.or": "or", + "common.overview": "Overview", + "common.pages": "Pages", "common.password": "Password", "common.passwordsDoNotMatchInline": "Passwords do not match", "common.passwordsMatch": "Passwords match", @@ -356,13 +499,16 @@ "common.project": "Project", "common.projectLead": "Project Lead", "common.projectNotFound": "Project not found.", + "common.projects": "Projects", "common.public": "Public", "common.refresh": "Refresh", "common.remove": "Remove", + "common.removeFilter": "Remove {{filter}} filter", "common.removeFromFavorites": "Remove from favorites", "common.required": "Required", "common.reset": "Reset", "common.restore": "Restore", + "common.retry": "Try again", "common.save": "Save", "common.saveChanges": "Save changes", "common.saving": "Saving…", @@ -383,7 +529,9 @@ "common.startDate": "Start date", "common.startDateRange": "Start date range", "common.state": "State", + "common.status": "Status", "common.subWorkItems": "Sub-work items", + "common.thisProject": "this project", "common.time.daysAgo_one": "{{count}} day ago", "common.time.daysAgo_other": "{{count}} day ago", "common.time.hoursAgo_one": "{{count}} hour ago", @@ -394,10 +542,13 @@ "common.title": "Title", "common.titleRequired": "Title is required.", "common.today": "Today", + "common.total": "Total", "common.unarchive": "Unarchive", "common.unassigned": "Unassigned", + "common.undo": "Undo", "common.unknown": "Unknown", "common.untitled": "Untitled", + "common.updated": "Updated", "common.updatedAt": "Updated at", "common.updating": "Updating…", "common.user": "User", @@ -407,6 +558,7 @@ "common.viewLess": "View less", "common.views": "Views", "common.workItem": "Work item", + "common.workItems": "Work items", "common.workspaceNotFound": "Workspace not found.", "common.you": "You", "common.zoomIn": "Zoom in", @@ -427,6 +579,11 @@ "cycle.layoutList": "List", "cycle.layoutSpreadsheet": "Spreadsheet", "cycle.layoutTimeline": "Timeline", + "cycle.legendBacklog": "Backlog", + "cycle.legendCancelled": "Cancelled", + "cycle.legendCompleted": "Completed", + "cycle.legendStarted": "Started", + "cycle.legendUnstarted": "Unstarted", "cycle.loading": "Loading cycle…", "cycle.notFound": "Cycle not found.", "cycle.noWorkItems": "No work items in this cycle.", @@ -451,6 +608,7 @@ "cycle.workItems": "Work items", "cycle.workItemsCount_one": "{{count}} work items", "cycle.workItemsCount_other": "{{count}} work items", + "cycles.active": "Active", "cycles.activeCycle": "Active cycle", "cycles.activeCycles": "Active cycles", "cycles.alsoInProgress": "Also in progress:", @@ -459,18 +617,35 @@ "cycles.burndown.pending_one": "Pending work items - {{count}}", "cycles.burndown.pending_other": "Pending work items - {{count}}", "cycles.burndown.title": "Work item burndown", + "cycles.completed": "Completed", "cycles.completedCycle_one": "Completed cycle {{count}}", "cycles.completedCycle_other": "Completed cycle {{count}}", + "cycles.confirmDeleteDescription": "The cycle is removed. Its work items stay in the project.", + "cycles.confirmDeleteTitle": "Delete {{cycle}}?", "cycles.cycleFallbackName": "Cycle", + "cycles.cycleMenu": "{{cycle}} actions", "cycles.deleteCannotUndo": "This cannot be undone.", "cycles.deleteConfirmTitle": "Delete \"{{name}}\"?", + "cycles.deleteError": "Could not delete that cycle.", + "cycles.deleteSuccess": "Cycle deleted", "cycles.documentTitle": "Cycles", + "cycles.draft": "Draft", + "cycles.empty": "No cycles yet", + "cycles.emptyDescription": "Cycles group work into time-boxed windows so a team can see what ships when.", + "cycles.loadError": "Could not load cycles.", + "cycles.loading": "Loading cycles…", "cycles.moreDetails": "More details", + "cycles.noActive": "No cycle is running right now.", "cycles.noCompleted": "No completed cycles.", "cycles.noDates": "No dates", + "cycles.noLabel": "No label", "cycles.noLabels": "No labels", + "cycles.noMatches": "No cycles match the current search and filters.", + "cycles.noOwner": "No lead", "cycles.noUpcoming": "No upcoming cycles.", "cycles.onlyCompletedArchivable": "Only completed cycles can be archived.", + "cycles.pageDescription": "Time-boxed delivery windows for {{project}}.", + "cycles.percentClosed": "{{percent}}% closed", "cycles.percentOf": "{{percent}}% of {{total}}", "cycles.progress.backlog_one": "Backlog {{count}} Work item{{plural}}", "cycles.progress.backlog_other": "Backlog {{count}} Work item{{plural}}", @@ -481,16 +656,24 @@ "cycles.progress.started_other": "Started {{count}} Work item{{plural}}", "cycles.progress.title": "Progress", "cycles.progress.workItemClosed": "{{completed}}/{{total}} Work item closed", + "cycles.searchPlaceholder": "Search cycles", + "cycles.summary": "{{visible}} of {{total}} cycles", "cycles.tabs.assignees": "Assignees", "cycles.tabs.assigneesEmpty": "No assignees in this cycle.", "cycles.tabs.labels": "Labels", "cycles.tabs.labelsEmpty": "No labels in this cycle.", "cycles.tabs.priority": "Priority work items", "cycles.tabs.priorityEmpty": "Add work items to view priority breakdown.", + "cycles.toolbar": "Cycle controls", "cycles.unassigned": "Unassigned", "cycles.unknownLabel": "Unknown", + "cycles.upcoming": "Upcoming", "cycles.upcomingCycle_one": "Upcoming cycle {{count}}", "cycles.upcomingCycle_other": "Upcoming cycle {{count}}", + "cycles.updateSuccess": "Cycle updated", + "cycles.workItemCount_one": "{{count}} work item", + "cycles.workItemCount_other": "{{count}} work items", + "display.display": "Display", "display.displayProperties": "Display Properties", "display.groupAssignees": "Assignees", "display.groupBy": "Group by", @@ -524,6 +707,7 @@ "display.showEmptyGroups": "Show empty groups", "display.showSubWorkItems": "Show sub-work items", "display.subGroupBy": "Sub-group by", + "drafts.activeFilters": "Active filters", "drafts.backlog": "Backlog", "drafts.copySuffix": "{{name}} (copy)", "drafts.createLabelNamed": "Create label \"{{name}}\"", @@ -539,31 +723,47 @@ "drafts.failedToCreateLabel": "Failed to create label.", "drafts.labelsTitle": "Labels {{label}}", "drafts.loadError": "Could not load drafts.", + "drafts.loadErrorDescription": "Check your connection and try again. Your draft data has not been changed.", "drafts.loadingDrafts": "Loading drafts…", + "drafts.loadingPage": "Loading drafts page", "drafts.loadWorkspaceError": "Could not load workspace.", + "drafts.loadWorkspaceErrorDescription": "Check your connection and try again. Your draft data has not been changed.", "drafts.makeCopy": "Make a copy", "drafts.moduleCount_one": "{{count}} Modules", "drafts.moduleCount_other": "{{count}} Modules", "drafts.moveToIssues": "Move to issues", "drafts.noCycle": "No cycle", + "drafts.noMatches": "No drafts match the current search or filters.", + "drafts.noMatchesTitle": "No drafts found", "drafts.noModule": "No module", "drafts.noProjects": "No projects yet", "drafts.noProjectsHint": "Create a project in this workspace before you can add draft work items.", "drafts.noStates": "No states", "drafts.oneModule": "1 Module", "drafts.openDraft": "Open draft {{name}}", + "drafts.pageDescription": "Capture and refine work before publishing it to your projects.", "drafts.pressEnterToCreateLabel": "Press Enter to create label", "drafts.priority": "Priority", "drafts.priorityTitle": "Priority {{priority}}", "drafts.publishError": "Could not publish draft.", + "drafts.rowActions": "Draft actions", + "drafts.saveDraft": "Save draft", "drafts.saveFailed": "Failed to save draft.", + "drafts.searchPlaceholder": "Search drafts", "drafts.startDate": "Start date", "drafts.startDateTitle": "Start date {{date}}", + "drafts.summary": "{{drafts}} shown · {{projects}} projects", + "drafts.tableCaption": "Workspace draft work items and their editable planning properties", + "drafts.tableLabel": "Draft work items table", + "drafts.toolbar": "Draft controls", "drafts.typeToAddLabel": "Type to add a new label", "drafts.unassigned": "Unassigned", "drafts.updateCycleError": "Could not update cycle.", "drafts.updateError": "Could not update draft.", "drafts.updateModuleError": "Could not update module.", + "drafts.visibleCount": "{{count}} drafts visible", + "drafts.visibleCount_one": "{{count}} drafts visible", + "drafts.visibleCount_other": "{{count}} drafts visible", "drafts.workspaceNotFound": "Workspace not found.", "editor.background": "Background", "editor.clearBackground": "Clear background", @@ -605,12 +805,27 @@ "epics.createFailed": "Failed to create epic.", "epics.documentTitle": "Epics", "epics.empty": "No epics yet. Create one to group related work.", + "epics.emptyDescription": "Epics group related work items so a long-running effort can be tracked as one thing.", + "epics.emptyTitle": "No epics yet", + "epics.loadErrorDescription": "Check your connection and try again. Your epics have not been changed.", + "epics.loadErrorTitle": "Epics could not be loaded", "epics.loading": "Loading epics…", "epics.namePlaceholder": "Epic name", "epics.newEpic": "New epic", + "epics.noMatches": "No epics match the current search.", + "epics.noMatchesTitle": "No epics found", "epics.noPriority": "no priority", "epics.open": "Open", + "epics.pageDescription": "Long-running efforts grouping work in {{project}}.", + "epics.searchPlaceholder": "Search epics", + "epics.summary": "{{visible}} of {{total}} epics", + "epics.tableCaption": "Epics in this project, with state, priority, progress and due date.", + "epics.tableLabel": "Epics table", "epics.title": "Epics", + "epics.toolbar": "Epic controls", + "epics.visibleCount": "{{count}} epics visible", + "epics.visibleCount_one": "{{count}} epics visible", + "epics.visibleCount_other": "{{count}} epics visible", "filters.activeWorkItems": "Active Work items", "filters.allWorkItems": "All Work items", "filters.assignee": "Assignee", @@ -618,6 +833,10 @@ "filters.createdBy": "Created by", "filters.custom": "Custom", "filters.cycle": "Cycle", + "filters.datePreset1Month": "1 month from now", + "filters.datePreset1Week": "1 week from now", + "filters.datePreset2Months": "2 months from now", + "filters.datePreset2Weeks": "2 weeks from now", "filters.dueDate": "Due date", "filters.dueDateRange": "Due date range", "filters.dueOverdue": "Overdue", @@ -636,6 +855,13 @@ "filters.state": "State", "filters.status": "Status", "filters.workItemGrouping": "Work item Grouping", + "gantt.dragEnd": "Change due date", + "gantt.dragStart": "Change start date", + "gantt.scheduledCount_one": "{{count}} scheduled work items", + "gantt.scheduledCount_other": "{{count}} scheduled work items", + "gantt.unscheduled": "Missing a start or due date", + "gantt.zoomIn": "Zoom in", + "gantt.zoomOut": "Zoom out", "header.allProjects": "All projects", "header.analytics": "Analytics", "header.cycles.addCycle": "Add cycle", @@ -708,11 +934,17 @@ "header.views.default.subscribed": "Subscribed", "header.views.searchViews": "Search views", "header.yourWork": "Your work", + "home.addQuicklink": "Add quicklink", + "home.addSticky": "Add sticky", "home.documentTitle": "Home", "home.greeting.afternoon": "Good afternoon", "home.greeting.evening": "Good evening", "home.greeting.morning": "Good morning", + "home.loadError": "Could not load your workspace home.", "home.manageWidgets.title": "Manage widgets", + "home.noQuicklinks": "No quicklinks yet.", + "home.noRecents": "Nothing visited yet.", + "home.noStickies": "No sticky notes yet.", "home.quicklink.addTitle": "Add Quicklink", "home.quicklink.copyLink": "Copy link", "home.quicklink.deleteConfirm": "Delete this quicklink?", @@ -723,15 +955,23 @@ "home.quicklink.titlePlaceholder": "What you'd like to see this link as", "home.quicklink.urlLabel": "URL", "home.quicklink.urlPlaceholder": "Type or paste a URL", + "home.quicklinkFailed": "Could not add the quicklink.", + "home.quicklinks": "Quicklinks", "home.quicklinks.add": "Add quick Link", "home.quicklinks.empty": "No quicklinks yet. Add one to jump back to a project.", "home.quicklinks.title": "Quicklinks", + "home.quicklinksHint": "Links you want one click away.", + "home.quicklinkTitle": "Title (optional)", + "home.quicklinkUrl": "URL", + "home.recents": "Recents", "home.recents.empty": "No recent activity.", "home.recents.filterAriaLabel": "Filter recents", "home.recents.title": "Recents", "home.recentsFilter.pages": "Pages", "home.recentsFilter.projects": "Projects", "home.recentsFilter.workItems": "Work Items", + "home.recentsHint": "Where you left off.", + "home.stickies": "Your stickies", "home.stickies.add": "Add sticky", "home.stickies.addTitle": "Add sticky", "home.stickies.clearSearch": "Clear search", @@ -743,6 +983,10 @@ "home.stickies.searchButtonAriaLabel": "Search stickies", "home.stickies.searchPlaceholder": "Search by title or content", "home.stickies.title": "Your stickies", + "home.stickiesHint": "Short notes that live with your workspace.", + "home.stickyFailed": "Could not add the sticky note.", + "home.stickyPlaceholder": "Write a note…", + "home.untitled": "Untitled", "image.browse": "Browse", "image.coverTitle": "Select cover image", "image.dragDrop": "Drag & drop image here", @@ -943,6 +1187,8 @@ "instanceAdmin.integrations.documentTitle": "Integrations", "instanceAdmin.integrations.github.desc": "Two-way sync between GitHub pull requests and Devlane issues, plus PR ↔ issue auto-linking via branch names and commit messages.", "instanceAdmin.integrations.notConfigured": "Not configured", + "instanceAdmin.integrations.providers": "Available integrations", + "instanceAdmin.integrations.slack.desc": "Push issue events directly to Slack channels. Get notified when issues are created, move across states, or receive comments.", "instanceAdmin.integrations.sourceControl": "Source control", "instanceAdmin.integrations.subtitle": "Configure third-party app credentials. Once an integration is configured here, workspace admins can connect it from their workspace settings.", "instanceAdmin.integrations.title": "Integrations available on this instance", @@ -966,12 +1212,15 @@ "instanceAdmin.workspaces.preventTitle": "Prevent anyone else from creating a workspace.", "instanceAdmin.workspaces.subtitle": "See all workspaces and control who can create them.", "instanceAdmin.workspaces.title": "Workspaces on this instance", + "intake.accept": "Accept", + "intake.accepted": "Accepted", "intake.action.accept": "Accept", "intake.action.decline": "Decline", "intake.action.duplicateOfPlaceholder": "Duplicate of…", "intake.action.markDuplicate": "Mark duplicate", "intake.action.snooze": "Snooze", "intake.action.snoozePlaceholder": "Snooze…", + "intake.actionError": "Could not update that intake item.", "intake.actionFailed": "That action could not be completed. Please try again.", "intake.activeIssues": "Active issues", "intake.column.actions": "Actions", @@ -981,22 +1230,47 @@ "intake.column.snoozedUntil": "Snoozed until", "intake.column.source": "Source", "intake.column.workItem": "Work item", + "intake.decline": "Decline", + "intake.declined": "Declined", "intake.documentTitle": "Intake", "intake.empty": "Nothing here. This triage queue is empty.", + "intake.emptyDescription": "Requests raised from outside the project land here to be accepted, snoozed or declined.", + "intake.emptyTitle": "Nothing to triage", + "intake.loadErrorDescription": "Check your connection and try again. Nothing in the queue has been changed.", + "intake.loadErrorTitle": "Intake could not be loaded", "intake.loading": "Loading intake…", + "intake.noMatches": "No intake items match the current search.", + "intake.noMatchesTitle": "No requests found", + "intake.pageDescription": "Triage requests coming into {{project}}.", + "intake.pending": "Pending", + "intake.request": "Request", + "intake.scope": "Triage status", + "intake.searchPlaceholder": "Search requests", + "intake.snooze": "Snooze", "intake.snooze.days_one": "{{count}} days", "intake.snooze.days_other": "{{count}} days", "intake.snooze.oneDay": "1 day", "intake.snooze.oneWeek": "1 week", "intake.snooze.threeDays": "3 days", + "intake.snoozed": "Snoozed", + "intake.source": "Source", "intake.source.inApp": "In-app", "intake.subtitle": "Triage incoming work: accept it into the project, decline, snooze, or mark a duplicate.", + "intake.summary": "{{pending}} pending · {{visible}} in this queue", + "intake.tableCaption": "Incoming requests, with priority, source, creation date and triage actions.", + "intake.tableLabel": "Intake table", "intake.tabs.accepted": "Accepted", "intake.tabs.declined": "Declined", "intake.tabs.duplicate": "Duplicate", "intake.tabs.pending": "Pending", "intake.tabs.snoozed": "Snoozed", "intake.title": "Intake", + "intake.toolbar": "Intake controls", + "intake.untitled": "Untitled request", + "intake.visibleCount": "{{count}} requests visible", + "intake.visibleCount_one": "{{count}} requests visible", + "intake.visibleCount_other": "{{count}} requests visible", + "integrations.communications": "Communications", "integrations.configureSyncAria": "Configure GitHub sync for {{name}}", "integrations.description": "Connect Devlane with the tools your team already uses to keep work in sync.", "integrations.github.connect": "Connect", @@ -1023,6 +1297,31 @@ "integrations.repoSync.inProgressLabel": "“In progress” state — applied when a PR opens or is reopened", "integrations.repoSync.noneOnMerge": "— none (don't move on merge) —", "integrations.repoSync.noneOnOpen": "— none (don't move on open) —", + "integrations.settings": "Settings", + "integrations.slack.configureAria": "Configure Slack channel for {{name}}", + "integrations.slack.connect": "Connect", + "integrations.slack.connected": "Slack connected.", + "integrations.slack.description": "Push issue events directly to Slack channels. Get notified when issues are created, move across states, or receive comments.", + "integrations.slack.disconnect": "Disconnect", + "integrations.slack.disconnectConfirm": "Disconnect Slack from this workspace? Project channels will be unlinked.", + "integrations.slack.disconnected": "Slack disconnected.", + "integrations.slack.disconnecting": "Disconnecting…", + "integrations.slack.eventCommented": "New comments are added", + "integrations.slack.eventCreated": "New issues are created", + "integrations.slack.eventState": "Issue states change (e.g. In Progress → Done)", + "integrations.slack.feature.events": "Customize which events trigger a message", + "integrations.slack.feature.notify": "Route notifications to project-specific channels", + "integrations.slack.linkChannel": "Link channel", + "integrations.slack.linkedChannel": "Linked Channel: #{{name}}", + "integrations.slack.linkedChannels": "Linked channels", + "integrations.slack.modalTitle": "Slack notifications for {{name}}", + "integrations.slack.name": "Slack", + "integrations.slack.noChannelLinked": "No channel linked.", + "integrations.slack.noChannels": "No public channels found. Ensure the bot is invited to your Slack workspace.", + "integrations.slack.notifyOn": "Notify channel when:", + "integrations.slack.selectChannel": "Select channel", + "integrations.slack.selectChannelRequired": "Please select a channel.", + "integrations.slack.unlinkConfirm": "Unlink Slack channel from this project?", "integrations.sourceControl": "Source control", "integrations.status.available": "Available", "integrations.status.connected": "Connected", @@ -1030,6 +1329,56 @@ "integrations.syncSettings": "Sync settings", "integrations.title": "Integrations", "integrations.unlink": "Unlink", + "issues.archiveError": "Could not archive those work items.", + "issues.archiveSuccess_one": "{{count}} work items archived", + "issues.archiveSuccess_other": "{{count}} work items archived", + "issues.bulkActions": "Bulk actions", + "issues.confirmArchiveDescription": "Archived work items leave this list and stay available under Archives.", + "issues.confirmArchiveTitle_one": "Archive {{count}} work items?", + "issues.confirmArchiveTitle_other": "Archive {{count}} work items?", + "issues.confirmDeleteDescription": "Deleted work items cannot be restored. Their comments, attachments, and links go with them.", + "issues.confirmDeleteTitle_one": "Delete {{count}} work items?", + "issues.confirmDeleteTitle_other": "Delete {{count}} work items?", + "issues.create": "New work item", + "issues.deleteError": "Could not delete those work items.", + "issues.deleteSuccess_one": "{{count}} work items deleted", + "issues.deleteSuccess_other": "{{count}} work items deleted", + "issues.emptyDescription": "Work items turn ideas into clear, prioritized steps your team can deliver.", + "issues.emptyTitle": "Create your first work item", + "issues.itemMenu": "{{name}} actions", + "issues.layout": "Layout", + "issues.layoutBoard": "Board", + "issues.layoutCalendar": "Calendar", + "issues.layoutGantt": "Timeline", + "issues.layoutList": "List", + "issues.layoutSpreadsheet": "Spreadsheet", + "issues.loadErrorDescription": "Check your connection and try again. Your work item data has not been changed.", + "issues.loadErrorTitle": "Work items could not be loaded", + "issues.loading": "Loading work items", + "issues.moveToState": "Move to state", + "issues.noMatchesOnPage": "No work items on this page match the current search and filters.", + "issues.noMatchesTitle": "No work items found", + "issues.openWorkItem": "Open work item", + "issues.pageDescription": "Plan, prioritize, and track work for {{project}}.", + "issues.pageSummary": "{{visible}} of {{loaded}} on page {{page}}", + "issues.searchLabels": "Search labels", + "issues.searchMembers": "Search members", + "issues.searchPlaceholder": "Search work items", + "issues.searchStates": "Search states", + "issues.selectAll": "Select all work items on this page", + "issues.selectedCount_one": "{{count}} selected", + "issues.selectedCount_other": "{{count}} selected", + "issues.selectGroup": "Select all in {{group}}", + "issues.selectItem": "Select {{name}}", + "issues.setPriority": "Set priority", + "issues.tableCaption": "Work items on this page, with state, priority, assignees, labels, due date, and last update.", + "issues.tableLabel": "Work items table", + "issues.targetDate": "Due", + "issues.toolbar": "Work item controls", + "issues.unassigned": "Unassigned", + "issues.undoError": "Could not undo that change.", + "issues.visibleCount_one": "{{count}} work items visible", + "issues.visibleCount_other": "{{count}} work items visible", "module.addedTime": "Added {{time}}", "module.addExistingWorkItem": "Add an existing work item", "module.addLink": "Add link", @@ -1086,14 +1435,33 @@ "modules.durationDays_other": "{{count}} days", "modules.editDates": "Edit module dates", "modules.empty": "No modules yet.", + "modules.emptyDescription": "Modules split a project into bodies of work that are planned and tracked on their own.", "modules.emptyFavorites": "No favorite modules. Star modules to add them here.", "modules.emptySearch": "No modules match your search.", + "modules.emptyTitle": "No modules yet", "modules.fullScreen": "Full screen", + "modules.loadErrorDescription": "Check your connection and try again. Your modules have not been changed.", + "modules.loadErrorTitle": "Modules could not be loaded", + "modules.loading": "Loading modules…", "modules.moduleCount_one": "{{count}} Module{{plural}}", "modules.moduleCount_other": "{{count}} Module{{plural}}", + "modules.noMatches": "No modules match the current search.", + "modules.noMatchesTitle": "No modules found", "modules.onlyCompletedArchivable": "Only completed or canceled module can be archived.", + "modules.pageDescription": "Bodies of work planned on their own in {{project}}.", + "modules.searchPlaceholder": "Search modules", + "modules.startDate": "Start", + "modules.summary": "{{visible}} of {{total}} modules", + "modules.tableCaption": "Modules in this project, with status, progress, start and target dates.", + "modules.tableLabel": "Modules table", + "modules.targetDate": "Target", "modules.today": "Today", + "modules.toolbar": "Module controls", + "modules.visibleCount": "{{count}} modules visible", + "modules.visibleCount_one": "{{count}} modules visible", + "modules.visibleCount_other": "{{count}} modules visible", "modules.week": "Week {{number}}", + "nav.account": "Account", "nav.analytics": "Analytics", "nav.archives": "Archives", "nav.deleteFolder": "Delete folder", @@ -1105,6 +1473,7 @@ "nav.newFavoritesFolder": "New favorites folder", "nav.newFolder": "New folder", "nav.newWorkItem": "New work item", + "nav.notifications": "Notifications", "nav.openCommandPalette": "Open command palette", "nav.projects": "Projects", "nav.removeFavorite": "Remove favorite", @@ -1114,24 +1483,35 @@ "nav.section.workspace": "Workspace", "nav.settings": "Settings", "nav.sidebar.ariaLabel": "Main sidebar", + "nav.signingOut": "Signing out…", "nav.signOut": "Sign out", + "nav.signOutFailed": "Signed out locally, but the server was not reached.", "nav.views": "Views", + "nav.workspace": "Workspace", "nav.workspaceInvites": "Workspace invites", "nav.workspaceMenu": "Workspace menu", "nav.yourWork": "Your work", + "notifications.actionError": "That action couldn't be completed. Please try again.", "notifications.actorFallback": "Someone", "notifications.assigned": "{{actor}} assigned you to {{issueRef}} — {{name}}", "notifications.commented": "{{actor}} commented on {{issueRef}} — {{name}}", + "notifications.detailDescription": "Notification details and actions.", "notifications.documentTitle": "Inbox", "notifications.empty.all": "Inbox zero. Notifications about issues you’re involved with will land here.", "notifications.empty.archived": "No archived notifications. Archive a row from the inbox to declutter without losing it.", "notifications.empty.mentions": "No mentions yet. When someone @-mentions you in an issue or comment, it shows here.", + "notifications.empty.unread": "You're all caught up. There are no unread notifications.", + "notifications.listLabel": "Notifications", + "notifications.loadError": "Could not load notifications.", "notifications.markAllRead": "Mark all read", "notifications.markRead": "Mark read", "notifications.markUnread": "Mark unread", "notifications.mentioned": "{{actor}} mentioned you in {{issueRef}} — {{name}}", "notifications.new": "New", + "notifications.noSearchResults": "No notifications match your search.", "notifications.openIssue": "Open issue", + "notifications.retry": "Try again", + "notifications.searchPlaceholder": "Search notifications…", "notifications.selectPrompt": "Select a notification to see details.", "notifications.snooze.custom": "Custom", "notifications.snooze.forOneHour": "For 1 hour", @@ -1144,6 +1524,12 @@ "notifications.stateChangedFrom": "from", "notifications.stateChangedTo": "to", "notifications.subscribed": "{{actor}} updated {{issueRef}}", + "notifications.subtitle": "Updates from work you're involved in, in one place.", + "notifications.tab.all": "All", + "notifications.tab.archived": "Archived", + "notifications.tab.mentions": "Mentions", + "notifications.tab.unread": "Unread", + "page.addSubpage": "Add sub-page", "page.addSubPage": "Add sub-page", "page.archive": "Archive", "page.archived": "Archived", @@ -1151,8 +1537,10 @@ "page.backToPages": "Back to Pages", "page.copied": "Copied!", "page.copyLink": "Copy link", + "page.deleteBody": "This permanently removes the page and its versions. This cannot be undone.", "page.deleteModalDescription": "This permanently removes the page and its history. This cannot be undone.", "page.deleteModalTitle": "Delete page?", + "page.deleteTitle": "Delete page", "page.editorPlaceholder": "Start writing… or press “/” for commands", "page.emptyVersion": "(empty)", "page.favorite": "Favorite", @@ -1170,6 +1558,7 @@ "page.movePageModalTitle": "Move page to project", "page.moveToProject": "Move to project", "page.noOtherProjects": "No other projects available.", + "page.noSubpages": "No sub-pages yet.", "page.noSubPages": "No sub-pages.", "page.notFound": "Page not found.", "page.noVersions": "No versions yet.", @@ -1186,18 +1575,25 @@ "page.restore": "Restore", "page.restoreFailed": "Restore failed", "page.restoreThisVersion": "Restore this version", + "page.saved": "Saved", "page.savedAt": "Saved · {{time}}", "page.saveFailed": "Save failed", "page.saving": "Saving…", "page.showSidePanel": "Show side panel", + "page.subpages": "Sub-pages", "page.subPages": "Sub-pages", "page.title": "Page", + "page.titleLabel": "Page title", "page.unfavorite": "Unfavorite", "page.unlockPage": "Unlock page", "page.untitled": "Untitled", "page.untitledSubpage": "Untitled sub-page", "page.versionPreviewTitle": "Version preview · {{time}}", + "page.versions": "Versions", + "pages.access": "Access", "pages.addPage": "Add page", + "pages.archivedTableLabel": "Archived pages table", + "pages.archiveError": "Could not archive that page.", "pages.ascending": "Ascending", "pages.clearFilters": "Clear filters", "pages.closeSearch": "Close search", @@ -1207,24 +1603,51 @@ "pages.descending": "Descending", "pages.documentTitle": "Pages", "pages.emptyArchived": "Archived pages will land here. Archive a page from its detail view to declutter the active list.", + "pages.emptyArchivedTitle": "No archived pages", + "pages.emptyDescription": "Pages hold the writing around the work — specs, notes and decisions that outlive a work item.", "pages.emptyPrivate": "No private pages yet. Pages you mark Private are visible only to you.", "pages.emptyPublic": "No public pages yet. Create your first page to start documenting work alongside your team.", + "pages.emptyTitle": "No pages yet", "pages.favorite": "Favorite", "pages.filters": "Filters", + "pages.loadErrorDescription": "Check your connection and try again. Your pages have not been changed.", + "pages.loadErrorTitle": "Pages could not be loaded", + "pages.loading": "Loading pages…", + "pages.lock": "Lock", "pages.locked": "Locked", + "pages.lockError": "Could not update that page.", "pages.makeCopy": "Make a copy", + "pages.noMatches": "No pages match the current search.", + "pages.noMatchesTitle": "No pages found", "pages.ownedBy": "Owned by {{name}}", "pages.ownedByMe": "Owned by me", + "pages.pageDescription": "Written knowledge that lives alongside {{project}}.", "pages.private": "Private", "pages.public": "Public", "pages.quickFilters": "Quick filters", + "pages.scope": "Page type", "pages.searchPlaceholder": "Search pages", + "pages.summary": "{{live}} live · {{archived}} archived", + "pages.tableCaption": "Pages in this project, with access, dates and actions.", + "pages.tableLabel": "Pages table", "pages.title": "Title", + "pages.toolbar": "Page controls", + "pages.unarchiveError": "Could not restore that page.", "pages.unfavorite": "Unfavorite", + "pages.unlock": "Unlock", "pages.untitled": "Untitled", "pages.untitledPage": "Untitled page", "pages.visibility": "Visibility", "pages.visibilityNav": "Page visibility", + "pages.visibleCount": "{{count}} pages visible", + "pages.visibleCount_one": "{{count}} pages visible", + "pages.visibleCount_other": "{{count}} pages visible", + "priority.high": "High", + "priority.low": "Low", + "priority.medium": "Medium", + "priority.none": "None", + "priority.urgent": "Urgent", + "profile.about": "About", "profile.activity.assignee": "You added a new assignee {{assignee}} to {{ref}} {{time}}", "profile.activity.created": "You created {{ref}} {{title}} {{time}}", "profile.activity.cycle": "You added {{ref}} {{title}} to the cycle {{cycle}} {{time}}", @@ -1232,9 +1655,11 @@ "profile.activity.label": "You added a new label <2>{{label}} to {{ref}} {{title}} {{time}}", "profile.activityTab.assignee": "You added a new assignee <1>{{assignee}} to <4>{{ref}} {{time}}.", "profile.activityTab.created": "You created <2>{{ref}} {{title}} {{time}}.", + "profile.activityTab.createdShort": "Created", "profile.activityTab.cycle": "You added <2>{{ref}} {{title}} to the cycle <5>{{cycle}} {{time}}.", "profile.activityTab.generic": "Activity {{time}}.", "profile.activityTab.label": "You added a new label <2>{{label}} to <6>{{ref}} {{title}} {{time}}.", + "profile.activityTimeline": "Activity timeline", "profile.allWorkItems_one": "All work items {{count}}", "profile.allWorkItems_other": "All work items {{count}}", "profile.chartView": "Chart view", @@ -1243,26 +1668,50 @@ "profile.downloadTodaysActivity": "Download today's activity", "profile.editProfile": "Edit profile", "profile.filters": "Filters", + "profile.fullName": "Full name", "profile.joinedOn": "Joined on {{date}}", "profile.listView": "List view", + "profile.loadError": "Could not load this profile.", + "profile.loadErrorDescription": "Check your connection and try again. Your profile data has not been changed.", + "profile.loading": "Loading profile", "profile.memberFallback": "Member", + "profile.noAssigned": "Nothing assigned yet.", + "profile.noCreated": "Nothing created yet.", + "profile.noMatchingProjects": "No projects match your search.", + "profile.noProjects": "No projects yet.", "profile.noRecentActivity": "No recent activity", "profile.noWorkItems": "No work items", + "profile.openProject": "Open {{project}}", "profile.overview": "Overview", + "profile.pageDescription": "Review member details, workload, and recent work across your workspace.", "profile.priority.high": "High", "profile.priority.low": "Low", "profile.priority.medium": "Medium", "profile.priority.none": "None", "profile.priority.urgent": "Urgent", + "profile.priorityProgress": "{{priority}}: {{count}} of {{total}} assigned work items", + "profile.priorityProgress_one": "{{priority}}: {{count}} of {{total}} assigned work items", + "profile.priorityProgress_other": "{{priority}}: {{count}} of {{total}} assigned work items", + "profile.projectProgress": "{{percent}}%", "profile.projects": "Projects", + "profile.projectsList": "Projects list", "profile.recentActivity": "Recent activity", + "profile.searchProjects": "Search project", + "profile.showingProjects": "Showing {{shown}} of {{total}} projects", + "profile.summary": "{{assigned}} assigned · {{created}} created · {{projects}} projects", "profile.tab.activity": "Activity", "profile.tab.assigned": "Assigned", "profile.tab.created": "Created", "profile.tab.subscribed": "Subscribed", "profile.tab.summary": "Summary", "profile.timezone": "Timezone 23:10 UTC", + "profile.timezoneLabel": "Timezone", + "profile.timezoneValue": "Timezone {{time}} ({{zone}})", + "profile.toggleProjectStates": "Show state breakdown for {{project}}", + "profile.username": "Username", "profile.usernameFallback": "user", + "profile.workItemCount_one": "{{count}} Work item", + "profile.workItemCount_other": "{{count}} Work items", "profile.workItemCountOne_one": "{{count}} Work item", "profile.workItemCountOne_other": "{{count}} Work item", "profile.workItemCountOther_one": "{{count}} Work items", @@ -1274,20 +1723,37 @@ "profile.workItemsSubscribed": "Work items subscribed", "profile.workload.backlog": "Backlog", "profile.workload.canceled": "Canceled", + "profile.workload.cancelled": "Cancelled", "profile.workload.completed": "Completed", "profile.workload.notStarted": "Not started", + "profile.workload.started": "In Progress", "profile.workload.title": "Workload", + "profile.workload.unstarted": "Todo", "profile.workload.workingOn": "Working on", + "profile.workspace": "Workspace", "project.create.aboutId": "About project ID", + "project.create.accessLabel": "Access", + "project.create.accessPublic": "Public", + "project.create.accessSecret": "Private", "project.create.changeIcon": "Change project icon", "project.create.chooseImage": "Choose image", "project.create.coverTitle": "Select project cover", + "project.create.descriptionLabel": "Description", + "project.create.descriptionPlaceholder": "What is this project for?", "project.create.error": "Failed to create project.", + "project.create.idHint": "Prefixes every work item, e.g. DEV-1. Generated from the name if left empty.", + "project.create.idLabel": "Project ID", "project.create.idPlaceholder": "Project ID", "project.create.idTooltip": "Helps you identify work items in the project uniquely. Max 7 characters.", + "project.create.leadLabel": "Lead", + "project.create.leadPlaceholder": "Select a lead", + "project.create.leadUnknown": "Unknown member", + "project.create.nameLabel": "Name", "project.create.namePlaceholder": "Project name", "project.create.nameRequired": "Project name is required.", "project.create.submit": "Create project", + "project.create.submitting": "Creating…", + "project.create.subtitle": "Projects group the work items, cycles, and modules your team ships together.", "project.create.title": "Create project", "project.icon.chooseIcon": "Choose an icon", "project.icon.color": "Color", @@ -1298,17 +1764,50 @@ "project.network.label": "Network", "project.network.private": "Private", "project.network.public": "Public", + "projects.activeFilters": "Active filters", "projects.addToFavorites": "Add to favorites", + "projects.createProject": "New project", "projects.documentTitle": "Projects", "projects.empty": "No projects yet.", + "projects.emptyDescription": "Projects bring work items, cycles, modules, and teammates together in one place.", + "projects.emptyTitle": "Create your first project", "projects.extraMembers_one": "{{count}} more", "projects.extraMembers_other": "{{count}} more", + "projects.favoriteError": "The favorite could not be updated. Please try again.", + "projects.favoriteLoadError": "Favorites could not be loaded. The project list is still available.", + "projects.gridLabel": "Project cards", + "projects.gridView": "Grid view", + "projects.loadErrorDescription": "Check your connection and try again. Your project data has not been changed.", + "projects.loadErrorTitle": "Projects could not be loaded", + "projects.loading": "Loading projects", + "projects.loadingMembers": "Loading members", + "projects.memberCount_one": "{{count}} member", + "projects.memberCount_other": "{{count}} members", + "projects.memberList": "Members: {{members}}", + "projects.membersLoadingNotice": "Member data is still loading.", + "projects.membersPartialNotice": "Member-based results cannot be shown because some member data is unavailable.", + "projects.membersUnavailable": "Members unavailable", "projects.noDescription": "No description", "projects.noFilterResults": "No projects match the selected filters.", + "projects.noFilterResultsTitle": "No projects found", "projects.noMembers": "No members", "projects.noSearchResults": "No results match your search", + "projects.openWorkItems": "Open work items", + "projects.pageDescription": "Organize work, people, and delivery across your workspace.", + "projects.projectMenu": "{{project}} actions", "projects.projectSettings": "Project settings", "projects.removeFromFavorites": "Remove from favorites", + "projects.rosterLoadError": "Workspace members could not be loaded. People filters and lead selection are temporarily unavailable.", + "projects.scope": "Project scope", + "projects.summary": "Projects {{projects}} · Joined {{mine}} · Favorites {{favorites}}", + "projects.tableCaption": "Workspace projects, access, leads, members, and updates", + "projects.tableLabel": "Projects table", + "projects.tableView": "Table view", + "projects.toolbar": "Project controls", + "projects.unassignedLead": "Unassigned lead", + "projects.viewMode": "Project view", + "projects.visibleCount_one": "{{count}} project visible", + "projects.visibleCount_other": "{{count}} projects visible", "settings.account.changeProfilePicture": "Change profile picture", "settings.account.deactivate.busy": "Deactivating…", "settings.account.deactivate.confirm": "Deactivate", @@ -1319,19 +1818,27 @@ "settings.account.deactivate.title": "Deactivate account", "settings.account.displayName": "Display name", "settings.account.email": "Email", + "settings.account.emailChange.code": "Confirmation code", "settings.account.emailChange.codePlaceholder": "6-digit code", "settings.account.emailChange.confirmEmail": "Confirm email", "settings.account.emailChange.confirmError": "Failed to confirm the new email", "settings.account.emailChange.confirming": "Confirming…", + "settings.account.emailChange.newEmail": "New email", "settings.account.emailChange.newEmailPlaceholder": "new@email.com", "settings.account.emailChange.requestPrompt": "Enter your new email. We'll send a confirmation code to it.", "settings.account.emailChange.sendCode": "Send code", "settings.account.emailChange.sendError": "Failed to send the confirmation code", "settings.account.emailChange.sending": "Sending…", + "settings.account.emailChange.updated": "Email address updated.", "settings.account.emailChange.verifyPrompt": "Enter the code we sent to {{email}}.", + "settings.account.emailDescription": "Used to sign in and to reach you. A new address has to be confirmed before it takes effect.", "settings.account.firstName": "First name", "settings.account.lastName": "Last name", + "settings.account.pageDescription": "Your personal Devlane account.", + "settings.account.profileDescription": "How you appear to everyone else in Devlane.", + "settings.account.profileSaved": "Profile updated.", "settings.account.profileSaveError": "Failed to save profile", + "settings.account.profileTitle": "Profile", "settings.account.saveChanges": "Save changes", "settings.account.selectCoverImage": "Select cover image", "settings.account.uploadProfilePicture": "Upload profile picture", @@ -1340,6 +1847,7 @@ "settings.activity.subtitle": "Track your recent actions and changes across all projects and work items.", "settings.activity.title": "Activity", "settings.activity.youCommented": "You commented {{time}}", + "settings.activity.youUpdated": "You made an update {{time}}", "settings.apiTokens.add": "Add workspace token", "settings.apiTokens.copyHint": "Copy this token now; it will not be shown again.", "settings.apiTokens.createdTitle": "Token created", @@ -1362,6 +1870,7 @@ "settings.apiTokens.loading": "Loading tokens…", "settings.apiTokens.revoke": "Revoke", "settings.apiTokens.revoking": "Revoking…", + "settings.apiTokens.subtitle": "Service tokens authenticate as this workspace. Only admins can manage them.", "settings.apiTokens.title": "API Tokens", "settings.apiTokens.titleLabel": "Title", "settings.automations.archiveAfter": "Archive after", @@ -1371,6 +1880,8 @@ "settings.automations.autoClose.title": "Auto-close work items", "settings.automations.closeAfter": "Close after", "settings.automations.months.one": "1 month", + "settings.automations.months.other_one": "{{count}} months", + "settings.automations.months.other_other": "{{count}} months", "settings.automations.months.six": "6 months", "settings.automations.months.three": "3 months", "settings.automations.months.twelve": "12 months", @@ -1426,6 +1937,7 @@ "settings.features.modules.label": "Modules", "settings.features.pages.desc": "Create and edit free-form content; notes, docs, anything.", "settings.features.pages.label": "Pages", + "settings.features.shortTitle": "Features", "settings.features.subtitle": "Toggle these on or off this project.", "settings.features.timeTracking.desc": "Log time spent on work items and projects.", "settings.features.timeTracking.label": "Time Tracking", @@ -1434,6 +1946,9 @@ "settings.features.views.label": "Views", "settings.features.workManagement.subtitle": "Manage your work and projects with ease.", "settings.features.workManagement.title": "Work management", + "settings.groups.administration": "Administration", + "settings.groups.developer": "Developer", + "settings.integrations.title": "Integrations", "settings.invite.addMore": "Add more", "settings.invite.emailPlaceholder": "name@company.com", "settings.invite.roleAdmin": "Admin", @@ -1443,15 +1958,19 @@ "settings.invite.subtitleProject": "Invite people to this project.", "settings.invite.subtitleWorkspace": "Invite people to collaborate on your workspace.", "settings.invite.title": "Invite people to collaborate", + "settings.itemDialog.colorHex": "Colour hex value", + "settings.itemDialog.saveError": "Failed to save. Try again.", "settings.labels.add": "Add label", "settings.labels.addTitle": "Add label", "settings.labels.editTitle": "Edit label", + "settings.labels.empty": "No labels yet.", "settings.labels.error.save": "Failed to save label. Please try again.", "settings.labels.namePlaceholder": "e.g. Bug", "settings.labels.subtitle": "Create custom labels to categorize and organize your work items.", "settings.labels.title": "Labels", "settings.members.accountType": "Account type", "settings.members.add": "Add member", + "settings.members.addAnother": "Add another", "settings.members.authEmail": "Email", "settings.members.authentication": "Authentication", "settings.members.copyLink": "Copy link", @@ -1463,15 +1982,26 @@ "settings.members.fullName": "Full name", "settings.members.guestAccess.help": "This will allow guests to have view access to all the project work items.", "settings.members.guestAccess.title": "Guest access", + "settings.members.inviteError": "Failed to send invites.", + "settings.members.inviteProjectDescription": "Invited people get access to this project only.", + "settings.members.inviteTitle": "Invite people", + "settings.members.inviteWorkspaceDescription": "Invited people get access to every public project in this workspace.", + "settings.members.inviting": "Sending…", "settings.members.joiningDate": "Joining date", + "settings.members.noMatches": "No members match this search.", "settings.members.noPendingInvites": "No pending invites.", "settings.members.pending": "Pending", "settings.members.pendingInvites": "Pending invites", + "settings.members.projectDescription": "Who works on this project, and the defaults new work inherits.", "settings.members.projectLead.help": "Select the project lead for the project.", "settings.members.projectLead.title": "Project Lead", + "settings.members.removeInviteRow": "Remove this invite", "settings.members.revoke": "Revoke", + "settings.members.roleFor": "Role for {{name}}", "settings.members.searchPlaceholder": "Search...", + "settings.members.sendInvites": "Send invites", "settings.members.title": "Members", + "settings.members.workspaceDescription": "Everyone with access to this workspace.", "settings.nav.admin": "Admin", "settings.nav.administration": "Administration", "settings.nav.developer": "Developer", @@ -1487,17 +2017,44 @@ "settings.notifications.inAppAria": "{{label}} in-app", "settings.notifications.project.description": "How you're notified for work in this project. Overrides your workspace and account defaults.", "settings.notifications.project.title": "Project notifications", + "settings.notifications.row.comments.desc": "Notify me when someone comments on a work item.", + "settings.notifications.row.comments.label": "Comments", + "settings.notifications.row.completed.desc": "Notify me when a work item is completed.", + "settings.notifications.row.completed.label": "Work item completed", + "settings.notifications.row.mentions.desc": "Notify me when someone mentions me in a comment or description.", + "settings.notifications.row.mentions.label": "Mentions", + "settings.notifications.row.property.desc": "Notify me when work items' properties like assignees, priority, or estimates change.", + "settings.notifications.row.property.label": "Property changes", + "settings.notifications.row.state.desc": "Notify me when a work item moves to a different state.", + "settings.notifications.row.state.label": "State change", "settings.notifications.title": "Notifications", "settings.notifications.workspace.description": "How you're notified for work in this workspace. Overrides your account defaults; projects can override this.", "settings.notifications.workspace.title": "Workspace notifications", + "settings.preferences.appearance.help": "Two independent choices: the mode decides whether the interface is light or dark, the accent decides the color it fills buttons and focus rings with.", + "settings.preferences.appearance.title": "Appearance", + "settings.preferences.colorTheme.accent": "Accent", + "settings.preferences.colorTheme.accentHelp": "Recolors filled buttons and focus rings only. Surfaces, borders and text stay as they are.", + "settings.preferences.colorTheme.blue": "Blue", + "settings.preferences.colorTheme.default": "Default", + "settings.preferences.colorTheme.green": "Green", + "settings.preferences.colorTheme.orange": "Orange", + "settings.preferences.colorTheme.rose": "Rose", + "settings.preferences.colorTheme.violet": "Violet", "settings.preferences.firstDayOfWeek.help": "This will change how all calendars in your app look.", "settings.preferences.firstDayOfWeek.monday": "Monday", "settings.preferences.firstDayOfWeek.sunday": "Sunday", "settings.preferences.firstDayOfWeek.title": "First day of the week", + "settings.preferences.interfaceVersion.help": "Choose which Devlane interface you want to use. Some admin-only pages still open in the classic interface either way.", + "settings.preferences.interfaceVersion.title": "Interface", + "settings.preferences.interfaceVersion.v1": "Classic", + "settings.preferences.interfaceVersion.v2": "New (Beta)", "settings.preferences.language.help": "Choose the language used in the user interface.", "settings.preferences.language.title": "Language", "settings.preferences.languageAndTime": "Language & Time", + "settings.preferences.regionalDescription": "How dates, times, and the interface itself are presented to you.", + "settings.preferences.regionalTitle": "Language and region", "settings.preferences.save": "Save preferences", + "settings.preferences.saved": "Preferences saved.", "settings.preferences.subtitle": "Customize your app experience the way you work", "settings.preferences.theme.dark": "Dark", "settings.preferences.theme.help": "Select or customize your interface color scheme.", @@ -1509,23 +2066,35 @@ "settings.preferences.timezone.title": "Timezone", "settings.preferences.title": "Preferences", "settings.project.archive.busy": "Archiving…", + "settings.project.archive.confirm": "Archive", + "settings.project.archive.confirmTitle": "Archive this project?", "settings.project.archive.description": "Hide this project and its work from the workspace. You can restore it later from Archives.", "settings.project.archive.error": "Failed to archive project.", "settings.project.archive.title": "Archive project", "settings.project.changeIcon": "Change project icon", "settings.project.createdOn": "Created on {{date}}", "settings.project.descriptionPlaceholder": "Description...", + "settings.project.generalDescription": "How this project appears across the workspace.", + "settings.project.generalTitle": "General", "settings.project.iconModalTitle": "Project icon", "settings.project.id": "Project ID", "settings.project.identifierTooltip": "Project identifier", "settings.project.name": "Project name", + "settings.project.noProjects": "Create a project to configure it here.", + "settings.project.pageDescription": "Configure {{name}}.", + "settings.project.pageTitle": "Project settings", + "settings.project.pickerLabel": "Project", + "settings.project.private": "Private", "settings.project.public": "Public", "settings.project.selectCover": "Select project cover", "settings.project.timezone": "Project Timezone", "settings.project.update": "Update project", "settings.project.updateError": "Failed to update project", + "settings.project.visibility": "Visibility", "settings.role.admin": "Admin", "settings.role.member": "Member", + "settings.scopeNavLabel": "Settings scope", + "settings.section": "Section", "settings.section.activity": "Activity", "settings.section.automations": "Automations", "settings.section.estimates": "Estimates", @@ -1542,12 +2111,16 @@ "settings.section.states": "States", "settings.section.tokens": "Personal Access Tokens", "settings.section.webhooks": "Webhooks", + "settings.sectionNavLabel": "Settings sections", + "settings.security.cardDescription": "Pick a password you do not use anywhere else.", + "settings.security.changed": "Password changed.", "settings.security.changeError": "Failed to change password", "settings.security.changePassword": "Change password", "settings.security.changing": "Changing…", "settings.security.confirmPassword": "Confirm password", "settings.security.confirmPasswordPlaceholder": "Confirm password", "settings.security.currentPassword": "Current password", + "settings.security.description": "Use at least 8 characters. Changing your password does not sign you out of other sessions.", "settings.security.hidePassword": "Hide password", "settings.security.newPassword": "New password", "settings.security.newPasswordPlaceholder": "Enter new password", @@ -1555,6 +2128,7 @@ "settings.security.passwordMismatch": "New password and confirmation do not match", "settings.security.passwordTooShort": "New password must be at least 8 characters", "settings.security.showPassword": "Show password", + "settings.security.title": "Security", "settings.states.add": "Add state", "settings.states.addTitle": "Add state", "settings.states.default": "Default", @@ -1576,12 +2150,16 @@ "settings.tabs.account": "Account", "settings.tabs.projects": "Projects", "settings.tabs.workspace": "Workspace", + "settings.timezone.empty": "No timezone found.", "settings.tokens.add": "Add personal access token", "settings.tokens.copyWarning": "Copy this token now; it will not be shown again.", "settings.tokens.created": "Created {{time}}", + "settings.tokens.createDescription": "Name the token so you can recognise it later, and pick when it expires.", "settings.tokens.createdTitle": "Token created", + "settings.tokens.createError": "Failed to create the token.", "settings.tokens.createTitle": "Create token", "settings.tokens.empty": "No tokens yet.", + "settings.tokens.emptyHelp": "Tokens let external systems talk to Devlane on your behalf.", "settings.tokens.expiry.month": "1 month", "settings.tokens.expiry.never": "Never expires", "settings.tokens.expiry.threeMonths": "3 months", @@ -1590,8 +2168,10 @@ "settings.tokens.form.expiration": "Expiration", "settings.tokens.form.title": "Title", "settings.tokens.generate": "Generate token", + "settings.tokens.loadError": "Could not load tokens.", "settings.tokens.loading": "Loading tokens…", "settings.tokens.revoke": "Revoke", + "settings.tokens.revokeError": "Failed to revoke the token.", "settings.tokens.revoking": "Revoking…", "settings.tokens.subtitle": "Generate secure API tokens to integrate your data with external systems and applications.", "settings.tokens.title": "Personal Access Tokens", @@ -1639,9 +2219,13 @@ "settings.workspace.companySize": "Company size", "settings.workspace.delete.button": "Delete workspace", "settings.workspace.delete.description": "This action cannot be undone. All projects and data in this workspace will be permanently removed.", + "settings.workspace.delete.instanceAdminOnly": "Workspaces are deleted by an instance administrator.", "settings.workspace.delete.title": "Delete this workspace", "settings.workspace.editLogo": "Edit logo", + "settings.workspace.generalDescription": "Everyone in this workspace sees these details.", + "settings.workspace.generalTitle": "General", "settings.workspace.name": "Workspace name", + "settings.workspace.pageDescription": "Manage {{name}} and everyone who works in it.", "settings.workspace.update": "Update workspace", "settings.workspace.updateError": "Failed to update workspace", "settings.workspace.uploadLogo": "Upload workspace logo", @@ -1684,11 +2268,16 @@ "setup.welcome.getStarted": "Get started", "setup.welcome.subtitle": "Get started by setting up your instance and workspace.", "setup.welcome.title": "Welcome aboard Devlane!", + "spreadsheet.columnHint": "Drag to reorder, drag the edge to resize", + "spreadsheet.resizeColumn": "Resize column", "stateGroup.backlog": "Backlog", + "stateGroup.canceled": "Cancelled", "stateGroup.cancelled": "Cancelled", "stateGroup.completed": "Done", "stateGroup.started": "In Progress", "stateGroup.unstarted": "Todo", + "states.completed": "Done", + "states.started": "In Progress", "stickies.backgroundColor": "Background color", "stickies.bold": "Bold", "stickies.changeColor": "Change color", @@ -1705,12 +2294,18 @@ "views.access.private": "Private", "views.access.public": "Public", "views.access.restricted": "Restricted", + "views.activeFilters": "Active filters", "views.addView": "Add view", "views.addWorkItem": "Add work item", "views.allWorkItems": "All work items", + "views.assigned": "Assigned", + "views.assignee": "Assignee", "views.assignees": "Assignees", "views.attachments": "Attachments", "views.backToViews": "Back to views", + "views.boardLabel": "Work items board", + "views.changeDueDate": "Change due date", + "views.changeStartDate": "Change start date", "views.clearAll": "Clear all", "views.clearFilter": "Clear {{label}} filter", "views.copied": "Copied!", @@ -1720,6 +2315,7 @@ "views.createFailed": "Failed to create view.", "views.createFirst": "Create your first view", "views.createView": "Create View", + "views.createViewDescription": "Saves the filters and display settings currently in the toolbar.", "views.creating": "Creating...", "views.customDateRange": "Custom · {{after}} → {{before}}", "views.cycle": "Cycle", @@ -1727,6 +2323,7 @@ "views.dateRange.previousMonth": "Previous month", "views.dateRange.summary": "After: {{after}} Before: {{before}}", "views.deleteConfirm": "Delete view {{name}}? This action cannot be undone.", + "views.deleteError": "Could not delete that view.", "views.deleteFailed": "Failed to delete view.", "views.deleteView": "Delete view", "views.deleting": "Deleting...", @@ -1744,7 +2341,9 @@ "views.emptyDescription": "Views are a set of saved filters that you use frequently or want easy access to. All your colleagues in a project can see everyone's views and choose whichever suits their needs best.", "views.emptyTitle": "Save filtered views for your project. Create as many as you need", "views.emptyWorkItems": "No work items yet. Create one from a project's Work items section or add a view to get started.", + "views.emptyWorkItemsTitle": "No work items yet", "views.estimate": "Estimate", + "views.estimateAssigned": "Assigned", "views.failedToCreate": "Failed to create work item", "views.favoriteError": "Unable to update favorite. Please try again.", "views.favorites": "Favorites", @@ -1777,11 +2376,17 @@ "views.filterCount_one": "{{count}} filters", "views.filterCount_other": "{{count}} filters", "views.filters": "Filters", + "views.grouping": "Grouping", "views.labels": "Labels", "views.lastMonth": "Last 1 month", "views.lastTwoWeeks": "Last 2 weeks", "views.lastWeek": "Last 1 week", + "views.layout": "Layout", + "views.listLabel": "Work items list", "views.loadError": "Unable to load project views right now. Please refresh and try again.", + "views.loadErrorDescription": "Check your connection and try again. Your work items have not been changed.", + "views.loadErrorTitle": "Work items could not be loaded", + "views.loading": "Loading work items", "views.loadingProject": "Loading project...", "views.loadingView": "Loading view…", "views.loadingViewDetail": "Loading view...", @@ -1794,37 +2399,65 @@ "views.newView": "New view", "views.newWorkItem": "New work item", "views.noCycle": "No cycle", + "views.noFilterResults": "No work items match the current search and filters.", + "views.noFilterResultsTitle": "No work items found", "views.noLabels": "No labels.", "views.noLabelsGroup": "No labels", "views.noMatchDescription": "Try clearing or relaxing your search, created date, favorites, or created-by filters.", + "views.noMatches": "No work items match this view’s filters.", "views.noMatchTitle": "No views match your filters", "views.noModule": "No module", "views.noProjectViews": "No project views yet", "views.noState": "No state", + "views.noWorkItems": "No work items yet", "views.noWorkItemsMatch": "No work items match this view.", "views.oneFilter": "1 filter", "views.openInNewTab": "Open in new tab", "views.optionalDescription": "Optional description", + "views.pageDescription": "Track work items across every project in your workspace.", "views.priority": "Priority", "views.private": "Private", + "views.projectEmptyDescription": "A view saves a set of filters so the work you look at every day is one click away.", + "views.projectLoadErrorDescription": "Check your connection and try again. Your views have not been changed.", + "views.projectLoadErrorTitle": "Views could not be loaded", + "views.projectNoMatches": "No views match the current search.", "views.projectNotFound": "Project not found.", + "views.projectPageDescription": "Saved filters over the work in {{project}}.", + "views.projectSummary": "{{visible}} of {{total}} views", + "views.projectTableCaption": "Saved views in this project, with access, last update and per-view actions.", + "views.projectTableLabel": "Views table", + "views.projectVisibleCount": "{{count}} views visible", + "views.projectVisibleCount_one": "{{count}} views visible", + "views.projectVisibleCount_other": "{{count}} views visible", "views.public": "Public", "views.restricted": "Restricted", "views.saveChanges": "Save changes", "views.saved": "Saved", "views.saveError": "Couldn’t save. Try again.", + "views.saveView": "Save view", "views.saving": "Saving...", + "views.scope": "View scope", + "views.searchPlaceholder": "Search work items", + "views.searchProjectViews": "Search views", "views.selectCycle": "Select cycle", "views.selectLabels": "Select labels", "views.selectModules": "Select modules", "views.selectParent.noParent": "No parent", "views.selectParent.title": "Select parent", + "views.selectState": "Select state", "views.showSubWorkItems": "Show sub-work items", + "views.spreadsheetCaption": "Editable workspace work-item properties in a horizontally scrollable table.", "views.startDate": "Start date", + "views.state": "State", + "views.subscribed": "Subscribed", "views.subWorkItems": "Sub-work items", + "views.summary": "Work items {{items}} · Open {{open}} · Completed {{completed}}", + "views.tableCaption": "Work items across the workspace, with project, state, priority, assignees, labels, due date, and last update.", + "views.tableLabel": "Work items table", "views.thisView": "this view", "views.title": "Title", "views.titleRequired": "Title is required.", + "views.toolbar": "View controls", "views.unableToLoadView": "Unable to load this view.", "views.unassigned": "Unassigned", "views.unfavoriteView": "Unfavorite view", @@ -1836,6 +2469,9 @@ "views.viewNamePlaceholder": "View name", "views.viewNotFound": "View not found.", "views.viewNotFoundDescription": "The view you are looking for does not exist or you don't have permission to view it.", + "views.visibleCount": "{{count}} work items visible", + "views.visibleCount_one": "{{count}} work items visible", + "views.visibleCount_other": "{{count}} work items visible", "views.workItems": "Work items", "views.zeroAttachments": "0 attachments", "views.zeroLinks": "0 links", @@ -1890,6 +2526,12 @@ "workItem.cell.changeState": "Change state", "workItem.cell.noLabels": "No labels", "workItem.cell.noMembers": "No members", + "workItem.changeAssignees": "Change assignees", + "workItem.changeDueDate": "Change due date", + "workItem.changeLabels": "Change labels", + "workItem.changePriority": "Change priority", + "workItem.changeStartDate": "Change start date", + "workItem.changeState": "Change state", "workItem.comment.accessExternalTooltip": "External — visible to guests / public boards", "workItem.comment.accessInternalTooltip": "Internal — only workspace members", "workItem.comment.external": "External", @@ -1900,20 +2542,36 @@ "workItem.comment.sendTooltip": "Send (Ctrl + Enter)", "workItem.comment.toggleVisibility": "Toggle comment visibility", "workItem.create.addAssignees": "Add assignees", + "workItem.create.addLabels": "Add labels", "workItem.create.addParent": "Add parent", "workItem.create.assignees": "Assignees", "workItem.create.backlog": "Backlog", + "workItem.create.basics": "Work item details", "workItem.create.createLabel": "Create label \"{{name}}\"", "workItem.create.createMore": "Create more", + "workItem.create.description": "Add a work item to a project.", "workItem.create.descriptionPlaceholder": "Click to add description", "workItem.create.labelError": "Failed to create label.", "workItem.create.labels": "Labels", "workItem.create.noAssignee": "No assignee", "workItem.create.noCycle": "No cycle", "workItem.create.noModule": "No module", + "workItem.create.noParent": "No parent", + "workItem.create.noState": "No state", "workItem.create.noStates": "No states", + "workItem.create.parent": "Parent work item", + "workItem.create.properties": "Properties", + "workItem.create.propertiesHint": "Add planning details now or update them later.", + "workItem.create.relationWarning": "Work item created, but one or more planning properties could not be attached.", + "workItem.create.searchAssignees": "Search assignees", + "workItem.create.searchLabels": "Search labels", + "workItem.create.searchParents": "Search work items…", + "workItem.create.selectedCount_one": "{{name}} +{{count}}", + "workItem.create.selectedCount_other": "{{name}} +{{count}}", + "workItem.create.submit": "Create work item", "workItem.create.title": "Create new work item", "workItem.create.titleDraft": "Create draft work item", + "workItem.create.titlePlaceholder": "What needs to be done?", "workItem.description.placeholder": "Add a description…", "workItem.description.saved": "Saved", "workItem.description.saveFailed": "Failed to save", @@ -1928,9 +2586,12 @@ "workItem.detail.archiveFailed": "Failed to archive work item.", "workItem.detail.assigneesCount_one": "{{count}} assignees", "workItem.detail.assigneesCount_other": "{{count}} assignees", + "workItem.detail.backToList": "Back to work items", "workItem.detail.bot": "Bot", "workItem.detail.botAriaLabel": "GitHub bot", "workItem.detail.botTitle": "Posted by the GitHub integration", + "workItem.detail.commentFailed": "Failed to post comment.", + "workItem.detail.comments": "Comments", "workItem.detail.commentsCount_one": "Comments {{count}}", "workItem.detail.commentsCount_other": "Comments {{count}}", "workItem.detail.confirmChange": "confirm", @@ -1956,6 +2617,7 @@ "workItem.detail.field.dueDate": "Due date", "workItem.detail.field.estimate": "Estimate", "workItem.detail.field.labels": "Labels", + "workItem.detail.field.module": "Module", "workItem.detail.field.modules": "Modules", "workItem.detail.field.parent": "Parent", "workItem.detail.field.priority": "Priority", @@ -1967,7 +2629,9 @@ "workItem.detail.issueNotFound": "Issue not found.", "workItem.detail.issuesBreadcrumb": "Issues", "workItem.detail.lastEdited": "Last edited {{date}}", + "workItem.detail.loading": "Loading work item", "workItem.detail.noComments": "No comments yet.", + "workItem.detail.noCommentsDescription": "Start the discussion — comments are visible to everyone who can open this work item.", "workItem.detail.noCycle": "No cycle", "workItem.detail.noEstimate": "No estimate", "workItem.detail.noLabels": "No labels.", @@ -1976,13 +2640,24 @@ "workItem.detail.noModules": "No modules", "workItem.detail.noPriority": "No priority", "workItem.detail.noState": "No state", + "workItem.detail.noSubWorkItems": "No sub-work items yet", + "workItem.detail.noSubWorkItemsDescription": "Break this work item down by setting it as the parent of another work item.", + "workItem.detail.notFoundDescription": "This work item may have been deleted, or it belongs to a project you cannot open.", + "workItem.detail.pageDescription": "Track the description, sub-work items, and discussion for this work item.", + "workItem.detail.pageSummary": "Updated {{updated}} · Created {{created}}", "workItem.detail.postCommentFailed": "Failed to post comment.", "workItem.detail.properties": "Properties", "workItem.detail.removeParent": "Remove parent", "workItem.detail.restoreFailed": "Failed to restore work item.", + "workItem.detail.sections": "Work item sections", "workItem.detail.selectLabel": "Select label", "workItem.detail.selectState": "Select state", + "workItem.detail.subItemsTableCaption": "Sub-work items of this work item, with state, priority, and due date.", + "workItem.detail.subscribe": "Subscribe", + "workItem.detail.subscribed": "Subscribed", "workItem.detail.subWorkItems": "Sub-work items", + "workItem.detail.subWorkItemsProgress": "Sub-work progress", + "workItem.detail.toolbar": "Work item controls", "workItem.detail.updateCommentFailed": "Failed to update comment.", "workItem.detail.updateCycleFailed": "Failed to update cycle.", "workItem.detail.updateFailed": "Failed to update work item.", @@ -2110,5 +2785,42 @@ "workspace.create.urlPlaceholder": "workspace-name", "workspace.orgSize.selectRange": "Select a range", "workspaces.empty.restricted": "Workspace creation is restricted. Ask your instance admin to invite you to a workspace.", - "workspaces.empty.title": "You don't have any workspaces yet." + "workspaces.empty.title": "You don't have any workspaces yet.", + "common.resetFilters": "Reset filters", + "common.other": "Other", + "filters.noOptions": "Nothing to filter by yet.", + "moduleStatus.backlog": "Backlog", + "moduleStatus.planned": "Planned", + "moduleStatus.in_progress": "In Progress", + "moduleStatus.paused": "Paused", + "moduleStatus.completed": "Completed", + "moduleStatus.cancelled": "Cancelled", + "epics.createDescription": "An epic groups related work items so a long-running effort can be tracked as one thing.", + "epics.descriptionPlaceholder": "Optional description", + "epics.noMatchesFiltered": "No epics match the current search and filters.", + "modules.newModule": "New module", + "modules.createDescription": "A module splits the project into a body of work that is planned and tracked on its own.", + "modules.namePlaceholder": "Module name", + "modules.descriptionPlaceholder": "Optional description", + "modules.createFailed": "Failed to create module.", + "modules.dateRangeInvalid": "The target date cannot fall before the start date.", + "modules.noMatchesFiltered": "No modules match the current search and filters.", + "cycles.newCycle": "New cycle", + "cycles.createDescription": "A cycle is a time-boxed delivery window that work items are pulled into.", + "cycles.namePlaceholder": "Cycle name", + "cycles.descriptionPlaceholder": "Optional description", + "cycles.createFailed": "Failed to create cycle.", + "cycles.dateRangeInvalid": "The end date cannot fall before the start date.", + "cycles.startDate": "Start date", + "cycles.endDate": "End date", + "cycles.createSuccess": "{{cycle}} created", + "pages.newPage": "New page", + "pages.createDescription": "Pages hold the writing around the work — specs, notes and decisions.", + "pages.createFailed": "Failed to create page.", + "pages.lockedOnly": "Locked only", + "views.createProjectViewDescription": "A view saves a set of filters so the work you look at every day is one click away.", + "views.accessPublic": "Public", + "views.accessPrivate": "Private", + "views.accessRestricted": "Restricted", + "views.projectNoMatchesFiltered": "No views match the current search and filters." } diff --git a/apps/web/src/i18n/locales/tr/translation.json b/apps/web/src/i18n/locales/tr/translation.json new file mode 100644 index 00000000..03a605a1 --- /dev/null +++ b/apps/web/src/i18n/locales/tr/translation.json @@ -0,0 +1,2826 @@ +{ + "activity.added": "{{field}} eklendi: {{value}}", + "activity.addedBare": "{{field}} eklendi", + "activity.created": "İş öğesi oluşturuldu", + "activity.deleted": "İş öğesi silindi", + "activity.field.assignees": "Atanan kişi", + "activity.field.attachment": "Ek", + "activity.field.comment": "Yorum", + "activity.field.description": "Açıklama", + "activity.field.estimate_point": "Tahmin", + "activity.field.is_epic": "Epik", + "activity.field.labels": "Etiket", + "activity.field.link": "Bağlantı", + "activity.field.name": "Ad", + "activity.field.parent": "Üst öğe", + "activity.field.priority": "Öncelik", + "activity.field.project_id": "Proje", + "activity.field.relation": "İlişki", + "activity.field.start_date": "Başlangıç tarihi", + "activity.field.state": "Durum", + "activity.field.target_date": "Bitiş tarihi", + "activity.removed": "{{field}} kaldırıldı: {{value}}", + "activity.removedBare": "{{field}} kaldırıldı", + "activity.updated": "{{field}} güncellendi", + "activity.updatedFrom": "{{field}} {{old}} değerinden güncellendi", + "activity.updatedFromTo": "{{field}} {{old}} değerinden {{new}} değerine güncellendi", + "activity.updatedTo": "{{field}} {{new}} olarak güncellendi", + "analytics.activeProjects": "Aktif projeler", + "analytics.addProperty": "Özellik ekle", + "analytics.allProjects": "Tüm projeler", + "analytics.axisDate": "TARİH", + "analytics.axisNoOfWorkItem": "İŞ ÖĞESİ SAYISI", + "analytics.axisNoOfWorkItems": "İŞ ÖĞELERİ SAYISI", + "analytics.axisPriority": "ÖNCELİK", + "analytics.axisWorkItemCount": "İŞ ÖĞESİ SAYISI", + "analytics.axisWorkItemsCount": "İŞ ÖĞELERİ SAYISI", + "analytics.backlogWorkItems": "Backlog iş öğeleri", + "analytics.byPriority": "Önceliğe göre", + "analytics.byPriorityHint": "Açık iş öğeleri önceliğe göre gruplanmış.", + "analytics.byState": "Duruma göre", + "analytics.byStateHint": "Açık iş öğeleri duruma göre gruplanmış.", + "analytics.colBacklog": "Backlog", + "analytics.colCancelled": "İptal edildi", + "analytics.colCompleted": "Tamamlandı", + "analytics.colProject": "Proje", + "analytics.colStarted": "Başlatıldı", + "analytics.colUnstarted": "Başlatılmadı", + "analytics.completedOfTotal": "{{total}} öğeden {{completed}} tanesi tamamlandı", + "analytics.completedWorkItems": "Tamamlanan iş öğeleri", + "analytics.completion": "Tamamlanma", + "analytics.count": "Sayı", + "analytics.created": "Oluşturuldu", + "analytics.createdVsResolved": "Oluşturulan / Çözülen", + "analytics.customizedInsights": "Özelleştirilmiş analizler", + "analytics.dimensionCycles": "Döngüler", + "analytics.dimensionIntake": "Talepler", + "analytics.dimensionMembers": "Üyeler", + "analytics.dimensionModules": "Modüller", + "analytics.dimensionPages": "Sayfalar", + "analytics.dimensionViews": "Görünümler", + "analytics.dimensionWorkItems": "İş öğeleri", + "analytics.documentTitle": "Analitik", + "analytics.done": "Tamamlandı", + "analytics.export": "Dışa aktar", + "analytics.exportAsCsv": "CSV olarak dışa aktar", + "analytics.exportCsv": "CSV", + "analytics.exportFailed": "Dışa aktarma başarısız. Lütfen tekrar deneyin.", + "analytics.exporting": "Dışa aktarılıyor…", + "analytics.exportProjectCsv": "Proje CSV'sini dışa aktar", + "analytics.exports": "Dışa aktarmalar", + "analytics.exportsHint": "Alttaki satırları CSV olarak indirin.", + "analytics.exportWorkspace": "Çalışma alanını dışa aktar", + "analytics.filterWorkItem": "İş öğesi", + "analytics.loadError": "Analitik verileri yüklenemedi.", + "analytics.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Çalışma alanı verileriniz değiştirilmedi.", + "analytics.loadFailed": "Analitik yüklenemedi. Lütfen tekrar deneyin.", + "analytics.loadingOverview": "Analitik özeti yükleniyor", + "analytics.metrics": "Metrikler", + "analytics.noWorkItems": "Henüz iş öğesi yok.", + "analytics.overview": "Genel bakış", + "analytics.overviewDescription": "Çalışma alanı etkinliğini, teslimatı ve ekip ilerlemesini tek bakışta izleyin.", + "analytics.overviewSummary": "Projeler {{projects}} · İş öğeleri {{workItems}} · Üyeler {{members}}", + "analytics.partial": "Bazı analitikler hesaplanamadı ve sıfır olarak gösteriliyor.", + "analytics.prioritiesCount_one": "{{count}} öncelik", + "analytics.prioritiesCount_other": "{{count}} öncelik", + "analytics.priority": "Öncelik", + "analytics.prioritySuffixPlural": "ler", + "analytics.project": "Proje", + "analytics.projectBreakdown": "Proje dağılımı", + "analytics.projectBreakdownDescription": "Proje başına iş öğesi sayıları ve ne kadarının bittiği.", + "analytics.projectCompletion": "{{project}} tamamlanma: %{{percent}}", + "analytics.projectInsights": "Proje analizleri", + "analytics.projectProgress": "Proje ilerlemesi", + "analytics.projectProgressDescription": "Her projenin tamamlanan iş öğelerinin oranı. İptal edilen öğeler hariçtir.", + "analytics.projectsCount_one": "{{count}} proje", + "analytics.projectsCount_other": "{{count}} proje", + "analytics.resolved": "Çözüldü", + "analytics.share": "Pay", + "analytics.startedWorkItems": "Başlatılan iş öğeleri", + "analytics.state": "Durum", + "analytics.stateBacklog": "Backlog", + "analytics.stateCancelled": "İptal edildi", + "analytics.stateDone": "Tamamlandı", + "analytics.stateInProgress": "Devam ediyor", + "analytics.stateTodo": "Yapılacak", + "analytics.summaryOfProjects": "Projelerin özeti", + "analytics.totalAdmins": "Toplam yönetici", + "analytics.totalCycles": "Toplam döngü", + "analytics.totalGuests": "Toplam misafir", + "analytics.totalIntake": "Toplam talep", + "analytics.totalMembers": "Toplam üye", + "analytics.totalModules": "Modüller", + "analytics.totalPages": "Sayfalar", + "analytics.totalProjects": "Toplam proje", + "analytics.totalUsers": "Toplam kullanıcı", + "analytics.totalWorkItems": "Toplam iş öğesi", + "analytics.trend": "Oluşturulan / Çözülen", + "analytics.trendHint": "Zaman içinde açılan ve kapatılan iş öğeleri.", + "analytics.trendOnCharts": "Grafiklerde eğilim", + "analytics.unclassifiedWorkItems_one": "{{count}} iş öğesinin durumu yok ve grafiğe dahil edilmedi.", + "analytics.unclassifiedWorkItems_other": "{{count}} iş öğesinin durumu yok ve grafiğe dahil edilmedi.", + "analytics.unstartedWorkItems": "Başlatılmamış iş öğeleri", + "analytics.viewAllProjects_one": "{{count}} projenin tümü", + "analytics.viewAllProjects_other": "{{count}} projenin tümü", + "analytics.workItems": "İş öğeleri", + "analytics.workItemsByState": "Duruma göre iş öğeleri", + "analytics.workItemsByStateDescription": "Çalışma alanındaki her iş öğesi, yaşam döngüsündeki yerine göre.", + "analytics.workItemsChartTitle": "İş öğeleri", + "appShellV2.documentTitle": "Uygulama kabuğu (v2)", + "archives.activeFilters": "Aktif filtreler", + "archives.archived": "Arşivlendi", + "archives.archivedOn": "{{date}} tarihinde arşivlendi", + "archives.archivedProjects": "Arşivlenen projeler", + "archives.documentTitle": "Arşiv", + "archives.empty": "Arşivlenmiş iş öğesi yok", + "archives.emptyHint": "Bir iş öğesini menüsünden arşivleyin, burada görünecek.", + "archives.loadError": "Arşivlenen iş öğeleri yüklenemedi.", + "archives.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Arşiv verileriniz değiştirilmedi.", + "archives.loadErrorTitle": "Arşiv yüklenemedi", + "archives.loading": "Arşiv yükleniyor…", + "archives.loadMoreError": "Daha fazla arşivlenmiş iş öğesi yüklenemedi.", + "archives.noArchivedProjects": "Arşivlenmiş proje yok", + "archives.noArchivedProjectsHint": "Arşivlenen projeler geri yüklenene kadar burada görünür.", + "archives.noMatches": "Geçerli arama veya filtrelerle eşleşen arşiv yok.", + "archives.noMatchesTitle": "Arşiv bulunamadı", + "archives.noMatchesYet": "Yüklenen arşivlerde bu görünümle eşleşen sonuç yok. Aramaya devam etmek için daha fazla yükleyin.", + "archives.noMatchesYetTitle": "Henüz eşleşme yok", + "archives.pageDescription": "Çalışma alanınızdaki arşivlenmiş iş öğelerini ve projeleri inceleyin ve geri yükleyin.", + "archives.projectsTableCaption": "Arşivlenen projeler, arşiv tarihleri ve geri yükleme işlemleri", + "archives.projectsTableLabel": "Arşivlenen projeler tablosu", + "archives.restoreItemError": "Bu iş öğesi geri yüklenemedi.", + "archives.restoreProject": "{{project}} projesini geri yükle", + "archives.restoreProjectError": "Bu proje geri yüklenemedi.", + "archives.restoreWorkItem": "{{item}} öğesini geri yükle", + "archives.restoring": "Geri yükleniyor…", + "archives.scope": "Arşiv türü", + "archives.searchPlaceholder": "Arşivde ara", + "archives.subtitle": "Bu çalışma alanındaki arşivlenmiş iş öğeleri. Birini geri yükleyerek projesine geri döndürün.", + "archives.summary": "İş öğeleri {{workItems}} · Projeler {{projects}}", + "archives.title": "Arşiv", + "archives.toolbar": "Arşiv kontrolleri", + "archives.visibleProjectCount_one": "{{count}} arşivlenmiş proje görünüyor", + "archives.visibleProjectCount_other": "{{count}} arşivlenmiş proje görünüyor", + "archives.visibleWorkItemCount_one": "{{count}} arşivlenmiş iş öğesi görünüyor", + "archives.visibleWorkItemCount_other": "{{count}} arşivlenmiş iş öğesi görünüyor", + "archives.workItemsTableCaption": "Arşivlenen iş öğeleri, projeleri, arşiv tarihleri ve geri yükleme işlemleri", + "archives.workItemsTableLabel": "Arşivlenen iş öğeleri tablosu", + "auth.copyright": "© {{year}} Devlane. Tüm hakları saklıdır.", + "auth.forgotPassword.backToSignIn": "Girişe dön", + "auth.forgotPassword.documentTitle": "Parolamı unuttum", + "auth.forgotPassword.resendIn_one": "{{count}} sn sonra tekrar gönder", + "auth.forgotPassword.resendIn_other": "{{count}} sn sonra tekrar gönder", + "auth.forgotPassword.resendResetLink": "Sıfırlama bağlantısını tekrar gönder", + "auth.forgotPassword.sending": "Gönderiliyor…", + "auth.forgotPassword.sendResetLink": "Sıfırlama bağlantısı gönder", + "auth.forgotPassword.subtitle": "E-postanızı girin, parolanızı sıfırlamanız için size bir bağlantı gönderelim.", + "auth.forgotPassword.successMessage": "{{email}} kayıtlıysa kısa süre içinde bir sıfırlama bağlantısı alacaksınız. Gelen kutunuzu ve spam klasörünüzü kontrol edin.", + "auth.forgotPassword.title": "Parolanızı sıfırlayın", + "auth.hero.description": "Geliştirme ekipleri için iş takibi ve proje yönetimi. İşi projelere, döngülere ve modüllere ayırın; herkesi aynı sayfada tutun.", + "auth.hero.title1": "İşi planlayın.", + "auth.hero.title2": "Ürünü teslim edin.", + "auth.inviteAccept.accept": "Kabul et", + "auth.inviteAccept.clearEmail": "E-postayı temizle", + "auth.inviteAccept.declineFailed": "Reddedilemedi. Lütfen tekrar deneyin.", + "auth.inviteAccept.description": "Çalışma alanı, Devlane hesabınızda projeler oluşturduğunuz, iş öğeleri üzerinde iş birliği yaptığınız ve farklı iş akışlarını düzenlediğiniz yerdir.", + "auth.inviteAccept.documentTitle": "Daveti kabul et", + "auth.inviteAccept.haveAccount": "Zaten hesabınız var mı?", + "auth.inviteAccept.ignore": "Yoksay", + "auth.inviteAccept.invitedTitle": "{{workspaceName}} çalışma alanına davet edildiniz", + "auth.inviteAccept.joinFailed": "Çalışma alanına katılınamadı. Lütfen tekrar deneyin.", + "auth.inviteAccept.joinSubtitle": "Ekibinizle işleri yönetmeye başlamak için giriş yapın.", + "auth.inviteAccept.legal": "Giriş yaparak <2>Hizmet Şartları ve <6>Gizlilik Politikası belgelerimizi okuduğunuzu ve kabul ettiğinizi beyan edersiniz.", + "auth.inviteAccept.notFound": "Davet bulunamadı veya süresi dolmuş.", + "auth.inviteSignUp.confirmPasswordPlaceholder": "Parolayı doğrula", + "auth.inviteSignUp.defaultWorkspace": "çalışma alanı", + "auth.inviteSignUp.documentTitle": "Kayıt ol", + "auth.inviteSignUp.haveAccount": "Zaten hesabınız var mı?", + "auth.inviteSignUp.passwordPlaceholder": "Bir parola oluşturun", + "auth.inviteSignUp.reqLower": "Bir küçük harf", + "auth.inviteSignUp.reqMinLength": "En az 8 karakter", + "auth.inviteSignUp.reqNumber": "En az 1 rakam", + "auth.inviteSignUp.reqSpecial": "En az 1 özel karakter", + "auth.inviteSignUp.requirementsError": "Lütfen tüm parola gereksinimlerini karşılayın.", + "auth.inviteSignUp.reqUpper": "Bir büyük harf", + "auth.inviteSignUp.subtitle": "Hesabınızı oluşturmak ve çalışma alanına katılmak için bir parola belirleyin.", + "auth.login.codeLabel": "6 haneli kod", + "auth.login.codeLengthError": "E-postanızdaki 6 haneli kodu girin.", + "auth.login.continueWithEmail": "E-posta ile devam et", + "auth.login.continueWithGithub": "GitHub ile devam et", + "auth.login.continueWithGitlab": "GitLab ile devam et", + "auth.login.continueWithGoogle": "Google ile devam et", + "auth.login.documentTitle": "Giriş yap", + "auth.login.emailLabel": "E-posta", + "auth.login.emailPlaceholder": "ad@sirket.com", + "auth.login.forgotPassword": "Parolanızı mı unuttunuz?", + "auth.login.heroDescription": "Geliştirme ekipleri için iş takibi ve proje yönetimi. İşi projelere, döngülere ve modüllere ayırın; herkesi aynı sayfada tutun.", + "auth.login.heroTitle1": "İşi planlayın.", + "auth.login.heroTitle2": "Ürünü teslim edin.", + "auth.login.invalidCode": "Kod geçersiz veya süresi dolmuş.", + "auth.login.magicHint": "Devam ettikten sonra parolanızı kullanabilir veya tek kullanımlık e-posta kodunu seçebilirsiniz.", + "auth.login.noAccount": "Hesabınız yok mu? ", + "auth.login.passwordLabel": "Parola", + "auth.login.passwordPlaceholder": "Parolayı girin", + "auth.login.resendCode": "Kodu tekrar gönder", + "auth.login.resetSmtpHint": "Parolanızı sıfırlamak için yöneticinizden SMTP'yi yapılandırmasını isteyin.", + "auth.login.sendCodeError": "Giriş kodu gönderilemedi.", + "auth.login.signIn": "Giriş yap", + "auth.login.signingIn": "Giriş yapılıyor…", + "auth.login.subtitleCode": "Gelen kutunuza 6 haneli bir kod gönderdik. 10 dakika içinde geçerliliğini yitirir.", + "auth.login.subtitleEmail": "Devam etmek için e-postanızı girin.", + "auth.login.subtitlePassword": "Giriş yapmak için parolanızı girin.", + "auth.login.titleCode": "E-postanızı kontrol edin", + "auth.login.titleEmail": "Devlane'e başlayın", + "auth.login.titlePassword": "Tekrar hoş geldiniz!", + "auth.login.useMagicCode": "Bunun yerine e-posta koduyla giriş yap", + "auth.login.usePassword": "Bunun yerine parola kullan", + "auth.password.lower": "Küçük harf", + "auth.password.min8": "En az 8 karakter", + "auth.password.mismatch": "Parolalar eşleşmiyor.", + "auth.password.number": "Rakam", + "auth.password.special": "Özel karakter", + "auth.password.strengthError": "Parola güç gereksinimlerini karşılamıyor.", + "auth.password.upper": "Büyük harf", + "auth.resetPassword.confirmNewPassword": "Yeni parolayı doğrula", + "auth.resetPassword.confirmNewPasswordPlaceholder": "Yeni parolayı tekrar girin", + "auth.resetPassword.documentTitle": "Parolayı sıfırla", + "auth.resetPassword.hideConfirmNewPassword": "Yeni parola doğrulamasını gizle", + "auth.resetPassword.hideNewPassword": "Yeni parolayı gizle", + "auth.resetPassword.invalidBody": "Bu parola sıfırlama bağlantısı geçersiz veya süresi dolmuş. Lütfen yenisini isteyin.", + "auth.resetPassword.invalidTitle": "Geçersiz sıfırlama bağlantısı", + "auth.resetPassword.newPassword": "Yeni parola", + "auth.resetPassword.newPasswordPlaceholder": "Yeni parolayı girin", + "auth.resetPassword.rememberPassword": "Parolanızı hatırladınız mı?", + "auth.resetPassword.requestNew": "Yeni sıfırlama bağlantısı iste", + "auth.resetPassword.resetting": "Sıfırlanıyor…", + "auth.resetPassword.showConfirmNewPassword": "Yeni parola doğrulamasını göster", + "auth.resetPassword.showNewPassword": "Yeni parolayı göster", + "auth.resetPassword.submit": "Parolayı sıfırla", + "auth.resetPassword.subtitle": "Hesabınızı güvence altına almak için güçlü bir parola seçin.", + "auth.resetPassword.successBody": "Parolanız başarıyla sıfırlandı. Artık yeni parolanızla giriş yapabilirsiniz.", + "auth.resetPassword.successTitle": "Parola sıfırlandı!", + "auth.resetPassword.title": "Yeni parola belirleyin", + "auth.setPassword.confirmPasswordPlaceholder": "Parolayı tekrar girin", + "auth.setPassword.documentTitle": "Parola belirle", + "auth.setPassword.passwordPlaceholder": "Parolayı girin", + "auth.setPassword.setting": "Parola belirleniyor…", + "auth.setPassword.subtitle": "Yeni bir parola oluşturun.", + "auth.setPassword.title": "Parola belirle", + "auth.signingIn": "giriş yaparak", + "auth.signingUp": "kayıt olarak", + "auth.signUp.codeLabel": "6 haneli kod", + "auth.signUp.codeLengthError": "E-postanızdaki 6 haneli kodu girin.", + "auth.signUp.confirmPasswordPlaceholder": "Parolayı tekrar girin", + "auth.signUp.continueWithEmail": "E-posta ile devam et", + "auth.signUp.disabledBody": "Herkese açık kayıt şu anda devre dışı. Lütfen yöneticinizle iletişime geçin.", + "auth.signUp.disabledTitle": "Kayıt devre dışı", + "auth.signUp.documentTitle": "Kayıt ol", + "auth.signUp.haveAccount": "Zaten hesabınız var mı? ", + "auth.signUp.heroDescription": "Geliştirme ekipleri için iş takibi ve proje yönetimi. İşi projelere, döngülere ve modüllere ayırın; herkesi aynı sayfada tutun.", + "auth.signUp.heroTitle1": "İşi planlayın.", + "auth.signUp.heroTitle2": "Ürünü teslim edin.", + "auth.signUp.invalidCode": "Kod geçersiz veya süresi dolmuş.", + "auth.signUp.inviteOnly": "Kayıt yalnızca davetle yapılır.", + "auth.signUp.passwordPlaceholder": "Parolayı girin", + "auth.signUp.resendCode": "Kodu tekrar gönder", + "auth.signUp.sendCodeError": "Kayıt kodu gönderilemedi.", + "auth.signUp.signUpWithGithub": "GitHub ile kayıt ol", + "auth.signUp.signUpWithGitlab": "GitLab ile kayıt ol", + "auth.signUp.signUpWithGoogle": "Google ile kayıt ol", + "auth.signUp.subtitleCode": "Gelen kutunuza 6 haneli bir kod gönderdik. 10 dakika içinde geçerliliğini yitirir.", + "auth.signUp.subtitleEmail": "Başlamak için e-postanızı girin.", + "auth.signUp.subtitlePassword": "Başlamak için hesabınızı ayarlayın.", + "auth.signUp.title": "Hesabınızı oluşturun", + "auth.signUp.titleCode": "E-postanızı doğrulayın", + "auth.signUp.useMagicCode": "Bunun yerine e-posta koduyla kayıt ol", + "auth.signUp.usePassword": "Bunun yerine parola kullan", + "auth.termsNotice": "{{action}} hizmet şartlarımızı ve gizlilik politikamızı kabul etmiş olursunuz.", + "calendar.nextMonth": "Sonraki ay", + "calendar.previousMonth": "Önceki ay", + "calendar.showWeekends": "Hafta sonlarını göster", + "calendar.undated": "Bitiş tarihi yok", + "commandPalette.accountSettings": "Hesap ayarları", + "commandPalette.accountSettings.match": "profil tercihler bildirimler", + "commandPalette.actions": "İşlemler", + "commandPalette.analytics": "Analitik", + "commandPalette.archives": "Arşiv", + "commandPalette.category.account": "Hesap", + "commandPalette.category.cycles": "Döngüler", + "commandPalette.category.epics": "Epikler", + "commandPalette.category.help": "Yardım", + "commandPalette.category.modules": "Modüller", + "commandPalette.category.navigate": "Git", + "commandPalette.category.pages": "Sayfalar", + "commandPalette.category.project": "Proje", + "commandPalette.category.projects": "Projeler", + "commandPalette.category.thisProject": "Bu proje", + "commandPalette.category.views": "Görünümler", + "commandPalette.category.workItem": "İş öğesi", + "commandPalette.category.workItems": "İş öğeleri", + "commandPalette.category.workspaceSettings": "Çalışma alanı ayarları", + "commandPalette.close": "Komut paletini kapat", + "commandPalette.createIssue": "Yeni iş öğesi oluştur", + "commandPalette.createIssue.match": "yeni iş görev", + "commandPalette.createProject": "Projelere git", + "commandPalette.createProject.match": "yeni proje oluştur liste", + "commandPalette.drafts": "Taslakları aç", + "commandPalette.drafts.match": "taslak", + "commandPalette.emptyHint": "Başka bir anahtar kelime deneyin veya proje kısayollarını görmek için çalışma alanı seviyesini kapatın.", + "commandPalette.help": "Hesap ve tercihler", + "commandPalette.help.match": "yardım kısayollar dokümantasyon destek", + "commandPalette.home": "Ana sayfa", + "commandPalette.inbox": "Gelen kutusu", + "commandPalette.listLabel": "Komutlar", + "commandPalette.noActions": "Eşleşen işlem yok", + "commandPalette.noResults": "Sonuç yok", + "commandPalette.openProject": "“{{name}}” projesini aç", + "commandPalette.openProject.match": "{{name}} proje iş öğeleri", + "commandPalette.pages": "Sayfalar", + "commandPalette.pages.match": "belgeler wiki", + "commandPalette.placeholder": "Bir komut yazın veya arayın...", + "commandPalette.projCycles": "Geçerli projedeki döngüler", + "commandPalette.projIssues": "Geçerli projedeki iş öğeleri", + "commandPalette.projIssues.match": "iş öğeleri liste", + "commandPalette.projModules": "Geçerli projedeki modüller", + "commandPalette.searching": "Aranıyor…", + "commandPalette.settingsMembers": "Üyeler ve davetler", + "commandPalette.settingsMembers.match": "davet ekip", + "commandPalette.settingsWorkspace": "Çalışma alanı ayarları", + "commandPalette.settingsWorkspace.match": "genel üyeler entegrasyonlar", + "commandPalette.signOut": "Çıkış yap", + "commandPalette.signOut.match": "çıkış oturumu kapat", + "commandPalette.title": "Komut paleti", + "commandPalette.viewsAll": "Çalışma alanı görünümlerini aç", + "commandPalette.viewsAll.match": "görünümler tüm iş öğeleri", + "commandPalette.workspaceLevel": "Çalışma alanı seviyesi", + "common.access": "Erişim", + "common.actions": "İşlemler", + "common.add": "Ekle", + "common.adding": "Ekleniyor…", + "common.addToFavorites": "Favorilere ekle", + "common.addView": "Görünüm ekle", + "common.addWorkItem": "İş öğesi ekle", + "common.after": "Sonra", + "common.all": "Tümü", + "common.analytics": "Analitik", + "common.anyTime": "Her zaman", + "common.apply": "Uygula", + "common.archive": "Arşivle", + "common.archived": "Arşivlendi", + "common.ascending": "Artan", + "common.assignees": "Atananlar", + "common.back": "Geri", + "common.backlog": "Backlog", + "common.before": "Önce", + "common.cancel": "İptal", + "common.change": "Değiştir", + "common.checking": "Kontrol ediliyor…", + "common.clear": "Temizle", + "common.clearAll": "Tümünü temizle", + "common.clearFilters": "Filtreleri temizle", + "common.clearSearch": "Aramayı temizle", + "common.clearSelection": "Seçimi temizle", + "common.close": "Kapat", + "common.collapseSidebar": "Kenar çubuğunu daralt", + "common.color": "Renk", + "common.columnId": "ID", + "common.comingSoon": "Yakında", + "common.configure": "Yapılandır", + "common.confirm": "Onayla", + "common.confirmPassword": "Parolayı doğrula", + "common.continue": "Devam et", + "common.copy": "Kopyala", + "common.copyLink": "Bağlantıyı kopyala", + "common.copyLinkError": "Bağlantı kopyalanamadı.", + "common.create": "Oluştur", + "common.createAccount": "Hesap oluştur", + "common.created": "Oluşturuldu", + "common.createdAt": "Oluşturulma zamanı", + "common.createdBy": "Oluşturan", + "common.createdDate": "Oluşturulma tarihi", + "common.createdDateRange": "Oluşturulma tarih aralığı", + "common.creating": "Oluşturuluyor…", + "common.creatingAccount": "Hesap oluşturuluyor…", + "common.custom": "Özel", + "common.customRange": "Özel aralık", + "common.cycle": "Döngü", + "common.cycles": "Döngüler", + "common.datePreset.oneMonthAgo": "1 ay önce", + "common.datePreset.oneMonthFromNow": "1 ay sonra", + "common.datePreset.oneWeekAgo": "1 hafta önce", + "common.datePreset.oneWeekFromNow": "1 hafta sonra", + "common.datePreset.twoMonthsFromNow": "2 ay sonra", + "common.datePreset.twoWeeksAgo": "2 hafta önce", + "common.datePreset.twoWeeksFromNow": "2 hafta sonra", + "common.dateRangePlaceholder": "Başlangıç tarihi → Bitiş tarihi", + "common.delete": "Sil", + "common.deleting": "Siliniyor…", + "common.descending": "Azalan", + "common.description": "Açıklama", + "common.discard": "Vazgeç", + "common.display": "Görünüm", + "common.done": "Tamamlandı", + "common.due": "Bitiş", + "common.dueDate": "Bitiş tarihi", + "common.dueDateRange": "Bitiş tarihi aralığı", + "common.duplicate": "Çoğalt", + "common.edit": "Düzenle", + "common.email": "E-posta", + "common.emailPlaceholder": "siz@ornek.com", + "common.epics": "Epikler", + "common.expandSidebar": "Kenar çubuğunu genişlet", + "common.favorite": "Favori", + "common.favorites": "Favoriler", + "common.filters": "Filtreler", + "common.firstName": "Ad", + "common.genericError": "Bir şeyler ters gitti. Lütfen tekrar deneyin.", + "common.goBack": "Geri dön", + "common.goHome": "Ana sayfaya git", + "common.goToHome": "Ana sayfaya git", + "common.goToSignIn": "Giriş sayfasına git", + "common.help": "Yardım", + "common.hideConfirmPassword": "Parola doğrulamasını gizle", + "common.hidePassword": "Parolayı gizle", + "common.intake": "Talepler", + "common.join": "Katıl", + "common.justNow": "az önce", + "common.labels": "Etiketler", + "common.last30Days": "Son 30 gün", + "common.last7Days": "Son 7 gün", + "common.lastName": "Soyad", + "common.layout.board": "Pano", + "common.layout.calendar": "Takvim", + "common.layout.calendarComingSoon": "Takvim (yakında)", + "common.layout.list": "Liste", + "common.layout.listView": "Liste görünümü", + "common.layout.spreadsheet": "Tablo", + "common.layout.spreadsheetComingSoon": "Tablo (yakında)", + "common.layout.timeline": "Zaman çizelgesi", + "common.layout.timelineComingSoon": "Zaman çizelgesi (yakında)", + "common.lead": "Sorumlu", + "common.linkCopied": "Bağlantı kopyalandı", + "common.loading": "Yükleniyor…", + "common.loadMore": "Daha fazla yükle", + "common.logOut": "Çıkış yap", + "common.manual": "Manuel", + "common.member": "Üye", + "common.members": "Üyeler", + "common.module": "Modül", + "common.modules": "Modüller", + "common.more": "Daha fazla", + "common.moreCount_one": "{{count}} tane daha", + "common.moreCount_other": "{{count}} tane daha", + "common.moreOptions": "Diğer seçenekler", + "common.move": "Taşı", + "common.name": "Ad", + "common.new": "Yeni", + "common.noMatchesFound": "Eşleşme bulunamadı", + "common.none": "Yok", + "common.noPriority": "Öncelik yok", + "common.noResults": "Sonuç yok", + "common.noState": "Durum yok", + "common.noWorkItems": "İş öğesi yok", + "common.open": "Aç", + "common.openInNewTab": "Yeni sekmede aç", + "common.optional": "İsteğe bağlı", + "common.or": "veya", + "common.overview": "Genel bakış", + "common.pages": "Sayfalar", + "common.password": "Parola", + "common.passwordsDoNotMatchInline": "Parolalar eşleşmiyor", + "common.passwordsMatch": "Parolalar eşleşiyor", + "common.priority": "Öncelik", + "common.priorityHigh": "Yüksek", + "common.priorityLow": "Düşük", + "common.priorityMedium": "Orta", + "common.priorityUrgent": "Acil", + "common.private": "Özel", + "common.progress": "İlerleme", + "common.project": "Proje", + "common.projectLead": "Proje sorumlusu", + "common.projectNotFound": "Proje bulunamadı.", + "common.projects": "Projeler", + "common.public": "Herkese açık", + "common.refresh": "Yenile", + "common.remove": "Kaldır", + "common.removeFilter": "{{filter}} filtresini kaldır", + "common.removeFromFavorites": "Favorilerden kaldır", + "common.required": "Zorunlu", + "common.reset": "Sıfırla", + "common.restore": "Geri yükle", + "common.retry": "Tekrar dene", + "common.save": "Kaydet", + "common.saveChanges": "Değişiklikleri kaydet", + "common.saving": "Kaydediliyor…", + "common.search": "Ara", + "common.searchEllipsis": "Ara...", + "common.select": "Seç", + "common.selected": "Seçili", + "common.selectProject": "Proje seç", + "common.send": "Gönder", + "common.showConfirmPassword": "Parola doğrulamasını göster", + "common.showLess": "Daha az göster", + "common.showPassword": "Parolayı göster", + "common.signIn": "Giriş yap", + "common.signUp": "Kayıt ol", + "common.someone": "birisi", + "common.sortBy": "Sıralama ölçütü", + "common.start": "Başla", + "common.startDate": "Başlangıç tarihi", + "common.startDateRange": "Başlangıç tarihi aralığı", + "common.state": "Durum", + "common.status": "Durum", + "common.subWorkItems": "Alt iş öğeleri", + "common.thisProject": "bu proje", + "common.time.daysAgo_one": "{{count}} gün önce", + "common.time.daysAgo_other": "{{count}} gün önce", + "common.time.hoursAgo_one": "{{count}} saat önce", + "common.time.hoursAgo_other": "{{count}} saat önce", + "common.time.justNow": "az önce", + "common.time.minutesAgo_one": "{{count}} dakika önce", + "common.time.minutesAgo_other": "{{count}} dakika önce", + "common.title": "Başlık", + "common.titleRequired": "Başlık zorunludur.", + "common.today": "Bugün", + "common.total": "Toplam", + "common.unarchive": "Arşivden çıkar", + "common.unassigned": "Atanmamış", + "common.undo": "Geri al", + "common.unknown": "Bilinmiyor", + "common.untitled": "Başlıksız", + "common.updated": "Güncellendi", + "common.updatedAt": "Güncellenme zamanı", + "common.updating": "Güncelleniyor…", + "common.user": "Kullanıcı", + "common.verifying": "Doğrulanıyor…", + "common.view": "Görünüm", + "common.viewAll": "Tümünü gör", + "common.viewLess": "Daha az gör", + "common.views": "Görünümler", + "common.workItem": "İş öğesi", + "common.workItems": "İş öğeleri", + "common.workspaceNotFound": "Çalışma alanı bulunamadı.", + "common.you": "Siz", + "common.zoomIn": "Yakınlaştır", + "common.zoomOut": "Uzaklaştır", + "cycle.backToCycles": "Döngülere dön", + "cycle.burndown": "Burndown", + "cycle.completeCycle": "Döngüyü tamamla", + "cycle.completed": "Tamamlandı", + "cycle.completeError": "Döngü tamamlanamadı. Lütfen tekrar deneyin.", + "cycle.completeModalBody": "{{name}} döngüsünü tamamlamak ilerlemesini kaydeder. İsterseniz tamamlanmamış iş öğelerini başka bir döngüye taşıyın.", + "cycle.completing": "Tamamlanıyor…", + "cycle.create.error": "Döngü oluşturulamadı.", + "cycle.create.submit": "Döngü oluştur", + "cycle.create.title": "Döngü oluştur", + "cycle.dateRangeTitle": "Döngü tarih aralığı", + "cycle.layoutBoard": "Pano", + "cycle.layoutCalendar": "Takvim", + "cycle.layoutList": "Liste", + "cycle.layoutSpreadsheet": "Tablo", + "cycle.layoutTimeline": "Zaman çizelgesi", + "cycle.legendBacklog": "Backlog", + "cycle.legendCancelled": "İptal edildi", + "cycle.legendCompleted": "Tamamlandı", + "cycle.legendStarted": "Başlatıldı", + "cycle.legendUnstarted": "Başlatılmadı", + "cycle.loading": "Döngü yükleniyor…", + "cycle.notFound": "Döngü bulunamadı.", + "cycle.noWorkItems": "Bu döngüde iş öğesi yok.", + "cycle.overallProgress": "Genel ilerleme", + "cycle.overlapWarningOne": "Bu tarihler {{names}} döngüsüyle çakışıyor.", + "cycle.overlapWarningOther": "Bu tarihler {{names}} döngüleriyle çakışıyor.", + "cycle.statBacklog_one": "◻ Backlog: {{count}}", + "cycle.statBacklog_other": "◻ Backlog: {{count}}", + "cycle.statCancelled_one": "⊘ İptal edildi: {{count}}", + "cycle.statCancelled_other": "⊘ İptal edildi: {{count}}", + "cycle.statCompleted_one": "✓ Tamamlandı: {{count}}", + "cycle.statCompleted_other": "✓ Tamamlandı: {{count}}", + "cycle.statStarted_one": "▷ Başlatıldı: {{count}}", + "cycle.statStarted_other": "▷ Başlatıldı: {{count}}", + "cycle.statUnstarted_one": "○ Başlatılmadı: {{count}}", + "cycle.statUnstarted_other": "○ Başlatılmadı: {{count}}", + "cycle.title": "Döngü", + "cycle.transferLabel": "Tamamlanmamış iş öğelerini şuraya aktar", + "cycle.transferNone": "Aktarma (burada kalsınlar)", + "cycle.update.error": "Döngü güncellenemedi.", + "cycle.update.title": "Döngüyü düzenle", + "cycle.workItems": "İş öğeleri", + "cycle.workItemsCount_one": "{{count}} iş öğesi", + "cycle.workItemsCount_other": "{{count}} iş öğesi", + "cycles.active": "Aktif", + "cycles.activeCycle": "Aktif döngü", + "cycles.activeCycles": "Aktif döngüler", + "cycles.alsoInProgress": "Ayrıca devam edenler:", + "cycles.burndown.empty": "Burndown grafiğini görmek için döngüye iş öğesi ekleyin.", + "cycles.burndown.needDates": "Burndown'ı görmek için döngüye başlangıç ve bitiş tarihi ekleyin.", + "cycles.burndown.pending_one": "Bekleyen iş öğeleri - {{count}}", + "cycles.burndown.pending_other": "Bekleyen iş öğeleri - {{count}}", + "cycles.burndown.title": "İş öğesi burndown", + "cycles.completed": "Tamamlandı", + "cycles.completedCycle_one": "Tamamlanan döngü {{count}}", + "cycles.completedCycle_other": "Tamamlanan döngü {{count}}", + "cycles.confirmDeleteDescription": "Döngü kaldırılır. İş öğeleri projede kalır.", + "cycles.confirmDeleteTitle": "{{cycle}} silinsin mi?", + "cycles.cycleFallbackName": "Döngü", + "cycles.cycleMenu": "{{cycle}} işlemleri", + "cycles.deleteCannotUndo": "Bu işlem geri alınamaz.", + "cycles.deleteConfirmTitle": "\"{{name}}\" silinsin mi?", + "cycles.deleteError": "Bu döngü silinemedi.", + "cycles.deleteSuccess": "Döngü silindi", + "cycles.documentTitle": "Döngüler", + "cycles.draft": "Taslak", + "cycles.empty": "Henüz döngü yok", + "cycles.emptyDescription": "Döngüler işleri zaman kutulu pencerelere gruplar; böylece ekip neyin ne zaman teslim edileceğini görür.", + "cycles.loadError": "Döngüler yüklenemedi.", + "cycles.loading": "Döngüler yükleniyor…", + "cycles.moreDetails": "Daha fazla ayrıntı", + "cycles.noActive": "Şu anda çalışan bir döngü yok.", + "cycles.noCompleted": "Tamamlanmış döngü yok.", + "cycles.noDates": "Tarih yok", + "cycles.noLabel": "Etiket yok", + "cycles.noLabels": "Etiket yok", + "cycles.noMatches": "Geçerli arama ve filtrelerle eşleşen döngü yok.", + "cycles.noOwner": "Sorumlu yok", + "cycles.noUpcoming": "Yaklaşan döngü yok.", + "cycles.onlyCompletedArchivable": "Yalnızca tamamlanmış döngüler arşivlenebilir.", + "cycles.pageDescription": "{{project}} için zaman kutulu teslim pencereleri.", + "cycles.percentClosed": "%{{percent}} kapatıldı", + "cycles.percentOf": "{{total}} öğenin %{{percent}} kadarı", + "cycles.progress.backlog_one": "Backlog {{count}} iş öğesi", + "cycles.progress.backlog_other": "Backlog {{count}} iş öğesi", + "cycles.progress.completed_one": "Tamamlandı {{count}} iş öğesi", + "cycles.progress.completed_other": "Tamamlandı {{count}} iş öğesi", + "cycles.progress.empty": "İlerlemeyi görmek için döngüye iş öğesi ekleyin", + "cycles.progress.started_one": "Başlatıldı {{count}} iş öğesi", + "cycles.progress.started_other": "Başlatıldı {{count}} iş öğesi", + "cycles.progress.title": "İlerleme", + "cycles.progress.workItemClosed": "{{completed}}/{{total}} iş öğesi kapatıldı", + "cycles.searchPlaceholder": "Döngülerde ara", + "cycles.summary": "{{total}} döngüden {{visible}} tanesi", + "cycles.tabs.assignees": "Atananlar", + "cycles.tabs.assigneesEmpty": "Bu döngüde atanan kişi yok.", + "cycles.tabs.labels": "Etiketler", + "cycles.tabs.labelsEmpty": "Bu döngüde etiket yok.", + "cycles.tabs.priority": "Öncelikli iş öğeleri", + "cycles.tabs.priorityEmpty": "Öncelik dağılımını görmek için iş öğesi ekleyin.", + "cycles.toolbar": "Döngü kontrolleri", + "cycles.unassigned": "Atanmamış", + "cycles.unknownLabel": "Bilinmiyor", + "cycles.upcoming": "Yaklaşan", + "cycles.upcomingCycle_one": "Yaklaşan döngü {{count}}", + "cycles.upcomingCycle_other": "Yaklaşan döngü {{count}}", + "cycles.updateSuccess": "Döngü güncellendi", + "cycles.workItemCount_one": "{{count}} iş öğesi", + "cycles.workItemCount_other": "{{count}} iş öğesi", + "display.display": "Görünüm", + "display.displayProperties": "Görüntüleme özellikleri", + "display.groupAssignees": "Atananlar", + "display.groupBy": "Gruplama ölçütü", + "display.groupCreatedBy": "Oluşturan", + "display.groupCycle": "Döngü", + "display.groupLabels": "Etiketler", + "display.groupModule": "Modül", + "display.groupNone": "Yok", + "display.groupPriority": "Öncelik", + "display.groupStates": "Durumlar", + "display.orderBy": "Sıralama ölçütü", + "display.orderDueDate": "Bitiş tarihi", + "display.orderLastCreated": "Son oluşturulan", + "display.orderLastUpdated": "Son güncellenen", + "display.orderManual": "Manuel", + "display.orderPriority": "Öncelik", + "display.orderStartDate": "Başlangıç tarihi", + "display.property.assignee": "Atanan", + "display.property.attachment_count": "Ek sayısı", + "display.property.cycle": "Döngü", + "display.property.due_date": "Bitiş tarihi", + "display.property.estimate": "Tahmin", + "display.property.id": "ID", + "display.property.labels": "Etiketler", + "display.property.link": "Bağlantı", + "display.property.module": "Modül", + "display.property.priority": "Öncelik", + "display.property.start_date": "Başlangıç tarihi", + "display.property.state": "Durum", + "display.property.sub_work_count": "Alt iş öğesi sayısı", + "display.showEmptyGroups": "Boş grupları göster", + "display.showSubWorkItems": "Alt iş öğelerini göster", + "display.subGroupBy": "Alt gruplama ölçütü", + "drafts.activeFilters": "Aktif filtreler", + "drafts.backlog": "Backlog", + "drafts.copySuffix": "{{name}} (kopya)", + "drafts.createLabelNamed": "\"{{name}}\" etiketini oluştur", + "drafts.createProject": "Proje oluştur", + "drafts.deleteConfirm": "“{{name}}” taslağı silinsin mi?", + "drafts.deleteError": "Taslak silinemedi.", + "drafts.documentTitle": "Taslaklar", + "drafts.draftWorkItem": "İş öğesi taslağı oluştur", + "drafts.dueDate": "Bitiş tarihi", + "drafts.dueDateTitle": "Bitiş tarihi {{date}}", + "drafts.empty": "Taslak iş öğesi yok", + "drafts.emptyHint": "Fikirleri taslak olarak kaydedin, hazır olduğunuzda bir projeye yayımlayın.", + "drafts.failedToCreateLabel": "Etiket oluşturulamadı.", + "drafts.labelsTitle": "Etiketler {{label}}", + "drafts.loadError": "Taslaklar yüklenemedi.", + "drafts.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Taslak verileriniz değiştirilmedi.", + "drafts.loadingDrafts": "Taslaklar yükleniyor…", + "drafts.loadingPage": "Taslaklar sayfası yükleniyor", + "drafts.loadWorkspaceError": "Çalışma alanı yüklenemedi.", + "drafts.loadWorkspaceErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Taslak verileriniz değiştirilmedi.", + "drafts.makeCopy": "Kopyasını oluştur", + "drafts.moduleCount_one": "{{count}} modül", + "drafts.moduleCount_other": "{{count}} modül", + "drafts.moveToIssues": "İş öğelerine taşı", + "drafts.noCycle": "Döngü yok", + "drafts.noMatches": "Geçerli arama veya filtrelerle eşleşen taslak yok.", + "drafts.noMatchesTitle": "Taslak bulunamadı", + "drafts.noModule": "Modül yok", + "drafts.noProjects": "Henüz proje yok", + "drafts.noProjectsHint": "Taslak iş öğesi ekleyebilmek için bu çalışma alanında bir proje oluşturun.", + "drafts.noStates": "Durum yok", + "drafts.oneModule": "1 modül", + "drafts.openDraft": "{{name}} taslağını aç", + "drafts.pageDescription": "İşi projelerinize yayımlamadan önce kaydedin ve olgunlaştırın.", + "drafts.pressEnterToCreateLabel": "Etiket oluşturmak için Enter'a basın", + "drafts.priority": "Öncelik", + "drafts.priorityTitle": "Öncelik {{priority}}", + "drafts.publishError": "Taslak yayımlanamadı.", + "drafts.rowActions": "Taslak işlemleri", + "drafts.saveDraft": "Taslağı kaydet", + "drafts.saveFailed": "Taslak kaydedilemedi.", + "drafts.searchPlaceholder": "Taslaklarda ara", + "drafts.startDate": "Başlangıç tarihi", + "drafts.startDateTitle": "Başlangıç tarihi {{date}}", + "drafts.summary": "{{drafts}} gösteriliyor · {{projects}} proje", + "drafts.tableCaption": "Çalışma alanı taslak iş öğeleri ve düzenlenebilir planlama özellikleri", + "drafts.tableLabel": "Taslak iş öğeleri tablosu", + "drafts.toolbar": "Taslak kontrolleri", + "drafts.typeToAddLabel": "Yeni etiket eklemek için yazın", + "drafts.unassigned": "Atanmamış", + "drafts.updateCycleError": "Döngü güncellenemedi.", + "drafts.updateError": "Taslak güncellenemedi.", + "drafts.updateModuleError": "Modül güncellenemedi.", + "drafts.visibleCount": "{{count}} taslak görünüyor", + "drafts.visibleCount_one": "{{count}} taslak görünüyor", + "drafts.visibleCount_other": "{{count}} taslak görünüyor", + "drafts.workspaceNotFound": "Çalışma alanı bulunamadı.", + "editor.background": "Arka plan", + "editor.clearBackground": "Arka planı temizle", + "editor.clearTextColor": "Metin rengini temizle", + "editor.color": "Renk", + "editor.iconPicker.title": "Bir simge seçin", + "editor.mention.noMembers": "Üye bulunamadı", + "editor.outline.empty": "Sayfaya eklediğiniz başlıklar burada görünür.", + "editor.slash.imagePrompt": "Görsel URL'si", + "editor.slash.noMatch": "Eşleşen blok yok", + "editor.textColor": "Metin rengi", + "editor.toolbar.imageUrlPrompt": "Görsel URL'si", + "editor.typography.heading": "Başlık {{level}}", + "editor.typography.text": "Metin", + "editor.typography.textStyle": "Metin stili", + "epic.addIssue": "İş öğesi ekle", + "epic.addIssueError": "İş öğesi eklenemedi.", + "epic.addLinkError": "Bağlantı eklenemedi.", + "epic.backToEpics": "Epiklere dön", + "epic.colWorkItem": "İş öğesi", + "epic.convertConfirm": "Bu epik tekrar iş öğesine dönüştürülsün mü?", + "epic.convertError": "İş öğesine dönüştürülemedi.", + "epic.convertToWorkItem": "İş öğesine dönüştür", + "epic.links": "Bağlantılar", + "epic.linkTitlePlaceholder": "Başlık (isteğe bağlı)", + "epic.loading": "Epik yükleniyor…", + "epic.noLinks": "Henüz bağlantı yok.", + "epic.noMatchingIssues": "Eşleşen iş öğesi yok.", + "epic.noPriority": "öncelik yok", + "epic.notFound": "Epik bulunamadı.", + "epic.noWorkItems": "Henüz iş öğesi yok.", + "epic.removeFromEpic": "Epikten kaldır", + "epic.removeIssueError": "İş öğesi epikten kaldırılamadı.", + "epic.removeNamedFromEpic": "{{name}} öğesini epikten kaldır", + "epic.searchIssues": "İş öğelerinde ara…", + "epic.title": "Epik", + "epic.workItemsCount_one": "İş öğeleri ({{count}})", + "epic.workItemsCount_other": "İş öğeleri ({{count}})", + "epics.createFailed": "Epik oluşturulamadı.", + "epics.documentTitle": "Epikler", + "epics.empty": "Henüz epik yok. İlgili işleri gruplamak için bir tane oluşturun.", + "epics.emptyDescription": "Epikler ilgili iş öğelerini gruplar; böylece uzun soluklu bir çalışma tek parça olarak izlenebilir.", + "epics.emptyTitle": "Henüz epik yok", + "epics.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Epikleriniz değiştirilmedi.", + "epics.loadErrorTitle": "Epikler yüklenemedi", + "epics.loading": "Epikler yükleniyor…", + "epics.namePlaceholder": "Epik adı", + "epics.newEpic": "Yeni epik", + "epics.noMatches": "Geçerli aramayla eşleşen epik yok.", + "epics.noMatchesTitle": "Epik bulunamadı", + "epics.noPriority": "öncelik yok", + "epics.open": "Aç", + "epics.pageDescription": "{{project}} içindeki işleri gruplayan uzun soluklu çalışmalar.", + "epics.searchPlaceholder": "Epiklerde ara", + "epics.summary": "{{total}} epikten {{visible}} tanesi", + "epics.tableCaption": "Bu projedeki epikler; durum, öncelik, ilerleme ve bitiş tarihiyle.", + "epics.tableLabel": "Epikler tablosu", + "epics.title": "Epikler", + "epics.toolbar": "Epik kontrolleri", + "epics.visibleCount": "{{count}} epik görünüyor", + "epics.visibleCount_one": "{{count}} epik görünüyor", + "epics.visibleCount_other": "{{count}} epik görünüyor", + "filters.activeWorkItems": "Aktif iş öğeleri", + "filters.allWorkItems": "Tüm iş öğeleri", + "filters.assignee": "Atanan", + "filters.backlogWorkItems": "Backlog iş öğeleri", + "filters.createdBy": "Oluşturan", + "filters.custom": "Özel", + "filters.cycle": "Döngü", + "filters.datePreset1Month": "1 ay sonra", + "filters.datePreset1Week": "1 hafta sonra", + "filters.datePreset2Months": "2 ay sonra", + "filters.datePreset2Weeks": "2 hafta sonra", + "filters.dueDate": "Bitiş tarihi", + "filters.dueDateRange": "Bitiş tarihi aralığı", + "filters.dueOverdue": "Gecikmiş", + "filters.dueThisWeek": "Bu hafta biten", + "filters.favorites": "Favoriler", + "filters.label": "Etiket", + "filters.lead": "Sorumlu", + "filters.members": "Üyeler", + "filters.mention": "Bahsedilme", + "filters.noDueDate": "Bitiş tarihi yok", + "filters.noLabelsInWorkspace": "Çalışma alanında etiket yok. Etikete göre filtrelemek için bir projede etiket ekleyin.", + "filters.priority": "Öncelik", + "filters.project": "Proje", + "filters.startDate": "Başlangıç tarihi", + "filters.startDateRange": "Başlangıç tarihi aralığı", + "filters.state": "Durum", + "filters.status": "Durum", + "filters.workItemGrouping": "İş öğesi gruplaması", + "gantt.dragEnd": "Bitiş tarihini değiştir", + "gantt.dragStart": "Başlangıç tarihini değiştir", + "gantt.scheduledCount_one": "{{count}} planlanmış iş öğesi", + "gantt.scheduledCount_other": "{{count}} planlanmış iş öğesi", + "gantt.unscheduled": "Başlangıç veya bitiş tarihi eksik", + "gantt.zoomIn": "Yakınlaştır", + "gantt.zoomOut": "Uzaklaştır", + "header.allProjects": "Tüm projeler", + "header.analytics": "Analitik", + "header.cycles.addCycle": "Döngü ekle", + "header.cycles.searchCycles": "Döngülerde ara", + "header.cycles.status.completed": "Tamamlandı", + "header.cycles.status.draft": "Taslak", + "header.cycles.status.inProgress": "Devam ediyor", + "header.cycles.status.yetToStart": "Henüz başlamadı", + "header.cycles.statusTitle": "Döngü durumu", + "header.display": "Görünüm", + "header.display.groupBy.assignees": "Atananlar", + "header.display.groupBy.createdBy": "Oluşturan", + "header.display.groupBy.cycle": "Döngü", + "header.display.groupBy.labels": "Etiketler", + "header.display.groupBy.module": "Modül", + "header.display.groupBy.priority": "Öncelik", + "header.display.groupBy.states": "Durumlar", + "header.display.groupByTitle": "Gruplama ölçütü", + "header.display.orderBy.lastCreated": "Son oluşturulan", + "header.display.orderBy.lastUpdated": "Son güncellenen", + "header.display.orderBy.priority": "Öncelik", + "header.display.orderByTitle": "Sıralama ölçütü", + "header.display.orderDirection": "Sıralama yönü", + "header.display.properties": "Görüntüleme özellikleri", + "header.display.showSubWorkItems": "Alt iş öğelerini göster", + "header.drafts": "Taslaklar", + "header.draftWorkItem": "İş öğesi taslağı oluştur", + "header.filters": "Filtreler", + "header.filtersWithCount_one": "Filtreler ({{count}})", + "header.filtersWithCount_other": "Filtreler ({{count}})", + "header.home": "Ana sayfa", + "header.inbox.markAsRead": "Okundu olarak işaretle", + "header.inbox.title": "Gelen kutusu", + "header.manageWidgets": "Bileşenleri yönet", + "header.module.addExistingWorkItem": "Mevcut bir iş öğesi ekle", + "header.module.allModules": "Tüm modüller", + "header.module.workItemsBadge": "Bu modüldeki iş öğeleri", + "header.modules.addModule": "Modül ekle", + "header.modules.galleryLayout": "Galeri düzeni", + "header.modules.listLayout": "Liste düzeni", + "header.modules.numberOfWorkItems": "İş öğesi sayısı", + "header.modules.searchModules": "Modüllerde ara", + "header.modules.timelineLayout": "Zaman çizelgesi düzeni", + "header.pages": "Sayfalar", + "header.pages.addPage": "Sayfa ekle", + "header.projects.access": "Erişim", + "header.projects.addProject": "Proje ekle", + "header.projects.filterProjects": "Projeleri filtrele", + "header.projects.lead": "Sorumlu", + "header.projects.memberCount": "Üye sayısı", + "header.projects.members": "Üyeler", + "header.projects.myProjects": "Projelerim", + "header.projects.searchFilters": "Proje filtrelerinde ara", + "header.projects.searchPlaceholder": "Projelerde ara", + "header.projects.sortProjects": "Projeleri sırala", + "header.projects.title": "Projeler", + "header.savedView.saveFilters": "Filtreleri kaydet", + "header.section.cycles": "Döngüler", + "header.section.issues": "İş öğeleri", + "header.section.modules": "Modüller", + "header.section.pages": "Sayfalar", + "header.section.views": "Görünümler", + "header.selectProject": "Proje seç", + "header.settings": "Ayarlar", + "header.starOnGitHub": "GitHub'da yıldız verin", + "header.views.clearCreatedDate": "Oluşturulma tarihini temizle", + "header.views.default.allWorkItems": "Tüm iş öğeleri", + "header.views.default.assigned": "Atanan", + "header.views.default.created": "Oluşturulan", + "header.views.default.subscribed": "Takip edilen", + "header.views.searchViews": "Görünümlerde ara", + "header.yourWork": "İşleriniz", + "home.addQuicklink": "Hızlı bağlantı ekle", + "home.addSticky": "Not ekle", + "home.documentTitle": "Ana sayfa", + "home.greeting.afternoon": "İyi günler", + "home.greeting.evening": "İyi akşamlar", + "home.greeting.morning": "Günaydın", + "home.loadError": "Çalışma alanı ana sayfanız yüklenemedi.", + "home.manageWidgets.title": "Bileşenleri yönet", + "home.noQuicklinks": "Henüz hızlı bağlantı yok.", + "home.noRecents": "Henüz hiçbir yere gidilmedi.", + "home.noStickies": "Henüz yapışkan not yok.", + "home.quicklink.addTitle": "Hızlı bağlantı ekle", + "home.quicklink.copyLink": "Bağlantıyı kopyala", + "home.quicklink.deleteConfirm": "Bu hızlı bağlantı silinsin mi?", + "home.quicklink.displayTitleLabel": "Görünen başlık", + "home.quicklink.editTitle": "Hızlı bağlantıyı düzenle", + "home.quicklink.openInNewTab": "Yeni sekmede aç", + "home.quicklink.options": "Hızlı bağlantı seçenekleri", + "home.quicklink.titlePlaceholder": "Bu bağlantının nasıl görünmesini istersiniz", + "home.quicklink.urlLabel": "URL", + "home.quicklink.urlPlaceholder": "Bir URL yazın veya yapıştırın", + "home.quicklinkFailed": "Hızlı bağlantı eklenemedi.", + "home.quicklinks": "Hızlı bağlantılar", + "home.quicklinks.add": "Hızlı bağlantı ekle", + "home.quicklinks.empty": "Henüz hızlı bağlantı yok. Bir projeye hızla dönmek için bir tane ekleyin.", + "home.quicklinks.title": "Hızlı bağlantılar", + "home.quicklinksHint": "Tek tık uzakta olmasını istediğiniz bağlantılar.", + "home.quicklinkTitle": "Başlık (isteğe bağlı)", + "home.quicklinkUrl": "URL", + "home.recents": "Son öğeler", + "home.recents.empty": "Son etkinlik yok.", + "home.recents.filterAriaLabel": "Son öğeleri filtrele", + "home.recents.title": "Son öğeler", + "home.recentsFilter.pages": "Sayfalar", + "home.recentsFilter.projects": "Projeler", + "home.recentsFilter.workItems": "İş öğeleri", + "home.recentsHint": "Kaldığınız yer.", + "home.stickies": "Notlarınız", + "home.stickies.add": "Not ekle", + "home.stickies.addTitle": "Not ekle", + "home.stickies.clearSearch": "Aramayı temizle", + "home.stickies.contentLabel": "İçerik", + "home.stickies.contentPlaceholder": "Bir fikri not edin, aklınıza geleni yakalayın...", + "home.stickies.empty": "Bir fikri not edin, aklınıza geleni yakalayın ya da bir ilhamı kaydedin. Başlamak için bir not ekleyin.", + "home.stickies.emptySearch": "Aramanızla eşleşen not yok.", + "home.stickies.searchAriaLabel": "Notlarda başlığa veya içeriğe göre ara", + "home.stickies.searchButtonAriaLabel": "Notlarda ara", + "home.stickies.searchPlaceholder": "Başlığa veya içeriğe göre ara", + "home.stickies.title": "Notlarınız", + "home.stickiesHint": "Çalışma alanınızla birlikte yaşayan kısa notlar.", + "home.stickyFailed": "Yapışkan not eklenemedi.", + "home.stickyPlaceholder": "Bir not yazın…", + "home.untitled": "Başlıksız", + "image.browse": "Gözat", + "image.coverTitle": "Kapak görseli seçin", + "image.dragDrop": "Görseli buraya sürükleyip bırakın", + "image.formatsSupported": "Desteklenen dosya biçimleri: .jpeg, .jpg, .png, .webp", + "image.invalidType": "Geçersiz dosya türü. Desteklenenler: .jpeg, .jpg, .png, .webp", + "image.previewAlt": "Önizleme", + "image.searchFailed": "Arama başarısız", + "image.searchImages": "Görsel ara", + "image.searching": "Aranıyor…", + "image.tabUpload": "Yükle", + "image.uploadFailed": "Yükleme başarısız", + "image.uploading": "Yükleniyor…", + "image.uploadSave": "Yükle ve kaydet", + "image.uploadTitle": "Görsel yükle", + "instanceAdmin.admins.accountHint": "Kişinin halihazırda bir Devlane hesabı olmalıdır.", + "instanceAdmin.admins.addAdmin": "Yönetici ekle", + "instanceAdmin.admins.adding": "Ekleniyor…", + "instanceAdmin.admins.documentTitle": "Yöneticiler", + "instanceAdmin.admins.emailAriaLabel": "Yeni yönetici e-postası", + "instanceAdmin.admins.emailPlaceholder": "kisi@ornek.com", + "instanceAdmin.admins.lastAdminTooltip": "Son yönetici kaldırılamaz", + "instanceAdmin.admins.listHeading_one": "Yöneticiler • {{count}}", + "instanceAdmin.admins.listHeading_other": "Yöneticiler • {{count}}", + "instanceAdmin.admins.remove": "Kaldır", + "instanceAdmin.admins.removeAdmin": "Yöneticiyi kaldır", + "instanceAdmin.admins.removeConfirm": "{{name}} instance yöneticiliğinden kaldırılsın mı? Instance ayarlarına erişimini kaybeder.", + "instanceAdmin.admins.removeModalTitle": "Instance yöneticisini kaldır", + "instanceAdmin.admins.removing": "Kaldırılıyor…", + "instanceAdmin.admins.roleBadge": "Yönetici", + "instanceAdmin.admins.subtitle": "Bu instance'ın ayarlarını yönetebilen kişiler.", + "instanceAdmin.admins.title": "Instance yöneticileri", + "instanceAdmin.admins.unknownUser": "Bilinmeyen kullanıcı", + "instanceAdmin.admins.you": "(siz)", + "instanceAdmin.ai.apiKey": "API anahtarı", + "instanceAdmin.ai.apiKeyHint": "API anahtarınızı burada bulabilirsiniz. Mevcut anahtarı korumak için boş bırakın.", + "instanceAdmin.ai.apiKeyPlaceholder": "API anahtarını girin", + "instanceAdmin.ai.documentTitle": "Yapay zekâ", + "instanceAdmin.ai.hideApiKey": "API anahtarını gizle", + "instanceAdmin.ai.llmModel": "LLM modeli", + "instanceAdmin.ai.modelHint": "Bir OpenAI motoru seçin. Daha fazla bilgi", + "instanceAdmin.ai.openaiHint": "ChatGPT kullanıyorsanız bu sizin için.", + "instanceAdmin.ai.showApiKey": "API anahtarını göster", + "instanceAdmin.ai.subtitle": "Devlane yapay zekâ özellikleri tüm çalışma alanlarınızda açık olsun diye AI API kimlik bilgilerinizi yapılandırın.", + "instanceAdmin.ai.title": "Tüm çalışma alanlarınız için yapay zekâ özellikleri", + "instanceAdmin.auth.availableModes": "Kullanılabilir kimlik doğrulama yöntemleri", + "instanceAdmin.auth.clientId": "Client ID", + "instanceAdmin.auth.clientSecret": "Client secret", + "instanceAdmin.auth.documentTitle": "Kimlik doğrulama", + "instanceAdmin.auth.enterClientSecret": "Client secret girin", + "instanceAdmin.auth.github.callbackUrl": "Authorization callback URL", + "instanceAdmin.auth.github.callbackUrlHint": "Bunu GitHub OAuth App'inizin Authorization callback URL alanına yapıştırın.", + "instanceAdmin.auth.github.clientIdHint": "Client ID'niz GitHub OAuth App ayarlarınızda yer alır. Daha fazla bilgi", + "instanceAdmin.auth.github.clientIdPlaceholder": "GitHub OAuth App'inizdeki client ID.", + "instanceAdmin.auth.github.clientSecretHint": "Client secret da GitHub OAuth App ayarlarınızda olmalıdır. Daha fazla bilgi", + "instanceAdmin.auth.github.devlaneDetails": "GitHub için Devlane tarafından sağlanan bilgiler", + "instanceAdmin.auth.github.documentTitle": "GitHub kimlik doğrulaması", + "instanceAdmin.auth.github.homepageUrl": "Homepage URL", + "instanceAdmin.auth.github.homepageUrlHint": "Bunu GitHub OAuth App'inizin Homepage URL alanına yapıştırın.", + "instanceAdmin.auth.github.providedDetails": "Devlane için GitHub tarafından sağlanan bilgiler", + "instanceAdmin.auth.github.subtitle": "Üyelerin GitHub hesaplarıyla Devlane'e giriş yapmasına veya kaydolmasına izin verin.", + "instanceAdmin.auth.github.success": "GitHub kimlik doğrulamanız yapılandırıldı. Şimdi test etmelisiniz.", + "instanceAdmin.auth.gitlab.applicationId": "Application ID (Client ID)", + "instanceAdmin.auth.gitlab.applicationIdHint": "Application ID'niz GitLab uygulama ayarlarınızda yer alır. Daha fazla bilgi", + "instanceAdmin.auth.gitlab.applicationIdPlaceholder": "GitLab'daki application ID'niz.", + "instanceAdmin.auth.gitlab.devlaneDetails": "GitLab için Devlane tarafından sağlanan bilgiler", + "instanceAdmin.auth.gitlab.documentTitle": "GitLab kimlik doğrulaması", + "instanceAdmin.auth.gitlab.enterSecret": "Secret girin", + "instanceAdmin.auth.gitlab.hostUrl": "Host URL (isteğe bağlı)", + "instanceAdmin.auth.gitlab.hostUrlHint": "gitlab.com için boş bırakın. Şirket içi kurulumlarda kendi barındırdığınız GitLab URL'sini girin.", + "instanceAdmin.auth.gitlab.providedDetails": "Devlane için GitLab tarafından sağlanan bilgiler", + "instanceAdmin.auth.gitlab.redirectUri": "Redirect URI", + "instanceAdmin.auth.gitlab.redirectUriHint": "Bunu GitLab uygulamanızın Redirect URI alanına yapıştırın.", + "instanceAdmin.auth.gitlab.secret": "Secret", + "instanceAdmin.auth.gitlab.secretHint": "Secret da GitLab uygulama ayarlarınızda olmalıdır. Daha fazla bilgi", + "instanceAdmin.auth.gitlab.subtitle": "Üyelerin GitLab hesaplarıyla Devlane'e giriş yapmasına veya kaydolmasına izin verin.", + "instanceAdmin.auth.gitlab.success": "GitLab kimlik doğrulamanız yapılandırıldı. Şimdi test etmelisiniz.", + "instanceAdmin.auth.google.callbackUri": "Callback URI", + "instanceAdmin.auth.google.callbackUriHint": "Bunu biz otomatik oluştururuz. Buradaki OAuth istemcisi için Authorized Redirect URI alanına yapıştırın.", + "instanceAdmin.auth.google.clientIdHint": "Client ID'niz Google API Console'unuzda yer alır. Daha fazla bilgi", + "instanceAdmin.auth.google.clientIdPlaceholder": "Client ID'niz Google API Console'unuzda yer alır.", + "instanceAdmin.auth.google.clientSecretHint": "Client secret da Google API Console'unuzda olmalıdır. Daha fazla bilgi", + "instanceAdmin.auth.google.devlaneDetails": "Google için Devlane tarafından sağlanan bilgiler", + "instanceAdmin.auth.google.documentTitle": "Google kimlik doğrulaması", + "instanceAdmin.auth.google.originUrl": "Origin URL", + "instanceAdmin.auth.google.originUrlHint": "Bunu biz otomatik oluştururuz. Buradaki OAuth istemcisi için Authorized JavaScript origins alanına yapıştırın.", + "instanceAdmin.auth.google.providedDetails": "Devlane için Google tarafından sağlanan bilgiler", + "instanceAdmin.auth.google.subtitle": "Üyelerin Google hesaplarıyla Devlane'e giriş yapmasına veya kaydolmasına izin verin.", + "instanceAdmin.auth.google.success": "Google kimlik doğrulamanız yapılandırıldı. Şimdi test etmelisiniz.", + "instanceAdmin.auth.hideSecret": "Secret'ı gizle", + "instanceAdmin.auth.methods.github.desc": "Üyelerin GitHub hesaplarıyla Devlane'e giriş yapmasına veya kaydolmasına izin verin.", + "instanceAdmin.auth.methods.gitlab.desc": "Üyelerin GitLab hesaplarıyla Devlane'e giriş yapmasına veya kaydolmasına izin verin.", + "instanceAdmin.auth.methods.google.desc": "Üyelerin Google hesaplarıyla Devlane'e giriş yapmasına veya kaydolmasına izin verin.", + "instanceAdmin.auth.methods.magicCode.desc": "E-posta ile gönderilen kodlarla Devlane'e giriş yapın veya kaydolun. Bu yöntemi kullanmak için SMTP kurulmuş olmalıdır.", + "instanceAdmin.auth.methods.magicCode.name": "Tek kullanımlık kodlar", + "instanceAdmin.auth.methods.password.desc": "Üyelerin parolayla hesap oluşturmasına ve e-posta adresleriyle giriş yapmasına izin verin.", + "instanceAdmin.auth.methods.password.name": "Parolalar", + "instanceAdmin.auth.minMethodError": "En az bir kimlik doğrulama yöntemi etkin kalmalıdır. Bunu kapatmadan önce lütfen başka bir yöntemi etkinleştirin.", + "instanceAdmin.auth.publicSignup.desc": "Bunu kapatmak, kullanıcıların yalnızca davet edildiklerinde kaydolmasına izin verir.", + "instanceAdmin.auth.publicSignup.title": "Davet olmadan da herkesin kaydolmasına izin ver", + "instanceAdmin.auth.showSecret": "Secret'ı göster", + "instanceAdmin.auth.subtitle": "Ekibiniz için kimlik doğrulama yöntemlerini yapılandırın ve kayıtları yalnızca davetle sınırlayın.", + "instanceAdmin.auth.title": "Instance'ınız için kimlik doğrulama yöntemlerini yönetin", + "instanceAdmin.auth.tooltip.invalidCredentials": "OAuth kimlik bilgileri eksik veya geçersiz. Düzeltmek için Yapılandır'ı açın ya da bunu kapatın.", + "instanceAdmin.auth.tooltip.missingBeforeEnable": "Bu sağlayıcıyı etkinleştirmeden önce yapılandırma sayfasında OAuth istemci kimlik bilgilerini ekleyin.", + "instanceAdmin.auth.unchangedIfBlank": "(boş bırakılırsa değişmez)", + "instanceAdmin.breadcrumb.settings": "Ayarlar", + "instanceAdmin.createWorkspace": "Çalışma alanı oluştur", + "instanceAdmin.createWorkspace.create": "Çalışma alanı oluştur", + "instanceAdmin.createWorkspace.creating": "Oluşturuluyor…", + "instanceAdmin.createWorkspace.documentTitle": "Çalışma alanı oluştur", + "instanceAdmin.createWorkspace.errorName": "Lütfen bir çalışma alanı adı girin.", + "instanceAdmin.createWorkspace.errorSignIn": "Çalışma alanı oluşturmak için uygulamada giriş yapmış olmanız gerekir. Ana uygulamadan giriş yapıp buraya dönün.", + "instanceAdmin.createWorkspace.errorSlug": "Çalışma alanı URL'si yalnızca küçük harf, rakam ve tire içerebilir.", + "instanceAdmin.createWorkspace.nameLabel": "Çalışma alanınıza ad verin", + "instanceAdmin.createWorkspace.namePlaceholder": "Tanıdık ve akılda kalıcı bir ad her zaman en iyisidir.", + "instanceAdmin.createWorkspace.orgSizeLabel": "Bu çalışma alanını kaç kişi kullanacak?", + "instanceAdmin.createWorkspace.slugPlaceholder": "calisma-alani-adi", + "instanceAdmin.createWorkspace.subtitle": "Bu çalışma alanını oluşturduktan sonra kullanıcıları Çalışma Alanı Ayarları'ndan davet etmeniz gerekir.", + "instanceAdmin.createWorkspace.title": "Bu instance üzerinde yeni bir çalışma alanı oluşturun.", + "instanceAdmin.createWorkspace.urlLabel": "Çalışma alanınızın URL'sini belirleyin", + "instanceAdmin.createWorkspaceHint": "Instance kurulumu tamamlandı. Devlane instance'ınıza hoş geldiniz. İlk çalışma alanınızı oluşturarak yolculuğunuza başlayın.", + "instanceAdmin.email.authentication": "Kimlik doğrulama", + "instanceAdmin.email.authenticationHint": "Bu isteğe bağlıdır, ancak SMTP sunucunuz için bir kullanıcı adı ve parola ayarlamanızı öneririz.", + "instanceAdmin.email.documentTitle": "E-posta", + "instanceAdmin.email.hidePassword": "Parolayı gizle", + "instanceAdmin.email.host": "Sunucu", + "instanceAdmin.email.misconfigWarning": "Hatalı yapılandırma e-postaların geri dönmesine ve hatalara yol açabilir.", + "instanceAdmin.email.password": "Parola", + "instanceAdmin.email.passwordHint": "Mevcut parolayı korumak için boş bırakın.", + "instanceAdmin.email.port": "Port", + "instanceAdmin.email.security": "E-posta güvenliği", + "instanceAdmin.email.securityNone": "Yok", + "instanceAdmin.email.senderEmail": "Gönderenin e-posta adresi", + "instanceAdmin.email.senderEmailHint": "Bu, kullanıcılarınızın bu instance'tan gelen e-postalarda göreceği adrestir. Bu adresi doğrulamanız gerekir.", + "instanceAdmin.email.sendTest": "Test e-postası gönder", + "instanceAdmin.email.setPassword": "Parola belirle", + "instanceAdmin.email.showPassword": "Parolayı göster", + "instanceAdmin.email.subtitle": "Devlane, internetle konuşmadan kendi instance'ınızdan size ve kullanıcılarınıza faydalı e-postalar gönderebilir. Aşağıdan ayarlayın ve kaydetmeden önce lütfen ayarlarınızı test edin.", + "instanceAdmin.email.title": "Kendi instance'ınızdan güvenli e-postalar", + "instanceAdmin.email.username": "Kullanıcı adı", + "instanceAdmin.general.documentTitle": "Genel ayarlar", + "instanceAdmin.general.email": "E-posta", + "instanceAdmin.general.emailHint": "İlk kurulumda belirlendi.", + "instanceAdmin.general.instanceDetails": "Instance bilgileri", + "instanceAdmin.general.instanceId": "Instance ID", + "instanceAdmin.general.instanceIdHint": "Kurulumda oluşturuldu.", + "instanceAdmin.general.instanceName": "Instance adı", + "instanceAdmin.general.subtitle": "Instance'ınızın adını değiştirin. Yönetici e-postası ve instance ID kurulumda belirlenir, burada değiştirilemez.", + "instanceAdmin.general.title": "Genel ayarlar", + "instanceAdmin.image.accessKeyHint": "Erişim anahtarınızı Unsplash geliştirici konsolunda bulabilirsiniz. Daha fazla bilgi.", + "instanceAdmin.image.accessKeyLabel": "Unsplash hesabınızdaki erişim anahtarı", + "instanceAdmin.image.accessKeyPlaceholder": "Erişim anahtarını girin", + "instanceAdmin.image.documentTitle": "Görseller", + "instanceAdmin.image.hideAccessKey": "Erişim anahtarını gizle", + "instanceAdmin.image.showAccessKey": "Erişim anahtarını göster", + "instanceAdmin.image.subtitle": "Kullanıcılarınızın üçüncü taraf kütüphanelerden görsel aramasına ve seçmesine izin verin.", + "instanceAdmin.image.title": "Üçüncü taraf görsel kütüphaneleri", + "instanceAdmin.integration.github.appId": "App ID", + "instanceAdmin.integration.github.appIdHint": "GitHub App ayarlar sayfanızın üstünde görünen sayısal App ID.", + "instanceAdmin.integration.github.appIdPlaceholder": "örn. 1234567", + "instanceAdmin.integration.github.appSlug": "App slug", + "instanceAdmin.integration.github.appSlugHintPost": "Kurulum bağlantısını oluşturmak için kullanılır.", + "instanceAdmin.integration.github.appSlugHintPre": "App'inizin herkese açık sayfasındaki URL uyumlu slug,", + "instanceAdmin.integration.github.appSlugPlaceholder": "örn. devlane-acme", + "instanceAdmin.integration.github.clientIdPlaceholder": "örn. Iv1.abc123def456", + "instanceAdmin.integration.github.clientSecretHint": "App ayarlarınızdaki \"Client secrets\" bölümünden yeni bir client secret oluşturun.", + "instanceAdmin.integration.github.credentialsHeading": "GitHub App'inizden alınan kimlik bilgileri", + "instanceAdmin.integration.github.documentTitle": "GitHub entegrasyonu", + "instanceAdmin.integration.github.enterWebhookSecret": "Webhook secret girin", + "instanceAdmin.integration.github.eventsLabel": "Abone olunacak olaylar:", + "instanceAdmin.integration.github.hideClientSecret": "Client secret'ı gizle", + "instanceAdmin.integration.github.hidePrivateKey": "Özel anahtarı gizle", + "instanceAdmin.integration.github.hideWebhookSecret": "Webhook secret'ı gizle", + "instanceAdmin.integration.github.homepageUrl": "Homepage URL", + "instanceAdmin.integration.github.homepageUrlHint": "Bunu GitHub App'in Homepage URL alanına yapıştırın.", + "instanceAdmin.integration.github.permissionsLabel": "İzinler:", + "instanceAdmin.integration.github.privateKey": "Özel anahtar (PEM)", + "instanceAdmin.integration.github.privateKeyHintMid": "dosyasını App'inizin \"Generate a private key\" düğmesinden indirin. Şifrelenmiş olarak saklanır (API'de", + "instanceAdmin.integration.github.privateKeyHintPost": "ayarlayın).", + "instanceAdmin.integration.github.privateKeyHintPre": "Tamamını yapıştırın:", + "instanceAdmin.integration.github.quickSetupTitle": "İlk kez mi? Hızlı kurulum:", + "instanceAdmin.integration.github.setupUrl": "Setup URL / Callback URL", + "instanceAdmin.integration.github.setupUrlHint": "Bunu GitHub App'in Setup URL ve User authorization callback URL alanlarına yapıştırın. 'Redirect on update' seçeneğini işaretleyin.", + "instanceAdmin.integration.github.showClientSecret": "Client secret'ı göster", + "instanceAdmin.integration.github.showPrivateKey": "Özel anahtarı göster", + "instanceAdmin.integration.github.showWebhookSecret": "Webhook secret'ı göster", + "instanceAdmin.integration.github.step1": "GitHub Settings → Developer settings → GitHub Apps → New GitHub App sayfasını açın.", + "instanceAdmin.integration.github.step2": "URL'leri ve webhook'u aşağıdaki kutulardan ayarlayın.", + "instanceAdmin.integration.github.step5": "Oluşturduktan sonra App ID, App slug ve Client ID'yi kopyalayın; bir Client Secret + Özel anahtar (.pem) + Webhook secret oluşturun. Bunları buraya yapıştırın.", + "instanceAdmin.integration.github.subtitle": "Bir GitHub App kaydedin ve kimlik bilgilerini buraya yapıştırın. Bu App, Devlane'in bu instance'taki tüm çalışma alanlarında pull request'leri iş öğeleriyle senkronize etmesini sağlayan köprüdür.", + "instanceAdmin.integration.github.success": "GitHub App ayarları kaydedildi. Çalışma alanları artık bağlanabilir.", + "instanceAdmin.integration.github.urlsHeading": "GitHub App'e yapıştırılacak Devlane URL'leri", + "instanceAdmin.integration.github.webhookSecret": "Webhook secret", + "instanceAdmin.integration.github.webhookSecretHint": "App'in \"Webhook\" → \"Webhook secret\" alanında belirlediğiniz secret'ı kullanın. Devlane her teslimatın HMAC imzasını bununla doğrular.", + "instanceAdmin.integration.github.webhookUrl": "Webhook URL", + "instanceAdmin.integration.github.webhookUrlHint": "Bunu GitHub App'in Webhook URL alanına yapıştırın. 'Active' seçeneğinin açık olduğundan emin olun.", + "instanceAdmin.integrations.configured": "Yapılandırıldı", + "instanceAdmin.integrations.documentTitle": "Entegrasyonlar", + "instanceAdmin.integrations.github.desc": "GitHub pull request'leri ile Devlane iş öğeleri arasında çift yönlü senkronizasyon; ayrıca dal adları ve commit mesajlarıyla PR ↔ iş öğesi otomatik bağlama.", + "instanceAdmin.integrations.notConfigured": "Yapılandırılmadı", + "instanceAdmin.integrations.providers": "Kullanılabilir entegrasyonlar", + "instanceAdmin.integrations.slack.desc": "İş öğesi olaylarını doğrudan Slack kanallarına gönderin. İş öğeleri oluşturulduğunda, durum değiştirdiğinde veya yorum aldığında bildirim alın.", + "instanceAdmin.integrations.sourceControl": "Kaynak kontrolü", + "instanceAdmin.integrations.subtitle": "Üçüncü taraf uygulama kimlik bilgilerini yapılandırın. Bir entegrasyon burada yapılandırıldıktan sonra çalışma alanı yöneticileri kendi ayarlarından bağlanabilir.", + "instanceAdmin.integrations.title": "Bu instance'ta kullanılabilir entegrasyonlar", + "instanceAdmin.redirectToDevlane": "Devlane'e yönlendir", + "instanceAdmin.section.admins": "Yöneticiler", + "instanceAdmin.section.ai": "Yapay zekâ", + "instanceAdmin.section.authentication": "Kimlik doğrulama", + "instanceAdmin.section.email": "E-posta", + "instanceAdmin.section.general": "Genel", + "instanceAdmin.section.image": "Devlane'de görseller", + "instanceAdmin.section.integrations": "Entegrasyonlar", + "instanceAdmin.section.workspace": "Çalışma alanları", + "instanceAdmin.title": "Instance yönetimi", + "instanceAdmin.workspaces.create": "Çalışma alanı oluştur", + "instanceAdmin.workspaces.documentTitle": "Çalışma alanları", + "instanceAdmin.workspaces.goToWorkspace": "Çalışma alanına git", + "instanceAdmin.workspaces.listHeading_one": "Bu instance'taki tüm çalışma alanları • {{count}}", + "instanceAdmin.workspaces.listHeading_other": "Bu instance'taki tüm çalışma alanları • {{count}}", + "instanceAdmin.workspaces.listHint": "Çalışma alanlarını henüz silemezsiniz ve yalnızca Yönetici veya Üye iseniz çalışma alanına gidebilirsiniz.", + "instanceAdmin.workspaces.preventDesc": "Bunu açmak yalnızca sizin (instance yöneticisi) çalışma alanı oluşturmanıza izin verir. Kullanıcıları yeni çalışma alanlarına davet etmeniz gerekir.", + "instanceAdmin.workspaces.preventTitle": "Başka hiç kimsenin çalışma alanı oluşturmasına izin verme.", + "instanceAdmin.workspaces.subtitle": "Tüm çalışma alanlarını görün ve kimlerin oluşturabileceğini denetleyin.", + "instanceAdmin.workspaces.title": "Bu instance'taki çalışma alanları", + "intake.accept": "Kabul et", + "intake.accepted": "Kabul edildi", + "intake.action.accept": "Kabul et", + "intake.action.decline": "Reddet", + "intake.action.duplicateOfPlaceholder": "Şunun kopyası…", + "intake.action.markDuplicate": "Kopya olarak işaretle", + "intake.action.snooze": "Ertele", + "intake.action.snoozePlaceholder": "Ertele…", + "intake.actionError": "Bu talep güncellenemedi.", + "intake.actionFailed": "Bu işlem tamamlanamadı. Lütfen tekrar deneyin.", + "intake.activeIssues": "Aktif iş öğeleri", + "intake.column.actions": "İşlemler", + "intake.column.created": "Oluşturuldu", + "intake.column.duplicateOf": "Şunun kopyası", + "intake.column.priority": "Öncelik", + "intake.column.snoozedUntil": "Şu tarihe ertelendi", + "intake.column.source": "Kaynak", + "intake.column.workItem": "İş öğesi", + "intake.decline": "Reddet", + "intake.declined": "Reddedildi", + "intake.documentTitle": "Talepler", + "intake.empty": "Burada bir şey yok. Bu triyaj kuyruğu boş.", + "intake.emptyDescription": "Proje dışından gelen talepler kabul edilmek, ertelenmek veya reddedilmek üzere buraya düşer.", + "intake.emptyTitle": "Triyaj edilecek bir şey yok", + "intake.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Kuyruktaki hiçbir şey değiştirilmedi.", + "intake.loadErrorTitle": "Talepler yüklenemedi", + "intake.loading": "Talepler yükleniyor…", + "intake.noMatches": "Geçerli aramayla eşleşen talep yok.", + "intake.noMatchesTitle": "Talep bulunamadı", + "intake.pageDescription": "{{project}} projesine gelen talepleri triyaj edin.", + "intake.pending": "Beklemede", + "intake.request": "Talep", + "intake.scope": "Triyaj durumu", + "intake.searchPlaceholder": "Taleplerde ara", + "intake.snooze": "Ertele", + "intake.snooze.days_one": "{{count}} gün", + "intake.snooze.days_other": "{{count}} gün", + "intake.snooze.oneDay": "1 gün", + "intake.snooze.oneWeek": "1 hafta", + "intake.snooze.threeDays": "3 gün", + "intake.snoozed": "Ertelendi", + "intake.source": "Kaynak", + "intake.source.inApp": "Uygulama içi", + "intake.subtitle": "Gelen işleri triyaj edin: projeye kabul edin, reddedin, erteleyin veya kopya olarak işaretleyin.", + "intake.summary": "{{pending}} beklemede · bu kuyrukta {{visible}}", + "intake.tableCaption": "Gelen talepler; öncelik, kaynak, oluşturulma tarihi ve triyaj işlemleriyle.", + "intake.tableLabel": "Talepler tablosu", + "intake.tabs.accepted": "Kabul edilen", + "intake.tabs.declined": "Reddedilen", + "intake.tabs.duplicate": "Kopya", + "intake.tabs.pending": "Beklemede", + "intake.tabs.snoozed": "Ertelenen", + "intake.title": "Talepler", + "intake.toolbar": "Talep kontrolleri", + "intake.untitled": "Başlıksız talep", + "intake.visibleCount": "{{count}} talep görünüyor", + "intake.visibleCount_one": "{{count}} talep görünüyor", + "intake.visibleCount_other": "{{count}} talep görünüyor", + "integrations.communications": "İletişim", + "integrations.configureSyncAria": "{{name}} için GitHub senkronizasyonunu yapılandır", + "integrations.description": "İşleri senkron tutmak için Devlane'i ekibinizin halihazırda kullandığı araçlarla bağlayın.", + "integrations.github.connect": "Bağlan", + "integrations.github.connected": "GitHub bağlandı.", + "integrations.github.description": "GitHub pull request'leri ile Devlane iş öğeleri arasında çift yönlü senkronizasyon. Durumu eş tutmak için PR'lardan ve dallardan iş öğelerine referans verin, inceleme durumunu iş öğesi kenar panelinden görün.", + "integrations.github.disconnect": "Bağlantıyı kes", + "integrations.github.disconnectConfirm": "GitHub bu çalışma alanından ayrılsın mı? Bağlı depoların bağlantısı kaldırılır.", + "integrations.github.disconnected": "GitHub bağlantısı kesildi.", + "integrations.github.disconnecting": "Bağlantı kesiliyor…", + "integrations.github.feature.autoLink": "Dal adları ve commit mesajlarıyla PR'ları iş öğelerine otomatik bağla", + "integrations.github.feature.mirrorStatus": "PR durumunu (taslak, açık, birleştirildi, kapalı) iş öğesi etkinliğine yansıt", + "integrations.github.feature.moveIssues": "PR olaylarına göre iş öğelerini durumlar arasında taşı", + "integrations.github.linked": "{{name}} bağlandı.", + "integrations.github.unlinkConfirm": "GitHub deposunun bu projeyle bağlantısı kaldırılsın mı?", + "integrations.link": "Bağla", + "integrations.linkedRepositories": "Bağlı depolar", + "integrations.linkModalHint": "GitHub App'in erişimi olan bir depo seçin. Bu projeyi hedefleyen pull request'ler iş öğelerine bağlanır.", + "integrations.linkModalTitle": "{{name}} projesine bir GitHub deposu bağla", + "integrations.linkRepo": "Depo bağla", + "integrations.loadMore": "Daha fazla yükle", + "integrations.noRepoLinked": "Bağlı depo yok.", + "integrations.noReposAccessible": "Kurulumun erişebildiği depo yok. Önce bu uygulamayı GitHub'da bir depoya ekleyin.", + "integrations.repoSync.doneLabel": "“Tamamlandı” durumu — kapatan bir PR birleştirildiğinde uygulanır", + "integrations.repoSync.inProgressLabel": "“Devam ediyor” durumu — bir PR açıldığında veya yeniden açıldığında uygulanır", + "integrations.repoSync.noneOnMerge": "— yok (birleştirmede taşıma yapma) —", + "integrations.repoSync.noneOnOpen": "— yok (açılışta taşıma yapma) —", + "integrations.settings": "Ayarlar", + "integrations.slack.configureAria": "{{name}} için Slack kanalını yapılandır", + "integrations.slack.connect": "Bağlan", + "integrations.slack.connected": "Slack bağlandı.", + "integrations.slack.description": "İş öğesi olaylarını doğrudan Slack kanallarına gönderin. İş öğeleri oluşturulduğunda, durum değiştirdiğinde veya yorum aldığında bildirim alın.", + "integrations.slack.disconnect": "Bağlantıyı kes", + "integrations.slack.disconnectConfirm": "Slack bu çalışma alanından ayrılsın mı? Proje kanallarının bağlantısı kaldırılır.", + "integrations.slack.disconnected": "Slack bağlantısı kesildi.", + "integrations.slack.disconnecting": "Bağlantı kesiliyor…", + "integrations.slack.eventCommented": "Yeni yorum eklendiğinde", + "integrations.slack.eventCreated": "Yeni iş öğesi oluşturulduğunda", + "integrations.slack.eventState": "İş öğesi durumu değiştiğinde (örn. Devam ediyor → Tamamlandı)", + "integrations.slack.feature.events": "Hangi olayların mesaj tetikleyeceğini özelleştirin", + "integrations.slack.feature.notify": "Bildirimleri projeye özel kanallara yönlendirin", + "integrations.slack.linkChannel": "Kanal bağla", + "integrations.slack.linkedChannel": "Bağlı kanal: #{{name}}", + "integrations.slack.linkedChannels": "Bağlı kanallar", + "integrations.slack.modalTitle": "{{name}} için Slack bildirimleri", + "integrations.slack.name": "Slack", + "integrations.slack.noChannelLinked": "Bağlı kanal yok.", + "integrations.slack.noChannels": "Herkese açık kanal bulunamadı. Botun Slack çalışma alanınıza davet edildiğinden emin olun.", + "integrations.slack.notifyOn": "Kanala şu durumlarda bildir:", + "integrations.slack.selectChannel": "Kanal seç", + "integrations.slack.selectChannelRequired": "Lütfen bir kanal seçin.", + "integrations.slack.unlinkConfirm": "Slack kanalının bu projeyle bağlantısı kaldırılsın mı?", + "integrations.sourceControl": "Kaynak kontrolü", + "integrations.status.available": "Kullanılabilir", + "integrations.status.connected": "Bağlı", + "integrations.status.suspended": "Askıya alındı", + "integrations.syncSettings": "Senkronizasyon ayarları", + "integrations.title": "Entegrasyonlar", + "integrations.unlink": "Bağlantıyı kaldır", + "issues.archiveError": "Bu iş öğeleri arşivlenemedi.", + "issues.archiveSuccess_one": "{{count}} iş öğesi arşivlendi", + "issues.archiveSuccess_other": "{{count}} iş öğesi arşivlendi", + "issues.bulkActions": "Toplu işlemler", + "issues.confirmArchiveDescription": "Arşivlenen iş öğeleri bu listeden çıkar ve Arşiv altında kalmaya devam eder.", + "issues.confirmArchiveTitle_one": "{{count}} iş öğesi arşivlensin mi?", + "issues.confirmArchiveTitle_other": "{{count}} iş öğesi arşivlensin mi?", + "issues.confirmDeleteDescription": "Silinen iş öğeleri geri getirilemez. Yorumları, ekleri ve bağlantıları da silinir.", + "issues.confirmDeleteTitle_one": "{{count}} iş öğesi silinsin mi?", + "issues.confirmDeleteTitle_other": "{{count}} iş öğesi silinsin mi?", + "issues.create": "Yeni iş öğesi", + "issues.deleteError": "Bu iş öğeleri silinemedi.", + "issues.deleteSuccess_one": "{{count}} iş öğesi silindi", + "issues.deleteSuccess_other": "{{count}} iş öğesi silindi", + "issues.emptyDescription": "İş öğeleri fikirleri ekibinizin teslim edebileceği net ve önceliklendirilmiş adımlara dönüştürür.", + "issues.emptyTitle": "İlk iş öğenizi oluşturun", + "issues.itemMenu": "{{name}} işlemleri", + "issues.layout": "Düzen", + "issues.layoutBoard": "Pano", + "issues.layoutCalendar": "Takvim", + "issues.layoutGantt": "Zaman çizelgesi", + "issues.layoutList": "Liste", + "issues.layoutSpreadsheet": "Tablo", + "issues.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. İş öğesi verileriniz değiştirilmedi.", + "issues.loadErrorTitle": "İş öğeleri yüklenemedi", + "issues.loading": "İş öğeleri yükleniyor", + "issues.moveToState": "Duruma taşı", + "issues.noMatchesOnPage": "Bu sayfada geçerli arama ve filtrelerle eşleşen iş öğesi yok.", + "issues.noMatchesTitle": "İş öğesi bulunamadı", + "issues.openWorkItem": "İş öğesini aç", + "issues.pageDescription": "{{project}} için işi planlayın, önceliklendirin ve izleyin.", + "issues.pageSummary": "{{page}}. sayfada yüklenen {{loaded}} öğeden {{visible}} tanesi", + "issues.searchLabels": "Etiketlerde ara", + "issues.searchMembers": "Üyelerde ara", + "issues.searchPlaceholder": "İş öğelerinde ara", + "issues.searchStates": "Durumlarda ara", + "issues.selectAll": "Bu sayfadaki tüm iş öğelerini seç", + "issues.selectedCount_one": "{{count}} seçili", + "issues.selectedCount_other": "{{count}} seçili", + "issues.selectGroup": "{{group}} içindeki tümünü seç", + "issues.selectItem": "{{name}} öğesini seç", + "issues.setPriority": "Öncelik ayarla", + "issues.tableCaption": "Bu sayfadaki iş öğeleri; durum, öncelik, atananlar, etiketler, bitiş tarihi ve son güncellemeyle.", + "issues.tableLabel": "İş öğeleri tablosu", + "issues.targetDate": "Bitiş", + "issues.toolbar": "İş öğesi kontrolleri", + "issues.unassigned": "Atanmamış", + "issues.undoError": "Bu değişiklik geri alınamadı.", + "issues.visibleCount_one": "{{count}} iş öğesi görünüyor", + "issues.visibleCount_other": "{{count}} iş öğesi görünüyor", + "module.addedTime": "{{time}} eklendi", + "module.addExistingWorkItem": "Mevcut bir iş öğesi ekle", + "module.addLink": "Bağlantı ekle", + "module.addWorkItem": "İş öğesi ekle", + "module.allWorkItems": "Tüm iş öğeleri", + "module.attachments": "Ekler", + "module.backToModules": "Modüllere dön", + "module.copyLink": "Bağlantıyı kopyala", + "module.create.error": "Modül oluşturulamadı.", + "module.create.submit": "Modül oluştur", + "module.create.title": "Modül oluştur", + "module.createError": "İş öğesi oluşturulamadı", + "module.createNewWorkItems": "Yeni iş öğeleri oluştur", + "module.cycle": "Döngü", + "module.displayTitle": "Görünen başlık", + "module.displayTitlePlaceholder": "Bu bağlantının nasıl görünmesini istersiniz", + "module.dueDate": "Bitiş tarihi", + "module.editLink": "Bağlantıyı düzenle", + "module.emptyDescription": "Bu modül kapsamında tamamlamak istediğiniz iş öğelerini oluşturun veya ekleyin", + "module.emptyTitle": "Modülde iş öğesi yok", + "module.estimate": "Tahmin", + "module.labels": "Etiketler", + "module.links": "Bağlantılar", + "module.moduleColumn": "Modül", + "module.newWorkItem": "Yeni iş öğesi", + "module.notFound": "Modül bulunamadı.", + "module.noWorkItemsMatchFilters": "Filtrelerinizle eşleşen iş öğesi yok.", + "module.removeLink": "Bağlantıyı kaldır", + "module.status.backlog": "Backlog", + "module.status.cancelled": "İptal edildi", + "module.status.completed": "Tamamlandı", + "module.status.in_progress": "Devam ediyor", + "module.status.paused": "Duraklatıldı", + "module.status.planned": "Planlandı", + "module.subWorkItems": "Alt iş öğeleri", + "module.title": "Modül", + "module.unassigned": "Atanmamış", + "module.update.dateRangeTitle": "Tarih aralığı", + "module.update.error": "Modül güncellenemedi.", + "module.update.namePlaceholder": "Modül adı", + "module.update.noLead": "Sorumlu yok", + "module.update.submit": "Modülü güncelle", + "module.update.title": "Modülü güncelle", + "module.updateLink": "Bağlantıyı güncelle", + "module.url": "URL", + "module.urlPlaceholder": "Bir URL yazın veya yapıştırın", + "module.visibility": "Görünürlük", + "modules.columnDuration": "Süre", + "modules.columnModules": "Modüller", + "modules.dateRangeModalTitle": "Tarih aralığı", + "modules.dateRangePlaceholder": "Başlangıç tarihi → Bitiş tarihi", + "modules.documentTitle": "Modüller", + "modules.durationDays_one": "{{count}} gün", + "modules.durationDays_other": "{{count}} gün", + "modules.editDates": "Modül tarihlerini düzenle", + "modules.empty": "Henüz modül yok.", + "modules.emptyDescription": "Modüller bir projeyi kendi başına planlanan ve izlenen iş kümelerine böler.", + "modules.emptyFavorites": "Favori modül yok. Buraya eklemek için modülleri yıldızlayın.", + "modules.emptySearch": "Aramanızla eşleşen modül yok.", + "modules.emptyTitle": "Henüz modül yok", + "modules.fullScreen": "Tam ekran", + "modules.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Modülleriniz değiştirilmedi.", + "modules.loadErrorTitle": "Modüller yüklenemedi", + "modules.loading": "Modüller yükleniyor…", + "modules.moduleCount_one": "{{count}} modül", + "modules.moduleCount_other": "{{count}} modül", + "modules.noMatches": "Geçerli aramayla eşleşen modül yok.", + "modules.noMatchesTitle": "Modül bulunamadı", + "modules.onlyCompletedArchivable": "Yalnızca tamamlanmış veya iptal edilmiş modüller arşivlenebilir.", + "modules.pageDescription": "{{project}} içinde kendi başına planlanan iş kümeleri.", + "modules.searchPlaceholder": "Modüllerde ara", + "modules.startDate": "Başlangıç", + "modules.summary": "{{total}} modülden {{visible}} tanesi", + "modules.tableCaption": "Bu projedeki modüller; durum, ilerleme, başlangıç ve hedef tarihleriyle.", + "modules.tableLabel": "Modüller tablosu", + "modules.targetDate": "Hedef", + "modules.today": "Bugün", + "modules.toolbar": "Modül kontrolleri", + "modules.visibleCount": "{{count}} modül görünüyor", + "modules.visibleCount_one": "{{count}} modül görünüyor", + "modules.visibleCount_other": "{{count}} modül görünüyor", + "modules.week": "{{number}}. hafta", + "nav.account": "Hesap", + "nav.analytics": "Analitik", + "nav.archives": "Arşiv", + "nav.deleteFolder": "Klasörü sil", + "nav.drafts": "Taslaklar", + "nav.help": "Yardım", + "nav.home": "Ana sayfa", + "nav.inbox": "Gelen kutusu", + "nav.inviteMembers": "Üye davet et", + "nav.newFavoritesFolder": "Yeni favori klasörü", + "nav.newFolder": "Yeni klasör", + "nav.newWorkItem": "Yeni iş öğesi", + "nav.notifications": "Bildirimler", + "nav.openCommandPalette": "Komut paletini aç", + "nav.projects": "Projeler", + "nav.removeFavorite": "Favorilerden çıkar", + "nav.search": "Ara", + "nav.section.favorites": "Favoriler", + "nav.section.projects": "Projeler", + "nav.section.workspace": "Çalışma alanı", + "nav.settings": "Ayarlar", + "nav.sidebar.ariaLabel": "Ana kenar çubuğu", + "nav.signingOut": "Çıkış yapılıyor…", + "nav.signOut": "Çıkış yap", + "nav.signOutFailed": "Yerel olarak çıkış yapıldı, ancak sunucuya ulaşılamadı.", + "nav.views": "Görünümler", + "nav.workspace": "Çalışma alanı", + "nav.workspaceInvites": "Çalışma alanı davetleri", + "nav.workspaceMenu": "Çalışma alanı menüsü", + "nav.yourWork": "İşleriniz", + "notifications.actionError": "Bu işlem tamamlanamadı. Lütfen tekrar deneyin.", + "notifications.actorFallback": "Birisi", + "notifications.assigned": "{{actor}} sizi {{issueRef}} öğesine atadı — {{name}}", + "notifications.commented": "{{actor}} {{issueRef}} öğesine yorum yaptı — {{name}}", + "notifications.detailDescription": "Bildirim ayrıntıları ve işlemleri.", + "notifications.documentTitle": "Gelen kutusu", + "notifications.empty.all": "Gelen kutusu boş. İlgili olduğunuz iş öğeleriyle ilgili bildirimler buraya düşer.", + "notifications.empty.archived": "Arşivlenmiş bildirim yok. Kaybetmeden sadeleştirmek için gelen kutusundan bir satırı arşivleyin.", + "notifications.empty.mentions": "Henüz bahsedilme yok. Biri sizi bir iş öğesinde veya yorumda @ ile andığında burada görünür.", + "notifications.empty.unread": "Her şey güncel. Okunmamış bildirim yok.", + "notifications.listLabel": "Bildirimler", + "notifications.loadError": "Bildirimler yüklenemedi.", + "notifications.markAllRead": "Tümünü okundu işaretle", + "notifications.markRead": "Okundu işaretle", + "notifications.markUnread": "Okunmadı işaretle", + "notifications.mentioned": "{{actor}} sizi {{issueRef}} öğesinde andı — {{name}}", + "notifications.new": "Yeni", + "notifications.noSearchResults": "Aramanızla eşleşen bildirim yok.", + "notifications.openIssue": "İş öğesini aç", + "notifications.retry": "Tekrar dene", + "notifications.searchPlaceholder": "Bildirimlerde ara…", + "notifications.selectPrompt": "Ayrıntıları görmek için bir bildirim seçin.", + "notifications.snooze.custom": "Özel", + "notifications.snooze.forOneHour": "1 saatliğine", + "notifications.snooze.nextWeek": "Gelecek hafta", + "notifications.snooze.snooze": "Ertele", + "notifications.snooze.snoozeUntil": "Şu zamana ertele…", + "notifications.snooze.untilTomorrow": "Yarın sabaha kadar", + "notifications.snooze.wakeUp": "Ertelemeyi kaldır", + "notifications.stateChanged": "{{actor}} {{issueRef}} öğesini taşıdı", + "notifications.stateChangedFrom": "şuradan", + "notifications.stateChangedTo": "şuraya", + "notifications.subscribed": "{{actor}} {{issueRef}} öğesini güncelledi", + "notifications.subtitle": "İlgili olduğunuz işlerden gelen güncellemeler tek yerde.", + "notifications.tab.all": "Tümü", + "notifications.tab.archived": "Arşivlenen", + "notifications.tab.mentions": "Bahsedilmeler", + "notifications.tab.unread": "Okunmamış", + "page.addSubpage": "Alt sayfa ekle", + "page.addSubPage": "Alt sayfa ekle", + "page.archive": "Arşivle", + "page.archived": "Arşivlendi", + "page.archivedNotice": "Bu sayfa arşivlenmiş ve salt okunur. Düzenlemek için menüden geri yükleyin.", + "page.backToPages": "Sayfalara dön", + "page.copied": "Kopyalandı!", + "page.copyLink": "Bağlantıyı kopyala", + "page.deleteBody": "Bu, sayfayı ve sürümlerini kalıcı olarak kaldırır. Geri alınamaz.", + "page.deleteModalDescription": "Bu, sayfayı ve geçmişini kalıcı olarak kaldırır. Geri alınamaz.", + "page.deleteModalTitle": "Sayfa silinsin mi?", + "page.deleteTitle": "Sayfayı sil", + "page.editorPlaceholder": "Yazmaya başlayın… veya komutlar için “/” tuşuna basın", + "page.emptyVersion": "(boş)", + "page.favorite": "Favori", + "page.hideSidePanel": "Yan paneli gizle", + "page.history": "Geçmiş", + "page.loadingProjects": "Projeler yükleniyor…", + "page.loadProjectsError": "Projeler yüklenemedi.", + "page.lockedNotice": "Sahibi bu sayfayı kilitledi. Okuyabilir ancak düzenleyemezsiniz.", + "page.lockPage": "Sayfayı kilitle", + "page.makeCopy": "Kopyasını oluştur", + "page.makePrivate": "Özel yap", + "page.makePublic": "Herkese açık yap", + "page.movePageError": "Sayfa taşınamadı.", + "page.movePageModalDescription": "Sayfa ve alt sayfaları seçtiğiniz projeye taşınır.", + "page.movePageModalTitle": "Sayfayı projeye taşı", + "page.moveToProject": "Projeye taşı", + "page.noOtherProjects": "Başka proje yok.", + "page.noSubpages": "Henüz alt sayfa yok.", + "page.noSubPages": "Alt sayfa yok.", + "page.notFound": "Sayfa bulunamadı.", + "page.noVersions": "Henüz sürüm yok.", + "page.outline": "İçindekiler", + "page.relativeDaysAgo_one": "{{count}} gün önce", + "page.relativeDaysAgo_other": "{{count}} gün önce", + "page.relativeHoursAgo_one": "{{count}} sa önce", + "page.relativeHoursAgo_other": "{{count}} sa önce", + "page.relativeJustNow": "az önce", + "page.relativeMinutesAgo_one": "{{count}} dk önce", + "page.relativeMinutesAgo_other": "{{count}} dk önce", + "page.relativeSecondsAgo_one": "{{count}} sn önce", + "page.relativeSecondsAgo_other": "{{count}} sn önce", + "page.restore": "Geri yükle", + "page.restoreFailed": "Geri yükleme başarısız", + "page.restoreThisVersion": "Bu sürümü geri yükle", + "page.saved": "Kaydedildi", + "page.savedAt": "Kaydedildi · {{time}}", + "page.saveFailed": "Kaydetme başarısız", + "page.saving": "Kaydediliyor…", + "page.showSidePanel": "Yan paneli göster", + "page.subpages": "Alt sayfalar", + "page.subPages": "Alt sayfalar", + "page.title": "Sayfa", + "page.titleLabel": "Sayfa başlığı", + "page.unfavorite": "Favorilerden çıkar", + "page.unlockPage": "Sayfa kilidini aç", + "page.untitled": "Başlıksız", + "page.untitledSubpage": "Başlıksız alt sayfa", + "page.versionPreviewTitle": "Sürüm önizlemesi · {{time}}", + "page.versions": "Sürümler", + "pages.access": "Erişim", + "pages.addPage": "Sayfa ekle", + "pages.archivedTableLabel": "Arşivlenen sayfalar tablosu", + "pages.archiveError": "Bu sayfa arşivlenemedi.", + "pages.ascending": "Artan", + "pages.clearFilters": "Filtreleri temizle", + "pages.closeSearch": "Aramayı kapat", + "pages.createdOn": "{{date}} tarihinde oluşturuldu", + "pages.createPage": "Sayfa oluştur", + "pages.deleteFailed": "Silme başarısız", + "pages.descending": "Azalan", + "pages.documentTitle": "Sayfalar", + "pages.emptyArchived": "Arşivlenen sayfalar buraya düşer. Aktif listeyi sadeleştirmek için bir sayfayı ayrıntı görünümünden arşivleyin.", + "pages.emptyArchivedTitle": "Arşivlenmiş sayfa yok", + "pages.emptyDescription": "Sayfalar işin etrafındaki yazıyı barındırır — bir iş öğesinden daha uzun yaşayan şartnameler, notlar ve kararlar.", + "pages.emptyPrivate": "Henüz özel sayfa yok. Özel olarak işaretlediğiniz sayfalar yalnızca size görünür.", + "pages.emptyPublic": "Henüz herkese açık sayfa yok. Ekibinizle birlikte belgelemeye başlamak için ilk sayfanızı oluşturun.", + "pages.emptyTitle": "Henüz sayfa yok", + "pages.favorite": "Favori", + "pages.filters": "Filtreler", + "pages.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Sayfalarınız değiştirilmedi.", + "pages.loadErrorTitle": "Sayfalar yüklenemedi", + "pages.loading": "Sayfalar yükleniyor…", + "pages.lock": "Kilitle", + "pages.locked": "Kilitli", + "pages.lockError": "Bu sayfa güncellenemedi.", + "pages.makeCopy": "Kopyasını oluştur", + "pages.noMatches": "Geçerli aramayla eşleşen sayfa yok.", + "pages.noMatchesTitle": "Sayfa bulunamadı", + "pages.ownedBy": "Sahibi: {{name}}", + "pages.ownedByMe": "Sahibi ben", + "pages.pageDescription": "{{project}} ile birlikte yaşayan yazılı bilgi.", + "pages.private": "Özel", + "pages.public": "Herkese açık", + "pages.quickFilters": "Hızlı filtreler", + "pages.scope": "Sayfa türü", + "pages.searchPlaceholder": "Sayfalarda ara", + "pages.summary": "{{live}} aktif · {{archived}} arşivlenmiş", + "pages.tableCaption": "Bu projedeki sayfalar; erişim, tarihler ve işlemlerle.", + "pages.tableLabel": "Sayfalar tablosu", + "pages.title": "Başlık", + "pages.toolbar": "Sayfa kontrolleri", + "pages.unarchiveError": "Bu sayfa geri yüklenemedi.", + "pages.unfavorite": "Favorilerden çıkar", + "pages.unlock": "Kilidi aç", + "pages.untitled": "Başlıksız", + "pages.untitledPage": "Başlıksız sayfa", + "pages.visibility": "Görünürlük", + "pages.visibilityNav": "Sayfa görünürlüğü", + "pages.visibleCount": "{{count}} sayfa görünüyor", + "pages.visibleCount_one": "{{count}} sayfa görünüyor", + "pages.visibleCount_other": "{{count}} sayfa görünüyor", + "priority.high": "Yüksek", + "priority.low": "Düşük", + "priority.medium": "Orta", + "priority.none": "Yok", + "priority.urgent": "Acil", + "profile.about": "Hakkında", + "profile.activity.assignee": "{{ref}} öğesine yeni bir atanan eklediniz: {{assignee}} {{time}}", + "profile.activity.created": "{{ref}} {{title}} öğesini oluşturdunuz {{time}}", + "profile.activity.cycle": "{{ref}} {{title}} öğesini {{cycle}} döngüsüne eklediniz {{time}}", + "profile.activity.generic": "Etkinlik {{time}}", + "profile.activity.label": "{{ref}} {{title}} öğesine yeni bir etiket eklediniz: <2>{{label}} {{time}}", + "profile.activityTab.assignee": "<4>{{ref}} öğesine yeni bir atanan eklediniz: <1>{{assignee}} {{time}}.", + "profile.activityTab.created": "<2>{{ref}} {{title}} öğesini oluşturdunuz {{time}}.", + "profile.activityTab.createdShort": "Oluşturuldu", + "profile.activityTab.cycle": "<2>{{ref}} {{title}} öğesini <5>{{cycle}} döngüsüne eklediniz {{time}}.", + "profile.activityTab.generic": "Etkinlik {{time}}.", + "profile.activityTab.label": "<6>{{ref}} {{title}} öğesine yeni bir etiket eklediniz: <2>{{label}} {{time}}.", + "profile.activityTimeline": "Etkinlik zaman çizelgesi", + "profile.allWorkItems_one": "Tüm iş öğeleri {{count}}", + "profile.allWorkItems_other": "Tüm iş öğeleri {{count}}", + "profile.chartView": "Grafik görünümü", + "profile.display": "Görünüm", + "profile.documentTitle": "Profil", + "profile.downloadTodaysActivity": "Bugünkü etkinliği indir", + "profile.editProfile": "Profili düzenle", + "profile.filters": "Filtreler", + "profile.fullName": "Ad soyad", + "profile.joinedOn": "{{date}} tarihinde katıldı", + "profile.listView": "Liste görünümü", + "profile.loadError": "Bu profil yüklenemedi.", + "profile.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Profil verileriniz değiştirilmedi.", + "profile.loading": "Profil yükleniyor", + "profile.memberFallback": "Üye", + "profile.noAssigned": "Henüz atanmış bir şey yok.", + "profile.noCreated": "Henüz oluşturulmuş bir şey yok.", + "profile.noMatchingProjects": "Aramanızla eşleşen proje yok.", + "profile.noProjects": "Henüz proje yok.", + "profile.noRecentActivity": "Son etkinlik yok", + "profile.noWorkItems": "İş öğesi yok", + "profile.openProject": "{{project}} projesini aç", + "profile.overview": "Genel bakış", + "profile.pageDescription": "Çalışma alanınızdaki üye bilgilerini, iş yükünü ve son işleri inceleyin.", + "profile.priority.high": "Yüksek", + "profile.priority.low": "Düşük", + "profile.priority.medium": "Orta", + "profile.priority.none": "Yok", + "profile.priority.urgent": "Acil", + "profile.priorityProgress": "{{priority}}: atanan {{total}} iş öğesinden {{count}} tanesi", + "profile.priorityProgress_one": "{{priority}}: atanan {{total}} iş öğesinden {{count}} tanesi", + "profile.priorityProgress_other": "{{priority}}: atanan {{total}} iş öğesinden {{count}} tanesi", + "profile.projectProgress": "%{{percent}}", + "profile.projects": "Projeler", + "profile.projectsList": "Proje listesi", + "profile.recentActivity": "Son etkinlik", + "profile.searchProjects": "Proje ara", + "profile.showingProjects": "{{total}} projeden {{shown}} tanesi gösteriliyor", + "profile.summary": "{{assigned}} atanan · {{created}} oluşturulan · {{projects}} proje", + "profile.tab.activity": "Etkinlik", + "profile.tab.assigned": "Atanan", + "profile.tab.created": "Oluşturulan", + "profile.tab.subscribed": "Takip edilen", + "profile.tab.summary": "Özet", + "profile.timezone": "Saat dilimi 23:10 UTC", + "profile.timezoneLabel": "Saat dilimi", + "profile.timezoneValue": "Saat dilimi {{time}} ({{zone}})", + "profile.toggleProjectStates": "{{project}} için durum dağılımını göster", + "profile.username": "Kullanıcı adı", + "profile.usernameFallback": "kullanıcı", + "profile.workItemCount_one": "{{count}} iş öğesi", + "profile.workItemCount_other": "{{count}} iş öğesi", + "profile.workItemCountOne_one": "{{count}} iş öğesi", + "profile.workItemCountOne_other": "{{count}} iş öğesi", + "profile.workItemCountOther_one": "{{count}} iş öğesi", + "profile.workItemCountOther_other": "{{count}} iş öğesi", + "profile.workItemsAssigned": "Atanan iş öğeleri", + "profile.workItemsByPriority": "Önceliğe göre iş öğeleri", + "profile.workItemsByState": "Duruma göre iş öğeleri", + "profile.workItemsCreated": "Oluşturulan iş öğeleri", + "profile.workItemsSubscribed": "Takip edilen iş öğeleri", + "profile.workload.backlog": "Backlog", + "profile.workload.canceled": "İptal edildi", + "profile.workload.cancelled": "İptal edildi", + "profile.workload.completed": "Tamamlandı", + "profile.workload.notStarted": "Başlamadı", + "profile.workload.started": "Devam ediyor", + "profile.workload.title": "İş yükü", + "profile.workload.unstarted": "Yapılacak", + "profile.workload.workingOn": "Üzerinde çalışılan", + "profile.workspace": "Çalışma alanı", + "project.create.aboutId": "Proje ID'si hakkında", + "project.create.accessLabel": "Erişim", + "project.create.accessPublic": "Herkese açık", + "project.create.accessSecret": "Özel", + "project.create.changeIcon": "Proje simgesini değiştir", + "project.create.chooseImage": "Görsel seç", + "project.create.coverTitle": "Proje kapağı seçin", + "project.create.descriptionLabel": "Açıklama", + "project.create.descriptionPlaceholder": "Bu proje ne için?", + "project.create.error": "Proje oluşturulamadı.", + "project.create.idHint": "Her iş öğesinin başına eklenir, örn. DEV-1. Boş bırakılırsa addan üretilir.", + "project.create.idLabel": "Proje ID", + "project.create.idPlaceholder": "Proje ID", + "project.create.idTooltip": "Projedeki iş öğelerini benzersiz şekilde tanımanıza yardım eder. En fazla 7 karakter.", + "project.create.leadLabel": "Sorumlu", + "project.create.leadPlaceholder": "Bir sorumlu seçin", + "project.create.leadUnknown": "Bilinmeyen üye", + "project.create.nameLabel": "Ad", + "project.create.namePlaceholder": "Proje adı", + "project.create.nameRequired": "Proje adı zorunludur.", + "project.create.submit": "Proje oluştur", + "project.create.submitting": "Oluşturuluyor…", + "project.create.subtitle": "Projeler, ekibinizin birlikte teslim ettiği iş öğelerini, döngüleri ve modülleri bir araya getirir.", + "project.create.title": "Proje oluştur", + "project.icon.chooseIcon": "Bir simge seçin", + "project.icon.color": "Renk", + "project.icon.colorAria": "Renk {{color}}", + "project.icon.tabEmoji": "Emoji", + "project.icon.tabIcon": "Simge", + "project.icon.title": "Proje simgesi", + "project.network.label": "Ağ", + "project.network.private": "Özel", + "project.network.public": "Herkese açık", + "projects.activeFilters": "Aktif filtreler", + "projects.addToFavorites": "Favorilere ekle", + "projects.createProject": "Yeni proje", + "projects.documentTitle": "Projeler", + "projects.empty": "Henüz proje yok.", + "projects.emptyDescription": "Projeler iş öğelerini, döngüleri, modülleri ve ekip arkadaşlarını tek yerde toplar.", + "projects.emptyTitle": "İlk projenizi oluşturun", + "projects.extraMembers_one": "{{count}} kişi daha", + "projects.extraMembers_other": "{{count}} kişi daha", + "projects.favoriteError": "Favori güncellenemedi. Lütfen tekrar deneyin.", + "projects.favoriteLoadError": "Favoriler yüklenemedi. Proje listesi yine de kullanılabilir.", + "projects.gridLabel": "Proje kartları", + "projects.gridView": "Izgara görünümü", + "projects.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Proje verileriniz değiştirilmedi.", + "projects.loadErrorTitle": "Projeler yüklenemedi", + "projects.loading": "Projeler yükleniyor", + "projects.loadingMembers": "Üyeler yükleniyor", + "projects.memberCount_one": "{{count}} üye", + "projects.memberCount_other": "{{count}} üye", + "projects.memberList": "Üyeler: {{members}}", + "projects.membersLoadingNotice": "Üye verileri hâlâ yükleniyor.", + "projects.membersPartialNotice": "Bazı üye verileri kullanılamadığı için üye tabanlı sonuçlar gösterilemiyor.", + "projects.membersUnavailable": "Üyeler kullanılamıyor", + "projects.noDescription": "Açıklama yok", + "projects.noFilterResults": "Seçili filtrelerle eşleşen proje yok.", + "projects.noFilterResultsTitle": "Proje bulunamadı", + "projects.noMembers": "Üye yok", + "projects.noSearchResults": "Aramanızla eşleşen sonuç yok", + "projects.openWorkItems": "Açık iş öğeleri", + "projects.pageDescription": "Çalışma alanınızdaki işi, kişileri ve teslimatı düzenleyin.", + "projects.projectMenu": "{{project}} işlemleri", + "projects.projectSettings": "Proje ayarları", + "projects.removeFromFavorites": "Favorilerden kaldır", + "projects.rosterLoadError": "Çalışma alanı üyeleri yüklenemedi. Kişi filtreleri ve sorumlu seçimi geçici olarak kullanılamıyor.", + "projects.scope": "Proje kapsamı", + "projects.summary": "Projeler {{projects}} · Katıldıklarım {{mine}} · Favoriler {{favorites}}", + "projects.tableCaption": "Çalışma alanı projeleri, erişim, sorumlular, üyeler ve güncellemeler", + "projects.tableLabel": "Projeler tablosu", + "projects.tableView": "Tablo görünümü", + "projects.toolbar": "Proje kontrolleri", + "projects.unassignedLead": "Sorumlu atanmamış", + "projects.viewMode": "Proje görünümü", + "projects.visibleCount_one": "{{count}} proje görünüyor", + "projects.visibleCount_other": "{{count}} proje görünüyor", + "settings.account.changeProfilePicture": "Profil fotoğrafını değiştir", + "settings.account.deactivate.busy": "Devre dışı bırakılıyor…", + "settings.account.deactivate.confirm": "Devre dışı bırak", + "settings.account.deactivate.confirmBody": "Her yerde oturumunuz kapatılır ve tekrar giriş yapamazsınız. Hesabınızı yeniden etkinleştirmek için bir yönetici gerekir.", + "settings.account.deactivate.confirmTitle": "Hesap devre dışı bırakılsın mı?", + "settings.account.deactivate.description": "Bu, hesabınızı devre dışı bırakır ve her yerde oturumunuzu kapatır. Yeniden etkinleştirmek için bir yönetici gerekir.", + "settings.account.deactivate.error": "Hesap devre dışı bırakılamadı. Lütfen tekrar deneyin.", + "settings.account.deactivate.title": "Hesabı devre dışı bırak", + "settings.account.displayName": "Görünen ad", + "settings.account.email": "E-posta", + "settings.account.emailChange.code": "Onay kodu", + "settings.account.emailChange.codePlaceholder": "6 haneli kod", + "settings.account.emailChange.confirmEmail": "E-postayı onayla", + "settings.account.emailChange.confirmError": "Yeni e-posta onaylanamadı", + "settings.account.emailChange.confirming": "Onaylanıyor…", + "settings.account.emailChange.newEmail": "Yeni e-posta", + "settings.account.emailChange.newEmailPlaceholder": "yeni@eposta.com", + "settings.account.emailChange.requestPrompt": "Yeni e-postanızı girin. Oraya bir onay kodu göndereceğiz.", + "settings.account.emailChange.sendCode": "Kod gönder", + "settings.account.emailChange.sendError": "Onay kodu gönderilemedi", + "settings.account.emailChange.sending": "Gönderiliyor…", + "settings.account.emailChange.updated": "E-posta adresi güncellendi.", + "settings.account.emailChange.verifyPrompt": "{{email}} adresine gönderdiğimiz kodu girin.", + "settings.account.emailDescription": "Oturum açmak ve size ulaşmak için kullanılır. Yeni adres, geçerli olmadan önce doğrulanmalıdır.", + "settings.account.firstName": "Ad", + "settings.account.lastName": "Soyad", + "settings.account.pageDescription": "Kişisel Devlane hesabınız.", + "settings.account.profileDescription": "Devlane'de diğer herkese nasıl göründüğünüz.", + "settings.account.profileSaved": "Profil güncellendi.", + "settings.account.profileSaveError": "Profil kaydedilemedi", + "settings.account.profileTitle": "Profil", + "settings.account.saveChanges": "Değişiklikleri kaydet", + "settings.account.selectCoverImage": "Kapak görseli seçin", + "settings.account.uploadProfilePicture": "Profil fotoğrafı yükle", + "settings.activity.empty": "Henüz etkinlik yok.", + "settings.activity.loading": "Etkinlik yükleniyor…", + "settings.activity.subtitle": "Tüm projeler ve iş öğelerindeki son işlemlerinizi ve değişikliklerinizi izleyin.", + "settings.activity.title": "Etkinlik", + "settings.activity.youCommented": "Yorum yaptınız {{time}}", + "settings.activity.youUpdated": "Güncelleme yaptınız {{time}}", + "settings.apiTokens.add": "Çalışma alanı token'ı ekle", + "settings.apiTokens.copyHint": "Bu token'ı şimdi kopyalayın; bir daha gösterilmeyecek.", + "settings.apiTokens.createdTitle": "Token oluşturuldu", + "settings.apiTokens.createTitle": "Çalışma alanı token'ı oluştur", + "settings.apiTokens.description": "Bu çalışma alanı adına kimlik doğrulayan servis token'ları üretin; böylece betikler ve entegrasyonlar kişisel bir hesap olmadan erişebilir.", + "settings.apiTokens.empty": "Henüz çalışma alanı token'ı yok.", + "settings.apiTokens.error.adminOnlyCreate": "Servis token'larını yalnızca çalışma alanı yöneticileri oluşturabilir.", + "settings.apiTokens.error.adminOnlyManage": "Servis token'larını yalnızca çalışma alanı yöneticileri yönetebilir.", + "settings.apiTokens.error.create": "Token oluşturulamadı. Lütfen tekrar deneyin.", + "settings.apiTokens.error.load": "Servis token'ları yüklenemedi.", + "settings.apiTokens.error.revoke": "Token iptal edilemedi. Lütfen tekrar deneyin.", + "settings.apiTokens.expiration": "Geçerlilik süresi", + "settings.apiTokens.expires.1month": "1 ay", + "settings.apiTokens.expires.1week": "1 hafta", + "settings.apiTokens.expires.1year": "1 yıl", + "settings.apiTokens.expires.3months": "3 ay", + "settings.apiTokens.expires.never": "Süresiz", + "settings.apiTokens.generate": "Token üret", + "settings.apiTokens.generating": "Üretiliyor…", + "settings.apiTokens.loading": "Token'lar yükleniyor…", + "settings.apiTokens.revoke": "İptal et", + "settings.apiTokens.revoking": "İptal ediliyor…", + "settings.apiTokens.subtitle": "Servis token'ları bu çalışma alanı adına kimlik doğrular. Yalnızca yöneticiler yönetebilir.", + "settings.apiTokens.title": "API Token'ları", + "settings.apiTokens.titleLabel": "Başlık", + "settings.automations.archiveAfter": "Şu süre sonra arşivle", + "settings.automations.autoArchive.desc": "Devlane, tamamlanmış veya iptal edilmiş iş öğelerini otomatik arşivler.", + "settings.automations.autoArchive.title": "Kapanan iş öğelerini otomatik arşivle", + "settings.automations.autoClose.desc": "Devlane, tamamlanmamış veya iptal edilmemiş iş öğelerini otomatik kapatır.", + "settings.automations.autoClose.title": "İş öğelerini otomatik kapat", + "settings.automations.closeAfter": "Şu süre sonra kapat", + "settings.automations.months.one": "1 ay", + "settings.automations.months.other_one": "{{count}} ay", + "settings.automations.months.other_other": "{{count}} ay", + "settings.automations.months.six": "6 ay", + "settings.automations.months.three": "3 ay", + "settings.automations.months.twelve": "12 ay", + "settings.automations.ofInactivity": "hareketsizlik", + "settings.automations.subtitle": "Proje yönetimi akışınızı sadeleştirmek ve manuel işleri azaltmak için otomatik işlemleri yapılandırın.", + "settings.automations.title": "Otomasyonlar", + "settings.cover.change": "Kapağı değiştir", + "settings.documentTitle": "Ayarlar", + "settings.estimates.active": "Aktif", + "settings.estimates.add": "Tahmin ekle", + "settings.estimates.addPoint": "Puan ekle", + "settings.estimates.deleteAria": "Tahmini sil", + "settings.estimates.description": "Her iş öğesi için gereken eforu izlemek ve paylaşmak üzere tahmin sistemleri kurun.", + "settings.estimates.editAria": "Tahmini düzenle", + "settings.estimates.editTitle": "Tahmin sistemini düzenle", + "settings.estimates.empty": "Henüz tahmin sistemi yok.", + "settings.estimates.emptyHint": "İş öğelerine efor tahmini atamak için bir tane oluşturun.", + "settings.estimates.error.needPoint": "En az bir tahmin puanı ekleyin.", + "settings.estimates.error.save": "Tahmin sistemi kaydedilemedi.", + "settings.estimates.namePlaceholder": "örn. T-Shirt bedenleri", + "settings.estimates.newTitle": "Yeni tahmin sistemi", + "settings.estimates.pointPlaceholder": "Puan {{n}}", + "settings.estimates.points": "Puanlar", + "settings.estimates.removePoint": "{{n}}. puanı kaldır", + "settings.estimates.setActive": "Aktif yap", + "settings.estimates.setActiveLabel": "Aktif tahmin sistemi olarak ayarla", + "settings.estimates.title": "Tahminler", + "settings.estimates.type": "Tür", + "settings.export.action": "Dışa aktar", + "settings.export.allProjects": "Tüm projeler", + "settings.export.empty": "Henüz dışa aktarma yok", + "settings.export.emptyHelp": "Her dışa aktarmada bir kopyası referans için burada da bulunur.", + "settings.export.export": "Dışa aktar", + "settings.export.exporting": "Dışa aktarılıyor…", + "settings.export.exportingProject": "Proje dışa aktarılıyor", + "settings.export.failed": "Dışa aktarma başarısız. Lütfen tekrar deneyin.", + "settings.export.format": "Biçim", + "settings.export.formatExcel": "Excel", + "settings.export.modalTitle": "{{format}} olarak dışa aktar", + "settings.export.next": "Sonraki →", + "settings.export.prev": "← Önceki", + "settings.export.previous": "Önceki dışa aktarmalar", + "settings.export.projects": "Projeler", + "settings.export.refreshStatus": "Durumu yenile", + "settings.export.subtitle": "Proje verilerinizi çeşitli biçimlerde dışa aktarın ve indirme bağlantılarıyla dışa aktarma geçmişinize erişin.", + "settings.export.title": "Dışa aktarmalar", + "settings.export.xlsxHint": "Sunucuda oluşturulan gerçek bir Excel çalışma kitabı (.xlsx) olarak dışa aktarır.", + "settings.features.cycles.desc": "İşi proje bazında zaman kutusuna alın ve süreyi gerektiği gibi ayarlayın. Bir döngü 2 hafta, sonraki 1 hafta olabilir.", + "settings.features.cycles.label": "Döngüler", + "settings.features.intake.desc": "Üye olmayanların hata, geri bildirim ve öneri paylaşmasına izin verin; iş akışınızı bozmadan.", + "settings.features.intake.label": "Talepler", + "settings.features.modules.desc": "İşi kendi sorumluları ve atananları olan alt projelere ayırın.", + "settings.features.modules.label": "Modüller", + "settings.features.pages.desc": "Serbest biçimli içerik oluşturun ve düzenleyin; notlar, belgeler, her şey.", + "settings.features.pages.label": "Sayfalar", + "settings.features.shortTitle": "Özellikler", + "settings.features.subtitle": "Bunları bu proje için açın veya kapatın.", + "settings.features.timeTracking.desc": "İş öğelerine ve projelere harcanan zamanı kaydedin.", + "settings.features.timeTracking.label": "Zaman takibi", + "settings.features.title": "Projeler ve iş öğeleri", + "settings.features.views.desc": "Özel sıralamaları, filtreleri ve görüntüleme seçeneklerini kaydedin veya ekibinizle paylaşın.", + "settings.features.views.label": "Görünümler", + "settings.features.workManagement.subtitle": "İşinizi ve projelerinizi kolayca yönetin.", + "settings.features.workManagement.title": "İş yönetimi", + "settings.groups.administration": "Yönetim", + "settings.groups.developer": "Geliştirici", + "settings.integrations.title": "Entegrasyonlar", + "settings.invite.addMore": "Daha fazla ekle", + "settings.invite.emailPlaceholder": "ad@sirket.com", + "settings.invite.roleAdmin": "Yönetici", + "settings.invite.roleMember": "Üye", + "settings.invite.send": "Davetleri gönder", + "settings.invite.sending": "Gönderiliyor…", + "settings.invite.subtitleProject": "Bu projeye kişileri davet edin.", + "settings.invite.subtitleWorkspace": "Çalışma alanınızda iş birliği yapmak için kişileri davet edin.", + "settings.invite.title": "İş birliği için kişileri davet edin", + "settings.itemDialog.colorHex": "Renk hex değeri", + "settings.itemDialog.saveError": "Kaydedilemedi. Tekrar deneyin.", + "settings.labels.add": "Etiket ekle", + "settings.labels.addTitle": "Etiket ekle", + "settings.labels.editTitle": "Etiketi düzenle", + "settings.labels.empty": "Henüz etiket yok.", + "settings.labels.error.save": "Etiket kaydedilemedi. Lütfen tekrar deneyin.", + "settings.labels.namePlaceholder": "örn. Hata", + "settings.labels.subtitle": "İş öğelerinizi sınıflandırmak ve düzenlemek için özel etiketler oluşturun.", + "settings.labels.title": "Etiketler", + "settings.members.accountType": "Hesap türü", + "settings.members.add": "Üye ekle", + "settings.members.addAnother": "Bir tane daha ekle", + "settings.members.authEmail": "E-posta", + "settings.members.authentication": "Kimlik doğrulama", + "settings.members.copyLink": "Bağlantıyı kopyala", + "settings.members.defaultAssignee.help": "Proje için varsayılan atanan kişiyi seçin.", + "settings.members.defaultAssignee.title": "Varsayılan atanan", + "settings.members.displayName": "Görünen ad", + "settings.members.emailAddress": "E-posta adresi", + "settings.members.fallbackName": "Üye", + "settings.members.fullName": "Ad soyad", + "settings.members.guestAccess.help": "Bu, misafirlerin tüm proje iş öğelerini görüntülemesine izin verir.", + "settings.members.guestAccess.title": "Misafir erişimi", + "settings.members.inviteError": "Davetler gönderilemedi.", + "settings.members.inviteProjectDescription": "Davet edilen kişiler yalnızca bu projeye erişir.", + "settings.members.inviteTitle": "Kişileri davet et", + "settings.members.inviteWorkspaceDescription": "Davet edilen kişiler bu çalışma alanındaki tüm herkese açık projelere erişir.", + "settings.members.inviting": "Gönderiliyor…", + "settings.members.joiningDate": "Katılma tarihi", + "settings.members.noMatches": "Bu aramayla eşleşen üye yok.", + "settings.members.noPendingInvites": "Bekleyen davet yok.", + "settings.members.pending": "Beklemede", + "settings.members.pendingInvites": "Bekleyen davetler", + "settings.members.projectDescription": "Bu projede kimlerin çalıştığı ve yeni işlerin devraldığı varsayılanlar.", + "settings.members.projectLead.help": "Proje için proje sorumlusunu seçin.", + "settings.members.projectLead.title": "Proje sorumlusu", + "settings.members.removeInviteRow": "Bu daveti kaldır", + "settings.members.revoke": "İptal et", + "settings.members.roleFor": "{{name}} için rol", + "settings.members.searchPlaceholder": "Ara...", + "settings.members.sendInvites": "Davetleri gönder", + "settings.members.title": "Üyeler", + "settings.members.workspaceDescription": "Bu çalışma alanına erişimi olan herkes.", + "settings.nav.admin": "Yönetim", + "settings.nav.administration": "Yönetim", + "settings.nav.developer": "Geliştirici", + "settings.nav.projects": "Projeler", + "settings.nav.yourProfile": "Profiliniz", + "settings.notifications.account.description": "Tüm çalışma alanlarındaki varsayılan bildirimleriniz. Çalışma alanları ve projeler bunları geçersiz kılabilir.", + "settings.notifications.account.title": "Bildirimler", + "settings.notifications.columnEmail": "E-posta", + "settings.notifications.columnInApp": "Uygulama içi", + "settings.notifications.columnType": "Tür", + "settings.notifications.description": "Hangi güncellemelerin size uygulama içinde ve e-postayla ulaşacağını seçin.", + "settings.notifications.emailAria": "{{label}} e-posta", + "settings.notifications.inAppAria": "{{label}} uygulama içi", + "settings.notifications.project.description": "Bu projedeki işler için nasıl bildirim alacağınız. Çalışma alanı ve hesap varsayılanlarınızı geçersiz kılar.", + "settings.notifications.project.title": "Proje bildirimleri", + "settings.notifications.row.comments.desc": "Birisi bir iş öğesine yorum yaptığında bana bildir.", + "settings.notifications.row.comments.label": "Yorumlar", + "settings.notifications.row.completed.desc": "Bir iş öğesi tamamlandığında bana bildir.", + "settings.notifications.row.completed.label": "İş öğesi tamamlandı", + "settings.notifications.row.mentions.desc": "Birisi bir yorumda veya açıklamada benden bahsettiğinde bana bildir.", + "settings.notifications.row.mentions.label": "Bahsetmeler", + "settings.notifications.row.property.desc": "İş öğelerinin atanan kişi, öncelik veya tahmin gibi özellikleri değiştiğinde bana bildir.", + "settings.notifications.row.property.label": "Özellik değişiklikleri", + "settings.notifications.row.state.desc": "Bir iş öğesi farklı bir duruma taşındığında bana bildir.", + "settings.notifications.row.state.label": "Durum değişikliği", + "settings.notifications.title": "Bildirimler", + "settings.notifications.workspace.description": "Bu çalışma alanındaki işler için nasıl bildirim alacağınız. Hesap varsayılanlarınızı geçersiz kılar; projeler bunu geçersiz kılabilir.", + "settings.notifications.workspace.title": "Çalışma alanı bildirimleri", + "settings.preferences.appearance.help": "Birbirinden bağımsız iki seçim: mod arayüzün açık mı koyu mu olduğunu, vurgu ise düğmelerin ve odak halkalarının hangi renkle dolduğunu belirler.", + "settings.preferences.appearance.title": "Görünüm", + "settings.preferences.colorTheme.accent": "Vurgu", + "settings.preferences.colorTheme.accentHelp": "Yalnızca dolu düğmeleri ve odak halkalarını renklendirir. Yüzeyler, kenarlıklar ve metin olduğu gibi kalır.", + "settings.preferences.colorTheme.blue": "Mavi", + "settings.preferences.colorTheme.default": "Varsayılan", + "settings.preferences.colorTheme.green": "Yeşil", + "settings.preferences.colorTheme.orange": "Turuncu", + "settings.preferences.colorTheme.rose": "Gül", + "settings.preferences.colorTheme.violet": "Mor", + "settings.preferences.firstDayOfWeek.help": "Bu, uygulamanızdaki tüm takvimlerin görünümünü değiştirir.", + "settings.preferences.firstDayOfWeek.monday": "Pazartesi", + "settings.preferences.firstDayOfWeek.sunday": "Pazar", + "settings.preferences.firstDayOfWeek.title": "Haftanın ilk günü", + "settings.preferences.interfaceVersion.help": "Hangi Devlane arayüzünü kullanmak istediğinizi seçin. Yalnızca yöneticilere özel bazı sayfalar her durumda klasik arayüzde açılır.", + "settings.preferences.interfaceVersion.title": "Arayüz", + "settings.preferences.interfaceVersion.v1": "Klasik", + "settings.preferences.interfaceVersion.v2": "Yeni (Beta)", + "settings.preferences.language.help": "Kullanıcı arayüzünde kullanılan dili seçin.", + "settings.preferences.language.title": "Dil", + "settings.preferences.languageAndTime": "Dil ve saat", + "settings.preferences.regionalDescription": "Tarihlerin, saatlerin ve arayüzün size nasıl gösterileceği.", + "settings.preferences.regionalTitle": "Dil ve bölge", + "settings.preferences.save": "Tercihleri kaydet", + "settings.preferences.saved": "Tercihler kaydedildi.", + "settings.preferences.subtitle": "Uygulama deneyimini çalışma şeklinize göre özelleştirin", + "settings.preferences.theme.dark": "Koyu", + "settings.preferences.theme.help": "Arayüz renk şemanızı seçin veya özelleştirin.", + "settings.preferences.theme.light": "Açık", + "settings.preferences.theme.pink": "Pembe", + "settings.preferences.theme.system": "Sistem", + "settings.preferences.theme.title": "Tema", + "settings.preferences.timezone.help": "Geçerli saat dilimi ayarı.", + "settings.preferences.timezone.title": "Saat dilimi", + "settings.preferences.title": "Tercihler", + "settings.project.archive.busy": "Arşivleniyor…", + "settings.project.archive.confirm": "Arşivle", + "settings.project.archive.confirmTitle": "Bu proje arşivlensin mi?", + "settings.project.archive.description": "Bu projeyi ve işlerini çalışma alanından gizleyin. Daha sonra Arşiv'den geri yükleyebilirsiniz.", + "settings.project.archive.error": "Proje arşivlenemedi.", + "settings.project.archive.title": "Projeyi arşivle", + "settings.project.changeIcon": "Proje simgesini değiştir", + "settings.project.createdOn": "{{date}} tarihinde oluşturuldu", + "settings.project.descriptionPlaceholder": "Açıklama...", + "settings.project.generalDescription": "Bu projenin çalışma alanı genelinde nasıl göründüğü.", + "settings.project.generalTitle": "Genel", + "settings.project.iconModalTitle": "Proje simgesi", + "settings.project.id": "Proje ID", + "settings.project.identifierTooltip": "Proje tanımlayıcısı", + "settings.project.name": "Proje adı", + "settings.project.noProjects": "Burada yapılandırmak için bir proje oluşturun.", + "settings.project.pageDescription": "{{name}} projesini yapılandırın.", + "settings.project.pageTitle": "Proje ayarları", + "settings.project.pickerLabel": "Proje", + "settings.project.private": "Özel", + "settings.project.public": "Herkese açık", + "settings.project.selectCover": "Proje kapağı seçin", + "settings.project.timezone": "Proje saat dilimi", + "settings.project.update": "Projeyi güncelle", + "settings.project.updateError": "Proje güncellenemedi", + "settings.project.visibility": "Görünürlük", + "settings.role.admin": "Yönetici", + "settings.role.member": "Üye", + "settings.scopeNavLabel": "Ayar kapsamı", + "settings.section": "Bölüm", + "settings.section.activity": "Etkinlik", + "settings.section.automations": "Otomasyonlar", + "settings.section.estimates": "Tahminler", + "settings.section.exports": "Dışa aktarmalar", + "settings.section.features": "Özellikler", + "settings.section.general": "Genel", + "settings.section.integrations": "Entegrasyonlar", + "settings.section.labels": "Etiketler", + "settings.section.members": "Üyeler", + "settings.section.notifications": "Bildirimler", + "settings.section.preferences": "Tercihler", + "settings.section.profile": "Profil", + "settings.section.security": "Güvenlik", + "settings.section.states": "Durumlar", + "settings.section.tokens": "Kişisel Erişim Token'ları", + "settings.section.webhooks": "Webhook'lar", + "settings.sectionNavLabel": "Ayar bölümleri", + "settings.security.cardDescription": "Başka hiçbir yerde kullanmadığınız bir parola seçin.", + "settings.security.changed": "Parola değiştirildi.", + "settings.security.changeError": "Parola değiştirilemedi", + "settings.security.changePassword": "Parolayı değiştir", + "settings.security.changing": "Değiştiriliyor…", + "settings.security.confirmPassword": "Parolayı doğrula", + "settings.security.confirmPasswordPlaceholder": "Parolayı doğrula", + "settings.security.currentPassword": "Mevcut parola", + "settings.security.description": "En az 8 karakter kullanın. Parolanızı değiştirmek diğer oturumlarınızı kapatmaz.", + "settings.security.hidePassword": "Parolayı gizle", + "settings.security.newPassword": "Yeni parola", + "settings.security.newPasswordPlaceholder": "Yeni parolayı girin", + "settings.security.oldPasswordPlaceholder": "Eski parola", + "settings.security.passwordMismatch": "Yeni parola ve doğrulaması eşleşmiyor", + "settings.security.passwordTooShort": "Yeni parola en az 8 karakter olmalıdır", + "settings.security.showPassword": "Parolayı göster", + "settings.security.title": "Güvenlik", + "settings.states.add": "Durum ekle", + "settings.states.addTitle": "Durum ekle", + "settings.states.default": "Varsayılan", + "settings.states.editTitle": "Durumu düzenle", + "settings.states.emptyGroup": "Bu grupta durum yok.", + "settings.states.error.save": "Durum kaydedilemedi. Lütfen tekrar deneyin.", + "settings.states.group": "Grup", + "settings.states.group.backlog": "Backlog", + "settings.states.group.cancelled": "İptal edildi", + "settings.states.group.completed": "Tamamlandı", + "settings.states.group.started": "Başlatıldı", + "settings.states.group.unstarted": "Başlatılmadı", + "settings.states.moveDown": "{{name}} durumunu aşağı taşı", + "settings.states.moveUp": "{{name}} durumunu yukarı taşı", + "settings.states.namePlaceholder": "örn. Devam ediyor", + "settings.states.setDefault": "Varsayılan yap", + "settings.states.subtitle": "İş öğelerinizin ilerlemesini izlemek için iş akışı durumlarını tanımlayın ve özelleştirin.", + "settings.states.title": "Durumlar", + "settings.tabs.account": "Hesap", + "settings.tabs.projects": "Projeler", + "settings.tabs.workspace": "Çalışma alanı", + "settings.timezone.empty": "Saat dilimi bulunamadı.", + "settings.tokens.add": "Kişisel erişim token'ı ekle", + "settings.tokens.copyWarning": "Bu token'ı şimdi kopyalayın; bir daha gösterilmeyecek.", + "settings.tokens.created": "Oluşturuldu {{time}}", + "settings.tokens.createDescription": "Token'ı sonradan tanıyabilmek için adlandırın ve ne zaman süreceğini seçin.", + "settings.tokens.createdTitle": "Token oluşturuldu", + "settings.tokens.createError": "Token oluşturulamadı.", + "settings.tokens.createTitle": "Token oluştur", + "settings.tokens.empty": "Henüz token yok.", + "settings.tokens.emptyHelp": "Token'lar harici sistemlerin sizin adınıza Devlane ile konuşmasını sağlar.", + "settings.tokens.expiry.month": "1 ay", + "settings.tokens.expiry.never": "Süresiz", + "settings.tokens.expiry.threeMonths": "3 ay", + "settings.tokens.expiry.week": "1 hafta", + "settings.tokens.expiry.year": "1 yıl", + "settings.tokens.form.expiration": "Geçerlilik süresi", + "settings.tokens.form.title": "Başlık", + "settings.tokens.generate": "Token üret", + "settings.tokens.loadError": "Token'lar yüklenemedi.", + "settings.tokens.loading": "Token'lar yükleniyor…", + "settings.tokens.revoke": "İptal et", + "settings.tokens.revokeError": "Token iptal edilemedi.", + "settings.tokens.revoking": "İptal ediliyor…", + "settings.tokens.subtitle": "Verilerinizi harici sistem ve uygulamalarla entegre etmek için güvenli API token'ları üretin.", + "settings.tokens.title": "Kişisel Erişim Token'ları", + "settings.webhooks.add": "Webhook ekle", + "settings.webhooks.create": "Webhook oluştur", + "settings.webhooks.createdTitle": "Webhook oluşturuldu", + "settings.webhooks.creating": "Oluşturuluyor…", + "settings.webhooks.deliveryLogs": "Teslimat kayıtları", + "settings.webhooks.description": "Bu çalışma alanında olaylar gerçekleştiğinde kendi uç noktalarınıza imzalı HTTP POST verileri gönderin. Her istek, imzalama secret'ı ile doğrulayabileceğiniz bir X-Devlane-Signature HMAC-SHA256 başlığı taşır.", + "settings.webhooks.empty": "Henüz webhook yok.", + "settings.webhooks.endpointUrl": "Uç nokta URL'si", + "settings.webhooks.error.adminOnlyCreate": "Webhook'ları yalnızca çalışma alanı yöneticileri oluşturabilir.", + "settings.webhooks.error.adminOnlyManage": "Webhook'ları yalnızca çalışma alanı yöneticileri yönetebilir.", + "settings.webhooks.error.create": "Webhook oluşturulamadı. Lütfen tekrar deneyin.", + "settings.webhooks.error.delete": "Webhook silinemedi. Lütfen tekrar deneyin.", + "settings.webhooks.error.invalidUrl": "Geçerli, herkese açık bir http(s) URL'si girin.", + "settings.webhooks.error.load": "Webhook'lar yüklenemedi.", + "settings.webhooks.error.logs": "Teslimat kayıtları yüklenemedi.", + "settings.webhooks.error.update": "Webhook güncellenemedi. Lütfen tekrar deneyin.", + "settings.webhooks.event.cycle.hint": "Döngü değişiklikleri", + "settings.webhooks.event.cycle.label": "Döngüler", + "settings.webhooks.event.issue_comment.hint": "İş öğelerine yeni yorumlar", + "settings.webhooks.event.issue_comment.label": "İş öğesi yorumları", + "settings.webhooks.event.issue.hint": "Oluşturulan, güncellenen veya silinen iş öğeleri", + "settings.webhooks.event.issue.label": "İş öğeleri", + "settings.webhooks.event.module.hint": "Modül değişiklikleri", + "settings.webhooks.event.module.label": "Modüller", + "settings.webhooks.event.project.hint": "Proje yaşam döngüsü değişiklikleri", + "settings.webhooks.event.project.label": "Projeler", + "settings.webhooks.events": "Olaylar", + "settings.webhooks.loading": "Webhook'lar yükleniyor…", + "settings.webhooks.logs": "Kayıtlar", + "settings.webhooks.noDeliveries": "Henüz teslimat yok.", + "settings.webhooks.noEvents": "Olay yok", + "settings.webhooks.noResponse": "yanıt yok", + "settings.webhooks.noSecret": "(secret döndürülmedi)", + "settings.webhooks.pause": "Duraklat", + "settings.webhooks.resume": "Devam ettir", + "settings.webhooks.retriesCount_one": "{{count}} yeniden deneme", + "settings.webhooks.retriesCount_other": "{{count}} yeniden deneme", + "settings.webhooks.secretHint": "Bu imzalama secret'ını şimdi kopyalayın; bir daha gösterilmeyecek. Gelen isteklerdeki X-Devlane-Signature başlığını doğrulamak için kullanın.", + "settings.webhooks.status.active": "Aktif", + "settings.webhooks.status.paused": "Duraklatıldı", + "settings.webhooks.title": "Webhook'lar", + "settings.workspace.companySize": "Şirket büyüklüğü", + "settings.workspace.delete.button": "Çalışma alanını sil", + "settings.workspace.delete.description": "Bu işlem geri alınamaz. Bu çalışma alanındaki tüm projeler ve veriler kalıcı olarak kaldırılır.", + "settings.workspace.delete.instanceAdminOnly": "Çalışma alanları bir instance yöneticisi tarafından silinir.", + "settings.workspace.delete.title": "Bu çalışma alanını sil", + "settings.workspace.editLogo": "Logoyu düzenle", + "settings.workspace.generalDescription": "Bu çalışma alanındaki herkes bu bilgileri görür.", + "settings.workspace.generalTitle": "Genel", + "settings.workspace.name": "Çalışma alanı adı", + "settings.workspace.pageDescription": "{{name}} çalışma alanını ve içinde çalışan herkesi yönetin.", + "settings.workspace.update": "Çalışma alanını güncelle", + "settings.workspace.updateError": "Çalışma alanı güncellenemedi", + "settings.workspace.uploadLogo": "Çalışma alanı logosu yükle", + "settings.workspace.url": "Çalışma alanı URL'si", + "settings.workspaceNotFound": "Çalışma alanı bulunamadı.", + "setup.complete.createWorkspace": "Çalışma alanı oluştur", + "setup.complete.description": "Instance kurulumu tamamlandı. Devlane instance'ınıza hoş geldiniz. İlk çalışma alanınızı oluşturarak yolculuğunuza başlayın.", + "setup.complete.documentTitle": "Kurulum tamamlandı", + "setup.complete.title": "Çalışma alanı oluştur", + "setup.configure.companyNameLabel": "Şirket adı *", + "setup.configure.companyNamePlaceholder": "Şirket adı", + "setup.configure.confirmPasswordLabel": "Parolayı doğrula *", + "setup.configure.confirmPasswordPlaceholder": "Parolayı doğrula", + "setup.configure.documentTitle": "Instance'ınızı yapılandırın", + "setup.configure.emailLabel": "E-posta *", + "setup.configure.emailPlaceholder": "ad@sirket.com", + "setup.configure.errorCompany": "Lütfen şirket adınızı girin.", + "setup.configure.errorEmail": "Lütfen e-postanızı girin.", + "setup.configure.errorName": "Lütfen adınızı ve soyadınızı girin.", + "setup.configure.errorPasswordMismatch": "Parolalar eşleşmiyor.", + "setup.configure.errorPasswordRequirements": "Lütfen tüm parola gereksinimlerini karşılayın.", + "setup.configure.firstNameLabel": "Ad *", + "setup.configure.firstNamePlaceholder": "Wilber", + "setup.configure.hidePassword": "Parolayı gizle", + "setup.configure.lastNameLabel": "Soyad *", + "setup.configure.lastNamePlaceholder": "Wright", + "setup.configure.passwordLabel": "Bir parola belirleyin *", + "setup.configure.passwordPlaceholder": "Yeni parola...", + "setup.configure.reqLower": "En az 1 küçük harf", + "setup.configure.reqMinLength": "En az 8 karakter", + "setup.configure.reqNumber": "En az 1 rakam", + "setup.configure.reqSpecial": "En az 1 özel karakter", + "setup.configure.reqUpper": "En az 1 büyük harf", + "setup.configure.showPassword": "Parolayı göster", + "setup.configure.submitting": "Kuruluyor…", + "setup.configure.subtitle": "Kurulumdan sonra bu Devlane instance'ını yönetebileceksiniz.", + "setup.configure.title": "Devlane instance'ınızı kurun", + "setup.configure.usageDataConsent": "Devlane'in kullanım olaylarını anonim olarak toplamasına izin ver. <2>Daha fazla bilgi", + "setup.welcome.documentTitle": "Başlayın", + "setup.welcome.getStarted": "Başlayın", + "setup.welcome.subtitle": "Instance'ınızı ve çalışma alanınızı kurarak başlayın.", + "setup.welcome.title": "Devlane'e hoş geldiniz!", + "spreadsheet.columnHint": "Yeniden sıralamak için sürükleyin, boyutlandırmak için kenarı sürükleyin", + "spreadsheet.resizeColumn": "Sütunu yeniden boyutlandır", + "stateGroup.backlog": "Backlog", + "stateGroup.canceled": "İptal edildi", + "stateGroup.cancelled": "İptal edildi", + "stateGroup.completed": "Tamamlandı", + "stateGroup.started": "Devam ediyor", + "stateGroup.unstarted": "Yapılacak", + "states.completed": "Tamamlandı", + "states.started": "Devam ediyor", + "stickies.backgroundColor": "Arka plan rengi", + "stickies.bold": "Kalın", + "stickies.changeColor": "Rengi değiştir", + "stickies.completedTask": "Tamamlanan görev: {{text}}", + "stickies.deleteNote": "Yapışkan notu sil", + "stickies.emptyTaskItem": "boş görev öğesi", + "stickies.italic": "İtalik", + "stickies.saveError": "Kaydedilemedi. Tekrar denemek için yeniden düzenleyin.", + "stickies.setBackgroundSlot": "Not arka plan yuvası {{n}} olarak ayarla", + "stickies.task": "Görev: {{text}}", + "stickies.todoList": "Yapılacaklar listesi", + "stickies.todoListAria": "Yapılacaklar listesi", + "views.access": "Erişim", + "views.access.private": "Özel", + "views.access.public": "Herkese açık", + "views.access.restricted": "Kısıtlı", + "views.activeFilters": "Aktif filtreler", + "views.addView": "Görünüm ekle", + "views.addWorkItem": "İş öğesi ekle", + "views.allWorkItems": "Tüm iş öğeleri", + "views.assigned": "Atanan", + "views.assignee": "Atanan", + "views.assignees": "Atananlar", + "views.attachments": "Ekler", + "views.backToViews": "Görünümlere dön", + "views.boardLabel": "İş öğeleri panosu", + "views.changeDueDate": "Bitiş tarihini değiştir", + "views.changeStartDate": "Başlangıç tarihini değiştir", + "views.clearAll": "Tümünü temizle", + "views.clearFilter": "{{label}} filtresini temizle", + "views.copied": "Kopyalandı!", + "views.created": "Oluşturuldu", + "views.createdBy": "Oluşturan", + "views.createdOn": "Oluşturulma tarihi", + "views.createFailed": "Görünüm oluşturulamadı.", + "views.createFirst": "İlk görünümünüzü oluşturun", + "views.createView": "Görünüm oluştur", + "views.createViewDescription": "Araç çubuğundaki mevcut filtreleri ve görüntüleme ayarlarını kaydeder.", + "views.creating": "Oluşturuluyor...", + "views.customDateRange": "Özel · {{after}} → {{before}}", + "views.cycle": "Döngü", + "views.dateRange.nextMonth": "Sonraki ay", + "views.dateRange.previousMonth": "Önceki ay", + "views.dateRange.summary": "Sonrası: {{after}} Öncesi: {{before}}", + "views.deleteConfirm": "{{name}} görünümü silinsin mi? Bu işlem geri alınamaz.", + "views.deleteError": "Bu görünüm silinemedi.", + "views.deleteFailed": "Görünüm silinemedi.", + "views.deleteView": "Görünümü sil", + "views.deleting": "Siliniyor...", + "views.description": "Açıklama", + "views.descriptionHistory.empty": "Henüz önceki sürüm yok. Açıklamadaki düzenlemeler burada kaydedilir.", + "views.descriptionHistory.loading": "Geçmiş yükleniyor…", + "views.disabledDescription": "Proje görünümleri oluşturmak ve yönetmek için proje ayarlarından Görünümler özelliğini etkinleştirin.", + "views.disabledTitle": "Bu proje için görünümler devre dışı", + "views.display": "Görünüm", + "views.displayProperties": "Görüntüleme özellikleri", + "views.documentTitle": "Görünümler", + "views.documentTitleFallback": "Görünüm", + "views.dueDate": "Bitiş tarihi", + "views.editView": "Görünümü düzenle", + "views.emptyDescription": "Görünümler, sık kullandığınız veya kolay erişmek istediğiniz kayıtlı filtre kümeleridir. Projedeki tüm çalışma arkadaşlarınız herkesin görünümlerini görebilir ve ihtiyacına en uygun olanı seçebilir.", + "views.emptyTitle": "Projeniz için filtrelenmiş görünümler kaydedin. İhtiyacınız kadar oluşturun", + "views.emptyWorkItems": "Henüz iş öğesi yok. Bir projenin İş öğeleri bölümünden oluşturun veya başlamak için bir görünüm ekleyin.", + "views.emptyWorkItemsTitle": "Henüz iş öğesi yok", + "views.estimate": "Tahmin", + "views.estimateAssigned": "Atanan", + "views.failedToCreate": "İş öğesi oluşturulamadı", + "views.favoriteError": "Favori güncellenemedi. Lütfen tekrar deneyin.", + "views.favorites": "Favoriler", + "views.favoritesOnly": "yalnızca", + "views.favoriteView": "Görünümü favorile", + "views.filter.assigneesLabel": "Atananlar", + "views.filter.clearAll": "Tümünü temizle", + "views.filter.clearFilter": "{{label}} filtresini temizle", + "views.filter.createdByLabel": "Oluşturan", + "views.filter.customRange": "Özel · {{after}} → {{before}}", + "views.filter.dueDateLabel": "Bitiş tarihi", + "views.filter.grouping.active": "Aktif", + "views.filter.grouping.backlog": "Backlog", + "views.filter.labelsLabel": "Etiketler", + "views.filter.priority.high": "Yüksek", + "views.filter.priority.low": "Düşük", + "views.filter.priority.medium": "Orta", + "views.filter.priority.none": "Yok", + "views.filter.priority.urgent": "Acil", + "views.filter.priorityLabel": "Öncelik", + "views.filter.projectLabel": "Proje", + "views.filter.startDateLabel": "Başlangıç tarihi", + "views.filter.stateGroup.backlog": "Backlog", + "views.filter.stateGroup.canceled": "İptal edildi", + "views.filter.stateGroup.completed": "Tamamlandı", + "views.filter.stateGroup.started": "Devam ediyor", + "views.filter.stateGroup.unstarted": "Yapılacak", + "views.filter.statusLabel": "Durum", + "views.filter.typeLabel": "Tür", + "views.filterCount_one": "{{count}} filtre", + "views.filterCount_other": "{{count}} filtre", + "views.filters": "Filtreler", + "views.grouping": "Gruplama", + "views.labels": "Etiketler", + "views.lastMonth": "Son 1 ay", + "views.lastTwoWeeks": "Son 2 hafta", + "views.lastWeek": "Son 1 hafta", + "views.layout": "Düzen", + "views.listLabel": "İş öğeleri listesi", + "views.loadError": "Proje görünümleri şu anda yüklenemiyor. Lütfen sayfayı yenileyip tekrar deneyin.", + "views.loadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. İş öğeleriniz değiştirilmedi.", + "views.loadErrorTitle": "İş öğeleri yüklenemedi", + "views.loading": "İş öğeleri yükleniyor", + "views.loadingProject": "Proje yükleniyor...", + "views.loadingView": "Görünüm yükleniyor…", + "views.loadingViewDetail": "Görünüm yükleniyor...", + "views.module": "Modül", + "views.moreOptions": "Diğer seçenekler", + "views.move.description": "Bir hedef proje seçin. İş öğesi orada yeni bir ID alır; durumu, üst öğesi, etiketleri ve döngü/modül bağlantıları temizlenir, alt öğeleri ayrılır.", + "views.move.loading": "Projeler yükleniyor…", + "views.move.noProjects": "Başka proje yok.", + "views.name": "Ad", + "views.newView": "Yeni görünüm", + "views.newWorkItem": "Yeni iş öğesi", + "views.noCycle": "Döngü yok", + "views.noFilterResults": "Geçerli arama ve filtrelerle eşleşen iş öğesi yok.", + "views.noFilterResultsTitle": "İş öğesi bulunamadı", + "views.noLabels": "Etiket yok.", + "views.noLabelsGroup": "Etiket yok", + "views.noMatchDescription": "Aramanızı, oluşturulma tarihi, favoriler veya oluşturan filtrelerinizi temizlemeyi ya da gevşetmeyi deneyin.", + "views.noMatches": "Bu görünümün filtreleriyle eşleşen iş öğesi yok.", + "views.noMatchTitle": "Filtrelerinizle eşleşen görünüm yok", + "views.noModule": "Modül yok", + "views.noProjectViews": "Henüz proje görünümü yok", + "views.noState": "Durum yok", + "views.noWorkItems": "Henüz iş öğesi yok", + "views.noWorkItemsMatch": "Bu görünümle eşleşen iş öğesi yok.", + "views.oneFilter": "1 filtre", + "views.openInNewTab": "Yeni sekmede aç", + "views.optionalDescription": "İsteğe bağlı açıklama", + "views.pageDescription": "Çalışma alanınızdaki tüm projelerdeki iş öğelerini izleyin.", + "views.priority": "Öncelik", + "views.private": "Özel", + "views.projectEmptyDescription": "Bir görünüm, filtre kümesini kaydeder; böylece her gün baktığınız iş tek tıkla erişilebilir olur.", + "views.projectLoadErrorDescription": "Bağlantınızı kontrol edip tekrar deneyin. Görünümleriniz değiştirilmedi.", + "views.projectLoadErrorTitle": "Görünümler yüklenemedi", + "views.projectNoMatches": "Geçerli aramayla eşleşen görünüm yok.", + "views.projectNotFound": "Proje bulunamadı.", + "views.projectPageDescription": "{{project}} içindeki işler üzerine kayıtlı filtreler.", + "views.projectSummary": "{{total}} görünümden {{visible}} tanesi", + "views.projectTableCaption": "Bu projedeki kayıtlı görünümler; erişim, son güncelleme ve görünüm bazlı işlemlerle.", + "views.projectTableLabel": "Görünümler tablosu", + "views.projectVisibleCount": "{{count}} görünüm görünüyor", + "views.projectVisibleCount_one": "{{count}} görünüm görünüyor", + "views.projectVisibleCount_other": "{{count}} görünüm görünüyor", + "views.public": "Herkese açık", + "views.restricted": "Kısıtlı", + "views.saveChanges": "Değişiklikleri kaydet", + "views.saved": "Kaydedildi", + "views.saveError": "Kaydedilemedi. Tekrar deneyin.", + "views.saveView": "Görünümü kaydet", + "views.saving": "Kaydediliyor...", + "views.scope": "Görünüm kapsamı", + "views.searchPlaceholder": "İş öğelerinde ara", + "views.searchProjectViews": "Görünümlerde ara", + "views.selectCycle": "Döngü seç", + "views.selectLabels": "Etiket seç", + "views.selectModules": "Modül seç", + "views.selectParent.noParent": "Üst öğe yok", + "views.selectParent.title": "Üst öğe seç", + "views.selectState": "Durum seç", + "views.showSubWorkItems": "Alt iş öğelerini göster", + "views.spreadsheetCaption": "Yatay kaydırılabilir tabloda düzenlenebilir çalışma alanı iş öğesi özellikleri.", + "views.startDate": "Başlangıç tarihi", + "views.state": "Durum", + "views.subscribed": "Takip edilen", + "views.subWorkItems": "Alt iş öğeleri", + "views.summary": "İş öğeleri {{items}} · Açık {{open}} · Tamamlanan {{completed}}", + "views.tableCaption": "Çalışma alanı genelindeki iş öğeleri; proje, durum, öncelik, atananlar, etiketler, bitiş tarihi ve son güncellemeyle.", + "views.tableLabel": "İş öğeleri tablosu", + "views.thisView": "bu görünüm", + "views.title": "Başlık", + "views.titleRequired": "Başlık zorunludur.", + "views.toolbar": "Görünüm kontrolleri", + "views.unableToLoadView": "Bu görünüm yüklenemedi.", + "views.unassigned": "Atanmamış", + "views.unfavoriteView": "Görünümü favorilerden çıkar", + "views.unknown": "Bilinmiyor", + "views.updatedOn": "Güncellenme tarihi", + "views.updateFailed": "Görünüm güncellenemedi.", + "views.viewActions": "Görünüm işlemleri", + "views.viewDoesNotExist": "Görünüm mevcut değil", + "views.viewNamePlaceholder": "Görünüm adı", + "views.viewNotFound": "Görünüm bulunamadı.", + "views.viewNotFoundDescription": "Aradığınız görünüm mevcut değil veya görüntüleme izniniz yok.", + "views.visibleCount": "{{count}} iş öğesi görünüyor", + "views.visibleCount_one": "{{count}} iş öğesi görünüyor", + "views.visibleCount_other": "{{count}} iş öğesi görünüyor", + "views.workItems": "İş öğeleri", + "views.zeroAttachments": "0 ek", + "views.zeroLinks": "0 bağlantı", + "views.zeroSubWorkItems": "0 alt iş öğesi", + "workItem.activity.aFile": "bir dosya", + "workItem.activity.assigned": "<0> kişisini atadı", + "workItem.activity.attached": "ekledi", + "workItem.activity.attachmentRemoved": "eki kaldırdı", + "workItem.activity.commentAdded": "bir yorum ekledi", + "workItem.activity.commentRemoved": "bir yorumu sildi", + "workItem.activity.commentUpdated": "bir yorumu düzenledi", + "workItem.activity.created": "bu iş öğesini oluşturdu", + "workItem.activity.dueDateCleared": "bitiş tarihini temizledi", + "workItem.activity.dueDateSet": "bitiş tarihini <0>{{date}} olarak ayarladı", + "workItem.activity.labelAdded": "<0> etiketini ekledi", + "workItem.activity.labelRemoved": "<0> etiketini kaldırdı", + "workItem.activity.linkAdded": "bir bağlantı ekledi", + "workItem.activity.linkRemoved": "bir bağlantıyı kaldırdı", + "workItem.activity.linkUpdated": "bir bağlantıyı güncelledi", + "workItem.activity.parentRemoved": "üst iş öğesini kaldırdı", + "workItem.activity.parentSet": "üst iş öğesini belirledi", + "workItem.activity.prioritySet": "önceliği <0>{{priority}} olarak ayarladı", + "workItem.activity.relationRemoved": "bir ilişkiyi kaldırdı", + "workItem.activity.renamed": "iş öğesinin adını <0>{{value}} olarak değiştirdi", + "workItem.activity.startDateCleared": "başlangıç tarihini temizledi", + "workItem.activity.startDateSet": "başlangıç tarihini <0>{{date}} olarak ayarladı", + "workItem.activity.stateChanged": "durumu <0> durumundan <1> durumuna değiştirdi", + "workItem.activity.unassigned": "<0> kişisinin atamasını kaldırdı", + "workItem.addReaction": "Tepki ekle", + "workItem.addSelected": "Seçili iş öğelerini ekle", + "workItem.attachments.empty": "Henüz ek yok.", + "workItem.attachments.fallbackName": "Ek", + "workItem.attachments.title": "Ekler", + "workItem.attachments.upload": "Dosya yükle", + "workItem.attachments.uploading": "Yükleniyor…", + "workItem.board.allWorkItems": "Tüm iş öğeleri", + "workItem.board.documentTitle": "Pano", + "workItem.calendar.month": "ay", + "workItem.calendar.moreCount_one": "+{{count}} daha", + "workItem.calendar.moreCount_other": "+{{count}} daha", + "workItem.calendar.nextMonth": "Sonraki ay", + "workItem.calendar.nextWeek": "Sonraki hafta", + "workItem.calendar.noDueDate_one": "Bitiş tarihi yok - {{count}}", + "workItem.calendar.noDueDate_other": "Bitiş tarihi yok - {{count}}", + "workItem.calendar.prevMonth": "Önceki ay", + "workItem.calendar.prevWeek": "Önceki hafta", + "workItem.calendar.week": "hafta", + "workItem.calendar.weekends": "Hafta sonları", + "workItem.cell.changeAssignees": "Atananları değiştir", + "workItem.cell.changeLabels": "Etiketleri değiştir", + "workItem.cell.changePriority": "Önceliği değiştir", + "workItem.cell.changeState": "Durumu değiştir", + "workItem.cell.noLabels": "Etiket yok", + "workItem.cell.noMembers": "Üye yok", + "workItem.changeAssignees": "Atananları değiştir", + "workItem.changeDueDate": "Bitiş tarihini değiştir", + "workItem.changeLabels": "Etiketleri değiştir", + "workItem.changePriority": "Önceliği değiştir", + "workItem.changeStartDate": "Başlangıç tarihini değiştir", + "workItem.changeState": "Durumu değiştir", + "workItem.comment.accessExternalTooltip": "Dış — misafirlere / herkese açık panolara görünür", + "workItem.comment.accessInternalTooltip": "İç — yalnızca çalışma alanı üyeleri", + "workItem.comment.external": "Dış", + "workItem.comment.internal": "İç", + "workItem.comment.placeholder": "Yorum ekle", + "workItem.comment.sendAria": "Yorumu gönder", + "workItem.comment.sendHint": "Göndermek için Ctrl + Enter", + "workItem.comment.sendTooltip": "Gönder (Ctrl + Enter)", + "workItem.comment.toggleVisibility": "Yorum görünürlüğünü değiştir", + "workItem.create.addAssignees": "Atanan ekle", + "workItem.create.addLabels": "Etiket ekle", + "workItem.create.addParent": "Üst öğe ekle", + "workItem.create.assignees": "Atananlar", + "workItem.create.backlog": "Backlog", + "workItem.create.basics": "İş öğesi ayrıntıları", + "workItem.create.createLabel": "\"{{name}}\" etiketini oluştur", + "workItem.create.createMore": "Daha fazla oluştur", + "workItem.create.description": "Bir projeye iş öğesi ekleyin.", + "workItem.create.descriptionPlaceholder": "Açıklama eklemek için tıklayın", + "workItem.create.labelError": "Etiket oluşturulamadı.", + "workItem.create.labels": "Etiketler", + "workItem.create.noAssignee": "Atanan yok", + "workItem.create.noCycle": "Döngü yok", + "workItem.create.noModule": "Modül yok", + "workItem.create.noParent": "Üst öğe yok", + "workItem.create.noState": "Durum yok", + "workItem.create.noStates": "Durum yok", + "workItem.create.parent": "Üst iş öğesi", + "workItem.create.properties": "Özellikler", + "workItem.create.propertiesHint": "Planlama ayrıntılarını şimdi ekleyin ya da sonra güncelleyin.", + "workItem.create.relationWarning": "İş öğesi oluşturuldu, ancak bir veya daha fazla planlama özelliği eklenemedi.", + "workItem.create.searchAssignees": "Atananlarda ara", + "workItem.create.searchLabels": "Etiketlerde ara", + "workItem.create.searchParents": "İş öğelerinde ara…", + "workItem.create.selectedCount_one": "{{name}} +{{count}}", + "workItem.create.selectedCount_other": "{{name}} +{{count}}", + "workItem.create.submit": "İş öğesi oluştur", + "workItem.create.title": "Yeni iş öğesi oluştur", + "workItem.create.titleDraft": "Taslak iş öğesi oluştur", + "workItem.create.titlePlaceholder": "Ne yapılması gerekiyor?", + "workItem.description.placeholder": "Bir açıklama ekleyin…", + "workItem.description.saved": "Kaydedildi", + "workItem.description.saveFailed": "Kaydedilemedi", + "workItem.description.saving": "Kaydediliyor…", + "workItem.detail.activity": "Etkinlik", + "workItem.detail.addAssignee": "Atanan ekle", + "workItem.detail.addDueDate": "Bitiş tarihi ekle", + "workItem.detail.addParent": "Üst iş öğesi ekle", + "workItem.detail.addStartDate": "Başlangıç tarihi ekle", + "workItem.detail.addSubWorkItem": "Alt iş öğesi ekle", + "workItem.detail.archiveConfirm": "Bu iş öğesi arşivlensin mi? Aktif listelerden gizlenir.", + "workItem.detail.archiveFailed": "İş öğesi arşivlenemedi.", + "workItem.detail.assigneesCount_one": "{{count}} atanan", + "workItem.detail.assigneesCount_other": "{{count}} atanan", + "workItem.detail.backToList": "İş öğelerine dön", + "workItem.detail.bot": "Bot", + "workItem.detail.botAriaLabel": "GitHub botu", + "workItem.detail.botTitle": "GitHub entegrasyonu tarafından gönderildi", + "workItem.detail.commentFailed": "Yorum gönderilemedi.", + "workItem.detail.comments": "Yorumlar", + "workItem.detail.commentsCount_one": "Yorumlar {{count}}", + "workItem.detail.commentsCount_other": "Yorumlar {{count}}", + "workItem.detail.confirmChange": "onayla", + "workItem.detail.confirmStateBody": "Bu iş öğesi {{name}} durumuna taşınsın mı? Bu, öğeyi {{group}} olarak işaretler.", + "workItem.detail.confirmStateChange": "Durum değişikliğini onayla", + "workItem.detail.convert": "Dönüştür", + "workItem.detail.convertEpicConfirm": "Bu iş öğesi epiğe dönüştürülsün mü? Varsa üst öğesinden ayrılır.", + "workItem.detail.convertEpicFailed": "Epiğe dönüştürülemedi.", + "workItem.detail.convertToEpic": "Epiğe dönüştür", + "workItem.detail.createSubItemFailed": "Alt iş öğesi oluşturulamadı", + "workItem.detail.deleteCommentConfirm": "Bu yorum silinsin mi?", + "workItem.detail.deleteCommentFailed": "Yorum silinemedi.", + "workItem.detail.description": "Açıklama", + "workItem.detail.descriptionPlaceholder": "Bir açıklama ekleyin… (komutlar için / yazın)", + "workItem.detail.documentTitle": "İş öğesi", + "workItem.detail.edited": "(düzenlendi)", + "workItem.detail.epic": "Epik", + "workItem.detail.external": "Dış", + "workItem.detail.externalTitle": "Dış — misafirlere görünür", + "workItem.detail.field.assignees": "Atananlar", + "workItem.detail.field.createdBy": "Oluşturan", + "workItem.detail.field.cycle": "Döngü", + "workItem.detail.field.dueDate": "Bitiş tarihi", + "workItem.detail.field.estimate": "Tahmin", + "workItem.detail.field.labels": "Etiketler", + "workItem.detail.field.module": "Modül", + "workItem.detail.field.modules": "Modüller", + "workItem.detail.field.parent": "Üst öğe", + "workItem.detail.field.priority": "Öncelik", + "workItem.detail.field.startDate": "Başlangıç tarihi", + "workItem.detail.field.state": "Durum", + "workItem.detail.field.type": "Tür", + "workItem.detail.history": "Geçmiş", + "workItem.detail.internalTitle": "İç — yalnızca çalışma alanı üyeleri", + "workItem.detail.issueNotFound": "İş öğesi bulunamadı.", + "workItem.detail.issuesBreadcrumb": "İş öğeleri", + "workItem.detail.lastEdited": "Son düzenleme {{date}}", + "workItem.detail.loading": "İş öğesi yükleniyor", + "workItem.detail.noComments": "Henüz yorum yok.", + "workItem.detail.noCommentsDescription": "Tartışmayı başlatın — yorumlar bu iş öğesini açabilen herkese görünür.", + "workItem.detail.noCycle": "Döngü yok", + "workItem.detail.noEstimate": "Tahmin yok", + "workItem.detail.noLabels": "Etiket yok.", + "workItem.detail.noMembers": "Üye yok.", + "workItem.detail.noModule": "Modül yok", + "workItem.detail.noModules": "Modül yok", + "workItem.detail.noPriority": "Öncelik yok", + "workItem.detail.noState": "Durum yok", + "workItem.detail.noSubWorkItems": "Henüz alt iş öğesi yok", + "workItem.detail.noSubWorkItemsDescription": "Bu iş öğesini başka bir iş öğesinin üst öğesi yaparak parçalara ayırın.", + "workItem.detail.notFoundDescription": "Bu iş öğesi silinmiş olabilir veya açamayacağınız bir projeye ait.", + "workItem.detail.pageDescription": "Bu iş öğesinin açıklamasını, alt iş öğelerini ve tartışmasını izleyin.", + "workItem.detail.pageSummary": "Güncellendi {{updated}} · Oluşturuldu {{created}}", + "workItem.detail.postCommentFailed": "Yorum gönderilemedi.", + "workItem.detail.properties": "Özellikler", + "workItem.detail.removeParent": "Üst öğeyi kaldır", + "workItem.detail.restoreFailed": "İş öğesi geri yüklenemedi.", + "workItem.detail.sections": "İş öğesi bölümleri", + "workItem.detail.selectLabel": "Etiket seç", + "workItem.detail.selectState": "Durum seç", + "workItem.detail.subItemsTableCaption": "Bu iş öğesinin alt iş öğeleri; durum, öncelik ve bitiş tarihiyle.", + "workItem.detail.subscribe": "Takip et", + "workItem.detail.subscribed": "Takip ediliyor", + "workItem.detail.subWorkItems": "Alt iş öğeleri", + "workItem.detail.subWorkItemsProgress": "Alt iş ilerlemesi", + "workItem.detail.toolbar": "İş öğesi kontrolleri", + "workItem.detail.updateCommentFailed": "Yorum güncellenemedi.", + "workItem.detail.updateCycleFailed": "Döngü güncellenemedi.", + "workItem.detail.updateFailed": "İş öğesi güncellenemedi.", + "workItem.detail.updateModuleFailed": "Modül güncellenemedi.", + "workItem.dueDate.due": "Bitiş {{date}}", + "workItem.dueDate.none": "Bitiş tarihi yok", + "workItem.dueDate.overdue": "Gecikmiş · {{date}}", + "workItem.editor.bold": "Kalın", + "workItem.editor.bulletList": "Madde işaretli liste", + "workItem.editor.codeBlock": "Kod bloğu", + "workItem.editor.italic": "İtalik", + "workItem.editor.numberedList": "Numaralı liste", + "workItem.editor.quote": "Alıntı", + "workItem.editor.strikethrough": "Üstü çizili", + "workItem.editor.todoList": "Yapılacaklar listesi", + "workItem.editor.underline": "Altı çizili", + "workItem.failedToAdd": "İş öğeleri eklenemedi", + "workItem.failedToLoad": "İş öğeleri yüklenemedi", + "workItem.gantt.datedUndated": "{{dated}} tarihli · {{undated}} tarihsiz", + "workItem.gantt.earlier": "Daha önce", + "workItem.gantt.empty": "Hem başlangıç hem hedef tarihi olan iş öğesi yok. Zaman çizelgesinde çubuk çizmek için tarih ekleyin.", + "workItem.gantt.later": "Daha sonra", + "workItem.gantt.noStart": "başlangıç yok · ", + "workItem.gantt.noTarget": "hedef yok", + "workItem.gantt.undated_one": "Tarihsiz · {{count}}", + "workItem.gantt.undated_other": "Tarihsiz · {{count}}", + "workItem.import.complete": "İçe aktarma tamamlandı", + "workItem.import.created": "Oluşturuldu", + "workItem.import.description": "Bir <0>name (veya <1>title) sütunu içeren CSV yükleyin. İsteğe bağlı <2>description, <3>priority ve <4>state sütunları varsa eşlenir.", + "workItem.import.errorForbidden": "Bu projeye içe aktarma erişiminiz yok.", + "workItem.import.errorGeneric": "İçe aktarma başlatılamadı. Dosyayı kontrol edip tekrar deneyin.", + "workItem.import.errors": "Hatalar", + "workItem.import.failed": "İçe aktarma başarısız", + "workItem.import.importing": "İçe aktarılıyor…", + "workItem.import.startImport": "İçe aktarmayı başlat", + "workItem.import.title": "CSV'den iş öğesi içe aktar", + "workItem.import.total": "Toplam", + "workItem.import.uploading": "Yükleniyor…", + "workItem.import.withErrors": "Bazı hatalarla içe aktarıldı", + "workItem.links.add": "Bağlantı ekle", + "workItem.links.adding": "Ekleniyor…", + "workItem.links.empty": "Henüz bağlantı yok.", + "workItem.links.remove": "Bağlantıyı kaldır", + "workItem.links.title": "Bağlantılar", + "workItem.links.titlePlaceholder": "Başlık (isteğe bağlı)", + "workItem.links.urlPlaceholder": "https://...", + "workItem.list.addWorkItem": "İş öğesi ekle", + "workItem.list.allWorkItems_one": "Tüm iş öğeleri {{count}}", + "workItem.list.allWorkItems_other": "Tüm iş öğeleri {{count}}", + "workItem.list.bulkActionFailed": "Toplu işlem başarısız. Hiçbir şey değişmedi — tekrar deneyin.", + "workItem.list.createFailed": "İş öğesi oluşturulamadı", + "workItem.list.cycleTooltip": "Döngü: {{name}}", + "workItem.list.deleteConfirm_one": "{{count}} iş öğesi silinsin mi?", + "workItem.list.deleteConfirm_other": "{{count}} iş öğesi silinsin mi?", + "workItem.list.documentTitle": "İş öğeleri", + "workItem.list.emptyNoItems": "Henüz iş öğesi yok.", + "workItem.list.emptyNoMatch": "Filtrelerinizle eşleşen iş öğesi yok.", + "workItem.list.importCsv": "CSV içe aktar", + "workItem.list.moduleTooltip": "Modül: {{name}}", + "workItem.list.newWorkItem": "Yeni iş öğesi", + "workItem.list.reorderAria": "{{id}} öğesini yeniden sırala. Taşımak için Yukarı veya Aşağı ok tuşunu kullanın.", + "workItem.list.reorderTooltip": "Yeniden sıralamak için sürükleyin ya da odaklanıp ok tuşlarını kullanın", + "workItem.list.selectAria": "{{id}} öğesini seç", + "workItem.list.selectedCount_one": "{{count}} seçili", + "workItem.list.selectedCount_other": "{{count}} seçili", + "workItem.list.setPriorityForSelected": "Seçililer için öncelik ayarla", + "workItem.list.setPriorityPlaceholder": "Öncelik ayarla…", + "workItem.list.setStateForSelected": "Seçililer için durum ayarla", + "workItem.list.setStatePlaceholder": "Durum ayarla…", + "workItem.loading": "İş öğeleri yükleniyor…", + "workItem.noMatches": "Eşleşen iş öğesi yok.", + "workItem.noneInProject": "Bu projede başka iş öğesi yok.", + "workItem.noneSelected": "Seçili iş öğesi yok", + "workItem.pr.countClosed_one": "{{count}} kapalı", + "workItem.pr.countClosed_other": "{{count}} kapalı", + "workItem.pr.countDraft_one": "{{count}} taslak", + "workItem.pr.countDraft_other": "{{count}} taslak", + "workItem.pr.countMerged_one": "{{count}} birleştirilmiş", + "workItem.pr.countMerged_other": "{{count}} birleştirilmiş", + "workItem.pr.countOpen_one": "{{count}} açık", + "workItem.pr.countOpen_other": "{{count}} açık", + "workItem.pr.empty": "Henüz pull request yok. Bir PR bu iş öğesine referans verdiğinde (örn. <0>Fixes DEV-42) otomatik görünürler ya da yukarıya bir URL yapıştırabilirsiniz.", + "workItem.pr.link": "Bağla", + "workItem.pr.linking": "Bağlanıyor…", + "workItem.pr.linkPr": "Bir pull request bağla", + "workItem.pr.loading": "PR'lar yükleniyor…", + "workItem.pr.manual": "manuel", + "workItem.pr.prCount_one": "{{count}} pull request", + "workItem.pr.prCount_other": "{{count}} pull request", + "workItem.pr.stateClosed": "Kapalı", + "workItem.pr.stateDraft": "Taslak", + "workItem.pr.stateMerged": "Birleştirildi", + "workItem.pr.stateOpen": "Açık", + "workItem.pr.title": "Bağlı pull request'ler", + "workItem.pr.unlink": "Bağlantıyı kaldır", + "workItem.pr.urlLabel": "Pull request URL'si", + "workItem.pr.urlPlaceholder": "https://github.com/owner/repo/pull/123", + "workItem.reactWith": "{{emoji}} ile tepki ver", + "workItem.relations.add": "İlişki ekle", + "workItem.relations.empty": "Henüz ilişki yok.", + "workItem.relations.searchPlaceholder": "İş öğelerinde ara…", + "workItem.relations.title": "İlişkiler", + "workItem.relationType.blocked_by": "Şunun tarafından engelleniyor", + "workItem.relationType.blocking": "Şunu engelliyor", + "workItem.relationType.duplicate": "Kopya", + "workItem.relationType.relates_to": "Şununla ilgili", + "workItem.searchWorkItems": "İş öğelerinde ara", + "workItem.selectAll": "Tümünü seç", + "workItem.selectedCount_one": "{{count}} iş öğesi seçildi", + "workItem.selectedCount_other": "{{count}} iş öğesi seçildi", + "workItem.spreadsheet.subs": "Alt", + "workItem.typeToSearch": "Aramak için yazın", + "workspace.create.documentTitle": "Çalışma alanı oluştur", + "workspace.create.errorName": "Lütfen bir çalışma alanı adı girin.", + "workspace.create.errorNotSignedIn": "Çalışma alanı oluşturmak için giriş yapmış olmanız gerekir.", + "workspace.create.errorSlug": "Çalışma alanı URL'si yalnızca küçük harf, rakam ve tire içerebilir.", + "workspace.create.nameLabel": "Çalışma alanınıza ad verin", + "workspace.create.namePlaceholder": "Tanıdık ve akılda kalıcı bir ad her zaman en iyisidir.", + "workspace.create.orgSizeLabel": "Bu çalışma alanını kaç kişi kullanacak?", + "workspace.create.submit": "Çalışma alanı oluştur", + "workspace.create.submitting": "Oluşturuluyor…", + "workspace.create.subtitle": "Çalışma alanları, ekiplerin projelerini yönettiği ortak ortamlardır.", + "workspace.create.title": "Çalışma alanınızı oluşturun", + "workspace.create.urlLabel": "Çalışma alanınızın URL'sini belirleyin", + "workspace.create.urlPlaceholder": "calisma-alani-adi", + "workspace.orgSize.selectRange": "Bir aralık seçin", + "workspaces.empty.restricted": "Çalışma alanı oluşturma kısıtlı. Instance yöneticinizden sizi bir çalışma alanına davet etmesini isteyin.", + "workspaces.empty.title": "Henüz hiç çalışma alanınız yok.", + "common.resetFilters": "Filtreleri sıfırla", + "common.other": "Diğer", + "filters.noOptions": "Henüz filtrelenecek bir şey yok.", + "moduleStatus.backlog": "Biriktirme listesi", + "moduleStatus.planned": "Planlandı", + "moduleStatus.in_progress": "Devam ediyor", + "moduleStatus.paused": "Duraklatıldı", + "moduleStatus.completed": "Tamamlandı", + "moduleStatus.cancelled": "İptal edildi", + "epics.createDescription": "Epik, ilişkili iş öğelerini gruplar; böylece uzun soluklu bir çalışma tek bir iş olarak izlenir.", + "epics.descriptionPlaceholder": "İsteğe bağlı açıklama", + "epics.noMatchesFiltered": "Geçerli arama ve filtrelerle eşleşen epik yok.", + "modules.newModule": "Yeni modül", + "modules.createDescription": "Modül, projeyi kendi başına planlanan ve izlenen bir iş bütününe ayırır.", + "modules.namePlaceholder": "Modül adı", + "modules.descriptionPlaceholder": "İsteğe bağlı açıklama", + "modules.createFailed": "Modül oluşturulamadı.", + "modules.dateRangeInvalid": "Hedef tarih, başlangıç tarihinden önce olamaz.", + "modules.noMatchesFiltered": "Geçerli arama ve filtrelerle eşleşen modül yok.", + "cycles.newCycle": "Yeni döngü", + "cycles.createDescription": "Döngü, iş öğelerinin içine alındığı zaman kutulu bir teslim penceresidir.", + "cycles.namePlaceholder": "Döngü adı", + "cycles.descriptionPlaceholder": "İsteğe bağlı açıklama", + "cycles.createFailed": "Döngü oluşturulamadı.", + "cycles.dateRangeInvalid": "Bitiş tarihi, başlangıç tarihinden önce olamaz.", + "cycles.startDate": "Başlangıç tarihi", + "cycles.endDate": "Bitiş tarihi", + "cycles.createSuccess": "{{cycle}} oluşturuldu", + "pages.newPage": "Yeni sayfa", + "pages.createDescription": "Sayfalar işin çevresindeki yazıyı tutar — şartnameler, notlar ve kararlar.", + "pages.createFailed": "Sayfa oluşturulamadı.", + "pages.lockedOnly": "Yalnızca kilitli", + "views.createProjectViewDescription": "Görünüm, bir filtre kümesini kaydeder; her gün baktığınız iş tek tıkla açılır.", + "views.accessPublic": "Herkese açık", + "views.accessPrivate": "Özel", + "views.accessRestricted": "Kısıtlı", + "views.projectNoMatchesFiltered": "Geçerli arama ve filtrelerle eşleşen görünüm yok." +} diff --git a/apps/web/src/lib/activityDescription.ts b/apps/web/src/lib/activityDescription.ts new file mode 100644 index 00000000..d2294503 --- /dev/null +++ b/apps/web/src/lib/activityDescription.ts @@ -0,0 +1,90 @@ +import i18n from '../i18n'; +import type { UserActivityItem } from '../api/types'; + +/** + * Field names the activity feed can name in the user's language. Keys mirror + * the `field` values written by the API (see recordActivity in + * internal/service/issue.go), with the `_added`/`_removed`/`_updated` suffix + * stripped — "assignees_added" and "assignees_removed" share one label. + */ +const FIELD_LABELS: Record = { + name: 'name', + description: 'description', + priority: 'priority', + state: 'state', + start_date: 'start date', + target_date: 'due date', + estimate_point: 'estimate', + parent: 'parent', + project_id: 'project', + is_epic: 'epic', + assignees: 'assignee', + labels: 'label', + relation: 'relation', + link: 'link', + attachment: 'attachment', + comment: 'comment', +}; + +/** Splits "assignees_added" into its field and its action. */ +function splitField(field: string): { base: string; action: 'added' | 'removed' | 'updated' } { + for (const action of ['added', 'removed', 'updated'] as const) { + const suffix = `_${action}`; + if (field.endsWith(suffix)) return { base: field.slice(0, -suffix.length), action }; + } + return { base: field, action: 'updated' }; +} + +function fieldLabel(base: string): string { + const fallback = FIELD_LABELS[base] ?? base.replace(/_/g, ' '); + return i18n.t(`activity.field.${base}`, fallback); +} + +/** + * The display text for one activity-feed row, in the active UI language. + * + * Rows carrying free text (a comment, or an activity with its own note) have no + * `verb` from the API, so their server-rendered `description` is used as-is — + * it's user content, not a phrase to translate. + */ +export function describeActivity(item: UserActivityItem): string { + if (!item.verb) return item.description; + if (item.verb === 'created') return i18n.t('activity.created', 'Created work item'); + if (item.verb === 'deleted') return i18n.t('activity.deleted', 'Deleted work item'); + if (!item.field) return item.description; + + const { base, action } = splitField(item.field); + const field = fieldLabel(base); + const oldValue = item.old_value ?? ''; + const newValue = item.new_value ?? ''; + + if (action === 'added') { + const value = newValue || oldValue; + return value + ? i18n.t('activity.added', 'Added {{field}}: {{value}}', { field, value }) + : i18n.t('activity.addedBare', 'Added {{field}}', { field }); + } + if (action === 'removed') { + const value = oldValue || newValue; + return value + ? i18n.t('activity.removed', 'Removed {{field}}: {{value}}', { field, value }) + : i18n.t('activity.removedBare', 'Removed {{field}}', { field }); + } + if (oldValue && newValue) { + return i18n.t('activity.updatedFromTo', 'Updated {{field}} from {{old}} to {{new}}', { + field, + old: oldValue, + new: newValue, + }); + } + if (newValue) { + return i18n.t('activity.updatedTo', 'Updated {{field}} to {{new}}', { field, new: newValue }); + } + if (oldValue) { + return i18n.t('activity.updatedFrom', 'Updated {{field}} from {{old}}', { + field, + old: oldValue, + }); + } + return i18n.t('activity.updated', 'Updated {{field}}', { field }); +} diff --git a/apps/web/src/pages/SettingsPage.tsx b/apps/web/src/pages/SettingsPage.tsx index 866364a7..cdb82675 100644 --- a/apps/web/src/pages/SettingsPage.tsx +++ b/apps/web/src/pages/SettingsPage.tsx @@ -15,6 +15,7 @@ import { ProjectIconModal, ProjectIconDisplay } from '../components/ProjectIconM import { getImageUrl } from '../lib/utils'; import { useAuth } from '../contexts/AuthContext'; import { useTheme, type ThemePreference } from '../contexts/ThemeContext'; +import { InterfaceSwitch } from '../routes/InterfaceSwitch'; import { workspaceService } from '../services/workspaceService'; import { ProjectNetworkSelect } from '../components/ProjectNetworkSelect'; import { projectService } from '../services/projectService'; @@ -71,6 +72,7 @@ import { InviteModal } from '../components/settings/modals/InviteModal'; import { ProjectStateModal } from '../components/settings/modals/ProjectStateModal'; import { ProjectLabelModal } from '../components/settings/modals/ProjectLabelModal'; import { formatRelativeTime, getTimezoneOptions } from '../lib/settingsHelpers'; +import { describeActivity } from '../lib/activityDescription'; const COMPANY_SIZES = ['1-10', '11-50', '51-200', '201-500', '500+']; export function SettingsPage() { @@ -1372,6 +1374,7 @@ export function SettingsPage() { })} +