我不確定自己的代碼是否有錯誤的結構,或者這是一個通常無法找到的問題,但我甚至不知道如何開始尋找解決方案來解決問題。我有我自己的簡單的翻譯腳本,它被這樣調用:如何從其他頁面檢索頁面上方法中使用的所有參數?
<?php echo $Translate->text("Name"); ?>
它會返回(並回顯)一個帶有關鍵字'Name'的字符串。問題在於,由於幾個原因(名稱:misstranslations,報告,開發,原位翻譯),我可能想要檢索頁面上所有字符串的關鍵字。一個簡單的頁面(example.com/campus/index.php)看起來是這樣的:
<h1> <?php echo $Translate->text(Campus); ?> </h1>
<p style="text-align:justify;">
<?php echo $Translate->text(126); ?>
</p>
<p style="text-align:justify;">
<?php echo $Translate->text(129); ?>
</p>
<a href="<?php $Link->create("campus/about"); ?>">
<h2 class="bodymenu"><?php echo $Translate->text(About); ?> </h2>
</a>
<p style="text-align:justify;">
<?php echo $Translate->text(146); ?>
</p>
<a href="<?php $Link->create("campus/learning_center"); ?>">
<h2 class="bodymenu"><?php echo $Translate->text(Learning_center); ?> </h2>
</a>
<p style="text-align:justify;">
<?php echo $Translate->text(147); ?>
</p>
<a href="<?php $Link->create("campus/residence"); ?>">
<h2 class="bodymenu"><?php echo $Translate->text(Residence); ?> </h2>
</a>
<p style="text-align:justify;">
<?php echo $Translate->text(128); ?>
</p>
而且我想獲得在某些情況下:$Translations=array("Campus","126","129","About","146","Learning_center","147","Residence","128");
作進一步處理(編輯)從另一頁。
在某些情況下,有一個在頁面混合更PHP的邏輯,在另外一些國家是這樣的。在每個頁面之前和之後都會自動包含更多的邏輯代碼和類。所以,基本上,我想知道(對於這個例子,但能夠擴展它),我怎麼能檢索所有的關鍵字。
我基本上考慮2種方法,但我不認爲無論是最優的。首先是使用正則表達式解析php代碼。因爲我知道我正在尋找的那些東西,所以我可能會這樣做。第二個是,根據會話變量,我呈現HTML和解析它,所以echo $Translate->text(Campus);
將返回類似<span id="Translation">Campus</span>
然後只解析HTML和檢索所有的ID。在我開始之前,你能想出其他任何方式來檢索ID嗎?
PS,I 不要想要在一個頁面的開始或結束處對數組中的所有ID進行硬編碼。
我必須讀作翻譯:使頁面在多國語言,如英語和德語? – JvdBerg
是的,'$ Translate = new Translate($ User-> Language);'用於處理翻譯。然後,'$ Translate-> text('key')'將一個特定的關鍵字翻譯成一個已經設置好的正確語言的字符串。 –
好的:爲什麼不使用gettext擴展? – JvdBerg