Page 1 of 1

le multilingue possible, pb : fonction publique et privé

Unread postPosted: 08 Nov 2009, 08:58
by ethan974
Je suis tombé sur une fonction "intéressante", permettant de connaitre la langue de la calculatrice ( getLangInfo() )
celle-ci renvoyant un string, on peut ainsi, suivant la réponse, orienté par exemple les erreurs dans tel ou tel langue,
mon problème ,pour adapter une version multilingue, est d'adapté le nom des fonctions publiques
afin qu'il n'y est pas de répétition de fonctions dans le catalogue,

l'idée de base serait :
*chaque langue a sa fonction publique
*masquer le nom des fonctions non utiliser dans le catalogue suivant la langue (j'espere que je suis claire :#roll#: )

A votre avis est -ce possible?

sinon ce serait un nom en anglais de base pour les foncions types(du coup ca évite les problèmes :#langue#: )

Re: le multilingue possible, pb : fonction publique et privé

Unread postPosted: 08 Nov 2009, 13:41
by Levak
Salut,
Pour répondre à ta première question, il me semble plus facile de créer un programme qui va créer les autres programmes.
Théoriquement c'est possible mais avec l'expérience on se rend compte que plus la taille d'un programme est importante et plus la TI-nSpire est ralentie lorsque l'on édite cette même fonction. Donc si tous tes programmes ne sont pas "longs", il t'es alors possible de faire pour chaque programme un "contenant" intelligent qui va définir les programmes pour chaque langue.

Ex :

_____________________________________________________
Define Install()=Prog
# lang:=getlangInfo()
#install_prog_a( lang)
#install_prog_b( lang)
#install_prog_c( lang)
#etc...
# DelVar install_prog_a, install_prog_b, install_prog_c, etc...
EndProg
_____________________________________________________

_____________________________________________________
Define install_prog_a( lang)=Prog
#If lang="fr"
##Define prog_a(var)=Prog
###Disp "Ce programme a été installé en français"
##EndProg
#ElseIf lang="en"
##Define prog_a(var)=Prog
###Disp "This program has been installed in english"
##EndProg
#Else
##Define prog_a(var)=Prog
###Disp "Default settings installed : english"
##EndProg
#EndIf
EndProg

_____________________________________________________
Ne pas prendre en compte les # comme des instructions mais comme des indentations
J'ai mis des couleurs, c'est plus facile pour comprendre ^^

Vala, mais sinon c'est peut-être beaucoup plus facile de le faire en une seule langue bien sûr :):

@+

Re: le multilingue possible, pb : fonction publique et privé

Unread postPosted: 08 Nov 2009, 15:39
by ethan974
J'avais pas du tout pensé, à un nettoyeur de paquet,
à lancer après la copie de la librairie sur la calto

thx

v tester on verra après :p

Re: le multilingue possible, pb : fonction publique et privé

Unread postPosted: 08 Nov 2009, 16:51
by Levak
Salut,
Je viens aussi de penser que tu peut faire un système de langue comme celui de PunBB (php)
En fait il y a des fichiers langues mis en librairie, il faudrait aussi explorer comme l'adapter de manière simple sur nSpire.

en gros en php c'est ça :
echo $lang_common['Warning']
echo $lang_common['Carefull']

et le fichier common.php dans le dossier de langues anglais :
$lang_common= array(
Warning = 'Warning!',
Carefull = 'Carefull!'
)


et le fichier common.php dans le dossier de langues français:
$lang_common= array(
Warning = 'Avertissement !!',
Carefull = 'Attention !'
)