Giter Site home page Giter Site logo

de7vid / klingon-assistant-android Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 9.0 8.76 MB

{tlhIngan Hol boQwI'} ({boQwI'} for short) is a lexicon dictionary for the Klingon language ({tlhIngan Hol}) and a tool for analysing the grammar of Klingon words and sentences. This repo holds the Android app.

Home Page: https://play.google.com/store/apps/details?id=org.tlhInganHol.android.klingonassistant

License: Apache License 2.0

Java 99.75% Shell 0.25%

klingon-assistant-android's People

Contributors

anasofiagribeiro avatar cyberman-tm avatar de7vid avatar dlyongemallo avatar fergusq avatar kortagerdur avatar lievenlitaer avatar poussinou avatar rudloff avatar thiagocmatos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

klingon-assistant-android's Issues

url link text doesn't support non-ASCII-Latin

The linking mechanism within the Android app was originally used only to link to other entries. Thus, the regex to detect link text is confined to basically a subset of ASCII (Latin alphabet without diacritics and some punctuation).

This mechanism was re-purposed to allow URL links and also to italicise source references. (This was a very hacky thing to do and in retrospect should've never been done.) This causes a problem in the "help" page (the entry for boQwI' in the database) because there are links there whose link text should be translated, but which therefore fall outside of the ASCII-Latin range. In particular, ä and ö causes problems for the Finnish translation. (The Russian translation keeps the link text in English, so isn't a problem. That workaround may have to be done for other non-Latin-script languages.)

There is an exception already for ü already due to needing to recognise Saarbrücken in the source Saarbrücken qepHom'a'. However, relaxing the regex requires a code change, and also, relaxing it enough to include non-Latin scripts would basically render it useless. It seems inefficient to handle the special case every time the app tries to match a link, when those letters appear only in one specific link. (This is unlike Saarbrücken, which appears in many entries as a source.)

"Shared from..." text should include sources

When sharing an entry, the text which is shared should include sources. Otherwise, the "Shared from {boQwI'}" message might be misinterpreted as a claim that it is an original source.

rewrite app in Kotlin multiplatform

It's getting to the point where the Java app has large chunks of outdated code, in particular with regards to database access and concurrency.

Also, Kotlin multiplatform is a possibility for supporting both Android and iOS (and maybe even desktop and web apps) from a common codebase.

KWOTD and database update can clash

If a new database has been downloaded by the app, but not yet installed, and the database changes the IDs of some entries, and the KWOTD happens to be one of those entries, and the user opens the app from the KWOTD notification... the app can go to the wrong entry (the entry occupying the ID formerly occupied by the KWOTD).

Probably not worth the effort to fix, since a lot of things have to line up for this to even be reproducible, and going to a different random entry than the one chosen by KWOTD isn't the worst thing in the world.

Add button to update database manually.

Request is to have a (supported) button to update the database manually. Currently, this is possible when the "Unsupported features" option is enabled. The request is to make this supported.

Blocked by De7vID/klingon-assistant#369 as database updates are flaky as long as it's using the old API.

swipe indicator should be shown when there are many results

When in an entry which is the result of a search, a series of dots is shown at the bottom of the screen to show that the user can swipe between the results, if there is room. However, if there are many results (I think over 20), the indicator isn't shown as the dots would otherwise just run into each other.

Instead, some kind of indicator should still be shown. Perhaps the discrete dots can merge into a continuous line.

use downloadable fonts

Android 8.0+ has the ability to dynamically download fonts. Most user will probably never use either of the pIqaD typefaces, so it would cut down on the download size to load them only when needed.

when "swap {Q} and {q}" is enabled, "Analyze" goes to wrong entry

This only happens for entries which are "deriv", the components are not explicitly specified (i.e., they are generated automatically by boQwI'), and one of the components has a q.

For example, puq chonnaQ results in the components puQ (instead of puq) and chonnaQ.

handle "ngh" in xifan hol mode properly

The expandShorthand function can only expand "ngh" in one way, which means that it won't find both {n} + {gh} (as in {nenghep}) and {ng} + {H} (as in {vengHom}).

There's a workaround in PR #45 but it's not a real fix. It specifically looks for the entries in the database which have {ngH}, but requires updating if another such entry is added to the database.

rewrite parser using ANTLR

Instead of custom parsing logic, use a tool like ANTLR to generate a parser (e.g., to Kotlin).

That would make it easier for others to understand as well.

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.