You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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é

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 21:13:21