純js實現(xiàn)網(wǎng)頁語言切換
之前一直在找有沒有不引入外部組件實現(xiàn)網(wǎng)頁語言切換的方法,使用搜索引擎查找多次未果,最后問了一次github copilot,得到了之前沒見過的結(jié)果,并且不用引入外部庫,遂嘗試一番,發(fā)現(xiàn)切實可行。

具體的實現(xiàn)方式是采用json格式來保存不同語言下的字符串,并且在適當(dāng)?shù)臅r候使用js讀取這些字符串并替換到對應(yīng)的位置上。以下給出一個示例。由于代碼是在md里手敲的,沒有過編輯器檢查,所以可能會有錯漏的地方,如有請?zhí)岢鲂拚?/span>
html部分:
js部分,因為在html里面引入json文件,在js中無法讀取到j(luò)son文件的內(nèi)容,所以將json部分直接寫在js文件里面了。這個示例使用的是translation[lang]["script"]的結(jié)構(gòu)來儲存字符串,使用translation["script"][lang]的格式也沒問題的,會方便查看同一條字符串的不同語言翻譯。只是示例代碼都寫出來了就不想重新再寫了。
這個示例沒有通過外部的庫實現(xiàn)語言切換,維護起來非常簡單,就是機械化地往里面加字符串,加修改元素內(nèi)字符串的代碼就可以了。但是缺點也是非常顯而易見,工作量巨大,并且在大量重復(fù)操作中不能有出錯的地方,在代碼量大了之后,要定位到出錯的地方非常困難(親身經(jīng)歷)。使用translation[lang]["script"]方式是方便確認(rèn)一個語言是否存在翻譯,使用translation["script"][lang]是方便管理翻譯字符串。前者是按照語言>字符串的格式保存讀取,后者是按照字符串>語言的方式保存讀取。

這次的專欄大致上就寫到這里了,內(nèi)容已經(jīng)基本寫完了,具體的示例部分會在近日安排到github上,弄好了會在評論區(qū)發(fā)預(yù)覽鏈接。感謝讀到這里。