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

How do we deal with translations? #29

Open
ladyleet opened this issue Oct 7, 2017 · 28 comments
Open

How do we deal with translations? #29

ladyleet opened this issue Oct 7, 2017 · 28 comments
Assignees

Comments

@ladyleet
Copy link
Member

ladyleet commented Oct 7, 2017

I've been thinking about this and I actually like the way Vue does this best.

Check out the screenshot.

screenshot 2017-10-07 04 01 26

@sculove
Copy link

sculove commented Oct 8, 2017

We need an i18n development environment.
Angular provides i18n. https://angular.io/guide/i18n
There is also a library like ngx-translate. http://www.ngx-translate.com/

The way angular guides is actually cumbersome.
I don't know what actually would be good.
Do you have any idea?

@SangKa
Copy link

SangKa commented Oct 8, 2017

Vue use different sites for each language.
Maybe we can use the experience of what facebook does, just like jest or react.
Can check this page, they use the crowdin for i8in.

@sculove
Copy link

sculove commented Oct 8, 2017

@SangKa the crowdin is good.
I tried a different idea.
a crowdin and google translate provide xliff format.
I think If we use Google Translate API, we can easily create a document draft for each language.

I found this issue.
angular/angular#14145

@jonguk0114
Copy link

I have not used translation tools or platforms but just took a look at crowdin.

Crowdin provides multiple translators with features for collaboration such as discussion, voting, adding terms for translation from original language to translated language, suggestion, and etc.

I believe that crowdin is helpful to complete consistent translation by discussing or voting about different opinions.

According to Crowdin Open Source Request From, it is free of charge after open source project request is approved.

I think crowdin is good too.

@Lakston
Copy link

Lakston commented Oct 8, 2017

I use ngx-translate at work and it's working really well for us, we have one json file per language and use for example {{ 'OPERATORS.GROUPED_OBSERVABLE.FORKJOIN.whatever_par_of_the_page | translate }}

We would have to structure it really well so it doesn't become a mess after a while, separating each page in manageable chunks that are properly named could be quite long to do.

@ladyleet
Copy link
Member Author

ladyleet commented Oct 9, 2017

Hey all! :) Thanks for all the conversation around this!

I was talking to Rahul @znck from the Vue core team about their docs since I like those best from an accessibility standpoint.

@chrisvfritz it would actually be super helpful to get your opinion on the docs and how we should best approach this.

@SangKa great to hear you have translated @btroncone's already! That will give us a very good head start in the Korean translation docs!

If you all have not yet done so, please send me an email to tracy@thisdot.co to be included in the learning team meeting on Monday 10/16.

@ladyleet
Copy link
Member Author

ladyleet commented Oct 9, 2017

so, i literally have no idea how to start with translations except for the idea that it seems like we need both NGX Translate AND something like Git Localize. Is this the case? :D

@znck
Copy link

znck commented Oct 9, 2017

Adding @kazupon & @phanan to the thread.

Both of them have first-hand experience of managing translations.

@phanan
Copy link

phanan commented Oct 9, 2017

Thanks for the mention @znck.

Below is our current flow for translating vuejs.org to the Vietnamese version. We've just started, so the flow is very open to changes/suggestions and in no way the most optimized. Also, again since we're at the beginning of the translation process, our current focus is for the untranslated documents, which is a decisive factor for the flow. Anyway:

  • The i18n repo is a direct folk from the English repo
  • Each PR involves only ONE file, however small it is
  • Before translating, a member would check the PR page to make sure the file is not already been/being translated
  • Create a new branch from master with the branch name being the path to the file relatively to the root, e.g. src/v2/guide/instance.md
  • Submit this branch as a PR early in the process, with the PR title being [WIP] src/v2/guide/instance.md following the previous example. This helps maintainers and others decide what to do (or not) with the PR and the involved file.
  • Continue translating and pushing commits to the branch
  • Once translation is done, remove [WIP] from the title and tag the reviewers
  • Reviewers/maintainers take ordinary, necessary, steps

We're not using any external tool atm (maybe we should?) Again, this flow is in no way standard, and actually we're looking out for suggestions.

@ladyleet
Copy link
Member Author

ladyleet commented Oct 9, 2017

Does someone want to champion our process for the translations in Rx? We def need a champion who will orchestrate the process but obviously requires some man hours. :)

@kazupon
Copy link

kazupon commented Oct 9, 2017

@znck Thank you for your mention. 😺

I'm translating Vue.js documents together with Vue.js Japan 🇯🇵 users daily for Japanese to maintain the quality of translation.

From the experience of the translation work, I recommend using translation services like crowdin and gitlocalize. It's very difficult to track the diff of original document with human eyes 👀 .

I don't know crowdin due to not used crowdin, gitlocalize provides the tracking feature.

If you don't use these services, we recommend that you introduce the translation flow with mentioned @phanan , or automatically pick up diff from original document with bot 🤖 .

for japanese translation, We use this bot.

@ladyleet
Copy link
Member Author

ladyleet commented Oct 9, 2017

thank you @kazupon! again, anyone who is interested in helping drive the complete initiative let me know.

@chrisvfritz
Copy link

One other note: for documentation that's frequently updating and translated to many languages like the Vue core docs, having separate repos for each translation is very useful. If we had everything under a single repo, maintainers would have to ignore most PRs because they'd be unrelated to the source material.

@ladyleet
Copy link
Member Author

ladyleet commented Oct 9, 2017

@chrisvfritz that is super useful feedback chris. thanks!

@kwonoj
Copy link
Member

kwonoj commented Oct 9, 2017

So there seems few things we need to figure out (from contents logistics to actual impl) - let's try to list them and separate as each issue to track. I'll try to update them shortly.

@kwonoj kwonoj self-assigned this Oct 9, 2017
@sotayamashita
Copy link

sotayamashita commented Oct 10, 2017

@ladyleet

I don't know crowdin due to not used crowdin, gitlocalize provides the tracking feature.

Hi, I am an engineer for GitLocalize. Vue.js and Nuxt.js are using our service for FREE. ✨ Please feel free to ask me if you have any questions. I also have translated docs ever. I can help you even though you would not use GitLocalize. Thanks!!

@kwonoj
Copy link
Member

kwonoj commented Oct 10, 2017

@sotayamashita cool, let me peek those into too!

@Lakston
Copy link

Lakston commented Oct 10, 2017

Gitlocalize looks pretty awesome but reading the docs it only deals with .md and static .html files.

Digging into ssr.vuejs.org they seems to be using GitBook + GitLocalize and it looks easy to maintain and manage.

I use ngx-translate every day but for this project it looks like going the ssr.vuejs.org route would be easier.

edit : If I have some time tonight (GMT) I'll start a personnal repo with GitBook and GitLocalize to see if I can understand how to set it up.

@sotayamashita
Copy link

@Lakston

Gitlocalize looks pretty awesome but reading the docs it only deals with .md and static .html files.

I appreciate you check our product out. What kind of would like to use?

edit : If I have some time tonight (GMT) I'll start a personnal repo with GitBook and GitLocalize to see if I can understand how to set it up.

If you have question, please feel free to ask me via here or @sota0805.

@kwonoj
Copy link
Member

kwonoj commented Oct 11, 2017

note purpose: https://pontoon.mozilla.org/

@sotayamashita
Copy link

sotayamashita commented Oct 11, 2017

@kwonoj

I've never heard of it and it looks cool. I can improve GitLocalize based on pontoon. I am wondering how to store translation data.

@kwonoj
Copy link
Member

kwonoj commented Oct 11, 2017

I'm not debating any particular at this moment, just left as memo that I don't forget. I think probably need to run couple of evalution to compare how those experiences are between way we listed here.

@kwonoj
Copy link
Member

kwonoj commented Oct 11, 2017

I'm making this is meta-issue to track general discussions, and created separate issue for discussing tool/pipeline at #36 .

@getDanArias
Copy link

I would like to put on the table transifex as an option for managing the translation process.

From their site:

Transifex offers an Open Source Program to Open Source projects that have no funding, revenue, and/or commercialization model. The intent is to support small and independent Open Source projects.

Habitica, the game app, has been using it to great success for the world wide translation of their platform. The tracking system is outstanding!

Here's some information on their integration with Github: Using Transifex with GitHub in Your Development Workflow

@kwonoj
Copy link
Member

kwonoj commented Oct 11, 2017

@getDanArias added in #36.

@feloy
Copy link
Contributor

feloy commented Oct 19, 2017

What about translating static texts, like site title, menu labels, etc. Do you want to use the internal Angular i18n?

I can work on the toolchain for this part.

@ladyleet
Copy link
Member Author

@feloy we are chatting about this in #36

@xlozinguez
Copy link

I obviously will take care of the French whenever we have the tooling ready. Happy to partake in that effort also (cc @kwonoj & @ladyleet)

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

No branches or pull requests