Code Monkey home page Code Monkey logo

avzag's Issues

In-progress label

Add "Work In Progress" label at some home language cards to indicate their content status.

Use separate branch for linguistic data

Create db branch in the repository to hold all language data that is currently stored in public/lects. This should make it easier to contribute and allows for a cleaner project structure. Definitely would need the ability to still utilize local data for rapid development.

Improved UI

Some people mostly use converter functionality. Develop new UI layout where the phonetical table doesn't stand in their way.

Multigrapheme samples

Add the ability to specify and highlight multiple graphical representations of the same phoneme in a single lect. For example, in Kaitag for phoneme /e/ there are 2 graphemes: ⟨э⟩, ⟨е⟩.

Simplify Phrasebook Block transitions

Settings transitions seem to be a bottleneck when working with the tools. The null is essentially the best-of with no candidates. Also, most of the blocks have only 1 state. Therefore:

  • by default, with no transition, use the next transition mode;
  • for blocks with multiple states, convert all explicit null transitions into best-of transitions with 0 candidates.

Editors documentation

Create wiki pages about, remove all panel captions from, and add the corresponding links for:

  • Phonology
  • Converter
  • Phrasebook

Routing & address arguments

Implement proper routing, history and ability to refer to specific view & language by passing url arguments into the address bar.

Dictionary Module

Develop a prototype dictionary module, allowing to directly map words between our languages based on their English translation. It is not perfect, but it should be good enough.

Vue.js rewrite

Rewrite current vanilla-js implementation with Vue.js in order to set a solid foundation for the future progress.

SCSS migration

As the cost of maintaining custom CSS elements raises, migrate the project onto using scss preprocessor.

Lect Update

🔉 Phonology

  • Consider reorganizing ids to use properties instead of keys.
  • Populate phonetic IPA database.
  • Convert phonetic IPA database into object-array instead of key-value pairs.

🔃 Converter

  • Implement Dropdown component for mapping selection.
  • Implement Toggle component for bool toggling.
  • Fix defaults sample handling.

🏠 Home

  • Implement a new lect card with a new catalog structure.
  • Add map markers for selected lects.
  • Add lects search.

🛠 Editors

  • Phonology editor.
  • Converter editor.
  • Editors navigation.

Converter universal phonemic approximation

Using phoneme-grapheme pairs, try to approximate text from one language into another by utilizing phoneme approximation similar to how it work during language acquisition.

PhraseContext upgrade

  • Update color styling.
  • Create separate color palettes for dark & light modes with css variables.
  • Only give necessary info.

Explore VueX

In order to fascilitate state management (and for sake of learnin a new technology) explore how VueX can benefit the project.

PhraseBlockDisplay component

  • Display & color text, ipa & glossing segments.
  • Computed property for copying.
  • Unify 3 strings into one data structure.

Nord palette

Replace hard coded CSS color hexes with Nord palette references.

Functional URL

Restore URL functionality after updating Lects architecture:

  • Home (selected lects, zoom, position);
  • Phonology (phoneme, lects filter);
  • Converter (lect, source mapping, destination mapping);
  • Phrasebook (phrase, section).

When two entities start with the same letter, one supercedes the other in phasebook editor

Steps to reproduce:

  1. Create two entities for a phrase, for example Plurality and Proximity.
  2. In the editor, when modifying a phrase, both will show the same tags as whichever is created first.
  3. Save the JSON, making sure to double check that the tag values are not overwritten. I noticed that once or twice when playing around with this issue, the actual tag values were being overwritten in the phrasebook.json file.
  4. Compare behavior in the normal interactive editor screen, where this tag overwritting does not occur.

Compare interactive mode:
Screen Shot 2021-01-01 at 18 34 05 PM

Versus editor mode:
Screen Shot 2021-01-01 at 18 35 43 PM

Example below:

{
    "id": "55fe6d97-c8ec-4637-9749-b8c4c85e5d7d",
    "name": "Test Section",
    "phrases": [
      {
        "id": "92a1654f-db81-4377-87a4-bd8ab2eb31fd",
        "preview": "Testing",
        "context": [
          {
            "entity": "plurality",
            "tags": "singular plural"
          },
          {
            "entity": "proximity",
            "tags": "near far"
          }
        ],
        "blocks": [
          {
            "states": [
              {
                "display": [
                  {
                    "text": "This"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "singular"
                  },
                  {
                    "entity": "proximity",
                    "tag": "near"
                  }
                ]
              },
              {
                "display": [
                  {
                    "text": "That"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "singular"
                  },
                  {
                    "entity": "proximity",
                    "tag": "far"
                  }
                ]
              },
              {
                "display": [
                  {
                    "text": "These"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "plural"
                  },
                  {
                    "entity": "proximity",
                    "tag": "near"
                  }
                ]
              },
              {
                "display": [
                  {
                    "text": "Those"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "proximity",
                    "tag": "far"
                  },
                  {
                    "entity": "plurality",
                    "tag": "plural"
                  }
                ]
              }
            ]
          },
          {
            "states": [
              {
                "display": [
                  {
                    "text": "is"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "singular"
                  }
                ]
              },
              {
                "display": [
                  {
                    "text": "are"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "plural"
                  }
                ]
              }
            ]
          },
          {
            "states": [
              {
                "display": [
                  {
                    "text": "a"
                  }
                ],
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "singular"
                  }
                ]
              }
            ],
            "requirements": [
              {
                "entity": "plurality",
                "tag": "singular"
              }
            ]
          },
          {
            "states": [
              {
                "display": [
                  {
                    "text": "test"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "singular"
                  }
                ]
              },
              {
                "display": [
                  {
                    "text": "tests"
                  }
                ],
                "transition": "next",
                "conditions": [
                  {
                    "entity": "plurality",
                    "tag": "plural"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }

Unify editors

  • Header navigation.
  • File serialization & deserealization (keep separate record for each editor).
  • File actions (load least, load json, etc.).

Vector tiles for map

Utilize vector tiles in Leaflet instead of raster tiles to increase loading speed & performance.

PhrasebookEditor upgrade

  • ButtonDelete with confirmation & color highlight.
  • ToggleGroup with ability to set off completely.
  • StateTransitionEditor with empty, next & best-of options.
  • StateDisplayEditor with glossing & entity coloring.

Script converter

Implement script converter section for a language:

  • real-time textfield conversion
  • copy result to clipboard
  • choose from multiple mappings
  • upload .txt file
  • display mapping table

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.