Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Internationalization Support #206

Closed
bobsummerwill opened this issue Oct 3, 2019 · 53 comments
Closed

Add Internationalization Support #206

bobsummerwill opened this issue Oct 3, 2019 · 53 comments

Comments

@bobsummerwill
Copy link
Member

@bobsummerwill bobsummerwill commented Oct 3, 2019

We have a community gulf to fill between East and West because of having entirely different websites, entirely different tools for communication and because of cultural differences.

So we fix that, by adding translations right here, to the EthereumClassic.org website.

@hitchcott can help us.

The goal would be to have either a runtime toggle (ideal) or to generate the static HTML multiple times.

I want the ETC Consortium (@zoulaihui) and ETC Asia communities (@ChrisXK) to have the option of just mapping directly to EthereumClassic.org (with Chinese by default through their URL), or to maintain their own websites which refer back to this Global one.

This approach does not just give us a means of bringing China and the West closer, but also gives us a path for other language communities (German, Italian, Spanish, French) to do the same.

The desired workflow would be:

  1. Contributor adds new article (in English or other language)
  2. Translators or community managers for other languages are subscribed to this repository, and notice, and get a translation done and then gets committed here too.

Most of the time, the original articles are written first in English. If that happens, we would want that article to show up for people using other languages too - but it will be in English for them until a translated version is available.

For non-English original articles - ie. something written in Chinese about a meetup in Beijing, I am not sure that we would want that to be showing for everyone else. We should only have the drop-back to English. So if there is no "local language" version then drop back to English, and if there is no English version either then don't show it.

So I am a French person. Chinese article added. I do not see it.
So I am a French person. English article added. I see it. If later a French translation is added then I see that.

So I am a French person with that same scenario, but for some reason the article gets translated directly to French, but not to English. In that case I see nothing, and then I see the French version.

So we are favoring English (because of its universality), and have English as a default, and only show localized or drop-back to English.

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Oct 3, 2019

I will help with the translations in german and russian.

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Oct 4, 2019

There is built-in internationalization support in the Gatsby framework, so this should not be hard:

https://www.gatsbyjs.org/docs/localization-i18n/


gatsby-plugin-i18n
This plugin helps you use react-intl, i18next or any other i18n library with Gatsby. This plugin does not translate or format your content, but rather it creates routes for each language, allowing Google to more easily find the correct version of your site, and if you need to, designate alternative UI layouts.

The naming format follows .languageKey.js for files and /languageKey/path/fileName for URLs.

Example:

File - src/pages/about.en.js

URL - /en/about

@ErkanGu1
Copy link

@ErkanGu1 ErkanGu1 commented Oct 4, 2019

@Automata-korea
Copy link

@Automata-korea Automata-korea commented Oct 6, 2019

I can help with the translations in Korean.
and can help publish article.

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Oct 6, 2019

Brilliant - thank you, @Automata-korea!

Everyone - here is how easy it was for me to add a blog post to the site. We should all really try to do that whenever we can rather than using Medium, because then it works within China too, and we are not trapped within the Medium empire.

https://github.com/ethereumclassic/ethereumclassic.github.io/pull/208/files

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Oct 6, 2019

So you are going to at least following along and look into Turkish stuff, @ErkanGu1?
Though you said you likely cannot volunteer, but are just running your business?

@MileyFu
Copy link

@MileyFu MileyFu commented Oct 7, 2019

I can help with the Chinese translation.

@Athethepainter
Copy link
Member

@Athethepainter Athethepainter commented Oct 8, 2019

Hi, I can help with the French translation.

I used to work a lot with React/Gatsby so I can also help with design/css and site development :)

@IstoraMandiri
Copy link
Contributor

@IstoraMandiri IstoraMandiri commented Oct 8, 2019

I just pushed the v2 branch which shows how I intend the i18n to be structured.

Over the coming days I'll be migrating the english content into this branch.

After some research I wasn't able to use the vanilla i18n plugin as it's fairly simple (and doesn't scale for large websites with blogs etc), so I implemented a custom page generation script in gatsby-node.js. It more explicitly manages supported languages as well as fallback to English for non-translated content.

The localised content and UI strings are managed in the ./content directory (in the form of markdown and json strings).

@Athethepainter are you at devcon?

@Athethepainter
Copy link
Member

@Athethepainter Athethepainter commented Oct 8, 2019

@hitchcott No I am in France actually.

I am available on discord or other platforms if we need to talk :)

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Oct 8, 2019

For anybody who has not already noticed, I have created additional Github issues for each of these translations. @hitchcott is working on the actual internationalization structure and support, which is what this issue is tracking. Then when that is done, and we have all the site content updated in English, it will be time for the translation work to be being.

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Oct 8, 2019

Please can everybody here add themselves as "Member" to the ethereumclassic organization?
Especially the translators.
When you are members we can assign the tasks for these translations to each of you.

https://github.com/orgs/ethereumclassic/people

Thanks!

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Oct 8, 2019

Yes, I already noticed it Bob. Are we gradualy going to publish the contents in different language as we will maybe not finish all at the same time with the content?

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Oct 8, 2019

Should not the person be invited by Cody or similar? I got my today and joined already?

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Oct 8, 2019

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Oct 9, 2019

Ok

@Athethepainter
Copy link
Member

@Athethepainter Athethepainter commented Oct 9, 2019

I didn't find the place to self join the organization. Can someone invite me ?

@MileyFu
Copy link

@MileyFu MileyFu commented Oct 10, 2019

I didn't find the place to self join the organization. Can someone invite me ?

Me either...Also may I ask if I get a assigned task how urgent would they be? Trying to estimated the amount of time needed to put in.

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Oct 10, 2019

@Athethepainter, @MileyFu you should get an invitation from DontPanic soon.
Here is a draft version: https://vigorous-poitras-bc8223.netlify.com/.
Would you like join etc discord too? @MileyFu Is it technnically possible for you? Just in case here is the link: https://discord.gg/k6SxGj. Ping me there (at a.s.) and I will approve you

@Harriklaw
Copy link

@Harriklaw Harriklaw commented Oct 13, 2019

i ll help with greek translations

@Harriklaw
Copy link

@Harriklaw Harriklaw commented Oct 13, 2019

i ll help with greek translations

@TheEnthusiasticAs @bobsummerwill

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Oct 13, 2019

@realcodywburns could you pls add @Harriklaw to the etc orga? Thx

@realcodywburns realcodywburns added this to Translations in Web Development Oct 22, 2019
@realcodywburns realcodywburns added this to the Global reach milestone Oct 23, 2019
@IstoraMandiri IstoraMandiri moved this from In progress to Done in Web Development Dec 7, 2019
@IstoraMandiri IstoraMandiri moved this from Done to In progress in Web Development Dec 7, 2019
@IstoraMandiri
Copy link
Contributor

@IstoraMandiri IstoraMandiri commented Dec 7, 2019

Internationalisation support is now fully implemented in source (and develop) branch in terms of filesystem and string replacement.

This will be documented properly in #245, but briefly, languages are configurable in src/i18n/config.js, and new content can be added in yaml or md files inside content.

Next to tackle is #246.

In the meantime, we can start to sort out which content is ready to be translated; see #267

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Dec 30, 2019

Hey all! An update from Chris. He produced a walk-through for tranlsations:
Video Walkthrough:
https://www.youtube.com/watch?v=VD4sS38gras
Version with 11 languages:
https://demo.etc-i18n.hitchcott.com/
New Translation Flow:
https://etc-i18n.hitchcott.com/

If you have any questions, put them here.
Thanks for your helps and let's start :)

P.S.: Let here know if you create an account and Chris will give you premissions. site itself has login of bob/honeybadger

@IstoraMandiri
Copy link
Contributor

@IstoraMandiri IstoraMandiri commented Jan 1, 2020

FYI I will be open sourcing this tool soon - it can be used locally, not just on that web service. (Yay, decentralisation).

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Jan 1, 2020

Brilliant, @hitchcott !

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Jan 3, 2020

due to security measures @hitchcott changed the login datas. Pls request it in more private way e. g. via e-mail, discord

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Jan 5, 2020

An update from me for GER version: The infrastructure and some blogs were translated and submmitted. In the coming days they should be online.

How it is going on by other translators? )

@bobsummerwill
Copy link
Member Author

@bobsummerwill bobsummerwill commented Jan 11, 2020

@hitchcott So this issue can be closed now, eh?

@IstoraMandiri
Copy link
Contributor

@IstoraMandiri IstoraMandiri commented Jan 11, 2020

@bobsummerwill Yes, I guess it can!

Let's continue from #245 and the other issues for individual languages.

Web Development automation moved this from In progress to Done Jan 11, 2020
@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Jan 19, 2020

This issue should be reopend as this can be used for announcements/general coordination topics.

Another topic: Please don't translate the Bob's/ETCCoops's blogs as those are going to be moved to ETCCoop. If you would like to translate those too, pls contact Bob (ETCCoop). The priority is the website.

Thank You!

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Mar 1, 2020

Addition: Pls pause the translating as the website is getting a restructure and additions and will be ready approximately end of march. You probably noticed it based on the new issues in this repo. Thx!

Web Development automation moved this from Done to In progress Mar 1, 2020
@IstoraMandiri IstoraMandiri moved this from In progress to Done in Web Development Mar 11, 2020
@TheEnthusiasticAs TheEnthusiasticAs moved this from Done to In progress in Web Development Mar 13, 2020
@IstoraMandiri IstoraMandiri moved this from In progress to Done in Web Development Apr 6, 2020
@IstoraMandiri
Copy link
Contributor

@IstoraMandiri IstoraMandiri commented Apr 6, 2020

As i18n is implemented, please use the other thread for coordinating stuff.

#245

@ondertitels
Copy link

@ondertitels ondertitels commented May 23, 2020

I can help with dutch translations :)

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented May 23, 2020

@ondertitels nice to hear it. Hitchcott is working currently on the updating the walk-through for the translation. As soon as it is finished, it will be announced here and you can start with translations. The site got many content & structure updates )

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Jun 6, 2020

Hello everyone!

Chris and other participants updated the contents and the structure of the website. He also made another way to translate the website. It is now one file on github, which should only now be translated. More details are here: https://github.com/ethereumclassic/ethereumclassic.github.io.

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Jul 8, 2020

Hi Everyone! Chris updated the babel with the current site version (EN): https://github.com/ethereumclassic/ethereumclassic.github.io. Please fork it again and translate! Thank You!

PS: A demo of how it would look like to switch between the languages: https://babel--ethereumclassic.netlify.app/. Here it is translated with the google translator atm.

@w1g0
Copy link
Contributor

@w1g0 w1g0 commented Jul 12, 2020

Hello! Since this week I started translating into the Dutch language ;)

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Jul 12, 2020

@XoxoPH
Copy link

@XoxoPH XoxoPH commented Sep 2, 2020

I can help on Filipino translation

@TheEnthusiasticAs
Copy link
Member

@TheEnthusiasticAs TheEnthusiasticAs commented Sep 3, 2020

@XoxoPH thank you! Please follow the guide posted by me above. If any questions appear, please ask

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Linked pull requests

Successfully merging a pull request may close this issue.

None yet