Textes, localisation et mise à jour
Pipeline
flowchart LR
S[Google Sheets] --> I[importUploadTexts.js]
I --> JSON[shared_texts / gameUid_texts]
JSON --> UNITY[TextsManager]
JSON --> WEB[Upload serveur web]
WEB --> API[/getTexts/gameUid/lang/timestamp]
API --> UNITY
UNITY --> TL[TextLoader / UI]
Fichiers générés
- partagés :
Assets/Resources/data/shared_texts_fr.jsonetshared_texts_en.json; - jeu :
Assets/GameSpecific/<gameUid>/Resources/data_<gameUid>/<gameUid>_texts_fr.jsonet EN.
Import Node
exports/importUploadTexts.js associe chaque GameUid à ses feuilles Google et appelle importer.importTexts(). Les commandes exposées permettent l'import game-specific, shared, ou l'import suivi de l'upload.
Pour Accounting, le script traite Acc1 et Acc2 ensemble via accountingTextGameUids = ["acc1", "acc2"], afin d'éviter de mettre à jour une seule variante.
Chargement Unity
TextsManager.Initialize() charge les textes shared. Game.SetGameUid() appelle LoadGameSpecificTexts(). SetLang() recharge les deux couches puis appelle TextLoader.ReloadAll(). Un UID absent retourne [uid].
Mise à jour sans rebuild
UpdateTextsFromWebServer() interroge /getTexts/<gameUid>/<locale>/<timestamp>. Le client garde timestamp/hash et peut donc recevoir des textes plus récents que ceux embarqués dans le build.
Modifier un texte
- Trouver l'UID utilisé par
TextLoaderouGame.Texts.GetText(). - Modifier la source Google Sheets appropriée.
- Lancer l'import.
- Vérifier FR + EN.
- Publier si le changement doit être disponible sans rebuild.
- Sinon inclure les JSON générés dans le prochain build Unity.