Skip to content

Commit

Permalink
Update Transliterator widget (#178)
Browse files Browse the repository at this point in the history
* feat: glagolitic transliterator

* fix: dialogue formatting
  • Loading branch information
noomorph authored Aug 14, 2024
1 parent cfb9d09 commit 853c643
Show file tree
Hide file tree
Showing 23 changed files with 96 additions and 177 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"@docusaurus/core": "^3.4.0",
"@docusaurus/plugin-client-redirects": "^3.4.0",
"@docusaurus/preset-classic": "^3.4.0",
"@interslavic/utils": "2.2.3-beta.9",
"@interslavic/utils": "3.3.0",
"@mdx-js/react": "^2.3.0",
"@noomorph/docusaurus-search-local": "^1.1.1",
"@svgr/webpack": "^5.5.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,15 +160,15 @@ const IntelligibilityEncoderPage = (props = {}) => {
</tr>
</thead>
<LanguageGroupHeader title="Western Slavic Languages">
<InterslavicRow title="Etymological script" script="art-Latn-x-interslv-etym">{isv}</InterslavicRow>
<InterslavicRow title="Etymological script" script="isv-Latn-x-etymolog">{isv}</InterslavicRow>
</LanguageGroupHeader>
<tbody>
<LanguageRow lang="pl" value={pl} setValue={set_pl}>{synsets.pl}</LanguageRow>
<LanguageRow lang="cs" value={cs} setValue={set_cs}>{synsets.cs}</LanguageRow>
<LanguageRow lang="sk" value={sk} setValue={set_sk}>{synsets.sk}</LanguageRow>
</tbody>
<LanguageGroupHeader title="South-Western Slavic Languages">
<InterslavicRow title="Standard script" script="art-Latn-x-interslv">{isv}</InterslavicRow>
<InterslavicRow title="Standard script" script="isv-Latn">{isv}</InterslavicRow>
</LanguageGroupHeader>
<tbody>
<LanguageRow lang="sl" value={sl} setValue={set_sl}>{synsets.sl}</LanguageRow>
Expand All @@ -177,15 +177,15 @@ const IntelligibilityEncoderPage = (props = {}) => {

</tbody>
<LanguageGroupHeader title="South-Eastern Slavic Languages">
<InterslavicRow title="Cyrillic script" script="art-Cyrl-x-interslv">{isv}</InterslavicRow>
<InterslavicRow title="Cyrillic script" script="isv-Cyrl">{isv}</InterslavicRow>
</LanguageGroupHeader>
<tbody>
<LanguageRow lang="mk" value={mk} setValue={set_mk}>{synsets.mk}</LanguageRow>
<LanguageRow lang="bg" value={bg} setValue={set_bg}>{synsets.bg}</LanguageRow>

</tbody>
<LanguageGroupHeader title="East Slavic Languages">
<InterslavicRow title="Iotated Cyrillic" script="art-Cyrl-x-interslv-iotated-ext">{isv}</InterslavicRow>
<InterslavicRow title="Iotated Cyrillic" script="isv-Cyrl-x-iotated-ext">{isv}</InterslavicRow>
</LanguageGroupHeader>
<tbody>
<LanguageRow lang="ru" value={ru} setValue={set_ru}>{synsets.ru}</LanguageRow>
Expand Down
1 change: 1 addition & 0 deletions src/components/Transliterator/Transliterator.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ const tertiary = {
'MichalSwatPolishCyrillic': 'Polish → Cyrillic (Michał Swat)',
'MichalSwatPolishGlagolitic': 'Polish → Glagolitic (Michał Swat)',
'MichalSwatMsGlagolitic': 'Interslavic → Glagolitic (Michał Swat)',
'GlagoliticLatin': 'Glagolitic → Interslavic (Michał Swat)',
'GorlatoffCyrillicLatin': 'Меджусловјанскы → Medžuslovjansky (Mihail Gorlatov)',
};

Expand Down
6 changes: 4 additions & 2 deletions src/components/Transliterator/custom/index.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import ms2glag from './ms2glag';
import { transliterate2 } from '@interslavic/utils';
import pl2cyrl from './pl2cyrl';
import pl2glag from './pl2glag';
import mashinaCyrLat from './mashinaCyrLat';

export function customTransliterate(input, script) {
switch (script) {
case 'GlagoliticLatin':
return transliterate2.glag2latn(input);
case 'MichalSwatPolishCyrillic':
return pl2cyrl(input);
case 'MichalSwatPolishGlagolitic':
return pl2glag(input);
case 'MichalSwatMsGlagolitic':
return ms2glag(input);
return transliterate2.latn2glag(input);
case 'GorlatoffCyrillicLatin':
return mashinaCyrLat(input);
default:
Expand Down
90 changes: 0 additions & 90 deletions src/components/Transliterator/custom/ms2glag.js

This file was deleted.

4 changes: 2 additions & 2 deletions src/components/TransliteratorElement/TransliteratorElement.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export function TransliteratorElement({ children }) {
const isCyrillic = CYRILLIC_ALPHABET_LANGUAGES.has(i18n.currentLocale);

const transliterateText = (text) => {
return transliterate(text, 'art-Cyrl-x-interslv-etym').replaceAll('Ѣ', 'Є').replaceAll('ѣ', 'є');
return transliterate(text, 'isv-Cyrl-x-etymolog').replaceAll('Ѣ', 'Є').replaceAll('ѣ', 'є');
};

const transliterateJSX = (jsxElement) => {
Expand All @@ -32,7 +32,7 @@ export function TransliteratorElement({ children }) {
};

return (
<span lang="art-x-interslv" translate="no" className="notranslate">
<span lang="isv" translate="no" className="notranslate">
{isCyrillic
? React.Children.map(children, transliterateJSX)
: children}
Expand Down
9 changes: 7 additions & 2 deletions src/css/custom.scss
Original file line number Diff line number Diff line change
Expand Up @@ -213,11 +213,11 @@ div[lang], span[lang] {
}
}

th[lang*=interslv] {
th[lang*=isv] {
font-family: var(--fun-safe-sans);
}

td[lang*=interslv] {
td[lang*=isv] {
font-family: var(--fun-safe-sans);
font-size: 0.8rem;
}
Expand Down Expand Up @@ -301,6 +301,11 @@ table .noRight {
flex-wrap: wrap;
gap: 1rem;

> * {
flex: 1 0;
min-width: 30ch;
}

ul {
list-style-type: none;
padding-left: 0;
Expand Down
2 changes: 1 addition & 1 deletion src/markdown/alphabet.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export default function Alphabet() {
<th>Cyrillic</th>
</tr>
</thead>
<tbody lang="art-x-interslv">
<tbody lang="isv">
<tr>
<td rowspan="2">
<b>A</b>
Expand Down
2 changes: 1 addition & 1 deletion src/markdown/etymological-alphabet-extensions.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export default function EtymologicalAlphabetExtensions({children}) {
<tbody>
{alphabet.map((letter, index) => (
<tr key={index}>
<td lang="art-Latn-x-interslv">{letter.isv}</td>
<td lang="isv-Latn">{letter.isv}</td>
<td>{React.cloneElement(letter.ipa)}</td>
<td>{rows[index]?.props.children}</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion src/markdown/nouns/declinator.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ function Case({row: [singular, plural], title}) {

function useRecommendedForm(athematic) {
const regexp = athematic ? /^[^\/]*\/\s*/ : /\s*\/.*$/;
const processWord = (word) => transliterate(word.replace(regexp, ''), 'art-Latn-x-interslv');
const processWord = (word) => transliterate(word.replace(regexp, ''), 'isv-Latn');

return (words) => words.map(processWord);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import AlphabetOverview from "./AlphabetOverview";

describe("AlphabetOverview", () => {
it("matches DOM Snapshot for Latin alphabet", () => {
const domTree = renderer.create(<AlphabetOverview script="art-Latn-x-interslv" />).toJSON();
const domTree = renderer.create(<AlphabetOverview script="isv-Latn" />).toJSON();
expect(domTree).toMatchSnapshot();
});

it("matches DOM Snapshot for Cyrillic alphabet", () => {
const domTree = renderer.create(<AlphabetOverview script="art-Cyrl-x-interslv" />).toJSON();
const domTree = renderer.create(<AlphabetOverview script="isv-Cyrl" />).toJSON();
expect(domTree).toMatchSnapshot();
});
});
Loading

0 comments on commit 853c643

Please sign in to comment.