Despliegue Y en Línea
i18n.site
huk p'anqalla ruwana arquitectura kaqmanta hapin, chaymanta web kiti yaykuy p'anqa chaymanta web kitip kaqnin sapallamanta mast'arisqa.
Hawa tikrayta purichisqamanta, htm
, v
directoriokuna md/out/dev
directorio urapi paqarichisqa kanqa.
Kaypiqa, dev
niyta munan, .i18n/htm/dev.yml
wakichiy willañiqipi sayasqa ruwasqa kasqanmanta.
dev
qillqana mayt'u :
htm
sutiyuq qillqana mayt'uqa web kitiman yaykuy p'anqam.
v
sutiyuq qillqana mayt'uqa web kitip willayninkunayuqmi, laya yupaykunawan.
Llaqta ñawpaq qhawayqa manam laya yupaymanta llakikunchu, llapa willañiqikunatam out/dev/v/0.1.0
willañiqiman qillqanqa.
Oficial kacharinapaq, tikrasqa willañiqikuna musuq laya yupay qillqana mayt'uman copiasqa kanqa.
-c
Nisqawan Wakichiy Willañiqita Niy
Hukhina wakichiy willañiqikunaqa out
willañiqipi tupaq willañiqikunatam ruranqa.
Ejemplopaq, .i18n/htm/main.yml
out/main
directorio nisqatam paqarichinqa.
dev.yml
chaymanta main.yml
ñawpaqmanta ruwasqa ruwanakuna kanku.
dev
nisqaqa development
nisqap pisichasqanmi, wiñachiy pachata rikuchiq, llaqta ñawpaq qhawaypaq llamk'achisqa, chaymantataqmi ñawpaqmanta churasqa wakichiy willañiqipas.
ol
nisqaqa online
nisqap pisichasqa kayninmi, internetpi pachata rikuchispa, chaytaq oficial kacharinapaq llamk'achisqa kachkan, kamachiy chiru parámetros -n
kaqmanta npm
kaqkama kacharinapaq llamk'achkaspa.
Huk wakichiy willañiqikunatapas rurayta atinkim Kamachiy chirupi --htm_conf
llamk'achiyta llamk'achinapaq wakichiy willañiqi sutita willanaykipaq:
kay hina:
i18n.site --htm_conf dist --save
Kaypi --save
musuqyachiy lluqsichiy laya yupayta rikuchin.
npmjs.com nisqaman contenidota lluqsichiy
npmjs.com
npm Yaykuy & Qillqay
nodejs
churay, npm login
nisqawan yaykuy.
md/.i18n/htm/main.yml
llamk'apuy chaymanta md:
kaqpa chaninninta YOUR_NPM_PACKAGE
tikray kikiykipa npm
paquete sutiyki hina Mayqin mana runayuq paquete sutipas npmjs.com
Chaymantataq md/.i18n/htm/main.package.json
tikray
md
directoriopi i18n.site --npm
utaq i18n.site -n
purichiy tikrayta chaymanta lluqsichinapaq.
Sichus huk sapa kuti tinkinakuy pachata llamk'achkanki qillqanapaq, mana nodejs
churanaykichu tiyan.Yaykusqa chaymanta lluqsichiy atiykunata ~/.npmrc
muyuriqman copiaylla.
Sichus v:
main.yml
kaqpi paquete sutita tikranki, ama hina kaspa ñawpaqta .i18n/v/main
qulluy chaymanta lluqsichiy.
Proxy Sirwiq npm Nisqap Lluqsichisqan
Sichus China hatun suyupi llamk'aqkuna llika sasachakuykunawan tupanku chaymanta mana npm
paquetekunata lluqsichiyta atinkuchu, paykunaqa https_proxy
muyuriq tikraq churayta atinku proxy sirwiqta ruwanapaq.
Proxy servidor puertoyki 7890
kaqta hapispa, qillqayta atikunki:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Kikinmanta Qusqa Contenido
Sichus kikinmanta ruwasqa willayta quyta munanki, ñawpaqta md/.i18n/htm/main.yml
llamk'achiy chaymanta v: //unpkg.com/i18n.site
URL ñawpaq simiykiman tikray, ahinataq v: //i18n-v.xxx.com
.
md
sutiyuq qillqana mayt'uman yaykuy hinaspa purichiy
i18n.site --htm_conf ol --save
otaq pisichasqa simi
i18n.site -c ol -s
Chaymanta, md/out/main/v
willañiqipi kaq kaqninta URL ñawpaq simi ñanman v:
kaqpi churasqa ruway.
Tukuchanapaq, /.v
1s
tukukuq ñanpa waqaychasqa pachanta wakichiy , mana hina kaqtinqa, musuq lluqsisqa willaykunamanqa manam chaylla yaykuyta atikunmanchu.
Huk ñankunapaq waqaychasqa pachaqa huk wataman utaq aswanman churasqa kanman mana necesario mañakuykunata pisiyachinapaq.
Contenidota s3 Nisqaman Quy
Kikinmanta qunakuypaq, kikin sirwiqniyki llamk'achisqaykimanta CDN
, huk común akllana S3
+
rclone S3
S3
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/"
Yuyariy CDN
wakichiyta, /.v
kaqpi tukuq ñanpa waqaychasqa pachan 1s
kananpaq, mana hina kaqtinqa, musuq lluqsisqa willaykunamanqa manam chaylla yaykuyta atikunmanchu.
Web Nisqapi Lluqsichiy
Web kitiqa maypipas churasqa kanman, github page cloudflare page allin akllanakuna kanku.
Imaraykuchus web kiti huk p'anqayuq ruwana arquitectura llamk'achin, yuyariy URL ñankunata wakmanta qillqayta mayqinkunachus mana .
kaqmanta index.html
kaqkamachu.
Web kiti yaykuy p'anqa huk kutilla mast'arisqa kanan tiyan, chaymanta mana web kiti yaykuy p'anqata wakmanta mast'ariy tiyanchu qhipa ruwanakuna musuqyachiypaq.
github P'anqapi Mast'ariy
Ñawpaqta github ñit'iy huk tantanakuyta kamanaykipaq i18n-demo
Chaymanta kay tantanakuypa urayninpi i18n-demo.github.io
almacén nisqa ruway (ama hina kaspa, i18n-demo
kamasqayki tantanakuy sutiwan tikray):
Ñawpaq qillqasqapi willayta lluqsichispa, out/main/htm
paqarichisqaña Ama hina kaspa, kay qillqana mayt'uman yaykuy hinaspa purichiy :
ln -s index.html 404.html
github page
URL ñan musuqmanta qillqayta mana yanapasqanrayku, 404.html
rantinpi llamk'achisqa.
Chaymanta kay kamachiyta htm
qillqana mayt'upi purichiy (yuyariy i18n-demo/i18n-demo.github.io.git
kikiykipa almacén direccionninwan tikrayta) :
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
Codigo tanqasqaykimanta, github page
mast'ariy allinta purinanta suyay (urapi rikuchisqa hina) manaraq chayman yaykuyta atichkaspa.
Demo p'anqapaq ama hina kaspa qhaway:
https://i18n-demo.github.io
cloudflare P'anqapi Mast'ariy
cloudflare page github page
cloudflare page
kaqpa mast'ariyninqa aswanta github page
patamanta mast'ariypi sayasqa.
Huk proyectota ruway hinaspa i18n-demo.github.io
almacén nisqa hawapi watay.
Chay ruwayqa kay urapi siqipim qawarisqa kachkan:
Ama hina kaspa, Add Account
ñit'iy i18n-demo
tantanakuyman yaykuyta qunaykipaq.
Sichus huk tantanakuypa almacénninta watarqanki, iskay kutita Add Account
ñit'inayki tiyan iskay kutita kamachiypaq manaraq musuq tantanakuy rikuchisqa kachkaptin.
Chaymanta, almacén i18n-demo.github.io
akllay, chaymanta Begin setup
ñit'iy, chaymanta qatiq llamkanakunapaq ñawpaqmanta chanikunata llamk'achiy.
Ñawpaq kutita encuadernasqayki qhepamanmi iskay kinsa minutokunata suyanayki manaraq chayman haykushaspa.
Mastarisqamanta qhipaman, huk sapanchasqa kamachiy sutita watayta atikunki.
Sapanchasqa kamachiy sutita watasqamanta, ama hina kaspa kamachiy sutiman riy huk p'anqayuq ruwanapa ñan musuqmanta qillqayninta wakichinaykipaq, uraypi rikuchisqa hina:
Hawa siq'ipi kamachiykuna kayhinam, ama hina kaspa, uraypi ñawpaq chirupi i18n.site
watasqayki kamachiy sutiwan tikray.
(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")
)
Chaymantapas, ama hina kaspa, waqaychasqa kamachiykunata wakichiy, uraypi rikuchisqa hina, chaymanta waqaychasqa unayniyuq kayninta huk killaman churay.
Ama hina kaspa, hawa siq'ipi iskay ñiqin llamk'aypi kamachiy suti tupachiyta tikray, watasqayki kamachiy sutiman.
China Hatun Suyupi Web Kiti Mast'ariyta Allinchay
Sichus aswan allin yaykuy ruwayta China hatun suyu llika muyuriqpi tariyta munanki, ama hina kaspa ñawpaqta huk dominio sutita qillqay .
Chaymanta, + hatun suyupi puyu ranqhaqkunap objeto waqaychayninta llamk'achiy CDN
Kay qatiq willayta mast'ariy out/main/htm
.
Kantu yupayta llamk'achiy atikunki ñanta wakmanta qillqanapaq huk p'anqayuq ruwanakunaman hina ruwanapaq Ejemplopaq, Baidu Smart Cloud CDN
kayhinata ruwasqa kanman:
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
// Kutichiy umalliqkuna lluqsiyta pantasqa allichaypaq churasqa kanman, ahinataq out.XXX = 'MSG';
})
Imaraykuchus registro MX
chaymanta registro CNAME
A
kuska kawsayta atinkuchu, sichus huk pachallapi dominio suti correo electrónicos chaskiyta munanki CNAME
cname_flatten
Chaymanta, imaraykuchus hawa llaqtakunapi t'ikray qullqikuna puyu ranqhaqkuna China hatunpi aswan chaninniyuq kanku, sichus qullqikuna allinchayta munanki, Cloudflare for SaaS Cloud DNS tráfico desviación──Tráfico ruteo China hatun suyupi Baidu Cloud CDN
, internacional tráfico rin cloudflare .
Kay mastariy allinchay allichaykunaqa aswan sasachakuyniyuqmi, hamuq pachapi sapaq capitulokunapi riqsichisqa kanqa.
Genérico Dominio Suti Kutichiy
Sichus i18n.site
llamk'achkanki huk web kitita ruwanapaq hatun web kitiyki hina, aswanta pan-domain kutichiyta wakichinayki tiyan, chaytaq, yaykuyta *.xxx.com
kaqman ( www.xxx.com
kaqpi) xxx.com
kaqman kutichiyta munanki.
Kay mañakuyqa Alibaba Cloud CDN
EdgeScript
( inglés qillqa / Chino qillqa ) yanapayninwanmi hunt'akunman .
Alibaba CDN kaqpi kamachiy sutita yapay chaymanta Alibaba Cloud CDN
kaqpi *.xxx.com
kaqmanta CNAME
kaqkama kamachiy sutita rikuchiy.
Ejemplopaq, pan-dominio suti kutichiy wakichiy *.i18n.site
kaqmanta kay pata siq'ipi kayhina kachkan:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
nginx Nisqawan Mast'ariy
Ama hina kaspa out/main/htm
server
/root/i18n/md/out/main/htm
ruwayta yapay nginx
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
Sapa Kuti Tinkuchiypi Sayasqa
Kaykunata qhawayta atinki github action
kaqniyki wakichinaykipaq :
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 }}
Wakichiypi rikusqa hina, kay llamkana puriyqa main
ramaman chaymanta dist
ramaman tanqaspa qallarikun.
Llamkana purichiyqa sucursal sutiwan tupaq wakichiy willañiqita llamk'achinqa qillqa lluqsichinapaq Kaypi, .i18n/htm/main.yml
chaymanta .i18n/htm/dist.yml
qillqa lluqsichiy wakichi hina llamk'achinqa.
Kay allin ruwaykunata yuyaychayku qillqa lluqsichiy ruwanapaq:
Tikraykuna main
ramaman tanqasqa kaptin, qillqaqa rurasqa kananpaqmi llamk'achisqa, ñawpaq qhaway estacionman mast'arisqa (ñawpaq qhaway estacionqa kanmi github page ).
Ñawpaq qhaway sitiopi qillqa allin kasqanmanta takyachiymanta, codigo hukllachasqa kanqa chaymanta rama dist
kaqman tanqasqa kanqa, chaymanta oficial ruway chaymanta mast'ariy internetman rinqa.
Chiqamanta, kay pata ruwayta ruwanapaq aswan ruwanakuna qillqana tiyan.
Chiqap llamk'ayta qhawayta atinki github.com/fcdoc/doc
secrets.I18N_SITE_TOKEN
chaymanta secrets.NPM_TOKEN
wakichiypi pakasqa tikraqkunata codigo base kaqpi wakichinayki tiyan.
I18N_SITE_TOKEN
i18n.site/token Chay !
NPM_TOKEN
nisqaqa npm
kaq paquete nisqap qillqa mayt'unmi Watukuy npmjs.com
Directorio Nisqapa Ruwaynin
public
Web kitip mana kuyukuq willañiqikuna, ahinataq favicon.ico
, robots.txt
, hukkunapas.
Kaypi icono willañiqikunataqa realfavicongenerator.net
.i18n
.i18n
willañiqip urayninpiqa i18n.site
kaqpa wakichiy willañiqikuna, tikray waqaychasqa, hukkunapas kachkan.Qhaway qatiq rakita "Wakichiy" sut'inchanapaq.
en
Pukyu simi qillqana mayt'u, en
fromTo
.i18n/conf.yml
wakichiy willañiqiwan tupaq
i18n:
fromTo:
en: zh
Ama hina kaspa, tikraypa wakichiyninta qhaway i18