CODESWITCH · Mirror Docs 01
The bilingual CS glossary — in four languages.
Introductory Python and computer science terms in English, Spanish, Vietnamese and Arabic — with the plain-language explanation, not just the word. Plus the ten error messages every beginner hits, taken apart line by line.
Free to use, copy, print, and put in front of students. No signup, no attribution required beyond a link back.
Translation status, honestly. The Spanish and Arabic entries are written by a bilingual Arabic/English speaker with working Spanish. The Vietnamese entries are a first pass and have not yet been reviewed by a native speaker. If you speak any of these languages and something here is wrong, awkward, or would confuse a fifteen-year-old, please tell me — yusuf.gadelrab06@gmail.com. Corrections get made the same week and credited. A glossary that quietly contains bad translations is worse than no glossary.
Read this first
The keywords aren't translated. That's on purpose.
You'll notice if, for, return and def stay in English everywhere on this page. They're not translated because they aren't really English words when they're in code — they're symbols that happen to be spelled like English words.
Think of them the way you think of a person's name: you don't translate Nguyễn or محمد into English, you just learn to recognise it. Python has about 35 of these, you'll use maybe 12 regularly, and once you can recognise them on sight you never think about them again.
What does get translated is everything else — the concepts, the explanations, the error messages, and the questions you ask. That's the part that carries the meaning.
01 · Concepts
The twenty words that unlock the first eight weeks
Learn these and you can follow almost any beginner Python lesson, in any language.
| English | Español | Tiếng Việt | العربية | What it actually is |
|---|---|---|---|---|
| Variable | variable | biến | مُتَغَيِّرmutaghayyir | A labelled box that holds one value. You choose the label — and the label can be in your language. |
| Value | valor | giá trị | قِيمَةqīma | The thing inside the box. A number, some text, a list of things. |
| Assignment | asignación | phép gán | إِسْنَادisnād | Putting a value into a box, written with one =. It's an instruction, not a claim that two things are equal. |
| Equality | igualdad | so sánh bằng | تَسَاوٍtasāwin | Asking whether two things are the same, written with two: ==. Mixing this up with = is the single most common beginner bug. |
| String | cadena (de texto) | chuỗi | سِلْسِلَة نَصِّيَّةsilsila naṣṣiyya | Text, always inside quotes. "7" is text; 7 is a number. They behave differently. |
| Integer | número entero | số nguyên | عَدَد صَحِيحʿadad ṣaḥīḥ | A whole number, no decimal point. |
| Float | número decimal | số thực | عَدَد عَشْرِيʿadad ʿashrī | A number with a decimal point. |
| Boolean | booleano | giá trị luận lý | قِيمَة مَنْطِقِيَّةqīma manṭiqiyya | A value that is only ever True or False. Capital letter in Python. |
| Conditional | condicional | câu điều kiện | شَرْطsharṭ | A fork in the road. if this is true do that, else do something different. |
| Loop | bucle | vòng lặp | حَلْقَةḥalqa | Doing the same thing repeatedly until a condition stops it. |
| List | lista | danh sách | قَائِمَةqāʾima | A numbered row of boxes, in order. Counting starts at 0, not 1. |
| Index | índice | chỉ số | فِهْرِسfihris | The position number of one item in a list. First item is index 0. |
| Dictionary | diccionario | từ điển | قَامُوسqāmūs | Boxes with names instead of numbers. You look things up by key, like a real dictionary. |
| Function | función | hàm | دَالَّةdālla | A recipe you name once and can use many times. Written with def. |
| Parameter / Argument | parámetro / argumento | tham số / đối số | مُعَامِل / وَسِيطmuʿāmil / wasīṭ | The ingredients you hand to a function. Parameter is the name in the recipe; argument is what you actually pass in. |
| Return | devolver | trả về | إِرْجَاعirjāʿ | Handing a result back out of a function. Not the same as printing it — printing shows it to a person, returning gives it to the rest of your program. |
| imprimir / mostrar | in ra | طِبَاعَةṭibāʿa | Showing something on the screen so a human can read it. | |
| Syntax | sintaxis | cú pháp | بِنَاء الجُمْلَةbināʾ al-jumla | The grammar rules of the language. Break them and the program won't run at all. |
| Indentation | sangría | thụt lề | مَسَافَة بَادِئَةmasāfa bādiʾa | The blank space at the start of a line. In Python this is grammar, not decoration — it says what belongs inside what. |
| Bug / Debug | error / depurar | lỗi / gỡ lỗi | خَطَأ / تَصْحِيح الأَخْطَاءkhaṭaʾ / taṣḥīḥ al-akhṭāʾ | A mistake in your code, and the process of finding it. Everyone's code has bugs. Finding them is the actual skill. |
| Library / Module | biblioteca / módulo | thư viện / mô-đun | مَكْتَبَةmaktaba | Code somebody else already wrote that you can use. Bring it in with import. |
| Comment | comentario | chú thích | تَعْلِيقtaʿlīq | A note for humans that the computer ignores, after a #. Write these in your own language. |
02 · The error decoder
Ten error messages, taken apart
Reading an error message is the most transferable skill in programming, and it's the one that monolingual teaching skips fastest. Three rules before the list:
1. Read the last line first — that's the actual error. 2. Find the line number — the problem is on that line or just above it. 3. The error type is two words jammed together, and each word tells you something.
SyntaxError: unterminated string literal
You opened a quote and never closed it
Syntax = grammar. Unterminated = not finished. String literal = a piece of text in quotes. Python read your quote mark, started reading text, and hit the end of the line still waiting for the closing quote. Look for a " or ' with no partner.
NameError: name 'edad' is not defined
You used a name Python has never seen
Almost always a typo, or using a variable before you created it. Python is case-sensitive: Edad and edad are two completely different names. Check the spelling against where you first created it.
IndentationError: expected an indented block
Python wanted space at the start of the line and didn't get it
After a line ending in : — an if, a for, a def — the next line must be pushed in. That blank space is how Python knows what's inside. Press Tab once. Never mix tabs and spaces in one file.
TypeError: can only concatenate str (not "int") to str
You tried to add text and a number together
Type = what kind of thing it is. Concatenate = join end to end. "I am " + 20 fails because one is text and one is a number. Convert first: "I am " + str(20).
IndexError: list index out of range
You asked for an item that isn't there
A list of 3 items has indexes 0, 1 and 2 — there is no index 3. Counting from zero is the cause of this error roughly every time. len(my_list) tells you how many items there are; the last index is always one less than that.
KeyError: 'nombre'
That key isn't in the dictionary
You looked something up by name and the name isn't there. Check the spelling and the capitalisation of the key. .get("nombre") returns nothing instead of crashing, if a missing key is acceptable.
ValueError: invalid literal for int() with base 10: 'hola'
The right kind of operation, the wrong content
You asked Python to turn something into a number, and it isn't a number. Usually from input(), which always gives you text — even when the person typed digits. Check what the user actually entered.
AttributeError: 'list' object has no attribute 'lower'
You used a tool that doesn't belong to that thing
Attribute = something a thing can do or has. .lower() belongs to text, not to lists. Usually it means the variable isn't holding the type you thought it was — print it and check.
ZeroDivisionError: division by zero
You divided by zero
Mathematically undefined, so Python refuses. Usually the divisor is a variable that turned out to be 0 — an empty list's length, a counter that never incremented. Check the value before dividing.
ModuleNotFoundError: No module named 'pandas'
The library isn't installed here
Your code asked for someone else's code that isn't on this machine. Install it, or check the spelling of the module name. Nothing is wrong with your program's logic.
03 · Asking for help
How to ask, when asking is the hard part
A lot of students get stuck not because they can't code but because asking a question in a second language, in front of a room, feels expensive. Here's a template that removes most of that cost — fill in four lines and you have a complete question, in any language.
1. What I was trying to do: 2. What I wrote: (paste the code) 3. What happened instead: (paste the WHOLE error, last line included) 4. What I already tried:
Write it in whichever language you think in. A tutor who reads all four lines can almost always answer without asking you anything else — which means you only have to speak once.
Use this however you want. Print it, copy it into your own materials, translate it into a language that isn't here, put it on a classroom wall. If you translate it into a new language and send it back, it goes up here with your name on it. This page is Mirror Docs 01 — the first piece of the open library described on the CODESWITCH page.