ګمارل او آنلاین

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 ایډیټ کړئ او د خپل npm بستې نوم په npmjs.com د md: YOUR_NPM_PACKAGE بدل کړئ.

بیا md/.i18n/htm/main.package.json تعدیل کړئ

د ژباړې او خپرولو لپاره په md ډایرکټر کې i18n.site --npm یا i18n.site -n چل کړئ.

که تاسو د خپرولو لپاره دوامداره ادغام چاپیریال وکاروئ، نو nodejs نصبولو ته اړتیا نشته. یوازې د ننوتلو او خپرولو اجازه ~/.npmrc چاپیریال ته کاپي کړئ.

که تاسو په main.yml کې د v: کڅوړې نوم بدل کړئ، مهرباني وکړئ ډاډ ترلاسه کړئ چې لومړی .i18n/v/main حذف کړئ او بیا یې خپور کړئ.

پراکسي سرور د npm لخوا خپور شوی

که چیرې په چین کې کاروونکي د شبکې ستونزې سره مخ شي او 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: کې ټاکل شوي د URL مخکینۍ لارې ته تنظیم کړئ.

په نهایت کې ، د /.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 پورې نلري.

د ویب پاڼې د ننوتلو پاڼه یوازې یو ځل ځای پرځای کولو ته اړتیا لري، او د راتلونکو منځپانګو تازه معلوماتو لپاره د ویب پاڼې د ننوتلو پاڼې بیا ځای پرځای کولو ته اړتیا نشته.

په ګیتوب پا pageه کې ځای په ځای کړئ

د سازمان جوړولو لپاره لومړی 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

په کلاوډ فلیر پاڼه کې ځای په ځای کړئ

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 سره همکاري وکړئ ترڅو ریکارډ A ته CNAME کچه.

سربیره پردې ، ځکه چې په چین کې د بادل پلورونکو بهرني ترافیک لګښتونه نسبتا ګران دي ، که تاسو غواړئ لګښتونه غوره کړئ ، تاسو کولی شئ د ترلاسه کولو لپاره د Huawei DNS وړیا جغرافیایی ریزولوشن او Cloudflare for SaaS د ګمرک ډومین نوم وکاروئ (لکه څنګه چې لاندې ښودل شوي). د ټرافیک انحراف──په چین کې د ټرافیک لاره په عمده توګه Baidu Cloud CDN ، نړیوال ترافیک cloudflare ته ځي.

د ګمارنې د اصلاح کولو حلونه خورا پیچلي دي او په راتلونکي کې به په جلا فصلونو کې معرفي شي.

د عمومي ډومین نوم ریډائریکشن

که تاسو د خپلې اصلي ویب پاڼې په توګه د ویب پاڼې د جوړولو لپاره i18n.site کاروئ، تاسو معمولا اړتیا لرئ چې د پین ډومین ریډائریکیشن ترتیب کړئ، دا دی، *.xxx.com (په شمول www.xxx.com ) ته xxx.com ته لاسرسی.

دا اړتیا د علی بابا کلاوډ CDN EdgeScript ( انګلیسي سند / چینایي سند ) په مرسته ترلاسه کیدی شي

په علی بابا CDN کې د ډومین نوم اضافه کړئ او په علی بابا کلاوډ CDN کې د ډومین نوم *.xxx.com CNAME په نښه کړئ.

د مثال په توګه، په پورتني انځور کې د *.i18n.site د پین ډومین نوم د بیرته راستنیدو ترتیب په لاندې ډول دی:

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 د ترتیب کولو فایلونه، د ژباړې زیرمه، او نور شتون لري. د توضیحاتو لپاره راتلونکی فصل "تنظیم" وګورئ.

en

د سرچینې ژبې لارښود، .i18n/conf.yml ترتیب کولو فایل کې د en څخه fromTo سره مطابقت لري

i18n:
  fromTo:
    en: zh

مهرباني وکړئ د ژباړې ترتیب ته مراجعه وکړئ i18