(bg)翻譯狀態(tài)深度解讀:缺失清單、來(lái)源定位與補(bǔ)全實(shí)踐)
后端【免費(fèi)下載鏈接】langList of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.項(xiàng)目地址https://gitcode.com/gh_mirrors/la/lang點(diǎn)擊查看免費(fèi)下載導(dǎo)讀本文圍繞 docs/statuses/bg.md 展開(kāi)逐項(xiàng)拆解 Laravel Lang 項(xiàng)目中保加利亞語(yǔ)bg語(yǔ)言包的翻譯缺口當(dāng)前共有 15 個(gè)未翻譯條目json 11 個(gè)、php 2 個(gè)、php-inline 2 個(gè)覆蓋 Laravel Passkeys、框架環(huán)境文件加密命令與表單驗(yàn)證規(guī)則三個(gè)來(lái)源。讀者讀完本文將能讀懂狀態(tài)報(bào)告中的每個(gè)缺失項(xiàng)從哪個(gè)源碼文件而來(lái)、對(duì)應(yīng)倉(cāng)庫(kù)中哪個(gè)語(yǔ)言文件、以及如何快速補(bǔ)全并驗(yàn)證翻譯。一、背景bg 狀態(tài)報(bào)告在 Laravel Lang 項(xiàng)目中的定位laravel-lang/lang是一個(gè)為 Laravel 生態(tài)提供多語(yǔ)言翻譯的 Composer 包覆蓋 Laravel Framework、Jetstream、Fortify、Breeze、Cashier、Nova、Spark 與 UI 等組件參見(jiàn) composer.json 中的description。每個(gè)語(yǔ)言目錄如 locales/bg下都存放著json.json、json-inline.json、php.json、php-inline.json四類語(yǔ)言文件。docs/statuses/目錄為每種語(yǔ)言生成一份翻譯完成狀態(tài)報(bào)告docs/status.md 是匯總?cè)肟诋?dāng)前整體完成度為97.82%147.1K / 150.4K。而 docs/statuses/bg.md 正是保加利亞語(yǔ)的明細(xì)報(bào)告它不展示已翻譯內(nèi)容而是精確列出**仍然缺失未翻譯**的 key作為維護(hù)者補(bǔ)全翻譯的行動(dòng)清單。這類狀態(tài)文件由laravel-lang/status-generator自動(dòng)生成見(jiàn) composer.json 的require-dev配置它會(huì)把每種語(yǔ)言的翻譯與英文源文件逐 key 比對(duì)凡是值仍為英文原文即尚未翻譯的條目都會(huì)落入對(duì)應(yīng)語(yǔ)言的 status 報(bào)告中。二、bg 缺失全景15 個(gè)待翻譯條目總覽根據(jù) docs/statuses/bg.md 的統(tǒng)計(jì)保加利亞語(yǔ)包共缺 15 個(gè)條目按文件類型分布如下文件類型缺失數(shù)量缺失 keyjson11Invalid credential format.、Passkey not recognized.等 8 個(gè) Passkeys 相關(guān)消息 3 個(gè)環(huán)境文件加密相關(guān)消息php2array_keys、base64php-inline2array_keys、base64三類文件各司其職json系列l(wèi)ocales/bg/json.jsonLaravel 應(yīng)用中通過(guò)__()/trans()使用的鍵值對(duì)包含 Passkeys 與框架環(huán)境加密等新特性的消息php系列l(wèi)ocales/bg/php.json供lang/目錄下 PHP 語(yǔ)言文件使用的驗(yàn)證規(guī)則消息key 為array_keys、base64這類規(guī)則名php-inline系列驗(yàn)證規(guī)則的內(nèi)聯(lián)inline變體即驗(yàn)證規(guī)則直接寫(xiě)在字段上時(shí)展示的短消息key 與php相同但文案以 This field ... 而非 The :attribute field ... 開(kāi)頭。值得注意php與php-inline缺失的 key 完全一致都是array_keys與base64說(shuō)明這兩條規(guī)則在兩個(gè)格式中均未翻譯補(bǔ)全時(shí)需兩處同時(shí)處理。三、json 缺失項(xiàng)溯源Passkeys 與 env 加密命令3.1 八個(gè) Passkeys 相關(guān)消息json 缺失的 11 個(gè)條目中有 8 個(gè)來(lái)自 Laravel Passkeys 功能。它們分布在兩份源文件中源文件一source/passkeys/main/passkeys.json3 個(gè)缺失 key含義Invalid credential format.憑據(jù)格式無(wú)效Passkey registration session expired. Please try again.注冊(cè)會(huì)話過(guò)期請(qǐng)重試Passkey verification session expired. Please try again.驗(yàn)證會(huì)話過(guò)期請(qǐng)重試源文件二source/passkeys/extended.json5 個(gè)缺失 key含義Passkey not recognized. It may have been removed from your account.Passkey 無(wú)法識(shí)別可能已從賬戶中移除Unable to register passkey. Please try again.無(wú)法注冊(cè) Passkey請(qǐng)重試Unable to register this passkey.無(wú)法注冊(cè)該 PasskeyUnable to sign in with this account.無(wú)法使用此賬戶登錄Unable to verify passkey. Please try again.無(wú)法驗(yàn)證 Passkey請(qǐng)重試這些消息在 locales/bg/json.json 中仍然保留英文原文例如第 340、502-504、777-781 行因此被狀態(tài)生成器判定為缺失。它們?nèi)颗c Passkeys無(wú)密碼登錄的用戶交互流程相關(guān)注冊(cè)、驗(yàn)證、會(huì)話過(guò)期、憑據(jù)無(wú)法識(shí)別等場(chǎng)景是保加利亞語(yǔ)用戶在無(wú)密碼登錄時(shí)直接會(huì)看到的提示文案。3.2 三個(gè)環(huán)境文件加密相關(guān)消息其余 3 個(gè)缺失條目來(lái)自 Laravel Framework 的環(huán)境文件加密功能env:encrypt/env:decrypt命令缺失 key含義The existing encrypted environment file is not in readable format. Use --force to overwrite it.已存在的加密環(huán)境文件不可讀請(qǐng)使用--force覆蓋The existing encryption key is required to update the encrypted environment file.更新加密環(huán)境文件需要提供現(xiàn)有加密密鑰Unable to write the encrypted environment file.無(wú)法寫(xiě)入加密環(huán)境文件這幾條是 Laravel 11.0.7 之后新增的環(huán)境加密錯(cuò)誤消息——這也解釋了為什么 composer.json 中聲明了conflict: { laravel/framework: 11.0.7 }該項(xiàng)目要求的最低框架版本恰好包含這些新消息??蚣軅?cè)對(duì)應(yīng)的基礎(chǔ)鍵如Encrypted environment file already exists.、A decryption key is required.等可見(jiàn)于 source/framework/master/framework.json而上述三條屬于較新的錯(cuò)誤分支bg 語(yǔ)言包尚未跟進(jìn)翻譯。四、php 與 php-inline 缺失項(xiàng)驗(yàn)證規(guī)則 array_keys 與 base64php 與 php-inline 各缺 2 個(gè) key均為框架驗(yàn)證器Validator的規(guī)則消息。它們對(duì)應(yīng)的英文源文本在框架驗(yàn)證語(yǔ)言文件中可以精確找到source/framework/master/validation.php 第 16 行定義了array_keysThe :attribute field must only contain the following keys: :values.第 19 行定義了base64The :attribute field must be a valid Base64 string.。array_keys要求字段必須只包含指定的鍵集合用于校驗(yàn)關(guān)聯(lián)數(shù)組的鍵名:values會(huì)被替換為允許的鍵列表。base64要求字段必須是合法的 Base64 編碼字符串常用于文件上傳或二進(jìn)制數(shù)據(jù)的校驗(yàn)。在 locales/bg/php.json 中這兩條規(guī)則的值仍是英文第 12、15 行array_keys: The :attribute field must only contain the following keys: :values., base64: The :attribute field must be a valid Base64 string.補(bǔ)全時(shí)可按保加利亞語(yǔ)習(xí)慣譯為類似形式并保留:attribute、:values占位符array_keys: Полето :attribute трябва да съдържа само следните ключове: :values., base64: Полето :attribute трябва да бъде валиден Base64 низ.php-inline 變體locales/bg/php-inline.json則使用This field句式且無(wú)需:attribute占位符例如This field must only contain the following keys: :values.。五、源碼側(cè)工作機(jī)制Plugin 映射與發(fā)布流程狀態(tài)報(bào)告中每個(gè)缺失項(xiàng)都能在源碼側(cè)找到對(duì)應(yīng)發(fā)布映射這是理解整個(gè)翻譯流水線的關(guān)鍵。Laravel Lang 通過(guò)插件Plugin機(jī)制把source/下的英文源文件按版本發(fā)布到目標(biāo)語(yǔ)言目錄src/Plugins/Passkeys/Main.php 聲明了 Passkeys 的映射規(guī)則public function files(): array { return [ passkeys/main/passkeys.json {locale}.json, passkeys/extended.json {locale}.json, ]; }即source/passkeys/main/passkeys.json與source/passkeys/extended.json會(huì)合并進(jìn)各語(yǔ)言含 bg的{locale}.json文件——這正是 8 個(gè) Passkeys 缺失項(xiàng)進(jìn)入 bg 語(yǔ)言包的路徑。src/Plugins/Laravel/Master.php 則映射框架內(nèi)容framework/master/framework.json {locale}.json, framework/extended.json {locale}.json, framework/master/auth.php {locale}/auth.php, framework/master/validation.php {locale}/validation.php, ...其中framework/master/validation.php對(duì)應(yīng) php 語(yǔ)言文件framework/master/framework.json與framework/extended.json合并進(jìn) json 語(yǔ)言文件。這兩個(gè)插件共同決定了 bg 語(yǔ)言包中 json/php 文件的最終鍵集合也即狀態(tài)報(bào)告比對(duì)的基準(zhǔn)。插件由 src/ServiceProvider.php 在運(yùn)行時(shí)注冊(cè)當(dāng)檢測(cè)到LaravelLang\Publisher\Plugins\Provider類存在時(shí)自動(dòng)注冊(cè)Plugin從而將各插件的映射加載到發(fā)布流程中依賴laravel-lang/publisher ^16.0見(jiàn) composer.json。六、_excludes.json 與語(yǔ)言包邊界保加利亞語(yǔ)包的 locales/bg/_excludes.json 中聲明了 3 個(gè)被排除的 key[ CSV (.csv), Excel (.xlsx), Nova ]這意味著這 3 個(gè)條目不參與bg 語(yǔ)言包的翻譯與統(tǒng)計(jì)因此也不會(huì)出現(xiàn)在 docs/statuses/bg.md 的缺失清單中。這類排除通常是因?yàn)槟繕?biāo)語(yǔ)言環(huán)境下該文案保持原文更合適例如文件格式名稱或者該功能Nova對(duì)特定語(yǔ)言采用不同的本地化策略。理解_excludes.json有助于解釋為什么某個(gè)英文詞條既不在語(yǔ)言文件中、也不在缺失列表中。七、如何補(bǔ)全并驗(yàn)證翻譯7.1 定位待翻譯文件根據(jù)狀態(tài)報(bào)告的缺失清單逐項(xiàng)在對(duì)應(yīng)語(yǔ)言文件中補(bǔ)全缺失類型待修改文件json 缺失Passkeys env 加密locales/bg/json.jsonphp 缺失array_keys、base64locales/bg/php.jsonphp-inline 缺失array_keys、base64locales/bg/php-inline.json7.2 補(bǔ)全要點(diǎn)保留占位符json消息中的:count、:date、:amount等參數(shù)必須原樣保留否則運(yùn)行時(shí)替換會(huì)失效保留復(fù)數(shù)形式如(and :count more errors)這類帶|分隔的復(fù)數(shù)形式需按保加利亞語(yǔ)復(fù)數(shù)規(guī)則通常 1 / 其他 兩組保持對(duì)應(yīng)結(jié)構(gòu)區(qū)分兩種驗(yàn)證文案php使用The :attribute field ...句式php-inline使用This field ...句式兩者占位符不同不可混用參照鄰近語(yǔ)言同為西里爾字母語(yǔ)系的其他語(yǔ)言如 locales/ru/json.json可作為翻譯風(fēng)格的參考但不可直接照搬。7.3 驗(yàn)證流程補(bǔ)全后可運(yùn)行項(xiàng)目自帶的 Composer 腳本見(jiàn) composer.json驗(yàn)證composer run format # 執(zhí)行 vendor/bin/lang sync 同步翻譯并運(yùn)行代碼風(fēng)格檢查 composer test # 運(yùn)行 PHPUnit 測(cè)試套件vendor/bin/lang sync會(huì)把source/的最新英文源同步進(jìn)各語(yǔ)言文件并執(zhí)行格式化隨后laravel-lang/status-generator重新生成狀態(tài)報(bào)告docs/statuses/bg.md 中的缺失數(shù)量會(huì)相應(yīng)減少直到歸零。八、環(huán)境與依賴要求參與該項(xiàng)目翻譯補(bǔ)全需要滿足以下環(huán)境條件以 composer.json 為準(zhǔn)PHP^8.2擴(kuò)展ext-json核心依賴laravel-lang/publisher ^16.0沖突限制laravel/framework 11.0.7因?yàn)?env 加密相關(guān)的新消息依賴 11.0.7 的框架版本開(kāi)發(fā)依賴laravel-lang/status-generator ^2.11生成 status 報(bào)告、phpunit/phpunit ^11.0 || ^12.0測(cè)試、dragon-code/codestyler ^6.0與laravel/pint代碼風(fēng)格。安裝方式為標(biāo)準(zhǔn)的 Composer 開(kāi)發(fā)依賴引入composer require --dev laravel-lang/lang安裝后即可在 Laravel 應(yīng)用中把config/app.php的locale設(shè)為bg使用該語(yǔ)言包。九、小結(jié)通過(guò) docs/statuses/bg.md 這份狀態(tài)報(bào)告可以完整梳理保加利亞語(yǔ)語(yǔ)言包的補(bǔ)全路線8 個(gè) Passkeys 交互消息 3 個(gè)環(huán)境文件加密消息補(bǔ)齊 json 缺口array_keys與base64兩條驗(yàn)證規(guī)則同時(shí)補(bǔ)齊 php 與 php-inline 缺口即可使 bg 語(yǔ)言包達(dá)到 100% 完成度。過(guò)程中結(jié)合 source/、src/Plugins 與 locales/bg 的源碼證據(jù)可以清晰地理解 Laravel Lang英文源文件 → 插件映射 → 語(yǔ)言文件 → 狀態(tài)報(bào)告的完整翻譯流水線這套方法論同樣適用于倉(cāng)庫(kù)中其余 127 種語(yǔ)言的維護(hù)工作。贊分享后端【免費(fèi)下載鏈接】langList of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.項(xiàng)目地址https://gitcode.com/gh_mirrors/la/lang點(diǎn)擊查看免費(fèi)下載相關(guān)推薦Fluxer 客戶端保加利亞語(yǔ)bg本地化指南LOCALIZATION_PROMPT 規(guī)范與源碼級(jí)實(shí)踐Fluxer 客戶端保加利亞語(yǔ)bg本地化指南LOCALIZATION_PROMPT 規(guī)范與源碼級(jí)實(shí)踐 本篇指南以 fluxer_app/src/featuml-mastery-zh完全指南從零開(kāi)始掌握機(jī)器學(xué)習(xí)的終極資源ml mastery zh完全指南從零開(kāi)始掌握機(jī)器學(xué)習(xí)的終極資源 想要快速掌握機(jī)器學(xué)習(xí)但不知從何開(kāi)始ml mastery zh項(xiàng)目是您學(xué)習(xí)機(jī)器學(xué)習(xí)的終極指南OpenProject 12.4.1 補(bǔ)丁版本深度解讀15 項(xiàng)缺陷修復(fù)的完整清單與對(duì)應(yīng)源碼定位OpenProject 12.4.1 補(bǔ)丁版本深度解讀15 項(xiàng)缺陷修復(fù)的完整清單與對(duì)應(yīng)源碼定位 OpenProject 12.4.1 是 12.x 系列的一個(gè)后端前端項(xiàng)目管理企業(yè)應(yīng)用協(xié)同辦公上一篇JsonUnit開(kāi)源項(xiàng)目使用指南下一篇Pico CMS 使用與安裝指南創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考