machiav3lli / derdiedas Goto Github PK
View Code? Open in Web Editor NEWThis project forked from digitapex/derdiedas
Android app for learning genders of German nouns
License: MIT License
This project forked from digitapex/derdiedas
Android app for learning genders of German nouns
License: MIT License
Humbly suggest changing the icon for one that does not make the app look like a system app.
I only noticed now just before trying to install that the minimal required Android version is now 7 (compared to https://github.com/digitapex/DerDieDas's 4.0.3).
Given it was changed at the very start of the fork and it is a pretty large version gap, I have to ask: was this intentional?
Would you consider lowering it?
Please do not worry too much about testing:
Security-wise supporting so old devices seems reasonable to me as the app itself requires no permissions.
What happens if a word is not translated? Wil it not present at all? This seems to be the case based on my statistical test with Norwegian (15 % translated): the first thirty words or so have translations.
I suppose this is the best, if only because there must surely be homonyms that are only disambiguated by gender. Is that the case?
I am asking because during translation I was inclined to not translate words that are idential (except for case), like Hotel which is hotel in Dutch. It not showing up in the app means fewer letters on the screen, less distraction. WDYT?
First, thank you to @digitapex and @machiav3lli for this app! Super useful!! :)
In the description of the app I read that after answering 5 times correctly, a word is never shown again.
If that's true I think this is not ideal. If I spend half hour learning, I can get words right 5 times in a row, but that doesn't mean I'll remember them one day or one week later. What do you think about adding further repetitions with exponential delays? for example 1 day later, then 2 days later, 4, 8...
I don't know what's the ideal progression. I found this page talking about it: https://e-student.org/spaced-repetition/
I think adding these extra repetitions would make sure that I actually didn't have things in my short term memory.
I am running 2.1.0 from F-Droid.
In the app's settings the Dutch translation is not available. Other languages that have a smaller part of the words translated are available.
Could the Dutch translation made available, or is the fact I don't see it a bug?
When the word "Rheintal" appears and you choose correctly "Das", then "Das" turnes red and no "correct" altetnative blinks in green. When the next time you choose another article, then the chosen(wrong) article turnes red and "Das" blinks in green. There is no possebility to coninue at that point.
Hello, I just noticed a mistranslation on your otherwise great app! The translation link in the Readme did not work, so I am reporting it here.
"Die Uhr" is translated in the app as "Hour" but the correct translation should be "Clock" or "Watch". I am native German and various dictionaries seem to agree too. :)
"Die Stunde" would be the correct word for "hour".
German IPA transcriptions could be used to improve the App. They could be optionally displayed and should be easy to implement.
The IPA transcriptions from Wiktionary are very accurate and there are more than 600,000 words with its transcriptions. All the German IPA transcriptions can be downloaded here in .txt format:
https://mega.nz/file/cVg1iAKJ#xB_qoctX9eYaD5JDfiqLnYh4PWKdpEOL_J4fkBGubFY
They were obtained from: https://github.com/bmilde/wiktionary_ipa_phoneme_lexicons
IPA Transcriptions from www.dwds.de are also available. They were scraped and published as a .txt file:
https://mega.nz/file/0UhGXazI#4TNAYAFQZ5SL_25uS9nc8SHn1RcNHcPtQnYikNJNmcw
from: https://zhuanlan.zhihu.com/p/372024872
Running Android 8.1
I think I have the 2.0.1 version of the app
To reproduce, enter practice mode.
Tap any article
While the red and green colors are displayed, before the screen proceeds to the next word, again tap any article.
The app then stops.
When the app is restarted it says I have fully learned all the words.
With version 2.0.1
Double click on button, returns to start menu and stats says all words learned
With version 2.0.1
If stat says all words are learned, click on practice, answer that you want to start again. The app will go back to start menu Instead of going into the practice screen.
with v2.0 from f-droid:
First launch, I use it a little bit to learn, then quit the app, then relaunch the app.
At that time, when clicking on "stats" there is a crash. (btw most time it does crash, but sometimes it doesn't...)
device: xiaomi redmi note 9s with android 10
logcat says:
07-15 15:28:38.282 21707 21807 E AndroidRuntime: FATAL EXCEPTION: Thread-2
07-15 15:28:38.282 21707 21807 E AndroidRuntime: Process: com.machiav3lli.derdiedas, PID: 21707
07-15 15:28:38.282 21707 21807 E AndroidRuntime: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:8397)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:1496)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.View.requestLayout(View.java:24779)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.View.requestLayout(View.java:24779)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.View.requestLayout(View.java:24779)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.View.requestLayout(View.java:24779)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.View.requestLayout(View.java:24779)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.View.requestLayout(View.java:24779)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(Unknown Source:3)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.view.View.requestLayout(View.java:24779)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.widget.TextView.checkForRelayout(TextView.java:9718)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.widget.TextView.setText(TextView.java:6296)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.widget.TextView.setText(TextView.java:6124)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at android.widget.TextView.setText(TextView.java:6076)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at com.machiav3lli.derdiedas.ui.StatsActivity.Q(Unknown Source:61)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at com.machiav3lli.derdiedas.ui.StatsActivity.K(Unknown Source:0)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at com.machiav3lli.derdiedas.ui.h.run(Unknown Source:4)
07-15 15:28:38.282 21707 21807 E AndroidRuntime: at java.lang.Thread.run(Thread.java:919)
Warm greetings!
Can be added a Spanish translation for the GUI?
ATM this fork seems the most lively one: any plans to fix digitapex#2, impleement digitapex#4 or even digitapex#5?
Are MRs welcome? (No promises though.)
The error above occured after the update to 2.0. As long as you do not press the stats button, you can play the game. After pressing the stats button the app shows all words as fully learned and it is not possible to continue playing. After every reinstall the same issue.
Please change the answer bg color from the current red/reddish color to something like green. Using red to show the correct option is quite confusing. Users that have tried the app thought they selected the wrong answer, when in reality they chose the correct one.
Using a color that is associated with "correct" instead, like green, would solve this issue.
with v2.0 from f-droid:
First launch, I use it a little bit to learn, then quit the app, then relaunch the app.
At that time, when clicking on "practice" there is a crash.
device: xiaomi redmi note 9s with android 10
logcat says:
d84
07-15 15:24:26.739 21457 21457 I chatty : uid=10356(com.machiav3lli.derdiedas) identical 15 lines
07-15 15:24:26.739 21457 21457 D ForceDarkHelper: updateByCheckExcludeList: pkg: com.machiav3lli.derdiedas activity: com.machiav3lli.derdiedas.ui.WordActivity@47cbd84
07-15 15:24:26.743 21457 21457 D AndroidRuntime: Shutting down VM
07-15 15:24:26.752 21457 21457 E AndroidRuntime: FATAL EXCEPTION: main
07-15 15:24:26.752 21457 21457 E AndroidRuntime: Process: com.machiav3lli.derdiedas, PID: 21457
07-15 15:24:26.752 21457 21457 E AndroidRuntime: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at java.util.ArrayList.get(ArrayList.java:437)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at com.machiav3lli.derdiedas.ui.WordFragment.O0(Unknown Source:21)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.Fragment.n1(Unknown Source:4)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.s.f(Unknown Source:261)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.s.m(Unknown Source:116)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.l.d0(Unknown Source:277)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.l.Z0(Unknown Source:84)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.l.a0(Unknown Source:21)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.l.S(Unknown Source:42)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.l.y(Unknown Source:11)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.g.c(Unknown Source:4)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.fragment.app.d.onStart(Unknown Source:15)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at androidx.appcompat.app.c.onStart(Unknown Source:0)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at com.machiav3lli.derdiedas.ui.WordActivity.onStart(Unknown Source:0)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1433)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.Activity.performStart(Activity.java:7923)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3332)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.os.Looper.loop(Looper.java:224)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7562)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
07-15 15:24:26.752 21457 21457 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
07-15 15:24:26.758 1664 4651 W ActivityTaskManager: Force finishing activity com.machiav3lli.derdiedas/.ui.WordActivity
07-15 15:24:26.758 1664 21511 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
07-15 15:24:26.759 1664 4651 D ActivityTrigger: ActivityTrigger activityPauseTrigger
07-15 15:24:26.761 1664 4651 W ActivityTaskManager: Force finishing activity com.machiav3lli.derdiedas/.ui.MainActivity
07-15 15:24:26.763 32437 2492 D Launcher: get showing item successnull
0
The APK attached to release 1.2.1 identifies as 1.2.0:
package: name='com.machiav3lli.derdiedas' versionCode='1200' versionName='1.2.0'
Looks like that affects versionCode
as well, so it won't be considered an update by Android. Can you please replace it with a fixed one? Thanks!
When clicking on "Die" for "Samstag", " Die" turns solid blue (according to description on F-Droid this indicates a correct answer) but at the same time, "Der" flashes red several times. This is what happens wih all words - one box lights up blue and one, or sometimes both the other buttons flash red. It's very confusing.
Teil can be masculine when used as a synonym for Anteil.
When translating strings, the article (or gender) is not presented. This is because the articles are elsewhere in DerDieDas. This is a problem. Without the gender you cannot always be sure what its meaning is for some words like Der See / Die See and Der Teil / Das Teil.
As such, when one knows only one meaning of such nouns, there is a good chance that the word gets a wrong translation (wrong in the sense that DerDieDas has decided on a different gender and thus different meaning).
DerDieDas has 9963 words (app/src/main/res/raw/list_nouns.txt
). On Weblate are only the first 1200 words. Why is that?
I believe it could help those of us with visual memory to see the article appear in front of the word when we tap one of the three options.
Currently the noun (above) and the article (below) are separated, which is fine while we think about it.
Once I tap an article, I pronounce (and hear) the correct version, but I would also like to see the correct version in the screen to save it in my visual memory.
At least in the translations of Dutch, English and Norwegian the case is wrong.
In German nouns start with capitals. In most other (European) languages this is not the case.
If nobody objects, can we investigate if this is can be (semi-automatically) repaired? For instance, starting with the Dutch translation where I would primarily like to see the change (and then see if there is anyone interested in the same trivial change).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.