Skip to content

es: ресинхрон испанской локали с текущим ru (67 уроков) - #374

Merged
fey merged 12 commits into
mainfrom
locales-es-resync
Aug 5, 2026
Merged

es: ресинхрон испанской локали с текущим ru (67 уроков)#374
fey merged 12 commits into
mainfrom
locales-es-resync

Conversation

@fey

@fey fey commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Испанская локаль отставала от текущего ru по всему курсу: файлы es/ остались от прежней версии уроков и описывали другое содержание. Ветка приводит их к паритету — по коммиту на модуль, 12 модулей, 67 уроков теории.

Что сделано

  • Теория. 67 es/README.md переведены заново с текущего ru. У пяти уроков испанской теории не было вовсе: 45-logic/15-bool-strings, 50-loops/80-for-in-range, 50-loops/90-debug (созданы с нуля) и 45-logic/90-logical-expressions (лежал текст прежней версии урока, заменён).
  • Иллюстрации. 17 картинок никогда не переносились в es — README ссылался на несуществующий файл. Скопированы в es/assets/.
  • Условия. 30 es/EXERCISE.md разошлись с ru: потеряли постановку задачи, подсказки или алгоритм. Восстановлены.

Правило разделения, как в предыдущих PR: проза — по-испански, строки, которые печатаются или проверяются тестом, — английские (файлы решения и теста общие на все локали), пер-локальные примеры теории — переведены.

Что не затронуто

Диффа за пределами es/ нет: solution.py, test_solution.py, data.yml, ru/, en/ не менялись. Тесты курса зависят только от общих файлов, так что поведение проверок не меняется.

Единственная кириллица, оставленная намеренно, — буква и в 25-strings/30-encoding: это пример несовпадения кодировок, предмет урока.

Проверка

По каждому уроку сверено с ru-близнецом: число код-блоков, число заголовков, набор картинок, разрешимость каждой ссылки ./assets/…, отсутствие кириллицы. 0 расхождений по всем 12 модулям.

fey added 12 commits August 5, 2026 19:12
Испанские файлы были переводами прежних версий уроков: у 10-hello-world 560 байт
против 4697 русских, у 50-syntax-errors 1348 против 4368. Переведено заново с
текущего ru.

Что добавилось: разделы «Значение символов» и «Где практиковаться» с диаграммой
интерпретатора у 10-hello-world; «Служебные комментарии» про BEGIN/END у
20-comments; «Порядок имеет значение», «Альтернативная форма записи» и «Зачем это
нужно» у 30-instructions; «Моя ошибка или нет?» и формат вывода AssertionError у
40-testing; три раздела про природу и разбор синтаксических ошибок у
50-syntax-errors.

Две иллюстрации лежали только в ru/assets и потому были недоступны испанской
локали — hello-world.png и errors-python.png скопированы в es/assets.

В примерах строка «Хекслет - школа программирования» переведена как «Hexlet -
escuela de programación», а пример про регистр «Привет/привет» — как «Hola/hola»:
это теория, файл на локаль, поэтому здесь испанский, а не нейтральный английский.
Семь уроков были переводами прежних версий, у большинства испанский составлял
15–60% от русского объёма: у 30-composition 568 байт против 3310, у
27-commutativity 664 против 2508, у 20-basic 2356 против 7636.

Что добавилось: таблица арифметических операций, разделы про числа с плавающей
точкой и остаток от деления, оформление выражений у 20-basic; унарные операторы и
разбор `-3**2` у 25-operator; определение коммутативности с диаграммой у
27-commutativity; разбор выражений по этапам и примеры с унарным минусом у
30-composition; таблица приоритетов и раздел про читаемость у 40-priority; разделы
про IEEE 754, накопление погрешности и работу с деньгами у 43-float; PEP8, Ruff и
разбор правил у 45-linting.

Иллюстрация arithmetics.png лежала только в ru/assets — скопирована в es/assets.
Четыре урока были переводами прежних версий: испанский составлял 57–66% от
русского объёма.

Что добавилось: раздел про терминологическую ловушку «строка или строчка», разбор
экранирования обоих типов кавычек и вывод обратного слэша у 10-quotes; разделы про
природу `\n`, влияние позиции и пробелов, вывод самого `\n` и другие управляющие
последовательности у 15-escape-characters; диаграмма склейки, раздел про пробел
как символ и управляющие последовательности при конкатенации у
20-string-concatenation; история ASCII, несовместимость национальных кодировок,
Unicode/UTF-8 и практические выводы для программиста у 30-encoding.

Иллюстрация strings.png лежала только в ru/assets — скопирована в es/assets.

В 30-encoding пример «кракозябр» адаптирован под локаль: русское «ÐÑивеÑ!»
(это «Привет!», прочитанный не той таблицей) заменено на «Â¡Hola, señor!» —
то же явление на испанском тексте.
Восемь уроков теории и одно условие. Испанский был переводом прежних версий: у
23-constants 532 байта против 3359 русских, у 18-variable-concatenation 825
против 2782, у 12-change 946 против 4076.

Что добавилось: диаграммы присваивания и подстановки, разделы про литералы против
идентификаторов, порядок использования и NameError у 10-definition; причины
изменения значения и связь с отладкой у 12-change; примеры плохих имён, советы и
шутка про кэширование у 13-variables-naming; двухшаговая конвертация валют через
промежуточную переменную у 15-variables-expressions; склейка переменных, пробелы и
str() для чисел у 18-variable-concatenation; разбор kebab/snake/camel и раздел «как
не надо» у 19-naming-style; определение магических чисел и способ их устранения у
20-magic-numbers; UPPER_SNAKE_CASE и назначение констант у 23-constants.

Условие 13-variables-naming описывало другое задание: испанский требовал завести
переменную с количеством братьев, тогда как урок про максимальное число попыток
входа. Тест сверяет только вывод `2`, поэтому упражнение проходилось, но текст
расходился и с ru, и с учительским решением.

Иллюстрации variable-definition.png и naming.png лежали только в ru/assets —
скопированы в es/assets.
Четыре урока, испанский составлял 44–53% от русского объёма.

Что добавилось: диаграмма разбора f-строки и раздел «почему это важно» у
25-interpolation; выход за границы строки с IndexError, таблица отрицательных
индексов и раздел про спецсимволы у 30-symbols; шаг в срезах, переворот строки,
срезы с отрицательным шагом, срезы с переменными и шпаргалка у 70-slices; разделы
про пустую строку в конце, преимущества тройных кавычек и интерполяцию внутри
многострочной строки у 90-multiline-strings.

Иллюстрация symbols.png лежала только в ru/assets — скопирована в es/assets.

В примере интерполяции внутри многострочной строки русская считалка «А и Б сидели
на трубе» заменена нейтральным двухстрочным примером: `a`/`b` в ru — это
кириллическая «А» рядом с латинской «B», что само по себе ловушка.
Все пять уроков модуля были переведены с прежней версии курса и отставали
от текущего ru: primitive-data-types, tuples, strong-typing,
data-types-immutability, data-types-casting. Иллюстрация
number-as-string.png не была перенесена в es. Условие strong-typing
потеряло игровую постановку задачи.
Пять уроков модуля отставали от текущего ru; три иллюстрации
(function.png, default-parameters.png, deterministic.png) не были
перенесены в es. Условия call и variadic-parameters потеряли постановку
задачи.
Три урока модуля отставали от текущего ru; иллюстрации upper.png и
methods-chain.png не были перенесены в es. Условия objects и
method-chain потеряли постановку задачи и блок подсказок.
Все семь уроков модуля отставали от текущего ru; три иллюстрации
(sum-python.jpg, editor-hints.png, editor-errors.png) не были перенесены
в es. Условия named-arguments и type-annotations расходились с ru:
первое переформулировано, второе потеряло постановку и подсказку.
Шесть уроков модуля: у bool-strings es-теории не было вовсе,
logical-expressions содержал текст прежней версии урока, остальные
отставали. Иллюстрация even-or-odd.jpg не была перенесена в es.
Пять условий восстановлены до ru (постановка задачи, палиндромы).
Пять уроков модуля отставали от текущего ru; иллюстрации
if-statement.png и ternary.png не были перенесены в es. Три условия
восстановлены до ru. В if-else примеры срезов были неверны:
'Invernalia'[:6] помечено как 'Inver', 'Winterfell'[6:] как 'Winter'.
Десять уроков модуля: у for-in-range и debug es-теории не было вовсе,
остальные отставали от текущего ru. Три иллюстрации (while.png,
conditions-inside-loops.png, iterations.png) не были перенесены в es.
Четыре условия восстановлены до ru (постановка задачи, подсказки).
@fey
fey merged commit 1504ef3 into main Aug 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant