Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ The general file structure for an extension is as follows:
- `assets/descriptions/description-<locale>.md` contains a brief description of the extension in the language specified by `<locale>`
- `contributions/` contains JSON files the platform uses to extend data structures for things like menus and settings. The JSON files are referenced from the manifest
- `public/` contains other static files that are copied into the build folder
- `test-data/` contains sample interlinear XML (e.g. `Interlinear_en_MAT.xml`) for development and tests
- `test-data/` contains sample Paratext 9 interlinear data for development and tests: `Pt9InterlinearProjectData.json` is the served payload the converter's tests read, and `test-data/pt9-projects/` holds whole Paratext 9 projects for testing an import by hand (see its [README](test-data/pt9-projects/README.md))
- `.github/` contains files to facilitate integration with GitHub
- `.github/workflows` contains [GitHub Actions](https://github.com/features/actions) workflows for automating various processes in this repo (e.g. **Test** and **Lint** on push/PR to main, release-prep, hotfix-\*; **Publish** and **Bump Versions** manual dispatch; **CodeQL** for security)
- `.github/assets/release-body.md` is the template for the body of [releases published using GitHub Actions](#publishing). The Publish workflow substitutes its version placeholders into a copy outside the repo, and that copy plus a generated changelog becomes the release body
Expand Down
10 changes: 10 additions & 0 deletions test-data/pt9-projects/PIA/51PHPPIA.SFM
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
\id PHP - PT9 Import A
\h PIA
\mt1 Philippians
\c 1
\p
\v 1 Wug blicket wug dax fep gorp.
\v 2 Tomo zav flib.
\v 3 Wugs daxes glorp zav flib.
\v 4 Zim zam zim zam kex.
\v 5 Nol pim tuk vex.
15 changes: 15 additions & 0 deletions test-data/pt9-projects/PIA/InterlinearSetup.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<InterlinearSetupList>
<InterlinearSetup type="BackTranslation" language="es">
<FontSize>12</FontSize>
<RightToLeft>false</RightToLeft>
<RelatedLanguages>false</RelatedLanguages>
<ExportOnApprove>false</ExportOnApprove>
</InterlinearSetup>
<InterlinearSetup type="Glossing" language="fr">
<FontSize>12</FontSize>
<RightToLeft>false</RightToLeft>
<RelatedLanguages>false</RelatedLanguages>
<ExportOnApprove>false</ExportOnApprove>
</InterlinearSetup>
</InterlinearSetupList>
47 changes: 47 additions & 0 deletions test-data/pt9-projects/PIA/Interlinear_es/Interlinear_es_PHP.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<InterlinearData GlossLanguage="es" BookId="PHP">
<Verses>
<item>
<string>PHP 1:1</string>
<VerseData Hash="pia-words-approved-hash">
<Cluster><Range Index="0" Length="3" /><Lexeme Id="Word:wug" GlossId="s-wug1" /></Cluster>
<Cluster><Range Index="4" Length="7" /><Lexeme Id="Word:blicket" GlossId="s-blicket" /></Cluster>
<Cluster><Range Index="12" Length="3" /><Lexeme Id="Word:wug" /></Cluster>
<Cluster><Range Index="16" Length="7" /><Lexeme Id="Phrase:dax fep" GlossId="s-daxfep" /></Cluster>
<Cluster><Range Index="24" Length="4" /><Lexeme Id="Word:gorp" GlossId="s-nonexistent" /></Cluster>
</VerseData>
</item>
<item>
<string>PHP 1:2</string>
<VerseData Hash="pia-approved-hash">
<Cluster><Range Index="0" Length="4" /><Lexeme Id="Word:tomo" GlossId="s-tomo" /><Excluded>true</Excluded></Cluster>
<Cluster><Range Index="5" Length="3" /><Lexeme Id="Word:zav" /></Cluster>
<Cluster><Range Index="9" Length="4" /><Lexeme Id="Word:flib" GlossId="s-flib" /></Cluster>
Comment thread
coderabbitai[bot] marked this conversation as resolved.
<Punctuation><Range Index="13" Length="1" /><BeforeText>.</BeforeText><AfterText>;</AfterText></Punctuation>
</VerseData>
</item>
<item>
<string>PHP 1:3</string>
<VerseData Hash="pia-parses-approved-hash">
<Cluster><Range Index="0" Length="4" /><Lexeme Id="Stem:wug" /><Lexeme Id="Suffix:s" /></Cluster>
<Cluster><Range Index="5" Length="5" /><Lexeme Id="Stem:dax" /><Lexeme Id="Suffix:es" /></Cluster>
<Cluster><Range Index="11" Length="5" /><Lexeme Id="Word:glorp" GlossId="s-glorp" /></Cluster>
<Cluster><Range Index="11" Length="5" /><Lexeme Id="Stem:glorp" /></Cluster>
</VerseData>
</item>
<item>
<string>PHP 1:4</string>
<VerseData Hash="pia-phrase-approved-hash">
<Cluster><Range Index="0" Length="7" /><Lexeme Id="Phrase:zim zam" GlossId="s-zimzam" /></Cluster>
<Cluster><Range Index="4" Length="7" /><Lexeme Id="Phrase:zam zim" GlossId="s-zamzim" /></Cluster>
<Cluster><Range Index="8" Length="7" /><Lexeme Id="Phrase:zim zam" GlossId="s-zimzam" /><Excluded>true</Excluded></Cluster>
</VerseData>
</item>
<item>
<string>PHP 1:5</string>
<VerseData Hash="pia-es-only-hash">
<Cluster><Range Index="0" Length="11" /><Lexeme Id="Phrase:nol pim tuk" GlossId="s-nolpimtuk" /></Cluster>
</VerseData>
</item>
</Verses>
</InterlinearData>
30 changes: 30 additions & 0 deletions test-data/pt9-projects/PIA/Interlinear_fr/Interlinear_fr_PHP.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<InterlinearData GlossLanguage="fr" BookId="PHP">
<Verses>
<item>
<string>PHP 1:1</string>
<VerseData Hash="pia-fr-words-approved-hash">
<Cluster><Range Index="0" Length="3" /><Lexeme Id="Word:wug" GlossId="s-wug1" /></Cluster>
<Cluster><Range Index="4" Length="7" /><Lexeme Id="Word:blicket" GlossId="s-blicket-fr" /></Cluster>
</VerseData>
</item>
<item>
<string>PHP 1:3</string>
<VerseData>
<Cluster><Range Index="5" Length="5" /><Lexeme Id="Stem:daxes" /></Cluster>
</VerseData>
</item>
<item>
<string>PHP 1:4</string>
<VerseData Hash="pia-fr-kex-approved-hash">
<Cluster><Range Index="16" Length="3" /><Lexeme Id="Stem:kex" /></Cluster>
</VerseData>
</item>
<item>
<string>PHP 1:5</string>
<VerseData>
<Cluster><Range Index="0" Length="11" /><Lexeme Id="Phrase:nol pim tuk" GlossId="s-nolpimtuk-fr" /></Cluster>
</VerseData>
</item>
</Verses>
</InterlinearData>
155 changes: 155 additions & 0 deletions test-data/pt9-projects/PIA/Lexicon.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="utf-8"?>
<Lexicon>
<Language>en</Language>
<FontName>Charis SIL</FontName>
<FontSize>12</FontSize>
<Analyses>
<item>
<string>flibs</string>
<ArrayOfLexeme>
<Lexeme Type="Stem" Form="flib" Homograph="1" />
<Lexeme Type="Suffix" Form="s" Homograph="1" />
</ArrayOfLexeme>
</item>
</Analyses>
<Entries>
<item>
<Lexeme Type="Word" Form="wug" Homograph="1" />
<Entry>
<Sense Id="s-wug1">
<Gloss Language="es">uno</Gloss>
<Gloss Language="fr">un</Gloss>
</Sense>
<Sense Id="s-wug2">
<Gloss Language="es">primero</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Word" Form="blicket" Homograph="1" />
<Entry>
<Sense Id="s-blicket">
<Gloss Language="es">dos</Gloss>
</Sense>
<Sense Id="s-blicket-fr">
<Gloss Language="fr">deux</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Phrase" Form="dax fep" Homograph="1" />
<Entry>
<Sense Id="s-daxfep">
<Gloss Language="es">tres cuatro</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Phrase" Form="zim zam" Homograph="1" />
<Entry>
<Sense Id="s-zimzam">
<Gloss Language="es">nueve diez</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Phrase" Form="zam zim" Homograph="1" />
<Entry>
<Sense Id="s-zamzim">
<Gloss Language="es">diez nueve</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Phrase" Form="nol pim tuk" Homograph="1" />
<Entry>
<Sense Id="s-nolpimtuk">
<Gloss Language="es">once doce trece</Gloss>
</Sense>
<Sense Id="s-nolpimtuk-fr">
<Gloss Language="fr">onze douze treize</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Word" Form="gorp" Homograph="1" />
<Entry>
<Sense Id="s-gorp">
<Gloss Language="es">cinco</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Word" Form="tomo" Homograph="1" />
<Entry>
<Sense Id="s-tomo">
<Gloss Language="es">seis</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Word" Form="zav" Homograph="1" />
<Entry>
<Sense Id="s-zav">
<Gloss Language="es">siete</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Word" Form="glorp" Homograph="1" />
<Entry>
<Sense Id="s-glorp">
<Gloss Language="es">ocho</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Stem" Form="wug" Homograph="1" />
<Entry>
<Sense Id="s-stem-wug">
<Gloss Language="es">wug</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Suffix" Form="s" Homograph="1" />
<Entry>
<Sense Id="s-suffix-s">
<Gloss Language="es">-s</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Stem" Form="dax" Homograph="1" />
<Entry>
<Sense Id="s-stem-dax">
<Gloss Language="es">dax</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Suffix" Form="es" Homograph="1" />
<Entry>
<Sense Id="s-suffix-es">
<Gloss Language="es">-es</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Stem" Form="kex" Homograph="1" />
<Entry>
<Sense Id="s-stem-kex">
<Gloss Language="fr">quinze</Gloss>
</Sense>
</Entry>
</item>
<item>
<Lexeme Type="Stem" Form="glorp" Homograph="1" />
<Entry>
<Sense Id="s-stem-glorp">
<Gloss Language="es">glorp</Gloss>
</Sense>
</Entry>
</item>
</Entries>
</Lexicon>
31 changes: 31 additions & 0 deletions test-data/pt9-projects/PIA/Settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<ScriptureText>
<StyleSheet>usfm.sty</StyleSheet>
<Versification>4</Versification>
<Language>English</Language>
<MinParatextVersion>8.0.100.76</MinParatextVersion>
<FullName>PT9 Import A - clean</FullName>
<Encoding>65001</Encoding>
<Editable>T</Editable>
<Copyright />
<NormalizationForm>NFC</NormalizationForm>
<Name>PIA</Name>
<Guid>a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1</Guid>
<DefaultFont>Charis SIL</DefaultFont>
<DefaultFontSize>12</DefaultFontSize>
<FontFeatures />
<HtmlLanguage />
<LanguageIsoCode>en:::</LanguageIsoCode>
<FileNameBookNameForm>41MAT</FileNameBookNameForm>
<FileNamePrePart />
<FileNamePostPart>PIA.SFM</FileNamePostPart>
<BiblicalTermsListSetting>Major::BiblicalTerms.xml</BiblicalTermsListSetting>
<MatchBasedOnStems>F</MatchBasedOnStems>
<AllowReadAccess>F</AllowReadAccess>
<AllowSharingWithSLDR>F</AllowSharingWithSLDR>
<Visibility>Test</Visibility>
<TranslationInfo>Standard::</TranslationInfo>
<EncodingConverter />
<UsfmVersion>3</UsfmVersion>
<BooksPresent>000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000</BooksPresent>
<Naming PrePart="" PostPart="PIA.SFM" BookNameForm="41MAT" />
</ScriptureText>
15 changes: 15 additions & 0 deletions test-data/pt9-projects/PIA/WordAnalyses.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<WordAnalyses>
<Entry Word="daxes">
<Analysis><Lexeme>Stem:dax</Lexeme><Lexeme>Suffix:es</Lexeme></Analysis>
</Entry>
<Entry Word="fepped">
<Analysis><Lexeme>Stem:fep</Lexeme><Lexeme>Suffix:ped</Lexeme></Analysis>
</Entry>
<Entry Word="brokenword">
<Analysis><Lexeme>brokenid</Lexeme></Analysis>
</Entry>
<Entry Word="emptyword">
<Analysis />
</Entry>
</WordAnalyses>
1 change: 1 addition & 0 deletions test-data/pt9-projects/PIA/en.ldml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<ldml><identity><version number="" /><generation date="2026-08-28T00:00:00Z" /><language type="en" /></identity><layout><orientation><characterOrder>left-to-right</characterOrder></orientation></layout></ldml>
1 change: 1 addition & 0 deletions test-data/pt9-projects/PIA/unique.id
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
aaaaaaaa-1111-4111-8111-aaaaaaaaaaaa
6 changes: 6 additions & 0 deletions test-data/pt9-projects/PIB/51PHPPIB.SFM
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
\id PHP - PT9 Import B
\h PIB
\mt1 Philippians
\c 1
\p
\v 1 Alpha beta gamma delta.
9 changes: 9 additions & 0 deletions test-data/pt9-projects/PIB/InterlinearSetup.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<InterlinearSetupList>
<InterlinearSetup type="Glossing" language="es">
<FontSize>12</FontSize>
<RightToLeft>false</RightToLeft>
<RelatedLanguages>false</RelatedLanguages>
<ExportOnApprove>false</ExportOnApprove>
</InterlinearSetup>
</InterlinearSetupList>
11 changes: 11 additions & 0 deletions test-data/pt9-projects/PIB/Interlinear_es/Interlinear_es_JAS.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<InterlinearData GlossLanguage="es" BookId="JAS">
<Verses>
<item>
<string>JAS 1:1</string>
<VerseData>
<Cluster><Range Index="0" Length="5" /><Lexeme Id="Word:alpha" GlossId="s-alpha" /></Cluster>
</VerseData>
</item>
</Verses>
</InterlinearData>
27 changes: 27 additions & 0 deletions test-data/pt9-projects/PIB/Interlinear_es/Interlinear_es_PHP.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<InterlinearData GlossLanguage="es" BookId="PHP">
<Verses>
<item>
<string>PHP 1:1</string>
<VerseData Hash="pib-approved-hash">
<Cluster><Range Index="0" Length="5" /><Lexeme Id="Word:alpha" GlossId="s-alpha" /></Cluster>
<Cluster><Range Index="6" Length="4" /><Lexeme Id="Word:beta" GlossId="s-beta" /></Cluster>
<Cluster><Range Index="6" Length="4" /><Lexeme Id="Word:beta" GlossId="s-beta" /></Cluster>
<Cluster><Range Index="11" Length="5" /><Lexeme Id="Word:notinthetext" /></Cluster>
<Cluster><Range Index="17" Length="5" /><Lexeme Id="Lemma:delta" /></Cluster>
<Cluster><Range Index="23" Length="1" /><Lexeme Id="Infix:x" /></Cluster>
<Cluster><Range Index="25" Length="3" /><Lexeme Id="brokenid" /></Cluster>
<Cluster><Range Index="29" Length="3" /><Lexeme /></Cluster>
<Cluster><Range Index="11" Length="11" /><Lexeme Id="Phrase:gamma delta" GlossId="s-gammadelta" /></Cluster>
<Cluster><Range Index="30" Length="8" /><Lexeme Id="Phrase:zeta eta" /></Cluster>
<Cluster><Range Index="40" Length="1" /><Lexeme Id="Phrase: " /></Cluster>
</VerseData>
</item>
<item>
<string>PHP 2:5</string>
<VerseData>
<Cluster><Range Index="0" Length="5" /><Lexeme Id="Word:alpha" GlossId="s-alpha" /></Cluster>
</VerseData>
</item>
</Verses>
</InterlinearData>
Loading
Loading