Skip to content

added persian/farsi support#5582

Open
pcmehrdad wants to merge 1 commit into
NginxProxyManager:developfrom
pcmehrdad:develop
Open

added persian/farsi support#5582
pcmehrdad wants to merge 1 commit into
NginxProxyManager:developfrom
pcmehrdad:develop

Conversation

@pcmehrdad
Copy link
Copy Markdown

@pcmehrdad pcmehrdad commented May 25, 2026

Why

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Code refactoring
  • API changes
  • Performance improvement
  • Test addition or update

AI Usage

  • AI was used to write this
  • AI was used to review this

Add Persian (fa-IR) translation with RTL support

Adds a complete Persian (Farsi) locale to the frontend.

  • Translates all 258 UI strings (fa.json) and all 6 HelpDoc articles
  • Registers fa-IR in the locale list, language picker (🇮🇷 flag), and HelpDoc registry
  • Adds RTL support: sets dir="rtl" for RTL locales and loads Tabler's RTL stylesheet when Persian is active

All messages validated as valid ICU and verified at full key-parity with en.json; tsc passes.

@nginxproxymanagerci
Copy link
Copy Markdown

CI Error:

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
certbot-node: Pulling from nginxproxymanager/nginx-full
Digest: sha256:f73f13606a19dc73774559451342906fa54724eee7e914571af5ed23408650b8
Status: Image is up to date for nginxproxymanager/nginx-full:certbot-node
docker.io/nginxproxymanager/nginx-full:certbot-node
�[1;34m❯ �[1;36mTesting backend ...�[0m
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
warning lru.min@1.1.4: The engine "bun" appears to be invalid.
warning lru.min@1.1.4: The engine "deno" appears to be invalid.
warning sql-escaper@1.3.3: The engine "bun" appears to be invalid.
warning sql-escaper@1.3.3: The engine "deno" appears to be invalid.
[3/4] Linking dependencies...
warning " > @apidevtools/json-schema-ref-parser@15.3.5" has unmet peer dependency "@types/json-schema@^7.0.15".
warning " > mysql2@3.22.3" has unmet peer dependency "@types/node@>= 8".
warning " > @apidevtools/swagger-parser@12.1.0" has unmet peer dependency "openapi-types@>=7".
[4/4] Building fresh packages...
Done in 24.06s.
yarn run v1.22.22
$ biome lint .
Checked 90 files in 47ms. No fixes applied.
Done in 0.12s.
�[1;34m❯ �[1;32mTesting Complete�[0m
�[1;34m❯ �[1;36mBuilding ...�[0m
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 2.20kB 0.0s done
#1 DONE 0.0s

#2 [internal] load metadata for docker.io/nginxproxymanager/nginx-full:certbot-node
#2 ...

#3 [internal] load metadata for docker.io/nginxproxymanager/testca:latest
#3 DONE 0.6s

#2 [internal] load metadata for docker.io/nginxproxymanager/nginx-full:certbot-node
#2 DONE 0.6s

#4 [internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s

#5 [stage-1  1/11] FROM docker.io/nginxproxymanager/nginx-full:certbot-node@sha256:f73f13606a19dc73774559451342906fa54724eee7e914571af5ed23408650b8
#5 resolve docker.io/nginxproxymanager/nginx-full:certbot-node@sha256:f73f13606a19dc73774559451342906fa54724eee7e914571af5ed23408650b8 0.0s done
#5 DONE 0.2s

#6 [internal] load build context
#6 transferring context: 4.47MB 0.0s done
#6 DONE 0.1s

#7 [testca 1/1] FROM docker.io/nginxproxymanager/testca:latest@sha256:14d7c3250135d3ebc058b1e8bb41b171f622b7cb5fc2b4b2bcc8f555cf926140
#7 resolve docker.io/nginxproxymanager/testca:latest@sha256:14d7c3250135d3ebc058b1e8bb41b171f622b7cb5fc2b4b2bcc8f555cf926140 0.0s done
#7 sha256:9ab966394e7386f8e212deb17c9369ed98d5eb3a4df9070c28d96bae1362e810 116B / 116B done
#7 sha256:29a151a3ba18b782725510791d49c081fb88a4f0633331fd0f826d36655fb78e 58.56kB / 58.56kB 0.0s done
#7 sha256:c99c8ac6013d99408e670c2d0ebeac923d390d90c09a55b4e0b266d0cc061e65 2.86kB / 2.86kB 0.0s done
#7 sha256:987ab97de7c8e28cebb6b45a2546298654c7d25b24720c371d04838152bb3e95 1.36kB / 1.36kB done
#7 sha256:b275842c598b60e8357d6da9be429887df83c85f3266eb8f6368291a03727348 1.05MB / 3.91MB 0.3s
#7 sha256:f19dea81e0af6255cb52700a24ca2dec7ff42c12c20486f1bd6e7fac5c735db3 0B / 16.68MB 0.2s
#7 sha256:3882371c5807b6189df26b2c3139baab81e7ceee303ec493ac1c9f8445fb7171 0B / 9.38MB 0.2s
#7 sha256:59043673e5af8c5511ac545b23eb3e1d018bd25a54698cc89c668e6be7cd82e5 0B / 14.58MB 0.2s
#7 sha256:b275842c598b60e8357d6da9be429887df83c85f3266eb8f6368291a03727348 2.10MB / 3.91MB 0.6s
#7 sha256:f19dea81e0af6255cb52700a24ca2dec7ff42c12c20486f1bd6e7fac5c735db3 1.05MB / 16.68MB 0.5s
#7 sha256:3882371c5807b6189df26b2c3139baab81e7ceee303ec493ac1c9f8445fb7171 1.05MB / 9.38MB 0.5s
#7 sha256:59043673e5af8c5511ac545b23eb3e1d018bd25a54698cc89c668e6be7cd82e5 1.05MB / 14.58MB 0.5s
#7 sha256:f19dea81e0af6255cb52700a24ca2dec7ff42c12c20486f1bd6e7fac5c735db3 2.10MB / 16.68MB 0.8s
#7 sha256:b275842c598b60e8357d6da9be429887df83c85f3266eb8f6368291a03727348 3.15MB / 3.91MB 1.1s
#7 sha256:3882371c5807b6189df26b2c3139baab81e7ceee303ec493ac1c9f8445fb7171 2.10MB / 9.38MB 0.9s
#7 sha256:59043673e5af8c5511ac545b23eb3e1d018bd25a54698cc89c668e6be7cd82e5 2.10MB / 14.58MB 1.1s
#7 sha256:3882371c5807b6189df26b2c3139baab81e7ceee303ec493ac1c9f8445fb7171 3.15MB / 9.38MB 1.2s
#7 sha256:b275842c598b60e8357d6da9be429887df83c85f3266eb8f6368291a03727348 3.91MB / 3.91MB 1.4s done
#7 sha256:f19dea81e0af6255cb52700a24ca2dec7ff42c12c20486f1bd6e7fac5c735db3 3.15MB / 16.68MB 1.4s
#7 sha256:3882371c5807b6189df26b2c3139baab81e7ceee303ec493ac1c9f8445fb7171 4.19MB / 9.38MB 1.4s
#7 sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 0B / 32B 0.2s
#7 sha256:59043673e5af8c5511ac545b23eb3e1d018bd25a54698cc89c668e6be7cd82e5 3.15MB / 14.58MB 1.5s
#7 sha256:3882371c5807b6189df26b2c3139baab81e7ceee303ec493ac1c9f8445fb7171 5.24MB / 9.38MB 1.7s
#7 sha256:3fa522a93ff59fea4d76dd73dee00a40066f8ee2485138605e9f177fd52df526 0B / 7.03MB
#7 ...

#8 [stage-1  7/11] WORKDIR /app
#8 CACHED

#9 [stage-1  8/11] RUN yarn install 	&& yarn cache clean
#9 CACHED

#10 [stage-1  9/11] COPY docker/rootfs /
#10 CACHED

#11 [stage-1  4/11] RUN /tmp/install-s6 "linux/amd64" && rm -f /tmp/install-s6
#11 CACHED

#12 [stage-1  5/11] COPY backend       /app
#12 CACHED

#13 [stage-1  6/11] COPY frontend/dist /app/frontend
#13 CACHED

#14 [stage-1  3/11] COPY docker/scripts/install-s6 /tmp/install-s6
#14 CACHED

#15 [stage-1 10/11] COPY --from=testca /home/step/certs/root_ca.crt /etc/ssl/certs/NginxProxyManager.crt
#15 ERROR: short read: expected 32 bytes but got 0: unexpected EOF

#16 [stage-1  2/11] RUN echo "fs.file-max = 65535" > /etc/sysctl.conf 	&& apt-get update 	&& apt-get install -y --no-install-recommends jq logrotate 	&& apt-get clean 	&& rm -rf /var/lib/apt/lists/*
#16 0.432 Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
#16 0.569 Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
#16 0.594 Get:3 https://deb.nodesource.com/node_22.x nodistro InRelease [12.1 kB]
#16 0.639 Get:4 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
#16 0.653 Get:5 https://deb.nodesource.com/node_22.x nodistro/main amd64 Packages [10.1 kB]
#16 0.689 Get:6 http://deb.debian.org/debian trixie/main amd64 Packages [9671 kB]
#16 CANCELED
------
 > [stage-1 10/11] COPY --from=testca /home/step/certs/root_ca.crt /etc/ssl/certs/NginxProxyManager.crt:
------
Dockerfile:48
--------------------
  46 |     # add late to limit cache-busting by modifications
  47 |     COPY docker/rootfs /
  48 | >>> COPY --from=testca /home/step/certs/root_ca.crt /etc/ssl/certs/NginxProxyManager.crt
  49 |     
  50 |     # Remove frontend service not required for prod, dev nginx config as well
--------------------
ERROR: failed to build: failed to solve: failed to compute cache key: short read: expected 32 bytes but got 0: unexpected EOF

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant