code: protected function loadMessages($category, $language)
      {
          $messageFile = $this->getMessageFilePath($category, $language);
          $messages = $this->loadMessagesFromFile($messageFile);
  
          $fallbackLanguage = substr($language, 0, 2);
          $fallbackSourceLanguage = substr($this->sourceLanguage, 0, 2);
  
          if ($language !== $fallbackLanguage) {
              $messages = $this->loadFallbackMessages($category, $fallbackLanguage, $messages, $messageFile);
          } elseif ($language === $fallbackSourceLanguage) {
              $messages = $this->loadFallbackMessages($category, $this->sourceLanguage, $messages, $messageFile);
          } else {
              if ($messages === null) {
                  Yii::warning("The message file for category '$category' does not exist: $messageFile", __METHOD__);
              }
          }
  
          return (array) $messages;
      }
docs: Loads the message translation for the specified $language and $category.
  If translation for specific locale code such as `en-US` isn't found it
  tries more generic `en`. When both are present, the `en-US` messages will be merged
  over `en`. See [[loadFallbackMessages]] for details.
  If the $language is less specific than [[sourceLanguage]], the method will try to
  load the messages for [[sourceLanguage]]. For example: [[sourceLanguage]] is `en-GB`,
  $language is `en`. The method will load the messages for `en` and merge them over `en-GB`.
  
  @param string $category the message category
  @param string $language the target language
  @return array the loaded messages. The keys are original messages, and the values are the translated messages.
  @see loadFallbackMessages
  @see sourceLanguage