Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WiP] fix: proper lj and nj transliteration #17

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

noomorph
Copy link
Contributor

@noomorph noomorph commented Nov 23, 2023

Resolves #16

This fix allows us to compensate for Latin ←→ Cyrillic asymmetry in Interslavic:

  • лј vs. љ (both are nj in Latin).
  • нј vs. њ (both are nj in Latin).

By default, the transliterator will use 'љ' except for the following words:

List of exceptions

bezusilja bezusilje bezusiljem bezusilju evangelja evangeljah evangeljam evangeljami evangelje evangeljem evangelju najorljeje najorljejši najpčeljeje najpčeljejši nasilja nasilje nasiljem nasilju obilja obiljah obiljam obiljami obilje obiljem obilju orlja orlje orljego orljej orljeje orljeju orljejši orljem orljemu orlji orljih orljim orljimi orlju pohmelja pohmeljah pohmeljam pohmeljami pohmelje pohmeljem pohmelju pčelja pčelje pčeljego pčeljej pčeljeje pčeljeju pčeljejši pčeljem pčeljemu pčelji pčeljih pčeljim pčeljimi pčelju usilja usiljah usiljam usiljami usilje usiljem usilju veselja veselje veseljem veselju

By default, the transliterator will replace nj with ńj if:

function endsWithNj(word) {
  return word.endsWith('nja')
    || word.endsWith('njah')
    || word.endsWith('njam')
    || word.endsWith('njami')
    || word.endsWith('nje')
    || word.endsWith('njem')
    || word.endsWith('nju');
}
List of exceptions

banja banjah banjam banjami banje basnjah basnjam basnjami bezposrědnja bezposrědnje bezposrědnjem bližnja bližnje bližnjem bogynjah bogynjam bogynjami bogynje bojaznjah bojaznjam bojaznjami bolěznjah bolěznjam bolěznjami bronja bronjah bronjam bronjami bronje brězenja brězenjem brězenju cvětenja cvětenjem cvětenju daljnja daljnje daljnjem danjah danjam danjami dlanjah dlanjam dlanjami dnešnja dnešnje dnešnjem dnja dnjah dnjam dnjami dnje dnjem dnju doganja doganjah doganjam domašnja domašnje domašnjem dopolnja dopolnjah dopolnjam durenja durenjah durenjam durenjami durenjem durenju dynja dynjah dynjam dynjami dynje geranja geranjah geranjam geranjami geranje geranjem geranju glavnja glavnjah glavnjam glavnjami glavnje glezenja glezenjah glezenjam glezenjami glezenje glezenjem glezenju godišnja godišnje godišnjem golěnjah golěnjam golěnjami gorečnja gorečnjah gorečnjam gorečnjami gorečnje gospodynja gospodynjah gospodynjam gospodynjami gospodynje gostiljnja gostiljnjah gostiljnjam gostiljnjami gostiljnje grebenja grebenjah grebenjam grebenjami grebenje grebenjem grebenju grtanjah grtanjam grtanjami igumenja igumenjah igumenjam igumenjami igumenje inja injah injam injami inje injem inju izganja izganjah izganjam izjasnja izjasnjah izjasnjam izkorenja izkorenjah izkorenjam izlišnja izlišnje izlišnjem izměnja izměnjah izměnjam izpolnja izpolnjah izpolnjam izprazdnja izprazdnjah izprazdnjam izravnja izravnjah izravnjam izvaljnja izvaljnjah izvaljnjam izvinja izvinjah izvinjam izvlastnja izvlastnjah izvlastnjam jablanjah jablanjam jablanjami jasenja jasenjah jasenjam jasenjami jasenje jasenjem jasenju jelenja jelenjah jelenjam jelenjami jelenje jelenjem jelenju jesenjah jesenjam jesenjami jesennja jesennje jesennjem ječmenja ječmenjah ječmenjam ječmenjami ječmenje ječmenjem ječmenju jutrenja jutrenjah jutrenjam jutrenjami jutrenje jutrišnja jutrišnje jutrišnjem kamenja kamenjah kamenjam kamenjami kamenje kamenjem kamenju kanja kanjah kanjam kanjami kanje kavarnja kavarnjah kavarnjam kavarnjami kavarnje kaznjah kaznjam kaznjami každogodišnja každogodišnje každogodišnjem klanja klanjah klanjam klěnja klěnjah klěnjam klěnjami klěnjem klěnju knegynja knegynjah knegynjam knegynjami knegynje knigarnja knigarnjah knigarnjam knigarnjami knigarnje konja konjah konjam konjami konjem konju kopaljnja kopaljnjah kopaljnjam kopaljnjami kopaljnje korenja korenjah korenjam korenjami korenje korenjem korenju kovaljnja kovaljnjah kovaljnjam kovaljnjami kovaljnje kremenja kremenjah kremenjam kremenjami kremenje kremenjem kremenju kuhnja kuhnjah kuhnjam kuhnjami kuhnje kupaljnja kupaljnjah kupaljnjam kupaljnjami kupaljnje kuznja kuznjah kuznjam kuznjami kuznje kěšenjah kěšenjam kěšenjami laznja laznjah laznjam laznjami laznje linja linjah linjam lipenja lipenjem lipenju ljutnja ljutnjah ljutnjam ljutnjami ljutnje lobanja lobanjah lobanjam lobanjami lobanje lěnja lěnje lěnjem lětnja lětnje lětnjem lěčiljnja lěčiljnjah lěčiljnjam lěčiljnjami lěčiljnje menja menjah menjam menjami menje menjem menju mesarnja mesarnjah mesarnjam mesarnjami mesarnje milostynja milostynjah milostynjam milostynjami milostynje molnja molnjah molnjam molnjami molnje monahynja monahynjah monahynjam monahynjami monahynje mučiljnja mučiljnjah mučiljnjam mučiljnjami mučiljnje měnja měnjah měnjam naganja naganjah naganjam najmenje najtenje najtonje najunje naklanja naklanjah naklanjam nakovaljnja nakovaljnjah nakovaljnjam nakovaljnjami nakovaljnje navodnja navodnjah navodnjam neposrědnja neposrědnje neposrědnjem novogodišnja novogodišnje nyněšnja nyněšnje nyněšnjem objasnja objasnjah objasnjam objedinja objedinjah objedinjam oblinja oblinjah oblinjam obměnja obměnjah obměnjam obognjeodparnja obognjeodparnjah obognjeodparnjam obranja obranjah obranjam obrěmenja obrěmenjah obrěmenjam obvadnja obvadnjah obvadnjam obvinja obvinjah obvinjam ocěnja ocěnjah ocěnjam odklanja odklanjah odklanjam odomašnja odomašnjah odomašnjam odosobnja odosobnjah odosobnjam odslanja odslanjah odslanjam odstranja odstranjah odstranjam odvadnja odvadnjah odvadnjam odčinja odčinjah odčinjam ognja ognjah ognjam ognjami ognje ognjem ognju ohranja ohranjah ohranjam okamenja okamenjah okamenjam okunja okunjah okunjam okunjami okunjem okunju onogdašnja onogdašnje onogdašnjem opozdnja opozdnjah opozdnjam opravnja opravnjah opravnjam oprazdnja oprazdnjah oprazdnjam oskvrnja oskvrnjah oskvrnjam osloženja osloženjah osloženjam osovrěmennja osovrěmennjah osovrěmennjam otrudnja otrudnjah otrudnjam otěnja otěnjah otěnjam ovplyvnja ovplyvnjah ovplyvnjam ovčarnja ovčarnjah ovčarnjam ovčarnjami ovčarnje ozelenja ozelenjah ozelenjam oznanja oznanjah oznanjam očrnja očrnjah očrnjam panjah panjam panjami panje pekarnja pekarnjah pekarnjam pekarnjami pekarnje pečenjah pečenjam pečenjami pivovarnja pivovarnjah pivovarnjam pivovarnjami pivovarnje plamenja plamenjah plamenjam plamenjami plamenje plamenjem plamenju plěsnjah plěsnjam plěsnjami plěvnja plěvnjah plěvnjam plěvnjami plěvnje pnja pnjah pnjam pnjami pnje pnjem pnju podměnja podměnjah podměnjam pohristijanja pohristijanjah pohristijanjam poldnja poldnjah poldnjam poldnjami poldnje poldnjem poldnju popoldnja popoldnjah popoldnjam popoldnjami popoldnje popoldnjem popoldnju poprědnja poprědnje poprědnjem poslědnja poslědnje poslědnjem posrědnja posrědnje posrědnjem povrhnja povrhnjah povrhnjam povrhnjami povrhnje povsednja povsednje povsednjem priměnja priměnjah priměnjam prisjedinja prisjedinjah prisjedinjam pristanja pristanjah pristanjam pristanjami pristanje pristanjem pristanju privlastnja privlastnjah privlastnjam pričinja pričinjah pričinjam proganja proganjah proganjam prošlogodišnja prošlogodišnje prošlogodišnjem prstenja prstenjah prstenjam prstenjami prstenje prstenjem prstenju prěcěnja prěcěnjah prěcěnjam prědnja prědnje prědnjem prědposlědnja prědposlědnje prědposlědnjem prěměnja prěměnjah prěměnjam prěocěnja prěocěnjah prěocěnjam pustynja pustynjah pustynjam pustynjami pustynje pěsnja pěsnjah pěsnjam pěsnjami pěsnje rabynja rabynjah rabynjam rabynjami rabynje ranja ranje ranjem razběsnja razběsnjah razběsnjam razdražnja razdražnjah razdražnjam razganja razganjah razganjam razjasnja razjasnjah razjasnjam razjedinja razjedinjah razjedinjam razměnja razměnjah razměnjam razprostranja razprostranjah razprostranjam razraznja razraznjah razraznjam remenja remenjah remenjam remenjami remenje remenjem remenju revenja revenjah revenjam revenjami revenje revenjem revenju rujenja rujenjem rujenju sanjah sanjam sanjami sanje sdešnja sdešnje sdešnjem segdašnja segdašnje segdašnjem seženjah seženjam seženjami shranja shranjah shranjam sinja sinje sinjem sjedinja sjedinjah sjedinjam sklanja sklanjah sklanjam skotobojnja skotobojnjah skotobojnjam skotobojnjami skotobojnje skrinja skrinjah skrinjam skrinjami skrinje sněženja sněženjem sněženju sotnja sotnjah sotnjam sotnjami sotnje spaljnja spaljnjah spaljnjam spaljnjami spaljnje spozdnja spozdnjah spozdnjam sravnja sravnjah sravnjam srpenja srpenjem srpenju srědnja srědnje srědnjem studnja studnjah studnjam studnjami studnje stupnja stupnjah stupnjam stupnjami stupnje stupnjem stupnju styčenja styčenjem styčenju stěnja stěnjah stěnjam stěnjami stěnje stěnjem stěnju suknja suknjah suknjam suknjami suknje svinja svinjah svinjam svinjami svinje svorenja svorenjah svorenjam svorenjami svorenje svorenjem svorenju sědiljnja sědiljnjah sědiljnjam sědiljnjami sědiljnje sěčenja sěčenjem sěčenju tenje tjulenja tjulenjah tjulenjam tjulenjami tjulenjem tjulenju tkanjah tkanjam tkanjami tonje travenja travenjem travenju trutenja trutenjah trutenjam trutenjami trutenjem trutenju tydnja tydnjah tydnjam tydnjami tydnje tydnjem tydnju těnja těnjah těnjam těnjami těnje těnjem těnju ujedinja ujedinjah ujedinjam umožnja umožnjah umožnjam unarodnja unarodnjah unarodnjam unemožnja unemožnjah unemožnjam unevinja unevinjah unevinjam unje upodabnja upodabnjah upodabnjam upokarnja upokarnjah upokarnjam uravnja uravnjah uravnjam uravnjami uravnje uravnjem uravnju usložnja usložnjah usložnjam utekučinja utekučinjah utekučinjam utočnja utočnjah utočnjam utrišnja utrišnje utrišnjem utrudnja utrudnjah utrudnjam utělesnja utělesnjah utělesnjam uvadnja uvadnjah uvadnjam uvaljnja uvaljnjah uvaljnjam velikdnja velikdnjah velikdnjam velikdnjami velikdnje velikdnjem velikdnju vezenja vezenjah vezenjam vezenjami vezenjem vezenju vikunja vikunjah vikunjam vikunjami vikunje višnja višnjah višnjam višnjami višnje vnutrišnja vnutrišnje vnutrišnjem vněšnja vněšnje vněšnjem vodobojaznjah vodobojaznjam vodobojaznjami vonja vonjah vonjam vonjami vozbranja vozbranjah vozbranjam vresenja vresenjem vresenju vsakogodišnja vsakogodišnje vsakogodišnjem včerašnja včerašnje včerašnjem včlenja včlenjah včlenjam zabranja zabranjah zabranjam zadnja zadnje zadnjem zaključiljnja zaključiljnjah zaključiljnjam zaključiljnjami zaključiljnje založiljnja založiljnjah založiljnjam založiljnjami založiljnje zaměnja zaměnjah zaměnjam zaplěnja zaplěnjah zaplěnjam zapolnja zapolnjah zapolnjam zaslanja zaslanjah zaslanjam zatemnja zatemnjah zatemnjam zautrišnja zautrišnje zautrišnjem začrvenja začrvenjah začrvenjam zelenjah zelenjam zelenjami čajiljnja čajiljnjah čajiljnjam čajiljnjami čajiljnje čekaljnja čekaljnjah čekaljnjam čekaljnjami čekaljnje čerešnja čerešnjah čerešnjam čerešnjami čerešnje čečnja čečnje čitaljnja čitaljnjah čitaljnjam čitaljnjami čitaljnje črvenja črvenjem črvenju šeršenja šeršenjah šeršenjam šeršenjami šeršenje šeršenjem šeršenju

The exception checking should be very fast (presumably) because we pre-generate a suffix tree.

@noomorph noomorph changed the title fix: proper nj transliteration fix: proper lj and nj transliteration Dec 14, 2023
Copy link
Contributor

github-actions bot commented Dec 14, 2023

Pull Request Test Coverage Report for Build 7233869101

  • 51 of 58 (87.93%) changed or added relevant lines in 3 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage decreased (-0.3%) to 94.198%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/transliterate/lj-nj/index.ts 19 20 95.0%
src/transliterate/lj-nj/findTrieWord.ts 12 18 66.67%
Totals Coverage Status
Change from base Build 7207304640: -0.3%
Covered Lines: 1526
Relevant Lines: 1616

💛 - Coveralls

@noomorph noomorph marked this pull request as draft January 10, 2024 19:34
@noomorph noomorph changed the title fix: proper lj and nj transliteration [WiP] fix: proper lj and nj transliteration Jan 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix Cyrillic transliteration of nje-nja-nju-njah-njam-njami
1 participant