Coder Social home page Coder Social logo

kapix / polyglot Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 2.09 MB

Translation system for Haiku's catkeys, tailored for translating apps from different authors

Home Page: https://i18n.kacperkasper.pl

License: MIT License

PHP 80.01% Twig 19.65% Dockerfile 0.34%

polyglot's People

Contributors

kapix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

humdingerb

polyglot's Issues

Dark mode

It'd be nice if Polyglot had a dark mode for those who prefer using dark mode - Haiku's website has dark mode and nephele is working on dark mode for our documentation so it'd be nice if all of Haiku's websites/web apps eventually had dark mode.

Thanks!

On "Add files" page, add explanatory paragraph

Some apps have several catkeys for different parts of the software, like for the main "Application", a "Library" or "Tracker-addon". Here you can add those different sub-projects.
Normal, "single-projects", should be named "Application".

Glossary: Add headers to text boxes in "new entry" page

While it should be obvious which column is for the original and which is for the translated text, adding a title above those text boxes may be a good idea. Should be the same as on the actual Glossary index page. There it is now "Text" and "Translation".
Maybe those can be changed to "Original text" and e.g. "Polish translation", to make add another indicator in which Glossary we are.

Always create all languages with a new project

IMO it would be OK to automatically always create all available languages when adding a project.
People come to add new translations, and will first have to contact an admin to add it, if it's missing.
In fact, as soon as a new language is added in the Polyglot settings, it should be added to all existing projects as well.

Uploading en.catkeys fails for an app's "Administrator"

janus is "Administrator" for Slayer, as he added the Slayer project after I upgraded his Polyglot role to "Developer". He tried to upload an updated en.catkeys for Slayer, but got the "Whoops, looks like something went wrong" error.
I, OTOH, had no problems uploading the new Slayer en.catkeys.

Uploading catkeys fails

I just added Vision to Polyglot and uploaded the en.catkeys. That worked well.
Then I tried uploading the existing de.catkeys and uk.catkeys. Here I keep getting the error "The catkeys must be a file of type: text/plain.". I made sure the de.catkeys are text/plain.

The en.catkeys and uk.catkeys are locale/x-vnd.Be.locale-catalog.plaintext (saved from CatKeysEitor I assume).

I uploaded a zip with de and uk at https://0x0.st/stV0.zip

Add widget to clear search/filter

I'd be nice to have a little widget (maybe a "X" or "Clear" button) to clear the search/filter view.

After you enter a search term and press RETURN or click the Search button, the view changes to show only the matching blocks. If you want to go back to the unfiltered view, you have to manually clear the search text field. If you're distracted and forget to hit RETURN/click "Search" you're wondering why you still have a filtered view.
The widget could indicate if the current view is filtered by being disabled when the view is unfiltered.

Add favicon

Currently it seems that Polyglot doesn't have a favicon on display in the tab, maybe it would be good to add one (maybe the image of the Y with the globe and flags), perhaps using a tool like this?

Thanks!

Allow exporting all/finished catkeys of multi-module projects

If a project has several 'modules' - like Pecorename (Application and Add-on) - you cannot export all/finished catkeys for the whole project. It errors with:

There are duplicate file paths. Cannot generate an archive.

Maybe create the two "locales" folders in subfolders named after the modules before zipping it all up.

Show language permissions on Profile page

The profile page of a user should show which language permissions a user has. If there aren't any yet, it should say to contact the admin to get them. I suspect that some of the users don't know why they can't translate anything and just don't come back...

For example:

Lanuguage permissions:	none
						Please contact the administrator to be able to start translating.

Ideally the "contact" should link to a mail contact form. Send 'em to me. :)

Add an explanatatory paragraph at the top of every language page

Add a paragraph, light grey background to be more promiment, with:

"For strings that don't need translation, because they are the same as the English original, the "Needs work" checkbox should be unmarked. Otherwise the percentage display on the overview page doesn't reach 100%."

Czech language code should be "cs"

It seems to be "cz" currently. When uploading catkeys, it says "Upload cz.catkeys".
I didn't find it when TextSearching the code, or I'd created a PR.

Add links to website, bugtracker to translation page etc.

Since users may notice typos etc. to report while translating, having the links to the project's website and bugtracker at the top of the "Translation" page (and maybe also the "Translation modules" page) would be nice.

Can they be added to the 'breadcrumb' at the top? Otherwise maybe a new block with a bit larger icon, name, link symbols.

Add notifications when certain events occur

I was wondering how translators and developers could stay uptodate on the state of translations.
Maybe having 2 RSS feeds would be a nice way:

  1. Showing a list of all languages and the projects that are >0% && <100% for those:

    Incompletely translated projects:

    • German: Clipdinger, PecoRename, LnLauncher
    • French: Koder, QuickLaunch, LnLauncher
      ...
  2. Showing a list of all projects and the languages that are >0% && <100% for those:

    Incompletely translated projects:

    • LnLauncher: German, French, Italian
    • Koder: French, Italian
      ...

Or is there a better way? Having feeds for each language and each project seems exessive...

Layout change of translation block

Current translation block:

translation_block

  • "Column title" is a comment. That's not obvious. I suggest to change to (italics):
    Comment:
    "Column title
    "
  • The "Needs work" checkbox should be in front of the Save/Cancel buttons. Otherwise you may often click a button first, which closes the translation block. The work order is: change text, (maybe) click checkbox, click button.

Add button to load more translations

Would be good if there was a button at the bottom of the list of translations to complete to load more translations - the idea of having to reload the page to load more translations might be a bit odd for users and it's more intuitive to have a button at the bottom to do this.

Thanks!

Add "Needs work" status to each project on the "Home" page

If the list of available projects on the starting page had after each project a list of languages that are active (>0%) but incomplete (<100%), one could quickly spot which projects' languages need work.
That way one can also quickly see which formerly "complete" projects must've gotten an update.

E.g.: Clipdinger (Needs work: de, fr, it, uk)

The text in brackets in grey instead of black, but IMO much better would be to use 16px flags instead. You'll spot your country's flag much quicker than parsing text abbreviations.

(Should the layout change as in #16, this could be in a 2nd column "Needs work".
BTW, the term "Needs work" is a bit awkward here, but it does fit well with the checkbox in the translation blocks. Therefore I'd stick to the term wherever it appears to avoid confusion.)

Add per language global default translations

Probably a bigger fish...
It would be nice if each language had a list of default translations for the standard stuff, like OK, Quit, Close, Abort, Cancel, Defaults, Revert...
Would cut down work and increase consistency.

rewelacyjny program

Bardzo ciekawie wygląda. Bardzo dobry pomysł.

Czy jest możliwość wprowadzenia sugestii i dyskusji?
Na stronach https://tatoeba.org/pol/ (swoja drogą polecam i może nawet zastanowić się nad integracją) są komentarze do każdego tłumaczenia. Czasem to pomaga, bo autor często sam by zmienił, a ktoś może zostawić wiadomość.

Można by też zrobić sugestie anonimowe by bez logowania ktoś mogl zostawić informacje dla tlumacza. Niestety od razu może pojawić się spam.

Czy jest gdzieś jakiś sposób by zintegrowac to z własnym oprogramowaniem? Powiedzmy, ktoś ma swój program i chciałby postawic u siebie tłumaczenie

Sort languages alphabetically

Currently the languages are sorted by their ISO code. That puts e.g. Dutch way down in the list (nl). Would be nicer when sorting by language name instead.

Please add Asturian

Hi,

In the Edit Profile screen I wasn’t able to find Asturian as a preferred language. Could you add it, please?

Adding non-catkeys files (or links to them)

I was wondering if there could be links to other things that may need translating for an app. Like documentation or data files (recently I stumbled over the tips file for Tipster).
Either as links back to the project's page (there could be several files tat need translation), or maybe even as uploaded ZIP archive (with a reasonable limit on size).

Add documentation

I've attached Polyglot_documentation.zip that contains htmlified docs for translators, developers and an index page that doubles as about page. It contains part of the css I usually use for docs, just to make it less bland.
I think it's better to put into this ticket than mailing stuff around.

As the site changes, things will have to be updated, esp. the screenshots I guess. Once you "twig" the html, I should be able to PR those changes and everything you'd like to have improved.

Please have a look at the "Overview" section of the Help_dev.html to see if I got the gist right. I'm not really familiar with databases and the terminology could be off (speaking of adding "fields" for example). You may be able to express the workings more clearly than me...

No hurry, of course.

Show names of all contributors not only last one

Sometimes, you come to a translation only to fix a typo. It's a contribution like another but now your name replaced the one of the person who did 99% of the job on Contributors list.
Perhaps renaming that list to Recent Contributors would be better.
What could be done is to list on a page all contributors for a specific language. It could be on per language progress page that I suggested on another ticket.

Also if the file mention translators, it should say 'Translated (to ...) by Polyglot community' to avoid the problem. Though that may not always work for existent apps, it could be an idea of generic line for new ones.

Use different colours for "Needs work"

To make it more obvious when scrolling down the list of untranslated strings. Italics are easily overlooked. Maybe yellow, like the fuzzy's at the userguide site?

Add searching/filtering for a string

Especially if the catkeys of a project is very large and the strings span many pages, a method to find a particular string would be nice. Like looking for a particular user in the "User" part of Polyglot, a text box to filter all strings of the current project would be very welcome.
I don't think distinguishing between original/comment/translation is needed.

Add a user search function

At the moment it's a bit time consuming to find a specific user to grant permission for a language. Most of the time, this is done soon after the user registered, so he'll be on the last page. If you have to find someone to add an additional language, however, you'll have to start searching from page one onwards... :)

Instead of a search function, maybe even better: a text field for each column on the "Users" page to filter that column. That way you could also search for email or language permissions.

Polyglot doesn't detect some catkey key changes

Had this problem with Paladin and had to write this tool to spot the issues:-

https://github.com/adamfowleruk/CatalogTester

If the key had trailing spaces, but this was removed, Polyglot doesn't detect the change and leaves the spaces in the key. This causes the generated catkeys file to fail on linkcatkeys.

Same issue if the key text remains the same except for a capitalisation change on one of the letters.

The en.txt in the above repo is exported from Paladin, the de.txt from polyglot is manually fixed using pointers from my tool (so it correctly identifies all issues), and the it.txt from polyglot is there to show one that fails the fingerprint check.

Display overall translation progress whilst translating

Whilst I'm translating, it would be good to know the overall translation progress of the application I'm translating, perhaps by displaying a progress bar at the top similar to the ones that show up for all the translations when you click on an application.

Thanks!

Mockups for design improvements

Here are a few ideas for consideration when time allows.

The start page - "Projects":

project

Material-icons top right: help, settings, login/profile
The list of available projects shows meta data: 32px icon, icons to link to project website and bugtracker.

Project - "Files":

project-files

Project - "Application" - translation page:

translation

Flag of current language at top right.

Project - "Application - Edit":

en catkeys-edit

As described in #15.

Add Canadian and Australian English

Would be good if Canadian and Australian English were added to Polyglot.

I note that Canadian English is present in the Polyglot profile, where it appears in the "Preferred Language" selection list, but it doesn't seem to show up as a translation to complete when clicking on an application to translate?

Thanks in advance!

Add more meta data to projects

When creating/editing a project's en.catkeys ("Application | Edit") additional data could be added:

  • a 32 bit icon (defaulting to Haiku's three colour cubes)
  • the URL to the project home page
  • the URL to the project issue tracker

The icon can then be used whereever here's currently only the project name. This can help not to get confused, if e.g. there are several slightly similarly named projects, like "PecoRename" and "PecoBeat".
The URLs can be added to small icons after the project's name, to give quick access, e.g. if a translator found a typo. Add a tooltip to those icons "Project's website", Project's bugtracker".

Here's a mockup:

en catkeys-edit

Add a page to see progress per language

When I have time, I come to see if there's something new to translate to French but since it isn't often I don't remember what apps were already there or not. I don't see either if a good soul has finished what I started on a particular app. For the moment, list of apps isn't long so it isn't a big deal and as regular user we could do with it.
Now, imagine you're one of these good souls. You register and arrive to the app list for the first time. You check first the app that you came for, job may already been done. Second thing, you will try are the two first apps on top of list and if translation is done also here, you may because you're in a good mood try another on bottom of list with same luck. You will quit there thinking nobody needs your help.
So I suggest a page for each language showing translation progress of apps.

Have "Export all" link visible to everybody

It seems the "Export all" link to get a ZIP with all catkeys of a project is only visible to the owner/admin of that project. At least Diver doesn't see it for KeymapSwitcher.
I suppose the "Export all" link can be useful to anybody, even unrelated to the project.

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.