Deplojo Kaj Rete
i18n.site
adoptas unu-paĝan aplikaĵarkitekturon , kaj la reteja enirejpaĝo kaj reteja enhavo estas deplojitaj sendepende.
Post rulado de la ĉi-supra traduko, dosierujoj htm
kaj v
estos generitaj sub la dosierujo md/out/dev
.
Ĉi tie, dev
signifas, ke ĝi estas konstruita surbaze de la agorda dosiero .i18n/htm/dev.yml
.
dev
dosierujo :
La dosierujo htm
estas la retejo enirpaĝo.
La v
dosierujo enhavas retejan enhavon kun versinumeroj.
Loka antaŭvido ne zorgas pri la numero de versio kaj kopios ĉiujn dosierojn al la out/dev/v/0.1.0
dosierujo.
Por oficiala liberigo, ŝanĝitaj dosieroj estos kopiitaj al la nova versio-numera dosierujo.
Indiku Agordan Dosieron Kun -c
Malsamaj agordaj dosieroj kreos respondajn dosierujojn en la dosierujo out
.
Ekzemple, .i18n/htm/main.yml
kreos la out/main
dosierujon.
dev.yml
kaj main.yml
estas la defaŭltaj agordoj.
dev
estas la mallongigo de development
, indikante la evolumedion, uzatan por loka antaŭrigardo, kaj ankaŭ estas la defaŭlta agorda dosiero.
ol
estas la mallongigo de online
, indikante la interretan medion, kiu estas uzata por oficiala eldono. Ĝi ankaŭ estas la defaŭlta agorda dosiero kiam oni uzas komandliniajn parametrojn -n
ĝis npm
por liberigi.
Vi ankaŭ povas krei aliajn agordajn dosierojn Uzu --htm_conf
en la komandlinio por specifi la agordan nomon por uzi:
ekzemple:
i18n.site --htm_conf dist --save
Ĉi tie --save
reprezentas la numeron de versio de ĝisdatigo.
Eldonu enhavon al npmjs.com
Publiki enhavon al npmjs.com estas la rekomendita defaŭlta solvo (vidu Frontend High Availability ).
Ensalutu & npm
Instalu nodejs
, ensalutu per npm login
.
Redaktu md/.i18n/htm/main.yml
npmjs.com ŝanĝu la valoron de md:
YOUR_NPM_PACKAGE
kiel via propra npm
paknomo.
Poste modifi md/.i18n/htm/main.package.json
Rulu i18n.site --npm
aŭ i18n.site -n
en la md
dosierujo por traduki kaj publikigi.
Se vi uzas kontinuan integrigan medion por publikigi, ne necesas instali nodejs
Nur kopiu la ensalutitajn kaj eldonajn permesojn ~/.npmrc
al la medio.
Se vi modifas la pakaĵnomon de v:
en main.yml
, bonvolu nepre forigi .i18n/v/main
unue kaj poste publikigi ĝin.
Prokura Servilo Eldonita De npm
Se uzantoj en kontinenta Ĉinio renkontas retajn problemojn kaj ne kapablas publikigi npm
pakaĵojn, ili povas agordi la mediovariablon https_proxy
por agordi la prokurilon.
Supozante, ke via prokurservila haveno estas 7890
, vi povas skribi:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Memgastigita Enhavo
Se vi volas memgastigi la enhavon, unue redaktu md/.i18n/htm/main.yml
kaj ŝanĝu v: //unpkg.com/i18n.site
al via URL-prefikso, kiel v: //i18n-v.xxx.com
.
Enigu la md
dosierujon kaj rulu
i18n.site --htm_conf ol --save
aŭ mallongigo
i18n.site -c ol -s
Poste, agordu la enhavon en la dosierujo md/out/main/v
al la URL-prefiksa vojo fiksita en v:
.
Fine, agordu la kaŝmemortempon de la vojo finiĝanta per /.v
ĝis 1s
, alie la lastatempe liberigita enhavo ne povas aliri tuj.
La kaŝmemortempo por aliaj vojoj povas esti agordita al unu jaro aŭ pli por redukti nenecesajn petojn.
Gastigu Enhavon Al s3
Por memgastigi enhavon, krom CDN
vian propran servilon, alia ofta elekto estas uzi S3
+ .
Vi povas uzi rclone por ensaluti al la S3
servilo, tiam referenci kaj modifi la sekvan skripton, kaj nur kopii la pliigajn ŝanĝojn al S3
por ĉiu eldono.
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/"
Memoru agordi CDN
por ke la kaŝmemortempo de la vojo finiĝanta per /.v
estu 1s
, alie la nove eldonita enhavo ne povas tuj aliri.
Publikigi Retejon
La retejo povas esti deplojita ie ajn, github page cloudflare page estas bonaj elektoj.
Ĉar la retejo uzas unupaĝan aplikaĵarkitekturon , memoru reverki URL-vojojn kiuj ne enhavas .
ĝis index.html
.
La retpaĝa enirpaĝo nur devas esti deplojita unufoje, kaj ne necesas redeploji la retejan enirpaĝon por postaj enhavaj ĝisdatigoj.
Deploji Sur Github-Paĝo
Unue alklaku ĉi github por krei organizon La sekva organizo nomo estas i18n-demo
.
Poste kreu magazenon i18n-demo.github.io
sub ĉi tiu organizo (bonvolu anstataŭigi i18n-demo
per la organizo nomo, kiun vi kreis):
Publikante la enhavon en la antaŭa artikolo, out/main/htm
estis generita Bonvolu eniri ĉi tiun dosierujon kaj ruli :
ln -s index.html 404.html
Ĉar github page
ne subtenas reskribon de URL-pado, 404.html
estas uzata anstataŭe.
Poste rulu la sekvan komandon en la dosierujo htm
(memoru anstataŭigi i18n-demo/i18n-demo.github.io.git
per via propra magazenadreso) :
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
Post puŝado de la kodo, atendu la disfaldiĝon de github page
sukcese funkcii (kiel montrite sube) antaŭ ol vi povas aliri ĝin.
Por demo-paĝo bonvolu vidi:
https://i18n-demo.github.io
Deploji Sur cloudflare Paĝo
cloudflare page kun github page
, ĝi disponigas padon reverkadon kaj estas pli amika al kontinenta Ĉinio kaj estas pli alirebla.
La deplojo de cloudflare page
estas kutime bazita sur la deplojo de github page
supre.
Kreu projekton kaj ligu la i18n-demo.github.io
magazenon supre.
La procezo estas montrita en la figuro sube:
Bonvolu klaki Add Account
por doni aliron al organizo i18n-demo
.
Se vi ligis la magazenon de alia organizo, vi eble bezonos klaki Add Account
dufoje por rajtigi dufoje antaŭ ol la nova organizo aperos.
Poste, elektu magazenon i18n-demo.github.io
, tiam alklaku Begin setup
, kaj uzu la defaŭltajn valorojn por postaj paŝoj.
Post ligado por la unua fojo, vi devas atendi kelkajn minutojn antaŭ ol vi povas aliri ĝin.
Post deplojo, vi povas ligi propran domajnan nomon.
Post ligo de la kutima domajna nomo, bonvolu iri al la domajna nomo por agordi la padon reverkadon de la unupaĝa aplikaĵo, kiel montrite sube:
La reguloj en la supra bildo estas kiel sekvas Bonvolu anstataŭigi i18n.site
en la unua linio sube per la domajna nomo, kiun vi ligis.
(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")
)
Krome, bonvolu agordi la kaŝmemorregulojn, kiel montrite sube, kaj agordi la kaŝmemorodaŭron al unu monato.
Bonvolu ŝanĝi la domajnan nomon kongruan en la dua paŝo en la supra bildo al la domajna nomo, kiun vi ligis.
Optimumigo De Retejo-Deplojo en Kontinenta Ĉinio
Se vi volas akiri pli bonan alireblecon en la reto medio de kontinenta Ĉinio, bonvolu registri domajnan nomon unue.
Tiam, uzu la objektan stokadon de nubaj vendistoj en kontinenta + CDN
Deploji la sekvan enhavon out/main/htm
.
Vi povas uzi randan komputadon por reverki la vojon por adaptiĝi al unupaĝaj aplikoj Ekzemple, Baidu Smart Cloud CDN
povas esti agordita tiel:
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
// Vi povas agordi la respondan kaplinion por sencimigi la eligon, kiel ekstere.XXX = 'MSG';
})
Ĉar rekordo MX
kaj rekordo CNAME
ne povas kunekzisti, se vi volas ricevi retpoŝtojn de domajna nomo samtempe, vi devas kunlabori kun la cname_flatten al nivelo CNAME
en rekordon A
.
Krome, ĉar la transmaraj trafikaj kostoj de nubaj vendistoj en kontinenta Ĉinio estas relative multekostaj, se vi volas optimumigi kostojn, vi povas uzi DNS senpagan geografian rezolucion de Huawei Cloud kaj la propran domajnan nomon de Cloudflare for SaaS (kiel montrite sube) por atingi trafika deturniĝo──Trafikvojigo en kontinenta Ĉinio Baidu Cloud CDN
, internacia trafiko iras cloudflare .
Ĉi tiuj disfaldaj optimumigaj solvoj estas pli kompleksaj kaj estos enkondukitaj en apartaj ĉapitroj estonte.
Ĝenerala Domajna Nomo Alidirekto
Se vi uzas i18n.site
por generi retejon kiel vian ĉefan retejon, vi kutime bezonas agordi tutdomajnan alidirekton, tio estas, redirekti aliron al *.xxx.com
(inkluzive de www.xxx.com
) al xxx.com
.
Ĉi tiu postulo povas esti atingita per la helpo de Alibaba Cloud CDN
EdgeScript
( angla dokumento / Ĉina dokumento )
Aldonu la domajnan nomon en Alibaba CDN kaj indiku la domajnan nomon *.xxx.com
al CNAME
en Alibaba Cloud CDN
.
Ekzemple, la tutdomajna nomo alidirekta agordo de *.i18n.site
en la supra bildo estas jena:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Deploji Per nginx
Bonvolu aldoni agordon similan al la sekva en la server
alineo de nginx Bonvolu ŝanĝi /root/i18n/md/out/main/htm
al la vojo de via propra projekto 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;
}
}
Bazita Sur github action
Kontinua Integriĝo
Vi povas raporti al la sekvanta por agordi vian github action
:
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 }}
Kiel videblas en la agordo, ĉi tiu laborfluo estas ekigita kiam oni premas al branĉo main
kaj branĉo dist
.
La laborfluo uzos la agordan dosieron respondan al la branĉnomo por publikigi la dokumenton Ĉi tie, .i18n/htm/main.yml
kaj .i18n/htm/dist.yml
estos uzataj kiel la eldona agordo respektive.
Ni rekomendas la jenajn plej bonajn praktikojn por la dokumenteldonprocezo:
Kiam ŝanĝoj estas puŝitaj al branĉo main
, la dokumento estas ekigita por esti konstruita kaj deplojita al la antaŭrigardstacio (la antaŭrigardstacio estas havebla github page ).
Post konfirmi ke la dokumento estas ĝusta en la antaŭrigardejo, la kodo estos kunfandita kaj puŝita al branĉo dist
, kaj la oficiala konstruo kaj deplojo enretiĝos.
Kompreneble, efektivigi ĉi-supran procezon postulas verki pli da agordoj.
Vi povas raporti al la reala projekto por laborflua skripto github.com/fcdoc/doc
secrets.I18N_SITE_TOKEN
kaj secrets.NPM_TOKEN
en la agordo postulas, ke vi agordu sekretajn variablojn en la koda bazo.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
estas la publikiga ĵetono de la pako npm
en la agordo Vizitu npmjs.com
Dosierujo-Strukturo
public
Senmovaj dosieroj de la retejo, kiel favicon.ico
, robots.txt
, ktp.
La ikondosieroj ĉi tie povas esti generitaj per realfavicongenerator.net
.i18n
Sub la dosierujo .i18n
estas la agordaj dosieroj, traduka kaŝmemoro ktp. de i18n.site
Vidu la sekvan ĉapitron "Agordo" por detaloj.
en
Fontlingva dosierujo, responda al en
el fromTo
el .i18n/conf.yml
agorda dosiero
i18n:
fromTo:
en: zh
Bonvolu raporti al la agordo de traduko i18