Diegimas Ir Internete
i18n.site
naudoja vieno puslapio programos architektūrą, o svetainės įėjimo puslapis ir svetainės turinys yra diegiami atskirai.
Paleidus aukščiau pateiktą vertimą, htm
ir v
katalogai bus sugeneruoti md/out/dev
kataloge.
Čia dev
reiškia, kad jis sukurtas remiantis .i18n/htm/dev.yml
konfigūracijos failu.
dev
katalogas :
htm
katalogas yra svetainės įėjimo puslapis.
v
kataloge yra svetainės turinys su versijų numeriais.
Vietinei peržiūrai nerūpi versijos numeris ir visi failai nukopijuos į out/dev/v/0.1.0
katalogą.
Oficialiai išleisti pakeisti failai bus nukopijuoti į naujos versijos numerių katalogą.
Nurodykite Konfigūracijos Failą Su -c
Skirtingi konfigūracijos failai sukurs atitinkamus katalogus out
kataloge.
Pavyzdžiui, .i18n/htm/main.yml
sukurs out/main
katalogą.
dev.yml
ir main.yml
yra numatytosios konfigūracijos.
dev
yra development
santrumpa, nurodanti kūrimo aplinką, naudojama vietinei peržiūrai, taip pat yra numatytasis konfigūracijos failas.
ol
yra online
santrumpa, nurodanti internetinę aplinką, kuri naudojama oficialiam leidimui. Tai taip pat yra numatytasis konfigūracijos failas, kai išleidžiant naudojami komandų eilutės parametrai -n
iki npm
.
Taip pat galite sukurti kitus konfigūracijos failus. Komandinėje eilutėje --htm_conf
konfigūracijos failo pavadinimą:
pavyzdžiui:
i18n.site --htm_conf dist --save
Čia --save
reiškia naujinimo leidimo versijos numerį.
Paskelbkite turinį npmjs.com
Rekomenduojamas numatytasis sprendimas yra paskelbti turinį npmjs.com
npm & Įrašas
Įdiekite nodejs
, prisijunkite naudodami npm login
.
Redaguokite md/.i18n/htm/main.yml
ir pakeiskite reikšmę md:
YOUR_NPM_PACKAGE
npmjs.com savo npm
paketo pavadinimą.
Tada pakeiskite md/.i18n/htm/main.package.json
Paleiskite i18n.site --npm
arba i18n.site -n
md
kataloge, kad išverstumėte ir paskelbtumėte.
Jei publikuodami naudojate nuolatinio integravimo aplinką, nereikia diegti nodejs
Tiesiog nukopijuokite prisijungimo ir publikavimo teises ~/.npmrc
į aplinką.
Jei pakeisite paketo pavadinimą v:
iš main.yml
, pirmiausia ištrinkite .i18n/v/main
ir tada paskelbkite.
Tarpinį Serverį Paskelbė npm
Jei žemyninės Kinijos vartotojai susiduria su tinklo problemomis ir negali paskelbti npm
paketų, jie gali nustatyti https_proxy
aplinkos kintamąjį, kad sukonfigūruotų tarpinį serverį.
Darant prielaidą, kad jūsų tarpinio serverio prievadas yra 7890
, galite rašyti:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Savarankiškai Priglobtas Turinys
Jei norite patys priglobti turinį, pirmiausia redaguokite md/.i18n/htm/main.yml
ir pakeiskite v: //unpkg.com/i18n.site
į URL priešdėlį, pvz., v: //i18n-v.xxx.com
.
Įveskite md
katalogą ir paleiskite
i18n.site --htm_conf ol --save
arba santrumpa
i18n.site -c ol -s
Tada sukonfigūruokite md/out/main/v
katalogo turinį į URL priešdėlio kelią, nustatytą v:
.
Galiausiai sukonfigūruokite kelio, kuris baigiasi nuo /.v
iki 1s
, talpyklos laiką , kitaip naujai išleistas turinys nebus pasiekiamas iš karto.
Kitų kelių talpyklos laikas gali būti nustatytas iki vienerių metų ar daugiau, kad būtų sumažintas nereikalingų užklausų skaičius.
Priglobti Turinį Į s3
Jei norite savarankiškai priglobti turinį, ne tik naudojate savo serverį, CDN
ir dar viena įprasta parinktis yra naudoti S3
+
Norėdami prisijungti prie S3
serverio S3
galite naudoti 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/"
Nepamirškite sukonfigūruoti CDN
taip, kad kelio, kuris baigiasi skaičiumi /.v
talpyklos laikas būtų 1s
, kitaip naujai išleisto turinio negalima iš karto pasiekti.
Paskelbti Svetainę
Svetainę galima įdiegti bet kur, github page cloudflare page yra geras pasirinkimas.
Kadangi svetainėje naudojama vieno puslapio programos architektūra, nepamirškite perrašyti URL kelių, kuriuose nėra nuo .
iki index.html
.
Svetainės įvesties puslapį reikia įdiegti tik vieną kartą ir nereikia iš naujo įdiegti svetainės įvesties puslapio, kad būtų galima atnaujinti turinį.
Įdiegti github Puslapyje
Pirmiausia spustelėkite čia github kad sukurtumėte organizaciją . Pavyzdžiui, šis organizacijos pavadinimas yra i18n-demo
.
Tada sukurkite šios organizacijos sandėlį i18n-demo.github.io
(pakeiskite i18n-demo
savo sukurtu organizacijos pavadinimu):
Skelbiant ankstesnio straipsnio turinį, buvo sugeneruotas out/main/htm
Įveskite šį katalogą ir paleiskite :
ln -s index.html 404.html
Kadangi github page
nepalaiko URL kelio perrašymo, vietoj jo naudojamas 404.html
.
Tada paleiskite šią komandą htm
kataloge (nepamirškite pakeisti i18n-demo/i18n-demo.github.io.git
savo sandėlio adresu) :
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
Paspaudę kodą, palaukite, kol github page
diegimas bus sėkmingai paleistas (kaip parodyta toliau), kad galėtumėte jį pasiekti.
Demonstracinį puslapį rasite:
https://i18n-demo.github.io
Įdiegti „Cloudflare“ Puslapyje
cloudflare page su github page
, jis suteikia galimybę perrašyti kelią ir yra palankesnis žemyninei Kinijai ir yra labiau prieinamas.
cloudflare page
diegimas paprastai grindžiamas anksčiau pateiktu github page
diegimu.
Sukurkite projektą ir susiekite aukščiau esantį i18n-demo.github.io
sandėlį.
Procesas parodytas paveikslėlyje žemiau:
Spustelėkite Add Account
kad suteiktumėte prieigą prie organizacijos i18n-demo
.
Jei susiejote kitos organizacijos sandėlį, gali tekti du kartus spustelėti Add Account
, kad patvirtintumėte du kartus, kad būtų rodoma nauja organizacija.
Tada pasirinkite sandėlį i18n-demo.github.io
, tada spustelėkite Begin setup
ir tolesniems veiksmams naudokite numatytąsias reikšmes.
Surišę pirmą kartą, turite palaukti kelias minutes, kol galėsite jį pasiekti.
Įdiegę galite susieti pasirinktinį domeno pavadinimą.
Susieję tinkintą domeno pavadinimą, eikite į domeno pavadinimą, kad sukonfigūruotumėte vieno puslapio programos kelio perrašymą, kaip parodyta toliau:
Aukščiau esančiame paveikslėlyje nurodytos taisyklės. Pakeiskite i18n.site
pirmoje eilutėje, kurią susiejote.
(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")
)
Be to, sukonfigūruokite talpyklos taisykles, kaip parodyta toliau, ir nustatykite talpyklos trukmę iki vieno mėnesio.
Pakeiskite domeno vardą, atitinkantį antrajame žingsnyje aukščiau esančiame paveikslėlyje, į susietą domeno vardą.
Svetainės Diegimo Žemyninėje Kinijoje Optimizavimas
Jei norite pasiekti geresnį pasiekiamumo našumą žemyninės Kinijos tinklo aplinkoje, pirmiausia užregistruokite domeno vardą .
Tada naudokite žemyninės Kinijos debesies tiekėjų objektų saugyklą + Įdiekite šį turinį CDN
out/main/htm
Galite naudoti krašto skaičiavimą, kad perrašytumėte kelią ir pritaikytumėte vieno puslapio programas. Pavyzdžiui, „Baidu Smart Cloud CDN
galima sukonfigūruoti taip:
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
// Atsakymų antraštėse galima nustatyti derinimo išvestį, pvz., out.XXX = 'MSG';
})
Kadangi MX
įrašas ir CNAME
įrašas negali egzistuoti kartu, jei norite gauti domeno vardo el. laiškus vienu metu, turite bendradarbiauti su cname_flatten CNAME
lygiu į A
įrašą.
Be to, kadangi debesų tiekėjų užjūrio srauto mokesčiai žemyninėje Kinijoje yra gana brangūs, jei norite optimizuoti išlaidas, galite naudoti DNS „Huawei Cloud“ geografinę skiriamąją gebą ir Cloudflare for SaaS tinkintą domeno pavadinimą (kaip parodyta toliau). eismo nukreipimas──Eismo maršrutas žemyninėje Kinijoje Baidu Cloud CDN
, tarptautinis eismas kainuoja cloudflare .
Šie diegimo optimizavimo sprendimai yra sudėtingesni ir ateityje bus pristatyti atskiruose skyriuose.
Bendrasis Domeno Vardo Peradresavimas
Jei naudojate i18n.site
kad sukurtumėte svetainę kaip pagrindinę svetainę, paprastai turite sukonfigūruoti viso domeno peradresavimą, ty nukreipti prieigą prie *.xxx.com
(įskaitant www.xxx.com
) į xxx.com
.
Šis reikalavimas gali būti įvykdytas naudojant Alibaba Cloud CDN
EdgeScript
( angliškas dokumentas / kinų dokumentas )
Pridėkite domeno pavadinimą „Alibaba Cloud CDN ir nurodykite domeno pavadinimą nuo *.xxx.com
iki CNAME
„Alibaba Cloud CDN
.
Pavyzdžiui, aukščiau esančiame paveikslėlyje viso domeno pavadinimo peradresavimo konfigūracija *.i18n.site
yra tokia:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Diegti Su nginx
Pridėkite konfigūraciją, panašią į toliau pateiktą nginx server
pastraipoje. Pakeiskite /root/i18n/md/out/main/htm
į savo projekto kelią 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;
}
}
Remiantis github action
Nuolatine Integracija
Norėdami sukonfigūruoti savo github action
, galite vadovautis šiais nurodymais:
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 }}
Kaip matyti konfigūracijoje, ši darbo eiga suaktyvinama, kai stumiama į main
ir dist
šaką.
Darbo eiga naudos konfigūracijos failą, atitinkantį šakos pavadinimą, kad paskelbtų dokumentą. Čia bus atitinkamai paskelbta .i18n/htm/main.yml
ir .i18n/htm/dist.yml
.
Rekomenduojame laikytis šios geriausios dokumento išleidimo proceso praktikos:
Kai pakeitimai perkeliami į šaką main
, dokumentas suaktyvinamas, kad būtų sukurtas ir įdiegtas peržiūros stotyje (peržiūros stotis yra github page ).
Peržiūros svetainėje patvirtinus, kad dokumentas yra teisingas, kodas bus sujungtas ir perkeltas į dist
šaką, o oficialus kūrimas ir diegimas bus prisijungę.
Žinoma, norint įgyvendinti aukščiau pateiktą procesą, reikia parašyti daugiau konfigūracijų.
Norėdami sukurti darbo eigos scenarijus, galite kreiptis į tikrąjį projektą github.com/fcdoc/doc
secrets.I18N_SITE_TOKEN
ir secrets.NPM_TOKEN
konfigūracijoje reikalauja sukonfigūruoti slaptus kintamuosius kodo bazėje.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
yra konfigūracijos npm
paketo paskelbimo npmjs.com raktas.
Katalogo Struktūra
public
Statiniai svetainės failai, pvz., favicon.ico
, robots.txt
ir kt.
Čia esančius piktogramų failus galima sugeneruoti naudojant realfavicongenerator.net
.i18n
Po .i18n
katalogu yra i18n.site
konfigūracijos failai, vertimo talpykla ir kt. Išsamesnės informacijos ieškokite kitame skyriuje „Konfigūracija“ .
en
Pirminės kalbos katalogas, atitinkantis en
iš fromTo
iš .i18n/conf.yml
konfigūracijos failą
i18n:
fromTo:
en: zh
Žr. vertimo konfigūraciją i18