hurah / translate
为 Hurah 提供多语言支持。
v1.0.16
2024-06-12 16:47 UTC
Requires
- php: ^8.0 || ^8.1 || ^8.2 || ^8.3
- ext-json: *
- hurah/data-types: ^v1
- hurah/logger: ^v1
Requires (Dev)
- phpunit/phpunit: ^9.3@dev
README
此库/包与 Hurah 系统一起提供,本身没有实际的应用场景。
它应该如何工作。
以下是系统中存在的目录结构模式,其中包含需要翻译的字符串。在管理面板的管理员部分有一个用户界面可以编辑翻译。
/admin_modules/<module-name>/<sub-module-name>
/admin_modules/<module-name>/<sub-module-name>/<sub-module-name>
/public_html/<website-name>/modules/<module-name>
/public_html/<website-name>/modules/<module-name>/<sub-module-name>
/public_html/<website-name>/modules/<module-name>/<sub-module-name>/<sub-module-name>
/public_html/<website-name>/<some-directory>/modules/<module-name>
/classes/Crud/<some-directory>/Field
/classes/Crud/Custom/<system-name>/<some-directory>/Field
为了避免有数百个翻译文件(乘以 x 种语言),翻译文件应该按上述模式中描述的第一级变量进行分组。
<locale-dir>/admin_modules/<module-name>/Locales/<locale-name>.json
<locale-dir>/public_html/<website-name>/modules/<module-name>/<locale-name>.json
what to do here ? >>>> <locale-dir>/public_html/<website-name>/<some-directory>/modules/<module-name>
<locale-dir>/classes/Crud/<some-directory>/Field/Locales/<locale-name>.json
<locale-dir>/classes/Crud/Custom/<system-name>/<some-directory>/Field/Locales/<locale-name>.json
##翻译内容
<?php $systemRoot = "/home/anton/Documents/sites/hurah/(admin_modules|modules|classes/Crud)"; $translationRoot = "/home/anton/Documents/sites/hurah/data"; $aTemplates = [ /* admin_modules/ */ "Custom/Cockpit/Foodbox/Finder/top_nav_search.twig", /* public_html/_default/modules */ /* public_html/vangoolstoffenonline.nl/modules */ /* (merge) */ "ProductList/Components/Product/{$sTemplateDir}/collection.twig", /* public_html/antonboutkam.nl/modules */ "System/Modules/Projects/Project/page.twig", /* public_html/antonboutkam.nl/System/Modules */ "System/Modules/Contact/contact.twig", /* classes */ "Crud/Bank/Field" ] $language = new Language($systemRoot, $translationRoot); $language->translate($templateName, $stringToTranslate);