Forum du serveur Computercraft FR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

Programmes CC pour le serveur

Aller en bas

Programmes CC pour le serveur Empty Programmes CC pour le serveur

Message par Christophedlr34 Ven 1 Avr - 14:55

Bonjour à tous,

Je ne sais pas si je dois poster dans InSourcing ou OutSourcing, donc a voir avec Cedmeu. Je me disais que ça pourrait être bien que chacun partage le ou les programmes qu'il fait sur le serveur, avec les autres joueurs.

Le mieux serait d'avoir une section sur le forum dédiée à cela, afin de trouver facilement ce que l'on cherche, mais en attendant je programme de le faire au sein de ce topic.
Les codes devraient être donnés avec Pastebin bien entendu, afin de faciliter l'ajout sur nos computer/turtle via l'API pastebin fournis par CC.

Et j'inaugure cela avec mon premier programme, codé intégralement sur le serveur (directement au sein du computer lol) aujourd'hui : UNRsD3Rv
C'est une API pour la traduction de vos programmes.

Il suffit donc de télécharger le code (je conseil "translate" comme nom de fichier puisque c'est le nom que os.loadAPI nous fait utilisé ensuite, ca fait parlant je pense comme nom au sein d'un programme ^^), et vous l'utilisez dans vos programmes.

Son fonctionnement réside dans deux fonctions : open et tr. Pas de close, a voir à terme s'il y a réellement besoin de faire un close du fichier de traduction ouvert (une fois le prog terminé, normalement les descripteurs de fichiers sont automatiquement fermés, donc a voir si c'est bien le cas Wink ).


Open


La méthode "open" de l'API permet de vérifier l'existence du fichier de traduction indiqué. S'il existe, il est ouvert en lecture seulement et il renvoi "true", sinon il renvoi "false".

Le fichier de traduction, c'est à vous de choisir son nom, personnellement je conseil de hiérarchisé : répertoire lang pour les fichiers de langues, et comme nom : le programme, l'extension étant le code ISO (2 lettres) du pays de la langue (fr, en, us, es, de, ru, jp, ch...), mais ce n'est que mon conseil pour mieux s'y retrouver quand il y a plusieurs programmes au sein du même computer/même turtle.
L'API n'impose aucun nom, aucune hiérarchie ; a vous d'indiquer le nom donc.


tr


La méthode "tr" de l'API, permet d'effectuer la dite traduction. Elle demande deux paramètres : la chaîne à traduire et un texte par défaut si la traduction n'est pas trouvée.
Là encore rien n'est obligatoire, je sais que les utilisateurs de getText par exemple en C/C++/PHP/Java/... sont familiers de l'utilisation du texte qui est a traduire, d'autres préfèrent (comme moi) des mots-clés (souvent en majuscules pour montrer que c'est à traduire, cela veut donc rien dire dans le code). Perso je conseil la seconde solution : votre code est plus court et plus lisible, et si vous choisissez bien vos mots clés (MSG_CONNECTION_FAILED par exemple est explique et indique bien un message de connexion échouée par exemple Wink ), vous comprendrez de suite de quoi vous parler.

Là encore, ce ne sont que des conseils de ma part pour vous faire gagner du temps et rendre votre code plus lisible avec l'écran petit du computer/de la turtle.

La méthode "tr", va donc aller chercher dans le fichier de traduction que vous avez ouvert juste avant, si elle trouve la chaîne à traduire et une traduction (si présente mais pas de traduction, pour lui c'est comme si ça n'existe pas). Si c'est le cas, elle renvoi la chaîne traduite, sinon c'est le texte par défaut qui est retourné.

Certains qui feraient du GUI en C++, auront sans doute remarqué la syntaxe de Qt en matière de traduction, oui j'en ai repris le principe : méthode tr pour translate et un texte par défaut si pas de traduction.


Syntaxe du fichier de traduction


Le fichier de traduction doit avoir une syntaxe, rassurez-vous rien de compliquer, c'est basé sur les fichiers .INI mais sans les sections.
Ainsi nous avons :
CHAINE_A_TRADUIRE = traduction de la chaîne

C'est tout bête, une traduction par ligne, avec le principe de clé = valeur, la clé étant la chaîne à traduire (d'où l'idée des mots-clés ^^).
Le programme regarde donc chacune des lignes à la recherche de la chaîne à traduire indiquée, dès que la ligne est trouvée, il est récupère la valeur et nous l'a renvoi sinon il continue sa recherche jusqu'au bout. S'il trouve pas, nous avons alors le texte par défaut.


Je me suis dit que cela pourrait en intéresser certains.

Je suis ouvert à toutes les remarques bien entendu.

Christophedlr34

Messages : 69
Date d'inscription : 30/03/2016

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum