لڳائڻ ۽ آن لائن

i18n.site ھڪڙي صفحي جي ايپليڪيشن آرڪيٽيڪچر کي اپنائڻ، ۽ ويب سائيٽ جي داخلا واري صفحي ۽ ويب سائيٽ جي مواد کي آزاديء سان ترتيب ڏنو ويو آھي.

مٿين ترجمي کي هلائڻ کان پوء، ڊائريڪٽري htm ۽ v ٺاهي ويندي md/out/dev ڊاريڪٽري جي تحت.

هتي، dev جو مطلب آهي ته اهو ٺهيل آهي .i18n/htm/dev.yml ترتيب واري فائل جي بنياد تي.

dev ڊاريڪٽري :

htm ڊاريڪٽري ويب سائيٽ جو داخلا صفحو آهي.

v ڊاريڪٽري ۾ ورزن نمبرن سان گڏ ويب سائيٽ جو مواد شامل آھي.

مقامي ڏيک نسخي نمبر جي پرواهه نه ڪندو آهي ۽ سڀني فائلن کي out/dev/v/0.1.0 ڊاريڪٽري ڏانهن نقل ڪندو.

سرڪاري رليز لاءِ، تبديل ٿيل فائلون نقل ڪيون وينديون نئين ورجن نمبر ڊاريڪٽري ۾.

-c سان ٺاھ جوڙ واري فائل جي وضاحت ڪريو

مختلف ٺاھ جوڙ جون فائلون out ڊاريڪٽري ۾ لاڳاپيل ڊائريڪٽريون ٺاھينديون.

مثال طور، .i18n/htm/main.yml ٺاهيندو out/main ڊاريڪٽري.

dev.yml ۽ main.yml ڊفالٽ ٺاھ جوڙ آھن.

dev development جو مخفف آهي، ترقيءَ واري ماحول کي ظاهر ڪري ٿو، مقامي ڏيک لاءِ استعمال ٿئي ٿو، ۽ پڻ ڊفالٽ ڪنفيگريشن فائل آهي. ol online جو مخفف آهي، جيڪو آن لائن ماحول کي ظاهر ڪري ٿو، جيڪو سرڪاري رليز لاءِ استعمال ڪيو ويندو آهي، اهو پڻ ڊفالٽ ڪنفيگريشن فائل آهي جڏهن ڪمانڊ لائين پيرا ميٽرز -n کان npm جاري ڪرڻ لاءِ.

توھان پڻ ٺاھي سگھوٿا ٻيون ٺاھڻ واريون فائلون استعمال ڪرڻ لاءِ --htm_conf ڪمانڊ لائن تي ترتيب ڏيڻ واري فائل جو نالو بيان ڪرڻ لاءِ:

مثال طور:

i18n.site --htm_conf dist --save

هتي --save ظاھر ڪري ٿو تازه ڪاري ورزن نمبر.

npmjs.com تي مواد شايع ڪريو

مواد کي شايع ڪرڻ لاءِ تجويز ڪيل ڊفالٽ حل npmjs.com (ڏسو فرنٽ-اينڊ هاءِ دستيابي ).

لاگ npm & پوسٽ

انسٽال ڪريو nodejs ، لاگ ان ڪريو npm login سان.

md/.i18n/htm/main.yml npmjs.com ڪريو ۽ md: YOUR_NPM_PACKAGE کي پنھنجي npm پيڪيج جي نالي سان تبديل ڪريو.

پوء تبديل ڪريو md/.i18n/htm/main.package.json

ترجمو ڪرڻ ۽ شايع ڪرڻ لاءِ md ڊاريڪٽري ۾ i18n.site --npm يا i18n.site -n هلايو.

جيڪڏھن توھان شايع ڪرڻ لاءِ مسلسل انٽيگريشن ماحول استعمال ڪريو ٿا، nodejs انسٽال ڪرڻ جي ڪا ضرورت نھ آھي. بس لاگ ان ٿيل ۽ پبلشنگ جي اجازتن کي نقل ڪريو ~/.npmrc ماحول ۾.

جيڪڏهن توهان main.yml ۾ v: جي پيڪيج جي نالي ۾ ترميم ڪريو ٿا، مهرباني ڪري پڪ ڪريو ته پهريان .i18n/v/main حذف ڪريو ۽ پوءِ شايع ڪريو.

پراکسي سرور پاران شايع ٿيل اين پي ايم

جيڪڏهن مينلينڊ چين ۾ صارفين کي نيٽ ورڪ مسئلن سان منهن ڏيڻو پوي ٿو ۽ npm پيڪيجز شايع ڪرڻ جي قابل نه آهن، اهي پراکسي سرور کي ترتيب ڏيڻ لاء ماحول متغير https_proxy سيٽ ڪري سگهن ٿا.

فرض ڪيو ته توهان جو پراکسي سرور پورٽ 7890 آهي، توهان لکي سگهو ٿا:

https_proxy=http://127.0.0.1:7890 i18n.site -n

خود ميزباني ڪيل مواد

جيڪڏھن توھان چاھيو ٿا ته مواد کي خود ميزباني ڪريو، پھريائين md/.i18n/htm/main.yml ايڊٽ ڪريو ۽ v: //unpkg.com/i18n.site پنھنجي URL جي اڳياڙي ۾ تبديل ڪريو، جھڙوڪ v: //i18n-v.xxx.com .

داخل ڪريو md ڊاريڪٽري ۽ هلائي

i18n.site --htm_conf ol --save

يا مخفف

i18n.site -c ol -s

ان کان پوء، md/out/main/v ڊاريڪٽري ۾ مواد کي ترتيب ڏيو يو آر ايل پريفڪس رستو v: ۾ سيٽ ڪيو.

آخرڪار، /.v کان 1s ۾ ختم ٿيڻ واري رستي جي ڪيش وقت کي ترتيب ڏيو ، ٻي صورت ۾ نئين جاري ڪيل مواد کي فوري طور تي رسائي نه ٿي سگھي.

غير ضروري درخواستن کي گھٽائڻ لاءِ ٻين رستن لاءِ ڪيش جو وقت ھڪ سال يا وڌيڪ مقرر ڪري سگھجي ٿو.

s3 تي مواد ميزباني ڪريو

خود ميزباني واري مواد لاءِ، توهان جي پنهنجي سرور کي استعمال ڪرڻ کان علاوه، ٻيو عام آپشن استعمال ڪرڻ آهي S3 CDN +

توھان استعمال ڪري سگھوٿا S3 سرور ۾ لاگ ان ٿيڻ لاءِ rclone پوءِ ھيٺ ڏنل اسڪرپٽ جو حوالو ڏيو ۽ تبديل ڪريو، ۽ صرف ھر رليز لاءِ S3 ۾ وڌندڙ تبديلين کي نقل ڪريو.

i18n.site -c ol -s
s3=your-s3
bucket=your-bucket
ver=$(head -1 .i18n/v/main/v.hash | cut -c 2-)
rclone copy --overwrite-dir out/main/htm/v/$ver $s3:/$bucket/$ver
rclone copy out/main/v/.v "$s3:/$bucket/"

CDN کي ترتيب ڏيڻ لاء ياد رکو ته جيئن /.v ۾ ختم ٿيڻ واري رستي جو ڪيش وقت 1s آهي، ٻي صورت ۾ نئين جاري ڪيل مواد کي فوري طور تي رسائي نه ٿي سگھي.

ويب سائيٽ شايع ڪرڻ

ويب سائيٽ ڪٿي به ٺهي سگهي ٿي github page ۽ cloudflare page سٺيون چونڊون آهن.

ڇاڪاڻ ته ويب سائيٽ هڪ واحد-صفحي ايپليڪيشن آرڪيٽيڪچر استعمال ڪري ٿي، ياد رکو ته URL جي رستن کي ٻيهر لکڻ لاءِ جيڪي . کان index.html تي مشتمل نه هجن.

ويب سائيٽ جي داخلا واري صفحي کي صرف هڪ ڀيرو ترتيب ڏيڻ جي ضرورت آهي، ۽ بعد ۾ مواد جي تازه ڪاري لاء ويب سائيٽ جي داخلا صفحي کي ٻيهر ترتيب ڏيڻ جي ڪا ضرورت ناهي.

github صفحي تي ترتيب ڏيو

هڪ تنظيم ٺاهڻ لاءِ پهرين github ڪلڪ ڪريو مثال طور هيٺ ڏنل تنظيم جو نالو i18n-demo آهي.

ان کان پوء هن تنظيم جي تحت گودام i18n-demo.github.io ٺاهيو (مهرباني ڪري i18n-demo کي تبديل ڪريو ان تنظيم جي نالي سان جيڪو توهان ٺاهيو آهي):

پوئين مضمون ۾ مواد شايع ڪرڻ وقت، out/main/htm ٺاھيو ويو آھي مھرباني ڪري ھي ڊاريڪٽري داخل ڪريو ۽ ھلايو :

ln -s index.html 404.html

ڇاڪاڻ ته github page URL جو رستو ٻيهر لکڻ جي حمايت نٿو ڪري، 404.html بدران استعمال ڪيو ويندو آهي.

پوءِ htm ڊاريڪٽري ۾ ھيٺ ڏنل حڪم ھلايو ( i18n-demo/i18n-demo.github.io.git پنھنجي گودام پتي سان تبديل ڪرڻ ياد رکو) :

git init
git branch -M main
git remote add origin [email protected]:i18n-demo/i18n-demo.github.io.git
git push -u origin main -f

ڪوڊ کي دٻائڻ کان پوء، ڪاميابيء سان هلائڻ لاء github page جي تعیناتي جو انتظار ڪريو (جيئن ھيٺ ڏيکاريل آھي) ان کان اڳ توھان ان تائين رسائي ڪري سگھو ٿا.

ڊيمو صفحي لاء مهرباني ڪري ڏسو:

https://i18n-demo.github.io

Cloudflare صفحي تي ترتيب ڏيو

github page جي مقابلي ۾ cloudflare page اهو رستو ٻيهر لکندو آهي ۽ سرزمين چين ڏانهن وڌيڪ دوستانه آهي ۽ استعمال ڪرڻ جي سفارش ڪئي وئي آهي.

cloudflare page جي مقرري عام طور تي مٿي ڏنل github page جي ترتيب تي ٻڌل آھي.

ھڪڙو منصوبو ٺاھيو ۽ مٿي i18n-demo.github.io گودام کي پابند ڪريو.

عمل هيٺ ڏنل شڪل ۾ ڏيکاريل آهي:

مھرباني ڪري Add Account تي ڪلڪ ڪريو تنظيم i18n-demo تائين پھچائڻ لاءِ.

جيڪڏهن توهان ڪنهن ٻئي تنظيم جي گودام کي پابند ڪيو آهي، توهان کي نئين تنظيم جي ظاهر ٿيڻ کان پهريان ٻه ڀيرا اختيار ڪرڻ لاء Add Account ڀيرا ڪلڪ ڪرڻ جي ضرورت پوندي.

اڳيون، گودام i18n-demo.github.io چونڊيو، پوءِ ڪلڪ ڪريو Begin setup ، ۽ ايندڙ مرحلن لاءِ ڊفالٽ ويلز استعمال ڪريو.

پهريون ڀيرو پابند ٿيڻ کان پوء، توهان کي ڪجهه منٽ انتظار ڪرڻ جي ضرورت آهي ان کان پهريان توهان ان تائين رسائي ڪري سگهو ٿا.

لڳائڻ کان پوء، توهان پابند ڪري سگهو ٿا هڪ ڪسٽم ڊومين جو نالو.

ڪسٽم ڊومين جو نالو بائنڊنگ ڪرڻ کان پوءِ، مھرباني ڪري ڊومين جي نالي ڏانھن وڃو ھڪڙي صفحي واري ايپليڪيشن جي رستي کي ٻيهر لکڻ لاءِ، جيئن ھيٺ ڏيکاريل آھي:

مٿي ڏنل تصوير ۾ ضابطا هن ريت آهن مهرباني ڪري هيٺ ڏنل لڪير ۾ i18n.site تبديل ڪريو جيڪو توهان پابند ڪيو آهي.

(http.host in {"i18n.site"}) and not (
substring(http.request.uri.path,-3) in {".js" ".gz"} or
substring(http.request.uri.path,-4) in {".htm" ".rss" ".css" ".svg" ".ico" ".png" ".xml" ".txt"} or
substring(http.request.uri.path,-5) in {".html" ".avif" ".json"} or
ends_with(http.request.uri.path,".webmanifest")
)

ان کان علاوه، مھرباني ڪري ڪيش جي ضابطن کي ترتيب ڏيو، جيئن ھيٺ ڏيکاريل آھي، ۽ ڪيش جي مدت کي ھڪڙي مھيني تائين مقرر ڪريو.

مھرباني ڪري مٿي ڏنل تصوير ۾ ٻئي مرحلي ۾ ملندڙ ڊومين جو نالو تبديل ڪريو جنھن ڊومين جي نالي تي توھان پابند آھيو.

سرزمين چين ۾ ويب سائيٽ جي ترتيب کي بهتر ڪرڻ

جيڪڏھن توھان چاھيو ٿا بھترين پھچڻ جي ڪارڪردگيءَ کي سرزمين چين جي نيٽ ورڪ ماحول ۾، مھرباني ڪري رجسٽر ڪريو ڊومين جو نالو پھرين.

پوء، استعمال ڪريو بادل وينڊرز جي آبجیکٹ اسٽوريج چين ۾ + هيٺ ڏنل مواد کي ترتيب ڏيو CDN out/main/htm

توهان ايج ڪمپيوٽنگ استعمال ڪري سگهو ٿا رستو ٻيهر لکڻ لاءِ سنگل-پيج ايپليڪيشنن کي ترتيب ڏيڻ لاءِ، مثال طور، Baidu Smart Cloud CDN هن طرح ترتيب ڏئي سگهجي ٿو:

const uri = r.uri, p = uri.lastIndexOf(".");
if (
  p < 0 ||
  !"|js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest|".includes(
    "|" + uri.slice(p + 1) + "|",
  )
) {
  const ua = r.headersIn["User-Agent"].toLowerCase()
  if (/facebookexternalhit|slurp|bot|spider|curl/.test(ua)) {
    r.return(
      302,
      (/baidu|yisou|sogou|360|byte/.test(ua) ? "/zh" : "/en") + r.uri + ".htm",
    )
  } else {
    r.uri = "/index.html"
  }
}

r.respHeader(() => {
  const t = [], out = r.headersOut;
  ["Content-MD5", "Age", "Expires", "Last-Modified"].forEach(
    i => delete out[i]
  )
  r.rawHeadersOut.forEach(i => {
    const key = i[0].toLowerCase()
    if (key.startsWith("x-") || key.startsWith("ohc-")) {
      delete out[key]
    }
  })
  out["Cache-Control"] = "max-age=" + 9e5
  // جوابي هيڊر سيٽ ڪري سگھجن ٿا ڊيبگ آئوٽ پٽ لاءِ، جيئن out.XXX = 'MSG'؛
})

ڇاڪاڻ ته رڪارڊ MX ۽ رڪارڊ CNAME گڏ نٿا ٿي سگهن، جيڪڏهن توهان هڪ ئي وقت ۾ ڊومين نالو اي ميلون حاصل ڪرڻ چاهيو ٿا، توهان کي cname_flatten سان تعاون ڪرڻ جي ضرورت آهي سطح CNAME کي رڪارڊ A ۾.

ان کان علاوه، ڇاڪاڻ ته مکيه زمين چين ۾ ڪلائوڊ وينڊرز جا اوورسيز ٽريفڪ چارجز نسبتاً مهانگو آهن، جيڪڏهن توهان قيمتن کي بهتر ڪرڻ چاهيو ٿا، ته توهان حاصل ڪرڻ لاءِ DNS Cloud جي مفت جاگرافيائي قرارداد ۽ Cloudflare for SaaS جو ڪسٽم ڊومين نالو استعمال ڪري سگهو ٿا (جيئن هيٺ ڏيکاريل آهي). ٽرئفڪ جو رخ──چائنا جي مکيه زمين ۾ ٽريفڪ جو رستو Baidu Cloud CDN , بين الاقوامي ٽرئفڪ cloudflare .

اهي ترتيب ڏيڻ جي اصلاح جا حل وڌيڪ پيچيده آهن ۽ مستقبل ۾ الڳ بابن ۾ متعارف ڪرايا ويندا.

عام ڊومين نالو ريڊائريشن

جيڪڏهن توهان i18n.site استعمال ڪريو ٿا ويب سائيٽ ٺاهڻ لاءِ پنهنجي مکيه ويب سائيٽ، توهان کي عام طور تي ترتيب ڏيڻ جي ضرورت پوندي پين-ڊومين ريڊائريڪشن، يعني ريڊائريڪٽ رسائي *.xxx.com (بشمول www.xxx.com ) تائين xxx.com تائين.

اها ضرورت علي بابا Cloud CDN EdgeScript جي مدد سان حاصل ڪري سگهجي ٿي ( انگريزي دستاويز / چيني دستاويز )

CDN Cloud ۾ ڊومين جو نالو شامل ڪريو ۽ علي بابا ڪلائوڊ CDN ۾ ڊومين جو نالو *.xxx.com کان CNAME ڏانھن اشارو ڪريو.

مثال طور، مٿي ڏنل تصوير ۾ *.i18n.site جي pan-domain name redirection configuration هن ريت آهي:

rewrite(concat('https://i18n.site',$uri), 'redirect',301)

nginx سان ترتيب ڏيو

مھرباني ڪري server پيراگراف ۾ ھيٺ ڏنل ھڪڙي ترتيب شامل ڪريو nginx مھرباني ڪري پنھنجي منصوبي out/main/htm جي رستي ۾ /root/i18n/md/out/main/htm تبديل ڪريو

location / {
  root  /root/i18n/md/out/main/htm;
  add_header Cache-Control "max-age=9999999";
  if ($uri !~* \.(avif|css|html|ico|js|json|png|svg|txt|webmanifest|xml)$) {
     rewrite ^ /index.html last;
  }
}

github action مسلسل انضمام جي بنياد تي

توھان پنھنجي github action ترتيب ڏيڻ لاء ھيٺ ڏنل حوالو ڪري سگھو ٿا:

name: i18n.site

on:
  workflow_dispatch:
  push:
    branches:
      - main
      - dist

jobs:
  i18n:

    permissions:
      repository-projects: write
      contents: write

    runs-on: ubuntu-latest

    steps:
      - name: checkout
        uses: actions/checkout@v4

      - name: https://i18n.site
        uses: i18n-site/github-action-i18n.site@main
        with:
          I18N_SITE_TOKEN: ${{ secrets.I18N_SITE_TOKEN }}
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

جيئن ته ترتيب ۾ ڏسي سگھجي ٿو، هي ڪم فلو شروع ٿئي ٿو جڏهن شاخ main ۽ شاخ dist ڏانهن ڌڪيو وڃي.

ڪم فلو ڊاڪيومينٽ کي شايع ڪرڻ لاءِ برانچ جي نالي سان ٺهڪندڙ فائل استعمال ڪندو، هتي .i18n/htm/main.yml ۽ .i18n/htm/dist.yml ترتيب وار پبلشنگ ڪنفيگريشن طور استعمال ڪيو ويندو.

اسان سفارش ڪريون ٿا هيٺين بهترين عملن لاءِ دستاويز ڇڏڻ جي عمل لاءِ:

جڏهن تبديلين کي شاخ main ڏانهن ڌڪيو وڃي ٿو، دستاويز کي ٺهرايو ويندو آهي ۽ پريويو اسٽيشن تي لڳايو ويندو آهي (پريويو اسٽيشن موجود آهي github page ).

تصديق ڪرڻ کان پوءِ ته دستاويز پريويو سائيٽ تي صحيح آهي، ڪوڊ کي ضم ڪيو ويندو ۽ شاخ dist ڏانهن ڌڪيو ويندو، ۽ سرڪاري تعمير ۽ ترتيب آن لائن ٿي ويندي.

يقينن، مٿين عمل کي لاڳو ڪرڻ لاء وڌيڪ ترتيب لکڻ جي ضرورت آهي.

توهان ڪم فلو اسڪرپٽنگ لاءِ اصل پروجيڪٽ ڏانهن رجوع ڪري سگهو ٿا github.com/fcdoc/doc

ترتيب ۾ secrets.I18N_SITE_TOKEN ۽ secrets.NPM_TOKEN توهان کي ڪوڊ بيس ۾ ڳجهي متغيرن کي ترتيب ڏيڻ جي ضرورت آهي.

I18N_SITE_TOKEN حاصل ڪريو i18n.site/token

NPM_TOKEN آهي پبلشنگ ٽوڪن جو پيڪيج npm جو npmjs.com ڪريو ۽ پبلشنگ جي اجازتن سان ٺاهيو (جيئن هيٺ ڏيکاريل آهي).

ڊاريڪٽري جي جوڙجڪ

public

ويب سائيٽ جون جامد فائلون، جهڙوڪ favicon.ico ، robots.txt ، وغيره.

هتي جي آئڪن فائلن سان ٺاهي سگھجن ٿيون realfavicongenerator.net

.i18n

.i18n ڊاريڪٽري جي ھيٺان i18n.site جون ڪنفيگريشن فائلون، ترجمي ڪيش وغيره آھن. تفصيل لاءِ ايندڙ باب "Configuration" ڏسو.

en

ماخذ ٻولي ڊاريڪٽري، .i18n/conf.yml ترتيب واري فائل ۾ en مان fromTo سان لاڳاپيل

i18n:
  fromTo:
    en: zh

مهرباني ڪري ترجمي جي ترتيب ڏانهن رجوع ڪريو i18