Git Product home page Git Product logo

localehub's Introduction

Localehub

This application is dedicated for non-developer people who are in charge of adding/updating I18N (Internationalization) support to an existing application.

Pain #1: Non-developer people aren't comfortable with editing codebase directly on github or within any tool or IDE that can access production code ... and they are right!!

Pain #2: Existing tool which provide an interface to edit I18N strings doesn't support the concept of branch. As a result, when people from the marketing team edits I18N strings, an other developer may have pushed a new piece of code which overrides these editions.

Table of content

Features specification

MVP - v1.0 (Milestone)

  • Login
    • DONE Login to the application from a github account.
  • Projects
    • DONE Create a project from an existing github repository.
    • DONE List created projects and show the number of I18N strings, available branches, and, supported languages.
    • 🔜 TODO Support switching github branches.
    • DONE Refresh the list of branches
    • DONE Delete a project
  • Translations
    • DONE List all translations of an i18n files with a tree representing the structure of the json object.
    • DONE Add a new locale
    • 🔜 TODO Remove a specific translation / an entire locale (in all supported languages)
    • 🔜 TODO Move a locale somewhere else in the tree
    • DONE Edit an i18n string and save it. A pending change must belong to a branch name.
    • DONE Undo a pending change
    • DONE Preview pending changes before committing.
    • DONE Commit pending changes and create a pull request
    • 🔜 TODO Improve robustness of committing changes.
  • Notifications
    • 🔜 TODO Receive notifications from github on each change on the current repo and see if it affects his current work.
    • 🔜 TODO Apply each pending change when a github update affects i18n files
    • 🔜 TODO Customize watched events via the Settings page

Additional cool features - v1.1 (Milestone)

  • 🔜 TODO Change navigation for small screens
  • 🔜 TODO Search engine for locales
  • 🔜 TODO Automatically find translation files according to project type (Rails, Django, Play, Symfony, ... all these frameworks have usual location for them)
  • 🔜 TODO On a specific translation, the user can see
    • if it contains a valid HTML tags,
    • if this strings has pluralized version,
    • how many variable the string contains
    • how many time it is used in the code
    • usages of this translation in his code

Known limitations

Github limitations

Application limitations

  • There is no i18n key named ##ROOT##
  • Working branches must not be suffixed by -localehub-(0-9)*

Project Installation

git clone [email protected]:yllieth/localehub-mock.git
git clone [email protected]:yllieth/localehub.git
cd localehub
npm install
npm start

Mockups

Login

Screenshot

Projects list

Screenshot

String edition

Screenshot

String addition

Screenshot

AWS account: https://673077269136.signin.aws.amazon.com/console

localehub's People

Contributors

yllieth avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

localehub's Issues

Add metadata on a locale

On a specific translation, the user can see

  • if it contains a valid HTML tags,
  • if this strings has pluralized version,
  • how many variable the string contains
  • how many time it is used in the code
  • usages of this translation in his code

Commit pending changes and create a pull request

Commit changes

  • Commit from the preview modal
  • Check result on github

Commit and create PR

  • When click the Create pull request button, show the list of contributors to select PR's assignees
  • Create a PR
  • Assign selected contributors to the PR
  • Check result on github

Refactoring

  • Move commit & pul request routes from project/:id
  • Move commit, pullRequest, and assign methods from the projects service

Refactor all models / service in dedicated folder

Once #13 is merged, new folders are going to appear : app/+models, app/+services. Move the followings in its appropriate place:

  • app/projects/projects.service.ts
  • app/projects/shared/project.ts
  • app/projects/shared/group.ts
  • app/projects/shared/user.ts
  • app/projects/shared/translations.ts (comes with #12)

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.