Juurutamine Ja Võrgus

i18n.site võtab kasutusele ühelehelise rakenduse arhitektuuri ning veebisaidi sisenemisleht ja veebisaidi sisu juurutatakse iseseisvalt.

Pärast ülaltoodud tõlke käivitamist luuakse kataloogid htm ja v kataloogi md/out/dev alla.

Siin tähendab dev , et see on loodud .i18n/htm/dev.yml konfiguratsioonifaili põhjal.

dev kataloog :

Kataloog htm on veebisaidi sisenemise leht.

Kataloog v sisaldab veebisaidi sisu koos versiooninumbritega.

Kohalik eelvaade ei hooli versiooninumbrist ja kopeerib kõik failid out/dev/v/0.1.0 kataloogi.

Ametlikuks avaldamiseks kopeeritakse muudetud failid uude versiooninumbrite kataloogi.

Määrake Konfiguratsioonifail -c

Erinevad konfiguratsioonifailid loovad vastavad kataloogid out kataloogis.

Näiteks .i18n/htm/main.yml loob kataloogi out/main .

dev.yml ja main.yml on vaikekonfiguratsioonid.

dev on lühend development -st, mis näitab arenduskeskkonda, kasutatakse kohaliku eelvaate jaoks ja on ka vaikekonfiguratsioonifail. ol on lühend online -st, mis näitab võrgukeskkonda, mida kasutatakse ametlikuks väljalaskmiseks. See on ka vaikekonfiguratsioonifail, kui kasutate vabastamiseks käsurea parameetreid -n kuni npm .

Saate luua ka muid konfiguratsioonifaile. Kasutage käsureal --htm_conf , et määrata kasutatava konfiguratsioonifaili nimi.

näiteks:

i18n.site --htm_conf dist --save

Siin tähistab --save värskenduse väljalaske versiooni numbrit.

Avaldage sisu saidil npmjs.com

Soovitatav vaikelahendus on sisu avaldamine saidil npmjs.com (vt Esiosa kõrge saadavus ).

Logi npm & Postitus

Installige nodejs , logige sisse numbriga npm login .

Redigeerige md/.i18n/htm/main.yml ja YOUR_NPM_PACKAGE md: npm paketi nimeks npmjs.com

Seejärel muutke md/.i18n/htm/main.package.json

Tõlkimiseks ja avaldamiseks käivitage kataloogis md i18n.site --npm või i18n.site -n .

Kui kasutate avaldamiseks pidevat integratsioonikeskkonda, pole vaja nodejs installida. Lihtsalt kopeerige sisselogimise ja avaldamise õigused ~/.npmrc keskkonda.

Kui muudate paketi nime v: in main.yml , kustutage kindlasti esmalt .i18n/v/main ja seejärel avaldage see.

Puhverserveri Avaldas npm

Kui Mandri-Hiina kasutajatel tekib võrguprobleeme ja nad ei saa avaldada npm paketti, saavad nad seada puhverserveri konfigureerimiseks keskkonnamuutuja https_proxy .

Eeldades, et teie puhverserveri port on 7890 , võite kirjutada:

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

Ise Hostitud Sisu

Kui soovite sisu ise hostida, muutke esmalt md/.i18n/htm/main.yml ja muutke v: //unpkg.com/i18n.site oma URL-i prefiksiks, näiteks v: //i18n-v.xxx.com .

Sisestage kataloog md ja käivitage

i18n.site --htm_conf ol --save

või lühend

i18n.site -c ol -s

Seejärel konfigureerige kataloogi md/out/main/v sisu URL-i eesliite teele, mis on määratud v: .

Lõpuks seadistage vahemälu aeg teele, mis lõpeb numbritega /.v kuni 1s , vastasel juhul ei pääse äsja avaldatud sisule kohe juurde.

Muude teede vahemäluajaks saab määrata ühe aasta või rohkem, et vähendada tarbetuid päringuid.

Hosti Sisu S3-Sse

Sisu ise hostimiseks on lisaks oma serveri kasutamisele CDN üks levinud valik S3 +

Saate rclone S3 serverisse sisselogimiseks, seejärel vaadata ja muuta järgmist skripti ning kopeerida ainult iga versiooni järkjärgulised muudatused väärtuseks 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/"

Ärge unustage seadistada CDN nii, et /.v ga lõppeva tee vahemälu aeg oleks 1s , vastasel juhul ei pääse äsja avaldatud sisule kohe juurde.

Avaldada Veebisait

Veebisaiti saab juurutada kõikjal github page ja cloudflare page on head valikud.

Kuna veebisait kasutab ühelehelise rakenduse arhitektuuri, ärge unustage ümber kirjutada URL-i teed, mis ei sisalda . kuni index.html .

Veebisaidi sisestuslehte tuleb juurutada vaid üks kord ja järgnevate sisuvärskenduste jaoks pole vaja veebisaidi sisestuslehte ümber paigutada.

Juurutage Githubi Lehel

Organisatsiooni loomiseks klõpsake kõigepealt github . Järgmise organisatsiooni nimi on näiteks i18n-demo .

Seejärel looge selle organisatsiooni alla ladu i18n-demo.github.io (asendage i18n-demo enda loodud organisatsiooni nimega):

Eelmise artikli sisu avaldamisel on loodud out/main/htm Palun sisestage see kataloog ja käivitage :

ln -s index.html 404.html

Kuna github page ei toeta URL-i tee ümberkirjutamist, kasutatakse selle asemel 404.html .

Seejärel käivitage kataloogis htm järgmine käsk (pidage meeles, et asendage i18n-demo/i18n-demo.github.io.git oma lao aadressiga) :

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

Pärast koodi vajutamist oodake, kuni koodi github page juurutamine õnnestub (nagu allpool näidatud), enne kui pääsete sellele juurde.

Demo lehe vaatamiseks vaadake:

https://i18n-demo.github.io

Juurutage Cloudflare'i Lehel

cloudflare page github page ga pakub see tee ümberkirjutamist ja on Mandri-Hiina jaoks sõbralikum ning seda on soovitatav kasutada.

cloudflare page juurutamine põhineb tavaliselt ülaltoodud github page kasutuselevõtul.

Looge projekt ja siduge ülaltoodud i18n-demo.github.io ladu.

Protsess on näidatud alloleval joonisel:

Organisatsioonile i18n-demo juurdepääsu andmiseks klõpsake nuppu Add Account .

Kui olete sidunud teise organisatsiooni lao, peate võib-olla klõpsama kaks korda Add Account , et kaks korda autoriseerida, enne kui uus organisatsioon kuvatakse.

Järgmisena valige ladu i18n-demo.github.io , seejärel klõpsake nuppu Begin setup ja kasutage järgmiste sammude jaoks vaikeväärtusi.

Pärast esmakordset sidumist peate ootama mõni minut, enne kui pääsete sellele juurde.

Pärast juurutamist saate siduda kohandatud domeeninime.

Pärast kohandatud domeeninime sidumist minge domeeninime juurde, et konfigureerida ühelehelise rakenduse tee ümberkirjutamine, nagu allpool näidatud:

Ülaltoodud pildil olevad reeglid on järgmised. Asendage alloleval esimesel real olev i18n.site seotud domeeninimega.

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

Lisaks konfigureerige vahemälu reeglid, nagu allpool näidatud, ja määrake vahemälu kestuseks üks kuu.

Palun muutke ülaltoodud pildi teises etapis sobiv domeeninimi seotud domeeninimega.

Veebisaidi Juurutamise Optimeerimine Mandri-Hiinas

Kui soovite Mandri-Hiina võrgukeskkonnas paremat juurdepääsetavust saavutada, registreerige esmalt domeeninimi .

Seejärel kasutage Mandri-Hiinas asuvate pilvemüüjate objektisalvestust + CDN Rakendage järgmine sisu out/main/htm .

Üheleheliste rakendustega kohanemiseks saate kasutada servaarvutust. Näiteks saab Baidu Smart Cloud CDN konfigureerida järgmiselt.

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
  // Saate määrata vastuse päise väljundi silumiseks, näiteks out.XXX = 'MSG';
})

Kuna kirje MX ja kirje CNAME ei saa koos eksisteerida, peate samal ajal domeeninimede e-kirju vastu võtma cname_flatten , et viia CNAME tase kirjesse A .

Lisaks, kuna Mandri-Hiina pilvemüüjate välised liiklustasud on suhteliselt kallid, saate kulude optimeerimiseks kasutada Huawei DNS tasuta geograafilist eraldusvõimet ja Cloudflare for SaaS kohandatud domeeninime (nagu allpool näidatud). liikluse ümbersuunamine──Liikluse suunamine Mandri-Hiinas Baidu Cloud CDN , rahvusvaheline liiklus läheb cloudflare .

Need juurutamise optimeerimise lahendused on keerukamad ja neid tutvustatakse tulevikus eraldi peatükkidena.

Üldine Domeeninime Ümbersuunamine

Kui kasutate veebisaidi loomiseks peamise veebisaidina i18n.site , peate tavaliselt konfigureerima pandomeeni ümbersuunamise, st suunama juurdepääsu *.xxx.com -le (kaasa arvatud www.xxx.com ) xxx.com .

Seda nõuet saab täita Alibaba Cloud CDN EdgeScript abil ( ingliskeelne dokument / hiina dokument )

Lisage domeeninimi Alibaba CDN ja suunake *.xxx.com Alibaba Cloud CDN CNAME .

Näiteks ülaltoodud pildil on pandomeeninime ümbersuunamise konfiguratsioon *.i18n.site järgmine:

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

Juurutage Koos Nginxiga

Palun lisage konfiguratsioon, mis sarnaneb järgmisega nginx lõigus server Palun muutke /root/i18n/md/out/main/htm oma projekti out/main/htm teeks:

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;
  }
}

Põhineb github action Pideval Integratsioonil

Oma github action konfigureerimiseks võite viidata järgmisele:

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 }}

Nagu konfiguratsioonist näha, käivitatakse see töövoog, kui vajutate harule main ja harule dist .

Töövoog kasutab dokumendi avaldamiseks haru nimele vastavat konfiguratsioonifaili. Siin kasutatakse avaldamise konfiguratsioonina vastavalt väärtusi .i18n/htm/main.yml ja .i18n/htm/dist.yml .

Soovitame dokumendi väljaandmise protsessis järgida järgmisi parimaid tavasid.

Kui muudatused lükatakse harusse main , käivitatakse dokument koostamiseks ja juurutamiseks eelvaatejaamas (eelvaatejaam on saadaval github page ).

Pärast dokumendi õigsuse kinnitamist eelvaate saidil kood liidetakse ja lükatakse harusse dist ning ametlik ehitamine ja juurutamine läheb võrku.

Loomulikult nõuab ülaltoodud protsessi rakendamine rohkemate konfiguratsioonide kirjutamist.

Töövoo skriptimiseks võite vaadata tegelikku projekti github.com/fcdoc/doc

secrets.I18N_SITE_TOKEN ja secrets.NPM_TOKEN konfiguratsioonis nõuavad salajaste muutujate konfigureerimist koodibaasis.

I18N_SITE_TOKEN i18n.site/token

NPM_TOKEN on konfiguratsioonis oleva paketi npm avaldamisluba npmjs.com looge avaldamislubadega märk (nagu allpool näidatud).

Kataloogi Struktuur

public

Veebisaidi staatilised failid, näiteks favicon.ico , robots.txt jne.

Siin olevaid ikoonifaile saab luua rakendusega realfavicongenerator.net

.i18n

Kataloogi .i18n all on i18n.site konfiguratsioonifailid, tõlkevahemälu jne. Täpsemalt vaadake järgmist peatükki "Konfiguratsioon" .

en

Lähtekeele kataloog, en vastab fromTo .i18n/conf.yml

i18n:
  fromTo:
    en: zh

Palun vaadake tõlke konfiguratsiooni i18