Comments (67)
Wow, thank you so much for the many positive replies! You're all amazing!
Many have asked me (via emails or via chat) what the next steps will be. I propose the following:
- First, we get the
zh-CN.po
file commited via #676 (@jzpin is on that). - After that, use this spreadsheet to coordinate.
- I've added everybody who expressed interest above — please add yourself!
- Pick a file from the second sheet and add your Github username next to it to claim it.
- Change the state to "In progress" and
- Add today's date to the last change column.
- The spreadsheet is editable by everybody (both inside and outside of Google) so you can add/remove things, comment on it and generally update it to suit your needs.
Please send small PRs! I suggest translating the titles in the SUMMARY.md
file as you translate the content itself, but that will naturally lead to contention on that file. Perhaps you want to instead agree upfront about the wording for the titles? Our discussions would be a good place to do this.
See #683 for a just-started discussion about where to coordinate a translation table. You might want to create a similar table — in the spreadsheet, in the PO file directly, or in a discussion post.
Let me know if I've forgotten something or can help in any other way!
from comprehensive-rust.
@jzpin I've also met these two problems before, here's my solution for these:
(1) In po file, all text will have a filename above, just like this:
or we can use text search of text editor(Ctrl + F) to find the related position. The file hierarchy is related to the hierarchy of the document category. So when we need to translate chaptor of 'Hello World', just open the chapter in https://google.github.io/comprehensive-rust/hello-world.html, then search "Let us jump into the simplest possible" in the po file.
(2) I found that poedit would automatically format the po file, and it will even change the metadata 'Language' from 'zh-Hans' to 'zh_CN'. I don't find where to close the feature, so now I switch to VSCode + gettext plugin to edit the po file:
I will execute the command MDBOOK_BOOK__LANGUAGE=zh-Hans mdbook serve -d book/zh-Hans
to ensure the file format and display effect is ok.
from comprehensive-rust.
@mgeisler I'm glad to help review some translations. btws, I have about ten years of bare metal development experience and six years of Android development experience, so I think I can help review bare metal and Android related translations.
Excellent, thanks for joining the project! You should be able to review any of the outstanding PRs. You should be able to add comments already. That will be helpful to the PR author so that problems can be spotted quickly.
You can probably not approve the PRs, but we have a handful of dedicated reviewers already so I guess we're covered on that front? Let me know what you all think here.
from comprehensive-rust.
As a part time task, I cannot review incoming PR as soon as possible, so it's looks good for me.
Ah, that's great to hear!
We currently have 5 people signed up as code owners for the zh-CN.po
file. My intuition is that it's not useful to email, say, 10 people on every PR — I think that will lead to either duplicate work, or lead to a diffusion where everybody thinks someone else will review the PRs. I don't think this is happening right now, you've all done a superb job at reviewing the 30+ PRs so far! 🤩
On the other hand, I don't want to discourage anybody from helping out! So I'll keep approving code owners until someone tells me to stop 😄
from comprehensive-rust.
Hi contributors,
Any suggestions on which Chinese translation of the Rust language book we should use as the reference? Previously Martin mentioned https://kaisery.github.io/trpl-zh-cn/ but I also saw other folks suggesting https://rustwiki.org/zh-CN/book/. These two books do have differences in translating terms like 'shadowing' (隐藏 vs 遮蔽).
Which Chinese translation of the Rust language book would you suggest as the reference? Please share your thoughts so that we can stick to one as the reference.
from comprehensive-rust.
closed this as not plannedWon't fix, can't repro, duplicate, stale
Hi @mgeisler, I think it's okay to reopen this. I'm sorry for inadvertently closing this issue due to my unfamiliarity with GitHub operations.
from comprehensive-rust.
Hi @mgeisler , I missed your first email and just saw your 2nd email today. I am happy to help as well.
Hi @emmafu2022, that's excellent! Thanks a lot! Please see #324 (comment) for instructions. We have a lot of reviewers now (and people are very much welcome to review even without being listed in the CODEOWNERS
file), so I suggest you get the tooling setup and pick a file to translate 🙂
Start small and send a few PRs small to get things going!
from comprehensive-rust.
Hi all! Thanks to #1218, the Simplified Chinese translation is now being published automatically on every merge to main
. See: https://google.github.io/comprehensive-rust/zh-CN/.
What you see there is the result of translating the current English strings — if your PO file is not up-to-date, the course reverts to English (see google/mdbook-i18n-helpers#16 for ideas on how to improve this). This is why running msgmerge
every 2-3 weeks is so important.
@henrif75 is working with our Localization team to translate the missing content and I hope it will be ready for review in a few weeks.
from comprehensive-rust.
Hey @mgeisler,
With the latest PRs, the zh-CN translation has now (for Fundamentals):
msggrep -v --location=src/{exercises/,}{android,bare-metal,concurrency,async}{.md,"/*","/*/*","/*/*/*"} po/zh-CN.po | msgfmt -o /dev/null --statistics -
1277 translated messages, 152 fuzzy translations, 181 untranslated messages.
Should we finally add it to the language drop-down as an available translation?
About the remaining untranslated/fuzzy messages, would it be better to save resources and wait for the v2 structure?
from comprehensive-rust.
本地运行 mdbook serve 怎么切换到中文?
Looks this part of the file: https://github.com/google/comprehensive-rust/blob/main/TRANSLATIONS.md#serving-a-translation
MDBOOK_BOOK__LANGUAGE=xx mdbook serve -d book/xx
from comprehensive-rust.
Hey all, please see #1367 for a discussion about a Chinese glossary.
Also, thanks to your hard work, the Simplified Chinese translation is now published and linked from the language picker! 🎉 You can see it live here: https://google.github.io/comprehensive-rust/zh-CN/.
from comprehensive-rust.
For reference: https://github.com/KaiserY/trpl-zh-cn.
from comprehensive-rust.
Sounds great. I'm currently taking this project as a reference.
from comprehensive-rust.
Hey @mgeisler: I saw that there's a machine-translated version by running the i18n script, could you run the script for the zh_CN locale for us?
(I think Hilbert had a similar script but we noticed some off-by-one errors..., so just wanted to see if these errors are specific to zh_CN locale.)
Thanks!
from comprehensive-rust.
Hi @kiwiwarmnfuzzy, the script it here: #291. I asked the other translators, and they tell me that they haven't seen the same off-by-one errors.
Here is the output from a fresh run of that script: zh_CN.zip.
from comprehensive-rust.
Hi @kiwiwarmnfuzzy, the script it here: #291. I asked the other translators, and they tell me that they haven't seen the same off-by-one errors.
Here is the output from a fresh run of that script: zh_CN.zip.
Oh no worries I wasn't using your script. And thanks this output looks good - we can start from here.
from comprehensive-rust.
Oh no worries I wasn't using your script.
Great to hear that!
from comprehensive-rust.
Hi there, just a small note: please rename the file to zh-CN.po
so that the translation will eventually appear under .../zh-CN/
. The _
to -
change should give us the right kind of language tag and this is the style we used for the Brazilian Portuguese translation in #381.
from comprehensive-rust.
From reading https://developers.google.com/search/docs/specialty/international/localized-versions, I'm thinking we should name the Simplified Chinese translation zh-Hans
like @taotieren does in #436.
from comprehensive-rust.
From reading https://developers.google.com/search/docs/specialty/international/localized-versions, I'm thinking we should name the Simplified Chinese translation
zh-Hans
like @taotieren does in #436.
Got it. I've been occupied by my COVID and ISCA rebuttal lately. Will work on this from the coming week.
from comprehensive-rust.
Got it. I've been occupied by my COVID and ISCA rebuttal lately.
Ugh, sorry to hear that! I had COVID myself last year and it was not fun at all... Good luck with the conference! 🙂
from comprehensive-rust.
Got it. I've been occupied by my COVID and ISCA rebuttal lately.
Ugh, sorry to hear that! I had COVID myself last year and it was not fun at all... Good luck with the conference! slightly_smiling_face
Thanks for the kind words :)
from comprehensive-rust.
@hilbert-yaa any update? can't wait to see it
from comprehensive-rust.
I think called Chinese Simplified is better.
Can you post the WIP repo URL in this issuse?
from comprehensive-rust.
@xusiwei Thanks for reaching out!
I think called Chinese Simplified is better.
Could you explain a little why 'Chinese Simplified' is better? Is the difference between Mandarin v.s. Simplified about speaking v.s. writing? (I'm not very experienced in internationalization and various terminologies, so I'm mildly curious.)
Can you post the WIP repo URL in this issuse?
#325 is the latest PR that I'm aware of. This Google Doc has all the pointers.
from comprehensive-rust.
I think called Chinese Simplified is better.
Hi @xusiwei, I tried looking this up and from what I can understand, you're right: we should call the translation "Chinese (Simplified)" since we're referring to the script. Google Translate uses "Chinese (Simplified)" so that's why I'm suggesting this variation.
from comprehensive-rust.
To everybody here (@est7, @xusiwei, @kiwiwarmnfuzzy, ...): could someone generate a nearly-empty po/zh-Hans.po
file to get the translation kicked off? We've done that recently for #653 and #652 😄
It would be awesome to get this started so that people can have an easier time contributing follow-up translations.
from comprehensive-rust.
Hi @mgeisler, just saw your email and I think this is very exciting! I was going to go through the course anyway so I'd love to help with at least some parts of this translation.
from comprehensive-rust.
Hi @mgeisler, just saw your email and I think this is very exciting! I was going to go through the course anyway so I'd love to help with at least some parts of this translation.
Hey @markx, that's excellent! Please start by putting up a PR to create the PO file, see our translation instructions for how to do this.
from comprehensive-rust.
Hi @mgeisler, I saw your email too. I can also help with the translation!
from comprehensive-rust.
Hi @mgeisler I would like to help. How many people are needed for the Chinese translation? I was wondering how to avoid duplicate work?
from comprehensive-rust.
To create the po file for Chinese, should we use zh-HANS or zh-CN for simplified Chinese? To give some context, see discussion here for Chinese variants. To me, maybe zh-CN makes more sense here, if we really want to consider the differences of usage at different regions.
from comprehensive-rust.
Hi @mgeisler, I'm Doris. I'd like to help! How should I coordinate with other volunteers?
from comprehensive-rust.
Hi @mgeisler, I'm Luke and I saw your email. I'd like to help with the translations! How should I participate in this?
from comprehensive-rust.
hey @mgeisler, My name's David and I'm also happy to help!
from comprehensive-rust.
Hi. This is Yifang and I'm glad to help :)
from comprehensive-rust.
To create the po file for Chinese, should we use zh-HANS or zh-CN for simplified Chinese? To give some context, see discussion here for Chinese variants.
Thanks for the link — I've also been trying to read up on this!
As written above and in your link, zh-Hans and zh-Hant are the recommended region neutral ways of denoting the Chinese written in einer simplified or traditional script. That's my current understanding and it matches how Google Translate has just two options
- Chinese (Simplified)
- Chinese (Traditional)
To me, maybe zh-CN makes more sense here, if we really want to consider the differences of usage at different regions.
This is something I cannot judge. My guy feeling would be to start with simplified and traditional translations — but that's just because I can see the difference even if I cannot read the scripts 🙂
Do you think the Rust community is large enough to have regional differences show up so that we should have CN, TW HK and SG translations?
from comprehensive-rust.
If there are people here who actually wanted to work on a Chinese (Traditional) translation, then please see the newly created #684!
from comprehensive-rust.
I only have experiences on zh-CN and zh-TW. Translation between zh-CN and zh-TW is nontrivial. For example, the word software is translated to zh-CN as 软件 and the direct translation from simplified Chinese to the traditional Chinese is 軟件. But the correct translation is 軟體. Both 軟件 and 軟體 are in traditional Chinese. I am not sure if there are such differences in other regions like HK or SG.
Given all that, I agree to use zh-Hans and zh-Hant in this case, as we are most likely to have only two translations in the end. I just want to remind other participants to be aware of the issue.
from comprehensive-rust.
Hi, I saw your post in misc-pek, glad to help with translation, added myself in the spreadsheet. 😃
from comprehensive-rust.
All: please assign a file to yourself in the spreadsheet and send a few small PRs to get started.
See #324 (comment) for my proposed next steps — I hope you can self-organize and come up with guidelines for a consistent vocabulary.
from comprehensive-rust.
Hi @mgeisler, I saw your email to misc-pek. I can also help with the translation!
from comprehensive-rust.
Thanks @gryffindor-rr, please see instructions above.
Thanks @sylxjtu for making the first PR with translated strings! 🎉 @suetfei, you should be able to review this after accepting the invite to work on the repository.
from comprehensive-rust.
Wow, you've opened an amazing amount of PRs! That's amazing to see! 🎉 We now have @suetfei, @wnghl, @anlunx, and @kongy as reviewers for Chinese (Simplified) so I hope you won't have to wait long to get them merged.
When the first day has been translated, then we can start publishing the translation as part of the normal flow. Eventually, we will link it from the translations page and include it in the language picker in the top-right of every page. I suggest we do this when we have the first two days translated — we can put the translation into a new "Under construction" section on the page. Suggestions welcome 🙂
from comprehensive-rust.
Great! I will also help with this matter.
from comprehensive-rust.
Hi contributors, Two quick questions, (1) the work list is divided by files, but how do you locate the target file in the .po file? (2) I tried the Poedit to modify the translation and it turns out it will modify a lot of the formatting in the file which are not my parts. While I checked PR from other people, they only modified necessary lines. How to handle this?
from comprehensive-rust.
Thanks @wnghl ! This is very helpful.
from comprehensive-rust.
Hi all, thank you very much for the incredible work done here! Let me know if you want to show the in-progress translation already under the Incomplete Translations heading?
I've talked more with people at Google about the naming of the translation and it turns out I was wrong in recommending zh-Hans
here. Like @jzpin said above, the vocabulary is different in different regions even if they use the same script.
So I will like us to rename the po/zh-Hans.po
file to po/zh-CN.po
. @wnghl, can you make a PR for that? Git should be able to merge the in-flight changes fine even after renaming the file.
from comprehensive-rust.
Hi all, thank you very much for the incredible work done here! Let me know if you want to show the in-progress translation already under the Incomplete Translations heading?
I've talked more with people at Google about the naming of the translation and it turns out I was wrong in recommending
zh-Hans
here. Like @jzpin said above, the vocabulary is different in different regions even if they use the same script.So I will like us to rename the
po/zh-Hans.po
file topo/zh-CN.po
. @wnghl, can you make a PR for that? Git should be able to merge the in-flight changes fine even after renaming the file.
Hi @mgeisler , we have created the pr of renaming and it is already merged
from comprehensive-rust.
Hi @mgeisler , we have created the pr of renaming and it is already merged
Thanks! I guess this issue should be opened again or did you want to create a new one?
from comprehensive-rust.
Hi @mgeisler , I missed your first email and just saw your 2nd email today. I am happy to help as well.
from comprehensive-rust.
@mgeisler I'm glad to help review some translations. btws, I have about ten years of bare metal development experience and six years of Android development experience, so I think I can help review bare metal and Android related translations.
from comprehensive-rust.
You can probably not approve the PRs, but we have a handful of dedicated reviewers already so I guess we're covered on that front? Let me know what you all think here.
As a part time task, I cannot review incoming PR as soon as possible, so it's looks good for me.
from comprehensive-rust.
Hey all, I've sent more chapters to our localization team and will be putting up more PRs soon. Thanks for all the help in reviewing this!
from comprehensive-rust.
Hi all! It would be great if someone could refresh the translation with msgmerge
after installing the new version of mdbook-i18n-helpers
. After the normalization in #1097, you need a refresh to get new strings incorporated and to mark old strings as obsolete.
from comprehensive-rust.
I'm going to revert the open zh-CN PRs back to draft until we sort out an issue with the current .po file.
from comprehensive-rust.
What you see there is the result of translating the current English strings — if your PO file is not up-to-date, the course reverts to English (see google/mdbook-i18n-helpers#16 for ideas on how to improve this). This is why running
msgmerge
every 2-3 weeks is so important.
This is now outdated! With #1243, we now use the POT-Creation-Date in each PO file to retrieve the English messages present at the time the PO file was last refreshed.
With #1312 merged, I see that Rust Fundamentals (Days 1 to 3) are 62% translated! Amazing 🎉
In Zsh, I found this lovely command to exclude the Android, Bare-metal, and Concurrency deep dives:
% msggrep -v --location=src/{exercises/,}{android,bare-metal,concurrency,async}{.md,"/*","/*/*","/*/*/*"} po/zh-CN.po | msgfmt -o /dev/null --statistics -
1012 translated messages, 151 fuzzy translations, 457 untranslated messages.
I think we should consider linking Simplified Chinese in the language picker drop-down soon. Maybe fully translating the front page and Day 1 Morning and Afternoon would be a good milestone?
Please let me and @henrif75 know if we can help in any way.
from comprehensive-rust.
本地运行 mdbook serve 怎么切换到中文?
from comprehensive-rust.
本地运行 mdbook serve 怎么切换到中文?
Looks this part of the file: https://github.com/google/comprehensive-rust/blob/main/TRANSLATIONS.md#serving-a-translation
MDBOOK_BOOK__LANGUAGE=xx mdbook serve -d book/xx
多谢🙏
from comprehensive-rust.
Should we finally add it to the language drop-down as an available translation?
Yes, let's do that! Thanks for checking the statistics!
from comprehensive-rust.
Hi all! I wanted to let you know about #1460. This is an update to mdbook-i18n-helpers which will remove ~6k lines from your PO file. It changes the way code blocks are processed: we now extract strings and comments directly.
You need to run mdbook-i18n-normalize
on your PO file to preserve the translations found here: https://google.github.io/comprehensive-rust/zh-CN/hello-world/small-example.html (and any other places where you have translated comments).
You can do this before/after refreshing the translation. See #1461 for an example PR which shows the state after normalization.
from comprehensive-rust.
Hey folks, just a heads up that we're tinkering with publishing the course as a PDF — including for the translations: #1572.
If you have input on the font to use, please let us know!
from comprehensive-rust.
Hi guys! This is Yihao (Ethan), and I'm exicited to make a meaningful contribution!🔥
from comprehensive-rust.
Hi guys! This is Yihao (Ethan), and I'm exicited to make a meaningful contribution!🔥
Hi Ethan, thank you! It's great to have you with our efforts to make the course accessible to Chinese-speakers!
Feel free to check the TRANSLATIONS.md with the instructions on how the localization engine works.
Feel free to send me a PR as well if you want to help with PR reviews by adding yourself to the CODEOWNERS file.
Thanks again!
from comprehensive-rust.
Hi guys! This is Yihao (Ethan), and I'm exicited to make a meaningful contribution!🔥
Hi Ethan, thank you! It's great to have you with our efforts to make the course accessible to Chinese-speakers! Feel free to check the TRANSLATIONS.md with the instructions on how the localization engine works. Feel free to send me a PR as well if you want to help with PR reviews by adding yourself to the CODEOWNERS file. Thanks again!
Hi Henri. Thanks for your reply. Sure I'm willing to help and I have created a PR #1734
from comprehensive-rust.
The v.2 content is now published. There's still several fuzzy translations that will need to be reviewed and corrected or confirmed.
from comprehensive-rust.
Closing this issue since we're done with the core translation work.
from comprehensive-rust.
Related Issues (20)
- Update translation instructions on manipulating `.po` files
- Verify and prune CODEOWNERS list for translations HOT 2
- concurrency: Avoid `1..ROUND_NUMBER` loops HOT 1
- Cannot search for "`From` and `Into`"
- `From` and `Into` slide should emphasize losslessness and infallibility
- `let`...`else` example should demonstrate denesting HOT 1
- syntax: explain that rust pervasively allows separators to be used as terminators
- Call out `Neg` trait in speaker notes
- cortex-m-rt 0.7.4 has been yanked
- Possible clarification in chapter "6.2.1. for" HOT 1
- Page `Exercise: Iterator Method Chaining` rust code not rendering HOT 1
- Most code snippets don't work anymore HOT 2
- Dead link found in the glossary.md translations HOT 1
- Korean (ko): Catch-up with EN version
- Spanish (es): Catch-up with EN version HOT 15
- Brazilian Portuguese (pt-BR): Catch-up with EN version
- Chinese Simplified (zh-CN): Catch-up with EN version
- Chinese (Traditional) (zh-TW): Catch-up with EN version
- Make `Fork` useful in Dinning Philosopher exercises HOT 1
- The language switching menu requires clicking on the text, not elsewhere in the menu item HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from comprehensive-rust.