多國語言網(wǎng)站,怎么寫代碼比較好?
Jul 06, 2016 pm 01:51 PM
看過Wordpress的設(shè)計(jì),Wordpress的方法是先做一個(gè)英文版,之后根據(jù)設(shè)置做字符串替換。感覺這么做的話一旦有描述變化,那么估計(jì)改動(dòng)就要有很多。而且這個(gè)方法不適合像thinkphp一樣能前后分離的網(wǎng)站啊。
有沒有什么其他的好方案?
回復(fù)內(nèi)容:
看過Wordpress的設(shè)計(jì),Wordpress的方法是先做一個(gè)英文版,之后根據(jù)設(shè)置做字符串替換。感覺這么做的話一旦有描述變化,那么估計(jì)改動(dòng)就要有很多。而且這個(gè)方法不適合像thinkphp一樣能前后分離的網(wǎng)站啊。
有沒有什么其他的好方案?
ThinkPHP自己不就有個(gè)多語言的lang函數(shù)嗎,它默認(rèn)的模板就是多語言的,你參考參考它不就實(shí)現(xiàn)了嗎……
可以把所有文字存儲到一個(gè)js對象中,所有文字的顯示都是用js變量代替,然后根據(jù)語言去讀不同的js對象。
比如
a.js
<code>var lan = { HELLO: "Hello" } </code>
b.js
<code>var lan = { HELLO: "您好" } </code>
頁面中就使用 $().text(lan.HELLO)
在讀取頁面時(shí)候根據(jù)情況讀取a.js或b.js
可以用php的gettext實(shí)現(xiàn)國際化, 參考github
其實(shí)就是把你的站點(diǎn)關(guān)鍵文字弄成配置文件,到時(shí)候用變量替換,選擇哪個(gè)語言就讀哪個(gè)配置文件就行了
做小型網(wǎng)站的時(shí)候我曾經(jīng)用到一個(gè)庫 https://github.com/coderifous/jquery-localize
類似的庫應(yīng)該很多
基本上和上面幾個(gè)回答的思路差不多,這個(gè)用jquery

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Elakkan masalah pertanyaan n 1, mengurangkan bilangan pertanyaan pangkalan data dengan memuatkan data yang berkaitan terlebih dahulu; 2. Pilih hanya medan yang diperlukan untuk mengelakkan memuat entiti lengkap untuk menjimatkan memori dan jalur lebar; 3. Gunakan strategi cache yang munasabah, seperti cache sekunder doktrin atau hasil pertanyaan frekuensi tinggi Cache; 4. Mengoptimumkan kitaran hayat entiti dan panggilan jelas () secara teratur untuk membebaskan memori untuk mengelakkan limpahan memori; 5. Memastikan indeks pangkalan data wujud dan menganalisis penyata SQL yang dihasilkan untuk mengelakkan pertanyaan yang tidak cekap; 6. Lumpuhkan penjejakan perubahan automatik dalam senario di mana perubahan tidak diperlukan, dan gunakan array atau mod ringan untuk meningkatkan prestasi. Penggunaan ORM yang betul memerlukan menggabungkan pemantauan SQL, caching, pemprosesan batch dan pengoptimuman yang sesuai untuk memastikan prestasi aplikasi sambil mengekalkan kecekapan pembangunan.

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

Pertama, gunakan JavaScript untuk mendapatkan pilihan sistem pengguna dan tetapan tema yang disimpan di dalam negara, dan memulakan tema halaman; 1. Struktur HTML mengandungi butang untuk mencetuskan Topik Switching; 2. CSS menggunakan: Root untuk menentukan pembolehubah tema yang cerah, kelas mod-mode mentakrifkan pembolehubah tema gelap, dan menggunakan pembolehubah ini melalui VAR (); 3. JavaScript mengesan lebih suka skema-skema dan membaca LocalStorage untuk menentukan tema awal; 4. Tukar kelas mod gelap pada elemen HTML apabila mengklik butang, dan menjimatkan keadaan semasa ke LocalStorage; 5. Semua perubahan warna disertakan dengan animasi peralihan 0.3 saat untuk meningkatkan pengguna

Untuk membuat senarai HTML yang tidak teratur, anda perlu menggunakan tag untuk menentukan bekas senarai. Setiap item senarai dibalut dengan tag, dan penyemak imbas secara automatik akan menambah peluru; 1. Buat senarai dengan tag; 2. Setiap item senarai ditakrifkan dengan tag; 3. Penyemak imbas secara automatik menjana simbol titik lalai; 4. Sublists boleh dilaksanakan melalui bersarang; 5. Gunakan atribut jenis gaya CSS untuk mengubah suai gaya simbol, seperti cakera, bulatan, persegi, atau tidak; Gunakan tag ini dengan betul untuk menghasilkan senarai yang tidak teratur standard.

Gunakan alat analisis prestasi untuk mencari kesesakan, gunakan VisualVM atau JProfiler dalam peringkat pembangunan dan ujian, dan memberi keutamaan kepada async-profiler dalam persekitaran pengeluaran; 2. Mengurangkan penciptaan objek, menggunakan semula objek, gunakan StringBuilder untuk menggantikan splicing rentetan, dan pilih strategi GC yang sesuai; 3. Mengoptimumkan penggunaan koleksi, pilih dan preset kapasiti awal mengikut tempat kejadian; 4. Mengoptimumkan keserasian, gunakan koleksi serentak, mengurangkan granulariti kunci, dan tetapkan kolam benang dengan munasabah; 5. Tune Parameter JVM, tetapkan saiz timbunan yang munasabah dan pemungut sampah rendah dan membolehkan log GC; 6. Elakkan refleksi di peringkat kod, ganti kelas pembalut dengan jenis asas, penangguhan permulaan, dan gunakan akhir dan statik; 7. Ujian dan Pemantauan Prestasi Berterusan, digabungkan dengan JMH

Semantichtmlimprovesbothseoandaccessibilitybyingingmeaningfultagsthatconveycontentstructure.1) itenhancesseothroughbettercontenthierarchywithproperheadinglevels, ImprovedIndexingViaelementsLikeAnd, andsupportforrichssoShorseShorseShorseShorseSnipsoSnipsOringsAnpetAnd

USETHELEMENTWITHINATAGTOCREATEASEMANTICSEVELEFIELD.2.IncludeAforAccessibility, setTheForm'sActionandMethod = "GET" ATTRIBUTESTOSENDDATATOSearchendWithAphareabeBel.3.addname = "q" TODineThequeryParameter, UsePlaceShernerToguuse
