Skip to main content

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.json et shared_texts_en.json;
  • jeu : Assets/GameSpecific/<gameUid>/Resources/data_<gameUid>/<gameUid>_texts_fr.json et 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

  1. Trouver l'UID utilisé par TextLoader ou Game.Texts.GetText().
  2. Modifier la source Google Sheets appropriée.
  3. Lancer l'import.
  4. Vérifier FR + EN.
  5. Publier si le changement doit être disponible sans rebuild.
  6. Sinon inclure les JSON générés dans le prochain build Unity.