Multilangue et sécurisation API

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Avatar de l’utilisateur
KassaK
Messages : 51
Inscription : 29 Sep 2014 14:27

Multilangue et sécurisation API

Message par KassaK » 18 Oct 2017 11:44

Hello hello !

Je souhaitai avoir votre avis sur 2 points un peu flous pour moi aujourd'hui :

1 - Comment gérer le multilangue ?

Concernant le multilangue, de par mon expérience en dev, je sais que si je continu de bosser sans m'en soucier je vais arriver à un point critique où ça va être très très compliqué de l'intégrer... mais je n'ai pas de solution propre en tête.

Plusieurs choses ont besoin d'une traduction dans mon jeu :

- Tout les textes présents dans mon canvas et mes différents panels (Text, Button etc....). C'est souvent du texte en dur (Titre d'un panel par exemple) écrit directement dans l'éditeur d'Unity... je dois obligatoirement injecter ces textes depuis un script C# ou il y a moyen de gérer la trad dans Unity directement ? Parceque les 3/4 des textes ne sont pas dynamiques..

- Il y a aussi pas mal d'endroits où je change le contenu texte de ces éléments depuis mes scripts.

- Je vais sûrement avoir besoin de gérer des trads avec des variables : "Bonjour %pseudo%", "Hello %pseudo%", possible ?

- Et enfin derrière il y a mon API qui contient la liste des items, des bâtiments etc... Dois-je gérer la trad de ces éléments directement dans mon API et renvoyer la bonne langue suivant ce que le joueur a choisi, ou alors je gère que des "clés" et la trad de ces clés se trouve dans Unity ? Exemple coté API : key= item_weapon_wood, et la trad de item_weapon_wood se trouve dans Unity.

2- Comment sécuriser mon API derrière mon jeu ?

Donc comme dit plus haut, j'ai derrière une API en Laravel qui contient la liste des items, bâtiments, blueprints de mon jeu. Comment sécuriser l'appel à cette API depuis un client Unity ? Il y a des recommandations la dessus ? LE truc à faire ?

Je sais par exemple, quand je fais du web ou une appli mobile, l'API est souvent sécurisée par un token JWT (un login et un password génère un token JWT, utilisé par la suite dans tous les calls API). On est sur le même délire quand c'est unity qui appel une API ?

Merci !

Ran
Messages : 32
Inscription : 04 Déc 2015 10:43

Re: Multilangue et sécurisation API

Message par Ran » 18 Oct 2017 12:07

KassaK a écrit :
18 Oct 2017 11:44
1 - Comment gérer le multilangue ?

Concernant le multilangue, de par mon expérience en dev, je sais que si je continu de bosser sans m'en soucier je vais arriver à un point critique où ça va être très très compliqué de l'intégrer... mais je n'ai pas de solution propre en tête.
Bon, je vais répondre seulement sur la traduction, parce que j'ai un peu d'expérience dans ce domaine.

KassaK a écrit :
18 Oct 2017 11:44
Parceque les 3/4 des textes ne sont pas dynamiques..
Voila, donc, j'appellerais ça LE problème :p

Dans mon dernier jeu, j'avais opté pour la solution simple, radicale et efficace suivante (je suppose que c'est la plus standard, mais sans garantie, je ne suis pas un pro) : TOUS les textes qui s'affichaient dans le jeu étaient référencés par un tableau à deux entrées : texte[référence, langue]. Par exemple :
texte[0] = [Salut tout le monde ; Adishatz monde ; Hello World]

Comme ça on change de langue juste en changeant la variable "langue", ça permet de traduire la totalité du jeu d'un seul clic, quitte le cas échéant à rafraîchir l'écran de jeu en cours. J'avais écris la totalité des textes dans un bête fichier tableur sauvé en .CSV, chargé au début du jeu. Bonus : ça donne un support pratique pour faire travailler d'autres gens sur la traduction.

Variante si c'est un jeu particulièrement bavard et qu'il faut économiser un peu de place en mémoire : un tableau à une seule entrée : texte[référence], qu'on peut charger à la volée depuis le fichiers des langues disponibles.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6206
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Multilangue et sécurisation API

Message par boubouk50 » 18 Oct 2017 12:09

Salut,

pour le multilangue, en tout cas pour ce que j'ai fait, seuls les textes affichés sont traduits. Tout ce qui est derrière n'est pas traduit et pour cause, le code s'en moque éperdument de la langue. Ensuite, il se peut que tu aies des entrées Texte ou bien que tu récupères des infos via les noms. Dans ce cas, je ne passe pas par l'outil de traduction mais je code spécifiquement.

Sur l'AssetStore, les outils de traduction se recherchent par le mot clé Localization.
j'avais utilisé SmartLocalization et il était très bien et facile à utiliser.

Pour le point 2, là je cède la place à plus avisé.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
KassaK
Messages : 51
Inscription : 29 Sep 2014 14:27

Re: Multilangue et sécurisation API

Message par KassaK » 18 Oct 2017 12:19

Je n'avais pas pensé à checker sur le store, mais j'essaye d'éviter en général de taper dedans (bon si ya un package à 5$ qui fait le taf je vais pas cracher dessus non plus, je vais jeter un oeil).

Mais concrètement, pour un simple UI Text avec écrit dedans : "Bonjour", vous faites quoi ? Vous injectez le texte depuis un script et du coup vous pouvez récupérer la trad depuis un json, un csv ou autre, ou il y a une astuce pour le gérer directement dans unity ?

Edit : Ok, de ce que je vois sur le store, ils attachent sur chaque GameObject qui a besoin d'être traduit un script qui va check le Component Text, et vérifier si la valeur correspond à une clé, si oui il remplace le Text.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6206
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Multilangue et sécurisation API

Message par boubouk50 » 18 Oct 2017 13:07

C'est ça, chaque Text qui a besoin d'une traduction possède un Component avec une clé qui référence une traduction générée depuis un outil éditeur (sous forme d'XML ou autre).
Ensuite, il y a un LangManager qui se charge de charger la bonne traduction en fonction de la langue dans le Text.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation


Wadison
Messages : 19
Inscription : 23 Sep 2017 22:31

Re: Multilangue et sécurisation API

Message par Wadison » 21 Oct 2017 20:29

Pour la sécurisation, fait comme tu as l'habitude, en te posant les même questions! Je ne vois ce qu'il peut t'amener à penser que c'est différent d'une application mobile?!

Répondre

Revenir vers « Unity le logiciel »