Localization platform #1029

Closed
opened 2026-02-04 23:27:07 +03:00 by OVERLORD · 27 comments
Owner

Originally created by @Mant1kor on GitHub (Feb 6, 2019).

It would be nice to use a more convenient tool for translating BookStack. Centralized management and tracking of new words/phrases and all the other benefits of a localization platform.
I recommend to try Crowdin or Transifex (they're free for Open Source project, see Q&A).

Originally created by @Mant1kor on GitHub (Feb 6, 2019). It would be nice to use a more convenient tool for translating BookStack. Centralized management and tracking of new words/phrases and all the other benefits of a localization platform. I recommend to try Crowdin or Transifex (they're free for Open Source project, see Q&A).
OVERLORD added the Open to discussion:octocat: Admin/Meta🌍 Translations labels 2026-02-04 23:27:07 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Feb 6, 2019):

Good suggestion.

I had a look at such platforms a while back but didn't get too far. Would be good to get some input from someone that has used such systems for a similar project to BookStack or some general examples of use in other open-source projects.

@ssddanbrown commented on GitHub (Feb 6, 2019): Good suggestion. I had a look at such platforms a while back but didn't get too far. Would be good to get some input from someone that has used such systems for a similar project to BookStack or some general examples of use in other open-source projects.
Author
Owner

@Mant1kor commented on GitHub (Feb 6, 2019):

I have experience only as an translator.
https://www.transifex.com/customers/
https://crowdin.com/page/customer-testimonials
You have to look at automatization between git and localization platform, to push or pull translation files.

@Mant1kor commented on GitHub (Feb 6, 2019): I have experience only as an translator. [https://www.transifex.com/customers/](https://www.transifex.com/customers/) [https://crowdin.com/page/customer-testimonials](https://crowdin.com/page/customer-testimonials) You have to look at automatization between git and localization platform, to push or pull translation files.
Author
Owner

@cima commented on GitHub (Mar 23, 2019):

Transifex is used for localization of TinyMCE WYSIWYG editor which is now outside of BookStack's translation files.

@cima commented on GitHub (Mar 23, 2019): Transifex is used for localization of TinyMCE WYSIWYG editor which is now outside of BookStack's translation files.
Author
Owner

@ssddanbrown commented on GitHub (Oct 18, 2019):

I've just set up BookStack on Crowdin, Just need to do some final setup but seems to be fairly easy to integrate. Loads of nice features and a much friendlier UI for those not used to git.

A couple of potential concerns though:

Attribution

How do we ensure people get proper attribution?

Crowdin Open Source Terms

One of the agreements of using the free open-source tier of crowdin is that you agree for the project translations to be submitted to "Crowdin Global Translation Memory". Those translations are the work of others so I feel a little uncomfortable submitting their translations. Might be good to get some general feedback from existing BookStack translators on this one.

@ssddanbrown commented on GitHub (Oct 18, 2019): I've just set up BookStack on Crowdin, Just need to do some final setup but seems to be fairly easy to integrate. Loads of nice features and a much friendlier UI for those not used to git. A couple of potential concerns though: ### Attribution How do we ensure people get proper attribution? ### Crowdin Open Source Terms One of the agreements of using the free open-source tier of crowdin is that you agree for the project translations to be submitted to "Crowdin Global Translation Memory". Those translations are the work of others so I feel a little uncomfortable submitting their translations. Might be good to get some general feedback from existing BookStack translators on this one.
Author
Owner

@Mant1kor commented on GitHub (Oct 18, 2019):

Those translations are the work of others so I feel a little uncomfortable submitting their translations.

I do not mind.
Crowdin is very comfortable platform to translators.

@Mant1kor commented on GitHub (Oct 18, 2019): > Those translations are the work of others so I feel a little uncomfortable submitting their translations. I do not mind. Crowdin is very comfortable platform to translators.
Author
Owner

@ssddanbrown commented on GitHub (Oct 18, 2019):

Thanks for confirming @Mant1kor.

Question to existing translators

Do you have any objections regarding the translations, that you helped put together, going into the "Crowdin Global Translation Memory". We are looking at using Crowdin to make translating more accessible (Friendly UI where missing translations are highlighted and shown against the base English text). Part of the requirements for us using them for free as an "Open Source Project" is that existing translations will go into their "Global Translation Memory" which essential is their own DB to provide recommendations to their other customers and open source projects. Obviously we will benefit on the inverse of that, where we can get translation suggestions when needed.

If you don't want to provide feedback in the open you should be able to find my email on my GitHub profile.


Pinging existing translators regarding the above: @qligier, @leomartinez, @oykenfurkan, @moucho, @kostefun, @danielroehrig-mm, @miles75, @DeehSlash, @NootoNooto, @Mant1kor, @agvol, @cima, @maantje, @Xiphoseer, @vasiliev123, @ezzra, @qianmengnet, @TheLastOperator, @kejjang, @CliffyPrime, @limkukhyun, @vriic, @mullinsmikey, @houbaron, @kmoj86, @marcusforsberg, @nicobubulle, @alex2702, @msaus, @Alwaysin, @cipi1965, @artur-trzesiok, @lbguilherme, @sanderdw, @timoschwarzer, @Joorem, @JachuPL, @S64, @diegoseso, @arietimmerman, @ReeseSebastian, @NakaharaL, @SergioMendolia, @robertlandes


I have 13 days left on a trial, If I don't hear any major concerns by next weekend I'll request a free open source account.

@ssddanbrown commented on GitHub (Oct 18, 2019): Thanks for confirming @Mant1kor. ### Question to existing translators Do you have any objections regarding the translations, that you helped put together, going into the "Crowdin Global Translation Memory". We are looking at using [Crowdin](https://crowdin.com/project/bookstack) to make translating more accessible (Friendly UI where missing translations are highlighted and shown against the base English text). Part of the requirements for us using them for free as an "Open Source Project" is that existing translations will go into their "Global Translation Memory" which essential is their own DB to provide recommendations to their other customers and open source projects. Obviously we will benefit on the inverse of that, where we can get translation suggestions when needed. If you don't want to provide feedback in the open you should be able to find my email on my GitHub profile. --- Pinging existing translators regarding the above: @qligier, @leomartinez, @oykenfurkan, @moucho, @kostefun, @danielroehrig-mm, @miles75, @DeehSlash, @NootoNooto, @Mant1kor, @agvol, @cima, @maantje, @Xiphoseer, @vasiliev123, @ezzra, @qianmengnet, @TheLastOperator, @kejjang, @CliffyPrime, @limkukhyun, @vriic, @mullinsmikey, @houbaron, @kmoj86, @marcusforsberg, @nicobubulle, @alex2702, @msaus, @Alwaysin, @cipi1965, @artur-trzesiok, @lbguilherme, @sanderdw, @timoschwarzer, @Joorem, @JachuPL, @S64, @diegoseso, @arietimmerman, @ReeseSebastian, @NakaharaL, @SergioMendolia, @robertlandes --- I have 13 days left on a trial, If I don't hear any major concerns by next weekend I'll request a free open source account.
Author
Owner

@cipi1965 commented on GitHub (Oct 18, 2019):

It looks good to me!

@cipi1965 commented on GitHub (Oct 18, 2019): It looks good to me!
Author
Owner

@cipi1965 commented on GitHub (Oct 18, 2019):

@ssddanbrown to update translations can i work on the platform or not for now?

@cipi1965 commented on GitHub (Oct 18, 2019): @ssddanbrown to update translations can i work on the platform or not for now?
Author
Owner

@qligier commented on GitHub (Oct 18, 2019):

I think this is a really good move as it will be easier to work on translations and keep all languages synchronized. +1 for me.

@qligier commented on GitHub (Oct 18, 2019): I think this is a really good move as it will be easier to work on translations and keep all languages synchronized. +1 for me.
Author
Owner

@timoschwarzer commented on GitHub (Oct 18, 2019):

I think the missing translations are highlighted and shown against the base English text part is a really good thing alongside suggested translations. Looks good to me 👍

@timoschwarzer commented on GitHub (Oct 18, 2019): I think the `missing translations are highlighted and shown against the base English text` part is a really good thing alongside suggested translations. Looks good to me :+1:
Author
Owner

@marcusforsberg commented on GitHub (Oct 18, 2019):

Sounds great! 😊

@marcusforsberg commented on GitHub (Oct 18, 2019): Sounds great! 😊
Author
Owner

@MrKhalidJ commented on GitHub (Oct 18, 2019):

No objections here 👍

@MrKhalidJ commented on GitHub (Oct 18, 2019): No objections here :+1:
Author
Owner

@moucho commented on GitHub (Oct 18, 2019):

Looks good!

@moucho commented on GitHub (Oct 18, 2019): Looks good!
Author
Owner

@ssddanbrown commented on GitHub (Oct 18, 2019):

Positive feedback so far!

Thanks @Mant1kor and @cipi1965 for giving it a test drive 😄

I've done an initial merge of those updates in addition to all the other changes the crowdin integration has done. A bit of change in how the base files are used now:

  • English translations are copied out to other languages (In English) if non-existing.
  • Crowdin will insert translations into languages, even if hidden in the platform (Language list options which are EN only).
  • Crowdin will format and align all translation files with English 💪

Unfortunately it does look like everything will be commited by me as the integration user so no attribution via git. I think I'll put together a script to read from the crowdin API to generate an attribution list file of some kind. Could then link that in with GitHub actions so it's generated automatically whenever new translations are provided.


Remaining Actions

  • Request a free "Open Source" crowdin account if no objections by the 27th of October otherwise buy a starter plan subscription.
  • Create script to record proper attribution to translators.
  • Update comments around the en/settings.php language dropdown so it does not mentoin to delete these.
  • Update the translation details/instructions in the readme.
  • Delete the old translation scripts as I think they're now made redundant.
@ssddanbrown commented on GitHub (Oct 18, 2019): Positive feedback so far! Thanks @Mant1kor and @cipi1965 for giving it a test drive :smile: I've done an initial merge of those updates in addition to all the other changes the crowdin integration has done. A bit of change in how the base files are used now: - English translations are copied out to other languages (In English) if non-existing. - Crowdin will insert translations into languages, even if hidden in the platform (Language list options which are EN only). - Crowdin will format and align all translation files with English :muscle: Unfortunately it does look like everything will be commited by me as the integration user so no attribution via git. I think I'll put together a script to read from the crowdin API to generate an attribution list file of some kind. Could then link that in with GitHub actions so it's generated automatically whenever new translations are provided. --- ### Remaining Actions - [x] Request a free "Open Source" crowdin account if no objections by the 27th of October otherwise buy a starter plan subscription. - [x] Create script to record proper attribution to translators. - [x] Update comments around the `en/settings.php` language dropdown so it does not mentoin to delete these. - [x] Update the translation details/instructions in the readme. - [x] Delete the old translation scripts as I think they're now made redundant.
Author
Owner

@artur-trzesiok commented on GitHub (Oct 18, 2019):

Looks good

pt., 18 paź 2019, 18:20 użytkownik Dan Brown notifications@github.com
napisał:

Positive feedback so far!

Thanks @Mant1kor https://github.com/Mant1kor and @cipi1965
https://github.com/cipi1965 for giving it a test drive 😄

I've done an initial merge of those updates in addition to all the other
changes the crowdin integration has done. A bit of change in how the base
files are used now:

  • English translations are copied out to other languages (In English)
    if non-existing.
  • Crowdin will insert translations into languages, even if hidden in
    the platform (Language list options which are EN only).
  • Crowdin will format and align all translation files with English 💪

Unfortunately it does look like everything will be commited by me as the
integration user so no attribution via git. I think I'll put together a
script to read from the crowdin API to generate an attribution list file of
some kind. Could then link that in with GitHub actions so it's generated
automatically whenever new translations are provided.

Remaining Actions

  • Request a free "Open Source" crowdin account if no objections by the
    27th of October otherwise buy a starter plan subscription.
  • Create script to record proper attribution to translators.
  • Update comments around the en/settings.php language dropdown so it
    does not mentoin to delete these.
  • Update the translation details/instructions in the readme.
  • Delete the old translation scripts as I think they're now made
    redundant.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/BookStackApp/BookStack/issues/1261?email_source=notifications&email_token=ABIDNBLKBZQD6TNB7UIMC4TQPHO5NA5CNFSM4GUQ7C32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBVAGRA#issuecomment-543818564,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIDNBMRBM6RRBM63FJU5OTQPHO5NANCNFSM4GUQ7C3Q
.

@artur-trzesiok commented on GitHub (Oct 18, 2019): Looks good pt., 18 paź 2019, 18:20 użytkownik Dan Brown <notifications@github.com> napisał: > Positive feedback so far! > > Thanks @Mant1kor <https://github.com/Mant1kor> and @cipi1965 > <https://github.com/cipi1965> for giving it a test drive 😄 > > I've done an initial merge of those updates in addition to all the other > changes the crowdin integration has done. A bit of change in how the base > files are used now: > > - English translations are copied out to other languages (In English) > if non-existing. > - Crowdin will insert translations into languages, even if hidden in > the platform (Language list options which are EN only). > - Crowdin will format and align all translation files with English 💪 > > Unfortunately it does look like everything will be commited by me as the > integration user so no attribution via git. I think I'll put together a > script to read from the crowdin API to generate an attribution list file of > some kind. Could then link that in with GitHub actions so it's generated > automatically whenever new translations are provided. > ------------------------------ > Remaining Actions > > - Request a free "Open Source" crowdin account if no objections by the > 27th of October otherwise buy a starter plan subscription. > - Create script to record proper attribution to translators. > - Update comments around the en/settings.php language dropdown so it > does not mentoin to delete these. > - Update the translation details/instructions in the readme. > - Delete the old translation scripts as I think they're now made > redundant. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/BookStackApp/BookStack/issues/1261?email_source=notifications&email_token=ABIDNBLKBZQD6TNB7UIMC4TQPHO5NA5CNFSM4GUQ7C32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBVAGRA#issuecomment-543818564>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/ABIDNBMRBM6RRBM63FJU5OTQPHO5NANCNFSM4GUQ7C3Q> > . >
Author
Owner

@Mant1kor commented on GitHub (Oct 18, 2019):

@ssddanbrown just found this apps https://github.com/marketplace/crowdin

Seamlessly integrates into your development process. Files for localization from the branches you chose are transferred into a branch in your Crowdin project. Ready translations get transferred back as a pull request to your repository automatically.

Seems like it's what you need.

@Mant1kor commented on GitHub (Oct 18, 2019): @ssddanbrown just found this apps https://github.com/marketplace/crowdin > Seamlessly integrates into your development process. Files for localization from the branches you chose are transferred into a branch in your Crowdin project. Ready translations get transferred back as a pull request to your repository automatically. Seems like it's what you need.
Author
Owner

@JachuPL commented on GitHub (Oct 18, 2019):

Great idea, this would be very helpful

@JachuPL commented on GitHub (Oct 18, 2019): Great idea, this would be very helpful
Author
Owner

@ssddanbrown commented on GitHub (Oct 18, 2019):

@Mant1kor Yup, I've already set up the integration, just directly via crowdin. Pretty sure that marketplace item just acts as a shortcut to what I've done already, just with less control of the account (I don't want to request an open source account yet or be locked into a business account). The integration is active and a pull request will appear with new translations (If there are any) every-so-often.

@ssddanbrown commented on GitHub (Oct 18, 2019): @Mant1kor Yup, I've already set up the integration, just directly via crowdin. Pretty sure that marketplace item just acts as a shortcut to what I've done already, just with less control of the account (I don't want to request an open source account yet or be locked into a business account). The integration is active and a pull request will appear with new translations (If there are any) every-so-often.
Author
Owner

@NootoNooto commented on GitHub (Oct 18, 2019):

No objections, sounds good.

@NootoNooto commented on GitHub (Oct 18, 2019): No objections, sounds good.
Author
Owner

@nicobubulle commented on GitHub (Oct 18, 2019):

Good for me !

Le ven. 18 oct. 2019 à 18:53, Nooto notifications@github.com a écrit :

No objections, sounds good.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/BookStackApp/BookStack/issues/1261?email_source=notifications&email_token=AA2NVIVKHNXBFSJK5WNTHS3QPHS2NA5CNFSM4GUQ7C32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBVD72I#issuecomment-543834089,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2NVIVP4TG3NWSRYH2P7GLQPHS2NANCNFSM4GUQ7C3Q
.

@nicobubulle commented on GitHub (Oct 18, 2019): Good for me ! Le ven. 18 oct. 2019 à 18:53, Nooto <notifications@github.com> a écrit : > No objections, sounds good. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/BookStackApp/BookStack/issues/1261?email_source=notifications&email_token=AA2NVIVKHNXBFSJK5WNTHS3QPHS2NA5CNFSM4GUQ7C32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBVD72I#issuecomment-543834089>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AA2NVIVP4TG3NWSRYH2P7GLQPHS2NANCNFSM4GUQ7C3Q> > . >
Author
Owner

@kejjang commented on GitHub (Oct 19, 2019):

sounds great!

@kejjang commented on GitHub (Oct 19, 2019): sounds great!
Author
Owner

@sanderdw commented on GitHub (Oct 19, 2019):

Looks good! Fine by me!

@sanderdw commented on GitHub (Oct 19, 2019): Looks good! Fine by me!
Author
Owner

@TheLastOperator commented on GitHub (Oct 19, 2019):

Free software is free, you have my free permission ^^

@TheLastOperator commented on GitHub (Oct 19, 2019): Free software is free, you have my free permission ^^
Author
Owner

@oykenfurkan commented on GitHub (Oct 19, 2019):

No objections, good luck👍

@oykenfurkan commented on GitHub (Oct 19, 2019): No objections, good luck👍
Author
Owner

@cima commented on GitHub (Oct 19, 2019):

I am fine with my translations being imported. A project page or readme with attribution to translators at the date of import shoud be enough. It is better to boost the project development than insisting on translation history.

@cima commented on GitHub (Oct 19, 2019): I am fine with my translations being imported. A project page or readme with attribution to translators at the date of import shoud be enough. It is better to boost the project development than insisting on translation history.
Author
Owner

@ssddanbrown commented on GitHub (Oct 28, 2019):

Since there was no negative pushback or objections on this I've now requested an open source account on crowdin.
An attribution system will be be in place before the next BookStack feature release.

@ssddanbrown commented on GitHub (Oct 28, 2019): Since there was no negative pushback or objections on this I've now requested an open source account on crowdin. An attribution system will be be in place before the next BookStack feature release.
Author
Owner

@ssddanbrown commented on GitHub (Dec 7, 2019):

Readme now updated with link to attribution file and translation details now point to Crowdin.

Now closing this off.

@ssddanbrown commented on GitHub (Dec 7, 2019): Readme now updated with link to attribution file and translation details now point to Crowdin. Now closing this off.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#1029