Go Tsenywa Tirišong Le Inthaneteng

i18n.site e amogela sebopego sa tirišo ya letlakala le tee , gomme letlakala la go tsena la weposaete le diteng tša weposaete di tsenywa tirišong ka go ikemela.

Ka morago ga go sepetša phetolelo ye e lego ka mo godimo, dipuku tša ditšhupetšo htm le v di tla tšweletšwa ka fase ga tšhupetšo md/out/dev .

Mona, dev bolela gore e agilwe go ya ka faele ya peakanyo .i18n/htm/dev.yml .

dev tšhupetšo ya :

The htm directory ke leqephe la ho kena websaeteng.

Tlhahlo ya v e na le diteng tša weposaete tšeo di nago le dinomoro tša phetolelo.

Tebelelopele ya selegae ga e na taba le nomoro ya phetolelo gomme e tla kopiša difaele ka moka go tšhupetšo ya out/dev/v/0.1.0 .

Bakeng sa tokollo ya semmušo, difaele tše di fetotšwego di tla kopišwa go tšhupetšo ya nomoro ya phetolelo ye mpsha.

Laetša Faele Ya Peakanyo Ka -c

Difaele tša peakanyo tše di fapanego di tla hlola dipuku tša go tshwanela ka gare ga tšhupetšo out .

Mohlala, .i18n/htm/main.yml e tla bopa tšhupetšo ya out/main .

dev.yml le main.yml ke dipeakanyo tša go se fetoge.

dev ke khutsofatšo ya development , yeo e laetšago tikologo ya tlhabollo, yeo e šomišwago bakeng sa ponelopele ya selegae, gomme gape ke faele ya peakanyo ya go se fetoge. ol ke khutsofatšo ya online , e laetšago tikologo ya inthanete, yeo e šomišwago bakeng sa go lokollwa semmušo gape ke faele ya peakanyo ya go se fetoge ge o šomiša ditekanyetšo tša mola wa taelo -n go ya go npm go lokolla.

Gape o ka hlama difaele te dingwe ta peakanyo Šomiša --htm_conf mothalong wa taelo go laetša leina la faele ya peakanyo yeo o tlago e šomiša:

Mohlala:

i18n.site --htm_conf dist --save

Mona --save emela nomoro ya phetolelo ya tokollo ya mpshafatšo.

Phatlalatša diteng go npmjs.com

Go phatlalatša diteng go npmjs.com ke tharollo ya go se fetoge ye e kgothaletšwago (bona Front-end High Availability ).

npm Tsena & Poso

Tsenya nodejs , tsena ka npm login .

Edita md/.i18n/htm/main.yml gomme o fetoše boleng bja md: YOUR_NPM_PACKAGE bjalo npmjs.com leina la gago la sephuthelwana npm .

Ebe fetola md/.i18n/htm/main.package.json

Matha i18n.site --npm goba i18n.site -n ka go md tšhupetšo go fetolela le go phatlalatša.

Ge o šomiša tikologo ya kopanyo ye e tšwelago pele go phatlalatša, ga go nyakege gore o tsenye nodejs E no kopiša ditumelelo tša go tsena le tša go phatlalatša ~/.npmrc tikologong.

Ge o fetoša leina la sephuthelwana la v: go main.yml , hle kgonthiša gore o phumola .i18n/v/main pele gomme ka morago o e phatlalatše.

Seva Ya Moemedi E Phatlaladitšwego Ke npm

Ge e ba badiriši ba nageng-kgolo ya China ba kopana le mathata a netweke gomme ba sa kgone go phatlalatša diphuthelwana tše npm , ba ka beakanya phetogo ya tikologo https_proxy go beakanya seva ya moemedi.

Ka go tšea gore boema-kepe bja gago bja seva ya moemedi ke 7890 , o ka ngwala:

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

Diteng Tšeo Di Itshwarelago

Ge o nyaka go itshwara diteng, thoma ka go rulaganya md/.i18n/htm/main.yml gomme o fetoše v: //unpkg.com/i18n.site go hlogo ya gago ya URL, go swana le v: //i18n-v.xxx.com .

Kenya tšhupetšo ya md gomme o kitime

i18n.site --htm_conf ol --save

goba khutsofatšo

i18n.site -c ol -s

Ka morago ga moo, beakanya diteng ka go tšhupetšo md/out/main/v go tsela ya hlogo ya URL yeo e beakantšwego go v: .

Sa mafelelo, beakanya nako ya cache ya tsela yeo e felelago ka /.v go ya go 1s , go sego bjalo diteng tšeo di sa tšwago go lokollwa di ka se fihlelelwe ka pela.

Nako ya cache ya ditsela tše dingwe e ka bewa go ngwaga o tee goba go feta go fokotša dikgopelo tše di sa nyakegego.

Host Diteng Go s3

Go itshwara diteng, go tlaleletša go šomiša seva ya gago, kgetho ye CDN ye e tlwaelegilego ke go šomiša S3 +

O ka šomiša rclone go tsena go seva S3 , ke moka wa lebelela le go fetoša sengwalwa se se latelago, gomme wa kopiša fela diphetogo tša go oketšega go S3 bakeng sa tokollo ye nngwe le ye nngwe.

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

Gopola go beakanya CDN gore nako ya cache ya tsela yeo e felelago ka /.v e be 1s , go sego bjalo diteng tše di sa tšwago go lokollwa di ka se fihlelelwe ka pela.

Phatlalatša Weposaete

Webosaete e ka tsenywa tirišong kae goba kae github page gomme cloudflare page ke dikgetho tše dibotse.

Ka lebaka la gore weposaete e šomiša sebopego sa tirišo ya letlakala le tee , gopola go ngwala gape ditsela tša URL tšeo di se nago . go ya go index.html .

Letlakala la go tsenya weposaete le swanetše go tsenywa tirišong gatee fela, gomme ga go nyakege gore o tsenye letlakala la go tsenya weposaete gape bakeng sa dimpshafatšo tša diteng tše di latelago.

Deploy Ka github Leqepheng La

Pele tobetsa github ho bopa mokhatlo o hlophisitsoeng o latelang ke i18n-demo e le mohlala.

Ebe bopa polokelo i18n-demo.github.io tlas'a mokgatlo ona (ka kōpo nka sebaka sa i18n-demo ka lebitso la mokhatlo o hlophileng):

Ge o phatlalatša diteng tša sengwalwa sa go feta, out/main/htm e tšweleditšwe Hle tsenya tšhupetšo ye gomme o kitime :

ln -s index.html 404.html

Ka lebaka la gore github page ga e thekge go ngwala gape tsela ya URL, 404.html e šomišwa go e na le moo.

Ebe matha taelo e latelang ka htm tšhupetšo (gopola go tšeela i18n-demo/i18n-demo.github.io.git legato ka aterese ya gago ya polokelo) :

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

Ka morago ga go kgorometša khoutu, emela gore go tsenywa tirišong ga github page go šome ka katlego (bjalo ka ge go bontšhitšwe ka mo tlase) pele o ka e fihlelela.

Bakeng sa letlakala la demo hle bona:

https://i18n-demo.github.io

Deploy Ka Leqepheng La cloudflare

cloudflare page e bapetšwa le github page , e fana ka go ngwala gape ga tsela gomme e na le bogwera kudu go naga-kgolo ya China gomme e kgothaletšwa go e diriša.

Go tsenywa tirišong ga cloudflare page gantši go theilwe godimo ga go tsenywa tirišong ga github page ka godimo.

Theha porojeke e ne tlama polokelo i18n-demo.github.io ka holimo.

Tshepedišo e bontšhitšwe seswantšhong se se lego ka mo tlase:

Hle klika Add Account go fa phihlelelo go mokgatlo i18n-demo .

Ge e le gore o tlemile polokelo ya mokgatlo wo mongwe, o ka swanelwa ke go klika Add Account gabedi go dumelela gabedi pele mokgatlo wo mofsa o ka bontšhwa.

Se se latelago, kgetha polokelo i18n-demo.github.io , ke moka o klike Begin setup , gomme o šomiše dikelo tša go se fetoge bakeng sa megato ye e latelago.

Ka morago ga go tlama ka lekga la mathomo, o swanetše go leta metsotso e sego kae pele o ka e fihlelela.

Ka morago ga go tsenywa tirišong, o ka tlama leina la domain ya tlwaelo.

Ka morago ga go tlama leina la domain la tlwaelo, hle eya go leina la domain go beakanya go ngwala gape ga tsela ya tirišo ya letlakala le tee, bjalo ka ge go bontšhitšwe ka mo tlase:

Melawana yeo e lego seswantšhong se se lego ka mo godimo ke ye e latelago Hle tšea legato i18n.site mothalong wa mathomo wo o lego ka mo tlase ka leina la domain leo o le tlemilwego.

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

Go tlaleletša, hle beakanya melawana ya cache, bjalo ka ge go bontšhitšwe ka mo tlase, gomme o beakantše nako ya cache go kgwedi e tee.

Hle fetola go swana ga leina la domain mo mogatong wa bobedi seswantšhong sa ka godimo go leina la domain leo o le tlemilego.

Optimizing Websaeteng Deployment Ka Naha-Kgolo Ya China

Ge e ba o nyaka go hwetša tshepedišo e kaone ya phihlelelo tikologong ya netweke ya naga-kgolo ya China, hle ngwadiša leina la domain pele.

Ka morago ga moo, diriša polokelo ya dilo ya barekiši ba leru nageng-kgolo ya + CDN Deploy diteng tše di latelago out/main/htm .

O ka šomiša khomphutha ya bokagodimo go ngwala gape tsela ya go tlwaela dikgopelo tša letlakala le tee Go fa mohlala, Baidu Smart Cloud CDN e ka beakanywa ka tsela ye:

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
  // O ka beakanya hlogo ya karabo go lokiša diphošo tša ditšweletšwa, go swana le out.XXX = 'MSG';
})

Ka lebaka la gore rekoto MX le rekoto CNAME di ka se phele mmogo, ge o nyaka go amogela di CNAME imeile tša leina la domain ka nako e tee, o swanetše go dirišana le A sa cname_flatten

Go tlaleletša, ka lebaka la gore ditefišo tša sephethephethe tša ka mošola wa mawatle tša barekiši ba leru nageng-kgolo ya China di bitša kudu, ge e ba o nyaka go dira gore ditshenyagalelo di šome gabotse, o ka diriša DNS ya mahala ya thutafase ya Huawei Cloud le Cloudflare for SaaS 's custom domain name (bjalo ka ge go bontšhitšwe ka mo tlase) go fihlelela go fapošwa ga sephethephethe──Tsela ya sephethephethe nagengkgolo ya China Baidu Cloud CDN , sephethephethe sa boditšhabatšhaba se ya cloudflare .

Ditharollo tše tša go dira gore go tsenywa tirišong gabotse di raragane kudu gomme di tla tsebagatšwa dikgaolong tše di aroganego nakong ye e tlago.

Generic Domain Name Lebitso Redirection

Ge o šomiša i18n.site go tšweletša weposaete bjalo ka weposaete ya gago ye kgolo, gantši o swanetše go beakanya go lebiša lefsa ga pan-domain, ke gore, go lebiša phihlelelo go *.xxx.com (go akaretšwa www.xxx.com ) go xxx.com .

Tlhokego ye e ka fihlelelwa ka thušo ya Alibaba Cloud CDN EdgeScript ( tokomane ya Seisemane / tokomane ya Setšhaena ) .

Oketša leina la domain ka go Alibaba CDN gomme o šupe leina la domain *.xxx.com go ya go CNAME ka go Alibaba Cloud CDN .

Ka mohlala, peakanyo ya go lebiša lefsa leina la pan-domain ya *.i18n.site seswantšhong se se lego ka mo godimo e ka tsela ye e latelago:

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

Deploy Ka nginx

Hle oketša peakanyo ye e swanago le ye /root/i18n/md/out/main/htm latelago mo temaneng ya server ya nginx 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;
  }
}

E Theilwe Godimo Ga github action Kopanyo Ye E Tšwelago Pele

O ka lebelela tše di latelago go beakanya github action ya gago :

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

Bjalo ka ge go ka bonwa ka go peakanyo, tshepedišo ye ya mošomo e hlohleletšwa ge o kgoromeletšwa go lekala la main le lekaleng dist .

Tshepetšo ya mošomo e tla šomiša faele ya peakanyo ye e sepelelanago le leina la lekala go phatlalatša tokumente Mo, .i18n/htm/main.yml le .i18n/htm/dist.yml di tla šomišwa bjalo ka peakanyo ya go phatlalatša ka go latelelana.

Re kgothaletša mekgwa ye mekaone ye e latelago ya tshepedišo ya go lokolla ditokomane:

Ge diphetogo di kgorometšwa go lekala la main , tokumente e hlohleletšwa go agwa le go tsenywa tirišong go seteišene sa ponelopele (seteišene sa ponelopele se a hwetšagala github page ).

Ka morago ga go tiišetša gore tokomane e nepagetše lefelong la ponelopele, khoutu e tla kopanywa gomme ya kgorometšwa go lekala la dist , gomme go aga semmušo le go tsenywa tirišong go tla tsena inthaneteng.

Ke nnete, go phethagatša tshepedišo ye e lego ka mo godimo go nyaka go ngwala dipeakanyo tše ntši.

O ka lebelela porojeke ya github.com/fcdoc/doc bakeng sa go ngwala ga tshepedišo ya mošomo.

secrets.I18N_SITE_TOKEN le secrets.NPM_TOKEN ka peakanyo di nyaka gore o beakanye diphetogo tša sephiri motheong wa khoutu.

i18n.site/token I18N_SITE_TOKEN Get.

NPM_TOKEN ke letshwao la go phatlalatša la sephuthelwana npm ka go peakanyo gomme o npmjs.com leswao leo le nago le ditumelelo tša go phatlalatša (bjalo ka ge go bontšhitšwe ka mo tlase).

Sebopego Sa Tšhupamabaka

public

Difaele tša go se fetoge tša weposaete, tše bjalo ka favicon.ico , robots.txt , bjalobjalo.

Difaele tša leswao mo di ka tšweletšwa ka realfavicongenerator.net

.i18n

Ka tlase ga .i18n directory ke difaele tša peakanyo, cache ya phetolelo, bjalobjalo ya i18n.site Bona kgaolo ye e latelago ya "Peakanyo" bakeng sa dintlha.

en

Mohlodi polelo directory, e lumellanang le en ya fromTo ka .i18n/conf.yml peakanyo faele

i18n:
  fromTo:
    en: zh

Hle lebelela peakanyo ya phetolelo i18