Flutter 全局替換成國際化文本格式

快速將現(xiàn)有項目的中文字符全局替換成國際化文本

1、準(zhǔn)備一份json文本刷喜,將要修改的中文全部寫入文本荣回,如下
{
"user":"用戶",
"Home":"首頁"
}
2、準(zhǔn)備創(chuàng)建一份Python腳本
import os
import json
import re

# 函數(shù)用于替換文件中的中文文本
def replace_text_in_file(file_path, localization_dict):
    with open(file_path, 'r', encoding='utf-8') as file:
        content = file.read()

    # 正則表達(dá)式匹配中文字符串雹锣,假設(shè)中文字符串是用單引號或雙引號包圍
    chinese_pattern = re.compile(r"(['\"])([\u4e00-\u9fff]+)\1")

    def replacement(match):
        chinese_text = match.group(2)
        for key, value in localization_dict.items():
            if value == chinese_text:
                # 將中文文本替換為其英文鍵网沾,并在外面調(diào)用.tr方法
                return f'"{key}".tr'
        return match.group(0)  # 如果沒找到匹配的,返回原文本

    # 替換文件內(nèi)容
    content = chinese_pattern.sub(replacement, content)

    # 寫回文件
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(content)

# 加載國際化JSON文件
def load_localization(filepath):
    with open(filepath, 'r', encoding='utf-8') as file:
        return json.load(file)

# 遍歷指定目錄下所有.dart文件蕊爵,并替換其中的中文文本
def main(project_path, localization_file_path):
    localization_dict = load_localization(localization_file_path)

    for root, dirs, files in os.walk(project_path):
        for file in files:
            if file.endswith('.dart'):
                replace_text_in_file(os.path.join(root, file), localization_dict)


if __name__ == '__main__':
    # 配置你的Flutter項目路徑和國際化JSON文件路徑
    YOUR_FLUTTER_PROJECT_PATH = '項目文件路徑'
    YOUR_LOCALIZATION_JSON_PATH = 'json文件路徑'
    
    # 確保在運(yùn)行腳本之前已經(jīng)備份了項目
    main(YOUR_FLUTTER_PROJECT_PATH, YOUR_LOCALIZATION_JSON_PATH)

    print('替換完成辉哥。')

3、修改腳本的YOUR_FLUTTER_PROJECT_PATHYOUR_LOCALIZATION_JSON_PATH路徑
4攒射、打開終端cd到到腳本文件夾執(zhí)行 python3 xxx.py命令(xxx.py為Python文本名稱)
替換完成...
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末证薇,一起剝皮案震驚了整個濱河市度苔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浑度,老刑警劉巖寇窑,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異箩张,居然都是意外死亡甩骏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門先慷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饮笛,“玉大人,你說我怎么就攤上這事论熙「G啵” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵脓诡,是天一觀的道長无午。 經(jīng)常有香客問我,道長祝谚,這世上最難降的妖魔是什么宪迟? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮交惯,結(jié)果婚禮上次泽,老公的妹妹穿的比我還像新娘。我一直安慰自己席爽,他們只是感情好意荤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著只锻,像睡著了一般袭异。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炬藤,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天御铃,我揣著相機(jī)與錄音,去河邊找鬼沈矿。 笑死上真,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的羹膳。 我是一名探鬼主播睡互,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了就珠?” 一聲冷哼從身側(cè)響起寇壳,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妻怎,沒想到半個月后壳炎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逼侦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年匿辩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榛丢。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡铲球,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晰赞,到底是詐尸還是另有隱情稼病,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布掖鱼,位于F島的核電站然走,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锨用。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一隘谣、第九天 我趴在偏房一處隱蔽的房頂上張望增拥。 院中可真熱鬧,春花似錦寻歧、人聲如沸掌栅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猾封。三九已至,卻和暖如春噪珊,著一層夾襖步出監(jiān)牢的瞬間晌缘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工痢站, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留磷箕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓阵难,卻偏偏與公主長得像岳枷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容