secubox-openwrt/docs-fr/repository-guidelines.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

3.5 KiB

Directives du Dépôt

🌐 Langues : English | Français | 中文

Structure du Projet & Organisation des Modules

  • Les applications LuCI (luci-app-secubox, luci-app-*) stockent les vues dans htdocs/luci-static/resources et la logique RPC dans root/usr/libexec/rpcd ; package/secubox/ contient les copies prêtes pour le SDK de ces modules.
  • luci-theme-secubox, templates/ et plugins/ fournissent les CSS partagés, dégradés et widgets qui doivent être référencés via require secubox/* au lieu de dupliquer les assets.
  • L'automatisation se trouve dans secubox-tools/, scripts/ et les wrappers deploy-*.sh, tandis que la documentation est dans docs/ (MkDocs) et DOCS/ (approfondissements).

Commandes de Build, Test & Développement

  • ./secubox-tools/local-build.sh build <module> effectue des builds SDK avec cache ; utilisez make package/<module>/compile V=s pour reproduire exactement la CI.
  • ./secubox-tools/validate-modules.sh doit passer avant les commits ; il vérifie le nommage RPC, les chemins de menu, les permissions, le JSON et les vues orphelines.
  • ./secubox-tools/quick-deploy.sh --profile luci-app --src luci-app-secubox synchronise les arborescences root/ et htdocs/ vers un routeur ; ajoutez --list-apps pour découvrir les IDs valides ou --app <name> pour en cibler un.
  • ./deploy-to-router.sh reconstruit secubox-core + luci-app-secubox-admin, télécharge les derniers IPKs vers $ROUTER_IP, les installe et redémarre rpcd.

Style de Code & Conventions de Nommage

  • Les vues LuCI utilisent ES5 : 'use strict';, 'require ...' groupés, indentation par tabulation et rendu return view.extend({ ... }) + E('div', ...) ; déplacez la logique métier dans des helpers comme secubox/api.
  • Le JSON de menu "path": "system-hub/overview" doit résoudre vers htdocs/.../view/system-hub/overview.js, et les scripts RPC dans root/usr/libexec/rpcd/ doivent correspondre à leurs noms d'objets ubus tout en ayant les permissions exécutables (755).
  • Exécutez ./secubox-tools/fix-permissions.sh --local pour maintenir les fichiers CSS/JS à 644, et gardez le vocabulaire de design cohérent (sh-*, sb-*, polices Inter/JetBrains, dégradés stockés dans les fichiers de thème).

Directives de Test

  • Exécutez ./secubox-tools/validate-modules.sh plus jsonlint file.json et shellcheck root/usr/libexec/rpcd/* pour chaque point de contact.
  • Exécutez scripts/smoke_test.sh sur le matériel pour confirmer les services Zigbee2MQTT, la santé des conteneurs et MQTT.
  • Déposez test-direct.js ou test-modules-simple.js dans LuCI pour vérifier le câblage des menus, puis supprimez le fichier et enregistrez les commandes ubus -S call luci.secubox ... dans la PR.

Directives de Commit & Pull Request

  • Suivez le style d'historique observé : type(scope): changement (ex : fix(luci-app-secubox-admin): add RPC fallback).
  • Les PRs doivent mettre en évidence le module affecté, lister les commandes de validation exécutées et joindre des captures d'écran pour les modifications UI.
  • Liez les issues ou entrées TODO, mettez à jour docs/ + DOCS/ quand le comportement ou les APIs changent, et signalez les hypothèses d'IP de routeur.

Conseils de Sécurité & Déploiement

  • Exécutez le validateur et ./secubox-tools/fix-permissions.sh --local avant de pousser pour éviter les HTTP 403, et redémarrez rpcd plus purgez les caches LuCI (rm -f /tmp/luci-*) si vous n'utilisez pas deploy-to-router.sh.