Instruere and Online
i18n.site
una pagina applicationem architecturae adhibet , ac pagina introitus paginae ac paginae paginae separatim explicantur.
Post translationem praedictam currens, directoria htm
et v
generabuntur sub md/out/dev
directorio.
Hic, dev
significat constructum ex fasciculo .i18n/htm/dev.yml
configurationis.
dev
presul :
htm
directorium paginae introitus website est.
Index v
pagina contenta numeris versionis continet.
Praevius localis de numero versionis non curat et omnia documenta ad out/dev/v/0.1.0
directorium describet.
Officialis emissio, tabulae mutatae ad numerum directorium novae versionis transcribendae erunt.
Denota Configuration File Cum -c
Diversae imaginum conformationes in directoriis out
directoriis respondentes creabunt.
Exempli gratia, .i18n/htm/main.yml
out/main
directorium creabit.
dev.yml
et main.yml
figurarum default sunt.
dev
est abbreviatio development
, indicans evolutionis ambitum, loci praevisum adhibitum, ac etiam fasciculi configurationis default.
ol
est abbreviatio online
, -n
ambitus online, quae ad missionem officialis adhibetur npm
Alias tabulas configurationis creare potes. Utere --htm_conf
in linea mandati ut definias nomen limae configurationis utendi:
exempli gratia:
i18n.site --htm_conf dist --save
Hic --save
significat numerum renovationis emissio versionis.
Audire contenta npmjs.com
Contentus publici ad npmjs.com est suadetur default solutionis (vide Front-end High Availability ).
npm &
Install nodejs
, ini cum npm login
.
Edit md/.i18n/htm/main.yml
et valorem md:
YOUR_NPM_PACKAGE
muta ut nomen tuum npm
sarcina npmjs.com
Tum mutare md/.i18n/htm/main.package.json
Curre i18n.site --npm
vel i18n.site -n
in indice md
ad transferendum et evulgandum.
Si ambitu continua integratione uteris ad publicandum, opus non est instituere nodejs
Iustus effingo usores et libellos permissionum ~/.npmrc
rerum in ambitu.
Si sarcina nomen v:
in main.yml
mutare, cave prius .i18n/v/main
delere et deinde illud ede.
Proxy
Si usores in continenti Sinis difficultates retis conveniant et npm
sarcinas edere nequeant, ambitum variabilem https_proxy
constituere possunt ut procuratorem configurare possit.
Posito quod procuratorem tuum porto servo 7890
sit, scribere potes:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Contentus Auto-Hosted
Si contentus sui exercitus vis, primum md/.i18n/htm/main.yml
recensere et v: //unpkg.com/i18n.site
in praepositionem tuam mutare, ut v: //i18n-v.xxx.com
.
Intra in md
directorium et procursu
i18n.site --htm_conf ol --save
aut abbreviationem
i18n.site -c ol -s
Deinde configurare contentum in indice md/out/main/v
inscriptionis ad praefixum URL iter in v:
.
Denique configurare tempus latibulum semitae in /.v
ad 1s
desinentis , alioquin contentus recenter emissus statim accedere non potest.
Latibulum tempus aliarum viarum ad unum annum vel amplius constitui potest ut necessarias petitiones minuat.
Exercitum Contentus Ad s3
Ad contentum hospitii sui, praeterquam utendo tuo servo, alia optio CDN
S3
utatur +
Potes utere rclone ut stipes in servo S3
, deinde ad scriptam sequentia refer ac mitiganda, et tantum exemplar mutationes incrementales ad S3
pro singulis emissio.
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/"
Memento configurare CDN
ut tempus latibulum semitae in /.v
desinentis 1s
sit, alioquin contentus recenter emissus statim accedere non potest.
Publish Website
Pagina alicubi explicari potest github page et cloudflare page bonae electiones sunt.
Quia pagina una pagina applicationis architecturae utitur, memento rescribere semitas URL quae non continent .
ad index.html
.
Pagina ingressu solum necessario semel explicanda est, nec opus est ut paginam ingressu paginae redeployt pro contentis subsequentibus updates.
Deploy in github Pagina
Primum preme hic github organizationem creare . Sequens ordo nomen est i18n-demo
exemplum.
Tunc CELLA i18n-demo.github.io
crea sub hac ordinatione (placere repone i18n-demo
cum ordinatione nomen tuum creatum);
Cum contenta in superiori articulo edis, out/main/htm
generatum est :
ln -s index.html 404.html
Quia github page
iter URL rescribentis non sustinet, 404.html
loco ponitur.
Sequens mandatum currite in directorio htm
(memini reponere i18n-demo/i18n-demo.github.io.git
cum inscriptione sua CELLA) :
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
Imposito codice, exspecta instruere github page
ut feliciter (ut infra patebit) antequam ad illum accedere possis.
Pro demo pagina videbis:
https://i18n-demo.github.io
Deploy in cloudflare Pagina
cloudflare page Comparatus cum github page
, iter rescribendi praebet et magis ad Sinas continenti amicabilius et expeditius est.
Instruere plerumque cloudflare page
in instruere github page
supra.
Fac consilium et liga i18n-demo.github.io
warehouse supra.
Processus ostenditur in figura infra:
Please click Add Account
to grant access to organization i18n-demo
.
Si horreum alterius organizationis ligaveris, necesse est ut bis Add Account
click auctorizare bis antequam nova institutio exhibeatur.
Deinde, elige CELLA i18n-demo.github.io
, deinde deprime Begin setup
et utere valores defectus pro gradibus subsequentibus.
Post primum alligandum, paucis minutis exspectare debes antequam ad eam accedere possis.
Post instruere, consuetum nomen domain obligare potes.
Consuetum nomen domicilii post ligans, quaeso i ad nomen dominicum configurare iter rescribendi applicationis unius paginae, ut infra ostendetur:
Regulae in pictura superiore haec sunt. Quaeso i18n.site
in prima linea infra, cum nomine regio ligabis, restitue.
(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")
)
Praeterea, quaeso, regulas caches configurare, ut infra ostendetur, et latibulum spatium ad unum mensem pone.
Quaeso mutare nomen dominii matching in secundo gradu in pictura supra ad nomen domain ligatum.
Optimising Website Instruere in Continenti Sinis
Si vis ad meliorem accessibilitatem perficiendi in retis continentis Sinarum ambitu, primum nomen ditionis subcriptio placet.
Deinde CDN
consilio out/main/htm
mercatorum nubium in continenti China +
Ora computando uti potes ut viam rescribas ad applicationes ad singulas paginas accommodandas. Exempli gratia, Baidu Smart Cloud CDN
configurari potest sic:
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
// Potes responsionem header ad output debug, ut out.XXX = 'MSG';
})
Quia record MX
et recordum CNAME
coexistere non possunt, si nomen domicilii nomen emails simul recipere vis, cooperari debes cum cname_flatten ut libra CNAME
in recordum A
.
Praeterea, quod negotiatores transmarinae negotiatores nebulae Cloudflare for SaaS continenti Sinis relative pretiosae sunt, si sumptus optimize vis, Huawei Cloud uti potes DNS mercatura distringere──Traffic fuso in continenti Sinis Baidu Cloud CDN
, mercatura internationalis cloudflare accedit.
Hae solutiones optimizationis instruere magis implicatae sunt et in singulis capitibus in futurum introduci.
Nomen Domain Nomen Generale Redirection
Si i18n.site
uteris ad generandum locum in principali loco tuo, solere debes configurare redirectionem pan-domain, id est, redirectam accessum ad *.xxx.com
(including www.xxx.com
) ad xxx.com
.
Haec postulatio fieri potest ope Alibabae Cloud CDN
EdgeScript
( documentum Anglicum / Sinica documentum )
Add the domain name in Alibaba Cloud CDN and point the domain name *.xxx.com
to CNAME
in Alibaba Cloud CDN
.
Exempli gratia, nomen redirectionis pan-dominicae figurae *.i18n.site
in imagine supra se habet:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Explicare Cum nginx
Quaeso adde configurationem similem /root/i18n/md/out/main/htm
in server
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;
}
}
Ex github action
Continua Integratio
Ad sequentia referre potes ut configurare tuum 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 }}
Ut in configuratione videri potest, hic labor fluxus utitur cum ad ramum main
et ramum dist
impellitur.
Operis fluxus utetur lima configuratione respondentem nomini ramo ad documentum edendum. Hic, .i18n/htm/main.yml
et .i18n/htm/dist.yml
adhibebitur ut configurationis divulgationis respective.
Praecipua sequentia exercitia commendamus ad processum emissionis documenti:
Cum mutationes ad ramum impelluntur main
, documentum utitur ut aedificandum et ad stationem praevius (praevius statio praesto est github page ).
Postquam confirmans documentum recte in situ praevisum esse, signum mergetur et impelletur ad ramum dist
, et officialis constructio et instruere in online ibit.
Utique, supra processum exsequens plura scribendarum conformationes requirit.
Referre potes ad rem ipsam github.com/fcdoc/doc pro scripting workflow.
secrets.I18N_SITE_TOKEN
et secrets.NPM_TOKEN
in configuratione require te variabiles secretas in basi codice configurare.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
signum edendi sarcinarum npm
in configuratione npmjs.com
Directory Structure
public
Paginae staticae paginae, ut favicon.ico
, robots.txt
, etc.
The icon files here can be generated with realfavicongenerator.net
.i18n
Sub .i18n
directorio sunt fasciculi configurationis, cache translationis, etc. de i18n.site
Vide proximum caput "Configurationis" pro singulis.
en
Fons directorium linguae, respondens en
of fromTo
in .i18n/conf.yml
fasciculi configurationis
i18n:
fromTo:
en: zh
Quaeso ad configurationem translationis refer i18