主流的MVVM框架中如何做國際化?

時間 2021-05-31 09:49:44

1樓:Jason Chen

我是用 vuex,初始化 vue 例項的時候把對應的語言載入 store 中,中英文都是用一樣的 key,開發的時候所有要做 i18n 的文字用 vuex 存著,模板直接用 store 裡的就好了。

回頭寫個外掛程式把,vue-i18n 看了一下還是比較麻煩的。。。

2樓:土澳碼農

贊同李曉凱的回答,什麼 vue-i18n 簡直不能忍。。。

強烈推薦通用的靜態資源國際化方案:https://github.com/kenberkeley/i18n-static

3樓:李曉凱

預設是英文,可直接用英文的作為中文索引的鍵

4樓:徐飛

如果限制在MVVM框架這個範圍的話,這個還是比較好辦的,主要有這麼幾種情形:

混雜在HTML中的文字,主要是靜態文字,比如標題,描述文字,表單的label等等,這些是一類東西,需要提取成key,然後編寫到資源檔案中,然後在HTML模板中把文字替換成這些key的佔位符,在版本發布的時候通過預處理,生成不同語言的多份模板。

圖示、對齊方式之類的國際化,主要靠樣式,比如阿拉伯文

控制項的國際化,主要都是換模板,邏輯還是一致的,所以跟1比較像,但也有特例,這個最典型的是日曆,很多日曆連邏輯都是不一樣的,比如波斯日曆,尼泊爾日曆,只換模板是不可能了,所以控制項這裡可能要做個工廠方法,根據不同的語言,載入對應的日曆模板和js,這個不必構建,動態載入應該可以接受。

國際化這個事情,盡量不要放在服務端做,那會占用執行時資源,這應該是構建階段的事情,只有很少一部分的東西可能需要在服務端做,比如資料的國際化方案。

給文字起key名是沒法避免的,用什麼方案都很麻煩。

5樓:羅正燁

不管是不是mvvm框架,起key名都得乙個乙個來。

我原來的經驗是做一套替換的自動化讓運營來填寫要改的東西。

然後我再在前端改改那些錯亂了的頁面。

racket中如何做multi dispatch

Shell define string collideab printf string collide n define odd even collideab printf odd even collide n define collide args match args list string?a...

如何做感情中的高段位

鶴鳴於旦 這是個好問題。誰都不想受到傷害,包括被綠 被拋棄。甩人,是一種勝利者的姿態,被甩,則絕不是被俘的感覺,而是掉下懸崖的絕望。所以勝利者,換而言之即是高段位。然而高段位稱謂的內涵裡,卻多少有渣與爛的貶義,最好不要。但人性決定著,大家都想要做乙個高段位的人,無論男的女的。1 不做主動者,隨意搭配...

簡歷中如何做自我介紹?

姚博軒 自我介紹是簡歷中自我發揮的地方。在簡歷這樣每個字都彌足珍貴的地方,一定要發揮的有價值。簡歷中,每個部分都有其必要的作用,但都是用來展示簡歷主人的。而作為求職簡歷而言,展示自己是讓HR多看自己幾眼,但並不一定是獲得面試機會是因為把自己展示的好。HR更喜歡資訊是與自己所要招職位匹配的人。匹配度越...