如何在Craft 4中添加自定义语言(iu-CA)
在Craft CMS 4中添加自定义语言(iu-CA)的解决方案
1. 通过模块/插件注册自定义区域设置
Craft 4不再支持直接通过config/locales目录添加未内置语言,需通过事件监听注册自定义区域设置。创建或使用现有自定义模块,在其初始化方法中添加以下代码:
use craft\events\RegisterSiteLocalesEvent; use craft\services\Locales; use yii\base\Event; public function init() { parent::init(); // 注册因纽特语(iu-CA)区域设置 Event::on( Locales::class, Locales::EVENT_REGISTER_SITE_LOCALES, function(RegisterSiteLocalesEvent $event) { $event->siteLocales[] = [ 'name' => 'Inuktitut (Canada)', 'code' => 'iu-CA', 'urlCode' => 'iu', 'nativeName' => 'ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕ)', ]; } ); }
启用模块后,iu-CA会出现在站点语言的下拉菜单中。
2. 修正国际化组件配置
你之前的配置是创建了自定义翻译源,但需将配置关联到iu-CA语言代码而非custom。修改config/app.php如下:
'components' => [ 'i18n' => [ 'translations' => [ '*' => [ 'class' => \craft\i18n\PhpMessageSource::class, 'sourceLanguage' => 'en-US', // 项目默认源语言 'basePath' => '@app/translations', 'fileMap' => [ 'site' => 'site.php', ], ], 'iu-CA' => [ 'class' => \craft\i18n\PhpMessageSource::class, 'sourceLanguage' => 'en-US', 'basePath' => '@app/translations/iu-CA', 'fileMap' => [ 'site' => 'site.php', ], ], ], ], ],
3. 创建翻译文件
在项目根目录的translations文件夹下新建iu-CA目录,添加site.php文件存放因纽特语翻译内容:
<?php return [ 'Welcome' => 'ᐅᓪᓗᓈᖅ', // 其他需要翻译的键值对 ];
完成以上步骤后,即可在Craft后台选择iu-CA作为站点语言,实现对应内容的翻译。
内容的提问来源于stack exchange,提问作者Maxime Doré
相关产品推荐
相关产品推荐

