From 66534f3d40d8b4b057db0c12b285e11ff7be65f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20At=C4=B1lgan?= Date: Wed, 28 Jan 2026 07:20:56 +0300 Subject: [PATCH 1/6] feat(ui): add Turkish language to settings popup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added Turkish (Türkçe) to the language selection dropdown in SettingsPopup.svelte and added the Turkish IntlString definition to plugin.ts. Turkish translation files already exist in the codebase (lang/tr.json files). Co-Authored-By: Claude Opus 4.5 Signed-off-by: Bahadır Atılgan --- packages/ui/src/components/internal/SettingsPopup.svelte | 3 ++- packages/ui/src/plugin.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/internal/SettingsPopup.svelte b/packages/ui/src/components/internal/SettingsPopup.svelte index d89e47a5eb4..85da69247cf 100644 --- a/packages/ui/src/components/internal/SettingsPopup.svelte +++ b/packages/ui/src/components/internal/SettingsPopup.svelte @@ -79,7 +79,8 @@ { id: 'it', label: ui.string.Italian, logo: '🇮🇹' }, { id: 'cs', label: ui.string.Czech, logo: '🇨🇿' }, { id: 'de', label: ui.string.German, logo: '🇩🇪' }, - { id: 'ja', label: ui.string.Japanese, logo: '🇯🇵' } + { id: 'ja', label: ui.string.Japanese, logo: '🇯🇵' }, + { id: 'tr', label: ui.string.Turkish, logo: '🇹🇷' } ].filter((lang) => uiLangs.has(lang.id)) if (langs.findIndex((l) => l.id === $currentLanguage) < 0 && langs.length !== 0) { diff --git a/packages/ui/src/plugin.ts b/packages/ui/src/plugin.ts index 6e38e186e9b..958188c4286 100644 --- a/packages/ui/src/plugin.ts +++ b/packages/ui/src/plugin.ts @@ -82,6 +82,7 @@ export const uis = plugin(uiId, { Czech: '' as IntlString, German: '' as IntlString, Japanese: '' as IntlString, + Turkish: '' as IntlString, MinutesBefore: '' as IntlString, HoursBefore: '' as IntlString, DaysBefore: '' as IntlString, From 197037dde69aa0a9bac15850dea898fee396f15c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20At=C4=B1lgan?= Date: Wed, 28 Jan 2026 08:00:43 +0300 Subject: [PATCH 2/6] ci: add workflow to build front image with Turkish support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a GitHub Actions workflow to build and push the front container image to GitHub Container Registry for testing Turkish language support. Co-Authored-By: Claude Opus 4.5 Signed-off-by: Bahadır Atılgan --- .github/workflows/build-front-tr.yml | 70 ++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/build-front-tr.yml diff --git a/.github/workflows/build-front-tr.yml b/.github/workflows/build-front-tr.yml new file mode 100644 index 00000000000..aa91613fd33 --- /dev/null +++ b/.github/workflows/build-front-tr.yml @@ -0,0 +1,70 @@ +name: Build Front (Turkish) + +on: + push: + branches: [add-turkish-language] + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository_owner }}/huly-front + +jobs: + build-front: + runs-on: ubuntu-latest + timeout-minutes: 60 + permissions: + contents: read + packages: write + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: recursive + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - uses: actions/setup-node@v4 + with: + node-version: '20' + + - uses: pnpm/action-setup@v4 + with: + version: latest + + - name: Cache node modules + uses: actions/cache@v4 + with: + path: common/temp + key: ${{ runner.os }}-node-${{ hashFiles('**/pnpm-lock.yaml') }} + + - name: Install dependencies + run: node common/scripts/install-run-rush.js install + + - name: Build + run: node common/scripts/install-run-rush.js build + + - name: Bundle front + run: node common/scripts/install-run-rush.js bundle --to @hcengineering/pod-front + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push front image + uses: docker/build-push-action@v5 + with: + context: ./pods/front + push: true + tags: | + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:tr-test + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} + platforms: linux/amd64 From a6d59a99803fa48f02ef60dd35c02798a631fdcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20At=C4=B1lgan?= Date: Wed, 28 Jan 2026 08:05:28 +0300 Subject: [PATCH 3/6] fix(ci): use lowercase image name for ghcr.io MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bahadır Atılgan --- .github/workflows/build-front-tr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-front-tr.yml b/.github/workflows/build-front-tr.yml index aa91613fd33..a6ae02d8225 100644 --- a/.github/workflows/build-front-tr.yml +++ b/.github/workflows/build-front-tr.yml @@ -7,7 +7,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository_owner }}/huly-front + IMAGE_NAME: bahadir67/huly-front jobs: build-front: From a8fd6cb9d67084811113ffa8b976f49e2e5cf45c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20At=C4=B1lgan?= Date: Wed, 28 Jan 2026 08:12:08 +0300 Subject: [PATCH 4/6] fix(ci): use huly's docker:build for proper image creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bahadır Atılgan --- .github/workflows/build-front-tr.yml | 56 ++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build-front-tr.yml b/.github/workflows/build-front-tr.yml index a6ae02d8225..8636d8bc6a8 100644 --- a/.github/workflows/build-front-tr.yml +++ b/.github/workflows/build-front-tr.yml @@ -8,11 +8,12 @@ on: env: REGISTRY: ghcr.io IMAGE_NAME: bahadir67/huly-front + INIT_SCRIPTS_BRANCH: main jobs: build-front: runs-on: ubuntu-latest - timeout-minutes: 60 + timeout-minutes: 90 permissions: contents: read packages: write @@ -23,15 +24,30 @@ jobs: fetch-depth: 0 submodules: recursive + - name: Free space + run: | + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf /usr/local/share/boost + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + df -h + - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + - name: Checkout init repository + run: | + wget https://github.com/hcengineering/init/archive/refs/heads/${{env.INIT_SCRIPTS_BRANCH}}.zip + unzip ${{env.INIT_SCRIPTS_BRANCH}}.zip -d pods/workspace + mv pods/workspace/init-${{env.INIT_SCRIPTS_BRANCH}} pods/workspace/init + rm -rf ${{env.INIT_SCRIPTS_BRANCH}}.zip + - uses: actions/setup-node@v4 with: - node-version: '20' + node-version-file: '.nvmrc' - uses: pnpm/action-setup@v4 with: @@ -46,11 +62,8 @@ jobs: - name: Install dependencies run: node common/scripts/install-run-rush.js install - - name: Build - run: node common/scripts/install-run-rush.js build - - - name: Bundle front - run: node common/scripts/install-run-rush.js bundle --to @hcengineering/pod-front + - name: Model version from git tags + run: node common/scripts/install-run-rush.js model-version - name: Login to GitHub Container Registry uses: docker/login-action@v3 @@ -59,12 +72,23 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push front image - uses: docker/build-push-action@v5 - with: - context: ./pods/front - push: true - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:tr-test - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - platforms: linux/amd64 + - name: Docker build (all images) + run: node common/scripts/install-run-rush.js docker:build -v + env: + DOCKER_CLI_HINTS: false + DOCKER_EXTRA: --platform=linux/amd64 + DOCKER_BUILDKIT: 1 + + - name: Tag and push front image + run: | + # Find the built front image + FRONT_IMAGE=$(docker images --format "{{.Repository}}:{{.Tag}}" | grep "front" | head -1) + echo "Found front image: $FRONT_IMAGE" + + # Tag for ghcr.io + docker tag $FRONT_IMAGE ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:tr-test + docker tag $FRONT_IMAGE ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} + + # Push + docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:tr-test + docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} From 5eca7bffa9f6343aeaf387175a75db306bd29e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20At=C4=B1lgan?= Date: Wed, 28 Jan 2026 16:09:23 +0300 Subject: [PATCH 5/6] chore: remove test workflow file from PR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bahadır Atılgan --- .github/workflows/build-front-tr.yml | 94 ---------------------------- 1 file changed, 94 deletions(-) delete mode 100644 .github/workflows/build-front-tr.yml diff --git a/.github/workflows/build-front-tr.yml b/.github/workflows/build-front-tr.yml deleted file mode 100644 index 8636d8bc6a8..00000000000 --- a/.github/workflows/build-front-tr.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Build Front (Turkish) - -on: - push: - branches: [add-turkish-language] - workflow_dispatch: - -env: - REGISTRY: ghcr.io - IMAGE_NAME: bahadir67/huly-front - INIT_SCRIPTS_BRANCH: main - -jobs: - build-front: - runs-on: ubuntu-latest - timeout-minutes: 90 - permissions: - contents: read - packages: write - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - submodules: recursive - - - name: Free space - run: | - sudo rm -rf /usr/share/dotnet - sudo rm -rf /opt/ghc - sudo rm -rf /usr/local/share/boost - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - df -h - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Checkout init repository - run: | - wget https://github.com/hcengineering/init/archive/refs/heads/${{env.INIT_SCRIPTS_BRANCH}}.zip - unzip ${{env.INIT_SCRIPTS_BRANCH}}.zip -d pods/workspace - mv pods/workspace/init-${{env.INIT_SCRIPTS_BRANCH}} pods/workspace/init - rm -rf ${{env.INIT_SCRIPTS_BRANCH}}.zip - - - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - - - uses: pnpm/action-setup@v4 - with: - version: latest - - - name: Cache node modules - uses: actions/cache@v4 - with: - path: common/temp - key: ${{ runner.os }}-node-${{ hashFiles('**/pnpm-lock.yaml') }} - - - name: Install dependencies - run: node common/scripts/install-run-rush.js install - - - name: Model version from git tags - run: node common/scripts/install-run-rush.js model-version - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Docker build (all images) - run: node common/scripts/install-run-rush.js docker:build -v - env: - DOCKER_CLI_HINTS: false - DOCKER_EXTRA: --platform=linux/amd64 - DOCKER_BUILDKIT: 1 - - - name: Tag and push front image - run: | - # Find the built front image - FRONT_IMAGE=$(docker images --format "{{.Repository}}:{{.Tag}}" | grep "front" | head -1) - echo "Found front image: $FRONT_IMAGE" - - # Tag for ghcr.io - docker tag $FRONT_IMAGE ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:tr-test - docker tag $FRONT_IMAGE ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - - # Push - docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:tr-test - docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }} From 2cd4cbc0c7641f599079278ffdd1e40ffb18ccad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20At=C4=B1lgan?= Date: Thu, 29 Jan 2026 09:30:09 +0300 Subject: [PATCH 6/6] feat(inbox): add Turkish translations for inbox module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added missing Turkish translation file for the inbox-assets plugin. Co-Authored-By: Claude Opus 4.5 Signed-off-by: Bahadır Atılgan --- plugins/inbox-assets/lang/tr.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 plugins/inbox-assets/lang/tr.json diff --git a/plugins/inbox-assets/lang/tr.json b/plugins/inbox-assets/lang/tr.json new file mode 100644 index 00000000000..555a604f41e --- /dev/null +++ b/plugins/inbox-assets/lang/tr.json @@ -0,0 +1,13 @@ +{ + "string": { + "Inbox": "Gelen Kutusu", + "ReactedToYourMessage": "mesajınıza tepki verdi", + "ClearAll": "Tümünü temizle", + "InboxIsClear": "Gelen kutusu temiz", + "YouDontHaveAnyNewMessages": "Yeni mesajınız yok", + "ReadAll": "Tümünü oku", + "Clearing": "Temizleniyor...", + "Reading": "Okunuyor...", + "HideUserNames": "Kullanıcı adlarını gizle" + } +}