在構(gòu)建一個(gè)多語(yǔ)言支持的 laravel 應(yīng)用時(shí),我很快意識(shí)到手動(dòng)管理 resources/lang 目錄下的多個(gè)語(yǔ)言文件將會(huì)是一個(gè)噩夢(mèng)。需要頻繁地打開(kāi)和編輯這些 php 文件,而且很難跟蹤哪些翻譯已經(jīng)完成,哪些還沒(méi)有。我需要一個(gè)更有效率、更易于維護(hù)的解決方案。 composer在線(xiàn)學(xué)習(xí)地址:學(xué)習(xí)地址barryvdh/laravel-translation-manager 就是我找到的答案。它是一個(gè) Laravel 包,可以幫助你管理翻譯文件。它不會(huì)替代 Laravel 自身的翻譯系統(tǒng),而是將 PHP 翻譯文件導(dǎo)入到數(shù)據(jù)庫(kù)中,并通過(guò)一個(gè) Web 界面讓你能夠輕松地編輯它們。
使用 barryvdh/laravel-translation-manager 的工作流程大致如下:
- 導(dǎo)入翻譯 (Import translations): 讀取所有翻譯文件,并將它們保存到數(shù)據(jù)庫(kù)中。
- 查找翻譯 (Find translations): 在 PHP/Twig 源代碼中查找所有翻譯鍵。
- 翻譯 (Translate): 通過(guò) Web 界面翻譯所有鍵。
- 導(dǎo)出 (Export): 將所有翻譯寫(xiě)回翻譯文件。
這樣,翻譯就可以保存在 git 歷史記錄中,并且不會(huì)在生產(chǎn)環(huán)境中引入額外的開(kāi)銷(xiāo)。
安裝和配置
首先,使用 Composer 安裝該包:
composer require barryvdh/laravel-translation-manager
然后,運(yùn)行遷移來(lái)創(chuàng)建必要的數(shù)據(jù)庫(kù)表:
php artisan vendor:publish --provider="BarryvdhTranslationManagerManagerServiceProvider" --tag=migrations php artisan migrate
發(fā)布配置文件:
php artisan vendor:publish --provider="BarryvdhTranslationManagerManagerServiceProvider" --tag=config
如果需要編輯默認(rèn)模板,可以發(fā)布視圖文件:
php artisan vendor:publish --provider="BarryvdhTranslationManagerManagerServiceProvider" --tag=views
使用方法
安裝完成后,可以通過(guò)以下命令導(dǎo)入翻譯文件:
php artisan translations:import
使用以下命令查找源代碼中的翻譯鍵:
php artisan translations:find
使用以下命令導(dǎo)出翻譯文件:
php artisan translations:export <group>
例如,php artisan translations:export messages 會(huì)將 messages 組的翻譯導(dǎo)出到 resources/lang/
優(yōu)勢(shì)
- 集中管理: 通過(guò) Web 界面集中管理所有翻譯,方便快捷。
- 版本控制: 翻譯文件保存在 Git 中,方便進(jìn)行版本控制和協(xié)作。
- 易于使用: 簡(jiǎn)單的命令和直觀(guān)的 Web 界面,降低了使用門(mén)檻。
- 自動(dòng)化: 自動(dòng)查找源代碼中的翻譯鍵,減少了手動(dòng)維護(hù)的工作量。
實(shí)際應(yīng)用效果
使用 barryvdh/laravel-translation-manager 后,我的多語(yǔ)言項(xiàng)目管理效率得到了顯著提升。不再需要手動(dòng)編輯大量的 PHP 文件,只需要通過(guò) Web 界面就可以輕松地添加、修改和刪除翻譯。同時(shí),由于翻譯文件保存在 Git 中,我可以方便地進(jìn)行版本控制和協(xié)作,避免了因手動(dòng)操作而引入的錯(cuò)誤。
總之,barryvdh/laravel-translation-manager 是一個(gè)非常實(shí)用的 Laravel 包,它可以極大地簡(jiǎn)化多語(yǔ)言項(xiàng)目的管理流程,提高開(kāi)發(fā)效率,降低維護(hù)成本。如果你正在開(kāi)發(fā)多語(yǔ)言 Laravel 項(xiàng)目,強(qiáng)烈推薦你嘗試一下。