本教程演示瞭如何使用Twig和GetText向PHP應用程序添加多語言支持。 它比Symfony的翻譯組件(例如Symfony的翻譯組件)要快得多。我們將修改既有英語應用程序(NOFW)來說明這一點。
鍵優點:
- 效率: getText的本機實現與userland替代方案相比提供了出色的性能。 簡單性:
- 將國際化添加到現有應用程序的過程非常簡單。 > 綜合指南:
- >本教程涵蓋環境設置,字符串提取(使用),和
xgettext
和.po
文件生成,通過.mo
擴展的twig集成以及有用的實用程序腳本。i18n
設置和基礎知識:
我們將使用宅基地改進(假設已經安裝了GetText;稍後提供手動安裝的說明)。 因為NOFW使用樹枝,因此需要擴展:>
i18n
git clone https://github.com/swader/nofw cd nofw git checkout tags/2.93 -b 2.93 composer require twig/extensions(注意:這克隆較舊的NOFW版本,而無需內置國際化以進行教程。
>按照NOFW讀取文件進行配置數據庫。 該應用程序現在應該運行。
getText使用
或其別名標記可翻譯字符串。 如果找不到翻譯,則返回原始字符串(佔位符)。
:gettext("string")
_("string")
i18n.php
<?php $language = "en_US.UTF-8"; putenv("LANGUAGE=" . $language); setlocale(LC_ALL, $language); $domain = "messages"; bindtextdomain($domain, "Locale"); bind_textdomain_codeset($domain, 'UTF-8'); textdomain($domain); echo _("HELLO_WORLD");
代碼為GetText設置語言,語言環境和域。 由於缺少語言文件,因此運行此功能會迴盪“ Hello_world”。
> 字符串提取:
>使用
從您的文件中提取字符串:這將創建
(便攜式對像模板)。 生成一個英語文件:xgettext
xgettext --from-code=UTF-8 -o Locale/messages.pot public/i18n.php編輯
,翻譯“ hello_world”(例如,“ howdy”)。 編譯為messages.pot
:.po
msginit --locale=en_US --output-file=Locale/en_US/LC_MESSAGES/messages.po --input=Locale/messages.pot
>添加一種新語言(例如,克羅地亞語): twig Integration:
:
更新>使用
獎勵:實用程序腳本(App/bin/i18n): ,,, >和
和.mo
>
sudo locale-gen hr_HR hr_HR.UTF-8; sudo update-locale; sudo dpkg-reconfigure locales
.po
> file:mkdir -p Locale/hr_HR/LC_MESSAGES; msginit --locale=hr_HR --output-file=Locale/hr_HR/LC_MESSAGES/messages.po --input=Locale/messages.pot
messages.po
>中將“ hello_world”轉換為“ zdravo”。
.mo
msgfmt -c -o Locale/hr_HR/LC_MESSAGES/messages.mo Locale/hr_HR/LC_MESSAGES/messages.po
i18n.php
和測試。 可能需要重新啟動服務器。 hr_HR.UTF-8
app/config/config_web.php
git clone https://github.com/swader/nofw
cd nofw
git checkout tags/2.93 -b 2.93
composer require twig/extensions
> block:trans
<?php
$language = "en_US.UTF-8";
putenv("LANGUAGE=" . $language);
setlocale(LC_ALL, $language);
$domain = "messages";
bindtextdomain($domain, "Locale");
bind_textdomain_codeset($domain, 'UTF-8');
textdomain($domain);
echo _("HELLO_WORLD");
:xgettext
app/bin/twigcache.php
然後從緩存的文件中提取字符串:xgettext --from-code=UTF-8 -o Locale/messages.pot public/i18n.php
msginit --locale=en_US --output-file=Locale/en_US/LC_MESSAGES/messages.po --input=Locale/messages.pot
文件的文件。 .po
msgmerge
.mo
addlang.sh
>> files。 這些腳本在原始文本中詳細介紹。 update-pot.sh
>
update-mo.sh
config.sh
部署:.pot
.mo
msgfmt -c -o Locale/en_US/LC_MESSAGES/messages.mo Locale/en_US/LC_MESSAGES/messages.po
以上是帶有getText的簡單多語言樹枝應用程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在PHP中設置會話cookie參數可以通過session_set_cookie_params()函數實現。 1)使用該函數設置參數,如過期時間、路徑、域名、安全標誌等;2)調用session_start()使參數生效;3)根據需求動態調整參數,如用戶登錄狀態;4)注意設置secure和httponly標誌以提升安全性。

在PHP中使用會話的主要目的是維護用戶在不同頁面之間的狀態。 1)會話通過session_start()函數啟動,創建唯一會話ID並存儲在用戶cookie中。 2)會話數據保存在服務器上,允許在不同請求間傳遞數據,如登錄狀態和購物車內容。

如何在子域名間共享會話?通過設置通用域名的會話cookie實現。 1.在服務器端設置會話cookie的域為.example.com。 2.選擇合適的會話存儲方式,如內存、數據庫或分佈式緩存。 3.通過cookie傳遞會話ID,服務器根據ID檢索和更新會話數據。

HTTPS通过加密数据传输、防止中间人攻击和提供身份验证,显著提升了会话的安全性。1)加密数据传输:HTTPS使用SSL/TLS协议加密数据,确保数据在传输过程中不被窃取或篡改。2)防止中间人攻击:通过SSL/TLS握手过程,客户端验证服务器证书,确保连接合法性。3)提供身份验证:HTTPS确保连接的是合法服务器,保护数据完整性和机密性。

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。