דיפּלוימאַנט און אָנליין
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 & פּאָסטן
ינסטאַלירן nodejs
, קלאָץ אין מיט npm login
.
רעדאַגירן md/.i18n/htm/main.yml
און טוישן די ווערט פון md:
YOUR_NPM_PACKAGE
ווי דיין אייגן npm
פּעקל נאָמען וועט npmjs.com .
דערנאָך מאָדיפיצירן md/.i18n/htm/main.package.json
לויפן i18n.site --npm
אָדער i18n.site -n
אין די md
וועגווייַזער צו איבערזעצן און אַרויסגעבן.
אויב איר נוצן אַ קעסיידערדיק ינטאַגריישאַן סוויווע צו אַרויסגעבן, עס איז ניט דאַרפֿן צו ינסטאַלירן 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
צו זיך-באַלעבאָס אינהאַלט, אין אַדישאַן צו CDN
דיין אייגענע סערווער, אן אנדער פּראָסט אָפּציע איז צו נוצן S3
+
איר קענט נוצן 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
דערנאָך שאַפֿן ווערכאַוס 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 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
// ענטפער כעדערז קענען זיין באַשטימט צו דיבאַג רעזולטאַט, אַזאַ ווי אָוט.קסקסקס = 'מסג';
})
ווייַל רעקאָרד MX
און רעקאָרד CNAME
קענען נישט קאָויגזיסטירן, אויב איר ווילן צו באַקומען פעלד נאָמען ימיילז אין דער זעלביקער צייט, איר דאַרפֿן צו קאָואַפּערייט מיט די cname_flatten צו מדרגה CNAME
אין רעקאָרד A
!
אין אַדישאַן, ווייַל די מעייווער - לייאַם פאַרקער טשאַרדזשיז פון וואָלקן ווענדאָרס אין יאַבאָשע טשיינאַ זענען לעפיערעך טייַער, אויב איר ווילן צו אַפּטאַמייז קאָס, איר קענען נוצן DNS פריי דזשיאַגראַפיקאַל האַכלאָטע פון Huawei Cloud און Cloudflare for SaaS ס מנהג פעלד נאָמען (ווי געוויזן אונטן) צו דערגרייכן פאַרקער דייווערזשאַן── פאַרקער רוטינג אין יאַבאָשע טשיינאַ באַידו קלאָוד 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
ביטע לייג out/main/htm
קאַנפיגיעריישאַן ענלעך צו די פאלגענדע אין די server
/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/dist.yml
אַרויסגעבן דעם .i18n/htm/main.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 שאַפֿן אַ טאָקען מיט ארויסגעבן פּערמישאַנז (ווי געוויזן אונטן).
Directory סטרוקטור
public
סטאַטיק טעקעס פון דעם וועבזייטל, אַזאַ ווי favicon.ico
, robots.txt
, עטק.
די בילדל טעקעס דאָ קענען זיין דזשענערייטאַד מיט realfavicongenerator.net
.i18n
אונטער די .i18n
וועגווייַזער זענען די קאַנפיגיעריישאַן טעקעס, איבערזעצונג קאַש, עטק פון i18n.site
זען די ווייַטער קאַפּיטל "קאָנפיגוראַטיאָן" פֿאַר פרטים.
en
מקור שפּראַך וועגווייַזער, קאָראַספּאַנדינג צו en
פון fromTo
אין .i18n/conf.yml
קאַנפיגיעריישאַן טעקע
i18n:
fromTo:
en: zh
ביטע אָפּשיקן צו די קאַנפיגיעריישאַן פון איבערזעצונג i18