Giter VIP home page Giter VIP logo

web-lexica's Introduction

web-lexica (beta)

A web version of Lexica

News

Android App Support/Language Settings

It's been a while, but development has resumed on web-lexica with two new features:

  • Android App support
  • Language Setting

Language Setting

You can now explicitly set your preferred language in the preferences menu! This is a small update, but I'm sure that it will be helpful for you if your preferred language was not automatically chosen.

Again, many thanks to those who continue to provide translations via Weblate!

Android App Support

This is a minor feature, but if you've been annoyed that your friends continue to send web-lexica game links instead of app links, you will enjoy this: There is now the option to open the Lexica app when you open a shared multiplayer game.

You can also choose to always open shared games in the Lexica app, however, due to safety reasons, most browsers will not allow a web page to open an app without some sort of user input, so, as a good second option, you will now be presented with a big button to open the shared game in the Lexica app.

Translations working again!

Sorry for the lack of updates on the locked weblate translations. A few settings needed to be adjusted, and now Weblate translations are truely implemented. We apreciate the community support!

Now with translations!

Web Lexica now has translations! This is a new feature and may have some bugs. If you find any, please create an issue.

If you would like to contribute to translations, check out the Web Lexica Weblate Project, and please see these instructions for using Weblate to hlep translate web-lexica.

Many of the current translations have been re-used from Lexica. A deep thank you to all who have previously given there time to help translate lexica.

New game/game mode: Lexicle

Love playing Wordle? Try playing with a Lexica twist! Give it a try.

New game mode: Time Attack

Race against the clock, gaining more time with each word found! Give it a try.

Note, this game mode is not currently compatible with Lexica, but this could change in the future.

The goal of this project is to fully replicate everything Lexica can do.

There are still a lot of rough edges with the project, but, all in all, it is in a playable state for both desktop and mobile users.

While it is still in beta, web-lexica is compatible with the core features of Lexica: game modes, languages, and game-play

Here are some things that web-lexica adds to Lexica:

  1. Visual feedback: When guessing, the letters will flash to show if the guess is correct, incorrect, or a repeat guess
  2. Time Attack game mode
  3. Visible game details while in-game. Never forget the minimum word length again
  4. Cross-platform compatibility. Anyone with a modern browser and a web connection can join in the fun.

Here are a list of its noteworthy shortcomings:

  1. There are no preferences (Language, theme, etc)

Less important, but still missing, items are:

  1. Several poor App layouts/styles/interactions. If you enjoy web-lexica, but get tripped up by something in the design, please feel free to submit an issue detailing the problem and suggested improvements
  2. When creating a multiplayer game, the QR code leads to the Android App's landing page, with no option for a direct link to a web-lexica game (The page's URL does dynamically update though, and can be used to share games)
  3. Board rotation has not been implemented
  4. A post-game Share option has not been implemented
  5. The post-game summary does not not include dictionary links or a preview board

The app currently uses the excellent Solarized color scheme, the licence to which can be found here

Some changes to the layout have been made depending on the device being used. If the game is in portrait, it's display is very reminicient of Lexica's layout:

Portrait Image

When the game is being played in landscape, it will display like so:

Landscape Image

Other similar changes have been made to the results page.

Contributing

Pull requests are appreciated!

Note, since this project is still in beta, it is highly volitile with sweeping changes being made on a regular basis

Reporting issues

Please report any issues or suggest features on the issue tracker.

Development

You will need to install NodeJS as well as YarnJS in order to run and compile this project

This project uses create-react-app and, after running yarn at the project's root folder, can be spun up by running yarn start for development.

For production-ready builds, yarn build can be run.

The project also uses Storybook for individual React component tweaking and documentation. The Storybook stories have been neglected lately and may or may not have up-to-date settings and documentation. Storybook can be started by running yarn storybook

The app uses lexica.github.io's language API in order to load dictionaries and other language metadata.

For offline development, you can use the populate-mock-api.sh script to populate the mock-api folder with a local copy of Lexica's api retreieved from lexica.github.io. you will then need to host that folder (npx serve ./mock-api for example) and, unfortunately, change the proxy field in package.json to point to your static server.

Attribution

Wordle word list: Valid words

Wordle word list: Answers

web-lexica's People

Contributors

atalanttore avatar bgo-eiu avatar eddsaura avatar mattrcole avatar milotype avatar oersen avatar pserwylo avatar rezaalmanda avatar santossi avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

web-lexica's Issues

Info Page

This is to maintain current functionality of the Lexica web page. Specific requirements below:

  • Info on how to submit bugs
  • Donation buttons
  • Download buttons
  • Add to Home Screen button

Add the string "Croatian"

Add the string "Croatian" for translation to the Language and Game Titles component in the "Web Lexica" project, just as you've added it in the Strings component in the "Lexica" project.

BTW, there is no need to use hr_HR in the key definition. hr is sufficient.

Settings Page

In general, Web Lexica needs a settings page, but specifically for this project, it is needed to allow the user to change preferences of how shared games are handled.

  • Ability to change how shared single player games are handled (always in-browser, always in-app)
  • Ability to change how shared multiplayer games are handled (always in-browser, always in-app)
  • Other general Web Lexica settings

Board is re-used between games

Unless a user hits the Refresh Board button, the same board is always used.


This happens because the useGeneratedBoard hook lives pretty high up in the component tree in order to avoid accidental re-renders.

A fix for this will need to avoid re-generating the board until after a user is done with their game

Share game Landing Pages

The web page will need some landing pages for users to decide where to play the game. Requirements listed below:

  • If user is on Android, should offer to open up Lexica app
    • Maybe with option to always open Lexica app if possible (or minimize user input to simply page-size button that redirects to app)
    • Option to always continue to web-lexica
  • Have an HTML-only view of pages to show if user doesn't have javascript running (hard, optional)

Translations

One of the best parts of Lexica is that it has a large toolset to allow the extension of the game via translations of in-game text, additions of new languages to play games in, etc.

Unfortunately, on the web side of things, the app is only usable in one language: English.

A way to leverage the translations made for Lexica in Web Lexica should be considered. However, if this isn't done carefully, really crappy inter-dependencies between the apps could be created.

Let's discuss the following:

  • Should Web Lexica try to use the same translations that Lexica uses
  • If it should, what's a good way to go about using them

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.