Browse Source
After these changes it now seems to handle descriptions in title attributes well, both when translating a document the first time – see the abbr section in the `ru/docs/_llm-test.md` which I committed for reference, but I am not sure if everything is correct there, as I do not speak Russian – and when updating translations – tested with e.g. `ru/docs/features.md` and `ru/docs/tutorial/path-params-numeric-validations.md`, not committed. I simplified rule 3 to just match when the separator is a colon (`:`), not when it is a comma (`,`), there are otherwise too many cases it may misunderstand, as commas are regularly used in title attributes. Updated the two instances in the English docs (`features.md` and `tutorial\sql-databases.md`) where a comma was used instead of a colon in a case, which we match with rule 3. I fixed the results in schemes they accidentally had `(de)` appended, but they are language independent.pull/14015/head
7 changed files with 341 additions and 48 deletions
@ -0,0 +1,241 @@ |
|||
# Тест LLM { #llm-test } |
|||
|
|||
Этот документ проверяет, понимает ли <abbr title="Large Language Model – Большая языковая модель">LLM</abbr> инструкции, заданные в общем промпте в `scripts/translate.py`, и инструкции в языковом промпте `docs/{language code}/llm-prompt.md` (которые добавляются к инструкциям в общем промпте). |
|||
|
|||
Использование: |
|||
|
|||
* Сделайте свежий перевод этого документа на нужный целевой язык. |
|||
* Проверьте, что в целом всё в порядке. |
|||
* Если что‑то не так, но это можно исправить улучшением английского документа или общего/языкового промпта, сделайте это. |
|||
* Затем вручную исправьте оставшиеся проблемы в переводе, чтобы получился хороший перевод. |
|||
* Повторно переведите, используя существующий, хороший перевод. Идеальный результат — LLM ничего не меняет. Это означало бы, что общий промпт и языковой промпт настолько хороши, насколько это возможно (Неожиданный поворот: обычно он всё же внесёт несколько на вид случайных правок, вероятно потому, что <a href="https://doublespeak.chat/#/handbook#deterministic-output" class="external-link" target="_blank">LLM — не детерминированные алгоритмы</a>). |
|||
|
|||
Идея в том, что при работе над переводом для конкретного языка (если есть возможность запускать `scripts/translate.py`) добавлять сюда примеры найденных частных случаев (не подробный список, лишь примеры таких случаев) и тестировать на этом документе, а не на каждом отдельном документе, переводя его многократно, что стоит по нескольку центов за перевод. Кроме того, добавляя такие частные случаи сюда, другие проекты перевода тоже узнают о них. |
|||
|
|||
## Фрагменты кода { #code-snippets} |
|||
|
|||
Это фрагмент кода: `foo`. А это ещё один фрагмент кода: `bar`. И ещё один: `baz quux`. |
|||
|
|||
## Кавычки { #quotes } |
|||
|
|||
Вчера мой друг написал: "Если вы правильно напишете слово 'incorrectly', вы напишете его неправильно". На что я ответил: "Верно, но 'incorrectly' — это неправильно, а не '"incorrectly"'". |
|||
|
|||
## Кавычки во фрагментах кода { #quotes-in-code-snippets} |
|||
|
|||
`pip install "foo[bar]"` |
|||
|
|||
Примеры строковых литералов во фрагментах кода: `"this"`, `'that'`. |
|||
|
|||
Сложный пример строковых литералов во фрагментах кода: `f"I like {'oranges' if orange else "apples"}"` |
|||
|
|||
Хардкор: `Yesterday my friend wrote: "If you spell incorrectly correctly you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'!"` |
|||
|
|||
## Блоки кода { #code-blocks } |
|||
|
|||
Пример кода Bash... |
|||
|
|||
```bash |
|||
# Напечатать приветствие вселенной |
|||
echo "Hello universe" |
|||
``` |
|||
|
|||
...и пример кода консоли... |
|||
|
|||
```console |
|||
$ <font color="#4E9A06">fastapi</font> run <u style="text-decoration-style:solid">main.py</u> |
|||
<span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span> Starting server |
|||
Searching for package file structure |
|||
``` |
|||
|
|||
...и ещё один пример кода консоли... |
|||
|
|||
```console |
|||
// Создайте каталог "Code" |
|||
$ mkdir code |
|||
// Перейдите в этот каталог |
|||
$ cd code |
|||
``` |
|||
|
|||
...и пример кода на Python... |
|||
|
|||
```Python |
|||
wont_work() # Это не сработает 😱 |
|||
works(foo="bar") # Это сработает 🎉 |
|||
``` |
|||
|
|||
...и на этом всё. |
|||
|
|||
## Вкладки и цветные блоки { #tabs-and-colored-boxes } |
|||
|
|||
//// tab | Это вкладка |
|||
|
|||
/// info | Информация |
|||
Немного текста |
|||
/// |
|||
|
|||
/// note | Примечание |
|||
Немного текста |
|||
/// |
|||
|
|||
/// note | Технические детали |
|||
Немного текста |
|||
/// |
|||
|
|||
/// check | Проверка |
|||
Немного текста |
|||
/// |
|||
|
|||
/// tip | Совет |
|||
Немного текста |
|||
/// |
|||
|
|||
/// warning | Предупреждение |
|||
Немного текста |
|||
/// |
|||
|
|||
/// danger | Опасность |
|||
Немного текста |
|||
/// |
|||
|
|||
//// |
|||
|
|||
## Веб‑ и внутренние ссылки { #web-and-internal-links } |
|||
|
|||
[Ссылка на заголовок выше](#code-snippets) |
|||
|
|||
<a href="https://sqlmodel.tiangolo.com/" class="external-link" target="_blank">Внешняя ссылка</a> |
|||
|
|||
<a href="https://fastapi.tiangolo.com/ru/the/link/#target" class="external-link" target="_blank">Ссылка FastAPI</a> |
|||
|
|||
<a href="https://fastapi.tiangolo.com/css/styles.css" class="external-link" target="_blank">Ссылка на стиль</a> |
|||
<a href="https://fastapi.tiangolo.com/js/logic.js" class="external-link" target="_blank">Ссылка на скрипт</a> |
|||
<a href="https://fastapi.tiangolo.com/img/foo.jpg" class="external-link" target="_blank">Ссылка на изображение</a> |
|||
|
|||
[Внутренняя ссылка](foo.md#bar){.internal-link target=_blank} |
|||
|
|||
## Элементы HTML "abbr" { #html-abbr-elements } |
|||
|
|||
Здесь некоторые вещи, обёрнутые в элементы HTML "abbr" (некоторые вымышленные): |
|||
|
|||
### Полная фраза { #full-phrase } |
|||
|
|||
* <abbr title="Getting Things Done – Доведение дел до конца">GTD</abbr> |
|||
* <abbr title="less than – меньше чем"><code>lt</code></abbr> |
|||
* <abbr title="XML Web Token – XML веб-токен">XWT</abbr> |
|||
* <abbr title="Parallel Server Gateway Interface – Параллельный интерфейс шлюза сервера">PSGI</abbr> |
|||
|
|||
### Объяснение { #explanation } |
|||
|
|||
* <abbr title="Группа машин, настроенных на подключение и совместную работу определённым образом.">кластер</abbr> |
|||
* <abbr title="Метод машинного обучения, использующий искусственные нейронные сети с многочисленными скрытыми слоями между входным и выходным слоями, тем самым формируя сложную внутреннюю структуру">Глубокое обучение</abbr> |
|||
|
|||
### Полная фраза: Объяснение { #full-phrase-explanation } |
|||
|
|||
* <abbr title="Mozilla Developer Network – Сеть разработчиков Mozilla: Документация для разработчиков, написанная людьми из команды Firefox">MDN</abbr> |
|||
* <abbr title="Input/Output – Ввод/Вывод: чтение или запись на диск, сетевые коммуникации.">I/O</abbr>. |
|||
|
|||
## Заголовки { #headings } |
|||
|
|||
### Разработка веб‑приложения — учебник { #develop-a-webapp-a-tutorial } |
|||
|
|||
Здравствуйте. |
|||
|
|||
### Подсказки типов и аннотации { #type-hints-and-annotations } |
|||
|
|||
Ещё раз здравствуйте. |
|||
|
|||
### Супер‑ и подклассы { #super-and-subclasses } |
|||
|
|||
Ещё раз здравствуйте. |
|||
|
|||
## Предложения с предпочтительными переводами, (возможно) заданными в языковом промпте { #sentences-with-preferred-translations-maybe-defined-in-the-language-prompt } |
|||
|
|||
Добро пожаловать. |
|||
Я восхищаюсь вашим пуловером. |
|||
Ей нравятся фрукты, например, яблоки. |
|||
Ему нравятся апельсины, бананы и т. д. |
|||
Читайте документацию. |
|||
Прочтите учебник — Руководство пользователя. |
|||
Затем прочтите Руководство для продвинутых пользователей. |
|||
Если эта переменная окружения существует, сделайте что‑нибудь. |
|||
Прочитайте переменную окружения `PATH`. |
|||
Это то же самое, что `PATH`. |
|||
Установите из `requirements.txt`. |
|||
Используйте APIRouter. |
|||
Запустите приложение. |
|||
Создайте приложение. |
|||
Это заголовок Authorization. |
|||
Это заголовок `Authorization`. |
|||
Ожидание фоновой задачи. |
|||
Нажмите кнопку. |
|||
Попробуйте этого облачного провайдера. |
|||
Используйте CLI. |
|||
То есть интерфейс командной строки. |
|||
Значение по умолчанию — "foo". |
|||
Объявление по умолчанию — "bar". |
|||
Словари, или dict, — полезные структуры данных. |
|||
Перечисления, или Enum, тоже имеют своё применение. |
|||
Движок сделает это. |
|||
Верните ответ с ошибкой. |
|||
Дождитесь события. |
|||
Бросьте исключение. |
|||
Обработчик исключений обработает это. |
|||
Определение модели формы. |
|||
Отправка тела формы. |
|||
Доступ к заголовку. |
|||
Изменение заголовков. |
|||
Написание в заголовках. |
|||
Пересылаемые заголовки часто используются в связке с прокси‑серверами. |
|||
Прослушивание события жизненного цикла. |
|||
Блокировка означает, что мы «захватываем» ресурс, чтобы безопасно его изменить. |
|||
Разработка мобильного приложения. |
|||
Определение объекта модели. |
|||
Что‑то ждёт монтирования. |
|||
Теперь это смонтировано. |
|||
Другой источник. |
|||
У нас есть переопределение для этого. |
|||
У функции один параметр. |
|||
Параметр функции — int. |
|||
У функции много параметров. |
|||
Параметр по умолчанию — bool. |
|||
Параметр body содержит тело запроса. |
|||
Также называется параметром тела запроса. |
|||
Параметр path содержит переменную в пути запроса. |
|||
Параметр query содержит параметры строки запроса в пути запроса. |
|||
Параметр cookie содержит куки запроса. |
|||
Параметр header содержит заголовки запроса. |
|||
Параметр form содержит поля формы запроса. |
|||
Полезная нагрузка — это запрос/ответ без метаданных. |
|||
Этот запрос запрашивает элементы старше недели. |
|||
Итог: всё гладко. |
|||
Запрос получен. |
|||
Получение тела запроса. |
|||
Получение тел запросов. |
|||
Возврат ответа. |
|||
То, что возвращает функция, имеет возвращаемое значение. |
|||
И тип возвращаемого значения. |
|||
Мы слушаем события запуска и остановки. |
|||
Мы ждём запуска сервера. |
|||
Подробности описаны в документации SQLModel. |
|||
Используйте SDK. |
|||
Тег `Horst` означает, что Хорст должен это сделать. |
|||
У этого параметра есть аннотация типа. |
|||
То есть подсказка типа. |
|||
Подстановочный символ — `*`. |
|||
Класс worker делает то и это. |
|||
Рабочий процесс тоже что‑то делает. |
|||
Я закоммичу это завтра. |
|||
Вчера я изменил код. |
|||
Давайте запустим наше приложение. |
|||
Давайте отдадим эту страницу. |
|||
Прежде чем делать это, обновите FastAPI. |
|||
Это обёрнуто в HTML‑тег. |
|||
`foo` как `int`. |
|||
`bar` как `str`. |
|||
`baz` как `list`. |
|||
Документация FastAPI. |
|||
Производительность Starlette. |
|||
`foo` чувствителен к регистру. |
|||
"Bar" не чувствителен к регистру. |
|||
Стандартные классы Python. |
|||
Это устарело. |
|||
@ -0,0 +1,5 @@ |
|||
### Target language |
|||
|
|||
Translate to Russian (русский язык). |
|||
|
|||
Language code: ru. |
|||
Loading…
Reference in new issue