Русский перевод интерфейса и схемы, падежи, выкладка через релиз
Словарь схемы 0.16.25 (7250 строк), ru.json, ручные правки падежей, перевод ключа name только в меню, release.sh для выкладки в релиз current. Claude-Session: https://claude.ai/code/session_01BFaqS6mH9sa99RWghq2j46
Этот коммит содержится в:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
# Сборка и выкладка русской версии веб-интерфейса Stalwart в оформлении StackWorks.
|
||||
#
|
||||
# ./release.sh собрать словари, интерфейс и архив webui.zip, выложить в релиз Gitea «current»
|
||||
#
|
||||
# Stalwart берёт интерфейс по адресу из настройки x:Application.resourceUrl:
|
||||
# https://git.stackworks.ru/viktor/stalwart-webui-ru/releases/download/current/webui.zip
|
||||
# После выкладки на почтовом сервере нажать «Действия -> Обновить приложения» или
|
||||
# выполнить x:Action/set {"@type":"UpdateApps"} (см. README.ru.md).
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
python3 i18n-work/merge.py # part*.ru.json -> src/i18n/schema-ru.json и src/i18n/ru.json
|
||||
npm run build
|
||||
rm -f webui.zip
|
||||
python3 -c "import shutil; shutil.make_archive('webui', 'zip', 'dist')"
|
||||
ls -l webui.zip
|
||||
|
||||
T=$(python3 -c "
|
||||
import json
|
||||
d=json.load(open('$HOME/.claude.json'))
|
||||
def f(o):
|
||||
if isinstance(o,dict):
|
||||
if 'gitea' in o.get('mcpServers',{}): return o['mcpServers']['gitea']
|
||||
for v in o.values():
|
||||
r=f(v)
|
||||
if r: return r
|
||||
print(list(f(d)['env'].values())[-1])")
|
||||
API=https://git.stackworks.ru/api/v1/repos/viktor/stalwart-webui-ru
|
||||
H="Authorization: token $T"
|
||||
|
||||
# релиз «current» с тегом current: создаём, если нет, иначе заменяем вложение
|
||||
REL=$(curl -s -H "$H" "$API/releases/tags/current" | python3 -c "import json,sys;print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true)
|
||||
if [ -z "$REL" ]; then
|
||||
REL=$(curl -s -H "$H" -H "Content-Type: application/json" -X POST "$API/releases" \
|
||||
-d '{"tag_name":"current","target_commitish":"main","name":"Текущая сборка","body":"Архив webui.zip для Stalwart: русский язык и оформление StackWorks."}' \
|
||||
| python3 -c "import json,sys;print(json.load(sys.stdin)['id'])")
|
||||
fi
|
||||
for A in $(curl -s -H "$H" "$API/releases/$REL/assets" | python3 -c "import json,sys;[print(a['id']) for a in json.load(sys.stdin) if a['name']=='webui.zip']"); do
|
||||
curl -s -o /dev/null -H "$H" -X DELETE "$API/releases/$REL/assets/$A"
|
||||
done
|
||||
curl -s -H "$H" -F "attachment=@webui.zip" "$API/releases/$REL/assets?name=webui.zip" | python3 -c "import json,sys;d=json.load(sys.stdin);print('выложено:', d.get('browser_download_url'))"
|
||||
Ссылка в новой задаче
Block a user