Орналастыру Және Онлайн
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
мәнін өңдеңіз және md:
YOUR_NPM_PACKAGE
npmjs.com өзіңіздің 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
серверіне кіру үшін rclone аласыз, содан кейін келесі сценарийге сілтеме жасап, өзгерте аласыз және әрбір шығарылым үшін тек қосымша өзгерістерді 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/"
/.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
деңгейге cname_flatten A
жазбаға дейін жұмыс істеуіңіз керек.
Бұған қоса, материктік Қытайдағы бұлтты жеткізушілердің шетелдегі трафик төлемдері салыстырмалы түрде қымбат болғандықтан, шығындарды оңтайландырғыңыз келсе, оған қол жеткізу үшін Huawei Cloud тегін географиялық DNS және Cloudflare for SaaS пайдаланушы домен атауын пайдалануға болады трафикті бұру──Материктік Қытайдағы трафик маршруты Baidu Cloud CDN
, халықаралық трафик жүреді cloudflare .
Бұл орналастыруды оңтайландыру шешімдері күрделірек және болашақта бөлек тарауларда енгізіледі.
Жалпы Домен Атауын Қайта Бағыттау
Веб-сайтты негізгі веб-сайт ретінде жасау үшін i18n.site
пайдалансаңыз, әдетте пандоменді қайта бағыттауды конфигурациялауыңыз керек, яғни *.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 Көмегімен Орналастыру
server
out/main/htm
/root/i18n/md/out/main/htm
ұқсас конфигурацияны қосыңыз 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
.i18n/conf.yml
конфигурация файлының fromTo
/ en
-ге сәйкес келетін бастапқы тіл каталогы
i18n:
fromTo:
en: zh
Аударма конфигурациясын қараңыз i18