ನಿಯೋಜನೆ ಮತ್ತು ಆನ್ಲೈನ್

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 ರ ಮೌಲ್ಯವನ್ನು ನಿಮ್ಮದೇ 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/"

CDN ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಮರೆಯದಿರಿ ಆದ್ದರಿಂದ /.v ರಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಮಾರ್ಗದ ಸಂಗ್ರಹ ಸಮಯ 1s ಆಗಿರುತ್ತದೆ, ಇಲ್ಲದಿದ್ದರೆ ಹೊಸದಾಗಿ ಬಿಡುಗಡೆಯಾದ ವಿಷಯವನ್ನು ತಕ್ಷಣವೇ ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ.

ವೆಬ್ಸೈಟ್ ಪ್ರಕಟಿಸಿ

ವೆಬ್ಸೈಟ್ ಅನ್ನು ಎಲ್ಲಿ ಬೇಕಾದರೂ ನಿಯೋಜಿಸಬಹುದು github page ಮತ್ತು cloudflare page ಉತ್ತಮ ಆಯ್ಕೆಗಳು.

ವೆಬ್ಸೈಟ್ ಒಂದೇ ಪುಟದ ಅಪ್ಲಿಕೇಶನ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಬಳಸುವುದರಿಂದ, . ರಿಂದ index.html ಅನ್ನು ಹೊಂದಿರದ URL ಮಾರ್ಗಗಳನ್ನು ಪುನಃ ಬರೆಯಲು ಮರೆಯದಿರಿ.

ವೆಬ್ಸೈಟ್ ಪ್ರವೇಶ ಪುಟವನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ನಿಯೋಜಿಸಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ನಂತರದ ವಿಷಯ ನವೀಕರಣಗಳಿಗಾಗಿ ವೆಬ್ಸೈಟ್ ಪ್ರವೇಶ ಪುಟವನ್ನು ಮರುಹಂಚಿಕೆ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.

ಗಿಥಬ್ ಪುಟದಲ್ಲಿ ನಿಯೋಜಿಸಿ

ಸಂಸ್ಥೆಯನ್ನು ರಚಿಸಲು ಮೊದಲು github ಕ್ಲಿಕ್ ಮಾಡಿ i18n-demo ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ.

ನಂತರ ಈ ಸಂಸ್ಥೆಯ ಅಡಿಯಲ್ಲಿ ವೇರ್ಹೌಸ್ i18n-demo.github.io ಅನ್ನು ರಚಿಸಿ (ದಯವಿಟ್ಟು i18n-demo ನೀವು ರಚಿಸಿದ ಸಂಸ್ಥೆಯ ಹೆಸರಿನೊಂದಿಗೆ ಬದಲಾಯಿಸಿ):

ಹಿಂದಿನ ಲೇಖನದಲ್ಲಿ ವಿಷಯವನ್ನು ಪ್ರಕಟಿಸುವಾಗ, out/main/htm ರಚಿಸಲಾಗಿದೆ ದಯವಿಟ್ಟು ಈ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ರನ್ ಮಾಡಿ :

ln -s index.html 404.html

URL ಮಾರ್ಗವನ್ನು ಪುನಃ ಬರೆಯುವುದನ್ನು github page ಬೆಂಬಲಿಸುವುದಿಲ್ಲವಾದ್ದರಿಂದ, ಬದಲಿಗೆ 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

ಕ್ಲೌಡ್ಫ್ಲೇರ್ ಪುಟದಲ್ಲಿ ನಿಯೋಜಿಸಿ

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
  // ಔಟ್ಪುಟ್ನಂತಹ ಡೀಬಗ್ ಔಟ್ಪುಟ್ಗೆ ಪ್ರತಿಕ್ರಿಯೆ ಹೆಡರ್ಗಳನ್ನು ಹೊಂದಿಸಬಹುದು.XXX = 'MSG';
})

ರೆಕಾರ್ಡ್ MX ಮತ್ತು ರೆಕಾರ್ಡ್ CNAME ಸಹ ಅಸ್ತಿತ್ವದಲ್ಲಿರಲು ಸಾಧ್ಯವಿಲ್ಲ, ನೀವು ಅದೇ ಸಮಯದಲ್ಲಿ ಡೊಮೇನ್ ಹೆಸರಿನ ಇಮೇಲ್ಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಬಯಸಿದರೆ, cname_flatten CNAME ಹಂತಕ್ಕೆ ರೆಕಾರ್ಡ್ A ಗೆ ಸಹಕರಿಸಬೇಕು.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಚೀನಾದ ಮುಖ್ಯ ಭೂಭಾಗದಲ್ಲಿರುವ ಕ್ಲೌಡ್ ಮಾರಾಟಗಾರರ ಸಾಗರೋತ್ತರ ಟ್ರಾಫಿಕ್ ಶುಲ್ಕಗಳು ತುಲನಾತ್ಮಕವಾಗಿ ದುಬಾರಿಯಾಗಿರುವುದರಿಂದ, ನೀವು ವೆಚ್ಚವನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಬಯಸಿದರೆ, ನೀವು ಸಾಧಿಸಲು DNS Cloud ನ ಉಚಿತ ಭೌಗೋಳಿಕ ರೆಸಲ್ಯೂಶನ್ ಮತ್ತು Cloudflare for SaaS ನ ಕಸ್ಟಮ್ ಡೊಮೇನ್ ಹೆಸರನ್ನು (ಕೆಳಗೆ ತೋರಿಸಿರುವಂತೆ) ಬಳಸಬಹುದು ಟ್ರಾಫಿಕ್ ಡೈವರ್ಶನ್──ಚೀನಾ ಬೈದು ಕ್ಲೌಡ್ CDN ಮುಖ್ಯ ಭೂಭಾಗದಲ್ಲಿ ಟ್ರಾಫಿಕ್ ರೂಟಿಂಗ್ , ಅಂತರಾಷ್ಟ್ರೀಯ ಸಂಚಾರ cloudflare .

ಈ ನಿಯೋಜನೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ಪರಿಹಾರಗಳು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿವೆ ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಅಧ್ಯಾಯಗಳಲ್ಲಿ ಪರಿಚಯಿಸಲಾಗುವುದು.

ಜೆನೆರಿಕ್ ಡೊಮೇನ್ ಹೆಸರು ಮರುನಿರ್ದೇಶನ

ನಿಮ್ಮ ಮುಖ್ಯ ವೆಬ್ಸೈಟ್ನಂತೆ ವೆಬ್ಸೈಟ್ ಅನ್ನು ರಚಿಸಲು ನೀವು i18n.site ಬಳಸಿದರೆ, ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ಯಾನ್-ಡೊಮೇನ್ ಮರುನಿರ್ದೇಶನವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ, ಅಂದರೆ, *.xxx.com ( www.xxx.com ಸೇರಿದಂತೆ) ಗೆ xxx.com ಗೆ ಪ್ರವೇಶವನ್ನು ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ.

ಈ ಅಗತ್ಯವನ್ನು ಅಲಿಬಾಬಾ ಕ್ಲೌಡ್ CDN EdgeScript ( ಇಂಗ್ಲಿಷ್ ಡಾಕ್ಯುಮೆಂಟ್ / ಚೈನೀಸ್ ಡಾಕ್ಯುಮೆಂಟ್ ) ಸಹಾಯದಿಂದ ಸಾಧಿಸಬಹುದು

CDN ಮೇಘದಲ್ಲಿ ಡೊಮೇನ್ ಹೆಸರನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಅಲಿಬಾಬಾ ಕ್ಲೌಡ್ CDN ರಲ್ಲಿ ಡೊಮೇನ್ ಹೆಸರನ್ನು *.xxx.com ರಿಂದ CNAME ಸೂಚಿಸಿ.

ಉದಾಹರಣೆಗೆ, ಮೇಲಿನ ಚಿತ್ರದಲ್ಲಿ *.i18n.site ರ ಪ್ಯಾನ್-ಡೊಮೇನ್ ಹೆಸರು ಮರುನಿರ್ದೇಶನ ಸಂರಚನೆಯು ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ:

rewrite(concat('https://i18n.site',$uri), 'redirect',301)

nginx ನೊಂದಿಗೆ ನಿಯೋಜಿಸಿ

nginx ನ server ಪ್ಯಾರಾಗ್ರಾಫ್ನಲ್ಲಿ /root/i18n/md/out/main/htm ಹೋಲುವ ಸಂರಚನೆಯನ್ನು ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸ್ವಂತ ಯೋಜನೆ 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