යෙදවීම සහ මාර්ගගතව

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 npm පැකේජ නාමය ලෙස md: YOUR_NPM_PACKAGE වෙනස් කරන්න.

ඉන්පසු md/.i18n/htm/main.package.json වෙනස් කරන්න

පරිවර්තනය කිරීමට සහ ප්රකාශ කිරීමට md නාමාවලියෙහි i18n.site --npm හෝ i18n.site -n ධාවනය කරන්න.

ඔබ ප්රකාශනය කිරීමට අඛණ්ඩ ඒකාබද්ධ පරිසරයක් භාවිතා කරන්නේ නම්, nodejs ස්ථාපනය කිරීමට අවශ්ය නොවේ. ලොග් වී ඇති සහ ප්රකාශන අවසර ~/.npmrc පරිසරයට පිටපත් කරන්න.

ඔබ v: හි main.yml හි පැකේජ නාමය වෙනස් කරන්නේ නම්, කරුණාකර පළමුව .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: //i18n-v.xxx.com වැනි ඔබේ URL උපසර්ගයට v: //unpkg.com/i18n.site වෙනස් කරන්න.

md නාමාවලිය ඇතුළත් කර ධාවනය කරන්න

i18n.site --htm_conf ol --save

හෝ කෙටි යෙදුම

i18n.site -c ol -s

ඉන්පසුව, md/out/main/v නාමාවලියෙහි අන්තර්ගතය v: හි සකසා ඇති URL උපසර්ග මාර්ගයට වින්යාස කරන්න.

අවසාන වශයෙන්, /.v සිට 1s දක්වා අවසන් වන මාර්ගයේ හැඹිලි කාලය වින්යාස කරන්න , එසේ නොමැති නම් අලුතින් නිකුත් කරන ලද අන්තර්ගතයට වහාම ප්රවේශ විය නොහැක.

අනවශ්ය ඉල්ලීම් අඩු කිරීම සඳහා වෙනත් මාර්ග සඳහා හැඹිලි කාලය වසරක් හෝ ඊට වැඩි කාලයක් දක්වා සැකසිය හැක.

s3 වෙත අන්තර්ගතය සත්කාරක කරන්න

ස්වයං-සත්කාරක අන්තර්ගතය සඳහා, ඔබේම සේවාදායකය භාවිතා කිරීමට අමතරව, CDN පොදු විකල්පයක් වන්නේ S3 +

S3 සේවාදායකයට ලොග් වීමට S3 rclone

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/"

/.v න් අවසන් වන මාර්ගයේ හැඹිලි කාලය 1s වන පරිදි CDN වින්යාස කිරීමට මතක තබා ගන්න, එසේ නොමැතිනම් අලුතින් නිකුත් කරන ලද අන්තර්ගතයට වහාම ප්රවේශ විය නොහැක.

ප්රකාශන වෙබ් අඩවිය

වෙබ් අඩවිය ඕනෑම තැනක යෙදවිය හැක github page සහ cloudflare page හොඳ තේරීම් වේ.

වෙබ් අඩවිය තනි පිටු යෙදුම් ගෘහ නිර්මාණ ශිල්පයක් භාවිතා කරන නිසා, . සිට index.html දක්වා අඩංගු නොවන URL මාර්ග නැවත ලිවීමට මතක තබා ගන්න.

වෙබ් අඩවි ඇතුළත් කිරීමේ පිටුව එක් වරක් පමණක් යෙදවීමට අවශ්ය වන අතර, පසුකාලීන අන්තර්ගත යාවත්කාලීන කිරීම් සඳහා වෙබ් අඩවි ඇතුළත් කිරීමේ පිටුව නැවත යෙදවීමට අවශ්ය නොවේ.

github පිටුවෙහි යෙදවීම

සංවිධානයක් සෑදීමට පළමුව github ක්ලික් කරන්න i18n-demo උදාහරණයක් ලෙස.

ඉන්පසු මෙම සංවිධානය යටතේ ගබඩා i18n-demo.github.io සාදන්න (කරුණාකර i18n-demo ඔබ විසින් සාදන ලද සංවිධානයේ නම සමඟ ප්රතිස්ථාපනය කරන්න):

පෙර ලිපියේ අන්තර්ගතය ප්රකාශයට පත් කරන විට, out/main/htm ජනනය වී ඇත, කරුණාකර මෙම නාමාවලිය ඇතුළත් කර ධාවනය කරන්න :

ln -s index.html 404.html

URL මාර්ගය නැවත ලිවීමට github page සහාය නොදක්වන නිසා, ඒ වෙනුවට 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 පිටුවෙහි යෙදවීම

cloudflare page github page

cloudflare page යෙදවීම සාමාන්යයෙන් ඉහත github page යෙදවීම මත පදනම් වේ.

ව්යාපෘතියක් සාදා ඉහත i18n-demo.github.io ගබඩාව බැඳ තබන්න.

ක්රියාවලිය පහත රූපයේ දැක්වේ:

සංවිධානය i18n-demo වෙත ප්රවේශය ලබා දීමට කරුණාකර Add Account ක්ලික් කරන්න.

ඔබ වෙනත් ආයතනයක ගබඩාවක් බැඳ තිබේ නම්, නව සංවිධානය පෙන්වීමට පෙර දෙවරක් අවසර දීමට 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 මට්ටමට A කිරීමට ස්ක්රිප්ට් සමඟ cname_flatten කටයුතු කළ යුතුය.

මීට අමතරව, චීනයේ ප්රධාන භූමියේ ක්ලවුඩ් වෙළෙන්දන්ගේ විදේශ ගමනාගමන ගාස්තු සාපේක්ෂව මිල අධික බැවින්, ඔබට පිරිවැය ප්රශස්ත කිරීමට අවශ්ය නම්, ඔබට ලබා ගැනීමට DNS Cloud හි නොමිලේ භූගෝලීය විභේදනය සහ Cloudflare for SaaS හි අභිරුචි ඩොමේන් නාමය (පහත පෙන්වා ඇති පරිදි) භාවිතා කළ හැකිය රථවාහන හැරවීම──චයිනා බයිඩු ක්ලවුඩ් CDN ප්රධාන භූමියේ රථවාහන මාර්ගගත කිරීම, ජාත්යන්තර ගමනාගමනය cloudflare .

මෙම යෙදවුම් ප්රශස්තකරණ විසඳුම් වඩාත් සංකීර්ණ වන අතර අනාගතයේදී වෙනම පරිච්ඡේදවල හඳුන්වා දෙනු ඇත.

සාමාන්ය වසම් නාම යළි-යොමුවීම්

ඔබේ ප්රධාන වෙබ් අඩවිය ලෙස වෙබ් අඩවියක් උත්පාදනය කිරීමට ඔබ i18n.site භාවිතා කරන්නේ නම්, ඔබ සාමාන්යයෙන් pan-domain යළි-යොමුවීම් වින්යාස කිරීමට අවශ්ය වේ, එනම්, *.xxx.com ( www.xxx.com ඇතුළුව) සිට xxx.com වෙත ප්රවේශය හරවා යවන්න.

මෙම අවශ්යතාවය Alibaba Cloud CDN EdgeScript ( ඉංග්රීසි ලේඛනය / චීන ලේඛනය ) ආධාරයෙන් ලබා ගත හැක.

CDN Cloud හි වසම් නාමය එකතු කර Alibaba Cloud CDN හි වසම් නාමය *.xxx.com සිට CNAME දක්වා යොමු කරන්න.

උදාහරණයක් ලෙස, ඉහත පින්තූරයේ *.i18n.site හි pan-domain නාම යළි-යොමුවීම් වින්යාසය පහත පරිදි වේ:

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

nginx සමඟ යොදවන්න

කරුණාකර server ඡේදයේ පහත දැක්වෙන වින්යාසයක් එක් කරන්න nginx කරුණාකර /root/i18n/md/out/main/htm ඔබේම ව්යාපෘතියේ මාර්ගයට 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 වින්යාස ගොනුවේ fromTo න් en ට අනුරූප වේ

i18n:
  fromTo:
    en: zh

කරුණාකර පරිවර්තන වින්යාසය බලන්න i18