最近我接手了一個 laravel 項目,需要支持多種語言。起初,我采用傳統的 laravel 翻譯機制,分別維護著不同語言的 JSon 文件。然而,隨著項目規模的擴大和語言數量的增加,這種方式變得越來越難以維護。每次更新翻譯內容,我都需要手動同步到前端的 vue.js 項目中,這不僅耗時,而且容易出錯,經常導致前后端語言不一致。這種低效的流程嚴重影響了開發進度和代碼質量。
為了解決這個問題,我開始尋找更便捷的解決方案。在一番搜索之后,我發現了 testmonitor/laravel-vue-i18n-generator 這個 composer 包。它能自動將 Laravel 的翻譯文件(resources/lang 目錄下的文件)轉換成 Vue i18n 能夠直接使用的 JavaScript 文件。
安裝這個包非常簡單,只需要在你的 Laravel 項目中執行以下 Composer 命令:
composer require testmonitor/laravel-vue-i18n-generator
安裝完成后,你可以通過 Artisan 命令生成 Vue i18n 文件:
php artisan vue:translations
這個命令會將 Laravel 的翻譯文件編譯成一個名為 vue-i18n-locales.js 的 JavaScript 文件,并將其放置在 /resources/js/i18n 目錄下。 默認情況下,它會使用 Laravel 的語言文件路徑 (resources/lang),你也可以通過 –path 選項指定其他路徑。例如,如果你想從 resources/lang/custom 目錄讀取語言文件,可以使用以下命令:
立即學習“前端免費學習筆記(深入)”;
php artisan vue:translations --path=resources/lang/custom
此外,你還可以使用 –output 選項自定義輸出文件的路徑和文件名:
php artisan vue:translations --output=resources/js/my-i18n.js
為了更好地控制生成過程,你還可以發布配置文件:
php artisan vendor:publish --provider="TestMonitorVueI18nGeneratorVueI18nGeneratorServiceProvider" --tag="config"
這將創建一個配置文件,讓你可以更精細地配置輸出路徑和其他選項。
使用這個包之后,我的工作效率得到了顯著提升。現在,我只需要更新 Laravel 的翻譯文件,然后運行 Artisan 命令,Vue.js 項目的翻譯文件就會自動更新。這不僅節省了大量時間,而且避免了手動同步帶來的錯誤,確保了前后端語言的一致性。
總而言之,testmonitor/laravel-vue-i18n-generator 是一個非常實用的 Composer 包,它極大地簡化了 Laravel 和 Vue.js 項目的多語言支持。如果你正在尋找一種高效、便捷的方式來管理你的翻譯文件,我強烈推薦你嘗試一下這個包。 學習更多 Composer 的用法,可以參考這個在線學習地址:學習地址。