Ku Tirhisiwa Na Ku Tirhisiwa Eka Inthanete

i18n.site yi amukela xivumbeko xa xitirhisiwa xa pheji yin’we , naswona tluka ro nghena eka webusayiti na nhundzu ya webusayiti swi tirhisiwa hi ku tiyimela.

Endzhaku ko fambisa vuhundzuluxeri lebyi nga laha henhla, tidayirekitara htm na v ti ta endliwa ehansi ka tidayirekitara md/out/dev .

Laha, dev swi vula leswaku yi akiwile hi ku ya hi fayili .i18n/htm/dev.yml ya vuhlanganisi.

dev xikombo xa :

Xikombo xa htm i tluka ro nghena eka webusayiti.

Xikombo xa v xi na swilo swa webusayiti leswi nga na tinomboro ta vuhundzuluxeri.

Local preview a yi na mhaka na nomboro ya version naswona yi ta kopa tifayela hinkwato eka out/dev/v/0.1.0 directory.

Ku humesiwa ximfumo, tifayela leti cinciweke ti ta kopiwa eka xikombo xa tinomboro ta vuhundzuluxeri lebyintshwa.

Boxa Fayili Ya Vuhlanganisi Hi -c

Tifayili to hambana ta vuhlanganisi ti ta tumbuluxa tidayirekitara leti fambelanaka eka out directory.

Xikombiso, .i18n/htm/main.yml yi ta tumbuluxa xikombo xa out/main .

dev.yml na main.yml i swivumbeko swa xiviri.

dev i xifunengeto xa development , lexi kombisaka ndhawu ya nhluvukiso, lexi tirhisiwaka eka ku langutiwa ka laha kaya, naswona nakambe i fayili ya vukorhokeri bya xiviri. ol i xifunengeto xa online , lexi kombisaka ndhawu ya inthanete, leyi tirhisiwaka ku humesiwa ximfumo Nakambe i fayili ya vukorhokeri bya ntolovelo loko ku tirhisiwa tipharamitha ta layini ya swileriso -n ku ya eka npm ku humesa.

U nga ha tlhela u tumbuluxa tifayela tin’wana ta vuhlanganisi Tirhisa --htm_conf eka layini ya swileriso ku boxa vito ra fayili ya vuhlanganisi leyi u nga ta yi tirhisa:

Xikombiso:

i18n.site --htm_conf dist --save

Laha --save yi yimela nomboro ya vuhundzuluxeri bya nkandziyiso wa mpfuxeto.

Kandziyisa swilo eka npmjs.com

Ku kandziyisa swilo eka npmjs.com i xitshunxo xa xiviri lexi ringanyetiweke (vona Ku kumeka ka le henhla ka le mahlweni ).

npm Nghena & Post

Nghenisa nodejs , nghena hi npm login .

Hlela md/.i18n/htm/main.yml ivi u cinca nkoka wa md: YOUR_NPM_PACKAGE tanihi vito ra wena ra phasela npm leri nga riki na munhu eka npmjs.com

Kutani cinca md/.i18n/htm/main.package.json

Tirhisa i18n.site --npm kumbe i18n.site -n eka md directory ku hundzuluxela na ku kandziyisa.

Loko u tirhisa ndhawu ya nhlanganelo lowu yaka emahlweni ku kandziyisa, a swi bohi ku nghenisa nodejs Kopa ntsena mpfumelelo wo nghena na ku kandziyisa ~/.npmrc eka ndhawu.

Loko u cinca vito ra phasela ra v: eka main.yml , hi kombela u tiyiseka leswaku u rhanga hi ku susa .i18n/v/main ivi u yi kandziyisa.

Seva Ya Vuyimeri Leyi Kandziyisiweke Hi npm

Loko vatirhisi va le tikweni-nkulu ra China va hlangana na swiphiqo swa netiweke naswona va nga swi koti ku kandziyisa tiphasela ta npm , va nga veka xihlawulekisi xa mbango https_proxy ku lulamisa sevha ya vuyimeri.

Hi ku ehleketa leswaku port ya wena ya sevha ya vuyimeri i 7890 , u nga tsala:

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

Swilo Leswi Tiyimeleke

Loko u lava ku tikhoma nhundzu, rhanga hi ku hlela md/.i18n/htm/main.yml ivi u cinca v: //unpkg.com/i18n.site eka xirhangi xa wena xa URL, ku fana na v: //i18n-v.xxx.com .

Nghenisa eka md directory ivi u tsutsuma

i18n.site --htm_conf ol --save

kumbe xifunengeto

i18n.site -c ol -s

Kutani, lulamisa leswi nga eka xikombo md/out/main/v eka ndlela ya xirhangi xa URL leyi vekiweke eka v: .

Eku heteleleni, lulamisa nkarhi wa cache wa ndlela leyi helelaka hi /.v ku ya eka 1s , handle ka sweswo nhundzu leyintshwa leyi humesiweke a yi nge fikeleleki hi ku hatlisa.

Nkarhi wa cache wa tindlela tin’wana wu nga vekiwa eka lembe rin’we kumbe ku tlula ku hunguta swikombelo leswi nga lavekiki.

Host Content Eka s3

Ku tikhoma swilo, ku engetela eka ku tirhisa sevha ya wena, ndlela yin’wana leyi CDN i ku tirhisa S3 +

U nga tirhisa rclone ku nghena eka sevha ya S3 , kutani u languta no cinca tsalwa leri landzelaka, naswona u kopa ntsena ku cinca loku engetelekeke eka S3 eka nkandziyiso wun’wana na wun’wana.

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

Tsundzuka ku lulamisa CDN leswaku nkarhi wa cache wa ndlela leyi helelaka hi /.v wu va 1s , handle ka sweswo nhundzu leyintshwa leyi humesiweke a yi nge fikeleleki hi ku hatlisa.

Ku Kandziyisa Webusayiti

Website yi nga tirhisiwa kun'wana na kun'wana github page naswona cloudflare page i swihlawulekisi leswinene.

Hikuva webusayiti yi tirhisa xivumbeko xa xitirhisiwa xa tluka rin’we , tsundzuka ku tsala nakambe tindlela ta URL leti nga riki na . ku ya eka index.html .

Tluka ro nghena eka webusayiti ri lava ku tirhisiwa kan’we ntsena, naswona a ku na xilaveko xo tlhela u tirhisa tluka ro nghena eka webusayiti eka ku pfuxetiwa ka nhundzu loku landzelaka.

Ku Hangalasa Eka Pheji Ya github

Xo sungula tinya github ku tumbuluxa nhlangano i18n-demo

Kutani endla warehouse i18n-demo.github.io ehansi ka nhlangano lowu (hi kombela u siva i18n-demo hi vito ra nhlangano leri u ri tumbuluxeke):

Loko u kandziyisa leswi nga endzeni eka xihloko lexi hundzeke, out/main/htm yi endliwile Hi kombela u nghenisa xikombo lexi ivi u tsutsuma :

ln -s index.html 404.html

Hikuva github page a yi seketeli ku tsariwa nakambe ka ndlela ya URL, 404.html yi tirhisiwa ematshan’wini ya sweswo.

Kutani tirhisa xileriso lexi landzelaka eka htm directory (tsundzuka ku siva i18n-demo/i18n-demo.github.io.git hi adirese ya wena ya vuhlayiselo) :

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

Endzhaku ko susumeta khodi, yimela ku tirhisiwa ka github page ku tirha hi ndlela leyi humelelaka (hilaha swi kombisiweke hakona laha hansi) u nga si yi fikelela.

Ku kuma pheji ya demo hi kombela u vona:

https://i18n-demo.github.io

Ku Hangalasa Eka Tluka Ra cloudflare

cloudflare page github page

Ku tirhisiwa ka cloudflare page hi ntolovelo ku sekeriwe eka ku tirhisiwa ka github page laha henhla.

Endla phurojeke u boha i18n-demo.github.io warehouse leyi nga laha henhla.

Endlelo ri kombisiwile eka xifaniso lexi nga laha hansi:

Hi kombela u tikhoma Add Account ku nyika mfikelelo eka nhlangano i18n-demo .

Loko u bohile ndhawu yo hlayisela swilo ya nhlangano wun’wana, u nga ha lava ku tikhoma Add Account kambirhi ku pfumelela kambirhi nhlangano lowuntshwa wu nga si kombisiwa.

Endzhaku ka sweswo, hlawula warehouse i18n-demo.github.io , kutani u tikhoma Begin setup , kutani u tirhisa mimpimo ya ntolovelo eka magoza lama landzelaka.

Endzhaku ko boha ro sungula, u fanele u rindza timinete ti nga ri tingani u nga si yi fikelela.

Endzhaku ko tirhisiwa, u nga boha vito ra domain ra ntolovelo.

Endzhaku ko boha vito ra domain ra ntolovelo, hi kombela u ya eka vito ra domain ku lulamisa ku tsariwa nakambe ka ndlela ya xitirhisiwa xa tluka rin’we, tanihilaha swi kombisiweke hakona laha hansi:

Milawu leyi nga eka xifaniso lexi nga laha henhla hi leyi landzelaka Hi kombela u siva i18n.site eka layini yo sungula laha hansi hi vito ra domain leri u ri boheke.

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

Ku engetela kwalaho, hi kombela u lulamisa milawu ya cache, tanihilaha swi kombisiweke hakona laha hansi, naswona u veka nkarhi wa cache eka n’hweti yin’we.

Hi kombela u cinca ku fambelana ka vito ra domain eka goza ra vumbirhi eka xifaniso lexi nga laha henhla eka vito ra domain leri u ri boheke.

Ku Antswisa Ku Tirhisiwa Ka Webusayiti Etikweni-Nkulu Ra China

Loko u lava ku kuma matirhelo yo antswa ya ku fikelela eka ndhawu ya netiweke ya tiko-nkulu ra China, hi kombela u tsarisa vito ra domain ku sungula.

Kutani, tirhisa vuhlayiselo bya swilo swa vaxavisi va le mapapa etikweni-nkulu ra + CDN Deploy the following content out/main/htm .

U nga tirhisa khomphyuta ya le tlhelo ku tsala nakambe ndlela ku pfumelelana na switirhisiwa swa pheji yin’we Xikombiso, Baidu Smart Cloud CDN yi nga lulamisiwa hi ndlela leyi:

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
  // Tinhlokomhaka ta nhlamulo ti nga vekiwa ku lulamisa vuhumelerisi, ku fana na out.XXX = 'MSG';
})

Hikuva rhekhodo MX na rhekhodo CNAME a swi nge hanyi swin’we, loko CNAME lava ku amukela ti-imeyili ta mavito ya domain hi nkarhi wun’we, u fanele ku tirhisana na A cname_flatten

Ku engetela kwalaho, hikuva swibalo swa le matikweni ya le handle swa vaxavisi va le mapapa etikweni-nkulu ra China swa durha swinene, loko u lava ku antswisa swiendleko, u nga tirhisa xiboho xa mahala xa ndhawu xa Huawei DNS na Cloudflare for SaaS vito ra domain ra ntolovelo (hilaha swi kombisiweke hakona laha hansi) ku fikelela ku hambukisiwa ka mimovha──Ku fambisiwa ka mimovha etikweni-nkulu ra China Baidu Cloud CDN , vutleketli bya matiko ya misava byi cloudflare .

Switshuxo leswi swa ku antswisa ku tirhisiwa swi rharhanganile swinene naswona swi ta nghenisiwa eka tindzima to hambana enkarhini lowu taka.

Ku Kongomisiwa Nakambe Ka Vito Ra Domain Ra Xivumbeko Xa Le Henhla

Loko u tirhisa i18n.site ku tumbuluxa webusayiti tanihi webusayiti ya wena leyikulu, hi ntolovelo u fanele ku lulamisa ku kongomisiwa nakambe ka pan-domain, hi leswaku, ku kongomisa mfikelelo eka *.xxx.com (ku katsa na www.xxx.com ) ku ya eka xxx.com .

Xilaveko lexi xi nga fikeleriwa hi ku pfuniwa hi Alibaba Cloud CDN EdgeScript ( Tsalwa ra Xinghezi / Tsalwa ra Xichayina ) .

Engetelani vito ra domain eka Alibaba CDN naswona u kombetela vito ra domain *.xxx.com ku ya eka CNAME eka Alibaba Cloud CDN .

Xikombiso, xivumbeko xa ku kongomisiwa nakambe ka vito ra pan-domain xa *.i18n.site eka xifaniso lexi nga laha henhla xi le ka xiyimo lexi landzelaka:

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

Ku Hangalasa Hi nginx

Hi kombela u engetela xivumbeko lexi fanaka na lexi landzelaka eka ndzimana ya server ya nginx Hi kombela u cinca /root/i18n/md/out/main/htm eka ndlela ya phurojeke ya wena 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;
  }
}

Hi Ku Ya Hi github action Ku Hlanganisiwa Loku Yaka Emahlweni

U nga languta eka leswi landzelaka ku lulamisa github action ya wena :

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

Hilaha swi nga voniwaka hakona eka xivumbeko, ku famba loku ka ntirho ku hlohloteriwa loko ku susumetiwa eka rhavi ra main na rhavi dist .

Ntshikelelo wa ntirho wu ta tirhisa fayili ya vukorhokeri leyi fambelanaka na vito ra rhavi ku kandziyisa tsalwa Laha, .i18n/htm/main.yml na .i18n/htm/dist.yml swi ta tirhisiwa tanihi vukorhokeri byo kandziyisa hi ku landzelelana.

Hi ringanyeta maendlelo lama landzelaka lamanene eka endlelo ro humesa matsalwa:

Loko ku cinca ku susumetiwa eka rhavi ra main , tsalwa ri hlohloteriwa ku akiwa no rhumeriwa eka xitichi xa ku languta ka ha ri emahlweni (xitichi xo languta ka ha ri emahlweni xa kumeka github page ).

Endzhaku ko tiyisisa leswaku tsalwa ri lulamile eka sayiti ya xikombiso xa le mahlweni, khodi yi ta hlanganisiwa no susumetiwa eka rhavi ra dist , naswona ku aka na ku tirhisiwa ka ximfumo ku ta nghena eka inthanete.

I ntiyiso leswaku ku tirhisa endlelo leri nga laha henhla swi lava ku tsala swivumbeko swo tala.

U nga languta eka phurojeke ya xiviri github.com/fcdoc/doc

secrets.I18N_SITE_TOKEN na secrets.NPM_TOKEN eka vukorhokeri swi lava leswaku u lulamisa swilo leswi cinca-cincaka swa xihundla eka xisekelo xa khodi.

i18n.site/token I18N_SITE_TOKEN Get.

NPM_TOKEN i xikombiso xo kandziyisa xa phakeji npm eka vukorhokeri bya npmjs.com

Xivumbeko Xa Xikombo

public

Tifayili leti nga cinciki ta webusayiti, to tanihi favicon.ico , robots.txt , na swin’wana.

Tifayili ta swifaniso laha ti nga endliwa hi realfavicongenerator.net

.i18n

Ehansi ka .i18n directory ku na tifayela ta vukorhokeri, cache ya vuhundzuluxi, na swin'wana swa i18n.site Vona ndzima leyi landzelaka "Configuration" ku kuma vuxokoxoko.

en

Xikombo xa ririmi ra xihlovo, lexi fambelanaka na en wa fromTo eka .i18n/conf.yml wa fayili ya vuhlanganisi

i18n:
  fromTo:
    en: zh

Hi kombela u languta eka xivumbeko xa vuhundzuluxeri i18