Installer un composant suivant la langue d'installation
- deratiseur
- Rakshasa
- Messages : 3841
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
Installer un composant suivant la langue d'installation
.
Est ce que c'est possible ?
Genre :
Installer A si la langue choisie est "Anglais".
installer B si la langue choisie est "Allemand".
Genre :
Installer A si la langue choisie est "Anglais".
installer B si la langue choisie est "Allemand".
-
- Adepte de Grondemarteau
- Berserker ogre
- Messages : 1035
- Enregistré le : dim. 25 juil. 2004, 21:28
- Contact :
- Statut : En ligne
.
A tester
Code : Tout sélectionner
REQUIRE_PREDICATE ("%LANGUAGE%" STRING_EQUAL_CASE ~english~) @9999 // Langue non supportée
- deratiseur
- Rakshasa
- Messages : 3841
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
En fait je pense que ça va être plus compliqué que ça. La condition de langue n'est pas appliqué au mod en lui même mais à un autre mod.
Précisément :
Copier l'objet X
SI le mod machintruc à été installé en français, ALORS copier l'objet Y.
Peut être est-ce faisable en checkant le nom d'un objet. Par exemple :
SI "Z_ModdIt.itm" a pour nom "Note du maître" (CASE_SENSITIVE) alors copier l’objet Y.
Précisément :
Copier l'objet X
SI le mod machintruc à été installé en français, ALORS copier l'objet Y.
Peut être est-ce faisable en checkant le nom d'un objet. Par exemple :
SI "Z_ModdIt.itm" a pour nom "Note du maître" (CASE_SENSITIVE) alors copier l’objet Y.
Modifié en dernier par deratiseur le lun. 16 déc. 2024, 19:48, modifié 1 fois.
-
- Statut : Hors ligne
.
Tu as un sujet dans le même genre ici.
J'ai proposé un workaround de débutant dans le deuxième post donc n'y prête pas trop attention mais regarde la réponse d'argent77 juste après, il lit le language directement dans le weidu.log.
C'est encore un peu trop complexe pour moi, à voir si ça te donne une piste.
J'ai proposé un workaround de débutant dans le deuxième post donc n'y prête pas trop attention mais regarde la réponse d'argent77 juste après, il lit le language directement dans le weidu.log.
C'est encore un peu trop complexe pour moi, à voir si ça te donne une piste.
Modifié en dernier par JohnBob le lun. 16 déc. 2024, 20:10, modifié 3 fois.
- deratiseur
- Rakshasa
- Messages : 3841
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Merci pour le lien. J'ai posé mon problème directement dans le sujet, comme ça parle d'un requête similaire peut être que j'aurais une réponse. Parce que j'avoue que si le script d'argent77 lit le langage installé, comment l'utiliser pour "IF "le script confirme que c'est installé en français" ALORS.....", ça me dépasse.
-
- Adepte de Grondemarteau
- Berserker ogre
- Messages : 1035
- Enregistré le : dim. 25 juil. 2004, 21:28
- Contact :
- Statut : En ligne
.
Le plus simple, je pense, est de faire un seul composant quelle que soit la langue.
Et dans le composant, tu effectues ta vérification avec la fonction d'Argent77 pour toutes les langues que tu veux supporter.
Et dans le composant, tu effectues ta vérification avec la fonction d'Argent77 pour toutes les langues que tu veux supporter.
-
- Statut : Hors ligne
.
Code : Tout sélectionner
REQUIRE_PREDICATE ( MOD_IS_INSTALLED ~LeModEnQuestion.tp2~ ~X~ )
Code : Tout sélectionner
// Language folder names listed in the order of LANGUAGE definitions in the mod.
ACTION_DEFINE_ARRAY languages BEGIN
"french"
END
// Fetching language index from the WeiDU.log
OUTER_SET language_number = "-1"
COPY "WeiDU.log" "WeiDU.log"
REPLACE_EVALUATE CASE_INSENSITIVE
"^~.*LeModEnQuestion\.tp2~ #\([0-9]+\) #5\b"
BEGIN
PATCH_IF (IS_AN_INT "MATCH1") BEGIN
SET language_number = MATCH1
END
END
"%MATCH0%"
BUT_ONLY IF_EXISTS
Code : Tout sélectionner
ACTION_IF (language_number >= 0) BEGIN
COPY ~TonMod/bam/Dref.bam~ ~override~
END ELSE BEGIN
COPY ~TonMod/bam/Dreg.bam~ ~override~
END
Modifié en dernier par JohnBob le lun. 16 déc. 2024, 21:16, modifié 4 fois.
-
- Araignée géante
- Messages : 416
- Enregistré le : sam. 21 janv. 2012, 14:36
- Statut : Hors ligne
.
Il est important que la liste `languages` reflète l'ordre des langues possibles du mod. Sinon ça ne fonctionnera pas.
Elle permet d'associer une langue à un chiffre.
Le premier bloc sert à savoir quel chiffre a été choisi, ce chiffre est stocké dans `language_number`.
Grâce à ce chiffre et la liste `languages` on va pouvoir retrouver la langue.
Le bloc peut être réutilisé tel quel.
Pour la fin, il faut vérifier que la langue choisie est le français :
Mon WeiDU étant approximatif, il y a sans doute des trucs à corriger mais la logique me paraît bonne.
Elle permet d'associer une langue à un chiffre.
Code : Tout sélectionner
ACTION_DEFINE_ARRAY languages BEGIN
"english" "german" "russian" "french" "polish"
END
Grâce à ce chiffre et la liste `languages` on va pouvoir retrouver la langue.
Le bloc peut être réutilisé tel quel.
Pour la fin, il faut vérifier que la langue choisie est le français :
Code : Tout sélectionner
ACTION_IF (language_number >= 0) AND ($languages("%language_number%") STRING_EQUAL "french") BEGIN
COPY ~TonMod/bam/Dref.bam~ ~override~
END ELSE BEGIN
COPY ~TonMod/bam/Dreg.bam~ ~override~
END
Modifié en dernier par rivvers le mar. 17 déc. 2024, 07:42, modifié 2 fois.
- deratiseur
- Rakshasa
- Messages : 3841
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Merci d'essayer de m'aider. Ça refuse de marcher.
Le mod "Moddie the Vixxen" propose un compagnon renarde. Mais comme à part le texte tout correspond à un loup, le texte en français se référence à une louve. Donc pour installer d'autres portrait, j'ai prévu une renarde et une louve, et je tente d'installer les portraits de renards, sauf si c'est installation en français, dans ce cas installation du portait de louve.
le code que j'ai tenté d'après vos remarques :
Mais c'est toujours le renard qui est copié. je ne suis jamais arrivé à faire copier le loup.
Le mod "Moddie the Vixxen" propose un compagnon renarde. Mais comme à part le texte tout correspond à un loup, le texte en français se référence à une louve. Donc pour installer d'autres portrait, j'ai prévu une renarde et une louve, et je tente d'installer les portraits de renards, sauf si c'est installation en français, dans ce cas installation du portait de louve.
le code que j'ai tenté d'après vos remarques :
Code : Tout sélectionner
BEGIN @4 DESIGNATED 4 LABEL Px_MTWK_Moddie1
REQUIRE_COMPONENT ~FoxMonster.tp2~ 0 @5000
ACTION_DEFINE_ARRAY languages BEGIN
"english" "german" "russian" "french"
END
OUTER_SET language_number = "-1"
COPY "WeiDU.log" "WeiDU.log"
REPLACE_EVALUATE CASE_INSENSITIVE
"^~.*FoxMonster.tp2~ #\([0-9]+\) #5\b"
BEGIN
PATCH_IF (IS_AN_INT "MATCH1") BEGIN
SET language_number = MATCH1
END
END
"%MATCH0%"
BUT_ONLY IF_EXISTS
ACTION_IF (language_number >= 0) AND ($languages("%language_number%") STRING_EQUAL "french") BEGIN
ACTION_IF GAME_IS ~BG2 TOB BGT~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/BG2/Loup~ ~override~
END
ACTION_IF GAME_IS ~BG2EE EET~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/EE/loup~ ~override~
END
END ELSE BEGIN
ACTION_IF GAME_IS ~BG2 TOB BGT~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/BG2/Renard~ ~override~
END
ACTION_IF GAME_IS ~BG2EE EET~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/EE/Renard~ ~override~
END
END
-
- Statut : Hors ligne
.
Rien de certain...
Devrait avoir un \ avant .tp2 :
C'est bien possible que le deuxième bloc overwrite tout pour les EE :
Il devrait avoir un ELSE BEGIN supplémentaire :
Code : Tout sélectionner
"^~.*FoxMonster.tp2~ #\([0-9]+\) #5\b"
Code : Tout sélectionner
"^~.*LeModEnQuestion\.tp2~ #\([0-9]+\) #5\b"
Code : Tout sélectionner
END ELSE BEGIN
ACTION_IF GAME_IS ~BG2 TOB BGT~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/BG2/Renard~ ~override~
END
ACTION_IF GAME_IS ~BG2EE EET~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/EE/Renard~ ~override~
END
END
Code : Tout sélectionner
END ELSE BEGIN
ACTION_IF GAME_IS ~BG2 TOB BGT~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/BG2/Renard~ ~override~
END ELSE BEGIN
ACTION_IF GAME_IS ~BG2EE EET~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/EE/Renard~ ~override~
END
END
-
- Adepte de Grondemarteau
- Berserker ogre
- Messages : 1035
- Enregistré le : dim. 25 juil. 2004, 21:28
- Contact :
- Statut : En ligne
.
Tu peux aussi vérifier la valeur de tes variables avec un PRINT, et t'assurer que toutes ont les valeurs attendues.
Par exemple comme ceci
Je te suggère aussi de bien indenter ton code pour une lisibilité plus aisée.
Par exemple comme ceci
Code : Tout sélectionner
OUTER_SPRINT language_name $languages("%language_number%")
PRINT "language_number => %language_number% => %language_name %"
Code : Tout sélectionner
ACTION_IF (language_number >= 0) AND ($languages("%language_number%") STRING_EQUAL "french") BEGIN
ACTION_IF GAME_IS ~BG2 TOB BGT~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/BG2/Loup~ ~override~
END
ACTION_IF GAME_IS ~BG2EE EET~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/EE/loup~ ~override~
END
END ELSE BEGIN
ACTION_IF GAME_IS ~BG2 TOB BGT~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/BG2/Renard~ ~override~
END
ACTION_IF GAME_IS ~BG2EE EET~ THEN BEGIN
COPY ~Derats_Mods_Tweaker/Moddie/EE/Renard~ ~override~
END
END
- deratiseur
- Rakshasa
- Messages : 3841
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Toujours pas. Même avec ton ELSE en plus 
C'est con, c'est tout ce qui bloque la sortie de mon nouveau mod. Comme en plus mes portaits de renard/loup ne collent pas vraiment au standard de BG2, je me demande si je ne vais pas juste zapper ce composant.

C'est con, c'est tout ce qui bloque la sortie de mon nouveau mod. Comme en plus mes portaits de renard/loup ne collent pas vraiment au standard de BG2, je me demande si je ne vais pas juste zapper ce composant.
- deratiseur
- Rakshasa
- Messages : 3841
- Enregistré le : mer. 05 déc. 2007, 18:35
- Localisation : Gap, Hautes alpes
- Statut : Hors ligne
.
Ok Selphira. Alors ça doit buguer dans le code, parce que voilà ce que rend le PRINT : language_number => -1 => %language_name %
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités