Comment rendre un script indépendant des paramètres de langue?salut!
J'ai un script qui donne le résultat correct si JMP 15 est réglé sur l'anglais et qu'il donne des erreurs dans un autre paramètre de langue.
Ce que j'utilise dans le script est
:Name( "Mean(Something)" )
et c'est la cause du problème, parce que dans la langue allemande par exemple, la colonne à laquelle je veux faire référence est "Mittelwert (quelque chose)". Il en va de même pour "Std Dev" etc. qui sont également nommés différemment dans d'autres paramètres de langue. Les colonnes auxquelles je voudrais faire référence sont les résultats des colonnes récapitulatives d'un tableau.
Comment rendre un skript indépendant des paramètres de langue lorsqu'il s'agit de référencer des colonnes de résumé comme celle-ci? Existe-t-il une bonne pratique?
AutreScriptingRe: Comment rendre un script indépendant des paramètres de langue?En ce qui concerne les `` bonnes pratiques '', je jetterais certainement un coup d'œil à le document Discovery de @hecht_jmp .
Re: Comment rendre un script indépendant des paramètres de langue?Ian, merci pour le cri! Mais je pense que la question de Robbb porte davantage sur la façon de faire référence à une colonne générée dans une table de données dont le nom est localisé.
Robbb, ce script:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_summ = dt << Summary(
Group( :age ),
Mean( :height ),
Freq( "None" ),
Weight( "None" )
);
Column( dt_summ, "Mean(height)" )[1];
fonctionne pour moi que j'utilise JMP en anglais ou en allemand. Dans les deux cas, il imprime 58.125 dans le journal. Cela fonctionne car la colonne "Mittelwert (hauteur)" est créée avec un alias de nom "Moyenne (hauteur)". Vous pouvez voir ceci si vous copiez le script de table et le collez dans une nouvelle fenêtre de script:
New Column( ["de" => "Mittelwert(height)", "en" => "Mean(height)"],
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 1 ),<BR />// etc.
Lors de la recherche de la colonne par nom, JMP examine à la fois le nom de la locale actuelle et l'alias anglais, à la recherche d'une correspondance.
Pouvez-vous nous donner plus de détails sur ce qui échoue pour vous?
Re: Comment rendre un script indépendant des paramètres de langue?Sûr! Merci pour votre réponse. C'est ce que je pensais. Je me souviens quand j'ai pensé "Oh wow, JMP analyse et traduit même automatiquement les noms de colonnes de résumé."
Mais dans mon cas, cela ne fonctionne pas. Je l'ai décomposé. Veuillez essayer ceci:
DT = Open( "$SAMPLE_DATA/Big Class.jmp" );
Table1 = DT << Tabulate(
Add Table(
Column Table( Analysis Columns( :height ), Statistics( <STRONG>Mean</STRONG> ) ), // Here another language than English is not a problem.
Row Table( Grouping Columns( :age ) )
)
);
DT2 = Table1 << Make Into Data Table;
DT2 << New Column( "Stupid Formula",
Formula(
<STRONG>:Name( "Mean(height)" )</STRONG> + 1 // Here it is a problem!
)
);
Anglais
Script de lancement
La colonne "Formule stupide" est remplie.
Changé en allemand
JMP 15.2.1 redémarré
Script de lancement
La colonne "Formule stupide" n'est pas remplie.
Re: Comment rendre un script indépendant des paramètres de langue?PS: Votre exemple ne fonctionne pas pour moi. Colonne (dt_summ, "Moyenne (hauteur)") [1]; renvoie "colonne introuvable". Avez-vous redémarré JMP après avoir changé la langue?
Mon script de table de votre script ressemble à ci-dessous. Comme vous le voyez, il n'y a pas d'alias pour la colonne moyenne. Mais pour N lignes, il y en a. Pourquoi donc?
New Table( "Big Class Nach (age)",
Add Rows( 6 ),
New Script(
["de" => "Quelle", "en" => "Source"],
Data Table( "Big Class" ) << Summary(
Group( :age ),
Mean( :height ),
Freq( "Keine" ),
Weight( "Keine" )
)
),
New Column(
["en" => "age", "ja" => "年齢", "x-id" => "S_age_Col", "zh-CN" => "年龄"],
Numeric,
"Ordinal",
Format( "Fixed Dec", 5, 0 ),
Set Property( "Notes", "Explore data adventurously" ),
Lock( 1 )
),
New Column( ["de" => "Anzahl Zeilen", "en" => "N Rows"],
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 0 ),
Lock( 1 )
),
New Column( "Mittelwert(height)",
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 1 ),
Set Selected,
Lock( 1 )
)
)
Re: Comment rendre un script indépendant des paramètres de langue?La stratégie dépend de plusieurs choses, je ne sais pas encore.
Donc, si le tableau est créé par votre script, vous connaissez peut-être déjà le bon nom et vous pouvez agir en conséquence.
Vous pouvez également tester la bonne langue et avertir l'utilisateur, ou utiliser ces informations dans le script suivant.
Si la table existe au démarrage de votre script, et si elle a toujours la même structure, vous pouvez la référencer par la position de la colonne, c'est-à-dire colonne (dt, 3) pour la troisième colonne.
Etc.
Re: Comment rendre un script indépendant des paramètres de langue?Robbb, j'exécute ceci sur un Mac donc je dois redémarrer JMP pour changer de langue.
J'ai pu reproduire votre problème avec Tabulate. Il ne génère pas correctement les alias de nom de colonne. Je vais signaler cela comme un bug. En attendant, vous pouvez contourner le problème comme suit:
mean height = Match(System Service(Get Language Code),
"de", "Mittelwert(height)",<BR /> // Add more language cases here as needed
"Mean(height)"
);
DT = Open( "$SAMPLE_DATA/Big Class.jmp" );
Table1 = DT << Tabulate(
Add Table(
Column Table( Analysis Columns( :height ), Statistics( Mean ) ), // Here another language than English is not a problem.
Row Table( Grouping Columns( :age ) )
)
);
DT2 = Table1 << Make Into Data Table;
Eval(Parse(Substitute("\[
DT2 << New Column( "Stupid Formula",
Formula(
:Name("^MEAN HEIGHT") + 1 // Here it is a problem!
)
)]\",
"^MEAN HEIGHT", mean height)));
Ce n'est pas joli, mais cela vous permettra de surmonter cette bosse.
Quant à l'exemple de résumé, je devrai examiner pourquoi cela fonctionne pour moi et pas pour vous. Peut-être n'a-t-il été corrigé que récemment.
Re: Comment rendre un script indépendant des paramètres de langue?Merci! Oui, tu as raison, c'est loin d'être joli. Mais c'est suffisant dans mon cas. J'utiliserai le code de langue dans certaines instructions if.
Je suis toujours curieux de savoir ce que vous découvrirez sur l'exemple récapitulatif.