Usambazaji Na Mtandaoni

i18n.site inachukua usanifu wa programu ya ukurasa mmoja , na ukurasa wa kuingilia wa tovuti na maudhui ya tovuti hutumwa kwa kujitegemea.

Baada ya kutekeleza tafsiri iliyo hapo juu, saraka htm na v zitatolewa chini ya saraka md/out/dev .

Hapa, dev inamaanisha kuwa imejengwa kulingana na faili .i18n/htm/dev.yml ya usanidi.

saraka dev :

Saraka htm ni ukurasa wa kuingilia wa tovuti.

Saraka v ina maudhui ya tovuti yenye nambari za toleo.

Onyesho la kukagua la ndani halijali nambari ya toleo na litanakili faili zote kwenye saraka out/dev/v/0.1.0 .

Kwa toleo rasmi, faili zilizobadilishwa zitanakiliwa kwenye saraka ya nambari ya toleo jipya.

Bainisha Faili Ya Usanidi Na -c

Faili tofauti za usanidi zitaunda saraka zinazolingana katika saraka out .

Kwa mfano, .i18n/htm/main.yml itaunda saraka out/main .

dev.yml na main.yml ni usanidi chaguo-msingi.

dev ni ufupisho wa development , inayoonyesha mazingira ya uendelezaji, inayotumiwa kwa uhakiki wa ndani, na pia ni faili ya usanidi chaguo-msingi. ol ni kifupi cha online , kinachoonyesha mazingira ya mtandaoni, ambayo hutumiwa kwa ajili ya kutolewa rasmi Pia ni faili ya usanidi chaguo-msingi wakati wa kutumia vigezo vya mstari wa amri -n hadi npm ili kutolewa.

Unaweza pia kuunda faili zingine za usanidi Tumia --htm_conf kwenye mstari wa amri ili kutaja jina la faili la usanidi la kutumia:

kwa mfano:

i18n.site --htm_conf dist --save

Hapa --save inawakilisha nambari ya toleo la toleo la sasisho.

Chapisha maudhui kwa npmjs.com

Kuchapisha maudhui kwa npmjs.com

npm Ingia & Chapisho

Sakinisha nodejs , ingia na npm login .

Hariri md/.i18n/htm/main.yml na ubadilishe thamani ya md: YOUR_NPM_PACKAGE kama jina lako la kifurushi npm ambalo halijashughulikiwa npmjs.com .

Kisha rekebisha md/.i18n/htm/main.package.json

Endesha i18n.site --npm au i18n.site -n katika saraka md ili kutafsiri na kuchapisha.

Ukitumia mazingira ya ujumuishaji unaoendelea kuchapisha, hakuna haja ya kusakinisha nodejs Nakili tu ruhusa za kuingia na kuchapisha ~/.npmrc kwa mazingira.

Ukibadilisha jina la kifurushi cha v: kati ya main.yml , tafadhali hakikisha kuwa umefuta .i18n/v/main kwanza kisha uchapishe.

Seva Ya Proksi Iliyochapishwa Na npm

Iwapo watumiaji nchini Uchina Bara watakumbana na matatizo ya mtandao na hawawezi kuchapisha vifurushi npm , wanaweza kuweka kigezo cha https_proxy cha mazingira ili kusanidi seva mbadala.

Kwa kudhani kuwa bandari yako ya seva ya wakala ni 7890 , unaweza kuandika:

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

Maudhui Ya Kujisimamia

Ikiwa ungependa kupangisha maudhui yako mwenyewe, kwanza hariri md/.i18n/htm/main.yml na ubadilishe v: //unpkg.com/i18n.site hadi kiambishi awali cha URL yako, kama vile v: //i18n-v.xxx.com .

Ingiza saraka md na uendeshe

i18n.site --htm_conf ol --save

au ufupisho

i18n.site -c ol -s

Kisha, sanidi yaliyomo kwenye saraka md/out/main/v kwa njia ya kiambishi awali cha URL iliyowekwa v: .

Hatimaye, sanidi muda wa kache wa njia inayoishia /.v hadi 1s , vinginevyo maudhui mapya hayawezi kufikiwa mara moja.

Muda wa akiba kwa njia zingine unaweza kuwekwa hadi mwaka mmoja au zaidi ili kupunguza maombi yasiyo ya lazima.

Panga Maudhui Kwa s3

Ili kujipatia maudhui, pamoja na kutumia seva yako mwenyewe, chaguo jingine la CDN ni kutumia S3 +

Unaweza kutumia rclone kuingia kwenye seva S3 , kisha urejelee na urekebishe hati ifuatayo, na unakili mabadiliko ya nyongeza hadi S3 kwa kila toleo.

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

Kumbuka kusanidi CDN ili muda wa kache wa njia inayoishia /.v ni 1s , vinginevyo maudhui mapya hayawezi kufikiwa mara moja.

Kuchapisha Tovuti

Tovuti inaweza kutumwa popote github page na cloudflare page ni chaguo nzuri.

Kwa sababu tovuti hutumia usanifu wa programu ya ukurasa mmoja , kumbuka kuandika upya njia za URL ambazo hazina . hadi index.html .

Ukurasa wa ingizo la tovuti unahitaji kutumwa mara moja tu, na hakuna haja ya kupeleka upya ukurasa wa ingizo la tovuti kwa masasisho ya maudhui yanayofuata.

Tumia Kwenye Ukurasa Wa github

Kwanza bofya hapa ili kuunda github Jina lifuatalo la shirika ni i18n-demo kama mfano.

Kisha unda ghala i18n-demo.github.io chini ya shirika hili (tafadhali badilisha i18n-demo na jina la shirika ulilounda):

Wakati wa kuchapisha maudhui katika makala yaliyotangulia, out/main/htm imetolewa Tafadhali ingiza saraka hii na uendeshe :

ln -s index.html 404.html

Kwa sababu github page haitumii uandikaji upya wa njia ya URL, 404.html inatumika badala yake.

Kisha endesha amri ifuatayo kwenye saraka htm (kumbuka kubadilisha i18n-demo/i18n-demo.github.io.git na anwani yako ya ghala) :

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

Baada ya kusukuma msimbo, subiri utumaji wa github page uendeshwe kwa mafanikio (kama inavyoonyeshwa hapa chini) kabla ya kuufikia.

Kwa ukurasa wa onyesho tafadhali tazama:

https://i18n-demo.github.io

Tumia Kwenye Ukurasa Wa cloudflare

cloudflare page Ikilinganishwa na github page , inatoa njia ya kuandika upya na ni rafiki zaidi kwa China bara na inapendekezwa kutumia.

Usambazaji wa cloudflare page kwa kawaida hutegemea utumaji wa github page hapo juu.

Unda mradi na ufunge ghala i18n-demo.github.io hapo juu.

Mchakato unaonyeshwa kwenye takwimu hapa chini:

Tafadhali bofya Add Account ili kutoa idhini ya kufikia shirika i18n-demo .

Ikiwa umefunga ghala la shirika lingine, unaweza kuhitaji kubofya Add Account mara mbili ili kuidhinisha mara mbili kabla ya shirika jipya kuonyeshwa.

Ifuatayo, chagua ghala i18n-demo.github.io , kisha ubofye Begin setup , na utumie maadili chaguo-msingi kwa hatua zinazofuata.

Baada ya kuifunga kwa mara ya kwanza, unahitaji kusubiri dakika chache kabla ya kuifikia.

Baada ya kupelekwa, unaweza kufunga jina la kikoa maalum.

Baada ya kufunga jina maalum la kikoa, tafadhali nenda kwa jina la kikoa ili kusanidi uandikaji upya wa njia ya programu ya ukurasa mmoja, kama inavyoonyeshwa hapa chini:

Sheria katika picha hapo juu ni kama ifuatavyo. Tafadhali badilisha i18n.site katika mstari wa kwanza hapa chini na jina la kikoa ulilofunga.

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

Kwa kuongeza, tafadhali sanidi sheria za kache, kama inavyoonyeshwa hapa chini, na weka muda wa kache hadi mwezi mmoja.

Tafadhali badilisha jina la kikoa linalolingana katika hatua ya pili kwenye picha hapo juu hadi jina la kikoa ulilofunga.

Kuboresha Uwekaji Wa Tovuti Nchini China Bara

Iwapo ungependa kupata utendakazi bora wa ufikivu katika mazingira ya mtandao ya Uchina Bara, tafadhali sajili jina la kikoa kwanza.

Kisha, tumia hifadhi ya kifaa cha wachuuzi wa wingu nchini + CDN Sambaza maudhui yafuatayo out/main/htm .

Unaweza kutumia kompyuta makali kuandika upya njia ili kukabiliana na programu za ukurasa mmoja Kwa mfano, Baidu Smart Cloud CDN inaweza kusanidiwa kama hii:

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
  // Vijajuu vya majibu vinaweza kuwekwa ili kutoa utatuzi, kama vile out.XXX = 'MSG';
})

Kwa sababu rekodi MX na rekodi CNAME haziwezi kuishi pamoja, ikiwa unataka kupokea barua pepe za jina la kikoa kwa wakati mmoja, unahitaji kushirikiana na cname_flatten hadi kiwango cha CNAME kuwa rekodi A .

Zaidi ya hayo, kwa sababu ada za trafiki za ng'ambo za wachuuzi wa wingu nchini Uchina ni ghali, ikiwa ungependa kuongeza gharama, unaweza kutumia azimio la kijiografia la DNS na jina maalum la Cloudflare for SaaS la kikoa (kama inavyoonyeshwa hapa chini) ili kufanikiwa trafiki diversion──Trafiki routing katika bara China Baidu Cloud CDN , trafiki kimataifa huenda cloudflare .

Suluhu hizi za utumiaji bora ni ngumu zaidi na zitaanzishwa katika sura tofauti katika siku zijazo.

Uelekezaji Upya Wa Jina La Kikoa Cha Kawaida

Ikiwa unatumia i18n.site kutengeneza tovuti kama tovuti yako kuu, kwa kawaida unahitaji kusanidi uelekezaji upya wa kikoa, yaani, kuelekeza ufikiaji wa *.xxx.com (pamoja na www.xxx.com ) hadi xxx.com .

Sharti hili linaweza kufikiwa kwa usaidizi wa Alibaba Cloud CDN EdgeScript ( hati ya Kiingereza / Hati ya Kichina )

Ongeza jina la kikoa katika Alibaba CDN na uelekeze jina la kikoa *.xxx.com hadi CNAME kwenye Alibaba Cloud CDN .

Kwa mfano, usanidi wa uelekezaji upya wa jina la kikoa cha *.i18n.site kwenye picha hapo juu ni kama ifuatavyo.

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

Sambaza Na nginx

Tafadhali ongeza usanidi sawa na ufuatao katika aya ya server ya nginx Tafadhali badilisha /root/i18n/md/out/main/htm hadi njia ya mradi wako 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;
  }
}

Kulingana Na Muunganisho github action Unaoendelea

Unaweza kurejelea yafuatayo ili kusanidi github action yako:

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

Kama inavyoweza kuonekana katika usanidi, mtiririko huu wa kazi huchochewa wakati wa kusukuma hadi tawi main na tawi la dist .

Mtiririko wa kazi utatumia faili ya usanidi inayolingana na jina la tawi ili kuchapisha hati hapa, .i18n/htm/main.yml na .i18n/htm/dist.yml zitatumika kama usanidi wa uchapishaji mtawalia.

Tunapendekeza mbinu bora zifuatazo za mchakato wa kutoa hati:

Mabadiliko yanaposukumwa kwenye tawi main , hati inachochewa kujengwa na kupelekwa kwenye kituo cha onyesho la kukagua (kituo cha onyesho la kukagua kinapatikana github page ).

Baada ya kuthibitisha kwamba hati ni sahihi kwenye tovuti ya hakikisho, msimbo utaunganishwa na kusukumwa kwenye tawi dist , na ujenzi rasmi na upelekaji utaenda mtandaoni.

Bila shaka, kutekeleza mchakato hapo juu unahitaji kuandika usanidi zaidi.

Unaweza kurejelea mradi github.com/fcdoc/doc kwa uandishi wa mtiririko wa kazi.

secrets.I18N_SITE_TOKEN na secrets.NPM_TOKEN katika usanidi zinakuhitaji usanidi vigeu vya siri katika msingi wa msimbo.

I18N_SITE_TOKEN i18n.site/token

NPM_TOKEN ni tokeni ya uchapishaji ya kifurushi cha npm katika npmjs.com .

Muundo Wa Saraka

public

Faili tuli za tovuti, kama vile favicon.ico , robots.txt , nk.

Faili za ikoni hapa zinaweza kutengenezwa na realfavicongenerator.net

.i18n

Chini ya saraka .i18n kuna faili za usanidi, akiba ya tafsiri, n.k. ya i18n.site Tazama sura inayofuata "Usanidi" kwa maelezo.

en

Saraka ya lugha ya asili, inayolingana na en kati ya fromTo kati ya faili .i18n/conf.yml ya usanidi

i18n:
  fromTo:
    en: zh

Tafadhali rejelea usanidi wa tafsiri i18