-
Notifications
You must be signed in to change notification settings - Fork 142
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 Korean localization for content pages and application strings #270
Add Korean localization for content pages and application strings #270
Conversation
@sogoagain is attempting to deploy a commit to the Satoshi Nakamoto Institute Team on Vercel. A member of the Team first needs to authorize it. |
@sogoagain This is awesome! FYI, I had forgotten to do a few updates after adding Vietnamese content yesterday, so there is a merge conflict. A few updates, and a few deletions. I ought to look into some of the cloud platforms that connect with i18next, so that translations of site strings can be managed better. I do worry that this basic setup will prove itself to be rather fragile. |
95628da
to
9d4250f
Compare
@bitstein Thanks for the heads up! I've rebased the branch and resolved the conflicts. All good now. |
I'm going to need to investigate what is wrong with my i18next setup. I'm not seeing translated strings display anymore. I'll also look into how to connect with a service like Crowdin. |
@bitstein I encountered a similar issue where the translated strings didn't show up when running Hopefully this helps narrow down the problem. |
Thanks, I was able to recreate this. What I've found is on the dev server, |
When I turn off turbo builds on the dev server, it loads the Korean. This is probably why it works in the production server. |
@bitstein I investigated the issue and found that the reason for the triple rendering of However, the real problem is that when using the .use(
resourcesToBackend(
(language: string, namespace: string, callback: ReadCallback) => {
import(`../../locales/${language}/${namespace}.json`)
.then(({ default: resources }) => {
console.log(resources);
callback(null, resources);
})
}
),
) The console output shows that each key is assigned an empty string: {
About: '',
Library: '',
Mempool: '',
Authors: '',
Contact: '',
... Interestingly, if we hardcode the language in .use(
resourcesToBackend(
(language: string, namespace: string, callback: ReadCallback) => {
import(`../../locales/ko/${namespace}.json`)
.then(({ default: resources }) => {
console.log(resources);
callback(null, resources);
})
}
), The {
About: '소개',
Library: '라이브러리',
Mempool: '멤풀',
Authors: '작성자',
Contact: '문의',
... As you mentioned, disabling the Related issue: vercel/next.js#56531 Thank you. |
@sogoagain Thank you for thoroughly documenting this. I basically went through this exact step-by-step debugging today as well. According to the website they do handle dynamic imports, but that wasn't helping me. https://turbo.build/pack/docs/features/imports#dynamic-imports I suspect this might be fixed as Turbopack gets out of beta, given that issue already has related PRs that have been merged. Perhaps we can merge this and just keep an eye on progress on this. The guys working on There are a few things I realized I forgot to add the translations for, so I will do that tomorrow and at your convenience, you could finish up the remaining strings. I really appreciate all of this. |
@bitstein Monitoring Turbopack's progress on this issue sounds like a good idea. I'll be happy to translate any additional strings you add. Thank you for your efforts as well. |
9d4250f
to
b37cef9
Compare
@sogoagain I updated a lot of translation strings on master. I believe I got essentially everything that is translatable. |
b37cef9
to
5b6c86c
Compare
@bitstein I have added translations for the new strings. Thanks. |
@sogoagain Thank you! One question I had looking at a few of the strings. I noticed "Satoshi Nakamoto Institute" is translated to "사토시 나카모토 연구소", which Google translates back to "Satoshi Nakamoto Research Institute". Is that simply an artifact of Korean vocabulary, or is there a more succinct name that more directly translates back to Satoshi Nakamoto Institute? I obviously trust your judgment more than Google, but was just wanting to understand. |
Thank you for your feedback and question. I also spent a lot of time considering how to translate 'Satoshi Nakamoto Institute' into Korean. In Korean, 'Institute' is typically translated as '협회(hyeop-hoe)', '학회(hak-hoe)', or '연구소(yeon-gu-so)'. Among these, '협회(hyeop-hoe)' implies an organization established and maintained by people with a common purpose, rather than for exchanging knowledge. It is used in terms like '환경협회(Environmental Association)' or '보건협회(Health Association)'. Therefore, I deliberated between '학회(hak-hoe)' and '연구소(yeon-gu-so)' and chose '연구소(yeon-gu-so)' for the following reasons:
The Google translation result seems to be simply an issue with translating from Korean to English. This is because '연구소(yeon-gu-so)' can be translated as '(research) institute', '(research) laboratory', or '(informal) lab'. If you think another translation would be better, I'd be happy to give it more thought. Please feel free to share your opinions! Thank you. |
This is a phenomenal explanation, and I agree with your interpretations. SNI have more academic style writings and publications in the future, but its ultimate goal is indeed deep knowledge, widely accessible. One of my selfish reasons for being excited about translations is getting to learn these sorts of linguistic facts. |
This is now live at https://nakamotoinstitute.org/ko |
Wow! Thank you so much. Really appreciate your effort in getting it live! |
OMG! The Korean logo is so cool!!! 🚀 |
Hello,
This pull request adds Korean localization for the following:
.ko.md
files)common.json
file)If you have any feedback or suggestions, please let me know.
Thank you. :)