2013-10-12 67 views
3

它應該是「微不足道的」,但在#laravel irc頻道上的一些chating後,我發現現在可能是不可能的。但是,在這之前,我會問這個問題,只是爲了完成這個項目而採用醜陋的方式。如果通過目前的方式確實不可能,我會在github上填寫請求(在將項目交給我的客戶之後)。在Laravel覆蓋包本地化

我使用Zizaco\Confide來處理我的服務中的身份驗證。它使用Laravel Lang隨處獲得包中8種捆綁語言之一的字符串。但我需要重寫這些字符串中的一部分,並且我不想修改這些包文件(這會打敗Composer的整個目的)。我怎樣才能做到這一點?

例如,我需要修改confide::confide.alerts.wrong_credentialspt_BR語言。我到目前爲止所嘗試的:

  • /app/lang/pt_BR/confide.php文件,內容爲return array('alerts' => array('wrong_credentials' => '...'))。它適用於Lang::get('confide.alerts.wrong_credentials')但不能用於命名空間Lang::get('confide::confide.alerts.wrong_credentials')
  • /app/lang/pt_BR/packages/zizaco/confide/confide.phpreturn array('alerts' => ......)
  • /app/lang/pt_BR/packages/zizaco/confide/confide/alerts.phpreturn array('wrong_credentials' => ...)
  • /app/lang/packages/zizaco/confide/pt_BR/confide.phparray('alerts' => array('wrong_credentials' => '...')) - /app/lang/packages/zizaco/confide/pt_BR/confide/alerts.phpreturn array('wrong_credentials' => ...)

對我失去了什麼任何線索?還是Laravel4真的缺乏這個功能?

在此先感謝!

回答

4

因此,至今爲止,Laravel確實缺乏這一功能。 我要求創建一個issue on github

同時,該功能可以在composer.json

{ 
    "require": { 
     "orchestra/translation": "2.0.*" 
    } 
} 

和替換實現無縫使用crynobone樂團平臺2平移分量,可以發現here

所有你需要做的是require它原始翻譯包('Illuminate\Translation\TranslationServiceProvider'/config/app.php

'providers' => array(
    //'Illuminate\Translation\TranslationServiceProvider', 
    // ... 
    'Orchestra\Translation\TranslationServiceProvider', 
), 

就是這樣!現在,有app/lang/en/packages/confide/confide.php會做到這一點! (請注意,路徑應該是/包/ 包名稱 /不/包/供應商/包/

它真的救了我從一個大傷腦筋,希望其他人覺得這太有用。

+2

覆蓋它並編輯供應商名單之前請確保您運行作曲家更新,不之後(正如我犯錯):) – ivanhoe