From 7343ee4593f04ff181a8d9dadfd139d2d0ef471e Mon Sep 17 00:00:00 2001 From: Florian Weber <706419+fnwbr@users.noreply.github.com> Date: Tue, 19 Aug 2025 14:43:33 +0000 Subject: [PATCH 01/11] /api/website/: Make name and domain fields optional in POST request schema --- src/app/api/websites/[websiteId]/route.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/api/websites/[websiteId]/route.ts b/src/app/api/websites/[websiteId]/route.ts index 346e5856..4f8763b5 100644 --- a/src/app/api/websites/[websiteId]/route.ts +++ b/src/app/api/websites/[websiteId]/route.ts @@ -31,8 +31,8 @@ export async function POST( { params }: { params: Promise<{ websiteId: string }> }, ) { const schema = z.object({ - name: z.string(), - domain: z.string(), + name: z.string().optional(), + domain: z.string().optional(), shareId: z.string().regex(SHARE_ID_REGEX).nullable().optional(), }); From 49055ebc7d451e6bc672d6ad1614b046e18d925d Mon Sep 17 00:00:00 2001 From: Florian Weber <706419+fnwbr@users.noreply.github.com> Date: Tue, 19 Aug 2025 14:43:42 +0000 Subject: [PATCH 02/11] Add test for updating a website with only shareId --- cypress/e2e/api-website.cy.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cypress/e2e/api-website.cy.ts b/cypress/e2e/api-website.cy.ts index 7f7d17c3..cd336bda 100644 --- a/cypress/e2e/api-website.cy.ts +++ b/cypress/e2e/api-website.cy.ts @@ -149,6 +149,21 @@ describe('Website API tests', () => { }); }); + it('Updates a website with only shareId.', () => { + cy.request({ + method: 'POST', + url: `/api/websites/${websiteId}`, + headers: { + 'Content-Type': 'application/json', + Authorization: Cypress.env('authorization'), + }, + body: { shareId: 'ABCDEF' }, + }).then(response => { + expect(response.status).to.eq(200); + expect(response.body).to.have.property('shareId', 'ABCDEF'); + }); + }); + it('Resets a website by removing all data related to the website.', () => { cy.request({ method: 'POST', From bf4e6ea96f4449d88c797aad60f3b850a1081a4e Mon Sep 17 00:00:00 2001 From: Gavin Mogan Date: Sat, 6 Sep 2025 00:49:55 -0700 Subject: [PATCH 03/11] Migrate to docker actions Originally just wanted to add the standard opencontainer labels that docker/metadata provide but with "mr-smithers-excellent" seemed to only half implement docker support, and a higher risk than docker for supply chain issues, so I went all out and also added cosign to sign the images. Docker metadata tags supports all the custom code to create version tags, out of the box and fully maintained Also dropped the manual workflow, just merged it into cd.yml since you can select tags when you manual dispatch, and thats less to maintain --- .github/workflows/cd-cloud.yml | 2 +- .github/workflows/cd-manual.yml | 58 ----------------- .github/workflows/cd.yml | 109 +++++++++++++++++++++++--------- 3 files changed, 81 insertions(+), 88 deletions(-) delete mode 100644 .github/workflows/cd-manual.yml diff --git a/.github/workflows/cd-cloud.yml b/.github/workflows/cd-cloud.yml index b155624a..90a09dab 100644 --- a/.github/workflows/cd-cloud.yml +++ b/.github/workflows/cd-cloud.yml @@ -1,4 +1,4 @@ -name: Create docker images +name: Create docker images (cloud) on: push: diff --git a/.github/workflows/cd-manual.yml b/.github/workflows/cd-manual.yml deleted file mode 100644 index 1f8651fa..00000000 --- a/.github/workflows/cd-manual.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: Create docker images (manual) - -on: - workflow_dispatch: - inputs: - version: - type: string - description: Version - required: true - -jobs: - build: - name: Build, push, and deploy - runs-on: ubuntu-latest - - strategy: - matrix: - db-type: [postgresql, mysql] - - steps: - - uses: actions/checkout@v3 - - - name: Extract version parts from input - id: extract_version - run: | - echo "version=$(echo ${{ github.event.inputs.version }})" >> $GITHUB_ENV - echo "major=$(echo ${{ github.event.inputs.version }} | cut -d. -f1)" >> $GITHUB_ENV - echo "minor=$(echo ${{ github.event.inputs.version }} | cut -d. -f2)" >> $GITHUB_ENV - - - name: Generate tags - id: generate_tags - run: | - echo "tag_major=$(echo ${{ matrix.db-type }}-${{ env.major }})" >> $GITHUB_ENV - echo "tag_minor=$(echo ${{ matrix.db-type }}-${{ env.major }}.${{ env.minor }})" >> $GITHUB_ENV - echo "tag_patch=$(echo ${{ matrix.db-type }}-${{ env.version }})" >> $GITHUB_ENV - echo "tag_latest=$(echo ${{ matrix.db-type }}-latest)" >> $GITHUB_ENV - - - uses: mr-smithers-excellent/docker-build-push@v6 - name: Build & push Docker image to ghcr.io for ${{ matrix.db-type }} - with: - image: umami - tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} - buildArgs: DATABASE_TYPE=${{ matrix.db-type }} - registry: ghcr.io - multiPlatform: true - platform: linux/amd64,linux/arm64 - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - uses: mr-smithers-excellent/docker-build-push@v6 - name: Build & push Docker image to docker.io for ${{ matrix.db-type }} - with: - image: umamisoftware/umami - tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} - buildArgs: DATABASE_TYPE=${{ matrix.db-type }} - registry: docker.io - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} \ No newline at end of file diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index f67f51c3..051d24a2 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,50 +1,101 @@ name: Create docker images -on: [create] +on: + push: + branches: + - master + - main + - dev + # Publish semver tags as releases. + tags: [ 'v*.*.*' ] + pull_request: + branches: + - master + - main + - dev + workflow_dispatch: jobs: build: name: Build, push, and deploy - if: ${{ startsWith(github.ref, 'refs/tags/v') }} runs-on: ubuntu-latest + permissions: + contents: read + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write strategy: matrix: db-type: [postgresql, mysql] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - - name: Set env - run: | - echo "NOW=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV - - - name: Generate tags - id: generate_tags - run: | - echo "tag_patch=$(echo ${{ matrix.db-type }})-${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - echo "tag_minor=$(echo ${{ matrix.db-type }})-$(echo ${GITHUB_REF#refs/tags/} | cut -d. -f1,2)" >> $GITHUB_ENV - echo "tag_major=$(echo ${{ matrix.db-type }})-$(echo ${GITHUB_REF#refs/tags/} | cut -d. -f1)" >> $GITHUB_ENV - echo "tag_latest=$(echo ${{ matrix.db-type }})-latest" >> $GITHUB_ENV + # Install the cosign tool except on PR + # https://github.com/sigstore/cosign-installer + - name: Install cosign + if: github.event_name != 'pull_request' + uses: sigstore/cosign-installer@v3 - - uses: mr-smithers-excellent/docker-build-push@v6 - name: Build & push Docker image to ghcr.io for ${{ matrix.db-type }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log into registry docker.io + if: github.event_name != 'pull_request' && github.repository == 'umami-software/umami' + uses: docker/login-action@v3 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Log into ghcr registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 with: - image: umami - tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} - buildArgs: DATABASE_TYPE=${{ matrix.db-type }} registry: ghcr.io - multiPlatform: true - platform: linux/amd64,linux/arm64 username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - uses: mr-smithers-excellent/docker-build-push@v6 - name: Build & push Docker image to docker.io for ${{ matrix.db-type }} + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@v5 with: - image: umamisoftware/umami - tags: ${{ env.tag_major }}, ${{ env.tag_minor }}, ${{ env.tag_patch }}, ${{ env.tag_latest }} - buildArgs: DATABASE_TYPE=${{ matrix.db-type }} - registry: docker.io - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} \ No newline at end of file + images: | + umamisoftware/umami,enable=${{ github.repository == 'umami-software/umami' }} + ghcr.io/${{ github.repository }} + flavor: | + latest=auto + prefix=${{ matrix.db-type }}- + tags: | + type=ref,event=branch + type=ref,event=pr + + # output 1.1.2 + type=semver,pattern={{version}} + # output 1.1 + type=semver,pattern={{major}}.{{minor}} + # output 1 + type=semver,pattern={{major}} + + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@v6 + with: + context: . + platforms: linux/amd64,linux/arm64 + build-args: DATABASE_TYPE=${{ matrix.db-type }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + + # Sign the resulting Docker image digest except on PRs. + - name: Sign the published Docker image + if: ${{ github.event_name != 'pull_request' }} + env: + TAGS: ${{ steps.meta.outputs.tags }} + DIGEST: ${{ steps.build-and-push.outputs.digest }} + run: echo "${TAGS}" | xargs -I {} cosign sign --yes "{}@${DIGEST}" From 7d9fe30626a0251884cc33a31d408cd93117e2ed Mon Sep 17 00:00:00 2001 From: Panagiotis Date: Sun, 21 Sep 2025 22:56:59 +0300 Subject: [PATCH 04/11] Resolve IPv6 address destruction --- src/lib/detect.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/detect.ts b/src/lib/detect.ts index ee9d2603..17fb574c 100644 --- a/src/lib/detect.ts +++ b/src/lib/detect.ts @@ -108,6 +108,14 @@ function decodeHeader(s: string | undefined | null): string | undefined | null { return Buffer.from(s, 'latin1').toString('utf-8'); } +function removePortFromIP(ip: string = "") { + const split = ip.split(":"); + + // Assuming ip is a valid IPv4/IPv6 address, 3 colons is the minumum for IPv6 + const ipv4 = split.length - 1 < 3; + return ipv4 ? split[0] : ip; +} + export async function getLocation(ip: string = '', headers: Headers, hasPayloadIP: boolean) { // Ignore local ips if (await isLocalhost(ip)) { @@ -141,7 +149,7 @@ export async function getLocation(ip: string = '', headers: Headers, hasPayloadI } // When the client IP is extracted from headers, sometimes the value includes a port - const cleanIp = ip?.split(':')[0]; + const cleanIp = removePortFromIP(ip); const result = global[MAXMIND].get(cleanIp); if (result) { From 9a543d89668833f9ae78526309b8f18a9331bcfc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Sep 2025 05:31:11 +0000 Subject: [PATCH 05/11] Bump next from 15.3.3 to 15.4.7 Bumps [next](https://github.com/vercel/next.js) from 15.3.3 to 15.4.7. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](https://github.com/vercel/next.js/compare/v15.3.3...v15.4.7) --- updated-dependencies: - dependency-name: next dependency-version: 15.4.7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- package.json | 2 +- pnpm-lock.yaml | 381 ++++++++++++++++++++++--------------------------- 2 files changed, 168 insertions(+), 215 deletions(-) diff --git a/package.json b/package.json index 4e775a59..8b7b31fe 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "kafkajs": "^2.1.0", "maxmind": "^4.3.24", "md5": "^2.3.0", - "next": "15.3.3", + "next": "15.4.7", "node-fetch": "^3.2.8", "npm-run-all": "^4.1.5", "papaparse": "^5.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f5e4bef..f962ce3f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -123,8 +123,8 @@ importers: specifier: ^2.3.0 version: 2.3.0 next: - specifier: 15.3.3 - version: 15.3.3(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: 15.4.7 + version: 15.4.7(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) node-fetch: specifier: ^3.2.8 version: 3.3.2 @@ -1317,8 +1317,8 @@ packages: '@emnapi/core@1.4.5': resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} - '@emnapi/runtime@1.4.5': - resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} '@emnapi/wasi-threads@1.0.4': resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} @@ -1589,124 +1589,128 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@img/sharp-darwin-arm64@0.34.3': - resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} + '@img/colour@1.0.0': + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.4': + resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.3': - resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} + '@img/sharp-darwin-x64@0.34.4': + resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.0': - resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} + '@img/sharp-libvips-darwin-arm64@1.2.3': + resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.0': - resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} + '@img/sharp-libvips-darwin-x64@1.2.3': + resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.0': - resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} + '@img/sharp-libvips-linux-arm64@1.2.3': + resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.2.0': - resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} + '@img/sharp-libvips-linux-arm@1.2.3': + resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.2.0': - resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} + '@img/sharp-libvips-linux-ppc64@1.2.3': + resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.2.0': - resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} + '@img/sharp-libvips-linux-s390x@1.2.3': + resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.2.0': - resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} + '@img/sharp-libvips-linux-x64@1.2.3': + resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': - resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.0': - resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} + '@img/sharp-libvips-linuxmusl-x64@1.2.3': + resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.34.3': - resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} + '@img/sharp-linux-arm64@0.34.4': + resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.34.3': - resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} + '@img/sharp-linux-arm@0.34.4': + resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-ppc64@0.34.3': - resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} + '@img/sharp-linux-ppc64@0.34.4': + resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] - '@img/sharp-linux-s390x@0.34.3': - resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} + '@img/sharp-linux-s390x@0.34.4': + resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.34.3': - resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} + '@img/sharp-linux-x64@0.34.4': + resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.3': - resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} + '@img/sharp-linuxmusl-arm64@0.34.4': + resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.3': - resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} + '@img/sharp-linuxmusl-x64@0.34.4': + resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.34.3': - resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} + '@img/sharp-wasm32@0.34.4': + resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.3': - resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} + '@img/sharp-win32-arm64@0.34.4': + resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.3': - resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} + '@img/sharp-win32-ia32@0.34.4': + resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.3': - resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} + '@img/sharp-win32-x64@0.34.4': + resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -1826,56 +1830,56 @@ packages: resolution: {integrity: sha512-F+HiQaUpISBmooALpwDULoCCwUhI6MugEEBstjuxOL2rh2ROFhK4abv87f4GxVXRSmw0AtXAp2eiP8vHcZ3NKQ==} engines: {node: '>=18.0.0'} - '@next/env@15.3.3': - resolution: {integrity: sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==} + '@next/env@15.4.7': + resolution: {integrity: sha512-PrBIpO8oljZGTOe9HH0miix1w5MUiGJ/q83Jge03mHEE0E3pyqzAy2+l5G6aJDbXoobmxPJTVhbCuwlLtjSHwg==} '@next/eslint-plugin-next@14.2.30': resolution: {integrity: sha512-mvVsMIutMxQ4NGZEMZ1kiBNc+la8Xmlk30bKUmCPQz2eFkmsLv54Mha8QZarMaCtSPkkFA1TMD+FIZk0l/PpzA==} - '@next/swc-darwin-arm64@15.3.3': - resolution: {integrity: sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==} + '@next/swc-darwin-arm64@15.4.7': + resolution: {integrity: sha512-2Dkb+VUTp9kHHkSqtws4fDl2Oxms29HcZBwFIda1X7Ztudzy7M6XF9HDS2dq85TmdN47VpuhjE+i6wgnIboVzQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.3.3': - resolution: {integrity: sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==} + '@next/swc-darwin-x64@15.4.7': + resolution: {integrity: sha512-qaMnEozKdWezlmh1OGDVFueFv2z9lWTcLvt7e39QA3YOvZHNpN2rLs/IQLwZaUiw2jSvxW07LxMCWtOqsWFNQg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.3.3': - resolution: {integrity: sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==} + '@next/swc-linux-arm64-gnu@15.4.7': + resolution: {integrity: sha512-ny7lODPE7a15Qms8LZiN9wjNWIeI+iAZOFDOnv2pcHStncUr7cr9lD5XF81mdhrBXLUP9yT9RzlmSWKIazWoDw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.3.3': - resolution: {integrity: sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==} + '@next/swc-linux-arm64-musl@15.4.7': + resolution: {integrity: sha512-4SaCjlFR/2hGJqZLLWycccy1t+wBrE/vyJWnYaZJhUVHccpGLG5q0C+Xkw4iRzUIkE+/dr90MJRUym3s1+vO8A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.3.3': - resolution: {integrity: sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==} + '@next/swc-linux-x64-gnu@15.4.7': + resolution: {integrity: sha512-2uNXjxvONyRidg00VwvlTYDwC9EgCGNzPAPYbttIATZRxmOZ3hllk/YYESzHZb65eyZfBR5g9xgCZjRAl9YYGg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.3.3': - resolution: {integrity: sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==} + '@next/swc-linux-x64-musl@15.4.7': + resolution: {integrity: sha512-ceNbPjsFgLscYNGKSu4I6LYaadq2B8tcK116nVuInpHHdAWLWSwVK6CHNvCi0wVS9+TTArIFKJGsEyVD1H+4Kg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.3.3': - resolution: {integrity: sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==} + '@next/swc-win32-arm64-msvc@15.4.7': + resolution: {integrity: sha512-pZyxmY1iHlZJ04LUL7Css8bNvsYAMYOY9JRwFA3HZgpaNKsJSowD09Vg2R9734GxAcLJc2KDQHSCR91uD6/AAw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.3.3': - resolution: {integrity: sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==} + '@next/swc-win32-x64-msvc@15.4.7': + resolution: {integrity: sha512-HjuwPJ7BeRzgl3KrjKqD2iDng0eQIpIReyhpF5r4yeAHFwWRuAhfW92rWv/r3qeQHEwHsLRzFDvMqRjyM5DI6A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2151,9 +2155,6 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -2802,10 +2803,6 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - cachedir@2.4.0: resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} engines: {node: '>=6'} @@ -2845,8 +2842,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001727: - resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -2957,13 +2954,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -3307,8 +3297,8 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + detect-libc@2.1.0: + resolution: {integrity: sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==} engines: {node: '>=8'} detect-newline@3.1.0: @@ -4129,9 +4119,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} @@ -4940,13 +4927,13 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - next@15.3.3: - resolution: {integrity: sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==} + next@15.4.7: + resolution: {integrity: sha512-OcqRugwF7n7mC8OSYjvsZhhG1AYSvulor1EIUsIkbbEbf1qoE5EbH36Swj8WhF4cHqmDgkiam3z1c1W0J1Wifg==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 + '@playwright/test': ^1.51.1 babel-plugin-react-compiler: '*' react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -6033,8 +6020,8 @@ packages: setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - sharp@0.34.3: - resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} + sharp@0.34.4: + resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@1.2.0: @@ -6080,9 +6067,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -6161,10 +6145,6 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -7885,7 +7865,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.5': + '@emnapi/runtime@1.5.0': dependencies: tslib: 2.8.1 optional: true @@ -8145,90 +8125,93 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@img/sharp-darwin-arm64@0.34.3': + '@img/colour@1.0.0': + optional: true + + '@img/sharp-darwin-arm64@0.34.4': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.0 + '@img/sharp-libvips-darwin-arm64': 1.2.3 optional: true - '@img/sharp-darwin-x64@0.34.3': + '@img/sharp-darwin-x64@0.34.4': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.0 + '@img/sharp-libvips-darwin-x64': 1.2.3 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.0': + '@img/sharp-libvips-darwin-arm64@1.2.3': optional: true - '@img/sharp-libvips-darwin-x64@1.2.0': + '@img/sharp-libvips-darwin-x64@1.2.3': optional: true - '@img/sharp-libvips-linux-arm64@1.2.0': + '@img/sharp-libvips-linux-arm64@1.2.3': optional: true - '@img/sharp-libvips-linux-arm@1.2.0': + '@img/sharp-libvips-linux-arm@1.2.3': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.0': + '@img/sharp-libvips-linux-ppc64@1.2.3': optional: true - '@img/sharp-libvips-linux-s390x@1.2.0': + '@img/sharp-libvips-linux-s390x@1.2.3': optional: true - '@img/sharp-libvips-linux-x64@1.2.0': + '@img/sharp-libvips-linux-x64@1.2.3': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.0': + '@img/sharp-libvips-linuxmusl-x64@1.2.3': optional: true - '@img/sharp-linux-arm64@0.34.3': + '@img/sharp-linux-arm64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.0 + '@img/sharp-libvips-linux-arm64': 1.2.3 optional: true - '@img/sharp-linux-arm@0.34.3': + '@img/sharp-linux-arm@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.0 + '@img/sharp-libvips-linux-arm': 1.2.3 optional: true - '@img/sharp-linux-ppc64@0.34.3': + '@img/sharp-linux-ppc64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.0 + '@img/sharp-libvips-linux-ppc64': 1.2.3 optional: true - '@img/sharp-linux-s390x@0.34.3': + '@img/sharp-linux-s390x@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.0 + '@img/sharp-libvips-linux-s390x': 1.2.3 optional: true - '@img/sharp-linux-x64@0.34.3': + '@img/sharp-linux-x64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.0 + '@img/sharp-libvips-linux-x64': 1.2.3 optional: true - '@img/sharp-linuxmusl-arm64@0.34.3': + '@img/sharp-linuxmusl-arm64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 optional: true - '@img/sharp-linuxmusl-x64@0.34.3': + '@img/sharp-linuxmusl-x64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 optional: true - '@img/sharp-wasm32@0.34.3': + '@img/sharp-wasm32@0.34.4': dependencies: - '@emnapi/runtime': 1.4.5 + '@emnapi/runtime': 1.5.0 optional: true - '@img/sharp-win32-arm64@0.34.3': + '@img/sharp-win32-arm64@0.34.4': optional: true - '@img/sharp-win32-ia32@0.34.3': + '@img/sharp-win32-ia32@0.34.4': optional: true - '@img/sharp-win32-x64@0.34.3': + '@img/sharp-win32-x64@0.34.4': optional: true '@isaacs/balanced-match@4.0.1': {} @@ -8447,40 +8430,40 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.4.5 - '@emnapi/runtime': 1.4.5 + '@emnapi/runtime': 1.5.0 '@tybys/wasm-util': 0.10.0 optional: true '@netlify/plugin-nextjs@5.11.6': {} - '@next/env@15.3.3': {} + '@next/env@15.4.7': {} '@next/eslint-plugin-next@14.2.30': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@15.3.3': + '@next/swc-darwin-arm64@15.4.7': optional: true - '@next/swc-darwin-x64@15.3.3': + '@next/swc-darwin-x64@15.4.7': optional: true - '@next/swc-linux-arm64-gnu@15.3.3': + '@next/swc-linux-arm64-gnu@15.4.7': optional: true - '@next/swc-linux-arm64-musl@15.3.3': + '@next/swc-linux-arm64-musl@15.4.7': optional: true - '@next/swc-linux-x64-gnu@15.3.3': + '@next/swc-linux-x64-gnu@15.4.7': optional: true - '@next/swc-linux-x64-musl@15.3.3': + '@next/swc-linux-x64-musl@15.4.7': optional: true - '@next/swc-win32-arm64-msvc@15.3.3': + '@next/swc-win32-arm64-msvc@15.4.7': optional: true - '@next/swc-win32-x64-msvc@15.3.3': + '@next/swc-win32-x64-msvc@15.4.7': optional: true '@nodelib/fs.scandir@2.1.5': @@ -8772,8 +8755,6 @@ snapshots: - supports-color - typescript - '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -9349,7 +9330,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.25.1 - caniuse-lite: 1.0.30001727 + caniuse-lite: 1.0.30001743 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -9496,7 +9477,7 @@ snapshots: browserslist@4.25.1: dependencies: - caniuse-lite: 1.0.30001727 + caniuse-lite: 1.0.30001743 electron-to-chromium: 1.5.187 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) @@ -9520,10 +9501,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - cachedir@2.4.0: {} call-bind-apply-helpers@1.0.2: @@ -9565,11 +9542,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.25.1 - caniuse-lite: 1.0.30001727 + caniuse-lite: 1.0.30001743 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001727: {} + caniuse-lite@1.0.30001743: {} caseless@0.12.0: {} @@ -9663,18 +9640,6 @@ snapshots: color-name@1.1.4: {} - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - optional: true - - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - optional: true - colord@2.9.3: {} colorette@1.4.0: {} @@ -10075,7 +10040,7 @@ snapshots: detect-indent@6.1.0: {} - detect-libc@2.0.4: + detect-libc@2.1.0: optional: true detect-newline@3.1.0: {} @@ -11100,9 +11065,6 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.2: - optional: true - is-async-function@2.1.1: dependencies: async-function: 1.0.0 @@ -12087,27 +12049,25 @@ snapshots: natural-compare@1.4.0: {} - next@15.3.3(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.4.7(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@next/env': 15.3.3 - '@swc/counter': 0.1.3 + '@next/env': 15.4.7 '@swc/helpers': 0.5.15 - busboy: 1.6.0 - caniuse-lite: 1.0.30001727 + caniuse-lite: 1.0.30001743 postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) styled-jsx: 5.1.6(@babel/core@7.28.0)(react@19.1.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.3.3 - '@next/swc-darwin-x64': 15.3.3 - '@next/swc-linux-arm64-gnu': 15.3.3 - '@next/swc-linux-arm64-musl': 15.3.3 - '@next/swc-linux-x64-gnu': 15.3.3 - '@next/swc-linux-x64-musl': 15.3.3 - '@next/swc-win32-arm64-msvc': 15.3.3 - '@next/swc-win32-x64-msvc': 15.3.3 - sharp: 0.34.3 + '@next/swc-darwin-arm64': 15.4.7 + '@next/swc-darwin-x64': 15.4.7 + '@next/swc-linux-arm64-gnu': 15.4.7 + '@next/swc-linux-arm64-musl': 15.4.7 + '@next/swc-linux-x64-gnu': 15.4.7 + '@next/swc-linux-x64-musl': 15.4.7 + '@next/swc-win32-arm64-msvc': 15.4.7 + '@next/swc-win32-x64-msvc': 15.4.7 + sharp: 0.34.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -13229,34 +13189,34 @@ snapshots: setimmediate@1.0.5: {} - sharp@0.34.3: + sharp@0.34.4: dependencies: - color: 4.2.3 - detect-libc: 2.0.4 + '@img/colour': 1.0.0 + detect-libc: 2.1.0 semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.3 - '@img/sharp-darwin-x64': 0.34.3 - '@img/sharp-libvips-darwin-arm64': 1.2.0 - '@img/sharp-libvips-darwin-x64': 1.2.0 - '@img/sharp-libvips-linux-arm': 1.2.0 - '@img/sharp-libvips-linux-arm64': 1.2.0 - '@img/sharp-libvips-linux-ppc64': 1.2.0 - '@img/sharp-libvips-linux-s390x': 1.2.0 - '@img/sharp-libvips-linux-x64': 1.2.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 - '@img/sharp-linux-arm': 0.34.3 - '@img/sharp-linux-arm64': 0.34.3 - '@img/sharp-linux-ppc64': 0.34.3 - '@img/sharp-linux-s390x': 0.34.3 - '@img/sharp-linux-x64': 0.34.3 - '@img/sharp-linuxmusl-arm64': 0.34.3 - '@img/sharp-linuxmusl-x64': 0.34.3 - '@img/sharp-wasm32': 0.34.3 - '@img/sharp-win32-arm64': 0.34.3 - '@img/sharp-win32-ia32': 0.34.3 - '@img/sharp-win32-x64': 0.34.3 + '@img/sharp-darwin-arm64': 0.34.4 + '@img/sharp-darwin-x64': 0.34.4 + '@img/sharp-libvips-darwin-arm64': 1.2.3 + '@img/sharp-libvips-darwin-x64': 1.2.3 + '@img/sharp-libvips-linux-arm': 1.2.3 + '@img/sharp-libvips-linux-arm64': 1.2.3 + '@img/sharp-libvips-linux-ppc64': 1.2.3 + '@img/sharp-libvips-linux-s390x': 1.2.3 + '@img/sharp-libvips-linux-x64': 1.2.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + '@img/sharp-linux-arm': 0.34.4 + '@img/sharp-linux-arm64': 0.34.4 + '@img/sharp-linux-ppc64': 0.34.4 + '@img/sharp-linux-s390x': 0.34.4 + '@img/sharp-linux-x64': 0.34.4 + '@img/sharp-linuxmusl-arm64': 0.34.4 + '@img/sharp-linuxmusl-x64': 0.34.4 + '@img/sharp-wasm32': 0.34.4 + '@img/sharp-win32-arm64': 0.34.4 + '@img/sharp-win32-ia32': 0.34.4 + '@img/sharp-win32-x64': 0.34.4 optional: true shebang-command@1.2.0: @@ -13305,11 +13265,6 @@ snapshots: signal-exit@4.1.0: {} - simple-swizzle@0.2.2: - dependencies: - is-arrayish: 0.3.2 - optional: true - sisteransi@1.0.5: {} slash@3.0.0: {} @@ -13397,8 +13352,6 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - streamsearch@1.1.0: {} - string-argv@0.3.2: {} string-hash@1.1.3: {} From cb209eee8162d3cf80edbc5d5b8a2472e42eb9b4 Mon Sep 17 00:00:00 2001 From: Tobias Kronthaler Date: Tue, 23 Sep 2025 10:09:58 +0200 Subject: [PATCH 06/11] Fix map display for DACH --- src/lib/constants.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 6192f342..75691d05 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -448,8 +448,10 @@ export const MAP_FILE = '/datamaps.world.json'; export const ISO_COUNTRIES = { ANT: 'AN', ARE: 'AE', + AUT: 'AT', BLM: 'BL', CHE: 'CH', + DEU: 'DE', ESH: 'EH', ESP: 'ES', FSM: 'FM', From a6966179f5c09736b35682dad332cc8d533e460d Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Tue, 23 Sep 2025 17:50:40 -0700 Subject: [PATCH 07/11] Add ISO country codes to constants --- src/lib/constants.ts | 109 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 2 deletions(-) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 75691d05..e13ca381 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -446,16 +446,116 @@ export const GROUPED_DOMAINS = [ export const MAP_FILE = '/datamaps.world.json'; export const ISO_COUNTRIES = { + ABW: 'AW', + AFG: 'AF', + AGO: 'AO', + AIA: 'AI', + ALA: 'AX', + ALB: 'AL', + AND: 'AD', ANT: 'AN', ARE: 'AE', + ARG: 'AR', + ARM: 'AM', + ASM: 'AS', + ATF: 'TF', + ATG: 'AG', + AUS: 'AU', AUT: 'AT', + AZE: 'AZ', + BDI: 'BI', + BEL: 'BE', + BEN: 'BJ', + BFA: 'BF', + BGD: 'BD', + BGR: 'BG', + BHR: 'BH', + BHS: 'BS', + BIH: 'BA', + BLR: 'BY', + BLZ: 'BZ', BLM: 'BL', + BMU: 'BM', + BOL: 'BO', + BRA: 'BR', + BRB: 'BB', + BRN: 'BN', + BTN: 'BT', + BVT: 'BV', + BWA: 'BW', + CAF: 'CF', + CAN: 'CA', + CCK: 'CC', CHE: 'CH', + CHL: 'CL', + CHN: 'CN', + CIV: 'CI', + CMR: 'CM', + COD: 'CD', + COG: 'CG', + COK: 'CK', + COL: 'CO', + COM: 'KM', + CPV: 'CV', + CRI: 'CR', + CUB: 'CU', + CXR: 'CX', + CYM: 'KY', + CYP: 'CY', + CZE: 'CZ', DEU: 'DE', + DJI: 'DJ', + DMA: 'DM', + DNK: 'DK', + DOM: 'DO', + DZA: 'DZ', + ECU: 'EC', + EGY: 'EG', + ERI: 'ER', ESH: 'EH', ESP: 'ES', + EST: 'EE', + ETH: 'ET', + FIN: 'FI', + FJI: 'FJ', + FLK: 'FK', + FRA: 'FR', + FRO: 'FO', FSM: 'FM', + GAB: 'GA', GBR: 'GB', + GEO: 'GE', + GGY: 'GG', + GHA: 'GH', + GIB: 'GI', + GIN: 'GN', + GLP: 'GP', + GMB: 'GM', + GNB: 'GW', + GNQ: 'GQ', + GRC: 'GR', + GRD: 'GD', + GRL: 'GL', + GTM: 'GT', + GUF: 'GF', + GUM: 'GU', + GUY: 'GY', + HKG: 'HK', + HMD: 'HM', + HND: 'HN', + HRV: 'HR', + HTI: 'HT', + HUN: 'HU', + IDN: 'ID', + IMN: 'IM', + IND: 'IN', + IOT: 'IO', + IRL: 'IE', + IRN: 'IR', + IRQ: 'IQ', + ISL: 'IS', + ISR: 'IL', + ITA: 'IT', JAM: 'JM', JEY: 'JE', JOR: 'JO', @@ -463,6 +563,7 @@ export const ISO_COUNTRIES = { KAZ: 'KZ', KEN: 'KE', KGZ: 'KG', + KHM: 'KH', KIR: 'KI', KNA: 'KN', KOR: 'KR', @@ -527,6 +628,7 @@ export const ISO_COUNTRIES = { PRT: 'PT', PRY: 'PY', PSE: 'PS', + PYF: 'PF', QAT: 'QA', REU: 'RE', ROU: 'RO', @@ -541,13 +643,13 @@ export const ISO_COUNTRIES = { SJM: 'SJ', SLB: 'SB', SLE: 'SL', + SLV: 'SV', SMR: 'SM', SOM: 'SO', SPM: 'PM', SRB: 'RS', - SSD: 'SS', - STP: 'ST', SUR: 'SR', + STP: 'ST', SVK: 'SK', SVN: 'SI', SWE: 'SE', @@ -555,6 +657,7 @@ export const ISO_COUNTRIES = { SYC: 'SC', SYR: 'SY', TCA: 'TC', + TCD: 'TD', TGO: 'TG', THA: 'TH', TJK: 'TJ', @@ -574,8 +677,10 @@ export const ISO_COUNTRIES = { URY: 'UY', USA: 'US', UZB: 'UZ', + VAT: 'VA', VCT: 'VC', VEN: 'VE', + VGB: 'VG', VIR: 'VI', VNM: 'VN', VUT: 'VU', From 9e1fe2e3630ad7dd4065c3310ce1320eaba04424 Mon Sep 17 00:00:00 2001 From: mcnaveen <8493007+mcnaveen@users.noreply.github.com> Date: Wed, 24 Sep 2025 16:45:58 +0530 Subject: [PATCH 08/11] Enhance timezone handling by adding normalization for 'Asia/Calcutta' to 'Asia/Kolkata' and updating validation schema to use normalized timezones. --- src/lib/date.ts | 11 ++++++++++- src/lib/schema.ts | 6 +++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/lib/date.ts b/src/lib/date.ts index 96135845..85f64f25 100644 --- a/src/lib/date.ts +++ b/src/lib/date.ts @@ -104,9 +104,18 @@ const DATE_FUNCTIONS = { }, }; +const TIMEZONE_MAPPINGS: Record = { + 'Asia/Calcutta': 'Asia/Kolkata', +}; + +export function normalizeTimezone(timezone: string): string { + return TIMEZONE_MAPPINGS[timezone] || timezone; +} + export function isValidTimezone(timezone: string) { try { - Intl.DateTimeFormat(undefined, { timeZone: timezone }); + const normalizedTimezone = normalizeTimezone(timezone); + Intl.DateTimeFormat(undefined, { timeZone: normalizedTimezone }); return true; } catch (error) { return false; diff --git a/src/lib/schema.ts b/src/lib/schema.ts index 47be0fb0..51a95748 100644 --- a/src/lib/schema.ts +++ b/src/lib/schema.ts @@ -1,5 +1,5 @@ import { z } from 'zod'; -import { isValidTimezone } from '@/lib/date'; +import { isValidTimezone, normalizeTimezone } from '@/lib/date'; import { UNIT_TYPES } from './constants'; export const filterParams = { @@ -28,9 +28,9 @@ export const pagingParams = { search: z.string().optional(), }; -export const timezoneParam = z.string().refine(value => isValidTimezone(value), { +export const timezoneParam = z.string().refine((value: string) => isValidTimezone(value), { message: 'Invalid timezone', -}); +}).transform((value: string) => normalizeTimezone(value)); export const unitParam = z.string().refine(value => UNIT_TYPES.includes(value), { message: 'Invalid unit', From 87f5cea6366f46c411fc85cf5a6d081fa15f1e3d Mon Sep 17 00:00:00 2001 From: Manuchehr Date: Mon, 29 Sep 2025 09:15:53 +0500 Subject: [PATCH 09/11] feat: add missing uzbek language --- docker-compose.yml | 6 +- public/intl/country/uz-UZ.json | 251 +++++ public/intl/language/uz-UZ.json | 611 ++++++++++ public/intl/messages/ar-SA.json | 2 +- public/intl/messages/es-ES.json | 24 +- public/intl/messages/sl-SI.json | 124 +-- public/intl/messages/uz-UZ.json | 1858 +++++++++++++++++++++++++++++++ public/intl/messages/vi-VN.json | 470 ++++---- src/lang/uz-UZ.json | 279 +++++ src/lib/lang.ts | 2 + 10 files changed, 3314 insertions(+), 313 deletions(-) create mode 100644 public/intl/country/uz-UZ.json create mode 100644 public/intl/language/uz-UZ.json create mode 100644 public/intl/messages/uz-UZ.json create mode 100644 src/lang/uz-UZ.json diff --git a/docker-compose.yml b/docker-compose.yml index 7b51db66..9fb3473c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ services: umami: image: ghcr.io/umami-software/umami:postgresql-latest ports: - - "3000:3000" + - '3000:3000' environment: DATABASE_URL: postgresql://umami:umami@db:5432/umami DATABASE_TYPE: postgresql @@ -14,7 +14,7 @@ services: init: true restart: always healthcheck: - test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"] + test: ['CMD-SHELL', 'curl http://localhost:3000/api/heartbeat'] interval: 5s timeout: 5s retries: 5 @@ -28,7 +28,7 @@ services: - umami-db-data:/var/lib/postgresql/data restart: always healthcheck: - test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'] interval: 5s timeout: 5s retries: 5 diff --git a/public/intl/country/uz-UZ.json b/public/intl/country/uz-UZ.json new file mode 100644 index 00000000..0105597f --- /dev/null +++ b/public/intl/country/uz-UZ.json @@ -0,0 +1,251 @@ +{ + "AF": "Afg\u02bboniston", + "AX": "Aland orollari", + "AL": "Albaniya", + "US": "Amerika Qo\u2018shma Shtatlari", + "AS": "Amerika Samoasi", + "AD": "Andorra", + "AI": "Angilya", + "AO": "Angola", + "AQ": "Antarktida", + "AG": "Antigua va Barbuda", + "VI": "AQSH Virgin orollari", + "UM": "AQSH yondosh orollari", + "AR": "Argentina", + "AM": "Armaniston", + "AW": "Aruba", + "AU": "Avstraliya", + "AT": "Avstriya", + "BS": "Bagama orollari", + "BH": "Bahrayn", + "BD": "Bangladesh", + "BB": "Barbados", + "BY": "Belarus", + "BE": "Belgiya", + "BZ": "Beliz", + "BJ": "Benin", + "BM": "Bermuda orollari", + "AE": "Birlashgan Arab Amirliklari", + "BG": "Bolgariya", + "BO": "Boliviya", + "BQ": "Boneyr, Sint-Estatius va Saba", + "BA": "Bosniya va Gertsegovina", + "BW": "Botsvana", + "BR": "Braziliya", + "VG": "Britaniya Virgin orollari", + "IO": "Britaniyaning Hind okeanidagi hududi", + "BN": "Bruney", + "BF": "Burkina-Faso", + "BI": "Burundi", + "BT": "Butan", + "BV": "Buve oroli", + "GB": "Buyuk Britaniya", + "DK": "Daniya", + "DM": "Dominika", + "DO": "Dominikan Respublikasi", + "ET": "Efiopiya", + "EC": "Ekvador", + "GQ": "Ekvatorial Gvineya", + "ER": "Eritreya", + "IR": "Eron", + "EE": "Estoniya", + "PS": "Falastin hududlari", + "FO": "Farer orollari", + "FJ": "Fiji", + "PH": "Filippin", + "FI": "Finlandiya", + "FK": "Folklend orollari", + "FR": "Fransiya", + "GF": "Fransuz Gvianasi", + "TF": "Fransuz Janubiy hududlari", + "PF": "Fransuz Polineziyasi", + "GA": "Gabon", + "HT": "Gaiti", + "GM": "Gambiya", + "GH": "Gana", + "GY": "Gayana", + "DE": "Germaniya", + "GG": "Gernsi", + "GI": "Gibraltar", + "HN": "Gonduras", + "HK": "Gonkong (Xitoy MMH)", + "GD": "Grenada", + "GL": "Grenlandiya", + "GR": "Gretsiya", + "GE": "Gruziya", + "GU": "Guam", + "GP": "Gvadelupe", + "GT": "Gvatemala", + "GN": "Gvineya", + "GW": "Gvineya-Bisau", + "IN": "Hindiston", + "ID": "Indoneziya", + "JO": "Iordaniya", + "IE": "Irlandiya", + "IQ": "Iroq", + "IS": "Islandiya", + "ES": "Ispaniya", + "IL": "Isroil", + "IT": "Italiya", + "ZA": "Janubiy Afrika Respublikasi", + "GS": "Janubiy Georgiya va Janubiy Sendvich orollari", + "KR": "Janubiy Koreya", + "SS": "Janubiy Sudan", + "DZ": "Jazoir", + "JE": "Jersi", + "DJ": "Jibuti", + "CV": "Kabo-Verde", + "KH": "Kambodja", + "CM": "Kamerun", + "CA": "Kanada", + "KY": "Kayman orollari", + "KE": "Keniya", + "CY": "Kipr", + "KI": "Kiribati", + "CC": "Kokos (Kiling) orollari", + "CO": "Kolumbiya", + "KM": "Komor orollari", + "CG": "Kongo \u2013 Brazzavil", + "CD": "Kongo \u2013 Kinshasa", + "CR": "Kosta-Rika", + "CI": "Kot-d\u2019Ivuar", + "CU": "Kuba", + "CK": "Kuk orollari", + "CW": "Kyurasao", + "LA": "Laos", + "LV": "Latviya", + "LS": "Lesoto", + "LR": "Liberiya", + "LT": "Litva", + "LB": "Livan", + "LY": "Liviya", + "LI": "Lixtenshteyn", + "LU": "Lyuksemburg", + "MG": "Madagaskar", + "MO": "Makao (Xitoy MMH)", + "MW": "Malavi", + "MY": "Malayziya", + "MV": "Maldiv orollari", + "ML": "Mali", + "MT": "Malta", + "CF": "Markaziy Afrika Respublikasi", + "MA": "Marokash", + "MQ": "Martinika", + "MH": "Marshall orollari", + "MU": "Mavrikiy", + "MR": "Mavritaniya", + "YT": "Mayotta", + "MX": "Meksika", + "IM": "Men oroli", + "FM": "Mikroneziya", + "EG": "Misr", + "MD": "Moldova", + "MC": "Monako", + "MN": "Mongoliya", + "MS": "Montserrat", + "MZ": "Mozambik", + "SH": "Muqaddas Yelena oroli", + "MM": "Myanma (Birma)", + "NA": "Namibiya", + "NR": "Nauru", + "NP": "Nepal", + "NL": "Niderlandiya", + "NE": "Niger", + "NG": "Nigeriya", + "NI": "Nikaragua", + "NU": "Niue", + "NF": "Norfolk oroli", + "NO": "Norvegiya", + "AZ": "Ozarbayjon", + "PW": "Palau", + "PA": "Panama", + "PG": "Papua \u2013 Yangi Gvineya", + "PY": "Paragvay", + "PE": "Peru", + "PN": "Pitkern orollari", + "PK": "Pokiston", + "PL": "Polsha", + "PT": "Portugaliya", + "PR": "Puerto-Riko", + "QA": "Qatar", + "KG": "Qirg\u02bbiziston", + "KZ": "Qozog\u02bbiston", + "KW": "Quvayt", + "RE": "Reyunion", + "CX": "Rojdestvo oroli", + "RU": "Rossiya", + "RW": "Ruanda", + "RO": "Ruminiya", + "SV": "Salvador", + "WS": "Samoa", + "SM": "San-Marino", + "ST": "San-Tome va Prinsipi", + "SA": "Saudiya Arabistoni", + "BL": "Sen-Bartelemi", + "PM": "Sen-Pyer va Mikelon", + "SN": "Senegal", + "KN": "Sent-Kits va Nevis", + "LC": "Sent-Lyusiya", + "MF": "Sent-Martin", + "VC": "Sent-Vinsent va Grenadin", + "RS": "Serbiya", + "SC": "Seyshel orollari", + "SG": "Singapur", + "SX": "Sint-Marten", + "SK": "Slovakiya", + "SI": "Sloveniya", + "SB": "Solomon orollari", + "SO": "Somali", + "SD": "Sudan", + "SR": "Surinam", + "SY": "Suriya", + "SZ": "Svazilend", + "SL": "Syerra-Leone", + "TH": "Tailand", + "TZ": "Tanzaniya", + "TW": "Tayvan", + "TL": "Timor-Leste", + "TG": "Togo", + "TJ": "Tojikiston", + "TK": "Tokelau", + "TO": "Tonga", + "TT": "Trinidad va Tobago", + "TN": "Tunis", + "TR": "Turkiya", + "TM": "Turkmaniston", + "TC": "Turks va Kaykos orollari", + "TV": "Tuvalu", + "UG": "Uganda", + "UA": "Ukraina", + "OM": "Ummon", + "WF": "Uollis va Futuna", + "UY": "Urugvay", + "VU": "Vanuatu", + "VA": "Vatikan", + "VE": "Venesuela", + "HU": "Vengriya", + "VN": "Vyetnam", + "HM": "Xerd va Makdonald orollari", + "CN": "Xitoy", + "HR": "Xorvatiya", + "YE": "Yaman", + "JM": "Yamayka", + "NC": "Yangi Kaledoniya", + "NZ": "Yangi Zelandiya", + "JP": "Yaponiya", + "ZM": "Zambiya", + "ZW": "Zimbabve", + "UZ": "O\u02bbzbekiston", + "EH": "G\u2018arbiy Sahroi Kabir", + "KP": "Shimoliy Koreya", + "MK": "Shimoliy Makedoniya", + "MP": "Shimoliy Mariana orollari", + "SJ": "Shpitsbergen va Yan-Mayen", + "LK": "Shri-Lanka", + "SE": "Shvetsiya", + "CH": "Shveytsariya", + "TD": "Chad", + "ME": "Chernogoriya", + "CZ": "Chexiya", + "CL": "Chili" +} diff --git a/public/intl/language/uz-UZ.json b/public/intl/language/uz-UZ.json new file mode 100644 index 00000000..daacab88 --- /dev/null +++ b/public/intl/language/uz-UZ.json @@ -0,0 +1,611 @@ +{ + "ab": "abxazcha", + "ace": "Achinese", + "ach": "Acoli", + "ada": "Adangme", + "ady": "Adyghe", + "aa": "Afar", + "afh": "Afrihili", + "af": "afrikancha", + "agq": "ag\u2018emcha", + "ain": "Ainu", + "ak": "akancha", + "akk": "Akkadian", + "bss": "Akoose", + "akz": "Alabama", + "sq": "albancha", + "ale": "Aleut", + "arq": "Algerian Arabic", + "en_US": "American English", + "ase": "American Sign Language", + "am": "amxarcha", + "egy": "Ancient Egyptian", + "grc": "Ancient Greek", + "anp": "Angika", + "zh_Hant": "an\u02bcanaviy xitoycha", + "njo": "Ao Naga", + "ar": "arabcha", + "an": "Aragonese", + "arc": "Aramaic", + "aro": "Araona", + "arp": "Arapaho", + "arw": "Arawak", + "hy": "armancha", + "rup": "Aromanian", + "frp": "Arpitan", + "as": "assamcha", + "ast": "Asturian", + "asa": "asucha", + "cch": "Atsam", + "av": "Avaric", + "ae": "Avestan", + "en_AU": "Avstraliya inglizchasi", + "de_AT": "Avstriya olmonchasi", + "awa": "Awadhi", + "ay": "Aymara", + "bfq": "Badaga", + "ksf": "bafiycha", + "bfd": "Bafut", + "bqi": "Bakhtiari", + "ban": "Balinese", + "bal": "Baluchi", + "bm": "bambarcha", + "bax": "Bamun", + "bjn": "Banjar", + "bas": "Basaa", + "eu": "baskcha", + "bbc": "Batak Toba", + "bar": "Bavarian", + "bej": "Beja", + "be": "belaruscha", + "bem": "bembacha", + "bez": "benacha", + "bn": "bengalcha", + "bew": "Betawi", + "bho": "Bhojpuri", + "bik": "Bikol", + "bin": "Bini", + "my": "birmancha", + "bpy": "Bishnupriya", + "bi": "Bislama", + "byn": "Blin", + "zbl": "Blissymbols", + "brx": "bodocha", + "bg": "bolgarcha", + "ba": "boshqircha", + "bs": "bosniycha", + "brh": "Brahui", + "bra": "Braj", + "pt_BR": "Braziliya portugalchasi", + "br": "bretoncha", + "en_GB": "Britaniya inglizchasi", + "bug": "Buginese", + "bum": "Bulu", + "bua": "Buriat", + "cad": "Caddo", + "frc": "Cajun French", + "yue": "Cantonese", + "cps": "Capiznon", + "car": "Carib", + "cay": "Cayuga", + "ceb": "Cebuano", + "dtp": "Central Dusun", + "esu": "Central Yupik", + "shu": "Chadian Arabic", + "chg": "Chagatai", + "ch": "Chamorro", + "ce": "Chechen", + "chr": "cherokcha", + "cs": "chexcha", + "chy": "Cheyenne", + "chb": "Chibcha", + "cgg": "chigcha", + "qug": "Chimborazo Highland Quichua", + "chn": "Chinook Jargon", + "chp": "Chipewyan", + "cho": "Choctaw", + "cu": "Church Slavic", + "chk": "Chuukese", + "cv": "Chuvash", + "nwc": "Classical Newari", + "syc": "Classical Syriac", + "ksh": "Colognian", + "swb": "Comorian", + "cop": "Coptic", + "cr": "Cree", + "mus": "Creek", + "crh": "Crimean Turkish", + "dak": "Dakota", + "dar": "Dargwa", + "da": "datcha", + "dzg": "Dazaga", + "del": "Delaware", + "din": "Dinka", + "dv": "Divehi", + "doi": "Dogri", + "dgr": "Dogrib", + "dua": "dualcha", + "dyu": "Dyula", + "frs": "Eastern Frisian", + "efi": "Efik", + "arz": "Egyptian Arabic", + "eka": "Ekajuk", + "elx": "Elamite", + "ebu": "embucha", + "egl": "Emilian", + "myv": "Erzya", + "eo": "esperantocha", + "et": "estoncha", + "ewo": "Ewondo", + "ext": "Extremaduran", + "fan": "Fang", + "fat": "Fanti", + "fo": "farercha", + "fj": "fijcha", + "hif": "Fiji Hindi", + "fil": "filipincha", + "fi": "fincha", + "nl_BE": "flamandcha", + "fon": "Fon", + "fa": "forscha", + "gur": "Frafra", + "fr": "fransuzcha", + "fur": "Friulian", + "ff": "Fulah", + "gaa": "Ga", + "gag": "gagozcha", + "ht": "gaitcha", + "gl": "galitsiycha", + "gan": "Gan Chinese", + "lg": "gandcha", + "haw": "gavaycha", + "gay": "Gayo", + "gba": "Gbaya", + "gez": "Geez", + "aln": "Gheg Albanian", + "bbj": "Ghomala", + "fy": "g\u02bbarbiy friziancha", + "glk": "Gilaki", + "gil": "Gilbertese", + "gom": "Goan Konkani", + "nl": "gollandcha", + "gon": "Gondi", + "gn": "gorancha", + "gor": "Gorontalo", + "got": "Gothic", + "grb": "Grebo", + "ka": "gruzincha", + "gu": "gujoratcha", + "guz": "guzcha", + "gwi": "Gwich\u02bcin", + "hai": "Haida", + "hak": "Hakka Chinese", + "hz": "Herero", + "hil": "Hiligaynon", + "hi": "hindcha", + "ho": "Hiri Motu", + "hit": "Hittite", + "hmn": "Hmong", + "hup": "Hupa", + "iba": "Iban", + "ibb": "Ibibio", + "he": "ibroniy", + "io": "Ido", + "ig": "igbocha", + "ilo": "Iloko", + "smn": "inari semiycha", + "id": "indoneyzcha", + "en": "inglizcha", + "izh": "Ingrian", + "inh": "Ingush", + "ia": "Interlingua", + "ie": "Interlingue", + "iu": "inuktitutcha", + "ik": "Inupiaq", + "ga": "irlandcha", + "is": "islandcha", + "es": "ispancha", + "it": "italyancha", + "ee": "ivicha", + "jam": "Jamaican Creole English", + "sma": "janubiy semiycha", + "kaj": "Jju", + "jrb": "Judeo-Arabic", + "jpr": "Judeo-Persian", + "jut": "Jutish", + "kbd": "Kabardian", + "kea": "kabuverdiancha", + "kac": "Kachin", + "kgp": "Kaingang", + "kkj": "Kako", + "kl": "kalallisutcha", + "kln": "kalenjincha", + "xal": "Kalmyk", + "kam": "kambcha", + "fr_CA": "Kanada fransuzchasi", + "en_CA": "Kanada inglizchasi", + "kbl": "Kanembu", + "kn": "kannadcha", + "kr": "Kanuri", + "kaa": "Kara-Kalpak", + "krc": "Karachay-Balkar", + "krl": "Karelian", + "ks": "kashmircha", + "csb": "Kashubian", + "ca": "katalancha", + "kaw": "Kawi", + "ken": "Kenyang", + "kha": "Khasi", + "kho": "Khotanese", + "khw": "Khowar", + "ki": "kikuycha", + "kmb": "Kimbundu", + "krj": "Kinaray-a", + "rw": "kinyarvandcha", + "kiu": "Kirmanjki", + "tlh": "Klingon", + "bkm": "Kom", + "kv": "Komi", + "koi": "komi-permyakcha", + "kg": "Kongo", + "swc": "kongo svahiliycha", + "kok": "konkancha", + "ko": "koreyscha", + "kw": "kornishcha", + "kfo": "Koro", + "co": "korsiancha", + "ses": "koryaboro senniycha", + "kos": "Kosraean", + "avk": "Kotava", + "kpe": "Kpelle", + "kri": "Krio", + "kj": "Kuanyama", + "kum": "Kumyk", + "ku": "kurdcha", + "kru": "Kurukh", + "kut": "Kutenai", + "nmg": "kvaziycha", + "lad": "Ladino", + "lah": "Lahnda", + "lkt": "lakotcha", + "lam": "Lamba", + "lag": "langcha", + "lo": "laoscha", + "ltg": "Latgalian", + "lv": "latishcha", + "lzz": "Laz", + "lez": "Lezghian", + "lij": "Ligurian", + "li": "Limburgish", + "ln": "lingalcha", + "lfn": "Lingua Franca Nova", + "lzh": "Literary Chinese", + "lt": "litovcha", + "liv": "Livonian", + "jbo": "Lojban", + "lmo": "Lombard", + "es_419": "Lotin Amerika ispanchasi", + "la": "lotincha", + "nds": "Low German", + "sli": "Lower Silesian", + "loz": "Lozi", + "lu": "luba-katangcha", + "lua": "Luba-Lulua", + "lui": "Luiseno", + "smj": "luli semiycha", + "lun": "Lunda", + "luo": "luocha", + "luy": "luycha", + "lb": "lyuksemburgcha", + "mde": "Maba", + "jmc": "machamcha", + "mad": "Madurese", + "maf": "Mafa", + "mag": "Magahi", + "vmf": "Main-Franconian", + "mai": "Maithili", + "mak": "Makasar", + "mk": "makedoncha", + "mgh": "makuva-mittocha", + "mg": "malagasiycha", + "ml": "malayamcha", + "ms": "malaycha", + "mt": "maltacha", + "mnc": "Manchu", + "mdr": "Mandar", + "man": "Mandingo", + "mni": "Manipuri", + "mi": "maoriycha", + "arn": "mapuchiycha", + "kde": "maqondiy", + "mr": "maratcha", + "chm": "Mari", + "tzm": "markaziy atlas vaqt zonasi", + "mh": "Marshallese", + "mwr": "Marwari", + "mas": "masaycha", + "mzn": "Mazanderani", + "byv": "Medumba", + "es_MX": "Meksika ispanchasi", + "gv": "mencha", + "men": "Mende", + "mwv": "Mentawai", + "mer": "merucha", + "mgo": "metacha", + "mic": "Micmac", + "dum": "Middle Dutch", + "enm": "Middle English", + "frm": "Middle French", + "gmh": "Middle High German", + "mga": "Middle Irish", + "nan": "Min Nan Chinese", + "min": "Minangkabau", + "xmf": "Mingrelian", + "mwl": "Mirandese", + "lus": "Mizo", + "mn": "mo\u2018g\u2018ulcha", + "moh": "mohaukcha", + "mdf": "Moksha", + "ro_MD": "moldovan rumincha", + "lol": "Mongo", + "mfe": "morisyencha", + "ary": "Moroccan Arabic", + "mos": "Mossi", + "mul": "Multiple Languages", + "mua": "mundangcha", + "ttt": "Muslim Tat", + "mye": "Myene", + "naq": "namacha", + "na": "Nauru", + "nv": "Navajo", + "ng": "Ndonga", + "nap": "Neapolitan", + "de": "nemischa", + "ne": "nepalcha", + "new": "Newari", + "sba": "Ngambay", + "nnh": "Ngiemboon", + "jgo": "ngombcha", + "yrl": "Nheengatu", + "nia": "Nias", + "niu": "Niuean", + "nog": "Nogai", + "und": "noma\u02bclum til", + "frr": "Northern Frisian", + "nso": "Northern Sotho", + "nb": "norvegcha bokmal", + "nn": "norvegcha ninorsk", + "no": "Norwegian", + "nov": "Novial", + "nus": "noyrcha", + "nqo": "nqoancha", + "nym": "Nyamwezi", + "ny": "Nyanja", + "nyn": "nyankolcha", + "tog": "Nyasa Tonga", + "nyo": "Nyoro", + "nzi": "Nzima", + "oc": "Occitan", + "uz": "o\u02bbzbekcha", + "oj": "Ojibwa", + "ang": "Old English", + "fro": "Old French", + "goh": "Old High German", + "sga": "Old Irish", + "non": "Old Norse", + "peo": "Old Persian", + "pro": "Old Proven\u00e7al", + "or": "oriycha", + "om": "oromocha", + "osa": "Osage", + "os": "Ossetic", + "ota": "Ottoman Turkish", + "az": "ozarbayjoncha", + "pal": "Pahlavi", + "pfl": "Palatine German", + "pau": "Palauan", + "pi": "Pali", + "pam": "Pampanga", + "pag": "Pangasinan", + "pa": "panjobcha", + "pap": "Papiamento", + "pdc": "Pennsylvania German", + "phn": "Phoenician", + "pcd": "Picard", + "pms": "Piedmontese", + "pdt": "Plautdietsch", + "pon": "Pohnpeian", + "pl": "polyakcha", + "pnt": "Pontic", + "pt": "portugalcha", + "prg": "Prussian", + "ps": "pushtu tili", + "quc": "qichiancha", + "ky": "qirg\u02bbizcha", + "kab": "qobilcha", + "khq": "qoyra-chincha", + "kk": "qozoqcha", + "dsb": "quyi sorbcha", + "qu": "qvechuancha", + "raj": "Rajasthani", + "rap": "Rapanui", + "rar": "Rarotongan", + "rif": "Riffian", + "rgn": "Romagnol", + "rm": "romancha", + "rom": "Romany", + "rof": "rombacha", + "root": "Root", + "rtm": "Rotuman", + "rug": "Roviana", + "rwk": "ruandcha", + "ro": "rumincha", + "rn": "rundcha", + "ru": "ruscha", + "rue": "Rusyn", + "ssy": "Saho", + "sah": "Sakha", + "sam": "Samaritan Aramaic", + "saq": "samburcha", + "sm": "Samoan", + "sgs": "Samogitian", + "sad": "Sandawe", + "sg": "sangoancha", + "sbp": "sanguancha", + "sa": "sanskritcha", + "sat": "Santali", + "sc": "Sardinian", + "sas": "Sasak", + "sdc": "Sassarese Sardinian", + "stq": "Saterland Frisian", + "saz": "Saurashtra", + "sco": "Scots", + "gd": "Scottish Gaelic", + "sly": "Selayar", + "sel": "Selkup", + "see": "Seneca", + "seh": "seniycha", + "sr": "serbcha", + "sh": "Serbo-Croatian", + "srr": "Serer", + "sei": "Seri", + "ksb": "shambalacha", + "shn": "Shan", + "nd": "shimoliy ndebelcha", + "se": "shimoliy semiycha", + "sms": "shkolt semiycha", + "sn": "shoniycha", + "sv": "shvedcha", + "fr_CH": "Shvesariya fransuzchasi", + "de_CH": "Shvesariya olmonchasi", + "gsw": "shveysariya nemischasi", + "scn": "Sicilian", + "sid": "Sidamo", + "bla": "Siksika", + "szl": "Silesian", + "sd": "sindxiycha", + "si": "sinholcha", + "den": "Slave", + "sk": "slovakcha", + "sl": "slovencha", + "zh_Hans": "soddalashtirilgan xitoycha", + "xog": "sogancha", + "sog": "Sogdien", + "so": "somalicha", + "snk": "Soninke", + "ckb": "sorani kurd tili", + "azb": "South Azerbaijani", + "nr": "South Ndebele", + "alt": "Southern Altai", + "st": "Southern Sotho", + "srn": "Sranan Tongo", + "zgh": "standart marokash tamazit", + "suk": "Sukuma", + "sux": "Sumerian", + "su": "sundancha", + "sus": "Susu", + "sw": "svahilcha", + "ss": "Swati", + "syr": "Syriac", + "shi": "tachilgitcha", + "tl": "Tagalog", + "ty": "Tahitian", + "dav": "taitcha", + "tly": "Talysh", + "tmh": "Tamashek", + "ta": "tamilcha", + "trv": "Taroko", + "tt": "tatarcha", + "th": "taycha", + "te": "telugvancha", + "ter": "Tereno", + "teo": "tesoancha", + "tet": "Tetum", + "bo": "tibetcha", + "tig": "Tigre", + "ti": "tigrincha", + "zxx": "til tarkibi yo\u02bbq", + "tem": "Timne", + "tiv": "Tiv", + "tli": "Tlingit", + "tg": "tojikcha", + "tpi": "Tok Pisin", + "tkl": "Tokelau", + "to": "tongocha", + "fit": "Tornedalen Finnish", + "twq": "tosovoqcha", + "tkr": "Tsakhur", + "tsd": "Tsakonian", + "tsi": "Tsimshian", + "ts": "Tsonga", + "tn": "Tswana", + "tcy": "Tulu", + "tum": "Tumbuka", + "aeb": "Tunisian Arabic", + "tr": "turkcha", + "tk": "turkmancha", + "tru": "Turoyo", + "tvl": "Tuvalu", + "tyv": "Tuvinian", + "tw": "Twi", + "kcg": "Tyap", + "udm": "Udmurt", + "cy": "uelscha", + "uga": "Ugaritic", + "uk": "ukraincha", + "umb": "Umbundu", + "ur": "urducha", + "ug": "uyg\u02bburcha", + "vai": "vayancha", + "ve": "Venda", + "vec": "Venetian", + "hu": "vengrcha", + "vep": "Veps", + "vo": "Volap\u00fck", + "wo": "volofcha", + "vro": "V\u00f5ro", + "vot": "Votic", + "vun": "vunjoancha", + "vi": "vyetnamcha", + "wa": "Walloon", + "wae": "Walser", + "war": "Waray", + "wbp": "Warlpiri", + "was": "Washo", + "guc": "Wayuu", + "vls": "West Flemish", + "mrj": "Western Mari", + "wal": "Wolaytta", + "wuu": "Wu Chinese", + "ha": "xauscha", + "hsn": "Xiang Chinese", + "zh": "xitoycha", + "km": "xmercha", + "hr": "xorvatcha", + "xh": "xosancha", + "yav": "Yangben", + "yao": "Yao", + "yap": "Yapese", + "ja": "yaponcha", + "jv": "yavancha", + "ybb": "Yemba", + "es_ES": "Yevropa ispanchasi", + "pt_PT": "Yevropa portugalchasi", + "yi": "Yiddish", + "dyo": "yola-fonyicha", + "yo": "yorubcha", + "dz": "yovoncha", + "el": "yunoncha", + "hsb": "yuqori sorbcha", + "ar_001": "zamonavij standart arabcha", + "zap": "Zapotec", + "dje": "zarmacha", + "zza": "Zaza", + "zea": "Zeelandic", + "zen": "Zenaga", + "za": "Zhuang", + "ii": "zichuan yicha", + "gbz": "Zoroastrian Dari", + "zu": "zuluancha", + "zun": "Zuni" +} diff --git a/public/intl/messages/ar-SA.json b/public/intl/messages/ar-SA.json index da0109c0..922b7fbc 100644 --- a/public/intl/messages/ar-SA.json +++ b/public/intl/messages/ar-SA.json @@ -1766,7 +1766,7 @@ "message.reset-website-warning": [ { "type": 0, - "value": "سيتم اعادة تعيين كافة الإحصائيات لهذا الموقع، لكن لن يتم تعيير كود التتبع" + "value": "سيتم اعادة تعيين كافة الإحصائيات لهذا الموقع، لكن لن يتم تغيير كود التتبع" } ], "message.saved": [ diff --git a/public/intl/messages/es-ES.json b/public/intl/messages/es-ES.json index 540c9bbd..75c704c1 100644 --- a/public/intl/messages/es-ES.json +++ b/public/intl/messages/es-ES.json @@ -476,7 +476,7 @@ "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Visto por primera vez" } ], "label.funnel": [ @@ -656,7 +656,7 @@ "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Visto por última vez" } ], "label.leave": [ @@ -789,7 +789,7 @@ "value": [ { "type": 0, - "value": "record" + "value": "registro" } ] }, @@ -797,7 +797,7 @@ "value": [ { "type": 0, - "value": "records" + "value": "registros" } ] } @@ -922,7 +922,7 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Propiedades" } ], "label.property": [ @@ -1042,19 +1042,19 @@ "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Ganancias" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Analice sus ganancias a lo largo del tiempo." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Propiedad de ganancias" } ], "label.role": [ @@ -1114,7 +1114,7 @@ "label.session": [ { "type": 0, - "value": "Session" + "value": "Sesión" } ], "label.sessions": [ @@ -1288,7 +1288,7 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Transacciones" } ], "label.transfer": [ @@ -1330,7 +1330,7 @@ "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Clientes únicos" } ], "label.unknown": [ @@ -1372,7 +1372,7 @@ "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Propiedad de usuario" } ], "label.username": [ diff --git a/public/intl/messages/sl-SI.json b/public/intl/messages/sl-SI.json index ae11c067..fdacb887 100644 --- a/public/intl/messages/sl-SI.json +++ b/public/intl/messages/sl-SI.json @@ -32,13 +32,13 @@ "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Dodaj člana" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Dodaj korak" } ], "label.add-website": [ @@ -152,7 +152,7 @@ "label.compare": [ { "type": 0, - "value": "Compare" + "value": "Primerjaj" } ], "label.confirm": [ @@ -182,7 +182,7 @@ "label.count": [ { "type": 0, - "value": "Count" + "value": "Število" } ], "label.countries": [ @@ -200,7 +200,7 @@ "label.create": [ { "type": 0, - "value": "Create" + "value": "Ustvari" } ], "label.create-report": [ @@ -230,13 +230,13 @@ "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Ustvaril" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Trenutno" } ], "label.current-password": [ @@ -296,7 +296,7 @@ "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Izbriši poročilo" } ], "label.delete-team": [ @@ -386,25 +386,25 @@ "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Uredi člana" } ], "label.enable-share-url": [ { "type": 0, - "value": "Uredi povezavo za deljenje" + "value": "Omogoči povezavo za deljenje" } ], "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Končni korak" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "Vstopni URL" } ], "label.event": [ @@ -428,7 +428,7 @@ "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "Izhodni URL" } ], "label.false": [ @@ -476,7 +476,7 @@ "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Prvič viden" } ], "label.funnel": [ @@ -488,25 +488,25 @@ "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Razumite stopnjo konverzije in osipa uporabnikov." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Cilj" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Cilji" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Spremljajte svoje cilje za oglede strani in dogodke." } ], "label.greater-than": [ @@ -524,13 +524,13 @@ "label.host": [ { "type": 0, - "value": "Host" + "value": "Gostitelj" } ], "label.hosts": [ { "type": 0, - "value": "Hosts" + "value": "Gostitelji" } ], "label.insights": [ @@ -542,7 +542,7 @@ "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Poglobite se v podatke z uporabo segmentov in filtrov." } ], "label.is": [ @@ -584,13 +584,13 @@ "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Uporabniška pot" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Razumite, kako uporabniki krmarijo po vašem spletnem mestu." } ], "label.language": [ @@ -642,7 +642,7 @@ "label.last-months": [ { "type": 0, - "value": "Last " + "value": "Zadnjih " }, { "type": 1, @@ -650,13 +650,13 @@ }, { "type": 0, - "value": " months" + "value": " mesecev" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Nazadnje viden" } ], "label.leave": [ @@ -698,13 +698,13 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Upravljaj" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Upravitelj" } ], "label.max": [ @@ -716,7 +716,7 @@ "label.member": [ { "type": 0, - "value": "Member" + "value": "Član" } ], "label.members": [ @@ -746,7 +746,7 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Moj račun" } ], "label.my-websites": [ @@ -876,13 +876,13 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Pot" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Poti" } ], "label.powered-by": [ @@ -898,19 +898,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Prejšnji" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Prejšnje obdobje" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Prejšnje leto" } ], "label.profile": [ @@ -922,13 +922,13 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Lastnosti" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "Lastnost" } ], "label.queries": [ @@ -1000,7 +1000,7 @@ "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Odstrani člana" } ], "label.reports": [ @@ -1036,25 +1036,25 @@ "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Merite uporabnikovo zadržanost s sledenjem, kako pogosto se vračajo." } ], "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Prihodki" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Preglejte svoje prihodke skozi čas." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Lastnost prihodkov" } ], "label.role": [ @@ -1084,13 +1084,13 @@ "label.search": [ { "type": 0, - "value": "Search" + "value": "Išči" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Izberi" } ], "label.select-date": [ @@ -1102,7 +1102,7 @@ "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Izberi vlogo" } ], "label.select-website": [ @@ -1114,7 +1114,7 @@ "label.session": [ { "type": 0, - "value": "Session" + "value": "Seja" } ], "label.sessions": [ @@ -1144,13 +1144,13 @@ "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Začetni korak" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Koraki" } ], "label.sum": [ @@ -1180,7 +1180,7 @@ "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Upravitelj ekipe" } ], "label.team-member": [ @@ -1204,7 +1204,7 @@ "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Ekipa samo za ogled" } ], "label.team-websites": [ @@ -1468,7 +1468,7 @@ "label.websites": [ { "type": 0, - "value": "Spletnih mest" + "value": "Spletna mesta" } ], "label.window": [ @@ -1486,7 +1486,7 @@ "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Za potrditev v spodnje polje vnesite " }, { "type": 1, @@ -1494,7 +1494,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": "." } ], "message.active-users": [ @@ -1534,7 +1534,7 @@ "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Zbrani podatki" } ], "message.confirm-delete": [ @@ -1568,7 +1568,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Ali ste prepričani, da želite odstraniti " }, { "type": 1, @@ -1596,7 +1596,7 @@ "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "Brisanje ekipe bo izbrisalo tudi vsa spletna mesta ekipe." } ], "message.delete-website-warning": [ @@ -1792,25 +1792,25 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Želite prenesti to spletno mesto v svoj račun?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Izberite ekipo, na katero želite prenesti to spletno mesto." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Prenesite lastništvo spletnega mesta na svoj račun ali drugo ekipo." } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Sprožen dogodek" } ], "message.user-deleted": [ @@ -1822,7 +1822,7 @@ "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Ogledana stran" } ], "message.visitor-log": [ @@ -1862,7 +1862,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Osip obiskovalcev" } ] } diff --git a/public/intl/messages/uz-UZ.json b/public/intl/messages/uz-UZ.json new file mode 100644 index 00000000..3697ff1b --- /dev/null +++ b/public/intl/messages/uz-UZ.json @@ -0,0 +1,1858 @@ +{ + "label.access-code": [ + { + "type": 0, + "value": "Kirish kodi" + } + ], + "label.actions": [ + { + "type": 0, + "value": "Amallar" + } + ], + "label.activity": [ + { + "type": 0, + "value": "Faoliyat" + } + ], + "label.add": [ + { + "type": 0, + "value": "Qoʻshish" + } + ], + "label.add-description": [ + { + "type": 0, + "value": "Tavsif qoʻshish" + } + ], + "label.add-member": [ + { + "type": 0, + "value": "A'zo qoʻshish" + } + ], + "label.add-step": [ + { + "type": 0, + "value": "Qadam qoʻshish" + } + ], + "label.add-website": [ + { + "type": 0, + "value": "Veb-sayt qoʻshish" + } + ], + "label.admin": [ + { + "type": 0, + "value": "Administrator" + } + ], + "label.after": [ + { + "type": 0, + "value": "Keyin" + } + ], + "label.all": [ + { + "type": 0, + "value": "Barchasi" + } + ], + "label.all-time": [ + { + "type": 0, + "value": "Barcha vaqtlar" + } + ], + "label.analytics": [ + { + "type": 0, + "value": "Tahlil" + } + ], + "label.average": [ + { + "type": 0, + "value": "Oʻrtacha" + } + ], + "label.back": [ + { + "type": 0, + "value": "Orqaga" + } + ], + "label.before": [ + { + "type": 0, + "value": "Oldin" + } + ], + "label.bounce-rate": [ + { + "type": 0, + "value": "Chiqib ketish darajasi" + } + ], + "label.breakdown": [ + { + "type": 0, + "value": "Tahlil" + } + ], + "label.browser": [ + { + "type": 0, + "value": "Brauzer" + } + ], + "label.browsers": [ + { + "type": 0, + "value": "Brauzerlar" + } + ], + "label.cancel": [ + { + "type": 0, + "value": "Bekor qilish" + } + ], + "label.change-password": [ + { + "type": 0, + "value": "Parolni oʻzgartirish" + } + ], + "label.cities": [ + { + "type": 0, + "value": "Shaharlar" + } + ], + "label.city": [ + { + "type": 0, + "value": "Shahar" + } + ], + "label.clear-all": [ + { + "type": 0, + "value": "Barchasini tozalash" + } + ], + "label.compare": [ + { + "type": 0, + "value": "Taqqoslash" + } + ], + "label.confirm": [ + { + "type": 0, + "value": "Tasdiqlash" + } + ], + "label.confirm-password": [ + { + "type": 0, + "value": "Parolni tasdiqlash" + } + ], + "label.contains": [ + { + "type": 0, + "value": "Oʻz ichiga oladi" + } + ], + "label.continue": [ + { + "type": 0, + "value": "Davom etish" + } + ], + "label.count": [ + { + "type": 0, + "value": "Soni" + } + ], + "label.countries": [ + { + "type": 0, + "value": "Davlatlar" + } + ], + "label.country": [ + { + "type": 0, + "value": "Davlat" + } + ], + "label.create": [ + { + "type": 0, + "value": "Yaratish" + } + ], + "label.create-report": [ + { + "type": 0, + "value": "Hisobot yaratish" + } + ], + "label.create-team": [ + { + "type": 0, + "value": "Jamoa yaratish" + } + ], + "label.create-user": [ + { + "type": 0, + "value": "Foydalanuvchi yaratish" + } + ], + "label.created": [ + { + "type": 0, + "value": "Yaratilgan" + } + ], + "label.created-by": [ + { + "type": 0, + "value": "Kim tomonidan yaratilgan" + } + ], + "label.current": [ + { + "type": 0, + "value": "Joriy" + } + ], + "label.current-password": [ + { + "type": 0, + "value": "Joriy parol" + } + ], + "label.custom-range": [ + { + "type": 0, + "value": "Maxsus oraliq" + } + ], + "label.dashboard": [ + { + "type": 0, + "value": "Boshqaruv paneli" + } + ], + "label.data": [ + { + "type": 0, + "value": "Ma'lumotlar" + } + ], + "label.date": [ + { + "type": 0, + "value": "Sana" + } + ], + "label.date-range": [ + { + "type": 0, + "value": "Sana oraligʻi" + } + ], + "label.day": [ + { + "type": 0, + "value": "Kun" + } + ], + "label.default-date-range": [ + { + "type": 0, + "value": "Standart sana oraligʻi" + } + ], + "label.delete": [ + { + "type": 0, + "value": "Oʻchirish" + } + ], + "label.delete-report": [ + { + "type": 0, + "value": "Hisobotni oʻchirish" + } + ], + "label.delete-team": [ + { + "type": 0, + "value": "Jamoani oʻchirish" + } + ], + "label.delete-user": [ + { + "type": 0, + "value": "Foydalanuvchini oʻchirish" + } + ], + "label.delete-website": [ + { + "type": 0, + "value": "Veb-saytni oʻchirish" + } + ], + "label.description": [ + { + "type": 0, + "value": "Tavsif" + } + ], + "label.desktop": [ + { + "type": 0, + "value": "Ish stoli" + } + ], + "label.details": [ + { + "type": 0, + "value": "Batafsil ma'lumot" + } + ], + "label.device": [ + { + "type": 0, + "value": "Qurilma" + } + ], + "label.devices": [ + { + "type": 0, + "value": "Qurilmalar" + } + ], + "label.dismiss": [ + { + "type": 0, + "value": "Yopish" + } + ], + "label.does-not-contain": [ + { + "type": 0, + "value": "Oʻz ichiga olmaydi" + } + ], + "label.domain": [ + { + "type": 0, + "value": "Domen" + } + ], + "label.dropoff": [ + { + "type": 0, + "value": "Tashlab ketish" + } + ], + "label.edit": [ + { + "type": 0, + "value": "Tahrirlash" + } + ], + "label.edit-dashboard": [ + { + "type": 0, + "value": "Boshqaruv panelini tahrirlash" + } + ], + "label.edit-member": [ + { + "type": 0, + "value": "A'zoni tahrirlash" + } + ], + "label.enable-share-url": [ + { + "type": 0, + "value": "Ulashish URL'ini yoqish" + } + ], + "label.end-step": [ + { + "type": 0, + "value": "Yakuniy qadam" + } + ], + "label.entry": [ + { + "type": 0, + "value": "Kirish yoʻli" + } + ], + "label.event": [ + { + "type": 0, + "value": "Hodisa" + } + ], + "label.event-data": [ + { + "type": 0, + "value": "Hodisa ma'lumotlari" + } + ], + "label.events": [ + { + "type": 0, + "value": "Hodisalar" + } + ], + "label.exit": [ + { + "type": 0, + "value": "Chiqish yoʻli" + } + ], + "label.false": [ + { + "type": 0, + "value": "Yolgʻon" + } + ], + "label.field": [ + { + "type": 0, + "value": "Maydon" + } + ], + "label.fields": [ + { + "type": 0, + "value": "Maydonlar" + } + ], + "label.filter": [ + { + "type": 0, + "value": "Filtr" + } + ], + "label.filter-combined": [ + { + "type": 0, + "value": "Birlashtirilgan" + } + ], + "label.filter-raw": [ + { + "type": 0, + "value": "Xom" + } + ], + "label.filters": [ + { + "type": 0, + "value": "Filtrlar" + } + ], + "label.first-seen": [ + { + "type": 0, + "value": "Birinchi koʻrilgan" + } + ], + "label.funnel": [ + { + "type": 0, + "value": "Voronka" + } + ], + "label.funnel-description": [ + { + "type": 0, + "value": "Foydalanuvchilarning konversiya va tashlab ketish darajasini tushunish." + } + ], + "label.goal": [ + { + "type": 0, + "value": "Maqsad" + } + ], + "label.goals": [ + { + "type": 0, + "value": "Maqsadlar" + } + ], + "label.goals-description": [ + { + "type": 0, + "value": "Sahifa koʻrishlari va hodisalar uchun maqsadlaringizni kuzatib boring." + } + ], + "label.greater-than": [ + { + "type": 0, + "value": "Kattaroq" + } + ], + "label.greater-than-equals": [ + { + "type": 0, + "value": "Kattaroq yoki teng" + } + ], + "label.host": [ + { + "type": 0, + "value": "Xost" + } + ], + "label.hosts": [ + { + "type": 0, + "value": "Xostlar" + } + ], + "label.insights": [ + { + "type": 0, + "value": "Tushunchalar" + } + ], + "label.insights-description": [ + { + "type": 0, + "value": "Segmentlar va filtrlardan foydalanib ma'lumotlaringizga chuqurroq kiring." + } + ], + "label.is": [ + { + "type": 0, + "value": "Teng" + } + ], + "label.is-not": [ + { + "type": 0, + "value": "Teng emas" + } + ], + "label.is-not-set": [ + { + "type": 0, + "value": "Oʻrnatilmagan" + } + ], + "label.is-set": [ + { + "type": 0, + "value": "Oʻrnatilgan" + } + ], + "label.join": [ + { + "type": 0, + "value": "Qoʻshilish" + } + ], + "label.join-team": [ + { + "type": 0, + "value": "Jamoaga qoʻshilish" + } + ], + "label.journey": [ + { + "type": 0, + "value": "Sayohat" + } + ], + "label.journey-description": [ + { + "type": 0, + "value": "Foydalanuvchilar veb-saytingizda qanday harakat qilishlarini tushunish." + } + ], + "label.language": [ + { + "type": 0, + "value": "Til" + } + ], + "label.languages": [ + { + "type": 0, + "value": "Tillar" + } + ], + "label.laptop": [ + { + "type": 0, + "value": "Noutbuk" + } + ], + "label.last-days": [ + { + "type": 0, + "value": "Oxirgi " + }, + { + "type": 1, + "value": "x" + }, + { + "type": 0, + "value": " kun" + } + ], + "label.last-hours": [ + { + "type": 0, + "value": "Oxirgi " + }, + { + "type": 1, + "value": "x" + }, + { + "type": 0, + "value": " soat" + } + ], + "label.last-months": [ + { + "type": 0, + "value": "Oxirgi " + }, + { + "type": 1, + "value": "x" + }, + { + "type": 0, + "value": " oy" + } + ], + "label.last-seen": [ + { + "type": 0, + "value": "Oxirgi koʻrilgan" + } + ], + "label.leave": [ + { + "type": 0, + "value": "Tark etish" + } + ], + "label.leave-team": [ + { + "type": 0, + "value": "Jamoani tark etish" + } + ], + "label.less-than": [ + { + "type": 0, + "value": "Kichikroq" + } + ], + "label.less-than-equals": [ + { + "type": 0, + "value": "Kichikroq yoki teng" + } + ], + "label.login": [ + { + "type": 0, + "value": "Kirish" + } + ], + "label.logout": [ + { + "type": 0, + "value": "Chiqish" + } + ], + "label.manage": [ + { + "type": 0, + "value": "Boshqarish" + } + ], + "label.manager": [ + { + "type": 0, + "value": "Menejer" + } + ], + "label.max": [ + { + "type": 0, + "value": "Maksimal" + } + ], + "label.member": [ + { + "type": 0, + "value": "A'zo" + } + ], + "label.members": [ + { + "type": 0, + "value": "A'zolar" + } + ], + "label.min": [ + { + "type": 0, + "value": "Minimal" + } + ], + "label.mobile": [ + { + "type": 0, + "value": "Mobil" + } + ], + "label.more": [ + { + "type": 0, + "value": "Koʻproq" + } + ], + "label.my-account": [ + { + "type": 0, + "value": "Mening hisobim" + } + ], + "label.my-websites": [ + { + "type": 0, + "value": "Mening veb-saytlarim" + } + ], + "label.name": [ + { + "type": 0, + "value": "Ism" + } + ], + "label.new-password": [ + { + "type": 0, + "value": "Yangi parol" + } + ], + "label.none": [ + { + "type": 0, + "value": "Hech biri" + } + ], + "label.number-of-records": [ + { + "type": 1, + "value": "x" + }, + { + "type": 0, + "value": " yozuv" + } + ], + "label.ok": [ + { + "type": 0, + "value": "OK" + } + ], + "label.os": [ + { + "type": 0, + "value": "OT (Operatsion tizim)" + } + ], + "label.overview": [ + { + "type": 0, + "value": "Umumiy koʻrinish" + } + ], + "label.owner": [ + { + "type": 0, + "value": "Egasi" + } + ], + "label.page-of": [ + { + "type": 0, + "value": "Sahifa " + }, + { + "type": 1, + "value": "current" + }, + { + "type": 0, + "value": " dan " + }, + { + "type": 1, + "value": "total" + } + ], + "label.page-views": [ + { + "type": 0, + "value": "Sahifa koʻrishlari" + } + ], + "label.pageTitle": [ + { + "type": 0, + "value": "Sahifa sarlavhasi" + } + ], + "label.pages": [ + { + "type": 0, + "value": "Sahifalar" + } + ], + "label.password": [ + { + "type": 0, + "value": "Parol" + } + ], + "label.path": [ + { + "type": 0, + "value": "Yoʻl" + } + ], + "label.paths": [ + { + "type": 0, + "value": "Yoʻllar" + } + ], + "label.powered-by": [ + { + "type": 1, + "value": "name" + }, + { + "type": 0, + "value": " tomonidan quvvatlanadi" + } + ], + "label.previous": [ + { + "type": 0, + "value": "Oldingi" + } + ], + "label.previous-period": [ + { + "type": 0, + "value": "Oldingi davr" + } + ], + "label.previous-year": [ + { + "type": 0, + "value": "Oldingi yil" + } + ], + "label.profile": [ + { + "type": 0, + "value": "Profil" + } + ], + "label.properties": [ + { + "type": 0, + "value": "Xususiyatlar" + } + ], + "label.property": [ + { + "type": 0, + "value": "Xususiyat" + } + ], + "label.queries": [ + { + "type": 0, + "value": "Soʻrovlar" + } + ], + "label.query": [ + { + "type": 0, + "value": "Soʻrov" + } + ], + "label.query-parameters": [ + { + "type": 0, + "value": "Soʻrov parametrlari" + } + ], + "label.realtime": [ + { + "type": 0, + "value": "Haqiqiy vaqt" + } + ], + "label.referrer": [ + { + "type": 0, + "value": "Tavsiya etuvchi" + } + ], + "label.referrers": [ + { + "type": 0, + "value": "Tavsiya etuvchilar" + } + ], + "label.refresh": [ + { + "type": 0, + "value": "Yangilash" + } + ], + "label.regenerate": [ + { + "type": 0, + "value": "Qayta yaratish" + } + ], + "label.region": [ + { + "type": 0, + "value": "Viloyat/Mintaqa" + } + ], + "label.regions": [ + { + "type": 0, + "value": "Viloyatlar/Mintaqalar" + } + ], + "label.remove": [ + { + "type": 0, + "value": "Olib tashlash" + } + ], + "label.remove-member": [ + { + "type": 0, + "value": "A'zoni olib tashlash" + } + ], + "label.reports": [ + { + "type": 0, + "value": "Hisobotlar" + } + ], + "label.required": [ + { + "type": 0, + "value": "Majburiy" + } + ], + "label.reset": [ + { + "type": 0, + "value": "Qayta tiklash" + } + ], + "label.reset-website": [ + { + "type": 0, + "value": "Veb-saytni qayta tiklash" + } + ], + "label.retention": [ + { + "type": 0, + "value": "Saqlanish" + } + ], + "label.retention-description": [ + { + "type": 0, + "value": "Foydalanuvchilarning qaytish chastotasini kuzatib, veb-saytingizning jozibadorligini oʻlchang." + } + ], + "label.revenue": [ + { + "type": 0, + "value": "Daromad" + } + ], + "label.revenue-description": [ + { + "type": 0, + "value": "Vaqt oʻtishi bilan daromadingizni tekshiring." + } + ], + "label.revenue-property": [ + { + "type": 0, + "value": "Daromad xususiyati" + } + ], + "label.role": [ + { + "type": 0, + "value": "Rol" + } + ], + "label.run-query": [ + { + "type": 0, + "value": "Soʻrovni ishga tushirish" + } + ], + "label.save": [ + { + "type": 0, + "value": "Saqlash" + } + ], + "label.screens": [ + { + "type": 0, + "value": "Ekranlar" + } + ], + "label.search": [ + { + "type": 0, + "value": "Qidiruv" + } + ], + "label.select": [ + { + "type": 0, + "value": "Tanlash" + } + ], + "label.select-date": [ + { + "type": 0, + "value": "Sanani tanlash" + } + ], + "label.select-role": [ + { + "type": 0, + "value": "Rolni tanlash" + } + ], + "label.select-website": [ + { + "type": 0, + "value": "Veb-saytni tanlash" + } + ], + "label.session": [ + { + "type": 0, + "value": "Sessiya" + } + ], + "label.sessions": [ + { + "type": 0, + "value": "Sessiyalar" + } + ], + "label.settings": [ + { + "type": 0, + "value": "Sozlamalar" + } + ], + "label.share-url": [ + { + "type": 0, + "value": "Ulashish URL'i" + } + ], + "label.single-day": [ + { + "type": 0, + "value": "Bir kun" + } + ], + "label.start-step": [ + { + "type": 0, + "value": "Boshlanish qadami" + } + ], + "label.steps": [ + { + "type": 0, + "value": "Qadamlar" + } + ], + "label.sum": [ + { + "type": 0, + "value": "Yigʻindi" + } + ], + "label.tablet": [ + { + "type": 0, + "value": "Planshet" + } + ], + "label.team": [ + { + "type": 0, + "value": "Jamoa" + } + ], + "label.team-id": [ + { + "type": 0, + "value": "Jamoa ID'si" + } + ], + "label.team-manager": [ + { + "type": 0, + "value": "Jamoa menejeri" + } + ], + "label.team-member": [ + { + "type": 0, + "value": "Jamoa a'zosi" + } + ], + "label.team-name": [ + { + "type": 0, + "value": "Jamoa nomi" + } + ], + "label.team-owner": [ + { + "type": 0, + "value": "Jamoa egasi" + } + ], + "label.team-view-only": [ + { + "type": 0, + "value": "Jamoa faqat koʻrish" + } + ], + "label.team-websites": [ + { + "type": 0, + "value": "Jamoa veb-saytlari" + } + ], + "label.teams": [ + { + "type": 0, + "value": "Jamoalar" + } + ], + "label.theme": [ + { + "type": 0, + "value": "Mavzu" + } + ], + "label.this-month": [ + { + "type": 0, + "value": "Shu oy" + } + ], + "label.this-week": [ + { + "type": 0, + "value": "Shu hafta" + } + ], + "label.this-year": [ + { + "type": 0, + "value": "Shu yil" + } + ], + "label.timezone": [ + { + "type": 0, + "value": "Vaqt zonasi" + } + ], + "label.title": [ + { + "type": 0, + "value": "Sarlavha" + } + ], + "label.today": [ + { + "type": 0, + "value": "Bugun" + } + ], + "label.toggle-charts": [ + { + "type": 0, + "value": "Grafiklarni almashtirish" + } + ], + "label.total": [ + { + "type": 0, + "value": "Jami" + } + ], + "label.total-records": [ + { + "type": 0, + "value": "Jami yozuvlar" + } + ], + "label.tracking-code": [ + { + "type": 0, + "value": "Kuzatuv kodi" + } + ], + "label.transactions": [ + { + "type": 0, + "value": "Tranzaksiyalar" + } + ], + "label.transfer": [ + { + "type": 0, + "value": "Oʻtkazish" + } + ], + "label.transfer-website": [ + { + "type": 0, + "value": "Veb-saytni oʻtkazish" + } + ], + "label.true": [ + { + "type": 0, + "value": "Rost" + } + ], + "label.type": [ + { + "type": 0, + "value": "Tur" + } + ], + "label.unique": [ + { + "type": 0, + "value": "Noyob" + } + ], + "label.unique-visitors": [ + { + "type": 0, + "value": "Noyob tashrif buyuruvchilar" + } + ], + "label.uniqueCustomers": [ + { + "type": 0, + "value": "Noyob mijozlar" + } + ], + "label.unknown": [ + { + "type": 0, + "value": "Noma'lum" + } + ], + "label.untitled": [ + { + "type": 0, + "value": "Sarlavhasiz" + } + ], + "label.update": [ + { + "type": 0, + "value": "Yangilash" + } + ], + "label.url": [ + { + "type": 0, + "value": "URL" + } + ], + "label.urls": [ + { + "type": 0, + "value": "URL'lar" + } + ], + "label.user": [ + { + "type": 0, + "value": "Foydalanuvchi" + } + ], + "label.user-property": [ + { + "type": 0, + "value": "Foydalanuvchi xususiyati" + } + ], + "label.username": [ + { + "type": 0, + "value": "Foydalanuvchi nomi" + } + ], + "label.users": [ + { + "type": 0, + "value": "Foydalanuvchilar" + } + ], + "label.utm": [ + { + "type": 0, + "value": "UTM" + } + ], + "label.utm-description": [ + { + "type": 0, + "value": "UTM parametrlari orqali kampaniyalaringizni kuzatib boring." + } + ], + "label.value": [ + { + "type": 0, + "value": "Qiymat" + } + ], + "label.view": [ + { + "type": 0, + "value": "Koʻrish" + } + ], + "label.view-details": [ + { + "type": 0, + "value": "Batafsil koʻrish" + } + ], + "label.view-only": [ + { + "type": 0, + "value": "Faqat koʻrish" + } + ], + "label.views": [ + { + "type": 0, + "value": "Koʻrishlar" + } + ], + "label.views-per-visit": [ + { + "type": 0, + "value": "Tashrifga koʻrishlar soni" + } + ], + "label.visit-duration": [ + { + "type": 0, + "value": "Tashrif davomiyligi" + } + ], + "label.visitors": [ + { + "type": 0, + "value": "Tashrif buyuruvchilar" + } + ], + "label.visits": [ + { + "type": 0, + "value": "Tashriflar" + } + ], + "label.website": [ + { + "type": 0, + "value": "Veb-sayt" + } + ], + "label.website-id": [ + { + "type": 0, + "value": "Veb-sayt ID'si" + } + ], + "label.websites": [ + { + "type": 0, + "value": "Veb-saytlar" + } + ], + "label.window": [ + { + "type": 0, + "value": "Oyna" + } + ], + "label.yesterday": [ + { + "type": 0, + "value": "Kecha" + } + ], + "message.action-confirmation": [ + { + "type": 0, + "value": "Tasdiqlash uchun pastdagi qutiga **" + }, + { + "type": 1, + "value": "confirmation" + }, + { + "type": 0, + "value": "** yozing." + } + ], + "message.active-users": [ + { + "type": 1, + "value": "x" + }, + { + "type": 0, + "value": " joriy " + }, + { + "offset": 0, + "options": { + "one": { + "value": [ + { + "type": 0, + "value": "tashrif buyuruvchi" + } + ] + }, + "other": { + "value": [ + { + "type": 0, + "value": "tashrif buyuruvchilar" + } + ] + } + }, + "pluralType": "cardinal", + "type": 6, + "value": "x" + } + ], + "message.collected-data": [ + { + "type": 0, + "value": "Yigʻilgan ma'lumotlar" + } + ], + "message.confirm-delete": [ + { + "type": 0, + "value": "**" + }, + { + "type": 1, + "value": "target" + }, + { + "type": 0, + "value": "** ni oʻchirmoqchi ekanligingizga ishonchingiz komilmi?" + } + ], + "message.confirm-leave": [ + { + "type": 0, + "value": "**" + }, + { + "type": 1, + "value": "target" + }, + { + "type": 0, + "value": "** ni tark etmoqchi ekanligingizga ishonchingiz komilmi?" + } + ], + "message.confirm-remove": [ + { + "type": 0, + "value": "**" + }, + { + "type": 1, + "value": "target" + }, + { + "type": 0, + "value": "** ni olib tashlamoqchi ekanligingizga ishonchingiz komilmi?" + } + ], + "message.confirm-reset": [ + { + "type": 0, + "value": "**" + }, + { + "type": 1, + "value": "target" + }, + { + "type": 0, + "value": "** ni qayta tiklamoqchi ekanligingizga ishonchingiz komilmi?" + } + ], + "message.delete-team-warning": [ + { + "type": 0, + "value": "Jamoani oʻchirish, shuningdek, barcha jamoa veb-saytlarini ham oʻchiradi." + } + ], + "message.delete-website-warning": [ + { + "type": 0, + "value": "Barcha veb-sayt ma'lumotlari oʻchiriladi." + } + ], + "message.error": [ + { + "type": 0, + "value": "Nimadir xato ketdi." + } + ], + "message.event-log": [ + { + "type": 0, + "value": "**" + }, + { + "type": 1, + "value": "url" + }, + { + "type": 0, + "value": "** da **" + }, + { + "type": 1, + "value": "event" + }, + { + "type": 0, + "value": "** hodisasi" + } + ], + "message.go-to-settings": [ + { + "type": 0, + "value": "Sozlamalarga oʻtish" + } + ], + "message.incorrect-username-password": [ + { + "type": 0, + "value": "Notoʻgʻri foydalanuvchi nomi va/yoki parol." + } + ], + "message.invalid-domain": [ + { + "type": 0, + "value": "Notoʻgʻri domen. http/https qoʻshmang." + } + ], + "message.min-password-length": [ + { + "type": 0, + "value": "Minimal uzunligi " + }, + { + "type": 1, + "value": "n" + }, + { + "type": 0, + "value": " belgidan" + } + ], + "message.new-version-available": [ + { + "type": 0, + "value": "Umami'ning yangi **" + }, + { + "type": 1, + "value": "version" + }, + { + "type": 0, + "value": "** versiyasi mavjud!" + } + ], + "message.no-data-available": [ + { + "type": 0, + "value": "Ma'lumotlar mavjud emas." + } + ], + "message.no-event-data": [ + { + "type": 0, + "value": "Hodisa ma'lumotlari mavjud emas." + } + ], + "message.no-match-password": [ + { + "type": 0, + "value": "Parollar mos kelmadi." + } + ], + "message.no-results-found": [ + { + "type": 0, + "value": "Hech qanday natija topilmadi." + } + ], + "message.no-team-websites": [ + { + "type": 0, + "value": "Bu jamoada hech qanday veb-sayt yoʻq." + } + ], + "message.no-teams": [ + { + "type": 0, + "value": "Siz hech qanday jamoa yaratmagansiz." + } + ], + "message.no-users": [ + { + "type": 0, + "value": "Hech qanday foydalanuvchi yoʻq." + } + ], + "message.no-websites-configured": [ + { + "type": 0, + "value": "Sizda hech qanday veb-sayt sozlanmagan." + } + ], + "message.page-not-found": [ + { + "type": 0, + "value": "Sahifa topilmadi" + } + ], + "message.reset-website": [ + { + "type": 0, + "value": "Bu veb-saytni qayta tiklash uchun tasdiqlash uchun pastdagi qutiga **" + }, + { + "type": 1, + "value": "confirmation" + }, + { + "type": 0, + "value": "** yozing." + } + ], + "message.reset-website-warning": [ + { + "type": 0, + "value": "Bu veb-sayt uchun barcha statistik ma'lumotlar oʻchiriladi, lekin sozlamalaringiz saqlanib qoladi." + } + ], + "message.saved": [ + { + "type": 0, + "value": "Saqlandi." + } + ], + "message.share-url": [ + { + "type": 0, + "value": "Sizning veb-sayt statistikalaringiz quyidagi URL'da ochiqdir:" + } + ], + "message.team-already-member": [ + { + "type": 0, + "value": "Siz allaqachon jamoa a'zosisiz." + } + ], + "message.team-not-found": [ + { + "type": 0, + "value": "Jamoa topilmadi." + } + ], + "message.team-websites-info": [ + { + "type": 0, + "value": "Veb-saytlarni jamoaning har bir a'zosi koʻrishi mumkin." + } + ], + "message.tracking-code": [ + { + "type": 0, + "value": "Bu veb-sayt uchun statistikani kuzatish uchun quyidagi kodni HTML'ingizdagi **" + }, + { + "children": [ + { + "type": 0, + "value": "..." + } + ], + "type": 8, + "value": "head" + }, + { + "type": 0, + "value": "** qismiga joylashtiring." + } + ], + "message.transfer-team-website-to-user": [ + { + "type": 0, + "value": "Bu veb-saytni oʻz hisobingizga oʻtkazasizmi?" + } + ], + "message.transfer-user-website-to-team": [ + { + "type": 0, + "value": "Bu veb-saytni oʻtkazish uchun jamoani tanlang." + } + ], + "message.transfer-website": [ + { + "type": 0, + "value": "Veb-sayt egaligini oʻz hisobingizga yoki boshqa jamoaga oʻtkazish." + } + ], + "message.triggered-event": [ + { + "type": 0, + "value": "Hodisa ishga tushirildi" + } + ], + "message.user-deleted": [ + { + "type": 0, + "value": "Foydalanuvchi oʻchirildi." + } + ], + "message.viewed-page": [ + { + "type": 0, + "value": "Sahifa koʻrildi" + } + ], + "message.visitor-log": [ + { + "type": 1, + "value": "os" + }, + { + "type": 0, + "value": " " + }, + { + "type": 1, + "value": "device" + }, + { + "type": 0, + "value": " da " + }, + { + "type": 1, + "value": "browser" + }, + { + "type": 0, + "value": " dan foydalanayotgan " + }, + { + "type": 1, + "value": "country" + }, + { + "type": 0, + "value": " dan tashrif buyuruvchi" + } + ], + "message.visitors-dropped-off": [ + { + "type": 0, + "value": "Tashrif buyuruvchilar tashlab ketishdi" + } + ] +} diff --git a/public/intl/messages/vi-VN.json b/public/intl/messages/vi-VN.json index 68a301ae..dab46ca8 100644 --- a/public/intl/messages/vi-VN.json +++ b/public/intl/messages/vi-VN.json @@ -2,7 +2,7 @@ "label.access-code": [ { "type": 0, - "value": "Access code" + "value": "Mã truy cập" } ], "label.actions": [ @@ -14,31 +14,31 @@ "label.activity": [ { "type": 0, - "value": "Activity log" + "value": "Nhật ký hoạt động" } ], "label.add": [ { "type": 0, - "value": "Add" + "value": "Thêm" } ], "label.add-description": [ { "type": 0, - "value": "Add description" + "value": "Thêm mô tả" } ], "label.add-member": [ { "type": 0, - "value": "Add member" + "value": "Thêm thành viên" } ], "label.add-step": [ { "type": 0, - "value": "Add step" + "value": "Thêm bước" } ], "label.add-website": [ @@ -56,7 +56,7 @@ "label.after": [ { "type": 0, - "value": "After" + "value": "Sau đó" } ], "label.all": [ @@ -74,25 +74,25 @@ "label.analytics": [ { "type": 0, - "value": "Analytics" + "value": "Phân tích" } ], "label.average": [ { "type": 0, - "value": "Average" + "value": "Trung bình" } ], "label.back": [ { "type": 0, - "value": "Quay về" + "value": "Quay lại" } ], "label.before": [ { "type": 0, - "value": "Before" + "value": "Trước đó" } ], "label.bounce-rate": [ @@ -104,25 +104,25 @@ "label.breakdown": [ { "type": 0, - "value": "Breakdown" + "value": "Phân tích chi tiết" } ], "label.browser": [ { "type": 0, - "value": "Browser" + "value": "Trình duyệt" } ], "label.browsers": [ { "type": 0, - "value": "Trình duyệt" + "value": "Các trình duyệt" } ], "label.cancel": [ { "type": 0, - "value": "Huỷ bỏ" + "value": "Hủy bỏ" } ], "label.change-password": [ @@ -134,31 +134,31 @@ "label.cities": [ { "type": 0, - "value": "Cities" + "value": "Các thành phố" } ], "label.city": [ { "type": 0, - "value": "City" + "value": "Thành phố" } ], "label.clear-all": [ { "type": 0, - "value": "Clear all" + "value": "Xóa tất cả" } ], "label.compare": [ { "type": 0, - "value": "Compare" + "value": "So sánh" } ], "label.confirm": [ { "type": 0, - "value": "Confirm" + "value": "Xác nhận" } ], "label.confirm-password": [ @@ -170,73 +170,73 @@ "label.contains": [ { "type": 0, - "value": "Contains" + "value": "Chứa" } ], "label.continue": [ { "type": 0, - "value": "Continue" + "value": "Tiếp tục" } ], "label.count": [ { "type": 0, - "value": "Count" + "value": "Số lượng" } ], "label.countries": [ { "type": 0, - "value": "Quốc gia" + "value": "Các quốc gia" } ], "label.country": [ { "type": 0, - "value": "Country" + "value": "Quốc gia" } ], "label.create": [ { "type": 0, - "value": "Create" + "value": "Tạo" } ], "label.create-report": [ { "type": 0, - "value": "Create report" + "value": "Tạo báo cáo" } ], "label.create-team": [ { "type": 0, - "value": "Create team" + "value": "Tạo nhóm" } ], "label.create-user": [ { "type": 0, - "value": "Create user" + "value": "Tạo người dùng" } ], "label.created": [ { "type": 0, - "value": "Created" + "value": "Đã tạo" } ], "label.created-by": [ { "type": 0, - "value": "Created By" + "value": "Được tạo bởi" } ], "label.current": [ { "type": 0, - "value": "Current" + "value": "Hiện tại" } ], "label.current-password": [ @@ -248,7 +248,7 @@ "label.custom-range": [ { "type": 0, - "value": "Phạm vi ngày tuỳ chọn" + "value": "Phạm vi tùy chỉnh" } ], "label.dashboard": [ @@ -260,13 +260,13 @@ "label.data": [ { "type": 0, - "value": "Data" + "value": "Dữ liệu" } ], "label.date": [ { "type": 0, - "value": "Date" + "value": "Ngày" } ], "label.date-range": [ @@ -278,7 +278,7 @@ "label.day": [ { "type": 0, - "value": "Day" + "value": "Ngày" } ], "label.default-date-range": [ @@ -290,25 +290,25 @@ "label.delete": [ { "type": 0, - "value": "Xoá" + "value": "Xóa" } ], "label.delete-report": [ { "type": 0, - "value": "Delete report" + "value": "Xóa báo cáo" } ], "label.delete-team": [ { "type": 0, - "value": "Delete team" + "value": "Xóa nhóm" } ], "label.delete-user": [ { "type": 0, - "value": "Delete user" + "value": "Xóa người dùng" } ], "label.delete-website": [ @@ -320,43 +320,43 @@ "label.description": [ { "type": 0, - "value": "Description" + "value": "Mô tả" } ], "label.desktop": [ { "type": 0, - "value": "Máy bàn" + "value": "Máy tính để bàn" } ], "label.details": [ { "type": 0, - "value": "Details" + "value": "Chi tiết" } ], "label.device": [ { "type": 0, - "value": "Device" + "value": "Thiết bị" } ], "label.devices": [ { "type": 0, - "value": "Thiết bị" + "value": "Các thiết bị" } ], "label.dismiss": [ { "type": 0, - "value": "Loại trừ" + "value": "Bỏ qua" } ], "label.does-not-contain": [ { "type": 0, - "value": "Does not contain" + "value": "Không chứa" } ], "label.domain": [ @@ -368,7 +368,7 @@ "label.dropoff": [ { "type": 0, - "value": "Dropoff" + "value": "Tỷ lệ bỏ qua" } ], "label.edit": [ @@ -380,235 +380,235 @@ "label.edit-dashboard": [ { "type": 0, - "value": "Edit dashboard" + "value": "Chỉnh sửa bảng điều khiển" } ], "label.edit-member": [ { "type": 0, - "value": "Edit member" + "value": "Chỉnh sửa thành viên" } ], "label.enable-share-url": [ { "type": 0, - "value": "Bật khả năng chia sẻ URL" + "value": "Bật chia sẻ URL" } ], "label.end-step": [ { "type": 0, - "value": "End Step" + "value": "Bước kết thúc" } ], "label.entry": [ { "type": 0, - "value": "Entry URL" + "value": "URL truy cập" } ], "label.event": [ { "type": 0, - "value": "Event" + "value": "Sự kiện" } ], "label.event-data": [ { "type": 0, - "value": "Event data" + "value": "Dữ liệu sự kiện" } ], "label.events": [ { "type": 0, - "value": "Sự kiện" + "value": "Các sự kiện" } ], "label.exit": [ { "type": 0, - "value": "Exit URL" + "value": "URL thoát" } ], "label.false": [ { "type": 0, - "value": "False" + "value": "Sai" } ], "label.field": [ { "type": 0, - "value": "Field" + "value": "Trường" } ], "label.fields": [ { "type": 0, - "value": "Fields" + "value": "Các trường" } ], "label.filter": [ { "type": 0, - "value": "Filter" + "value": "Lọc" } ], "label.filter-combined": [ { "type": 0, - "value": "Kết hợp" + "value": "Kết hợp lọc" } ], "label.filter-raw": [ { "type": 0, - "value": "Gốc" + "value": "Lọc thô" } ], "label.filters": [ { "type": 0, - "value": "Filters" + "value": "Bộ lọc" } ], "label.first-seen": [ { "type": 0, - "value": "First seen" + "value": "Lần đầu tiên nhìn thấy" } ], "label.funnel": [ { "type": 0, - "value": "Funnel" + "value": "Phễu" } ], "label.funnel-description": [ { "type": 0, - "value": "Understand the conversion and drop-off rate of users." + "value": "Tìm hiểu tỷ lệ chuyển đổi và bỏ qua của người dùng." } ], "label.goal": [ { "type": 0, - "value": "Goal" + "value": "Mục tiêu" } ], "label.goals": [ { "type": 0, - "value": "Goals" + "value": "Các mục tiêu" } ], "label.goals-description": [ { "type": 0, - "value": "Track your goals for pageviews and events." + "value": "Theo dõi các mục tiêu của bạn cho lượt xem trang và sự kiện." } ], "label.greater-than": [ { "type": 0, - "value": "Greater than" + "value": "Lớn hơn" } ], "label.greater-than-equals": [ { "type": 0, - "value": "Greater than or equals" + "value": "Lớn hơn hoặc bằng" } ], "label.host": [ { "type": 0, - "value": "Host" + "value": "Máy chủ" } ], "label.hosts": [ { "type": 0, - "value": "Hosts" + "value": "Các máy chủ" } ], "label.insights": [ { "type": 0, - "value": "Insights" + "value": "Thông tin chi tiết" } ], "label.insights-description": [ { "type": 0, - "value": "Dive deeper into your data by using segments and filters." + "value": "Tìm hiểu sâu hơn về dữ liệu của bạn bằng cách sử dụng phân đoạn và bộ lọc." } ], "label.is": [ { "type": 0, - "value": "Is" + "value": "Là" } ], "label.is-not": [ { "type": 0, - "value": "Is not" + "value": "Không phải là" } ], "label.is-not-set": [ { "type": 0, - "value": "Is not set" + "value": "Chưa được đặt" } ], "label.is-set": [ { "type": 0, - "value": "Is set" + "value": "Đã đặt" } ], "label.join": [ { "type": 0, - "value": "Join" + "value": "Tham gia" } ], "label.join-team": [ { "type": 0, - "value": "Join team" + "value": "Tham gia nhóm" } ], "label.journey": [ { "type": 0, - "value": "Journey" + "value": "Hành trình" } ], "label.journey-description": [ { "type": 0, - "value": "Understand how users navigate through your website." + "value": "Hiểu cách người dùng điều hướng qua website của bạn." } ], "label.language": [ { "type": 0, - "value": "Language" + "value": "Ngôn ngữ" } ], "label.languages": [ { "type": 0, - "value": "Ngôn ngữ" + "value": "Các ngôn ngữ" } ], "label.laptop": [ { "type": 0, - "value": "Laptop" + "value": "Máy tính xách tay" } ], "label.last-days": [ @@ -632,47 +632,43 @@ } ], "label.last-months": [ - { - "type": 0, - "value": "Last " - }, { "type": 1, "value": "x" }, { "type": 0, - "value": " months" + "value": " tháng gần nhất" } ], "label.last-seen": [ { "type": 0, - "value": "Last seen" + "value": "Lần cuối cùng nhìn thấy" } ], "label.leave": [ { "type": 0, - "value": "Leave" + "value": "Rời khỏi" } ], "label.leave-team": [ { "type": 0, - "value": "Leave team" + "value": "Rời nhóm" } ], "label.less-than": [ { "type": 0, - "value": "Less than" + "value": "Nhỏ hơn" } ], "label.less-than-equals": [ { "type": 0, - "value": "Less than or equals" + "value": "Nhỏ hơn hoặc bằng" } ], "label.login": [ @@ -690,37 +686,37 @@ "label.manage": [ { "type": 0, - "value": "Manage" + "value": "Quản lý" } ], "label.manager": [ { "type": 0, - "value": "Manager" + "value": "Quản lý" } ], "label.max": [ { "type": 0, - "value": "Max" + "value": "Tối đa" } ], "label.member": [ { "type": 0, - "value": "Member" + "value": "Thành viên" } ], "label.members": [ { "type": 0, - "value": "Members" + "value": "Các thành viên" } ], "label.min": [ { "type": 0, - "value": "Min" + "value": "Tối thiểu" } ], "label.mobile": [ @@ -738,13 +734,13 @@ "label.my-account": [ { "type": 0, - "value": "My account" + "value": "Tài khoản của tôi" } ], "label.my-websites": [ { "type": 0, - "value": "My websites" + "value": "Các website của tôi" } ], "label.name": [ @@ -762,7 +758,7 @@ "label.none": [ { "type": 0, - "value": "None" + "value": "Không" } ], "label.number-of-records": [ @@ -781,7 +777,7 @@ "value": [ { "type": 0, - "value": "record" + "value": "bản ghi" } ] }, @@ -789,7 +785,7 @@ "value": [ { "type": 0, - "value": "records" + "value": "bản ghi" } ] } @@ -808,13 +804,13 @@ "label.os": [ { "type": 0, - "value": "OS" + "value": "Hệ điều hành" } ], "label.overview": [ { "type": 0, - "value": "Overview" + "value": "Tổng quan" } ], "label.owner": [ @@ -826,7 +822,7 @@ "label.page-of": [ { "type": 0, - "value": "Page " + "value": "Trang " }, { "type": 1, @@ -834,7 +830,7 @@ }, { "type": 0, - "value": " of " + "value": " trên " }, { "type": 1, @@ -844,19 +840,19 @@ "label.page-views": [ { "type": 0, - "value": "Lượt xem" + "value": "Lượt xem trang" } ], "label.pageTitle": [ { "type": 0, - "value": "Page title" + "value": "Tiêu đề trang" } ], "label.pages": [ { "type": 0, - "value": "Trang" + "value": "Các trang" } ], "label.password": [ @@ -868,19 +864,19 @@ "label.path": [ { "type": 0, - "value": "Path" + "value": "Đường dẫn" } ], "label.paths": [ { "type": 0, - "value": "Paths" + "value": "Các đường dẫn" } ], "label.powered-by": [ { "type": 0, - "value": "Bản quyền thuộc về " + "value": "Được cung cấp bởi " }, { "type": 1, @@ -890,19 +886,19 @@ "label.previous": [ { "type": 0, - "value": "Previous" + "value": "Trước" } ], "label.previous-period": [ { "type": 0, - "value": "Previous period" + "value": "Kỳ trước" } ], "label.previous-year": [ { "type": 0, - "value": "Previous year" + "value": "Năm trước" } ], "label.profile": [ @@ -914,31 +910,31 @@ "label.properties": [ { "type": 0, - "value": "Properties" + "value": "Thuộc tính" } ], "label.property": [ { "type": 0, - "value": "Property" + "value": "Thuộc tính" } ], "label.queries": [ { "type": 0, - "value": "Queries" + "value": "Truy vấn" } ], "label.query": [ { "type": 0, - "value": "Query" + "value": "Truy vấn" } ], "label.query-parameters": [ { "type": 0, - "value": "Query parameters" + "value": "Tham số truy vấn" } ], "label.realtime": [ @@ -950,13 +946,13 @@ "label.referrer": [ { "type": 0, - "value": "Referrer" + "value": "Nguồn giới thiệu" } ], "label.referrers": [ { "type": 0, - "value": "Liên kết giới thiệu" + "value": "Các nguồn giới thiệu" } ], "label.refresh": [ @@ -968,37 +964,37 @@ "label.regenerate": [ { "type": 0, - "value": "Regenerate" + "value": "Tạo lại" } ], "label.region": [ { "type": 0, - "value": "Region" + "value": "Vùng" } ], "label.regions": [ { "type": 0, - "value": "Regions" + "value": "Các vùng" } ], "label.remove": [ { "type": 0, - "value": "Remove" + "value": "Xóa" } ], "label.remove-member": [ { "type": 0, - "value": "Remove member" + "value": "Xóa thành viên" } ], "label.reports": [ { "type": 0, - "value": "Reports" + "value": "Báo cáo" } ], "label.required": [ @@ -1010,55 +1006,55 @@ "label.reset": [ { "type": 0, - "value": "Tái thiết lập" + "value": "Đặt lại" } ], "label.reset-website": [ { "type": 0, - "value": "Tái thiết lập thống kê" + "value": "Đặt lại thống kê website" } ], "label.retention": [ { "type": 0, - "value": "Retention" + "value": "Tỷ lệ giữ chân" } ], "label.retention-description": [ { "type": 0, - "value": "Measure your website stickiness by tracking how often users return." + "value": "Đo lường mức độ gắn bó của website bằng cách theo dõi tần suất người dùng quay lại." } ], "label.revenue": [ { "type": 0, - "value": "Revenue" + "value": "Doanh thu" } ], "label.revenue-description": [ { "type": 0, - "value": "Look into your revenue across time." + "value": "Xem xét doanh thu của bạn theo thời gian." } ], "label.revenue-property": [ { "type": 0, - "value": "Revenue Property" + "value": "Thuộc tính doanh thu" } ], "label.role": [ { "type": 0, - "value": "Role" + "value": "Vai trò" } ], "label.run-query": [ { "type": 0, - "value": "Run query" + "value": "Chạy truy vấn" } ], "label.save": [ @@ -1070,49 +1066,49 @@ "label.screens": [ { "type": 0, - "value": "Screens" + "value": "Màn hình" } ], "label.search": [ { "type": 0, - "value": "Search" + "value": "Tìm kiếm" } ], "label.select": [ { "type": 0, - "value": "Select" + "value": "Chọn" } ], "label.select-date": [ { "type": 0, - "value": "Select date" + "value": "Chọn ngày" } ], "label.select-role": [ { "type": 0, - "value": "Select role" + "value": "Chọn vai trò" } ], "label.select-website": [ { "type": 0, - "value": "Select website" + "value": "Chọn website" } ], "label.session": [ { "type": 0, - "value": "Session" + "value": "Phiên" } ], "label.sessions": [ { "type": 0, - "value": "Sessions" + "value": "Các phiên" } ], "label.settings": [ @@ -1130,25 +1126,25 @@ "label.single-day": [ { "type": 0, - "value": "Trong ngày" + "value": "Một ngày" } ], "label.start-step": [ { "type": 0, - "value": "Start Step" + "value": "Bước bắt đầu" } ], "label.steps": [ { "type": 0, - "value": "Steps" + "value": "Các bước" } ], "label.sum": [ { "type": 0, - "value": "Sum" + "value": "Tổng" } ], "label.tablet": [ @@ -1160,61 +1156,61 @@ "label.team": [ { "type": 0, - "value": "Team" + "value": "Nhóm" } ], "label.team-id": [ { "type": 0, - "value": "Team ID" + "value": "ID nhóm" } ], "label.team-manager": [ { "type": 0, - "value": "Team manager" + "value": "Quản lý nhóm" } ], "label.team-member": [ { "type": 0, - "value": "Team member" + "value": "Thành viên nhóm" } ], "label.team-name": [ { "type": 0, - "value": "Team name" + "value": "Tên nhóm" } ], "label.team-owner": [ { "type": 0, - "value": "Team owner" + "value": "Chủ sở hữu nhóm" } ], "label.team-view-only": [ { "type": 0, - "value": "Team view only" + "value": "Chỉ xem nhóm" } ], "label.team-websites": [ { "type": 0, - "value": "Team websites" + "value": "Các website của nhóm" } ], "label.teams": [ { "type": 0, - "value": "Teams" + "value": "Các nhóm" } ], "label.theme": [ { "type": 0, - "value": "Giao diện" + "value": "Chủ đề" } ], "label.this-month": [ @@ -1244,7 +1240,7 @@ "label.title": [ { "type": 0, - "value": "Title" + "value": "Tiêu đề" } ], "label.today": [ @@ -1262,13 +1258,13 @@ "label.total": [ { "type": 0, - "value": "Total" + "value": "Tổng" } ], "label.total-records": [ { "type": 0, - "value": "Total records" + "value": "Tổng số bản ghi" } ], "label.tracking-code": [ @@ -1280,49 +1276,49 @@ "label.transactions": [ { "type": 0, - "value": "Transactions" + "value": "Giao dịch" } ], "label.transfer": [ { "type": 0, - "value": "Transfer" + "value": "Chuyển giao" } ], "label.transfer-website": [ { "type": 0, - "value": "Transfer website" + "value": "Chuyển giao website" } ], "label.true": [ { "type": 0, - "value": "True" + "value": "Đúng" } ], "label.type": [ { "type": 0, - "value": "Type" + "value": "Loại" } ], "label.unique": [ { "type": 0, - "value": "Unique" + "value": "Duy nhất" } ], "label.unique-visitors": [ { "type": 0, - "value": "Khách truy cập một lần" + "value": "Khách truy cập duy nhất" } ], "label.uniqueCustomers": [ { "type": 0, - "value": "Unique Customers" + "value": "Khách hàng duy nhất" } ], "label.unknown": [ @@ -1334,13 +1330,13 @@ "label.untitled": [ { "type": 0, - "value": "Untitled" + "value": "Không có tiêu đề" } ], "label.update": [ { "type": 0, - "value": "Update" + "value": "Cập nhật" } ], "label.url": [ @@ -1352,19 +1348,19 @@ "label.urls": [ { "type": 0, - "value": "URLs" + "value": "Các URL" } ], "label.user": [ { "type": 0, - "value": "User" + "value": "Người dùng" } ], "label.user-property": [ { "type": 0, - "value": "User Property" + "value": "Thuộc tính người dùng" } ], "label.username": [ @@ -1376,7 +1372,7 @@ "label.users": [ { "type": 0, - "value": "Users" + "value": "Người dùng" } ], "label.utm": [ @@ -1388,19 +1384,19 @@ "label.utm-description": [ { "type": 0, - "value": "Track your campaigns through UTM parameters." + "value": "Theo dõi các chiến dịch của bạn thông qua các tham số UTM." } ], "label.value": [ { "type": 0, - "value": "Value" + "value": "Giá trị" } ], "label.view": [ { "type": 0, - "value": "View" + "value": "Xem" } ], "label.view-details": [ @@ -1412,37 +1408,37 @@ "label.view-only": [ { "type": 0, - "value": "View only" + "value": "Chỉ xem" } ], "label.views": [ { "type": 0, - "value": "Xem" + "value": "Lượt xem" } ], "label.views-per-visit": [ { "type": 0, - "value": "Views per visit" + "value": "Lượt xem trên mỗi lượt truy cập" } ], "label.visit-duration": [ { "type": 0, - "value": "Thời gian truy cập trung bình" + "value": "Thời lượng truy cập" } ], "label.visitors": [ { "type": 0, - "value": "Khách" + "value": "Khách truy cập" } ], "label.visits": [ { "type": 0, - "value": "Visits" + "value": "Lượt truy cập" } ], "label.website": [ @@ -1454,31 +1450,31 @@ "label.website-id": [ { "type": 0, - "value": "Website ID" + "value": "ID website" } ], "label.websites": [ { "type": 0, - "value": "Websites" + "value": "Các website" } ], "label.window": [ { "type": 0, - "value": "Window" + "value": "Cửa sổ" } ], "label.yesterday": [ { "type": 0, - "value": "Yesterday" + "value": "Hôm qua" } ], "message.action-confirmation": [ { "type": 0, - "value": "Type " + "value": "Nhập " }, { "type": 1, @@ -1486,7 +1482,7 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " vào ô bên dưới để xác nhận." } ], "message.active-users": [ @@ -1496,7 +1492,7 @@ }, { "type": 0, - "value": " hiện tại " + "value": " " }, { "offset": 0, @@ -1505,7 +1501,7 @@ "value": [ { "type": 0, - "value": "một" + "value": "người dùng" } ] }, @@ -1513,7 +1509,7 @@ "value": [ { "type": 0, - "value": "trên" + "value": "người dùng" } ] } @@ -1521,18 +1517,22 @@ "pluralType": "cardinal", "type": 6, "value": "x" + }, + { + "type": 0, + "value": " đang hoạt động" } ], "message.collected-data": [ { "type": 0, - "value": "Collected data" + "value": "Dữ liệu đã thu thập" } ], "message.confirm-delete": [ { "type": 0, - "value": "Bạn có chắc chắn muốn xoá " + "value": "Bạn có chắc chắn muốn xóa " }, { "type": 1, @@ -1546,7 +1546,7 @@ "message.confirm-leave": [ { "type": 0, - "value": "Are you sure you want to leave " + "value": "Bạn có chắc chắn muốn rời " }, { "type": 1, @@ -1560,7 +1560,7 @@ "message.confirm-remove": [ { "type": 0, - "value": "Are you sure you want to remove " + "value": "Bạn có chắc chắn muốn xóa " }, { "type": 1, @@ -1574,7 +1574,7 @@ "message.confirm-reset": [ { "type": 0, - "value": "Bạn có chắc chắn muốn tái thiết lập thống kê " + "value": "Bạn có chắc chắn muốn đặt lại thống kê " }, { "type": 1, @@ -1588,13 +1588,13 @@ "message.delete-team-warning": [ { "type": 0, - "value": "Deleting a team will also delete all team websites." + "value": "Việc xóa một nhóm cũng sẽ xóa tất cả các website của nhóm." } ], "message.delete-website-warning": [ { "type": 0, - "value": "Tất cả các dữ liệu liên quan cũng sẽ bị xoá." + "value": "Tất cả dữ liệu liên quan cũng sẽ bị xóa." } ], "message.error": [ @@ -1610,7 +1610,7 @@ }, { "type": 0, - "value": " on " + "value": " trên " }, { "type": 1, @@ -1620,7 +1620,7 @@ "message.go-to-settings": [ { "type": 0, - "value": "Chuyển tới cài đặt" + "value": "Chuyển đến cài đặt" } ], "message.incorrect-username-password": [ @@ -1638,7 +1638,7 @@ "message.min-password-length": [ { "type": 0, - "value": "Minimum length of " + "value": "Độ dài tối thiểu " }, { "type": 1, @@ -1646,13 +1646,13 @@ }, { "type": 0, - "value": " characters" + "value": " ký tự" } ], "message.new-version-available": [ { "type": 0, - "value": "A new version of Umami " + "value": "Có phiên bản mới của Umami " }, { "type": 1, @@ -1660,7 +1660,7 @@ }, { "type": 0, - "value": " is available!" + "value": "!" } ], "message.no-data-available": [ @@ -1672,55 +1672,55 @@ "message.no-event-data": [ { "type": 0, - "value": "No event data is available." + "value": "Không có dữ liệu sự kiện." } ], "message.no-match-password": [ { "type": 0, - "value": "Mật khẩu không đồng nhất" + "value": "Mật khẩu không khớp" } ], "message.no-results-found": [ { "type": 0, - "value": "No results were found." + "value": "Không tìm thấy kết quả nào." } ], "message.no-team-websites": [ { "type": 0, - "value": "This team does not have any websites." + "value": "Nhóm này không có bất kỳ website nào." } ], "message.no-teams": [ { "type": 0, - "value": "You have not created any teams." + "value": "Bạn chưa tạo nhóm nào." } ], "message.no-users": [ { "type": 0, - "value": "There are no users." + "value": "Không có người dùng nào." } ], "message.no-websites-configured": [ { "type": 0, - "value": "Bạn chưa có bất cứ website nào." + "value": "Bạn chưa cấu hình bất kỳ website nào." } ], "message.page-not-found": [ { "type": 0, - "value": "Trang không tìm thấy." + "value": "Không tìm thấy trang." } ], "message.reset-website": [ { "type": 0, - "value": "To reset this website, type " + "value": "Để đặt lại website này, nhập " }, { "type": 1, @@ -1728,13 +1728,13 @@ }, { "type": 0, - "value": " in the box below to confirm." + "value": " vào ô bên dưới để xác nhận." } ], "message.reset-website-warning": [ { "type": 0, - "value": "Tất cả số liệu thống kê của website này sẽ bị xoá, nhưng mã theo dõi sẽ vẫn giữ nguyên." + "value": "Tất cả số liệu thống kê của website này sẽ bị xóa, nhưng mã theo dõi sẽ vẫn giữ nguyên." } ], "message.saved": [ @@ -1760,19 +1760,19 @@ "message.team-already-member": [ { "type": 0, - "value": "You are already a member of the team." + "value": "Bạn đã là thành viên của nhóm." } ], "message.team-not-found": [ { "type": 0, - "value": "Team not found." + "value": "Không tìm thấy nhóm." } ], "message.team-websites-info": [ { "type": 0, - "value": "Websites can be viewed by anyone on the team." + "value": "Bất kỳ ai trong nhóm đều có thể xem các website." } ], "message.tracking-code": [ @@ -1784,37 +1784,37 @@ "message.transfer-team-website-to-user": [ { "type": 0, - "value": "Transfer this website to your account?" + "value": "Chuyển website này sang tài khoản của bạn?" } ], "message.transfer-user-website-to-team": [ { "type": 0, - "value": "Select the team to transfer this website to." + "value": "Chọn nhóm để chuyển website này đến." } ], "message.transfer-website": [ { "type": 0, - "value": "Transfer website ownership to your account or another team." + "value": "Chuyển quyền sở hữu website sang tài khoản của bạn hoặc một nhóm khác." } ], "message.triggered-event": [ { "type": 0, - "value": "Triggered event" + "value": "Sự kiện được kích hoạt" } ], "message.user-deleted": [ { "type": 0, - "value": "User deleted." + "value": "Người dùng đã bị xóa." } ], "message.viewed-page": [ { "type": 0, - "value": "Viewed page" + "value": "Đã xem trang" } ], "message.visitor-log": [ @@ -1828,7 +1828,7 @@ }, { "type": 0, - "value": " đang dùng " + "value": " đang sử dụng " }, { "type": 1, @@ -1854,7 +1854,7 @@ "message.visitors-dropped-off": [ { "type": 0, - "value": "Visitors dropped off" + "value": "Khách truy cập đã rời đi" } ] } diff --git a/src/lang/uz-UZ.json b/src/lang/uz-UZ.json new file mode 100644 index 00000000..e8a574c7 --- /dev/null +++ b/src/lang/uz-UZ.json @@ -0,0 +1,279 @@ +{ + "label.access-code": "Kirish kodi", + "label.actions": "Amallar", + "label.activity": "Faoliyat", + "label.add": "Qoʻshish", + "label.add-description": "Tavsif qoʻshish", + "label.add-member": "A'zo qoʻshish", + "label.add-step": "Qadam qoʻshish", + "label.add-website": "Veb-sayt qoʻshish", + "label.admin": "Administrator", + "label.after": "Keyin", + "label.all": "Barchasi", + "label.all-time": "Barcha vaqtlar", + "label.analytics": "Tahlil", + "label.average": "Oʻrtacha", + "label.back": "Orqaga", + "label.before": "Oldin", + "label.bounce-rate": "Chiqib ketish darajasi", + "label.breakdown": "Tahlil", + "label.browser": "Brauzer", + "label.browsers": "Brauzerlar", + "label.cancel": "Bekor qilish", + "label.change-password": "Parolni oʻzgartirish", + "label.cities": "Shaharlar", + "label.city": "Shahar", + "label.clear-all": "Barchasini tozalash", + "label.compare": "Taqqoslash", + "label.confirm": "Tasdiqlash", + "label.confirm-password": "Parolni tasdiqlash", + "label.contains": "Oʻz ichiga oladi", + "label.continue": "Davom etish", + "label.count": "Soni", + "label.countries": "Davlatlar", + "label.country": "Davlat", + "label.create": "Yaratish", + "label.create-report": "Hisobot yaratish", + "label.create-team": "Jamoa yaratish", + "label.create-user": "Foydalanuvchi yaratish", + "label.created": "Yaratilgan", + "label.created-by": "Kim tomonidan yaratilgan", + "label.current": "Joriy", + "label.current-password": "Joriy parol", + "label.custom-range": "Maxsus oraliq", + "label.dashboard": "Boshqaruv paneli", + "label.data": "Ma'lumotlar", + "label.date": "Sana", + "label.date-range": "Sana oraligʻi", + "label.day": "Kun", + "label.default-date-range": "Standart sana oraligʻi", + "label.delete": "Oʻchirish", + "label.delete-report": "Hisobotni oʻchirish", + "label.delete-team": "Jamoani oʻchirish", + "label.delete-user": "Foydalanuvchini oʻchirish", + "label.delete-website": "Veb-saytni oʻchirish", + "label.description": "Tavsif", + "label.desktop": "Ish stoli", + "label.details": "Batafsil ma'lumot", + "label.device": "Qurilma", + "label.devices": "Qurilmalar", + "label.dismiss": "Yopish", + "label.does-not-contain": "Oʻz ichiga olmaydi", + "label.domain": "Domen", + "label.dropoff": "Tashlab ketish", + "label.edit": "Tahrirlash", + "label.edit-dashboard": "Boshqaruv panelini tahrirlash", + "label.edit-member": "A'zoni tahrirlash", + "label.enable-share-url": "Ulashish URL'ini yoqish", + "label.end-step": "Yakuniy qadam", + "label.entry": "Kirish yoʻli", + "label.event": "Hodisa", + "label.event-data": "Hodisa ma'lumotlari", + "label.events": "Hodisalar", + "label.exit": "Chiqish yoʻli", + "label.false": "Yolgʻon", + "label.field": "Maydon", + "label.fields": "Maydonlar", + "label.filter": "Filtr", + "label.filter-combined": "Birlashtirilgan", + "label.filter-raw": "Xom", + "label.filters": "Filtrlar", + "label.first-seen": "Birinchi koʻrilgan", + "label.funnel": "Voronka", + "label.funnel-description": "Foydalanuvchilarning konversiya va tashlab ketish darajasini tushunish.", + "label.goal": "Maqsad", + "label.goals": "Maqsadlar", + "label.goals-description": "Sahifa koʻrishlari va hodisalar uchun maqsadlaringizni kuzatib boring.", + "label.greater-than": "Kattaroq", + "label.greater-than-equals": "Kattaroq yoki teng", + "label.host": "Xost", + "label.hosts": "Xostlar", + "label.insights": "Tushunchalar", + "label.insights-description": "Segmentlar va filtrlardan foydalanib ma'lumotlaringizga chuqurroq kiring.", + "label.is": "Teng", + "label.is-not": "Teng emas", + "label.is-not-set": "Oʻrnatilmagan", + "label.is-set": "Oʻrnatilgan", + "label.join": "Qoʻshilish", + "label.join-team": "Jamoaga qoʻshilish", + "label.journey": "Sayohat", + "label.journey-description": "Foydalanuvchilar veb-saytingizda qanday harakat qilishlarini tushunish.", + "label.language": "Til", + "label.languages": "Tillar", + "label.laptop": "Noutbuk", + "label.last-days": "Oxirgi {x} kun", + "label.last-hours": "Oxirgi {x} soat", + "label.last-months": "Oxirgi {x} oy", + "label.last-seen": "Oxirgi koʻrilgan", + "label.leave": "Tark etish", + "label.leave-team": "Jamoani tark etish", + "label.less-than": "Kichikroq", + "label.less-than-equals": "Kichikroq yoki teng", + "label.login": "Kirish", + "label.logout": "Chiqish", + "label.manage": "Boshqarish", + "label.manager": "Menejer", + "label.max": "Maksimal", + "label.member": "A'zo", + "label.members": "A'zolar", + "label.min": "Minimal", + "label.mobile": "Mobil", + "label.more": "Koʻproq", + "label.my-account": "Mening hisobim", + "label.my-websites": "Mening veb-saytlarim", + "label.name": "Ism", + "label.new-password": "Yangi parol", + "label.none": "Hech biri", + "label.number-of-records": "{x} yozuv", + "label.ok": "OK", + "label.os": "OT (Operatsion tizim)", + "label.overview": "Umumiy koʻrinish", + "label.owner": "Egasi", + "label.page-of": "Sahifa {current} dan {total}", + "label.page-views": "Sahifa koʻrishlari", + "label.pageTitle": "Sahifa sarlavhasi", + "label.pages": "Sahifalar", + "label.password": "Parol", + "label.path": "Yoʻl", + "label.paths": "Yoʻllar", + "label.powered-by": "{name} tomonidan quvvatlanadi", + "label.previous": "Oldingi", + "label.previous-period": "Oldingi davr", + "label.previous-year": "Oldingi yil", + "label.profile": "Profil", + "label.properties": "Xususiyatlar", + "label.property": "Xususiyat", + "label.queries": "Soʻrovlar", + "label.query": "Soʻrov", + "label.query-parameters": "Soʻrov parametrlari", + "label.realtime": "Haqiqiy vaqt", + "label.referrer": "Tavsiya etuvchi", + "label.referrers": "Tavsiya etuvchilar", + "label.refresh": "Yangilash", + "label.regenerate": "Qayta yaratish", + "label.region": "Viloyat/Mintaqa", + "label.regions": "Viloyatlar/Mintaqalar", + "label.remove": "Olib tashlash", + "label.remove-member": "A'zoni olib tashlash", + "label.reports": "Hisobotlar", + "label.required": "Majburiy", + "label.reset": "Qayta tiklash", + "label.reset-website": "Veb-saytni qayta tiklash", + "label.retention": "Saqlanish", + "label.retention-description": "Foydalanuvchilarning qaytish chastotasini kuzatib, veb-saytingizning jozibadorligini oʻlchang.", + "label.revenue": "Daromad", + "label.revenue-description": "Vaqt oʻtishi bilan daromadingizni tekshiring.", + "label.revenue-property": "Daromad xususiyati", + "label.role": "Rol", + "label.run-query": "Soʻrovni ishga tushirish", + "label.save": "Saqlash", + "label.screens": "Ekranlar", + "label.search": "Qidiruv", + "label.select": "Tanlash", + "label.select-date": "Sanani tanlash", + "label.select-role": "Rolni tanlash", + "label.select-website": "Veb-saytni tanlash", + "label.session": "Sessiya", + "label.sessions": "Sessiyalar", + "label.settings": "Sozlamalar", + "label.share-url": "Ulashish URL'i", + "label.single-day": "Bir kun", + "label.start-step": "Boshlanish qadami", + "label.steps": "Qadamlar", + "label.sum": "Yigʻindi", + "label.tablet": "Planshet", + "label.team": "Jamoa", + "label.team-id": "Jamoa ID'si", + "label.team-manager": "Jamoa menejeri", + "label.team-member": "Jamoa a'zosi", + "label.team-name": "Jamoa nomi", + "label.team-owner": "Jamoa egasi", + "label.team-view-only": "Jamoa faqat koʻrish", + "label.team-websites": "Jamoa veb-saytlari", + "label.teams": "Jamoalar", + "label.theme": "Mavzu", + "label.this-month": "Shu oy", + "label.this-week": "Shu hafta", + "label.this-year": "Shu yil", + "label.timezone": "Vaqt zonasi", + "label.title": "Sarlavha", + "label.today": "Bugun", + "label.toggle-charts": "Grafiklarni almashtirish", + "label.total": "Jami", + "label.total-records": "Jami yozuvlar", + "label.tracking-code": "Kuzatuv kodi", + "label.transactions": "Tranzaksiyalar", + "label.transfer": "Oʻtkazish", + "label.transfer-website": "Veb-saytni oʻtkazish", + "label.true": "Rost", + "label.type": "Tur", + "label.unique": "Noyob", + "label.unique-visitors": "Noyob tashrif buyuruvchilar", + "label.uniqueCustomers": "Noyob mijozlar", + "label.unknown": "Noma'lum", + "label.untitled": "Sarlavhasiz", + "label.update": "Yangilash", + "label.url": "URL", + "label.urls": "URL'lar", + "label.user": "Foydalanuvchi", + "label.user-property": "Foydalanuvchi xususiyati", + "label.username": "Foydalanuvchi nomi", + "label.users": "Foydalanuvchilar", + "label.utm": "UTM", + "label.utm-description": "UTM parametrlari orqali kampaniyalaringizni kuzatib boring.", + "label.value": "Qiymat", + "label.view": "Koʻrish", + "label.view-details": "Batafsil koʻrish", + "label.view-only": "Faqat koʻrish", + "label.views": "Koʻrishlar", + "label.views-per-visit": "Tashrifga koʻrishlar soni", + "label.visit-duration": "Tashrif davomiyligi", + "label.visitors": "Tashrif buyuruvchilar", + "label.visits": "Tashriflar", + "label.website": "Veb-sayt", + "label.website-id": "Veb-sayt ID'si", + "label.websites": "Veb-saytlar", + "label.window": "Oyna", + "label.yesterday": "Kecha", + "message.action-confirmation": "Tasdiqlash uchun pastdagi qutiga **{confirmation}** yozing.", + "message.active-users": "{x} joriy {x, plural, one {tashrif buyuruvchi} other {tashrif buyuruvchilar}}", + "message.collected-data": "Yigʻilgan ma'lumotlar", + "message.confirm-delete": "**{target}** ni oʻchirmoqchi ekanligingizga ishonchingiz komilmi?", + "message.confirm-leave": "**{target}** ni tark etmoqchi ekanligingizga ishonchingiz komilmi?", + "message.confirm-remove": "**{target}** ni olib tashlamoqchi ekanligingizga ishonchingiz komilmi?", + "message.confirm-reset": "**{target}** ni qayta tiklamoqchi ekanligingizga ishonchingiz komilmi?", + "message.delete-team-warning": "Jamoani oʻchirish, shuningdek, barcha jamoa veb-saytlarini ham oʻchiradi.", + "message.delete-website-warning": "Barcha veb-sayt ma'lumotlari oʻchiriladi.", + "message.error": "Nimadir xato ketdi.", + "message.event-log": "**{url}** da **{event}** hodisasi", + "message.go-to-settings": "Sozlamalarga oʻtish", + "message.incorrect-username-password": "Notoʻgʻri foydalanuvchi nomi va/yoki parol.", + "message.invalid-domain": "Notoʻgʻri domen. http/https qoʻshmang.", + "message.min-password-length": "Minimal uzunligi {n} belgidan", + "message.new-version-available": "Umami'ning yangi **{version}** versiyasi mavjud!", + "message.no-data-available": "Ma'lumotlar mavjud emas.", + "message.no-event-data": "Hodisa ma'lumotlari mavjud emas.", + "message.no-match-password": "Parollar mos kelmadi.", + "message.no-results-found": "Hech qanday natija topilmadi.", + "message.no-team-websites": "Bu jamoada hech qanday veb-sayt yoʻq.", + "message.no-teams": "Siz hech qanday jamoa yaratmagansiz.", + "message.no-users": "Hech qanday foydalanuvchi yoʻq.", + "message.no-websites-configured": "Sizda hech qanday veb-sayt sozlanmagan.", + "message.page-not-found": "Sahifa topilmadi", + "message.reset-website": "Bu veb-saytni qayta tiklash uchun tasdiqlash uchun pastdagi qutiga **{confirmation}** yozing.", + "message.reset-website-warning": "Bu veb-sayt uchun barcha statistik ma'lumotlar oʻchiriladi, lekin sozlamalaringiz saqlanib qoladi.", + "message.saved": "Saqlandi.", + "message.share-url": "Sizning veb-sayt statistikalaringiz quyidagi URL'da ochiqdir:", + "message.team-already-member": "Siz allaqachon jamoa a'zosisiz.", + "message.team-not-found": "Jamoa topilmadi.", + "message.team-websites-info": "Veb-saytlarni jamoaning har bir a'zosi koʻrishi mumkin.", + "message.tracking-code": "Bu veb-sayt uchun statistikani kuzatish uchun quyidagi kodni HTML'ingizdagi **...** qismiga joylashtiring.", + "message.transfer-team-website-to-user": "Bu veb-saytni oʻz hisobingizga oʻtkazasizmi?", + "message.transfer-user-website-to-team": "Bu veb-saytni oʻtkazish uchun jamoani tanlang.", + "message.transfer-website": "Veb-sayt egaligini oʻz hisobingizga yoki boshqa jamoaga oʻtkazish.", + "message.triggered-event": "Hodisa ishga tushirildi", + "message.user-deleted": "Foydalanuvchi oʻchirildi.", + "message.viewed-page": "Sahifa koʻrildi", + "message.visitor-log": "{os} {device} da {browser} dan foydalanayotgan {country} dan tashrif buyuruvchi", + "message.visitors-dropped-off": "Tashrif buyuruvchilar tashlab ketishdi" +} diff --git a/src/lib/lang.ts b/src/lib/lang.ts index 48176d0a..96acc369 100644 --- a/src/lib/lang.ts +++ b/src/lib/lang.ts @@ -44,6 +44,7 @@ import { ca, hu, vi, + uz, } from 'date-fns/locale'; export const languages = { @@ -95,6 +96,7 @@ export const languages = { 'tr-TR': { label: 'Türkçe', dateLocale: tr }, 'uk-UA': { label: 'українська', dateLocale: uk }, 'ur-PK': { label: 'Urdu (Pakistan)', dateLocale: uk, dir: 'rtl' }, + 'uz-UZ': { label: 'O‘zbekcha', dateLocale: uz }, 'vi-VN': { label: 'Tiếng Việt', dateLocale: vi }, 'zh-CN': { label: '中文', dateLocale: zhCN }, 'zh-TW': { label: '中文(繁體)', dateLocale: zhTW }, From b152cfe4804b4a7cb0155c4bf3f23a14374ffcb1 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 4 Oct 2025 12:36:39 -0700 Subject: [PATCH 10/11] Added workflow to delete untagged images. --- .github/workflows/delete-untagged-images.yml | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/delete-untagged-images.yml diff --git a/.github/workflows/delete-untagged-images.yml b/.github/workflows/delete-untagged-images.yml new file mode 100644 index 00000000..a23a1bd2 --- /dev/null +++ b/.github/workflows/delete-untagged-images.yml @@ -0,0 +1,22 @@ +name: Delete untagged GHCR images + +on: + workflow_dispatch: # Run manually from the Actions tab + +jobs: + cleanup: + name: Delete all untagged images + runs-on: ubuntu-latest + + permissions: + packages: write + contents: read + + steps: + - name: Delete untagged GHCR images + uses: actions/delete-package-versions@v5 + with: + package-name: "umami" # 👈 change if your GHCR package name differs + package-type: "container" + delete-only-untagged-versions: true + min-versions-to-keep: 0 From 35c27589b71152fe89b525f48bdaf67e7a79d217 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 4 Oct 2025 13:32:40 -0700 Subject: [PATCH 11/11] Updated workflow to only run on tag publish. --- .github/workflows/cd.yml | 39 +++++++++------------------------------ 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 051d24a2..a02e9900 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -2,17 +2,8 @@ name: Create docker images on: push: - branches: - - master - - main - - dev - # Publish semver tags as releases. - tags: [ 'v*.*.*' ] - pull_request: - branches: - - master - - main - - dev + tags: + - 'v*.*.*' workflow_dispatch: jobs: @@ -22,36 +13,31 @@ jobs: permissions: contents: read packages: write - # This is used to complete the identity challenge - # with sigstore/fulcio when running outside of PRs. id-token: write strategy: matrix: - db-type: [postgresql, mysql] + db-type: [postgresql] steps: - uses: actions/checkout@v5 - # Install the cosign tool except on PR - # https://github.com/sigstore/cosign-installer + # Install cosign (for image signing) - name: Install cosign - if: github.event_name != 'pull_request' uses: sigstore/cosign-installer@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Log into registry docker.io - if: github.event_name != 'pull_request' && github.repository == 'umami-software/umami' + - name: Log into Docker Hub + if: github.repository == 'umami-software/umami' uses: docker/login-action@v3 with: registry: docker.io username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Log into ghcr registry - if: github.event_name != 'pull_request' + - name: Log into GHCR uses: docker/login-action@v3 with: registry: ghcr.io @@ -69,14 +55,8 @@ jobs: latest=auto prefix=${{ matrix.db-type }}- tags: | - type=ref,event=branch - type=ref,event=pr - - # output 1.1.2 type=semver,pattern={{version}} - # output 1.1 type=semver,pattern={{major}}.{{minor}} - # output 1 type=semver,pattern={{major}} - name: Build and push Docker image @@ -86,15 +66,14 @@ jobs: context: . platforms: linux/amd64,linux/arm64 build-args: DATABASE_TYPE=${{ matrix.db-type }} - push: ${{ github.event_name != 'pull_request' }} + push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - # Sign the resulting Docker image digest except on PRs. + # Sign the published image digest - name: Sign the published Docker image - if: ${{ github.event_name != 'pull_request' }} env: TAGS: ${{ steps.meta.outputs.tags }} DIGEST: ${{ steps.build-and-push.outputs.digest }}