一次國際化記錄以及平鋪JSON資料

2022-01-15 03:46:05 字數 1441 閱讀 9597

​ 寫這個方法的原因是因為我們需要改版國際化,因為相同的專案有其他分支做過國際化,但是主版本沒有進行過國際化,目前需要修改主版本的國際化,但是因為國際化的方式做了結構上的調整所以寫了這個工具方法方便去方便修改。

下面我做一下說明

這個是目前版本的國際化方式,是按照目錄模組進行的國際化,每個目錄乙個檔案 放在對應國際化目錄中,這樣做其實為了方便翻譯的時候進行查詢和翻譯,相同的變數可以更好的復用。

目錄:

內容:

再看看以前的版本

以前版本也是按照模組去劃分的,但是區別是每個元件的檔案都做了一次翻譯,這樣做的好處很明顯,扁平化查詢翻譯檔案很方便,因為對應翻譯的元件名稱就是當前元件的名稱。

目錄:

元件的內容:

所以可以看到他們的內容是乙個是有層級結構的,另外乙個是做了平鋪,目前我覺得平鋪好一些,因為去掉前面相同的也很容易找到最後的變化的key。

so我寫了乙個從有層級結構的json轉換成平鋪json的函式。

const a = ,

tip_msg: ,

description:

}function parsejson (obj, parent)

const keys = object.keys(obj)

const iskeys = keys.length

if (!iskeys)

let json = {}

keys.foreach((value) => .` : ''}$`

const k = typeof obj[value] === 'string' ? null : object.keys(obj[value])

if (k)

} else

})return json

}console.log('------- ', json.stringify(parsejson(a, 'space')))

這裡可以看到結果,並且支援任何深的層級

在編寫程式的過程中,可以自己編寫一些小工具去方便的處理相同的事情,我覺得這是我們學程式設計、學做程式的意義,類似於歸類,處理相同事務,這樣我們的生活會更美好 o(∩_∩)o哈哈~

我覺得寫寫文字也挺好的,寫的寫的就可以總結一些更深刻的道理。

vue國際化 一

專案基於vue typescript iview,有國際化的需求,目前支援中文和英文兩種語言。本身國際化沒有什麼難度,但是typescript和iview還是有點需要注意的,特此記錄。vue i18n 是 vue.js 的國際化外掛程式。它可以輕鬆地將一些本地化功能整合到你的 vue.js 應用程式...

Qt國際化之一 國際化 幫助系統和Qt外掛程式

國際化的英文表述為internationalization,通常簡寫為i18n 首尾字母加中間的字元數 乙個應用程式的國際化就是使該應用程式可以讓其他國家的使用者使用的過程。qt支援現在使用的大多數語言,特別是 在qt中,所有的輸入部件和文字繪製方式對qt所支援的所有語言都提供了內建的支援。qt內建...

IOS中的國際化 一

開啟這個工程你可以當看到如下的乙個介面 然後點開storyboard,你會發現裡面的控制項都非常簡單。為了國際話,我們需要往專案中再新增一門語言。新增語言的方式是,project info localizations點選 來新增相應語言,這裡我們選擇chinese simplified 簡體中文。然...