Skip to content
This repository has been archived by the owner on Feb 7, 2018. It is now read-only.

Idea #1

Open
DWand opened this issue Jan 30, 2014 · 27 comments
Open

Idea #1

DWand opened this issue Jan 30, 2014 · 27 comments

Comments

@DWand
Copy link
Member

DWand commented Jan 30, 2014

An idea of the manager

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

firehist wrote:

@PascalPrecht It's going well! :) I can push on it, I just have no access to "settings" of this project (for example to edit the title + description GItHub). That's not really a problem.

BTW, I think about an other application "extra angular-translate" to manage the translations dictionnary as well as now. I use angularJS in my job (http://teads.tv and http://manager.teads.tv) and we have to internationalize the app with an external translator team.
The problem is that only devs can easily update these files.

What do you think about provide a rapid "translations manager" interface with persistent translation and manage delete/add/update throught grunt-angular-translate ? (I think about use deployd to store and angularJS to provide a rapid standalone manager per project).

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

PascalPrecht wrote:

@firehist That sounds good to me! Maybe you wanna talk to @DWand he also mentioned that he wanted to build at least an interface for managing translations.

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

DWand wrote:

@firehist, @PascalPrecht, yea, I want to build a GUI app to manage translations. I had even started, but was interrupted by work and academy. There are almost nothing done at the moment.

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

knalli wrote:

JSON based files, or what are you planning?

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

firehist wrote:

@DWand @PascalPrecht MMMh it looks like we'll rocks this together :) pretty cool.

First, we can create a repository to start discussions about global goal of this application.
Then we can create one issue per feature to speak more in details each one.
What do you think about it ?

First of all which name to handle this useful project ?
translate-manager
i18n-manager
...

BTW, two questions.
One is about angular-translate, there is any "dictionary" / "context" dev planned ? (I mean for example in module "settings" calla {{ "my_key" | translate:"settings" }} to avoid any replace of same word in different context)
Second is about interpolate system. It should be very nice if we can provide an interpolate service to provide some translation management, plug with our translate manager. For example display translation keys instead of language translation and show a popup with link to edit specific language. What do you think about it?

@knalli I think it should be good to use deployd or similar tools to provide a persistent data and allow us to do more funny things faster. You should be able to import/export JSON files, PoEdit files.

// Import "language JSON files"
// en_US.json
{
  "MY_TRANSLATION_KEY": "MY_LANGUAGE_TRANSLATION",
  "MY_TRANSLATION_KEY_01": "MY_LANGUAGE_TRANSLATION_01"
}
// Import "keys JSON files"
// i18n_keys.json
{
  "count": 2,
  "updated": "Jan 21 2014 13:36:47 GMT+0100 (CET)",
  "keys": ["MY_TRANSLATION_KEY", "MY_TRANSLATION_KEY_01"] 
}

etc.

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

tspaeth wrote:

👍

In the last enterprise project, we had the translations as java properties - files. That transformation to JSON btw is quite easy. Was just some little sources on the Java side (I couldn't find an easy mapper for properties2json in the JS ecosystem...).
Just to mention: Integration of this might also be a nice feature :-)

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

DWand wrote:

Hm... It seems that I thought in completely different direction :)

I thought to use sqlite3 as a persistent translations holder to be able to use it independent from the language used in development.

Also I thought to use node-webkit as an environment to be able to use web technologies in development, since all people here are familiar with HTML, CSS and Javascript. I have already used node-webkit once to develop app for my course work (but I used it to connect to SQL Server, not sqlite3). This solution seems to be completely cross-platform, but also has some disadvantages.

UPD:
I can also help a little with Java, C# or C++. But I'm not sure if I'm good here.

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

knalli wrote:

Regarding properties: Well, you have to support some encodings as well as the key: value syntax and the key=value syntax. Additionally, you can put the values in quotes. Said that, it it quite more easier in Java than in JavaScript.

So, if we are speaking in a Java context.. a simple maven plugin or a servlet filter should be fine?

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

DWand wrote:

Ping @firehist @PascalPrecht @DanielaValero

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

tspaeth wrote:

@DWand Yes, the solution is different, but I was just thinking from the practical perspective out of a dozen of projects. Depending on who translates, when and who checks - a direct translation table mostly will not work as even translation texts might be quality assured by the business dept. before deployment. Therefore mostly the conversion to the app deployment has been a technical task, but the creation of the translation texts was a task of probably external people having limited or no access to the app infrastructure.

Therefore something like the po-file-gettext-editors come out of that. Or even excel-tables to be parsed :-). Usually the KISS principle. But if someone manages a google calc style HTML/AJS editor for moving and editing in "translation tables" (whatever format they are and from whatever source they come from) - could be a killer app though :-)

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

DanielaValero wrote:

I am arriving late to the thread. After reading your comments, there are two points which are not clear to me,

  1. This translations manager is aimed at translators who are not developers, right?

  2. it should generate a json file(s) to work with angular-translate, right?

I think that before speaking about the architecture, we should define clearly what we want or need. (which is not clear to me after reading the evolution of the conversation)

What is the problem/necessity we want to solve? I think is how can we integrate into the angular-translate workflow those translators, who are used to working with poEdit or linguan, generating .po, .xml or .xls.

Or maybe I misunderstood and you want to build another translator manager, which generates output for different projects written in different architectures. In such case, then ignore me :)

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

tspaeth wrote:

@DanielaValero exactly this questions I see also - great post though!
So let's stay tuned what the inventor wanted to target the app to/for/at. ;-)

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

DWand wrote:

Hm, don't event thought about tables. I was think about something like this:
Interface mockup

As for application, I thought to create app for:

  1. Translators can manage translations
  2. Developer can generate json files to insert to app
  3. Provide some stuff like check for data consistency (all keys to be filled, keys-sets are equal for every language and so on)
  4. Maybe import other formats (xls, csv, po, whatever) and export to angular-translate's json

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

tspaeth wrote:

@DWand From the usability perspective, this includes a lot of clicking, typing, submitting for the translation of e.g. 50 variable texts - or not?! Technically, this looks good, but I would say the translation speed with this concept is slower compared e.g. to direct JSON or Java-properties style aka plain text ;)

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

DWand wrote:

@tspaeth, which is why I agree that "Programmer should never create UI" 😄
The main idea is to visualize that some keys have not translations or some languages has untranslated keys (different color, for example, or special icon, etc.) This is both impossible to see in plain json and uncomfortable to analyze in terminal output.

This is what I thought one or two month ago being alone. Now we can combine all our thoughts and create much more useful and better app.

The only thing I'm sure now is that relational database is the best thing to keep translations because it ensures data consistency out of the box. And also it could be moved wherever people want. Moving DB to some server enables team to work with translation together at the same time from different locations. If I understood right @firehist mentioned something about it.

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

firehist wrote:

Hey @DWand, I'm sorry about the latency but we made a new version of our AdServer and I took a long time on it.

So let's move on.
The first idea of this discussion was "provide easy and fast tool for developer". I meant a grunt task to easily launch the tool "grunt i18nmanager" => http://0.0.0.0:1248

Then, by reading posts, it should be great to provide a standalone version of this product and implement a user system to allow different people to use this application. This application can looks like your mockup and implement user/profile to describe a workflow for translation. This solution can be used by all kind of organization, from smallest to biggest.

So, to summarize we can in a first version work around theses points:

  • A user can Import/Export translations in different way (JSON, PoEdit, etc...)
  • An organization can create users in this application (simple user management)
  • A user can easily install/launch the application (backend, frontend & storage system should be portable)

Thereafter, we can think about:

  • An hosted solution
  • Implement a User/Profile workflow to allow organization to design their processes
  • Implement some "plugins" like auto-translate (Google Translate API, Mygengo Translation API, Translator APIs, Speaklite Translate API, WebServiceX Translate API, Bing API, ...)

BTW I have a question about angular-translate. Is it plan to implement dictionnary? I can start the work on this feature if it's not already started, I think that it is a must have in large app.

Have a good day 😋

@DWand
Copy link
Member Author

DWand commented Jan 30, 2014

firehist wrote:

mockup

@tspaeth
Copy link
Member

tspaeth commented Feb 17, 2014

Just found this one as Yet another...

https://meego.transifex.com/

@TheCodeDestroyer
Copy link

I think this is a great idea, sadly it seems it died half way through... If you need some help I would gladly help.

@DWand
Copy link
Member Author

DWand commented Jun 3, 2014

Hi, @TheCodeDestroyer. This idea is not dead. We just have not enough time to make it real now. angular-translate is a great thing and we love all things and ideas to make it better, but it's not how we make money. Personally I will be able to do something here in about 1 or 2 month.

@TheCodeDestroyer
Copy link

Cool! Thanks for the info...

@Phoscur
Copy link

Phoscur commented Mar 30, 2015

Any progress on this?
We need this kind of functionality in our project. Our implementation is far from your wireframe though..
image

@knalli
Copy link
Member

knalli commented Mar 31, 2015

@Phoscur Not yet. At the moment, I do not see this will coming in the next time.. no staff, no plan, no detailed concept.

@rgeraads
Copy link

This idea is a much-welcomed one! Hopefully it will be realized someday.

@ksundmyhr
Copy link

+1

1 similar comment
@mrzepinski
Copy link

+1

@TheCodeDestroyer
Copy link

For anyone who is still interested in this, I stumbled upon this nifty page.
It offers everything you need for Angular Translate (FYI: when importing/exporting use the key-value pair json format)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

9 participants