Giter Club home page Giter Club logo

translationhelper's People

Contributors

retailcoder avatar vogel612 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

translationhelper's Issues

Adding a new locale should create the relevant file

Adding a new locale without the referenced file existing results in exceptions. Since our error-handling is bad, this is bad. We can avoid creating errors by creating the necessary file. Probably just an empty resx-definition should be sufficient.

We could also make the code loading ResourceSets more resilient. Decide on which (if not both ideas) to implement and fix this mess

Get the file Path out of the executable call

The TranslationHelper could just prompt the user for the Folder / File to translate at the beginning of execution.

Beware that there may be different Filenames under the same Folder. Locale switching also needs to adapt!

A view to edit a project and to choose files to translate.

It must be possible to configure projects from within the Application.
This means we need to allow:

  • Adding resx-filesets
  • Possibly support different kinds of locale-retrieval (folder-structure over file-names??)
  • Adding Locales (and directly adjusting the files necessary)
  • Specify a default locale label

Correct startup behavior of ResxChooser

On Startup the localeCache of ResxChooser is not filled correctly with the available locales.

Chosing the same file as given on startup does fill the cache correctly.

Investigate and fix.

Allow choice of actually arbitrary files

Well almost. It should be possible to choose an arbitrary .resx file (including a Language-LOCALE combination) and use that as the basis for Translations.

Edgy points and Todo list.

  • Caching of different Lang-Locales in the Model
  • Path restrictions in Main
  • Filename restrictions in the Model
  • Chosing Lang-LOCALE for the respective sides when changing the file checked.
  • Startup (see #17 )

ErrorHandling

NullPointerException in FilesetOverviewModel ln. 72 and all the other stuff that can go wrong should result in some useful feedback to the user.

Available Locales doesn't work

We do have the Locale-choice dialog. Unfortunately it seems to not quite get notified about which locales are available. Investigate and fix

Left-side is readonly?

The UI doesn't make it very clear that the left-hand side resx is readonly, and the resx to edit goes on the right-hand side.

It's not necessarily a problem, but then there should be a one-click button to swap the two sides.

Persist Project Configuration

It must be possible to persist (and retrieve) project configurations, preferrably in plaintext.
Project files should keep references to the .resx files used, their names and what locales should be available.

Display two language resx-files side-by-side

Display the relevant translation keys side by side.
Depending on my mood any keys not present in the "root" file may or may not be displayed.

In the very least we need all keys of the "root" file to show up properly.

The probably best solution for this is a table-like structure. Stay scrollable ;)

Expose greater Key-Based functionality

Right now for translation you will need to click at least thrice:

twice to open the window (yes doubleclick is two clicks...)
and once to say: "Okay this one's in"

It should be possible to get the translation window to show up when pressing Return, to accept a translation with return and to cancel a translation with edit.

For the translation: respect multiline translations! (Shift + Return should be good)

The ProjectView is ugly

The css-drop-shadow on selection makes everything unreadable. All the stuffz are too close, and the general design needs a bit of an update.

Do that "unsaved changes" thing

So I just stumbled upon this in the code:

// FIXME: send that to the presenter so we can clean up and close shit!

and my past self is completely right. We should check the WindowClosing event for unsaved changes and prompt the user when they want to close this

Edit a translation

Edit a single translation.

It may be preferrable to do this in a separate view. Important to note is, that the "root file" may not be edited in this case.

The simplest is probably a small frame with one display box one textbox and two buttons

No feedback on save?

Clicking the "Save" button produces no feedback whatsoever: it's impossible to know if the save was successful without actually going and verifying the file.

Also the button has no feedback on hover or on click, so we don't actually know if anything happened.

Table-Row Highlighting for JavaFX

Currently the TableView in the JavaFX version of the Overview doesn't highlight rows like the Swing implementation does.

Fix this.

Event-Driven Communication isn't really event-driven

The Communication between Presenter, Model and View needs an overhaul.

Instead of the Presenter registering itself at the Model and View, those two should expose methods to allow event subscriptions, preferrably over @FunctionalInterface and related methods.

UI Cleanup

Clean that UI up. Especially the ResxChooser is atrocious.

JavaFX switching Scenes shouldn't forget the Scene sizes

If you switch the Views, the Scene resizes, since the same Stage is used. Unfortunately this means the size is forgotten anytime you switch scenes.

Proper fix is: Create a scene for every view instead of sharing one.

This should already work properly if we actually start to implement .hide in the Views / Controllers

Investigate and fix high memory and cpu consumption when editing

So after using this for a while I began to realize that the process begins to hog incredible amounts of memory and cpu time.

On my machine it started out with ~3% mem / ~0.4% CPU. When performing around 10 edits the respective values are. ~30% mem / ~ 180% CPU. These values are reported by Ubuntu's top.

These values also negatively affect UI. The translation view takes time to display and then often shows the previously edited Translation. Also the Table in the OverviewView updates tremendously slow

Allow changing the currently translated locale

So maybe someone wants to use this for something other than German...

also I rather dislike how the model loads the Document right now, and I need something to kick off the refactoring, so... this is it.. kinda

Gotta load 'em all

Feature request /enhancement: instead of browsing for individual .resx files, it would be nice if the tool could just prompt for the solution folder, and recursively pull every .resx file there is to find.

The editor would need a new "Source" column to show the source file for every key.

That way we could translate all files in one go.

Proper Dialogues need to be implemented

PopUp dialogues should be moved out of the OverviewView Implmentations into a separate class.

We need:

Title, Prompt, OK, [Cancel], [Ignore]

OK, Cancel and Ignore need blocking callbacks, the Dialogues should be Application Modal and respect the chosen UI Framework

Creating a new project from scratch

Currently we need to hack around to create a new project from scratch.
One way to fix this would be adding an option for a new project when choosing a file (bad, because mixed responsibilities) or creating a new project if we get an empty file.

Expose the Translated Key in the UI

Sometimes for asking back at the rubberduck team, it's better to have the Key that needs to be translated, so they have a better context and can give good advice to translating...

For this the simplest approach is exposing the key in the UI.
Best in the Translation View

Remove hardcoded paths from Main

Retailcoder.VBE/UI isn't guaranteed to remain that way. Also since the .resx files are probably going to be split up, We cannot rely on their name in any way beside `Foo.LANG(-LOCALE)?.resx'

This needs to be fixed for Main

Allow searching in the current Translation

While Translating one might wonder how a certain phrase was translated.

It's important to be consistent and as such it helps if you can search for previous translations of the same word by checking through the previous values.

Updating ResourceSets in the ProjectOverview should have consequences

Updating anything in ResourceSet panels doesn't have any consequences (if we ignore adding and removing locales).

Changing resourceSet values should update those. We may need to retroactively reconfigure resource discovery.

Additionally adding and removing resourceSets currently is only possible by manually editing the project file, which means it's a mess.

Add Sorting-Options

While Translating the last swoop of Changes I saw "Type" and "Module" at least thrice or so.

It might be interesting to find similar Words for Key-Maintenance. As such it might be helpful to support ordering the table alphabetically by Value and not by key

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.