Интернационализация (i18n) и языковая поддержка
Qwen Code создан для многоззычных рабочих процессов: он поддерживает локализацию интерфейса (i18n/l10n) в CLI, позволяет выбирать язык вывода ассистента и предоставляет возможность создавать собственные языковые пакеты для интерфейса.
Обзор
С точки зрения пользователя, «интернационализация» Qwen Code охватывает несколько уровней:
| Возможность / Настройка | Что управляет | Где хранится |
|---|---|---|
/language ui | Текст интерфейса (меню, системные сообщения, подсказки) | ~/.qwen/settings.json |
/language output | Язык, на котором отвечает ИИ (предпочтение по выводу, не перевод интерфейса) | ~/.qwen/output-language.md |
| Собственные языковые пакеты | Переопределение/расширение встроенных переводов интерфейса | ~/.qwen/locales/*.js |
Язык интерфейса
Это уровень локализации CLI (i18n/l10n): он управляет языком меню, подсказок и системных сообщений.
Установка языка интерфейса
Используйте команду /language ui:
/language ui zh-CN # Китайский
/language ui en-US # Английский
/language ui ru-RU # Русский
/language ui de-DE # Немецкий
/language ui ja-JP # Японский
/language ui pt-BR # Португальский (Бразилия)
/language ui fr-FR # Французский
/language ui ca-ES # КаталанскийПоддерживаются также псевдонимы:
/language ui zh # Китайский
/language ui en # Английский
/language ui ru # Русский
/language ui de # Немецкий
/language ui ja # Японский
/language ui pt # Португальский
/language ui fr # Французский
/language ui ca # КаталанскийАвтоопределение
При первом запуске Qwen Code определяет системную локаль и автоматически устанавливает язык интерфейса.
Приоритет определения:
- Переменная окружения
QWEN_CODE_LANG - Переменная окружения
LANG - Системная локаль через JavaScript Intl API
- По умолчанию: английский
Язык вывода LLM
Язык вывода LLM определяет, на каком языке отвечает ассистент ИИ, независимо от языка ваших вопросов.
Как это работает
Язык вывода LLM управляется файлом правил ~/.qwen/output-language.md. Этот файл автоматически добавляется в контекст LLM при запуске, предписывая ассистенту отвечать на указанном языке.
Автоопределение
Если при первом запуске файл output-language.md не существует, Qwen Code автоматически создаёт его на основе вашей системной локали. Например:
- Системная локаль
zh— создаёт правило для ответов на китайском - Системная локаль
en— создаёт правило для ответов на английском - Системная локаль
ru— создаёт правило для ответов на русском - Системная локаль
de— создаёт правило для ответов на немецком - Системная локаль
ja— создаёт правило для ответов на японском - Системная локаль
pt— создаёт правило для ответов на португальском - Системная локаль
fr— создаёт правило для ответов на французском - Системная локаль
ca— создаёт правило для ответов на каталанском
Ручная настройка
Используйте /language output <язык> для изменения:
/language output Chinese
/language output English
/language output Japanese
/language output GermanПодходит любое название языка. LLM будет проинструктирован отвечать на указанном языке.
После изменения языка вывода перезапустите Qwen Code, чтобы изменения вступили в силу.
Расположение файла
~/.qwen/output-language.mdКонфигурация
Через диалог настроек
- Выполните
/settings - Найдите «Language» в разделе General
- Выберите предпочитаемый язык интерфейса
Через переменную окружения
export QWEN_CODE_LANG=zhЭто влияет на автоопределение при первом запуске (если язык интерфейса ещё не задан и файл output-language.md ещё не существует).
Собственные языковые пакеты
Для перевода интерфейса вы можете создавать собственные языковые пакеты в ~/.qwen/locales/:
- Пример:
~/.qwen/locales/es.jsдля испанского - Пример:
~/.qwen/locales/fr.jsдля французского
Пользовательская директория имеет приоритет над встроенными переводами.
Принимаются вклады! Если вы хотите улучшить встроенные переводы или добавить новые языки. За конкретным примером обратитесь к PR #1238: feat(i18n): add Russian language support .
Поддержка zh-TW (традиционный китайский для Тайваня)
zh-TW не является автоматическим преобразованием zh.js через OpenCC s2t — это вручную поддерживаемый перевод на тайваньскую лексику. При добавлении или обновлении ключей, пожалуйста, следуйте приведённым ниже правилам.
Столбец «CI enforced?» показывает, вызовет ли npm run check-i18n ошибку сборки при нарушении. Строки, помеченные Нет, — это стилистические рекомендации, проверяемые только при ревью; обычно потому, что ошибочная форма имеет законное неинтерфейсное значение (文件 может означать «документ», 打開 в разговорной речи приемлемо на Тайване).
| Избегайте | Используйте вместо | CI enforced? | Причина |
|---|---|---|---|
| 文件 (file) | 檔案 | Нет | Тайваньский термин для файлов в файловой системе (но 文件 может законно означать «документ») |
| 服務器 / 服务器 | 伺服器 | Да | Тайваньский термин для «server» |
| 菜單 / 菜单 | 選單 | Да | Тайваньский термин для «menu» |
| 鏈接 / 链接 | 連結 | Да | Тайваньский термин для «link» (отдельный 鏈 — нормально, напр. 區塊鏈) |
| 打開 | 開啟 | Нет | Предпочтительный на Тайване глагол для «open» (интерфейс); 打開 распространён в разговорной речи |
| 爲 / 啓 / 曆史 / 鏈接 | 為 / 啟 / 歷史 / 連結 | Да | Варианты традиционных форм от прямого OpenCC s2t. Примечание: 曆 контекстно-зависимо и корректно в календарных терминах (日曆, 農曆, 西曆); CI проверяет только биграмму 曆史, не отдельный 曆. |
Если вы не являетесь носителем традиционного китайского и вам нужно создать значение, не вставляйте сырой вывод OpenCC s2t: стандартный профиль s2t выдаёт варианты традиционных символов (например, 爲, 啓), которые не используются на Тайване, и никогда не заменяет материково-китайскую лексику (服務器, 菜單). Предпочтительнее использовать s2twp.json (упрощённый → тайваньский с фразовой заменой) как отправную точку, а затем попросить тайваньского носителя проверить.
Скрипт check-i18n (запускается в CI через npm run check-i18n) вызовет ошибку сборки, если в значении zh-TW обнаружена любая из строк, проверяемых CI. Полный список см. в scripts/check-i18n.ts → ZH_TW_FORBIDDEN_PATTERNS. Если перевод действительно должен содержать строку, запрещённую CI, добавьте его ключ в ZH_TW_ALLOWED_EXCEPTIONS в том же файле с кратким обоснованием.
Проверка использует простое совпадение подстрок, которое не учитывает границы китайских слов. Поэтому биграмма может дать ложное срабатывание на границе составных слов — например, 區塊鏈接口 (= 區塊鏈 + 接口) содержит подстроку 鏈接, хотя ни одно из слов не является ошибочным. Если вы столкнулись с неожиданным сбоем CI такого рода, добавьте ключ перевода в ZH_TW_ALLOWED_EXCEPTIONS, а не удаляйте шаблон.
Формат языкового пакета
// ~/.qwen/locales/es.js
export default {
Hello: 'Hola',
Settings: 'Configuracion',
// ... more translations
};Связанные команды
/language— Показать текущие языковые настройки/language ui [lang]— Установить язык интерфейса/language output <language>— Установить язык вывода LLM/settings— Открыть диалог настроек