Байрлуулалт Болон Онлайн
i18n.site
нэг хуудас програмын архитектурыг ашигладаг бөгөөд вэбсайтын нэвтрэх хуудас болон вэбсайтын агуулгыг бие даан байрлуулдаг.
Дээрх орчуулгыг ажиллуулсны дараа md/out/dev
лавлах дор htm
ба v
лавлахууд үүснэ.
Энд dev
гэдэг нь .i18n/htm/dev.yml
тохиргооны файл дээр тулгуурлан бүтээгдсэн гэсэн үг.
dev
лавлах :
htm
лавлах нь вэб хуудас руу орох хуудас юм.
v
лавлах нь хувилбарын дугаар бүхий вэбсайтын агуулгыг агуулдаг.
Орон нутгийн урьдчилан үзэх нь хувилбарын дугаарыг үл тоомсорлож, бүх файлыг out/dev/v/0.1.0
сан руу хуулах болно.
Албан ёсны хувилбар гаргахын тулд өөрчлөгдсөн файлуудыг шинэ хувилбарын дугаарын лавлах руу хуулна.
Тохируулгын Файлыг -c
-Ээр Зааж Өгнө Үү
Өөр өөр тохиргооны файлууд нь out
директорт харгалзах сангуудыг үүсгэнэ.
Жишээлбэл, .i18n/htm/main.yml
out/main
санг үүсгэнэ.
dev.yml
ба main.yml
нь анхдагч тохиргоо юм.
dev
нь development
-ийн товчлол бөгөөд хөгжүүлэлтийн орчныг илэрхийлдэг бөгөөд локал урьдчилан үзэхэд ашигладаг бөгөөд мөн анхдагч тохиргооны файл юм.
ol
нь online
гэсэн товчлол бөгөөд албан ёсны хувилбарыг гаргахад ашигладаг бөгөөд энэ нь мөн -n
оос npm
хүртэлх командын мөрийн параметрүүдийг гаргахад өгөгдмөл тохиргооны файл юм.
Та мөн ашиглах тохиргооны файлын нэрийг зааж өгөхийн тулд тушаалын мөрөнд --htm_conf
ашиглан бусад тохиргооны файлуудыг үүсгэж болно.
жишээ нь:
i18n.site --htm_conf dist --save
Энд --save
шинэчлэлтийн хувилбарын дугаарыг илэрхийлнэ.
npmjs.com дээр контент нийтлэх
npmjs.com агуулгыг нийтлэх нь санал болгож буй өгөгдмөл шийдэл юм ( Front end High Availability-г үзнэ үү).
npm & Нийтлэл
nodejs
суулгаад npm login
ээр нэвтэрнэ үү.
md/.i18n/htm/main.yml
npmjs.com , md:
YOUR_NPM_PACKAGE
-ын утгыг өөрийн npm
багцын нэрээр өөрчилнө.
Дараа нь md/.i18n/htm/main.package.json
өөрчил
Орчуулах, нийтлэхийн тулд md
лавлахаас i18n.site --npm
эсвэл i18n.site -n
ажиллуул.
Хэрэв та нийтлэхийн тулд тасралтгүй интеграцийн орчин ашигладаг бол nodejs
суулгах шаардлагагүй. Зүгээр л нэвтэрсэн болон нийтлэх зөвшөөрлийг ~/.npmrc
орчинд хуулна уу.
Хэрэв та main.yml
-д v:
гэсэн багцын нэрийг өөрчилсөн бол эхлээд .i18n/v/main
устгаад дараа нь нийтлэхээ мартуузай .
npm Нийтэлсэн Прокси Сервер
Эх газрын Хятад дахь хэрэглэгчид сүлжээний асуудалтай тулгараад npm
багцыг нийтлэх боломжгүй бол тэд прокси серверийг тохируулахын тулд орчны хувьсагч https_proxy
тохируулж болно.
Таны прокси серверийн порт 7890
байна гэж үзвэл та дараахийг бичиж болно:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Өөрөө Байршуулсан Контент
Хэрэв та агуулгыг өөрөө байршуулахыг хүсвэл эхлээд md/.i18n/htm/main.yml
засаад v: //unpkg.com/i18n.site
URL угтвар болгон өөрчил, жишээ нь v: //i18n-v.xxx.com
.
md
лавлахыг оруулаад ажиллуулна уу
i18n.site --htm_conf ol --save
эсвэл товчлол
i18n.site -c ol -s
Дараа нь md/out/main/v
лавлах дахь контентыг v:
-д тохируулсан URL угтварын замд тохируулна уу.
Эцэст нь /.v
ээс 1s
ээр төгссөн замын кэш цагийг тохируулна уу , эс тэгвээс шинээр гаргасан контентод шууд хандах боломжгүй.
Шаардлагагүй хүсэлтийг багасгахын тулд бусад замуудын кэш хугацааг нэг жил ба түүнээс дээш хугацаагаар тохируулж болно.
S3-Д Агуулгыг Байршуулах
Өөрийн серверийг ашиглахаас гадна өөр нэг нийтлэг сонголт бол S3
CDN
+ явдал юм.
Та 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/"
/.v
-ээр төгссөн замын кэш хугацаа 1s
байхаар CDN
тохируулахаа бүү мартаарай, эс бөгөөс шинээр гаргасан контент руу шууд хандах боломжгүй.
Вэб Сайт Нийтлэх
Вэбсайтыг хаана ч байршуулах боломжтой github page cloudflare page нь сайн сонголт юм.
Вэбсайт нь нэг хуудас програмын архитектурыг ашигладаг тул .
-ээс index.html
агуулаагүй URL замыг дахин бичихээ бүү мартаарай.
Вэбсайтад нэвтрэх хуудсыг зөвхөн нэг удаа байршуулах шаардлагатай бөгөөд дараагийн агуулгын шинэчлэлтийн хувьд вэбсайтын нэвтрэх хуудсыг дахин байршуулах шаардлагагүй.
github Хуудсан Дээр Байршуулах
Байгууллага үүсгэхийн тулд эхлээд энд дарна github i18n-demo
Дараа нь энэ байгууллагын доор агуулах i18n-demo.github.io
үүсгэнэ үү ( i18n-demo
үүсгэсэн байгууллагын нэрээр солино уу):
Өмнөх нийтлэл дэх агуулгыг нийтлэх үед out/main/htm
үүсгэсэн байна. Энэ лавлахыг оруулаад ажиллуулна уу :
ln -s index.html 404.html
github page
URL замыг дахин бичихийг дэмждэггүй тул оронд нь 404.html
ашигладаг.
Дараа нь htm
санд дараах командыг ажиллуулна уу ( i18n-demo/i18n-demo.github.io.git
өөрийн агуулахын хаягаар солихыг санаарай) :
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
Кодыг дарсны дараа github page
-г амжилттай ажиллуулахыг хүлээнэ үү (доор үзүүлсэн шиг).
Демо хуудаснаас үзнэ үү:
https://i18n-demo.github.io
cloudflare Хуудсан Дээр Байршуулах
github page
тэй cloudflare page энэ нь замыг дахин бичих боломжийг олгодог бөгөөд эх газрын Хятадад илүү ээлтэй бөгөөд ашиглахыг зөвлөж байна.
cloudflare page
-ийн байршуулалт нь ихэвчлэн дээрх github page
-ийн байршуулалт дээр суурилдаг.
Төсөл үүсгээд дээрх i18n-demo.github.io
агуулахыг холбоно уу.
Үйл явцыг доорх зурагт үзүүлэв.
Байгууллага i18n-demo
д хандах эрх олгохын тулд Add Account
дээр дарна уу.
Хэрэв та өөр байгууллагын агуулахыг хүлээсэн бол шинэ байгууллага гарч ирэхээс өмнө Add Account
хоёр удаа дарж зөвшөөрөл өгөх шаардлагатай.
Дараа нь агуулах i18n-demo.github.io
сонгоод Begin setup
дээр товшоод дараагийн алхмуудад анхдагч утгуудыг ашиглана уу.
Эхний удаад холбогдсоны дараа та нэвтрэхийн өмнө хэдэн минут хүлээх хэрэгтэй.
Байршуулсаны дараа та өөрчлөн домэйн нэрийг холбож болно.
Захиалгат домэйн нэрийг холбосны дараа доор үзүүлсэн шиг нэг хуудас програмын замыг дахин бичихийг тохируулахын тулд домэйн нэр рүү очно уу.
Дээрх зурган дээрх дүрмүүд нь доорх эхний мөрөнд байгаа i18n.site
өөрийн холбосон домэйн нэрээр солино уу.
(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")
)
Нэмж дурдахад кэшийн дүрмийг доор үзүүлсэн шиг тохируулж, кэш үргэлжлэх хугацааг нэг сар болгож тохируулна уу.
Дээрх зурган дээрх хоёр дахь алхамд тохирох домэйн нэрийг өөрийн холбосон домэйн нэр болгон өөрчилнө үү.
Эх Газрын Хятадад Вэбсайт Байршуулалтыг Оновчтой Болгох
Хэрэв та эх газрын Хятадын сүлжээний орчинд илүү сайн хүртээмжтэй ажиллахыг хүсвэл эхлээд домэйн нэрээ бүртгүүлнэ үү .
Дараа нь эх газрын + дахь үүлэн борлуулагчдын объектын санг ашигла CDN
Дараах контентыг байрлуул out/main/htm
.
Та нэг хуудасны програмуудад дасан зохицох замыг дахин бичихийн тулд захын тооцооллыг ашиглаж болно. Жишээлбэл, Baidu Smart Cloud CDN
дараах байдлаар тохируулж болно.
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';
})
MX
бичлэг болон CNAME
бичлэг зэрэг нь зэрэгцэн орших боломжгүй тул хэрэв та домэйн нэрийн имэйлийг нэгэн зэрэг хүлээн авахыг хүсвэл CNAME
A
скрипттэй хамтран cname_flatten хэрэгтэй.
Нэмж дурдахад, эх газрын Хятад дахь үүлэн борлуулагчдын хилийн чанад дахь замын хөдөлгөөний төлбөр харьцангуй өндөр байдаг тул та зардлаа оновчтой болгохыг хүсвэл Huawei Cloud DNS ийн үнэ төлбөргүй газарзүйн нягтаршил болон Cloudflare for SaaS хувийн домэйн нэрийг (доор үзүүлсэн шиг) ашиглаж болно замын хөдөлгөөнийг өөрчлөх──Эх газрын Хятад дахь замын хөдөлгөөний чиглүүлэлт Baidu Cloud CDN
, олон улсын урсгал cloudflare .
Эдгээр байршуулалтыг оновчтой болгох шийдлүүд нь илүү төвөгтэй бөгөөд ирээдүйд тусдаа бүлгүүдэд танилцуулагдах болно.
Ерөнхий Домэйн Нэрийг Дахин Чиглүүлэх
Хэрэв та вэбсайтаа үндсэн вэбсайтаа үүсгэхийн тулд i18n.site
ашигладаг бол ихэвчлэн pan-domain дахин чиглүүлэлт, өөрөөр хэлбэл *.xxx.com
ээс ( www.xxx.com
оруулаад) xxx.com
руу дахин чиглүүлэх хандалтыг тохируулах хэрэгтэй.
Энэ шаардлагыг Alibaba Cloud CDN
EdgeScript
( Англи баримт бичиг / Хятад баримт бичиг ) -ийн тусламжтайгаар хийж болно.
Alibaba CDN -д домэйн нэрийг нэмж, Alibaba Cloud CDN
-д *.xxx.com
-ээс CNAME
ыг зааж өгнө үү.
Жишээлбэл, дээрх зурган дээрх пан домэйн нэрийг дахин чиглүүлэх *.i18n.site
тохиргоо дараах байдалтай байна.
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Nginx-Ээр Байрлуулна
nginx -ийн server
out/main/htm
мөрөнд /root/i18n/md/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;
}
}
github action
Тасралтгүй Интеграцид Суурилсан
Та 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 }}
Тохиргооноос харахад энэ ажлын урсгал нь салбар main
ба dist
салбар руу түлхэх үед идэвхждэг.
Ажлын урсгал нь баримт бичгийг нийтлэхийн тулд салбарын нэрэнд харгалзах тохиргооны файлыг ашиглана. Энд .i18n/htm/main.yml
ба .i18n/htm/dist.yml
нийтлэх тохиргоо болгон ашиглана.
Бид баримт бичгийг гаргах үйл явцад дараах шилдэг туршлагуудыг санал болгож байна.
Өөрчлөлтүүдийг main
салбар руу түлхэх үед баримт бичгийг бүтээж, урьдчилан үзэх станцад байршуулна (урьдчилан үзэх станц боломжтой github page ).
Урьдчилан үзэх сайт дээр баримт бичиг зөв эсэхийг баталгаажуулсны дараа кодыг нэгтгэж dist
салбар руу түлхэх ба албан ёсны бүтээн байгуулалт, байршуулалт онлайн болно.
Мэдээжийн хэрэг, дээрх үйл явцыг хэрэгжүүлэхийн тулд илүү олон тохиргоог бичих шаардлагатай.
Ажлын урсгалын скриптийн талаар та бодит төсөл рүү хандаж болно github.com/fcdoc/doc
Тохиргооны secrets.I18N_SITE_TOKEN
ба secrets.NPM_TOKEN
кодын суурь дахь нууц хувьсагчдыг тохируулахыг шаарддаг.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
нь тохиргооны npm
багцын нийтлэх токен npmjs.com нийтлэх зөвшөөрөлтэй токен үүсгэнэ үү.
Лавлах Бүтэц
public
favicon.ico
, robots.txt
гэх мэт вэбсайтын статик файлууд.
Энд байгаа дүрс бүхий файлуудыг ашиглан үүсгэж болно realfavicongenerator.net
.i18n
.i18n
лавлахын доор i18n.site
ийн тохиргооны файлууд, орчуулгын кэш гэх мэт зүйлс байна. Дэлгэрэнгүйг "Тохиргоо" гэсэн дараагийн бүлгээс үзнэ үү.
en
.i18n/conf.yml
тохиргооны файлын fromTo
-ийн en
-т тохирох эх хэлний лавлах
i18n:
fromTo:
en: zh
Орчуулгын тохиргооноос харна уу i18