> Перевод даётся для удобства чтения. Нормативным является английский оригинал. # Интернационализация **Спецификация Мета-Вселенной** **Идентификатор документа:** MU-V2-ARCH-012 **Название:** Модель интернационализации и локализации **Класс документа:** нормативный **Версия:** 2.0 (черновик) **Статус:** рабочий черновик **Нормативные ссылки:** [Naming-Conventions](../02-architecture/Naming-Conventions.md), [MMAS-Interchange](../02-architecture/MMAS-Interchange.md), [MMAS-Core](../02-architecture/MMAS-Core.md), BCP 47, RFC 2119 **Информативные ссылки:** [Traceability](../02-architecture/Traceability.md), [Projection](../04-core-concepts/Projection.md) **Копирайт:** © Orkestron.AI **Лицензия:** Apache-2.0 --- # 1. Назначение Этот документ определяет **модель интернационализации (i18n)** Мета-Вселенной: как единый языконезависимый смысл несёт читаемые человеком метки, описания и документацию на многих языках, при этом локализации никогда не влияют на идентичность и на [смысловой отпечаток](../02-architecture/MMAS-Interchange.md). Направляющий принцип уже заявлен в [Naming-Conventions](../02-architecture/Naming-Conventions.md): [каноническое смысловое имя (CSN)](../02-architecture/Naming-Conventions.md) языконезависимо, а отображаемые имена могут локализоваться. Этот документ доводит принцип до полноты и делает его нормативным для Объектов, Свойств и Проекций. --- # 2. Область действия Эта спецификация применяется к: - отделению языконезависимого смысла от локализуемого представления; - присоединению локализованных меток, описаний и документации к Объектам, Свойствам и Проекциям; - правилам языковой разметки локализованного содержимого; - гарантии того, что локализация несемантична. Она не определяет процессов перевода и не задаёт, как локализованное содержимое отображается в пользовательских интерфейсах. --- # 3. Принципы - **Смысл языконезависим.** Идентичность понятия - это его CSN, а не какое-либо слово какого-либо человеческого языка. - **Представление локализуемо.** Всё, что читает человек - метки, описания, документация, - МОЖЕТ быть переведено. - **Локализация несемантична.** Добавление, изменение или удаление перевода НЕ ДОЛЖНО менять ни смысл понятия, ни его смысловой отпечаток. --- # 4. Каноническое смысловое имя не локализуется [Каноническое смысловое имя (CSN)](../02-architecture/Naming-Conventions.md) ОБЯЗАНО быть языконезависимым и НЕ ДОЛЖНО локализоваться. - У понятия ОБЯЗАНО быть ровно одно CSN независимо от того, на скольких языках оно представлено. - CSN НЕ ДОЛЖНО переводиться, транслитерироваться под каждый язык или меняться по локали. - Все взаимодействия [федерации](../03-federation/MUFP.md) ОБЯЗАНЫ обмениваться CSN, а не локализованными отображаемыми именами, когда речь об идентичности. CSN не привязывается ни к какому человеческому языку так же, как не привязывается ни к какому языку программирования: оно выражает положение в смысловой иерархии и ничего больше. --- # 5. Что локализуемо Следующее относится к представлению и ОБЯЗАНО считаться **несемантичным**: - **Отображаемые имена** - удобная для человека метка понятия; - **Описания** - короткие читаемые человеком пояснения; - **Документация** - развёрнутый читаемый человеком текст; - **метки** и подписи интерфейса, присоединённые к Свойствам и Проекциям. Эти ключи уже перечислены как несемантичные и исключены из канонизации в [MMAS-Interchange §5](../02-architecture/MMAS-Interchange.md). Локализация добавляет *больше значений* тем же несемантичным полям; она никогда не вносит смыслового содержания. --- # 6. Языковые теги Локализованное содержимое ОБЯЗАНО помечаться языковым тегом, соответствующим **BCP 47** (например `en`, `ru`, `zh`, `zh-Hans`, `pt-BR`). - Каждое локализованное значение ОБЯЗАНО объявлять свой языковой тег. - Модели СЛЕДУЕТ объявлять язык по умолчанию для содержимого без тега. - Языковые теги ОБЯЗАНЫ сравниваться без учёта регистра согласно BCP 47, и их СЛЕДУЕТ хранить в канонической форме BCP 47. Локализованное поле, таким образом, представляет собой отображение из языкового тега BCP 47 в текст, присоединённое к несемантичному представлению понятия. --- # 7. Присоединение локализованных меток без влияния на отпечаток Локализованные метки ОБЯЗАНЫ присоединяться к Объектам, Свойствам и Проекциям как значения несемантичных ключей представления из раздела 5. Поскольку эти ключи исключены из канонизации: - понятие с одним CSN и десятью переведёнными отображаемыми именами ОБЯЗАНО давать **тот же смысловой отпечаток**, что и то же понятие с одним переводом или вовсе без переводов; - добавление, правка или удаление перевода НЕ ДОЛЖНЫ требовать [события миграции](../02-architecture/Semantic-Migration.md), потому что смысл не меняется; - две Вселенные, представляющие понятие на разных языках, ОБЯЗАНЫ по-прежнему разрешаться к одному CSN и одному отпечатку и, следовательно, соглашаться, что имеют в виду одно и то же. Пользовательским интерфейсам СЛЕДУЕТ показывать локализованное отображаемое имя, подходящее локали пользователя, разрешая его в лежащее под ним CSN; если для запрошенной локали перевода нет, им СЛЕДУЕТ откатываться к языку по умолчанию. --- # 8. Разобранный пример Одно понятие вознаграждения, представленное на трёх языках поверх одного неизменяемого CSN: ```text CSN : employee.compensation.salaryAgreement (language-independent) displayName : en : "Salary Agreement" ru : "Соглашение об оплате труда" zh : "薪资协议" description : en : "The agreed terms of an employee's base compensation." ru : "Согласованные условия базовой оплаты труда сотрудника." zh : "员工基本薪酬的约定条款。" ``` Смысловой отпечаток вычисляется по смысловому ядру, которое содержит CSN и структурные факты, но **ни одного** значения `displayName` или `description`. Поэтому все три представления и любое их подмножество дают одинаковый отпечаток. Удаление перевода `zh` или добавление `de` не меняет ничего смыслового. --- # 9. Валидация Модель соответствует этой спецификации, когда: - у каждого публичного понятия ровно одно языконезависимое CSN; - ни одно CSN не локализовано; - каждое локализованное значение несёт языковой тег BCP 47; - локализованное содержимое занимает только несемантичные ключи представления; - смысловой отпечаток неизменен при добавлении, изменении или удалении любого перевода. Применимые уровни см. в [Validation](../02-architecture/Validation.md). --- # 10. Архитектурные инварианты - CSN ОБЯЗАНО быть языконезависимым и НЕ ДОЛЖНО локализоваться. - Локализованное содержимое ОБЯЗАНО быть несемантичным и НЕ ДОЛЖНО влиять на смысловой отпечаток. - Локализованные значения ОБЯЗАНЫ нести языковые теги BCP 47. - Федерация ОБЯЗАНА обмениваться CSN, а не локализованными отображаемыми именами, когда речь об идентичности. - Изменение перевода НЕ ДОЛЖНО считаться смысловым изменением. --- # Дальнейшие направления Будущая редакция могла бы задать формат **пакета локализации**, позволяющий публиковать, версионировать и федерировать переводы независимо от модели, которую они украшают, чтобы сообщество могло добавить язык, не трогая авторитетную смысловую модель, вместе с сигналом качества по охвату переводов, который мог бы питать измерение полноты документации в [оценке смысловой связности](../06-ecosystem/Semantic-Coherence-Score.md), и с учитывающим локаль выбором [Проекции](../04-core-concepts/Projection.md). --- # Заключение > Понятие означает одно; мир читает его на многих языках. Мета-Вселенная держит это порознь: одно каноническое смысловое имя несёт смысл, а сколько угодно локализованных меток несут слова, так что перевод модели никогда не меняет того, что она говорит.