GithubHelp home page GithubHelp logo

metaphrase-dev / metaphrase Goto Github PK

View Code? Open in Web Editor NEW
22.0 7.0 4.0 2.59 MB

Metaphrase is a copy (writings, translations, etc.) manager that you can host on your server or computer.

License: MIT License

Rust 56.35% HTML 0.40% Makefile 0.13% JavaScript 9.83% Vue 27.82% Shell 1.58% Ruby 1.85% CSS 2.04%
translation internationalization rust writing-software

metaphrase's Introduction

Metaphrase

Metaphrase is a copy (writings, translations, etc.) manager that you can host on your server or computer.

Install

To make sure you don't run into trouble, make sure you have both npm and libsqlite3-dev installed on your computer, as they are requirements (for building the frontend part and the storage part of Metaphrase).

make install

Configure

Configuration is made with environment variables:

DATABASE_URL=database.sqlite
DATABASE_BUSY_TIMEOUT=250
METAPHRASE_BIND=127.0.0.1:3000

Migrate database

make migratedb

Build (backend & frontend)

make build

Run

make run

Development

Frontend

To hack the frontend (after running make install at least):

cd src/frontend
npm run dev

The frontend project is handled using ViteJS, so you should have a very quick feedback loop on your changes. It's also configured so it will mirror the calls to the backend engine as soon as it is run on default URLs (backend on localhost:3000 and frontend on localhost:3100). Feel free to edit the src/frontend/vite.config.js locally to change those values.

Tests

So that you do not conflict with the development, use these environment variables:

export TEST_DATABASE_URL=test-database.sqlite

You can run the tests with make test.

To run a specific test, use make test TEST=test_name. Example:

make test TEST=api::v1::translations::tests::test_validate_with_success

metaphrase's People

Contributors

dependabot[bot] avatar ptitfred avatar rlustin avatar signez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

metaphrase's Issues

Rename the project to `metaphrase` (or any other name)

I strongly think that even if it sounded nice at the first place, the name of this project will hurt its adoption if it grows at some point.

It won't take much to rename it now, and I suggest the name metaphrase (which is an synonym of translation in English according to thesaurus.com), that could be easier to remember and search on the web!

(I would also suggest to move the repository to an organization that share the same name, to reduce the bus-factor, but it's up to you, dear @rlustin :))

Possible improvements compared to Localeapp

This is a translation of an old rant file against Localeapp, as Metaphrase is supposed to be a better Localeapp with the same hierarchical folder/key/value behaviour, it can have some value.

  • Search that actually works:

    • Select to search amongst key names or values
    • Select a language to search in
    • Advanced search keywords: exact expression, OR / AND
    • When displaying search results, display together all values of a translation (other languages too)
  • An interface that allows to batch translate from multiple source languages and to multiple target languages. Ex: filter all non-completed locales in one or multiple selected target languages. Have then an interface that allows to see a list of untranslated locales and jump from one to the other (tab), while seeing side by side the multiple sources and multiple targets.

  • Keep historical versions of locale values (and access previous versions).

  • Deal with similar content to be translated, helping to keep consistency and save time while translating:

    • Internal dictionary for official "business" (vocabulaire métier) translations? E.g. have somewhere FR: billets is ES:billetes and not ES:boletos.
    • Auto-complete suggestions based on previous translations or internal dictionary
    • Link to similar content in other projects: "this Android text is similar to iOS text, check-it out (link)".
  • Help (keyboard shorcut?) inserting variables, like %{my_variable}.

  • Typonazi / grammar nazi features: highlight any problem, auto-correct missing Espaces Fines Insécables or Apostrophes Courbes…

  • Proper URLs : one URL for a specific key or folder

  • Easily manipulate keys and folders:

  • Create a new key inside an existing folder from the folder page

  • Delete keys while being redirected to the parent folder instead of the home folder

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.