Ҷойгиркунӣ Ва Онлайн
i18n.site
меъмории як саҳифаи барномаро қабул мекунад ва саҳифаи даромадгоҳи вебсайт ва мундариҷаи вебсайт мустақилона ҷойгир карда мешаванд.
Пас аз иҷро кардани тарҷумаи боло, директорияҳои htm
ва v
дар зери директорияи md/out/dev
тавлид мешаванд.
Дар ин ҷо, 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
npm Воридшавӣ & Post
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
ба муҳити атроф нусхабардорӣ кунед.
Агар шумо номи бастаи v:
дар main.yml
ро тағир диҳед, лутфан аввал .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
ба роҳи префикси URL, ки дар v:
муқаррар шудааст, танзим кунед.
Ниҳоят, вақти кэши роҳеро, ки бо /.v
то 1s
тамом мешавад, танзим кунед , вагарна ба мундариҷаи тозанашршуда фавран дастрас шудан мумкин нест.
Барои кам кардани дархостҳои нолозим вақти кэш барои дигар роҳҳо метавонад як сол ё бештар аз он муқаррар карда шавад.
Мазмуни Мизбон Ба s3
Барои худидоракунии мундариҷа, ба ғайр аз истифодаи сервери худ, як варианти дигари маъмул ин аст, ки S3
CDN
+
Шумо метавонед 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/"
Дар хотир доред, ки CDN
танзим кунед, то вақти кэши роҳе, ки бо /.v
анҷом меёбад, 1s
бошад, вагарна ба мундариҷаи тозанашршуда фавран дастрасӣ пайдо кардан мумкин нест.
Вебсайтро Нашр Кунед
Вебсайтро дар ҳама ҷо ҷойгир кардан мумкин аст github page cloudflare page интихоби хуб аст.
Азбаски вебсайт меъмории як саҳифаи барномаро истифода мебарад, фаромӯш накунед, ки роҳҳои URL-ро, ки аз .
то index.html
надоранд, аз нав нависед.
Саҳифаи вуруди вебсайт бояд танҳо як маротиба ҷойгир карда шавад ва барои навсозиҳои минбаъдаи мундариҷа дубора ҷойгир кардани саҳифаи вуруди вебсайт лозим нест.
Дар Саҳифаи github Ҷойгир Кунед
i18n-demo
сохтани созмон github ин ҷо клик кунед .
Сипас дар зери ин созмон анбори 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 Ҷойгир Кунед
Дар cloudflare page бо github page
, он азнавнависии роҳро таъмин мекунад ва ба материкии Чин бештар мувофиқ аст ва истифодаи он дастрастар аст.
Ҷойгиркунии cloudflare page
одатан ба ҷойгиркунии github page
дар боло асос ёфтааст.
Лоиҳа эҷод кунед ва анбори i18n-demo.github.io
-ро дар боло пайваст кунед.
Раванд дар расми зерин нишон дода шудааст:
Лутфан Add Account
пахш кунед, то дастрасӣ ба созмони i18n-demo
ро диҳад.
Агар шумо анбори ташкилоти дигарро баста бошед, ба шумо лозим меояд, ки пеш аз намоиш додани ташкилоти нав ду маротиба 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_flatten то сатҳи CNAME
ба сабти A
ҳамкорӣ кунед.
Илова бар ин, азбаски пардохти трафики фурӯшандагони абрӣ дар хориҷа дар Чин нисбатан гарон аст, агар шумо хоҳед, ки хароҷотро оптимизатсия кунед, барои ноил шудан ба ҳалли ройгони ҷуғрофии Huawei DNS ва номи домени Cloudflare for SaaS (тавре ки дар зер нишон дода шудааст) истифода баред диверсификатсияи трафик──Маршрути трафик дар материкии Чин Baidu Cloud CDN
, трафики байналмилалӣ cloudflare .
Ин қарорҳои оптимизатсияи густариш мураккабтаранд ва дар оянда дар бобҳои алоҳида муаррифӣ хоҳанд шуд.
Бозгашти Номи Домейнҳои Умумӣ
Агар шумо i18n.site
барои тавлиди вебсайт ҳамчун вебсайти асосии худ истифода баред, одатан ба шумо лозим меояд, ки масири пан-доменро танзим кунед, яъне дастрасии масир ба *.xxx.com
(аз ҷумла www.xxx.com
) ба xxx.com
.
Ин талаботро бо ёрии Alibaba Cloud CDN
EdgeScript
( ҳуҷҷати англисӣ / Ҳуҷҷати чинӣ ) ба даст овардан мумкин аст.
Номи доменро дар Alibaba CDN илова кунед ва номи доменро аз *.xxx.com
то CNAME
дар Alibaba Cloud CDN
нишон диҳед.
Масалан, конфигуратсияи масири пан-домени *.i18n.site
дар расми боло чунин аст:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Бо nginx Ҷойгир Кунед
Лутфан конфигуратсияи /root/i18n/md/out/main/htm
дар out/main/htm
server
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
Муттаҳидсозии Пайваста
Барои танзими 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
Феҳристи забони манбаъ, ки ба en
аз fromTo
дар .i18n/conf.yml
файли конфигуратсия мувофиқ аст
i18n:
fromTo:
en: zh
Лутфан ба конфигуратсияи тарҷума муроҷиат кунед i18