Gérer plusieurs langues dans votre jeu
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
-
- Messages : 18
- Inscription : 08 Août 2015 15:33
Re: Gérer plusieurs langues dans votre jeu
Bon j'ai du mal a trouver comment dans un menu en sélectionnant la langue souhaité appliquer ce changement de langue!!
Pouvez vous m'indiquer la voie a prendre?
merci.
Pouvez vous m'indiquer la voie a prendre?
merci.
Re: Gérer plusieurs langues dans votre jeu
Bonjour,
L'exemple sur lequel tu te base (cf les codes des messages précédent) tient compte du langage définis, comme tu l'as vu, au niveau du système d'exploitation ('string lang = Application.systemLanguage.ToString();').
Si dans ton cas tu souhaite en passer par une sélection manuelle, tu met sur pied un menu (au démarrage de ton jeu par exemple), et en fonction de la langue sélectionnée, alors tu de ton jeu, alors schématiquement tu fera un truc du genre: string lang = menuSelectlangage;
L'exemple sur lequel tu te base (cf les codes des messages précédent) tient compte du langage définis, comme tu l'as vu, au niveau du système d'exploitation ('string lang = Application.systemLanguage.ToString();').
Si dans ton cas tu souhaite en passer par une sélection manuelle, tu met sur pied un menu (au démarrage de ton jeu par exemple), et en fonction de la langue sélectionnée, alors tu de ton jeu, alors schématiquement tu fera un truc du genre: string lang = menuSelectlangage;
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 18
- Inscription : 08 Août 2015 15:33
Re: Gérer plusieurs langues dans votre jeu
j'ai compris , mais je cherche a me compliquer la vie
ok donc au démarrage ca va chercher dans le systeme ma langue utilisé, mais par la suite comment peut t'on manuellement modifier la langue?
ok donc au démarrage ca va chercher dans le systeme ma langue utilisé, mais par la suite comment peut t'on manuellement modifier la langue?
Re: Gérer plusieurs langues dans votre jeu
Tu veux dire durant le jeu ? ou laisser le choix au player dans le menu start ?archibal11 a écrit : mais par la suite comment peut t'on manuellement modifier la langue?
Dans tous les cas, il suffit de modifier légèrement le fichier Lang, pour que l'entré ne se fasse pas sur le 'Application.systemLanguage' mais sur une entrée d'un menu par exemple.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 18
- Inscription : 08 Août 2015 15:33
Re: Gérer plusieurs langues dans votre jeu
oui durant le jeu , aller dans un menu paramètre et changer la langue.
Dans mon cas il faudrait rappeler la fonction awake du fichier Lang ( a partir d'une autre scène )en lui envoyant comme info la langue souhaité!
cela ne me dérange pas qu'au 1er lancement que cela se fasse sur le 'Application.systemLanguage' mais aprés je ne vois pas comment modifier le fichier Lang pour pouvoir rechanger la langue manuellement pendant le jeu.Dans tous les cas, il suffit de modifier légèrement le fichier Lang, pour que l'entré ne se fasse pas sur le 'Application.systemLanguage' mais sur une entrée d'un menu par exemple.
Dans mon cas il faudrait rappeler la fonction awake du fichier Lang ( a partir d'une autre scène )en lui envoyant comme info la langue souhaité!
-
- Messages : 18
- Inscription : 08 Août 2015 15:33
Re: Gérer plusieurs langues dans votre jeu
dans mon fichier Lang j'ai rajouté une copie de Void Awake() tel que :
et dans ma scene du menulangage
la ligne mylang = GameObject.Find("Cube").GetComponent<Lang>(); me donne l'erreur :
NullReferenceException: Object reference not set to an instance of an object
Dans la scene ou j'affiche le menulangage j'ai rajouté l'objet Cube qui recoit le script Lang
au lancement j'ai le message
[Singleton] Using instance already created: Cube
UnityEngine.Debug:Log(Object)
suivi de
NullReferenceException: Object reference not set to an instance of an object
ou se trouve le ou les erreurs?
Code : Tout sélectionner
public void essai(string llangue)
{
string lang = llangue;
//menulanguage = GameObject.Find ("Main Camera").GetComponent<menulanguage>();
string jsonString = string.Empty;
if (lang == "French")
print ("french");
jsonString = Resources.Load<TextAsset>("lang.fr").text;
if (lang == "English")
jsonString = Resources.Load<TextAsset>("lang.en").text;
JSONNode json = JSON.Parse(jsonString);
int size = json.Count;
_gameTexts = new Dictionary<string, string>(size);
JSONArray array;
for (int i = 0; i < size; i++)
{
array = json[i].AsArray;
_gameTexts.Add(array[0].Value, array[1].Value);
}
}
et dans ma scene du menulangage
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
//using SimpleJSON;
public class menulanguage : MonoBehaviour
{
Lang mylang;
int submitPressed = 0;
public string lang ;
private Rect _boxRect;
private Rect _areaRect;
void Start()
{
_boxRect = new Rect(
Screen.width / 2 - 125,
Screen.height / 2 - 75,
250,
150);
_areaRect = new Rect(
_boxRect.x + 5,
_boxRect.y + 40,
_boxRect.width - 10,
_boxRect.height - 10);
}
void OnGUI()
{
GUI.Box (_boxRect, Lang.Get ("game.language"));
GUILayout.BeginArea (_areaRect);
GUILayout.BeginVertical ();
if (GUILayout.Button (Lang.Get ("game.LangFR"))) {
submitPressed = 1;
}
GUILayout.Space (10);
if (GUILayout.Button (Lang.Get ("game.LangEN"))) {
submitPressed = 2;
}
GUILayout.Space (10);
if (GUILayout.Button (Lang.Get ("game.backsetting"))) {
submitPressed = 3;
}
GUILayout.Space (10);
GUILayout.EndHorizontal ();
GUILayout.EndArea ();
switch (submitPressed) {
case 1:
lang = "French";
mylang = GameObject.Find("Cube").GetComponent<Lang>();
mylang.essai(lang);
//Application.LoadLevel ("mainsettings");
break;
case 2:
lang = "English";
Application.LoadLevel ("mainsettings");
break;
case 3:
Application.LoadLevel ("mainsettings");
break;
}
}
}
NullReferenceException: Object reference not set to an instance of an object
Dans la scene ou j'affiche le menulangage j'ai rajouté l'objet Cube qui recoit le script Lang
au lancement j'ai le message
[Singleton] Using instance already created: Cube
UnityEngine.Debug:Log(Object)
suivi de
NullReferenceException: Object reference not set to an instance of an object
ou se trouve le ou les erreurs?
Re: Gérer plusieurs langues dans votre jeu
Attention, Lang est un singleton, donc il ne doit pas faire l'objet d'une instanciation.archibal11 a écrit : la ligne mylang = GameObject.Find("Cube").GetComponent<Lang>(); me donne l'erreur :
NullReferenceException: Object reference not set to an instance of an object
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 18
- Inscription : 08 Août 2015 15:33
Re: Gérer plusieurs langues dans votre jeu
excuse moi je suis un novice,; veux tu dires que Lang ne doit pas etre collé a un objet?
comment puis je m'y prendre pour récupérer la fonction essai du script Lang?
comment puis je m'y prendre pour récupérer la fonction essai du script Lang?
Re: Gérer plusieurs langues dans votre jeu
Dans ton cas tu n'as pas à attacher Lang à un GameObject.
Tu sembles mélanger en parallèle de Lang, une tentative d'instance perso, c'est là aussi que cela coince. Pourquoi ne pas modifier le fichier Lang lui même, qui est bien là pour gérer les différents choix de langues (genre ajouter une fonction ChangeLanguage(string language) ).
Après, il faut un petit peu regarder du coté de l'apprentissage du C#, car au point ou tu en est, tu va vite décrocher, et tu auras bien du mal à avancer (sans que quelqu'un le fasse pour toi du moins)
Tu sembles mélanger en parallèle de Lang, une tentative d'instance perso, c'est là aussi que cela coince. Pourquoi ne pas modifier le fichier Lang lui même, qui est bien là pour gérer les différents choix de langues (genre ajouter une fonction ChangeLanguage(string language) ).
Après, il faut un petit peu regarder du coté de l'apprentissage du C#, car au point ou tu en est, tu va vite décrocher, et tu auras bien du mal à avancer (sans que quelqu'un le fasse pour toi du moins)
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
-
- Messages : 18
- Inscription : 08 Août 2015 15:33
Re: Gérer plusieurs langues dans votre jeu
oui c'est vrais je vais trop vite,je recupére des bout de code et j'essaye de comprendre comment ca marche afin de pouvoir par la suite les réutiliser a ma sauce..
Un minimum est quand meme nécessaire, je vais donc revoir plus approfondissement les bases.
Merci tout de meme de tes réponses.
Un minimum est quand meme nécessaire, je vais donc revoir plus approfondissement les bases.
Merci tout de meme de tes réponses.