Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
7d5e8be
Issues/issue 1150 fix autogrow (#193)
mbienhuels Sep 20, 2025
0de73e8
chore(sponsors): added warp banner (#1664)
CorentinTh Oct 10, 2025
d505845
chore(readme): remove sponsors section (#1733)
CorentinTh Feb 12, 2026
9daf030
fix: Dockerfile ENV format warnings
toarujs Mar 5, 2026
6fcda12
feat: set default language to Chinese
toarujs Mar 5, 2026
827813e
i18n(zh): add missing Chinese translations for calendar-converter and…
toarujs Mar 5, 2026
61437dc
i18n(zh): add Chinese translations for shell-linearizer and shell-for…
toarujs Mar 5, 2026
93e311b
i18n: add Chinese translation for Collapse/Expand All Tools
toarujs Mar 5, 2026
dbb195e
i18n: add Chinese translation for Default category
toarujs Mar 5, 2026
e266570
i18n: add Chinese translation for Finance category
toarujs Mar 5, 2026
1b95de8
i18n: add finance category translation to all languages
toarujs Mar 5, 2026
0ee1974
i18n: add docker-pangolin-labels translations to all languages
toarujs Mar 5, 2026
2d9d47e
i18n: add resistor-calculator and font-compare translations to all la…
toarujs Mar 5, 2026
6540363
i18n: add tab translations for gitattributes-generator and rsvp-reader
toarujs Mar 5, 2026
54b8ae0
i18n: add image-comparer tab translations to all languages
toarujs Mar 5, 2026
83e1b29
fix: resolve YAML syntax errors in fr, ga, it, uk locales
toarujs Mar 5, 2026
e37c1d9
chore: sync all locales translations
toarujs Mar 6, 2026
bc6f9d5
完善国际化翻译
toarujs Mar 6, 2026
7d034c3
docs: add multi-language README files (15 languages)
toarujs Mar 13, 2026
02ac65a
docs: move multi-language README to docs folder
toarujs Mar 13, 2026
d96fcc5
docs: reorganize README files - move to docs folder
toarujs Mar 13, 2026
c42cebf
fix: resolve multiple potential bugs
toarujs Mar 13, 2026
1bd9867
fix: resolve additional bugs
toarujs Mar 13, 2026
1639877
fix: resolve more bugs
toarujs Mar 13, 2026
3427030
fix: resolve more bugs
toarujs Mar 13, 2026
89297a6
fix: address code quality issues
toarujs Mar 13, 2026
3ffbeca
fix: resolve syntax error in Home.page.vue
toarujs Mar 13, 2026
48107d9
fix: resolve memory leaks
toarujs Mar 13, 2026
e3ffbf3
fix: resolve remaining issues
toarujs Mar 13, 2026
bb1b975
fix: resolve createObjectURL memory leaks
toarujs Mar 13, 2026
dd0c124
fix: resolve XSS vulnerabilities
toarujs Mar 13, 2026
9072511
fix:修复翻译问题
toarujs Mar 16, 2026
f9af7fc
fix:修复翻译问题
toarujs Mar 16, 2026
8a7c0dc
fix: code quality improvements and i18n architecture fixes
toarujs Mar 16, 2026
f59e93d
docs: 添加项目文档
toarujs Mar 16, 2026
ea8cbdb
chore: 添加 temp 到 .gitignore
toarujs Mar 16, 2026
5666834
feat: 添加 GitHub 到 Gitee 自动同步工作流
toarujs Mar 16, 2026
d766fee
Merge gitee/main into all-my-stuffs - sync from Gitee
MonkeyCode-AI Mar 16, 2026
b7c2caa
Merge remote-tracking branch 'origin/one' into chore/all-my-stuffs
MonkeyCode-AI Mar 16, 2026
8b59051
chore: change default language to English
MonkeyCode-AI Mar 16, 2026
00cc124
fix: 修复安全漏洞 - ReDoS 和 XSS
toarujs Apr 22, 2026
be2915d
fix(locales/zh): 将翻译中的 Docker运行 统一改为 docker run
toarujs May 1, 2026
0159412
merge: integrate sharevb fork updates
toarujs Aug 24, 2026
57e7c64
Merge remote-tracking branch 'upstream/main' into chore/all-my-stuffs
toarujs Aug 24, 2026
6e0d556
fix: resolve merge type and lint errors
toarujs Aug 24, 2026
cc612ff
feat: add configurable password generator
toarujs Aug 24, 2026
3a1176d
fix: harden dependencies and response headers
toarujs Aug 24, 2026
66ef53c
fix: normalize locale switching
toarujs Aug 24, 2026
fe50c4d
chore: sync updates from gitee
MonkeyCode-AI Aug 24, 2026
0aafdc1
chore: remove obsolete files and monkeycode docs
MonkeyCode-AI Aug 24, 2026
c73d69a
fix: repair locale loading and dev dependency resolution
MonkeyCode-AI Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions .github/sponsor-banner.svg

This file was deleted.

17 changes: 17 additions & 0 deletions .github/workflows/sync-gitee.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Sync to Gitee

on:
push:
branches: [main, master]

jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Sync to Gitee
uses: Yikun/gitee-sync-action@v0.4.0
with:
github_token: ${{ secrets.GH_TOKEN }}
gitee_token: ${{ secrets.GITEE_TOKEN }}
gitee_username: ${{ secrets.GITEE_USERNAME }}
gitee_repo: ${{ secrets.GITEE_REPO }}
3 changes: 3 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ COPY . .
# on the production stage below.
ARG VITE_AVAILABLE_LOCALES
ENV VITE_AVAILABLE_LOCALES=${VITE_AVAILABLE_LOCALES}
ARG VITE_LANGUAGE=en
ENV VITE_LANGUAGE=${VITE_LANGUAGE}
ENV VITE_VERCEL_ENV=production
RUN pnpm build

Expand All @@ -30,6 +32,7 @@ LABEL maintainer="ShareVB <sharevb@gmail.com>" \
LABEL org.opencontainers.image.source=github.com/sharevb/it-tools

ENV VITE_VERCEL_ENV=production
ENV VITE_LANGUAGE=en

# The path the app is served under. Override it at run time -- `docker run -e
# BASE_URL=/it-tools/`, `environment: BASE_URL: /it-tools/` in a compose file -- and nginx
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

Since the _base image_ is now `nginx-unpriviledged` the container will now listen to port **8080** and not 80. So you need to update your port mapping, i.e. from `8080:80` to `8080:8080`.

<p align="center">
Useful tools for developer and people working in IT. <a href="https://it-tools.tech">Try it!</a>
</p>

You can override listening port using environment variable `PORT` (docker option `-e PORT=8888`).

You can serve the app from a subfolder using environment variable `BASE_URL` (docker option
Expand All @@ -21,8 +25,6 @@ than on the JavaScript heap.

Especially for UI improvements and translation. And for anything else.

Want to support this fork of IT Tools: [Buy me a coffee](https://www.buymeacoffee.com/sharevb)

## HTTPS is recommended

Some tools like PGP encryption rely on WebCrypto API that is only available in HTTPS/SSL. Also, if you want to use PWA, HTTPS is required.
Expand Down
4 changes: 3 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ services:
pull_policy: always
restart: unless-stopped
ports:
- 8080:8080 # Since Docker base image is now nginx-unpriviledged, docker image now listen to 8080 and no more 80.
- 8080:8080 # Since Docker base image is now nginx-unpriviledged, docker image now listen to 8080 and no more 80.
environment:
VITE_LANGUAGE: ${VITE_LANGUAGE:-en}
19 changes: 19 additions & 0 deletions docker-entrypoint.d/18-runtime-config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

set -eu

config_file=/usr/share/nginx/html/runtime-config.js
default_locale=${VITE_LANGUAGE:-en}

case "$default_locale" in
[a-z][a-z] | [a-z][a-z]-[A-Z][A-Z]) ;;
*)
echo "18-runtime-config.sh: warning: invalid VITE_LANGUAGE='$default_locale', using en" >&2
default_locale=en
;;
esac

if [ -w "$config_file" ]; then
sed "s/__DEFAULT_LOCALE__/$default_locale/" "$config_file" > "$config_file.tmp"
mv "$config_file.tmp" "$config_file"
fi
114 changes: 114 additions & 0 deletions docs/README.de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
## Wichtige Änderung für das Container-Image

Da das Basis-Image jetzt `nginx-unpriviledged` ist, lauscht der Container auf Port **8080** und nicht auf 80. Sie müssen daher Ihre Port-Zuordnung aktualisieren, d.h. von `8080:80` zu `8080:8080`.

Sie können den lauschenden Port mit der Umgebungsvariable `PORT` überschreiben (Docker-Option `-e PORT=8888`).

## Pull-Request willkommen

Besonders für UI-Verbesserungen und Übersetzungen. Und für alles andere.

Sie möchten diesen Fork von IT Tools unterstützen: [Buy me a coffee](https://www.buymeacoffee.com/sharevb)

## HTTPS wird empfohlen

Einige Tools wie PGP-Verschlüsselung verlassen sich auf die WebCrypto-API, die nur in HTTPS/SSL verfügbar ist. Außerdem wird HTTPS benötigt, wenn Sie PWA verwenden möchten.

Sie sollten also auch bei internen Installationen HTTPS mit Let's Encrypt über DNS-Challenge aktivieren.

## Mitwirkende

Vielen Dank an alle, die bereits beigetragen haben!

[![contributors](https://contrib.rocks/image?repo=sharevb/it-tools&refresh=1)](https://github.com/sharevb/it-tools/graphs/contributors)

## Entwicklung unter Windows

Die Verwendung von WSL2 wird für die Entwicklung mit VSCode unter Windows empfohlen. Die direkte Entwicklung ist schwierig (wegen einiger Abhängigkeiten).

## Hinzugefügte Funktionen

- Fast alle [Original it-tools PRs, 192 von mir](https://github.com/CorentinTh/it-tools/pulls)
- 95% der [Original it-tools Issues](https://github.com/CorentinTh/it-tools/issues)
- Vollständige UI-Übersetzung in viele Sprachen (Google-übersetzt)
- Viele [neue Tools](https://sharevb-it-tools.vercel.app/about)
- Viele Fehlerkorrekturen und Verbesserungen
- Viele Anpassungen (Docker-Version)

## Container-Images

[GitHub Container Registry](https://github.com/sharevb/it-tools/pkgs/container/it-tools): `ghcr.io/sharevb/it-tools:latest`

[Docker Hub](https://hub.docker.com/r/sharevb/it-tools): `sharevb/it-tools:latest`

## In Docker Compose verwenden

```yml
services:
it-tools:
container_name: it-tools
image: sharevb/it-tools:latest
pull_policy: always
restart: unless-stopped
ports:
- 8080:8080
```

## Tools filtern und eigene Startseite hinzufügen

Sie können eigene Inhalte zur Startseite hinzufügen, indem Sie `home.custom.md` nach `/usr/share/nginx/html` einhängen.

Sie können verfügbare Tools filtern, indem Sie `tools-filter.json` nach `/usr/share/nginx/html` einhängen.

## Beitragen

### Empfohlene IDE-Einrichtung

[VSCode](https://code.visualstudio.com/) mit folgenden Erweiterungen:

- [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (und Vetur deaktivieren)
- [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin)
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
- [i18n Ally](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally)

### Projekteinrichtung

```sh
pnpm install --ignore-scripts
```

### Kompilieren und Heißen Neustart für Entwicklung

```sh
pnpm dev
```

### Typprüfung, Kompilieren und Minifizieren für Produktion

```sh
pnpm build
```

### Unit-Tests mit Vitest ausführen

```sh
pnpm test
```

### Mit ESLint prüfen

```sh
pnpm lint
```

### Ein neues Tool erstellen

Um ein neues Tool zu erstellen, gibt es ein Skript, das die Vorlage generiert. Führen Sie einfach aus:

```sh
pnpm run script:create:tool my-tool-name
```

## Lizenz

Dieses Projekt ist unter [GNU GPLv3](LICENSE).
114 changes: 114 additions & 0 deletions docs/README.es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
## Cambio importante para la imagen del contenedor

Dado que la imagen base ahora es `nginx-unpriviledged`, el contenedor escuchará en el puerto **8080** y no en el 80. Por lo tanto, necesita actualizar su mapeo de puertos, es decir, de `8080:80` a `8080:8080`.

Puede sobrescribir el puerto de escucha usando la variable de entorno `PORT` (opción docker `-e PORT=8888`).

## PR Bienvenido

Especialmente para mejoras de UI y traducción. Y para cualquier otra cosa.

¿Quieres apoyar este fork de IT Tools?: [Buy me a coffee](https://www.buymeacoffee.com/sharevb)

## Se recomienda HTTPS

Algunas herramientas como el cifrado PGP dependen de la API WebCrypto que solo está disponible en HTTPS/SSL. También, si quieres usar PWA, se requiere HTTPS.

Entonces, incluso en instalaciones internas, deberías habilitar HTTPS usando Let's Encrypt con DNS Challenge.

## Contribuidores

¡Muchas gracias a todas las personas que ya han contribuido!

[![contributors](https://contrib.rocks/image?repo=sharevb/it-tools&refresh=1)](https://github.com/sharevb/it-tools/graphs/contributors)

## Desarrollo en Windows

Se recomienda usar WSL2 para desarrollar con VSCode en Windows. El desarrollo directo es complicado (debido a algunas dependencias).

## Funciones añadidas

- Casi todos los [PR de it-tools original, 192 míos](https://github.com/CorentinTh/it-tools/pulls)
- 95% de los [problemas de it-tools original](https://github.com/CorentinTh/it-tools/issues)
- Traducción completa de UI en muchos idiomas (traducido por Google)
- Muchos [nuevas herramientas](https://sharevb-it-tools.vercel.app/about)
- Muchas correcciones de errores y mejoras
- Muchas personalizaciones (versión Docker)

## Imágenes de contenedor

[GitHub Container Registry](https://github.com/sharevb/it-tools/pkgs/container/it-tools): `ghcr.io/sharevb/it-tools:latest`

[Docker Hub](https://hub.docker.com/r/sharevb/it-tools): `sharevb/it-tools:latest`

## Usar en archivo Docker Compose

```yml
services:
it-tools:
container_name: it-tools
image: sharevb/it-tools:latest
pulse_policy: always
restart: unless-stopped
ports:
- 8080:8080
```

## Filtrar herramientas y agregar contenido personalizado en home

Puedes agregar contenido personalizado en la página de inicio montando un `home.custom.md` en `/usr/share/nginx/html`.

Puedes filtrar las herramientas disponibles montando `tools-filter.json` en `/usr/share/nginx/html`.

## Contribuir

### Configuración de IDE recomendada

[VSCode](https://code.visualstudio.com/) con las siguientes extensiones:

- [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (y desactivar Vetur)
- [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin)
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
- [i18n Ally](https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally)

### Configuración del proyecto

```sh
pnpm install --ignore-scripts
```

### Compilar y recargar en caliente para desarrollo

```sh
pnpm dev
```

### Verificación de tipos, compilar y minificar para producción

```sh
pnpm build
```

### Ejecutar pruebas unitarias con Vitest

```sh
pnpm test
```

### Lint con ESLint

```sh
pnpm lint
```

### Crear una nueva herramienta

Para crear una nueva herramienta, hay un script que genera la plantilla. Simplemente ejecuta:

```sh
pnpm run script:create:tool my-tool-name
```

## Licencia

Este proyecto está bajo [GNU GPLv3](LICENSE).
Loading
Loading