Bobbaa Fi Toora Interneetii Irratti
i18n.site
arkiteekcharii aplikeeshinii fuula tokkoo kan fudhatu yoo ta'u, fuula seensaa weebsaayitii fi qabiyyeen weebsaayitii of danda'ee bobbaafama.
Hiikkaa armaan olii erga hojjettee booda galmeewwan htm
fi v
galmee md/out/dev
jalatti ni uumamu.
Asitti, dev
faayilii qindeessaa .i18n/htm/dev.yml
irratti hundaa'uun ijaarame jechuudha.
dev
galmee :
Galmeen htm
fuula seensaa weebsaayitii ti.
Galmeen v
qabiyyee weebsaayitii lakkoofsa version qabu of keessaa qaba.
Durargii naannoo lakkoofsa gosa hin dhimmamu fi faayilii hunda gara galmee out/dev/v/0.1.0
waraaba.
Akka ofiisaatti gadhiifamuuf, faayiloota jijjiiraman gara galmee lakkoofsa gosa haaraatti ni waraabamu.
Faayilii Qindeessaa -c
Waliin Ifteessi
Faayiloonni qindeessaa adda addaa galmeewwan walgitan galmee out
keessatti ni uumu.
Fakkeenyaaf, .i18n/htm/main.yml
galmee out/main
ni uuma.
dev.yml
fi main.yml
qindeessaa durtii ti.
dev
gabaabduu development
ti, naannoo guddinaa agarsiisa, durtii naannoodhaaf kan fayyadamu, akkasumas faayilii qindeessaa durtii ti.
ol
gabaabduu online
ti, naannoo toora interneetii agarsiisa, kunis gadhiifamuu ofiisaatiif kan fayyadamu yeroo gadhiisuuf qajoojiiwwan sarara ajajaa -n
hanga npm
fayyadamtu.
Akkasumas faayilii qindeessaa biroo uumuu dandeessa sarara ajaja irratti --htm_conf
fayyadamii maqaa faayilii qindeessaa fayyadamuuf ifteessi:
Fakkeenyaaf:
i18n.site --htm_conf dist --save
Asitti --save
lakkoofsa gosa gadhiifama fooyya'iinsaa bakka bu'a.
Qabiyyee gara npmjs.com maxxansaa
Qabiyyee gara npmjs.com
npm & Maxxansi
nodejs
fe'i , npm login
waliin seeni .
md/.i18n/htm/main.yml
gulaaliitii gatii md:
YOUR_NPM_PACKAGE
jijjiiri akka maqaa paakeejii npm
mataa keetii npmjs.com hojjeta.
Sana booda md/.i18n/htm/main.package.json
fooyyessaa
Hiikkaa fi maxxansuuf galmee md
keessatti i18n.site --npm
ykn i18n.site -n
fiigi.
Yoo maxxansuuf naannoo walitti makamuu walitti fufiinsa qabu fayyadamte, nodejs
fe'uun hin barbaachisu.Hayyama seenee fi maxxansuu ~/.npmrc
gara naannootti waraabuu qofa.
Yoo maqaa paakeejii v:
in main.yml
fooyyessite, maaloo jalqaba .i18n/v/main
haquu kee mirkaneessi , sana booda maxxansuu.
Saarvarii Bakka Bu'aa Npm'n Maxxanfame
Yoo fayyadamtoonni Chaayinaa guddittii rakkoo networkii mudatanii fi paakeejii npm
maxxansuu hin dandeenye, jijjiiramaa naannoo https_proxy
akka sarvarii bakka bu'aa qindeessuuf saaguu danda'u.
Buufata sarvarii bakka bu'aa kee 7890
ta'a jennee yoo fudhanne, barreessuu dandeessa:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Qabiyyee Ofumaan Keessummeefame
Yoo qabiyyee ofumaan keessummeessuu barbaadde, jalqaba md/.i18n/htm/main.yml
gulaaliitii v: //unpkg.com/i18n.site
gara durtii URL keetii jijjiiri, kan akka v: //i18n-v.xxx.com
.
Galmee md
galchiiti fiigi
i18n.site --htm_conf ol --save
ykn gabaabduu jechuudha
i18n.site -c ol -s
Sana booda, qabiyyee galmee md/out/main/v
keessa jiru gara daandii durtii URL v:
keessatti saagameetti qindeessii.
Dhumarratti, yeroo kaachota daandii /.v
hanga 1s
xumuramu qindeessii , yoo kana hin taane qabiyyeen haaraa gadhiifame battalumatti argamuu hin danda'u.
Yeroon kaachota daandii biroof gaaffii hin barbaachifne hir'isuuf waggaa tokkoo fi isaa ol saaguun ni danda'ama.
Qabiyyee Gara S3tti Keessummeessuu
Qabiyyee ofumaan keessummeessuuf, sarvarii mataa keetii fayyadamuu malees, filannoo beekamaan biraa S3
fayyadamuudha 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/"
Yeroon kaachota daandii /.v
xumuramu 1s
akka ta'uuf CDN
qindeessuu yaadadhu, yoo kana hin taane qabiyyeen haaraa gadhiifame battalumatti argamuu hin danda'u.
Marsariitii Maxxansuu
Weebsaayitiin bakka fedhetti bobbaasuun ni danda'ama github page akkasumas cloudflare page filannoo gaarii dha.
Marsariitichi ijaarsa aplikeeshinii fuula tokkoo waan fayyadamuuf, daandii URL .
hanga index.html
hin qabne irra deebi'ii barreessuu yaadadhu.
Fuulli galmee weebsaayitii al tokko qofa bobbaasuun kan barbaachisu yoo ta'u, fooyya'iinsa qabiyyee itti aanuuf fuula galmee weebsaayitii irra deebi'anii bobbaasuun hin barbaachisu.
Fuula github Irratti Bobbaasaa
Jalqaba github tuquun dhaabbata uumuuf Maqaan dhaabbataa armaan gadii akka fakkeenyaatti i18n-demo
dha.
Sana booda dhaabbata kana jalatti warehouse i18n-demo.github.io
uumi (maaloo i18n-demo
maqaa dhaabbata uumteen bakka buusi):
Qabiyyee barruu darbe keessa yeroo maxxansitu, out/main/htm
uumameera Maaloo galmee kana galchiiti fiigi :
ln -s index.html 404.html
github page
irra deebi'ee barreessuu daandii URL waan hin deeggarreef, 404.html
bakka isaa fayyadama.
Sana booda ajaja armaan gadii galmee htm
keessatti hojjedhu ( i18n-demo/i18n-demo.github.io.git
teessoo kuusaa mataa keetiin bakka buusuu yaadadhu) :
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
Erga koodii dhiibdee booda, osoo hin argatin dura bobbii github page
milkaa'inaan akka hojjetu eegi (akkuma armaan gadiitti).
Fuula demo'f mee ilaalaa:
https://i18n-demo.github.io
Fuula cloudflare Irratti Bobbaasaa
cloudflare page github page
Bobba'iinsi cloudflare page
yeroo baay'ee bobbii github page
armaan olitti ibsame irratti hundaa'a.
Pirojektii uumuu fi mana kuusaa i18n-demo.github.io
armaan olii hidhu.
Adeemsi isaas fakkii armaan gadii irratti mul’ateera:
Maaloo Add Account
cuqaasuun dhaabbata i18n-demo
qaqqabummaa hayyamaa .
Yoo mana kuusaa dhaabbata biraa hidhatte, dhaabbati haaraan osoo hin mul'atin dura yeroo lama hayyamuuf Add Account
cuqaasuu si barbaachisuu danda'a.
Itti aansuudhaan, mana kuusaa i18n-demo.github.io
fili, kana booda Begin setup
cuqaasi, fi gatiiwwan durtii tarkaanfiiwwan itti aanan fayyadami.
Yeroo jalqabaaf erga hidhattee booda, osoo itti hin argatin daqiiqaa muraasa eeguu qabda.
Erga bobbaa'ee booda, maqaa domeenii amala hidhuu dandeessa.
Erga maqaa domeenii amala hidhee booda, maaloo gara maqaa domeenii deemii irra deebi'anii barreessuu daandii aplikeeshinii fuula tokkoo qindeessi, akkuma armaan gadiitti:
Seerotni suuraa armaan olii irratti mul'atan akka armaan gadiitti argamu Maaloo i18n.site
sarara jalqabaa armaan gadii irratti maqaa domeenii hidhuun bakka buusi.
(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")
)
Dabalataan, maaloo seera kaachota qindeessii, akkuma armaan gaditti mul'atu, fi yeroo kaachota ji'a tokkootti saagi.
Maaloo walsimsiisu maqaa domeenii tarkaanfii lammaffaa suuraa armaan olii keessatti gara maqaa domeenii ati hidhetti jijjiiri.
Chaayinaa Guddittii Keessatti Bobbii Marsariitii Fooyyessuu
Naannoo networkii Chaayinaa guddittii keessatti raawwii dhaqqabummaa fooyya’aa argachuu yoo barbaaddan, maaloo dursa maqaa domeenii galmeessaa .
Sana booda, kuusaa wantootaa gurgurtoota duumessaa + guddittii keessatti fayyadami CDN
Qabiyyee armaan gadii bobbaasuu out/main/htm
.
Karaa irra deebitee barreessuudhaaf shallaggii qarqara fayyadamuu dandeessa Fakkeenyaaf, Baidu Smart Cloud CDN
akkasitti qindeessuu ni danda'ama:
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
// Mataduree deebii akka firii sirreessuuf saaguu ni danda'ama, kan akka out.XXX = 'MSG';
})
Galmeen MX
fi galmeen CNAME
waliin jiraachuu waan hin dandeenyeef, yeroo A
iimeelii maqaa domeenii fudhachuu yoo CNAME
, iskiriiptii cname_flatten
Dabalataanis, kaffaltiin tiraafikaa biyya alaa daldaltoota duumessaa Chaayinaa guddittii keessatti qaala'aa waan ta'eef, baasii fooyyessuu yoo barbaaddan, DNS Cloud 's free geographical resolution fi Cloudflare for SaaS 's custom domain name (akkuma armaan gadiitti mul'atu) fayyadamuun galmaan gahuu dandeessu tiraafikaa gara biraatti jijjiiruu──Daandii tiraafikaa Chaayinaa guddittii keessatti Baidu Cloud CDN
, tiraafikaa idil-addunyaa cloudflare .
Furmaatni bobbii fooyyessuu kun caalaatti walxaxaa waan ta’aniif gara fuulduraatti boqonnaa adda addaa keessatti kan dhiyaatan ta’a.
Qajeelfama Maqaa Domeenii Waliigalaa
Yoo i18n.site
fayyadamtee marsariitii akka marsariitii kee isa guddaatti uumte, yeroo baayyee kallattii pan-domain qindeessuu qabda, jechuunis, qaqqabummaa gara *.xxx.com
( www.xxx.com
dabalatee) gara xxx.com
tti qajeelchuu qabda.
Ulaagaa kana gargaarsa Alibaba Cloud CDN
EdgeScript
( English document / Chinese document ) tiin galma gahuu danda'a .
Maqaa domeenii CDN Cloud keessatti dabaluudhaan maqaa domeenii *.xxx.com
hanga CNAME
Alibaba Cloud CDN
keessatti akeekaa .
Fakkeenyaaf, qindeessaan kallattii irra deebi'uu maqaa pan-domain kan *.i18n.site
fakkii armaan olii keessatti akka armaan gadiitti:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
nginx Waliin Bobbaasuu
Maaloo qindeessaa kan armaan gadii keewwata server
nginx keessatti dabali Maaloo /root/i18n/md/out/main/htm
gara daandii pirojektii mataa keetii out/main/htm
jijjiiri :
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;
}
}
Ida’amuu Walitti Fufiinsa Qabu github action
Irratti Hundaa’uun
github action
kee qindeessuuf kanneen armaan gadii ilaaluu dandeessa :
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 }}
Akkuma qindeessaa keessatti mul'atu, adeemsi hojii kun yeroo gara damee main
fi damee dist
dhiibu ni kakaasa.
Adeemsi hojii galmee maxxansuuf faayilii qindeessaa maqaa damee wajjin walsimu fayyadama Asitti, .i18n/htm/main.yml
fi .i18n/htm/dist.yml
akka qindeessaa maxxansuutti akkaataa walduraa duubaan fayyadamu.
Adeemsa gadhiifama sanadaaf muuxannoowwan gaarii armaan gadii ni gorsina:
Yeroo jijjiiramni gara damee main
tti dhiibamu, galmeen akka ijaaramuu fi gara buufata durtiitti bobbaa'uuf kaka'a (buufata durtii ni argama github page ).
Erga galmeen sun sirrii ta'uu isaa saayitii durtii irratti mirkaneessee booda, koodii walitti makamee gara damee dist
tti dhiibama, ijaarsi fi bobba'iinsi ofiisaa toora interneetii irratti ni seena.
Dhugaadha, adeemsa armaan olii hojiirra oolchuun qindeessuu baay'ee barreessuu gaafata.
github.com/fcdoc/doc adeemsa hojiif pirojektii qabatamaa ilaaluu dandeessa.
secrets.I18N_SITE_TOKEN
fi secrets.NPM_TOKEN
qindeessaa keessatti jijjiiramoota dhoksaa bu'uura koodii keessatti qindeessuu si barbaachisa.
I18N_SITE_TOKEN
Argachuu i18n.site/token
NPM_TOKEN
mallattoo maxxansaa paakeejii npm
qindeessaa keessatti npmjs.com
Caasaa Galmee
public
Faayilota istaatiksii marsariitichaa, kan akka favicon.ico
, robots.txt
, fi kkf.
Faayiloonni mallattoo asitti argaman realfavicongenerator.net
.i18n
Galmee .i18n
jalatti faayilii qindeessaa, kaachota hiikkaa fi kkf kan i18n.site
Bal'ina isaaf boqonnaa itti aanu "Qindeessituu" ilaali.
en
Galmee afaan madda, faayilii qindeessaa .i18n/conf.yml
keessaa fromTo
keessaa en
wajjin walsimu
i18n:
fromTo:
en: zh
Mee qindeessaa hiikkaa ilaalaa i18