# 升级本地化

## 文档

- CodeIgniter 3.x 语言文档

- CodeIgniter 4.x 本地化文档

## 变更内容

- 在 CI4 中，语言文件以数组形式返回语言内容。

## 升级指南

1. 在 Config/App.php 中指定默认语言：

       <?php

       namespace Config;

       use CodeIgniter\Config\BaseConfig;

       class App extends BaseConfig
       {
           // ...

           public string $defaultLocale = 'en';

           // ...
       }

2. 现在将语言文件移动到 app/Language/<locale>。

3. 之后需要修改语言文件中的语法。下面的代码示例展示了文件中的语言数组应采用的形式。

4. 从每个文件中移除语言加载器 `$this->lang->load($file, $lang);`。

5. 将加载语言行的方法 `$this->lang->line('error_email_missing')` 替换为 `echo lang('Errors.errorEmailMissing');`。

## 代码示例

### CodeIgniter 3.x 版本

    <?php

    // error.php
    $lang['error_email_missing']    = 'You must submit an email address';
    $lang['error_url_missing']      = 'You must submit a URL';
    $lang['error_username_missing'] = 'You must submit a username';

    // ...

    $this->lang->load('error', $lang);
    echo $this->lang->line('error_email_missing');

### CodeIgniter 4.x 版本

    <?php

    // Errors.php
    return [
        'errorEmailMissing'    => 'You must submit an email address',
        'errorURLMissing'      => 'You must submit a URL',
        'errorUsernameMissing' => 'You must submit a username',
        'nested'               => [
            'error' => [
                'message' => 'A specific error message',
            ],
        ],
    ];

    // ...

    echo lang('Errors.errorEmailMissing');