Uñstayaña Ukat Internet Tuqi

i18n.sitesapa pankan arquitectura de aplicación ukaruw apnaqi, ukatx sitio web ukar mantañ panka ukat sitio web ukan contenido ukax independientemente uñstayatawa.

Aka pata jaqukipäwi apnaqañ tukuyatatxa, htm ukat v directorios ukanakax md/out/dev directorio ukan luratäniwa.

Aka chiqanx dev ukax .i18n/htm/dev.yml configuración archivo ukarjam luratawa sañ muni.

dev directorio :

htm directorio ukax sitio web ukar mantañ uñacht’äwiwa.

v directorio ukax sitio web ukan contenido ukan versión jakhunakampiw utji.

Local preview ukax janiw versión número ukat llakiskiti ukatx taqi archivonakax out/dev/v/0.1.0 directorio ukar copiañapawa.

Oficial uñstayañatakix mayjt’at qillqatanakax machaq versión jakhunak directorio ukar copiatäniwa.

Uñacht’ayaña Configuración Archivo Ukaxa -c

Kunayman configuración qillqatanakax out directorio ukanx directorios correspondientes ukanakaw lurasini.

Amuyt’añataki, .i18n/htm/main.yml ukax out/main directorio uñstayañapawa.

dev.yml ukat main.yml ukax configuración predeterminada ukawa.

dev ukax development ukan jisk’a arupawa, ukax lurañ pacha uñacht’ayi, ukax local ukan nayrïr uñakipañatakiw apnaqasi, ukatx ukax configuración de configuración predeterminada ukhamarakiwa. ol ukax online ukan abreviaturapawa, ukax en línea ukan pachap uñacht’ayi, ukax oficial ukan mistuñapatakiw apnaqasi Ukhamaraki, ukax parámetros de línea de comandos -n ukat npm ukar mistuñatakix apnaqatarakiwa.

Ukhamaraki yaqha wakicht’awi qillqatanaka lurañawa --htm_conf kamachina chimpumpi apnaqaña wakichawi qillqawi suti uñacht’ayañataki:

ukhama:

i18n.site --htm_conf dist --save

Aka --save ukax machaq uñstawi versión jakhu uñacht’ayi.

Contenido ukax npmjs.com ukar uñt’ayatawa

npmjs.com

npm &

nodejs ukar mantañamawa, npm login ukampiw mantañama.

md/.i18n/htm/main.yml chiqañchaña ukatxa md: YOUR_NPM_PACKAGE mayjt’ayaña kunjamatixa juma pachpa npm paquete sutimpixa npmjs.com

Ukatxa md/.i18n/htm/main.package.json ukja mayjt’ayaña

md directorio ukan i18n.site --npm jan ukax i18n.site -n t’ijt’ayañaw jaqukipañataki ukat uñt’ayañataki.

Uñt’ayañatakix mä sarantañ mayacht’asiñ pacha apnaqañamawa, janiw nodejs uñstayañax wakiskiti, ukakipkarakiw mantañ ukhamarak uñt’ayañ permisos ~/.npmrc pachamamar copiaña.

Ukax v: ukan main.yml ukan paquete sutip mayjt’ayatäni ukhaxa, nayraqat .i18n/v/main chhaqtayañaw wakisi , ukatx uñt’ayañawa.

Servidor Proxy Ukax npm Ukan Uñt’ayatawa

China continental uksan apnaqirinakax red ukan jan walt’awinakamp jikxatasipk ukhax janiw npm paquetes ukar uñt’ayañ atkiti, jupanakax variable de medio ambiente https_proxy ukar proxy servidor ukar uñt’ayañatak utt’ayapxaspaw.

Proxy servidor puerto ukax 7890 ukhamawa sasin amuyt’asax akham qillqt’asma:

https_proxy=http://127.0.0.1:7890 i18n.site -n

Jupa Pachpa Uñt’ayata Contenido

Uka contenido ukar auto-host lurañ munsta ukhax nayraqatax md/.i18n/htm/main.yml ukar editar ukat v: //unpkg.com/i18n.site ukar URL prefijo ukar mayjt’ayaña, kunjamatix v: //i18n-v.xxx.com .

md directorio ukar mantañamawa ukat t’ijt’añamawa

i18n.site --htm_conf ol --save

jan ukax abreviatura

i18n.site -c ol -s

Ukatxa, md/out/main/v directorio ukan utjki ukanak URL prefijo thakhi v: ukan utt’ayat ukarjam wakicht’aña.

Tukuyañatakix, thakhix /.v ukat 1s ukjam tukuyañ thakhin caché pachap wakicht’aña , jan ukhamäkanixa, jichhak uñstayat yänakax janiw jank’ak mantañjamäkiti.

Yaqha thakhinakatakix caché pachax mä mara jan ukax juk’ampiruw utt’ayasispa, jan wakiskir mayiwinak jisk’achañataki.

Contenido Ukax s3 Ukaruw Uñt’ayasi

Contenido auto-host ukatakixa, servidor apnaqañat sipansa, CDN común amtawix 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/"

Amtañani CDN ukar wakicht’aña ukhamat /.v ukan tukuyir thakhin caché pachapax 1s ukhamäñapataki, jan ukhamäkanixa, jichhak apsutanakax janiw jank’ak mantañjamäkiti.

Sitio Web Ukar Uñt’ayaña

Sitio web ukax kawkhans uñstayasispawa, github page cloudflare page ukax aski ajlliwinakawa.

Kunatix sitio web ukax mä sapa panka arquitectura de aplicación uka apnaqi, amtañaniw URL thakhinak wasitat qillqt’aña, ukax janiw . ukat index.html ukanak utjkiti.

Sitio web ukar mantañ pankax mä kutikiw uñstayañapa, ukatx janiw sitio web ukar mantañ pankax qhipa contenido ukar machaqar tukuyañatakix wasitat uñstayañax wakiskiti.

github Ukan Uñt’ayaña

Nayraqatax aka tuqir ch'iqt'am github tama lurañatakix aka tantachäw sutix i18n-demo uñacht'äwiwa.

Ukatx aka tama taypinx i18n-demo.github.io almacén lurañaw ( i18n-demo ukax lurat taman sutipampiw mayjt’ayañama):

Nayra qillqatan qillqatanakap uñt’ayasaxa, out/main/htm ukaw utji Aka directorio ukar mantam ukat :

ln -s index.html 404.html

Kunatix github page ukax janiw URL thakhi wasitat qillqañ yanapt’kiti, 404.html ukax uka lantix apnaqatawa.

Ukatxa aka kamachi htm directorio ukanxa phuqhañapawa (amtañani i18n-demo/i18n-demo.github.io.git pachpa almacén dirección ukamp turkañawa) :

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

Código ukar ch’amanchañ tukuyasax, github page ukan uñstayawipax sum phuqhasiñapatakiw suyt’añama (kunjamtix akham uñacht’ayaski) janïr ukar mantañkama.

Demostración ukanx aka uñakipt’añäni:

https://i18n-demo.github.io

cloudflare Ukan Uñt’ayaña

cloudflare page github page

cloudflare page ukan uñstayawipax jilpachax github page ukan uñstayawiparjamaw uñakipata.

Mä proyecto luraña ukat i18n-demo.github.io almacén ukar uñt’ayaña.

Uka lurawixa aka uñacht’awina uñacht’ayatawa:

Ukhamaraki, Add Account ukxaru ch’iqt’aña, ukhamata i18n-demo tantachawiru mantañataki.

Yaqha organizacionan almacén ukar chint’atästa ukhaxa, Add Account pä kuti ch’iqt’añaw wakisispa pä kuti autorizañatakix janïr machaq tama uñacht’ayañkama.

Ukxarusti, almacén i18n-demo.github.io ajlliñamawa, ukatxa Begin setup ukxaru ch’iqt’añamawa, ukatxa qhipa lurawinakatakixa valores predeterminados ukampi apnaqañawa.

Nayrïr kuti encuadernación tukuyasaxa, mä qhawqha minutonakaw suytʼañama, janïr ukar mantañkama.

Uñstayañ tukuyatatxa, mä dominio sutimpiw uñt’ayasispa.

Sapa uñt’at dominio sutimp chint’añ tukuyasax, mä panka apnaqañ thakhi wasitat qillqt’añ wakicht’añatakix dominio sutiruw sarañama, kunjamatix akham uñacht’ayaski ukhama:

Aka pata jamuq uñacht’ayat i18n.site akhamawa.

(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")
)

Ukhamaraki, caché kamachinakax wakicht’atawa, kunjamatix akham uñacht’ayaski ukhamarjama, ukatx caché ukan pachapax mä phaxsiruw uñt’ayasi.

Ukhamaraki, payïr t’aqapanx dominio sutimp chikancht’asiwix mayjt’ayañamawa, ukax dominio sutimp chikancht’atawa.

China Continental Uksan Sitio Web Ukan Uñstayawip Sum Apnaqaña

China continental uksan red ukan medio ambiente ukan juk’amp suma accesibilidad ukar puriñ munsta ukhax nayraqat mä dominio suti qillqantañamawa .

Ukatxa, China continental uksan cloud aljirinakax objetos almacenamiento + apnaqañamawa CDN Aka contenido ukar uñt’ayaña out/main/htm .

Ukax edge computing ukampiw thakhi wasitat qillqt’añatakix apnaqasispa, mä panka aplicacionanakar adaptañataki Sañäni, Baidu Smart Cloud CDN ukax akham wakicht’asispawa:

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
  // Jaskhiwi p’iqinchanakax mistuwinak askichañatakiw utt’ayasispa, kunjamatix out.XXX = 'MSG';
})

Kunatix registro MX ukat registro CNAME janiw mayacht’asis utjkaspati, jumatix correo electrónico de dominio sutinak pachpa pachan katuqañ munsta ukhax cname_flatten ukampiw yanapt’asiñama nivel CNAME ukar registro A ukar puriñkama.

Cloudflare for SaaS , kunatix China continental uksan cloud aljirinakax anqäx markan cargos de tráfico ukax mä juk’a jila chaniniwa, jumatix qullqinak sum apnaqañ munsta ukhax Huawei Cloud DNS desviación de tráfico──China continental uksan ruteo de tráfico Baidu Cloud CDN , tráfico internacional ukax cloudflare .

Aka despliegue optimización solucionanakax juk’amp ch’amäxiwa, jutïrinx sapa jaljanakan uñt’ayatarakiniwa.

Dominio Genérico Suti Mayjt’ayaña

Mä sitio web jach’a sitio web ukham lurañatakix i18n.site apnaqañax, jilpachax redirección pan-dominio ukar wakicht’añaw wakisi, mä arunx *.xxx.com ( www.xxx.com ukamp chika) xxx.com ukar mantañax mayjt’ayañawa.

Aka mayiwix Alibaba Cloud CDN EdgeScript ( inglés documento / documento chino ) ukan yanapt'apampiw phuqhasispa.

Alibaba CDN ukan dominio sutip yapxataña ukat Alibaba Cloud CDN ukan dominio suti *.xxx.com ukat CNAME ukar uñacht'ayaña.

Amuyt’añataki, pan-dominio suti redirección configuración *.i18n.site ukax akham uñacht’ayatawa:

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

nginx Ukampiw Uñt’ayasi

Mä configuración ukar uñtasit server out/main/htm nginx /root/i18n/md/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;
  }
}

Ukax github action Sarantañ Mayacht’asiwiruw Uñt’ayasi

Ukhamaraki, github action : 1.1.

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 }}

Kunjamatixa configuración ukanxa uñjasi, aka lurawixa ch’amanchatawa kunapachatixa main rama ukhamaraki rama dist uksaru ch’amanchata.

Irnaqawi lurawixa sucursal sutimpi .i18n/htm/dist.yml lurawimpiwa qillqantayawi uñt’ayañatakixa apnaqatarakini .i18n/htm/main.yml

Documento uñstayañatakix aka aski lurawinakaw iwxt’apxsma:

Kunawsatix mayjt’awinakax rama main ukar jaqukipatäki ukhax qillqatax lurañatakiw ch’amanchasi ukatx nayrïr uñakipañ utar uñstayañatakiw ch’amanchasi (nayrïr uñakipañ utarux utjiwa github page ).

Uka qillqatax nayrïr uñakipañ chiqan chiqapawa sasin chiqanchañ tukuyasax, código ukax mayachatäniwa ukatx rama dist uksaruw jaquntatäni, ukatx oficial lurawix ukat uñstayañax internet tuqiw sarani.

Chiqansa, aka pata lurawi phuqhañatakix juk’amp configuración qillqañaw wakisi.

Chiqpach proyecto ukar uñakipt’añamawa scripting de flujo de trabajo github.com/fcdoc/doc .

secrets.I18N_SITE_TOKEN ukat secrets.NPM_TOKEN ukax configuración ukanx jamasat variables ukanakax base de código ukan wakicht’atäñapawa.

I18N_SITE_TOKEN i18n.site/token Jichhax !

NPM_TOKEN ukax paquete npm ukan uñt’ayañ chimpupawa Visit npmjs.com

Directorio Ukana Lurawipa

public

Sitio web ukan archivos estáticos ukanakax favicon.ico , robots.txt , ukat juk’ampinaka.

Aka chiqan icono qillqatanakax realfavicongenerator.net

.i18n

.i18n directorio ukanxa configuración archivonaka, jaqukipaña caché, juk ampinaka i18n.site Jutïr jalja "Configuración" uñakipt’aña juk’ampi yatxatañataki.

en

Fuente aru directorio, ukax en de fromTo en .i18n/conf.yml configuración arxiwu ukar uñtasitawa

i18n:
  fromTo:
    en: zh

Uñakipt’añatakix configuración de traducción i18