I made script which will ensure that translated MD files from Crowdin will have correct license headers.
Please review: https://github.com/apache/cordova-docs/pull/264 Usage: from cordova-docs repository root directory invoke ./bin/fixyaml Currently this script only working over cordova-docs repository, not verifying plugin repositories. If I download latest versions seems, that only one issue with license headers we have: docs/<lang>/guide/next/index.md has missing license header. That's because to Crowdin was uploaded file without license header. 2015-02-04 10:11 GMT+06:00 Victor Sosa <sosah.vic...@gmail.com>: > Hello community. > > So that everybody is aware about the proceedings on this topic. > > Andrey and I just had a quick call about this topic and here the agreement > > We want to still continue using Crowdin as our tool for automatic > translation, but we do acknowledge the problems depicted on this thread > (autolinking and formatting). In order to fix these problems, Andrey worked > on a couple of validation scripts that we can integrate in the translation > process, but for this to happen we need to do the following (Andrey, please > keep me honest): > > 1. I'll reach out the Crowdin folks to see whether they have any API to > put translated documents back in CrowdIn. This way we can run the > validation scripts locally and then put the fixed docs back and run the > usual Crowdin build. If no API is available then try to find a workaround > to this problem (as of now, we couldn't find a way to do it). > > 2. As a low priority task for now, I'll refactor the current translation > script (shell script) to something more cross-platform (ideas about the > best solution/technology are welcome) > > 3. Andrey will continue his work making sure the output of the validation > scripts is as expected. > > Hope I didn't miss anything from our chat. > On Feb 3, 2015 8:32 PM, "Victor Sosa" <sosah.vic...@gmail.com> wrote: > >> Hi Andrey >> >> Yes, in about an hour as agreed >> On Feb 3, 2015 8:22 PM, "Andrey Kurdumov" <kant2...@googlemail.com> >> wrote: >> >>> Hi, >>> >>> will you able chat today 9:30 PM CST as we plan earlier? >>> >>> 2015-01-30 8:47 GMT+06:00 Victor Sosa <sosah.vic...@gmail.com>: >>> >>>> Cool! So I'll book it on my calendar, Tuesday 9:30pm. That's Your >>>> Wednesday 9:30am. Talk to you then. >>>> >>>> Have a great weekend! >>>> On Jan 29, 2015 8:39 PM, "Andrey Kurdumov" <kant2...@googlemail.com> >>>> wrote: >>>> >>>>> I'm fine for that time. >>>>> >>>>> 2015-01-30 8:37 GMT+06:00 Victor Sosa <sosah.vic...@gmail.com>: >>>>> >>>>>> So let's schedule a hangout next Wednesday in the morning, which is >>>>>> my Tuesday night. If I recall correctly we are 12 hours apart from each >>>>>> other (I'm in GMT -6). How about 9:30 AM for you? >>>>>> On Jan 29, 2015 7:52 PM, "Andrey Kurdumov" <kant2...@googlemail.com> >>>>>> wrote: >>>>>> >>>>>>> If this is working for you, we could chat. >>>>>>> Morning is start for me, hopefully it is not too late for you. I >>>>>>> could chat in next 4 hours or more without problem. >>>>>>> >>>>>>> 2015-01-30 6:27 GMT+06:00 Victor Sosa <sosah.vic...@gmail.com>: >>>>>>> >>>>>>>> Hi Andrey. Thanks for the reminder. >>>>>>>> >>>>>>>> In the process in step 4 you are correct. This "manual" step is >>>>>>>> actually going to CrowdIn and launch the build from there. >>>>>>>> >>>>>>>> I agree that after 5, we need to establish some kind of mechanism >>>>>>>> to validate the two scenarios you state here (formatting errors and >>>>>>>> autolinking). I presume this translationreport script is the one you >>>>>>>> created and will be useful to validate the autolinking problems. And >>>>>>>> as you >>>>>>>> state, it is quite difficult to maintain each language and therefore we >>>>>>>> have to live with the problems we have for the time being :S >>>>>>>> >>>>>>>> Let me tell you this, why don't you and schedule a hangout to speed >>>>>>>> up this conversation and convey an agreement? I'm fine if you want to >>>>>>>> book >>>>>>>> the hangout in your morning, which is my night ;-), just let me know >>>>>>>> your >>>>>>>> availability (we can have a quick chat on gmail privately to not spam >>>>>>>> the >>>>>>>> list) >>>>>>>> >>>>>>>> 2015-01-29 9:08 GMT-06:00 Andrey Kurdumov <kant2...@googlemail.com> >>>>>>>> : >>>>>>>> >>>>>>>> Hi, want to bump this thread. Do you have any thoughts how I could >>>>>>>>> fix current documentation issues without interfering with you? >>>>>>>>> >>>>>>>>> 2015-01-23 13:46 GMT+06:00 Andrey Kurdumov < >>>>>>>>> kant2...@googlemail.com>: >>>>>>>>> >>>>>>>>>> Thanks for explanation. The process is more like i think. >>>>>>>>>> One thing about which I'm not sure is #4. I assume that this is >>>>>>>>>> some step in CrowdIn which generated ZIP file from the latest >>>>>>>>>> translations. >>>>>>>>>> Correct me if I wrong. >>>>>>>>>> >>>>>>>>>> a) My feeling how I would like to work: >>>>>>>>>> 1. The script downloads the latest updates to your local Got repo. >>>>>>>>>> 2. Adds the docs in English to CrowdIn. >>>>>>>>>> 3. Manually start the translation via a machine in CrowdIn >>>>>>>>>> 4. Once translated, manually run a build of the docs. >>>>>>>>>> 5. Using the script, download the changes in documentation to >>>>>>>>>> your local repo. >>>>>>>>>> >>>>>>>>>> X. Run validation scripts. >>>>>>>>>> X.a. In case of any translation error (autolinking for example) >>>>>>>>>> go to CrowdIn and start from step #3. >>>>>>>>>> X.b In case of some minor formatting errors, correct them >>>>>>>>>> manually and continue to step #6. >>>>>>>>>> >>>>>>>>>> 6. Commit changes to Git. >>>>>>>>>> >>>>>>>>>> I just want to add validation step which will not allow to commit >>>>>>>>>> specifically for Russian language, since this is only language which >>>>>>>>>> I >>>>>>>>>> could support. >>>>>>>>>> Other languages I don't plan to support, and from my perspective >>>>>>>>>> they are broken. >>>>>>>>>> >>>>>>>>>> Here the small Node.js utility which could help you test broken >>>>>>>>>> auto-linking on any language you care. >>>>>>>>>> Run >>>>>>>>>> ./bin/translationreport ru edge -v >>>>>>>>>> from the root folder of [cordova-docs] repository. >>>>>>>>>> >>>>>>>>>> I will never go to step #6 until I fix every errors which I found >>>>>>>>>> on step X. This is how I feel it should be. But I open for >>>>>>>>>> alternatives >>>>>>>>>> which allows me improve quality of Russian translation, >>>>>>>>>> >>>>>>>>>> Regarding make validation step possible in CrowdIn. So far, I >>>>>>>>>> don't see any method which allows verify of translation without >>>>>>>>>> downloading >>>>>>>>>> it first from CrowdIn (see https://crowdin.com/page/api). >>>>>>>>>> >>>>>>>>>> I really try make good translation using just CrowdIn, but don't >>>>>>>>>> see any opportunity to fix broken MD files inside CrowdIn. >>>>>>>>>> If you have any ideas how I could fix errors in the links I show >>>>>>>>>> you using just CrowdIn, I would be all-in for that. >>>>>>>>>> >>>>>>>>>> Best regards, >>>>>>>>>> Andrey >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2015-01-22 8:56 GMT+06:00 Victor Sosa <sosah.vic...@gmail.com>: >>>>>>>>>> >>>>>>>>>>> Hi Andrey, sorry my late replay. Here my 2 cents. >>>>>>>>>>> >>>>>>>>>>> This is what the current translation process does: >>>>>>>>>>> >>>>>>>>>>> 1. The script downloads the latest updates to your local Got >>>>>>>>>>> repo. >>>>>>>>>>> 2. Adds the docs in English to CrowdIn. >>>>>>>>>>> 3. Manually start the translation via a machine in CrowdIn >>>>>>>>>>> 4. Once translated, manually run a build of the docs. >>>>>>>>>>> 5. Using the script, download the changes in documentation to >>>>>>>>>>> your local repo. >>>>>>>>>>> 6. Commit changes to Git. >>>>>>>>>>> >>>>>>>>>>> If a translator modifies a doc at some point in CrowdIn, I'll >>>>>>>>>>> take the changes in the next build. >>>>>>>>>>> >>>>>>>>>>> As Lisa stated, any changes made in the translated docs outside >>>>>>>>>>> of CrowdIn will end up ignored in the next build. >>>>>>>>>>> >>>>>>>>>>> If I understood correctly, you propose to validate the generated >>>>>>>>>>> docs using the tool you created. I wonder if we can add the >>>>>>>>>>> validation >>>>>>>>>>> process to modify the docs in CrowdIn instead of directly doing it >>>>>>>>>>> in Git. >>>>>>>>>>> >>>>>>>>>>> Correct me if wrong, but I think this is the way to go in order >>>>>>>>>>> not just to keep the current process but to enhance it. Let me know >>>>>>>>>>> what >>>>>>>>>>> you think. >>>>>>>>>>> >>>>>>>>>>> P.S. I'm in Central Timezone, which means I'm 12 hours away from >>>>>>>>>>> you. Communication is an exciting topic here :-D >>>>>>>>>>> On Jan 20, 2015 9:24 PM, "Andrey Kurdumov" < >>>>>>>>>>> kant2...@googlemail.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> My main concern is that current translation not good. >>>>>>>>>>>> Proof: http://cordova.apache.org/docs/es/edge/index.html or >>>>>>>>>>>> http://cordova.apache.org/docs/ru/edge/index.html >>>>>>>>>>>> >>>>>>>>>>>> These links contain two major issues with translated docs. >>>>>>>>>>>> a) License headers >>>>>>>>>>>> b) Missing links which could lead to missing parts of docs. >>>>>>>>>>>> other issues are also present which also introduced by our >>>>>>>>>>>> tools. >>>>>>>>>>>> >>>>>>>>>>>> ---------------------------------------------------- >>>>>>>>>>>> First kind of errors was introduced as of Cordova 3.4 or like >>>>>>>>>>>> that. >>>>>>>>>>>> There no way fix that using CrowdIn, so I fix that in the Git >>>>>>>>>>>> repo byt sending pull request >>>>>>>>>>>> https://github.com/apache/cordova-docs/pull/250 >>>>>>>>>>>> >>>>>>>>>>>> Example of changes >>>>>>>>>>>> >>>>>>>>>>>> https://github.com/apache/cordova-docs/commit/691f0f016ef4932e9cd224f49bb9641161b726e1 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ---------------------------------------------------- >>>>>>>>>>>> Second kind of errors (missing links) could be verified by >>>>>>>>>>>> running new tool >>>>>>>>>>>> >>>>>>>>>>>> ./bin/translationreport ru edge -v >>>>>>>>>>>> or >>>>>>>>>>>> ./bin/translationreport ru edge >>>>>>>>>>>> for more details. >>>>>>>>>>>> >>>>>>>>>>>> ---------------------------------------------------- >>>>>>>>>>>> >>>>>>>>>>>> Really I don't trust output of CrowdIn due to way we generate >>>>>>>>>>>> documentation. It is very easy translate sentence and broke our >>>>>>>>>>>> autolinking in the documentation. Current process is not enough >>>>>>>>>>>> for me, since before commit changes to Git for Russian translation >>>>>>>>>>>> I want to manually generate Russian documentation and verify >>>>>>>>>>>> quality of produced output using automated-tools and by manual >>>>>>>>>>>> spot-checking. >>>>>>>>>>>> If any of tools report about problem with translation I would >>>>>>>>>>>> not commit any changes until I resolve issue. If that mean that >>>>>>>>>>>> I have to manually insert blank lines after pulling changes >>>>>>>>>>>> from CrowdIn, I will do that. >>>>>>>>>>>> >>>>>>>>>>>> I have doubts that this is practical follow this approach for >>>>>>>>>>>> other languages, that's why separation. If you are ready to >>>>>>>>>>>> go with that approach for all other languages, I would be more >>>>>>>>>>>> then happy not to separate Russian. I want find solution/process >>>>>>>>>>>> where all >>>>>>>>>>>> we would work with same set of tools, plus I will use >>>>>>>>>>>> additional tools to raise quality bar for Russian. >>>>>>>>>>>> >>>>>>>>>>>> Want to notice that I don't want to dump CrowdIn from the >>>>>>>>>>>> process, it is very good to for translation, >>>>>>>>>>>> but not for the verification of the translated results. Reason >>>>>>>>>>>> that I made pull request on GitHub directly, >>>>>>>>>>>> it is because CrowdIn does not allow do what I need. >>>>>>>>>>>> >>>>>>>>>>>> Hopefully this is clears picture from my side. >>>>>>>>>>>> >>>>>>>>>>>> BTW: another problem is that I GMT +6 which is 11 hours >>>>>>>>>>>> different from East side of US and 14 from West side of US. >>>>>>>>>>>> Add some communication problems. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 2015-01-20 22:43 GMT+06:00 Lisa Seacat DeLuca < >>>>>>>>>>>> ldel...@us.ibm.com>: >>>>>>>>>>>> >>>>>>>>>>>>> Andrey~ >>>>>>>>>>>>> >>>>>>>>>>>>> I'm a little confused by your request. Are you saying that >>>>>>>>>>>>> you make changes to the translation outside of the Crowdin tool? >>>>>>>>>>>>> If that's >>>>>>>>>>>>> the case, yes, all of your changes are going to be lost every >>>>>>>>>>>>> time. You'll >>>>>>>>>>>>> need to make the changes within Crowdin. When the script is ran >>>>>>>>>>>>> to make >>>>>>>>>>>>> sure the latest documentation is pushed to the Crowdin tool it >>>>>>>>>>>>> doesn't >>>>>>>>>>>>> override any translations that have already been done. It just >>>>>>>>>>>>> adds >>>>>>>>>>>>> updates to the documentation (new sentences, new code, etc) or >>>>>>>>>>>>> changes that >>>>>>>>>>>>> were made. So unless sections of the english version of the >>>>>>>>>>>>> documentation >>>>>>>>>>>>> has been changes your Russian updates shouldn't be affected. I >>>>>>>>>>>>> see no >>>>>>>>>>>>> reason why you couldn't own the Russian part of the translation >>>>>>>>>>>>> process. >>>>>>>>>>>>> Whenever Victor goes to pull down the translations if the Russian >>>>>>>>>>>>> translations aren't at 100% he can talk to you. Does that sound >>>>>>>>>>>>> reasonable? Did I understand your concern correctly? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Lisa >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> [image: Inactive hide details for Andrey Kurdumov >>>>>>>>>>>>> ---01/20/2015 01:22:53 AM---Hi, I start working on the improving >>>>>>>>>>>>> Cordova >>>>>>>>>>>>> documentatio]Andrey Kurdumov ---01/20/2015 01:22:53 AM---Hi, >>>>>>>>>>>>> I start working on the improving Cordova documentation for >>>>>>>>>>>>> Russian language. >>>>>>>>>>>>> >>>>>>>>>>>>> From: Andrey Kurdumov <kant2...@googlemail.com> >>>>>>>>>>>>> To: dev@cordova.apache.org, Victor Adrian Sosa Herrera < >>>>>>>>>>>>> sosah.vic...@gmail.com> >>>>>>>>>>>>> Date: 01/20/2015 01:22 AM >>>>>>>>>>>>> Subject: Crowdin and translation process >>>>>>>>>>>>> ------------------------------ >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> I start working on the improving Cordova documentation for >>>>>>>>>>>>> Russian language. >>>>>>>>>>>>> Earlier I put fix for the YAML license headers directly to >>>>>>>>>>>>> Github for all >>>>>>>>>>>>> translations. >>>>>>>>>>>>> >>>>>>>>>>>>> Right now after I put documentation translation checker tool, >>>>>>>>>>>>> I see issues >>>>>>>>>>>>> which I would like to improve Russian translation. >>>>>>>>>>>>> >>>>>>>>>>>>> I download latest translation from Crowdin and compare that >>>>>>>>>>>>> field with docs >>>>>>>>>>>>> in the source control. What I found is that YAML fixes is not >>>>>>>>>>>>> in CrowdIn. >>>>>>>>>>>>> >>>>>>>>>>>>> 1. This raises question how we could could work on translation >>>>>>>>>>>>> with Victor >>>>>>>>>>>>> together effectively, not impacting each other? >>>>>>>>>>>>> When documentation files is uploaded to the Crowdin? >>>>>>>>>>>>> When translation is collected from Crowdin? >>>>>>>>>>>>> Are there any rules which could be used, so I could prepare to >>>>>>>>>>>>> these cycles? >>>>>>>>>>>>> >>>>>>>>>>>>> 2. Current script just download everything and commit it in the >>>>>>>>>>>>> cordova-docs repository. >>>>>>>>>>>>> What I think is that it could be effective is that I take >>>>>>>>>>>>> responsibility >>>>>>>>>>>>> for maintaining Russian translation and Victor would maintain >>>>>>>>>>>>> other >>>>>>>>>>>>> translations, like it was before. And downloading script could >>>>>>>>>>>>> be modified >>>>>>>>>>>>> to include language which should be downloaded, so this allow >>>>>>>>>>>>> explicit >>>>>>>>>>>>> control which languages is created. I recently cleanup a lot >>>>>>>>>>>>> of files from >>>>>>>>>>>>> probably Crowdin mistakes, and don't want that this would be >>>>>>>>>>>>> introduced >>>>>>>>>>>>> again. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Victor Adrian Sosa Herrera >>>>>>>> IBM Software Engineer >>>>>>>> Guadalajara, Jalisco >>>>>>>> >>>>>>> >>>>>>> >>>>> >>>