Dreifing Og Á Netinu

i18n.site tekur upp einnar síðu forritaarkitektúr og inngangssíða vefsíðunnar og innihald vefsíðunnar eru sett upp sjálfstætt.

Eftir að hafa keyrt ofangreinda þýðingu verða möppur htm og v búnar til undir md/out/dev möppunni.

Hér þýðir dev að það er byggt á .i18n/htm/dev.yml stillingarskránni.

dev skrá :

htm skráin er inngangssíða vefsíðunnar.

v skráin inniheldur vefsíðuefni með útgáfunúmerum.

Local preview er sama um útgáfunúmerið og mun afrita allar skrár í out/dev/v/0.1.0 möppuna.

Fyrir opinbera útgáfu verða breyttar skrár afritaðar í nýju útgáfunúmeraskrána.

Tilgreindu Stillingarskrá Með -c

Mismunandi stillingarskrár munu búa til samsvarandi möppur í out möppunni.

Til dæmis mun .i18n/htm/main.yml búa til out/main möppuna.

dev.yml og main.yml eru sjálfgefnar stillingar.

dev er skammstöfunin á development , sem gefur til kynna þróunarumhverfið, notað fyrir staðbundna forskoðun, og er einnig sjálfgefna stillingarskráin. ol er skammstöfunin á online , sem gefur til -n netumhverfið, sem er notað fyrir opinbera útgáfu npm

Þú getur líka búið til aðrar stillingarskrár. Notaðu --htm_conf á skipanalínunni til að tilgreina heiti stillingarskrárinnar:

til dæmis:

i18n.site --htm_conf dist --save

Hér táknar --save útgáfunúmer uppfærslu útgáfunnar.

Birtu efni á npmjs.com

Að birta efni á npmjs.com er ráðlögð sjálfgefin lausn (sjá Framhlið High Availability ).

npm Innskráning & Færsla

Settu upp nodejs , skráðu þig inn með npm login .

Breyttu md/.i18n/htm/main.yml og breyttu gildinu md: YOUR_NPM_PACKAGE npmjs.com þitt eigið npm pakkanafn á !

Breyttu síðan md/.i18n/htm/main.package.json

Keyrðu i18n.site --npm eða i18n.site -n í md möppunni til að þýða og birta.

Ef þú notar samfellt samþættingarumhverfi til að birta, þá er engin þörf á að setja upp nodejs Afritaðu bara innskráða og útgáfuheimildir ~/.npmrc í umhverfið.

Ef þú breytir pakkanafni v: á móti main.yml , vinsamlegast vertu viss um að eyða .i18n/v/main fyrst og birta það síðan.

Proxy Miðlari Gefinn Út Af npm

Ef notendur á meginlandi Kína lenda í netvandamálum og geta ekki birt npm pakka, geta þeir stillt umhverfisbreytuna https_proxy til að stilla proxy-þjóninn.

Miðað við að tengi fyrir proxy-miðlara sé 7890 geturðu skrifað:

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

Efni Sem Hýst Er Sjálft

Ef þú vilt hýsa efnið sjálft skaltu fyrst breyta md/.i18n/htm/main.yml og breyta v: //unpkg.com/i18n.site í vefslóðarforskeyti þitt, eins og v: //i18n-v.xxx.com .

Sláðu inn md möppuna og keyrðu

i18n.site --htm_conf ol --save

eða skammstöfun

i18n.site -c ol -s

Stilltu síðan efnið í md/out/main/v möppunni í slóð slóðarforskeytisins sem sett er í v: .

Að lokum skaltu stilla skyndiminni tíma leiðarinnar sem endar á /.v til 1s , annars er ekki hægt að nálgast nýútgefið efni strax.

Hægt er að stilla skyndiminnistímann fyrir aðrar leiðir á eitt ár eða lengur til að draga úr óþarfa beiðnum.

Hýsa Efni Á s3

Til að hýsa efni sjálf, auk þess að nota þinn eigin netþjón, er CDN algengur valkostur að nota S3 +

Þú getur notað rclone til að skrá þig inn á S3 netþjóninn, vísað til og breytt eftirfarandi skriftu og afritað aðeins stigvaxandi breytingar í S3 fyrir hverja útgáfu.

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

Mundu að stilla CDN þannig að skyndiminni slóðarinnar sem endar á /.v1s , annars er ekki hægt að nálgast nýútgefið efni strax.

Birta Vefsíðu

Hægt er að nota vefsíðuna hvar sem er github page og cloudflare page eru góðir kostir.

Vegna þess að vefsíðan notar forritaarkitektúr á einni síðu , mundu að endurskrifa vefslóðir sem innihalda ekki . á móti index.html .

Innsláttarsíðu vefsíðunnar þarf aðeins að dreifa einu sinni og það er engin þörf á að enduruppfæra vefsíðufærslusíðuna fyrir síðari efnisuppfærslur.

Dreifa Á github Síðu

Smelltu fyrst github til að búa til stofnun Eftirfarandi stofnunarheiti er i18n-demo sem dæmi.

Búðu síðan til vöruhús i18n-demo.github.io undir þessari stofnun (vinsamlegast skiptu i18n-demo út fyrir nafn stofnunarinnar sem þú bjóst til):

Þegar þú birtir efnið í fyrri greininni hefur out/main/htm verið búið til. Vinsamlegast sláðu inn þessa möppu og keyrðu :

ln -s index.html 404.html

Þar sem github page styður ekki endurskrifun vefslóða er 404.html notað í staðinn.

Keyrðu síðan eftirfarandi skipun í htm möppunni (mundu að skipta út i18n-demo/i18n-demo.github.io.git fyrir þitt eigið vöruhús heimilisfang) :

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

Eftir að hafa ýtt á kóðann, bíddu eftir að dreifing github page gangi vel (eins og sýnt er hér að neðan) áður en þú hefur aðgang að honum.

Fyrir kynningarsíðu vinsamlegast sjá:

https://i18n-demo.github.io

Dreifa Á cloudflare Síðu

cloudflare page Samanborið við github page veitir það endurskrifun á slóðum og er vingjarnlegra fyrir meginland Kína og er aðgengilegra.

Uppsetning cloudflare page er venjulega byggð á uppsetningu github page hér að ofan.

Búðu til verkefni og bindðu i18n-demo.github.io vöruhúsið hér að ofan.

Ferlið er sýnt á myndinni hér að neðan:

Vinsamlegast smelltu á Add Account til að veita stofnun i18n-demo aðgang.

Ef þú hefur bundið vöruhús annarrar stofnunar gætirðu þurft að smella tvisvar á Add Account til að heimila tvisvar áður en nýja stofnunin birtist.

Næst skaltu velja vöruhús i18n-demo.github.io , smelltu síðan á Begin setup og notaðu sjálfgefin gildi fyrir síðari skref.

Eftir bindingu í fyrsta skipti þarftu að bíða í nokkrar mínútur áður en þú færð aðgang að henni.

Eftir uppsetningu geturðu bundið sérsniðið lén.

Eftir að hafa bundið sérsniðna lénið, vinsamlegast farðu á lénið til að stilla slóð umritunar á einni síðu forritinu, eins og sýnt er hér að neðan:

Reglurnar á myndinni hér að ofan eru sem hér segir Vinsamlega skiptu um i18n.site í fyrstu línunni fyrir neðan fyrir lénið sem þú hefur bundið.

(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")
)

Að auki, vinsamlegast stilltu skyndiminnisreglurnar, eins og sýnt er hér að neðan, og stilltu tíma skyndiminni á einn mánuð.

Vinsamlegast breyttu samsvörun lénsins í öðru skrefi á myndinni hér að ofan í lénið sem þú bundnir.

Fínstilla Uppsetningu Vefsíðu Á Meginlandi Kína

Ef þú vilt ná betri frammistöðu aðgengis í netumhverfi meginlands Kína, vinsamlegast skráðu lén fyrst.

Notaðu síðan hlutgeymslu skýjaframleiðenda á meginlandi + CDN Settu upp eftirfarandi efni out/main/htm !

Þú getur notað brúntölvu til að endurskrifa leiðina til að laga sig að forritum á einni síðu. Til dæmis er hægt að stilla Baidu Smart Cloud CDN á þennan hátt:

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
  // Hægt er að stilla svarhausa til að kemba úttak, svo sem out.XXX = 'MSG';
})

Vegna þess að skrá MX og skrá CNAME geta ekki verið samhliða, ef þú vilt fá lénsnafnapóst á sama tíma, þarftu að vinna með cname_flatten til að stig CNAME í færslu A .

Þar að auki, vegna þess að erlend umferðargjöld skýjaframleiðenda á meginlandi Kína eru tiltölulega dýr, ef þú vilt hámarka kostnað, geturðu notað DNS landfræðilega upplausn Huawei Cloud Cloudflare for SaaS sérsniðið lén (eins og sýnt er hér að neðan) til að ná umferðarbreyting──Umferðarleið á meginlandi Kína Baidu Cloud CDN , alþjóðleg umferð fer cloudflare .

Þessar hagræðingarlausnir fyrir uppsetningu eru flóknari og verða kynntar í sérstökum köflum í framtíðinni.

Almenn Tilvísun Léns

Ef þú notar i18n.site til að búa til vefsíðu sem aðalvefsíðu þína þarftu venjulega að stilla tilvísun á léni, það er að beina aðgangi að *.xxx.com (þar á meðal www.xxx.com ) í xxx.com .

Þessari kröfu er hægt að ná með hjálp Alibaba Cloud CDN EdgeScript ( enskt skjal / kínverskt skjal )

Bættu við léninu í Alibaba CDN og bentu léninu *.xxx.com á CNAME í Alibaba Cloud CDN .

Til dæmis er samskipun lénsframvísunar á *.i18n.site á myndinni hér að ofan sem hér segir:

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

Dreifa Með nginx

Vinsamlegast bættu við stillingu sem líkist eftirfarandi í server málsgrein nginx Vinsamlegast breyttu /root/i18n/md/out/main/htm í slóð þína eigin verkefnis 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;
  }
}

Byggt Á github action Samfelldri Samþættingu

Þú getur vísað til eftirfarandi til að stilla 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 }}

Eins og sést á uppsetningunni er þetta verkflæði ræst þegar ýtt er á grein main og grein dist .

Verkflæðið mun nota stillingarskrána sem samsvarar nafni útibúsins til að birta skjalið. Hér verða .i18n/htm/main.yml og .i18n/htm/dist.yml notuð sem útgáfustillingar.

Við mælum með eftirfarandi bestu starfsvenjum fyrir útgáfu skjala:

Þegar breytingar eru ýttar í útibú main , er skjalið ræst til að vera byggt og dreift á forskoðunarstöðina (forskoðunarstöðin er tiltæk github page ).

Eftir að hafa staðfest að skjalið sé rétt á forskoðunarsíðunni verður kóðinn sameinaður og ýtt í útibú dist og opinbera smíðin og uppsetningin fer á netið.

Auðvitað krefst þess að innleiða ofangreint ferli að skrifa fleiri stillingar.

Þú getur vísað til raunverulegs verkefnis fyrir verkflæðisskrift github.com/fcdoc/doc

secrets.I18N_SITE_TOKEN og secrets.NPM_TOKEN í uppsetningunni krefjast þess að þú stillir leynilegar breytur í kóðagrunninum.

I18N_SITE_TOKEN i18n.site/token

NPM_TOKEN er útgáfutákn pakka npm í uppsetningunni npmjs.com búðu til tákn með útgáfuheimildum (eins og sýnt er hér að neðan).

Uppbygging Skráa

public

Statískar skrár vefsíðunnar, svo sem favicon.ico , robots.txt , osfrv.

Táknskrárnar hér er hægt að búa til með realfavicongenerator.net

.i18n

Undir .i18n möppunni eru stillingarskrár, þýðingarskyndiminni o.s.frv. af i18n.site Sjá næsta kafla „Stillingar“ fyrir frekari upplýsingar.

en

Heimildamálsskrá, sem samsvarar en af fromTo í .i18n/conf.yml stillingarskrá

i18n:
  fromTo:
    en: zh

Vinsamlegast skoðaðu uppsetningu þýðingar i18