Dabeşkirin Û Serhêl
i18n.site
mîmariya serîlêdana yek-rûpelî qebûl dike, û rûpela têketina malperê û naveroka malperê serbixwe têne bicîh kirin.
Piştî xebitandina wergera jorîn, pelrêça htm
û v
dê di bin pelrêça md/out/dev
de bêne çêkirin.
Li vir, dev
tê vê wateyê ku ew li ser bingeha pelê mîhengê .i18n/htm/dev.yml
hatî çêkirin.
dev
directory :
Pelrêça htm
rûpela têketina malperê ye.
Di pelrêça v
de naveroka malperê bi hejmarên guhertoyan heye.
Pêşniyara herêmî bala xwe nade jimareya guhertoyê û dê hemî pelan li pelrêça out/dev/v/0.1.0
kopî bike.
Ji bo serbestberdana fermî, pelên guherî dê li pelrêça jimareya nû ya guhertoyê werin kopî kirin.
Pelê Veavakirinê Bi -c
Diyar Bikin
Pelên veavakirinê yên cihêreng dê di pelrêça out
de pelrêçên têkildar biafirînin.
Mînakî, .i18n/htm/main.yml
dê pelrêça out/main
biafirîne.
dev.yml
û main.yml
mîhengên xwerû ne.
dev
kurteya development
-ê ye, ku hawîrdora pêşkeftinê nîşan dide, ku ji bo pêşdîtina herêmî tê bikar anîn, û di heman demê de pelê veavakirina xwerû ye.
ol
kurtenivîsa online
-ê ye, ku hawîrdora serhêl nîşan dide, ku ji bo npm
fermî tê bikar anîn Ew di heman demê de pelê veavakirina xwerû ye dema ku ji bo berdanê parametreyên rêzika fermanê -n
bikar tîne.
Her weha hûn dikarin pelên mîhengê yên din jî biafirînin ku li ser rêzika fermanê --htm_conf
bikar bînin da ku navê pelê veavakirinê diyar bikin:
bo nimûne:
i18n.site --htm_conf dist --save
Li vir --save
jimareya guhertoya berdana nûvekirinê nîşan dide.
Naveroka npmjs.com biweşînin
Weşandina naverokê ji bo npmjs.com
Têkeve & npm
nodejs
saz bikin, bi npm login
re têkevinê.
md/.i18n/htm/main.yml
biguherînin û nirxa md:
YOUR_NPM_PACKAGE
biguherînin npmjs.com navê pakêta xweya npm
.
Piştre md/.i18n/htm/main.package.json
biguherînin
Di pelrêça md
de i18n.site --npm
an i18n.site -n
bimeşînin ku wergerînin û çap bikin.
Heke hûn ji bo weşandinê jîngehek entegrasyonê ya domdar bikar tînin, hewcedarî bi sazkirina nodejs
tune. Tenê destûrên têketin û weşanê ~/.npmrc
li hawîrdorê kopî bikin.
Ger hûn navê pakêtê ya v:
di main.yml
de biguherînin, ji kerema xwe pêşî .i18n/v/main
jêbirin û paşê biweşînin.
Pêşkêşkara Proxy Ji Hêla npm Ve Hatî Weşandin
Ger bikarhêner li axa Chinaînê bi pirsgirêkên torê re rû bi rû bimînin û nikaribin npm
pakêtan biweşînin, ew dikarin guhêrbara jîngehê https_proxy
saz bikin da ku servera proxy mîheng bikin.
Bihesibînin ku porta servera weya proxy 7890
ye, hûn dikarin binivîsin:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Naveroka Xweseriya Xweser
Heke hûn dixwazin naverokê bixwe-mêvandar bikin, pêşî md/.i18n/htm/main.yml
biguherînin û v: //unpkg.com/i18n.site
li pêşgira URL-ya xwe biguherînin, wek v: //i18n-v.xxx.com
.
Têkeve pelrêça md
û birevin
i18n.site --htm_conf ol --save
an kurtkirin
i18n.site -c ol -s
Dûv re, naverokê di pelrêça md/out/main/v
de bi rêça pêşgiriya URL-ê ya ku di v:
de hatî destnîşan kirin mîheng bikin.
Di dawiyê de, dema cache ya riya ku bi /.v
ber 1s
diqede mîheng bikin , wekî din naveroka ku nû derketiye tavilê nayê gihîştin.
Dema cache ji bo rêyên din dikare salek an bêtir were danîn da ku daxwazên nehewce kêm bike.
Naveroka Mêvandarê s3
Ji bo naveroka xwe-mêvandarê, ji bilî karanîna servera xwe, vebijarkek din a hevpar ev e ku CDN
S3
bikar bînin +
S3
S3
rclone
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/"
Bînin bîra xwe ku hûn CDN
mîheng bikin da ku dema cache ya riya ku bi /.v
diqede 1s
be, wekî din naveroka ku nû hatî berdan tavilê neyê gihîştin.
Malpera Weşandin
Malper dikare li her deverê were bicîh kirin github page û cloudflare page vebijarkên baş in.
Ji ber ku malper mîmariya serîlêdanê ya yek-rûpel bikar tîne, ji bîr mekin ku hûn rêyên URL-ê yên ku .
index.html
nagirin ji nû ve binivîsin.
Pêdivî ye ku rûpela têketina malperê tenê carekê were saz kirin, û ji bo nûvekirinên naverokê yên paşîn ne hewce ye ku rûpela têketina malperê ji nû ve were saz kirin.
Li Ser Rûpela github Bicîh Bikin
Pêşî li github bikirtînin da ku rêxistinek çêbikin Navê rêxistina jêrîn wekî nimûne i18n-demo
e.
Dûv re di binê vê rêxistinê de depoya i18n-demo.github.io
biafirînin (ji kerema xwe i18n-demo
bi navê rêxistina ku we afirandiye biguhezînin):
Dema ku naveroka di gotara berê de hate weşandin, out/main/htm
hate çêkirin :
ln -s index.html 404.html
Ji ber ku github page
ji nû ve nivîsandina riya URL-ê piştgirî nake, li şûna wê 404.html
tê bikar anîn.
Dûv re emrê jêrîn di pelrêça htm
de bimeşînin (ji bîr mekin ku i18n-demo/i18n-demo.github.io.git
bi navnîşana depoya xweya xwe veguherînin) :
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
Piştî pêxistina kodê, li bendê bin ku bicîhkirina github page
bi serfirazî bimeşe (wek ku li jêr tê xuyang kirin) berî ku hûn bigihîjin wê.
Ji bo rûpela demo ji kerema xwe bibînin:
https://i18n-demo.github.io
Li Ser Rûpela cloudflare Bicîh Bikin
Li gorî github page
cloudflare page ew ji nû ve nivîsandina rê peyda dike û ji axa Chinaînê re hevaltir e û karanîna wê bêtir tê pêşniyar kirin.
Bicihkirina cloudflare page
bi gelemperî li ser bicîhkirina github page
li jor bingeh e.
Projeyek biafirînin û i18n-demo.github.io
wargeha li jor ve girêdin.
Pêvajo di wêneya jêrîn de tê nîşandan:
Ji kerema xwe Add Account
bikirtînin da ku rê bidin rêxistina i18n-demo
.
Ger we embara saziyek din ve girêdaye, dibe ku hûn hewce bike ku du caran Add Account
bikirtînin da ku du caran destûr bidin berî ku rêxistina nû were xuyang kirin.
Dûv re, wargeha i18n-demo.github.io
hilbijêrin, dûv re Begin setup
bikirtînin, û ji bo gavên paşîn nirxên xwerû bikar bînin.
Piştî girêdana ji bo cara yekem, hûn hewce ne ku çend hûrdeman bisekinin berî ku hûn bigihîjin wê.
Piştî bicîhkirinê, hûn dikarin navek domainek xwerû girêdin.
Piştî girêdana navê domaina xwerû, ji kerema xwe biçin nav navê domainê da ku rêça nûnivîsandina serîlêdana yek-rûpelê mîheng bikin, wekî ku li jêr tê xuyang kirin:
Rêzikên di wêneya jorîn de i18n.site
ne.
(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")
)
Wekî din, ji kerema xwe qaîdeyên cache-ê mîheng bikin, wekî ku li jêr tê xuyang kirin, û dirêjahiya cache-ê li mehekê destnîşan bikin.
Ji kerema xwe navê domainê ku di gava duyemîn de di wêneya jorîn de lihevhatî ye biguherîne navê domaina ku we girêdaye.
Optimîzekirina Bicîhkirina Malperê Li Axa Chinaînê
Ger hûn dixwazin di hawîrdora torê ya axa Chinaînê de performansa gihîştina çêtir bistînin, ji kerema xwe pêşî navek domainê tomar bikin .
Dûv re, hilanîna objeya firoşkarên ewr li axa + bikar bînin CDN
Naveroka jêrîn out/main/htm
bicîh bikin.
Hûn dikarin hesabkirina qerax bikar bînin da ku rê li ber sepanên yek-rûpelê ji nû ve binivîsînin Mînakî, Baidu Smart Cloud CDN
dikare bi vî rengî were mîheng kirin:
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
// Tu dikarî sernivîsa bersivê saz bikî da ku encam derbikeve, wek out.XXX = 'MSG';
})
Ji ber ku tomar MX
û tomar CNAME
nikarin bi hev re bijîn, heke hûn dixwazin e-nameyên navên domainê di heman demê de werbigirin, hûn hewce cname_flatten ku bi skrîpta asta CNAME
A
re hevkariyê bikin.
Wekî din, ji ber ku lêçûnên seyrûsefera li derveyî welat ên firoşkarên ewr ên li ser axa Chinaînê biha ne, heke hûn dixwazin lêçûnên xweştir bikin, hûn dikarin DNS erdnîgarî ya belaş a Huawei Cloud û navê domaina xwerû ya Cloudflare for SaaS bikar bînin (wek ku li jêr tê xuyang kirin). veguheztina trafîkê──Rêvekirina trafîkê li axa Chinaînê Baidu Cloud CDN
, seyrûsefera navneteweyî diçe cloudflare .
Van çareseriyên xweşbînkirina bicîhkirinê tevlihevtir in û dê di pêşerojê de di beşên cihê de bêne destnîşan kirin.
Beralîkirina Navê Domainê Ya Gelemperî
Heke hûn i18n.site
bikar tînin da ku malperek wekî malpera xweya sereke çêbikin, hûn bi gelemperî hewce ne ku hûn beralîkirina pan-domain mîheng bikin, ango, gihîştina *.xxx.com
(tevî www.xxx.com
) beralî xxx.com
bikin.
Ev hewcedarî dikare bi alîkariya Alibaba Cloud CDN
EdgeScript
( belgeya Îngilîzî / Belgeya Çînî ) pêk were
Navê domainê li Alibaba CDN zêde bikin û di Alibaba Cloud CDN
de navê domainê *.xxx.com
heta CNAME
destnîşan bikin.
Mînakî, veavakirina beralîkirina navê pan-domainê ya *.i18n.site
di wêneya jorîn de wiha ye:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Bi nginx Re Bicîh Bikin
Ji kerema xwe veavakirinek mîna ya jêrîn di paragrafa server
ya nginx de zêde bikin Ji kerema xwe /root/i18n/md/out/main/htm
biguherînin riya projeya xwe 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;
}
}
Li Ser Bingeha github action
Yekbûna Domdar
Ji bo mîhengkirina github action
ya xwe hûn dikarin van jêrîn binihêrin:
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 }}
Wekî ku di veavakirinê de tê dîtin, dema ku berbi şaxê main
û şaxê dist
ve tê kişandin, ev tevgera xebatê tê dest pê kirin.
Pêvajoya xebatê dê pela veavakirinê ya ku bi navê şaxê re têkildar e bikar bîne da ku belgeyê biweşîne, .i18n/htm/main.yml
û .i18n/htm/dist.yml
dê bi rêzê ve wekî veavakirina weşanê werin bikar anîn.
Em ji bo pêvajoya berdana belgeyê pratîkên çêtirîn ên jêrîn pêşniyar dikin:
Dema ku guhertin berbi şaxa main
ve têne avêtin, belge tê xebitandin ku were çêkirin û li stasyona pêşdîtinê were bicîh kirin (stasyona pêşdîtinê heye github page ).
Piştî ku piştrast kir ku belge li ser malpera pêşdîtinê rast e, kod dê were yek kirin û berbi şaxê dist
ve were avêtin, û çêkirin û bicîhkirina fermî dê serhêl bikeve.
Bê guman, pêkanîna pêvajoya jorîn hewce dike ku bêtir veavakirinan binivîse.
Hûn dikarin ji bo nivîsandina xebata xebatê serî li projeya rastîn bidin github.com/fcdoc/doc
secrets.I18N_SITE_TOKEN
û secrets.NPM_TOKEN
di veavakirinê de ji we re hewce dike ku hûn guhêrbarên veşartî di bingeha kodê de mîheng bikin.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
di veavakirinê de nîşana weşana npm
ye û bi destûrnameyên npmjs.com biafirînin
Avahiya Directory
public
Pelên statîk ên malperê, wekî favicon.ico
, robots.txt
, hwd.
Pelên îkonê li vir dikarin bi realfavicongenerator.net
.i18n
Di bin pelrêça .i18n
de pelên veavakirinê, cacheya wergerê, hwd. yên i18n.site
hene. Ji bo hûragahiyan li beşa paşîn "Vesazkirin" binêre.
en
Peldanka zimanê çavkaniyê, bi pelê veavakirinê en
ji fromTo
di .i18n/conf.yml
de
i18n:
fromTo:
en: zh
Ji kerema xwe serî li veavakirina wergerê bidin i18