BookTranslator
BookTranslator

ကုဒ်၊ လင့်ခ်များ သို့မဟုတ် Front Matter များကို မချိုးဖျက်ဘဲ Markdown ဖိုင်များကို ဘယ်လိုဘာသာပြန်မလဲ

Markdown သို့မဟုတ် MDX ဖိုင်တစ်ခုတွင် ဘာကို ဘာသာပြန်ရမည်၊ ဘာကို မထိဘဲထားရမည်၊ ရလဒ်ကို ဘယ်လိုစစ်ဆေးရမည်ဆိုသည်ကို ရှင်းပြထားသည်။ နမူနာဖိုင်၊ အခမဲ့စစ်ဆေးရေးကိရိယာနှင့် ဒေသတွင်း LLM စမ်းသပ်မှု ၉ ကြိမ် ပါဝင်သည်။

Markdown ဖိုင်တစ်ခုကို ဘာသာပြန်ရန် စာသားကို ဘာသာပြန်ပြီး စက်ပိုင်းဆိုင်ရာ အစိတ်အပိုင်းများကို မထိဘဲထားပါ- front matter သော့များ၊ ကုဒ်၊ URL များ၊ လင့်ခ်အညွှန်းများ၊ component တဂ်များနှင့် အောက်ခြေမှတ်စု အညွှန်းများသည် byte တစ်ခုချင်းစီ အတိအကျ ပြန်လာရမည်။ ထို့နောက် ဂရုတစိုက် ဘာသာပြန်သည့်တိုင် ချိုးဖျက်နိုင်သော အချက်သုံးချက်ကို စစ်ဆေးပါ- ခေါင်းစဉ်များသို့ လင့်ခ်များ၊ ကုဒ်မှတ်ချက်များ၊ နှင့် တရုတ်၊ ဂျပန် သို့မဟုတ် ကိုရီးယားဘာသာများတွင် စာလုံးအထူစာသားနှင့် နံပါတ်အပိုင်းအခြားများ ပတ်လည်ရှိ အကွာအဝေး။

ကျွန်ုပ်တို့သည် လိုင်း ၇၃ လိုင်းရှိ MDX စာမျက်နှာတစ်ခုကို ဒေသတွင်း မော်ဒယ်တစ်ခုဖြင့် ရိုးရှင်းသော တရုတ်ဘာသာသို့ ကိုးကြိမ် ဘာသာပြန်ခဲ့ပြီး မတူညီသော prompt သုံးမျိုးကို အသုံးပြုကာ ရလဒ်တိုင်းကို script ဖြင့် စစ်ဆေးခဲ့သည်။ လူများ များသောအားဖြင့် စိုးရိမ်လေ့ရှိသော အစိတ်အပိုင်းများသည် ကိုးကြိမ်စလုံးတွင် ကျန်ရစ်ခဲ့သည်- ကုဒ်၊ inline ကုဒ်၊ URL များ၊ ဇယား၊ JSX component နှင့် လုပ်ငန်းစာရင်း။ အခြားအချက်သုံးချက် မှားယွင်းသွားသည်။ ခေါင်းစဉ်တစ်ခုသို့ လင့်ခ်သည် ကိုးကြိမ်စလုံးတွင် ချိုးဖျက်သွားသည်။ ကုဒ်မှတ်ချက်များကို ဖိုင်တစ်ခုလုံး ပို့ခဲ့သော ခြောက်ကြိမ်စလုံးတွင် ဘာသာပြန်ခံခဲ့ရပြီး ကုဒ်ကို မထိရန် prompt တွင် ပြောထားသော သုံးကြိမ်လည်း ပါဝင်သည်။ ထို့အပြင် syntax ကို placeholder များနောက်တွင် ဖုံးကွယ်ထားသော prompt သည် အလုံခြုံဆုံး ရွေးချယ်မှုဟု ထင်ရသော်လည်း ၎င်း၏ သုံးကြိမ်စလုံးတွင် front matter ကို ချိုးဖျက်ခဲ့သည်။

အမြန်အဖြေ- ဘာကို ဘာသာပြန်မည်၊ ဘာကို မထိဘဲထားမည်

ဖိုင်၏ အစိတ်အပိုင်းကျွန်ုပ်တို့၏ နမူနာမှ ဥပမာဘာသာပြန်မလား။
Front matter သော့များslug:, sidebar_position:, tags:မဟုတ်
Front matter တန်ဖိုးများtitle: "Export Your Library"title နှင့် description ကဲ့သို့ စာဖတ်သူနှင့် သက်ဆိုင်သော ခေါင်းစဉ်များသာ
Imports နှင့် exports (MDX)import Callout from '@site/src/components/Callout';မဟုတ်
ကုဒ်ဘလောက်များshelfmark export --format epubမဟုတ်။ မှတ်ချက်များနှင့် အသုံးပြုသူနှင့် သက်ဆိုင်သော စာသားများကို သီးခြား ဆုံးဖြတ်ပါ။
Inline ကုဒ်library.json, --coversမဟုတ်
လင့်ခ်နှင့် ပုံပစ်မှတ်များ(./export-options.md), (https://www.w3.org/TR/epub-33/ "EPUB 3.3")မဟုတ်၊ ကိုးကားချက်အတွင်း ရွေးချယ်နိုင်သော ခေါင်းစဉ်မှလွဲ၍
လင့်ခ်စာသားနှင့် ပုံ alt စာသား[glossary section], ![Folder layout after an export]ဟုတ်
ရည်ညွှန်း အညွှန်းများနှင့် အဓိပ္ပာယ်ဖွင့်ဆိုချက်များ[project glossary][glossary], [glossary]: ./glossary.md#terms[glossary] အညွှန်းနှင့် URL ကို ထားရှိပါ။ မြင်နိုင်သော စာသားကို ဘာသာပြန်ပါ
ခေါင်းစဉ်များ## Keep one glossary for the whole bookဟုတ်ကဲ့၊ သို့သော် ဦးစွာ ၎င်းတို့အတွက် ပုံသေ ID များ ပေးပါ (အောက်တွင်ကြည့်ပါ)
JSX အစိတ်အပိုင်းများ<Callout type="warning" title="Back up first">tag နှင့် attribute အမည်များကို ထားရှိပါ။ title ကဲ့သို့သော စာဖတ်သူမျက်နှာမူ attribute တန်ဖိုးများကို ဘာသာပြန်ပါ
သတိပေးချက် အမှတ်အသားများ:::tip နှင့် :::မလုပ်ပါ
အောက်ခြေမှတ်စု အညွှန်းများ[^sync]မလုပ်ပါ
MDX မှတ်ချက်များ{/* Translator note: ... */}ရွေးချယ်နိုင်သည်။ စာဖတ်သူများ ၎င်းတို့ကို ဘယ်တော့မှ မမြင်ရပါ။

ကျန်ရှိသည်များအားလုံးသည် သာမန်စာသားများဖြစ်သည်- စာပိုဒ်များ၊ စာရင်းအချက်များ၊ ဇယားကွက်များနှင့် ကိုးကားစာပိုဒ်များ။

ကျွန်ုပ်တို့ စမ်းသပ်ခဲ့သည်များ

ကျွန်ုပ်တို့သည် Shelfmark ဟုခေါ်သော စိတ်ကူးယဉ် စာဖတ်အက်ပ်အတွက် စာတမ်းစာမျက်နှာတစ်ခုဖြစ်သည့် sample-source.mdx ကို ရေးသားခဲ့သည်။ ၎င်းကို Docusaurus နှင့် အလားတူ စာတမ်းဆိုက်များတွင် အသုံးပြုသော MDX ပုံစံဖြင့် ရေးသားထားပြီး အထက်ပါဇယားရှိ တည်ဆောက်ပုံတစ်ခုစီအတွက် ဥပမာတစ်ခုစီ၊ အပေါင်းလက္ခဏာ အကွက်နှစ်ကွက်ဖြင့် ခိုင်မာသော လိုင်းခွဲမှု၊ အထူပြု လင့်ခ်တစ်ခု၊ ကွင်းစကွင်းပိတ်ဖြင့် အဆုံးသတ်သော အထူပြုစကားစုတစ်ခု၊ en dash များဖြင့် ရေးသားထားသော နံပါတ်အကွာအဝေး နှစ်ခု၊ နှင့် "Keep one glossary for the whole book." ခေါင်းစဉ်သို့ စာမျက်နှာအတွင်း လင့်ခ်တစ်ခု ပါဝင်သည်။

ထို့နောက် ကျွန်ုပ်တို့သည် ဒေသတွင်း မော်ဒယ်တစ်ခုကို ရိုးရှင်းသော တရုတ်ဘာသာသို့ နည်းလမ်းသုံးမျိုးဖြင့် ဘာသာပြန်ရန် တောင်းဆိုခဲ့သည်-

  1. ဖိုင်တစ်ခုလုံး။ ဖိုင်တစ်ခုလုံးကို ကူးထည့်ပြီး ဘာသာပြန်ထားသော ဖိုင်ကို ပြန်တောင်းပါ။
  2. ညွှန်ကြားချက်ဖြင့်။ အလားတူပင်၊ စည်းမျဉ်းခြောက်ခု ထပ်တိုးပါ- front matter သော့များကို ထားရှိပါ၊ ကုဒ်အတွင်း ဘာမှ မပြောင်းပါနှင့်၊ URL များနှင့် ရည်ညွှန်းအဓိပ္ပာယ်ဖွင့်ဆိုချက်များကို ထားရှိပါ၊ import များ၊ tag များနှင့် မှတ်ချက်များကို ထားရှိပါ၊ အောက်ခြေမှတ်စု အညွှန်းများနှင့် သတိပေးချက် အမှတ်အသားများကို ထားရှိပါ၊ ခေါင်းစဉ်များ၊ လင့်ခ်စာသား၊ alt စာသားနှင့် title attribute ကို ဘာသာပြန်ပါ။
  3. ကာကွယ်ထားသော။ ကုဒ်၊ inline ကုဒ်၊ URL များ၊ tag များ၊ မှတ်ချက်များ၊ အောက်ခြေမှတ်စု အညွှန်းများ၊ သတိပေးချက် အမှတ်အသားများနှင့် front matter လိုင်းများကို ⟦12⟧ ကဲ့သို့သော နံပါတ်တပ်ထားသော placeholder များဖြင့် အစားထိုးပါ၊ ကျန်ရှိသည်များကို ဘာသာပြန်ပါ၊ ထို့နောက် မူရင်းများကို ပြန်ထည့်ပါ။ title နှင့် description တန်ဖိုးများကို ဘာသာပြန်ရန် ဖော်ထုတ်ထားခဲ့ပြီး ထွက်ပေါ်လာသည့်အတိုင်း front matter ၏ --- လိုင်းများနှင့် အပိတ် ကိုးကားအမှတ်အသားများလည်း ဖော်ထုတ်ထားခံခဲ့ရသည်။

မော်ဒယ်မှာ LM Studio တွင် Qwen 3.6 27B (Q4_K_M) ဖြစ်ပြီး တွေးခေါ်မှုကို ပိတ်ထားကာ အပူချိန် 0.3၊ Apple M4 Max တွင် မမ်မိုရီ 64 GB ဖြင့် လည်ပတ်ခဲ့သည်။ ကျွန်ုပ်တို့သည် အခြေအနေတစ်ခုစီကို သုံးကြိမ်၊ စုစုပေါင်း ကိုးကြိမ် လည်ပတ်ခဲ့ပြီး 2026 ခုနှစ် အောက်တိုဘာလ 25 ရက်နေ့တွင် ဖြစ်သည်။ ဇာတ်ညွှန်းမှာ run_llm_markdown_test.py ဖြစ်ပြီး ထွက်ရှိမှု ကိုးခုစလုံးကို တည်းဖြတ်ခြင်းမရှိဘဲ ထုတ်ဝေထားသည်။ README တွင် ဖိုင်တိုင်းကို စာရင်းပြုစုထားသည်။ ဒေသတွင်း မော်ဒယ်ကို တစ်ခါမျှ မတပ်ဆင်ဖူးပါက ကျွန်ုပ်တို့၏ ဒေသတွင်း LLM ဘာသာပြန်လမ်းညွှန် တွင် ဆက်တင်များကို ဖော်ပြထားသည်။

ဤသည်မှာ မော်ဒယ်တစ်ခု၊ ဘာသာစကားအတွဲတစ်ခုနှင့် စာမျက်နှာတစ်ခုအတွက် သေးငယ်သော စမ်းသပ်မှုတစ်ခု ဖြစ်သည်။ မည်သည့်ပြဿနာများ ဖြစ်ပေါ်သည်နှင့် ၎င်းတို့ကို မည်သို့ ဖမ်းဆီးနိုင်သည်ကို ပြသသည်။ မော်ဒယ်များ သို့မဟုတ် prompt များကို အဆင့်သတ်မှတ်ခြင်း မဟုတ်ပါ။

ရလဒ်- Syntax သည် ကျန်ရစ်ခဲ့သည်၊ လင့်ခ်များနှင့် ဆုံးဖြတ်ချက်များ မကျန်ရစ်ခဲ့ပါ

ကျွန်ုပ်တို့သည် ထွက်ရှိမှုတိုင်းကို check_markdown_translation.py ဖြင့် စစ်ဆေးပြီး တစ်ခုစီကို remark နှင့် MDX compiler ဖြင့် ပြန်ဆိုခဲ့သည်။ စစ်ဆေးသူ၏ ထွက်ရှိမှု အပြည့်အစုံမှာ check-results.txt တွင် ရှိပြီး results.csv တွင် လည်ပတ်မှုတစ်ခုလျှင် အတန်းတစ်တန်း ပါဝင်သည်။

စစ်ဆေးမှုဖိုင်တစ်ခုလုံးညွှန်ကြားထားသည်ကာကွယ်ထားသည်
MDX အဖြစ် ကွန်ပိုင်းလ်လုပ်သည်၃ ခုအနက် ၃ ခု၃ ခုအနက် ၃ ခု၃ ခုအနက် ၃ ခု
ကုဒ်၊ အင်လိုင်းကုဒ်၊ URL များ၊ ဇယား၊ တဂ်များ၊ လုပ်ဆောင်ရန်စာရင်း မပြောင်းလဲပါ၃ ခုအနက် ၃ ခု၃ ခုအနက် ၃ ခု၃ ခုအနက် ၃ ခု
အထူနှင့် အစောင်းများ ဆက်လက်ပြသသည်၃ ခုအနက် ၃ ခု၃ ခုအနက် ၃ ခု၃ ခုအနက် ၃ ခု
ရှေ့ပိုင်းအချက်အလက် မပျက်မစီး၃ ခုအနက် ၃ ခု၃ ခုအနက် ၃ ခု၃ ခုအနက် ၀ ခု
စာမျက်နှာအတွင်း လင့်ခ်သည် ၎င်း၏ ခေါင်းစဉ်ကို ဦးတည်နေဆဲ၃ ခုအနက် ၀ ခု၃ ခုအနက် ၀ ခု၃ ခုအနက် ၀ ခု
ကုဒ်မှတ်ချက်များ ရေးထားသည့်အတိုင်း ကျန်ရှိ၃ ခုအနက် ၀ ခု0 of 33 of 3
Callout title ဘာသာပြန်ပြီးပါပြီ3 of 33 of 30 of 3

ပထမဆုံးအတန်းများသည် သတင်းကောင်းဖြစ်သည်။ ဖိုင်တစ်ခုလုံးကို ကူးထည့်သောအခါ ဤမော်ဒယ်သည် Markdown syntax ကို မပျက်မစီး ပြန်ပေးခဲ့သည်။ ကုဒ်၊ URL သို့မဟုတ် ဇယားများတွင် ပြင်ဆင်ရန် ဘာမှ မတွေ့ရပါ။ နောက်ဆုံးအတန်းလေးခုသည် အလုပ်ရှိသည့်နေရာဖြစ်ပြီး ၎င်းတို့အနက်မှ တစ်ခုမျှ ဆိုက်တည်ဆောက်သောအခါ အမှားအဖြစ် မပေါ်ပါ။

1. ဘာသာပြန်ထားသော ခေါင်းစီးများသည် ၎င်းတို့သို့ လင့်များကို ချိုးဖျက်သည်

နမူနာတွင် ၎င်း၏ ဝေါဟာရစာရင်းအပိုင်းသို့ [glossary section](#keep-one-glossary-for-the-whole-book) ဖြင့် လင့်ထားသည်။ မောင်းနှင်မှုတိုင်းသည် ခေါင်းစီးကို ဘာသာပြန်ခဲ့ပြီး ၎င်းသည် မှန်ကန်သည်၊ မောင်းနှင်မှုတိုင်းသည် လင့်ပစ်မှတ်ကို ထိန်းသိမ်းထားပြီး ၎င်းသည်လည်း မှန်ကန်သည်။ ရလဒ်မှာ မရှိတော့သော ID တစ်ခုသို့ လင့်တစ်ခု ဖြစ်သည်။

Markdown ကိရိယာအများစုသည် ခေါင်းစီးစာသားမှ ခေါင်းစီး ID များကို တည်ဆောက်သည်။ Pandoc ၏ စာရွက်စာတမ်း တွင် အမှတ်အသားကို "ခေါင်းစီးစာသားအပေါ် အခြေခံသည်" ဟု ဖော်ပြထားပြီး Docusaurus က သတိပေးထားသည် မှာ ခေါင်းစီးတစ်ခုကို "လင့်များ မချိုးဖျက်ရန် လက်ရှိ ID ကို မမွမ်းမံဘဲ" ပြောင်းလဲရန် သို့မဟုတ် ဘာသာပြန်ရန် လိုအပ်နိုင်သည်ဟု ဆိုထားသည်။ ခေါင်းစီးသည် 为整本书保留一个术语表 ဟု ဖတ်ရသည်နှင့် ၎င်း၏ ထုတ်ပေးထားသော ID သည် တရုတ်ဖြစ်သွားပြီး #keep-one-glossary-for-the-whole-book သည် မည်သည့်နေရာသို့မျှ မရွေ့ပါ။ စာမျက်နှာသည် တည်ဆောက်နိုင်ဆဲဖြစ်သောကြောင့် မည်သည့်အရာကမျှ သင့်အား မပြောပါ။

ဘာသာပြန်ပြီးနောက် လင့်ကို တည်းဖြတ်ခြင်းဖြင့်လည်း ဤပြဿနာကို မဖြေရှင်းနိုင်ပါ။ ကိုးကြိမ်တွင် မော်ဒယ်သည် တူညီသော ခေါင်းစီးကို နည်းလမ်းလေးမျိုးဖြင့် ရေးခဲ့သည်၊ ထို့ကြောင့် ထုတ်ပေးထားသော ID သည် ဘာသာပြန်တိုင်းတွင် ထပ်မံပြောင်းလဲမည်ဖြစ်သည်။ ပြုပြင်မှုသည် ဘာသာပြန်ခြင်းမတိုင်မီတွင် ရှိသင့်သည်- လင့်ထားသော ခေါင်းစီးတစ်ခုစီကို ပုံသေ ID တစ်ခု ပေးပါ။

  • Docusaurus MDX တွင် ## Keep one glossary for the whole book {/* #keep-one-glossary */} ကို အသုံးပြုပါ။ Docusaurus က ရှေးဟောင်း {#id} ပုံစံသည် "MDX syntax အဖြစ် မမှန်ကန်တော့ပါ" ဟု မှတ်ချက်ပြုထားပြီး ၎င်း၏ write-heading-ids command သည် စာရွက်စာတမ်းတိုင်းအတွက် ID များကို သင့်အတွက် ထည့်ပေးသည်။
  • Pandoc နှင့် PHP Markdown Extra ကို လိုက်နာသော Markdown ပရိုဆက်ဆာများတွင် ခေါင်းစီး၏ အဆုံးတွင် {#keep-one-glossary} ကို အသုံးပြုပါ။

ထိုအခါ ID သည် ဘာသာစကားတိုင်းတွင် အတူတူဖြစ်နေပြီး စစ်ဆေးသူက ၎င်းကို လင့်ပစ်မှတ်အဖြစ် သတ်မှတ်သည်။

2. ကုဒ်မှတ်ချက်များကို ဘာသာပြန်ပြီး မြင်နိုင်သော စာသားကို မပြန်ပါ

နမူနာတွင် shell မှတ်ချက်တစ်ခုနှင့် YAML မှတ်ချက်တစ်ခု ရှိသည်-

library:
  name: "My books"   # shown in the sidebar
  sort: title

ဖိုင်တစ်ခုလုံးကို ပို့ခဲ့သော မောင်းနှင်မှုခြောက်ခုစလုံးသည် မှတ်ချက်နှစ်ခုစလုံးကို ဘာသာပြန်ခဲ့ပြီး၊ prompt တွင် "fenced code blocks အတွင်းရှိ မည်သည့်အရာကိုမျှ မပြောင်းလဲပါနှင့်" ဟု ဆိုထားသော သုံးခုလည်း ပါဝင်သည်။ ကုဒ်ကိုယ်တိုင်ကို မောင်းနှင်မှုကိုးခုစလုံးတွင် မထိခိုက်ခဲ့ပါ။ တစ်ချိန်တည်းတွင် မှတ်ချက်က ဘေးဘားတွင် ပြသသည်ဟု ဆိုထားသော "My books" သည် မောင်းနှင်မှုကိုးခုစလုံးတွင် အင်္ဂလိပ်လို ကျန်ရှိနေခဲ့သည်။ မော်ဒယ်သည် ဒေသခံပြုထားသော စာမျက်နှာတစ်ခု လိုအပ်သည့်အရာ၏ ဆန့်ကျင်ဘက်ကို လုပ်ဆောင်ခဲ့သည်- ဖန်တီးသူများအတွက် မှတ်စုကို ဘာသာပြန်ပြီး စာဖတ်သူများ မြင်မည့် အညွှန်းကို ချန်ထားခဲ့သည်။

ရွေးချယ်မှုနှစ်ခုစလုံးသည် ကိစ္စတိုင်းတွင် မှားယွင်းသည်မဟုတ်ပါ။ စာဖတ်သူများက ကုဒ်ကို ၎င်းတို့၏ ကိုယ်ပိုင်ပရောဂျက်သို့ ကူးယူမည့် သင်ခန်းစာတစ်ခုအတွက် ဘာသာပြန်ထားသော မှတ်ချက်များက ကူညီသည်။ ကုဒ်သည် repository တစ်ခုနှင့် ကိုက်ညီရမည့် ရည်ညွှန်းစာရွက်စာတမ်းအတွက် ၎င်းတို့သည် စာမျက်နှာကို ရင်းမြစ်နှင့် မကိုက်ညီအောင် ပြုလုပ်သည်။ ပရောဂျက်အတွက် ဆုံးဖြတ်ချက်ကို တစ်ကြိမ်တည်း ချပါ၊ ပြီးနောက် ဖွဲ့စည်းမှုနမူနာများရှိ စာသားတန်ဖိုးများကို ကိုယ်တိုင်ကြည့်ပါ၊ အဘယ်ကြောင့်ဆိုသော် မည်သည့်ကိရိယာကမျှ ပြသမှုအညွှန်းနှင့် အမှတ်အသားကို ခွဲခြားနိုင်မည်မဟုတ်ပါ။ ဤအကြောင်းကြောင့် စစ်ဆေးသူက မှတ်ချက်သက်သက်ပြောင်းလဲမှုများကို သတိပေးချက်များအဖြစ် အစီရင်ခံသည်။

3. ဘေးကင်းဟန်တူသော နည်းလမ်းက front matter ကို ချိုးဖျက်ခဲ့သည်

ကာကွယ်ထားသော အခြေအနေက ၎င်းကတိပြုထားသည့်အတိုင်း လုပ်ဆောင်ခဲ့သည်- placeholder ၃၂ ခုစလုံး မောင်းနှင်မှုသုံးခုစလုံးတွင် ပြန်လာခဲ့သည်၊ ထို့ကြောင့် ကုဒ်၊ URL နှင့် tag များကို ပြီးပြည့်စုံစွာ ပြန်လည်ရယူနိုင်ခဲ့သည်။ သို့သော် ကျွန်ုပ်တို့၏ script သည် placeholder များအပြင်ဘက်တွင် အသေးအဖွဲနှစ်ခုကို ချန်ထားခဲ့သည်- front matter ကို ဖွင့်ပေးသော --- လိုင်းနှင့် ဘာသာပြန်ထားသော ခေါင်းစဉ်နှင့် ဖော်ပြချက်နောက်ရှိ ပိတ်ကိုးကားအမှတ်အသား။ မော်ဒယ်သည် မောင်းနှင်မှုသုံးခုစလုံးတွင် ၎င်းတို့အားလုံးကို ချန်လှပ်ခဲ့သည်။ ဖိုင်သည် ဤသို့ စတင်ခဲ့သည်-

title: "导出您的书库
description: "在更换设备之前,请备份您的笔记和书籍。
slug: export-library

ဖွင့်ပေးသော --- မပါဘဲ Markdown parser သည် front matter ကို မမြင်တော့ပါ။ ၎င်းသည် YAML လိုင်းခြောက်လိုင်းနှင့် ပိတ်သော --- ကို ခေါင်းစီးတစ်ခုအဖြစ် ဖတ်သည်၊ ထို့ကြောင့် စာမျက်နှာသည် YAML ပါဝင်သော ကြီးမားသော ခေါင်းစီးတစ်ခုဖြင့် ဖွင့်မည်ဖြစ်သည်။ ၎င်းသည် MDX အဖြစ် ကွန်ပိုင်းလ်ဖြစ်ဆဲပါသည်။ --- ကို ပြန်ထည့်ရုံဖြင့်လည်း မလုံလောက်ပါ- YAML parser သည် မပိတ်ထားသော ကိုးကားအမှတ်အသားနှစ်ခုကို ပယ်ချသည်။

သင်ခန်းစာမှာ placeholder များကို ရှောင်ကြဉ်ရန်မဟုတ်ပါ။ သင်ဖော်ထုတ်ထားသည့် မည်သည့်အရာမဆို ပြောင်းလဲပြီး ပြန်လာနိုင်ပြီး front matter ကို စာမျက်နှာ၏ တစ်စိတ်တစ်ပိုင်းအဖြစ် မော်ဒယ်ထံ လုံးဝ မပို့သင့်ပါ။ ၎င်းကို parse လုပ်ပါ၊ စာဖတ်သူနှင့် သက်ဆိုင်သော တန်ဖိုးများ (title၊ description) ကိုသာ သီးခြားစာသားများအဖြစ် ပို့ပါ၊ ဘာသာပြန်ချက်များကို မူရင်းဖွဲ့စည်းမှုထဲသို့ ပြန်ရေးပါ။ ၎င်းသည် ကုဒ်လိုင်းအနည်းငယ်သာဖြစ်ပြီး ပြဿနာအမျိုးအစားတစ်ခုလုံးကို ဖယ်ရှားပေးသည်။

တရုတ်၊ ဂျပန်နှင့် ကိုရီးယားဘာသာများတွင် စာလုံးအထူနှင့် အပိုင်းအခြားများ

နောက်ထပ်ပြဿနာနှစ်ခုသည် ကျွန်ုပ်တို့၏ မောင်းနှင်မှုကိုးခုတွင် လုံးဝမပေါ်ခဲ့ပါ၊ သို့သော် ၎င်းတို့သည် စာမျက်နှာများကို တိတ်တဆိတ် ချိုးဖျက်သောကြောင့် စစ်ဆေးသင့်ပြီး နှစ်ခုစလုံးသည် BookTranslator ၏ ကိုယ်ပိုင်ဘလော့ဂ်ကို ထိခိုက်ခဲ့သည်။ ဘလော့ဂ်ကို MDX ဖြင့် ရေးသားပြီး ဘာသာစကား ၂၇ မျိုးသို့ စက်ဖြင့် ဘာသာပြန်ထားသည်၊ သတ်မှတ်ထားသော ဘာသာပြန်မောင်းနှင်မှုတစ်ခုတွင် ကိုရီးယားဆောင်းပါးနှစ်ခုသည် ကျွန်ုပ်တို့၏ ဖွဲ့စည်းမှုစစ်ဆေးမှုကို ဆက်တိုက် သုံးကြိမ် မအောင်မြင်ခဲ့ပါ။ အကြောင်းရင်းများမှာ အောက်ပါပုံစံနှစ်ခုဖြစ်သည်။

ပုဒ်ဖြတ်ခြင်းဖြင့် အဆုံးသတ်သော စာလုံးအထူ။ CommonMark သည် ** သည် စာလုံးအထူကို ဖွင့်နိုင်သည် သို့မဟုတ် ပိတ်နိုင်သည်ကို ၎င်း၏ တစ်ဖက်တစ်ချက်ရှိ စာလုံးများကို ကြည့်ခြင်းဖြင့် ဆုံးဖြတ်သည်။ ပုဒ်ဖြတ်ခြင်းပြီးနောက် ချက်ချင်းလာသော ပိတ်သည့် ** သည် နောက်တွင် ကွက်လပ်၊ ပုဒ်ဖြတ်ခြင်း သို့မဟုတ် လိုင်း၏အဆုံးရှိရမည်။ ဤသည်မှာ right-flanking rule ဖြစ်သည်။ အင်္ဂလိပ်တွင် ထိုနေရာ၌ အမြဲတမ်း ကွက်လပ်ရှိသည်။ တရုတ်၊ ဂျပန် နှင့် ကိုရီးယားတို့တွင် မကြာခဏ မရှိပါ။ ထို့ကြောင့် 打开**设置 → 导出(测试版)**并选择 သည် စာလုံးအထူသည် အပြည့်အစုံ ကွင်းစကွင်းပိတ်ဖြင့် အဆုံးသတ်ပြီး 并 နှင့် တိုက်ရိုက်ကပ်လျက် ရှိသောကြောင့် ကြယ်ပွင့်သင်္ကေတများကို ပြသသည်။ ကွင်းစကွင်းပိတ်မပါသော အလားတူလိုင်းသည် စာလုံးအထူအဖြစ် ပြသပြီး ** နောက်တွင် ကွက်လပ်ထည့်ထားသော လိုင်းသည်လည်း ထို့အတူပင်။ စာလုံးအထူလင့်ခ်တွင်လည်း အလားတူပြဿနာရှိသည်။ အဘယ်ကြောင့်ဆိုသော် လင့်ခ်သည် ) ဖြင့် အဆုံးသတ်သောကြောင့်ဖြစ်သည်။ 点击**[导出](./export-options.md)**打开 သည် မအောင်မြင်ပါ၊ ကိုရီးယား **[API](./api.md)**는 သည်လည်း မအောင်မြင်ပါ။

ကျွန်ုပ်တို့၏ မော်ဒယ်သည် စာလုံးအထူစကားစုတိုင်း၏ တစ်ဖက်တစ်ချက်တွင် ကွက်လပ်ထည့်ထားသဖြင့် ၎င်း၏ ရလဒ်သည် မှန်ကန်စွာ ပြသခဲ့သည်။ နောက်ပိုင်းတွင် တရုတ်စာစီစာရိုက် သဘောတူညီချက်များကို လိုက်နာရန် ထိုကွက်လပ်များကို ဖယ်ရှားသော အယ်ဒီတာတစ်ဦးသည် ချို့ယွင်းချက်ကို ပြန်လည်ဖြစ်ပေါ်စေသည်။ သင်သည် မျိုးကွဲခုနစ်မျိုးလုံးကို render-cases.md တွင် စမ်းကြည့်နိုင်သည်။

တီလ်ဒီဖြင့် နံပါတ်အပိုင်းအခြားများ။ တရုတ်နှင့် ဂျပန်စာသားများတွင် အပိုင်းအခြားများကို 3~5 ဟု မကြာခဏ ရေးသားကြသည်။ remark ပေါ်တွင် တည်ဆောက်ထားသော GitHub Flavored Markdown ဆိုက်များသည် မူရင်းအားဖြင့် တီလ်ဒီတစ်ခုတည်းကို ဖျက်လိုင်းအဖြစ် ပြောင်းလဲသည်။ remark-gfm ရွေးချယ်မှု singleTilde သည် သင်ပြောင်းလဲခြင်းမရှိပါက true ဖြစ်သည်။ 需要 3~5 分钟,生成 10~20 MB 的文件夹 ကဲ့သို့သော စာပိုဒ်တစ်ခုတွင် အပိုင်းအခြားနှစ်ခုရှိပါက ၎င်းတို့ကြားရှိ စာသားသည် ဖျက်လိုင်းဖြင့် ပြသမည်။ ကျွန်ုပ်တို့၏ နမူနာတွင် en dash များကို အသုံးပြုခဲ့ပြီး ရှစ်ကြိမ်မြောက်အထိ ၎င်းတို့ကို ထိန်းသိမ်းထားကာ ကိုးကြိမ်မြောက်တွင် 3 到 5 ဟု ရေးသားခဲ့သည်။ အပိုင်းအခြားများအတွက် en dash များ သို့မဟုတ် စကားလုံးများကို တောင်းဆိုပါ၊ သို့မဟုတ် သင့် remark ဖွဲ့စည်းမှုတွင် singleTilde: false ကို သတ်မှတ်ပါ။

ဖွဲ့စည်းပုံစစ်ဆေးသူသည် ပုံစံနှစ်မျိုးလုံးကို အလံပြသည်။ အမှန်တကယ် မည်သို့ပြသသည်ကို အတည်ပြုရန် render_check.mjs သည် မူရင်းနှင့် ဘာသာပြန်ချက်တွင် စာလုံးအထူ၊ စာလုံးစောင်း၊ ဖျက်လိုင်းနှင့် ကျန်ရှိသော ကြယ်ပွင့်သင်္ကေတများကို ရေတွက်ပြီး MDX ကွန်ပိုင်းတစ်ခုကို စမ်းကြည့်သည်။

npm install @mdx-js/mdx@3 unified@11 remark-parse@11 remark-gfm@4
node render_check.mjs source.mdx translated.mdx

ဘာသာပြန်ချက်တွင် စာလုံးအထူ node များ နည်းခြင်း သို့မဟုတ် ကြယ်ပွင့်သင်္ကေတ အက္ခရာများ ပိုများခြင်းသည် အချို့သော အလေးပေးမှုများ ပိတ်ခြင်းရပ်တန့်သွားသည်ကို ဆိုလိုသည်။

ခံနိုင်ရည်ရှိသော လုပ်ငန်းစဉ်

  1. ခေါင်းစဉ် ID များကို ဦးစွာပြင်ဆင်ပါ။ တစ်စုံတစ်ခုက လင့်ခ်ချိတ်ထားသော ခေါင်းစဉ်တိုင်းအတွက် သင့်ဆိုက်ဖန်တီးသူက ပံ့ပိုးပေးသော syntax တွင် တိကျသော ID များကို ထည့်ပါ။ မူရင်းဘာသာစကားတွင် တစ်ကြိမ်တည်း လုပ်ပြီး ဘာသာပြန်ခြင်းမပြုမီ commit လုပ်ပါ။

  2. front matter ကို စာမျက်နှာမှ ဖယ်ရှားပါ။ title နှင့် description ကဲ့သို့သော စာဖတ်သူနှင့် သက်ဆိုင်သော တန်ဖိုးများကိုသာ သီးခြား string များအဖြစ် ဘာသာပြန်ပြီး မူရင်း YAML ထဲသို့ ပြန်ရေးပါ။

  3. ကုဒ်မူဝါဒကို ဆုံးဖြတ်ပါ။ မှတ်ချက်များ ဘာသာပြန်မည် သို့မဟုတ် မပြန်မည်၊ ဖွဲ့စည်းမှုနမူနာများရှိ ပြသသည့် string များ ဘာသာပြန်မည် သို့မဟုတ် မပြန်မည်။ ကျွန်ုပ်တို့၏ နမူနာရှိ Shelfmark ကဲ့သို့ ပြောင်းလဲခြင်းမပြုရသော ထုတ်ကုန်အမည်များဘေးတွင် သင့် ဘာသာပြန်ဝေါဟာရစာရင်း ၌ မှတ်တမ်းတင်ပါ။

  4. စာကိုယ်ကို ဘာသာပြန်ပါ။ Markdown ကို ခွဲခြမ်းစိတ်ဖြာသော ကိရိယာကို အသုံးပြုပါ၊ သို့မဟုတ် တိကျသော စည်းမျဉ်းများဖြင့် စာမျက်နှာတစ်ခုလုံးကို ပို့ပါ။ ကျွန်ုပ်တို့၏ စမ်းသပ်မှုတွင် စာမျက်နှာတစ်ခုလုံးကို ပို့ခြင်းသည် syntax ကို ထိန်းသိမ်းထားနိုင်ခဲ့သည်။ သင်သည် placeholder များကို အသုံးပြုပါက ပြည့်စုံသော တည်ဆောက်မှုများကို ကာကွယ်ပြီး မည်သည့်အရာကိုမျှ တစ်ဝက်တစ်ပျက် မထုတ်ဖော်ပါနှင့်။

  5. ဖွဲ့စည်းပုံစစ်ဆေးမှုကို လုပ်ဆောင်ပါ။

    python3 check_markdown_translation.py source.mdx translated.mdx --keep Shelfmark
    

    ၎င်းသည် front matter သော့များနှင့် တန်ဖိုးများ၊ import များ၊ ကုဒ်ဘလောက်များ၊ inline ကုဒ်၊ လင့်ခ်ပစ်မှတ်များ၊ ရည်ညွှန်းအဓိပ္ပာယ်ဖွင့်ဆိုချက်များ၊ ခေါင်းစဉ်အဆင့်များ၊ စာမျက်နှာအတွင်း လင့်ခ်ပစ်မှတ်များ၊ JSX တဂ်များနှင့် attribute များ၊ MDX မှတ်ချက်များ၊ admonition အမှတ်အသားများ၊ footnote အညွှန်းများ၊ ဇယားပုံသဏ္ဌာန်၊ task list အကွက်များ၊ ခက်ခဲသော လိုင်းချိုးခြင်းများ၊ မပိတ်နိုင်သော အလေးပေးမှုများ၊ တီလ်ဒီအပိုင်းအခြားများနှင့် သင်ထိန်းသိမ်းရန် တောင်းဆိုသော ဝေါဟာရများကို နှိုင်းယှဉ်သည်။ ၎င်းသည် ဘာသာပြန်အရည်အသွေးကို အကဲဖြတ်ခြင်းမဟုတ်ပါ။

  6. CJK ပစ်မှတ်များအတွက် ပြသမှုကို စစ်ဆေးပါ render_check.mjs ဖြင့်၊ ပုဒ်ဖြတ်ခြင်းနောက်လိုက်သော ပိတ်သည့် ** တိုင်းနောက်တွင် ကွက်လပ်တစ်ခု ထည့်ပါ။

  7. ဆိုက်ကို တည်ဆောက်ပြီး လင့်ခ်များကို နှိပ်ပါ။ ဘာသာစကားတစ်ခုစီရှိ စာမျက်နှာကို ဖွင့်ပြီး စာမျက်နှာအတွင်း လင့်ခ်တိုင်းကို နှိပ်ကာ ဖွဲ့စည်းမှုနမူနာများကို ဖတ်ပါ။ အောင်မြင်သော တည်ဆောက်မှုသည် ဖိုင်ကွန်ပိုင်းဖြစ်ကြောင်း သက်သေပြရုံသာဖြစ်သည်။

တိကျမှုအရေးကြီးသော စာရွက်စာတမ်းများအတွက် ကျွန်ုပ်တို့၏ နည်းပညာဘာသာပြန်လုပ်ငန်းစဉ် ရှိ ဝေါဟာရနှင့် ပြန်လည်သုံးသပ်ခြင်း အဆင့်များသည် ဤအရာပေါ်တွင် ထပ်ဆောင်းအကျုံးဝင်သည်။

BookTranslator နေရာချထားမှု

BookTranslator ၏ TXT ဘာသာပြန်ကိရိယာ သည် .txt၊ .md နှင့် .mdx ဖိုင်များကို လက်ခံသည်။ ထုတ်ကုန်စာမျက်နှာအရ ၎င်းသည် စာပိုဒ်များ၊ လိုင်းချိုးခြင်းများ၊ အထူးစာလုံးများနှင့် စာသားဖွဲ့စည်းပုံကို ထိန်းသိမ်းထားစဉ် ဘာသာပြန်ပြီး ကြီးမားသောဖိုင်များကို အကြောင်းအရာသိရှိသော ဘာသာပြန်မှုအတွက် အပိုင်းများအဖြစ် ခွဲခြမ်းသည်။ ထို့ကြောင့် သင်သည် Markdown ဖြင့်ရေးထားသော လက်စွဲစာအုပ်တစ်ခုလုံး သို့မဟုတ် စာအုပ်တစ်အုပ်ကို အပိုင်းပိုင်းကူးထည့်မည့်အစား တင်နိုင်သည်။

ထုတ်ကုန်စာမျက်နှာတွင် front matter၊ ကုဒ်ဘလောက်များ သို့မဟုတ် MDX အစိတ်အပိုင်းများအတွက် အထူးကိုင်တွယ်မှုကို ဖော်ပြမထားပါ၊ ကျွန်ုပ်တို့သည် ဤဆောင်းပါးအတွက် ဤနမူနာကို BookTranslator မှတစ်ဆင့် မလုပ်ဆောင်ခဲ့ပါ။ သင်အသုံးပြုသည့် ကိရိယာမည်သို့ပင်ဖြစ်ပါစေ ဘာသာပြန်ခြင်းမပြုမီ အဆင့် 1 မှ 3 အထိနှင့် ပြီးနောက် အဆင့် 5 မှ 7 အထိ လုပ်ဆောင်ပါ။ ပုံသေ ID မပါသော ခေါင်းစဉ်သည် ၎င်း၏လင့်ခ်များကို ဆုံးရှုံးနေဆဲဖြစ်ပြီး တီလ်ဒီဖြင့် ရေးထားသော အပိုင်းအခြားသည် ဖျက်လိုင်းအဖြစ် ပြောင်းလဲနေဆဲဖြစ်သည်။ သင်သည် ဘာသာစကားများစွာဖြင့် စာအုပ်တစ်အုပ်ကို ထုတ်ဝေနေပါက ကျွန်ုပ်တို့၏ ဘာသာစကားများစွာဖြင့် ကိုယ်တိုင်ထုတ်ဝေခြင်းလမ်းညွှန် သည် ထိုအလုပ်၏ ကျန်ရှိသည်များကို ဖော်ပြထားသည်။

စမ်းသပ်ဖိုင်များကို ရယူပါ

ဤစမ်းသပ်မှုမှ အရာအားလုံးကို အခမဲ့ ပြန်လည်အသုံးပြုနိုင်သည်။

  • sample-source.mdx: 73 လိုင်းရှိ အင်္ဂလိပ်နမူနာ၊
  • check_markdown_translation.py: ဖွဲ့စည်းပုံစစ်ဆေးသူ (Python စံစာကြည့်တိုက်သာ)၊
  • render_check.mjs နှင့် render-cases.md: ပြသမှုစစ်ဆေးခြင်းနှင့် CJK စမ်းသပ်မှုခုနစ်ခု၊
  • run_llm_markdown_test.py: OpenAI နှင့် ကိုက်ညီသော ဒေသတွင်းဆာဗာတစ်ခုအတွက် prompt အခြေအနေသုံးမျိုး၊
  • outputs ဖိုလ်ဒါ ထဲရှိ ရလဒ် ကိုးခုကို check-results.txt နှင့် results.csv တို့နှင့်အတူ ဖော်ပြထားပါသည်။

ဆက်စပ် ဆောင်းပါးများ