Mark Ku's Blog

透過 PowerShell 下載 google sheet,產生 i18n 多語系翻譯 Json 檔

解決問題

隨著企業系統架構越來越複雜,為解決開發過程中,不同角色或應用程式,需要維護同一份語系翻譯檔。

實作原理

透過 Google sheet 機制就可以達到多人同時維護一份翻譯檔,並透過匯出 csv 檔的功能,將檔案下載到本地,透過 Powershell 去讀取 csv,轉換成 i18n Json 物件並匯出。

首先,透過 google sheet 可以很輕鬆的達到多人共同協作

  1. 建立一個新的 google sheet
    https://docs.google.com/spreadsheets/d/192ji-2k1XHOdXYBu8fD7wNSAnz-eKcdQB57LR66quTg

  2. 開啟 google sheet 允許知道連結的人擁有訪問存取權限 Google Sheet 多語系資料與取得連結視窗

撰寫 powershell

$filepath = './Rawi18nFile.csv'

& { 
 (new-object net.webclient).downloadfile('https://docs.google.com/spreadsheets/d/192ji-2k1XHOdXYBu8fD7wNSAnz-eKcdQB57LR66quTg/export?format=csv', $filepath)
}

$translate = @{}

$NewCsvData= Import-CSV $filepath  | Foreach-Object{       
   
    foreach ($property in $_.PSObject.Properties)
    {
		if($property.Name  -eq 'Module' )
		{
			$module =	$property.Value
			continue
		}
		
		if($property.Name -eq 'Key')
		{		
			$key =	$property.Value
			continue
		}		
				
		$mainKey ="$module.$key";
			
		if (!$translate.ContainsKey($property.Name)) {			
			$translate[$property.Name]= @{}			
		}	
	
		 $translate[$property.Name][$mainKey]  = $property.Value			        
    }           
}

forEach($lang in $translate.Keys){    
	$translate[$lang] | ConvertTo-Json  | % { [System.Text.RegularExpressions.Regex]::Unescape($_) } | new-item -force  "./output/$lang.json"  
}

執行結果

  1. 右鍵 > 用 Powershell 執行 Windows檔案右鍵選單,選擇用PowerShell執行

  2. Powershell 顯示成功 PowerShell視窗顯示i18n翻譯JSON檔生成結果

  3. 此時 output 資料夾產生 i18n語系檔 Notepad++ 顯示韓文 i18n 翻譯 JSON 檔

作者

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可

熱門文章

View all
Mark Ku
··603

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··440

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··323

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··239

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··222

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
Mark Ku
··199

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調