Gurnama We Onlaýn
i18n.site
bir sahypalyk programma arhitekturasyny kabul edýär we web sahypasynyň giriş sahypasy we web sahypasynyň mazmuny özbaşdak ýerleşdirilýär.
Aboveokardaky terjime işledilenden soň, md/out/dev
katalogyň aşagynda htm
we v
kataloglar dörediler.
Bu ýerde dev
, .i18n/htm/dev.yml
konfigurasiýa faýly esasynda gurlandygyny aňladýar.
dev
katalog :
htm
katalog web sahypasynyň giriş sahypasydyr.
v
katalogda wersiýa belgileri bolan web sahypasynyň mazmuny bar.
Preerli deslapky syn wersiýa belgisi bilen gyzyklanmaýar we ähli faýllary out/dev/v/0.1.0
bukjasyna göçürer.
Resmi taýdan goýberilmegi üçin üýtgedilen faýllar täze wersiýa belgisi katalogyna göçüriler.
-c
Bilen Konfigurasiýa Faýly Görkeziň
Dürli konfigurasiýa faýllary out
katalogda degişli kataloglary döreder.
Mysal üçin, .i18n/htm/main.yml
out/main
katalogy döreder.
dev.yml
we main.yml
deslapky konfigurasiýalardyr.
dev
ýerli ösüş üçin ulanylýan, şeýle hem deslapky konfigurasiýa faýly bolan ösüş gurşawyny görkezýän development
gysgaltmasydyr.
ol
, resmi taýdan goýbermek üçin ulanylýan onlaýn gurşawy -n
online
-iň gysgaldylyşydyr npm
Şeýle hem, beýleki konfigurasiýa faýllaryny döredip bilersiňiz, ulanmak üçin konfigurasiýa faýlyň adyny görkezmek üçin buýruk setirinde --htm_conf
ulanyň.
meselem:
i18n.site --htm_conf dist --save
Bu ýerde --save
täzeleniş wersiýasynyň belgisini görkezýär.
Mazmuny npmjs.com sahypasyna çap ediň
Mazmuny neşir etmek maslahat berilýän deslapky çözgütdir ( “Front-end High Availability ”) npmjs.com
Giriş & Postaz npm
nodejs
guruň, npm login
bilen giriň.
md/.i18n/htm/main.yml
npmjs.com we md:
YOUR_NPM_PACKAGE
bahany öz npm
paketiňiziň ady hökmünde üýtgediň.
Soňra md/.i18n/htm/main.package.json
üýtgediň
Terjime etmek we neşir etmek üçin md
katalogda i18n.site --npm
ýa-da i18n.site -n
işlediň.
Neşir etmek üçin üznüksiz integrasiýa gurşawyny ulanýan bolsaňyz, nodejs
gurnamagyň zerurlygy ýok. Diňe sessiýa açyň we ~/.npmrc
rugsady çap ediň.
Bukjanyň adyny v:
den main.yml
üýtgeden bolsaňyz, ilki .i18n/v/main
pozuň we çap ediň.
Proksi Serwer npm Tarapyndan Neşir Edildi
Hytaýyň materiginde ulanyjylar tor problemalary bilen ýüzbe-ýüz bolup, npm
paket çap edip bilmeseler, proksi serwerini düzmek üçin daşky gurşaw üýtgeýjisini https_proxy
edip bilerler.
Proksi serwer portuňyzyň 7890
bolandygyny göz öňünde tutup, ýazyp bilersiňiz:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Özbaşdak Ýerleşdirilen Mazmun
Mazmuny özbaşdak ýerleşdirmek isleseňiz, ilki md/.i18n/htm/main.yml
redaktirläň we v: //unpkg.com/i18n.site
URL ýaly prefiksine v: //i18n-v.xxx.com
ýaly üýtgediň.
md
bukjany giriziň we işlediň
i18n.site --htm_conf ol --save
ýa-da gysgaltma
i18n.site -c ol -s
Soň bolsa, md/out/main/v
bukjadaky mazmuny v:
-de goýlan URL prefiks ýoluna düzüň.
Netijede, /.v
dan 1s
e çenli gutarýan ýoluň keş keşini düzüň , ýogsam täze çykan mazmuna derrew girip bolmaz.
Gereksiz islegleri azaltmak üçin beýleki ýollar üçin keş keşini bir ýyl ýa-da has köp wagt belläp bolýar.
S3-Iň Mazmuny
Öz-özüňi alyp barmak üçin, öz serweriňizi ulanmakdan başga-da, umumy CDN
wariant S3
+
S3
serwere girmek üçin rclone bilersiňiz, soňra aşakdaky skriptlere serediň we üýtgedip bilersiňiz we her goýberiliş üçin diňe artýan üýtgeşmeleri S3
-e göçürip bilersiňiz.
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/"
CDN
bilen sazlamagy ýatdan çykarmaň, /.v
de gutarýan ýoluň keş keşi 1s
bolar, ýogsam täze çykan mazmuna derrew girip bolmaz.
Web Sahypasyny Çap Et
Web sahypasy islendik ýerde ýerleşdirilip bilner github page we cloudflare page gowy saýlawlar!
Web sahypasy bir sahypalyk programma arhitekturasyny ulanýandygy sebäpli, .
dan index.html
çenli bolmadyk URL ýollaryny täzeden ýazmagy ýatdan çykarmaň.
Web sahypasyna giriş sahypasy diňe bir gezek ýerleşdirilmeli we indiki mazmun täzelenmeleri üçin web sahypasynyň giriş sahypasyny täzeden ulanmagyň zerurlygy ýok.
github Sahypasynda Ýerleşdiriň
Ilki i18n-demo
bir gurama döretmek üçin şu ýere basyň github
Soňra bu guramanyň aşagynda i18n-demo.github.io
ammar dörediň ( i18n-demo
döreden gurama adyňyz bilen çalşyň):
Öňki makalada mazmuny çap edilende out/main/htm
döredildi, bu bukjany giriziň we işlediň :
ln -s index.html 404.html
github page
URL ýoluny täzeden ýazmagy goldamaýandygy sebäpli, ýerine 404.html
ulanylýar.
Soňra htm
bukjada aşakdaky buýrugy işlediň ( i18n-demo/i18n-demo.github.io.git
öz ammar adresiňiz bilen çalyşmagy ýatdan çykarmaň) :
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
Kody basanyňyzdan soň, github page
girmegiň üstünlikli işlemegine garaşyň (aşakda görkezilişi ýaly).
Görkeziş sahypasy üçin serediň:
https://i18n-demo.github.io
Bulutlar Sahypasynda Ýerleşdiriň
github page
bilen deňeşdirilende cloudflare page ýoly täzeden ýazmagy üpjün edýär we materik Hytaý üçin has dostlukly we ulanmak has amatly.
cloudflare page
-yň ýerleşdirilmegi, adatça ýokardaky github page
iň ýerleşdirilmegine esaslanýar.
Taslama dörediň we ýokardaky i18n-demo.github.io
ammary baglaň.
Amal aşakdaky suratda görkezilýär:
i18n-demo
gurama girmek üçin Add Account
basyň.
Başga bir guramanyň ammaryny baglan bolsaňyz, täze gurama görkezilmezden ozal iki gezek ygtyýar bermek üçin Add Account
gezek iki gezek basmaly bolmagyňyz mümkin.
Ondan soň i18n-demo.github.io
ammary saýlaň, soňra Begin setup
e basyň we indiki ädimler üçin deslapky bahalary ulanyň.
Ilkinji gezek baglanyşandan soň, oňa girmezden birnäçe minut garaşmaly.
Göçürilenden soň, ýörite domen adyny baglap bilersiňiz.
Domainörite domen adyny baglanyşdyranyňyzdan soň, aşakda görkezilişi ýaly bir sahypalyk programmanyň ýol täzeden ýazylmagyny düzmek üçin domen adyna gidiň:
Aboveokardaky suratdaky düzgünler aşakdakylardyr: Aşakdaky birinji setirdäki i18n.site
baglanyşdyrýan domen adyňyz bilen çalşyň.
(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")
)
Mundan başga-da, aşakda görkezilişi ýaly keş keşini düzüň we keşiň dowamlylygyny bir aý belläň.
Aboveokardaky suratdaky ikinji ädimdäki domen adyny gabat gelýän domen adyna üýtgediň.
Hytaýyň Materiginde Web Sahypasynyň Ýerleşdirilmegini Optimizirlemek
Hytaýyň materikleriniň tor gurşawynda has oňat elýeterlilik gazanmak isleseňiz, ilki bilen domen adyny bellige alyň .
Soň bolsa, + materiginde bulut satyjylarynyň obýekt saklanyşyny ulanyň CDN
Aşakdaky mazmuny ýerleşdiriň out/main/htm
.
Bir sahypalyk programmalara uýgunlaşmagyň ýoluny täzeden ýazmak üçin gyrasy hasaplamany ulanyp bilersiňiz, Mysal üçin, Baidu Smart Cloud CDN
şeýle düzülip bilner:
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
// Out.XXX = 'MSG' ýaly çykyşy düzetmek üçin jogap sözbaşysyny düzüp bilersiňiz;
})
MX
ýazgy we CNAME
ýazgy bilelikde bolup bilmeýär, şol bir wagtyň özünde domen adynyň e-poçtalaryny almak isleseňiz, CNAME
derejä çenli A
nji derejä çenli skript bilen hyzmatdaşlyk etmeli cname_flatten
Mundan başga-da, Hytaýyň materigindäki bulut satyjylarynyň daşary ýurt tölegleri birneme gymmat bolany üçin, çykdajylary optimizirlemek isleseňiz, Huawei Cloud-yň mugt geografiki DNS we Cloudflare for SaaS adaty domen adyny (aşakda görkezilişi ýaly) ulanyp bilersiňiz! ulag gatnawy - Hytaýyň materiginde ulag marşruty Baidu Cloud CDN
, halkara traffigi cloudflare gidýär.
Bu ýerleşdiriş optimizasiýa çözgütleri has çylşyrymly we geljekde aýratyn bölümlerde hödürlener.
Umumy Domen Adynyň Gönükdirilmegi
Esasy web sahypa hökmünde web sahypasyny döretmek üçin i18n.site
ulanýan bolsaňyz, adatça pan-domen gönükdirmesini sazlamaly, ýagny girişi *.xxx.com
e (şol sanda www.xxx.com
den xxx.com
) gönükdirmeli.
Bu talap Alibaba Cloud CDN
EdgeScript
( Iňlis resminamasy / Hytaý resminamasy ) kömegi bilen gazanylyp bilner.
CDN Cloud -da domen adyny goşuň we domen adyny Alibaba Cloud CDN
-de *.xxx.com
dan CNAME
çenli görkeziň.
Mysal üçin, ýokardaky suratdaky pan-domen *.i18n.site
gönükdirme konfigurasiýasy aşakdaky ýaly:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
nginx Bilen Ýerleşdiriň
Aşakdakylara meňzeş konfigurasiýa goşuň! server
abzasda nginx /root/i18n/md/out/main/htm
öz out/main/htm
ýoluna üýtgediň:
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;
}
}
github action
Üznüksiz Integrasiýa Esaslanýar
github action
yňyzy düzmek üçin aşakdakylara ýüz tutup bilersiňiz:
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 }}
Sazlamadan görnüşi ýaly, bu iş prosesi main
şaha we dist
şaha iteklenende ýüze çykýar.
Iş prosesi resminamany neşir etmek üçin şahamçanyň adyna laýyk gelýän konfigurasiýa faýlyny ulanar, bu ýerde degişlilikde .i18n/htm/main.yml
we .i18n/htm/dist.yml
neşirýat konfigurasiýasy hökmünde ulanylar.
Resminamany çykarmak üçin aşakdaky iň oňat tejribeleri maslahat berýäris:
Üýtgeşmeler main
njy şaha iterilende, resminama deslapky stansiýa (deslapky syn stansiýasy bar github page ) Gurulmagyna we ýerleşdirilmegine sebäp bolýar.
Deslapky syn sahypasynda resminamanyň dogrudygyny tassyklandan soň, kod birleşdiriler we dist
bölüme geçiriler we resmi gurluşyk we ýaýbaňlandyrma onlaýn işe başlar.
Elbetde, ýokardaky prosesi durmuşa geçirmek üçin has köp konfigurasiýa ýazmagy talap edýär.
Hakyky taslama ýüz tutup bilersiňiz github.com/fcdoc/doc
Konfigurasiýada secrets.I18N_SITE_TOKEN
we secrets.NPM_TOKEN
kod bazasynda gizlin üýtgeýänleri düzmegiňizi talap edýär.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
konfigurasiýadaky npm
npmjs.com neşir ediş nyşanydyr.
Katalog Gurluşy
public
Web sahypasynyň statiki faýllary, meselem favicon.ico
, robots.txt
we ş.m.
Bu ýerdäki nyşan faýllary döredilip bilner realfavicongenerator.net
.i18n
.i18n
bukjanyň aşagynda konfigurasiýa faýllary, terjime keşi i18n.site
ş.m. bar. Jikme-jiklikler üçin indiki bölüme "Sazlama" serediň.
en
.i18n/conf.yml
konfigurasiýa faýlyndaky fromTo
-den en
e gabat gelýän çeşme dil katalogy
i18n:
fromTo:
en: zh
Terjimäniň konfigurasiýasyna serediň i18