Closed quadratz closed 2 years ago
@CikiMomogi so cool to see you're attempting to translate the website to Indonesian! This is a huge effort that should not be underestimated. I hope you are familiar with the translation guide :)
We are going to follow your progress closely so we can be sure that the translations are of high quality. Could you tell us the names of all contributors known so far who are going to help you translate this page to Indonesian? A rough estimate is that the translation will take 250-400 work hours, so even if you spent 50 hours per week, it will take more than one month. This is based on how much time the last teams needed.
Having someone to review and reiterate is very important because clear language should always be validated by another person to be truly understandable.
@CikiMomogi so cool to see you're attempting to translate the website to Indonesian! This is a huge effort that should not be underestimated. I hope you are familiar with the translation guide :)
Thanks for the kind words. I've read translation guide and understand that this is a long time-consuming project, should be fully completed, and has potential to be abandoned. I will do my best to complete this project.
For the translation quality, I have some experience translating various applications (you can check my crowdin @CikiMomogi
). I always choose the word that are easier to understand and not too technical for my fellow Indonesian out there without compromising the meaning of the sentence itself. Not just copy-paste from the translator.
For now I do not have a list of other contributors. Of course, I look forward to readers who are fluent in Indonesian to contribute as well.
Hi there @CikiMomogi!
We want to keep the current quality of our documentation, we want our upcoming translations in other languages to be simple, clear, and easily understandable by the speakers of the respective language.
To ensure and enforce a high-quality translation, we need each page to be reviewed individually after it has been translated. To do that, you will have to open a pull request for each page that you translate. All of those pull requests should be reviewed. We recommend the reviews are done by someone else than the one who translated the page, but this can be done by the one who translated if there was no chance to have someone else.
Here are some suggestions for your translation process:
#indonesian-language
) as they are. They should be replaced with the translated section name (for example if the translated section name is "Bahasa Indonesia", it should be replaced with "#bahasa-indonesia").Feel free to ask me questions or to tell me if a point needs more clarification. Thank you for your efforts!
After I merged https://github.com/grammyjs/website/pull/375 into my main branch, I got an error when running npm run docs:dev
. Can anyone help me? Here is the error log:
> grammy-website@1.0.0 docs:dev
> vuepress-vite dev docs
Error: Cannot find module './index.json'
Require stack:
- /home/qz/development/grammY/web/website/site/docs/.vuepress/plugins/current-versions/plugin.ts
- /home/qz/development/grammY/web/website/site/docs/.vuepress/config.ts
- /home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/config/loadUserConfigCjs.js
- /home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/config/loadUserConfig.js
- /home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/config/index.js
- /home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/commands/build/createBuild.js
- /home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/commands/build/index.js
- /home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/commands/index.js
- /home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/index.js
- /home/qz/development/grammY/web/website/site/node_modules/vuepress-vite/bin/vuepress.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/home/qz/development/grammY/web/website/site/docs/.vuepress/plugins/current-versions/plugin.ts:26:28)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.require.extensions..ts (/home/qz/development/grammY/web/website/site/node_modules/@vuepress/cli/lib/utils/allowTs.js:11:11)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
You need to run npm install
one more time.
This will make sure that npm run docs:index-versions
is executed, a script that generates a local index or all most recent plugin versions. (So you could also just run the latter script manually.)
The error was resolved after I ran npm run docs:index-versions
. Thanks for the help.
Regarding point 1 of the following page,
- We must have access to the bot object. This means that we have to pass the bot object all around our code base in order to respond, which is annoying when you have more than one source file and you define your listener somewhere else.
I understand that we can use ctx.api
instead of bot.api.
That way, we no longer need to pass the bot object around the code base, right? But I don't quite understand the use case. Can you give an example or source code of comparison between the two?
The train of thought is:
Need to use bot.api
for every API call
→ need access to bot
everywhere
→ need to import it into every module
→ results in high cohesion of the source
→ prevents us from decoupling our components
→ bad software architecture.
So the solution is to use ctx.api
because the ctx
is declared locally in every module, so you can decouple your code and have a good architecture.
That's simplified, but you get the idea.
After I read some source code examples, now I completely understood. Previously, I had confused ctx.api
with composer
to replace the bot
object. :P
@sensen:
I am going to return the translation for some technical words to their origin, e.g:
kueri inline
=> inline query
,
penggerak grammY
=> grammy runner
,
pembaruan
=> update
(update object),
komposer
=> composer
permintaan
=> request
(HTTP request)
batasan error
=> error boundary
penyimak
=> listener
pustaka
=> library
etc.
However, commonly used phrases will remain:
composer class
=> kelas composer
function x
=> fungsi x
,
etc.
I'm pretty sure the readers have learned programming before, therefore they should be familiar with these words. Moreover, the words when translated sound a little weird - at least for me. I want to hear your thoughts on whether this is a good idea.
Here is the sample: https://github.com/CikiMomogi/website/pull/20
Hey @CikiMomogi!
I agree. It sounds weird to me, too. Possibly because we're very familiar with the English words.
I can't remember the last timeI read documentation in Indonesian language. But if I were to do that, I'd prefer the documentation to keep the technical terms in English.
If you decided to go with this, I'd suggest not translating even composer class
or function x
.
Can I change the link reference from Deno https://github.com/grammyjs/website/blob/0565e6b4fc21016daff8f703b6e27252ae9afc08/site/docs/guide/deployment-types.md?plain=1#L152
Since the content is the same, I think it would be better to redirect readers to the translated doc instead.
Can I change the link reference from Deno
to here?
Since the content is the same, I think it would be better to redirect readers to the translated doc instead.
There are two links in the line of text you reference, and one of them already refers to https://github.com/grammyjs/website/blob/0565e6b4fc21016daff8f703b6e27252ae9afc08/site/docs/guide/deployment-types.md?plain=1#L235 if I'm not mistaken.
There are two links in the line of text you reference
The second one. https://doc.deno.land/https://deno.land/x/grammy/mod.ts/~/ApiClientOptions#canUseWebhookReply
Yes, so you want to have identical two links in the same sentence?
Well, I can rearrange the words to reference the single link. But, I wonder if you did them intentionally, except for avoiding the two identical link in the same sentence.
The API reference is always more comprehensive and more accurate than the website because it is directly generated from the code, but the website is more high-level and easier to understand. In cases where it really matters, such as here where messages could potentially get lost, it is often good advice to check out the API reference in addition. That's why I would like to keep both links.
However, I do see the point that the content behind the two links is redundant now. This happened because the docs used not to go into depth here, which was a bit of a pitfall, so we decided to make the drawbacks more prominent.
I have opened #418 which fixes the problem. Can you check it out and say if that phrasing is better?
I have opened #418 which fixes the problem. Can you check it out and say if that phrasing is better?
Yep, looks good to me!
Is Node
in the comment bellow referring to node.js? If so, does that mean there is a typo in the code snippet for Deno? (full context)
const { Bot } = require("grammy");
const bot = new Bot("<token>");
// Stopping the bot when Node process
// is about to be terminated
process.once("SIGINT", () => bot.stop());
process.once("SIGTERM", () => bot.stop());
await bot.start();
Deno:
import { Bot } from "https://deno.land/x/grammy@v1.8.3/mod.ts";
const bot = new Bot("<token>");
// Stopping the bot when Node process
// is about to be terminated
Deno.addSignalListener("SIGINT", () => bot.stop());
Deno.addSignalListener("SIGTERM", () => bot.stop());
await bot.start();
Also, I don't understand the meaning of both registered and trademark symbols in the last paragraph That’s basically all there is to reliability, your instance should®️ never™️ crash now
. I'm sure it is supposed to be a joke, but I missed the punchline. 😅
Thank you for the report, @CikiMomogi!
I've opened #421 related to that, can you please do me a review?
Don't we need to import somePluginMethod
from some-plugin
because we invoke bot.api.somePluginMethod()
on line 109?
No, somePluginMethod
is a method that will be added to bot.api’s prototype after the plugin is installed in line 106.
Can somebody please check my PQ? The github actions keep failing. However, when I ran deno fmt --check
, there was no such error. Somehow the formatting error was found in another file that I haven't touched at all.
This is because of the recent Deno 1.23.0 update. Look how https://github.com/denoland/deno/pull/14841 was merged and now affects existing files in all future CI runs. Feel free to fix it, even though that means you'll touch unrelated files.
@roj1512 it would be great if you could push a formatting commit upstream.
Oh, so that's the reason. I guess it's perfect time to upgrade my Deno.
@KnorpelSenf I don't have access to his fork.
You mean you do not have write access?
ye
I guess that's the disadvantage of doing translations in forks.
Do you need write access for anything, i.e. is there anything you can't do via forking? Should I ask @CikiMomogi to give you write access? :smile:
Of course I can make a PR to reformat. I thought you mean I just push to his upstream
Ah I see, sorry, I meant the main repo, but now I fixed it myself in https://github.com/grammyjs/website/pull/422
I should've maybe referred back to https://github.com/grammyjs/website/issues/369#issuecomment-1157306824 from #422 🤔
Glad it's fixed anyway
I'm a bit lost as to what creator
means here. At line 318, my interpretation is that ctx.match
will contain the name of the message sender, NOT the creator of the bot. So, the bot will reply "I was created by (message sender name)", correct?
Moreover, why even bother storing the payload if we can simply fetch the name of the message sender directly from ctx.from.first_name
.
Creator refers to the original author of the message, also across forwards. While we could clarify that, it's also a very primitive example to illustrate the feature without much code. Maybe we can find a real-world use case that is better suited as an example to explain this. Do you have any suggestions?
Page not found at the following link:
Is it supposed to reference this link, https://raw.githubusercontent.com/grammyjs/auto-retry/main/src/index.ts?
https://doc.deno.land/https://raw.githubusercontent.com/grammyjs/auto-retry/main/src/index.ts is the correct link. Deno changed something in the way they represent their URLs, which broke this link. It used to work before.
Got it! I will make the PQ.
@KnorpelSenf @roj1512 Do you guys need a review approval for each pull request in my repository? Currently I have approval request enabled only for one collaborator.
@CikiMomogi nope, it's fine!
What is (=editor support)
at the end of line 43? Does it have a specific meaning or is it just a typo?
Types give information about the code to the editor. That's why providing types improves how well your editor can support you. Types equals editor support.
Is the editor here referring to the code editor? Therefore, by providing types, it can bring more information to the code editor and thus improve productivity and make it easier for users.
Yes, the TypeScript types improve what VSCode can do for you. We describe this in more depth a few paragraphs later.
https://github.com/orgs/CikiMomogi-grammY/teams/translator/discussions/3/comments/8
CSS untuk dokumentasinya, memang dibuat pakai text-justify: inter-character ya? kadang agak ngerasain pada bagian tertentu paragrafnya jadi kayak A B C D.
Normal spacing:
Too wide (?):
"Does the CSS intentionally use text-justify: inter-character
? The spacing in some paragraphs looks too wide if the words are too long". Is it possible for us to fix the issue?
Yes, all styles are here: https://github.com/grammyjs/website/blob/2ffcde510a7e25d9bbf72c889c4344b249c8e473/site/docs/.vuepress/styles/index.scss#L36
Feel free to play around with the config. For example, it looks like your browser isn't able to hyphenate Indonesian. This issue does not appear in English.
SELESAI..!!! :partying_face: Terima kasih yang sebanyak-banyaknya untuk @fadzikri dan @sensen atas masukan, saran dan bantuan perbaikan terjemahannya selama 3 bulan lebih ini. Not to mention @KnorpelSenf and @roj1512 for their guidance and patience to answer my noob questions :sweat_smile:.
🇮🇩 Indonesian
Deskripsi
Issue ini digunakan untuk memantau proses translasi semua halaman. Issue akan ditutup ketika semua dokumentasi berhasil diselesaikan.
Ikutan dong...!!!
Menjadi Penerjemah
Menjadi Penyunting
Silahkan dikoreksi PR translasi yang sudah dibuat. Tambahkan catatan jika diperlukan.
Catatan
Kata-kata yang berhubungan dengan methods, nama function, variables... tidak perlu diterjemahkan. Berikut beberapa contohnya:
🇬🇧 English
Description
This issue is for tracking the translation progress of all pages and will be closed when the documentation is finished.
I want to collaborate too!
Being a translator
Being a reviewer
Find the PR's created for translations and review them. Add all notes that you consider.
Note
Words related to methods, function names, variables... mustn't be translated. Here are some examples:
📝 Translation progress
README
Advanced
Demo
Guide
Hosting
Plugins
Resources
Config