Langua is a suite of language tools that can be used for testing, experimentation, learning, analysis, or creation. There are several main tools: Gen, Morph, Deriv, Frequen, and Tree.
LanguaGen is a tool for automatically building a set of words based on arbitrary rules of phonotactics. This can be used to create a dummy vocabulary for linguistic experimentation, to generate words or names for a naming language in a work of fantasy or science fiction, or as the basis for building the vocabulary of a constructed language.
LanguaMorph is a tool for modeling historical sound change according to arbitrary rules of phonetic change. It can also be used to reverse historical sound change according to those same rules in order to guess at a word's proto-language roots.
LanguaDeriv is a tool for modeling word derivation according to arbitrary rules of morphosyntactics.
LanguaFrequen is a tool for analyzing phoneme frequencies in a given text.
LanguaTree is a tool for drawing and labeling syntax trees.
Langua is a web-based tool built on JavaScript, and it does not use a database, so it can be installed almost anywhere without need for running a back-end server. You simply need to run the build command to build the files, then deploy to your site.
If you are installing Langua in the subfolder /langua (e.g. *.com/langua/
), all you need to do is build and deploy:
- Download and unpack the latest release.
- Install the dependencies with
yarn
. - Build the project with
yarn build
. - Copy the contents of the resulting /build folder into the /langua subfolder on your server. You're done!
If you are installing Langua in a subfolder (e.g. *.com/languages/
), you will need to change the basename for the router before you build the project:
- Download and unpack the latest release.
- Install the dependencies with
yarn
. - Open
Router.js
and change<BrowserRouter basename={'/langua'}>
to<BrowserRouter basename={'/yoursubfolder'}>
. - Build the project with
yarn build
. - Copy the contents of the resulting /build folder into the appropriate subfolder on your server. You're done!
If you are installing Langua in a website's root (e.g. a URL that ends in .com
, .org
, or similar):
- Download and unpack the latest release.
- Install the dependencies with
yarn
. - Open
Router.js
and remove thebasename
prop by changing<BrowserRouter basename={'/langua'}>
to<BrowserRouter>
. - Build the project with
yarn build
. - Copy the contents of the resulting /build folder into the root of your server. You're done!
Langua uses an unstable Master branch. The master branch is used for development, while stable versions are provided as releases. Version numbering is similar to Semantic Versioning; versions are listed as x.y.z., wherein z refers to bug fixes and very minor updates, y refers to minor additions and updates to functionality, and x refers to major updates or overhauls to the program that significantly impact workflow or the use of the program.
For a full list of all changes made in each version of Langua, see the Changelog.
- v0.0.x: Building the architecture of the site.
- v0.1.x: Building the Gen tool; bug fixes and other small updates.
- v0.2.x: Gen tool basic functionality working; building the Frequen tool; bug fixes and other small updates.
- v0.3.x: Gen and Frequen tools basic functionality working; building the Morph tool; bug fixes and other small updates.
- v0.4.x: Gen, Frequen, and Morph tools basic functionality working; building the Deriv tool; bug fixes and other small updates.
- v0.5.x: Gen, Frequen, Morph, and Deriv tools basic functionality working; building the Tree tool; bug fixes and other small updates.
- v1.x.x: All tools functional; bug fixes and ongoing development.
Please review the contributing guidelines and code of conduct before contributing.
See also the list of people who have contributed to this project.
Langua was inspired by several existing tools, including:
- Awkwords
- Gen
- SCA2
- ConWorkShop PhoMo
- The Derivizer
- The Frequentizer
- phpSyntaxTree
- SynTree
- RSyntaxTree
Thank you to Travis CI, BrowserStack, Dependabot, and Codacy for offering free services to open source projects!
Langua is licensed under the GNU Affero General Public License v3.0.
Want to support continued work on Langua? Help me out with a couple of 🍻!