2013-09-28 42 views
0

我有一個網站,建立在內置翻譯的CMS(Ushahidi)上。在每個頁面的右上角有30多種語言的下拉菜單。我試圖編輯這樣只剩下兩種語言:英語和法語。使用grep查找和編輯正確的表單

爲了找到哪些文件,我一直用grep像這樣編輯:

grep -Rl English pathtowebsite 

我用這個詞英語作爲搜索詞。這導致我下了一個文件和目錄的兔子洞,這些文件和目錄包含每種語言選項的語言翻譯。我刪除了除英文和法文以外的所有文件。

但是,窗體仍然提供所有語言的選項。爲了找到要編輯的表單,我無法搜索要使用的搜索字詞。

以下是html的示例。我怎麼會grep找到這個表格,以便除去英語和法語以外的每種語言的選項?有問題的網站是在這裏,如果有幫助:http://tinyurl.com/c8djrvr

<div class="language-box"><form action="https://trashswag.com/main?l=uk_UA&amp;l=en_GB" method="get"> 
<input type="hidden" name="l" value="en_GB" /> 
<select id="l" name="l" onchange="this.form.submit()" > 
<option value="az_AZ">Azərbaycan dili (AZ)</option> 
<option value="id_ID">Bahasa Indonesia (ID)</option> 
<option value="bs_BA">Bosanski (BA)</option> 
<option value="ca_ES">Català (ES)</option> 
<option value="cy_GB">Cymraeg (GB)</option> 
<option value="da">Dansk</option> 
<option value="de_DE">Deutsch (DE)</option> 
<option value="en_GB" selected="selected">English (GB)</option> 
<option value="en_US">English (US)</option> 
<option value="es_AR">Español (AR)</option> 
<option value="es_CL">Español (CL)</option> 
<option value="es_ES">Español (ES)</option> 
<option value="es_PE">Español (PE)</option> 
</select></form> 
</div> 

回答

2

Ushahidi的框架可能爲您提供清晰的解決方案,但純粹談論grep命令,你可以使用:

grep -Rl 'English (.*)</option>' pathtowebsite 

更新:

其實這個下拉正在被動態填充,而不是直接來自文件。它直接來自application/cache/kohana_configuration,如果你調整後清除緩存目錄application/i18n你應該沒問題。

+0

嗨anubhava感謝您的迴應。試過,並沒有產生任何搜索結果。 (。*)做什麼? –

+1

在正則表達式匹配任何字符,所以'英語(。*)'將匹配'英語(GB)'和'英語(美國)' – anubhava

+0

啊我看到。謝謝 –

1

在Ushahidi的維基的文件告訴我們,語言下拉菜單被看的application/i18n目錄中生成。您應該從該目錄中刪除您不想支持的語言的相應文件夾。

不要忘記在進行更改後刪除application/cache文件夾中的內容以清除應用程序緩存。

Wiki頁面: https://wiki.ushahidi.com/display/WIKI/Localization

+0

感謝您的信息Hless。我已經從該目錄中刪除了所有其他語言。我清除了緩存並在3個不同的瀏覽器上進行了檢查 - 所有選項都保留! –

+0

此外,我在之前版本的Ushahidi 2.7(我正在運行2.7.1)之前已經嘗試過這種方法,並且刪除文件夾的解決方案確實奏效。 –

+0

所以當你說清除緩存時,我假定你的意思是在我的瀏覽器中。清除緩存目錄解決了問題。感謝ln18目錄上的信息 –