Dark mode, i18n, Dockerfile, resource bar #80
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hey folks! What an amazing job you have done with the project!
I play for a week, initially wanted to add dark mode only because light mode gives me dry eyes :) I used
next-themesto make it work, no logic was added from my side.During the game I also needed to scroll around to sync my brain with the game state, in particular to know how many resources I had etc. PC games I played use an always visible "resource bar" for these, so I thought to add something like that. To keep it simple, I just copied the contents of
Playerscomponent. In order to do that I had to break it into explicit components. This job was done by Gemini :)Then I saw i18n issue and decided to give it a hand. I used
next-i18nextto manage translations themselves, and added a rather crude middleware to choose between locales. It will always redirect clients according toaccept-language. I chose this implementation because game creators currently need to share game links with players and they have no knowledge which language the players prefer. To parse the header I used the same codenextuses internally, just copied their implementation as-is :)Translation works by looking up literal strings used in game models, no logic there. There is no plurals or context support. The card overview page was really helpful to track strings on cards.
I host my own instance in k8s, so added a simple Dockerfile to create images.
I ignored the tests completely lol, let's add them if you think they are relevant.
Sorry for the huge PR!