Skip to content

Commit 1130014

Browse files
pnrobinsonleokim-l
andauthored
Adding pilot French translation (#85)
* Adding pilot French translation * polishing French translation * corrected french preamble and bug --------- Co-authored-by: Leonardo macOS <leonardochimirri94@gmail.com>
1 parent 034d60e commit 1130014

File tree

9 files changed

+585
-0
lines changed

9 files changed

+585
-0
lines changed

src/main/java/org/monarchinitiative/phenopacket2prompt/cmd/GbtTranslateBatchCommand.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ public Integer call() {
123123
Utility.writeMissingTranslations(chinese.getMissingTranslations(),
124124
missingTranslationsPath, "chinese.txt");
125125

126+
// french
127+
PromptGenerator french = utility.french();
128+
Utility.outputPromptsInternational(ppktFiles,"fr", french, outdirname);
129+
Utility.writeMissingTranslations(french.getMissingTranslations(),
130+
missingTranslationsPath, "french.txt");
131+
126132
// Japanese
127133
// Note official two-letter language code for Japanese is JP, but our files have JA
128134
PromptGenerator japanese = utility.japanese();

src/main/java/org/monarchinitiative/phenopacket2prompt/cmd/TestDriveCommand.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,10 +336,16 @@ public Integer call() {
336336
sb.append("Spanish\n");
337337
sb.append(HEADER_LINE);
338338
sb.append(spText);
339+
// Dutch
339340
String nlText = createPrompts(individualList, utility.dutch());
340341
sb.append("Dutch\n");
341342
sb.append(HEADER_LINE);
342343
sb.append(nlText);
344+
// French
345+
String frText = createPrompts(individualList, utility.french());
346+
sb.append("French\n");
347+
sb.append(HEADER_LINE);
348+
sb.append(frText);
343349
// GERMAN
344350
PromptGenerator german = utility.german();
345351
String deText = createPrompts(individualList, german);

src/main/java/org/monarchinitiative/phenopacket2prompt/cmd/Utility.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ public PromptGenerator italian() {
6262
return PromptGenerator.italian(internationalMap.get("it"));
6363
}
6464

65+
public PromptGenerator french() { return PromptGenerator.french(internationalMap.get("fr")); }
66+
6567
public PromptGenerator chinese() {
6668
return PromptGenerator.chinese(internationalMap.get("zh"));
6769
}

src/main/java/org/monarchinitiative/phenopacket2prompt/output/PromptGenerator.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import org.monarchinitiative.phenopacket2prompt.output.impl.czech.CzechPromptGenerator;
1010
import org.monarchinitiative.phenopacket2prompt.output.impl.czech.PpktPhenotypicFeatureCzech;
1111
import org.monarchinitiative.phenopacket2prompt.output.impl.english.EnglishPromptGenerator;
12+
import org.monarchinitiative.phenopacket2prompt.output.impl.french.FrenchPromptGenerator;
13+
import org.monarchinitiative.phenopacket2prompt.output.impl.french.PpktPhenotypicfeatureFrench;
1214
import org.monarchinitiative.phenopacket2prompt.output.impl.german.GermanPromptGenerator;
1315
import org.monarchinitiative.phenopacket2prompt.output.impl.german.PpktPhenotypicfeatureGerman;
1416
import org.monarchinitiative.phenopacket2prompt.output.impl.japanese.JapanesePromptGenerator;
@@ -63,6 +65,11 @@ static PromptGenerator dutch(HpInternational international) {
6365
return new DutchPromptGenerator(pfgen);
6466
}
6567

68+
static PromptGenerator french(HpInternational international) {
69+
PpktPhenotypicFeatureGenerator pfgen = new PpktPhenotypicfeatureFrench(international);
70+
return new FrenchPromptGenerator(pfgen);
71+
}
72+
6673
static PromptGenerator german(HpInternational international) {
6774
PpktPhenotypicFeatureGenerator pfgen = new PpktPhenotypicfeatureGerman(international);
6875
return new GermanPromptGenerator(pfgen);
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package org.monarchinitiative.phenopacket2prompt.output.impl.french;
2+
3+
import org.monarchinitiative.phenopacket2prompt.model.OntologyTerm;
4+
import org.monarchinitiative.phenopacket2prompt.model.PhenopacketAge;
5+
import org.monarchinitiative.phenopacket2prompt.model.PhenopacketSex;
6+
import org.monarchinitiative.phenopacket2prompt.model.PpktIndividual;
7+
import org.monarchinitiative.phenopacket2prompt.output.PPKtIndividualInfoGenerator;
8+
import org.monarchinitiative.phenopacket2prompt.output.PhenopacketTextGenerator;
9+
import org.monarchinitiative.phenopacket2prompt.output.PpktPhenotypicFeatureGenerator;
10+
import org.monarchinitiative.phenopacket2prompt.output.PromptGenerator;
11+
12+
import java.util.List;
13+
import java.util.Set;
14+
15+
public class FrenchPromptGenerator implements PromptGenerator {
16+
17+
18+
private final PPKtIndividualInfoGenerator ppktAgeSexGenerator;
19+
20+
private final PpktPhenotypicFeatureGenerator ppktPhenotypicFeatureGenerator;
21+
22+
private final PhenopacketTextGenerator ppktTextGenerator = new PhenopacketTextGenerator() {};
23+
24+
public FrenchPromptGenerator(PpktPhenotypicFeatureGenerator pfgen) {
25+
ppktAgeSexGenerator = new PpktIndividualFrench();
26+
this.ppktPhenotypicFeatureGenerator = pfgen;
27+
}
28+
29+
@Override
30+
public String queryHeader() {
31+
return ppktTextGenerator.LLM_PROMPT_HEADER("french");
32+
}
33+
34+
@Override
35+
public String queryFooter() {
36+
return ppktTextGenerator.LLM_PROMPT_FOOTER("french");
37+
}
38+
@Override
39+
public String getIndividualInformation(PpktIndividual ppktIndividual) {
40+
return this.ppktAgeSexGenerator.getIndividualDescription(ppktIndividual);
41+
}
42+
43+
@Override
44+
public String formatFeatures(List<OntologyTerm> ontologyTerms) {
45+
return ppktPhenotypicFeatureGenerator.formatFeatures(ontologyTerms);
46+
}
47+
48+
@Override
49+
public String getVignetteAtAge(PhenopacketAge page, PhenopacketSex psex, List<OntologyTerm> terms) {
50+
String ageString = this.ppktAgeSexGenerator.atAgeForVignette(page);
51+
String features = formatFeatures(terms);
52+
return String.format("%s, %s présentait les symptômes suivants %s", ageString, ppktAgeSexGenerator.heSheIndividual(psex), features);
53+
}
54+
55+
56+
57+
@Override
58+
public Set<String> getMissingTranslations() {
59+
return this.ppktPhenotypicFeatureGenerator.getMissingTranslations();
60+
}
61+
62+
63+
@Override
64+
public String getVignetteAtOnset(PpktIndividual individual){
65+
String person = switch (individual.getSex()) {
66+
case MALE -> "Il";
67+
case FEMALE -> "Elle";
68+
default -> "Le patient";
69+
};
70+
return this.ppktPhenotypicFeatureGenerator.featuresAtOnset(person, individual.getPhenotypicFeaturesAtOnset());
71+
}
72+
73+
}

0 commit comments

Comments
 (0)